1 #ifndef _LINUX_FDREG_H
2 #define _LINUX_FDREG_H
3
4
5
6
7
8
9 #ifdef FDPATCHES
10
11 #define FD_STATUS (4 + fdc_state[fdc].address )
12 #define FD_DATA (5 + fdc_state[fdc].address )
13
14
15 #define FD_DOR (2 + fdc_state[fdc].address )
16
17
18 #define FD_DIR (7 + fdc_state[fdc].address )
19
20
21 #define FD_DCR (7 + fdc_state[fdc].address )
22
23 #else
24
25 #define FD_STATUS 0x3f4
26 #define FD_DATA 0x3f5
27 #define FD_DOR 0x3f2
28 #define FD_DIR 0x3f7
29 #define FD_DCR 0x3f7
30
31 #endif
32
33
34 #define STATUS_BUSYMASK 0x0F
35 #define STATUS_BUSY 0x10
36 #define STATUS_DMA 0x20
37 #define STATUS_DIR 0x40
38 #define STATUS_READY 0x80
39
40
41 #define ST0_DS 0x03
42 #define ST0_HA 0x04
43 #define ST0_NR 0x08
44 #define ST0_ECE 0x10
45 #define ST0_SE 0x20
46 #define ST0_INTR 0xC0
47
48
49 #define ST1_MAM 0x01
50 #define ST1_WP 0x02
51 #define ST1_ND 0x04
52 #define ST1_OR 0x10
53 #define ST1_CRC 0x20
54 #define ST1_EOC 0x80
55
56
57 #define ST2_MAM 0x01
58 #define ST2_BC 0x02
59 #define ST2_SNS 0x04
60 #define ST2_SEH 0x08
61 #define ST2_WC 0x10
62 #define ST2_CRC 0x20
63 #define ST2_CM 0x40
64
65
66 #define ST3_HA 0x04
67 #define ST3_DS 0x08
68 #define ST3_TZ 0x10
69 #define ST3_RY 0x20
70 #define ST3_WP 0x40
71 #define ST3_FT 0x80
72
73
74 #define FD_RECALIBRATE 0x07
75 #define FD_SEEK 0x0F
76 #define FD_READ 0xE6
77 #define FD_WRITE 0xC5
78 #define FD_SENSEI 0x08
79 #define FD_SPECIFY 0x03
80 #define FD_FORMAT 0x4D
81 #define FD_VERSION 0x10
82 #define FD_CONFIGURE 0x13
83 #define FD_PERPENDICULAR 0x12
84 #define FD_GETSTATUS 0x04
85 #define FD_DUMPREGS 0x0E
86 #define FD_READID 0xEA
87 #define FD_UNLOCK 0x14
88 #define FD_LOCK 0x94
89
90
91 #define DMA_READ 0x46
92 #define DMA_WRITE 0x4A
93
94
95 #define FDC_NONE 0x00
96 #define FDC_UNKNOWN 0x10
97 #define FDC_8272A 0x20
98 #define FDC_765ED 0x30
99 #define FDC_82072 0x40
100 #define FDC_82077_ORIG 0x50
101 #define FDC_82077 0x52
102
103 #define FD_RESET_DELAY 20
104 #endif