Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-1


				 page 80,132
				;	SCCSID = @(#)tbatch.asm 4.5 85/10/01
				;	SCCSID = @(#)tbatch.asm 4.5 85/10/01
				TITLE	Batch processing routines
				
				
				.list
				.cref
				
				
 0000				DATARES 	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	BATCH:WORD
					EXTRN	Batch_Abort:byte
					EXTRN	call_batch_flag:byte
					EXTRN	ECHOFLAG:BYTE
					EXTRN	forflag:byte
					EXTRN	forptr:word
					EXTRN	IFFlag:BYTE
					EXTRN	In_Batch:byte
					EXTRN	LTPA:WORD
					EXTRN	Nest:word
					EXTRN	next_batch:word
					EXTRN	nullflag:byte
					EXTRN	PIPEFLAG:BYTE
					EXTRN	RES_TPA:WORD
					EXTRN	SINGLECOM:WORD
					EXTRN	SUPPRESS:BYTE		;AC000;
 0000				DATARES ENDS
				
 0000				TRANDATA	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	BADBAT_PTR:WORD
					EXTRN	Extend_buf_ptr:word	;AC000;
					EXTRN	Extend_buf_sub:byte	;AN022;
					EXTRN	msg_disp_class:byte	;AC000;
					EXTRN	NEEDBAT_PTR:WORD
					EXTRN	pausemes_ptr:word	;AC000;
 0000				TRANDATA	ENDS
				
 0000				TRANSPACE	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	BatBufPos:WORD
					EXTRN	BATHAND:WORD
					EXTRN	bwdbuf:byte		;AN022;
					EXTRN	BYTCNT:WORD
					EXTRN	COMBUF:BYTE
					EXTRN	EXECPATH:BYTE
					EXTRN	ID:BYTE
					EXTRN	RCH_ADDR:DWORD
					EXTRN	RESSEG:WORD
					EXTRN	string_ptr_2:word	;AC000;
					EXTRN	TPA:WORD
					EXTRN	TRAN_TPA:WORD
 0000				TRANSPACE	ENDS
				
 0000				TRANCODE	SEGMENT PUBLIC BYTE
				
				ASSUME	CS:TRANGROUP,DS:NOTHING,ES:NOTHING,SS:NOTHING
				
					EXTRN	cerror:near
					EXTRN	tcommand:near
				
				;---------------
				
 0000				TRANSPACE	SEGMENT PUBLIC BYTE	;AC000;
				    extrn   arg:byte			; the arg structure!
 0000				transpace   ends
				;---------------
				
				Break	<PromptBat - Open or wait for batch file>
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-2
PromptBat - Open or wait for batch file                     

				
				;
				; Open the batch file.	If we cannot find the batch file.  If the media is
				; changeable, we prompt for the change.  Otherwise, we terminate the batch
				; file.  Leave segment registers alone.
				;
				
				Procedure   PromptBat,NEAR
 0000                        1	PromptBat    PROC    NEAR 
					ASSUME	DS:ResGroup,ES:NOTHING
					invoke	BATOPEN 			; attempt to open batch file
 0000  E8 0000 E             1		CALL    BATOPEN 
					retnc
 0003  72 01                 2	    jc   ??0000                           ; 
 0005                        3	??0001: 
 0005  C3                    3		RET 
 0006                        2	    ??0000:                                  ; 
 0006  83 FA 02				cmp	dx,error_file_not_found 	;AN022; Ask for diskette if file not found
 0009  74 0A				jz	Bat_Remcheck			;AN022;
 000B  83 FA 03				cmp	dx,error_path_not_found 	;AN022; Ask for diskette if path not found
 000E  74 05				jz	Bat_Remcheck			;AN022;    Otherwise, issue message and exit
					invoke	output_batch_name		;AN022; set up batch name in bwdbuf
 0010  E8 0048 R             1		CALL    output_batch_name 
 0013  EB 13				jmp	short BatDie			;AN022;
				
 0015				Bat_Remcheck:					;AN022; Go see if media is removable
 0015  2E: FF 1E 0000 E			CALL	[RCH_ADDR]			; DX has error number
 001A  74 17				JZ	AskForBat			; Media is removable
				;
				; The media is not changeable.	Turn everything off.
				;
					invoke	ForOff
 001C  E8 0000 E             1		CALL    ForOff 
					invoke	PipeOff
 001F  E8 0000 E             1		CALL    PipeOff 
 0022  A2 0000 E			MOV	IfFlag,AL			; No If in progress.
 0025  BA 0000 E			MOV	DX,OFFSET TRANGROUP:BADBAT_ptr
				
 0028				BatDie:
 0028  E8 03ED R			call	BatchOff
 002B  0E				PUSH	CS
 002C  1F				POP	DS
					ASSUME	DS:TranGroup
					invoke	std_eprintf			;AC022; display message
 002D  E8 0000 E             1		CALL    std_eprintf 
				
				;
				; TCOMMAND resets the stack.  This is the equivalent of a non-local goto.
				;
 0030  E9 0000 E			JMP	TCOMMAND			; he cleans off stack
				
				;
				; Ask the user to reinsert the batch file
				;
 0033				ASKFORBAT:
					ASSUME	DS:ResGroup
 0033  1E				PUSH	DS
 0034  0E				PUSH	CS
 0035  1F				POP	DS
					ASSUME	DS:TranGroup
 0036  BA 0000 E			MOV	DX,OFFSET TRANGROUP:NEEDBAT_ptr  ;AN022;
					invoke	std_eprintf			 ;Prompt for batch file on stderr
 0039  E8 0000 E             1		CALL    std_eprintf 
 003C  BA 0000 E			mov	dx,offset trangroup:pausemes_ptr ;AN000; get second part of message
					invoke	std_eprintf			 ;AN000; print it to stderr
 003F  E8 0000 E             1		CALL    std_eprintf 
 0042  E8 0073 R			CALL	GetKeystroke
 0045  1F				POP	DS
					ASSUME	DS:ResGroup
 0046  EB B8				jmp	PromptBat
				EndProc PromptBat
 0048                        1	PromptBat    ENDP 
				
				;****************************************************************
				;*
				;* ROUTINE:	Output_batch_name
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-3
PromptBat - Open or wait for batch file                     

				;*
				;* FUNCTION:	Sets up batch name to be printed on extended error
				;*
				;* INPUT:	DX - extended error number
				;*
				;* OUTPUT:	Ready to call print routine
				;*
				;****************************************************************
				
				public	output_batch_name			;AN022;
				
 0048				Output_batch_name    proc near			;AN022;
				
 0048  1E				push	ds				;AN022; save resident segment
 0049  8E 1E 0000 E			mov	ds,[batch]			;AN022; get batch file segment
				assume	DS:nothing				;AN022;
 004D  BE 001F				mov	SI,BatFile			;AN022; get offset of batch file
					invoke	dstrlen 			;AN022; get length of string
 0050  E8 0000 E             1		CALL    dstrlen 
 0053  BF 0000 E			mov	di,offset Trangroup:bwdbuf	;AN022; target for batch name
 0056  F3/ A4				rep	movsb				;AN022; move the name
				
 0058  0E				push	cs				;AN022; get local segment
 0059  1F				pop	ds				;AN022;
				assume	DS:trangroup				;AN022;
 005A  89 16 0000 E			mov	extend_buf_ptr,dx		;AN022; put message number in block
 005E  C6 06 0000 E 01			mov	msg_disp_class,ext_msg_class	;AN022; set up extended error msg class
 0063  BA 0000 E			mov	dx,offset TranGroup:Extend_Buf_ptr   ;AN022; get extended message pointer
 0066  C7 06 0000 E 0000 E		mov	string_ptr_2,offset trangroup:bwdbuf ;AN022; point to substitution
 006C  C6 06 0000 E 01			mov	extend_buf_sub,one_subst	;AN022; set up for one subst
 0071  1F				pop	ds				;AN022; restore data segment
				
 0072  C3				ret					;AN022; return
				
 0073				Output_batch_name    endp			;AN022;
				
				Break	<GetKeystroke - get a keystroke and flush queue>
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-4
GetKeystroke - get a keystroke and flush queue              

				
				;
				; read the next keystroke.  Since there may be several characters in the queue
				; after the one we ask for (function keys/Kanji), we need to flush the queue
				; AFTER waiting.
				;
				Procedure   GetKeyStroke,NEAR
 0073                        1	GetKeyStroke    PROC    NEAR 
				;
				; read any character at any mode, interim mode or not.
				;
				
 0073  52				PUSH	DX					;AN000;  3/3/KK
 0074  B8 6302				MOV	AX,(ECS_call SHL 8) OR GetInterimMode	;AN000;  3/3/KK
 0077  CD 21				INT	int_command				;AN000;  3/3/KK
 0079  52				PUSH	DX					;AN000;  save interim state 3/3/KK
 007A  B8 6301				MOV	AX,(ECS_call SHL 8) OR SetInterimMode	;AN000;  3/3/KK
 007D  B2 01				MOV	DL,InterimMode				;AN000;  3/3/KK
 007F  CD 21				INT	int_command				;AN000;  3/3/KK
				
 0081  B8 0C08				MOV	AX,(STD_CON_INPUT_FLUSH SHL 8) OR STD_CON_INPUT_no_echo
 0084  CD 21				INT	int_command		; Get character with KB buffer flush
 0086  B8 0C00				MOV	AX,(STD_CON_INPUT_FLUSH SHL 8) + 0
 0089  CD 21				INT	int_command
				
 008B  B8 6301				MOV	AX,(ECS_call SHL 8) OR SetInterimMode	;AN000;  3/3/KK
 008E  5A				POP	DX					;AN000;  restore interim state 3/3/KK
 008F  CD 21				INT	int_command				;AN000;  3/3/KK
 0091  5A				POP	DX					;AN000;  3/3/KK
				
					return
 0092                        1	??0002: 
 0092  C3                    1		RET 
				EndProc GetKeyStroke
 0093                        1	GetKeyStroke    ENDP 
				
				Break	<ReadBat - read 1 line from batch file>
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-5
ReadBat - read 1 line from batch file                       

				
				;
				; ReadBat - read a single line from the batch file.  Perform all substitutions
				; as appropriate
				;
				
				Procedure   ReadBat,NEAR
 0093                        1	ReadBat    PROC    NEAR 
					ASSUME	DS:ResGroup,ES:TranGroup
 0093  C6 06 0000 E 01			mov	suppress,yes_echo		;g initialize line suppress status
 0098  F6 06 0000 E FF			test	byte ptr [Batch_Abort],-1
 009D  75 08				jnz	Trying_To_Abort
 009F  C6 06 0000 E 01			mov	byte ptr [In_Batch],1		; set flag to indicate batch job
 00A4  E8 0000 R			CALL	PromptBat
				
 00A7				Trying_To_Abort:
 00A7  BF 0002 E			MOV	DI,OFFSET TRANGROUP:COMBUF+2
				
				;
				; Save position and try to scan for first non delimiter.
				;
				
 00AA				TESTNOP:
 00AA  8C D8				MOV	AX,DS
 00AC  8E 1E 0000 E			MOV	DS,Batch
					ASSUME	DS:NOTHING
 00B0  FF 36 0007			PUSH	WORD PTR DS:[BatSeek]
 00B4  FF 36 0009			PUSH	WORD PTR DS:[BatSeek+2] 	; save current location.
 00B8  8E D8				MOV	DS,AX
					ASSUME	DS:ResGroup
					invoke	SkipDelim			; skip to first non-delim
 00BA  E8 0000 E             1		CALL    SkipDelim 
				;
				; If the first non-delimiter is not a :  (label), we reseek back to the
				; beginning and read the line.
				;
 00BD  3C 3A				CMP	AL,':'                          ; is it a label?
 00BF  59				POP	CX
 00C0  5A				POP	DX				; restore position in bat file
 00C1  74 33				JZ	NopLine 			; yes, resync everything.
 00C3  F7 06 0000 E FFFF		TEST	[BATCH],-1			; are we done with the batch file?
 00C9  74 3A				JZ	RdBat
				
 00CB  3C 40				CMP	AL, NO_ECHO_CHAR		;g see if user wants to suppress line
 00CD  75 08				JNZ	SET_BAT_POS			;g no - go and set batch file position
 00CF  C6 06 0000 E 00			MOV	SUPPRESS, NO_ECHO		;g yes set flag to indicate
 00D4  EB 2F 90				jmp	Rdbat				;g go read batch file
				
 00D7				SET_BAT_POS:					;g
 00D7  1E				PUSH	DS
 00D8  8E 1E 0000 E			MOV	DS,Batch
					ASSUME	DS:NOTHING
 00DC  89 16 0007			MOV	WORD PTR DS:[BatSeek],DX	; reseek back to beginning
 00E0  89 0E 0009			MOV	WORD PTR DS:[BatSeek+2],CX
 00E4  1F				POP	DS
					ASSUME	DS:ResGroup
 00E5  B8 4200				MOV	AX,(LSEEK SHL 8) + 0		; seek back
 00E8  CD 21				INT	int_command
 00EA  26: C7 06 0000 E FFFF		MOV	BatBufPos,-1			; nuke batch buffer position
 00F1  33 C9				xor	cx,cx				; Initialize line length to zero
 00F3  EB 10 90				JMP	RdBat
				;
				; The first non-delimiter is a :.  This line is not echoed and is ignored.
				; We eat characters until a CR is seen.
				;
				
 00F6				NOPLINE:
 00F6  E8 01F3 R			CALL	SkipToEOL
					invoke	GetBatByt			; eat trailing LF
 00F9  E8 0000 E             1		CALL    GetBatByt 
 00FC  F7 06 0000 E FFFF		TEST	[BATCH],-1			; are we done with the batch file?
 0102  75 A6				JNZ	TESTNOP 			; no, go get another line
					return					; Hit EOF
 0104                        1	??0003: 
 0104  C3                    1		RET 
				
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-6
ReadBat - read 1 line from batch file                       

				;
				; Read a line into the buffer pointed to by ES:DI.  If any %s are seen in the
				; input, we are to consider two special cases:
				;
				;   %0 to %9	These represent replaceable parameters from the batch segment
				;   %sym%	This is a symbol from the environment
				;
				
 0105				RDBAT:
					invoke	GetBatByt
 0105  E8 0000 E             1		CALL    GetBatByt 
 0108  41				inc	cx				; Inc the line length
 0109  81 F9 0080			cmp	cx,COMBUFLEN			; Is it too long?
 010D  73 44				jae	TooLong 			; Yes - handle it, handle it
				;
				; See if we have a parameter character.
				;
 010F  3C 25				CMP	AL,'%'                          ; Check for parameter
 0111  74 4A				JZ	NEEDPARM
				;
				; no parameter character.  Store it as usual and see if we are done.
				;
				
 0113				SAVBATBYT:
 0113  AA				STOSB
 0114  3C 0D				CMP	AL,0DH				; End of line found?
 0116  75 ED				JNZ	RDBAT				; no, go for more
				;
				; We have read in an entire line.  Decide whether we should echo the command
				; line or not.
				;
				
 0118				Found_EOL:
 0118  81 EF 0003 E			SUB	DI,OFFSET TRANGROUP:COMBUF+3
 011C  8B C7				MOV	AX,DI				; remember that we've not counted the CR
 011E  26: A2 0001 E			MOV	ES:[COMBUF+1],AL		; Set length of line
					invoke	GetBatByt			; Eat linefeed
 0122  E8 0000 E             1		CALL    GetBatByt 
					invoke	BATCLOSE
 0125  E8 0000 E             1		CALL    BATCLOSE 
 0128  80 3E 0000 E 00			CMP	SUPPRESS, NO_ECHO		;G
 012D  74 07				JZ	Reset				;G
 012F  F6 06 0000 E 01			test	[echoflag],1			; To echo or not to echo, that is the
 0134  75 04				jnz	try_nextflag
				
 0136				Reset:
 0136  0E				PUSH	CS				;  question.  (Profound, huh?)
 0137  1F				POP	DS				; Go back to local segment
					retz					; no echoing here...
 0138  74 CA                 2		    ??0004:  jz    ret_l           ; 
				;
				; Echo the command line with appropriate CRLF...
				;
				
				
 013A				try_nextflag:
 013A  80 3E 0000 E 01			cmp	nullflag,nullcommand		;G was there a command last time?
 013F  74 03				jz	No_crlf_print			;G no - don't print crlf
					invoke	CRLF2				;G  Print out prompt
 0141  E8 0000 E             1		CALL    CRLF2 
				
 0144				no_crlf_print:
					invoke	PRINT_PROMPT			;G
 0144  E8 0000 E             1		CALL    PRINT_PROMPT 
 0147  0E				PUSH	CS				;G change data segment
 0148  1F				POP	DS				;G
				
				ASSUME DS:TRANGROUP
 0149  BA 0002 E			mov	dx,OFFSET TRANGROUP:COMBUF+2	; get command line for echoing
					invoke	CRPRINT
 014C  E8 0000 E             1		CALL    CRPRINT 
					invoke	CRLF2
 014F  E8 0000 E             1		CALL    CRLF2 
					return
 0152                        1	??0005: 
 0152  C3                    1		RET 
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-7
ReadBat - read 1 line from batch file                       

				;
				; The line was too long.  Eat remainder of input text up until the CR
				;
 0153				TooLong:
					ASSUME	DS:ResGroup
 0153  3C 0D				cmp	al,0dh				; Has the end of the line been reached?
 0155  74 03				jz	Ltlcont 			; Yes, continue
 0157  E8 01F3 R			CALL	SkipToEOL			; Eat remainder of line
				
 015A				Ltlcont:
 015A  AA				stosb					; Terminate the command
 015B  EB BB				jmp	Found_EOL			; Go process the valid part of the line
				;
				; We have found a parameter lead-in character.	Check for the 0-9 case first
				;
				
 015D				NEEDPARM:
					invoke	GetBatByt			; get next character
 015D  E8 0000 E             1		CALL    GetBatByt 
 0160  3C 25				CMP	AL,'%'                          ; Check for two consecutive %
 0162  74 AF				JZ	SAVBATBYT			; if so, replace with a single %
 0164  3C 0D				CMP	AL,0Dh				; Check for end-of-line
 0166  74 AB				JZ	SAVBATBYT			; yes, treat it normally
				;
				; We have found %<something>.  If the <something> is in the range 0-9, we
				; retrieve the appropriate parameter from the batch segment.  Otherwise we
				; see if the <something> has a terminating % and then look up the contents
				; in the environment
				;
 0168				PAROK:
 0168  2C 30				SUB	AL,'0'
 016A  72 39				JB	NEEDENV 			; look for parameter in the environment
 016C  3C 09				CMP	AL,9
 016E  77 35				JA	NEEDENV
				;
				; We have found %<number>.  This is taken from the parameters in the
				; allocated batch area.
				;
 0170  98				CBW
 0171  8B D8				MOV	BX,AX				; move index into AX
 0173  D1 E3				SHL	BX,1				; convert word index into byte ptr
					SaveReg <ES>
 0175  06                    2		PUSH    ES 
 0176  8E 06 0000 E			MOV	ES,Batch
				;
				; The structure of the batch area is:
				;
				;   BYTE    type of segment
				;   DWORD   offset for next line
				;   10 WORD pointers to parameters.  -1 is empty parameter
				;   ASCIZ   file name (with . and ..)
				;   BYTES   CR-terminated parameters
				;   BYTE    0 flag to indicate end of parameters
				;
				; Get pointer to BX'th argument
				;
 017A  26: 8B 77 0B			MOV	SI,ES:BatParm[BX]
					RestoreReg  <ES>
 017E  07                    2		POP     ES 
				;
				; Is there a parameter here?
				;
 017F  83 FE FF				CMP	SI,-1				; Check if parameter exists
 0182  75 03				JNZ	Yes_there_is			;G Yes go get it
 0184  E9 0105 R			JMP	RDBAT				; Ignore if it doesn't
				;
				; Copy in the found parameter from batch segment
				;
				
 0187				Yes_there_is:
 0187  1E				PUSH	DS
 0188  8E 1E 0000 E			MOV	DS,Batch
					ASSUME	DS:NOTHING
 018C  49				dec	cx				; Don't count '%' in line length
				
 018D				CopyParm:
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-8
ReadBat - read 1 line from batch file                       

 018D  AC				LODSB					; From resident segment
 018E  3C 0D				CMP	AL,0DH				; Check for end of parameter
 0190  74 0F				JZ	EndParam
 0192  41				inc	cx				; Inc the line length
 0193  81 F9 0080			cmp	cx,COMBUFLEN			; Is it too long?
 0197  73 03				jae	LineTooL			; Yes - handle it, handle it
 0199  AA				STOSB
 019A  EB F1				JMP	CopyParm
				;
				; We have copied up to the limit.  Stop copying and eat remainder of batch
				; line.  We need to make sure that the tooLong code isn't fooled into
				; believing that we are at EOL.  Clobber AL too.
				;
				
 019C				LineTooL:
 019C  32 C0				XOR	AL,AL
 019E  1F				POP	DS
					ASSUME	DS:RESGROUP
 019F  EB B2				JMP	TooLong
				;
				; We have copied in an entire parameter.  Go back for more
				;
				
 01A1				EndParam:
 01A1  1F				POP	DS
 01A2  E9 0105 R			JMP	RDBat
				;
				; We have found % followed by something other than 0-9.  We presume that there
				; will be a following % character.  In between is an environment variable that
				; we will fetch and replace in the batch line with its value.
				;
				
 01A5				NEEDENV:
					SaveReg <DS,DI>
 01A5  1E                    2		PUSH    DS 
 01A6  57                    2		PUSH    DI 
 01A7  BF 0000 E			MOV	DI,OFFSET TRANGROUP:ID		; temp spot for name
 01AA  04 30				ADD	AL,'0'                          ; reconvert character
 01AC  AA				STOSB					; store it in appropriate place
				;
				; loop getting characters until the next % is found or until EOL
				;
				
 01AD				GETENV1:
					invoke	GetBatByt			; get the byte
 01AD  E8 0000 E             1		CALL    GetBatByt 
 01B0  AA				STOSB					; store it
 01B1  3C 0D				CMP	AL,0Dh				; EOL?
 01B3  75 14				JNZ	GETENV15			; no, see if it the term char
				;
				; The user entered a string with a % but no trailing %.  We copy the string.
				;
 01B5  26: C6 45 FF 00			mov	byte ptr es:[di-1],0		; nul terminate the string
 01BA  BE 0000 E			mov	si,offset TranGroup:ID		; point to buffer
 01BD  5F				pop	di				; point to line buffer
 01BE  0E				push	cs
 01BF  1F				pop	ds
 01C0  E8 0449 R			call	StrCpy
				ELSE
 01C3  1F				pop	ds
 01C4  72 D6				jc	LineTooL
				ENDIF
 01C6  E9 0113 R			jmp	SavBatByt
				
 01C9				getenv15:
 01C9  3C 25				CMP	AL,'%'                          ; terminating %?
 01CB  75 E0				JNZ	GETENV1 			; no, go suck out more characters
 01CD  B0 3D				mov	al,'='                          ; terminate  with =
 01CF  26: 88 45 FF			MOV	ES:[DI-1],al
				;
				; ID now either has a =-terminated string which we are to find in the
				; environment or a non =-terminated string which will not be found in the
				; environment.
				;
 01D3				GETENV2:
 01D3  BE 0000 E			MOV	SI,OFFSET TRANGROUP:ID
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-9
ReadBat - read 1 line from batch file                       

 01D6  0E				PUSH	CS
 01D7  1F				POP	DS				; DS:SI POINTS TO NAME
					ASSUME DS:TRANGROUP
 01D8  51				PUSH	CX
					INVOKE	FIND_NAME_IN_environment
 01D9  E8 0000 E             1		CALL    FIND_NAME_IN_environment 
					ASSUME ES:RESGROUP
 01DC  59				POP	CX
 01DD  06				PUSH	ES
 01DE  1F				POP	DS
					assume ds:resgroup
 01DF  0E				PUSH	CS
 01E0  07				POP	ES
					ASSUME ES:TRANGROUP
 01E1  8B F7				MOV	SI,DI
 01E3  5F				POP	DI				; get back pointer to command line
				;
				; If the parameter was not found,  there is no need to perform any replacement.
				; We merely pretend that we've copied the parameter.
				;
				ELSE
 01E4  73 04				jnc	GETENV4
 01E6  1F				pop	ds
 01E7  E9 0105 R			jmp	rdbat
				ENDIF
				;
				; ES:DI points to command line being built
				; DS:SI points either to nul-terminated environment object AFTER =
				;
				
 01EA				GETENV4:
					ASSUME	ES:NOTHING
 01EA  E8 0449 R			call	StrCpy
				
				ELSE
 01ED  1F				pop	ds
 01EE  72 AC				jc	LineTooL
				ENDIF
 01F0  E9 0105 R			JMP	RDBAT				; no, go back to batch file
				
				EndProc ReadBat
 01F3                        1	ReadBat    ENDP 
				
				;
				;   SkipToEOL - read from batch file until end of line
				;
				
				Procedure   SkipToEOL,NEAR
 01F3                        1	SkipToEOL    PROC    NEAR 
				
					ASSUME	DS:ResGroup,ES:NOTHING
				
 01F3  F7 06 0000 E FFFF		TEST	Batch,-1
					retz					; no batch file in effect
 01F9  75 01                 2	    jnz   ??0006                           ; 
 01FB                        3	??0007: 
 01FB  C3                    3		RET 
 01FC                        2	    ??0006:                                  ; 
					invoke	GetBatByt
 01FC  E8 0000 E             1		CALL    GetBatByt 
 01FF  3C 0D				CMP	AL,0Dh				; eol character?
 0201  75 F0				JNZ	SkipToEOL			; no, go eat another
					return
 0203                        1	??0008: 
 0203  C3                    1		RET 
				
				EndProc SkipToEOL
 0204                        1	SkipToEOL    ENDP 
				
				Break	<Allocate and deallocate the transient portion>
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-10
Allocate and deallocate the transient portion               

				
				;
				; Free Transient.  Modify ES,AX,flags
				;
				
				Procedure   Free_TPA,NEAR
 0204                        1	Free_TPA    PROC    NEAR 
				
				ASSUME	DS:TRANGROUP,ES:RESGROUP
				
 0204  06				PUSH	ES
 0205  8E 06 0000 E			MOV	ES,[RESSEG]
 0209  26: 8E 06 0000 E			MOV	ES,[RES_TPA]
 020E  B4 49				MOV	AH,DEALLOC
 0210  CD 21				INT	int_command			; Make lots of free memory
 0212  07				POP	ES
				
					return
 0213                        1	??0009: 
 0213  C3                    1		RET 
				
				EndProc Free_TPA
 0214                        1	Free_TPA    ENDP 
				
				;
				; Allocate transient.  Modify AX,BX,DX,flags
				;
				
				Procedure   Alloc_TPA,NEAR
 0214                        1	Alloc_TPA    PROC    NEAR 
				
				ASSUME DS:TRANGROUP,ES:RESGROUP
				
 0214  06				PUSH	ES
 0215  8E 06 0000 E			MOV	ES,[RESSEG]
 0219  BB FFFF				MOV	BX,0FFFFH			; Re-allocate the transient
 021C  B4 48				MOV	AH,ALLOC
 021E  CD 21				INT	int_command
 0220  53				PUSH	BX				; Save size of block
 0221  B4 48				MOV	AH,ALLOC
 0223  CD 21				INT	int_command
				;
				; Attempt to align TPA on 64K boundary
				;
 0225  5B				POP	BX				; Restore size of block
 0226  26: A3 0000 E			MOV	[RES_TPA], AX			; Save segment to beginning of block
 022A  A3 0000 E			MOV	[TRAN_TPA], AX
				;
				; Is the segment already aligned on a 64K boundary
				;
 022D  8B D0				MOV	DX, AX				; Save segment
 022F  25 0FFF				AND	AX, 0FFFH			; Test if above boundary
 0232  75 07				JNZ	Calc_TPA
 0234  8B C2				MOV	AX, DX
 0236  25 F000				AND	AX, 0F000H			; Test if multiple of 64K
 0239  75 23				JNZ	NOROUND
				
 023B				Calc_TPA:
 023B  8B C2				MOV	AX, DX
 023D  25 F000				AND	AX, 0F000H
 0240  05 1000				ADD	AX, 01000H			; Round up to next 64K boundary
 0243  72 19				JC	NOROUND 			; Memory wrap if carry set
				;
				; Make sure that new boundary is within allocated range
				;
 0245  26: 8B 16 0000 E			MOV	DX, [RES_TPA]
 024A  03 D3				ADD	DX, BX				; Compute maximum address
 024C  3B D0				CMP	DX, AX				; Is 64K address out of range?
 024E  72 0E				JB	NOROUND
				;
				; Make sure that we won't overwrite the transient
				;
 0250  8C CB				MOV	BX, CS				; CS is beginning of transient
 0252  3B D8				CMP	BX, AX
 0254  72 08				JB	NOROUND
				;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-11
Allocate and deallocate the transient portion               

				; The area from the 64K boundary to the beginning of the transient must
				; be at least 64K.
				;
 0256  2B D8				SUB	BX, AX
 0258  81 FB 1000			CMP	BX, 4096			; Size greater than 64K?
 025C  73 04				JAE	ROUNDDONE
				
 025E				NOROUND:
 025E  26: A1 0000 E			MOV	AX, [RES_TPA]
				
 0262				ROUNDDONE:
 0262  26: A3 0000 E			MOV	[LTPA],AX			; Re-compute everything
 0266  A3 0000 E			MOV	[TPA],AX
 0269  8B D8				MOV	BX,AX
 026B  8C C8				MOV	AX,CS
 026D  2B C3				SUB	AX,BX
 026F  53				PUSH	BX
 0270  BB 0010				MOV	BX,16
 0273  F7 E3				MUL	BX
 0275  5B				POP	BX
 0276  0B D2				OR	DX,DX
 0278  74 03				JZ	SAVSIZ2
 027A  B8 FFFF				MOV	AX,-1
				
 027D				SAVSIZ2:
				;
				; AX is the number of bytes free in the buffer between the resident and the
				; transient with a maximum of 64K-1.  We round this down to a multiple of 512.
				;
 027D  3D 0200				CMP	AX,512
 0280  76 03				JBE	GotSize
 0282  25 FE00				AND	AX,0FE00h			; NOT 511 = NOT 1FF
				
 0285				GotSize:
 0285  A3 0000 E			MOV	[BYTCNT],AX
 0288  07				POP	ES
				
					return
 0289                        1	??000A: 
 0289  C3                    1		RET 
				
				EndProc Alloc_TPA
 028A                        1	Alloc_TPA    ENDP 
				
				Break	<BatCom - enter a batch file>
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-12
BatCom - enter a batch file                                 

				
				;
				; The exec search has determined that the user has requested a batch file for
				; execution.  We parse the arguments, create the batch segment, and signal
				; batch processing.
				;
				Procedure   BatCom,NEAR
 028A                        1	BatCom    PROC    NEAR 
				
				ASSUME	DS:TRANGROUP, ES:NOTHING
				
				;
				; Batch parameters are read with ES set to segment of resident part
				;
				
 028A  8E 06 0000 E			MOV	ES,[RESSEG]
				ASSUME	ES:RESGROUP
 028E  26: 80 3E 0000 E 01		cmp	es:[call_batch_flag],call_in_progress ;AN043; If in CALL,
 0294  74 03				jz	skip_ioset			;AN043;   redirection was already set up
					invoke	IOSET				; Set up any redirection
 0296  E8 0000 E             1		CALL    IOSET 
				
 0299				skip_ioset:					;AN043;
 0299  E8 0204 R			CALL	FREE_TPA			; G
 029C  26: 80 3E 0000 E 01		cmp	es:[call_batch_flag],call_in_progress ;G
 02A2  74 03				jz	getecho 			; G if we're in a call, don't execute
				;
				; Since BATCH has lower precedence than PIPE or FOR.  If a new BATCH file is
				; being started it MUST be true that no FOR or PIPE is currently in progress.
				; Don't execute if in call
				;
					invoke	ForOff
 02A4  E8 0000 E             1		CALL    ForOff 
				
 02A7				getecho:
					invoke	PipeOff
 02A7  E8 0000 E             1		CALL    PipeOff 
 02AA  26: A0 0000 E			mov	al,EchoFlag			; preserve echo state for chaining
				
 02AE  24 01				and	al, 1				; Save current echo state
 02B0  50				push	ax
				
 02B1  33 C0				xor	ax,ax				;G
 02B3  26: F7 06 0000 E FFFF		test	es:[batch],-1			;G  Are we in a batch file?
 02BA  74 14				jz	leavebat			;G  No, nothing to save
 02BC  26: A1 0000 E			mov	ax,es:[batch]			;G get current batch segment
 02C0  26: 80 3E 0000 E 01		cmp	es:[call_batch_flag],call_in_progress  ;G
 02C6  74 08				jz	leavebat			;G
				;
				;  We are in a chained batch file, save batlast from previous batch segment
				;  so that if we're in a CALL, we will return to the correct batch file.
				;
 02C8  06				push	es				;G
 02C9  8E C0				mov	es,ax				;G get current batch segment
 02CB  26: A1 0002			mov	ax,es:[batlast] 		;G get previous batch segment
 02CF  07				pop	es				;G
				
 02D0				leavebat:					;G
 02D0  50				push	ax				;G keep segment until new one created
 02D1  26: 80 3E 0000 E 01		cmp	es:[call_batch_flag],call_in_progress  ;G are we in a CALL?
 02D7  74 03				jz	startbat			;G Yes, keep current batch segment
 02D9  E8 03ED R			call	BatchOff			;G No, deallocate old batch segment
				
				;
				; Find length of batch file
				;
				
 02DC				startbat:					;G
					ASSUME	ES:RESGROUP
 02DC  26: C6 06 0000 E 00		MOV	es:[CALL_BATCH_FLAG], 0 	;G  reset call flag
 02E2  BE 0000 E			mov	SI, OFFSET TRANGROUP:EXECPATH
				
 02E5  B8 B711				mov	ax,AppendTruename		;AN042; Get the real path where the batch file
 02E8  CD 2F				int	2fh				;AN042;    was found with APPEND
 02EA  B4 4E				mov	ah,Find_First			;AN042; The find_first will return it
 02EC  8B D6				mov	dx,si				;AN042; Get the string
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-13
BatCom - enter a batch file                                 

 02EE  B9 0013				mov	cx,search_attr			;AN042; filetypes to search for
 02F1  CD 21				int	int_command			;AN042;
				
					invoke	DStrLen
 02F3  E8 0000 E             1		CALL    DStrLen 
				;
				; Allocate batch area:
				;   BYTE    type of segment
				;   WORD    segment of last batch file
				;   WORD    segment for FOR command
				;   BYTE    FOR flag state on entry to batch file
				;   DWORD   offset for next line
				;   10 WORD pointers to parameters.  -1 is empty parameter
				;   ASCIZ   file name (with . and ..)
				;   BYTES   CR-terminated parameters
				;   BYTE    0 flag to indicate end of parameters
				;
				; We allocate the maximum size for the command line and use setblock to shrink
				; later when we've squeezed out the extra
				;
				
 02F6  8B D9				MOV	BX,CX				; length of file name.
 02F8  81 C3 00BE			ADD	BX,0Fh + (SIZE BatchSegment) + COMBUFLEN + 0Fh
										; structure + max len + round up
					SaveReg <CX>
 02FC  51                    2		PUSH    CX 
 02FD  B1 04				MOV	CL,4
 02FF  D3 EB				SHR	BX,CL				; convert to paragraphs
 0301  53				PUSH	BX				;G save size of batch segment
 0302  B4 48				MOV	AH,ALLOC
 0304  CD 21				INT	int_command			; Allocate batch segment
 0306  5B				POP	BX				;G get size of batch segment
				;
				; This should *NEVER* return an error.	The transient is MUCH bigger than
				; the batch segment.  This may not be true, however, in a multitasking system.
				; G This error will occur with nesting of batch files.	We also need to
				; G make sure that we don't overlay the transient.
				;
 0307  72 16				jc	mem_error			;G not enough memory - exit
 0309  50				push	ax				;G save batch segment
 030A  03 C3				add	ax,bx				;G get end of batch segment
 030C  05 0020				add	ax,20h				;G add some tpa work area
 030F  8C CB				mov	bx,cs				;G get the transient segment
 0311  3B C3				cmp	ax,bx				;G do we end before the transient
 0313  58				pop	ax				;G get batch segment back
 0314  72 0C				jb	enough_mem			;G we have enough memory - continue
 0316  06				push	es				;G no we're hitting the transient
 0317  8E C0				mov	es,ax
 0319  B8 4900				mov	ax,DEALLOC SHL 8		;G deallocate the batch segment
 031C  CD 21				int	int_command
 031E  07				pop	es
				
 031F				mem_error:
 031F  E9 03D6 R			jmp	no_memory			;G Set up for message and exit
				
 0322				enough_mem:
 0322  26: A3 0000 E			MOV	[BATCH],AX
 0326  E8 0214 R			CALL	ALLOC_TPA
				;
				; Initialize batch segment
				;
					RestoreReg  <DX>			; length of name
 0329  5A                    2		POP     DX 
 032A  58				POP	AX				;G  get saved batch segment back
 032B  26: FF 06 0000 E			inc	es:nest 			;G increment # batch files in progress
 0330  06				PUSH	ES
 0331  26: 8E 06 0000 E			MOV	ES,[BATCH]
				ASSUME	ES:NOTHING
 0336  26: C6 06 0000 00		MOV	ES:[BatType],BatchType		; signal batch file type
 033C  26: A3 0002			MOV	ES:[batlast],ax 		;G save segment of last batch file
 0340  1E				push	DS				;G
 0341  8E 1E 0000 E			mov	DS,[resseg]			;G set to resident data
				ASSUME	DS:RESGROUP
 0345  33 C0				xor	ax,ax				;G
 0347  8A 1E 0000 E			mov	bl,forflag			;G get the current FOR state
 034B  26: 88 1E 0006			mov	ES:[batforflag],bl		;G save it in the batch segment
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-14
BatCom - enter a batch file                                 

 0350  F6 C3 FF				test	bl,-1				;G are we in a FOR?
 0353  74 08				jz	for_not_on			;G no, for segment set to 0
 0355  A1 0000 E			mov	ax,forptr			;G yes, get current FOR segment
 0358  C6 06 0000 E 00			mov	forflag,0			;G reset forflag
				
 035D				for_not_on:
 035D  26: A3 0004			mov	ES:[batforptr],ax		;G save FOR segment in batch segment
 0361  33 C0				XOR	AX,AX
 0363  A3 0000 E			mov	forptr,ax			;G make sure for segment is not active
 0366  8A 1E 0000 E			mov	bl,echoflag			;G
 036A  1F				pop	DS				;G
				
 036B  26: 88 1E 0001			mov	byte ptr es:[Batechoflag],bl	;G save echo state of parent
 0370  26: A3 0007			MOV	WORD PTR ES:[BatSeek],AX	; point to beginning of file
 0374  26: A3 0009			MOV	WORD PTR ES:[BatSeek+2],AX
				;
				; Initialize pointers
				;
 0378  48				DEC	AX				; put -1 into AX
 0379  BF 000B				MOV	DI,BatParm			; point to parm area
 037C  8B DF				MOV	BX,DI
 037E  B9 000A				MOV	CX,10
 0381  F3/ AB				REP	STOSW				; Init to no parms
				;
				; Move in batch file name
				;
 0383  8B CA				MOV	CX,DX
 0385  F3/ A4				rep	movsb				; including NUL.
				;
				; Now copy the command line into batch segment, parsing the arguments along
				; the way.  Segment will look like this:
				;
				;   <arg0>CR<arg1>CR...<arg9>CR<arg10>CR...<ARGn>CR 0
				;
				; or, in the case of fewer arguments:
				;
				;   <arg0>CR<arg1>CR...<arg6>CR CR CR ... CR 0
				;
 0387  BE 0002 E			MOV	SI,OFFSET TRANGROUP:COMBUF+2
 038A  B9 000A				MOV	CX,10				; at most 10 arguments
				;
				; Look for beginning of next argument
				;
 038D				EACHPARM:
					invoke	SCANOFF 			; skip to argument
 038D  E8 0000 E             1		CALL    SCANOFF 
				;
				; AL is first non-delimiter.  DS:SI points to char = AL
				;
 0390  3C 0D				CMP	AL,0DH				; end of road?
 0392  74 1D				JZ	HAVPARM 			; yes, no more arguments
				;
				; If CX = 0 then we have stored the most parm we can.  Skip store
				;
 0394  E3 06				JCXZ	MOVPARM 			; Only first 10 parms get pointers
				;
				; Go into allocated piece and stick in new argument pointer.
				;
 0396  26: 89 3F			MOV	ES:[BX],DI			; store batch pointer
 0399  83 C3 02				ADD	BX,2				; advance arg counter
				;
				; Move the parameter into batch segment
				;
 039C				MOVPARM:
 039C  AC				LODSB					; get byte
					INVOKE	DELIM				; if delimiter
 039D  E8 0000 E             1		CALL    DELIM 
 03A0  74 07				JZ	ENDPARM 			; then done with parm
 03A2  AA				STOSB					; store byte
 03A3  3C 0D				CMP	AL,0DH				; if CR then not delimiter
 03A5  74 0A				JZ	HAVPARM 			; but end of parm list, finish
 03A7  EB F3				JMP	SHORT MOVPARM
				;
				; We have copied a parameter up until the first separator.  Terminate it with
				; CR
				;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-15
BatCom - enter a batch file                                 

				
 03A9				ENDPARM:
 03A9  B0 0D				MOV	AL,0DH
 03AB  AA				STOSB
 03AC  E3 DF				JCXZ	EACHPARM			; if no parameters, don't dec
 03AE  49				DEC	CX				; remember that we've seen one.
 03AF  EB DC				JMP	SHORT EACHPARM
				;
				; We have parsed the entire line. Terminate the arg list
				;
				
 03B1				HAVPARM:
 03B1  32 C0				XOR	AL,AL
 03B3  AA				STOSB					; Nul terminate the parms
				;
				; Now we know EXACTLY how big the BATCH segment is.  Round up size (from DI)
				; into paragraphs and setblock to the appropriate size
				;
 03B4  8D 5D 0F				LEA	BX,[DI+15]
 03B7  B1 04				MOV	CL,4
 03B9  D3 EB				SHR	BX,CL
 03BB  B4 4A				MOV	AH,SetBlock
 03BD  CD 21				INT	int_command
				
 03BF  07				POP	ES
				ASSUME	ES:RESGROUP
 03C0  06				PUSH	ES
 03C1  1F				POP	DS				; Simply batch FCB setup
				ASSUME	DS:RESGROUP
 03C2  83 3E 0000 E FF			CMP	[SINGLECOM],-1
 03C7  75 06				JNZ	NOBATSING
 03C9  C7 06 0000 E FFF0		MOV	[SINGLECOM],0FFF0H		; Flag single command BATCH job
				
 03CF				NOBATSING:
				;
				; Enter the batch file with the current echo state
				;
 03CF  58				pop	ax				; Get original echo state
 03D0  A2 0000 E			mov	echoflag,al			;g restore it
 03D3  E9 0000 E			JMP	TCOMMAND
				
				;
				; The following is executed if there isn't enough memory for batch segment
				;
				
 03D6				NO_MEMORY:
					assume ds:trangroup,es:resgroup
 03D6  5A				pop	dx				;g even up our stack
 03D7  58				pop	ax				;g
 03D8  58				pop	ax				;g
 03D9  E8 0214 R			call	Alloc_tpa			;g reallocate memory
 03DC  C6 06 0000 E 01			mov	msg_disp_class,ext_msg_class	;AN000; set up extended error msg class
 03E1  BA 0000 E			mov	dx,offset TranGroup:Extend_Buf_ptr     ;AC000; get extended message pointer
 03E4  C7 06 0000 E 0008		mov	Extend_Buf_ptr,error_not_enough_memory ;AN000; get message number in control block
 03EA  E9 0000 E			jmp	cerror				;g print error message and go...
				
				EndProc BatCom
 03ED                        1	BatCom    ENDP 
				
				Procedure   BatchOff
 03ED                        1	BatchOff    PROC     
				
					ASSUME	DS:NOTHING,ES:NOTHING
				
					SaveReg <AX,ES>
 03ED  50                    2		PUSH    AX 
 03EE  06                    2		PUSH    ES 
 03EF  1E				PUSH	DS				;G
 03F0  53				PUSH	BX				;G
 03F1  2E: 8E 06 0000 E			MOV	ES,ResSeg
 03F6  2E: 8E 1E 0000 E			MOV	DS,ResSeg			;G
					ASSUME	ES:ResGroup,DS:Resgroup 	;G
 03FB  A1 0000 E			MOV	AX,Batch			; Free the batch segment
 03FE  0B C0				OR	AX,AX
 0400  74 42				JZ	nofree
				
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Page     1-16
BatCom - enter a batch file                                 

 0402  06				PUSH	ES
 0403  8E C0				MOV	ES,AX
 0405  F6 06 0000 E 01			test	[echoflag],1			;G Is echo on?
 040A  75 05				jnz	echo_last_line			;G Yes - echo last line in file
 040C  C6 06 0000 E 00			mov	suppress,no_echo		;G no - don't echo last line in file
				
 0411				echo_last_line:
 0411  26: 8A 1E 0001			MOV	BL,ES:[BATECHOFLAG]		;G  Get echo state
 0416  88 1E 0000 E			mov	[echoflag],bl			;G     and restore it
 041A  26: 8B 1E 0004			MOV	BX,ES:[BATFORPTR]		;G  Get FOR segment
 041F  89 1E 0000 E			MOV	FORPTR,BX			;G     and restore it
 0423  26: 8A 1E 0006			MOV	BL,ES:[BATFORFLAG]		;G  Get FOR flag
 0428  88 1E 0000 E			MOV	FORFLAG,BL			;G     and restore it
 042C  26: 8B 1E 0002			MOV	BX,es:[batlast] 		;G  get old batch segment
 0431  B4 49				MOV	AH,DEALLOC
 0433  CD 21				INT	int_command
 0435  07				POP	ES
 0436  89 1E 0000 E			MOV	Next_BATCH,BX			;G  reset batch segment
 043A  26: FF 0E 0000 E			DEC	es:NEST 			;G
				
 043F  33 C0				XOR	AX,AX
 0441  A3 0000 E			MOV	Batch,AX			; No batch in progress
				
 0444				NoFree:
 0444  5B				POP	BX				;G
 0445  1F				pop	ds				;G
					RestoreReg  <ES,AX>
 0446  07                    2		POP     ES 
 0447  58                    2		POP     AX 
				
					return
 0448                        1	??000B: 
 0448  C3                    1		RET 
				
				EndProc BatchOff
 0449                        1	BatchOff    ENDP 
				
				
				ELSE
				; StrCpy - copy string, checking count in CX against COMBUFLEN
				;	Entry : DS:SI ==> source string
				;		ES:DI ==> destination string
				;		CX = current length of destination string
				;	Exit  : string copied, CX updated, Carry set if length limit exceeded
				Procedure StrCpy,NEAR
 0449                        1	StrCpy    PROC    NEAR 
 0449  50				push	ax
 044A				ccycle:
 044A  AC				lodsb
 044B  41				inc	cx
 044C  81 F9 0080			cmp	cx,COMBUFLEN
 0450  72 03				jb	ccopy
 0452  F9				stc				; set carry to signal error
 0453  EB 05				jmp	short ccend
 0455				ccopy:
 0455  AA				stosb
 0456  0A C0				or	al,al
 0458  75 F0				jnz	ccycle
				
 045A				ccend:
 045A  49				dec	cx			; discount extra byte
 045B  4F				dec	di			; back up pointer
 045C  58				pop	ax
					return				; return carry clear
 045D                        1	??000C: 
 045D  C3                    1		RET 
				EndProc StrCpy
 045E                        1	StrCpy    ENDP 
				
				ENDIF
				
 045E				TRANCODE    ENDS
					    END

Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-1


Macros:

		N a m e			Lines

ARGVAR . . . . . . . . . . . . .  	  23
ASMVAR . . . . . . . . . . . . .  	   3
ASMVARS  . . . . . . . . . . . .  	   3
ASSERT . . . . . . . . . . . . .  	   0
CALLINSTALL  . . . . . . . . . .  	  12
DOSASSUME  . . . . . . . . . . .  	   3
ENTER  . . . . . . . . . . . . .  	   3
ENTERCRIT  . . . . . . . . . . .  	   1
ERRNZ  . . . . . . . . . . . . .  	   4
FMT  . . . . . . . . . . . . . .  	   0
LEAVE  . . . . . . . . . . . . .  	   2
LEAVECRIT  . . . . . . . . . . .  	   1
LOCALVAR . . . . . . . . . . . .  	  23
TRAP . . . . . . . . . . . . . .  	   6

Structures and Records:

                N a m e                 Width   # fields
                                        Shift   Width   Mask    Initial

ARENA  . . . . . . . . . . . . .  	0010	0005
  ARENA_SIGNATURE  . . . . . . .  	0000
  ARENA_OWNER  . . . . . . . . .  	0001
  ARENA_SIZE . . . . . . . . . .  	0003
  ARENA_RESERVED . . . . . . . .  	0005
  ARENA_NAME . . . . . . . . . .  	0008
ARGV_ELE . . . . . . . . . . . .  	000B	0006
  ARGPOINTER . . . . . . . . . .  	0000
  ARGFLAGS . . . . . . . . . . .  	0002
  ARGSTARTEL . . . . . . . . . .  	0003
  ARGLEN . . . . . . . . . . . .  	0005
  ARGSW_WORD . . . . . . . . . .  	0007
  ARG_OCOMPTR  . . . . . . . . .  	0009
ARG_UNIT . . . . . . . . . . . .  	0544	0005
  ARGV . . . . . . . . . . . . .  	0000
  ARGVCNT  . . . . . . . . . . .  	02C0
  ARGSWINFO  . . . . . . . . . .  	02C2
  ARGBUF . . . . . . . . . . . .  	02C4
  ARGFORCOMBUF . . . . . . . . .  	04C4
A_BPB  . . . . . . . . . . . . .  	001F	000F
  BPB_BYTESPERSECTOR . . . . . .  	0000
  BPB_SECTORSPERCLUSTER  . . . .  	0002
  BPB_RESERVEDSECTORS  . . . . .  	0003
  BPB_NUMBEROFFATS . . . . . . .  	0005
  BPB_ROOTENTRIES  . . . . . . .  	0006
  BPB_TOTALSECTORS . . . . . . .  	0008
  BPB_MEDIADESCRIPTOR  . . . . .  	000A
  BPB_SECTORSPERFAT  . . . . . .  	000B
  BPB_SECTORSPERTRACK  . . . . .  	000D
  BPB_HEADS  . . . . . . . . . .  	000F
  BPB_HIDDENSECTORS  . . . . . .  	0011
  BPB_BIGTOTALSECTORS  . . . . .  	0015
BATCHSEGMENT . . . . . . . . . .  	0020	0008
  BATTYPE  . . . . . . . . . . .  	0000
  BATECHOFLAG  . . . . . . . . .  	0001
  BATLAST  . . . . . . . . . . .  	0002
  BATFORPTR  . . . . . . . . . .  	0004
  BATFORFLAG . . . . . . . . . .  	0006
  BATSEEK  . . . . . . . . . . .  	0007
  BATPARM  . . . . . . . . . . .  	000B
  BATFILE  . . . . . . . . . . .  	001F
BPBLOCK  . . . . . . . . . . . .  	000D	0008
  BPSECSZ  . . . . . . . . . . .  	0000
  BPCLUS . . . . . . . . . . . .  	0002
  BPRES  . . . . . . . . . . . .  	0003
  BPFTCNT  . . . . . . . . . . .  	0005
  BPDRCNT  . . . . . . . . . . .  	0006
  BPSCCNT  . . . . . . . . . . .  	0008
  BPMEDIA  . . . . . . . . . . .  	000A
  BPFTSEC  . . . . . . . . . . .  	000B
BUFFER_HASH_ENTRY  . . . . . . .  	0008	0004
  EMS_PAGE_NUM . . . . . . . . .  	0000
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-2


  BUFFER_BUCKET  . . . . . . . .  	0002
  DIRTY_COUNT  . . . . . . . . .  	0006
  BUFFER_RESERVED  . . . . . . .  	0007
BUFFINFO . . . . . . . . . . . .  	0023	000F
  HASH_PTR . . . . . . . . . . .  	0000
  HASH_COUNT . . . . . . . . . .  	0004
  CACHE_PTR  . . . . . . . . . .  	0006
  CACHE_COUNT  . . . . . . . . .  	000A
  EMS_SAFE_FLAG  . . . . . . . .  	000C
  EMS_LAST_PAGE  . . . . . . . .  	000D
  EMS_FIRST_PAGE . . . . . . . .  	0011
  EMS_NPA640 . . . . . . . . . .  	0015
  EMS_MODE . . . . . . . . . . .  	0017
  EMS_HANDLE . . . . . . . . . .  	0018
  EMS_PAGEFRAME_NUMBER . . . . .  	001A
  EMS_SEG_CNT  . . . . . . . . .  	001C
  EMS_PAGE_FRAME . . . . . . . .  	001E
  EMS_RESERVED . . . . . . . . .  	0020
  EMS_MAP_BUFF . . . . . . . . .  	0022
CC_COLLATE_TAB . . . . . . . . .  	0102	0002
  CCCOLLATE_LENG . . . . . . . .  	0000
  CCCOLLATE_DATA . . . . . . . .  	0002
CC_DBCS_TAB  . . . . . . . . . .  	0008	0002
  CCDBCS_LENG  . . . . . . . . .  	0000
  CCDBCS_DATA  . . . . . . . . .  	0002
CC_FILE_CHAR_TAB . . . . . . . .  	0030	0002
  CCFILECHAR_LENG  . . . . . . .  	0000
  CCFILECHAR_DATA  . . . . . . .  	0002
CC_FILE_UCASE_TAB  . . . . . . .  	0082	0002
  CCFILEUCASE_LENG . . . . . . .  	0000
  CCFILEUCASE_DATA . . . . . . .  	0002
CC_UCASE_TAB . . . . . . . . . .  	0082	0002
  CCUCASE_LENG . . . . . . . . .  	0000
  CCUCASE_DATA . . . . . . . . .  	0002
CURDIR_LIST  . . . . . . . . . .  	0058	000A
  CURDIR_TEXT  . . . . . . . . .  	0000
  CURDIR_FLAGS . . . . . . . . .  	0043
  CURDIR_DEVPTR  . . . . . . . .  	0045
  CURDIR_ID  . . . . . . . . . .  	0049
  CURDIR_USER_WORD . . . . . . .  	004D
  CURDIR_END . . . . . . . . . .  	004F
  CURDIR_TYPE  . . . . . . . . .  	0051
  CURDIR_IFS_HDR . . . . . . . .  	0052
  CURDIR_FSDA  . . . . . . . . .  	0056
DIR_ENTRY  . . . . . . . . . . .  	0020	000B
  DIR_NAME . . . . . . . . . . .  	0000
  DIR_ATTR . . . . . . . . . . .  	000B
  DIR_CODEPG . . . . . . . . . .  	000C
  DIR_EXTCLUSTER . . . . . . . .  	000E
  DIR_ATTR2  . . . . . . . . . .  	0010
  DIR_PAD  . . . . . . . . . . .  	0011
  DIR_TIME . . . . . . . . . . .  	0016
  DIR_DATE . . . . . . . . . . .  	0018
  DIR_FIRST  . . . . . . . . . .  	001A
  DIR_SIZE_L . . . . . . . . . .  	001C
  DIR_SIZE_H . . . . . . . . . .  	001E
DOS_COUNTRY_CDPG_INFO  . . . . .  	008E	001E
  CCINFO_RESERVED  . . . . . . .  	0000
  CCPATH_COUNTRYSYS  . . . . . .  	0008
  CCSYSCODEPAGE  . . . . . . . .  	0048
  CCNUMBER_OF_ENTRIES  . . . . .  	004A
  CCSETUCASE . . . . . . . . . .  	004C
  CCUCASE_PTR  . . . . . . . . .  	004D
  CCSETUCASEFILE . . . . . . . .  	0051
  CCFILEUCASE_PTR  . . . . . . .  	0052
  CCSETFILELIST  . . . . . . . .  	0056
  CCFILECHAR_PTR . . . . . . . .  	0057
  CCSETCOLLATE . . . . . . . . .  	005B
  CCCOLLATE_PTR  . . . . . . . .  	005C
  CCSETDBCS  . . . . . . . . . .  	0060
  CCDBCS_PTR . . . . . . . . . .  	0061
  CCSETCOUNTRYINFO . . . . . . .  	0065
  CCCOUNTRYINFOLEN . . . . . . .  	0066
  CCDOSCOUNTRY . . . . . . . . .  	0068
  CCDOSCODEPAGE  . . . . . . . .  	006A
  CCDFORMAT  . . . . . . . . . .  	006C
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-3


  CCCURSYMBOL  . . . . . . . . .  	006E
  CC1000SEP  . . . . . . . . . .  	0073
  CCDECSEP . . . . . . . . . . .  	0075
  CCDATESEP  . . . . . . . . . .  	0077
  CCTIMESEP  . . . . . . . . . .  	0079
  CCCFORMAT  . . . . . . . . . .  	007B
  CCCSIGDIGITS . . . . . . . . .  	007C
  CCTFORMAT  . . . . . . . . . .  	007D
  CCMONO_PTR . . . . . . . . . .  	007E
  CCLISTSEP  . . . . . . . . . .  	0082
  CCRESERVED_AREA  . . . . . . .  	0084
DPB  . . . . . . . . . . . . . .  	0021	0012
  DPB_DRIVE  . . . . . . . . . .  	0000
  DPB_UNIT . . . . . . . . . . .  	0001
  DPB_SECTOR_SIZE  . . . . . . .  	0002
  DPB_CLUSTER_MASK . . . . . . .  	0004
  DPB_CLUSTER_SHIFT  . . . . . .  	0005
  DPB_FIRST_FAT  . . . . . . . .  	0006
  DPB_FAT_COUNT  . . . . . . . .  	0008
  DPB_ROOT_ENTRIES . . . . . . .  	0009
  DPB_FIRST_SECTOR . . . . . . .  	000B
  DPB_MAX_CLUSTER  . . . . . . .  	000D
  DPB_FAT_SIZE . . . . . . . . .  	000F
  DPB_DIR_SECTOR . . . . . . . .  	0011
  DPB_DRIVER_ADDR  . . . . . . .  	0013
  DPB_MEDIA  . . . . . . . . . .  	0017
  DPB_FIRST_ACCESS . . . . . . .  	0018
  DPB_NEXT_DPB . . . . . . . . .  	0019
  DPB_NEXT_FREE  . . . . . . . .  	001D
  DPB_FREE_CNT . . . . . . . . .  	001F
EXEC0  . . . . . . . . . . . . .  	000E	0004
  EXEC0_ENVIRON  . . . . . . . .  	0000
  EXEC0_COM_LINE . . . . . . . .  	0002
  EXEC0_5C_FCB . . . . . . . . .  	0006
  EXEC0_6C_FCB . . . . . . . . .  	000A
EXEC1  . . . . . . . . . . . . .  	0016	0008
  EXEC1_ENVIRON  . . . . . . . .  	0000
  EXEC1_COM_LINE . . . . . . . .  	0002
  EXEC1_5C_FCB . . . . . . . . .  	0006
  EXEC1_6C_FCB . . . . . . . . .  	000A
  EXEC1_SP . . . . . . . . . . .  	000E
  EXEC1_SS . . . . . . . . . . .  	0010
  EXEC1_IP . . . . . . . . . . .  	0012
  EXEC1_CS . . . . . . . . . . .  	0014
EXEC3  . . . . . . . . . . . . .  	0004	0002
  EXEC3_LOAD_ADDR  . . . . . . .  	0000
  EXEC3_RELOC_FAC  . . . . . . .  	0002
EXE_FILE . . . . . . . . . . . .  	0020	000F
  EXE_SIGNATURE  . . . . . . . .  	0000
  EXE_LEN_MOD_512  . . . . . . .  	0002
  EXE_PAGES  . . . . . . . . . .  	0004
  EXE_RLE_COUNT  . . . . . . . .  	0006
  EXE_PAR_DIR  . . . . . . . . .  	0008
  EXE_MIN_BSS  . . . . . . . . .  	000A
  EXE_MAX_BSS  . . . . . . . . .  	000C
  EXE_SS . . . . . . . . . . . .  	000E
  EXE_SP . . . . . . . . . . . .  	0010
  EXE_CHKSUM . . . . . . . . . .  	0012
  EXE_IP . . . . . . . . . . . .  	0014
  EXE_CS . . . . . . . . . . . .  	0016
  EXE_RLE_TABLE  . . . . . . . .  	0018
  EXE_IOV  . . . . . . . . . . .  	001A
  EXE_SYM_TAB  . . . . . . . . .  	001C
EXT_OPEN_PARM  . . . . . . . . .  	0006	0002
  EXT_SET_LIST . . . . . . . . .  	0000
  EXT_NUM_OF_PARM  . . . . . . .  	0004
FIND_BUF . . . . . . . . . . . .  	002B	000C
  FIND_BUF_DRIVE . . . . . . . .  	0000
  FIND_BUF_NAME  . . . . . . . .  	0001
  FIND_BUF_SATTR . . . . . . . .  	000C
  FIND_BUF_LASTENT . . . . . . .  	000D
  FIND_BUF_DIRSTART  . . . . . .  	000F
  FIND_BUF_NETID . . . . . . . .  	0011
  FIND_BUF_ATTR  . . . . . . . .  	0015
  FIND_BUF_TIME  . . . . . . . .  	0016
  FIND_BUF_DATE  . . . . . . . .  	0018
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-4


  FIND_BUF_SIZE_L  . . . . . . .  	001A
  FIND_BUF_SIZE_H  . . . . . . .  	001C
  FIND_BUF_PNAME . . . . . . . .  	001E
INTERNAT_BLOCK . . . . . . . . .  	0018	0015
  DATE_TIM_FORMAT  . . . . . . .  	0000
  CURRENCY_SYM . . . . . . . . .  	0002
  THOUS_SEP  . . . . . . . . . .  	0007
  DECIMAL_SEP  . . . . . . . . .  	0009
  DATE_SEP . . . . . . . . . . .  	000B
  TIME_SEP . . . . . . . . . . .  	000D
  BIT_FIELD  . . . . . . . . . .  	000F
  CURRENCY_CENTS . . . . . . . .  	0010
  TIME_24  . . . . . . . . . . .  	0011
  MAP_CALL . . . . . . . . . . .  	0012
  DATA_SEP . . . . . . . . . . .  	0016
PARSEFLAGS . . . . . . . . . . .  	0008	0005
  SPECIAL_DELIM  . . . . . . . .  	0007	0001	0080	0000
  UNUSED . . . . . . . . . . . .  	0003	0004	0078	0000
  PATH_SEP . . . . . . . . . . .  	0002	0001	0004	0000
  WILDCARD . . . . . . . . . . .  	0001	0001	0002	0000
  SW_FLAG  . . . . . . . . . . .  	0000	0001	0001	0000
PROCESS_DATA_BLOCK . . . . . . .  	005C	0011
  PDB_EXIT_CALL  . . . . . . . .  	0000
  PDB_BLOCK_LEN  . . . . . . . .  	0002
  PDB_CPM_CALL . . . . . . . . .  	0005
  PDB_EXIT . . . . . . . . . . .  	000A
  PDB_CTRL_C . . . . . . . . . .  	000E
  PDB_FATAL_ABORT  . . . . . . .  	0012
  PDB_PARENT_PID . . . . . . . .  	0016
  PDB_JFN_TABLE  . . . . . . . .  	0018
  PDB_ENVIRON  . . . . . . . . .  	002C
  PDB_USER_STACK . . . . . . . .  	002E
  PDB_JFN_LENGTH . . . . . . . .  	0032
  PDB_JFN_POINTER  . . . . . . .  	0034
  PDB_NEXT_PDB . . . . . . . . .  	0038
  PDB_PAD1 . . . . . . . . . . .  	003C
  PDB_CALL_SYSTEM  . . . . . . .  	0050
  PDB_PAD2 . . . . . . . . . . .  	0055
SF . . . . . . . . . . . . . . .  	0008	0003
  SFLINK . . . . . . . . . . . .  	0000
  SFCOUNT  . . . . . . . . . . .  	0004
  SFTABLE  . . . . . . . . . . .  	0006
SF_ENTRY . . . . . . . . . . . .  	003B	0014
  SF_REF_COUNT . . . . . . . . .  	0000
  SF_MODE  . . . . . . . . . . .  	0002
  SF_ATTR  . . . . . . . . . . .  	0004
  SF_FLAGS . . . . . . . . . . .  	0005
  SF_DEVPTR  . . . . . . . . . .  	0007
  SF_FIRCLUS . . . . . . . . . .  	000B
  SF_TIME  . . . . . . . . . . .  	000D
  SF_DATE  . . . . . . . . . . .  	000F
  SF_SIZE  . . . . . . . . . . .  	0011
  SF_POSITION  . . . . . . . . .  	0015
  SF_CLUSPOS . . . . . . . . . .  	0019
  SF_DIRSEC  . . . . . . . . . .  	001B
  SF_DIRPOS  . . . . . . . . . .  	001F
  SF_NAME  . . . . . . . . . . .  	0020
  SF_CHAIN . . . . . . . . . . .  	002B
  SF_UID . . . . . . . . . . . .  	002F
  SF_PID . . . . . . . . . . . .  	0031
  SF_MFT . . . . . . . . . . . .  	0033
  SF_LSTCLUS . . . . . . . . . .  	0035
  SF_IFS_HDR . . . . . . . . . .  	0037
SYMBOL_ENTRY . . . . . . . . . .  	0106	0004
  SYM_VALUE  . . . . . . . . . .  	0000
  SYM_TYPE . . . . . . . . . . .  	0004
  SYM_LEN  . . . . . . . . . . .  	0006
  SYM_NAME . . . . . . . . . . .  	0007
SYSINITVARS  . . . . . . . . . .  	0047	0018
  SYSI_DPB . . . . . . . . . . .  	0000
  SYSI_SFT . . . . . . . . . . .  	0004
  SYSI_CLOCK . . . . . . . . . .  	0008
  SYSI_CON . . . . . . . . . . .  	000C
  SYSI_MAXSEC  . . . . . . . . .  	0010
  SYSI_BUF . . . . . . . . . . .  	0012
  SYSI_CDS . . . . . . . . . . .  	0016
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-5


  SYSI_FCB . . . . . . . . . . .  	001A
  SYSI_KEEP  . . . . . . . . . .  	001E
  SYSI_NUMIO . . . . . . . . . .  	0020
  SYSI_NCDS  . . . . . . . . . .  	0021
  SYSI_DEV . . . . . . . . . . .  	0022
  SYSI_ATTR  . . . . . . . . . .  	0026
  SYSI_STRAT . . . . . . . . . .  	0028
  SYSI_INTER . . . . . . . . . .  	002A
  SYSI_NAME  . . . . . . . . . .  	002C
  SYSI_SPLICE  . . . . . . . . .  	0034
  SYSI_IBMDOS_SIZE . . . . . . .  	0035
  SYSI_IFS_DOSCALL@  . . . . . .  	0037
  SYSI_IFS . . . . . . . . . . .  	003B
  SYSI_BUFFERS . . . . . . . . .  	003F
  SYSI_BOOT_DRIVE  . . . . . . .  	0043
  SYSI_DWMOVE  . . . . . . . . .  	0044
  SYSI_EXT_MEM . . . . . . . . .  	0045
SYSINITVARS_EXT  . . . . . . . .  	0008	0002
  SYSI_INITVARS  . . . . . . . .  	0000
  SYSI_COUNTRY_TAB . . . . . . .  	0004
SYS_FCB  . . . . . . . . . . . .  	0025	000C
  FCB_DRIVE  . . . . . . . . . .  	0000
  FCB_NAME . . . . . . . . . . .  	0001
  FCB_EXT  . . . . . . . . . . .  	0009
  FCB_EXTENT . . . . . . . . . .  	000C
  FCB_RECSIZ . . . . . . . . . .  	000E
  FCB_FILSIZ . . . . . . . . . .  	0010
  FCB_DRVBP  . . . . . . . . . .  	0012
  FCB_FDATE  . . . . . . . . . .  	0014
  FCB_FTIME  . . . . . . . . . .  	0016
  FCB_RESERVED . . . . . . . . .  	0018
  FCB_NR . . . . . . . . . . . .  	0020
  FCB_RR . . . . . . . . . . . .  	0021
USER_ENVIRON . . . . . . . . . .  	0018	000C
  USER_AX  . . . . . . . . . . .  	0000
  USER_BX  . . . . . . . . . . .  	0002
  USER_CX  . . . . . . . . . . .  	0004
  USER_DX  . . . . . . . . . . .  	0006
  USER_SI  . . . . . . . . . . .  	0008
  USER_DI  . . . . . . . . . . .  	000A
  USER_BP  . . . . . . . . . . .  	000C
  USER_DS  . . . . . . . . . . .  	000E
  USER_ES  . . . . . . . . . . .  	0010
  USER_IP  . . . . . . . . . . .  	0012
  USER_CS  . . . . . . . . . . .  	0014
  USER_F . . . . . . . . . . . .  	0016
VARSTRUC . . . . . . . . . . . .  	005C	0005
  ISDIR  . . . . . . . . . . . .  	0000
  SIZ  . . . . . . . . . . . . .  	0001
  TTAIL  . . . . . . . . . . . .  	0002
  INFO . . . . . . . . . . . . .  	0004
  BUF  . . . . . . . . . . . . .  	0005

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

RESGROUP . . . . . . . . . . . .  	GROUP
  CODERES  . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  DATARES  . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  BATARENA . . . . . . . . . . .  	0000	PARA	PUBLIC	
  BATSEG . . . . . . . . . . . .  	0000	PARA	PUBLIC	
  ENVARENA . . . . . . . . . . .  	0000	PARA	PUBLIC	
  ENVIRONMENT  . . . . . . . . .  	0000	PARA	PUBLIC	
  INIT . . . . . . . . . . . . .  	0000	PARA	PUBLIC	
  TAIL . . . . . . . . . . . . .  	0000	PARA	PUBLIC	
TRANGROUP  . . . . . . . . . . .  	GROUP
  TRANCODE . . . . . . . . . . .  	045E	BYTE	PUBLIC	
  TRANDATA . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  TRANSPACE  . . . . . . . . . .  	0000	BYTE	PUBLIC	
  TRANTAIL . . . . . . . . . . .  	0000	PARA	PUBLIC	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-6


Symbols:            

                N a m e         	Type	 Value	 Attr

ABORT  . . . . . . . . . . . . .  	NUMBER	0000	
ACCESS_MASK  . . . . . . . . . .  	NUMBER	000F	
ACTION_CREATED_OPENED  . . . . .  	NUMBER	0002	
ACTION_OPENED  . . . . . . . . .  	NUMBER	0001	
ACTION_REPLACED_OPENED . . . . .  	NUMBER	0003	
ADDR_INT_ABORT . . . . . . . . .  	NUMBER	0080	
ADDR_INT_COMMAND . . . . . . . .  	NUMBER	0084	
ADDR_INT_CTRL_C  . . . . . . . .  	NUMBER	008C	
ADDR_INT_DISK_READ . . . . . . .  	NUMBER	0094	
ADDR_INT_DISK_WRITE  . . . . . .  	NUMBER	0098	
ADDR_INT_FASTCON . . . . . . . .  	NUMBER	00A4	
ADDR_INT_FATAL_ABORT . . . . . .  	NUMBER	0090	
ADDR_INT_IBM . . . . . . . . . .  	NUMBER	00A8	
ADDR_INT_KEEP_PROCESS  . . . . .  	NUMBER	009C	
ADDR_INT_SPOOLER . . . . . . . .  	NUMBER	00A0	
ADDR_INT_TERMINATE . . . . . . .  	NUMBER	0088	
ALLOC  . . . . . . . . . . . . .  	NUMBER	0048	
ALLOCOPER  . . . . . . . . . . .  	NUMBER	0058	
Alloc_TPA  . . . . . . . . . . .  	N PROC	0214	TRANCODE	Global	Length = 0076
ALLOWED_FAIL . . . . . . . . . .  	NUMBER	0008	
ALLOWED_IGNORE . . . . . . . . .  	NUMBER	0020	
ALLOWED_RETRY  . . . . . . . . .  	NUMBER	0010	
ALTPIPECHR . . . . . . . . . . .  	NUMBER	007C	
ALTVECT  . . . . . . . . . . . .  	ALIAS	 FALSE		
ALT_EXPECTED_VERSION . . . . . .  	NUMBER	1A05	
ALT_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
ALT_MINOR_VERSION  . . . . . . .  	NUMBER	001A	
ANULL  . . . . . . . . . . . . .  	NUMBER	0000	
APPENDDOS  . . . . . . . . . . .  	NUMBER	B702	
APPENDGETSTATE . . . . . . . . .  	NUMBER	B706	
APPENDINSTALL  . . . . . . . . .  	NUMBER	B700	
APPENDSETSTATE . . . . . . . . .  	NUMBER	B707	
APPENDTRUENAME . . . . . . . . .  	NUMBER	B711	
ARENA_OWNER_SYSTEM . . . . . . .  	NUMBER	0000	
ARENA_SIGNATURE_END  . . . . . .  	NUMBER	005A	
ARENA_SIGNATURE_NORMAL . . . . .  	NUMBER	004D	
arg  . . . . . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
ARGBLEN  . . . . . . . . . . . .  	NUMBER	0100	
ARGMAX . . . . . . . . . . . . .  	NUMBER	0040	
ARG_BUF_OVFLOW . . . . . . . . .  	NUMBER	0002	
ARG_CNT_ERROR  . . . . . . . . .  	NUMBER	0001	
ASKFORBAT  . . . . . . . . . . .  	L NEAR	0033	TRANCODE
ASSIGNOPER . . . . . . . . . . .  	NUMBER	005F	
ATTR_ALL . . . . . . . . . . . .  	NUMBER	0016	
ATTR_ARCHIVE . . . . . . . . . .  	NUMBER	0020	
ATTR_CHANGEABLE  . . . . . . . .  	NUMBER	0027	
ATTR_DEVICE  . . . . . . . . . .  	NUMBER	0040	
ATTR_DIRECTORY . . . . . . . . .  	NUMBER	0010	
ATTR_HIDDEN  . . . . . . . . . .  	NUMBER	0002	
ATTR_IGNORE  . . . . . . . . . .  	NUMBER	0061	
ATTR_READ_ONLY . . . . . . . . .  	NUMBER	0001	
ATTR_SYSTEM  . . . . . . . . . .  	NUMBER	0004	
ATTR_VOLUME_ID . . . . . . . . .  	NUMBER	0008	
AUTO_COMMIT_WRITE  . . . . . . .  	NUMBER	4000	

BADBAT_PTR . . . . . . . . . . .  	V WORD	0000	TRANDATA	External
BADPARM_PTR  . . . . . . . . . .  	NUMBER	000A	
BADSWT_PTR . . . . . . . . . . .  	NUMBER	0003	
BatBufPos  . . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
BATCH  . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
BatchOff . . . . . . . . . . . .  	N PROC	03ED	TRANCODE	Global	Length = 005C
BATCHTYPE  . . . . . . . . . . .  	NUMBER	0000	
Batch_Abort  . . . . . . . . . .  	V BYTE	0000	DATARES	External
BATCLOSE . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
BatCom . . . . . . . . . . . . .  	N PROC	028A	TRANCODE	Global	Length = 0163
BATDIE . . . . . . . . . . . . .  	L NEAR	0028	TRANCODE
BATHAND  . . . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
BATLEN . . . . . . . . . . . . .  	NUMBER	0020	
BATOPEN  . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
BAT_NOT_OPEN . . . . . . . . . .  	NUMBER	-0001	
BAT_OPEN_HANDLE  . . . . . . . .  	NUMBER	0013	
BAT_REMCHECK . . . . . . . . . .  	L NEAR	0015	TRANCODE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-7


BLANK  . . . . . . . . . . . . .  	NUMBER	0020	
BUFFERFLAG . . . . . . . . . . .  	NUMBER	FFFF	
BUFINSIZ . . . . . . . . . . . .  	NUMBER	0014	
BUF_DIRTY  . . . . . . . . . . .  	NUMBER	0040	
BUF_DPB  . . . . . . . . . . . .  		000D	
BUF_FILL . . . . . . . . . . . .  		0011	
BUF_FLAGS  . . . . . . . . . . .  		0005	
BUF_FREE . . . . . . . . . . . .  	NUMBER	00FF	
BUF_ID . . . . . . . . . . . . .  		0004	
BUF_ISDATA . . . . . . . . . . .  	NUMBER	0008	
BUF_ISDIR  . . . . . . . . . . .  	NUMBER	0004	
BUF_ISFAT  . . . . . . . . . . .  	NUMBER	0002	
BUF_ISNET  . . . . . . . . . . .  	NUMBER	0080	
BUF_NETID  . . . . . . . . . . .  	ALIAS	 BUFINSIZ		
BUF_NEXT . . . . . . . . . . . .  		0000	
BUF_OFFSET . . . . . . . . . . .  	DWORD	0006	
BUF_PREV . . . . . . . . . . . .  		0002	
BUF_RESERVED . . . . . . . . . .  		0013	
BUF_SECTOR . . . . . . . . . . .  		0006	
BUF_SNBUF  . . . . . . . . . . .  	NUMBER	0010	
BUF_TYPE_0 . . . . . . . . . . .  	NUMBER	00F1	
BUF_VISIT  . . . . . . . . . . .  	NUMBER	0020	
BUF_WRTCNT . . . . . . . . . . .  		000A	
BUF_WRTCNTINC  . . . . . . . . .  		000B	
bwdbuf . . . . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
BYTCNT . . . . . . . . . . . . .  	V WORD	0000	TRANSPACE	External

CALC_TPA . . . . . . . . . . . .  	L NEAR	023B	TRANCODE
call_batch_flag  . . . . . . . .  	V BYTE	0000	DATARES	External
CALL_IN_PROGRESS . . . . . . . .  	NUMBER	0001	
CAPITAL_A  . . . . . . . . . . .  	NUMBER	0041	
CAPITAL_N  . . . . . . . . . . .  	NUMBER	0000	
CAPITAL_Y  . . . . . . . . . . .  	NUMBER	0001	
CAP_ASCIIZ . . . . . . . . . . .  	NUMBER	0022	
CAP_ONE_CHAR . . . . . . . . . .  	NUMBER	0020	
CAP_STRING . . . . . . . . . . .  	NUMBER	0021	
CARGS  . . . . . . . . . . . . .  	NUMBER	0000	
CCEND  . . . . . . . . . . . . .  	L NEAR	045A	TRANCODE
CCOPY  . . . . . . . . . . . . .  	L NEAR	0455	TRANCODE
CCYCLE . . . . . . . . . . . . .  	L NEAR	044A	TRANCODE
cerror . . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
CHAR_OPER  . . . . . . . . . . .  	NUMBER	0037	
CHDIR  . . . . . . . . . . . . .  	NUMBER	003B	
CHECK_YES_NO . . . . . . . . . .  	NUMBER	0023	
CHMOD  . . . . . . . . . . . . .  	NUMBER	0043	
CLOSE  . . . . . . . . . . . . .  	NUMBER	003E	
COLON_CHAR . . . . . . . . . . .  	NUMBER	003A	
COMBUF . . . . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
COMBUFLEN  . . . . . . . . . . .  	NUMBER	0080	
COMMIT . . . . . . . . . . . . .  	NUMBER	0068	
COPYPARM . . . . . . . . . . . .  	L NEAR	018D	TRANCODE
CPSW_OFF . . . . . . . . . . . .  	NUMBER	0000	
CREAT  . . . . . . . . . . . . .  	NUMBER	003C	
CREATENEWFILE  . . . . . . . . .  	NUMBER	005B	
CREATETEMPFILE . . . . . . . . .  	NUMBER	005A	
CREATE_PROCESS_DATA_BLOCK  . . .  	NUMBER	0026	
CREAT_OPEN_FLAG  . . . . . . . .  	NUMBER	0112	
CRITASSIGN . . . . . . . . . . .  	NUMBER	0008	
CRITDEVICE . . . . . . . . . . .  	NUMBER	0002	
CRITDISK . . . . . . . . . . . .  	NUMBER	0001	
CRITIFS  . . . . . . . . . . . .  	NUMBER	0006	
CRITMEM  . . . . . . . . . . . .  	NUMBER	0001	
CRITNET  . . . . . . . . . . . .  	NUMBER	0005	
CRITSFT  . . . . . . . . . . . .  	NUMBER	0001	
CRITSHARE  . . . . . . . . . . .  	NUMBER	0001	
CRIT_MSG_CLASS . . . . . . . . .  	NUMBER	0003	
CRLF2  . . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
CRPRINT  . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
CRT_IOCTL_LN . . . . . . . . . .  	NUMBER	000E	
CURDIRLEN  . . . . . . . . . . .  	NUMBER	0058	
CURDIR_INUSE . . . . . . . . . .  	NUMBER	4000	
CURDIR_ISIFS . . . . . . . . . .  	NUMBER	8000	
CURDIR_ISNET . . . . . . . . . .  	NUMBER	8000	
CURDIR_LOCAL . . . . . . . . . .  	NUMBER	1000	
CURDIR_NETID . . . . . . . . . .  	DWORD	0049	
CURDIR_SPLICE  . . . . . . . . .  	NUMBER	2000	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-8


CURRENT_DIR  . . . . . . . . . .  	NUMBER	0047	
C_BS . . . . . . . . . . . . . .  	NUMBER	0008	
C_CR . . . . . . . . . . . . . .  	NUMBER	000D	
C_DEL  . . . . . . . . . . . . .  	NUMBER	007F	
C_ETB  . . . . . . . . . . . . .  	NUMBER	0017	
C_ETX  . . . . . . . . . . . . .  	NUMBER	0003	
C_HT . . . . . . . . . . . . . .  	NUMBER	0009	
C_LF . . . . . . . . . . . . . .  	NUMBER	000A	
C_NAK  . . . . . . . . . . . . .  	NUMBER	0015	

DBCS . . . . . . . . . . . . . .  	NUMBER	0000	
DEALLOC  . . . . . . . . . . . .  	NUMBER	0049	
DEBUG  . . . . . . . . . . . . .  	NUMBER	0000	
DELIM  . . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
DEVID_BLOCK_DEV  . . . . . . . .  	NUMBER	001F	
DEVID_DEVICE . . . . . . . . . .  	NUMBER	0080	
DEVID_DEVICE_CLOCK . . . . . . .  	NUMBER	0008	
DEVID_DEVICE_CON_IN  . . . . . .  	NUMBER	0001	
DEVID_DEVICE_CON_OUT . . . . . .  	NUMBER	0002	
DEVID_DEVICE_EOF . . . . . . . .  	NUMBER	0040	
DEVID_DEVICE_NULL  . . . . . . .  	NUMBER	0004	
DEVID_DEVICE_RAW . . . . . . . .  	NUMBER	0020	
DEVID_DEVICE_SPECIAL . . . . . .  	NUMBER	0010	
DEVID_EOF  . . . . . . . . . . .  	NUMBER	0040	
DEVID_FILE_CLEAN . . . . . . . .  	NUMBER	0040	
DEVID_FILE_MASK_DRIVE  . . . . .  	NUMBER	003F	
DEVID_ISCIN  . . . . . . . . . .  	NUMBER	0001	
DEVID_ISCLK  . . . . . . . . . .  	NUMBER	0008	
DEVID_ISCOT  . . . . . . . . . .  	NUMBER	0002	
DEVID_ISDEV  . . . . . . . . . .  	NUMBER	0080	
DEVID_ISNUL  . . . . . . . . . .  	NUMBER	0004	
DEVID_RAW  . . . . . . . . . . .  	NUMBER	0020	
DEVID_SPECIAL  . . . . . . . . .  	NUMBER	0010	
DIRSTRLEN  . . . . . . . . . . .  	NUMBER	0043	
DIR_SEARCH_FIRST . . . . . . . .  	NUMBER	0011	
DIR_SEARCH_NEXT  . . . . . . . .  	NUMBER	0012	
DISK_RESET . . . . . . . . . . .  	NUMBER	000D	
DOLLAR . . . . . . . . . . . . .  	NUMBER	0024	
DOT_CHR  . . . . . . . . . . . .  	NUMBER	002E	
DOT_COLON  . . . . . . . . . . .  	NUMBER	2E3A	
DOT_QMARK  . . . . . . . . . . .  	NUMBER	2E3F	
DO_WORD  . . . . . . . . . . . .  	NUMBER	4F44	
DO_XA  . . . . . . . . . . . . .  	NUMBER	-0001	
DPBSIZ . . . . . . . . . . . . .  	NUMBER	0021	
DSKSIZ . . . . . . . . . . . . .  	NUMBER	000D	
dstrlen  . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
DUP_PDB  . . . . . . . . . . . .  	NUMBER	0055	

EACHPARM . . . . . . . . . . . .  	L NEAR	038D	TRANCODE
ECHOFLAG . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
ECHO_LAST_LINE . . . . . . . . .  	L NEAR	0411	TRANCODE
ECS_CALL . . . . . . . . . . . .  	NUMBER	0063	
EMGDEBUG . . . . . . . . . . . .  	NUMBER	0000	
EMS_MAP_BUFF_SIZE  . . . . . . .  	NUMBER	000C	
ENDPARAM . . . . . . . . . . . .  	L NEAR	01A1	TRANCODE
ENDPARM  . . . . . . . . . . . .  	L NEAR	03A9	TRANCODE
END_OF_LINE  . . . . . . . . . .  	NUMBER	-0001	
END_OF_LINE_IN . . . . . . . . .  	NUMBER	000D	
END_OF_LINE_OUT  . . . . . . . .  	NUMBER	0000	
ENOUGH_MEM . . . . . . . . . . .  	L NEAR	0322	TRANCODE
ENTRYPOINT . . . . . . . . . . .  	NUMBER	00C0	
EQUAL_CHR  . . . . . . . . . . .  	NUMBER	003D	
ERRACT_ABORT . . . . . . . . . .  	NUMBER	0004	
ERRACT_DLYRET  . . . . . . . . .  	NUMBER	0002	
ERRACT_IGNORE  . . . . . . . . .  	NUMBER	0006	
ERRACT_INTRET  . . . . . . . . .  	NUMBER	0007	
ERRACT_PANIC . . . . . . . . . .  	NUMBER	0005	
ERRACT_RETRY . . . . . . . . . .  	NUMBER	0001	
ERRACT_USER  . . . . . . . . . .  	NUMBER	0003	
ERRCLASS_ALREADY . . . . . . . .  	NUMBER	000C	
ERRCLASS_APPERR  . . . . . . . .  	NUMBER	0007	
ERRCLASS_AUTH  . . . . . . . . .  	NUMBER	0003	
ERRCLASS_BADFMT  . . . . . . . .  	NUMBER	0009	
ERRCLASS_HRDFAIL . . . . . . . .  	NUMBER	0005	
ERRCLASS_INTRN . . . . . . . . .  	NUMBER	0004	
ERRCLASS_LOCKED  . . . . . . . .  	NUMBER	000A	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-9


ERRCLASS_MEDIA . . . . . . . . .  	NUMBER	000B	
ERRCLASS_NOTFND  . . . . . . . .  	NUMBER	0008	
ERRCLASS_OUTRES  . . . . . . . .  	NUMBER	0001	
ERRCLASS_SYSFAIL . . . . . . . .  	NUMBER	0006	
ERRCLASS_TEMPSIT . . . . . . . .  	NUMBER	0002	
ERRCLASS_UNK . . . . . . . . . .  	NUMBER	000D	
ERRLOC_DISK  . . . . . . . . . .  	NUMBER	0002	
ERRLOC_MEM . . . . . . . . . . .  	NUMBER	0005	
ERRLOC_NET . . . . . . . . . . .  	NUMBER	0003	
ERRLOC_SERDEV  . . . . . . . . .  	NUMBER	0004	
ERRLOC_UNK . . . . . . . . . . .  	NUMBER	0001	
ERROR_ACCESS_DENIED  . . . . . .  	NUMBER	0005	
ERROR_ALREADY_ASSIGNED . . . . .  	NUMBER	0055	
ERROR_ARENA_TRASHED  . . . . . .  	NUMBER	0007	
ERROR_BAD_COMMAND  . . . . . . .  	NUMBER	0016	
ERROR_BAD_ENVIRONMENT  . . . . .  	NUMBER	000A	
ERROR_BAD_FORMAT . . . . . . . .  	NUMBER	000B	
ERROR_BAD_LENGTH . . . . . . . .  	NUMBER	0018	
ERROR_BAD_UNIT . . . . . . . . .  	NUMBER	0014	
ERROR_CANNOT_MAKE  . . . . . . .  	NUMBER	0052	
ERROR_CODE_PAGE_MISMATCHED . . .  	NUMBER	0025	
ERROR_CRC  . . . . . . . . . . .  	NUMBER	0017	
ERROR_CURRENT_DIRECTORY  . . . .  	NUMBER	0010	
ERROR_DUP_FCB  . . . . . . . . .  	NUMBER	0051	
ERROR_FAIL_I24 . . . . . . . . .  	NUMBER	0053	
ERROR_FCB_UNAVAILABLE  . . . . .  	NUMBER	0023	
ERROR_FILE_EXISTS  . . . . . . .  	NUMBER	0050	
ERROR_FILE_NOT_FOUND . . . . . .  	NUMBER	0002	
ERROR_GEN_FAILURE  . . . . . . .  	NUMBER	001F	
ERROR_HANDLE_DISK_FULL . . . . .  	NUMBER	0027	
ERROR_HANDLE_EOF . . . . . . . .  	NUMBER	0026	
ERROR_I24_BAD_COMMAND  . . . . .  	NUMBER	0003	
ERROR_I24_BAD_LENGTH . . . . . .  	NUMBER	0005	
ERROR_I24_BAD_UNIT . . . . . . .  	NUMBER	0001	
ERROR_I24_CRC  . . . . . . . . .  	NUMBER	0004	
ERROR_I24_GEN_FAILURE  . . . . .  	NUMBER	000C	
ERROR_I24_NOT_DOS_DISK . . . . .  	NUMBER	0007	
ERROR_I24_NOT_READY  . . . . . .  	NUMBER	0002	
ERROR_I24_OUT_OF_PAPER . . . . .  	NUMBER	0009	
ERROR_I24_READ_FAULT . . . . . .  	NUMBER	000B	
ERROR_I24_SECTOR_NOT_FOUND . . .  	NUMBER	0008	
ERROR_I24_SEEK . . . . . . . . .  	NUMBER	0006	
ERROR_I24_WRITE_FAULT  . . . . .  	NUMBER	000A	
ERROR_I24_WRITE_PROTECT  . . . .  	NUMBER	0000	
ERROR_I24_WRONG_DISK . . . . . .  	NUMBER	000F	
ERROR_INVALID_ACCESS . . . . . .  	NUMBER	000C	
ERROR_INVALID_BLOCK  . . . . . .  	NUMBER	0009	
ERROR_INVALID_DATA . . . . . . .  	NUMBER	000D	
ERROR_INVALID_DRIVE  . . . . . .  	NUMBER	000F	
ERROR_INVALID_FUNCTION . . . . .  	NUMBER	0001	
ERROR_INVALID_HANDLE . . . . . .  	NUMBER	0006	
ERROR_INVALID_PARAMETER  . . . .  	NUMBER	0057	
ERROR_INVALID_PASSWORD . . . . .  	NUMBER	0056	
ERROR_LOCK_VIOLATION . . . . . .  	NUMBER	0021	
ERROR_NET_WRITE_FAULT  . . . . .  	NUMBER	0058	
ERROR_NOT_DOS_DISK . . . . . . .  	NUMBER	001A	
ERROR_NOT_ENOUGH_MEMORY  . . . .  	NUMBER	0008	
ERROR_NOT_READY  . . . . . . . .  	NUMBER	0015	
ERROR_NOT_SAME_DEVICE  . . . . .  	NUMBER	0011	
ERROR_NOT_SUPPORTED  . . . . . .  	NUMBER	0032	
ERROR_NO_MORE_FILES  . . . . . .  	NUMBER	0012	
ERROR_OUT_OF_PAPER . . . . . . .  	NUMBER	001C	
ERROR_OUT_OF_STRUCTURES  . . . .  	NUMBER	0054	
ERROR_PATH_NOT_FOUND . . . . . .  	NUMBER	0003	
ERROR_READ_FAULT . . . . . . . .  	NUMBER	001E	
ERROR_SECTOR_NOT_FOUND . . . . .  	NUMBER	001B	
ERROR_SEEK . . . . . . . . . . .  	NUMBER	0019	
ERROR_SHARING_BUFFER_EXCEEDED  .  	NUMBER	0024	
ERROR_SHARING_VIOLATION  . . . .  	NUMBER	0020	
ERROR_SYS_COMP_NOT_LOADED  . . .  	NUMBER	005A	
ERROR_TOO_MANY_OPEN_FILES  . . .  	NUMBER	0004	
ERROR_WRITE_FAULT  . . . . . . .  	NUMBER	001D	
ERROR_WRITE_PROTECT  . . . . . .  	NUMBER	0013	
ERROR_WRONG_DISK . . . . . . . .  	NUMBER	0022	
EXEC . . . . . . . . . . . . . .  	NUMBER	004B	
EXECPATH . . . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-10


EXEC_FUNC_NO_EXECUTE . . . . . .  	NUMBER	0001	
EXEC_FUNC_OVERLAY  . . . . . . .  	NUMBER	0002	
EXE_VALID_OLD_SIGNATURE  . . . .  	NUMBER	4D5A	
EXE_VALID_SIGNATURE  . . . . . .  	NUMBER	5A4D	
EXISTS_MASK  . . . . . . . . . .  	NUMBER	000F	
EXIT . . . . . . . . . . . . . .  	NUMBER	004C	
EXIT_ABORT . . . . . . . . . . .  	NUMBER	0000	
EXIT_CTRL_C  . . . . . . . . . .  	NUMBER	0001	
EXIT_HARD_ERROR  . . . . . . . .  	NUMBER	0002	
EXIT_KEEP_PROCESS  . . . . . . .  	NUMBER	0003	
EXIT_TERMINATE . . . . . . . . .  	NUMBER	0000	
EXPECTED_VERSION . . . . . . . .  	NUMBER	0004	
Extend_buf_ptr . . . . . . . . .  	V WORD	0000	TRANDATA	External
Extend_buf_sub . . . . . . . . .  	V BYTE	0000	TRANDATA	External
EXTHANDLE  . . . . . . . . . . .  	NUMBER	0067	
EXTOPEN  . . . . . . . . . . . .  	NUMBER	006C	
EXT_CRLF_CLASS . . . . . . . . .  	NUMBER	0081	
EXT_EXISTS_FAIL  . . . . . . . .  	NUMBER	0000	
EXT_EXISTS_OPEN  . . . . . . . .  	NUMBER	0001	
EXT_FILE_NOT_EXISTS  . . . . . .  	NUMBER	0004	
EXT_MSG_CLASS  . . . . . . . . .  	NUMBER	0001	
EXT_NEXISTS_CREATE . . . . . . .  	NUMBER	0010	
EXT_OPEN_I24_OFF . . . . . . . .  	NUMBER	0002	
EXT_OPEN_ON  . . . . . . . . . .  	NUMBER	0001	

FAIL_ALLOWED . . . . . . . . . .  	NUMBER	0008	
FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
FBADSWITCH . . . . . . . . . . .  	NUMBER	4000	
FCB  . . . . . . . . . . . . . .  	NUMBER	005C	
FCBDEVICE  . . . . . . . . . . .  	NUMBER	0040	
FCBMASK  . . . . . . . . . . . .  	NUMBER	00C0	
FCBNETWORK . . . . . . . . . . .  	NUMBER	0080	
FCBSHARE . . . . . . . . . . . .  	NUMBER	00C0	
FCBSPECIAL . . . . . . . . . . .  	NUMBER	0080	
FCB_CLOSE  . . . . . . . . . . .  	NUMBER	0010	
FCB_CREATE . . . . . . . . . . .  	NUMBER	0016	
FCB_DELETE . . . . . . . . . . .  	NUMBER	0013	
FCB_L_ATTR . . . . . . . . . . .  	BYTE	001E	
FCB_L_DRIVE  . . . . . . . . . .  	BYTE	0019	
FCB_L_FIRCLUS  . . . . . . . . .  	WORD	001A	
FCB_L_MFS  . . . . . . . . . . .  	WORD	001C	
FCB_NETID  . . . . . . . . . . .  	DWORD	001C	
FCB_NET_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NET_HANDLE . . . . . . . . .  	WORD	001A	
FCB_NSLD_DRIVE . . . . . . . . .  	BYTE	0019	
FCB_NSLD_DRVPTR  . . . . . . . .  	DWORD	001A	
FCB_NSL_BITS . . . . . . . . . .  	BYTE	001A	
FCB_NSL_DIRPOS . . . . . . . . .  	BYTE	001F	
FCB_NSL_DIRSEC . . . . . . . . .  	WORD	001D	
FCB_NSL_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NSL_FIRCLUS  . . . . . . . .  	WORD	001B	
FCB_OPEN . . . . . . . . . . . .  	NUMBER	000F	
FCB_RANDOM_READ  . . . . . . . .  	NUMBER	0021	
FCB_RANDOM_READ_BLOCK  . . . . .  	NUMBER	0027	
FCB_RANDOM_WRITE . . . . . . . .  	NUMBER	0022	
FCB_RANDOM_WRITE_BLOCK . . . . .  	NUMBER	0028	
FCB_RENAME . . . . . . . . . . .  	NUMBER	0017	
FCB_SEQ_READ . . . . . . . . . .  	NUMBER	0014	
FCB_SEQ_WRITE  . . . . . . . . .  	NUMBER	0015	
FCB_SFN  . . . . . . . . . . . .  	BYTE	0018	
FCHECKDRIVE  . . . . . . . . . .  	NUMBER	0001	
FCHK . . . . . . . . . . . . . .  	NUMBER	0001	
FDELIM . . . . . . . . . . . . .  	NUMBER	0002	
FFCB . . . . . . . . . . . . . .  	NUMBER	0008	
FILDIRENT  . . . . . . . . . . .  	NUMBER	0010	
FILE_INV_CPAGE . . . . . . . . .  	NUMBER	-0001	
FILE_NO_CPAGE  . . . . . . . . .  	NUMBER	0000	
FILE_TIMES . . . . . . . . . . .  	NUMBER	0057	
FILPERPROC . . . . . . . . . . .  	NUMBER	0014	
FIND_FIRST . . . . . . . . . . .  	NUMBER	004E	
FIND_NAME_IN_environment . . . .  	L NEAR	0000	TRANCODE	External
FIND_NEXT  . . . . . . . . . . .  	NUMBER	004F	
forflag  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
ForOff . . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
forptr . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
FOR_NOT_ON . . . . . . . . . . .  	L NEAR	035D	TRANCODE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-11


FOUND_EOL  . . . . . . . . . . .  	L NEAR	0118	TRANCODE
FPARSE . . . . . . . . . . . . .  	NUMBER	0001	
Free_TPA . . . . . . . . . . . .  	N PROC	0204	TRANCODE	Global	Length = 0010
FSPCHK . . . . . . . . . . . . .  	NUMBER	0004	
FSWITCH  . . . . . . . . . . . .  	NUMBER	8000	
FSWITCHALLOWED . . . . . . . . .  	NUMBER	0002	
F_AUX  . . . . . . . . . . . . .  	NUMBER	0010	
F_CARRY  . . . . . . . . . . . .  	NUMBER	0001	
F_DIRECTION  . . . . . . . . . .  	NUMBER	0400	
F_INTERRUPT  . . . . . . . . . .  	NUMBER	0200	
F_OVERFLOW . . . . . . . . . . .  	NUMBER	0800	
F_PARITY . . . . . . . . . . . .  	NUMBER	0004	
F_SIGN . . . . . . . . . . . . .  	NUMBER	0080	
F_TRACE  . . . . . . . . . . . .  	NUMBER	0100	
F_ZERO . . . . . . . . . . . . .  	NUMBER	0040	

GetBatByt  . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
GETCURRENTPSP  . . . . . . . . .  	NUMBER	0062	
GETECHO  . . . . . . . . . . . .  	L NEAR	02A7	TRANCODE
GETENV1  . . . . . . . . . . . .  	L NEAR	01AD	TRANCODE
GETENV15 . . . . . . . . . . . .  	L NEAR	01C9	TRANCODE
GETENV2  . . . . . . . . . . . .  	L NEAR	01D3	TRANCODE
GETENV4  . . . . . . . . . . . .  	L NEAR	01EA	TRANCODE
GETEXTCNTRY  . . . . . . . . . .  	NUMBER	0065	
GETEXTENDEDERROR . . . . . . . .  	NUMBER	0059	
GETINTERIMMODE . . . . . . . . .  	NUMBER	0002	
GetKeyStroke . . . . . . . . . .  	N PROC	0073	TRANCODE	Global	Length = 0020
GETLEADBTBL  . . . . . . . . . .  	NUMBER	0000	
GETSETCDPG . . . . . . . . . . .  	NUMBER	0066	
GETSETMEDIAID  . . . . . . . . .  	NUMBER	0069	
GET_CPSW . . . . . . . . . . . .  	NUMBER	0003	
GET_CRITICAL_MSG . . . . . . . .  	NUMBER	0004	
GET_CURRENT_PDB  . . . . . . . .  	NUMBER	0051	
GET_DATE . . . . . . . . . . . .  	NUMBER	002A	
GET_DEFAULT_DPB  . . . . . . . .  	NUMBER	001F	
GET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	0019	
GET_DMA  . . . . . . . . . . . .  	NUMBER	002F	
GET_DPB  . . . . . . . . . . . .  	NUMBER	0032	
GET_DRIVE_FREESPACE  . . . . . .  	NUMBER	0036	
GET_EXTENDED_MSG . . . . . . . .  	NUMBER	0000	
GET_FCB_FILE_LENGTH  . . . . . .  	NUMBER	0023	
GET_FCB_POSITION . . . . . . . .  	NUMBER	0024	
GET_GENERIC  . . . . . . . . . .  	NUMBER	007F	
GET_INDOS_FLAG . . . . . . . . .  	NUMBER	0034	
GET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0035	
GET_IN_VARS  . . . . . . . . . .  	NUMBER	0052	
GET_PARSE_MSG  . . . . . . . . .  	NUMBER	0002	
GET_TIME . . . . . . . . . . . .  	NUMBER	002C	
GET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	0054	
GET_VERSION  . . . . . . . . . .  	NUMBER	0030	
GET_VIDEO_STATE  . . . . . . . .  	NUMBER	000F	
GET_XA . . . . . . . . . . . . .  	NUMBER	0002	
GOTSIZE  . . . . . . . . . . . .  	L NEAR	0285	TRANCODE

HANDLE_FAIL_I24  . . . . . . . .  	NUMBER	0100	
HAVPARM  . . . . . . . . . . . .  	L NEAR	03B1	TRANCODE
HONGEUL  . . . . . . . . . . . .  	NUMBER	0063	

I24_AREA . . . . . . . . . . . .  	NUMBER	0006	
I24_CLASS  . . . . . . . . . . .  	NUMBER	0080	
I24_OPERATION  . . . . . . . . .  	NUMBER	0001	
IBM  . . . . . . . . . . . . . .  	ALIAS	 IBMVER		
IBMCOPYRIGHT . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPAN . . . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPVER  . . . . . . . . . . .  	ALIAS	 FALSE		
IBMVER . . . . . . . . . . . . .  	ALIAS	 TRUE		
ID . . . . . . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
IFFlag . . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
IFS_IOCTL  . . . . . . . . . . .  	NUMBER	006B	
IGNORE_ALLOWED . . . . . . . . .  	NUMBER	0020	
INITCTRLC  . . . . . . . . . . .  	NUMBER	0004	
INITINIT . . . . . . . . . . . .  	NUMBER	0001	
INITSPECIAL  . . . . . . . . . .  	NUMBER	0002	
INSTALLED  . . . . . . . . . . .  	NUMBER	FFFF	
INSTALLEDDATA  . . . . . . . . .  	NUMBER	0000	
INTBASE  . . . . . . . . . . . .  	NUMBER	0080	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-12


INTERIMMODE  . . . . . . . . . .  	NUMBER	0001	
INTERNAT . . . . . . . . . . . .  	ALIAS	 FALSE		
INTERNATIONAL  . . . . . . . . .  	NUMBER	0038	
INTERNAT_BLOCK_MAX . . . . . . .  	NUMBER	0020	
INTTAB . . . . . . . . . . . . .  	NUMBER	0020	
INT_24_ERROR . . . . . . . . . .  	NUMBER	2000	
INT_ABORT  . . . . . . . . . . .  	ALIAS	 INTTAB		
INT_COMMAND  . . . . . . . . . .  	NUMBER	0021	
INT_CTRL_C . . . . . . . . . . .  	NUMBER	0023	
INT_DISK_READ  . . . . . . . . .  	NUMBER	0025	
INT_DISK_WRITE . . . . . . . . .  	NUMBER	0026	
INT_FASTCON  . . . . . . . . . .  	NUMBER	0029	
INT_FATAL_ABORT  . . . . . . . .  	NUMBER	0024	
INT_IBM  . . . . . . . . . . . .  	NUMBER	002A	
INT_KEEP_PROCESS . . . . . . . .  	NUMBER	0027	
INT_SPOOLER  . . . . . . . . . .  	NUMBER	0028	
INT_TERMINATE  . . . . . . . . .  	NUMBER	0022	
INV_CP_TAG . . . . . . . . . . .  	NUMBER	0000	
In_Batch . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
IN_WORD  . . . . . . . . . . . .  	NUMBER	4E49	
IOCTL  . . . . . . . . . . . . .  	NUMBER	0044	
IOSET  . . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
IO_MODE_ID . . . . . . . . . . .  	NUMBER	0002	

JAPAN  . . . . . . . . . . . . .  	ALIAS	 FALSE		

KANJI  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KEEP_PROCESS . . . . . . . . . .  	NUMBER	0031	
KOREA  . . . . . . . . . . . . .  	ALIAS	 FALSE		

LABRACKET  . . . . . . . . . . .  	NUMBER	003C	
LEAVEBAT . . . . . . . . . . . .  	L NEAR	02D0	TRANCODE
LENGTH_CALL  . . . . . . . . . .  	NUMBER	0004	
LESSARGS_PTR . . . . . . . . . .  	NUMBER	0002	
LINESPERPAGE . . . . . . . . . .  	NUMBER	0019	
LINETOOL . . . . . . . . . . . .  	L NEAR	019C	TRANCODE
LOCKOPER . . . . . . . . . . . .  	NUMBER	005C	
LPAREN . . . . . . . . . . . . .  	NUMBER	0028	
LSEEK  . . . . . . . . . . . . .  	NUMBER	0042	
LTLCONT  . . . . . . . . . . . .  	L NEAR	015A	TRANCODE
LTPA . . . . . . . . . . . . . .  	V WORD	0000	DATARES	External

MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MAXBUCKETINPAGE  . . . . . . . .  	NUMBER	0002	
MAXBUFFINBUCKET  . . . . . . . .  	NUMBER	000F	
MAX_NEST . . . . . . . . . . . .  	NUMBER	000A	
MEMS . . . . . . . . . . . . . .  	NUMBER	0001	
MEM_ERROR  . . . . . . . . . . .  	L NEAR	031F	TRANCODE
MESSAGE_2F . . . . . . . . . . .  	NUMBER	002E	
MINOR_VERSION  . . . . . . . . .  	NUMBER	0000	
MI_INT . . . . . . . . . . . . .  	NUMBER	00CD	
MI_LONG_CALL . . . . . . . . . .  	NUMBER	009A	
MI_LONG_JMP  . . . . . . . . . .  	NUMBER	00EA	
MI_LONG_RET  . . . . . . . . . .  	NUMBER	00CB	
MI_NEAR_RET  . . . . . . . . . .  	NUMBER	00C3	
MKDIR  . . . . . . . . . . . . .  	NUMBER	0039	
MOREARGS_PTR . . . . . . . . . .  	NUMBER	0001	
MOVPARM  . . . . . . . . . . . .  	L NEAR	039C	TRANCODE
msg_disp_class . . . . . . . . .  	V BYTE	0000	TRANDATA	External
MSVER  . . . . . . . . . . . . .  	NUMBER	0000	
MULTDOS  . . . . . . . . . . . .  	NUMBER	0012	
MULTIFS  . . . . . . . . . . . .  	NUMBER	0011	
MULTNET  . . . . . . . . . . . .  	NUMBER	0011	
MULTSHARE  . . . . . . . . . . .  	NUMBER	0010	
MULT_ANSI  . . . . . . . . . . .  	NUMBER	001A	
MULT_SHELL_BRK . . . . . . . . .  	NUMBER	1903	
MULT_SHELL_GET . . . . . . . . .  	NUMBER	1902	

NEEDBAT_PTR  . . . . . . . . . .  	V WORD	0000	TRANDATA	External
NEEDENV  . . . . . . . . . . . .  	L NEAR	01A5	TRANCODE
NEEDPARM . . . . . . . . . . . .  	L NEAR	015D	TRANCODE
Nest . . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
NEW_COUNTRY_SIZE . . . . . . . .  	NUMBER	0026	
next_batch . . . . . . . . . . .  	V WORD	0000	DATARES	External
NLSFUNC  . . . . . . . . . . . .  	NUMBER	0014	
NOBATSING  . . . . . . . . . . .  	L NEAR	03CF	TRANCODE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-13


NOFREE . . . . . . . . . . . . .  	L NEAR	0444	TRANCODE
NONINTERIMMODE . . . . . . . . .  	NUMBER	0000	
NOPLINE  . . . . . . . . . . . .  	L NEAR	00F6	TRANCODE
NORMPERLIN . . . . . . . . . . .  	NUMBER	0001	
NOROUND  . . . . . . . . . . . .  	L NEAR	025E	TRANCODE
NOT_EXISTS_MASK  . . . . . . . .  	NUMBER	00F0	
NO_CODE_PAGE_CHECK . . . . . . .  	NUMBER	0100	
NO_CONT_FLAG . . . . . . . . . .  	NUMBER	0000	
NO_CRLF_PRINT  . . . . . . . . .  	L NEAR	0144	TRANCODE
NO_ECHO  . . . . . . . . . . . .  	NUMBER	0000	
NO_ECHO_CHAR . . . . . . . . . .  	NUMBER	0040	
NO_HANDLE_OUT  . . . . . . . . .  	NUMBER	-0001	
NO_MEMORY  . . . . . . . . . . .  	L NEAR	03D6	TRANCODE
NO_SUBST . . . . . . . . . . . .  	NUMBER	0000	
NO_XA_SEG  . . . . . . . . . . .  	NUMBER	-0001	
NULLCOMMAND  . . . . . . . . . .  	NUMBER	0001	
nullflag . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
NULLRPAREN . . . . . . . . . . .  	NUMBER	0029	

OEM_C1 . . . . . . . . . . . . .  	NUMBER	00F9	
OEM_C2 . . . . . . . . . . . . .  	NUMBER	00FA	
OEM_C3 . . . . . . . . . . . . .  	NUMBER	00FB	
OEM_C4 . . . . . . . . . . . . .  	NUMBER	00FC	
OEM_C5 . . . . . . . . . . . . .  	NUMBER	00FD	
OEM_C6 . . . . . . . . . . . . .  	NUMBER	00FE	
OEM_C7 . . . . . . . . . . . . .  	NUMBER	00FF	
OLD_COUNTRY_SIZE . . . . . . . .  	NUMBER	0018	
ONE_SUBST  . . . . . . . . . . .  	NUMBER	0001	
OPEN . . . . . . . . . . . . . .  	NUMBER	003D	
OPEN_FOR_BOTH  . . . . . . . . .  	NUMBER	0002	
OPEN_FOR_READ  . . . . . . . . .  	NUMBER	0000	
OPEN_FOR_WRITE . . . . . . . . .  	NUMBER	0001	
output_batch_name  . . . . . . .  	N PROC	0048	TRANCODE	Global	Length = 002B

PARM_BLOCK_SIZE  . . . . . . . .  	NUMBER	000B	
PARM_OFF_POS . . . . . . . . . .  	WORD	0002	
PAROK  . . . . . . . . . . . . .  	L NEAR	0168	TRANCODE
PARSE_FILE_DESCRIPTOR  . . . . .  	NUMBER	0029	
PARSE_MSG_CLASS  . . . . . . . .  	NUMBER	0002	
PATHPARSE  . . . . . . . . . . .  	NUMBER	0061	
PATH_SEP . . . . . . . . . . . .  		0002	
pausemes_ptr . . . . . . . . . .  	V WORD	0000	TRANDATA	External
PDB_APPEND . . . . . . . . . . .  	BYTE	003D	
PDB_INTERCON . . . . . . . . . .  	BYTE	003C	
PIPEFLAG . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
PipeOff  . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
PLUS_CHR . . . . . . . . . . . .  	NUMBER	002B	
PRINT_PROMPT . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
PromptBat  . . . . . . . . . . .  	N PROC	0000	TRANCODE	Global	Length = 0048
PTR_OFF_POS  . . . . . . . . . .  	NUMBER	0005	
PTR_SEG_POS  . . . . . . . . . .  	NUMBER	0007	

RABRACKET  . . . . . . . . . . .  	NUMBER	003E	
RAW_CON_INPUT  . . . . . . . . .  	NUMBER	0007	
RAW_CON_IO . . . . . . . . . . .  	NUMBER	0006	
RCH_ADDR . . . . . . . . . . . .  	V DWORD	0000	TRANSPACE	External
RDBAT  . . . . . . . . . . . . .  	L NEAR	0105	TRANCODE
READ . . . . . . . . . . . . . .  	NUMBER	003F	
ReadBat  . . . . . . . . . . . .  	N PROC	0093	TRANCODE	Global	Length = 0160
READ_OPEN_FLAG . . . . . . . . .  	NUMBER	0101	
READ_OPEN_MODE . . . . . . . . .  	NUMBER	0000	
REDIRECTOR . . . . . . . . . . .  	NUMBER	0000	
RENAME . . . . . . . . . . . . .  	NUMBER	0056	
RESERVED_BITS_MASK . . . . . . .  	NUMBER	FE00	
RESET  . . . . . . . . . . . . .  	L NEAR	0136	TRANCODE
RESSEG . . . . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
RESULT_DATE  . . . . . . . . . .  	NUMBER	0007	
RESULT_DRIVE . . . . . . . . . .  	NUMBER	0006	
RESULT_FILESPEC  . . . . . . . .  	NUMBER	0005	
RESULT_NO_ERROR  . . . . . . . .  	NUMBER	0000	
RESULT_NUMBER  . . . . . . . . .  	NUMBER	0001	
RESULT_STRING  . . . . . . . . .  	NUMBER	0003	
RESULT_TIME  . . . . . . . . . .  	NUMBER	0008	
RES_SUBST  . . . . . . . . . . .  	NUMBER	0002	
RES_TPA  . . . . . . . . . . . .  	V WORD	0000	DATARES	External
RETRY_ALLOWED  . . . . . . . . .  	NUMBER	0010	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-14


RET_L  . . . . . . . . . . . . .  	NEAR	045D	TRANCODE
RET_NC . . . . . . . . . . . . .  	NEAR	0005	TRANCODE
RET_Z  . . . . . . . . . . . . .  	NEAR	01FB	TRANCODE
RMDIR  . . . . . . . . . . . . .  	NUMBER	003A	
ROUNDDONE  . . . . . . . . . . .  	L NEAR	0262	TRANCODE
RPAREN . . . . . . . . . . . . .  	NUMBER	0029	

SAVBATBYT  . . . . . . . . . . .  	L NEAR	0113	TRANCODE
SAVSIZ2  . . . . . . . . . . . .  	L NEAR	027D	TRANCODE
SCANOFF  . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
SCROLL_VIDEO_PAGE  . . . . . . .  	NUMBER	0006	
SEARCH_ATTR  . . . . . . . . . .  	NUMBER	0013	
SEMICOLON  . . . . . . . . . . .  	NUMBER	003B	
SERVERCALL . . . . . . . . . . .  	NUMBER	005D	
SETALL . . . . . . . . . . . . .  	NUMBER	-0001	
SETBLOCK . . . . . . . . . . . .  	NUMBER	004A	
SETCOLLATE . . . . . . . . . . .  	NUMBER	0006	
SETCOUNTRYINFO . . . . . . . . .  	NUMBER	0001	
SETDBCS  . . . . . . . . . . . .  	NUMBER	0007	
SETDPB . . . . . . . . . . . . .  	NUMBER	0053	
SETFILELIST  . . . . . . . . . .  	NUMBER	0005	
SETINTERIMMODE . . . . . . . . .  	NUMBER	0001	
SETLCASE . . . . . . . . . . . .  	NUMBER	0003	
SETUCASE . . . . . . . . . . . .  	NUMBER	0002	
SETUCASEFILE . . . . . . . . . .  	NUMBER	0004	
SET_BAT_POS  . . . . . . . . . .  	L NEAR	00D7	TRANCODE
SET_COLOR_PALETTE  . . . . . . .  	NUMBER	000B	
SET_CRITICAL_MSG . . . . . . . .  	NUMBER	0005	
SET_CRIT_DEV . . . . . . . . . .  	NUMBER	0100	
SET_CTRL_C_TRAPPING  . . . . . .  	NUMBER	0033	
SET_CURRENT_PDB  . . . . . . . .  	NUMBER	0050	
SET_CURSOR_POSITION  . . . . . .  	NUMBER	0002	
SET_DATE . . . . . . . . . . . .  	NUMBER	002B	
SET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	000E	
SET_DMA  . . . . . . . . . . . .  	NUMBER	001A	
SET_EXTENDED_MSG . . . . . . . .  	NUMBER	0001	
SET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0025	
SET_OEM_HANDLER  . . . . . . . .  	NUMBER	00F8	
SET_PARSE_MSG  . . . . . . . . .  	NUMBER	0003	
SET_PRINTER_FLAG . . . . . . . .  	NUMBER	0064	
SET_TIME . . . . . . . . . . . .  	NUMBER	002D	
SET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	002E	
SET_VIDEO_MODE . . . . . . . . .  	NUMBER	0000	
SET_XA . . . . . . . . . . . . .  	NUMBER	0004	
SF_BUSY  . . . . . . . . . . . .  	NUMBER	-0001	
SF_CLOSE_NODATE  . . . . . . . .  	NUMBER	4000	
SF_DEFAULT_NUMBER  . . . . . . .  	NUMBER	0005	
SF_FSDA  . . . . . . . . . . . .  	BYTE	0019	
SF_ISFCB . . . . . . . . . . . .  	NUMBER	8000	
SF_ISNET . . . . . . . . . . . .  	NUMBER	8000	
SF_LRU . . . . . . . . . . . . .  	WORD	0015	
SF_NETID . . . . . . . . . . . .  	BYTE	0019	
SF_NET_SPOOL . . . . . . . . . .  	NUMBER	0800	
SF_NO_INHERIT  . . . . . . . . .  	NUMBER	1000	
SF_OPENAGE . . . . . . . . . . .  	WORD	0017	
SF_PIPE  . . . . . . . . . . . .  	NUMBER	2000	
SF_SERIAL_ID . . . . . . . . . .  	WORD	000B	
SHAREF . . . . . . . . . . . . .  	NUMBER	0000	
SHARING_COMPAT . . . . . . . . .  	NUMBER	0000	
SHARING_DENY_BOTH  . . . . . . .  	NUMBER	0010	
SHARING_DENY_NONE  . . . . . . .  	NUMBER	0040	
SHARING_DENY_READ  . . . . . . .  	NUMBER	0030	
SHARING_DENY_WRITE . . . . . . .  	NUMBER	0020	
SHARING_MASK . . . . . . . . . .  	NUMBER	00F0	
SHARING_NET_FCB  . . . . . . . .  	NUMBER	0070	
SHARING_NO_INHERIT . . . . . . .  	NUMBER	0080	
SHELL_ACTION . . . . . . . . . .  	NUMBER	00FF	
SINGLECOM  . . . . . . . . . . .  	V WORD	0000	DATARES	External
SkipDelim  . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
SkipToEOL  . . . . . . . . . . .  	N PROC	01F3	TRANCODE	Global	Length = 0011
SKIP_IOSET . . . . . . . . . . .  	L NEAR	0299	TRANCODE
SMALL_A  . . . . . . . . . . . .  	NUMBER	0061	
SMALL_Z  . . . . . . . . . . . .  	NUMBER	007A	
SPECIAL_DELIM  . . . . . . . . .  		0007	
STAR . . . . . . . . . . . . . .  	NUMBER	002A	
STARTBAT . . . . . . . . . . . .  	L NEAR	02DC	TRANCODE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-15


STDAUX . . . . . . . . . . . . .  	NUMBER	0003	
STDERR . . . . . . . . . . . . .  	NUMBER	0002	
STDIN  . . . . . . . . . . . . .  	NUMBER	0000	
STDOUT . . . . . . . . . . . . .  	NUMBER	0001	
STDPRN . . . . . . . . . . . . .  	NUMBER	0004	
STD_AUX_INPUT  . . . . . . . . .  	NUMBER	0003	
STD_AUX_OUTPUT . . . . . . . . .  	NUMBER	0004	
STD_CON_INPUT  . . . . . . . . .  	NUMBER	0001	
STD_CON_INPUT_FLUSH  . . . . . .  	NUMBER	000C	
STD_CON_INPUT_NO_ECHO  . . . . .  	NUMBER	0008	
STD_CON_INPUT_STATUS . . . . . .  	NUMBER	000B	
STD_CON_OUTPUT . . . . . . . . .  	NUMBER	0002	
STD_CON_STRING_INPUT . . . . . .  	NUMBER	000A	
STD_CON_STRING_OUTPUT  . . . . .  	NUMBER	0009	
std_eprintf  . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
STD_PRINTER_OUTPUT . . . . . . .  	NUMBER	0005	
StrCpy . . . . . . . . . . . . .  	N PROC	0449	TRANCODE	Global	Length = 0015
string_ptr_2 . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
SUPPRESS . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
SWITCHA  . . . . . . . . . . . .  	NUMBER	0004	
SWITCHB  . . . . . . . . . . . .  	NUMBER	0008	
SWITCHCOPY . . . . . . . . . . .  	NUMBER	801C	
SWITCHDIR  . . . . . . . . . . .  	NUMBER	8003	
SWITCHP  . . . . . . . . . . . .  	NUMBER	0002	
SWITCHV  . . . . . . . . . . . .  	NUMBER	0010	
SWITCHW  . . . . . . . . . . . .  	NUMBER	0001	
SW_FLAG  . . . . . . . . . . . .  		0000	
SYM  . . . . . . . . . . . . . .  	NUMBER	003E	

TAB_CHR  . . . . . . . . . . . .  	NUMBER	0009	
tcommand . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
TEMPLEN  . . . . . . . . . . . .  	NUMBER	0086	
TESTNOP  . . . . . . . . . . . .  	L NEAR	00AA	TRANCODE
TEXT_MODE  . . . . . . . . . . .  	NUMBER	0001	
TOOLONG  . . . . . . . . . . . .  	L NEAR	0153	TRANCODE
TPA  . . . . . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
TPLEN  . . . . . . . . . . . . .  	NUMBER	0040	
TRAN_TPA . . . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	
TRYING_TO_ABORT  . . . . . . . .  	L NEAR	00A7	TRANCODE
TRY_NEXTFLAG . . . . . . . . . .  	L NEAR	013A	TRANCODE

UNLINK . . . . . . . . . . . . .  	NUMBER	0041	
UNUSED . . . . . . . . . . . . .  		0003	
UPPER_TABLE  . . . . . . . . . .  	NUMBER	0080	
USEROPER . . . . . . . . . . . .  	NUMBER	005E	
UTIL_MSG_CLASS . . . . . . . . .  	NUMBER	-0001	

VBAR . . . . . . . . . . . . . .  	NUMBER	007C	
VIDEO_ALPHA  . . . . . . . . . .  	NUMBER	0003	
VIDEO_ATTRIBUTE  . . . . . . . .  	NUMBER	0007	
VIDEO_BW . . . . . . . . . . . .  	NUMBER	0007	
VIDEO_IO_INT . . . . . . . . . .  	NUMBER	0010	

WAITPROCESS  . . . . . . . . . .  	NUMBER	004D	
WIDEPERLIN . . . . . . . . . . .  	NUMBER	0005	
WILDCARD . . . . . . . . . . . .  		0001	
WRITE  . . . . . . . . . . . . .  	NUMBER	0040	
WRITE_OPEN_FLAG  . . . . . . . .  	NUMBER	0101	
WRITE_OPEN_MODE  . . . . . . . .  	NUMBER	0001	

XDUP . . . . . . . . . . . . . .  	NUMBER	0045	
XDUP2  . . . . . . . . . . . . .  	NUMBER	0046	
XNAMETRANS . . . . . . . . . . .  	NUMBER	0060	

YES_ECHO . . . . . . . . . . . .  	NUMBER	0001	
YES_THERE_IS . . . . . . . . . .  	L NEAR	0187	TRANCODE

??0001 . . . . . . . . . . . . .  	L NEAR	0005	TRANCODE
??0002 . . . . . . . . . . . . .  	L NEAR	0092	TRANCODE
??0003 . . . . . . . . . . . . .  	L NEAR	0104	TRANCODE
??0005 . . . . . . . . . . . . .  	L NEAR	0152	TRANCODE
??0007 . . . . . . . . . . . . .  	L NEAR	01FB	TRANCODE
??0008 . . . . . . . . . . . . .  	L NEAR	0203	TRANCODE
??0009 . . . . . . . . . . . . .  	L NEAR	0213	TRANCODE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:02
Batch processing routines                                   Symbols-16


??000A . . . . . . . . . . . . .  	L NEAR	0289	TRANCODE
??000B . . . . . . . . . . . . .  	L NEAR	0448	TRANCODE
??000C . . . . . . . . . . . . .  	L NEAR	045D	TRANCODE
?PLM . . . . . . . . . . . . . .  	NUMBER	0000	
?WIN . . . . . . . . . . . . . .  	NUMBER	0000	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  tbatch		
@VERSION . . . . . . . . . . . .  	TEXT  510		


   4082 Source  Lines
   4749 Total   Lines
   1127 Symbols

  42394 + 176397 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
