summaryrefslogtreecommitdiff
path: root/v4.0/src/SELECT/SELECT4.ASM
blob: bd56ddd02e6e040cc950553a4b32f178582290bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
PAGE	55,132							;AN000;
NAME	SELECT							;AN000;
TITLE	SELECT - DOS - SELECT.EXE				;AN000;
SUBTTL	SELECT4.asm						;AN000;
.ALPHA								;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	SELECT4.ASM : Copyright 1988 Microsoft
;
;	DATE:	 August 8/87
;
;	COMMENTS: Assemble with MASM 3.0 (using the /A option)
;
;		  Panel flow is defined in the following files:
;
;		      � SELECT1.ASM
;		      � SELECT2.ASM
;		      � SELECT3.ASM
;		      � SELECT4.ASM
;		      � SELECT5.ASM
;		      � SELECT6.ASM
;
;
;
;  Module contains code for :
;	- DOS parameters screen
;	- SHELL parameters screen
;	- FASTOPEN parameters screen
;	- SHARE screen
;	- GRAPHICS parameter screen
;	- EXPANDED MEMORY parameters screen
;
;
;	CHANGE HISTORY:
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATA	SEGMENT BYTE PUBLIC 'DATA'                              ;AN000;
DATA	       ENDS						;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.XLIST								;AN000;
	INCLUDE    PANEL.MAC					;AN000;
	INCLUDE    SELECT.INC					;AN000;
	INCLUDE    PAN-LIST.INC 				;AN000;
	INCLUDE    CASTRUC.INC					;AN000;
	INCLUDE    STRUC.INC					;AN000;
	INCLUDE    MACROS.INC					;AN000;
	INCLUDE    EXT.INC					;AN000;
	INCLUDE    VARSTRUC.INC 				;AN000;
	INCLUDE    ROUT_EXT.INC 				;AN000;
.LIST								;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
								;
SELECT	SEGMENT PARA PUBLIC 'SELECT'                            ;AN000;segment for far routine
	ASSUME	CS:SELECT,DS:DATA				;AN000;
								;
	INCLUDE CASEXTRN.INC					;AN000;
								;
HLP_OVER	EQU	00010000B				;AN000;
ICB_OUT 	EQU  0000000100000000B				;AN000;display default and accept input
								;
	PUBLIC	DOS_PARAMETERS_SCREEN				;AN000;
	EXTRN	EXIT_SELECT:NEAR				;AN000;
	EXTRN	PROCESS_ESC_F3:NEAR				;AN000;
	EXTRN	FIRST_DISK_SCREEN:NEAR				;AN000;
	EXTRN	VDISK_SCREEN:NEAR				;AN000;
	EXTRN	EXIT_DOS:NEAR					;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;  ������������������������������������Ŀ
;  �DOS_PARAMETERS_SCREENS		�
;  �					�
;  ��������������������������������������
;
;  The DOS PARAMETERS SCREEN is presented if the user selected to
;  view/change the selections generated by SELECT ( F_REVIEW = 2 ).
;  The screen gets various DOS parameters (PATH, APPEND, PROMPT).
;  The TAB key is used to move to the next item on the parameter list.
;  If the cursor is on the last item in the parameter list, TAB key
;  will cause the cursor to wrap around to the first item of the parameter list.
;  When the TAB key is depressed, the current parameter value is saved in
;  a temporary location.  The temporary parameter values are copied to actual
;  values only when the ENTER key is depressed.
;  Valid keys are ENTER, ESC, F1, F3, TAB and ASCII characters.
;  Since the DOS parameters APPEND and PATH are only useful for hard
;  disk based systems, an additional check of install to drive C: has been
;  included.  This check is not specified in the Functional Specification.
;  PROMPT parameter values are not checked for validity.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DOS_PARAMETERS_SCREEN:						;AN000; if user accepts choices
	.IF < F_REVIEW eq E_REVIEW_ACCEPT >			;AN000;
	.THEN							;AN000;
	   GOTO 		FIRST_DISK_SCREEN		;AN000;    goto FIRST_DISK_SCREEN
	.ENDIF							;AN000;
								;
	.IF < I_DEST_DRIVE ne E_DEST_DRIVE_C >			;AC000; if install to drive B: or A: JW
	.THEN							;AN000;
	   GOTO 		SHELL_SCREEN			;AN000;    goto next screen
	.ENDIF							;AN000;
								;
	COPY_STRING		S_STR120_1, M_STR120_1, S_PATH	;AN000; copy PATH to temp location
	COPY_STRING		S_STR40, M_STR40, S_APPEND_P	;AN000; copy APPEND parameters to temp location JW
	COPY_STRING		S_STR120_2, M_STR120_2,S_APPEND ;AN000; copy APPEND to temp location
	COPY_STRING		S_STR120_3, M_STR120_3,S_PROMPT ;AN000; copy PROMPT to temp location
								;
	INIT_PQUEUE		PAN_DOS_PARAM			;AN000; initialize queue
	PREPARE_PANEL		PAN_HBAR			;AN000; prepare horizontal bar
	PREPARE_CHILDREN					;AN000; prepare child panels
	INIT_STRING		STR_DOS_PATH,S_STR120_1, M_PATH ;AN000; display current PATH value
	INIT_STRING		STR_DOS_APPEND_P,S_STR40,M_APPEND_P   ;AN000; display current APPEND parameters value  JW
	INIT_STRING		STR_DOS_APPEND,S_STR120_2,M_APPEND    ;AN000; display current APPEND value
	INIT_STRING		STR_DOS_PROMPT,S_STR120_3,M_PROMPT    ;AN000; display current PROMPT value
	DISPLAY_PANEL						;AN000; display PC/DOS parameters panel
								;
	INIT_VAR		N_COUNTER, 1			;AN000; set counter = 1
								;
GET_PARAMETERS: 						;AN000;
								;
	.REPEAT 						;AN000; repeat code block
								;
	   .SELECT						;AN000;
								;
	   .WHEN < N_COUNTER eq 1 >				;AN000;
	      GET_STRING	STR_DOS_PATH,S_STR120_1,M_PATH,FK_TAB ;AN000; get user parameters for PATH
	      COPY_STRING	S_STR120_1,M_STR120_1,S_USER_STRING   ;AN000; save parameter in temp location
								;
	   .WHEN < N_COUNTER eq 2 >				;AN000; 					    JW
	      GET_STRING	STR_DOS_APPEND_P,S_STR40,M_APPEND_P,FK_TAB  ;AN000; get user parameters for APPEND  JW
	      COPY_STRING	S_STR40,M_STR40,S_USER_STRING	;AN000; save parameter in temp location 	    JW
								;
	   .WHEN < N_COUNTER eq 3 >				;AN000;
	      GET_STRING	STR_DOS_APPEND,S_STR120_2,M_APPEND,FK_TAB   ;AN000; get user path for APPEND
	      COPY_STRING	S_STR120_2,M_STR120_2,S_USER_STRING	    ;AN000; save parameter in temp location
								;
	   .OTHERWISE						;AN000;
	      GET_STRING	STR_DOS_PROMPT,S_STR120_3,M_PROMPT,FK_TAB   ;AN000; get user parameters for PROMPT
	      COPY_STRING	S_STR120_3,M_STR120_3,S_USER_STRING	    ;AN000; save parameter in temp location
								;
	   .ENDSELECT						;AN000;
								;
	   INC_VAR		N_COUNTER			;AN000;   inc counter
								;
	   .IF < N_COUNTER a 4 >				;AN000;   if counter > 3
	   .THEN						;AN000;
	      INIT_VAR		N_COUNTER, 1			;AN000;      set counter = 1
	   .ENDIF						;AN000;
								;
	.UNTIL < N_USER_FUNC eq E_ENTER > or near		;AN000; break loop if ENTER entered
	.UNTIL < N_USER_FUNC eq E_ESCAPE > or near		;AN000; or ESCAPE entered
	.UNTIL < N_USER_FUNC eq E_F3 > near			;AN000; or F3 entered
								;
	PROCESS_ESC						;AN000;
	PROCESS_F3						;AN000;
								;
	CHECK_DOS_PATH		S_STR120_1			;AN000; check PATH path
	.IF c							;AN000;
	.THEN							;AN000;
	   HANDLE_ERROR 	ERR_BAD_PATH, E_RETURN		;AN000;
	   INIT_VAR		N_COUNTER, 1			;AN000;
	   GOTO 		GET_PARAMETERS			;AN000;
	.ENDIF							;AN000;
								;
	CHECK_DOS_PATH		S_STR120_2			;AN000; check APPEND path
	.IF c							;AN000;
	.THEN							;AN000;
	   HANDLE_ERROR 	ERR_BAD_PATH, E_RETURN		;AN000;
	   INIT_VAR		N_COUNTER,2			;AN000;
	   GOTO 		GET_PARAMETERS			;AN000;
	.ENDIF							;AN000;
								;
	COPY_STRING		S_PATH, M_PATH, S_STR120_1	;AN000;    save PATH parameter
	COPY_STRING		S_APPEND_P, M_APPEND_P, S_STR40 ;AN000;    save APPEND parameter JW
	COPY_STRING		S_APPEND, M_APPEND, S_STR120_2	;AN000;    save APPEND path
	COPY_STRING		S_PROMPT, M_PROMPT, S_STR120_3	;AN000;    save PROMPT parameter
	PUSH_HEADING		DOS_PARAMETERS_SCREEN		;AN000;    save screen address on SELECT STACK
	GOTO			SHELL_SCREEN			;AN000;    goto the next screen (SHELL)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;  ������������������������������������Ŀ
;  �SHELL_SCREEN			�
;  �					�
;  ��������������������������������������
;
;  The SHELL PARAMETERS SCREEN is presented if the user selected to
;  install SHELL support and the user wants to view/change parameters.
;  Note.The view/change parameters condition is not specified in the May 5, 1987
;  Functional Specification.
;  The screen gets the parameters for SHELL.
;  Valid keys are ENTER, ESC, F1, F3 and ASCII characters.
;  Note.User entered parameter values are not checked for validity.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SHELL_SCREEN:							;AN000;
	.IF < F_SHELL eq E_SHELL_NO >				;AN000; if SHELL support is not required
	.THEN							;AN000;
	   GOTO 		FASTOPEN_SCREEN 		;AN000;    goto the next screen (KSAM)
	.ENDIF							;AN000;
								;
	INIT_PQUEUE		PAN_SHELL			;AN000; initialize queue
	PREPARE_PANEL		PAN_HBAR			;AN000; prepare horizontal bar
	PREPARE_CHILDREN					;AN000; prepare child panels
	INIT_STRING		STR_SHELL,S_SHELL,M_SHELL	;AN000; get SHELL parameters
	DISPLAY_PANEL						;AN000; display SHELL panel
								;
	GET_STRING		STR_SHELL,S_SHELL,M_SHELL,FK_TEXT     ;AN000; get SHELL parameters
								;
	.IF < N_USER_FUNC eq E_ENTER >				;AN000; if user entered ENTER key
	.THEN							;AN000;
	   COPY_STRING		S_SHELL, M_SHELL, S_USER_STRING ;AN000;    save new SHELL parameters
	   PUSH_HEADING 	SHELL_SCREEN			;AN000;    save screen address on SELECT STACK
	   GOTO 		FASTOPEN_SCREEN 		;AN000;    goto the next screen (KSAM)
	.ELSE							;AN000;
	   GOTO 		PROCESS_ESC_F3			;AN000; user entered ESC or F3, take action
	.ENDIF							;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;  ������������������������������������Ŀ
;  �FASTOPEN_SCREEN			�
;  �					�
;  ��������������������������������������
;
;  The FASTOPEN PARAMETERS SCREEN is presented if the user selected to
;  install FASTOPEN support and the user wants to view/change the parameters.
;  Note.The view/change parameters condition is not specified in the May 5, 1987
;  Functional Specification.
;  The screen gets parameters for the FASTOPEN command.
;  Valid keys are ENTER, ESC, F1, F3 and ASCII characters.
;  Note.User entered parameter values are not checked for validity.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FASTOPEN_SCREEN:						;AN000;
	.IF < F_FASTOPEN eq E_FASTOPEN_NO > or			;AN000; if FASTOPEN support not required
	.IF < I_DEST_DRIVE ne E_DEST_DRIVE_C >			;AC000;JW
	.THEN							;AN000;
	   GOTO 		SHARE_SCREEN			;AN000;    goto next screen (SHARE)
	.ENDIF							;AN000;
								;
	INIT_PQUEUE		PAN_FASTOPEN			;AN000; initialize queue
	PREPARE_PANEL		PAN_HBAR			;AN000; prepare horizontal bar
	PREPARE_CHILDREN					;AN000; prepare child panels
	INIT_STRING		STR_FASTOPEN,S_FASTOPEN,M_FASTOPEN    ;AN000; get new parameters for FASTOPEN
	DISPLAY_PANEL						;AN000; display FASTOPEN panel
								;
	GET_STRING		STR_FASTOPEN,S_FASTOPEN,M_FASTOPEN,FK_TEXT ;AN000; get new parameters for FASTOPEN
								;
	.IF < N_USER_FUNC eq E_ENTER >				;AN000; if user entered ENTER key
	.THEN							;AN000;
	   COPY_STRING		S_FASTOPEN,M_FASTOPEN,S_USER_STRING   ;AN000;save new parameters for FASTOPEN
	   PUSH_HEADING 	FASTOPEN_SCREEN 		;AN000;    save screen address on SELECT STACK
	   GOTO 		SHARE_SCREEN			;AN000;    goto the next screen (SHARE)
	.ELSE							;AN000;
	   GOTO 		PROCESS_ESC_F3			;AN000; user entered ESC or F3, take action
	.ENDIF							;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;  ������������������������������������Ŀ
;  �SHARE_SCREEN			�
;  �					�
;  ��������������������������������������
;
;  The SHARE PARAMETERS SCREEN is presented if the user selected to
;  install SHARE support and the user wants to view/change parameters.
;  Note.The view/change parameters condition is not specified in the May 5, 1987
;  Functional Specification.
;  The screen gets parameters for the SHARE command.
;  Valid keys are ENTER, ESC, F1, F3 and ASCII characters.
;  Note.User entered parameter values are not checked for validity.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SHARE_SCREEN:							;AN000;
	.IF < F_SHARE eq E_SHARE_NO > or			;AN000; if SHARE support not required
	.IF < I_DEST_DRIVE ne E_DEST_DRIVE_C >			;AC000;JW
	.THEN							;AN000;
;;	   INIT_VAR		F_SHARE, E_SHARE_NO		;AN021;
	   GOTO 		GRAPHICS_SCREEN 		;AN000;    goto the next screen (GRAPHICS)
	.ENDIF							;AN000;
								;
	INIT_PQUEUE		PAN_SHARE			;AN000; initialize queue
	PREPARE_PANEL		PAN_HBAR			;AN000; prepare horizontal bar
	PREPARE_CHILDREN					;AN000; prepare child panels
	INIT_STRING		STR_SHARE,S_SHARE,M_SHARE	;AN000; get new parameters for SHARE
	DISPLAY_PANEL						;AN000; display SHARE panel
								;
	GET_STRING		STR_SHARE,S_SHARE,M_SHARE,FK_TEXT     ;AN000; get new parameters for SHARE
								;
	.IF < N_USER_FUNC eq E_ENTER >				;AN000; if user entered ENTER key
	.THEN							;AN000;
	   COPY_STRING		S_SHARE, M_SHARE, S_USER_STRING ;AN000;    save new parameters for SHARE
	   PUSH_HEADING 	SHARE_SCREEN			;AN000;    save screen address on SELECT STACK
	   GOTO 		GRAPHICS_SCREEN 		;AN000;    goto the next screen (GRAPHICS)
	.ELSE							;AN000;
	   GOTO 		PROCESS_ESC_F3			;AN000; user entered ESC or F3, take action
	.ENDIF							;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;  ������������������������������������Ŀ
;  �GRAPHICS_SCREEN			�
;  �					�
;  ��������������������������������������
;
;  The GRAPHICS PARAMETERS SCREEN is presented if the user selected to
;  install GRAPHICS support and the user wants to view/change parameters.
;  Note.The view/change parameters condition is not specified in the May 5, 1987
;  Functional Specification.
;  The screen gets parameters for the GRAPHICS command.
;  Valid keys are ENTER, ESC, F1, F3 and ASCII characters.
;  Note.User entered parameter values are not checked for validity.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GRAPHICS_SCREEN:						;AN000;
	.IF < F_GRAPHICS eq E_GRAPHICS_NO >			;AN000; if GRAPHICS support not required
	.THEN							;AN000;
	   GOTO 		EXP_MEMORY_SCREEN		;AN000;    goto the next screen (EXPANDED_MEM)
	.ENDIF							;AN000;
								;
	GET_PRINTER_PARAMS	0, 1, N_RETCODE 		;AN000;
	.IF < N_RETCODE eq 1 >					;AN000;
	.THEN							;AN000;
	   COPY_STRING		S_GRAPHICS,M_GRAPHICS,S_GRAPH_PARM    ;AN000;
	.ENDIF							;AN000;
								;
	INIT_PQUEUE		PAN_GRAPHICS			;AN000; initialize queue
	PREPARE_PANEL		PAN_HBAR			;AN000; prepare horizontal bar
	PREPARE_CHILDREN					;AN000; prepare child panels
	INIT_STRING		STR_GRAPHICS,S_GRAPHICS,M_GRAPHICS    ;AN000; get new parameters for GRAPHICS
	DISPLAY_PANEL						;AN000; display GRAPHICS panel
								;
	GET_STRING		STR_GRAPHICS,S_GRAPHICS,M_GRAPHICS,FK_TEXT ;AN000; get new parameters for GRAPHICS
								;
	.IF < N_USER_FUNC eq E_ENTER >				;AN000; if user entered ENTER key
	.THEN							;AN000;
	   COPY_STRING		S_GRAPHICS, M_GRAPHICS, S_USER_STRING ;AN000;save new parameters for GRAPHICS
	   PUSH_HEADING 	GRAPHICS_SCREEN 		;AN000;    save screen address on SELECT STACK
	   GOTO 		EXP_MEMORY_SCREEN		;AN000;    goto next screen (EXPANDED_MEMORY)
	.ELSE							;AN000;
	   GOTO 		PROCESS_ESC_F3			;AN000; user entered ESC or F3, take action
	.ENDIF							;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;  ������������������������������������Ŀ
;  �EXP_MEMORY_SCREEN			�
;  �					�
;  ��������������������������������������
;
;  The EXPANDED MEMORY PARAMETERS SCREEN is presented if the user selected to
;  install expanded memory support and the user wants to view/change parameters.
;  Note.The view/change parameters condition is not specified in the May 5, 1987
;  Functional Specification.
;  The screen gets parameters for the XMAEM and XMA2EMS commands.
;  The expanded memory commands are only supported if memory above 1000000H
;  is available.
;  The TAB key is used to move to the next item on the parameter list.
;  If the cursor is on the last item in the parameter list, TAB key
;  will cause the cursor to wrap around to the first item of the parameter list.
;  When the TAB key is depressed, the current parameter value is saved in
;  a temporary location.  The temporary parameter values are copied to actual
;  values only when the ENTER key is depressed.
;  Valid keys are ENTER, ESC, F1, F3 and ASCII characters.
;  Note.User entered parameter values are not checked for validity.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EXP_MEMORY_SCREEN:						;AN000;
	.IF < F_XMA eq E_XMA_NO > or				;AN000; if XMA support not required
	.IF < F_XMA eq E_XMA_NA > or				;AN000; or if XMA not available
	.IF < I_DEST_DRIVE ne E_DEST_DRIVE_C >			;AC000; or if install to drive B: or A:       JW
	.THEN							;AN000;
	   GOTO 		VDISK_SCREEN			;AN000;    goto the next screen (VDISK)
	.ENDIF							;AN000;
								;
	COPY_STRING		S_STR120_1, M_STR120_1, S_XMAEM ;AN000; copy XMAEM to temp location
	COPY_STRING		S_STR120_2,M_STR120_2,S_XMA2EMS ;AN000; copy XMA2EMS to temp location
								;
	.IF < N_MOD80 eq E_IS_MOD80 >				;AN000; 				      JW
	.THEN							;AN000; 				      JW
	   INIT_PQUEUE		PAN_EXP_MEMORY			;AN000; initialize queue
	.ELSE							;AN000; 				      JW
	   INIT_PQUEUE		PAN_EXP_MEMORY2 		;AN000; initialize queue		      JW
	.ENDIF							;AN000; 				      JW
								;
	PREPARE_PANEL		PAN_HBAR			;AN000; prepare horizontal bar
	PREPARE_CHILDREN					;AN000; prepare child panels
								;
	.IF < N_MOD80 eq E_IS_MOD80 >				;AN000; 				      JW
	.THEN							;AN000; 				      JW
	   INIT_STRING		STR_XMAEM,S_STR120_1,M_XMAEM	;AN000; display parameter for XMAEM
	.ENDIF							;AN000; 				      JW
								;
	INIT_STRING		STR_XMA2EMS,S_STR120_2,M_XMA2EMS      ;AN000; display XMA2EMS parameters
	DISPLAY_PANEL						;AN000; display EXPANDED_MEMORY panel
								;
								;
	.IF < N_MOD80 eq E_IS_MOD80 > near			;AN000; 				      JW
	.THEN							;AN000; 				      JW
	   INIT_VAR		   N_COUNTER,1			;AN000; set counter = 1
								;
	   .REPEAT						;AN000; repeat block of code
								;
	      .SELECT						;AN000;
								;
	      .WHEN < N_COUNTER eq 1 > near			;AN000;
		 GET_STRING	   STR_XMAEM,S_STR120_1,M_XMAEM,FK_TAB;AN000; get new parameter for XMAEM
		 COPY_STRING	   S_STR120_1,M_STR120_1,S_USER_STRING;AN000; save parameter in temp location
								;
	      .OTHERWISE					;AN000;
		 GET_STRING	   STR_XMA2EMS,S_STR120_2,M_XMA2EMS,FK_TAB  ;AN000;get new parameter for XMA2EMS
		 COPY_STRING	   S_STR120_2,M_STR120_2,S_USER_STRING	    ;AN000; save parameter in temp location
								;
	      .ENDSELECT					;AN000;
								;
	      INC_VAR		   N_COUNTER			;AN000;
								;
	      .IF < N_COUNTER a 2 >				;AN000;
	      .THEN						;AN000;
		 INIT_VAR	   N_COUNTER,1			;AN000;
	      .ENDIF						;AN000;
								;
	   .UNTIL < N_USER_FUNC eq E_ENTER > or near		;AN000; break loop if ENTER entered
	   .UNTIL < N_USER_FUNC eq E_ESCAPE > or near		;AN000; or ESCAPE entered
	   .UNTIL < N_USER_FUNC eq E_F3 > near			;AN000; or F3 entered
	.ELSE							;AN000; 				      JW
	   GET_STRING	     STR_XMA2EMS,S_STR120_2,M_XMA2EMS,FK_TEXT ;AN000;get new parameter for XMA2EMS    JW
	   COPY_STRING	     S_STR120_2,M_STR120_2,S_USER_STRING      ;AN000; save parameter in temp location JW
	.ENDIF							;AN000; 				      JW
								;
	.IF < N_USER_FUNC eq E_ENTER >				;AN000; if user entered ENTER key
	.THEN							;AN000;
	   COPY_STRING		S_XMAEM,   M_XMAEM,  S_STR120_1 ;AN000;    save new XMAEM parameter
	   COPY_STRING		S_XMA2EMS, M_XMA2EMS,S_STR120_2 ;AN000;    save new XMA2EMS parameter
	   PUSH_HEADING 	EXP_MEMORY_SCREEN		;AN000;    save screen address on SELECT STACK
	   GOTO 		VDISK_SCREEN			;AN000;    goto next screen (VDISK)
	.ELSE							;AN000;
	   GOTO 		PROCESS_ESC_F3			;AN000; user entered ESC or F3, take action
	.ENDIF							;AN000;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SELECT	ENDS							;AN000;
	END							;AN000;