diff options
| author | 2024-04-25 21:24:10 +0100 | |
|---|---|---|
| committer | 2024-04-25 22:32:27 +0000 | |
| commit | 2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch) | |
| tree | 80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/CMD/COMMAND/TDATA.ASM | |
| parent | Merge pull request #430 from jpbaltazar/typoptbr (diff) | |
| download | ms-dos-main.tar.gz ms-dos-main.tar.xz ms-dos-main.zip | |
Diffstat (limited to 'v4.0/src/CMD/COMMAND/TDATA.ASM')
| -rw-r--r-- | v4.0/src/CMD/COMMAND/TDATA.ASM | 777 |
1 files changed, 777 insertions, 0 deletions
diff --git a/v4.0/src/CMD/COMMAND/TDATA.ASM b/v4.0/src/CMD/COMMAND/TDATA.ASM new file mode 100644 index 0000000..c80c588 --- /dev/null +++ b/v4.0/src/CMD/COMMAND/TDATA.ASM | |||
| @@ -0,0 +1,777 @@ | |||
| 1 | page 80,132 | ||
| 2 | ; SCCSID = @(#)tdata.asm 4.3 85/05/17 | ||
| 3 | ; SCCSID = @(#)tdata.asm 4.3 85/05/17 | ||
| 4 | TITLE COMMAND Transient Initialized DATA | ||
| 5 | |||
| 6 | ; MODIFICATION HISTORY | ||
| 7 | ; | ||
| 8 | ; EE 10-20-83 Changed the drive check indicator bytes (DCIB's) in | ||
| 9 | ; COMTAB to be a flag byte in which bit 0 is now the | ||
| 10 | ; DCIB(bit) and bit 1 is on if the command can take | ||
| 11 | ; switches. | ||
| 12 | |||
| 13 | fmt macro name,string,args | ||
| 14 | local a | ||
| 15 | a db string | ||
| 16 | PUBLIC name | ||
| 17 | name dw offset trangroup:a | ||
| 18 | irp val,<args> | ||
| 19 | dw offset trangroup:val | ||
| 20 | endm | ||
| 21 | endm | ||
| 22 | |||
| 23 | btab macro b,sym | ||
| 24 | db b | ||
| 25 | dw offset trangroup:sym | ||
| 26 | endm | ||
| 27 | |||
| 28 | .xlist | ||
| 29 | .xcref | ||
| 30 | INCLUDE comsw.asm ;AC000; | ||
| 31 | INCLUDE comseg.asm | ||
| 32 | INCLUDE EA.inc ;AN030; | ||
| 33 | INCLUDE dirent.inc ;AN042; | ||
| 34 | .list | ||
| 35 | .cref | ||
| 36 | |||
| 37 | BREAK MACRO subtitle | ||
| 38 | SUBTTL subtitle | ||
| 39 | PAGE | ||
| 40 | ENDM | ||
| 41 | |||
| 42 | ; | ||
| 43 | ; WARNING: DO NOT INCLUDE DOSSYM.INC BECAUSE IT DESTROYS THE MACRO 'FMT' THAT | ||
| 44 | ; has been defined above - RS. | ||
| 45 | ; | ||
| 46 | INCLUDE CURDIR.INC | ||
| 47 | INCLUDE ERROR.INC | ||
| 48 | INCLUDE ifequ.asm | ||
| 49 | INCLUDE comequ.asm | ||
| 50 | |||
| 51 | TRANSPACE SEGMENT PUBLIC BYTE ;AC000; | ||
| 52 | EXTRN arg_buf:BYTE | ||
| 53 | EXTRN bwdbuf:byte | ||
| 54 | EXTRN bytes_free:WORD | ||
| 55 | EXTRN charbuf:byte | ||
| 56 | EXTRN copy_Num:WORD | ||
| 57 | EXTRN cpyflag:BYTE | ||
| 58 | EXTRN DATE_OUTPUT:BYTE ;AC000; | ||
| 59 | EXTRN Dir_Num:WORD | ||
| 60 | EXTRN DRIVE_OUTPUT:BYTE ;AC000; | ||
| 61 | EXTRN file_size_high:WORD | ||
| 62 | EXTRN file_size_low:WORD | ||
| 63 | EXTRN major_ver_num:WORD | ||
| 64 | EXTRN minor_ver_num:WORD | ||
| 65 | EXTRN one_char_val:BYTE | ||
| 66 | EXTRN PARSE1_OUTPUT:BYTE ;AC000; | ||
| 67 | EXTRN srcbuf:byte | ||
| 68 | EXTRN string_ptr_2:WORD | ||
| 69 | EXTRN system_cpage:word | ||
| 70 | EXTRN TIME_OUTPUT:BYTE ;AC000; | ||
| 71 | EXTRN vol_drv:BYTE | ||
| 72 | EXTRN vol_serial:dword ;AN000; | ||
| 73 | TRANSPACE ENDS | ||
| 74 | |||
| 75 | TRANCODE SEGMENT PUBLIC BYTE ;AC000; | ||
| 76 | EXTRN $CALL:NEAR | ||
| 77 | EXTRN $CHDIR:NEAR | ||
| 78 | EXTRN $EXIT:NEAR | ||
| 79 | EXTRN $FOR:NEAR | ||
| 80 | EXTRN $IF:NEAR | ||
| 81 | EXTRN $MKDIR:NEAR | ||
| 82 | EXTRN $RMDIR:NEAR | ||
| 83 | EXTRN ADD_NAME_TO_ENVIRONMENT:NEAR | ||
| 84 | EXTRN ADD_PROMPT:NEAR | ||
| 85 | EXTRN build_dir_for_prompt:near | ||
| 86 | EXTRN CATALOG:NEAR | ||
| 87 | EXTRN CHCP:NEAR | ||
| 88 | EXTRN CLS:NEAR | ||
| 89 | EXTRN CNTRLC:NEAR | ||
| 90 | EXTRN COPY:NEAR | ||
| 91 | EXTRN CRENAME:NEAR | ||
| 92 | EXTRN CRLF2:NEAR | ||
| 93 | EXTRN CTIME:NEAR | ||
| 94 | EXTRN CTTY:NEAR | ||
| 95 | EXTRN DATE:NEAR | ||
| 96 | EXTRN ECHO:NEAR | ||
| 97 | EXTRN ERASE:NEAR | ||
| 98 | EXTRN GOTO:NEAR | ||
| 99 | EXTRN IFERLEV:NEAR | ||
| 100 | EXTRN IFEXISTS:NEAR | ||
| 101 | EXTRN IFNOT:NEAR | ||
| 102 | EXTRN PATH:NEAR | ||
| 103 | EXTRN PAUSE:NEAR | ||
| 104 | EXTRN PRINT_B:NEAR | ||
| 105 | EXTRN PRINT_BACK:NEAR | ||
| 106 | EXTRN PRINT_DATE:NEAR | ||
| 107 | EXTRN PRINT_CHAR:NEAR | ||
| 108 | EXTRN PRINT_DRIVE:NEAR | ||
| 109 | EXTRN PRINT_EQ:NEAR | ||
| 110 | EXTRN PRINT_ESC:NEAR | ||
| 111 | EXTRN PRINT_G:NEAR | ||
| 112 | EXTRN PRINT_L:NEAR | ||
| 113 | EXTRN PRINT_TIME:NEAR | ||
| 114 | EXTRN PRINT_VERSION:NEAR | ||
| 115 | EXTRN SHIFT:NEAR | ||
| 116 | EXTRN TCOMMAND:NEAR | ||
| 117 | EXTRN TRUENAME:NEAR ;AN000; | ||
| 118 | EXTRN TYPEFIL:NEAR | ||
| 119 | EXTRN VERSION:NEAR | ||
| 120 | EXTRN VOLUME:NEAR | ||
| 121 | EXTRN VERIFY:NEAR | ||
| 122 | ; | ||
| 123 | ; WARNING!!! No code may appear after this label!!!! | ||
| 124 | ; | ||
| 125 | PUBLIC TranCodeLast | ||
| 126 | TranCodeLast LABEL BYTE | ||
| 127 | TRANCODE ENDS | ||
| 128 | |||
| 129 | ; Data for transient portion | ||
| 130 | |||
| 131 | TRANDATA SEGMENT PUBLIC BYTE | ||
| 132 | |||
| 133 | PUBLIC accden_ptr ;AN000; | ||
| 134 | PUBLIC acrlf_ptr ;AN000; | ||
| 135 | PUBLIC arg_buf_ptr ;AN000; | ||
| 136 | PUBLIC badbat_ptr ;AN000; | ||
| 137 | PUBLIC badcd_ptr ;AN000; | ||
| 138 | PUBLIC badCPmes_ptr ;AN000; | ||
| 139 | PUBLIC badcurdrv ;AN000; | ||
| 140 | PUBLIC baddat_ptr ;AN000; | ||
| 141 | PUBLIC baddev_ptr ;AN000; | ||
| 142 | PUBLIC baddrv_ptr ;AN000; | ||
| 143 | PUBLIC badlab_ptr ;AN000; | ||
| 144 | PUBLIC badmkd_ptr ;AN000; | ||
| 145 | PUBLIC badnam_ptr ;AN000; | ||
| 146 | PUBLIC bad_on_off_ptr ;AN000; | ||
| 147 | PUBLIC badPmes_ptr ;AN000; | ||
| 148 | PUBLIC badrmd_ptr ;AN000; | ||
| 149 | PUBLIC badtim_ptr ;AN000; | ||
| 150 | PUBLIC batext | ||
| 151 | PUBLIC bytmes_ptr ;AN000; | ||
| 152 | PUBLIC CLSSTRING | ||
| 153 | PUBLIC comext | ||
| 154 | PUBLIC COMSPECSTR | ||
| 155 | PUBLIC COMTAB | ||
| 156 | PUBLIC copied_ptr ;AN000; | ||
| 157 | PUBLIC cp_active_ptr ;AN000; | ||
| 158 | PUBLIC cp_not_all_ptr ;AN000; | ||
| 159 | PUBLIC cp_not_set_ptr ;AN000; | ||
| 160 | PUBLIC ctrlcmes_ptr ;AN000; | ||
| 161 | PUBLIC curdat_mo_day ;AN000; | ||
| 162 | PUBLIC curdat_ptr ;AN000; | ||
| 163 | PUBLIC curdat_yr ;AN000; | ||
| 164 | PUBLIC curtim_hr_min ;AN000; | ||
| 165 | PUBLIC curtim_ptr ;AN000; | ||
| 166 | PUBLIC curtim_sec_hn ;AN000; | ||
| 167 | PUBLIC dback_ptr ;AN000; | ||
| 168 | PUBLIC del_Y_N_ptr ;AN000; | ||
| 169 | PUBLIC devwmes_ptr ;AN000; | ||
| 170 | PUBLIC dirdattim_ptr ;AN000; | ||
| 171 | PUBLIC dirdat_mo_day ;AN000; | ||
| 172 | PUBLIC dirdat_yr ;AN000; | ||
| 173 | PUBLIC dirhead_ptr ;AN000; | ||
| 174 | PUBLIC dirmes_ptr ;AN000; | ||
| 175 | PUBLIC dirtim_hr_min ;AN000; | ||
| 176 | PUBLIC dirtim_sec_hn ;AN000; | ||
| 177 | PUBLIC DIR_W_SYN ;AN000; | ||
| 178 | PUBLIC disp_file_size_ptr ;AN000; | ||
| 179 | PUBLIC dmes_ptr ;AN000; | ||
| 180 | PUBLIC echomes_ptr ;AN000; | ||
| 181 | PUBLIC enverr_ptr ;AN000; | ||
| 182 | PUBLIC eurdat_ptr ;AN000; | ||
| 183 | PUBLIC exeext | ||
| 184 | PUBLIC extend_buf_off ;AN000; | ||
| 185 | PUBLIC extend_buf_ptr ;AN000; | ||
| 186 | PUBLIC extend_buf_seg ;AN000; | ||
| 187 | PUBLIC extend_buf_sub ;AN000; | ||
| 188 | PUBLIC file_name_ptr ;AN000; | ||
| 189 | PUBLIC fornestmes_ptr ;AN000; | ||
| 190 | PUBLIC fuldir_ptr ;AN000; | ||
| 191 | PUBLIC IFTAB | ||
| 192 | PUBLIC inBdev_ptr ;AN000; | ||
| 193 | PUBLIC inornot_ptr ;AN000; | ||
| 194 | PUBLIC Inv_code_page ;AN000; | ||
| 195 | PUBLIC inval_path_ptr ;AN000; | ||
| 196 | PUBLIC japdat_ptr ;AN000; | ||
| 197 | PUBLIC Losterr_ptr ;AN000; | ||
| 198 | PUBLIC md_exists_ptr ;AN006; | ||
| 199 | PUBLIC msg_cont_flag ;AN000; | ||
| 200 | PUBLIC msg_disp_class ;AN000; | ||
| 201 | PUBLIC needbat_ptr ;AN000; | ||
| 202 | PUBLIC newdat_format ;AN000; | ||
| 203 | PUBLIC newdat_ptr ;AN000; | ||
| 204 | PUBLIC newtim_ptr ;AN000; | ||
| 205 | PUBLIC NLSFUNC_ptr ;AN000; | ||
| 206 | PUBLIC nospace_ptr ;AN000; | ||
| 207 | PUBLIC no_values ;AN000; | ||
| 208 | PUBLIC nulpath_ptr ;AN000; | ||
| 209 | PUBLIC offmes_ptr ;AN000; | ||
| 210 | PUBLIC onmes_ptr ;AN000; | ||
| 211 | PUBLIC overwr_ptr ;AN000; | ||
| 212 | PUBLIC PARSE_BREAK ;AN000; | ||
| 213 | PUBLIC PARSE_CHCP ;AN000; | ||
| 214 | PUBLIC PARSE_CHDIR ;AN000; | ||
| 215 | PUBLIC PARSE_CTTY ;AN000; | ||
| 216 | PUBLIC PARSE_DATE ;AN000; | ||
| 217 | PUBLIC PARSE_DIR ;AN000; | ||
| 218 | PUBLIC PARSE_ERASE ;AN000; | ||
| 219 | PUBLIC PARSE_MRDIR ;AN000; | ||
| 220 | PUBLIC PARSE_RENAME ;AN000; | ||
| 221 | PUBLIC PARSE_TIME ;AN000; | ||
| 222 | PUBLIC PARSE_VOL ;AN000; | ||
| 223 | PUBLIC PATH_TEXT | ||
| 224 | PUBLIC pausemes_ptr ;AN000; | ||
| 225 | PUBLIC pipeEmes_ptr ;AN000; | ||
| 226 | PUBLIC promptdat_moday ;AN000; | ||
| 227 | PUBLIC promptdat_ptr ;AN000; | ||
| 228 | PUBLIC promptdat_yr ;AN000; | ||
| 229 | PUBLIC PROMPT_TABLE | ||
| 230 | PUBLIC PROMPT_TEXT | ||
| 231 | PUBLIC promtim_hr_min ;AN000; | ||
| 232 | PUBLIC promtim_ptr ;AN000; | ||
| 233 | PUBLIC promtim_sec_hn ;AN000; | ||
| 234 | PUBLIC renerr_ptr ;AN000; | ||
| 235 | PUBLIC SLASH_P_SYN ;AN000; | ||
| 236 | PUBLIC string_buf_ptr ;AN000; | ||
| 237 | PUBLIC suremes_ptr ;AN000; | ||
| 238 | PUBLIC switch_list | ||
| 239 | PUBLIC syntmes_ptr ;AN000; | ||
| 240 | PUBLIC tab_ptr ;AN000; | ||
| 241 | PUBLIC TRANDATAEND | ||
| 242 | PUBLIC usadat_ptr ;AN000; | ||
| 243 | PUBLIC verimes_ptr ;AN000; | ||
| 244 | PUBLIC vermes_ptr ;AN000; | ||
| 245 | PUBLIC volmes_ptr ;AN000; | ||
| 246 | PUBLIC volmes_ptr_2 ;AN000; | ||
| 247 | PUBLIC volsermes_ptr ;AN000; | ||
| 248 | PUBLIC WEEKTAB | ||
| 249 | PUBLIC xa_cp ;AN030; | ||
| 250 | |||
| 251 | INCLUDE tranmsg.asm | ||
| 252 | |||
| 253 | CLSSTRING DB 4,01BH,"[2J" ; ANSI Clear screen | ||
| 254 | |||
| 255 | PROMPT_TABLE LABEL BYTE | ||
| 256 | btab "B",Print_B | ||
| 257 | btab "D",PRINT_DATE | ||
| 258 | btab "E",PRINT_ESC | ||
| 259 | btab "G",PRINT_G | ||
| 260 | btab "H",PRINT_BACK | ||
| 261 | btab "L",PRINT_L | ||
| 262 | btab "N",PRINT_DRIVE | ||
| 263 | btab "P",build_dir_for_prompt | ||
| 264 | btab "Q",PRINT_EQ | ||
| 265 | btab "T",PRINT_TIME | ||
| 266 | btab "V",PRINT_VERSION | ||
| 267 | btab "_",CRLF2 | ||
| 268 | btab "$",PRINT_CHAR | ||
| 269 | DB 0 ; NUL TERMINATED | ||
| 270 | |||
| 271 | IFTAB LABEL BYTE ; Table of IF conditionals | ||
| 272 | DB 3,"NOT" ; First byte is count | ||
| 273 | DW OFFSET TRANGROUP:IFNOT | ||
| 274 | DB 10,"ERRORLEVEL" | ||
| 275 | DW OFFSET TRANGROUP:IFERLEV | ||
| 276 | DB 5,"EXIST" | ||
| 277 | DW OFFSET TRANGROUP:IFEXISTS | ||
| 278 | DB 0 | ||
| 279 | |||
| 280 | ; Table for internal command names | ||
| 281 | COMTAB DB 3,"DIR",fSwitchAllowed+fCheckDrive | ||
| 282 | DW OFFSET TRANGROUP:CATALOG ; In TCMD1.ASM | ||
| 283 | DB 4,"CALL",fSwitchAllowed | ||
| 284 | DW OFFSET TRANGROUP:$CALL ; In TBATCH2.ASM | ||
| 285 | DB 4,"CHCP",fSwitchAllowed | ||
| 286 | DW OFFSET TRANGROUP:CHCP ; In TCMD2B.ASM | ||
| 287 | DB 6,"RENAME",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 288 | DW OFFSET TRANGROUP:CRENAME ; In TCMD1.ASM | ||
| 289 | DB 3,"REN",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 290 | DW OFFSET TRANGROUP:CRENAME ; In TCMD1.ASM | ||
| 291 | DB 5,"ERASE",fSwitchAllowed+fCheckDrive | ||
| 292 | DW OFFSET TRANGROUP:ERASE ; In TCMD1.ASM | ||
| 293 | DB 3,"DEL",fSwitchAllowed+fCheckDrive | ||
| 294 | DW OFFSET TRANGROUP:ERASE ; In TCMD1.ASM | ||
| 295 | DB 4,"TYPE",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 296 | DW OFFSET TRANGROUP:TYPEFIL ; In TCMD1.ASM | ||
| 297 | DB 3,"REM",fSwitchAllowed | ||
| 298 | DW OFFSET TRANGROUP:TCOMMAND ; In TCODE.ASM | ||
| 299 | DB 4,"COPY",fSwitchAllowed+fCheckDrive | ||
| 300 | DW OFFSET TRANGROUP:COPY ; In COPY.ASM | ||
| 301 | DB 5,"PAUSE",fSwitchAllowed | ||
| 302 | DW OFFSET TRANGROUP:PAUSE ; In TCMD1.ASM | ||
| 303 | DB 4,"DATE",fSwitchAllowed | ||
| 304 | DW OFFSET TRANGROUP:DATE ; In TPIPE.ASM | ||
| 305 | DB 4,"TIME",fSwitchAllowed ;AC018; P3903 | ||
| 306 | DW OFFSET TRANGROUP:CTIME ; In TPIPE.ASM | ||
| 307 | DB 3,"VER",0 | ||
| 308 | DW OFFSET TRANGROUP:VERSION ; In TCMD2.ASM | ||
| 309 | DB 3,"VOL",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 310 | DW OFFSET TRANGROUP:VOLUME ; In TCMD1.ASM | ||
| 311 | DB 2,"CD",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 312 | DW OFFSET TRANGROUP:$CHDIR ; In TENV.ASM | ||
| 313 | DB 5,"CHDIR",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 314 | DW OFFSET TRANGROUP:$CHDIR ; In TENV.ASM | ||
| 315 | DB 2,"MD",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 316 | DW OFFSET TRANGROUP:$MKDIR ; In TENV.ASM | ||
| 317 | DB 5,"MKDIR",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 318 | DW OFFSET TRANGROUP:$MKDIR ; In TENV.ASM | ||
| 319 | DB 2,"RD",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 320 | DW OFFSET TRANGROUP:$RMDIR ; In TENV.ASM | ||
| 321 | DB 5,"RMDIR",fSwitchAllowed+fCheckDrive ;AC018; P3903 | ||
| 322 | DW OFFSET TRANGROUP:$RMDIR ; In TENV.ASM | ||
| 323 | DB 5,"BREAK",fSwitchAllowed ;AC018; P3903 | ||
| 324 | DW OFFSET TRANGROUP:CNTRLC ; In TUCODE.ASM | ||
| 325 | DB 6,"VERIFY",fSwitchAllowed ;AC018; P3903 | ||
| 326 | DW OFFSET TRANGROUP:VERIFY ; In TUCODE.ASM | ||
| 327 | DB 3,"SET",fSwitchAllowed | ||
| 328 | DW OFFSET TRANGROUP:ADD_NAME_TO_ENVIRONMENT; In TENV.ASM | ||
| 329 | DB 6,"PROMPT",fSwitchAllowed | ||
| 330 | DW OFFSET TRANGROUP:ADD_PROMPT ; In TENV.ASM | ||
| 331 | DB 4,"PATH",fSwitchAllowed | ||
| 332 | DW OFFSET TRANGROUP:PATH ; In TCMD2.ASM | ||
| 333 | DB 4,"EXIT",0 | ||
| 334 | DW OFFSET TRANGROUP:$EXIT ; In TCMD2.ASM | ||
| 335 | DB 4,"CTTY",fCheckDrive+fSwitchAllowed | ||
| 336 | DW OFFSET TRANGROUP:CTTY ; In TCMD2.ASM | ||
| 337 | DB 4,"ECHO",fSwitchAllowed | ||
| 338 | DW OFFSET TRANGROUP:ECHO ; In TUCODE.ASM | ||
| 339 | DB 4,"GOTO",fSwitchAllowed | ||
| 340 | DW OFFSET TRANGROUP:GOTO ; In TBATCH.ASM | ||
| 341 | DB 5,"SHIFT",fSwitchAllowed | ||
| 342 | DW OFFSET TRANGROUP:SHIFT ; In TBATCH.ASM | ||
| 343 | DB 2,"IF",fSwitchAllowed | ||
| 344 | DW OFFSET TRANGROUP:$IF ; In TBATCH.ASM | ||
| 345 | DB 3,"FOR",fSwitchAllowed | ||
| 346 | DW OFFSET TRANGROUP:$FOR ; In TBATCH.ASM | ||
| 347 | DB 3,"CLS",0 | ||
| 348 | DW OFFSET TRANGROUP:CLS ; In TCMD2.ASM | ||
| 349 | DB 8,"TRUENAME",fSwitchAllowed+fCheckDrive ;AN000; P3903 changed | ||
| 350 | DW OFFSET TRANGROUP:TRUENAME ;AN000; | ||
| 351 | DB 0 ; Terminate command table | ||
| 352 | |||
| 353 | |||
| 354 | comext dB ".COM" | ||
| 355 | exeext dB ".EXE" | ||
| 356 | batext dB ".BAT" | ||
| 357 | |||
| 358 | switch_list DB "VBAPW" ; flags we can recognize | ||
| 359 | |||
| 360 | |||
| 361 | XA_cp Label byte ;AN030; list for one extended attribute | ||
| 362 | DW 1 ;AN030; | ||
| 363 | DB EAISBINARY ;AN030; type | ||
| 364 | DW EASYSTEM ;AN030; flags | ||
| 365 | DB 2 ;AN030; name length | ||
| 366 | DB "CP" ;AN030; name | ||
| 367 | |||
| 368 | |||
| 369 | |||
| 370 | |||
| 371 | PUBLIC BatBufLen | ||
| 372 | BatBufLen DW BatLen | ||
| 373 | |||
| 374 | ; ***************************************************** | ||
| 375 | ; EMG 4.00 | ||
| 376 | ; DATA STARTING HERE WAS ADDED BY EMG FOR 4.00 | ||
| 377 | ; FOR IMPLEMENTATION OF COMMON PARSE ROUTINE | ||
| 378 | ; ***************************************************** | ||
| 379 | |||
| 380 | ; | ||
| 381 | ; COMMON PARSE BLOCKS | ||
| 382 | ; | ||
| 383 | |||
| 384 | ; | ||
| 385 | ; Indicates no value list for PARSE. | ||
| 386 | ; | ||
| 387 | |||
| 388 | NO_VALUES DW 0 ;AN000; no values | ||
| 389 | |||
| 390 | ; | ||
| 391 | ; PARSE control block for a required file specification (upper cased) | ||
| 392 | ; | ||
| 393 | |||
| 394 | FILE_REQUIRED LABEL BYTE ;AN000; | ||
| 395 | DW 0200H ;AN000; filespec - required | ||
| 396 | DW 1 ;AN000; capitalize - file table | ||
| 397 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 398 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 399 | DB 0 ;AN000; no keywords | ||
| 400 | |||
| 401 | ; | ||
| 402 | ; PARSE control block for an optional file specification (upper cased) | ||
| 403 | ; or drive number | ||
| 404 | ; | ||
| 405 | |||
| 406 | FILE_OPTIONAL LABEL BYTE ;AN000; | ||
| 407 | DW 0301H ;AN000; filespec or drive number | ||
| 408 | ; optional | ||
| 409 | DW 1 ;AN000; capitalize - file table | ||
| 410 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 411 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 412 | DB 0 ;AN000; no keywords | ||
| 413 | |||
| 414 | ; | ||
| 415 | ; PARSE control block for an optional file specification (upper cased) | ||
| 416 | ; | ||
| 417 | |||
| 418 | FILE_OPTIONAL2 LABEL BYTE ;AN000; | ||
| 419 | DW 0201H ;AN000; filespec or drive number | ||
| 420 | ; optional | ||
| 421 | DW 1 ;AN000; capitalize - file table | ||
| 422 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 423 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 424 | DB 0 ;AN000; no keywords | ||
| 425 | |||
| 426 | ; | ||
| 427 | ; PARSE control block for an optional /P switch | ||
| 428 | ; | ||
| 429 | |||
| 430 | SLASH_P_SWITCH LABEL BYTE ;AN000; | ||
| 431 | DW 0 ;AN000; no match flags | ||
| 432 | DW 2 ;AN000; capitalize - char table | ||
| 433 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 434 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 435 | DB 1 ;AN000; 1 keyword | ||
| 436 | SLASH_P_SYN DB "/P",0 ;AN000; /P switch | ||
| 437 | |||
| 438 | |||
| 439 | |||
| 440 | ; PARSE BLOCK FOR BREAK, VERIFY, ECHO | ||
| 441 | |||
| 442 | ; | ||
| 443 | ; The following parse control block can be used for any command which | ||
| 444 | ; needs only the optional "ON" and "OFF" keywords as operands. Allows | ||
| 445 | ; the equal sign as an additional delimiter. Returns verified result | ||
| 446 | ; in PARSE1_OUTPUT. Currently used for the BREAK, VERIFY, and ECHO | ||
| 447 | ; internal commands. | ||
| 448 | ; | ||
| 449 | |||
| 450 | PARSE_BREAK LABEL BYTE ;AN000; | ||
| 451 | DW TRANGROUP:BREAK_PARMS ;AN000; | ||
| 452 | DB 0 ;AN032; no extra delimiter | ||
| 453 | |||
| 454 | BREAK_PARMS LABEL BYTE ;AN000; | ||
| 455 | DB 0,1 ;AN000; 1 positional parm | ||
| 456 | DW TRANGROUP:BREAK_CONTROL1;AN000; | ||
| 457 | DB 0 ;AN000; no switches | ||
| 458 | DB 0 ;AN000; no keywords | ||
| 459 | |||
| 460 | BREAK_CONTROL1 LABEL BYTE ;AN000; | ||
| 461 | DW 2001H ;AN000; string value - optional | ||
| 462 | DW 2 ;AN000; capitalize - char table | ||
| 463 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 464 | DW TRANGROUP:BREAK_VALUES ;AN000; | ||
| 465 | DB 0 ;AN000; no keywords | ||
| 466 | |||
| 467 | BREAK_VALUES LABEL BYTE ;AN000; | ||
| 468 | DB 3 ;AN000; | ||
| 469 | DB 0 ;AN000; no ranges | ||
| 470 | DB 0 ;AN000; no numeric values | ||
| 471 | DB 2 ;AN000; 2 string values | ||
| 472 | DB 0 ;AN000; returned if ON | ||
| 473 | DW TRANGROUP:BREAK_ON ;AN000; point to ON string | ||
| 474 | DB 'f' ;AN000; returned if OFF | ||
| 475 | DW TRANGROUP:BREAK_OFF ;AN000; point to OFF string | ||
| 476 | |||
| 477 | BREAK_ON DB "ON",0 ;AN000; | ||
| 478 | BREAK_OFF DB "OFF",0 ;AN000; | ||
| 479 | |||
| 480 | ; | ||
| 481 | ; PARSE BLOCK FOR CHCP | ||
| 482 | ; | ||
| 483 | |||
| 484 | ; | ||
| 485 | ; The following parse control block can be used for any command which | ||
| 486 | ; needs only one optional three digit decimal parameter for operands. | ||
| 487 | ; Returns verified result in PARSE1_OUTPUT. Currently used for the | ||
| 488 | ; CHCP internal command. | ||
| 489 | ; | ||
| 490 | CHCP_MINVAL EQU 100 ;AN000; | ||
| 491 | CHCP_MAXVAL EQU 999 ;AN000; | ||
| 492 | |||
| 493 | PARSE_CHCP LABEL BYTE ;AN000; | ||
| 494 | DW TRANGROUP:CHCP_PARMS ;AN000; | ||
| 495 | DB 0 ;AN000; no extra delimiter | ||
| 496 | |||
| 497 | CHCP_PARMS LABEL BYTE ;AN000; | ||
| 498 | DB 0,1 ;AN000; 1 positional parm | ||
| 499 | DW TRANGROUP:CHCP_CONTROL1 ;AN000; | ||
| 500 | DB 0 ;AN000; no switches | ||
| 501 | DB 0 ;AN000; no keywords | ||
| 502 | |||
| 503 | CHCP_CONTROL1 LABEL BYTE ;AN000; | ||
| 504 | DW 8001H ;AN000; numeric value - optional | ||
| 505 | DW 0 ;AN000; no function flags | ||
| 506 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 507 | DW TRANGROUP:CHCP_VALUES ;AN000; | ||
| 508 | DB 0 ;AN000; no keywords | ||
| 509 | |||
| 510 | CHCP_VALUES LABEL BYTE ;AN000; | ||
| 511 | DB 1 ;AN000; | ||
| 512 | DB 1 ;AN000; 1 range | ||
| 513 | DB 1 ;AN000; returned if result | ||
| 514 | DD CHCP_MINVAL,CHCP_MAXVAL ;AN000; minimum & maximum value | ||
| 515 | DB 0 ;AN000; no numeric values | ||
| 516 | DB 0 ;AN000; no string values | ||
| 517 | |||
| 518 | |||
| 519 | ; | ||
| 520 | ; PARSE BLOCK FOR DATE | ||
| 521 | ; | ||
| 522 | |||
| 523 | ; | ||
| 524 | ; The following parse control block can be used for any command which | ||
| 525 | ; needs only an optional date string as an operand. Returns unverified | ||
| 526 | ; result in DATE_OUTPUT. Currently used for the DATE internal command. | ||
| 527 | ; | ||
| 528 | |||
| 529 | PARSE_DATE LABEL BYTE ;AN000; | ||
| 530 | DW TRANGROUP:DATE_PARMS ;AN000; | ||
| 531 | DB 0 ;AN000; no extra delimiter | ||
| 532 | |||
| 533 | DATE_PARMS LABEL BYTE ;AN000; | ||
| 534 | DB 0,1 ;AN000; 1 positional parm | ||
| 535 | DW TRANGROUP:DATE_CONTROL1 ;AN000; | ||
| 536 | DB 0 ;AN000; no switches | ||
| 537 | DB 0 ;AN000; no keywords | ||
| 538 | |||
| 539 | DATE_CONTROL1 LABEL BYTE ;AN000; | ||
| 540 | DW 1001H ;AN000; date - optional | ||
| 541 | DW 0 ;AN000; no function flags | ||
| 542 | DW TRANGROUP:DATE_OUTPUT ;AN000; result buffer | ||
| 543 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 544 | DB 0 ;AN000; no keywords | ||
| 545 | |||
| 546 | ; | ||
| 547 | ; PARSE BLOCK FOR TIME | ||
| 548 | ; | ||
| 549 | |||
| 550 | ; | ||
| 551 | ; The following parse control block can be used for any command which | ||
| 552 | ; needs only an optional time string as an operand. Returns unverified | ||
| 553 | ; result in TIME_OUTPUT. Currently used for the TIME internal command. | ||
| 554 | ; | ||
| 555 | |||
| 556 | PARSE_TIME LABEL BYTE ;AN000; | ||
| 557 | DW TRANGROUP:TIME_PARMS ;AN000; | ||
| 558 | DB 0 ;AN000; no extra delimiter | ||
| 559 | |||
| 560 | TIME_PARMS LABEL BYTE ;AN000; | ||
| 561 | DB 0,1 ;AN000; 1 positional parm | ||
| 562 | DW TRANGROUP:TIME_CONTROL1 ;AN000; | ||
| 563 | DB 0 ;AN000; no switches | ||
| 564 | DB 0 ;AN000; no keywords | ||
| 565 | |||
| 566 | TIME_CONTROL1 LABEL BYTE ;AN000; | ||
| 567 | DW 0801H ;AN000; TIME - optional | ||
| 568 | DW 0 ;AN000; no function flags | ||
| 569 | DW TRANGROUP:TIME_OUTPUT ;AN000; result buffer | ||
| 570 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 571 | DB 0 ;AN000; no keywords | ||
| 572 | |||
| 573 | |||
| 574 | ; | ||
| 575 | ; PARSE BLOCK FOR VOL | ||
| 576 | ; | ||
| 577 | |||
| 578 | ; | ||
| 579 | ; The following parse control block can be used for any command which | ||
| 580 | ; needs only an optional drive letter as an operand. Returns unverified | ||
| 581 | ; drive number (one based) in DRIVE_OUTPUT. Currently used for the VOL | ||
| 582 | ; internal command. | ||
| 583 | ; | ||
| 584 | |||
| 585 | PARSE_VOL LABEL BYTE ;AN000; | ||
| 586 | DW TRANGROUP:VOL_PARMS ;AN000; | ||
| 587 | DB 0 ;AN000; no extra delimiter | ||
| 588 | |||
| 589 | VOL_PARMS LABEL BYTE ;AN000; | ||
| 590 | DB 0,1 ;AN000; 1 positional parm | ||
| 591 | DW TRANGROUP:DRIVE_CONTROL1;AN000; | ||
| 592 | DB 0 ;AN000; no switches | ||
| 593 | DB 0 ;AN000; no keywords | ||
| 594 | |||
| 595 | DRIVE_CONTROL1 LABEL BYTE ;AN000; | ||
| 596 | DW 0101H ;AN000; DRIVE - optional | ||
| 597 | DW 1 ;AN000; capitalize - file table | ||
| 598 | DW TRANGROUP:DRIVE_OUTPUT ;AN000; result buffer | ||
| 599 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 600 | DB 0 ;AN000; no keywords | ||
| 601 | |||
| 602 | |||
| 603 | ; | ||
| 604 | ; PARSE BLOCK FOR MKDIR, RMDIR, TYPE | ||
| 605 | ; | ||
| 606 | |||
| 607 | ; | ||
| 608 | ; The following parse control block can be used for any command which | ||
| 609 | ; needs only one required file specification as an operand. Returns a | ||
| 610 | ; pointer to the unverified string in PARSE1_OUTPUT. Currently used | ||
| 611 | ; for the MKDIR, RMDIR, and TYPE internal commands. | ||
| 612 | ; | ||
| 613 | |||
| 614 | PARSE_MRDIR LABEL BYTE ;AN000; | ||
| 615 | DW TRANGROUP:MRDIR_PARMS ;AN000; | ||
| 616 | DB 0 ;AN000; no extra delimiter | ||
| 617 | |||
| 618 | MRDIR_PARMS LABEL BYTE ;AN000; | ||
| 619 | DB 1,1 ;AN000; 1 positional parm | ||
| 620 | DW TRANGROUP:FILE_REQUIRED ;AN000; | ||
| 621 | DB 0 ;AN000; no switches | ||
| 622 | DB 0 ;AN000; no keywords | ||
| 623 | |||
| 624 | ; | ||
| 625 | ; PARSE BLOCK FOR CHDIR, TRUENAME | ||
| 626 | ; | ||
| 627 | |||
| 628 | ; | ||
| 629 | ; The following parse control block can be used for any command which | ||
| 630 | ; needs only one optional file specification an operand. Returns a | ||
| 631 | ; pointer to the unverified string in PARSE1_OUTPUT. Currently used | ||
| 632 | ; for the CHDIR and TRUENAME internal commands. | ||
| 633 | ; | ||
| 634 | |||
| 635 | PARSE_CHDIR LABEL BYTE ;AN000; | ||
| 636 | DW TRANGROUP:CHDIR_PARMS ;AN000; | ||
| 637 | DB 0 ;AN000; no extra delimiter | ||
| 638 | |||
| 639 | CHDIR_PARMS LABEL BYTE ;AN000; | ||
| 640 | DB 0,1 ;AN000; 1 positional parm | ||
| 641 | DW TRANGROUP:FILE_OPTIONAL ;AN000; | ||
| 642 | DB 0 ;AN000; no switches | ||
| 643 | DB 0 ;AN000; no keywords | ||
| 644 | |||
| 645 | ; | ||
| 646 | ; PARSE BLOCK FOR ERASE | ||
| 647 | ; | ||
| 648 | |||
| 649 | ; | ||
| 650 | ; The following parse control block is used for the DEL/ERASE internal | ||
| 651 | ; commands. This command has one required file specification and an | ||
| 652 | ; optional switch (/p) as operands. The verified switch or unverified | ||
| 653 | ; file specification is returned in PARSE1_OUTPUT. | ||
| 654 | ; | ||
| 655 | |||
| 656 | PARSE_ERASE LABEL BYTE ;AN000; | ||
| 657 | DW TRANGROUP:ERASE_PARMS ;AN000; | ||
| 658 | DB 0 ;AN000; no extra delimiter | ||
| 659 | |||
| 660 | ERASE_PARMS LABEL BYTE ;AN000; | ||
| 661 | DB 1,1 ;AN000; 1 positional parm | ||
| 662 | DW TRANGROUP:FILE_REQUIRED ;AN000; | ||
| 663 | DB 1 ;AN000; 1 switch | ||
| 664 | DW TRANGROUP:SLASH_P_SWITCH;AN000; | ||
| 665 | DB 0 ;AN000; no keywords | ||
| 666 | |||
| 667 | ; | ||
| 668 | ; PARSE BLOCK FOR DIR | ||
| 669 | ; | ||
| 670 | |||
| 671 | ; | ||
| 672 | ; The following parse control block is used for the DIR internal command. | ||
| 673 | ; This command has one optional file specification and two optional | ||
| 674 | ; switches (/p and /w) as operands. The verified switch or unverified | ||
| 675 | ; file specification is returned in PARSE1_OUTPUT. | ||
| 676 | ; | ||
| 677 | |||
| 678 | PARSE_DIR LABEL BYTE ;AN000; | ||
| 679 | DW TRANGROUP:DIR_PARMS ;AN000; | ||
| 680 | DB 0 ;AN000; no extra delimiter | ||
| 681 | |||
| 682 | DIR_PARMS LABEL BYTE ;AN000; | ||
| 683 | DB 0,1 ;AN000; 1 positional parm | ||
| 684 | DW TRANGROUP:FILE_OPTIONAL2;AN000; | ||
| 685 | DB 2 ;AN000; 2 switches | ||
| 686 | DW TRANGROUP:SLASH_P_SWITCH;AN000; | ||
| 687 | DW TRANGROUP:DIR_SWITCH1 ;AN000; | ||
| 688 | DB 0 ;AN000; no keywords | ||
| 689 | |||
| 690 | DIR_SWITCH1 LABEL BYTE ;AN000; | ||
| 691 | DW 0 ;AN000; no match flags | ||
| 692 | DW 2 ;AN000; capitalize by char table | ||
| 693 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 694 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 695 | DB 1 ;AN000; 1 keyword | ||
| 696 | DIR_W_SYN DB "/W",0 ;AN000; /W switch | ||
| 697 | |||
| 698 | ; | ||
| 699 | ; PARSE BLOCK FOR RENAME | ||
| 700 | ; | ||
| 701 | |||
| 702 | ; | ||
| 703 | ; The following parse control block can be used for any command which | ||
| 704 | ; needs only two required file specifications as operands. Returns | ||
| 705 | ; pointers to the unverified string in PARSE1_OUTPUT. | ||
| 706 | ; Currently used for the RENAME internal command. | ||
| 707 | ; | ||
| 708 | |||
| 709 | PARSE_RENAME LABEL BYTE ;AN000; | ||
| 710 | DW TRANGROUP:RENAME_PARMS ;AN000; | ||
| 711 | DB 0 ;AN000; no extra delimiter | ||
| 712 | |||
| 713 | RENAME_PARMS LABEL BYTE ;AN000; | ||
| 714 | DB 2,2 ;AN000; 2 positional parms | ||
| 715 | DW TRANGROUP:FILE_REQUIRED ;AN000; | ||
| 716 | DW TRANGROUP:FILE_REQUIRED ;AN000; | ||
| 717 | DB 0 ;AN000; no switches | ||
| 718 | DB 0 ;AN000; no keywords | ||
| 719 | |||
| 720 | ; | ||
| 721 | ; PARSE BLOCK FOR CTTY | ||
| 722 | ; | ||
| 723 | |||
| 724 | ; | ||
| 725 | ; The following parse control block can be used for any command which | ||
| 726 | ; needs one required device name as an operand. Returns a pointer to | ||
| 727 | ; unverified string in PARSE1_OUTPUT. Currently used for the CTTY | ||
| 728 | ; internal command. | ||
| 729 | ; | ||
| 730 | |||
| 731 | PARSE_CTTY LABEL BYTE ;AN000; | ||
| 732 | DW TRANGROUP:CTTY_PARMS ;AN000; | ||
| 733 | DB 0 ;AN000; no extra delimiter | ||
| 734 | |||
| 735 | CTTY_PARMS LABEL BYTE ;AN000; | ||
| 736 | DB 1,1 ;AN000; 1 positional parm | ||
| 737 | DW TRANGROUP:CTTY_CONTROL1 ;AN000; | ||
| 738 | DB 0 ;AN000; no switches | ||
| 739 | DB 0 ;AN000; no keywords | ||
| 740 | |||
| 741 | CTTY_CONTROL1 LABEL BYTE ;AN000; | ||
| 742 | DW 2000H ;AN000; string value - required | ||
| 743 | DW 11H ;AN000; capitalize - file table | ||
| 744 | ;AN000; remove colon at end | ||
| 745 | DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer | ||
| 746 | DW TRANGROUP:NO_VALUES ;AN000; | ||
| 747 | DB 0 ;AN000; no keywords | ||
| 748 | |||
| 749 | TRANDATA ENDS | ||
| 750 | |||
| 751 | TRANCODE SEGMENT PUBLIC BYTE ;AN000; | ||
| 752 | |||
| 753 | .xlist | ||
| 754 | .xcref | ||
| 755 | |||
| 756 | INCLUDE SYSMSG.INC ;AN000; | ||
| 757 | |||
| 758 | .list | ||
| 759 | .cref | ||
| 760 | |||
| 761 | ASSUME DS:TRANGROUP,ES:TRANGROUP,CS:TRANGROUP | ||
| 762 | |||
| 763 | MSG_UTILNAME <COMMAND> ;AN000; define utility name | ||
| 764 | |||
| 765 | MSG_SERVICES <COMT,COMMAND.CLF,COMMAND.CL1,COMMAND.CL2> ;AN000; The transient messages | ||
| 766 | |||
| 767 | include msgdcl.inc | ||
| 768 | |||
| 769 | TRANCODE ENDS ;AN000; | ||
| 770 | |||
| 771 | TRANDATA SEGMENT PUBLIC BYTE | ||
| 772 | |||
| 773 | TRANDATAEND LABEL BYTE | ||
| 774 | |||
| 775 | TRANDATA ENDS ;AN000; | ||
| 776 | |||
| 777 | END | ||