va \- Benson-Varian interface
.B "controller va0 at uba0 csr 0164000 vector vaintr"
.B "disk vz0 at va0 drive 0"
(\fBNOTE: the configuration description, while counter-intuitive,
is actually as shown above\fP.)
The Benson-Varian printer/plotter in normally used with the programs
This description is designed for those who wish to drive the Benson-Varian
In print mode, the Benson-Varian uses a modified ASCII character set.
Most control characters print various non-ASCII graphics such as daggers,
sigmas, copyright symbols, etc.
Only LF and FF are used as format effectors. LF acts as a newline,
advancing to the beginning of the next line, and FF advances to the top of
In plot mode, the Benson-Varian prints one raster line at a time.
An entire raster line of bits (2112 bits = 264 bytes) is sent, and
then the Benson-Varian advances to the next raster line.
The Benson-Varian must be sent an even number of bytes.
If an odd number is sent, the last byte will be lost.
Nulls can be used in print mode to pad to an even number of bytes.
To use the Benson-Varian yourself,
you must realize that you cannot open the device,
if there is a daemon active.
You can see if there is an active daemon by doing a
and seeing if there are any files being printed.
To set the Benson-Varian into plot mode include the file
ioctl(fileno(va), VSETSTATE, plotmd);
\fBint\fR plotmd[] = { VPLOT, 0, 0 };
is the result of a call to
When you finish using the Benson-Varian in plot mode you should advance to
by sending it a FF after putting it back into print mode, i.e. by
\fBint\fR prtmd[] = { VPRINT, 0, 0 };
ioctl(fileno(va), VSETSTATE, prtmd);
write(fileno(va), "\ef\e0", 2);
If you use the standard I/O library with the Benson-Varian you
\fBchar\fR vpbuf[BUFSIZ];
otherwise the standard I/O library, thinking that the Benson-Varian
is a terminal (since it is a character special file) will not adequately buffer
the data you are sending to the Benson-Varian.
This will cause it to run
slowly and tend to grind the system to a halt.
The following error numbers are significant at the
time the device is opened.
The device is already in use.
The following message may be printed on the console.
\fBva%d: npr timeout\fR. The device was not able to get data from
the UNIBUS within the timeout period, most likely because some other
device was hogging the bus. (But see BUGS below).
The 1's (one's) and l's (lower-case el's) in the Benson-Varian's
standard character set look very similar; caution is advised.
The interface hardware is rumored to have problems which can
play havoc with the UNIBUS. We have intermittent minor problems on the
lives, but haven't ever been able to pin them down