Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vp(4) — UNIX 3BSD

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

vcat(1)

vfont(5)

vpr(1)

vprint(1)

vstat(1)

vtroff(1)

VP(4)  —  Unix Programmer’s Manual

NAME

vp − Versatec interface

SYNOPSIS

/dev/vp0

DESCRIPTION

The Versatec printer/plotter in normally used with the programs vprint(1) or vtroff(1). This description is designed for those who wish to drive the Versatec directly.

The Versatec at Berkeley is 36” wide, and has 440 characters per line and 7040 dot per line in plot mode (this is actually slightly less than 36” of dots.)  The paper used is continuous roll paper, and comes in 500’ rolls. 

To use the Versatec yourself, you must realize that you cannot open the device, /dev/vp0 if there is a daemon active.  You can see if there is a daemon active by doing a ps(1), or by looking in the directory /usr/spool/vpd.  If there is a file lock there, then there is probably a daemon vpd(1) running. If not, you should remove the lock. 

In any case, when your program tries to open the device /dev/vp0 you may get one of two errors.  The first of these ENXIO indicates that the Versatec is already in use.  Your program can then sleep(2) and try again in a while, or give up. The second is EIO and indicates that the Versatec is offline.

To set the Versatec into plot mode you can use the following ioctl(2) call

ioctl(fileno(vp), SETSTATE, plotmd);

where SETSTATE must be defined to be “(’v’<<8) | 1” and plotmd is defined by

int plotmd[] = { 0200, 0, 0 };

and vp is the result of a call to fopen on stdio.  When you finish using the Versatec in plot mode you should eject paper by sending it a EOT after putting it back into print mode, i.e. by

int prtmd[] = { 0100, 0, 0 };
...
fflush(vp); ioctl(fileno(vp), SETSTATE, prtmd); write(fileno(vp), "\04", 1);

Very important point: If you use the standard I/O library with the Versatec you must do

setbuf(vp, vpbuf);

where vpbuf is declared

char vpbuf[BUFSIZ];

otherwise the standard I/O library, thinking that the Versatec is a terminal (since it is a character special file) will not buffer the data you are sending to the Versatec.  This will cause it to run extremely slowly and tends to grind the system to a halt. 

FILES

/dev/vp0

SEE ALSO

vcat(1), vfont(5), vpr(1), vprint(1), vstat(1), vtroff(1)

BUGS

3rd Berkeley Distribution  —  2/24/79

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026