]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/INC/IOCTL.INC

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / INC / IOCTL.INC
1
2 %OUT IOCTL.INC...
3 ; THESE ARE ALL THE IMPORTANT STRUCTURES AND EQUATES FOR IOCTL
4 ;==============================================================================
5 ;REVISION HISTORY:
6 ;AN000 - New for DOS Version 4.00 - J.K.
7 ;AC000 - Changed for DOS Version 4.00 - J.K.
8 ;AN00x - PTM number for DOS Version 4.00 - J.K.
9 ;==============================================================================
10 ;AN001; D241 Provide support of Multi-track Format/Verify 9/23/87 J.K.
11 ;AN002; P1535 Unformatted hard file problem 10/15/87 J.K.
12 ;AN003; D490 IOCTL subfunction 63h,43h,64h,44h conflicts with OS2 2/26/88 J.K.
13 ;==============================================================================
14
15 ;*** J.K.
16 ;General Guide -
17 ;Category Code:
18 ; 0... .... DOS Defined
19 ; 1... .... User defined
20 ; .xxx xxxx Code
21
22 ;Function Code:
23 ; 0... .... Return error if unsupported
24 ; 1... .... Ignore if unsupported
25 ; .0.. .... Intercepted by DOS
26 ; .1.. .... Passed to driver
27 ; ..0. .... Sends data/commands to device
28 ; ..1. .... Quries data/info from device
29 ; ...x .... Subfunction
30 ;
31 ; Note that "Sends/queries" data bit is intended only to regularize the
32 ; function set. It plays no critical role; some functions may contain both
33 ; command and query elements. The convention is that such commands are
34 ; defined as "sends data".
35
36 ;*****************************;*
37 ; BLOCK DRIVERS ;*
38 ;*****************************;*
39
40 ; IOCTL SUB-FUNCTIONS
41 IOCTL_GET_DEVICE_INFO EQU 0
42 IOCTL_SET_DEVICE_INFO EQU 1
43 IOCTL_READ_HANDLE EQU 2
44 IOCTL_WRITE_HANDLE EQU 3
45 IOCTL_READ_DRIVE EQU 4
46 IOCTL_WRITE_DRIVE EQU 5
47 IOCTL_GET_INPUT_STATUS EQU 6
48 IOCTL_GET_OUTPUT_STATUS EQU 7
49 IOCTL_CHANGEABLE? EQU 8
50 IOCTL_DeviceLocOrRem? EQU 9
51 IOCTL_HandleLocOrRem? EQU 0Ah ;10
52 IOCTL_SHARING_RETRY EQU 0Bh ;11
53 GENERIC_IOCTL_HANDLE EQU 0Ch ;12
54 GENERIC_IOCTL EQU 0Dh ;13
55
56 ; GENERIC IOCTL CATEGORY CODES
57 IOC_OTHER EQU 0 ; Other device control J.K. 4/29/86
58 IOC_SE EQU 1 ; SERIAL DEVICE CONTROL
59 IOC_TC EQU 2 ; TERMINAL CONTROL
60 IOC_SC EQU 3 ; SCREEN CONTROL
61 IOC_KC EQU 4 ; KEYBOARD CONTROL
62 IOC_PC EQU 5 ; PRINTER CONTROL
63 IOC_DC EQU 8 ; DISK CONTROL (SAME AS RAWIO)
64
65 ; GENERIC IOCTL SUB-FUNCTIONS
66 RAWIO EQU 8
67
68 ; RAWIO SUB-FUNCTIONS
69 GET_DEVICE_PARAMETERS EQU 60H
70 SET_DEVICE_PARAMETERS EQU 40H
71 READ_TRACK EQU 61H
72 WRITE_TRACK EQU 41H
73 VERIFY_TRACK EQU 62H
74 FORMAT_TRACK EQU 42H
75 GET_MEDIA_ID EQU 66h ;AN000;AN003;changed from 63h
76 SET_MEDIA_ID EQU 46h ;AN000;AN003;changed from 43h
77 GET_ACCESS_FLAG EQU 67h ;AN002;AN003;Unpublished function.Changed from 64h
78 SET_ACCESS_FLAG EQU 47h ;AN002;AN003;Unpublished function.Changed from 44h
79
80 ; SPECIAL FUNCTION FOR GET DEVICE PARAMETERS
81 BUILD_DEVICE_BPB EQU 000000001B
82
83 ; SPECIAL FUNCTIONS FOR SET DEVICE PARAMETERS
84 INSTALL_FAKE_BPB EQU 000000001B
85 ONLY_SET_TRACKLAYOUT EQU 000000010B
86 TRACKLAYOUT_IS_GOOD EQU 000000100B
87
88 ; SPECIAL FUNCTION FOR FORMAT TRACK
89 STATUS_FOR_FORMAT EQU 000000001B
90 DO_FAST_FORMAT equ 000000010B ;AN001;
91 ; CODES RETURNED FROM FORMAT STATUS CALL
92 FORMAT_NO_ROM_SUPPORT EQU 000000001B
93 FORMAT_COMB_NOT_SUPPORTED EQU 000000010B
94
95 ; DEVICETYPE VALUES
96 MAX_SECTORS_IN_TRACK EQU 63 ; MAXIMUM SECTORS ON A DISK.(Was 40 in DOS 3.2)
97 DEV_5INCH EQU 0
98 DEV_5INCH96TPI EQU 1
99 DEV_3INCH720KB EQU 2
100 DEV_8INCHSS EQU 3
101 DEV_8INCHDS EQU 4
102 DEV_HARDDISK EQU 5
103 DEV_OTHER EQU 7
104
105 MAX_DEV_TYPE EQU 7 ; MAXIMUM DEVICE TYPE THAT WE
106 ; CURRENTLY SUPPORT.
107
108 ;J.K. Bug in MASM 3. A_BPB will be defined in PASS1 and, in PASS2 the
109 ;compiler does not include BPB.INC and it will be treated as undefined.
110 IF1
111 BPBINPASS1 = 0
112 IFNDEF A_BPB
113 INCLUDE BPB.INC
114 BPBINPASS1 = 1
115 ENDIF
116 ELSE
117 IF BPBINPASS1
118 INCLUDE BPB.INC
119 ENDIF
120 ENDIF
121
122 A_SECTORTABLE STRUC
123 ST_SECTORNUMBER DW ?
124 ST_SECTORSIZE DW ?
125 A_SECTORTABLE ENDS
126
127 A_DEVICEPARAMETERS STRUC
128 DP_SPECIALFUNCTIONS DB ?
129 DP_DEVICETYPE DB ?
130 DP_DEVICEATTRIBUTES DW ?
131 DP_CYLINDERS DW ?
132 DP_MEDIATYPE DB ?
133 DP_BPB DB SIZE A_BPB DUP (?)
134 DP_TRACKTABLEENTRIES DW ?
135 DP_SECTORTABLE DB MAX_SECTORS_IN_TRACK * SIZE A_SECTORTABLE DUP (?)
136 A_DEVICEPARAMETERS ENDS
137
138 A_TRACKREADWRITEPACKET STRUC
139 TRWP_SPECIALFUNCTIONS DB ?
140 TRWP_HEAD DW ?
141 TRWP_CYLINDER DW ?
142 TRWP_FIRSTSECTOR DW ?
143 TRWP_SECTORSTOREADWRITE DW ?
144 TRWP_TRANSFERADDRESS DD ?
145 A_TRACKREADWRITEPACKET ENDS
146
147 ;AN001; - FP_TRACKCOUNT is only meaningful when FP_SPECIALFUNCTIONS bit 1 = 1.
148 A_FORMATPACKET STRUC
149 FP_SPECIALFUNCTIONS DB ?
150 FP_HEAD DW ?
151 FP_CYLINDER DW ?
152 FP_TRACKCOUNT DW 1
153 A_FORMATPACKET ENDS
154
155 A_VERIFYPACKET STRUC
156 VP_SPECIALFUNCTIONS DB ?
157 VP_HEAD DW ?
158 VP_CYLINDER DW ?
159 A_VERIFYPACKET ENDS
160
161 A_MEDIA_ID_INFO STRUC
162 MI_LEVEL DW 0 ;J.K. 87 Info. level
163 MI_SERIAL DD ? ;J.K. 87 Serial #
164 MI_LABEL DB 11 DUP (' ') ;J.K. 87 volume label
165 MI_SYSTEM DB 8 DUP (' ') ;J.K. 87 File system type
166 A_MEDIA_ID_INFO ENDS
167
168 A_DISKACCESS_CONTROL STRUC ;AN002; Unpublished function. Only for Hard file.
169 DAC_SPECIALFUNCTIONS DB 0 ;AN002; Always 0
170 DAC_ACCESS_FLAG DB 0 ;AN002; Non Zero - allow disk I/O to unformatted hard file
171 A_DISKACCESS_CONTROL ENDS ;AN002; 0 - Disallow disk I/O to unformatted hard file
172
173 ;********************************;*
174 ; CHARACTER DEVICES (PRINTERS) ;*
175 ;********************************;*
176
177 ;RAWIO SUB-FUNCTIONS
178 GET_RETRY_COUNT EQU 65H
179 SET_RETRY_COUNT EQU 45H
180
181 A_RETRYCOUNT STRUC
182 RC_COUNT DW ?
183 A_RETRYCOUNT ENDS
184
185 ;********************************;* ;J.K. 4/29/86
186 ; CHARACTER DEVICES (SCREEN) ;*
187 ;********************************;* ;J.K. 4/29/86
188 ;
189 ;SC_MODE_INFO struc
190 ;SC_INFO_LENGTH DW 9
191 ;SC_MODE DB 0
192 ;SC_COLORS DW 0
193 ;SC_WIDTH DW 0
194 ;SC_LENGTH DW 0
195 ;SC_MODE_INFO ends
196 ;
197 ;SC_INFO_PACKET_LENGTH EQU 9 ;LENGTH OF THE INFO PACKET.
198
199 ;SUBFUNCTIONS FOR CON$GENIOCTL
200 ;GET_SC_MODE EQU 60h
201 ;SET_SC_MODE EQU 40h
202 ;The following subfunctions are reserved for installable CODE PAGE switch
203 ;console devices. - J.K. 4/29/86
204 ;Get_active_codepage equ 6Ah
205 ;Invoke_active_codepage equ 4Ah
206 ;Start_designate_codepage equ 4Ch
207 ;End_designate_codepage equ 4Dh
208 ;Get_list_of_designated_codepage equ 6Bh
209 ;J.K. 4/29/86 *** End of Con$genioctl equates & structures
210
211