Post by Anthony Ortiz
I was reading Sathers' "Understanding the IIe" book and saw mention of the IO space $C100-$D000 (if I recall correctly) potentially being used as peripheral ROM space. Am I to understand that this space is used to run a peripheral card's ROM routines, and if so, what are some common examples of this? It also mentions the 80-column text card using that space for its ROM. I'd be interested in taking a look at that ROM; anyone know where I can find it, and anyone know what it's for? I initially thought that the RAMWorks card must have a ROM since it serves as an 80-Column card but then in Sathers' book he mentions that the functionality is all baked-into the IIe to such an extent that all you need is a latch and a couple of other simple circuits and poof, you got yourself an 80-column card... so I'm guessing the 80-col ROM is on the IIe somewhere but I can't find a link to it anywhere. I'd also be interested in seeing the RAM Factor ROM. Any ideas?
The Apple II supports two kinds of drivers on ROM cards:
1) Disk drives (floppy, HD), activated at boot or by the OS: ProDOS, Pascal, etc
2) Character devices (printer, modem, terminal in/out), activated via PR#, IN#
Each card has two ROM areas it can use: 256 bytes controlled by the IO Select line:
$C100-$C1FF - Card in slot 1
$C200-$C2FF - Card in slot 2
$C300-$C3FF - Card in slot 3
$C400-$C4FF - Card in slot 4
$C500-$C5FF - Card in slot 5
$C600-$C6FF - Card in slot 6
$C700-$C7FF - Card in slot 7
In addition, there is 2048 bytes of ROM space at $C800-$CFFF controlled by the IO Strobe line which is bank-switched such that only one card of the 7 can use it at a time.
The Ramworks card does not contain any ROM, although 80 column cards in the ][ & ][+ era had ROMs to manage character output to their display.
The IIc, //e, and IIGS contain special ROM which banks in over $C300-$C3FF, or from $C800-$CFFF which contains the 80-column driver. The switches to control this C3 and Cx ROM are at $C00A/$C00B and $C006/$C007.