mirror of
https://github.com/rigreco/Runge-Kutta-Simulation.git
synced 2025-02-05 10:33:44 +00:00
232 lines
10 KiB
Plaintext
232 lines
10 KiB
Plaintext
The comp.sys.apple2 Usenet newsgroup Apple II FAQs originate from
|
|
the II Computing Apple II site, 1997-2012.
|
|
|
|
Csa2 FAQs resource file: R032MMAP128.TXT
|
|
|
|
128K Apple IIe Memory Map
|
|
|
|
|
|
Note: To correctly view tables and diagrams on a super-res display,
|
|
use a mono-spaced Font such as CoPilot or PCMononspaced.
|
|
|
|
____________________________
|
|
|
|
|
|
|
|
|
|
128K Apple IIe Memory Map
|
|
|
|
by David Empson
|
|
|
|
|
|
|
|
|
|
MAIN RAM AUX RAM I/O ROM
|
|
|
|
______________ ______________
|
|
0000 |Main zero page| |Aux zero page |
|
|
|______________| |______________|
|
|
0100 | Main stack | | Aux stack |
|
|
|______________| |______________|
|
|
0200 | | | |
|
|
| | | |
|
|
0300 | | | |
|
|
|______________| |______________|
|
|
0400 | | | |
|
|
| | | |
|
|
| Main text/GR | | Aux text/GR |
|
|
| | | |
|
|
| page 1 | | page 1X |
|
|
| | | |
|
|
| | | |
|
|
|______________| |______________|
|
|
0800 | | | |
|
|
| | | |
|
|
| Main text/GR | | Aux text/GR |
|
|
| | | |
|
|
| page 2 | | page 2X |
|
|
| | | |
|
|
| | | |
|
|
|______________| |______________|
|
|
0C00 | | | |
|
|
| | | |
|
|
... ...
|
|
| | | |
|
|
|______________| |______________|
|
|
2000 | | | |
|
|
| | | |
|
|
| Main Hi-res | | Aux Hi-res |
|
|
| | | |
|
|
| page 1 | | page 1X |
|
|
| | | |
|
|
| | | |
|
|
|______________| |______________|
|
|
4000 | | | |
|
|
| | | |
|
|
| Main Hi-res | | Aux Hi-res |
|
|
| | | |
|
|
| page 2 | | page 2X |
|
|
| | | |
|
|
| | | |
|
|
|______________| |______________|
|
|
6000 | | | |
|
|
| | | |
|
|
| | | |
|
|
... ...
|
|
| | | |
|
|
| | | |
|
|
BFFF |______________| |______________| _____________
|
|
C000 | Motherboard |
|
|
| I/O |
|
|
|_____________|
|
|
C090 | Slot I/O |
|
|
| (DEVSEL) |
|
|
|_____________| _____________
|
|
C100 | | | |
|
|
| Slot CX ROM | | Int CX ROM |
|
|
| (IOSEL) | | |
|
|
| | | |
|
|
|_____________| |_____________|
|
|
C300 | Slot C3 ROM | | Int C3 ROM |
|
|
| (IOSEL) | | |
|
|
|_____________| |_____________|
|
|
C400 | | | |
|
|
| | | |
|
|
| Slot CX ROM | | Int CX ROM |
|
|
| (IOSEL) | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
|_____________| |_____________|
|
|
C800 | | | |
|
|
| Slot ROM | | |
|
|
| (IOSTROBE) | | Int C3 ROM |
|
|
| | | |
|
|
| shared | | |
|
|
| between | | |
|
|
| slots | | |
|
|
CFFF ______ ______ ______ ______ |_____________| |_____________|
|
|
D000 | || | | || | | |
|
|
| Main || Main | | Aux || Aux | | |
|
|
| || | | || | | |
|
|
| LC || LC | | LC || LC | | |
|
|
| || | | || | | |
|
|
| bank || bank | | bank || bank | | |
|
|
| 1 || 2 | | 1 || 2 | | Applesoft |
|
|
|______||______| |______||______| | |
|
|
E000 | | | | | BASIC |
|
|
| | | | | |
|
|
| | | | | ROM |
|
|
| | | | | |
|
|
| | | | | |
|
|
| Main | | Aux | | |
|
|
| | | | | |
|
|
| Language | | Language | | |
|
|
| | | | | |
|
|
| Card | | Card | | |
|
|
| | | | | |
|
|
| | | | |.............|
|
|
F800 | | | | | Monitor |
|
|
| | | | | |
|
|
| | | | | ROM |
|
|
FFFF |______________| |______________| |_____________|
|
|
|
|
(If you have a RAMWorks or similar bank-switched card in the auxiliary
|
|
slot, then any 64K bank on the card can be switched into the auxiliary
|
|
memory space. "Normal" auxiliary memory, which contains the video
|
|
buffers, is bank 0 on the card.)
|
|
|
|
|
|
The major soft-switches for bank switching control areas as follows:
|
|
|
|
AUXZP/MAINZP selects main or auxiliary RAM in 0000-01FF (zero page and
|
|
stack), and in D000-FFFF (language card), for read/write access. The
|
|
language card area is further affected by language card soft-switches
|
|
(see later).
|
|
|
|
RDMAIN/RDAUX selects main or auxiliary RAM in 0200-BFFF for read access
|
|
only. Text page 1/1X and Hi-res page 1/1X may be excluded depending on
|
|
the state of the 80STORE and HIRES soft-switches.
|
|
|
|
WRMAIN/WRAUX selects main or auxiliary RAM in 0200-BFFF for write access
|
|
only. Text page 1/1X and Hi-res page 1/1X may be excluded depending on
|
|
the state of the 80STORE and HIRES soft-switches.
|
|
|
|
80STORE enables 80-column switching of text/lo-res page 1 (0400-07FF).
|
|
The active page (main or auxiliary) is determined by the PAGE1/PAGE2
|
|
soft switch. 80STORE gives read/write access to whichever page is
|
|
active.
|
|
|
|
If 80STORE and HIRES are both enabled, then PAGE1/PAGE2 also control
|
|
switching of hi-res page 1 (2000-3FFF).
|
|
|
|
There is no special bank switching support for text or hi-res page 2/2X.
|
|
Using the double resolution modes with these pages requires using
|
|
another bank switching technique.
|
|
|
|
SLOTCXROM/INTCXROM determines whether the slot address space or
|
|
motherboard ROM is enabled for $C100-$C2FF and $C400-$C7FF.
|
|
|
|
SLOTC3ROM/INTC3ROM determines whether the slot address space or
|
|
motherboard ROM is enabled for $C300-$C3FF.
|
|
|
|
The $C800-$CFFF area (I/O Stobe) is shared between all slots, and may be
|
|
used by the internal ROM if INTC3ROM is active. An access to the
|
|
$CN00-$CNFF page (N=1 to 7) enables the expansion ROM space for slot N,
|
|
if supported by that card. An access to $CFFF disables the expansion
|
|
ROM space for all cards.
|
|
|
|
|
|
There are eight language card soft-switches to control selection of RAM
|
|
bank 1 or 2, read enable for RAM or ROM, and write enable for RAM.
|
|
|
|
Handy stub routines to access the auxiliary language card area are as
|
|
follows:
|
|
|
|
RDAUX1 SEI ; No interrupts!
|
|
LDX C088 ; Read-enable language card bank 1
|
|
STA C009 ; Switch in auxiliary language card, etc.
|
|
LDA xxxx ; Read target location (patched)
|
|
STA C008 ; Switch in main language card, etc.
|
|
LDX C08A ; Switch the ROM back in
|
|
CLI ; Enable interrupts
|
|
RTS
|
|
|
|
WRAUX1 SEI ; No interrupts!
|
|
LDX C08B ; Read/write language card bank 1
|
|
LDX C08B ; (must access twice)
|
|
STA C009 ; Switch in auxiliary language card, etc.
|
|
STA xxxx ; Write target location (patched)
|
|
STA C008 ; Switch in main language card, etc.
|
|
LDX C08A ; Switch the ROM back in
|
|
CLI ; Enable interrupts
|
|
RTS
|
|
|
|
RDAUX2 SEI ; No interrupts!
|
|
LDX C080 ; Read-enable language card bank 2
|
|
STA C009 ; Switch in auxiliary language card, etc.
|
|
LDA xxxx ; Read target location (patched)
|
|
STA C008 ; Switch in main language card, etc.
|
|
LDX C082 ; Switch the ROM back in
|
|
CLI ; Enable interrupts
|
|
RTS
|
|
|
|
WRAUX2 SEI ; No interrupts!
|
|
LDX C083 ; Read/write language card bank 2
|
|
LDX C083 ; (must access twice)
|
|
STA C009 ; Switch in auxiliary language card, etc.
|
|
STA xxxx ; Write target location (patched)
|
|
STA C008 ; Switch in main language card, etc.
|
|
LDX C082 ; Switch the ROM back in
|
|
CLI ; Enable interrupts
|
|
RTS
|
|
|
|
The C008/C009 switch controls both read and write access, unlike the
|
|
switches for the main $0200-$BFFF area, but note the different
|
|
instruction sequences needed to control read enable and read/write
|
|
enable for the language card area. (You could set up the language card
|
|
for write-only access using C081 or C089 instead of C083 or C08B, but it
|
|
won't make the code any shorter.)
|
|
|
|
|