[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Apple IIe Memory Map
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)
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)
You really need to get a copy of the Apple II Reference Manual,
and probably a real Apple II to have any hope of really understanding
this stuff.
None of these memory-mapped I/O locations does any complex
function, like clear the area of memory representing the video
screen. They only change the hardware modes or trigger hardware
operations, or read hardware values.
$C000-$C00F Keyboard Input
$C010-$C01F Keyboard Strobe/SoftSwitches? (i need to read more on this)
A reference to this address resets the high bit of the keyboard
input and "acknowledges" the keypress so that another can be
detected.
$C020-$C02F Tape Output?
$C030-$C03F Speaker Output (appears to be toggle based)
$C040-$C04F Unknown?
Each reference causes a 1 microsecond strobe output at a pin on
the "game port" on a real Apple ][. Not useful for an emulator.
$C050-$C057 Video Routines? (clear screen, and a few others?)
Sets video modes, but doesn't alter memory (clear screen).
$C060-$C060 Tape IN?
$C061-$C067 Buttons and Paddles
$C070-$C07D (bit confused on this one) but it appears to trigger the
paddles
A reference to an address in the $C07X block triggers the paddle timers
to prepare for a paddle read. For an emulator, this just warns you that
soon you will see a paddle timing loop executing, which expects to time
out in a time proportional to the selected paddle setting.
$C07E-$C07F would appear to be something to do with what YAE calls IOUDIS?
and possibly HiRes?
The IOU is a //e-specific chip, with functions not available in the ][
or ][+.
$C080-$C0FF appear to be related to slot cards (address>>4 & 7 gives you
the slot)
$C080 + slot number * 16 is the base address for a block of 16 addresses
that are decoded to control slot cards. Their functions depend on the
architecture of the slot card.
is anyone able to help clarify any of the places i seem to be misguided on
or unclear?
As I said, you really need the manual, plus hands-on experience,
to make sense of all this with enough fidelity to write an emulator.
-michael
Music synthesis for 8-bit Apple II's!
Home page: http://members.aol.com/MJMahon/
"The wastebasket is our most important design
tool--and it is seriously underused."