Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-1


				 page 80,132
				;	SCCSID = @(#)tprintf.asm	4.3 85/07/02
				;	SCCSID = @(#)tprintf.asm	4.3 85/07/02
				TITLE	COMMAND Transient Printf routine
				
				;****************************************************************
				;*
				;* ROUTINE:	STD_PRINTF/STD_EPRINTF
				;*
				;* FUNCTION:	Set up to print out a message using SYSDISPMSG.
				;*		Set up substitutions if utility message.  Make
				;*		sure any changes to message variables in TDATA
				;*		are reset to avoid reloading the transient.
				;*
				;* INPUT:	Msg_Disp_Class	-  set to message class
				;*		Msg_Cont_Flag	-  set to control flags
				;*		DS	points to transient segment
				;*
				;*		if utility message:
				;*		DX	points to a block with message number
				;*			(word), number of substitutions (byte),
				;*			followed by substitution list if there
				;*			are substitutions.  If substitutions
				;*			are not in transient segment they must
				;*			be set.
				;*		else
				;*		AX	set to message number
				;*
				;* OUTPUT:	none
				;*
				;****************************************************************
				
				.list
				.cref
				
 0000				datares segment public
					extrn	pipeflag:byte
 0000				datares ends
				
 0000				TRANDATA	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	extend_buf_off:word	;AN000;
					EXTRN	Extend_Buf_ptr:word	;AN000;
					EXTRN	Extend_Buf_seg:word	;AN000;
					EXTRN	Msg_Cont_Flag:byte	;AN000;
					EXTRN	Msg_disp_Class:byte	;AN000;
					EXTRN	pipeemes_ptr:word
 0000				TRANDATA	ENDS
				
 0000				TRANSPACE	SEGMENT PUBLIC BYTE	;AC000;
					EXTRN	msg_flag:byte		;AN022;
					EXTRN	print_err_flag:word	;AN000;
					EXTRN	RESSEG:WORD
					EXTRN	String_ptr_2:word	;AC000;
					EXTRN	Subst_buffer:byte	;AN061;
				;AD061; EXTRN	String_ptr_2_sb:word	;AN000;
				
					; include data area for message services
				
					MSG_UTILNAME <COMMAND>		;AN000; define utility name
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-2
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:57
COMMAND Transient Printf routine                            Page     1-3
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 <MSGDATA>		;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-4
DOS - Message Retriever - MSGRES.TAB Module                 

 0000                        C1	      $M_RT   LABEL   BYTE				     ;;AN000;;
 0000  00000000              C1	      $M_RES_ADDRS <>					     ;;AN000;; Resident addresses
 0004  00000000              C1	
 0008  00000000              C1	
 000C  FFFFFFFF              C1	
 0010  00000000              C1	
 0014  00000000              C1	
 0018  FFFFFFFF              C1	
 001C  00000000              C1	
 0020  00000000              C1	
 0024  FFFFFFFF              C1	
 0028  FFFFFFFF              C1	
 002C  0008[                 C1	
 004C  FFFFFFFF              C1	
 0050  00000000              C1	
 0054  0000                  C1	
 0056  00                    C1	
 0057  0001[                 C1	
 0059  00                    C1	
 005A  0000                  C1	
 005C  0000                  C1	
 005E  0A00                  C1	
 0060  0040[                 C1	
 00A0  24                    C1	
 00A1  4D 53 20 44 4F 53     C1		DB	"MS DOS Version 4.00 (C)Copyright 1988 Microsoft Corp"
 00D5  4C 69 63 65 6E 73     C1		DB	"Licensed Material - Property of Microsoft  "
				
 0100  0000			PRINTF_HANDLE	DW  ?			;AC000;
				
 0102				TRANSPACE	ENDS			;AC000;
				
 0000				TRANCODE	SEGMENT PUBLIC BYTE	;AC000;
				
					EXTRN	cerror:near
					EXTRN	crlf2:near
					EXTRN	tcommand:near		;AN026;
				
				ASSUME	CS:TRANGROUP,DS:TRANGROUP,ES:NOTHING,SS:NOTHING ;AC000;
				
					PUBLIC	SETSTDINOFF		;AN026;
					PUBLIC	SETSTDINON		;AN026;
					PUBLIC	SETSTDOUTOFF		;AN026;
					PUBLIC	SETSTDOUTON		;AN026;
					PUBLIC	TSYSGETMSG		;AN000;
					PUBLIC	TSYSLOADMSG		;AN000;
				
				PUBLIC Printf_Init
 0000				printf_init proc far
 0000  E8 0013 R			call	std_printf
 0003  CB				ret
 0004				printf_init endp
				
				Public	Printf_Crlf
 0004				PRINTF_CRLF:
 0004  E8 0013 R			CALL	STD_PRINTF
 0007  E8 0000 E			CALL	CRLF2
 000A  C3				RET
				
				PUBLIC	Std_EPrintf
 000B				STD_EPRINTF:
 000B  C7 06 0100 R 0002		mov	Printf_Handle,2 		;AC000;Print to STDERR
 0011  EB 06				jmp	short NEW_PRINTF		;AC000;
				PUBLIC	Std_Printf
 0013				STD_PRINTF:
 0013  C7 06 0100 R 0001		mov	Printf_Handle,1 		;AC000;Print to STDOUT
				
 0019				NEW_PRINTF:
 0019  50				push	ax				;AN000;save registers
 001A  53				push	bx				;AN000;
 001B  51				push	cx				;AN000;
 001C  06				push	es				;AN000;get local ES
 001D  1E				push	ds				;AN000;
 001E  07				pop	es				;AN000;
 001F  57				push	di				;AN000;
 0020  56				push	si				;AN000;
 0021  52				push	dx				;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-5
DOS - Message Retriever - MSGRES.TAB Module                 

					assume	es:trangroup			;AN000;
				;AD061; mov	string_ptr_2_sb,0		;AN000;initialize
 0022  C7 06 0000 E 0000		mov	print_err_flag,0		;AN000;
				
 0028				UTILITY_SETUP:
 0028  8B F2				mov	si,dx				;AN000;Get offset of message number
 002A  AD				lodsw					;AN000;load message number
 002B  50				push	ax				;AN000;save it
 002C  AC				lodsb					;AN000;get number of substitutions
 002D  8A C8				mov	cl,al				;AN000;set up CX as # of subst
 002F  32 ED				xor	ch,ch				;AN000;   SI now points to subst list
 0031  58				pop	ax				;AN000;get message number back
 0032  83 F9 00				cmp	cx,0				;AN000;Any substitutions?
 0035  74 61				jz	READY_TO_PRINT			;AN000;No - continue
				
				;AD061;  add	 dx,Ptr_Seg_Pos 		 ;AN000;Point to position of first segment
				;AD061;  push	 cx				 ;AN000;save substitution count
				
				;AD061;SET_SUBST:
				;AD061;  mov	 bx,dx				 ;AN000;get dx into base register
				;AD061;  cmp	 word ptr [bx],0		 ;AN000;has segment been set?
				;AD061;  jnz	 SUBST_SEG_SET			 ;AN000;if not 0, don't replace it
				;AD061;  test	 word ptr [bx+3],date_type	 ;AN000;if date or time - don't set segment
				;AD061;  jnz	 subst_seg_set			 ;AN000;yes - skip it
				;AD061;  mov	 word ptr [bx],cs		 ;AN000;put segment of subst parm in list
				
				;AD061;SUBST_SEG_SET:
				;AD061;  add	 dx,Parm_Block_Size		 ;AN000;point to position of next segment
				;AD061;  loop	 SET_SUBST			 ;AN000;keep replacing until complete
				;AD061;  pop	 cx				 ;AN000;
				
				;AD061;NO_REPLACEMENT:
				;AD061;  mov	 bx,parm_off_pos [si]		 ;AN000;get subst offset
				;AD061;  cmp	 bx,offset trangroup:string_ptr_2 ;AN000;this is used for double indirection
				;AD061;  jnz	 ready_to_print 		 ;AN000;we already have address
				;AD061;  mov	 dx,string_ptr_2		 ;AN000;get address in string_ptr_2
				;AD061;  mov	 parm_off_pos [si],dx		 ;AN000;put proper address in table
				;AD061;  mov	 string_ptr_2_sb,si		 ;AN000;save block changed
				
 0037  BF 0000 E			mov	di,offset trangroup:subst_buffer;AN061; Get address of message subst buffer
 003A  57				push	di				;AN061; save it
 003B  51				push	cx				;AN061; save number of subst
				
 003C				MOVE_SUBST:
 003C  51				push	cx				;AN061;save number of subst
 003D  8B DE				mov	bx,si				;AN061;save start of sublist
 003F  B9 000B				mov	cx,parm_block_size		;AN061;get size of sublist
 0042  F3/ A4				rep	movsb				;AN061;move sublist
 0044  F6 47 07 04			test	byte ptr [bx.$M_S_FLAG],date_type ;AN061;are we doing date/time?
 0048  74 0A				jz	move_subst_cont 		;AN061;no - no need to reset
 004A  C7 47 02 0000			mov	word ptr [bx.$M_S_VALUE],0	;AN061;reset original date or time to 0
 004F  C7 47 04 0000			mov	word ptr [bx.$M_S_VALUE+2],0	;AN061;
				
 0054				MOVE_SUBST_CONT:				;AN061;
 0054  59				pop	cx				;AN061;get number of subst back
 0055  E2 E5				loop	move_subst			;AN061;move cx sublists
				
 0057  59				pop	cx				;AN061;get number of subst
 0058  50				push	ax				;AN061;save message number
 0059  80 3E 0000 E FF			cmp	Msg_Disp_Class,Util_Msg_Class	;AN061;Is this a utility message
 005E  74 0C				jz	CHECK_FIX			;AN061;YES - go see if substitutions
 0060  C6 06 0000 E 01			mov	msg_flag,ext_msg_class		;AN061;set message flag
 0065  BF 0000 E			mov	di,offset trangroup:extend_buf_ptr ;AN061; Get address of extended message block
 0068  33 C0				xor	ax,ax				;AN061;clear ax register
 006A  AB				stosw					;AN061;clear out message number
 006B  AA				stosb					;AN061;clear out subst count
				
 006C				CHECK_FIX:					;AN061;
 006C  58				pop	ax				;AN061;get message number back
 006D  5F				pop	di				;AN061;get start of sublists
 006E  8B F7				mov	si,di				;AN061;get into SI for msgserv
 0070  8B DE				mov	bx,si				;AN061;get into BX for addressing
 0072  51				push	cx				;AN061;save number of subst
				
 0073				SET_SUBST:					;AN061;store the segment of the subst
 0073  83 7F 04 00			cmp	word ptr [bx.$M_S_VALUE+2],0	;AN061;was it set already?
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-6
DOS - Message Retriever - MSGRES.TAB Module                 

 0077  75 09				jnz	subst_seg_set			;AN061;if not 0, don't replace it
 0079  F6 47 07 04			test	byte ptr [bx.$M_S_FLAG],date_type ;AN061;don't replace if date or time
 007D  75 03				jnz	subst_seg_set			;AN061;yes - skip it
 007F  8C 4F 04				mov	word ptr [bx.$M_S_VALUE+2],cs	;AN061;set segment value
				
 0082				SUBST_SEG_SET:					;AN061;
 0082  83 C3 0B				add	bx,parm_block_size		;AN061;go to next sublist
 0085  E2 EC				loop	set_subst			;AN061;loop CX times
 0087  59				pop	cx				;AN061;get number of subst back
				
 0088  8B DE				mov	bx,si				;AN061;get start of sublist to BX
 008A  81 7F 02 0000 E			cmp	word ptr [bx.$M_S_VALUE],offset trangroup:string_ptr_2 ;AN061;are we using double in
				direction?
 008F  75 07				jnz	ready_to_print			;AN061;no - we already have address
 0091  8B 16 0000 E			mov	dx,string_ptr_2 		;AN061;get address in string_ptr_2
 0095  89 57 02				mov	word ptr [bx.$M_S_VALUE],dx	;AN061;put it into the subst block
				
 0098				READY_TO_PRINT:
 0098  8B 1E 0100 R			mov	bx,Printf_Handle		;AN000;get print handle
 009C  8A 16 0000 E			mov	dl,Msg_Cont_Flag		;AN000;set up control flag
 00A0  8A 36 0000 E			mov	dh,Msg_Disp_Class		;AN000;set up display class
 00A4  C6 06 0000 E 00			mov	Msg_Cont_Flag,No_Cont_Flag	;AN061;reset flags to avoid
 00A9  C6 06 0000 E FF			mov	Msg_Disp_Class,Util_Msg_Class	;AN061;   transient reload
				
				;AD061; push	bx				;AN026; save registers
				;AD061; push	cx				;AN026;
				;AD061; push	dx				;AN026;
				;AD061; push	si				;AN026;
				;AD061; push	di				;AN026;
 00AE  1E				push	ds				;AN026;
 00AF  06				push	es				;AN026;
				
				
 00B0  E8 0356 R			call	SYSDISPMSG			;AN000;call Rod
				
 00B3  07				pop	es				;AN026; restore registers
 00B4  1F				pop	ds				;AN026;
				;AD061; pop	di				;AN026;
				;AD061; pop	si				;AN026;
				;AD061; pop	dx				;AN026;
				;AD061; pop	cx				;AN026;
				;AD061; pop	bx				;AN026;
				
 00B5  73 03				jnc	Print_success			;AN000; everything went okay
 00B7  A3 0000 E			mov	print_err_flag,ax		;AN000;
				
 00BA				print_success:
				;AD061; cmp	Msg_Disp_Class,Util_Msg_Class	;AN000;Is this a utility message
				;AD061; jz	CHECK_FIX			;AN000;YES - go see if substitutions
				;AD061; mov	msg_flag,ext_msg_class		;AN022;set message flag
				;AD061; mov	di,offset trangroup:extend_buf_ptr ;AN000; Get address of extended message block
				;AD061; xor	ax,ax				;AN000;clear ax register
				;AD061; stosw					;AN000;clear out message number
				;AD061; stosb					;AN000;clear out subst count
				
				;AD061;  CHECK_FIX:
				;AD061;  pop	 dx				 ;AN000;restore dx
				;AD061;  cmp	 cx,0				 ;AN000;Any substitutions?
				;AD061;  jz	 NO_FIXUP			 ;AN000;No - leave
				
				;AD061;  mov	 si,dx				 ;AN000;Reset changes so transient won't reload
				;AD061;  add	 si,Ptr_Seg_Pos 		 ;AN000;Point to position of first segment
				
				;AD061;FIX_SUBST:
				;AD061;  mov	 word ptr [si],0		 ;AN000;reset segment to 0
				;AD061;  add	 si,Parm_Block_Size		 ;AN000;point to position of next segment
				;AD061;  loop	 FIX_SUBST			 ;AN000;keep replacing until complete
				;AD061;  cmp	 string_ptr_2_sb,no_subst	 ;AN000;was double indirection used?
				;AD061;  jz	 no_fixup			 ;AN000;no - we're finished
				;AD061;  mov	 si,string_ptr_2_sb		 ;AN000;get offset changed
				;AD061;  mov	 parm_off_pos [si],offset trangroup:string_ptr_2 ;AN000; set address back to string_
				ptr_2
				
				;AD061;NO_FIXUP:
				;AD061; mov	Msg_Cont_Flag,No_Cont_Flag	;AN000;reset flags to avoid
				;AD061; mov	Msg_Disp_Class,Util_Msg_Class	;AN000;   transient reload
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-7
DOS - Message Retriever - MSGRES.TAB Module                 

 00BA  5A				pop	dx				;AN061;restore dx
 00BB  5E				pop	si				;AN000;restore registers
 00BC  5F				pop	di				;AN000;
 00BD  07				pop	es				;AN000;restore registers
 00BE  59				pop	cx				;AN000;
 00BF  5B				pop	bx				;AN000;
 00C0  58				pop	ax				;AN000;
 00C1  83 3E 0000 E 00			cmp	print_err_flag,0		;AN000; if an error occurred - handle it
 00C6  75 01				jnz	print_err			;AN000;
				
 00C8  C3				ret					;AC000;
				
 00C9				print_err:
 00C9  0E				push	cs
 00CA  07				pop	es
 00CB  83 3E 0100 R 02			cmp	Printf_Handle,2 		;AN026;Print to STDERR?
 00D0  75 03				jnz	not_stderr			;AN026;no - continue
 00D2  E9 0000 E			jmp	tcommand			;AN026;Yes - hopless - just exit
				
 00D5				not_stderr:
 00D5  A1 0000 E			mov	ax,print_err_flag		;AN026;get extended error number back
 00D8  8E 06 0000 E			mov	es,[resseg]			; No, set up for error, load the
				assume	es:resgroup				;  right error msg, and jmp to cerror.
 00DC  26: F6 06 0000 E FF		test	PipeFlag,-1
 00E2  74 09				jz	go_to_error
					invoke	PipeOff
 00E4  E8 0000 E             1		CALL    PipeOff 
 00E7  BA 0000 E			mov	dx,offset trangroup:pipeemes_ptr
 00EA  EB 0C 90				jmp	print_err_exit			;AC000;
				
 00ED				go_to_error:
 00ED  C6 06 0000 E 01			mov	msg_disp_class,ext_msg_class	;AN000; set up extended error msg class
 00F2  BA 0000 E			mov	dx,offset TranGroup:Extend_Buf_ptr ;AC000; get extended message pointer
 00F5  A3 0000 E			mov	Extend_Buf_ptr,ax		;AN000; get message number in control block
				
 00F8				PRINT_ERR_EXIT: 				;AC000;
 00F8  0E				push	cs
 00F9  07				pop	es
 00FA  E9 0000 E			JMP	CERROR
				
				;****************************************************************
				;*
				;* ROUTINE:	TSYSLOADMSG
				;*
				;* FUNCTION:	Interface to call SYSLOADMSG to avoid duplicate
				;*		names since these routines are also used in the
				;*		resident.
				;*
				;* INPUT:	Inputs to SYSLOADMSG
				;*
				;* OUTPUT:	Outputs from SYSLOADMSG
				;*
				;****************************************************************
				
				
 00FD				TSYSLOADMSG	PROC	NEAR			;AN000;
				
 00FD  53				push	bx				;AN000;
 00FE  E8 0109 R			call sysloadmsg 			;AN000; call routine
 0101  5B				pop	bx				;AN000;
 0102  C3				ret					;AN000; exit
				
 0103				TSYSLOADMSG	ENDP				;AN000;
				
				;****************************************************************
				;*
				;* ROUTINE:	TSYSGETMSG
				;*
				;* FUNCTION:	Interface to call SYSGETMSG to avoid duplicate
				;*		names since these routines are also used in the
				;*		resident.
				;*
				;* INPUT:	Inputs to SYSGETMSG
				;*
				;* OUTPUT:	Outputs from SYSGETMSG
				;*
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-8
DOS - Message Retriever - MSGRES.TAB Module                 

				;****************************************************************
				
				
 0103				TSYSGETMSG	PROC	NEAR			;AN000;
				
 0103  51				push	cx				;AN000;
 0104  E8 01AE R			call sysgetmsg				;AN000; call routine
 0107  59				pop	cx				;AN000;
 0108  C3				ret					;AN000; exit
				
 0109				TSYSGETMSG	ENDP				;AN000;
				
				MSG_SERVICES <COMT,NOVERCHECKmsg,NEARmsg,LOADmsg,NOCHECKSTDIN,NOCHECKSTDOUT,GETmsg> ;AC026; The mess
				age services
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-9
DOS - Message Retriever - LOADMSG.ASM Module                

 0109                        C1		SYSLOADMSG PROC NEAR				     ;;AN000;;
 0109  50                    C1		PUSH	AX					     ;;AN000;
 010A  53                    C1		PUSH	BX					     ;;AN000;
 010B  52                    C1		PUSH	DX					     ;;AN000;
 010C  06                    C1		PUSH	ES					     ;;AN000;
 010D  57                    C1		PUSH	DI					     ;;AN000;
 010E  33 C9                 C1		XOR	CX,CX					     ;;AN000;  Reset to zero
 0110  8E C1                 C1		MOV	ES,CX					     ;;AN000;
 0112  33 FF                 C1		XOR	DI,DI					     ;;AN000;
 0114  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 0117  B2 00                 C1		MOV	DL,DOS_GET_EXTENDED			     ;;AN000;; Where are the Extended errors
				 in COMMAND.COM
 0119  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 011B  8C 06 000A R          C1		MOV	WORD PTR $M_RT.$M_EXT_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 011F  89 3E 0008 R          C1		MOV	WORD PTR $M_RT.$M_EXT_COMMAND,DI	     ;;AN000;;
 0123  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 0126  B2 02                 C1		MOV	DL,DOS_GET_PARSE			     ;;AN000;; Where are the Parse errors in
				 COMMAND.COM
 0128  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 012A  8C 06 0012 R          C1		MOV	WORD PTR $M_RT.$M_PARSE_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 012E  89 3E 0010 R          C1		MOV	WORD PTR $M_RT.$M_PARSE_COMMAND,DI	     ;;AN000;;
 0132  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 0135  B2 04                 C1		MOV	DL,DOS_GET_CRITICAL			     ;;AN000;; Where are the Critical errors
				 in COMMAND.COM
 0137  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 0139  8C 06 0022 R          C1		MOV	WORD PTR $M_RT.$M_CRIT_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 013D  89 3E 0020 R          C1		MOV	WORD PTR $M_RT.$M_CRIT_COMMAND,DI	     ;;AN000;;
 0141  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN001;; 2FH Interface
 0144  B2 06                 C1		MOV	DL,DOS_GET_FILE 			     ;;AN001;; Where are the FILE dependant 
				in IFSFUNC.EXE
 0146  CD 2F                 C1		INT	2FH					     ;;AN001;; Private interface
 0148  8C 06 0006 R          C1		MOV	WORD PTR $M_RT.$M_EXT_FILE+2,ES 	     ;;AN001;;	Move into first avaliable ta
				ble location
 014C  89 3E 0004 R          C1		MOV	WORD PTR $M_RT.$M_EXT_FILE,DI		     ;;AN001;;
 0150  E8 0000 E             C1		  CALL	  $M_MSGSERV_1				     ;;AN000;; Get addressibilty to MSGSERV 
				CLASS 1 (EXTENDED Errors)
 0153  8C 06 0002 R          C1		MOV	WORD PTR $M_RT.$M_EXT_ERR_ADDRS+2,ES	     ;;AN000;; Move into first avaliable tab
				le location
 0157  89 3E 0000 R          C1		MOV	WORD PTR $M_RT.$M_EXT_ERR_ADDRS,DI	     ;;AN000;;
 015B  8C 06 001E R          C1		MOV	WORD PTR $M_RT.$M_CRIT_ADDRS+2,ES	     ;;AN000;; Move into first avaliable tab
				le location
 015F  89 3E 001C R          C1		MOV	WORD PTR $M_RT.$M_CRIT_ADDRS,DI 	     ;;AN000;;
 0163  E8 0000 E             C1		  CALL	  $M_MSGSERV_2				     ;;AN000;; Get addressibilty to MSGSERV 
				CLASS 2 (PARSE Errors)
 0166  8C 06 0016 R          C1		MOV	WORD PTR $M_RT.$M_PARSE_ADDRS+2,ES	     ;;AN000;; Move into first avaliable tab
				le location
 016A  89 3E 0014 R          C1		MOV	WORD PTR $M_RT.$M_PARSE_ADDRS,DI	     ;;AN000;;
 016E  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN001;; 2FH Interface
 0171  B2 08                 C1		MOV	DL,DOS_GET_ADDR 			     ;;AN001;; Where is the READ_DISK_PROC i
				n COMMAND.COM
 0173  CD 2F                 C1		INT	2FH					     ;;AN001;; Private interface
 0175  8C 06 002A R          C1		MOV	WORD PTR $M_RT.$M_DISK_PROC_ADDR+2,ES	     ;;AN001;;	Move into first avaliable ta
				ble location
 0179  89 3E 0028 R          C1		MOV	WORD PTR $M_RT.$M_DISK_PROC_ADDR,DI	     ;;AN001;;
 017D  E8 0000 E             C3	    CALL    $M_CLS_8				 ;  Get addressibilty to class A 
 0180  89 3E 002C R          C3	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 0184  E8 0196 R             C1		CALL	$M_GET_DBCS_VEC 			     ;;AN000;; Save the DBCS vector
 0187  F8                    C1		CLC						     ;;AN000;;	 Make sure carry is clear
 0188  72 07                 C1		JC $MIF20
 018A  5F                    C1		  POP	  DI					     ;;AN000;;	Restore REGS
 018B  07                    C1		  POP	  ES					     ;;AN000;;
 018C  5A                    C1		  POP	  DX					     ;;AN000;;
 018D  5B                    C1		  POP	  BX					     ;;AN000;;
 018E  58                    C1		  POP	  AX					     ;;AN000;;
 018F  EB 04                 C1		JMP SHORT $MEN20
 0191                        C1	$MIF20:
 0191  83 C4 0A              C1		  ADD	  SP,10 				     ;;AN000;;
 0194  F9                    C1		  STC						     ;;AN000;;	Reset carry flag
 0195                        C1	$MEN20:
 0195  C3                    C1		RET						     ;;AN000;;
 0196                        C1		SYSLOADMSG ENDP 				     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-10
DOS - Message Retriever - $M_VERSION_CHECK Proc             

 0196                        C1	$M_GET_DBCS_VEC PROC NEAR				     ;;AN000;;
 0196  50                    C1		PUSH	AX					     ;;AN000;; Save character to check
 0197  56                    C1		PUSH	SI					     ;;AN000;;
 0198  1E                    C1		PUSH	DS					     ;;AN000;;
 0199  B8 6300               C1		MOV	AX,DOS_GET_DBCS_INFO			     ;;AN000;; DOS function to get DBSC envi
				ronment
 019C  CD 21                 C1		INT	21H					     ;;AN000;; Get environment pointer
 019E  1E                    C1		PUSH	DS					     ;;AN000;; Get environment pointer
 019F  07                    C1		POP	ES					     ;;AN000;; Get environment pointer
 01A0  1F                    C1		POP	DS					     ;;AN000;; Get environment pointer
 01A1  72 08                 C1		JC $MIF23
 01A3  89 36 0050 R          C1		  MOV	  WORD PTR $M_RT.$M_DBCS_VEC,SI 	     ;;AN000;; Save DBCS Vector
 01A7  8C 06 0052 R          C1		  MOV	  WORD PTR $M_RT.$M_DBCS_VEC+2,ES	     ;;AN000;;
 01AB                        C1	$MIF23:
 01AB  5E                    C1		POP	SI					     ;;AN000;;
 01AC  58                    C1		POP	AX					     ;;AN000;; Retrieve character to check
 01AD  C3                    C1		RET						     ;;AN000;; Return
 01AE                        C1	$M_GET_DBCS_VEC ENDP					     ;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-11
DOS - Message Retriever - GETMSG.ASM Module                 

 01AE                        C1		SYSGETMSG PROC	NEAR				     ;;AN000;;
 01AE  50                    C1		PUSH	AX					     ;;AN000;; Save changed regs
 01AF  06                    C1		PUSH	ES					     ;;AN000;;
 01B0  57                    C1		PUSH	DI					     ;;AN000;;
 01B1  55                    C1		PUSH	BP					     ;;AN000;;
 01B2  E8 01CA R             C1		CALL	$M_GET_MSG_ADDRESS			     ;;AN000;; Scan thru classes to find mes
				sage
 01B5  72 0E                 C1		JC $MIF31
 01B7  80 FE FF              C1		  CMP	  DH,UTILITY_MSG_CLASS
 01BA  F8                    C1		  CLC						     ;;AN000;;
 01BB  74 04                 C1		  JE $MIF32
 01BD  06                    C1		    PUSH    ES					     ;;AN000;;
 01BE  1F                    C1		    POP     DS					     ;;AN000;;	   Return message in DS:SI
 01BF  EB 02                 C1		  JMP SHORT $MEN32
 01C1                        C1	$MIF32:
 01C1  0E                    C1		    PUSH    CS					     ;;AN000;;	   Return message in DS:SI
 01C2  1F                    C1		    POP     DS					     ;;AN000;;
 01C3                        C1	$MEN32:
 01C3  8B F7                 C1		  MOV	  SI,DI 				     ;;AN000;;	   Return message in DS:SI
 01C5                        C1	$MIF31:
 01C5  5D                    C1		POP	BP					     ;;AN000;; Restore changed regs
 01C6  5F                    C1		POP	DI					     ;;AN000;;
 01C7  07                    C1		POP	ES					     ;;AN000;;
 01C8  58                    C1		POP	AX					     ;;AN000;;
 01C9  C3                    C1		RET						     ;;AN000;;	  Return
 01CA                        C1		SYSGETMSG ENDP					     ;;
 01CA                        C1		  $M_GET_MSG_ADDRESS PROC NEAR			     ;;AN000;;
 01CA  56                    C1		  PUSH	  SI					     ;;AN000;;
 01CB  53                    C1		  PUSH	  BX					     ;;AN000;;
 01CC  33 F6                 C1		  XOR	  SI,SI 				     ;;AN000;; Use SI as an index
 01CE  33 C9                 C1		  XOR	  CX,CX 				     ;;AN000;; Use CX as an size
 01D0                        C1	$MDO36:
 01D0  80 FE FF              C1		    CMP     DH,UTILITY_MSG_CLASS		     ;;AN000;; Were utility messages request
				ed?
 01D3  75 08                 C1		    JNE $MIF37
 01D5  8B BC 002C R          C1			MOV	DI,WORD PTR $M_RT.$M_CLASS_ADDRS[SI] ;;AN000;;	 Get address of class
 01D9  8B DF                 C1			MOV	BX,DI				     ;;AN000;
 01DB  EB 25                 C1		    JMP SHORT $MEN37
 01DD                        C1	$MIF37:
 01DD  F6 C6 02              C1		      TEST    DH,PARSE_ERR_CLASS		     ;;AN000;;	 Were parse errors requested
				?
 01E0  74 08                 C1		      JE $MIF39
 01E2  C4 BC 0010 R          C1			LES	DI,DWORD PTR $M_RT.$M_PARSE_COMMAND[SI] ;;AN000;;   Get address of class
 01E6  8C C3                 C1			MOV	BX,ES				     ;;AN000;
 01E8  EB 18                 C1		      JMP SHORT $MEN39
 01EA                        C1	$MIF39:
 01EA  3D 0013               C1			CMP	AX,$M_CRIT_LO			     ;;AN000;;	   Is this a critical error?
 01ED  72 0D                 C1			JNAE $MIF41
 01EF  3D 0027               C1			CMP	AX,$M_CRIT_HI			     ;;AN000;;
 01F2  77 08                 C1			JNBE $MIF41
 01F4  C4 BC 001C R          C1			  LES	  DI,DWORD PTR $M_RT.$M_CRIT_ADDRS[SI] ;;AN000;; Get address of class
 01F8  8C C3                 C1			  MOV	  BX,ES 			     ;;AN000;
 01FA  EB 06                 C1			JMP SHORT $MEN41
 01FC                        C1	$MIF41:
 01FC  C4 BC 0000 R          C1			  LES	  DI,DWORD PTR $M_RT.$M_EXT_ERR_ADDRS[SI] ;;AN000;; Get address of class
 0200  8C C3                 C1			  MOV	  BX,ES 			     ;;AN000;
 0202                        C1	$MEN41:
 0202                        C1	$MEN39:
 0202                        C1	$MEN37:
 0202  83 FB FF              C1		    CMP     BX,$M_TERMINATING_FLAG		     ;;AN000;; Are we finished all classes?
 0205  75 16                 C1		    JNE $MIF46
 0207  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN000;;	  Was it a UTILITY class?
 020A  75 03                 C1		      JNE $MIF47
 020C  F9                    C1			STC					     ;;AN000;;	    Set the carry flag
 020D  EB 0C                 C1		      JMP SHORT $MEN47
 020F                        C1	$MIF47:
 020F  A3 005C R             C1			MOV	$M_RT.$M_MSG_NUM,AX		     ;;AN000;;	    Save message number
 0212  B8 FFFF               C1			MOV	AX,$M_SPECIAL_MSG_NUM		     ;;AN000;;	    Set special message numb
				er
 0215  BD 0001               C1			MOV	BP,$M_ONE_REPLACE		     ;;AN000;;	    Set one replace in messa
				ge
 0218  33 F6                 C1			XOR	SI,SI				     ;;AN000;;	    Reset the SI index to st
				art again
 021A  F8                    C1			CLC					     ;;AN000;;
 021B                        C1	$MEN47:
 021B  EB 0C                 C1		    JMP SHORT $MEN46
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-12
DOS - Message Retriever - GETMSG.ASM Module                 

 021D                        C1	$MIF46:
 021D  83 FB 00              C1		      CMP     BX,$M_CLASS_NOT_EXIST		     ;;AN000;;	 Does this class exist?
 0220  74 03                 C1		      JE $MIF51
 0222  E8 0279 R             C1			CALL	$M_FIND_SPECIFIED_MSG		     ;;AN000;;	   Try to find the message
 0225                        C1	$MIF51:
 0225  83 C6 04              C1		      ADD     SI,$M_ADDR_SZ_FAR 		     ;;AN000;;	     Get next class
 0228  F8                    C1		      CLC					     ;;AN000;;
 0229                        C1	$MEN46:
 0229  72 06                 C1		  JC $MEN36
 022B  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	   Was the message found?
 022D  75 02                 C1		  JNZ $MXL2
 022F  EB 9F                 C1		  JMP $MDO36
 0231                        C1	$MXL2:
 0231                        C1	$MEN36:
 0231  9C                    C1		  PUSHF 					     ;;AN006;; Save the flag state
 0232  80 FE 01              C1		  CMP	  DH,EXT_ERR_CLASS			     ;;AN006;; Was an extended error request
				ed?
 0235  75 29                 C1		  JNE $MIF56
 0237  52                    C1		    PUSH    DX					     ;;AN006;;	Save all needed registers
 0238  55                    C1		    PUSH    BP					     ;;AN006;;
 0239  51                    C1		    PUSH    CX					     ;;AN006;;
 023A  06                    C1		    PUSH    ES					     ;;AN006;;
 023B  57                    C1		    PUSH    DI					     ;;AN006;;
 023C  50                    C1		    PUSH    AX					     ;;AN006;;
 023D  B8 0500               C1		    MOV     AX,IFSFUNC_INSTALL_CHECK		     ;;AN006;;	Check if IFSFUNC is installe
				d
 0240  CD 2F                 C1		    INT     2FH 				     ;;AN006;;
 0242  3C FF                 C1		    CMP     AL,IFSFUNC_INSTALLED		     ;;AN006;;	Is it installed?
 0244  58                    C1		    POP     AX					     ;;AN006;;	Restore msg number
 0245  75 09                 C1		    JNE $MIF57
 0247  8B D8                 C1		      MOV     BX,AX				     ;;AN006;;	  BX is the extended error n
				umber
 0249  B8 0502               C1		      MOV     AX,IFS_GET_ERR_TEXT		     ;;AN006;;	  AX is the muliplex number
 024C  CD 2F                 C1		      INT     2FH				     ;;AN006;;	  Call IFSFUNC
 024E  EB 01                 C1		    JMP SHORT $MEN57
 0250                        C1	$MIF57:
 0250  F9                    C1		      STC					     ;;AN006;;	  Carry conditon
 0251                        C1	$MEN57:
 0251  73 05                 C1		    JNC $MIF60
 0253  5F                    C1		      POP     DI				     ;;AN006;;	No,
 0254  07                    C1		      POP     ES				     ;;AN006;;	 Restore old pointer
 0255  59                    C1		      POP     CX				     ;;AN006;;
 0256  EB 06                 C1		    JMP SHORT $MEN60
 0258                        C1	$MIF60:
 0258  83 C4 06              C1		      ADD     SP,6				     ;;AN006;;	 Throw away old pointer
 025B  E8 026A R             C1		      CALL    $M_SET_LEN_IN_CX			     ;;AN006;;	 Get the length of the ASCII
				Z string
 025E                        C1	$MEN60:
 025E  5D                    C1		    POP     BP					     ;;AN006;;	Restore other Regs
 025F  5A                    C1		    POP     DX					     ;;AN006;;
 0260                        C1	$MIF56:
 0260  EB 01                 C2		   JMP	   $+3 
 0262                        C2	??0000   LABEL   NEAR 
 0262  CF                    C2		   IRET 
 0263  0E                    C2		   PUSH    CS 
 0264  E8 0262 R             C2		   CALL    ??0000 
 0267  5B                    C1		  POP	  BX					     ;;AN000;;
 0268  5E                    C1		  POP	  SI					     ;;AN000;;
 0269  C3                    C1		  RET						     ;;AN000;; Return ES:DI pointing to the 
				message
 026A                        C1	$M_GET_MSG_ADDRESS ENDP 				     ;;
 026A                        C1	$M_SET_LEN_IN_CX PROC NEAR				     ;;
 026A  57                    C1		  PUSH	  DI					     ;;AN006;; Save position
 026B  50                    C1		  PUSH	  AX					     ;;AN006;;
 026C  B9 FFFF               C1		  MOV	  CX,-1 				     ;;AN006;; Set CX for decrements
 026F  32 C0                 C1		  XOR	  AL,AL 				     ;;AN006;; Prepare compare register
 0271  F2/ AE                C1		  REPNE   SCASB 				     ;;AN006;; Scan for zero
 0273  F7 D1                 C1		  NOT	  CX					     ;;AN006;; Change decrement into number
 0275  49                    C1		  DEC	  CX					     ;;AN006;; Don't include the zero
 0276  58                    C1		  POP	  AX					     ;;AN006;;
 0277  5F                    C1		  POP	  DI					     ;;AN006;; Restore position
 0278  C3                    C1		  RET						     ;;AN006;;
 0279                        C1	$M_SET_LEN_IN_CX ENDP					     ;;
 0279                        C1	$M_FIND_SPECIFIED_MSG PROC NEAR 			     ;;AN000;;
 0279  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:57
COMMAND Transient Printf routine                            Page     1-13
DOS - Message Retriever - GETMSG.ASM Module                 

 027C  75 1D                 C1		  JNE $MIF64
 027E  83 3E 0028 R FF       C1		  CMP	  WORD PTR $M_RT.$M_DISK_PROC_ADDR,-1	     ;;AN004;;	Do we have an address to CAL
				L?
 0283  74 16                 C1		  JE $MIF64
 0285  3D FFFF               C1		    CMP     AX,$M_SPECIAL_MSG_NUM		     ;;AN004;; Are we displaying a default E
				xt Err?
 0288  75 0B                 C1		    JNE $MIF65
 028A  50                    C1		      PUSH    AX				     ;;AN004;;	 Reset the special message n
				umber
 028B  A1 005C R             C1		      MOV     AX,$M_RT.$M_MSG_NUM		     ;;AN004;;	 Get the old message number
 028E  FF 1E 0028 R          C1		      CALL    DWORD PTR $M_RT.$M_DISK_PROC_ADDR      ;;AN004;;	 Call the READ_DISK_PROC to 
				get error text
 0292  58                    C1		      POP     AX				     ;;AN004;;	 Reset the special message n
				umber
 0293  EB 04                 C1		    JMP SHORT $MEN65
 0295                        C1	$MIF65:
 0295  FF 1E 0028 R          C1		      CALL    DWORD PTR $M_RT.$M_DISK_PROC_ADDR      ;;AN004;;	 Call the READ_DISK_PROC to 
				get error text
 0299                        C1	$MEN65:
 0299  EB 1A                 C1		  JMP SHORT $MEN64
 029B                        C1	$MIF64:
 029B  33 C9                 C1		    XOR     CX,CX				     ;;AN002;;	 CX = 0 will allow us to
 029D  80 FE FF              C1		    CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;
 02A0  74 06                 C1		    JE $MIF69
 02A2  26: 8A 4D 03          C1		      MOV     CL,BYTE PTR ES:[DI].$M_NUM_CLS_MSG     ;;AN001;;	 Get number of messages in c
				lass
 02A6  EB 09                 C1		    JMP SHORT $MEN69
 02A8                        C1	$MIF69:
 02A8  2E: 38 35             C1		      CMP     BYTE PTR CS:[DI].$M_CLASS_ID,DH	     ;;AN002;; Check if class still exists a
				t
 02AB  75 04                 C1		      JNE $MIF71
 02AD  2E: 8A 4D 03          C1			MOV	CL,BYTE PTR CS:[DI].$M_NUM_CLS_MSG   ;;AN000;;	   Get number of messages in
				 class
 02B1                        C1	$MIF71:
 02B1                        C1	$MEN69:
 02B1  83 C7 04              C1		    ADD     DI,$M_CLASS_ID_SZ			     ;;AN000;;	   Point past the class head
				er
 02B4  F9                    C1		    STC 					     ;;AN004;;	 Flag that we haven't found 
				anything yet
 02B5                        C1	$MEN64:
 02B5  73 2D                 C1		  JNC $MIF75
 02B7  F8                    C1		    CLC 					     ;;AN004;; No, reset carry
 02B8                        C1	$MDO76:
 02B8  0B C9                 C1		      OR      CX,CX				     ;;AN000;;	  Do we have any to check?
 02BA  74 19                 C1		    JZ $MEN76
 02BC  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;
 02BF  74 05                 C1		      JE $MIF78
 02C1  26: 3B 05             C1			CMP	AX,WORD PTR ES:[DI].$M_NUM	     ;;AN001;; Is this the message requested
				?
 02C4  EB 03                 C1		      JMP SHORT $MEN78
 02C6                        C1	$MIF78:
 02C6  2E: 3B 05             C1			CMP	AX,WORD PTR CS:[DI].$M_NUM	     ;;AN000;; Is this the message requested
				?
 02C9                        C1	$MEN78:
 02C9  75 02                 C1		    JNE $MIF76
 02CB  EB 09                 C1		    JMP SHORT $MSR76
 02CD                        C1	$MIF76:
 02CD  49                    C1		      DEC     CX				     ;;AN000;;	  No, well do we have more t
				o check?
 02CE  74 05                 C1		    JZ $MEN76
 02D0  83 C7 04              C1		      ADD     DI,$M_ID_SZ			     ;;AN000;;	     Yes, skip past msg head
				er
 02D3  EB E3                 C1		    JMP SHORT $MDO76
 02D5                        C1	$MEN76:
 02D5  F9                    C1		      STC					     ;;AN000;;
 02D6                        C1	$MSR76:
 02D6  72 0C                 C1		    JC $MIF86
 02D8  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;	 Yes, is it a utility messag
				e?
 02DB  F8                    C1		      CLC					     ;;AN001;;
 02DC  75 02                 C1		      JNE $MIF87
 02DE  0E                    C1			PUSH	CS				     ;;AN000;;
 02DF  07                    C1			POP	ES				     ;;AN000;;	 Return ES:DI pointing to th
				e message
 02E0                        C1	$MIF87:
 02E0  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:57
COMMAND Transient Printf routine                            Page     1-14
DOS - Message Retriever - GETMSG.ASM Module                 

				 message
 02E4                        C1	$MIF86:
 02E4                        C1	$MIF75:
 02E4  72 06                 C1		  JC $MIF91
 02E6  32 ED                 C1		    XOR     CH,CH				     ;;AN000;;
 02E8  26: 8A 0D             C1		    MOV     CL,BYTE PTR ES:[DI] 		     ;;AN000;;	 Move size into CX
 02EB  47                    C1		    INC     DI					     ;;AN000;;	 Increment past length
 02EC                        C1	$MIF91:
 02EC  C6 06 0056 R 00       C1		  MOV	  $M_RT.$M_SIZE,$M_NULL 		     ;;AN004;; Reset variable
 02F1  C3                    C1		  RET						     ;;AN000;; Return
 02F2                        C1	$M_FIND_SPECIFIED_MSG ENDP				     ;;AN000;;
				MSG_SERVICES <COMT,NEARmsg,SETSTDIO,DISPLAYmsg,CHARmsg,NUMmsg,TIMEmsg,DATEmsg>	    ;AC026; The mess
				age services
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-15
DOS - Message Retriever - SETSTDIO Module                   

 02F2                        C1		SETSTDINON PROC NEAR				     ;AN001;
 02F2  50                    C1		PUSH	AX					     ;AN002; Save changed regs
 02F3  53                    C1		PUSH	BX					     ;AN002;
 02F4  52                    C1		PUSH	DX					     ;AN002;
 02F5  B8 4400               C1		MOV	AX,DOS_IOCTL_GET_INFO			     ;AN001; Get info using IOCTL
 02F8  BB 0000               C1		MOV	BX,STDIN				     ;AN001;
 02FB  33 D2                 C1		XOR	DX,DX					     ;AN001;
 02FD  CD 21                 C1		INT	21H					     ;AN001;
 02FF  80 CE 01              C1		OR	DH,$M_CRIT_ERR_MASK			     ;AN001; Turn on bit
 0302  B8 4401               C1		MOV	AX,DOS_IOCTL_SET_INFO			     ;AN001; Set info using IOCTL
 0305  CD 21                 C1		INT	21H					     ;AN001;
 0307  5A                    C1		POP	DX					     ;AN002; Restore Regs
 0308  5B                    C1		POP	BX					     ;AN002;
 0309  58                    C1		POP	AX					     ;AN002;
 030A  C3                    C1		RET						     ;AN001;
 030B                        C1		SETSTDINON ENDP 				     ;AN001;
 030B                        C1		SETSTDINOFF PROC NEAR				     ;AN001;
 030B  50                    C1		PUSH	AX					     ;AN002; Save changed regs
 030C  53                    C1		PUSH	BX					     ;AN002;
 030D  52                    C1		PUSH	DX					     ;AN002;
 030E  B8 4400               C1		MOV	AX,DOS_IOCTL_GET_INFO			     ;AN001; Get info using IOCTL
 0311  BB 0000               C1		MOV	BX,STDIN				     ;AN001;
 0314  33 D2                 C1		XOR	DX,DX					     ;AN001;
 0316  CD 21                 C1		INT	21H					     ;AN001;
 0318  80 E6 FE              C1		AND	DH,NOT $M_CRIT_ERR_MASK 		     ;AN001; Turn off bit
 031B  B8 4401               C1		MOV	AX,DOS_IOCTL_SET_INFO			     ;AN001; Set info using IOCTL
 031E  CD 21                 C1		INT	21H					     ;AN001;
 0320  5A                    C1		POP	DX					     ;AN002; Restore Regs
 0321  5B                    C1		POP	BX					     ;AN002;
 0322  58                    C1		POP	AX					     ;AN002;
 0323  C3                    C1		RET						     ;AN001;
 0324                        C1		SETSTDINOFF ENDP				     ;AN001;
 0324                        C1		SETSTDOUTON PROC NEAR				     ;AN001;
 0324  50                    C1		PUSH	AX					     ;AN002; Save changed regs
 0325  53                    C1		PUSH	BX					     ;AN002;
 0326  52                    C1		PUSH	DX					     ;AN002;
 0327  B8 4400               C1		MOV	AX,DOS_IOCTL_GET_INFO			     ;AN001; Get info using IOCTL
 032A  BB 0001               C1		MOV	BX,STDOUT				     ;AN001;
 032D  33 D2                 C1		XOR	DX,DX					     ;AN001;
 032F  CD 21                 C1		INT	21H					     ;AN001;
 0331  80 CE 01              C1		OR	DH,$M_CRIT_ERR_MASK			     ;AN001; Turn on bit
 0334  B8 4401               C1		MOV	AX,DOS_IOCTL_SET_INFO			     ;AN001; Set info using IOCTL
 0337  CD 21                 C1		INT	21H					     ;AN001;
 0339  5A                    C1		POP	DX					     ;AN002; Restore Regs
 033A  5B                    C1		POP	BX					     ;AN002;
 033B  58                    C1		POP	AX					     ;AN002;
 033C  C3                    C1		RET						     ;AN001;
 033D                        C1		SETSTDOUTON ENDP				     ;AN001;
 033D                        C1		SETSTDOUTOFF PROC NEAR
 033D  50                    C1		PUSH	AX					     ;AN002; Save changed regs
 033E  53                    C1		PUSH	BX					     ;AN002;
 033F  52                    C1		PUSH	DX					     ;AN002;
 0340  B8 4400               C1		MOV	AX,DOS_IOCTL_GET_INFO			     ;AN001; Get info using IOCTL
 0343  BB 0001               C1		MOV	BX,STDOUT				     ;AN001;
 0346  33 D2                 C1		XOR	DX,DX					     ;AN001;
 0348  CD 21                 C1		INT	21H					     ;AN001;
 034A  80 E6 FE              C1		AND	DH,NOT $M_CRIT_ERR_MASK 		     ;AN001; Turn off bit
 034D  B8 4401               C1		MOV	AX,DOS_IOCTL_SET_INFO			     ;AN001; Set info using IOCTL
 0350  CD 21                 C1		INT	21H					     ;AN001;
 0352  5A                    C1		POP	DX					     ;AN002; Restore Regs
 0353  5B                    C1		POP	BX					     ;AN002;
 0354  58                    C1		POP	AX					     ;AN002;
 0355  C3                    C1		RET						     ;AN001;
 0356                        C1		SETSTDOUTOFF ENDP				     ;AN001;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-16
DOS - Message Retriever - DISPMSG.ASM Module                

 0356                        C1		SYSDISPMSG PROC NEAR				     ;;AN000;;
 0356  50                    C1		PUSH	AX					     ;;AN000;; Save changed REGs
 0357  53                    C1		PUSH	BX					     ;;AN000;;
 0358  51                    C1		PUSH	CX					     ;;AN000;;
 0359  55                    C1		PUSH	BP					     ;;AN000;;
 035A  57                    C1		PUSH	DI					     ;;AN000;; Save pointer to input buffer 
				(offset)
 035B  06                    C1		PUSH	ES					     ;;AN000;; Save pointer to input buffer 
				(segment)
 035C  52                    C1		PUSH	DX					     ;;AN000;; Save Input/Class request
 035D  8B E9                 C1		MOV	BP,CX					     ;;AN000;; Use BP to hold replace count
 035F  89 1E 0054 R          C1		MOV	WORD PTR $M_RT.$M_HANDLE,BX		     ;;AN000;; Save handle
 0363  88 36 0059 R          C1		MOV	BYTE PTR $M_RT.$M_CLASS,DH		     ;;AN004;; Save class
 0367  E8 01CA R             C1		CALL	$M_GET_MSG_ADDRESS			     ;;AN000;; Scan thru classes to find mes
				sage
 036A  0B C9                 C1		OR	CX,CX					     ;;AN000;; Was message found?
 036C  74 1C                 C1		JZ $MIF93
 036E  0B ED                 C1		  OR	  BP,BP 				     ;;AN000;;	 Were replacable parameters 
				requested
 0370  75 05                 C1		  JNZ $MIF94
 0372  E8 039B R             C1		    CALL    $M_DISPLAY_STRING			     ;;AN000;; No, great . . . Display messa
				ge
 0375  EB 03                 C1		  JMP SHORT $MEN94
 0377                        C1	$MIF94:
 0377  E8 04E7 R             C1		    CALL    $M_DISPLAY_MESSAGE			     ;;AN000;;	 Display the message with su
				bstitutions
 037A                        C1	$MEN94:
 037A  72 08                 C1		  JC $MIF97
 037C  5A                    C1		    POP     DX					     ;;AN000;; Get Input/Class request
 037D  E8 0442 R             C1		    CALL    $M_ADD_CRLF 			     ;;AN004;; Check if we need to add the C
				R LF chars.
 0380  07                    C1		    POP     ES					     ;;AN000;; Get location of input buffer 
				(if specified)
 0381  5F                    C1		    POP     DI					     ;;AN000;;
 0382  EB 04                 C1		  JMP SHORT $MEN97
 0384                        C1	$MIF97:
 0384  83 C4 06              C1		    ADD     SP,6				     ;;AN000;;
 0387  F9                    C1		    STC 					     ;;AN000;; Reset carry flag
 0388                        C1	$MEN97:
 0388  EB 04                 C1		JMP SHORT $MEN93
 038A                        C1	$MIF93:
 038A  07                    C1		  POP	  ES					     ;;AN000;;	 Get pointer to input buffer
				 (segment)
 038B  5F                    C1		  POP	  DI					     ;;AN000;;	 Get base pointer to first s
				ublist (offset)
 038C  5A                    C1		  POP	  DX					     ;;AN000;;	 Get base pointer to first s
				ublist (segment)
 038D  F9                    C1		  STC						     ;;AN000;;	 Set carry flag
 038E                        C1	$MEN93:
 038E  72 06                 C1		JC $MIF104
 0390  5D                    C1		  POP	  BP					     ;;AN000;; No,
 0391  59                    C1		  POP	  CX					     ;;AN000;;
 0392  5B                    C1		  POP	  BX					     ;;AN000;;
 0393  58                    C1		  POP	  AX					     ;;AN000;;
 0394  EB 04                 C1		JMP SHORT $MEN104
 0396                        C1	$MIF104:
 0396  83 C4 08              C1		  ADD	  SP,8					     ;;AN000;;	   Eliminate from stack
 0399  F9                    C1		  STC						     ;;AN000;;
 039A                        C1	$MEN104:
 039A  C3                    C1		RET						     ;;AN000;; Return
 039B                        C1		SYSDISPMSG ENDP 				     ;;AN000;;
 039B                        C1	$M_DISPLAY_STRING PROC NEAR				     ;;AN000;;
 039B  50                    C1		PUSH	AX					     ;;AN000;;
 039C  53                    C1		PUSH	BX					     ;;AN000;;
 039D  52                    C1		PUSH	DX					     ;;AN000;;
 039E  8B 1E 0054 R          C1		MOV	BX,$M_RT.$M_HANDLE			     ;;AN000;; Retrieve handle
 03A2  83 FB FF              C1		CMP	BX,$M_NO_HANDLE 			     ;;AN000;; Was there a handle specified?
 03A5  75 05                 C1		JNE $MIF107
 03A7  E8 03D6 R             C1		  CALL	  $M_DISPLAY_$_STRING			     ;;AN000;; No, display $ terminated stri
				ng
 03AA  EB 03                 C1		JMP SHORT $MEN107
 03AC                        C1	$MIF107:
 03AC  E8 040B R             C1		  CALL	  $M_DISPLAY_H_STRING			     ;;AN000;; Yes, display string to handle
 03AF                        C1	$MEN107:
 03AF  73 0F                 C1		JNC $MIF110
 03B1  B4 59                 C1		  MOV	  AH,DOS_GET_EXT_ERROR			     ;;AN000;;	Yes,
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-17
DOS - Message Retriever - DISPMSG.ASM Module                

 03B3  BB 0000               C1		  MOV	  BX,DOS_GET_EXT_ERROR_BX		     ;;AN000;;	  Get extended error
 03B6  CD 21                 C1		  INT	  21H					     ;;AN000;;
 03B8  32 E4                 C1		  XOR	  AH,AH 				     ;;AN000;;	  Clear AH
 03BA  83 C4 06              C1		  ADD	  SP,6					     ;;AN000;;	  Clean up stack
 03BD  F9                    C1		  STC						     ;;AN000;;	  Flag that there was an err
				or
 03BE  EB 10                 C1		JMP SHORT $MEN110
 03C0                        C1	$MIF110:
 03C0  83 FB FF              C1		  CMP	  BX,$M_NO_HANDLE			     ;;AN000;; Was there a handle specified?
 03C3  74 0B                 C1		  JE $MIF112
 03C5  3B C1                 C1		    CMP     AX,CX				     ;AN001;	 Was it ALL written?
 03C7  74 07                 C1		    JE $MIF113
 03C9  E8 0439 R             C1		      CALL    $M_GET_EXT_ERR_39 		     ;AN001;	   Set Extended error
 03CC  83 C4 06              C1		      ADD     SP,6				     ;AN001;	   Clean up stack
 03CF  F9                    C1		      STC					     ;AN001;	   Flag that there was an er
				ror
 03D0                        C1	$MIF113:
 03D0                        C1	$MIF112:
 03D0                        C1	$MEN110:
 03D0  72 03                 C1		JC $MIF117
 03D2  5A                    C1		  POP	  DX					     ;;AN000;;	Restore regs
 03D3  5B                    C1		  POP	  BX					     ;;AN000;;
 03D4  58                    C1		  POP	  AX					     ;;AN000;;
 03D5                        C1	$MIF117:
 03D5  C3                    C1		RET						     ;;AN000;; Return
 03D6                        C1	$M_DISPLAY_STRING ENDP					     ;;AN000;;
 03D6                        C1	$M_DISPLAY_$_STRING PROC NEAR				     ;;AN000;;
 03D6  1E                    C1		PUSH	DS					     ;;AN000;;
 03D7  06                    C1		PUSH	ES					     ;;AN000;;
 03D8  1F                    C1		POP	DS					     ;;AN000;; Set DS to segment of message 
				text
 03D9  83 F9 01              C1		CMP	CX,$M_SINGLE_CHAR			     ;;AN000;; Is this a single character?
 03DC  75 1B                 C1		JNE $MIF119
 03DE  B4 02                 C1		  MOV	  AH,DOS_DISP_CHAR			     ;;AN000;;	 DOS Function to display CHA
				RACTER
 03E0  26: 8A 15             C1		  MOV	  DL,BYTE PTR ES:[DI]			     ;;AN000;;	 Get the character
 03E3  CD 21                 C1		  INT	  21H					     ;;AN000;;	 Write character
 03E5  1F                    C1		  POP	  DS					     ;;AN000;; Set DS to segment of message 
				text
 03E6  8A C2                 C1		  MOV	  AL,DL 				     ;;AN000;;	 Get the character in AL
 03E8  E8 0459 R             C1		  CALL	  $M_IS_IT_DBCS 			     ;;AN000;;	 Is this the first byte of a
				 DB character
 03EB  1E                    C1		  PUSH	  DS					     ;;AN000;;
 03EC  06                    C1		  PUSH	  ES					     ;;AN000;;
 03ED  1F                    C1		  POP	  DS					     ;;AN000;; Set DS to segment of message 
				text
 03EE  73 07                 C1		  JNC $MIF120
 03F0  26: 8A 55 01          C1		    MOV     DL,BYTE PTR ES:[DI]+1		     ;;AN000;; Get the next character
 03F4  CD 21                 C1		    INT     21H 				     ;;AN000;;	 Write character
 03F6  F8                    C1		    CLC 					     ;;AN000;;	 Clear the DBCS indicator
 03F7                        C1	$MIF120:
 03F7  EB 0F                 C1		JMP SHORT $MEN119
 03F9                        C1	$MIF119:
 03F9  B4 02                 C1		  MOV	  AH,DOS_DISP_CHAR			     ;;AN000;;	 DOS Function to display CHA
				RACTER
 03FB                        C1	$MDO123:
 03FB  0B C9                 C1		    OR	    CX,CX				     ;;AN002;;	 Are there any left to displ
				ay?
 03FD  74 09                 C1		  JZ $MEN123
 03FF  26: 8A 15             C1		    MOV     DL,BYTE PTR ES:[DI] 		     ;;AN002;;	   Get the character
 0402  CD 21                 C1		    INT     21H 				     ;;AN002;;	   Display the character
 0404  47                    C1		    INC     DI					     ;;AN002;;	   Set pointer to next chara
				cter
 0405  49                    C1		    DEC     CX					     ;;AN002;;	   Count this character
 0406  75 F3                 C1		  JNZ $MDO123
 0408                        C1	$MEN123:
 0408                        C1	$MEN119:
 0408  F8                    C1		CLC						     ;;AN000;;	 Char functions used don't r
				eturn carry as error
 0409  1F                    C1		POP	DS					     ;;AN000;;
 040A  C3                    C1		RET						     ;;AN000;;
 040B                        C1	$M_DISPLAY_$_STRING ENDP				     ;;AN000;;
 040B                        C1	$M_DISPLAY_H_STRING PROC NEAR				     ;;AN000;;
 040B  33 C0                 C1		XOR	AX,AX					     ;;AN002;; Set number of bytes written t
				o 0
 040D  0B C9                 C1		OR	CX,CX					     ;;AN002;; For performance, don't write 
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-18
DOS - Message Retriever - DISPMSG.ASM Module                

				if not necessary
 040F  74 27                 C1		JZ $MIF127
 0411  1E                    C1		  PUSH	  DS					     ;;AN000;; Yes,
 0412  06                    C1		  PUSH	  ES					     ;;AN000;;
 0413  1F                    C1		  POP	  DS					     ;;AN000;;	 Set DS to segment of messag
				e text
 0414  B4 40                 C1		  MOV	  AH,DOS_WRITE_HANDLE			     ;;AN000;;	 DOS function to write to a 
				handle
 0416  8B D7                 C1		  MOV	  DX,DI 				     ;;AN000;;	 Pointer to data to write
 0418  83 F9 01              C1		  CMP	  CX,$M_SINGLE_CHAR			     ;;AN000;;	 Is this a single character?
 041B  75 18                 C1		  JNE $MIF128
 041D  CD 21                 C1		    INT     21H 				     ;;AN000;;	   Write character
 041F  1F                    C1		    POP     DS					     ;;AN000;;	     Set DS to segment of me
				ssage text
 0420  50                    C1		    PUSH    AX					     ;;AN000;;
 0421  26: 8A 05             C1		    MOV     AL,BYTE PTR ES:[DI] 		     ;;AN000;;	     Get the character
 0424  E8 0459 R             C1		    CALL    $M_IS_IT_DBCS			     ;;AN000;;	     Is this the first byte 
				of a DB character
 0427  58                    C1		    POP     AX					     ;;AN000;;	     Set DS to segment of me
				ssage text
 0428  1E                    C1		    PUSH    DS					     ;;AN000;;
 0429  06                    C1		    PUSH    ES					     ;;AN000;;
 042A  1F                    C1		    POP     DS					     ;;AN000;;	     Set DS to segment of me
				ssage text
 042B  73 06                 C1		    JNC $MIF129
 042D  F8                    C1		      CLC					     ;;AN000;;	      Clear the DBCS indicat
				or
 042E  B4 40                 C1		      MOV     AH,DOS_WRITE_HANDLE		     ;;AN000;;	      DOS function to write 
				to a handle
 0430  42                    C1		      INC     DX				     ;;AN000;;	      Point to next characte
				r
 0431  CD 21                 C1		      INT     21H				     ;;AN000;;	      Write character
 0433                        C1	$MIF129:
 0433  EB 02                 C1		  JMP SHORT $MEN128
 0435                        C1	$MIF128:
 0435  CD 21                 C1		    INT     21H 				     ;;AN000;;	   Write String at DS:SI to 
				handle
 0437                        C1	$MEN128:
 0437  1F                    C1		  POP	  DS					     ;;AN000;;
 0438                        C1	$MIF127:
 0438  C3                    C1		RET						     ;;AN000;;
 0439                        C1	$M_DISPLAY_H_STRING ENDP				     ;;AN000;;
 0439                        C1	$M_GET_EXT_ERR_39 PROC NEAR				     ;AN001;
 0439  B8 0027               C1		MOV	AX,EXT_ERR_39				     ;AN001; Set AX=39
 043C  BB 0004               C1		MOV	BX,(ERROR_CLASS_39 SHR 8) + ACTION_39	     ;AN001; Set BH=1 BL=4
 043F  B5 01                 C1		MOV	CH,LOCUS_39				     ;AN001; Set CH=1
 0441  C3                    C1		RET						     ;AN001;
 0442                        C1	$M_GET_EXT_ERR_39 ENDP					     ;AN001;
 0442                        C1	$M_ADD_CRLF PROC NEAR					     ;;AN004;;
 0442  80 FE FF              C1		CMP	DH,UTILITY_MSG_CLASS			     ;;AN004;; Is it a utility message?
 0445  74 11                 C1		JE $MIF134
 0447  F6 C6 80              C1		  TEST	  DH,$M_NO_CRLF_MASK			     ;;AN004;;	 Are we to supress the CR LF
				?
 044A  75 0C                 C1		  JNZ $MIF135
 044C  1E                    C1		    PUSH    DS					     ;;AN004;;
 044D  07                    C1		    POP     ES					     ;;AN004;;	  Set ES to data segment
 044E  8D 3E 0057 R          C1		    LEA     DI,$M_RT.$M_CRLF			     ;;AN004;;	  Point at CRLF message
 0452  B9 0002               C1		    MOV     CX,$M_CRLF_SIZE			     ;;AN004;;	  Set the message size
 0455  E8 039B R             C1		    CALL    $M_DISPLAY_STRING			     ;;AN004;;	  Display the CRLF
 0458                        C1	$MIF135:
 0458                        C1	$MIF134:
 0458  C3                    C1		RET						     ;;AN004;; Return
 0459                        C1	$M_ADD_CRLF ENDP					     ;;AN004;;
 0459                        C1	$M_IS_IT_DBCS PROC NEAR 				     ;;AN000;;
 0459  06                    C1		PUSH	ES					     ;;AN000;; Save Extra segment register
 045A  57                    C1		PUSH	DI					     ;;AN000;; Save SI register
 045B  C4 3E 0050 R          C1		LES	DI,$M_RT.$M_DBCS_VEC			     ;;AN000;;
 045F  0B FF                 C1		OR	DI,DI					     ;;AN000;; Was the DBCS vector set?
 0461  74 17                 C1		JZ $MIF138
 0463                        C1	$MDO139:
 0463  26: 83 3D 00          C1		    CMP     WORD PTR ES:[DI],$M_DBCS_TERM	     ;;AN000;; Is this the terminating flag?
 0467  F8                    C1		    CLC 					     ;;AN000;;
 0468  74 10                 C1		  JE $MEN139
 046A  26: 3A 05             C1		    CMP     AL,BYTE PTR ES:[DI] 		     ;;AN000;;	  Does the character fall in
				 the DBCS range?
 046D  72 07                 C1		    JNAE $MIF141
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-19
DOS - Message Retriever - DISPMSG.ASM Module                

 046F  26: 3A 45 01          C1		    CMP     AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	  Does the character fall in
				 the DBCS range?
 0473  77 01                 C1		    JNBE $MIF141
 0475  F9                    C1		      STC					     ;;AN000;;	  Yes,
 0476                        C1	$MIF141:
 0476  47                    C1		    INC     DI					     ;;AN000;;	  No,
 0477  47                    C1		    INC     DI					     ;;AN000;;	     Go to next vector
 0478  EB E9                 C1		  JMP SHORT $MDO139
 047A                        C1	$MEN139:
 047A                        C1	$MIF138:
 047A  5F                    C1		POP	DI					     ;;AN000;;
 047B  07                    C1		POP	ES					     ;;AN000;; Restore SI register
 047C  C3                    C1		RET						     ;;AN000;; Return
 047D                        C1	$M_IS_IT_DBCS ENDP					     ;;AN000;;
 047D                        C1	$M_CONVERT2ASC PROC NEAR				     ;;AN000;;
 047D  8F 06 005A R          C1		POP	[$M_RT.$M_RETURN_ADDR]			     ;;AN000;; Save Return Address
 0481  33 DB                 C1		XOR	BX,BX					     ;;AN000;; Use BP as a swapping register
 0483  93                    C1		XCHG	BX,AX					     ;;AN000;; Initialize - Low Word in BP
 0484  92                    C1		XCHG	AX,DX					     ;;AN000;;		  - High Word in AX
 0485                        C1	$MDO145:
 0485  F7 36 005E R          C1		  DIV	  $M_RT.$M_DIVISOR			     ;;AN000;; Divide High Word by divisor
 0489  93                    C1		  XCHG	  BX,AX 				     ;;AN000;; Setup to divide Low Word usin
				g remainder
 048A  F7 36 005E R          C1		  DIV	  $M_RT.$M_DIVISOR			     ;;AN000;; Divide Low Word by divisor
 048E  83 FA 09              C1		  CMP	  DX,9					     ;;AN000;;	Make a digit of the remainde
				r
 0491  76 05                 C1		  JNA $MIF146
 0493  80 C2 37              C1		    ADD     DL,55				     ;;AN000;;	   Make A to F ASCII
 0496  EB 03                 C1		  JMP SHORT $MEN146
 0498                        C1	$MIF146:
 0498  80 C2 30              C1		    ADD     DL,'0'				     ;;AN000;;	   Make 0 to 9 ASCII
 049B                        C1	$MEN146:
 049B  52                    C1		  PUSH	  DX					     ;;AN000;; Save the digit on the stack
 049C  41                    C1		  INC	  CX					     ;;AN000;; Count that digit
 049D  0B C0                 C1		  OR	  AX,AX 				     ;;AN000;; Are we done?
 049F  75 04                 C1		JNZ $MLL149
 04A1  0B DB                 C1		  OR	  BX,BX 				     ;;AN000;; AX and BX must be ZERO!!
 04A3  74 39                 C1		JZ $MEN145
 04A5                        C1	$MLL149:
 04A5  83 F9 03              C1		  CMP	  CX,$M_FIRST_THOU			     ;;AN000;; Are we at the first thousands
				 mark
 04A8  75 0D                 C1		  JNE $MIF150
 04AA  80 7C 0A 2C           C1		    CMP     $M_SL.$M_S_PAD,$M_COMMA		     ;;AN000;; Is the pad character a comma?
 04AE  75 05                 C1		    JNE $MIF151
 04B0  FF 36 0067 R          C1		      PUSH    WORD PTR $M_RT.$M_THOU_SEPARA	     ;;AN000;; Insert a thousand separator
 04B4  41                    C1		      INC     CX				     ;;AN000;;
 04B5                        C1	$MIF151:
 04B5  EB 22                 C1		  JMP SHORT $MEN150
 04B7                        C1	$MIF150:
 04B7  83 F9 06              C1		    CMP     CX,$M_SECOND_THOU			     ;;AN000;;	 Are we at the first thousan
				ds mark
 04BA  75 0D                 C1		    JNE $MIF154
 04BC  80 7C 0A 2C           C1		      CMP     $M_SL.$M_S_PAD,$M_COMMA		     ;;AN000;; Is the pad character a comma?
 04C0  75 05                 C1		      JNE $MIF155
 04C2  FF 36 0067 R          C1			PUSH	WORD PTR $M_RT.$M_THOU_SEPARA	     ;;AN000;; Insert a thousand separator
 04C6  41                    C1			INC	CX				     ;;AN000;;
 04C7                        C1	$MIF155:
 04C7  EB 10                 C1		    JMP SHORT $MEN154
 04C9                        C1	$MIF154:
 04C9  83 F9 09              C1		      CMP     CX,$M_THIRD_THOU			     ;;AN000;;	 Are we at the first thousan
				ds mark
 04CC  75 0B                 C1		      JNE $MIF158
 04CE  80 7C 0A 2C           C1			CMP	$M_SL.$M_S_PAD,$M_COMMA 	     ;;AN000;; Is the pad character a comma?
 04D2  75 05                 C1			JNE $MIF159
 04D4  FF 36 0067 R          C1			  PUSH	  WORD PTR $M_RT.$M_THOU_SEPARA      ;;AN000;; Insert a thousand separator
 04D8  41                    C1			  INC	  CX				     ;;AN000;;
 04D9                        C1	$MIF159:
 04D9                        C1	$MIF158:
 04D9                        C1	$MEN154:
 04D9                        C1	$MEN150:
 04D9  93                    C1		  XCHG	  AX,BX 				     ;;AN000;;	 Setup to divide the reduced
				 High Word
 04DA  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;;	 Reset remainder
 04DC  EB A7                 C1		JMP SHORT $MDO145
 04DE                        C1	$MEN145:
 04DE  33 D2                 C1		XOR	DX,DX					     ;;AN000;;	 Reset remainder
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-20
DOS - Message Retriever - DISPMSG.ASM Module                

 04E0  33 C0                 C1		XOR	AX,AX					     ;;AN000;;	 Reset remainder
 04E2  FF 36 005A R          C1		PUSH	[$M_RT.$M_RETURN_ADDR]			     ;;AN000;;	 Restore Return Address
 04E6  C3                    C1		RET						     ;;AN000;;	 Return
 04E7                        C1	$M_CONVERT2ASC ENDP					     ;;AN000;;
 04E7                        C1	$M_DISPLAY_MESSAGE PROC NEAR				     ;;AN000;;
 04E7                        C1	$MDO165:
 04E7  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;; Set size = 0
 04E9  0B C9                 C1		  OR	  CX,CX 				     ;;AN000;; Are we finished the message y
				et?
 04EB  74 21                 C1		  JZ $MIF166
 04ED  B4 25                 C1		    MOV     AH,"%"				     ;;AN000;;	 Prepare to scan for %
 04EF  B0 00                 C1		    MOV     AL,0				     ;;AN004;;
 04F1                        C1	$MDO167:
 04F1  26: 38 25             C1		      CMP     BYTE PTR ES:[DI],AH		     ;;AN000;;	 Is this character NOT a %
 04F4  75 0A                 C1		    JNE $MLL168
 04F6  26: 38 65 01          C1		      CMP     BYTE PTR ES:[DI+1],AH		     ;;AN000;;	   Is the next character als
				o a %
 04FA  74 04                 C1		    JE $MLL168
 04FC  3A C4                 C1		      CMP     AL,AH				     ;;AN000;;	     Was the character befor
				e a %
 04FE  75 0E                 C1		    JNE $MEN167
 0500                        C1	$MLL168:
 0500  26: 8A 05             C1		      MOV     AL,BYTE PTR ES:[DI]		     ;;AN004;;	 Yes, (to any of the above)
 0503  E8 0459 R             C1		      CALL    $M_IS_IT_DBCS			     ;;AN004;;	   Is this character the fir
				st part of a DBCS?
 0506  73 01                 C1		      JNC $MIF169
 0508  47                    C1			INC	DI				     ;;AN004;;	     Increment past second p
				art
 0509                        C1	$MIF169:
 0509  47                    C1		      INC     DI				     ;;AN000;;	     Next character in strin
				g
 050A  42                    C1		      INC     DX				     ;;AN000;;	     Size = Size + 1
 050B  49                    C1		      DEC     CX				     ;;AN000;;	     Decrement total size
 050C  75 E3                 C1		    JNZ $MDO167
 050E                        C1	$MEN167:
 050E                        C1	$MIF166:
 050E  56                    C1		  PUSH	  SI					     ;;AN000;; Save beginning of sublists
 050F  87 CA                 C1		  XCHG	  CX,DX 				     ;;AN000;; Get size of message to displa
				y (tot sz in DX)
 0511  0B ED                 C1		  OR	  BP,BP 				     ;;AN000;; Do we have any replacables to
				 do?
 0513  74 33                 C1		  JZ $MIF173
 0515  4D                    C1		    DEC     BP					     ;;AN000;;	 Decrement number of replaca
				bles
 0516  83 3E 005C R 00       C1		    CMP     $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 051B  75 2B                 C1		    JNE $MIF174
 051D                        C1	$MDO175:
 051D  8A 44 06              C1			MOV	AL,$M_SL.$M_S_ID		     ;;AN000;;	 Get ID byte
 0520  04 30                 C1			ADD	AL,30H				     ;;AN000;;	 Convert to ASCII
 0522  26: 3A 45 01          C1			CMP	AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	 Is this the right sublist?
 0526  75 02                 C1		      JNE $MIF175
 0528  EB 1E                 C1		      JMP SHORT $MSR175
 052A                        C1	$MIF175:
 052A  3C 30                 C1			CMP	AL,$M_SPECIAL_CASE		     ;;AN000;;	   Does this sublist have ID
				 = 0
 052C  75 04                 C1		      JNE $MLL178
 052E  0B D2                 C1			OR	DX,DX				     ;;AN000;;	   Are we at the end of the 
				message?
 0530  74 04                 C1		      JZ $MEN175
 0532                        C1	$MLL178:
 0532  03 34                 C1			ADD	SI,WORD PTR $M_SL.$M_S_SIZE	     ;;AN000;;	     Next SUBLIST
 0534  EB E7                 C1		      JMP SHORT $MDO175
 0536                        C1	$MEN175:
 0536  80 3E 0059 R FF       C1			CMP	$M_RT.$M_CLASS,UTILITY_MSG_CLASS     ;;AN004;;	     Is it a utility message
				?
 053B  75 08                 C1			JNE $MIF180
 053D  42                    C1			  INC	  DX				     ;;AN000;;	       Remember to display C
				R,LF
 053E  42                    C1			  INC	  DX				     ;;AN000;;		 at the end of the m
				essage
 053F  49                    C1			  DEC	  CX				     ;;AN000;;	       Adjust message length
 0540  49                    C1			  DEC	  CX				     ;;AN000;;
 0541  4F                    C1			  DEC	  DI				     ;;AN000;;	       Adjust ending address
				 of message
 0542  4F                    C1			  DEC	  DI				     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-21
DOS - Message Retriever - DISPMSG.ASM Module                

 0543  EB 03                 C1			JMP SHORT $MEN180
 0545                        C1	$MIF180:
 0545  BA FFFF               C1			  MOV	  DX,-1 			     ;;AN004;;	       Set special case
 0548                        C1	$MEN180:
 0548                        C1	$MSR175:
 0548                        C1	$MIF174:
 0548                        C1	$MIF173:
 0548  57                    C1		  PUSH	  DI					     ;;AN000;; Save pointer to replace numbe
				r
 0549  2B F9                 C1		  SUB	  DI,CX 				     ;;AN000;; Determine beginning of string
 054B  E8 039B R             C1		  CALL	  $M_DISPLAY_STRING			     ;;AN000;; Display string until % (or en
				d)
 054E  5F                    C1		  POP	  DI					     ;;AN000;; Get back pointer to replace n
				umber
 054F  59                    C1		  POP	  CX					     ;;AN000;; Clean up stack in case error
 0550  73 03                 C1		JNC $MXL3
 0552  E9 05E1 R             C1		JMP $MEN165
 0555                        C1	$MXL3:
 0555  51                    C1		  PUSH	  CX					     ;;AN000;;
 0556  8B CA                 C1		  MOV	  CX,DX 				     ;;AN000;; Get the size of the rest of t
				he message
 0558  80 7C 06 00           C1		  CMP	  $M_SL.$M_S_ID,$M_SPECIAL_CASE-30H	     ;;AN000;; Is this the %0 case?
 055C  74 0D                 C1		  JE $MIF187
 055E  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	Are we finished the whole me
				ssage?
 0560  74 06                 C1		    JZ $MIF188
 0562  49                    C1		      DEC     CX				     ;;AN000;;	  Decrement total size (%)
 0563  49                    C1		      DEC     CX				     ;;AN000;;	  Decrement total size (#)
 0564  47                    C1		      INC     DI				     ;;AN000;;	  Go past %
 0565  47                    C1		      INC     DI				     ;;AN000;;	  Go past replace number
 0566  EB 01                 C1		    JMP SHORT $MEN188
 0568                        C1	$MIF188:
 0568  5E                    C1		      POP     SI				     ;;AN000;;	  Get back pointer to beginn
				ing of SUBLISTs
 0569                        C1	$MEN188:
 0569  EB 10                 C1		  JMP SHORT $MEN187
 056B                        C1	$MIF187:
 056B  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	Are we finished the whole me
				ssage?
 056D  75 03                 C1		    JNZ $MIF192
 056F  5E                    C1		      POP     SI				     ;;AN000;;	 Get back pointer to beginni
				ng of SUBLISTs
 0570  EB 09                 C1		    JMP SHORT $MEN192
 0572                        C1	$MIF192:
 0572  83 F9 FF              C1		      CMP     CX,-1				     ;;AN004;;	 Are we at the end of the me
				ssage?
 0575  75 02                 C1		      JNZ $MIF194
 0577  33 C9                 C1			XOR	CX,CX				     ;;AN004;;
 0579                        C1	$MIF194:
 0579  0B FF                 C1		      OR      DI,DI				     ;;AN004;;	Turn ZF off
 057B                        C1	$MEN192:
 057B                        C1	$MEN187:
 057B  74 64                 C1		JZ $MEN165
 057D  55                    C1		  PUSH	  BP					     ;;AN000;;	 Save the replace count
 057E  57                    C1		  PUSH	  DI					     ;;AN000;;	 Save location to complete m
				essage
 057F  06                    C1		  PUSH	  ES					     ;;AN000;;
 0580  51                    C1		  PUSH	  CX					     ;;AN000;;	 Save size of the rest of th
				e message
 0581  33 C9                 C1		  XOR	  CX,CX 				     ;;AN000;;	 Reset CX used for character
				 count
 0583  83 3E 005C R 00       C1		  CMP	  $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 0588  75 3B                 C1		  JNE $MIF199
 058A  F6 44 07 0F           C1		    TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 058E  75 08                 C1		    JNZ $MIF200
 0590  C4 7C 02              C1		      LES     DI,DWORD PTR $M_SL.$M_S_VALUE	     ;;AN000;; Load pointer to replacing par
				ameter
 0593  E8 06F0 R             C1		      CALL    $M_CHAR_REPLACE			     ;;AN000;;
 0596  EB 28                 C1		    JMP SHORT $MEN200
 0598                        C1	$MIF200:
 0598  F6 44 07 0D           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Sgn_Bin_Type AND $M_TYPE_MASK ;;AN000;;
 059C  74 0C                 C1		      JZ $MLL202
 059E  F6 44 07 0E           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Unsgn_Bin_Type AND $M_TYPE_MASK ;;AN000;;
 05A2  74 06                 C1		      JZ $MLL202
 05A4  F6 44 07 0C           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Bin_Hex_Type AND $M_TYPE_MASK ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-22
DOS - Message Retriever - DISPMSG.ASM Module                

 05A8  75 08                 C1		      JNZ $MIF202
 05AA                        C1	$MLL202:
 05AA  C4 7C 02              C1			LES	DI,DWORD PTR $M_SL.$M_S_VALUE	     ;;AN000;; Load pointer to replacing par
				ameter
 05AD  E8 0718 R             C1			CALL	$M_BIN2ASC_REPLACE		     ;;AN000;;
 05B0  EB 0E                 C1		      JMP SHORT $MEN202
 05B2                        C1	$MIF202:
 05B2  F6 44 07 0B           C1			TEST	BYTE PTR $M_SL.$M_S_FLAG,NOT Date_Type AND $M_TYPE_MASK ;;AN000;;
 05B6  75 05                 C1			JNE $MIF204
 05B8  E8 07B1 R             C1			  CALL	  $M_DATE_REPLACE		     ;;AN000;;
 05BB  EB 03                 C1			JMP SHORT $MEN204
 05BD                        C1	$MIF204:
 05BD  E8 0875 R             C1			  CALL	  $M_TIME_REPLACE		     ;;AN000;;
 05C0                        C1	$MEN204:
 05C0                        C1	$MEN202:
 05C0                        C1	$MEN200:
 05C0  E8 0615 R             C1		    CALL    $M_DISPLAY_REPLACE			     ;;AN000;; Display the replace
 05C3  EB 03                 C1		  JMP SHORT $MEN199
 05C5                        C1	$MIF199:
 05C5  E8 05E8 R             C1		    CALL    $M_EXT_PAR_REPLACE			     ;;AN000;;
 05C8                        C1	$MEN199:
 05C8  72 07                 C1		  JC $MIF211
 05CA  59                    C1		    POP     CX					     ;;AN000;; Get size of the rest of the m
				essage
 05CB  07                    C1		    POP     ES					     ;;AN000;; Get address of the rest of th
				e message
 05CC  5F                    C1		    POP     DI					     ;;AN000;;
 05CD  5D                    C1		    POP     BP					     ;;AN000;; Get replacment count
 05CE  5E                    C1		    POP     SI					     ;;AN000;; ELSE get address of first sub
				list structure
 05CF  EB 04                 C1		  JMP SHORT $MEN211
 05D1                        C1	$MIF211:
 05D1  83 C4 0A              C1		    ADD     SP,10				     ;;AN000;; Clean up stack if error
 05D4  F9                    C1		    STC 					     ;;AN000;;
 05D5                        C1	$MEN211:
 05D5  83 3E 005C R 00       C1		  CMP	  $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 05DA  75 05                 C1		JNE $MLL214
 05DC  72 03                 C1		JC $MXL4
 05DE  E9 04E7 R             C1		JMP $MDO165
 05E1                        C1	$MXL4:
 05E1                        C1	$MLL214:
 05E1                        C1	$MEN165:
 05E1  C7 06 005C R 0000     C1		MOV	$M_RT.$M_MSG_NUM,0			     ;;AN000;; Reset message number to null
 05E7  C3                    C1		RET						     ;;AN000;; Return
 05E8                        C1	$M_DISPLAY_MESSAGE ENDP 				     ;;AN000;;
 05E8                        C1	$M_EXT_PAR_REPLACE PROC NEAR				     ;;AN000;;
 05E8  33 D2                 C1		XOR	DX,DX					     ;;AN000;; Prepare for get binary value 
				(HIGH)
 05EA  A1 005C R             C1		MOV	AX,$M_RT.$M_MSG_NUM			     ;;AN000;; Prepare for get binary value 
				(LOW)
 05ED  C7 06 005E R 000A     C1		MOV	$M_RT.$M_DIVISOR,$M_BASE10		     ;;AN000;; Set default divisor
 05F3  E8 047D R             C1		CALL	$M_CONVERT2ASC				     ;;AN000;;
 05F6                        C1	$MDO215:
 05F6  58                    C1		  POP	  AX					     ;;AN000;;	 Get character in register
 05F7  88 87 0060 R          C1		  MOV	  BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL	     ;;AN000;;	Move char into the buffer
 05FB  43                    C1		  INC	  BX					     ;;AN000;;	 Increase buffer count
 05FC  83 FB 40              C1		  CMP	  BX,$M_TEMP_BUF_SZ			     ;;AN000;;	 Is buffer full?
 05FF  75 03                 C1		  JNE $MIF216
 0601  E8 06D4 R             C1		    CALL    $M_FLUSH_BUF			     ;;AN000;;	   Flush the buffer
 0604                        C1	$MIF216:
 0604  FE C9                 C1		  DEC	  CL					     ;;AN000;;	 Have we completed replace?
 0606  75 EE                 C1		JNZ $MDO215
 0608  B8 0A0D               C1		MOV	AX,$M_CR_LF				     ;;AN000;;	Move char into the buffer
 060B  89 87 0060 R          C1		MOV	WORD PTR $M_RT.$M_TEMP_BUF[BX],AX	     ;;AN000;;	Move char into the buffer
 060F  43                    C1		INC	BX					     ;;AN000;;	 Increase buffer count
 0610  43                    C1		INC	BX					     ;;AN000;;	 Increase buffer count
 0611  E8 06D4 R             C1		CALL	$M_FLUSH_BUF				     ;;AN000;;	   Flush the buffer
 0614  C3                    C1		RET						     ;;AN000::
 0615                        C1	$M_EXT_PAR_REPLACE ENDP 				     ;;AN000;;
 0615                        C1	$M_DISPLAY_REPLACE PROC NEAR				     ;;AN000;;
 0615  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Use BX for buffer count
 0617  80 7C 06 00           C1		  CMP	  $M_SL.$M_S_ID,$M_SPECIAL_CASE-30H	     ;;AN000;; Is this the special case (con
				vert to ASCII)
 061B  75 11                 C1		  JNE $MIF276
 061D  C7 87 0060 R 2D20     C1		    MOV     WORD PTR $M_RT.$M_TEMP_BUF[BX],$M_SPACE_HYP ;;AN000;; Move in a " -"
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-23
DOS - Message Retriever - DISPMSG.ASM Module                

 0623  43                    C1		    INC     BX					     ;;AN000;;	   Increment count
 0624  43                    C1		    INC     BX					     ;;AN000;;	   Increment count
 0625  C6 87 0060 R 20       C1		    MOV     BYTE PTR $M_RT.$M_TEMP_BUF[BX],$M_SPACE  ;;AN000;;	   Move in a " "
 062A  43                    C1		    INC     BX					     ;;AN000;;	   Increment count
 062B  E8 06D4 R             C1		    CALL    $M_FLUSH_BUF			     ;;AN000;;	   Write out " - " to prepar
				e for special case
 062E                        C1	$MIF276:
 062E  5D                    C1		  POP	  BP					     ;;AN000;; Remember the return address
 062F  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Use BX for buffer count
 0631  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;; Use DX for count of parms tak
				en off the stack
 0633  88 0E 0056 R          C1		  MOV	  $M_RT.$M_SIZE,CL			     ;;AN000;; Save size to later clear stac
				k
 0637  8A 44 09              C1		  MOV	  AL,BYTE PTR $M_SL.$M_S_MINW		     ;;AN000;; Get the minimum width
 063A  3A C1                 C1		  CMP	  AL,CL 				     ;;AN000;; Do we need pad chars added?
 063C  76 1E                 C1		  JNA $MIF278
 063E  2A C1                 C1		    SUB     AL,CL				     ;;AN000;;	 Calculate how many pad char
				s are needed.
 0640  8A F0                 C1		    MOV     DH,AL				     ;;AN000;;	 Save the number of pad char
				acters
 0642  F6 44 07 80           C1		    TEST    BYTE PTR $M_SL.$M_S_FLAG,Right_Align     ;;AN000;;	 Was replaceable parm to be 
				right aligned?
 0646  74 14                 C1		    JZ $MIF279
 0648                        C1	$MDO280:
 0648  8A 44 0A              C1			MOV	AL,BYTE PTR $M_SL.$M_S_PAD	     ;;AN000;;
 064B  88 87 0060 R          C1			MOV	BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL    ;;AN000;;	   Move in a pad char
 064F  43                    C1			INC	BX				     ;;AN000;;
 0650  83 FB 40              C1			CMP	BX,$M_TEMP_BUF_SZ		     ;;AN000;;	   Is buffer full?
 0653  75 03                 C1			JNE $MIF281
 0655  E8 06D4 R             C1			  CALL	  $M_FLUSH_BUF			     ;;AN000;;	     Flush the buffer
 0658                        C1	$MIF281:
 0658  FE CE                 C1			DEC	DH				     ;;AN000;;	   Have we filled with enoug
				h pad chars?
 065A  75 EC                 C1		      JNZ $MDO280
 065C                        C1	$MIF279:
 065C                        C1	$MIF278:
 065C  80 7C 08 00           C1		  CMP	  BYTE PTR $M_SL.$M_S_MAXW,$M_UNLIM_W	     ;;AN000;; Is maximum width unlimited?
 0660  74 0D                 C1		  JE $MIF286
 0662  38 4C 08              C1		    CMP     BYTE PTR $M_SL.$M_S_MAXW,CL 	     ;;AN000;; Will we exceed maximum width?
 0665  73 08                 C1		    JNB $MIF287
 0667  2A 4C 08              C1		      SUB     CL,BYTE PTR $M_SL.$M_S_MAXW	     ;;AN000;;	 Calculate how many extra ch
				ars
 066A  8A D1                 C1		      MOV     DL,CL				     ;;AN000;;	 Remember how many chars to 
				pop off
 066C  8A 4C 08              C1		      MOV     CL,BYTE PTR $M_SL.$M_S_MAXW	     ;;AN000;;	 Set new string length
 066F                        C1	$MIF287:
 066F                        C1	$MIF286:
 066F  0B C9                 C1		  OR	  CX,CX 				     ;;AN000;;
 0671  74 24                 C1		  JZ $MIF290
 0673                        C1	$MDO291:
 0673  F6 44 07 0F           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 0677  75 0C                 C1		      JNZ $MIF292
 0679  F6 44 07 10           C1		      TEST    $M_SL.$M_S_FLAG,Char_field_ASCIIZ AND $M_SIZE_MASK ;  Is this replace a ASCIIZ
				 string?
 067D  74 06                 C1		      JZ $MIF292
 067F  26: 8A 05             C1			MOV	AL,BYTE PTR ES:[DI]		     ;;AN000;;	 Get first character from st
				ring
 0682  47                    C1			INC	DI				     ;;AN000;;	 Next character in string
 0683  EB 01                 C1		      JMP SHORT $MEN292
 0685                        C1	$MIF292:
 0685  58                    C1			POP	AX				     ;;AN000;;	 Get character in register
 0686                        C1	$MEN292:
 0686  88 87 0060 R          C1		      MOV     BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL      ;;AN000;;	Move char into the buffer
 068A  43                    C1		      INC     BX				     ;;AN000;;	 Increase buffer count
 068B  83 FB 40              C1		      CMP     BX,$M_TEMP_BUF_SZ 		     ;;AN000;;	 Is buffer full?
 068E  75 03                 C1		      JNE $MIF295
 0690  E8 06D4 R             C1			CALL	$M_FLUSH_BUF			     ;;AN000;;	   Flush the buffer
 0693                        C1	$MIF295:
 0693  FE C9                 C1		      DEC     CL				     ;;AN000;;	 Have we completed replace?
 0695  75 DC                 C1		    JNZ $MDO291
 0697                        C1	$MIF290:
 0697  F6 44 07 80           C1		  TEST	  BYTE PTR $M_SL.$M_S_FLAG,Right_Align	     ;;AN000;;	 Was replaceable parm to be 
				left aligned?
 069B  75 18                 C1		  JNZ $MIF299
 069D  0A F6                 C1		    OR	    DH,DH				     ;;AN000;;	 Do we need pad chars added?
 069F  74 14                 C1		    JZ $MIF300
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-24
DOS - Message Retriever - DISPMSG.ASM Module                

 06A1                        C1	$MDO301:
 06A1  8A 44 0A              C1			MOV	AL,BYTE PTR $M_SL.$M_S_PAD	     ;;AN000;;
 06A4  88 87 0060 R          C1			MOV	BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL    ;;AN000;;	   Move in a pad char
 06A8  43                    C1			INC	BX				     ;;AN000;;
 06A9  83 FB 40              C1			CMP	BX,$M_TEMP_BUF_SZ		     ;;AN000;;	   Is buffer full?
 06AC  75 03                 C1			JNE $MIF302
 06AE  E8 06D4 R             C1			  CALL	  $M_FLUSH_BUF			     ;;AN000;;	     Flush the buffer
 06B1                        C1	$MIF302:
 06B1  FE CE                 C1			DEC	DH				     ;;AN000;;	   Have we filled with enoug
				h pad chars?
 06B3  75 EC                 C1		      JNZ $MDO301
 06B5                        C1	$MIF300:
 06B5                        C1	$MIF299:
 06B5  F6 44 07 0F           C1		  TEST	  BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 06B9  75 08                 C1		  JNZ $MIF307
 06BB  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?
 06BF  74 02                 C1		  JZ $MIF307
 06C1  EB 0C                 C1		  JMP SHORT $MEN307
 06C3                        C1	$MIF307:
 06C3  0A D2                 C1		    OR	    DL,DL				     ;;AN000;;
 06C5  74 08                 C1		    JE $MIF309
 06C7                        C1	$MDO310:
 06C7  8F 06 005A R          C1			POP	[$M_RT.$M_RETURN_ADDR]		     ;;AN000;;	 Clean Up stack using spare 
				variable
 06CB  FE CA                 C1			DEC	DL				     ;;AN000;;	 Are we done?
 06CD  75 F8                 C1		      JNZ $MDO310
 06CF                        C1	$MIF309:
 06CF                        C1	$MEN307:
 06CF  E8 06D4 R             C1		  CALL	  $M_FLUSH_BUF				     ;;AN000;;	     Flush the buffer for th
				e final time
 06D2  55                    C1		  PUSH	  BP					     ;;AN000;; Restore the return address
 06D3  C3                    C1		  RET						     ;;AN000;;
 06D4                        C1	$M_DISPLAY_REPLACE ENDP 				     ;;AN000;;
 06D4                        C1	$M_FLUSH_BUF PROC NEAR					     ;;AN000;;
 06D4  51                    C1		  PUSH	  CX					     ;;AN000;; Save changed regs
 06D5  06                    C1		  PUSH	  ES					     ;;AN000;;
 06D6  57                    C1		  PUSH	  DI					     ;;AN000;;
 06D7  1E                    C1		  PUSH	  DS					     ;;AN000;; Set ES pointing to buffer
 06D8  07                    C1		  POP	  ES					     ;;AN000;;
 06D9  8B CB                 C1		  MOV	  CX,BX 				     ;;AN000;; Set number of bytes to displa
				y
 06DB  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Reset buffer counter
 06DD  8D 3E 0060 R          C1		  LEA	  DI,$M_RT.$M_TEMP_BUF			     ;;AN000;; Reset buffer location pointer
 06E1  E8 039B R             C1		  CALL	  $M_DISPLAY_STRING			     ;;AN000;; Display the buffer
 06E4  72 05                 C1		  JC $MIF314
 06E6  5F                    C1		    POP     DI					     ;;AN000;; No, Restore changed regs
 06E7  07                    C1		    POP     ES					     ;;AN000;;
 06E8  59                    C1		    POP     CX					     ;;AN000;;
 06E9  EB 04                 C1		  JMP SHORT $MEN314
 06EB                        C1	$MIF314:
 06EB  83 C4 06              C1		    ADD     SP,6				     ;;AN000;;	Fix stack
 06EE  F9                    C1		    STC 					     ;;AN000;;
 06EF                        C1	$MEN314:
 06EF  C3                    C1		  RET						     ;;AN000;; Return
 06F0                        C1	$M_FLUSH_BUF ENDP					     ;;AN000;;
 06F0                        C1	$M_CHAR_REPLACE PROC NEAR				     ;;AN000;;
 06F0  5D                    C1		    POP     BP					     ;;AN000;; Save return address
 06F1  F6 44 07 30           C1		    TEST    $M_SL.$M_S_FLAG,NOT Char_Field_Char AND $M_SIZE_MASK ;;AN000;; Was Character spe
				cified?
 06F5  75 12                 C1		    JNZ $MIF317
 06F7  26: 8A 05             C1		      MOV     AL,BYTE PTR ES:[DI]		     ;;AN000;;	 Get the character
 06FA  50                    C1		      PUSH    AX				     ;;AN000;;	 Put it on the stack
 06FB  41                    C1		      INC     CX				     ;;AN000;;	 Increase the count
 06FC  E8 0459 R             C1		      CALL    $M_IS_IT_DBCS			     ;;AN000;;	 Is this the first byte of a
				 DB character
 06FF  73 06                 C1		      JNC $MIF318
 0701  26: 8A 45 01          C1			MOV	AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	   Get the next character
 0705  50                    C1			PUSH	AX				     ;;AN000;;	   Put it on the stack
 0706  F8                    C1			CLC					     ;;AN000;;	   Clear the carry
 0707                        C1	$MIF318:
 0707  EB 0D                 C1		    JMP SHORT $MEN317
 0709                        C1	$MIF317:
 0709                        C1	$MDO321:
 0709  26: 8A 05             C1			MOV	AL,BYTE PTR ES:[DI]		     ;;AN000;;	 Get the character
 070C  0A C0                 C1			OR	AL,AL				     ;;AN000;;	 Is it the NULL?
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-25
DOS - Message Retriever - DISPMSG.ASM Module                

 070E  74 04                 C1		      JZ $MEN321
 0710  47                    C1			INC	DI				     ;;AN000;;	   Next character
 0711  41                    C1			INC	CX				     ;;AN000;;	   Increment the count
 0712  EB F5                 C1		      JMP SHORT $MDO321
 0714                        C1	$MEN321:
 0714  2B F9                 C1		      SUB     DI,CX				     ;;AN000;;	 Set SI at the beginning of 
				the string
 0716                        C1	$MEN317:
 0716  55                    C1		    PUSH    BP					     ;;AN000;; Restore return address
 0717  C3                    C1		    RET 					     ;;AN000;; Return
 0718                        C1	$M_CHAR_REPLACE ENDP					     ;;AN000;;
 0718                        C1	$M_BIN2ASC_REPLACE PROC NEAR				     ;;AN000;;
 0718  5D                    C1		    POP     BP					     ;;AN000;; Save return address
 0719  33 D2                 C1		    XOR     DX,DX				     ;;AN000;; Prepare for get binary value 
				(HIGH)
 071B  33 C0                 C1		    XOR     AX,AX				     ;;AN000;; Prepare for get binary value 
				(LOW)
 071D  C7 06 005E R 0010     C1		    MOV     $M_RT.$M_DIVISOR,$M_BASE16		     ;;AN000;; Set default divisor
 0723  33 DB                 C1		    XOR     BX,BX				     ;;AN000;; Use BP as the NEG flag (if ap
				plicable)
 0725  F6 44 07 20           C1		    TEST    $M_SL.$M_S_FLAG,NOT $M_BYTE AND $M_SIZE_MASK ;;AN000;; Was BYTE specified?
 0729  75 24                 C1		    JNZ $MIF325
 072B  26: 8A 05             C1		      MOV     AL, BYTE PTR ES:[DI]		     ;;AN000;; Setup byte in AL
 072E  F6 44 07 0D           C1		      TEST    $M_SL.$M_S_FLAG,NOT Sgn_Bin_Type AND $M_TYPE_MASK ;;AN000;; Was Signed binary 
				specified?
 0732  75 0D                 C1		      JNZ $MIF326
 0734  A8 80                 C1			TEST	AL,10000000b			     ;;AN000;; Is this number negative?
 0736  74 03                 C1			JZ $MIF327
 0738  43                    C1			  INC	  BX				     ;;AN000;;	   Remember that it was nega
				tive
 0739  24 7F                 C1			  AND	  AL,01111111b			     ;;AN000;;	   Make it positive
 073B                        C1	$MIF327:
 073B  C7 06 005E R 000A     C1			MOV	$M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 0741                        C1	$MIF326:
 0741  F6 44 07 0E           C1		      TEST    $M_SL.$M_S_FLAG,NOT Unsgn_Bin_Type AND $M_TYPE_MASK ;;AN000;; Was Signed binar
				y specified?
 0745  75 06                 C1		      JNZ $MIF330
 0747  C7 06 005E R 000A     C1			MOV	$M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 074D                        C1	$MIF330:
 074D  EB 54                 C1		    JMP SHORT $MEN325
 074F                        C1	$MIF325:
 074F  F6 44 07 10           C1		      TEST    $M_SL.$M_S_FLAG,NOT $M_WORD AND $M_SIZE_MASK ;;AN000;; Was WORD specified?
 0753  75 26                 C1		      JNZ $MIF333
 0755  26: 8B 05             C1			MOV	AX, WORD PTR ES:[DI]		     ;;AN000;; Setup byte in AL
 0758  F6 44 07 0D           C1			TEST	$M_SL.$M_S_FLAG,NOT Sgn_Bin_Type AND $M_TYPE_MASK ;; AN000;; Was Signed bina
				ry specified?
 075C  75 0F                 C1			JNZ $MIF334
 075E  F6 C4 80              C1			  TEST	  AH,10000000b			     ;;AN000;; Is this number negative?
 0761  74 04                 C1			  JZ $MIF335
 0763  43                    C1			    INC     BX				     ;;AN000;;	   Remember that it was nega
				tive
 0764  80 E4 7F              C1			    AND     AH,01111111b		     ;;AN000;;	   Make it positive
 0767                        C1	$MIF335:
 0767  C7 06 005E R 000A     C1			  MOV	  $M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 076D                        C1	$MIF334:
 076D  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?
 0771  75 06                 C1			JNZ $MIF338
 0773  C7 06 005E R 000A     C1			  MOV	  $M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 0779                        C1	$MIF338:
 0779  EB 28                 C1		      JMP SHORT $MEN333
 077B                        C1	$MIF333:
 077B  26: 8B 05             C1			MOV	AX, WORD PTR ES:[DI]		     ;;AN000;; Setup Double word in DX:AX
 077E  26: 8B 55 02          C1			MOV	DX, WORD PTR ES:[DI]+2		     ;;AN000;;
 0782  F6 44 07 0D           C1			TEST	$M_SL.$M_S_FLAG,NOT Sgn_Bin_Type AND $M_TYPE_MASK ;;AN000;; Was Signed binar
				y specified?
 0786  75 0F                 C1			JNZ $MIF341
 0788  F6 C6 80              C1			  TEST	  DH,10000000b			     ;;AN000;; Is this number negative?
 078B  74 04                 C1			  JZ $MIF342
 078D  43                    C1			    INC     BX				     ;;AN000;;	   Remember that it was nega
				tive
 078E  80 E6 7F              C1			    AND     DH,01111111b		     ;;AN000;;	   Make it positive
 0791                        C1	$MIF342:
 0791  C7 06 005E R 000A     C1			  MOV	  $M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 0797                        C1	$MIF341:
 0797  F6 44 07 0E           C1			TEST	$M_SL.$M_S_FLAG,NOT Unsgn_Bin_Type AND $M_TYPE_MASK ;;AN000;; Was Signed bin
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-26
DOS - Message Retriever - DISPMSG.ASM Module                

				ary specified?
 079B  75 06                 C1			JNZ $MIF345
 079D  C7 06 005E R 000A     C1			  MOV	  $M_RT.$M_DIVISOR,$M_BASE10	     ;;AN000;;
 07A3                        C1	$MIF345:
 07A3                        C1	$MEN333:
 07A3                        C1	$MEN325:
 07A3  E8 047D R             C1		    CALL    $M_CONVERT2ASC			     ;;AN000;; Convert to ASCII string
 07A6  0B DB                 C1		    OR	    BX,BX				     ;;AN000;;
 07A8  74 05                 C1		    JZ $MIF349
 07AA  33 D2                 C1		      XOR     DX,DX				     ;;AN000;; Yes,
 07AC  B2 2D                 C1		      MOV     DL,$M_NEG_SIGN			     ;;AN000;;	 Put "-" on the stack with t
				he number
 07AE  52                    C1		      PUSH    DX				     ;;AN000;;
 07AF                        C1	$MIF349:
 07AF  55                    C1		    PUSH    BP					     ;;AN000;; Restore return address
 07B0  C3                    C1		    RET 					     ;;AN000;; Return
 07B1                        C1	$M_BIN2ASC_REPLACE ENDP 				     ;;AN000;;
 07B1                        C1	$M_DATE_REPLACE PROC NEAR				     ;;AN000;;
 07B1  5D                    C1		    POP     BP					     ;;AN000;; Save return address
 07B2  C7 06 005E R 000A     C1		    MOV     $M_RT.$M_DIVISOR,$M_BASE10		     ;;AN000;; Set default divisor
 07B8  E8 082E R             C1		    CALL    $M_GET_DATE 			     ;;AN000;; Set date format/separator in 
				$M_RT
 07BB  33 D2                 C1		    XOR     DX,DX				     ;;AN000;; Reset DX value
 07BD  33 C0                 C1		    XOR     AX,AX				     ;;AN000;; Reset AX value
 07BF  83 3E 0060 R 00       C1		    CMP     WORD PTR $M_RT.$M_DATE_FORMAT,0	     ;;AN000;; USA Date Format
 07C4  75 1E                 C1		    JNE $MIF351
 07C6  E8 0846 R             C1		      CALL    $M_YEAR				     ;;AN000;;	 Get Year
 07C9  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 07CC  FF 36 006B R          C1		      PUSH    WORD PTR $M_RT.$M_DATE_SEPARA	     ;;AN000;;
 07D0  41                    C1		      INC     CX				     ;;AN000;; Increment count
 07D1  33 C0                 C1		      XOR     AX,AX				     ;;AN000;; Reset AX value
 07D3  8A 44 05              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+3	     ;;AN000;;	Get Day
 07D6  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 07D9  FF 36 006B R          C1		      PUSH    WORD PTR $M_RT.$M_DATE_SEPARA	     ;;AN000;;
 07DD  41                    C1		      INC     CX				     ;;AN000;; Increment count
 07DE  8A 44 04              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+2	     ;;AN000;;	Get Month
 07E1  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 07E4                        C1	$MIF351:
 07E4  83 3E 0060 R 01       C1		    CMP     WORD PTR $M_RT.$M_DATE_FORMAT,1	     ;;AN000;; EUROPE Date Format
 07E9  75 1E                 C1		    JNE $MIF353
 07EB  E8 0846 R             C1		      CALL    $M_YEAR				     ;;AN000;;	 Get Year
 07EE  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 07F1  FF 36 006B R          C1		      PUSH    WORD PTR $M_RT.$M_DATE_SEPARA	     ;;AN000;;
 07F5  41                    C1		      INC     CX				     ;;AN000;;
 07F6  33 C0                 C1		      XOR     AX,AX				     ;;AN000;; Reset AX
 07F8  8A 44 04              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+2	     ;;AN000;;	Get Month
 07FB  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 07FE  FF 36 006B R          C1		      PUSH    WORD PTR $M_RT.$M_DATE_SEPARA	     ;;AN000;;
 0802  41                    C1		      INC     CX				     ;;AN000;;
 0803  8A 44 05              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+3	     ;;AN000;;	Get Day
 0806  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 0809                        C1	$MIF353:
 0809  83 3E 0060 R 02       C1		    CMP     WORD PTR $M_RT.$M_DATE_FORMAT,2	     ;;AN000;; JAPAN Date Format
 080E  75 1C                 C1		    JNE $MIF355
 0810  8A 44 05              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+3	     ;;AN000;;	Get Day
 0813  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 0816  FF 36 006B R          C1		      PUSH    WORD PTR $M_RT.$M_DATE_SEPARA	     ;;AN000;;
 081A  41                    C1		      INC     CX				     ;;AN000;;
 081B  8A 44 04              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+2	     ;;AN000;;	Get Month
 081E  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 0821  FF 36 006B R          C1		      PUSH    WORD PTR $M_RT.$M_DATE_SEPARA	     ;;AN000;;
 0825  41                    C1		      INC     CX				     ;;AN000;;
 0826  E8 0846 R             C1		      CALL    $M_YEAR				     ;;AN000;;	 Get Year
 0829  E8 0858 R             C1		      CALL    $M_CONVERTDATE			     ;;AN000;;	Convert it to an ASCII strin
				g
 082C                        C1	$MIF355:
 082C  55                    C1		    PUSH    BP					     ;;AN000;; Restore return address
 082D  C3                    C1		    RET 					     ;;AN000;; Return
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-27
DOS - Message Retriever - DISPMSG.ASM Module                

 082E                        C1	$M_DATE_REPLACE ENDP					     ;;AN000;;
 082E                        C1	$M_GET_DATE PROC    NEAR				     ;;AN000;;
 082E  B4 38                 C1		    MOV     AH,DOS_GET_COUNTRY			     ;;AN000;; Call DOS for country dependan
				t info
 0830  B0 00                 C1		    MOV     AL,0				     ;;AN000;; Get current country info
 0832  8D 16 0060 R          C1		    LEA     DX,$M_RT.$M_TEMP_BUF		     ;;AN000;; Set up addressibility to buff
				er
 0836  CD 21                 C1		    INT     21H 				     ;;AN000;;
 0838  73 0B                 C1		    JNC $MIF357
 083A  C7 06 0060 R 0000     C1		      MOV     WORD PTR $M_RT.$M_DATE_FORMAT,$M_DEF_DATE_FORM ;;AN000;;	 Set default date fo
				rmat    (BH)
 0840  C6 06 006B R 2D       C1		      MOV     BYTE PTR $M_RT.$M_DATE_SEPARA,$M_DEF_DATE_SEP ;;AN000;;	Set default date sep
				arator (BL)
 0845                        C1	$MIF357:
 0845  C3                    C1		    RET 					     ;;AN000;;
 0846                        C1	$M_GET_DATE ENDP					     ;;AN000;;
 0846                        C1	$M_YEAR     PROC    NEAR				     ;;AN000;;
 0846  8B 44 02              C1		    MOV     AX,WORD PTR $M_SL.$M_S_VALUE	     ;;AN000;;	Get Year
 0849  F6 44 07 10           C1		    TEST    $M_SL.$M_S_FLAG,Date_MDY_4 AND $M_DATE_MASK ;;AN000;; Was Month/Day/Year (2 Digi
				ts) specified?
 084D  75 08                 C1		    JNZ $MIF359
 084F  3D 0063               C1		      CMP     AX,$M_MAX_2_YEAR			     ;;AN000;;	Get Year
 0852  76 03                 C1		      JNA $MIF360
 0854  B8 0063               C1			MOV	AX,$M_MAX_2_YEAR		     ;;AN000;;
 0857                        C1	$MIF360:
 0857                        C1	$MIF359:
 0857  C3                    C1		    RET 					     ;;AN000;;
 0858                        C1	$M_YEAR     ENDP					     ;;AN000;;
 0858                        C1	$M_CONVERTDATE PROC NEAR				     ;;AN000;;
 0858  8F 06 0060 R          C1		    POP     WORD PTR $M_RT.$M_TEMP_BUF		     ;;AN000;; Save return address
 085C  88 0E 0056 R          C1		    MOV     $M_RT.$M_SIZE,CL			     ;;AN000;; Save the size before conversi
				on
 0860  E8 047D R             C1		    CALL    $M_CONVERT2ASC			     ;;AN000;; Convert it to an ASCII string
 0863  49                    C1		    DEC     CX					     ;;AN000;; Test if size only grew by 1
 0864  3A 0E 0056 R          C1		    CMP     CL,$M_RT.$M_SIZE			     ;;AN000;; Did size only grow by one
 0868  75 05                 C1		    JNE $MIF363
 086A  B8 0030               C1		      MOV     AX,$M_TIMEDATE_PAD		     ;;AN000;;	 Get a pad character (0)
 086D  50                    C1		      PUSH    AX				     ;;AN000;;	 Save it
 086E  41                    C1		      INC     CX				     ;;AN000;;	 Count it
 086F                        C1	$MIF363:
 086F  41                    C1		    INC     CX					     ;;AN000;; Restore CX
 0870  FF 36 0060 R          C1		    PUSH    WORD PTR $M_RT.$M_TEMP_BUF		     ;;AN000;; Save return address
 0874  C3                    C1		    RET 					     ;;AN000;;
 0875                        C1	$M_CONVERTDATE ENDP					     ;;AN000;;
 0875                        C1	$M_TIME_REPLACE PROC NEAR				     ;;AN000;;
 0875  5D                    C1		    POP     BP					     ;;AN000;; Save return address
 0876  C7 06 005E R 000A     C1		    MOV     $M_RT.$M_DIVISOR,$M_BASE10		     ;;AN000;; Set default divisor
 087C  E8 08F9 R             C1		    CALL    $M_GET_TIME 			     ;;AN000;; All O.K.?
 087F  F6 44 07 01           C1		    TEST    $M_SL.$M_S_FLAG,Time_Cty_Type AND $M_TIME_MASK ;;AN000;; Is this a request for c
				urrent country info?
 0883  74 1C                 C1		    JZ $MIF365
 0885  80 3E 0071 R 00       C1		      CMP     BYTE PTR $M_RT.$M_TIME_FORMAT,0	     ;;AN000;; Is the current country format
				 12 Hour?
 088A  75 15                 C1		      JNE $MIF366
 088C  8A 44 02              C1			MOV	AL,BYTE PTR $M_SL.$M_S_VALUE	     ;;AN000;;	Get Hours
 088F  3C 0C                 C1			CMP	AL,12				     ;;AN000;;	Is hour 12 or less?
 0891  7C 04                 C1			JL $MLL367
 0893  3C 17                 C1			CMP	AL,23				     ;;AN000;;	  Is hour 24 or greater?
 0895  7E 06                 C1			JNG $MIF367
 0897                        C1	$MLL367:
 0897  B0 61                 C1			  MOV	  AL,$M_AM			     ;;AN000;;
 0899  50                    C1			  PUSH	  AX				     ;;AN000;;	  Push an "a" to represent A
				M.
 089A  41                    C1			  INC	  CX				     ;;AN000;;
 089B  EB 04                 C1			JMP SHORT $MEN367
 089D                        C1	$MIF367:
 089D  B0 70                 C1			  MOV	  AL,$M_PM			     ;;AN000;;
 089F  50                    C1			  PUSH	  AX				     ;;AN000;;	  Push an "p" to represent P
				M.
 08A0  41                    C1			  INC	  CX				     ;;AN000;;
 08A1                        C1	$MEN367:
 08A1                        C1	$MIF366:
 08A1                        C1	$MIF365:
 08A1  33 C0                 C1		    XOR     AX,AX				     ;;AN000;;
 08A3  33 D2                 C1		    XOR     DX,DX				     ;;AN000;;
 08A5  F6 44 07 20           C1		    TEST    $M_SL.$M_S_FLAG,Time_HHMMSSHH_Cty AND $M_SIZE_MASK ;;AN000;; Was Hour/Min/Sec/Hu
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-28
DOS - Message Retriever - DISPMSG.ASM Module                

				nds (12 Hour) specified?
 08A9  74 0B                 C1		    JZ $MIF372
 08AB  8A 44 05              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+3	     ;;AN000;;	Get Hundreds
 08AE  E8 0916 R             C1		      CALL    $M_CONVERTTIME			     ;;AN000;;
 08B1  FF 36 0069 R          C1		      PUSH    WORD PTR $M_RT.$M_DECI_SEPARA	     ;;AN000;;
 08B5  41                    C1		      INC     CX				     ;;AN000;;
 08B6                        C1	$MIF372:
 08B6  F6 44 07 20           C1		    TEST    $M_SL.$M_S_FLAG,Time_HHMMSSHH_Cty AND $M_SIZE_MASK ;;AN000;; Was Hour/Min/Sec/Hu
				nds (12 Hour) specified?
 08BA  75 06                 C1		    JNZ $MLL374
 08BC  F6 44 07 10           C1		    TEST    $M_SL.$M_S_FLAG,Time_HHMMSS_Cty AND $M_SIZE_MASK ;;AN000;; Was Hour/Min/Sec (12 
				Hour) specified?
 08C0  74 0B                 C1		    JZ $MIF374
 08C2                        C1	$MLL374:
 08C2  8A 44 04              C1		      MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+2	     ;;AN000;;	Get Seconds
 08C5  E8 0916 R             C1		      CALL    $M_CONVERTTIME			     ;;AN000;;
 08C8  FF 36 006D R          C1		      PUSH    WORD PTR $M_RT.$M_TIME_SEPARA	     ;;AN000;;
 08CC  41                    C1		      INC     CX				     ;;AN000;;
 08CD                        C1	$MIF374:
 08CD  8A 44 03              C1		    MOV     AL,BYTE PTR $M_SL.$M_S_VALUE+1	     ;;AN000;;	Get Minutes
 08D0  E8 0916 R             C1		    CALL    $M_CONVERTTIME			     ;;AN000;;
 08D3  FF 36 006D R          C1		    PUSH    WORD PTR $M_RT.$M_TIME_SEPARA	     ;;AN000;;
 08D7  41                    C1		    INC     CX					     ;;AN000;;
 08D8  8A 44 02              C1		    MOV     AL,BYTE PTR $M_SL.$M_S_VALUE	     ;;AN000;;	Get Hours
 08DB  F6 44 07 01           C1		    TEST    $M_SL.$M_S_FLAG,Time_Cty_Type AND $M_TIME_MASK ;;AN000;; Is this a request for c
				urrent country info?
 08DF  74 13                 C1		    JZ $MIF376
 08E1  80 3E 0071 R 00       C1		      CMP     BYTE PTR $M_RT.$M_TIME_FORMAT,0	     ;;AN000;; Is the current country format
				 12 Hour?
 08E6  75 0C                 C1		      JNE $MIF377
 08E8  3C 0D                 C1			CMP	AL,13				     ;;AN000;;	Is hour less than 12?
 08EA  7C 02                 C1			JNGE $MIF378
 08EC  2C 0C                 C1			  SUB	  AL,12 			     ;;AN000;;	  Set to a 12 hour value
 08EE                        C1	$MIF378:
 08EE  3C 00                 C1			CMP	AL,0				     ;;AN000;;	Is hour less than 12?
 08F0  75 02                 C1			JNE $MIF380
 08F2  B0 0C                 C1			  MOV	  AL,12 			     ;;AN000;;	  Set to a 12 hour value
 08F4                        C1	$MIF380:
 08F4                        C1	$MIF377:
 08F4                        C1	$MIF376:
 08F4  E8 047D R             C1		    CALL    $M_CONVERT2ASC			     ;;AN000;; Convert it to ASCII
 08F7  55                    C1		    PUSH    BP					     ;;AN000;; Restore return address
 08F8  C3                    C1		    RET 					     ;;AN000;; Return
 08F9                        C1	$M_TIME_REPLACE ENDP					     ;;AN000;;
 08F9                        C1	$M_GET_TIME PROC    NEAR				     ;;AN000;;
 08F9  B4 38                 C1		    MOV     AH,DOS_GET_COUNTRY			     ;;AN000;; Call DOS for country dependan
				t info
 08FB  B0 00                 C1		    MOV     AL,0				     ;;AN000;; Get current country info
 08FD  8D 16 0060 R          C1		    LEA     DX,$M_RT.$M_TEMP_BUF		     ;;AN000;; Set up addressibility to buff
				er
 0901  CD 21                 C1		    INT     21H 				     ;;AN000;;
 0903  73 10                 C1		    JNC $MIF384
 0905  C7 06 0071 R 0001     C1		      MOV     WORD PTR $M_RT.$M_TIME_FORMAT,$M_DEF_TIME_FORM ;;AN000;;	 Set default time fo
				rmat    (BH)
 090B  C6 06 006D R 3A       C1		      MOV     BYTE PTR $M_RT.$M_TIME_SEPARA,$M_DEF_TIME_SEP ;;AN000;;	Set default time sep
				arator (BL)
 0910  C6 06 0069 R 2E       C1		      MOV     BYTE PTR $M_RT.$M_DECI_SEPARA,$M_DEF_DECI_SEP ;;AN000;;	Set default time sep
				arator (BL)
 0915                        C1	$MIF384:
 0915  C3                    C1		    RET 					     ;;AN000;;
 0916                        C1	$M_GET_TIME ENDP					     ;;AN000;;
 0916                        C1	$M_CONVERTTIME PROC NEAR				     ;;AN000;;
 0916  8F 06 0060 R          C1		    POP     WORD PTR $M_RT.$M_TEMP_BUF		     ;;AN000;; Save return address
 091A  88 0E 0056 R          C1		    MOV     $M_RT.$M_SIZE,CL			     ;;AN000;; Save the size before conversi
				on
 091E  E8 047D R             C1		    CALL    $M_CONVERT2ASC			     ;;AN000;; Convert it to an ASCII string
 0921  49                    C1		    DEC     CX					     ;;AN000;; Test if size only grew by 1
 0922  3A 0E 0056 R          C1		    CMP     CL,$M_RT.$M_SIZE			     ;;AN000;; Did size only grow by one
 0926  75 05                 C1		    JNE $MIF386
 0928  B8 0030               C1		      MOV     AX,$M_TIMEDATE_PAD		     ;;AN000;;	 Get a pad character (0)
 092B  50                    C1		      PUSH    AX				     ;;AN000;;	 Save it
 092C  41                    C1		      INC     CX				     ;;AN000;;	 Count it
 092D                        C1	$MIF386:
 092D  41                    C1		    INC     CX					     ;;AN000;; Restore CX
 092E  FF 36 0060 R          C1		    PUSH    WORD PTR $M_RT.$M_TEMP_BUF		     ;;AN000;; Save return address
 0932  C3                    C1		    RET 					     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-29
DOS - Message Retriever - DISPMSG.ASM Module                

 0933                        C1	$M_CONVERTTIME ENDP					     ;;AN000;;
				
 0933				PRINTF_LAST LABEL   WORD
				
				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
			     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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Page     1-30
DOS - Message Retriever - DISPMSG.ASM Module                

			     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	
				
				
 0933				TRANCODE    ENDS
					    END

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            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:57
COMMAND Transient Printf routine                            Symbols-2


  $M_TEMP_BUF  . . . . . . . . .  	0060
  $M_BUF_TERM  . . . . . . . . .  	00A0
$M_SUBLIST_STRUC . . . . . . . .  	000B	0008
  $M_S_SIZE  . . . . . . . . . .  	0000
  $M_S_RESV  . . . . . . . . . .  	0001
  $M_S_VALUE . . . . . . . . . .  	0002
  $M_S_ID  . . . . . . . . . . .  	0006
  $M_S_FLAG  . . . . . . . . . .  	0007
  $M_S_MAXW  . . . . . . . . . .  	0008
  $M_S_MINW  . . . . . . . . . .  	0009
  $M_S_PAD . . . . . . . . . . .  	000A
ARENA  . . . . . . . . . . . . .  	0010	0005
  ARENA_SIGNATURE  . . . . . . .  	0000
  ARENA_OWNER  . . . . . . . . .  	0001
  ARENA_SIZE . . . . . . . . . .  	0003
  ARENA_RESERVED . . . . . . . .  	0005
  ARENA_NAME . . . . . . . . . .  	0008
ARGV_ELE . . . . . . . . . . . .  	000B	0006
  ARGPOINTER . . . . . . . . . .  	0000
  ARGFLAGS . . . . . . . . . . .  	0002
  ARGSTARTEL . . . . . . . . . .  	0003
  ARGLEN . . . . . . . . . . . .  	0005
  ARGSW_WORD . . . . . . . . . .  	0007
  ARG_OCOMPTR  . . . . . . . . .  	0009
ARG_UNIT . . . . . . . . . . . .  	0544	0005
  ARGV . . . . . . . . . . . . .  	0000
  ARGVCNT  . . . . . . . . . . .  	02C0
  ARGSWINFO  . . . . . . . . . .  	02C2
  ARGBUF . . . . . . . . . . . .  	02C4
  ARGFORCOMBUF . . . . . . . . .  	04C4
A_BPB  . . . . . . . . . . . . .  	001F	000F
  BPB_BYTESPERSECTOR . . . . . .  	0000
  BPB_SECTORSPERCLUSTER  . . . .  	0002
  BPB_RESERVEDSECTORS  . . . . .  	0003
  BPB_NUMBEROFFATS . . . . . . .  	0005
  BPB_ROOTENTRIES  . . . . . . .  	0006
  BPB_TOTALSECTORS . . . . . . .  	0008
  BPB_MEDIADESCRIPTOR  . . . . .  	000A
  BPB_SECTORSPERFAT  . . . . . .  	000B
  BPB_SECTORSPERTRACK  . . . . .  	000D
  BPB_HEADS  . . . . . . . . . .  	000F
  BPB_HIDDENSECTORS  . . . . . .  	0011
  BPB_BIGTOTALSECTORS  . . . . .  	0015
BATCHSEGMENT . . . . . . . . . .  	0020	0008
  BATTYPE  . . . . . . . . . . .  	0000
  BATECHOFLAG  . . . . . . . . .  	0001
  BATLAST  . . . . . . . . . . .  	0002
  BATFORPTR  . . . . . . . . . .  	0004
  BATFORFLAG . . . . . . . . . .  	0006
  BATSEEK  . . . . . . . . . . .  	0007
  BATPARM  . . . . . . . . . . .  	000B
  BATFILE  . . . . . . . . . . .  	001F
BPBLOCK  . . . . . . . . . . . .  	000D	0008
  BPSECSZ  . . . . . . . . . . .  	0000
  BPCLUS . . . . . . . . . . . .  	0002
  BPRES  . . . . . . . . . . . .  	0003
  BPFTCNT  . . . . . . . . . . .  	0005
  BPDRCNT  . . . . . . . . . . .  	0006
  BPSCCNT  . . . . . . . . . . .  	0008
  BPMEDIA  . . . . . . . . . . .  	000A
  BPFTSEC  . . . . . . . . . . .  	000B
BUFFER_HASH_ENTRY  . . . . . . .  	0008	0004
  EMS_PAGE_NUM . . . . . . . . .  	0000
  BUFFER_BUCKET  . . . . . . . .  	0002
  DIRTY_COUNT  . . . . . . . . .  	0006
  BUFFER_RESERVED  . . . . . . .  	0007
BUFFINFO . . . . . . . . . . . .  	0023	000F
  HASH_PTR . . . . . . . . . . .  	0000
  HASH_COUNT . . . . . . . . . .  	0004
  CACHE_PTR  . . . . . . . . . .  	0006
  CACHE_COUNT  . . . . . . . . .  	000A
  EMS_SAFE_FLAG  . . . . . . . .  	000C
  EMS_LAST_PAGE  . . . . . . . .  	000D
  EMS_FIRST_PAGE . . . . . . . .  	0011
  EMS_NPA640 . . . . . . . . . .  	0015
  EMS_MODE . . . . . . . . . . .  	0017
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-3


  EMS_HANDLE . . . . . . . . . .  	0018
  EMS_PAGEFRAME_NUMBER . . . . .  	001A
  EMS_SEG_CNT  . . . . . . . . .  	001C
  EMS_PAGE_FRAME . . . . . . . .  	001E
  EMS_RESERVED . . . . . . . . .  	0020
  EMS_MAP_BUFF . . . . . . . . .  	0022
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
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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-4


  EXE_CS . . . . . . . . . . . .  	0016
  EXE_RLE_TABLE  . . . . . . . .  	0018
  EXE_IOV  . . . . . . . . . . .  	001A
  EXE_SYM_TAB  . . . . . . . . .  	001C
EXT_OPEN_PARM  . . . . . . . . .  	0006	0002
  EXT_SET_LIST . . . . . . . . .  	0000
  EXT_NUM_OF_PARM  . . . . . . .  	0004
FIND_BUF . . . . . . . . . . . .  	002B	000C
  FIND_BUF_DRIVE . . . . . . . .  	0000
  FIND_BUF_NAME  . . . . . . . .  	0001
  FIND_BUF_SATTR . . . . . . . .  	000C
  FIND_BUF_LASTENT . . . . . . .  	000D
  FIND_BUF_DIRSTART  . . . . . .  	000F
  FIND_BUF_NETID . . . . . . . .  	0011
  FIND_BUF_ATTR  . . . . . . . .  	0015
  FIND_BUF_TIME  . . . . . . . .  	0016
  FIND_BUF_DATE  . . . . . . . .  	0018
  FIND_BUF_SIZE_L  . . . . . . .  	001A
  FIND_BUF_SIZE_H  . . . . . . .  	001C
  FIND_BUF_PNAME . . . . . . . .  	001E
INTERNAT_BLOCK . . . . . . . . .  	0018	0015
  DATE_TIM_FORMAT  . . . . . . .  	0000
  CURRENCY_SYM . . . . . . . . .  	0002
  THOUS_SEP  . . . . . . . . . .  	0007
  DECIMAL_SEP  . . . . . . . . .  	0009
  DATE_SEP . . . . . . . . . . .  	000B
  TIME_SEP . . . . . . . . . . .  	000D
  BIT_FIELD  . . . . . . . . . .  	000F
  CURRENCY_CENTS . . . . . . . .  	0010
  TIME_24  . . . . . . . . . . .  	0011
  MAP_CALL . . . . . . . . . . .  	0012
  DATA_SEP . . . . . . . . . . .  	0016
PARSEFLAGS . . . . . . . . . . .  	0008	0005
  SPECIAL_DELIM  . . . . . . . .  	0007	0001	0080	0000
  UNUSED . . . . . . . . . . . .  	0003	0004	0078	0000
  PATH_SEP . . . . . . . . . . .  	0002	0001	0004	0000
  WILDCARD . . . . . . . . . . .  	0001	0001	0002	0000
  SW_FLAG  . . . . . . . . . . .  	0000	0001	0001	0000
PROCESS_DATA_BLOCK . . . . . . .  	005C	0011
  PDB_EXIT_CALL  . . . . . . . .  	0000
  PDB_BLOCK_LEN  . . . . . . . .  	0002
  PDB_CPM_CALL . . . . . . . . .  	0005
  PDB_EXIT . . . . . . . . . . .  	000A
  PDB_CTRL_C . . . . . . . . . .  	000E
  PDB_FATAL_ABORT  . . . . . . .  	0012
  PDB_PARENT_PID . . . . . . . .  	0016
  PDB_JFN_TABLE  . . . . . . . .  	0018
  PDB_ENVIRON  . . . . . . . . .  	002C
  PDB_USER_STACK . . . . . . . .  	002E
  PDB_JFN_LENGTH . . . . . . . .  	0032
  PDB_JFN_POINTER  . . . . . . .  	0034
  PDB_NEXT_PDB . . . . . . . . .  	0038
  PDB_PAD1 . . . . . . . . . . .  	003C
  PDB_CALL_SYSTEM  . . . . . . .  	0050
  PDB_PAD2 . . . . . . . . . . .  	0055
SF . . . . . . . . . . . . . . .  	0008	0003
  SFLINK . . . . . . . . . . . .  	0000
  SFCOUNT  . . . . . . . . . . .  	0004
  SFTABLE  . . . . . . . . . . .  	0006
SF_ENTRY . . . . . . . . . . . .  	003B	0014
  SF_REF_COUNT . . . . . . . . .  	0000
  SF_MODE  . . . . . . . . . . .  	0002
  SF_ATTR  . . . . . . . . . . .  	0004
  SF_FLAGS . . . . . . . . . . .  	0005
  SF_DEVPTR  . . . . . . . . . .  	0007
  SF_FIRCLUS . . . . . . . . . .  	000B
  SF_TIME  . . . . . . . . . . .  	000D
  SF_DATE  . . . . . . . . . . .  	000F
  SF_SIZE  . . . . . . . . . . .  	0011
  SF_POSITION  . . . . . . . . .  	0015
  SF_CLUSPOS . . . . . . . . . .  	0019
  SF_DIRSEC  . . . . . . . . . .  	001B
  SF_DIRPOS  . . . . . . . . . .  	001F
  SF_NAME  . . . . . . . . . . .  	0020
  SF_CHAIN . . . . . . . . . . .  	002B
  SF_UID . . . . . . . . . . . .  	002F
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-5


  SF_PID . . . . . . . . . . . .  	0031
  SF_MFT . . . . . . . . . . . .  	0033
  SF_LSTCLUS . . . . . . . . . .  	0035
  SF_IFS_HDR . . . . . . . . . .  	0037
SYMBOL_ENTRY . . . . . . . . . .  	0106	0004
  SYM_VALUE  . . . . . . . . . .  	0000
  SYM_TYPE . . . . . . . . . . .  	0004
  SYM_LEN  . . . . . . . . . . .  	0006
  SYM_NAME . . . . . . . . . . .  	0007
SYSINITVARS  . . . . . . . . . .  	0047	0018
  SYSI_DPB . . . . . . . . . . .  	0000
  SYSI_SFT . . . . . . . . . . .  	0004
  SYSI_CLOCK . . . . . . . . . .  	0008
  SYSI_CON . . . . . . . . . . .  	000C
  SYSI_MAXSEC  . . . . . . . . .  	0010
  SYSI_BUF . . . . . . . . . . .  	0012
  SYSI_CDS . . . . . . . . . . .  	0016
  SYSI_FCB . . . . . . . . . . .  	001A
  SYSI_KEEP  . . . . . . . . . .  	001E
  SYSI_NUMIO . . . . . . . . . .  	0020
  SYSI_NCDS  . . . . . . . . . .  	0021
  SYSI_DEV . . . . . . . . . . .  	0022
  SYSI_ATTR  . . . . . . . . . .  	0026
  SYSI_STRAT . . . . . . . . . .  	0028
  SYSI_INTER . . . . . . . . . .  	002A
  SYSI_NAME  . . . . . . . . . .  	002C
  SYSI_SPLICE  . . . . . . . . .  	0034
  SYSI_IBMDOS_SIZE . . . . . . .  	0035
  SYSI_IFS_DOSCALL@  . . . . . .  	0037
  SYSI_IFS . . . . . . . . . . .  	003B
  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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-6


Segments and Groups:

                N a m e         	Length	 Align	Combine Class

RESGROUP . . . . . . . . . . . .  	GROUP
  CODERES  . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  DATARES  . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  BATARENA . . . . . . . . . . .  	0000	PARA	PUBLIC	
  BATSEG . . . . . . . . . . . .  	0000	PARA	PUBLIC	
  ENVARENA . . . . . . . . . . .  	0000	PARA	PUBLIC	
  ENVIRONMENT  . . . . . . . . .  	0000	PARA	PUBLIC	
  INIT . . . . . . . . . . . . .  	0000	PARA	PUBLIC	
  TAIL . . . . . . . . . . . . .  	0000	PARA	PUBLIC	
TRANGROUP  . . . . . . . . . . .  	GROUP
  TRANCODE . . . . . . . . . . .  	0933	BYTE	PUBLIC	
  TRANDATA . . . . . . . . . . .  	0000	BYTE	PUBLIC	
  TRANSPACE  . . . . . . . . . .  	0102	BYTE	PUBLIC	
  TRANTAIL . . . . . . . . . . .  	0000	PARA	PUBLIC	

Symbols:            

                N a m e         	Type	 Value	 Attr

ABORT  . . . . . . . . . . . . .  	NUMBER	0000	
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	
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-7


AUTO_COMMIT_WRITE  . . . . . . .  	NUMBER	4000	

BADPARM_PTR  . . . . . . . . . .  	NUMBER	000A	
BADSWT_PTR . . . . . . . . . . .  	NUMBER	0003	
BATCHTYPE  . . . . . . . . . . .  	NUMBER	0000	
BATLEN . . . . . . . . . . . . .  	NUMBER	0020	
BAT_NOT_OPEN . . . . . . . . . .  	NUMBER	-0001	
BAT_OPEN_HANDLE  . . . . . . . .  	NUMBER	0013	
BELL . . . . . . . . . . . . . .  	NUMBER	0007	
BIN_HEX_BYTE . . . . . . . . . .  	NUMBER	0013	
BIN_HEX_DWORD  . . . . . . . . .  	NUMBER	0033	
BIN_HEX_TYPE . . . . . . . . . .  	NUMBER	0003	
BIN_HEX_WORD . . . . . . . . . .  	NUMBER	0023	
BLANK  . . . . . . . . . . . . .  	NUMBER	0020	
BUFFERFLAG . . . . . . . . . . .  	NUMBER	FFFF	
BUFINSIZ . . . . . . . . . . . .  	NUMBER	0014	
BUF_DIRTY  . . . . . . . . . . .  	NUMBER	0040	
BUF_DPB  . . . . . . . . . . . .  		000D	
BUF_FILL . . . . . . . . . . . .  		0011	
BUF_FLAGS  . . . . . . . . . . .  		0005	
BUF_FREE . . . . . . . . . . . .  	NUMBER	00FF	
BUF_ID . . . . . . . . . . . . .  		0004	
BUF_ISDATA . . . . . . . . . . .  	NUMBER	0008	
BUF_ISDIR  . . . . . . . . . . .  	NUMBER	0004	
BUF_ISFAT  . . . . . . . . . . .  	NUMBER	0002	
BUF_ISNET  . . . . . . . . . . .  	NUMBER	0080	
BUF_NETID  . . . . . . . . . . .  	ALIAS	 BUFINSIZ		
BUF_NEXT . . . . . . . . . . . .  		0000	
BUF_OFFSET . . . . . . . . . . .  	DWORD	0006	
BUF_PREV . . . . . . . . . . . .  		0002	
BUF_RESERVED . . . . . . . . . .  		0013	
BUF_SECTOR . . . . . . . . . . .  		0006	
BUF_SNBUF  . . . . . . . . . . .  	NUMBER	0010	
BUF_TYPE_0 . . . . . . . . . . .  	NUMBER	00F1	
BUF_VISIT  . . . . . . . . . . .  	NUMBER	0020	
BUF_WRTCNT . . . . . . . . . . .  		000A	
BUF_WRTCNTINC  . . . . . . . . .  		000B	

CALL_IN_PROGRESS . . . . . . . .  	NUMBER	0001	
CAPITAL_A  . . . . . . . . . . .  	NUMBER	0041	
CAPITAL_N  . . . . . . . . . . .  	NUMBER	0000	
CAPITAL_Y  . . . . . . . . . . .  	NUMBER	0001	
CARGS  . . . . . . . . . . . . .  	NUMBER	0000	
cerror . . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
CHARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
CHAR_FIELD_ASCIIZ  . . . . . . .  	NUMBER	0010	
CHAR_FIELD_CHAR  . . . . . . . .  	NUMBER	0000	
CHAR_OPER  . . . . . . . . . . .  	NUMBER	0037	
CHAR_TYPE  . . . . . . . . . . .  	NUMBER	0000	
CHDIR  . . . . . . . . . . . . .  	NUMBER	003B	
CHECK_FIX  . . . . . . . . . . .  	L NEAR	006C	TRANCODE
CHMOD  . . . . . . . . . . . . .  	NUMBER	0043	
CLOSE  . . . . . . . . . . . . .  	NUMBER	003E	
COLON  . . . . . . . . . . . . .  	NUMBER	003A	
COLON_CHAR . . . . . . . . . . .  	NUMBER	003A	
COMBUFLEN  . . . . . . . . . . .  	NUMBER	0080	
COMMIT . . . . . . . . . . . . .  	NUMBER	0068	
COMR . . . . . . . . . . . . . .  	NUMBER	0000	
COMT . . . . . . . . . . . . . .  	NUMBER	FFFF	
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_MSG_CLASS . . . . . . . . .  	NUMBER	0003	
crlf2  . . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-8


CRT_IOCTL_LN . . . . . . . . . .  	NUMBER	000E	
CURDIRLEN  . . . . . . . . . . .  	NUMBER	0058	
CURDIR_INUSE . . . . . . . . . .  	NUMBER	4000	
CURDIR_ISIFS . . . . . . . . . .  	NUMBER	8000	
CURDIR_ISNET . . . . . . . . . .  	NUMBER	8000	
CURDIR_LOCAL . . . . . . . . . .  	NUMBER	1000	
CURDIR_NETID . . . . . . . . . .  	DWORD	0049	
CURDIR_SPLICE  . . . . . . . . .  	NUMBER	2000	
CURRENT_DIR  . . . . . . . . . .  	NUMBER	0047	
C_BS . . . . . . . . . . . . . .  	NUMBER	0008	
C_CR . . . . . . . . . . . . . .  	NUMBER	000D	
C_DEL  . . . . . . . . . . . . .  	NUMBER	007F	
C_ETB  . . . . . . . . . . . . .  	NUMBER	0017	
C_ETX  . . . . . . . . . . . . .  	NUMBER	0003	
C_HT . . . . . . . . . . . . . .  	NUMBER	0009	
C_LF . . . . . . . . . . . . . .  	NUMBER	000A	
C_NAK  . . . . . . . . . . . . .  	NUMBER	0015	

DATEMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
DATE_MD  . . . . . . . . . . . .  	NUMBER	0014	
DATE_MDY_2 . . . . . . . . . . .  	NUMBER	0024	
DATE_MDY_4 . . . . . . . . . . .  	NUMBER	0034	
DATE_TYPE  . . . . . . . . . . .  	NUMBER	0004	
DBCS . . . . . . . . . . . . . .  	NUMBER	0000	
DEALLOC  . . . . . . . . . . . .  	NUMBER	0049	
DEBUG  . . . . . . . . . . . . .  	NUMBER	0000	
DEVID_BLOCK_DEV  . . . . . . . .  	NUMBER	001F	
DEVID_DEVICE . . . . . . . . . .  	NUMBER	0080	
DEVID_DEVICE_CLOCK . . . . . . .  	NUMBER	0008	
DEVID_DEVICE_CON_IN  . . . . . .  	NUMBER	0001	
DEVID_DEVICE_CON_OUT . . . . . .  	NUMBER	0002	
DEVID_DEVICE_EOF . . . . . . . .  	NUMBER	0040	
DEVID_DEVICE_NULL  . . . . . . .  	NUMBER	0004	
DEVID_DEVICE_RAW . . . . . . . .  	NUMBER	0020	
DEVID_DEVICE_SPECIAL . . . . . .  	NUMBER	0010	
DEVID_EOF  . . . . . . . . . . .  	NUMBER	0040	
DEVID_FILE_CLEAN . . . . . . . .  	NUMBER	0040	
DEVID_FILE_MASK_DRIVE  . . . . .  	NUMBER	003F	
DEVID_ISCIN  . . . . . . . . . .  	NUMBER	0001	
DEVID_ISCLK  . . . . . . . . . .  	NUMBER	0008	
DEVID_ISCOT  . . . . . . . . . .  	NUMBER	0002	
DEVID_ISDEV  . . . . . . . . . .  	NUMBER	0080	
DEVID_ISNUL  . . . . . . . . . .  	NUMBER	0004	
DEVID_RAW  . . . . . . . . . . .  	NUMBER	0020	
DEVID_SPECIAL  . . . . . . . . .  	NUMBER	0010	
DIRSTRLEN  . . . . . . . . . . .  	NUMBER	0043	
DIR_SEARCH_FIRST . . . . . . . .  	NUMBER	0011	
DIR_SEARCH_NEXT  . . . . . . . .  	NUMBER	0012	
DISK_PROC  . . . . . . . . . . .  	NUMBER	0000	
DISK_RESET . . . . . . . . . . .  	NUMBER	000D	
DISPLAYMSG . . . . . . . . . . .  	NUMBER	0000	
DOLLAR . . . . . . . . . . . . .  	NUMBER	0024	
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-9


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	
DSKSIZ . . . . . . . . . . . . .  	NUMBER	000D	
DUP_PDB  . . . . . . . . . . . .  	NUMBER	0055	

ECS_CALL . . . . . . . . . . . .  	NUMBER	0063	
EMGDEBUG . . . . . . . . . . . .  	NUMBER	0000	
EMS_MAP_BUFF_SIZE  . . . . . . .  	NUMBER	000C	
END_OF_LINE  . . . . . . . . . .  	NUMBER	-0001	
END_OF_LINE_IN . . . . . . . . .  	NUMBER	000D	
END_OF_LINE_OUT  . . . . . . . .  	NUMBER	0000	
ENTRYPOINT . . . . . . . . . . .  	NUMBER	00C0	
EQUAL_CHR  . . . . . . . . . . .  	NUMBER	003D	
ERRACT_ABORT . . . . . . . . . .  	NUMBER	0004	
ERRACT_DLYRET  . . . . . . . . .  	NUMBER	0002	
ERRACT_IGNORE  . . . . . . . . .  	NUMBER	0006	
ERRACT_INTRET  . . . . . . . . .  	NUMBER	0007	
ERRACT_PANIC . . . . . . . . . .  	NUMBER	0005	
ERRACT_RETRY . . . . . . . . . .  	NUMBER	0001	
ERRACT_USER  . . . . . . . . . .  	NUMBER	0003	
ERRCLASS_ALREADY . . . . . . . .  	NUMBER	000C	
ERRCLASS_APPERR  . . . . . . . .  	NUMBER	0007	
ERRCLASS_AUTH  . . . . . . . . .  	NUMBER	0003	
ERRCLASS_BADFMT  . . . . . . . .  	NUMBER	0009	
ERRCLASS_HRDFAIL . . . . . . . .  	NUMBER	0005	
ERRCLASS_INTRN . . . . . . . . .  	NUMBER	0004	
ERRCLASS_LOCKED  . . . . . . . .  	NUMBER	000A	
ERRCLASS_MEDIA . . . . . . . . .  	NUMBER	000B	
ERRCLASS_NOTFND  . . . . . . . .  	NUMBER	0008	
ERRCLASS_OUTRES  . . . . . . . .  	NUMBER	0001	
ERRCLASS_SYSFAIL . . . . . . . .  	NUMBER	0006	
ERRCLASS_TEMPSIT . . . . . . . .  	NUMBER	0002	
ERRCLASS_UNK . . . . . . . . . .  	NUMBER	000D	
ERRLOC_DISK  . . . . . . . . . .  	NUMBER	0002	
ERRLOC_MEM . . . . . . . . . . .  	NUMBER	0005	
ERRLOC_NET . . . . . . . . . . .  	NUMBER	0003	
ERRLOC_SERDEV  . . . . . . . . .  	NUMBER	0004	
ERRLOC_UNK . . . . . . . . . . .  	NUMBER	0001	
ERROR_ACCESS_DENIED  . . . . . .  	NUMBER	0005	
ERROR_ALREADY_ASSIGNED . . . . .  	NUMBER	0055	
ERROR_ARENA_TRASHED  . . . . . .  	NUMBER	0007	
ERROR_BAD_COMMAND  . . . . . . .  	NUMBER	0016	
ERROR_BAD_ENVIRONMENT  . . . . .  	NUMBER	000A	
ERROR_BAD_FORMAT . . . . . . . .  	NUMBER	000B	
ERROR_BAD_LENGTH . . . . . . . .  	NUMBER	0018	
ERROR_BAD_UNIT . . . . . . . . .  	NUMBER	0014	
ERROR_CANNOT_MAKE  . . . . . . .  	NUMBER	0052	
ERROR_CLASS_39 . . . . . . . . .  	NUMBER	0001	
ERROR_CODE_PAGE_MISMATCHED . . .  	NUMBER	0025	
ERROR_CRC  . . . . . . . . . . .  	NUMBER	0017	
ERROR_CURRENT_DIRECTORY  . . . .  	NUMBER	0010	
ERROR_DUP_FCB  . . . . . . . . .  	NUMBER	0051	
ERROR_FAIL_I24 . . . . . . . . .  	NUMBER	0053	
ERROR_FCB_UNAVAILABLE  . . . . .  	NUMBER	0023	
ERROR_FILE_EXISTS  . . . . . . .  	NUMBER	0050	
ERROR_FILE_NOT_FOUND . . . . . .  	NUMBER	0002	
ERROR_GEN_FAILURE  . . . . . . .  	NUMBER	001F	
ERROR_HANDLE_DISK_FULL . . . . .  	NUMBER	0027	
ERROR_HANDLE_EOF . . . . . . . .  	NUMBER	0026	
ERROR_I24_BAD_COMMAND  . . . . .  	NUMBER	0003	
ERROR_I24_BAD_LENGTH . . . . . .  	NUMBER	0005	
ERROR_I24_BAD_UNIT . . . . . . .  	NUMBER	0001	
ERROR_I24_CRC  . . . . . . . . .  	NUMBER	0004	
ERROR_I24_GEN_FAILURE  . . . . .  	NUMBER	000C	
ERROR_I24_NOT_DOS_DISK . . . . .  	NUMBER	0007	
ERROR_I24_NOT_READY  . . . . . .  	NUMBER	0002	
ERROR_I24_OUT_OF_PAPER . . . . .  	NUMBER	0009	
ERROR_I24_READ_FAULT . . . . . .  	NUMBER	000B	
ERROR_I24_SECTOR_NOT_FOUND . . .  	NUMBER	0008	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-10


ERROR_I24_SEEK . . . . . . . . .  	NUMBER	0006	
ERROR_I24_WRITE_FAULT  . . . . .  	NUMBER	000A	
ERROR_I24_WRITE_PROTECT  . . . .  	NUMBER	0000	
ERROR_I24_WRONG_DISK . . . . . .  	NUMBER	000F	
ERROR_INVALID_ACCESS . . . . . .  	NUMBER	000C	
ERROR_INVALID_BLOCK  . . . . . .  	NUMBER	0009	
ERROR_INVALID_DATA . . . . . . .  	NUMBER	000D	
ERROR_INVALID_DRIVE  . . . . . .  	NUMBER	000F	
ERROR_INVALID_FUNCTION . . . . .  	NUMBER	0001	
ERROR_INVALID_HANDLE . . . . . .  	NUMBER	0006	
ERROR_INVALID_PARAMETER  . . . .  	NUMBER	0057	
ERROR_INVALID_PASSWORD . . . . .  	NUMBER	0056	
ERROR_LOCK_VIOLATION . . . . . .  	NUMBER	0021	
ERROR_NET_WRITE_FAULT  . . . . .  	NUMBER	0058	
ERROR_NOT_DOS_DISK . . . . . . .  	NUMBER	001A	
ERROR_NOT_ENOUGH_MEMORY  . . . .  	NUMBER	0008	
ERROR_NOT_READY  . . . . . . . .  	NUMBER	0015	
ERROR_NOT_SAME_DEVICE  . . . . .  	NUMBER	0011	
ERROR_NOT_SUPPORTED  . . . . . .  	NUMBER	0032	
ERROR_NO_MORE_FILES  . . . . . .  	NUMBER	0012	
ERROR_OUT_OF_PAPER . . . . . . .  	NUMBER	001C	
ERROR_OUT_OF_STRUCTURES  . . . .  	NUMBER	0054	
ERROR_PATH_NOT_FOUND . . . . . .  	NUMBER	0003	
ERROR_READ_FAULT . . . . . . . .  	NUMBER	001E	
ERROR_SECTOR_NOT_FOUND . . . . .  	NUMBER	001B	
ERROR_SEEK . . . . . . . . . . .  	NUMBER	0019	
ERROR_SHARING_BUFFER_EXCEEDED  .  	NUMBER	0024	
ERROR_SHARING_VIOLATION  . . . .  	NUMBER	0020	
ERROR_SYS_COMP_NOT_LOADED  . . .  	NUMBER	005A	
ERROR_TOO_MANY_OPEN_FILES  . . .  	NUMBER	0004	
ERROR_WRITE_FAULT  . . . . . . .  	NUMBER	001D	
ERROR_WRITE_PROTECT  . . . . . .  	NUMBER	0013	
ERROR_WRONG_DISK . . . . . . . .  	NUMBER	0022	
EXEC . . . . . . . . . . . . . .  	NUMBER	004B	
EXEC_FUNC_NO_EXECUTE . . . . . .  	NUMBER	0001	
EXEC_FUNC_OVERLAY  . . . . . . .  	NUMBER	0002	
EXE_VALID_OLD_SIGNATURE  . . . .  	NUMBER	4D5A	
EXE_VALID_SIGNATURE  . . . . . .  	NUMBER	5A4D	
EXISTS_MASK  . . . . . . . . . .  	NUMBER	000F	
EXIT . . . . . . . . . . . . . .  	NUMBER	004C	
EXIT_ABORT . . . . . . . . . . .  	NUMBER	0000	
EXIT_CTRL_C  . . . . . . . . . .  	NUMBER	0001	
EXIT_HARD_ERROR  . . . . . . . .  	NUMBER	0002	
EXIT_KEEP_PROCESS  . . . . . . .  	NUMBER	0003	
EXIT_TERMINATE . . . . . . . . .  	NUMBER	0000	
EXPECTED_VERSION . . . . . . . .  	NUMBER	0004	
extend_buf_off . . . . . . . . .  	V WORD	0000	TRANDATA	External
Extend_Buf_ptr . . . . . . . . .  	V WORD	0000	TRANDATA	External
Extend_Buf_seg . . . . . . . . .  	V WORD	0000	TRANDATA	External
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	
FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
FARMSG . . . . . . . . . . . . .  	NUMBER	0000	
FBADSWITCH . . . . . . . . . . .  	NUMBER	4000	
FCB  . . . . . . . . . . . . . .  	NUMBER	005C	
FCBDEVICE  . . . . . . . . . . .  	NUMBER	0040	
FCBMASK  . . . . . . . . . . . .  	NUMBER	00C0	
FCBNETWORK . . . . . . . . . . .  	NUMBER	0080	
FCBSHARE . . . . . . . . . . . .  	NUMBER	00C0	
FCBSPECIAL . . . . . . . . . . .  	NUMBER	0080	
FCB_CLOSE  . . . . . . . . . . .  	NUMBER	0010	
FCB_CREATE . . . . . . . . . . .  	NUMBER	0016	
FCB_DELETE . . . . . . . . . . .  	NUMBER	0013	
FCB_L_ATTR . . . . . . . . . . .  	BYTE	001E	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-11


FCB_L_DRIVE  . . . . . . . . . .  	BYTE	0019	
FCB_L_FIRCLUS  . . . . . . . . .  	WORD	001A	
FCB_L_MFS  . . . . . . . . . . .  	WORD	001C	
FCB_NETID  . . . . . . . . . . .  	DWORD	001C	
FCB_NET_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NET_HANDLE . . . . . . . . .  	WORD	001A	
FCB_NSLD_DRIVE . . . . . . . . .  	BYTE	0019	
FCB_NSLD_DRVPTR  . . . . . . . .  	DWORD	001A	
FCB_NSL_BITS . . . . . . . . . .  	BYTE	001A	
FCB_NSL_DIRPOS . . . . . . . . .  	BYTE	001F	
FCB_NSL_DIRSEC . . . . . . . . .  	WORD	001D	
FCB_NSL_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NSL_FIRCLUS  . . . . . . . .  	WORD	001B	
FCB_OPEN . . . . . . . . . . . .  	NUMBER	000F	
FCB_RANDOM_READ  . . . . . . . .  	NUMBER	0021	
FCB_RANDOM_READ_BLOCK  . . . . .  	NUMBER	0027	
FCB_RANDOM_WRITE . . . . . . . .  	NUMBER	0022	
FCB_RANDOM_WRITE_BLOCK . . . . .  	NUMBER	0028	
FCB_RENAME . . . . . . . . . . .  	NUMBER	0017	
FCB_SEQ_READ . . . . . . . . . .  	NUMBER	0014	
FCB_SEQ_WRITE  . . . . . . . . .  	NUMBER	0015	
FCB_SFN  . . . . . . . . . . . .  	BYTE	0018	
FCHECKDRIVE  . . . . . . . . . .  	NUMBER	0001	
FCHK . . . . . . . . . . . . . .  	NUMBER	0001	
FDELIM . . . . . . . . . . . . .  	NUMBER	0002	
FFCB . . . . . . . . . . . . . .  	NUMBER	0008	
FILDIRENT  . . . . . . . . . . .  	NUMBER	0010	
FILE_INV_CPAGE . . . . . . . . .  	NUMBER	-0001	
FILE_NO_CPAGE  . . . . . . . . .  	NUMBER	0000	
FILE_TIMES . . . . . . . . . . .  	NUMBER	0057	
FILPERPROC . . . . . . . . . . .  	NUMBER	0014	
FIND_FIRST . . . . . . . . . . .  	NUMBER	004E	
FIND_NEXT  . . . . . . . . . . .  	NUMBER	004F	
FORMFD . . . . . . . . . . . . .  	NUMBER	000C	
FPARSE . . . . . . . . . . . . .  	NUMBER	0001	
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	

GETCURRENTPSP  . . . . . . . . .  	NUMBER	0062	
GETEXTCNTRY  . . . . . . . . . .  	NUMBER	0065	
GETEXTENDEDERROR . . . . . . . .  	NUMBER	0059	
GETMSG . . . . . . . . . . . . .  	NUMBER	0000	
GETSETCDPG . . . . . . . . . . .  	NUMBER	0066	
GETSETMEDIAID  . . . . . . . . .  	NUMBER	0069	
GET_CPSW . . . . . . . . . . . .  	NUMBER	0003	
GET_CRITICAL_MSG . . . . . . . .  	NUMBER	0004	
GET_CURRENT_PDB  . . . . . . . .  	NUMBER	0051	
GET_DATE . . . . . . . . . . . .  	NUMBER	002A	
GET_DEFAULT_DPB  . . . . . . . .  	NUMBER	001F	
GET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	0019	
GET_DMA  . . . . . . . . . . . .  	NUMBER	002F	
GET_DPB  . . . . . . . . . . . .  	NUMBER	0032	
GET_DRIVE_FREESPACE  . . . . . .  	NUMBER	0036	
GET_EXTENDED_MSG . . . . . . . .  	NUMBER	0000	
GET_FCB_FILE_LENGTH  . . . . . .  	NUMBER	0023	
GET_FCB_POSITION . . . . . . . .  	NUMBER	0024	
GET_GENERIC  . . . . . . . . . .  	NUMBER	007F	
GET_INDOS_FLAG . . . . . . . . .  	NUMBER	0034	
GET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0035	
GET_IN_VARS  . . . . . . . . . .  	NUMBER	0052	
GET_PARSE_MSG  . . . . . . . . .  	NUMBER	0002	
GET_TIME . . . . . . . . . . . .  	NUMBER	002C	
GET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	0054	
GET_VERSION  . . . . . . . . . .  	NUMBER	0030	
GET_VIDEO_STATE  . . . . . . . .  	NUMBER	000F	
GET_XA . . . . . . . . . . . . .  	NUMBER	0002	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-12


GO_TO_ERROR  . . . . . . . . . .  	L NEAR	00ED	TRANCODE

HANDLE_FAIL_I24  . . . . . . . .  	NUMBER	0100	
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_GET_ERR_TEXT . . . . . . . .  	NUMBER	0502	
IFS_IOCTL  . . . . . . . . . . .  	NUMBER	006B	
IGNORE_ALLOWED . . . . . . . . .  	NUMBER	0020	
INITCTRLC  . . . . . . . . . . .  	NUMBER	0004	
INITINIT . . . . . . . . . . . .  	NUMBER	0001	
INITSPECIAL  . . . . . . . . . .  	NUMBER	0002	
INPUTMSG . . . . . . . . . . . .  	NUMBER	0000	
INSTALLED  . . . . . . . . . . .  	NUMBER	FFFF	
INSTALLEDDATA  . . . . . . . . .  	NUMBER	0000	
INTBASE  . . . . . . . . . . . .  	NUMBER	0080	
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_WORD  . . . . . . . . . . . .  	NUMBER	4E49	
IOCTL  . . . . . . . . . . . . .  	NUMBER	0044	
IO_MODE_ID . . . . . . . . . . .  	NUMBER	0002	

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

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

LABRACKET  . . . . . . . . . . .  	NUMBER	003C	
LEFT_ALIGN . . . . . . . . . . .  	NUMBER	0000	
LENGTH_CALL  . . . . . . . . . .  	NUMBER	0004	
LESSARGS_PTR . . . . . . . . . .  	NUMBER	0002	
LF . . . . . . . . . . . . . . .  	NUMBER	000A	
LINESPERPAGE . . . . . . . . . .  	NUMBER	0019	
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-13


MI_LONG_JMP  . . . . . . . . . .  	NUMBER	00EA	
MI_LONG_RET  . . . . . . . . . .  	NUMBER	00CB	
MI_NEAR_RET  . . . . . . . . . .  	NUMBER	00C3	
MKDIR  . . . . . . . . . . . . .  	NUMBER	0039	
MOREARGS_PTR . . . . . . . . . .  	NUMBER	0001	
MOVE_SUBST . . . . . . . . . . .  	L NEAR	003C	TRANCODE
MOVE_SUBST_CONT  . . . . . . . .  	L NEAR	0054	TRANCODE
MSGDATA  . . . . . . . . . . . .  	NUMBER	0000	
Msg_Cont_Flag  . . . . . . . . .  	V BYTE	0000	TRANDATA	External
Msg_disp_Class . . . . . . . . .  	V BYTE	0000	TRANDATA	External
msg_flag . . . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
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	

NEARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
NEW_EXPECTED_VERSION . . . . . .  	NUMBER	2605	
NEW_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
NEW_MINOR_VERSION  . . . . . . .  	NUMBER	0026	
NEW_PRINTF . . . . . . . . . . .  	L NEAR	0019	TRANCODE
NLSFUNC  . . . . . . . . . . . .  	NUMBER	0014	
NOCHECKSTDIN . . . . . . . . . .  	NUMBER	FFFF	
NOCHECKSTDOUT  . . . . . . . . .  	NUMBER	FFFF	
NORMPERLIN . . . . . . . . . . .  	NUMBER	0001	
NOT_EXISTS_MASK  . . . . . . . .  	NUMBER	00F0	
NOT_EX_FAIL_EX_OPEN  . . . . . .  	NUMBER	0101	
NOT_STDERR . . . . . . . . . . .  	L NEAR	00D5	TRANCODE
NOVERCHECKMSG  . . . . . . . . .  	NUMBER	FFFF	
NO_CODE_PAGE_CHECK . . . . . . .  	NUMBER	0100	
NO_CONT_FLAG . . . . . . . . . .  	NUMBER	0000	
NO_CRIT_OPEN . . . . . . . . . .  	NUMBER	2000	
NO_ECHO  . . . . . . . . . . . .  	NUMBER	0000	
NO_ECHO_CHAR . . . . . . . . . .  	NUMBER	0040	
NO_HANDLE  . . . . . . . . . . .  	NUMBER	FFFF	
NO_HANDLE_OUT  . . . . . . . . .  	NUMBER	-0001	
NO_INPUT . . . . . . . . . . . .  	NUMBER	0000	
NO_REPLACE . . . . . . . . . . .  	NUMBER	0000	
NO_SUBST . . . . . . . . . . . .  	NUMBER	0000	
NO_XA_SEG  . . . . . . . . . . .  	NUMBER	-0001	
NULL . . . . . . . . . . . . . .  	NUMBER	0000	
NULLCOMMAND  . . . . . . . . . .  	NUMBER	0001	
NULLRPAREN . . . . . . . . . . .  	NUMBER	0029	
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	
ONE_SUBST  . . . . . . . . . . .  	NUMBER	0001	
OPEN . . . . . . . . . . . . . .  	NUMBER	003D	
OPEN_FOR_BOTH  . . . . . . . . .  	NUMBER	0002	
OPEN_FOR_READ  . . . . . . . . .  	NUMBER	0000	
OPEN_FOR_WRITE . . . . . . . . .  	NUMBER	0001	

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	
PDB_APPEND . . . . . . . . . . .  	BYTE	003D	
PDB_INTERCON . . . . . . . . . .  	BYTE	003C	
pipeemes_ptr . . . . . . . . . .  	V WORD	0000	TRANDATA	External
pipeflag . . . . . . . . . . . .  	V BYTE	0000	DATARES	External
PipeOff  . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
PLUS_CHR . . . . . . . . . . . .  	NUMBER	002B	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-14


Printf_Crlf  . . . . . . . . . .  	L NEAR	0004	TRANCODE	Global
PRINTF_HANDLE  . . . . . . . . .  	L WORD	0100	TRANSPACE
Printf_Init  . . . . . . . . . .  	F PROC	0000	TRANCODE	Global	Length = 0004
PRINTF_LAST  . . . . . . . . . .  	L WORD	0933	TRANCODE
PRINT_ERR  . . . . . . . . . . .  	L NEAR	00C9	TRANCODE
PRINT_ERR_EXIT . . . . . . . . .  	L NEAR	00F8	TRANCODE
print_err_flag . . . . . . . . .  	V WORD	0000	TRANSPACE	External
PRINT_SUCCESS  . . . . . . . . .  	L NEAR	00BA	TRANCODE
PTR_OFF_POS  . . . . . . . . . .  	NUMBER	0005	
PTR_SEG_POS  . . . . . . . . . .  	NUMBER	0007	

RABRACKET  . . . . . . . . . . .  	NUMBER	003E	
RAW_CON_INPUT  . . . . . . . . .  	NUMBER	0007	
RAW_CON_IO . . . . . . . . . . .  	NUMBER	0006	
READ . . . . . . . . . . . . . .  	NUMBER	003F	
READY_TO_PRINT . . . . . . . . .  	L NEAR	0098	TRANCODE
READ_OPEN_FLAG . . . . . . . . .  	NUMBER	0101	
READ_OPEN_MODE . . . . . . . . .  	NUMBER	0000	
REDIRECTOR . . . . . . . . . . .  	NUMBER	0000	
RENAME . . . . . . . . . . . . .  	NUMBER	0056	
RESERVED . . . . . . . . . . . .  	NUMBER	0000	
RESERVED_BITS_MASK . . . . . . .  	NUMBER	FE00	
RESSEG . . . . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
RESULT_DATE  . . . . . . . . . .  	NUMBER	0007	
RESULT_DRIVE . . . . . . . . . .  	NUMBER	0006	
RESULT_FILESPEC  . . . . . . . .  	NUMBER	0005	
RESULT_NO_ERROR  . . . . . . . .  	NUMBER	0000	
RESULT_NUMBER  . . . . . . . . .  	NUMBER	0001	
RESULT_STRING  . . . . . . . . .  	NUMBER	0003	
RESULT_TIME  . . . . . . . . . .  	NUMBER	0008	
RES_SUBST  . . . . . . . . . . .  	NUMBER	0002	
RETRY_ALLOWED  . . . . . . . . .  	NUMBER	0010	
RIGHT_ALIGN  . . . . . . . . . .  	NUMBER	0080	
RMDIR  . . . . . . . . . . . . .  	NUMBER	003A	
RPAREN . . . . . . . . . . . . .  	NUMBER	0029	

SCROLL_VIDEO_PAGE  . . . . . . .  	NUMBER	0006	
SEARCH_ATTR  . . . . . . . . . .  	NUMBER	0013	
SEMICOLON  . . . . . . . . . . .  	NUMBER	003B	
SERVERCALL . . . . . . . . . . .  	NUMBER	005D	
SETBLOCK . . . . . . . . . . . .  	NUMBER	004A	
SETDPB . . . . . . . . . . . . .  	NUMBER	0053	
SETSTDINOFF  . . . . . . . . . .  	N PROC	030B	TRANCODE	Global	Length = 0019
SETSTDINON . . . . . . . . . . .  	N PROC	02F2	TRANCODE	Global	Length = 0019
SETSTDIO . . . . . . . . . . . .  	NUMBER	0000	
SETSTDOUTOFF . . . . . . . . . .  	N PROC	033D	TRANCODE	Global	Length = 0019
SETSTDOUTON  . . . . . . . . . .  	N PROC	0324	TRANCODE	Global	Length = 0019
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_SUBST  . . . . . . . . . . .  	L NEAR	0073	TRANCODE
SET_TIME . . . . . . . . . . . .  	NUMBER	002D	
SET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	002E	
SET_VIDEO_MODE . . . . . . . . .  	NUMBER	0000	
SET_XA . . . . . . . . . . . . .  	NUMBER	0004	
SF_BUSY  . . . . . . . . . . . .  	NUMBER	-0001	
SF_CLOSE_NODATE  . . . . . . . .  	NUMBER	4000	
SF_DEFAULT_NUMBER  . . . . . . .  	NUMBER	0005	
SF_FSDA  . . . . . . . . . . . .  	BYTE	0019	
SF_ISFCB . . . . . . . . . . . .  	NUMBER	8000	
SF_ISNET . . . . . . . . . . . .  	NUMBER	8000	
SF_LRU . . . . . . . . . . . . .  	WORD	0015	
SF_NETID . . . . . . . . . . . .  	BYTE	0019	
SF_NET_SPOOL . . . . . . . . . .  	NUMBER	0800	
SF_NO_INHERIT  . . . . . . . . .  	NUMBER	1000	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-15


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	
SMALL_A  . . . . . . . . . . . .  	NUMBER	0061	
SMALL_Z  . . . . . . . . . . . .  	NUMBER	007A	
SPECIAL_DELIM  . . . . . . . . .  		0007	
STAR . . . . . . . . . . . . . .  	NUMBER	002A	
STDAUX . . . . . . . . . . . . .  	NUMBER	0003	
STDERR . . . . . . . . . . . . .  	NUMBER	0002	
STDIN  . . . . . . . . . . . . .  	NUMBER	0000	
STDOUT . . . . . . . . . . . . .  	NUMBER	0001	
STDPRN . . . . . . . . . . . . .  	NUMBER	0004	
STD_AUX_INPUT  . . . . . . . . .  	NUMBER	0003	
STD_AUX_OUTPUT . . . . . . . . .  	NUMBER	0004	
STD_CON_INPUT  . . . . . . . . .  	NUMBER	0001	
STD_CON_INPUT_FLUSH  . . . . . .  	NUMBER	000C	
STD_CON_INPUT_NO_ECHO  . . . . .  	NUMBER	0008	
STD_CON_INPUT_STATUS . . . . . .  	NUMBER	000B	
STD_CON_OUTPUT . . . . . . . . .  	NUMBER	0002	
STD_CON_STRING_INPUT . . . . . .  	NUMBER	000A	
STD_CON_STRING_OUTPUT  . . . . .  	NUMBER	0009	
Std_EPrintf  . . . . . . . . . .  	L NEAR	000B	TRANCODE	Global
STD_PRINTER_OUTPUT . . . . . . .  	NUMBER	0005	
Std_Printf . . . . . . . . . . .  	L NEAR	0013	TRANCODE	Global
String_ptr_2 . . . . . . . . . .  	V WORD	0000	TRANSPACE	External
SUBLIST_LENGTH . . . . . . . . .  	NUMBER	000B	
Subst_buffer . . . . . . . . . .  	V BYTE	0000	TRANSPACE	External
SUBST_SEG_SET  . . . . . . . . .  	L NEAR	0082	TRANCODE
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	0356	TRANCODE	Length = 0045
SYSGETMSG  . . . . . . . . . . .  	N PROC	01AE	TRANCODE	Length = 001C
SYSLOADMSG . . . . . . . . . . .  	N PROC	0109	TRANCODE	Length = 008D

TAB  . . . . . . . . . . . . . .  	NUMBER	0009	
TAB_CHR  . . . . . . . . . . . .  	NUMBER	0009	
tcommand . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
TEMPLEN  . . . . . . . . . . . .  	NUMBER	0086	
TEXT_MODE  . . . . . . . . . . .  	NUMBER	0001	
TIMEMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
TIME_24_TYPE . . . . . . . . . .  	NUMBER	0006	
TIME_CTY_TYPE  . . . . . . . . .  	NUMBER	0005	
TIME_HHMMSSHH_24 . . . . . . . .  	NUMBER	0026	
TIME_HHMMSSHH_CTY  . . . . . . .  	NUMBER	0025	
TIME_HHMMSS_24 . . . . . . . . .  	NUMBER	0016	
TIME_HHMMSS_CTY  . . . . . . . .  	NUMBER	0015	
TIME_HHMM_24 . . . . . . . . . .  	NUMBER	0006	
TIME_HHMM_CTY  . . . . . . . . .  	NUMBER	0005	
TPLEN  . . . . . . . . . . . . .  	NUMBER	0040	
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	
TSYSGETMSG . . . . . . . . . . .  	N PROC	0103	TRANCODE	Global	Length = 0006
TSYSLOADMSG  . . . . . . . . . .  	N PROC	00FD	TRANCODE	Global	Length = 0006

UNLINK . . . . . . . . . . . . .  	NUMBER	0041	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-16


UNSGN_BIN_BYTE . . . . . . . . .  	NUMBER	0011	
UNSGN_BIN_DWORD  . . . . . . . .  	NUMBER	0031	
UNSGN_BIN_TYPE . . . . . . . . .  	NUMBER	0001	
UNSGN_BIN_WORD . . . . . . . . .  	NUMBER	0021	
UNUSED . . . . . . . . . . . . .  		0003	
USEROPER . . . . . . . . . . . .  	NUMBER	005E	
UTILITY_MSG_CLASS  . . . . . . .  	NUMBER	00FF	
UTILITY_SETUP  . . . . . . . . .  	L NEAR	0028	TRANCODE
UTIL_MSG_CLASS . . . . . . . . .  	NUMBER	-0001	

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

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

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

YES_ECHO . . . . . . . . . . . .  	NUMBER	0001	

$MDO123  . . . . . . . . . . . .  	L NEAR	03FB	TRANCODE
$MDO139  . . . . . . . . . . . .  	L NEAR	0463	TRANCODE
$MDO145  . . . . . . . . . . . .  	L NEAR	0485	TRANCODE
$MDO165  . . . . . . . . . . . .  	L NEAR	04E7	TRANCODE
$MDO167  . . . . . . . . . . . .  	L NEAR	04F1	TRANCODE
$MDO175  . . . . . . . . . . . .  	L NEAR	051D	TRANCODE
$MDO215  . . . . . . . . . . . .  	L NEAR	05F6	TRANCODE
$MDO280  . . . . . . . . . . . .  	L NEAR	0648	TRANCODE
$MDO291  . . . . . . . . . . . .  	L NEAR	0673	TRANCODE
$MDO301  . . . . . . . . . . . .  	L NEAR	06A1	TRANCODE
$MDO310  . . . . . . . . . . . .  	L NEAR	06C7	TRANCODE
$MDO321  . . . . . . . . . . . .  	L NEAR	0709	TRANCODE
$MDO36 . . . . . . . . . . . . .  	L NEAR	01D0	TRANCODE
$MDO76 . . . . . . . . . . . . .  	L NEAR	02B8	TRANCODE
$MEN104  . . . . . . . . . . . .  	L NEAR	039A	TRANCODE
$MEN107  . . . . . . . . . . . .  	L NEAR	03AF	TRANCODE
$MEN110  . . . . . . . . . . . .  	L NEAR	03D0	TRANCODE
$MEN119  . . . . . . . . . . . .  	L NEAR	0408	TRANCODE
$MEN123  . . . . . . . . . . . .  	L NEAR	0408	TRANCODE
$MEN128  . . . . . . . . . . . .  	L NEAR	0437	TRANCODE
$MEN139  . . . . . . . . . . . .  	L NEAR	047A	TRANCODE
$MEN145  . . . . . . . . . . . .  	L NEAR	04DE	TRANCODE
$MEN146  . . . . . . . . . . . .  	L NEAR	049B	TRANCODE
$MEN150  . . . . . . . . . . . .  	L NEAR	04D9	TRANCODE
$MEN154  . . . . . . . . . . . .  	L NEAR	04D9	TRANCODE
$MEN165  . . . . . . . . . . . .  	L NEAR	05E1	TRANCODE
$MEN167  . . . . . . . . . . . .  	L NEAR	050E	TRANCODE
$MEN175  . . . . . . . . . . . .  	L NEAR	0536	TRANCODE
$MEN180  . . . . . . . . . . . .  	L NEAR	0548	TRANCODE
$MEN187  . . . . . . . . . . . .  	L NEAR	057B	TRANCODE
$MEN188  . . . . . . . . . . . .  	L NEAR	0569	TRANCODE
$MEN192  . . . . . . . . . . . .  	L NEAR	057B	TRANCODE
$MEN199  . . . . . . . . . . . .  	L NEAR	05C8	TRANCODE
$MEN20 . . . . . . . . . . . . .  	L NEAR	0195	TRANCODE
$MEN200  . . . . . . . . . . . .  	L NEAR	05C0	TRANCODE
$MEN202  . . . . . . . . . . . .  	L NEAR	05C0	TRANCODE
$MEN204  . . . . . . . . . . . .  	L NEAR	05C0	TRANCODE
$MEN211  . . . . . . . . . . . .  	L NEAR	05D5	TRANCODE
$MEN292  . . . . . . . . . . . .  	L NEAR	0686	TRANCODE
$MEN307  . . . . . . . . . . . .  	L NEAR	06CF	TRANCODE
$MEN314  . . . . . . . . . . . .  	L NEAR	06EF	TRANCODE
$MEN317  . . . . . . . . . . . .  	L NEAR	0716	TRANCODE
$MEN32 . . . . . . . . . . . . .  	L NEAR	01C3	TRANCODE
$MEN321  . . . . . . . . . . . .  	L NEAR	0714	TRANCODE
$MEN325  . . . . . . . . . . . .  	L NEAR	07A3	TRANCODE
$MEN333  . . . . . . . . . . . .  	L NEAR	07A3	TRANCODE
$MEN36 . . . . . . . . . . . . .  	L NEAR	0231	TRANCODE
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-17


$MEN367  . . . . . . . . . . . .  	L NEAR	08A1	TRANCODE
$MEN37 . . . . . . . . . . . . .  	L NEAR	0202	TRANCODE
$MEN39 . . . . . . . . . . . . .  	L NEAR	0202	TRANCODE
$MEN41 . . . . . . . . . . . . .  	L NEAR	0202	TRANCODE
$MEN46 . . . . . . . . . . . . .  	L NEAR	0229	TRANCODE
$MEN47 . . . . . . . . . . . . .  	L NEAR	021B	TRANCODE
$MEN57 . . . . . . . . . . . . .  	L NEAR	0251	TRANCODE
$MEN60 . . . . . . . . . . . . .  	L NEAR	025E	TRANCODE
$MEN64 . . . . . . . . . . . . .  	L NEAR	02B5	TRANCODE
$MEN65 . . . . . . . . . . . . .  	L NEAR	0299	TRANCODE
$MEN69 . . . . . . . . . . . . .  	L NEAR	02B1	TRANCODE
$MEN76 . . . . . . . . . . . . .  	L NEAR	02D5	TRANCODE
$MEN78 . . . . . . . . . . . . .  	L NEAR	02C9	TRANCODE
$MEN93 . . . . . . . . . . . . .  	L NEAR	038E	TRANCODE
$MEN94 . . . . . . . . . . . . .  	L NEAR	037A	TRANCODE
$MEN97 . . . . . . . . . . . . .  	L NEAR	0388	TRANCODE
$MIF104  . . . . . . . . . . . .  	L NEAR	0396	TRANCODE
$MIF107  . . . . . . . . . . . .  	L NEAR	03AC	TRANCODE
$MIF110  . . . . . . . . . . . .  	L NEAR	03C0	TRANCODE
$MIF112  . . . . . . . . . . . .  	L NEAR	03D0	TRANCODE
$MIF113  . . . . . . . . . . . .  	L NEAR	03D0	TRANCODE
$MIF117  . . . . . . . . . . . .  	L NEAR	03D5	TRANCODE
$MIF119  . . . . . . . . . . . .  	L NEAR	03F9	TRANCODE
$MIF120  . . . . . . . . . . . .  	L NEAR	03F7	TRANCODE
$MIF127  . . . . . . . . . . . .  	L NEAR	0438	TRANCODE
$MIF128  . . . . . . . . . . . .  	L NEAR	0435	TRANCODE
$MIF129  . . . . . . . . . . . .  	L NEAR	0433	TRANCODE
$MIF134  . . . . . . . . . . . .  	L NEAR	0458	TRANCODE
$MIF135  . . . . . . . . . . . .  	L NEAR	0458	TRANCODE
$MIF138  . . . . . . . . . . . .  	L NEAR	047A	TRANCODE
$MIF141  . . . . . . . . . . . .  	L NEAR	0476	TRANCODE
$MIF146  . . . . . . . . . . . .  	L NEAR	0498	TRANCODE
$MIF150  . . . . . . . . . . . .  	L NEAR	04B7	TRANCODE
$MIF151  . . . . . . . . . . . .  	L NEAR	04B5	TRANCODE
$MIF154  . . . . . . . . . . . .  	L NEAR	04C9	TRANCODE
$MIF155  . . . . . . . . . . . .  	L NEAR	04C7	TRANCODE
$MIF158  . . . . . . . . . . . .  	L NEAR	04D9	TRANCODE
$MIF159  . . . . . . . . . . . .  	L NEAR	04D9	TRANCODE
$MIF166  . . . . . . . . . . . .  	L NEAR	050E	TRANCODE
$MIF169  . . . . . . . . . . . .  	L NEAR	0509	TRANCODE
$MIF173  . . . . . . . . . . . .  	L NEAR	0548	TRANCODE
$MIF174  . . . . . . . . . . . .  	L NEAR	0548	TRANCODE
$MIF175  . . . . . . . . . . . .  	L NEAR	052A	TRANCODE
$MIF180  . . . . . . . . . . . .  	L NEAR	0545	TRANCODE
$MIF187  . . . . . . . . . . . .  	L NEAR	056B	TRANCODE
$MIF188  . . . . . . . . . . . .  	L NEAR	0568	TRANCODE
$MIF192  . . . . . . . . . . . .  	L NEAR	0572	TRANCODE
$MIF194  . . . . . . . . . . . .  	L NEAR	0579	TRANCODE
$MIF199  . . . . . . . . . . . .  	L NEAR	05C5	TRANCODE
$MIF20 . . . . . . . . . . . . .  	L NEAR	0191	TRANCODE
$MIF200  . . . . . . . . . . . .  	L NEAR	0598	TRANCODE
$MIF202  . . . . . . . . . . . .  	L NEAR	05B2	TRANCODE
$MIF204  . . . . . . . . . . . .  	L NEAR	05BD	TRANCODE
$MIF211  . . . . . . . . . . . .  	L NEAR	05D1	TRANCODE
$MIF216  . . . . . . . . . . . .  	L NEAR	0604	TRANCODE
$MIF23 . . . . . . . . . . . . .  	L NEAR	01AB	TRANCODE
$MIF276  . . . . . . . . . . . .  	L NEAR	062E	TRANCODE
$MIF278  . . . . . . . . . . . .  	L NEAR	065C	TRANCODE
$MIF279  . . . . . . . . . . . .  	L NEAR	065C	TRANCODE
$MIF281  . . . . . . . . . . . .  	L NEAR	0658	TRANCODE
$MIF286  . . . . . . . . . . . .  	L NEAR	066F	TRANCODE
$MIF287  . . . . . . . . . . . .  	L NEAR	066F	TRANCODE
$MIF290  . . . . . . . . . . . .  	L NEAR	0697	TRANCODE
$MIF292  . . . . . . . . . . . .  	L NEAR	0685	TRANCODE
$MIF295  . . . . . . . . . . . .  	L NEAR	0693	TRANCODE
$MIF299  . . . . . . . . . . . .  	L NEAR	06B5	TRANCODE
$MIF300  . . . . . . . . . . . .  	L NEAR	06B5	TRANCODE
$MIF302  . . . . . . . . . . . .  	L NEAR	06B1	TRANCODE
$MIF307  . . . . . . . . . . . .  	L NEAR	06C3	TRANCODE
$MIF309  . . . . . . . . . . . .  	L NEAR	06CF	TRANCODE
$MIF31 . . . . . . . . . . . . .  	L NEAR	01C5	TRANCODE
$MIF314  . . . . . . . . . . . .  	L NEAR	06EB	TRANCODE
$MIF317  . . . . . . . . . . . .  	L NEAR	0709	TRANCODE
$MIF318  . . . . . . . . . . . .  	L NEAR	0707	TRANCODE
$MIF32 . . . . . . . . . . . . .  	L NEAR	01C1	TRANCODE
$MIF325  . . . . . . . . . . . .  	L NEAR	074F	TRANCODE
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-18


$MIF326  . . . . . . . . . . . .  	L NEAR	0741	TRANCODE
$MIF327  . . . . . . . . . . . .  	L NEAR	073B	TRANCODE
$MIF330  . . . . . . . . . . . .  	L NEAR	074D	TRANCODE
$MIF333  . . . . . . . . . . . .  	L NEAR	077B	TRANCODE
$MIF334  . . . . . . . . . . . .  	L NEAR	076D	TRANCODE
$MIF335  . . . . . . . . . . . .  	L NEAR	0767	TRANCODE
$MIF338  . . . . . . . . . . . .  	L NEAR	0779	TRANCODE
$MIF341  . . . . . . . . . . . .  	L NEAR	0797	TRANCODE
$MIF342  . . . . . . . . . . . .  	L NEAR	0791	TRANCODE
$MIF345  . . . . . . . . . . . .  	L NEAR	07A3	TRANCODE
$MIF349  . . . . . . . . . . . .  	L NEAR	07AF	TRANCODE
$MIF351  . . . . . . . . . . . .  	L NEAR	07E4	TRANCODE
$MIF353  . . . . . . . . . . . .  	L NEAR	0809	TRANCODE
$MIF355  . . . . . . . . . . . .  	L NEAR	082C	TRANCODE
$MIF357  . . . . . . . . . . . .  	L NEAR	0845	TRANCODE
$MIF359  . . . . . . . . . . . .  	L NEAR	0857	TRANCODE
$MIF360  . . . . . . . . . . . .  	L NEAR	0857	TRANCODE
$MIF363  . . . . . . . . . . . .  	L NEAR	086F	TRANCODE
$MIF365  . . . . . . . . . . . .  	L NEAR	08A1	TRANCODE
$MIF366  . . . . . . . . . . . .  	L NEAR	08A1	TRANCODE
$MIF367  . . . . . . . . . . . .  	L NEAR	089D	TRANCODE
$MIF37 . . . . . . . . . . . . .  	L NEAR	01DD	TRANCODE
$MIF372  . . . . . . . . . . . .  	L NEAR	08B6	TRANCODE
$MIF374  . . . . . . . . . . . .  	L NEAR	08CD	TRANCODE
$MIF376  . . . . . . . . . . . .  	L NEAR	08F4	TRANCODE
$MIF377  . . . . . . . . . . . .  	L NEAR	08F4	TRANCODE
$MIF378  . . . . . . . . . . . .  	L NEAR	08EE	TRANCODE
$MIF380  . . . . . . . . . . . .  	L NEAR	08F4	TRANCODE
$MIF384  . . . . . . . . . . . .  	L NEAR	0915	TRANCODE
$MIF386  . . . . . . . . . . . .  	L NEAR	092D	TRANCODE
$MIF39 . . . . . . . . . . . . .  	L NEAR	01EA	TRANCODE
$MIF41 . . . . . . . . . . . . .  	L NEAR	01FC	TRANCODE
$MIF46 . . . . . . . . . . . . .  	L NEAR	021D	TRANCODE
$MIF47 . . . . . . . . . . . . .  	L NEAR	020F	TRANCODE
$MIF51 . . . . . . . . . . . . .  	L NEAR	0225	TRANCODE
$MIF56 . . . . . . . . . . . . .  	L NEAR	0260	TRANCODE
$MIF57 . . . . . . . . . . . . .  	L NEAR	0250	TRANCODE
$MIF60 . . . . . . . . . . . . .  	L NEAR	0258	TRANCODE
$MIF64 . . . . . . . . . . . . .  	L NEAR	029B	TRANCODE
$MIF65 . . . . . . . . . . . . .  	L NEAR	0295	TRANCODE
$MIF69 . . . . . . . . . . . . .  	L NEAR	02A8	TRANCODE
$MIF71 . . . . . . . . . . . . .  	L NEAR	02B1	TRANCODE
$MIF75 . . . . . . . . . . . . .  	L NEAR	02E4	TRANCODE
$MIF76 . . . . . . . . . . . . .  	L NEAR	02CD	TRANCODE
$MIF78 . . . . . . . . . . . . .  	L NEAR	02C6	TRANCODE
$MIF86 . . . . . . . . . . . . .  	L NEAR	02E4	TRANCODE
$MIF87 . . . . . . . . . . . . .  	L NEAR	02E0	TRANCODE
$MIF91 . . . . . . . . . . . . .  	L NEAR	02EC	TRANCODE
$MIF93 . . . . . . . . . . . . .  	L NEAR	038A	TRANCODE
$MIF94 . . . . . . . . . . . . .  	L NEAR	0377	TRANCODE
$MIF97 . . . . . . . . . . . . .  	L NEAR	0384	TRANCODE
$MLL149  . . . . . . . . . . . .  	L NEAR	04A5	TRANCODE
$MLL168  . . . . . . . . . . . .  	L NEAR	0500	TRANCODE
$MLL178  . . . . . . . . . . . .  	L NEAR	0532	TRANCODE
$MLL202  . . . . . . . . . . . .  	L NEAR	05AA	TRANCODE
$MLL214  . . . . . . . . . . . .  	L NEAR	05E1	TRANCODE
$MLL367  . . . . . . . . . . . .  	L NEAR	0897	TRANCODE
$MLL374  . . . . . . . . . . . .  	L NEAR	08C2	TRANCODE
$MSR175  . . . . . . . . . . . .  	L NEAR	0548	TRANCODE
$MSR76 . . . . . . . . . . . . .  	L NEAR	02D6	TRANCODE
$MXL2  . . . . . . . . . . . . .  	L NEAR	0231	TRANCODE
$MXL3  . . . . . . . . . . . . .  	L NEAR	0555	TRANCODE
$MXL4  . . . . . . . . . . . . .  	L NEAR	05E1	TRANCODE
$M_ADDR_SZ_FAR . . . . . . . . .  	NUMBER	0004	
$M_ADDR_SZ_NEAR  . . . . . . . .  	NUMBER	0002	
$M_ADD_CRLF  . . . . . . . . . .  	N PROC	0442	TRANCODE	Length = 0017
$M_ALIGN_MASK  . . . . . . . . .  	NUMBER	0080	
$M_AM  . . . . . . . . . . . . .  	NUMBER	0061	
$M_BASE10  . . . . . . . . . . .  	NUMBER	000A	
$M_BASE16  . . . . . . . . . . .  	NUMBER	0010	
$M_BIN2ASC_REPLACE . . . . . . .  	N PROC	0718	TRANCODE	Length = 0099
$M_BYTE  . . . . . . . . . . . .  	NUMBER	0010	
$M_CHAR_ONLY . . . . . . . . . .  	NUMBER	0000	
$M_CHAR_REPLACE  . . . . . . . .  	N PROC	06F0	TRANCODE	Length = 0028
$M_CLASS_ID_SZ . . . . . . . . .  	NUMBER	0004	
$M_CLASS_NOT_EXIST . . . . . . .  	NUMBER	0000	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-19


$M_CLS_3 . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
$M_CLS_4 . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
$M_CLS_5 . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
$M_CLS_6 . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
$M_CLS_7 . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
$M_CLS_8 . . . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
$M_COMMA . . . . . . . . . . . .  	NUMBER	002C	
$M_CONVERT2ASC . . . . . . . . .  	N PROC	047D	TRANCODE	Length = 006A
$M_CONVERTDATE . . . . . . . . .  	N PROC	0858	TRANCODE	Length = 001D
$M_CONVERTTIME . . . . . . . . .  	N PROC	0916	TRANCODE	Length = 001D
$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_DATE_REPLACE  . . . . . . . .  	N PROC	07B1	TRANCODE	Length = 007D
$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	03D6	TRANCODE	Length = 0035
$M_DISPLAY_H_STRING  . . . . . .  	N PROC	040B	TRANCODE	Length = 002E
$M_DISPLAY_MESSAGE . . . . . . .  	N PROC	04E7	TRANCODE	Length = 0101
$M_DISPLAY_REPLACE . . . . . . .  	N PROC	0615	TRANCODE	Length = 00BF
$M_DISPLAY_STRING  . . . . . . .  	N PROC	039B	TRANCODE	Length = 003B
$M_DWORD . . . . . . . . . . . .  	NUMBER	0030	
$M_END . . . . . . . . . . . . .  	NUMBER	0000	
$M_EXTPAR_TYPE . . . . . . . . .  	NUMBER	0008	
$M_EXT_CLS . . . . . . . . . . .  	NUMBER	FFFF	
$M_EXT_ERR_FLAG  . . . . . . . .  	NUMBER	FFFF	
$M_EXT_PAR_REPLACE . . . . . . .  	N PROC	05E8	TRANCODE	Length = 002D
$M_FIND_SPECIFIED_MSG  . . . . .  	N PROC	0279	TRANCODE	Length = 0079
$M_FIRST_THOU  . . . . . . . . .  	NUMBER	0003	
$M_FLUSH_BUF . . . . . . . . . .  	N PROC	06D4	TRANCODE	Length = 001C
$M_GET_DATE  . . . . . . . . . .  	N PROC	082E	TRANCODE	Length = 0018
$M_GET_DBCS_VEC  . . . . . . . .  	N PROC	0196	TRANCODE	Length = 0018
$M_GET_EXT_ERR_39  . . . . . . .  	N PROC	0439	TRANCODE	Length = 0009
$M_GET_MSG_ADDRESS . . . . . . .  	N PROC	01CA	TRANCODE	Global	Length = 00A0
$M_GET_TIME  . . . . . . . . . .  	N PROC	08F9	TRANCODE	Length = 001D
$M_ID_SZ . . . . . . . . . . . .  	NUMBER	0004	
$M_INCLUDE . . . . . . . . . . .  	NUMBER	0000	
$M_INDEX . . . . . . . . . . . .  	NUMBER	0004	
$M_IS_IT_DBCS  . . . . . . . . .  	N PROC	0459	TRANCODE	Length = 0024
$M_LOAD  . . . . . . . . . . . .  	NUMBER	FFFF	
$M_MAX_2_YEAR  . . . . . . . . .  	NUMBER	0063	
$M_MSGDATA_ONLY  . . . . . . . .  	NUMBER	0000	
$M_MSGSERV_1 . . . . . . . . . .  	L NEAR	0000	TRANCODE	External
$M_MSGSERV_2 . . . . . . . . . .  	L NEAR	0000	TRANCODE	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  . . . . . . . . . . . . .  	L BYTE	0000	TRANSPACE	Global
$M_SECOND_THOU . . . . . . . . .  	NUMBER	0006	
$M_SERVICE . . . . . . . . . . .  	NUMBER	FFFF	
$M_SET_LEN_IN_CX . . . . . . . .  	N PROC	026A	TRANCODE	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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:15:57
COMMAND Transient Printf routine                            Symbols-20


$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_TIME_REPLACE  . . . . . . . .  	N PROC	0875	TRANCODE	Length = 0084
$M_TYPE_MASK . . . . . . . . . .  	NUMBER	000F	
$M_UNLIM_W . . . . . . . . . . .  	NUMBER	0000	
$M_WORD  . . . . . . . . . . . .  	NUMBER	0020	
$M_YEAR  . . . . . . . . . . . .  	N PROC	0846	TRANCODE	Length = 0012
??0000 . . . . . . . . . . . . .  	L NEAR	0262	TRANCODE
?PLM . . . . . . . . . . . . . .  	NUMBER	0000	
?WIN . . . . . . . . . . . . . .  	NUMBER	0000	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  tprintf		
@VERSION . . . . . . . . . . . .  	TEXT  510		


  16564 Source  Lines
  25085 Total   Lines
   1435 Symbols

  41820 + 128116 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
