Geneve logical memory map

From Ninerpedia
Revision as of 17:55, 26 January 2021 by Mizapf (talk | contribs) (→‎Memory map)
Jump to navigation Jump to search

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