va(4) Unsupported va(4)Nameva - Benson-Varian interface
Syntax
controller va0 at uba0 csr 0164000 vector vaintr
disk vz0 at va0 drive 0
Description
The configuration description, while counter-intuitive, is actually as
shown above.
The Benson-Varian printer/plotter in normally used with the programs or
This description is designed for those who wish to drive the Benson-
Varian directly.
In print mode, the Benson-Varian uses a modified ASCII character set.
Most control characters print various non-ASCII graphics such as dag‐
gers, sigmas, copyright symbols, etc. Only LF and FF are used as for‐
mat effectors. LF acts as a newline, advancing to the beginning of the
next line, and FF advances to the top of the next page.
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.
Note: 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, /dev/va0 if there is a daemon active. You can see if
there is an active daemon by doing a lpq(1) and seeing if there are any
files being printed.
To set the Benson-Varian into plot mode include the file <sys/vcmd.h>
and use the following ioctl(2) call
ioctl(fileno(va), VSETSTATE, plotmd);
where plotmd is defined to be
int plotmd[] = { VPLOT, 0, 0 };
and va is the result of a call to fopen on stdio. When you finish
using the Benson-Varian in plot mode you should advance to a new page
by sending it a FF after putting it back into print mode, i.e. by
int prtmd[] = { VPRINT, 0, 0 };
...
fflush(va);
ioctl(fileno(va), VSETSTATE, prtmd);
write(fileno(va), "\f\0", 2);
N.B.: If you use the standard I/O library with the Benson-Varian you
must do
setbuf(vp, vpbuf);
where vpbuf is declared
char 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 extremely slowly and tend to grind the system to a halt.
Diagnostics
The following error numbers are significant at the time the device is
opened.
[ENXIO] The device is already in use.
[EIO] The device is offline.
The following message may be printed on the console.
va%d: npr timeout.
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.
FilesSee Alsolpr(1), vtroff(1), vp(4), vfont(5), lpd(8)
VAX va(4)