Colorware 1280 Instruction Summary ---------------------------------- This document presents an overview of the Colorware(tm) command set. It includes a description of the refresh buffer hardware and a summary of the graphics command set as defined for the model 1280 high-resolution display. Introduction ------------ The model 1280 is the latest member of the Colorware graphics terminal line. It is a full-color non-interlaced graphics display terminal providing eight planes of 1280 * 1024 pixels, a 256 element color lookup table ,and a single 1280 * 1024 pixel overlay plane. Complete control of graphics writing and readback is provided by an 8 bit read mask and an 8 bit write mask, which can be used to mask the writing or readback of any of the graphics planes. The overlay plane acts as a pixel-by-pixel mask of the 8 graphics planes. If a pixel in the overlay plane is set, the 8 bit color index stored in the overlay color register is substituted for the 8 bits of graphics plane information. Two possible applications for the overlay plare are overlayed text on 'top 'of normal graphics, and using the overlay plane to 'hide' sections of the underling graphics. Graphics Planes +--------+ +--------+ | +--------+ | +-/ +--------+ | +--/ +--------+ | +---/ +--------+ | +----/ +--------+ | +-----/ +--------+ | +------/ | | +-------/ 8 LUT DACS | +--------+------------/-------+ +-----+ +----+ 8 +----+ | |-+ | | | | |-/-+ |-- +--------+ +-----+ | 8 | | 8 | | Overlay Color Reg | +--/--+ +-/-| |-- +--------+ +-----+ | | | 8 | | | | 8 | | | | +-/-+ |-- | +----/-------+ +--+--+ +----+ +----+ | | | Overlay Plane +--------+ | +--------+ | | | 1 | | +---------------------/----------------+ | | +--------+ Video Output Pipeline Drawing Accelerator Overview ---------------------------- High speed vector draw, area fill, and raster-op operations are possible in the model 1280 because of a dedicated bipolar drawing processor which is synchronized to the refresh buffer memory system. Optimized code sequences within this processor permit vector draws to occur at the cycle time of the refresh buffer memory (327ns/pixel). Optimization of pixel writes along the horizontal axis permit effective pixel writing speeds of under 36ns/pixel when doing rectangular fills. The special case of full-screen erases are handled by special circutry in the refresh buffer which allow all 1280 * 1024 pixels to be flash-filled during one vertical retrace time (<500uS). Colorware Command Set --------------------- The instruction set of the model 1280 is a superset of those availible on other members of the Colorware family with the exception of commands which used the hardware grid, pan, or integer zoom facilities of the earlier models. All registers within the refresh buffer may be directly manipulated using the Colorware instruction set. These include the read and write masks, the overlay and control registers, and the color lookup tables. Additional Colorware commands permit the programmer to draw graphic primitives such as lines, circles, elipses, rectangles, filled polygons, and alphanumeric characters. Colorware 1280 Command Extensions --------------------------------- Two major extensions of the Colorware command set are VT100 emulation concurent with the display of graphics and support for graphics windowing. Pixel addresses to the display are translated from virtual X,Y space to physical X,Y space before being used for graphics operations. The pixel information sent to the display may also be clipped to a rectangular section of the display. Another difference between the 1280 and previous Colorware models is that X,Y addresses do not 'wrap around' if they exceed 1279 in X or 1023 in Y. An additional extension to the command set is a ability to send drawing commands directly to the drawing accelerator. Passing commands directly to the drawing accelerator permits drawing operations to occur much faster that is normally possible using the normal command interpreters. Colorware 1280 Command Summary ------------------------------ Alphanumerics HOM - Move alphanumeric cursor to top left chr pos SAP - Set alphanumeric parameters SAC - Set alphanumeric cursor color MAR - Set left and right text margins CHR - Set character size TXT - Display text string Color Setup SEC - Set foreground color SBC - Set background color SCT - Load color lookup table RCT - Read color lookup table LAT - Load color table with anti-aliasing ramp SWM - Set write mask SRM - Set read mask SBL - Set blink Graphics Cursor SCC - Set cursor color SCP - Set cursor parameters RCP - Read cursor position DCA - Draw cursor ECU - Erase cursor Tablet/Mouse DTM - Define tablet mapping ETC - Enable tablet cursor STP - Set tablet parameters ETP - Enable tablet polling RTP - Read tablet position Communications SIF - Select interface for returned data SKS - Send keystroke SCR - Send carriage return SBR - Set baud rate STD - Set turnaround delay SCD - Start command DMA XCD - Exit command DMA Dir Vmem Access SUC - Set up counters for direct video memory acc SDA - Stop DVMA WRD - Write raster direct RRD - Read raster direct WDA - Write raster direct (AOI) RDA - Read raster direct (AOI) Imaging DAI - Define area of interest CAI - Bit-block copy ROT - Rotate memory planes in AOI WHS - Write horz scans RHS - Read horz scans WHC - Write horz scan (non-AOI) RHC - Read horz scan (non-AOI) WHR - Write horz runlength encoded RHR - Read horz runlength encoded WHU - Write horz runlength encoded (alt) Drawing Primitives AAV - Anti-alias vectors SLS - Set line style MOV - Move absolute MVR - Move relative WPX - Write pixel RPX - Read pixel WMP - Write multiple pixels DVA - Draw vector absolute DVR - Draw vector relative DMV - Draw multiple vectors WIP - Write incr plotter mode DCL - Draw circle DFC - Draw fat circle ELP - Draw ellipse DRA - Draw rectangle absolute DRR - Draw rectangle relative DFR - Draw filled rectangle FRR - Filled rectangle relative DFP - Draw filled polygon GFL - General overlay fill IFL - Interior fill BFL - Boundary fill OFL - Overlay fill DSP - Define stipple pattern SPF - Select stiplle fill pattern Keyboard DPK - Define pgm ftn key DSK - Define pgm ftn key (alt) SCS - Set control/status Misc SEN - Set command encoding format RST - Reset terminal ERS - Erase screen to background color ERD - Erase window to background color OPT - Set programmable options AED - Show software revision number SOP - Select parallel/serial aux port WRU - Return Colorware model/configuration Model 1280 Extensions - Enable VT100 emulation - Define window - Clip to window - Erase window - Enable overlay plane - Read/Wrt overlay plane - Set overlay color - Enable high speed drawing mode Glossary -------- Foreground Color The color used to draw with Background Color The default color used for screen erases AOI Area of Interest. Rectangular region used to define a rectangular section of the screen for copy or video DMA fill operations 1/3 chr mode Binary vs ASCII (human readable) encoding of the opcode for graphic command requests sent to the Colorware terminal. Graphics cursor Positioning indicator drawn on the display which can be used to point to a location on the screen Physical X,Y space Locations on the screen which correspond directly to the pixel locations within the display memory of the refresh buffer. Physical (0,0) is the pixel in the lower left corner of the screen. Physical (1279,1023) is the pixel in the upper right corner of the screen. Virtual X,Y space Screen coordinate mapping which results from translating X,Y coordinates to the boundaries of the currently defined window such that location (0,0) maps to the lower left corner of the currently defined window. Translated virtual X,Y coordinates currently correspond directly to physical X,Y coordinates; no scaling operations are performed when converting from virtual to physical X,Y space. Window A rectangular region with a 12 bit signed address range, which specifes where drawing operations will occur. Windows may be totaly inside, partially inside, or completely outside the 1280 * 1024 physical X,Y space. If clipping is enabled, drawing primitives are clipped to the edges of the currently defined window.