3 TITLE VARIABLES
- DOS
- SELECT
.EXE
;AN000;
6 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 ; VAR.ASM: Copyright 1988 Microsoft
12 ; COMMENTS: Assemble with MASM 3.0 (using the /A option)
14 ; Module contains variables used by SELECT.
19 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
21 INCLUDE SYSMSG
.INC ;AN000;
22 MSG_UTILNAME
<SELECT
> ;AN000;
24 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000;
29 INCLUDE VARSTRUC
.INC ;AN000;
30 INCLUDE SEL_FILE
.INC ;AN000;
32 PUBLIC E_ENTER
,E_TAB
,E_ESCAPE
;AN000;
41 PUBLIC DRIVE_A
,DRIVE_B
;AN000;JW
42 DRIVE_A EQU
0 ;AN000;JW
43 DRIVE_B EQU
1 ;AN000;JW
45 MSG_SERVICES
<MSGDATA
> ;AN000;
47 PUBLIC SUPPORT_STATUS
;AN000;
48 SUPPORT_STATUS
DW ?
;AN000;
59 PUBLIC I_USER_INDEX
;AN000;
60 I_USER_INDEX
DW ?
;AN000; Index value for scroll list
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
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;
72 PUBLIC N_VALID_KEYS
;AN000;
73 N_VALID_KEYS
DW ?
;AN000; Valid keys for current input
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; ;
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;
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;
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;
95 PUBLIC FK_ENT
, FK_ENT_LEN
;AN000;
96 FK_ENT
DB ENTER ;AN000; Enter
97 FK_ENT_LEN EQU
($-FK_ENT
) ;AN000;
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;
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;
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;
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;
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;
119 PUBLIC FK_FORMAT
, FK_FORMAT_LEN
;AN000;
120 FK_FORMAT
DB ENTER,0,F1
;AN000;
121 FK_FORMAT_LEN EQU
($-FK_FORMAT
) ;AN000;
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;
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;
131 E_RETURN EQU
2 ;AN000;
133 PUBLIC E_YES
, E_NO
, E_NA
;AN000;
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
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
150 PUBLIC S_SPACE
;AN000;
151 S_SPACE
DW M_SPACE
;AN000;
152 P_SPACE
DB ' ' ;AN000;
153 M_SPACE EQU
$ - P_SPACE
;AN000;
156 S_OFF
DW M_OFF
;AN000; OFF parameter
157 P_OFF
DB 'OFF' ;AN000;
158 M_OFF EQU
$ - P_OFF
;AN000;
161 S_ON
DW M_ON
;AN000; ON parameter
163 M_ON EQU
$ - P_ON
;AN000;
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
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;
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;
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
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;
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;
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;
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
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;
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;
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;
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;
267 D_FILES_2
DW 1 ;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;
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;
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;
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;
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;
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
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;
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
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;
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
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
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;
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;
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;
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;
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
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
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:
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
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
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)
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;
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
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;
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;
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
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
474 PUBLIC I_COUNTRY
, N_COUNTRY
;AN000;
475 I_COUNTRY
DW ?
;AN000; Index into country code list
476 N_COUNTRY
DW ?
;AN000; Country Code
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
483 PUBLIC I_KEYBOARD
;AN000;
484 I_KEYBOARD
DW ?
;AN000; Index into keyboard code list
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
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
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
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
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
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
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
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
580 PUBLIC ALT_TAB_PTR
;AN000;
581 ALT_TAB_PTR
DW ?
;AN000; pointer keyboard table
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
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
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;
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;
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;
615 PUBLIC ALT_ID_DEF
;AN000;
616 ALT_ID_DEF
DB 0 ;AN000;DT
621 M_US EQU
$ - P_US
;AN000;
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;
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
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;
643 PUBLIC N_SERIAL
, N_PARALLEL
;AN000;
644 N_PARALLEL
DW ?
;AN000;
645 N_SERIAL
DW ?
;AN000;
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
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'
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;
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;
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;
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;
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
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
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;
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;
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;
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;
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;
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;
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 5
CH ;AN000; default FCB
723 DW ?
;AN000; segment for FCB
724 DW 6
CH ;AN000; default FCB
725 DW ?
;AN000; segment for FCB
726 PARM_BLOCK_END EQU
$ ;AN000;
728 CMD_BUFF
LABEL BYTE ;AN000; command line passed to EXEC_PROGRAM
729 DB ?
;AN000; length of command line - excluding carrier return
731 CMD_BUFF_END EQU
$ ;AN000;
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
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;
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;
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;
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
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;
763 PUBLIC N_HANDLE
;AN000;
764 N_HANDLE
DW ?
;AN000; save location for file handle
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
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
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
783 PUBLIC SAVE_AREA
;AN000;
784 SAVE_AREA
DB 4 DUP(?
) ;AN000; save area for stack pointer before EXEC program
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
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
796 PUBLIC E_CR
, E_LF
;AN000;
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
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
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
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
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
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
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
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
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
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
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;
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;
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
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
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
905 PUBLIC N_DEST
,E_DEST_DOS
,E_DEST_SHELL
;AN000;
907 E_DEST_DOS EQU
1 ;AN000;
908 E_DEST_SHELL EQU
2 ;AN000;
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;
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;
928 PUBLIC MEM_SIZE
;AN000;
929 MEM_SIZE
DW 0 ;AN000;DT installed memory in machine
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
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
940 PUBLIC SUB_ERROR
;AN000;JW Holds error code of sub process
941 SUB_ERROR
DB ?
;AN000;JW