Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-1


					PAGE	,132			;
					TITLE	COMPSM.SAL - COMP SYSTEM MESSAGES
				;****************** START OF SPECIFICATIONS *****************************
				; MODULE NAME: COMPSM.SAL
				;
				; DESCRIPTIVE NAME: Include the DOS system MESSAGE HANDLER in the SEGMENT
				;		    configuration expected by the modules of COMP.
				;
				;FUNCTION: The common code of the DOS SYSTEM MESSAGE HANDLER is made a
				;	   part of the COMP module by using INCLUDE to bring in the
				;	   common portion, in SYSMSG.INC.  This included code contains
				;	   the routines to initialize for message services, to find
				;	   where a particular message is, and to display a message.
				;
				; ENTRY POINT: SYSDISPMSG:near
				;	       SYSGETMSG:near
				;	       SYSLOADMSG:near
				;
				; INPUT:
				;    AX = MESSAGE NUMBER
				;    BX = HANDLE TO DISPLAY TO (-1 means use DOS functions 1-12)
				;    SI = OFFSET IN ES: OF SUBLIST, OR 0 IF NONE
				;    CX = NUMBER OF %PARMS, 0 IF NONE
				;    DX = CLASS IN HIGH BYTE, INPUT FUNCTION IN LOW
				;   CALL SYSDISPMSG		;DISPLAY THE MESSAGE
				;
				;    If carry set, extended error already called:
				;    AX = EXTENDED MESSAGE NUMBER
				;    BH = ERROR CLASS
				;    BL = SUGGESTED ACTION
				;    CH = LOCUS
				; _ _ _ _ _ _ _ _ _ _ _ _
				;
				;    AX = MESSAGE NUMBER
				;    DH = MESSAGE CLASS (1=DOS EXTENDED ERROR, 2=PARSE ERROR, -1=UTILITY MSG)
				;   CALL SYSGETMSG		 ;FIND WHERE A MSG IS
				;
				;    If carry set, error
				;     CX = 0, MESSAGE NOT FOUND
				;    If carry NOT set, ok, and resulting regs are:
				;     CX = MESSAGE SIZE
				;     DS:SI = MESSAGE TEXT
				; _ _ _ _ _ _ _ _ _ _ _ _
				;
				;   CALL SYSLOADMSG		 ;SET ADDRESSABILITY TO MSGS, CHECK DOS VERSION
				;    If carry not set:
				;    CX = SIZE OF MSGS LOADED
				;
				;    If carry is set, regs preset up for SYSDISPMSG, as:
				;    AX = ERROR CODE IF CARRY SET
				;	  AX = 1, INCORRECT DOS VERSION
				;	  DH =-1, (Utility msg)
				;	OR,
				;	  AX = 1, Error loading messages
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-2


				;	  DH = 0, (Message manager error)
				;    BX = STDERR
				;    CX = NO_REPLACE
				;    DL = NO_INPUT
				;
				; EXIT-NORMAL: CARRY is not set
				;
				; EXIT-ERROR:  CARRY is set
				;	       Call Get Extended Error for reason code, for SYSDISPMSG and
				;	       SYSGETMSG.
				;
				; INTERNAL REFERENCES:
				;    ROUTINES: (Generated by the MSG_SERVICES macro)
				;	SYSLOADMSG
				;	SYSDISPMSG
				;	SYSGETMSG
				;
				;    DATA AREAS:
				;	INCLUDED "COMPMS.INC" - message defining control blocks
				;	INCLUDED "MSGHAN.INC" - Define STRUCs for msg control blocks
				;	INCLUDE SYSMSG.INC   ;Permit System Message handler definition
				;
				; EXTERNAL REFERENCES:
				;    ROUTINES: none
				;
				;    DATA AREAS: control blocks pointed to by input registers.
				;
				; NOTES:
				;	 This module should be processed with the SALUT preprocessor
				;	 with the re-alignment not requested, as:
				;
				;		SALUT COMPSM,nul,;
				;
				;	 To assemble these modules, the alphabetical or sequential
				;	 ordering of segments may be used.
				;
				;	 For LINK instructions, refer to the PROLOG of the main module,
				;	 COMP1.ASM.
				;
				; REVISION HISTORY: A000 Version 4.0 : add PARSER, System Message Handler,
				;		  Add compare of code page extended attribute, if present.
				;
				; COPYRIGHT: "The DOS COMP Utility"
				;	     "Version 4.0  (C)Copyright 1988 Micorsoft "
				;	     "Licensed Material - Property of Microsoft "
				;
				;PROGRAM AUTHOR: DOS 3.20 Dave L.
				;		 DOS 3.30 modifications by Russ W.
				;		 DOS 4.0  modifications by Edwin M. K., Bill L.
				;****************** END OF SPECIFICATIONS *****************************
				;									 ;AN000;
				; =  =	=  =  =  =  =  =  =  =	=  =					 ;AN000;
				;									 ;AN000;
				HEADER	MACRO	TEXT							 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-3


				.XLIST									 ;AN000;
					SUBTTL	TEXT							 ;AN000;
				.LIST									 ;AN000;
					PAGE								 ;AN000;
					ENDM								 ;AN000;
				; =  =	=  =  =  =  =  =  =  =	=  =					 ;AN000;
					INCLUDE SYSMSG.INC		;PERMIT SYSTEM MESSAGE HANDLER DEFINITION ;AN000;
			     C		PAGE	,132
			     C		SUBTTL	DOS - Message Retriever - SYSTEM CONTROL file
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;; DOS -- Message Retriever
			     C	;; (c) Copyright 1988 Microsoft
			     C	;;
			     C	;; File Name:	SYSMSG.INC
			     C	;; ----------
			     C	;;
			     C	;; Description: Message retriever functions are included into source code
			     C	;; ------------ by referencing a MSG_SERVICES macro. That macro is defined
			     C	;;		here as well as the logic to include necessary .ASM and .INC
			     C	;;		files.
			     C	;;
			     C	;;
			     C	;; Documentation Reference:
			     C	;; ------------------------
			     C	;;		DOS -Message Retriever I0 Document - Feb. ?? 1987
			     C	;;		DOS -Message Retriever I1 Document - Mar. ?? 1987
			     C	;;		DOS -Message Retriever I2 Document - Mar. ?? 1987
			     C	;;		DOS -Final Functional Specification Document - Mar ?? 1987
			     C	;;
			     C	;; Procedures Contained in This File:
			     C	;; ---------------------------------
			     C	;;		None
			     C	;;
			     C	;; Include Files Required:
			     C	;; -----------------------
			     C	;;		MSGSERV.INC	   := All message services
			     C	;;		????		   := ????
			     C	;;
			     C	;; External Procedure References:
			     C	;; ------------------------------
			     C	;;		None
			     C	;;
			     C	;; Linkage Instructions:
			     C	;; --------------------
			     C	;;		None
			     C	;;
			     C	;; Change History:
			     C	;; ---------------
			     C	;;		CREATED 	March, 1987	RPS
			     C	;;
			     C	;; Psuedocode:
			     C	;; -----------
			     C	;;		None
			     C	;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-4
DOS - Message Retriever - SYSTEM CONTROL file               

			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C					       ;;
			     C	INCLUDE        VERSIONA.INC	       ;;AN003;;
			     C	
 = 0004                      C	major_version	    equ     4	    ;Major DOS version
 = 0000                      C	minor_version	    equ     00	    ;Minor DOS Version
			     C	
 = 0004                      C	expected_version    equ     (MINOR_VERSION SHL 8)+MAJOR_VERSION
			     C	
 = 0005                      C	alt_major_version    equ     5	    ;Major DOS version
 = 001A                      C	alt_minor_version    equ     26	    ;Minor DOS Version
			     C	
 = 1A05                      C	alt_expected_version    equ     (alt_minor_version SHL 8) + alt_major_version
			     C	
 = 0005                      C	new_major_version    equ     5	    ;Major DOS version
 = 0026                      C	new_minor_version    equ     38	    ;Minor DOS Version
 = 2605                      C	new_expected_version    equ     (new_minor_version SHL 8) + new_major_version
			     C	
			     C	
			     C	       ;******************************
			     C	       ;Each assembler program should:
			     C	       ;  mov ah,030h			;DOS Get Version function
			     C	       ;  int 021h			;Version ret. in AX,minor version first
			     C	       ;  cmp ax,expected_version	;ALL utilities should check for an
			     C	       ;  jne error_handler		; EXACT version match.
			     C	       ;******************************
			     C	
			     C	
 = 0000                      C	FALSE	       = 0		       ;;
 = FFFF                      C	TRUE	       = NOT FALSE	       ;;    List message services and flags
			     C					       ;;
			     C	
			     C	; Control Characters For Message Skeleton file
			     C	
 = 0000                      C	NULL			EQU	00H    ;; Null
 = 0007                      C	BELL			EQU	07H    ;; Bell
 = 0009                      C	TAB			EQU	09H    ;; Tab
 = 000A                      C	LF			EQU	0AH    ;; Line Feed
 = 000B                      C	HOME			EQU	0BH    ;; Home
 = 000C                      C	FORMFD			EQU	0CH    ;; Form Feed
 = 000D                      C	CR			EQU	0DH    ;; Carriage Return
 = 003A                      C	COLON			EQU	3AH    ;; Colon
			     C	
			     C	; SYSDISPMSG and SYSGETMSG Equates
			     C	
 = 0000                      C	MSG_SER_CLASS		EQU	00H    ;; Message Service Class (reserved)
 = 0001                      C	EXT_ERR_CLASS		EQU	01H    ;; DOS Extended error class
 = 0002                      C	PARSE_ERR_CLASS 	EQU	02H    ;; Parse error class
 = 00FF                      C	UTILITY_MSG_CLASS	EQU	0FFH   ;; Utility message class
			     C	
 = FFFF                      C	NO_HANDLE		EQU	0FFFFH ;; No handle specified (Use DOS functions 01H-09H only)
			     C	
 = 0000                      C	NO_REPLACE		EQU	0000H  ;; No replacable parameters
			     C	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-5
DOS - Message Retriever - SYSTEM CONTROL file               

			     C	; SUBLIST Equates
			     C	
 = 000B                      C	  Sublist_Length	EQU	11     ;; Length of sublist structure
 = 0000                      C	  Reserved		EQU	0      ;; Reserved byte field
			     C	
 = 0000                      C	  Left_Align		EQU	0      ;;00xxxxxx
 = 0080                      C	  Right_Align		EQU	80h    ;;10xxxxxx
			     C	
 = 0000                      C	  Char_type		EQU	0      ;;axxx0000 - Character type
 = 0000                      C	  Char_Field_Char	EQU	0      ;;a0000000
 = 0010                      C	  Char_Field_ASCIIZ	EQU	10h    ;;a0010000
			     C	
 = 0001                      C	  Unsgn_Bin_Type	EQU	01h    ;;axxx0001 - Unsigned Binary to Decimal character
 = 0011                      C	  Unsgn_Bin_Byte	EQU	11h    ;;a0010001
 = 0021                      C	  Unsgn_Bin_Word	EQU	21h    ;;a0100001
 = 0031                      C	  Unsgn_Bin_DWord	EQU	31h    ;;a0110001
			     C	
 = 0002                      C	  Sgn_Bin_Type		EQU	02h    ;;axxx0010 - Signed Binary to Decimal character
 = 0012                      C	  Sgn_Bin_Byte		EQU	12h    ;;a0010010
 = 0022                      C	  Sgn_Bin_Word		EQU	22h    ;;a0100010
 = 0032                      C	  Sgn_Bin_DWord 	EQU	32h    ;;a0110010
			     C	
 = 0003                      C	  Bin_Hex_Type		EQU	03h    ;;axxx0011 - Unsigned Binary to Hexidecimal character
 = 0013                      C	  Bin_Hex_Byte		EQU	13h    ;;a0010011
 = 0023                      C	  Bin_Hex_Word		EQU	23h    ;;a0100011
 = 0033                      C	  Bin_Hex_DWord 	EQU	33h    ;;a0110011
			     C	
 = 0004                      C	  Date_Type		EQU	04h    ;;axxx0100 - Date to character using current country format
 = 0014                      C	  Date_MD		EQU	14h    ;;a0010100
 = 0024                      C	  Date_MDY_2		EQU	24h    ;;a0100100
 = 0034                      C	  Date_MDY_4		EQU	34h    ;;a0110100
			     C	
 = 0005                      C	  Time_Cty_Type 	EQU	05h    ;;axxx0101 - Time to character using current country format
 = 0005                      C	  Time_HHMM_Cty 	EQU	05h    ;;a0000101
 = 0015                      C	  Time_HHMMSS_Cty	EQU	15h    ;;a0010101
 = 0025                      C	  Time_HHMMSSHH_Cty	EQU	25h    ;;a0100101
			     C	
 = 0006                      C	  Time_24_Type		EQU	06h    ;;axxx0110 - Time to character using 24 hour format
 = 0006                      C	  Time_HHMM_24		EQU	06h    ;;a0000110
 = 0016                      C	  Time_HHMMSS_24	EQU	16h    ;;a0010110
 = 0026                      C	  Time_HHMMSSHH_24	EQU	26h    ;;a0100110
			     C	
 = 0008                      C	  $M_EXTPAR_Type	EQU	08h    ;;axxx1000 - Special case for extended parse replace format
			     C	
 = 0000                      C	NO_INPUT		EQU	00H    ;; No input characters
 = 0001                      C	DOS_KEYB_INP		EQU	01H    ;; DOS INT 21H - AH=01H := Keyboard Input
 = 0007                      C	DOS_DIR_CON_INP 	EQU	07H    ;; DOS INT 21H - AH=07H := Direct Console Input Without Echo
 = 0008                      C	DOS_CON_INP		EQU	08H    ;; DOS INT 21H - AH=08H := Console Input Without Echo (Check 
				CTL-BK)
 = 000A                      C	DOS_BUF_KEYB_INP	EQU	0AH    ;; DOS INT 21H - AH=0AH := Buffered Keyboard Input
 = 000C                      C	DOS_CLR_KEYB_BUF	EQU	0CH    ;; DOS INT 21H - AH=0CH := Clear keyboard buffer
 = 0040                      C	DOS_WRITE_HANDLE	EQU	40H    ;; DOS INT 21H - AH=40H := Write to a DOS handle
 = 0009                      C	DOS_DISP_STRING 	EQU	09H    ;; DOS INT 21H - AH=09H := Display $ terminated string
 = 0002                      C	DOS_DISP_CHAR		EQU	02H    ;; DOS INT 21H - AH=02H := Display Character
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-6
DOS - Message Retriever - SYSTEM CONTROL file               

 = 0002                      C	LOWEST_4CH_VERSION	EQU	0002H  ;; First DOS version to allow AH = 4CH Exit (VERSION 2.00)
			     C	
 = 6300                      C	DOS_GET_DBCS_INFO	EQU   6300H    ;; DOS INT 21H - AX=6507H := Get DBCS Vector Table
 = 0059                      C	DOS_GET_EXT_ERROR	EQU	59H    ;; DOS INT 21H - AH=59H := Get Extended Error
 = 0000                      C	DOS_GET_EXT_ERROR_BX	EQU	00H    ;; DOS INT 21H - BX=0000H := Version 0
			     C	
 = 6C00                      C	DOS_EXTENDED_OPEN	EQU   6C00H    ;AN003; DOS INT 21H - AX=6C00H := Extended Open
 = 2000                      C	NO_CRIT_OPEN		EQU   2000H    ;AN003; Extended Open Mode bit
 = 0101                      C	NOT_EX_FAIL_EX_OPEN	EQU   0101H    ;AN003; Extended Open Flag
 = 4200                      C	DOS_LSEEK_FILE		EQU   4200H    ;AN003; DOS INT 21H - AX=4200H := LSEEK file
 = 003F                      C	DOS_READ_BYTE		EQU	3FH    ;AN003; DOS INT 21H - AH=3FH   := Read byte block
 = 003E                      C	DOS_CLOSE_FILE		EQU	3EH    ;AN003; DOS INT 21H - AH=3EH   := Close file handle
			     C	
 = 0500                      C	IFSFUNC_INSTALL_CHECK	EQU   0500H    ;AN006; IFSFUNC Installation Check
 = 0502                      C	IFS_GET_ERR_TEXT	EQU   0502H    ;AN006; IFSFUNC Get Extended Error Text
 = 00FF                      C	IFSFUNC_INSTALLED	EQU    0FFH    ;AN006; Return code if IFSFUNC is installed
			     C	
 = 0027                      C	EXT_ERR_39		EQU	39     ;; Insufficent Disk Space EXTENDED ERROR (changed from hex to
				 decimal - eg d201)
 = 0001                      C	ERROR_CLASS_39		EQU	01H    ;;   Error Class = 1
 = 0004                      C	ACTION_39		EQU	04H    ;;   Suggested Action = 4
 = 0001                      C	LOCUS_39		EQU	01H    ;;   Locus = 1
			     C	
 = 0038                      C	DOS_GET_COUNTRY 	EQU	38H    ;; DOS INT 21H - AH=38H := Get Country Dependant Information
 = 0030                      C	DOS_GET_VERSION 	EQU	30H    ;; DOS INT 21H - AH=30H := Get DOS Version number
 = 4400                      C	DOS_IOCTL_GET_INFO	EQU	4400H  ;; DOS INT 21H - AH=4400H := I/O control for devices
 = 4401                      C	DOS_IOCTL_SET_INFO	EQU	4401H  ;; DOS INT 21H - AH=4401H := I/O control for devices
 = 122E                      C	DOS_GET_EXT_PARSE_ADD	EQU	122EH  ;; DOS INT 2FH - AX=122EH := Get Extended/Parse error address
 = 0000                      C	DOS_GET_EXTENDED	EQU	00     ;; DOS INT 2FH - AX=122EH - DL=00 := Get Extended address
 = 0002                      C	DOS_GET_PARSE		EQU	02     ;; DOS INT 2FH - AX=122EH - DL=02 := Get Parse address
 = 0004                      C	DOS_GET_CRITICAL	EQU	04     ;; DOS INT 2FH - AX=122EH - DL=04 := Get Critical address
 = 0006                      C	DOS_GET_FILE		EQU	06     ;; DOS INT 2FH - AX=122EH - DL=06 := Get File system dependan
				t
 = 0008                      C	DOS_GET_ADDR		EQU	08     ;; DOS INT 2FH - AX=122EH - DL=08 := Get Address of READ_DISK
				_PROC
 = 0009                      C	DOS_SET_ADDR		EQU	09     ;; DOS INT 2FH - AX=122EH - DL=09 := Set Address of READ_DISK
				_PROC
 = 000F                      C	LOW_NIB_MASK		EQU	0FH    ;; Mask out the high byte
 = 00C0                      C	DOS_CLR_KEYB_BUF_MASK	EQU	0C0H   ;; Check if high nibble is C Hex
 =-0001                      C	$M_CON_INP		EQU	-1     ;; If DOS INT 21H Function 06H - DL := 0FFH for input
 = 0013                      C	$M_CRIT_LO		EQU	19     ;; First Extended Error considered CRITICAL
 = 0027                      C	$M_CRIT_HI		EQU	39     ;; Last Extended Error considered CRITICAL (EG - D191)
 = 0061                      C	$M_AM			EQU	"a"    ;; Time format AM indicator
 = 0070                      C	$M_PM			EQU	"p"    ;; Time format PM indicator
 = 002D                      C	$M_NEG_SIGN		EQU	"-"    ;; Signed decimal number format negative indicator
 = 0001                      C	$M_DEF_TIME_FORM	EQU	 1     ;; Default Time format - 24 hour
 = 0000                      C	$M_DEF_DATE_FORM	EQU	 0     ;; Default Time format - 0 := USA format
 = 003A                      C	$M_DEF_TIME_SEP 	EQU	":"    ;; Default Time separator - ":"
 = 002D                      C	$M_DEF_DATE_SEP 	EQU	"-"    ;; Default Time separator - "-"
 = 002E                      C	$M_DEF_DECI_SEP 	EQU	"."    ;; Default Time hundreds separator - "."
 = 0030                      C	$M_TIMEDATE_PAD 	EQU	"0"    ;; Time/Date PAD character - "0" (ie 12:03p)
 = 0063                      C	$M_MAX_2_YEAR		EQU	99     ;; Maximum 2 digit year
 = 0001                      C	$M_SINGLE_CHAR		EQU	1      ;; A single character is this long      ^
 = 0030                      C	$M_SPECIAL_CASE 	EQU	30H    ;; Special case for replacable parameters %0
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-7
DOS - Message Retriever - SYSTEM CONTROL file               

 = 0000                      C	$M_UNLIM_W		EQU	0      ;; Unlimited width character
 = 002C                      C	$M_COMMA		EQU	","    ;; Default Thousand separate
 = 0A0D                      C	$M_CR_LF		EQU	0A0DH  ;; Default CR/LF
 = 2D20                      C	$M_SPACE_HYP		EQU	"- "   ;; Default Space/Hyphan
 = 0020                      C	$M_SPACE		EQU	" "    ;; Default Space
 = 0000                      C	$M_NULL 		EQU	0      ;; Null
 = 0003                      C	$M_FIRST_THOU		EQU	3      ;; Location of first thousand separator
 = 0006                      C	$M_SECOND_THOU		EQU	6      ;; Location of second thousand separator
 = 0009                      C	$M_THIRD_THOU		EQU	9      ;; Location of third thousand separator
 = 000A                      C	$M_BASE10		EQU	10     ;; Base 10 for arthmetic
 = 0010                      C	$M_BASE16		EQU	16     ;; Base 16 for arthmetic
 = 0000                      C	$M_CLASS_NOT_EXIST	EQU	 0     ;; Does class exist?
 =-0001                      C	$M_TERMINATING_FLAG	EQU	-1     ;; Is there any more classes?
 = 0002                      C	$M_ADDR_SZ_NEAR 	EQU	2      ;; Size to increment if NEAR
 = 0004                      C	$M_ADDR_SZ_FAR		EQU	4      ;; Size to increment if FAR
 = DS:[SI]                   C	$M_SL			EQU   DS:[SI]  ;; Refer to SUBLIST as $M_SL
 =-0001                      C	$M_NO_HANDLE		EQU	-1     ;; No handle flag
 = 0040                      C	$M_TEMP_BUF_SZ		EQU	64     ;; Size of temporary buffer	 ;AN003;
 = 0002                      C	$M_NEXT_DBCS_VECTOR	EQU	2      ;; Amount to increment to get next vector
 = 0000                      C	$M_DBCS_TERM		EQU    0000    ;; DBCS vector table terminating flag
 = FFFF                      C	$M_SPECIAL_MSG_NUM	EQU    0FFFFH  ;; Special generic message number
 = 0002                      C	$M_CRLF_SIZE		EQU    2       ;; Size of the CR LF message
 = 0080                      C	$M_NO_CRLF_MASK 	EQU  10000000B ;; Mask to supress CR LF
 = 0001                      C	$M_ONE_REPLACE		EQU    1       ;; Indicate one replacement
 = 0001                      C	$M_CRIT_ERR_MASK	EQU  00000001B ;; Mask to allow EOF/EOI Crit error
			     C					       ;;
 = 0080                      C	$M_ALIGN_MASK		EQU  10000000b ;; Mask for align
 = 000F                      C	$M_TYPE_MASK		EQU  00001111b ;; Mask for types
 = 0030                      C	$M_SIZE_MASK		EQU  00110000b ;; Mask for types
 = 0001                      C	$M_TIME_MASK		EQU  00000001b ;; Mask for TIME
 = 0010                      C	$M_DATE_MASK		EQU  00010000b ;; Mask for TIME
 = 0010                      C	$M_BYTE 		EQU  00010000b ;; BYTE indicator
 = 0020                      C	$M_WORD 		EQU  00100000b ;; WORD indicator
 = 0030                      C	$M_DWORD		EQU  00110000b ;; DWORD indicator
			     C	
			     C	; Standard reserved DOS handles
			     C	
 = 0000                      C	STDIN			EQU	0000H  ;; Standard Input device handle
 = 0001                      C	STDOUT			EQU	0001H  ;; Standard Output device handle
 = 0002                      C	STDERR			EQU	0002H  ;; Standard Error Output device handle
 = 0003                      C	STDAUX			EQU	0003H  ;; Standard Auxiliary device handle
 = 0004                      C	STDPRN			EQU	0004H  ;; Standard Printer device handle
			     C	
			     C	; Reserved Message Service equates
			     C	
 = FFFF                      C	NEARmsg 		 =	TRUE   ;; \
 = 0000                      C	NOVERCHECKmsg		 =	FALSE  ;;  |
 = 0000                      C	MSGDATA 		 =	FALSE  ;;  |
 = 0000                      C	FARmsg			 =	FALSE  ;;  |
 = 0000                      C	GETmsg			 =	FALSE  ;;  |
 = 0000                      C	LOADmsg 		 =	FALSE  ;;  |
 = 0000                      C	DISPLAYmsg		 =	FALSE  ;;   } Set default cases
 = 0000                      C	SETSTDIO		 =	FALSE  ;;  |
 = 0000                      C	NOCHECKSTDIN		 =	FALSE  ;;  |
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-8
DOS - Message Retriever - SYSTEM CONTROL file               

 = 0000                      C	NOCHECKSTDOUT		 =	FALSE  ;;  |
 = 0000                      C	DISK_PROC		 =	FALSE  ;;  |			       ;AN003;
 = 0000                      C	INPUTmsg		 =	FALSE  ;;  |
 = 0000                      C	CHARmsg 		 =	FALSE  ;;  |
 = 0000                      C	NUMmsg			 =	FALSE  ;;  |
 = 0000                      C	TIMEmsg 		 =	FALSE  ;;  |
 = 0000                      C	DATEmsg 		 =	FALSE  ;; /
			     C	
			     C	
 = FFFF                      C	$M_STRUC		 =	TRUE   ;; Internal message service defaults
 = FFFF                      C	$M_LOAD 		 =	TRUE   ;;
 = FFFF                      C	$M_SUBS 		 =	TRUE   ;;
 = FFFF                      C	$M_REPLACE		 =	TRUE   ;;
 = 0000                      C	$M_REPL_DONE		 =	FALSE  ;;
 = FFFF                      C	$M_CHAR_ONLY		 =	TRUE   ;;
 = FFFF                      C	$M_PARSE_FLAG		 =	TRUE   ;;
 = FFFF                      C	$M_EXT_ERR_FLAG 	 =	TRUE   ;;
 = FFFF                      C	$M_MSGDATA_ONLY 	 =	TRUE   ;;
 = 0000                      C	$M_END			 =	FALSE  ;;
 = FFFF                      C	$M_EXT_CLS		 =	TRUE   ;;
 = FFFF                      C	$M_PAR_CLS		 =	TRUE   ;;
			     C					       ;;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;	$M_POPF 	     Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	
			     C	$M_POPF    MACRO
			     C		   LOCAL   $M_MYRET
			     C		   JMP	   $+3
			     C	$M_MYRET   LABEL   NEAR
			     C		   IRET
			     C		   PUSH    CS
			     C		   CALL    $M_MYRET
			     C	ENDM
			     C	
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;
			     C	;;  Message Retreiver requests
			     C	;;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C					       ;
			     C	MSG_UTILNAME  Macro   utilname	       ;
			     C					       ;
			     C	   INCLUDE &utilname.CTL	       ;  Include the control file for the utility
			     C	   $M_STRUC = TRUE		       ;
			     C	   INCLUDE MSGSERV.ASM		       ;  Get structure definitions
			     C					       ;
			     C	ENDM				       ;
			     C					       ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;	MSG_SERVICES		Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C						  ;
			     C	MSG_SERVICES Macro   varlist		  ;  MACRO used in source routine
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-9
DOS - Message Retriever - SYSTEM CONTROL file               

			     C						  ;
			     C	   $M_SERVICE = FALSE			  ;  Reset service flag
			     C	   IRP	   var,<varlist>		  ;  FOR each variable in the list
			     C	     $M_INCLUDE = TRUE			  ;  Reset include flag
			     C						  ;	For each service predefined
			     C	
			     C	IRP  serv,<MSGDATA,LOADmsg,NOVERCHECKmsg,DISPLAYmsg,GETmsg,INPUTmsg,CHARmsg,NUMmsg,TIMEmsg,DATEmsg,N
				EARmsg,FARmsg,COMR,COMT>
			     C	
			     C		 IFDIF <var>,<serv>		  ;	  IF it IS a service (defined above)
			     C		 ELSE				  ;
			     C		   IFDIF <var>,<MSGDATA>	  ;	    IF it is NOT the message data space request
			     C		     $M_MSGDATA_ONLY = FALSE	  ;	       Instruct the assembler to include all service
				s
			     C		   ENDIF			  ;	    ENDIF
			     C		   IRP	repl,<CHARmsg,NUMmsg,TIMEmsg,DATEmsg>  ; IF it is a replace service
			     C		     IFIDN  <var>,<repl>	  ;
			     C		       $M_REPLACE = TRUE	  ;	       Set replace flag
			     C		     ENDIF			  ;
			     C		   ENDM 			  ;
			     C		   serv = TRUE			  ;	    Let the assembler know about the service
			     C		   $M_SERVICE = TRUE		  ;	    Let the macro know it was a service
			     C		   $M_INCLUDE = FALSE		  ;	    Let the macro know it wasn't a class
			     C		 ENDIF				  ;	  ENDIF
			     C	      ENDM				  ;	NEXT service
			     C	
			     C	MSG_SERVICES2  <varlist>
			     C						  ; Continue further checks (If we add any more predefined
			     C						  ;  function to the above IRP command, it generates a
			     C						  ;  syntax error. We must continue the processing in anothe
				r
			     C						  ;  MACRO called MSG_SERVICES2)
			     C	
			     C	      IF $M_INCLUDE			  ;	IF message class was requested
			     C		 $M_INC var			  ;	   Include it as a message class
			     C	      ENDIF				  ;	ENDIF
			     C	   ENDM 				  ;  NEXT variable
			     C						  ;
			     C	   IF $M_SERVICE			  ;	IF it any services were requested THEN
			     C	     INCLUDE MSGSERV.ASM		  ;	   THEN include module to get service
			     C	   ENDIF				  ;	ENDIF
			     C	
			     C	ENDM
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;	MSG_SERVICES2		Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C						  ;
			     C	MSG_SERVICES2 Macro   varlist2		  ;  MACRO used in source routine
			     C						  ;
			     C						    ;  FOR each variable in the list
			     C	   IRP	   var2,<varlist2>
			     C							       ; For each service predefined
			     C	      IRP  serv2,<SETSTDIO,NOCHECKSTDIN,NOCHECKSTDOUT,DISK_PROC>
			     C						    ;AN003; IF it IS a service (defined above)
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-10
DOS - Message Retriever - SYSTEM CONTROL file               

			     C		 IFDIF <var2>,<serv2>
			     C		 ELSE				  ;
			     C		   serv2 = TRUE 		   ;	     Let the assembler know about the service
			     C		   $M_SERVICE = TRUE		  ;	    Let the macro know it was a service
			     C		   $M_INCLUDE = FALSE		  ;	    Let the macro know it wasn't a class
			     C		 ENDIF				  ;	  ENDIF
			     C	      ENDM				  ;	NEXT service
			     C	   ENDM 				  ;  NEXT variable
			     C	ENDM					  ;
			     C						  ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;; $M_INC		Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C							 ;
			     C	$M_INC	Macro	ext				 ;
			     C							 ;
			     C	INCLUDE &ext					 ;
			     C							 ;
			     C	ENDM						 ;
			     C							 ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;; $M_BUILD_PTRS	Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C							 ;
			     C	$M_BUILD_PTRS Macro nummsg			 ;
			     C							 ;
			     C	    $M_INDEX =	    0				 ;
			     C	IF COMR 				     ; IF this is resident COMMAND.COM
			     C	    $M_MAKE_COMR			     ;
			     C	ELSE						 ; ELSE
			     C	  IF COMT				     ;	 IF this is transient COMMAND.COM
			     C	    $M_MAKE_COMT			     ;
			     C	  ELSE						 ;   ELSE
			     C							 ;
			     C	    $M_INDEX =	    0				 ;
			     C	    $M_COUNT =	    0				 ;     Build normal utilities
			     C							 ;
			     C	    REPT    nummsg				 ;
			     C	    $M_COUNT =	    $M_COUNT + 1		 ;
			     C	    $M_MAKE %$M_COUNT				 ;
			     C	    ENDM					 ;
			     C	  ENDIF 					 ;
			     C	ENDIF						 ;
			     C	ENDM						 ;
			     C							 ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;; $M_MAKE		Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C							 ;
			     C	$M_MAKE Macro $m_append 			 ;
			     C	IF  FARmsg					 ;
			     C	    CALL    FAR PTR $M_CLS_&$m_append		 ;  Get addressibilty to class &$M_APPEND (ES:DI)
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX+2,ES ;  Move into first avaliable table location
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-11
DOS - Message Retriever - SYSTEM CONTROL file               

			     C	ELSE						 ;
			     C	    CALL    $M_CLS_&$m_append			 ;  Get addressibilty to class &$M_APPEND (ES:DI)
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
			     C	ENDIF						 ;
			     C	$M_INDEX =  $M_INDEX + 4			 ;  Set next available table location
			     C							 ;
			     C	ENDM						 ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;; $M_MAKE_COMR     Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C							 ;
			     C	$M_MAKE_COMR   macro			     ;
			     C							 ;
			     C	    CALL    $M_CLS_3				 ;  Get addressibilty to class A
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
			     C	$M_INDEX =  $M_INDEX + 4			 ;  Set next available table location
			     C							 ;
			     C	    CALL    $M_CLS_4				 ;  Get addressibilty to class B
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
			     C	$M_INDEX =  $M_INDEX + 4			 ;  Set next available table location
			     C							 ;
			     C	    CALL    $M_CLS_5				 ;  Get addressibilty to class C
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
			     C	$M_INDEX =  $M_INDEX + 4			 ;  Set next available table location
			     C							 ;
			     C	    CALL    $M_CLS_6				 ;  Get addressibilty to class D
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
			     C	$M_INDEX =  $M_INDEX + 4			 ;  Set next available table location
			     C							 ;
			     C	    CALL    $M_CLS_7				 ;  Get addressibilty to class E
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
			     C	$M_INDEX =  $M_INDEX + 4			 ;  Set next available table location
			     C							 ;
			     C	ENDM						 ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;; $M_MAKE_COMT     Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C							 ;
			     C	$M_MAKE_COMT  macro			     ;
			     C							 ;
			     C	    CALL    $M_CLS_8				 ;  Get addressibilty to class A
			     C	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ;
			     C	$M_INDEX =  $M_INDEX + 4			 ;  Set next available table location
			     C							 ;
			     C	ENDM						 ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					MSG_UTILNAME <COMP>		;IDENTIFY THE UTILITY		 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-12
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  0001[                 C1	    $M_CLASS_ADDRS   DD        $M_NUM_CLS DUP(0)	     ;;AN000;; Allow pointers to specified c
				lasses
	   00000000          C1	
			 ]   C1	
			     C1	
 0030  FFFFFFFF              C1	    $M_CLS_TERM      DD        -1			     ;;AN000;;
 0034  00000000              C1	    $M_DBCS_VEC      DD        0			     ;;AN000;; Save DBCS vector
 0038  0000                  C1	    $M_HANDLE	     DW        ?			     ;;AN000;;
 003A  00                    C1	    $M_SIZE	     DB        0			     ;;AN000;;
 003B  0D 0A                 C1	    $M_CRLF	     DB        0DH,0AH			     ;;AN004;; CR LF message
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-13
DOS - Message Retriever - MSGSTR.INC Module                 

 003D  00                    C1	    $M_CLASS	     DB        ?			     ;;AN004;; Saved class
 003E  0000                  C1	    $M_RETURN_ADDR   DW        ?			     ;;AN000;;
 0040  0000                  C1	    $M_MSG_NUM	     DW        $M_NULL			     ;;AN000;;
 0042  000A                  C1	    $M_DIVISOR	     DW        10			     ;;AN000;; Default = 10 (must be a WORD 
				for division)
 0044  0040[                 C1	    $M_TEMP_BUF      DB        $M_TEMP_BUF_SZ DUP("$")	     ;;AN000;; Temporary buffer
	   24                C1	
			 ]   C1	
			     C1	
 0084  24                    C1	    $M_BUF_TERM      DB        "$"			     ;;AN000;;
			     C1	
 0085                        C1	$M_RES_ADDRS ENDS					     ;;AN000;;
			     C1	$M_COUNTRY_INFO STRUC					     ;;AN000;; Expected Country infomation
			     C1								     ;;
 0000  0044[                 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	
 0044  0000                  C1	    $M_DATE_FORMAT   DW       ? 			     ;;AN000;; <------- Date Format
 0046  0005[                 C1	    $M_CURR_SEPARA   DB       5 DUP(?)			     ;;AN000;;
	   ??                C1	
			 ]   C1	
			     C1	
 004B  00 00                 C1	    $M_THOU_SEPARA   DB       ?,0			     ;;AN000;; <------- Thou Separator
 004D  00 00                 C1	    $M_DECI_SEPARA   DB       ?,0			     ;;AN000;; <------- Decimal Separator
 004F  00 00                 C1	    $M_DATE_SEPARA   DB       ?,0			     ;;AN000;; <------- Date Separator
 0051  00 00                 C1	    $M_TIME_SEPARA   DB       ?,0			     ;;AN000;; <------- Time Separator
 0053  00                    C1	    $M_CURR_FORMAT   DB       ? 			     ;;AN000;;
 0054  00                    C1	    $M_SIG_DIGS_CU   DB       ? 			     ;;AN000;;
 0055  00                    C1	    $M_TIME_FORMAT   DB       ? 			     ;;AN000;; <------- Time Format
			     C1								     ;;
 0056                        C1	$M_COUNTRY_INFO ENDS					     ;;AN000;;
				; =  =	=  =  =  =  =  =  =  =	=  =					 ;AN000;
					HEADER	<DEFINITION OF MESSAGES>				 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-14
DEFINITION OF MESSAGES							 ;AN000;                       

				;	   $SALUT (4,12,18,36)						 ;AN000;
 0000				CSEG	   SEGMENT PARA PUBLIC	'CODE'					 ;AN000;
					   ASSUME CS:CSEG,DS:CSEG,ES:CSEG,SS:CSEG			 ;AN000;
				;									 ;AN000;
					   PUBLIC COPYRIGHT						 ;AN000;
 0000  54 68 65 20 44 4F	COPYRIGHT  DB	 "The DOS COMP Utility" 	       ;AN000;
       53 20 43 4F 4D 50	
       20 55 74 69 6C 69	
       74 79			
					   INCLUDE MSGHAN.INC	   ;DEFINE THE MESSAGE HANDLER CONTROL BLOCKS ;AN000;
			     C	;THIS IS A COMMONLY INCLUDED FILE, USED BY (AT LEAST) THE FOLLOWING COMPONENTS:
			     C	;TREE, GRAFTABL, DISKCOMP, DISKCOPY, COMP - WRITTEN OR Revised BY E.K.
			     C	
			     C	;		VALUES FOR THE MSG_DESC CONTROL BLOCK
 = 0001                      C	ONE_SUBS       EQU   1		   ;AN000;ONE VARIABLE FIELD IN MESSAGE
 = 0002                      C	TWO_SUBS       EQU   2		   ;AN000;TWO VARIABLE FIELDS IN MESSAGE
 = 0003                      C	THREE_SUBS     EQU   3		   ;AN000;THREE VARIABLE FIELDS IN MESSAGE
 =                           C	CLASS_1        EQU   EXT_ERR_CLASS ;AN000;CLASS 1 (DOS EXTENDED ERRORS)
 =                           C	CLASS_2        EQU   PARSE_ERR_CLASS ;AN000;CLASS 2 (PARSE ERRORS)
 =                           C	CLASS_A        EQU   UTILITY_MSG_CLASS ;AN000;CLASS A TYPE MESSAGE
			     C	
			     C	;THIS MESSAGE DESCRIPTOR CONTROL BLOCK IS GENERATED, ONE PER MESSAGE,
			     C	;TO DEFINE THE SEVERAL PARAMETERS THAT ARE EXPECTED TO BE PASSED IN
			     C	;CERTAIN REGISTERS WHEN THE SYSDISPMSG FUNCTION IS TO BE INVOKED.
			     C	
			     C	MSG_DESC	  STRUC 	   ;AN000;
 0000  0000                  C	MSG_NUM 	  DW	0	   ;AN000;MESSAGE NUMBER (TO AX)
 0002  0001                  C	MSG_HANDLE	  DW	STDOUT	   ;AN000;HANDLE OF OUTPUT DEVICE (TO BX)
 0004  0000                  C	MSG_SUBLIST	  DW	0	   ;AN000;POINTER TO SUBLIST (TO SI)
 0006  0000                  C	MSG_COUNT	  DW	0	   ;AN000;SUBSTITUTION COUNT (TO CX)
 0008  FF00                  C	MSG_CLASS	  DW	CLASS_A SHL 8 ;AN000;MESSAGE CLASS (IN HIGH BYTE, TO DH)
			     C					   ; LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL)
 000A                        C	MSG_DESC	  ENDS		   ;AN000;
			     C	
			     C	;		VALUES FOR THE SUBLIST CONTROL BLOCK
 = 0000                      C	PC_ID_0        EQU   0		   ;AN000;ID OF " - " TRAILER TO MESSAGE
 = 0001                      C	PC_ID_1        EQU   1		   ;AN000;ID OF PERCENT VARIABLE FIELD
 = 0002                      C	PC_ID_2        EQU   2		   ;AN000;ID OF PERCENT VARIABLE FIELD
 = 0003                      C	PC_ID_3        EQU   3		   ;AN000;ID OF PERCENT VARIABLE FIELD
 = 0000                      C	MAX_0	       EQU   0		   ;AN000;MAXIMUM WIDTH OF STRING FIELD (0=NO LIMIT)
 = 0001                      C	MIN_1	       EQU   1		   ;AN000;MINIMUM WIDTH OF STRING FIELD
 = 0020                      C	PAD_BLK        EQU   " "           ;AN000;CHAR FOR PAD FIELD
 = 0000                      C	FILL_OFF       EQU   0		   ;AN000;TO BE REPLACED WITH ACTUAL OFFSET
 = 0000                      C	FILL_SEG       EQU   0		   ;AN000;TO BE REPLACED WITH ACTUAL SEG ID
			     C	
			     C	;THIS SUBLIST CONTROL BLOCK, POINTED TO BY SI WHEN SYSDISPMSG IS CALLED
			     C	;FURTHER DESCRIBES THE MESSAGE AND THE VARIABLE FIELDS THE MSG MAY CONTAIN.
			     C	;THERE IS ONE OF THESE CONTROL BLOCKS PER VARIABLE FIELD.  ADDITIONAL
			     C	;VARIABLE FIELDS ARE DEFINED IN ADDITIONAL "SUBLIST" CONTROL BLOCKS,
			     C	;CONSECUTIVE AND CONTIGUOUS WITH THIS ONE.  THE NUMBER OF THESE CONTROL
			     C	;BLOCKS IS THE SUBSTITUTION COUNT, PASSED IN CS TO SYSDISPMSG, AS DEFINED
			     C	;IN THE ABOVE "MSC_DESC" CONTROL BLOCK.
			     C	
			     C	SUBLIST 	  STRUC 	;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-15
DEFINITION OF MESSAGES							 ;AN000;                       

 0000  0B                    C	SUB_SIZE	  DB	11	;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST)
 0001  00                    C	SUB_RES 	  DB	0	;AN000;RESERVED
			     C					;NEXT FIELD IS TO BE USED AS A DOUBLE WORD
 0002  0000                  C	SUB_VALUE	  DW	0	;AN000;TIME, DATE, OR PTR TO DATA ITEM
 0004  0000                  C	SUB_VALUE_SEG	  DW	0	;AN000;SEG ID OF PTR
			     C					;(ABOVE FIELD MUST BE FILLED AT EXECUTION TIME
			     C					; IF THIS IS A .COM FILE)
 0006  00                    C	SUB_ID		  DB	0	;AN000;N OF %N
 0007  00                    C	SUB_FLAGS	  DB	0	;AN000;DATA TYPE FLAGS
 0008  00                    C	SUB_MAX_WIDTH	  DB	MAX_0	;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED)
 0009  00                    C	SUB_MIN_WIDTH	  DB	0	;AN000;MINIMUM FIELD WIDTH
 000A  20                    C	SUB_PAD_CHAR	  DB	PAD_BLK ;AN000;CHARACTER FOR PAD FIELD
			     C					; CAN BE " ", "0" OR ",".
			     C					; "," CAUSES INSERTION OF THE ACTIVE
			     C					; THOUSANDS SEPARATOR BETWEEN EVERY 3 DIGITS.
 000B                        C	SUBLIST 	  ENDS		;AN000;
			     C	
			     C	;		  BITS DEFINED FOR SUB_FLAGS ABOVE
			     C	;			FORMAT = A0SSTTTT
			     C	;				 ³³ ³ ÀÄÄÄ FIELD TYPE
			     C	;				 ³³ ÀÄÄÄ DATA VARIABLE SIZE
			     C	;				 ³ÀÄÄÄ RESERVED, MUST BE ZERO
			     C	;				 ÀÄÄÄ ALIGNMENT INDICATOR
			     C	SF_BITS     RECORD F_ALIGN:1,F_RES:1=0,F_SIZE:2,F_TYPE:4;AN000;
			     C	
			     C	;		F_ALIGN FIELD, ALIGNMENT INDICATOR
 = 0000                      C	SF_LEFT 	  EQU	0	   ;AN000;LEFT ALIGN
 = 0001                      C	SF_RIGHT	  EQU	1	   ;AN000;RIGHT ALIGN
			     C	
			     C	;		F_RES FIELD, RESERVED, SHOULD BE ZERO
			     C	
			     C	;		F_TYPE FIELD, FIELD TYPE
 = 0000                      C	SF_CHAR 	  EQU	0000B	   ;AN000;TYPE IS CHARACTER
			     C	;		F_SIZE FIELD,
 = 0000                      C	SF_CH		  EQU	00B	   ;AN000;SINGLE CHARACTER
 = 0001                      C	SF_ASCIIZ	  EQU	01B	   ;AN000;ASCIIZ STRING
			     C	
			     C	;		F_TYPE FIELD, FIELD TYPE
 = 0001                      C	SF_UN_BD	  EQU	0001B	   ;AN000;UNSIGNED BINARY TO DECIMAL CHARACTER
			     C	;		F_SIZE FIELD,
 = 0001                      C	SF_BYTE 	  EQU	01B	   ;AN000;DATA IS BYTE SIZED
 = 0002                      C	SF_WORD 	  EQU	10B	   ;AN000;DATA IS WORD SIZED
 = 0003                      C	SF_DWORD	  EQU	11B	   ;AN000;DATA IS DOUBLE WORD SIZED
			     C	
			     C	;		F_TYPE FIELD, FIELD TYPE
 = 0002                      C	SF_SIN_BD	  EQU	0010B	   ;AN000;SIGNED BINARY TO DECIMAL CHARACTER
			     C	;		F_SIZE FIELD,
			     C	;SF_BYTE	  EQU	01B	   ;DATA IS BYTE SIZED
			     C	;SF_WORD	  EQU	10B	   ;DATA IS WORD SIZED
			     C	;SF_DWORD	  EQU	11B	   ;DATA IS DOUBLE WORD SIZED
			     C	
			     C	;		F_TYPE FIELD, FIELD TYPE
 = 0003                      C	SF_UN_BH	  EQU	0011B	   ;AN000;UNSIGNED BINARY TO HEXADECIMAL CHARACTER
			     C	;		F_SIZE FIELD,
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-16
DEFINITION OF MESSAGES							 ;AN000;                       

			     C	;SF_BYTE	  EQU	01B	   ;DATA IS BYTE SIZED
			     C	;SF_WORD	  EQU	10B	   ;DATA IS WORD SIZED
			     C	;SF_DWORD	  EQU	11B	   ;DATA IS DOUBLE WORD SIZED
			     C	
			     C	;		F_TYPE FIELD, FIELD TYPE
 = 0004                      C	SF_DATE 	  EQU	0100B	   ;AN000;DATE TO CHARACTER,
			     C					   ; USING CURRENT COUNTRY FORMAT
			     C					   ;SUB_VALUE HIGH=YEAR
			     C					   ;SUB_VALUE LOW=MMDD
			     C	;		F_SIZE FIELD,
 = 0001                      C	SF_MD		  EQU	01B	   ;AN000;MONTH AND DAY ONLY
 = 0002                      C	SF_MDY2 	  EQU	10B	   ;AN000;MONTH,DAY AND YEAR (2 DIGITS)
 = 0003                      C	SF_MDY4 	  EQU	11B	   ;AN000;MONTH,DAY AND YEAR (4 DIGITS)
			     C	
			     C	;		F_TYPE FIELD, FIELD TYPE
 = 0005                      C	SF_TIME_12	  EQU	0101B	   ;AN000;TIME TO CHARACTER, 12 HOUR FORMAT
			     C					   ; USING CURRENT COUNTRY FORMAT
			     C					   ;SUB_VALUE HIGH=HHMM
			     C					   ;SUB_VALUE LOW=SSHH
			     C	;		F_SIZE FIELD,
 = 0000                      C	SF_HHMM 	  EQU	00B	   ;AN000;HH:MM (ACTIVE TIME FORMAT)
 = 0001                      C	SF_HHMMSS	  EQU	01B	   ;AN000;HH:MM:SS (ACTIVE TIME FORMAT)
 = 0002                      C	SF_HHMMSSHH	  EQU	10B	   ;AN000;HH:MM:SS:HH
			     C	
			     C	;		F_TYPE FIELD, FIELD TYPE
 = 0006                      C	SF_TIME_24	  EQU	0110B	   ;AN000;TIME TO CHARACTER, 24 HOUR FORMAT
			     C					   ; USING CURRENT COUNTRY FORMAT
			     C					   ;SUB_VALUE HIGH=HHMM
			     C					   ;SUB_VALUE LOW=SSHH
			     C	;		F_SIZE FIELD,
			     C	;SF_HHMM	  EQU	00B	   ;HH:MM (ACTIVE TIME FORMAT)
			     C	;SF_HHMMSS	  EQU	01B	   ;HH:MM:SS (ACTIVE TIME FORMAT)
			     C	;SF_HHMMSSHH	  EQU	10B	   ;HH:MM:SS:HH
			     C	
			     C	;		THE NEXT GROUP ARE ALL CLASS "1" MESSAGES
			     C	
			     C		       PUBLIC MSGNUM_EXTERR;AN000;
 0014  0000                  C	MSGNUM_EXTERR  MSG_DESC <,STDERR,,,CLASS_1 SHL 8> ;AN000;ALL EXTENDED DOS ERRORS
 0016  0200                  C	
 0018  0000                  C	
 001A  0000                  C	
 001C  0001                  C	
			     C	
			     C					   ;ERROR NUMBER WILL NEED TO BE FILLED IN
			     C	
			     C	;		THE NEXT GROUP ARE ALL CLASS "2" MESSAGES
			     C	
			     C		       PUBLIC MSGNUM_PARSE ;AN000;SO PARSE DRIVER CAN FIND IT
 001E  0000                  C	MSGNUM_PARSE   MSG_DESC <,STDERR,,,CLASS_2 SHL 8> ;AN000;ALL PARSING ERRORS
 0020  0200                  C	
 0022  0000                  C	
 0024  0000                  C	
 0026  0002                  C	
			     C	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-17
DEFINITION OF MESSAGES							 ;AN000;                       

			     C					   ;ERROR NUMBER WILL NEED TO BE FILLED IN
			     C	
			     C	;		THE NEXT GROUP ARE ALL CLASS "A" MESSAGES
			     C	;		THESE ARE THE "CANNED" MESSAGES ALWAYS PRESENT
			     C	
			     C		       PUBLIC MSGNUM_VER   ;AN000;
 0028  0100                  C	MSGNUM_VER     MSG_DESC <1,STDERR> ;AN000;"Incorrect DOS Version"
 002A  0200                  C	
 002C  0000                  C	
 002E  0000                  C	
 0030  00FF                  C	
			     C	
			     C	;end of MSGHAN.INC
					   INCLUDE COMPMS.INC	   ;DEFINE THE MESSAGES, AND CONTROL BLOCKS ;AN000;
			     C	;:util COMP                 ;utility name                                       ;AN000;
			     C	;:class 1                   ;DOS extended errors:                               ;AN000;
			     C	;:class 2                   ;parse errors:                                      ;AN000;
			     C	;;                                                                              ;AN000;
			     C	;:class A                   ;system messages                                    ;AN000;
			     C	;                                                                               ;AN000;
			     C	;:use 1 COMMON1             ;"Incorrect DOS version"                            ;AN000;
			     C	;:use 2 EXTEND8             ;"Insufficient memory"                              ;AN000;
			     C	;:use 3 PARSE10             ;"Invalid parameter"                                ;AN000;
			     C	;:def 4 "10 Mismatches - ending compare",CR,LF                                  ;AN000;
			     C	;:use 5 EXTEND15            ;"Invalid drive specification"                      ;AN000;
			     C	;:def 6 "Compare error at OFFSET %1",CR,LF                                      ;AN000;
			     C	;:def 7 "File 1 = %1",CR,LF                                                     ;AN000;
			     C	;:def 8 "File 2 = %1",CR,LF                                                     ;AN000;
			     C	;:def 9 "Eof mark not found",CR,LF                                              ;AN000;
			     C	;:def 10 "Files compare ok",CR,LF                                               ;AN000;
			     C	;:use 11 EXTEND2            ;"File not found"                                   ;AN000;
			     C	;:use 12 COMMON25           ;"Invalid path"                                     ;AN000;
			     C	;:use 13 EXTEND32           ;"Sharing violation"                                ;AN000;
			     C	;:use 14 EXTEND4            ;"Too many open files"                              ;AN000;
			     C	;:def 15 CR,LF,CR,LF,"Enter primary file name",CR,LF                            ;AN000;
			     C	;:def 16 CR,LF,CR,LF,"Enter 2nd file name or drive id",CR,LF                    ;AN000;
			     C	;:def 17 "Files are different sizes",CR,LF                                      ;AN000;
			     C	;:def 18 "Compare more files? (Y/N)",CR,LF                                      ;AN000;
			     C	;:def 19 "%1 and %2",CR,LF                                                      ;AN000;
			     C	;:def 20 CR,LF                                                                  ;AN000;
			     C	;:use 21 EXTEND5            ;"Access Denied"                                    ;AN000;
			     C	;:use 22 EXTEND37           ;"Code page mismatch"                               ;AN000;
			     C	;:DEF 23 "Files compare ok",CR,LF                                               ;AN000;
			     C	;:end                                                                           ;AN000;
			     C	; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =       ;AN000;
			     C	;               $SALUT (0,13,18,22)                                             ;AN000;
			     C	;                                                                               ;AN000;
			     C	; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =       ;AN000;
			     C	            HEADER <MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES>                  ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-18
MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES							 ;AN000;    

			     C	;                                                                               ;AN000;
			     C	;           THE NEXT GROUP ARE ADDITIONAL CLASS "A" MESSAGES                    ;AN000;
			     C	;           SPECIFICALLY DEFINED FOR THE COMP UTILITY                           ;AN000;
			     C	; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =       ;AN000;
			     C	;                                                                               ;AN000;
			     C	; THIS IS SUBLIST FOR  MSGNUM_EXTERR (A CLASS 1 MESSAGE)                        ;AN000;
 0032  0B                    C	SUBLIST_EXTERR SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_0,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1>
				 ;AN000;
 0033  00                    C	
 0034  0000                  C	
 0036  0000                  C	
 0038  00                    C	
 0039  10                    C	
 003A  00                    C	
 003B  01                    C	
 003C  20                    C	
			     C	
			     C	            PUBLIC SUBLIST_EXTERR                                               ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Insufficient memory"                                               ;AN000;
 003D  0200                  C	MSGNUM_MEM  MSG_DESC <2>                                                        ;AN000;
 003F  0100                  C	
 0041  0000                  C	
 0043  0000                  C	
 0045  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_MEM                                                   ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "invalid parameter"                                                 ;AN000;
 0047  0300                  C	MSGNUM_PARA MSG_DESC <3>                                                        ;AN000;
 0049  0100                  C	
 004B  0000                  C	
 004D  0000                  C	
 004F  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_PARA                                                  ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "10 Mismatches - ending compare",CR,LF                              ;AN000;
 0051  0400                  C	MSGNUM_TENMSG MSG_DESC <4>                                                      ;AN000;
 0053  0100                  C	
 0055  0000                  C	
 0057  0000                  C	
 0059  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_TENMSG                                                ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Invalid drive specification",CR,LF                                 ;AN000;
 005B  0500                  C	MSGNUM_BADDRV MSG_DESC <5,STDOUT>                                               ;AN000;
 005D  0100                  C	
 005F  0000                  C	
 0061  0000                  C	
 0063  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_BADDRV                                                ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-19
MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES							 ;AN000;    

			     C	;                                                                               ;AN000;
			     C	;           "Compare error at OFFSET %1",CR,LF                                  ;AN000;
 0065  0600                  C	MSGNUM_BAD  MSG_DESC <6,,SUBLIST_6,ONE_SUBS>                                    ;AN000;
 0067  0100                  C	
 0069  006F R                C	
 006B  0100                  C	
 006D  00FF                  C	
			     C	
 006F  0B                    C	SUBLIST_6   SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_DWORD,SF_UN_BH>,MAX_0,MIN_1> ;A
				N000;
 0070  00                    C	
 0071  0000                  C	
 0073  0000                  C	
 0075  01                    C	
 0076  33                    C	
 0077  00                    C	
 0078  01                    C	
 0079  20                    C	
			     C	
			     C	;           NOTE: ERROR NUMBER IS DWORD                                         ;AN000;
			     C	            PUBLIC MSGNUM_BAD,SUBLIST_6                                         ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "File 1 = %1",CR,LF                                                 ;AN000;
 007A  0700                  C	MSGNUM_ADR  MSG_DESC <7,,SUBLIST_7,ONE_SUBS>                                    ;AN000;
 007C  0100                  C	
 007E  0084 R                C	
 0080  0100                  C	
 0082  00FF                  C	
			     C	
 0084  0B                    C	SUBLIST_7   SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_BYTE,SF_UN_BH>,MAX_0,MIN_1> ;AN
				000;
 0085  00                    C	
 0086  0000                  C	
 0088  0000                  C	
 008A  01                    C	
 008B  13                    C	
 008C  00                    C	
 008D  01                    C	
 008E  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_ADR,SUBLIST_7                                         ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "File 2 = %1",CR,LF                                                 ;AN000;
 008F  0800                  C	MSGNUM_BDR  MSG_DESC <8,,SUBLIST_8,ONE_SUBS>                                    ;AN000;
 0091  0100                  C	
 0093  0099 R                C	
 0095  0100                  C	
 0097  00FF                  C	
			     C	
 0099  0B                    C	SUBLIST_8   SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_BYTE,SF_UN_BH>,MAX_0,MIN_1> ;AN
				000;
 009A  00                    C	
 009B  0000                  C	
 009D  0000                  C	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-20
MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES							 ;AN000;    

 009F  01                    C	
 00A0  13                    C	
 00A1  00                    C	
 00A2  01                    C	
 00A3  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_BDR,SUBLIST_8                                         ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Eof mark not found",CR,LF                                          ;AN000;
 00A4  0900                  C	MSGNUM_EOR  MSG_DESC <9>                                                        ;AN000;
 00A6  0100                  C	
 00A8  0000                  C	
 00AA  0000                  C	
 00AC  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_EOR                                                   ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Files compare ok",CR,LF                                            ;AN000;
 00AE  0A00                  C	MSGNUM_DONE MSG_DESC <10>                                                       ;AN000;
 00B0  0100                  C	
 00B2  0000                  C	
 00B4  0000                  C	
 00B6  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_DONE                                                  ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "%1 - File not found",CR,LF                                         ;AN000;
 00B8  0B00                  C	MSGNUM_FNF  MSG_DESC <11,,SUBLIST_11,ONE_SUBS>                                  ;AN000;
 00BA  0100                  C	
 00BC  00C2 R                C	
 00BE  0100                  C	
 00C0  00FF                  C	
			     C	
 00C2  0B                    C	SUBLIST_11  SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_0,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;A
				N000;
 00C3  00                    C	
 00C4  0000                  C	
 00C6  0000                  C	
 00C8  00                    C	
 00C9  10                    C	
 00CA  00                    C	
 00CB  01                    C	
 00CC  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_FNF,SUBLIST_11                                        ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "%1 - Invalid path",CR,LF                                           ;AN000;
 00CD  0C00                  C	MSGNUM_BAD_PATH MSG_DESC <12,,SUBLIST_12,ONE_SUBS>                              ;AN000;
 00CF  0100                  C	
 00D1  00D7 R                C	
 00D3  0100                  C	
 00D5  00FF                  C	
			     C	
 00D7  0B                    C	SUBLIST_12  SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_0,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;A
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-21
MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES							 ;AN000;    

				N000;
 00D8  00                    C	
 00D9  0000                  C	
 00DB  0000                  C	
 00DD  00                    C	
 00DE  10                    C	
 00DF  00                    C	
 00E0  01                    C	
 00E1  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_BAD_PATH,SUBLIST_12                                   ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "%1 - File sharing conflict",CR,LF                                  ;AN000;
 00E2  0D00                  C	MSGNUM_SHARE MSG_DESC <13,,SUBLIST_13,ONE_SUBS>                                 ;AN000;
 00E4  0100                  C	
 00E6  00EC R                C	
 00E8  0100                  C	
 00EA  00FF                  C	
			     C	
 00EC  0B                    C	SUBLIST_13  SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_0,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;A
				N000;
 00ED  00                    C	
 00EE  0000                  C	
 00F0  0000                  C	
 00F2  00                    C	
 00F3  10                    C	
 00F4  00                    C	
 00F5  01                    C	
 00F6  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_SHARE,SUBLIST_13                                      ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Too many files open",CR,LF                                         ;AN000;
 00F7  0E00                  C	MSGNUM_TOO_MANY MSG_DESC <14>                                                   ;AN000;
 00F9  0100                  C	
 00FB  0000                  C	
 00FD  0000                  C	
 00FF  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_TOO_MANY                                              ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           CR,LF,CR,LF,"Enter primary file name",CR,LF                         ;AN000;
 0101  0F00                  C	MSGNUM_PRINAM MSG_DESC <15,,,,(CLASS_A SHL 8) OR DOS_BUF_KEYB_INP>              ;AN000;
 0103  0100                  C	
 0105  0000                  C	
 0107  0000                  C	
 0109  0AFF                  C	
			     C	
 010B  0000                  C	            DW     ?             ;DEFINE EXTRA WORD FOR PTR TO INPUT BUFFER     ;AN000;
			     C	                                 ;IT WILL BE ACCESSED AS A FIELD OF THE ABOVE STRUCT ;AN000;
			     C	            PUBLIC MSGNUM_PRINAM                                                ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           CR,LF,CR,LF,"Enter 2nd file name or drive id",CR,LF                 ;AN000;
 010D  1000                  C	MSGNUM_SECNAM MSG_DESC <16,,,,(CLASS_A SHL 8) OR DOS_BUF_KEYB_INP>              ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-22
MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES							 ;AN000;    

 010F  0100                  C	
 0111  0000                  C	
 0113  0000                  C	
 0115  0AFF                  C	
			     C	
 0117  0000                  C	            DW     ?             ;DEFINE EXTRA WORD FOR PTR TO INPUT BUFFER     ;AN000;
			     C	                                 ;IT WILL BE ACCESSED AS A FIELD OF THE ABOVE STRUCT ;AN000;
			     C	            PUBLIC MSGNUM_SECNAM                                                ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Files are different sizes",CR,LF                                   ;AN000;
 0119  1100                  C	MSGNUM_BADSIZ MSG_DESC <17>                                                     ;AN000;
 011B  0100                  C	
 011D  0000                  C	
 011F  0000                  C	
 0121  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_BADSIZ                                                ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Compare more files (Y/N) ?",CR,LF                                  ;AN000;
 0123  1200                  C	MSGNUM_NOTHER MSG_DESC <18,STDOUT,,,(CLASS_A SHL 8) OR 0C1H>                    ;AC210;;AD176;
 0125  0100                  C	
 0127  0000                  C	
 0129  0000                  C	
 012B  C1FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_NOTHER                                                ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "%1 and %2",CR,LF                                                   ;AN000;
 012D  1300                  C	MSGNUM_AND_MSG MSG_DESC <19,,SUBLIST_19A,TWO_SUBS>                              ;AN000;
 012F  0100                  C	
 0131  0137 R                C	
 0133  0200                  C	
 0135  00FF                  C	
			     C	
 0137  0B                    C	SUBLIST_19A SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;A
				N000;
 0138  00                    C	
 0139  0000                  C	
 013B  0000                  C	
 013D  01                    C	
 013E  10                    C	
 013F  00                    C	
 0140  01                    C	
 0141  20                    C	
			     C	
 0142  0B                    C	SUBLIST_19B SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_2,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;A
				N000;
 0143  00                    C	
 0144  0000                  C	
 0146  0000                  C	
 0148  02                    C	
 0149  10                    C	
 014A  00                    C	
 014B  01                    C	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-23
MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES							 ;AN000;    

 014C  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_AND_MSG,SUBLIST_19A,SUBLIST_19B                       ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           CR,LF                                                               ;AN000;
 014D  1400                  C	MSGNUM_CRLF MSG_DESC <20>                                                       ;AN000;
 014F  0100                  C	
 0151  0000                  C	
 0153  0000                  C	
 0155  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_CRLF                                                  ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "%1 - Access Denied",CR,LF                                          ;AN000;
 0157  1500                  C	MSGNUM_ACCESSDENIED MSG_DESC <21,,SUBLIST_21,ONE_SUBS>                          ;AN000;
 0159  0100                  C	
 015B  0161 R                C	
 015D  0100                  C	
 015F  00FF                  C	
			     C	
 0161  0B                    C	SUBLIST_21  SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_0,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;A
				N000;
 0162  00                    C	
 0163  0000                  C	
 0165  0000                  C	
 0167  00                    C	
 0168  10                    C	
 0169  00                    C	
 016A  01                    C	
 016B  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_ACCESSDENIED,SUBLIST_21                               ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Code page mismatch"                                                ;AN000;
 016C  1600                  C	MSGNUM_CP_MISMATCH MSG_DESC <22>                                                ;AN000;
 016E  0100                  C	
 0170  0000                  C	
 0172  0000                  C	
 0174  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_CP_MISMATCH                                           ;AN000;
			     C	;                                                                               ;AN000;
			     C	;           "Files compare ok"                                                  ;AN000;
 0176  1700                  C	MSGNUM_OK   MSG_DESC <23>                                                       ;AN000;
 0178  0100                  C	
 017A  0000                  C	
 017C  0000                  C	
 017E  00FF                  C	
			     C	
			     C	            PUBLIC MSGNUM_OK                                                    ;AN000;
			     C	;
			     C	;
 0180  0000                  C	MSGNUM_PPARSE MSG_DESC <,STDERR,SUBLIST_24,ONE_SUBS,(CLASS_2 SHL 8)>            ;AN000;
 0182  0200                  C	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-24
MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES							 ;AN000;    

 0184  018A R                C	
 0186  0100                  C	
 0188  0002                  C	
			     C	
 018A  0B                    C	SUBLIST_24  SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_0,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;A
				N000;
 018B  00                    C	
 018C  0000                  C	
 018E  0000                  C	
 0190  00                    C	
 0191  10                    C	
 0192  00                    C	
 0193  01                    C	
 0194  20                    C	
			     C	
			     C	            PUBLIC MSGNUM_PPARSE,SUBLIST_24                                      ;AN000;
			     C	
			     C	;                                                                               ;AN000;
			     C	;end of COMPMS.INC                                                              ;AN000;
					   MSG_SERVICES <MSGDATA>					 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-25
DOS - Message Retriever - MSGRES.TAB Module                 

 0195                        C1	      $M_RT   LABEL   BYTE				     ;;AN000;;
 0195  00000000              C1	      $M_RES_ADDRS <>					     ;;AN000;; Resident addresses
 0199  00000000              C1	
 019D  00000000              C1	
 01A1  FFFFFFFF              C1	
 01A5  00000000              C1	
 01A9  00000000              C1	
 01AD  FFFFFFFF              C1	
 01B1  00000000              C1	
 01B5  00000000              C1	
 01B9  FFFFFFFF              C1	
 01BD  FFFFFFFF              C1	
 01C1  00000000              C1	
 01C5  FFFFFFFF              C1	
 01C9  00000000              C1	
 01CD  0000                  C1	
 01CF  00                    C1	
 01D0  0001[                 C1	
 01D2  00                    C1	
 01D3  0000                  C1	
 01D5  0000                  C1	
 01D7  0A00                  C1	
 01D9  0040[                 C1	
 0219  24                    C1	
 021A  4D 53 20 44 4F 53     C1		DB	"MS DOS Version 4.00 (C)Copyright 1988 Microsoft Corp"
 024E  4C 69 63 65 6E 73     C1		DB	"Licensed Material - Property of Microsoft  "
				; =  =	=  =  =  =  =  =  =  =	=  =					 ;AN000;
					   HEADER <SYSTEM MESSAGE HANDLER>				 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-26
SYSTEM MESSAGE HANDLER							 ;AN000;                       

					   PUBLIC SYSLOADMSG						 ;AN000;
					   PUBLIC SYSDISPMSG						 ;AN000;
					   PUBLIC SYSGETMSG						 ;AN000;
				;									 ;AN000;
				;	   MSG_SERVICES <LOADmsg,GETmsg,DISPLAYmsg,CHARmsg,INPUTmsg,NUMmsg> ;AN000;
								   ;DEFAULT=CHECK DOS VERSION		 ;AN000;
								   ;DEFAULT=NEARmsg			 ;AN000;
								   ;DEFAULT=INPUTmsg			 ;AN000;
								   ;DEFAULT=NUMmsg			 ;AN000;
								   ;DEFAULT=NO TIMEmsg			 ;AN000;
								   ;DEFAULT=NO DATEmsg			 ;AN000;
				.LIST									 ;AN000;
				.CREF									 ;AN000;
				;									 ;AN000;
					   MSG_SERVICES <COMP.CLA,COMP.CL1,COMP.CL2> ;TEXTS OF MESSAGES  ;AN000;
 09B6                        C3	$M_CLASS_A_STRUC LABEL BYTE
 09B6  FF                    C3	        $M_CLASS_ID <0FFH,EXPECTED_VERSION,Class_A_MessageCount>
 09B7  0400                  C3	
 09B9  17                    C3	
 09BA                        C3	$M_A_00001H_STRUC LABEL BYTE
 09BA  0100                  C3	        $M_ID   <00001H,$M_A_00001H_MSG-$M_A_00001H_STRUC>
 09BC  5C00                  C3	
 09BE                        C3	$M_A_00002H_STRUC LABEL BYTE
 09BE  0200                  C3	        $M_ID   <00002H,$M_A_00002H_MSG-$M_A_00002H_STRUC>
 09C0  7000                  C3	
 09C2                        C3	$M_A_00003H_STRUC LABEL BYTE
 09C2  0300                  C3	        $M_ID   <00003H,$M_A_00003H_MSG-$M_A_00003H_STRUC>
 09C4  8200                  C3	
 09C6                        C3	$M_A_00004H_STRUC LABEL BYTE
 09C6  0400                  C3	        $M_ID   <00004H,$M_A_00004H_MSG-$M_A_00004H_STRUC>
 09C8  9200                  C3	
 09CA                        C3	$M_A_00005H_STRUC LABEL BYTE
 09CA  0500                  C3	        $M_ID   <00005H,$M_A_00005H_MSG-$M_A_00005H_STRUC>
 09CC  AF00                  C3	
 09CE                        C3	$M_A_00006H_STRUC LABEL BYTE
 09CE  0600                  C3	        $M_ID   <00006H,$M_A_00006H_MSG-$M_A_00006H_STRUC>
 09D0  C900                  C3	
 09D2                        C3	$M_A_00007H_STRUC LABEL BYTE
 09D2  0700                  C3	        $M_ID   <00007H,$M_A_00007H_MSG-$M_A_00007H_STRUC>
 09D4  E200                  C3	
 09D6                        C3	$M_A_00008H_STRUC LABEL BYTE
 09D6  0800                  C3	        $M_ID   <00008H,$M_A_00008H_MSG-$M_A_00008H_STRUC>
 09D8  EC00                  C3	
 09DA                        C3	$M_A_00009H_STRUC LABEL BYTE
 09DA  0900                  C3	        $M_ID   <00009H,$M_A_00009H_MSG-$M_A_00009H_STRUC>
 09DC  F600                  C3	
 09DE                        C3	$M_A_0000AH_STRUC LABEL BYTE
 09DE  0A00                  C3	        $M_ID   <0000AH,$M_A_0000AH_MSG-$M_A_0000AH_STRUC>
 09E0  0701                  C3	
 09E2                        C3	$M_A_0000BH_STRUC LABEL BYTE
 09E2  0B00                  C3	        $M_ID   <0000BH,$M_A_0000BH_MSG-$M_A_0000BH_STRUC>
 09E4  1601                  C3	
 09E6                        C3	$M_A_0000CH_STRUC LABEL BYTE
 09E6  0C00                  C3	        $M_ID   <0000CH,$M_A_0000CH_MSG-$M_A_0000CH_STRUC>
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-27
DOS - Message Retriever - DISPMSG.ASM Module                

 09E8  2301                  C3	
 09EA                        C3	$M_A_0000DH_STRUC LABEL BYTE
 09EA  0D00                  C3	        $M_ID   <0000DH,$M_A_0000DH_MSG-$M_A_0000DH_STRUC>
 09EC  2E01                  C3	
 09EE                        C3	$M_A_0000EH_STRUC LABEL BYTE
 09EE  0E00                  C3	        $M_ID   <0000EH,$M_A_0000EH_MSG-$M_A_0000EH_STRUC>
 09F0  3E01                  C3	
 09F2                        C3	$M_A_0000FH_STRUC LABEL BYTE
 09F2  0F00                  C3	        $M_ID   <0000FH,$M_A_0000FH_MSG-$M_A_0000FH_STRUC>
 09F4  5001                  C3	
 09F6                        C3	$M_A_00010H_STRUC LABEL BYTE
 09F6  1000                  C3	        $M_ID   <00010H,$M_A_00010H_MSG-$M_A_00010H_STRUC>
 09F8  6901                  C3	
 09FA                        C3	$M_A_00011H_STRUC LABEL BYTE
 09FA  1100                  C3	        $M_ID   <00011H,$M_A_00011H_MSG-$M_A_00011H_STRUC>
 09FC  8A01                  C3	
 09FE                        C3	$M_A_00012H_STRUC LABEL BYTE
 09FE  1200                  C3	        $M_ID   <00012H,$M_A_00012H_MSG-$M_A_00012H_STRUC>
 0A00  A201                  C3	
 0A02                        C3	$M_A_00013H_STRUC LABEL BYTE
 0A02  1300                  C3	        $M_ID   <00013H,$M_A_00013H_MSG-$M_A_00013H_STRUC>
 0A04  B901                  C3	
 0A06                        C3	$M_A_00014H_STRUC LABEL BYTE
 0A06  1400                  C3	        $M_ID   <00014H,$M_A_00014H_MSG-$M_A_00014H_STRUC>
 0A08  C101                  C3	
 0A0A                        C3	$M_A_00015H_STRUC LABEL BYTE
 0A0A  1500                  C3	        $M_ID   <00015H,$M_A_00015H_MSG-$M_A_00015H_STRUC>
 0A0C  C001                  C3	
 0A0E                        C3	$M_A_00016H_STRUC LABEL BYTE
 0A0E  1600                  C3	        $M_ID   <00016H,$M_A_00016H_MSG-$M_A_00016H_STRUC>
 0A10  CD01                  C3	
 0A12                        C3	$M_A_00017H_STRUC LABEL BYTE
 0A12  1700                  C3	        $M_ID   <00017H,$M_A_00017H_MSG-$M_A_00017H_STRUC>
 0A14  DE01                  C3	
 0A16                        C3	$M_A_00001H_MSG LABEL BYTE
 0A16  17                    C3	        DB      $M_A_00001H_END-$M_A_00001H_MSG-1
 0A17  49 6E 63 6F 72 72     C3	        DB      "Incorrect DOS version",CR,LF
 0A2E                        C3	$M_A_00001H_END LABEL BYTE
 0A2E                        C3	$M_A_00002H_MSG LABEL BYTE
 0A2E  15                    C3	        DB      $M_A_00002H_END-$M_A_00002H_MSG-1
 0A2F  49 6E 73 75 66 66     C3	        DB      "Insufficient memory",CR,LF
 0A44                        C3	$M_A_00002H_END LABEL BYTE
 0A44                        C3	$M_A_00003H_MSG LABEL BYTE
 0A44  13                    C3	        DB      $M_A_00003H_END-$M_A_00003H_MSG-1
 0A45  49 6E 76 61 6C 69     C3	        DB      "Invalid parameter",CR,LF
 0A58                        C3	$M_A_00003H_END LABEL BYTE
 0A58                        C3	$M_A_00004H_MSG LABEL BYTE
 0A58  20                    C3	        DB      $M_A_00004H_END-$M_A_00004H_MSG-1
 0A59  31 30 20 4D 69 73     C3	        DB      "10 Mismatches - ending compare",CR,LF
 0A79                        C3	$M_A_00004H_END LABEL BYTE
 0A79                        C3	$M_A_00005H_MSG LABEL BYTE
 0A79  1D                    C3	        DB      $M_A_00005H_END-$M_A_00005H_MSG-1
 0A7A  49 6E 76 61 6C 69     C3	        DB      "Invalid drive specification",CR,LF
 0A97                        C3	$M_A_00005H_END LABEL BYTE
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-28
DOS - Message Retriever - DISPMSG.ASM Module                

 0A97                        C3	$M_A_00006H_MSG LABEL BYTE
 0A97  1C                    C3	        DB      $M_A_00006H_END-$M_A_00006H_MSG-1
 0A98  43 6F 6D 70 61 72     C3	        DB      "Compare error at OFFSET %1",CR,LF
 0AB4                        C3	$M_A_00006H_END LABEL BYTE
 0AB4                        C3	$M_A_00007H_MSG LABEL BYTE
 0AB4  0D                    C3	        DB      $M_A_00007H_END-$M_A_00007H_MSG-1
 0AB5  46 69 6C 65 20 31     C3	        DB      "File 1 = %1",CR,LF
 0AC2                        C3	$M_A_00007H_END LABEL BYTE
 0AC2                        C3	$M_A_00008H_MSG LABEL BYTE
 0AC2  0D                    C3	        DB      $M_A_00008H_END-$M_A_00008H_MSG-1
 0AC3  46 69 6C 65 20 32     C3	        DB      "File 2 = %1",CR,LF
 0AD0                        C3	$M_A_00008H_END LABEL BYTE
 0AD0                        C3	$M_A_00009H_MSG LABEL BYTE
 0AD0  14                    C3	        DB      $M_A_00009H_END-$M_A_00009H_MSG-1
 0AD1  45 4F 46 20 6D 61     C3	        DB      "EOF mark not found",CR,LF
 0AE5                        C3	$M_A_00009H_END LABEL BYTE
 0AE5                        C3	$M_A_0000AH_MSG LABEL BYTE
 0AE5  12                    C3	        DB      $M_A_0000AH_END-$M_A_0000AH_MSG-1
 0AE6  46 69 6C 65 73 20     C3	        DB      "Files compare OK",CR,LF
 0AF8                        C3	$M_A_0000AH_END LABEL BYTE
 0AF8                        C3	$M_A_0000BH_MSG LABEL BYTE
 0AF8  10                    C3	        DB      $M_A_0000BH_END-$M_A_0000BH_MSG-1
 0AF9  46 69 6C 65 20 6E     C3	        DB      "File not found",CR,LF
 0B09                        C3	$M_A_0000BH_END LABEL BYTE
 0B09                        C3	$M_A_0000CH_MSG LABEL BYTE
 0B09  0E                    C3	        DB      $M_A_0000CH_END-$M_A_0000CH_MSG-1
 0B0A  49 6E 76 61 6C 69     C3	        DB      "Invalid path",CR,LF
 0B18                        C3	$M_A_0000CH_END LABEL BYTE
 0B18                        C3	$M_A_0000DH_MSG LABEL BYTE
 0B18  13                    C3	        DB      $M_A_0000DH_END-$M_A_0000DH_MSG-1
 0B19  53 68 61 72 69 6E     C3	        DB      "Sharing violation",CR,LF
 0B2C                        C3	$M_A_0000DH_END LABEL BYTE
 0B2C                        C3	$M_A_0000EH_MSG LABEL BYTE
 0B2C  15                    C3	        DB      $M_A_0000EH_END-$M_A_0000EH_MSG-1
 0B2D  54 6F 6F 20 6D 61     C3	        DB      "Too many open files",CR,LF
 0B42                        C3	$M_A_0000EH_END LABEL BYTE
 0B42                        C3	$M_A_0000FH_MSG LABEL BYTE
 0B42  1C                    C3	        DB      $M_A_0000FH_END-$M_A_0000FH_MSG-1
 0B43  0D 0A 0D 0A 45 6E     C3	        DB      CR,LF,CR,LF,"Enter primary filename",CR,LF
 0B5F                        C3	$M_A_0000FH_END LABEL BYTE
 0B5F                        C3	$M_A_00010H_MSG LABEL BYTE
 0B5F  24                    C3	        DB      $M_A_00010H_END-$M_A_00010H_MSG-1
 0B60  0D 0A 0D 0A 45 6E     C3	        DB      CR,LF,CR,LF,"Enter 2nd filename or drive id",CR,LF
 0B84                        C3	$M_A_00010H_END LABEL BYTE
 0B84                        C3	$M_A_00011H_MSG LABEL BYTE
 0B84  1B                    C3	        DB      $M_A_00011H_END-$M_A_00011H_MSG-1
 0B85  46 69 6C 65 73 20     C3	        DB      "Files are different sizes",CR,LF
 0BA0                        C3	$M_A_00011H_END LABEL BYTE
 0BA0                        C3	$M_A_00012H_MSG LABEL BYTE
 0BA0  1A                    C3	        DB      $M_A_00012H_END-$M_A_00012H_MSG-1
 0BA1  43 6F 6D 70 61 72     C3	        DB      "Compare more files (Y/N) ?"
 0BBB                        C3	$M_A_00012H_END LABEL BYTE
 0BBB                        C3	$M_A_00013H_MSG LABEL BYTE
 0BBB  0B                    C3	        DB      $M_A_00013H_END-$M_A_00013H_MSG-1
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-29
DOS - Message Retriever - DISPMSG.ASM Module                

 0BBC  25 31 20 61 6E 64     C3	        DB      "%1 and %2",CR,LF
 0BC7                        C3	$M_A_00013H_END LABEL BYTE
 0BC7                        C3	$M_A_00014H_MSG LABEL BYTE
 0BC7  02                    C3	        DB      $M_A_00014H_END-$M_A_00014H_MSG-1
 0BC8  0D 0A                 C3	        DB      CR,LF
 0BCA                        C3	$M_A_00014H_END LABEL BYTE
 0BCA                        C3	$M_A_00015H_MSG LABEL BYTE
 0BCA  10                    C3	        DB      $M_A_00015H_END-$M_A_00015H_MSG-1
 0BCB  41 63 63 65 73 73     C3	        DB      "Access denied ",CR,LF
 0BDB                        C3	$M_A_00015H_END LABEL BYTE
 0BDB                        C3	$M_A_00016H_MSG LABEL BYTE
 0BDB  14                    C3	        DB      $M_A_00016H_END-$M_A_00016H_MSG-1
 0BDC  43 6F 64 65 20 70     C3	        DB      "Code page mismatch",CR,LF
 0BF0                        C3	$M_A_00016H_END LABEL BYTE
 0BF0                        C3	$M_A_00017H_MSG LABEL BYTE
 0BF0  12                    C3	        DB      $M_A_00017H_END-$M_A_00017H_MSG-1
 0BF1  46 69 6C 65 73 20     C3	        DB      "Files compare OK",CR,LF
 0C03                        C3	$M_A_00017H_END LABEL BYTE
 0C03                        C3	$M_CLS_1 PROC NEAR
 0C03  0E                    C3	        PUSH    CS
 0C04  07                    C3	        POP     ES
 0C05  8D 3E 09B6 R          C3	        LEA     DI,$M_CLASS_A_STRUC
 0C09  81 C1 0253            C3	        ADD     CX,$-$M_CLASS_A_STRUC
 0C0D  C3                    C3	        RET
 0C0E                        C3	$M_CLS_1 ENDP
 0C0E                        C3	$M_CLASS_1_STRUC LABEL BYTE
 0C0E  01                    C3	        $M_CLASS_ID <001H,EXPECTED_VERSION,Class_1_MessageCount>
 0C0F  0400                  C3	
 0C11  01                    C3	
 0C12                        C3	$M_1_FF_STRUC LABEL BYTE
 0C12  FFFF                  C3	        $M_ID <0FFFFH,$M_1_FF_MSG-$M_1_FF_STRUC>
 0C14  0400                  C3	
 0C16                        C3	$M_1_FF_MSG LABEL BYTE
 0C16  11                    C3	        DB      $M_1_FF_END-$M_1_FF_MSG-1
 0C17  45 78 74 65 6E 64     C3	        DB      "Extended Error %1"
 0C28                        C3	$M_1_FF_END LABEL BYTE
 0C28                        C3	$M_MSGSERV_1 PROC NEAR
 0C28  0E                    C3	        PUSH    CS
 0C29  07                    C3	        POP     ES
 0C2A  8D 3E 0C0E R          C3	        LEA     DI,$M_CLASS_1_STRUC
 0C2E  83 C1 20              C3	        ADD     CX,$-$M_CLASS_1_STRUC
 0C31  C3                    C3	        RET
 0C32                        C3	$M_MSGSERV_1 Endp
 0C32                        C3	$M_CLASS_2_STRUC LABEL BYTE
 0C32  02                    C3	        $M_CLASS_ID <002H,EXPECTED_VERSION,Class_2_MessageCount>
 0C33  0400                  C3	
 0C35  01                    C3	
 0C36                        C3	$M_2_FF_STRUC LABEL BYTE
 0C36  FFFF                  C3	        $M_ID <0FFFFH,$M_2_FF_MSG-$M_2_FF_STRUC>
 0C38  0400                  C3	
 0C3A                        C3	$M_2_FF_MSG LABEL BYTE
 0C3A  0E                    C3	        DB      $M_2_FF_END-$M_2_FF_MSG-1
 0C3B  50 61 72 73 65 20     C3	        DB      "Parse Error %1"
 0C49                        C3	$M_2_FF_END LABEL BYTE
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-30
DOS - Message Retriever - DISPMSG.ASM Module                

 0C49                        C3	$M_MSGSERV_2 PROC NEAR
 0C49  0E                    C3	        PUSH    CS
 0C4A  07                    C3	        POP     ES
 0C4B  8D 3E 0C32 R          C3	        LEA     DI,$M_CLASS_2_STRUC
 0C4F  83 C1 1D              C3	        ADD     CX,$-$M_CLASS_2_STRUC
 0C52  C3                    C3	        RET
 0C53                        C3	$M_MSGSERV_2 Endp
				; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =	 ;AN000;
 0C53				CSEG	   ENDS 							 ;AN000;
				
					include msgdcl.inc
			     C	; This Macro was removed from sysmsg.inc. We had to remove this
			     C	; macro and put it into it's own include file in order to clear up
			     C	; some assembly errors. MS MASM will not allow a public declaration
			     C	; during the second pass of the assembler. IBM MASM will allow this.
			     C	;
			     C	;
			     C	;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;	$M_DECLARE	     Macro
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C					       ;
			     C	$M_DECLARE    macro	numcls	       ;
			     C	   $M_DCOUNT = 0		       ;
			     C	   REPT  numcls 		       ;
			     C	     $M_DCOUNT =  $M_DCOUNT + 1        ;
			     C	     $M_DECLARE2  %$M_DCOUNT	       ;
			     C	   ENDM 			       ;
			     C	
			     C	  IF COMR
			     C	    IFNDEF $M_RT2			;  If Resident table is not in this assembly,
			     C		EXTRN	$M_RT2:BYTE		;     Must be external
			     C	    ELSE
			     C		PUBLIC	$M_RT2
			     C	    ENDIF				;
			     C	  ELSE
			     C	    IFNDEF $M_RT			;  If Resident table is not in this assembly,
			     C		EXTRN	$M_RT:BYTE		;     Must be external
			     C	    ELSE
			     C		PUBLIC	$M_RT
			     C	    ENDIF				;
			     C	  ENDIF
			     C	
			     C	  $M_CHECK $M_GET_MSG_ADDRESS	      ;  If this subroutine is not in this assembly,
			     C	  $M_CHECK $M_MSGSERV_1 	      ;  If this subroutine is not in this assembly,
			     C	  $M_CHECK $M_MSGSERV_2 	      ;  If this subroutine is not in this assembly,
			     C	
			     C	ENDM				       ;
			     C					       ;
			     C	$M_DECLARE2   macro   innum	       ;
			     C	  IF NOT COMR			       ; IF Not resident COMMAND.COM
			     C	    IF NOT COMT 			 ; IF Not transient COMMAND.COM
			     C	      IFNDEF  $M_CLS_&innum		 ; IF class is not in this assembly,
			     C		IF	FARmsg			 ;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-31
DOS - Message Retriever - DISPMSG.ASM Module                

			     C		  EXTRN   $M_CLS_&innum:FAR	 ;    Must be external
			     C		ELSE				 ;
			     C		  EXTRN   $M_CLS_&innum:NEAR	 ;    Must be external
			     C		ENDIF				 ;
			     C	      ELSE				 ; ELSE
			     C		PUBLIC	$M_CLS_&innum		 ;    Label PUBLIC
			     C	      ENDIF				 ;
			     C	    ELSE				 ; ELSE
			     C	      IFDIF  <$M_CLS_&innum>,<$M_CLS_1>  ; IF NOT $M_CLS_1 or
			     C		IFDIF <$M_CLS_&innum>,<$M_CLS_2> ;   IF NOT $M_CLS_2 then
			     C		  IFNDEF  $M_CLS_&innum 	 ;     IF class is not in this assembly,
			     C		    IF	    FARmsg		 ;
			     C		      EXTRN   $M_CLS_&innum:FAR  ;	 Must be external
			     C		    ELSE			 ;
			     C		      EXTRN   $M_CLS_&innum:NEAR ;	 Must be external
			     C		    ENDIF			 ;
			     C		  ELSE				 ;     ELSE
			     C		    PUBLIC  $M_CLS_&innum	 ;	 Label PUBLIC
			     C		  ENDIF 			 ;
			     C		ENDIF				 ;
			     C	      ENDIF				 ;
			     C	    ENDIF				 ;
			     C	  ELSE					 ; ELSE
			     C	    IFDIF  <$M_CLS_&innum>,<$M_CLS_1>	 ; IF NOT $M_CLS_1 or
			     C	      IFDIF <$M_CLS_&innum>,<$M_CLS_2>	 ;   IF NOT $M_CLS_2 then
			     C		IFNDEF	$M_CLS_&innum		 ;     IF class is not in this assembly,
			     C		  IF	  FARmsg		 ;
			     C		    EXTRN   $M_CLS_&innum:FAR	 ;	 Must be external
			     C		  ELSE				 ;
			     C		    EXTRN   $M_CLS_&innum:NEAR	 ;	 Must be external
			     C		  ENDIF 			 ;
			     C		ELSE				 ;     ELSE
			     C		  PUBLIC  $M_CLS_&innum 	 ;	 Label PUBLIC
			     C		ENDIF				 ;
			     C	      ENDIF				 ;
			     C	    ENDIF				 ;
			     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					       ;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Page     1-32
DOS - Message Retriever - DISPMSG.ASM Module                

			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C					       ;
			     C					       ;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	
			     C	
				
					   END								 ;AN000;

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           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
HEADER . . . . . . . . . . . . .  	   4
MSG_SERVICES . . . . . . . . . .  	  34
MSG_SERVICES2  . . . . . . . . .  	  14
MSG_UTILNAME . . . . . . . . . .  	   5

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  . . . . . . . .  	0056	000A
  $M_HEADER  . . . . . . . . . .  	0000
  $M_DATE_FORMAT . . . . . . . .  	0044
  $M_CURR_SEPARA . . . . . . . .  	0046
  $M_THOU_SEPARA . . . . . . . .  	004B
  $M_DECI_SEPARA . . . . . . . .  	004D
  $M_DATE_SEPARA . . . . . . . .  	004F
  $M_TIME_SEPARA . . . . . . . .  	0051
  $M_CURR_FORMAT . . . . . . . .  	0053
  $M_SIG_DIGS_CU . . . . . . . .  	0054
  $M_TIME_FORMAT . . . . . . . .  	0055
$M_ID  . . . . . . . . . . . . .  	0004	0002
  $M_NUM . . . . . . . . . . . .  	0000
  $M_TXT_PTR . . . . . . . . . .  	0002
$M_RES_ADDRS . . . . . . . . . .  	0085	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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-2


  $M_CLS_TERM  . . . . . . . . .  	0030
  $M_DBCS_VEC  . . . . . . . . .  	0034
  $M_HANDLE  . . . . . . . . . .  	0038
  $M_SIZE  . . . . . . . . . . .  	003A
  $M_CRLF  . . . . . . . . . . .  	003B
  $M_CLASS . . . . . . . . . . .  	003D
  $M_RETURN_ADDR . . . . . . . .  	003E
  $M_MSG_NUM . . . . . . . . . .  	0040
  $M_DIVISOR . . . . . . . . . .  	0042
  $M_TEMP_BUF  . . . . . . . . .  	0044
  $M_BUF_TERM  . . . . . . . . .  	0084
$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
MSG_DESC . . . . . . . . . . . .  	000A	0005
  MSG_NUM  . . . . . . . . . . .  	0000
  MSG_HANDLE . . . . . . . . . .  	0002
  MSG_SUBLIST  . . . . . . . . .  	0004
  MSG_COUNT  . . . . . . . . . .  	0006
  MSG_CLASS  . . . . . . . . . .  	0008
SF_BITS  . . . . . . . . . . . .  	0008	0004
  F_ALIGN  . . . . . . . . . . .  	0007	0001	0080	0000
  F_RES  . . . . . . . . . . . .  	0006	0001	0040	0000
  F_SIZE . . . . . . . . . . . .  	0004	0002	0030	0000
  F_TYPE . . . . . . . . . . . .  	0000	0004	000F	0000
SUBLIST  . . . . . . . . . . . .  	000B	0009
  SUB_SIZE . . . . . . . . . . .  	0000
  SUB_RES  . . . . . . . . . . .  	0001
  SUB_VALUE  . . . . . . . . . .  	0002
  SUB_VALUE_SEG  . . . . . . . .  	0004
  SUB_ID . . . . . . . . . . . .  	0006
  SUB_FLAGS  . . . . . . . . . .  	0007
  SUB_MAX_WIDTH  . . . . . . . .  	0008
  SUB_MIN_WIDTH  . . . . . . . .  	0009
  SUB_PAD_CHAR . . . . . . . . .  	000A

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

CSEG . . . . . . . . . . . . . .  	0C53	PARA	PUBLIC	'CODE'
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-3


Symbols:            

                N a m e         	Type	 Value	 Attr

ACTION_39  . . . . . . . . . . .  	NUMBER	0004	
ALT_EXPECTED_VERSION . . . . . .  	NUMBER	1A05	
ALT_GOOD_DOS . . . . . . . . . .  	L NEAR	03C4	CSEG
ALT_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
ALT_MINOR_VERSION  . . . . . . .  	NUMBER	001A	
AMIS_ID  . . . . . . . . . . . .  	L NEAR	028A	CSEG
AMIS_ID_MSG  . . . . . . . . . .  	L NEAR	028F	CSEG
AMIS_ID_MSG_END  . . . . . . . .  	L NEAR	0293	CSEG
amis_sign  . . . . . . . . . . .  	L NEAR	027A	CSEG	Global
AMIS_SIGN_SEGMENT  . . . . . . .  	ALIAS	 CSEG		

BELL . . . . . . . . . . . . . .  	NUMBER	0007	
BIN_HEX_BYTE . . . . . . . . . .  	NUMBER	0013	
BIN_HEX_DWORD  . . . . . . . . .  	NUMBER	0033	
BIN_HEX_TYPE . . . . . . . . . .  	NUMBER	0003	
BIN_HEX_WORD . . . . . . . . . .  	NUMBER	0023	

CHARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
CHAR_FIELD_ASCIIZ  . . . . . . .  	NUMBER	0010	
CHAR_FIELD_CHAR  . . . . . . . .  	NUMBER	0000	
CHAR_TYPE  . . . . . . . . . . .  	NUMBER	0000	
CHECK_AMIS . . . . . . . . . . .  	L NEAR	0368	CSEG
CHECK_AMIS_DONE  . . . . . . . .  	L NEAR	039F	CSEG
CHECK_AMIS_LOOP  . . . . . . . .  	L NEAR	0371	CSEG
CHECK_AMIS_NEXT  . . . . . . . .  	L NEAR	039A	CSEG
CHECK_AMIS_UNSUP . . . . . . . .  	L NEAR	039E	CSEG
CLASS_1  . . . . . . . . . . . .  	ALIAS	 EXT_ERR_CLASS		
CLASS_1_MESSAGECOUNT . . . . . .  	NUMBER	0001	
CLASS_2  . . . . . . . . . . . .  	ALIAS	 PARSE_ERR_CLASS		
CLASS_2_MESSAGECOUNT . . . . . .  	NUMBER	0001	
CLASS_A  . . . . . . . . . . . .  	ALIAS	 UTILITY_MSG_CLASS		
CLASS_A_MESSAGECOUNT . . . . . .  	NUMBER	0017	
COLON  . . . . . . . . . . . . .  	NUMBER	003A	
COMR . . . . . . . . . . . . . .  	NUMBER	0000	
COMT . . . . . . . . . . . . . .  	NUMBER	0000	
COPYRIGHT  . . . . . . . . . . .  	L BYTE	0000	CSEG	Global
CR . . . . . . . . . . . . . . .  	NUMBER	000D	

DATEMSG  . . . . . . . . . . . .  	NUMBER	0000	
DATE_MD  . . . . . . . . . . . .  	NUMBER	0014	
DATE_MDY_2 . . . . . . . . . . .  	NUMBER	0024	
DATE_MDY_4 . . . . . . . . . . .  	NUMBER	0034	
DATE_TYPE  . . . . . . . . . . .  	NUMBER	0004	
DISK_PROC  . . . . . . . . . . .  	NUMBER	0000	
DISPLAYMSG . . . . . . . . . . .  	NUMBER	0000	
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	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-4


DOS_DIR_CON_INP  . . . . . . . .  	NUMBER	0007	
DOS_DISP_CHAR  . . . . . . . . .  	NUMBER	0002	
DOS_DISP_STRING  . . . . . . . .  	NUMBER	0009	
DOS_EXTENDED_OPEN  . . . . . . .  	NUMBER	6C00	
DOS_GET_ADDR . . . . . . . . . .  	NUMBER	0008	
DOS_GET_COUNTRY  . . . . . . . .  	NUMBER	0038	
DOS_GET_CRITICAL . . . . . . . .  	NUMBER	0004	
DOS_GET_DBCS_INFO  . . . . . . .  	NUMBER	6300	
DOS_GET_EXTENDED . . . . . . . .  	NUMBER	0000	
DOS_GET_EXT_ERROR  . . . . . . .  	NUMBER	0059	
DOS_GET_EXT_ERROR_BX . . . . . .  	NUMBER	0000	
DOS_GET_EXT_PARSE_ADD  . . . . .  	NUMBER	122E	
DOS_GET_FILE . . . . . . . . . .  	NUMBER	0006	
DOS_GET_PARSE  . . . . . . . . .  	NUMBER	0002	
DOS_GET_VERSION  . . . . . . . .  	NUMBER	0030	
DOS_IOCTL_GET_INFO . . . . . . .  	NUMBER	4400	
DOS_IOCTL_SET_INFO . . . . . . .  	NUMBER	4401	
DOS_KEYB_INP . . . . . . . . . .  	NUMBER	0001	
DOS_LSEEK_FILE . . . . . . . . .  	NUMBER	4200	
DOS_READ_BYTE  . . . . . . . . .  	NUMBER	003F	
DOS_SET_ADDR . . . . . . . . . .  	NUMBER	0009	
DOS_WRITE_HANDLE . . . . . . . .  	NUMBER	0040	

ERROR_CLASS_39 . . . . . . . . .  	NUMBER	0001	
EXPECTED_VERSION . . . . . . . .  	NUMBER	0004	
EXT_ERR_39 . . . . . . . . . . .  	NUMBER	0027	
EXT_ERR_CLASS  . . . . . . . . .  	NUMBER	0001	

FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
FARMSG . . . . . . . . . . . . .  	NUMBER	0000	
FILL_OFF . . . . . . . . . . . .  	NUMBER	0000	
FILL_SEG . . . . . . . . . . . .  	NUMBER	0000	
FORMFD . . . . . . . . . . . . .  	NUMBER	000C	
F_ALIGN  . . . . . . . . . . . .  		0007	
F_RES  . . . . . . . . . . . . .  		0006	
F_SIZE . . . . . . . . . . . . .  		0004	
F_TYPE . . . . . . . . . . . . .  		0000	

GETMSG . . . . . . . . . . . . .  	NUMBER	0000	

HOME . . . . . . . . . . . . . .  	NUMBER	000B	

IFSFUNC_INSTALLED  . . . . . . .  	NUMBER	00FF	
IFSFUNC_INSTALL_CHECK  . . . . .  	NUMBER	0500	
IFS_GET_ERR_TEXT . . . . . . . .  	NUMBER	0502	
INPUTMSG . . . . . . . . . . . .  	NUMBER	0000	

LEFT_ALIGN . . . . . . . . . . .  	NUMBER	0000	
LF . . . . . . . . . . . . . . .  	NUMBER	000A	
LOADMSG  . . . . . . . . . . . .  	NUMBER	0000	
LOCUS_39 . . . . . . . . . . . .  	NUMBER	0001	
LOWEST_4CH_VERSION . . . . . . .  	NUMBER	0002	
LOW_NIB_MASK . . . . . . . . . .  	NUMBER	000F	

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-5


MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MAX_0  . . . . . . . . . . . . .  	NUMBER	0000	
MINOR_VERSION  . . . . . . . . .  	NUMBER	0000	
MIN_1  . . . . . . . . . . . . .  	NUMBER	0001	
MSGDATA  . . . . . . . . . . . .  	NUMBER	0000	
MSGNUM_ACCESSDENIED  . . . . . .  	L TBYTE	0157	CSEG	Global
MSGNUM_ADR . . . . . . . . . . .  	L TBYTE	007A	CSEG	Global
MSGNUM_AND_MSG . . . . . . . . .  	L TBYTE	012D	CSEG	Global
MSGNUM_BAD . . . . . . . . . . .  	L TBYTE	0065	CSEG	Global
MSGNUM_BADDRV  . . . . . . . . .  	L TBYTE	005B	CSEG	Global
MSGNUM_BADSIZ  . . . . . . . . .  	L TBYTE	0119	CSEG	Global
MSGNUM_BAD_PATH  . . . . . . . .  	L TBYTE	00CD	CSEG	Global
MSGNUM_BDR . . . . . . . . . . .  	L TBYTE	008F	CSEG	Global
MSGNUM_CP_MISMATCH . . . . . . .  	L TBYTE	016C	CSEG	Global
MSGNUM_CRLF  . . . . . . . . . .  	L TBYTE	014D	CSEG	Global
MSGNUM_DONE  . . . . . . . . . .  	L TBYTE	00AE	CSEG	Global
MSGNUM_EOR . . . . . . . . . . .  	L TBYTE	00A4	CSEG	Global
MSGNUM_EXTERR  . . . . . . . . .  	L TBYTE	0014	CSEG	Global
MSGNUM_FNF . . . . . . . . . . .  	L TBYTE	00B8	CSEG	Global
MSGNUM_MEM . . . . . . . . . . .  	L TBYTE	003D	CSEG	Global
MSGNUM_NOTHER  . . . . . . . . .  	L TBYTE	0123	CSEG	Global
MSGNUM_OK  . . . . . . . . . . .  	L TBYTE	0176	CSEG	Global
MSGNUM_PARA  . . . . . . . . . .  	L TBYTE	0047	CSEG	Global
MSGNUM_PARSE . . . . . . . . . .  	L TBYTE	001E	CSEG	Global
MSGNUM_PPARSE  . . . . . . . . .  	L TBYTE	0180	CSEG	Global
MSGNUM_PRINAM  . . . . . . . . .  	L TBYTE	0101	CSEG	Global
MSGNUM_SECNAM  . . . . . . . . .  	L TBYTE	010D	CSEG	Global
MSGNUM_SHARE . . . . . . . . . .  	L TBYTE	00E2	CSEG	Global
MSGNUM_TENMSG  . . . . . . . . .  	L TBYTE	0051	CSEG	Global
MSGNUM_TOO_MANY  . . . . . . . .  	L TBYTE	00F7	CSEG	Global
MSGNUM_VER . . . . . . . . . . .  	L TBYTE	0028	CSEG	Global
MSG_SER_CLASS  . . . . . . . . .  	NUMBER	0000	

NEARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
NEW_EXPECTED_VERSION . . . . . .  	NUMBER	2605	
NEW_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
NEW_MINOR_VERSION  . . . . . . .  	NUMBER	0026	
NOCHECKSTDIN . . . . . . . . . .  	NUMBER	0000	
NOCHECKSTDOUT  . . . . . . . . .  	NUMBER	0000	
NOT_EX_FAIL_EX_OPEN  . . . . . .  	NUMBER	0101	
NOVERCHECKMSG  . . . . . . . . .  	NUMBER	0000	
NO_CRIT_OPEN . . . . . . . . . .  	NUMBER	2000	
NO_HANDLE  . . . . . . . . . . .  	NUMBER	FFFF	
NO_INPUT . . . . . . . . . . . .  	NUMBER	0000	
NO_REPLACE . . . . . . . . . . .  	NUMBER	0000	
NULL . . . . . . . . . . . . . .  	NUMBER	0000	
NUMMSG . . . . . . . . . . . . .  	NUMBER	FFFF	

ONE_SUBS . . . . . . . . . . . .  	NUMBER	0001	

PAD_BLK  . . . . . . . . . . . .  	NUMBER	0020	
PARSE_ERR_CLASS  . . . . . . . .  	NUMBER	0002	
PC_ID_0  . . . . . . . . . . . .  	NUMBER	0000	
PC_ID_1  . . . . . . . . . . . .  	NUMBER	0001	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-6


PC_ID_2  . . . . . . . . . . . .  	NUMBER	0002	
PC_ID_3  . . . . . . . . . . . .  	NUMBER	0003	

RESERVED . . . . . . . . . . . .  	NUMBER	0000	
RIGHT_ALIGN  . . . . . . . . . .  	NUMBER	0080	

SETSTDIO . . . . . . . . . . . .  	NUMBER	0000	
SF_ASCIIZ  . . . . . . . . . . .  	NUMBER	0001	
SF_BYTE  . . . . . . . . . . . .  	NUMBER	0001	
SF_CH  . . . . . . . . . . . . .  	NUMBER	0000	
SF_CHAR  . . . . . . . . . . . .  	NUMBER	0000	
SF_DATE  . . . . . . . . . . . .  	NUMBER	0004	
SF_DWORD . . . . . . . . . . . .  	NUMBER	0003	
SF_HHMM  . . . . . . . . . . . .  	NUMBER	0000	
SF_HHMMSS  . . . . . . . . . . .  	NUMBER	0001	
SF_HHMMSSHH  . . . . . . . . . .  	NUMBER	0002	
SF_LEFT  . . . . . . . . . . . .  	NUMBER	0000	
SF_MD  . . . . . . . . . . . . .  	NUMBER	0001	
SF_MDY2  . . . . . . . . . . . .  	NUMBER	0002	
SF_MDY4  . . . . . . . . . . . .  	NUMBER	0003	
SF_RIGHT . . . . . . . . . . . .  	NUMBER	0001	
SF_SIN_BD  . . . . . . . . . . .  	NUMBER	0002	
SF_TIME_12 . . . . . . . . . . .  	NUMBER	0005	
SF_TIME_24 . . . . . . . . . . .  	NUMBER	0006	
SF_UN_BD . . . . . . . . . . . .  	NUMBER	0001	
SF_UN_BH . . . . . . . . . . . .  	NUMBER	0003	
SF_WORD  . . . . . . . . . . . .  	NUMBER	0002	
SGN_BIN_BYTE . . . . . . . . . .  	NUMBER	0012	
SGN_BIN_DWORD  . . . . . . . . .  	NUMBER	0032	
SGN_BIN_TYPE . . . . . . . . . .  	NUMBER	0002	
SGN_BIN_WORD . . . . . . . . . .  	NUMBER	0022	
STDAUX . . . . . . . . . . . . .  	NUMBER	0003	
STDERR . . . . . . . . . . . . .  	NUMBER	0002	
STDIN  . . . . . . . . . . . . .  	NUMBER	0000	
STDOUT . . . . . . . . . . . . .  	NUMBER	0001	
STDPRN . . . . . . . . . . . . .  	NUMBER	0004	
SUBLIST_11 . . . . . . . . . . .  	L 	00C2	CSEG	Global
SUBLIST_12 . . . . . . . . . . .  	L 	00D7	CSEG	Global
SUBLIST_13 . . . . . . . . . . .  	L 	00EC	CSEG	Global
SUBLIST_19A  . . . . . . . . . .  	L 	0137	CSEG	Global
SUBLIST_19B  . . . . . . . . . .  	L 	0142	CSEG	Global
SUBLIST_21 . . . . . . . . . . .  	L 	0161	CSEG	Global
SUBLIST_24 . . . . . . . . . . .  	L 	018A	CSEG	Global
SUBLIST_6  . . . . . . . . . . .  	L 	006F	CSEG	Global
SUBLIST_7  . . . . . . . . . . .  	L 	0084	CSEG	Global
SUBLIST_8  . . . . . . . . . . .  	L 	0099	CSEG	Global
SUBLIST_EXTERR . . . . . . . . .  	L 	0032	CSEG	Global
SUBLIST_LENGTH . . . . . . . . .  	NUMBER	000B	
SYSDISPMSG . . . . . . . . . . .  	N PROC	0524	CSEG	Global	Length = 004E
SYSGETMSG  . . . . . . . . . . .  	N PROC	03E0	CSEG	Global	Length = 001C
SYSLOADMSG . . . . . . . . . . .  	N PROC	0293	CSEG	Global	Length = 0097

TAB  . . . . . . . . . . . . . .  	NUMBER	0009	
THREE_SUBS . . . . . . . . . . .  	NUMBER	0003	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-7


TIMEMSG  . . . . . . . . . . . .  	NUMBER	0000	
TIME_24_TYPE . . . . . . . . . .  	NUMBER	0006	
TIME_CTY_TYPE  . . . . . . . . .  	NUMBER	0005	
TIME_HHMMSSHH_24 . . . . . . . .  	NUMBER	0026	
TIME_HHMMSSHH_CTY  . . . . . . .  	NUMBER	0025	
TIME_HHMMSS_24 . . . . . . . . .  	NUMBER	0016	
TIME_HHMMSS_CTY  . . . . . . . .  	NUMBER	0015	
TIME_HHMM_24 . . . . . . . . . .  	NUMBER	0006	
TIME_HHMM_CTY  . . . . . . . . .  	NUMBER	0005	
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TWO_SUBS . . . . . . . . . . . .  	NUMBER	0002	

UNSGN_BIN_BYTE . . . . . . . . .  	NUMBER	0011	
UNSGN_BIN_DWORD  . . . . . . . .  	NUMBER	0031	
UNSGN_BIN_TYPE . . . . . . . . .  	NUMBER	0001	
UNSGN_BIN_WORD . . . . . . . . .  	NUMBER	0021	
UTILITY_MSG_CLASS  . . . . . . .  	NUMBER	00FF	

$MDO123  . . . . . . . . . . . .  	L NEAR	05D2	CSEG
$MDO139  . . . . . . . . . . . .  	L NEAR	063A	CSEG
$MDO145  . . . . . . . . . . . .  	L NEAR	065C	CSEG
$MDO165  . . . . . . . . . . . .  	L NEAR	06BE	CSEG
$MDO167  . . . . . . . . . . . .  	L NEAR	06C8	CSEG
$MDO175  . . . . . . . . . . . .  	L NEAR	06F4	CSEG
$MDO215  . . . . . . . . . . . .  	L NEAR	07BF	CSEG
$MDO280  . . . . . . . . . . . .  	L NEAR	0811	CSEG
$MDO291  . . . . . . . . . . . .  	L NEAR	083C	CSEG
$MDO301  . . . . . . . . . . . .  	L NEAR	086A	CSEG
$MDO310  . . . . . . . . . . . .  	L NEAR	0890	CSEG
$MDO321  . . . . . . . . . . . .  	L NEAR	08D2	CSEG
$MDO36 . . . . . . . . . . . . .  	L NEAR	0402	CSEG
$MDO76 . . . . . . . . . . . . .  	L NEAR	04EA	CSEG
$MEN104  . . . . . . . . . . . .  	L NEAR	0571	CSEG
$MEN107  . . . . . . . . . . . .  	L NEAR	0586	CSEG
$MEN110  . . . . . . . . . . . .  	L NEAR	05A7	CSEG
$MEN119  . . . . . . . . . . . .  	L NEAR	05DF	CSEG
$MEN123  . . . . . . . . . . . .  	L NEAR	05DF	CSEG
$MEN128  . . . . . . . . . . . .  	L NEAR	060E	CSEG
$MEN139  . . . . . . . . . . . .  	L NEAR	0651	CSEG
$MEN145  . . . . . . . . . . . .  	L NEAR	06B5	CSEG
$MEN146  . . . . . . . . . . . .  	L NEAR	0672	CSEG
$MEN150  . . . . . . . . . . . .  	L NEAR	06B0	CSEG
$MEN154  . . . . . . . . . . . .  	L NEAR	06B0	CSEG
$MEN165  . . . . . . . . . . . .  	L NEAR	07AA	CSEG
$MEN167  . . . . . . . . . . . .  	L NEAR	06E5	CSEG
$MEN175  . . . . . . . . . . . .  	L NEAR	070D	CSEG
$MEN180  . . . . . . . . . . . .  	L NEAR	071F	CSEG
$MEN187  . . . . . . . . . . . .  	L NEAR	0752	CSEG
$MEN188  . . . . . . . . . . . .  	L NEAR	0740	CSEG
$MEN192  . . . . . . . . . . . .  	L NEAR	0752	CSEG
$MEN199  . . . . . . . . . . . .  	L NEAR	0791	CSEG
$MEN20 . . . . . . . . . . . . .  	L NEAR	0329	CSEG
$MEN200  . . . . . . . . . . . .  	L NEAR	0789	CSEG
$MEN202  . . . . . . . . . . . .  	L NEAR	0789	CSEG
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-8


$MEN211  . . . . . . . . . . . .  	L NEAR	079E	CSEG
$MEN25 . . . . . . . . . . . . .  	L NEAR	03DF	CSEG
$MEN27 . . . . . . . . . . . . .  	L NEAR	03D4	CSEG
$MEN292  . . . . . . . . . . . .  	L NEAR	084F	CSEG
$MEN307  . . . . . . . . . . . .  	L NEAR	0898	CSEG
$MEN314  . . . . . . . . . . . .  	L NEAR	08B8	CSEG
$MEN317  . . . . . . . . . . . .  	L NEAR	08DF	CSEG
$MEN32 . . . . . . . . . . . . .  	L NEAR	03F5	CSEG
$MEN321  . . . . . . . . . . . .  	L NEAR	08DD	CSEG
$MEN325  . . . . . . . . . . . .  	L NEAR	096C	CSEG
$MEN333  . . . . . . . . . . . .  	L NEAR	096C	CSEG
$MEN36 . . . . . . . . . . . . .  	L NEAR	0463	CSEG
$MEN37 . . . . . . . . . . . . .  	L NEAR	0434	CSEG
$MEN388  . . . . . . . . . . . .  	L NEAR	098C	CSEG
$MEN39 . . . . . . . . . . . . .  	L NEAR	0434	CSEG
$MEN392  . . . . . . . . . . . .  	L NEAR	09AB	CSEG
$MEN396  . . . . . . . . . . . .  	L NEAR	09B5	CSEG
$MEN41 . . . . . . . . . . . . .  	L NEAR	0434	CSEG
$MEN46 . . . . . . . . . . . . .  	L NEAR	045B	CSEG
$MEN47 . . . . . . . . . . . . .  	L NEAR	044D	CSEG
$MEN57 . . . . . . . . . . . . .  	L NEAR	0483	CSEG
$MEN60 . . . . . . . . . . . . .  	L NEAR	0490	CSEG
$MEN64 . . . . . . . . . . . . .  	L NEAR	04E7	CSEG
$MEN65 . . . . . . . . . . . . .  	L NEAR	04CB	CSEG
$MEN69 . . . . . . . . . . . . .  	L NEAR	04E3	CSEG
$MEN76 . . . . . . . . . . . . .  	L NEAR	0507	CSEG
$MEN78 . . . . . . . . . . . . .  	L NEAR	04FB	CSEG
$MEN93 . . . . . . . . . . . . .  	L NEAR	0563	CSEG
$MEN94 . . . . . . . . . . . . .  	L NEAR	0548	CSEG
$MEN97 . . . . . . . . . . . . .  	L NEAR	055D	CSEG
$MIF104  . . . . . . . . . . . .  	L NEAR	056D	CSEG
$MIF107  . . . . . . . . . . . .  	L NEAR	0583	CSEG
$MIF110  . . . . . . . . . . . .  	L NEAR	0597	CSEG
$MIF112  . . . . . . . . . . . .  	L NEAR	05A7	CSEG
$MIF113  . . . . . . . . . . . .  	L NEAR	05A7	CSEG
$MIF117  . . . . . . . . . . . .  	L NEAR	05AC	CSEG
$MIF119  . . . . . . . . . . . .  	L NEAR	05D0	CSEG
$MIF120  . . . . . . . . . . . .  	L NEAR	05CE	CSEG
$MIF127  . . . . . . . . . . . .  	L NEAR	060F	CSEG
$MIF128  . . . . . . . . . . . .  	L NEAR	060C	CSEG
$MIF129  . . . . . . . . . . . .  	L NEAR	060A	CSEG
$MIF134  . . . . . . . . . . . .  	L NEAR	062F	CSEG
$MIF135  . . . . . . . . . . . .  	L NEAR	062F	CSEG
$MIF138  . . . . . . . . . . . .  	L NEAR	0651	CSEG
$MIF141  . . . . . . . . . . . .  	L NEAR	064D	CSEG
$MIF146  . . . . . . . . . . . .  	L NEAR	066F	CSEG
$MIF150  . . . . . . . . . . . .  	L NEAR	068E	CSEG
$MIF151  . . . . . . . . . . . .  	L NEAR	068C	CSEG
$MIF154  . . . . . . . . . . . .  	L NEAR	06A0	CSEG
$MIF155  . . . . . . . . . . . .  	L NEAR	069E	CSEG
$MIF158  . . . . . . . . . . . .  	L NEAR	06B0	CSEG
$MIF159  . . . . . . . . . . . .  	L NEAR	06B0	CSEG
$MIF166  . . . . . . . . . . . .  	L NEAR	06E5	CSEG
$MIF169  . . . . . . . . . . . .  	L NEAR	06E0	CSEG
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-9


$MIF173  . . . . . . . . . . . .  	L NEAR	071F	CSEG
$MIF174  . . . . . . . . . . . .  	L NEAR	071F	CSEG
$MIF175  . . . . . . . . . . . .  	L NEAR	0701	CSEG
$MIF180  . . . . . . . . . . . .  	L NEAR	071C	CSEG
$MIF187  . . . . . . . . . . . .  	L NEAR	0742	CSEG
$MIF188  . . . . . . . . . . . .  	L NEAR	073F	CSEG
$MIF192  . . . . . . . . . . . .  	L NEAR	0749	CSEG
$MIF194  . . . . . . . . . . . .  	L NEAR	0750	CSEG
$MIF199  . . . . . . . . . . . .  	L NEAR	078E	CSEG
$MIF20 . . . . . . . . . . . . .  	L NEAR	0325	CSEG
$MIF200  . . . . . . . . . . . .  	L NEAR	076F	CSEG
$MIF202  . . . . . . . . . . . .  	L NEAR	0789	CSEG
$MIF211  . . . . . . . . . . . .  	L NEAR	079A	CSEG
$MIF216  . . . . . . . . . . . .  	L NEAR	07CD	CSEG
$MIF23 . . . . . . . . . . . . .  	L NEAR	033F	CSEG
$MIF25 . . . . . . . . . . . . .  	L NEAR	03C7	CSEG
$MIF27 . . . . . . . . . . . . .  	L NEAR	03D1	CSEG
$MIF276  . . . . . . . . . . . .  	L NEAR	07F7	CSEG
$MIF278  . . . . . . . . . . . .  	L NEAR	0825	CSEG
$MIF279  . . . . . . . . . . . .  	L NEAR	0825	CSEG
$MIF281  . . . . . . . . . . . .  	L NEAR	0821	CSEG
$MIF286  . . . . . . . . . . . .  	L NEAR	0838	CSEG
$MIF287  . . . . . . . . . . . .  	L NEAR	0838	CSEG
$MIF290  . . . . . . . . . . . .  	L NEAR	0860	CSEG
$MIF292  . . . . . . . . . . . .  	L NEAR	084E	CSEG
$MIF295  . . . . . . . . . . . .  	L NEAR	085C	CSEG
$MIF299  . . . . . . . . . . . .  	L NEAR	087E	CSEG
$MIF300  . . . . . . . . . . . .  	L NEAR	087E	CSEG
$MIF302  . . . . . . . . . . . .  	L NEAR	087A	CSEG
$MIF307  . . . . . . . . . . . .  	L NEAR	088C	CSEG
$MIF309  . . . . . . . . . . . .  	L NEAR	0898	CSEG
$MIF31 . . . . . . . . . . . . .  	L NEAR	03F7	CSEG
$MIF314  . . . . . . . . . . . .  	L NEAR	08B4	CSEG
$MIF317  . . . . . . . . . . . .  	L NEAR	08D2	CSEG
$MIF318  . . . . . . . . . . . .  	L NEAR	08D0	CSEG
$MIF32 . . . . . . . . . . . . .  	L NEAR	03F3	CSEG
$MIF325  . . . . . . . . . . . .  	L NEAR	0918	CSEG
$MIF326  . . . . . . . . . . . .  	L NEAR	090A	CSEG
$MIF327  . . . . . . . . . . . .  	L NEAR	0904	CSEG
$MIF330  . . . . . . . . . . . .  	L NEAR	0916	CSEG
$MIF333  . . . . . . . . . . . .  	L NEAR	0944	CSEG
$MIF334  . . . . . . . . . . . .  	L NEAR	0936	CSEG
$MIF335  . . . . . . . . . . . .  	L NEAR	0930	CSEG
$MIF338  . . . . . . . . . . . .  	L NEAR	0942	CSEG
$MIF341  . . . . . . . . . . . .  	L NEAR	0960	CSEG
$MIF342  . . . . . . . . . . . .  	L NEAR	095A	CSEG
$MIF345  . . . . . . . . . . . .  	L NEAR	096C	CSEG
$MIF349  . . . . . . . . . . . .  	L NEAR	0978	CSEG
$MIF37 . . . . . . . . . . . . .  	L NEAR	040F	CSEG
$MIF388  . . . . . . . . . . . .  	L NEAR	098A	CSEG
$MIF39 . . . . . . . . . . . . .  	L NEAR	041C	CSEG
$MIF391  . . . . . . . . . . . .  	L NEAR	09AB	CSEG
$MIF392  . . . . . . . . . . . .  	L NEAR	09A9	CSEG
$MIF396  . . . . . . . . . . . .  	L NEAR	09B1	CSEG
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-10


$MIF41 . . . . . . . . . . . . .  	L NEAR	042E	CSEG
$MIF46 . . . . . . . . . . . . .  	L NEAR	044F	CSEG
$MIF47 . . . . . . . . . . . . .  	L NEAR	0441	CSEG
$MIF51 . . . . . . . . . . . . .  	L NEAR	0457	CSEG
$MIF56 . . . . . . . . . . . . .  	L NEAR	0492	CSEG
$MIF57 . . . . . . . . . . . . .  	L NEAR	0482	CSEG
$MIF60 . . . . . . . . . . . . .  	L NEAR	048A	CSEG
$MIF64 . . . . . . . . . . . . .  	L NEAR	04CD	CSEG
$MIF65 . . . . . . . . . . . . .  	L NEAR	04C7	CSEG
$MIF69 . . . . . . . . . . . . .  	L NEAR	04DA	CSEG
$MIF71 . . . . . . . . . . . . .  	L NEAR	04E3	CSEG
$MIF75 . . . . . . . . . . . . .  	L NEAR	0516	CSEG
$MIF76 . . . . . . . . . . . . .  	L NEAR	04FF	CSEG
$MIF78 . . . . . . . . . . . . .  	L NEAR	04F8	CSEG
$MIF86 . . . . . . . . . . . . .  	L NEAR	0516	CSEG
$MIF87 . . . . . . . . . . . . .  	L NEAR	0512	CSEG
$MIF91 . . . . . . . . . . . . .  	L NEAR	051E	CSEG
$MIF93 . . . . . . . . . . . . .  	L NEAR	055F	CSEG
$MIF94 . . . . . . . . . . . . .  	L NEAR	0545	CSEG
$MIF97 . . . . . . . . . . . . .  	L NEAR	0559	CSEG
$MIF98 . . . . . . . . . . . . .  	L NEAR	0557	CSEG
$MLL149  . . . . . . . . . . . .  	L NEAR	067C	CSEG
$MLL168  . . . . . . . . . . . .  	L NEAR	06D7	CSEG
$MLL178  . . . . . . . . . . . .  	L NEAR	0709	CSEG
$MLL202  . . . . . . . . . . . .  	L NEAR	0781	CSEG
$MLL214  . . . . . . . . . . . .  	L NEAR	07AA	CSEG
$MSR175  . . . . . . . . . . . .  	L NEAR	071F	CSEG
$MSR76 . . . . . . . . . . . . .  	L NEAR	0508	CSEG
$MXL2  . . . . . . . . . . . . .  	L NEAR	0463	CSEG
$MXL3  . . . . . . . . . . . . .  	L NEAR	072C	CSEG
$MXL4  . . . . . . . . . . . . .  	L NEAR	07AA	CSEG
$M_1_FF_END  . . . . . . . . . .  	L BYTE	0C28	CSEG
$M_1_FF_MSG  . . . . . . . . . .  	L BYTE	0C16	CSEG
$M_1_FF_STRUC  . . . . . . . . .  	L BYTE	0C12	CSEG
$M_2_FF_END  . . . . . . . . . .  	L BYTE	0C49	CSEG
$M_2_FF_MSG  . . . . . . . . . .  	L BYTE	0C3A	CSEG
$M_2_FF_STRUC  . . . . . . . . .  	L BYTE	0C36	CSEG
$M_ADDR_SZ_FAR . . . . . . . . .  	NUMBER	0004	
$M_ADDR_SZ_NEAR  . . . . . . . .  	NUMBER	0002	
$M_ADD_CRLF  . . . . . . . . . .  	N PROC	0619	CSEG	Length = 0017
$M_ALIGN_MASK  . . . . . . . . .  	NUMBER	0080	
$M_AM  . . . . . . . . . . . . .  	NUMBER	0061	
$M_A_00001H_END  . . . . . . . .  	L BYTE	0A2E	CSEG
$M_A_00001H_MSG  . . . . . . . .  	L BYTE	0A16	CSEG
$M_A_00001H_STRUC  . . . . . . .  	L BYTE	09BA	CSEG
$M_A_00002H_END  . . . . . . . .  	L BYTE	0A44	CSEG
$M_A_00002H_MSG  . . . . . . . .  	L BYTE	0A2E	CSEG
$M_A_00002H_STRUC  . . . . . . .  	L BYTE	09BE	CSEG
$M_A_00003H_END  . . . . . . . .  	L BYTE	0A58	CSEG
$M_A_00003H_MSG  . . . . . . . .  	L BYTE	0A44	CSEG
$M_A_00003H_STRUC  . . . . . . .  	L BYTE	09C2	CSEG
$M_A_00004H_END  . . . . . . . .  	L BYTE	0A79	CSEG
$M_A_00004H_MSG  . . . . . . . .  	L BYTE	0A58	CSEG
$M_A_00004H_STRUC  . . . . . . .  	L BYTE	09C6	CSEG
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-11


$M_A_00005H_END  . . . . . . . .  	L BYTE	0A97	CSEG
$M_A_00005H_MSG  . . . . . . . .  	L BYTE	0A79	CSEG
$M_A_00005H_STRUC  . . . . . . .  	L BYTE	09CA	CSEG
$M_A_00006H_END  . . . . . . . .  	L BYTE	0AB4	CSEG
$M_A_00006H_MSG  . . . . . . . .  	L BYTE	0A97	CSEG
$M_A_00006H_STRUC  . . . . . . .  	L BYTE	09CE	CSEG
$M_A_00007H_END  . . . . . . . .  	L BYTE	0AC2	CSEG
$M_A_00007H_MSG  . . . . . . . .  	L BYTE	0AB4	CSEG
$M_A_00007H_STRUC  . . . . . . .  	L BYTE	09D2	CSEG
$M_A_00008H_END  . . . . . . . .  	L BYTE	0AD0	CSEG
$M_A_00008H_MSG  . . . . . . . .  	L BYTE	0AC2	CSEG
$M_A_00008H_STRUC  . . . . . . .  	L BYTE	09D6	CSEG
$M_A_00009H_END  . . . . . . . .  	L BYTE	0AE5	CSEG
$M_A_00009H_MSG  . . . . . . . .  	L BYTE	0AD0	CSEG
$M_A_00009H_STRUC  . . . . . . .  	L BYTE	09DA	CSEG
$M_A_0000AH_END  . . . . . . . .  	L BYTE	0AF8	CSEG
$M_A_0000AH_MSG  . . . . . . . .  	L BYTE	0AE5	CSEG
$M_A_0000AH_STRUC  . . . . . . .  	L BYTE	09DE	CSEG
$M_A_0000BH_END  . . . . . . . .  	L BYTE	0B09	CSEG
$M_A_0000BH_MSG  . . . . . . . .  	L BYTE	0AF8	CSEG
$M_A_0000BH_STRUC  . . . . . . .  	L BYTE	09E2	CSEG
$M_A_0000CH_END  . . . . . . . .  	L BYTE	0B18	CSEG
$M_A_0000CH_MSG  . . . . . . . .  	L BYTE	0B09	CSEG
$M_A_0000CH_STRUC  . . . . . . .  	L BYTE	09E6	CSEG
$M_A_0000DH_END  . . . . . . . .  	L BYTE	0B2C	CSEG
$M_A_0000DH_MSG  . . . . . . . .  	L BYTE	0B18	CSEG
$M_A_0000DH_STRUC  . . . . . . .  	L BYTE	09EA	CSEG
$M_A_0000EH_END  . . . . . . . .  	L BYTE	0B42	CSEG
$M_A_0000EH_MSG  . . . . . . . .  	L BYTE	0B2C	CSEG
$M_A_0000EH_STRUC  . . . . . . .  	L BYTE	09EE	CSEG
$M_A_0000FH_END  . . . . . . . .  	L BYTE	0B5F	CSEG
$M_A_0000FH_MSG  . . . . . . . .  	L BYTE	0B42	CSEG
$M_A_0000FH_STRUC  . . . . . . .  	L BYTE	09F2	CSEG
$M_A_00010H_END  . . . . . . . .  	L BYTE	0B84	CSEG
$M_A_00010H_MSG  . . . . . . . .  	L BYTE	0B5F	CSEG
$M_A_00010H_STRUC  . . . . . . .  	L BYTE	09F6	CSEG
$M_A_00011H_END  . . . . . . . .  	L BYTE	0BA0	CSEG
$M_A_00011H_MSG  . . . . . . . .  	L BYTE	0B84	CSEG
$M_A_00011H_STRUC  . . . . . . .  	L BYTE	09FA	CSEG
$M_A_00012H_END  . . . . . . . .  	L BYTE	0BBB	CSEG
$M_A_00012H_MSG  . . . . . . . .  	L BYTE	0BA0	CSEG
$M_A_00012H_STRUC  . . . . . . .  	L BYTE	09FE	CSEG
$M_A_00013H_END  . . . . . . . .  	L BYTE	0BC7	CSEG
$M_A_00013H_MSG  . . . . . . . .  	L BYTE	0BBB	CSEG
$M_A_00013H_STRUC  . . . . . . .  	L BYTE	0A02	CSEG
$M_A_00014H_END  . . . . . . . .  	L BYTE	0BCA	CSEG
$M_A_00014H_MSG  . . . . . . . .  	L BYTE	0BC7	CSEG
$M_A_00014H_STRUC  . . . . . . .  	L BYTE	0A06	CSEG
$M_A_00015H_END  . . . . . . . .  	L BYTE	0BDB	CSEG
$M_A_00015H_MSG  . . . . . . . .  	L BYTE	0BCA	CSEG
$M_A_00015H_STRUC  . . . . . . .  	L BYTE	0A0A	CSEG
$M_A_00016H_END  . . . . . . . .  	L BYTE	0BF0	CSEG
$M_A_00016H_MSG  . . . . . . . .  	L BYTE	0BDB	CSEG
$M_A_00016H_STRUC  . . . . . . .  	L BYTE	0A0E	CSEG
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-12


$M_A_00017H_END  . . . . . . . .  	L BYTE	0C03	CSEG
$M_A_00017H_MSG  . . . . . . . .  	L BYTE	0BF0	CSEG
$M_A_00017H_STRUC  . . . . . . .  	L BYTE	0A12	CSEG
$M_BASE10  . . . . . . . . . . .  	NUMBER	000A	
$M_BASE16  . . . . . . . . . . .  	NUMBER	0010	
$M_BIN2ASC_REPLACE . . . . . . .  	N PROC	08E1	CSEG	Length = 0099
$M_BYTE  . . . . . . . . . . . .  	NUMBER	0010	
$M_CHAR_ONLY . . . . . . . . . .  	NUMBER	0000	
$M_CHAR_REPLACE  . . . . . . . .  	N PROC	08B9	CSEG	Length = 0028
$M_CHECKSTDIN  . . . . . . . . .  	N PROC	0342	CSEG	Length = 0013
$M_CHECKSTDOUT . . . . . . . . .  	N PROC	0355	CSEG	Length = 0013
$M_CLASS_1_STRUC . . . . . . . .  	L BYTE	0C0E	CSEG
$M_CLASS_2_STRUC . . . . . . . .  	L BYTE	0C32	CSEG
$M_CLASS_A_STRUC . . . . . . . .  	L BYTE	09B6	CSEG
$M_CLASS_ID_SZ . . . . . . . . .  	NUMBER	0004	
$M_CLASS_NOT_EXIST . . . . . . .  	NUMBER	0000	
$M_CLS_1 . . . . . . . . . . . .  	N PROC	0C03	CSEG	Global	Length = 000B
$M_COMMA . . . . . . . . . . . .  	NUMBER	002C	
$M_CONVERT2ASC . . . . . . . . .  	N PROC	0654	CSEG	Length = 006A
$M_CON_INP . . . . . . . . . . .  	NUMBER	-0001	
$M_COUNT . . . . . . . . . . . .  	NUMBER	0001	
$M_CRIT_ERR_MASK . . . . . . . .  	NUMBER	0001	
$M_CRIT_HI . . . . . . . . . . .  	NUMBER	0027	
$M_CRIT_LO . . . . . . . . . . .  	NUMBER	0013	
$M_CRLF_SIZE . . . . . . . . . .  	NUMBER	0002	
$M_CR_LF . . . . . . . . . . . .  	NUMBER	0A0D	
$M_DATE_MASK . . . . . . . . . .  	NUMBER	0010	
$M_DBCS_TERM . . . . . . . . . .  	NUMBER	0000	
$M_DCOUNT  . . . . . . . . . . .  	NUMBER	0001	
$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	05AD	CSEG	Length = 0035
$M_DISPLAY_H_STRING  . . . . . .  	N PROC	05E2	CSEG	Length = 002E
$M_DISPLAY_MESSAGE . . . . . . .  	N PROC	06BE	CSEG	Length = 00F3
$M_DISPLAY_REPLACE . . . . . . .  	N PROC	07DE	CSEG	Length = 00BF
$M_DISPLAY_STRING  . . . . . . .  	N PROC	0572	CSEG	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	07B1	CSEG	Length = 002D
$M_FIND_SPECIFIED_MSG  . . . . .  	N PROC	04AB	CSEG	Length = 0079
$M_FIRST_THOU  . . . . . . . . .  	NUMBER	0003	
$M_FLUSH_BUF . . . . . . . . . .  	N PROC	089D	CSEG	Length = 001C
$M_GET_DBCS_VEC  . . . . . . . .  	N PROC	032A	CSEG	Length = 0018
$M_GET_EXT_ERR_39  . . . . . . .  	N PROC	0610	CSEG	Length = 0009
$M_GET_MSG_ADDRESS . . . . . . .  	N PROC	03FC	CSEG	Global	Length = 00A0
$M_ID_SZ . . . . . . . . . . . .  	NUMBER	0004	
$M_INCLUDE . . . . . . . . . . .  	NUMBER	FFFF	
$M_INDEX . . . . . . . . . . . .  	NUMBER	0004	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16
COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-13


$M_IS_IT_DBCS  . . . . . . . . .  	N PROC	0630	CSEG	Length = 0024
$M_LOAD  . . . . . . . . . . . .  	NUMBER	FFFF	
$M_MAX_2_YEAR  . . . . . . . . .  	NUMBER	0063	
$M_MSGDATA_ONLY  . . . . . . . .  	NUMBER	0000	
$M_MSGSERV_1 . . . . . . . . . .  	N PROC	0C28	CSEG	Global	Length = 000A
$M_MSGSERV_2 . . . . . . . . . .  	N PROC	0C49	CSEG	Global	Length = 000A
$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	0001	
$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	0085	
$M_RT  . . . . . . . . . . . . .  	L BYTE	0195	CSEG	Global
$M_SECOND_THOU . . . . . . . . .  	NUMBER	0006	
$M_SERVICE . . . . . . . . . . .  	NUMBER	0000	
$M_SET_LEN_IN_CX . . . . . . . .  	N PROC	049C	CSEG	Length = 000F
$M_SINGLE_CHAR . . . . . . . . .  	NUMBER	0001	
$M_SIZE_MASK . . . . . . . . . .  	NUMBER	0030	
$M_SL  . . . . . . . . . . . . .  	TEXT  DS:[SI]		
$M_SPACE . . . . . . . . . . . .  	NUMBER	0020	
$M_SPACE_HYP . . . . . . . . . .  	NUMBER	2D20	
$M_SPECIAL_CASE  . . . . . . . .  	NUMBER	0030	
$M_SPECIAL_MSG_NUM . . . . . . .  	NUMBER	FFFF	
$M_STRUC . . . . . . . . . . . .  	NUMBER	0000	
$M_SUBS  . . . . . . . . . . . .  	NUMBER	0000	
$M_TEMP_BUF_SZ . . . . . . . . .  	NUMBER	0040	
$M_TERMINATING_FLAG  . . . . . .  	NUMBER	-0001	
$M_THIRD_THOU  . . . . . . . . .  	NUMBER	0009	
$M_TIMEDATE_PAD  . . . . . . . .  	NUMBER	0030	
$M_TIME_MASK . . . . . . . . . .  	NUMBER	0001	
$M_TYPE_MASK . . . . . . . . . .  	NUMBER	000F	
$M_UNLIM_W . . . . . . . . . . .  	NUMBER	0000	
$M_VERSION_CHECK . . . . . . . .  	N PROC	03B1	CSEG	Length = 002F
$M_WAIT_FOR_INPUT  . . . . . . .  	N PROC	097A	CSEG	Length = 003C
$M_WORD  . . . . . . . . . . . .  	NUMBER	0020	
??0000 . . . . . . . . . . . . .  	L NEAR	0494	CSEG
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  compsm		
@VERSION . . . . . . . . . . . .  	TEXT  510		

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:16

COMPSM.SAL - COMP SYSTEM MESSAGES                           Symbols-14






  17392 Source  Lines
  21131 Total   Lines
    649 Symbols

  43686 + 179518 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
