summaryrefslogtreecommitdiff
path: root/v4.0/src/SELECT/SELECT1.ASM
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/SELECT/SELECT1.ASM
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/SELECT/SELECT1.ASM')
-rw-r--r--v4.0/src/SELECT/SELECT1.ASM447
1 files changed, 447 insertions, 0 deletions
diff --git a/v4.0/src/SELECT/SELECT1.ASM b/v4.0/src/SELECT/SELECT1.ASM
new file mode 100644
index 0000000..3770fd7
--- /dev/null
+++ b/v4.0/src/SELECT/SELECT1.ASM
@@ -0,0 +1,447 @@
1
2
3PAGE 60,132 ;AN000;
4NAME SELECT ;AN000;
5TITLE SELECT1 - DOS - SELECT.EXE ;AN000;
6SUBTTL select1.asm ;AN000;
7.ALPHA ;AN000;
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9;
10; SELECT1.ASM : Copyright 1988 Microsoft
11;
12; DATE: July 4/87
13;
14; COMMENTS: Assemble with MASM 3.0 (using the /A option)
15;
16; Panel flow is defined in the following files:
17;
18; SELECT1.ASM
19; SELECT2.ASM
20; SELECT3.ASM
21; SELECT4.ASM
22; SELECT5.ASM
23; SELECT6.ASM
24;
25; CHANGE HISTORY:
26;
27; ;AN001;JW - P2452 Check for user switching disk before asked to
28;
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30_TEXT segment byte public 'CODE' ;AN000;
31 extrn gget_status:far ;AN000;
32_TEXT ends ;AN000;
33_DATA segment word public 'DATA' ;AN000;
34_DATA ends ;AN000;
35CONST segment word public 'CONST' ;AN000;
36CONST ends ;AN000;
37_BSS segment word public 'BSS' ;AN000;
38_BSS ends ;AN000;
39 ;
40DGROUP GROUP CONST,_BSS,_DATA ;AN000;
41 ;
42DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000; Segment for Data values
43DATA ENDS ;AN000;
44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
45;
46;
47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
48.XLIST ;AN000;
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;
58.LIST ;AN000;
59 ;
60 EXTRN PM_BASECHAR:BYTE ;AN000;
61 EXTRN PM_BASEATTR:BYTE ;AN000;
62 EXTRN CRD_CCBVECOFF:WORD ;AN000;
63 EXTRN CRD_CCBVECSEG:WORD ;AN000;
64 ;
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
72 ;
73 PUBLIC CHECK_VERSION ;AN000;
74 PUBLIC INTRO_SCREEN ;AN000;
75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76;
77;
78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79SELECT SEGMENT PARA PUBLIC 'SELECT' ;AN000;
80 ASSUME CS:SELECT,DS:DATA ;AN000;
81 ;
82 PUBLIC BCHAR ;AN000;
83 DB 'BCHAR=' ;AN000;
84BCHAR DB ' ' ;AN000;
85 ;
86 INCLUDE CASEXTRN.INC ;AN000;
87 ;
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
94;
95; Beginning of code
96;
97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
98CHECK_VERSION: ;AN000;
99 INIT_VAR N_HOUSE_CLEAN,E_CLEAN_NO ;AN000; no files to be erased on exit
100 ;
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;
106 .ENDIF ;AN000; EXIT
107 ;
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;
113 .ENDIF ;AN000; EXIT
114 ;
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 ;
119 ;
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 ;
126 ;
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 ;
133 ;
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
140 .IF c ;AN000;
141 DISPLAY_MESSAGE 5 ;AN000;
142 GOTO EXIT_DOS_CONT ;AN000;
143 .ENDIF ;AN000;
144 ;
145 GET_INSTALLED_MEM MEM_SIZE ;AN000;
146 ;
147 CHECK_MACHINE MACHINE_TYPE, PS2_FLAG ;AN000;JW
148 ;
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
155 .ENDIF ;AN000;JW
156 ;
157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158;
159; If this is reboot after FDISK, load parameters in SELECT.TMP
160;
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;
165 .ENDIF ;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;
173 .ELSE ;AN000;
174 INIT_VAR N_DISPLAY, E_NOCPSW_DISP ;AN000;
175 .ENDIF ;AN000;
176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
177;
178; Read in SELECT.DAT data (all but the help)
179;
180; This will read in the panels, the scroll fields,
181; the color index (COLOR or MONO), and (EVENTUALLY)
182; the input fields.
183;
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
188 .IF < NC > ;AN000;
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;
193 .ELSE ;AN000;
194 JMP EXIT_SELECT ;AN000;terminate SELECT without affecting memory
195 .ENDIF ;AN000;
196 .ELSE ;AN000;
197 DISPLAY_MESSAGE 20 ;AN067;SEH insufficient memory
198 JMP ABORT_SELECT ;AN000;
199 .ENDIF ;AN000;
200MEMORY_ALLOCATED: ;AN000;
201 ;;; CALL CURSOROFF ;AN000;deactive cursor
202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
203;
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.
209;
210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
211 ;;; CALL CURSOROFF ;AN000;
212 ;
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
217 .ELSE ;AN000; else
218 INIT_VAR S_STR120_1, 0 ;AN000; set parameter = null
219 .ENDIF ;AN000;
220 ;
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
224 .ENDIF ;AN000;
225 ;
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;
231 .ENDIF ;AN000;
232 ;
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
236;
237; Initialize pre-defined country and keyboard information
238;
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
248 .ELSE ;AN000; else
249 INIT_VAR F_CPSW, E_CPSW_YES ;AN000; set cpsw = yes
250 .ENDIF ;AN000;
251 .ELSE ;AN000;
252 INIT_VAR F_CPSW, E_CPSW_NA ;AN000;
253 .ENDIF ;AN000;
254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
255;
256; If country is SWISS:
257; then get keyboard from an input field
258;
259;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
260 COMPARE_STRINGS S_KEYBOARD,S_SWISS ;AN000;GHG is default KB=SF?
261 .IF <NC> ;AN000;GHG
262 RETURN_STRING STR_SWISS_KEYB,S_KEYBOARD,M_KEYBOARD+2;AN000;GHG
263 .ENDIF ;AN000;GHG
264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
265;
266; Establish the default keyboard indice based on the
267; existing keyboard string.
268;
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
276 .ELSE ;AN000;
277 INIT_VAR ALT_KYB_ID_PREV, 0 ;AN000; set prev alt kyb id = 0
278 .ENDIF ;AN000;
279 ;
280 INIT_VAR N_KYB_LOAD, E_KYB_LOAD_UND ;AN000; set KEYB loaded status = undefined
281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
282;
283; Initialize installation variables to default values
284;
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
289 .ELSE ;AN000;JW
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
292 .ENDIF ;AN000;JW
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
305 .ELSE ;AN000;
306 COPY_STRING S_SHELL, M_SHELL, D_SHELL_2 ;AN000; set SHELL parameter = /R
307 .ENDIF ;AN000;DT
308;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
309;
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
314;
315; Continue initialization ...
316;
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)
324 .ELSE ;AN000; else
325 INIT_VAR F_XMA, E_XMA_NA ;AN000; set XMA = no
326 .ENDIF ;AN000;
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
329 ;
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
333 .ELSE ;AN000; else
334 INIT_VAR F_GRAFTABL, E_GRAFTABL_NA ;AN000; set GRAFTABL = not available
335 .ENDIF ;AN000;
336 ;
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
341 ;
342 CALL HOOK_INT_23 ;AN074; SEH don't allow ctrl-break
343 CALL CURSOROFF ;AN054; SEH moved from earlier in code
344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
345;
346; ������������������������������������Ŀ
347; �WELCOME_SCREEN �
348; � �
349; ��������������������������������������
350;
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
357WELCOME_SCREEN: ;AN000;
358 ;
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
361 .ENDIF ;AN000;
362 ;
363WELCOME_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
369 ;
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
375 .IF < c > ;AN000;JW
376 INSERT_DISK SUB_REM_DOS_A, S_PRINT_FILE ;AN000;JW
377 .ENDIF ;AN000;JW
378 GOTO INTRO_SCREEN ;AN000; go to next screen
379 .ELSE ;AN000; else
380 CALL HANDLE_F3 ;AN001;GHG exit to DOS command line
381 .IF < C > ;AN001;GHG
382 GOTO EXIT_DOS ;AN001;GHG
383 .ELSE ;AN001;GHG
384 GOTO WELCOME_SCREEN2 ;AN001;GHG
385 .ENDIF ;AN000;
386 .ENDIF ;AN000;
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388;
389; ������������������������������������Ŀ
390; �INTRO_SCREEN �
391; � �
392; ��������������������������������������
393;
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
399INTRO_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
404 ;
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
408 ; (ENTER or ESC)
409 .ELSEIF < N_USER_FUNC eq E_ENTER > ;AN000; if user entered ENTER key
410 GOTO WORKSPACE_SCREEN ;AN000; go to next screen
411 .ELSE ;AN000; else
412 GOTO WELCOME_SCREEN2 ;AN001;GHG; exit to DOS command line
413 .ENDIF ;AN000;
414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
415;
416; ROUTINE TO SCAN SELECT.TMP FILE
417;
418; Broken down into a subroutine for code savings...
419;
420;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
421 PUBLIC SCAN_INFO_CALL ;AN000;
422SCAN_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 ;
431 ;
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;
435 .ENDIF ;AN000; EXIT
436 ;
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;
442 .ENDIF ;AN000; EXIT
443 RET ;AN000;
444SCAN_INFO_CALL ENDP ;AN000;
445;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
446SELECT ENDS ;AN000;
447 END ;AN000;