ReGIS
Encyclopedia
ReGIS, short for "Remote Graphic Instruction Set", was a vector graphics markup language developed by Digital Equipment Corporation
(DEC) for later models of their famous VT series
of computer terminal
s. ReGIS supported rudimentary vector graphics
consisting of lines, circular arcs, and text. Initially available for the VK100 "GIGI" and VT125 terminals, ReGIS was also implemented in the "40" versions of follow-on terminal designs, the VT240
/241, VT330 (monochrome) and VT340 (color).
All drawing was based on an active pen location. Any command that moved the pen left it there for the next operation, similar to the operation of a mechanical plotter
. The coordinate system was 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 ("GIGI") and VT125, the actual device resolution was only 240 pixels, so the Y coordinates were "folded" so odd and even coordinates were the same location on the screen, but the VT240 and VT241 provided the full 480 pixel vertical resolution. The coordinate system could also be set by the user.
Coordinates could be pushed or pulled from a stack, and every command allowed the stack to be used as a parameter, the "b" parameter pushed the current coordinates on the stack, "e" popped it back off again. Coordinates could 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 were 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 used the various coordinate modes in different ways, and some had additional parameters that were enclosed in parentheses. Commands could be followed by one or more parameters, allowing continued drawing from a single command. The interpreter was not case sensitive.
Some ReGIS terminals supported color, using a series of registers. These could be set with the s command using a variety of color input styles.
Finally, ReGIS allowed commands to be stored into a "macrograph" and then recalled using the
P0p
S(E)(C1)
P[100,440]
V(S),[+100,+0],[+0,-10],[+0,+10],(E)
P[500,300],F(C[+100])
\
This code enters ReGIS mode and uses the S command to erase the screen with
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...
(DEC) for later models of their famous VT series
VT100
The VT100 is a video terminal that was made by Digital Equipment Corporation . Its detailed attributes became the de facto standard for terminal emulators.-History:...
of computer terminal
Computer terminal
A computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system...
s. ReGIS supported rudimentary vector graphics
Vector graphics
Vector graphics is the use of geometrical primitives such as points, lines, curves, and shapes or polygon, which are all based on mathematical expressions, to represent images in computer graphics...
consisting of lines, circular arcs, and text. Initially available for the VK100 "GIGI" and VT125 terminals, ReGIS was also implemented in the "40" versions of follow-on terminal designs, the VT240
VT220
The VT220 was a terminal produced by Digital Equipment Corporation from 1983 to 1987.-Hardware:The VT220 improved on the earlier VT100 series of terminals with a redesigned keyboard, much smaller physical packaging, and a much faster microprocessor...
/241, VT330 (monochrome) and VT340 (color).
Description
ReGIS consisted of five primary drawing commands and a selection of status and device control commands. ReGIS mode was entered by specifying the escape code sequenceP0p
, and exited with \
. The digit in the first sequence was optional and specified a mode, 0 was the default and picked up drawing where it left off, 1 reset the system to a blank slate, and 2 and 3 were the same as 0 and 1, but left a single line of text at the bottom of the screen for entering commands. The sequence P
is the generic "Device Control String" (DCS) used in the VT series of terminals, and is also used for a variety of other commands.All drawing was based on an active pen location. Any command that moved the pen left it there for the next operation, similar to the operation of a mechanical plotter
Plotter
A plotter is a computer printing device for printing vector graphics. In the past, plotters were widely used in applications such as computer-aided design, though they have generally been replaced with wide-format conventional printers...
. The coordinate system was 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 ("GIGI") and VT125, the actual device resolution was only 240 pixels, so the Y coordinates were "folded" so odd and even coordinates were the same location on the screen, but the VT240 and VT241 provided the full 480 pixel vertical resolution. The coordinate system could also be set by the user.
Coordinates could be pushed or pulled from a stack, and every command allowed the stack to be used as a parameter, the "b" parameter pushed the current coordinates on the stack, "e" popped it back off again. Coordinates could 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 were 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 used the various coordinate modes in different ways, and some had additional parameters that were enclosed in parentheses. Commands could be followed by one or more parameters, allowing continued drawing from a single command. The interpreter was not case sensitive.
Some ReGIS terminals supported color, using a series of registers. These could 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 HSV system. The W command likewise set a wide variety of different styles, mostly for masking, fills and brushes.Finally, ReGIS allowed commands to be stored into a "macrograph" and then recalled using the
@
operator. Up to 10,000 characters of code could be stored in the macros, each named with a single letter.Sample
S(E)(C1)
P[100,440]
V(S),[+100,+0],[+0,-10],[+0,+10],(E)
P[500,300],F(C[+100])
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(S),[+100,+0],[+0,-10],[+0,+10],(E)
draws a series of lines, first pushing the current pen location onto the stack with (S)
, 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.