[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple IIe Memory Map



On Sat, 5 Nov 2005, simcop2387 wrote:

After finding a copy listing of the memory map of the Apple IIe I've begun
implementing it and all related hardware (I still don't have the core yet,
that'll take another weekend probably)

If you don't need the //e features it might be easier to start with the ][+ which is much simpler.

I've been looking at the source code to YAE and SDDApple and it would seem
this is the memory map for $C000-$C07F (i'd like to know if i have this
correct)

All the $C000-C0FF area is "softswitches", i.e., memory-mapped i/o.

$C000-$C00F	Keyboard Input
$C010-$C01F	Keyboard Strobe/SoftSwitches? (i need to read more on this)

The key hit appears in $C00x with its high bit set, until you hit $C01x, which resets the high bit in $C00x.

$C020-$C02F	Tape Output?

You can prolly ignore that.

$C030-$C03F	Speaker Output (appears to be toggle based)

It is.

$C050-$C057	Video Routines? (clear screen, and a few others?)

Yeah, there's mode changes (lo-res, hi-res, page 1, page 2, graphics, text, etc) there.

$C060-$C060	Tape IN?

You can prolly ignore that too.

$C061-$C067	Buttons and Paddles
$C070-$C07D	(bit confused on this one) but it appears to trigger the
paddles

I'm not sure how to handle that either, except the buttons and Open Apple/Solid Apple are mapped to the same addresses.

$C07E-$C07F	would appear to be something to do with what YAE calls IOUDIS?
and possibly HiRes?

That's //e-specific stuff and you can do a ][+ without it if you want.

$C080-$C0FF	appear to be related to slot cards (address>>4 & 7 gives you
the slot)

Yeah. $C09x = slot 1, $C0Ax = slot 2, etc. I think $C08x might control the top 12K of the memory map which is switchable between RAM and ROM. (You'll need that for Oregon Trail.)

-uso.