summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/COMMAND/RDATA.ASM
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/CMD/COMMAND/RDATA.ASM')
-rw-r--r--v4.0/src/CMD/COMMAND/RDATA.ASM611
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
4TITLE COMMAND Resident DATA
5
6include comsw.asm
7.xlist
8.xcref
9include comseg.asm
10.list
11.cref
12
13;
14; Equates for initialization (from COMEQU)
15;
16initInit equ 01h ; initialization in progress
17initSpecial equ 02h ; in initialization time/date routine
18initCtrlC equ 04h ; already in ^C handler
19
20Tokenized = FALSE
21
22CODERES 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
30RSTACK LABEL WORD
31
32CODERES ENDS
33
34TRANCODE SEGMENT PUBLIC BYTE ;AC000;
35 EXTRN COMMAND:NEAR
36TRANCODE ENDS
37
38; Data for resident portion
39
40DATARES 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
198IF Tokenized
199MESADD 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
211ERR0 DB "Write protec","t"+80h
212ERR1 DB "Bad uni","t"+80h
213ERR2 DB "Not read","y"+80h
214ERR3 DB "Bad command"," "+80h
215ERR4 DB "Dat","a"+80h
216ERR5 DB "Bad call forma","t"+80h
217ERR6 DB "See","k"+80h
218ERR7 DB "Non-DOS dis","k"+80h
219ERR8 DB "Sector not foun","d"+80h
220ERR9 DB "No pape","r"+80h
221ERR10 DB "Write faul","t"+80h
222ERR11 DB "Read faul","t"+80h
223ERR12 DB "General Failur","e"+80h
224ERR13 DB "Sharing Violatio","n"+80h
225ERR14 DB "Lock Violatio","n"+80h
226ERR15 DB "Invalid Disk Chang","e"+80h
227ERR16 DB "FCB unavailabl","e"+80h
228ERR17 DB "Sharing buffer exceede","d"+80h
229
230;--- Extra message for error 15
231Err15Mes db "Please Insert disk "
232VolName db 11 dup(?)
233 db 13,10,"$"
234
235MREAD DB "read"
236MWRITE DB "writ"
237ERRMES DB " e5"
238IOTYP DB "writin","g"+80h
239DRVNUM DB " drive "
240DRVLET DB "A"
241NEWLIN DB 13,10+80h
242DEVEMES DB " device "
243DEVENAM DB 8 DUP (?)
244 DB 13,10,"$" ;Must be $ terminated
245COM$1 DB " COMMAN","D"+80h
246ALLOC$3 DB " allocation"," "+80h
247FILE$4 DB " file"," "+80h
248RROR$5 DB "rror"," "+80h
249CAN$6 DB "Cannot"," "+80h
250EMORY$7 DB "emor","y"+80h
251BAT$8 DB " batc","h"+80h
252INS$9 DB "Inser","t"+80h
253
254
255CDEVAT DB ?
256BADFAT DB "0File 3table bad",","+80h
257COMBAD DB "0Invalid1.COM","0"+80h
258comprmt1 DB "9 disk with"," "+80h
259comprmt2 DB " in drive "
260cpdrv DB " "
261PROMPT DB "0and strike any key when ready","0"+80h
262ENDBATMES DB "0Terminate8 job (Y/N)?"," "+80h
263EXECEMES DB "EXEC failure","0"+80h
264EXEBAD DB "E5in EXE4","0"+80h
265TOOBIG DB "Program too big to fit in m7","0"+80h
266NOHANDMES DB "0No free4handle","s"+80h
267BMEMMES DB "0M73e","5"+80h
268HALTMES DB "06load1, system halte","d"+80h
269FRETMES DB "06start1, exiting","0"+80h
270RBADNAM DB "2or4name","0"+80h
271AccDen DB "Access Denied","0"+80h
272Patricide DB 13,10,"Top level process aborted, cannot continue."," "+80h
273COMSPEC_PRINT DW ?
274
275ELSE
276
277
278parm_block_size EQU 11 ;AN000; size of message subst block
279blank EQU " " ;AN000; blank character
280
281DISP_CLASS DB -1 ;AN000; utility message class
282NUMBER_SUBST DB 0 ;AN000; number of message substitutions - def 0
283
284
285DRVNUM_SUBST db 2 ;AN000; number of subst
286DRVNUM_BLOCK db parm_block_size ;AN000;size of sublist
287 db 0 ;AN000;reserved
288DRVNUM_OP_OFF dw 0 ;AN000;offset of arg
289DRVNUM_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
298DRVNUM_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
305DRVLET DB "A"
306
307DEVEMES_SUBST db 2 ;AN000; number of subst
308DEVEMES_BLOCK db parm_block_size ;AN000;size of sublist
309 db 0 ;AN000;reserved
310DEVE_OP_OFF dw 0 ;AN000;offset of arg
311DEVE_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
320DEVE_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
327DEVENAM DB 8 DUP (?)
328
329;--- Extra message for error 15
330ERR15MES_SUBST db 3 ;AN000; number of subst
331ERR15MES_BLOCK db parm_block_size ;AN000;size of sublist
332 db 0 ;AN000;reserved
333 dw OFFSET RESGROUP:VOLNAME ;AN000;offset of arg
334ERR15_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
343ERR15_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
352ERR15_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 ;*
363VolName DB 11 dup(?) ;*
364 DB 0 ;*
365VolSer DD 0 ;*
366 ;*
367;************************************
368
369
370CDEVAT DB ?
371
372BADFAT_SUBST db 1 ;AN000; number of subst
373BADFAT_BLOCK db parm_block_size ;AN000;size of sublist
374 db 0 ;AN000;reserved
375 dw OFFSET RESGROUP:DRVLET ;AN000;offset of arg
376BADFAT_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
384COMPRMT1_SUBST db 2 ;AN000; number of subst
385COMPRMT1_BLOCK db parm_block_size ;AN000;size of sublist
386 db 0 ;AN000;reserved
387COMSPEC_PRINT dw ? ;AN000;offset of arg
388COMPRMT1_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
397COMPRMT1_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
404cpdrv DB " "
405;
406; Exec error messages
407;
408EXECEMES_SUBST db 1 ;AN000; number of subst
409EXECEMES_BLOCK db parm_block_size ;AN000;size of sublist
410 db 0 ;AN000;reserved
411EXECEMES_OFF dw 0 ;AN000;offset of arg
412EXECEMES_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;
422abort_char db "A"
423retry_char db "R"
424ignore_char db "I"
425fail_char db "F"
426yes_char db "Y"
427no_char db "N"
428;
429; End of characters that MUST remain in order
430;
431ENDIF
432
433RemMsg DD ? ;Pointer to message in error 15
434ErrType DB ? ; Error message style, 0=old, 1=new
435
436INT_2E_RET DD ? ; Magic command executer return address
437SAVE_PDB DW ?
438PARENT DW ?
439OldTerm DD ?
440ERRCD_24 DW ?
441HANDLE01 DW ?
442LOADING DB 0
443BATCH DW 0 ; Assume no batch mode initially
444COMSPEC DB 64 DUP(0)
445comspec_end dw ?
446TRANS DW OFFSET TRANGROUP:COMMAND
447TRNSEG DW ?
448; BAS DEBUG
449TrnMvFlg DB 0 ; Indicate if transient portion has been moved
450
451In_Batch DB 0 ; Indicate if we are in Batch processing mode.
452Batch_Abort DB 0 ; Indicate if user wants to abort from batch mode.
453
454COMDRV DB ? ; DRIVE SPEC TO LOAD AUTOEXEC AND COMMAND
455MEMSIZ DW ?
456SUM DW ?
457EXTCOM DB 1 ; For init, pretend just did an external
458RETCODE DW ?
459CRIT_ERR_INFO DB ? ;G hold critical error flags for R,I,F
460rsrc_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;
466ECHOFLAG DB 00000001B ; low bit TRUE => echo commands
467SUPPRESS DB 1 ; used for echo, 1=echo line
468IO_SAVE DW ?
469RESTDIR DB 0
470PERMCOM DB 0 ; TRUE => permanent command
471SINGLECOM DW 0 ; TRUE => single command version
472VERVAL DW -1
473fFail DB 0 ; TRUE => FAIL all INT 24s
474IFFLAG DB 0 ; TRUE => If statement in progress
475
476FORFLAG DB 0 ; TRUE => FOR statement in progress
477FORPTR DW 0
478
479NEST DW 0 ; NESTED BATCH FILE COUNTER
480CALL_FLAG DB 0 ; NO CALL (BATCH COMMAND) IN PROGRESS
481CALL_BATCH_FLAG DB 0
482NEXT_BATCH DW 0 ; ADDRESS OF NEXT BATCH SEGMENT
483NULLFLAG DB 0 ; FLAG IF NO COMMAND ON COMMAND LINE
484COM_XLAT_ADDR DB 5 DUP (0) ;G BUFFER FOR TRANSLATE TABLE ADDRESS
485FUCASE_ADDR DB 5 DUP (0) ;AN000; BUFFER FOR FILE UCASE ADDRESS
486CRIT_MSG_OFF DW 0 ;AN000; SAVED CRITICAL ERROR MESSAGE OFFSET
487CRIT_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
490Dbcs_vector_addr DW 0 ;AN000; DBCS vector offset
491 DW 0 ;AN000; DBCS vector segment
492APPEND_STATE DW 0 ;AN020; current state of append (if flag = -1)
493APPEND_FLAG DB 0 ;AN020; set if APPEND state valid
494
495RE_OUT_APP DB 0
496RE_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
517InitFlag DB initINIT
518
519;These two bytes refed as a word
520PIPEFLAG DB 0
521PIPEFILES 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
532Pipe1 db "_:/"
533Pipe1T db 0
534 db "_______.___",0
535Pipe2 db "_:/"
536Pipe2T db 0
537 db "_______.___",0
538
539PIPEPTR DW ?
540PIPESTR DB 129 DUP(?)
541INPIPEPTR DW OFFSET ResGroup:PIPE1
542OUTPIPEPTR DW OFFSET ResGroup:PIPE2
543
544EXEC_BLOCK LABEL BYTE ; The data block for EXEC calls
545ENVIRSEG DW ?
546COM_PTR LABEL DWORD
547 DW 80H ; Point at unformatted parameters
548 DW ?
549COM_FCB1 LABEL DWORD
550 DW 5CH
551 DW ?
552COM_FCB2 LABEL DWORD
553 DW 6CH
554 DW ?
555
556TRANVARS LABEL BYTE ; Variables passed to transient
557 DW OFFSET ResGroup:THEADFIX
558MYSEG DW 0 ; Put our own segment here
559LTPA DW 0 ; WILL STORE TPA SEGMENT HERE
560RSWITCHAR DB "-"
561RDIRCHAR DB "/"
562 DW OFFSET ResGroup:EXT_EXEC
563MYSEG1 DW ?
564 DW OFFSET ResGroup:TREMCHECK
565MYSEG2 DW 0
566ResTest DW 0
567RES_TPA DW 0 ; Original TPA (not rounded to 64K)
568TranVarEnd LABEL BYTE
569
570olderrno dw ?
571
572RESMSGEND DW 0 ;AN000;; holds offset of msg end (end of resident)
573
574.xlist
575.xcref
576
577INCLUDE SYSMSG.INC ;AN000; include message services
578
579.list
580.cref
581
582ASSUME DS:RESGROUP,ES:RESGROUP,CS:RESGROUP
583
584MSG_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
587MSG_SERVICES <COMR,MSGDATA,COMMAND.CLA> ;AN054; get message services data and resident messages
588
589
590CRITICAL_MSG_START LABEL BYTE ;AN000; start of critical error messages
591
592MSG_SERVICES <COMR,COMMAND.CLD> ;AN000; get critical error messages
593
594DATARESEND LABEL BYTE ;AC060; end of resident portion if /msg not used
595
596PARSE_MSG_START LABEL BYTE ;AN000; start of parse error messages
597
598MSG_SERVICES <COMR,COMMAND.CLC> ;AN000; get parse error messages
599
600;AD060; DATARESEND LABEL BYTE ; end of resident portion if /msg not used
601
602EXTENDED_MSG_START LABEL BYTE ;AN000; start of extended error messages
603
604MSG_SERVICES <COMR,COMMAND.CLE> ;AN000; get extended error messages
605
606EXTMSGEND LABEL BYTE ;AN000; end of extended error messages
607
608include msgdcl.inc
609
610DATARES ENDS
611 END