home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / document / vgadoc.arj / CHIPTECH.DOC < prev    next >
Text File  |  1991-12-05  |  21KB  |  522 lines

  1.   Chips and Technologies Super VGA Chip Sets:
  2.  
  3.  
  4.     82c451  256k DRAM  max 800x600 16col
  5.     82c452    1M DRAM  max 640x480 256col, 1024x768 16col
  6.     82c453    1M VRAM  max 800x600 256 col
  7.     82c455  256k DRAM  Flat Panel version
  8.     82c456  256k DRAM  do
  9.  
  10.  
  11.         94h (R/W):  Setup Control Register for Microchannel boards
  12.        bit 0-2  Reserved
  13.              3  Enables Adapter VGA if set
  14.              4  Enters Setup Mode if set
  15.            5-7  Reserved
  16.        Note: This is the same register as 46E8h.
  17.  
  18.        100h (R): Microchannel ID low
  19.        bit 0-7  Bit 0-7 of Microchannel Card ID
  20.  
  21.        101h (R): Microchannel ID high
  22.        bit 0-7  Bit 8-15 of Microchannel Card ID
  23.  
  24.        102h (R/W): Global Enable
  25.          bit 0  VGA Awake/Asleep
  26.  
  27.        103h (R/W): Multible Enable             (Only in Setup Mode)
  28.        bit 0-4  Multible VGA Enable
  29.              6  Extension registers at 3B6h/7h if set,
  30.                 3D6h/7h if not.
  31.              7  Enable VGA extensions if set
  32.  
  33.        104h (R): Global ID (Setup)             (Only in Setup Mode)
  34.        bit 0-7  Chip I/D.  0A5h if Chips and Tech Chip set.
  35.  
  36.        3C3h (R/W): Setup Control PS/2
  37.          bit 0  Enables motherboard VGA if set
  38.              4  Enters Setup mode if set
  39.  
  40.        3d4h index 22h (R/W): CPU Data Latch or Color Compare from last read
  41.  
  42.        3d4h index 24h (R/W): Attribute Controller flip/flop
  43.  
  44.        3d6h index  0  (R): Chip Version
  45.        bit 0-3  Revision number
  46.            4-7  Chipcode:
  47.                  0: 451  1:452  2:455  3:453  5:456
  48.  
  49.        3d6h index  1  (R/W): DIP Switch
  50.  
  51.        3d6h index  2  (R/W): CPU Interface
  52.          bit 0  16bit memory if set
  53.              1  16 bit I/O if set
  54.                 (82c453 Only) Fast Font Enable   ???
  55.                   The byte written to memory is used as a mask
  56.                   for painting foreground color to the pixels
  57.                   with the corresponding bit set and background
  58.                   color to the rest.
  59.              2  Fast MCA buscycle decoding if set
  60.            3-4  (82c453 Only) Attribute port pairing
  61.                    0: Normal Attribute adressing
  62.                    1: 3C1h is both read and write, 8 and 16 bit.
  63.                    2: 3C1h is both read and write, 8 bit only.
  64.              5  (82c453 Only) 10 bit I/O decodning if set, 16 bit else
  65.              6  (82c453 Only) Pel Panning Control
  66.              7  (Read Only) Attribute flip-flop status
  67.  
  68.        3d6h index  3  (R/W): ROM Interface
  69.          bit 0  Disable on-card ROM if set
  70.  
  71.        3d6h index  4  (R/W): Memory Mapping
  72.          bit 2  (82c451/5/6) Enable bank access if set
  73.            0-1  (82c452/3) Display Memory Size:
  74.                             0: 256Kb, 1: 512Kb, 2: 1Mb.
  75.              2  (82c452/3) CRTC Address can cross bank boundaries if set
  76.  
  77.        3d6h index  5h (R/W): Sequencer Control
  78.  
  79.        3d6h index  6h (R/W): DRAM Interface
  80.  
  81.        3d6h index  8h (R/W): General Purpose
  82.  
  83.        3d6h index  9h (R/W): General Purpose
  84.  
  85.        3d6h index  Ah (R/W): Cursor Address Top            (82c452/3 Only)
  86.        bit 0-1  Cursor Address bit 16,17
  87.            2-7  Reserved
  88.  
  89.        3d6h index  Bh (R/W): CPU Paging                    (82c451/5/6)
  90.        bit 0-1  Bank number in 64k chunks.
  91.        Note: This Bank register is used if in a 256 color mode and
  92.              the chip is a 82c451/5/6.
  93.  
  94.        3d6h index  Bh (R/W): Memory Paging Register        (82c452/3)
  95.              0  Enable extended paging (256 color paging) if set
  96.              1  Dual Page Enable if set.
  97.              2  CPU Address divide by 4 (256 color addressing)
  98.  
  99.  
  100.        3d6h index  Ch (R/W): Start Address Top             (82c452/3 Only)
  101.        bit 0-1  Display Start Address bit 16,17.
  102.  
  103.        3d6h index  Dh (R/W): Auxiliary Offset Register
  104.          bit 0  Bit 8 of Offset field. If set each line is >255 words.
  105.              1  Bit 8 of simulated Offset field.
  106.  
  107.        3d6h index  Eh (R/W): Text Mode                     (82c452 Only)
  108.          bit 0  Extended text Mode Control ??
  109.              1  Enable anti-aliased fonts if set
  110.  
  111.        3d6h index 10h (R/W): Single/Low Map                (82c452/3 Only)
  112.        bit 0-5  (82c452) Bank no in 4K/16K chunks.
  113.            0-7  (82c453) Bank no in 1K/4K chunks.
  114.        Note: This Bank register is used if in single-paging mode
  115.              or if addressing the lower half (32 or 64Kb) of the
  116.              adapters address range.
  117.  
  118.        3d6h index 11h (R/W): High Map                      (82c452/3 Only)
  119.        bit 0-5  (82c452) Bank no in 4K/16K chunks.
  120.            0-7  (82c453) Bank no in 1K/4K chunks.
  121.        Note: This Bank register is used if addressing the upper
  122.              half (32 or 64Kb) of the adapters address range.
  123.  
  124.        3d6h index 20h (R/W): Sliding Unit Delay
  125.  
  126.        3d6h index 21h (R/W): Sliding Hold A
  127.  
  128.        3d6h index 22h (R/W): Sliding Hold B
  129.  
  130.        3d6h index 23h (R/W): Write Mask Control            (82c453 Only)
  131.          bit 0  Enable VRAM Write Mask function if set
  132.            1-2  Write Bit Mask Select:
  133.                   0: Write Bit Mask Pattern Register (3d6h index 24h)
  134.                   1: Graphics Controller Bit Mask    (3CEh index 8)
  135.                   2: Rotated CPU byte
  136.              3  Enable Fast Read/Modify/Write function if set
  137.  
  138.        3d6h index 24h (R/W): Write Bit Mask Pattern        (82c453 Only)
  139.        bit 0-7  Write Bit Mask (if 3d6h index 23h bit 1-2 =0)
  140.  
  141.        3d6h index 26h (R/W): Configuration   (82c453 Only)
  142.          bit 0  PC/AT if set, PS/2 else
  143.            1-2  VRAM memory
  144.                    0: 512k   16 chips of  64k x4
  145.                    1: 512k    4 chips of 256k x4
  146.                    2:   1M    8 chips of 256k x4
  147.                    3: 512k    8 chips of  64k x4  ?????
  148.                               maybe 256k ??
  149.  
  150.        3d6h index 27h (R/W): Force Sync State
  151.  
  152.        3d6h index 28h (R/W): Video Interface
  153.  
  154.        3d6h index 29h (R/W): External Sync Control
  155.  
  156.        3d6h index 2Ah (R/W): Frame Interrupt Count         (82c452 Only)
  157.        bit 0-4  Generate Vertical Interrupt every (n+1) frames
  158.  
  159.        3d6h index 2Bh (R/W): Default Video
  160.  
  161.        3d6h index 2Ch (R/W): Force Horizontal High
  162.  
  163.        3d6h index 2Dh (R/W): Force Horizontal Low
  164.  
  165.        3d6h index 2Eh (R/W): Force Vertical High
  166.  
  167.        3d6h index 2Fh (R/W): Force Vertical Low
  168.  
  169.        3d6h index 30h (R/W): Graphics Cursor Start Address High
  170.        bit 0-7  Bit 8-15 of the Cursor Start Address.
  171.  
  172.        3d6h index 31h (R/W): Graphics Cursor Start Address Low
  173.        bit 0-7  Lowest 8 bits of the Cursor Start address.
  174.                 3d6h index 30h and index Ah forms the upper 10 bits.
  175.                 In 256 color modes this address has a granularity
  176.                 of 16 bytes and 4 bytes in 16 color modes.
  177.  
  178.        3d6h index 32h (R/W): Graphics Cursor End Address
  179.        bit 0-7  End address of the cursor bit map.
  180.  
  181.        3d6h index 33h (R/W): Graphics Cursor X Position High
  182.        bit 0-3  Bits 8-11 of the X coordinate of the cursor.
  183.  
  184.        3d6h index 34h (R/W): Graphics Cursor X Position Low
  185.        bit 0-7  Lower 8 bits of the X coordinate of the cursor.
  186.  
  187.        3d6h index 35h (R/W): Graphics Cursor Y Position High
  188.        bit 0-3  Bits 8-11 of the Y coordinate of the cursor.
  189.  
  190.        3d6h index 36h (R/W): Graphics Cursor Y Position Low
  191.        bit 0-7  Lower 8 bits of the cursor Y coordinate.
  192.  
  193.        3d6h index 37h (R/W): Graphics Cursor Mode
  194.          bit 0  Cursor Enabled if set
  195.              1  Cursor Status enable
  196.              2  Horizontal Zoom. Zoom to 64 pixels wide if set.
  197.                 (Normally 32 pixels wide).
  198.              3  Cursor Blink enabled if set
  199.              4  Cursor Blink Rate. 8 frames if clear, 16 if set
  200.  
  201.        3d6h index 38h (R/W): Graphics Cursor Plane Mask
  202.          bit 0  Enables graphics cursor in bit plane 0 if set
  203.              1  Enables graphics cursor in bit plane 1 if set
  204.              2  Enables graphics cursor in bit plane 2 if set
  205.              3  Enables graphics cursor in bit plane 3 if set
  206.  
  207.        3d6h index 39h (R/W): Graphics Cursor Color 0
  208.        bit 0-7  Background color of Graphics Cursor.
  209.  
  210.        3d6h index 3Ah (R/W): Graphics Cursor Color 1
  211.        bit 0-7  Foreground color of Graphics Cursor.
  212.  
  213.        3d6h index 44h (R/W): Scratch #0 Register           (82c453 Only)
  214.        bit 0-7  Available
  215.  
  216.        3d6h index 45h (R/W): Scratch #1/Foreground Color   (82c453 Only)
  217.        bit 0-7  Used as foreground color if in Fast Font Paint mode,
  218.                 Available as scratch else.
  219.  
  220.        3d6h index 50h (R/W): Panel Format                  (82c455/6 Only)
  221.        bit 0-1 Frame Rate Control
  222.                  0: No gray scale simulated for mono,
  223.                     8 colors simulated for color panels.
  224.                  1: 4 simulated colors for color panels only
  225.                     (64 colors displayed).
  226.                  2: 64 gray levels simulated for mono. panels only.
  227.            2-3 Pulse Width Modulation
  228.                  0: No gray scales for mono or color systems.
  229.                  1: 4 colors supported by the color panels only
  230.                     (64 colors displayed).
  231.                  2: 16 gray levels supported by the mono panels only.
  232.                  3: 256 gray levels supported by the
  233.                     color single panels only.
  234.  
  235.        3d6h index 51h (R/W): Panel Type                    (82c455/6 Only)
  236.          bit 0  Double drive if set, single else
  237.              1  Double panel if set, single else
  238.            2-3  Type of display
  239.                  0=LCD, 1=CRT, 2=Plasma or Electrolum.
  240.            4-5  0=Color panel 3 bit data pack
  241.                 1=Color Panel 1 bit data pack
  242.                 2=Monochrome Panel
  243.              6  Flat Panel Compatability enabled if set
  244.              7  Text Video output polarity
  245.  
  246.        3d6h index 52h (R/W): Panel Size                    (82c455/6 Only)
  247.          bit 0-1  Horizontal Size of panel
  248.                     1=640 pixels, 2=720 pixels
  249.              3-6  Vertical Size of panel
  250.                     1=200 lines, 2=350, 4=400, 8=480 lines
  251.  
  252.        3d6h index 55h (R/W): Text Mode 350_A               (82c455/6 Only)
  253.        bit 0-3  (Number of blank lines)-1 inserted between text rows
  254.                 I.e.  if 5, insert 6 blank lines after a text line.
  255.              4  If clear lines are inserted.
  256.        Note: This register is used if in a 350 line text mode
  257.              and fonts are larger than 8 lines.
  258.  
  259.        3d6h index 56h (R/W): Text Mode 350_B               (82c455/6 Only)
  260.        bit 0-3  (Number of blank lines)-1 inserted between text rows
  261.              4  If clear lines are inserted.
  262.        Note: This register is used if in a 350 line text mode
  263.              and fonts are smaller than or equal to 8 lines.
  264.  
  265.        3d6h index 57h (R/W): Text Mode 400                 (82c455/6 Only)
  266.        bit 0-3  (Number of blank lines)-1 inserted between text rows
  267.              4  If clear lines are inserted.
  268.        Note: This register is used if in a 400 line text mode.
  269.  
  270.        3d6h index 58h (R/W): Graphics Mode 350             (82c455/6 Only)
  271.        bit 0-3  Number of scan lines between stretch/delete
  272.              4  Enable vertical Stretching if set
  273.              5  Enable vertical deletion if set
  274.              6  Increment (0-3) every other period ??
  275.        Note: This register is used if in a 350 line graphics mode.
  276.  
  277.        3d6h index 59h (R/W): Graphics Mode 400             (82c455/6 Only)
  278.        bit 0-3  Number of scan lines between stretch/delete
  279.              4  Enable vertical Stretching if set
  280.              5  Enable vertical deletion if set
  281.              6  Increment (0-3) every other period ??
  282.        Note: This register is used if in a 400 line graphics mode.
  283.  
  284.        3d6h index 60h (R/W): Blink Rate Control            (82c455/6 Only)
  285.        bit 0-5  Blink Rate.
  286.                 Character Blink Freq = Vertical sync Freq * (Blink rate+1)
  287.                 Cursor blink freq = Character Blink Freq *2.
  288.            6-7  Blink Cycle  1=25%, 2=50%, 3=75%
  289.  
  290.        3d6h index 61h (R/W): Smartmap Control              (82c455/6 Only)
  291.          bit 0  Enable Smartmap if set
  292.            1-4  Threshold for (Foreground - Background) diff
  293.                 if diff less than the threshold the foreground and
  294.                 background colors will be spread (See 3d6h index 62h).
  295.              5  Smartmap Saturation value
  296.              6  (82c456 Only) Enhanced text if set
  297.                       (reverses attributes 7h and Fh)
  298.  
  299.        3d6h index 62h (R/W): Smartmap Shift Parameter      (82c455/6 Only)
  300.        bit 0-3  Number of levels to shift foreground color
  301.                 when too little difference (See 3d6h index 61h bit 1-4).
  302.            4-7  No of levels to shift background color.
  303.  
  304.        3d6h index 63h (R/W): Graphics Color Mapping Control (82c455/6 Only)
  305.        bit 0-3  Threshold color value for mono output.
  306.                 All colors >= this value will be set to 1,
  307.                 all lower to 0.
  308.              4  Use upper 4 bits of 256 color if set, lower if not.
  309.              5  Enable internal color lookup table if set
  310.              6  Write protect internal color look up table
  311.              7  Graphics output polarity
  312.  
  313.        3d6h index 6Dh (R/W): FRC and Palette Control       (82c456 Only)
  314.          bit 3  Enable Frame Rate Control
  315.            4-5  Maximum number of gray levels.
  316.            6-7  Usage of External Palette:
  317.                   0: Bypass
  318.                   1: Bypass for 16 color modes, use for 256 color.
  319.                   2: Use
  320.                   3: 16 grays for 16 color modes, 64 for 256 color.
  321.  
  322.        3d6h index 6Eh (R/W): Polynomial FRC Control        (82c456 Only)
  323.        bit 0-3  Polynomial N value for Frame Rate Control
  324.            4-7  Polynomial M value.
  325.  
  326.       46E8h (R/W): Setup Control PC/AT Register
  327.        bit 0-2  Reserved
  328.              3  Enables Adapter VGA if set
  329.              4  Enters Setup Mode if set
  330.            5-7  Reserved
  331.       Note: This is the same register as 94h.
  332.  
  333.  
  334.   Most every index of 3d6h is used by one one or more chip.
  335.  
  336.   Bank Switching:
  337.  
  338.    Bank switching is dependent on Chip version:
  339.  
  340.                               16 color modes       256 color modes
  341.    Chip         #bank regs   #Banks Granularity   #banks Granularity
  342.    82c451/5/6      1                                  4    64Kbytes
  343.    82c452          2            64     4Kbytes       64    16Kbytes
  344.    82c453          2           256     1Kbytes      256     4Kbytes
  345.  
  346.     For the 82c452 & 3  the window to display memory can start on
  347.     any boundry fitting the granularity of the chip/display mode.
  348.     When using 2 bankregisters, the adress range available to the
  349.     adapter is split equally between the two bank registers. I.e.
  350.     A000h-A7FFh uses one bank, and A800h-AFFFh the other.
  351.     (Or A000h-AFFFh and B000h-BFFFh respectively if using the full
  352.     128 Kbytes range).
  353.  
  354.  
  355.  
  356.   ID Chips and Technologes Chip Set:
  357.  
  358.     {Enter Setup Mode}
  359.     port[$3c3]:=port[$3c3] or 16;
  360.  
  361.     if port[$104]=$a5  then CHIPS_TECH_CHIP_SET !!!!!
  362.  
  363.     {Leave Setup Mode}
  364.     port[$3c3]:=port[$3c3] and $ef;
  365.  
  366.  
  367.   ID Which Chips and Tech VGA
  368.  
  369.     {Extension Enabled}
  370.     port[$3d6]:=0;
  371.     case port[$3d7] shr 4 of
  372.       2:CHIP_82c455 !!!
  373.       3:CHIP_82c453 !!!
  374.       5:CHIP_82c456 !!!
  375.       1:begin
  376.           port[$3d6]:=$3a;
  377.           old_value:=port[$3d7];
  378.           port[$3d7]:=$aa;
  379.           value:=port[$3d7];
  380.           port[$3d7]:=old_value;
  381.           if value=$aa then CHIP_82c452 !!!
  382.                        else CHIP_82x451 !!!
  383.         end;
  384.     end;
  385.  
  386.  
  387.  
  388.   Video Modes:
  389.  
  390.    60h T  132   25  16  (8x16)
  391.    61h T  132   50  16  (8x8)
  392.    6Ah G  800  600  16  planar
  393.    70h G  800  600  16  planar
  394.    71h G  960  720  16  planar   Cardinal only!
  395.    72h G 1024  768  16  planar
  396.    78h G  640  400 256  packed   Not documented/not all boards
  397.    79h G  640  480 256  packed
  398.    7Ah G  720  540 256  packed   Not documented/not all boards
  399.    7Bh G  800  600 256  packed
  400.    7Ch G  800  600 256  packed   (82c453 Only)
  401.    7Eh G 1024  768 256  packed   (82c453 Only)  
  402.  
  403.   Bios Extensions:
  404. ----------105F00-----------------------------
  405. INT 10 - Get Controller Information       (Chips and Technologies Super VGA)
  406.         AX = 5F00h
  407. Return: AL = 5F  If extended VGA control function supported
  408.         BL = CHIP Type:
  409.              Bits 4-7:
  410.                0=82c451
  411.                1=82c452
  412.                2=82c455
  413.                3=82c453
  414.                5=82c456 
  415.            Bits 0-3:  Revision Number
  416.         BH = Video Memory Size
  417.                0=256 Kbytes
  418.                1=512 Kbytes
  419.                2=1 Megabyte
  420.         CX = Miscellaneous Information
  421.              Bit 0  Dac Size. 0=6bit, 1=8bit
  422.                  1  System Environment. 0=PC/AT, 1=PS/2
  423.                  2  Extended text modes supported by BIOS
  424.                  3  Reserved
  425.                  4  Extended graphics modes supported by BIOS
  426.                  5  Resserved
  427.                  6  Graphics Cursor supported by BIOS
  428.                  7  Anti Alias font supported by BIOS
  429.                  8  Preprogrammed emulation supported by BIOS
  430.                  9  Auto emulation supported by BIOS
  431.                 10  Variable mode set at cold boot supported by BIOS
  432.                 11  Variable mode set at warm boot supported by BIOS
  433.                 12  Emulation mode set at cold boot supported by BIOS
  434.                 13  Emulation mode set at warm boot supported by BIOS
  435.              14-15  Reserved
  436. ----------105F01-----------------------------
  437. INT 10 - Set Emulation Mode               (Chips and Technologies Super VGA)
  438.         AX = 5F01h
  439.         BL = Operation Mode
  440.                0-1 Reserved
  441.                  2 Enable CGA Emulation
  442.                  3 Enable MDA Emulation
  443.                  4 Enable Hercules Emulation
  444.                  5 Enable EGA Emulation
  445.                  6 Enable VGA Emulation
  446. Return: AL = 5Fh  If function supported
  447.         AH = Return Status
  448.                1 If Function Succesfull, 0 else
  449. ----------105F02-----------------------------
  450. INT 10 - Auto Emulation Control           (Chips and Technologies Super VGA)
  451.         AX = 5F02h  Auto Emulation Control
  452.         BL = Selection
  453.                0= Enable Auto Emulation
  454.                1= Disable Auto Emulation
  455. Return: AL = 5Fh  If function supported
  456.         AH = Return Status
  457.                1 If Function Succesfull, 0 else
  458. ----------105F03-----------------------------
  459. INT 10 - Set Power-on Video Configuration (Chips and Technologies Super VGA)
  460.         AX = 5F03h
  461.         BL = Configuration
  462.                0:  Set display mode as specified in the CX register
  463.                    at power-up.
  464.  
  465.                    CL=Display Mode
  466.                    CH=Bits 0-1 Scanlines
  467.                                  0=200 Lines
  468.                                  1=350 Lines
  469.                                  2=400 Lines
  470.                       Bit    7 Performance
  471.                                  0= Reset after next boot
  472.                                  1= Set until changed
  473.  
  474.                1:  Set Emulation mode as specified in the CX register
  475.                    at power-up.
  476.  
  477.                    CL=Emulation Mode (See 5F01h)
  478.                    CH=Bit 7 Performance
  479.                         0= Reset after next boot
  480.                         1= Set until changed
  481.  
  482. Return: AL = 5Fh  If function supported
  483.         AH = Return Status
  484.                1 If Function Succesfull, 0 else
  485. ----------105F90-----------------------------
  486. INT 10 - Return Save/Restore buffer size  (Chips and Technologies Super VGA)
  487.         AX = 5F90h
  488.         CX = Mask State
  489.              Bit 0  Save/Restore video hardware
  490.                  1  Save/Restore BIOS data state
  491.                  2  Save/Restore DAC state
  492.                 15  Save/Restore type
  493.                       0= Save/Restore All state information
  494.                       1= Save/Restore super state information
  495.  
  496. Return: AL = 5Fh  If function supported
  497.         BX = Number of 64byte blocks required
  498. ----------105F91-----------------------------
  499. INT 10 - Save State                       (Chips and Technologies Super VGA)
  500.         AX = 5F91h
  501.         CX = Mask State
  502.              Bit 0  Save video hardware
  503.                  1  Save BIOS data state
  504.                  2  Save DAC state
  505.                 15  Save type
  506.                       0= Save All state information
  507.                       1= Save super state information
  508.         ES:BX -> Buffer to save in.
  509. Return: AL = 5Fh  If function supported
  510. ----------105F92-----------------------------
  511. INT 10 - Restore State                    (Chips and Technologies Super VGA)
  512.         AX = 5F92h
  513.         CX = Mask State
  514.              Bit 0  Restore video hardware
  515.                  1  Restore BIOS data state
  516.                  2  Restore DAC state
  517.                 15  Restore type
  518.                       0= Restore All state information
  519.                       1= Restore super state information
  520.         ES:BX -> Buffer to restore from.
  521. Return: AL = 5Fh  If function supported
  522.