2 ; SCCSID = @(#)tspc.asm 4.1 85/09/22
3 ; SCCSID = @(#)tspc.asm 4.1 85/09/22
4 TITLE COMMAND Transient Uninitialized
DATA
12 INCLUDE EA
.inc ;AN030;
16 ; Uninitialized transient data
17 TRANSPACE
SEGMENT PUBLIC BYTE
20 PUBLIC append_exec
;AN041;
48 PUBLIC concat_xa
;AN000;
54 PUBLIC DATE_DAY
;AN000;
55 PUBLIC DATE_MONTH
;AN000;
56 PUBLIC DATE_OUTPUT
;AN000;
57 PUBLIC DATE_TYPE
;AN000;
58 PUBLIC DATE_YEAR
;AN000;
76 PUBLIC dirflag
;AN015;
78 PUBLIC display_ioctl
;AN000;
79 PUBLIC display_mode
;AN000;
80 PUBLIC display_width
;AN000;
81 PUBLIC DRIVE_NUMBER
;AN000;
82 PUBLIC DRIVE_OUTPUT
;AN000;
83 PUBLIC DRIVE_TYPE
;AN000;
84 PUBLIC DRIVE_VALUE
;AN000;
91 PUBLIC ext_entered
;AN005;
92 PUBLIC ext_open_off
;AN000;
93 PUBLIC ext_open_parms
;AN000;
94 PUBLIC ext_open_seg
;AN000;
115 PUBLIC linperpag
;AN000;
120 PUBLIC msg_flag
;AN022;
121 PUBLIC msg_numb
;AN022;
128 PUBLIC parse_last
;AN018;
129 PUBLIC PARSE1_ADDR
;AN000;
130 PUBLIC PARSE1_CODE
;AN000;
131 PUBLIC PARSE1_OUTPUT
;AN000;
132 PUBLIC PARSE1_SYN
;AN000;
133 PUBLIC PARSE1_TYPE
;AN000;
140 PUBLIC print_err_flag
;AN000;
149 PUBLIC search_best_buf
150 PUBLIC search_curdir_buf
165 PUBLIC src_xa_seg
;AN000;
166 PUBLIC src_xa_size
;AN000;
170 ;AD061; PUBLIC string_ptr_2_sb ;AN000;
171 PUBLIC subst_buffer
;AN061;
175 PUBLIC TIME_FRACTION
;AN000;
176 PUBLIC TIME_HOUR
;AN000;
177 PUBLIC TIME_MINUTES
;AN000;
178 PUBLIC TIME_OUTPUT
;AN000;
179 PUBLIC TIME_SECONDS
;AN000;
180 PUBLIC TIME_TYPE
;AN000;
189 PUBLIC vol_ioctl_buf
;AC030;
190 PUBLIC vol_serial
;AC030;
191 PUBLIC vol_label
;AC030;
193 PUBLIC xa_cp_length
;AN030;
194 PUBLIC xa_cp_out
;AN030;
195 PUBLIC xa_list_attr
;AN030;
207 SRCXNAME
DB DIRSTRLEN
+ 20 DUP (?
) ;g buffer for name translate
208 TRGXNAME
DB DIRSTRLEN
+ 20 DUP (?
) ;g buffer for name translate
209 UCOMBUF
DB COMBUFLEN
+3 DUP(?
) ; Raw console buffer
210 COMBUF
DB COMBUFLEN
+3 DUP(?
) ; Cooked console buffer
211 USERDIR1
DB DIRSTRLEN
+3 DUP(?
) ; Storage for users current directory
212 EXECPATH
DB COMBUFLEN
+3 DUP(?
) ; Path for external command
213 RE_INSTR
DB DIRSTRLEN
+3+13 DUP (?
) ; path for input to redirection
215 ; Variables passed up from resident
228 RDEOF
LABEL BYTE ; Misc flags
232 concat_xa db 0 ;AN000; flag for XA on file concatenations
237 COMSW
DW ?
; Switches between command and 1st arg
238 ARG1S
DW ?
; Switches between 1st and 2nd arg
239 DESTSWITCH
LABEL WORD
240 ARG2S
DW ?
; Switches after 2nd arg
242 ARGTS
DW ?
; ALL switches except for COMSW
244 DESTCLOSED
LABEL BYTE
246 BYTCNT
DW ?
; Size of buffer between RES and TRANS
252 CHARBUF
DB 80 DUP (?
) ;line byte character buffer for xenix write
258 DESTNAME
DB 11 DUP(?
)
260 DESTDIR
DB DIRSTRLEN
DUP(?
) ; Directory for PATH searches
264 DIRBUF
DB DIRSTRLEN
+3 DUP(?
)
271 comma db 0 ;g flag set if +,, occurs
272 plus_comma db 0 ;g flag set if +,, occurs
273 dirflag db 0 ;AN015; set when pathcrunch called from DIR
274 parse_last dw 0 ;AN018; used to hold parsing position
276 system_cpage
DW 0 ;AC001; used for CHCP variable
277 src_XA_size
DW 0 ;AN000; size of extended attributes
278 src_XA_seg
DW 0 ;AN000; segment of extended attributes
280 ext_open_parms
label byte ;AN000; extended open parameter list
281 ;emg340 ext_open_off dw offset trangroup:srcbuf ;AN000; offset of file name
282 ext_open_off dw ?
;AN030; offset of extended attributes
283 ext_open_seg dw ?
;AN000; segment of extended attributes
284 dw 0 ;AN000; no additional parameters
286 XA_cp_out
label byte ;AN030; list for one extended attribute
287 DW 1 ;AN030; count of entries
288 DB EAISBINARY
;AN030; ea_type
289 DW EASYSTEM
;AN030; ea_flags
291 DB 2 ;AN030; ea_namelen
292 DW 2 ;AN030; ea_valuelen
293 DB "CP" ;AN030; ea_name
294 xa_list_attr
DW 0 ;AC030; code page
295 xa_cp_length
DW $-XA_cp_out
;AN030; length of buffer
299 arg_buf db 128 dup (?
)
300 file_size_low dw ?
;AC000;
301 file_size_high dw ?
;AC000;
303 ;AD061;string_ptr_2_sb dw ?
315 ROM_CALL
DB ?
; flag for rom function
325 DESTBUF
DB DIRSTRLEN
+ 20 DUP (?
)
338 SRCBUF
DB DIRSTRLEN
+ 20 DUP (?
)
343 SCANBUF
DB DIRSTRLEN
+ 20 DUP (?
)
353 objcnt db ?
; Used in copy
356 BATHAND
DW ?
; Batch handle
363 ext_entered db 0 ;AN005;
365 display_ioctl db 0 ;AN000; info level
366 db 0 ;AN000; reserved
367 dw crt_ioctl_ln
;AN000; length of data
368 dw ?
;AN000; control flags
369 display_mode db ?
;AN000; display mode, colors
370 db 0 ;AN000; reserved
372 dw ?
;AN000; display width (PELS)
373 dw ?
;AN000; display length (PELS)
374 display_width dw ?
;AN000; display width
375 linperpag dw linesperpage
;AN000; display length (default to linesperpage)
377 vol_ioctl_buf
label byte ;AN000; buffer for ioctl volume label/serial call
378 dw 0 ;AN000; info level
379 vol_serial dd 0 ;AN000; volume serial number
380 vol_label db 11 dup (" ") ;AN000; volume label - init to blanks
381 db 8 dup (" ") ;AN000; file system type
385 msg_flag db ?
;AN022; flag set if non-utility message issued
386 msg_numb dw 0 ;AN022; set with extended error message issued
387 append_exec db 0 ;AN041; set if internal append executed
388 print_err_flag dw 0 ;AN000; flag set if error during sysdispmsg
389 subst_buffer db parm_block_size
*2 dup (0);AN061;
395 ; Data declarations taken out of parse.asm
397 arg arg_unit
<> ; pointers, arg count, string buffer
398 argbufptr
DW ?
; index for argv[].argpointer
399 tpbuf
DB 128 DUP (?
) ; temporary buffer
400 LAST_ARG
DW ?
; point at which to accumulate switch info
401 comptr dw ?
; ptr into combuf
403 ; Data declarations taken out of path.asm
404 fbuf find_buf
<> ; dma buffer for findfirst/findnext
405 pathinfo
DW 3 DUP (?
) ; ES, SI(old), and SI(new) of user path
406 psep_char
DB ?
; '/' or '\'
407 search_best
DB (?
) ; best code, best filename so far
409 search_best_buf
DB fname_max_len
DUP (?
)
410 search_curdir_buf
DB 64 DUP (?
) ; a place for CurDir info, if successful
411 search_error
DW (?
) ; address of error message to be printed
413 ; Data declarations taken out of tbatch.asm
416 zflag db ?
; Used by typefil to indicate ^Z's
418 DW 80H
DUP(0) ; Init to 0 to make sure the linker is not fooled
421 INTERNATVARS internat_block
<>
422 DB (internat_block_max
- ($ - INTERNATVARS
)) DUP (?
)
424 BatBufPos
DW ?
; integer position in buffer of next byte
425 BatBuf
DB BatLen
DUP (?
)
428 ; *****************************************************
430 ; DATA STARTING HERE WAS ADDED BY EMG FOR 4.00
431 ; FOR IMPLEMENTATION OF COMMON PARSE ROUTINE
432 ; *****************************************************
434 ; COMMON PARSE OUTPUT BLOCKS
439 ; Common output blocks for PARSE number, complex, or string values.
442 PARSE1_OUTPUT
LABEL BYTE ;AN000;
443 PARSE1_TYPE
DB 0 ;AN000; type
444 PARSE1_CODE
DB 0 ;AN000; return value
445 PARSE1_SYN
DW 0 ;AN000; es offset of synonym
446 PARSE1_ADDR
DD 0 ;AN000; numeric value / address
450 ; Common output block for PARSE date strings.
453 DATE_OUTPUT
LABEL BYTE ;AN000;
454 DATE_TYPE
DB 0 ;AN000; type
455 DB 0 ;AN000; return value
456 DW 0 ;AN000; es offset of synonym
457 DATE_YEAR
DW 0 ;AN000; year
458 DATE_MONTH
DB 0 ;AN000; month
459 DATE_DAY
DB 0 ;AN000; day
462 ; Common output block for PARSE time strings.
465 TIME_OUTPUT
LABEL BYTE ;AN000;
466 TIME_TYPE
DB 0 ;AN000; type
467 DB 0 ;AN000; return value
468 DW 0 ;AN000; es offset of synonym
469 TIME_HOUR
DB 0 ;AN000; hour
470 TIME_MINUTES
DB 0 ;AN000; minutes
471 TIME_SECONDS
DB 0 ;AN000; seconds
472 TIME_FRACTION
DB 0 ;AN000; hundredths
475 ; Common output block for PARSE drive specifier (one based drive number).
478 DRIVE_OUTPUT
LABEL BYTE ;AN000;
479 DRIVE_TYPE
DB 0 ;AN000; type
480 DRIVE_VALUE
DB 0 ;AN000; return value
481 DW 0 ;AN000; es offset of synonym
482 DRIVE_NUMBER
DB 0 ;AN000; drive number
483 DB 0,0,0 ;AN000; reserved
485 TRANSPACEEND
LABEL BYTE