1280_Command_Summary

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.