PROCEDURE (HIDDEN) rap$get_install_tape_values (
  installation_parameters, ip: (VAR) ..
*copy rat$installation_parameters
                                  = $required
  menu_selection, ms: (VAR) string 0..$max_name = $required
  )

*IF $variable(rav$proc_doc,declared)<>'UNKNOWN'

" PURPOSE:
"   This procedure prompts the operator by means of a menu to set the values for the installation
"   tape.
" NOTES:
"   The variable used to receive the selection_chosen from the prompt interfaces
"   must be of type string. Not a VAR parameter, not a string(0..31), just
"   a plain old STRING.
*IFEND


  "$FORMAT=OFF
  VAR
    local_status: status
    menu_response: string
    packing_list_name_valid: boolean
    parameters: $type(installation_parameters)
    save_previous_cycles_string: string 0..5
    value_selection: string
  VAREND
  "$FORMAT=ON"


  parameters = installation_parameters
  menu_response = ''
  menu_selection = ''
  parameters.packing_list = $translate(lower_to_upper, parameters.packing_list)
  parameters.evsn = $translate(lower_to_upper, parameters.evsn)
  parameters.rvsn = $translate(lower_to_upper, parameters.rvsn)
  parameters.tape_type = $translate(lower_to_upper, parameters.tape_type)

get_input: ..
  WHILE (menu_response <> '+GO') AND (menu_response <> '+NULL') DO

    save_previous_cycles_string = $strrep(parameters.save_previous_cycles)
    rap$prompt_via_menu mm=install_tape_menu ms=(packing_list external_vsn recorded_vsn tape_type ..
          save_previous_cycles) mp=(parameters.packing_list, parameters.evsn, parameters.rvsn, ..
          parameters.tape_type, save_previous_cycles_string) ..
          po=(allow_go, allow_null, allow_quit, clear_screen) sc=menu_response

    IF menu_response = 'PACKING_LIST' THEN

      packing_list_name_valid = false
      value_selection = ''
      REPEAT
        rap$prompt_for_value pm=install_tape_menu pn=packing_list_prompt po=allow_null vd=('name 1..16') ..
              vr=value_selection
        IF value_selection <> '+NULL' THEN
          rap$validate_packing_list_name pln=$trim($substr(value_selection, 1, 16)) ..
                require_user_acknowledgement=false plnv=packing_list_name_valid
        IFEND
      UNTIL (packing_list_name_valid) OR (value_selection = '+NULL')
      IF packing_list_name_valid THEN
        parameters.packing_list = $translate(lower_to_upper, $trim($substr(value_selection, 1, 16)))
      IFEND

    ELSEIF menu_response = 'EXTERNAL_VSN' THEN

      rap$prompt_for_value pm=install_tape_menu pn=external_vsn_prompt po=allow_null vd=('string 1..6') ..
            vr=value_selection

      IF value_selection <> '+NULL' THEN
        parameters.evsn = $translate(lower_to_upper, value_selection(2, $size($trim(value_selection))-2))
        IF parameters.rvsn = '' THEN
          parameters.rvsn = parameters.evsn
        IFEND
      IFEND

    ELSEIF menu_response = 'RECORDED_VSN' THEN

      rap$prompt_for_value pm=install_tape_menu pn=recorded_vsn_prompt po=allow_null vd=('string 1..6') ..
            vr=value_selection

      IF value_selection <> '+NULL' THEN
        parameters.rvsn = $translate(lower_to_upper, value_selection(2, $size($trim(value_selection))-2))
        IF parameters.evsn = '' THEN
          parameters.evsn = parameters.rvsn
        IFEND
      IFEND

    ELSEIF menu_response = 'TAPE_TYPE' THEN

      rap$prompt_for_value pm=install_tape_menu pn=tape_type_prompt po=allow_null ..
            vd=('key a mt9$1600 b mt9$6250 c mt18$38000') vr=value_selection

      IF value_selection <> '+NULL' THEN
        parameters.tape_type = $translate(lower_to_upper, value_selection)
        IF parameters.tape_type = 'A' THEN
          parameters.tape_type = 'MT9$1600'
        ELSEIF parameters.tape_type = 'B' THEN
          parameters.tape_type = 'MT9$6250'
        ELSEIF parameters.tape_type = 'C' THEN
          parameters.tape_type = 'MT18$38000'
        IFEND
      IFEND

    ELSEIF menu_response = 'SAVE_PREVIOUS_CYCLES' THEN

      rap$prompt_for_value pm=install_tape_menu pn=save_previous_cycles_prompt po=allow_null vd=(..
            'key yes no y n true false t f') vr=value_selection

      IF value_selection <> '+NULL' THEN
        value_selection = $translate(lower_to_upper, value_selection)

        IF ($substr(value_selection, 1) = 'T') OR ($substr(value_selection, 1) = 'Y') THEN
          parameters.save_previous_cycles = true
        ELSE
          parameters.save_previous_cycles = false
        IFEND

      IFEND

    ELSEIF (menu_response = '+GO') OR (menu_response = '+NULL') THEN

      IF (parameters.evsn = '') AND (parameters.rvsn = '') THEN
        $system.put_line ' '//$strrep($status(false, 'RA', rae$one_vsn_parameter_required))
        menu_response = ''
      IFEND
      rap$validate_packing_list_name pln=parameters.packing_list ..
            require_user_acknowledgement=false plnv=packing_list_name_valid
      IF NOT packing_list_name_valid THEN
        menu_response = ''
      IFEND
      IF menu_response = '' THEN
        rap$press_next
      IFEND

    ELSEIF menu_response = '+QUIT' THEN

      EXIT get_input

    IFEND

  WHILEND get_input

  IF menu_response <> '+QUIT' THEN
    installation_parameters = parameters
  IFEND
  menu_selection = menu_response

PROCEND rap$get_install_tape_values
