PRM: NV1 Real Mode engine¶
Contents
Introduction¶
Todo
figure out what the fuck this engine does
The MMIO registers¶
-
8-bit space
nv1-prm
[0x8000]
¶ -
nv1-mmio
0x6c0000: PRM
Todo
write me
Address Name Description 0x80 UNK0080 ??? 0x100 INTR Interrupt status 0x140 INTR_ENABLE Interrupt enable 0x200 VGA_CONFIG VGA emulation config 0x400 MPU_STATE MPU state 0x1f00 ALOG_CONFIG Access log configuration 0x1f10 ALOG_POS Access log current position 0x1f20 ALOG_IGNORE_A Access log ignore mask A 0x1f24 ALOG_IGNORE_B Access log ignore mask B
The IO ports¶
-
8-bit space
nv1-prmio
[0x1000]
¶ -
nv1-mmio
0x6d0000: PRMIO
Todo
write me
Address Name Description 0x201 GAME_PORT Game port 0x3c6 PAL_MASK Palette index mask 0x3c7 PAL_READ Palette read index 0x3c8 PAL_WRITE Palette write index 0x3c9 PAL_DATA Palette data
VGA registers¶
Todo
write me
- SR 0x02: PLANE_WRITE_MASK
- bits 0-3: enable writes to corresponding planes
- SR 0x03: FONT_SELECT
- bits 0-1: bits 0-1 of font A select
- bits 2-3: bits 0-1 of font B select
- bit 4: bit 2 of font A select
- bit 5: bit 2 of font B select
- SR 0x04: MEMORY_CONTROL
- bit 1: 1 if >64kiB memory on card [unused by hw]
- bit 2: - 0: odd/even - 1: planar or chained mode
- bit 3: - 0: planar or odd/even mode - 1: chained mode
Palette registers¶
VGA palette registers provided by PRM are simply aliases of DAC registers, except data port that also performs conversion.
-
reg8
nv1-io-pal-mask
¶ -
nv1-prmio
0x3c6: PAL_MASK
All accesses forwarded to
nv1-pdac-pal-mask
.
-
reg8
nv1-io-pal-read
¶ -
nv1-prmio
0x3c7: PAL_READ
All accesses forwarded to
nv1-pdac-pal-read
.
-
reg8
nv1-io-pal-write
¶ -
nv1-prmio
0x3c8: PAL_WRITE
All accesses forwarded to
nv1-pdac-pal-write
.
-
reg8
nv1-io-pal-data
¶ -
nv1-prmio
0x3c9: PAL_DATA
All accesses forwarded to
nv1-pdac-pal-data
. Ifnv1-prm-vga-config
.DAC_WIDTH field is set to FULL, data is passed through unchanged. Otherwise, data is shifted left by 2 bits on writes, and 2 bits right on reads.
Game port¶
PRM provides ISA-style game port access:
-
reg8
nv1-io-game-port
¶ -
nv1-prmio
0x201: GAME_PORT
All accesses forwarded to
nv1-pdac-game-port
.