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