summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/TREE/TREEQU.INC
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/CMD/TREE/TREEQU.INC')
-rw-r--r--v4.0/src/CMD/TREE/TREEQU.INC229
1 files changed, 229 insertions, 0 deletions
diff --git a/v4.0/src/CMD/TREE/TREEQU.INC b/v4.0/src/CMD/TREE/TREEQU.INC
new file mode 100644
index 0000000..334e02d
--- /dev/null
+++ b/v4.0/src/CMD/TREE/TREEQU.INC
@@ -0,0 +1,229 @@
1 IF1 ;AN000;
2 %OUT COMPONENT=TREE, MODULE=TREEQU.INC...;AN000;
3 ENDIF ;AN000;
4; $SALUT (4,19,24,36) ; ;AN000;
5; DOS FUNCTION CALLS, USING INT 21H
6
7SELECT_DISK EQU 0EH ;AN000;SETS DEFAULT DRIVE
8 ; DL=DRIVE NUMBER (0=A,1=B)
9 ;OUTPUT: AL=NUMBER OF DRIVES (MIN 5) ???
10
11CHDIR EQU 3BH ;AN000;CHANGE CURRENT DIRECTORY
12 ;DS:DX = POINTER TO ASCIIZ STRING
13
14CURRDISK EQU 19H ;AN000;GET CURRENT DEFAULT DRIVE
15 ;OUTPUT: AL = CURRENT DRIVE
16 ; 0=A,1=B,ETC.
17
18SET_DTA EQU 1AH ;AN000;SET DISK TRANSFER ADDRESS
19 ; DS:DX = DISK TRANSFER ADDRESS
20
21SET_VECTOR EQU 25H ;AN000;SET INTERRUPT VECTOR
22 ;DS:DX = VECTOR TO INT HANDLER
23 ;AL = INTERRUPT NUMBER
24
25DOS_VERSION EQU 30H ;AN000;DETERMINE VERSION OF DOS
26 ;OUTPUT: AL=MAJOR, AH=MINOR VERSION NUMBER
27 ; BX AND CX SET TO ZER
28
29GET_VECTOR EQU 35H ;AN000;GET INTERRUPT VECTOR
30 ;AL = INTRRUPT NUMBER
31 ;OUTPUT: ES:BX = CONTENTS OF VECTOR
32
33WRITE EQU 40H ;AN000;WRITE TO A FILE OR DEVICE
34 ;BX = FILE HANDLE
35 ;DS:DX = ADDRESS OF DATA TO WRITE
36 ;CX = NUMBER OF BYTES TO WRITE
37
38IOCTL EQU 44H ;AN001;I/O CONTROL FOR DEVICES
39 ;DS:DX = DATA OR BUFFER
40 ;CX = NUMBER OF BYTES TO READ OR WRITE
41 ;BX = FILE HANDLE, OR,
42 ;BL = DRIVE NUMBER (0=DEFAULT,1=A,...)
43 ;AL = FUNCTION VALUE
44 ;OUTPUT: AX=NO. BYTES TRANSFERRED
45 ; OR ERROR CODE IS CY SET
46
47BLOCK_GENERIC EQU 0DH ;AN001;AL=SUBFUNCTION, FOR "IOCTL" ABOVE
48 ;BH=0, RES
49 ;BL=DRIVE NUM
50 ;CX=0843h=SET MEDIA ID
51 ;CX=0863h GET MEDIA ID ;AN001;
52 ;DS:DX=BUFFER (see A_MEDIA_ID_INFO STRUC)
53 ;CARRY SET ON ERROR (OLD STYLE BOOT RECORD)
54
55GET_CUR_DIR EQU 47H ;AN000;GET CURRENT DIRECTORY
56 ;DS:SI = POINTER TO 64 BYTE USER AREA
57 ;DL = DRIVE NUM (0=DEF, 1=A, ETC)
58 ;OUTPUT: DS:SI POINTS TO FULL PATH NAME
59
60RET_CD_EXIT EQU 4CH ;AN000;EXIT TO DOS, PASSING RETURN CODE
61 ;AL=RETURN CODE
62
63FINDFIRST EQU 4EH ;AN000;FIND FIRST MATCHING FILE
64 ;DS:DX = POINT TO ASCIIZ OF FILENAME
65 ;CX = ATTRIBUTE USED IN SEARCH
66 ;OUTPUT: CURRENT DTA WILL HAVE:
67 ; 21 BYTES - RESERVED
68 ; 1 BYTE - ATTRIBUTE
69 ; 2 BYTES - FILE'S TIME
70 ; 2 BYTES - FILE'S DATE
71 ; 2 BYTES - LOW WORD OF FILE SIZE
72 ; 2 BYTES - HIGH WORD OF FILE SIZE
73 ; 13 BYTES - NAME.EXT +0 OF FOUND FILE
74ATTR_NORMAL EQU 00H ;AN000;NON-SYS, NON-HIDDEN, NON-LABEL FILES
75ATTR_DIR EQU 10H ;AN000;DIRECTORY FILES ATTRIBUTE
76ATTR_VOLID EQU 08H ;AN000;VOLUME LABEL
77
78FINDNEXT EQU 4FH ;AN000;FIND NEXT MATCHING FILE
79 ;DTA = INFO LEFT FROM FIND FIRST/NEXT
80
81EXTERROR EQU 59H ;AN000;EXTENDED ERROR
82 ;BX = 0 (LEVEL NUMBER)
83 ;OUTPUT: AX=EXTENDED ERROR, BH=ERROR CLASS
84 ;BL=SUGGESTED ACTION, CH=LOCUS
85 ;DX,SI,DI,ES,CL,DS DESTROYED
86
87DBCS_ENV EQU 63H ;AN012;GET DBCS SUPPORT
88GET_DBCS_ENV EQU 0 ;AN012;SUBFUNCTION, GET POINTER TO DBCS VECTOR
89
90GSET_MEDIA_ID EQU 69H ;AN010;GET or SET MEDIA ID
91 ;BL=DRIVE NUMBER (0=DEFAULT, 1=A,...)
92 ;BH=0 (RESERVED)
93GET_ID EQU 0 ;AN010;AL=0 GET MEDIA ID
94SET_ID EQU 1 ;AN010;AL=1 SET MEDIA ID
95 ;DS:DX=@BUFFER (SEE A_MEDIA_ID_INFO STRUC)
96; END OF INT 21H DOS FUNCTIONS
97
98; MULTIPLEXOR (INT 2FH) FUNCTIONS: ;AN000;
99APPEND_CHECK EQU 0B700H ;AN006;SEE IF APPEND IS INSTALLED
100 ;OUTPUT-AL=0FFH IF INSTALLED
101APPEND_VERSION EQU 0B702H ;AN006;ASK IF DOS VERSION OF APPEND
102DOS_APPEND_VER EQU -1 ;AN006;OUTPUT-AX=-1 IF DOS VERSION OF APPEND
103
104GET_APPEND EQU 0B706H ;AN000;READ /X STATUS OF APPEND WITH INT 2FH
105 ;OUTPUT-BX= (SEE "APPEND_FLAGS" FOR DEFINITION)
106
107SET_APPEND EQU 0B707H ;AN000;SET /X TO APPEND WITH INT 2FH
108 ;INPUT-BX= (SEE "APPEND_FLAGS" FOR DEFINITION)
109
110 HEADER <LOCAL EQUATES> ;AN000;
111; LOCAL EQUATES
112
113BACK_SLASH EQU "\" ;AN000;PATH DELIMITER
114SLASH EQU "/" ;AN000;SWITCH INDICATOR
115NOPATH EQU 1 ;AN000;LENGTH OF EMPTY PATH, INCL NUL DELIMITER
116ZERO EQU 0 ;AN000;CLEARS REG, COMPARAND FOR ZERO VALUE
117DEFDRIVE EQU 0 ;AN000;IN GET_CUR_DIR, DL=0 MEANS DOS DEFAULT DR
118DRIVEA EQU "A" ;AN000;CORRESPONDS TO DRIVE 00H NUMERICALLY
119PERIOD EQU "." ;AN000;FILENAME EXTENSION DELIMITER
120BLANK EQU " " ;AN000;SPACE CHAR
121FULL_SEG_SIZE EQU -1 ;AN000;SCAN COUNT TO LOOK THRU ENTIRE SEG
122VEC_CTLBREAK EQU 23H ;AN000;NUMBER OF THE VECTOR POINTING TO CTL-BREAK
123VEC_CRITERR EQU 24H ;AN000;NUM. OF VECTOR OF CRITICAL ERROR HANDLER
124MIN_STACK EQU 512 ;AN000;MINIMUM REQUIRED STACK SIZE
125MAX_PATH EQU 64 ;AN000;MAX LENGTH PERMITTED FOR ANY PATH
126 PUBLIC MAX_PATH ;AN000;LET THE OTHERS IN ON THIS
127LEVEL_LIMIT EQU MAX_PATH/2 ;AN000;MAX PATH IS 64 CHAR;
128 ; REQUIRES MIN OF 2 CHAR PER PATH
129DASH_NUM EQU 3 ;AN000;NUMBER OF DASHES BETWEEN ELBO AND
130 ; SUBDIRECTORY NAME
131FN_SIZE EQU 12 ;AN000;NUMBER CHARS IN FILENAME,PERIOD,EXTENSION
132FLN_INDENT EQU 0 ;AN000;NUMBER OF BLANKS TO INDENT FILENAME
133 ; UNDER SUBDIRECTORY AFTER THE "DASH_NUM"
134NIBBLE EQU 4 ;AN000;NUMBER BITS IN HALF A BYTE
135LEVEL_0 EQU 0 ;AN000;FOR EXTENDED ERROR
136ABORT EQU 2 ;AN000;"ABORT" FROM CRITICAL ERROR HANDLER
137
138; EXTENDED ERROR NUMBERS
139NO_MORE_FILES EQU 18 ;AN000;"NO MORE FILES"
140INSUF_MEM EQU 8 ;AN000;"INSUFFICIENT MEMORY"
141INVDRSPEC EQU 15 ;AN000;"INVALID DRIVE SPECIFICATION"
142; = = = = = = = = = = = =
143; SYSTEM MESSAGE HANDLER
144GRAPHIC_MSGNUM EQU 7 ;AN002;NUMBER OF MESSAGE DEFINING GRAPHIC CHARS
145
146; SUBSET OF "SYSMSG.INC":
147MSG_SER_CLASS EQU 0 ;AN000;MSG CLASS FOR MESSAGE HANDLER MSGS
148EXT_ERR_CLASS EQU 1 ;AN000;MSG CLASS FOR EXTENDED ERROR MSGS
149PARSE_ERR_CLASS EQU 2 ;AN000;MSG CLASS FOR PARSE ERROR MSGS
150UTILITY_MSG_CLASS EQU 0FFH ;AN000;MSG CLASS FOR UTILTITY DEFINED MSGS
151
152; PRE-ASSIGNED FILE HANDLES:
153STDIN EQU 0 ;AN000;STANDARD INPUT
154STDOUT EQU 1 ;AN000;STANDARD OUTPUT
155STDERR EQU 2 ;AN000;STANDART ERROR
156
157NUL EQU 0 ;AN000;DELIMITER TO ANY ASCIIZ STRING
158CR EQU 0DH ;AN000;CARRIAGE RETURN
159LF EQU 0AH ;AN000;LINE FEED
160; = = = = = = = = = = = =
161; ERRORLEVEL RETURN CODES, PASSED BACK TO DOS ON EXIT
162EXOK EQU 0 ;AN000;NORMAL COMPLETION
163EXERR EQU 1 ;AN000;I/O ERROR,
164 ; LOAD MESSAGE FAILURE
165 ; BAD PARMS:
166 ; INVALID DRIVE
167 ; INVALID PATH
168EXABORT EQU 1 ;AN000;CRITICAL ERROR HANDLER ABORTED
169EXVER EQU 2 ;AN000;BAD DOS VERSION
170EXCTL EQU 3 ;AN000;CONTROL BREAK
171
172; = = = = = = = = = = = =
173 HEADER <STRUC OF CONTROL BLOCKS> ;AN000;
174; CONTROL BLOCKS
175
176FRAME STRUC ;AN000;DYNAMIC VARIABLES ALLOCATED TO THE STACK
177FRAM_DTA_RES DB 21 DUP(?) ;AN000;RESERVED FOR FIND NEXT CALLS
178
179FRAM_CHAR DB ? ;AN000;CONTAINS ONE OF THESE:
180; "GRAF_ELBO" - THIS IS THE LAST SUBDIRECTORY
181; "GRAF_TEE" - THERE IS ANOTHER SUBDIRECTORY AFTER THIS ONE
182; "GRAF_BLANK" - NO MORE SUBDIRECTORIES
183
184FRAM_CURR_PATH DB MAX_PATH+2 DUP(?) ;AN000;CURRENT PATH TO THIS LEVEL OF SUBDIR
185
186FRAM_BP DW ? ;AN000;SAVES CALLER'S BP REG
187FRAM_RET DW ? ;AN000;RETURN ADDRESS
188FRAME ENDS ;AN000;
189
190WA_SIZE EQU FRAM_BP - FRAM_DTA_RES ;AN000;SIZE OF STACK WORKAREA
191; = = = = = = = = = = = =
192;THIS MESSAGE DESCRIPTOR CONTROL BLOCK IS GENERATED, ONE PER MESSAGE,
193;TO DEFINE THE SEVERAL PARAMETERS THAT ARE EXPECTED TO BE PASSED IN
194;CERTAIN REGISTERS WHEN THE SYSDISPMSG FUNCTION IS TO BE INVOKED.
195
196MSG_DESC STRUC ;AN000;
197MSG_NUM DW ? ;AN000;MESSAGE NUMBER (TO AX)
198MSG_HANDLE DW ? ;AN000;HANDLE OF OUTPUT DEVICE (TO BX)
199MSG_SUBLIST DW ? ;AN000;POINTER TO SUBLIST (TO SI)
200MSG_COUNT DW ? ;AN000;SUBSTITUTION COUNT (TO CX)
201MSG_CLASS DW ? ;AN000;MESSAGE CLASS (IN HIGH BYTE, TO DH)
202 ; LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL)
203MSG_DESC ENDS ;AN000;
204; = = = = = = = = = = = =
205SUBLIST STRUC ;AN000;
206SUB_SIZE DB ? ;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST)
207SUB_RES DB ? ;AN000;RESERVED
208 ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD
209SUB_VALUE DW ? ;AN000;TIME, DATE, OR PTR TO DATA ITEM
210SUB_VALUE_SEG DW ? ;AN000;SEG ID OF PTR
211 ;(ABOVE FIELD MUST BE FILLED AT EXECUTION TIME
212 ; IF THIS IS A .COM FILE)
213SUB_ID DB ? ;AN000;N OF %N
214SUB_FLAGS DB ? ;AN000;DATA TYPE FLAGS
215SUB_MAX_WIDTH DB ? ;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED)
216SUB_MIN_WIDTH DB ? ;AN000;MINIMUM FIELD WIDTH
217SUB_PAD_CHAR DB ? ;AN000;CHARACTER FOR PAD FIELD
218SUBLIST ENDS ;AN000;
219; = = = = = = = = = = = =
220A_MEDIA_ID_INFO STRUC ;AN001;USED IN GET_MEDIA_ID IN BLOCK GENERIC IOCTL
221MI_LEVEL DW 0 ;AN001;INFO LEVEL
222MI_SERIAL DD 0 ;AN001;SERIAL #
223MI_LABEL DB 11 DUP (' ') ;AN001;VOLUME LABEL
224MI_SYSTEM DB 8 DUP (' ') ;AN001;FILE SYSTEM TYPE
225A_MEDIA_ID_INFO ENDS ;AN001;
226; = = = = = = = = = = = =
227
228;END OF TREEQU.INC
229 \ No newline at end of file