summaryrefslogtreecommitdiff
path: root/v4.0/src/SELECT/SELECT3.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/SELECT3.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/SELECT3.ASM')
-rw-r--r--v4.0/src/SELECT/SELECT3.ASM286
1 files changed, 286 insertions, 0 deletions
diff --git a/v4.0/src/SELECT/SELECT3.ASM b/v4.0/src/SELECT/SELECT3.ASM
new file mode 100644
index 0000000..64c46c5
--- /dev/null
+++ b/v4.0/src/SELECT/SELECT3.ASM
@@ -0,0 +1,286 @@
1
2
3PAGE 60,132 ;AN000;
4NAME SELECT ;AN000;
5TITLE SELECT - DOS - SELECT.EXE ;AN000;
6SUBTTL 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36DATA 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;
42DATA 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63SELECT 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90choose_shell_screen: ;AN000;
91IFNDEF 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;
108ENDIF
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
120REVIEW_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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
172REVIEW_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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
242REVIEW_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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
285SELECT ENDS ;AN000;
286 END ;AN000;