IBM 8514/A

8514/A clones:

ATI 38800-1 (MACH 8), 68800 (MACH 32)
Chips&Tech 82c480
Paradise  WD95c00/01


0102h (R/W):  Setup Control Register
bit     0  If set the adapter is enabled, if clear the card is
           invisible to the system.
      1-7  Reserved(0)

02E8h W(R):  Display Status Register
bit     0  SENSE is the result of a wired-OR of 3 comparators, one
           for each of the RGB video signal.
           By programming the RAMDAC for various values
           and patterns and then reading the SENSE, the monitor type
           (color, monochrome or none) can be determined.
        1  VBLANK. Vertical Blank State
           If Vertical Blank is active this bit is set.
        2  HORTOG. Horizontal Toggle
           This bit toggles every time a HSYNC pulse starts
     3-15  Reserved(0)

02E8h W(W):  Horizontal Total Register (H_TOTAL)
bits  0-8  Horizontal Total defines the total horizontal scan line width
           including the display, blank and sync times.
           All horizontal timings are in "double nuggets"
           (8 or 10 pixels depending on the state of MEM_CNTL[0]).
           The actual value is one larger than this register.
     9-15  Reserved(0)
Note: this register is written at 02E8 and read at 26E8h.

02EAh (R/W):  DAC Mask Register (DAC_MASK)
bits  0-7  DAC mask. This value is anded to the pixel data before going
           to the DAC. Set to 0FFh for normal operation.
Note: In VGA pass through mode writes to the VGA palette address 03C6h
      will go to this address to allow the 8514/A to mirror palette changes.

02EBh (R/W):  DAC Read Index Register (DAC_R_INDEX)
bits  0-7  DAC Read Index. Indicates which of the 256 palette entries
           will be read by the current sequence of I/O read operations
           to the DAC_DATA (02EDh) register.
Note: In VGA pass through mode writes to the VGA palette address 03C7h
      will go to this address to allow the 8514/A to mirror palette changes.

02ECh (R/W):  DAC Write Index Register (DAC_W_INDEX)
bits  0-7  DAC Write Index. Indicates which of the 256 palette entries
           will be written by the current sequence of I/O write operations
           to the DAC_DATA (02EDh) register.
Note: In VGA pass through mode writes to the VGA palette address 03C8h
      will go to this address to allow the 8514/A to mirror palette changes.

02EDh (R/W):  DAC DATA Register (DAC_DATA)
bits  0-7  DAC Data.
Note: In VGA pass through mode writes to the VGA palette address 03C9h
      will go to this address to allow the 8514/A to mirror palette changes.

06E8h W(W):  Horizontal Displayed Register (H_DISP)
bits  0-7  Number of "double nuggets"-1 displayed in a scan line.
     8-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

0AE8h W(W):  Horizontal Sync Start Register (H_Sync_STRT)
bits  0-7  Hsync starts at (H_SYNC_STRT +1) double nugget periods.
     8-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

0EE8h W(W):  Horizontal Sync Width Register (H_SYNC_WID)
bits  0-4  Width of the Horizontal Sync pulse in "double nuggets".
        5  Horizontal Sync Polarity (HSYNCPOL).
           If set the Horizontal Sync Pulse is Negative, else Positive.
     6-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

12E8h W(W):  Vertical Total Register (V_TOTAL)
bits  0-2  Vertical Total Adjust (VTADJ).
     3-11  Vertical Total Base (VTB).
           The Vertical Total is calculated as:
           Vertical Total = (Scan Modulos * VTB)+VTADJ+1
           Where the Scan Modulos is found from the DBLSCAN and
           MEMCFG bits of the DISP_CNTL register (22E8h).

           DBLSCAN:      MEMCFG:     Scan Modulos:
              0            0 0           2
              0            0 1           4
              0            1 0           6
              0            1 1           8
              1            0 0           4
              1            0 1           8
              1            1 0          12
              1            1 1          16
    12-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

16E8h W(W):  Vertical Displayed Register (V_DISP)
bits  0-2  Vertical Displayed Adjust (VDADJ)
     3-11  Vertical Displayed Base (VDB)
           The Vertical Displayed is calculated as:
           Vertical Displayed = (Scan Modulos * VDB)+VDADJ+1
           Where the Scan Modulos is the same as for
           Vertical Total in 12E8h.
    12-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

1AE8h W(W):  Vertical Sync Start Register (V_SYNC_STRT)
bits  0-2  Vertical Sync Start Adjust (VSADJ)
     3-11  Vertical Sync Start Base (VSB)
           The Vertical Sync Start is calculated as:
           Vertical Sync Start = (Scan Modulos * VSB)+VSADJ+1
           Where the Scan Modulos is the same as for
           Vertical Total in 12E8h.
    12-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

1EE8h W(W):  Vertical Sync Width Register (V_SYNC_WID)
bits  0-4  Number of scanlines in the Vertical Sync pulse.
        5  Vertical Sync Polarity (VSYNCPOL).
           If set the Vertical Sync pulse is Negative, else Positive.
     6-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

22E8h W(W):  Display Control Register (DISP_CNTL)
bit     0  Odd Bank Enable (ODDBNKENAB).
           If set use Horizontally Interleaved banks.
           (Normal 8514/A mode).
      1-2  Memory Configuration (MEMCFG).
             0  NCLK     (PS8 Mode)
             1  NCLK/2   (Normal 8514/A Mode)
             2  NCLK/3
             3  NCLK/4
        3  (Double Scan) DBLSCAN. If set doublescan is enabled.
        4  INTERLACE. Interlace if set.
      5-6  Display Enable (DISPEN)
              0 = No effect
              1 = Enable Hsync, Vsync, Blank, data transfer cycles
                  and refresh cycles.
            2,3 = Disable Hsync, Vsync, Blank, data transfer cycles
                  and refresh cycles.
     7-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

26E8h W(R):  Horizontal Total Register (H_TOTAL)
Note: this register is written at 02E8 and read at 26E8h.

2EE8h W(R):  Subsystem Control Register (SUBSYS_CNTL)
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is written to 42E8h and read from 2EE8h.

42E8h W(R):  Subsystem Status Register (SUBSYS_STAT)
bit   0-3  Interrupt requests. These bits show the state of internal interrupt
           requests. An interrupt will only occur if the corresponding bit(s)
           in SUBSYS_CNTL is set. Interrupts can only be reset by writing a 1
           to the corresponding Interrupt Clear bit in SUBSYS_CNTL.
             Bit 0: VBLNKFLG
                 1: PICKFLAG
                 2: INVALIDIO
                 3: GPIDLE
      4-6  MONITORID.
              1: IBM 8507 (1024x768) Monochrome
              2: IBM 8514 (1024x768) Color
              5: IBM 8503 (640x480) Monochrome
              6: IBM 8512/13 (640x480) Color
        7  8PLANE.
           (CT82c480) This bit is latched on reset from pin P4D7.
     8-11  CHIP_REV. Chip revision number.
    12-15  (CT82c480) CHIP_ID. 0=CT 82c480.

42E8h W(W):  Subsystem Control Register (SUBSYS_CNTL)
bit   0-3  Interrupt Reset. Write 1 to a bit to reset the interrupt.
           Bit 0  RVBLNKFLG   Write 1 to reset Vertical Blank interrupt.
               1  RPICKFLAG   Write 1 to reset PICK interrupt.
               2  RINVALIDIO  Write 1 to reset Queue Overflow/Data
                              Underflow interrupt.
               3  RGPIDLE     Write 1 to reset GPIDLE interrupt.
      4-7  Reserved(0)
        8  IBLNKFLG.   If set Vertical Blank Interrupts are enabled.
        9  IPICKFLAG.  If set PICK Interrupts are enabled.
       10  IINVALIDIO. If set Queue Overflow/Data Underflow Interrupts are
                       enabled.
       11  IGPIDLE.    If set Graphics Engine Idle Interrupts are enabled.
    12-13  CHPTEST. Used for chip testing.
    14-15  Graphics Processor Control (GPCTRL).
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is written to 42E8h and read from 2EE8h.

46E8h W(W):  ROM Page Select Register (ROM_PAGE_SEL)
bit   0-2  Maps a 4KB page of the onboard 32K ROM to address C7000h-C7FFFh.
        3  VGA Enable. If set enables the VGA
           This bit is not implemented in the 8514/A, but in the VGA
           controller.
        4  VGA Setup.  If set the VGA is in Setup mode.
           This bit is not implemented in the 8514/A, but in the VGA
           controller.
     5-15  Reserved(0)
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

4AE8h W(W):  Advanced Function Control Register  (ADVFUNC_CNTL)
bit     0  DISABPASSTHRU. If clear the VGA video is passed through the
           8514/A RAMDAC, if set the 8514/A video is passed to the 8514/A
           RAMDAC.
        1  RSDV0. Reserved bit 0  = 1.
        2  Clock Select (CLKSEL).
           If set a clock of 44.900MHz is used (1024x768 interlaced)
           if clear a clock of 25.175MHz is used (640x480).
           The CT82c480 supports 8 clock frequencies through the
           Extended Configuration Register EC3 (5EE8h).
        3  RSDV1. Reserved bit 1 =0.
     4-15  Reserved(0).
Note: In the 8514/A this register is Writeonly,
      In the Chips&Tech 82c480 it is Read/Write.

52E8h W(R/W):  Extended Configuration Register (EC0)           (CT82c480 only)
bit  0-15  Reserved.

56E8h W(R/W):  Extended Configuration Register (EC1)           (CT82c480 only)
bit  0-15  Reserved.

5AE8h W(R/W):  Extended Configuration Register (EC2)           (CT82c480 only)
bit   0-2  Reserved(1)
      3-4  ROMBASE. Latched on reset from P4D3-4.
           Determines start address of ROM:
                    8K ROM         32K ROM
                  MC     ISA      MC     ISA       MC =Micro Channel
             0  0C8000  C6000   0D0000  D0000
             1  0D8000  D8000   0D8000  D8000
             2  0C0000  C0000   0C0000  C0000
             3  0C6000  C8000   0C8000  C8000
        5  ROMSIZE. Latched on reset from P4D5.
           If set the ROM is 8K, if clear the ROM is 32K.
        6  ROMPAGING. Latched from P4D6 on reset.
           If set the ROMPG pins are outputs, if clear they are inputs.
        7  8 Bit planes (8BP).
      8-9  BANKS. Number of VRAM banks.
            0=1  bank, 1=2 banks, 2=3 banks, 3=4 banks.
       10  If set 256Kx4 VRAMs are used, if clear 64Kx4 VRAMs.
           Sampled from MA8 on reset.
       11  5-Pixel Nuggets (5PN). Latched from WE4/ on reset.
           Determines whether there are 4 or 5 pixels to a nugget.
       12  Reserved(0)
       13  8-bit DAC Control (8BITDAC). If set the RAMDAC is 8bit rather than
           6bit. On reset the 8BITDAC pin is sampled, then the pin turns into
           an output driven by this bit. This can be used to switch a DAC with
           6/8bit ability like an IMSG178 or BT478 between 6 and 8 bits.
    14-15  Reserved(0)

5EE8h W(R/W):  Extended Configuration Register (EC3)           (CT82c480 only)
bit   0-3  Selects which registers will be read from BEE8h.
        4  Alternate High Register Select (AHRS). If set writes to video
           timing registers will go to the Alternate-High register set.
        5  Alternate Low Register Select (ALRS). If set writes to video timing
           registers will go to the Alternate-Low register set.
        6  Alternate High Register Enable (AHRE). If set enables the Alternate
           High-resolution video timing register set.
        7  Alternate Low Register Enable (ALRE). If set enables the Alternate
           Low-resolution video timing register set.
     8-10  Clock Select 0-2 (CLKSEL0-2). The CT82c480 maintains 3 different
           clock select register sets. On set each for Alternate High,
           Alternate Low and normal video.
       11  Reserved(0)
       12  OVERRIDE. If set the normal video register set is used.
           If clear the AHRE and ALRE determines the video register set used.
           This bit is reset on any write to the ADVFUNC_CTRL register (4AE8h)
    13-15  Reserved(0)
Note: Writes to this register should be 8-bit.

82E8h W(R/W):  Current Y Position Register (CUR_Y)
bit  0-11  Y Position. Y co-ordinate of current position in pixels.
    12-15  Reserved(0)

86E8h W(R/W):  Current X Position Register (CUR_X)
bit  0-11  X Position. X co-ordinate of current position in pixels.
    12-15  Reserved(0).
Note: In 5PN mode bits 11, 1 and 0 are remainder bits, bits 2-10 are the
      current X position modulo 5.

8AE8h W(R/W):  Destination Y Position & Axial Step Constant Register
               (DESTY_AXSTP)
bit  0-11  During BITBLT operations this is the Y co-ordinate of the
           destination in pixels. During Line Drawing, this is the Bresenham
           constant 2*dminor. (dminor is the length of the line projected
           onto the minor or dependent axis).
       12  AXSTPSIGN. Sign bit for Axial Step Constant.
           Should be 0 during BITBLT operations.
    13-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only. In the CT82c480
      it is read/writable

8EE8h W(R/W):  Destination X Position & Diagonal Step Constant Register
               (DESTX_DISTP)
bit  0-11  During BITBLT operations this is the X co-ordinate of the
           destination in pixels.
           During Line Drawing this is the Bresenham constant 2*dminor-
           2*dmajor. (dminor is the length of the line projected onto
           the minor or dependent axis, dmajor is the length of the
           line projected onto the major or independent axis)
       12  DGSTPSIGN. Sign bit for Diagonal Step Constant
           (Should be set to 0 for BITBLT operations).
    13-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only. In the CT82c480
      it is read/writable

92E8h W(R/W):  Error Term Register (ERR_TERM).
bit  0-12  Initial Error Term. This register is programmed to the Bresenham
           initial error term before a line drawing command is issued.
    13-15  Reserved. These bits are read/writable but have no function.

96E8h W(R/W):  Major Axis Pixel Count & Rectangle Width Register
               (MAJ_AXIS_PCNT)
bit  0-10  For BITBLT and rectangle commands this is the width of the area.
           For Line Drawing this is the Bresenham constant dmajor.
           Must be positive.
    11-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is read/writable

9AE8h W(R):  Graphics Processor Status Register (GP_STAT)
bit   0-7  Queue State.
             00h = 8 words available - queue is empty
             01h = 7 words available
             03h = 6 words available
             07h = 5 words available
             0Fh = 4 words available
             1Fh = 3 words available
             3Fh = 2 words available
             7Fh = 1 word available
             FFh = 0 words available - queue is full
        8  DATARDY. If set data is ready to be read from
           the PIX_TRANS register (E2E8h).
        9  Graphics Processor Busy (GPBUSY)
           If set the Graphics Processor is busy.
    10-15  Reserved(0)

9AE8h W(W):  Command Register (CMD)
bit     0  WRTDATA. If set VRAM write operations are enabled. If clear
           operations execute normally but no writes to memory is performed.
        1  PLANAR defines the orientation of the display bitmap.
             0=Through plane mode, 1=Across plane mode.
        2  If set the last pixel of a line command (CMD_LINE, SSV or LINEAF)
           is not drawn. This is used for mixes such as XOR where drawing the
           same pixel twice would give the wrong color.
           For rectangle commands the effect is different depending on the
           INC_X and INC_Y fields:
              CMD_RECT
                 If INC_X is set then the rightmost column is not drawn,
                 if clear the leftmost column is not drawn.
              CMD_RECTV1
                 If INC_Y is set the bottom row is not drawn,
                 if clear the top row is not drawn.
              CMD_RECTV2
                 No effect
              CMD_BITBLT
                 If INC_X set the rightmost column is not drawn,
                 if clear the leftmost column is not drawn.
        3  LINETYPE.
             0: Bresenham line drawing
                  CMD_LINE draws a line using the Bresenham algorithm as
                  specified in the DESTY_AXSTP (8AE8h), DESTX_DIASTP (8EE8h),
                  ERR_TERM (92E8h) and MAJ_AXIS_PCNT (96E8h) registers
             1: Vector line draws.
                  CMD_NOP allows drawing of Short Stroke Vectors (SSVs) by
                  writing to the Short Stroke register (9EE8h).
                  CMD_LINE draws a vector of length MAJ_AXIS_PCNT (96E8h)
                  in the direction specified by LINEDIR (bits 5-7).
        4  DRAW. If clear the current position is moved, but no pixels
           are modified. This bit should be set when attempting read or
           write of bitmap data.
      5-7  LINEDIR. When a line draw command (CMD_LINE) with LINETYPE=1
           is issued, these bits define the direction of the line
           counter clockwise relative to the positive X-axis.
             0 = 000 degrees
             1 = 045 degrees
             2 = 090 degrees
             3 = 135 degrees
             4 = 180 degrees
             5 = 225 degrees
             6 = 270 degrees
             7 = 315 degrees
        5  INC_X. This bit together with INC_Y determines which quadrant
           the slope of a line lies within. They also determine the
           orientation of rectangle draw commands.
           If set lines are drawn in the positive X direction (left to right).
        6  YMAJAXIS. For Bresenham line drawing commands this bit determines
           which axis is the independent or major axis. INC_X and INC_Y
           determines which quadrant the slope falls within. This bit further
           defines the slope to within an octant.
           If set Y is the major (independent) axis.
        7  INC_Y. This bit together with INC_X determines which quadrant
           the slope of a line lies within. They also determine the
           orientation of rectangle draw commands.
           If set lines are drawn in the positive Y direction (down).
        8  (Pixel Data Enable) PCDATA.
           If set the drawing engine waits for read/write of the PIX_TRANS
           register (E2E8h) for each pixel during a draw operation.
        9  16BIT. If set the PIX_TRANS register (E2E8h) is processed
           internally as two bytes in the order specified by BYTSEQ.
           If clear all accesses are 8bit.
    10-11  Reserved(0)
       12  Byte Sequence (BYTSEQ). Affects both reads and writes of
           SHORT_STROKE (9EE8h) and PIX_TRANS (E2E8h) when 16bit=1.
           If set take low byte first, if clear take high byte first.
    13-15  Draw Command:
            0 = CMD_NOP.    (Should be used for Short Stroke Vectors).
            1 = CMD_LINE
            2 = CMD_RECT    (Fill rectangle in X direction)
            3 = CMD_RECTV1  (Fill rectangle in Y direction)
            4 = CMD_RECTV2  (Fast filled Y direction rectangle)
            5 = CMD_LINEAF  (Outline)
            6 = CMD_BITBLT  (Copy rectangle)
            7 = illegal

9EE8h W(R/W):  Short Stroke Vector Transfer Register (SHORT_STROKE)
bit   0-3  Length of vector projected onto the major axis.
           This is also the number of pixels drawn.
        4  Must be set for pixels to be written.
      5-7  VECDIR. The angle measured counter-clockwise from horizontal
           right) at which the line is drawn,
             0 = 000 degrees
             1 = 045 degrees
             2 = 090 degrees
             3 = 135 degrees
             4 = 180 degrees
             5 = 225 degrees
             6 = 270 degrees
             7 = 315 degrees
     8-15  The lower 8 bits are duplicated in the upper 8 bits so two
           short stroke vectors can be drawn with one command.
Note: The upper byte must be written for the SSV command to be executed.
      Thus if a byte is written to 9EE8h another byte must be written to
      9EE9h before execution starts. A single 16bit write will do.
      If only one SSV is desired the other byte can be set to 0.
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is read/writable

A2E8h W(W):  Background Color Register (BKGD_COLOR)
bit   0-7  Background Color. This is the color used for writing pixels
           where the Foreground Color Mix is selected and FSS=0, or the
           Background Color Mix is selected and BSS=0.
     8-15  Reserved(0)
Note: During drawing commands reading this register is equivalent to
      reading the PIX_TRANS register (E2E8h).
      This register is writable when GPBUSY=DATARDY=0 or when PCDATA=0.
      Otherwise during drawing commands with PCDATA=1 a write to A2E8h
      functions as a write to the PIX_TRANS register.

A6E8h W(W):  Foreground Color Register (FRGD_COLOR)
bit   0-7  Foreground Color. This is the color used for writing pixels
           where the Foreground Color Mix is selected and FSS=1, or the
           Background Color Mix is selected and BSS=1.
     8-15  Reserved(0)
Note: During drawing commands reading this register is equivalent to
      reading the PIX_TRANS register (E2E8h).
      This register is writable when GPBUSY=DATARDY=0 or when PCDATA=0.
      Otherwise during drawing commands with PCDATA=1 a write to A6E8h
      functions as a write to the PIX_TRANS register.

AAE8h W(R/W):  Write Mask Register (WRT_MASK)
bit   0-7  Writemask. A plane can only be modified if the corresponding
           bit is set.
     8-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is read/writable

AEE8h W(R/W):  Read Mask Register (RD_MASK)
bit   0-7  Read Mask affects the following commands: CMD_RECT, CMD_BITBLT
           and reading data in Across Plane Mode.
           Each bit set prevents the plane from being read.
     8-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is read/writable

B2E8h W(R/W):  Color Compare Register (COLOR_CMP)
bit   0-7  This is an 8 bit color which is compared to the destination
           data during BitBlts. The arithmetic comparison to be used
           (<,>,=,true,false, etc..) is specified by the COLCMPO bits
           of the PIX_CNTL register.
           If the result of the comparison is true, the destination data
           is left unchanged.
     8-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is read/writable

B6E8h W(R/W):  Background Mix Register (BKGD_MIX)
bit   0-4  Background MIX (BACKMIX).
            00  not DST
            01  0 (false)
            02  1 (true)
            03  2 DST
            04  not SRC
            05  SRC xor DST
            06  not (SRC xor DST)
            07  SRC
            08  not (SRC and DST)
            09  (not SRC) or DST
            0A  SRC or (not DST)
            0B  SRC or DST
            0C  SRC and DST
            0D  SRC and (not DST)
            0E  (not SRC) and DST
            0F  not (SRC or DST)
            10  min(SRC,DST)
            11  DST-SRC with underflow
            12  SRC-DST with underflow
            13  SRC+DST with overflow
            14  max(SRC,DST)
            15  (DST-SRC)/2 with underflow
            16  (SRC-DST)/2 with underflow
            17  (SRC+DST)/2 with overflow
            18  DST-SRC with saturate
            19  DST-SRC with saturate
            1A  SRC-DST with saturate
            1B  SRC+DST with saturate
            1C  (DST-SRC)/2 with saturate
            1D  (DST-SRC)/2 with saturate
            1E  (SRC-DST)/2 with saturate
            1F  (SRC+DST)/2 with saturate
           DST is always the destination bitmap, bit SRC has four
           possible sources selected by the BSS bits.
      5-6  Background Source Select (BSS)
             0  BSS is Background Color
             1  BSS is Foreground Color
             2  BSS is Pixel Data from the PIX_TRANS register (E2E8h)
             3  BSS is Bitmap Data (Source data from display buffer).
     7-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is read/writable

BAE8h W(R/W):  Foreground Mix Register (FRGD_MIX)
bit   0-4  Foreground MIX (FOREMIX).
           Same as BACKMIX in B6E8h.
      5-6  Foreground Source Select (FSS)
             0  FSS is Background Color
             1  FSS is Foreground Color
             2  FSS is Pixel Data from the PIX_TRANS register (E2E8h)
             3  FSS is Bitmap Data (Source data from display buffer).
     7-15  Reserved(0)
Note: In the original IBM 8514/A this register is Write only.
      In the CT82c480 it is read/writable

BEE8h W(W):  Multifunction Control Register (MULTIFUNC_CTRL)
bit  0-11  Data.
    12-15  INDEX. indicates which Multifunction register
           will be written with the data in bits 0-11.
Note: Several registers are placed at BEE8h. When BEE8 is written
      the bits 12-15 selects the specific register to receive the write.
Note: In the original IBM 8514/A these registers are write-only.
      The CT 82c480 allows reading the registers by writing the index
      to bits 0-3 of the Extended Configuration Register 3 (5EE8h)
      and then reading BEE8h. Bits 12-15 read are not valid.

BEE8h index 00h W(W): Minor Axis Pixel Count Register (MIN_AXIS_PCNT).
bit  0-10  Height of BITBLT or rectangle command.
           Actual height is one larger.
       11  Reserved(0)
Note: See note above on reading BEE8h.

BEE8h index 01h W(W):  Top Scissors Register (SCISSORS_T).
bit  0-11  Minimum Y co-ordinate value for the scissors rectangle.
Note: See note above on reading BEE8h.

BEE8h index 02h W(W):  Left Scissors Registers (SCISSORS_L).
bit  0-11  Minimum X co-ordinate value for the scissors rectangle.
Note: See note above on reading BEE8h.

BEE8h index 03h W(W):  Bottom Scissors Register (SCISSORS_B).
bit  0-11  Maximum Y co-ordinate value for the scissors rectangle.
Note: See note above on reading BEE8h.

BEE8h index 04h W(W):  Right Scissors Register (SCISSORS_R).
bit  0-11  Maximum X co-ordinate value for the scissors rectangle.
Note: See note above on reading BEE8h.

BEE8h index 05h W(W):  Memory Control Register (MEM_CNTL).
bit   0-1  HORCFG. Xco-ordinate divider.
             0=4, 1=5, 2=8 and 3=10.
           Bit 0 is set if using 5-pixel operations
           and bit 1 is set if the VRAMs are interleaved horizontally.
      2-3  VRTCFG.  VRAM banks.
           If using 256KBit banks 0=2 banks and 1=4banks.
           If using 1MBit banks 1=1 Bank, 2=2 banks and 3=4 banks.
        4  BUFSWP. Used to select planes when in Pseudo 8-plane mode.
           If set buffer 1 (upper 4 planes) is selected.
           If clear buffer 0 (lower 4 planes) is selected.
     5-11  Reserved(0)
Note: See note above on reading BEE8h.

BEE8h index 08h W(W):  Fixed Pattern Low Register (PATTERN_L).
bit   0-4  Mask low is used to select the mix on a pixel by pixel basis.
           If MIXSEL=01 then test pattern registers are used to select
           ForeGround or background mix. Mask Low applies to even numbered
           nuggets (0 is leftmost on the screen).
           A 0 selects BACKMIX and a 1 selects FOREMIX.
           Bit 4 is pixel 0 and bit 0 is pixel 4 (if in 5PN mode).
     5-11  Reserved(0)
Note: See note above on reading BEE8h.

BEE8h index 09h W(W):  Fixed Pattern High Register (PATTERN_H).
bit   0-4  Mask low is used to select the mix on a pixel by pixel basis.
           If MIXSEL=01 then test pattern registers are used to select
           ForeGround or background mix. Mask High applies to odd numbered
           nuggets (0 is leftmost on the screen).
           A 0 selects BACKMIX and a 1 selects FOREMIX.
           Bit 4 is pixel 0 and bit 0 is pixel 4 (if in 5PN mode).
     5-11  Reserved(0)
Note: See note above on reading BEE8h.

BEE8h index 0Ah W(W):  Pixel Control Register (PIX_CNTL).
BIT     0  Intra-Nugget Alignment (INA5PN).
           If set BitBlt data in the internal data buffer is aligned on
           Modulos 5 basis rather than Modulos 4.
      1-2  PLANEMODE.
             0  Normal Operation
             1  Indeterminate
             2  Fill area using RD_MASK as boundary mask.
                Does not fill second edge of boundary;
                Plane Mask is a mixture of RD_MASK and WRT_MASK.
             3  Fill area using WRT_MASK as boundary mask.
                Does fill second edge of boundary;
                Plane Mask is WRT_MASK (although RD_MASK must be
                non-zero for correct operation).
      3-5  Color Comparison operation (COLCMPOP).
           Determines the comparison performed on each pixel.
             0  False  (always write DST)
             1  true   (never write DST)
             2  DST >= COLOR_CMP
             3  DST <  COLOR_CMP
             4  DST <> COLOR_CMP
             5  DST =  COLOR_CMP
             6  DST <= COLOR_CMP
             7  DST >  COLOR_CMP
      6-7  Mix Select (MIXSEL).
             0  FOREMIX is always used.
             1  PATTERN_L,PATTERN_H select mix.
             2  Data from PIX_TRANS selects the mix (1=FOREMIX).
             3  SRC selects mix (used for transparency during BITBLT).
     8-11  Reserved(0)
Note: See note above on reading BEE8h.

E2E8h W(R/W):  Pixel Data Transfer Register (PIX_TRANS)
bit  0-15  Data can be read from or written to the display buffer.
           In through plane mode (PLANAR=0), bits 0-7 and 8-15 map onto
           bit planes 0-7 of an individual pixel.
           In across plane mode (PLANAR=1) bits 0-4 and 8-12 map onto pixels
           0-4 within a nugget (1 bit per pixel).
Note: The original IBM 8514/A should always be accessed with 16bit read/writes
Note: The original IBM 8514/A can also access this register at A2E8h and A6E8h
      during drawing commands.
