diff options
Diffstat (limited to 'v4.0/src/CMD/COMMAND/RDATA.ASM')
| -rw-r--r-- | v4.0/src/CMD/COMMAND/RDATA.ASM | 611 |
1 files changed, 611 insertions, 0 deletions
diff --git a/v4.0/src/CMD/COMMAND/RDATA.ASM b/v4.0/src/CMD/COMMAND/RDATA.ASM new file mode 100644 index 0000000..65fd4bb --- /dev/null +++ b/v4.0/src/CMD/COMMAND/RDATA.ASM | |||
| @@ -0,0 +1,611 @@ | |||
| 1 | page 80,132 | ||
| 2 | ; SCCSID = @(#)rdata.asm 4.2 85/09/22 | ||
| 3 | ; SCCSID = @(#)rdata.asm 4.2 85/09/22 | ||
| 4 | TITLE COMMAND Resident DATA | ||
| 5 | |||
| 6 | include comsw.asm | ||
| 7 | .xlist | ||
| 8 | .xcref | ||
| 9 | include comseg.asm | ||
| 10 | .list | ||
| 11 | .cref | ||
| 12 | |||
| 13 | ; | ||
| 14 | ; Equates for initialization (from COMEQU) | ||
| 15 | ; | ||
| 16 | initInit equ 01h ; initialization in progress | ||
| 17 | initSpecial equ 02h ; in initialization time/date routine | ||
| 18 | initCtrlC equ 04h ; already in ^C handler | ||
| 19 | |||
| 20 | Tokenized = FALSE | ||
| 21 | |||
| 22 | CODERES SEGMENT PUBLIC BYTE ;AC000; | ||
| 23 | PUBLIC RSTACK | ||
| 24 | EXTRN EXT_EXEC:NEAR | ||
| 25 | EXTRN THEADFIX:NEAR | ||
| 26 | EXTRN TREMCHECK:NEAR | ||
| 27 | |||
| 28 | DB (80H - 3) DUP (?) | ||
| 29 | |||
| 30 | RSTACK LABEL WORD | ||
| 31 | |||
| 32 | CODERES ENDS | ||
| 33 | |||
| 34 | TRANCODE SEGMENT PUBLIC BYTE ;AC000; | ||
| 35 | EXTRN COMMAND:NEAR | ||
| 36 | TRANCODE ENDS | ||
| 37 | |||
| 38 | ; Data for resident portion | ||
| 39 | |||
| 40 | DATARES SEGMENT PUBLIC BYTE | ||
| 41 | |||
| 42 | IF Tokenized | ||
| 43 | PUBLIC IOTYP | ||
| 44 | PUBLIC MESADD | ||
| 45 | ENDIF | ||
| 46 | |||
| 47 | PUBLIC abort_char | ||
| 48 | PUBLIC append_flag ;AN020; | ||
| 49 | PUBLIC append_state ;AN020; | ||
| 50 | PUBLIC BADFAT_BLOCK ;AC000; | ||
| 51 | PUBLIC BADFAT_OP_SEG ;AC000; | ||
| 52 | PUBLIC BADFAT_SUBST ;AC000; | ||
| 53 | PUBLIC BATCH | ||
| 54 | PUBLIC Batch_Abort | ||
| 55 | PUBLIC call_batch_flag | ||
| 56 | PUBLIC call_flag | ||
| 57 | PUBLIC CDEVAT ;AC000; | ||
| 58 | PUBLIC COM_FCB1 | ||
| 59 | PUBLIC COM_FCB2 | ||
| 60 | PUBLIC COM_PTR | ||
| 61 | PUBLIC COM_XLAT_ADDR | ||
| 62 | PUBLIC COMDRV | ||
| 63 | PUBLIC COMPRMT1_BLOCK ;AC000; | ||
| 64 | PUBLIC COMPRMT1_SEG ;AC000; | ||
| 65 | PUBLIC COMPRMT1_SEG2 ;AC000; | ||
| 66 | PUBLIC COMPRMT1_SUBST ;AC000; | ||
| 67 | PUBLIC COMSPEC | ||
| 68 | PUBLIC crit_msg_off ;AC000; | ||
| 69 | PUBLIC crit_msg_seg ;AC000; | ||
| 70 | PUBLIC critical_msg_start ;AC000; | ||
| 71 | PUBLIC comspec_print | ||
| 72 | PUBLIC comspec_end | ||
| 73 | PUBLIC cpdrv | ||
| 74 | PUBLIC crit_err_INFO | ||
| 75 | PUBLIC DATARESEND | ||
| 76 | PUBLIC dbcs_vector_addr ;AN000; | ||
| 77 | PUBLIC DEVE_OP_OFF ;AC000; | ||
| 78 | PUBLIC DEVE_OP_SEG ;AC000; | ||
| 79 | PUBLIC DEVE_OP_SEG2 ;AC000; | ||
| 80 | PUBLIC DEVEMES_BLOCK ;AC000; | ||
| 81 | PUBLIC DEVEMES_SUBST ;AC000; | ||
| 82 | PUBLIC DEVENAM ;AC000; | ||
| 83 | PUBLIC DISP_CLASS ;AN000; | ||
| 84 | PUBLIC DRVLET | ||
| 85 | PUBLIC DRVNUM_BLOCK ;AC000; | ||
| 86 | PUBLIC DRVNUM_OP_OFF ;AC000; | ||
| 87 | PUBLIC DRVNUM_OP_SEG ;AC000; | ||
| 88 | PUBLIC DRVNUM_OP_SEG2 ;AC000; | ||
| 89 | PUBLIC DRVNUM_SUBST ;AC000; | ||
| 90 | PUBLIC ECHOFLAG | ||
| 91 | PUBLIC ENVIRSEG | ||
| 92 | PUBLIC ERR15_OP_SEG ;AC000; | ||
| 93 | PUBLIC ERR15_OP_SEG2 ;AC000; | ||
| 94 | PUBLIC ERR15_OP_SEG3 ;AC000; | ||
| 95 | PUBLIC ERR15MES_BLOCK ;AC000; | ||
| 96 | PUBLIC ERR15MES_SUBST ;AC000; | ||
| 97 | PUBLIC ERRCD_24 | ||
| 98 | PUBLIC ErrType | ||
| 99 | PUBLIC EXEC_BLOCK | ||
| 100 | PUBLIC EXECEMES_BLOCK ;AC000; | ||
| 101 | PUBLIC EXECEMES_SUBST ;AC000; | ||
| 102 | PUBLIC EXECEMES_OFF ;AC000; | ||
| 103 | PUBLIC EXECEMES_SEG ;AC000; | ||
| 104 | PUBLIC EXTCOM | ||
| 105 | PUBLIC extended_msg_start ;AN000; | ||
| 106 | PUBLIC extmsgend ;AN000; | ||
| 107 | PUBLIC fail_char ;AC000; | ||
| 108 | PUBLIC fFail | ||
| 109 | PUBLIC FORFLAG | ||
| 110 | PUBLIC forptr | ||
| 111 | PUBLIC fucase_addr ;AN000; | ||
| 112 | PUBLIC HANDLE01 | ||
| 113 | PUBLIC IFFlag | ||
| 114 | PUBLIC ignore_char | ||
| 115 | PUBLIC In_Batch | ||
| 116 | PUBLIC InitFlag | ||
| 117 | PUBLIC INPIPEPTR | ||
| 118 | PUBLIC INT_2E_RET | ||
| 119 | PUBLIC IO_SAVE | ||
| 120 | PUBLIC LOADING | ||
| 121 | PUBLIC LTPA | ||
| 122 | PUBLIC MEMSIZ | ||
| 123 | ;AD054; PUBLIC MESBAS ;AC000; | ||
| 124 | PUBLIC MYSEG | ||
| 125 | PUBLIC MYSEG1 | ||
| 126 | PUBLIC MYSEG2 | ||
| 127 | PUBLIC nest | ||
| 128 | PUBLIC next_batch | ||
| 129 | PUBLIC no_char | ||
| 130 | PUBLIC NULLFLAG | ||
| 131 | PUBLIC NUMBER_SUBST ;AN000; | ||
| 132 | PUBLIC olderrno | ||
| 133 | PUBLIC OldTerm | ||
| 134 | PUBLIC OUTPIPEPTR | ||
| 135 | PUBLIC PARENT | ||
| 136 | ;AD060; PUBLIC pars_msg_off ;AN000; | ||
| 137 | ;AD060; PUBLIC pars_msg_seg ;AN000; | ||
| 138 | PUBLIC parse_msg_start ;AN000; | ||
| 139 | PUBLIC PERMCOM | ||
| 140 | PUBLIC PIPE1 | ||
| 141 | PUBLIC pipe1t | ||
| 142 | PUBLIC PIPE2 | ||
| 143 | PUBLIC pipe2t | ||
| 144 | PUBLIC PIPEFILES | ||
| 145 | PUBLIC PIPEFLAG | ||
| 146 | PUBLIC PIPEPTR | ||
| 147 | PUBLIC PIPESTR | ||
| 148 | PUBLIC RDIRCHAR | ||
| 149 | PUBLIC RE_OUT_APP | ||
| 150 | PUBLIC RE_OUTSTR | ||
| 151 | PUBLIC RemMsg | ||
| 152 | PUBLIC resmsgend ;AN000; | ||
| 153 | PUBLIC RES_TPA | ||
| 154 | PUBLIC RESTDIR | ||
| 155 | PUBLIC ResTest | ||
| 156 | PUBLIC RETCODE | ||
| 157 | PUBLIC retry_char | ||
| 158 | PUBLIC rsrc_xa_seg ;AN030; | ||
| 159 | PUBLIC RSWITCHAR | ||
| 160 | PUBLIC SAVE_PDB | ||
| 161 | PUBLIC SINGLECOM | ||
| 162 | PUBLIC SUM | ||
| 163 | PUBLIC SUPPRESS | ||
| 164 | PUBLIC TRANS | ||
| 165 | PUBLIC TranVarEnd | ||
| 166 | PUBLIC TRANVARS | ||
| 167 | PUBLIC TRNSEG | ||
| 168 | PUBLIC TrnMvFlg | ||
| 169 | PUBLIC VERVAL | ||
| 170 | PUBLIC VolName | ||
| 171 | PUBLIC VOLSER ;AN000; | ||
| 172 | PUBLIC yes_char | ||
| 173 | |||
| 174 | ;AD054;MESBAS DW 19 ;AC000; error_write_protect | ||
| 175 | ;AD054; DW 20 ;AC000; error_bad_unit | ||
| 176 | ;AD054; DW 21 ;AC000; error_not_ready | ||
| 177 | ;AD054; DW 22 ;AC000; error_bad_command | ||
| 178 | ;AD054; DW 23 ;AC000; error_CRC | ||
| 179 | ;AD054; DW 24 ;AC000; error_bad_length | ||
| 180 | ;AD054; DW 25 ;AC000; error_Seek | ||
| 181 | ;AD054; DW 26 ;AC000; error_not_DOS_disk | ||
| 182 | ;AD054; DW 27 ;AC000; error_sector_not_found | ||
| 183 | ;AD054; DW 28 ;AC000; error_out_of_paper | ||
| 184 | ;AD054; DW 29 ;AC000; error_write_fault | ||
| 185 | ;AD054; DW 30 ;AC000; error_read_fault | ||
| 186 | ;AD054; DW 31 ;AC000; error_gen_failure | ||
| 187 | ;AD054; DW 32 ;AC000; error_sharing_violation | ||
| 188 | ;AD054; DW 33 ;AC000; error_lock_violation | ||
| 189 | ;AD054; DW 34 ;AC000; error_wrong_disk | ||
| 190 | ;AD054; DW 35 ;AC000; error_FCB_unavailable | ||
| 191 | ;AD054; DW 36 ;AC000; error_sharing_buffer_exceeded | ||
| 192 | ;AD054; DW 37 ;AC000; error_code_page_mismatch | ||
| 193 | ;AD054; DW 38 ;AC026; error_out_of_input | ||
| 194 | ;AD054; DW 39 ;AN026; error_insufficient_disk_space | ||
| 195 | |||
| 196 | |||
| 197 | |||
| 198 | IF Tokenized | ||
| 199 | MESADD LABEL WORD | ||
| 200 | DW OFFSET ResGroup:NEWLIN ;"0" | ||
| 201 | DW OFFSET ResGroup:COM$1 ;"1" | ||
| 202 | DW OFFSET ResGroup:ERR3 ;"2" | ||
| 203 | DW OFFSET ResGroup:ALLOC$3 ;"3" | ||
| 204 | DW OFFSET ResGroup:FILE$4 ;"4" | ||
| 205 | DW OFFSET ResGroup:RROR$5 ;"5" | ||
| 206 | DW OFFSET ResGroup:CAN$6 ;"6" | ||
| 207 | DW OFFSET ResGroup:EMORY$7 ;"7" | ||
| 208 | DW OFFSET ResGroup:BAT$8 ;"8" | ||
| 209 | DW OFFSET ResGroup:INS$9 ;"9" | ||
| 210 | |||
| 211 | ERR0 DB "Write protec","t"+80h | ||
| 212 | ERR1 DB "Bad uni","t"+80h | ||
| 213 | ERR2 DB "Not read","y"+80h | ||
| 214 | ERR3 DB "Bad command"," "+80h | ||
| 215 | ERR4 DB "Dat","a"+80h | ||
| 216 | ERR5 DB "Bad call forma","t"+80h | ||
| 217 | ERR6 DB "See","k"+80h | ||
| 218 | ERR7 DB "Non-DOS dis","k"+80h | ||
| 219 | ERR8 DB "Sector not foun","d"+80h | ||
| 220 | ERR9 DB "No pape","r"+80h | ||
| 221 | ERR10 DB "Write faul","t"+80h | ||
| 222 | ERR11 DB "Read faul","t"+80h | ||
| 223 | ERR12 DB "General Failur","e"+80h | ||
| 224 | ERR13 DB "Sharing Violatio","n"+80h | ||
| 225 | ERR14 DB "Lock Violatio","n"+80h | ||
| 226 | ERR15 DB "Invalid Disk Chang","e"+80h | ||
| 227 | ERR16 DB "FCB unavailabl","e"+80h | ||
| 228 | ERR17 DB "Sharing buffer exceede","d"+80h | ||
| 229 | |||
| 230 | ;--- Extra message for error 15 | ||
| 231 | Err15Mes db "Please Insert disk " | ||
| 232 | VolName db 11 dup(?) | ||
| 233 | db 13,10,"$" | ||
| 234 | |||
| 235 | MREAD DB "read" | ||
| 236 | MWRITE DB "writ" | ||
| 237 | ERRMES DB " e5" | ||
| 238 | IOTYP DB "writin","g"+80h | ||
| 239 | DRVNUM DB " drive " | ||
| 240 | DRVLET DB "A" | ||
| 241 | NEWLIN DB 13,10+80h | ||
| 242 | DEVEMES DB " device " | ||
| 243 | DEVENAM DB 8 DUP (?) | ||
| 244 | DB 13,10,"$" ;Must be $ terminated | ||
| 245 | COM$1 DB " COMMAN","D"+80h | ||
| 246 | ALLOC$3 DB " allocation"," "+80h | ||
| 247 | FILE$4 DB " file"," "+80h | ||
| 248 | RROR$5 DB "rror"," "+80h | ||
| 249 | CAN$6 DB "Cannot"," "+80h | ||
| 250 | EMORY$7 DB "emor","y"+80h | ||
| 251 | BAT$8 DB " batc","h"+80h | ||
| 252 | INS$9 DB "Inser","t"+80h | ||
| 253 | |||
| 254 | |||
| 255 | CDEVAT DB ? | ||
| 256 | BADFAT DB "0File 3table bad",","+80h | ||
| 257 | COMBAD DB "0Invalid1.COM","0"+80h | ||
| 258 | comprmt1 DB "9 disk with"," "+80h | ||
| 259 | comprmt2 DB " in drive " | ||
| 260 | cpdrv DB " " | ||
| 261 | PROMPT DB "0and strike any key when ready","0"+80h | ||
| 262 | ENDBATMES DB "0Terminate8 job (Y/N)?"," "+80h | ||
| 263 | EXECEMES DB "EXEC failure","0"+80h | ||
| 264 | EXEBAD DB "E5in EXE4","0"+80h | ||
| 265 | TOOBIG DB "Program too big to fit in m7","0"+80h | ||
| 266 | NOHANDMES DB "0No free4handle","s"+80h | ||
| 267 | BMEMMES DB "0M73e","5"+80h | ||
| 268 | HALTMES DB "06load1, system halte","d"+80h | ||
| 269 | FRETMES DB "06start1, exiting","0"+80h | ||
| 270 | RBADNAM DB "2or4name","0"+80h | ||
| 271 | AccDen DB "Access Denied","0"+80h | ||
| 272 | Patricide DB 13,10,"Top level process aborted, cannot continue."," "+80h | ||
| 273 | COMSPEC_PRINT DW ? | ||
| 274 | |||
| 275 | ELSE | ||
| 276 | |||
| 277 | |||
| 278 | parm_block_size EQU 11 ;AN000; size of message subst block | ||
| 279 | blank EQU " " ;AN000; blank character | ||
| 280 | |||
| 281 | DISP_CLASS DB -1 ;AN000; utility message class | ||
| 282 | NUMBER_SUBST DB 0 ;AN000; number of message substitutions - def 0 | ||
| 283 | |||
| 284 | |||
| 285 | DRVNUM_SUBST db 2 ;AN000; number of subst | ||
| 286 | DRVNUM_BLOCK db parm_block_size ;AN000;size of sublist | ||
| 287 | db 0 ;AN000;reserved | ||
| 288 | DRVNUM_OP_OFF dw 0 ;AN000;offset of arg | ||
| 289 | DRVNUM_OP_SEG dw 0 ;AN000;segment of arg | ||
| 290 | db 1 ;AN000;first subst | ||
| 291 | db Char_field_ASCIIZ ;AN000;character string | ||
| 292 | db 128 ;AN000;maximum width | ||
| 293 | db 0 ;AN000;minimum width | ||
| 294 | db blank ;AN000;pad character | ||
| 295 | db parm_block_size ;AN000;size of sublist | ||
| 296 | db 0 ;AN000;reserved | ||
| 297 | dw OFFSET RESGROUP:DRVLET ;AN000;offset of arg | ||
| 298 | DRVNUM_OP_SEG2 dw 0 ;AN000;segment of arg | ||
| 299 | db 2 ;AN000;second subst | ||
| 300 | db Char_field_Char ;AN000;one character | ||
| 301 | db 1 ;AN000;maximum width | ||
| 302 | db 1 ;AN000;minimum width | ||
| 303 | db blank ;AN000;pad character | ||
| 304 | |||
| 305 | DRVLET DB "A" | ||
| 306 | |||
| 307 | DEVEMES_SUBST db 2 ;AN000; number of subst | ||
| 308 | DEVEMES_BLOCK db parm_block_size ;AN000;size of sublist | ||
| 309 | db 0 ;AN000;reserved | ||
| 310 | DEVE_OP_OFF dw 0 ;AN000;offset of arg | ||
| 311 | DEVE_OP_SEG dw 0 ;AN000;segment of arg | ||
| 312 | db 1 ;AN000;first subst | ||
| 313 | db Char_field_ASCIIZ ;AN000;character string | ||
| 314 | db 128 ;AN000;maximum width | ||
| 315 | db 0 ;AN000;minimum width | ||
| 316 | db blank ;AN000;pad character | ||
| 317 | db parm_block_size ;AN000;size of sublist | ||
| 318 | db 0 ;AN000;reserved | ||
| 319 | dw OFFSET RESGROUP:DEVENAM ;AN000;offset of arg | ||
| 320 | DEVE_OP_SEG2 dw 0 ;AN000;segment of arg | ||
| 321 | db 2 ;AN000;second subst | ||
| 322 | db Char_field_ASCIIZ ;AN000;character string | ||
| 323 | db 8 ;AN019;maximum width | ||
| 324 | db 8 ;AN019;minimum width | ||
| 325 | db blank ;AN000;pad character | ||
| 326 | |||
| 327 | DEVENAM DB 8 DUP (?) | ||
| 328 | |||
| 329 | ;--- Extra message for error 15 | ||
| 330 | ERR15MES_SUBST db 3 ;AN000; number of subst | ||
| 331 | ERR15MES_BLOCK db parm_block_size ;AN000;size of sublist | ||
| 332 | db 0 ;AN000;reserved | ||
| 333 | dw OFFSET RESGROUP:VOLNAME ;AN000;offset of arg | ||
| 334 | ERR15_OP_SEG dw 0 ;AN000;segment of arg | ||
| 335 | db 1 ;AN000;first subst | ||
| 336 | db Char_field_ASCIIZ ;AN000;character string | ||
| 337 | db 12 ;AN000;maximum width | ||
| 338 | db 12 ;AN000;minimum width | ||
| 339 | db blank ;AN000;pad character | ||
| 340 | db parm_block_size ;AN000;size of sublist | ||
| 341 | db 0 ;AN000;reserved | ||
| 342 | dw OFFSET RESGROUP:VOLSER+2;AN000;offset of arg | ||
| 343 | ERR15_OP_SEG2 dw 0 ;AN000;segment of arg | ||
| 344 | db 2 ;AN000;second subst | ||
| 345 | db right_align+Bin_Hex_Word ;AN000;long binary to decimal | ||
| 346 | db 4 ;AN000;maximum width | ||
| 347 | db 4 ;AN000;minimum width | ||
| 348 | db "0" ;AN000;pad character | ||
| 349 | db parm_block_size ;AN000;size of sublist | ||
| 350 | db 0 ;AN000;reserved | ||
| 351 | dw OFFSET RESGROUP:VOLSER ;AN000;offset of arg | ||
| 352 | ERR15_OP_SEG3 dw 0 ;AN000;segment of arg | ||
| 353 | db 3 ;AN000;third subst | ||
| 354 | db right_align+Bin_Hex_Word ;AN000;long binary to decimal | ||
| 355 | db 4 ;AN000;maximum width | ||
| 356 | db 4 ;AN000;minimum width | ||
| 357 | db "0" ;AN000;pad character | ||
| 358 | |||
| 359 | ;************************************ | ||
| 360 | ;* DO NOT SEPARATE VOLNAME & VOLSER * | ||
| 361 | ;************************************ | ||
| 362 | ;* | ||
| 363 | VolName DB 11 dup(?) ;* | ||
| 364 | DB 0 ;* | ||
| 365 | VolSer DD 0 ;* | ||
| 366 | ;* | ||
| 367 | ;************************************ | ||
| 368 | |||
| 369 | |||
| 370 | CDEVAT DB ? | ||
| 371 | |||
| 372 | BADFAT_SUBST db 1 ;AN000; number of subst | ||
| 373 | BADFAT_BLOCK db parm_block_size ;AN000;size of sublist | ||
| 374 | db 0 ;AN000;reserved | ||
| 375 | dw OFFSET RESGROUP:DRVLET ;AN000;offset of arg | ||
| 376 | BADFAT_OP_SEG dw 0 ;AN000;segment of arg | ||
| 377 | db 1 ;AN000;first subst | ||
| 378 | db Char_field_Char ;AN000;one character | ||
| 379 | db 1 ;AN000;maximum width | ||
| 380 | db 1 ;AN000;minimum width | ||
| 381 | db blank ;AN000;pad character | ||
| 382 | |||
| 383 | |||
| 384 | COMPRMT1_SUBST db 2 ;AN000; number of subst | ||
| 385 | COMPRMT1_BLOCK db parm_block_size ;AN000;size of sublist | ||
| 386 | db 0 ;AN000;reserved | ||
| 387 | COMSPEC_PRINT dw ? ;AN000;offset of arg | ||
| 388 | COMPRMT1_SEG dw 0 ;AN000;segment of arg | ||
| 389 | db 1 ;AN000;first subst | ||
| 390 | db Char_field_ASCIIZ ;AN000;character string | ||
| 391 | db 64 ;AN000;maximum width | ||
| 392 | db 0 ;AN000;minimum width | ||
| 393 | db blank ;AN000;pad character | ||
| 394 | db parm_block_size ;AN000;size of sublist | ||
| 395 | db 0 ;AN000;reserved | ||
| 396 | dw OFFSET RESGROUP:CPDRV ;AN000;offset of arg | ||
| 397 | COMPRMT1_SEG2 dw 0 ;AN000;segment of arg | ||
| 398 | db 2 ;AN000;second subst | ||
| 399 | db Char_field_Char ;AN000;one character | ||
| 400 | db 1 ;AN000;maximum width | ||
| 401 | db 1 ;AN000;minimum width | ||
| 402 | db blank ;AN000;pad character | ||
| 403 | |||
| 404 | cpdrv DB " " | ||
| 405 | ; | ||
| 406 | ; Exec error messages | ||
| 407 | ; | ||
| 408 | EXECEMES_SUBST db 1 ;AN000; number of subst | ||
| 409 | EXECEMES_BLOCK db parm_block_size ;AN000;size of sublist | ||
| 410 | db 0 ;AN000;reserved | ||
| 411 | EXECEMES_OFF dw 0 ;AN000;offset of arg | ||
| 412 | EXECEMES_SEG dw 0 ;AN000;segment of arg | ||
| 413 | db 1 ;AN000;first subst | ||
| 414 | db Char_field_ASCIIZ ;AN000;character string | ||
| 415 | db 64 ;AN000;maximum width | ||
| 416 | db 0 ;AN000;minimum width | ||
| 417 | db blank ;AN000;pad character | ||
| 418 | |||
| 419 | ; | ||
| 420 | ; These characters MUST remain in order | ||
| 421 | ; | ||
| 422 | abort_char db "A" | ||
| 423 | retry_char db "R" | ||
| 424 | ignore_char db "I" | ||
| 425 | fail_char db "F" | ||
| 426 | yes_char db "Y" | ||
| 427 | no_char db "N" | ||
| 428 | ; | ||
| 429 | ; End of characters that MUST remain in order | ||
| 430 | ; | ||
| 431 | ENDIF | ||
| 432 | |||
| 433 | RemMsg DD ? ;Pointer to message in error 15 | ||
| 434 | ErrType DB ? ; Error message style, 0=old, 1=new | ||
| 435 | |||
| 436 | INT_2E_RET DD ? ; Magic command executer return address | ||
| 437 | SAVE_PDB DW ? | ||
| 438 | PARENT DW ? | ||
| 439 | OldTerm DD ? | ||
| 440 | ERRCD_24 DW ? | ||
| 441 | HANDLE01 DW ? | ||
| 442 | LOADING DB 0 | ||
| 443 | BATCH DW 0 ; Assume no batch mode initially | ||
| 444 | COMSPEC DB 64 DUP(0) | ||
| 445 | comspec_end dw ? | ||
| 446 | TRANS DW OFFSET TRANGROUP:COMMAND | ||
| 447 | TRNSEG DW ? | ||
| 448 | ; BAS DEBUG | ||
| 449 | TrnMvFlg DB 0 ; Indicate if transient portion has been moved | ||
| 450 | |||
| 451 | In_Batch DB 0 ; Indicate if we are in Batch processing mode. | ||
| 452 | Batch_Abort DB 0 ; Indicate if user wants to abort from batch mode. | ||
| 453 | |||
| 454 | COMDRV DB ? ; DRIVE SPEC TO LOAD AUTOEXEC AND COMMAND | ||
| 455 | MEMSIZ DW ? | ||
| 456 | SUM DW ? | ||
| 457 | EXTCOM DB 1 ; For init, pretend just did an external | ||
| 458 | RETCODE DW ? | ||
| 459 | CRIT_ERR_INFO DB ? ;G hold critical error flags for R,I,F | ||
| 460 | rsrc_xa_seg DW -1 ;AN030; holds segment of xa copy buffer | ||
| 461 | |||
| 462 | ; | ||
| 463 | ; The echo flag needs to be pushed and popped around pipes and batch files. | ||
| 464 | ; We implement this as a bit queue that is shr/shl for push and pop. | ||
| 465 | ; | ||
| 466 | ECHOFLAG DB 00000001B ; low bit TRUE => echo commands | ||
| 467 | SUPPRESS DB 1 ; used for echo, 1=echo line | ||
| 468 | IO_SAVE DW ? | ||
| 469 | RESTDIR DB 0 | ||
| 470 | PERMCOM DB 0 ; TRUE => permanent command | ||
| 471 | SINGLECOM DW 0 ; TRUE => single command version | ||
| 472 | VERVAL DW -1 | ||
| 473 | fFail DB 0 ; TRUE => FAIL all INT 24s | ||
| 474 | IFFLAG DB 0 ; TRUE => If statement in progress | ||
| 475 | |||
| 476 | FORFLAG DB 0 ; TRUE => FOR statement in progress | ||
| 477 | FORPTR DW 0 | ||
| 478 | |||
| 479 | NEST DW 0 ; NESTED BATCH FILE COUNTER | ||
| 480 | CALL_FLAG DB 0 ; NO CALL (BATCH COMMAND) IN PROGRESS | ||
| 481 | CALL_BATCH_FLAG DB 0 | ||
| 482 | NEXT_BATCH DW 0 ; ADDRESS OF NEXT BATCH SEGMENT | ||
| 483 | NULLFLAG DB 0 ; FLAG IF NO COMMAND ON COMMAND LINE | ||
| 484 | COM_XLAT_ADDR DB 5 DUP (0) ;G BUFFER FOR TRANSLATE TABLE ADDRESS | ||
| 485 | FUCASE_ADDR DB 5 DUP (0) ;AN000; BUFFER FOR FILE UCASE ADDRESS | ||
| 486 | CRIT_MSG_OFF DW 0 ;AN000; SAVED CRITICAL ERROR MESSAGE OFFSET | ||
| 487 | CRIT_MSG_SEG DW 0 ;AN000; SAVED CRITICAL ERROR MESSAGE SEGMENT | ||
| 488 | ;AD060; PARS_MSG_OFF DW 0 ;AN000; SAVED PARSE ERROR MESSAGE OFFSET | ||
| 489 | ;AD060; PARS_MSG_SEG DW 0 ;AN000; SAVED PARSE ERROR MESSAGE SEGMENT | ||
| 490 | Dbcs_vector_addr DW 0 ;AN000; DBCS vector offset | ||
| 491 | DW 0 ;AN000; DBCS vector segment | ||
| 492 | APPEND_STATE DW 0 ;AN020; current state of append (if flag = -1) | ||
| 493 | APPEND_FLAG DB 0 ;AN020; set if APPEND state valid | ||
| 494 | |||
| 495 | RE_OUT_APP DB 0 | ||
| 496 | RE_OUTSTR DB 64+3+13 DUP (?) | ||
| 497 | |||
| 498 | ; | ||
| 499 | ; We flag the state of COMMAND in order to correctly handle the ^Cs at | ||
| 500 | ; various times. Here is the breakdown: | ||
| 501 | ; | ||
| 502 | ; initINIT We are in the init code. | ||
| 503 | ; initSpecial We are in the date/time prompt | ||
| 504 | ; initCtrlC We are handling a ^C already. | ||
| 505 | ; | ||
| 506 | ; If we get a ^C in the initialization but not in the date/time prompt, we | ||
| 507 | ; ignore the ^C. This is so the system calls work on nested commands. | ||
| 508 | ; | ||
| 509 | ; If we are in the date/time prompt at initialization, we stuff the user's | ||
| 510 | ; input buffer with a CR to pretend an empty response. | ||
| 511 | ; | ||
| 512 | ; If we are already handling a ^C, we set the carry bit and return to the user | ||
| 513 | ; (ourselves). We can then detect the carry set and properly retry the | ||
| 514 | ; operation. | ||
| 515 | ; | ||
| 516 | |||
| 517 | InitFlag DB initINIT | ||
| 518 | |||
| 519 | ;These two bytes refed as a word | ||
| 520 | PIPEFLAG DB 0 | ||
| 521 | PIPEFILES DB 0 | ||
| 522 | |||
| 523 | ;--- 2.x data for piping | ||
| 524 | ; | ||
| 525 | ; All the "_" are substituted later, the one before the : is substituted | ||
| 526 | ; by the current drive, and the others by the CreateTemp call with the | ||
| 527 | ; unique file name. Note that the first 0 is the first char of the pipe | ||
| 528 | ; name. -MU | ||
| 529 | ; | ||
| 530 | ;--- Order dependant, do not change | ||
| 531 | |||
| 532 | Pipe1 db "_:/" | ||
| 533 | Pipe1T db 0 | ||
| 534 | db "_______.___",0 | ||
| 535 | Pipe2 db "_:/" | ||
| 536 | Pipe2T db 0 | ||
| 537 | db "_______.___",0 | ||
| 538 | |||
| 539 | PIPEPTR DW ? | ||
| 540 | PIPESTR DB 129 DUP(?) | ||
| 541 | INPIPEPTR DW OFFSET ResGroup:PIPE1 | ||
| 542 | OUTPIPEPTR DW OFFSET ResGroup:PIPE2 | ||
| 543 | |||
| 544 | EXEC_BLOCK LABEL BYTE ; The data block for EXEC calls | ||
| 545 | ENVIRSEG DW ? | ||
| 546 | COM_PTR LABEL DWORD | ||
| 547 | DW 80H ; Point at unformatted parameters | ||
| 548 | DW ? | ||
| 549 | COM_FCB1 LABEL DWORD | ||
| 550 | DW 5CH | ||
| 551 | DW ? | ||
| 552 | COM_FCB2 LABEL DWORD | ||
| 553 | DW 6CH | ||
| 554 | DW ? | ||
| 555 | |||
| 556 | TRANVARS LABEL BYTE ; Variables passed to transient | ||
| 557 | DW OFFSET ResGroup:THEADFIX | ||
| 558 | MYSEG DW 0 ; Put our own segment here | ||
| 559 | LTPA DW 0 ; WILL STORE TPA SEGMENT HERE | ||
| 560 | RSWITCHAR DB "-" | ||
| 561 | RDIRCHAR DB "/" | ||
| 562 | DW OFFSET ResGroup:EXT_EXEC | ||
| 563 | MYSEG1 DW ? | ||
| 564 | DW OFFSET ResGroup:TREMCHECK | ||
| 565 | MYSEG2 DW 0 | ||
| 566 | ResTest DW 0 | ||
| 567 | RES_TPA DW 0 ; Original TPA (not rounded to 64K) | ||
| 568 | TranVarEnd LABEL BYTE | ||
| 569 | |||
| 570 | olderrno dw ? | ||
| 571 | |||
| 572 | RESMSGEND DW 0 ;AN000;; holds offset of msg end (end of resident) | ||
| 573 | |||
| 574 | .xlist | ||
| 575 | .xcref | ||
| 576 | |||
| 577 | INCLUDE SYSMSG.INC ;AN000; include message services | ||
| 578 | |||
| 579 | .list | ||
| 580 | .cref | ||
| 581 | |||
| 582 | ASSUME DS:RESGROUP,ES:RESGROUP,CS:RESGROUP | ||
| 583 | |||
| 584 | MSG_UTILNAME <COMMAND> ;AN000; define utility name | ||
| 585 | |||
| 586 | ;AD054; MSG_SERVICES <COMR,MSGDATA,COMMAND.CLA,COMMAND.CL3,COMMAND.CL4> ;AN000; get message services data and resident messages | ||
| 587 | MSG_SERVICES <COMR,MSGDATA,COMMAND.CLA> ;AN054; get message services data and resident messages | ||
| 588 | |||
| 589 | |||
| 590 | CRITICAL_MSG_START LABEL BYTE ;AN000; start of critical error messages | ||
| 591 | |||
| 592 | MSG_SERVICES <COMR,COMMAND.CLD> ;AN000; get critical error messages | ||
| 593 | |||
| 594 | DATARESEND LABEL BYTE ;AC060; end of resident portion if /msg not used | ||
| 595 | |||
| 596 | PARSE_MSG_START LABEL BYTE ;AN000; start of parse error messages | ||
| 597 | |||
| 598 | MSG_SERVICES <COMR,COMMAND.CLC> ;AN000; get parse error messages | ||
| 599 | |||
| 600 | ;AD060; DATARESEND LABEL BYTE ; end of resident portion if /msg not used | ||
| 601 | |||
| 602 | EXTENDED_MSG_START LABEL BYTE ;AN000; start of extended error messages | ||
| 603 | |||
| 604 | MSG_SERVICES <COMR,COMMAND.CLE> ;AN000; get extended error messages | ||
| 605 | |||
| 606 | EXTMSGEND LABEL BYTE ;AN000; end of extended error messages | ||
| 607 | |||
| 608 | include msgdcl.inc | ||
| 609 | |||
| 610 | DATARES ENDS | ||
| 611 | END | ||