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

  1.    ATI Technologies Super VGA Chip Sets.
  2.  
  3.     Board               18810 Dot    ROM BIOS
  4.     Version   Chip      Clock Chip   Label
  5.       V3   18800 rev 1     no          V3M
  6.       V4   18800 rev 2     no          V4M    (18800-1)
  7.       V5   18800 rev 2    yes          V5M    (18800-1)
  8.        ?   28800                              VGA Wonder+
  9.  
  10.  
  11.     ATI Prism Elite uses Trident 8800CS chips.
  12.  
  13.  
  14.  
  15.        3C0h (R/W):  Palette index register
  16.        bit 4-5  Mode 67h Palette
  17.                  Value   Pixel=0    1      2            3
  18.                    0       Black  White  Grey      Bright White
  19.                    1       Black  Green  Red       Yellow
  20.                    2       Black  Cyan   Red       White
  21.                    3       Black  Cyan   Magenta   White
  22.  
  23.  
  24.        1CEh index B0h (R/W): ATI Register 0
  25.          bit 0  Reserved
  26.              3  Enable 8 CRT accesses for each CPU access
  27.              6  Hercules 300 line emulation
  28.              7  Reserved
  29.        1,2,4,5  DRAM timing
  30.  
  31.        1CEh index B1h (R/W): EGA Compatability and Double Scanning Enable
  32.          bit 0  Force all I/O addresses to be EGA compatible if set
  33.              1  Force all registers to be EGA compatible if set
  34.              2  General purpose read/write
  35.            3-5  Double scanning/3 of 4 scanning enable
  36.                  1: Enable double scanning in graphics mode
  37.                  2: Enable 3 of 4 scanning in graphics mode
  38.                  5: Enable double scanning in text mode
  39.                  6: Enable 3 of 4 scanning in text mode
  40.              6  Divide vertical timing parameters by 2 if set
  41.              7  Reserved
  42.  
  43.        1CEh index B2h (R/W): Bank Register
  44.          bit 0  (rev 1) Enable interlace if set
  45.            1-4  (rev 1) Bank no. in 64 chunks
  46.              5  (rev 1) Enable internal DIP switch settings (EGA mode)
  47.              6  (rev 1) External clock select
  48.              7  (rev 1) Reserved
  49.  
  50.              0  (rev 2+) Reserved
  51.            1-3  (rev 2+) Write/Single bank no
  52.              4  (rev 2+) Reserved
  53.            5-7  (rev 2+) Read Bank no
  54.  
  55.        1CEh index B3h (R/W): ATI Register 3
  56.          bit 0  EEPROM data input
  57.              1  EEPROM clock source
  58.              2  Enable EEPROM interface
  59.              3  EEPROM chip select
  60.              4  (rev 1)  Enable PS/2 decoding
  61.                 (rev 2+) Disable memory beyond 256K
  62.              5  Enable 16bit operation
  63.              6  (rev 2+)  Enable 1024x768 16 color planar pixel mode
  64.              7  (rev 2+)  Enable double scanning for 200 line modes
  65.        Note: This register should not be modified on revision 1 chips.
  66.  
  67.        1CEh index B4h (R/W): ATI Register 4
  68.          bit 0  Enable CGA emulation
  69.              1  Enable Hercules emulation
  70.              2  Lock CR90-94,CR97
  71.              3  Lock vertical timing registers
  72.              4  Lock cursor start and end
  73.              5  Lock CR80-86 and CR140-144
  74.              6  Lock CR0-7 instead of CR117
  75.              7  Override locking of CR117
  76.  
  77.        1CEh index B5h (R/W): ATI Register 5
  78.          bit 0  Select display enable as blanking signal
  79.              1  Invert blanking signal polarity
  80.              2  Enable display signal skew
  81.              3  Select Map 3 as programmable character generator
  82.              4  Enable 8 simultaneous fonts if set
  83.                 Background is then always 0, and bit 4-7 of an attribute
  84.                 selects the font.
  85.              5  Disable Cursor Blinking if set
  86.              6  Enable CGA Cursor Emulation if set
  87.                 Adds 5 to the cursor start and end registers.
  88.              7  Reserved
  89.  
  90.        1CEh index B6h (R/W): ATI Register 6
  91.          bit 0  Reserved
  92.              1  Enable 640x400 Hercules emulation
  93.              2  Reserved
  94.              3  Select 4 color high res modes
  95.              4  Select 16 color high res modes
  96.              5  Enable vertical interrupts
  97.              6  Select composite sync for output
  98.              7  Disable blanking screen blank in CGA and Hercules
  99.                 emulation
  100.  
  101.        1CEh index B7h (R/W): ATI Register 7
  102.        bit 0-7  Reserved
  103.  
  104.        1CEh index B8h (R/W): ATI Register 8
  105.          bit 0  Lock Palette registers in Attribute Controller
  106.              1  Lock Overscan register in Attributre Controller
  107.              2  Lock All VGA registers except CRTC start and end
  108.              3  Lock write to 3C2h
  109.              4  Lock horizontal sync polarity
  110.              5  Lock vertical sync polarity
  111.            6-7  Clock divider
  112.  
  113.        1CEh index B9h (R/W): ATI Register 9
  114.          bit 0  Clock select
  115.              1  Select input to clock chip
  116.            2-3  RAM address space
  117.            4-5  Wait cycles for 16 bit ROM access
  118.              6  Set horizontal total = register value +2 (vs +5)
  119.              7  Lock Line Compare register
  120.  
  121.        1CEh index BAh (R/W): ATI Register A
  122.        bit 0-2  Delay chain timing compensation
  123.              3  Disable secondary Red output (for RGB monitors)
  124.              4  Enable EGA color simulation for RGB monitors
  125.              5  Enable monochrome gray scale circuit
  126.              6  reserved
  127.              7  Delay chain resolution compensation
  128.  
  129.        1CEh index BBh (R/W): Input Status Register
  130.        bit 0-3  Monitor Type:
  131.                  0: EGA
  132.                  1: PS/2 Analog Monochrome
  133.                  2: TTL Monochrome
  134.                  3: PS/2 Color
  135.                  4: RGB Color
  136.                  5: MultiSync
  137.                  7: PS/2 8514
  138.                  8: Seiko 1430
  139.                  9: NEC Multisync 2A
  140.                  A: Crystalscan 860/Tatung 1439
  141.                  B: NEC Multisync 3D
  142.                  C: TVM 3M
  143.                  D: NEC MultiSync XL
  144.                  E: TVM 2A
  145.                  F: TVM 3A
  146.              4  reserved
  147.              5  512Kbytes if set, 256K else
  148.            6-7  Reserved
  149.  
  150.        1CEh index BCh (R/W): ATI Register C
  151.        bit 0-7  reserved
  152.  
  153.        1CEh index BDh (R/W): ATI Register D
  154.        bit 0-3  Reserved
  155.            4-7  EGA switch settings
  156.  
  157.        1CEh index BEh (R/W): ATI Register E        (rev 2+)
  158.          bit 0  Unlock Vertical Display End register of the
  159.                 CRT Controller
  160.              1  Enable interlace mode
  161.              2  Select internal EGA DIP switch value
  162.              3  Dual bank mode if set, single else
  163.            4-5  Reserved
  164.              6  Enable 1024x768 16 color mode
  165.              7  Enable 1024x768 4 color mode
  166.  
  167.  
  168.        3C0h (R/W):  Palette index register
  169.        bit 4-5  Mode 67h Palette
  170.                  Value   Pixel=0    1      2            3
  171.                    0       Black  White  Grey      Bright White
  172.                    1       Black  Green  Red       Yellow
  173.                    2       Black  Cyan   Red       White
  174.                    3       Black  Cyan   Magenta   White
  175.  
  176.   Note:  The ATI chips handles the indexed registers sligtly differently
  177.          from other VGA chips, as the index register must be written before
  178.          each read or write of the associated data registyer.
  179.  
  180.  
  181.  
  182.   Bank Switching
  183.  
  184.     Bank switching can use either one single bank register or two
  185.     seperate read and write bank registers (18800-2 and 28800 Only).
  186.     Banks map to 64k boundries.
  187.  
  188.   Reserved locations:
  189.  
  190.     $C000:$10   2 bytes   ATI Register (usually $1CE).
  191.     $C000:$31   9 bytes   '761295520' ID's ATI product
  192.     $C000:$40   2 bytes   '31' ID's ATI Super VGA
  193.                           '32' = ATI EGA Wonder 800+
  194.                           '22' = ATI EGA Wonder
  195.     $C000:$42   1 byte    Bit 0  Can switch between 8 and 16 bit ROM if set
  196.                               1  Mouseport present if set
  197.                               2  Non-intelace if set
  198.                               3  Microchannel if set, PC/AT else
  199.                               4  Use clock chip if set
  200.                               7  Use C000:0000 to D000:FFFF with 16 bit ROM if set
  201.     $C000:$43   1 byte    Gate revision. '1' = Version 1,
  202.                              '2' = version 2, '3' = version 2 with VRAM
  203.     $C000:$4C   1 byte    Major Bios version
  204.     $C000:$4D   1 byte    Minor Bios version
  205.  
  206.  
  207.  
  208.  
  209.   ID ATI Super VGA Chip Set
  210.  
  211.     s[0]:=#9;
  212.     move(mem[$c000:$31],s[1],9);
  213.     if s='761295520' then ATI card
  214.       if memw[$c000:$40]=$3331  then ATI_Super_VGA
  215.  
  216.  
  217.  
  218.  
  219.  
  220.   ID Which ATI Super VGA Chip
  221.  
  222.     rp.ah:=12h
  223.     rp.bx:=5506h
  224.     rp.al:=55h
  225.     rp.bp:=FFFFh
  226.     rp.si:=0h
  227.     intr($10,rp);
  228.     if rp.bp=FFFFh then ATI_rev1 else ATI_rev>=2
  229.  
  230.  
  231.  
  232.   Video Modes:
  233.     23h  T   132   25  16  (8x14)
  234.     27h  T   132   25   2  (8x14)
  235.     33h  T   132   44  16  (8x8)
  236.     37h  T   132   44   2  (8x8)
  237.     54h  G   800  600  16  planar
  238.     55h  G  1024  768  16  planar   18800 rev 2 or later
  239.     58h  T    80   33      (8x8)
  240.     5Bh  T    80   30      (8x16)
  241.     61h  G   640  400 256  packed
  242.     62h  G   640  480 256  packed
  243.     63h  G   800  600 256  packed
  244.     64h  G  1024  768 256  packed   VGA Wonder +
  245.     65h  G  1024  768  16  packed   ****  See note
  246.     67h  G  1024  768   4  planar   ****  See note
  247.     6Ah  G   800  600  16           Undocumented ??
  248.  
  249.  
  250.     ATI enhanced Graphics modes do NOT support INT 10h with AH=
  251.       01h..0Eh or 11h or 13h.
  252.  
  253.  
  254.     Mode 65h  1024x768 16 color
  255.       4 bits per pixel packed mode
  256.       Even pixel is in bits 0-3 of the byte, odd in bits 4-7.
  257.  
  258.     Mode 67h  1024x768  4 color
  259.       2 bits per pixel planar mode
  260.       Even pixels are in plane 2&3, odd pixels in plane 0&1.
  261.  
  262.  
  263.   Bios extensions:
  264.  
  265. ----------1012--BH55-------------------------
  266. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  267.         AH = 12h
  268.         BH = 55h
  269.         BL = subfunction
  270.               00h disabled enhanced features
  271.               01h enable enhanced features
  272.               02h get status
  273. Return:           AL = status flags
  274.                        bit    3  set if enhanced features enabled
  275.                        bits 7-5  monitor type
  276.                                  000 PS/2 mono
  277.                                  001 PS/2 color
  278.                                  010 multi-sync
  279.                                  011 Taxan 650 25kHz
  280.                                  100 RGB
  281.                                  101 mono
  282.                                  110 EGA
  283.                                  111 Compaq internal
  284.               03h disable register trapping (CGA emulation)
  285.               04h enable register trapping
  286.               05h program mode described by table at ES:BP
  287.               06h get mode table
  288.                   AL = video mode
  289.                   BP = FFFFh  (Known illegal value).
  290.                   SI = 0000h  (Known illegal value).
  291. Return:           ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  292.                   BP = FFFFh on error
  293.  
  294. Format of ATI VGA Wonder video mode table:
  295. Offset  Size     Description
  296.  00h    BYTE     number of columns
  297.  01h    BYTE     maximum row (number of rows - 1)
  298.  02h    BYTE     scan lines per row
  299.  03h    WORD     video buffer size in bytes
  300.  05h   4 BYTEs   values for Sequencer registers 1-4
  301.  09h    BYTE         value for Miscellaneous Output register
  302.  0Ah   25 BYTEs      values for CRTC registers 00h-18h
  303.                   00h horizontal total size (chars)
  304.                   01h horizontal displayed (chars)
  305.                   02h horizontal sync position (chars)
  306.                   03h horizontal sync width (chars)
  307.                   04h vertical total size (char rows)
  308.                   05h vertical total adjust (scan lines)
  309.                   06h vertical displayed (char rows)
  310.                   07h vertical sync position (char rows)
  311.                   08h interlace mode
  312.                   09h max scan line in row
  313.                   0Ah cursor start scan line
  314.                   0Bh cursor end scan line
  315.                   0Ch screen memory start (high)
  316.                   0Dh screen memory start (low)
  317.                   0Eh cursor address (high)
  318.                   0Fh cursor address (low)
  319.                   10h light pen (high)
  320.                   11h light pen (low)
  321.  23h   20 BYTEs      default palette (values for Attribute Controller regs 00h-13h)
  322.  37h   9 BYTEs       values for Graphics Controller registers 00h-08h
  323.