diff options
Diffstat (limited to 'v4.0/src/CMD/TREE/TREEQU.INC')
| -rw-r--r-- | v4.0/src/CMD/TREE/TREEQU.INC | 229 |
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 | |||
| 7 | SELECT_DISK EQU 0EH ;AN000;SETS DEFAULT DRIVE | ||
| 8 | ; DL=DRIVE NUMBER (0=A,1=B) | ||
| 9 | ;OUTPUT: AL=NUMBER OF DRIVES (MIN 5) ??? | ||
| 10 | |||
| 11 | CHDIR EQU 3BH ;AN000;CHANGE CURRENT DIRECTORY | ||
| 12 | ;DS:DX = POINTER TO ASCIIZ STRING | ||
| 13 | |||
| 14 | CURRDISK EQU 19H ;AN000;GET CURRENT DEFAULT DRIVE | ||
| 15 | ;OUTPUT: AL = CURRENT DRIVE | ||
| 16 | ; 0=A,1=B,ETC. | ||
| 17 | |||
| 18 | SET_DTA EQU 1AH ;AN000;SET DISK TRANSFER ADDRESS | ||
| 19 | ; DS:DX = DISK TRANSFER ADDRESS | ||
| 20 | |||
| 21 | SET_VECTOR EQU 25H ;AN000;SET INTERRUPT VECTOR | ||
| 22 | ;DS:DX = VECTOR TO INT HANDLER | ||
| 23 | ;AL = INTERRUPT NUMBER | ||
| 24 | |||
| 25 | DOS_VERSION EQU 30H ;AN000;DETERMINE VERSION OF DOS | ||
| 26 | ;OUTPUT: AL=MAJOR, AH=MINOR VERSION NUMBER | ||
| 27 | ; BX AND CX SET TO ZER | ||
| 28 | |||
| 29 | GET_VECTOR EQU 35H ;AN000;GET INTERRUPT VECTOR | ||
| 30 | ;AL = INTRRUPT NUMBER | ||
| 31 | ;OUTPUT: ES:BX = CONTENTS OF VECTOR | ||
| 32 | |||
| 33 | WRITE 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 | |||
| 38 | IOCTL 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 | |||
| 47 | BLOCK_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 | |||
| 55 | GET_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 | |||
| 60 | RET_CD_EXIT EQU 4CH ;AN000;EXIT TO DOS, PASSING RETURN CODE | ||
| 61 | ;AL=RETURN CODE | ||
| 62 | |||
| 63 | FINDFIRST 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 | ||
| 74 | ATTR_NORMAL EQU 00H ;AN000;NON-SYS, NON-HIDDEN, NON-LABEL FILES | ||
| 75 | ATTR_DIR EQU 10H ;AN000;DIRECTORY FILES ATTRIBUTE | ||
| 76 | ATTR_VOLID EQU 08H ;AN000;VOLUME LABEL | ||
| 77 | |||
| 78 | FINDNEXT EQU 4FH ;AN000;FIND NEXT MATCHING FILE | ||
| 79 | ;DTA = INFO LEFT FROM FIND FIRST/NEXT | ||
| 80 | |||
| 81 | EXTERROR 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 | |||
| 87 | DBCS_ENV EQU 63H ;AN012;GET DBCS SUPPORT | ||
| 88 | GET_DBCS_ENV EQU 0 ;AN012;SUBFUNCTION, GET POINTER TO DBCS VECTOR | ||
| 89 | |||
| 90 | GSET_MEDIA_ID EQU 69H ;AN010;GET or SET MEDIA ID | ||
| 91 | ;BL=DRIVE NUMBER (0=DEFAULT, 1=A,...) | ||
| 92 | ;BH=0 (RESERVED) | ||
| 93 | GET_ID EQU 0 ;AN010;AL=0 GET MEDIA ID | ||
| 94 | SET_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; | ||
| 99 | APPEND_CHECK EQU 0B700H ;AN006;SEE IF APPEND IS INSTALLED | ||
| 100 | ;OUTPUT-AL=0FFH IF INSTALLED | ||
| 101 | APPEND_VERSION EQU 0B702H ;AN006;ASK IF DOS VERSION OF APPEND | ||
| 102 | DOS_APPEND_VER EQU -1 ;AN006;OUTPUT-AX=-1 IF DOS VERSION OF APPEND | ||
| 103 | |||
| 104 | GET_APPEND EQU 0B706H ;AN000;READ /X STATUS OF APPEND WITH INT 2FH | ||
| 105 | ;OUTPUT-BX= (SEE "APPEND_FLAGS" FOR DEFINITION) | ||
| 106 | |||
| 107 | SET_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 | |||
| 113 | BACK_SLASH EQU "\" ;AN000;PATH DELIMITER | ||
| 114 | SLASH EQU "/" ;AN000;SWITCH INDICATOR | ||
| 115 | NOPATH EQU 1 ;AN000;LENGTH OF EMPTY PATH, INCL NUL DELIMITER | ||
| 116 | ZERO EQU 0 ;AN000;CLEARS REG, COMPARAND FOR ZERO VALUE | ||
| 117 | DEFDRIVE EQU 0 ;AN000;IN GET_CUR_DIR, DL=0 MEANS DOS DEFAULT DR | ||
| 118 | DRIVEA EQU "A" ;AN000;CORRESPONDS TO DRIVE 00H NUMERICALLY | ||
| 119 | PERIOD EQU "." ;AN000;FILENAME EXTENSION DELIMITER | ||
| 120 | BLANK EQU " " ;AN000;SPACE CHAR | ||
| 121 | FULL_SEG_SIZE EQU -1 ;AN000;SCAN COUNT TO LOOK THRU ENTIRE SEG | ||
| 122 | VEC_CTLBREAK EQU 23H ;AN000;NUMBER OF THE VECTOR POINTING TO CTL-BREAK | ||
| 123 | VEC_CRITERR EQU 24H ;AN000;NUM. OF VECTOR OF CRITICAL ERROR HANDLER | ||
| 124 | MIN_STACK EQU 512 ;AN000;MINIMUM REQUIRED STACK SIZE | ||
| 125 | MAX_PATH EQU 64 ;AN000;MAX LENGTH PERMITTED FOR ANY PATH | ||
| 126 | PUBLIC MAX_PATH ;AN000;LET THE OTHERS IN ON THIS | ||
| 127 | LEVEL_LIMIT EQU MAX_PATH/2 ;AN000;MAX PATH IS 64 CHAR; | ||
| 128 | ; REQUIRES MIN OF 2 CHAR PER PATH | ||
| 129 | DASH_NUM EQU 3 ;AN000;NUMBER OF DASHES BETWEEN ELBO AND | ||
| 130 | ; SUBDIRECTORY NAME | ||
| 131 | FN_SIZE EQU 12 ;AN000;NUMBER CHARS IN FILENAME,PERIOD,EXTENSION | ||
| 132 | FLN_INDENT EQU 0 ;AN000;NUMBER OF BLANKS TO INDENT FILENAME | ||
| 133 | ; UNDER SUBDIRECTORY AFTER THE "DASH_NUM" | ||
| 134 | NIBBLE EQU 4 ;AN000;NUMBER BITS IN HALF A BYTE | ||
| 135 | LEVEL_0 EQU 0 ;AN000;FOR EXTENDED ERROR | ||
| 136 | ABORT EQU 2 ;AN000;"ABORT" FROM CRITICAL ERROR HANDLER | ||
| 137 | |||
| 138 | ; EXTENDED ERROR NUMBERS | ||
| 139 | NO_MORE_FILES EQU 18 ;AN000;"NO MORE FILES" | ||
| 140 | INSUF_MEM EQU 8 ;AN000;"INSUFFICIENT MEMORY" | ||
| 141 | INVDRSPEC EQU 15 ;AN000;"INVALID DRIVE SPECIFICATION" | ||
| 142 | ; = = = = = = = = = = = = | ||
| 143 | ; SYSTEM MESSAGE HANDLER | ||
| 144 | GRAPHIC_MSGNUM EQU 7 ;AN002;NUMBER OF MESSAGE DEFINING GRAPHIC CHARS | ||
| 145 | |||
| 146 | ; SUBSET OF "SYSMSG.INC": | ||
| 147 | MSG_SER_CLASS EQU 0 ;AN000;MSG CLASS FOR MESSAGE HANDLER MSGS | ||
| 148 | EXT_ERR_CLASS EQU 1 ;AN000;MSG CLASS FOR EXTENDED ERROR MSGS | ||
| 149 | PARSE_ERR_CLASS EQU 2 ;AN000;MSG CLASS FOR PARSE ERROR MSGS | ||
| 150 | UTILITY_MSG_CLASS EQU 0FFH ;AN000;MSG CLASS FOR UTILTITY DEFINED MSGS | ||
| 151 | |||
| 152 | ; PRE-ASSIGNED FILE HANDLES: | ||
| 153 | STDIN EQU 0 ;AN000;STANDARD INPUT | ||
| 154 | STDOUT EQU 1 ;AN000;STANDARD OUTPUT | ||
| 155 | STDERR EQU 2 ;AN000;STANDART ERROR | ||
| 156 | |||
| 157 | NUL EQU 0 ;AN000;DELIMITER TO ANY ASCIIZ STRING | ||
| 158 | CR EQU 0DH ;AN000;CARRIAGE RETURN | ||
| 159 | LF EQU 0AH ;AN000;LINE FEED | ||
| 160 | ; = = = = = = = = = = = = | ||
| 161 | ; ERRORLEVEL RETURN CODES, PASSED BACK TO DOS ON EXIT | ||
| 162 | EXOK EQU 0 ;AN000;NORMAL COMPLETION | ||
| 163 | EXERR EQU 1 ;AN000;I/O ERROR, | ||
| 164 | ; LOAD MESSAGE FAILURE | ||
| 165 | ; BAD PARMS: | ||
| 166 | ; INVALID DRIVE | ||
| 167 | ; INVALID PATH | ||
| 168 | EXABORT EQU 1 ;AN000;CRITICAL ERROR HANDLER ABORTED | ||
| 169 | EXVER EQU 2 ;AN000;BAD DOS VERSION | ||
| 170 | EXCTL EQU 3 ;AN000;CONTROL BREAK | ||
| 171 | |||
| 172 | ; = = = = = = = = = = = = | ||
| 173 | HEADER <STRUC OF CONTROL BLOCKS> ;AN000; | ||
| 174 | ; CONTROL BLOCKS | ||
| 175 | |||
| 176 | FRAME STRUC ;AN000;DYNAMIC VARIABLES ALLOCATED TO THE STACK | ||
| 177 | FRAM_DTA_RES DB 21 DUP(?) ;AN000;RESERVED FOR FIND NEXT CALLS | ||
| 178 | |||
| 179 | FRAM_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 | |||
| 184 | FRAM_CURR_PATH DB MAX_PATH+2 DUP(?) ;AN000;CURRENT PATH TO THIS LEVEL OF SUBDIR | ||
| 185 | |||
| 186 | FRAM_BP DW ? ;AN000;SAVES CALLER'S BP REG | ||
| 187 | FRAM_RET DW ? ;AN000;RETURN ADDRESS | ||
| 188 | FRAME ENDS ;AN000; | ||
| 189 | |||
| 190 | WA_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 | |||
| 196 | MSG_DESC STRUC ;AN000; | ||
| 197 | MSG_NUM DW ? ;AN000;MESSAGE NUMBER (TO AX) | ||
| 198 | MSG_HANDLE DW ? ;AN000;HANDLE OF OUTPUT DEVICE (TO BX) | ||
| 199 | MSG_SUBLIST DW ? ;AN000;POINTER TO SUBLIST (TO SI) | ||
| 200 | MSG_COUNT DW ? ;AN000;SUBSTITUTION COUNT (TO CX) | ||
| 201 | MSG_CLASS DW ? ;AN000;MESSAGE CLASS (IN HIGH BYTE, TO DH) | ||
| 202 | ; LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL) | ||
| 203 | MSG_DESC ENDS ;AN000; | ||
| 204 | ; = = = = = = = = = = = = | ||
| 205 | SUBLIST STRUC ;AN000; | ||
| 206 | SUB_SIZE DB ? ;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST) | ||
| 207 | SUB_RES DB ? ;AN000;RESERVED | ||
| 208 | ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD | ||
| 209 | SUB_VALUE DW ? ;AN000;TIME, DATE, OR PTR TO DATA ITEM | ||
| 210 | SUB_VALUE_SEG DW ? ;AN000;SEG ID OF PTR | ||
| 211 | ;(ABOVE FIELD MUST BE FILLED AT EXECUTION TIME | ||
| 212 | ; IF THIS IS A .COM FILE) | ||
| 213 | SUB_ID DB ? ;AN000;N OF %N | ||
| 214 | SUB_FLAGS DB ? ;AN000;DATA TYPE FLAGS | ||
| 215 | SUB_MAX_WIDTH DB ? ;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED) | ||
| 216 | SUB_MIN_WIDTH DB ? ;AN000;MINIMUM FIELD WIDTH | ||
| 217 | SUB_PAD_CHAR DB ? ;AN000;CHARACTER FOR PAD FIELD | ||
| 218 | SUBLIST ENDS ;AN000; | ||
| 219 | ; = = = = = = = = = = = = | ||
| 220 | A_MEDIA_ID_INFO STRUC ;AN001;USED IN GET_MEDIA_ID IN BLOCK GENERIC IOCTL | ||
| 221 | MI_LEVEL DW 0 ;AN001;INFO LEVEL | ||
| 222 | MI_SERIAL DD 0 ;AN001;SERIAL # | ||
| 223 | MI_LABEL DB 11 DUP (' ') ;AN001;VOLUME LABEL | ||
| 224 | MI_SYSTEM DB 8 DUP (' ') ;AN001;FILE SYSTEM TYPE | ||
| 225 | A_MEDIA_ID_INFO ENDS ;AN001; | ||
| 226 | ; = = = = = = = = = = = = | ||
| 227 | |||
| 228 | ;END OF TREEQU.INC | ||
| 229 | \ No newline at end of file | ||