+#define VP_ERROR 0100000
+#define VP_DTCINTR 0040000
+#define VP_DMAACT 0020000
+#define VP_READY 0000200
+#define VP_IENABLE 0000100
+#define VP_TERMCOM 0000040
+#define VP_FFCOM 0000020
+#define VP_EOTCOM 0000010
+#define VP_CLRCOM 0000004
+#define VP_RESET 0000002
+#define VP_SPP 0000001
+
+struct vp_softc {
+ int sc_state;
+ int sc_count;
+ int sc_bufp;
+ struct buf *sc_bp;
+ int sc_ubinfo;
+} vp_softc[NVP];
+
+/* sc_state bits */
+#define VPSC_BUSY 0001000
+#define VPSC_MODE 0000700
+#define VPSC_SPP 0000400
+#define VPSC_PLOT 0000200
+#define VPSC_PRINT 0000100
+#define VPSC_CMNDS 0000076
+#define VPSC_OPEN 0000001
+
+struct uba_device *vpdinfo[NVP];
+
+#define VPUNIT(dev) (minor(dev))
+
+struct buf rvpbuf[NVP];
+
+int vpprobe(), vpattach();
+struct uba_device *vpdinfo[NVP];
+u_short vpstd[] = { 0777500, 0 };
+struct uba_driver vpdriver =
+ { vpprobe, 0, vpattach, 0, vpstd, "vp", vpdinfo };
+
+vpprobe(reg)
+ caddr_t reg;