1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
|
page 80,132
; SCCSID = @(#)tspc.asm 4.1 85/09/22
; SCCSID = @(#)tspc.asm 4.1 85/09/22
TITLE COMMAND Transient Uninitialized DATA
INCLUDE comsw.asm
.xlist
.xcref
INCLUDE DOSSYM.INC
INCLUDE comequ.asm
INCLUDE comseg.asm
INCLUDE EA.inc ;AN030;
.list
.cref
; Uninitialized transient data
TRANSPACE SEGMENT PUBLIC BYTE
PUBLIC ALLSWITCH
PUBLIC append_exec ;AN041;
PUBLIC arg
PUBLIC argbufptr
PUBLIC ARGC
PUBLIC ARG1S
PUBLIC ARG2S
PUBLIC ARGTS
PUBLIC arg_buf
PUBLIC ASCII
PUBLIC BatBuf
PUBLIC BatBufEnd
PUBLIC BatBufPos
PUBLIC BATHAND
PUBLIC BINARY
PUBLIC BITS
PUBLIC BWDBUF
PUBLIC BYTCNT
PUBLIC bytes_free
PUBLIC CFLAG
PUBLIC CHARBUF
PUBLIC CHKDRV
PUBLIC COM
PUBLIC COMBUF
PUBLIC comma
PUBLIC comptr
PUBLIC comspec_flag
PUBLIC COMSW
PUBLIC CONCAT
PUBLIC concat_xa ;AN000;
PUBLIC copy_Num
PUBLIC CPDATE
PUBLIC CPTIME
PUBLIC cpyflag
PUBLIC CURDRV
PUBLIC DATE_DAY ;AN000;
PUBLIC DATE_MONTH ;AN000;
PUBLIC DATE_OUTPUT ;AN000;
PUBLIC DATE_TYPE ;AN000;
PUBLIC DATE_YEAR ;AN000;
PUBLIC DEST
PUBLIC DESTBUF
PUBLIC DestClosed
PUBLIC DESTDIR
PUBLIC DESTFCB
PUBLIC DESTFCB2
PUBLIC DESTHAND
PUBLIC DESTINFO
PUBLIC DESTISDEV
PUBLIC DESTISDIR
PUBLIC DESTNAME
PUBLIC DESTSIZ
PUBLIC DESTSWITCH
PUBLIC DESTTAIL
PUBLIC DESTVARS
PUBLIC DIRBUF
PUBLIC DIRCHAR
PUBLIC dirflag ;AN015;
PUBLIC Dir_Num
PUBLIC display_ioctl ;AN000;
PUBLIC display_mode ;AN000;
PUBLIC display_width ;AN000;
PUBLIC DRIVE_NUMBER ;AN000;
PUBLIC DRIVE_OUTPUT ;AN000;
PUBLIC DRIVE_TYPE ;AN000;
PUBLIC DRIVE_VALUE ;AN000;
PUBLIC ELCNT
PUBLIC ELPOS
PUBLIC EXECPATH
PUBLIC EXEC_ADDR
PUBLIC EXEFCB
PUBLIC expand_star
PUBLIC ext_entered ;AN005;
PUBLIC ext_open_off ;AN000;
PUBLIC ext_open_parms ;AN000;
PUBLIC ext_open_seg ;AN000;
PUBLIC FBUF
PUBLIC FILECNT
PUBLIC file_size_high
PUBLIC file_size_low
PUBLIC FILTYP
PUBLIC FIRSTDEST
PUBLIC FRSTSRCH
PUBLIC FULLSCR
PUBLIC GOTOLEN
PUBLIC HEADCALL
PUBLIC ID
PUBLIC IDLEN
PUBLIC IFNOTFLAG
PUBLIC if_not_count
PUBLIC INEXACT
PUBLIC INTERNATVARS
PUBLIC KPARSE
PUBLIC last_arg
PUBLIC LINCNT
PUBLIC LINLEN
PUBLIC linperpag ;AN000;
PUBLIC major_ver_num
PUBLIC MELCOPY
PUBLIC MELSTART
PUBLIC minor_ver_num
PUBLIC msg_flag ;AN022;
PUBLIC msg_numb ;AN022;
PUBLIC NOWRITE
PUBLIC NXTADD
PUBLIC objcnt
PUBLIC one_char_val
PUBLIC PARM1
PUBLIC PARM2
PUBLIC parse_last ;AN018;
PUBLIC PARSE1_ADDR ;AN000;
PUBLIC PARSE1_CODE ;AN000;
PUBLIC PARSE1_OUTPUT ;AN000;
PUBLIC PARSE1_SYN ;AN000;
PUBLIC PARSE1_TYPE ;AN000;
PUBLIC PATHCNT
PUBLIC pathinfo
PUBLIC PATHPOS
PUBLIC PATHSW
PUBLIC PLUS
PUBLIC plus_comma
PUBLIC print_err_flag ;AN000;
PUBLIC psep_char
PUBLIC RCH_ADDR
PUBLIC RDEOF
PUBLIC RE_INSTR
PUBLIC RESSEG
PUBLIC SCANBUF
PUBLIC SDIRBUF
PUBLIC search_best
PUBLIC search_best_buf
PUBLIC search_curdir_buf
PUBLIC search_error
PUBLIC SKPDEL
PUBLIC SOURCE
PUBLIC SPECDRV
PUBLIC SRCBUF
PUBLIC SRCHAND
PUBLIC SRCINFO
PUBLIC SRCISDEV
PUBLIC SRCISDIR
PUBLIC SRCPT
PUBLIC SRCSIZ
PUBLIC SRCTAIL
PUBLIC SRCVARS
PUBLIC srcxname
PUBLIC src_xa_seg ;AN000;
PUBLIC src_xa_size ;AN000;
PUBLIC STACK
PUBLIC STARTEL
PUBLIC string_ptr_2
;AD061; PUBLIC string_ptr_2_sb ;AN000;
PUBLIC subst_buffer ;AN061;
PUBLIC SWITCHAR
PUBLIC system_cpage
PUBLIC TERMREAD
PUBLIC TIME_FRACTION ;AN000;
PUBLIC TIME_HOUR ;AN000;
PUBLIC TIME_MINUTES ;AN000;
PUBLIC TIME_OUTPUT ;AN000;
PUBLIC TIME_SECONDS ;AN000;
PUBLIC TIME_TYPE ;AN000;
PUBLIC TPA
PUBLIC tpbuf
PUBLIC TRANSPACEEND
PUBLIC TRAN_TPA
PUBLIC trgxname
PUBLIC UCOMBUF
PUBLIC USERDIR1
PUBLIC vol_drv
PUBLIC vol_ioctl_buf ;AC030;
PUBLIC vol_serial ;AC030;
PUBLIC vol_label ;AC030;
PUBLIC WRITTEN
PUBLIC xa_cp_length ;AN030;
PUBLIC xa_cp_out ;AN030;
PUBLIC xa_list_attr ;AN030;
PUBLIC zflag
IF IBM
PUBLIC ROM_CALL
PUBLIC ROM_CS
PUBLIC ROM_IP
ENDIF
ORG 0
ZERO = $
SRCXNAME DB DIRSTRLEN + 20 DUP (?) ;g buffer for name translate
TRGXNAME DB DIRSTRLEN + 20 DUP (?) ;g buffer for name translate
UCOMBUF DB COMBUFLEN+3 DUP(?) ; Raw console buffer
COMBUF DB COMBUFLEN+3 DUP(?) ; Cooked console buffer
USERDIR1 DB DIRSTRLEN+3 DUP(?) ; Storage for users current directory
EXECPATH DB COMBUFLEN+3 DUP(?) ; Path for external command
RE_INSTR DB DIRSTRLEN+3+13 DUP (?) ; path for input to redirection
; Variables passed up from resident
HEADCALL LABEL DWORD
DW ?
RESSEG DW ?
TPA DW ?
SWITCHAR DB ?
DIRCHAR DB ?
EXEC_ADDR DD ?
RCH_ADDR DD ?
fTest DW ?
TRAN_TPA DW ?
CHKDRV DB ?
RDEOF LABEL BYTE ; Misc flags
IFNOTFLAG LABEL BYTE
FILTYP DB ?
CURDRV DB ?
concat_xa db 0 ;AN000; flag for XA on file concatenations
CONCAT LABEL BYTE
PARM1 DB ?
ARGC LABEL BYTE
PARM2 DB ?
COMSW DW ? ; Switches between command and 1st arg
ARG1S DW ? ; Switches between 1st and 2nd arg
DESTSWITCH LABEL WORD
ARG2S DW ? ; Switches after 2nd arg
ALLSWITCH LABEL WORD
ARGTS DW ? ; ALL switches except for COMSW
CFLAG DB ?
DESTCLOSED LABEL BYTE
SPECDRV DB ?
BYTCNT DW ? ; Size of buffer between RES and TRANS
NXTADD DW ?
FRSTSRCH DB ?
LINCNT DB ?
LINLEN DB ?
FILECNT DW ?
CHARBUF DB 80 DUP (?) ;line byte character buffer for xenix write
DESTFCB2 LABEL BYTE
IDLEN DB ?
ID DB 8 DUP(?)
COM DB 3 DUP(?)
DEST DB 37 DUP(?)
DESTNAME DB 11 DUP(?)
DESTFCB LABEL BYTE
DESTDIR DB DIRSTRLEN DUP(?) ; Directory for PATH searches
GOTOLEN LABEL WORD
BWDBUF LABEL BYTE
EXEFCB LABEL WORD
DIRBUF DB DIRSTRLEN+3 DUP(?)
SDIRBUF DB 12 DUP(?)
BITS DW ?
PATHCNT DW ?
PATHPOS DW ?
PATHSW DW ?
FULLSCR DW ?
comma db 0 ;g flag set if +,, occurs
plus_comma db 0 ;g flag set if +,, occurs
dirflag db 0 ;AN015; set when pathcrunch called from DIR
parse_last dw 0 ;AN018; used to hold parsing position
system_cpage DW 0 ;AC001; used for CHCP variable
src_XA_size DW 0 ;AN000; size of extended attributes
src_XA_seg DW 0 ;AN000; segment of extended attributes
ext_open_parms label byte ;AN000; extended open parameter list
;emg340 ext_open_off dw offset trangroup:srcbuf ;AN000; offset of file name
ext_open_off dw ? ;AN030; offset of extended attributes
ext_open_seg dw ? ;AN000; segment of extended attributes
dw 0 ;AN000; no additional parameters
XA_cp_out label byte ;AN030; list for one extended attribute
DW 1 ;AN030; count of entries
DB EAISBINARY ;AN030; ea_type
DW EASYSTEM ;AN030; ea_flags
DB ? ;AN030; ea_rc
DB 2 ;AN030; ea_namelen
DW 2 ;AN030; ea_valuelen
DB "CP" ;AN030; ea_name
xa_list_attr DW 0 ;AC030; code page
xa_cp_length DW $-XA_cp_out ;AN030; length of buffer
arg_buf db 128 dup (?)
file_size_low dw ? ;AC000;
file_size_high dw ? ;AC000;
string_ptr_2 dw ?
;AD061;string_ptr_2_sb dw ?
copy_Num dw ?
cpyflag db ?
Dir_Num DW ?
bytes_free dw ?
dw ?
major_ver_num dw ?
minor_ver_num dw ?
one_char_val db ?,0
vol_drv db ?
IF IBM
ROM_CALL DB ? ; flag for rom function
ROM_IP DW ?
ROM_CS DW ?
ENDIF
DESTVARS LABEL BYTE
DESTISDIR DB ?
DESTSIZ DB ?
DESTTAIL DW ?
DESTINFO DB ?
DESTBUF DB DIRSTRLEN + 20 DUP (?)
DESTHAND DW ?
DESTISDEV DB ?
FIRSTDEST DB ?
MELCOPY DB ?
MELSTART DW ?
SRCVARS LABEL BYTE
SRCISDIR DB ?
SRCSIZ DB ?
SRCTAIL DW ?
SRCINFO DB ?
SRCBUF DB DIRSTRLEN + 20 DUP (?)
SRCHAND DW ?
SRCISDEV DB ?
SCANBUF DB DIRSTRLEN + 20 DUP (?)
SRCPT DW ?
INEXACT DB ?
NOWRITE DB ?
BINARY DB ?
WRITTEN DW ?
TERMREAD DB ?
ASCII DB ?
PLUS DB ?
objcnt db ? ; Used in copy
CPDATE DW ?
CPTIME DW ?
BATHAND DW ? ; Batch handle
STARTEL DW ?
ELCNT DB ?
ELPOS DB ?
SKPDEL DB ?
SOURCE DB 11 DUP(?)
ext_entered db 0 ;AN005;
display_ioctl db 0 ;AN000; info level
db 0 ;AN000; reserved
dw crt_ioctl_ln ;AN000; length of data
dw ? ;AN000; control flags
display_mode db ? ;AN000; display mode, colors
db 0 ;AN000; reserved
dw ? ;AN023; colors
dw ? ;AN000; display width (PELS)
dw ? ;AN000; display length (PELS)
display_width dw ? ;AN000; display width
linperpag dw linesperpage ;AN000; display length (default to linesperpage)
vol_ioctl_buf label byte ;AN000; buffer for ioctl volume label/serial call
dw 0 ;AN000; info level
vol_serial dd 0 ;AN000; volume serial number
vol_label db 11 dup (" ") ;AN000; volume label - init to blanks
db 8 dup (" ") ;AN000; file system type
expand_star db ?
comspec_flag db ?
msg_flag db ? ;AN022; flag set if non-utility message issued
msg_numb dw 0 ;AN022; set with extended error message issued
append_exec db 0 ;AN041; set if internal append executed
print_err_flag dw 0 ;AN000; flag set if error during sysdispmsg
subst_buffer db parm_block_size*2 dup (0);AN061;
;;;; IF KANJI 3/3/KK
KPARSE DB ?
;;;; ENDIF 3/3/KK
; Data declarations taken out of parse.asm
arg arg_unit <> ; pointers, arg count, string buffer
argbufptr DW ? ; index for argv[].argpointer
tpbuf DB 128 DUP (?) ; temporary buffer
LAST_ARG DW ? ; point at which to accumulate switch info
comptr dw ? ; ptr into combuf
; Data declarations taken out of path.asm
fbuf find_buf <> ; dma buffer for findfirst/findnext
pathinfo DW 3 DUP (?) ; ES, SI(old), and SI(new) of user path
psep_char DB ? ; '/' or '\'
search_best DB (?) ; best code, best filename so far
fname_max_len equ 13
search_best_buf DB fname_max_len DUP (?)
search_curdir_buf DB 64 DUP (?) ; a place for CurDir info, if successful
search_error DW (?) ; address of error message to be printed
; Data declarations taken out of tbatch.asm
if_not_count DW ?
zflag db ? ; Used by typefil to indicate ^Z's
DW 80H DUP(0) ; Init to 0 to make sure the linker is not fooled
STACK LABEL WORD
INTERNATVARS internat_block <>
DB (internat_block_max - ($ - INTERNATVARS)) DUP (?)
BatBufPos DW ? ; integer position in buffer of next byte
BatBuf DB BatLen DUP (?)
BatBufEnd DW ?
; *****************************************************
; EMG 4.00
; DATA STARTING HERE WAS ADDED BY EMG FOR 4.00
; FOR IMPLEMENTATION OF COMMON PARSE ROUTINE
; *****************************************************
;
; COMMON PARSE OUTPUT BLOCKS
;
;
; Common output blocks for PARSE number, complex, or string values.
;
PARSE1_OUTPUT LABEL BYTE ;AN000;
PARSE1_TYPE DB 0 ;AN000; type
PARSE1_CODE DB 0 ;AN000; return value
PARSE1_SYN DW 0 ;AN000; es offset of synonym
PARSE1_ADDR DD 0 ;AN000; numeric value / address
; of string value
;
; Common output block for PARSE date strings.
;
DATE_OUTPUT LABEL BYTE ;AN000;
DATE_TYPE DB 0 ;AN000; type
DB 0 ;AN000; return value
DW 0 ;AN000; es offset of synonym
DATE_YEAR DW 0 ;AN000; year
DATE_MONTH DB 0 ;AN000; month
DATE_DAY DB 0 ;AN000; day
;
; Common output block for PARSE time strings.
;
TIME_OUTPUT LABEL BYTE ;AN000;
TIME_TYPE DB 0 ;AN000; type
DB 0 ;AN000; return value
DW 0 ;AN000; es offset of synonym
TIME_HOUR DB 0 ;AN000; hour
TIME_MINUTES DB 0 ;AN000; minutes
TIME_SECONDS DB 0 ;AN000; seconds
TIME_FRACTION DB 0 ;AN000; hundredths
;
; Common output block for PARSE drive specifier (one based drive number).
;
DRIVE_OUTPUT LABEL BYTE ;AN000;
DRIVE_TYPE DB 0 ;AN000; type
DRIVE_VALUE DB 0 ;AN000; return value
DW 0 ;AN000; es offset of synonym
DRIVE_NUMBER DB 0 ;AN000; drive number
DB 0,0,0 ;AN000; reserved
TRANSPACEEND LABEL BYTE
TRANSPACE ENDS
END
|