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


					PAGE	90,132			;A2
					TITLE	fastsm.SAL - fastopen SYSTEM MESSAGES
				;****************** START OF SPECIFICATIONS *****************************
				; MODULE NAME: fastsm.SAL
				
				; DESCRIPTIVE NAME: Include the DOS system MESSAGE HANDLER in the SEGMENT
				;		    configuration expected by the modules of fastopen.
				
				;FUNCTION: The common code of the DOS SYSTEM MESSAGE HANDLER is made a
				;	   part of the fastopen 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
				;	  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:
				
				;	INCLUDE SYSMSG.INC   ;Permit System Message handler definition
				;
				; EXTERNAL REFERENCES:
				;    ROUTINES: none
				
				;    DATA AREAS: control blocks pointed to by input registers.
				
				; NOTES:
				
				;	 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,
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-2


				;	 fastopen.asm.
				
				; REVISION HISTORY: A000 Version 4.00: add PARSER, System Message Handler,
				;
				; COPYRIGHT: "MS DOS FASTOPEN Utility"
				;	     "Version 4.00 (C)Copyright 1988 Microsoft "
				;	     "Licensed Material - Property of Microsoft "
				;
				;****************** END OF SPECIFICATIONS *****************************
				; =  =	=  =  =  =  =  =  =  =	=  =
				
				HEADER	MACRO	TEXT			;;					;AN000;
				.XLIST					;;
					SUBTTL	TEXT
				.LIST					;;
					PAGE				;;					;AN000;
					ENDM				;;					;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	;;
			     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	       ;******************************
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-3
DOS - Message Retriever - SYSTEM CONTROL file               

			     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	
			     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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-4
DOS - Message Retriever - SYSTEM CONTROL file               

 = 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
 = 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
 = 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
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-5
DOS - Message Retriever - SYSTEM CONTROL file               

 = 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  ;;  |
 = 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
			     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>
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-6
DOS - Message Retriever - SYSTEM CONTROL file               

			     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)
			     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				 ;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-7
DOS - Message Retriever - SYSTEM CONTROL file               

			     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 ;
			     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 <fastopen> 	;IDENTIFY THE COMPONENT 		;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-8
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
 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								     ;;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-9
DOS - Message Retriever - MSGSTR.INC Module                 

 0056                        C1	$M_COUNTRY_INFO ENDS					     ;;AN000;;
				; =  =	=  =  =  =  =  =  =  =	=  =
					HEADER	<DEFINITION OF MESSAGES> ;					;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-10
DEFINITION OF MESSAGES                                      

 0000				CSEG_INIT    SEGMENT PARA PUBLIC 'CODE' ;
					   ASSUME CS:CSEG_INIT		;ESTABLISHED BY CALLER
					   ASSUME DS:CSEG_INIT		;ESTABLISHED BY CALLER
					   ASSUME ES:CSEG_INIT		;ESTABLISHED BY CALLER
				
					   PUBLIC COPYRIGHT	   ;						;AN000;
 0000  4D 53 20 44 4F 53	COPYRIGHT  DB	 "MS DOS FASTOPEN Utility " ;                 ;AN000;
       20 46 41 53 54 4F	
       50 45 4E 20 55 74	
       69 6C 69 74 79 20	
					   INCLUDE COPYRIGH.INC    ;						;AN000;
 0018  4D 53 20 44 4F 53     C		DB	"MS DOS Version 4.00 (C)Copyright 1988 Microsoft Corp"
       20 56 65 72 73 69     C	
       6F 6E 20 34 2E 30     C	
       30 20 28 43 29 43     C	
       6F 70 79 72 69 67     C	
       68 74 20 31 39 38     C	
       38 20 4D 69 63 72     C	
       6F 73 6F 66 74 20     C	
       43 6F 72 70           C	
 004C  4C 69 63 65 6E 73     C		DB	"Licensed Material - Property of Microsoft  "
       65 64 20 4D 61 74     C	
       65 72 69 61 6C 20     C	
       2D 20 50 72 6F 70     C	
       65 72 74 79 20 6F     C	
       66 20 4D 69 63 72     C	
       6F 73 6F 66 74 20     C	
       20                    C	
					   HEADER <MESSAGE DATA AREAS> ;					;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-11
MESSAGE DATA AREAS                                          

					   MSG_SERVICES <MSGDATA>  ;WORKAREAS FOR SYSTEM MESSAGE HANDLER	;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-12
DOS - Message Retriever - MSGRES.TAB Module                 

 0077                        C1	      $M_RT   LABEL   BYTE				     ;;AN000;;
 0077  00000000              C1	      $M_RES_ADDRS <>					     ;;AN000;; Resident addresses
 007B  00000000              C1	
 007F  00000000              C1	
 0083  FFFFFFFF              C1	
 0087  00000000              C1	
 008B  00000000              C1	
 008F  FFFFFFFF              C1	
 0093  00000000              C1	
 0097  00000000              C1	
 009B  FFFFFFFF              C1	
 009F  FFFFFFFF              C1	
 00A3  00000000              C1	
 00A7  FFFFFFFF              C1	
 00AB  00000000              C1	
 00AF  0000                  C1	
 00B1  00                    C1	
 00B2  0001[                 C1	
 00B4  00                    C1	
 00B5  0000                  C1	
 00B7  0000                  C1	
 00B9  0A00                  C1	
 00BB  0040[                 C1	
 00FB  24                    C1	
 00FC  4D 53 20 44 4F 53     C1		DB	"MS DOS Version 4.00 (C)Copyright 1988 Microsoft Corp"
 0130  4C 69 63 65 6E 73     C1		DB	"Licensed Material - Property of Microsoft  "
				; =  =	=  =  =  =  =  =  =  =	=  =
					   HEADER <SYSTEM MESSAGE HANDLER> ;					;AN000;
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-13
SYSTEM MESSAGE HANDLER                                      

					   PUBLIC SYSLOADMSG	   ;						;AN000;
					   PUBLIC SYSDISPMSG	   ;						;AN000;
				
				 public amis_sign
 015B  90				even
 015C				amis_sign:
 015C  65 63 6D				db "ecm"
 015F  0005[				db 5 dup (' ')
	   20			
			 ]	
				
 0164  6C 44 4F 53			db "lDOS"
 0168  0004[				db 4 dup (' ')
	   20			
			 ]	
				
 016C				amis_id:			; must be directly after amis_sign
 016C  0000				dw 0
 016E  0000				dw 0			; sequential number
 0170  08				db amis_id_msg_end - amis_id_msg
 0171				amis_id_msg:
 0171  66 61 73 74 6F 70		db "fastopen"		; our id name
       65 6E			
 0179				amis_id_msg_end:
				
 =				AMIS_SIGN_SEGMENT equ CSEG_INIT
				
					MSG_SERVICES <FASTOPEN.CLA,FASTOPEN.CL1,FASTOPEN.CL2> ;
 0179                        C3	$M_CLASS_A_STRUC LABEL BYTE
 0179  FF                    C3	        $M_CLASS_ID <0FFH,EXPECTED_VERSION,Class_A_MessageCount>
 017A  0400                  C3	
 017C  11                    C3	
 017D                        C3	$M_A_00001H_STRUC LABEL BYTE
 017D  0100                  C3	        $M_ID   <00001H,$M_A_00001H_MSG-$M_A_00001H_STRUC>
 017F  4400                  C3	
 0181                        C3	$M_A_00006H_STRUC LABEL BYTE
 0181  0600                  C3	        $M_ID   <00006H,$M_A_00006H_MSG-$M_A_00006H_STRUC>
 0183  5800                  C3	
 0185                        C3	$M_A_00003H_STRUC LABEL BYTE
 0185  0300                  C3	        $M_ID   <00003H,$M_A_00003H_MSG-$M_A_00003H_STRUC>
 0187  6800                  C3	
 0189                        C3	$M_A_00004H_STRUC LABEL BYTE
 0189  0400                  C3	        $M_ID   <00004H,$M_A_00004H_MSG-$M_A_00004H_STRUC>
 018B  7500                  C3	
 018D                        C3	$M_A_00005H_STRUC LABEL BYTE
 018D  0500                  C3	        $M_ID   <00005H,$M_A_00005H_MSG-$M_A_00005H_STRUC>
 018F  8800                  C3	
 0191                        C3	$M_A_00007H_STRUC LABEL BYTE
 0191  0700                  C3	        $M_ID   <00007H,$M_A_00007H_MSG-$M_A_00007H_STRUC>
 0193  A300                  C3	
 0195                        C3	$M_A_00008H_STRUC LABEL BYTE
 0195  0800                  C3	        $M_ID   <00008H,$M_A_00008H_MSG-$M_A_00008H_STRUC>
 0197  BA00                  C3	
 0199                        C3	$M_A_00009H_STRUC LABEL BYTE
 0199  0900                  C3	        $M_ID   <00009H,$M_A_00009H_MSG-$M_A_00009H_STRUC>
 019B  DE00                  C3	
 019D                        C3	$M_A_0000BH_STRUC LABEL BYTE
 019D  0B00                  C3	        $M_ID   <0000BH,$M_A_0000BH_MSG-$M_A_0000BH_STRUC>
 019F  F000                  C3	
 01A1                        C3	$M_A_0000CH_STRUC LABEL BYTE
 01A1  0C00                  C3	        $M_ID   <0000CH,$M_A_0000CH_MSG-$M_A_0000CH_STRUC>
 01A3  0501                  C3	
 01A5                        C3	$M_A_0000DH_STRUC LABEL BYTE
 01A5  0D00                  C3	        $M_ID   <0000DH,$M_A_0000DH_MSG-$M_A_0000DH_STRUC>
 01A7  2201                  C3	
 01A9                        C3	$M_A_0000EH_STRUC LABEL BYTE
 01A9  0E00                  C3	        $M_ID   <0000EH,$M_A_0000EH_MSG-$M_A_0000EH_STRUC>
 01AB  3F01                  C3	
 01AD                        C3	$M_A_0000FH_STRUC LABEL BYTE
 01AD  0F00                  C3	        $M_ID   <0000FH,$M_A_0000FH_MSG-$M_A_0000FH_STRUC>
 01AF  5D01                  C3	
 01B1                        C3	$M_A_00010H_STRUC LABEL BYTE
 01B1  1000                  C3	        $M_ID   <00010H,$M_A_00010H_MSG-$M_A_00010H_STRUC>
 01B3  7C01                  C3	
 01B5                        C3	$M_A_00011H_STRUC LABEL BYTE
 01B5  1100                  C3	        $M_ID   <00011H,$M_A_00011H_MSG-$M_A_00011H_STRUC>
 01B7  B201                  C3	
 01B9                        C3	$M_A_00012H_STRUC LABEL BYTE
 01B9  1200                  C3	        $M_ID   <00012H,$M_A_00012H_MSG-$M_A_00012H_STRUC>
 01BB  D301                  C3	
 01BD                        C3	$M_A_00013H_STRUC LABEL BYTE
 01BD  1300                  C3	        $M_ID   <00013H,$M_A_00013H_MSG-$M_A_00013H_STRUC>
 01BF  EB01                  C3	
 01C1                        C3	$M_A_00001H_MSG LABEL BYTE
 01C1  17                    C3	        DB      $M_A_00001H_END-$M_A_00001H_MSG-1
 01C2  49 6E 63 6F 72 72     C3	        DB      "Incorrect DOS version",CR,LF
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-14
SYSTEM MESSAGE HANDLER                                      

 01D9                        C3	$M_A_00001H_END LABEL BYTE
 01D9                        C3	$M_A_00006H_MSG LABEL BYTE
 01D9  13                    C3	        DB      $M_A_00006H_END-$M_A_00006H_MSG-1
 01DA  49 6E 76 61 6C 69     C3	        DB      "Invalid parameter",CR,LF
 01ED                        C3	$M_A_00006H_END LABEL BYTE
 01ED                        C3	$M_A_00003H_MSG LABEL BYTE
 01ED  10                    C3	        DB      $M_A_00003H_END-$M_A_00003H_MSG-1
 01EE  49 6E 76 61 6C 69     C3	        DB      "Invalid switch",CR,LF
 01FE                        C3	$M_A_00003H_END LABEL BYTE
 01FE                        C3	$M_A_00004H_MSG LABEL BYTE
 01FE  16                    C3	        DB      $M_A_00004H_END-$M_A_00004H_MSG-1
 01FF  0D 0A 46 41 53 54     C3	        DB      CR,LF,"FASTOPEN installed",CR,LF
 0215                        C3	$M_A_00004H_END LABEL BYTE
 0215                        C3	$M_A_00005H_MSG LABEL BYTE
 0215  1E                    C3	        DB      $M_A_00005H_END-$M_A_00005H_MSG-1
 0216  0D 0A 46 41 53 54     C3	        DB      CR,LF,"FASTOPEN already installed",CR,LF
 0234                        C3	$M_A_00005H_END LABEL BYTE
 0234                        C3	$M_A_00007H_MSG LABEL BYTE
 0234  1A                    C3	        DB      $M_A_00007H_END-$M_A_00007H_MSG-1
 0235  0D 0A 54 6F 6F 20     C3	        DB      CR,LF,"Too many drive entries",CR,LF
 024F                        C3	$M_A_00007H_END LABEL BYTE
 024F                        C3	$M_A_00008H_MSG LABEL BYTE
 024F  27                    C3	        DB      $M_A_00008H_END-$M_A_00008H_MSG-1
 0250  0D 0A 53 61 6D 65     C3	        DB      CR,LF,"Same drive specified more than once",CR,LF
 0277                        C3	$M_A_00008H_END LABEL BYTE
 0277                        C3	$M_A_00009H_MSG LABEL BYTE
 0277  15                    C3	        DB      $M_A_00009H_END-$M_A_00009H_MSG-1
 0278  0D 0A 49 6E 76 61     C3	        DB      CR,LF,"Invalid parameter",CR,LF
 028D                        C3	$M_A_00009H_END LABEL BYTE
 028D                        C3	$M_A_0000BH_MSG LABEL BYTE
 028D  18                    C3	        DB      $M_A_0000BH_END-$M_A_0000BH_MSG-1
 028E  0D 0A 49 6E 76 61     C3	        DB      CR,LF,"Invalid extent entry",CR,LF
 02A6                        C3	$M_A_0000BH_END LABEL BYTE
 02A6                        C3	$M_A_0000CH_MSG LABEL BYTE
 02A6  20                    C3	        DB      $M_A_0000CH_END-$M_A_0000CH_MSG-1
 02A7  0D 0A 49 6E 76 61     C3	        DB      CR,LF,"Invalid file/directory entry",CR,LF
 02C7                        C3	$M_A_0000CH_END LABEL BYTE
 02C7                        C3	$M_A_0000DH_MSG LABEL BYTE
 02C7  20                    C3	        DB      $M_A_0000DH_END-$M_A_0000DH_MSG-1
 02C8  0D 0A 43 61 6E 6E     C3	        DB      CR,LF,"Cannot setup expanded memory",CR,LF
 02E8                        C3	$M_A_0000DH_END LABEL BYTE
 02E8                        C3	$M_A_0000EH_MSG LABEL BYTE
 02E8  21                    C3	        DB      $M_A_0000EH_END-$M_A_0000EH_MSG-1
 02E9  0D 0A 45 78 70 61     C3	        DB      CR,LF,"Expanded memory not available",CR,LF
 030A                        C3	$M_A_0000EH_END LABEL BYTE
 030A                        C3	$M_A_0000FH_MSG LABEL BYTE
 030A  22                    C3	        DB      $M_A_0000FH_END-$M_A_0000FH_MSG-1
 030B  0D 0A 49 6E 76 61     C3	        DB      CR,LF,"Invalid drive specification %1",CR,LF
 032D                        C3	$M_A_0000FH_END LABEL BYTE
 032D                        C3	$M_A_00010H_MSG LABEL BYTE
 032D  39                    C3	        DB      $M_A_00010H_END-$M_A_00010H_MSG-1
 032E  0D 0A 46 41 53 54     C3	        DB      CR,LF,"FASTOPEN EMS entry count exceeded.  Use fewer entries",CR,LF
 0367                        C3	$M_A_00010H_END LABEL BYTE
 0367                        C3	$M_A_00011H_MSG LABEL BYTE
 0367  24                    C3	        DB      $M_A_00011H_END-$M_A_00011H_MSG-1
 0368  0D 0A 43 61 6E 6E     C3	        DB      CR,LF,"Cannot use FASTOPEN for drive %1",CR,LF
 038C                        C3	$M_A_00011H_END LABEL BYTE
 038C                        C3	$M_A_00012H_MSG LABEL BYTE
 038C  1B                    C3	        DB      $M_A_00012H_END-$M_A_00012H_MSG-1
 038D  0D 0A 54 6F 6F 20     C3	        DB      CR,LF,"Too many extent entries",CR,LF
 03A8                        C3	$M_A_00012H_END LABEL BYTE
 03A8                        C3	$M_A_00013H_MSG LABEL BYTE
 03A8  23                    C3	        DB      $M_A_00013H_END-$M_A_00013H_MSG-1
 03A9  0D 0A 54 6F 6F 20     C3	        DB      CR,LF,"Too many file/directory entries",CR,LF
 03CC                        C3	$M_A_00013H_END LABEL BYTE
 03CC                        C3	$M_CLS_1 PROC NEAR
 03CC  0E                    C3	        PUSH    CS
 03CD  07                    C3	        POP     ES
 03CE  8D 3E 0179 R          C3	        LEA     DI,$M_CLASS_A_STRUC
 03D2  81 C1 0259            C3	        ADD     CX,$-$M_CLASS_A_STRUC
 03D6  C3                    C3	        RET
 03D7                        C3	$M_CLS_1 ENDP
 03D7                        C3	$M_CLASS_1_STRUC LABEL BYTE
 03D7  01                    C3	        $M_CLASS_ID <001H,EXPECTED_VERSION,Class_1_MessageCount>
 03D8  0400                  C3	
 03DA  01                    C3	
 03DB                        C3	$M_1_FF_STRUC LABEL BYTE
 03DB  FFFF                  C3	        $M_ID <0FFFFH,$M_1_FF_MSG-$M_1_FF_STRUC>
 03DD  0400                  C3	
 03DF                        C3	$M_1_FF_MSG LABEL BYTE
 03DF  11                    C3	        DB      $M_1_FF_END-$M_1_FF_MSG-1
 03E0  45 78 74 65 6E 64     C3	        DB      "Extended Error %1"
 03F1                        C3	$M_1_FF_END LABEL BYTE
 03F1                        C3	$M_MSGSERV_1 PROC NEAR
 03F1  0E                    C3	        PUSH    CS
 03F2  07                    C3	        POP     ES
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Page     1-15
SYSTEM MESSAGE HANDLER                                      

 03F3  8D 3E 03D7 R          C3	        LEA     DI,$M_CLASS_1_STRUC
 03F7  83 C1 20              C3	        ADD     CX,$-$M_CLASS_1_STRUC
 03FA  C3                    C3	        RET
 03FB                        C3	$M_MSGSERV_1 Endp
 03FB                        C3	$M_CLASS_2_STRUC LABEL BYTE
 03FB  02                    C3	        $M_CLASS_ID <002H,EXPECTED_VERSION,Class_2_MessageCount>
 03FC  0400                  C3	
 03FE  01                    C3	
 03FF                        C3	$M_2_FF_STRUC LABEL BYTE
 03FF  FFFF                  C3	        $M_ID <0FFFFH,$M_2_FF_MSG-$M_2_FF_STRUC>
 0401  0400                  C3	
 0403                        C3	$M_2_FF_MSG LABEL BYTE
 0403  0E                    C3	        DB      $M_2_FF_END-$M_2_FF_MSG-1
 0404  50 61 72 73 65 20     C3	        DB      "Parse Error %1"
 0412                        C3	$M_2_FF_END LABEL BYTE
 0412                        C3	$M_MSGSERV_2 PROC NEAR
 0412  0E                    C3	        PUSH    CS
 0413  07                    C3	        POP     ES
 0414  8D 3E 03FB R          C3	        LEA     DI,$M_CLASS_2_STRUC
 0418  83 C1 1D              C3	        ADD     CX,$-$M_CLASS_2_STRUC
 041B  C3                    C3	        RET
 041C                        C3	$M_MSGSERV_2 Endp
				
								   ;DEFAULT=CHECK DOS VERSION
								   ;DEFAULT=NEARmsg
								   ;DEFAULT=INPUTmsg
								   ;DEFAULT=NUMmsg
								   ;DEFAULT=NO TIMEmsg
								   ;DEFAULT=NO DATEmsg
				
				.list
				; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
 0B3F				CSEG_INIT	ENDS			;
					   END			   ;						;AN000;

Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen 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
  $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

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

CSEG_INIT  . . . . . . . . . . .  	0B3F	PARA	PUBLIC	'CODE'
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Symbols-2


Symbols:            

                N a m e         	Type	 Value	 Attr

ACTION_39  . . . . . . . . . . .  	NUMBER	0004	
ALT_EXPECTED_VERSION . . . . . .  	NUMBER	1A05	
ALT_GOOD_DOS . . . . . . . . . .  	L NEAR	054D	CSEG_INIT
ALT_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
ALT_MINOR_VERSION  . . . . . . .  	NUMBER	001A	
AMIS_ID  . . . . . . . . . . . .  	L NEAR	016C	CSEG_INIT
AMIS_ID_MSG  . . . . . . . . . .  	L NEAR	0171	CSEG_INIT
AMIS_ID_MSG_END  . . . . . . . .  	L NEAR	0179	CSEG_INIT
amis_sign  . . . . . . . . . . .  	L NEAR	015C	CSEG_INIT	Global
AMIS_SIGN_SEGMENT  . . . . . . .  	ALIAS	 CSEG_INIT		

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	04F1	CSEG_INIT
CHECK_AMIS_DONE  . . . . . . . .  	L NEAR	0528	CSEG_INIT
CHECK_AMIS_LOOP  . . . . . . . .  	L NEAR	04FA	CSEG_INIT
CHECK_AMIS_NEXT  . . . . . . . .  	L NEAR	0523	CSEG_INIT
CHECK_AMIS_UNSUP . . . . . . . .  	L NEAR	0527	CSEG_INIT
CLASS_1_MESSAGECOUNT . . . . . .  	NUMBER	0001	
CLASS_2_MESSAGECOUNT . . . . . .  	NUMBER	0001	
CLASS_A_MESSAGECOUNT . . . . . .  	NUMBER	0011	
COLON  . . . . . . . . . . . . .  	NUMBER	003A	
COMR . . . . . . . . . . . . . .  	NUMBER	0000	
COMT . . . . . . . . . . . . . .  	NUMBER	0000	
COPYRIGHT  . . . . . . . . . . .  	L BYTE	0000	CSEG_INIT	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	
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	
FORMFD . . . . . . . . . . . . .  	NUMBER	000C	

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

HOME . . . . . . . . . . . . . .  	NUMBER	000B	
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Symbols-3



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	

MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MINOR_VERSION  . . . . . . . . .  	NUMBER	0000	
MSGDATA  . . . . . . . . . . . .  	NUMBER	0000	
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	

PARSE_ERR_CLASS  . . . . . . . .  	NUMBER	0002	

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

SETSTDIO . . . . . . . . . . . .  	NUMBER	0000	
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_LENGTH . . . . . . . . .  	NUMBER	000B	
SYSDISPMSG . . . . . . . . . . .  	N PROC	06AD	CSEG_INIT	Global	Length = 004E
SYSGETMSG  . . . . . . . . . . .  	N PROC	0569	CSEG_INIT	Length = 001C
SYSLOADMSG . . . . . . . . . . .  	N PROC	041C	CSEG_INIT	Global	Length = 0097

TAB  . . . . . . . . . . . . . .  	NUMBER	0009	
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	

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	075B	CSEG_INIT
$MDO139  . . . . . . . . . . . .  	L NEAR	07C3	CSEG_INIT
$MDO145  . . . . . . . . . . . .  	L NEAR	07E5	CSEG_INIT
$MDO165  . . . . . . . . . . . .  	L NEAR	0847	CSEG_INIT
$MDO167  . . . . . . . . . . . .  	L NEAR	0851	CSEG_INIT
$MDO175  . . . . . . . . . . . .  	L NEAR	087D	CSEG_INIT
$MDO215  . . . . . . . . . . . .  	L NEAR	0948	CSEG_INIT
$MDO280  . . . . . . . . . . . .  	L NEAR	099A	CSEG_INIT
$MDO291  . . . . . . . . . . . .  	L NEAR	09C5	CSEG_INIT
$MDO301  . . . . . . . . . . . .  	L NEAR	09F3	CSEG_INIT
$MDO310  . . . . . . . . . . . .  	L NEAR	0A19	CSEG_INIT
$MDO321  . . . . . . . . . . . .  	L NEAR	0A5B	CSEG_INIT
$MDO36 . . . . . . . . . . . . .  	L NEAR	058B	CSEG_INIT
$MDO76 . . . . . . . . . . . . .  	L NEAR	0673	CSEG_INIT
$MEN104  . . . . . . . . . . . .  	L NEAR	06FA	CSEG_INIT
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Symbols-4


$MEN107  . . . . . . . . . . . .  	L NEAR	070F	CSEG_INIT
$MEN110  . . . . . . . . . . . .  	L NEAR	0730	CSEG_INIT
$MEN119  . . . . . . . . . . . .  	L NEAR	0768	CSEG_INIT
$MEN123  . . . . . . . . . . . .  	L NEAR	0768	CSEG_INIT
$MEN128  . . . . . . . . . . . .  	L NEAR	0797	CSEG_INIT
$MEN139  . . . . . . . . . . . .  	L NEAR	07DA	CSEG_INIT
$MEN145  . . . . . . . . . . . .  	L NEAR	083E	CSEG_INIT
$MEN146  . . . . . . . . . . . .  	L NEAR	07FB	CSEG_INIT
$MEN150  . . . . . . . . . . . .  	L NEAR	0839	CSEG_INIT
$MEN154  . . . . . . . . . . . .  	L NEAR	0839	CSEG_INIT
$MEN165  . . . . . . . . . . . .  	L NEAR	0933	CSEG_INIT
$MEN167  . . . . . . . . . . . .  	L NEAR	086E	CSEG_INIT
$MEN175  . . . . . . . . . . . .  	L NEAR	0896	CSEG_INIT
$MEN180  . . . . . . . . . . . .  	L NEAR	08A8	CSEG_INIT
$MEN187  . . . . . . . . . . . .  	L NEAR	08DB	CSEG_INIT
$MEN188  . . . . . . . . . . . .  	L NEAR	08C9	CSEG_INIT
$MEN192  . . . . . . . . . . . .  	L NEAR	08DB	CSEG_INIT
$MEN199  . . . . . . . . . . . .  	L NEAR	091A	CSEG_INIT
$MEN20 . . . . . . . . . . . . .  	L NEAR	04B2	CSEG_INIT
$MEN200  . . . . . . . . . . . .  	L NEAR	0912	CSEG_INIT
$MEN202  . . . . . . . . . . . .  	L NEAR	0912	CSEG_INIT
$MEN211  . . . . . . . . . . . .  	L NEAR	0927	CSEG_INIT
$MEN25 . . . . . . . . . . . . .  	L NEAR	0568	CSEG_INIT
$MEN27 . . . . . . . . . . . . .  	L NEAR	055D	CSEG_INIT
$MEN292  . . . . . . . . . . . .  	L NEAR	09D8	CSEG_INIT
$MEN307  . . . . . . . . . . . .  	L NEAR	0A21	CSEG_INIT
$MEN314  . . . . . . . . . . . .  	L NEAR	0A41	CSEG_INIT
$MEN317  . . . . . . . . . . . .  	L NEAR	0A68	CSEG_INIT
$MEN32 . . . . . . . . . . . . .  	L NEAR	057E	CSEG_INIT
$MEN321  . . . . . . . . . . . .  	L NEAR	0A66	CSEG_INIT
$MEN325  . . . . . . . . . . . .  	L NEAR	0AF5	CSEG_INIT
$MEN333  . . . . . . . . . . . .  	L NEAR	0AF5	CSEG_INIT
$MEN36 . . . . . . . . . . . . .  	L NEAR	05EC	CSEG_INIT
$MEN37 . . . . . . . . . . . . .  	L NEAR	05BD	CSEG_INIT
$MEN388  . . . . . . . . . . . .  	L NEAR	0B15	CSEG_INIT
$MEN39 . . . . . . . . . . . . .  	L NEAR	05BD	CSEG_INIT
$MEN392  . . . . . . . . . . . .  	L NEAR	0B34	CSEG_INIT
$MEN396  . . . . . . . . . . . .  	L NEAR	0B3E	CSEG_INIT
$MEN41 . . . . . . . . . . . . .  	L NEAR	05BD	CSEG_INIT
$MEN46 . . . . . . . . . . . . .  	L NEAR	05E4	CSEG_INIT
$MEN47 . . . . . . . . . . . . .  	L NEAR	05D6	CSEG_INIT
$MEN57 . . . . . . . . . . . . .  	L NEAR	060C	CSEG_INIT
$MEN60 . . . . . . . . . . . . .  	L NEAR	0619	CSEG_INIT
$MEN64 . . . . . . . . . . . . .  	L NEAR	0670	CSEG_INIT
$MEN65 . . . . . . . . . . . . .  	L NEAR	0654	CSEG_INIT
$MEN69 . . . . . . . . . . . . .  	L NEAR	066C	CSEG_INIT
$MEN76 . . . . . . . . . . . . .  	L NEAR	0690	CSEG_INIT
$MEN78 . . . . . . . . . . . . .  	L NEAR	0684	CSEG_INIT
$MEN93 . . . . . . . . . . . . .  	L NEAR	06EC	CSEG_INIT
$MEN94 . . . . . . . . . . . . .  	L NEAR	06D1	CSEG_INIT
$MEN97 . . . . . . . . . . . . .  	L NEAR	06E6	CSEG_INIT
$MIF104  . . . . . . . . . . . .  	L NEAR	06F6	CSEG_INIT
$MIF107  . . . . . . . . . . . .  	L NEAR	070C	CSEG_INIT
$MIF110  . . . . . . . . . . . .  	L NEAR	0720	CSEG_INIT
$MIF112  . . . . . . . . . . . .  	L NEAR	0730	CSEG_INIT
$MIF113  . . . . . . . . . . . .  	L NEAR	0730	CSEG_INIT
$MIF117  . . . . . . . . . . . .  	L NEAR	0735	CSEG_INIT
$MIF119  . . . . . . . . . . . .  	L NEAR	0759	CSEG_INIT
$MIF120  . . . . . . . . . . . .  	L NEAR	0757	CSEG_INIT
$MIF127  . . . . . . . . . . . .  	L NEAR	0798	CSEG_INIT
$MIF128  . . . . . . . . . . . .  	L NEAR	0795	CSEG_INIT
$MIF129  . . . . . . . . . . . .  	L NEAR	0793	CSEG_INIT
$MIF134  . . . . . . . . . . . .  	L NEAR	07B8	CSEG_INIT
$MIF135  . . . . . . . . . . . .  	L NEAR	07B8	CSEG_INIT
$MIF138  . . . . . . . . . . . .  	L NEAR	07DA	CSEG_INIT
$MIF141  . . . . . . . . . . . .  	L NEAR	07D6	CSEG_INIT
$MIF146  . . . . . . . . . . . .  	L NEAR	07F8	CSEG_INIT
$MIF150  . . . . . . . . . . . .  	L NEAR	0817	CSEG_INIT
$MIF151  . . . . . . . . . . . .  	L NEAR	0815	CSEG_INIT
$MIF154  . . . . . . . . . . . .  	L NEAR	0829	CSEG_INIT
$MIF155  . . . . . . . . . . . .  	L NEAR	0827	CSEG_INIT
$MIF158  . . . . . . . . . . . .  	L NEAR	0839	CSEG_INIT
$MIF159  . . . . . . . . . . . .  	L NEAR	0839	CSEG_INIT
$MIF166  . . . . . . . . . . . .  	L NEAR	086E	CSEG_INIT
$MIF169  . . . . . . . . . . . .  	L NEAR	0869	CSEG_INIT
$MIF173  . . . . . . . . . . . .  	L NEAR	08A8	CSEG_INIT
$MIF174  . . . . . . . . . . . .  	L NEAR	08A8	CSEG_INIT
$MIF175  . . . . . . . . . . . .  	L NEAR	088A	CSEG_INIT
$MIF180  . . . . . . . . . . . .  	L NEAR	08A5	CSEG_INIT
$MIF187  . . . . . . . . . . . .  	L NEAR	08CB	CSEG_INIT
$MIF188  . . . . . . . . . . . .  	L NEAR	08C8	CSEG_INIT
$MIF192  . . . . . . . . . . . .  	L NEAR	08D2	CSEG_INIT
$MIF194  . . . . . . . . . . . .  	L NEAR	08D9	CSEG_INIT
$MIF199  . . . . . . . . . . . .  	L NEAR	0917	CSEG_INIT
$MIF20 . . . . . . . . . . . . .  	L NEAR	04AE	CSEG_INIT
$MIF200  . . . . . . . . . . . .  	L NEAR	08F8	CSEG_INIT
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Symbols-5


$MIF202  . . . . . . . . . . . .  	L NEAR	0912	CSEG_INIT
$MIF211  . . . . . . . . . . . .  	L NEAR	0923	CSEG_INIT
$MIF216  . . . . . . . . . . . .  	L NEAR	0956	CSEG_INIT
$MIF23 . . . . . . . . . . . . .  	L NEAR	04C8	CSEG_INIT
$MIF25 . . . . . . . . . . . . .  	L NEAR	0550	CSEG_INIT
$MIF27 . . . . . . . . . . . . .  	L NEAR	055A	CSEG_INIT
$MIF276  . . . . . . . . . . . .  	L NEAR	0980	CSEG_INIT
$MIF278  . . . . . . . . . . . .  	L NEAR	09AE	CSEG_INIT
$MIF279  . . . . . . . . . . . .  	L NEAR	09AE	CSEG_INIT
$MIF281  . . . . . . . . . . . .  	L NEAR	09AA	CSEG_INIT
$MIF286  . . . . . . . . . . . .  	L NEAR	09C1	CSEG_INIT
$MIF287  . . . . . . . . . . . .  	L NEAR	09C1	CSEG_INIT
$MIF290  . . . . . . . . . . . .  	L NEAR	09E9	CSEG_INIT
$MIF292  . . . . . . . . . . . .  	L NEAR	09D7	CSEG_INIT
$MIF295  . . . . . . . . . . . .  	L NEAR	09E5	CSEG_INIT
$MIF299  . . . . . . . . . . . .  	L NEAR	0A07	CSEG_INIT
$MIF300  . . . . . . . . . . . .  	L NEAR	0A07	CSEG_INIT
$MIF302  . . . . . . . . . . . .  	L NEAR	0A03	CSEG_INIT
$MIF307  . . . . . . . . . . . .  	L NEAR	0A15	CSEG_INIT
$MIF309  . . . . . . . . . . . .  	L NEAR	0A21	CSEG_INIT
$MIF31 . . . . . . . . . . . . .  	L NEAR	0580	CSEG_INIT
$MIF314  . . . . . . . . . . . .  	L NEAR	0A3D	CSEG_INIT
$MIF317  . . . . . . . . . . . .  	L NEAR	0A5B	CSEG_INIT
$MIF318  . . . . . . . . . . . .  	L NEAR	0A59	CSEG_INIT
$MIF32 . . . . . . . . . . . . .  	L NEAR	057C	CSEG_INIT
$MIF325  . . . . . . . . . . . .  	L NEAR	0AA1	CSEG_INIT
$MIF326  . . . . . . . . . . . .  	L NEAR	0A93	CSEG_INIT
$MIF327  . . . . . . . . . . . .  	L NEAR	0A8D	CSEG_INIT
$MIF330  . . . . . . . . . . . .  	L NEAR	0A9F	CSEG_INIT
$MIF333  . . . . . . . . . . . .  	L NEAR	0ACD	CSEG_INIT
$MIF334  . . . . . . . . . . . .  	L NEAR	0ABF	CSEG_INIT
$MIF335  . . . . . . . . . . . .  	L NEAR	0AB9	CSEG_INIT
$MIF338  . . . . . . . . . . . .  	L NEAR	0ACB	CSEG_INIT
$MIF341  . . . . . . . . . . . .  	L NEAR	0AE9	CSEG_INIT
$MIF342  . . . . . . . . . . . .  	L NEAR	0AE3	CSEG_INIT
$MIF345  . . . . . . . . . . . .  	L NEAR	0AF5	CSEG_INIT
$MIF349  . . . . . . . . . . . .  	L NEAR	0B01	CSEG_INIT
$MIF37 . . . . . . . . . . . . .  	L NEAR	0598	CSEG_INIT
$MIF388  . . . . . . . . . . . .  	L NEAR	0B13	CSEG_INIT
$MIF39 . . . . . . . . . . . . .  	L NEAR	05A5	CSEG_INIT
$MIF391  . . . . . . . . . . . .  	L NEAR	0B34	CSEG_INIT
$MIF392  . . . . . . . . . . . .  	L NEAR	0B32	CSEG_INIT
$MIF396  . . . . . . . . . . . .  	L NEAR	0B3A	CSEG_INIT
$MIF41 . . . . . . . . . . . . .  	L NEAR	05B7	CSEG_INIT
$MIF46 . . . . . . . . . . . . .  	L NEAR	05D8	CSEG_INIT
$MIF47 . . . . . . . . . . . . .  	L NEAR	05CA	CSEG_INIT
$MIF51 . . . . . . . . . . . . .  	L NEAR	05E0	CSEG_INIT
$MIF56 . . . . . . . . . . . . .  	L NEAR	061B	CSEG_INIT
$MIF57 . . . . . . . . . . . . .  	L NEAR	060B	CSEG_INIT
$MIF60 . . . . . . . . . . . . .  	L NEAR	0613	CSEG_INIT
$MIF64 . . . . . . . . . . . . .  	L NEAR	0656	CSEG_INIT
$MIF65 . . . . . . . . . . . . .  	L NEAR	0650	CSEG_INIT
$MIF69 . . . . . . . . . . . . .  	L NEAR	0663	CSEG_INIT
$MIF71 . . . . . . . . . . . . .  	L NEAR	066C	CSEG_INIT
$MIF75 . . . . . . . . . . . . .  	L NEAR	069F	CSEG_INIT
$MIF76 . . . . . . . . . . . . .  	L NEAR	0688	CSEG_INIT
$MIF78 . . . . . . . . . . . . .  	L NEAR	0681	CSEG_INIT
$MIF86 . . . . . . . . . . . . .  	L NEAR	069F	CSEG_INIT
$MIF87 . . . . . . . . . . . . .  	L NEAR	069B	CSEG_INIT
$MIF91 . . . . . . . . . . . . .  	L NEAR	06A7	CSEG_INIT
$MIF93 . . . . . . . . . . . . .  	L NEAR	06E8	CSEG_INIT
$MIF94 . . . . . . . . . . . . .  	L NEAR	06CE	CSEG_INIT
$MIF97 . . . . . . . . . . . . .  	L NEAR	06E2	CSEG_INIT
$MIF98 . . . . . . . . . . . . .  	L NEAR	06E0	CSEG_INIT
$MLL149  . . . . . . . . . . . .  	L NEAR	0805	CSEG_INIT
$MLL168  . . . . . . . . . . . .  	L NEAR	0860	CSEG_INIT
$MLL178  . . . . . . . . . . . .  	L NEAR	0892	CSEG_INIT
$MLL202  . . . . . . . . . . . .  	L NEAR	090A	CSEG_INIT
$MLL214  . . . . . . . . . . . .  	L NEAR	0933	CSEG_INIT
$MSR175  . . . . . . . . . . . .  	L NEAR	08A8	CSEG_INIT
$MSR76 . . . . . . . . . . . . .  	L NEAR	0691	CSEG_INIT
$MXL2  . . . . . . . . . . . . .  	L NEAR	05EC	CSEG_INIT
$MXL3  . . . . . . . . . . . . .  	L NEAR	08B5	CSEG_INIT
$MXL4  . . . . . . . . . . . . .  	L NEAR	0933	CSEG_INIT
$M_1_FF_END  . . . . . . . . . .  	L BYTE	03F1	CSEG_INIT
$M_1_FF_MSG  . . . . . . . . . .  	L BYTE	03DF	CSEG_INIT
$M_1_FF_STRUC  . . . . . . . . .  	L BYTE	03DB	CSEG_INIT
$M_2_FF_END  . . . . . . . . . .  	L BYTE	0412	CSEG_INIT
$M_2_FF_MSG  . . . . . . . . . .  	L BYTE	0403	CSEG_INIT
$M_2_FF_STRUC  . . . . . . . . .  	L BYTE	03FF	CSEG_INIT
$M_ADDR_SZ_FAR . . . . . . . . .  	NUMBER	0004	
$M_ADDR_SZ_NEAR  . . . . . . . .  	NUMBER	0002	
$M_ADD_CRLF  . . . . . . . . . .  	N PROC	07A2	CSEG_INIT	Length = 0017
$M_ALIGN_MASK  . . . . . . . . .  	NUMBER	0080	
$M_AM  . . . . . . . . . . . . .  	NUMBER	0061	
$M_A_00001H_END  . . . . . . . .  	L BYTE	01D9	CSEG_INIT
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Symbols-6


$M_A_00001H_MSG  . . . . . . . .  	L BYTE	01C1	CSEG_INIT
$M_A_00001H_STRUC  . . . . . . .  	L BYTE	017D	CSEG_INIT
$M_A_00003H_END  . . . . . . . .  	L BYTE	01FE	CSEG_INIT
$M_A_00003H_MSG  . . . . . . . .  	L BYTE	01ED	CSEG_INIT
$M_A_00003H_STRUC  . . . . . . .  	L BYTE	0185	CSEG_INIT
$M_A_00004H_END  . . . . . . . .  	L BYTE	0215	CSEG_INIT
$M_A_00004H_MSG  . . . . . . . .  	L BYTE	01FE	CSEG_INIT
$M_A_00004H_STRUC  . . . . . . .  	L BYTE	0189	CSEG_INIT
$M_A_00005H_END  . . . . . . . .  	L BYTE	0234	CSEG_INIT
$M_A_00005H_MSG  . . . . . . . .  	L BYTE	0215	CSEG_INIT
$M_A_00005H_STRUC  . . . . . . .  	L BYTE	018D	CSEG_INIT
$M_A_00006H_END  . . . . . . . .  	L BYTE	01ED	CSEG_INIT
$M_A_00006H_MSG  . . . . . . . .  	L BYTE	01D9	CSEG_INIT
$M_A_00006H_STRUC  . . . . . . .  	L BYTE	0181	CSEG_INIT
$M_A_00007H_END  . . . . . . . .  	L BYTE	024F	CSEG_INIT
$M_A_00007H_MSG  . . . . . . . .  	L BYTE	0234	CSEG_INIT
$M_A_00007H_STRUC  . . . . . . .  	L BYTE	0191	CSEG_INIT
$M_A_00008H_END  . . . . . . . .  	L BYTE	0277	CSEG_INIT
$M_A_00008H_MSG  . . . . . . . .  	L BYTE	024F	CSEG_INIT
$M_A_00008H_STRUC  . . . . . . .  	L BYTE	0195	CSEG_INIT
$M_A_00009H_END  . . . . . . . .  	L BYTE	028D	CSEG_INIT
$M_A_00009H_MSG  . . . . . . . .  	L BYTE	0277	CSEG_INIT
$M_A_00009H_STRUC  . . . . . . .  	L BYTE	0199	CSEG_INIT
$M_A_0000BH_END  . . . . . . . .  	L BYTE	02A6	CSEG_INIT
$M_A_0000BH_MSG  . . . . . . . .  	L BYTE	028D	CSEG_INIT
$M_A_0000BH_STRUC  . . . . . . .  	L BYTE	019D	CSEG_INIT
$M_A_0000CH_END  . . . . . . . .  	L BYTE	02C7	CSEG_INIT
$M_A_0000CH_MSG  . . . . . . . .  	L BYTE	02A6	CSEG_INIT
$M_A_0000CH_STRUC  . . . . . . .  	L BYTE	01A1	CSEG_INIT
$M_A_0000DH_END  . . . . . . . .  	L BYTE	02E8	CSEG_INIT
$M_A_0000DH_MSG  . . . . . . . .  	L BYTE	02C7	CSEG_INIT
$M_A_0000DH_STRUC  . . . . . . .  	L BYTE	01A5	CSEG_INIT
$M_A_0000EH_END  . . . . . . . .  	L BYTE	030A	CSEG_INIT
$M_A_0000EH_MSG  . . . . . . . .  	L BYTE	02E8	CSEG_INIT
$M_A_0000EH_STRUC  . . . . . . .  	L BYTE	01A9	CSEG_INIT
$M_A_0000FH_END  . . . . . . . .  	L BYTE	032D	CSEG_INIT
$M_A_0000FH_MSG  . . . . . . . .  	L BYTE	030A	CSEG_INIT
$M_A_0000FH_STRUC  . . . . . . .  	L BYTE	01AD	CSEG_INIT
$M_A_00010H_END  . . . . . . . .  	L BYTE	0367	CSEG_INIT
$M_A_00010H_MSG  . . . . . . . .  	L BYTE	032D	CSEG_INIT
$M_A_00010H_STRUC  . . . . . . .  	L BYTE	01B1	CSEG_INIT
$M_A_00011H_END  . . . . . . . .  	L BYTE	038C	CSEG_INIT
$M_A_00011H_MSG  . . . . . . . .  	L BYTE	0367	CSEG_INIT
$M_A_00011H_STRUC  . . . . . . .  	L BYTE	01B5	CSEG_INIT
$M_A_00012H_END  . . . . . . . .  	L BYTE	03A8	CSEG_INIT
$M_A_00012H_MSG  . . . . . . . .  	L BYTE	038C	CSEG_INIT
$M_A_00012H_STRUC  . . . . . . .  	L BYTE	01B9	CSEG_INIT
$M_A_00013H_END  . . . . . . . .  	L BYTE	03CC	CSEG_INIT
$M_A_00013H_MSG  . . . . . . . .  	L BYTE	03A8	CSEG_INIT
$M_A_00013H_STRUC  . . . . . . .  	L BYTE	01BD	CSEG_INIT
$M_BASE10  . . . . . . . . . . .  	NUMBER	000A	
$M_BASE16  . . . . . . . . . . .  	NUMBER	0010	
$M_BIN2ASC_REPLACE . . . . . . .  	N PROC	0A6A	CSEG_INIT	Length = 0099
$M_BYTE  . . . . . . . . . . . .  	NUMBER	0010	
$M_CHAR_ONLY . . . . . . . . . .  	NUMBER	0000	
$M_CHAR_REPLACE  . . . . . . . .  	N PROC	0A42	CSEG_INIT	Length = 0028
$M_CHECKSTDIN  . . . . . . . . .  	N PROC	04CB	CSEG_INIT	Length = 0013
$M_CHECKSTDOUT . . . . . . . . .  	N PROC	04DE	CSEG_INIT	Length = 0013
$M_CLASS_1_STRUC . . . . . . . .  	L BYTE	03D7	CSEG_INIT
$M_CLASS_2_STRUC . . . . . . . .  	L BYTE	03FB	CSEG_INIT
$M_CLASS_A_STRUC . . . . . . . .  	L BYTE	0179	CSEG_INIT
$M_CLASS_ID_SZ . . . . . . . . .  	NUMBER	0004	
$M_CLASS_NOT_EXIST . . . . . . .  	NUMBER	0000	
$M_CLS_1 . . . . . . . . . . . .  	N PROC	03CC	CSEG_INIT	Global	Length = 000B
$M_COMMA . . . . . . . . . . . .  	NUMBER	002C	
$M_CONVERT2ASC . . . . . . . . .  	N PROC	07DD	CSEG_INIT	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	0736	CSEG_INIT	Length = 0035
$M_DISPLAY_H_STRING  . . . . . .  	N PROC	076B	CSEG_INIT	Length = 002E
$M_DISPLAY_MESSAGE . . . . . . .  	N PROC	0847	CSEG_INIT	Length = 00F3
$M_DISPLAY_REPLACE . . . . . . .  	N PROC	0967	CSEG_INIT	Length = 00BF
$M_DISPLAY_STRING  . . . . . . .  	N PROC	06FB	CSEG_INIT	Length = 003B
Microsoft (R) Macro Assembler Version 5.10                  8/26/25 23:16:24
fastsm.SAL - fastopen SYSTEM MESSAGES                       Symbols-7


$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	093A	CSEG_INIT	Length = 002D
$M_FIND_SPECIFIED_MSG  . . . . .  	N PROC	0634	CSEG_INIT	Length = 0079
$M_FIRST_THOU  . . . . . . . . .  	NUMBER	0003	
$M_FLUSH_BUF . . . . . . . . . .  	N PROC	0A26	CSEG_INIT	Length = 001C
$M_GET_DBCS_VEC  . . . . . . . .  	N PROC	04B3	CSEG_INIT	Length = 0018
$M_GET_EXT_ERR_39  . . . . . . .  	N PROC	0799	CSEG_INIT	Length = 0009
$M_GET_MSG_ADDRESS . . . . . . .  	N PROC	0585	CSEG_INIT	Global	Length = 00A0
$M_ID_SZ . . . . . . . . . . . .  	NUMBER	0004	
$M_INCLUDE . . . . . . . . . . .  	NUMBER	0000	
$M_INDEX . . . . . . . . . . . .  	NUMBER	0004	
$M_IS_IT_DBCS  . . . . . . . . .  	N PROC	07B9	CSEG_INIT	Length = 0024
$M_LOAD  . . . . . . . . . . . .  	NUMBER	FFFF	
$M_MAX_2_YEAR  . . . . . . . . .  	NUMBER	0063	
$M_MSGDATA_ONLY  . . . . . . . .  	NUMBER	0000	
$M_MSGSERV_1 . . . . . . . . . .  	N PROC	03F1	CSEG_INIT	Global	Length = 000A
$M_MSGSERV_2 . . . . . . . . . .  	N PROC	0412	CSEG_INIT	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	0077	CSEG_INIT	Global
$M_SECOND_THOU . . . . . . . . .  	NUMBER	0006	
$M_SERVICE . . . . . . . . . . .  	NUMBER	FFFF	
$M_SET_LEN_IN_CX . . . . . . . .  	N PROC	0625	CSEG_INIT	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	053A	CSEG_INIT	Length = 002F
$M_WAIT_FOR_INPUT  . . . . . . .  	N PROC	0B03	CSEG_INIT	Length = 003C
$M_WORD  . . . . . . . . . . . .  	NUMBER	0020	
??0000 . . . . . . . . . . . . .  	L NEAR	061D	CSEG_INIT
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  fastsm		
@VERSION . . . . . . . . . . . .  	TEXT  510		


  10624 Source  Lines
  14979 Total   Lines
    538 Symbols

  44604 + 170413 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
