3 ; THESE ARE ALL THE IMPORTANT STRUCTURES AND EQUATES FOR IOCTL
4 ;==============================================================================
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 ;==============================================================================
18 ; 0... .... DOS Defined
19 ; 1... .... User defined
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
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".
36 ;*****************************;*
38 ;*****************************;*
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
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)
65 ; GENERIC IOCTL SUB-FUNCTIONS
69 GET_DEVICE_PARAMETERS EQU 60H
70 SET_DEVICE_PARAMETERS EQU 40H
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
80 ; SPECIAL FUNCTION FOR GET DEVICE PARAMETERS
81 BUILD_DEVICE_BPB EQU 000000001B
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
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
96 MAX_SECTORS_IN_TRACK EQU 63 ; MAXIMUM SECTORS ON A DISK.(Was 40 in DOS 3.2)
105 MAX_DEV_TYPE EQU 7 ; MAXIMUM DEVICE TYPE THAT WE
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.
127 A_DEVICEPARAMETERS STRUC
128 DP_SPECIALFUNCTIONS DB ?
130 DP_DEVICEATTRIBUTES DW ?
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
138 A_TRACKREADWRITEPACKET STRUC
139 TRWP_SPECIALFUNCTIONS DB ?
142 TRWP_FIRSTSECTOR DW ?
143 TRWP_SECTORSTOREADWRITE DW ?
144 TRWP_TRANSFERADDRESS DD ?
145 A_TRACKREADWRITEPACKET ENDS
147 ;AN001; - FP_TRACKCOUNT is only meaningful when FP_SPECIALFUNCTIONS bit 1 = 1.
149 FP_SPECIALFUNCTIONS DB ?
156 VP_SPECIALFUNCTIONS DB ?
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
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
173 ;********************************;*
174 ; CHARACTER DEVICES (PRINTERS) ;*
175 ;********************************;*
178 GET_RETRY_COUNT EQU 65H
179 SET_RETRY_COUNT EQU 45H
185 ;********************************;* ;J.K. 4/29/86
186 ; CHARACTER DEVICES (SCREEN) ;*
187 ;********************************;* ;J.K. 4/29/86
197 ;SC_INFO_PACKET_LENGTH EQU 9 ;LENGTH OF THE INFO PACKET.
199 ;SUBFUNCTIONS FOR CON$GENIOCTL
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