Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-1


				 page 80,132
				;	SCCSID = @(#)init.asm	4.13 85/11/03
				;	SCCSID = @(#)init.asm	4.13 85/11/03
				TITLE	COMMAND Initialization
				
					INCLUDE comsw.asm
			     C	;	SCCSID = @(#)comsw.asm	1.1 85/05/14
			     C	;	SCCSID = @(#)comsw.asm	1.1 85/05/14
			     C	
			     C	include version.inc
			     C	; Some modules really want TRUE to be 0FFH.  Best to let them have their way.
			     C	
			     C	;
			     C	; Use the following switches to control cmacros.inc
			     C	;
 = 0000                      C	?PLM       =       0
 = 0000                      C	?WIN       =       0
			     C	
 = 0001                      C	memS       EQU     1			; Small model
			     C	;
			     C	; Use the switches below to produce the standard Microsoft version or the IBM
			     C	; version of the operating system
			     C	;
			     C	; The below chart will indicate how to set the switches to build the various
			     C	; versions
			     C	;
			     C	;                     IBMVER          IBMCOPYRIGHT
			     C	; --------------------------------------------------------
			     C	;  IBM Version   |     TRUE              TRUE
			     C	; --------------------------------------------------------
			     C	;  MS Version    |     FALSE             FALSE
			     C	; --------------------------------------------------------
			     C	;  Clone Version |     TRUE              FALSE
			     C	;
 =                           C	IBMVER     EQU     TRUE
 =                           C	IBMCOPYRIGHT EQU   FALSE
			     C	
 = FFFF                      C	BUFFERFLAG	EQU	NOT IBMCOPYRIGHT
			     C	
 =                           C	IBM	   EQU	   IBMVER
			     C	;
			     C	;
			     C	;
			     C	;
			     C	;***************************************************************************
			     C	;*          The following switches are for DBCS or SBCS support            *
			     C	;*                                                                         *
			     C	;*                     Set INTERNAT EQU TRUE FOR DBCS                      *
			     C	;*                     Set INTERNAT EQU FALSE FOR SBCS                     *
			     C	;*                                                                         *
			     C	;***************************************************************************
			     C	;
 =                           C	IBMJAPVER  EQU	   FALSE		;If TRUE set KANJI true also
			     C	
			     C	;
			     C	; Switch INTERNAT for DBCS support
			     C	;
 =                           C	INTERNAT   EQU	   FALSE
			     C	;
			     C		ELSE
 =                           C	KANJI	   EQU	   FALSE
 =                           C	IBMJAPAN   EQU	   FALSE
			     C		ENDIF
			     C	
			     C	
			     C	;
			     C	; Country code switches
			     C	; The default contry code is assumed as USA.
			     C	;
			     C		ELSE
 =                           C	 KOREA	   EQU	   FALSE
 =                           C	 JAPAN	   EQU	   FALSE
			     C		ENDIF
			     C	;
			     C	
			     C	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-2


				
				.list
				.cref
				
				
 = 00A0				ENVIRONSIZ		EQU	0A0H	;Must agree with values in EVIRONMENT segment
 = 0092				ENVIRONSIZ2		EQU	092H
				
 = 8000				ENVBIG			EQU	32768
 = 00A0				ENVSML			EQU	160
 = 0052				KOREA_COUNTRY_CODE	EQU	82
				
 0000				CODERES 	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	CONTC:NEAR
					EXTRN	DskErr:NEAR
					EXTRN	endinit:near
					EXTRN	INT_2E:NEAR
					EXTRN	LODCOM:NEAR
					EXTRN	RSTACK:WORD
 0000				CODERES ENDS
				
 0000				DATARES 	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	abort_char:byte 	;AN000;
					EXTRN	append_state:word	;AN042;
					EXTRN	BADFAT_OP_SEG:WORD	;AN000;
					EXTRN	BATCH:WORD
					EXTRN	COM_FCB1:DWORD
					EXTRN	COM_FCB2:DWORD
					EXTRN	COM_PTR:DWORD
					EXTRN	com_xlat_addr:word
					EXTRN	COMDRV:BYTE
					EXTRN	COMPRMT1_SEG:WORD	;AN000;
					EXTRN	COMPRMT1_SEG2:WORD	;AN000;
					EXTRN	COMSPEC:BYTE
					EXTRN	comspec_print:word
					EXTRN	comspec_end:word
					EXTRN	cpdrv:byte
					EXTRN	crit_msg_off:word	;AN000;
					EXTRN	crit_msg_seg:word	;AN000;
					EXTRN	critical_msg_start:byte ;AN000;
					EXTRN	DATARESEND:BYTE 	;AC000;
					EXTRN	dbcs_vector_addr:word	;AN000;
					EXTRN	DEVE_OP_SEG:WORD	;AN000;
					EXTRN	DEVE_OP_SEG2:WORD	;AN000;
					EXTRN	disp_class:byte 	;AN000;
					EXTRN	DRVNUM_OP_SEG:WORD	;AN000;
					EXTRN	DRVNUM_OP_SEG2:WORD	;AN000;
					EXTRN	EchoFlag:BYTE
					EXTRN	ENVIRSEG:WORD
					EXTRN	ERR15_OP_SEG:WORD	;AN000;
					EXTRN	ERR15_OP_SEG2:WORD	;AN000;
					EXTRN	ERR15_OP_SEG3:WORD	;AN000;
					EXTRN	extended_msg_start:byte ;AN000;
					EXTRN	extmsgend:byte		;AN000;
					EXTRN	fFail:BYTE
					EXTRN	fucase_addr:word	;AN000;
					EXTRN	InitFlag:BYTE
					EXTRN	IO_SAVE:WORD
					EXTRN	LTPA:WORD		;AC000;
					EXTRN	MEMSIZ:WORD
					EXTRN	MYSEG:WORD		;AC000;
					EXTRN	MYSEG1:WORD
					EXTRN	MYSEG2:WORD
					EXTRN	nest:word
					EXTRN	number_subst:byte	;AN000;
					EXTRN	OldTerm:DWORD
					EXTRN	PARENT:WORD
				;AD060; EXTRN	pars_msg_off:word	;AN000;
				;AD060; EXTRN	pars_msg_seg:word	;AN000;
					EXTRN	parse_msg_start:byte	;AN000;
					EXTRN	parsemes_ptr:word	;AN000;
					EXTRN	PERMCOM:BYTE
					EXTRN	RES_TPA:WORD
					EXTRN	resmsgend:word		;AN000;
					EXTRN	RSWITCHAR:BYTE
					EXTRN	SINGLECOM:WORD
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-3
Trap:  Get the attention of MSDOS                           

					EXTRN	SUM:WORD
					EXTRN	TRNSEG:WORD
					EXTRN	TrnMvFlg:BYTE
 0000				DATARES ENDS
				
 0000				BATARENA	SEGMENT PUBLIC PARA	;AC000;
 0000				BATARENA ENDS
				
 0000				BATSEG		SEGMENT PUBLIC PARA	;AC000;
 0000				BATSEG	 ENDS
				
 0000				ENVARENA	SEGMENT PUBLIC PARA	;AC000;
 0000				ENVARENA  ENDS
				
 0000				ENVIRONMENT SEGMENT PUBLIC PARA 	; Default COMMAND environment
					EXTRN	ECOMSPEC:BYTE
					EXTRN	ENVIREND:BYTE
					EXTRN	PATHSTRING:BYTE
 0000				ENVIRONMENT ENDS
				
 0000				TAIL	SEGMENT PUBLIC PARA
					EXTRN	TRANSTART:WORD
 0000				TAIL	ENDS
				
 0000				TRANCODE	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	DATINIT:FAR
					EXTRN	printf_init:far
 0000				TRANCODE	ENDS
				
 0000				TRANSPACE	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	TRANSPACEEND:BYTE
 0000				TRANSPACE	ENDS
				
				; This is the area used for the autoexec.bat file.  BATARENA is a pad for the
				; the address mark placed by DOS.
				
 0000				BATARENA  SEGMENT PUBLIC PARA
				
 0000					ORG 0
 0000  0010[				DB  10h  DUP (?)		;Pad for memory allocation addr mark
	   ??			
			 ]	
				
				
 0010				BATARENA  ENDS
				
 0000				BATSEG	  SEGMENT PUBLIC PARA		;Autoexec.bat segment
				
 0000					ORG	0
 0000  00				initbat 	batchsegment <> ;batch segment
 0001  00			
 0002  0000			
 0004  0000			
 0006  00			
 0007  00000000			
 000B  000A[			
	   ????			
			 ]	
 001F  00			
				
 0020  001F[				DB  31	 DUP (0)		;reserve area for batch file name & pad
	   00			
			 ]	
				
				
 003F				BATSEG	  ENDS
				
				; *******************************************************************
				; START OF INIT PORTION
				; This code is overlayed the first time the TPA is used.
				
 0000				INIT	SEGMENT PUBLIC PARA
				
					EXTRN	AUTOBAT:byte
					EXTRN	BADCSPFL:byte
					EXTRN	bslash:byte
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-4
Trap:  Get the attention of MSDOS                           

					EXTRN	CHUCKENV:byte
					EXTRN	command_c_syn:byte	;AN000;
					EXTRN	command_d_syn:byte	;AN000;
					EXTRN	command_e_syn:byte	;AN000;
					EXTRN	command_f_syn:byte	;AN000;
					EXTRN	command_m_syn:byte	;AN000;
					EXTRN	command_p_syn:byte	;AN000;
					EXTRN	comnd1_syn:word 	;AN000;
					EXTRN	comnd1_addr:dword	;AN000;
					EXTRN	COMSPECT:byte
					EXTRN	comspstring:byte
					EXTRN	dswitch:byte		;AN018;
					EXTRN	ECOMLOC:word
					EXTRN	EnvMax:WORD
					EXTRN	EnvSiz:WORD
					EXTRN	equalsign:byte
					EXTRN	eswitch:byte		;AN018;
					EXTRN	ext_msg:byte		;AN000;
					EXTRN	fslash:byte
					EXTRN	INITADD:dword
					EXTRN	initend:word
					EXTRN	init_parse:dword	;AN054;
					EXTRN	INTERNAT_INFO:BYTE	;AN000; 3/3/KK
					EXTRN	KAUTOBAT:byte		;AN000; 3/3/KK
					EXTRN	lcasea:byte
					EXTRN	lcasez:byte
					EXTRN	num_positionals:word	;AN000;
					EXTRN	oldenv:word
					EXTRN	old_parse_ptr:word	;AN057;
					EXTRN	parse_command:byte	;AN000;
					EXTRN	pars_msg_off:word	;AN060;
					EXTRN	pars_msg_seg:word	;AN060;
					EXTRN	PRDATTM:byte
					EXTRN	resetenv:word		;AC000;
					EXTRN	scswitch:byte
					EXTRN	space:byte
					EXTRN	triage_add:dword	;AC000;
					EXTRN	trnsize:word
					EXTRN	ucasea:byte
					EXTRN	usedenv:word
				
				
				;AD054; EXTRN	SYSPARSE:NEAR
				
					PUBLIC	CONPROC
					PUBLIC	init_contc_specialcase
				
				ASSUME	CS:RESGROUP,DS:RESGROUP,ES:RESGROUP,SS:RESGROUP
				
 0000					ORG	0
 = 0000				ZERO	=	$
				
				
 0000				CONPROC:
 0000  BC 0000 E			MOV	SP,OFFSET RESGROUP:RSTACK	; MUST be first instruction
				
 0003  E8 0862 R			CALL	SYSLOADMSG			;AN000; check dos version
 0006  73 11				JNC	OKDOS				;AN000; if no problem - continue
				
 0008  B8 01CD				mov	ax,badver			;AN000; set DOS version
					invoke	sysdispmsg			;AN000; must be incorrect version
 000B  E8 0000 E             1		CALL    sysdispmsg 
 000E  8C C0				mov	ax,es
 0010  26: 39 06 0016			cmp	es:[PDB_Parent_PID],AX		; If command is its own parent,
 0015				here:						;  loop forever.
 0015  74 FE				Jz	here
 0017  CD 20				int	20h				; Otherwise, exit.
				
				
				;
				;  Turn APPEND off during initialization processing
				;
 0019				okdos:
 0019  B8 B700				mov	ax,AppendInstall		;AN042; see if append installed
 001C  CD 2F				int	2fh				;AN042;
 001E  3C 00				cmp	al,0				;AN042; append installed?
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-5
Trap:  Get the attention of MSDOS                           

 0020  74 1A				je	set_msg_addr			;AN042; no - continue
 0022  B8 B702				mov	ax,AppendDOS			;AN042; see if append DOS version right
 0025  CD 2F				int	2fh				;AN042;
 0027  3D FFFF				cmp	ax,-1				;AN042; append version correct?
 002A  75 10				jne	set_msg_addr			;AN042; no - continue
 002C  B8 B706				mov	ax,AppendGetState		;AN042; Get the state of Append
 002F  CD 2F				int	2fh				;AN042;
 0031  89 1E 0000 E			mov	append_state,bx 		;AN042; save append state
 0035  33 DB				xor	bx,bx				;AN042; clear out state
 0037  B8 B707				mov	ax,AppendSetState		;AN042; Set the state of Append
 003A  CD 2F				int	2fh				;AN042;     set everything off
				
 003C				set_msg_addr:
				;
				;  Get addresses of old critical and parse errors and save so they can
				;  be reset if COMMAND needs to exit
				;
				
 003C  06				push	es				;AN000; SAVE ES DESTROYED BY INT 2FH
				;AD060; mov	ah,multdos			;AN000; set up to call DOS through int 2fh
				;AD060; mov	al,message_2f			;AN000; call for message retriever
 003D  B8 122E				mov	ax,(multdos shl 8 or message_2f);AN060; set up to call DOS through int 2fh
 0040  B2 02				mov	dl,get_parse_msg		;AN000; get parse message address
 0042  CD 2F				int	2fh				;AN000;
 0044  2E: 8C 06 0000 E			mov	cs:pars_msg_seg,es		;AN000; save returned segment
 0049  2E: 89 3E 0000 E			mov	cs:pars_msg_off,di		;AN000; save returned offset
				
				;AD060; mov	ah,multdos			;AN000; set up to call DOS through int 2fh
				;AD060; mov	al,message_2f			;AN000; call for message retriever
 004E  B8 122E				mov	ax,(multdos shl 8 or message_2f);AN060; set up to call DOS through int 2fh
 0051  B2 04				mov	dl,get_critical_msg		;AN000; get critical error message address
 0053  CD 2F				int	2fh				;AN000;
 0055  2E: 8C 06 0000 E			mov	cs:crit_msg_seg,es		;AN000; save returned segment
 005A  2E: 89 3E 0000 E			mov	cs:crit_msg_off,di		;AN000; save returned offset
 005F  07				pop	es				;AN000; RESTORE ES DESTROYED BY INT 2FH
				
				;
				;  Set addresses of critical and parse errors in this level of COMMAND
				;
				
				;AD060; mov	ah,multdos			;AN000; set up to call DOS through int 2fh
				;AD060; mov	al,message_2f			;AN000; call for message retriever
				;AD060; mov	dl,set_parse_msg		;AN000; set up parse message address
 0060  BF 0000 E			mov	di,offset resgroup:parse_msg_start ;AN000; start address
				;AD060; int	2fh				;AN000;
 0063  E8 0835 R			call	set_parse_2f			;AN060; set parse error address
				
				
				;AD060; mov	ah,multdos			;AN000; set up to call DOS through int 2fh
				;AD060; mov	al,message_2f			;AN000; call for message retriever
 0066  B8 122E				mov	ax,(multdos shl 8 or message_2f);AN060; set up to call DOS through int 2fh
 0069  B2 05				mov	dl,set_critical_msg		;AN000; set up critical error message address
 006B  BF 0000 E			mov	di,offset resgroup:critical_msg_start ;AN000; start address
 006E  CD 2F				int	2fh				;AN000;
				
 0070  BF 000F E			mov	di,offset resgroup:dataresend+15 ;AN000; get address of resident end
 0073  89 3E 0000 E			mov	[resmsgend],di			;AN000; save it
 0077  E8 0862 R			call	sysloadmsg			;AN000; load message addresses
 007A  E8 078A R			call	get_msg_ptr			;AN000; set up pointers to some translated chars
 007D  B4 65				mov	ah,GetExtCntry			;g get extended country information
 007F  B0 02				mov	al,2				;g minor function - ucase table
 0081  BA FFFF				mov	dx,-1				;g
 0084  BB FFFF				mov	bx,-1				;g
 0087  B9 0005				mov	cx,5				;g number of bytes we want
 008A  BF 0000 E			mov	di,offset resgroup:com_xlat_addr ;g buffer to put address in
 008D  CD 21				int	int_command			;g
				
 008F  B4 65				mov	ah,GetExtCntry			;AN000;  get extended country info
 0091  B0 04				mov	al,4				;AN000; get file ucase table
 0093  BA FFFF				mov	dx,-1				;AN000;
 0096  BB FFFF				mov	bx,-1				;AN000;
 0099  B9 0005				mov	cx,5				;AN000; number of bytes we want
 009C  BF 0000 E			mov	di,offset resgroup:fucase_addr	;AN000; buffer for address
 009F  CD 21				int	int_command			;AN000;
				
 00A1  BA 000F E			mov	dx,offset resgroup:transtart+15 ;eg  get end of init code
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-6
Trap:  Get the attention of MSDOS                           

 00A4  B1 04				mov	cl,4				;eg change to paragraphs
 00A6  D3 EA				shr	dx,cl				;eg
 00A8  8C C8				mov	ax,cs				;eg get current segment
 00AA  03 C2				add	ax,dx				;eg calculate segment of end of init
 00AC  A3 0000 E			mov	[initend],ax			;eg save this
				
 00AF  1E				push	ds				;AN000;
 00B0  B8 6300				mov	ax, (ECS_call SHL 8) OR GetLeadBTbl ;AN000; get dbcs vector
 00B3  CD 21				int	int_command			;AN000;
 00B5  8C DB				mov	bx,ds				;AN000; get segment to bx
 00B7  1F				pop	ds				;AN000;
 00B8  89 36 0000 E			mov	dbcs_vector_addr,si		;AN000; save address of
 00BC  89 1E 0002 E			mov	dbcs_vector_addr+2,bx		;AN000;     dbcs vector
				
				
 00C0  A1 0016				mov	ax,word ptr ds:[PDB_Parent_PID] ; Init PARENT so we can exit
 00C3  A3 0000 E			mov	[PARENT],ax			;  correctly.
 00C6  A1 000A				MOV	AX,WORD PTR DS:[PDB_Exit]
 00C9  A3 0000 E			MOV	WORD PTR OldTerm,AX
 00CC  A1 000C				MOV	AX,WORD PTR DS:[PDB_Exit+2]
 00CF  A3 0002 E			MOV	WORD PTR OldTerm+2,AX
				
 00D2  B8 000F E			MOV	AX,OFFSET RESGROUP:ENVIREND + 15
 00D5  B1 04				MOV	CL,4				; ax = size of resident part of
 00D7  D3 E8				SHR	AX,CL				;  command in paragraphs.  Add
 00D9  8C C9				MOV	CX,CS				;  this to CS and you get the
 00DB  03 C1				ADD	AX,CX				;  segment of the TPA.
				
 00DD  A3 0000 E			MOV	[RES_TPA], AX			; Temporarily save the TPA segment
 00E0  25 F000				AND	AX, 0F000H
 00E3  05 1000				ADD	AX, 01000H			; Round up to next 64K boundary
 00E6  73 03				JNC	TPASET				; Memory wrap if carry set
 00E8  A1 0000 E			MOV	AX, [RES_TPA]
 00EB				TPASET:
 00EB  A3 0000 E			MOV	[LTPA],AX			; Good enough for the moment
 00EE  A1 0002				MOV	AX,WORD PTR DS:[PDB_block_len]	; ax = # of paras given to command
				
 00F1  8C 1E 0000 E			MOV	[MYSEG1],DS			; These 3 variables are used as part of
 00F5  8C 1E 0000 E			MOV	[MYSEG2],DS			;  3 long ptrs that the transient will
 00F9  8C 1E 0000 E			MOV	[MYSEG],DS			;  use to call resident routines.
 00FD  A3 0000 E			MOV	[MEMSIZ],AX			; Needed for execing other programs
				;
				; Compute maximum size of environment
				;
 0100  C7 06 0000 E 0054		MOV	EnvMax,(Environsiz + 15) / 16 + (EnvMaximum-zero + 15)/16 - 1
				;
				; Compute minimum size of environment
				;
				
 0106  C7 06 0000 E 000A		MOV	EnvSiz, ENVSML / 16
				
 010C  BA 000F E			MOV	DX,OFFSET TRANGROUP:TRANSPACEEND + 15 ; dx = size of transient
 010F  B1 04				MOV	CL,4				;  in paragraphs.
 0111  D3 EA				SHR	DX,CL
 0113  89 16 0000 E			mov	[trnsize],dx			;eg save size of transient in paragraphs
				
 0117  2B C2				SUB	AX,DX				; max seg addr - # para's needed for transient
 0119  A3 0000 E			MOV	[TRNSEG],AX			;  = seg addr to load the transient at.
 011C  A1 002C				MOV	AX,DS:[PDB_environ]		; ax = environment segment
 011F  0B C0				OR	AX,AX				; If there is no environment segment,
 0121  74 06				JZ	BUILDENV			;  go compute one.
 0123  FE 06 0000 E			INC	BYTE PTR [CHUCKENV]		; Flag no new ENVIRONSEG to set up
 0127  EB 0B				JMP	SHORT ENVIRONPASSED		; Otherwise one was passed to us.
				
 0129				BUILDENV:	; (this label isn't very accurate)
 0129  B8 0000 E			MOV	AX,OFFSET RESGROUP:PATHSTRING	; Compute the segment of the
 012C  B1 04				MOV	CL,4				;  environment and put it in
 012E  D3 E8				SHR	AX,CL				;  ax.
 0130  8C DA				MOV	DX,DS
 0132  03 C2				ADD	AX,DX
				
 0134				ENVIRONPASSED:
 0134  A3 0000 E			MOV	[ENVIRSEG],AX			; Save the environment's segment and
 0137  8E C0				MOV	ES,AX				;  load into es.
				ASSUME	ES:ENVIRONMENT
				
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-7
Trap:  Get the attention of MSDOS                           

 0139				GOTTHEENVIR:
 0139  B8 3700				MOV	AX,CHAR_OPER SHL 8		; Get the switch character and store it
 013C  CD 21				INT	int_command			;  in RSWITCHAR.
 013E  88 16 0000 E			MOV	[RSWITCHAR],DL
				
 0142  3A 16 0000 E			CMP	DL,fslash			; If backslashes are being used as the
 0146  75 11				JNZ	IUSESLASH			;  path separator, change the forward
 0148  A0 0000 E			mov	al,bslash			;  slash in COMSPECT and ECOMSPEC (if
 014B  A2 0000 E			MOV	[COMSPECT],al			;  there is a new ENVIRONSEG) to
 014E  80 3E 0000 E 00			CMP	BYTE PTR [CHUCKENV],0		;  backslash.
 0153  75 04				JNZ	IUSESLASH
 0155  26: A2 0000 E			MOV	ES:[ECOMSPEC],al		;eg
				
 0159				IUSESLASH:
				;
				; Initialize the command drive
				;
 0159  B4 19				MOV	AH,Get_Default_Drive
 015B  CD 21				INT	21h
 015D  FE C0				INC	AL
 015F  A2 0000 E			MOV	ComDrv,AL
				
 0162  A0 005C				MOV	AL,BYTE PTR DS:[FCB]		; al = default drive number for command
 0165  0A C0				OR	AL,AL
 0167  74 29				JZ	NoComDrv			; no drive specified
				
 0169  B4 3A				MOV	AH,':'
 016B  A2 0000 E			MOV	[COMDRV],AL
 016E  04 40				ADD	AL,40H				; Convert number to uppercase character
				
 0170  FD				STD
 0171  80 3E 0000 E 00			CMP	BYTE PTR [CHUCKENV],0		; If a new environment is being built,
 0176  75 13				JNZ	NOTWIDENV			;  move the default comspec string in it
 0178  1E				PUSH	DS				;  2 bytes to make room for a drivespec.
 0179  06				PUSH	ES				;  The drivespec is in ax and is copied
 017A  1F				POP	DS				;  on to the front of the string.
 017B  BF 0091 E			MOV	DI,OFFSET ENVIRONMENT:ECOMSPEC + ENVIRONSIZ2 - 1 ;eg
 017E  BE 008F E			MOV	SI,OFFSET ENVIRONMENT:ECOMSPEC + ENVIRONSIZ2 - 3 ;eg
				
 0181  B9 0090				MOV	CX,ENVIRONSIZ2 - 2
 0184  F3/ A4				REP	MOVSB
 0186  1F				POP	DS
 0187  26: A3 0000 E			MOV	WORD PTR ES:[ECOMSPEC],AX
				
 018B				NOTWIDENV:
 018B  FC				CLD					; Add the drivespec to the string
 018C  A3 0000 E			MOV	WORD PTR [AUTOBAT],AX		;  used to reference autoexec.bat
 018F  A3 0000 E			MOV	WORD PTR [KAUTOBAT],AX		;AN000;  used to reference kautoexe.bat 3/3/KK
				
 0192				NOCOMDRV:
					INVOKE	SETVECT 			; Set interrupt vectors 22h, 23h, & 24h
 0192  E8 0000 E             1		CALL    SETVECT 
				
				;*********************************
				; PARSING STARTS HERE
				;*********************************
				
 0195  0E				push	cs				;AN000; get local segment
 0196  0E				push	cs				;AN000;   into DS,ES
 0197  1F				pop	ds				;AN000;
 0198  07				pop	es				;AN000;
				
				ASSUME	DS:RESGROUP,ES:RESGROUP 		;AN000;
				
 0199  BE 0080				MOV	SI,80H				;AC000; get command line
 019C  AC				LODSB					;AC000; get length of line
 019D  8B FE				MOV	DI,SI				;AN000; get line position in DI
 019F  32 E4				XOR	AH,AH				;AC000; ax = length of command line
				;
				; Insure that the command line correctly ends with a CR
				;
 01A1  03 F8				ADD	DI,AX				;AC000; go to end of command line
 01A3  C6 05 0D				MOV	BYTE PTR [DI],0Dh		;AC000; insert a carriage return
 01A6  33 C9				xor	cx,cx				;AC000; clear cx
 01A8  89 0E 0000 E			mov	num_positionals,cx		;AC000; initialize positionals
				;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-8
Trap:  Get the attention of MSDOS                           

				; Scan the command line looking for the parameters
				;
				
 01AC				parse_command_line:
 01AC  BF 0000 E			mov	di,offset resgroup:parse_command;AN000; Get address of parse_command
 01AF  8B 0E 0000 E			mov	cx,num_positionals		;AN000; Get number of positionals
 01B3  33 D2				xor	dx,dx				;AN000; clear dx
 01B5  89 36 0000 E			mov	old_parse_ptr,si		;AN057; save position before calling parser
 01B9  FF 1E 0000 E			call	init_parse			;AN054; call parser
 01BD  89 0E 0000 E			mov	num_positionals,cx		;AN000; Save number of positionals
 01C1  3D FFFF				cmp	ax,end_of_line			;AC000; are we at end of line?
 01C4  74 7F				jz	ArgsDoneJ3			;AC000; yes - exit
 01C6  3D 0000				cmp	ax,result_no_error		;AN000; did an error occur
 01C9  74 44				jz	parse_cont			;AN000; no - continue
				
				;
				; Before issuing error message - make sure switch is not /C
				;
				
 01CB				parse_line_error:
 01CB  56				push	si				;AN057; save line position
 01CC  50				push	ax				;AN057; save error number
 01CD  3D 0003				cmp	ax,BadSwt_Ptr			;AN057; Was error invalid switch?
 01D0  75 2F				jnz	parse_line_error_disp		;AN057; No - just issue message
 01D2  8B FE				mov	di,si				;AN057; Get terminating pointer in DI
 01D4  8B 36 0000 E			mov	si,old_parse_ptr		;AN057; Get starting pointer in SI
				
 01D8				init_chk_delim:
 01D8  3B F7				cmp	si,di				;AN057; at end of parsed parameter?
 01DA  74 25				jz	parse_line_error_disp		;AN057; Yes - just display message
 01DC  AC				lodsb					;AN057;
 01DD  3A 06 0000 E			cmp	al,space			;AN057; Skip blank spaces
 01E1  74 F5				jz	init_chk_delim			;AN057;
 01E3  3C 09				cmp	al,tab_chr			;AN057; Skip tab characters
 01E5  74 F1				jz	init_chk_delim			;AN057;
				
 01E7  3A 06 0000 E			cmp	al,[rswitchar]			;AN057; Switch?
 01EB  75 14				jnz	parse_line_error_disp		;AN057; No - just issue message
 01ED  AC				lodsb					;AN057; Get the char after the switch
					invoke	itestkanj			;AN057; Is it DBCS?
 01EE  E8 0000 E             1		CALL    itestkanj 
 01F1  75 0E				jnz	parse_line_error_disp		;AN057; Yes - can't be /C
					invoke	iupconv 			;AN057; upper case it
 01F3  E8 075A R             1		CALL    iupconv 
 01F6  3A 06 0000 E			cmp	al,scswitch			;AN057; it is /C?
 01FA  75 05				jnz	parse_line_error_disp		;AN057;
 01FC  5A				pop	dx				;AN057; even up stack
 01FD  5A				pop	dx				;AN057; even up stack
 01FE  E9 02A3 R			jmp	setSSwitch			;AN057; Yes - go set COMMAND /C
				
 0201				parse_line_error_disp:
 0201  58				pop	ax				;AN057; restore error number
 0202  5E				pop	si				;AN057; restore line position
 0203  C6 06 0000 E 02			mov	disp_class,parse_msg_class	;AN000; set up parse error msg class
 0208  8B D0				mov	dx,ax				;AN000; get message number
 020A  E8 06CC R			call	print_message			;AN000; issue error message
 020D  EB 9D				jmp	short parse_command_line	;AN000; continue parsing
				
 020F				parse_cont:
				;
				; See if a switch was entered
				;
				
 020F  81 3E 0000 E 0000 E		cmp	comnd1_syn,offset resgroup:command_f_syn ;AC000; was /F entered?
 0215  74 31				jz	SetFSwitch				 ;AC000; yes go set fail switch
 0217  81 3E 0000 E 0000 E		cmp	comnd1_syn,offset resgroup:command_p_syn ;AC000; was /P entered?
 021D  74 3E				Jz	SetPSwitch				 ;AC000; yes go set up PERMCOM
 021F  81 3E 0000 E 0000 E		cmp	comnd1_syn,offset resgroup:command_d_syn ;AC000; was /D entered?
 0225  74 63				jz	SetDSwitch				 ;AC000; yes go set date switch
 0227  81 3E 0000 E 0000 E		cmp	comnd1_syn,offset resgroup:command_c_syn ;AC000; was /C entered?
 022D  74 74				jz	SetSSwitch				 ;AC000; yes go set up SINGLECOM
 022F  81 3E 0000 E 0000 E		cmp	comnd1_syn,offset resgroup:command_e_syn ;AC000; was /E entered?
 0235  74 7D				jz	SetESwitch				 ;AC000; yes go set up environment
 0237  81 3E 0000 E 0000 E		cmp	comnd1_syn,offset resgroup:command_m_syn ;AN000; was /MSG entered?
 023D  74 03				jz	SetMSwitchjmp				 ;AN000; yes go set up message flag
 023F  E9 02F0 R			jmp	chkotherargs				 ;AC000; Must be something else
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-9
Trap:  Get the attention of MSDOS                           

				
 0242				SetMSwitchjmp:					;AN018; long jump needed
 0242  E9 02D8 R			jmp	SetMswitch			;AN018;
				
 0245				ArgsdoneJ3:					;AN018; long jump needed
 0245  E9 03E7 R			jmp	ArgsDone			;AN018;
				
 0248				SetFSwitch:
 0248  80 3E 0000 E FF			cmp	fFail,-1			;AN018; has fail switch been set?
 024D  75 06				jnz	failok				;AN018; no - set it
 024F  B8 0001				mov	ax,moreargs_ptr 		;AN018; set up too many arguments
 0252  E9 01CB R			jmp	parse_line_error		;AN018; go issue error message
				
 0255				failok:
 0255  C6 06 0000 E FF			MOV	fFail,-1			;AC000; fail all INT 24s.
 025A  E9 01AC R			JMP	parse_command_line		;AC000;
				
 025D				SetPSwitch:
				;
				; We have a permanent COMMAND switch /P.  Flag this and stash the
				; termination address.
				;
 025D  80 3E 0000 E 00			cmp	[permcom],0			;AN018; has /p switch been set?
 0262  74 06				jz	permcomok			;AN018; no - set it
 0264  B8 0001				mov	ax,moreargs_ptr 		;AN018; set up too many arguments
 0267  E9 01CB R			jmp	parse_line_error		;AN018; go issue error message
				
 026A				permcomok:
 026A  FE 06 0000 E			INC	[PERMCOM]
 026E  C7 06 0000 E 0000 E		MOV	WORD PTR [oldTerm],OFFSET RESGROUP:LODCOM
 0274  8C 1E 0002 E			MOV	WORD PTR [oldTerm+2],DS
				;
				; Make sure that we display the date and time.	If the flag was not
				; initialized, set it to indicate yes, do prompt.
				;
 0278  80 3E 0000 E FF			CMP	BYTE PTR [PRDATTM],-1
 027D  75 05				JNZ	parse_command_line_jmp		;AC018; keep parsing
 027F  C6 06 0000 E 00			MOV	BYTE PTR [PRDATTM],0		; If not set explicit, set to prompt
				
 0284				Parse_command_line_jmp: 			;AN018;
 0284  E9 01AC R			JMP	parse_command_line		;AC000; keep parsing
				
 0287				ArgsDoneJump:
 0287  E9 03E7 R			JMP	ArgsDone
				
 028A				SetDSwitch:
				;
				; Flag no date/time prompting.
				;
 028A  80 3E 0000 E 00			cmp	dswitch,0			;AN018; has /D switch been set?
 028F  74 06				jz	setdateok			;AN018; no - set it
 0291  B8 0001				mov	ax,moreargs_ptr 		;AN018; set up too many arguments
 0294  E9 01CB R			jmp	parse_line_error		;AN018; go issue error message
				
 0297				setdateok:
 0297  FE 06 0000 E			inc	dswitch 			;AN018; indicate /D entered
 029B  C6 06 0000 E 01			MOV	BYTE PTR [PRDATTM],1		; User explicitly says no date time
 02A0  E9 01AC R			JMP	parse_command_line		;AC000; continue parsing
				
 02A3				SetSSwitch:
				;
				; Set up pointer to command line, flag no date/time and turn off singlecom.
				;
 02A3  89 36 0000 E			MOV	[SINGLECOM],SI			; Point to the rest of the command line
 02A7  C6 06 0000 E 00			MOV	[PERMCOM],0			; A SINGLECOM must not be a PERMCOM
 02AC  C6 06 0000 E 01			MOV	BYTE PTR [PRDATTM],1		; No date or time either, explicit
 02B1  E9 03E7 R			JMP	ArgsDone
				;
				; Look for environment-size setting switch
				;
				; The environment size is represented in decimal bytes and is
				; converted into pargraphs (rounded up to the next paragraph).
				;
				
 02B4				SetESwitch:
 02B4  80 3E 0000 E 00			cmp	eswitch,0			;AN018; has fail switch been set?
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-10
Trap:  Get the attention of MSDOS                           

 02B9  74 06				jz	eswitchok			;AN018; no - set it
 02BB  B8 0001				mov	ax,moreargs_ptr 		;AN018; set up too many arguments
 02BE  E9 01CB R			jmp	parse_line_error		;AN018; go issue error message
				
 02C1				eswitchok:
 02C1  FE 06 0000 E			inc	eswitch 			;AN018; indicate /E entered
 02C5  BF 0000 E			mov	di,offset resgroup:comnd1_addr	;AN000; get number returned
 02C8  8B 1D				mov	bx,word ptr [di]		;AN000;     into bx
				
 02CA  83 C3 0F				ADD	BX, 0FH 			; Round up to next paragraph
 02CD  B1 04				mov	cl,4				;AC000; convert to pargraphs
 02CF  D3 EB				SHR	BX, cl				;AC000;   by right 4
				
 02D1  89 1E 0000 E			MOV	EnvSiz,BX			; EnvSiz is in paragraphs
 02D5  E9 01AC R			JMP	parse_command_line		;AC000; continue parsing command line
				
 02D8				SetMSwitch:
 02D8  80 3E 0000 E 01			cmp	ext_msg,set_extended_msg	;AN018; has /MSG switch been set?
 02DD  75 06				jnz	setMswitchok			;AN018; no - set it
 02DF  B8 0001				mov	ax,moreargs_ptr 		;AN018; set up too many arguments
 02E2  E9 01CB R			jmp	parse_line_error		;AN018; go issue error message
 02E5				setMswitchok:
 02E5  C6 06 0000 E 01			MOV	Ext_msg,set_extended_msg	;AN000; set /MSG switch
 02EA  E9 01AC R			JMP	parse_command_line		;AN000; keep parsing
				
 02ED				ARGSDONEJ:
 02ED  E9 03E7 R			JMP  ARGSDONE
				
				;
				; We have a non-switch character here.
				;
 02F0				CHKOTHERARGS:
 02F0  1E				push	ds				;AN054;
 02F1  56				push	si				;AC000; save place in command line
 02F2  C5 36 0000 E			lds	si,comnd1_addr			;AN000; get address of filespec
					assume	ds:nothing			;AN054;
				
 02F6  8B D6				mov	dx,si				;AN000; put in dx also
 02F8  B8 3D02				MOV	AX,(OPEN SHL 8) OR 2		; Read and write
 02FB  CD 21				INT	int_command
 02FD  72 46				JC	CHKSRCHSPEC			; Wasn't a file
 02FF  8B D8				MOV	BX,AX
 0301  B8 4400				MOV	AX,IOCTL SHL 8
 0304  CD 21				INT	int_command
 0306  F6 C2 80				TEST	DL,80H
 0309  75 07				JNZ	ISADEVICE
				
 030B				BADSETCON:					;AN022;
 030B  B4 3E				MOV	AH,CLOSE			; Close initial handle, wasn't a device
 030D  CD 21				INT	int_command
 030F  EB 34 90				JMP	CHKSRCHSPEC
				
 0312				ISADEVICE:
 0312  32 F6				XOR	DH,DH
 0314  80 CA 03				OR	DL,3				; Make sure has CON attributes
 0317  B8 4401				MOV	AX,(IOCTL SHL 8) OR 1
 031A  CD 21				INT	int_command
 031C  72 ED				JC	BADSETCON			;AN022; Can't set attributes - quit
 031E  8B D3				MOV	DX,BX				; Save new handle
				;eg	POP	BX				; Throw away saved SI
				;eg	POP	BX				; Throw away saved CX
 0320  51				PUSH	CX
 0321  B9 0003				MOV	CX,3
 0324  33 DB				XOR	BX,BX
				
 0326				RCCLLOOP:					; Close 0,1 and 2
 0326  B4 3E				MOV	AH,CLOSE
 0328  CD 21				INT	int_command
 032A  43				INC	BX
 032B  E2 F9				LOOP	RCCLLOOP
 032D  8B DA				MOV	BX,DX				; New device handle
 032F  B4 45				MOV	AH,XDUP
 0331  CD 21				INT	int_command			; Dup to 0
 0333  B4 45				MOV	AH,XDUP
 0335  CD 21				INT	int_command			; Dup to 1
 0337  B4 45				MOV	AH,XDUP
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-11
Trap:  Get the attention of MSDOS                           

 0339  CD 21				INT	int_command			; Dup to 2
 033B  B4 3E				MOV	AH,CLOSE
 033D  CD 21				INT	int_command			; Close initial handle
 033F  59				POP	CX
 0340  5E				pop	si				;AN000; restore position of command line
 0341  1F				pop	ds				;AN054;
 0342  E9 01AC R			JMP	parse_command_line		;AC000; continue parsing
				
 0345				CHKSRCHSPEC:					; Not a device, so must be directory spec
				
 0345  36: C6 06 0000 E 00		MOV	BYTE PTR [CHUCKENV],0		; If search specified -- no inheritance
 034B  B8 0000 E			MOV	AX,OFFSET RESGROUP:PATHSTRING	; Figure environment pointer
 034E  B1 04				MOV	CL,4
 0350  D3 E8				SHR	AX,CL
				;AD054; MOV	DX,DS
 0352  8C CA				MOV	DX,CS				;AC054;
 0354  03 C2				ADD	AX,DX
 0356  36: A3 0000 E			MOV	[ENVIRSEG],AX
				
 035A  8E C0				MOV	ES,AX
 035C  56				push	si				;AN000; remember location of file
 035D  33 C9				xor	cx,cx				;AN000; clear cx for counting
				
 035F				countloop:
 035F  AC				lodsb					;AN000; get a character
 0360  41				inc	cx				;AN000; increment counter
 0361  3C 00				cmp	al,end_of_line_out		;AN000; are we at end of line?
 0363  75 FA				jnz	countloop			;AN000; no - keep counting
				
 0365  36: A0 0000 E			mov	al,space
 0369  4E				dec	si				;AN000; move back one
 036A  88 04				MOV	BYTE PTR [SI],al		;AN000; put a space at end of line
 036C  5E				pop	si				;AC000; get location back
				
 036D  36: 8B 3E 0000 E			MOV	DI,[ECOMLOC]
				
 0372				COMTRLOOP:
 0372  AC				LODSB
 0373  49				DEC	CX
 0374  36: 3A 06 0000 E			CMP	AL,space
 0379  74 16				JZ	SETCOMSR
 037B  AA				STOSB
				
				;;;	IF	KANJI		3/3/KK
 037C  32 E4				XOR	AH,AH
				;;;	ENDIF			3/3/KK
				
 037E  E3 11				JCXZ	SETCOMSR
				
				;;;;	IF	KANJI		3/3/KK
 0380  1E				PUSH	DS				;AN054; Make sure we have
 0381  0E				PUSH	CS				;AN054;    local DS for
 0382  1F				POP	DS				;AN054;      ITESTKANJ
					INVOKE	ITESTKANJ
 0383  E8 0000 E             1		CALL    ITESTKANJ 
 0386  1F				POP	DS				;AN054; restore PARSER DS
 0387  74 E9				JZ	COMTRLOOP
 0389  49				DEC	CX
 038A  A4				MOVSB
 038B  FE C4				INC	AH
 038D  E3 02				JCXZ	SETCOMSR
				;;;;	ENDIF			3/3/KK
				
 038F  EB E1				JMP	SHORT COMTRLOOP
				
 0391				SETCOMSR:
 0391  51				PUSH	CX
				
 0392  0E				PUSH	CS				;AN054; Get local segment
 0393  1F				POP	DS				;AN054;
					assume	ds:resgroup			;AN054;
				
 0394  1E				PUSH	DS
 0395  BE 0000 E			MOV	SI,OFFSET RESGROUP:COMSPECT
 0398  B9 000E				MOV	CX,14
				
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-12
Trap:  Get the attention of MSDOS                           

 039B  26: 8A 45 FF			MOV	AL,ES:[DI-1]
				
				;;;;	IF	KANJI		3/3/KK
 039F  0A E4				OR	AH,AH
 03A1  75 07				JNZ	INOTROOT			; Last char was KANJI second byte, might be '\'
				;;;;	ENDIF			3/3/KK
				
 03A3  E8 06DC R			CALL	PATHCHRCMPR
 03A6  75 02				JNZ	INOTROOT
 03A8  46				INC	SI				; Don't make a double /
 03A9  49				DEC	CX
				
 03AA				INOTROOT:
 03AA  F3/ A4				REP	MOVSB
				
 03AC  8B 16 0000 E			MOV	DX,[ECOMLOC]			; Now lets make sure its good!
 03B0  06				PUSH	ES
 03B1  1F				POP	DS
				
 03B2  B8 3D00				MOV	AX,OPEN SHL 8
 03B5  CD 21				INT	int_command			; Open COMMAND.COM
 03B7  1F				POP	DS
 03B8  72 0E				JC	SETCOMSRBAD			; No COMMAND.COM here
 03BA  8B D8				MOV	BX,AX				; Handle
 03BC  B4 3E				MOV	AH,CLOSE
 03BE  CD 21				INT	int_command			; Close COMMAND.COM
				
 03C0				SETCOMSRRET:
 03C0  59				POP	CX
 03C1  5E				POP	SI
 03C2  1F				POP	DS				;AN054;
					assume	ds:resgroup			;AN054;
				
 03C3				ARGSDONEJ2:
 03C3  0E				PUSH	CS				;AN000; Make sure local ES is
 03C4  07				POP	ES				;AN000;     restored
 03C5  E9 01AC R			JMP	parse_command_line		;AC000; continue parsing command line
				
 03C8				SETCOMSRBAD:
 03C8  BA 01D1				MOV	DX,BADCOMLKMES_ptr		;AC000; get message number
					invoke	triageError
 03CB  E8 0000 E             1		CALL    triageError 
 03CE  3D 0041				cmp	ax, 65
 03D1  75 03				jnz	doprt
 03D3  BA 01D2				mov	dx,BADCOMACCMES_ptr		;AC000; get error message number
 03D6				doprt:
 03D6  E8 06CC R			call	print_message
 03D9  BE 0000 E			MOV	SI,OFFSET RESGROUP:COMSPECT
 03DC  8B 3E 0000 E			MOV	DI,[ECOMLOC]
 03E0  B9 000E				MOV	CX,14
 03E3  F3/ A4				REP	MOVSB				; Get my default back
				
 03E5  EB D9				JMP	SHORT SETCOMSRRET
				
				;*********************************
				; PARSING ENDS HERE
				;*********************************
				
 03E7				ARGSDONE:
 03E7  8E 06 0000 E			mov	es,[envirseg]			;AC000; get environment back
					ASSUME	ES:ENVIRONMENT			;AN000;
				;AD060; cmp	ext_msg,set_extended_msg	;AN000; was /msg specified?
				;AD060; jnz	check_permcom			;AN000; No, go check permcom
				;AD060; cmp	[permcom],0			;AN000; Yes - was permcom set?
				;AD060; jz	permcom_error			;AN000; No - error cannot have /MSG without /P
				
				;AD060; mov	ah,multdos			;AN000; set up to call DOS through int 2fh
				;AD060; mov	al,message_2f			;AN000; call for message retriever
				;AD060; mov	dl,set_extended_msg		;AN000; set up extended error message address
				;AD060; push	es				;AN016; save environment segment
				;AD060; push	cs				;AN016; get local segment to ES
				;AD060; pop	es				;AN016;
				;AD060; mov	di,offset resgroup:extended_msg_start ;AN000; start address
				;AD060; int	2fh				;AN000;
				;AD060; pop	es				;AN016; restore environment segment
				;AD060; mov	di,offset resgroup:extmsgend+15 ;AN000; get address of resident end
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-13
Trap:  Get the attention of MSDOS                           

				;AD060; mov	[resmsgend],di			;AN000; save it
				;AD060; call	sysloadmsg			;AN000; load message addresses
				;AD060; jmp	short process_permcom		;AN000; now go process /P switch
				
				;AD060;permcom_error:
				;AD060; mov	disp_class,parse_msg_class	;AN000; set up parse error msg class
				;AD060; mov	dx,LessArgs_Ptr 		;AN000; get message number for "Required parameter m
				issing"
				;AD060; call	print_message			;AN000; issue error message
				;AD060; jmp	short comreturns		;AN000; we already know /P wasn't entered
				
				;AD060;check_permcom:
 03EB  80 3E 0000 E 00			CMP	[PERMCOM],0
 03F0  74 2E				JZ	COMRETURNS
				
				;AD060;process_permcom:
 03F2  06				PUSH	ES				; Save environment pointer
 03F3  B4 50				MOV	AH,SET_CURRENT_PDB
 03F5  8C DB				MOV	BX,DS
 03F7  8E C3				MOV	ES,BX
 03F9  CD 21				INT	int_command			; Current process is me
 03FB  BF 000A				MOV	DI,PDB_Exit			; Diddle the addresses in my header
 03FE  B8 0000 E			MOV	AX,OFFSET RESGROUP:LODCOM
 0401  AB				STOSW
 0402  8C D8				MOV	AX,DS
 0404  AB				STOSW
 0405  B8 0000 E			MOV	AX,OFFSET RESGROUP:CONTC
 0408  AB				STOSW
 0409  8C D8				MOV	AX,DS
 040B  AB				STOSW
 040C  B8 0000 E			MOV	AX,OFFSET RESGROUP:DskErr
 040F  AB				STOSW
 0410  8C D8				MOV	AX,DS
 0412  AB				STOSW
 0413  8C 1E 0016			MOV	WORD PTR DS:[PDB_Parent_PID],DS ; Parent is me forever
				
 0417  BA 0000 E			MOV	DX,OFFSET RESGROUP:INT_2E
 041A  B8 252E				MOV	AX,(SET_INTERRUPT_VECTOR SHL 8) OR 02EH
 041D  CD 21				INT	int_command			;Set magic interrupt
 041F  07				POP	ES				;Remember environment
				
 0420				COMRETURNS:
 0420  A1 0016				MOV	AX,WORD PTR DS:[PDB_Parent_PID]
 0423  A3 0000 E			MOV	[PARENT],AX			; Save parent
 0426  8C 1E 0016			MOV	WORD PTR DS:[PDB_Parent_PID],DS ; Parent is me
 042A  A1 0018				MOV	AX,WORD PTR DS:[PDB_JFN_Table]
 042D  A3 0000 E			MOV	[IO_SAVE],AX			; Get the default stdin and out
 0430  8C 1E 0002 E			MOV	WORD PTR [COM_PTR+2],DS 	; Set all these to resident
 0434  8C 1E 0002 E			MOV	WORD PTR [COM_FCB1+2],DS
 0438  8C 1E 0002 E			MOV	WORD PTR [COM_FCB2+2],DS
 043C  BF 0000 E			MOV	DI,OFFSET RESGROUP:COMSPEC
				
 043F  8B 36 0000 E			MOV	SI,[ECOMLOC]
 0443  80 3E 0000 E 00			CMP	BYTE PTR [CHUCKENV],0
				
 0448  8C D8				MOV	AX,DS				; XCHG ES,DS
 044A  06				PUSH	ES
 044B  1F				POP	DS
 044C  8E C0				MOV	ES,AX
				
 044E  74 1D				JZ	COPYCOMSP			; All set up for copy
				
 0450  0E				PUSH	CS
 0451  1F				POP	DS
				
 0452  BE 0000 E			MOV	SI,OFFSET RESGROUP:COMSPSTRING
 0455  06				PUSH	ES
 0456  57				PUSH	DI
 0457  E8 06F1 R			CALL	IFINDE
 045A  8B F7				MOV	SI,DI
 045C  06				PUSH	ES
 045D  1F				POP	DS
 045E  5F				POP	DI
 045F  07				POP	ES
 0460  73 0B				JNC	COPYCOMSP
				
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-14
Trap:  Get the attention of MSDOS                           

 0462				COMSPECNOFND:
 0462  2E: 8B 36 0000 E			MOV	SI,CS:[ECOMLOC] 		;AC062
 0467  81 C6 0000 E			ADD	SI,OFFSET RESGROUP:PATHSTRING
 046B  0E				PUSH	CS
 046C  1F				POP	DS
				
				assume	es:resgroup
 046D				COPYCOMSP:
 046D  26: 89 3E 0000 E			mov	es:comspec_print,di		; Save ptr to beginning of comspec path
 0472  80 7C 01 3A			cmp	byte ptr [si+1],':'             ; Is there a drive specifier in comspec
 0476  75 06				jnz	COPYCOMSPLOOP			; If not, do not skip over first 2 bytes
 0478  26: 83 06 0000 E 02		add	es:comspec_print,2
				
 047E				COPYCOMSPLOOP:
 047E  AC				LODSB
 047F  AA				STOSB
 0480  0A C0				OR	AL,AL
 0482  75 FA				JNZ	COPYCOMSPLOOP
 0484  26: 89 3E 0000 E			mov	es:comspec_end,di		; Save ptr to end of comspec path
 0489  26: FF 0E 0000 E			dec	es:comspec_end
 048E  26: 8A 26 0000 E			mov	ah,es:comdrv
 0493  80 C4 40				add	ah,'A'-1
 0496  26: 88 26 0000 E			mov	es:cpdrv,ah			; Load drive letter in comprmt2
				assume	es:environment
				
 049B  E8 07C1 R			call	setup_for_messages		;AN060; set up parse and extended error messages
 049E  0E				PUSH	CS
 049F  1F				POP	DS
 04A0  8B 1E 0000 E			MOV	BX,[RESMSGEND]			;AC000; get end of resident
 04A4  B1 04				MOV	CL,4
 04A6  D3 EB				SHR	BX,CL
				Public EnvMaximum
 04A8				EnvMaximum:
				;
				; NOTE: The transient has to loaded directly after shrinking to the
				;	resident size.
				;	There is an assumption made when loading the transient that it
				;	still intact after the resident portion.
				;	If any other ALLOC/DEALLOC/SETBLOCK operations are performed
				;	inbetween, then there is a real good chance that the non-resident
				;	portion will be overwritten by arena information.
				;
 04A8  B4 4A				MOV	AH,SETBLOCK
 04AA  CD 21				INT	int_command			; Shrink me to the resident only
				;
				; Load in the transient and compute the checksum.  We may do this in one of
				; two ways:  First, cheat and use the transient loading code that exists in
				; the resident piece.  This may be OK except that it will hit the disk.
				;
				; But we do not need to hit the disk!  The transient is already loaded but is
				; in the wrong place.  We need to block transfer it up to the correct spot.
				;
 04AC				GOTENVIR:
 04AC  C6 06 0000 E 01			MOV	TrnMvFlg, 1			; Indicate that transient has been moved
 04B1  06				PUSH	ES
 04B2  BE 0000 E			MOV	SI,OFFSET RESGroup:TranStart
 04B5  BF 0000				MOV	DI,0
 04B8  8E 06 0000 E			mov	ES,Trnseg
 04BC  B9 0000 E			MOV	CX,OFFSET TRANGROUP:TRANSPACEEND
				;
				; We need to ensure that we do not have the potential of overwriting our
				; existing code in this move
				; It is OK to move if (SI+CX+Segment of Transient < TrnSeg).
				;
 04BF  51				push	cx
 04C0  8B C1				mov	ax,cx				; Get size of transient in bytes
 04C2  03 C6				add	ax,si				; Calculate end of transient section
 04C4  B1 04				mov	cl,4
 04C6  D3 E8				shr	ax,cl				; Convert to paragraphs
 04C8  40				inc	ax				; Round up (for partial paragraph)
 04C9  8C D9				mov	cx,ds
 04CB  03 C1				add	ax,cx				; Add in current segment
 04CD  3B 06 0000 E			cmp	ax,Trnseg			; See if there is overlap
 04D1  59				pop	cx
				; If we are too close to be safe, call LOADCOM instead of moving the code.
 04D2  72 05				jb	Ok_To_Move
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-15
Trap:  Get the attention of MSDOS                           

					invoke	LOADCOM
 04D4  E8 0000 E             1		CALL    LOADCOM 
 04D7  EB 0A				jmp	short Trans_Loaded
 04D9				Ok_To_Move:
				;
				; Everything is set for an upward move. WRONG!	We must move downward.
				;
 04D9  03 F1				ADD	SI,CX
 04DB  4E				DEC	SI
 04DC  03 F9				ADD	DI,CX
 04DE  4F				DEC	DI
 04DF  FD				STD
 04E0  F3/ A4				REP	MOVSB
 04E2  FC				CLD
				
 04E3				Trans_Loaded:
 04E3  07				POP	ES
				
					INVOKE	CHKSUM				; Compute the checksum
 04E4  E8 0000 E             1		CALL    CHKSUM 
 04E7  89 16 0000 E			MOV	[SUM],DX			; Save it
				
 04EB  80 3E 0000 E 00			CMP	BYTE PTR [PRDATTM],0		;eg
 04F0  75 0C				JNZ	NOBATCHSEG			;eg Don't do AUTOEXEC or date time
				;
				; Allocate batch segment for D:/autoexec.bat + no arguments
				;
 04F2  BB 0003				MOV	BX,((SIZE BatchSegment) + 15 + 1 + 0Fh)/16 ;eg
 04F5  B4 48				MOV	AH,ALLOC			;eg
 04F7  CD 21				INT	int_command			;eg
 04F9  72 03				JC	NOBATCHSEG			;eg didn't allocate - pretend no batch
 04FB  A3 0000 E			MOV	BATCH,AX			;eg save batch segment
				
 04FE				NOBATCHSEG:
 04FE  BB FFFF				MOV	BX, 0FFFFH			; Get size of largest block for env
 0501  B4 48				MOV	AH, ALLOC
 0503  CD 21				INT	int_command
				
				; Only allocate maximum 64K worth of environment
				
 0505  2B 1E 0000 E			SUB	BX,TRNSIZE			;eg subtract # of transient paragraphs
 0509  81 EB 0080			SUB	BX,128				;eg make sure we have 2K left
 050D  89 1E 0000 E			MOV	EnvMax, BX
 0511  81 FB 1000			CMP	BX, 4096			; 64K = 4096 paragraphs
 0515  72 07				JB	MAXOK
 0517  BB 0FFF				MOV	BX, 4096-1
 051A  89 1E 0000 E			MOV	EnvMax, BX
 051E				MAXOK:
				
 051E  B4 48				MOV	AH, ALLOC			; Get max size
 0520  CD 21				INT	int_command
				
 0522  8B 1E 0000 E			mov	bx,[envirseg]			;g get old environment segment
 0526  89 1E 0000 E			mov	oldenv,bx			;g save it
 052A  C7 06 0000 E 0000		mov	usedenv,0			;g initialize env size counter
 0530  8E DB				MOV	DS,bx
					ASSUME	DS:NOTHING
 0532  36: A3 0000 E			MOV	[ENVIRSEG],AX
 0536  8E C0				MOV	ES,AX
 0538  33 F6				XOR	SI,SI
 053A  8B FE				MOV	DI,SI
 053C  36: 8B 1E 0000 E			MOV	BX,EnvMax			; Copy over as much of the environment
										; as possible
 0541  D1 E3				SHL	BX,1
 0543  D1 E3				SHL	BX,1
 0545  D1 E3				SHL	BX,1
 0547  D1 E3				SHL	BX,1
 0549  36: 89 1E 0000 E			MOV	EnvMax, BX			; Convert EnvMax to bytes
 054E  4B				DEC	BX				; Dec by one to leave room for double 0
 054F  33 D2				XOR	DX,DX				; Use DX to indicate that there was
										; no environment size error.
				Public Nxtstr
 0551				Nxtstr:
 0551  E8 06A7 R			CALL	GetStrLen			; Get the size of the current env string
 0554  1E				push	ds				;g get addressability to environment
 0555  0E				push	cs				;g			 counter
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-16
Trap:  Get the attention of MSDOS                           

 0556  1F				pop	ds				;g
					ASSUME	DS:RESGROUP
 0557  01 0E 0000 E			add	usedenv,cx			;g  add the string length to env size
 055B  1F				pop	ds				;g
					ASSUME	DS:NOTHING
 055C  83 F9 01				CMP	CX,1				; End of environment was encountered.
 055F  74 0A				JZ	EnvExit
 0561  2B D9				SUB	BX,CX
 0563  73 04				JAE	OKCpyStr			; Can't fit in all of enviroment.
 0565  42				INC	DX				; Out of env space msg must be displayed
 0566  EB 03 90				JMP	EnvExit
 0569				OKCpyStr:
 0569  EB E6				JMP	Nxtstr
 056B				EnvExit:
				
 056B  0E				PUSH	CS
 056C  1F				POP	DS
					ASSUME	DS:RESGroup
 056D  0B D2				OR	DX,DX				; DX will be non-zero if error
 056F  74 06				JZ	EnvNoErr
 0571  BA 01CF				MOV	DX,OUTENVERR_ptr		;AC000; get message number
 0574  E8 06CC R			call	print_message
				
 0577				EnvNoErr:
					; BX now has the left over size of the maximum environment
					; We want to shrink the environment down to the minimum size
					; Set the environment size to max(Envsiz,Env used)
				
 0577  8B 0E 0000 E			MOV	CX, EnvMax
 057B  2B CB				SUB	CX, BX				; CX now has the environment used
 057D  83 C1 10				ADD	CX, 16				; Round up to next paragraph
 0580  D1 E9				SHR	CX, 1
 0582  D1 E9				SHR	CX, 1
 0584  D1 E9				SHR	CX, 1
 0586  D1 E9				SHR	CX, 1
 0588  3B 0E 0000 E			CMP	CX, Envsiz			; Is environment used > Envsiz
 058C  72 04				JB	EnvSet
 058E  89 0E 0000 E			MOV	Envsiz, CX
 0592				EnvSet:
 0592  8B 1E 0000 E			MOV	BX, Envsiz			; Set environment to size needed
 0596  8C C0				mov	ax,es				;eg get environment segment
 0598  03 C3				add	ax,bx				;eg add number of environment paragraphs
 059A  3B 06 0000 E			cmp	ax,initend			;eg does this go past end of init?
 059E  77 0E				ja	envsetok			;eg yes - do the setblock
 05A0  8C C0				mov	ax,es				;eg no - get back the environment segment
 05A2  8B 1E 0000 E			mov	bx,initend			;eg get the segment at end of init
 05A6  2B D8				sub	bx,ax				;eg setblock envir segment to end of init code
 05A8  C7 06 0000 E 0001		mov	resetenv,1			;eg set flag so we know to set envir later
				
 05AE				envsetok:
 05AE  B4 4A				MOV	AH, SETBLOCK
 05B0  CD 21				INT	int_command
				
				
 05B2  83 3E 0000 E 00			CMP	[BATCH],0			;eg did we set up a batch segment?
 05B7  75 03				JNZ	dodate				;eg yes - go initialize it
 05B9  E9 068A R			JMP	NODTTM				; Don't do AUTOEXEC or date time
				;
				; Allocate batch segment for D:/autoexec.bat + no arguments
				;
 05BC				dodate:
 05BC  A1 0000 E			MOV	AX,BATCH			;eg get batch segment
 05BF  C6 06 0000 E 03			MOV	EchoFlag,3			; set batch echo
 05C4  C7 06 0000 E 0001		MOV	NEST,1				; g set nest flag to 1 batch
 05CA  8E C0				MOV	ES,AX
				;
				; Initialize the segment
				;
 05CC  33 FF				XOR	DI,DI
 05CE  B0 00				MOV	AL,BatchType
 05D0  AA				STOSB
 05D1  B0 01				MOV	AL,1				; G initialize echo for batch exit
 05D3  AA				STOSB					; G
 05D4  33 C0				XOR	AX,AX				; initialize to zero
 05D6  AB				STOSW					; G batch segment of last job - batlast
 05D7  AB				STOSW					; G segment for FOR
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-17
Trap:  Get the attention of MSDOS                           

 05D8  AA				STOSB					; G FOR flag
 05D9  AB				STOSW					; position in file - batseek
 05DA  AB				STOSW
				;
				; Clean out the parameters
				;
 05DB  B8 FFFF				MOV	AX,-1				; initialize to no parameters
 05DE  B9 000A				MOV	CX,10
 05E1  F3/ AB				REP	STOSW
				;
				; Decide whether we should grab the default drive
				;
 05E3  80 3E 0000 E 00			CMP	BYTE PTR [AUTOBAT],0
				
 05E8  75 0E				JNZ	NOAUTSET
 05EA  B4 19				MOV	AH,GET_DEFAULT_DRIVE
 05EC  CD 21				INT	int_command
 05EE  02 06 0000 E			ADD	AL,ucasea
				
 05F2  A2 0000 E			MOV	[AUTOBAT],AL
 05F5  A2 0000 E			MOV	[KAUTOBAT],AL			;AN000;  3/3/KK
				
 05F8				NOAUTSET:
				;
				; Copy in the batch file name (including NUL)
				;
 05F8  BE 0000 E			MOV	SI,OFFSET RESGROUP:AUTOBAT
 05FB  B9 0008				MOV	CX,8
 05FE  F3/ A5				REP	MOVSW
 0600  A4				MOVSB					;AN027;  move in carraige return to terminate string
				
 0601  BA 0000 E			MOV	DX,OFFSET RESGROUP:AUTOBAT
 0604  B8 3D00				MOV	AX,OPEN SHL 8
 0607  CD 21				INT	int_command			; See if AUTOEXEC.BAT exists
 0609  72 09				JC	NOABAT
 060B  8B D8				MOV	BX,AX
 060D  B4 3E				MOV	AH,CLOSE
 060F  CD 21				INT	int_command
 0611  E9 0697 R			JMP	DRV0				;AC000; go process autoexec
				
 0614				NOABAT:
 0614  50				push	ax
 0615  E8 06B0 R			call	setup_seg
 0618  A3 0002 E			mov	word ptr [triage_add+2],ax
 061B  58				pop	ax
 061C  FF 1E 0000 E			call	triage_add
 0620  3D 0041				cmp	ax, 65
 0623  74 36				jz	AccDenErr			;AN000; was network access denied
				
				
				; If AUTOEXEC.BAT is not found, then check for KAUTOEXE.BAT.  Changed
				; by Ellen to check only when in Korea.  The country information
				; returned will overlay the old parse data area, but we don't care
				; since we won't need the parse information or country information.
				; We only care about the country code returned in BX.
				
 0625  BA 0000 E			MOV	DX,OFFSET RESGROUP:INTERNAT_INFO ;AN000; Set up internat vars
 0628  B8 3800				MOV	AX,INTERNATIONAL SHL 8		;AN000;  get country dependent info
 062B  CD 21				INT	21H				;AN000;
 062D  72 23				JC	NOKABAT 			;AN000; Error - don't bother with it
 062F  83 FB 52				CMP	BX,KOREA_COUNTRY_CODE		;AN000; Are we speaking Korean?
 0632  75 2D				JNZ	OPENERR 			;AN000; No, don't check for KAUTOEXE
				
 0634  BF 001F				MOV	DI, OFFSET BatFile		;AN000;  3/3/KK
 0637  BE 0000 E			MOV	SI,OFFSET RESGROUP:KAUTOBAT	;AN000;  Another trial to do	3/3/KK
 063A  B9 0008				MOV	CX,8				;AN000;  auto execution for the 3/3/KK
 063D  F3/ A5				REP	MOVSW				;AN000;  non-English country	3/3/KK
 063F  A4				MOVSB					;AN027;  move in carraige return to terminate string
 0640  BA 0000 E			MOV	DX,OFFSET RESGROUP:KAUTOBAT	;AN000;  3/3/KK
 0643  B8 3D00				MOV	AX,OPEN SHL 8			;AN000;  3/3/KK
 0646  CD 21				INT	int_command			;AN000;  See if KAUTOEXE.BAT exists    3/3/KK
 0648  72 08				JC	NOKABAT 			;AN000;  3/3/KK
 064A  8B D8				MOV	BX,AX				;AN000;  3/3/KK
 064C  B4 3E				MOV	AH,CLOSE			;AN000;  3/3/KK
 064E  CD 21				INT	int_command			;AN000;  3/3/KK
 0650  EB 45				JMP	SHORT DRV0			;AN000;  3/3/KK
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-18
Trap:  Get the attention of MSDOS                           

				
 0652				NOKABAT:					;AN000;  3/3/KK
 0652  FF 1E 0000 E			call	triage_add			;AN000;  get extended error
 0656  3D 0041				cmp	ax, 65				;AN000;  network access denied?
 0659  75 06				jnz	openerr 			;AN000;  no - go deallocate batch
				
 065B				AccDenErr:					;AN000;  yes - put out message
 065B  BA 00E6				mov	DX,ACCDEN			;AC000; get message number
 065E  E8 06CC R			call	print_message
				
 0661				openerr:
 0661  8E 06 0000 E			MOV	ES,[BATCH]			; Not found--turn off batch job
 0665  B4 49				MOV	AH,DEALLOC
 0667  CD 21				INT	int_command
 0669  C7 06 0000 E 0000		MOV	[BATCH],0			; AFTER DEALLOC in case of ^C
 066F  C6 06 0000 E 01			MOV	EchoFlag,1
 0674  C7 06 0000 E 0000		mov	nest,0				;g indicate no batch in progress
				
 067A				DODTTM:
 067A  B8 0000 E			MOV	AX,OFFSET TRANGROUP:DATINIT
 067D  A3 0000 E			MOV	WORD PTR[INITADD],AX
 0680  A1 0000 E			MOV	AX,[TRNSEG]
 0683  A3 0002 E			MOV	WORD PTR[INITADD+2],AX
 0686  FF 1E 0000 E			CALL	DWORD PTR [INITADD]
				
 068A				NODTTM:
				
					IF IBMVER
 068A  83 3E 0000 E 00			CMP	[SINGLECOM],0
 068F  75 06				JNZ	DRV0				; Don't print header if SINGLECOM
 0691  BA 01D0				MOV	DX,HEADER_ptr			;AC000; get message number
 0694  E8 06CC R			call	print_message
					ENDIF
				
 0697				DRV0:						; Reset APPEND state
 0697  1E				push	ds				;AN042; save data segment
 0698  0E				push	cs				;AN042; Get local segment into DS
 0699  1F				pop	ds				;AN042;
 069A  B8 B707				mov	ax,AppendSetState		;AN042; Set the state of Append
 069D  8B 1E 0000 E			mov	bx,Append_state 		;AN042;     back to the original state
 06A1  CD 2F				int	2fh				;AN042;
 06A3  1F				pop	ds				;AN042; get data segment back
 06A4  E9 0000 E			JMP	ENDINIT 			;G Finish initializing
				
				;
				;	Get length of string pointed to by DS:SI.  Length includes NULL.
				;	Length is returned in CX
				;
 06A7				GetStrLen:
 06A7  33 C9				xor	cx,cx
 06A9				NxtChar:
 06A9  AC				lodsb
 06AA  41				inc	cx
 06AB  0A C0				or	al,al
 06AD  75 FA				jnz	NxtChar
 06AF  C3				ret
				;
				; If the transient has been loaded in TranSeg, then we need to use that
				; segment for calls to routines in the transient area. Otherwise, the current
				; code segment is used
				; Segment returned in AX.
				;
 06B0				setup_seg:
 06B0  A1 0000 E			mov	ax,[trnseg]
 06B3  80 3E 0000 E 01			cmp	TrnMvFlg, 1			; Has transient portion been moved
 06B8  74 11				jz	setup_end
 06BA  53				push	bx
 06BB  8C CB				mov	bx,cs
 06BD  B8 0000 E			mov	ax,OFFSET RESGroup:TranStart
 06C0  D1 E8				shr	ax,1
 06C2  D1 E8				shr	ax,1
 06C4  D1 E8				shr	ax,1
 06C6  D1 E8				shr	ax,1
 06C8  03 C3				add	ax,bx
 06CA  5B				pop	bx
 06CB				setup_end:
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-19
Trap:  Get the attention of MSDOS                           

 06CB  C3				ret
				
 06CC				print_message:
 06CC  50				push	ax
 06CD  1E				PUSH	DS				;AN000; save data and extra segment
 06CE  06				PUSH	ES				;AN000;     registers
 06CF  8C C8				MOV	AX,CS				;AN000; get local segment
 06D1  8E C0				MOV	ES,AX				;AN000; set ES and DS to point to it
 06D3  8E D8				MOV	DS,AX				;AN000;
				;AD054; PUSH	BX				;AC000; save BX register
				;AD054; PUSH	CX				;AC000; save CX register
				;AD054; PUSH	DX				;AC000; save DX register
				;AD054; MOV	AX,DX				;AC000; get message number
				;AD054; MOV	DH,DISP_CLASS			;AC000; get display class
				;AD054; MOV	DL,NO_CONT_FLAG 		;AN000; set control flags off
				;AD054; MOV	BX,NO_HANDLE_OUT		;AC000; set message handler to use function 1-12
				;AD054; XOR	CH,CH				;AC000; clear upper part of cx
				;AD054; MOV	CL,NUMBER_SUBST 		;AC000; set number of substitutions
				;AD054; invoke	SYSDISPMSG			;AC000; display the message
				;AD054; MOV	DISP_CLASS,UTIL_MSG_CLASS	;AC000; reset display class
				;AD054; MOV	NUMBER_SUBST,NO_SUBST		;AC000; reset number of substitutions
				;AD054; POP	DX				;AC000; restore registers
				;AD054; POP	CX				;AC000;
				;AD054; POP	BX				;AC000;
					invoke	rprint				;AC054;
 06D5  E8 0000 E             1		CALL    rprint 
				
 06D8  07				POP	ES				;AN000;
 06D9  1F				POP	DS				;AN000;
 06DA  58				pop	ax
 06DB  C3				ret
				
 06DC				PATHCHRCMPR:
 06DC  52				push	dx
 06DD  8A 16 0000 E			mov	dl,fslash
 06E1  38 16 0000 E			CMP	[RSWITCHAR],dl
 06E5  74 04				JZ	RNOSLASHT
 06E7  3A C2				CMP	AL,dl
 06E9  74 04				JZ	RET41
 06EB				RNOSLASHT:
 06EB  3A 06 0000 E			CMP	AL,bslash
 06EF				RET41:
 06EF  5A				pop	dx
 06F0  C3				RET
				
				
 06F1				IFINDE:
 06F1  E8 06F9 R			CALL	IFIND				; FIND THE NAME
 06F4  72 42				JC	IFIND2				; CARRY MEANS NOT FOUND
 06F6  EB 55 90				JMP	ISCASB1 			; SCAN FOR = SIGN
				;
				; On return of FIND1, ES:DI points to beginning of name
				;
 06F9				IFIND:
 06F9  FC				CLD
 06FA  E8 0739 R			CALL	ICOUNT0 			; CX = LENGTH OF NAME
 06FD  8E 06 0000 E			MOV	ES,[ENVIRSEG]
 0701  33 FF				XOR	DI,DI
				
 0703				IFIND1:
 0703  51				PUSH	CX
 0704  56				PUSH	SI
 0705  57				PUSH	DI
				
 0706				IFIND11:
 0706  AC				LODSB
				
				;;;;	IF	KANJI		3/3/KK
					INVOKE	ITESTKANJ
 0707  E8 0000 E             1		CALL    ITESTKANJ 
 070A  74 0F				JZ	NOTKANJ4
 070C  4E				DEC	SI
 070D  AD				LODSW
 070E  47				INC	DI
 070F  47				INC	DI
 0710  26: 3B 45 FE			CMP	AX,ES:[DI-2]
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-20
Trap:  Get the attention of MSDOS                           

 0714  75 11				JNZ	IFIND12
 0716  49				DEC	CX
 0717  E2 ED				LOOP	IFIND11
 0719  EB 0C				JMP	SHORT IFIND12
				
 071B				NOTKANJ4:
				;;;;	ENDIF			3/3/KK
				
 071B  E8 075A R			CALL	IUPCONV
 071E  47				INC	DI
 071F  26: 3A 45 FF			CMP	AL,ES:[DI-1]
 0723  75 02				JNZ	IFIND12
 0725  E2 DF				LOOP	IFIND11
				
 0727				IFIND12:
 0727  5F				POP	DI
 0728  5E				POP	SI
 0729  59				POP	CX
 072A  74 0C				JZ	IFIND2
 072C  51				PUSH	CX
 072D  E8 0752 R			CALL	ISCASB2 			; SCAN FOR A NUL
 0730  59				POP	CX
 0731  26: 80 3D 00			CMP	BYTE PTR ES:[DI],0
 0735  75 CC				JNZ	IFIND1
 0737  F9				STC					; INDICATE NOT FOUND
				
 0738				IFIND2:
 0738  C3				RET
				
 0739				ICOUNT0:
 0739  1E				PUSH	DS
 073A  07				POP	ES
 073B  8B FE				MOV	DI,SI
				
 073D  57				PUSH	DI				; COUNT NUMBER OF CHARS UNTIL "="
 073E  E8 074D R			CALL	ISCASB1
 0741  EB 04				JMP	SHORT ICOUNTX
 0743  57				PUSH	DI				; COUNT NUMBER OF CHARS UNTIL NUL
 0744  E8 0752 R			CALL	ISCASB2
				
 0747				ICOUNTX:
 0747  59				POP	CX
 0748  2B F9				SUB	DI,CX
 074A  87 F9				XCHG	DI,CX
 074C  C3				RET
				
 074D				ISCASB1:
 074D  A0 0000 E			MOV	AL,equalsign			; SCAN FOR AN =
 0750  EB 02				JMP	SHORT ISCASBX
				
 0752				ISCASB2:
 0752  32 C0				XOR	AL,AL				; SCAN FOR A NUL
				
 0754				ISCASBX:
 0754  B9 0100				MOV	CX,100H
 0757  F2/ AE				REPNZ	SCASB
 0759  C3				RET
				
				
				; ****************************************************************
				; *
				; * ROUTINE:	 IUPCONV    (ADDED BY EMG 4.00)
				; *
				; * FUNCTION:	 This routine returns the upper case equivalent of
				; *		 the character in AL from the file upper case table
				; *		 in DOS if character if above  ascii 128, else
				; *		 subtracts 20H if between "a" and "z".
				; *
				; * INPUT:	 DS	      set to resident
				; *		 AL	      char to be upper cased
				; *		 FUCASE_ADDR  set to the file upper case table
				; *
				; * OUTPUT:	 AL	      upper cased character
				; *
				; ****************************************************************
				
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-21
Trap:  Get the attention of MSDOS                           

				assume	ds:resgroup				;AN000;
				
 075A				iupconv proc	near				;AN000;
				
 075A  3C 80				cmp	al,80h				;AN000; see if char is > ascii 128
 075C  72 10				jb	other_fucase			;AN000; no - upper case math
 075E  2C 80				sub	al,80h				;AN000; only upper 128 chars in table
 0760  1E				push	ds				;AN000;
 0761  53				push	bx				;AN000;
 0762  C5 1E 0001 E			lds	bx,dword ptr fucase_addr+1	;AN000;  get table address
 0766  83 C3 02				add	bx,2				;AN000;  skip over first word
 0769  D7				xlat	ds:byte ptr [bx]		;AN000;  convert to upper case
 076A  5B				pop	bx				;AN000;
 076B  1F				pop	ds				;AN000;
 076C  EB 0E				jmp	short iupconv_end		;AN000;  we finished - exit
				
 076E				other_fucase:					;AN000;
 076E  3A 06 0000 E			cmp	al,lcasea			;AC000; if between "a" and "z",
 0772  72 08				jb	iupconv_end			;AC000;     subtract 20h to get
 0774  3A 06 0000 E			cmp	al,lcasez			;AC000; upper case equivalent.
 0778  77 02				ja	iupconv_end			;AC000;
 077A  2C 20				sub	al,20h				;AC000; Change lower-case to upper
				
 077C				iupconv_end:					;AN000;
 077C  C3				ret
				
 077D				iupconv endp					;AN000;
				
 077D				init_contc_specialcase:
										; This routine is called if control-C
 077D  83 C4 06				add	sp,6				;  is type during the date/time prompt
 0780  56				push	si				;  at initialization time.  The desired
 0781  8B F2				mov	si,dx				;  response is to make it look like the
 0783  C7 44 01 0D00			mov	word ptr [si+1],0d00h		;  user typed <CR> by "popping" the
 0788  5E				pop	si				;  INT 21h stuff off the stack, putting
 0789  CF				iret					;  a <CR> in the user's buffer, and
										;  returning directly to the user.
										; In this case the user is TCODE.
				
				; ****************************************************************
				; *
				; * ROUTINE:	 GET_MSG_PTR
				; *
				; * FUNCTION:	 Fill in translatable char table starting at
				; *		 at Abort_char with translated characters.
				;		 Set segments of resident messages.
				; *
				; * INPUT:	 none
				; *
				; * OUTPUT:	 none
				; *
				; ****************************************************************
				
 = 00C9				CHAR_START	EQU	201			;AN000; first character translate is 1
 = 00CF				CHAR_END	EQU	207			;AN000;        last is 6
				
 078A				GET_MSG_PTR	PROC NEAR			;AN000;
				
 078A  B8 00C9				MOV	AX,CHAR_START			;AN000; get first char translation
 078D  BB 0000 E			MOV	BX,OFFSET RESGROUP:ABORT_CHAR	;AN000; get first char offset
 0790				MOVEMES:					;AN000;
 0790  B6 FF				MOV	DH,-1				;AN000; utility message
					INVOKE	SYSGETMSG			;AN000; get the offset of the char
 0792  E8 0000 E             1		CALL    SYSGETMSG 
 0795  8A 0C				MOV	CL,BYTE PTR [SI]		;AN000; get the character in CL
 0797  88 0F				MOV	BYTE PTR [BX],CL		;AN000; put the character in the table
 0799  43				INC	BX				;AN000; point to next position in table
 079A  40				INC	AX				;AN000; increment message number
 079B  3D 00CF				CMP	AX,CHAR_END			;AN000; are we at the end?
 079E  75 F0				JNZ	MOVEMES 			;AN000; no - keep loading
				
 07A0  8C D8				MOV	AX,DS				;AN000; get data segment
 07A2  A3 0000 E			MOV	DRVNUM_OP_SEG,AX		;AN000; set up segments for
 07A5  A3 0000 E			MOV	DRVNUM_OP_SEG2,AX		;AN000;    message substitutions
 07A8  A3 0000 E			MOV	DEVE_OP_SEG,AX			;AN000;    used in the resident
 07AB  A3 0000 E			MOV	DEVE_OP_SEG2,AX 		;AN000;    portion of command
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-22
Trap:  Get the attention of MSDOS                           

 07AE  A3 0000 E			MOV	ERR15_OP_SEG,AX 		;AN000;    during initialization
 07B1  A3 0000 E			MOV	ERR15_OP_SEG2,AX		;AN000;    to save resident
 07B4  A3 0000 E			MOV	ERR15_OP_SEG3,AX		;AN000;    space.
 07B7  A3 0000 E			MOV	BADFAT_OP_SEG,AX		;AN000;
 07BA  A3 0000 E			MOV	COMPRMT1_SEG,AX 		;AN000;
 07BD  A3 0000 E			MOV	COMPRMT1_SEG2,AX		;AN000;
				
 07C0  C3				RET					;AN000;
				
 07C1				GET_MSG_PTR	ENDP				;AN000;
				
				
				; ****************************************************************
				; *
				; * ROUTINE:	 Setup_for_messages
				; *
				; * FUNCTION:	 Sets up system for PARSE and EXTENDED ERROR
				; *		 messages as follows:
				; *
				; *		 IF /P and /MSG are entered
				; *		    keep PARSE and EXTENDED ERRORS in memory
				; *		 ELSE IF /P is entered
				; *		    use PARSE and EXTENDED ERRORS on disk
				; *		    remove PARSE ERRORS from memory
				; *		 ELSE
				; *		    remove PARSE ERRORS from memory
				; *		 ENDIF
				; *
				; * INPUT:	 PERMCOM	Set up with user input
				; *		 EXT_MSG	Set up with user input
				; *		 System set up to retain PARSE ERRORS
				; *
				; * OUTPUT:	 registers unchanged
				; *
				; ****************************************************************
				
				
 07C1				setup_for_messages	proc	near		;AN060;
				
 07C1  1E				push	ds				;AN060; save data segment
 07C2  06				push	es				;AN060; save environment segment
 07C3  50				push	ax				;AN060;
 07C4  52				push	dx				;AN060;
 07C5  57				push	di				;AN060;
 07C6  8C C8				mov	ax,cs				;AN060; get local segment to ES and DS
 07C8  8E D8				mov	ds,ax				;AN060;
 07CA  8E C0				mov	es,ax				;AN060;
				
 07CC  80 3E 0000 E 00			cmp	[permcom],0			;AN060; was permcom set?
 07D1  74 38				jz	no_permcom			;AN060; No - don't worry about messages
 07D3  80 3E 0000 E 01			cmp	ext_msg,set_extended_msg	;AN060; was /msg specified?
 07D8  74 22				jz	permcom_slash_msg		;AN060; Yes - go process it
 07DA  06				push	es				;AN060;
 07DB  B8 0001				mov	ax,1				;AN060; Set ES to 1 as a flag to the message
 07DE  8E C0				mov	es,ax				;AN060;    services that messages are on disk
 07E0  BF FF00 E			mov	di,offset resgroup:extended_msg_start-100h ;AN060; start address
 07E3  E8 083D R			call	set_ext_2f			;AN060; set extended error address
 07E6  BF FF00 E			mov	di,offset resgroup:parse_msg_start-0100h ;AN060; start address
 07E9  E8 0835 R			call	set_parse_2f			;AN060; set parse error address
 07EC  07				pop	es				;AN060;
					IF2					;AN060;;
					IFNDEF	READ_DISK_INFO			;AN060;;
						Extrn	READ_DISK_PROC:Far	;AN060;;
					ENDIF					;AN060;;
					ENDIF					;AN060;;
 07ED  B8 122E				MOV	AX,DOS_GET_EXT_PARSE_ADD	;AN060;; 2FH Interface
 07F0  B2 09 90 90			MOV	DL,DOS_SET_ADDR 		;AN060;; Set the READ_DISK_PROC address
 07F4  8D 3E 0000 E			LEA	DI,READ_DISK_PROC		;AN060;;
 07F8  CD 2F				INT	2FH				;AN060;; Private interface
 07FA  EB 30				jmp	short permcom_end		;AN060; and exit
				
 07FC				permcom_slash_msg:				;AN060; Keep messages in memory
 07FC  BF 0000 E			mov	di,offset resgroup:extended_msg_start ;AN060; start address
 07FF  E8 083D R			call	set_ext_2f			;AN060; set the extended message address
 0802  BF 000F E			mov	di,offset resgroup:extmsgend+15 ;AN060; get address of resident end
 0805  89 3E 0000 E			mov	[resmsgend],di			;AN060; save it
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-23
Trap:  Get the attention of MSDOS                           

 0809  EB 21				jmp	short permcom_end		;AN060; exit
				
 080B				no_permcom:					;AN060;
 080B  80 3E 0000 E 01			cmp	ext_msg,set_extended_msg	;AN060; was /msg specified?
 0810  75 0B				jnz	no_slash_msg			;AN060; no - no error
 0812  C6 06 0000 E 02			mov	disp_class,parse_msg_class	;AN060; set up parse error msg class
 0817  BA 0002				mov	dx,LessArgs_Ptr 		;AN060; get message number for "Required parameter m
				issing"
 081A  E8 06CC R			call	print_message			;AN060; issue error message
				
 081D				no_slash_msg:
 081D  B8 122E				mov	ax,(multdos shl 8 or message_2f);AN060; reset parse message pointers
 0820  B2 03				mov	dl,set_parse_msg		;AN060; set up parse message address
 0822  8B 3E 0000 E			mov	di,pars_msg_off 		;AN060; old offset of parse messages
 0826  8E 06 0000 E			mov	es,pars_msg_seg 		;AN060; old segment of parse messages
 082A  CD 2F				int	2fh				;AN060; go set it
				
 082C				permcom_end:
 082C  E8 0862 R			call	sysloadmsg			;AN060; load message addresses
 082F  5F				pop	di				;AN060;
 0830  5A				pop	dx				;AN060;
 0831  58				pop	ax				;AN060;
 0832  07				pop	es				;AN060; get environment back
 0833  1F				pop	ds				;AN060;
				
 0834  C3				ret					;AN060;
				
 0835				setup_for_messages	endp			;AN060;
				
				; ****************************************************************
				; *
				; * ROUTINE:	 Set_parse_2f
				; *
				; * FUNCTION:	 Does the INT 2Fh to DOS to set the PARSE
				; *		 message address that will later be retrieved
				; *		 by the message services.
				; *
				; * INPUT:	 ES set to segment of messages
				; *		 DI points to offset of messages
				; *
				; * OUTPUT:	 none
				; *
				; ****************************************************************
				
 0835				Set_parse_2f	proc	near			;AN060;
				
 0835  B8 122E				mov	ax,(multdos shl 8 or message_2f);AN060; set up to call DOS through int 2fh
 0838  B2 03				mov	dl,set_parse_msg		;AN060; set up parse message address
 083A  CD 2F				int	2fh				;AN060;
				
 083C  C3				ret					;AN060;
				
 083D				Set_parse_2f	endp				;AN060;
				
				; ****************************************************************
				; *
				; * ROUTINE:	 Set_ext_2f
				; *
				; * FUNCTION:	 Does the INT 2Fh to DOS to set the EXTENDED
				; *		 message address that will later be retrieved
				; *		 by the message services.
				; *
				; * INPUT:	 ES set to segment of messages
				; *		 DI points to offset of messages
				; *
				; * OUTPUT:	 none
				; *
				; ****************************************************************
				
 083D				Set_ext_2f	proc	near			;AN060;
				
 083D  B8 122E				mov	ax,(multdos shl 8 or message_2f);AN060; set up to call DOS through int 2fh
 0840  B2 01				mov	dl,set_extended_msg		;AN060; set up extended error message address
 0842  CD 2F				int	2fh				;AN060;
				
 0844  C3				ret					;AN060;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-24
Trap:  Get the attention of MSDOS                           

				
 0845				Set_ext_2f	endp				;AN060;
				
				
				ASSUME	DS:RESGROUP, ES:RESGROUP
				
				.list
				.cref
				
				 public amis_sign
 0845  90				even
 0846				amis_sign:
 0846  65 63 6D				db "ecm"
 0849  0005[				db 5 dup (' ')
	   20			
			 ]	
				
 084E  6C 44 4F 53			db "lDOS"
 0852  0004[				db 4 dup (' ')
	   20			
			 ]	
				
 0856				amis_id:			; must be directly after amis_sign
 0856  0000				dw 0
 0858  0000				dw 0			; sequential number
 085A  07				db amis_id_msg_end - amis_id_msg
 085B				amis_id_msg:
 085B  63 6F 6D 6D 61 6E		db "command"		; our id name
       64			
 0862				amis_id_msg_end:
				
 =				AMIS_SIGN_SEGMENT equ RESGROUP
				
				
				MSG_UTILNAME <COMMAND>				;AN000; define utility name
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-25
DOS - Message Retriever - MSGSTR.INC Module                 

			     C1	$M_SUBLIST_STRUC STRUC					     ;;AN000;;
			     C1								     ;;
 0000  0B                    C1	    $M_S_SIZE	     DB        11			     ;;AN000;; SUBLIST size  (PTR to next SU
				BLIST)
 0001  00                    C1	    $M_S_RESV	     DB        0			     ;;AN000;; RESERVED
 0002  00000000              C1	    $M_S_VALUE	     DD        ?			     ;;AN000;; Time, Date or PTR to data ite
				m
 0006  00                    C1	    $M_S_ID	     DB        ?			     ;;AN000;; n of %n
 0007  00                    C1	    $M_S_FLAG	     DB        ?			     ;;AN000;; Data-type flags
 0008  00                    C1	    $M_S_MAXW	     DB        ?			     ;;AN000;; Maximum field width
 0009  00                    C1	    $M_S_MINW	     DB        ?			     ;;AN000;; Minimum field width
 000A  00                    C1	    $M_S_PAD	     DB        ?			     ;;AN000;; Character for Pad field
			     C1								     ;;
 000B                        C1	$M_SUBLIST_STRUC ENDS					     ;;AN000;;
			     C1	$M_CLASS_ID STRUC					     ;;AN000;;
			     C1								     ;;
 0000  FF                    C1	    $M_CLS_ID	     DB        -1			     ;;AN000;; Class identifer
 0001  0004                  C1	    $M_COMMAND_VER   DW        EXPECTED_VERSION 	     ;;AN003;; COMMAND.COM version check
 0003  00                    C1	    $M_NUM_CLS_MSG   DB        0			     ;;AN000;; Total number of message in cl
				ass
			     C1								     ;;
 0004                        C1	$M_CLASS_ID ENDS					     ;;
			     C1	$M_ID STRUC						     ;;AN000;;
			     C1								     ;;
 0000  FFFF                  C1	    $M_NUM	     DW        -1			     ;;AN000;; Message Number
 0002  0000                  C1	    $M_TXT_PTR	     DW        ?			     ;;AN000;; Pointer to message text
			     C1								     ;;
 0004                        C1	$M_ID ENDS						     ;;AN000;;
			     C1	$M_RES_ADDRS STRUC					     ;;AN000;;
			     C1								     ;;
 0000  00000000              C1	    $M_EXT_ERR_ADDRS DD        0			     ;;AN000;; Allow pointers to THREE Exten
				ded error locations
 0004  00000000              C1	    $M_EXT_FILE      DD        0			     ;;AN001;;
 0008  00000000              C1	    $M_EXT_COMMAND   DD        0			     ;;AN000;;
 000C  FFFFFFFF              C1	    $M_EXT_TERM      DD        -1			     ;;AN000;;
 0010  00000000              C1	    $M_PARSE_COMMAND DD        0			     ;;AN000;;
 0014  00000000              C1	    $M_PARSE_ADDRS   DD        0			     ;;AN000;; Allow pointers to TWO Parse e
				rror locations
 0018  FFFFFFFF              C1	    $M_PARSE_TERM    DD        -1			     ;;AN000;;
 001C  00000000              C1	    $M_CRIT_ADDRS    DD        0			     ;;AN000;; Allow pointers to TWO Critica
				l error locations
 0020  00000000              C1	    $M_CRIT_COMMAND  DD        0			     ;;AN000;;
 0024  FFFFFFFF              C1	    $M_CRIT_TERM     DD        -1			     ;;AN000;;
 0028  FFFFFFFF              C1	    $M_DISK_PROC_ADDR DD       -1			     ;;AN004;; Address of READ_DISK_PROC
 002C  0008[                 C1	    $M_CLASS_ADDRS   DD        $M_NUM_CLS DUP(0)	     ;;AN000;; Allow pointers to specified c
				lasses
	   00000000          C1	
			 ]   C1	
			     C1	
 004C  FFFFFFFF              C1	    $M_CLS_TERM      DD        -1			     ;;AN000;;
 0050  00000000              C1	    $M_DBCS_VEC      DD        0			     ;;AN000;; Save DBCS vector
 0054  0000                  C1	    $M_HANDLE	     DW        ?			     ;;AN000;;
 0056  00                    C1	    $M_SIZE	     DB        0			     ;;AN000;;
 0057  0D 0A                 C1	    $M_CRLF	     DB        0DH,0AH			     ;;AN004;; CR LF message
 0059  00                    C1	    $M_CLASS	     DB        ?			     ;;AN004;; Saved class
 005A  0000                  C1	    $M_RETURN_ADDR   DW        ?			     ;;AN000;;
 005C  0000                  C1	    $M_MSG_NUM	     DW        $M_NULL			     ;;AN000;;
 005E  000A                  C1	    $M_DIVISOR	     DW        10			     ;;AN000;; Default = 10 (must be a WORD 
				for division)
 0060  0040[                 C1	    $M_TEMP_BUF      DB        $M_TEMP_BUF_SZ DUP("$")	     ;;AN000;; Temporary buffer
	   24                C1	
			 ]   C1	
			     C1	
 00A0  24                    C1	    $M_BUF_TERM      DB        "$"			     ;;AN000;;
			     C1	
 00A1                        C1	$M_RES_ADDRS ENDS					     ;;AN000;;
			     C1	$M_COUNTRY_INFO STRUC					     ;;AN000;; Expected Country infomation
			     C1								     ;;
 0000  0060[                 C1	    $M_HEADER	     DB       $M_RES_ADDRS_SZ-$M_TEMP_BUF_SZ-1 DUP(?) ;;AN000;; Go past first part o
				f struc
	   ??                C1	
			 ]   C1	
			     C1	
 0060  0000                  C1	    $M_DATE_FORMAT   DW       ? 			     ;;AN000;; <------- Date Format
 0062  0005[                 C1	    $M_CURR_SEPARA   DB       5 DUP(?)			     ;;AN000;;
	   ??                C1	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-26
DOS - Message Retriever - MSGSTR.INC Module                 

			 ]   C1	
			     C1	
 0067  00 00                 C1	    $M_THOU_SEPARA   DB       ?,0			     ;;AN000;; <------- Thou Separator
 0069  00 00                 C1	    $M_DECI_SEPARA   DB       ?,0			     ;;AN000;; <------- Decimal Separator
 006B  00 00                 C1	    $M_DATE_SEPARA   DB       ?,0			     ;;AN000;; <------- Date Separator
 006D  00 00                 C1	    $M_TIME_SEPARA   DB       ?,0			     ;;AN000;; <------- Time Separator
 006F  00                    C1	    $M_CURR_FORMAT   DB       ? 			     ;;AN000;;
 0070  00                    C1	    $M_SIG_DIGS_CU   DB       ? 			     ;;AN000;;
 0071  00                    C1	    $M_TIME_FORMAT   DB       ? 			     ;;AN000;; <------- Time Format
			     C1								     ;;
 0072                        C1	$M_COUNTRY_INFO ENDS					     ;;AN000;;
				
				MSG_SERVICES <COMR,NEARmsg,LOADmsg,NOCHECKSTDIN,NOCHECKSTDOUT>	;AC026; include message services mac
				ro
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-27
DOS - Message Retriever - LOADMSG.ASM Module                

 0862                        C1		SYSLOADMSG PROC NEAR				     ;;AN000;;
 0862  50                    C1		PUSH	AX					     ;;AN000;
 0863  53                    C1		PUSH	BX					     ;;AN000;
 0864  52                    C1		PUSH	DX					     ;;AN000;
 0865  06                    C1		PUSH	ES					     ;;AN000;
 0866  57                    C1		PUSH	DI					     ;;AN000;
 0867  33 C9                 C1		XOR	CX,CX					     ;;AN000;  Reset to zero
 0869  8E C1                 C1		MOV	ES,CX					     ;;AN000;
 086B  33 FF                 C1		XOR	DI,DI					     ;;AN000;
 086D  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 0870  B2 00                 C1		MOV	DL,DOS_GET_EXTENDED			     ;;AN000;; Where are the Extended errors
				 in COMMAND.COM
 0872  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 0874  8C 06 000A E          C1		MOV	WORD PTR $M_RT.$M_EXT_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 0878  89 3E 0008 E          C1		MOV	WORD PTR $M_RT.$M_EXT_COMMAND,DI	     ;;AN000;;
 087C  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 087F  B2 02                 C1		MOV	DL,DOS_GET_PARSE			     ;;AN000;; Where are the Parse errors in
				 COMMAND.COM
 0881  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 0883  8C 06 0012 E          C1		MOV	WORD PTR $M_RT.$M_PARSE_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 0887  89 3E 0010 E          C1		MOV	WORD PTR $M_RT.$M_PARSE_COMMAND,DI	     ;;AN000;;
 088B  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 088E  B2 04                 C1		MOV	DL,DOS_GET_CRITICAL			     ;;AN000;; Where are the Critical errors
				 in COMMAND.COM
 0890  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 0892  8C 06 0022 E          C1		MOV	WORD PTR $M_RT.$M_CRIT_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 0896  89 3E 0020 E          C1		MOV	WORD PTR $M_RT.$M_CRIT_COMMAND,DI	     ;;AN000;;
 089A  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN001;; 2FH Interface
 089D  B2 06                 C1		MOV	DL,DOS_GET_FILE 			     ;;AN001;; Where are the FILE dependant 
				in IFSFUNC.EXE
 089F  CD 2F                 C1		INT	2FH					     ;;AN001;; Private interface
 08A1  8C 06 0006 E          C1		MOV	WORD PTR $M_RT.$M_EXT_FILE+2,ES 	     ;;AN001;;	Move into first avaliable ta
				ble location
 08A5  89 3E 0004 E          C1		MOV	WORD PTR $M_RT.$M_EXT_FILE,DI		     ;;AN001;;
 08A9  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN001;; 2FH Interface
 08AC  B2 08                 C1		MOV	DL,DOS_GET_ADDR 			     ;;AN001;; Where is the READ_DISK_PROC i
				n COMMAND.COM
 08AE  CD 2F                 C1		INT	2FH					     ;;AN001;; Private interface
 08B0  8C 06 002A E          C1		MOV	WORD PTR $M_RT.$M_DISK_PROC_ADDR+2,ES	     ;;AN001;;	Move into first avaliable ta
				ble location
 08B4  89 3E 0028 E          C1		MOV	WORD PTR $M_RT.$M_DISK_PROC_ADDR,DI	     ;;AN001;;
 08B8  E8 0000 E             C3	    CALL    $M_CLS_3				 ;  Get addressibilty to class A 
 08BB  89 3E 002C E          C3	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 08BF  E8 0000 E             C3	    CALL    $M_CLS_4				 ;  Get addressibilty to class B 
 08C2  89 3E 0030 E          C3	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 08C6  E8 0000 E             C3	    CALL    $M_CLS_5				 ;  Get addressibilty to class C 
 08C9  89 3E 0034 E          C3	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 08CD  E8 0000 E             C3	    CALL    $M_CLS_6				 ;  Get addressibilty to class D 
 08D0  89 3E 0038 E          C3	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 08D4  E8 0000 E             C3	    CALL    $M_CLS_7				 ;  Get addressibilty to class E 
 08D7  89 3E 003C E          C3	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 08DB  E8 08F1 R             C1		CALL	$M_GET_DBCS_VEC 			     ;;AN000;; Save the DBCS vector
 08DE  51                    C1		PUSH	CX					     ;;AN000;;
 08DF  E8 0952 R             C1		CALL	$M_VERSION_CHECK			     ;;AN000;;	 Check Version
 08E2  72 08                 C1		JC $MIF20
 08E4  59                    C1		  POP	  CX					     ;;AN000;;	Reset stack
 08E5  5F                    C1		  POP	  DI					     ;;AN000;;	Restore REGS
 08E6  07                    C1		  POP	  ES					     ;;AN000;;
 08E7  5A                    C1		  POP	  DX					     ;;AN000;;
 08E8  5B                    C1		  POP	  BX					     ;;AN000;;
 08E9  58                    C1		  POP	  AX					     ;;AN000;;
 08EA  EB 04                 C1		JMP SHORT $MEN20
 08EC                        C1	$MIF20:
 08EC  83 C4 0C              C1		  ADD	  SP,12 				     ;;AN000;;
 08EF  F9                    C1		  STC						     ;;AN000;;	Reset carry flag
 08F0                        C1	$MEN20:
 08F0  C3                    C1		RET						     ;;AN000;;
 08F1                        C1		SYSLOADMSG ENDP 				     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-28
DOS - Message Retriever - $M_VERSION_CHECK Proc             

 08F1                        C1	$M_GET_DBCS_VEC PROC NEAR				     ;;AN000;;
 08F1  50                    C1		PUSH	AX					     ;;AN000;; Save character to check
 08F2  56                    C1		PUSH	SI					     ;;AN000;;
 08F3  1E                    C1		PUSH	DS					     ;;AN000;;
 08F4  B8 6300               C1		MOV	AX,DOS_GET_DBCS_INFO			     ;;AN000;; DOS function to get DBSC envi
				ronment
 08F7  CD 21                 C1		INT	21H					     ;;AN000;; Get environment pointer
 08F9  1E                    C1		PUSH	DS					     ;;AN000;; Get environment pointer
 08FA  07                    C1		POP	ES					     ;;AN000;; Get environment pointer
 08FB  1F                    C1		POP	DS					     ;;AN000;; Get environment pointer
 08FC  72 08                 C1		JC $MIF23
 08FE  89 36 0050 E          C1		  MOV	  WORD PTR $M_RT.$M_DBCS_VEC,SI 	     ;;AN000;; Save DBCS Vector
 0902  8C 06 0052 E          C1		  MOV	  WORD PTR $M_RT.$M_DBCS_VEC+2,ES	     ;;AN000;;
 0906                        C1	$MIF23:
 0906  5E                    C1		POP	SI					     ;;AN000;;
 0907  58                    C1		POP	AX					     ;;AN000;; Retrieve character to check
 0908  C3                    C1		RET						     ;;AN000;; Return
 0909                        C1	$M_GET_DBCS_VEC ENDP					     ;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-29
DOS - Message Retriever - $M_VERSION_CHECK Proc             

 0909                        C1	check_amis:
 0909  50                    C1		push ax
 090A  1E                    C1		push ds
 090B  56                    C1		push si
 090C  06                    C1		push es
 090D  57                    C1		push di
 090E  52                    C1		push dx
 090F  50                    C1		push ax				; version number, last on stack
 0910  B4 00                 C1		mov ah, 0			; multiplex number = 0
 0912                        C1	check_amis_loop:
 0912  B0 00                 C1		mov al, 0
 0914  CD 2D                 C1		int 2Dh				; installation check
 0916  3C FF                 C1		cmp al, -1			; multiplexer installed ?
 0918  75 21                 C1		jne check_amis_next		; no -->
 091A  0E                    C1		 push cs
 091B  1F                    C1		 pop ds
 091C  BE 0846 R             C1		mov si, offset AMIS_SIGN_SEGMENT:amis_sign
 091F  8E C2                 C1		mov es, dx			; es:di -> multiplexer's sign
 0921  B9 0008               C1		mov cx, 8			; 16 bytes
 0924  F3/ A7                C1		repe cmpsw			; compare
 0926  75 13                 C1		jne check_amis_next		; not us -->
 0928  8C CA                 C1		mov dx, cs			; dx:si -> amis_id
 092A  B0 11                 C1		mov al, 11h
 092C  CD 2D                 C1		int 2Dh				; CHG: al, bx, cx, dx, si, di
 092E  3C 00                 C1		cmp al, 0			; id call supported ?
 0930  74 0D                 C1		je check_amis_unsup		; no, allow if alt version -->
 0932  5A                    C1		pop dx
 0933  33 D2                 C1		xor dx, dx			; 2D.MM11 supported, mark that we need it
 0935  52                    C1		push dx
 0936  3C F0                 C1		cmp al, 0F0h			; CY if below 0F0h
 0938  EB 06 90              C1		jmp check_amis_done
 093B                        C1	check_amis_next:
 093B  FE C4                 C1		inc ah				; next multiplex number
 093D  75 D3                 C1		jnz check_amis_loop		; ZR if done, NZ if more to check -->
 093F                        C1	check_amis_unsup:
 093F  F9                    C1		stc				; multiplexer not found
 0940                        C1	check_amis_done:
 0940  5B                    C1		pop bx
 0941  5A                    C1		pop dx
 0942  5F                    C1		pop di
 0943  07                    C1		pop es
 0944  5E                    C1		pop si
 0945  1F                    C1		pop ds
 0946  58                    C1		pop ax
 0947  73 1C                 C1		jnc alt_good_DOS		; id is supported -->
 0949  81 FB 1A05            C1		cmp bx, alt_expected_version	; is it fine ?
 094D  74 16                 C1		je alt_good_DOS			; yes --> (NC)
 094F  EB 17 90              C1		jmp $MIF25			; no, cancel program -->
 0952                        C1	$M_VERSION_CHECK PROC NEAR				     ;;AN000;;
 0952  B4 30                 C1		  MOV	  AH,DOS_GET_VERSION			     ;;AN000;; Check that version matches VE
				RSIONA.INC
 0954  CD 21                 C1		  INT	  21H					     ;;AN000;;
 0956  3D 2605               C1		cmp	ax,new_expected_version	; compare with DOS version
 0959  74 AE                 C1		je check_amis
 095B  3D 1A05               C1		cmp	ax,alt_expected_version	; compare with DOS version
 095E  74 A9                 C1		je check_amis
 0960  3D 0004               C1		  CMP	  AX,EXPECTED_VERSION			     ;;AN000;; IF DOS_MAJOR is correct
 0963  75 03                 C1		  JNE $MIF25
 0965                        C1	alt_good_DOS:
 0965  F8                    C1		    CLC 					     ;;AN000;;	 Clear the carry flag
 0966  EB 0E                 C1		  JMP SHORT $MEN25
 0968                        C1	$MIF25:
 0968  BB FFFF               C1		    MOV     BX,NO_HANDLE			     ;;AN000;;	 No handle
 096B  B8 0001               C1		    MOV     AX,1				     ;;AN000;; Set message # 1
 096E  B9 0000               C1		    MOV     CX,NO_REPLACE			     ;;AN000;; No replacable parms
 0971  B2 00                 C1		    MOV     DL,NO_INPUT 			     ;;AN000;; No input
 0973  B6 FF                 C1		    MOV     DH,UTILITY_MSG_CLASS		     ;;AN000;; Utility class message
 0975  F9                    C1		    STC 					     ;;AN000;; Set Carry Flag
 0976                        C1	$MEN25:
 0976  C3                    C1		  RET						     ;;AN000;; Return
 0977                        C1	$M_VERSION_CHECK ENDP					     ;;
				
				include msgdcl.inc
			     C	; This Macro was removed from sysmsg.inc. We had to remove this
			     C	; macro and put it into it's own include file in order to clear up
			     C	; some assembly errors. MS MASM will not allow a public declaration
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-30
DOS - Message Retriever - $M_VERSION_CHECK Proc             

			     C	; during the second pass of the assembler. IBM MASM will allow this.
			     C	;
			     C	;
			     C	;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;	$M_DECLARE	     Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C					       ;
			     C	$M_DECLARE    macro	numcls	       ;
			     C	   $M_DCOUNT = 0		       ;
			     C	   REPT  numcls 		       ;
			     C	     $M_DCOUNT =  $M_DCOUNT + 1        ;
			     C	     $M_DECLARE2  %$M_DCOUNT	       ;
			     C	   ENDM 			       ;
			     C	
			     C	  IF COMR
			     C	    IFNDEF $M_RT2			;  If Resident table is not in this assembly,
			     C		EXTRN	$M_RT2:BYTE		;     Must be external
			     C	    ELSE
			     C		PUBLIC	$M_RT2
			     C	    ENDIF				;
			     C	  ELSE
			     C	    IFNDEF $M_RT			;  If Resident table is not in this assembly,
			     C		EXTRN	$M_RT:BYTE		;     Must be external
			     C	    ELSE
			     C		PUBLIC	$M_RT
			     C	    ENDIF				;
			     C	  ENDIF
			     C	
			     C	  $M_CHECK $M_GET_MSG_ADDRESS	      ;  If this subroutine is not in this assembly,
			     C	  $M_CHECK $M_MSGSERV_1 	      ;  If this subroutine is not in this assembly,
			     C	  $M_CHECK $M_MSGSERV_2 	      ;  If this subroutine is not in this assembly,
			     C	
			     C	ENDM				       ;
			     C					       ;
			     C	$M_DECLARE2   macro   innum	       ;
			     C	  IF NOT COMR			       ; IF Not resident COMMAND.COM
			     C	    IF NOT COMT 			 ; IF Not transient COMMAND.COM
			     C	      IFNDEF  $M_CLS_&innum		 ; IF class is not in this assembly,
			     C		IF	FARmsg			 ;
			     C		  EXTRN   $M_CLS_&innum:FAR	 ;    Must be external
			     C		ELSE				 ;
			     C		  EXTRN   $M_CLS_&innum:NEAR	 ;    Must be external
			     C		ENDIF				 ;
			     C	      ELSE				 ; ELSE
			     C		PUBLIC	$M_CLS_&innum		 ;    Label PUBLIC
			     C	      ENDIF				 ;
			     C	    ELSE				 ; ELSE
			     C	      IFDIF  <$M_CLS_&innum>,<$M_CLS_1>  ; IF NOT $M_CLS_1 or
			     C		IFDIF <$M_CLS_&innum>,<$M_CLS_2> ;   IF NOT $M_CLS_2 then
			     C		  IFNDEF  $M_CLS_&innum 	 ;     IF class is not in this assembly,
			     C		    IF	    FARmsg		 ;
			     C		      EXTRN   $M_CLS_&innum:FAR  ;	 Must be external
			     C		    ELSE			 ;
			     C		      EXTRN   $M_CLS_&innum:NEAR ;	 Must be external
			     C		    ENDIF			 ;
			     C		  ELSE				 ;     ELSE
			     C		    PUBLIC  $M_CLS_&innum	 ;	 Label PUBLIC
			     C		  ENDIF 			 ;
			     C		ENDIF				 ;
			     C	      ENDIF				 ;
			     C	    ENDIF				 ;
			     C	  ELSE					 ; ELSE
			     C	    IFDIF  <$M_CLS_&innum>,<$M_CLS_1>	 ; IF NOT $M_CLS_1 or
			     C	      IFDIF <$M_CLS_&innum>,<$M_CLS_2>	 ;   IF NOT $M_CLS_2 then
			     C		IFNDEF	$M_CLS_&innum		 ;     IF class is not in this assembly,
			     C		  IF	  FARmsg		 ;
			     C		    EXTRN   $M_CLS_&innum:FAR	 ;	 Must be external
			     C		  ELSE				 ;
			     C		    EXTRN   $M_CLS_&innum:NEAR	 ;	 Must be external
			     C		  ENDIF 			 ;
			     C		ELSE				 ;     ELSE
			     C		  PUBLIC  $M_CLS_&innum 	 ;	 Label PUBLIC
			     C		ENDIF				 ;
			     C	      ENDIF				 ;
			     C	    ENDIF				 ;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Page     1-31
DOS - Message Retriever - $M_VERSION_CHECK Proc             

			     C	  ENDIF 			       ;
			     C	ENDM				       ;
			     C					       ;
			     C	$M_CHECK      macro   parm	       ;
			     C	  IFNDEF  parm			       ; IF class is not in this assembly,
			     C	    IF	    FARmsg		       ;
			     C	      EXTRN   parm:FAR		       ;    Must be external
			     C	    ELSE			       ;
			     C	      EXTRN   parm:NEAR 	       ;    Must be external
			     C	    ENDIF			       ;
			     C	  ELSE
			     C	    IF COMR
			     C	    ELSE
			     C	      PUBLIC parm
			     C	    ENDIF
			     C	  ENDIF 			       ;
			     C	ENDM				       ;
			     C					       ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C					       ;
			     C					       ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	
			     C	
				
 0977				INIT	ENDS
				
					END

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-1


Macros:

		N a m e			Lines

$M_BUILD_PTRS  . . . . . . . . .  	  18
$M_CHECK . . . . . . . . . . . .  	  12
$M_DECLARE . . . . . . . . . . .  	  21
$M_DECLARE2  . . . . . . . . . .  	  41
$M_INC . . . . . . . . . . . . .  	   3
$M_MAKE  . . . . . . . . . . . .  	  10
$M_MAKE_COMR . . . . . . . . . .  	  21
$M_MAKE_COMT . . . . . . . . . .  	   5
$M_POPF  . . . . . . . . . . . .  	   5
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
MSG_SERVICES . . . . . . . . . .  	  34
MSG_SERVICES2  . . . . . . . . .  	  14
MSG_UTILNAME . . . . . . . . . .  	   5
TRAP . . . . . . . . . . . . . .  	   6

Structures and Records:

                N a m e                 Width   # fields
                                        Shift   Width   Mask    Initial

$M_CLASS_ID  . . . . . . . . . .  	0004	0003
  $M_CLS_ID  . . . . . . . . . .  	0000
  $M_COMMAND_VER . . . . . . . .  	0001
  $M_NUM_CLS_MSG . . . . . . . .  	0003
$M_COUNTRY_INFO  . . . . . . . .  	0072	000A
  $M_HEADER  . . . . . . . . . .  	0000
  $M_DATE_FORMAT . . . . . . . .  	0060
  $M_CURR_SEPARA . . . . . . . .  	0062
  $M_THOU_SEPARA . . . . . . . .  	0067
  $M_DECI_SEPARA . . . . . . . .  	0069
  $M_DATE_SEPARA . . . . . . . .  	006B
  $M_TIME_SEPARA . . . . . . . .  	006D
  $M_CURR_FORMAT . . . . . . . .  	006F
  $M_SIG_DIGS_CU . . . . . . . .  	0070
  $M_TIME_FORMAT . . . . . . . .  	0071
$M_ID  . . . . . . . . . . . . .  	0004	0002
  $M_NUM . . . . . . . . . . . .  	0000
  $M_TXT_PTR . . . . . . . . . .  	0002
$M_RES_ADDRS . . . . . . . . . .  	00A1	0017
  $M_EXT_ERR_ADDRS . . . . . . .  	0000
  $M_EXT_FILE  . . . . . . . . .  	0004
  $M_EXT_COMMAND . . . . . . . .  	0008
  $M_EXT_TERM  . . . . . . . . .  	000C
  $M_PARSE_COMMAND . . . . . . .  	0010
  $M_PARSE_ADDRS . . . . . . . .  	0014
  $M_PARSE_TERM  . . . . . . . .  	0018
  $M_CRIT_ADDRS  . . . . . . . .  	001C
  $M_CRIT_COMMAND  . . . . . . .  	0020
  $M_CRIT_TERM . . . . . . . . .  	0024
  $M_DISK_PROC_ADDR  . . . . . .  	0028
  $M_CLASS_ADDRS . . . . . . . .  	002C
  $M_CLS_TERM  . . . . . . . . .  	004C
  $M_DBCS_VEC  . . . . . . . . .  	0050
  $M_HANDLE  . . . . . . . . . .  	0054
  $M_SIZE  . . . . . . . . . . .  	0056
  $M_CRLF  . . . . . . . . . . .  	0057
  $M_CLASS . . . . . . . . . . .  	0059
  $M_RETURN_ADDR . . . . . . . .  	005A
  $M_MSG_NUM . . . . . . . . . .  	005C
  $M_DIVISOR . . . . . . . . . .  	005E
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-2


  $M_TEMP_BUF  . . . . . . . . .  	0060
  $M_BUF_TERM  . . . . . . . . .  	00A0
$M_SUBLIST_STRUC . . . . . . . .  	000B	0008
  $M_S_SIZE  . . . . . . . . . .  	0000
  $M_S_RESV  . . . . . . . . . .  	0001
  $M_S_VALUE . . . . . . . . . .  	0002
  $M_S_ID  . . . . . . . . . . .  	0006
  $M_S_FLAG  . . . . . . . . . .  	0007
  $M_S_MAXW  . . . . . . . . . .  	0008
  $M_S_MINW  . . . . . . . . . .  	0009
  $M_S_PAD . . . . . . . . . . .  	000A
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
  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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-3


  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
  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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-4


  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
  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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-5


  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
  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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-6


  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 . . . . . . . . . . .  	0010	PARA	PUBLIC	
  BATSEG . . . . . . . . . . . .  	003F	PARA	PUBLIC	
  ENVARENA . . . . . . . . . . .  	0000	PARA	PUBLIC	
  ENVIRONMENT  . . . . . . . . .  	0000	PARA	PUBLIC	
  INIT . . . . . . . . . . . . .  	0977	PARA	PUBLIC	
  TAIL . . . . . . . . . . . . .  	0000	PARA	PUBLIC	
TRANGROUP  . . . . . . . . . . .  	GROUP
  TRANCODE . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  TRANDATA . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  TRANSPACE  . . . . . . . . . .  	0000	BYTE	PUBLIC	
  TRANTAIL . . . . . . . . . . .  	0000	PARA	PUBLIC	

Symbols:            

                N a m e         	Type	 Value	 Attr

ABORT  . . . . . . . . . . . . .  	NUMBER	0000	
abort_char . . . . . . . . . . .  	V BYTE	0000	DATARES	External
ACCDEN . . . . . . . . . . . . .  	NUMBER	00E6	
ACCDENERR  . . . . . . . . . . .  	L NEAR	065B	INIT
ACCESS_MASK  . . . . . . . . . .  	NUMBER	000F	
ACTION_39  . . . . . . . . . . .  	NUMBER	0004	
ACTION_CREATED_OPENED  . . . . .  	NUMBER	0002	
ACTION_OPENED  . . . . . . . . .  	NUMBER	0001	
ACTION_REPLACED_OPENED . . . . .  	NUMBER	0003	
ADDR_INT_ABORT . . . . . . . . .  	NUMBER	0080	
ADDR_INT_COMMAND . . . . . . . .  	NUMBER	0084	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-7


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	
ALLOWED_FAIL . . . . . . . . . .  	NUMBER	0008	
ALLOWED_IGNORE . . . . . . . . .  	NUMBER	0020	
ALLOWED_RETRY  . . . . . . . . .  	NUMBER	0010	
ALTPIPECHR . . . . . . . . . . .  	NUMBER	007C	
ALTVECT  . . . . . . . . . . . .  	ALIAS	 FALSE		
ALT_EXPECTED_VERSION . . . . . .  	NUMBER	1A05	
ALT_GOOD_DOS . . . . . . . . . .  	L NEAR	0965	INIT
ALT_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
ALT_MINOR_VERSION  . . . . . . .  	NUMBER	001A	
AMIS_ID  . . . . . . . . . . . .  	L NEAR	0856	INIT
AMIS_ID_MSG  . . . . . . . . . .  	L NEAR	085B	INIT
AMIS_ID_MSG_END  . . . . . . . .  	L NEAR	0862	INIT
amis_sign  . . . . . . . . . . .  	L NEAR	0846	INIT	Global
AMIS_SIGN_SEGMENT  . . . . . . .  	ALIAS	 RESGROUP		
ANULL  . . . . . . . . . . . . .  	NUMBER	0000	
APPENDDOS  . . . . . . . . . . .  	NUMBER	B702	
APPENDGETSTATE . . . . . . . . .  	NUMBER	B706	
APPENDINSTALL  . . . . . . . . .  	NUMBER	B700	
APPENDSETSTATE . . . . . . . . .  	NUMBER	B707	
APPENDTRUENAME . . . . . . . . .  	NUMBER	B711	
append_state . . . . . . . . . .  	V WORD	0000	DATARES	External
ARENA_OWNER_SYSTEM . . . . . . .  	NUMBER	0000	
ARENA_SIGNATURE_END  . . . . . .  	NUMBER	005A	
ARENA_SIGNATURE_NORMAL . . . . .  	NUMBER	004D	
ARGBLEN  . . . . . . . . . . . .  	NUMBER	0100	
ARGMAX . . . . . . . . . . . . .  	NUMBER	0040	
ARGSDONE . . . . . . . . . . . .  	L NEAR	03E7	INIT
ARGSDONEJ  . . . . . . . . . . .  	L NEAR	02ED	INIT
ARGSDONEJ2 . . . . . . . . . . .  	L NEAR	03C3	INIT
ARGSDONEJ3 . . . . . . . . . . .  	L NEAR	0245	INIT
ARGSDONEJUMP . . . . . . . . . .  	L NEAR	0287	INIT
ARG_BUF_OVFLOW . . . . . . . . .  	NUMBER	0002	
ARG_CNT_ERROR  . . . . . . . . .  	NUMBER	0001	
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	
AUTOBAT  . . . . . . . . . . . .  	V BYTE	0000	INIT	External
AUTO_COMMIT_WRITE  . . . . . . .  	NUMBER	4000	

BADCOMACCMES_PTR . . . . . . . .  	NUMBER	01D2	
BADCOMLKMES_PTR  . . . . . . . .  	NUMBER	01D1	
BADCSPFL . . . . . . . . . . . .  	V BYTE	0000	INIT	External
BADFAT . . . . . . . . . . . . .  	NUMBER	00DC	
BADFAT_OP_SEG  . . . . . . . . .  	V WORD	0000	DATARES	External
BADPARM_PTR  . . . . . . . . . .  	NUMBER	000A	
BADSETCON  . . . . . . . . . . .  	L NEAR	030B	INIT
BADSWT_PTR . . . . . . . . . . .  	NUMBER	0003	
BADVER . . . . . . . . . . . . .  	NUMBER	01CD	
BATCH  . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
BATCHTYPE  . . . . . . . . . . .  	NUMBER	0000	
BATLEN . . . . . . . . . . . . .  	NUMBER	0020	
BAT_NOT_OPEN . . . . . . . . . .  	NUMBER	-0001	
BAT_OPEN_HANDLE  . . . . . . . .  	NUMBER	0013	
BELL . . . . . . . . . . . . . .  	NUMBER	0007	
BIN_HEX_BYTE . . . . . . . . . .  	NUMBER	0013	
BIN_HEX_DWORD  . . . . . . . . .  	NUMBER	0033	
BIN_HEX_TYPE . . . . . . . . . .  	NUMBER	0003	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-8


BIN_HEX_WORD . . . . . . . . . .  	NUMBER	0023	
BLANK  . . . . . . . . . . . . .  	NUMBER	0020	
BMEMMES  . . . . . . . . . . . .  	NUMBER	00E7	
bslash . . . . . . . . . . . . .  	V BYTE	0000	INIT	External
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	
BUILDENV . . . . . . . . . . . .  	L NEAR	0129	INIT

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	
CHARMSG  . . . . . . . . . . . .  	NUMBER	0000	
CHAR_END . . . . . . . . . . . .  	NUMBER	00CF	
CHAR_FIELD_ASCIIZ  . . . . . . .  	NUMBER	0010	
CHAR_FIELD_CHAR  . . . . . . . .  	NUMBER	0000	
CHAR_OPER  . . . . . . . . . . .  	NUMBER	0037	
CHAR_START . . . . . . . . . . .  	NUMBER	00C9	
CHAR_TYPE  . . . . . . . . . . .  	NUMBER	0000	
CHDIR  . . . . . . . . . . . . .  	NUMBER	003B	
CHECK_AMIS . . . . . . . . . . .  	L NEAR	0909	INIT
CHECK_AMIS_DONE  . . . . . . . .  	L NEAR	0940	INIT
CHECK_AMIS_LOOP  . . . . . . . .  	L NEAR	0912	INIT
CHECK_AMIS_NEXT  . . . . . . . .  	L NEAR	093B	INIT
CHECK_AMIS_UNSUP . . . . . . . .  	L NEAR	093F	INIT
CHECK_YES_NO . . . . . . . . . .  	NUMBER	0023	
CHKOTHERARGS . . . . . . . . . .  	L NEAR	02F0	INIT
CHKSRCHSPEC  . . . . . . . . . .  	L NEAR	0345	INIT
CHKSUM . . . . . . . . . . . . .  	L NEAR	0000	INIT	External
CHMOD  . . . . . . . . . . . . .  	NUMBER	0043	
CHUCKENV . . . . . . . . . . . .  	V BYTE	0000	INIT	External
CLOSE  . . . . . . . . . . . . .  	NUMBER	003E	
COLON  . . . . . . . . . . . . .  	NUMBER	003A	
COLON_CHAR . . . . . . . . . . .  	NUMBER	003A	
COMBAD . . . . . . . . . . . . .  	NUMBER	00DD	
COMBUFLEN  . . . . . . . . . . .  	NUMBER	0080	
COMDRV . . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
command_c_syn  . . . . . . . . .  	V BYTE	0000	INIT	External
command_d_syn  . . . . . . . . .  	V BYTE	0000	INIT	External
command_e_syn  . . . . . . . . .  	V BYTE	0000	INIT	External
command_f_syn  . . . . . . . . .  	V BYTE	0000	INIT	External
command_m_syn  . . . . . . . . .  	V BYTE	0000	INIT	External
command_p_syn  . . . . . . . . .  	V BYTE	0000	INIT	External
COMMIT . . . . . . . . . . . . .  	NUMBER	0068	
comnd1_addr  . . . . . . . . . .  	V DWORD	0000	INIT	External
comnd1_syn . . . . . . . . . . .  	V WORD	0000	INIT	External
COMPRMT1 . . . . . . . . . . . .  	NUMBER	00DE	
COMPRMT1_SEG . . . . . . . . . .  	V WORD	0000	DATARES	External
COMPRMT1_SEG2  . . . . . . . . .  	V WORD	0000	DATARES	External
COMR . . . . . . . . . . . . . .  	NUMBER	FFFF	
COMRETURNS . . . . . . . . . . .  	L NEAR	0420	INIT
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-9


COMSPEC  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
COMSPECNOFND . . . . . . . . . .  	L NEAR	0462	INIT
COMSPECT . . . . . . . . . . . .  	V BYTE	0000	INIT	External
comspec_end  . . . . . . . . . .  	V WORD	0000	DATARES	External
comspec_print  . . . . . . . . .  	V WORD	0000	DATARES	External
comspstring  . . . . . . . . . .  	V BYTE	0000	INIT	External
COMT . . . . . . . . . . . . . .  	NUMBER	0000	
COMTRLOOP  . . . . . . . . . . .  	L NEAR	0372	INIT
COM_FCB1 . . . . . . . . . . . .  	V DWORD	0000	DATARES	External
COM_FCB2 . . . . . . . . . . . .  	V DWORD	0000	DATARES	External
COM_PTR  . . . . . . . . . . . .  	V DWORD	0000	DATARES	External
com_xlat_addr  . . . . . . . . .  	V WORD	0000	DATARES	External
CONPROC  . . . . . . . . . . . .  	L NEAR	0000	INIT	Global
CONTC  . . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
COPYCOMSP  . . . . . . . . . . .  	L NEAR	046D	INIT
COPYCOMSPLOOP  . . . . . . . . .  	L NEAR	047E	INIT
COUNTLOOP  . . . . . . . . . . .  	L NEAR	035F	INIT
cpdrv  . . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
CPSW_OFF . . . . . . . . . . . .  	NUMBER	0000	
CR . . . . . . . . . . . . . . .  	NUMBER	000D	
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	
critical_msg_start . . . . . . .  	V BYTE	0000	DATARES	External
CRITIFS  . . . . . . . . . . . .  	NUMBER	0006	
CRITMEM  . . . . . . . . . . . .  	NUMBER	0001	
CRITNET  . . . . . . . . . . . .  	NUMBER	0005	
CRITSFT  . . . . . . . . . . . .  	NUMBER	0001	
CRITSHARE  . . . . . . . . . . .  	NUMBER	0001	
CRIT_MSG_CLASS . . . . . . . . .  	NUMBER	0003	
crit_msg_off . . . . . . . . . .  	V WORD	0000	DATARES	External
crit_msg_seg . . . . . . . . . .  	V WORD	0000	DATARES	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	
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	

DATARESEND . . . . . . . . . . .  	V BYTE	0000	DATARES	External
DATEMSG  . . . . . . . . . . . .  	NUMBER	0000	
DATE_MD  . . . . . . . . . . . .  	NUMBER	0014	
DATE_MDY_2 . . . . . . . . . . .  	NUMBER	0024	
DATE_MDY_4 . . . . . . . . . . .  	NUMBER	0034	
DATE_TYPE  . . . . . . . . . . .  	NUMBER	0004	
DATINIT  . . . . . . . . . . . .  	L FAR 	0000	TRANCODE	External
DBCS . . . . . . . . . . . . . .  	NUMBER	0000	
dbcs_vector_addr . . . . . . . .  	V WORD	0000	DATARES	External
DEALLOC  . . . . . . . . . . . .  	NUMBER	0049	
DEBUG  . . . . . . . . . . . . .  	NUMBER	0000	
DEVEMES  . . . . . . . . . . . .  	NUMBER	00DA	
DEVE_OP_SEG  . . . . . . . . . .  	V WORD	0000	DATARES	External
DEVE_OP_SEG2 . . . . . . . . . .  	V WORD	0000	DATARES	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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-10


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_PROC  . . . . . . . . . . .  	NUMBER	0000	
DISK_RESET . . . . . . . . . . .  	NUMBER	000D	
DISPLAYMSG . . . . . . . . . . .  	NUMBER	0000	
disp_class . . . . . . . . . . .  	V BYTE	0000	DATARES	External
DODATE . . . . . . . . . . . . .  	L NEAR	05BC	INIT
DODTTM . . . . . . . . . . . . .  	L NEAR	067A	INIT
DOLLAR . . . . . . . . . . . . .  	NUMBER	0024	
DOPRT  . . . . . . . . . . . . .  	L NEAR	03D6	INIT
DOS_BUF_KEYB_INP . . . . . . . .  	NUMBER	000A	
DOS_CLOSE_FILE . . . . . . . . .  	NUMBER	003E	
DOS_CLR_KEYB_BUF . . . . . . . .  	NUMBER	000C	
DOS_CLR_KEYB_BUF_MASK  . . . . .  	NUMBER	00C0	
DOS_CON_INP  . . . . . . . . . .  	NUMBER	0008	
DOS_DIR_CON_INP  . . . . . . . .  	NUMBER	0007	
DOS_DISP_CHAR  . . . . . . . . .  	NUMBER	0002	
DOS_DISP_STRING  . . . . . . . .  	NUMBER	0009	
DOS_EXTENDED_OPEN  . . . . . . .  	NUMBER	6C00	
DOS_GET_ADDR . . . . . . . . . .  	NUMBER	0008	
DOS_GET_COUNTRY  . . . . . . . .  	NUMBER	0038	
DOS_GET_CRITICAL . . . . . . . .  	NUMBER	0004	
DOS_GET_DBCS_INFO  . . . . . . .  	NUMBER	6300	
DOS_GET_EXTENDED . . . . . . . .  	NUMBER	0000	
DOS_GET_EXT_ERROR  . . . . . . .  	NUMBER	0059	
DOS_GET_EXT_ERROR_BX . . . . . .  	NUMBER	0000	
DOS_GET_EXT_PARSE_ADD  . . . . .  	NUMBER	122E	
DOS_GET_FILE . . . . . . . . . .  	NUMBER	0006	
DOS_GET_PARSE  . . . . . . . . .  	NUMBER	0002	
DOS_GET_VERSION  . . . . . . . .  	NUMBER	0030	
DOS_IOCTL_GET_INFO . . . . . . .  	NUMBER	4400	
DOS_IOCTL_SET_INFO . . . . . . .  	NUMBER	4401	
DOS_KEYB_INP . . . . . . . . . .  	NUMBER	0001	
DOS_LSEEK_FILE . . . . . . . . .  	NUMBER	4200	
DOS_READ_BYTE  . . . . . . . . .  	NUMBER	003F	
DOS_SET_ADDR . . . . . . . . . .  	NUMBER	0009	
DOS_WRITE_HANDLE . . . . . . . .  	NUMBER	0040	
DOT_CHR  . . . . . . . . . . . .  	NUMBER	002E	
DOT_COLON  . . . . . . . . . . .  	NUMBER	2E3A	
DOT_QMARK  . . . . . . . . . . .  	NUMBER	2E3F	
DO_WORD  . . . . . . . . . . . .  	NUMBER	4F44	
DO_XA  . . . . . . . . . . . . .  	NUMBER	-0001	
DPBSIZ . . . . . . . . . . . . .  	NUMBER	0021	
DRV0 . . . . . . . . . . . . . .  	L NEAR	0697	INIT
DRVNUM . . . . . . . . . . . . .  	NUMBER	00D9	
DRVNUM_OP_SEG  . . . . . . . . .  	V WORD	0000	DATARES	External
DRVNUM_OP_SEG2 . . . . . . . . .  	V WORD	0000	DATARES	External
DskErr . . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
DSKSIZ . . . . . . . . . . . . .  	NUMBER	000D	
dswitch  . . . . . . . . . . . .  	V BYTE	0000	INIT	External
DUP_PDB  . . . . . . . . . . . .  	NUMBER	0055	

EchoFlag . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
ECOMLOC  . . . . . . . . . . . .  	V WORD	0000	INIT	External
ECOMSPEC . . . . . . . . . . . .  	V BYTE	0000	ENVIRONMENT	External
ECS_CALL . . . . . . . . . . . .  	NUMBER	0063	
EMGDEBUG . . . . . . . . . . . .  	NUMBER	0000	
EMS_MAP_BUFF_SIZE  . . . . . . .  	NUMBER	000C	
ENDBATMES  . . . . . . . . . . .  	NUMBER	00E0	
endinit  . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
END_OF_LINE  . . . . . . . . . .  	NUMBER	-0001	
END_OF_LINE_IN . . . . . . . . .  	NUMBER	000D	
END_OF_LINE_OUT  . . . . . . . .  	NUMBER	0000	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-11


ENTRYPOINT . . . . . . . . . . .  	NUMBER	00C0	
ENVBIG . . . . . . . . . . . . .  	NUMBER	8000	
ENVEXIT  . . . . . . . . . . . .  	L NEAR	056B	INIT
ENVIREND . . . . . . . . . . . .  	V BYTE	0000	ENVIRONMENT	External
ENVIRONPASSED  . . . . . . . . .  	L NEAR	0134	INIT
ENVIRONSIZ . . . . . . . . . . .  	NUMBER	00A0	
ENVIRONSIZ2  . . . . . . . . . .  	NUMBER	0092	
ENVIRSEG . . . . . . . . . . . .  	V WORD	0000	DATARES	External
EnvMax . . . . . . . . . . . . .  	V WORD	0000	INIT	External
EnvMaximum . . . . . . . . . . .  	L NEAR	04A8	INIT	Global
ENVNOERR . . . . . . . . . . . .  	L NEAR	0577	INIT
ENVSET . . . . . . . . . . . . .  	L NEAR	0592	INIT
ENVSETOK . . . . . . . . . . . .  	L NEAR	05AE	INIT
EnvSiz . . . . . . . . . . . . .  	V WORD	0000	INIT	External
ENVSML . . . . . . . . . . . . .  	NUMBER	00A0	
equalsign  . . . . . . . . . . .  	V BYTE	0000	INIT	External
EQUAL_CHR  . . . . . . . . . . .  	NUMBER	003D	
ERR15MES . . . . . . . . . . . .  	NUMBER	00DB	
ERR15_OP_SEG . . . . . . . . . .  	V WORD	0000	DATARES	External
ERR15_OP_SEG2  . . . . . . . . .  	V WORD	0000	DATARES	External
ERR15_OP_SEG3  . . . . . . . . .  	V WORD	0000	DATARES	External
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	
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_CLASS_39 . . . . . . . . .  	NUMBER	0001	
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-12


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	
eswitch  . . . . . . . . . . . .  	V BYTE	0000	INIT	External
ESWITCHOK  . . . . . . . . . . .  	L NEAR	02C1	INIT
EXEBAD . . . . . . . . . . . . .  	NUMBER	00E2	
EXEC . . . . . . . . . . . . . .  	NUMBER	004B	
EXECEMES . . . . . . . . . . . .  	NUMBER	00E1	
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	
extended_msg_start . . . . . . .  	V BYTE	0000	DATARES	External
EXTHANDLE  . . . . . . . . . . .  	NUMBER	0067	
extmsgend  . . . . . . . . . . .  	V BYTE	0000	DATARES	External
EXTOPEN  . . . . . . . . . . . .  	NUMBER	006C	
EXT_CRLF_CLASS . . . . . . . . .  	NUMBER	0081	
EXT_ERR_39 . . . . . . . . . . .  	NUMBER	0027	
EXT_ERR_CLASS  . . . . . . . . .  	NUMBER	0001	
EXT_EXISTS_FAIL  . . . . . . . .  	NUMBER	0000	
EXT_EXISTS_OPEN  . . . . . . . .  	NUMBER	0001	
EXT_FILE_NOT_EXISTS  . . . . . .  	NUMBER	0004	
ext_msg  . . . . . . . . . . . .  	V BYTE	0000	INIT	External
EXT_MSG_CLASS  . . . . . . . . .  	NUMBER	0001	
EXT_NEXISTS_CREATE . . . . . . .  	NUMBER	0010	
EXT_OPEN_I24_OFF . . . . . . . .  	NUMBER	0002	
EXT_OPEN_ON  . . . . . . . . . .  	NUMBER	0001	

FAILOK . . . . . . . . . . . . .  	L NEAR	0255	INIT
FAIL_ALLOWED . . . . . . . . . .  	NUMBER	0008	
FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
FARMSG . . . . . . . . . . . . .  	NUMBER	0000	
FBADSWITCH . . . . . . . . . . .  	NUMBER	4000	
FCB  . . . . . . . . . . . . . .  	NUMBER	005C	
FCBDEVICE  . . . . . . . . . . .  	NUMBER	0040	
FCBMASK  . . . . . . . . . . . .  	NUMBER	00C0	
FCBNETWORK . . . . . . . . . . .  	NUMBER	0080	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-13


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	
fFail  . . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
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_NEXT  . . . . . . . . . . .  	NUMBER	004F	
FORMFD . . . . . . . . . . . . .  	NUMBER	000C	
FPARSE . . . . . . . . . . . . .  	NUMBER	0001	
FRETMES  . . . . . . . . . . . .  	NUMBER	00E9	
fslash . . . . . . . . . . . . .  	V BYTE	0000	INIT	External
FSPCHK . . . . . . . . . . . . .  	NUMBER	0004	
FSWITCH  . . . . . . . . . . . .  	NUMBER	8000	
FSWITCHALLOWED . . . . . . . . .  	NUMBER	0002	
fucase_addr  . . . . . . . . . .  	V WORD	0000	DATARES	External
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	

GETCURRENTPSP  . . . . . . . . .  	NUMBER	0062	
GETEXTCNTRY  . . . . . . . . . .  	NUMBER	0065	
GETEXTENDEDERROR . . . . . . . .  	NUMBER	0059	
GETINTERIMMODE . . . . . . . . .  	NUMBER	0002	
GETLEADBTBL  . . . . . . . . . .  	NUMBER	0000	
GETMSG . . . . . . . . . . . . .  	NUMBER	0000	
GETSETCDPG . . . . . . . . . . .  	NUMBER	0066	
GETSETMEDIAID  . . . . . . . . .  	NUMBER	0069	
GETSTRLEN  . . . . . . . . . . .  	L NEAR	06A7	INIT
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-14


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_MSG_PTR  . . . . . . . . . .  	N PROC	078A	INIT	Length = 0037
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	
GOTENVIR . . . . . . . . . . . .  	L NEAR	04AC	INIT
GOTTHEENVIR  . . . . . . . . . .  	L NEAR	0139	INIT

HALTMES  . . . . . . . . . . . .  	NUMBER	00E8	
HANDLE_FAIL_I24  . . . . . . . .  	NUMBER	0100	
HEADER_PTR . . . . . . . . . . .  	NUMBER	01D0	
HERE . . . . . . . . . . . . . .  	L NEAR	0015	INIT
HOME . . . . . . . . . . . . . .  	NUMBER	000B	
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		
ICOUNT0  . . . . . . . . . . . .  	L NEAR	0739	INIT
ICOUNTX  . . . . . . . . . . . .  	L NEAR	0747	INIT
IFIND  . . . . . . . . . . . . .  	L NEAR	06F9	INIT
IFIND1 . . . . . . . . . . . . .  	L NEAR	0703	INIT
IFIND11  . . . . . . . . . . . .  	L NEAR	0706	INIT
IFIND12  . . . . . . . . . . . .  	L NEAR	0727	INIT
IFIND2 . . . . . . . . . . . . .  	L NEAR	0738	INIT
IFINDE . . . . . . . . . . . . .  	L NEAR	06F1	INIT
IFSFUNC_INSTALLED  . . . . . . .  	NUMBER	00FF	
IFSFUNC_INSTALL_CHECK  . . . . .  	NUMBER	0500	
IFS_GET_ERR_TEXT . . . . . . . .  	NUMBER	0502	
IFS_IOCTL  . . . . . . . . . . .  	NUMBER	006B	
IGNORE_ALLOWED . . . . . . . . .  	NUMBER	0020	
INITADD  . . . . . . . . . . . .  	V DWORD	0000	INIT	External
INITBAT  . . . . . . . . . . . .  	L 	0000	BATSEG
INITCTRLC  . . . . . . . . . . .  	NUMBER	0004	
initend  . . . . . . . . . . . .  	V WORD	0000	INIT	External
InitFlag . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
INITINIT . . . . . . . . . . . .  	NUMBER	0001	
INITSPECIAL  . . . . . . . . . .  	NUMBER	0002	
INIT_CHK_DELIM . . . . . . . . .  	L NEAR	01D8	INIT
init_contc_specialcase . . . . .  	L NEAR	077D	INIT	Global
init_parse . . . . . . . . . . .  	V DWORD	0000	INIT	External
INOTROOT . . . . . . . . . . . .  	L NEAR	03AA	INIT
INPUTMSG . . . . . . . . . . . .  	NUMBER	0000	
INSTALLED  . . . . . . . . . . .  	NUMBER	FFFF	
INSTALLEDDATA  . . . . . . . . .  	NUMBER	0000	
INTBASE  . . . . . . . . . . . .  	NUMBER	0080	
INTERIMMODE  . . . . . . . . . .  	NUMBER	0001	
INTERNAT . . . . . . . . . . . .  	ALIAS	 FALSE		
INTERNATIONAL  . . . . . . . . .  	NUMBER	0038	
INTERNAT_BLOCK_MAX . . . . . . .  	NUMBER	0020	
INTERNAT_INFO  . . . . . . . . .  	V BYTE	0000	INIT	External
INTTAB . . . . . . . . . . . . .  	NUMBER	0020	
INT_24_ERROR . . . . . . . . . .  	NUMBER	2000	
INT_2E . . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-15


INT_KEEP_PROCESS . . . . . . . .  	NUMBER	0027	
INT_SPOOLER  . . . . . . . . . .  	NUMBER	0028	
INT_TERMINATE  . . . . . . . . .  	NUMBER	0022	
INV_CP_TAG . . . . . . . . . . .  	NUMBER	0000	
IN_WORD  . . . . . . . . . . . .  	NUMBER	4E49	
IOCTL  . . . . . . . . . . . . .  	NUMBER	0044	
IO_MODE_ID . . . . . . . . . . .  	NUMBER	0002	
IO_SAVE  . . . . . . . . . . . .  	V WORD	0000	DATARES	External
ISADEVICE  . . . . . . . . . . .  	L NEAR	0312	INIT
ISCASB1  . . . . . . . . . . . .  	L NEAR	074D	INIT
ISCASB2  . . . . . . . . . . . .  	L NEAR	0752	INIT
ISCASBX  . . . . . . . . . . . .  	L NEAR	0754	INIT
itestkanj  . . . . . . . . . . .  	L NEAR	0000	INIT	External
IUPCONV  . . . . . . . . . . . .  	N PROC	075A	INIT	Length = 0023
IUPCONV_END  . . . . . . . . . .  	L NEAR	077C	INIT
IUSESLASH  . . . . . . . . . . .  	L NEAR	0159	INIT

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

KANJI  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KAUTOBAT . . . . . . . . . . . .  	V BYTE	0000	INIT	External
KEEP_PROCESS . . . . . . . . . .  	NUMBER	0031	
KOREA  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KOREA_COUNTRY_CODE . . . . . . .  	NUMBER	0052	

LABRACKET  . . . . . . . . . . .  	NUMBER	003C	
lcasea . . . . . . . . . . . . .  	V BYTE	0000	INIT	External
lcasez . . . . . . . . . . . . .  	V BYTE	0000	INIT	External
LEFT_ALIGN . . . . . . . . . . .  	NUMBER	0000	
LENGTH_CALL  . . . . . . . . . .  	NUMBER	0004	
LESSARGS_PTR . . . . . . . . . .  	NUMBER	0002	
LF . . . . . . . . . . . . . . .  	NUMBER	000A	
LINESPERPAGE . . . . . . . . . .  	NUMBER	0019	
LOADCOM  . . . . . . . . . . . .  	L NEAR	0000	INIT	External
LOADMSG  . . . . . . . . . . . .  	NUMBER	0000	
LOCKOPER . . . . . . . . . . . .  	NUMBER	005C	
LOCUS_39 . . . . . . . . . . . .  	NUMBER	0001	
LODCOM . . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
LOWEST_4CH_VERSION . . . . . . .  	NUMBER	0002	
LOW_NIB_MASK . . . . . . . . . .  	NUMBER	000F	
LPAREN . . . . . . . . . . . . .  	NUMBER	0028	
LSEEK  . . . . . . . . . . . . .  	NUMBER	0042	
LTPA . . . . . . . . . . . . . .  	V WORD	0000	DATARES	External

MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MAXBUCKETINPAGE  . . . . . . . .  	NUMBER	0002	
MAXBUFFINBUCKET  . . . . . . . .  	NUMBER	000F	
MAXOK  . . . . . . . . . . . . .  	L NEAR	051E	INIT
MAX_NEST . . . . . . . . . . . .  	NUMBER	000A	
MEMS . . . . . . . . . . . . . .  	NUMBER	0001	
MEMSIZ . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
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	
MOVEMES  . . . . . . . . . . . .  	L NEAR	0790	INIT
MREAD  . . . . . . . . . . . . .  	NUMBER	00D7	
MSGDATA  . . . . . . . . . . . .  	NUMBER	0000	
MSG_SER_CLASS  . . . . . . . . .  	NUMBER	0000	
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	
MWRITE . . . . . . . . . . . . .  	NUMBER	00D8	
MYSEG  . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
MYSEG1 . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
MYSEG2 . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-16



NEARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
nest . . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
NEWLIN . . . . . . . . . . . . .  	NUMBER	00EB	
NEW_COUNTRY_SIZE . . . . . . . .  	NUMBER	0026	
NEW_EXPECTED_VERSION . . . . . .  	NUMBER	2605	
NEW_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
NEW_MINOR_VERSION  . . . . . . .  	NUMBER	0026	
NLSFUNC  . . . . . . . . . . . .  	NUMBER	0014	
NOABAT . . . . . . . . . . . . .  	L NEAR	0614	INIT
NOAUTSET . . . . . . . . . . . .  	L NEAR	05F8	INIT
NOBATCHSEG . . . . . . . . . . .  	L NEAR	04FE	INIT
NOCHECKSTDIN . . . . . . . . . .  	NUMBER	FFFF	
NOCHECKSTDOUT  . . . . . . . . .  	NUMBER	FFFF	
NOCOMDRV . . . . . . . . . . . .  	L NEAR	0192	INIT
NODTTM . . . . . . . . . . . . .  	L NEAR	068A	INIT
NOHANDMES  . . . . . . . . . . .  	NUMBER	00E4	
NOKABAT  . . . . . . . . . . . .  	L NEAR	0652	INIT
NONINTERIMMODE . . . . . . . . .  	NUMBER	0000	
NORMPERLIN . . . . . . . . . . .  	NUMBER	0001	
NOTKANJ4 . . . . . . . . . . . .  	L NEAR	071B	INIT
NOTWIDENV  . . . . . . . . . . .  	L NEAR	018B	INIT
NOT_EXISTS_MASK  . . . . . . . .  	NUMBER	00F0	
NOT_EX_FAIL_EX_OPEN  . . . . . .  	NUMBER	0101	
NOVERCHECKMSG  . . . . . . . . .  	NUMBER	0000	
NO_CODE_PAGE_CHECK . . . . . . .  	NUMBER	0100	
NO_CONT_FLAG . . . . . . . . . .  	NUMBER	0000	
NO_CRIT_OPEN . . . . . . . . . .  	NUMBER	2000	
NO_ECHO  . . . . . . . . . . . .  	NUMBER	0000	
NO_ECHO_CHAR . . . . . . . . . .  	NUMBER	0040	
NO_HANDLE  . . . . . . . . . . .  	NUMBER	FFFF	
NO_HANDLE_OUT  . . . . . . . . .  	NUMBER	-0001	
NO_INPUT . . . . . . . . . . . .  	NUMBER	0000	
NO_PERMCOM . . . . . . . . . . .  	L NEAR	080B	INIT
NO_REPLACE . . . . . . . . . . .  	NUMBER	0000	
NO_SLASH_MSG . . . . . . . . . .  	L NEAR	081D	INIT
NO_SUBST . . . . . . . . . . . .  	NUMBER	0000	
NO_XA_SEG  . . . . . . . . . . .  	NUMBER	-0001	
NULL . . . . . . . . . . . . . .  	NUMBER	0000	
NULLCOMMAND  . . . . . . . . . .  	NUMBER	0001	
NULLRPAREN . . . . . . . . . . .  	NUMBER	0029	
number_subst . . . . . . . . . .  	V BYTE	0000	DATARES	External
NUMMSG . . . . . . . . . . . . .  	NUMBER	0000	
num_positionals  . . . . . . . .  	V WORD	0000	INIT	External
NXTCHAR  . . . . . . . . . . . .  	L NEAR	06A9	INIT
Nxtstr . . . . . . . . . . . . .  	L NEAR	0551	INIT	Global

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	
OKCPYSTR . . . . . . . . . . . .  	L NEAR	0569	INIT
OKDOS  . . . . . . . . . . . . .  	L NEAR	0019	INIT
OK_TO_MOVE . . . . . . . . . . .  	L NEAR	04D9	INIT
oldenv . . . . . . . . . . . . .  	V WORD	0000	INIT	External
OldTerm  . . . . . . . . . . . .  	V DWORD	0000	DATARES	External
OLD_COUNTRY_SIZE . . . . . . . .  	NUMBER	0018	
old_parse_ptr  . . . . . . . . .  	V WORD	0000	INIT	External
ONE_SUBST  . . . . . . . . . . .  	NUMBER	0001	
OPEN . . . . . . . . . . . . . .  	NUMBER	003D	
OPENERR  . . . . . . . . . . . .  	L NEAR	0661	INIT
OPEN_FOR_BOTH  . . . . . . . . .  	NUMBER	0002	
OPEN_FOR_READ  . . . . . . . . .  	NUMBER	0000	
OPEN_FOR_WRITE . . . . . . . . .  	NUMBER	0001	
OTHER_FUCASE . . . . . . . . . .  	L NEAR	076E	INIT
OUTENVERR_PTR  . . . . . . . . .  	NUMBER	01CF	

PARENT . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
PARM_BLOCK_SIZE  . . . . . . . .  	NUMBER	000B	
PARM_OFF_POS . . . . . . . . . .  	WORD	0002	
parsemes_ptr . . . . . . . . . .  	V WORD	0000	DATARES	External
parse_command  . . . . . . . . .  	V BYTE	0000	INIT	External
PARSE_COMMAND_LINE . . . . . . .  	L NEAR	01AC	INIT
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-17


PARSE_COMMAND_LINE_JMP . . . . .  	L NEAR	0284	INIT
PARSE_CONT . . . . . . . . . . .  	L NEAR	020F	INIT
PARSE_ERR_CLASS  . . . . . . . .  	NUMBER	0002	
PARSE_FILE_DESCRIPTOR  . . . . .  	NUMBER	0029	
PARSE_LINE_ERROR . . . . . . . .  	L NEAR	01CB	INIT
PARSE_LINE_ERROR_DISP  . . . . .  	L NEAR	0201	INIT
PARSE_MSG_CLASS  . . . . . . . .  	NUMBER	0002	
parse_msg_start  . . . . . . . .  	V BYTE	0000	DATARES	External
pars_msg_off . . . . . . . . . .  	V WORD	0000	INIT	External
pars_msg_seg . . . . . . . . . .  	V WORD	0000	INIT	External
PATHCHRCMPR  . . . . . . . . . .  	L NEAR	06DC	INIT
PATHPARSE  . . . . . . . . . . .  	NUMBER	0061	
PATHSTRING . . . . . . . . . . .  	V BYTE	0000	ENVIRONMENT	External
PATH_SEP . . . . . . . . . . . .  		0002	
PATRICIDE  . . . . . . . . . . .  	NUMBER	00EA	
PDB_APPEND . . . . . . . . . . .  	BYTE	003D	
PDB_INTERCON . . . . . . . . . .  	BYTE	003C	
PERMCOM  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
PERMCOMOK  . . . . . . . . . . .  	L NEAR	026A	INIT
PERMCOM_END  . . . . . . . . . .  	L NEAR	082C	INIT
PERMCOM_SLASH_MSG  . . . . . . .  	L NEAR	07FC	INIT
PLUS_CHR . . . . . . . . . . . .  	NUMBER	002B	
PRDATTM  . . . . . . . . . . . .  	V BYTE	0000	INIT	External
printf_init  . . . . . . . . . .  	L FAR 	0000	TRANCODE	External
PRINT_MESSAGE  . . . . . . . . .  	L NEAR	06CC	INIT
PROMPT . . . . . . . . . . . . .  	NUMBER	00DF	
PTR_OFF_POS  . . . . . . . . . .  	NUMBER	0005	
PTR_SEG_POS  . . . . . . . . . .  	NUMBER	0007	

RABRACKET  . . . . . . . . . . .  	NUMBER	003E	
RAW_CON_INPUT  . . . . . . . . .  	NUMBER	0007	
RAW_CON_IO . . . . . . . . . . .  	NUMBER	0006	
RBADNAM  . . . . . . . . . . . .  	NUMBER	00E5	
RCCLLOOP . . . . . . . . . . . .  	L NEAR	0326	INIT
READ . . . . . . . . . . . . . .  	NUMBER	003F	
READ_DISK_PROC . . . . . . . . .  	L FAR 	0000	INIT	External
READ_OPEN_FLAG . . . . . . . . .  	NUMBER	0101	
READ_OPEN_MODE . . . . . . . . .  	NUMBER	0000	
REDIRECTOR . . . . . . . . . . .  	NUMBER	0000	
RENAME . . . . . . . . . . . . .  	NUMBER	0056	
REQ_ABORT  . . . . . . . . . . .  	NUMBER	00D2	
REQ_END  . . . . . . . . . . . .  	NUMBER	00D6	
REQ_FAIL . . . . . . . . . . . .  	NUMBER	00D5	
REQ_IGNORE . . . . . . . . . . .  	NUMBER	00D4	
REQ_RETRY  . . . . . . . . . . .  	NUMBER	00D3	
RESERVED . . . . . . . . . . . .  	NUMBER	0000	
RESERVED_BITS_MASK . . . . . . .  	NUMBER	FE00	
resetenv . . . . . . . . . . . .  	V WORD	0000	INIT	External
resmsgend  . . . . . . . . . . .  	V WORD	0000	DATARES	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
RET41  . . . . . . . . . . . . .  	L NEAR	06EF	INIT
RETRY_ALLOWED  . . . . . . . . .  	NUMBER	0010	
RIGHT_ALIGN  . . . . . . . . . .  	NUMBER	0080	
RMDIR  . . . . . . . . . . . . .  	NUMBER	003A	
RNOSLASHT  . . . . . . . . . . .  	L NEAR	06EB	INIT
RPAREN . . . . . . . . . . . . .  	NUMBER	0029	
rprint . . . . . . . . . . . . .  	L NEAR	0000	INIT	External
RSTACK . . . . . . . . . . . . .  	V WORD	0000	CODERES	External
RSWITCHAR  . . . . . . . . . . .  	V BYTE	0000	DATARES	External

SCROLL_VIDEO_PAGE  . . . . . . .  	NUMBER	0006	
scswitch . . . . . . . . . . . .  	V BYTE	0000	INIT	External
SEARCH_ATTR  . . . . . . . . . .  	NUMBER	0013	
SEMICOLON  . . . . . . . . . . .  	NUMBER	003B	
SERVERCALL . . . . . . . . . . .  	NUMBER	005D	
SETALL . . . . . . . . . . . . .  	NUMBER	-0001	
SETBLOCK . . . . . . . . . . . .  	NUMBER	004A	
SETCOLLATE . . . . . . . . . . .  	NUMBER	0006	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-18


SETCOMSR . . . . . . . . . . . .  	L NEAR	0391	INIT
SETCOMSRBAD  . . . . . . . . . .  	L NEAR	03C8	INIT
SETCOMSRRET  . . . . . . . . . .  	L NEAR	03C0	INIT
SETCOUNTRYINFO . . . . . . . . .  	NUMBER	0001	
SETDATEOK  . . . . . . . . . . .  	L NEAR	0297	INIT
SETDBCS  . . . . . . . . . . . .  	NUMBER	0007	
SETDPB . . . . . . . . . . . . .  	NUMBER	0053	
SETDSWITCH . . . . . . . . . . .  	L NEAR	028A	INIT
SETESWITCH . . . . . . . . . . .  	L NEAR	02B4	INIT
SETFILELIST  . . . . . . . . . .  	NUMBER	0005	
SETFSWITCH . . . . . . . . . . .  	L NEAR	0248	INIT
SETINTERIMMODE . . . . . . . . .  	NUMBER	0001	
SETLCASE . . . . . . . . . . . .  	NUMBER	0003	
SETMSWITCH . . . . . . . . . . .  	L NEAR	02D8	INIT
SETMSWITCHJMP  . . . . . . . . .  	L NEAR	0242	INIT
SETMSWITCHOK . . . . . . . . . .  	L NEAR	02E5	INIT
SETPSWITCH . . . . . . . . . . .  	L NEAR	025D	INIT
SETSSWITCH . . . . . . . . . . .  	L NEAR	02A3	INIT
SETSTDIO . . . . . . . . . . . .  	NUMBER	0000	
SETUCASE . . . . . . . . . . . .  	NUMBER	0002	
SETUCASEFILE . . . . . . . . . .  	NUMBER	0004	
SETUP_END  . . . . . . . . . . .  	L NEAR	06CB	INIT
SETUP_FOR_MESSAGES . . . . . . .  	N PROC	07C1	INIT	Length = 0074
SETUP_SEG  . . . . . . . . . . .  	L NEAR	06B0	INIT
SETVECT  . . . . . . . . . . . .  	L NEAR	0000	INIT	External
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_EXT_2F . . . . . . . . . . .  	N PROC	083D	INIT	Length = 0008
SET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0025	
SET_MSG_ADDR . . . . . . . . . .  	L NEAR	003C	INIT
SET_OEM_HANDLER  . . . . . . . .  	NUMBER	00F8	
SET_PARSE_2F . . . . . . . . . .  	N PROC	0835	INIT	Length = 0008
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	
SGN_BIN_BYTE . . . . . . . . . .  	NUMBER	0012	
SGN_BIN_DWORD  . . . . . . . . .  	NUMBER	0032	
SGN_BIN_TYPE . . . . . . . . . .  	NUMBER	0002	
SGN_BIN_WORD . . . . . . . . . .  	NUMBER	0022	
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
SMALL_A  . . . . . . . . . . . .  	NUMBER	0061	
SMALL_Z  . . . . . . . . . . . .  	NUMBER	007A	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-19


space  . . . . . . . . . . . . .  	V BYTE	0000	INIT	External
SPECIAL_DELIM  . . . . . . . . .  		0007	
STAR . . . . . . . . . . . . . .  	NUMBER	002A	
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_PRINTER_OUTPUT . . . . . . .  	NUMBER	0005	
SUBLIST_LENGTH . . . . . . . . .  	NUMBER	000B	
SUM  . . . . . . . . . . . . . .  	V WORD	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	
sysdispmsg . . . . . . . . . . .  	L NEAR	0000	INIT	External
SYSGETMSG  . . . . . . . . . . .  	L NEAR	0000	INIT	External
SYSLOADMSG . . . . . . . . . . .  	N PROC	0862	INIT	Length = 008F

TAB  . . . . . . . . . . . . . .  	NUMBER	0009	
TAB_CHR  . . . . . . . . . . . .  	NUMBER	0009	
TEMPLEN  . . . . . . . . . . . .  	NUMBER	0086	
TEXT_MODE  . . . . . . . . . . .  	NUMBER	0001	
TIMEMSG  . . . . . . . . . . . .  	NUMBER	0000	
TIME_24_TYPE . . . . . . . . . .  	NUMBER	0006	
TIME_CTY_TYPE  . . . . . . . . .  	NUMBER	0005	
TIME_HHMMSSHH_24 . . . . . . . .  	NUMBER	0026	
TIME_HHMMSSHH_CTY  . . . . . . .  	NUMBER	0025	
TIME_HHMMSS_24 . . . . . . . . .  	NUMBER	0016	
TIME_HHMMSS_CTY  . . . . . . . .  	NUMBER	0015	
TIME_HHMM_24 . . . . . . . . . .  	NUMBER	0006	
TIME_HHMM_CTY  . . . . . . . . .  	NUMBER	0005	
TOOBIG . . . . . . . . . . . . .  	NUMBER	00E3	
TPASET . . . . . . . . . . . . .  	L NEAR	00EB	INIT
TPLEN  . . . . . . . . . . . . .  	NUMBER	0040	
TRANSPACEEND . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
TRANSTART  . . . . . . . . . . .  	V WORD	0000	TAIL	External
TRANS_LOADED . . . . . . . . . .  	L NEAR	04E3	INIT
triageError  . . . . . . . . . .  	L NEAR	0000	INIT	External
triage_add . . . . . . . . . . .  	V DWORD	0000	INIT	External
TrnMvFlg . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
TRNSEG . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
trnsize  . . . . . . . . . . . .  	V WORD	0000	INIT	External
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	

ucasea . . . . . . . . . . . . .  	V BYTE	0000	INIT	External
UNLINK . . . . . . . . . . . . .  	NUMBER	0041	
UNSGN_BIN_BYTE . . . . . . . . .  	NUMBER	0011	
UNSGN_BIN_DWORD  . . . . . . . .  	NUMBER	0031	
UNSGN_BIN_TYPE . . . . . . . . .  	NUMBER	0001	
UNSGN_BIN_WORD . . . . . . . . .  	NUMBER	0021	
UNUSED . . . . . . . . . . . . .  		0003	
UPPER_TABLE  . . . . . . . . . .  	NUMBER	0080	
usedenv  . . . . . . . . . . . .  	V WORD	0000	INIT	External
USEROPER . . . . . . . . . . . .  	NUMBER	005E	
UTILITY_MSG_CLASS  . . . . . . .  	NUMBER	00FF	
UTIL_MSG_CLASS . . . . . . . . .  	NUMBER	-0001	

VBAR . . . . . . . . . . . . . .  	NUMBER	007C	
VIDEO_ALPHA  . . . . . . . . . .  	NUMBER	0003	
VIDEO_ATTRIBUTE  . . . . . . . .  	NUMBER	0007	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-20


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	

ZERO . . . . . . . . . . . . . .  	NEAR	0000	INIT

$MEN20 . . . . . . . . . . . . .  	L NEAR	08F0	INIT
$MEN25 . . . . . . . . . . . . .  	L NEAR	0976	INIT
$MIF20 . . . . . . . . . . . . .  	L NEAR	08EC	INIT
$MIF23 . . . . . . . . . . . . .  	L NEAR	0906	INIT
$MIF25 . . . . . . . . . . . . .  	L NEAR	0968	INIT
$M_ADDR_SZ_FAR . . . . . . . . .  	NUMBER	0004	
$M_ADDR_SZ_NEAR  . . . . . . . .  	NUMBER	0002	
$M_ALIGN_MASK  . . . . . . . . .  	NUMBER	0080	
$M_AM  . . . . . . . . . . . . .  	NUMBER	0061	
$M_BASE10  . . . . . . . . . . .  	NUMBER	000A	
$M_BASE16  . . . . . . . . . . .  	NUMBER	0010	
$M_BYTE  . . . . . . . . . . . .  	NUMBER	0010	
$M_CHAR_ONLY . . . . . . . . . .  	NUMBER	FFFF	
$M_CLASS_ID_SZ . . . . . . . . .  	NUMBER	0004	
$M_CLASS_NOT_EXIST . . . . . . .  	NUMBER	0000	
$M_CLS_3 . . . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_CLS_4 . . . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_CLS_5 . . . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_CLS_6 . . . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_CLS_7 . . . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_CLS_8 . . . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_COMMA . . . . . . . . . . . .  	NUMBER	002C	
$M_CON_INP . . . . . . . . . . .  	NUMBER	-0001	
$M_CRIT_ERR_MASK . . . . . . . .  	NUMBER	0001	
$M_CRIT_HI . . . . . . . . . . .  	NUMBER	0027	
$M_CRIT_LO . . . . . . . . . . .  	NUMBER	0013	
$M_CRLF_SIZE . . . . . . . . . .  	NUMBER	0002	
$M_CR_LF . . . . . . . . . . . .  	NUMBER	0A0D	
$M_DATE_MASK . . . . . . . . . .  	NUMBER	0010	
$M_DBCS_TERM . . . . . . . . . .  	NUMBER	0000	
$M_DCOUNT  . . . . . . . . . . .  	NUMBER	0008	
$M_DEF_DATE_FORM . . . . . . . .  	NUMBER	0000	
$M_DEF_DATE_SEP  . . . . . . . .  	NUMBER	002D	
$M_DEF_DECI_SEP  . . . . . . . .  	NUMBER	002E	
$M_DEF_TIME_FORM . . . . . . . .  	NUMBER	0001	
$M_DEF_TIME_SEP  . . . . . . . .  	NUMBER	003A	
$M_DWORD . . . . . . . . . . . .  	NUMBER	0030	
$M_END . . . . . . . . . . . . .  	NUMBER	0000	
$M_EXTPAR_TYPE . . . . . . . . .  	NUMBER	0008	
$M_EXT_CLS . . . . . . . . . . .  	NUMBER	FFFF	
$M_EXT_ERR_FLAG  . . . . . . . .  	NUMBER	FFFF	
$M_FIRST_THOU  . . . . . . . . .  	NUMBER	0003	
$M_GET_DBCS_VEC  . . . . . . . .  	N PROC	08F1	INIT	Length = 0018
$M_GET_MSG_ADDRESS . . . . . . .  	L NEAR	0000	INIT	External
$M_ID_SZ . . . . . . . . . . . .  	NUMBER	0004	
$M_INCLUDE . . . . . . . . . . .  	NUMBER	0000	
$M_INDEX . . . . . . . . . . . .  	NUMBER	0014	
$M_LOAD  . . . . . . . . . . . .  	NUMBER	FFFF	
$M_MAX_2_YEAR  . . . . . . . . .  	NUMBER	0063	
$M_MSGDATA_ONLY  . . . . . . . .  	NUMBER	0000	
$M_MSGSERV_1 . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_MSGSERV_2 . . . . . . . . . .  	L NEAR	0000	INIT	External
$M_NEG_SIGN  . . . . . . . . . .  	NUMBER	002D	
$M_NEXT_DBCS_VECTOR  . . . . . .  	NUMBER	0002	
$M_NO_CRLF_MASK  . . . . . . . .  	NUMBER	0080	
$M_NO_HANDLE . . . . . . . . . .  	NUMBER	-0001	
$M_NULL  . . . . . . . . . . . .  	NUMBER	0000	
$M_NUM_CLS . . . . . . . . . . .  	NUMBER	0008	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:56
COMMAND Initialization                                      Symbols-21


$M_ONE_REPLACE . . . . . . . . .  	NUMBER	0001	
$M_PARSE_FLAG  . . . . . . . . .  	NUMBER	FFFF	
$M_PAR_CLS . . . . . . . . . . .  	NUMBER	FFFF	
$M_PM  . . . . . . . . . . . . .  	NUMBER	0070	
$M_REPLACE . . . . . . . . . . .  	NUMBER	FFFF	
$M_REPL_DONE . . . . . . . . . .  	NUMBER	0000	
$M_RES_ADDRS_SZ  . . . . . . . .  	NUMBER	00A1	
$M_RT  . . . . . . . . . . . . .  	ALIAS	 $M_RT2		
$M_RT2 . . . . . . . . . . . . .  	V BYTE	0000	INIT	External
$M_SECOND_THOU . . . . . . . . .  	NUMBER	0006	
$M_SERVICE . . . . . . . . . . .  	NUMBER	FFFF	
$M_SINGLE_CHAR . . . . . . . . .  	NUMBER	0001	
$M_SIZE_MASK . . . . . . . . . .  	NUMBER	0030	
$M_SL  . . . . . . . . . . . . .  	TEXT  DS:[SI]		
$M_SPACE . . . . . . . . . . . .  	NUMBER	0020	
$M_SPACE_HYP . . . . . . . . . .  	NUMBER	2D20	
$M_SPECIAL_CASE  . . . . . . . .  	NUMBER	0030	
$M_SPECIAL_MSG_NUM . . . . . . .  	NUMBER	FFFF	
$M_STRUC . . . . . . . . . . . .  	NUMBER	0000	
$M_SUBS  . . . . . . . . . . . .  	NUMBER	FFFF	
$M_TEMP_BUF_SZ . . . . . . . . .  	NUMBER	0040	
$M_TERMINATING_FLAG  . . . . . .  	NUMBER	-0001	
$M_THIRD_THOU  . . . . . . . . .  	NUMBER	0009	
$M_TIMEDATE_PAD  . . . . . . . .  	NUMBER	0030	
$M_TIME_MASK . . . . . . . . . .  	NUMBER	0001	
$M_TYPE_MASK . . . . . . . . . .  	NUMBER	000F	
$M_UNLIM_W . . . . . . . . . . .  	NUMBER	0000	
$M_VERSION_CHECK . . . . . . . .  	N PROC	0952	INIT	Length = 0025
$M_WORD  . . . . . . . . . . . .  	NUMBER	0020	
?PLM . . . . . . . . . . . . . .  	NUMBER	0000	
?WIN . . . . . . . . . . . . . .  	NUMBER	0000	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  init		
@VERSION . . . . . . . . . . . .  	TEXT  510		


  11660 Source  Lines
  14106 Total   Lines
   1531 Symbols

  40468 + 129470 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
