ReGIS
ReGIS, short for Remote Graphic Instruction Set, is a
History
ReGIS was first introduced on the
ReGIS replaced an earlier system known as
Description
ReGIS consists of five primary drawing commands and a selection of status and device control commands. ReGIS mode is entered by specifying the
All drawing is based on an active pen location. Any command that moved the pen leaves it there for the next operation, similar to the operation of a mechanical plotter. The coordinate system is 0 to 799 in the X axis, and 0 to 479 in Y, with 0,0 in the upper left. In early implementations such as the VK100 and VT125, the actual device resolution is 240 pixels, so the Y coordinates are "folded" so odd and even coordinates are the same location on the screen. Later models, starting with the VT240 and VT241, provide the full 480 pixel vertical resolution. The coordinate system can also be set by the user.
Coordinates can be pushed or pulled from a stack, and every command allows the stack to be used as a parameter, the B
parameter push the current coordinates on the stack, E
pops it back off again. Coordinates can be specified in absolute or relative terms;
[200,100] is an absolute position at x=200, y=100 [+200,-100] is a relative position at x=current X+200, y=current Y-100 [200] is absolute x=200, y=unchanged (same as [200,+0]) [,-100] is relative, x=unchanged, y=current Y-100
There are four main drawing commands and three control commands;
P "Position", move the pen V "Vector", draw a line C "Curve", draw a circle (C) or arc (A) F "Fill", draws a filled polygon T "Text", output the following string of text S "Screen", a catch-all command for setting a wide variety of modes R "Report", outputs current status W "Write", sets the pen parameters L "Load", loads an alternate character set @ "Macrograph", see below
Each of these commands uses the various coordinate modes in different ways, and some have additional parameters that were enclosed in parentheses. Commands can be followed by one or more parameters, allowing continued drawing from a single command. The interpreter is not case sensitive.
Some ReGIS terminals support color, using a series of registers. These can be set with the S
command using a variety of color input styles. s(m3(r100g0b0))
sets color register ("map") 3 to "r"ed using the RGB color system, while s(m3(h120l50s100))
does the same using the HLS system. The W
command likewise sets a wide variety of different styles, mostly for masking, fills and brushes.
Finally, ReGIS allows commands to be stored into a macrograph and then recalled using the @
operator. Up to 10,000 characters of code can be stored in the macros, each named with a single letter. The advantage is that the series of operations in the macro can be invoked by sending only two characters over the serial port, as opposed to the entire sequence of commands.
Sample
<ESC>P0p S(E)(C1) P[100,440] V(B),[+100,+0],[+0,-10],[-100,+0],(E) P[500,300],F(C[+100]) <ESC>\
This code enters ReGIS mode and uses the S
command to erase the screen with (E)
and then turns on the visible cursor with (C1)
. P[100,440]
moves the pen to 100,440 absolute. V(B),[+100,+0],[+0,-10],[-100,+0],(E)
draws a series of lines, first pushing the current pen location onto the stack with (B)
, then drawing three lines using relative coordinates, and then using (E)
to pop the previously saved location off the stack and draw to it. The result is a rectangle 100 by 10 pixels in size.
P[500,300],F(C[+100])
then moves to a new location, and uses the "F"ill command to wrap a "C"ircle. The fill command could wrap any number of commands within its parentheses, allowing it to fill complex shapes. It also allowed the inclusion of a "temporary write" that allowed the programmer to set the fill style within the fill, and abandon it as soon as it ended.
See also
References
- "VT330/VT340 Programmer Reference Manual, Volume 2: Graphics Programming", Digital, EK-VT3XX-GP-002, 2nd Edition, May 1988
- "DEC ReGIS Graphics News", DEC Professional, August 1990, pg. 22