OSDev.org https://forum.osdev.org/ |
|
Register values for VGA mode 320x400 256-color https://forum.osdev.org/viewtopic.php?f=1&t=33658 |
Page 1 of 1 |
Author: | ~ [ Wed Apr 24, 2019 3:49 pm ] |
Post subject: | Register values for VGA mode 320x400 256-color |
Code: ;Version 2019-05-04 (Sat) I need to find the register values for VGA graphics mode 320x400@256 colors.;; 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 |
Author: | alexfru [ Wed Apr 24, 2019 4:45 pm ] |
Post subject: | Re: Register values for VGA mode 320x400 256-color |
~ wrote: I need to find the register values for VGA graphics mode 320x400@256 colors. PCGPE tells how to do 320x240 and years ago it worked. Perhaps, some poking around can give you 400 lines. That page also mentions articles/book by Michael Abrash on the subject (e.g.). |
Author: | matja [ Sun Apr 28, 2019 10:30 am ] |
Post subject: | Re: Register values for VGA mode 320x400 256-color |
If you already have BIOS mode 13h then you can tweak that slightly to get 320x200 planar mode ("Mode-X") and then increase the lines to 400 : Code: void vga_set_mode_320x200_planar(void) {
vga_set_bios_mode(0x13); vga_write_seq(0x04, 0x06); // disable chain-4 vga_write_crtc(0x14, 0x00); // disable double word mode vga_write_crtc(0x17, 0xe3); // enable byte mode } void vga_set_mode_320x400_planar(void) { vga_set_mode_320x200_planar(); vga_write_crtc(0x09, 0x40); // 400 lines } |
Page 1 of 1 | All times are UTC - 6 hours |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |