Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-1


				page	60,132								 ;AN000;
				name	_parse								 ;AN000;
				title	C	to PARSER interface					 ;AN000;
				;-------------------------------------------------------------------	 ;AN000;
				;									 ;AN000;
				;	MODULE: 	_parse						 ;AN000;
				;									 ;AN000;
				;	PURPOSE:	Supplies an interface between C programs and	 ;AN000;
				;			the DOS parser					 ;AN000;
				;									 ;AN000;
				;	CALLING FORMAT: 						 ;AN000;
				;			parse(&inregs,&outregs);			 ;AN000;
				;									 ;AN000;
				;	DATE:		5-21-87 					 ;AN000;
				;									 ;AN000;
				;-------------------------------------------------------------------	 ;AN000;
				;									 ;AN000;
				;	extrn	sysparse:far						 ;AN000;
				;									 ;AN000;
					public	_parse							 ;AN000;
				;									 ;AN000;
				;-------------------------------------------------------------------	 ;AN000;
 = 0000				FarSW	equ	0			; make sysparse be a NEAR proc	 ;AN000;
 = 0000				TimeSW	equ	0			; Check time format		 ;AN000;
 = 0001				FileSW	equ	1			; Check file specification	 ;AN000;
 = 0001				CAPSW	equ	1			; Perform CAPS if specified	 ;AN000;
 = 0000				CmpxSW	equ	0			; Check complex list		 ;AN000;
 = 0001				NumSW	equ	1			; Check numeric value		 ;AN000;
 = 0001				KeySW	equ	1			; Support keywords		 ;AN000;
 = 0001				SwSW	equ	1			; Support switches		 ;AN000;
 = 0001				Val1SW	equ	1			; Support value definition 1	 ;AN000;
 = 0001				Val2SW	equ	1			; Support value definition 2	 ;AN000;
 = 0001				Val3SW	equ	1			; Support value definition 3	 ;AN000;
 = 0000				DrvSW	equ	0			; Support drive only format	 ;AN000;
 = 0001				QusSW	equ	1			; Support quoted string format	 ;AN000;
				;-------------------------------------------------------------------	 ;AN000;
				DGROUP	GROUP	_DATA
				PGROUP	GROUP	_TEXT
				
 0000				_DATA	segment byte public 'DATA'	;AN000;
 = 0001				BASESW	=	1			;SPECIFY, PSDATA POINTED TO BY "DS"
 = 0000				INCSW	=	0			;PSDATA.INC IS ALREADY INCLUDED
					INCLUDE PSDATA.INC		;PARSER'S WORK SPACE
			     C	;*******************************************************************
			     C	; Parser include file
			     C	;*******************************************************************
			     C	;
			     C	;**** Default assemble switches definition *************************
			     C	
			     C	
			     C	
			     C	
			     C	
			     C	
			     C	
			     C	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-2


			     C	
			     C	
			     C	
			     C	
			     C	
			     C	
			     C	
			     C	
			     C	;**** Equation field
			     C	;-------- Character code definition
			     C	
 = 0081                      C	$P_DBSP1	   equ	81h		;AN000; 1st byte of DBCS blank
 = 0040                      C	$P_DBSP2	   equ	40h		;AN000; 2nd byte of DBCS blank
 = 002E                      C	$P_Period	   equ	"."             ;AN020;
 = 002F                      C	$P_Slash	   equ	"/"             ;AN020;
 = 0020                      C	$P_Space	   equ	" "             ;AN000; SBCS blank
 = 002C                      C	$P_Comma	   equ	","             ;AN000;
 = 002F                      C	$P_Switch	   equ	"/"             ;AN000;
 = 003D                      C	$P_Keyword	   equ	"="             ;AN000;
 = 003A                      C	$P_Colon	   equ	":"             ;AN000;
 = 002B                      C	$P_Plus 	   equ	"+"             ;AN000;
 = 002D                      C	$P_Minus	   equ	"-"             ;AN000;
 = 0029                      C	$P_Rparen	   equ	")"             ;AN000;
 = 0028                      C	$P_Lparen	   equ	"("             ;AN000;
			     C	;(deleted ;AN025;) $P_SQuote	      equ  "'"
 = 0022                      C	$P_DQuote	   equ	'"'             ;AN000;
 = 0000                      C	$P_NULL 	   equ	0		;AN000;
 = 0009                      C	$P_TAB		   equ	9		;AN000;
 = 000D                      C	$P_CR		   equ	0Dh		;AN000;
 = 000A                      C	$P_LF		   equ	0Ah		;AN000;
 = 0080                      C	$P_ASCII80	   equ	80h		;AN000; ASCII 80h character code
			     C	
			     C	;-------- Masks
 = 0020                      C	$P_Make_Lower	   equ	20h		;AN000; make lower case character
 = 00DF                      C	$P_Make_Upper	   equ	0ffh-$P_Make_Lower ;AN000; make upper case character
			     C	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-3


			     C			   PAGE 		   ;AN000;
			     C	;-------- DOS function call related equs
			     C	
 = 3800                      C	$P_DOS_Get_CDI	   equ	3800h		;AN000; get country dependent information
			     C						; by this call, following information
			     C	$P_CDI		   struc		;AN000; is returned.
 0000  0000                  C	$P_CDI_DateF	   dw	0		;AN000;
 0002  00 00 00 00 00        C	$P_CDI_Money	   db	0,0,0,0,0	;AN000;
 0007  00 00                 C	$P_CDI_1000	   db	0,0		;AN000;
 0009  00 00                 C	$P_CDI_Dec	   db	0,0		;AN000;
 000B  00 00                 C	$P_CDI_DateS	   db	0,0		;AN000;
 000D  00 00                 C	$P_CDI_TimeS	   db	0,0		;AN000;
 000F  00                    C			   db	0		;AN000;
 0010  00                    C			   db	0		;AN000;
 0011  00                    C	$P_CDI_TimeF	   db	0		;AN000;
 0012  0000 0000             C			   dw	0,0		;AN000;
 0016  00 00                 C			   db	0,0		;AN000;
 0018  0005[                 C			   dw	5 dup(0)	;AN000;
	   0000              C	
			 ]   C	
			     C	
 0022                        C	$P_CDI		   ends 		;AN000;
			     C	
 = 0000                      C	$P_Date_MDY	   equ	0		;AN000;
 = 0001                      C	$P_Date_DMY	   equ	1		;AN000;
 = 0002                      C	$P_Date_YMD	   equ	2		;AN000;
			     C	;-------------
 = 6300                      C	$P_DOS_GetEV	   equ	6300h		;AN000; get DBCS EV call
			     C						;AN000; DS:SI will points to DBCS EV
			     C	;-------------
 = 0065                      C	$P_DOS_Get_TBL	   equ	65h		;AN000; get uppercase table call
			     C						;AN000; following parameters are set
			     C						;AN000; to get casemap table.
 =-0001                      C	$P_DOSTBL_Def	   equ	-1		;AN000; get default
 = 0005                      C	$P_DOSTBL_BL	   equ	5		;AN000; buffer length for Tbl pointer
 = 0004                      C	$P_DOSTBL_File	   equ	4		;AN000; get file uppercase table
 = 0002                      C	$P_DOSTBL_Char	   equ	2		;AN000; get character uppercase table
			     C						; By this call following information
			     C						; is returned.
			     C	$P_DOS_TBL	   struc		;AN000;
 0000  00                    C	$P_DOS_InfoID	   db	0		;AN000; information id for the table
 0001  0000                  C	$P_DOS_TBL_Off	   dw	0		;AN000; offset address of the table
 0003  0000                  C	$P_DOS_TBL_Seg	   dw	0		;AN000; segment address of the table
 0005                        C	$P_DOS_TBL	   ends 		;AN000;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-4


			     C			   PAGE 		;AN000;
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	; PARMS 	LABEL	BYTE
			     C	;		DW	PARMSX
			     C	;		DB	2			; NUMBER OF STRINGS (0, 1, 2)
			     C	;		DB	length			; LENGTH OF THE NEXT LIST, 0 IF NONE
			     C	;		DB	" .. "                  ; EXTRA DELIMITER LIST,
			     C	;						; TYPICAL ARE ";", "="
			     C	;						; "," & WHITESPACE ALWAYS
			     C	;		DB	length			; LENGTH OF THE NEXT LIST, 0 IF NONE
			     C	;		DB	" .. "                  ; EXTRA END OF LINE LIST, CR, LF OR 0 ALWAYS
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	
			     C	;-------------------------------- PARMS block structure
			     C	$P_PARMS_Blk	   struc		;AN000;
 0000  0000                  C	$P_PARMSX_Address  dw	0		;AN000; Address of PARMSX
 0002  00                    C	$P_Num_Extra	   db	0		;AN000; Number of extra stuff
 0003  00                    C	$P_Len_Extra_Delim db	0		;AN000; Length of extra delimiter
 0004                        C	$P_PARMS_Blk	   ends 		;AN000;
			     C	
 = 0004                      C	$P_Len_PARMS	   equ	4		;AN000;
 = 0000                      C	$P_I_Use_Default   equ	0		;AN000; no extra stuff specified
 = 0001                      C	$P_I_Have_Delim    equ	1		;AN000; extra delimiter specified
 = 0002                      C	$P_I_Have_EOL	   equ	2		;AN000; extra EOL specified
			     C	
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	; PARMSX	LABEL	BYTE
			     C	;		DB	minp,maxp		; MIN, MAX POSITIONAL OPERANDS ALLOWED
			     C	;		DW	CONTROL 		; DESCRIPTION OF POSITIONAL 1
			     C	;		:				; REPEATS maxp-1 TIMES
			     C	;		DB	maxs			; # OF SWITCHES
			     C	;		DW	CONTROL 		; DESCRIPTION OF SWITCH 1
			     C	;		:				; REPEATS maxs-1 TIMES
			     C	;		DB	maxk			; # OF KEYWORD
			     C	;		DW	CONTROL 		; DESCRIPTION OF KEYWORD 1
			     C	;		:				; REPEATS maxk-1 TIMES
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	
			     C	;-------------------------------- PARMSX block structure
			     C	$P_PARMSX_Blk	   struc		;AN000;
 0000  00                    C	$P_MinP 	   db	0		;AN000; Minimum positional number
 0001  00                    C	$P_Maxp 	   db	0		;AN000; Maximum positional number
 0002  0000                  C	$P_1st_Control	   dw	0		;AN000; Address of the 1st CONTROL block
 0004                        C	$P_PARMSX_Blk	   ends 		;AN000;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-5


			     C			   PAGE 		;AN000;
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	; << Control field definition  >>
			     C	;
			     C	;
			     C	;CONTROL   LABEL   BYTE
			     C	;	   DW	   MATCH_FLAGS	   ; CONTROLS TYPE MATCHED
			     C	;				   ; 8000H=NUMERIC VALUE, (VALUE LIST WILL BE CHECKED)
			     C	;				   ; 4000H=SIGNED NUMERIC VALUE (VALUE LIST WILL BE CHECKED)
			     C	;				   ; 2000H=SIMPLE STRING(VALUE LIST WILL BE CHECKED)
			     C	;				   ; 1000H=DATE STRING (VALUE LIST WON'T BE CHECKED)
			     C	;				   ; 0800H=TIME STRING (VALUE LIST WON'T BE CHECKED)
			     C	;				   ; 0400H=COMPLEX LIST (VALUE LIST WON'T BE CHECKED)
			     C	;				   ; 0200H=FILE SPEC (VALUE LIST WON'T BE CHECKED)
			     C	;				   ; 0100H=DRIVE ONLY (VALUE LIST WON'T BE CHECKED)
			     C	;				   ; 0080H=QUOTED STRING (VALUE LIST WON'T BE CHECKED)
			     C	;				   ; 0010H=IGNORE ":" AT END IN MATCH
			     C	;				   ; 0002H=REPEATS ALLOWED
			     C	;				   ; 0001H=OPTIONAL
			     C	;	   DW	   FUNCTION_FLAGS
			     C	;				   ; 0001H=CAP RESULT BY FILE TABLE
			     C	;				   ; 0002H=CAP RESULT BY CHAR TABLE
			     C	;				   ; 0010H=REMOVE ":" AT END
			     C	; (tm10)			   ; 0020H=colon is not necessary for switch
			     C	;	   DW	   RESULT	   ; RESULT BUFFER
			     C	;	   DW	   VALUES	   ; VALUE LISTS
			     C	;	   DB	   nid		   ; NUMBER OF KEYWORD/SWITCH SYNONYMS IN FOLLOWING LIST
			     C	;	   DB	   "...",0         ; IF n >0, KEYWORD 1
			     C	;	   :
			     C	;
			     C	;Note:
			     C	;    - The MATCH_FLAG is bit significant. You can set, for example, TIME bit and
			     C	;      DATE bit simalteniously.
			     C	;
			     C	;      The parser examins each bit along with the following priority.
			     C	;
			     C	;      COMPLEX -> DATE -> TIME -> NUMERIC VAL -> SIGNED NUMERIC VAL -> DRIVE ->
			     C	;      FILE SPEC -> SIMPLE STRING.
			     C	;
			     C	;
			     C	;    - When the FUNCTION_FLAG is 0001 or 0002, the STRING pointed to by a pointer
			     C	;      in the result buffer is capitalized.
			     C	;
			     C	;    - Match_Flags 0001H and 0002H have meaning only for the positional.
			     C	;
			     C	;
			     C	;    - The "...",0 (bottom most line) does require '=' or '/'. When you need a
			     C	;      switch, for example, '/A', then STRING points to;
			     C	;
			     C	;			DB    1 	; number of following synonyms
			     C	;			DB   '/A',0
			     C	;
			     C	;      When you need a keyword, for example, 'CODEPAGE=', then "...",0 will be;
			     C	;
			     C	;			DB    1 	; number of following synonyms
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-6


			     C	;			DB   'CODEPAGE=',0
			     C	;
			     C	;
			     C	;    - "..." must consist of upper case characters only because the parser
			     C	;      performs pattern matching after converting input to upper case (by
			     C	;      using the current country upper case table)
			     C	;
			     C	;
			     C	;    - One "..." can contain only one switch or keyword. If you need, for
			     C	;      example /A and /B, the format will be;
			     C	;
			     C	;			DB    2 	; number of following synonyms
			     C	;			DB    '/A',0
			     C	;			DB    '/B',0
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	
			     C	;**** Match_Flags
			     C	
 = 8000                      C	$P_Num_Val	   equ	8000h		;AN000; Numeric Value
 = 4000                      C	$P_SNum_Val	   equ	4000h		;AN000; Signed numeric value
 = 2000                      C	$P_Simple_S	   equ	2000h		;AN000; Simple string
 = 1000                      C	$P_Date_S	   equ	1000h		;AN000; Date string
 = 0800                      C	$P_Time_S	   equ	0800h		;AN000; Time string
 = 0400                      C	$P_Cmpx_S	   equ	0400h		;AN000; Complex string
 = 0200                      C	$P_File_Spc	   equ	0200h		;AN000; File Spec
 = 0100                      C	$P_Drv_Only	   equ	0100h		;AN000; Drive Only
 = 0080                      C	$P_Qu_String	   equ	0080h		;AN000; Quoted string
 = 0010                      C	$P_Ig_Colon	   equ	0010h		;AN000; Ignore colon at end in match
 = 0002                      C	$P_Repeat	   equ	0002h		;AN000; Repeat allowed
 = 0001                      C	$P_Optional	   equ	0001h		;AN000; Optional
			     C	
			     C	;**** Function flags
			     C	
 = 0001                      C	$P_CAP_File	   equ	0001h		;AN000; CAP result by file table
 = 0002                      C	$P_CAP_Char	   equ	0002h		;AN000; CAP result by character table
 = 0010                      C	$P_Rm_Colon	   equ	0010h		;AN000; Remove ":" at the end
 = 0020                      C	$P_colon_is_not_necessary equ 0020h	;AN000;(tm10) /+10 and /+:10
			     C	
			     C	;-------------------------------- Control block structure
			     C	$P_Control_Blk	   struc		;AN000;
 0000  0000                  C	$P_Match_Flag	   dw	0		;AN000; Controls type matched
 0002  0000                  C	$P_Function_Flag   dw	0		;AN000; Function should be taken
 0004  0000                  C	$P_Result_Buf	   dw	0		;AN000; Result buffer address
 0006  0000                  C	$P_Value_List	   dw	0		;AN000; Value list address
 0008  00                    C	$P_nid		   db	0		;AN000; # of keyword/SW synonyms
 0009  00                    C	$P_KeyorSW	   db	0		;AN000; keyword or sw
 000A                        C	$P_Control_Blk	   ends 		;AN000;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-7


			     C			   PAGE 		;AN000;
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	; << Value List Definition >>
			     C	;
			     C	;VALUES 	LABEL	BYTE
			     C	;		DB	nval			; NUMBER OF VALUE DEFINITIONS (0 - 3)
			     C	;	     Ú
			     C	;	     ³	DB	nrng			; NUMBER OF RANGES
			     C	;	     ³ ÚDB	ITEM_TAG		; RETURN VALUE IF RANGE MATCHED
			     C	;	     ³ ÀDD	X,Y			; RANGE OF VALUES
			     C	;	     ³	:
			     C	;	     ³	DB	nnval			; NUMBER OF CHOICES
			     C	;	     ³ ÚDB	ITEM_TAG		; RETURN VALUE IF NUMBER CHOICE MATCHED
			     C	;	     ³ ÀDD	VALUE			; SPECIFIC CHOICE IF NUMBER
			     C	;	     ³	:
			     C	;	     ³	DB	nstrval 		; NUMBER OF CHOICES
			     C	;	     ³ ÚDB	ITEM_TAG		; RETURN VALUE IF STRING CHOICE MATCHED
			     C	;	     ³ ÀDW	STRING			; SPECIFIC CHOICE IF STING
			     C	;	     À	:
			     C	;
			     C	;STRING 	DB	"...",0                 ; ASCIIZ STRING IMAGE
			     C	;
			     C	;Note:
			     C	;    - ITEM_TAG must not be 0FFH, which will be used in the result buffer
			     C	;      when no choice lists are provided.
			     C	;
			     C	;    - STRING must consist of upper case characters only because the parser
			     C	;      performs pattern matching after converting input to upper case (by
			     C	;      using the current country upper case table)
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	
 = 0000                      C	$P_nval_None	   equ	0		;AN000; no value list ID
 = 0001                      C	$P_nval_Range	   equ	1		;AN000; range list ID
 = 0002                      C	$P_nval_Value	   equ	2		;AN000; value list ID
 = 0003                      C	$P_nval_String	   equ	3		;AN000; string list ID
 = 0009                      C	$P_Len_Range	   equ	9		;AN000; Length of a range choice(two DD plus one DB)
 = 0005                      C	$P_Len_Value	   equ	5		;AN000; Length of a value choice(one DD plus one DB)
 = 0003                      C	$P_Len_String	   equ	3		;AN000; Length of a string choice(one DW plus one DB)
 = 0000                      C	$P_No_nrng	   equ	0		;AN000; (tm07) no nrng. nnval must not be 0.
			     C	
			     C	$P_Val_List	   struc		;AN000;
 0000  00                    C	$P_NumofList	   db	0		;AN000; number of following choice
 0001  0000                  C	$P_Val_XL	   dw	0		;AN000; lower word of value
 0003  0000                  C	$P_Val_XH	   dw	0		;AN000; higher word of value
 0005  0000                  C	$P_Val_YL	   dw	0		;AN000; lower word of another value
 0007  0000                  C	$P_Val_YH	   dw	0		;AN000; higher word of another value
 0009                        C	$P_Val_List	   ends 		;AN000;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-8


			     C			   PAGE 		;AN000;
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	; << Result Buffer Definition  >>
			     C	;
			     C	;RESULT 	LABEL	BYTE			; BELOW FILLED IN FOR DEFAULTS
			     C	;		DB	type			; TYPE RETURNED: 0=RESERVED,
			     C	;						;	1=NUMBER, 2=LIST INDEX,
			     C	;						;	3=STRING, 4=COMPLEX,
			     C	;						;	5=FILESPEC, 6=DRIVE
			     C	;						;	7=DATE, 8=TIME
			     C	;						;	9=QUOTED STRING
			     C	;		DB	ITEM_TAG		; MATCHED ITEM TAG
			     C	;
			     C	;		dw	synonym@		; es:@ points to found SYNONYM if provided.
			     C	;
			     C	;
			     C	;	    Ú	DD	n			; VALUE IF NUMBER
			     C	;	    ³ or
			     C	;	    ³	DW	i			; INDEX (OFFSET) INTO VALUE LIST
			     C	;	    ³					; (ES presents Segment address)
			     C	;	    ³ or
			     C	;	    ³	DD	STRING			; OFFSET OF STRING VALUE
			     C	;	    ³ or
			     C	;	    ³	DB	drv			; DRIVE NUMBER (1-A, 2-B,..., 26-Z)
			     C	;	    ³ or
			     C	;	    ³	DW	YEAR	   ;(1980-2099)  IN CASE OF DATE
			     C	;	    ³	DB	MONTH	   ;(1-12)	 Note: Range check is not performed.
			     C	;	    ³	DB	DATE	   ;(1-31)	       0 is filled when the corresponding field was 
				not specified.
			     C	;	    ³ or
			     C	;	    ³	DB	HOUR	   ;(0-23)	  IN CASE OF TIME
			     C	;	    ³	DB	MINUTES    ;(0-59)	  Note: Range check is not performed .
			     C	;	    ³	DB	SECONDS    ;(0-59)		0 is filled when the corresponding field was
				 not specified .
			     C	;	    ³	DB	HUNDREDTHS ;(0-99)
			     C	;	    À
			     C	;
			     C	;
			     C	;Note: ITEM_TAG is 0FFH when the caller does not specify the choice
			     C	;      list.
			     C	;
			     C	;      YEAR: If the input value for the year is less than 100, parser
			     C	;	     adds 1900 to it.  For example, when 87 is input to parser for
			     C	;	     the year value, he returns 1987.
			     C	;---------------------------------------------------------------------------------------------------
				------
			     C	
			     C	;-------------------------------- Result block structure
			     C	$P_Result_Blk	   struc		;AN000;
 0000  00                    C	$P_Type 	   db	0		;AN000; Type returned
 0001  00                    C	$P_Item_Tag	   db	0		;AN000; Matched item tag
 0002  0000                  C	$P_SYNONYM_Ptr	   dw	0		;AN000; pointer to Synonym list returned
 0004  00 00 00 00           C	$P_Picked_Val	   db	0,0,0,0 	;AN000; value
 0008                        C	$P_Result_Blk	   ends 		;AN000;
			     C	;--------------------------------
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-9


			     C	;**** values for the type field in the result block
			     C	
 = 0000                      C	$P_EOL		   equ	0		;AN000; End of line
 = 0001                      C	$P_Number	   equ	1		;AN000; Number
 = 0002                      C	$P_List_Idx	   equ	2		;AN000; List Index
 = 0003                      C	$P_String	   equ	3		;AN000; String
 = 0004                      C	$P_Complex	   equ	4		;AN000; Complex
 = 0005                      C	$P_File_Spec	   equ	5		;AN000; File Spec
 = 0006                      C	$P_Drive	   equ	6		;AN000; Drive
 = 0007                      C	$P_Date_F	   equ	7		;AN000; Date
 = 0008                      C	$P_Time_F	   equ	8		;AN000; Time
 = 0009                      C	$P_Quoted_String   equ	9		;AN000; Quoted String
			     C	
 = 00FF                      C	$P_No_Tag	   equ	0FFH		;AN000; No ITEM_TAG found
			     C	;**** Return code
			     C	;
			     C	; following return code will be returned in the AX register.
			     C	
 = 0000                      C	$P_No_Error	   equ	0		;AN000; No error
 = 0001                      C	$P_Too_Many	   equ	1		;AN000; Too many operands
 = 0002                      C	$P_Op_Missing	   equ	2		;AN000; Required operand missing
 = 0003                      C	$P_Not_In_SW	   equ	3		;AN000; Not in switch list provided
 = 0004                      C	$P_Not_In_Key	   equ	4		;AN000; Not in keyword list provided
 = 0006                      C	$P_Out_Of_Range    equ	6		;AN000; Out of range specified
 = 0007                      C	$P_Not_In_Val	   equ	7		;AN000; Not in value list provided
 = 0008                      C	$P_Not_In_Str	   equ	8		;AN000; Not in string list provided
 = 0009                      C	$P_Syntax	   equ	9		;AN000; Syntax error
 =-0001                      C	$P_RC_EOL	   equ	-1		;AN000; End of command line
			     C	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-10


			     C			   PAGE 		;AN000;
			     C	;********************** Local Data *************************************
 0000  0000                  C	$P_ORDINAL	   dw	0		;AN000; Operand ordinal save area
 0002  0000                  C	$P_RC		   dw	0		;AN000; Return code from parser
 0004  0000                  C	$P_SI_Save	   dw	0		;AN000; Pointer of command buffer
 0006  0000                  C	$P_DX		   dw	0		;AN000; Return result buffer address
 0008  00                    C	$P_Terminator	   db	0		;AN000; Terminator code (ASCII)
 0009  0000                  C	$P_DBCSEV_OFF	   dw	0		;AN000; Offset of DBCS EV
 000B  0000                  C	$P_DBCSEV_SEG	   dw	0		;AN000; Segment of DBCS EV
 000D  0000                  C	$P_Flags	   dw	0		;AN000; Parser internal flags
 = 000D                      C	$P_Flags1	   equ	byte ptr $P_Flags ;AN038; to reference first byte flags
 = 000E                      C	$P_Flags2	   equ	byte ptr $P_Flags+1 ;AN038; to reference second byte flags only
			     C	
			     C	;in second byte of $P_Flags, referenced as $P_Flags2:
 = 0001                      C	$P_equ		   equ	01h	      ;AN000; "=" packed in string buffet
 = 0002                      C	$P_Neg		   equ	02h	      ;AN000; Negative value
 = 0004                      C	$P_Time12	   equ	04h	      ;AN000; set when PM is specified
 = 0008                      C	$P_Key_Cmp	   equ	08h	      ;AN000; set when keyword compare
 = 0010                      C	$P_SW_Cmp	   equ	10h	      ;AN000; set when switch compare
 = 0020                      C	$P_Extra	   equ	20h	      ;AN000; set when extra delimiter found
 = 0040                      C	$P_SW		   equ	40h	      ;AN000; set when switch found (tm08)
 = 0080                      C	$P_Signed	   equ	80h	      ;AN000; signed numeric specified
			     C	
			     C	;in first byte of $P_Flags, referenced as $P_Flags1:
 = 0001                      C	$P_time12am	   equ	01h	      ;AN038; set when AM is specified on time
 = 0002                      C	$P_TIME_AGAIN	   EQU	02H	      ;AN039; SET WHEN READY TO RE-PARSE TIME
			     C	
 000F  0000                  C	$P_SaveSI_Cmpx	   dw	0		;AN000; save si for later use by complex
 0011  0000                  C	$P_KEYorSW_Ptr	   dw	0		;AN000; points next to "=" or ":" code
 0013  0000                  C	$P_Save_EOB	   dw	0		;AN000; save pointer to EOB
 0015  0000                  C	$P_Found_SYNONYM   dw	0		;AN000; es:@ points to found synonym
			     C	
 0017  0080[                 C	$P_STRING_BUF	   db	128 dup(0)	;AN000; Pick a operand from command line
	   00                C	
			 ]   C	
			     C	
 = 0097                      C	$P_STRING_BUF_END  equ	$		;AN000;
			     C	IF		   DateSw+TimeSw	;AN000;(Check if date or time format is supported)
			     C	;------------------------------
			     C	;
 0097  00                    C	$P_Got_Time	   db	0		;AN023; if 1, use Time delimiters
 = FFFF                      C	$P_NeedToBeRead    equ	0ffffh		;AN000;
			     C	
 0098  FFFF                  C	$P_COUNTRY_INFO    $P_CDI <$P_NeedToBeRead> ;AN000;
 009A  0001[                 C	
	   00                C	
	   00                C	
	   00                C	
	   00                C	
	   00                C	
			 ]   C	
 009F  0001[                 C	
	   00                C	
	   00                C	
			 ]   C	
 00A1  0001[                 C	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-11


	   00                C	
	   00                C	
			 ]   C	
 00A3  0001[                 C	
	   00                C	
	   00                C	
			 ]   C	
 00A5  0001[                 C	
	   00                C	
	   00                C	
			 ]   C	
 00A7  00                    C	
 00A8  00                    C	
 00A9  00                    C	
 00AA  0001[                 C	
	   0000              C	
	   0000              C	
			 ]   C	
 00AE  0001[                 C	
	   00                C	
	   00                C	
			 ]   C	
 00B0  0005[                 C	
	   0000              C	
			 ]   C	
			     C	
			     C	;
 00BA  0000                  C	$P_1st_Val	   dw	0		;AN000; used when process date or time
 00BC  0000                  C	$P_2nd_Val	   dw	0		;AN000; used when process date or time
 00BE  0000                  C	$P_3rd_Val	   dw	0		;AN000; used when process date or time
 00C0  0000                  C	$P_4th_Val	   dw	0		;AN000; used when process date or time
			     C	;------------------------------
			     C	ENDIF					;AN000;(of DateSW+TimeSW)
 00C2  FF                    C	$P_Char_CAP_Ptr    db	0ffh		;AN000; info id
 00C3  0000                  C			   dw	0		;AN000; offset	of char case map table
 00C5  0000                  C			   dw	0		;AN000; segment of char case map table
			     C	IF		   CAPSW		;AN000;(Check if uppercase conversion is supported)
 00C7  FF                    C	$P_File_CAP_Ptr    db	0ffh		;AN000; info id
 00C8  0000                  C			   dw	0		;AN000; offset	of file case map table
 00CA  0000                  C			   dw	0		;AN000; segment of file case map table
			     C	ENDIF					;AN000;(of CAPSW)
			     C	; (tm06) IF	   FileSW		;AN000;(Check if file spec is supported)
			     C	IF		   FileSW+DrvSW 	;AN000;(Check if file spec is supported)
 00CC  5B 5D 7C 3C 3E 2B     C	$P_FileSp_Char	   db	'[]|<>+=;"'     ;AN000; delimitter of file spec
       3D 3B 22              C	
 = 0009                      C	$P_FileSp_Len	   equ	$-$P_FileSp_Char ;AN000;
			     C	ENDIF					;AN000;(of FileSW)
			     C	; (tm05) IF	   QusSW		;AN000;(Check if quoted string is supported)
			     C	;(deleted ;AN025;) IF		      QusSW+CmpxSW	   ; (tm05) ;AN000;(Check if quoted string i
				s supported)
			     C	;(deleted ;AN025;) $P_SorD_Quote      db   0		   ;AN000; keep double or single quote
			     C	;(deleted ;AN025;) ENDIF				   ;AN000;(of QueSW)
			     C	IF		   KeySW		;AN029; if keywords supported
 00D5  0000                  C	$P_count_to_eol    dw	0		;AN029; count of chars not including EOL
			     C	;	REGISTER EQUATES - SPECIAL USAGE FOR REGISTERS
 =                           C	$P_REG_BH_CG_SW    EQU	BH		;AN029;0="NO CHANGES MADE", FF=CHANGES MADE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-12


 =                           C	$P_REG_BL_DQ_SW    EQU	BL		;AN029;0=NOT IN QUOTES,FF=IN QUOTES
			     C	
 = 0022                      C	$P_DOUBLE_QUOTE    EQU	""""            ;AN029;
 = 203D                      C	$P_BL_EQ	   EQU	" ="            ;AN029;
 = 3D20                      C	$P_EQ_BL	   EQU	"= "            ;AN029;
 = 093D                      C	$P_TB_EQ	   EQU	093DH		;AN029; ;"<TAB>="
 = 3D09                      C	$P_EQ_TB	   EQU	3D09H		;AN029; ;"=<TAB>"
			     C	ENDIF					;AN029; IF KeySW Supported
			     C	
			     C	; delimiter parsing
 = 0001                      C	$P_colon_period    equ	01		;AN032; check for colon & period
 = 0002                      C	$P_period_only	   equ	02		;AN032; check only for period
			     C	
			     C	;filespec error flag
 00D7  00                    C	$P_err_flag	   db	00		;AN033; flag set if filespec parsing error
			     C						;AN033;  was detected.
 = 0001                      C	$P_error_filespec  equ	01		;AN033; mask to set flag
			     C	;***********************************************************************
 00D8				_DATA	ends				;AN000;
				
 0000				_TEXT	segment byte public 'CODE'	;AN000;
				
					ASSUME	CS: PGROUP		;AN000;
					ASSUME	DS: DGROUP		;AN000;
				;-------------------------------------------------------------------	 ;AN000;
				.list									 ;AN000;
				;-------------------------------------------------------------------	 ;AN000;
				;									 ;AN000;
 09E0				_parse	proc	near							 ;AN000;
 09E0  55				push	bp			; save user's base pointer       ;AN000;
 09E1  8B EC				mov	bp,sp			; set bp to current sp		 ;AN000;
 09E3  57				push	di			; save some registers		 ;AN000;
 09E4  56				push	si							 ;AN000;
				;									 ;AN000;
				;	copy C inregs into proper registers				 ;AN000;
				;									 ;AN000;
 09E5  8B 7E 04				mov	di,[bp+4]		; fix di (arg 0)		 ;AN000;
				;									 ;AN000;
 09E8  8B 45 0A				mov	ax,[di+0ah]		; load di			 ;AN000;
 09EB  50				push	ax			; the di value from inregs is now on stack ;AN000;
				;									 ;AN000;
 09EC  8B 05				mov	ax,[di+00]		; get inregs.x.ax		 ;AN000;
 09EE  8B 5D 02				mov	bx,[di+02]		; get inregs.x.bx		 ;AN000;
 09F1  8B 4D 04				mov	cx,[di+04]		; get inregs.x.cx		 ;AN000;
 09F4  8B 55 06				mov	dx,[di+06]		; get inregs.x.dx		 ;AN000;
 09F7  8B 75 08				mov	si,[di+08]		; get inregs.x.si		 ;AN000;
 09FA  5F				pop	di			; get inregs.x.di from stack	 ;AN000;
				;									 ;AN000;
 09FB  55				push	bp			; save base pointer		 ;AN000;
				;									 ;AN000;
				;-------------------------------------------------------------------	 ;AN000;
 09FC  E8 0000 R			call	sysparse		; call the parser		 ;AN000;
				;-------------------------------------------------------------------	 ;AN000;
				;									 ;AN000;
 09FF  5D				pop	bp			; restore base pointer		 ;AN000;
 0A00  57				push	di			; the di value from call is now on stack ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Page     1-13


 0A01  8B 7E 06				mov	di,[bp+6]		; fix di (arg 1)		 ;AN000;
				;									 ;AN000;
 0A04  89 05				mov	[di+00],ax		; load outregs.x.ax		 ;AN000;
 0A06  89 5D 02				mov	[di+02],bx		; load outregs.x.bx		 ;AN000;
 0A09  89 4D 04				mov	[di+04],cx		; load outregs.x.cx		 ;AN000;
 0A0C  89 55 06				mov	[di+06],dx		; load outregs.x.dx		 ;AN000;
 0A0F  89 75 08				mov	[di+08],si		; load outregs.x.si		 ;AN000;
				;									 ;AN000;
 0A12  9F				lahf				; get flags into ax		 ;AN000;
 0A13  8A C4				mov	al,ah			; move into low byte		 ;AN000;
 0A15  89 45 0C				mov	[di+0ch],ax		; load outregs.x.cflag		 ;AN000;
				;									 ;AN000;
 0A18  58				pop	ax			; get di from stack		 ;AN000;
 0A19  89 45 0A				mov	[di+0ah],ax		; load outregs.x.di		 ;AN000;
				;									 ;AN000;
 0A1C  5E				pop	si			; restore registers		 ;AN000;
 0A1D  5F				pop	di							 ;AN000;
 0A1E  8B E5				mov	sp,bp			; restore sp			 ;AN000;
 0A20  5D				pop	bp			; restore user's bp              ;AN000;
 0A21  C3				ret								 ;AN000;
 0A22				_parse	endp								 ;AN000;
 0A22				_TEXT	ends				; end code segment		 ;AN000;
					end								 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-1


Structures and Records:

                N a m e                 Width   # fields
                                        Shift   Width   Mask    Initial

$P_CDI . . . . . . . . . . . . .  	0022	000C
  $P_CDI_DATEF . . . . . . . . .  	0000
  $P_CDI_MONEY . . . . . . . . .  	0002
  $P_CDI_1000  . . . . . . . . .  	0007
  $P_CDI_DEC . . . . . . . . . .  	0009
  $P_CDI_DATES . . . . . . . . .  	000B
  $P_CDI_TIMES . . . . . . . . .  	000D
  $P_CDI_TIMEF . . . . . . . . .  	0011
$P_CONTROL_BLK . . . . . . . . .  	000A	0006
  $P_MATCH_FLAG  . . . . . . . .  	0000
  $P_FUNCTION_FLAG . . . . . . .  	0002
  $P_RESULT_BUF  . . . . . . . .  	0004
  $P_VALUE_LIST  . . . . . . . .  	0006
  $P_NID . . . . . . . . . . . .  	0008
  $P_KEYORSW . . . . . . . . . .  	0009
$P_DOS_TBL . . . . . . . . . . .  	0005	0003
  $P_DOS_INFOID  . . . . . . . .  	0000
  $P_DOS_TBL_OFF . . . . . . . .  	0001
  $P_DOS_TBL_SEG . . . . . . . .  	0003
$P_PARMSX_BLK  . . . . . . . . .  	0004	0003
  $P_MINP  . . . . . . . . . . .  	0000
  $P_MAXP  . . . . . . . . . . .  	0001
  $P_1ST_CONTROL . . . . . . . .  	0002
$P_PARMS_BLK . . . . . . . . . .  	0004	0003
  $P_PARMSX_ADDRESS  . . . . . .  	0000
  $P_NUM_EXTRA . . . . . . . . .  	0002
  $P_LEN_EXTRA_DELIM . . . . . .  	0003
$P_RESULT_BLK  . . . . . . . . .  	0008	0004
  $P_TYPE  . . . . . . . . . . .  	0000
  $P_ITEM_TAG  . . . . . . . . .  	0001
  $P_SYNONYM_PTR . . . . . . . .  	0002
  $P_PICKED_VAL  . . . . . . . .  	0004
$P_VAL_LIST  . . . . . . . . . .  	0009	0005
  $P_NUMOFLIST . . . . . . . . .  	0000
  $P_VAL_XL  . . . . . . . . . .  	0001
  $P_VAL_XH  . . . . . . . . . .  	0003
  $P_VAL_YL  . . . . . . . . . .  	0005
  $P_VAL_YH  . . . . . . . . . .  	0007

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

DGROUP . . . . . . . . . . . . .  	GROUP
  _DATA  . . . . . . . . . . . .  	00D8	BYTE	PUBLIC	'DATA'
PGROUP . . . . . . . . . . . . .  	GROUP
  _TEXT  . . . . . . . . . . . .  	0A22	BYTE	PUBLIC	'CODE'
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-2


Symbols:            

                N a m e         	Type	 Value	 Attr

BASESW . . . . . . . . . . . . .  	NUMBER	0001	

CAPSW  . . . . . . . . . . . . .  	NUMBER	0001	
CMPXSW . . . . . . . . . . . . .  	NUMBER	0000	

DATESW . . . . . . . . . . . . .  	NUMBER	0001	
DRVSW  . . . . . . . . . . . . .  	NUMBER	0000	

FARSW  . . . . . . . . . . . . .  	NUMBER	0000	
FILESW . . . . . . . . . . . . .  	NUMBER	0001	

INCSW  . . . . . . . . . . . . .  	NUMBER	0000	

KEYSW  . . . . . . . . . . . . .  	NUMBER	0001	

LFEOLSW  . . . . . . . . . . . .  	NUMBER	0001	

NUMSW  . . . . . . . . . . . . .  	NUMBER	0001	

PSDATA_SEG . . . . . . . . . . .  	ALIAS	 DS		

QUSSW  . . . . . . . . . . . . .  	NUMBER	0001	

SWSW . . . . . . . . . . . . . .  	NUMBER	0001	
SYSPARSE . . . . . . . . . . . .  	N PROC	0000	_TEXT	Length = 019E

TIMESW . . . . . . . . . . . . .  	NUMBER	0000	

VAL1SW . . . . . . . . . . . . .  	NUMBER	0001	
VAL2SW . . . . . . . . . . . . .  	NUMBER	0001	
VAL3SW . . . . . . . . . . . . .  	NUMBER	0001	

$P_0099  . . . . . . . . . . . .  	N PROC	059F	_TEXT	Length = 000E
$P_0099ERR . . . . . . . . . . .  	L NEAR	05AB	_TEXT
$P_1ST_VAL . . . . . . . . . . .  	L WORD	00BA	_DATA
$P_2ND_VAL . . . . . . . . . . .  	L WORD	00BC	_DATA
$P_3RD_VAL . . . . . . . . . . .  	L WORD	00BE	_DATA
$P_4TH_VAL . . . . . . . . . . .  	L WORD	00C0	_DATA
$P_ASCII80 . . . . . . . . . . .  	NUMBER	0080	
$P_BL_EQ . . . . . . . . . . . .  	NUMBER	203D	
$P_BRIDGE  . . . . . . . . . . .  	L NEAR	0351	_TEXT
$P_CAPS_RET  . . . . . . . . . .  	L NEAR	0456	_TEXT
$P_CAP_CHAR  . . . . . . . . . .  	NUMBER	0002	
$P_CAP_FILE  . . . . . . . . . .  	NUMBER	0001	
$P_CHAR_CAP_PTR  . . . . . . . .  	L BYTE	00C2	_DATA
$P_CHECK_MATCH_FLAGS . . . . . .  	N PROC	0316	_TEXT	Length = 00B6
$P_CHECK_OVF . . . . . . . . . .  	N PROC	058E	_TEXT	Length = 0011
$P_CHKDFIN . . . . . . . . . . .  	L NEAR	094D	_TEXT
$P_CHK_DBCS  . . . . . . . . . .  	N PROC	098F	_TEXT	Length = 0051
$P_CHK_DELIM . . . . . . . . . .  	N PROC	0907	_TEXT	Length = 005C
$P_CHK_DELIM00 . . . . . . . . .  	L NEAR	091F	_TEXT
$P_CHK_DELIM01 . . . . . . . . .  	L NEAR	092F	_TEXT
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-3


$P_CHK_DELIM_EXIT  . . . . . . .  	L NEAR	094D	_TEXT
$P_CHK_DELIM_EXIT0 . . . . . . .  	L NEAR	0950	_TEXT
$P_CHK_DELIM_LOOP  . . . . . . .  	L NEAR	0943	_TEXT
$P_CHK_DELIM_NZ  . . . . . . . .  	L NEAR	094B	_TEXT
$P_CHK_EOL . . . . . . . . . . .  	N PROC	08D1	_TEXT	Length = 0036
$P_CHK_EOL_EXIT  . . . . . . . .  	L NEAR	0904	_TEXT
$P_CHK_EOL_LOOP  . . . . . . . .  	L NEAR	08FA	_TEXT
$P_CHK_EOL_NZ  . . . . . . . . .  	L NEAR	0902	_TEXT
$P_CHK_IF_DATA_REQUIRED  . . . .  	L NEAR	026B	_TEXT
$P_CHK_KEY_CONTROL . . . . . . .  	N PROC	01CD	_TEXT	Length = 003D
$P_CHK_KEY_ERR0  . . . . . . . .  	L NEAR	01F6	_TEXT
$P_CHK_KEY_ERR1  . . . . . . . .  	L NEAR	01F9	_TEXT
$P_CHK_KEY_ERREXIT . . . . . . .  	L NEAR	01FF	_TEXT
$P_CHK_KEY_EXIT  . . . . . . . .  	L NEAR	0209	_TEXT
$P_CHK_POS_CONTROL . . . . . . .  	N PROC	019E	_TEXT	Length = 002F
$P_CHK_SWITCH  . . . . . . . . .  	N PROC	0963	_TEXT	Length = 002C
$P_CHK_SW_CONTROL  . . . . . . .  	N PROC	023A	_TEXT	Length = 005A
$P_CHK_SW_ERR0 . . . . . . . . .  	L NEAR	0286	_TEXT
$P_CHK_SW_EXIT . . . . . . . . .  	L NEAR	0289	_TEXT
$P_CHK_SW_SINGLE_EXIT  . . . . .  	L NEAR	0293	_TEXT
$P_CMPX_S  . . . . . . . . . . .  	NUMBER	0400	
$P_COLON . . . . . . . . . . . .  	NUMBER	003A	
$P_COLON_IS_NOT_NECESSARY  . . .  	NUMBER	0020	
$P_COLON_PERIOD  . . . . . . . .  	NUMBER	0001	
$P_COMMA . . . . . . . . . . . .  	NUMBER	002C	
$P_COMPLEX . . . . . . . . . . .  	NUMBER	0004	
$P_COUNTRY_INFO  . . . . . . . .  	L 	0098	_DATA
$P_COUNT_TO_EOL  . . . . . . . .  	L WORD	00D5	_DATA
$P_COVF  . . . . . . . . . . . .  	L NEAR	0598	_TEXT
$P_COVF00  . . . . . . . . . . .  	L NEAR	059D	_TEXT
$P_CPC00 . . . . . . . . . . . .  	L NEAR	01AB	_TEXT
$P_CPC01 . . . . . . . . . . . .  	L NEAR	01C8	_TEXT
$P_CPC02 . . . . . . . . . . . .  	L NEAR	01BD	_TEXT
$P_CPC_EXIT  . . . . . . . . . .  	L NEAR	01CB	_TEXT
$P_CR  . . . . . . . . . . . . .  	NUMBER	000D	
$P_CSW00 . . . . . . . . . . . .  	L NEAR	0280	_TEXT
$P_DATEF00 . . . . . . . . . . .  	L NEAR	0719	_TEXT
$P_DATEF01 . . . . . . . . . . .  	L NEAR	0717	_TEXT
$P_DATEF02 . . . . . . . . . . .  	L NEAR	072F	_TEXT
$P_DATEF03 . . . . . . . . . . .  	L NEAR	0738	_TEXT
$P_DATEF_ERR0  . . . . . . . . .  	L NEAR	06E8	_TEXT
$P_DATEF_ERROR . . . . . . . . .  	L NEAR	0743	_TEXT
$P_DATEF_YMD . . . . . . . . . .  	L NEAR	06F1	_TEXT
$P_DATE_DMY  . . . . . . . . . .  	NUMBER	0001	
$P_DATE_F  . . . . . . . . . . .  	NUMBER	0007	
$P_DATE_FORMAT . . . . . . . . .  	N PROC	06B1	_TEXT	Length = 00A5
$P_DATE_FORMAT_EXIT  . . . . . .  	L NEAR	0752	_TEXT
$P_DATE_MDY  . . . . . . . . . .  	NUMBER	0000	
$P_DATE_S  . . . . . . . . . . .  	NUMBER	1000	
$P_DATE_YMD  . . . . . . . . . .  	NUMBER	0002	
$P_DBCS00  . . . . . . . . . . .  	L NEAR	09BE	_TEXT
$P_DBCS01  . . . . . . . . . . .  	L NEAR	09D7	_TEXT
$P_DBCS02  . . . . . . . . . . .  	L NEAR	09B6	_TEXT
$P_DBCSEV_OFF  . . . . . . . . .  	L WORD	0009	_DATA
$P_DBCSEV_SEG  . . . . . . . . .  	L WORD	000B	_DATA
$P_DBCS_EXIT . . . . . . . . . .  	L NEAR	09DC	_TEXT
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-4


$P_DBCS_LOOP . . . . . . . . . .  	L NEAR	09C6	_TEXT
$P_DBSP1 . . . . . . . . . . . .  	NUMBER	0081	
$P_DBSP2 . . . . . . . . . . . .  	NUMBER	0040	
$P_DCC00 . . . . . . . . . . . .  	L NEAR	042C	_TEXT
$P_DCC01 . . . . . . . . . . . .  	L NEAR	0447	_TEXT
$P_DCC_GO  . . . . . . . . . . .  	L NEAR	041C	_TEXT
$P_DCS00 . . . . . . . . . . . .  	L NEAR	0405	_TEXT
$P_DCS01 . . . . . . . . . . . .  	L NEAR	0406	_TEXT
$P_DCS_EXIT  . . . . . . . . . .  	L NEAR	0409	_TEXT
$P_DCS_LOOP  . . . . . . . . . .  	L NEAR	03F3	_TEXT
$P_DO1 . . . . . . . . . . . . .  	L NEAR	0030	_TEXT
$P_DO2 . . . . . . . . . . . . .  	L NEAR	0037	_TEXT
$P_DOSTBL_BL . . . . . . . . . .  	NUMBER	0005	
$P_DOSTBL_CHAR . . . . . . . . .  	NUMBER	0002	
$P_DOSTBL_DEF  . . . . . . . . .  	NUMBER	-0001	
$P_DOSTBL_FILE . . . . . . . . .  	NUMBER	0004	
$P_DOS_GETEV . . . . . . . . . .  	NUMBER	6300	
$P_DOS_GET_CDI . . . . . . . . .  	NUMBER	3800	
$P_DOS_GET_TBL . . . . . . . . .  	NUMBER	0065	
$P_DOUBLE_QUOTE  . . . . . . . .  	NUMBER	0022	
$P_DO_CAPS_CHAR  . . . . . . . .  	N PROC	040C	_TEXT	Length = 004B
$P_DO_CAPS_STRING  . . . . . . .  	N PROC	03EF	_TEXT	Length = 001D
$P_DO_DATE_DELIMS  . . . . . . .  	L NEAR	0791	_TEXT
$P_DO_TIME_DELIM1  . . . . . . .  	L NEAR	078B	_TEXT
$P_DQUOTE  . . . . . . . . . . .  	NUMBER	0022	
$P_DRIVE . . . . . . . . . . . .  	NUMBER	0006	
$P_DRV_ONLY  . . . . . . . . . .  	NUMBER	0100	
$P_DRV_ONLY_EXIT . . . . . . . .  	L NEAR	0898	_TEXT
$P_DX  . . . . . . . . . . . . .  	L WORD	0006	_DATA
$P_EOL . . . . . . . . . . . . .  	NUMBER	0000	
$P_EQU . . . . . . . . . . . . .  	NUMBER	0001	
$P_EQ_BL . . . . . . . . . . . .  	NUMBER	3D20	
$P_EQ_TB . . . . . . . . . . . .  	NUMBER	3D09	
$P_ERROR_FILESPEC  . . . . . . .  	NUMBER	0001	
$P_ERR_FLAG  . . . . . . . . . .  	L BYTE	00D7	_DATA
$P_EXIT_AT_EXTRA . . . . . . . .  	L NEAR	08CF	_TEXT
$P_EXTRA . . . . . . . . . . . .  	NUMBER	0020	
$P_FILEF00 . . . . . . . . . . .  	L NEAR	087C	_TEXT
$P_FILEF01 . . . . . . . . . . .  	L NEAR	0878	_TEXT
$P_FILEF02 . . . . . . . . . . .  	L NEAR	0889	_TEXT
$P_FILEF03 . . . . . . . . . . .  	L NEAR	0864	_TEXT
$P_FILEF_ERR . . . . . . . . . .  	L NEAR	0850	_TEXT
$P_FILEF_LOOP0 . . . . . . . . .  	L NEAR	0839	_TEXT
$P_FILEF_LOOP1 . . . . . . . . .  	L NEAR	0866	_TEXT
$P_FILEF_RLT . . . . . . . . . .  	L NEAR	0887	_TEXT
$P_FILESP_CHAR . . . . . . . . .  	L BYTE	00CC	_DATA
$P_FILESP_CHK  . . . . . . . . .  	N PROC	0899	_TEXT	Length = 0014
$P_FILESP_EXIT . . . . . . . . .  	L NEAR	08AA	_TEXT
$P_FILESP_LEN  . . . . . . . . .  	NUMBER	0009	
$P_FILESP_LOOP . . . . . . . . .  	L NEAR	08A2	_TEXT
$P_FILE_CAP_PTR  . . . . . . . .  	L BYTE	00C7	_DATA
$P_FILE_FORMAT . . . . . . . . .  	N PROC	0832	_TEXT	Length = 0067
$P_FILE_SPC  . . . . . . . . . .  	NUMBER	0200	
$P_FILE_SPEC . . . . . . . . . .  	NUMBER	0005	
$P_FILL_RESULT . . . . . . . . .  	N PROC	0294	_TEXT	Length = 0082
$P_FIN . . . . . . . . . . . . .  	L NEAR	0091	_TEXT
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-5


$P_FLAGS . . . . . . . . . . . .  	L WORD	000D	_DATA
$P_FLAGS1  . . . . . . . . . . .  	BYTE	000D	_DATA
$P_FLAGS2  . . . . . . . . . . .  	BYTE	000E	_DATA
$P_FOUND_SYNONYM . . . . . . . .  	L WORD	0015	_DATA
$P_GETNUM00  . . . . . . . . . .  	L NEAR	07B6	_TEXT
$P_GETNUM01  . . . . . . . . . .  	L NEAR	07BB	_TEXT
$P_GETNUM02  . . . . . . . . . .  	L NEAR	07BF	_TEXT
$P_GETNUM_EXIT . . . . . . . . .  	L NEAR	07C0	_TEXT
$P_GETNUM_LOOP . . . . . . . . .  	L NEAR	0775	_TEXT
$P_GET_DECNUM  . . . . . . . . .  	N PROC	0771	_TEXT	Length = 0054
$P_GOT_TIME  . . . . . . . . . .  	L BYTE	0097	_DATA
$P_IF3 . . . . . . . . . . . . .  	L NEAR	003E	_TEXT
$P_IF5 . . . . . . . . . . . . .  	L NEAR	0071	_TEXT
$P_IF6 . . . . . . . . . . . . .  	L NEAR	0071	_TEXT
$P_IG_COLON  . . . . . . . . . .  	NUMBER	0010	
$P_I_HAVE_DELIM  . . . . . . . .  	NUMBER	0001	
$P_I_HAVE_EOL  . . . . . . . . .  	NUMBER	0002	
$P_I_USE_DEFAULT . . . . . . . .  	NUMBER	0000	
$P_KEYORSW_EXIT  . . . . . . . .  	L NEAR	022B	_TEXT
$P_KEYORSW_FOUND . . . . . . . .  	L NEAR	0226	_TEXT
$P_KEYORSW_LOOP  . . . . . . . .  	L NEAR	0219	_TEXT
$P_KEYORSW_NOT_FOUND . . . . . .  	L NEAR	0223	_TEXT
$P_KEYORSW_PTR . . . . . . . . .  	L WORD	0011	_DATA
$P_KEYWORD . . . . . . . . . . .  	NUMBER	003D	
$P_KEY_CMP . . . . . . . . . . .  	NUMBER	0008	
$P_KEY_MANAGER . . . . . . . . .  	L NEAR	0153	_TEXT
$P_KEY_MGR_LOOP  . . . . . . . .  	L NEAR	0172	_TEXT
$P_KEY_NOT_FOUND . . . . . . . .  	L NEAR	0180	_TEXT
$P_LEN_PARMS . . . . . . . . . .  	NUMBER	0004	
$P_LEN_RANGE . . . . . . . . . .  	NUMBER	0009	
$P_LEN_STRING  . . . . . . . . .  	NUMBER	0003	
$P_LEN_VALUE . . . . . . . . . .  	NUMBER	0005	
$P_LF  . . . . . . . . . . . . .  	NUMBER	000A	
$P_LIST_IDX  . . . . . . . . . .  	NUMBER	0002	
$P_LL6 . . . . . . . . . . . . .  	L NEAR	0058	_TEXT
$P_LOC_EOL . . . . . . . . . . .  	L NEAR	0024	_TEXT
$P_LPAREN  . . . . . . . . . . .  	NUMBER	0028	
$P_MAKE_LOWER  . . . . . . . . .  	NUMBER	0020	
$P_MAKE_UPPER  . . . . . . . . .  	NUMBER	00DF	
$P_MAT . . . . . . . . . . . . .  	L NEAR	033A	_TEXT
$P_MATCH02 . . . . . . . . . . .  	L NEAR	034F	_TEXT
$P_MATCH03 . . . . . . . . . . .  	L NEAR	0354	_TEXT
$P_MATCH04 . . . . . . . . . . .  	L NEAR	0369	_TEXT
$P_MATCH05 . . . . . . . . . . .  	L NEAR	037E	_TEXT
$P_MATCH07 . . . . . . . . . . .  	L NEAR	0393	_TEXT
$P_MATCH08 . . . . . . . . . . .  	L NEAR	03A8	_TEXT
$P_MATCH09 . . . . . . . . . . .  	L NEAR	03B6	_TEXT
$P_MATCH2_EXIT . . . . . . . . .  	L NEAR	03CA	_TEXT
$P_MATCH_EXIT  . . . . . . . . .  	L NEAR	03B6	_TEXT
$P_MBP_EXIT  . . . . . . . . . .  	L NEAR	0238	_TEXT
$P_MBP_LOOP  . . . . . . . . . .  	L NEAR	022E	_TEXT
$P_MINUS . . . . . . . . . . . .  	NUMBER	002D	
$P_MOVEBP_NUL  . . . . . . . . .  	N PROC	022E	_TEXT	Length = 000C
$P_NEEDTOBEREAD  . . . . . . . .  	NUMBER	FFFF	
$P_NEG . . . . . . . . . . . . .  	NUMBER	0002	
$P_NEITHER_DELIMS  . . . . . . .  	L NEAR	079D	_TEXT
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-6


$P_NON_DBCS  . . . . . . . . . .  	L NEAR	09DB	_TEXT
$P_NOT_APPLICABLE  . . . . . . .  	L NEAR	0685	_TEXT
$P_NOT_IN_KEY  . . . . . . . . .  	NUMBER	0004	
$P_NOT_IN_STR  . . . . . . . . .  	NUMBER	0008	
$P_NOT_IN_SW . . . . . . . . . .  	NUMBER	0003	
$P_NOT_IN_VAL  . . . . . . . . .  	NUMBER	0007	
$P_NO_ERROR  . . . . . . . . . .  	NUMBER	0000	
$P_NO_NRNG . . . . . . . . . . .  	NUMBER	0000	
$P_NO_SET_EXTRA  . . . . . . . .  	L NEAR	095F	_TEXT
$P_NO_TAG  . . . . . . . . . . .  	NUMBER	00FF	
$P_NULL  . . . . . . . . . . . .  	NUMBER	0000	
$P_NUMBER  . . . . . . . . . . .  	NUMBER	0001	
$P_NUM_VAL . . . . . . . . . . .  	NUMBER	8000	
$P_NVAL_NONE . . . . . . . . . .  	NUMBER	0000	
$P_NVAL_RANGE  . . . . . . . . .  	NUMBER	0001	
$P_NVAL_STRING . . . . . . . . .  	NUMBER	0003	
$P_NVAL_VALUE  . . . . . . . . .  	NUMBER	0002	
$P_OPTIONAL  . . . . . . . . . .  	NUMBER	0001	
$P_OP_MISSING  . . . . . . . . .  	NUMBER	0002	
$P_ORDINAL . . . . . . . . . . .  	L WORD	0000	_DATA
$P_OUT_OF_RANGE  . . . . . . . .  	NUMBER	0006	
$P_PACK_END  . . . . . . . . . .  	L NEAR	00E5	_TEXT
$P_PACK_END_BACKUP_SI  . . . . .  	L NEAR	00C3	_TEXT
$P_PACK_END_BY_EOL . . . . . . .  	L NEAR	00E4	_TEXT
$P_PACK_LOOP . . . . . . . . . .  	L NEAR	00A7	_TEXT
$P_PERIOD  . . . . . . . . . . .  	NUMBER	002E	
$P_PERIOD_ONLY . . . . . . . . .  	NUMBER	0002	
$P_PL00  . . . . . . . . . . . .  	L NEAR	00D8	_TEXT
$P_PL01  . . . . . . . . . . . .  	L NEAR	00CD	_TEXT
$P_PLUS  . . . . . . . . . . . .  	NUMBER	002B	
$P_POSITIONAL_MANAGER  . . . . .  	L NEAR	0103	_TEXT
$P_QUOTED_FORMAT . . . . . . . .  	N PROC	07C5	_TEXT	Length = 003B
$P_QUOTED_STR  . . . . . . . . .  	N PROC	0800	_TEXT	Length = 0032
$P_QUOTED_STRING . . . . . . . .  	NUMBER	0009	
$P_QUOTED_STR_EXIT . . . . . . .  	L NEAR	0830	_TEXT
$P_QUS00 . . . . . . . . . . . .  	L NEAR	0818	_TEXT
$P_QUS01 . . . . . . . . . . . .  	L NEAR	0823	_TEXT
$P_QUS02 . . . . . . . . . . . .  	L NEAR	082C	_TEXT
$P_QUSTR_ERR0  . . . . . . . . .  	L NEAR	0829	_TEXT
$P_QUS_ERR . . . . . . . . . . .  	L NEAR	07EF	_TEXT
$P_QUS_ERR0  . . . . . . . . . .  	L NEAR	07E8	_TEXT
$P_QUS_EXIT  . . . . . . . . . .  	L NEAR	07F5	_TEXT
$P_QUS_LOOP  . . . . . . . . . .  	L NEAR	0801	_TEXT
$P_QU_STRING . . . . . . . . . .  	NUMBER	0080	
$P_RC  . . . . . . . . . . . . .  	L WORD	0002	_DATA
$P_RCOL00  . . . . . . . . . . .  	L NEAR	03E3	_TEXT
$P_RCOL01  . . . . . . . . . . .  	L NEAR	03E9	_TEXT
$P_RCOL_EXIT . . . . . . . . . .  	L NEAR	03EC	_TEXT
$P_RCOL_LOOP . . . . . . . . . .  	L NEAR	03CE	_TEXT
$P_RC_EOL  . . . . . . . . . . .  	NUMBER	-0001	
$P_READ_CDI  . . . . . . . . . .  	L NEAR	0761	_TEXT
$P_REG_BH_CG_SW  . . . . . . . .  	ALIAS	 BH		
$P_REG_BL_DQ_SW  . . . . . . . .  	ALIAS	 BL		
$P_REMOVE_COLON  . . . . . . . .  	N PROC	03CC	_TEXT	Length = 0023
$P_REPEAT  . . . . . . . . . . .  	NUMBER	0002	
$P_RETURN_TO_CALLER  . . . . . .  	L NEAR	0186	_TEXT
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-7


$P_RETURN_TO_CALLER0 . . . . . .  	L NEAR	0186	_TEXT
$P_RLT00 . . . . . . . . . . . .  	L NEAR	02BB	_TEXT
$P_RLT01 . . . . . . . . . . . .  	L NEAR	02C5	_TEXT
$P_RLT02 . . . . . . . . . . . .  	L NEAR	02B1	_TEXT
$P_RLT03 . . . . . . . . . . . .  	L NEAR	02D7	_TEXT
$P_RLT04 . . . . . . . . . . . .  	L NEAR	02AD	_TEXT
$P_RLT05 . . . . . . . . . . . .  	L NEAR	02E9	_TEXT
$P_RLT_CAP00 . . . . . . . . . .  	L NEAR	02FD	_TEXT
$P_RLT_CAP01 . . . . . . . . . .  	L NEAR	0309	_TEXT
$P_RLT_CAP02 . . . . . . . . . .  	L NEAR	0306	_TEXT
$P_RLT_EXIT  . . . . . . . . . .  	L NEAR	0314	_TEXT
$P_RM_COLON  . . . . . . . . . .  	NUMBER	0010	
$P_RPAREN  . . . . . . . . . . .  	NUMBER	0029	
$P_SAVESI_CMPX . . . . . . . . .  	L WORD	000F	_DATA
$P_SAVE_EOB  . . . . . . . . . .  	L WORD	0013	_DATA
$P_SCOM00  . . . . . . . . . . .  	L NEAR	065B	_TEXT
$P_SCOM01  . . . . . . . . . . .  	L NEAR	066D	_TEXT
$P_SCOM02  . . . . . . . . . . .  	L NEAR	0699	_TEXT
$P_SCOM03  . . . . . . . . . . .  	L NEAR	064D	_TEXT
$P_SCOM04  . . . . . . . . . . .  	L NEAR	0638	_TEXT
$P_SCOM05  . . . . . . . . . . .  	L NEAR	064A	_TEXT
$P_SCOM_DIFFER . . . . . . . . .  	L NEAR	06A4	_TEXT
$P_SCOM_DIFFER0  . . . . . . . .  	L NEAR	066F	_TEXT
$P_SCOM_EXIT . . . . . . . . . .  	L NEAR	06AC	_TEXT
$P_SCOM_LOOP . . . . . . . . . .  	L NEAR	061A	_TEXT
$P_SCOM_SAME . . . . . . . . . .  	L NEAR	06A7	_TEXT
$P_SEARCH_KEYORSW  . . . . . . .  	N PROC	020A	_TEXT	Length = 0024
$P_SET_CDI . . . . . . . . . . .  	N PROC	0756	_TEXT	Length = 001B
$P_SET_CDI_EXIT  . . . . . . . .  	L NEAR	0770	_TEXT
$P_SIGNED  . . . . . . . . . . .  	NUMBER	0080	
$P_SIM00 . . . . . . . . . . . .  	L NEAR	05C0	_TEXT
$P_SIM01 . . . . . . . . . . . .  	L NEAR	0602	_TEXT
$P_SIMPLE_S  . . . . . . . . . .  	NUMBER	2000	
$P_SIMPLE_STRING . . . . . . . .  	N PROC	05AD	_TEXT	Length = 0067
$P_SIM_EXIT  . . . . . . . . . .  	L NEAR	060A	_TEXT
$P_SIM_EXIT0 . . . . . . . . . .  	L NEAR	060C	_TEXT
$P_SIM_FOUND . . . . . . . . . .  	L NEAR	05F7	_TEXT
$P_SIM_LOOP  . . . . . . . . . .  	L NEAR	05DE	_TEXT
$P_SINGLE_EXIT . . . . . . . . .  	L NEAR	019C	_TEXT
$P_SI_SAVE . . . . . . . . . . .  	L WORD	0004	_DATA
$P_SKIP_DELIM  . . . . . . . . .  	N PROC	08AD	_TEXT	Length = 0024
$P_SKIP_DELIM_CY . . . . . . . .  	L NEAR	08C9	_TEXT
$P_SKIP_DELIM_EXIT . . . . . . .  	L NEAR	08CD	_TEXT
$P_SKIP_DELIM_LOOP . . . . . . .  	L NEAR	08AD	_TEXT
$P_SKIP_DELIM_NCY  . . . . . . .  	L NEAR	08CC	_TEXT
$P_SLASH . . . . . . . . . . . .  	NUMBER	002F	
$P_SNUM_VAL  . . . . . . . . . .  	NUMBER	4000	
$P_SPACE . . . . . . . . . . . .  	NUMBER	0020	
$P_START . . . . . . . . . . . .  	L NEAR	0095	_TEXT
$P_STRING  . . . . . . . . . . .  	NUMBER	0003	
$P_STRING_BUF  . . . . . . . . .  	L BYTE	0017	_DATA	Length = 0080
$P_STRING_BUF_END  . . . . . . .  	NEAR	0097	_DATA
$P_STRING_COMP . . . . . . . . .  	N PROC	0614	_TEXT	Length = 009D
$P_STRUC_L1  . . . . . . . . . .  	L NEAR	098E	_TEXT
$P_STRUC_L12 . . . . . . . . . .  	L NEAR	098D	_TEXT
$P_STRUC_L2  . . . . . . . . . .  	L NEAR	0984	_TEXT
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11
C	to PARSER interface					 ;AN000;                          Symbols-8


$P_STRUC_L5  . . . . . . . . . .  	L NEAR	0981	_TEXT
$P_STRUC_L7  . . . . . . . . . .  	L NEAR	097E	_TEXT
$P_SVAL00  . . . . . . . . . . .  	L NEAR	0471	_TEXT
$P_SVAL01  . . . . . . . . . . .  	L NEAR	0472	_TEXT
$P_SVALUE  . . . . . . . . . . .  	N PROC	0457	_TEXT	Length = 0020
$P_SVAL_IN . . . . . . . . . . .  	L NEAR	0528	_TEXT
$P_SW  . . . . . . . . . . . . .  	NUMBER	0040	
$P_SWITCH  . . . . . . . . . . .  	NUMBER	002F	
$P_SW_CMP  . . . . . . . . . . .  	NUMBER	0010	
$P_SW_MANAGER  . . . . . . . . .  	L NEAR	0128	_TEXT
$P_SW_MGR_LOOP . . . . . . . . .  	L NEAR	013D	_TEXT
$P_SW_NOT_FOUND  . . . . . . . .  	L NEAR	014B	_TEXT
$P_SYNTAX  . . . . . . . . . . .  	NUMBER	0009	
$P_TAB . . . . . . . . . . . . .  	NUMBER	0009	
$P_TB_EQ . . . . . . . . . . . .  	NUMBER	093D	
$P_TERMINATOR  . . . . . . . . .  	L BYTE	0008	_DATA
$P_TIME12  . . . . . . . . . . .  	NUMBER	0004	
$P_TIME12AM  . . . . . . . . . .  	NUMBER	0001	
$P_TIME_AGAIN  . . . . . . . . .  	NUMBER	0002	
$P_TIME_F  . . . . . . . . . . .  	NUMBER	0008	
$P_TIME_S  . . . . . . . . . . .  	NUMBER	0800	
$P_TOO_MANY  . . . . . . . . . .  	NUMBER	0001	
$P_TOO_MANY_ERROR  . . . . . . .  	L NEAR	0120	_TEXT
$P_VAL02_LOOP  . . . . . . . . .  	L NEAR	04F5	_TEXT
$P_VAL02_NEXT  . . . . . . . . .  	L NEAR	0538	_TEXT
$P_VAL02_SIGN  . . . . . . . . .  	L NEAR	051A	_TEXT
$P_VAL03_LOOP  . . . . . . . . .  	L NEAR	055D	_TEXT
$P_VAL03_NEXT  . . . . . . . . .  	L NEAR	0569	_TEXT
$P_VALUE . . . . . . . . . . . .  	N PROC	0477	_TEXT	Length = 0117
$P_VALUE00 . . . . . . . . . . .  	L NEAR	04C8	_TEXT
$P_VALUE01 . . . . . . . . . . .  	L NEAR	04DA	_TEXT
$P_VALUE02 . . . . . . . . . . .  	L NEAR	04EC	_TEXT
$P_VALUE03 . . . . . . . . . . .  	L NEAR	0552	_TEXT
$P_VALUE04 . . . . . . . . . . .  	L NEAR	057C	_TEXT
$P_VALUE_ERR . . . . . . . . . .  	L NEAR	057C	_TEXT
$P_VALUE_ERR0  . . . . . . . . .  	L NEAR	04C4	_TEXT
$P_VALUE_EXIT  . . . . . . . . .  	L NEAR	0586	_TEXT
$P_VALUE_LOOP  . . . . . . . . .  	L NEAR	0480	_TEXT
$P_VAL_FOUND . . . . . . . . . .  	L NEAR	054B	_TEXT
$P_VAL_IN  . . . . . . . . . . .  	L NEAR	050A	_TEXT
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  _parse		
@VERSION . . . . . . . . . . . .  	TEXT  510		
_parse . . . . . . . . . . . . .  	N PROC	09E0	_TEXT	Global	Length = 0042

Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:11

C	to PARSER interface					 ;AN000;                          Symbols-9






   3584 Source  Lines
   3584 Total   Lines
    409 Symbols

  46334 + 247800 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
