|
|
1.1 ! root 1: .TH VP 4 2/21/80 4 ! 2: .UC 4 ! 3: .SH NAME ! 4: vp \- Versatec interface ! 5: .SH SYNOPSIS ! 6: .B #include <sys/vcmd.h> ! 7: .SH DESCRIPTION ! 8: The Versatec printer/plotter in normally used with the programs ! 9: .IR vpr (1), ! 10: .IR vprint (1) ! 11: or ! 12: .IR vtroff (1). ! 13: This description is designed for those who wish to drive the Versatec directly. ! 14: .PP ! 15: The Versatec at Berkeley is 36\*(rq wide, and has 440 characters per line ! 16: and 7040 dots per line in plot mode (this is actually slightly less than ! 17: 36\*(rq of dots.) ! 18: The paper used is continuous roll paper, and comes in 500' rolls. ! 19: .PP ! 20: To use the Versatec yourself, you must realize that you cannot open the ! 21: device, ! 22: .I /dev/vp0 ! 23: if there is a daemon active. ! 24: You can see if there is a daemon active by doing a ! 25: .IR ps (1), ! 26: or by looking in the directory ! 27: .I /usr/spool/vpd. ! 28: If there is a file ! 29: .I lock ! 30: there, then there is probably a daemon ! 31: .IR /usr/lib/vpd ! 32: running. ! 33: If not, you should remove the ! 34: .I lock. ! 35: .PP ! 36: In any case, when your program tries to open the device ! 37: .I /dev/vp0 ! 38: you may get one of two errors. ! 39: The first of these ! 40: ENXIO ! 41: indicates that the Versatec is already in use. ! 42: Your program can then ! 43: .IR sleep (2) ! 44: and try again in a while, or give up. ! 45: The second is ! 46: EIO ! 47: and indicates that the Versatec is offline. ! 48: .PP ! 49: To set the Versatec into plot mode you can use the following ! 50: .IR ioctl (2) ! 51: call ! 52: .IP ! 53: ioctl(fileno(vp), VSETSTATE, plotmd); ! 54: .PP ! 55: where ! 56: .B plotmd ! 57: is defined to be ! 58: .IP ! 59: \fBint\fR plotmd[] = { VPLOT, 0, 0 }; ! 60: .PP ! 61: and ! 62: .I vp ! 63: is the result of a call to ! 64: .I fopen ! 65: on stdio. ! 66: When you finish using the Versatec in plot mode you should eject paper ! 67: by sending it a EOT after putting it back into print mode, i.e. by ! 68: .sp .1i ! 69: 'nf ! 70: \fBint\fR prtmd[] = { VPRINT, 0, 0 }; ! 71: \&... ! 72: fflush(vp); ! 73: ioctl(fileno(vp), VSETSTATE, prtmd); ! 74: write(fileno(vp), "\e04", 1); ! 75: .fi ! 76: .PP ! 77: .IR N.B. : ! 78: If you use the standard I/O library with the Versatec you ! 79: .B must ! 80: do ! 81: .IP ! 82: setbuf(vp, vpbuf); ! 83: .PP ! 84: where ! 85: .I vpbuf ! 86: is declared ! 87: .IP ! 88: \fBchar\fR vpbuf[BUFSIZ]; ! 89: .PP ! 90: otherwise the standard I/O library, thinking that the Versatec ! 91: is a terminal (since it is a character special file) will not adequately buffer ! 92: the data you are sending to the Versatec. ! 93: This will cause it to run ! 94: .B extremely ! 95: slowly and tends to grind the system to a halt. ! 96: .SH FILES ! 97: /dev/vp0 ! 98: .SH SEE ALSO ! 99: vfont(5), vpr(1), vtroff(1), va(4) ! 100: .SH BUGS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.