?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE Establish Variables: Routine to Establish System Initialization Variables' ??
MODULE ram$establish_variables;

{ PURPOSE:
{   This module contains the procedure to establish the control variables
{   needed for system initialization.

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc ost$name
*copyc ost$status
*copyc rat$installation_tape_values
?? POP ??
*copyc clp$include_line
*copyc rap$get_development_ds_value
*copyc rap$get_inst_tape_values
*copyc rap$get_jobs_recovered_value
*copyc rap$get_network_activate_value
*copyc rap$get_system_activation_value

?? TITLE := '[XDCL] rap$establish_variables', EJECT ??

  PROCEDURE [XDCL] rap$establish_variables
    (VAR status: ost$status);

    VAR
      command_line: string (1000),
      development_deadstart_value: boolean,
      installation_tape_values: rat$installation_tape_values,
      jobs_recovered_value: boolean,
      length: integer,
      network_activation_value: boolean,
      system_activation_value: boolean;


    status.normal := TRUE;

    rap$get_development_ds_value (development_deadstart_value);
    rap$get_inst_tape_values (installation_tape_values);
    rap$get_jobs_recovered_value (jobs_recovered_value);
    rap$get_network_activate_value (network_activation_value);
    rap$get_system_activation_value (system_activation_value);

?? FMT (FORMAT := OFF) ??
    STRINGREP (command_line, length,
          ' VAR;',
          '   dsv$gotcmds3commands: (JOB) boolean = no;',
          '   dsv$systembase: (JOB) string;',
          '   dsv$user: (JOB) string;',
          '   dsv$userpassword: (JOB) string;',
          '   rav$development_deadstart: (JOB) boolean = ', development_deadstart_value, ';',
          '   rav$installation_tape_values: (JOB) record ',
          '     packing_list: name = $optional;',
          '     evsn: string 0..', rmc$external_vsn_size, ';',
          '     rvsn: string 0..', rmc$recorded_vsn_size, ';',
          '     tape_type: name = $optional;',
          '   recend = (', installation_tape_values.packing_list,
                        ', ''', installation_tape_values.evsn, '''',
                        ', ''', installation_tape_values.rvsn, ''', ',
                        installation_tape_values.tape_type, ');',
          '   rav$jobs_recovered: (JOB) boolean = ', jobs_recovered_value, ';',
          '   rav$network_activation: (JOB) boolean = ', network_activation_value, ';',
          '   rav$system_activation: (JOB) boolean = ', system_activation_value, ';',
          ' VAREND;');
?? FMT (FORMAT := ON) ??

    clp$include_line (command_line (1, length), TRUE, osc$null_name, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

  PROCEND rap$establish_variables;

MODEND ram$establish_variables;
