blob: dcacee7fb46487e598fb2e79ba5aaae1a983cdee (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
|
;
;******************************************************************************
; DOS Interrupts
;
; REVISION HISTORY:
;
; PTM P00 - WAIT & LOCK to WAITP & LOCKF for MASM errors. DRM 4/23/87
;
; A000 Version 4.00: add PARSER, System Message Handler,
; Remove the BELL char.,turn off APPEND during TREE
; search,Extended Attribute processing, Uppercasing
; and "Out Of Space" during write to standard out.
; A005 DCR0201 9/11/87 Incorperate new format for EXTENDED
; ATTRIBUTES.
;
;******************************************************************************
;
Terminate equ 20h
DOS_Function equ 21h
Terminate_Address equ 22h
CNTRL_BREAK equ 23h
Critical_Error equ 24h
Disk_Read equ 25h
Disk_Write equ 26h
Terminate_Stay_Resident equ 27h
Printer equ 2Fh
CHK_APPEND EQU 0B700H ;AN000; CHECK IF APPEND ACTIVE INT 2FH
GET_APPEND EQU 0B706H ;AN000; Read /X status with INT 2FH
; BX = 0 if /X is not active
; BX = 1 if /X is active
SET_APPEND EQU 0B707H ;AN000; Set /X status with INT 2FH
VER_APPEND EQU 0B702H ;AN019; ASK IF DOS VERSION OF APPEND
EXT_OPEN EQU 6C00H ;AN000; Extended Open function code
CREATE_FLAG EQU 0112H ;AN005;FUNCTION CONTROL
CREATE_ATTR EQU 0 ;AN000;SEARCH/CREATE ATTRIBUTE
CREATE_MODE EQU 0002H ;AC021;CREATE MODE
OPN_FLAG EQU 0101H ;AN000;OPEN FUNCTION CONTROL
OPN_ATTR EQU 0 ;AN000;OPEN ATTRIBUTE
OPN_MODE EQU 0000H ;AN000;OPEN MODE (READ)
NUL_LIST EQU -1 ;AN005;JUST TO OPEN
GET_ATTRIB EQU 05702H ;AN000; Get ext. attribute by handle
INT_ORDINAL EQU 0 ;AN000;ATTRIBUTE LIST ORDINAL = 0
ALL_ATTR EQU -1 ;AN005;TO SELECT ALL THE ATTRIBUTES
SET_ATTRIB EQU 05704H ;AN012; Set ext. attribute by handle
;
;******************************************************************************
; DOS Function Calls
;******************************************************************************
;
Program_Terminate equ 00h
Keyboard_Input equ 01h
Display_Output equ 02h
Auxiliary_Input equ 03h
Auxiliary_Output equ 04h
Printer_Output equ 05h
Direct_Console_IO equ 06h
Direct_Input_No_Echo equ 07h
Console_Input_No_Echo equ 08h
Print_String equ 09h
Buffered_Keyboard_Input equ 0Ah
Check_Std_Input_Status equ 0Bh
Clear_Keyboard_Buffer equ 0Ch
Disk_Reset equ 0Dh
Select_Disk equ 0Eh
FCB_Open equ 0Fh
FCB_Close equ 10h
Search_First equ 11h
Search_Next equ 12h
FCB_Delete equ 13h
Sequential_Read equ 14h
Sequential_Write equ 15h
FCB_Create equ 16h
FCB_Rename equ 17h
Current_Disk equ 19h
Set_DTA equ 1Ah
Allocation_Info equ 1Bh
Allocation_Info_Device equ 1Ch
Random_Read equ 21h
Random_Write equ 22h
File_Size equ 23h
Set_Relative_Record equ 24h
Set_Interrupt_Vector equ 25h
Create_New_PSP equ 26h
Random_Block_Read equ 27h
Random_Block_Write equ 28h
Parse_Filename equ 29h
Get_Date equ 2Ah
Set_Date equ 2Bh
Get_Time equ 2Ch
Set_Time equ 2Dh
Verify equ 2Eh
Verify_Off equ 02h
Verify_On equ 01h
Set_Verify_On equ 2E01h
Get_DTA equ 2Fh
DOS_Version equ 30h
Terminate_Resident equ 31h
Get_Interrupt_Vector equ 35h
Get_Disk_Free_Space equ 36h
Country_Code equ 38h
Mkdir equ 39h
Rmdir equ 3Ah
Chdir equ 3Bh
Create equ 3Ch
Open equ 3Dh
Read_Only equ 00h
Write_Only equ 01h
Read_Write equ 02h
Read_Only_Exclusive equ 10h
Write_Only_Exclusive equ 11h
Read_Write_Exclusive equ 12h
Read_Only_Deny_Write equ 20h
Write_Only_Deny_Write equ 21h
Read_Write_Deny_Write equ 22h
Read_Only_Deny_Read equ 30h
Write_Only_Deny_Read equ 31h
Read_Write_Deny_Read equ 32h
Read_Only_Deny_None equ 40h
Write_Only_Deny_None equ 41h
Read_Write_Deny_None equ 42h
Close equ 3Eh
Read equ 3Fh
Write equ 40h
Delete equ 41h
Lseek equ 42h
Lseek_Offset equ 00h
Lseek_Plus_Offset equ 01h
Lseek_End_Offset equ 02h
Chmod equ 43h
IOCTL equ 44h
Get_Device_Info equ 00h
Set_Device_Info equ 01h
Read_Channel equ 02h
Write_Channel equ 03h
Read_Drive_Channel equ 04h
Write_Drive_Channel equ 05h
Get_Input_Status equ 06h
Get_Output_Status equ 07h
Is_Removable equ 08h
Is_Block_Redirected equ 09h
Is_Handle_Redirected equ 0Ah
Set_Retry_Count equ 0Bh
Dup_Handle equ 45h
Force_Dup_Handle equ 46h
Get_Current_Directory equ 47h
Allocate_Memory equ 48h
Free_Memory equ 49h
Setblock equ 4Ah
Exec equ 4Bh
Exit equ 4Ch
Waitp equ 4Dh
Find_First equ 4Eh
norm_attr equ 00h
incl_read_attr equ 01h
incl_h_attr equ 02h
incl_h_s_attr equ 06h
incl_h_s_dir_attr equ 16h
Find_Next equ 4Fh
Get_Verify_Setting equ 54h
Rename equ 56h
File_Date_Time equ 57h
Get_File_Time equ 00h
Set_File_Time equ 01h
Get_Extended_Error equ 59h
Create_Temp equ 5Ah
Create_New equ 5Bh
File_Access equ 5Ch
Lockf equ 00h
Unlock equ 01h
Get_PSP equ 62h
Upper_Case_String equ 6521h ;AN000;GET EXTENDED COUNTRY INFORMATION
;
;******************************************************************************
; DOS File Handles
;******************************************************************************
;
STDIN equ 00h
STDOUT equ 01h
STDERR equ 02h
STDAUX equ 03h
STDPRN equ 04h
;
;******************************************************************************
; File's attributes in a Directory entry
;******************************************************************************
;
read_only_file equ 01h
hidden_file equ 02h
system_file equ 04h
has_volume_label equ 08h
is_subdirectory equ 10h
archive_on equ 20h
;
;******************************************************************************
; Return Codes
;******************************************************************************
;
Errorlevel_0 equ 0
Errorlevel_1 equ 1
Errorlevel_2 equ 2
Errorlevel_3 equ 3
Errorlevel_4 equ 4
Errorlevel_5 equ 5
Errorlevel_6 equ 6
Errorlevel_7 equ 7
Errorlevel_8 equ 8
;
;******************************************************************************
; Extended Error Codes
;******************************************************************************
;
Error_No_Error equ 00
Error_Invalid_Function equ 01
Error_File_Not_Found equ 02
Error_Path_Not_Found equ 03
Error_No_Handles_Left equ 04
Error_Access_Denied equ 05
Error_Invalid_Handle equ 06
Error_Memory_Blocks_Bad equ 07
Error_Insufficient_Memory equ 08
Error_Inv_Address equ 09
Error_Inv_Environment equ 10
Error_Inv_Format equ 11
Error_Inv_Access_Code equ 12
Error_Inv_Data equ 13
Error_Inv_Drive equ 15
Error_Rmdir_Current_Dir equ 16
Error_Not_Same_Device equ 17
Error_No_More_Files equ 18
Error_Write_Protect equ 19
Error_Unknown_Unit equ 20
Error_Drive_Not_Ready equ 21
Error_Unknown_Command equ 22
Error_Data_Error equ 23
Error_Bad_Request_Len equ 24
Error_Seek_Error equ 25
Error_Unknown_Media_Type equ 26
Error_Sector_Not_Found equ 27
Error_Out_Of_Paper equ 28
Error_Write_Fault equ 29
Error_Read_Fault equ 30
Error_Gerneral_Failure equ 31
Error_Sharing_Violation equ 32
Error_Lock_Violation equ 33
Error_Inv_Disk_Change equ 34
Error_FCB_Unavailable equ 35
Error_File_Exists equ 80
Error_Cannot_Make equ 82
Error_Fail_On_Int24 equ 83
;
;******************************************************************************
; Extended Error Classes
;******************************************************************************
;
Out_Of_Resource equ 1
Temporary equ 2
Authorization equ 3
Internal equ 4
Hardware_Failure equ 5
System_Failure equ 6
Program_Error equ 7
Not_Found equ 8
Bad_Format equ 9
Locked equ 10
Media equ 11
Already_Exists equ 12
Unknown equ 13
;
;*****************************************************************************
; Extended Error Actions
;*****************************************************************************
;
Retry equ 1
Delay_Retry equ 2
User equ 3
Abort equ 4
Immediate_Exit equ 5
Ignore equ 6
Retry_After_User equ 7
;
;******************************************************************************
; Extended Error Locus
;******************************************************************************
;
Non_Specific equ 1
Block_Device equ 2
Serial_Device equ 4
Memory equ 5
;
;******************************************************************************
; Internal Program Initialization Errors
;******************************************************************************
;
Init_Err_DOS_Ver_1 equ 1 ;Bad DOS version prior to 2.0
Init_Err_DOS_Ver_2 equ 2 ;Bad DOS version 2.0 or above
Init_Err_Inv_Drive equ 3 ;Invalid drive specification
Init_Err_Inv_Parm equ 4 ;Invalid parameter
Init_Err_Inv_Num_Parm equ 5 ;Invalid number of parameters
Init_Err_Inv_Path equ 6 ;Invalid path
Init_Err_Insuff_Mem equ 7 ;Insufficient memory
Init_Err_Inv_Date equ 8 ;Invalid date
Init_Err_Inv_Time equ 9 ;Invalid time
Init_Err_Inv_Device equ 10 ;Invalid device name
Init_Err_Ill_Device equ 11 ;Illegal device name
Init_Err_Inv_Filename equ 12 ;Invalid filename
;
;******************************************************************************
; FCB Structure
;******************************************************************************
;
FCB STRUC
Drive_Number db 0
Filename_FCB db 8 dup(0)
Extension db 3 dup(0)
Current_Block dw 0
Record_Size dw 0
File_Size_Low_FCB dw 0
File_Size_High_FCB dw 0
File_Date_Time_FCB dw 0
Reserved_FCB db 10 dup(0)
Current_Record db 0
Relative_Record_Low dw 0
Relative_Record_High dw 0
FCB ENDS
;
;******************************************************************************
; Find First/Next DTA area
;******************************************************************************
;
Find_DTA STRUC
DTA_Reserved db 21 dup(0)
DTA_Attribute db 0
DTA_File_Time dw 0
DTA_File_Date dw 0
DTA_File_Size_Low dw 0
DTA_File_Size_High dw 0
DTA_Filename db 13 dup(0)
Find_DTA ENDS
|