Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-1


				
				
				PAGE	60,132							;AN000;
				NAME	SELECT							;AN000;
				TITLE	SELECT0 - DOS - SELECT.EXE				;AN000;
				SUBTTL	select0.asm						;AN000;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				;
				;	SELECT0.ASM : Copyright 1988 Microsoft
				;
				;	DATE:	 July 4/87
				;
				;	COMMENTS: Assemble with MASM 3.0 (using the /A option)
				;
				;		  Panel flow is defined in the following files:
				;
				;		      � SELECT1.ASM
				;		      � SELECT2.ASM
				;		      � SELECT3.ASM
				;		      � SELECT4.ASM
				;		      � SELECT5.ASM
				;		      � SELECT6.ASM
				;
				;	CHANGE HISTORY:
				;
				;	This module contains the change history for the entire SELECT
				;	component as of 1/25/88.  Some changes before this date are
				;	listed in the individual modules.
				;
				;	A000 - 1/25/88, designates original 4.00 level source.
				;	A001-A009, All changes made prior to 1/25/88, these descriptions
				;	       exist in the individual modules which were Revised.
				;	A111 - D353, 12/28/87, added support for A: to A: installation on
				;	       systems with only one diskette drive.  J.W.
				;	A010 - D407, 1/25/88, changed install to one directory to not
				;	       copy over system files. J.W.
				;	A011 - P3231, 1/26/88, add 'PRINT /D:LPTx' or 'PRINT /D:COMx' to
				;	       autoexec.bat file for balanced and max. DOS function. S. H.
				;	A012 - P3238, 1/27/88, add /DATE as default shell invocation switch.
				;	       S. H.
				;	A013 - P3239, 1/27/88, changed text of prompt setting in DOSSHELL.BAT
				;	       file.  J.W.
				;	A014 - P3275, 1/29/87, added check for minimum DOS function. S. H.
				;	A015 - P3310, 2/1/88, Removed PRINT invocation from diskette based
				;	       system. J.W.
				;	A016 - D445, 2/4/88, removed /REF from DOSSHELL.BAT file. S. H.
				;	A017 - P3339, 2/4/88, Added check for read-only .BAT and .340 files,
				;	       J.W.
				;	A018 - D418, 2/4/88, removed the default /TEXT option on a model 25
				;	       or 30. S. H.
				;	A019 - D443, 2/4/88, changed 'SHELL.BAT' to DOSSHELL.BAT'. S. H.
				;	A020 - D438, 2/5/88, removed EXT_DISKETTE_SCREEN and EXT_DISK_PARMS_SCREEN
				;	       and other code related to supporting external diskette drives.
				;	       S. H.
				;	A021 - D442, 2/8/88, Added selection of SHARE when >32M partition
				;	       exists.	J.W.
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-2
select0.asm						;AN000;                                    

				;	A022 - P3403, 2/8/88, edited Welcome Screen to inform PS/2 users they
				;	       can use 1 or 2 MB 3.5" blank diskette.  S. H.
				;	A023 - P3292, 2/8/88, implemented error level check on FDISK to detect
				;	       a disk with no primary DOS partition defined.  J.W.
				;	A024 - D463, 2/9/88, changed method for reading and writing the
				;	       SELECT.DAT file.  File can now be compressed.  Eliminated
				;	       the large and slow CAS routines.  J.W./D.T.
				;	A025 - P3460, 2/10/88, Changed printer panel number and panel list
				;	       to remove unused panels.  J.W.
				;	A026 - P3450, 2/11/88, added color change to unselected fields on
				;	       the DOS location panel.	J.W.
				;	A027 - P3459, 2/15/88, set the carry flag in HANDLE_F3 in order to
				;	       eliminate an endless loop in GET_FUNCTION_CALL. S. H.
				;	A028 - P3592, 2/22/88, Add text to direct users to Getting Started With
				;	       DOS 4.00 book.  J.W.
				;	A029 - P3529, 2/17/88, Corrected GRAPHICS parameter initialization
				;	       problem.  J.W.
				;	A030 - P3527, 2/17/88, Changed incorrect diskette error panel to be
				;	       more descriptive. J.W.
				;	A031 - P3546, 2/17/88, changed code to allow a semi-colon as the last
				;	       character entered in DOS or APPEND PATH.  S. H.
				;	A032 - P3576, 2/22/88, changed code to flash message on screen if
				;	       user does not put SELECT diskette in to start SELECT (360KB
				;	       diskettes only).  S. H.
				;	A033 - P3620, 2/24/88, saved the value in I_DESTINATION so that it
				;	       is not wiped out upon reboot.  S. H.
				;	A034 - P3618, 2/25/88, changed code so that user does not have to reboot
				;	       if he makes no changes to the partition.  S. H.
				;	A035 - P3654, 2/29/88, updated help texts #18 and #19 received from I.D.
				;	       S. H.
				;	A036 - P3666, 3/1/88, added GRAPHICS to the SELECT.PRT file for
				;	       Quietwriter II and Pageprinter.	
				;	A037 - P3672, 3/1/88, removed /MSG from SHELL= statement in CONFIG.SYS
				;	       for installs to hard disk (for purposes of code reduction in
				;	       COMMAND.COM).  
				;	A038 - P3700, 3/2/88, changed second scroll option on DOS Location
				;	       Screen to let user know system files not copied.  
				;	A039 - D496, 3/3/88, added a dummy file for the user of the SHELL
				;	       tutorial to copy and delete.  
				;	A040 - P3741, 3/4/88, changed D_XMA2EMS_1 values.  
				;	A041 - P3747, 3/4/88, changed initialization values for D_BUFFERS_2
				;	       and D_FASTOPEN_2 (max. DOS utilization)	
				;	A042 - P3737, 3/9/88, changed FDISK.EXE to FDISK.COM.  
				;	A043 - P3813, 3/10/88, moved the COMSPEC statement in the AUTOEXEC.BAT
				;	       after the @ECHO OFF statement.  
				;	A044 - P3852, 3/14/88, changed D_XMA2EMS_1 values again.  
				;	A045 - D503, 3/15/88, changed MAJOR_DOS_VER to 4 and MINOR_DOS_VER to
				;	       00 for DOS 4.00 build. Everything visible to user still says
				;	       DOS 4.00.  
				;	A046 - D474, 3/16/88, changed the /E parameter for buffers to /X.
				;	       
				;	A047 - P3924, 3/17/88, SELECT now includes VERSIONA.INC for the DOS
				;	       version check---check formerly made in MAC_EQU.INC.  
				;	A048 - P3857, 3/18/88, changed code for 360KB install to hardfile on
				;	       256KB machine to deallocate memory before COMMAND.COM is
				;	       read in.  
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-3
select0.asm						;AN000;                                    

				;	A049 - P4017, 3/25/88, changed capital "W" to a small "w" in the
				;	       Getting Started with DOS 4.00 title in panels.  
				;	A050 - P4020, 3/25/88, removed quote marks and spaces between 1 MB
				;	       and 2 MB on Welcome Screen.  
				;	A051 - P3992, 3/26/88, edited code for DOS Location Screen so that
				;	       ESC (hit from any field) takes you back to previous screen.
				;	       
				;	A052 - P4015, 3/28/88, stated diskette size user needs when installing
				;	       to a single 3.5 inch diskette.  
				;	A053 - D505, 3/28/88, redesigned the Dos Location screen.  
				;	A054 - P4006, 3/28/88, turned off blinking cursor on early SELECT
				;	       screens (enhanced color display used).  
				;	A055 - D508, 3/29/88, put SHARE.EXE on 720 Install diskette.  
				;	A056 - P4047, 3/29/88, revised installation complete panel for
				;	       720 to 720 installation.  
				;	A057 - P3866, strengthened panel msg referring user to Getting Started
				;	       with DOS 4.00.  
				;	A058 - P3945, corrected code that creates install path when putting
				;	       DOSSHELL.BAT in the root.  
				;	A059 - P4056, 3/30/88, corrected input routines to flush buffer before
				;	       read.  
				;	A060 - P4008, 3/30/88, added error message for help access when install
				;	       disk not in drive.  
				;	A061 - P4000, 3/30/88, corrected problem with allowable return key
				;	       strings.  
				;	A062 - P4059, 3/30/88, added FORMAT.COM to SELECT and OPERATING
				;	       diskettes; moved IFSFUNC from OPERATING to INSTALL diskette.
				;	       
				;	A063 - P3950, 4/1/88, added code to enable SELECT to install to a
				;	       256KB 2-drive convertible.  
				;	A064 - D514, 4/6/88, revised two Installation Complete panels.
				;	       
				;	A065 - D501, 4/6/88, added code to check for OS/2 and rename its
				;	       config.sys and autoexec.bat to config.os2 and autoexec.os2.
				;	       
				;	A066 - P4179, D519, 4/6/88, moved the print statement to next to last
				;	       in the autoexec.bat file.  
				;	A067 - P4290, 4/13/88, output message to user if SELECT encounters
				;	       insufficient memory to install DOS.  
				;	A068 - P4325, 4/14/88, updated CASTRUC.INC to match G:\CASSFAR\PCSLCTP.
				;	       
				;	A069 - P4364, 4/18/88, updated SELECT to match new PCINPUT file.  
				;	A070 - P4401, 4/19/88, changed Latin America's default code page to 850.
				;	       
				;	A071 - P4428, 4/22/88, removed the /PRE parameter from the DOSSHELL.BAT.
				;	       
				;	A072 - P3950, overlay PARSER and PCINPUT segments if on a 256KB machine.
				;	       
				;	A073 - P4409, 5/2/88, corrected problem of SELECT using different default
				;	       drives on different machines---variable not assigned.  
				;	A074 - P4568, 5/2/88, disallow user to end SELECT by pressing CTRL-BREAK.  
				;	A075 - P4720, 5/6/88, changed "INSTALL COPY" diskette name to "SELECT
				;	       COPY".  
				;	A076 - P4718, 5/6/88, capitalized the sentence in the INSTALLATION
				;	       COMPLETE panels which points the user to the Getting Started
				;	       with DOS 4.00 book.  
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-4
select0.asm						;AN000;                                    

				;	A077 - P4772, 5/6/88, added /PROMPT as default startup parameter for
				;	       DOS Shell for 256K machine.  
				;	A078 - P4782, 5/9/88, changed FASTOPEN defaults for maximum DOS
				;	       function to 150,150.  
				;	A079 - P4744, 5/10/88, made panel and scroll field change for Installation
				;	       Option screen.  
				;	A080 - P4832, 5/11/88, changed SELECT.SKL and USA.MSG to reflect the
				;	       change of "INSTALL COPY" to "SELECT COPY" diskette (see P4720).
				;	       
				;	A081 - P4848, 5/12/88, spaced over the keys at the bottom of the help
				;	       panel to allow more room for translation; exported it on this
				;	       ptm to export help text changes.  
				;	A082 - P4916, 5/18/88, turned cursor off following FDISK reboot.
				;	       
				;	A083 - P4917, 5/19/88, stopped typomatic effect of pressing enter key
				;	       too long during installation.  
				;	A084 - P4906, 5/19/88, corrected mode 40 machine installation hang.
				;	       
				;	A085 - P4926, 5/19/88, homed the cursor before call to format so that
				;	       message stating % of diskette formatted is at top of screen.
				;	       
				;	A086 - P4934, 5/20/88, changed the 16h value used for INT 2Fh when
				;	       checking for ANSI presence to 1Ah to avoid MICROSOFT collision.
				;	       
				;	A087 - P4955, 5/23/88, adjusted the spacing between the ENTER and F1
				;	       keys on the bottom of panels 31 (Time and Date) and 32 (Format
				;	       Fixed Disk Drive) to give more room for translation.  
				;	A088 - P5064, 6/9/88, replaced a call to clear the input buffer in
				;	       PCINCHA_CALL (see A059).  
				;	A089 - P5048, 6/9/88, increased the value of MAX_NUM_PRINTER_DEFS to
				;	       allow more printers in the SELECT.PRT file.  
				;	A090 - P5127, 6/17/88, changed default index for alternate keyboards
				;	       to be second (old) keyboard.  J. Wright
				;	A091 - P5142, 6/30/88, reduced memory allocation for panels from 64KB
				;	       to 62KB to allow more room for foreign versions of SELECT to
				;	       run.  S. Holahan
				;	A092 - P5173, 7/15/88, added @BREAK=OFF" after :COMMON statement
				;	       in DOSSHELL.BAT file.  S. Holahan
				;
				;
				;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 0000				CODE	  SEGMENT PARA PUBLIC 'CODE'                            ;AN000; Segment for CASS libraries
 0000				CODE	  ENDS							;AN000;
												;
 0000				CODE_FAR  SEGMENT PARA PUBLIC 'CODE'                            ;AN000; Segment for miscellaneous ro
				utines
 0000				CODE_FAR  ENDS							;AN000;
												;
 0000				_TEXT	segment byte public 'CODE'                              ;AN000;
 0000				_TEXT	ends							;AN000;
 0000				_DATA	segment word public 'DATA'                              ;AN000;
 0000				_DATA	ends							;AN000;
 0000				CONST	segment word public 'CONST'                             ;AN000;
 0000				CONST	ends							;AN000;
 0000				_BSS	segment word public 'BSS'                               ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-5
select0.asm						;AN000;                                    

 0000				_BSS	ends							;AN000;
												;
												;
 0000				DATA	  SEGMENT BYTE PUBLIC 'DATA'                            ;AN000; Segment for Data values
 0000				DATA	  ENDS							;AN000;
												;
 0000				SELECT	SEGMENT PARA PUBLIC 'SELECT'                            ;AN000;
 0000				SELECT	  ENDS							;AN000;
				
 0000				SERVICE   SEGMENT PARA PUBLIC 'SERVICE'                         ;AN000; Segment for CAS_SERVICE rout
				ines
 0000				SERVICE   ENDS							;AN000;
												;
 0000				OUR_STACK SEGMENT BYTE	STACK					;AN000; Segment for Local Stack
 0000  0200[				  DB   512  DUP('IBM ')                                 ;AN000;
	   49 42 4D 20		
			 ]	
				
 = 0800				LAST_STACK EQU $						;AN000;
 0800				OUR_STACK ENDS							;AN000;
												;
 0000				PARSER	  SEGMENT PARA PUBLIC 'PARSER'                          ;AN000; Segment for PARSE code
 0000				PARSER	  ENDS							;AN000;
				
 0000				PCINPUT   SEGMENT PARA PUBLIC 'PCINPUT'                         ;AN072;
 0000				PCINPUT   ENDS							;AN072;
												;
 0000				ZSEG	  SEGMENT PARA PUBLIC 'ZSEG'                            ;AN000; Dummy segment for End-of-Cod
				e
 0000				ZSEG	  ENDS							;AN000;
												;
				AGROUP GROUP CODE,CODE_FAR,DATA,PARSER,SERVICE,SELECT,OUR_STACK,ZSEG  ;AN000;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				;
				;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				.LIST								;AN000;
												;
					EXTRN	DEALLOCATE_MEMORY_CALL:FAR			;AN000;
					EXTRN	CHECK_VERSION:NEAR				;AN000;
												;
					PUBLIC	INSTALL 					;AN000;
					PUBLIC	SYSDISPMSG					;AN000;
					PUBLIC	EXIT_SELECT					;AN000;
					PUBLIC	EXIT_SELECT2					;AN000;
					PUBLIC	INITIALIZATION					;AN000;
					PUBLIC	ABORT_SELECT					;AN000;
												;
					MSG_UTILNAME <SELECT>					;AN000;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-6
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  0002[                 C1	    $M_CLASS_ADDRS   DD        $M_NUM_CLS DUP(0)	     ;;AN000;; Allow pointers to specified c
				lasses
	   00000000          C1	
			 ]   C1	
			     C1	
 0034  FFFFFFFF              C1	    $M_CLS_TERM      DD        -1			     ;;AN000;;
 0038  00000000              C1	    $M_DBCS_VEC      DD        0			     ;;AN000;; Save DBCS vector
 003C  0000                  C1	    $M_HANDLE	     DW        ?			     ;;AN000;;
 003E  00                    C1	    $M_SIZE	     DB        0			     ;;AN000;;
 003F  0D 0A                 C1	    $M_CRLF	     DB        0DH,0AH			     ;;AN004;; CR LF message
 0041  00                    C1	    $M_CLASS	     DB        ?			     ;;AN004;; Saved class
 0042  0000                  C1	    $M_RETURN_ADDR   DW        ?			     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-7
DOS - Message Retriever - MSGSTR.INC Module                 

 0044  0000                  C1	    $M_MSG_NUM	     DW        $M_NULL			     ;;AN000;;
 0046  000A                  C1	    $M_DIVISOR	     DW        10			     ;;AN000;; Default = 10 (must be a WORD 
				for division)
 0048  0040[                 C1	    $M_TEMP_BUF      DB        $M_TEMP_BUF_SZ DUP("$")	     ;;AN000;; Temporary buffer
	   24                C1	
			 ]   C1	
			     C1	
 0088  24                    C1	    $M_BUF_TERM      DB        "$"			     ;;AN000;;
			     C1	
 0089                        C1	$M_RES_ADDRS ENDS					     ;;AN000;;
			     C1	$M_COUNTRY_INFO STRUC					     ;;AN000;; Expected Country infomation
			     C1								     ;;
 0000  0048[                 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	
 0048  0000                  C1	    $M_DATE_FORMAT   DW       ? 			     ;;AN000;; <------- Date Format
 004A  0005[                 C1	    $M_CURR_SEPARA   DB       5 DUP(?)			     ;;AN000;;
	   ??                C1	
			 ]   C1	
			     C1	
 004F  00 00                 C1	    $M_THOU_SEPARA   DB       ?,0			     ;;AN000;; <------- Thou Separator
 0051  00 00                 C1	    $M_DECI_SEPARA   DB       ?,0			     ;;AN000;; <------- Decimal Separator
 0053  00 00                 C1	    $M_DATE_SEPARA   DB       ?,0			     ;;AN000;; <------- Date Separator
 0055  00 00                 C1	    $M_TIME_SEPARA   DB       ?,0			     ;;AN000;; <------- Time Separator
 0057  00                    C1	    $M_CURR_FORMAT   DB       ? 			     ;;AN000;;
 0058  00                    C1	    $M_SIG_DIGS_CU   DB       ? 			     ;;AN000;;
 0059  00                    C1	    $M_TIME_FORMAT   DB       ? 			     ;;AN000;; <------- Time Format
			     C1								     ;;
 005A                        C1	$M_COUNTRY_INFO ENDS					     ;;AN000;;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				;
				;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 0000				SELECT	SEGMENT PARA PUBLIC 'SELECT'                            ;AN000;
					ASSUME	CS:SELECT,DS:DATA,SS:our_STACK			;AN000;
												;
 0000  0000			OLD_STACK_SEG	DW	?					;AN000;
 0002  0000			OLD_STACK_OFF	DW	?					;AN000;
												;
					INCLUDE CASEXTRN.INC					;AN000;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	;
			     C	;
			     C	;
			     C	;
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C		EXTRN	GET_PCB:NEAR			;AN000;
			     C		EXTRN	CURSORON:NEAR			;AN000;
			     C		EXTRN	CURSOROFF:NEAR			;AN000;
			     C		EXTRN	ADJUST_UP:NEAR			;AN000;
			     C		EXTRN	INITIALIZE:NEAR 		;AN000;
			     C		EXTRN	ADJUST_DOWN:NEAR		;AN000;
			     C		EXTRN	PCGVIDO_CALL:NEAR		;AN000;
			     C		EXTRN	HANDLE_CHILDREN:NEAR		;AN000;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-8
DOS - Message Retriever - MSGSTR.INC Module                 

			     C		EXTRN	INIT_STRING_CALL:NEAR		;AN000;
			     C		EXTRN	INIT_PQUEUE_CALL:NEAR		;AN000;
			     C		EXTRN	EXEC_SCROLL_CALL:NEAR		;AN000;
			     C		EXTRN	INIT_SCROLL_CALL:NEAR		;AN000;
			     C		EXTRN	GET_STRING_CALL:NEAR		;AN000;
			     C		EXTRN	INIT_SCROLL_STATUS_CALL:NEAR	;AN000;
			     C		EXTRN	PREPARE_PANEL_CALL:NEAR 	;AN000;
			     C		EXTRN	DISPLAY_PANEL_CALL:NEAR 	;AN000;
			     C		EXTRN	GET_FUNCTION_CALL:NEAR		;AN000;
			     C		EXTRN	TOGGLE_SUPPORT_CALL:NEAR	;AN000;
			     C		EXTRN	CHECK_MIN_MAX:NEAR		;AN000;
			     C		EXTRN	CONVERT_NUMERIC:NEAR		;AN000;
			     C		EXTRN	CONVERT_ASCII:NEAR		;AN000;
			     C		EXTRN	SET_SCROLL_COLOUR:NEAR		;AN000;
			     C		EXTRN	SET_SCROLL_CALL:NEAR		;AN000;
			     C		EXTRN	INIT_SCROLL_W_LIST_CALL:NEAR	;AN000;
			     C		EXTRN	INIT_SCROLL_W_NUM_CALL:NEAR	;AN000;
			     C		EXTRN	HANDLE_ERROR_CALL:FAR		;AN000;
			     C		EXTRN	HANDLE_PANEL_CALL:FAR		;AN000;
			     C		EXTRN	HANDLE_KEYSTROKE:FAR		;AN000;
			     C		EXTRN	RETURN_STRING_CALL:NEAR 	;AN000;
			     C		EXTRN	INIT_CHAR_CALL:NEAR		;AN000;JW
			     C		EXTRN	INSERT_DISK_ROUTINE:NEAR	;AN000;JW
			     C	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			     C	
												;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				;
				;	Beginning of code
				;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 0004				INSTALL PROC	FAR						;AN000;
 0004  FA				CLI							;AN000;
 0005  8C D0				MOV	AX,SS						;AN000;
 0007  2E: A3 0000 R			MOV	OLD_STACK_SEG,AX				;AN000;
 000B  2E: 89 26 0002 R			MOV	OLD_STACK_OFF,SP				;AN000;
 0010  B8 ---- R			mov	ax,our_stack					;AN000;
 0013  8E D0				mov	ss,ax						;AN000;
 0015  BC 0800				mov	sp,512*4					;AN000;
 0018  FB				STI							;AN000;
												;
 0019  B8 ---- R			MOV	AX,DATA 					;AN000;
 001C  8E D8				MOV	DS,AX						;AN000;
 001E  E9 0C8F R			JMP	INITIALIZATION					;AN000;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				;
				;	CODE TO LEAVE SELECT WITH!!!!
				;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 0021				EXIT_SELECT:							;AN000;
												;
					FIND_FILE	     S_AUTO_REBOOT, 0			;AN000;DT Make sure INSTALL disk in 
				drive
 0021  8D 3E 0000 E          1	    LEA  DI, S_AUTO_REBOOT				 ; 
 0025  B9 0000               1	    MOV  CX, 0				 ; 
 0028  9A 0000 ---- E        1	    CALL FIND_FILE_ROUTINE			 ; 
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-9
DOS - Message Retriever - MSGSTR.INC Module                 

					.IF < c >						;AN000;DT
 002D  73 73                 5						jnc $l1 
					   .REPEAT						;AN000;DT make sure diskette
 002F                        2	$l4: 
					      CLEAR_SCREEN					;AN000;DT with COMMAND.COM in drive
 002F  B9 0000               1		MOV	CX,0			; 
 0032  BA 184F               1		MOV	DX,184Fh		; 
 0035  B8 0600               1		MOV	AX,0600h		; 
 0038  B7 1F                 1		MOV	BH,01FH 		; 
 003A  CD 10                 1		INT	10H			; 
 003C  BA 0000               1		MOV	DX,0			; 
 003F  B7 00                 1		MOV	BH,0			; 
 0041  B4 02                 1		MOV	AH,2			; 
 0043  CD 10                 1		INT	10H			; 
					      DISPLAY_MESSAGE  19				;AN000;DT Insert INSTALL diskette
 0045  B8 0013               1	    MOV  AX, 19 										  ; 
 0048  9A 0000 ---- E        1	    CALL DISPLAY_MESSAGE_ROUTINE								
					  ; 
					      GET_FUNCTION	   FK_ENT			;AN000;DT
 004D  B9 0000 E             1		MOV	CX,FK_ENT_LEN		; 
 0050  8D 16 0000 E          1		LEA	DX,FK_ENT		; 
 0054  E8 0000 E             1		CALL	GET_FUNCTION_CALL	; 
					      FIND_FILE 	   S_AUTO_REBOOT, 0		;AN000;DT
 0057  8D 3E 0000 E          1	    LEA  DI, S_AUTO_REBOOT				 ; 
 005B  B9 0000               1	    MOV  CX, 0				 ; 
 005E  9A 0000 ---- E        1	    CALL FIND_FILE_ROUTINE			 ; 
						 .LEAVE < nc >					;AN000;DT
 0063  73 27                 5						jnc $l5 
						  HANDLE_ERROR	       ERR_DOS_DISK, 2		;AN000;DT
 0065  BB 0044               1		MOV	BX,ERR_DOS_DISK		; 
 0068  B9 0002               1		MOV	CX,2		; 
 006B  9A 0000 ---- E        1		CALL	HANDLE_ERROR_CALL	; 
 0070  73 18                 1		JNC	??0000		; 
 0072  B9 0000               2		MOV	CX,0			; 
 0075  BA 184F               2		MOV	DX,184Fh		; 
 0078  B8 0600               2		MOV	AX,0600h		; 
 007B  B7 07                 2		MOV	BH,7			; 
 007D  CD 10                 2		INT	10H			; 
 007F  BA 0000               2		MOV	DX,0			; 
 0082  B7 00                 2		MOV	BH,0			; 
 0084  B4 02                 2		MOV	AH,2			; 
 0086  CD 10                 2		INT	10H			; 
 0088  EB 97                 1		JMP	EXIT_SELECT		; 
 008A                        1	??0000:				; 
					   .UNTIL						;AN000;DT
 008A  EB A3                 4						jmp $l4 
 008C                        3	$l5: 
					   CLEAR_SCREEN2					;AN000;JW
 008C  B9 0000               1		MOV	CX,0			; 
 008F  BA 184F               1		MOV	DX,184Fh		; 
 0092  B8 0600               1		MOV	AX,0600h		; 
 0095  B7 07                 1		MOV	BH,7			; 
 0097  CD 10                 1		INT	10H			; 
 0099  BA 0000               1		MOV	DX,0			; 
 009C  B7 00                 1		MOV	BH,0			; 
 009E  B4 02                 1		MOV	AH,2			; 
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-10
DOS - Message Retriever - MSGSTR.INC Module                 

 00A0  CD 10                 1		INT	10H			; 
					.ENDIF							;AN000;
 00A2                        2	$l1: 
												;
 00A2				EXIT_SELECT2:							;AN000;
												;
					DEALLOCATE_MEMORY					;AN000;free up allocated segment
 00A2  9A 0000 ---- E        1		CALL	DEALLOCATE_MEMORY_CALL	; 
					.IF < NC >						;AN000;
 00A7  72 1A                 6						jc $l8 
 00A9  9A 0000 ---- E			   CALL    RESTORE_INT_23				;AN074;SEH restore ctrl-break before
				 exiting
 00AE  2E: A1 0000 R			   MOV	   AX,OLD_STACK_SEG				;AN000;
 00B2  8E D0				   MOV	   SS,AX					;AN000;
 00B4  2E: 8B 26 0002 R			   MOV	   SP,OLD_STACK_OFF				;AN000;
 00B9  E8 0000 E			   CALL    CURSORON					;AN000;
 00BC  B8 4C00				   MOV	   AX,4C00H					;AN000;
 00BF  CD 21				   INT	   21H						;AN000;
					 .ELSE							;AN000;
 00C1  EB 18                 3						jmp short $l7 
 00C3                        2	$l8: 
 00C3				ABORT_SELECT:							;AN000;exit without handling allocat
				ed memory
 00C3  9A 0000 ---- E			   CALL    RESTORE_INT_23				;AN074;SEH restore ctrl-break before
				 exiting
 00C8  2E: A1 0000 R			   MOV	   AX,OLD_STACK_SEG				;AN000;
 00CC  8E D0				   MOV	   SS,AX					;AN000;
 00CE  2E: 8B 26 0002 R			   MOV	   SP,OLD_STACK_OFF				;AN000;
 00D3  E8 0000 E			   CALL    CURSORON					;AN000;
 00D6  B8 4C00				   MOV	   AX,4C00H					;AN000;
 00D9  CD 21				   INT	   21H						;AN000;
					.ENDIF							;AN000;
 00DB                        2	$l7: 
 00DB				INSTALL ENDP							;AN000;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				;
				;	Message Retriever code inserted at this point....
				;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				 MSG_SERVICES <NOVERCHECKmsg, FARmsg, GETmsg, DISPLAYmsg, LOADmsg>    ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-11
DOS - Message Retriever - LOADMSG.ASM Module                

 00DB                        C1		SYSLOADMSG PROC FAR				     ;;AN000;;
 00DB  50                    C1		PUSH	AX					     ;;AN000;
 00DC  53                    C1		PUSH	BX					     ;;AN000;
 00DD  52                    C1		PUSH	DX					     ;;AN000;
 00DE  06                    C1		PUSH	ES					     ;;AN000;
 00DF  57                    C1		PUSH	DI					     ;;AN000;
 00E0  33 C9                 C1		XOR	CX,CX					     ;;AN000;  Reset to zero
 00E2  8E C1                 C1		MOV	ES,CX					     ;;AN000;
 00E4  33 FF                 C1		XOR	DI,DI					     ;;AN000;
 00E6  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 00E9  B2 00                 C1		MOV	DL,DOS_GET_EXTENDED			     ;;AN000;; Where are the Extended errors
				 in COMMAND.COM
 00EB  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 00ED  8C 06 000A E          C1		MOV	WORD PTR $M_RT.$M_EXT_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 00F1  89 3E 0008 E          C1		MOV	WORD PTR $M_RT.$M_EXT_COMMAND,DI	     ;;AN000;;
 00F5  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 00F8  B2 02                 C1		MOV	DL,DOS_GET_PARSE			     ;;AN000;; Where are the Parse errors in
				 COMMAND.COM
 00FA  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 00FC  8C 06 0012 E          C1		MOV	WORD PTR $M_RT.$M_PARSE_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 0100  89 3E 0010 E          C1		MOV	WORD PTR $M_RT.$M_PARSE_COMMAND,DI	     ;;AN000;;
 0104  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN000;; 2FH Interface
 0107  B2 04                 C1		MOV	DL,DOS_GET_CRITICAL			     ;;AN000;; Where are the Critical errors
				 in COMMAND.COM
 0109  CD 2F                 C1		INT	2FH					     ;;AN000;; Private interface
 010B  8C 06 0022 E          C1		MOV	WORD PTR $M_RT.$M_CRIT_COMMAND+2,ES	     ;;AN000;;	Move into first avaliable ta
				ble location
 010F  89 3E 0020 E          C1		MOV	WORD PTR $M_RT.$M_CRIT_COMMAND,DI	     ;;AN000;;
 0113  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN001;; 2FH Interface
 0116  B2 06                 C1		MOV	DL,DOS_GET_FILE 			     ;;AN001;; Where are the FILE dependant 
				in IFSFUNC.EXE
 0118  CD 2F                 C1		INT	2FH					     ;;AN001;; Private interface
 011A  8C 06 0006 E          C1		MOV	WORD PTR $M_RT.$M_EXT_FILE+2,ES 	     ;;AN001;;	Move into first avaliable ta
				ble location
 011E  89 3E 0004 E          C1		MOV	WORD PTR $M_RT.$M_EXT_FILE,DI		     ;;AN001;;
 0122  9A 0C64 ---- R        C1		  CALL	  FAR PTR $M_MSGSERV_1			     ;;AN000;; Get addressibilty to MSGSERV 
				CLASS 1 (EXTENDED Errors)
 0127  8C 06 0002 E          C1		MOV	WORD PTR $M_RT.$M_EXT_ERR_ADDRS+2,ES	     ;;AN000;; Move into first avaliable tab
				le location
 012B  89 3E 0000 E          C1		MOV	WORD PTR $M_RT.$M_EXT_ERR_ADDRS,DI	     ;;AN000;;
 012F  8C 06 001E E          C1		MOV	WORD PTR $M_RT.$M_CRIT_ADDRS+2,ES	     ;;AN000;; Move into first avaliable tab
				le location
 0133  89 3E 001C E          C1		MOV	WORD PTR $M_RT.$M_CRIT_ADDRS,DI 	     ;;AN000;;
 0137  9A 0C85 ---- R        C1		  CALL	  FAR PTR $M_MSGSERV_2			     ;;AN000;; Get addressibilty to MSGSERV 
				CLASS 2 (PARSE Errors)
 013C  8C 06 0016 E          C1		MOV	WORD PTR $M_RT.$M_PARSE_ADDRS+2,ES	     ;;AN000;; Move into first avaliable tab
				le location
 0140  89 3E 0014 E          C1		MOV	WORD PTR $M_RT.$M_PARSE_ADDRS,DI	     ;;AN000;;
 0144  B8 122E               C1		MOV	AX,DOS_GET_EXT_PARSE_ADD		     ;;AN001;; 2FH Interface
 0147  B2 08                 C1		MOV	DL,DOS_GET_ADDR 			     ;;AN001;; Where is the READ_DISK_PROC i
				n COMMAND.COM
 0149  CD 2F                 C1		INT	2FH					     ;;AN001;; Private interface
 014B  8C 06 002A E          C1		MOV	WORD PTR $M_RT.$M_DISK_PROC_ADDR+2,ES	     ;;AN001;;	Move into first avaliable ta
				ble location
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-12
DOS - Message Retriever - LOADMSG.ASM Module                

 014F  89 3E 0028 E          C1		MOV	WORD PTR $M_RT.$M_DISK_PROC_ADDR,DI	     ;;AN001;;
 0153  9A 08B2 ---- R        C4	    CALL    FAR PTR $M_CLS_1		 ;  Get addressibilty to class &$M_APPEND (ES:DI) 
 0158  8C 06 002E E          C4	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX+2,ES ;  Move into first avaliable table location 
 015C  89 3E 002C E          C4	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 0160  9A 0C3F ---- R        C4	    CALL    FAR PTR $M_CLS_2		 ;  Get addressibilty to class &$M_APPEND (ES:DI) 
 0165  8C 06 0032 E          C4	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX+2,ES ;  Move into first avaliable table location 
 0169  89 3E 0030 E          C4	    MOV     WORD PTR $M_RT.$M_CLASS_ADDRS+$M_INDEX,DI ; 
 016D  E8 0185 R             C1		CALL	$M_GET_DBCS_VEC 			     ;;AN000;; Save the DBCS vector
 0170  E8 019D R             C1		CALL	$M_CHECKSTDIN				     ;;AN000;;	 Set EOF CHECK
 0173  E8 01B0 R             C1		CALL	$M_CHECKSTDOUT				     ;;AN000;;	 Set Disk Full CHECK
 0176  F8                    C1		CLC						     ;;AN000;;	 Make sure carry is clear
 0177  72 07                 C1		JC $MIF20
 0179  5F                    C1		  POP	  DI					     ;;AN000;;	Restore REGS
 017A  07                    C1		  POP	  ES					     ;;AN000;;
 017B  5A                    C1		  POP	  DX					     ;;AN000;;
 017C  5B                    C1		  POP	  BX					     ;;AN000;;
 017D  58                    C1		  POP	  AX					     ;;AN000;;
 017E  EB 04                 C1		JMP SHORT $MEN20
 0180                        C1	$MIF20:
 0180  83 C4 0A              C1		  ADD	  SP,10 				     ;;AN000;;
 0183  F9                    C1		  STC						     ;;AN000;;	Reset carry flag
 0184                        C1	$MEN20:
 0184  CB                    C1		RET						     ;;AN000;;
 0185                        C1		SYSLOADMSG ENDP 				     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-13
DOS - Message Retriever - $M_VERSION_CHECK Proc             

 0185                        C1	$M_GET_DBCS_VEC PROC NEAR				     ;;AN000;;
 0185  50                    C1		PUSH	AX					     ;;AN000;; Save character to check
 0186  56                    C1		PUSH	SI					     ;;AN000;;
 0187  1E                    C1		PUSH	DS					     ;;AN000;;
 0188  B8 6300               C1		MOV	AX,DOS_GET_DBCS_INFO			     ;;AN000;; DOS function to get DBSC envi
				ronment
 018B  CD 21                 C1		INT	21H					     ;;AN000;; Get environment pointer
 018D  1E                    C1		PUSH	DS					     ;;AN000;; Get environment pointer
 018E  07                    C1		POP	ES					     ;;AN000;; Get environment pointer
 018F  1F                    C1		POP	DS					     ;;AN000;; Get environment pointer
 0190  72 08                 C1		JC $MIF23
 0192  89 36 0038 E          C1		  MOV	  WORD PTR $M_RT.$M_DBCS_VEC,SI 	     ;;AN000;; Save DBCS Vector
 0196  8C 06 003A E          C1		  MOV	  WORD PTR $M_RT.$M_DBCS_VEC+2,ES	     ;;AN000;;
 019A                        C1	$MIF23:
 019A  5E                    C1		POP	SI					     ;;AN000;;
 019B  58                    C1		POP	AX					     ;;AN000;; Retrieve character to check
 019C  C3                    C1		RET						     ;;AN000;; Return
 019D                        C1	$M_GET_DBCS_VEC ENDP					     ;;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-14
DOS - Message Retriever - $M_CHECKSTDIN Proc                

 019D                        C1	$M_CHECKSTDIN PROC NEAR 				     ;AN001;
 019D  B8 4400               C1		  MOV	  AX,DOS_IOCTL_GET_INFO 		     ;AN001; Get info using IOCTL
 01A0  BB 0000               C1		  MOV	  BX,STDIN				     ;AN001;
 01A3  33 D2                 C1		  XOR	  DX,DX 				     ;AN001;
 01A5  CD 21                 C1		  INT	  21H					     ;AN001;
 01A7  80 CE 01              C1		  OR	  DH,$M_CRIT_ERR_MASK			     ;AN001; Turn on bit
 01AA  B8 4401               C1		  MOV	  AX,DOS_IOCTL_SET_INFO 		     ;AN001; Set info using IOCTL
 01AD  CD 21                 C1		  INT	  21H					     ;AN001;
 01AF  C3                    C1		  RET						     ;AN001;
 01B0                        C1	$M_CHECKSTDIN ENDP					     ;AN001;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-15
DOS - Message Retriever - $M_CHECKSTDOUT Proc               

 01B0                        C1	$M_CHECKSTDOUT PROC NEAR				     ;AN001;
 01B0  B8 4400               C1		  MOV	  AX,DOS_IOCTL_GET_INFO 		     ;AN001; Get info using IOCTL
 01B3  BB 0001               C1		  MOV	  BX,STDOUT				     ;AN001;
 01B6  33 D2                 C1		  XOR	  DX,DX 				     ;AN001;
 01B8  CD 21                 C1		  INT	  21H					     ;AN001;
 01BA  80 CE 01              C1		  OR	  DH,$M_CRIT_ERR_MASK			     ;AN001; Turn on bit
 01BD  B8 4401               C1		  MOV	  AX,DOS_IOCTL_SET_INFO 		     ;AN001; Set info using IOCTL
 01C0  CD 21                 C1		  INT	  21H					     ;AN001;
 01C2  C3                    C1		  RET						     ;AN001;
 01C3                        C1	$M_CHECKSTDOUT ENDP					     ;AN001;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-16
DOS - Message Retriever - GETMSG.ASM Module                 

 01C3                        C1		SYSGETMSG PROC	FAR				     ;;AN000;;
 01C3  50                    C1		PUSH	AX					     ;;AN000;; Save changed regs
 01C4  06                    C1		PUSH	ES					     ;;AN000;;
 01C5  57                    C1		PUSH	DI					     ;;AN000;;
 01C6  55                    C1		PUSH	BP					     ;;AN000;;
 01C7  9A 01E1 ---- R        C1		CALL	FAR PTR $M_GET_MSG_ADDRESS		     ;;AN000;; Scan thru classes to find mes
				sage
 01CC  72 0E                 C1		JC $MIF31
 01CE  80 FE FF              C1		  CMP	  DH,UTILITY_MSG_CLASS
 01D1  F8                    C1		  CLC						     ;;AN000;;
 01D2  74 04                 C1		  JE $MIF32
 01D4  06                    C1		    PUSH    ES					     ;;AN000;;
 01D5  1F                    C1		    POP     DS					     ;;AN000;;	   Return message in DS:SI
 01D6  EB 02                 C1		  JMP SHORT $MEN32
 01D8                        C1	$MIF32:
 01D8  06                    C1		    PUSH    ES					     ;;AN000;;
 01D9  1F                    C1		    POP     DS					     ;;AN000;;	   Return message in DS:SI
 01DA                        C1	$MEN32:
 01DA  8B F7                 C1		  MOV	  SI,DI 				     ;;AN000;;	   Return message in DS:SI
 01DC                        C1	$MIF31:
 01DC  5D                    C1		POP	BP					     ;;AN000;; Restore changed regs
 01DD  5F                    C1		POP	DI					     ;;AN000;;
 01DE  07                    C1		POP	ES					     ;;AN000;;
 01DF  58                    C1		POP	AX					     ;;AN000;;
 01E0  CB                    C1		RET						     ;;AN000;;	  Return
 01E1                        C1		SYSGETMSG ENDP					     ;;
 01E1                        C1		  $M_GET_MSG_ADDRESS PROC FAR			     ;;AN000;;
 01E1  56                    C1		  PUSH	  SI					     ;;AN000;;
 01E2  53                    C1		  PUSH	  BX					     ;;AN000;;
 01E3  33 F6                 C1		  XOR	  SI,SI 				     ;;AN000;; Use SI as an index
 01E5  33 C9                 C1		  XOR	  CX,CX 				     ;;AN000;; Use CX as an size
 01E7                        C1	$MDO36:
 01E7  80 FE FF              C1		    CMP     DH,UTILITY_MSG_CLASS		     ;;AN000;; Were utility messages request
				ed?
 01EA  75 08                 C1		    JNE $MIF37
 01EC  C4 BC 002C E          C1			LES	DI,DWORD PTR $M_RT.$M_CLASS_ADDRS[SI] ;;AN000;;  Get address of class
 01F0  8C C3                 C1			MOV	BX,ES				     ;;AN000;
 01F2  EB 25                 C1		    JMP SHORT $MEN37
 01F4                        C1	$MIF37:
 01F4  F6 C6 02              C1		      TEST    DH,PARSE_ERR_CLASS		     ;;AN000;;	 Were parse errors requested
				?
 01F7  74 08                 C1		      JE $MIF39
 01F9  C4 BC 0010 E          C1			LES	DI,DWORD PTR $M_RT.$M_PARSE_COMMAND[SI] ;;AN000;;   Get address of class
 01FD  8C C3                 C1			MOV	BX,ES				     ;;AN000;
 01FF  EB 18                 C1		      JMP SHORT $MEN39
 0201                        C1	$MIF39:
 0201  3D 0013               C1			CMP	AX,$M_CRIT_LO			     ;;AN000;;	   Is this a critical error?
 0204  72 0D                 C1			JNAE $MIF41
 0206  3D 0027               C1			CMP	AX,$M_CRIT_HI			     ;;AN000;;
 0209  77 08                 C1			JNBE $MIF41
 020B  C4 BC 001C E          C1			  LES	  DI,DWORD PTR $M_RT.$M_CRIT_ADDRS[SI] ;;AN000;; Get address of class
 020F  8C C3                 C1			  MOV	  BX,ES 			     ;;AN000;
 0211  EB 06                 C1			JMP SHORT $MEN41
 0213                        C1	$MIF41:
 0213  C4 BC 0000 E          C1			  LES	  DI,DWORD PTR $M_RT.$M_EXT_ERR_ADDRS[SI] ;;AN000;; Get address of class
 0217  8C C3                 C1			  MOV	  BX,ES 			     ;;AN000;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-17
DOS - Message Retriever - GETMSG.ASM Module                 

 0219                        C1	$MEN41:
 0219                        C1	$MEN39:
 0219                        C1	$MEN37:
 0219  83 FB FF              C1		    CMP     BX,$M_TERMINATING_FLAG		     ;;AN000;; Are we finished all classes?
 021C  75 16                 C1		    JNE $MIF46
 021E  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN000;;	  Was it a UTILITY class?
 0221  75 03                 C1		      JNE $MIF47
 0223  F9                    C1			STC					     ;;AN000;;	    Set the carry flag
 0224  EB 0C                 C1		      JMP SHORT $MEN47
 0226                        C1	$MIF47:
 0226  A3 0044 E             C1			MOV	$M_RT.$M_MSG_NUM,AX		     ;;AN000;;	    Save message number
 0229  B8 FFFF               C1			MOV	AX,$M_SPECIAL_MSG_NUM		     ;;AN000;;	    Set special message numb
				er
 022C  BD 0001               C1			MOV	BP,$M_ONE_REPLACE		     ;;AN000;;	    Set one replace in messa
				ge
 022F  33 F6                 C1			XOR	SI,SI				     ;;AN000;;	    Reset the SI index to st
				art again
 0231  F8                    C1			CLC					     ;;AN000;;
 0232                        C1	$MEN47:
 0232  EB 0C                 C1		    JMP SHORT $MEN46
 0234                        C1	$MIF46:
 0234  83 FB 00              C1		      CMP     BX,$M_CLASS_NOT_EXIST		     ;;AN000;;	 Does this class exist?
 0237  74 03                 C1		      JE $MIF51
 0239  E8 0290 R             C1			CALL	$M_FIND_SPECIFIED_MSG		     ;;AN000;;	   Try to find the message
 023C                        C1	$MIF51:
 023C  83 C6 04              C1		      ADD     SI,$M_ADDR_SZ_FAR 		     ;;AN000;;	     Get next class
 023F  F8                    C1		      CLC					     ;;AN000;;
 0240                        C1	$MEN46:
 0240  72 06                 C1		  JC $MEN36
 0242  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	   Was the message found?
 0244  75 02                 C1		  JNZ $MXL2
 0246  EB 9F                 C1		  JMP $MDO36
 0248                        C1	$MXL2:
 0248                        C1	$MEN36:
 0248  9C                    C1		  PUSHF 					     ;;AN006;; Save the flag state
 0249  80 FE 01              C1		  CMP	  DH,EXT_ERR_CLASS			     ;;AN006;; Was an extended error request
				ed?
 024C  75 29                 C1		  JNE $MIF56
 024E  52                    C1		    PUSH    DX					     ;;AN006;;	Save all needed registers
 024F  55                    C1		    PUSH    BP					     ;;AN006;;
 0250  51                    C1		    PUSH    CX					     ;;AN006;;
 0251  06                    C1		    PUSH    ES					     ;;AN006;;
 0252  57                    C1		    PUSH    DI					     ;;AN006;;
 0253  50                    C1		    PUSH    AX					     ;;AN006;;
 0254  B8 0500               C1		    MOV     AX,IFSFUNC_INSTALL_CHECK		     ;;AN006;;	Check if IFSFUNC is installe
				d
 0257  CD 2F                 C1		    INT     2FH 				     ;;AN006;;
 0259  3C FF                 C1		    CMP     AL,IFSFUNC_INSTALLED		     ;;AN006;;	Is it installed?
 025B  58                    C1		    POP     AX					     ;;AN006;;	Restore msg number
 025C  75 09                 C1		    JNE $MIF57
 025E  8B D8                 C1		      MOV     BX,AX				     ;;AN006;;	  BX is the extended error n
				umber
 0260  B8 0502               C1		      MOV     AX,IFS_GET_ERR_TEXT		     ;;AN006;;	  AX is the muliplex number
 0263  CD 2F                 C1		      INT     2FH				     ;;AN006;;	  Call IFSFUNC
 0265  EB 01                 C1		    JMP SHORT $MEN57
 0267                        C1	$MIF57:
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-18
DOS - Message Retriever - GETMSG.ASM Module                 

 0267  F9                    C1		      STC					     ;;AN006;;	  Carry conditon
 0268                        C1	$MEN57:
 0268  73 05                 C1		    JNC $MIF60
 026A  5F                    C1		      POP     DI				     ;;AN006;;	No,
 026B  07                    C1		      POP     ES				     ;;AN006;;	 Restore old pointer
 026C  59                    C1		      POP     CX				     ;;AN006;;
 026D  EB 06                 C1		    JMP SHORT $MEN60
 026F                        C1	$MIF60:
 026F  83 C4 06              C1		      ADD     SP,6				     ;;AN006;;	 Throw away old pointer
 0272  E8 0281 R             C1		      CALL    $M_SET_LEN_IN_CX			     ;;AN006;;	 Get the length of the ASCII
				Z string
 0275                        C1	$MEN60:
 0275  5D                    C1		    POP     BP					     ;;AN006;;	Restore other Regs
 0276  5A                    C1		    POP     DX					     ;;AN006;;
 0277                        C1	$MIF56:
 0277  EB 01                 C2		   JMP	   $+3 
 0279                        C2	??0001   LABEL   NEAR 
 0279  CF                    C2		   IRET 
 027A  0E                    C2		   PUSH    CS 
 027B  E8 0279 R             C2		   CALL    ??0001 
 027E  5B                    C1		  POP	  BX					     ;;AN000;;
 027F  5E                    C1		  POP	  SI					     ;;AN000;;
 0280  CB                    C1		  RET						     ;;AN000;; Return ES:DI pointing to the 
				message
 0281                        C1	$M_GET_MSG_ADDRESS ENDP 				     ;;
 0281                        C1	$M_SET_LEN_IN_CX PROC NEAR				     ;;
 0281  57                    C1		  PUSH	  DI					     ;;AN006;; Save position
 0282  50                    C1		  PUSH	  AX					     ;;AN006;;
 0283  B9 FFFF               C1		  MOV	  CX,-1 				     ;;AN006;; Set CX for decrements
 0286  32 C0                 C1		  XOR	  AL,AL 				     ;;AN006;; Prepare compare register
 0288  F2/ AE                C1		  REPNE   SCASB 				     ;;AN006;; Scan for zero
 028A  F7 D1                 C1		  NOT	  CX					     ;;AN006;; Change decrement into number
 028C  49                    C1		  DEC	  CX					     ;;AN006;; Don't include the zero
 028D  58                    C1		  POP	  AX					     ;;AN006;;
 028E  5F                    C1		  POP	  DI					     ;;AN006;; Restore position
 028F  C3                    C1		  RET						     ;;AN006;;
 0290                        C1	$M_SET_LEN_IN_CX ENDP					     ;;
 0290                        C1	$M_FIND_SPECIFIED_MSG PROC NEAR 			     ;;AN000;;
 0290  83 FB 01              C1		  CMP	  BX,1					     ;;AN004;;	Do we have an address to CAL
				L?
 0293  75 1D                 C1		  JNE $MIF64
 0295  83 3E 0028 E FF       C1		  CMP	  WORD PTR $M_RT.$M_DISK_PROC_ADDR,-1	     ;;AN004;;	Do we have an address to CAL
				L?
 029A  74 16                 C1		  JE $MIF64
 029C  3D FFFF               C1		    CMP     AX,$M_SPECIAL_MSG_NUM		     ;;AN004;; Are we displaying a default E
				xt Err?
 029F  75 0B                 C1		    JNE $MIF65
 02A1  50                    C1		      PUSH    AX				     ;;AN004;;	 Reset the special message n
				umber
 02A2  A1 0044 E             C1		      MOV     AX,$M_RT.$M_MSG_NUM		     ;;AN004;;	 Get the old message number
 02A5  FF 1E 0028 E          C1		      CALL    DWORD PTR $M_RT.$M_DISK_PROC_ADDR      ;;AN004;;	 Call the READ_DISK_PROC to 
				get error text
 02A9  58                    C1		      POP     AX				     ;;AN004;;	 Reset the special message n
				umber
 02AA  EB 04                 C1		    JMP SHORT $MEN65
 02AC                        C1	$MIF65:
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-19
DOS - Message Retriever - GETMSG.ASM Module                 

 02AC  FF 1E 0028 E          C1		      CALL    DWORD PTR $M_RT.$M_DISK_PROC_ADDR      ;;AN004;;	 Call the READ_DISK_PROC to 
				get error text
 02B0                        C1	$MEN65:
 02B0  EB 1A                 C1		  JMP SHORT $MEN64
 02B2                        C1	$MIF64:
 02B2  33 C9                 C1		    XOR     CX,CX				     ;;AN002;;	 CX = 0 will allow us to
 02B4  80 FE FF              C1		    CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;
 02B7  74 06                 C1		    JE $MIF69
 02B9  26: 8A 4D 03          C1		      MOV     CL,BYTE PTR ES:[DI].$M_NUM_CLS_MSG     ;;AN001;;	 Get number of messages in c
				lass
 02BD  EB 09                 C1		    JMP SHORT $MEN69
 02BF                        C1	$MIF69:
 02BF  26: 38 35             C1		      CMP     BYTE PTR ES:[DI].$M_CLASS_ID,DH	     ;;AN002;; Check if class still exists a
				t
 02C2  75 04                 C1		      JNE $MIF71
 02C4  26: 8A 4D 03          C1			MOV	CL,BYTE PTR ES:[DI].$M_NUM_CLS_MSG   ;;AN000;;	   Get number of messages in
				 class
 02C8                        C1	$MIF71:
 02C8                        C1	$MEN69:
 02C8  83 C7 04              C1		    ADD     DI,$M_CLASS_ID_SZ			     ;;AN000;;	   Point past the class head
				er
 02CB  F9                    C1		    STC 					     ;;AN004;;	 Flag that we haven't found 
				anything yet
 02CC                        C1	$MEN64:
 02CC  73 2B                 C1		  JNC $MIF75
 02CE  F8                    C1		    CLC 					     ;;AN004;; No, reset carry
 02CF                        C1	$MDO76:
 02CF  0B C9                 C1		      OR      CX,CX				     ;;AN000;;	  Do we have any to check?
 02D1  74 19                 C1		    JZ $MEN76
 02D3  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;
 02D6  74 05                 C1		      JE $MIF78
 02D8  26: 3B 05             C1			CMP	AX,WORD PTR ES:[DI].$M_NUM	     ;;AN001;; Is this the message requested
				?
 02DB  EB 03                 C1		      JMP SHORT $MEN78
 02DD                        C1	$MIF78:
 02DD  26: 3B 05             C1			CMP	AX,WORD PTR ES:[DI].$M_NUM	     ;;AN000;; Is this the message requested
				?
 02E0                        C1	$MEN78:
 02E0  75 02                 C1		    JNE $MIF76
 02E2  EB 09                 C1		    JMP SHORT $MSR76
 02E4                        C1	$MIF76:
 02E4  49                    C1		      DEC     CX				     ;;AN000;;	  No, well do we have more t
				o check?
 02E5  74 05                 C1		    JZ $MEN76
 02E7  83 C7 04              C1		      ADD     DI,$M_ID_SZ			     ;;AN000;;	     Yes, skip past msg head
				er
 02EA  EB E3                 C1		    JMP SHORT $MDO76
 02EC                        C1	$MEN76:
 02EC  F9                    C1		      STC					     ;;AN000;;
 02ED                        C1	$MSR76:
 02ED  72 0A                 C1		    JC $MIF86
 02EF  80 FE FF              C1		      CMP     DH,UTILITY_MSG_CLASS		     ;;AN001;;	 Yes, is it a utility messag
				e?
 02F2  F8                    C1		      CLC					     ;;AN001;;
 02F3  75 00                 C1		      JNE $MIF87
 02F5                        C1	$MIF87:
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-20
DOS - Message Retriever - GETMSG.ASM Module                 

 02F5  26: 03 7D 02          C1		      ADD     DI,WORD PTR ES:[DI].$M_TXT_PTR	     ;;AN000;; Prepare ES:DI pointing to the
				 message
 02F9                        C1	$MIF86:
 02F9                        C1	$MIF75:
 02F9  72 06                 C1		  JC $MIF91
 02FB  32 ED                 C1		    XOR     CH,CH				     ;;AN000;;
 02FD  26: 8A 0D             C1		    MOV     CL,BYTE PTR ES:[DI] 		     ;;AN000;;	 Move size into CX
 0300  47                    C1		    INC     DI					     ;;AN000;;	 Increment past length
 0301                        C1	$MIF91:
 0301  C6 06 003E E 00 90    C1		  MOV	  $M_RT.$M_SIZE,$M_NULL 		     ;;AN004;; Reset variable
 0307  C3                    C1		  RET						     ;;AN000;; Return
 0308                        C1	$M_FIND_SPECIFIED_MSG ENDP				     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-21
DOS - Message Retriever - DISPMSG.ASM Module                

 0308                        C1		SYSDISPMSG PROC FAR				     ;;AN000;;
 0308  50                    C1		PUSH	AX					     ;;AN000;; Save changed REGs
 0309  53                    C1		PUSH	BX					     ;;AN000;;
 030A  51                    C1		PUSH	CX					     ;;AN000;;
 030B  55                    C1		PUSH	BP					     ;;AN000;;
 030C  57                    C1		PUSH	DI					     ;;AN000;; Save pointer to input buffer 
				(offset)
 030D  06                    C1		PUSH	ES					     ;;AN000;; Save pointer to input buffer 
				(segment)
 030E  52                    C1		PUSH	DX					     ;;AN000;; Save Input/Class request
 030F  8B E9                 C1		MOV	BP,CX					     ;;AN000;; Use BP to hold replace count
 0311  89 1E 003C E          C1		MOV	WORD PTR $M_RT.$M_HANDLE,BX		     ;;AN000;; Save handle
 0315  88 36 0041 E          C1		MOV	BYTE PTR $M_RT.$M_CLASS,DH		     ;;AN004;; Save class
 0319  9A 01E1 ---- R        C1		CALL	FAR PTR $M_GET_MSG_ADDRESS		     ;;AN000;; Scan thru classes to find mes
				sage
 031E  0B C9                 C1		OR	CX,CX					     ;;AN000;; Was message found?
 0320  74 1C                 C1		JZ $MIF93
 0322  0B ED                 C1		  OR	  BP,BP 				     ;;AN000;;	 Were replacable parameters 
				requested
 0324  75 05                 C1		  JNZ $MIF94
 0326  E8 034F R             C1		    CALL    $M_DISPLAY_STRING			     ;;AN000;; No, great . . . Display messa
				ge
 0329  EB 03                 C1		  JMP SHORT $MEN94
 032B                        C1	$MIF94:
 032B  E8 049B R             C1		    CALL    $M_DISPLAY_MESSAGE			     ;;AN000;;	 Display the message with su
				bstitutions
 032E                        C1	$MEN94:
 032E  72 08                 C1		  JC $MIF97
 0330  5A                    C1		    POP     DX					     ;;AN000;; Get Input/Class request
 0331  E8 03F6 R             C1		    CALL    $M_ADD_CRLF 			     ;;AN004;; Check if we need to add the C
				R LF chars.
 0334  07                    C1		    POP     ES					     ;;AN000;; Get location of input buffer 
				(if specified)
 0335  5F                    C1		    POP     DI					     ;;AN000;;
 0336  EB 04                 C1		  JMP SHORT $MEN97
 0338                        C1	$MIF97:
 0338  83 C4 06              C1		    ADD     SP,6				     ;;AN000;;
 033B  F9                    C1		    STC 					     ;;AN000;; Reset carry flag
 033C                        C1	$MEN97:
 033C  EB 04                 C1		JMP SHORT $MEN93
 033E                        C1	$MIF93:
 033E  07                    C1		  POP	  ES					     ;;AN000;;	 Get pointer to input buffer
				 (segment)
 033F  5F                    C1		  POP	  DI					     ;;AN000;;	 Get base pointer to first s
				ublist (offset)
 0340  5A                    C1		  POP	  DX					     ;;AN000;;	 Get base pointer to first s
				ublist (segment)
 0341  F9                    C1		  STC						     ;;AN000;;	 Set carry flag
 0342                        C1	$MEN93:
 0342  72 06                 C1		JC $MIF104
 0344  5D                    C1		  POP	  BP					     ;;AN000;; No,
 0345  59                    C1		  POP	  CX					     ;;AN000;;
 0346  5B                    C1		  POP	  BX					     ;;AN000;;
 0347  58                    C1		  POP	  AX					     ;;AN000;;
 0348  EB 04                 C1		JMP SHORT $MEN104
 034A                        C1	$MIF104:
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-22
DOS - Message Retriever - DISPMSG.ASM Module                

 034A  83 C4 08              C1		  ADD	  SP,8					     ;;AN000;;	   Eliminate from stack
 034D  F9                    C1		  STC						     ;;AN000;;
 034E                        C1	$MEN104:
 034E  CB                    C1		RET						     ;;AN000;; Return
 034F                        C1		SYSDISPMSG ENDP 				     ;;AN000;;
 034F                        C1	$M_DISPLAY_STRING PROC NEAR				     ;;AN000;;
 034F  50                    C1		PUSH	AX					     ;;AN000;;
 0350  53                    C1		PUSH	BX					     ;;AN000;;
 0351  52                    C1		PUSH	DX					     ;;AN000;;
 0352  8B 1E 003C E          C1		MOV	BX,$M_RT.$M_HANDLE			     ;;AN000;; Retrieve handle
 0356  83 FB FF              C1		CMP	BX,$M_NO_HANDLE 			     ;;AN000;; Was there a handle specified?
 0359  75 05                 C1		JNE $MIF107
 035B  E8 038A R             C1		  CALL	  $M_DISPLAY_$_STRING			     ;;AN000;; No, display $ terminated stri
				ng
 035E  EB 03                 C1		JMP SHORT $MEN107
 0360                        C1	$MIF107:
 0360  E8 03BF R             C1		  CALL	  $M_DISPLAY_H_STRING			     ;;AN000;; Yes, display string to handle
 0363                        C1	$MEN107:
 0363  73 0F                 C1		JNC $MIF110
 0365  B4 59                 C1		  MOV	  AH,DOS_GET_EXT_ERROR			     ;;AN000;;	Yes,
 0367  BB 0000               C1		  MOV	  BX,DOS_GET_EXT_ERROR_BX		     ;;AN000;;	  Get extended error
 036A  CD 21                 C1		  INT	  21H					     ;;AN000;;
 036C  32 E4                 C1		  XOR	  AH,AH 				     ;;AN000;;	  Clear AH
 036E  83 C4 06              C1		  ADD	  SP,6					     ;;AN000;;	  Clean up stack
 0371  F9                    C1		  STC						     ;;AN000;;	  Flag that there was an err
				or
 0372  EB 10                 C1		JMP SHORT $MEN110
 0374                        C1	$MIF110:
 0374  83 FB FF              C1		  CMP	  BX,$M_NO_HANDLE			     ;;AN000;; Was there a handle specified?
 0377  74 0B                 C1		  JE $MIF112
 0379  3B C1                 C1		    CMP     AX,CX				     ;AN001;	 Was it ALL written?
 037B  74 07                 C1		    JE $MIF113
 037D  E8 03ED R             C1		      CALL    $M_GET_EXT_ERR_39 		     ;AN001;	   Set Extended error
 0380  83 C4 06              C1		      ADD     SP,6				     ;AN001;	   Clean up stack
 0383  F9                    C1		      STC					     ;AN001;	   Flag that there was an er
				ror
 0384                        C1	$MIF113:
 0384                        C1	$MIF112:
 0384                        C1	$MEN110:
 0384  72 03                 C1		JC $MIF117
 0386  5A                    C1		  POP	  DX					     ;;AN000;;	Restore regs
 0387  5B                    C1		  POP	  BX					     ;;AN000;;
 0388  58                    C1		  POP	  AX					     ;;AN000;;
 0389                        C1	$MIF117:
 0389  C3                    C1		RET						     ;;AN000;; Return
 038A                        C1	$M_DISPLAY_STRING ENDP					     ;;AN000;;
 038A                        C1	$M_DISPLAY_$_STRING PROC NEAR				     ;;AN000;;
 038A  1E                    C1		PUSH	DS					     ;;AN000;;
 038B  06                    C1		PUSH	ES					     ;;AN000;;
 038C  1F                    C1		POP	DS					     ;;AN000;; Set DS to segment of message 
				text
 038D  83 F9 01              C1		CMP	CX,$M_SINGLE_CHAR			     ;;AN000;; Is this a single character?
 0390  75 1B                 C1		JNE $MIF119
 0392  B4 02                 C1		  MOV	  AH,DOS_DISP_CHAR			     ;;AN000;;	 DOS Function to display CHA
				RACTER
 0394  26: 8A 15             C1		  MOV	  DL,BYTE PTR ES:[DI]			     ;;AN000;;	 Get the character
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-23
DOS - Message Retriever - DISPMSG.ASM Module                

 0397  CD 21                 C1		  INT	  21H					     ;;AN000;;	 Write character
 0399  1F                    C1		  POP	  DS					     ;;AN000;; Set DS to segment of message 
				text
 039A  8A C2                 C1		  MOV	  AL,DL 				     ;;AN000;;	 Get the character in AL
 039C  E8 040D R             C1		  CALL	  $M_IS_IT_DBCS 			     ;;AN000;;	 Is this the first byte of a
				 DB character
 039F  1E                    C1		  PUSH	  DS					     ;;AN000;;
 03A0  06                    C1		  PUSH	  ES					     ;;AN000;;
 03A1  1F                    C1		  POP	  DS					     ;;AN000;; Set DS to segment of message 
				text
 03A2  73 07                 C1		  JNC $MIF120
 03A4  26: 8A 55 01          C1		    MOV     DL,BYTE PTR ES:[DI]+1		     ;;AN000;; Get the next character
 03A8  CD 21                 C1		    INT     21H 				     ;;AN000;;	 Write character
 03AA  F8                    C1		    CLC 					     ;;AN000;;	 Clear the DBCS indicator
 03AB                        C1	$MIF120:
 03AB  EB 0F                 C1		JMP SHORT $MEN119
 03AD                        C1	$MIF119:
 03AD  B4 02                 C1		  MOV	  AH,DOS_DISP_CHAR			     ;;AN000;;	 DOS Function to display CHA
				RACTER
 03AF                        C1	$MDO123:
 03AF  0B C9                 C1		    OR	    CX,CX				     ;;AN002;;	 Are there any left to displ
				ay?
 03B1  74 09                 C1		  JZ $MEN123
 03B3  26: 8A 15             C1		    MOV     DL,BYTE PTR ES:[DI] 		     ;;AN002;;	   Get the character
 03B6  CD 21                 C1		    INT     21H 				     ;;AN002;;	   Display the character
 03B8  47                    C1		    INC     DI					     ;;AN002;;	   Set pointer to next chara
				cter
 03B9  49                    C1		    DEC     CX					     ;;AN002;;	   Count this character
 03BA  75 F3                 C1		  JNZ $MDO123
 03BC                        C1	$MEN123:
 03BC                        C1	$MEN119:
 03BC  F8                    C1		CLC						     ;;AN000;;	 Char functions used don't r
				eturn carry as error
 03BD  1F                    C1		POP	DS					     ;;AN000;;
 03BE  C3                    C1		RET						     ;;AN000;;
 03BF                        C1	$M_DISPLAY_$_STRING ENDP				     ;;AN000;;
 03BF                        C1	$M_DISPLAY_H_STRING PROC NEAR				     ;;AN000;;
 03BF  33 C0                 C1		XOR	AX,AX					     ;;AN002;; Set number of bytes written t
				o 0
 03C1  0B C9                 C1		OR	CX,CX					     ;;AN002;; For performance, don't write 
				if not necessary
 03C3  74 27                 C1		JZ $MIF127
 03C5  1E                    C1		  PUSH	  DS					     ;;AN000;; Yes,
 03C6  06                    C1		  PUSH	  ES					     ;;AN000;;
 03C7  1F                    C1		  POP	  DS					     ;;AN000;;	 Set DS to segment of messag
				e text
 03C8  B4 40                 C1		  MOV	  AH,DOS_WRITE_HANDLE			     ;;AN000;;	 DOS function to write to a 
				handle
 03CA  8B D7                 C1		  MOV	  DX,DI 				     ;;AN000;;	 Pointer to data to write
 03CC  83 F9 01              C1		  CMP	  CX,$M_SINGLE_CHAR			     ;;AN000;;	 Is this a single character?
 03CF  75 18                 C1		  JNE $MIF128
 03D1  CD 21                 C1		    INT     21H 				     ;;AN000;;	   Write character
 03D3  1F                    C1		    POP     DS					     ;;AN000;;	     Set DS to segment of me
				ssage text
 03D4  50                    C1		    PUSH    AX					     ;;AN000;;
 03D5  26: 8A 05             C1		    MOV     AL,BYTE PTR ES:[DI] 		     ;;AN000;;	     Get the character
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-24
DOS - Message Retriever - DISPMSG.ASM Module                

 03D8  E8 040D R             C1		    CALL    $M_IS_IT_DBCS			     ;;AN000;;	     Is this the first byte 
				of a DB character
 03DB  58                    C1		    POP     AX					     ;;AN000;;	     Set DS to segment of me
				ssage text
 03DC  1E                    C1		    PUSH    DS					     ;;AN000;;
 03DD  06                    C1		    PUSH    ES					     ;;AN000;;
 03DE  1F                    C1		    POP     DS					     ;;AN000;;	     Set DS to segment of me
				ssage text
 03DF  73 06                 C1		    JNC $MIF129
 03E1  F8                    C1		      CLC					     ;;AN000;;	      Clear the DBCS indicat
				or
 03E2  B4 40                 C1		      MOV     AH,DOS_WRITE_HANDLE		     ;;AN000;;	      DOS function to write 
				to a handle
 03E4  42                    C1		      INC     DX				     ;;AN000;;	      Point to next characte
				r
 03E5  CD 21                 C1		      INT     21H				     ;;AN000;;	      Write character
 03E7                        C1	$MIF129:
 03E7  EB 02                 C1		  JMP SHORT $MEN128
 03E9                        C1	$MIF128:
 03E9  CD 21                 C1		    INT     21H 				     ;;AN000;;	   Write String at DS:SI to 
				handle
 03EB                        C1	$MEN128:
 03EB  1F                    C1		  POP	  DS					     ;;AN000;;
 03EC                        C1	$MIF127:
 03EC  C3                    C1		RET						     ;;AN000;;
 03ED                        C1	$M_DISPLAY_H_STRING ENDP				     ;;AN000;;
 03ED                        C1	$M_GET_EXT_ERR_39 PROC NEAR				     ;AN001;
 03ED  B8 0027               C1		MOV	AX,EXT_ERR_39				     ;AN001; Set AX=39
 03F0  BB 0004               C1		MOV	BX,(ERROR_CLASS_39 SHR 8) + ACTION_39	     ;AN001; Set BH=1 BL=4
 03F3  B5 01                 C1		MOV	CH,LOCUS_39				     ;AN001; Set CH=1
 03F5  C3                    C1		RET						     ;AN001;
 03F6                        C1	$M_GET_EXT_ERR_39 ENDP					     ;AN001;
 03F6                        C1	$M_ADD_CRLF PROC NEAR					     ;;AN004;;
 03F6  80 FE FF              C1		CMP	DH,UTILITY_MSG_CLASS			     ;;AN004;; Is it a utility message?
 03F9  74 11                 C1		JE $MIF134
 03FB  F6 C6 80              C1		  TEST	  DH,$M_NO_CRLF_MASK			     ;;AN004;;	 Are we to supress the CR LF
				?
 03FE  75 0C                 C1		  JNZ $MIF135
 0400  1E                    C1		    PUSH    DS					     ;;AN004;;
 0401  07                    C1		    POP     ES					     ;;AN004;;	  Set ES to data segment
 0402  8D 3E 003F E          C1		    LEA     DI,$M_RT.$M_CRLF			     ;;AN004;;	  Point at CRLF message
 0406  B9 0002               C1		    MOV     CX,$M_CRLF_SIZE			     ;;AN004;;	  Set the message size
 0409  E8 034F R             C1		    CALL    $M_DISPLAY_STRING			     ;;AN004;;	  Display the CRLF
 040C                        C1	$MIF135:
 040C                        C1	$MIF134:
 040C  C3                    C1		RET						     ;;AN004;; Return
 040D                        C1	$M_ADD_CRLF ENDP					     ;;AN004;;
 040D                        C1	$M_IS_IT_DBCS PROC NEAR 				     ;;AN000;;
 040D  06                    C1		PUSH	ES					     ;;AN000;; Save Extra segment register
 040E  57                    C1		PUSH	DI					     ;;AN000;; Save SI register
 040F  C4 3E 0038 E          C1		LES	DI,$M_RT.$M_DBCS_VEC			     ;;AN000;;
 0413  0B FF                 C1		OR	DI,DI					     ;;AN000;; Was the DBCS vector set?
 0415  74 17                 C1		JZ $MIF138
 0417                        C1	$MDO139:
 0417  26: 83 3D 00          C1		    CMP     WORD PTR ES:[DI],$M_DBCS_TERM	     ;;AN000;; Is this the terminating flag?
 041B  F8                    C1		    CLC 					     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-25
DOS - Message Retriever - DISPMSG.ASM Module                

 041C  74 10                 C1		  JE $MEN139
 041E  26: 3A 05             C1		    CMP     AL,BYTE PTR ES:[DI] 		     ;;AN000;;	  Does the character fall in
				 the DBCS range?
 0421  72 07                 C1		    JNAE $MIF141
 0423  26: 3A 45 01          C1		    CMP     AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	  Does the character fall in
				 the DBCS range?
 0427  77 01                 C1		    JNBE $MIF141
 0429  F9                    C1		      STC					     ;;AN000;;	  Yes,
 042A                        C1	$MIF141:
 042A  47                    C1		    INC     DI					     ;;AN000;;	  No,
 042B  47                    C1		    INC     DI					     ;;AN000;;	     Go to next vector
 042C  EB E9                 C1		  JMP SHORT $MDO139
 042E                        C1	$MEN139:
 042E                        C1	$MIF138:
 042E  5F                    C1		POP	DI					     ;;AN000;;
 042F  07                    C1		POP	ES					     ;;AN000;; Restore SI register
 0430  C3                    C1		RET						     ;;AN000;; Return
 0431                        C1	$M_IS_IT_DBCS ENDP					     ;;AN000;;
 0431                        C1	$M_CONVERT2ASC PROC NEAR				     ;;AN000;;
 0431  8F 06 0042 E          C1		POP	[$M_RT.$M_RETURN_ADDR]			     ;;AN000;; Save Return Address
 0435  33 DB                 C1		XOR	BX,BX					     ;;AN000;; Use BP as a swapping register
 0437  93                    C1		XCHG	BX,AX					     ;;AN000;; Initialize - Low Word in BP
 0438  92                    C1		XCHG	AX,DX					     ;;AN000;;		  - High Word in AX
 0439                        C1	$MDO145:
 0439  F7 36 0046 E          C1		  DIV	  $M_RT.$M_DIVISOR			     ;;AN000;; Divide High Word by divisor
 043D  93                    C1		  XCHG	  BX,AX 				     ;;AN000;; Setup to divide Low Word usin
				g remainder
 043E  F7 36 0046 E          C1		  DIV	  $M_RT.$M_DIVISOR			     ;;AN000;; Divide Low Word by divisor
 0442  83 FA 09              C1		  CMP	  DX,9					     ;;AN000;;	Make a digit of the remainde
				r
 0445  76 05                 C1		  JNA $MIF146
 0447  80 C2 37              C1		    ADD     DL,55				     ;;AN000;;	   Make A to F ASCII
 044A  EB 03                 C1		  JMP SHORT $MEN146
 044C                        C1	$MIF146:
 044C  80 C2 30              C1		    ADD     DL,'0'				     ;;AN000;;	   Make 0 to 9 ASCII
 044F                        C1	$MEN146:
 044F  52                    C1		  PUSH	  DX					     ;;AN000;; Save the digit on the stack
 0450  41                    C1		  INC	  CX					     ;;AN000;; Count that digit
 0451  0B C0                 C1		  OR	  AX,AX 				     ;;AN000;; Are we done?
 0453  75 04                 C1		JNZ $MLL149
 0455  0B DB                 C1		  OR	  BX,BX 				     ;;AN000;; AX and BX must be ZERO!!
 0457  74 39                 C1		JZ $MEN145
 0459                        C1	$MLL149:
 0459  83 F9 03              C1		  CMP	  CX,$M_FIRST_THOU			     ;;AN000;; Are we at the first thousands
				 mark
 045C  75 0D                 C1		  JNE $MIF150
 045E  80 7C 0A 2C           C1		    CMP     $M_SL.$M_S_PAD,$M_COMMA		     ;;AN000;; Is the pad character a comma?
 0462  75 05                 C1		    JNE $MIF151
 0464  FF 36 004F E          C1		      PUSH    WORD PTR $M_RT.$M_THOU_SEPARA	     ;;AN000;; Insert a thousand separator
 0468  41                    C1		      INC     CX				     ;;AN000;;
 0469                        C1	$MIF151:
 0469  EB 22                 C1		  JMP SHORT $MEN150
 046B                        C1	$MIF150:
 046B  83 F9 06              C1		    CMP     CX,$M_SECOND_THOU			     ;;AN000;;	 Are we at the first thousan
				ds mark
 046E  75 0D                 C1		    JNE $MIF154
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-26
DOS - Message Retriever - DISPMSG.ASM Module                

 0470  80 7C 0A 2C           C1		      CMP     $M_SL.$M_S_PAD,$M_COMMA		     ;;AN000;; Is the pad character a comma?
 0474  75 05                 C1		      JNE $MIF155
 0476  FF 36 004F E          C1			PUSH	WORD PTR $M_RT.$M_THOU_SEPARA	     ;;AN000;; Insert a thousand separator
 047A  41                    C1			INC	CX				     ;;AN000;;
 047B                        C1	$MIF155:
 047B  EB 10                 C1		    JMP SHORT $MEN154
 047D                        C1	$MIF154:
 047D  83 F9 09              C1		      CMP     CX,$M_THIRD_THOU			     ;;AN000;;	 Are we at the first thousan
				ds mark
 0480  75 0B                 C1		      JNE $MIF158
 0482  80 7C 0A 2C           C1			CMP	$M_SL.$M_S_PAD,$M_COMMA 	     ;;AN000;; Is the pad character a comma?
 0486  75 05                 C1			JNE $MIF159
 0488  FF 36 004F E          C1			  PUSH	  WORD PTR $M_RT.$M_THOU_SEPARA      ;;AN000;; Insert a thousand separator
 048C  41                    C1			  INC	  CX				     ;;AN000;;
 048D                        C1	$MIF159:
 048D                        C1	$MIF158:
 048D                        C1	$MEN154:
 048D                        C1	$MEN150:
 048D  93                    C1		  XCHG	  AX,BX 				     ;;AN000;;	 Setup to divide the reduced
				 High Word
 048E  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;;	 Reset remainder
 0490  EB A7                 C1		JMP SHORT $MDO145
 0492                        C1	$MEN145:
 0492  33 D2                 C1		XOR	DX,DX					     ;;AN000;;	 Reset remainder
 0494  33 C0                 C1		XOR	AX,AX					     ;;AN000;;	 Reset remainder
 0496  FF 36 0042 E          C1		PUSH	[$M_RT.$M_RETURN_ADDR]			     ;;AN000;;	 Restore Return Address
 049A  C3                    C1		RET						     ;;AN000;;	 Return
 049B                        C1	$M_CONVERT2ASC ENDP					     ;;AN000;;
 049B                        C1	$M_DISPLAY_MESSAGE PROC NEAR				     ;;AN000;;
 049B                        C1	$MDO165:
 049B  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;; Set size = 0
 049D  0B C9                 C1		  OR	  CX,CX 				     ;;AN000;; Are we finished the message y
				et?
 049F  74 21                 C1		  JZ $MIF166
 04A1  B4 25                 C1		    MOV     AH,"%"				     ;;AN000;;	 Prepare to scan for %
 04A3  B0 00                 C1		    MOV     AL,0				     ;;AN004;;
 04A5                        C1	$MDO167:
 04A5  26: 38 25             C1		      CMP     BYTE PTR ES:[DI],AH		     ;;AN000;;	 Is this character NOT a %
 04A8  75 0A                 C1		    JNE $MLL168
 04AA  26: 38 65 01          C1		      CMP     BYTE PTR ES:[DI+1],AH		     ;;AN000;;	   Is the next character als
				o a %
 04AE  74 04                 C1		    JE $MLL168
 04B0  3A C4                 C1		      CMP     AL,AH				     ;;AN000;;	     Was the character befor
				e a %
 04B2  75 0E                 C1		    JNE $MEN167
 04B4                        C1	$MLL168:
 04B4  26: 8A 05             C1		      MOV     AL,BYTE PTR ES:[DI]		     ;;AN004;;	 Yes, (to any of the above)
 04B7  E8 040D R             C1		      CALL    $M_IS_IT_DBCS			     ;;AN004;;	   Is this character the fir
				st part of a DBCS?
 04BA  73 01                 C1		      JNC $MIF169
 04BC  47                    C1			INC	DI				     ;;AN004;;	     Increment past second p
				art
 04BD                        C1	$MIF169:
 04BD  47                    C1		      INC     DI				     ;;AN000;;	     Next character in strin
				g
 04BE  42                    C1		      INC     DX				     ;;AN000;;	     Size = Size + 1
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-27
DOS - Message Retriever - DISPMSG.ASM Module                

 04BF  49                    C1		      DEC     CX				     ;;AN000;;	     Decrement total size
 04C0  75 E3                 C1		    JNZ $MDO167
 04C2                        C1	$MEN167:
 04C2                        C1	$MIF166:
 04C2  56                    C1		  PUSH	  SI					     ;;AN000;; Save beginning of sublists
 04C3  87 CA                 C1		  XCHG	  CX,DX 				     ;;AN000;; Get size of message to displa
				y (tot sz in DX)
 04C5  0B ED                 C1		  OR	  BP,BP 				     ;;AN000;; Do we have any replacables to
				 do?
 04C7  74 33                 C1		  JZ $MIF173
 04C9  4D                    C1		    DEC     BP					     ;;AN000;;	 Decrement number of replaca
				bles
 04CA  83 3E 0044 E 00       C1		    CMP     $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 04CF  75 2B                 C1		    JNE $MIF174
 04D1                        C1	$MDO175:
 04D1  8A 44 06              C1			MOV	AL,$M_SL.$M_S_ID		     ;;AN000;;	 Get ID byte
 04D4  04 30                 C1			ADD	AL,30H				     ;;AN000;;	 Convert to ASCII
 04D6  26: 3A 45 01          C1			CMP	AL,BYTE PTR ES:[DI]+1		     ;;AN000;;	 Is this the right sublist?
 04DA  75 02                 C1		      JNE $MIF175
 04DC  EB 1E                 C1		      JMP SHORT $MSR175
 04DE                        C1	$MIF175:
 04DE  3C 30                 C1			CMP	AL,$M_SPECIAL_CASE		     ;;AN000;;	   Does this sublist have ID
				 = 0
 04E0  75 04                 C1		      JNE $MLL178
 04E2  0B D2                 C1			OR	DX,DX				     ;;AN000;;	   Are we at the end of the 
				message?
 04E4  74 04                 C1		      JZ $MEN175
 04E6                        C1	$MLL178:
 04E6  03 34                 C1			ADD	SI,WORD PTR $M_SL.$M_S_SIZE	     ;;AN000;;	     Next SUBLIST
 04E8  EB E7                 C1		      JMP SHORT $MDO175
 04EA                        C1	$MEN175:
 04EA  80 3E 0041 E FF       C1			CMP	$M_RT.$M_CLASS,UTILITY_MSG_CLASS     ;;AN004;;	     Is it a utility message
				?
 04EF  75 08                 C1			JNE $MIF180
 04F1  42                    C1			  INC	  DX				     ;;AN000;;	       Remember to display C
				R,LF
 04F2  42                    C1			  INC	  DX				     ;;AN000;;		 at the end of the m
				essage
 04F3  49                    C1			  DEC	  CX				     ;;AN000;;	       Adjust message length
 04F4  49                    C1			  DEC	  CX				     ;;AN000;;
 04F5  4F                    C1			  DEC	  DI				     ;;AN000;;	       Adjust ending address
				 of message
 04F6  4F                    C1			  DEC	  DI				     ;;AN000;;
 04F7  EB 03                 C1			JMP SHORT $MEN180
 04F9                        C1	$MIF180:
 04F9  BA FFFF               C1			  MOV	  DX,-1 			     ;;AN004;;	       Set special case
 04FC                        C1	$MEN180:
 04FC                        C1	$MSR175:
 04FC                        C1	$MIF174:
 04FC                        C1	$MIF173:
 04FC  57                    C1		  PUSH	  DI					     ;;AN000;; Save pointer to replace numbe
				r
 04FD  2B F9                 C1		  SUB	  DI,CX 				     ;;AN000;; Determine beginning of string
 04FF  E8 034F R             C1		  CALL	  $M_DISPLAY_STRING			     ;;AN000;; Display string until % (or en
				d)
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-28
DOS - Message Retriever - DISPMSG.ASM Module                

 0502  5F                    C1		  POP	  DI					     ;;AN000;; Get back pointer to replace n
				umber
 0503  59                    C1		  POP	  CX					     ;;AN000;; Clean up stack in case error
 0504  73 03                 C1		JNC $MXL3
 0506  EB 57 90              C1		JMP $MEN165
 0509                        C1	$MXL3:
 0509  51                    C1		  PUSH	  CX					     ;;AN000;;
 050A  8B CA                 C1		  MOV	  CX,DX 				     ;;AN000;; Get the size of the rest of t
				he message
 050C  80 7C 06 00           C1		  CMP	  $M_SL.$M_S_ID,$M_SPECIAL_CASE-30H	     ;;AN000;; Is this the %0 case?
 0510  74 0D                 C1		  JE $MIF187
 0512  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	Are we finished the whole me
				ssage?
 0514  74 06                 C1		    JZ $MIF188
 0516  49                    C1		      DEC     CX				     ;;AN000;;	  Decrement total size (%)
 0517  49                    C1		      DEC     CX				     ;;AN000;;	  Decrement total size (#)
 0518  47                    C1		      INC     DI				     ;;AN000;;	  Go past %
 0519  47                    C1		      INC     DI				     ;;AN000;;	  Go past replace number
 051A  EB 01                 C1		    JMP SHORT $MEN188
 051C                        C1	$MIF188:
 051C  5E                    C1		      POP     SI				     ;;AN000;;	  Get back pointer to beginn
				ing of SUBLISTs
 051D                        C1	$MEN188:
 051D  EB 10                 C1		  JMP SHORT $MEN187
 051F                        C1	$MIF187:
 051F  0B C9                 C1		    OR	    CX,CX				     ;;AN000;;	Are we finished the whole me
				ssage?
 0521  75 03                 C1		    JNZ $MIF192
 0523  5E                    C1		      POP     SI				     ;;AN000;;	 Get back pointer to beginni
				ng of SUBLISTs
 0524  EB 09                 C1		    JMP SHORT $MEN192
 0526                        C1	$MIF192:
 0526  83 F9 FF              C1		      CMP     CX,-1				     ;;AN004;;	 Are we at the end of the me
				ssage?
 0529  75 02                 C1		      JNZ $MIF194
 052B  33 C9                 C1			XOR	CX,CX				     ;;AN004;;
 052D                        C1	$MIF194:
 052D  0B FF                 C1		      OR      DI,DI				     ;;AN004;;	Turn ZF off
 052F                        C1	$MEN192:
 052F                        C1	$MEN187:
 052F  74 2E                 C1		JZ $MEN165
 0531  55                    C1		  PUSH	  BP					     ;;AN000;;	 Save the replace count
 0532  57                    C1		  PUSH	  DI					     ;;AN000;;	 Save location to complete m
				essage
 0533  06                    C1		  PUSH	  ES					     ;;AN000;;
 0534  51                    C1		  PUSH	  CX					     ;;AN000;;	 Save size of the rest of th
				e message
 0535  33 C9                 C1		  XOR	  CX,CX 				     ;;AN000;;	 Reset CX used for character
				 count
 0537  83 3E 0044 E 00       C1		  CMP	  $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 053C  75 05                 C1		  JNE $MIF199
 053E  E8 0593 R             C1		    CALL    $M_DISPLAY_REPLACE			     ;;AN000;; Display the replace
 0541  EB 03                 C1		  JMP SHORT $MEN199
 0543                        C1	$MIF199:
 0543  E8 0566 R             C1		    CALL    $M_EXT_PAR_REPLACE			     ;;AN000;;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-29
DOS - Message Retriever - DISPMSG.ASM Module                

 0546                        C1	$MEN199:
 0546  72 07                 C1		  JC $MIF211
 0548  59                    C1		    POP     CX					     ;;AN000;; Get size of the rest of the m
				essage
 0549  07                    C1		    POP     ES					     ;;AN000;; Get address of the rest of th
				e message
 054A  5F                    C1		    POP     DI					     ;;AN000;;
 054B  5D                    C1		    POP     BP					     ;;AN000;; Get replacment count
 054C  5E                    C1		    POP     SI					     ;;AN000;; ELSE get address of first sub
				list structure
 054D  EB 04                 C1		  JMP SHORT $MEN211
 054F                        C1	$MIF211:
 054F  83 C4 0A              C1		    ADD     SP,10				     ;;AN000;; Clean up stack if error
 0552  F9                    C1		    STC 					     ;;AN000;;
 0553                        C1	$MEN211:
 0553  83 3E 0044 E 00       C1		  CMP	  $M_RT.$M_MSG_NUM,$M_NULL		     ;;AN000;; Is this an Extended/Parse cas
				e
 0558  75 05                 C1		JNE $MLL214
 055A  72 03                 C1		JC $MXL4
 055C  E9 049B R             C1		JMP $MDO165
 055F                        C1	$MXL4:
 055F                        C1	$MLL214:
 055F                        C1	$MEN165:
 055F  C7 06 0044 E 0000     C1		MOV	$M_RT.$M_MSG_NUM,0			     ;;AN000;; Reset message number to null
 0565  C3                    C1		RET						     ;;AN000;; Return
 0566                        C1	$M_DISPLAY_MESSAGE ENDP 				     ;;AN000;;
 0566                        C1	$M_EXT_PAR_REPLACE PROC NEAR				     ;;AN000;;
 0566  33 D2                 C1		XOR	DX,DX					     ;;AN000;; Prepare for get binary value 
				(HIGH)
 0568  A1 0044 E             C1		MOV	AX,$M_RT.$M_MSG_NUM			     ;;AN000;; Prepare for get binary value 
				(LOW)
 056B  C7 06 0046 E 000A     C1		MOV	$M_RT.$M_DIVISOR,$M_BASE10		     ;;AN000;; Set default divisor
 0571  E8 0431 R             C1		CALL	$M_CONVERT2ASC				     ;;AN000;;
 0574                        C1	$MDO215:
 0574  58                    C1		  POP	  AX					     ;;AN000;;	 Get character in register
 0575  88 87 0048 E          C1		  MOV	  BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL	     ;;AN000;;	Move char into the buffer
 0579  43                    C1		  INC	  BX					     ;;AN000;;	 Increase buffer count
 057A  83 FB 40              C1		  CMP	  BX,$M_TEMP_BUF_SZ			     ;;AN000;;	 Is buffer full?
 057D  75 03                 C1		  JNE $MIF216
 057F  E8 0652 R             C1		    CALL    $M_FLUSH_BUF			     ;;AN000;;	   Flush the buffer
 0582                        C1	$MIF216:
 0582  FE C9                 C1		  DEC	  CL					     ;;AN000;;	 Have we completed replace?
 0584  75 EE                 C1		JNZ $MDO215
 0586  B8 0A0D               C1		MOV	AX,$M_CR_LF				     ;;AN000;;	Move char into the buffer
 0589  89 87 0048 E          C1		MOV	WORD PTR $M_RT.$M_TEMP_BUF[BX],AX	     ;;AN000;;	Move char into the buffer
 058D  43                    C1		INC	BX					     ;;AN000;;	 Increase buffer count
 058E  43                    C1		INC	BX					     ;;AN000;;	 Increase buffer count
 058F  E8 0652 R             C1		CALL	$M_FLUSH_BUF				     ;;AN000;;	   Flush the buffer
 0592  C3                    C1		RET						     ;;AN000::
 0593                        C1	$M_EXT_PAR_REPLACE ENDP 				     ;;AN000;;
 0593                        C1	$M_DISPLAY_REPLACE PROC NEAR				     ;;AN000;;
 0593  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Use BX for buffer count
 0595  80 7C 06 00           C1		  CMP	  $M_SL.$M_S_ID,$M_SPECIAL_CASE-30H	     ;;AN000;; Is this the special case (con
				vert to ASCII)
 0599  75 11                 C1		  JNE $MIF276
 059B  C7 87 0048 E 2D20     C1		    MOV     WORD PTR $M_RT.$M_TEMP_BUF[BX],$M_SPACE_HYP ;;AN000;; Move in a " -"
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-30
DOS - Message Retriever - DISPMSG.ASM Module                

 05A1  43                    C1		    INC     BX					     ;;AN000;;	   Increment count
 05A2  43                    C1		    INC     BX					     ;;AN000;;	   Increment count
 05A3  C6 87 0048 E 20       C1		    MOV     BYTE PTR $M_RT.$M_TEMP_BUF[BX],$M_SPACE  ;;AN000;;	   Move in a " "
 05A8  43                    C1		    INC     BX					     ;;AN000;;	   Increment count
 05A9  E8 0652 R             C1		    CALL    $M_FLUSH_BUF			     ;;AN000;;	   Write out " - " to prepar
				e for special case
 05AC                        C1	$MIF276:
 05AC  5D                    C1		  POP	  BP					     ;;AN000;; Remember the return address
 05AD  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Use BX for buffer count
 05AF  33 D2                 C1		  XOR	  DX,DX 				     ;;AN000;; Use DX for count of parms tak
				en off the stack
 05B1  88 0E 003E E          C1		  MOV	  $M_RT.$M_SIZE,CL			     ;;AN000;; Save size to later clear stac
				k
 05B5  8A 44 09              C1		  MOV	  AL,BYTE PTR $M_SL.$M_S_MINW		     ;;AN000;; Get the minimum width
 05B8  3A C1                 C1		  CMP	  AL,CL 				     ;;AN000;; Do we need pad chars added?
 05BA  76 1E                 C1		  JNA $MIF278
 05BC  2A C1                 C1		    SUB     AL,CL				     ;;AN000;;	 Calculate how many pad char
				s are needed.
 05BE  8A F0                 C1		    MOV     DH,AL				     ;;AN000;;	 Save the number of pad char
				acters
 05C0  F6 44 07 80           C1		    TEST    BYTE PTR $M_SL.$M_S_FLAG,Right_Align     ;;AN000;;	 Was replaceable parm to be 
				right aligned?
 05C4  74 14                 C1		    JZ $MIF279
 05C6                        C1	$MDO280:
 05C6  8A 44 0A              C1			MOV	AL,BYTE PTR $M_SL.$M_S_PAD	     ;;AN000;;
 05C9  88 87 0048 E          C1			MOV	BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL    ;;AN000;;	   Move in a pad char
 05CD  43                    C1			INC	BX				     ;;AN000;;
 05CE  83 FB 40              C1			CMP	BX,$M_TEMP_BUF_SZ		     ;;AN000;;	   Is buffer full?
 05D1  75 03                 C1			JNE $MIF281
 05D3  E8 0652 R             C1			  CALL	  $M_FLUSH_BUF			     ;;AN000;;	     Flush the buffer
 05D6                        C1	$MIF281:
 05D6  FE CE                 C1			DEC	DH				     ;;AN000;;	   Have we filled with enoug
				h pad chars?
 05D8  75 EC                 C1		      JNZ $MDO280
 05DA                        C1	$MIF279:
 05DA                        C1	$MIF278:
 05DA  80 7C 08 00           C1		  CMP	  BYTE PTR $M_SL.$M_S_MAXW,$M_UNLIM_W	     ;;AN000;; Is maximum width unlimited?
 05DE  74 0D                 C1		  JE $MIF286
 05E0  38 4C 08              C1		    CMP     BYTE PTR $M_SL.$M_S_MAXW,CL 	     ;;AN000;; Will we exceed maximum width?
 05E3  73 08                 C1		    JNB $MIF287
 05E5  2A 4C 08              C1		      SUB     CL,BYTE PTR $M_SL.$M_S_MAXW	     ;;AN000;;	 Calculate how many extra ch
				ars
 05E8  8A D1                 C1		      MOV     DL,CL				     ;;AN000;;	 Remember how many chars to 
				pop off
 05EA  8A 4C 08              C1		      MOV     CL,BYTE PTR $M_SL.$M_S_MAXW	     ;;AN000;;	 Set new string length
 05ED                        C1	$MIF287:
 05ED                        C1	$MIF286:
 05ED  0B C9                 C1		  OR	  CX,CX 				     ;;AN000;;
 05EF  74 24                 C1		  JZ $MIF290
 05F1                        C1	$MDO291:
 05F1  F6 44 07 0F           C1		      TEST    BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 05F5  75 0C                 C1		      JNZ $MIF292
 05F7  F6 44 07 10           C1		      TEST    $M_SL.$M_S_FLAG,Char_field_ASCIIZ AND $M_SIZE_MASK ;  Is this replace a ASCIIZ
				 string?
 05FB  74 06                 C1		      JZ $MIF292
 05FD  26: 8A 05             C1			MOV	AL,BYTE PTR ES:[DI]		     ;;AN000;;	 Get first character from st
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-31
DOS - Message Retriever - DISPMSG.ASM Module                

				ring
 0600  47                    C1			INC	DI				     ;;AN000;;	 Next character in string
 0601  EB 01                 C1		      JMP SHORT $MEN292
 0603                        C1	$MIF292:
 0603  58                    C1			POP	AX				     ;;AN000;;	 Get character in register
 0604                        C1	$MEN292:
 0604  88 87 0048 E          C1		      MOV     BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL      ;;AN000;;	Move char into the buffer
 0608  43                    C1		      INC     BX				     ;;AN000;;	 Increase buffer count
 0609  83 FB 40              C1		      CMP     BX,$M_TEMP_BUF_SZ 		     ;;AN000;;	 Is buffer full?
 060C  75 03                 C1		      JNE $MIF295
 060E  E8 0652 R             C1			CALL	$M_FLUSH_BUF			     ;;AN000;;	   Flush the buffer
 0611                        C1	$MIF295:
 0611  FE C9                 C1		      DEC     CL				     ;;AN000;;	 Have we completed replace?
 0613  75 DC                 C1		    JNZ $MDO291
 0615                        C1	$MIF290:
 0615  F6 44 07 80           C1		  TEST	  BYTE PTR $M_SL.$M_S_FLAG,Right_Align	     ;;AN000;;	 Was replaceable parm to be 
				left aligned?
 0619  75 18                 C1		  JNZ $MIF299
 061B  0A F6                 C1		    OR	    DH,DH				     ;;AN000;;	 Do we need pad chars added?
 061D  74 14                 C1		    JZ $MIF300
 061F                        C1	$MDO301:
 061F  8A 44 0A              C1			MOV	AL,BYTE PTR $M_SL.$M_S_PAD	     ;;AN000;;
 0622  88 87 0048 E          C1			MOV	BYTE PTR $M_RT.$M_TEMP_BUF[BX],AL    ;;AN000;;	   Move in a pad char
 0626  43                    C1			INC	BX				     ;;AN000;;
 0627  83 FB 40              C1			CMP	BX,$M_TEMP_BUF_SZ		     ;;AN000;;	   Is buffer full?
 062A  75 03                 C1			JNE $MIF302
 062C  E8 0652 R             C1			  CALL	  $M_FLUSH_BUF			     ;;AN000;;	     Flush the buffer
 062F                        C1	$MIF302:
 062F  FE CE                 C1			DEC	DH				     ;;AN000;;	   Have we filled with enoug
				h pad chars?
 0631  75 EC                 C1		      JNZ $MDO301
 0633                        C1	$MIF300:
 0633                        C1	$MIF299:
 0633  F6 44 07 0F           C1		  TEST	  BYTE PTR $M_SL.$M_S_FLAG,NOT Char_Type AND $M_TYPE_MASK ;;AN000;;
 0637  75 08                 C1		  JNZ $MIF307
 0639  F6 44 07 10           C1		  TEST	  $M_SL.$M_S_FLAG,Char_field_ASCIIZ AND $M_SIZE_MASK ;;AN000;;	Is this replace a AS
				CIIZ string?
 063D  74 02                 C1		  JZ $MIF307
 063F  EB 0C                 C1		  JMP SHORT $MEN307
 0641                        C1	$MIF307:
 0641  0A D2                 C1		    OR	    DL,DL				     ;;AN000;;
 0643  74 08                 C1		    JE $MIF309
 0645                        C1	$MDO310:
 0645  8F 06 0042 E          C1			POP	[$M_RT.$M_RETURN_ADDR]		     ;;AN000;;	 Clean Up stack using spare 
				variable
 0649  FE CA                 C1			DEC	DL				     ;;AN000;;	 Are we done?
 064B  75 F8                 C1		      JNZ $MDO310
 064D                        C1	$MIF309:
 064D                        C1	$MEN307:
 064D  E8 0652 R             C1		  CALL	  $M_FLUSH_BUF				     ;;AN000;;	     Flush the buffer for th
				e final time
 0650  55                    C1		  PUSH	  BP					     ;;AN000;; Restore the return address
 0651  C3                    C1		  RET						     ;;AN000;;
 0652                        C1	$M_DISPLAY_REPLACE ENDP 				     ;;AN000;;
 0652                        C1	$M_FLUSH_BUF PROC NEAR					     ;;AN000;;
 0652  51                    C1		  PUSH	  CX					     ;;AN000;; Save changed regs
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-32
DOS - Message Retriever - DISPMSG.ASM Module                

 0653  06                    C1		  PUSH	  ES					     ;;AN000;;
 0654  57                    C1		  PUSH	  DI					     ;;AN000;;
 0655  1E                    C1		  PUSH	  DS					     ;;AN000;; Set ES pointing to buffer
 0656  07                    C1		  POP	  ES					     ;;AN000;;
 0657  8B CB                 C1		  MOV	  CX,BX 				     ;;AN000;; Set number of bytes to displa
				y
 0659  33 DB                 C1		  XOR	  BX,BX 				     ;;AN000;; Reset buffer counter
 065B  8D 3E 0048 E          C1		  LEA	  DI,$M_RT.$M_TEMP_BUF			     ;;AN000;; Reset buffer location pointer
 065F  E8 034F R             C1		  CALL	  $M_DISPLAY_STRING			     ;;AN000;; Display the buffer
 0662  72 05                 C1		  JC $MIF314
 0664  5F                    C1		    POP     DI					     ;;AN000;; No, Restore changed regs
 0665  07                    C1		    POP     ES					     ;;AN000;;
 0666  59                    C1		    POP     CX					     ;;AN000;;
 0667  EB 04                 C1		  JMP SHORT $MEN314
 0669                        C1	$MIF314:
 0669  83 C4 06              C1		    ADD     SP,6				     ;;AN000;;	Fix stack
 066C  F9                    C1		    STC 					     ;;AN000;;
 066D                        C1	$MEN314:
 066D  C3                    C1		  RET						     ;;AN000;; Return
 066E                        C1	$M_FLUSH_BUF ENDP					     ;;AN000;;
				 MSG_SERVICES <SELECT.CLA,SELECT.CLB>				      ;AN000;
 066E                        C3	$M_CLASS_A_STRUC LABEL BYTE
 066E  FF                    C3	        $M_CLASS_ID <0FFH,EXPECTED_VERSION,Class_A_MessageCount>
 066F  0400                  C3	
 0671  09                    C3	
 0672                        C3	$M_A_00001H_STRUC LABEL BYTE
 0672  0100                  C3	        $M_ID   <00001H,$M_A_00001H_MSG-$M_A_00001H_STRUC>
 0674  2400                  C3	
 0676                        C3	$M_A_00002H_STRUC LABEL BYTE
 0676  0200                  C3	        $M_ID   <00002H,$M_A_00002H_MSG-$M_A_00002H_STRUC>
 0678  3800                  C3	
 067A                        C3	$M_A_00003H_STRUC LABEL BYTE
 067A  0300                  C3	        $M_ID   <00003H,$M_A_00003H_MSG-$M_A_00003H_STRUC>
 067C  4B00                  C3	
 067E                        C3	$M_A_00004H_STRUC LABEL BYTE
 067E  0400                  C3	        $M_ID   <00004H,$M_A_00004H_MSG-$M_A_00004H_STRUC>
 0680  6400                  C3	
 0682                        C3	$M_A_00005H_STRUC LABEL BYTE
 0682  0500                  C3	        $M_ID   <00005H,$M_A_00005H_MSG-$M_A_00005H_STRUC>
 0684  AD00                  C3	
 0686                        C3	$M_A_00006H_STRUC LABEL BYTE
 0686  0600                  C3	        $M_ID   <00006H,$M_A_00006H_MSG-$M_A_00006H_STRUC>
 0688  F800                  C3	
 068A                        C3	$M_A_00007H_STRUC LABEL BYTE
 068A  0700                  C3	        $M_ID   <00007H,$M_A_00007H_MSG-$M_A_00007H_STRUC>
 068C  7501                  C3	
 068E                        C3	$M_A_00008H_STRUC LABEL BYTE
 068E  0800                  C3	        $M_ID   <00008H,$M_A_00008H_MSG-$M_A_00008H_STRUC>
 0690  9F01                  C3	
 0692                        C3	$M_A_00009H_STRUC LABEL BYTE
 0692  0900                  C3	        $M_ID   <00009H,$M_A_00009H_MSG-$M_A_00009H_STRUC>
 0694  BB01                  C3	
 0696                        C3	$M_A_00001H_MSG LABEL BYTE
 0696  17                    C3	        DB      $M_A_00001H_END-$M_A_00001H_MSG-1
 0697  49 6E 63 6F 72 72     C3	        DB      "Incorrect DOS version",CR,LF
 06AE                        C3	$M_A_00001H_END LABEL BYTE
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-33
DOS - Message Retriever - DISPMSG.ASM Module                

 06AE                        C3	$M_A_00002H_MSG LABEL BYTE
 06AE  16                    C3	        DB      $M_A_00002H_END-$M_A_00002H_MSG-1
 06AF  25 31 20 61 6C 72     C3	        DB      "%1 already installed",CR,LF
 06C5                        C3	$M_A_00002H_END LABEL BYTE
 06C5                        C3	$M_A_00003H_MSG LABEL BYTE
 06C5  1C                    C3	        DB      $M_A_00003H_END-$M_A_00003H_MSG-1
 06C6  25 31 20 62 79 74     C3	        DB      "%1 bytes available on disk",CR,LF
 06E2                        C3	$M_A_00003H_END LABEL BYTE
 06E2                        C3	$M_A_00004H_MSG LABEL BYTE
 06E2  4C                    C3	        DB      $M_A_00004H_END-$M_A_00004H_MSG-1
 06E3  49 6E 76 61 6C 69     C3	        DB      "Invalid SELECT boot media",CR,LF,CR,LF
 0700  49 6E 73 65 72 74     C3	        DB      	"Insert INSTALL diskette in drive A:, then retry"
 072F                        C3	$M_A_00004H_END LABEL BYTE
 072F                        C3	$M_A_00005H_MSG LABEL BYTE
 072F  4E                    C3	        DB      $M_A_00005H_END-$M_A_00005H_MSG-1
 0730  49 6E 76 61 6C 69     C3	        DB      "Invalid disk/diskette media",cr,lf,cr,lf
 074F  49 6E 73 65 72 74     C3	        DB      	"Insert INSTALL diskette in drive A:, then retry"
 077E                        C3	$M_A_00005H_END LABEL BYTE
 077E                        C3	$M_A_00006H_MSG LABEL BYTE
 077E  80                    C3	        DB      $M_A_00006H_END-$M_A_00006H_MSG-1
 077F  49 6E 76 61 6C 69     C3	        DB      "Invalid parameters on SELECT command line",CR,LF,CR,LF
 07AC  4D 61 6B 65 20 73     C3	        DB      	"Make sure the INSTALL diskette is in drive A:,",CR,LF
 07DC  74 68 65 6E 20 70     C3	        DB      	"then press Ctrl+Alt+Del to restart."
 07FF                        C3	$M_A_00006H_END LABEL BYTE
 07FF                        C3	$M_A_00007H_MSG LABEL BYTE
 07FF  2D                    C3	        DB      $M_A_00007H_END-$M_A_00007H_MSG-1
 0800  07 55 6E 61 62 6C     C3	        DB      BELL,"Unable to install DOS.  Program terminated",CR,LF
 082D                        C3	$M_A_00007H_END LABEL BYTE
 082D                        C3	$M_A_00008H_MSG LABEL BYTE
 082D  1F                    C3	        DB      $M_A_00008H_END-$M_A_00008H_MSG-1
 082E  4C 6F 61 64 69 6E     C3	        DB      "Loading SELECT.  Please wait..."
 084D                        C3	$M_A_00008H_END LABEL BYTE
 084D                        C3	$M_A_00009H_MSG LABEL BYTE
 084D  64                    C3	        DB      $M_A_00009H_END-$M_A_00009H_MSG-1
 084E  59 6F 75 20 6D 75     C3	        DB      "You must restart your computer to continue.",CR,LF,CR,LF
 087D  50 72 65 73 73 20     C3	        DB      	"Press Ctrl+Alt+Del to continue with DOS installation."
 08B2                        C3	$M_A_00009H_END LABEL BYTE
 08B2                        C3	$M_CLS_1 PROC FAR
 08B2  0E                    C3	        PUSH    CS
 08B3  07                    C3	        POP     ES
 08B4  8D 3E 066E R          C3	        LEA     DI,$M_CLASS_A_STRUC
 08B8  81 C1 024A            C3	        ADD     CX,$-$M_CLASS_A_STRUC
 08BC  CB                    C3	        RET
 08BD                        C3	$M_CLS_1 ENDP
 08BD                        C3	$M_CLASS_B_STRUC LABEL BYTE
 08BD  FF                    C3	        $M_CLASS_ID <0FFH,EXPECTED_VERSION,Class_B_MessageCount>
 08BE  0400                  C3	
 08C0  0B                    C3	
 08C1                        C3	$M_B_0000AH_STRUC LABEL BYTE
 08C1  0A00                  C3	        $M_ID   <0000AH,$M_B_0000AH_MSG-$M_B_0000AH_STRUC>
 08C3  2C00                  C3	
 08C5                        C3	$M_B_0000BH_STRUC LABEL BYTE
 08C5  0B00                  C3	        $M_ID   <0000BH,$M_B_0000BH_MSG-$M_B_0000BH_STRUC>
 08C7  8F00                  C3	
 08C9                        C3	$M_B_0000CH_STRUC LABEL BYTE
 08C9  0C00                  C3	        $M_ID   <0000CH,$M_B_0000CH_MSG-$M_B_0000CH_STRUC>
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-34
DOS - Message Retriever - DISPMSG.ASM Module                

 08CB  8D00                  C3	
 08CD                        C3	$M_B_0000DH_STRUC LABEL BYTE
 08CD  0D00                  C3	        $M_ID   <0000DH,$M_B_0000DH_MSG-$M_B_0000DH_STRUC>
 08CF  CA00                  C3	
 08D1                        C3	$M_B_0000EH_STRUC LABEL BYTE
 08D1  0E00                  C3	        $M_ID   <0000EH,$M_B_0000EH_MSG-$M_B_0000EH_STRUC>
 08D3  3F01                  C3	
 08D5                        C3	$M_B_0000FH_STRUC LABEL BYTE
 08D5  0F00                  C3	        $M_ID   <0000FH,$M_B_0000FH_MSG-$M_B_0000FH_STRUC>
 08D7  B401                  C3	
 08D9                        C3	$M_B_00010H_STRUC LABEL BYTE
 08D9  1000                  C3	        $M_ID   <00010H,$M_B_00010H_MSG-$M_B_00010H_STRUC>
 08DB  C901                  C3	
 08DD                        C3	$M_B_00011H_STRUC LABEL BYTE
 08DD  1100                  C3	        $M_ID   <00011H,$M_B_00011H_MSG-$M_B_00011H_STRUC>
 08DF  3602                  C3	
 08E1                        C3	$M_B_00012H_STRUC LABEL BYTE
 08E1  1200                  C3	        $M_ID   <00012H,$M_B_00012H_MSG-$M_B_00012H_STRUC>
 08E3  A702                  C3	
 08E5                        C3	$M_B_00013H_STRUC LABEL BYTE
 08E5  1300                  C3	        $M_ID   <00013H,$M_B_00013H_MSG-$M_B_00013H_STRUC>
 08E7  FE02                  C3	
 08E9                        C3	$M_B_00014H_STRUC LABEL BYTE
 08E9  1400                  C3	        $M_ID   <00014H,$M_B_00014H_MSG-$M_B_00014H_STRUC>
 08EB  4003                  C3	
 08ED                        C3	$M_B_0000AH_MSG LABEL BYTE
 08ED  66                    C3	        DB      $M_B_0000AH_END-$M_B_0000AH_MSG-1
 08EE  49 6E 73 65 72 74     C3	        DB      "Insert SELECT diskette in drive A:",CR,LF,CR,LF
 0914  50 72 65 73 73 20     C3	        DB      	"Press Enter to continue installing DOS,",CR,LF
 093D  6F 72 20 70 72 65     C3	        DB      	"or press Esc to exit.",CR,LF
 0954                        C3	$M_B_0000AH_END LABEL BYTE
 0954                        C3	$M_B_0000BH_MSG LABEL BYTE
 0954  01                    C3	        DB      $M_B_0000BH_END-$M_B_0000BH_MSG-1
 0955  07                    C3	        DB      BELL
 0956                        C3	$M_B_0000BH_END LABEL BYTE
 0956                        C3	$M_B_0000CH_MSG LABEL BYTE
 0956  40                    C3	        DB      $M_B_0000CH_END-$M_B_0000CH_MSG-1
 0957  49 6E 73 65 72 74     C3	        DB      "Insert SELECT diskette in drive A:",CR,LF,CR,LF
 097D  50 72 65 73 73 20     C3	        DB      	"Press Enter to continue.",CR,LF
 0997                        C3	$M_B_0000CH_END LABEL BYTE
 0997                        C3	$M_B_0000DH_MSG LABEL BYTE
 0997  78                    C3	        DB      $M_B_0000DH_END-$M_B_0000DH_MSG-1
 0998  52 65 6D 6F 76 65     C3	        DB      "Remove the SELECT COPY Diskette from drive A:",CR,LF,CR,LF
 09C9  49 6E 73 65 72 74     C3	        DB      	"Insert the INSTALL Diskette in drive A:",CR,LF,CR,LF,CR,LF
 09F6  50 72 65 73 73 20     C3	        DB      	"Press Enter to continue.",CR,LF
 0A10                        C3	$M_B_0000DH_END LABEL BYTE
 0A10                        C3	$M_B_0000EH_MSG LABEL BYTE
 0A10  78                    C3	        DB      $M_B_0000EH_END-$M_B_0000EH_MSG-1
 0A11  52 65 6D 6F 76 65     C3	        DB      "Remove the INSTALL Diskette from drive A:",CR,LF,CR,LF
 0A3E  49 6E 73 65 72 74     C3	        DB      	"Insert the SELECT COPY Diskette in drive A:",CR,LF,CR,LF,CR,LF
 0A6F  50 72 65 73 73 20     C3	        DB      	"Press Enter to continue.",CR,LF
 0A89                        C3	$M_B_0000EH_END LABEL BYTE
 0A89                        C3	$M_B_0000FH_MSG LABEL BYTE
 0A89  18                    C3	        DB      $M_B_0000FH_END-$M_B_0000FH_MSG-1
 0A8A  43 6F 70 79 69 6E     C3	        DB      "Copying diskette . . .",CR,LF
 0AA2                        C3	$M_B_0000FH_END LABEL BYTE
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-35
DOS - Message Retriever - DISPMSG.ASM Module                

 0AA2                        C3	$M_B_00010H_MSG LABEL BYTE
 0AA2  70                    C3	        DB      $M_B_00010H_END-$M_B_00010H_MSG-1
 0AA3  44 72 69 76 65 20     C3	        DB      "Drive not ready.  Please close the",CR,LF,CR,LF
 0AC9  64 69 73 6B 65 74     C3	        DB      	"diskette drive door and press Enter",CR,LF
 0AEE  74 6F 20 63 6F 6E     C3	        DB      	"to continue, or Esc to exit SELECT.",CR,LF
 0B13                        C3	$M_B_00010H_END LABEL BYTE
 0B13                        C3	$M_B_00011H_MSG LABEL BYTE
 0B13  74                    C3	        DB      $M_B_00011H_END-$M_B_00011H_MSG-1
 0B14  57 72 69 74 65 20     C3	        DB      "Write protect diskette in drive.",CR,LF,CR,LF
 0B38  50 6C 65 61 73 65     C3	        DB      	"Please remove protect tab and",CR,LF
 0B57  70 72 65 73 73 20     C3	        DB      	"press Enter to continue, or Esc to exit SELECT.",CR,LF
 0B88                        C3	$M_B_00011H_END LABEL BYTE
 0B88                        C3	$M_B_00012H_MSG LABEL BYTE
 0B88  5A                    C3	        DB      $M_B_00012H_END-$M_B_00012H_MSG-1
 0B89  41 6E 20 65 72 72     C3	        DB      "An error occurred while installing DOS.",CR,LF
 0BB2  50 72 65 73 73 20     C3	        DB      	"Press Enter to continue, or Esc to exit SELECT.",CR,LF
 0BE3                        C3	$M_B_00012H_END LABEL BYTE
 0BE3                        C3	$M_B_00013H_MSG LABEL BYTE
 0BE3  45                    C3	        DB      $M_B_00013H_END-$M_B_00013H_MSG-1
 0BE4  49 6E 73 65 72 74     C3	        DB      "Insert the INSTALL Diskette in drive A:",CR,LF,CR,LF
 0C0F  50 72 65 73 73 20     C3	        DB      	"Press Enter to continue.",CR,LF
 0C29                        C3	$M_B_00013H_END LABEL BYTE
 0C29                        C3	$M_B_00014H_MSG LABEL BYTE
 0C29  15                    C3	        DB      $M_B_00014H_END-$M_B_00014H_MSG-1
 0C2A  49 6E 73 75 66 66     C3	        DB      "Insufficient memory",CR,LF
 0C3F                        C3	$M_B_00014H_END LABEL BYTE
 0C3F                        C3	$M_CLS_2 PROC FAR
 0C3F  0E                    C3	        PUSH    CS
 0C40  07                    C3	        POP     ES
 0C41  8D 3E 08BD R          C3	        LEA     DI,$M_CLASS_B_STRUC
 0C45  81 C1 0388            C3	        ADD     CX,$-$M_CLASS_B_STRUC
 0C49  CB                    C3	        RET
 0C4A                        C3	$M_CLS_2 ENDP
				 MSG_SERVICES <SELECT.CL1,SELECT.CL2>				      ;AN000;
 0C4A                        C3	$M_CLASS_1_STRUC LABEL BYTE
 0C4A  01                    C3	        $M_CLASS_ID <001H,EXPECTED_VERSION,Class_1_MessageCount>
 0C4B  0400                  C3	
 0C4D  01                    C3	
 0C4E                        C3	$M_1_FF_STRUC LABEL BYTE
 0C4E  FFFF                  C3	        $M_ID <0FFFFH,$M_1_FF_MSG-$M_1_FF_STRUC>
 0C50  0400                  C3	
 0C52                        C3	$M_1_FF_MSG LABEL BYTE
 0C52  11                    C3	        DB      $M_1_FF_END-$M_1_FF_MSG-1
 0C53  45 78 74 65 6E 64     C3	        DB      "Extended Error %1"
 0C64                        C3	$M_1_FF_END LABEL BYTE
 0C64                        C3	$M_MSGSERV_1 PROC FAR
 0C64  0E                    C3	        PUSH    CS
 0C65  07                    C3	        POP     ES
 0C66  8D 3E 0C4A R          C3	        LEA     DI,$M_CLASS_1_STRUC
 0C6A  83 C1 20              C3	        ADD     CX,$-$M_CLASS_1_STRUC
 0C6D  CB                    C3	        RET
 0C6E                        C3	$M_MSGSERV_1 Endp
 0C6E                        C3	$M_CLASS_2_STRUC LABEL BYTE
 0C6E  02                    C3	        $M_CLASS_ID <002H,EXPECTED_VERSION,Class_2_MessageCount>
 0C6F  0400                  C3	
 0C71  01                    C3	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-36
DOS - Message Retriever - DISPMSG.ASM Module                

 0C72                        C3	$M_2_FF_STRUC LABEL BYTE
 0C72  FFFF                  C3	        $M_ID <0FFFFH,$M_2_FF_MSG-$M_2_FF_STRUC>
 0C74  0400                  C3	
 0C76                        C3	$M_2_FF_MSG LABEL BYTE
 0C76  0E                    C3	        DB      $M_2_FF_END-$M_2_FF_MSG-1
 0C77  50 61 72 73 65 20     C3	        DB      "Parse Error %1"
 0C85                        C3	$M_2_FF_END LABEL BYTE
 0C85                        C3	$M_MSGSERV_2 PROC FAR
 0C85  0E                    C3	        PUSH    CS
 0C86  07                    C3	        POP     ES
 0C87  8D 3E 0C6E R          C3	        LEA     DI,$M_CLASS_2_STRUC
 0C8B  83 C1 1D              C3	        ADD     CX,$-$M_CLASS_2_STRUC
 0C8E  CB                    C3	        RET
 0C8F                        C3	$M_MSGSERV_2 Endp
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				;
				;	Start of SELECT.EXE code
				;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 0C8F				INITIALIZATION: 						;AN000;
					LOAD_MESSAGES						;AN000;
 0C8F  9A 00DB ---- R        1	    CALL SYSLOADMSG										
					  ; 
 0C94  E9 0000 E			JMP	CHECK_VERSION					;AN000;
				;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				
				
 0C97				SELECT	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,
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-37
DOS - Message Retriever - DISPMSG.ASM Module                

			     C		EXTRN	$M_RT:BYTE		;     Must be external
			     C	    ELSE
			     C		PUBLIC	$M_RT
			     C	    ENDIF				;
			     C	  ENDIF
			     C	
			     C	  $M_CHECK $M_GET_MSG_ADDRESS	      ;  If this subroutine is not in this assembly,
			     C	  $M_CHECK $M_MSGSERV_1 	      ;  If this subroutine is not in this assembly,
			     C	  $M_CHECK $M_MSGSERV_2 	      ;  If this subroutine is not in this assembly,
			     C	
			     C	ENDM				       ;
			     C					       ;
			     C	$M_DECLARE2   macro   innum	       ;
			     C	  IF NOT COMR			       ; IF Not resident COMMAND.COM
			     C	    IF NOT COMT 			 ; IF Not transient COMMAND.COM
			     C	      IFNDEF  $M_CLS_&innum		 ; IF class is not in this assembly,
			     C		IF	FARmsg			 ;
			     C		  EXTRN   $M_CLS_&innum:FAR	 ;    Must be external
			     C		ELSE				 ;
			     C		  EXTRN   $M_CLS_&innum:NEAR	 ;    Must be external
			     C		ENDIF				 ;
			     C	      ELSE				 ; ELSE
			     C		PUBLIC	$M_CLS_&innum		 ;    Label PUBLIC
			     C	      ENDIF				 ;
			     C	    ELSE				 ; ELSE
			     C	      IFDIF  <$M_CLS_&innum>,<$M_CLS_1>  ; IF NOT $M_CLS_1 or
			     C		IFDIF <$M_CLS_&innum>,<$M_CLS_2> ;   IF NOT $M_CLS_2 then
			     C		  IFNDEF  $M_CLS_&innum 	 ;     IF class is not in this assembly,
			     C		    IF	    FARmsg		 ;
			     C		      EXTRN   $M_CLS_&innum:FAR  ;	 Must be external
			     C		    ELSE			 ;
			     C		      EXTRN   $M_CLS_&innum:NEAR ;	 Must be external
			     C		    ENDIF			 ;
			     C		  ELSE				 ;     ELSE
			     C		    PUBLIC  $M_CLS_&innum	 ;	 Label PUBLIC
			     C		  ENDIF 			 ;
			     C		ENDIF				 ;
			     C	      ENDIF				 ;
			     C	    ENDIF				 ;
			     C	  ELSE					 ; ELSE
			     C	    IFDIF  <$M_CLS_&innum>,<$M_CLS_1>	 ; IF NOT $M_CLS_1 or
			     C	      IFDIF <$M_CLS_&innum>,<$M_CLS_2>	 ;   IF NOT $M_CLS_2 then
			     C		IFNDEF	$M_CLS_&innum		 ;     IF class is not in this assembly,
			     C		  IF	  FARmsg		 ;
			     C		    EXTRN   $M_CLS_&innum:FAR	 ;	 Must be external
			     C		  ELSE				 ;
			     C		    EXTRN   $M_CLS_&innum:NEAR	 ;	 Must be external
			     C		  ENDIF 			 ;
			     C		ELSE				 ;     ELSE
			     C		  PUBLIC  $M_CLS_&innum 	 ;	 Label PUBLIC
			     C		ENDIF				 ;
			     C	      ENDIF				 ;
			     C	    ENDIF				 ;
			     C	  ENDIF 			       ;
			     C	ENDM				       ;
			     C					       ;
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Page     1-38
DOS - Message Retriever - DISPMSG.ASM Module                

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

Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       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
.ELSE  . . . . . . . . . . . . .  	  21
.ELSEIF  . . . . . . . . . . . .  	  16
.ENDIF . . . . . . . . . . . . .  	  11
.ENDSELECT . . . . . . . . . . .  	  15
.ENDWHILE  . . . . . . . . . . .  	  10
.FOR . . . . . . . . . . . . . .  	  23
.IF  . . . . . . . . . . . . . .  	  13
.LEAVE . . . . . . . . . . . . .  	   1
.LOOP  . . . . . . . . . . . . .  	  12
.NEXT  . . . . . . . . . . . . .  	  20
.OTHERWISE . . . . . . . . . . .  	  21
.REPEAT  . . . . . . . . . . . .  	   9
.SELECT  . . . . . . . . . . . .  	   4
.THEN  . . . . . . . . . . . . .  	   6
.UNTIL . . . . . . . . . . . . .  	   1
.WHEN  . . . . . . . . . . . . .  	  24
.WHILE . . . . . . . . . . . . .  	  14
ADD_WORD . . . . . . . . . . . .  	   2
ALLOCATE_MEMORY  . . . . . . . .  	   1
APPEND_STRING  . . . . . . . . .  	   4
BEEP . . . . . . . . . . . . . .  	   3
BYTE_TO_CHAR . . . . . . . . . .  	   4
CHANGE_ATTRIBUTE . . . . . . . .  	   5
CHANGE_AUTOEXEC  . . . . . . . .  	   4
CHANGE_DIR . . . . . . . . . . .  	   7
CHECK_CLOCK  . . . . . . . . . .  	  10
CHECK_DATE_CHANGE  . . . . . . .  	  13
CHECK_DEFAULT_DRIVE  . . . . . .  	   7
CHECK_DISK . . . . . . . . . . .  	   6
CHECK_DISKETTE . . . . . . . . .  	  58
CHECK_DISPLAY  . . . . . . . . .  	   1
CHECK_DOS_PATH . . . . . . . . .  	   3
CHECK_DOS_VERSION  . . . . . . .  	   8
CHECK_EXPANDED_MEMORY  . . . . .  	   3
CHECK_MACHINE  . . . . . . . . .  	  18
CHECK_PATH . . . . . . . . . . .  	   9
CHECK_TIME_CHANGE  . . . . . . .  	  13
CHECK_VALID_MEDIA  . . . . . . .  	   7
CHECK_WRITE_PROTECT  . . . . . .  	   3
CHMOD_FILE . . . . . . . . . . .  	   2
CLEAR_SCREEN . . . . . . . . . .  	  10
CLEAR_SCREEN2  . . . . . . . . .  	  10
CLOSE_FILE . . . . . . . . . . .  	   3
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-2


COMPARE_STRINGS  . . . . . . . .  	   4
COMP_BYTES . . . . . . . . . . .  	   3
COMP_WORDS . . . . . . . . . . .  	   3
COPY_BYTE  . . . . . . . . . . .  	   2
COPY_FILES . . . . . . . . . . .  	   7
COPY_FILES2  . . . . . . . . . .  	   8
COPY_STRING  . . . . . . . . . .  	   5
COPY_WORD  . . . . . . . . . . .  	   2
CREATE_AUTOEXEC  . . . . . . . .  	   4
CREATE_CONFIG  . . . . . . . . .  	   3
CREATE_FILE  . . . . . . . . . .  	   4
CREATE_SHELL . . . . . . . . . .  	   3
DEALLOCATE_MEMORY  . . . . . . .  	   1
DEC_VAR  . . . . . . . . . . . .  	   1
DIR  . . . . . . . . . . . . . .  	   6
DISKCOPY_PANELS  . . . . . . . .  	   3
DISKCOPY_TO  . . . . . . . . . .  	   4
DISPLAY_MESSAGE  . . . . . . . .  	   3
DISPLAY_PANEL  . . . . . . . . .  	   1
DOSCALL  . . . . . . . . . . . .  	   1
ERASE_FILE . . . . . . . . . . .  	   2
EXEC_PROGRAM . . . . . . . . . .  	   9
FIND_FILE  . . . . . . . . . . .  	   4
FIND_NEXT  . . . . . . . . . . .  	   5
FREE_MEM . . . . . . . . . . . .  	   8
GET_ALT_KEYBOARD . . . . . . . .  	  24
GET_ALT_KYBD_TABLE . . . . . . .  	  20
GET_COUNTRY_DEFAULTS . . . . . .  	   3
GET_COUNTRY_INDEX  . . . . . . .  	   4
GET_DATE . . . . . . . . . . . .  	  14
GET_DOS_COUNTRY  . . . . . . . .  	  12
GET_FREE_SPACE . . . . . . . . .  	  10
GET_FUNCTION . . . . . . . . . .  	   3
GET_INSTALLED_MEM  . . . . . . .  	   2
GET_KEYBOARD . . . . . . . . . .  	   5
GET_KEYBOARD_INDEX . . . . . . .  	   5
GET_NUMBER_PORTS . . . . . . . .  	  12
GET_NUMERIC  . . . . . . . . . .  	  29
GET_PARTITION_SIZE . . . . . . .  	   7
GET_PRINTER_INFO . . . . . . . .  	   3
GET_PRINTER_PARAMS . . . . . . .  	   5
GET_PRINTER_TITLES . . . . . . .  	   3
GET_SCROLL . . . . . . . . . . .  	   5
GET_STRING . . . . . . . . . . .  	   6
GET_TIME . . . . . . . . . . . .  	   9
GOTO . . . . . . . . . . . . . .  	   1
HANDLE_ERROR . . . . . . . . . .  	   7
HANDLE_FORMAT_ERROR  . . . . . .  	  10
HOOK15 . . . . . . . . . . . . .  	   1
HOOK_2F_FORMAT . . . . . . . . .  	   1
INC_VAR  . . . . . . . . . . . .  	   1
INIT . . . . . . . . . . . . . .  	   5
INITIALIZE_BCHAR . . . . . . . .  	  23
INIT_CHAR  . . . . . . . . . . .  	   5
INIT_NUMERIC . . . . . . . . . .  	  13
INIT_PQUEUE  . . . . . . . . . .  	   2
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-3


INIT_SCROLL  . . . . . . . . . .  	   3
INIT_SCROLL_COLOUR . . . . . . .  	   3
INIT_SCROLL_STATUS . . . . . . .  	   3
INIT_SCROLL_W_LIST . . . . . . .  	  10
INIT_SCROLL_W_NUM  . . . . . . .  	   6
INIT_STRING  . . . . . . . . . .  	   4
INIT_SUPPORT . . . . . . . . . .  	   8
INIT_VAR . . . . . . . . . . . .  	   1
INIT_VAR_BALANCE . . . . . . . .  	   9
INIT_VAR_MAXIMIZE  . . . . . . .  	   9
INIT_VAR_MINIMIZE  . . . . . . .  	   9
INSERT_DISK  . . . . . . . . . .  	   4
INSTALL_FILES  . . . . . . . . .  	   2
LOAD_MESSAGES  . . . . . . . . .  	   2
MAKE_DIR . . . . . . . . . . . .  	   7
MAKE_DIR_PATHS . . . . . . . . .  	   2
MATCH_DISK_FILES . . . . . . . .  	   7
MERGE_STRING . . . . . . . . . .  	   8
MSG_SERVICES . . . . . . . . . .  	  34
MSG_SERVICES2  . . . . . . . . .  	  14
MSG_UTILNAME . . . . . . . . . .  	   5
OPEN_FILE  . . . . . . . . . . .  	   4
POPP . . . . . . . . . . . . . .  	   3
POP_HEADING  . . . . . . . . . .  	   2
POS_CURSOR . . . . . . . . . . .  	  18
PREPARE_CHILDREN . . . . . . . .  	   1
PREPARE_FILE . . . . . . . . . .  	   2
PREPARE_PANEL  . . . . . . . . .  	   2
PREP_FOR_ONE . . . . . . . . . .  	   2
PROCESS_ESC  . . . . . . . . . .  	   4
PROCESS_F3 . . . . . . . . . . .  	   4
PUSHH  . . . . . . . . . . . . .  	   3
PUSH_HEADING . . . . . . . . . .  	   2
READ_FILE  . . . . . . . . . . .  	   4
RELEASE_PRINTER_INFO . . . . . .  	   2
REMOVE_DIR . . . . . . . . . . .  	   7
RENAME_FILE  . . . . . . . . . .  	   4
RESTORE_ATTRIBUTE  . . . . . . .  	   5
RETURN_STRING  . . . . . . . . .  	   4
RET_SUPPORT  . . . . . . . . . .  	   8
SAVE_FILE  . . . . . . . . . . .  	   3
SAVE_PANEL_LIST  . . . . . . . .  	   3
SAVE_PARAMETERS  . . . . . . . .  	  11
SAVE_PRINTER_PARAMS  . . . . . .  	   3
SCAN_DISK_TABLE  . . . . . . . .  	   4
SCAN_INFO_FILE . . . . . . . . .  	  14
SCAN_PARAMETERS  . . . . . . . .  	   3
SET_DATE . . . . . . . . . . . .  	  12
SET_DISPLAY_MODE . . . . . . . .  	   1
SET_FILE_DATE_TIME . . . . . . .  	  33
SET_NUMERIC  . . . . . . . . . .  	  13
SET_SCROLL . . . . . . . . . . .  	   3
SET_STRING . . . . . . . . . . .  	   4
SET_TIME . . . . . . . . . . . .  	  14
TOGGLE_SUPPORT . . . . . . . . .  	   3
UNHOOK15 . . . . . . . . . . . .  	   1
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-4


UNHOOK_2F  . . . . . . . . . . .  	   1
UPDATE_DISK_TABLE  . . . . . . .  	   4
WORD_TO_CHAR . . . . . . . . . .  	   3
WRITE_FILE . . . . . . . . . . .  	   5
WRITE_LINE . . . . . . . . . . .  	   2

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  . . . . . . . .  	005A	000A
  $M_HEADER  . . . . . . . . . .  	0000
  $M_DATE_FORMAT . . . . . . . .  	0048
  $M_CURR_SEPARA . . . . . . . .  	004A
  $M_THOU_SEPARA . . . . . . . .  	004F
  $M_DECI_SEPARA . . . . . . . .  	0051
  $M_DATE_SEPARA . . . . . . . .  	0053
  $M_TIME_SEPARA . . . . . . . .  	0055
  $M_CURR_FORMAT . . . . . . . .  	0057
  $M_SIG_DIGS_CU . . . . . . . .  	0058
  $M_TIME_FORMAT . . . . . . . .  	0059
$M_ID  . . . . . . . . . . . . .  	0004	0002
  $M_NUM . . . . . . . . . . . .  	0000
  $M_TXT_PTR . . . . . . . . . .  	0002
$M_RES_ADDRS . . . . . . . . . .  	0089	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  . . . . . . . . .  	0034
  $M_DBCS_VEC  . . . . . . . . .  	0038
  $M_HANDLE  . . . . . . . . . .  	003C
  $M_SIZE  . . . . . . . . . . .  	003E
  $M_CRLF  . . . . . . . . . . .  	003F
  $M_CLASS . . . . . . . . . . .  	0041
  $M_RETURN_ADDR . . . . . . . .  	0042
  $M_MSG_NUM . . . . . . . . . .  	0044
  $M_DIVISOR . . . . . . . . . .  	0046
  $M_TEMP_BUF  . . . . . . . . .  	0048
  $M_BUF_TERM  . . . . . . . . .  	0088
$M_SUBLIST_STRUC . . . . . . . .  	000B	0008
  $M_S_SIZE  . . . . . . . . . .  	0000
  $M_S_RESV  . . . . . . . . . .  	0001
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-5


  $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

AGROUP . . . . . . . . . . . . .  	GROUP
  CODE . . . . . . . . . . . . .  	0000	PARA	PUBLIC	'CODE'
  CODE_FAR . . . . . . . . . . .  	0000	PARA	PUBLIC	'CODE'
  DATA . . . . . . . . . . . . .  	0000	BYTE	PUBLIC	'DATA'
  PARSER . . . . . . . . . . . .  	0000	PARA	PUBLIC	'PARSER'
  SERVICE  . . . . . . . . . . .  	0000	PARA	PUBLIC	'SERVICE'
  SELECT . . . . . . . . . . . .  	0C97	PARA	PUBLIC	'SELECT'
  OUR_STACK  . . . . . . . . . .  	0800	BYTE	STACK	
  ZSEG . . . . . . . . . . . . .  	0000	PARA	PUBLIC	'ZSEG'
CONST  . . . . . . . . . . . . .  	0000	WORD	PUBLIC	'CONST'
PCINPUT  . . . . . . . . . . . .  	0000	PARA	PUBLIC	'PCINPUT'
_BSS . . . . . . . . . . . . . .  	0000	WORD	PUBLIC	'BSS'
_DATA  . . . . . . . . . . . . .  	0000	WORD	PUBLIC	'DATA'
_TEXT  . . . . . . . . . . . . .  	0000	BYTE	PUBLIC	'CODE'

Symbols:            

                N a m e         	Type	 Value	 Attr

ABORT_SELECT . . . . . . . . . .  	L NEAR	00C3	SELECT	Global
ACTION_39  . . . . . . . . . . .  	NUMBER	0004	
ACTIVE . . . . . . . . . . . . .  	V BYTE	0000		External
ADJUST_DOWN  . . . . . . . . . .  	L NEAR	0000	SELECT	External
ADJUST_UP  . . . . . . . . . . .  	L NEAR	0000	SELECT	External
ALTERNATE  . . . . . . . . . . .  	V BYTE	0000		External
ALT_FRENCH . . . . . . . . . . .  	NUMBER	0000		Communal
ALT_FR_ITEMS . . . . . . . . . .  	NUMBER	0000		Communal
ALT_ID_DEF . . . . . . . . . . .  	V BYTE	0000		External
ALT_ITALIAN  . . . . . . . . . .  	NUMBER	0000		Communal
ALT_IT_ITEMS . . . . . . . . . .  	NUMBER	0000		Communal
ALT_KYBD_FR  . . . . . . . . . .  	V BYTE	0000		External
ALT_KYBD_FR_1  . . . . . . . . .  	V WORD	0000		External
ALT_KYBD_IT  . . . . . . . . . .  	V BYTE	0000		External
ALT_KYBD_IT_1  . . . . . . . . .  	V BYTE	0000		External
ALT_KYBD_UK  . . . . . . . . . .  	V BYTE	0000		External
ALT_KYBD_UK_1  . . . . . . . . .  	V BYTE	0000		External
ALT_KYB_ID . . . . . . . . . . .  	V BYTE	0000		External
ALT_KYB_ID_PREV  . . . . . . . .  	V BYTE	0000		External
ALT_KYB_ITEMS  . . . . . . . . .  	NUMBER	0000		Communal
ALT_KYB_TABLE  . . . . . . . . .  	V BYTE	0000		External
ALT_KYB_TAB_1  . . . . . . . . .  	V BYTE	0000		External
ALT_TAB_PTR  . . . . . . . . . .  	V 0002	0000		External
ALT_UK . . . . . . . . . . . . .  	NUMBER	0000		Communal
ALT_UK_ITEMS . . . . . . . . . .  	NUMBER	0000		Communal
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-6


APPEND_STRING_ROUTINE  . . . . .  	L FAR 	0000		External
A_DRIVE  . . . . . . . . . . . .  	NUMBER	0003	

BEEP_ROUTINE . . . . . . . . . .  	L FAR 	0000		External
BELL . . . . . . . . . . . . . .  	NUMBER	0007	
BIN_HEX_BYTE . . . . . . . . . .  	NUMBER	0013	
BIN_HEX_DWORD  . . . . . . . . .  	NUMBER	0033	
BIN_HEX_TYPE . . . . . . . . . .  	NUMBER	0003	
BIN_HEX_WORD . . . . . . . . . .  	NUMBER	0023	
BIN_TO_CHAR_ROUTINE  . . . . . .  	L FAR 	0000		External
B_DRIVE  . . . . . . . . . . . .  	NUMBER	0001	

CGA  . . . . . . . . . . . . . .  	NUMBER	0000		Communal
CHANGE_ATTRIBUTE_ROUTINE . . . .  	L FAR 	0000		External
CHANGE_AUTOEXEC_ROUTINE  . . . .  	L FAR 	0000		External
CHARMSG  . . . . . . . . . . . .  	NUMBER	0000	
CHAR_FIELD_ASCIIZ  . . . . . . .  	NUMBER	0010	
CHAR_FIELD_CHAR  . . . . . . . .  	NUMBER	0000	
CHAR_TYPE  . . . . . . . . . . .  	NUMBER	0000	
CHECK_DISK_ROUTINE . . . . . . .  	L FAR 	0000		External
CHECK_DOS_PATH_ROUTINE . . . . .  	L FAR 	0000		External
CHECK_MIN_MAX  . . . . . . . . .  	L NEAR	0000	SELECT	External
CHECK_VALID_MEDIA_ROUTINE  . . .  	L FAR 	0000		External
CHECK_VALID_PATH . . . . . . . .  	L FAR 	0000		External
CHECK_VERSION  . . . . . . . . .  	L NEAR	0000		External
CHECK_WRITE_ROUTINE  . . . . . .  	L FAR 	0000		External
CHILD_ENTER  . . . . . . . . . .  	NUMBER	0034	
CHILD_F1HELP . . . . . . . . . .  	NUMBER	0031	
CHILD_F3EXIT . . . . . . . . . .  	NUMBER	0028	
CHILD_F9KEYS . . . . . . . . . .  	NUMBER	0032	
CHILD_QUIT . . . . . . . . . . .  	NUMBER	0033	
CHK_EX_MEM_ROUTINE . . . . . . .  	L FAR 	0000		External
CHK_W_PROTECT_FLAG . . . . . . .  	L FAR 	0000		External
CHMOD_FILE_ROUTINE . . . . . . .  	L FAR 	0000		External
CLASS_1_MESSAGECOUNT . . . . . .  	NUMBER	0001	
CLASS_2_MESSAGECOUNT . . . . . .  	NUMBER	0001	
CLASS_A_MESSAGECOUNT . . . . . .  	NUMBER	0009	
CLASS_B_MESSAGECOUNT . . . . . .  	NUMBER	000B	
CLOSE_FILE_ROUTINE . . . . . . .  	L FAR 	0000		External
CMD_BUFF . . . . . . . . . . . .  	V BYTE	0000		External
COLON  . . . . . . . . . . . . .  	NUMBER	003A	
COMPARE_ROUTINE  . . . . . . . .  	L FAR 	0000		External
COMR . . . . . . . . . . . . . .  	NUMBER	0000	
COMT . . . . . . . . . . . . . .  	NUMBER	0000	
CONVERT_ASCII  . . . . . . . . .  	L NEAR	0000	SELECT	External
CONVERT_NUMERIC  . . . . . . . .  	L NEAR	0000	SELECT	External
COPY_INST_1200_1440  . . . . . .  	V BYTE	0000		External
COPY_OPER_1200_1440  . . . . . .  	V BYTE	0000		External
COPY_ROUTINE . . . . . . . . . .  	L FAR 	0000		External
COPY_SEL_EGA . . . . . . . . . .  	V BYTE	0000		External
COPY_SEL_LCD . . . . . . . . . .  	V BYTE	0000		External
COPY_SEL_SHEL  . . . . . . . . .  	V BYTE	0000		External
COPY_SHELL_1200_1440 . . . . . .  	V BYTE	0000		External
CR . . . . . . . . . . . . . . .  	NUMBER	000D	
CREATE_FILE_ROUTINE  . . . . . .  	L FAR 	0000		External
CTY_A_ITEMS  . . . . . . . . . .  	NUMBER	0000		Communal
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-7


CTY_B_ITEMS  . . . . . . . . . .  	NUMBER	0000		Communal
CTY_TAB_A  . . . . . . . . . . .  	V BYTE	0000		External
CTY_TAB_A_1  . . . . . . . . . .  	V BYTE	0000		External
CTY_TAB_B  . . . . . . . . . . .  	V BYTE	0000		External
CTY_TAB_B_1  . . . . . . . . . .  	V BYTE	0000		External
CURSOROFF  . . . . . . . . . . .  	L NEAR	0000	SELECT	External
CURSORON . . . . . . . . . . . .  	L NEAR	0000	SELECT	External
C_DRIVE  . . . . . . . . . . . .  	NUMBER	0002	

DATA_INVALID . . . . . . . . . .  	NUMBER	0001	
DATA_VALID . . . . . . . . . . .  	NUMBER	0000	
DATEMSG  . . . . . . . . . . . .  	NUMBER	0000	
DATE_MD  . . . . . . . . . . . .  	NUMBER	0014	
DATE_MDY_2 . . . . . . . . . . .  	NUMBER	0024	
DATE_MDY_4 . . . . . . . . . . .  	NUMBER	0034	
DATE_TYPE  . . . . . . . . . . .  	NUMBER	0004	
DEALLOCATE_MEMORY_CALL . . . . .  	L FAR 	0000		External
DEF_DEST_A . . . . . . . . . . .  	NUMBER	0003	
DEF_DEST_B . . . . . . . . . . .  	NUMBER	0002	
DEF_DEST_C . . . . . . . . . . .  	NUMBER	0001	
DEST_PANEL . . . . . . . . . . .  	V WORD	0000		External
DISKETTES_EXIST  . . . . . . . .  	NUMBER	0001	
DISK_1_START . . . . . . . . . .  	V BYTE	0000		External
DISK_1_TABLE . . . . . . . . . .  	V BYTE	0000		External
DISK_1_VAL_ITEM  . . . . . . . .  	V BYTE	0000		External
DISK_2_START . . . . . . . . . .  	V BYTE	0000		External
DISK_2_TABLE . . . . . . . . . .  	V BYTE	0000		External
DISK_2_VAL_ITEM  . . . . . . . .  	V BYTE	0000		External
DISK_PANEL . . . . . . . . . . .  	V WORD	0000		External
DISK_PROC  . . . . . . . . . . .  	NUMBER	0000	
DISPLAYMSG . . . . . . . . . . .  	NUMBER	0000	
DISPLAY_MESSAGE_ROUTINE  . . . .  	L FAR 	0000		External
DISPLAY_PANEL_CALL . . . . . . .  	L NEAR	0000	SELECT	External
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	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-8


DOS_LSEEK_FILE . . . . . . . . .  	NUMBER	4200	
DOS_READ_BYTE  . . . . . . . . .  	NUMBER	003F	
DOS_SET_ADDR . . . . . . . . . .  	NUMBER	0009	
DOS_WRITE_HANDLE . . . . . . . .  	NUMBER	0040	
DO_NOT_USE_DEFAULT . . . . . . .  	NUMBER	0001	
DRIVE_A  . . . . . . . . . . . .  	NUMBER	0000		Communal
DRIVE_B  . . . . . . . . . . . .  	NUMBER	0000		Communal
DSKCPY_EXIT  . . . . . . . . . .  	NUMBER	0001	
DSKCPY_TO_A_360  . . . . . . . .  	NUMBER	0001	
DSKCPY_TO_A_720  . . . . . . . .  	NUMBER	0000	
DSKCPY_TO_B  . . . . . . . . . .  	NUMBER	0002	
D_ANSI_1 . . . . . . . . . . . .  	V WORD	0000		External
D_BUFFERS_1  . . . . . . . . . .  	V 0002	0000		External
D_BUFFERS_2  . . . . . . . . . .  	V 0002	0000		External
D_DOS_LOC_1  . . . . . . . . . .  	V 0002	0000		External
D_FASTOPEN_1 . . . . . . . . . .  	V WORD	0000		External
D_FASTOPEN_2 . . . . . . . . . .  	V WORD	0000		External
D_FCBS_1 . . . . . . . . . . . .  	V WORD	0000		External
D_FILES_1  . . . . . . . . . . .  	V WORD	0000		External
D_FILES_2  . . . . . . . . . . .  	V WORD	0000		External
D_LASTDRIVE_1  . . . . . . . . .  	V WORD	0000		External
D_PROMPT_1 . . . . . . . . . . .  	V 0002	0000		External
D_SHELL_1  . . . . . . . . . . .  	V WORD	0000		External
D_SHELL_2  . . . . . . . . . . .  	V WORD	0000		External
D_XMA2EMS_1  . . . . . . . . . .  	V 0002	0000		External

EGA  . . . . . . . . . . . . . .  	NUMBER	0000		Communal
ERASE_FILE_ROUTINE . . . . . . .  	L FAR 	0000		External
ERROR_CLASS_39 . . . . . . . . .  	NUMBER	0001	
ERROR_KEYS . . . . . . . . . . .  	V BYTE	0000		External
ERROR_KEYS_LEN . . . . . . . . .  	NUMBER	0000		Communal
ERR_ACCESSING_FILE . . . . . . .  	NUMBER	0007	
ERR_ALLOCATING_MEM . . . . . . .  	NUMBER	000A	
ERR_BAD_PATH . . . . . . . . . .  	NUMBER	003E	
ERR_BAD_PFILE  . . . . . . . . .  	NUMBER	003F	
ERR_BAD_PPRO . . . . . . . . . .  	NUMBER	0040	
ERR_BORDER . . . . . . . . . . .  	NUMBER	0043	
ERR_CDP_CPP  . . . . . . . . . .  	NUMBER	000B	
ERR_COPY_DISK  . . . . . . . . .  	NUMBER	0039	
ERR_DOS_DISK . . . . . . . . . .  	NUMBER	0044	
ERR_EXIT . . . . . . . . . . . .  	NUMBER	0014	
ERR_FINDING_NAME . . . . . . . .  	NUMBER	0006	
ERR_FINDING_VALUE  . . . . . . .  	NUMBER	0004	
ERR_GENERAL  . . . . . . . . . .  	NUMBER	0045	
ERR_INS_INSTALL  . . . . . . . .  	NUMBER	0061	
ERR_KEYB . . . . . . . . . . . .  	NUMBER	0021	
ERR_LINE_TOO_LONG  . . . . . . .  	NUMBER	0005	
ERR_NOT_ENOUGH_MEM . . . . . . .  	NUMBER	0001	
ERR_NUMBER_MATCH . . . . . . . .  	NUMBER	0009	
ERR_OPENING_FILE . . . . . . . .  	NUMBER	0002	
ERR_PRN_DEFN . . . . . . . . . .  	NUMBER	000C	
ERR_PRT_NO_HDWR  . . . . . . . .  	NUMBER	0011	
ERR_READING_FILE . . . . . . . .  	NUMBER	0003	
ERR_TOO_MANY_DEFS  . . . . . . .  	NUMBER	0008	
EXEC_DIR . . . . . . . . . . . .  	NUMBER	0001	
EXEC_NO_DIR  . . . . . . . . . .  	NUMBER	0000	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-9


EXEC_PROGRAM_ROUTINE . . . . . .  	L FAR 	0000		External
EXEC_SCROLL_CALL . . . . . . . .  	L NEAR	0000	SELECT	External
EXIT_SELECT  . . . . . . . . . .  	L NEAR	0021	SELECT	Global
EXIT_SELECT2 . . . . . . . . . .  	L NEAR	00A2	SELECT	Global
EXPECTED_VERSION . . . . . . . .  	NUMBER	0004	
EXT_ERR_39 . . . . . . . . . . .  	NUMBER	0027	
EXT_ERR_CLASS  . . . . . . . . .  	NUMBER	0001	
E_1440_SECTORS . . . . . . . . .  	NUMBER	0012	
E_1440_TRACKS  . . . . . . . . .  	NUMBER	0050	
E_ANSI_B . . . . . . . . . . . .  	NUMBER	0000		Communal
E_ANSI_C . . . . . . . . . . . .  	NUMBER	0000		Communal
E_ANSI_NO  . . . . . . . . . . .  	NUMBER	0000		Communal
E_ANSI_YES . . . . . . . . . . .  	NUMBER	0000		Communal
E_APPEND_NO  . . . . . . . . . .  	NUMBER	0000		Communal
E_APPEND_YES . . . . . . . . . .  	NUMBER	0000		Communal
E_CLEAN_NO . . . . . . . . . . .  	NUMBER	0000		Communal
E_CLEAN_YES  . . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_B . . . . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_C . . . . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_DISP  . . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_NA  . . . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_NO  . . . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_NOT_REC . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_NOT_VAL . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_VALID . . . . . . . . . .  	NUMBER	0000		Communal
E_CPSW_YES . . . . . . . . . . .  	NUMBER	0000		Communal
E_CR . . . . . . . . . . . . . .  	NUMBER	0000		Communal
E_CTY_KB_PREDEF  . . . . . . . .  	NUMBER	0000		Communal
E_CTY_KB_USER  . . . . . . . . .  	NUMBER	0000		Communal
E_CTY_LIST_1 . . . . . . . . . .  	NUMBER	0000		Communal
E_CTY_LIST_2 . . . . . . . . . .  	NUMBER	0000		Communal
E_DEST_DOS . . . . . . . . . . .  	NUMBER	0000		Communal
E_DEST_DRIVE_A . . . . . . . . .  	NUMBER	0000		Communal
E_DEST_DRIVE_B . . . . . . . . .  	NUMBER	0000		Communal
E_DEST_DRIVE_C . . . . . . . . .  	NUMBER	0000		Communal
E_DEST_SELECT  . . . . . . . . .  	NUMBER	0000		Communal
E_DEST_SHELL . . . . . . . . . .  	NUMBER	0000		Communal
E_DEST_USER  . . . . . . . . . .  	NUMBER	0000		Communal
E_DISK1_INSTALL  . . . . . . . .  	NUMBER	0000		Communal
E_DISK1_REPLACE  . . . . . . . .  	NUMBER	0000		Communal
E_DISKETTE_1200  . . . . . . . .  	NUMBER	0000		Communal
E_DISKETTE_1440  . . . . . . . .  	NUMBER	0000		Communal
E_DISKETTE_360 . . . . . . . . .  	NUMBER	0000		Communal
E_DISKETTE_720 . . . . . . . . .  	NUMBER	0000		Communal
E_DISKETTE_INV . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_1 . . . . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_2 . . . . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_COL . . . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_EDOS_MEM  . . . . . . . .  	NUMBER	0000		Communal
E_DISK_EXT_DOS . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_FREE_MEM  . . . . . . . .  	NUMBER	0000		Communal
E_DISK_INV . . . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_LOG_DRI . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_NO_PART . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_PRI . . . . . . . . . . .  	NUMBER	0000		Communal
E_DISK_ROW . . . . . . . . . . .  	NUMBER	0000		Communal
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-10


E_DISK_VAL_PART  . . . . . . . .  	NUMBER	0000		Communal
E_DRIVE_COL  . . . . . . . . . .  	NUMBER	0000		Communal
E_DRIVE_ROW  . . . . . . . . . .  	NUMBER	0000		Communal
E_DSKCPY_OK  . . . . . . . . . .  	NUMBER	0000		Communal
E_DSKCPY_RETRY . . . . . . . . .  	NUMBER	0000		Communal
E_ENTER  . . . . . . . . . . . .  	NUMBER	0000		Communal
E_ENTIRE_DISK  . . . . . . . . .  	NUMBER	0000		Communal
E_ESCAPE . . . . . . . . . . . .  	NUMBER	0000		Communal
E_F3 . . . . . . . . . . . . . .  	NUMBER	0000		Communal
E_FASTOPEN_C . . . . . . . . . .  	NUMBER	0000		Communal
E_FASTOPEN_NO  . . . . . . . . .  	NUMBER	0000		External
E_FASTOPEN_YES . . . . . . . . .  	NUMBER	0000		Communal
E_FILES  . . . . . . . . . . . .  	NUMBER	0000		Communal
E_FILE_ATTR  . . . . . . . . . .  	NUMBER	0000		Communal
E_FORMAT_FAT . . . . . . . . . .  	NUMBER	0000		Communal
E_FORMAT_NEW . . . . . . . . . .  	NUMBER	0000		Communal
E_FORMAT_NO  . . . . . . . . . .  	NUMBER	0000		Communal
E_FORMAT_SELECT  . . . . . . . .  	NUMBER	0000		Communal
E_FORMAT_USED  . . . . . . . . .  	NUMBER	0000		Communal
E_FREE_MEM_DISK  . . . . . . . .  	NUMBER	0000		Communal
E_FREE_MEM_EDOS  . . . . . . . .  	NUMBER	0000		Communal
E_GRAFTABL_B . . . . . . . . . .  	NUMBER	0000		Communal
E_GRAFTABL_C . . . . . . . . . .  	NUMBER	0000		Communal
E_GRAFTABL_NA  . . . . . . . . .  	NUMBER	0000		Communal
E_GRAFTABL_NO  . . . . . . . . .  	NUMBER	0000		Communal
E_GRAFTABL_YES . . . . . . . . .  	NUMBER	0000		Communal
E_GRAPHICS_B . . . . . . . . . .  	NUMBER	0000		Communal
E_GRAPHICS_C . . . . . . . . . .  	NUMBER	0000		Communal
E_GRAPHICS_NO  . . . . . . . . .  	NUMBER	0000		Communal
E_GRAPHICS_YES . . . . . . . . .  	NUMBER	0000		Communal
E_HIDE_SEL . . . . . . . . . . .  	NUMBER	0000		Communal
E_HIDE_STARTUP . . . . . . . . .  	NUMBER	0000		Communal
E_INST_1200_1440 . . . . . . . .  	NUMBER	0000		Communal
E_IS_MOD80 . . . . . . . . . . .  	NUMBER	0000		Communal
E_KYBD_ALT_NO  . . . . . . . . .  	NUMBER	0000		Communal
E_KYBD_ALT_YES . . . . . . . . .  	NUMBER	0000		Communal
E_KYBD_LIST_1  . . . . . . . . .  	NUMBER	0000		Communal
E_KYBD_LIST_2  . . . . . . . . .  	NUMBER	0000		Communal
E_KYBD_VAL_DEF . . . . . . . . .  	NUMBER	0000		Communal
E_KYBD_VAL_NO  . . . . . . . . .  	NUMBER	0000		Communal
E_KYBD_VAL_YES . . . . . . . . .  	NUMBER	0000		Communal
E_KYB_LOAD_ERR . . . . . . . . .  	NUMBER	0000		Communal
E_KYB_LOAD_SUC . . . . . . . . .  	NUMBER	0000		Communal
E_KYB_LOAD_UND . . . . . . . . .  	NUMBER	0000		Communal
E_KYB_LOAD_US  . . . . . . . . .  	NUMBER	0000		Communal
E_LF . . . . . . . . . . . . . .  	NUMBER	0000		Communal
E_NA . . . . . . . . . . . . . .  	NUMBER	0000		Communal
E_NO . . . . . . . . . . . . . .  	NUMBER	0000		Communal
E_NOCPSW_DISP  . . . . . . . . .  	NUMBER	0000		Communal
E_OPER_1200_1440 . . . . . . . .  	NUMBER	0000		Communal
E_OPTION_A_C . . . . . . . . . .  	NUMBER	0000		Communal
E_OPTION_B_C . . . . . . . . . .  	NUMBER	0000		Communal
E_PARALLEL . . . . . . . . . . .  	NUMBER	0000		Communal
E_PART_DEFAULT . . . . . . . . .  	NUMBER	0000		Communal
E_PART_EXT_DOS . . . . . . . . .  	NUMBER	0000		Communal
E_PART_FAT . . . . . . . . . . .  	NUMBER	0000		Communal
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-11


E_PART_FORMAT  . . . . . . . . .  	NUMBER	0000		Communal
E_PART_IGNORE  . . . . . . . . .  	NUMBER	0000		Communal
E_PART_KSAM  . . . . . . . . . .  	NUMBER	0000		Communal
E_PART_LOG_DRI . . . . . . . . .  	NUMBER	0000		Communal
E_PART_OTHER . . . . . . . . . .  	NUMBER	0000		Communal
E_PART_PRI_DOS . . . . . . . . .  	NUMBER	0000		Communal
E_PART_UNDEF . . . . . . . . . .  	NUMBER	0000		Communal
E_PART_UNFORMAT  . . . . . . . .  	NUMBER	0000		Communal
E_PART_USER  . . . . . . . . . .  	NUMBER	0000		Communal
E_PATH_NO  . . . . . . . . . . .  	NUMBER	0000		Communal
E_PATH_YES . . . . . . . . . . .  	NUMBER	0000		Communal
E_PROMPT_NO  . . . . . . . . . .  	NUMBER	0000		Communal
E_PROMPT_YES . . . . . . . . . .  	NUMBER	0000		Communal
E_QUIT . . . . . . . . . . . . .  	NUMBER	0000		Communal
E_RETURN . . . . . . . . . . . .  	NUMBER	0000		Communal
E_REVIEW_ACCEPT  . . . . . . . .  	NUMBER	0000		Communal
E_REVIEW_VIEW  . . . . . . . . .  	NUMBER	0000		Communal
E_SELECT_FDISK . . . . . . . . .  	NUMBER	0000		Communal
E_SELECT_INV . . . . . . . . . .  	NUMBER	0000		Communal
E_SELECT_MENU  . . . . . . . . .  	NUMBER	0000		Communal
E_SEL_EGA  . . . . . . . . . . .  	NUMBER	0000		Communal
E_SEL_LCD  . . . . . . . . . . .  	NUMBER	0000		Communal
E_SEL_SHEL . . . . . . . . . . .  	NUMBER	0000		Communal
E_SERIAL . . . . . . . . . . . .  	NUMBER	0000		Communal
E_SHARE_C  . . . . . . . . . . .  	NUMBER	0000		Communal
E_SHARE_NO . . . . . . . . . . .  	NUMBER	0000		Communal
E_SHARE_YES  . . . . . . . . . .  	NUMBER	0000		Communal
E_SHELL_1200_1440  . . . . . . .  	NUMBER	0000		Communal
E_SHELL_B  . . . . . . . . . . .  	NUMBER	0000		Communal
E_SHELL_C  . . . . . . . . . . .  	NUMBER	0000		Communal
E_SHELL_NO . . . . . . . . . . .  	NUMBER	0000		Communal
E_SHELL_YES  . . . . . . . . . .  	NUMBER	0000		Communal
E_SPACE  . . . . . . . . . . . .  	NUMBER	0000		Communal
E_SPACE_DISK . . . . . . . . . .  	NUMBER	0000		Communal
E_SPACE_EDOS . . . . . . . . . .  	NUMBER	0000		Communal
E_SPACE_NONE . . . . . . . . . .  	NUMBER	0000		Communal
E_TAB  . . . . . . . . . . . . .  	NUMBER	0000		Communal
E_VDISK_B  . . . . . . . . . . .  	NUMBER	0000		Communal
E_VDISK_C  . . . . . . . . . . .  	NUMBER	0000		Communal
E_VDISK_NO . . . . . . . . . . .  	NUMBER	0000		Communal
E_VDISK_YES  . . . . . . . . . .  	NUMBER	0000		Communal
E_WORKSPACE_BAL  . . . . . . . .  	NUMBER	0000		Communal
E_WORKSPACE_MAX  . . . . . . . .  	NUMBER	0000		Communal
E_WORKSPACE_MIN  . . . . . . . .  	NUMBER	0000		Communal
E_XMA_ABSENT . . . . . . . . . .  	NUMBER	0000		Communal
E_XMA_C  . . . . . . . . . . . .  	NUMBER	0000		Communal
E_XMA_NA . . . . . . . . . . . .  	NUMBER	0000		Communal
E_XMA_NO . . . . . . . . . . . .  	NUMBER	0000		Communal
E_XMA_PRESENT  . . . . . . . . .  	NUMBER	0000		Communal
E_XMA_YES  . . . . . . . . . . .  	NUMBER	0000		Communal
E_YES  . . . . . . . . . . . . .  	NUMBER	0000		Communal

FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
FARMSG . . . . . . . . . . . . .  	NUMBER	FFFF	
FIND_FILE_ROUTINE  . . . . . . .  	L FAR 	0000		External
FK_DATE  . . . . . . . . . . . .  	V BYTE	0000		External
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-12


FK_DATE_LEN  . . . . . . . . . .  	NUMBER	0000		Communal
FK_ENT . . . . . . . . . . . . .  	V BYTE	0000		External
FK_ENT_ESC . . . . . . . . . . .  	V BYTE	0000		External
FK_ENT_ESC_F3  . . . . . . . . .  	V BYTE	0000		External
FK_ENT_ESC_F3_LEN  . . . . . . .  	NUMBER	0000		Communal
FK_ENT_ESC_LEN . . . . . . . . .  	NUMBER	0000		Communal
FK_ENT_F3  . . . . . . . . . . .  	V BYTE	0000		External
FK_ENT_F3_LEN  . . . . . . . . .  	NUMBER	0000		Communal
FK_ENT_LEN . . . . . . . . . . .  	NUMBER	0000		Communal
FK_FORMAT  . . . . . . . . . . .  	V BYTE	0000		External
FK_FORMAT_LEN  . . . . . . . . .  	NUMBER	0000		Communal
FK_REBOOT  . . . . . . . . . . .  	V BYTE	0000		External
FK_REBOOT_LEN  . . . . . . . . .  	NUMBER	0000		Communal
FK_REVIEW  . . . . . . . . . . .  	V BYTE	0000		External
FK_REVIEW_LEN  . . . . . . . . .  	NUMBER	0000		External
FK_SCROLL  . . . . . . . . . . .  	V BYTE	0000		External
FK_SCROLL_LEN  . . . . . . . . .  	NUMBER	0000		Communal
FK_TAB . . . . . . . . . . . . .  	V BYTE	0000		External
FK_TAB_LEN . . . . . . . . . . .  	NUMBER	0000		Communal
FK_TEXT  . . . . . . . . . . . .  	V BYTE	0000		External
FK_TEXT_LEN  . . . . . . . . . .  	NUMBER	0000		Communal
FORMAT_DISK  . . . . . . . . . .  	NUMBER	0041	
FORMAT_DISKET  . . . . . . . . .  	NUMBER	0042	
FORMAT_SHELL . . . . . . . . . .  	NUMBER	004B	
FORMAT_STARTUP . . . . . . . . .  	NUMBER	004C	
FORMAT_WHICH . . . . . . . . . .  	V BYTE	0000		External
FORMFD . . . . . . . . . . . . .  	NUMBER	000C	
FREE_EDOS_SPACE  . . . . . . . .  	NUMBER	0001	
F_ANSI . . . . . . . . . . . . .  	V WORD	0000		External
F_APPEND . . . . . . . . . . . .  	V WORD	0000		External
F_CPSW . . . . . . . . . . . . .  	V WORD	0000		External
F_FASTOPEN . . . . . . . . . . .  	V WORD	0000		External
F_FORMAT . . . . . . . . . . . .  	V WORD	0000		External
F_GRAFTABL . . . . . . . . . . .  	V WORD	0000		External
F_GRAPHICS . . . . . . . . . . .  	V WORD	0000		External
F_PARTITION  . . . . . . . . . .  	V 0002	0000		External
F_PATH . . . . . . . . . . . . .  	V WORD	0000		External
F_PROMPT . . . . . . . . . . . .  	V WORD	0000		External
F_REVIEW . . . . . . . . . . . .  	V WORD	0000		External
F_SHARE  . . . . . . . . . . . .  	V WORD	0000		External
F_SHELL  . . . . . . . . . . . .  	V WORD	0000		External
F_VDISK  . . . . . . . . . . . .  	V WORD	0000		External
F_XMA  . . . . . . . . . . . . .  	V 0002	0000		External

GETMSG . . . . . . . . . . . . .  	NUMBER	0000	
GET_CNTY_DEF_ROUTINE . . . . . .  	L FAR 	0000		External
GET_CNTY_INDEX_ROUTINE . . . . .  	L FAR 	0000		External
GET_FUNCTION_CALL  . . . . . . .  	L NEAR	0000	SELECT	External
GET_KYBD_INDEX_ROUTINE . . . . .  	L FAR 	0000		External
GET_KYBD_ROUTINE . . . . . . . .  	L FAR 	0000		External
GET_PCB  . . . . . . . . . . . .  	L NEAR	0000	SELECT	External
GET_PRINTER_INFO_ROUTINE . . . .  	L FAR 	0000		External
GET_PRINTER_PARAMS_ROUTINE . . .  	L FAR 	0000		External
GET_PRINTER_TITLES_ROUTINE . . .  	L FAR 	0000		External
GET_STRING_CALL  . . . . . . . .  	L NEAR	0000	SELECT	External

Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-13


HANDLE_CHILDREN  . . . . . . . .  	L NEAR	0000	SELECT	External
HANDLE_ERROR_CALL  . . . . . . .  	L FAR 	0000	SELECT	External
HANDLE_KEYSTROKE . . . . . . . .  	L FAR 	0000	SELECT	External
HANDLE_PANEL_CALL  . . . . . . .  	L FAR 	0000	SELECT	External
HIDE_SEL . . . . . . . . . . . .  	V BYTE	0000		External
HIDE_STARTUP . . . . . . . . . .  	V BYTE	0000		External
HOME . . . . . . . . . . . . . .  	NUMBER	000B	
HOOK_INT_23  . . . . . . . . . .  	L FAR 	0000		External
HOOK_INT_24  . . . . . . . . . .  	L FAR 	0000		External
HOOK_INT_2F  . . . . . . . . . .  	L FAR 	0000		External
HOOK_INT_2F_256KB  . . . . . . .  	L FAR 	0000		External
HOOK_INT_2F_FORMAT . . . . . . .  	L FAR 	0000		External

IFSFUNC_INSTALLED  . . . . . . .  	NUMBER	00FF	
IFSFUNC_INSTALL_CHECK  . . . . .  	NUMBER	0500	
IFS_GET_ERR_TEXT . . . . . . . .  	NUMBER	0502	
INITIALIZATION . . . . . . . . .  	L NEAR	0C8F	SELECT	Global
INITIALIZE . . . . . . . . . . .  	L NEAR	0000	SELECT	External
INIT_CHAR_CALL . . . . . . . . .  	L NEAR	0000	SELECT	External
INIT_PQUEUE_CALL . . . . . . . .  	L NEAR	0000	SELECT	External
INIT_SCROLL_CALL . . . . . . . .  	L NEAR	0000	SELECT	External
INIT_SCROLL_STATUS_CALL  . . . .  	L NEAR	0000	SELECT	External
INIT_SCROLL_W_LIST_CALL  . . . .  	L NEAR	0000	SELECT	External
INIT_SCROLL_W_NUM_CALL . . . . .  	L NEAR	0000	SELECT	External
INIT_STRING_CALL . . . . . . . .  	L NEAR	0000	SELECT	External
INPUTMSG . . . . . . . . . . . .  	NUMBER	0000	
INSERT_DISK_ROUTINE  . . . . . .  	L NEAR	0000	SELECT	External
INSTALL  . . . . . . . . . . . .  	F PROC	0004	SELECT	Global	Length = 00D7
INSTALLRW  . . . . . . . . . . .  	NUMBER	0080	
INT_24_ERROR . . . . . . . . . .  	V WORD	0000		External
INT_24_FLAG  . . . . . . . . . .  	V BYTE	0000		External
I_COUNTRY  . . . . . . . . . . .  	V WORD	0000		External
I_CTY_KYBD . . . . . . . . . . .  	V 0002	0000		External
I_DESTINATION  . . . . . . . . .  	V WORD	0000		External
I_DEST_DRIVE . . . . . . . . . .  	V WORD	0000		External
I_KEYBOARD . . . . . . . . . . .  	V WORD	0000		External
I_KYBD_ALT . . . . . . . . . . .  	V 0002	0000		External
I_PORT . . . . . . . . . . . . .  	V WORD	0000		External
I_PRINTER  . . . . . . . . . . .  	V WORD	0000		External
I_REDIRECT . . . . . . . . . . .  	V WORD	0000		External
I_USER_INDEX . . . . . . . . . .  	V WORD	0000		External
I_WORKSPACE  . . . . . . . . . .  	V 0002	0000		External

KYBD_A_ITEMS . . . . . . . . . .  	NUMBER	0000		Communal
KYBD_B_ITEMS . . . . . . . . . .  	NUMBER	0000		Communal
KYBD_TAB_A . . . . . . . . . . .  	V BYTE	0000		External
KYBD_TAB_A_1 . . . . . . . . . .  	V BYTE	0000		External
KYBD_TAB_B . . . . . . . . . . .  	V BYTE	0000		External
KYBD_TAB_B_1 . . . . . . . . . .  	V BYTE	0000		External

LAST_STACK . . . . . . . . . . .  	NEAR	0800	OUR_STACK
LCD  . . . . . . . . . . . . . .  	NUMBER	0000		Communal
LEFT_ALIGN . . . . . . . . . . .  	NUMBER	0000	
LEN_ALT_KYBD_ID  . . . . . . . .  	NUMBER	0003	
LF . . . . . . . . . . . . . . .  	NUMBER	000A	
LOADMSG  . . . . . . . . . . . .  	NUMBER	0000	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-14


LOCUS_39 . . . . . . . . . . . .  	NUMBER	0001	
LOWEST_4CH_VERSION . . . . . . .  	NUMBER	0002	
LOW_NIB_MASK . . . . . . . . . .  	NUMBER	000F	

MACHINE_TYPE . . . . . . . . . .  	V BYTE	0000		External
MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MAKE_DIR_PATHS_ROUTINE . . . . .  	L FAR 	0000		External
MATCH_FILES_ROUTINE  . . . . . .  	L FAR 	0000		External
MAX_DAY  . . . . . . . . . . . .  	NUMBER	0000		Communal
MAX_HOUR . . . . . . . . . . . .  	NUMBER	0000		Communal
MAX_INPUT_VAL  . . . . . . . . .  	V WORD	0000		External
MAX_MINUTE . . . . . . . . . . .  	NUMBER	0000		Communal
MAX_MONTH  . . . . . . . . . . .  	NUMBER	0000		Communal
MAX_NUMPRINT . . . . . . . . . .  	NUMBER	0000		Communal
MAX_NUM_DISKETTE . . . . . . . .  	NUMBER	0002	
MAX_SECOND . . . . . . . . . . .  	NUMBER	0000		Communal
MAX_YEAR . . . . . . . . . . . .  	NUMBER	0000		Communal
MC_LINE  . . . . . . . . . . . .  	NUMBER	0000		Communal
MEM_SIZE . . . . . . . . . . . .  	V WORD	0000		External
MINOR_VERSION  . . . . . . . . .  	NUMBER	0000	
MIN_DAY  . . . . . . . . . . . .  	NUMBER	0000		Communal
MIN_HOUR . . . . . . . . . . . .  	NUMBER	0000		Communal
MIN_INPUT_VAL  . . . . . . . . .  	V WORD	0000		External
MIN_MINUTE . . . . . . . . . . .  	NUMBER	0000		Communal
MIN_MONTH  . . . . . . . . . . .  	NUMBER	0000		Communal
MIN_NUMPRINT . . . . . . . . . .  	NUMBER	0000		Communal
MIN_SECOND . . . . . . . . . . .  	NUMBER	0000		Communal
MIN_YEAR . . . . . . . . . . . .  	NUMBER	0000		Communal
MOD25_OR_MOD30 . . . . . . . . .  	NUMBER	0000		Communal
MOD_XCOPY  . . . . . . . . . . .  	L FAR 	0000		External
MONO . . . . . . . . . . . . . .  	NUMBER	0000		Communal
MSGDATA  . . . . . . . . . . . .  	NUMBER	0000	
MSG_INV_BOOT_MEDIA . . . . . . .  	NUMBER	0004	
MSG_INV_DISK_MEDIA . . . . . . .  	NUMBER	0005	
MSG_INV_DOS  . . . . . . . . . .  	NUMBER	0001	
MSG_INV_INSTALL  . . . . . . . .  	NUMBER	0007	
MSG_INV_PARMS  . . . . . . . . .  	NUMBER	0006	
MSG_LOADING  . . . . . . . . . .  	NUMBER	0008	
MSG_RELOADING  . . . . . . . . .  	NUMBER	0009	
MSG_SER_CLASS  . . . . . . . . .  	NUMBER	0000	
MT_BREAK . . . . . . . . . . . .  	NUMBER	0000		Communal
MT_BUFFERS . . . . . . . . . . .  	NUMBER	0000		Communal
MT_CPSW  . . . . . . . . . . . .  	NUMBER	0000		Communal
MT_FCBS  . . . . . . . . . . . .  	NUMBER	0000		Communal
MT_FILES . . . . . . . . . . . .  	NUMBER	0000		Communal
MT_LASTDRIVE . . . . . . . . . .  	NUMBER	0000		Communal
MT_STACKS  . . . . . . . . . . .  	NUMBER	0000		Communal
MT_VERIFY  . . . . . . . . . . .  	NUMBER	0000		Communal
M_ANSI . . . . . . . . . . . . .  	NUMBER	0000		Communal
M_APPEND . . . . . . . . . . . .  	NUMBER	0000		Communal
M_APPEND_P . . . . . . . . . . .  	NUMBER	0000		Communal
M_BREAK  . . . . . . . . . . . .  	NUMBER	0000		Communal
M_BUFFERS  . . . . . . . . . . .  	NUMBER	0000		Communal
M_CPSW . . . . . . . . . . . . .  	NUMBER	0000		Communal
M_CP_DRIVER  . . . . . . . . . .  	NUMBER	0000		Communal
M_CP_PREPARE . . . . . . . . . .  	NUMBER	0000		Communal
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-15


M_DEST_DRIVE . . . . . . . . . .  	NUMBER	0000		Communal
M_DISK_1_ITEMS . . . . . . . . .  	NUMBER	0000		Communal
M_DISK_2_ITEMS . . . . . . . . .  	NUMBER	0000		Communal
M_DOS_EDOS_PART  . . . . . . . .  	NUMBER	0003	
M_DOS_EXISTS . . . . . . . . . .  	NUMBER	0001	
M_DOS_LOC  . . . . . . . . . . .  	NUMBER	0000		Communal
M_EDOS_EXISTS  . . . . . . . . .  	NUMBER	0002	
M_EDOS_SPACE . . . . . . . . . .  	NUMBER	0008	
M_FASTOPEN . . . . . . . . . . .  	NUMBER	0000		Communal
M_FCBS . . . . . . . . . . . . .  	NUMBER	0000		Communal
M_FILES  . . . . . . . . . . . .  	NUMBER	0000		Communal
M_FREE_SPACE . . . . . . . . . .  	NUMBER	0010	
M_GRAPHICS . . . . . . . . . . .  	NUMBER	0000		Communal
M_GRAPH_PARM . . . . . . . . . .  	NUMBER	0000		Communal
M_INSTALL_PATH . . . . . . . . .  	NUMBER	0000		Communal
M_KEYBOARD . . . . . . . . . . .  	NUMBER	0000		Communal
M_KYBD_ALT . . . . . . . . . . .  	NUMBER	0000		Communal
M_LASTDRIVE  . . . . . . . . . .  	NUMBER	0000		Communal
M_LOGICAL_EXISTS . . . . . . . .  	NUMBER	0004	
M_MODE_PARM  . . . . . . . . . .  	NUMBER	0000		Communal
M_PATH . . . . . . . . . . . . .  	NUMBER	0000		Communal
M_PRINT_FILE . . . . . . . . . .  	NUMBER	0000		Communal
M_PROMPT . . . . . . . . . . . .  	NUMBER	0000		Communal
M_SHARE  . . . . . . . . . . . .  	NUMBER	0000		Communal
M_SHELL  . . . . . . . . . . . .  	NUMBER	0000		Communal
M_STACKS . . . . . . . . . . . .  	NUMBER	0000		Communal
M_STR120_1 . . . . . . . . . . .  	NUMBER	0000		Communal
M_STR120_2 . . . . . . . . . . .  	NUMBER	0000		Communal
M_STR120_3 . . . . . . . . . . .  	NUMBER	0000		Communal
M_STR120_4 . . . . . . . . . . .  	NUMBER	0000		Communal
M_STR40  . . . . . . . . . . . .  	NUMBER	0000		Communal
M_USER_STRING  . . . . . . . . .  	NUMBER	0000		Communal
M_VDISK  . . . . . . . . . . . .  	NUMBER	0000		Communal
M_VERIFY . . . . . . . . . . . .  	NUMBER	0000		Communal
M_XMA2EMS  . . . . . . . . . . .  	NUMBER	0000		Communal
M_XMAEM  . . . . . . . . . . . .  	NUMBER	0000		Communal

NEARMSG  . . . . . . . . . . . .  	NUMBER	FFFF	
NOCHECK  . . . . . . . . . . . .  	NUMBER	0000	
NOCHECKSTDIN . . . . . . . . . .  	NUMBER	0000	
NOCHECKSTDOUT  . . . . . . . . .  	NUMBER	0000	
NOPANEL  . . . . . . . . . . . .  	NUMBER	0000	
NOT_EX_FAIL_EX_OPEN  . . . . . .  	NUMBER	0101	
NOT_PRESENT  . . . . . . . . . .  	NUMBER	0000	
NOVERCHECKMSG  . . . . . . . . .  	NUMBER	FFFF	
NO_CRIT_OPEN . . . . . . . . . .  	NUMBER	2000	
NO_EDOS_BUT_SPACE  . . . . . . .  	NUMBER	0002	
NO_EDOS_SPACE  . . . . . . . . .  	NUMBER	0000	
NO_HANDLE  . . . . . . . . . . .  	NUMBER	FFFF	
NO_INPUT . . . . . . . . . . . .  	NUMBER	0000	
NO_REPLACE . . . . . . . . . . .  	NUMBER	0000	
NO_SOURCE1 . . . . . . . . . . .  	NUMBER	0001	
NULL . . . . . . . . . . . . . .  	NUMBER	0000	
NUMMSG . . . . . . . . . . . . .  	NUMBER	0000	
NUM_DAY  . . . . . . . . . . . .  	NUMBER	001A	
NUM_EXT_DISK . . . . . . . . . .  	NUMBER	0017	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-16


NUM_HOUR . . . . . . . . . . . .  	NUMBER	001B	
NUM_MINUTE . . . . . . . . . . .  	NUMBER	001C	
NUM_MONTH  . . . . . . . . . . .  	NUMBER	0019	
NUM_PRINTER  . . . . . . . . . .  	NUMBER	0016	
NUM_SECOND . . . . . . . . . . .  	NUMBER	001D	
NUM_YEAR . . . . . . . . . . . .  	NUMBER	0018	
N_BYTE_1 . . . . . . . . . . . .  	V BYTE	0000		External
N_COUNTER  . . . . . . . . . . .  	V WORD	0000		External
N_COUNTRY  . . . . . . . . . . .  	V WORD	0000		External
N_CPSW . . . . . . . . . . . . .  	V WORD	0000		External
N_CP_PRI . . . . . . . . . . . .  	V WORD	0000		External
N_CP_SEC . . . . . . . . . . . .  	V WORD	0000		External
N_CTY_LIST . . . . . . . . . . .  	V 0002	0000		External
N_CTY_RES  . . . . . . . . . . .  	V BYTE	0000		External
N_DAY  . . . . . . . . . . . . .  	V 0002	0000		External
N_DESIGNATES . . . . . . . . . .  	V WORD	0000		External
N_DEST . . . . . . . . . . . . .  	V BYTE	0000		External
N_DEST_DRIVE . . . . . . . . . .  	V BYTE	0000		External
N_DISK1_MODE . . . . . . . . . .  	V WORD	0000		External
N_DISKETTE_A . . . . . . . . . .  	V BYTE	0000		External
N_DISKETTE_B . . . . . . . . . .  	V BYTE	0000		External
N_DISKETTE_TOT . . . . . . . . .  	V BYTE	0000		External
N_DISK_1 . . . . . . . . . . . .  	V WORD	0000		External
N_DISK_1_S1  . . . . . . . . . .  	V 0002	0000		External
N_DISK_1_S2  . . . . . . . . . .  	V 0002	0000		External
N_DISK_2 . . . . . . . . . . . .  	V WORD	0000		External
N_DISK_2_S1  . . . . . . . . . .  	V 0002	0000		External
N_DISK_2_S2  . . . . . . . . . .  	V 0002	0000		External
N_DISK_NUM . . . . . . . . . . .  	V BYTE	0000		External
N_DISPLAY  . . . . . . . . . . .  	V BYTE	0000		External
N_DRIVE_OPTION . . . . . . . . .  	V WORD	0000		External
N_DSKCPY_ERR . . . . . . . . . .  	V BYTE	0000		External
N_FORMAT_MODE  . . . . . . . . .  	V WORD	0000		External
N_HANDLE . . . . . . . . . . . .  	V WORD	0000		External
N_HOUR . . . . . . . . . . . . .  	V WORD	0000		External
N_HOUSE_CLEAN  . . . . . . . . .  	V BYTE	0000		External
N_KYBD_ALT . . . . . . . . . . .  	V BYTE	0000		External
N_KYBD_LIST  . . . . . . . . . .  	V 0002	0000		External
N_KYBD_VAL . . . . . . . . . . .  	V BYTE	0000		External
N_KYB_LOAD . . . . . . . . . . .  	V WORD	0000		External
N_LEVEL1_PART  . . . . . . . . .  	V BYTE	0000		External
N_LEVEL2_PART  . . . . . . . . .  	V BYTE	0000		External
N_LEVEL3_PART  . . . . . . . . .  	V BYTE	0000		External
N_LEVEL4_PART  . . . . . . . . .  	V BYTE	0000		External
N_MINUTE . . . . . . . . . . . .  	V WORD	0000		External
N_MOD80  . . . . . . . . . . . .  	V WORD	0000		External
N_MONTH  . . . . . . . . . . . .  	V WORD	0000		External
N_NAME_PART  . . . . . . . . . .  	V BYTE	0000		External
N_NUMPRINT . . . . . . . . . . .  	V 0002	0000		External
N_PARALLEL . . . . . . . . . . .  	V WORD	0000		External
N_PRINTER_TYPE . . . . . . . . .  	V BYTE	0000		External
N_RETCODE  . . . . . . . . . . .  	V WORD	0000		External
N_SECOND . . . . . . . . . . . .  	V WORD	0000		External
N_SELECT_MODE  . . . . . . . . .  	V WORD	0000		External
N_SERIAL . . . . . . . . . . . .  	V WORD	0000		External
N_SIZE_PART  . . . . . . . . . .  	V 0002	0000		External
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-17


N_STATUS_PART  . . . . . . . . .  	V BYTE	0000		External
N_TYPE_PART  . . . . . . . . . .  	V BYTE	0000		External
N_USER_FUNC  . . . . . . . . . .  	V 0002	0000		External
N_USER_NUMERIC . . . . . . . . .  	V WORD	0000		External
N_VALID_KEYS . . . . . . . . . .  	V WORD	0000		External
N_WORD_1 . . . . . . . . . . . .  	V WORD	0000		External
N_WORD_2 . . . . . . . . . . . .  	V WORD	0000		External
N_WORD_3 . . . . . . . . . . . .  	V WORD	0000		External
N_WORD_4 . . . . . . . . . . . .  	V WORD	0000		External
N_WORD_5 . . . . . . . . . . . .  	V WORD	0000		External
N_WORD_6 . . . . . . . . . . . .  	V WORD	0000		External
N_WORK_PREV  . . . . . . . . . .  	V WORD	0000		External
N_WRITE_ERR_CODE . . . . . . . .  	V 0002	0000		External
N_WRITE_HANDLE . . . . . . . . .  	V WORD	0000		External
N_XMA  . . . . . . . . . . . . .  	V 0002	0000		External
N_YEAR . . . . . . . . . . . . .  	V WORD	0000		External
N_ZERO_DISKETTE  . . . . . . . .  	NUMBER	0000		Communal

OLD_INT_23 . . . . . . . . . . .  	V DWORD	0000		External
OLD_INT_24 . . . . . . . . . . .  	V DWORD	0000		External
OLD_INT_2F . . . . . . . . . . .  	V DWORD	0000		External
OLD_STACK_OFF  . . . . . . . . .  	L WORD	0002	SELECT
OLD_STACK_SEG  . . . . . . . . .  	L WORD	0000	SELECT
OPEN_FILE_ROUTINE  . . . . . . .  	L FAR 	0000		External

PAN_BAD_DISKET . . . . . . . . .  	NUMBER	0038	
PAN_CHOOSE_SHELL . . . . . . . .  	NUMBER	0062	
PAN_COMPLETE1  . . . . . . . . .  	NUMBER	0022	
PAN_COMPLETE2  . . . . . . . . .  	NUMBER	0022	
PAN_COMPLETE3  . . . . . . . . .  	NUMBER	0022	
PAN_CONFIG_PARS  . . . . . . . .  	NUMBER	001A	
PAN_CONFIRM  . . . . . . . . . .  	NUMBER	0003	
PAN_COUNTRY  . . . . . . . . . .  	NUMBER	0006	
PAN_CTY_KYB  . . . . . . . . . .  	NUMBER	0005	
PAN_DATE_TIME  . . . . . . . . .  	NUMBER	001E	
PAN_DEST_DRIVE . . . . . . . . .  	NUMBER	0009	
PAN_DISKCOPY . . . . . . . . . .  	NUMBER	0046	
PAN_DOS_LOC  . . . . . . . . . .  	NUMBER	000A	
PAN_DOS_PARAM  . . . . . . . . .  	NUMBER	0012	
PAN_DRIVE_ERROR  . . . . . . . .  	NUMBER	0037	
PAN_DSKCPY_CPY . . . . . . . . .  	NUMBER	0049	
PAN_DSKCPY_SRC . . . . . . . . .  	NUMBER	0047	
PAN_DSKCPY_TAR . . . . . . . . .  	NUMBER	0048	
PAN_EXP_MEMORY . . . . . . . . .  	NUMBER	0018	
PAN_EXP_MEMORY2  . . . . . . . .  	NUMBER	005E	
PAN_FASTOPEN . . . . . . . . . .  	NUMBER	0015	
PAN_FIXED_BOTH . . . . . . . . .  	NUMBER	001C	
PAN_FIXED_FIRST  . . . . . . . .  	NUMBER	001B	
PAN_FORMAT . . . . . . . . . . .  	NUMBER	001F	
PAN_FUNC_DISK  . . . . . . . . .  	NUMBER	0010	
PAN_FUNC_DISKET  . . . . . . . .  	NUMBER	0010	
PAN_GRAPHICS . . . . . . . . . .  	NUMBER	0017	
PAN_HBAR . . . . . . . . . . . .  	NUMBER	0025	
PAN_HPAN . . . . . . . . . . . .  	NUMBER	0024	
PAN_INSTALL_DOS  . . . . . . . .  	NUMBER	0020	
PAN_INST_PROMPT  . . . . . . . .  	NUMBER	0020	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-18


PAN_INTRO  . . . . . . . . . . .  	NUMBER	0002	
PAN_KEYBOARD . . . . . . . . . .  	NUMBER	0007	
PAN_KYBD_ALT . . . . . . . . . .  	NUMBER	0008	
PAN_PARALLEL . . . . . . . . . .  	NUMBER	000D	
PAN_PARTIAL  . . . . . . . . . .  	NUMBER	004A	
PAN_PRINTER  . . . . . . . . . .  	NUMBER	000B	
PAN_PRT_TYPE . . . . . . . . . .  	NUMBER	000C	
PAN_REBOOT . . . . . . . . . . .  	NUMBER	001D	
PAN_REVIEW . . . . . . . . . . .  	NUMBER	000F	
PAN_SERIAL . . . . . . . . . . .  	NUMBER	000E	
PAN_SHARE  . . . . . . . . . . .  	NUMBER	0016	
PAN_SHELL  . . . . . . . . . . .  	NUMBER	0013	
PAN_START1440  . . . . . . . . .  	NUMBER	0060	
PAN_START360 . . . . . . . . . .  	NUMBER	005A	
PAN_START720 . . . . . . . . . .  	NUMBER	005F	
PAN_VDISK  . . . . . . . . . . .  	NUMBER	0019	
PAN_WELCOME  . . . . . . . . . .  	NUMBER	0001	
PAN_WORKSPACE  . . . . . . . . .  	NUMBER	0004	
PAN_WRITE_PROT . . . . . . . . .  	NUMBER	0036	
PARM_BLOCK . . . . . . . . . . .  	V WORD	0000		External
PARSE_ERR_CLASS  . . . . . . . .  	NUMBER	0002	
PCGVIDO_CALL . . . . . . . . . .  	L NEAR	0000	SELECT	External
POP_ROUTINE  . . . . . . . . . .  	L FAR 	0000		External
POS_ZERO . . . . . . . . . . . .  	L FAR 	0000		External
PREPARE_FILE_ROUTINE . . . . . .  	L FAR 	0000		External
PREPARE_PANEL_CALL . . . . . . .  	L NEAR	0000	SELECT	External
PRESENT_WITHOUT_PART . . . . . .  	NUMBER	0001	
PRESENT_WITH_PART  . . . . . . .  	NUMBER	0002	
PRINTER_TABLES . . . . . . . . .  	NUMBER	0000		Communal
PS2_FLAG . . . . . . . . . . . .  	V BYTE	0000		External
PUSH_ROUTINE . . . . . . . . . .  	L FAR 	0000		External
P_DRIVE_PART . . . . . . . . . .  	V BYTE	0000		External
P_STR120_1 . . . . . . . . . . .  	V BYTE	0000		External
P_USER_STRING  . . . . . . . . .  	V BYTE	0000		External

READ_FILE_ROUTINE  . . . . . . .  	L FAR 	0000		External
RELEASE_PRINTER_INFO_ROUTINE . .  	L FAR 	0000		External
REMOVE_END_BLANKS  . . . . . . .  	L FAR 	0000		External
RENAME_FILE_ROUTINE  . . . . . .  	L FAR 	0000		External
RESERVED . . . . . . . . . . . .  	NUMBER	0000	
RESTORE_INT_23 . . . . . . . . .  	L FAR 	0000		External
RESTORE_INT_24 . . . . . . . . .  	L FAR 	0000		External
RESTORE_INT_2F . . . . . . . . .  	L FAR 	0000		External
RETURN_STRING_CALL . . . . . . .  	L NEAR	0000	SELECT	External
RIGHT_ALIGN  . . . . . . . . . .  	NUMBER	0080	

SAVE_AREA  . . . . . . . . . . .  	V BYTE	0000		External
SAVE_FILE_ROUTINE  . . . . . . .  	L FAR 	0000		External
SAVE_PRINTER_PARAMS_ROUTINE  . .  	L FAR 	0000		External
SCAN_DISK_TABLE_ROUTINE  . . . .  	L FAR 	0000		External
SCAN_INFO_FILE_ROUTINE . . . . .  	L FAR 	0000		External
SCAN_PARAMETERS_ROUTINE  . . . .  	L FAR 	0000		External
SCR_ACC_CTY  . . . . . . . . . .  	NUMBER	0017	
SCR_ACC_KYB  . . . . . . . . . .  	NUMBER	0018	
SCR_ACC_PRT  . . . . . . . . . .  	NUMBER	0019	
SCR_CHOOSE_SHELL . . . . . . . .  	NUMBER	001C	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-19


SCR_CONTEXT_HLP  . . . . . . . .  	NUMBER	0015	
SCR_COPY_DEST  . . . . . . . . .  	NUMBER	001A	
SCR_CTY_1  . . . . . . . . . . .  	NUMBER	0003	
SCR_CTY_2  . . . . . . . . . . .  	NUMBER	0004	
SCR_CTY_KYB  . . . . . . . . . .  	NUMBER	0002	
SCR_DEST_A_C . . . . . . . . . .  	NUMBER	001B	
SCR_DEST_B_C . . . . . . . . . .  	NUMBER	000A	
SCR_DOS_SUPPORT  . . . . . . . .  	NUMBER	0001	
SCR_FIXED_BOTH . . . . . . . . .  	NUMBER	0013	
SCR_FIXED_FIRST  . . . . . . . .  	NUMBER	0012	
SCR_FORMAT . . . . . . . . . . .  	NUMBER	0014	
SCR_FR_KYB . . . . . . . . . . .  	NUMBER	0007	
SCR_FUNC_DISK  . . . . . . . . .  	NUMBER	0010	
SCR_FUNC_DISKET  . . . . . . . .  	NUMBER	0011	
SCR_INDEX_HLP  . . . . . . . . .  	NUMBER	0015	
SCR_IT_KYB . . . . . . . . . . .  	NUMBER	0008	
SCR_KYB_1  . . . . . . . . . . .  	NUMBER	0005	
SCR_KYB_2  . . . . . . . . . . .  	NUMBER	0006	
SCR_PARALLEL . . . . . . . . . .  	NUMBER	000C	
SCR_PRT_REDIR  . . . . . . . . .  	NUMBER	000E	
SCR_PRT_TYPE . . . . . . . . . .  	NUMBER	000B	
SCR_REVIEW . . . . . . . . . . .  	NUMBER	000F	
SCR_SERIAL . . . . . . . . . . .  	NUMBER	000D	
SCR_TITLE_HLP  . . . . . . . . .  	NUMBER	0016	
SCR_UK_KYB . . . . . . . . . . .  	NUMBER	0009	
SC_1 . . . . . . . . . . . . . .  	V WORD	0000		External
SC_2 . . . . . . . . . . . . . .  	V WORD	0000		External
SC_EXT . . . . . . . . . . . . .  	V WORD	0000		External
SC_LINE  . . . . . . . . . . . .  	V WORD	0000		External
SC_LOG . . . . . . . . . . . . .  	V WORD	0000		External
SC_PRI . . . . . . . . . . . . .  	V WORD	0000		External
SEARCH_FILE  . . . . . . . . . .  	V 0002	0000		External
SELECT_STACK . . . . . . . . . .  	V WORD	0000		External
SETSTDIO . . . . . . . . . . . .  	NUMBER	0000	
SET_DISPLAY_MODE_ROUTINE . . . .  	L FAR 	0000		External
SET_SCROLL_CALL  . . . . . . . .  	L NEAR	0000	SELECT	External
SET_SCROLL_COLOUR  . . . . . . .  	L NEAR	0000	SELECT	External
SGN_BIN_BYTE . . . . . . . . . .  	NUMBER	0012	
SGN_BIN_DWORD  . . . . . . . . .  	NUMBER	0032	
SGN_BIN_TYPE . . . . . . . . . .  	NUMBER	0002	
SGN_BIN_WORD . . . . . . . . . .  	NUMBER	0022	
SHELL  . . . . . . . . . . . . .  	NUMBER	0000		Communal
SH_FILES . . . . . . . . . . . .  	NUMBER	0000		Communal
SOURCE1  . . . . . . . . . . . .  	NUMBER	0000	
SOURCE_PANEL . . . . . . . . . .  	V WORD	0000		External
STACK_INDEX  . . . . . . . . . .  	V BYTE	0000		External
STACK_SIZE . . . . . . . . . . .  	NUMBER	0000		Communal
STARTUP  . . . . . . . . . . . .  	NUMBER	0000		Communal
STDAUX . . . . . . . . . . . . .  	NUMBER	0003	
STDERR . . . . . . . . . . . . .  	NUMBER	0002	
STDIN  . . . . . . . . . . . . .  	NUMBER	0000	
STDOUT . . . . . . . . . . . . .  	NUMBER	0001	
STDPRN . . . . . . . . . . . . .  	NUMBER	0004	
STR_BREAK  . . . . . . . . . . .  	NUMBER	000E	
STR_BUFFERS  . . . . . . . . . .  	NUMBER	000F	
STR_DEF_CP . . . . . . . . . . .  	NUMBER	001E	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-20


STR_DOS_APPEND . . . . . . . . .  	NUMBER	0004	
STR_DOS_APPEND_P . . . . . . . .  	NUMBER	0010	
STR_DOS_LOC  . . . . . . . . . .  	NUMBER	0001	
STR_DOS_PATH . . . . . . . . . .  	NUMBER	0003	
STR_DOS_PROMPT . . . . . . . . .  	NUMBER	0005	
STR_EXT_PARMS  . . . . . . . . .  	NUMBER	0002	
STR_FASTOPEN . . . . . . . . . .  	NUMBER	0008	
STR_FCBS . . . . . . . . . . . .  	NUMBER	0011	
STR_FILES  . . . . . . . . . . .  	NUMBER	0012	
STR_GRAPHICS . . . . . . . . . .  	NUMBER	000A	
STR_KSAM . . . . . . . . . . . .  	NUMBER	0007	
STR_LASTDRIVE  . . . . . . . . .  	NUMBER	0013	
STR_SHARE  . . . . . . . . . . .  	NUMBER	0009	
STR_SHELL  . . . . . . . . . . .  	NUMBER	0006	
STR_STACKS . . . . . . . . . . .  	NUMBER	0014	
STR_SWISS_KEYB . . . . . . . . .  	NUMBER	001F	
STR_VDISK  . . . . . . . . . . .  	NUMBER	000D	
STR_VERIFY . . . . . . . . . . .  	NUMBER	0015	
STR_XMA2EMS  . . . . . . . . . .  	NUMBER	000C	
STR_XMAEM  . . . . . . . . . . .  	NUMBER	000B	
ST_BREAK . . . . . . . . . . . .  	V WORD	0000		External
ST_BUFFERS . . . . . . . . . . .  	V 0002	0000		External
ST_CPSW  . . . . . . . . . . . .  	V WORD	0000		External
ST_FCBS  . . . . . . . . . . . .  	V WORD	0000		External
ST_FILES . . . . . . . . . . . .  	V WORD	0000		External
ST_LASTDRIVE . . . . . . . . . .  	V WORD	0000		External
ST_STACKS  . . . . . . . . . . .  	V WORD	0000		External
ST_VERIFY  . . . . . . . . . . .  	V WORD	0000		External
SUBLIST_LENGTH . . . . . . . . .  	NUMBER	000B	
SUB_COMP_KYS_1 . . . . . . . . .  	NUMBER	002F	
SUB_COMP_KYS_1C  . . . . . . . .  	NUMBER	0023	
SUB_COMP_KYS_2 . . . . . . . . .  	NUMBER	0030	
SUB_COMP_KYS_3 . . . . . . . . .  	NUMBER	005B	
SUB_COMP_REP . . . . . . . . . .  	NUMBER	0035	
SUB_COMP_VER . . . . . . . . . .  	NUMBER	002E	
SUB_CONT_OPTION  . . . . . . . .  	NUMBER	0026	
SUB_COPYING  . . . . . . . . . .  	NUMBER	0050	
SUB_ERROR  . . . . . . . . . . .  	V BYTE	0000		External
SUB_FIXED_1  . . . . . . . . . .  	NUMBER	0029	
SUB_INSTALL_1  . . . . . . . . .  	NUMBER	002C	
SUB_INSTALL_2  . . . . . . . . .  	NUMBER	002D	
SUB_INSTALL_COPY . . . . . . . .  	NUMBER	005C	
SUB_INS_INSTALL_360  . . . . . .  	NUMBER	0055	
SUB_INS_MSSHELL_A  . . . . . . .  	NUMBER	0064	
SUB_INS_OPER2  . . . . . . . . .  	NUMBER	005D	
SUB_INS_OP_WORK  . . . . . . . .  	NUMBER	0066	
SUB_INS_SHELL_DISKS  . . . . . .  	NUMBER	0065	
SUB_INS_SHELL_S360 . . . . . . .  	NUMBER	0058	
SUB_INS_STARTT_S360  . . . . . .  	NUMBER	0059	
SUB_INS_START_360  . . . . . . .  	NUMBER	0054	
SUB_INS_START_B  . . . . . . . .  	NUMBER	003A	
SUB_INS_WORK1_360  . . . . . . .  	NUMBER	0051	
SUB_INS_WORK1_S360 . . . . . . .  	NUMBER	0056	
SUB_INS_WORK2_360  . . . . . . .  	NUMBER	0052	
SUB_INS_WORK2_S360 . . . . . . .  	NUMBER	0057	
SUB_INS_WORK3_360  . . . . . . .  	NUMBER	0053	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-21


SUB_INS_WORK3_A  . . . . . . . .  	NUMBER	0067	
SUB_INS_WORKING_A  . . . . . . .  	NUMBER	0063	
SUB_LOG_DRIVE  . . . . . . . . .  	NUMBER	002A	
SUB_PRINTER_1  . . . . . . . . .  	NUMBER	0027	
SUB_REBOOT_KEYS  . . . . . . . .  	NUMBER	002B	
SUB_REM_DOS_A  . . . . . . . . .  	NUMBER	003D	
SUB_REM_SELECT_360 . . . . . . .  	NUMBER	004E	
SUB_REM_SEL_A  . . . . . . . . .  	NUMBER	003B	
SUB_REM_SHELL_360  . . . . . . .  	NUMBER	004D	
SUB_REM_START_B  . . . . . . . .  	NUMBER	003C	
SUB_REM_UTIL1_360  . . . . . . .  	NUMBER	004F	
SUPPORT_STATUS . . . . . . . . .  	V WORD	0000		External
SYSDISPMSG . . . . . . . . . . .  	F PROC	0308	SELECT	Global	Length = 0047
SYSGETMSG  . . . . . . . . . . .  	F PROC	01C3	SELECT	Length = 001E
SYSLOADMSG . . . . . . . . . . .  	F PROC	00DB	SELECT	Length = 00AA
S_ANSI . . . . . . . . . . . . .  	V WORD	0000		External
S_ANSI_B . . . . . . . . . . . .  	V WORD	0000		External
S_ANSI_C . . . . . . . . . . . .  	V WORD	0000		External
S_APPEND . . . . . . . . . . . .  	V WORD	0000		External
S_APPEND_B . . . . . . . . . . .  	V WORD	0000		External
S_APPEND_C . . . . . . . . . . .  	V WORD	0000		External
S_APPEND_P . . . . . . . . . . .  	V 0002	0000		External
S_AUTOEX_C . . . . . . . . . . .  	V 0002	0000		External
S_AUTO_C . . . . . . . . . . . .  	V WORD	0000		External
S_AUTO_FDISK . . . . . . . . . .  	V WORD	0000		External
S_AUTO_MENU  . . . . . . . . . .  	V 0002	0000		External
S_AUTO_NEW . . . . . . . . . . .  	V 0002	0000		External
S_AUTO_NEW_B . . . . . . . . . .  	V WORD	0000		External
S_AUTO_NEW_C . . . . . . . . . .  	V WORD	0000		External
S_AUTO_REBOOT  . . . . . . . . .  	V WORD	0000		External
S_AUTO_REN . . . . . . . . . . .  	V 0002	0000		External
S_A_DRIVE  . . . . . . . . . . .  	V WORD	0000		External
S_A_STARS  . . . . . . . . . . .  	V WORD	0000		External
S_BREAK  . . . . . . . . . . . .  	V WORD	0000		External
S_BUFFERS  . . . . . . . . . . .  	V WORD	0000		External
S_B_DRIVE  . . . . . . . . . . .  	V WORD	0000		External
S_COLON  . . . . . . . . . . . .  	V WORD	0000		External
S_COMMAND_COM  . . . . . . . . .  	V WORD	0000		External
S_CONFIG_AUTO  . . . . . . . . .  	V BYTE	0000		External
S_CONFIG_C . . . . . . . . . . .  	V WORD	0000		External
S_CONFIG_NEW . . . . . . . . . .  	V WORD	0000		External
S_CONFIG_NEW_B . . . . . . . . .  	V WORD	0000		External
S_CONFIG_NEW_C . . . . . . . . .  	V WORD	0000		External
S_CONFIG_REN . . . . . . . . . .  	V WORD	0000		External
S_CONSYS_C . . . . . . . . . . .  	V 0002	0000		External
S_CPSW . . . . . . . . . . . . .  	V WORD	0000		External
S_CP_DRIVER  . . . . . . . . . .  	V 0002	0000		External
S_CP_PREPARE . . . . . . . . . .  	V WORD	0000		External
S_CP_SEL . . . . . . . . . . . .  	V WORD	0000		External
S_C_DRIVE  . . . . . . . . . . .  	V WORD	0000		External
S_DEST_DRIVE . . . . . . . . . .  	V WORD	0000		External
S_DISKCOPY . . . . . . . . . . .  	V 0002	0000		External
S_DISKCOPY_PARM  . . . . . . . .  	V WORD	0000		External
S_DOS_COM_360  . . . . . . . . .  	V WORD	0000		External
S_DOS_LOC  . . . . . . . . . . .  	V WORD	0000		External
S_DOS_SEL_360  . . . . . . . . .  	V WORD	0000		External
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-22


S_DOS_SHEL_DISK  . . . . . . . .  	V WORD	0000		External
S_DOS_UTIL1_DISK . . . . . . . .  	V 0002	0000		External
S_DOS_UTIL2_DISK . . . . . . . .  	V 0002	0000		External
S_DOS_UTIL3_DISK . . . . . . . .  	V 0002	0000		External
S_DRIVE_A  . . . . . . . . . . .  	V WORD	0000		External
S_DRIVE_C  . . . . . . . . . . .  	V WORD	0000		External
S_DSKCPY_TO_B  . . . . . . . . .  	V WORD	0000		External
S_FASTOPEN . . . . . . . . . . .  	V 0002	0000		External
S_FASTOPEN_B . . . . . . . . . .  	V WORD	0000		External
S_FASTOPEN_C . . . . . . . . . .  	V WORD	0000		External
S_FCBS . . . . . . . . . . . . .  	V WORD	0000		External
S_FDISK  . . . . . . . . . . . .  	V WORD	0000		External
S_FILES  . . . . . . . . . . . .  	V WORD	0000		External
S_FORMAT . . . . . . . . . . . .  	V WORD	0000		External
S_FORMAT_A . . . . . . . . . . .  	V 0002	0000		External
S_FORMAT_B . . . . . . . . . . .  	V 0002	0000		External
S_GRAFTABL_B . . . . . . . . . .  	V WORD	0000		External
S_GRAFTABL_C . . . . . . . . . .  	V WORD	0000		External
S_GRAPHICS . . . . . . . . . . .  	V WORD	0000		External
S_GRAPHICS_B . . . . . . . . . .  	V WORD	0000		External
S_GRAPHICS_C . . . . . . . . . .  	V WORD	0000		External
S_GRAPHPRO_B . . . . . . . . . .  	V WORD	0000		External
S_GRAPHPRO_C . . . . . . . . . .  	V WORD	0000		External
S_GRAPH_PARM . . . . . . . . . .  	V WORD	0000		External
S_INSTALL_PATH . . . . . . . . .  	V WORD	0000		External
S_KEYB . . . . . . . . . . . . .  	V WORD	0000		External
S_KEYBOARD . . . . . . . . . . .  	V WORD	0000		External
S_KYBD_ALT . . . . . . . . . . .  	V 0002	0000		External
S_LASTDRIVE  . . . . . . . . . .  	V 0002	0000		External
S_MODE . . . . . . . . . . . . .  	V WORD	0000		External
S_MODE_PARM  . . . . . . . . . .  	V 0002	0000		External
S_OFF  . . . . . . . . . . . . .  	V 0002	0000		External
S_ON . . . . . . . . . . . . . .  	V 0002	0000		External
S_OS2_AUTO_C . . . . . . . . . .  	V WORD	0000		External
S_OS2_CONFIG_C . . . . . . . . .  	V WORD	0000		External
S_PATH . . . . . . . . . . . . .  	V WORD	0000		External
S_PREP_EGA . . . . . . . . . . .  	V 0002	0000		External
S_PREP_LCD . . . . . . . . . . .  	V 0002	0000		External
S_PRINT_FILE . . . . . . . . . .  	V WORD	0000		External
S_PROMPT . . . . . . . . . . . .  	V WORD	0000		External
S_RECOVER_B  . . . . . . . . . .  	V 0002	0000		External
S_RECOVER_C  . . . . . . . . . .  	V 0002	0000		External
S_REPLACE  . . . . . . . . . . .  	V WORD	0000		External
S_REPLACE_PAR1 . . . . . . . . .  	V WORD	0000		External
S_SELCOM_C . . . . . . . . . . .  	V 0002	0000		External
S_SELCOM_NEW_B . . . . . . . . .  	V WORD	0000		External
S_SELDAT_C . . . . . . . . . . .  	V WORD	0000		External
S_SELDAT_NEW_B . . . . . . . . .  	V WORD	0000		External
S_SELECT_TMP . . . . . . . . . .  	V WORD	0000		External
S_SELEXE_C . . . . . . . . . . .  	V 0002	0000		External
S_SELEXE_NEW_B . . . . . . . . .  	V WORD	0000		External
S_SELHLP_C . . . . . . . . . . .  	V 0002	0000		External
S_SELHLP_NEW_B . . . . . . . . .  	V WORD	0000		External
S_SELPRT_C . . . . . . . . . . .  	V 0002	0000		External
S_SELPRT_NEW_B . . . . . . . . .  	V WORD	0000		External
S_SHARE  . . . . . . . . . . . .  	V WORD	0000		External
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-23


S_SHELL  . . . . . . . . . . . .  	V WORD	0000		External
S_SHELL2 . . . . . . . . . . . .  	V BYTE	0000		External
S_SHELL_NEW  . . . . . . . . . .  	V 0002	0000		External
S_SHELL_NEW_B  . . . . . . . . .  	V WORD	0000		External
S_SLASH  . . . . . . . . . . . .  	V WORD	0000		External
S_SLASH_A  . . . . . . . . . . .  	V WORD	0000		External
S_SLASH_Q  . . . . . . . . . . .  	V WORD	0000		External
S_SLASH_R  . . . . . . . . . . .  	V WORD	0000		External
S_SLASH_S  . . . . . . . . . . .  	V WORD	0000		External
S_SPACE  . . . . . . . . . . . .  	V WORD	0000		External
S_STACKS . . . . . . . . . . . .  	V WORD	0000		External
S_STR120_1 . . . . . . . . . . .  	V WORD	0000		External
S_STR120_2 . . . . . . . . . . .  	V WORD	0000		External
S_STR120_3 . . . . . . . . . . .  	V WORD	0000		External
S_STR120_4 . . . . . . . . . . .  	V WORD	0000		External
S_STR40  . . . . . . . . . . . .  	V WORD	0000		External
S_SWISS  . . . . . . . . . . . .  	V WORD	0000		External
S_SYS_C  . . . . . . . . . . . .  	V WORD	0000		External
S_US . . . . . . . . . . . . . .  	V 0002	0000		External
S_USER_STRING  . . . . . . . . .  	V WORD	0000		External
S_VDISK  . . . . . . . . . . . .  	V WORD	0000		External
S_VDISK_B  . . . . . . . . . . .  	V WORD	0000		External
S_VDISK_C  . . . . . . . . . . .  	V WORD	0000		External
S_VERIFY . . . . . . . . . . . .  	V WORD	0000		External
S_VOL_SEL  . . . . . . . . . . .  	V WORD	0000		External
S_XMA2EMS  . . . . . . . . . . .  	V WORD	0000		External
S_XMAEM  . . . . . . . . . . . .  	V WORD	0000		External

TAB  . . . . . . . . . . . . . .  	NUMBER	0009	
TABLE_ONE  . . . . . . . . . . .  	NUMBER	0001	
TABLE_TWO  . . . . . . . . . . .  	NUMBER	0002	
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	
TOGGLE_SUPPORT_CALL  . . . . . .  	L NEAR	0000	SELECT	External
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	

UNSGN_BIN_BYTE . . . . . . . . .  	NUMBER	0011	
UNSGN_BIN_DWORD  . . . . . . . .  	NUMBER	0031	
UNSGN_BIN_TYPE . . . . . . . . .  	NUMBER	0001	
UNSGN_BIN_WORD . . . . . . . . .  	NUMBER	0021	
UPDATE_DISK_TABLE_ROUTINE  . . .  	L FAR 	0000		External
USE_DEFAULT  . . . . . . . . . .  	NUMBER	0000	
UTILITY_MSG_CLASS  . . . . . . .  	NUMBER	00FF	

WRITE_FILE_ROUTINE . . . . . . .  	L FAR 	0000		External
WRITE_LINE_ROUTINE . . . . . . .  	L FAR 	0000		External
W_PROTECT_FLAG . . . . . . . . .  	L FAR 	0000		External

$L1  . . . . . . . . . . . . . .  	L NEAR	00A2	SELECT
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-24


$L4  . . . . . . . . . . . . . .  	L NEAR	002F	SELECT
$L5  . . . . . . . . . . . . . .  	L NEAR	008C	SELECT
$L7  . . . . . . . . . . . . . .  	L NEAR	00DB	SELECT
$L8  . . . . . . . . . . . . . .  	L NEAR	00C3	SELECT
$LL1 . . . . . . . . . . . . . .  	NUMBER	0001	
$LL7 . . . . . . . . . . . . . .  	NUMBER	0007	
$MDO123  . . . . . . . . . . . .  	L NEAR	03AF	SELECT
$MDO139  . . . . . . . . . . . .  	L NEAR	0417	SELECT
$MDO145  . . . . . . . . . . . .  	L NEAR	0439	SELECT
$MDO165  . . . . . . . . . . . .  	L NEAR	049B	SELECT
$MDO167  . . . . . . . . . . . .  	L NEAR	04A5	SELECT
$MDO175  . . . . . . . . . . . .  	L NEAR	04D1	SELECT
$MDO215  . . . . . . . . . . . .  	L NEAR	0574	SELECT
$MDO280  . . . . . . . . . . . .  	L NEAR	05C6	SELECT
$MDO291  . . . . . . . . . . . .  	L NEAR	05F1	SELECT
$MDO301  . . . . . . . . . . . .  	L NEAR	061F	SELECT
$MDO310  . . . . . . . . . . . .  	L NEAR	0645	SELECT
$MDO36 . . . . . . . . . . . . .  	L NEAR	01E7	SELECT
$MDO76 . . . . . . . . . . . . .  	L NEAR	02CF	SELECT
$MEN104  . . . . . . . . . . . .  	L NEAR	034E	SELECT
$MEN107  . . . . . . . . . . . .  	L NEAR	0363	SELECT
$MEN110  . . . . . . . . . . . .  	L NEAR	0384	SELECT
$MEN119  . . . . . . . . . . . .  	L NEAR	03BC	SELECT
$MEN123  . . . . . . . . . . . .  	L NEAR	03BC	SELECT
$MEN128  . . . . . . . . . . . .  	L NEAR	03EB	SELECT
$MEN139  . . . . . . . . . . . .  	L NEAR	042E	SELECT
$MEN145  . . . . . . . . . . . .  	L NEAR	0492	SELECT
$MEN146  . . . . . . . . . . . .  	L NEAR	044F	SELECT
$MEN150  . . . . . . . . . . . .  	L NEAR	048D	SELECT
$MEN154  . . . . . . . . . . . .  	L NEAR	048D	SELECT
$MEN165  . . . . . . . . . . . .  	L NEAR	055F	SELECT
$MEN167  . . . . . . . . . . . .  	L NEAR	04C2	SELECT
$MEN175  . . . . . . . . . . . .  	L NEAR	04EA	SELECT
$MEN180  . . . . . . . . . . . .  	L NEAR	04FC	SELECT
$MEN187  . . . . . . . . . . . .  	L NEAR	052F	SELECT
$MEN188  . . . . . . . . . . . .  	L NEAR	051D	SELECT
$MEN192  . . . . . . . . . . . .  	L NEAR	052F	SELECT
$MEN199  . . . . . . . . . . . .  	L NEAR	0546	SELECT
$MEN20 . . . . . . . . . . . . .  	L NEAR	0184	SELECT
$MEN211  . . . . . . . . . . . .  	L NEAR	0553	SELECT
$MEN292  . . . . . . . . . . . .  	L NEAR	0604	SELECT
$MEN307  . . . . . . . . . . . .  	L NEAR	064D	SELECT
$MEN314  . . . . . . . . . . . .  	L NEAR	066D	SELECT
$MEN32 . . . . . . . . . . . . .  	L NEAR	01DA	SELECT
$MEN36 . . . . . . . . . . . . .  	L NEAR	0248	SELECT
$MEN37 . . . . . . . . . . . . .  	L NEAR	0219	SELECT
$MEN39 . . . . . . . . . . . . .  	L NEAR	0219	SELECT
$MEN41 . . . . . . . . . . . . .  	L NEAR	0219	SELECT
$MEN46 . . . . . . . . . . . . .  	L NEAR	0240	SELECT
$MEN47 . . . . . . . . . . . . .  	L NEAR	0232	SELECT
$MEN57 . . . . . . . . . . . . .  	L NEAR	0268	SELECT
$MEN60 . . . . . . . . . . . . .  	L NEAR	0275	SELECT
$MEN64 . . . . . . . . . . . . .  	L NEAR	02CC	SELECT
$MEN65 . . . . . . . . . . . . .  	L NEAR	02B0	SELECT
$MEN69 . . . . . . . . . . . . .  	L NEAR	02C8	SELECT
$MEN76 . . . . . . . . . . . . .  	L NEAR	02EC	SELECT
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-25


$MEN78 . . . . . . . . . . . . .  	L NEAR	02E0	SELECT
$MEN93 . . . . . . . . . . . . .  	L NEAR	0342	SELECT
$MEN94 . . . . . . . . . . . . .  	L NEAR	032E	SELECT
$MEN97 . . . . . . . . . . . . .  	L NEAR	033C	SELECT
$MIF104  . . . . . . . . . . . .  	L NEAR	034A	SELECT
$MIF107  . . . . . . . . . . . .  	L NEAR	0360	SELECT
$MIF110  . . . . . . . . . . . .  	L NEAR	0374	SELECT
$MIF112  . . . . . . . . . . . .  	L NEAR	0384	SELECT
$MIF113  . . . . . . . . . . . .  	L NEAR	0384	SELECT
$MIF117  . . . . . . . . . . . .  	L NEAR	0389	SELECT
$MIF119  . . . . . . . . . . . .  	L NEAR	03AD	SELECT
$MIF120  . . . . . . . . . . . .  	L NEAR	03AB	SELECT
$MIF127  . . . . . . . . . . . .  	L NEAR	03EC	SELECT
$MIF128  . . . . . . . . . . . .  	L NEAR	03E9	SELECT
$MIF129  . . . . . . . . . . . .  	L NEAR	03E7	SELECT
$MIF134  . . . . . . . . . . . .  	L NEAR	040C	SELECT
$MIF135  . . . . . . . . . . . .  	L NEAR	040C	SELECT
$MIF138  . . . . . . . . . . . .  	L NEAR	042E	SELECT
$MIF141  . . . . . . . . . . . .  	L NEAR	042A	SELECT
$MIF146  . . . . . . . . . . . .  	L NEAR	044C	SELECT
$MIF150  . . . . . . . . . . . .  	L NEAR	046B	SELECT
$MIF151  . . . . . . . . . . . .  	L NEAR	0469	SELECT
$MIF154  . . . . . . . . . . . .  	L NEAR	047D	SELECT
$MIF155  . . . . . . . . . . . .  	L NEAR	047B	SELECT
$MIF158  . . . . . . . . . . . .  	L NEAR	048D	SELECT
$MIF159  . . . . . . . . . . . .  	L NEAR	048D	SELECT
$MIF166  . . . . . . . . . . . .  	L NEAR	04C2	SELECT
$MIF169  . . . . . . . . . . . .  	L NEAR	04BD	SELECT
$MIF173  . . . . . . . . . . . .  	L NEAR	04FC	SELECT
$MIF174  . . . . . . . . . . . .  	L NEAR	04FC	SELECT
$MIF175  . . . . . . . . . . . .  	L NEAR	04DE	SELECT
$MIF180  . . . . . . . . . . . .  	L NEAR	04F9	SELECT
$MIF187  . . . . . . . . . . . .  	L NEAR	051F	SELECT
$MIF188  . . . . . . . . . . . .  	L NEAR	051C	SELECT
$MIF192  . . . . . . . . . . . .  	L NEAR	0526	SELECT
$MIF194  . . . . . . . . . . . .  	L NEAR	052D	SELECT
$MIF199  . . . . . . . . . . . .  	L NEAR	0543	SELECT
$MIF20 . . . . . . . . . . . . .  	L NEAR	0180	SELECT
$MIF211  . . . . . . . . . . . .  	L NEAR	054F	SELECT
$MIF216  . . . . . . . . . . . .  	L NEAR	0582	SELECT
$MIF23 . . . . . . . . . . . . .  	L NEAR	019A	SELECT
$MIF276  . . . . . . . . . . . .  	L NEAR	05AC	SELECT
$MIF278  . . . . . . . . . . . .  	L NEAR	05DA	SELECT
$MIF279  . . . . . . . . . . . .  	L NEAR	05DA	SELECT
$MIF281  . . . . . . . . . . . .  	L NEAR	05D6	SELECT
$MIF286  . . . . . . . . . . . .  	L NEAR	05ED	SELECT
$MIF287  . . . . . . . . . . . .  	L NEAR	05ED	SELECT
$MIF290  . . . . . . . . . . . .  	L NEAR	0615	SELECT
$MIF292  . . . . . . . . . . . .  	L NEAR	0603	SELECT
$MIF295  . . . . . . . . . . . .  	L NEAR	0611	SELECT
$MIF299  . . . . . . . . . . . .  	L NEAR	0633	SELECT
$MIF300  . . . . . . . . . . . .  	L NEAR	0633	SELECT
$MIF302  . . . . . . . . . . . .  	L NEAR	062F	SELECT
$MIF307  . . . . . . . . . . . .  	L NEAR	0641	SELECT
$MIF309  . . . . . . . . . . . .  	L NEAR	064D	SELECT
$MIF31 . . . . . . . . . . . . .  	L NEAR	01DC	SELECT
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-26


$MIF314  . . . . . . . . . . . .  	L NEAR	0669	SELECT
$MIF32 . . . . . . . . . . . . .  	L NEAR	01D8	SELECT
$MIF37 . . . . . . . . . . . . .  	L NEAR	01F4	SELECT
$MIF39 . . . . . . . . . . . . .  	L NEAR	0201	SELECT
$MIF41 . . . . . . . . . . . . .  	L NEAR	0213	SELECT
$MIF46 . . . . . . . . . . . . .  	L NEAR	0234	SELECT
$MIF47 . . . . . . . . . . . . .  	L NEAR	0226	SELECT
$MIF51 . . . . . . . . . . . . .  	L NEAR	023C	SELECT
$MIF56 . . . . . . . . . . . . .  	L NEAR	0277	SELECT
$MIF57 . . . . . . . . . . . . .  	L NEAR	0267	SELECT
$MIF60 . . . . . . . . . . . . .  	L NEAR	026F	SELECT
$MIF64 . . . . . . . . . . . . .  	L NEAR	02B2	SELECT
$MIF65 . . . . . . . . . . . . .  	L NEAR	02AC	SELECT
$MIF69 . . . . . . . . . . . . .  	L NEAR	02BF	SELECT
$MIF71 . . . . . . . . . . . . .  	L NEAR	02C8	SELECT
$MIF75 . . . . . . . . . . . . .  	L NEAR	02F9	SELECT
$MIF76 . . . . . . . . . . . . .  	L NEAR	02E4	SELECT
$MIF78 . . . . . . . . . . . . .  	L NEAR	02DD	SELECT
$MIF86 . . . . . . . . . . . . .  	L NEAR	02F9	SELECT
$MIF87 . . . . . . . . . . . . .  	L NEAR	02F5	SELECT
$MIF91 . . . . . . . . . . . . .  	L NEAR	0301	SELECT
$MIF93 . . . . . . . . . . . . .  	L NEAR	033E	SELECT
$MIF94 . . . . . . . . . . . . .  	L NEAR	032B	SELECT
$MIF97 . . . . . . . . . . . . .  	L NEAR	0338	SELECT
$MLL149  . . . . . . . . . . . .  	L NEAR	0459	SELECT
$MLL168  . . . . . . . . . . . .  	L NEAR	04B4	SELECT
$MLL178  . . . . . . . . . . . .  	L NEAR	04E6	SELECT
$MLL214  . . . . . . . . . . . .  	L NEAR	055F	SELECT
$MSR175  . . . . . . . . . . . .  	L NEAR	04FC	SELECT
$MSR76 . . . . . . . . . . . . .  	L NEAR	02ED	SELECT
$MXL2  . . . . . . . . . . . . .  	L NEAR	0248	SELECT
$MXL3  . . . . . . . . . . . . .  	L NEAR	0509	SELECT
$MXL4  . . . . . . . . . . . . .  	L NEAR	055F	SELECT
$M_1_FF_END  . . . . . . . . . .  	L BYTE	0C64	SELECT
$M_1_FF_MSG  . . . . . . . . . .  	L BYTE	0C52	SELECT
$M_1_FF_STRUC  . . . . . . . . .  	L BYTE	0C4E	SELECT
$M_2_FF_END  . . . . . . . . . .  	L BYTE	0C85	SELECT
$M_2_FF_MSG  . . . . . . . . . .  	L BYTE	0C76	SELECT
$M_2_FF_STRUC  . . . . . . . . .  	L BYTE	0C72	SELECT
$M_ADDR_SZ_FAR . . . . . . . . .  	NUMBER	0004	
$M_ADDR_SZ_NEAR  . . . . . . . .  	NUMBER	0002	
$M_ADD_CRLF  . . . . . . . . . .  	N PROC	03F6	SELECT	Length = 0017
$M_ALIGN_MASK  . . . . . . . . .  	NUMBER	0080	
$M_AM  . . . . . . . . . . . . .  	NUMBER	0061	
$M_A_00001H_END  . . . . . . . .  	L BYTE	06AE	SELECT
$M_A_00001H_MSG  . . . . . . . .  	L BYTE	0696	SELECT
$M_A_00001H_STRUC  . . . . . . .  	L BYTE	0672	SELECT
$M_A_00002H_END  . . . . . . . .  	L BYTE	06C5	SELECT
$M_A_00002H_MSG  . . . . . . . .  	L BYTE	06AE	SELECT
$M_A_00002H_STRUC  . . . . . . .  	L BYTE	0676	SELECT
$M_A_00003H_END  . . . . . . . .  	L BYTE	06E2	SELECT
$M_A_00003H_MSG  . . . . . . . .  	L BYTE	06C5	SELECT
$M_A_00003H_STRUC  . . . . . . .  	L BYTE	067A	SELECT
$M_A_00004H_END  . . . . . . . .  	L BYTE	072F	SELECT
$M_A_00004H_MSG  . . . . . . . .  	L BYTE	06E2	SELECT
$M_A_00004H_STRUC  . . . . . . .  	L BYTE	067E	SELECT
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-27


$M_A_00005H_END  . . . . . . . .  	L BYTE	077E	SELECT
$M_A_00005H_MSG  . . . . . . . .  	L BYTE	072F	SELECT
$M_A_00005H_STRUC  . . . . . . .  	L BYTE	0682	SELECT
$M_A_00006H_END  . . . . . . . .  	L BYTE	07FF	SELECT
$M_A_00006H_MSG  . . . . . . . .  	L BYTE	077E	SELECT
$M_A_00006H_STRUC  . . . . . . .  	L BYTE	0686	SELECT
$M_A_00007H_END  . . . . . . . .  	L BYTE	082D	SELECT
$M_A_00007H_MSG  . . . . . . . .  	L BYTE	07FF	SELECT
$M_A_00007H_STRUC  . . . . . . .  	L BYTE	068A	SELECT
$M_A_00008H_END  . . . . . . . .  	L BYTE	084D	SELECT
$M_A_00008H_MSG  . . . . . . . .  	L BYTE	082D	SELECT
$M_A_00008H_STRUC  . . . . . . .  	L BYTE	068E	SELECT
$M_A_00009H_END  . . . . . . . .  	L BYTE	08B2	SELECT
$M_A_00009H_MSG  . . . . . . . .  	L BYTE	084D	SELECT
$M_A_00009H_STRUC  . . . . . . .  	L BYTE	0692	SELECT
$M_BASE10  . . . . . . . . . . .  	NUMBER	000A	
$M_BASE16  . . . . . . . . . . .  	NUMBER	0010	
$M_BYTE  . . . . . . . . . . . .  	NUMBER	0010	
$M_B_0000AH_END  . . . . . . . .  	L BYTE	0954	SELECT
$M_B_0000AH_MSG  . . . . . . . .  	L BYTE	08ED	SELECT
$M_B_0000AH_STRUC  . . . . . . .  	L BYTE	08C1	SELECT
$M_B_0000BH_END  . . . . . . . .  	L BYTE	0956	SELECT
$M_B_0000BH_MSG  . . . . . . . .  	L BYTE	0954	SELECT
$M_B_0000BH_STRUC  . . . . . . .  	L BYTE	08C5	SELECT
$M_B_0000CH_END  . . . . . . . .  	L BYTE	0997	SELECT
$M_B_0000CH_MSG  . . . . . . . .  	L BYTE	0956	SELECT
$M_B_0000CH_STRUC  . . . . . . .  	L BYTE	08C9	SELECT
$M_B_0000DH_END  . . . . . . . .  	L BYTE	0A10	SELECT
$M_B_0000DH_MSG  . . . . . . . .  	L BYTE	0997	SELECT
$M_B_0000DH_STRUC  . . . . . . .  	L BYTE	08CD	SELECT
$M_B_0000EH_END  . . . . . . . .  	L BYTE	0A89	SELECT
$M_B_0000EH_MSG  . . . . . . . .  	L BYTE	0A10	SELECT
$M_B_0000EH_STRUC  . . . . . . .  	L BYTE	08D1	SELECT
$M_B_0000FH_END  . . . . . . . .  	L BYTE	0AA2	SELECT
$M_B_0000FH_MSG  . . . . . . . .  	L BYTE	0A89	SELECT
$M_B_0000FH_STRUC  . . . . . . .  	L BYTE	08D5	SELECT
$M_B_00010H_END  . . . . . . . .  	L BYTE	0B13	SELECT
$M_B_00010H_MSG  . . . . . . . .  	L BYTE	0AA2	SELECT
$M_B_00010H_STRUC  . . . . . . .  	L BYTE	08D9	SELECT
$M_B_00011H_END  . . . . . . . .  	L BYTE	0B88	SELECT
$M_B_00011H_MSG  . . . . . . . .  	L BYTE	0B13	SELECT
$M_B_00011H_STRUC  . . . . . . .  	L BYTE	08DD	SELECT
$M_B_00012H_END  . . . . . . . .  	L BYTE	0BE3	SELECT
$M_B_00012H_MSG  . . . . . . . .  	L BYTE	0B88	SELECT
$M_B_00012H_STRUC  . . . . . . .  	L BYTE	08E1	SELECT
$M_B_00013H_END  . . . . . . . .  	L BYTE	0C29	SELECT
$M_B_00013H_MSG  . . . . . . . .  	L BYTE	0BE3	SELECT
$M_B_00013H_STRUC  . . . . . . .  	L BYTE	08E5	SELECT
$M_B_00014H_END  . . . . . . . .  	L BYTE	0C3F	SELECT
$M_B_00014H_MSG  . . . . . . . .  	L BYTE	0C29	SELECT
$M_B_00014H_STRUC  . . . . . . .  	L BYTE	08E9	SELECT
$M_CHAR_ONLY . . . . . . . . . .  	NUMBER	FFFF	
$M_CHECKSTDIN  . . . . . . . . .  	N PROC	019D	SELECT	Length = 0013
$M_CHECKSTDOUT . . . . . . . . .  	N PROC	01B0	SELECT	Length = 0013
$M_CLASS_1_STRUC . . . . . . . .  	L BYTE	0C4A	SELECT
$M_CLASS_2_STRUC . . . . . . . .  	L BYTE	0C6E	SELECT
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-28


$M_CLASS_A_STRUC . . . . . . . .  	L BYTE	066E	SELECT
$M_CLASS_B_STRUC . . . . . . . .  	L BYTE	08BD	SELECT
$M_CLASS_ID_SZ . . . . . . . . .  	NUMBER	0004	
$M_CLASS_NOT_EXIST . . . . . . .  	NUMBER	0000	
$M_CLS_1 . . . . . . . . . . . .  	F PROC	08B2	SELECT	Global	Length = 000B
$M_CLS_2 . . . . . . . . . . . .  	F PROC	0C3F	SELECT	Global	Length = 000B
$M_COMMA . . . . . . . . . . . .  	NUMBER	002C	
$M_CONVERT2ASC . . . . . . . . .  	N PROC	0431	SELECT	Length = 006A
$M_CON_INP . . . . . . . . . . .  	NUMBER	-0001	
$M_COUNT . . . . . . . . . . . .  	NUMBER	0002	
$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	0002	
$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	038A	SELECT	Length = 0035
$M_DISPLAY_H_STRING  . . . . . .  	N PROC	03BF	SELECT	Length = 002E
$M_DISPLAY_MESSAGE . . . . . . .  	N PROC	049B	SELECT	Length = 00CB
$M_DISPLAY_REPLACE . . . . . . .  	N PROC	0593	SELECT	Length = 00BF
$M_DISPLAY_STRING  . . . . . . .  	N PROC	034F	SELECT	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	0566	SELECT	Length = 002D
$M_FIND_SPECIFIED_MSG  . . . . .  	N PROC	0290	SELECT	Length = 0078
$M_FIRST_THOU  . . . . . . . . .  	NUMBER	0003	
$M_FLUSH_BUF . . . . . . . . . .  	N PROC	0652	SELECT	Length = 001C
$M_GET_DBCS_VEC  . . . . . . . .  	N PROC	0185	SELECT	Length = 0018
$M_GET_EXT_ERR_39  . . . . . . .  	N PROC	03ED	SELECT	Length = 0009
$M_GET_MSG_ADDRESS . . . . . . .  	F PROC	01E1	SELECT	Global	Length = 00A0
$M_ID_SZ . . . . . . . . . . . .  	NUMBER	0004	
$M_INCLUDE . . . . . . . . . . .  	NUMBER	FFFF	
$M_INDEX . . . . . . . . . . . .  	NUMBER	0008	
$M_IS_IT_DBCS  . . . . . . . . .  	N PROC	040D	SELECT	Length = 0024
$M_LOAD  . . . . . . . . . . . .  	NUMBER	FFFF	
$M_MAX_2_YEAR  . . . . . . . . .  	NUMBER	0063	
$M_MSGDATA_ONLY  . . . . . . . .  	NUMBER	0000	
$M_MSGSERV_1 . . . . . . . . . .  	F PROC	0C64	SELECT	Global	Length = 000A
$M_MSGSERV_2 . . . . . . . . . .  	F PROC	0C85	SELECT	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	0002	
$M_ONE_REPLACE . . . . . . . . .  	NUMBER	0001	
Microsoft (R) Macro Assembler Version 5.10                  11/4/24 22:12:40
SELECT0 - DOS - SELECT.EXE				;AN000;                       Symbols-29


$M_PARSE_FLAG  . . . . . . . . .  	NUMBER	FFFF	
$M_PAR_CLS . . . . . . . . . . .  	NUMBER	FFFF	
$M_PM  . . . . . . . . . . . . .  	NUMBER	0070	
$M_REPLACE . . . . . . . . . . .  	NUMBER	0000	
$M_REPL_DONE . . . . . . . . . .  	NUMBER	0000	
$M_RES_ADDRS_SZ  . . . . . . . .  	NUMBER	0089	
$M_RT  . . . . . . . . . . . . .  	V BYTE	0000		External
$M_SECOND_THOU . . . . . . . . .  	NUMBER	0006	
$M_SERVICE . . . . . . . . . . .  	NUMBER	0000	
$M_SET_LEN_IN_CX . . . . . . . .  	N PROC	0281	SELECT	Length = 000F
$M_SINGLE_CHAR . . . . . . . . .  	NUMBER	0001	
$M_SIZE_MASK . . . . . . . . . .  	NUMBER	0030	
$M_SL  . . . . . . . . . . . . .  	TEXT  DS:[SI]		
$M_SPACE . . . . . . . . . . . .  	NUMBER	0020	
$M_SPACE_HYP . . . . . . . . . .  	NUMBER	2D20	
$M_SPECIAL_CASE  . . . . . . . .  	NUMBER	0030	
$M_SPECIAL_MSG_NUM . . . . . . .  	NUMBER	FFFF	
$M_STRUC . . . . . . . . . . . .  	NUMBER	0000	
$M_SUBS  . . . . . . . . . . . .  	NUMBER	0000	
$M_TEMP_BUF_SZ . . . . . . . . .  	NUMBER	0040	
$M_TERMINATING_FLAG  . . . . . .  	NUMBER	-0001	
$M_THIRD_THOU  . . . . . . . . .  	NUMBER	0009	
$M_TIMEDATE_PAD  . . . . . . . .  	NUMBER	0030	
$M_TIME_MASK . . . . . . . . . .  	NUMBER	0001	
$M_TYPE_MASK . . . . . . . . . .  	NUMBER	000F	
$M_UNLIM_W . . . . . . . . . . .  	NUMBER	0000	
$M_WORD  . . . . . . . . . . . .  	NUMBER	0020	
??0000 . . . . . . . . . . . . .  	L NEAR	008A	SELECT
??0001 . . . . . . . . . . . . .  	L NEAR	0279	SELECT
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  select0		
@VERSION . . . . . . . . . . . .  	TEXT  510		


  12836 Source  Lines
  17839 Total   Lines
   1661 Symbols

  33188 + 30280 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
