From 508dfb42599ca1c844c28a61004d6c38cf3b984a Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 30 Jul 2018 12:14:46 -0400 Subject: [PATCH] Initial draft. --- Apple-IIe-Memory-Paging.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Apple-IIe-Memory-Paging.md diff --git a/Apple-IIe-Memory-Paging.md b/Apple-IIe-Memory-Paging.md new file mode 100644 index 0000000..78de24b --- /dev/null +++ b/Apple-IIe-Memory-Paging.md @@ -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. \ No newline at end of file