Geneve logical memory map
The logical address map determines which devices or memory areas appear in the logical address space. These are the addresses as seen from the CPU or the program that is run, but they need not correspond to the same physical address at all times. The correspondence is provided by the mapper.
Native mode
The native mode is also called MDOS mode. It is the mode which the Geneve initially boots to, typically with white letters on dark blue, and 80 column display.
Memory map
0000 | Reserved | Operating system |
---|---|---|
0400 | Free space | Onboard memory or expansion |
2000 | ||
4000 | ||
6000 | ||
8000 | ||
A000 | ||
C000 | ||
E000 | ||
F000 | On-chip memory 256 bytes | Hides mapped page |
F100 | Video ports | See below |
F110 | Mapper | See link |
F118 | Keyboard | Single address F118 with 8 mirrors |
F120 | Sound chip | Single address F120 with 8 mirrors on even addresses |
F130 | Clock chip | See below |
F140 | Free space | Onboard memory or expansion |
F800 | ||
FFF8 | ||
FFFA | Decrementer | |
FFFC | NMI vector | |
FFFE |
Video ports
Decoding: 1111 0001 0000 xpp0 (pp = port number; x = don't care)
Addresses are mirrored at position+8 (F100 = F108,...)
Read | Write | |
---|---|---|
F100 (Port 0) | VRAM | VRAM |
F102 (Port 1) | Status register | Address counter or video register |
F104 (Port 2) | - | Palette register |
F106 (Port 3) | - | Indirect video register access |
Clock chip
F130 | Control register |
---|---|
F131 | Tenths of seconds |
F132 | Units of seconds |
F133 | Tens of seconds |
F134 | Units of minutes |
F135 | Tens of minutes |
F136 | Units of hours |
F137 | Tens of hours |
F138 | Units of days |
F139 | Tens of days |
F13A | Units of months |
F13B | Tens of months |
F13C | Units of years |
F13D | Tens of years |
F13E | Day of week |
F13F | Clock setting / Interrupt registers |
GPL mode
The GPL mode is the compatibility mode, which is provided to run TI-99/4A programs.
Memory map
0000 | GPL interpreter | Operating system |
---|---|---|
2000 | Free space 8 KiB | Onboard memory or expansion |
3000 | ||
3FFE | ||
4000 | DSR space | Normally used by the GeneveOS DSR |
6000 | Cartridge ROM contents | Loaded from disk |
8000 | Mapper | See link |
8008 | Keyboard | |
8010 | Clock chip | |
8020 | Free space 992 bytes | Also includes the "PAD RAM" (16-bit RAM of the TI-99/4A) |
8300 | Here, its speed depends on SRAM or DRAM mapping | |
8400 | Sound chip | |
8600 | External bus | Any device in the PEB that maps to this address |
8800 | Video ports | |
9000 | Speech synthesizer | if plugged into the PEB |
9800 | GRAM | |
A000 | Free space 20 KiB | |
C000 | ||
E000 | ||
F000 | On-chip memory | Hides mapped page |
F100 | Free space 3834 bytes | |
FFFA | Decrementer | |
FFFC | NMI vector | |
FFFE |
Video ports
Decoding: 1000 1wxx xxxx xpp0 (pp = port number; x = don't care; w = write)
Addresses are mirrored 64 times (8800 = 8810 = 8820 = ... 8BF0)
Read | Write | |
---|---|---|
8800 (Port 0) | VRAM | - |
8C00 (Port 0) | - | VRAM |
8802 (Port 1) | Status register | - |
8C02 (Port 1) | - | Address counter or video register |
8C04 (Port 2) | - | Palette register |
8C06 (Port 3) | - | Indirect video register access |
Clock chip
8010 | Control register |
---|---|
8011 | Tenths of seconds |
8012 | Units of seconds |
8013 | Tens of seconds |
8014 | Units of minutes |
8015 | Tens of minutes |
8016 | Units of hours |
8017 | Tens of hours |
8018 | Units of days |
8019 | Tens of days |
801A | Units of months |
801B | Tens of months |
801C | Units of years |
801D | Tens of years |
801E | Day of week |
801F | Clock setting / Interrupt registers |