Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-1


				 page 80,132
				;	SCCSID = @(#)rucode.asm 4.5 85/07/22
				;	SCCSID = @(#)rucode.asm 4.5 85/07/22
				TITLE	COMMAND Language modifiable Code Resident
				
				
				.list
				.cref
				
				
 = 0000				Tokenized   =	FALSE
				
 0000				DATARES 	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	abort_char:byte
					EXTRN	badfat_block:byte	;AC000;
					EXTRN	badfat_subst:byte	;AC000;
					EXTRN	Batch_Abort:byte
					EXTRN	CDEVAT:BYTE
					EXTRN	COMSPEC:BYTE		;AN060;
					EXTRN	com_xlat_addr:word
					EXTRN	crit_err_info:byte
					EXTRN	crit_msg_off:word	;AC000;
					EXTRN	crit_msg_seg:word	;AC000;
					EXTRN	dbcs_vector_addr:dword	;AN000;
					EXTRN	devemes_block:byte	;AC000;
					EXTRN	devemes_subst:byte	;AC000;
					EXTRN	DEVENAM:BYTE
					EXTRN	deve_op_off:word	;AC000;
					EXTRN	disp_class:byte 	;AC000;
					EXTRN	DRVLET:BYTE
					EXTRN	drvnum_block:byte	;AC000;
					EXTRN	drvnum_op_off:word	;AC000;
					EXTRN	drvnum_subst:byte	;AC000;
					EXTRN	err15mes_block:byte	;AC000;
					EXTRN	err15mes_subst:byte	;AC000;
					EXTRN	ERRCD_24:WORD
					EXTRN	ErrType:BYTE
					EXTRN	fail_char:byte
					EXTRN	fFail:BYTE
					EXTRN	FORFLAG:BYTE
					EXTRN	ignore_char:byte
					EXTRN	InitFlag:BYTE
					EXTRN	In_Batch:byte
					EXTRN	LOADING:BYTE
				;AD054; EXTRN	MESBAS:BYTE
					EXTRN	no_char:byte
					EXTRN	number_subst:byte	;AC000;
					EXTRN	olderrno:word
					EXTRN	PARENT:WORD
				;AD060; EXTRN	pars_msg_off:word	;AC000;
				;AD060; EXTRN	pars_msg_seg:word	;AC000;
					EXTRN	PERMCOM:BYTE
					EXTRN	RemMsg:DWORD
					EXTRN	retry_char:byte
					EXTRN	PIPEFLAG:BYTE
					EXTRN	SINGLECOM:WORD
					EXTRN	VolName:BYTE
					EXTRN	yes_char:byte
				
				
 0000				DATARES ENDS
				
				
 0000				CODERES SEGMENT PUBLIC BYTE
				
					EXTRN	GETCOMDSK2:NEAR
				
					PUBLIC	ASKEND
					PUBLIC	CRLF
					PUBLIC	DSKERR
					PUBLIC	ITESTKANJ		;AN000;
					PUBLIC	RESET_MSG_POINTERS	;AC000;
					PUBLIC	RPRINT
				
				ASSUME	CS:RESGROUP,DS:NOTHING,ES:NOTHING,SS:NOTHING
				
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-2
Trap:  Get the attention of MSDOS                           

				;
				; AskEnd - prompt the user to see if he should terminate the batch file.  If
				; any system call returns with carry set or if RPRINT returns with carry set,
				; we jump to the top and start over.
				;
				;    Returns:	carry set if response indicates that the batch file should
				;		    be terminated.
				;		carry clear otherwise.
				;
				
				ASSUME	DS:RESGROUP
 0000				ASKEND:
 0000  BA 00E0				MOV	DX,ENDBATMES			;AC000; get batch terminate question
 0003  E8 029A R			CALL	RPRINT
 0006  B8 0C01				MOV	AX,(STD_CON_INPUT_FLUSH SHL 8)+STD_CON_INPUT
 0009  CD 21				INT	21H
 000B  E8 02C1 R			call	in_char_xlat			;g change to upper case
 000E  3A 06 0000 E			CMP	AL,no_char
					retz					; carry is clear => no free
 0012  75 01                 2	    jnz   ??0000                           ; 
 0014                        3	??0001: 
 0014  C3                    3		RET 
 0015                        2	    ??0000:                                  ; 
 0015  3A 06 0000 E			CMP	AL,yes_char
 0019  75 E5				JNZ	ASKEND
 001B  F9				stc					; carry set => free batch
					return
 001C                        1	??0002: 
 001C  C3                    1		RET 
				
 001D				DSKERR:
				ASSUME	DS:NOTHING,ES:NOTHING,SS:NOTHING
					; ******************************************************
					;	THIS IS THE DEFAULT DISK ERROR HANDLING CODE
					;	AVAILABLE TO ALL USERS IF THEY DO NOT TRY TO
					;	INTERCEPT INTERRUPT 24H.
					; ******************************************************
 001D  FB				STI
 001E  1E				PUSH	DS
 001F  06				PUSH	ES
 0020  56				PUSH	SI				;AN000; save si
 0021  51				PUSH	CX
 0022  57				PUSH	DI
 0023  51				PUSH	CX
 0024  50				PUSH	AX
 0025  8E DD				MOV	DS,BP
 0027  8B 44 04				MOV	AX,[SI.SDEVATT]
 002A  2E: 88 26 0000 E			MOV	[CDEVAT],AH
 002F  0E				PUSH	CS
 0030  07				POP	ES
 0031  BF 0000 E			MOV	DI,OFFSET RESGROUP:DEVENAM
 0034  B9 0008				MOV	CX,8
 0037  83 C6 0A				ADD	SI,SDEVNAME			; Suck up device name (even on Block)
 003A  F3/ A4				REP	MOVSB
 003C  58				POP	AX
 003D  59				POP	CX
 003E  5F				POP	DI				; Stack just contains DS and ES
										;     at this point
					INVOKE	SAVHAND
 003F  E8 0000 E             1		CALL    SAVHAND 
 0042  0E				PUSH	CS
 0043  1F				POP	DS				; Set up local data segment
				ASSUME	DS:RESGROUP
				
 0044  52				PUSH	DX
 0045  E8 0297 R			CALL	CRLF
 0048  5A				POP	DX
 0049  88 26 0000 E			MOV	CRIT_ERR_INFO,AH		;G save so we know if R,I,F are valid
				
 004D  04 41				ADD	AL,'A'                          ; Compute drive letter (even on character)
 004F  A2 0000 E			MOV	[DRVLET],AL
 0052  F6 C4 80				TEST	AH,80H				; Check if hard disk error
 0055  74 0A				JZ	NOHARDE
 0057  F6 06 0000 E 80			TEST	[CDEVAT],DEVTYP SHR 8
 005C  75 03				JNZ	NOHARDE
 005E  E9 0284 R			JMP	FATERR
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-3
Trap:  Get the attention of MSDOS                           

				
 0061				NOHARDE:
 0061  BE 00D7				MOV	SI,MREAD			;AC000;
 0064  F6 C4 01				TEST	AH,1
 0067  74 03				JZ	SAVMES
 0069  BE 00D8				MOV	SI,MWRITE			;AC000;
				
 006C				SAVMES:
				
 006C  89 3E 0000 E			mov	olderrno,di			; keep code in a safe place
 0070  06				PUSH	ES				;AN000;
 0071  1E				PUSH	DS				; GetExtendedError likes to STOMP
 0072  55				PUSH	BP
 0073  56				PUSH	SI
 0074  52				PUSH	DX
 0075  51				PUSH	CX
 0076  53				PUSH	BX
 0077  B4 59				mov	ah,GetExtendedError		; get extended error code
 0079  CD 21				INT	21H
 007B  5B				POP	BX
 007C  59				POP	CX
 007D  5A				POP	DX
 007E  5E				POP	SI
 007F  5D				POP	BP
 0080  1F				POP	DS
 0081  2E: 89 3E 0000 E			mov	word ptr cs:[RemMsg],di 	;AC000; save pointer to remote message
 0086  2E: 8C 06 0002 E			mov	word ptr cs:[RemMsg+2],es	;AC000;    (only used on code 15)
 008B  07				pop	ES				;AN000;
 008C  32 E4				XOR	AH,AH
 008E  8B F8				mov	di,ax				; REAL error code to DI
				;
				; DI is now the correct error code.  Classify things to see what we are
				; allowed to report.  We convert DI into a 0-based index into a message table.
				; This presumes that the int 24 errors (oldstyle) and new errors (sharing and
				; the like) are contiguous.
				;
 0090  83 EF 13				SUB	DI,error_write_protect
 0093  73 03				JAE	HavCod
 0095  BF 000C				MOV	DI,error_Gen_failure-error_write_protect
				;
				; DI now has the mapped error code.  Old style errors are:
				;   FOOBAR <read|writ>ing drive ZZ.
				; New style errors are:
				;   FOOBAR
				; We need to figure out which the particular error belongs to.
				;
				
 0098				HAVCOD:
 0098  C6 06 0000 E 00			mov	ErrType,0			; assume Old style
 009D  83 FF 10				cmp	di,error_FCB_Unavailable-error_write_protect
 00A0  74 05				jz	SetStyle
 00A2  83 FF 11				cmp	di,error_sharing_buffer_exceeded-error_write_protect
 00A5  75 05				jnz	GotStyle
				
 00A7				SetStyle:
 00A7  C6 06 0000 E 01			mov	ErrType,1			; must be new type
				
 00AC				GotStyle:
 00AC  89 3E 0000 E			MOV	[ERRCD_24],DI
 00B0  83 FF 14				cmp	di,error_handle_disk_full-error_write_protect  ;AC026;
										; If the error message is unknown
 00B3  76 41				jbe	NormalError			;  redirector, continue.  Otherwise,
				;
				; We do not know how to handle this error.  Ask IFSFUNC if she knows
				; how to handle things
				;
				
				;input to IFSFUNC:    AL=1
				;		      BX=extended error number
				
				;output from IFSFUNC: AL=error type (0 or 1)
				;			 0=<message> error (read/writ)ing (drive/device) xxx
				;			   Abort, Retry, Ignore
				;			 1=<message>
				;			   Abort, Retry, Ignore
				;		      ES:DI=pointer to message text
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-4
Trap:  Get the attention of MSDOS                           

				;		      carry set=>no message
				
 00B5  8B F8				MOV	DI,AX				; retrieve correct extended error...
 00B7  B8 0500				mov	ax,0500h			; Is the redir there?
 00BA  CD 2F				int	2fh
 00BC  3C FF				cmp	al,0ffh
 00BE  75 29				jnz	NoHandler			; No, go to NoHandler
 00C0  53				push	bx								   ;AN063;
 00C1  8B DF				mov	bx,di				; Get ErrType and ptr to error msg ;AC063;
 00C3  B8 0501				mov	ax,0501h							   ;AC063;
 00C6  CD 2F				int	2fh
 00C8  5B				pop	bx								   ;AC063;
 00C9  72 1E				jc	NoHandler
				
 00CB  A2 0000 E			mov	ErrType,al
 00CE  1E				push	ds
 00CF  06				push	es
 00D0  1F				pop	ds
 00D1  8B D7				mov	dx,di
 00D3  B9 FFFF				mov	cx,-1				; Find the end of the error msg and turn
 00D6  32 C0				xor	al,al				;  the high byte on for rprint
 00D8  F2/ AE				repnz	scasb
				
					ELSE
 00DA  C6 45 FF 24			mov	byte ptr [di-1],'$'
 00DE  B4 09				MOV	AH,Std_con_string_output	;AC000; Print the message
 00E0  CD 21				INT	21h				;AN000;
 00E2  C6 45 FF 00			mov	byte ptr [di-1],0		; Restore msg to original condition
					ENDIF
				
 00E6  1F				pop	ds				; Clean up and continue processing
 00E7  EB 1A				jmp	short CheckErrType
				
 00E9				NoHandler:					; Redir isn't available or doesn't
 00E9  C6 06 0000 E 00			mov	ErrType,0			;  recognize the error.  Reset vars and
 00EE  8B 3E 0000 E			mov	di,olderrno			;  regs to unextended err and continue
 00F2  89 3E 0000 E			mov	ERRCD_24,di			;  normally.
				
 00F6				NormalError:
				;AD054; SHL	DI,1
				;AD054; MOV	DI,WORD PTR [DI+MESBAS] 	; Get pointer to error message
 00F6  83 C7 13				add	DI,error_write_protect		;AN054;
 00F9  87 FA				XCHG	DI,DX				; May need DX later
 00FB  C6 06 0000 E 81			MOV	DISP_CLASS,EXT_CRLF_CLASS	;AN054; printing extended error class
 0100  E8 029A R			CALL	RPRINT				; Print error type
				
 0103				CheckErrType:
 0103  80 3E 0000 E 00			cmp	ErrType,0			; Check error style...
 0108  74 05				je	ContOld
 010A  E8 0297 R			call	CRLF				; if new style then done printing
 010D  EB 43				jmp	short ASK
				
 010F				ContOld:
					IF	NOT Tokenized
 010F  8B C6				MOV	AX,SI				;AN000; get reading/writing for message
 0111  B6 FF				MOV	DH,UTIL_MSG_CLASS		;AN000; this is a utility message
 0113  E8 03CA R			CALL	SYSGETMSG			;AN000; get the message
					ENDIF
				
 0116  F6 06 0000 E 80			TEST	[CDEVAT],DEVTYP SHR 8
 011B  74 15				JZ	BLKERR
 011D  BA 00DA				MOV	DX,DEVEMES			;AC000; get message number for device message
 0120  89 36 0000 E			MOV	DEVE_OP_OFF,SI			;AN000; put address of read/write in subst block
 0124  A0 0000 E			MOV	AL,DEVEMES_SUBST		;AN000; get number of substitutions
 0127  A2 0000 E			MOV	NUMBER_SUBST,AL 		;AN000;
 012A  BE 0000 E			MOV	SI,OFFSET RESGROUP:DEVEMES_BLOCK;AN000; get address of subst block
				
 012D  E8 029A R			CALL	RPRINT				;AC000; print the message
 0130  EB 20				JMP	SHORT ASK			; Don't ralph on COMMAND
				
 0132				BLKERR:
 0132  BA 00D9				MOV	DX,DRVNUM			;AN000; get drive message number
 0135  89 36 0000 E			MOV	DRVNUM_OP_OFF,SI		;AN000; put address of read/write in subst block
 0139  A0 0000 E			MOV	AL,DRVNUM_SUBST 		;AN000; get number of substitutions
 013C  A2 0000 E			MOV	NUMBER_SUBST,AL 		;AN000;
 013F  BE 0000 E			MOV	SI,OFFSET RESGROUP:DRVNUM_BLOCK ;AN000; get address of subst block
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-5
Trap:  Get the attention of MSDOS                           

 0142  E8 029A R			CALL	RPRINT
 0145  80 3E 0000 E 00			CMP	[LOADING],0
 014A  74 06				JZ	ASK
					INVOKE	RESTHAND
 014C  E8 0000 E             1		CALL    RESTHAND 
 014F  E9 0000 E			JMP	GETCOMDSK2			; If error loading COMMAND, re-prompt
				
 0152				ASK:
 0152  83 3E 0000 E 0F			cmp	[ERRCD_24],15			; Wait! Error 15 has an extra message
 0157  75 24				jne	Not15
 0159  51				PUSH	CX
 015A  1E				push	ds
 015B  07				pop	es
 015C  C5 36 0000 E			lds	si,[RemMsg]
				assume	ds:nothing
 0160  57				push	di
 0161  BF 0000 E			mov	di,offset resgroup:VolName
 0164  B9 0010				mov	cx,16				;AC000; extra message volume name & serial number
 0167  FC				cld					; just in case!
 0168  F3/ A4				rep	movsb
 016A  5F				pop	di
 016B  06				push	es
 016C  1F				pop	ds
 016D  59				POP	CX
				assume	ds:resgroup
 016E  BA 00DB				mov	dx,Err15Mes			;AC000; get message number
 0171  A0 0000 E			MOV	AL,ERR15MES_SUBST		;AN000; get number of substitutions
 0174  A2 0000 E			MOV	NUMBER_SUBST,AL 		;AN000;
 0177  BE 0000 E			MOV	SI,OFFSET RESGROUP:ERR15MES_BLOCK ;AN000; get address of subst block
 017A  E8 029A R			CALL	RPRINT
				
				; PRINT OUT ABORT, RETRY, IGNORE, FAIL MESSAGE.  ONLY PRINT OUT OPTIONS
				; THAT ARE VALID
				
 017D				Not15:
 017D  BA 00D2				MOV	DX,REQ_ABORT			;AC000;G print out abort message
 0180  E8 029A R			CALL	RPRINT				;G
 0183  F6 06 0000 E 10			TEST	CRIT_ERR_INFO,RETRY_ALLOWED	;G is retry allowed?
 0188  74 06				JZ	TRY_IGNORE			;G
 018A  BA 00D3				MOV	DX,REQ_RETRY			;AC000;G yes,print out retry message
 018D  E8 029A R			CALL	RPRINT				;G
				
 0190				try_ignore:
 0190  F6 06 0000 E 20			TEST	CRIT_ERR_INFO,IGNORE_ALLOWED	;G is ignore allowed?
 0195  74 06				JZ	TRY_FAIL			;G
 0197  BA 00D4				MOV	DX,REQ_IGNORE			;AC000;G yes,print out ignore message
 019A  E8 029A R			CALL	RPRINT				;G
				
 019D				try_fail:
 019D  F6 06 0000 E 08			TEST	CRIT_ERR_INFO,FAIL_ALLOWED	;G is FAIL allowed?
 01A2  74 06				JZ	TERM_QUESTION			;G
 01A4  BA 00D5				MOV	DX,REQ_FAIL			;AC000;G yes,print out FAIL message
 01A7  E8 029A R			CALL	RPRINT				;G
				
 01AA				Term_Question:
 01AA  BA 00D6				MOV	DX,REQ_END			;AC000;G terminate the string
 01AD  E8 029A R			CALL	RPRINT				;G
				;
				; If the /f switch was given, we fail all requests...
				;
 01B0  F6 06 0000 E FF			TEST	fFail,-1
 01B5  74 05				JZ	DoPrompt
 01B7  B4 03				MOV	AH,3				; signal fail
 01B9  E9 0278 R			JMP	EExit
				
 01BC				DoPrompt:
 01BC  B8 0C01				MOV	AX,(STD_CON_INPUT_FLUSH SHL 8)+STD_CON_INPUT
 01BF  CD 21				INT	21H				; Get response
				
					invoke	TestKanjR			;AN000;  3/3/KK
 01C1  E8 02E0 R             1		CALL    TestKanjR 
 01C4  74 0A				jz	notkanj 			;AN000;  3/3/KK
 01C6  B8 0100				MOV	AX,(STD_CON_INPUT SHL 8)	;AN000;  eat the 2nd byte of ECS code  3/3/KK
 01C9  CD 21				INT	21H				;AN000;  3/3/KK
 01CB  E8 0297 R			CALL	CRLF				;AN000;  3/3/KK
 01CE  EB 82				JMP	ASK				;AN000;  3/3/KK
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-6
Trap:  Get the attention of MSDOS                           

				
 01D0				notkanj:					;AN000;  3/3/KK
 01D0  E8 0297 R			CALL	CRLF
 01D3  E8 02C1 R			CALL	IN_CHAR_XLAT			;G Convert to upper case
 01D6  B4 00				MOV	AH,0				; Return code for ignore
 01D8  F6 06 0000 E 20			TEST	CRIT_ERR_INFO,IGNORE_ALLOWED	;G is IGNORE allowed?
 01DD  74 06				JZ	USER_RETRY			;G
 01DF  3A 06 0000 E			CMP	AL,ignore_char			; Ignore?
 01E3  74 29				JZ	EEXITJ
				
 01E5				USER_RETRY:
 01E5  FE C4				INC	AH				; return code for retry
 01E7  F6 06 0000 E 10			TEST	CRIT_ERR_INFO,RETRY_ALLOWED	;G is RETRY allowed?
 01EC  74 06				JZ	USER_ABORT			;G
 01EE  3A 06 0000 E			CMP	AL,retry_char			; Retry?
 01F2  74 1A				JZ	EEXITJ
				
 01F4				USER_ABORT:
 01F4  FE C4				INC	AH				; return code for abort - always allowed
 01F6  3A 06 0000 E			CMP	AL,abort_char			; Abort?
 01FA  74 14				JZ	abort_process			;G  exit user program
 01FC  FE C4				INC	AH				;G  return code for fail
 01FE  F6 06 0000 E 08			TEST	CRIT_ERR_INFO,FAIL_ALLOWED	;G is FAIL allowed?
 0203  74 06				JZ	ASKJ				;G
 0205  3A 06 0000 E			CMP	AL,fail_char			;G fail?
 0209  74 03				JZ	EEXITJ				;G
				
 020B				ASKJ:
 020B  E9 0152 R			JMP	ASK				;G
				
 020E				EEXITJ:
 020E  EB 68				JMP SHORT EEXIT 			;G
				
 0210				abort_process:
 0210  F6 06 0000 E 01			test	InitFlag,initINIT		; Was command initialization interrupted
 0215  74 1D				jz	AbortCont			; No, handle it normally
 0217  80 3E 0000 E 00			cmp	PERMCOM,0			; Is this the top level process?
 021C  74 08				jz	JustExit			; Yes, just exit
 021E  BA 00EA				mov	dx,Patricide			;AC000; No, load ptr to error msg
 0221  E8 029A R			call	RPRINT				; Print it
				
 0224				DeadInTheWater:
 0224  EB FE				jmp	DeadInTheWater			; Loop until the user reboots
				
 0226				JustExit:
				ASSUME	DS:RESGROUP
 0226  E8 0305 R			call	reset_msg_pointers		;AN000; reset critical & parse message addresses
 0229  A1 0000 E			mov	ax,[PARENT]			; Load real parent PID
 022C  A3 0016				mov	word ptr ds:[PDB_Parent_PID],ax ; Put it back where it belongs
 022F  B8 4CFF				mov	ax,(Exit SHL 8) OR 255
 0232  CD 21				int	21H
				
 0234				AbortCont:
 0234  F6 06 0000 E FF			test	byte ptr [In_Batch],-1		; Are we accessing a batch file?
 0239  74 05				jz	Not_Batch_Abort
 023B  C6 06 0000 E 01			mov	byte ptr [Batch_Abort],1	; set flag for abort
				
 0240				Not_Batch_Abort:
 0240  8A 16 0000 E			mov	dl,PipeFlag
					invoke	ResPipeOff
 0244  E8 0000 E             1		CALL    ResPipeOff 
 0247  0A D2				OR	DL,DL
 0249  74 0D				JZ	CHECKFORA
 024B  83 3E 0000 E 00			CMP	[SINGLECOM],0
 0250  74 06				JZ	CHECKFORA
 0252  C7 06 0000 E FFFF		MOV	[SINGLECOM],-1			; Make sure SINGLECOM exits
				
 0258				CHECKFORA:
 0258  83 3E 0000 E 00			CMP	[ERRCD_24],0			; Write protect
 025D  74 07				JZ	ABORTFOR
 025F  83 3E 0000 E 02			CMP	[ERRCD_24],2			; Drive not ready
 0264  75 12				JNZ	EEXIT				; Don't abort the FOR
				
 0266				ABORTFOR:
 0266  C6 06 0000 E 00			MOV	[FORFLAG],0			; Abort a FOR in progress
 026B  83 3E 0000 E 00			CMP	[SINGLECOM],0
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-7
Trap:  Get the attention of MSDOS                           

 0270  74 06				JZ	EEXIT
 0272  C7 06 0000 E FFFF		MOV	[SINGLECOM],-1			; Make sure SINGLECOM exits
				
 0278				EEXIT:
 0278  8A C4				MOV	AL,AH
 027A  8B D7				MOV	DX,DI
				
 027C				RESTHD:
					INVOKE	RESTHAND
 027C  E8 0000 E             1		CALL    RESTHAND 
 027F  59				POP	CX
 0280  5E				POP	SI				;AN000; restore registers
 0281  07				POP	ES
 0282  1F				POP	DS
 0283  CF				IRET
				
 0284				FATERR:
 0284  BA 00DC				MOV	DX,BADFAT			;AC000;
 0287  A0 0000 E			MOV	AL,BADFAT_SUBST 		;AN000; get number of substitutions
 028A  A2 0000 E			MOV	NUMBER_SUBST,AL 		;AN000;
 028D  BE 0000 E			MOV	SI,OFFSET RESGROUP:BADFAT_BLOCK ;AN000; get address of subst block
 0290  E8 029A R			CALL	RPRINT
				
				
 0293  B0 02				MOV	AL,2				; Abort
 0295  EB E5				JMP	RESTHD
				
				;*********************************************
				; Print routines for Tokenized resident messages
				
				ASSUME DS:RESGROUP,SS:RESGROUP
				
 0297				CRLF:
 0297  BA 00EB				MOV	DX,NEWLIN			;AC000;
				
				;
				; RPRINT prints out a message on the user's console.  We clear carry before
				; each system call.  We do this so that the ^C checker may change things so
				; that carry is set.  If we detect a system call that returns with carry set,
				; we merely return.
				;
				;   Inputs:	DX has the message number as an offset from DS.
				;   Outputs:	Carry clear: no carries detected in the system calls
				;		Carry set: at least one system call returned with carry set
				;   Registers modified: none
				;
				
 029A				RPRINT:
				
				;
				; If we are not tokenized, the message consists of a $-terminated string.
				; Use CPM io to output it.
				;
				
				if NOT tokenized
 029A  50				PUSH	AX
 029B  53				PUSH	BX				;AC000; save BX register
 029C  51				PUSH	CX				;AC000; save CX register
 029D  52				PUSH	DX				;AC000; save DX register
 029E  8B C2				MOV	AX,DX				;AC000; get message number
 02A0  8A 36 0000 E			MOV	DH,DISP_CLASS			;AC000; get display class
 02A4  B2 00				MOV	DL,NO_CONT_FLAG 		;AN000; set control flags off
 02A6  BB FFFF				MOV	BX,NO_HANDLE_OUT		;AC000; set message handler to use function 1-12
 02A9  32 ED				XOR	CH,CH				;AC000; clear upper part of cx
 02AB  8A 0E 0000 E			MOV	CL,NUMBER_SUBST 		;AC000; set number of substitutions
 02AF  E8 050F R			CALL	SYSDISPMSG			;AC000; display the message
 02B2  C6 06 0000 E FF			MOV	DISP_CLASS,UTIL_MSG_CLASS	;AC000; reset display class
 02B7  C6 06 0000 E 00			MOV	NUMBER_SUBST,NO_SUBST		;AC000; reset number of substitutions
 02BC  5A				POP	DX				;AC000; restore registers
 02BD  59				POP	CX				;AC000;
 02BE  5B				POP	BX				;AC000;
 02BF  58				POP	AX
				
					return
 02C0                        1	??0003: 
 02C0  C3                    1		RET 
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-8
Trap:  Get the attention of MSDOS                           

				endif
				
				;
				; If we are tokenized, output character-by-character.  If there is a digit in
				; the output, look up that substring in the tokenization table.  Use the high
				; bit to determine the end-of-string.
				;
				
				
				
				;g
				;g   This routine returns the upper case of the character in AL
				;g   from the upper case table in DOS if character if above
				;g   ascii 128, else subtract 20H if between "a" and "z"
				;g
				
				assume	ds:resgroup
				
 02C1				in_char_xlat	proc	near
				
 02C1  3C 80				cmp	al,80h				;g see if char is above ascii 128
 02C3  72 10				jb	other_xlat			;g no - upper case math
 02C5  2C 80				sub	al,80h				;g only upper 128 characters in table
 02C7  1E				push	ds
 02C8  53				push	bx
 02C9  C5 1E 0001 E			lds	bx,dword ptr com_xlat_addr+1 ;g get table address
 02CD  83 C3 02				add	bx,2				;g skip over first word, of table
 02D0  D7				xlat	ds:byte ptr [bx]		;g convert to upper case
 02D1  5B				pop	bx
 02D2  1F				pop	ds
 02D3  EB 0A				jmp	short in_char_xlat_end		;g we finished - exit
				
 02D5				other_xlat:
 02D5  3C 61				cmp	al,'a'                          ;g if between "a" and "z", subtract
 02D7  72 06				jb	in_char_xlat_end		;g    20h to get upper case
 02D9  3C 7A				cmp	al,'z'                          ;g    equivalent.
 02DB  77 02				ja	in_char_xlat_end		;g
 02DD  2C 20				sub	al,20h				;g Lower-case changed to upper-case
				
 02DF				in_char_xlat_end:
				
 02DF  C3				ret
				
 02E0				in_char_xlat	endp
				;---------------------- DBCS lead byte check. this is resident code ; 3/3/KK
				
 02E0				ITESTKANJ:					;AN000;
 02E0				TestKanjR:					;AN000;  3/3/KK
 02E0  1E				push	ds				;AN000;  3/3/KK
 02E1  56				push	si				;AN000;  3/3/KK
 02E2  50				push	ax				;AN000;  3/3/KK
 02E3  C5 36 0000 E			lds	si,dbcs_vector_addr		;AN000;  GET DBCS VECTOR
				
 02E7				ktlop:						;AN000;  3/3/KK
 02E7  83 3C 00				cmp	word ptr ds:[si],0		;AN000;  3/3/KK end of Lead Byte Table
 02EA  74 0E				je	notlead 			;AN000;  3/3/KK
 02EC  58				pop	ax				;AN000;  3/3/KK
 02ED  50				push	ax				;AN000;  3/3/KK
 02EE  3A 04				cmp	al, byte ptr ds:[si]		;AN000;  3/3/KK
 02F0  72 08				jb	notlead 			;AN000;  3/3/KK
 02F2  46				inc	si				;AN000;  3/3/KK
 02F3  3A 04				cmp	al, byte ptr ds:[si]		;AN000;  3/3/KK
 02F5  76 07				jbe	islead				;AN000;  3/3/KK
 02F7  46				inc	si				;AN000;  3/3/KK
 02F8  EB ED				jmp	short ktlop			;AN000;  3/3/KK try another range
				
 02FA				Notlead:					;AN000;  3/3/KK
 02FA  33 C0				xor	ax,ax				;AN000;  3/3/KK set zero
 02FC  EB 03				jmp	short ktret			;AN000;  3/3/KK
				
 02FE				Islead: 					;AN000;  3/3/KK
 02FE  33 C0				xor	ax,ax				;AN000;  3/3/KK reset zero
 0300  40				inc	ax				;AN000;  3/3/KK
				
 0301				ktret:						;AN000;  3/3/KK
 0301  58				pop	ax				;AN000;  3/3/KK
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-9
Trap:  Get the attention of MSDOS                           

 0302  5E				pop	si				;AN000;  3/3/KK
 0303  1F				pop	ds				;AN000;  3/3/KK
					return					;AN000;  3/3/KK
 0304                        1	??0004: 
 0304  C3                    1		RET 
				
				
				; ****************************************************************
				; *
				; * ROUTINE:	 RESET_MSG_POINTERS
				; *
				; * FUNCTION:	 Resets addresses for parse and critical error
				; *		 messages in DOS via INT 2fh.  This routine
				; *		 is invoked before command exits.
				; *
				; * INPUT:	 none
				; *
				; * OUTPUT:	 none
				; *
				; ****************************************************************
				
 0305				reset_msg_pointers	proc	near
				
				assume	ds:resgroup, es:nothing
				
 0305  06				push	es				;AN000; save used registers
 0306  50				push	ax				;AN000;
 0307  52				push	dx				;AN000;
 0308  57				push	di				;AN000;
				;AD060; mov	ah,multdos			;AN000; reset parse message pointers
				;AD060; mov	al,message_2f			;AN000; call for message retriever
				;AD060; mov	dl,set_parse_msg		;AN000; set up parse message address
				;AD060; mov	di,pars_msg_off 		;AN000; old offset of parse messages
				;AD060; mov	es,pars_msg_seg 		;AN000; old segment of parse messages
				;AD060; int	2fh				;AN000; go set it
				
				;AD060; mov	ah,multdos			;AN000; set up to call DOS through int 2fh
				;AD060; mov	al,message_2f			;AN000; call for message retriever
 0309  B8 122E				mov	ax,(multdos shl 8 or message_2f);AN060; reset critical message pointers
 030C  B2 05				mov	dl,set_critical_msg		;AN000; set up critical error message address
 030E  8B 3E 0000 E			mov	di,crit_msg_off 		;AN000; old offset of critical messages
 0312  8E 06 0000 E			mov	es,crit_msg_seg 		;AN000; old segment of critical messages
 0316  CD 2F				int	2fh				;AN000; go set it
 0318  5F				pop	di				;AN000; restore used registers
 0319  5A				pop	dx				;AN000;
 031A  58				pop	ax				;AN000;
 031B  07				pop	es				;AN000;
				
 031C  C3				ret
				
				
 031D				reset_msg_pointers	endp
				
				PUBLIC		MSG_SERV_ST			;AN000;
 031D				MSG_SERV_ST	LABEL	BYTE			;AN000;
				
				PUBLIC	SYSGETMSG,SYSDISPMSG
				
				ASSUME	DS:RESGROUP, ES:RESGROUP
				
				.list
				.cref
				
				MSG_UTILNAME <COMMAND>				;AN000; define utility name
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-10
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:55
COMMAND Language modifiable Code Resident                   Page     1-11
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,DISK_PROC,GETmsg,DISPLAYmsg,CHARmsg,NUMmsg> ;AC060; include message servi
				ces macro
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-12
DOS - Message Retriever - DISK_PROC Module                  

 031D                        C1	READ_DISK_PROC PROC FAR 				     ;;AN003;;
 031D  50                    C1		PUSH	AX					     ;;AN003;; Save everything
 031E  53                    C1		PUSH	BX					     ;;AN003;;
 031F  52                    C1		PUSH	DX					     ;;AN003;;
 0320  56                    C1		PUSH	SI					     ;;AN003;;
 0321  55                    C1		PUSH	BP					     ;;AN003;;
 0322  1E                    C1		PUSH	DS					     ;;AN003;;
 0323  57                    C1		PUSH	DI					     ;;AN003;;
 0324  8B E8                 C1		MOV	BP,AX					     ;;AN003;; Save message number
 0326  B8 6C00               C1		MOV	AX,DOS_EXTENDED_OPEN			     ;;AN003;; Set INT 21 function
 0329  8D 36 ---- E          C1		LEA	SI,RESGROUP:COMSPEC			     ;;AN003;; Get addressibilty to COMMAND.
				COM
 032D  0E                    C1		PUSH	CS					     ;;AN003;;
 032E  1F                    C1		POP	DS					     ;;AN003;;
 032F  BF FFFF               C1		MOV	DI,-1					     ;;AN003;; No extended attribute list
 0332  BB 2000               C1		MOV	BX,NO_CRIT_OPEN 			     ;;AN003;; Don't generate critical error
 0335  BA 0101               C1		MOV	DX,NOT_EX_FAIL_EX_OPEN			     ;;AN003;; Open Flag
 0338  CD 21                 C1		INT	21H					     ;;AN003;; Open the file
 033A  5F                    C1		POP	DI					     ;;AN003;; Retreive LSEEK pointer
 033B  73 03                 C1		JNC $MXL1
 033D  E9 03C3 R             C1		JMP $MIF1
 0340                        C1	$MXL1:
 0340  57                    C1		  PUSH	  DI					     ;;AN003;; Save LSEEK pointer
 0341  8B D8                 C1		  MOV	  BX,AX 				     ;;AN003;;	 Set handle in BX
 0343  B8 4200               C1		  MOV	  AX,DOS_LSEEK_FILE			     ;;AN003;;	 LSEEK to the errors
 0346  33 C9                 C1		  XOR	  CX,CX 				     ;;AN003;;	   Value has been set by COM
				MAND.COM
 0348  8B D7                 C1		  MOV	  DX,DI 				     ;;AN003;;
 034A  CD 21                 C1		  INT	  21H					     ;;AN003;;	 LSEEK the file
 034C  5A                    C1		  POP	  DX					     ;;AN003;; Retreive LSEEK pointer
 034D  72 68                 C1		  JC $MIF2
 034F  41                    C1		    INC     CX					     ;;AN003;;	   Set flag to first pass
 0350                        C1	$MDO3:
 0350  52                    C1		      PUSH    DX				     ;;AN003;;	   Save LSEEK pointer
 0351  51                    C1		      PUSH    CX				     ;;AN003;;	   Save first pass flag
 0352  50                    C1		      PUSH    AX				     ;;AN003;;	   Save number of messages (
				if set yet)
 0353  33 F6                 C1		      XOR     SI,SI				     ;;AN003;;	   Reset buffer index
 0355  B4 3F                 C1		      MOV     AH,DOS_READ_BYTE			     ;;AN003;;	   Read
 0357  B9 0040               C1		      MOV     CX,$M_TEMP_BUF_SZ 		     ;;AN003;;	     the first part of the h
				eader
 035A  8D 16 0060 E          C1		      LEA     DX,$M_RT.$M_TEMP_BUF		     ;;AN003;;	       into the temp buffer
 035E  CD 21                 C1		      INT     21H				     ;;AN003;;	   Read it
 0360  8B FA                 C1		      MOV     DI,DX				     ;;AN003;;
 0362  58                    C1		      POP     AX				     ;;AN003;;
 0363  59                    C1		      POP     CX				     ;;AN003;;
 0364  0B C9                 C1		      OR      CX,CX				     ;;AN003;;
 0366  74 0E                 C1		      JZ $MIF4
 0368  33 C9                 C1			XOR	CX,CX				     ;;AN003;;	   Set flag to second pass
 036A  32 E4                 C1			XOR	AH,AH				     ;;AN003;;	   Get number of messages in
				 class
 036C  8A 45 03              C1			MOV	AL,DS:[DI].$M_NUM_CLS_MSG	     ;;AN003;;
 036F  BE 0004               C1			MOV	SI,$M_CLASS_ID_SZ		     ;;AN003;;	   Initialize index
 0372  83 7D 01 04           C1			CMP	DS:[DI].$M_COMMAND_VER,EXPECTED_VERSION ;;AN003;;  Is this the right version
				 of COMMAND.COM?
 0376                        C1	$MIF4:
 0376  5A                    C1		      POP     DX				     ;;AN003;;
 0377  75 1A                 C1		      JNZ $MIF6
 0379                        C1	$MDO7:
 0379  3B AC 0060 E          C1			  CMP	  BP,WORD PTR $M_RT.$M_TEMP_BUF[SI]  ;;AN003;;	     Is this the message I'm
				 looking for?
 037D  75 03                 C1			JNZ $MIF7
 037F  F8                    C1			  CLC					     ;;AN003;;	      Reset carry, exit sear
				ch
 0380  EB 0F                 C1			JMP SHORT $MSR7
 0382                        C1	$MIF7:
 0382  83 C6 04              C1			  ADD	  SI,$M_ID_SZ			     ;;AN003;;	      Increment index
 0385  83 C2 04              C1			  ADD	  DX,$M_ID_SZ			     ;;AN003;;	      Add offset of first he
				ader
 0388  48                    C1			  DEC	  AX				     ;;AN003;;	      Decrement # of message
				s left
 0389  74 05                 C1			JZ $MEN7
 038B  83 FE 3F              C1			  CMP	  SI,$M_TEMP_BUF_SZ-1		     ;;AN003;;	       No, Have we exhausted
				 the buffer?
 038E  76 E9                 C1			JNA $MDO7
 0390                        C1	$MEN7:
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-13
DOS - Message Retriever - DISK_PROC Module                  

 0390  F9                    C1			  STC					     ;;AN003;;	       Yes, (ZF=0) set error
				 (ZF=0)
 0391                        C1	$MSR7:
 0391  EB 03                 C1		      JMP SHORT $MEN6
 0393                        C1	$MIF6:
 0393  33 C9                 C1			XOR	CX,CX				     ;;AN003;;	     Set Zero flag to exit R
				EAD Loop
 0395  F9                    C1			STC					     ;;AN003;;	     Set Carry
 0396                        C1	$MEN6:
 0396  75 B8                 C1		    JNZ $MDO3
 0398  72 1D                 C1		    JC $MIF16
 039A  B8 4200               C1		      MOV     AX,DOS_LSEEK_FILE 		     ;;AN003;;	 Prepare to LSEEK to the spe
				cific message
 039D  33 C9                 C1		      XOR     CX,CX				     ;;AN003;;	 Value has been set by COMMA
				ND.COM
 039F  83 C2 04              C1		      ADD     DX,$M_CLASS_ID_SZ 		     ;;AN003;;	 Add offset of first header
 03A2  03 94 0062 E          C1		      ADD     DX,WORD PTR $M_RT.$M_TEMP_BUF[SI]+2    ;;AN003;;	 Add offset from msg structu
				re
 03A6  CD 21                 C1		      INT     21H				     ;;AN003;;	 LSEEK the file
 03A8  B4 3F                 C1		      MOV     AH,DOS_READ_BYTE			     ;;AN003;;	   Read
 03AA  B9 0040               C1		      MOV     CX,$M_TEMP_BUF_SZ 		     ;;AN003;;	     the message
 03AD  8D 16 0060 E          C1		      LEA     DX,$M_RT.$M_TEMP_BUF		     ;;AN003;;	       into the temp buffer
 03B1  CD 21                 C1		      INT     21H				     ;;AN003;;	   Read it
 03B3  8B FA                 C1		      MOV     DI,DX				     ;;AN003;;	       into the temp buffer
 03B5  1E                    C1		      PUSH    DS				     ;;AN003;;	       into the temp buffer
 03B6  07                    C1		      POP     ES				     ;;AN003;;	       into the temp buffer
 03B7                        C1	$MIF16:
 03B7                        C1	$MIF2:
 03B7  9C                    C1		  PUSHF 					     ;;AN003;;	   Close file handle
 03B8  B4 3E                 C1		  MOV	  AH,DOS_CLOSE_FILE			     ;;AN003;;	   Close file handle
 03BA  CD 21                 C1		  INT	  21H					     ;;AN003;;
 03BC  EB 01                 C2		   JMP	   $+3 
 03BE                        C2	??0005   LABEL   NEAR 
 03BE  CF                    C2		   IRET 
 03BF  0E                    C2		   PUSH    CS 
 03C0  E8 03BE R             C2		   CALL    ??0005 
 03C3                        C1	$MIF1:
 03C3  1F                    C1		POP	DS					     ;;AN003;;
 03C4  5D                    C1		POP	BP					     ;;AN003;;
 03C5  5E                    C1		POP	SI					     ;;AN003;;
 03C6  5A                    C1		POP	DX					     ;;AN003;;
 03C7  5B                    C1		POP	BX					     ;;AN003;;
 03C8  58                    C1		POP	AX					     ;;AN003;;
 03C9  CB                    C1		RET						     ;;AN003;;
 03CA                        C1	READ_DISK_PROC ENDP					     ;;AN003;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-14
DOS - Message Retriever - GETMSG.ASM Module                 

 03CA                        C1		SYSGETMSG PROC	NEAR				     ;;AN000;;
 03CA  50                    C1		PUSH	AX					     ;;AN000;; Save changed regs
 03CB  06                    C1		PUSH	ES					     ;;AN000;;
 03CC  57                    C1		PUSH	DI					     ;;AN000;;
 03CD  55                    C1		PUSH	BP					     ;;AN000;;
 03CE  E8 03E6 R             C1		CALL	$M_GET_MSG_ADDRESS			     ;;AN000;; Scan thru classes to find mes
				sage
 03D1  72 0E                 C1		JC $MIF31
 03D3  80 FE FF              C1		  CMP	  DH,UTILITY_MSG_CLASS
 03D6  F8                    C1		  CLC						     ;;AN000;;
 03D7  74 04                 C1		  JE $MIF32
 03D9  06                    C1		    PUSH    ES					     ;;AN000;;
 03DA  1F                    C1		    POP     DS					     ;;AN000;;	   Return message in DS:SI
 03DB  EB 02                 C1		  JMP SHORT $MEN32
 03DD                        C1	$MIF32:
 03DD  0E                    C1		    PUSH    CS					     ;;AN000;;	   Return message in DS:SI
 03DE  1F                    C1		    POP     DS					     ;;AN000;;
 03DF                        C1	$MEN32:
 03DF  8B F7                 C1		  MOV	  SI,DI 				     ;;AN000;;	   Return message in DS:SI
 03E1                        C1	$MIF31:
 03E1  5D                    C1		POP	BP					     ;;AN000;; Restore changed regs
 03E2  5F                    C1		POP	DI					     ;;AN000;;
 03E3  07                    C1		POP	ES					     ;;AN000;;
 03E4  58                    C1		POP	AX					     ;;AN000;;
 03E5  C3                    C1		RET						     ;;AN000;;	  Return
 03E6                        C1		SYSGETMSG ENDP					     ;;
 03E6                        C1		  $M_GET_MSG_ADDRESS PROC NEAR			     ;;AN000;;
 03E6  56                    C1		  PUSH	  SI					     ;;AN000;;
 03E7  53                    C1		  PUSH	  BX					     ;;AN000;;
 03E8  33 F6                 C1		  XOR	  SI,SI 				     ;;AN000;; Use SI as an index
 03EA  33 C9                 C1		  XOR	  CX,CX 				     ;;AN000;; Use CX as an size
 03EC                        C1	$MDO36:
 03EC  80 FE FF              C1		    CMP     DH,UTILITY_MSG_CLASS		     ;;AN000;; Were utility messages request
				ed?
 03EF  75 08                 C1		    JNE $MIF37
 03F1  8B BC 002C E          C1			MOV	DI,WORD PTR $M_RT.$M_CLASS_ADDRS[SI] ;;AN000;;	 Get address of class
 03F5  8B DF                 C1			MOV	BX,DI				     ;;AN000;
 03F7  EB 25                 C1		    JMP SHORT $MEN37
 03F9                        C1	$MIF37:
 03F9  F6 C6 02              C1		      TEST    DH,PARSE_ERR_CLASS		     ;;AN000;;	 Were parse errors requested
				?
 03FC  74 08                 C1		      JE $MIF39
 03FE  C4 BC 0010 E          C1			LES	DI,DWORD PTR $M_RT.$M_PARSE_COMMAND[SI] ;;AN000;;   Get address of class
 0402  8C C3                 C1			MOV	BX,ES				     ;;AN000;
 0404  EB 18                 C1		      JMP SHORT $MEN39
 0406                        C1	$MIF39:
 0406  3D 0013               C1			CMP	AX,$M_CRIT_LO			     ;;AN000;;	   Is this a critical error?
 0409  72 0D                 C1			JNAE $MIF41
 040B  3D 0027               C1			CMP	AX,$M_CRIT_HI			     ;;AN000;;
 040E  77 08                 C1			JNBE $MIF41
 0410  C4 BC 001C E          C1			  LES	  DI,DWORD PTR $M_RT.$M_CRIT_ADDRS[SI] ;;AN000;; Get address of class
 0414  8C C3                 C1			  MOV	  BX,ES 			     ;;AN000;
 0416  EB 06                 C1			JMP SHORT $MEN41
 0418                        C1	$MIF41:
 0418  C4 BC 0000 E          C1			  LES	  DI,DWORD PTR $M_RT.$M_EXT_ERR_ADDRS[SI] ;;AN000;; Get address of class
 041C  8C C3                 C1			  MOV	  BX,ES 			     ;;AN000;
 041E                        C1	$MEN41:
 041E                        C1	$MEN39:
 041E                        C1	$MEN37:
 041E  83 FB FF              C1		    CMP     BX,$M_TERMINATING_FLAG		     ;;AN000;; Are we finished all classes?
 0421  75 16                 C1		    JNE $MIF46
 0423  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN000;;	  Was it a UTILITY class?
 0426  75 03                 C1		      JNE $MIF47
 0428  F9                    C1			STC					     ;;AN000;;	    Set the carry flag
 0429  EB 0C                 C1		      JMP SHORT $MEN47
 042B                        C1	$MIF47:
 042B  A3 005C E             C1			MOV	$M_RT.$M_MSG_NUM,AX		     ;;AN000;;	    Save message number
 042E  B8 FFFF               C1			MOV	AX,$M_SPECIAL_MSG_NUM		     ;;AN000;;	    Set special message numb
				er
 0431  BD 0001               C1			MOV	BP,$M_ONE_REPLACE		     ;;AN000;;	    Set one replace in messa
				ge
 0434  33 F6                 C1			XOR	SI,SI				     ;;AN000;;	    Reset the SI index to st
				art again
 0436  F8                    C1			CLC					     ;;AN000;;
 0437                        C1	$MEN47:
 0437  EB 0C                 C1		    JMP SHORT $MEN46
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-15
DOS - Message Retriever - GETMSG.ASM Module                 

 0439                        C1	$MIF46:
 0439  83 FB 00              C1		      CMP     BX,$M_CLASS_NOT_EXIST		     ;;AN000;;	 Does this class exist?
 043C  74 03                 C1		      JE $MIF51
 043E  E8 0495 R             C1			CALL	$M_FIND_SPECIFIED_MSG		     ;;AN000;;	   Try to find the message
 0441                        C1	$MIF51:
 0441  83 C6 04              C1		      ADD     SI,$M_ADDR_SZ_FAR 		     ;;AN000;;	     Get next class
 0444  F8                    C1		      CLC					     ;;AN000;;
 0445                        C1	$MEN46:
 0445  72 06                 C1		  JC $MEN36
 0447  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	   Was the message found?
 0449  75 02                 C1		  JNZ $MXL2
 044B  EB 9F                 C1		  JMP $MDO36
 044D                        C1	$MXL2:
 044D                        C1	$MEN36:
 044D  9C                    C1		  PUSHF 					     ;;AN006;; Save the flag state
 044E  80 FE 01              C1		  CMP	  DH,EXT_ERR_CLASS			     ;;AN006;; Was an extended error request
				ed?
 0451  75 29                 C1		  JNE $MIF56
 0453  52                    C1		    PUSH    DX					     ;;AN006;;	Save all needed registers
 0454  55                    C1		    PUSH    BP					     ;;AN006;;
 0455  51                    C1		    PUSH    CX					     ;;AN006;;
 0456  06                    C1		    PUSH    ES					     ;;AN006;;
 0457  57                    C1		    PUSH    DI					     ;;AN006;;
 0458  50                    C1		    PUSH    AX					     ;;AN006;;
 0459  B8 0500               C1		    MOV     AX,IFSFUNC_INSTALL_CHECK		     ;;AN006;;	Check if IFSFUNC is installe
				d
 045C  CD 2F                 C1		    INT     2FH 				     ;;AN006;;
 045E  3C FF                 C1		    CMP     AL,IFSFUNC_INSTALLED		     ;;AN006;;	Is it installed?
 0460  58                    C1		    POP     AX					     ;;AN006;;	Restore msg number
 0461  75 09                 C1		    JNE $MIF57
 0463  8B D8                 C1		      MOV     BX,AX				     ;;AN006;;	  BX is the extended error n
				umber
 0465  B8 0502               C1		      MOV     AX,IFS_GET_ERR_TEXT		     ;;AN006;;	  AX is the muliplex number
 0468  CD 2F                 C1		      INT     2FH				     ;;AN006;;	  Call IFSFUNC
 046A  EB 01                 C1		    JMP SHORT $MEN57
 046C                        C1	$MIF57:
 046C  F9                    C1		      STC					     ;;AN006;;	  Carry conditon
 046D                        C1	$MEN57:
 046D  73 05                 C1		    JNC $MIF60
 046F  5F                    C1		      POP     DI				     ;;AN006;;	No,
 0470  07                    C1		      POP     ES				     ;;AN006;;	 Restore old pointer
 0471  59                    C1		      POP     CX				     ;;AN006;;
 0472  EB 06                 C1		    JMP SHORT $MEN60
 0474                        C1	$MIF60:
 0474  83 C4 06              C1		      ADD     SP,6				     ;;AN006;;	 Throw away old pointer
 0477  E8 0486 R             C1		      CALL    $M_SET_LEN_IN_CX			     ;;AN006;;	 Get the length of the ASCII
				Z string
 047A                        C1	$MEN60:
 047A  5D                    C1		    POP     BP					     ;;AN006;;	Restore other Regs
 047B  5A                    C1		    POP     DX					     ;;AN006;;
 047C                        C1	$MIF56:
 047C  EB 01                 C2		   JMP	   $+3 
 047E                        C2	??0006   LABEL   NEAR 
 047E  CF                    C2		   IRET 
 047F  0E                    C2		   PUSH    CS 
 0480  E8 047E R             C2		   CALL    ??0006 
 0483  5B                    C1		  POP	  BX					     ;;AN000;;
 0484  5E                    C1		  POP	  SI					     ;;AN000;;
 0485  C3                    C1		  RET						     ;;AN000;; Return ES:DI pointing to the 
				message
 0486                        C1	$M_GET_MSG_ADDRESS ENDP 				     ;;
 0486                        C1	$M_SET_LEN_IN_CX PROC NEAR				     ;;
 0486  57                    C1		  PUSH	  DI					     ;;AN006;; Save position
 0487  50                    C1		  PUSH	  AX					     ;;AN006;;
 0488  B9 FFFF               C1		  MOV	  CX,-1 				     ;;AN006;; Set CX for decrements
 048B  32 C0                 C1		  XOR	  AL,AL 				     ;;AN006;; Prepare compare register
 048D  F2/ AE                C1		  REPNE   SCASB 				     ;;AN006;; Scan for zero
 048F  F7 D1                 C1		  NOT	  CX					     ;;AN006;; Change decrement into number
 0491  49                    C1		  DEC	  CX					     ;;AN006;; Don't include the zero
 0492  58                    C1		  POP	  AX					     ;;AN006;;
 0493  5F                    C1		  POP	  DI					     ;;AN006;; Restore position
 0494  C3                    C1		  RET						     ;;AN006;;
 0495                        C1	$M_SET_LEN_IN_CX ENDP					     ;;
 0495                        C1	$M_FIND_SPECIFIED_MSG PROC NEAR 			     ;;AN000;;
 0495  83 FB 01              C1		  CMP	  BX,1					     ;;AN004;;	Do we have an address to CAL
				L?
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-16
DOS - Message Retriever - GETMSG.ASM Module                 

 0498  75 1D                 C1		  JNE $MIF64
 049A  83 3E 0028 E FF       C1		  CMP	  WORD PTR $M_RT.$M_DISK_PROC_ADDR,-1	     ;;AN004;;	Do we have an address to CAL
				L?
 049F  74 16                 C1		  JE $MIF64
 04A1  3D FFFF               C1		    CMP     AX,$M_SPECIAL_MSG_NUM		     ;;AN004;; Are we displaying a default E
				xt Err?
 04A4  75 0B                 C1		    JNE $MIF65
 04A6  50                    C1		      PUSH    AX				     ;;AN004;;	 Reset the special message n
				umber
 04A7  A1 005C E             C1		      MOV     AX,$M_RT.$M_MSG_NUM		     ;;AN004;;	 Get the old message number
 04AA  FF 1E 0028 E          C1		      CALL    DWORD PTR $M_RT.$M_DISK_PROC_ADDR      ;;AN004;;	 Call the READ_DISK_PROC to 
				get error text
 04AE  58                    C1		      POP     AX				     ;;AN004;;	 Reset the special message n
				umber
 04AF  EB 04                 C1		    JMP SHORT $MEN65
 04B1                        C1	$MIF65:
 04B1  FF 1E 0028 E          C1		      CALL    DWORD PTR $M_RT.$M_DISK_PROC_ADDR      ;;AN004;;	 Call the READ_DISK_PROC to 
				get error text
 04B5                        C1	$MEN65:
 04B5  EB 1A                 C1		  JMP SHORT $MEN64
 04B7                        C1	$MIF64:
 04B7  33 C9                 C1		    XOR     CX,CX				     ;;AN002;;	 CX = 0 will allow us to
 04B9  80 FE FF              C1		    CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;
 04BC  74 06                 C1		    JE $MIF69
 04BE  26: 8A 4D 03          C1		      MOV     CL,BYTE PTR ES:[DI].$M_NUM_CLS_MSG     ;;AN001;;	 Get number of messages in c
				lass
 04C2  EB 09                 C1		    JMP SHORT $MEN69
 04C4                        C1	$MIF69:
 04C4  2E: 38 35             C1		      CMP     BYTE PTR CS:[DI].$M_CLASS_ID,DH	     ;;AN002;; Check if class still exists a
				t
 04C7  75 04                 C1		      JNE $MIF71
 04C9  2E: 8A 4D 03          C1			MOV	CL,BYTE PTR CS:[DI].$M_NUM_CLS_MSG   ;;AN000;;	   Get number of messages in
				 class
 04CD                        C1	$MIF71:
 04CD                        C1	$MEN69:
 04CD  83 C7 04              C1		    ADD     DI,$M_CLASS_ID_SZ			     ;;AN000;;	   Point past the class head
				er
 04D0  F9                    C1		    STC 					     ;;AN004;;	 Flag that we haven't found 
				anything yet
 04D1                        C1	$MEN64:
 04D1  73 2D                 C1		  JNC $MIF75
 04D3  F8                    C1		    CLC 					     ;;AN004;; No, reset carry
 04D4                        C1	$MDO76:
 04D4  0B C9                 C1		      OR      CX,CX				     ;;AN000;;	  Do we have any to check?
 04D6  74 19                 C1		    JZ $MEN76
 04D8  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;
 04DB  74 05                 C1		      JE $MIF78
 04DD  26: 3B 05             C1			CMP	AX,WORD PTR ES:[DI].$M_NUM	     ;;AN001;; Is this the message requested
				?
 04E0  EB 03                 C1		      JMP SHORT $MEN78
 04E2                        C1	$MIF78:
 04E2  2E: 3B 05             C1			CMP	AX,WORD PTR CS:[DI].$M_NUM	     ;;AN000;; Is this the message requested
				?
 04E5                        C1	$MEN78:
 04E5  75 02                 C1		    JNE $MIF76
 04E7  EB 09                 C1		    JMP SHORT $MSR76
 04E9                        C1	$MIF76:
 04E9  49                    C1		      DEC     CX				     ;;AN000;;	  No, well do we have more t
				o check?
 04EA  74 05                 C1		    JZ $MEN76
 04EC  83 C7 04              C1		      ADD     DI,$M_ID_SZ			     ;;AN000;;	     Yes, skip past msg head
				er
 04EF  EB E3                 C1		    JMP SHORT $MDO76
 04F1                        C1	$MEN76:
 04F1  F9                    C1		      STC					     ;;AN000;;
 04F2                        C1	$MSR76:
 04F2  72 0C                 C1		    JC $MIF86
 04F4  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;	 Yes, is it a utility messag
				e?
 04F7  F8                    C1		      CLC					     ;;AN001;;
 04F8  75 02                 C1		      JNE $MIF87
 04FA  0E                    C1			PUSH	CS				     ;;AN000;;
 04FB  07                    C1			POP	ES				     ;;AN000;;	 Return ES:DI pointing to th
				e message
 04FC                        C1	$MIF87:
 04FC  26: 03 7D 02          C1		      ADD     DI,WORD PTR ES:[DI].$M_TXT_PTR	     ;;AN000;; Prepare ES:DI pointing to the
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-17
DOS - Message Retriever - GETMSG.ASM Module                 

				 message
 0500                        C1	$MIF86:
 0500                        C1	$MIF75:
 0500  72 06                 C1		  JC $MIF91
 0502  32 ED                 C1		    XOR     CH,CH				     ;;AN000;;
 0504  26: 8A 0D             C1		    MOV     CL,BYTE PTR ES:[DI] 		     ;;AN000;;	 Move size into CX
 0507  47                    C1		    INC     DI					     ;;AN000;;	 Increment past length
 0508                        C1	$MIF91:
 0508  C6 06 0056 E 00 90    C1		  MOV	  $M_RT.$M_SIZE,$M_NULL 		     ;;AN004;; Reset variable
 050E  C3                    C1		  RET						     ;;AN000;; Return
 050F                        C1	$M_FIND_SPECIFIED_MSG ENDP				     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-18
DOS - Message Retriever - DISPMSG.ASM Module                

 050F                        C1		SYSDISPMSG PROC NEAR				     ;;AN000;;
 050F  50                    C1		PUSH	AX					     ;;AN000;; Save changed REGs
 0510  53                    C1		PUSH	BX					     ;;AN000;;
 0511  51                    C1		PUSH	CX					     ;;AN000;;
 0512  55                    C1		PUSH	BP					     ;;AN000;;
 0513  57                    C1		PUSH	DI					     ;;AN000;; Save pointer to input buffer 
				(offset)
 0514  06                    C1		PUSH	ES					     ;;AN000;; Save pointer to input buffer 
				(segment)
 0515  52                    C1		PUSH	DX					     ;;AN000;; Save Input/Class request
 0516  8B E9                 C1		MOV	BP,CX					     ;;AN000;; Use BP to hold replace count
 0518  89 1E 0054 E          C1		MOV	WORD PTR $M_RT.$M_HANDLE,BX		     ;;AN000;; Save handle
 051C  88 36 0059 E          C1		MOV	BYTE PTR $M_RT.$M_CLASS,DH		     ;;AN004;; Save class
 0520  E8 03E6 R             C1		CALL	$M_GET_MSG_ADDRESS			     ;;AN000;; Scan thru classes to find mes
				sage
 0523  0B C9                 C1		OR	CX,CX					     ;;AN000;; Was message found?
 0525  74 1C                 C1		JZ $MIF93
 0527  0B ED                 C1		  OR	  BP,BP 				     ;;AN000;;	 Were replacable parameters 
				requested
 0529  75 05                 C1		  JNZ $MIF94
 052B  E8 0554 R             C1		    CALL    $M_DISPLAY_STRING			     ;;AN000;; No, great . . . Display messa
				ge
 052E  EB 03                 C1		  JMP SHORT $MEN94
 0530                        C1	$MIF94:
 0530  E8 05EA R             C1		    CALL    $M_DISPLAY_MESSAGE			     ;;AN000;;	 Display the message with su
				bstitutions
 0533                        C1	$MEN94:
 0533  72 08                 C1		  JC $MIF97
 0535  5A                    C1		    POP     DX					     ;;AN000;; Get Input/Class request
 0536  E8 0579 R             C1		    CALL    $M_ADD_CRLF 			     ;;AN004;; Check if we need to add the C
				R LF chars.
 0539  07                    C1		    POP     ES					     ;;AN000;; Get location of input buffer 
				(if specified)
 053A  5F                    C1		    POP     DI					     ;;AN000;;
 053B  EB 04                 C1		  JMP SHORT $MEN97
 053D                        C1	$MIF97:
 053D  83 C4 06              C1		    ADD     SP,6				     ;;AN000;;
 0540  F9                    C1		    STC 					     ;;AN000;; Reset carry flag
 0541                        C1	$MEN97:
 0541  EB 04                 C1		JMP SHORT $MEN93
 0543                        C1	$MIF93:
 0543  07                    C1		  POP	  ES					     ;;AN000;;	 Get pointer to input buffer
				 (segment)
 0544  5F                    C1		  POP	  DI					     ;;AN000;;	 Get base pointer to first s
				ublist (offset)
 0545  5A                    C1		  POP	  DX					     ;;AN000;;	 Get base pointer to first s
				ublist (segment)
 0546  F9                    C1		  STC						     ;;AN000;;	 Set carry flag
 0547                        C1	$MEN93:
 0547  72 06                 C1		JC $MIF104
 0549  5D                    C1		  POP	  BP					     ;;AN000;; No,
 054A  59                    C1		  POP	  CX					     ;;AN000;;
 054B  5B                    C1		  POP	  BX					     ;;AN000;;
 054C  58                    C1		  POP	  AX					     ;;AN000;;
 054D  EB 04                 C1		JMP SHORT $MEN104
 054F                        C1	$MIF104:
 054F  83 C4 08              C1		  ADD	  SP,8					     ;;AN000;;	   Eliminate from stack
 0552  F9                    C1		  STC						     ;;AN000;;
 0553                        C1	$MEN104:
 0553  C3                    C1		RET						     ;;AN000;; Return
 0554                        C1		SYSDISPMSG ENDP 				     ;;AN000;;
 0554                        C1	$M_DISPLAY_STRING PROC NEAR				     ;;AN000;;
 0554  50                    C1		PUSH	AX					     ;;AN000;;
 0555  53                    C1		PUSH	BX					     ;;AN000;;
 0556  52                    C1		PUSH	DX					     ;;AN000;;
 0557  8B 1E 0054 E          C1		MOV	BX,$M_RT.$M_HANDLE			     ;;AN000;; Retrieve handle
 055B  E8 0564 R             C1		CALL	$M_DISPLAY_$_STRING			     ;;AN000;; No, display $ terminated stri
				ng
 055E  72 03                 C1		JC $MIF117
 0560  5A                    C1		  POP	  DX					     ;;AN000;;	Restore regs
 0561  5B                    C1		  POP	  BX					     ;;AN000;;
 0562  58                    C1		  POP	  AX					     ;;AN000;;
 0563                        C1	$MIF117:
 0563  C3                    C1		RET						     ;;AN000;; Return
 0564                        C1	$M_DISPLAY_STRING ENDP					     ;;AN000;;
 0564                        C1	$M_DISPLAY_$_STRING PROC NEAR				     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-19
DOS - Message Retriever - DISPMSG.ASM Module                

 0564  1E                    C1		PUSH	DS					     ;;AN000;;
 0565  06                    C1		PUSH	ES					     ;;AN000;;
 0566  1F                    C1		POP	DS					     ;;AN000;; Set DS to segment of message 
				text
 0567  B4 02                 C1		  MOV	  AH,DOS_DISP_CHAR			     ;;AN000;;	 DOS Function to display CHA
				RACTER
 0569                        C1	$MDO123:
 0569  0B C9                 C1		    OR	    CX,CX				     ;;AN002;;	 Are there any left to displ
				ay?
 056B  74 09                 C1		  JZ $MEN123
 056D  26: 8A 15             C1		    MOV     DL,BYTE PTR ES:[DI] 		     ;;AN002;;	   Get the character
 0570  CD 21                 C1		    INT     21H 				     ;;AN002;;	   Display the character
 0572  47                    C1		    INC     DI					     ;;AN002;;	   Set pointer to next chara
				cter
 0573  49                    C1		    DEC     CX					     ;;AN002;;	   Count this character
 0574  75 F3                 C1		  JNZ $MDO123
 0576                        C1	$MEN123:
 0576  F8                    C1		CLC						     ;;AN000;;	 Char functions used don't r
				eturn carry as error
 0577  1F                    C1		POP	DS					     ;;AN000;;
 0578  C3                    C1		RET						     ;;AN000;;
 0579                        C1	$M_DISPLAY_$_STRING ENDP				     ;;AN000;;
 0579                        C1	$M_ADD_CRLF PROC NEAR					     ;;AN004;;
 0579  80 FE FF              C1		CMP	DH,UTILITY_MSG_CLASS			     ;;AN004;; Is it a utility message?
 057C  74 11                 C1		JE $MIF134
 057E  F6 C6 80              C1		  TEST	  DH,$M_NO_CRLF_MASK			     ;;AN004;;	 Are we to supress the CR LF
				?
 0581  75 0C                 C1		  JNZ $MIF135
 0583  1E                    C1		    PUSH    DS					     ;;AN004;;
 0584  07                    C1		    POP     ES					     ;;AN004;;	  Set ES to data segment
 0585  8D 3E 0057 E          C1		    LEA     DI,$M_RT.$M_CRLF			     ;;AN004;;	  Point at CRLF message
 0589  B9 0002               C1		    MOV     CX,$M_CRLF_SIZE			     ;;AN004;;	  Set the message size
 058C  E8 0554 R             C1		    CALL    $M_DISPLAY_STRING			     ;;AN004;;	  Display the CRLF
 058F                        C1	$MIF135:
 058F                        C1	$MIF134:
 058F  C3                    C1		RET						     ;;AN004;; Return
 0590                        C1	$M_ADD_CRLF ENDP					     ;;AN004;;
 0590                        C1	$M_IS_IT_DBCS PROC NEAR 				     ;;AN000;;
 0590  06                    C1		PUSH	ES					     ;;AN000;; Save Extra segment register
 0591  57                    C1		PUSH	DI					     ;;AN000;; Save SI register
 0592  C4 3E 0050 E          C1		LES	DI,$M_RT.$M_DBCS_VEC			     ;;AN000;;
 0596  0B FF                 C1		OR	DI,DI					     ;;AN000;; Was the DBCS vector set?
 0598  74 17                 C1		JZ $MIF138
 059A                        C1	$MDO139:
 059A  26: 83 3D 00          C1		    CMP     WORD PTR ES:[DI],$M_DBCS_TERM	     ;;AN000;; Is this the terminating flag?
 059E  F8                    C1		    CLC 					     ;;AN000;;
 059F  74 10                 C1		  JE $MEN139
 05A1  26: 3A 05             C1		    CMP     AL,BYTE PTR ES:[DI] 		     ;;AN000;;	  Does the character fall in
				 the DBCS range?
 05A4  72 07                 C1		    JNAE $MIF141
 05A6  26: 3A 45 01          C1		    CMP     AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	  Does the character fall in
				 the DBCS range?
 05AA  77 01                 C1		    JNBE $MIF141
 05AC  F9                    C1		      STC					     ;;AN000;;	  Yes,
 05AD                        C1	$MIF141:
 05AD  47                    C1		    INC     DI					     ;;AN000;;	  No,
 05AE  47                    C1		    INC     DI					     ;;AN000;;	     Go to next vector
 05AF  EB E9                 C1		  JMP SHORT $MDO139
 05B1                        C1	$MEN139:
 05B1                        C1	$MIF138:
 05B1  5F                    C1		POP	DI					     ;;AN000;;
 05B2  07                    C1		POP	ES					     ;;AN000;; Restore SI register
 05B3  C3                    C1		RET						     ;;AN000;; Return
 05B4                        C1	$M_IS_IT_DBCS ENDP					     ;;AN000;;
 05B4                        C1	$M_CONVERT2ASC PROC NEAR				     ;;AN000;;
 05B4  8F 06 005A E          C1		POP	[$M_RT.$M_RETURN_ADDR]			     ;;AN000;; Save Return Address
 05B8  33 DB                 C1		XOR	BX,BX					     ;;AN000;; Use BP as a swapping register
 05BA  93                    C1		XCHG	BX,AX					     ;;AN000;; Initialize - Low Word in BP
 05BB  92                    C1		XCHG	AX,DX					     ;;AN000;;		  - High Word in AX
 05BC                        C1	$MDO145:
 05BC  F7 36 005E E          C1		  DIV	  $M_RT.$M_DIVISOR			     ;;AN000;; Divide High Word by divisor
 05C0  93                    C1		  XCHG	  BX,AX 				     ;;AN000;; Setup to divide Low Word usin
				g remainder
 05C1  F7 36 005E E          C1		  DIV	  $M_RT.$M_DIVISOR			     ;;AN000;; Divide Low Word by divisor
 05C5  83 FA 09              C1		  CMP	  DX,9					     ;;AN000;;	Make a digit of the remainde
				r
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-20
DOS - Message Retriever - DISPMSG.ASM Module                

 05C8  76 05                 C1		  JNA $MIF146
 05CA  80 C2 37              C1		    ADD     DL,55				     ;;AN000;;	   Make A to F ASCII
 05CD  EB 03                 C1		  JMP SHORT $MEN146
 05CF                        C1	$MIF146:
 05CF  80 C2 30              C1		    ADD     DL,'0'				     ;;AN000;;	   Make 0 to 9 ASCII
 05D2                        C1	$MEN146:
 05D2  52                    C1		  PUSH	  DX					     ;;AN000;; Save the digit on the stack
 05D3  41                    C1		  INC	  CX					     ;;AN000;; Count that digit
 05D4  0B C0                 C1		  OR	  AX,AX 				     ;;AN000;; Are we done?
 05D6  75 04                 C1		JNZ $MLL149
 05D8  0B DB                 C1		  OR	  BX,BX 				     ;;AN000;; AX and BX must be ZERO!!
 05DA  74 05                 C1		JZ $MEN145
 05DC                        C1	$MLL149:
 05DC  93                    C1		  XCHG	  AX,BX 				     ;;AN000;;	 Setup to divide the reduced
				 High Word
 05DD  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;;	 Reset remainder
 05DF  EB DB                 C1		JMP SHORT $MDO145
 05E1                        C1	$MEN145:
 05E1  33 D2                 C1		XOR	DX,DX					     ;;AN000;;	 Reset remainder
 05E3  33 C0                 C1		XOR	AX,AX					     ;;AN000;;	 Reset remainder
 05E5  FF 36 005A E          C1		PUSH	[$M_RT.$M_RETURN_ADDR]			     ;;AN000;;	 Restore Return Address
 05E9  C3                    C1		RET						     ;;AN000;;	 Return
 05EA                        C1	$M_CONVERT2ASC ENDP					     ;;AN000;;
 05EA                        C1	$M_DISPLAY_MESSAGE PROC NEAR				     ;;AN000;;
 05EA                        C1	$MDO165:
 05EA  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;; Set size = 0
 05EC  0B C9                 C1		  OR	  CX,CX 				     ;;AN000;; Are we finished the message y
				et?
 05EE  74 21                 C1		  JZ $MIF166
 05F0  B4 25                 C1		    MOV     AH,"%"				     ;;AN000;;	 Prepare to scan for %
 05F2  B0 00                 C1		    MOV     AL,0				     ;;AN004;;
 05F4                        C1	$MDO167:
 05F4  26: 38 25             C1		      CMP     BYTE PTR ES:[DI],AH		     ;;AN000;;	 Is this character NOT a %
 05F7  75 0A                 C1		    JNE $MLL168
 05F9  26: 38 65 01          C1		      CMP     BYTE PTR ES:[DI+1],AH		     ;;AN000;;	   Is the next character als
				o a %
 05FD  74 04                 C1		    JE $MLL168
 05FF  3A C4                 C1		      CMP     AL,AH				     ;;AN000;;	     Was the character befor
				e a %
 0601  75 0E                 C1		    JNE $MEN167
 0603                        C1	$MLL168:
 0603  26: 8A 05             C1		      MOV     AL,BYTE PTR ES:[DI]		     ;;AN004;;	 Yes, (to any of the above)
 0606  E8 0590 R             C1		      CALL    $M_IS_IT_DBCS			     ;;AN004;;	   Is this character the fir
				st part of a DBCS?
 0609  73 01                 C1		      JNC $MIF169
 060B  47                    C1			INC	DI				     ;;AN004;;	     Increment past second p
				art
 060C                        C1	$MIF169:
 060C  47                    C1		      INC     DI				     ;;AN000;;	     Next character in strin
				g
 060D  42                    C1		      INC     DX				     ;;AN000;;	     Size = Size + 1
 060E  49                    C1		      DEC     CX				     ;;AN000;;	     Decrement total size
 060F  75 E3                 C1		    JNZ $MDO167
 0611                        C1	$MEN167:
 0611                        C1	$MIF166:
 0611  56                    C1		  PUSH	  SI					     ;;AN000;; Save beginning of sublists
 0612  87 CA                 C1		  XCHG	  CX,DX 				     ;;AN000;; Get size of message to displa
				y (tot sz in DX)
 0614  0B ED                 C1		  OR	  BP,BP 				     ;;AN000;; Do we have any replacables to
				 do?
 0616  74 33                 C1		  JZ $MIF173
 0618  4D                    C1		    DEC     BP					     ;;AN000;;	 Decrement number of replaca
				bles
 0619  83 3E 005C E 00       C1		    CMP     $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 061E  75 2B                 C1		    JNE $MIF174
 0620                        C1	$MDO175:
 0620  8A 44 06              C1			MOV	AL,$M_SL.$M_S_ID		     ;;AN000;;	 Get ID byte
 0623  04 30                 C1			ADD	AL,30H				     ;;AN000;;	 Convert to ASCII
 0625  26: 3A 45 01          C1			CMP	AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	 Is this the right sublist?
 0629  75 02                 C1		      JNE $MIF175
 062B  EB 1E                 C1		      JMP SHORT $MSR175
 062D                        C1	$MIF175:
 062D  3C 30                 C1			CMP	AL,$M_SPECIAL_CASE		     ;;AN000;;	   Does this sublist have ID
				 = 0
 062F  75 04                 C1		      JNE $MLL178
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-21
DOS - Message Retriever - DISPMSG.ASM Module                

 0631  0B D2                 C1			OR	DX,DX				     ;;AN000;;	   Are we at the end of the 
				message?
 0633  74 04                 C1		      JZ $MEN175
 0635                        C1	$MLL178:
 0635  03 34                 C1			ADD	SI,WORD PTR $M_SL.$M_S_SIZE	     ;;AN000;;	     Next SUBLIST
 0637  EB E7                 C1		      JMP SHORT $MDO175
 0639                        C1	$MEN175:
 0639  80 3E 0059 E FF       C1			CMP	$M_RT.$M_CLASS,UTILITY_MSG_CLASS     ;;AN004;;	     Is it a utility message
				?
 063E  75 08                 C1			JNE $MIF180
 0640  42                    C1			  INC	  DX				     ;;AN000;;	       Remember to display C
				R,LF
 0641  42                    C1			  INC	  DX				     ;;AN000;;		 at the end of the m
				essage
 0642  49                    C1			  DEC	  CX				     ;;AN000;;	       Adjust message length
 0643  49                    C1			  DEC	  CX				     ;;AN000;;
 0644  4F                    C1			  DEC	  DI				     ;;AN000;;	       Adjust ending address
				 of message
 0645  4F                    C1			  DEC	  DI				     ;;AN000;;
 0646  EB 03                 C1			JMP SHORT $MEN180
 0648                        C1	$MIF180:
 0648  BA FFFF               C1			  MOV	  DX,-1 			     ;;AN004;;	       Set special case
 064B                        C1	$MEN180:
 064B                        C1	$MSR175:
 064B                        C1	$MIF174:
 064B                        C1	$MIF173:
 064B  57                    C1		  PUSH	  DI					     ;;AN000;; Save pointer to replace numbe
				r
 064C  2B F9                 C1		  SUB	  DI,CX 				     ;;AN000;; Determine beginning of string
 064E  E8 0554 R             C1		  CALL	  $M_DISPLAY_STRING			     ;;AN000;; Display string until % (or en
				d)
 0651  5F                    C1		  POP	  DI					     ;;AN000;; Get back pointer to replace n
				umber
 0652  59                    C1		  POP	  CX					     ;;AN000;; Clean up stack in case error
 0653  73 03                 C1		JNC $MXL3
 0655  EB 7C 90              C1		JMP $MEN165
 0658                        C1	$MXL3:
 0658  51                    C1		  PUSH	  CX					     ;;AN000;;
 0659  8B CA                 C1		  MOV	  CX,DX 				     ;;AN000;; Get the size of the rest of t
				he message
 065B  80 7C 06 00           C1		  CMP	  $M_SL.$M_S_ID,$M_SPECIAL_CASE-30H	     ;;AN000;; Is this the %0 case?
 065F  74 0D                 C1		  JE $MIF187
 0661  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	Are we finished the whole me
				ssage?
 0663  74 06                 C1		    JZ $MIF188
 0665  49                    C1		      DEC     CX				     ;;AN000;;	  Decrement total size (%)
 0666  49                    C1		      DEC     CX				     ;;AN000;;	  Decrement total size (#)
 0667  47                    C1		      INC     DI				     ;;AN000;;	  Go past %
 0668  47                    C1		      INC     DI				     ;;AN000;;	  Go past replace number
 0669  EB 01                 C1		    JMP SHORT $MEN188
 066B                        C1	$MIF188:
 066B  5E                    C1		      POP     SI				     ;;AN000;;	  Get back pointer to beginn
				ing of SUBLISTs
 066C                        C1	$MEN188:
 066C  EB 10                 C1		  JMP SHORT $MEN187
 066E                        C1	$MIF187:
 066E  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	Are we finished the whole me
				ssage?
 0670  75 03                 C1		    JNZ $MIF192
 0672  5E                    C1		      POP     SI				     ;;AN000;;	 Get back pointer to beginni
				ng of SUBLISTs
 0673  EB 09                 C1		    JMP SHORT $MEN192
 0675                        C1	$MIF192:
 0675  83 F9 FF              C1		      CMP     CX,-1				     ;;AN004;;	 Are we at the end of the me
				ssage?
 0678  75 02                 C1		      JNZ $MIF194
 067A  33 C9                 C1			XOR	CX,CX				     ;;AN004;;
 067C                        C1	$MIF194:
 067C  0B FF                 C1		      OR      DI,DI				     ;;AN004;;	Turn ZF off
 067E                        C1	$MEN192:
 067E                        C1	$MEN187:
 067E  74 53                 C1		JZ $MEN165
 0680  55                    C1		  PUSH	  BP					     ;;AN000;;	 Save the replace count
 0681  57                    C1		  PUSH	  DI					     ;;AN000;;	 Save location to complete m
				essage
 0682  06                    C1		  PUSH	  ES					     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-22
DOS - Message Retriever - DISPMSG.ASM Module                

 0683  51                    C1		  PUSH	  CX					     ;;AN000;;	 Save size of the rest of th
				e message
 0684  33 C9                 C1		  XOR	  CX,CX 				     ;;AN000;;	 Reset CX used for character
				 count
 0686  83 3E 005C E 00       C1		  CMP	  $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 068B  75 2D                 C1		  JNE $MIF199
 068D  F6 44 07 0F           C1		    TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 0691  75 08                 C1		    JNZ $MIF200
 0693  C4 7C 02              C1		      LES     DI,DWORD PTR $M_SL.$M_S_VALUE	     ;;AN000;; Load pointer to replacing par
				ameter
 0696  E8 079E R             C1		      CALL    $M_CHAR_REPLACE			     ;;AN000;;
 0699  EB 1A                 C1		    JMP SHORT $MEN200
 069B                        C1	$MIF200:
 069B  F6 44 07 0D           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Sgn_Bin_Type AND $M_TYPE_MASK ;;AN000;;
 069F  74 0C                 C1		      JZ $MLL202
 06A1  F6 44 07 0E           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Unsgn_Bin_Type AND $M_TYPE_MASK ;;AN000;;
 06A5  74 06                 C1		      JZ $MLL202
 06A7  F6 44 07 0C           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Bin_Hex_Type AND $M_TYPE_MASK ;;AN000;;
 06AB  75 08                 C1		      JNZ $MIF202
 06AD                        C1	$MLL202:
 06AD  C4 7C 02              C1			LES	DI,DWORD PTR $M_SL.$M_S_VALUE	     ;;AN000;; Load pointer to replacing par
				ameter
 06B0  E8 07C6 R             C1			CALL	$M_BIN2ASC_REPLACE		     ;;AN000;;
 06B3  EB 00                 C1		      JMP SHORT $MEN202
 06B5                        C1	$MIF202:
 06B5                        C1	$MEN202:
 06B5                        C1	$MEN200:
 06B5  E8 06DA R             C1		    CALL    $M_DISPLAY_REPLACE			     ;;AN000;; Display the replace
 06B8  EB 00                 C1		  JMP SHORT $MEN199
 06BA                        C1	$MIF199:
 06BA                        C1	$MEN199:
 06BA  72 07                 C1		  JC $MIF211
 06BC  59                    C1		    POP     CX					     ;;AN000;; Get size of the rest of the m
				essage
 06BD  07                    C1		    POP     ES					     ;;AN000;; Get address of the rest of th
				e message
 06BE  5F                    C1		    POP     DI					     ;;AN000;;
 06BF  5D                    C1		    POP     BP					     ;;AN000;; Get replacment count
 06C0  5E                    C1		    POP     SI					     ;;AN000;; ELSE get address of first sub
				list structure
 06C1  EB 04                 C1		  JMP SHORT $MEN211
 06C3                        C1	$MIF211:
 06C3  83 C4 0A              C1		    ADD     SP,10				     ;;AN000;; Clean up stack if error
 06C6  F9                    C1		    STC 					     ;;AN000;;
 06C7                        C1	$MEN211:
 06C7  83 3E 005C E 00       C1		  CMP	  $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 06CC  75 05                 C1		JNE $MLL214
 06CE  72 03                 C1		JC $MXL4
 06D0  E9 05EA R             C1		JMP $MDO165
 06D3                        C1	$MXL4:
 06D3                        C1	$MLL214:
 06D3                        C1	$MEN165:
 06D3  C7 06 005C E 0000     C1		MOV	$M_RT.$M_MSG_NUM,0			     ;;AN000;; Reset message number to null
 06D9  C3                    C1		RET						     ;;AN000;; Return
 06DA                        C1	$M_DISPLAY_MESSAGE ENDP 				     ;;AN000;;
 06DA                        C1	$M_DISPLAY_REPLACE PROC NEAR				     ;;AN000;;
 06DA  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Use BX for buffer count
 06DC  5D                    C1		  POP	  BP					     ;;AN000;; Remember the return address
 06DD  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Use BX for buffer count
 06DF  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;; Use DX for count of parms tak
				en off the stack
 06E1  88 0E 0056 E          C1		  MOV	  $M_RT.$M_SIZE,CL			     ;;AN000;; Save size to later clear stac
				k
 06E5  8A 44 09              C1		  MOV	  AL,BYTE PTR $M_SL.$M_S_MINW		     ;;AN000;; Get the minimum width
 06E8  3A C1                 C1		  CMP	  AL,CL 				     ;;AN000;; Do we need pad chars added?
 06EA  76 1E                 C1		  JNA $MIF278
 06EC  2A C1                 C1		    SUB     AL,CL				     ;;AN000;;	 Calculate how many pad char
				s are needed.
 06EE  8A F0                 C1		    MOV     DH,AL				     ;;AN000;;	 Save the number of pad char
				acters
 06F0  F6 44 07 80           C1		    TEST    BYTE PTR $M_SL.$M_S_FLAG,Right_Align     ;;AN000;;	 Was replaceable parm to be 
				right aligned?
 06F4  74 14                 C1		    JZ $MIF279
 06F6                        C1	$MDO280:
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-23
DOS - Message Retriever - DISPMSG.ASM Module                

 06F6  8A 44 0A              C1			MOV	AL,BYTE PTR $M_SL.$M_S_PAD	     ;;AN000;;
 06F9  88 87 0060 E          C1			MOV	BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL    ;;AN000;;	   Move in a pad char
 06FD  43                    C1			INC	BX				     ;;AN000;;
 06FE  83 FB 40              C1			CMP	BX,$M_TEMP_BUF_SZ		     ;;AN000;;	   Is buffer full?
 0701  75 03                 C1			JNE $MIF281
 0703  E8 0782 R             C1			  CALL	  $M_FLUSH_BUF			     ;;AN000;;	     Flush the buffer
 0706                        C1	$MIF281:
 0706  FE CE                 C1			DEC	DH				     ;;AN000;;	   Have we filled with enoug
				h pad chars?
 0708  75 EC                 C1		      JNZ $MDO280
 070A                        C1	$MIF279:
 070A                        C1	$MIF278:
 070A  80 7C 08 00           C1		  CMP	  BYTE PTR $M_SL.$M_S_MAXW,$M_UNLIM_W	     ;;AN000;; Is maximum width unlimited?
 070E  74 0D                 C1		  JE $MIF286
 0710  38 4C 08              C1		    CMP     BYTE PTR $M_SL.$M_S_MAXW,CL 	     ;;AN000;; Will we exceed maximum width?
 0713  73 08                 C1		    JNB $MIF287
 0715  2A 4C 08              C1		      SUB     CL,BYTE PTR $M_SL.$M_S_MAXW	     ;;AN000;;	 Calculate how many extra ch
				ars
 0718  8A D1                 C1		      MOV     DL,CL				     ;;AN000;;	 Remember how many chars to 
				pop off
 071A  8A 4C 08              C1		      MOV     CL,BYTE PTR $M_SL.$M_S_MAXW	     ;;AN000;;	 Set new string length
 071D                        C1	$MIF287:
 071D                        C1	$MIF286:
 071D  0B C9                 C1		  OR	  CX,CX 				     ;;AN000;;
 071F  74 24                 C1		  JZ $MIF290
 0721                        C1	$MDO291:
 0721  F6 44 07 0F           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 0725  75 0C                 C1		      JNZ $MIF292
 0727  F6 44 07 10           C1		      TEST    $M_SL.$M_S_FLAG,Char_field_ASCIIZ AND $M_SIZE_MASK ;  Is this replace a ASCIIZ
				 string?
 072B  74 06                 C1		      JZ $MIF292
 072D  26: 8A 05             C1			MOV	AL,BYTE PTR ES:[DI]		     ;;AN000;;	 Get first character from st
				ring
 0730  47                    C1			INC	DI				     ;;AN000;;	 Next character in string
 0731  EB 01                 C1		      JMP SHORT $MEN292
 0733                        C1	$MIF292:
 0733  58                    C1			POP	AX				     ;;AN000;;	 Get character in register
 0734                        C1	$MEN292:
 0734  88 87 0060 E          C1		      MOV     BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL      ;;AN000;;	Move char into the buffer
 0738  43                    C1		      INC     BX				     ;;AN000;;	 Increase buffer count
 0739  83 FB 40              C1		      CMP     BX,$M_TEMP_BUF_SZ 		     ;;AN000;;	 Is buffer full?
 073C  75 03                 C1		      JNE $MIF295
 073E  E8 0782 R             C1			CALL	$M_FLUSH_BUF			     ;;AN000;;	   Flush the buffer
 0741                        C1	$MIF295:
 0741  FE C9                 C1		      DEC     CL				     ;;AN000;;	 Have we completed replace?
 0743  75 DC                 C1		    JNZ $MDO291
 0745                        C1	$MIF290:
 0745  F6 44 07 80           C1		  TEST	  BYTE PTR $M_SL.$M_S_FLAG,Right_Align	     ;;AN000;;	 Was replaceable parm to be 
				left aligned?
 0749  75 18                 C1		  JNZ $MIF299
 074B  0A F6                 C1		    OR	    DH,DH				     ;;AN000;;	 Do we need pad chars added?
 074D  74 14                 C1		    JZ $MIF300
 074F                        C1	$MDO301:
 074F  8A 44 0A              C1			MOV	AL,BYTE PTR $M_SL.$M_S_PAD	     ;;AN000;;
 0752  88 87 0060 E          C1			MOV	BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL    ;;AN000;;	   Move in a pad char
 0756  43                    C1			INC	BX				     ;;AN000;;
 0757  83 FB 40              C1			CMP	BX,$M_TEMP_BUF_SZ		     ;;AN000;;	   Is buffer full?
 075A  75 03                 C1			JNE $MIF302
 075C  E8 0782 R             C1			  CALL	  $M_FLUSH_BUF			     ;;AN000;;	     Flush the buffer
 075F                        C1	$MIF302:
 075F  FE CE                 C1			DEC	DH				     ;;AN000;;	   Have we filled with enoug
				h pad chars?
 0761  75 EC                 C1		      JNZ $MDO301
 0763                        C1	$MIF300:
 0763                        C1	$MIF299:
 0763  F6 44 07 0F           C1		  TEST	  BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 0767  75 08                 C1		  JNZ $MIF307
 0769  F6 44 07 10           C1		  TEST	  $M_SL.$M_S_FLAG,Char_field_ASCIIZ AND $M_SIZE_MASK ;;AN000;;	Is this replace a AS
				CIIZ string?
 076D  74 02                 C1		  JZ $MIF307
 076F  EB 0C                 C1		  JMP SHORT $MEN307
 0771                        C1	$MIF307:
 0771  0A D2                 C1		    OR	    DL,DL				     ;;AN000;;
 0773  74 08                 C1		    JE $MIF309
 0775                        C1	$MDO310:
 0775  8F 06 005A E          C1			POP	[$M_RT.$M_RETURN_ADDR]		     ;;AN000;;	 Clean Up stack using spare 
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-24
DOS - Message Retriever - DISPMSG.ASM Module                

				variable
 0779  FE CA                 C1			DEC	DL				     ;;AN000;;	 Are we done?
 077B  75 F8                 C1		      JNZ $MDO310
 077D                        C1	$MIF309:
 077D                        C1	$MEN307:
 077D  E8 0782 R             C1		  CALL	  $M_FLUSH_BUF				     ;;AN000;;	     Flush the buffer for th
				e final time
 0780  55                    C1		  PUSH	  BP					     ;;AN000;; Restore the return address
 0781  C3                    C1		  RET						     ;;AN000;;
 0782                        C1	$M_DISPLAY_REPLACE ENDP 				     ;;AN000;;
 0782                        C1	$M_FLUSH_BUF PROC NEAR					     ;;AN000;;
 0782  51                    C1		  PUSH	  CX					     ;;AN000;; Save changed regs
 0783  06                    C1		  PUSH	  ES					     ;;AN000;;
 0784  57                    C1		  PUSH	  DI					     ;;AN000;;
 0785  1E                    C1		  PUSH	  DS					     ;;AN000;; Set ES pointing to buffer
 0786  07                    C1		  POP	  ES					     ;;AN000;;
 0787  8B CB                 C1		  MOV	  CX,BX 				     ;;AN000;; Set number of bytes to displa
				y
 0789  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Reset buffer counter
 078B  8D 3E 0060 E          C1		  LEA	  DI,$M_RT.$M_TEMP_BUF			     ;;AN000;; Reset buffer location pointer
 078F  E8 0554 R             C1		  CALL	  $M_DISPLAY_STRING			     ;;AN000;; Display the buffer
 0792  72 05                 C1		  JC $MIF314
 0794  5F                    C1		    POP     DI					     ;;AN000;; No, Restore changed regs
 0795  07                    C1		    POP     ES					     ;;AN000;;
 0796  59                    C1		    POP     CX					     ;;AN000;;
 0797  EB 04                 C1		  JMP SHORT $MEN314
 0799                        C1	$MIF314:
 0799  83 C4 06              C1		    ADD     SP,6				     ;;AN000;;	Fix stack
 079C  F9                    C1		    STC 					     ;;AN000;;
 079D                        C1	$MEN314:
 079D  C3                    C1		  RET						     ;;AN000;; Return
 079E                        C1	$M_FLUSH_BUF ENDP					     ;;AN000;;
 079E                        C1	$M_CHAR_REPLACE PROC NEAR				     ;;AN000;;
 079E  5D                    C1		    POP     BP					     ;;AN000;; Save return address
 079F  F6 44 07 30           C1		    TEST    $M_SL.$M_S_FLAG,NOT Char_Field_Char AND $M_SIZE_MASK ;;AN000;; Was Character spe
				cified?
 07A3  75 12                 C1		    JNZ $MIF317
 07A5  26: 8A 05             C1		      MOV     AL,BYTE PTR ES:[DI]		     ;;AN000;;	 Get the character
 07A8  50                    C1		      PUSH    AX				     ;;AN000;;	 Put it on the stack
 07A9  41                    C1		      INC     CX				     ;;AN000;;	 Increase the count
 07AA  E8 0590 R             C1		      CALL    $M_IS_IT_DBCS			     ;;AN000;;	 Is this the first byte of a
				 DB character
 07AD  73 06                 C1		      JNC $MIF318
 07AF  26: 8A 45 01          C1			MOV	AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	   Get the next character
 07B3  50                    C1			PUSH	AX				     ;;AN000;;	   Put it on the stack
 07B4  F8                    C1			CLC					     ;;AN000;;	   Clear the carry
 07B5                        C1	$MIF318:
 07B5  EB 0D                 C1		    JMP SHORT $MEN317
 07B7                        C1	$MIF317:
 07B7                        C1	$MDO321:
 07B7  26: 8A 05             C1			MOV	AL,BYTE PTR ES:[DI]		     ;;AN000;;	 Get the character
 07BA  0A C0                 C1			OR	AL,AL				     ;;AN000;;	 Is it the NULL?
 07BC  74 04                 C1		      JZ $MEN321
 07BE  47                    C1			INC	DI				     ;;AN000;;	   Next character
 07BF  41                    C1			INC	CX				     ;;AN000;;	   Increment the count
 07C0  EB F5                 C1		      JMP SHORT $MDO321
 07C2                        C1	$MEN321:
 07C2  2B F9                 C1		      SUB     DI,CX				     ;;AN000;;	 Set SI at the beginning of 
				the string
 07C4                        C1	$MEN317:
 07C4  55                    C1		    PUSH    BP					     ;;AN000;; Restore return address
 07C5  C3                    C1		    RET 					     ;;AN000;; Return
 07C6                        C1	$M_CHAR_REPLACE ENDP					     ;;AN000;;
 07C6                        C1	$M_BIN2ASC_REPLACE PROC NEAR				     ;;AN000;;
 07C6  5D                    C1		    POP     BP					     ;;AN000;; Save return address
 07C7  33 D2                 C1		    XOR     DX,DX				     ;;AN000;; Prepare for get binary value 
				(HIGH)
 07C9  33 C0                 C1		    XOR     AX,AX				     ;;AN000;; Prepare for get binary value 
				(LOW)
 07CB  C7 06 005E E 0010     C1		    MOV     $M_RT.$M_DIVISOR,$M_BASE16		     ;;AN000;; Set default divisor
 07D1  33 DB                 C1		    XOR     BX,BX				     ;;AN000;; Use BP as the NEG flag (if ap
				plicable)
 07D3  F6 44 07 10           C1		      TEST    $M_SL.$M_S_FLAG,NOT $M_WORD AND $M_SIZE_MASK ;;AN000;; Was WORD specified?
 07D7  75 26                 C1		      JNZ $MIF333
 07D9  26: 8B 05             C1			MOV	AX, WORD PTR ES:[DI]		     ;;AN000;; Setup byte in AL
 07DC  F6 44 07 0D           C1			TEST	$M_SL.$M_S_FLAG,NOT Sgn_Bin_Type AND $M_TYPE_MASK ;; AN000;; Was Signed bina
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-25
DOS - Message Retriever - DISPMSG.ASM Module                

				ry specified?
 07E0  75 0F                 C1			JNZ $MIF334
 07E2  F6 C4 80              C1			  TEST	  AH,10000000b			     ;;AN000;; Is this number negative?
 07E5  74 04                 C1			  JZ $MIF335
 07E7  43                    C1			    INC     BX				     ;;AN000;;	   Remember that it was nega
				tive
 07E8  80 E4 7F              C1			    AND     AH,01111111b		     ;;AN000;;	   Make it positive
 07EB                        C1	$MIF335:
 07EB  C7 06 005E E 000A     C1			  MOV	  $M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 07F1                        C1	$MIF334:
 07F1  F6 44 07 0E           C1			TEST	$M_SL.$M_S_FLAG,NOT Unsgn_Bin_Type AND $M_TYPE_MASK ;;AN000;; Was Signed bin
				ary specified?
 07F5  75 06                 C1			JNZ $MIF338
 07F7  C7 06 005E E 000A     C1			  MOV	  $M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 07FD                        C1	$MIF338:
 07FD  EB 00                 C1		      JMP SHORT $MEN333
 07FF                        C1	$MIF333:
 07FF                        C1	$MEN333:
 07FF                        C1	$MEN325:
 07FF  E8 05B4 R             C1		    CALL    $M_CONVERT2ASC			     ;;AN000;; Convert to ASCII string
 0802  55                    C1		    PUSH    BP					     ;;AN000;; Restore return address
 0803  C3                    C1		    RET 					     ;;AN000;; Return
 0804                        C1	$M_BIN2ASC_REPLACE ENDP 				     ;;AN000;;
				
				PUBLIC		RES_CODE_END			;AN000;
 0804				RES_CODE_END	LABEL	BYTE			;AN000;
				
				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
			     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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Page     1-26
DOS - Message Retriever - DISPMSG.ASM Module                

			     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				 ;
			     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	
				
 0804				CODERES ENDS
					END

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   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:55
COMMAND Language modifiable Code Resident                   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
ABS_32RW . . . . . . . . . . . .  	000A	0003
  SECTOR_RBA . . . . . . . . . .  	0000
  ABS_RW_COUNT . . . . . . . . .  	0004
  BUFFER_ADDR  . . . . . . . . .  	0006
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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-3


  EMS_LAST_PAGE  . . . . . . . .  	000D
  EMS_FIRST_PAGE . . . . . . . .  	0011
  EMS_NPA640 . . . . . . . . . .  	0015
  EMS_MODE . . . . . . . . . . .  	0017
  EMS_HANDLE . . . . . . . . . .  	0018
  EMS_PAGEFRAME_NUMBER . . . . .  	001A
  EMS_SEG_CNT  . . . . . . . . .  	001C
  EMS_PAGE_FRAME . . . . . . . .  	001E
  EMS_RESERVED . . . . . . . . .  	0020
  EMS_MAP_BUFF . . . . . . . . .  	0022
CC_COLLATE_TAB . . . . . . . . .  	0102	0002
  CCCOLLATE_LENG . . . . . . . .  	0000
  CCCOLLATE_DATA . . . . . . . .  	0002
CC_DBCS_TAB  . . . . . . . . . .  	0008	0002
  CCDBCS_LENG  . . . . . . . . .  	0000
  CCDBCS_DATA  . . . . . . . . .  	0002
CC_FILE_CHAR_TAB . . . . . . . .  	0030	0002
  CCFILECHAR_LENG  . . . . . . .  	0000
  CCFILECHAR_DATA  . . . . . . .  	0002
CC_FILE_UCASE_TAB  . . . . . . .  	0082	0002
  CCFILEUCASE_LENG . . . . . . .  	0000
  CCFILEUCASE_DATA . . . . . . .  	0002
CC_UCASE_TAB . . . . . . . . . .  	0082	0002
  CCUCASE_LENG . . . . . . . . .  	0000
  CCUCASE_DATA . . . . . . . . .  	0002
CURDIR_LIST  . . . . . . . . . .  	0058	000A
  CURDIR_TEXT  . . . . . . . . .  	0000
  CURDIR_FLAGS . . . . . . . . .  	0043
  CURDIR_DEVPTR  . . . . . . . .  	0045
  CURDIR_ID  . . . . . . . . . .  	0049
  CURDIR_USER_WORD . . . . . . .  	004D
  CURDIR_END . . . . . . . . . .  	004F
  CURDIR_TYPE  . . . . . . . . .  	0051
  CURDIR_IFS_HDR . . . . . . . .  	0052
  CURDIR_FSDA  . . . . . . . . .  	0056
DIR_ENTRY  . . . . . . . . . . .  	0020	000B
  DIR_NAME . . . . . . . . . . .  	0000
  DIR_ATTR . . . . . . . . . . .  	000B
  DIR_CODEPG . . . . . . . . . .  	000C
  DIR_EXTCLUSTER . . . . . . . .  	000E
  DIR_ATTR2  . . . . . . . . . .  	0010
  DIR_PAD  . . . . . . . . . . .  	0011
  DIR_TIME . . . . . . . . . . .  	0016
  DIR_DATE . . . . . . . . . . .  	0018
  DIR_FIRST  . . . . . . . . . .  	001A
  DIR_SIZE_L . . . . . . . . . .  	001C
  DIR_SIZE_H . . . . . . . . . .  	001E
DOS_COUNTRY_CDPG_INFO  . . . . .  	008E	001E
  CCINFO_RESERVED  . . . . . . .  	0000
  CCPATH_COUNTRYSYS  . . . . . .  	0008
  CCSYSCODEPAGE  . . . . . . . .  	0048
  CCNUMBER_OF_ENTRIES  . . . . .  	004A
  CCSETUCASE . . . . . . . . . .  	004C
  CCUCASE_PTR  . . . . . . . . .  	004D
  CCSETUCASEFILE . . . . . . . .  	0051
  CCFILEUCASE_PTR  . . . . . . .  	0052
  CCSETFILELIST  . . . . . . . .  	0056
  CCFILECHAR_PTR . . . . . . . .  	0057
  CCSETCOLLATE . . . . . . . . .  	005B
  CCCOLLATE_PTR  . . . . . . . .  	005C
  CCSETDBCS  . . . . . . . . . .  	0060
  CCDBCS_PTR . . . . . . . . . .  	0061
  CCSETCOUNTRYINFO . . . . . . .  	0065
  CCCOUNTRYINFOLEN . . . . . . .  	0066
  CCDOSCOUNTRY . . . . . . . . .  	0068
  CCDOSCODEPAGE  . . . . . . . .  	006A
  CCDFORMAT  . . . . . . . . . .  	006C
  CCCURSYMBOL  . . . . . . . . .  	006E
  CC1000SEP  . . . . . . . . . .  	0073
  CCDECSEP . . . . . . . . . . .  	0075
  CCDATESEP  . . . . . . . . . .  	0077
  CCTIMESEP  . . . . . . . . . .  	0079
  CCCFORMAT  . . . . . . . . . .  	007B
  CCCSIGDIGITS . . . . . . . . .  	007C
  CCTFORMAT  . . . . . . . . . .  	007D
  CCMONO_PTR . . . . . . . . . .  	007E
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-4


  CCLISTSEP  . . . . . . . . . .  	0082
  CCRESERVED_AREA  . . . . . . .  	0084
DPB  . . . . . . . . . . . . . .  	0021	0012
  DPB_DRIVE  . . . . . . . . . .  	0000
  DPB_UNIT . . . . . . . . . . .  	0001
  DPB_SECTOR_SIZE  . . . . . . .  	0002
  DPB_CLUSTER_MASK . . . . . . .  	0004
  DPB_CLUSTER_SHIFT  . . . . . .  	0005
  DPB_FIRST_FAT  . . . . . . . .  	0006
  DPB_FAT_COUNT  . . . . . . . .  	0008
  DPB_ROOT_ENTRIES . . . . . . .  	0009
  DPB_FIRST_SECTOR . . . . . . .  	000B
  DPB_MAX_CLUSTER  . . . . . . .  	000D
  DPB_FAT_SIZE . . . . . . . . .  	000F
  DPB_DIR_SECTOR . . . . . . . .  	0011
  DPB_DRIVER_ADDR  . . . . . . .  	0013
  DPB_MEDIA  . . . . . . . . . .  	0017
  DPB_FIRST_ACCESS . . . . . . .  	0018
  DPB_NEXT_DPB . . . . . . . . .  	0019
  DPB_NEXT_FREE  . . . . . . . .  	001D
  DPB_FREE_CNT . . . . . . . . .  	001F
EXEC0  . . . . . . . . . . . . .  	000E	0004
  EXEC0_ENVIRON  . . . . . . . .  	0000
  EXEC0_COM_LINE . . . . . . . .  	0002
  EXEC0_5C_FCB . . . . . . . . .  	0006
  EXEC0_6C_FCB . . . . . . . . .  	000A
EXEC1  . . . . . . . . . . . . .  	0016	0008
  EXEC1_ENVIRON  . . . . . . . .  	0000
  EXEC1_COM_LINE . . . . . . . .  	0002
  EXEC1_5C_FCB . . . . . . . . .  	0006
  EXEC1_6C_FCB . . . . . . . . .  	000A
  EXEC1_SP . . . . . . . . . . .  	000E
  EXEC1_SS . . . . . . . . . . .  	0010
  EXEC1_IP . . . . . . . . . . .  	0012
  EXEC1_CS . . . . . . . . . . .  	0014
EXEC3  . . . . . . . . . . . . .  	0004	0002
  EXEC3_LOAD_ADDR  . . . . . . .  	0000
  EXEC3_RELOC_FAC  . . . . . . .  	0002
EXE_FILE . . . . . . . . . . . .  	0020	000F
  EXE_SIGNATURE  . . . . . . . .  	0000
  EXE_LEN_MOD_512  . . . . . . .  	0002
  EXE_PAGES  . . . . . . . . . .  	0004
  EXE_RLE_COUNT  . . . . . . . .  	0006
  EXE_PAR_DIR  . . . . . . . . .  	0008
  EXE_MIN_BSS  . . . . . . . . .  	000A
  EXE_MAX_BSS  . . . . . . . . .  	000C
  EXE_SS . . . . . . . . . . . .  	000E
  EXE_SP . . . . . . . . . . . .  	0010
  EXE_CHKSUM . . . . . . . . . .  	0012
  EXE_IP . . . . . . . . . . . .  	0014
  EXE_CS . . . . . . . . . . . .  	0016
  EXE_RLE_TABLE  . . . . . . . .  	0018
  EXE_IOV  . . . . . . . . . . .  	001A
  EXE_SYM_TAB  . . . . . . . . .  	001C
EXT_OPEN_PARM  . . . . . . . . .  	0006	0002
  EXT_SET_LIST . . . . . . . . .  	0000
  EXT_NUM_OF_PARM  . . . . . . .  	0004
FIND_BUF . . . . . . . . . . . .  	002B	000C
  FIND_BUF_DRIVE . . . . . . . .  	0000
  FIND_BUF_NAME  . . . . . . . .  	0001
  FIND_BUF_SATTR . . . . . . . .  	000C
  FIND_BUF_LASTENT . . . . . . .  	000D
  FIND_BUF_DIRSTART  . . . . . .  	000F
  FIND_BUF_NETID . . . . . . . .  	0011
  FIND_BUF_ATTR  . . . . . . . .  	0015
  FIND_BUF_TIME  . . . . . . . .  	0016
  FIND_BUF_DATE  . . . . . . . .  	0018
  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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-5


  TIME_SEP . . . . . . . . . . .  	000D
  BIT_FIELD  . . . . . . . . . .  	000F
  CURRENCY_CENTS . . . . . . . .  	0010
  TIME_24  . . . . . . . . . . .  	0011
  MAP_CALL . . . . . . . . . . .  	0012
  DATA_SEP . . . . . . . . . . .  	0016
IOCTL_REQ  . . . . . . . . . . .  	0017	0006
  MAJORFUNCTION  . . . . . . . .  	000D
  MINORFUNCTION  . . . . . . . .  	000E
  REG_SI . . . . . . . . . . . .  	000F
  REG_DI . . . . . . . . . . . .  	0011
  GENERICIOCTL_PACKET  . . . . .  	0013
MEDIA_ID_INFO  . . . . . . . . .  	0019	0004
  MEDIA_LEVEL  . . . . . . . . .  	0000
  MEDIA_SERIAL . . . . . . . . .  	0002
  MEDIA_LABEL  . . . . . . . . .  	0006
  MEDIA_SYSTEM . . . . . . . . .  	0011
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
SRHEAD . . . . . . . . . . . . .  	000D	0005
  REQLEN . . . . . . . . . . . .  	0000
  REQUNIT  . . . . . . . . . . .  	0001
  REQFUNC  . . . . . . . . . . .  	0002
  REQSTAT  . . . . . . . . . . .  	0003
SYMBOL_ENTRY . . . . . . . . . .  	0106	0004
  SYM_VALUE  . . . . . . . . . .  	0000
  SYM_TYPE . . . . . . . . . . .  	0004
  SYM_LEN  . . . . . . . . . . .  	0006
  SYM_NAME . . . . . . . . . . .  	0007
SYSDEV . . . . . . . . . . . . .  	0012	0005
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-6


  SDEVNEXT . . . . . . . . . . .  	0000
  SDEVATT  . . . . . . . . . . .  	0004
  SDEVSTRAT  . . . . . . . . . .  	0006
  SDEVINT  . . . . . . . . . . .  	0008
  SDEVNAME . . . . . . . . . . .  	000A
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
  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  . . . . . . . . . . .  	0804	BYTE	PUBLIC	
  DATARES  . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  BATARENA . . . . . . . . . . .  	0000	PARA	PUBLIC	
  BATSEG . . . . . . . . . . . .  	0000	PARA	PUBLIC	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-7


  ENVARENA . . . . . . . . . . .  	0000	PARA	PUBLIC	
  ENVIRONMENT  . . . . . . . . .  	0000	PARA	PUBLIC	
  INIT . . . . . . . . . . . . .  	0000	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	
ABORTCONT  . . . . . . . . . . .  	L NEAR	0234	CODERES
ABORTFOR . . . . . . . . . . . .  	L NEAR	0266	CODERES
abort_char . . . . . . . . . . .  	V BYTE	0000	DATARES	External
ABORT_PROCESS  . . . . . . . . .  	L NEAR	0210	CODERES
ACCDEN . . . . . . . . . . . . .  	NUMBER	00E6	
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	
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_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
ALT_MINOR_VERSION  . . . . . . .  	NUMBER	001A	
ANULL  . . . . . . . . . . . . .  	NUMBER	0000	
APPENDDOS  . . . . . . . . . . .  	NUMBER	B702	
APPENDGETSTATE . . . . . . . . .  	NUMBER	B706	
APPENDINSTALL  . . . . . . . . .  	NUMBER	B700	
APPENDSETSTATE . . . . . . . . .  	NUMBER	B707	
APPENDTRUENAME . . . . . . . . .  	NUMBER	B711	
ARENA_OWNER_SYSTEM . . . . . . .  	NUMBER	0000	
ARENA_SIGNATURE_END  . . . . . .  	NUMBER	005A	
ARENA_SIGNATURE_NORMAL . . . . .  	NUMBER	004D	
ARGBLEN  . . . . . . . . . . . .  	NUMBER	0100	
ARGMAX . . . . . . . . . . . . .  	NUMBER	0040	
ARG_BUF_OVFLOW . . . . . . . . .  	NUMBER	0002	
ARG_CNT_ERROR  . . . . . . . . .  	NUMBER	0001	
ASK  . . . . . . . . . . . . . .  	L NEAR	0152	CODERES
ASKEND . . . . . . . . . . . . .  	L NEAR	0000	CODERES	Global
ASKJ . . . . . . . . . . . . . .  	L NEAR	020B	CODERES
ASSIGNOPER . . . . . . . . . . .  	NUMBER	005F	
ATTR_ALL . . . . . . . . . . . .  	NUMBER	0016	
ATTR_ARCHIVE . . . . . . . . . .  	NUMBER	0020	
ATTR_CHANGEABLE  . . . . . . . .  	NUMBER	0027	
ATTR_DEVICE  . . . . . . . . . .  	NUMBER	0040	
ATTR_DIRECTORY . . . . . . . . .  	NUMBER	0010	
ATTR_HIDDEN  . . . . . . . . . .  	NUMBER	0002	
ATTR_IGNORE  . . . . . . . . . .  	NUMBER	0061	
ATTR_READ_ONLY . . . . . . . . .  	NUMBER	0001	
ATTR_SYSTEM  . . . . . . . . . .  	NUMBER	0004	
ATTR_VOLUME_ID . . . . . . . . .  	NUMBER	0008	
AUTO_COMMIT_WRITE  . . . . . . .  	NUMBER	4000	

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-8


BADCOMACCMES_PTR . . . . . . . .  	NUMBER	01D2	
BADCOMLKMES_PTR  . . . . . . . .  	NUMBER	01D1	
BADFAT . . . . . . . . . . . . .  	NUMBER	00DC	
badfat_block . . . . . . . . . .  	V BYTE	0000	DATARES	External
badfat_subst . . . . . . . . . .  	V BYTE	0000	DATARES	External
BADPARM_PTR  . . . . . . . . . .  	NUMBER	000A	
BADSWT_PTR . . . . . . . . . . .  	NUMBER	0003	
BADVER . . . . . . . . . . . . .  	NUMBER	01CD	
BATCHTYPE  . . . . . . . . . . .  	NUMBER	0000	
Batch_Abort  . . . . . . . . . .  	V BYTE	0000	DATARES	External
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	
BIN_HEX_WORD . . . . . . . . . .  	NUMBER	0023	
BLANK  . . . . . . . . . . . . .  	NUMBER	0020	
BLKERR . . . . . . . . . . . . .  	L NEAR	0132	CODERES
BMEMMES  . . . . . . . . . . . .  	NUMBER	00E7	
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	

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	
CDEVAT . . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
CHARDEV  . . . . . . . . . . . .  	NUMBER	8000	
CHARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
CHAR_FIELD_ASCIIZ  . . . . . . .  	NUMBER	0010	
CHAR_FIELD_CHAR  . . . . . . . .  	NUMBER	0000	
CHAR_OPER  . . . . . . . . . . .  	NUMBER	0037	
CHAR_TYPE  . . . . . . . . . . .  	NUMBER	0000	
CHDIR  . . . . . . . . . . . . .  	NUMBER	003B	
CHECKERRTYPE . . . . . . . . . .  	L NEAR	0103	CODERES
CHECKFORA  . . . . . . . . . . .  	L NEAR	0258	CODERES
CHECK_YES_NO . . . . . . . . . .  	NUMBER	0023	
CHMOD  . . . . . . . . . . . . .  	NUMBER	0043	
CLOSE  . . . . . . . . . . . . .  	NUMBER	003E	
COLON  . . . . . . . . . . . . .  	NUMBER	003A	
COLON_CHAR . . . . . . . . . . .  	NUMBER	003A	
COMBAD . . . . . . . . . . . . .  	NUMBER	00DD	
COMBUFLEN  . . . . . . . . . . .  	NUMBER	0080	
COMMIT . . . . . . . . . . . . .  	NUMBER	0068	
COMPRMT1 . . . . . . . . . . . .  	NUMBER	00DE	
COMR . . . . . . . . . . . . . .  	NUMBER	FFFF	
COMSPEC  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
COMT . . . . . . . . . . . . . .  	NUMBER	0000	
com_xlat_addr  . . . . . . . . .  	V WORD	0000	DATARES	External
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-9


CONTOLD  . . . . . . . . . . . .  	L NEAR	010F	CODERES
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	
CRITIFS  . . . . . . . . . . . .  	NUMBER	0006	
CRITMEM  . . . . . . . . . . . .  	NUMBER	0001	
CRITNET  . . . . . . . . . . . .  	NUMBER	0005	
CRITSFT  . . . . . . . . . . . .  	NUMBER	0001	
CRITSHARE  . . . . . . . . . . .  	NUMBER	0001	
crit_err_info  . . . . . . . . .  	V BYTE	0000	DATARES	External
CRIT_MSG_CLASS . . . . . . . . .  	NUMBER	0003	
crit_msg_off . . . . . . . . . .  	V WORD	0000	DATARES	External
crit_msg_seg . . . . . . . . . .  	V WORD	0000	DATARES	External
CRLF . . . . . . . . . . . . . .  	L NEAR	0297	CODERES	Global
CRT_IOCTL_LN . . . . . . . . . .  	NUMBER	000E	
CTRL_BREAK_FLAG  . . . . . . . .  	NUMBER	0200	
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	

DATEMSG  . . . . . . . . . . . .  	NUMBER	0000	
DATE_MD  . . . . . . . . . . . .  	NUMBER	0014	
DATE_MDY_2 . . . . . . . . . . .  	NUMBER	0024	
DATE_MDY_4 . . . . . . . . . . .  	NUMBER	0034	
DATE_TYPE  . . . . . . . . . . .  	NUMBER	0004	
DBCS . . . . . . . . . . . . . .  	NUMBER	0000	
dbcs_vector_addr . . . . . . . .  	V DWORD	0000	DATARES	External
DBCS_VOLID . . . . . . . . . . .  	NUMBER	0080	
DBCS_VOLID2  . . . . . . . . . .  	NUMBER	0100	
DBPBHL . . . . . . . . . . . . .  	NUMBER	0016	
DDKEY  . . . . . . . . . . . . .  	NUMBER	0400	
DEADINTHEWATER . . . . . . . . .  	L NEAR	0224	CODERES
DEALLOC  . . . . . . . . . . . .  	NUMBER	0049	
DEBUG  . . . . . . . . . . . . .  	NUMBER	0000	
DEV320 . . . . . . . . . . . . .  	NUMBER	0040	
DEVBPB . . . . . . . . . . . . .  	NUMBER	0002	
DEVCLS . . . . . . . . . . . . .  	NUMBER	000E	
DEVEMES  . . . . . . . . . . . .  	NUMBER	00DA	
devemes_block  . . . . . . . . .  	V BYTE	0000	DATARES	External
devemes_subst  . . . . . . . . .  	V BYTE	0000	DATARES	External
DEVENAM  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
deve_op_off  . . . . . . . . . .  	V WORD	0000	DATARES	External
DEVGETOWN  . . . . . . . . . . .  	NUMBER	0017	
DEVID_BLOCK_DEV  . . . . . . . .  	NUMBER	001F	
DEVID_DEVICE . . . . . . . . . .  	NUMBER	0080	
DEVID_DEVICE_CLOCK . . . . . . .  	NUMBER	0008	
DEVID_DEVICE_CON_IN  . . . . . .  	NUMBER	0001	
DEVID_DEVICE_CON_OUT . . . . . .  	NUMBER	0002	
DEVID_DEVICE_EOF . . . . . . . .  	NUMBER	0040	
DEVID_DEVICE_NULL  . . . . . . .  	NUMBER	0004	
DEVID_DEVICE_RAW . . . . . . . .  	NUMBER	0020	
DEVID_DEVICE_SPECIAL . . . . . .  	NUMBER	0010	
DEVID_EOF  . . . . . . . . . . .  	NUMBER	0040	
DEVID_FILE_CLEAN . . . . . . . .  	NUMBER	0040	
DEVID_FILE_MASK_DRIVE  . . . . .  	NUMBER	003F	
DEVID_ISCIN  . . . . . . . . . .  	NUMBER	0001	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-10


DEVID_ISCLK  . . . . . . . . . .  	NUMBER	0008	
DEVID_ISCOT  . . . . . . . . . .  	NUMBER	0002	
DEVID_ISDEV  . . . . . . . . . .  	NUMBER	0080	
DEVID_ISNUL  . . . . . . . . . .  	NUMBER	0004	
DEVID_RAW  . . . . . . . . . . .  	NUMBER	0020	
DEVID_SPECIAL  . . . . . . . . .  	NUMBER	0010	
DEVIFL . . . . . . . . . . . . .  	NUMBER	0007	
DEVINIT  . . . . . . . . . . . .  	NUMBER	0000	
DEVIOCTL . . . . . . . . . . . .  	NUMBER	4000	
DEVIST . . . . . . . . . . . . .  	NUMBER	0006	
DEVMDCH  . . . . . . . . . . . .  	NUMBER	0001	
DEVOFL . . . . . . . . . . . . .  	NUMBER	000B	
DEVOPCL  . . . . . . . . . . . .  	NUMBER	0800	
DEVOPN . . . . . . . . . . . . .  	NUMBER	000D	
DEVOST . . . . . . . . . . . . .  	NUMBER	000A	
DEVOUT . . . . . . . . . . . . .  	NUMBER	0010	
DEVOUTL  . . . . . . . . . . . .  	ALIAS	 DEVWRT		
DEVRD  . . . . . . . . . . . . .  	NUMBER	0004	
DEVRDIOCTL . . . . . . . . . . .  	NUMBER	0003	
DEVRDND  . . . . . . . . . . . .  	NUMBER	0005	
DEVRMD . . . . . . . . . . . . .  	NUMBER	000F	
DEVSETOWN  . . . . . . . . . . .  	NUMBER	0018	
DEVTYP . . . . . . . . . . . . .  	NUMBER	8000	
DEVWRIOCTL . . . . . . . . . . .  	NUMBER	000C	
DEVWRT . . . . . . . . . . . . .  	NUMBER	0008	
DEVWRTV  . . . . . . . . . . . .  	NUMBER	0009	
DFLSHL . . . . . . . . . . . . .  	NUMBER	000F	
DINITHL  . . . . . . . . . . . .  	NUMBER	001A	
DIRSTRLEN  . . . . . . . . . . .  	NUMBER	0043	
DIR_SEARCH_FIRST . . . . . . . .  	NUMBER	0011	
DIR_SEARCH_NEXT  . . . . . . . .  	NUMBER	0012	
DISABLE_EOF_I24  . . . . . . . .  	NUMBER	0040	
DISK_PROC  . . . . . . . . . . .  	NUMBER	0000	
DISK_RESET . . . . . . . . . . .  	NUMBER	000D	
DISPLAYMSG . . . . . . . . . . .  	NUMBER	0000	
disp_class . . . . . . . . . . .  	V BYTE	0000	DATARES	External
DMEDHL . . . . . . . . . . . . .  	NUMBER	000F	
DOLLAR . . . . . . . . . . . . .  	NUMBER	0024	
DOPCLHL  . . . . . . . . . . . .  	NUMBER	000D	
DOPROMPT . . . . . . . . . . . .  	L NEAR	01BC	CODERES
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	
DRDNDHL  . . . . . . . . . . . .  	NUMBER	000E	
DRDWRHL  . . . . . . . . . . . .  	NUMBER	0016	
DRVLET . . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-11


DRVNUM . . . . . . . . . . . . .  	NUMBER	00D9	
drvnum_block . . . . . . . . . .  	V BYTE	0000	DATARES	External
drvnum_op_off  . . . . . . . . .  	V WORD	0000	DATARES	External
drvnum_subst . . . . . . . . . .  	V BYTE	0000	DATARES	External
DSKERR . . . . . . . . . . . . .  	L NEAR	001D	CODERES	Global
DSKSIZ . . . . . . . . . . . . .  	NUMBER	000D	
DSTATHL  . . . . . . . . . . . .  	NUMBER	000D	
DUP_PDB  . . . . . . . . . . . .  	NUMBER	0055	

ECS_CALL . . . . . . . . . . . .  	NUMBER	0063	
EEXIT  . . . . . . . . . . . . .  	L NEAR	0278	CODERES
EEXITJ . . . . . . . . . . . . .  	L NEAR	020E	CODERES
EMGDEBUG . . . . . . . . . . . .  	NUMBER	0000	
EMS_MAP_BUFF_SIZE  . . . . . . .  	NUMBER	000C	
ENDBATMES  . . . . . . . . . . .  	NUMBER	00E0	
END_OF_LINE  . . . . . . . . . .  	NUMBER	-0001	
END_OF_LINE_IN . . . . . . . . .  	NUMBER	000D	
END_OF_LINE_OUT  . . . . . . . .  	NUMBER	0000	
ENTRYPOINT . . . . . . . . . . .  	NUMBER	00C0	
EQUAL_CHR  . . . . . . . . . . .  	NUMBER	003D	
ERR15MES . . . . . . . . . . . .  	NUMBER	00DB	
err15mes_block . . . . . . . . .  	V BYTE	0000	DATARES	External
err15mes_subst . . . . . . . . .  	V BYTE	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	
ERRCD_24 . . . . . . . . . . . .  	V WORD	0000	DATARES	External
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-12


ERROR_I24_NOT_READY  . . . . . .  	NUMBER	0002	
ERROR_I24_OUT_OF_PAPER . . . . .  	NUMBER	0009	
ERROR_I24_READ_FAULT . . . . . .  	NUMBER	000B	
ERROR_I24_SECTOR_NOT_FOUND . . .  	NUMBER	0008	
ERROR_I24_SEEK . . . . . . . . .  	NUMBER	0006	
ERROR_I24_WRITE_FAULT  . . . . .  	NUMBER	000A	
ERROR_I24_WRITE_PROTECT  . . . .  	NUMBER	0000	
ERROR_I24_WRONG_DISK . . . . . .  	NUMBER	000F	
ERROR_INVALID_ACCESS . . . . . .  	NUMBER	000C	
ERROR_INVALID_BLOCK  . . . . . .  	NUMBER	0009	
ERROR_INVALID_DATA . . . . . . .  	NUMBER	000D	
ERROR_INVALID_DRIVE  . . . . . .  	NUMBER	000F	
ERROR_INVALID_FUNCTION . . . . .  	NUMBER	0001	
ERROR_INVALID_HANDLE . . . . . .  	NUMBER	0006	
ERROR_INVALID_PARAMETER  . . . .  	NUMBER	0057	
ERROR_INVALID_PASSWORD . . . . .  	NUMBER	0056	
ERROR_LOCK_VIOLATION . . . . . .  	NUMBER	0021	
ERROR_NET_WRITE_FAULT  . . . . .  	NUMBER	0058	
ERROR_NOT_DOS_DISK . . . . . . .  	NUMBER	001A	
ERROR_NOT_ENOUGH_MEMORY  . . . .  	NUMBER	0008	
ERROR_NOT_READY  . . . . . . . .  	NUMBER	0015	
ERROR_NOT_SAME_DEVICE  . . . . .  	NUMBER	0011	
ERROR_NOT_SUPPORTED  . . . . . .  	NUMBER	0032	
ERROR_NO_MORE_FILES  . . . . . .  	NUMBER	0012	
ERROR_OUT_OF_PAPER . . . . . . .  	NUMBER	001C	
ERROR_OUT_OF_STRUCTURES  . . . .  	NUMBER	0054	
ERROR_PATH_NOT_FOUND . . . . . .  	NUMBER	0003	
ERROR_READ_FAULT . . . . . . . .  	NUMBER	001E	
ERROR_SECTOR_NOT_FOUND . . . . .  	NUMBER	001B	
ERROR_SEEK . . . . . . . . . . .  	NUMBER	0019	
ERROR_SHARING_BUFFER_EXCEEDED  .  	NUMBER	0024	
ERROR_SHARING_VIOLATION  . . . .  	NUMBER	0020	
ERROR_SYS_COMP_NOT_LOADED  . . .  	NUMBER	005A	
ERROR_TOO_MANY_OPEN_FILES  . . .  	NUMBER	0004	
ERROR_WRITE_FAULT  . . . . . . .  	NUMBER	001D	
ERROR_WRITE_PROTECT  . . . . . .  	NUMBER	0013	
ERROR_WRONG_DISK . . . . . . . .  	NUMBER	0022	
ErrType  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
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	
EXTDRVR  . . . . . . . . . . . .  	NUMBER	0002	
EXTENTBIT  . . . . . . . . . . .  	NUMBER	0400	
EXTHANDLE  . . . . . . . . . . .  	NUMBER	0067	
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_CLASS  . . . . . . . . .  	NUMBER	0001	
EXT_NEXISTS_CREATE . . . . . . .  	NUMBER	0010	
EXT_OPEN_I24_OFF . . . . . . . .  	NUMBER	0002	
EXT_OPEN_ON  . . . . . . . . . .  	NUMBER	0001	

FAIL_ALLOWED . . . . . . . . . .  	NUMBER	0008	
fail_char  . . . . . . . . . . .  	V BYTE	0000	DATARES	External
FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
FARMSG . . . . . . . . . . . . .  	NUMBER	0000	
FATERR . . . . . . . . . . . . .  	L NEAR	0284	CODERES
FBADSWITCH . . . . . . . . . . .  	NUMBER	4000	
FCB  . . . . . . . . . . . . . .  	NUMBER	005C	
FCBDEVICE  . . . . . . . . . . .  	NUMBER	0040	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-13


FCBMASK  . . . . . . . . . . . .  	NUMBER	00C0	
FCBNETWORK . . . . . . . . . . .  	NUMBER	0080	
FCBSHARE . . . . . . . . . . . .  	NUMBER	00C0	
FCBSPECIAL . . . . . . . . . . .  	NUMBER	0080	
FCB_CLOSE  . . . . . . . . . . .  	NUMBER	0010	
FCB_CREATE . . . . . . . . . . .  	NUMBER	0016	
FCB_DELETE . . . . . . . . . . .  	NUMBER	0013	
FCB_L_ATTR . . . . . . . . . . .  	BYTE	001E	
FCB_L_DRIVE  . . . . . . . . . .  	BYTE	0019	
FCB_L_FIRCLUS  . . . . . . . . .  	WORD	001A	
FCB_L_MFS  . . . . . . . . . . .  	WORD	001C	
FCB_NETID  . . . . . . . . . . .  	DWORD	001C	
FCB_NET_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NET_HANDLE . . . . . . . . .  	WORD	001A	
FCB_NSLD_DRIVE . . . . . . . . .  	BYTE	0019	
FCB_NSLD_DRVPTR  . . . . . . . .  	DWORD	001A	
FCB_NSL_BITS . . . . . . . . . .  	BYTE	001A	
FCB_NSL_DIRPOS . . . . . . . . .  	BYTE	001F	
FCB_NSL_DIRSEC . . . . . . . . .  	WORD	001D	
FCB_NSL_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NSL_FIRCLUS  . . . . . . . .  	WORD	001B	
FCB_OPEN . . . . . . . . . . . .  	NUMBER	000F	
FCB_RANDOM_READ  . . . . . . . .  	NUMBER	0021	
FCB_RANDOM_READ_BLOCK  . . . . .  	NUMBER	0027	
FCB_RANDOM_WRITE . . . . . . . .  	NUMBER	0022	
FCB_RANDOM_WRITE_BLOCK . . . . .  	NUMBER	0028	
FCB_RENAME . . . . . . . . . . .  	NUMBER	0017	
FCB_SEQ_READ . . . . . . . . . .  	NUMBER	0014	
FCB_SEQ_WRITE  . . . . . . . . .  	NUMBER	0015	
FCB_SFN  . . . . . . . . . . . .  	BYTE	0018	
FCHECKDRIVE  . . . . . . . . . .  	NUMBER	0001	
FCHK . . . . . . . . . . . . . .  	NUMBER	0001	
FDELIM . . . . . . . . . . . . .  	NUMBER	0002	
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	
FORCE_I24_FAIL . . . . . . . . .  	NUMBER	0020	
FORFLAG  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
FORMFD . . . . . . . . . . . . .  	NUMBER	000C	
FPARSE . . . . . . . . . . . . .  	NUMBER	0001	
FRETMES  . . . . . . . . . . . .  	NUMBER	00E9	
FROM_DISK_RESET  . . . . . . . .  	NUMBER	0004	
FROM_DOS_WRITE . . . . . . . . .  	NUMBER	0010	
FROM_STRING_OUTPUT . . . . . . .  	NUMBER	0008	
FSPCHK . . . . . . . . . . . . .  	NUMBER	0004	
FSWITCH  . . . . . . . . . . . .  	NUMBER	8000	
FSWITCHALLOWED . . . . . . . . .  	NUMBER	0002	
F_AUX  . . . . . . . . . . . . .  	NUMBER	0010	
F_CARRY  . . . . . . . . . . . .  	NUMBER	0001	
F_DIRECTION  . . . . . . . . . .  	NUMBER	0400	
F_INTERRUPT  . . . . . . . . . .  	NUMBER	0200	
F_OVERFLOW . . . . . . . . . . .  	NUMBER	0800	
F_PARITY . . . . . . . . . . . .  	NUMBER	0004	
F_SIGN . . . . . . . . . . . . .  	NUMBER	0080	
F_TRACE  . . . . . . . . . . . .  	NUMBER	0100	
F_ZERO . . . . . . . . . . . . .  	NUMBER	0040	

GENIOCTL . . . . . . . . . . . .  	NUMBER	0013	
GEN_IOCTL_FN_TST . . . . . . . .  	NUMBER	0020	
GEN_IOCTL_RD_TRK . . . . . . . .  	NUMBER	0060	
GEN_IOCTL_WRT_TRK  . . . . . . .  	NUMBER	0040	
GETCOMDSK2 . . . . . . . . . . .  	L NEAR	0000	CODERES	External
GETCURRENTPSP  . . . . . . . . .  	NUMBER	0062	
GETEXTCNTRY  . . . . . . . . . .  	NUMBER	0065	
GETEXTENDEDERROR . . . . . . . .  	NUMBER	0059	
GETINTERIMMODE . . . . . . . . .  	NUMBER	0002	
GETLEADBTBL  . . . . . . . . . .  	NUMBER	0000	
GETMSG . . . . . . . . . . . . .  	NUMBER	0000	
GETSETCDPG . . . . . . . . . . .  	NUMBER	0066	
GETSETMEDIAID  . . . . . . . . .  	NUMBER	0069	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-14


GET_CPSW . . . . . . . . . . . .  	NUMBER	0003	
GET_CRITICAL_MSG . . . . . . . .  	NUMBER	0004	
GET_CURRENT_PDB  . . . . . . . .  	NUMBER	0051	
GET_DATE . . . . . . . . . . . .  	NUMBER	002A	
GET_DEFAULT_DPB  . . . . . . . .  	NUMBER	001F	
GET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	0019	
GET_DMA  . . . . . . . . . . . .  	NUMBER	002F	
GET_DPB  . . . . . . . . . . . .  	NUMBER	0032	
GET_DRIVE_FREESPACE  . . . . . .  	NUMBER	0036	
GET_EXTENDED_MSG . . . . . . . .  	NUMBER	0000	
GET_FCB_FILE_LENGTH  . . . . . .  	NUMBER	0023	
GET_FCB_POSITION . . . . . . . .  	NUMBER	0024	
GET_GENERIC  . . . . . . . . . .  	NUMBER	007F	
GET_INDOS_FLAG . . . . . . . . .  	NUMBER	0034	
GET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0035	
GET_IN_VARS  . . . . . . . . . .  	NUMBER	0052	
GET_PARSE_MSG  . . . . . . . . .  	NUMBER	0002	
GET_TIME . . . . . . . . . . . .  	NUMBER	002C	
GET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	0054	
GET_VERSION  . . . . . . . . . .  	NUMBER	0030	
GET_VIDEO_STATE  . . . . . . . .  	NUMBER	000F	
GET_XA . . . . . . . . . . . . .  	NUMBER	0002	
GOTSTYLE . . . . . . . . . . . .  	L NEAR	00AC	CODERES

HALTMES  . . . . . . . . . . . .  	NUMBER	00E8	
HANDLE_FAIL_I24  . . . . . . . .  	NUMBER	0100	
HAVCOD . . . . . . . . . . . . .  	L NEAR	0098	CODERES
HEADER_PTR . . . . . . . . . . .  	NUMBER	01D0	
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		
IFSFUNC_INSTALLED  . . . . . . .  	NUMBER	00FF	
IFSFUNC_INSTALL_CHECK  . . . . .  	NUMBER	0500	
IFS_ABSRW  . . . . . . . . . . .  	NUMBER	0001	
IFS_DRIVE_RESET  . . . . . . . .  	NUMBER	0002	
IFS_GET_ERR_TEXT . . . . . . . .  	NUMBER	0502	
IFS_IOCTL  . . . . . . . . . . .  	NUMBER	006B	
IGNORE_ALLOWED . . . . . . . . .  	NUMBER	0020	
ignore_char  . . . . . . . . . .  	V BYTE	0000	DATARES	External
INITCTRLC  . . . . . . . . . . .  	NUMBER	0004	
InitFlag . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
INITINIT . . . . . . . . . . . .  	NUMBER	0001	
INITSPECIAL  . . . . . . . . . .  	NUMBER	0002	
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	
INTTAB . . . . . . . . . . . . .  	NUMBER	0020	
INT_24_ERROR . . . . . . . . . .  	NUMBER	2000	
INT_ABORT  . . . . . . . . . . .  	ALIAS	 INTTAB		
INT_COMMAND  . . . . . . . . . .  	NUMBER	0021	
INT_CTRL_C . . . . . . . . . . .  	NUMBER	0023	
INT_DISK_READ  . . . . . . . . .  	NUMBER	0025	
INT_DISK_WRITE . . . . . . . . .  	NUMBER	0026	
INT_FASTCON  . . . . . . . . . .  	NUMBER	0029	
INT_FATAL_ABORT  . . . . . . . .  	NUMBER	0024	
INT_IBM  . . . . . . . . . . . .  	NUMBER	002A	
INT_KEEP_PROCESS . . . . . . . .  	NUMBER	0027	
INT_SPOOLER  . . . . . . . . . .  	NUMBER	0028	
INT_TERMINATE  . . . . . . . . .  	NUMBER	0022	
INV_CP_TAG . . . . . . . . . . .  	NUMBER	0000	
In_Batch . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
IN_CHAR_XLAT . . . . . . . . . .  	N PROC	02C1	CODERES	Length = 001F
IN_CHAR_XLAT_END . . . . . . . .  	L NEAR	02DF	CODERES
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-15


IN_WORD  . . . . . . . . . . . .  	NUMBER	4E49	
IOCTL  . . . . . . . . . . . . .  	NUMBER	0044	
IO_MODE_ID . . . . . . . . . . .  	NUMBER	0002	
ISCIN  . . . . . . . . . . . . .  	NUMBER	0001	
ISCLOCK  . . . . . . . . . . . .  	NUMBER	0008	
ISCOUT . . . . . . . . . . . . .  	NUMBER	0002	
ISFATBYDEV . . . . . . . . . . .  	NUMBER	2000	
ISLEAD . . . . . . . . . . . . .  	L NEAR	02FE	CODERES
ISNET  . . . . . . . . . . . . .  	NUMBER	1000	
ISNULL . . . . . . . . . . . . .  	NUMBER	0004	
ISSPEC . . . . . . . . . . . . .  	NUMBER	0010	
ITESTKANJ  . . . . . . . . . . .  	L NEAR	02E0	CODERES	Global

JAPAN  . . . . . . . . . . . . .  	ALIAS	 FALSE		
JUSTEXIT . . . . . . . . . . . .  	L NEAR	0226	CODERES

KANJI  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KEEP_PROCESS . . . . . . . . . .  	NUMBER	0031	
KOREA  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KTLOP  . . . . . . . . . . . . .  	L NEAR	02E7	CODERES
KTRET  . . . . . . . . . . . . .  	L NEAR	0301	CODERES

LABRACKET  . . . . . . . . . . .  	NUMBER	003C	
LEFT_ALIGN . . . . . . . . . . .  	NUMBER	0000	
LENGTH_CALL  . . . . . . . . . .  	NUMBER	0004	
LESSARGS_PTR . . . . . . . . . .  	NUMBER	0002	
LF . . . . . . . . . . . . . . .  	NUMBER	000A	
LINESPERPAGE . . . . . . . . . .  	NUMBER	0019	
LOADING  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
LOADMSG  . . . . . . . . . . . .  	NUMBER	0000	
LOCKOPER . . . . . . . . . . . .  	NUMBER	005C	
LOCUS_39 . . . . . . . . . . . .  	NUMBER	0001	
LOWEST_4CH_VERSION . . . . . . .  	NUMBER	0002	
LOW_NIB_MASK . . . . . . . . . .  	NUMBER	000F	
LPAREN . . . . . . . . . . . . .  	NUMBER	0028	
LSEEK  . . . . . . . . . . . . .  	NUMBER	0042	

MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MAXBUCKETINPAGE  . . . . . . . .  	NUMBER	0002	
MAXBUFFINBUCKET  . . . . . . . .  	NUMBER	000F	
MAX_NEST . . . . . . . . . . . .  	NUMBER	000A	
MEMS . . . . . . . . . . . . . .  	NUMBER	0001	
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	
MREAD  . . . . . . . . . . . . .  	NUMBER	00D7	
MSGDATA  . . . . . . . . . . . .  	NUMBER	0000	
MSG_SERV_ST  . . . . . . . . . .  	L BYTE	031D	CODERES	Global
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	

NEARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
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	
NOCHECKSTDIN . . . . . . . . . .  	NUMBER	0000	
NOCHECKSTDOUT  . . . . . . . . .  	NUMBER	0000	
NOHANDLER  . . . . . . . . . . .  	L NEAR	00E9	CODERES
NOHANDMES  . . . . . . . . . . .  	NUMBER	00E4	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-16


NOHARDE  . . . . . . . . . . . .  	L NEAR	0061	CODERES
NONINTERIMMODE . . . . . . . . .  	NUMBER	0000	
NORMALERROR  . . . . . . . . . .  	L NEAR	00F6	CODERES
NORMPERLIN . . . . . . . . . . .  	NUMBER	0001	
NOT15  . . . . . . . . . . . . .  	L NEAR	017D	CODERES
NOTKANJ  . . . . . . . . . . . .  	L NEAR	01D0	CODERES
NOTLEAD  . . . . . . . . . . . .  	L NEAR	02FA	CODERES
NOT_BATCH_ABORT  . . . . . . . .  	L NEAR	0240	CODERES
NOT_EXISTS_MASK  . . . . . . . .  	NUMBER	00F0	
NOT_EX_FAIL_EX_OPEN  . . . . . .  	NUMBER	0101	
NOVERCHECKMSG  . . . . . . . . .  	NUMBER	0000	
no_char  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
NO_CODE_PAGE_CHECK . . . . . . .  	NUMBER	0100	
NO_CONT_FLAG . . . . . . . . . .  	NUMBER	0000	
NO_CRIT_OPEN . . . . . . . . . .  	NUMBER	2000	
NO_CTRL_BREAK_FLAG . . . . . . .  	NUMBER	FDFF	
NO_DISABLE_EOF_I24 . . . . . . .  	NUMBER	FFBF	
NO_ECHO  . . . . . . . . . . . .  	NUMBER	0000	
NO_ECHO_CHAR . . . . . . . . . .  	NUMBER	0040	
NO_FORCE_I24_FAIL  . . . . . . .  	NUMBER	FFDF	
NO_FROM_DISK_RESET . . . . . . .  	NUMBER	FFFB	
NO_FROM_DOS_WRITE  . . . . . . .  	NUMBER	FFEF	
NO_FROM_STRING_OUTPUT  . . . . .  	NUMBER	FFF7	
NO_HANDLE  . . . . . . . . . . .  	NUMBER	FFFF	
NO_HANDLE_OUT  . . . . . . . . .  	NUMBER	-0001	
NO_IFS_ABSRW . . . . . . . . . .  	NUMBER	FFFE	
NO_IFS_DRIVE_RESET . . . . . . .  	NUMBER	FFFD	
NO_INPUT . . . . . . . . . . . .  	NUMBER	0000	
NO_REPLACE . . . . . . . . . . .  	NUMBER	0000	
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	FFFF	

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	
olderrno . . . . . . . . . . . .  	V WORD	0000	DATARES	External
OLD_COUNTRY_SIZE . . . . . . . .  	NUMBER	0018	
ONE_SUBST  . . . . . . . . . . .  	NUMBER	0001	
OPEN . . . . . . . . . . . . . .  	NUMBER	003D	
OPEN_FOR_BOTH  . . . . . . . . .  	NUMBER	0002	
OPEN_FOR_READ  . . . . . . . . .  	NUMBER	0000	
OPEN_FOR_WRITE . . . . . . . . .  	NUMBER	0001	
OTHER_XLAT . . . . . . . . . . .  	L NEAR	02D5	CODERES
OUTENVERR_PTR  . . . . . . . . .  	NUMBER	01CF	
OUTTILBUSY . . . . . . . . . . .  	NUMBER	2000	
OWNHL  . . . . . . . . . . . . .  	NUMBER	000D	

PARENT . . . . . . . . . . . . .  	V WORD	0000	DATARES	External
PARM_BLOCK_SIZE  . . . . . . . .  	NUMBER	000B	
PARM_OFF_POS . . . . . . . . . .  	WORD	0002	
PARSE_ERR_CLASS  . . . . . . . .  	NUMBER	0002	
PARSE_FILE_DESCRIPTOR  . . . . .  	NUMBER	0029	
PARSE_MSG_CLASS  . . . . . . . .  	NUMBER	0002	
PATHPARSE  . . . . . . . . . . .  	NUMBER	0061	
PATH_SEP . . . . . . . . . . . .  		0002	
PATRICIDE  . . . . . . . . . . .  	NUMBER	00EA	
PDB_APPEND . . . . . . . . . . .  	BYTE	003D	
PDB_INTERCON . . . . . . . . . .  	BYTE	003C	
PERMCOM  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
PIPEFLAG . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
PLUS_CHR . . . . . . . . . . . .  	NUMBER	002B	
PROMPT . . . . . . . . . . . . .  	NUMBER	00DF	
PTR_OFF_POS  . . . . . . . . . .  	NUMBER	0005	
PTR_SEG_POS  . . . . . . . . . .  	NUMBER	0007	

RABRACKET  . . . . . . . . . . .  	NUMBER	003E	
RAW_CON_INPUT  . . . . . . . . .  	NUMBER	0007	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-17


RAW_CON_IO . . . . . . . . . . .  	NUMBER	0006	
RBADNAM  . . . . . . . . . . . .  	NUMBER	00E5	
READ . . . . . . . . . . . . . .  	NUMBER	003F	
READ_DISK_PROC . . . . . . . . .  	F PROC	031D	CODERES	Global	Length = 00AD
READ_OPEN_FLAG . . . . . . . . .  	NUMBER	0101	
READ_OPEN_MODE . . . . . . . . .  	NUMBER	0000	
REDIRECTOR . . . . . . . . . . .  	NUMBER	0000	
REMHL  . . . . . . . . . . . . .  	NUMBER	000D	
RemMsg . . . . . . . . . . . . .  	V DWORD	0000	DATARES	External
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	
RESET_MSG_POINTERS . . . . . . .  	N PROC	0305	CODERES	Global	Length = 0018
ResPipeOff . . . . . . . . . . .  	L NEAR	0000	CODERES	External
RESTHAND . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
RESTHD . . . . . . . . . . . . .  	L NEAR	027C	CODERES
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_CODE_END . . . . . . . . . .  	L BYTE	0804	CODERES	Global
RES_SUBST  . . . . . . . . . . .  	NUMBER	0002	
RETRY_ALLOWED  . . . . . . . . .  	NUMBER	0010	
retry_char . . . . . . . . . . .  	V BYTE	0000	DATARES	External
RET_L  . . . . . . . . . . . . .  	NEAR	0304	CODERES
RET_Z  . . . . . . . . . . . . .  	NEAR	0014	CODERES
RIGHT_ALIGN  . . . . . . . . . .  	NUMBER	0080	
RMDIR  . . . . . . . . . . . . .  	NUMBER	003A	
RPAREN . . . . . . . . . . . . .  	NUMBER	0029	
RPRINT . . . . . . . . . . . . .  	L NEAR	029A	CODERES	Global

SAVHAND  . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
SAVMES . . . . . . . . . . . . .  	L NEAR	006C	CODERES
SCROLL_VIDEO_PAGE  . . . . . . .  	NUMBER	0006	
SEARCH_ATTR  . . . . . . . . . .  	NUMBER	0013	
SEARCH_FASTOPEN  . . . . . . . .  	NUMBER	0400	
SEMICOLON  . . . . . . . . . . .  	NUMBER	003B	
SERVERCALL . . . . . . . . . . .  	NUMBER	005D	
SETALL . . . . . . . . . . . . .  	NUMBER	-0001	
SETBLOCK . . . . . . . . . . . .  	NUMBER	004A	
SETCOLLATE . . . . . . . . . . .  	NUMBER	0006	
SETCOUNTRYINFO . . . . . . . . .  	NUMBER	0001	
SETDBCS  . . . . . . . . . . . .  	NUMBER	0007	
SETDPB . . . . . . . . . . . . .  	NUMBER	0053	
SETFILELIST  . . . . . . . . . .  	NUMBER	0005	
SETINTERIMMODE . . . . . . . . .  	NUMBER	0001	
SETLCASE . . . . . . . . . . . .  	NUMBER	0003	
SETSTDIO . . . . . . . . . . . .  	NUMBER	0000	
SETSTYLE . . . . . . . . . . . .  	L NEAR	00A7	CODERES
SETUCASE . . . . . . . . . . . .  	NUMBER	0002	
SETUCASEFILE . . . . . . . . . .  	NUMBER	0004	
SET_COLOR_PALETTE  . . . . . . .  	NUMBER	000B	
SET_CRITICAL_MSG . . . . . . . .  	NUMBER	0005	
SET_CRIT_DEV . . . . . . . . . .  	NUMBER	0100	
SET_CTRL_C_TRAPPING  . . . . . .  	NUMBER	0033	
SET_CURRENT_PDB  . . . . . . . .  	NUMBER	0050	
SET_CURSOR_POSITION  . . . . . .  	NUMBER	0002	
SET_DATE . . . . . . . . . . . .  	NUMBER	002B	
SET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	000E	
SET_DMA  . . . . . . . . . . . .  	NUMBER	001A	
SET_EXTENDED_MSG . . . . . . . .  	NUMBER	0001	
SET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0025	
SET_OEM_HANDLER  . . . . . . . .  	NUMBER	00F8	
SET_PARSE_MSG  . . . . . . . . .  	NUMBER	0003	
SET_PRINTER_FLAG . . . . . . . .  	NUMBER	0064	
SET_TIME . . . . . . . . . . . .  	NUMBER	002D	
SET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	002E	
SET_VIDEO_MODE . . . . . . . . .  	NUMBER	0000	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-18


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	
SPECIAL_DELIM  . . . . . . . . .  		0007	
STAR . . . . . . . . . . . . . .  	NUMBER	002A	
STBUI  . . . . . . . . . . . . .  	NUMBER	0200	
STDAUX . . . . . . . . . . . . .  	NUMBER	0003	
STDERR . . . . . . . . . . . . .  	NUMBER	0002	
STDIN  . . . . . . . . . . . . .  	NUMBER	0000	
STDON  . . . . . . . . . . . . .  	NUMBER	0100	
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	
STECODE  . . . . . . . . . . . .  	NUMBER	00FF	
STERR  . . . . . . . . . . . . .  	NUMBER	8000	
SUBLIST_LENGTH . . . . . . . . .  	NUMBER	000B	
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 . . . . . . . . . . .  	N PROC	050F	CODERES	Global	Length = 0045
SYSGETMSG  . . . . . . . . . . .  	N PROC	03CA	CODERES	Global	Length = 001C

TAB  . . . . . . . . . . . . . .  	NUMBER	0009	
TAB_CHR  . . . . . . . . . . . .  	NUMBER	0009	
TEMPLEN  . . . . . . . . . . . .  	NUMBER	0086	
TERM_QUESTION  . . . . . . . . .  	L NEAR	01AA	CODERES
TESTKANJR  . . . . . . . . . . .  	L NEAR	02E0	CODERES
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-19


TIME_HHMMSS_24 . . . . . . . . .  	NUMBER	0016	
TIME_HHMMSS_CTY  . . . . . . . .  	NUMBER	0015	
TIME_HHMM_24 . . . . . . . . . .  	NUMBER	0006	
TIME_HHMM_CTY  . . . . . . . . .  	NUMBER	0005	
TOKENIZED  . . . . . . . . . . .  	NUMBER	0000	
TOOBIG . . . . . . . . . . . . .  	NUMBER	00E3	
TPLEN  . . . . . . . . . . . . .  	NUMBER	0040	
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	
TRY_FAIL . . . . . . . . . . . .  	L NEAR	019D	CODERES
TRY_IGNORE . . . . . . . . . . .  	L NEAR	0190	CODERES

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	
USEROPER . . . . . . . . . . . .  	NUMBER	005E	
USER_ABORT . . . . . . . . . . .  	L NEAR	01F4	CODERES
USER_RETRY . . . . . . . . . . .  	L NEAR	01E5	CODERES
UTILITY_MSG_CLASS  . . . . . . .  	NUMBER	00FF	
UTIL_MSG_CLASS . . . . . . . . .  	NUMBER	-0001	

VBAR . . . . . . . . . . . . . .  	NUMBER	007C	
VIDEO_ALPHA  . . . . . . . . . .  	NUMBER	0003	
VIDEO_ATTRIBUTE  . . . . . . . .  	NUMBER	0007	
VIDEO_BW . . . . . . . . . . . .  	NUMBER	0007	
VIDEO_IO_INT . . . . . . . . . .  	NUMBER	0010	
VolName  . . . . . . . . . . . .  	V BYTE	0000	DATARES	External

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

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

yes_char . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
YES_ECHO . . . . . . . . . . . .  	NUMBER	0001	

$MDO123  . . . . . . . . . . . .  	L NEAR	0569	CODERES
$MDO139  . . . . . . . . . . . .  	L NEAR	059A	CODERES
$MDO145  . . . . . . . . . . . .  	L NEAR	05BC	CODERES
$MDO165  . . . . . . . . . . . .  	L NEAR	05EA	CODERES
$MDO167  . . . . . . . . . . . .  	L NEAR	05F4	CODERES
$MDO175  . . . . . . . . . . . .  	L NEAR	0620	CODERES
$MDO280  . . . . . . . . . . . .  	L NEAR	06F6	CODERES
$MDO291  . . . . . . . . . . . .  	L NEAR	0721	CODERES
$MDO3  . . . . . . . . . . . . .  	L NEAR	0350	CODERES
$MDO301  . . . . . . . . . . . .  	L NEAR	074F	CODERES
$MDO310  . . . . . . . . . . . .  	L NEAR	0775	CODERES
$MDO321  . . . . . . . . . . . .  	L NEAR	07B7	CODERES
$MDO36 . . . . . . . . . . . . .  	L NEAR	03EC	CODERES
$MDO7  . . . . . . . . . . . . .  	L NEAR	0379	CODERES
$MDO76 . . . . . . . . . . . . .  	L NEAR	04D4	CODERES
$MEN104  . . . . . . . . . . . .  	L NEAR	0553	CODERES
$MEN123  . . . . . . . . . . . .  	L NEAR	0576	CODERES
$MEN139  . . . . . . . . . . . .  	L NEAR	05B1	CODERES
$MEN145  . . . . . . . . . . . .  	L NEAR	05E1	CODERES
$MEN146  . . . . . . . . . . . .  	L NEAR	05D2	CODERES
$MEN165  . . . . . . . . . . . .  	L NEAR	06D3	CODERES
$MEN167  . . . . . . . . . . . .  	L NEAR	0611	CODERES
$MEN175  . . . . . . . . . . . .  	L NEAR	0639	CODERES
$MEN180  . . . . . . . . . . . .  	L NEAR	064B	CODERES
$MEN187  . . . . . . . . . . . .  	L NEAR	067E	CODERES
$MEN188  . . . . . . . . . . . .  	L NEAR	066C	CODERES
$MEN192  . . . . . . . . . . . .  	L NEAR	067E	CODERES
$MEN199  . . . . . . . . . . . .  	L NEAR	06BA	CODERES
$MEN200  . . . . . . . . . . . .  	L NEAR	06B5	CODERES
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-20


$MEN202  . . . . . . . . . . . .  	L NEAR	06B5	CODERES
$MEN211  . . . . . . . . . . . .  	L NEAR	06C7	CODERES
$MEN292  . . . . . . . . . . . .  	L NEAR	0734	CODERES
$MEN307  . . . . . . . . . . . .  	L NEAR	077D	CODERES
$MEN314  . . . . . . . . . . . .  	L NEAR	079D	CODERES
$MEN317  . . . . . . . . . . . .  	L NEAR	07C4	CODERES
$MEN32 . . . . . . . . . . . . .  	L NEAR	03DF	CODERES
$MEN321  . . . . . . . . . . . .  	L NEAR	07C2	CODERES
$MEN325  . . . . . . . . . . . .  	L NEAR	07FF	CODERES
$MEN333  . . . . . . . . . . . .  	L NEAR	07FF	CODERES
$MEN36 . . . . . . . . . . . . .  	L NEAR	044D	CODERES
$MEN37 . . . . . . . . . . . . .  	L NEAR	041E	CODERES
$MEN39 . . . . . . . . . . . . .  	L NEAR	041E	CODERES
$MEN41 . . . . . . . . . . . . .  	L NEAR	041E	CODERES
$MEN46 . . . . . . . . . . . . .  	L NEAR	0445	CODERES
$MEN47 . . . . . . . . . . . . .  	L NEAR	0437	CODERES
$MEN57 . . . . . . . . . . . . .  	L NEAR	046D	CODERES
$MEN6  . . . . . . . . . . . . .  	L NEAR	0396	CODERES
$MEN60 . . . . . . . . . . . . .  	L NEAR	047A	CODERES
$MEN64 . . . . . . . . . . . . .  	L NEAR	04D1	CODERES
$MEN65 . . . . . . . . . . . . .  	L NEAR	04B5	CODERES
$MEN69 . . . . . . . . . . . . .  	L NEAR	04CD	CODERES
$MEN7  . . . . . . . . . . . . .  	L NEAR	0390	CODERES
$MEN76 . . . . . . . . . . . . .  	L NEAR	04F1	CODERES
$MEN78 . . . . . . . . . . . . .  	L NEAR	04E5	CODERES
$MEN93 . . . . . . . . . . . . .  	L NEAR	0547	CODERES
$MEN94 . . . . . . . . . . . . .  	L NEAR	0533	CODERES
$MEN97 . . . . . . . . . . . . .  	L NEAR	0541	CODERES
$MIF1  . . . . . . . . . . . . .  	L NEAR	03C3	CODERES
$MIF104  . . . . . . . . . . . .  	L NEAR	054F	CODERES
$MIF117  . . . . . . . . . . . .  	L NEAR	0563	CODERES
$MIF134  . . . . . . . . . . . .  	L NEAR	058F	CODERES
$MIF135  . . . . . . . . . . . .  	L NEAR	058F	CODERES
$MIF138  . . . . . . . . . . . .  	L NEAR	05B1	CODERES
$MIF141  . . . . . . . . . . . .  	L NEAR	05AD	CODERES
$MIF146  . . . . . . . . . . . .  	L NEAR	05CF	CODERES
$MIF16 . . . . . . . . . . . . .  	L NEAR	03B7	CODERES
$MIF166  . . . . . . . . . . . .  	L NEAR	0611	CODERES
$MIF169  . . . . . . . . . . . .  	L NEAR	060C	CODERES
$MIF173  . . . . . . . . . . . .  	L NEAR	064B	CODERES
$MIF174  . . . . . . . . . . . .  	L NEAR	064B	CODERES
$MIF175  . . . . . . . . . . . .  	L NEAR	062D	CODERES
$MIF180  . . . . . . . . . . . .  	L NEAR	0648	CODERES
$MIF187  . . . . . . . . . . . .  	L NEAR	066E	CODERES
$MIF188  . . . . . . . . . . . .  	L NEAR	066B	CODERES
$MIF192  . . . . . . . . . . . .  	L NEAR	0675	CODERES
$MIF194  . . . . . . . . . . . .  	L NEAR	067C	CODERES
$MIF199  . . . . . . . . . . . .  	L NEAR	06BA	CODERES
$MIF2  . . . . . . . . . . . . .  	L NEAR	03B7	CODERES
$MIF200  . . . . . . . . . . . .  	L NEAR	069B	CODERES
$MIF202  . . . . . . . . . . . .  	L NEAR	06B5	CODERES
$MIF211  . . . . . . . . . . . .  	L NEAR	06C3	CODERES
$MIF278  . . . . . . . . . . . .  	L NEAR	070A	CODERES
$MIF279  . . . . . . . . . . . .  	L NEAR	070A	CODERES
$MIF281  . . . . . . . . . . . .  	L NEAR	0706	CODERES
$MIF286  . . . . . . . . . . . .  	L NEAR	071D	CODERES
$MIF287  . . . . . . . . . . . .  	L NEAR	071D	CODERES
$MIF290  . . . . . . . . . . . .  	L NEAR	0745	CODERES
$MIF292  . . . . . . . . . . . .  	L NEAR	0733	CODERES
$MIF295  . . . . . . . . . . . .  	L NEAR	0741	CODERES
$MIF299  . . . . . . . . . . . .  	L NEAR	0763	CODERES
$MIF300  . . . . . . . . . . . .  	L NEAR	0763	CODERES
$MIF302  . . . . . . . . . . . .  	L NEAR	075F	CODERES
$MIF307  . . . . . . . . . . . .  	L NEAR	0771	CODERES
$MIF309  . . . . . . . . . . . .  	L NEAR	077D	CODERES
$MIF31 . . . . . . . . . . . . .  	L NEAR	03E1	CODERES
$MIF314  . . . . . . . . . . . .  	L NEAR	0799	CODERES
$MIF317  . . . . . . . . . . . .  	L NEAR	07B7	CODERES
$MIF318  . . . . . . . . . . . .  	L NEAR	07B5	CODERES
$MIF32 . . . . . . . . . . . . .  	L NEAR	03DD	CODERES
$MIF333  . . . . . . . . . . . .  	L NEAR	07FF	CODERES
$MIF334  . . . . . . . . . . . .  	L NEAR	07F1	CODERES
$MIF335  . . . . . . . . . . . .  	L NEAR	07EB	CODERES
$MIF338  . . . . . . . . . . . .  	L NEAR	07FD	CODERES
$MIF37 . . . . . . . . . . . . .  	L NEAR	03F9	CODERES
$MIF39 . . . . . . . . . . . . .  	L NEAR	0406	CODERES
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-21


$MIF4  . . . . . . . . . . . . .  	L NEAR	0376	CODERES
$MIF41 . . . . . . . . . . . . .  	L NEAR	0418	CODERES
$MIF46 . . . . . . . . . . . . .  	L NEAR	0439	CODERES
$MIF47 . . . . . . . . . . . . .  	L NEAR	042B	CODERES
$MIF51 . . . . . . . . . . . . .  	L NEAR	0441	CODERES
$MIF56 . . . . . . . . . . . . .  	L NEAR	047C	CODERES
$MIF57 . . . . . . . . . . . . .  	L NEAR	046C	CODERES
$MIF6  . . . . . . . . . . . . .  	L NEAR	0393	CODERES
$MIF60 . . . . . . . . . . . . .  	L NEAR	0474	CODERES
$MIF64 . . . . . . . . . . . . .  	L NEAR	04B7	CODERES
$MIF65 . . . . . . . . . . . . .  	L NEAR	04B1	CODERES
$MIF69 . . . . . . . . . . . . .  	L NEAR	04C4	CODERES
$MIF7  . . . . . . . . . . . . .  	L NEAR	0382	CODERES
$MIF71 . . . . . . . . . . . . .  	L NEAR	04CD	CODERES
$MIF75 . . . . . . . . . . . . .  	L NEAR	0500	CODERES
$MIF76 . . . . . . . . . . . . .  	L NEAR	04E9	CODERES
$MIF78 . . . . . . . . . . . . .  	L NEAR	04E2	CODERES
$MIF86 . . . . . . . . . . . . .  	L NEAR	0500	CODERES
$MIF87 . . . . . . . . . . . . .  	L NEAR	04FC	CODERES
$MIF91 . . . . . . . . . . . . .  	L NEAR	0508	CODERES
$MIF93 . . . . . . . . . . . . .  	L NEAR	0543	CODERES
$MIF94 . . . . . . . . . . . . .  	L NEAR	0530	CODERES
$MIF97 . . . . . . . . . . . . .  	L NEAR	053D	CODERES
$MLL149  . . . . . . . . . . . .  	L NEAR	05DC	CODERES
$MLL168  . . . . . . . . . . . .  	L NEAR	0603	CODERES
$MLL178  . . . . . . . . . . . .  	L NEAR	0635	CODERES
$MLL202  . . . . . . . . . . . .  	L NEAR	06AD	CODERES
$MLL214  . . . . . . . . . . . .  	L NEAR	06D3	CODERES
$MSR175  . . . . . . . . . . . .  	L NEAR	064B	CODERES
$MSR7  . . . . . . . . . . . . .  	L NEAR	0391	CODERES
$MSR76 . . . . . . . . . . . . .  	L NEAR	04F2	CODERES
$MXL1  . . . . . . . . . . . . .  	L NEAR	0340	CODERES
$MXL2  . . . . . . . . . . . . .  	L NEAR	044D	CODERES
$MXL3  . . . . . . . . . . . . .  	L NEAR	0658	CODERES
$MXL4  . . . . . . . . . . . . .  	L NEAR	06D3	CODERES
$M_ADDR_SZ_FAR . . . . . . . . .  	NUMBER	0004	
$M_ADDR_SZ_NEAR  . . . . . . . .  	NUMBER	0002	
$M_ADD_CRLF  . . . . . . . . . .  	N PROC	0579	CODERES	Length = 0017
$M_ALIGN_MASK  . . . . . . . . .  	NUMBER	0080	
$M_AM  . . . . . . . . . . . . .  	NUMBER	0061	
$M_BASE10  . . . . . . . . . . .  	NUMBER	000A	
$M_BASE16  . . . . . . . . . . .  	NUMBER	0010	
$M_BIN2ASC_REPLACE . . . . . . .  	N PROC	07C6	CODERES	Length = 003E
$M_BYTE  . . . . . . . . . . . .  	NUMBER	0010	
$M_CHAR_ONLY . . . . . . . . . .  	NUMBER	0000	
$M_CHAR_REPLACE  . . . . . . . .  	N PROC	079E	CODERES	Length = 0028
$M_CLASS_ID_SZ . . . . . . . . .  	NUMBER	0004	
$M_CLASS_NOT_EXIST . . . . . . .  	NUMBER	0000	
$M_CLS_3 . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
$M_CLS_4 . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
$M_CLS_5 . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
$M_CLS_6 . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
$M_CLS_7 . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
$M_CLS_8 . . . . . . . . . . . .  	L NEAR	0000	CODERES	External
$M_COMMA . . . . . . . . . . . .  	NUMBER	002C	
$M_CONVERT2ASC . . . . . . . . .  	N PROC	05B4	CODERES	Length = 0036
$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_DISPLAY_$_STRING  . . . . . .  	N PROC	0564	CODERES	Length = 0015
$M_DISPLAY_MESSAGE . . . . . . .  	N PROC	05EA	CODERES	Length = 00F0
$M_DISPLAY_REPLACE . . . . . . .  	N PROC	06DA	CODERES	Length = 00A8
$M_DISPLAY_STRING  . . . . . . .  	N PROC	0554	CODERES	Length = 0010
$M_DWORD . . . . . . . . . . . .  	NUMBER	0030	
$M_END . . . . . . . . . . . . .  	NUMBER	0000	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:55
COMMAND Language modifiable Code Resident                   Symbols-22


$M_EXTPAR_TYPE . . . . . . . . .  	NUMBER	0008	
$M_EXT_CLS . . . . . . . . . . .  	NUMBER	FFFF	
$M_EXT_ERR_FLAG  . . . . . . . .  	NUMBER	FFFF	
$M_FIND_SPECIFIED_MSG  . . . . .  	N PROC	0495	CODERES	Length = 007A
$M_FIRST_THOU  . . . . . . . . .  	NUMBER	0003	
$M_FLUSH_BUF . . . . . . . . . .  	N PROC	0782	CODERES	Length = 001C
$M_GET_MSG_ADDRESS . . . . . . .  	N PROC	03E6	CODERES	Length = 00A0
$M_ID_SZ . . . . . . . . . . . .  	NUMBER	0004	
$M_INCLUDE . . . . . . . . . . .  	NUMBER	0000	
$M_IS_IT_DBCS  . . . . . . . . .  	N PROC	0590	CODERES	Length = 0024
$M_LOAD  . . . . . . . . . . . .  	NUMBER	FFFF	
$M_MAX_2_YEAR  . . . . . . . . .  	NUMBER	0063	
$M_MSGDATA_ONLY  . . . . . . . .  	NUMBER	0000	
$M_MSGSERV_1 . . . . . . . . . .  	L NEAR	0000	CODERES	External
$M_MSGSERV_2 . . . . . . . . . .  	L NEAR	0000	CODERES	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	
$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	CODERES	External
$M_SECOND_THOU . . . . . . . . .  	NUMBER	0006	
$M_SERVICE . . . . . . . . . . .  	NUMBER	FFFF	
$M_SET_LEN_IN_CX . . . . . . . .  	N PROC	0486	CODERES	Length = 000F
$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	0000	
$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_WORD  . . . . . . . . . . . .  	NUMBER	0020	
??0001 . . . . . . . . . . . . .  	L NEAR	0014	CODERES
??0002 . . . . . . . . . . . . .  	L NEAR	001C	CODERES
??0003 . . . . . . . . . . . . .  	L NEAR	02C0	CODERES
??0004 . . . . . . . . . . . . .  	L NEAR	0304	CODERES
??0005 . . . . . . . . . . . . .  	L NEAR	03BE	CODERES
??0006 . . . . . . . . . . . . .  	L NEAR	047E	CODERES
?PLM . . . . . . . . . . . . . .  	NUMBER	0000	
?WIN . . . . . . . . . . . . . .  	NUMBER	0000	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  rucode		
@VERSION . . . . . . . . . . . .  	TEXT  510		


  10902 Source  Lines
  14735 Total   Lines
   1636 Symbols

  41146 + 114455 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
