summaryrefslogtreecommitdiff
path: root/v4.0/src/SELECT/DOS.EQU
blob: c1ec499500b35799acc30cb69f1afd913ae76899 (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
;
;******************************************************************************
; DOS Interrupts
;
; REVISION HISTORY:
;
;	   PTM P00 - WAIT & LOCK to WAITP & LOCKF for MASM errors. DRM 4/23/87
;
;		    A005 DCR0201 10/9/87 Incorperate new format for EXTENDED
;			 ATTRIBUTES.
;
;******************************************************************************
;

Terminate		equ	20h	;AN000;
DOS_Function		equ	21h	;AN000;
Terminate_Address	equ	22h	;AN000;
CNTRL_BREAK		equ	23h	;AN000;
Critical_Error		equ	24h	;AN000;
Disk_Read		equ	25h	;AN000;
Disk_Write		equ	26h	;AN000;
Terminate_Stay_Resident equ	27h	;AN000;
Printer 		equ	2Fh	;AN000;
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
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    0011H	;AN000;CREATE MODE
  OPN_FLAG		EQU    0101H	;AN000;OPEN FUNCTION CONTROL
  OPN_ATTR		EQU    0	;AN000;OPEN ATTRIBUTE
  OPN_MODE		EQU    0002H	;AN000;OPEN MODE
  NUL_LIST		EQU    -1	;AN005;JUST TO OPEN

GET_ATTRIB		EQU    05702H	;AN000; Get ext. attribute by handle
QUY_ATTRIB		EQU    05703H	;AN000; QUERY EXT. ATTRIBUTES BY HANDLE
  INT_ORDINAL		EQU    0	;AN000;ATTRIBUTE LIST ORDINAL = 0
  ALL_ATTR		EQU    -1	;AN005;TO SELECT ALL THE ATTRIBUTES
;
;******************************************************************************
; DOS Function Calls
;******************************************************************************
;

Program_Terminate	equ	00h	 ;AN000;
Keyboard_Input		equ	01h	 ;AN000;
Display_Output		equ	02h	 ;AN000;
Auxiliary_Input 	equ	03h	 ;AN000;
Auxiliary_Output	equ	04h	 ;AN000;
Printer_Output		equ	05h	 ;AN000;
Direct_Console_IO	equ	06h	 ;AN000;
Direct_Input_No_Echo	equ	07h	 ;AN000;
Console_Input_No_Echo	equ	08h	 ;AN000;
Print_String		equ	09h	 ;AN000;
Buffered_Keyboard_Input equ	0Ah	 ;AN000;
Check_Std_Input_Status	equ	0Bh	 ;AN000;
Clear_Keyboard_Buffer	equ	0Ch	 ;AN000;
Disk_Reset		equ	0Dh	 ;AN000;
Select_Disk		equ	0Eh	 ;AN000;
FCB_Open		equ	0Fh	 ;AN000;
FCB_Close		equ	10h	 ;AN000;
Search_First		equ	11h	 ;AN000;
Search_Next		equ	12h	 ;AN000;
FCB_Delete		equ	13h	 ;AN000;
Sequential_Read 	equ	14h	 ;AN000;
Sequential_Write	equ	15h	 ;AN000;
FCB_Create		equ	16h	 ;AN000;
FCB_Rename		equ	17h	 ;AN000;
Current_Disk		equ	19h	 ;AN000;
Set_DTA 		equ	1Ah	 ;AN000;
Allocation_Info 	equ	1Bh	 ;AN000;
Allocation_Info_Device	equ	1Ch	 ;AN000;
Random_Read		equ	21h	 ;AN000;
Random_Write		equ	22h	 ;AN000;
File_Size		equ	23h	 ;AN000;
Set_Relative_Record	equ	24h	 ;AN000;
Set_Interrupt_Vector	equ	25h	 ;AN000;
Create_New_PSP		equ	26h	 ;AN000;
Random_Block_Read	equ	27h	 ;AN000;
Random_Block_Write	equ	28h	 ;AN000;
Parse_Filename		equ	29h	 ;AN000;
Get_Date		equ	2Ah	 ;AN000;
Set_Date		equ	2Bh	 ;AN000;
Get_Time		equ	2Ch	 ;AN000;
Set_Time		equ	2Dh	 ;AN000;
Verify			equ	2Eh	 ;AN000;
  Verify_Off		equ	02h	 ;AN000;
  Verify_On		equ	01h	 ;AN000;
Set_Verify_On		equ	2E01h	 ;AN000;
Get_DTA 		equ	2Fh	 ;AN000;
DOS_Version		equ	30h	 ;AN000;
Terminate_Resident	equ	31h	 ;AN000;
Get_Interrupt_Vector	equ	35h	 ;AN000;
Get_Disk_Free_Space	equ	36h	 ;AN000;
Country_Code		equ	38h	 ;AN000;
Mkdir			equ	39h	 ;AN000;
Rmdir			equ	3Ah	 ;AN000;
Chdir			equ	3Bh	 ;AN000;
Create			equ	3Ch	 ;AN000;
Open			equ	3Dh	 ;AN000;
  Read_Only		equ	00h	 ;AN000;
  Write_Only		equ	01h	 ;AN000;
  Read_Write		equ	02h	 ;AN000;
  Read_Only_Exclusive	equ	10h	 ;AN000;
  Write_Only_Exclusive	equ	11h	 ;AN000;
  Read_Write_Exclusive	equ	12h	 ;AN000;
  Read_Only_Deny_Write	equ	20h	 ;AN000;
  Write_Only_Deny_Write equ	21h	 ;AN000;
  Read_Write_Deny_Write equ	22h	 ;AN000;
  Read_Only_Deny_Read	equ	30h	 ;AN000;
  Write_Only_Deny_Read	equ	31h	 ;AN000;
  Read_Write_Deny_Read	equ	32h	 ;AN000;
  Read_Only_Deny_None	equ	40h	 ;AN000;
  Write_Only_Deny_None	equ	41h	 ;AN000;
  Read_Write_Deny_None	equ	42h	 ;AN000;
Close			equ	3Eh	 ;AN000;
Read			equ	3Fh	 ;AN000;
Write			equ	40h	 ;AN000;
Delete			equ	41h	 ;AN000;
Lseek			equ	42h	 ;AN000;
 Lseek_Offset		equ	00h	 ;AN000;
 Lseek_Plus_Offset	equ	01h	 ;AN000;
 Lseek_End_Offset	equ	02h	 ;AN000;
Chmod			equ	43h	 ;AN000;
IOCTL			equ	44h	 ;AN000;
  Get_Device_Info	equ	00h	 ;AN000;
  Set_Device_Info	equ	01h	 ;AN000;
  Read_Channel		equ	02h	 ;AN000;
  Write_Channel 	equ	03h	 ;AN000;
  Read_Drive_Channel	equ	04h	 ;AN000;
  Write_Drive_Channel	equ	05h	 ;AN000;
  Get_Input_Status	equ	06h	 ;AN000;
  Get_Output_Status	equ	07h	 ;AN000;
  Is_Removable		equ	08h	 ;AN000;
  Is_Block_Redirected	equ	09h	 ;AN000;
  Is_Handle_Redirected	equ	0Ah	 ;AN000;
  Set_Retry_Count	equ	0Bh	 ;AN000;
Dup_Handle		equ	45h	 ;AN000;
Force_Dup_Handle	equ	46h	 ;AN000;
Get_Current_Directory	equ	47h	 ;AN000;
Free_Memory		equ	49h	 ;AN000;
Setblock		equ	4Ah	 ;AN000;
Exec			equ	4Bh	 ;AN000;
Exit			equ	4Ch	 ;AN000;
Waitp			equ	4Dh	 ;AN000;
Find_First		equ	4Eh	 ;AN000;
  norm_attr		equ	00h	 ;AN000;
  incl_read_attr	equ	01h	 ;AN000;
  incl_h_attr		equ	02h	 ;AN000;
  incl_h_s_attr 	equ	06h	 ;AN000;
  incl_h_s_dir_attr	equ	16h	 ;AN000;
Find_Next		equ	4Fh	 ;AN000;
Get_Verify_Setting	equ	54h	 ;AN000;
Rename			equ	56h	 ;AN000;
File_Date_Time		equ	57h	 ;AN000;
  Get_File_Time 	equ	00h	 ;AN000;
  Set_File_Time 	equ	01h	 ;AN000;
Get_Extended_Error	equ	59h	 ;AN000;
Create_Temp		equ	5Ah	 ;AN000;
Create_New		equ	5Bh	 ;AN000;
File_Access		equ	5Ch	 ;AN000;
  Lockf 		equ	00h	 ;AN000;
  Unlock		equ	01h	 ;AN000;
Get_PSP 		equ	62h	 ;AN000;
Upper_Case_String	equ	6521h	 ;AN000;GET EXTENDED COUNTRY INFORMATION
;
;******************************************************************************
; DOS File Handles
;******************************************************************************
;

STDIN			equ	00h	;AN000;
STDOUT			equ	01h	;AN000;
STDERR			equ	02h	;AN000;
STDAUX			equ	03h	;AN000;
STDPRN			equ	04h	;AN000;


;
;******************************************************************************
; File's attributes in a Directory entry
;******************************************************************************
;
read_only_file		equ	01h	;AN000;
hidden_file		equ	02h	;AN000;
system_file		equ	04h	;AN000;
has_volume_label	equ	08h	;AN000;
is_subdirectory 	equ	10h	;AN000;
archive_on		equ	20h	;AN000;

;
;******************************************************************************
; Return Codes
;******************************************************************************
;

Errorlevel_0		equ	0	;AN000;
Errorlevel_1		equ	1	;AN000;
Errorlevel_2		equ	2	;AN000;
Errorlevel_3		equ	3	;AN000;
Errorlevel_4		equ	4	;AN000;
Errorlevel_5		equ	5	;AN000;
Errorlevel_6		equ	6	;AN000;
Errorlevel_7		equ	7	;AN000;
Errorlevel_8		equ	8	;AN000;

;
;******************************************************************************
; Extended Error Codes
;******************************************************************************
;

Error_No_Error		      equ     00	;AN000;
Error_Invalid_Function	      equ     01	;AN000;
Error_File_Not_Found	      equ     02	;AN000;
Error_Path_Not_Found	      equ     03	;AN000;
Error_No_Handles_Left	      equ     04	;AN000;
Error_Access_Denied	      equ     05	;AN000;
Error_Invalid_Handle	      equ     06	;AN000;
Error_Memory_Blocks_Bad       equ     07	;AN000;
Error_Insufficient_Memory     equ     08	;AN000;
Error_Inv_Address	      equ     09	;AN000;
Error_Inv_Environment	      equ     10	;AN000;
Error_Inv_Format	      equ     11	;AN000;
Error_Inv_Access_Code	      equ     12	;AN000;
Error_Inv_Data		      equ     13	;AN000;
Error_Inv_Drive 	      equ     15	;AN000;
Error_Rmdir_Current_Dir       equ     16	;AN000;
Error_Not_Same_Device	      equ     17	;AN000;
Error_No_More_Files	      equ     18	;AN000;
Error_Write_Protect	      equ     19	;AN000;
Error_Unknown_Unit	      equ     20	;AN000;
Error_Drive_Not_Ready	      equ     21	;AN000;
Error_Unknown_Command	      equ     22	;AN000;
Error_Data_Error	      equ     23	;AN000;
Error_Bad_Request_Len	      equ     24	;AN000;
Error_Seek_Error	      equ     25	;AN000;
Error_Unknown_Media_Type      equ     26	;AN000;
Error_Sector_Not_Found	      equ     27	;AN000;
Error_Out_Of_Paper	      equ     28	;AN000;
Error_Write_Fault	      equ     29	;AN000;
Error_Read_Fault	      equ     30	;AN000;
Error_Gerneral_Failure	      equ     31	;AN000;
Error_Sharing_Violation       equ     32	;AN000;
Error_Lock_Violation	      equ     33	;AN000;
Error_Inv_Disk_Change	      equ     34	;AN000;
Error_FCB_Unavailable	      equ     35	;AN000;
Error_File_Exists	      equ     80	;AN000;
Error_Cannot_Make	      equ     82	;AN000;
Error_Fail_On_Int24	      equ     83	;AN000;

;
;******************************************************************************
; Extended Error Classes
;******************************************************************************
;

Out_Of_Resource 	equ	1	;AN000;
Temporary		equ	2	;AN000;
Authorization		equ	3	;AN000;
Internal		equ	4	;AN000;
Hardware_Failure	equ	5	;AN000;
System_Failure		equ	6	;AN000;
Program_Error		equ	7	;AN000;
Not_Found		equ	8	;AN000;
Bad_Format		equ	9	;AN000;
Locked			equ	10	;AN000;
Media			equ	11	;AN000;
Already_Exists		equ	12	;AN000;
Unknown 		equ	13	;AN000;

;
;*****************************************************************************
; Extended Error Actions
;*****************************************************************************
;

Retry			equ	1	;AN000;
Delay_Retry		equ	2	;AN000;
User			equ	3	;AN000;
Abort			equ	4	;AN000;
Immediate_Exit		equ	5	;AN000;
Ignore			equ	6	;AN000;
Retry_After_User	equ	7	;AN000;

;
;******************************************************************************
; Extended Error Locus
;******************************************************************************
;

Non_Specific		equ	1	;AN000;
Block_Device		equ	2	;AN000;
Serial_Device		equ	4	;AN000;
Memory			equ	5	;AN000;

;
;******************************************************************************
; Internal Program Initialization Errors
;******************************************************************************
;

Init_Err_DOS_Ver_1	equ	1	;AN000;Bad DOS version prior to 2.0
Init_Err_DOS_Ver_2	equ	2	;AN000;Bad DOS version 2.0 or above
Init_Err_Inv_Drive	equ	3	;AN000;Invalid drive specification
Init_Err_Inv_Parm	equ	4	;AN000;Invalid parameter
Init_Err_Inv_Num_Parm	equ	5	;AN000;Invalid number of parameters
Init_Err_Inv_Path	equ	6	;AN000;Invalid path
Init_Err_Insuff_Mem	equ	7	;AN000;Insufficient memory
Init_Err_Inv_Date	equ	8	;AN000;Invalid date
Init_Err_Inv_Time	equ	9	;AN000;Invalid time
Init_Err_Inv_Device	equ	10	;AN000;Invalid device name
Init_Err_Ill_Device	equ	11	;AN000;Illegal device name
Init_Err_Inv_Filename	equ	12	;AN000;Invalid filename

;
;******************************************************************************
; FCB Structure
;******************************************************************************
;

FCB		STRUC				;AN000;
Drive_Number		db	0		;AN000;
Filename_FCB		db	8 dup(0)	;AN000;
Extension		db	3 dup(0)	;AN000;
Current_Block		dw	0		;AN000;
Record_Size		dw	0		;AN000;
File_Size_Low_FCB	dw	0		;AN000;
File_Size_High_FCB	dw	0		;AN000;
File_Date_Time_FCB	dw	0		;AN000;
Reserved_FCB		db	10 dup(0)	;AN000;
Current_Record		db	0		;AN000;
Relative_Record_Low	dw	0		;AN000;
Relative_Record_High	dw	0		;AN000;
FCB		ENDS				;AN000;


;
;******************************************************************************
; Find First/Next DTA area
;******************************************************************************
;

Find_DTA	STRUC				;AN000;
DTA_Reserved		    db	    21 dup(0)	;AN000;
DTA_Attribute		    db	    0		;AN000;
DTA_File_Time		    dw	    0		;AN000;
DTA_File_Date		    dw	    0		;AN000;
DTA_File_Size_Low	    dw	    0		;AN000;
DTA_File_Size_High	    dw	    0		;AN000;
DTA_Filename		    db	    13 dup(0)	;AN000;
Find_DTA	ENDS				;AN000;