1280_Refresh_Buffer_Interface
1280 Refresh Buffer Interface Rationale
A Kossow
March 1985
The interface between the control,video memory, and ECL boards
( the refresh buffer ) and the CPU board was designed to permit
external access of all physical device registers ( caps, rd/wr
masks, etc.) and provides a dedicated drawing processor which
executes frequently used graphics algorithms. Subdividing the
task of manipulating the data in the refresh buffer was a trade
off between complexity of drawing processor microcode and refresh
buffer performance.
The operations performed by the drawing processor are common graphics
primitives ( move, draw, erase, bit-block transfer) or are the
refresh buffer intensive sections of more complicated algorithms
such as fills.
The number of different types of drawing primitives has been kept
small. Of the 64 possible entry points, only 25 have currently been
defined.
Primitive Number Function
---------------- --------
0 Reset Drawing Processor/ Initialize Refresh Buffer
1 12 X 12 unsigned multiply
2 24 / 12 unsigned divide
10 Read/Write X Cap in current window space (move x)
11 Read/Write Y Cap in current window space (move y)
20 Read Window Boundaries
21 Write Window Boundaries
22 Erase Current Window
23 Update Color Table Entry (Waits for Start of H Blank)
24 Draw Vector Absolute
25 Draw Vector Relative
26 Draw Filled Rectangle Absolute
27 Draw Filled Rectangle Relative
28 Bit-Block Transfer Absolute
29 Bit-Block Transfer Relative
2A Draw Character
2B Write N Pixels Along Major Axis
2C Edge Flag Search
2D Edge Flag Fill
2E Interior Fill Search
2F Interior Fill Fill
30 Overlay Fill Search
31 Overlay Fill Fill
32 General Fill Search
33 General Fill Fill
Refresh Buffer Register Summary
-------------------------------
Read Mask '1' Bits enable bit plane data to LUT rams
Write Mask '1' Bits enable writing bit planes
Overlay Color Color of bits set in the overlay plane
Lut Adr Address of color look up table entry
Lut Red Value of Red LUT entry at 'Lut Adr'
Lut Grn Value of Grn LUT entry at 'Lut Adr'
Lut Blu Value of Blu LUT entry at 'Lut Adr'
Control Reg Controls which axis is the major axis (X or Y),
the direction of adv in major and minor,
enabling display or writing of the overlay plane,
and 960/1024 vertical display format
Stipple Reg An 8 bit recirculating shift register which
can inhibit video memory writes. Useful for
repeating pattern fills, or patterned line
draws
X Cap Current X position within refresh buffer memory
Y Cap Current Y position within refresh buffer memory
VidNoi Video memory data, does not advance X,Y Caps
VidMaj Video memory data, advances major axis
VidMin Video memory data, advances minor axis
VidBoth Video memory data, advances major and minor axis
StpNoi Same as Vid???, except the writing of video memory
StpMaj is inhibited if the most significant bit of the
StpMin stipple register is a 0
StpBoth
MWENoi Same as Vid???, except a 10 horizontal pixels will
MWEMaj be written at once.
MWEMin
MWEBoth
Display Processor Register Summary
----------------------------------
Parameter Register 0-15 Argument/Result Storage for DPU Primitives
X Pos Current X position in window
Y Pos Current Y position in window
FG Color Current drawing color
BG Color Current erase color
Chr X Width of a character
Chr Y Height of a character
Chr dX Horizontal Inter-character spacing
Chr dY Vertical Inter-character spacing
XWBot Lower Left Corner of Current Window
YWBot
XWTop Upper Right Corner of Current Window
YWTop