5 TITLE SELECT1
- DOS
- SELECT
.EXE
;AN000;
6 SUBTTL select1
.asm
;AN000;
8 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10 ; SELECT1.ASM : Copyright 1988 Microsoft
14 ; COMMENTS: Assemble with MASM 3.0 (using the /A option)
16 ; Panel flow is defined in the following files:
27 ; ;AN001;JW - P2452 Check for user switching disk before asked to
29 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30 _TEXT
segment byte public 'CODE' ;AN000;
31 extrn gget_status
:far ;AN000;
33 _DATA
segment word public 'DATA' ;AN000;
35 CONST
segment word public 'CONST' ;AN000;
37 _BSS
segment word public 'BSS' ;AN000;
40 DGROUP GROUP CONST
,_BSS
,_DATA
;AN000;
42 DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000; Segment for Data values
44 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
49 INCLUDE PANEL
.MAC
;AN000;
50 INCLUDE SELECT
.INC ;AN000;
51 INCLUDE CASTRUC
.INC ;AN000;
52 INCLUDE STRUC.INC ;AN000;
53 INCLUDE MACROS
.INC ;AN000;
54 INCLUDE EXT
.INC ;AN000;
55 INCLUDE VARSTRUC
.INC ;AN000;
56 INCLUDE ROUT_EXT
.INC ;AN000;
57 INCLUDE PAN
-LIST
.INC ;AN000;
60 EXTRN PM_BASECHAR
:BYTE ;AN000;
61 EXTRN PM_BASEATTR
:BYTE ;AN000;
62 EXTRN CRD_CCBVECOFF
:WORD ;AN000;
63 EXTRN CRD_CCBVECSEG
:WORD ;AN000;
65 EXTRN ALLOCATE_MEMORY_CALL
:FAR ;AN000;
66 EXTRN DEALLOCATE_MEMORY_CALL
:FAR ;AN000;
67 EXTRN VIDEO_CHECK
:FAR ;AN000;
68 EXTRN EXIT_SELECT
:NEAR ;AN000;
69 EXTRN EXIT_SELECT2
:NEAR ;AN000;JW
70 EXTRN ABORT_SELECT
:NEAR ;AN000;
71 EXTRN HANDLE_F3
:NEAR ;AN001;GHG
73 PUBLIC CHECK_VERSION
;AN000;
74 PUBLIC INTRO_SCREEN
;AN000;
75 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
78 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79 SELECT
SEGMENT PARA
PUBLIC 'SELECT' ;AN000;
80 ASSUME
CS:SELECT
,DS:DATA ;AN000;
86 INCLUDE CASEXTRN
.INC ;AN000;
88 EXTRN EXIT_DOS
:NEAR ;AN000;
89 EXTRN EXIT_DOS_CONT
:NEAR ;AN000;
90 EXTRN PROCESS_ESC_F3
:NEAR ;AN000;
91 EXTRN WORKSPACE_SCREEN
:NEAR ;AN000;
92 EXTRN DATE_TIME_SCREEN
:NEAR ;AN000;
93 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
97 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
98 CHECK_VERSION: ;AN000;
99 INIT_VAR N_HOUSE_CLEAN
,E_CLEAN_NO
;AN000; no files to be erased on exit
101 CHECK_DOS_VERSION
;AN000; check DOS version
102 ;;;check for DOS version 4.00 ;
103 .IF c
;AN000; if incorrect DOS version
104 DISPLAY_MESSAGE
1 ;AN000;
105 GOTO EXIT_DOS_CONT
;AN000;
108 CHECK_DEFAULT_DRIVE
;AN000; check if default drive is A:
109 ;;;check if default drive is A: ;
110 .IF c
;AN000; if default drive not A:
111 DISPLAY_MESSAGE
4 ;AN000;
112 GOTO EXIT_DOS_CONT
;AN000;
115 CHECK_DISKETTE N_DISKETTE_A
,N_DISKETTE_B
,N_DISKETTE_TOT
,P_STR120_1
;AN000;
116 ;;;get diskette media type and no of drives ;
117 ;;;N_DISKETTE_A & B - media type 360k,720k, etc ;
118 ;;;N_DISKETTE_TOT - number of drives ;
120 CHECK_DISK E_DISK_1
,N_DISK_1
,N_DISK_1_S1
,N_DISK_1_S2
,DISK_1_TABLE
;AN000;
121 ;;;get partition status for 1st fixed disk ;
122 ;;;N_DISK_1 - disk status ;
123 ;;;N_DISK_1_S1 - detailed disk status word 1 ;
124 ;;;N_DISK_1_S2 - detailed disk status word 2 ;
125 ;;;DISK_1_TABLE - status of all partitions ;
127 CHECK_DISK E_DISK_2
,N_DISK_2
,N_DISK_2_S1
,N_DISK_2_S2
,DISK_2_TABLE
;AN000;
128 ;;;get partition status for 2nd fixed disk ;
129 ;;;N_DISK_2 - disk status ;
130 ;;;N_DISK_2_S1 - detailed disk status byte 1 ;
131 ;;;N_DISK_2_S2 - detailed disk status byte 2 ;
132 ;;;DISK_2_TABLE - status of all partitions ;
134 CHECK_VALID_MEDIA N_DISKETTE_A
,N_DISKETTE_B
,N_DISKETTE_TOT
,N_DISK_1
,N_DEST_DRIVE
,I_DEST_DRIVE
,N_DRIVE_OPTION
;AN000;JW
135 ;;;check if disk/diskette combination is valid ;
136 ;;;also determine default install drive ;
137 ;;;N_DEST_DRIVE - default/user drive choice ;
138 ;;;I_DEST_DRIVE - drive A: or B: or C: ; ;AN111;JW
139 ;;;N_DRIVE_OPTION - which drive options are avail ;AN111;JW
141 DISPLAY_MESSAGE
5 ;AN000;
142 GOTO EXIT_DOS_CONT
;AN000;
145 GET_INSTALLED_MEM MEM_SIZE
;AN000;
147 CHECK_MACHINE MACHINE_TYPE
, PS2_FLAG
;AN000;JW
149 SCAN_PARAMETERS N_SELECT_MODE
;AN000;
150 ;;;scan command line ;
151 ;;;N_SELECT_MODE - MENU or FDISK ;
152 .IF < N_SELECT_MODE
EQ E_SELECT_INV
> ;AN000;JW
153 DISPLAY_MESSAGE
6 ;AN000;JW
154 GOTO EXIT_SELECT2
;AN000;JW
157 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
159 ; If this is reboot after FDISK, load parameters in SELECT.TMP
161 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
162 .IF < N_SELECT_MODE
eq E_SELECT_FDISK
> and ;AN000;JW
163 .IF < N_DISKETTE_A ne E_DISKETTE_360
> ;AN000;
164 CALL SCAN_INFO_CALL
;AN000;
166 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
167 CHECK_DISPLAY
;AN000; determine display type
168 .IF < ACTIVE
eq EGA
> or ;AN000;
169 .IF < ALTERNATE
eq EGA
> or ;AN000;
170 .IF < ACTIVE
eq LCD
> or ;AN000;
171 .IF < ALTERNATE
eq LCD
> ;AN000;
172 INIT_VAR N_DISPLAY
, E_CPSW_DISP
;AN000;
174 INIT_VAR N_DISPLAY
, E_NOCPSW_DISP
;AN000;
176 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
178 ; Read in SELECT.DAT data (all but the help)
180 ; This will read in the panels, the scroll fields,
181 ; the color index (COLOR or MONO), and (EVENTUALLY)
184 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
185 SET_DISPLAY_MODE
;AC084; SEH call moved before video information requested ;AN000; set display to 80 col and 25 lines
186 CALL PCGVIDO_CALL
;AN000;get video information
187 ALLOCATE_MEMORY
;AN000;allocate enough memory for SELECT.DAT
189 CALL INITIALIZE
;AN000;read all panels, color, scroll
190 .IF < NC
> ;AN000;check if error condition occurred
191 INITIALIZE_BCHAR BCHAR
;AN000;Initialize the background character
192 JMP MEMORY_ALLOCATED
;AN000;
194 JMP EXIT_SELECT
;AN000;terminate SELECT without affecting memory
197 DISPLAY_MESSAGE
20 ;AN067;SEH insufficient memory
198 JMP ABORT_SELECT
;AN000;
200 MEMORY_ALLOCATED: ;AN000;
201 ;;; CALL CURSOROFF ;AN000;deactive cursor
202 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
204 ; Commence the heart of the SELECT installation routine.
205 ; At the initial portion of the code, a system hardware
206 ; check out is performed. The peripherals are established,
207 ; the display type is determined, and checks are made against
208 ; disk media installed.
210 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
211 ;;; CALL CURSOROFF ;AN000;
213 .IF < ACTIVE
eq EGA
> ;AN000; if active display = EGA
214 COPY_STRING S_STR120_1
,M_STR120_1
,S_PREP_EGA
;AN000; set parameter for EGA.CPI
215 .ELSEIF
< ACTIVE
eq LCD
> ;AN000; elseif active display = LCD
216 COPY_STRING S_STR120_1
,M_STR120_1
,S_PREP_LCD
;AN000; set parameter for LCD.CPI
218 INIT_VAR S_STR120_1
, 0 ;AN000; set parameter = null
221 .IF < S_STR120_1 gt
0 > ;AN000; if parameter is not null
222 EXEC_PROGRAM S_MODE
,S_STR120_1
,PARM_BLOCK
,EXEC_DIR
;AN000;GHG exec MODE CON CP PREP((850)...)
223 EXEC_PROGRAM S_MODE
,S_CP_SEL
,PARM_BLOCK
,EXEC_DIR
;AN000;GHG execute MODE CON CP SEL=850
226 INIT_VAR F_PARTITION
, E_PART_DEFAULT
;AN000;
227 INIT_VAR F_FORMAT
, E_FORMAT_FAT
;AN000;
228 .IF < N_SELECT_MODE
eq E_SELECT_FDISK
> ;AN000;
229 INIT_VAR I_DEST_DRIVE
, E_DEST_DRIVE_C
;AN000;
230 GOTO DATE_TIME_SCREEN
;AN000;
233 CHECK_EXPANDED_MEMORY N_XMA
, N_MOD80
;AN000; check if expanded memory is present
234 GET_NUMBER_PORTS N_PARALLEL
, N_SERIAL
;AN000; get number of parallel/serial ports
235 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
237 ; Initialize pre-defined country and keyboard information
239 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
240 GET_DOS_COUNTRY P_STR120_1
, N_COUNTRY
;AN000; get current DOS country
241 GET_COUNTRY_INDEX N_COUNTRY
, N_CTY_LIST
,I_COUNTRY
;AN000; get index into country table
242 GET_COUNTRY_DEFAULTS N_CTY_LIST
, I_COUNTRY
;AN000; get default data for specified country
243 .IF < N_DISPLAY
eq E_CPSW_DISP
> ;AN000;
244 .IF < N_CPSW
eq E_CPSW_NOT_VAL
> ;AN000; if cpsw not valid
245 INIT_VAR F_CPSW
, E_CPSW_NA
;AN000; set cpsw = not available
246 .ELSEIF
< N_CPSW
eq E_CPSW_NOT_REC
> ;AN000; else if cpsw not recommended
247 INIT_VAR F_CPSW
, E_CPSW_NO
;AN000; set cpsw = no
249 INIT_VAR F_CPSW
, E_CPSW_YES
;AN000; set cpsw = yes
252 INIT_VAR F_CPSW
, E_CPSW_NA
;AN000;
254 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
256 ; If country is SWISS:
257 ; then get keyboard from an input field
259 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
260 COMPARE_STRINGS S_KEYBOARD
,S_SWISS
;AN000;GHG is default KB=SF?
262 RETURN_STRING STR_SWISS_KEYB
,S_KEYBOARD
,M_KEYBOARD
+2;AN000;GHG
264 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
266 ; Establish the default keyboard indice based on the
267 ; existing keyboard string.
269 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
270 GET_KEYBOARD_INDEX S_KEYBOARD
,N_KYBD_LIST
,I_KEYBOARD
,N_KYBD_ALT
;AN000; get kybd info
271 .IF < N_KYBD_ALT
eq E_KYBD_ALT_YES
> near ;AN000;
272 GET_ALT_KYBD_TABLE S_KEYBOARD
,ALT_TAB_PTR
,ALT_KYB_ID
;AN000; get ptr to alt kybd
273 COPY_BYTE ALT_KYB_ID_PREV
, ALT_KYB_ID
;AN000; set prev id = current id
274 INIT_VAR I_KYBD_ALT
, 2 ;AN090; set index into alt kybd list = 2
275 GET_ALT_KEYBOARD ALT_TAB_PTR
,ALT_KYB_ID
,I_KYBD_ALT
,S_KYBD_ALT
;AN000; get alt kybd id
277 INIT_VAR ALT_KYB_ID_PREV
, 0 ;AN000; set prev alt kyb id = 0
280 INIT_VAR N_KYB_LOAD
, E_KYB_LOAD_UND
;AN000; set KEYB loaded status = undefined
281 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
283 ; Initialize installation variables to default values
285 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
286 .IF < MEM_SIZE
eq 256 > ;AN000;JW
287 INIT_VAR I_WORKSPACE
, E_WORKSPACE_MIN
;AN000; set workspace option = minimum DOS JW
288 COPY_STRING S_FILES
, M_FILES
, D_FILES_2
;AN000; set FILES = 20
290 INIT_VAR I_WORKSPACE
, E_WORKSPACE_BAL
;AN000; set workspace option = balance DOS
291 COPY_STRING S_FILES
, M_FILES
, D_FILES_1
;AN000; set FILES = 20
293 INIT_VAR N_WORK_PREV
, 0 ;AN000; set previous workspace option=undefined
294 COPY_STRING S_BREAK
, M_BREAK
, S_ON
;AN000; set BREAK = ON
295 COPY_STRING S_CPSW
, M_CPSW
, S_OFF
;AN000; set CPSW = OFF
296 COPY_STRING S_LASTDRIVE
,M_LASTDRIVE
,D_LASTDRIVE_1
;AN000; set LASTDRIVE = E
297 INIT_VAR S_STACKS
, 0 ;AN000; set STACKS = null (spaces)
298 COPY_STRING S_VERIFY
, M_VERIFY
, S_OFF
;AN000; set VERIFY = OFF
299 COPY_STRING S_PROMPT
, M_PROMPT
, D_PROMPT_1
;AN000; set PROMPT = $P$G
300 COPY_STRING S_DOS_LOC
,M_DOS_LOC
,D_DOS_LOC_1
;AN000; set DOS location = DOS
301 INIT_VAR S_INSTALL_PATH
, 0 ;AN000; set install path = null
302 INIT_VAR F_SHELL
,E_SHELL_NO
;AN000; set SHELL = no
303 .IF < MEM_SIZE
eq 256 > ;AN000;DT
304 COPY_STRING S_SHELL
, M_SHELL
, D_SHELL_1
;AN000; set SHELL parameter = /R
306 COPY_STRING S_SHELL
, M_SHELL
, D_SHELL_2
;AN000; set SHELL parameter = /R
308 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
310 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
311 INIT_VAR F_SHARE
, E_SHARE_NO
;AN000; set SHARE = no
312 INIT_VAR S_SHARE
, 0 ;AN000; set SHARE parameter = null
313 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
315 ; Continue initialization ...
317 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318 INIT_VAR F_VDISK
, E_VDISK_NO
;AN000; set VDISK = no
319 INIT_VAR S_VDISK
, 0 ;AN000; set VDISK field = null (spaces)
320 .IF < N_XMA
eq E_XMA_PRESENT
> ;AN000; if expanded memory present
321 INIT_VAR F_XMA
, E_XMA_NO
;AN000; set XMA = no (default)
322 INIT_VAR S_XMAEM
, 0 ;AN000; set XMAEM field=null (spaces)
323 COPY_STRING S_XMA2EMS
,M_XMA2EMS
,D_XMA2EMS_1
;AN000; & XMA2EMS field=FRAME=(D000,C800,CC00)
325 INIT_VAR F_XMA
, E_XMA_NA
;AN000; set XMA = no
327 INIT_VAR F_REVIEW
, E_REVIEW_ACCEPT
;AN000; set review option = accept selection
328 INIT_VAR I_CTY_KYBD
, E_CTY_KB_PREDEF
;AN000; set country support=pre-defined support
330 .IF < ACTIVE
eq CGA
> or ;AN000; if CGA adaptor
331 .IF < ALTERNATE
eq CGA
> ;AN000;
332 INIT_VAR F_GRAFTABL
, E_GRAFTABL_YES
;AN000; set GRAFTABL = yes
334 INIT_VAR F_GRAFTABL
, E_GRAFTABL_NA
;AN000; set GRAFTABL = not available
337 INIT_VAR N_NUMPRINT
, MIN_NUMPRINT
;AN000; set number of printers = 0
338 INIT_VAR I_PRINTER
, 1 ;AN000; set index into printer list = 1
339 INIT_VAR I_PORT
, 1 ;AN000; set port number = 1
340 INIT_VAR I_REDIRECT
, 1 ;AN000; set redirect port number = 1
342 CALL HOOK_INT_23
;AN074; SEH don't allow ctrl-break
343 CALL CURSOROFF
;AN054; SEH moved from earlier in code
344 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
346 ; ������������������������������������Ŀ
349 ; ��������������������������������������
351 ; The WELCOME screen is always presented.
352 ; The screen does not have help, F3 function or input variables.
353 ; Valid keys are ENTER and ESC.
354 ; ESC key will return control to the DOS command line.
355 ; If installing from 360KB diskettes, must prompt for INSTALL diskette
356 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
357 WELCOME_SCREEN: ;AN000;
359 .IF < N_DISKETTE_A
eq E_DISKETTE_360
> ;AN000;
360 INSERT_DISK SUB_REM_DOS_A
, S_DOS_COM_360
;AN000; Insert the INSTALL diskette
363 WELCOME_SCREEN2: ;AN000;
364 INIT_PQUEUE PAN_WELCOME
;AN000; initialize queue
365 PREPARE_PANEL SUB_CONT_OPTION
;AN000; prepare continue or cancel
366 PREPARE_PANEL PAN_HBAR
;AN000; prepare horizontal bar
367 PREPARE_CHILDREN
;AN000; prepare child panels
368 DISPLAY_PANEL
;AN000; display WELCOME panel
370 GET_FUNCTION FK_ENT_ESC_F3
;AN000; get user entered function
371 .IF < N_USER_FUNC
eq E_F3
> ;AN000;DT if user entered F3 key
372 GOTO EXIT_DOS
;AN000;DT
373 .ELSEIF
< N_USER_FUNC
eq E_ENTER
> ;AN000; if user entered ENTER key
374 FIND_FILE S_PRINT_FILE
, E_FILE_ATTR
;AN001; check to make sure they did not switch
376 INSERT_DISK SUB_REM_DOS_A
, S_PRINT_FILE
;AN000;JW
378 GOTO INTRO_SCREEN
;AN000; go to next screen
380 CALL HANDLE_F3
;AN001;GHG exit to DOS command line
382 GOTO EXIT_DOS
;AN001;GHG
384 GOTO WELCOME_SCREEN2
;AN001;GHG
387 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
389 ; ������������������������������������Ŀ
392 ; ��������������������������������������
394 ; The INTRODUCTION screen is always presented.
395 ; The screen does not have help, F3 function or any variables.
396 ; Valid keys are ENTER and ESC.
397 ; ESC key will return control to the DOS command line.
398 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
399 INTRO_SCREEN: ;AN000;
400 INIT_PQUEUE PAN_INTRO
;AN000; initialize queue
401 PREPARE_PANEL PAN_HBAR
;AN000; prepare horizontal bar
402 PREPARE_CHILDREN
;AN000; prepare child panels
403 DISPLAY_PANEL
;AN000; display INTRODUCTION panel
405 GET_FUNCTION FK_ENT_ESC_F3
;AN000; get user entered function
406 .IF < N_USER_FUNC
eq E_F3
> ;AN027;SEH Added to prevent going to Welcome Screen
407 GOTO EXIT_DOS
;AN027;SEH when F3 hit
409 .ELSEIF
< N_USER_FUNC
eq E_ENTER
> ;AN000; if user entered ENTER key
410 GOTO WORKSPACE_SCREEN
;AN000; go to next screen
412 GOTO WELCOME_SCREEN2
;AN001;GHG; exit to DOS command line
414 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
416 ; ROUTINE TO SCAN SELECT.TMP FILE
418 ; Broken down into a subroutine for code savings...
420 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
421 PUBLIC SCAN_INFO_CALL
;AN000;
422 SCAN_INFO_CALL PROC
NEAR ;AN000;
423 SCAN_INFO_FILE F_SHELL
, N_FORMAT_MODE
,N_DISK1_MODE
,I_DESTINATION
,S_INSTALL_PATH
,S_SELECT_TMP
,P_STR120_1
,M_STR120_1
424 ;;;F_SHELL - shell installation flag
425 ;;;N_FORMAT_MODE - partition & format option :
426 ;;; new(select),new(user),used(user) ;
427 ;;;N_DISK1_MODE - 1st disk status - new or used ;
428 ;;;I_DESTINATION - destination on c: disk option
429 ;;;S_INSTALL_PATH - DOS install path ;
430 ;;;S_SELECT_TMP - file for FDISK parameters ;
432 .IF < N_SELECT_MODE
eq E_SELECT_INV
> ;AN000; if SELECT mode not MENU or FDISK
433 DISPLAY_MESSAGE
6 ;AN000;
434 GOTO EXIT_DOS_CONT
;AN000;
437 .IF < N_SELECT_MODE
eq E_SELECT_FDISK
> and ;AN000; if SELECT mode is FDISK
438 .IF < N_FORMAT_MODE
eq E_SELECT_INV
> or ;AN000; and format and disk status
439 .IF < N_DISK1_MODE
eq E_SELECT_INV
> ;AN000; not available from SELECT.TMP
440 DISPLAY_MESSAGE
6 ;AN000;
441 GOTO EXIT_DOS_CONT
;AN000;
444 SCAN_INFO_CALL ENDP
;AN000;
445 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;