]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/CMD/IFSFUNC/IFSPARSE.INC

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / CMD / IFSFUNC / IFSPARSE.INC
1 ;****************************************************************************** ;AN000;
2 ; IFSFUNC Parse Symbol File ;AN000;
3 ; ;AN000;
4 ; Parsing: NAMES = n ;;;alias[n | (n {m})] ;AN000;
5 ; ;AN000;
6 ; Modification history: ;AN000;
7 ; Created: May 30 1987 ;AN000;
8 ; ;AN000;
9 ; LOD - 35 ;AN000;
10 ; ;AN000;
11 ;****************************************************************************** ;AN000;
12 ;AN000;
13 IFSF_PARMS LABEL WORD ; IFSFUNC parms input block ;AN000;
14 DW IFSF_PARMSX ; offset of ifsfunc parms extension block ;AN000;
15 DB 0 ; No extra delimeters or eol chars ;AN000;
16 ;AN000;
17 IFSF_PARMSX LABEL BYTE ; IFSFUNC parm extension block ;AN000;
18 DB 0,0,0 ; 0 positionals, 0 switches ;AN000;
19 DB 1 ; 1 keyword (NAMES=) ;AN000;
20 DW IFSF_K1 ;AN000;
21 ;AN000;
22 IFSF_K1 LABEL WORD ; IFSFUNC 1 keyword ;AN000;
23 DW 8001h ; Numeric/optional(NAMES= ok) ;AN000;
24 DW 0 ; no function ;AN000;
25 DW IFSF_RESULT ; Result buffer ;AN000;
26 DW IFSF_K1_VAL ; value list ;AN000;
27 DB 1 ; 1 keyword ;AN000;
28 DB "NAMES=",0 ;AN000;
29 ;AN000;
30 IFSF_K1_VAL LABEL BYTE ; value definition ;AN000;
31 DB 1 ; # value defns: get one: n or (n,m) ;AN000;
32 DB 1 ; # ranges ;AN000;
33 DB "N" ; value to return if n in range ;AN000;
34 DD 0,255 ; range ;AN000;
35 ;AN000;
36 ;AN000;
37 ;;;alias Complex control blocks ;AN000;
38 ; ;AN000;
39 ; IFSF_COMPLEX_PARMS LABEL WORD ;AN000;
40 ; DW IFSF_COMPLEX_PARMSX ;AN000;
41 ; DB 0 ; No extra delimeters or eol chars ;AN000;
42 ; ;AN000;
43 ; IFSF_COMPLEX_PARMSX LABEL BYTE ; ;AN000;
44 ; DB 1,2 ; Min 1, Max 2 positionals ;AN000;
45 ; DW IFSF_COMPLEX_POS1 ;AN000;
46 ; DW IFSF_COMPLEX_POS2 ;AN000;
47 ; DB 0,0 ; 0 switches, 0 keywords ;AN000;
48 ; ;AN000;
49 ; IFSF_COMPLEX_POS1 LABEL WORD ; ;AN000;
50 ; DW 8001h ; N - optional ;AN000;
51 ; DW 0 ; no function ;AN000;
52 ; DW IFSF_RESULT ; Result buffer ;AN000;
53 ; DW IFSF_POS_VAL ; value list ;AN000;
54 ; DB 0 ; no switches/keywords ;AN000;
55 ; ;AN000;
56 ; IFSF_COMPLEX_POS2 LABEL WORD ; ;AN000;
57 ; DW 8001H ; Numeric value, optional ;AN000;
58 ; DW 0 ; no function ;AN000;
59 ; DW IFSF_RESULT ; Result value buffer ;AN000;
60 ; DW IFSF_POS_VAL ; value list ;AN000;
61 ;;;alias DB 0 ; no switches/keywords ;AN000;
62 ; ;AN000;
63 ;FSF_POS_VAL LABEL BYTE ; value definition ;AN000;
64 ; DB 2 ; N and M ;AN000;
65 ; DB 2 ; 2 ranges ;AN000;
66 ; DB "N" ; item tag for N ;AN000;
67 ; DD 0,255 ; range of N ;AN000;
68 ; DB "M" ; item tag for M ;AN000;
69 ;;;aliasDD 0,8160 ; range of M ;AN000;
70 ;AN000;
71 IFSF_RESULT LABEL BYTE ;AN000;
72 DB ? ; type - 1=number, 4=complex ;AN000;
73 IFSF_TAG DB ? ; item tag returned: N,M or FF ;AN000;
74 DW ? ;AN000;
75 IFSF_NM DB ? ; actual n or m value ;AN000;
76 DB ? ;AN000;
77 DB ? ;AN000;
78 DB ? ;AN000;
79 ;AN000;
80 ;AN000;
81 ; parser assemble switches ;AN000;
82 DateSW equ 0 ;AN000;
83 TimeSW equ 0 ;AN000;
84 FileSW equ 0 ;AN000;
85 CAPSW equ 0 ;AN000;
86 DrvSW equ 0 ;AN000;
87 QusSW equ 0 ;AN000;
88 SwSW equ 0 ;AN000;
89 Val3SW equ 0 ;AN000;
90 ;AN000;
91 ;AN000;
92 include PARSE.ASM ;together with PSDATA.INC ;AN000;