]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/SELECT/VAR.ASM

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / SELECT / VAR.ASM
1 PAGE 60,132 ;AN000;
2 NAME SELECT ;AN000;
3 TITLE VARIABLES - DOS - SELECT.EXE ;AN000;
4 SUBTTL var.asm ;AN000;
5 .ALPHA ;AN000;
6 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7 ;
8 ; VAR.ASM: Copyright 1988 Microsoft
9 ;
10 ; DATE: August 8/87
11 ;
12 ; COMMENTS: Assemble with MASM 3.0 (using the /A option)
13 ;
14 ; Module contains variables used by SELECT.
15 ;
16 ; CHANGE HISTORY:
17 ;
18 ;
19 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20 ;
21 INCLUDE SYSMSG.INC ;AN000;
22 MSG_UTILNAME <SELECT> ;AN000;
23 ;
24 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
25 ;
26 ;
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000;
29 INCLUDE VARSTRUC.INC ;AN000;
30 INCLUDE SEL_FILE.INC ;AN000;
31 ;
32 PUBLIC E_ENTER,E_TAB,E_ESCAPE ;AN000;
33 ;
34 ESCAPE EQU 27 ;AN000;
35 ENTER EQU 13 ;AN000;
36 TAB EQU 9 ;AN000;
37 F1 EQU 59 ;AN000;
38 F3 EQU 61 ;AN000;
39 SPACE EQU 32 ;AN000;
40 ;
41 PUBLIC DRIVE_A,DRIVE_B ;AN000;JW
42 DRIVE_A EQU 0 ;AN000;JW
43 DRIVE_B EQU 1 ;AN000;JW
44 ;
45 MSG_SERVICES <MSGDATA> ;AN000;
46 ;
47 PUBLIC SUPPORT_STATUS ;AN000;
48 SUPPORT_STATUS DW ? ;AN000;
49 DW ? ;AN000;
50 DW ? ;AN000;
51 DW ? ;AN000;
52 DW ? ;AN000;
53 DW ? ;AN000;
54 DW ? ;AN000;
55 DW ? ;AN000;
56 DW ? ;AN000;
57 DW ? ;AN000;
58 ;
59 PUBLIC I_USER_INDEX ;AN000;
60 I_USER_INDEX DW ? ;AN000; Index value for scroll list
61 ;
62 PUBLIC N_USER_NUMERIC,MIN_INPUT_VAL,MAX_INPUT_VAL;AN000;
63 N_USER_NUMERIC DW ? ;AN000; Input value for numeric fields
64 MIN_INPUT_VAL DW ? ;AN000; Minimum value of input
65 MAX_INPUT_VAL DW ? ;AN000; Maximum value of input
66 ;
67 PUBLIC S_USER_STRING,P_USER_STRING,M_USER_STRING;AN000;
68 S_USER_STRING DW M_USER_STRING ;AN000; Length of string
69 P_USER_STRING DB 120 DUP(?) ;AN000; Actual string
70 M_USER_STRING EQU $ - P_USER_STRING ;AN000;
71 ;
72 PUBLIC N_VALID_KEYS ;AN000;
73 N_VALID_KEYS DW ? ;AN000; Valid keys for current input
74 ;
75 PUBLIC N_USER_FUNC, E_ENTER, E_ESCAPE, E_TAB, E_F3, E_SPACE ;AN000;
76 N_USER_FUNC DW ? ;AN000; Function type entered by user
77 E_ENTER = ENTER ;AN000; Enter key
78 E_ESCAPE = ESCAPE ;AN000; Escape key
79 E_TAB = TAB ;AN000; Tab key
80 E_F3 = F3*256 ;AN000; Function key 3 (F3,0)
81 E_SPACE = SPACE ;AN000; ;
82 ;
83 PUBLIC FK_ENT_F3, FK_ENT_F3_LEN ;AN000;
84 FK_ENT_F3 DB ENTER,0,F3 ;AN000; Enter, F3
85 FK_ENT_F3_LEN EQU ($-FK_ENT_F3) ;AN000;
86 ;
87 PUBLIC FK_ENT_ESC, FK_ENT_ESC_LEN ;AN000;
88 FK_ENT_ESC DB ENTER,ESCAPE ;AN000; Enter, Esc
89 FK_ENT_ESC_LEN EQU ($-FK_ENT_ESC) ;AN000;
90 ;
91 PUBLIC FK_ENT_ESC_F3, FK_ENT_ESC_F3_LEN ;AN000;
92 FK_ENT_ESC_F3 DB ENTER,ESCAPE,0,F3 ;AN000; Enter, Esc
93 FK_ENT_ESC_F3_LEN EQU ($-FK_ENT_ESC_F3) ;AN000;
94 ;
95 PUBLIC FK_ENT, FK_ENT_LEN ;AN000;
96 FK_ENT DB ENTER ;AN000; Enter
97 FK_ENT_LEN EQU ($-FK_ENT) ;AN000;
98 ;
99 PUBLIC FK_TEXT, FK_TEXT_LEN ;AN000;
100 FK_TEXT DB ENTER,ESCAPE,0,F1,0,F3 ;AN000; Enter, ESC, F1, F3
101 FK_TEXT_LEN EQU ($-FK_TEXT) ;AN000;
102 ;
103 PUBLIC FK_SCROLL, FK_SCROLL_LEN ;AN000;
104 FK_SCROLL DB ENTER,ESCAPE,0,F1,0,F3 ;AN000; Enter,ESC, F1, F3
105 FK_SCROLL_LEN EQU ($-FK_SCROLL) ;AN000;
106 ;
107 PUBLIC FK_TAB, FK_TAB_LEN ;AN000;
108 FK_TAB DB TAB,ENTER,ESCAPE,0,F1,0,F3 ;AN000;Enter, ESC, F1, F3, Tab
109 FK_TAB_LEN EQU ($-FK_TAB) ;AN000;
110 ;
111 PUBLIC FK_REVIEW, FK_REVIEW_LEN ;AN000;
112 FK_REVIEW DB ENTER,SPACE,ESCAPE,0,F1,0,F3 ;AN000;Enter,ESC,F1,F3,SPACE
113 FK_REVIEW_LEN EQU ($-FK_REVIEW) ;AN000;
114 ;
115 PUBLIC FK_DATE, FK_DATE_LEN ;AN000;
116 FK_DATE DB TAB,ENTER,0,F1 ;AN000; Enter, ESC, F1, Tab
117 FK_DATE_LEN EQU ($-FK_DATE) ;AN000;
118 ;
119 PUBLIC FK_FORMAT, FK_FORMAT_LEN ;AN000;
120 FK_FORMAT DB ENTER,0,F1 ;AN000;
121 FK_FORMAT_LEN EQU ($-FK_FORMAT) ;AN000;
122 ;
123 PUBLIC FK_REBOOT, FK_REBOOT_LEN ;AN000;
124 FK_REBOOT DB ? ;AN000; only CTRL+ALT+DEL keys valid
125 FK_REBOOT_LEN EQU 0 ;AN000;
126 ;
127 PUBLIC ERROR_KEYS,ERROR_KEYS_LEN,E_QUIT,E_RETURN ;AN000;
128 ERROR_KEYS DB 0,F3,ENTER ;AN000;
129 ERROR_KEYS_LEN EQU $-ERROR_KEYS ;AN000;
130 E_QUIT EQU 1 ;AN000;
131 E_RETURN EQU 2 ;AN000;
132 ;
133 PUBLIC E_YES, E_NO, E_NA ;AN000;
134 E_YES EQU 1 ;AN000;
135 E_NO EQU 2 ;AN000;
136 E_NA EQU 6 ;AN000;
137 ;
138 PUBLIC N_SELECT_MODE, E_SELECT_MENU, E_SELECT_FDISK, E_SELECT_INV ;AN000;
139 N_SELECT_MODE DW ? ;AN000; SELECT command line mode
140 E_SELECT_MENU EQU 0 ;AN000; MENU mode
141 E_SELECT_FDISK EQU 1 ;AN000; FDISK mode
142 E_SELECT_INV EQU 0FFH ;AN000; Invalid parameter
143 ;
144 PUBLIC N_FORMAT_MODE,E_FORMAT_SELECT,E_FORMAT_NEW,E_FORMAT_USED ;AN000;
145 N_FORMAT_MODE DW ? ;AN000; FORMAT mode specified on command line
146 E_FORMAT_SELECT EQU 1 ;AN000; new disk - select to format all partitions
147 E_FORMAT_NEW EQU 2 ;AN000; new disk - user to format all partitions
148 E_FORMAT_USED EQU 3 ;AN000; used disk - user to format all partitions
149 ;
150 PUBLIC S_SPACE ;AN000;
151 S_SPACE DW M_SPACE ;AN000;
152 P_SPACE DB ' ' ;AN000;
153 M_SPACE EQU $ - P_SPACE ;AN000;
154 ;
155 PUBLIC S_OFF ;AN000;
156 S_OFF DW M_OFF ;AN000; OFF parameter
157 P_OFF DB 'OFF' ;AN000;
158 M_OFF EQU $ - P_OFF ;AN000;
159 ;
160 PUBLIC S_ON ;AN000;
161 S_ON DW M_ON ;AN000; ON parameter
162 P_ON DB 'ON' ;AN000;
163 M_ON EQU $ - P_ON ;AN000;
164 ;
165 PUBLIC I_WORKSPACE,N_WORK_PREV,E_WORKSPACE_BAL,E_WORKSPACE_MIN,E_WORKSPACE_MAX ;AN000;
166 I_WORKSPACE DW ? ;AN000; user workspace option
167 N_WORK_PREV DW ? ;AN000; previous workspace option
168 E_WORKSPACE_MIN EQU 1 ;AN000; minimize DOS functions
169 E_WORKSPACE_BAL EQU 2 ;AN000; balance DOS function
170 E_WORKSPACE_MAX EQU 3 ;AN000; maximize DOS functions
171 ;
172 PUBLIC S_ANSI,M_ANSI,F_ANSI,E_ANSI_YES,D_ANSI_1,E_ANSI_B,E_ANSI_C,E_ANSI_NO ;AN000;
173 S_ANSI DW M_ANSI ;AN000; ANSI command
174 P_ANSI DB 2 DUP(?) ;AN000;
175 M_ANSI EQU $ - P_ANSI ;AN000;
176 D_ANSI_1 DW 2 ;AN000;
177 DB '/X' ;AN000;
178 F_ANSI DW ? ;AN000; ANSI support required indicator
179 E_ANSI_NO = E_NO ;AN000; ANSI support not required
180 E_ANSI_YES = E_YES ;AN000; include ANSI.SYS command
181 E_ANSI_B EQU 2 ;AN000;
182 E_ANSI_C EQU 3 ;AN000;
183 ;
184 PUBLIC S_APPEND, F_APPEND, E_APPEND_YES, E_APPEND_NO, M_APPEND ;AN000;
185 PUBLIC S_APPEND_P, M_APPEND_P ;AN000;JW
186 S_APPEND DW M_APPEND ;AN000; APPEND command
187 P_APPEND DB 120 DUP(?) ;AN000;
188 M_APPEND EQU $ - P_APPEND ;AN000;
189 S_APPEND_P DW 2 ;AN000; APPEND command paramters JW
190 P_APPEND_P DB '/E' ;AN000; Default parameter JW
191 DB 38 DUP(' ') ;AN000; JW
192 M_APPEND_P EQU $ - P_APPEND_P ;AN000; JW
193 F_APPEND DW ? ;AN000; APPEND support indicator
194 E_APPEND_NO = E_NO ;AN000; APPEND support not required
195 E_APPEND_YES = E_YES ;AN000; include APPEND command
196 ;
197 PUBLIC S_BREAK, M_BREAK, ST_BREAK, MT_BREAK ;AN000;
198 S_BREAK DW M_BREAK ;AN000; BREAK command
199 P_BREAK DB 3 DUP(?) ;AN000;
200 M_BREAK EQU $ - P_BREAK ;AN000;
201 ST_BREAK DW MT_BREAK ;AN000; temp location for BREAK command
202 PT_BREAK DB M_BREAK DUP(?) ;AN000;
203 MT_BREAK EQU $ - PT_BREAK ;AN000;
204 ;
205 PUBLIC S_BUFFERS,M_BUFFERS,D_BUFFERS_1,D_BUFFERS_2,ST_BUFFERS,MT_BUFFERS ;AN000;
206 S_BUFFERS DW M_BUFFERS ;AN000; BUFFERS command
207 P_BUFFERS DB 7 DUP(?) ;AN000;
208 M_BUFFERS EQU $ - P_BUFFERS ;AN000;
209 D_BUFFERS_1 DW 2 ;AN000;
210 DB '20' ;AN000;
211 D_BUFFERS_2 DW 4 ;AN000;
212 DB '25,8' ;AC041;SEH for optimal performance
213 ST_BUFFERS DW MT_BUFFERS ;AN000; temp location for BUFFERS parameters
214 PT_BUFFERS DB M_BUFFERS DUP(?) ;AN000;
215 MT_BUFFERS EQU $ - PT_BUFFERS ;AN000;
216 ;
217 PUBLIC S_CPSW, M_CPSW, F_CPSW, E_CPSW_YES, E_CPSW_NO, E_CPSW_NA ;AN000;
218 PUBLIC E_CPSW_B, E_CPSW_C, ST_CPSW, MT_CPSW ;AN000;
219 PUBLIC N_CPSW, E_CPSW_NOT_VAL, E_CPSW_NOT_REC, E_CPSW_VALID ;AN000;
220 S_CPSW DW M_CPSW ;AN000; CPSW command
221 P_CPSW DB 3 DUP(?) ;AN000;
222 M_CPSW EQU $ - P_CPSW ;AN000;
223 F_CPSW DW ? ;AN000; CPSW support indicator
224 E_CPSW_NO = E_NO ;AN000; CPSW support not required
225 E_CPSW_YES = E_YES ;AN000; include CPSW command
226 E_CPSW_NA = E_NA ;AN000; CPSW not available
227 E_CPSW_B EQU 1 ;AN000;
228 E_CPSW_C EQU 1 ;AN000;
229 ST_CPSW DW MT_CPSW ;AN000; temp location for CPSW command
230 PT_CPSW DB M_CPSW DUP(?) ;AN000;
231 MT_CPSW EQU $ - PT_CPSW ;AN000;
232 N_CPSW DW ? ;AN000; code page switching indicator for country
233 E_CPSW_NOT_VAL EQU 0 ;AN000; code page switching not allowed
234 E_CPSW_NOT_REC EQU 1 ;AN000; code page switching not recommended
235 E_CPSW_VALID EQU 2 ;AN000; code page switching recommended
236 ;
237 PUBLIC S_FASTOPEN, M_FASTOPEN, F_FASTOPEN, E_FASTOPEN_YES ;AN000;
238 PUBLIC E_FASTOPEN_NO, D_FASTOPEN_1, D_FASTOPEN_2, E_FASTOPEN_C ;AN000;
239 S_FASTOPEN DW M_FASTOPEN ;AN000; FASTOPEN command
240 P_FASTOPEN DB 60 DUP(?) ;AN000;
241 M_FASTOPEN EQU $ - P_FASTOPEN ;AN000;
242 D_FASTOPEN_1 DW 10 ;AN000;
243 DB 'C:=(50,25)' ;AN000;
244 D_FASTOPEN_2 DW 12 ;AN000;
245 DB 'C:=(150,150)' ;AC078; SEH changed from 200,200 to 150,150 due to expanded mem problems ;AC041; SEH for optimal performance
246 F_FASTOPEN DW ? ;AN000; FASTOPEN support indicator
247 E_FASTOPEN_NO = E_NO ;AN000; FASTOPEN support not required
248 E_FASTOPEN_YES = E_YES ;AN000; include FASTOPEN command
249 E_FASTOPEN_C EQU 4 ;AN000;
250 ;
251 PUBLIC S_FCBS, M_FCBS, D_FCBS_1, ST_FCBS, MT_FCBS ;AN000;
252 S_FCBS DW M_FCBS ;AN000; FCBS command
253 P_FCBS DB 7 DUP(?) ;AN000;
254 M_FCBS EQU $ - P_FCBS ;AN000;
255 D_FCBS_1 DW 4 ;AN000;
256 DB '20,8' ;AN000;
257 ST_FCBS DW MT_FCBS ;AN000; temp location for FCBS command
258 PT_FCBS DB M_FCBS DUP(?) ;AN000;
259 MT_FCBS EQU $ - PT_FCBS ;AN000;
260 ;
261 PUBLIC S_FILES, M_FILES, D_FILES_1, D_FILES_2, ST_FILES, MT_FILES ;AN000;
262 S_FILES DW M_FILES ;AN000; FILES command
263 P_FILES DB 3 DUP(?) ;AN000;
264 M_FILES EQU $ - P_FILES ;AN000;
265 D_FILES_1 DW 2 ;AN000;
266 DB '20' ;AN000;
267 D_FILES_2 DW 1 ;AN000;
268 DB '8' ;AN000;
269 ST_FILES DW MT_FILES ;AN000; temp location for FILES command
270 PT_FILES DB M_FILES DUP(?) ;AN000;
271 MT_FILES EQU $ - PT_FILES ;AN000;
272 ;
273 PUBLIC S_GRAPHICS, M_GRAPHICS, F_GRAPHICS, E_GRAPHICS_YES ;AN000;
274 PUBLIC E_GRAPHICS_NO, E_GRAPHICS_B, E_GRAPHICS_C ;AN000;
275 S_GRAPHICS DW M_GRAPHICS ;AN000; GRAPHICS command
276 P_GRAPHICS DB 80 DUP(?) ;AN000;
277 M_GRAPHICS EQU $ - P_GRAPHICS ;AN000;
278 F_GRAPHICS DW ? ;AN000; GRAPHICS support indicator
279 E_GRAPHICS_NO = E_NO ;AN000; GRAPHICS support not required
280 E_GRAPHICS_YES = E_YES ;AN000; include GRAPHICS command
281 E_GRAPHICS_B EQU 4 ;AN000;
282 E_GRAPHICS_C EQU 6 ;AN000;
283 ;
284 PUBLIC F_GRAFTABL, E_GRAFTABL_YES, E_GRAFTABL_NO, E_GRAFTABL_NA ;AN000;
285 PUBLIC E_GRAFTABL_B, E_GRAFTABL_C ;AN000;
286 F_GRAFTABL DW ? ;AN000; GRAFTABL support indicator
287 E_GRAFTABL_NO = E_NO ;AN000; GRAFTABL support not required
288 E_GRAFTABL_YES = E_YES ;AN000; include GRAFTABL command
289 E_GRAFTABL_NA = E_NA ;AN000; GRAFTABL not available
290 E_GRAFTABL_B EQU 3 ;AN000;
291 E_GRAFTABL_C EQU 5 ;AN000;
292 ;
293 PUBLIC S_LASTDRIVE,M_LASTDRIVE,D_LASTDRIVE_1,ST_LASTDRIVE,MT_LASTDRIVE ;AN000;
294 S_LASTDRIVE DW M_LASTDRIVE ;AN000; LASTDRIVE command
295 P_LASTDRIVE DB 1 DUP(?) ;AN000;
296 M_LASTDRIVE EQU $ - P_LASTDRIVE ;AN000;
297 D_LASTDRIVE_1 DW 1 ;AN000;
298 DB 'E' ;AN000;
299 ST_LASTDRIVE DW MT_LASTDRIVE ;AN000; temp location for LASTDRIVE command
300 PT_LASTDRIVE DB M_LASTDRIVE DUP(?) ;AN000;
301 MT_LASTDRIVE EQU $ - PT_LASTDRIVE ;AN000;
302 ;
303 PUBLIC S_PATH, M_PATH, F_PATH, E_PATH_YES, E_PATH_NO ;AN000;
304 S_PATH DW M_PATH ;AN000; PATH command
305 P_PATH DB 120 DUP(?) ;AN000;
306 M_PATH EQU $ - P_PATH ;AN000;
307 F_PATH DW ? ;AN000; PATH support indicator
308 E_PATH_NO = E_NO ;AN000; PATH support not required
309 E_PATH_YES = E_YES ;AN000; include PATH command
310 ;
311 PUBLIC S_PROMPT,M_PROMPT,F_PROMPT,E_PROMPT_YES,E_PROMPT_NO,D_PROMPT_1 ;AN000;
312 S_PROMPT DW M_PROMPT ;AN000; PROMPT command
313 P_PROMPT DB 120 DUP(?) ;AN000;
314 M_PROMPT EQU $ - P_PROMPT ;AN000;
315 D_PROMPT_1 DW 4 ;AN000;
316 DB '$P$G' ;AN000;
317 F_PROMPT DW ? ;AN000; PROMPT command indicator
318 E_PROMPT_NO = E_NO ;AN000; PROMPT command not to be included
319 E_PROMPT_YES = E_YES ;AN000; include PROMPT command
320 ;
321 PUBLIC S_SHARE,M_SHARE,F_SHARE,E_SHARE_YES,E_SHARE_NO,E_SHARE_C ;AN000;
322 S_SHARE DW M_SHARE ;AN000; SHARE command
323 P_SHARE DB 15 DUP(?) ;AN000;
324 M_SHARE EQU $ - P_SHARE ;AN000;
325 F_SHARE DW ? ;AN000; SHARE support indicator
326 E_SHARE_NO = E_NO ;AN000; SHARE support not required
327 E_SHARE_YES = E_YES ;AN000; include SHARE command
328 E_SHARE_C EQU 7 ;AN000;
329 ;
330 PUBLIC S_SHELL, M_SHELL, F_SHELL, E_SHELL_YES, E_SHELL_NO ;AN000;
331 PUBLIC D_SHELL_1, D_SHELL_2, E_SHELL_B, E_SHELL_C ;AC018;SEH ;AC000;JW
332 S_SHELL DW M_SHELL ;AN000; SHELL command
333 P_SHELL DB 115 DUP(?) ;AN000;
334 M_SHELL EQU $ - P_SHELL ;AN000;
335 D_SHELL_1 DW M_SHELL_1 ;AN000;
336 P_SHELL_1 DB '/TRAN/MAINT/MENU/EXIT/SND/PROMPT' ;AC077;SEH ;AC000;JW
337 M_SHELL_1 EQU $ - P_SHELL_1 ;AN000;
338 D_SHELL_2 DW M_SHELL_2 ;AN000;
339 P_SHELL_2 DB '/TRAN/COLOR/DOS/MENU/MUL' ;AC071;SEH ;AC016;SEH ;AC000;JW
340 DB '/SND/MEU:SHELL.MEU/CLR:SHELL.CLR/PROMPT/MAINT/EXIT/SWAP/DATE' ;AC012;SEH ;AC000;JW
341 M_SHELL_2 EQU $ - P_SHELL_2 ;AN000;
342 F_SHELL DW ? ;AN000; SHELL support indicator
343 E_SHELL_NO = E_NO ;AN000; SHELL support not required
344 E_SHELL_YES = E_YES ;AN000; include SHELL command
345 E_SHELL_B = 5
346 E_SHELL_C = 8
347 ;
348 PUBLIC MACHINE_TYPE, PS2_FLAG, MOD25_OR_MOD30 ;AN000;JW
349 MACHINE_TYPE DB ? ;AN000;JW
350 PS2_FLAG DB ? ;AN000;JW
351 MOD25_OR_MOD30 EQU 0FAH ;AN000;JW
352 ;
353 PUBLIC S_STACKS,M_STACKS,ST_STACKS,MT_STACKS ;AN000;
354 S_STACKS DW M_STACKS ;AN000; STACKS command
355 P_STACKS DB 6 DUP(?) ;AN000;
356 M_STACKS EQU $ - P_STACKS ;AN000;
357 ST_STACKS DW MT_STACKS ;AN000; temp location for STACKS command
358 PT_STACKS DB M_STACKS DUP(?) ;AN000;
359 MT_STACKS EQU $ - PT_STACKS ;AN000;
360 ;
361 PUBLIC S_VDISK,M_VDISK,F_VDISK,E_VDISK_YES,E_VDISK_NO,E_VDISK_B,E_VDISK_C ;AN000;
362 S_VDISK DW M_VDISK ;AN000; VDISK command
363 P_VDISK DB 20 DUP(?) ;AN000;
364 M_VDISK EQU $ - P_VDISK ;AN000;
365 F_VDISK DW ? ;AN000; VDISK support indicator
366 E_VDISK_NO = E_NO ;AN000; VDISK support not required
367 E_VDISK_YES = E_YES ;AN000; include VDISK command
368 E_VDISK_B EQU 6 ;AN000;
369 E_VDISK_C EQU 9 ;AN000;
370 ;
371 PUBLIC S_VERIFY, M_VERIFY, ST_VERIFY, MT_VERIFY ;AN000;
372 S_VERIFY DW M_VERIFY ;AN000; VERIFY command
373 P_VERIFY DB 3 DUP(?) ;AN000;
374 M_VERIFY EQU $ - P_VERIFY ;AN000;
375 ST_VERIFY DW MT_VERIFY ;AN000; temp location for VERIFY command
376 PT_VERIFY DB M_VERIFY DUP(?) ;AN000;
377 MT_VERIFY EQU $ - PT_VERIFY ;AN000;
378 ;
379 PUBLIC S_XMAEM, M_XMAEM ;AN000;
380 S_XMAEM DW M_XMAEM ;AN000; XMAEM command
381 P_XMAEM DB 40 DUP(?) ;AN000;
382 M_XMAEM EQU $ - P_XMAEM ;AN000;
383 ;
384 PUBLIC S_XMA2EMS, M_XMA2EMS, D_XMA2EMS_1, F_XMA, E_XMA_NO, E_XMA_NA ;AN000;
385 PUBLIC E_XMA_YES, E_XMA_C, N_XMA, E_XMA_ABSENT, E_XMA_PRESENT ;AN000;
386 S_XMA2EMS DW M_XMA2EMS ;AN000; XMA2EMS command
387 P_XMA2EMS DB 40 DUP(?) ;AN000;
388 M_XMA2EMS EQU $ - P_XMA2EMS ;AN000;
389 D_XMA2EMS_1 DW 30 ;AN000;
390 DB 'FRAME=D000 P254=C000 P255=C400' ;AC044;SEH ;AC040;SEH ;AN000;JW
391 F_XMA DW ? ;AN000; Expanded Memory support indicator
392 E_XMA_NO = E_NO ;AN000; Expanded Memory support not required
393 E_XMA_YES = E_YES ;AN000; include XMAEM, XMA2EMS commands
394 E_XMA_NA = E_NA ;AN000; Expanded memory not available
395 E_XMA_C EQU 2 ;AN000;
396 N_XMA DW ? ;AN000; Expanded memory presence indicator
397 E_XMA_ABSENT EQU 0 ;AN000; expanded memory not present
398 E_XMA_PRESENT EQU 1 ;AN000; expanded memory is present
399 ;
400 PUBLIC N_MOD80, E_IS_MOD80, E_NOT_MOD80 ;AN000;JW
401 N_MOD80 DW ? ;AN000; Model 80 indicator
402 E_NOT_MOD80 EQU 0 ;AN000; is not a model 80
403 E_IS_MOD80 EQU 1 ;AN000; is a model 80
404 ;
405 PUBLIC I_DEST_DRIVE, E_DEST_DRIVE_A, E_DEST_DRIVE_B, E_DEST_DRIVE_C ;AN111;JW
406 I_DEST_DRIVE DW ? ;AN000; Install destination drive - set by CHECK_VALID_MEDIA
407 E_DEST_DRIVE_C EQU 1 ;AN000; drive C:
408 E_DEST_DRIVE_B EQU 2 ;AN000; drive B:
409 E_DEST_DRIVE_A EQU 3 ;AN111; drive A:
410 ;
411 PUBLIC N_DRIVE_OPTION, E_OPTION_B_C, E_OPTION_A_C ;AN111;JW
412 N_DRIVE_OPTION DW ? ;AN111; Which options to choose from JW
413 E_OPTION_B_C EQU 1 ;AN111; install to B or C JW
414 E_OPTION_A_C EQU 2 ;AN111; install to A or C JW
415 ;
416 PUBLIC N_DEST_DRIVE, E_DEST_SELECT, E_DEST_USER ;AN000;
417 N_DEST_DRIVE DB ? ;AN000; destination drive determined by user or SELECT
418 E_DEST_SELECT EQU 0 ;AN000; SELECT will determine default drive
419 E_DEST_USER EQU 1 ;AN000; user will select destination drive
420 ;
421 PUBLIC N_DISKETTE_TOT, N_ZERO_DISKETTE, N_DISKETTE_A, N_DISKETTE_B ;AN000;
422 PUBLIC E_DISKETTE_INV, E_DISKETTE_360, E_DISKETTE_720, E_DISKETTE_1200, E_DISKETTE_1440 ;AN000;
423 N_DISKETTE_TOT DB ? ;AN000; number of diskette drives
424 N_ZERO_DISKETTE EQU 0 ;AN000;
425 N_DISKETTE_A DB ? ;AN000; drive A: diskette status
426 N_DISKETTE_B DB ? ;AN000; drive B: diskette status
427 E_DISKETTE_INV EQU 0FFH ;AN000; diskette not present
428 E_DISKETTE_360 EQU 0 ;AN000; diskette media is 360K (5.25 inch)
429 E_DISKETTE_1200 EQU 1 ;AN000; diskette media is 1.2M (5.25 inch)
430 E_DISKETTE_720 EQU 2 ;AN000; diskette media is 720K (3.5 inch)
431 E_DISKETTE_1440 EQU 7 ;AN000; diskette media is 1.44M (3.5 inch)
432 ;
433 PUBLIC S_DEST_DRIVE,M_DEST_DRIVE,S_DRIVE_A ;AN000;
434 S_DEST_DRIVE DW M_DEST_DRIVE ;AN000; Destination drive to install DOS
435 P_DEST_DRIVE DB 'C:\' ;AN000;
436 M_DEST_DRIVE EQU $ - P_DEST_DRIVE ;AN000;
437 S_DRIVE_A DW M_DRIVE_A ;AN000;
438 P_DRIVE_A DB 'A:\' ;AN000;
439 M_DRIVE_A EQU $ - P_DRIVE_A ;AN000;
440 ;
441 PUBLIC S_C_DRIVE,S_A_DRIVE,S_B_DRIVE ;AC039;SEH;AN000;JW
442 S_C_DRIVE DW M_C_DRIVE ;AN000; Destination drive w/o backslash JW
443 P_C_DRIVE DB 'C:' ;AN000;
444 M_C_DRIVE EQU $ - P_C_DRIVE ;AN000;
445 S_A_DRIVE DW M_A_DRIVE ;AN039;SEH Destination drive w/o backslash
446 P_A_DRIVE DB 'A:' ;AN039;SEH
447 M_A_DRIVE EQU $ - P_A_DRIVE ;AN039;SEH
448 S_B_DRIVE DW M_B_DRIVE ;AN039;SEH Destination drive w/o backslash
449 P_B_DRIVE DB 'B:' ;AN039;SEH
450 M_B_DRIVE EQU $ - P_B_DRIVE ;AN039;SEH
451 ;
452 PUBLIC S_DOS_LOC, M_DOS_LOC, D_DOS_LOC_1 ;AN000;
453 S_DOS_LOC DW M_DOS_LOC ;AN000; user defined DOS location path for drive C:
454 P_DOS_LOC DB 37 DUP(?) ;AN000;
455 M_DOS_LOC EQU $ - P_DOS_LOC ;AN000;
456 D_DOS_LOC_1 DW 3 ;AN000;
457 DB 'DOS' ;AN000;
458 ;
459 PUBLIC S_INSTALL_PATH, M_INSTALL_PATH ;AN000;
460 S_INSTALL_PATH DW M_INSTALL_PATH ;AN000; install path including drive
461 P_INSTALL_PATH DB 40 DUP( ) ;AN000;
462 M_INSTALL_PATH EQU $ - P_INSTALL_PATH ;AN000;
463 ;
464 PUBLIC I_CTY_KYBD, E_CTY_KB_PREDEF, E_CTY_KB_USER ;AN000;
465 I_CTY_KYBD DW ? ;AN000; index for country and keyboard screen
466 E_CTY_KB_PREDEF EQU 1 ;AN000; Use predefined country/keyboard
467 E_CTY_KB_USER EQU 2 ;AN000; user specified country/keyboard to be used
468 ;
469 PUBLIC N_CTY_LIST, E_CTY_LIST_1, E_CTY_LIST_2 ;AN000;
470 N_CTY_LIST DW ? ;AN000; Country code scroll list identifier
471 E_CTY_LIST_1 EQU 1 ;AN000; code 001 - 046
472 E_CTY_LIST_2 EQU 2 ;AN000; code 047 - 972
473 ;
474 PUBLIC I_COUNTRY, N_COUNTRY ;AN000;
475 I_COUNTRY DW ? ;AN000; Index into country code list
476 N_COUNTRY DW ? ;AN000; Country Code
477 ;
478 PUBLIC N_KYBD_LIST, E_KYBD_LIST_1, E_KYBD_LIST_2 ;AN000;
479 N_KYBD_LIST DW ? ;AN000; Keyboard code scroll list identifier
480 E_KYBD_LIST_1 EQU 1 ;AN000; code BE - NO
481 E_KYBD_LIST_2 EQU 2 ;AN000; code PO - none
482 ;
483 PUBLIC I_KEYBOARD ;AN000;
484 I_KEYBOARD DW ? ;AN000; Index into keyboard code list
485 ;
486 PUBLIC S_KEYBOARD,N_KYBD_VAL,E_KYBD_VAL_YES,E_KYBD_VAL_NO ;AN000;
487 PUBLIC M_KEYBOARD,E_KYBD_VAL_DEF ;AN000;
488 S_KEYBOARD DW M_KEYBOARD ;AN000;
489 P_KEYBOARD DB 2 DUP(?) ;AN000; Keyboard code
490 M_KEYBOARD EQU $ - P_KEYBOARD ;AN000;
491 N_KYBD_VAL DB ? ;AN000; Keyboard code valid indicator
492 E_KYBD_VAL_NO EQU 0 ;AN000; Keyboard code is not valid
493 E_KYBD_VAL_YES EQU 1 ;AN000; Keyboard code is valid
494 E_KYBD_VAL_DEF EQU 2 ;AN000; Default keyboard (US) is to be used
495 ; This state is defined so that keyboard screen
496 ; will be displayed with "None" option
497 ;
498 PUBLIC N_DESIGNATES, N_CP_PRI, N_CP_SEC, N_CTY_RES ;AN000;
499 N_DESIGNATES DW ? ;AN000; number of designates
500 N_CP_PRI DW ? ;AN000; Primary code page
501 N_CP_SEC DW ? ;AN000; Secondary code page
502 N_CTY_RES DB ? ;AN000; reserved byte from country table
503 ;
504 PUBLIC I_KYBD_ALT, S_KYBD_ALT, M_KYBD_ALT, N_KYBD_ALT ;AN000;
505 PUBLIC E_KYBD_ALT_NO, E_KYBD_ALT_YES ;AN000;
506 I_KYBD_ALT DW ? ;AN000; Index into alternate keyboard code list
507 S_KYBD_ALT DW M_KYBD_ALT ;AN000;
508 P_KYBD_ALT DB 2 DUP(?) ;AN000; Keyboard code
509 M_KYBD_ALT EQU $ - P_KYBD_ALT ;AN000;
510 N_KYBD_ALT DB ? ;AN000; Alternate keyboards present indicator
511 E_KYBD_ALT_NO EQU 0 ;AN000; no alternate keyboards
512 E_KYBD_ALT_YES EQU 1 ;AN000; are alternate keyboards are present
513 ;
514 PUBLIC N_KYB_LOAD,E_KYB_LOAD_SUC,E_KYB_LOAD_ERR,E_KYB_LOAD_US,E_KYB_LOAD_UND ;AN000;
515 N_KYB_LOAD DW ? ;AN000; KEYB load status
516 E_KYB_LOAD_SUC EQU 1 ;AN000; no error from KEYB
517 E_KYB_LOAD_ERR EQU 2 ;AN000; error from KEYB
518 E_KYB_LOAD_US EQU 3 ;AN000; US keyboard loaded
519 E_KYB_LOAD_UND EQU 4 ;AN000; undefined keyboard loaded
520 ;
521 ; Country code association with Keyboard code & Code Page
522 PUBLIC CTY_TAB_A,CTY_TAB_A_1,CTY_A_ITEMS ;AN000;
523 CTY_TAB_A DB CTY_A_ITEMS ;AN000; no of entries in table
524 CTY_TAB_A_1 CTY_DEF < 001,E_KYBD_VAL_DEF,' ',437,850,1,E_CPSW_NOT_REC,0> ;AN000; (01) United States
525 CTY_DEF < 002,E_KYBD_VAL_YES,'CF',863,850,2,E_CPSW_VALID ,0> ;AN000; (02) Canada (French)
526 CTY_DEF < 003,E_KYBD_VAL_YES,'LA',850,437,1,E_CPSW_VALID ,0> ;AC070;SEH ;AN000; (03) Latin America
527 CTY_DEF < 031,E_KYBD_VAL_YES,'NL',437,850,1,E_CPSW_VALID ,0> ;AN000; (04) Netherlands
528 CTY_DEF < 032,E_KYBD_VAL_YES,'BE',850,437,1,E_CPSW_VALID ,0> ;AN000; (05) Belgium
529 CTY_DEF < 033,E_KYBD_VAL_YES,'FR',437,850,1,E_CPSW_VALID ,1> ;AN000; (06) France
530 CTY_DEF < 034,E_KYBD_VAL_YES,'SP',850,437,1,E_CPSW_VALID ,0> ;AN000; (07) Spain
531 CTY_DEF < 039,E_KYBD_VAL_YES,'IT',437,850,1,E_CPSW_VALID ,2> ;AN000; (08) Italy
532 CTY_DEF < 041,E_KYBD_VAL_YES,'SF',850,437,1,E_CPSW_VALID ,0> ;AN000; (09) Switzerland
533 CTY_DEF < 044,E_KYBD_VAL_YES,'UK',437,850,1,E_CPSW_VALID ,3> ;AN000; (10) United Kingdom
534 CTY_DEF < 045,E_KYBD_VAL_YES,'DK',850,865,2,E_CPSW_VALID ,0> ;AN000; (11) Denmark
535 CTY_DEF < 046,E_KYBD_VAL_YES,'SV',437,850,1,E_CPSW_VALID ,0> ;AN000; (12) Sweden
536 CTY_A_ITEMS EQU ($ - CTY_TAB_A_1) / TYPE CTY_DEF ;AN000; no of items
537 ;
538 PUBLIC CTY_TAB_B,CTY_TAB_B_1,CTY_B_ITEMS ;AN000;
539 CTY_TAB_B DB CTY_B_ITEMS ;AN000; no of entries in table
540 CTY_TAB_B_1 CTY_DEF < 047,E_KYBD_VAL_YES,'NO',850,865,2,E_CPSW_VALID ,0 > ;AN000; (01) Norway
541 CTY_DEF < 049,E_KYBD_VAL_YES,'GR',437,850,1,E_CPSW_VALID ,0 > ;AN000; (02) Germany
542 CTY_DEF < 061,E_KYBD_VAL_YES,'US',437,850,1,E_CPSW_VALID ,0 > ;AN000; (03) Australia
543 CTY_DEF < 081,E_KYBD_VAL_NO ,' ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (04) Japan
544 CTY_DEF < 082,E_KYBD_VAL_NO ,' ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (05) Korea
545 CTY_DEF < 086,E_KYBD_VAL_NO ,' ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (06) Republic of China
546 CTY_DEF < 088,E_KYBD_VAL_NO ,' ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (07) Taiwan
547 CTY_DEF < 351,E_KYBD_VAL_YES,'PO',850,860,2,E_CPSW_VALID ,0 > ;AN000; (08) Portugal
548 CTY_DEF < 358,E_KYBD_VAL_YES,'SU',850,437,1,E_CPSW_VALID ,0 > ;AN000; (09) Finland
549 CTY_DEF < 785,E_KYBD_VAL_NO ,' ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (10) Arabic Speaking
550 CTY_DEF < 972,E_KYBD_VAL_NO ,' ',000,000,0,E_CPSW_NOT_VAL,0 > ;AN000; (11) Hebrew Speaking
551 CTY_B_ITEMS EQU ($ - CTY_TAB_B_1) / TYPE CTY_DEF ;AN000; no of items
552 ;
553 ; Keyboard Codes supported
554 PUBLIC KYBD_TAB_A,KYBD_TAB_A_1,KYBD_A_ITEMS ;AN000;
555 KYBD_TAB_A DB KYBD_A_ITEMS ;AN000; no of entries in table
556 KYBD_TAB_A_1 KYB_DEF < 'BE', E_KYBD_ALT_NO > ;AN000; (01) Flemish
557 KYB_DEF < 'CF', E_KYBD_ALT_NO > ;AN000; (02) Canadian French
558 KYB_DEF < 'DK', E_KYBD_ALT_NO > ;AN000; (03) Danish
559 KYB_DEF < 'FR', E_KYBD_ALT_YES> ;AN000; (04) French
560 KYB_DEF < 'GR', E_KYBD_ALT_NO > ;AN000; (05) German
561 KYB_DEF < 'IT', E_KYBD_ALT_YES> ;AN000; (06) Italian
562 KYB_DEF < 'LA', E_KYBD_ALT_NO > ;AN000; (07) Latin American (Spanish)
563 KYB_DEF < 'NL', E_KYBD_ALT_NO > ;AN000; (08) Dutch
564 KYB_DEF < 'NO', E_KYBD_ALT_NO > ;AN000; (09) Norwegian
565 KYBD_A_ITEMS EQU ($ - KYBD_TAB_A_1) / TYPE KYB_DEF ;AN000; no of items in table
566 ;
567 PUBLIC KYBD_TAB_B,KYBD_TAB_B_1,KYBD_B_ITEMS ;AN000;
568 KYBD_TAB_B DB KYBD_B_ITEMS ;AN000; no of entries in table
569 KYBD_TAB_B_1 KYB_DEF < 'PO', E_KYBD_ALT_NO > ;AN000; (01) Portuguese
570 KYB_DEF < 'SF', E_KYBD_ALT_NO > ;AN000; (02) Swiss (French)
571 KYB_DEF < 'SG', E_KYBD_ALT_NO > ;AN000; (03) Swiss (German)
572 KYB_DEF < 'SP', E_KYBD_ALT_NO > ;AN000; (04) Spanish
573 KYB_DEF < 'SU', E_KYBD_ALT_NO > ;AN000; (05) Finnish
574 KYB_DEF < 'SV', E_KYBD_ALT_NO > ;AN000; (06) Swedish
575 KYB_DEF < 'UK', E_KYBD_ALT_YES> ;AN000; (07) UK English
576 KYB_DEF < 'US', E_KYBD_ALT_NO > ;AN000; (08) US English
577 KYB_DEF < ' ', E_KYBD_ALT_NO > ;AN000; (09) none of the above
578 KYBD_B_ITEMS EQU ($ - KYBD_TAB_B_1) / TYPE KYB_DEF ;AN000; no of items in table
579 ;
580 PUBLIC ALT_TAB_PTR ;AN000;
581 ALT_TAB_PTR DW ? ;AN000; pointer keyboard table
582 ;
583 PUBLIC ALT_KYB_ID, ALT_FRENCH, ALT_ITALIAN, ALT_UK, ALT_KYB_ID_PREV ;AN000;
584 ALT_KYB_ID DB ? ;AN000; keyboard code identifier
585 ALT_KYB_ID_PREV DB ? ;AN000; previous keyboard code identifier
586 ALT_FRENCH EQU 1 ;AN000; French keyboard
587 ALT_ITALIAN EQU 2 ;AN000; Italian keyboard
588 ALT_UK EQU 3 ;AN000; UK English keyboard
589 ;
590 PUBLIC ALT_KYB_TABLE, ALT_KYB_TAB_1, ALT_KYB_ITEMS ;AN000;
591 ALT_KYB_TABLE DB ALT_KYB_ITEMS ;AN000; no of items in table
592 ALT_KYB_TAB_1 ALT_KYB_DEF < 'FR', ALT_KYBD_FR, ALT_FRENCH > ;AN000; French keyboard
593 ALT_KYB_DEF < 'IT', ALT_KYBD_IT, ALT_ITALIAN > ;AN000; Italian keyboard
594 ALT_KYB_DEF < 'UK', ALT_KYBD_UK, ALT_UK > ;AN000; UK English
595 ALT_KYB_ITEMS EQU ($ - ALT_KYB_TAB_1) / TYPE ALT_KYB_DEF ;AN000; no of items
596 ;
597 PUBLIC ALT_KYBD_FR, ALT_KYBD_FR_1, ALT_FR_ITEMS ;AN000;
598 ALT_KYBD_FR DB ALT_FR_ITEMS ;AN000; Alternate French Keyboard-no of entries in table
599 ALT_KYBD_FR_1 FR_STRUC <'120'> ;AN000;
600 FR_STRUC <'189'> ;AC000;JW
601 ALT_FR_ITEMS EQU ($ - ALT_KYBD_FR_1) / TYPE FR_STRUC ;AN000;
602 ;
603 PUBLIC ALT_KYBD_IT, ALT_KYBD_IT_1, ALT_IT_ITEMS ;AN000;
604 ALT_KYBD_IT DB ALT_IT_ITEMS ;AN000; Alternate Italian keyboard-no of entries in table
605 ALT_KYBD_IT_1 IT_STRUC <'142'> ;AC090;JW Switched with '141
606 IT_STRUC <'141'> ;AC090;JW
607 ALT_IT_ITEMS EQU ($ - ALT_KYBD_IT_1) / TYPE IT_STRUC ;AN000;
608 ;
609 PUBLIC ALT_KYBD_UK, ALT_KYBD_UK_1, ALT_UK_ITEMS ;AN000;
610 ALT_KYBD_UK DB ALT_UK_ITEMS ;AN000; no of entries in table
611 ALT_KYBD_UK_1 UK_STRUC <'168'> ;AN000;
612 UK_STRUC <'166'> ;AC000;JW
613 ALT_UK_ITEMS EQU ($ - ALT_KYBD_UK_1) / TYPE UK_STRUC ;AN000;
614 ;
615 PUBLIC ALT_ID_DEF ;AN000;
616 ALT_ID_DEF DB 0 ;AN000;DT
617 ;
618 PUBLIC S_US ;AN000;
619 S_US DW M_US ;AN000;
620 P_US DB 'US' ;AN000;
621 M_US EQU $ - P_US ;AN000;
622 ;
623 PUBLIC S_SWISS ;AN000;
624 S_SWISS DW M_SWISS ;AN000;
625 P_SWISS DB 'SF' ;AN000;
626 M_SWISS EQU $ - P_SWISS ;AN000;
627 ;
628 PUBLIC PRINTER_TABLES ;AN000;
629 PRINTER_TABLES EQU $ ;AN000;
630 PRINTER_DEF < > ;AN000; LPT1
631 PRINTER_DEF < > ;AN000; LPT2
632 PRINTER_DEF < > ;AN000; LPT3
633 PRINTER_DEF < > ;AN000; COM1
634 PRINTER_DEF < > ;AN000; COM2
635 PRINTER_DEF < > ;AN000; COM3
636 PRINTER_DEF < > ;AN000; COM4
637 ;
638 PUBLIC N_NUMPRINT, MIN_NUMPRINT, MAX_NUMPRINT ;AN000;
639 N_NUMPRINT DW ? ;AN000; No. of printers to install
640 MIN_NUMPRINT EQU 0 ;AN000;
641 MAX_NUMPRINT EQU 7 ;AN000;
642 ;
643 PUBLIC N_SERIAL, N_PARALLEL ;AN000;
644 N_PARALLEL DW ? ;AN000;
645 N_SERIAL DW ? ;AN000;
646 ;
647 PUBLIC I_PORT, I_REDIRECT, I_PRINTER ;AN000;
648 I_PORT DW ? ;AN000; port number
649 I_REDIRECT DW ? ;AN000; serial port redirection
650 I_PRINTER DW ? ;AN000; index into printer list
651 ;
652 PUBLIC N_PRINTER_TYPE, E_SERIAL, E_PARALLEL ;AN000;
653 N_PRINTER_TYPE DB ? ;AN000; printer type
654 E_SERIAL EQU 53H ;AN000; Serial 'S'
655 E_PARALLEL EQU 50H ;AN000; Parallel 'P'
656 ;
657 PUBLIC S_MODE_PARM, M_MODE_PARM ;AN000;
658 S_MODE_PARM DW M_MODE_PARM ;AN000;
659 P_MODE_PARM DB 40 DUP(?) ;AN000;
660 M_MODE_PARM EQU $ - P_MODE_PARM ;AN000;
661 ;
662 PUBLIC S_CP_DRIVER, M_CP_DRIVER ;AN000;
663 S_CP_DRIVER DW M_CP_DRIVER ;AN000;
664 P_CP_DRIVER DB 22 DUP(?) ;AN000;
665 M_CP_DRIVER EQU $ - P_CP_DRIVER ;AN000;
666 ;
667 PUBLIC S_CP_PREPARE, M_CP_PREPARE ;AN000;
668 S_CP_PREPARE DW M_CP_PREPARE ;AN000;
669 P_CP_PREPARE DB 12 DUP(?) ;AN000;
670 M_CP_PREPARE EQU $ - P_CP_PREPARE ;AN000;
671 ;
672 PUBLIC S_GRAPH_PARM, M_GRAPH_PARM ;AN000;
673 S_GRAPH_PARM DW M_GRAPH_PARM ;AN000;
674 P_GRAPH_PARM DB 20 DUP(?) ;AN000;
675 M_GRAPH_PARM EQU $ - P_GRAPH_PARM ;AN000;
676 ;
677 PUBLIC F_REVIEW, E_REVIEW_ACCEPT, E_REVIEW_VIEW ;AN000;
678 F_REVIEW DW ? ;AN000; Review selection screen index
679 E_REVIEW_ACCEPT EQU 1 ;AN000; user will accept selections made by SELECT
680 E_REVIEW_VIEW EQU 2 ;AN000; user wants to view/change selections made by SELECT
681 ;
682 PUBLIC N_DISPLAY, E_CPSW_DISP, E_NOCPSW_DISP ;AN000;
683 N_DISPLAY DB ? ;AN000; display type indicator
684 E_CPSW_DISP EQU 0 ;AN000; display type will support CPSW
685 E_NOCPSW_DISP EQU 1 ;AN000; display type will not support CPSW
686 ;
687 PUBLIC N_YEAR, MIN_YEAR, MAX_YEAR ;AN000;
688 N_YEAR DW ? ;AN000; calender year
689 MIN_YEAR EQU 1980 ;AN000;
690 MAX_YEAR EQU 2079 ;AN000;
691 ;
692 PUBLIC N_MONTH, MIN_MONTH, MAX_MONTH ;AN000;
693 N_MONTH DW ? ;AN000; calender month
694 MIN_MONTH EQU 1 ;AN000;
695 MAX_MONTH EQU 12 ;AN000;
696 ;
697 PUBLIC N_DAY, MIN_DAY, MAX_DAY ;AN000;
698 N_DAY DW ? ;AN000; calender day
699 MIN_DAY EQU 1 ;AN000;
700 MAX_DAY EQU 31 ;AN000;
701 ;
702 PUBLIC N_HOUR, MIN_HOUR, MAX_HOUR ;AN000;
703 N_HOUR DW ? ;AN000; hour
704 MIN_HOUR EQU 0 ;AN000;
705 MAX_HOUR EQU 23 ;AN000;
706 ;
707 PUBLIC N_MINUTE, MIN_MINUTE, MAX_MINUTE ;AN000;
708 N_MINUTE DW ? ;AN000; minute
709 MIN_MINUTE EQU 0 ;AN000;
710 MAX_MINUTE EQU 59 ;AN000;
711 ;
712 PUBLIC N_SECOND, MIN_SECOND, MAX_SECOND ;AN000;
713 N_SECOND DW ? ;AN000; second
714 MIN_SECOND EQU 0 ;AN000;
715 MAX_SECOND EQU 59 ;AN000;
716 ;
717 PUBLIC PARM_BLOCK, CMD_BUFF ;AN000;
718 PARM_BLOCK LABEL WORD ;AN000; parameter block for EXEC_PROGRAM
719 DW 0 ;AN000; use parent environment
720 DW OFFSET CMD_BUFF ;AN000; pointer to commnad line
721 DW ? ;AN000; segment for command line
722 DW 5CH ;AN000; default FCB
723 DW ? ;AN000; segment for FCB
724 DW 6CH ;AN000; default FCB
725 DW ? ;AN000; segment for FCB
726 PARM_BLOCK_END EQU $ ;AN000;
727 ;
728 CMD_BUFF LABEL BYTE ;AN000; command line passed to EXEC_PROGRAM
729 DB ? ;AN000; length of command line - excluding carrier return
730 DB 80 DUP(?) ;AN000;
731 CMD_BUFF_END EQU $ ;AN000;
732 ;
733 PUBLIC S_STR40, P_STR40, M_STR40 ;AN000;JW
734 S_STR40 DW M_STR40 ;AN000; Temporary variable for string field
735 P_STR40 DB 40 DUP(?) ;AN000;JW
736 M_STR40 EQU $ - P_STR40 ;AN000;JW
737 ;
738 PUBLIC S_STR120_1, P_STR120_1, M_STR120_1 ;AN000;
739 S_STR120_1 DW M_STR120_1 ;AN000; Temporary variable for string field
740 P_STR120_1 DB 120 DUP(?) ;AN000;
741 M_STR120_1 EQU $ - P_STR120_1 ;AN000;
742 ;
743 PUBLIC S_STR120_2, M_STR120_2 ;AN000;
744 S_STR120_2 DW M_STR120_2 ;AN000; Temporary variable for string field
745 P_STR120_2 DB 120 DUP(?) ;AN000;
746 M_STR120_2 EQU $ - P_STR120_2 ;AN000;
747 ;
748 PUBLIC S_STR120_3, M_STR120_3 ;AN000;
749 S_STR120_3 DW M_STR120_3 ;AN000; Temporary variable for string field
750 P_STR120_3 DB 120 DUP(?) ;AN000;
751 M_STR120_3 EQU $ - P_STR120_3 ;AN000;
752 ;
753 PUBLIC S_STR120_4, M_STR120_4 ;AN039;SEH
754 S_STR120_4 DW M_STR120_4 ;AN039;SEH Temporary variable for string field
755 P_STR120_4 DB 120 DUP(?) ;AN039;SEH
756 M_STR120_4 EQU $ - P_STR120_4 ;AN039;SEH
757 ;
758 PUBLIC SC_LINE, MC_LINE ;AN000;
759 SC_LINE DW MC_LINE ;AN000; Temporary variable for string field
760 PC_LINE DB 130 DUP(?) ;AN000;
761 MC_LINE EQU $ - PC_LINE - 2 ;AN000;
762 ;
763 PUBLIC N_HANDLE ;AN000;
764 N_HANDLE DW ? ;AN000; save location for file handle
765 ;
766 PUBLIC N_WRITE_HANDLE, N_WRITE_ERR_CODE ;AN000;
767 N_WRITE_HANDLE DW ? ;AN000; File handle for prepared file
768 N_WRITE_ERR_CODE DW ? ;AN000; error code for prepared file
769 ;
770 PUBLIC N_RETCODE, N_COUNTER ;AN000;
771 N_RETCODE DW ? ;AN000; Return code if execution not a success
772 N_COUNTER DW ? ;AN000; Loop counter
773 ;
774 PUBLIC N_WORD_1, N_WORD_2, N_WORD_3, N_WORD_4, N_WORD_5, N_WORD_6,N_BYTE_1 ;AN000;
775 N_WORD_1 DW ? ;AN000; temp variable
776 N_WORD_2 DW ? ;AN000; temp variable
777 N_WORD_3 DW ? ;AN000; temp variable
778 N_WORD_4 DW ? ;AN000; temp variable
779 N_WORD_5 DW ? ;AN000; temp variable
780 N_WORD_6 DW ? ;AN000; temp variable
781 N_BYTE_1 DB ? ;AN025; temp variable
782 ;
783 PUBLIC SAVE_AREA ;AN000;
784 SAVE_AREA DB 4 DUP(?) ;AN000; save area for stack pointer before EXEC program
785 ;
786 PUBLIC N_HOUSE_CLEAN,E_CLEAN_YES,E_CLEAN_NO ;AN000;
787 N_HOUSE_CLEAN DB ? ;AN000;
788 E_CLEAN_YES EQU 1 ;AN000; erase temp files
789 E_CLEAN_NO EQU 0 ;AN000; no temp files to erase
790 ;
791 PUBLIC N_DSKCPY_ERR,E_DSKCPY_RETRY,E_DSKCPY_OK ;AN000;JW
792 N_DSKCPY_ERR DB 0 ;AN000;JW
793 E_DSKCPY_RETRY EQU 1 ;AN000; retry diskcopy
794 E_DSKCPY_OK EQU 0 ;AN000; diskcopy successful
795 ;
796 PUBLIC E_CR, E_LF ;AN000;
797 E_CR EQU 0DH ;AN000;
798 E_LF EQU 0AH ;AN000;
799 ;
800 ; EQUATES FOR FIELD TYPES DEFINED IN DISK STATUS STRUCTURE
801 ; EQUATES FOR N_PART_NAME ; Partition name
802 PUBLIC E_PART_PRI_DOS, E_PART_EXT_DOS, E_PART_LOG_DRI ;AN000;
803 PUBLIC E_FREE_MEM_EDOS, E_FREE_MEM_DISK, E_PART_OTHER ;AN000;
804 E_PART_PRI_DOS EQU 1 ;AN000; Primary DOS partition
805 E_PART_EXT_DOS EQU 2 ;AN000; Extended DOS partition
806 E_PART_LOG_DRI EQU 3 ;AN000; Logical Drive
807 E_FREE_MEM_EDOS EQU 4 ;AN000; Free space in Extended DOS partition
808 E_FREE_MEM_DISK EQU 5 ;AN000; Free disk space - undefined partition
809 E_PART_OTHER EQU 6 ;AN000; other partition types i.e not DOS or EDOS
810
811 ; EQUATES FOR N_PART_STATUS ; Partition status
812 PUBLIC E_PART_UNFORMAT, E_PART_FORMAT ;AN000;
813 E_PART_UNFORMAT EQU 0 ;AN000; partition is unformatted
814 E_PART_FORMAT EQU 1 ;AN000; partition is formatted
815 ;
816 ; EQUATES FOR N_PART_TYPE ; Partition type
817 PUBLIC E_PART_FAT, E_PART_KSAM, E_PART_UNDEF, E_PART_IGNORE ;AN000;
818 E_PART_FAT EQU 1 ;AN000; FAT
819 E_PART_KSAM EQU 2 ;AN000; KSAM
820 E_PART_UNDEF EQU 3 ;AN000; not assigned
821 E_PART_IGNORE EQU 4 ;AN000; other partition types i.e not FAT or KSAM
822 ;
823 PUBLIC N_DISK_1, E_DISK_1, N_DISK_2, E_DISK_2 ;AN000;
824 PUBLIC E_DISK_INV, E_DISK_NO_PART, E_DISK_VAL_PART ;AN000;
825 N_DISK_1 DW ? ;AN000; first fixed disk status
826 N_DISK_2 DW ? ;AN000; second fixed disk status
827 E_DISK_1 EQU 1 ;AN000;
828 E_DISK_2 EQU 2 ;AN000;
829 E_DISK_INV EQU 0 ;AN000; fixed disk not present
830 E_DISK_NO_PART EQU 1 ;AN000; fixed disk present : no DOS or EDOS partitions
831 E_DISK_VAL_PART EQU 2 ;AN000; fixed disk present : DOS or EDOS partitions exist
832 ;
833 PUBLIC N_DISK_1_S1,N_DISK_2_S1,E_DISK_PRI,E_DISK_EXT_DOS ;AN000;
834 PUBLIC E_DISK_LOG_DRI,E_DISK_EDOS_MEM,E_DISK_FREE_MEM ;AN000;
835 N_DISK_1_S1 DW ? ;AN000; detailed status of first fixed drive
836 N_DISK_2_S1 DW ? ;AN000; detailed status or second fixed drive
837 E_DISK_PRI EQU 01H ;AN000; Primary DOS partition exists
838 E_DISK_EXT_DOS EQU 02H ;AN000; Extended DOS partitions exists
839 E_DISK_LOG_DRI EQU 04H ;AN000; Logical drives exist in Extended Dos partitions
840 E_DISK_EDOS_MEM EQU 08H ;AN000; Free space exists in Extended DOS partition
841 E_DISK_FREE_MEM EQU 10H ;AN000; Free disk space exists
842 ;
843 PUBLIC N_DISK_1_S2, N_DISK_2_S2,E_SPACE_NONE,E_SPACE_EDOS,E_SPACE_DISK ;AN000;
844 N_DISK_1_S2 DW 0 ;AN000;
845 N_DISK_2_S2 DW 0 ;AN000;
846 E_SPACE_NONE EQU 0 ;AN000; no free space in EDOS and DISK
847 E_SPACE_EDOS EQU 1 ;AN000; free space in EDOS
848 E_SPACE_DISK EQU 2 ;AN000; no EDOS but free space in disk
849 ;
850 PUBLIC F_PARTITION, E_PART_DEFAULT, E_PART_USER ;AN000;
851 F_PARTITION DW 1 ;AN000; partition size division option
852 E_PART_DEFAULT EQU 1 ;AN000; default partition sizes are to be used
853 E_PART_USER EQU 2 ;AN000; user will define partition sizes
854 ;
855 PUBLIC I_DESTINATION, E_ENTIRE_DISK, E_PATH_ONLY ;AN000;JW
856 I_DESTINATION DW 1 ;AN000; destination on c: disk option JW
857 E_ENTIRE_DISK EQU 1 ;AN000; replace files across entire disk JW
858 E_PATH_ONLY EQU 2 ;AN000; replace files in dos path only JW
859 ;
860 PUBLIC F_FORMAT, E_FORMAT_FAT, E_FORMAT_NO ;AN000;
861 F_FORMAT DW ? ;AN000;
862 E_FORMAT_FAT EQU 1 ;AN000; format partition with FAT
863 E_FORMAT_NO EQU 2 ;AN000; do not format partition
864 ;
865 PUBLIC N_DISK1_MODE, E_DISK1_INSTALL, E_DISK1_REPLACE ;AN000;
866 N_DISK1_MODE DW ? ;AN000; install mode for fixed disk
867 E_DISK1_INSTALL EQU 1 ;AN000; install DOS-no partitions
868 E_DISK1_REPLACE EQU 2 ;AN000; replace DOS-partitions exist
869 ;
870 PUBLIC DISK_1_TABLE,DISK_1_VAL_ITEM,DISK_1_START,M_DISK_1_ITEMS ;AN000;
871 DISK_1_TABLE DB M_DISK_1_ITEMS ;AN000; maximum no of items in table
872 DISK_1_VAL_ITEM DB 0 ;AN000; number of valid entries in table
873 DISK_1_START DB (100*TYPE DISK_STATUS) DUP (0) ;AN000;
874 M_DISK_1_ITEMS EQU ($ - DISK_1_START) / TYPE DISK_STATUS ;AN000;
875 ;
876 PUBLIC DISK_2_TABLE,DISK_2_VAL_ITEM,DISK_2_START,M_DISK_2_ITEMS ;AN000;
877 DISK_2_TABLE DB M_DISK_2_ITEMS ;AN000; maximum no of items in table
878 DISK_2_VAL_ITEM DB 0 ;AN000; number of valid entries in table
879 DISK_2_START DB (100*TYPE DISK_STATUS) DUP (0) ;AN000;
880 M_DISK_2_ITEMS EQU ($ - DISK_2_START) / TYPE DISK_STATUS ;AN000;
881 ;
882 PUBLIC N_NAME_PART,N_SIZE_PART,N_STATUS_PART,P_DRIVE_PART,N_TYPE_PART,N_LEVEL1_PART,N_LEVEL2_PART,N_LEVEL3_PART,N_LEVEL4_PART ;AC065;SEH add check for version number ;AN000;
883 N_NAME_PART DB 0 ;AN000; partition name
884 N_SIZE_PART DW 0 ;AN000; partition size
885 N_STATUS_PART DB 0 ;AN000; partition status
886 N_TYPE_PART DB 0 ;AN000; partition type
887 P_DRIVE_PART DB ' ' ;AN000; drive letter assigned
888 N_LEVEL1_PART DB 0 ;AN065; SEH version number (1st part) for DOS 4.00 1st part = blank
889 N_LEVEL2_PART DB 0 ;AN065; SEH version number (2nd part) for DOS 4.00 2nd part = 4
890 N_LEVEL3_PART DB 0 ;AN065; SEH version number (3rd part) for DOS 4.00 3rd part = .
891 N_LEVEL4_PART DB 0 ;AN065; SEH version number (4th part) for DOS 4.00 4th part = 0
892 ;
893 PUBLIC N_DISK_NUM,E_DISK_ROW,E_DISK_COL,E_DRIVE_ROW,E_DRIVE_COL ;AN000;
894 N_DISK_NUM DB ? ;AN000; holder for ascii disk number
895 E_DISK_ROW EQU 0 ;AN000; row for fixed disk number (0 based)
896 E_DISK_COL EQU 19 ;AN000; column for fixed disk number
897 E_DRIVE_ROW EQU 0 ;AN000; row for logical drive letter (0 based)
898 E_DRIVE_COL EQU 19 ;AN000; column for logical drive letter
899 ;
900 PUBLIC STACK_INDEX, SELECT_STACK, STACK_SIZE ;AN000;
901 STACK_INDEX DB 00H ;AN000; no. of entries in stack
902 SELECT_STACK DW 50 DUP(?) ;AN000; stack entries
903 STACK_SIZE EQU $ - SELECT_STACK ;AN000; size of SELECT stack
904 ;
905 PUBLIC N_DEST,E_DEST_DOS,E_DEST_SHELL ;AN000;
906 N_DEST DB ? ;AN000;
907 E_DEST_DOS EQU 1 ;AN000;
908 E_DEST_SHELL EQU 2 ;AN000;
909 ;
910 ; Variables which return information if a critical error occurs.
911 ; INT_24_ERROR returns the error code from the critical error routine
912 ; INT_24_FLAG is set if a critical error occurs. It is not enough
913 ; to check if INT_24_ERROR is non-zero, since a value of zero is a critical error.
914 PUBLIC INT_24_ERROR, INT_24_FLAG ;AN000;
915 INT_24_ERROR DW 0 ;AN000;
916 INT_24_FLAG DB 0 ;AN000;
917 ;
918 ; Area to save the old interrupt 23h vector for restoration when the program is done.
919 PUBLIC OLD_INT_23 ;AN074;SEH ctrl-break
920 OLD_INT_23 DD 0 ;AN074;SEH
921 ; Area to save the old interrupt 24h vector for restoration when the program is done.
922 PUBLIC OLD_INT_24 ;AN000;
923 OLD_INT_24 DD 0 ;AN000;
924 ; Area to save the old interrupt 2Fh vector for restoration when the program is done.
925 PUBLIC OLD_INT_2F ;AN000;
926 OLD_INT_2F DD 0 ;AN000;
927 ;
928 PUBLIC MEM_SIZE ;AN000;
929 MEM_SIZE DW 0 ;AN000;DT installed memory in machine
930 ;
931 PUBLIC FORMAT_WHICH, STARTUP, SHELL ;AN000;
932 FORMAT_WHICH DB ? ;AN111; indicator for which disk (720) to format JW
933 STARTUP EQU 0 ;AN111; format startup
934 SHELL EQU 1 ;AN111; format shell
935 ;
936 PUBLIC DISK_PANEL, SEARCH_FILE ;AN000;JW
937 DISK_PANEL DW ? ;AN000;JW Holds panel number for INSERT_DISK
938 SEARCH_FILE DW ? ;AN000;JW Holds offset of file to search for
939
940 PUBLIC SUB_ERROR ;AN000;JW Holds error code of sub process
941 SUB_ERROR DB ? ;AN000;JW
942
943 include msgdcl.inc
944 ;
945 DATA ENDS ;AN000;
946 END ;AN000;