;****************************************************************************** ;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;