3 ;******************************************************************************
8 ; PTM P00 - WAIT & LOCK to WAITP & LOCKF for MASM errors. DRM 4/23/87
10 ; A000 Version 4.00: add PARSER, System Message Handler,
11 ; Remove the BELL char.,turn off APPEND during TREE
12 ; search,Extended Attribute processing, Uppercasing
13 ; and "Out Of Space" during write to standard out.
14 ; A005 DCR0201 9/11/87 Incorperate new format for EXTENDED
17 ;******************************************************************************
22 Terminate_Address equ 22h
24 Critical_Error equ 24h
27 Terminate_Stay_Resident equ 27h
29 CHK_APPEND EQU 0B700H ;AN000; CHECK IF APPEND ACTIVE INT 2FH
30 GET_APPEND EQU 0B706H ;AN000; Read /X status with INT 2FH
31 ; BX = 0 if /X is not active
32 ; BX = 1 if /X is active
33 SET_APPEND EQU 0B707H ;AN000; Set /X status with INT 2FH
34 VER_APPEND EQU 0B702H ;AN019; ASK IF DOS VERSION OF APPEND
35 EXT_OPEN EQU 6C00H ;AN000; Extended Open function code
36 CREATE_FLAG EQU 0112H ;AN005;FUNCTION CONTROL
37 CREATE_ATTR EQU 0 ;AN000;SEARCH/CREATE ATTRIBUTE
38 CREATE_MODE EQU 0002H ;AC021;CREATE MODE
39 OPN_FLAG EQU 0101H ;AN000;OPEN FUNCTION CONTROL
40 OPN_ATTR EQU 0 ;AN000;OPEN ATTRIBUTE
41 OPN_MODE EQU 0000H ;AN000;OPEN MODE (READ)
42 NUL_LIST EQU -1 ;AN005;JUST TO OPEN
44 GET_ATTRIB EQU 05702H ;AN000; Get ext. attribute by handle
45 INT_ORDINAL EQU 0 ;AN000;ATTRIBUTE LIST ORDINAL = 0
46 ALL_ATTR EQU -1 ;AN005;TO SELECT ALL THE ATTRIBUTES
47 SET_ATTRIB EQU 05704H ;AN012; Set ext. attribute by handle
49 ;******************************************************************************
51 ;******************************************************************************
54 Program_Terminate equ 00h
55 Keyboard_Input equ 01h
56 Display_Output equ 02h
57 Auxiliary_Input equ 03h
58 Auxiliary_Output equ 04h
59 Printer_Output equ 05h
60 Direct_Console_IO equ 06h
61 Direct_Input_No_Echo equ 07h
62 Console_Input_No_Echo equ 08h
64 Buffered_Keyboard_Input equ 0Ah
65 Check_Std_Input_Status equ 0Bh
66 Clear_Keyboard_Buffer equ 0Ch
74 Sequential_Read equ 14h
75 Sequential_Write equ 15h
80 Allocation_Info equ 1Bh
81 Allocation_Info_Device equ 1Ch
85 Set_Relative_Record equ 24h
86 Set_Interrupt_Vector equ 25h
87 Create_New_PSP equ 26h
88 Random_Block_Read equ 27h
89 Random_Block_Write equ 28h
90 Parse_Filename equ 29h
98 Set_Verify_On equ 2E01h
101 Terminate_Resident equ 31h
102 Get_Interrupt_Vector equ 35h
103 Get_Disk_Free_Space equ 36h
113 Read_Only_Exclusive equ 10h
114 Write_Only_Exclusive equ 11h
115 Read_Write_Exclusive equ 12h
116 Read_Only_Deny_Write equ 20h
117 Write_Only_Deny_Write equ 21h
118 Read_Write_Deny_Write equ 22h
119 Read_Only_Deny_Read equ 30h
120 Write_Only_Deny_Read equ 31h
121 Read_Write_Deny_Read equ 32h
122 Read_Only_Deny_None equ 40h
123 Write_Only_Deny_None equ 41h
124 Read_Write_Deny_None equ 42h
131 Lseek_Plus_Offset equ 01h
132 Lseek_End_Offset equ 02h
135 Get_Device_Info equ 00h
136 Set_Device_Info equ 01h
138 Write_Channel equ 03h
139 Read_Drive_Channel equ 04h
140 Write_Drive_Channel equ 05h
141 Get_Input_Status equ 06h
142 Get_Output_Status equ 07h
144 Is_Block_Redirected equ 09h
145 Is_Handle_Redirected equ 0Ah
146 Set_Retry_Count equ 0Bh
148 Force_Dup_Handle equ 46h
149 Get_Current_Directory equ 47h
150 Allocate_Memory equ 48h
158 incl_read_attr equ 01h
160 incl_h_s_attr equ 06h
161 incl_h_s_dir_attr equ 16h
163 Get_Verify_Setting equ 54h
165 File_Date_Time equ 57h
166 Get_File_Time equ 00h
167 Set_File_Time equ 01h
168 Get_Extended_Error equ 59h
175 Upper_Case_String equ 6521h ;AN000;GET EXTENDED COUNTRY INFORMATION
177 ;******************************************************************************
179 ;******************************************************************************
190 ;******************************************************************************
191 ; File's attributes in a Directory entry
192 ;******************************************************************************
194 read_only_file equ 01h
197 has_volume_label equ 08h
198 is_subdirectory equ 10h
202 ;******************************************************************************
204 ;******************************************************************************
218 ;******************************************************************************
219 ; Extended Error Codes
220 ;******************************************************************************
223 Error_No_Error equ 00
224 Error_Invalid_Function equ 01
225 Error_File_Not_Found equ 02
226 Error_Path_Not_Found equ 03
227 Error_No_Handles_Left equ 04
228 Error_Access_Denied equ 05
229 Error_Invalid_Handle equ 06
230 Error_Memory_Blocks_Bad equ 07
231 Error_Insufficient_Memory equ 08
232 Error_Inv_Address equ 09
233 Error_Inv_Environment equ 10
234 Error_Inv_Format equ 11
235 Error_Inv_Access_Code equ 12
236 Error_Inv_Data equ 13
237 Error_Inv_Drive equ 15
238 Error_Rmdir_Current_Dir equ 16
239 Error_Not_Same_Device equ 17
240 Error_No_More_Files equ 18
241 Error_Write_Protect equ 19
242 Error_Unknown_Unit equ 20
243 Error_Drive_Not_Ready equ 21
244 Error_Unknown_Command equ 22
245 Error_Data_Error equ 23
246 Error_Bad_Request_Len equ 24
247 Error_Seek_Error equ 25
248 Error_Unknown_Media_Type equ 26
249 Error_Sector_Not_Found equ 27
250 Error_Out_Of_Paper equ 28
251 Error_Write_Fault equ 29
252 Error_Read_Fault equ 30
253 Error_Gerneral_Failure equ 31
254 Error_Sharing_Violation equ 32
255 Error_Lock_Violation equ 33
256 Error_Inv_Disk_Change equ 34
257 Error_FCB_Unavailable equ 35
258 Error_File_Exists equ 80
259 Error_Cannot_Make equ 82
260 Error_Fail_On_Int24 equ 83
263 ;******************************************************************************
264 ; Extended Error Classes
265 ;******************************************************************************
268 Out_Of_Resource equ 1
272 Hardware_Failure equ 5
279 Already_Exists equ 12
283 ;*****************************************************************************
284 ; Extended Error Actions
285 ;*****************************************************************************
294 Retry_After_User equ 7
297 ;******************************************************************************
298 ; Extended Error Locus
299 ;******************************************************************************
308 ;******************************************************************************
309 ; Internal Program Initialization Errors
310 ;******************************************************************************
313 Init_Err_DOS_Ver_1 equ 1 ;Bad DOS version prior to 2.0
314 Init_Err_DOS_Ver_2 equ 2 ;Bad DOS version 2.0 or above
315 Init_Err_Inv_Drive equ 3 ;Invalid drive specification
316 Init_Err_Inv_Parm equ 4 ;Invalid parameter
317 Init_Err_Inv_Num_Parm equ 5 ;Invalid number of parameters
318 Init_Err_Inv_Path equ 6 ;Invalid path
319 Init_Err_Insuff_Mem equ 7 ;Insufficient memory
320 Init_Err_Inv_Date equ 8 ;Invalid date
321 Init_Err_Inv_Time equ 9 ;Invalid time
322 Init_Err_Inv_Device equ 10 ;Invalid device name
323 Init_Err_Ill_Device equ 11 ;Illegal device name
324 Init_Err_Inv_Filename equ 12 ;Invalid filename
327 ;******************************************************************************
329 ;******************************************************************************
334 Filename_FCB db 8 dup(0)
335 Extension db 3 dup(0)
338 File_Size_Low_FCB dw 0
339 File_Size_High_FCB dw 0
340 File_Date_Time_FCB dw 0
341 Reserved_FCB db 10 dup(0)
343 Relative_Record_Low dw 0
344 Relative_Record_High dw 0
349 ;******************************************************************************
350 ; Find First/Next DTA area
351 ;******************************************************************************
355 DTA_Reserved db 21 dup(0)
359 DTA_File_Size_Low dw 0
360 DTA_File_Size_High dw 0
361 DTA_Filename db 13 dup(0)