Code: Select all
;Version 2019-05-04 (Sat)
;;
align wideword_sz
MCGA_g320x400x256__from13hGen__Regs:
MCGA_g320x400x256__from13hGen__MiscOutputReg:
;General Register, Miscellaneous Output (W; 0x3C2):
;;
;
; Bits:
; 0 -- I/O Address select
; Color Emulation (1) or Monochrome Emulation (0)
;
; 1 -- Enable RAM
; Enable video RAM (1) or Disable address decode (0)
;
; 2,3 -- Clock Select - ??? - I currently don't know where is the CS2 bit
; so I don't know what configuration is selected here
; CS2 CS1 CS0 Clock
; --- --- --- -----
; 0 0 0 25.175 MHz ;<--this one!!!!!!!
; 0 0 1 28.322 MHz
; -------------------------------Below this line, consider Oak-specific values
; 0 1 0 65 MHz (external clock per true VGA standard)
; 0 1 1 44.9 MHz (undefined per true VGA standard)
; 1 0 0 14.161 MHz (derived from 28.322 MHz)
; 1 0 1 18 MHz (derived from 36 MHz)
; 1 1 0 40 MHz
; 1 1 1 36 MHz
;
; 4 -- Reserved
; (0)
;
; 5 -- Page bit for odd/even
; High 64K (1) or Low 64K (0) page of memory
;
; 6 -- Horizontal Sync Polarity
; Negative (1) or Posite Vertic. Retrace (0)
;
; 7 -- Vertical Sync Polarity
; Positive (0) or Negative Vert. Retrace (0)
;
; Bits 7-6
; --------
; 00 -- reserved
; 01 -- 400 lines ;<-- This one!
; 10 -- 350 lines
; 11 -- 480 lines
;
;
;
;
;
;;
db 01100011b ;0x63
MCGA_g320x400x256__from13hGen__FeatureControlReg:
;General Register, Feature Control (RW; 0x3DA color; 0x3BA mono):
;;
;
;
;
; Bits:
; 3 -- Vertical Sync Select
; Normal (0) or Logical OR of Vertical Sync End/Vertical Display Enable (1)
;
; All other bits are Reserved
;
;;
db 00000000b ;0x00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MCGA_g320x400x256__from13hSequencerRegs:
;Sequencer Register, Index 0, Reset Register (RW; 0x3C4=0; 0x3C5):
;;
;
; Bits:
; 0 -- Asynchronous Reset
; Operating (1) or Reset (0)
;
; 1 -- Synchronous Reset
; Operating (1) or Reset (0)
;
; All other bits are reserved
;;
db 00000011b ;0x03
;Sequencer Register, Index 1, Clocking Mode Register (RW; 0x3C4=1; 0x3C5):
;;
;
; Bits:
; 0 -- 8/9 dot clocks
; Eight dots (1) or Nine Clocks (0)
;
; 1 -- Reserved
;
; 2 -- Shift Load
; If bit 4 is 0:
; Reload serializers each char clock (0) or on every other (1)
;
; 3 -- Dot clock
; Normal clock (0) or divide clock by 2 (1)
;
; 4 -- Shift 4
; Reload serializers each char clock (0) or on each fourth (1)
;
; 5 -- Screen off
; Video screen off and max mem bandwidth to CPU (1) or Normal operation (0)
;
; 6-7 -- Reserved
;;
db 00000001b ;0x01
;Sequencer Register, Index 2, Map Mask Register (RW; 0x3C4=2; 0x3C5):
;;
;
; Bits:
; 0-3 -- Map mask
; Enable (1) or disable writes (0) to the corresponding map, 0-3, with bits 0-3
;
; All other bits are reserved.
;;
db 00001111b ;0x0F
;Sequencer Register, Index 3, Character Map Select Register (RW; 0x3C4=3; 0x3C5):
;;
;
; Bits:
; 4,1,0 -- Character Map Select B
; 000
; 1st 8K of Map 2
;
; 5,3,0 -- Character Map Select A
; 000
; 1st 8K of Map 2
; NOTE: The value of Character Map Select A == Character Map Select B,
; so we will ignore Character Map Select A and use
; Character Map Select B configuration.
;
; All other bits are reserved.
;;
db 00000000b ;0x00
;Sequencer Register, Index 4, Memory Mode Register (RW; 0x3C4=4; 0x3C5):
;;
;
; Bits:
; 0 -- Reserved
;
; 1 -- Extended Memory (1)
; 0 -- No extended memory present (less than 64K)
; 1 -- Extended memory present (more than 64K; use 256K;
; also enables the Character Map Select feature)
;
; 2 -- Odd/Even (1) turn off, be sequential, for 320x400x256
; 0 -- Direct even addresses to maps 0 and 2 and odd addresses
; to maps 1 and 3.
; 1 -- If bit 3 is 0: make the CPU access data sequentially
; within a bit map.
;
; 3 -- Chain-4 (0) turn off for 320x400x256
; 0 -- If bit 2 is 1, make the CPU access data sequentially within
; a bit map by the Map Mask Register.
; 1 -- Make the two lower address bits to select the map that will
; be accessed.
;
;
; 4-7 -- Reserved
;;
db 00000110b ; -- 320x400x256
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MCGA_g320x400x256__from13hCRTCRegs:
;CRTC Controller, Index 0, Horizontal Total (RW; 0x3D4=0 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- Number of horizontal characters MINUS 5
;;
db 95 ;0x5F
;CRTC Controller, Index 1, Horizontal Display-Enable End (RW; 0x3D4=1 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- Number of total displayed characters MINUS 1
;;
db 79 ;0x4F
;CRTC Controller, Index 2, Start Horizontal Blanking Register (RW; 0x3D4=2 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- Number of total displayed characters MINUS 1
;;
db 01010000b ;0x50
;CRTC Controller, Index 3, End Horizontal Blanking Register (RW; 0x3D4=3 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-4 -- End Horizontal Blanking (2 here)
;
; 5,6 -- Display Enable Skew Control (0 here)
;
; 7 -- Test bit; must be 1
;;
db 10000010b ;0x82
;CRTC Controller, Index 4, Start Horizontal Retrace Pulse (RW; 0x3D4=4 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- Start Horizontal Retrace Pulse (84 here)
;;
db 01010100b ;0x54
;CRTC Controller, Index 5, End Horizontal Retrace Pulse (RW; 0x3D4=5 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-4 -- End Horizontal Retrace
; 5-6 -- Horizontal Retrace Delay
; 7 -- End Horizontal Blanking, Bit 5
;;
db 10000000b ;0x80
;CRTC Controller, Index 6, Vertical Total (RW; 0x3D4=6 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- 8 lower bits of number of horizontal raster scans MINUS 2
;;
db 10111111b ;0xBF
;CRTC Controller, Index 7, Overflow (RW; 0x3D4=7 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0 -- bit 8 of vertical total, reg idx 0x06
; 1 -- bit 8 of vertical total, reg idx 0x12
; 2 -- bit 8 of vertical total, reg idx 0x10
; 3 -- bit 8 of vertical total, reg idx 0x15
; 4 -- bit 8 of vertical total, reg idx 0x18
; 5 -- bit 9 of vertical total, reg idx 0x06
; 6 -- bit 9 of vertical total, reg idx 0x12
; 7 -- bit 9 of vertical total, reg idx 0x10
;;
db 00011111b ;0x1F
;CRTC Controller, Index 8, Preset Row Scan (RW; 0x3D4=8 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-4 -- preset row scan
; 5-6 -- byte panning control
; 7 -- reserved
;;
db 00000000b ;0x00
;CRTC Controller, Index 9, Maximum Scan Line (RW; 0x3D4=9 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-4 -- maximum scan line
; 5 -- start vertical blank
; 6 -- line compare
; 7 -- 200 to 400 line conversion
;;
db 01000000b ; bit 7 should be 0 to display 400 vertical lines, for 320x400x256
;db 01000001b ;0x41
;db 11100000b ;0x41
;db 00011111b ;0x41
;CRTC Controller, Index 10, Cursor Start (RW; 0x3D4=0x0A color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-4 -- cursor start
; 5 -- cursor off
; 6-7 -- reserved
;;
db 00000000b ;0x00
;CRTC Controller, Index 11, Cursor End (RW; 0x3D4=0x0B color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-4 -- cursor end
; 5-6 -- cursor skew
; 7 -- reserved
;;
db 00000000b ;0x00
;CRTC Controller, Index 12, Start Address High (RW; 0x3D4=0x0C color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- start address high
;;
db 00000000b ;0x00
;CRTC Controller, Index 13, Start Address Low (RW; 0x3D4=0x0D color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- start address low
;;
db 00000000b ;0x00
;CRTC Controller, Index 14, Cursor Location High (RW; 0x3D4=0x0E color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- cursor high
;;
db 00000011b ;0x03
;CRTC Controller, Index 15, Cursor Location Low (RW; 0x3D4=0x0F color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- cursor low
;;
db 11000000b ;0xC0
;CRTC Controller, Index 16, Vertical Retrace Start (W; 0x3D4=0x10 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 - lower 8 bits of vertical retrace pulse start position
;;
db 156 ;0x9C
;CRTC Controller, Index 17, Vertical Retrace End (W; 0x3D4=0x11 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-3 -- vertical retrace end
; 4 -- clear vertical interrupt
; 5 -- enable vertical interrupt
; 6 -- select 5 refresh cycles
; 7 -- protect registers 0 to 7 enabled (0) or disabled (1)
;;
db 10001110b ;0x8E
;CRTC Controller, Index 18, Vertical Display Enable End (RW; 0x3D4=0x12 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- vertical display enable end
;;
db 143 ;0x8F
;CRTC Controller, Index 19, Offset (RW; 0x3D4=0x13 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- offset
;;
db 40 ;0x28
;CRTC Controller, Index 20, Underline Location (RW; 0x3D4=0x14 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-4 -- underline location
; 5 -- count by 4
; 6 -- double word mode, turn of for 320x400x256
; 7 -- reserved
;;
;db 01000000b ;0x40
db 00000000b ;0x00 -- disable double word mode for 320x400x256
;CRTC Controller, Index 21, Start Vertical Blanking (RW; 0x3D4=0x15 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- start vertical blank -- lower 8 bits of 10-bit register
;;
db 150 ;0x96
;CRTC Controller, Index 22, End Vertical Blanking (RW; 0x3D4=0x16 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- end vertical blank
;;
db 185 ;0xB9
;CRTC Controller, Index 23, CRTC Mode Control (RW; 0x3D4=0x17 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0 -- compatibility mode support
; 1 -- select row scan counter
; 2 -- horizontal retrace select
; 3 -- count by two
; 4 -- reserved
; 5 -- address wrap
; 6 -- byte mode (1) or word mode (0), for 320x400x256 must be 1
; 7 -- hardware reset
;;
;db 10100011b ;0xA3
db 11100011b ;enable byte mode for 320x400x256
;CRTC Controller, Index 24, Line Compare (RW; 0x3D4=0x18 color; 0x3B4 mono; 0x3D5 color; 0x3B5 mono):
;;
;
;
;
; Bits:
; 0-7 -- lower 8 bits of compare target.
; Bit 8 is in Overflow register index 7.
; Bit 9 is in Maximum Scan Line register index 9.
;;
db 11111111b ;0xFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MCGA_g320x400x256__from13hGraphicsRegs:
;Graphics Controller Register, Index 0, Set/Reset (RW; 0x3CE=0; 0x3CF):
;;
;
; Bits:
; 0-3 -- Set/Reset
;
; All other bits are reserved. Set to 0; undefined on read.
;;
db 00000000b ;0x00
;Graphics Controller Register, Index 1, Enable Set/Reset (RW; 0x3CE=1; 0x3CF):
;;
;
;
;
; Bits:
; 0-3 -- Enable Set/Reset
; 1 -- If write mode is 0, and the bit for the map is 1 here,
; write memory address with the value of the Set/Reset register.
;
; 0 -- If write mode is 0, and the bit for the map is 0 here,
; write memory address with the value of system CPU.
;
; All other bits are reserved. Set to 0; undefined on read.
;;
db 00000000b ;0x00
;Graphics Controller Register, Index 2, Color Compare (RW; 0x3CE=2; 0x3CF):
;;
;
;
;
; Bits:
; 0-3 -- Color compare
; Color Compare Map n, where n is the bit position
;
; All other bits are reserved. Set to 0; undefined on read.
;;
db 00000000b ;0x00
;Graphics Controller Register, Index 3, Data Rotate (RW; 0x3CE=3; 0x3CF):
;;
;
;
;
; Bits:
; 0-2 -- Data rotate
; Number of bits to right-rotate CPU data (0 here)
;
; 3,4 -- Function select
; 00 -- unmodified <-- this one!!!!!!
; 01 -- AND data with latch
; 10 -- OR data with latch
; 11 -- XOR data with latch
;
; All other bits are reserved. Set to 0; undefined on read.
;;
db 00000000b ;0x0
;Graphics Controller Register, Index 4, Read Map Select (RW; 0x3CE=4; 0x3CF):
;;
;
;
;
; Bits:
; 0-1 -- Read Map Select
; Select maps 0 to 3 for system read operations (map 0 here)
;
;
; All other bits are reserved. Set to 0; undefined on read.
;;
db 00000000b ;0x00
;Graphics Controller Register, Index 5, Graphics Mode (RW; 0x3CE=5; 0x3CF):
;;
;
;
;
; Bits:
; 0-1 -- Write Mode
; Select write mode 0 to 3 (0 here)
;
; 2 -- Reserved, undefined on read
;
; 3 -- Read Type
;
; 4 -- Odd/Even, disable (0), or work as CGA (1), disable for 320x400x256, ALREADY DISABLED!
;
; 5 -- Shift Register
;
; 6 -- 256 Color Mode (1) or ???????
;
; 7 -- Reserved
;;
db 01000000b ;
;Graphics Controller Register, Index 6, Miscellaneous (RW; 0x3CE=6; 0x3CF):
;;
;
;
;
; Bits:
; 0 -- Graphics Mode
; Graphics Mode (1) or Text Mode (0)
;
; 1 -- Odd/Even (0), disable for 320x400x256, already disabled!
;
; 2,3 -- Memory Map (1 here)
; Map 0 -- 0xA0000-0xBFFFF
; Map 1 -- 0xA0000-0xAFFFF
; Map 2 -- 0xB0000-0xBFFFF
; Map 3 -- 0xB8000-0xBFFFF
;
; 4-7 -- Reserved
;;
db 00000101b ;shouldn't be map 0 here for more than 64K in 320x400x256
;Graphics Controller Register, Index 7, Color Don't Care (RW; 0x3CE=7; 0x3CF):
;;
;
;
;
; Bits:
; 0-3 -- For each bit, if 0, don't participate in color
; compare cycle; if 1 participate in it for that map.
;;
db 00001111b ;0x0F
;Graphics Controller Register, Index 8, Bit Mask (RW; 0x3CE=8; 0x3CF):
;;
;
;
;
; Bits:
; 0-7 -- Bit mask
;;
db 11111111b ;0xFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MCGA_g320x400x256__from13hAttributeRegs:
;Attribute Controller Register, Index 0, Palette 0 (RW; 0x3C0=0; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 0 ;0x00
;Attribute Controller Register, Index 1, Palette 1 (RW; 0x3C0=1; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 1 ;0x01
;Attribute Controller Register, Index 2, Palette 2 (RW; 0x3C0=2; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 2 ;0x02
;Attribute Controller Register, Index 3, Palette 3 (RW; 0x3C0=3; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 3 ;0x03
;Attribute Controller Register, Index 4, Palette 4 (RW; 0x3C0=4; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 4 ;0x04
;Attribute Controller Register, Index 5, Palette 5 (RW; 0x3C0=5; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 5 ;0x05
;Attribute Controller Register, Index 6, Palette 6 (RW; 0x3C0=6; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 6 ;0x06
;Attribute Controller Register, Index 7, Palette 7 (RW; 0x3C0=7; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 7 ;0x07
;Attribute Controller Register, Index 8, Palette 8 (RW; 0x3C0=8; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 8 ;0x08
;Attribute Controller Register, Index 9, Palette 9 (RW; 0x3C0=9; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 9 ;0x09
;Attribute Controller Register, Index 10, Palette 10 (RW; 0x3C0=0x0A; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 10 ;0x0A
;Attribute Controller Register, Index 11, Palette 11 (RW; 0x3C0=0x0B; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 11 ;0x0B
;Attribute Controller Register, Index 12, Palette 12 (RW; 0x3C0=0x0C; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 12 ;0x0C
;Attribute Controller Register, Index 13, Palette 13 (RW; 0x3C0=0x0D; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 13 ;0x0D
;Attribute Controller Register, Index 14, Palette 14 (RW; 0x3C0=0x0E; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 14 ;0x0E
;Attribute Controller Register, Index 15, Palette 15 (RW; 0x3C0=0x0F; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-5 -- 0 to 64 color value
;
; All other bits are reserved
;;
db 15 ;0x0F
;Attribute Controller, Index 16, Attribute Mode Control (RW; 0x3C0=0x10; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0 -- graphics/alphanumeric
; 1 -- mono emulation
; 2 -- enable line graphics character codes
; 3 -- enable blink/select background intensity
; 4 -- reserved
; 5 -- PEL panning compatibility
; 6 -- PEL width
; 7 -- P5, P4 select
;
;;
db 01000001b ;0x41
;Attribute Controller, Index 17, Overscan Color (RW; 0x3C0=0x11; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-7 -- overscan color
;
;;
db 00000000b ;0x00 or black
;Attribute Controller, Index 18, Color Plane Enable (RW; 0x3C0=0x12; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-3 -- enable color plane
; 4-5 -- video status MUX
; 6-7 -- reserved
;
;;
db 00001111b ;0x0F
;Attribute Controller, Index 19, Horizontal PEL Panning (RW; 0x3C0=0x13; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-3 -- horizontal PEL panning
; 4-7 -- reserved
;
;;
db 00000000b ;0x00
;Attribute Controller, Index 20, Color Select (RW; 0x3C0=0x14; write 0x3C0; read 0x3C1):
;;
;
;
;
; Bits:
; 0-1 -- SC5,SC4
; 2-3 -- SC6,SC7
; 4-7 -- Reserved
;
;;
db 00000000b ;0x00
I already have the values for mode 3h, 4h, 12h and 13h.
I see that values for practically all usable text and graphics modes are found in the file TAURON30.ZIP