summaryrefslogtreecommitdiff
path: root/v4.0/src/INC/IOCTL.INC
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/INC/IOCTL.INC')
-rw-r--r--v4.0/src/INC/IOCTL.INC211
1 files changed, 211 insertions, 0 deletions
diff --git a/v4.0/src/INC/IOCTL.INC b/v4.0/src/INC/IOCTL.INC
new file mode 100644
index 0000000..b9c335d
--- /dev/null
+++ b/v4.0/src/INC/IOCTL.INC
@@ -0,0 +1,211 @@
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
41IOCTL_GET_DEVICE_INFO EQU 0
42IOCTL_SET_DEVICE_INFO EQU 1
43IOCTL_READ_HANDLE EQU 2
44IOCTL_WRITE_HANDLE EQU 3
45IOCTL_READ_DRIVE EQU 4
46IOCTL_WRITE_DRIVE EQU 5
47IOCTL_GET_INPUT_STATUS EQU 6
48IOCTL_GET_OUTPUT_STATUS EQU 7
49IOCTL_CHANGEABLE? EQU 8
50IOCTL_DeviceLocOrRem? EQU 9
51IOCTL_HandleLocOrRem? EQU 0Ah ;10
52IOCTL_SHARING_RETRY EQU 0Bh ;11
53GENERIC_IOCTL_HANDLE EQU 0Ch ;12
54GENERIC_IOCTL EQU 0Dh ;13
55
56; GENERIC IOCTL CATEGORY CODES
57IOC_OTHER EQU 0 ; Other device control J.K. 4/29/86
58IOC_SE EQU 1 ; SERIAL DEVICE CONTROL
59IOC_TC EQU 2 ; TERMINAL CONTROL
60IOC_SC EQU 3 ; SCREEN CONTROL
61IOC_KC EQU 4 ; KEYBOARD CONTROL
62IOC_PC EQU 5 ; PRINTER CONTROL
63IOC_DC EQU 8 ; DISK CONTROL (SAME AS RAWIO)
64
65; GENERIC IOCTL SUB-FUNCTIONS
66RAWIO EQU 8
67
68; RAWIO SUB-FUNCTIONS
69GET_DEVICE_PARAMETERS EQU 60H
70SET_DEVICE_PARAMETERS EQU 40H
71READ_TRACK EQU 61H
72WRITE_TRACK EQU 41H
73VERIFY_TRACK EQU 62H
74FORMAT_TRACK EQU 42H
75GET_MEDIA_ID EQU 66h ;AN000;AN003;changed from 63h
76SET_MEDIA_ID EQU 46h ;AN000;AN003;changed from 43h
77GET_ACCESS_FLAG EQU 67h ;AN002;AN003;Unpublished function.Changed from 64h
78SET_ACCESS_FLAG EQU 47h ;AN002;AN003;Unpublished function.Changed from 44h
79
80; SPECIAL FUNCTION FOR GET DEVICE PARAMETERS
81BUILD_DEVICE_BPB EQU 000000001B
82
83; SPECIAL FUNCTIONS FOR SET DEVICE PARAMETERS
84INSTALL_FAKE_BPB EQU 000000001B
85ONLY_SET_TRACKLAYOUT EQU 000000010B
86TRACKLAYOUT_IS_GOOD EQU 000000100B
87
88; SPECIAL FUNCTION FOR FORMAT TRACK
89STATUS_FOR_FORMAT EQU 000000001B
90DO_FAST_FORMAT equ 000000010B ;AN001;
91; CODES RETURNED FROM FORMAT STATUS CALL
92FORMAT_NO_ROM_SUPPORT EQU 000000001B
93FORMAT_COMB_NOT_SUPPORTED EQU 000000010B
94
95; DEVICETYPE VALUES
96MAX_SECTORS_IN_TRACK EQU 63 ; MAXIMUM SECTORS ON A DISK.(Was 40 in DOS 3.2)
97DEV_5INCH EQU 0
98DEV_5INCH96TPI EQU 1
99DEV_3INCH720KB EQU 2
100DEV_8INCHSS EQU 3
101DEV_8INCHDS EQU 4
102DEV_HARDDISK EQU 5
103DEV_OTHER EQU 7
104
105MAX_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.
110IF1
111 BPBINPASS1 = 0
112 IFNDEF A_BPB
113 INCLUDE BPB.INC
114 BPBINPASS1 = 1
115 ENDIF
116ELSE
117 IF BPBINPASS1
118 INCLUDE BPB.INC
119 ENDIF
120ENDIF
121
122A_SECTORTABLE STRUC
123ST_SECTORNUMBER DW ?
124ST_SECTORSIZE DW ?
125A_SECTORTABLE ENDS
126
127A_DEVICEPARAMETERS STRUC
128DP_SPECIALFUNCTIONS DB ?
129DP_DEVICETYPE DB ?
130DP_DEVICEATTRIBUTES DW ?
131DP_CYLINDERS DW ?
132DP_MEDIATYPE DB ?
133DP_BPB DB SIZE A_BPB DUP (?)
134DP_TRACKTABLEENTRIES DW ?
135DP_SECTORTABLE DB MAX_SECTORS_IN_TRACK * SIZE A_SECTORTABLE DUP (?)
136A_DEVICEPARAMETERS ENDS
137
138A_TRACKREADWRITEPACKET STRUC
139TRWP_SPECIALFUNCTIONS DB ?
140TRWP_HEAD DW ?
141TRWP_CYLINDER DW ?
142TRWP_FIRSTSECTOR DW ?
143TRWP_SECTORSTOREADWRITE DW ?
144TRWP_TRANSFERADDRESS DD ?
145A_TRACKREADWRITEPACKET ENDS
146
147;AN001; - FP_TRACKCOUNT is only meaningful when FP_SPECIALFUNCTIONS bit 1 = 1.
148A_FORMATPACKET STRUC
149FP_SPECIALFUNCTIONS DB ?
150FP_HEAD DW ?
151FP_CYLINDER DW ?
152FP_TRACKCOUNT DW 1
153A_FORMATPACKET ENDS
154
155A_VERIFYPACKET STRUC
156VP_SPECIALFUNCTIONS DB ?
157VP_HEAD DW ?
158VP_CYLINDER DW ?
159A_VERIFYPACKET ENDS
160
161A_MEDIA_ID_INFO STRUC
162MI_LEVEL DW 0 ;J.K. 87 Info. level
163MI_SERIAL DD ? ;J.K. 87 Serial #
164MI_LABEL DB 11 DUP (' ') ;J.K. 87 volume label
165MI_SYSTEM DB 8 DUP (' ') ;J.K. 87 File system type
166A_MEDIA_ID_INFO ENDS
167
168A_DISKACCESS_CONTROL STRUC ;AN002; Unpublished function. Only for Hard file.
169DAC_SPECIALFUNCTIONS DB 0 ;AN002; Always 0
170DAC_ACCESS_FLAG DB 0 ;AN002; Non Zero - allow disk I/O to unformatted hard file
171A_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
178GET_RETRY_COUNT EQU 65H
179SET_RETRY_COUNT EQU 45H
180
181A_RETRYCOUNT STRUC
182RC_COUNT DW ?
183A_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