

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;
