From 5067554a9e175bae830345e2c9633bcd6f0f352d Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Wed, 8 Aug 2018 16:43:14 -0400 Subject: [PATCH] Minor correction on C0XX; it's not just RAM that doesn't appear. And switched to a more reader-friendly way of specifying ranges. --- Apple-IIe-Memory-Paging.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Apple-IIe-Memory-Paging.md b/Apple-IIe-Memory-Paging.md index 9684595..d5dafe4 100644 --- a/Apple-IIe-Memory-Paging.md +++ b/Apple-IIe-Memory-Paging.md @@ -1,53 +1,53 @@ Apple provides multiple overlapping paging mechanisms which in total divide an Apple IIe's address space up into thirteen distinct segments. # Segments -## [0000, 0200) +## 0000–01FF Reading and writing: contains auxiliary RAM if `ALTZP` is set. Contains base RAM otherwise. -## [0300, 0400); [0800, 2000); [4000, C000) +## 0300–03FF; 0800–1FFF; 4000–BFFF Reading: contains base RAM if `RAMRD` is reset; contains auxiliary RAM otherwise. Writing: as per reading, but regarding `RAMWRT` rather than `RAMRD`. -## [0400, 0800) +## 0400–07FF Reading: contains auxiliary RAM if either (i) both `80STORE` and `PAGE2` 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`. -## [2000, 4000) +## 2000–3FFF Reading: contains auxiliary RAM if either (i) `80STORE`, `PAGE2` and `HIRES` 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`. -## [C000, C100) -Never mapped to RAM. Always contains the internal and card IO. +## C000–C0FF +Never mapped to RAM or ROM. Always contains internal and card IO. -## [C100, C300); [C400, C800) +## C100–C2FF; C400–C7FF Contains ROM if `RDCXROM` is set. Otherwise is unmapped, allowing cards to respond. -## [C300, C400) +## C300–C3FF Contains ROM if `RDCXROM` is set or `SLOTC3ROM` is reset. Otherwise is unmapped, allowing card 3 to respond. -## [C800, D000) +## C800–CFFF Contains ROM if `RDCXROM` or `RDC8ROM` is set. Otherwise is unmapped, allowing cards to respond. `RDC8ROM` is documented only implicitly; it is set by any access within the C3 page while `SLOTC3ROM` is reset. It is reset by an access to `CFFF`, or by system reset. -## [D000, E000) +## D000–DFFF Reading: contains ROM if the language card `read` flip flop is *disabled*. Contains base RAM if the flip flop is enabled and `ALTZP` 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 `ALTZP` is reset. Otherwise contains auxiliary RAM. The portion of RAM accessed depends upon the language card's `BANK2` flip flop. -## [E000, FFFF] +## E000–FFFF As per D000—E000 except that `BANK2` does not affect the portion of RAM exposed. # Language Card Control The language card contains four flip flops: `BANK2`, `read`, `write` and `prewrite`. ## BANK2 -This selects which of two 4kb segments will appear in the region [D000, E000); it is set directly by address line 3 upon any access of the language-card switches. +This selects which of two 4kb segments will appear in the region D000–DFFF; it is set directly by address line 3 upon any access of the language-card switches. ## Read [enable] This selects whether RAM or ROM will be read in the language card area. When it is **enabled**, RAM is read. @@ -69,9 +69,9 @@ This switch affects the write flip flop; it is set to the value of address line # Older Apple IIs Prior to the IIe there was no auxiliary RAM. A single block of RAM up to 48kb exists from 0000 upwards. -Internal ROM is 12kb, so there is no mechanism for selecting between cards and ROM in the [C000, D000) region. That area is always used by cards only. +Internal ROM is 12kb, so there is no mechanism for selecting between cards and ROM in the C000–CFFF region. That area is always used by cards only. -A language card can be fitted which enables an extra 16kb of RAM in an 8kb segment and two 4kb banks in the [D000, FFFF] region, as described above. +A language card can be fitted which enables an extra 16kb of RAM in an 8kb segment and two 4kb banks in the D000–FFFF region, as described above. ## 80-column cards -Neither the II nor the II+ has any internal hardware to support 80-column output. 80-column expansion cards were normally installed in slot 3 and accessed via their card ROM. The IIe's ability to page internal ROM in [C300, C400) only allows it to provide software compatibility with those cards. \ No newline at end of file +Neither the II nor the II+ has any internal hardware to support 80-column output. 80-column expansion cards were normally installed in slot 3 and accessed via their card ROM. The IIe's ability to page internal ROM in C300–C3FF only allows it to provide software compatibility with those cards. \ No newline at end of file