summaryrefslogtreecommitdiff
path: root/static/unix-v10/man4/vp.4
diff options
context:
space:
mode:
Diffstat (limited to 'static/unix-v10/man4/vp.4')
-rw-r--r--static/unix-v10/man4/vp.4100
1 files changed, 100 insertions, 0 deletions
diff --git a/static/unix-v10/man4/vp.4 b/static/unix-v10/man4/vp.4
new file mode 100644
index 00000000..f99cd393
--- /dev/null
+++ b/static/unix-v10/man4/vp.4
@@ -0,0 +1,100 @@
+.TH VP 4 2/21/80 4
+.UC 4
+.SH NAME
+vp \- Versatec interface
+.SH SYNOPSIS
+.B #include <sys/vcmd.h>
+.SH DESCRIPTION
+The Versatec printer/plotter in normally used with the programs
+.IR vpr (1),
+.IR vprint (1)
+or
+.IR vtroff (1).
+This description is designed for those who wish to drive the Versatec directly.
+.PP
+The Versatec at Berkeley is 36\*(rq wide, and has 440 characters per line
+and 7040 dots per line in plot mode (this is actually slightly less than
+36\*(rq of dots.)
+The paper used is continuous roll paper, and comes in 500' rolls.
+.PP
+To use the Versatec yourself, you must realize that you cannot open the
+device,
+.I /dev/vp0
+if there is a daemon active.
+You can see if there is a daemon active by doing a
+.IR ps (1),
+or by looking in the directory
+.I /usr/spool/vpd.
+If there is a file
+.I lock
+there, then there is probably a daemon
+.IR /usr/lib/vpd
+running.
+If not, you should remove the
+.I lock.
+.PP
+In any case, when your program tries to open the device
+.I /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
+.IR sleep (2)
+and try again in a while, or give up.
+The second is
+EIO
+and indicates that the Versatec is offline.
+.PP
+To set the Versatec into plot mode you can use the following
+.IR ioctl (2)
+call
+.IP
+ioctl(fileno(vp), VSETSTATE, plotmd);
+.PP
+where
+.B plotmd
+is defined to be
+.IP
+\fBint\fR plotmd[] = { VPLOT, 0, 0 };
+.PP
+and
+.I vp
+is the result of a call to
+.I 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
+.sp .1i
+'nf
+\fBint\fR prtmd[] = { VPRINT, 0, 0 };
+\&...
+fflush(vp);
+ioctl(fileno(vp), VSETSTATE, prtmd);
+write(fileno(vp), "\e04", 1);
+.fi
+.PP
+.IR N.B. :
+If you use the standard I/O library with the Versatec you
+.B must
+do
+.IP
+setbuf(vp, vpbuf);
+.PP
+where
+.I vpbuf
+is declared
+.IP
+\fBchar\fR vpbuf[BUFSIZ];
+.PP
+otherwise the standard I/O library, thinking that the Versatec
+is a terminal (since it is a character special file) will not adequately buffer
+the data you are sending to the Versatec.
+This will cause it to run
+.B extremely
+slowly and tends to grind the system to a halt.
+.SH FILES
+/dev/vp0
+.SH SEE ALSO
+vfont(5), vpr(1), vtroff(1), va(4)
+.SH BUGS