1: struct rx2device {
2: short rx2cs; /* command and status register */
3: short rx2db; /* multipurpose register: */
4: #define rx2ba rx2db /* bus address register */
5: #define rx2ta rx2db /* track address register */
6: #define rx2sa rx2db /* sector address register */
7: #define rx2wc rx2db /* word count register */
8: #define rx2es rx2db /* error and status register */
9: };
10:
11: /* bits in rx2cs */
12: #define RX2_ERR 0100000 /* error */
13: #define RX2_INIT 0040000 /* initialize */
14: /* bits 13-12 are the extension bits */
15: #define RX2_RX02 0004000 /* rx02 (read only) */
16: /* bit 10 is unused (bit 9 is also unused in the standard rx211) */
17: #define RX2_HD 0001000 /* DSD 480 head select */
18: #define RX2_DD 0000400 /* double density */
19: #define RX2_XREQ 0000200 /* transfer request */
20: #define RX2_IE 0000100 /* interrupt enable */
21: #define RX2_DONE 0000040 /* done */
22: #define RX2_UNIT 0000020 /* unit select */
23: /* bits 3-1 are the function code */
24: #define RX2_GO 0000001 /* go */
25:
26: /* function codes */
27: #define RX2_FILL 0000000 /* fill buffer */
28: #define RX2_EMPTY 0000002 /* empty */
29: #define RX2_WSECT 0000004 /* write sector */
30: #define RX2_RSECT 0000006 /* read sector */
31: #define RX2_SMD 0000010 /* set media density */
32: #define RX2_RDSTAT 0000012 /* read status */
33: #define RX2_WDDSECT 0000014 /* write deleted data sector */
34: #define RX2_RDEC 0000016 /* read error code */
35:
36: #define RX2_BITS \
37: "\10\20ERR\17INIT\14RX02\12HD\11DD\10XREQ\7IE\6DONE\5UNIT1\1GO"
38:
39: /* bits in rx2es */
40: /* bits 15-12 are unused in the standard rx211 */
41: #define RX2ES_IBMDD 0010000 /* DSD 480 IBM double density select */
42: #define RX2ES_NXM 0004000 /* nonexistent memory */
43: #define RX2ES_WCOVFL 0002000 /* word count overflow */
44: /* bit 9 is unused in the standard rx211 */
45: #define RX2ES_HD 0001000 /* DSD 480 head select */
46: #define RX2ES_UNIT 0000400 /* unit select */
47: #define RX2ES_RDY 0000200 /* ready */
48: #define RX2ES_DDATA 0000100 /* deleted data */
49: #define RX2ES_DD 0000040 /* double density */
50: #define RX2ES_DENSERR 0000020 /* density error */
51: #define RX2ES_ACLO 0000010 /* ac low */
52: #define RX2ES_INITDONE 0000004 /* initialization done */
53: /* bit 1 is unused in the standard rx211 */
54: #define RX2ES_S1RDY 0000002 /* DSD 480 side 1 ready */
55: #define RX2ES_CRC 0000001 /* crc error */
56: #define RX2ES_BITS \
57: "\10\15IBMDD\14NXM\13WCOVFL\12HD\11UNIT1\10RDY\7DDATA\
58: \6DDENS\5DENSERR\4ACLO\3INIT\2S1RDY\1CRC"
59:
60: /* bits in rx2es1 */
61: /* bits 15-8 contain the word count */
62: /* bits 7-0 contain the error code */
63: #define RX2ES1_D0NOHOME 0000010 /* drive 0 failed to see home on init */
64: #define RX2ES1_D1NOHOME 0000020 /* drive 1 failed to see home on init */
65: #define RX2ES1_XTRK 0000040 /* track number > 076 */
66: #define RX2ES1_WRAP 0000050 /* found home before desired track */
67: #define RX2ES1_HNF 0000070 /* header not found after 2 revs */
68: #define RX2ES1_NSEP 0000110 /* up controller found not SEP clock */
69: #define RX2ES1_NOPREAMB 0000120 /* preamble not found */
70: #define RX2ES1_NOID 0000130 /* preamble found;ID burst timeout */
71: #define RX2ES1_HNEQTRK 0000150 /* track reached doesn't match header */
72: #define RX2ES1_XIDAM 0000160 /* up made to many attempts for IDAM */
73: #define RX2ES1_NOAM 0000170 /* data AM timeout */
74: #define RX2ES1_CRC 0000200 /* crc error reading disk sector */
75: #define RX2ES1_OOPS 0000220 /* read/write electronics failed test */
76: #define RX2ES1_WCOVFL 0000230 /* word count overflow */
77: #define RX2ES1_DENSERR 0000240 /* density error */
78: #define RX2ES1_BADKEY 0000250 /* bad key word for Set Media Density */
79:
80: /* bits in rx2es4 */
81: /* bits 15-8 contain the track address for header track address errors */
82: #define RX2ES4_UNIT 0000200 /* unit select */
83: #define RX2ES4_D1DENS 0000100 /* drive 1 density */
84: #define RX2ES4_HEAD 0000040 /* head loaded */
85: #define RX2ES4_D0DENS 0000020 /* drive 0 density */
86: /* bits 3-1 are unused */
87: #define RX2ES4_DD 0000001 /* diskette is double density */
88: #define RX2ES4_BITS "\10\10DRIVE1\7D1HIDENS\6HEAD\5D0HIDENS\1DDENS"
89:
90: #define b_seccnt av_back
91: #define b_state b_active
Defined struct's
Defined macros
rx2ba
defined in line
4;
never used
rx2es
defined in line
8;
never used
rx2sa
defined in line
6;
never used
rx2ta
defined in line
5;
never used
rx2wc
defined in line
7;
never used