diff options
Diffstat (limited to 'v4.0/src/INC/IOCTL.INC')
| -rw-r--r-- | v4.0/src/INC/IOCTL.INC | 211 |
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 | ||
| 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 | |||