1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-25 18:30:07 +00:00

Initial draft.

Thomas Harte 2018-07-30 12:14:46 -04:00
parent 6c16906f50
commit 508dfb4259

@ -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.