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

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / SELECT / SELECT3.ASM
1
2
3 PAGE 60,132 ;AN000;
4 NAME SELECT ;AN000;
5 TITLE SELECT - DOS - SELECT.EXE ;AN000;
6 SUBTTL SELECT3.asm ;AN000;
7 .ALPHA ;AN000;
8 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 ;
10 ; SELECT3.ASM : Copyright 1988 Microsoft
11 ;
12 ; DATE: August 8/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 ;
26 ; The following screens are contained in this module:
27 ; - External diskette parameters
28 ; - Review selection choice
29 ; - Review selections for fixed disk
30 ; - Review selections for diskette
31 ;
32 ;
33 ; ;AN001; GHG changes for 0 Parallel/Serial printer ports
34 ;
35 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36 DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000; Dummy DATA Seg
37 EXTRN SEG_LOC:WORD ;AN000;
38 EXTRN NAMES_OFF:WORD ;AN000;
39 EXTRN N_PRN_NAMES:WORD ;AN000;
40 EXTRN MAX_NAME:WORD ;AN000;
41 EXTRN SIZE_NAMES:ABS ;AN000;
42 DATA ENDS ;AN000;
43 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44 ;
45 ;
46 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
47 .XLIST ;AN000;
48 INCLUDE PANEL.MAC ;AN000;
49 INCLUDE SELECT.INC ;AN000;
50 INCLUDE PAN-LIST.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 .LIST ;AN000;
58 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59 ;
60 ; Continuation of code ...
61 ;
62 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63 SELECT SEGMENT PARA PUBLIC 'SELECT' ;AN000;
64 ASSUME CS:SELECT,DS:DATA ;AN000;
65 ;
66 INCLUDE CASEXTRN.INC ;AN000;
67 ;
68 EXTRN EXIT_SELECT:NEAR ;AN000;
69 EXTRN INSTALL_ERROR:NEAR ;AN000;
70 EXTRN PROCESS_ESC_F3:NEAR ;AN000;
71 EXTRN DOS_PARAMETERS_SCREEN:NEAR ;AN000;
72 EXTRN EXIT_DOS:NEAR ;AN000;
73 EXTRN FIRST_DISK_SCREEN:NEAR ;AN000;
74 PUBLIC choose_shell_screen ;AC020; SEH
75 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76 ;
77 ; ������������������������������������Ŀ
78 ; �choose_shell_screen �
79 ; � �
80 ; ��������������������������������������
81 ;
82 ; The CHOOSE SHELL SCREEN is always presented.
83 ; This screen allows the user to decide whether or not the DOS
84 ; shell will be installed.
85 ; Valid keys are ENTER, ESC, F1, F3 and numeric 1 and 2.
86 ;----
87 ; Note: This screen (and, hence, all shell support) can be eradicated
88 ; by defining the symbol NOSHELL.
89 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90 choose_shell_screen: ;AN000;
91 IFNDEF NOSHELL
92 INIT_PQUEUE PAN_choose_shell ;AN000; initialize queue
93 PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar
94 PREPARE_CHILDREN ;AN000; prepare child panels
95 INIT_SCROLL SCR_choose_shell, f_shell ;AN000;
96 DISPLAY_PANEL ;AN000; display CHOOSE SHELL SCREEN
97 ;
98 GET_SCROLL SCR_choose_shell, f_shell, FK_SCROLL ;AN000; get new shell option
99 ;
100 .IF < N_USER_FUNC eq E_ENTER > ;AN000; if user entered ENTER key
101 .THEN ;AN000;
102 COPY_WORD f_shell, I_USER_INDEX ;AN000; save new shell option
103 PUSH_HEADING choose_shell_screen ;AN000; save address on SELECT STACK
104 GOTO REVIEW_SELECTION_SCREEN ;AN000; goto the next screen (REVIEW_SELECTION)
105 .ELSE ;AN000;
106 GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or F3, take action
107 .ENDIF ;AN000;
108 ENDIF
109 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
110 ;
111 ; ������������������������������������Ŀ
112 ; �REVIEW_SELECTION_SCREEN �
113 ; � �
114 ; ��������������������������������������
115 ;
116 ; The REVIEW SELECTION SCREEN is always presented.
117 ; The screen asks the user if SELECT generated choices are to be presented.
118 ; Valid keys are ENTER, ESC, F1, F3 and numeric 1 and 2.
119 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
120 REVIEW_SELECTION_SCREEN: ;AN000;
121 INIT_PQUEUE PAN_REVIEW ;AN000; initialize queue
122 PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar
123 PREPARE_CHILDREN ;AN000; prepare child panels
124 INIT_SCROLL SCR_REVIEW, F_REVIEW ;AN000;
125 DISPLAY_PANEL ;AN000; display REVIEW SELECTION SCREEN
126 ;
127 GET_SCROLL SCR_REVIEW, F_REVIEW, FK_SCROLL ;AN000; get new review option
128 ;
129 .IF < N_USER_FUNC eq E_ENTER > ;AN000; if user entered ENTER key
130 .THEN ;AN000;
131 COPY_WORD F_REVIEW, I_USER_INDEX ;AN000; save new review option
132 PUSH_HEADING REVIEW_SELECTION_SCREEN ;AN000; save address on SELECT STACK
133 GOTO REVIEW_DISK_SCREEN ;AN000; goto the next screen (REVIEW_FUNCTIONS)
134 .ELSE ;AN000;
135 GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or F3, take action
136 .ENDIF ;AN000;
137 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
138 ;
139 ; ������������������������������������Ŀ
140 ; �REVIEW_DISK_SCREEN �
141 ; � �
142 ; ��������������������������������������
143 ;
144 ; The REVIEW SELECT DOS FUNCTIONS SELECTION SCREEN is presented if
145 ; the user selected to view/change the selections generated by
146 ; SELECT ( F_REVIEW = 2 )
147 ; The screen asks the user to select functions required from the
148 ; displayed list. Functions are Code Page Switching, Expanded Memory Support,
149 ; ANSI.SYS support, FASTOPEN support, GRAFTABL support, GRAPHICS support,
150 ; SHARE support, and VDISK support.
151 ; There are two versions of this screen. The screen version displayed
152 ; will depend on whether the install destination is drive B:/A: or drive C:.
153 ; This screen version will be presented if install destination is drive C:.
154 ; The screen lists the parameters for which selections have been made by
155 ; SELECT. The user may accept these choices (yes/no)
156 ; or change them by cursoring to the parameter and pressing the SPACE key.
157 ; The SPACE key will toggle the choice for the selected parameter.
158 ; The cursor key is used to move to the next item on the parameter list.
159 ; If the cursor is on the last item in the parameter list, cursor down key
160 ; will cause the cursor to wrap around to the first item of the parameter list.
161 ; If the cursor is on the first item in the parameter list, cursor up key
162 ; will cause the cursor to wrap around to the last item of the parameter list.
163 ; When the SPACE key is depressed, the current parameter value is saved in
164 ; a temporary location. The temporary parameter values are copied to actual
165 ; values only when the ENTER key is depressed.
166 ; Valid keys are ENTER, ESC, F1, F3, SPACE, cursor up and cursor down.
167 ; If a parameter is not supported due to the hardware environment, the
168 ; choice presented to the user will be NO but internally will be stored as N/A.
169 ; a N/A choice would not be toggled by the user and a beep would be issued
170 ; instead.
171 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
172 REVIEW_DISK_SCREEN: ;AN000;
173 .IF < F_REVIEW eq E_REVIEW_ACCEPT > ;AN000; if accept SELECT generated commands
174 .THEN ;AN000;
175 GOTO FIRST_DISK_SCREEN ;AN000; skip related screens
176 .ENDIF ;AN000;
177 ;
178 .IF < I_DEST_DRIVE ne E_DEST_DRIVE_C > ;AC000; if install to drive B: or A: JW
179 .THEN ;AN000;
180 GOTO REVIEW_DISKETTE_SCREEN ;AN000; goto disket functions screen
181 .ENDIF ;AN000;
182 ;
183 INIT_PQUEUE PAN_FUNC_DISK ;AN000; initialize queue
184 PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar
185 PREPARE_CHILDREN ;AN000; prepare child panels
186 INIT_SCROLL SCR_FUNC_DISK, 0 ;AN000;
187 INIT_SUPPORT SUPPORT_STATUS,E_CPSW_C, F_CPSW ;AN000; cpsw support
188 INIT_SUPPORT SUPPORT_STATUS, E_XMA_C, F_XMA ;AN000; expanded memory support
189 INIT_SUPPORT SUPPORT_STATUS,E_ANSI_C, F_ANSI ;AN000; ANSI.SYS support
190 INIT_SUPPORT SUPPORT_STATUS,E_FASTOPEN_C,F_FASTOPEN;AN000; FASTOPEN support
191 INIT_SUPPORT SUPPORT_STATUS,E_GRAFTABL_C,F_GRAFTABL;AN000; GRAFTABL support
192 INIT_SUPPORT SUPPORT_STATUS,E_GRAPHICS_C,F_GRAPHICS;AN000; GRAPHICS support
193 INIT_SUPPORT SUPPORT_STATUS,E_SHARE_C,F_SHARE;AN000; SHARE support
194 INIT_SUPPORT SUPPORT_STATUS,E_SHELL_C,F_SHELL;AN000; SHELL support
195 INIT_SUPPORT SUPPORT_STATUS,E_VDISK_C,F_VDISK;AN000; VDISK support
196 INIT_SCROLL_STATUS SCR_FUNC_DISK,SUPPORT_STATUS ;AN000;
197 DISPLAY_PANEL ;AN000; display functions list screen
198 ;
199 INIT_VAR I_USER_INDEX, 1 ;AN000; set counter = 1
200 ;
201 .REPEAT ;AN000; repeat code block
202 ;
203 GET_SCROLL SCR_FUNC_DISK,I_USER_INDEX,FK_REVIEW ;AN000; get new value
204 ;
205 .IF < N_USER_FUNC eq E_SPACE > ;AN000; if user entered TAB
206 .THEN ;AN000;
207 TOGGLE_SUPPORT SUPPORT_STATUS, I_USER_INDEX ;AN000; toggle support of parameter
208 .ELSE ;AN000; else
209 .LEAVE ;AN000; break from repeat loop
210 .ENDIF ;AN000;
211 ;
212 .UNTIL ;AN000; end of repeat loop
213 ;
214 .IF < N_USER_FUNC eq E_ENTER > near ;AN000; if user entered ENTER key
215 .THEN ;AN000; get revised values for
216 RET_SUPPORT SUPPORT_STATUS,E_CPSW_C, F_CPSW ;AN000; cpsw support
217 RET_SUPPORT SUPPORT_STATUS, E_XMA_C, F_XMA ;AN000; expanded memory support
218 RET_SUPPORT SUPPORT_STATUS,E_ANSI_C, F_ANSI ;AN000; ANSI.SYS support
219 RET_SUPPORT SUPPORT_STATUS,E_FASTOPEN_C,F_FASTOPEN;AN000; FASTOPEN support
220 RET_SUPPORT SUPPORT_STATUS,E_GRAFTABL_C,F_GRAFTABL;AN000; GRAFTABL support
221 RET_SUPPORT SUPPORT_STATUS,E_GRAPHICS_C,F_GRAPHICS;AN000; GRAPHICS support
222 RET_SUPPORT SUPPORT_STATUS,E_SHARE_C,F_SHARE;AN000; SHARE support
223 RET_SUPPORT SUPPORT_STATUS,E_SHELL_C,F_SHELL;AN000; SHELL support
224 RET_SUPPORT SUPPORT_STATUS,E_VDISK_C,F_VDISK;AN000; VDISK support
225 PUSH_HEADING REVIEW_DISK_SCREEN ;AN000; save screen address on SELECT STACK
226 GOTO DOS_PARAMETERS_SCREEN ;AN000; goto the next screen (DOS_PARAMETERS)
227 .ELSE ;AN000;
228 GOTO PROCESS_ESC_F3 ;AN000; user entered ESCAPE or F3, take action
229 .ENDIF ;AN000;
230 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
231 ;
232 ; ������������������������������������Ŀ
233 ; �REVIEW_DISKETTE_SCREEN �
234 ; � �
235 ; ��������������������������������������
236 ;
237 ; The REVIEW SELECT DOS FUNCTIONS SELECTION SCREEN is presented if
238 ; the user selected to view/change the selections generated by
239 ; SELECT ( F_REVIEW = 2 )
240 ; This screen version will be presented if install destination is drive A:/B:
241 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
242 REVIEW_DISKETTE_SCREEN: ;AN000;
243 INIT_PQUEUE PAN_FUNC_DISKET ;AN000; initialize queue
244 PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar
245 PREPARE_CHILDREN ;AN000; prepare child panels
246 INIT_SCROLL SCR_FUNC_DISKET, 0 ;AN000;
247 INIT_SUPPORT SUPPORT_STATUS,E_CPSW_B, F_CPSW ;AN000; cpsw support
248 INIT_SUPPORT SUPPORT_STATUS,E_ANSI_B, F_ANSI ;AN000; ANSI.SYS support
249 INIT_SUPPORT SUPPORT_STATUS,E_GRAFTABL_B,F_GRAFTABL;AN000; GRAFTABL support
250 INIT_SUPPORT SUPPORT_STATUS,E_GRAPHICS_B,F_GRAPHICS;AN000; GRAPHICS support
251 INIT_SUPPORT SUPPORT_STATUS,E_SHELL_B,F_SHELL;AN000; SHELL support
252 INIT_SUPPORT SUPPORT_STATUS,E_VDISK_B,F_VDISK;AN000; VDISK support
253 INIT_SCROLL_STATUS SCR_FUNC_DISKET, SUPPORT_STATUS ;AN000;
254 DISPLAY_PANEL ;AN000; display functions list screen
255 ;
256 INIT_VAR I_USER_INDEX, 1 ;AN000; set counter = 1
257 ;
258 .REPEAT ;AN000; repeat code block
259 ;
260 GET_SCROLL SCR_FUNC_DISKET,I_USER_INDEX,FK_REVIEW;AN000; get new value
261 ;
262 .IF < N_USER_FUNC eq E_SPACE > ;AN000; if user entered TAB
263 .THEN ;AN000;
264 TOGGLE_SUPPORT SUPPORT_STATUS, I_USER_INDEX ;AN000; toggle support of parameter
265 .ELSE ;AN000;
266 .LEAVE ;AN000; else
267 .ENDIF ;AN000; break from loop
268 ;
269 .UNTIL ;AN000; end of repeat block
270 ;
271 .IF < N_USER_FUNC eq E_ENTER > near ;AN000; if user entered ENTER key
272 .THEN ;AN000; get revised values
273 RET_SUPPORT SUPPORT_STATUS,E_CPSW_B, F_CPSW ;AN000; cpsw support
274 RET_SUPPORT SUPPORT_STATUS,E_ANSI_B, F_ANSI ;AN000; ANSI.SYS support
275 RET_SUPPORT SUPPORT_STATUS,E_GRAFTABL_B,F_GRAFTABL;AN000; GRAFTABL support
276 RET_SUPPORT SUPPORT_STATUS,E_GRAPHICS_B,F_GRAPHICS;AN000; GRAPHICS support
277 RET_SUPPORT SUPPORT_STATUS,E_SHELL_B,F_SHELL;AN000; SHELL support
278 RET_SUPPORT SUPPORT_STATUS,E_VDISK_B,F_VDISK;AN000; VDISK support
279 PUSH_HEADING REVIEW_DISKETTE_SCREEN ;AN000; save screen address onto SELECT STACK
280 GOTO DOS_PARAMETERS_SCREEN ;AN000; goto the next screen (DOS_PARAMETERS)
281 .ELSE ;AN000;
282 GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or E3, take action
283 .ENDIF ;AN000;
284 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
285 SELECT ENDS ;AN000;
286 END ;AN000;