mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 08:49:37 +00:00
Initial draft.
parent
6c16906f50
commit
508dfb4259
37
Apple-IIe-Memory-Paging.md
Normal file
37
Apple-IIe-Memory-Paging.md
Normal file
@ -0,0 +1,37 @@
|
||||
Apple provides multiple overlapping paging mechanisms which in total divide an Apple IIe's address space up into 12 distinct segments. Those are:
|
||||
|
||||
# 0000—0200
|
||||
Reading and writing: contains auxiliary RAM if `ALTZP` is set. Contains base RAM otherwise.
|
||||
|
||||
# 0300—0400; 0800—1000; 2000—C000
|
||||
Reading: contains base RAM if `80STORE` is set or `RAMRD` is reset; contains auxiliary RAM otherwise.
|
||||
Writing: as per reading, but regarding `RAMWRT` rather than `RAMRD`.
|
||||
|
||||
# 0400—0800
|
||||
Reading: contains auxiliary RAM if either (i) both `80STORE` and `PAGE` are set; or (ii) `80STORE` is reset and `RAMRD` is set. Contains base RAM otherwise.
|
||||
|
||||
Writing: as per reading, but regarding `RAMWRT` rather than `RAMRD`.
|
||||
|
||||
# 1000—2000
|
||||
Reading: contains auxiliary RAM if either (i) `80STORE` and `PAGE` are set and `TEXT` is reset; or (ii) `80STORE` is reset and `RAMRD` is set. Contains base RAM otherwise.
|
||||
|
||||
Writing: as per reading, but regarding `RAMWRT` rather than `RAMRD`.
|
||||
|
||||
# C000—C100
|
||||
Never mapped to RAM. Always contains the internal and card IO.
|
||||
|
||||
# C100—C300; C400—D000
|
||||
Contains ROM if `RDCXROM` is set. Otherwise is unmapped, allowing cards to respond.
|
||||
|
||||
# C300—C400
|
||||
Contains ROM if either of `RDCXROM` or `RDC3ROM` is set. Otherwise is unmapped, allowing cards to respond.
|
||||
|
||||
# D000—E000
|
||||
Reading: contains ROM if the language card `read` flip flop is *disabled*. Contains base RAM if the flip flop is enabled and `RAMRD` is reset. Otherwise contains auxiliary RAM.
|
||||
|
||||
Writing: empty if the language card `write` flip flop is *enabled*. Contains base RAM if the flip flop is disabled and `RAMWRT` is reset. Otherwise contains auxiliary RAM.
|
||||
|
||||
The portion of RAM accessed depends upon the language card's `BANK2` flip flop.
|
||||
|
||||
# E000—10000
|
||||
As per D000—E000 except that `BANK2` does not affect the portion of RAM exposed.
|
Loading…
Reference in New Issue
Block a user