From 2d04cacc5322951f187bb17e017c12920ac8ebe2 Mon Sep 17 00:00:00 2001 From: Mark Zbikowski Date: Thu, 25 Apr 2024 21:24:10 +0100 Subject: MZ is back! --- v4.0/src/CMD/IFSFUNC/IFSPARSE.INC | 92 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 v4.0/src/CMD/IFSFUNC/IFSPARSE.INC (limited to 'v4.0/src/CMD/IFSFUNC/IFSPARSE.INC') diff --git a/v4.0/src/CMD/IFSFUNC/IFSPARSE.INC b/v4.0/src/CMD/IFSFUNC/IFSPARSE.INC new file mode 100644 index 0000000..d986ca9 --- /dev/null +++ b/v4.0/src/CMD/IFSFUNC/IFSPARSE.INC @@ -0,0 +1,92 @@ +;****************************************************************************** ;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; -- cgit v1.2.3