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

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / CMD / APPEND / APPENDP.INC
1
2 INCSW EQU 0 ;INCLUDE PSDATA.INC ;AN000;
3 FARSW EQU 1 ;CALL THE PARSER BY NEAR CALL
4 DATESW EQU 0 ;SUPPRESS DATE CHECKING ;AN000;
5 TIMESW EQU 0 ;SUPPRESS TIME CHECKING ;AN000;
6 FILESW EQU 0 ;SUPPRESS CHECKING FILE SPECIFICATION ;AN000;
7 CAPSW EQU 0 ;SUPPRESS FILE TABLE CAPS ;AN000;
8 CMPXSW EQU 1 ;SUPPRESS CHECKING COMPLEX LIST
9 DRVSW EQU 1 ;SUPPRESS SUPPORT OF DRIVE ONLY FORMAT
10 QUSSW EQU 0 ;SUPPRESS SUPPORT OF QUOTED STRING FORMAT ;AN000;
11 NUMSW EQU 1 ;SUPPRESS CHECKING NUMERIC VALUE
12 KEYSW EQU 0 ;SUPPRESS KEYWORD SUPPORT ;AN000;
13 SWSW EQU 1 ;DO SUPPORT SWITCHES ;AN000;
14 VAL1SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 1 ;AN000;
15 VAL2SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 2 ;AN000;
16 VAL3SW EQU 1 ;DO SUPPORT VALUE DEFINITION 3
17
18 include psdata.inc
19 ;***********************************************************************
20
21 ;-------------------------------------------------------------------
22 ;
23 ; parser stuff for APPEND
24 ;
25 ;-------------------------------------------------------------------
26
27
28
29 p_block1 $P_PARMS_Blk <offset px_block1, 0, 0> ; parm block
30 p_block2 $P_PARMS_Blk <offset px_block2, 0, 0> ; parm block
31
32 ;------------------------
33 ; extended parameter block for APPEND first load
34
35 px_block1:
36 db 0 ; min number positional operands
37 db 0 ; max number positional operands
38 ; dw 0 ; offset into control block for positionals
39
40 db 3 ; APPEND has two switches /E, /X, /PATH
41 dw offset e_switch ; control block for /E switch
42 dw offset x_switch ; control block for /X switch
43 dw offset path_switch ; control block for /PATH switch
44
45 db 0 ; max number of keywords
46 dw 0 ; offset of keyword control block
47
48 ;------------------------
49 ; extended parameter block for 2nd, 3rd, ... APPEND invocations
50
51 px_block2:
52 db 0 ; min number positional operands
53 db 1 ; max number positional operands
54 dw offset dirs_control ; pointer to dirs control block
55
56 ; db 2 ; APPEND after first load has two switches /X, /PATH
57 db 3 ; APPEND has two switches /E, /X, /PATH
58 dw offset e_switch ; control block for /E switch
59 dw offset x_switch ; control block for /X switch
60 dw offset path_switch ; control block for /PATH switch
61
62 db 0 ; max number of keywords
63
64 ;------------------------
65 dirs_control:
66 dw $P_Simple_S+$P_Optional ; complex, optional string
67 dw $P_CAP_File ; cap by file table
68 dw offset dirs_result ; dirs result buffer
69 dw offset dirs_values ; pointer to null value list
70 db 0 ; no synonyms
71
72 dirs_values:
73 db 0 ; null value list for dirs
74
75
76
77 ;------------------------
78 x_switch:
79 dw $P_Simple_s+$P_Optional ; /X, /X:ON, /X:OFF simple, optional string
80 dw $P_CAP_Char ; cap by char table
81 dw offset x_result ; pointer to result block
82 dw offset x_values ; pointer to values block
83 db 1 ; number of switches and synonyms
84 db "/X",0 ; only /X is valid
85
86 x_values:
87 db 3 ; string values
88 db 0 ; zeroes here for ranges and
89 db 0 ; values
90 db 2 ; 2 possible string values
91 db 0 ; /X:OFF = 0
92 dw offset off_string ; pointer to "OFF"
93 db 1 ; /X:ON = 1
94 dw offset on_string
95 ;------------------------
96
97 e_switch:
98 dw 0 ; /E
99 dw $P_CAP_Char ; cap by char table
100 dw offset e_result ; pointer to result block
101 dw offset e_values ; pointer to values block, none
102 db 1 ; number of switches and synonyms
103 db "/E",0 ; only /E is valid
104
105 e_values:
106 db 0 ; null value list for /E
107
108
109 ;------------------------
110 path_switch:
111 dw $P_Simple_s ; /PATH:ON, /PATH:OFF simple string
112 dw $P_CAP_Char ; cap by char table
113 dw offset path_result ; pointer to result block
114 dw offset path_values ; pointer to values block
115 db 1 ; number of switches and synonyms
116 db "/PATH",0 ; only /PATH is valid
117
118
119 path_values:
120 db 3 ; string values
121 db 0 ; zeroes here for ranges and
122 db 0 ; values
123 db 2 ; 2 possible string values
124 db 0 ; /PATH:OFF = 0
125 dw offset off_string ; pointer to "OFF"
126 db 1 ; /PATH:ON = 1
127 dw offset on_string
128
129
130 ;------------------------
131
132 off_string:
133 db "OFF",0 ; off string
134
135 on_string:
136 db "ON",0 ; on string
137
138
139 ;------------------------
140
141 x_result $P_Result_Blk <> ; /X result block
142 e_result $P_Result_Blk <> ; /E result block
143 path_result $P_Result_Blk <> ; /PATH result block
144 dirs_result $P_Result_Blk <> ; dirs result block
145
146
147 \1a