Chips and Technologies Super VGA Chip Sets: 82c451 256k DRAM max 800x600 16col 82c452 1M DRAM max 640x480 256col, 1024x768 16col 82c453 1M VRAM max 800x600 256 col 82c455 256k DRAM Flat Panel version 82c456 256k DRAM do 94h (R/W): Setup Control Register for Microchannel boards bit 0-2 Reserved 3 Enables Adapter VGA if set 4 Enters Setup Mode if set 5-7 Reserved Note: This is the same register as 46E8h. 100h (R): Microchannel ID low bit 0-7 Bit 0-7 of Microchannel Card ID 101h (R): Microchannel ID high bit 0-7 Bit 8-15 of Microchannel Card ID 102h (R/W): Global Enable bit 0 VGA Awake/Asleep 103h (R/W): Multible Enable (Only in Setup Mode) bit 0-4 Multible VGA Enable 6 Extension registers at 3B6h/7h if set, 3D6h/7h if not. 7 Enable VGA extensions if set 104h (R): Global ID (Setup) (Only in Setup Mode) bit 0-7 Chip I/D. 0A5h if Chips and Tech Chip set. 3C3h (R/W): Setup Control PS/2 bit 0 Enables motherboard VGA if set 4 Enters Setup mode if set 3d4h index 22h (R/W): CPU Data Latch or Color Compare from last read 3d4h index 24h (R/W): Attribute Controller flip/flop 3d6h index 0 (R): Chip Version bit 0-3 Revision number 4-7 Chipcode: 0: 451 1:452 2:455 3:453 5:456 3d6h index 1 (R/W): DIP Switch 3d6h index 2 (R/W): CPU Interface bit 0 16bit memory if set 1 16 bit I/O if set (82c453 Only) Fast Font Enable ??? The byte written to memory is used as a mask for painting foreground color to the pixels with the corresponding bit set and background color to the rest. 2 Fast MCA buscycle decoding if set 3-4 (82c453 Only) Attribute port pairing 0: Normal Attribute adressing 1: 3C1h is both read and write, 8 and 16 bit. 2: 3C1h is both read and write, 8 bit only. 5 (82c453 Only) 10 bit I/O decodning if set, 16 bit else 6 (82c453 Only) Pel Panning Control 7 (Read Only) Attribute flip-flop status 3d6h index 3 (R/W): ROM Interface bit 0 Disable on-card ROM if set 3d6h index 4 (R/W): Memory Mapping bit 2 (82c451/5/6) Enable bank access if set 0-1 (82c452/3) Display Memory Size: 0: 256Kb, 1: 512Kb, 2: 1Mb. 2 (82c452/3) CRTC Address can cross bank boundaries if set 3d6h index 5h (R/W): Sequencer Control 3d6h index 6h (R/W): DRAM Interface 3d6h index 8h (R/W): General Purpose 3d6h index 9h (R/W): General Purpose 3d6h index Ah (R/W): Cursor Address Top (82c452/3 Only) bit 0-1 Cursor Address bit 16,17 2-7 Reserved 3d6h index Bh (R/W): CPU Paging (82c451/5/6) bit 0-1 Bank number in 64k chunks. Note: This Bank register is used if in a 256 color mode and the chip is a 82c451/5/6. 3d6h index Bh (R/W): Memory Paging Register (82c452/3) 0 Enable extended paging (256 color paging) if set 1 Dual Page Enable if set. 2 CPU Address divide by 4 (256 color addressing) 3d6h index Ch (R/W): Start Address Top (82c452/3 Only) bit 0-1 Display Start Address bit 16,17. 3d6h index Dh (R/W): Auxiliary Offset Register bit 0 Bit 8 of Offset field. If set each line is >255 words. 1 Bit 8 of simulated Offset field. 3d6h index Eh (R/W): Text Mode (82c452 Only) bit 0 Extended text Mode Control ?? 1 Enable anti-aliased fonts if set 3d6h index 10h (R/W): Single/Low Map (82c452/3 Only) bit 0-5 (82c452) Bank no in 4K/16K chunks. 0-7 (82c453) Bank no in 1K/4K chunks. Note: This Bank register is used if in single-paging mode or if addressing the lower half (32 or 64Kb) of the adapters address range. 3d6h index 11h (R/W): High Map (82c452/3 Only) bit 0-5 (82c452) Bank no in 4K/16K chunks. 0-7 (82c453) Bank no in 1K/4K chunks. Note: This Bank register is used if addressing the upper half (32 or 64Kb) of the adapters address range. 3d6h index 20h (R/W): Sliding Unit Delay 3d6h index 21h (R/W): Sliding Hold A 3d6h index 22h (R/W): Sliding Hold B 3d6h index 23h (R/W): Write Mask Control (82c453 Only) bit 0 Enable VRAM Write Mask function if set 1-2 Write Bit Mask Select: 0: Write Bit Mask Pattern Register (3d6h index 24h) 1: Graphics Controller Bit Mask (3CEh index 8) 2: Rotated CPU byte 3 Enable Fast Read/Modify/Write function if set 3d6h index 24h (R/W): Write Bit Mask Pattern (82c453 Only) bit 0-7 Write Bit Mask (if 3d6h index 23h bit 1-2 =0) 3d6h index 26h (R/W): Configuration (82c453 Only) bit 0 PC/AT if set, PS/2 else 1-2 VRAM memory 0: 512k 16 chips of 64k x4 1: 512k 4 chips of 256k x4 2: 1M 8 chips of 256k x4 3: 512k 8 chips of 64k x4 ????? maybe 256k ?? 3d6h index 27h (R/W): Force Sync State 3d6h index 28h (R/W): Video Interface 3d6h index 29h (R/W): External Sync Control 3d6h index 2Ah (R/W): Frame Interrupt Count (82c452 Only) bit 0-4 Generate Vertical Interrupt every (n+1) frames 3d6h index 2Bh (R/W): Default Video 3d6h index 2Ch (R/W): Force Horizontal High 3d6h index 2Dh (R/W): Force Horizontal Low 3d6h index 2Eh (R/W): Force Vertical High 3d6h index 2Fh (R/W): Force Vertical Low 3d6h index 30h (R/W): Graphics Cursor Start Address High bit 0-7 Bit 8-15 of the Cursor Start Address. 3d6h index 31h (R/W): Graphics Cursor Start Address Low bit 0-7 Lowest 8 bits of the Cursor Start address. 3d6h index 30h and index Ah forms the upper 10 bits. In 256 color modes this address has a granularity of 16 bytes and 4 bytes in 16 color modes. 3d6h index 32h (R/W): Graphics Cursor End Address bit 0-7 End address of the cursor bit map. 3d6h index 33h (R/W): Graphics Cursor X Position High bit 0-3 Bits 8-11 of the X coordinate of the cursor. 3d6h index 34h (R/W): Graphics Cursor X Position Low bit 0-7 Lower 8 bits of the X coordinate of the cursor. 3d6h index 35h (R/W): Graphics Cursor Y Position High bit 0-3 Bits 8-11 of the Y coordinate of the cursor. 3d6h index 36h (R/W): Graphics Cursor Y Position Low bit 0-7 Lower 8 bits of the cursor Y coordinate. 3d6h index 37h (R/W): Graphics Cursor Mode bit 0 Cursor Enabled if set 1 Cursor Status enable 2 Horizontal Zoom. Zoom to 64 pixels wide if set. (Normally 32 pixels wide). 3 Cursor Blink enabled if set 4 Cursor Blink Rate. 8 frames if clear, 16 if set 3d6h index 38h (R/W): Graphics Cursor Plane Mask bit 0 Enables graphics cursor in bit plane 0 if set 1 Enables graphics cursor in bit plane 1 if set 2 Enables graphics cursor in bit plane 2 if set 3 Enables graphics cursor in bit plane 3 if set 3d6h index 39h (R/W): Graphics Cursor Color 0 bit 0-7 Background color of Graphics Cursor. 3d6h index 3Ah (R/W): Graphics Cursor Color 1 bit 0-7 Foreground color of Graphics Cursor. 3d6h index 44h (R/W): Scratch #0 Register (82c453 Only) bit 0-7 Available 3d6h index 45h (R/W): Scratch #1/Foreground Color (82c453 Only) bit 0-7 Used as foreground color if in Fast Font Paint mode, Available as scratch else. 3d6h index 50h (R/W): Panel Format (82c455/6 Only) bit 0-1 Frame Rate Control 0: No gray scale simulated for mono, 8 colors simulated for color panels. 1: 4 simulated colors for color panels only (64 colors displayed). 2: 64 gray levels simulated for mono. panels only. 2-3 Pulse Width Modulation 0: No gray scales for mono or color systems. 1: 4 colors supported by the color panels only (64 colors displayed). 2: 16 gray levels supported by the mono panels only. 3: 256 gray levels supported by the color single panels only. 3d6h index 51h (R/W): Panel Type (82c455/6 Only) bit 0 Double drive if set, single else 1 Double panel if set, single else 2-3 Type of display 0=LCD, 1=CRT, 2=Plasma or Electrolum. 4-5 0=Color panel 3 bit data pack 1=Color Panel 1 bit data pack 2=Monochrome Panel 6 Flat Panel Compatability enabled if set 7 Text Video output polarity 3d6h index 52h (R/W): Panel Size (82c455/6 Only) bit 0-1 Horizontal Size of panel 1=640 pixels, 2=720 pixels 3-6 Vertical Size of panel 1=200 lines, 2=350, 4=400, 8=480 lines 3d6h index 55h (R/W): Text Mode 350_A (82c455/6 Only) bit 0-3 (Number of blank lines)-1 inserted between text rows I.e. if 5, insert 6 blank lines after a text line. 4 If clear lines are inserted. Note: This register is used if in a 350 line text mode and fonts are larger than 8 lines. 3d6h index 56h (R/W): Text Mode 350_B (82c455/6 Only) bit 0-3 (Number of blank lines)-1 inserted between text rows 4 If clear lines are inserted. Note: This register is used if in a 350 line text mode and fonts are smaller than or equal to 8 lines. 3d6h index 57h (R/W): Text Mode 400 (82c455/6 Only) bit 0-3 (Number of blank lines)-1 inserted between text rows 4 If clear lines are inserted. Note: This register is used if in a 400 line text mode. 3d6h index 58h (R/W): Graphics Mode 350 (82c455/6 Only) bit 0-3 Number of scan lines between stretch/delete 4 Enable vertical Stretching if set 5 Enable vertical deletion if set 6 Increment (0-3) every other period ?? Note: This register is used if in a 350 line graphics mode. 3d6h index 59h (R/W): Graphics Mode 400 (82c455/6 Only) bit 0-3 Number of scan lines between stretch/delete 4 Enable vertical Stretching if set 5 Enable vertical deletion if set 6 Increment (0-3) every other period ?? Note: This register is used if in a 400 line graphics mode. 3d6h index 60h (R/W): Blink Rate Control (82c455/6 Only) bit 0-5 Blink Rate. Character Blink Freq = Vertical sync Freq * (Blink rate+1) Cursor blink freq = Character Blink Freq *2. 6-7 Blink Cycle 1=25%, 2=50%, 3=75% 3d6h index 61h (R/W): Smartmap Control (82c455/6 Only) bit 0 Enable Smartmap if set 1-4 Threshold for (Foreground - Background) diff if diff less than the threshold the foreground and background colors will be spread (See 3d6h index 62h). 5 Smartmap Saturation value 6 (82c456 Only) Enhanced text if set (reverses attributes 7h and Fh) 3d6h index 62h (R/W): Smartmap Shift Parameter (82c455/6 Only) bit 0-3 Number of levels to shift foreground color when too little difference (See 3d6h index 61h bit 1-4). 4-7 No of levels to shift background color. 3d6h index 63h (R/W): Graphics Color Mapping Control (82c455/6 Only) bit 0-3 Threshold color value for mono output. All colors >= this value will be set to 1, all lower to 0. 4 Use upper 4 bits of 256 color if set, lower if not. 5 Enable internal color lookup table if set 6 Write protect internal color look up table 7 Graphics output polarity 3d6h index 6Dh (R/W): FRC and Palette Control (82c456 Only) bit 3 Enable Frame Rate Control 4-5 Maximum number of gray levels. 6-7 Usage of External Palette: 0: Bypass 1: Bypass for 16 color modes, use for 256 color. 2: Use 3: 16 grays for 16 color modes, 64 for 256 color. 3d6h index 6Eh (R/W): Polynomial FRC Control (82c456 Only) bit 0-3 Polynomial N value for Frame Rate Control 4-7 Polynomial M value. 46E8h (R/W): Setup Control PC/AT Register bit 0-2 Reserved 3 Enables Adapter VGA if set 4 Enters Setup Mode if set 5-7 Reserved Note: This is the same register as 94h. Most every index of 3d6h is used by one one or more chip. Bank Switching: Bank switching is dependent on Chip version: 16 color modes 256 color modes Chip #bank regs #Banks Granularity #banks Granularity 82c451/5/6 1 4 64Kbytes 82c452 2 64 4Kbytes 64 16Kbytes 82c453 2 256 1Kbytes 256 4Kbytes For the 82c452 & 3 the window to display memory can start on any boundry fitting the granularity of the chip/display mode. When using 2 bankregisters, the adress range available to the adapter is split equally between the two bank registers. I.e. A000h-A7FFh uses one bank, and A800h-AFFFh the other. (Or A000h-AFFFh and B000h-BFFFh respectively if using the full 128 Kbytes range). ID Chips and Technologes Chip Set: {Enter Setup Mode} port[$3c3]:=port[$3c3] or 16; if port[$104]=$a5 then CHIPS_TECH_CHIP_SET !!!!! {Leave Setup Mode} port[$3c3]:=port[$3c3] and $ef; ID Which Chips and Tech VGA {Extension Enabled} port[$3d6]:=0; case port[$3d7] shr 4 of 2:CHIP_82c455 !!! 3:CHIP_82c453 !!! 5:CHIP_82c456 !!! 1:begin port[$3d6]:=$3a; old_value:=port[$3d7]; port[$3d7]:=$aa; value:=port[$3d7]; port[$3d7]:=old_value; if value=$aa then CHIP_82c452 !!! else CHIP_82x451 !!! end; end; Video Modes: 60h T 132 25 16 (8x16) 61h T 132 50 16 (8x8) 6Ah G 800 600 16 planar 70h G 800 600 16 planar 71h G 960 720 16 planar Cardinal only! 72h G 1024 768 16 planar 78h G 640 400 256 packed Not documented/not all boards 79h G 640 480 256 packed 7Ah G 720 540 256 packed Not documented/not all boards 7Bh G 800 600 256 packed 7Ch G 800 600 256 packed (82c453 Only) 7Eh G 1024 768 256 packed (82c453 Only) Bios Extensions: ----------105F00----------------------------- INT 10 - Get Controller Information (Chips and Technologies Super VGA) AX = 5F00h Return: AL = 5F If extended VGA control function supported BL = CHIP Type: Bits 4-7: 0=82c451 1=82c452 2=82c455 3=82c453 5=82c456 Bits 0-3: Revision Number BH = Video Memory Size 0=256 Kbytes 1=512 Kbytes 2=1 Megabyte CX = Miscellaneous Information Bit 0 Dac Size. 0=6bit, 1=8bit 1 System Environment. 0=PC/AT, 1=PS/2 2 Extended text modes supported by BIOS 3 Reserved 4 Extended graphics modes supported by BIOS 5 Resserved 6 Graphics Cursor supported by BIOS 7 Anti Alias font supported by BIOS 8 Preprogrammed emulation supported by BIOS 9 Auto emulation supported by BIOS 10 Variable mode set at cold boot supported by BIOS 11 Variable mode set at warm boot supported by BIOS 12 Emulation mode set at cold boot supported by BIOS 13 Emulation mode set at warm boot supported by BIOS 14-15 Reserved ----------105F01----------------------------- INT 10 - Set Emulation Mode (Chips and Technologies Super VGA) AX = 5F01h BL = Operation Mode 0-1 Reserved 2 Enable CGA Emulation 3 Enable MDA Emulation 4 Enable Hercules Emulation 5 Enable EGA Emulation 6 Enable VGA Emulation Return: AL = 5Fh If function supported AH = Return Status 1 If Function Succesfull, 0 else ----------105F02----------------------------- INT 10 - Auto Emulation Control (Chips and Technologies Super VGA) AX = 5F02h Auto Emulation Control BL = Selection 0= Enable Auto Emulation 1= Disable Auto Emulation Return: AL = 5Fh If function supported AH = Return Status 1 If Function Succesfull, 0 else ----------105F03----------------------------- INT 10 - Set Power-on Video Configuration (Chips and Technologies Super VGA) AX = 5F03h BL = Configuration 0: Set display mode as specified in the CX register at power-up. CL=Display Mode CH=Bits 0-1 Scanlines 0=200 Lines 1=350 Lines 2=400 Lines Bit 7 Performance 0= Reset after next boot 1= Set until changed 1: Set Emulation mode as specified in the CX register at power-up. CL=Emulation Mode (See 5F01h) CH=Bit 7 Performance 0= Reset after next boot 1= Set until changed Return: AL = 5Fh If function supported AH = Return Status 1 If Function Succesfull, 0 else ----------105F90----------------------------- INT 10 - Return Save/Restore buffer size (Chips and Technologies Super VGA) AX = 5F90h CX = Mask State Bit 0 Save/Restore video hardware 1 Save/Restore BIOS data state 2 Save/Restore DAC state 15 Save/Restore type 0= Save/Restore All state information 1= Save/Restore super state information Return: AL = 5Fh If function supported BX = Number of 64byte blocks required ----------105F91----------------------------- INT 10 - Save State (Chips and Technologies Super VGA) AX = 5F91h CX = Mask State Bit 0 Save video hardware 1 Save BIOS data state 2 Save DAC state 15 Save type 0= Save All state information 1= Save super state information ES:BX -> Buffer to save in. Return: AL = 5Fh If function supported ----------105F92----------------------------- INT 10 - Restore State (Chips and Technologies Super VGA) AX = 5F92h CX = Mask State Bit 0 Restore video hardware 1 Restore BIOS data state 2 Restore DAC state 15 Restore type 0= Restore All state information 1= Restore super state information ES:BX -> Buffer to restore from. Return: AL = 5Fh If function supported