  Chips and Technologies Super VGA Chip Sets:


    82c450    1M VRAM    A '453 with VRAM
    82c451  256k DRAM    max 800x600 16col
    82c452    1M DRAM    max 640x480 256col, 1024x768 16col
    82c453    1M DRAM    max 800x600 256 col
    82c455  256k DRAM    Flat Panel version
    82c456  256k DRAM    do
    82c457               do. Full color.
    F65520   1M  D/VRAM  do. Full color. max 1280x1024 16c & 800x600 256 col
    F65530   1M  D/VRAM  do. Full color. max 1280x1024 16c & 800x600 256 col
                         Supports Local Bus.
    F65510    LCD/CRT controller
    F65525    LCD/CRT controller
    F65535    LCD/CRT controller
    F65540     do
    F65545     do


Wingine series:
    64200   2M           Linear frame buffer
    64300   2M
    64310


 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 is enabled if set.

103h (R/W):  Multiple Enable
bit 0-3  Multiple VGA Enable
      4  Must be 0 for proper operation of 82c455/6/7.
      6  Extension registers at 3B6h/7h if set, 3D6h/7h if not.
      7  Extension Registers Access Enable. VGA Extension registers at 3d7h
         can only be accessed if this bit is set.
Note: This register only available in Setup Mode.

104h (R):  Global ID (Setup)                                       (not 655xx)
bit 0-7  Chip I/D.  0A5h if Chips and Tech Chip set.
Note: this register can only be read if the chip is in setup mode (46E8h/94h
      bit 4 is set)

3C3h (R/W):  Setup Control PS/2
bit   0  Enables motherboard VGA if set
      4  Enters Setup mode if set

3CAh (R):  Feature Control Register                                 (82c45x ?)
bit 0-1  If 3C2h/3CCh bits 2-3 is 2, this field selects one of 4 clocks
Note: This is an extension of a standard VGA register, see VGA.TXT for
      other fields in this register. This register can be written at 3DAh

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-2  Revision number
      3  Reserved for 450-457,64200,65510-65535, extra chipcode bit
          for the CT64300,64310, 65540,65545
    4-7  Chipcode:
          0: 451  1:452  2:455  3:453  4: 450, 5:456  6:457
          7: 65520, 8:65530, 9: 65510, 0Ah: 64200, 0Ch: CT65535
          0Bh: CT64300 (bit 3 clear), CT64310 (bit 3 set)
          0Dh: CT65540 (bit 3 clear), CT65545 (bit 3 set)

3d6h index  1  (R):  DIP Switch Register
bit 0-6  State of the DIP switches.
    0-7  (655x0) Read from Memory Address bus A on Reset.
         Bit 0-1: CPU Bus type
                   0=PI bus, 1=MC bus, 2=Local bus (65530 only), 3=ISA bus.
               2: Pixel Clock Source (OSC/)
                   0: CLK0-CLK3 are pixel clock inputs.
                      CLK0 or CLK1 is MCLK input.
                   1: CLK0 is MCLK input.
                      CLK1 is pixel clock input.
                      CLK2 is CLKSEL0 output.
                      CLK3 is CLKSEL1 output.
               3: Memory Clock Source (56M/)
                    0: MCLK = 56.644 MHz (80ns RAM)
                       If bit 2 is 0:
                         CLK0 is 50.350 MHz
                         CLK1 is 56.644 MHz (MCLK source)
                         CLK2 is 40.000 MHz
                         CLK3 is 44.900 MHz
                       If bit 2 is 1:
                         MCLK (CLK0) is 56.644 MHz
                         Clock Select 0 is 40.000 MHz
                         Clock Select 1 is 50.350 MHz
                         Clock Select 2 is user defined
                         Clock Select 3 is 44.900 MHz
                    1: MCLK = 50.350 MHz (100ns RAM)
                       If bit 2 is 0:
                         CLK0 is 50.350 MHz
                         CLK1 is 28.322 MHz (MCLK source)
                         CLK2 is 40.000 MHz
                         CLK3 is 44.900 MHz
                       If bit 2 is 1:
                         MCLK (CLK0) is 50.350 MHz
                         Clock Select 0 is 40.000 MHz
                         Clock Select 1 is 28.322 MHz
                         Clock Select 2 is user defined
                         Clock Select 3 is 44.900 MHz
               4: Transceiver Control
                  If set there are no external transceivers (pin 69 is
                  VGARD output), if clear there are external transceivers
                  (pin 69 is ENAVEE/ output).

3d6h index  2  (R/W):  CPU Interface
bit   0  Access to video memory is 16bit if set, 8bit if clear
      1  (82c450-453) I/O access is 16 bit if set, 8bit if clear
         (82c453,0 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.
         (655x0 Only) Digital Monitor Clock Mode
            0: CLK0 = 25 MHz, CLK1 = 28 MHz
            1: CLK0 = 14 MHz (56MHz /4 or 28MHz /2)
               CLK1 = 16 MHz (50MHz /3)
      2  (82c450-3,5) Fast MCA buscycle decoding if set
    3-4  (82c450,3 and 455-457) Attribute port pairing
            0: Normal Attribute addressing
            1: 3C1h is both read and write, 8 and 16 bit.
            2: 3C1h is both read and write, 8 bit only.
      5  (Not 82c451/2) 10 bit I/O decoding if set, 16 bit else
      6  (82c450,3 Only) Pel Panning Control
         (655x0 Only) If set external palette registers can be addressed
             at 83C6h-83C9h, Ie A15 is connected to RS2 on the DAC.
      7  (R) Attribute flip-flop status. If set the Attribute register (3C0h)
             is currently in Data mode.

3d6h index  3  (R/W):  ROM Interface                               (not 655x0)
bit   0  Disable on-card ROM if set.
         Enable ROM at C0000h-C7FFFh if clear.

3d6h index  4  (R/W):  Memory Mapping
bit 0-1  (82c452/3/) Display Memory Size:  0: 256Kb, 1: 512Kb, 2: 1Mb.
         (655xx) Memory Configuration
                  0: 2 x 256Kx4 D/VRAM  256K tot   8 bit datapath
                     (6554x) 1Mb ??
                  1: 4 x 256Kx4 D/VRAM  512K tot  16 bit datapath
                  2: (6554x) 1Mb
                  3: 2 x 512Kx8   DRAM    1M tot  16 bit datapath
         (643xx) Display Memory Size:  0: 256Kb, 1: 512Kb,
                  2: 1Mb/2Mb (depending on index Fh bits 0-1).
      2  (82c451/5/6/7) Enable bank access if set
         (82c452/3, 655x0) If set CRTC Address can cross bank boundaries.
      3  (82c457) If set DRAM timing is for 64Kx16 (4 WE, 1 CAS)
                  if clear for 64Kx4 (4 CAS, 1 WE).
         (655x0)  Enables bank addressing if set.
      4  (655x0)  If set VRAM interface, else DRAM interface.
      5  (655x0)  If set CPU memory write buffer is enabled.
      6  (655x0)  If set enables 0WS capability.
      7  (655x0)  If set allows faster 0WS cycle timing.

3d6h index  5h (R/W):  Sequencer Control                        (452/3/7 only)
bit   2  (82c457)  Clock Pin Polarity.
                   If set CLK0 is defined as a common clock and CLK1/S0
                   and CLK2/S1 are select outputs. If clear one of CLK0,
                   CLK1 and CLK2 is selected as the display clock.

3d6h index  6h (R/W):  DRAM Interface                            (82c452 only)

3d6h index  6h (R/W):  Palette Control Register             (64300,655x0 only)
bit   0  If set enables external DAC if 3d6h index 6 bit 0 is 0.
      1  If set disables the internal DAC.
         Causes the DAC to power down and tri-states the outputs.
      2  (655x0) If set enables 16 bit/pixel operation.
         Timing to an external DAC will be SC11486 (Tseng) compatible.
         (Two bytes output per pixel, one on the rising edge of PCLK
         and one on the falling edge).
      3  (655x0) If set 16 bit pixels are 5 red-6 green-5 blue.
         If clear they are 5 bits of each.
    2-3  (64300) DAC mode. 0: Palette, 1: 15bit, 2: 24bit, 3: 16bit
      4  If set the Sense Status bit (3C2h bit 4) is driven by the SENSE
         pin from external logic.
      5  If set bypasses the internal RAMDAC.
         This bit should always be clear.
    6-7  Color Reduction Select.
         In flat panel modes these bits determine the algorithm used to
         reduce 18 bit color data to 6 bits for mono panels.
          0: NTSC weighting, 1: Equivalent weight, 2: Green only, 3: Color.

3d6h index  8h (R/W):  General Purpose Output Select B Register.
                                                            (451/2/5/6/7 only)
bit   0  Select bit B for ERMIN/ pin.
      1  Select bit B for TRAP/ pin.
      2  (82c457) If set PNL14 pin outputs panel data bit 14,
         if clear PNL14 pin outputs DATEN/.

3d6h index 08h W(R/W):                                           (64300,65535)
bit 0-7  (64300) Low bits of the Linear Frame buffer address ?
   8-15  (64300) Linear Frame buffer address bits 24-31.
   3-14  (65535) Linear Frame Buffer address bits 20-31.
    0-?  (6554x) Linear Frame Buffer address bits 20-

3d6h index  9h (R/W):  General Purpose Output Select A Register.
                                                            (451/2/5/6/7 only)
bit   0  Select bit A for ERMIN/ pin.
      1  Select bit A for TRAP/ pin.
         Select A and B determine the output on the pin:
           B      A        Output
         clear  clear      Normal
         clear   set       3-State
          set   clear      Force low
          set    set       Force high

3d6h index 0Ah (R/W):  Cursor Address Top                      (82c452/3 Only)
bit 0-1  Cursor Address bit 16,17
    2-7  Reserved

3d6h index 0Bh (R/W):  CPU Paging                          (82c451/5/6/7 only)
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/7.

3d6h index 0Bh (R/W):  Memory Paging Register           (82c452/3, 655x0 only)
bit   0  Enable extended paging (256 color paging) if set
      1  If set Dual Pages are enabled. A0000h-A7FFFh uses 3d6h
         index 10h, A8000h-AFFFFh uses 3d6h index 11h.
      2  CPU Address divide by 4 (256 color addressing)
      3  (655x0) If set CPU address divide by 2 is enabled.
      4  (65530) If set Memory is mapped as 1MB linear Memory.
    4-5  (64300) Set to 3 to enable Linear Frame buffer, 0 to disable

3d6h index 0Ch (R/W):  Start Address Top          (82c452/3, 64300,655x0 Only)
bit 0-1  (655xx) Display Start Address bit 16-17.
    0-2  (64300) Display Start Address bit 16-18.
      4  (64300) Bit 8 of the Single/Low bank register. Bits 0-7 are in 3d6h
            index 10h

3d6h index 0Dh (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.
      2  (643xx) CRTC Offset bit 8. Bits 0-7 are in 3d4h index 13h

3d6h index 0Eh (R/W):  Text Mode                          (82c452, 655x0 Only)
bit   0  (82c452) Extended text Mode Control ??
      1  (82c452) Enable anti-aliased fonts if set
      2  (655x0)  If set cursor is non-blinking.
      3  (655x0)  If set Cursor style is Exclusive-Or.

3d6h index 0Fh (R/W):  Software Flags 2                     (643xx,655xx only)
bit 0-7  Software flags.
    0-1  (643xx) Video RAM. 0: 256K, 1: 512K, 2: 1MB, 3: 2MB

3d6h index 10h (R/W):  Single/Low Map                   (82c452/3, 6xxxx Only)
bit 0-5  (82c452) Bank no in 4K/16K chunks.
    0-7  (82c453,64300) 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, 655x0 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 14h (R/W):  Emulation Mode Register
bit 0-1  Emulation Mode:
          0=VGA/EGA, 1=CGA, 2=MDA and 3=Hercules.
      2  (R) Hercules Configuration (3BFh) bit 0 Readback.
         If set it is possible to set the Graphics Mode bit (3B8h bit 1).
      3  (R) Hercules Configuration (3BFh) bit 1 Readback.
         If set it is possible to set the Graphics Page bit (3B8h bit 7).
      4  Display Enable Status Mode.
         If set bit 0 of the Input Status Register 1 (3dAh)
         shows the Hsync Status (as MDA/Hercules), if clear the
         Display Enable is shown (as CGA/VGA).
      5  Vertical Retrace Status Mode.
         If set bit 3 of the Input Status Register 1 (3dAh)
         shows the Video signal (as MDA/Hercules), if clear the
         Vertical Retrace status is shown (as CGA/VGA).
      6  Vsync Status Mode.
         If clear bit 7 of the Input Status Register 1 (3dAh)
         shows the Vsync Status (as MDA/Hercules).
      7  Interrupt Output Function.
         If clear the IRQ pin will always 3-state, if set it
         will 3-state only when interrupts are disabled.

3d6h index 15h (R/W):  Write Protect Register.
bit   0  Write Protect Group 1 Registers.
         If set the Sequencer (3C4h), Graphics Controller (3CEh)
         and Attribute Controller (3C0h) registers are write protected.
      1  Write Protect Group 2 Registers.
         If set the Cursor Size Register (3d4h index 9 bits 0-4)
         and the Character Height registers (3d4h index 0Ah and 0Bh)
         are write protected.
      2  Write Protect Group 3 Registers.
         If set CRT registers (3d4h) index: 7 bit 4, 8, 11h bits 4-5,
         13h, 14h, 17h bits 0-1 and 3-7, 18h are write protected.
      3  Write Protect Group 4 Registers.
         If set CRT registers (3d4h) index: 9 bits 5-7, 10h, 11h bits 0-3
         and 6-7, 12h, 15h, 16h, 17h bit 2 are write protected.
      4  Write Protect Group 5 Register.
         If set the Miscellaneous Output (3C2h) and Feature Control
         (3dAh) registers are write protected.
      5  Write Protect Group 6 Registers.
         If set the DAC registers (3C6h-3C9h) are write protected.
      6  Write Protect Group 0 Registers.
         If set CRT registers (3d4h) index: 0, 1, 2, 3, 4, 5, 6,
         7 bits 0-3 and 5-7 are write protected.

3d6h index 16h (R/W):  Trap Enable Register.                       (not 655x0)
bit   0  If set accesses to registers 3B4h or 3B5h cause a Trap.
      1  If set accesses to registers 3B8h or 3BFh cause a Trap.
      2  If set accesses to registers 3C0h-3CFh cause a Trap.
      3  If set accesses to registers 3D4h or 3D5h cause a Trap.
      4  If set accesses to registers 3D8h or 3D9h cause a Trap.
      5  If set accesses to registers 3d4h index 0-0Bh and 10h-18h
         cause a Trap.

3d6h index 17h (R/W):  Trap Status Register.                 (not 64300,655x0)
bit   0  If set a trap occurred due to access to registers 3B4h or 3B5h.
      1  If set a trap occurred due to access to registers 3B8h or 3BFh.
      2  If set a trap occurred due to access to registers 3C0h-3CFh.
      3  If set a trap occurred due to access to registers 3D4h or 3D5h.
      4  If set a trap occurred due to access to registers 3D8h or 3D9h.
      5  If set a trap occurred due to access to registers
         3d4h index 0-0Bh or 10h-18h.
Note: Any bits in this register can be cleared by writing a 1 bit to them.

3d6h index 17h (R/W):                                                  (64300)
bit   0  Bit 8 of the Horizontal Total. Bits 0-7 are in 3d4h index 0.

3d6h index 18h (R/W):  Alternate Horizontal Display Enable End Register
bit 0-7  This register replaces the Horizontal Display Enable End Register
         (3d4h index 1) in low resolution CGA text and graphics modes,
         Hercules Graphics and all flat panel modes.
Note: Probably doesn't exist in the 82c451/2/3.

3d6h index 19h (R/W):  Alternate Horizontal Sync Start Register
bit 0-7  This register replaces the Horizontal Sync Start Register (3d4h index
          4) in low resolution CGA text and graphics modes, Hercules Graphics
         and all flat panel modes.
Note: Probably doesn't exist in the 82c451/2/3.

3d6h index 1Ah (R/W):  Alternate Horizontal Sync End Register
bit 0-4  Alternate Horizontal Sync End. Replaces 3d4h index 5 bits 0-4.
    5-7  Alternate Horizontal Sync Delay.
         For CRTs replaces 3d4h index 5 bits 5-6.
Note: This register replaces the Horizontal Sync End Register (3d4h index 5)
      in low resolution CGA text and graphics modes, Hercules Graphics and
      all flat panel modes.
Note: Probably doesn't exist in the 82c451/2/3.

3d6h index 1Bh (R/W):  Alternate Horizontal Total Register
bit 0-7  This register replaces the Horizontal Total Register
         (3d4h index 0) in low resolution CGA text and graphics modes,
         Hercules Graphics and all flat panel modes.
Note: Probably doesn't exist in the 82c451/2/3.

3d6h index 1Ch (R/W):  Alternate Horizontal Blank Start Register         (CRT)
bit 0-7  Alternate Horizontal Blank Start.
Note: For CRT systems this register replaces the Horizontal Blank Start
      Register (3d4h index 2) in low resolution CGA text and graphics
      modes and Hercules Graphics mode.
Note: Probably doesn't exist in the 82c451/2/3.
Note: This register has different meaning for CRT and Plat Panel systems.

3d6h index 1Ch (R/W):  Alternate Horizontal Blank End Register    (Flat Panel)
bit 0-7  For Flat Panel systems this value specifies the end of Horizontal
         Blank in terms of character clocks.
Note: Probably doesn't exist in the 82c451/2/3.
Note: This register has different meaning for CRT and Plat Panel systems.

3d6h index 1Dh (R/W):  Alternate Horizontal Blank End Register           (CRT)
bit 0-4  Alternate Horizontal Blank End
    5-6  Alternate Display Enable Skew Control.
Note: For CRT systems this register replaces the Horizontal Blank End
      Register (3d4h index 3) in low resolution CGA text and graphics
      modes, and Hercules Graphics mode.
Note: Probably doesn't exist in the 82c451/2/3.
Note: This register has different meaning for CRT and Plat Panel systems.

3d6h index 1Dh (R/W):  Alternate Horizontal Blank Start Register (Flat Panel)
bit 0-7  Alternate Horizontal Blank Start.
Note: For Flat Panel systems this register replaces the Horizontal Blank
      Start Register (3d4h index 2).
Note: Probably doesn't exist in the 82c451/2/3.
Note: This register has different meaning for CRT and Plat Panel systems.

3d6h index 1Eh (R/W):  Alternate Offset Register
bit 0-7  Alternate Offset.
Note: This register replaces the Offset Register (3d4h index 13h) in low
      resolution CGA text and graphics modes and Hercules Graphics mode.
Note: Probably doesn't exist in the 82c451/2/3.

3d6h index 1Fh (R/W):  Virtual EGA Switch Register                (655x0 only)
bit 0-3  If bit 7 is 1 one of these bits is read back in the Input Status
         Register 0 (3C2h bit 4) depending on Miscellaneous Output bits 2-3:
          0: bit 3, 1: bit 2, 2: bit 1, 3:bit 0.
      7  If set one of bits 0-3 is read back in the Input Status Register
         (3C2h) bit 4.

3d6h index 20h (R/W):  Sliding Unit Delay                         (452/3 only)

3d6h index 21h (R/W):  Sliding Hold A                               (452 only)

3d6h index 22h (R/W):  Sliding Hold B                               (452 only)

3d6h index 23h (R/W):  Write Mask Control                         (452/3 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                  (82c452/3 only)
bit 0-7  Write Bit Mask (if 3d6h index 23h bit 1-2 =0)

3d6h index 24h (R/W):  Alternate Maximum Scanline Register        (655x0 only)
bit 0-4  Number of scanlines -1 per character row of TallFont.
Note: Used in Flat Panel text modes when TallFont is enabled.

3d6h index 25h (R/W):  FP AltGrHVirtPanel Size               (453, 655x0 only)
bit 0-7  Should be: (9/8)*(3d6h index 1Ch +1) -1.

3d6h index 26h (R/W):  Configuration                             (82c453 Only)
bit   0  PC/AT if set, PS/2 if not
    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
bit   0  BLANK/Display Enable Polarity.
         Positive if set, Negative if clear.
      1  Blank /Display Enable Select (CRT).
         If set the BLANK/ pin outputs DE, if clear BLANK/
      2  Shut Off Video.
         If set the video signal is forced to default video
         (3d6h index 2bh) during the blanking interval.
      3  Shut Off Blank.
         If set the BLANK/ output is forced active
         during the blanking interval.
         (655x0)  Read/writable, but has no function.
      4  (655x0)  256 Color Video Path.
           If set Video Data Path is 8 bits rather than 4 bits.
         (64300)  Set in 256c or Hi/Truecolor modes, clear all other modes
      5  (655x0)  Interlace Video. CRT graphics modes only.
         If set Video is interlaced.
      6  (655x0)  8-bit Video Pixel Panning.
         If set 3C0h index 13h bits 0-2 are used to control
         pixel panning rather than bits 1-2.
      7  (655x0)  Read/writable, but has no function.

3d6h index 29h (R/W):  External Sync Control                        (452 only)

3d6h index 2Ah (R/W):  Frame Interrupt Count                        (452 Only)
bit 0-4  Generate Vertical Interrupt every (n+1) frames

3d6h index 2Bh (R/W):  Default Video Register                        (not 453)
bit 0-7  On CRTs this is the color displayed during blank time.

3d6h index 2Ch (R/W):  FP Vsync (FLM) Delay Register.
bit 0-7  Number of Hsync pulses between internal Vsync and the
         rising edge of First Line Marker (FLM).
Note: Only used in Flat Panel modes when 3d6h index 2Fh bit 7 is 0..

3d6h index 2Dh (R/W):  FP Hsync (LP) Delay Register.
bit 0-7  Number of character clocks between the FP Blank inactive
         edge and the rising edge of the LP.
Note: Only used in Flat Panel modes when 3d6h index 2Fh bit 6 is 0 and
      graphics mode horizontal compression is disabled.

3d6h index 2Eh (R/W):  FP Hsync (LP) Delay Register.
bit 0-7  Number of character clocks between the FP Blank inactive
         edge and the rising edge of the LP.
Note: Only used in Flat Panel modes when 3d6h index 2Fh bit 6 is 0
      and 9 dot text mode is used.

3d6h index 2Fh (R/W):  FP Hsync (LP) Width Register
bit 0-3  Width of the LP output pulse in number of character clocks.
         Only in 8 dot text modes on Flat Panels.
      4  Bit 8 of the FP Hsync (LP) Delay Register (3d6h index 2Eh).
      5  Bit 8 of the FP Hsync (LP) Delay Register (3d6h index 2Dh).
      6  FP Hsync (LP) Delay Disable.
         If set the FP Hsync (LP) active edge will coincide with the
         FP Blank inactive edge.
      7  FP Vsync (FLM) Delay Disable.
         If set the external FP Vsync (FLM) will coincide with
         the internal FP Vsync (FLM) active edge.

3d6h index 30h (R/W):  Graphics Cursor Start Address High           (452 only)
bit 0-7  Bit 8-15 of the Cursor Start Address.

3d6h index 31h (R/W):  Graphics Cursor Start Address Low            (452 only)
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 31h (R/W):  Clock Numerator                                 (64300)
bit 0-6  If 3C2h/3CCh bits 2-3 is 2 or 3 the clock is determined by this and
         the next index. Clock = 2*RefClk*(index 31h +a)/(index 32h +b).
         RefClk is normally 14.18318. a and b are small constants that must be
         added. For now I use 2 for both.

3d6h index 32h (R/W):  Graphics Cursor End Address                  (452 only)
bit 0-7  End address of the cursor bit map.

3d6h index 32h (R/W):  Clock Denominator                               (64300)
bit 0-6  See index 31h for details.

3d6h index 33h (R/W):  Graphics Cursor X Position High              (452 only)
bit 0-3  Bits 8-11 of the X co-ordinate of the cursor.

3d6h index 34h (R/W):  Graphics Cursor X Position Low               (452 only)
bit 0-7  Lower 8 bits of the X co-ordinate of the cursor.

3d6h index 35h (R/W):  Graphics Cursor Y Position High              (452 only)
bit 0-3  Bits 8-11 of the Y co-ordinate of the cursor.

3d6h index 36h (R/W):  Graphics Cursor Y Position Low
bit 0-7  Lower 8 bits of the cursor Y co-ordinate.

3d6h index 37h (R/W):  Graphics Cursor Mode                         (452 only)
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                   (452 only)
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                      (452 only)
bit 0-7  Background color of Graphics Cursor.

3d6h index 3Ah (R/W):  Graphics Cursor Color 1                      (452 only)
bit 0-7  Foreground color of Graphics Cursor.

3d6h index 44h (R/W):  Scratch #0 Register                (82c453, 655x0 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 if not.

3d6h index 50h (R/W):  Panel Format                          (82c455/6/7 Only)
bit 0-1  Frame Rate Control
          0: No grey scale simulated for mono,
             8 colors simulated for color panels.
          1: 4 simulated colors for color panels only
             (64 colors displayed).
          2: (82c455/6) 64 grey levels simulated for mono. panels only.
             (82c457)   16 levels simulated for each color output.
                        4096 colors simulated.
          3: (82c457)   3 levels simulated for each color output.
                        27 colors simulated.
    2-3  Pulse Width Modulation
          0: No grey scales for mono or color systems.
          1: 4 colors supported by the color panels only
             (64 colors displayed).
          2: 16 grey levels supported by the mono panels only.
          3: 256 grey levels supported by the color single panels only.
             (655x0) Dither Enable.
               0: Disable Dither.
               1: Enable dither for 256 color modes.
               2: Enable dither for all modes.
    4-5  Clock Divide (CD).
          0: Shift Clock = Dot Clock
          1: Shift Clock = Dot Clock/2
          2: Shift Clock = Dot Clock/4
          3: (655x0) Shift Clock = Dot Clock/8.
      7  Shift Clock Mask.
         If set the Shift Clock stops outside the Display Enable interval.
    6-7  (655x0)  VAM/FRC Control
           0: bit 2-3 determine the dither:
               0: 6 bpp VAM (dither bits 0-1).
               1: 4 bpp VAM (dither bits 0-1).
               2: 2 bpp VAM (dither bits 2-3).
               3: 1 bpp VAM (dither bits 4-5).
           1: 3 Bits/Pixel VAM (dither bits 1-2).
              Use with bit 2-3=0 or 1 for mono panels,
              Use with bit 2-3=0 for color panels.
           2: (65530) 2-Frame FRC
              3 level grey scale simulation without dither or
              9 level grey scale simulation with dither.
           3: (65530) 3 Bits/Pixel VAM + 2-Frame FRC.
              15-level grey scale simulation without dithering and
              56 level grey scale simulation with dithering.

3d6h index 51h (R/W):  Panel Type                     (82c455/6/7, 655x0 Only)
bit   0  (82c455/6) Double drive if set, single else
      1  Double panel if set, single else
    2-3  (82c455-7) Type of display
          0=LCD, 1=CRT, 2=Plasma or Electroluminescent.
      2  (655x0) Display Type. 0=CRT, 1=Flat Panel.
      3  (655x0) 8/16 bit FP Video Interface.
         If set the Flat Panel Video interface is 16 bit.
    4-5   0=Color panel 3 bit data pack
          1=Color Panel 1 bit data pack
          2=(82c455/6) Monochrome Panel
          3=(82c457)   Extended 4-bit pack
      4  (655x0) Video Skew.
         If set Video data is delayed 1 shift clock cycle.
      5  (655x0) Shift Clock Mask (SM). Flat Panel mode only.
         If set the shift clock is forced low outside the display
         interval. If clear it also toggles outside the interval.
      6  Flat Panel Compatibility enabled if set
      7  Text Video output polarity

3d6h index 52h (R/W):  Panel Size                            (82c455/6/7 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 52h (R/W):  Power Down Control Register.               (655x0 only)
bit 0-2  FP Normal Refresh Count. Flat Panel modes only.
         Number of memory refresh cycles to perform per scanline.
      3  Panel Off Mode. If set the CRT/FP interface is inactive.
      4  Panel Off Control Bit 0. Only effective if bit 3 is set.
         If set the Video data, CRT and Flat Panel timing signals
         are forced inactive, rather than only the Video data.
      5  Panel Off Control bit 1. Only effective if bit 3 is set.
         If set inactive video data and/or timing pins are tri-stated
         rather than being driven.
      6  Standby Control. Only effective if the STNDBY/ is low.
         In standby mode the video output, timings and CPU interface
         are inactive. If set the Display memory refresh is derived
         from the 32kHz input. If clear the DRAMs are self-refreshed.
      7  CRT Mode Panel Off. Only effective in CRT modes.
         If set Video data and timing signals are tri-stated.

3d6h index 53h (R/W):  Override Register              (82c455/6/7, 655x0 Only)
bit   0  Disable AR10D2. If set the ninth pixel of characters is
         controlled by this register, if clear it is controlled
         by the Mode Control Register (3C0h index 10h) bit 2.
      1  Alternate Line Graphics Character Code.
         Only effective if bit 0 is set.
         If set the ninth pixel of a character is forced to the same value
         as the 8th pixel. If clear it is forced to the background color.
      2  (655x0) FRC option 1.
      3  (655x0) FRC option 2.
    4-5  (65530) Pixel Packing. Only effective for Color STN panels.
            0: 3-bit Pack. 3d6h index 50h bits 4-5 can be 0,1 or 2.
            1: 4-bit Pack. 3d6h index 50h bits 4-5 can be 1 or 1.
            3: Extended 4-bit Pack. 3d6h index 50h bits 4-5 must be 1.
      7  (65530) High Color Mode Flat Panel Operation.
         If set Hi-Color operation is enabled in hi-res modes on
         Flat panel. If clear it is enabled in low-res modes.

3d6h index 54h (R/W):  Alternate Miscellaneous Output Register
                                                             (82c455/6/7 Only)
bit   0  Panel Video Skew
    2-3  Clock Select Bits
      6  Hsync. Negative if set, Positive if clear.
      7  Vsync. Negative if set, Positive if clear.
Note: For Flat Panel systems this register replaces the Miscellaneous
      Output Register (3C2h).

3d6h index 54h (R/W):  FP Interface Register                      (655x0 Only)
bit   0  FP Blank Polarity.
         If set the BLANK/ pin has negative polarity.
      1  If set the BLANK/ pin outputs only the FP Horizontal Blank
         signal, if clear it outputs both Vertical and Horizontal
         Blank signals.
    2-3  FP Clock Select Bits 0-1.
         In Flat Panel modes these bits replace 3C2h bits 2-3.
    4-5  FP Feature Control bits 0-1.
         In Flat Panel modes these bits replace 3dAh bits 0-1.
      6  FP HSync (LP) Polarity.
         If set the HSync (LP) pin has negative polarity.
      7  FP VSync (FLM) Polarity.
         If set the Vsync (FLM) pin has negative polarity.
Note: This register is only effective in Flat Panel modes.

3d6h index 55h (R/W):  Text Mode 350_A                       (82c455/6/7 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 55h (R/W):  Horizontal Compensation Register           (655x0 Only)
bit   0  Enable Horizontal Compensation (EHCP)
         If set Horizontal compensation is enabled.
      1  Enable Automatic Horizontal Centering (EAHC)
         If set (and bit 0 is set) EAHC is enabled.
         Horizontal left and right borders will be computed
         automatically.
      2  Enable Text Mode Horizontal Compression (ETHC).
         If set, bit 0 is set and we are in a Flat Panel Text
         mode ETHC is enabled.
         9-dot text modes will be forced to 8-bit.
      5  Enable Automatic Horizontal Doubling (EAHD).
         If set and bit 0 is set, EAHD is enabled.
         If Horizontal Display Width (3d4h index 1) is less
         than or equal to half the Horizontal Panel Size
         (3d6h index 18h) horizontal pixel doubling will be forced.
      6  Alternate CRT Hsync Polarity. Negative if set, Positive if clear.
      7  Alternate CRT Vsync Polarity. Negative if set, Positive if clear.

3d6h index 56h (R/W):  Text Mode 350_B                       (82c455/6/7 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 56h (R/W):  Horizontal Centering Register              (655x0 Only)
bit 0-7  Horizontal Left Border. Size of the left border in pixels  -1.
         Only used if in a Flat Panel mode and non-automatic
         horizontal centering is enabled.

3d6h index 57h (R/W):  Text Mode 400                         (82c455/6/7 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 57h (R/W):  Vertical Compensation Register             (655x0 Only)
bit   0  Enable Vertical Compensation if set.
      1  Enable Automatic Vertical Centering. If set and bit 0 set, the image
         will automatically be centered vertically.
      2  Enable Text Mode Vertical Stretching.
         If set and bit 0 set, text mode vertical
         stretching is enabled.
    3-4  Text Mode Vertical Stretching. If bit 0 & 2 set.
           0 = Double Scanning (DS) and Line Insertion (LI)
               with priority: DS+li, DS, LI.
           1 = Double Scanning (DS) and Line Insertion (LI)
               with priority: DS+LI, LI, DS.
           2 = Double Scanning (DS) and TallFont (TF)
               with priority: DS+TF, DS, TF.
           3 = Double Scanning (DS) and TallFont (TF)
               with priority: DS+TF, TF, DS.
      5  Enable Vertical Stretching if set and bit 0 set.
      6  Vertical Stretching. If bits 0 and 5 set.
           0 = Double Scanning (DS) and Line Replication (LR)
               with priority: DS+LR, DS, LR.
           1 = Double Scanning (DS) and Line Replication (LR)
               with priority: DS+LR, LR, DS.

3d6h index 58h (R/W):  Graphics Mode 350                     (82c455/6/7 Only)
bit 0-3  Number of scan lines between stretch/delete
      4  Enable vertical Stretching if set
      5  Enable vertical deletion if set
      6  If set the value in bits 0-3 is incremented every other period.
Note: This register is used if in a 350 line graphics mode.

3d6h index 58h (R/W):  Vertical Centering Register                (655x0 Only)
bit 0-7  Vertical Top Border LSBs.
         Lower 8 bits of the Vertical Top Border.
         Bits 8-9 are in 3d6h index 59h bits 5-6.
Note: used only in Flat panel modes when non-automatic
      vertical centering is enabled.

3d6h index 59h (R/W):  Graphics Mode 400                     (82c455/6/7 Only)
bit 0-3  Number of scan lines between stretch/delete
      4  Enable vertical Stretching if set
      5  Enable vertical deletion if set
      6  If set the value in bits 0-3 is incremented every other period.
Note: This register is used if in a 400 line graphics mode.

3d6h index 59h (R/W):  Vertical Line Insertion Register           (655x0 Only)
bit 0-3  Vertical line Insertion Height.
         Number of lines -1 to insert between text rows.
    5-6  Bits 8-9 of the Vertical Top Border (3d6h index 58h).
Note: This register is only used in Flat Panel text modes.

3d6h index 5Ah (R/W):  Flat Panel Vertical Display Start_400 (82c455/6/7 Only)
bit 0-7  For 400 line Flat Panel modes  these are the lower 8 bits of the
         Vertical Display Start (in scanlines). The upper 2 bits are in the
         Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 2-3.

3d6h index 5Ah (R/W):  Vertical Line Replication Register.        (655x0 Only)
bit 0-3  Vertical line Replication Height.
         Number of lines-1 between replicated lines.
         Double scanned lines are also counted.
Note: This register is only used when in Flat Panel text modes
      and Line Replication is enabled.

3d6h index 5Bh (R/W):  Flat Panel Vertical Display End_400   (82c455/6/7 Only)
bit 0-7  For 400 line Flat Panel modes these are the lower 8 bits of the
         Vertical Display End (in scanlines). The upper 2 bits are in the
         Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 6-7.

3d6h index 5Bh (R/W):  Panel Power Sequencing Delay register      (65530 Only)
bit 0-3  Panel Power Down sequencing Delay in 32ms counts. (0-480ms)
    4-7  Panel Power Up Sequencing Delay in 4ms counts. (0-60ms)
Note: This register is used only when the Panel power Sequencing feature is
      enabled. Default to 81h for compatibility with 65520.

3d6h index 5Ch (R/W):  Weight Clock Control Register A         (82c455/6 only)
bit 0-5  This register is used in Flat Panel mode when bit 7 of the Panel
         Format Register (3d6h index 50h) is set and bits 2-3 of the same
         register is either 1 or 2.
         The time from Hsync to the first pulse on the WGTCLK is this
         value*4 dot clocks.  See also 3d6h index 5Dh and 6Ch.

3d6h index 5Dh (R/W):  Weight Clock Control Register B         (82c455/6 only)
bit 0-5  This register is used in Flat Panel mode when bit 7 of the Panel
         Format Register (3d6h index 50h) is set and bits 2-3 of the same
         register is either 1 or 2.
         The time between WGTCLK pulses is this value*4 dot clocks.
         See also 3d6h index 5Ch and 6Ch.

3d6h index 5Eh (R/W):  ACDCLK Control Register        (82c455/6/7, 655x0 only)
bit 0-6  ACDCLK Count. Number of Hsync pulses between changes in ACDCLK.
      7  If set the ACDCLK phase inverts every frame, if clear the ACDCLK
         changes phase when the number of Hsync pulses specified in
         bits 0-6 have elapsed.

3d6h index 5Fh (R/W):  Power Down Mode Refresh Register
                                                      (82c455/6/7, 655x0 only)
bit 0-7  (82c455/6/7) Sleep Mode Refresh Frequency.
         A refresh will happen for every (4*this value)+8 dot clocks.
    0-1  (655x0) Power Down Refresh Frequency.
         Refresh happens every xx micro seconds:
           0=16usek, 1=32 usek, 2=64 usek and 3=128 usek.

3d6h index 60h (R/W):  Blink Rate Control             (82c455/6/7, 655x0 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, 655x0 Only)
bit   0  If set enables Smartmap and bypasses internal color lookup table.
    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.
         If set the result is calculated modulo 16,
         if clear it is rounded to min. or max. values (0 and 0Fh).
      6  (82c456, 655x0) Enhanced text if set
         (reverses attributes 7h and Fh)
      7  (655x0) Text Video Output Polarity (TVP) if set.
         Only effective in Flat Panel modes.

3d6h index 62h (R/W):  Smartmap Shift Parameter         (82c455/6, 655x0 Only)
bit 0-3  Number of levels to shift foreground color
         when too little difference (See 3d6h index 61h bit 1-4).
    4-7  Number 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 if set
      7  Graphics output polarity

3d6h index 63h  (R/W): Smartmap Color Mapping Control             (655x0 only)
bit 0-5  Color Threshold. Used for mapping 6 bit color to 1 bit.
         Color values greater than or equal than this value
         are mapped to 1, and lower values are mapped to 0.
      6  Must be set to 1.
      7  Graphics Video Output Polarity
         Inverted polarity if set, normal if clear.
         Graphics video output only.

3d6h index 64h  (R/W): Alternate Vertical Total       (82c455/6/7, 655x0 only)
bit 0-7  Alternate Vertical Total
Note: For Flat Panel modes this register replaces the Vertical Total Register
      (3d4h index 6).

3d6h index 65h  (R/W): Alternate Overflow             (82c455/6/7, 655x0 only)
bit   0  Alternate Vertical Total bit 8
      1  (455/6/7) Alternate Vertical Display End bit 8.
         (655x0)   Alternate Vertical Panel Size bit 8.
      2  Alternate Vertical Sync Start bit 8.
      3  (655x0) Alternate Vertical Sync Start bit 10.
      4  (655x0) Alternate Vertical Total bit 10.
      5  Alternate Vertical Total bit 9
      6  (455/6/7) Alternate Vertical Display End bit 9.
         (655x0)   Alternate Vertical Panel Size bit 9.
      7  Alternate Vertical Sync Start bit 9.

3d6h index 66h  (R/W): Alternate Vertical Sync Start  (82c455/6/7, 655x0 only)
bit 0-7  Alternate Vertical Sync Start
Note: For Flat Panel modes this register replaces the Vertical
      Sync Start Register (3d4h index 10h).

3d6h index 67h  (R/W): Alternate Vertical Sync End    (82c455/6/7, 655x0 only)
bit 0-3  Alternate Vertical Sync End
Note: For Flat Panel modes this register replaces the Vertical
      Sync End Register (3d4h index 11h).

3d6h index 68h  (R/W): Alternate Vertical Display Enable     (82c455/6/7 only)
bit 0-7  Alternate Vertical Display Enable
Note: For Flat Panel modes this register replaces the Vertical Display Enable
      Register (3d4h index 12h)

3d6h index 69h  (R/W): Vertical Panel Size Register.              (655x0 only)
bit 0-7  Vertical Panel Size. Number of scan lines per frame.

3d6h index 69h  (R/W): Flat Panel Vertical Display Start_350 (82c455/6/7 only)
bit 0-7  For 350 line Flat Panel modes these are the lower 8 bits of the
         Vertical Display Start (in scanlines). The upper 2 bits are in the
         Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 0-1.

3d6h index 6Ah  (R/W): Flat Panel Vertical Display End_350   (82c455/6/7 only)
bit 0-7  For 350 line Flat Panel modes these are the lower 8 bits of the
         Vertical Display End (in scanlines). The upper 2 bits are in the
         Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 4-5.

3d6h index 6Bh  (R/W): Flat Panel Vertical Overflow 2        (82c455/6/7 only)
bit 0-1  Bits 8-9 of the Vertical Display Start_350 Register (3d6h index 69h)
    2-3  Bits 8-9 of the Vertical Display Start_400 Register (3d6h index 5Ah)
    4-5  Bits 8-9 of the Vertical Display End_350 Register (3d6h index 6Ah)
    6-7  Bits 8-9 of the Vertical Display End_400 Register (3d6h index 5Bh)

3d6h index 6Ch  (R/W): Weight Clock Control Register         (82c455/6/7 only)
bit 0-5  Weight Clock Control Pulse Count.
         Total number of pulses on the Weight Clock.
         See Also 3d6h index 5Ch and 5Dh.

3d6h index 6Ch  (R/w): Programmable Output Drive Register         (655x0 only)
bit   0  Input Level Sense Selection Mode.
         If set bit 1 is used to determine input threshold.
         If clear chip detects VCC voltage internally.
      1  Input Level Sense Selection Voltage.
         If set VCC for internal logic is 3.3V, if clear it is 5V.
      2  Flat Panel Interface Output Drive Select
         If set Higher drive, if clear Lower drive.
      3  Bus Interface Output Drive Select.
         If set Higher drive, if clear Lower drive.
      4  Memory Interface output Drive Select.
         If set Higher drive, if clear Lower drive.

3d6h index 6Dh  (R/W): FRC and Palette Control                 (82c456/7 Only)
bit   3  Enable Frame Rate Control
    4-5  Maximum number of grey levels.
           0: 64 level FRC
           1: 16 level FRC with dither for 256 color modes.
           2: 64 level FRC with dither for low grey levels.
           3: 16 level FRC only.
    6-7  Usage of External Palette:
           0: Bypass
           1: Bypass for 16 color modes, use for 256 color.
           2: Always use
           3: 16 grays for 16 color modes, 64 for 256 color.

3d6h index 6Eh (R/W):  Polynomial FRC Control           (82c456/7, 655x0 Only)
bit 0-3  Polynomial N value for Frame Rate Control
    4-7  Polynomial M value.

3d6h index 6Fh (R/W):  Frame Buffer Control register              (655x0 only)
bit   0  Frame Buffer Enable. External Frame Buffer enabled if set.
      1  Frame Accelerator enabled if set.
      2  Frame Buffer memory Type.
         If set Frame Buffer consists of 256Kx4 VRAM.
         If clear Frame Buffer consists of 64Kx4 VRAM
    3-5  Frame Buffer Refresh Count.
    6-7  Reserved. Must be set to 0.
Note: This register effective in Flat Panel mode only.

3d6h index 70h (R/W):  Setup/Disable Control Register.            (655x0 only)
bit   7  3C3/46E8 Register Disabled if set.

3d6h index 7Dh (R/W):  FP Compensation Diagnostic Register        (655x0 only)
bit 0-7  Reserved. returns 0.

3d6h index 7Eh (R/W):  CGA Color Select
     This is a copy of the CGA Color Select Register at 3D9h.
     The copy at 3D9h is only visible in CGA emulation mode.
     This register is always visible.

3d6h index 7Fh (R/W):  Diagnostic
bit   0  if set 3-states pins: PALRD/, PALWR/, WR46E8/, HSYNC, VSYNC,
         ACDCLK, BLANK/, P0-7, RDY, DATEN/ AND IRQ/.
      1  If set 3-states pins: WE/, RAS/, CAS0/, CAS1/,
         CAS2/, CAS3/, AA0-7 AND BA0-7.
    2-5  Test Function Pins. Should be 0.
      6  (655x0) Test Function Enabled if set.
      7  (655x0) Special Test Function. Should be set to 0.

3dAh (W):  Feature Control Register                                 (82c45x ?)
bit 0-1  If 3C2h/3CCh bits 2-3 is 2, this field selects one of 4 clocks
Note: This is an extension of a standard VGA register, see VGA.TXT for
      other fields in this register. This register can be read at 3DAh

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 or more Chips&Tech 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/0 and
   F655xx          2           256     1Kbytes      256     4Kbytes

    For the 82c450,2,3 and F655xx the window to display memory can start on
    any boundary fitting the granularity of the chip/display mode. When using
    2 bank registers, the address 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 Technologies Chip Set:

  vio($5F00);
  if rp.al=$5F then
    case rp.bl shr 4 of
      0:Chip&Tech 82c451 !!!
      1:Chip&Tech 82c452 !!!
      2:Chip&Tech 82c455 !!!
      3:Chip&Tech 82c453 !!!
      4:Chip&Tech 82c450 !!!
      5:Chip&Tech 82c456 !!!
      6:Chip&Tech 82c457 !!!
      7:Chip&Tech F65520 !!!
      8:Chip&Tech F65530 !!!
      9:Chip&Tech F65510 !!!
    end;



  Video Modes:

   20h G  640  480   16  PK4  64300
   22h G  800  600   16  PK4  64300
   24h G 1024  768   16  PK4  64300
   28h G 1280 1024   16  PK4  64300
   30h G  640  480  256  P8   64300
   32h G  800  600  256  P8   64300
   34h G 1024  768  256  P8   64300
   38h G 1280 1024  256  P8   64300
   40h G  640  480  32k  P15  64300
   41h G  640  480  64k  P16  64300
   42h G  800  600  32k  P15  64300
   43h G  800  600  64k  P16  64300
   44h G 1024  768  32k  P15  64300
   45h G 1024  768  64k  P16  64300
   50h G  640  480  16m  P24  64300
   60h T  132   25   16  (8x16)
   61h T  132   50   16  (8x8)
   6Ah G  800  600   16  PL4
   70h G  800  600   16  PL4
   71h G  960  720   16  PL4   Cardinal only!
   72h G 1024  768   16  PL4
   73h G 1280 1024   16  PL4   F655xx only
   74h G 1280  960   16  PL4   F655xx only
   75h G 1024  768   16  PL4   64300
   76h G 1280 1024   16  PL4   64300
   78h G  640  400  256  P8    Not documented/not all boards
   79h G  640  480  256  P8
   7Ah G  720  540  256  P8    Not documented/not all boards
   7Bh G  800  600  256  P8
   7Ch G  800  600  256  P8    (82c453,F655xx Only)
   7Eh G 1024  768  256  P8    (82c453,F655xx 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  Chip version:
               0: 82c451
               1: 82c452
               2: 82c455
               3: 82c453
               4: 82c450
               5: 82c456
               6: 82C457
               7: F65520
               8: F65530
             0Bh: 64300
             Bits 0-3:  Revision Number
        BH = Video Memory Size
               0:  256 Kbytes
               1:  512 Kbytes
               2:  1 Mbyte
               3:  2 Mbytes
        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  Reserved
                 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 if set
                 3 Enable MDA Emulation if set
                 4 Enable Hercules Emulation if set
                 5 Enable EGA Emulation if set
                 6 Enable VGA Emulation if set
Return: AL = 5Fh  If function supported
        AH = Return Status
               1 If Function Successful, 0 else
----------105F02-----------------------------
INT 10 - Auto Emulation Control           (Chips and Technologies Super VGA)
        AX = 5F02h
        BL = Selection
               0= Enable Auto Emulation
               1= Disable Auto Emulation
Return: AL = 5Fh  If function supported
        AH = Return Status
               1 If Function Successful, 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 Persistence
                                 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 Successful, 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 if set
                 1  Save/Restore BIOS data state if set
                 2  Save/Restore DAC state if set
                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
