;****************************************************************************** 	 ;AN000;
;   IFSFUNC Parse Symbol File								 ;AN000;
;											 ;AN000;
;   Parsing: NAMES = n		     ;;;alias[n | (n {m})]				 ;AN000;
;											 ;AN000;
;   Modification history:								 ;AN000;
;	Created: May 30 1987								 ;AN000;
;											 ;AN000;
;   LOD - 35										 ;AN000;
;											 ;AN000;
;****************************************************************************** 	 ;AN000;
											 ;AN000;
IFSF_PARMS	LABEL	WORD	; IFSFUNC parms input block				 ;AN000;
	DW	IFSF_PARMSX	; offset of ifsfunc parms extension block		 ;AN000;
	DB	0		; No extra delimeters or eol chars			 ;AN000;
											 ;AN000;
IFSF_PARMSX	LABEL	BYTE	; IFSFUNC parm extension block				 ;AN000;
	DB	0,0,0		; 0 positionals, 0 switches				 ;AN000;
	DB	1		; 1 keyword (NAMES=)					 ;AN000;
	DW	IFSF_K1 								 ;AN000;
											 ;AN000;
IFSF_K1 	LABEL	WORD	; IFSFUNC 1 keyword					 ;AN000;
	DW	8001h		; Numeric/optional(NAMES=   ok) 			 ;AN000;
	DW	0		; no function						 ;AN000;
	DW	IFSF_RESULT	; Result buffer 					 ;AN000;
	DW	IFSF_K1_VAL	; value list						 ;AN000;
	DB	1		; 1 keyword						 ;AN000;
	DB	"NAMES=",0                                                               ;AN000;
											 ;AN000;
IFSF_K1_VAL	LABEL	BYTE	; value definition					 ;AN000;
	DB	1		; # value defns: get one: n or (n,m)			 ;AN000;
	DB	1		; # ranges						 ;AN000;
	DB	"N"             ; value to return if n in range                          ;AN000;
	DD	0,255		; range 						 ;AN000;
											 ;AN000;
											 ;AN000;
;;;alias Complex control blocks 							 ;AN000;
;											 ;AN000;
; IFSF_COMPLEX_PARMS  LABEL WORD							 ;AN000;
;	  DW	  IFSF_COMPLEX_PARMSX							 ;AN000;
;	  DB	  0		  ; No extra delimeters or eol chars			 ;AN000;
;											 ;AN000;
; IFSF_COMPLEX_PARMSX LABEL BYTE  ;							 ;AN000;
;	  DB	  1,2		  ; Min 1, Max 2 positionals				 ;AN000;
;	  DW	  IFSF_COMPLEX_POS1							 ;AN000;
;	  DW	  IFSF_COMPLEX_POS2							 ;AN000;
;	  DB	  0,0		  ; 0 switches, 0 keywords				 ;AN000;
;											 ;AN000;
; IFSF_COMPLEX_POS1 LABEL  WORD   ;							 ;AN000;
;	  DW	  8001h 	  ; N - optional					 ;AN000;
;	  DW	  0		  ; no function 					 ;AN000;
;	  DW	  IFSF_RESULT	  ; Result buffer					 ;AN000;
;	  DW	  IFSF_POS_VAL	  ; value list						 ;AN000;
;	  DB	  0		  ; no switches/keywords				 ;AN000;
;											 ;AN000;
; IFSF_COMPLEX_POS2 LABEL  WORD   ;							 ;AN000;
;	  DW	  8001H 	  ; Numeric value, optional				 ;AN000;
;	  DW	  0		  ; no function 					 ;AN000;
;	  DW	  IFSF_RESULT	  ; Result value buffer 				 ;AN000;
;	  DW	  IFSF_POS_VAL	  ; value list						 ;AN000;
;;;alias  DB	  0		  ; no switches/keywords				 ;AN000;
;											 ;AN000;
;FSF_POS_VAL	LABEL	BYTE	; value definition					 ;AN000;
;	DB	2		; N and M						 ;AN000;
;	DB	2		; 2 ranges						 ;AN000;
;	DB	"N"             ; item tag for N                                         ;AN000;
;	DD	0,255		; range of N						 ;AN000;
;	DB	"M"             ; item tag for M                                         ;AN000;
;;;aliasDD	0,8160		; range of M						 ;AN000;
											 ;AN000;
IFSF_RESULT	LABEL	BYTE								 ;AN000;
	DB	?		; type - 1=number, 4=complex				 ;AN000;
IFSF_TAG DB	?		; item tag returned: N,M or FF				 ;AN000;
	DW	?									 ;AN000;
IFSF_NM DB	?		; actual n or m value					 ;AN000;
	DB	?									 ;AN000;
	DB	?									 ;AN000;
	DB	?									 ;AN000;
											 ;AN000;
											 ;AN000;
; parser assemble switches								 ;AN000;
DateSW	equ	0									 ;AN000;
TimeSW	equ	0									 ;AN000;
FileSW	equ	0									 ;AN000;
CAPSW	equ	0									 ;AN000;
DrvSW	equ	0									 ;AN000;
QusSW	equ	0									 ;AN000;
SwSW	equ	0									 ;AN000;
Val3SW	equ	0									 ;AN000;
											 ;AN000;
											 ;AN000;
	include PARSE.ASM			;together with PSDATA.INC		 ;AN000;
