home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / doc / graphdoc / 8514a.txt next >
Text File  |  1994-01-18  |  31KB  |  669 lines

  1. IBM 8514/A
  2.  
  3. 8514/A clones:
  4.  
  5. ATI 38800-1 (MACH 8), 68800 (MACH 32)
  6. Chips&Tech 82c480
  7. Paradise  95c00/01
  8.  
  9.  
  10. 0102h (R/W):  Setup Control Register
  11. bit     0  If set the adapter is enabled, if clear the card is
  12.            invisible to the system.
  13.       1-7  Reserved(0)
  14.  
  15. 02E8h W(R):  Display Status Register
  16. bit     0  SENSE is the result of a wired-OR of 3 comparators, one
  17.            for each of the RGB video signal.
  18.            By programming the RAMDAC for various values
  19.            and patterns and then reading the SENSE, the monitor type
  20.            (color, monochrome or none) can be determined.
  21.         1  VBLANK. Vertical Blank State
  22.            If Vertical Blank is active this bit is set.
  23.         2  HORTOG. Horizontal Toggle
  24.            This bit toggles every time a HSYNC pulse starts
  25.      3-15  Reserved(0)
  26.  
  27. 02E8h W(W):  Horizontal Total Register (H_TOTAL)
  28. bits  0-8  Horizontal Total defines the total horizontal scan line width
  29.            including the display, blank and sync times.
  30.            All horizontal timings are in "double nuggets"
  31.            (8 or 10 pixels depending on the state of MEM_CNTL[0]).
  32.            The actual value is one larger than this register.
  33.      9-15  Reserved(0)
  34. Note: this register is written at 02E8 and read at 26E8h.
  35.  
  36. 02EAh (R/W):  DAC Mask Register (DAC_MASK)
  37. bits  0-7  DAC mask. This value is anded to the pixel data before going
  38.            to the DAC. Set to 0FFh for normal operation.       
  39. Note: In VGA pass through mode writes to the VGA palette address 03C6h
  40.       will go to this address to allow the 8514/A to mirror palette changes.
  41.  
  42. 02EBh (R/W):  DAC Read Index Register (DAC_R_INDEX)
  43. bits  0-7  DAC Read Index. Indicates which of the 256 palette entries
  44.            will be read by the current sequence of I/O read operations
  45.            to the DAC_DATA (02EDh) register.
  46. Note: In VGA pass through mode writes to the VGA palette address 03C7h
  47.       will go to this address to allow the 8514/A to mirror palette changes.
  48.  
  49. 02ECh (R/W):  DAC Write Index Register (DAC_W_INDEX)
  50. bits  0-7  DAC Write Index. Indicates which of the 256 palette entries
  51.            will be written by the current sequence of I/O write operations
  52.            to the DAC_DATA (02EDh) register.
  53. Note: In VGA pass through mode writes to the VGA palette address 03C8h
  54.       will go to this address to allow the 8514/A to mirror palette changes.
  55.  
  56. 02EDh (R/W):  DAC DATA Register (DAC_DATA)
  57. bits  0-7  DAC Data. 
  58. Note: In VGA pass through mode writes to the VGA palette address 03C9h
  59.       will go to this address to allow the 8514/A to mirror palette changes.
  60.  
  61. 06E8h W(W):  Horizontal Displayed Register (H_DISP)
  62. bits  0-7  Number of "double nuggets"-1 displayed in a scan line.
  63.      8-15  Reserved(0) 
  64. Note: In the 8514/A this register is Writeonly,
  65.       In the Chips&Tech 82c480 it is Read/Write. 
  66.  
  67. 0AE8h W(W):  Horizontal Sync Start Register (H_Sync_STRT)
  68. bits  0-7  Hsync starts at (H_SYNC_STRT +1) double nugget periods.
  69.      8-15  Reserved(0) 
  70. Note: In the 8514/A this register is Writeonly,
  71.       In the Chips&Tech 82c480 it is Read/Write. 
  72.  
  73. 0EE8h W(W):  Horizontal Sync Width Register (H_SYNC_WID)
  74. bits  0-4  Width of the Horizontal Sync pulse in "double nuggets".
  75.         5  Horizontal Sync Polarity (HSYNCPOL).
  76.            If set the Horizontal Sync Pulse is Negative, else Positive.
  77.      6-15  Reserved(0)
  78. Note: In the 8514/A this register is Writeonly,
  79.       In the Chips&Tech 82c480 it is Read/Write. 
  80.  
  81. 12E8h W(W):  Vertical Total Register (V_TOTAL)
  82. bits  0-2  Vertical Total Adjust (VTADJ).
  83.      3-11  Vertical Total Base (VTB).
  84.            The Vertical Total is calculated as:
  85.            Vertical Total = (Scan Modulos * VTB)+VTADJ+1
  86.            Where the Scan Modulos is found from the DBLSCAN and
  87.            MEMCFG bits of the DISP_CNTL register (22E8h).
  88.             
  89.            DBLSCAN:      MEMCFG:     Scan Modulos:
  90.               0            0 0           2
  91.               0            0 1           4
  92.               0            1 0           6 
  93.               0            1 1           8
  94.               1            0 0           4
  95.               1            0 1           8
  96.               1            1 0          12
  97.               1            1 1          16 
  98.     12-15  Reserved(0)
  99. Note: In the 8514/A this register is Writeonly,
  100.       In the Chips&Tech 82c480 it is Read/Write. 
  101.  
  102. 16E8h W(W):  Vertical Displayed Register (V_DISP)
  103. bits  0-2  Vertical Displayed Adjust (VDADJ)
  104.      3-11  Vertical Displayed Base (VDB)
  105.            The Vertical Displayed is calculated as:
  106.            Vertical Displayed = (Scan Modulos * VDB)+VDADJ+1
  107.            Where the Scan Modulos is the same as for
  108.            Vertical Total in 12E8h.
  109.     12-15  Reserved(0)
  110. Note: In the 8514/A this register is Writeonly,
  111.       In the Chips&Tech 82c480 it is Read/Write. 
  112.  
  113. 1AE8h W(W):  Vertical Sync Start Register (V_SYNC_STRT)
  114. bits  0-2  Vertical Sync Start Adjust (VSADJ)
  115.      3-11  Vertical Sync Start Base (VSB)
  116.            The Vertical Sync Start is calculated as:
  117.            Vertical Sync Start = (Scan Modulos * VSB)+VSADJ+1
  118.            Where the Scan Modulos is the same as for
  119.            Vertical Total in 12E8h.
  120.     12-15  Reserved(0)
  121. Note: In the 8514/A this register is Writeonly,
  122.       In the Chips&Tech 82c480 it is Read/Write. 
  123.  
  124. 1EE8h W(W):  Vertical Sync Width Register (V_SYNC_WID)
  125. bits  0-4  Number of scanlines in the Vertical Sync pulse.
  126.         5  Vertical Sync Polarity (VSYNCPOL).
  127.            If set the Vertical Sync pulse is Negative, else Positive.
  128.      6-15  Reserved(0)
  129. Note: In the 8514/A this register is Writeonly,
  130.       In the Chips&Tech 82c480 it is Read/Write. 
  131.  
  132. 22E8h W(W):  Display Control Register (DISP_CNTL)
  133. bit     0  Odd Bank Enable (ODDBNKENAB).
  134.            If set use Horizontally Interleaved banks.
  135.            (Normal 8514/A mode).
  136.       1-2  Memory Configuration (MEMCFG).
  137.              0  NCLK     (PS8 Mode)
  138.              1  NCLK/2   (Normal 8514/A Mode)
  139.              2  NCLK/3
  140.              3  NCLK/4
  141.         3  (Double Scan) DBLSCAN. If set doublescan is enabled.
  142.         4  INTERLACE. Interlace if set.
  143.       5-6  Display Enable (DISPEN)
  144.               0 = No effect
  145.               1 = Enable Hsync, Vsync, Blank, data transfer cycles
  146.                   and refresh cycles.
  147.             2,3 = Disable Hsync, Vsync, Blank, data transfer cycles
  148.                   and refresh cycles.
  149.      7-15  Reserved(0)
  150. Note: In the 8514/A this register is Writeonly,
  151.       In the Chips&Tech 82c480 it is Read/Write. 
  152.  
  153. 26E8h W(R):  Horizontal Total Register (H_TOTAL)
  154. Note: this register is written at 02E8 and read at 26E8h.
  155.  
  156. 2EE8h W(R):  Subsystem Control Register (SUBSYS_CNTL)
  157. Note: In the original IBM 8514/A this register is Write only. 
  158.       In the CT82c480 it is written to 48E8h and read from 2EE8h.  
  159.  
  160. 42E8h W(R):  Subsystem Status Register (SUBSYS_STAT)
  161. bit   0-3  Interrupt requests. These bits show the state of internal interrupt
  162.            requests. An interrupt will only occur if the corresponding bit(s)
  163.            in SUBSYS_CNTL is set. Interrupts can only be reset by writing a 1
  164.            to the corresponding Interrupt Clear bit in SUBSYS_CNTL.
  165.              Bit 0: VBLNKFLG
  166.                  1: PICKFLAG
  167.                  2: INVALIDIO
  168.                  3: GPIDLE 
  169.       4-6  MONITORID.
  170.               1: IBM 8507 (1024x768) Monochrome
  171.               2: IBM 8514 (1024x768) Color
  172.               5: IBM 8503 (640x480) Monochrome
  173.               6: IBM 8512/13 (640x480) Color
  174.         7  8PLANE.  
  175.            (CT82c480) This bit is latched on reset from pin P4D7.
  176.      8-11  CHIP_REV. Chip revision number.
  177.     12-15  (CT82c480) CHIP_ID. 0=CT 82c480.
  178.  
  179. 42E8h W(W):  Subsystem Control Register (SUBSYS_CNTL)
  180. bit   0-3  Interrupt Reset. Write 1 to a bit to reset the interrupt.
  181.            Bit 0  RVBLNKFLG   Write 1 to reset Vertical Blank interrupt.
  182.                1  RPICKFLAG   Write 1 to reset PICK interrupt.
  183.                2  RINVALIDIO  Write 1 to reset Queue Overflow/Data
  184.                               Underflow interrupt.
  185.                3  RGPIDLE     Write 1 to reset GPIDLE interrupt.
  186.       4-7  Reserved(0)
  187.         8  IBLNKFLG.   If set Vertical Blank Interrupts are enabled.
  188.         9  IPICKFLAG.  If set PICK Interrupts are enabled.
  189.        10  IINVALIDIO. If set Queue Overflow/Data Underflow Interrupts are
  190.                        enabled.
  191.        11  IGPIDLE.    If set Graphics Engine Idle Interrupts are enabled.
  192.     12-13  CHPTEST. Used for chip testing.
  193.     14-15  Graphics Processor Control (GPCTRL).
  194. Note: In the original IBM 8514/A this register is Write only. 
  195.       In the CT82c480 it is written to 48E8h and read from 2EE8h.  
  196.  
  197. 46E8h W(W):  ROM Page Select Register (ROM_PAGE_SEL)
  198. bit   0-2  Maps a 4KB page of the onboard 32K ROM to address C7000h-C7FFFh.
  199.         3  VGA Enable. If set enables the VGA
  200.            This bit is not implemented in the 8514/A, but in the VGA
  201.            controller.
  202.         4  VGA Setup.  If set the VGA is in Setup mode.
  203.            This bit is not implemented in the 8514/A, but in the VGA
  204.            controller.
  205.      5-15  Reserved(0)
  206. Note: In the 8514/A this register is Writeonly,
  207.       In the Chips&Tech 82c480 it is Read/Write. 
  208.  
  209. 4AE8h W(W):  Advanced Function Control Register  (ADVFUNC_CNTL)
  210. bit     0  DISABPASSTHRU. If clear the VGA video is passed through the
  211.            8514/A RAMDAC, if set the 8514/A video is passed to the 8514/A
  212.            RAMDAC.
  213.         1  RSDV0. Reserved bit 0  = 1.
  214.         2  Clock Select (CLKSEL).
  215.            If set a clock of 44.900MHz is used (1024x768 interlaced)
  216.            if clear a clock of 25.175MHz is used (640x480).
  217.            The CT82c480 supports 8 clock frequencies through the
  218.            Extended Configuration Register EC3 (5EE8h).
  219.         3  RSDV1. Reserved bit 1 =0.
  220.      4-15  Reserved(0).
  221. Note: In the 8514/A this register is Writeonly,
  222.       In the Chips&Tech 82c480 it is Read/Write. 
  223.  
  224. 52E8h W(R/W):  Extended Configuration Register (EC0)           (CT82c480 only)
  225. bit  0-15  Reserved.
  226.  
  227. 56E8h W(R/W):  Extended Configuration Register (EC1)           (CT82c480 only)
  228. bit  0-15  Reserved.
  229.  
  230. 5AE8h W(R/W):  Extended Configuration Register (EC2)           (CT82c480 only)
  231. bit   0-2  Reserved(1)
  232.       3-4  ROMBASE. Latched on reset from P4D3-4.
  233.            Determines start address of ROM:
  234.                     8K ROM         32K ROM
  235.                   MC     ISA      MC     ISA       MC =Micro Channel  
  236.              0  0C8000  C6000   0D0000  D0000 
  237.              1  0D8000  D8000   0D8000  D8000
  238.              2  0C0000  C0000   0C0000  C0000
  239.              3  0C6000  C8000   0C8000  C8000
  240.         5  ROMSIZE. Latched on reset from P4D5.
  241.            If set the ROM is 8K, if clear the ROM is 32K.
  242.         6  ROMPAGING. Latched from P4D6 on reset.
  243.            If set the ROMPG pins are outputs, if clear they are inputs.
  244.         7  8 Bit planes (8BP).
  245.       8-9  BANKS. Number of VRAM banks.
  246.             0=1  bank, 1=2 banks, 2=3 banks, 3=4 banks.
  247.        10  If set 256Kx4 VRAMs are used, if clear 64Kx4 VRAMs.
  248.            Sampled from MA8 on reset.
  249.        11  5-Pixel Nuggets (5PN).
  250.            Latched from WE4/ on reset.
  251.            Determines whether there are 4 or 5 pixels to a nugget.
  252.        12  Reserved(0)
  253.        13  8-bit DAC Control (8BITDAC).
  254.            If set the RAMDAC is 8bit rather than 6bit.
  255.            On reset the 8BITDAC pin is sampled, then the pin
  256.            turns into an output driven by this bit.
  257.            This can be used to switch a DAC with 6/8bit ability
  258.            like an IMSG178 or BT478 between 6 and 8 bits.
  259.     14-15  Reserved(0)
  260.  
  261. 5EE8h W(R/W):  Extended Configuration Register (EC3)           (CT82c480 only)
  262. bit   0-3  Selects which registers will be read from BEE8h.
  263.         4  Alternate High Register Select (AHRS).
  264.            If set writes to video timing registers
  265.            will go to the Alternate-High register set.
  266.         5  Alternate Low Register Select (ALRS).
  267.            If set writes to video timing registers
  268.            will go to the Alternate-Low register set.
  269.         6  Alternate High Register Enable (AHRE).
  270.            If set enables the Alternate High-resolution video
  271.            timing register set.
  272.         7  Alternate Low Register Enable (ALRE).
  273.            If set enables the Alternate Low-resolution video
  274.            timing register set.
  275.      8-10  Clock Select 0-2 (CLKSEL0-2).
  276.            The CT82c480 maintains 3 different clock select register sets.
  277.            On set each for Alternate High, Alternate Low and normal video.
  278.        11  Reserved(0)
  279.        12  OVERRIDE. If set the normal video register set is used.
  280.            If clear the AHRE and ALRE determines the video register set used.
  281.            This bit is reset on any write to the ADVFUNC_CTRL register (4AE8h)
  282.     13-15  Reserved(0)
  283. Note: Writes to this register should be 8-bit.
  284.  
  285. 82E8h W(R/W):  Current Y Position Register (CUR_Y)
  286. bit  0-11  Y Position. Y co-ordinate of current position in pixels.
  287.     12-15  Reserved(0)
  288.  
  289. 86E8h W(R/W):  Current X Position Register (CUR_X)
  290. bit  0-11  X Position. X co-ordinate of current position in pixels.
  291.     12-15  Reserved(0).
  292. Note: In 5PN mode bits 11, 1 and 0 are remainder bits, 
  293.       bits 2-10 are the current X position modulo 5.
  294.  
  295. 8AE8h W(R/W):  Destination Y Position & Axial Step Constant Register
  296.                (DESTY_AXSTP)
  297. bit  0-11  During BITBLT operations this is the Y co-ordinate of the 
  298.            destination in pixels.
  299.            During Line Drawing, this is the Bresenham constant 2*dminor.
  300.            (dminor is the length of the line projected onto
  301.            the minor or dependant axis).
  302.        12  AXSTPSIGN. Sign bit for Axial Step Constant.
  303.            Should be 0 during BITBLT operations.
  304.     13-15  Reserved(0)
  305. Note: In the original IBM 8514/A this register is Write only. In the CT82c480
  306.       it is read/writable
  307.  
  308. 8EE8h W(R/W):  Destination X Position & Diagonal Step Constant Register
  309.                (DESTX_DISTP)
  310. bit  0-11  During BITBLT operations this is the X co-ordinate of the
  311.            destination in pixels.
  312.            During Line Drawing this is the Bresenham constant 2*dminor-
  313.            2*dmajor. (dminor is the length of the line projected onto
  314.            the minor or dependant axis, dmajor is the length of the
  315.            line projected onto the major or independent axis)
  316.        12  DGSTPSIGN. Sign bit for Diagonal Step Constant
  317.            (Should be set to 0 for BITBLT operations).
  318.     13-15  Reserved(0)
  319. Note: In the original IBM 8514/A this register is Write only. In the CT82c480
  320.       it is read/writable
  321.  
  322. 92E8h W(R/W):  Error Term Register (ERR_TERM).
  323. bit  0-12  Initial Error Term.
  324.            This register is programmed to the Bresenham initial
  325.            error term before a line drawing command is issued.
  326.     13-15  Reserved. These bits are read/writable but have no function.
  327.  
  328. 96E8h W(R/W):  Major Axis Pixel Count & Rectangle Width Register
  329.                (MAJ_AXIS_PCNT)
  330. bit  0-10  For BITBLT and rectangle commands this is the width of the area.
  331.            For Line Drawing this is the Bresenham constant dmajor.
  332.            Must be positive.
  333.     11-15  Reserved(0)
  334. Note: In the original IBM 8514/A this register is Write only. 
  335.       In the CT82c480 it is read/writable
  336.  
  337. 9AE8h W(R):  Graphics Processor Status Register (GP_STAT)
  338. bit   0-7  Queue State. 
  339.              00h = 8 words available - queue is empty
  340.              01h = 7 words available
  341.              03h = 6 words available
  342.              07h = 5 words available
  343.              0Fh = 4 words available
  344.              1Fh = 3 words available
  345.              3Fh = 2 words available
  346.              7Fh = 1 word available
  347.              FFh = 0 words available - queue is full
  348.         8  DATARDY. If set data is ready to be read from 
  349.            the PIX_TRANS register (E2E8h).
  350.         9  Graphics Processor Busy (GPBUSY)
  351.            If set the Graphics Processor is busy.
  352.     10-15  Reserved(0)
  353.  
  354. 9AE8h W(W):  Command Register (CMD)
  355. bit     0  WRTDATA. If set VRAM write operations are enabled.
  356.            If clear operations execute normally but no writes
  357.            to memory is performed.
  358.         1  PLANAR defines the orientation of the display bitmap.
  359.              0=Through plane mode, 1=Across plane mode.
  360.         2  If set the last pixel of a line command (CMD_LINE, SSV or
  361.            LINEAF) is not drawn. This is used for mixes such as XOR
  362.            where drawing the same pixel twice would give the wrong color.
  363.            For rectangle commands the effect is different depending on the
  364.            INC_X and INC_Y fields:
  365.               CMD_RECT
  366.                  If INC_X is set then the rightmost column is not drawn,
  367.                  if clear the leftmost column is not drawn.
  368.               CMD_RECTV1
  369.                  If INC_Y is set the bottom row is not drawn,
  370.                  if clear the top row is not drawn.
  371.               CMD_RECTV2
  372.                  No effect
  373.               CMD_BITBLT
  374.                  If INC_X set the rightmost column is not drawn,
  375.                  if clear the leftmost column is not drawn.
  376.         3  LINETYPE.
  377.              0: Bresenham line drawing
  378.                   CMD_LINE draws a line using the Bresenham algorithm as
  379.                   specified in the DESTY_AXSTP (8AE8h), DESTX_DIASTP (8EE8h),
  380.                   ERR_TERM (92E8h) and MAJ_AXIS_PCNT (96E8h) registers
  381.              1: Vector line draws.
  382.                   CMD_NOP allows drawing of Short Stroke Vectors (SSVs) by
  383.                   writing to the Short Stroke register (9EE8h).
  384.                   CMD_LINE draws a vector of length MAJ_AXIS_PCNT (96E8h)
  385.                   in the direction specified by LINEDIR (bits 5-7).
  386.         4  DRAW. If clear the current position is moved, but no pixels
  387.            are modified. This bit should be set when attempting read or
  388.            write of bitmap data.
  389.       5-7  LINEDIR. When a line draw command (CMD_LINE) with LINETYPE=1
  390.            is issued, these bits define the direction of the line
  391.            counter clockwise relative to the positive X-axis.
  392.              0 = 000 degrees
  393.              1 = 045 degrees
  394.              2 = 090 degrees
  395.              3 = 135 degrees
  396.              4 = 180 degrees
  397.              5 = 225 degrees
  398.              6 = 270 degrees
  399.              7 = 315 degrees
  400.         5  INC_X. This bit together with INC_Y determines which quadrant
  401.            the slope of a line lies within. They also determine the
  402.            orientation of rectangle draw commands.
  403.            If set lines are drawn in the positive X direction (left to right).
  404.         6  YMAJAXIS. For Bresenham line drawing commands this bit determines
  405.            which axis is the independent or major axis. INC_X and INC_Y
  406.            determines which quadrant the slope falls within. This bit further
  407.            defines the slope to within an octant.
  408.            If set Y is the major (independent) axis.
  409.         7  INC_Y. This bit together with INC_X determines which quadrant
  410.            the slope of a line lies within. They also determine the
  411.            orientation of rectangle draw commands.
  412.            If set lines are drawn in the positive Y direction (down).
  413.         8  (Pixel Data Enable) PCDATA.
  414.            If set the drawing engine waits for read/write of the PIX_TRANS
  415.            register (E2E8h) for each pixel during a draw operation.
  416.         9  16BIT. If set the PIX_TRANS register (E2E8h) is processed
  417.            internally as two bytes in the order specified by BYTSEQ.
  418.            If clear all accesses are 8bit.
  419.     10-11  Reserved(0)
  420.        12  Byte Sequence (BYTSEQ). Affects both reads and writes of
  421.            SHORT_STROKE (9EE8h) and PIX_TRANS (E2E8h) when 16bit=1.
  422.            If set take low byte first, if clear take high byte first.
  423.     13-15  Draw Command:
  424.             0 = CMD_NOP.    (Should be used for Short Stroke Vectors).
  425.             1 = CMD_LINE  
  426.             2 = CMD_RECT    (Fill rectangle in X direction)
  427.             3 = CMD_RECTV1  (Fill rectangle in Y direction)
  428.             4 = CMD_RECTV2  (Fast filled Y direction rectangle)
  429.             5 = CMD_LINEAF  (Outline)
  430.             6 = CMD_BITBLT  (Copy rectangle)
  431.             7 = illegal
  432.  
  433. 9EE8h W(R/W):  Short Stroke Vector Transfer Register (SHORT_STROKE)
  434. bit   0-3  Length of vector projected onto the major axis.
  435.            This is also the number of pixels drawn.
  436.         4  Must be set for pixels to be written.
  437.       5-7  VECDIR. The angle measured counter-clockwise from horizontal
  438.            right) at which the line is drawn,
  439.              0 = 000 degrees
  440.              1 = 045 degrees
  441.              2 = 090 degrees
  442.              3 = 135 degrees
  443.              4 = 180 degrees
  444.              5 = 225 degrees
  445.              6 = 270 degrees
  446.              7 = 315 degrees
  447.      8-15  The lower 8 bits are duplicated in the upper 8 bits so two
  448.            short stroke vectors can be drawn with one command.
  449. Note: The upper byte must be written for the SSV command to be executed.
  450.       Thus if a byte is written to 9EE8h another byte must be written to 
  451.       9EE9h before execution starts. A single 16bit write will do.
  452.       If only one SSV is desired the other byte can be set to 0.
  453. Note: In the original IBM 8514/A this register is Write only. 
  454.       In the CT82c480 it is read/writable
  455.  
  456. A2E8h W(W):  Background Color Register (BKGD_COLOR)
  457. bit   0-7  Background Color. This is the color used for writing pixels 
  458.            where the Foreground Color Mix is selected and FSS=0, or the
  459.            Background Color Mix is selected and BSS=0.
  460.      8-15  Reserved(0)
  461. Note: During drawing commands reading this register is equivalent to
  462.       reading the PIX_TRANS register (E2E8h).
  463.       This register is writable when GPBUSY=DATARDY=0 or when PCDATA=0.
  464.       Otherwise during drawing commands with PCDATA=1 a write to A2E8h
  465.       functions as a write to the PIX_TRANS register.
  466.  
  467. A6E8h W(W):  Foreground Color Register (FRGD_COLOR)
  468. bit   0-7  Foreground Color. This is the color used for writing pixels 
  469.            where the Foreground Color Mix is selected and FSS=1, or the
  470.            Background Color Mix is selected and BSS=1.
  471.      8-15  Reserved(0)
  472. Note: During drawing commands reading this register is equivalent to
  473.       reading the PIX_TRANS register (E2E8h).
  474.       This register is writable when GPBUSY=DATARDY=0 or when PCDATA=0.
  475.       Otherwise during drawing commands with PCDATA=1 a write to A6E8h
  476.       functions as a write to the PIX_TRANS register.
  477.  
  478. AAE8h W(R/W):  Write Mask Register (WRT_MASK)
  479. bit   0-7  Writemask. A plane can only be modified if the corresponding
  480.            bit is set.
  481.      8-15  Reserved(0)
  482. Note: In the original IBM 8514/A this register is Write only. 
  483.       In the CT82c480 it is read/writable
  484.  
  485. AEE8h W(R/W):  Read Mask Register (RD_MASK)
  486. bit   0-7  Read Mask affects the following commands: CMD_RECT, CMD_BITBLT
  487.            and reading data in Across Plane Mode.
  488.            Each bit set prevents the plane from being read.
  489.      8-15  Reserved(0)
  490. Note: In the original IBM 8514/A this register is Write only. 
  491.       In the CT82c480 it is read/writable
  492.  
  493. B2E8h W(R/W):  Color Compare Register (COLOR_CMP)
  494. bit   0-7  This is an 8 bit color which is compared to the destination
  495.            data during BitBlts. The aritmetic comparison to be used
  496.            (<,>,=,true,false, etc..) is specified by the COLCMPO bits
  497.            of the PIX_CNTL register.
  498.            If the result of the comparison is true, the destination data
  499.            is left unchanged.
  500.      8-15  Reserved(0)
  501. Note: In the original IBM 8514/A this register is Write only. 
  502.       In the CT82c480 it is read/writable
  503.  
  504. B6E8h W(R/W):  Background Mix Register (BKGD_MIX)
  505. bit   0-4  Background MIX (BACKMIX).
  506.             00  not DST
  507.             01  0 (false)
  508.             02  1 (true)
  509.             03  2 DST
  510.             04  not SRC
  511.             05  SRC xor DST
  512.             06  not (SRC xor DST)
  513.             07  SRC
  514.             08  not (SRC and DST)
  515.             09  (not SRC) or DST
  516.             0A  SRC or (not DST)
  517.             0B  SRC or DST
  518.             0C  SRC and DST
  519.             0D  SRC and (not DST)
  520.             0E  (not SRC) and DST
  521.             0F  not (SRC or DST)
  522.             10  min(SRC,DST)
  523.             11  DST-SRC with underflow
  524.             12  SRC-DST with underflow
  525.             13  SRC+DST with overflow
  526.             14  max(SRC,DST)
  527.             15  (DST-SRC)/2 with underflow
  528.             16  (SRC-DST)/2 with underflow
  529.             17  (SRC+DST)/2 with overflow
  530.             18  DST-SRC with saturate
  531.             19  DST-SRC with saturate
  532.             1A  SRC-DST with saturate
  533.             1B  SRC+DST with saturate
  534.             1C  (DST-SRC)/2 with saturate
  535.             1D  (DST-SRC)/2 with saturate
  536.             1E  (SRC-DST)/2 with saturate
  537.             1F  (SRC+DST)/2 with saturate
  538.            DST is always the destination bitmap, bit SRC has four
  539.            possible sources selected by the BSS bits.
  540.       5-6  Background Source Select (BSS)
  541.              0  BSS is Background Color
  542.              1  BSS is Foreground Color
  543.              2  BSS is Pixel Data from the PIX_TRANS register (E2E8h)
  544.              3  BSS is Bitmap Data (Source data from display buffer).
  545.      7-15  Reserved(0)
  546. Note: In the original IBM 8514/A this register is Write only. 
  547.       In the CT82c480 it is read/writable
  548.  
  549. BAE8h W(R/W):  Foreground Mix Register (FRGD_MIX)
  550. bit   0-4  Foreground MIX (FOREMIX).
  551.            Same as BACKMIX in B6E8h.
  552.       5-6  Foreground Source Select (FSS)
  553.              0  FSS is Background Color
  554.              1  FSS is Foreground Color
  555.              2  FSS is Pixel Data from the PIX_TRANS register (E2E8h)
  556.              3  FSS is Bitmap Data (Source data from display buffer).
  557.      7-15  Reserved(0)
  558. Note: In the original IBM 8514/A this register is Write only. 
  559.       In the CT82c480 it is read/writable
  560.  
  561. BEE8h W(W):  Multifunction Control Register (MULTIFUNC_CTRL)
  562. bit  0-11  Data. 
  563.     12-15  INDEX. indicates which Multifunction register 
  564.            will be written with the data in bits 0-11.
  565. Note: Several registers are placed at BEE8h. When BEE8 is written
  566.       the bits 12-15 selects the specific register to receive the write. 
  567. Note: In the original IBM 8514/A these registers are write-only.
  568.       The CT 82c480 allows reading the registers by writing the index
  569.       to bits 0-3 of the Extended Configuration Register 3 (5EE8h)
  570.       and then reading BEE8h. Bits 12-15 read are not valid.
  571.  
  572. BEE8h index 00h W(W): Minor Axis Pixel Count Register (MIN_AXIS_PCNT).
  573. bit  0-10  Height of BITBLT or rectangle command.
  574.            Actual height is one larger.
  575.        11  Reserved(0)
  576. Note: See note above on reading BEE8h.
  577.  
  578. BEE8h index 01h W(W):  Top Scissors Register (SCISSORS_T).
  579. bit  0-11  Minimum Y co-ordinate value for the scissors rectangle.
  580. Note: See note above on reading BEE8h.
  581.  
  582. BEE8h index 02h W(W):  Left Scissors Registers (SCISSORS_L).
  583. bit  0-11  Minimum X co-ordinate value for the scissors rectangle.
  584. Note: See note above on reading BEE8h.
  585.  
  586. BEE8h index 03h W(W):  Bottom Scissors Register (SCISSORS_B).
  587. bit  0-11  Maximum Y co-ordinate value for the scissors rectangle.
  588. Note: See note above on reading BEE8h.
  589.  
  590. BEE8h index 04h W(W):  Right Scissors Register (SCISSORS_R).
  591. bit  0-11  Maximum X co-ordinate value for the scissors rectangle.
  592. Note: See note above on reading BEE8h.
  593.  
  594. BEE8h index 05h W(W):  Memory Control Register (MEM_CNTL).
  595. bit   0-1  HORCFG. Xcoordinate divider.
  596.              0=4, 1=5, 2=8 and 3=10.
  597.            Bit 0 is set if using 5-pixel operations
  598.            and bit 1 is set if the VRAMs are interleaved horizontally.
  599.       2-3  VRTCFG.  VRAM banks.
  600.            If using 256KBit banks 0=2 banks and 1=4banks.
  601.            If using 1MBit banks 1=1 Bank, 2=2 banks and 3=4 banks.
  602.         4  BUFSWP. Used to select planes when in Pseude 8-plane mode.
  603.            If set buffer 1 (upper 4 planes) is selected.
  604.            If clear buffer 0 (lower 4 planes) is selected.
  605.      5-11  Reserved(0)
  606. Note: See note above on reading BEE8h.
  607.  
  608. BEE8h index 08h W(W):  Fixed Pattern Low Register (PATTERN_L).
  609. bit   0-4  Mask low is used to select the mix on a pixel by pixel basis.
  610.            If MIXSEL=01 then test pattern registers are used to select
  611.            ForeGround or background mix. Mask Low applies to even numbered
  612.            nuggets (0 is leftmost on the screen).
  613.            A 0 selects BACKMIX and a 1 selects FOREMIX.
  614.            Bit 4 is pixel 0 and bit 0 is pixel 4 (if in 5PN mode).
  615.      5-11  Reserved(0)
  616. Note: See note above on reading BEE8h.
  617.  
  618. BEE8h index 09h W(W):  Fixed Pattern High Register (PATTERN_H).
  619. bit   0-4  Mask low is used to select the mix on a pixel by pixel basis.
  620.            If MIXSEL=01 then test pattern registers are used to select
  621.            ForeGround or background mix. Mask High applies to odd numbered
  622.            nuggets (0 is leftmost on the screen).
  623.            A 0 selects BACKMIX and a 1 selects FOREMIX.
  624.            Bit 4 is pixel 0 and bit 0 is pixel 4 (if in 5PN mode).
  625.      5-11  Reserved(0)
  626. Note: See note above on reading BEE8h.
  627.  
  628. BEE8h index 0Ah W(W):  Pixel Control Register (PIX_CNTL).
  629. BIT     0  Intra-Nugget Alignment (INA5PN).
  630.            If set BitBlt data in the internal data buffer is aligned on
  631.            Modulos 5 basis rather than Modulos 4.
  632.       1-2  PLANEMODE.
  633.              0  Normal Operation
  634.              1  Indeterminate
  635.              2  Fill area using RD_MASK as boundary mask.
  636.                 Does not fill second edge of boundary;
  637.                 Plane Mask is a mixture of RD_MASK and WRT_MASK.
  638.              3  Fill area using WRT_MASK as boundary mask.
  639.                 Does fill second edge of boundary;
  640.                 Plane Mask is WRT_MASK (although RD_MASK must be
  641.                 non-zero for correct operation).
  642.       3-5  Color Comparison operation (COLCMPOP).
  643.            Determines the comparison performed on each pixel.
  644.              0  False  (always write DST)
  645.              1  true   (never write DST)
  646.              2  DST >= COLOR_CMP
  647.              3  DST <  COLOR_CMP
  648.              4  DST <> COLOR_CMP
  649.              5  DST =  COLOR_CMP
  650.              6  DST <= COLOR_CMP
  651.              7  DST >  COLOR_CMP
  652.       6-7  Mix Select (MIXSEL).
  653.              0  FOREMIX is always used.
  654.              1  PATTERN_L,PATTERN_H select mix.
  655.              2  Data from PIX_TRANS selects the mix (1=FOREMIX).
  656.              3  SRC selects mix (used for transparency during BITBLT).
  657.      8-11  Reserved(0)
  658. Note: See note above on reading BEE8h.
  659.  
  660. E2E8h W(R/W):  Pixel Data Transfer Register (PIX_TRANS)
  661. bit  0-15  Data can be read from or written to the display buffer.
  662.            In through plane mode (PLANAR=0), bits 0-7 and 8-15 map onto
  663.            bit planes 0-7 of an individual pixel.
  664.            In across plane mode (PLANAR=1) bits 0-4 and 8-12 map onto pixels
  665.            0-4 within a nugget (1 bit per pixel).
  666. Note: The original IBM 8514/A should always be accessed with 16bit read/writes
  667. Note: The original IBM 8514/A can access this register at A2E8h and A6E8h
  668.       during drawing commands.
  669.