Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Apple //e hardware question

165 views
Skip to first unread message

Charlie

unread,
May 22, 2013, 7:24:45 PM5/22/13
to
Can a slot card use a softswitch location, that is not used by the //e,
without causing any bus contention or other problem?

For instance, the //e doesn't use locations $C022, $C029 and $C034 for
registers/softswitches. Are they safely available to use?
Accessing $C034 does click the speaker every other time, but would that
be a problem?

Charlie

mdj

unread,
May 22, 2013, 8:42:14 PM5/22/13
to
On Thursday, 23 May 2013 09:24:45 UTC+10, Charlie wrote:
> Can a slot card use a softswitch location, that is not used by the //e,
>
> without causing any bus contention or other problem?

No reason why not, though each slot has plenty of locations assigned to it, so I'm not sure why you'd want to do this, other than to 'sniff' the machine state.

Antoine Vignau

unread,
May 22, 2013, 8:57:30 PM5/22/13
to
Le jeudi 23 mai 2013 01:24:45 UTC+2, Charlie a écrit :
> Accessing $C034 does click the speaker every other time, but would that
> be a problem?
>
> Charlie

A problem for one user's ears maybe ;-)
av

Charlie

unread,
May 22, 2013, 9:59:24 PM5/22/13
to
On 5/22/2013 8:42 PM, mdj wrote:
> On Thursday, 23 May 2013 09:24:45 UTC+10, Charlie wrote:
>> Can a slot card use a softswitch location, that is not used by the //e,
>>
>> without causing any bus contention or other problem?
>
> No reason why not,

That's good news.

> though each slot has plenty of locations assigned to it,

Yes, I'm using some of them.

> so I'm not sure why you'd want to do this, other than to 'sniff' the machine state.

The reason is, I'm going to add some Apple IIgs functions to my //e, and
I want them to be compatible with a IIgs. So I want to use the same
locations as the IIgs does. Specifically, I'm going to add Super HiRes
graphics and I want the status of the softswitch/registers to be
readable from //e programs.

Charlie

mdj

unread,
May 22, 2013, 10:06:42 PM5/22/13
to
On Thursday, 23 May 2013 11:59:24 UTC+10, Charlie wrote:

> The reason is, I'm going to add some Apple IIgs functions to my //e, and
>
> I want them to be compatible with a IIgs. So I want to use the same
>
> locations as the IIgs does. Specifically, I'm going to add Super HiRes
>
> graphics and I want the status of the softswitch/registers to be
>
> readable from //e programs.

Very cool! :-)

The Apple II Video Overlay Card does exactly this. ISTR it's documented in one of the Apple II technical notes. $2000-$9FFF of auxiliary memory holds the super hires display data, just as it does in bank $E1 on a IIgs.

The penny should have dropped when you mentioned $C029, but I guess it's been a while ;-)

Charlie

unread,
May 22, 2013, 10:10:00 PM5/22/13
to
On 5/22/2013 8:57 PM, Antoine Vignau wrote:
> Le jeudi 23 mai 2013 01:24:45 UTC+2, Charlie a �crit :
>> Accessing $C034 does click the speaker every other time, but would that
>> be a problem?
>>
>> Charlie
>
> A problem for one user's ears maybe ;-)
> av

:-)

As I'm sure you know $C034 holds the border color on a IIgs and that's
what I'm using it for on a //e. It's only one little click, unless I go
wild and write some program that loops through the border colors rapidly.
Hmm, music synchronized to border colors. Great idea, Antoine ;-)

Charlie

Charlie

unread,
May 22, 2013, 10:24:49 PM5/22/13
to
On 5/22/2013 10:06 PM, mdj wrote:
> On Thursday, 23 May 2013 11:59:24 UTC+10, Charlie wrote:
>
>> The reason is, I'm going to add some Apple IIgs functions to my //e, and
>>
>> I want them to be compatible with a IIgs. So I want to use the same
>>
>> locations as the IIgs does. Specifically, I'm going to add Super HiRes
>>
>> graphics and I want the status of the softswitch/registers to be
>>
>> readable from //e programs.
>
> Very cool! :-)
>

Thanks.

> The Apple II Video Overlay Card does exactly this. ISTR it's documented in one of the Apple II technical notes. $2000-$9FFF of auxiliary memory holds the super hires display data, just as it does in bank $E1 on a IIgs.
>

I'll take a look at that tech note.

> The penny should have dropped when you mentioned $C029, but I guess it's been a while ;-)

I mostly use the IIgs but noticed that Super HiRes would fit easily on a
my //e (using the Carte Blanche card). I wonder if Apple was thinking
of putting SHR on a //e at one time.

Charlie



mdj

unread,
May 22, 2013, 10:40:27 PM5/22/13
to
On Thursday, 23 May 2013 12:24:49 UTC+10, Charlie wrote:

> I mostly use the IIgs but noticed that Super HiRes would fit easily on a
>
> my //e (using the Carte Blanche card). I wonder if Apple was thinking
>
> of putting SHR on a //e at one time.

Only by selling VOCs I'd imagine :-)

Another cool feature the VOC had was you could select the $E0 bank (or the main memory if it was in a IIe) instead. This way you could have a "multi-head" IIgs, though I don't know that anyone ever tried to modify the toolbox routines to make this possible. It would be straightforward to make your video card VOC compatible if you're doing it on a Carte Blanche.

Matt

Charlie

unread,
May 22, 2013, 11:23:48 PM5/22/13
to
On 5/22/2013 10:40 PM, mdj wrote:
> On Thursday, 23 May 2013 12:24:49 UTC+10, Charlie wrote:
>
>> I mostly use the IIgs but noticed that Super HiRes would fit easily on a
>>
>> my //e (using the Carte Blanche card). I wonder if Apple was thinking
>>
>> of putting SHR on a //e at one time.
>
> Only by selling VOCs I'd imagine :-)

Yeah, I guess you're right.

>
> Another cool feature the VOC had was you could select the $E0 bank (or the main memory if it was in a IIe) instead.

I've been looking at that technote and saw that feature. That would
have been nice on a IIgs and would be very easy to do on the Carte Blanche.

> This way you could have a "multi-head" IIgs, though I don't know that anyone ever tried to modify the toolbox routines to make this possible.

By "multi-head" do you mean two video outputs? If so, I have two video
outputs on the Carte Blanche (the original and my 12-bit color mod.) but
only the 12-bit is very useful with SHR. Hmm, I suppose I could squeeze
another 12-bit output in there.

> It would be straightforward to make your video card VOC compatible if you're doing it on a Carte Blanche.

Yes, but I think I'll stick with just the IIgs features.
Right now I'm wondering if it's worth it to implement scan-line
interrupts.

Charlie

mdj

unread,
May 23, 2013, 12:48:36 AM5/23/13
to
On Thursday, 23 May 2013 13:23:48 UTC+10, Charlie wrote:

> By "multi-head" do you mean two video outputs? If so, I have two video
>
> outputs on the Carte Blanche (the original and my 12-bit color mod.) but
>
> only the 12-bit is very useful with SHR. Hmm, I suppose I could squeeze
>
> another 12-bit output in there.

I mean you have two independent video outputs and framebuffers, meaning you could in theory have a 'desktop' spanning multiple displays, or use one of them for text output whilst debugging. I used to use a videoterm card to do this when developing on my IIe, though these days I just use an SSC plugged into my laptop (one less CRT cluttering up my workspace)

> > It would be straightforward to make your video card VOC compatible if you're doing it on a Carte Blanche.
>
>
>
> Yes, but I think I'll stick with just the IIgs features.
>
> Right now I'm wondering if it's worth it to implement scan-line
>
> interrupts.

It would be cool to be able to display 3200 colour images I suppose, but there'd be very few CPU cycles left over to do anything useful on a 1Mhz 6502 ...

Matt

Bill Buckels

unread,
May 23, 2013, 8:06:55 AM5/23/13
to

"Charlie" <charl...@verEYEzon.net> wrote:

>For instance, the //e doesn't use locations $C022, $C029 and $C034 for
>registers/softswitches. Are they safely available to use?

$C034 is in use and is not safely available for peripheral add-ons. The
Apple II device map is like latin.

> Accessing $C034 does click the speaker every other time, but would that be
> a problem?

The Aztec C Sound function which I use in many of my programs plays music
using the speaker. Other programs do as well. Here is my code which has been
around since 1989...

<--- snip --->

TOPPER:; /* loop the required note length */
#asm
BIT $C030
#endasm
j=pit;
COUNTER:;
if(j--)goto COUNTER;
if(temp--)goto TOPPER;

/* wait for the duration specified by pitch */
/* then click it again */

<--- snip --->


Charlie

unread,
May 23, 2013, 11:47:25 AM5/23/13
to
On 5/23/2013 8:06 AM, Bill Buckels wrote:
> "Charlie"<charl...@verEYEzon.net> wrote:
>
>> For instance, the //e doesn't use locations $C022, $C029 and $C034 for
>> registers/softswitches. Are they safely available to use?
>
> $C034 is in use and is not safely available for peripheral add-ons. The
> Apple II device map is like latin.

$C034 is used for the border color and clock control bits on an Apple
IIgs but I've never seen any information showing it used on a //e. Can
you point me to some information showing what its used for?

>> Accessing $C034 does click the speaker every other time, but would that be
>> a problem?
>
> The Aztec C Sound function which I use in many of my programs plays music
> using the speaker. Other programs do as well. Here is my code which has been
> around since 1989...
>
> <--- snip --->
>
> TOPPER:; /* loop the required note length */
> #asm
> BIT $C030
> #endasm
> j=pit;
> COUNTER:;
> if(j--)goto COUNTER;
> if(temp--)goto TOPPER;
>
> /* wait for the duration specified by pitch */
> /* then click it again */
>
> <--- snip --->
>

Yes, $C030 is the speaker on all Apple IIs, I believe. I assumed that
$C034 clicks when accessed because the //e didn't fully decode the $C030
address.

Charlie



Michael J. Mahon

unread,
May 23, 2013, 12:44:02 PM5/23/13
to
Exactly.

Though it is seldom useful, any reference in the $C030..$C03F range has the
same effect.

Doing more complete decoding for some other purpose can always be done, but
it has two unfortunate consequences: 1) the original partially decoded
action will occur (click) whenever the new fully decoded action is desired,
and 2) some programs may inadvertently reference the new fully decoded
address, causing unintended results.

-michael - NadaNet 3.1 and AppleCrate II: http://home.comcast.net/~mjmahon

Charlie

unread,
May 23, 2013, 3:18:57 PM5/23/13
to
On 5/23/2013 12:48 AM, mdj wrote:
> On Thursday, 23 May 2013 13:23:48 UTC+10, Charlie wrote:
>
>> By "multi-head" do you mean two video outputs? If so, I have two video
>>
>> outputs on the Carte Blanche (the original and my 12-bit color mod.) but
>>
>> only the 12-bit is very useful with SHR. Hmm, I suppose I could squeeze
>>
>> another 12-bit output in there.
>
> I mean you have two independent video outputs and framebuffers, meaning you could in theory have a 'desktop' spanning multiple displays, or use one of them for text output whilst debugging.

Okay, I understand and that should be doable, but I don't know if I'd
use it.

> I used to use a videoterm card to do this when developing on my IIe, though these days I just use an SSC plugged into my laptop (one less CRT cluttering up my workspace)
>


>>> It would be straightforward to make your video card VOC compatible if you're doing it on a Carte Blanche.
>>
>>
>>
>> Yes, but I think I'll stick with just the IIgs features.
>>
>> Right now I'm wondering if it's worth it to implement scan-line
>>
>> interrupts.
>
> It would be cool to be able to display 3200 colour images I suppose, but there'd be very few CPU cycles left over to do anything useful on a 1Mhz 6502 ...

I agree and I "think" that scan-line interrupts are used when fill mode
is used for fast animation. But I've read someplace that the //e-ProDOS
handling of interrupts takes up a lot of cycles. Combine that with my
general lack of knowledge about interrupts and I think they'll go on the
back burner for now.

Charlie




Bill Buckels

unread,
May 23, 2013, 9:45:26 PM5/23/13
to

"Charlie" <charl...@verEYEzon.net> wrote:
> Yes, $C030 is the speaker on all Apple IIs, I believe. I assumed that
> $C034 clicks when accessed because the //e didn't fully decode the $C030
> address.

I stand corrected then. So far so good. It seems to me I have a
carte-blanche here with som e additional stuff by Steve Howell. I never did
grab an FPGA programmer despite my best of intentions.

Is that part of what you are working-on here Charlie?

Regardless, I should really spend some time with my GS and its video modes
at the very least...

It seems to me that you are a long ways past WASP now... just an
observation.

Bill




Bill Buckels

unread,
May 23, 2013, 9:49:18 PM5/23/13
to

"Michael J. Mahon" <mjm...@aol.com> wrote:
>some programs may inadvertently reference the new fully decoded address,
>causing unintended results.

But super hi-res sounds tantalizing... to me at least.

Bill


Charlie

unread,
May 23, 2013, 11:06:28 PM5/23/13
to
On 5/23/2013 9:45 PM, Bill Buckels wrote:
> "Charlie"<charl...@verEYEzon.net> wrote:
>> Yes, $C030 is the speaker on all Apple IIs, I believe. I assumed that
>> $C034 clicks when accessed because the //e didn't fully decode the $C030
>> address.
>
> I stand corrected then. So far so good. It seems to me I have a
> carte-blanche here with som e additional stuff by Steve Howell. I never did
> grab an FPGA programmer despite my best of intentions.

All you need is a JTAG cable to connect between your PC and the Carte
Blanche and Xilinx ISE Webpack software (very powerful stuff and free).
Verilog the programming language I use has a syntax similar to C but
programming hardware is quite a bit different than software. It was
hard for my feeble brain to deal with the fact that everything is
happening at once. Take a look at my site for more information on how
I've stumbled along learning this stuff. I haven't updated it since I
started playing around with Super HiRes on the //e but will when I get
it all together.

http://noboot.com/charlie/Charlie%27s%20Stuff.htm

> Is that part of what you are working-on here Charlie?

Yes, my stuff is just an extension of what Alex Freed and Steve Howell
did. My main "claim to fame" was adding Super HiRes to the Carte
Blanche VGA output on my Apple IIgs. With that I came up with a cable
and code to output 12 bit video so that all 4096 of the SHR colors could
be displayed. It seemed to me that it wouldn't be that hard to add SHR
to a //e, but I mainly use the IIgs and never got around to it till now.

> Regardless, I should really spend some time with my GS and its video modes
> at the very least...

GS video conversions would be nice additions to your already great site.

> It seems to me that you are a long ways past WASP now... just an
> observation.

I just plod along with whatever hits me as fun at the time. Right now
this is fun.

Charlie

Michael J. Mahon

unread,
May 24, 2013, 2:30:15 PM5/24/13
to
And a very easy way to do it on a //e is the Video Overlay Card.
0 new messages