.th VT IV 10/22/73
.sh NAME
vt \*- 11/20 (vt01) interface
.sh DESCRIPTION
The file
.it vt0
provides
the interface to a PDP 11/20 which
runs a VT01A-controlled Tektronix 611
storage display.
The inter-computer interface is
a pair of DR-11C word interfaces.
.s3
Although the display has essentially only two commands,
namely ``erase screen'' and ``display point'', the 11/20 program
will draw points, lines, and arcs, and print
text on the screen.
The 11/20 can also type information
on the attached 33 TTY.
.s3
This special file operates in two basic modes.
If the first byte written of the file
cannot be interpreted as one of the codes discussed below,
the rest of the transmitted
information is assumed to ASCII and
written on the screen.
The screen has 33 lines (1/2 a standard page).
The file simulates a 37 TTY: the control characters
NL, CR, BS, and TAB are interpreted correctly.
It also interprets the usual escape sequences
for forward and reverse half-line motion and for
full-line reverse.
Greek is not available yet.
Normally, when the screen is full (i.e. the 34th line is started)
the screen is erased before starting a new page.
To allow perusal of the displayed text, it is usual to
assert bit 0 of the console switches.
This causes the program to
pause before erasing until this bit is lowered.
.s3
If the first byte written is recognizable, the display runs in graphic
mode.
In this case bytes written on the file
are interpreted as display
commands.
Each command consists of a single byte usually followed
by parameter bytes.
Often the parameter bytes represent
points in the plotting area.
Each point coordinate consists of 2 bytes
interpreted as a 2's complement 16-bit number.
The plotting area itself measures (\(+-03777)\*X(\(+-03777)
(numbers in octal);
that is, 12 bits of precision.
Attempts to plot
points outside the screen limits are ignored.
.s3
The graphic commands follow.
.s3
.lp  +10 5
order (1); 1 parameter byte
.br
The parameter indicates a subcommand, possibly followed
by subparameter bytes, as follows:
.s3
.lp +15 5
erase (1)
.br
The screen is erased.
The program will wait until
bit 0 of the console switches is down.
.s3
.lp +15 5
label (3); several subparameter bytes
.fi
.br
The following bytes up to a null byte are printed
as ASCII text on the screen.
The origin of the text is the last previous point
plotted; or the upper left hand of the screen if there were none.
.s3
.lp +10 5
point (2); 4 parameter bytes
.br
The 4 parameter bytes are taken as a pair of coordinates
representing a point to be plotted.
.s3
.lp +10 5
line (3); 8 parameter bytes
.br
The parameter bytes are taken as 2 pairs of coordinates
representing the ends of a line segment which is plotted.
Only the portion lying within the screen is displayed.
.s3
.lp +10 5
frame (4); 1 parameter byte
.br
The parameter byte is taken as a number of sixtieths of a second;
an externally-available lead is asserted for that time.
Typically the lead is connected to
an automatic camera
which advances its film and opens the
shutter for the specified time.
.s3
.lp +10 5
circle (5); 6 parameter bytes
.br
The parameter bytes are taken as a coordinate pair representing
the origin, and a word representing the radius of a circle.
That portion of the circle which lies within the screen is plotted.
.s3
.lp +10 5
arc (6); 12 parameter bytes
.br
The first 4 parameter bytes are taken to be a coordinate-pair
representing the center of a circle.
The next 4 represent a coordinate-pair specifying a point
on this circle.
The last 4 should represent another point on the
circle.
An arc is drawn counter-clockwise from the first circle point
to the second.
If the two points are the same, the whole circle is drawn.
For the second point, only the smaller in magnitude
of its two coordinates is significant;
the other is used only to find the quadrant of the end of the arc.
In any event only points within the screen limits are
plotted.
.s3
.lp +10 5
dot-line (7); at least 6 parameter bytes
.br
The first 4 parameter bytes are taken
as a coordinate-pair representing the origin
of a dot-line.
The next byte is taken as a signed
x-increment.
The next byte is an unsigned word-count,
with `0' meaning `256'.
The indicated
number of words is picked up.
For each bit in each word a point is plotted
which is visible if the bit is `1', invisible
if not.
High-order bits are plotted first.
Each successive point (or non-point) is offset
rightward by the given x-increment.
.s3
.i0
Asserting bit 3 of the console switches
causes the display processor to throw away everything written on it.
This sometimes helps if the display seems to be hung up.
.sh FILES
/dev/vt0
.sh BUGS
