xref: /original-bsd/sys/vax/mba/htreg.h (revision 0b685140)
1 /*	htreg.h	4.1	81/03/21	*/
2 
3 struct	htdevice
4 {
5 	int	htcs1;		/* control status register */
6 	int	htds;		/* drive status register */
7 	int	hter;		/* error register */
8 	int	htmr;		/* maintenance register */
9 	int	htas;		/* attention status register */
10 	int	htfc;		/* frame counter */
11 	int	htdt;		/* drive type register */
12 	int	htck;		/* nrzi check (crc) error character */
13 	int	htsn;		/* serial number register */
14 	int	httc;		/* tape controll register */
15 };
16 
17 /* htcs1 */
18 #define	HT_GO		000001		/* go bit */
19 #define	HT_SENSE	000000		/* no operations (sense) */
20 #define	HT_REWOFFL	000002		/* rewind offline */
21 #define	HT_REW		000006		/* rewind */
22 #define	HT_DCLR		000010		/* drive clear */
23 #define	HT_RIP		000020		/* read in preset */
24 #define	HT_ERASE	000024		/* erase */
25 #define	HT_WEOF		000026		/* write tape mark */
26 #define	HT_SFORW	000030		/* space forward */
27 #define	HT_SREV		000032		/* space reverse */
28 #define	HT_WCHFWD	000050		/* write check forward */
29 #define	HT_WCHREV	000056		/* write check reverse */
30 #define	HT_WCOM		000060		/* write forward */
31 #define	HT_RCOM		000070		/* read forward */
32 #define	HT_RREV		000076		/* read reverse */
33 
34 /* htds */
35 #define	HTDS_ATA	0100000		/* attention active */
36 #define	HTDS_ERR	0040000		/* composite error */
37 #define	HTDS_PIP	0020000		/* positioning in progress */
38 #define	HTDS_MOL	0010000		/* medium on line */
39 #define	HTDS_WRL	0004000		/* write lock */
40 #define	HTDS_EOT	0002000		/* end of tape */
41 /* bit 9 is unused */
42 #define	HTDS_DPR	0000400		/* drive present (always 1) */
43 #define	HTDS_DRY	0000200		/* drive ready */
44 #define	HTDS_SSC	0000100		/* slave status change */
45 #define	HTDS_PES	0000040		/* phase-encoded status */
46 #define	HTDS_SDWN	0000020		/* settle down */
47 #define	HTDS_IDB	0000010		/* identification burst */
48 #define	HTDS_TM		0000004		/* tape mark */
49 #define	HTDS_BOT	0000002		/* beginning of tape */
50 #define	HTDS_SLA	0000001		/* slave attention */
51 
52 #define	HTDS_BITS \
53 "\10\20ATA\17ERR\16PIP\15MOL\14WRL\13EOT\11DPR\10DRY\
54 \7SSC\6PES\5SDWN\4IDB\3TM\2BOT\1SLA"
55 
56 /* hter */
57 #define	HTER_CORCRC	0100000		/* correctible data or ecc */
58 #define	HTER_UNS	0040000		/* unsafe */
59 #define	HTER_OPI	0020000		/* operation incomplete */
60 #define	HTER_DTE	0010000		/* drive timing error */
61 #define	HTER_NEF	0004000		/* non-executable function */
62 #define	HTER_CSITM	0002000		/* correctable skew/illegal tape mark */
63 #define	HTER_FCE	0001000		/* frame count error */
64 #define	HTER_NSG	0000400		/* non-standard gap */
65 #define	HTER_PEFLRC	0000200		/* format error or lrc error */
66 #define	HTER_INCVPE	0000100		/* incorrectable data error or vertical
67 					   parity error */
68 #define	HTER_DPAR	0000040		/* data parity error */
69 #define	HTER_FMT	0000020		/* format error */
70 #define	HTER_CPAR	0000010		/* control bus parity error */
71 #define	HTER_RMR	0000004		/* register modification refused */
72 #define	HTER_ILR	0000002		/* illegal register */
73 #define	HTER_ILF	0000001		/* illegal function */
74 
75 #define	HTER_BITS \
76 "\10\20CORCRC\17UNS\16OPI\15DTE\14NEF\13CSITM\12FCE\11NSG\10PEFLRC\
77 \7INCVPE\6DPAR\5FMT\4CPAR\3RMR\2ILR\1ILF"
78 #define	HTER_HARD \
79 	(HTER_UNS|HTER_OPI|HTER_NEF|HTER_DPAR|HTER_FMT|HTER_CPAR| \
80 	HTER_RMR|HTER_ILR|HTER_ILF)
81 
82 /* htdt */
83 #define	HTDT_NSA	0100000		/* not sector addressed; always 1 */
84 #define	HTDT_TAP	0040000		/* tape; always 1 */
85 #define	HTDT_MOH	0020000		/* moving head; always 0 */
86 #define	HTDT_7CH	0010000		/* 7 channel; always 0 */
87 #define	HTDT_DRQ	0004000		/* drive requested; always 0 */
88 #define	HTDT_SPR	0002000		/* slave present */
89 /* bit 9 is spare */
90 /* bits 8-0 are formatter/transport type */
91 
92 /* httc */
93 #define	HTTC_ACCL	0100000		/* transport is not reading/writing */
94 #define	HTTC_FCS	0040000		/* frame count status */
95 #define	HTTC_SAC	0020000		/* slave address change */
96 #define	HTTC_EAODTE	0010000		/* enable abort on data xfer errors */
97 /* bits 8-10 are density select */
98 #define	HTTC_800BPI	0001400		/* in bits 8-10, dens=1600 */
99 #define	HTTC_1600BPI	0002000		/* in bits 8-10, dens=800 */
100 /* bits 4-7 are format select */
101 #define	HTTC_PDP11	0000300		/* in bits 4-7, pdp11 normal format */
102 #define	HTTC_EVEN	0000010		/* select even parity */
103 /* bits 0 - 2 are slave select */
104 
105 #define	b_repcnt  b_bcount
106 #define	b_command b_resid
107