*copyc OSD$DEFAULT_PRAGMATS
MODULE iim$job_pageable_variables;

{   WARNING:
{      The following order must be used when obtaining more than one
{      interactive lock in order to avoid deadlocks:
{       - iiv$downline_queue_lock
{       - iiv$repeat_queue_lock
{       - iiv$upline_queue_lock

?? TITLE := 'MODULE iim$job_pageable_variables' ??

?? PUSH (LISTEXT := ON) ??
*copyc IIT$CONNECTION_DESCRIPTION
*copyc MLD$MEMORY_LINK_DECLARATIONS
*copyc osd$integer_limits
*copyc ost$signature_lock
*copyc OSS$JOB_PAGED_LITERAL
*copyc oss$task_shared
*copyc PMT$CONDITION
?? POP ??

  VAR
    iiv$connection_desc_ptr: [XDCL] ^iit$connection_description := NIL,
    iiv$connection_desc_lock: [XDCL] ost$signature_lock,
    iiv$connection_desc_count: [XDCL] integer := 0,

    iiv$suppress_cursor_positioning: [XDCL] boolean := FALSE,
    iiv$suppress_echoplexing: [XDCL] boolean := FALSE,
    iiv$interactive_terminated: [XDCL] boolean := FALSE,
    iiv$abort_get: [XDCL] boolean := FALSE,
    iiv$abort_job_initialization: [XDCL] boolean := FALSE,

    iiv$interactive_task_count: [XDCL] integer := 0,
    iiv$interactive_task_count_lock: [XDCL] ost$signature_lock,

    iiv$get_lock: [XDCL] ost$signature_lock,
    iiv$get_info: [XDCL] iit$task_get_info := [ * ,
      iic$last_block, * , FALSE , * , 1, * , amc$eor],

    iiv$downline_queue_lock: [XDCL] ost$signature_lock,
    iiv$downline_queue_count: [XDCL] integer := 0,

    iiv$last_formatting_mode: [XDCL, #GATE] 0 .. 0ff(16) := 0,

    iiv$upline_data_buffer_ptr: [XDCL] ^iit$input_data_message,

    iiv$job_connection: [XDCL, #GATE] iit$application_connection_num := 0,

    iiv$cdcnet_connection: [XDCL, #GATE] boolean,

    iiv$network_identifier: [XDCL, #GATE] iit$network_identifier := iic$dsiaf_network,

    iiv$screen_clear_string: [XDCL] ost$string := [0, ' '],

    iiv$terminal_timeout_limit: [XDCL, #GATE, oss$task_shared] integer :=
         osc$max_integer,

    iiv$terminal_timeout_limit_left: [XDCL, #GATE, oss$task_shared] integer :=
         osc$max_integer,

    iiv$previous_blank_flag: [XDCL] boolean := FALSE,

    iiv$previous_connection_attr: [XDCL] iit$connection_attributes,

    iiv$previous_mode: [XDCL] iit$terminal_mode := iic$line,

    iiv$previous_file_id: [XDCL] amt$file_identifier,

    iiv$previous_operation: [XDCL] amt$fap_operation := amc$put_next_req,

    iiv$jm_application_name: [XDCL] mlt$application_name := mlc$null_name,


    iiv$break_abn: [XDCL] integer := 0,
    iiv$task_handling_break: [XDCL] ost$global_task_id,

    iiv$condition_descriptor: [XDCL, READ, oss$job_paged_literal] pmt$condition :=
      [pmc$condition_combination, $pmt$condition_combination
      [ifc$interactive_condition]],

    iiv$downline_term_class_conv: [XDCL, READ, oss$job_paged_literal] array
      [ifc$tty_class .. ifc$i3270_class] of iit$field_value := [iic$tty_class,
      iic$c75x_class, iic$c721_class, iic$i2741_class,
      iic$tty40_class,iic$h2000_class,
      iic$x364_class, iic$t4010_class, iic$hasp_post_print_class,
      iic$c200ut_class, iic$c714_30_class,
      iic$c711_class, iic$c714_10_or_20_class, iic$hasp_pre_print_class,
      iic$c73x_class, iic$i2740_class, iic$i3780_class, iic$i3270_class],

    iiv$upline_term_class_conv: [XDCL, READ, oss$job_paged_literal] array
      [iic$tty_class .. iic$i3270_class] of ift$terminal_class := [
       { 1 = }   ifc$tty_class,
       { 2 = }   ifc$c75x_class,
       { 3 = }   ifc$c721_class,
       { 4 = }   ifc$i2741_class,
       { 5 = }   ifc$tty40_class,
       { 6 = }   ifc$h2000_class,
       { 7 = }   ifc$x364_class,
       { 8 = }   ifc$t4010_class,
       { 9 = }   ifc$hasp_post_class,
       { 10 = }  ifc$c200ut_class,
       { 11 = }  ifc$c714_30_40,
       { 12 = }  ifc$c711_class,
       { 13 = }  ifc$c714_10_20_class,
       { 14 = }  ifc$hasp_pre_class,
       { 15 = }  ifc$c73x_class,
       { 16 = }  ifc$i2740_class,
       { 17 = }  ifc$i3780_class,
       { 18 = }  ifc$i3270_class],

   iiv$downline_input_device_conv: [XDCL, READ, oss$job_paged_literal] array
     [ifc$keyboard_input .. ifc$block_mode_input] of iit$field_value :=
     [iic$keyboard_input, iic$block_mode_input],

{   iiv$upline_input_device_conv: [XDCL, READ, oss$job_paged_literal] array
{     [0 .. 1] of ift$input_devices := [ifc$keyboard_input, ifc$block_mode_input],

{   iiv$downline_output_device_conv: [XDCL, READ, oss$job_paged_literal] array
{     [ifc$display_output .. ifc$printer_output] of iit$field_value :=
{     [iic$display_output, iic$printer_output],

{   iiv$upline_output_device_conv: [XDCL, READ, oss$job_paged_literal] array
{     [iic$printer_output .. iic$display_output] of ift$output_devices :=
{     [ifc$printer_output, ifc$display_output],

   iiv$downline_parity_conv: [XDCL, READ, oss$job_paged_literal] array
     [ifc$zero_parity .. ifc$no_parity] of iit$field_value := [iic$zero_parity, iic$zero_parity,
     iic$even_parity, iic$no_parity, iic$ignore_parity],

    iiv$upline_parity_conv: [XDCL, READ, oss$job_paged_literal] array
      [iic$zero_parity .. iic$ignore_parity] of ift$parity :=
      [ifc$zero_parity, ifc$odd_parity, ifc$even_parity, ifc$no_parity, ifc$no_parity],

 {  iiv$downline_end_position_conv: [XDCL, READ, oss$job_paged_literal] array
{    [ifc$no_input_positioning .. ifc$cr_lf] of iit$field_value :=
{     [iic$no_input_positioning, iic$carriage_return, iic$line_feed, iic$cr_lf],

    iiv$upline_end_position_conv: [XDCL, READ, oss$job_paged_literal] array
     [iic$elp_none .. iic$elp_crslfs] of ift$end_line_positioning :=
      [ifc$elp_none, ifc$elp_crs, ifc$elp_lfs, ifc$elp_crslfs],

    iiv$upline_part_position_conv: [XDCL, READ, oss$job_paged_literal] array
     [iic$epp_none .. iic$epp_crslfs] of ift$end_partial_positioning :=
      [ifc$no_epp, ifc$epp_crs, ifc$epp_lfs, ifc$epp_crslfs],

    iiv$deflt_connection_attributes: [XDCL, READ, OSS$JOB_PAGED_LITERAL]
          iit$connection_attributes := [
      [2, ifc$nam_default], {attention_character_action}
      [0, ifc$nam_default], {break_key_action}
      [[4, '*EOI'], ifc$os_default], {end_of_information}
      [160, ifc$nam_default], {input_block_size}
      [ifc$normal_edit, ifc$nam_default], {input_editing_mode}
      [ifc$unsolicited_output, ifc$nam_default], {input_output_mode}
      [FALSE, ifc$os_default], {input_timeout}
      [1048575, ifc$os_default], {input_timeout_length}
      [TRUE, ifc$os_default], {input_timeout_purge}
      [FALSE, ifc$nam_default], {partial_char_forwarding}
      [':$LOCAL.OUTPUT.1               ', ifc$os_default], {prompt_file}
      [[0, 1], ifc$os_default], {prompt_file_identifier}
      [[3, ' ? '], ifc$os_default], {prompt_string}
      [FALSE, ifc$nam_default], {store_backspace_character}
      [FALSE, ifc$nam_default], {store_nuls_dels}
      [ifc$no_trans_char, ifc$nam_default], {trans_character_mode}
      [[2, $CHAR(0d(16)) CAT $CHAR(8D(16))], ifc$nam_default], {trans_forward_character}
      [ifc$no_trans_len, ifc$nam_default], {trans_length_mode}
      [2000, ifc$nam_default], {trans_message_length}
      [[2, $CHAR(0d(16)) CAT $CHAR(8D(16))], ifc$nam_default], {trans_terminate_character}
      [ifc$no_trans_timeout, ifc$nam_default], {trans_timeout_mode}
      [ifc$no_trans_protocol, ifc$nam_default]], {trans_protocol_mode}

    iiv$skeleton_term_char_string: [XDCL, READ, oss$job_paged_literal]
      iit$term_char_string := [[iic$fn_user_break_1, * ],
      [iic$fn_full_duplex, * ], [iic$fn_solicited_mode, * ], [iic$fn_input_device, * ],
      [iic$fn_special_editing, * ], [iic$fn_full_ascii, * ],
      [iic$fn_trans_input_mode, * ], [iic$fn_trans_delim_char_select, * ],
      [iic$fn_trans_input_type, * ], [iic$fn_trans_delim_count_most, * ],
      [iic$fn_trans_delim_count_least, * ], [iic$fn_trans_delim_timeout, * ],
      [iic$fn_trans_mode_delim_lock, * ], [iic$fn_trans_delim_character, * ],
      [iic$fn_trans_mode_delim_char, * ], [iic$fn_terminal_class, * ],
      [iic$fn_page_width, * ], [iic$fn_page_length, * ],
      [iic$fn_cancel_line_character, * ], [iic$fn_backspace_character, * ],
      [iic$fn_cr_delay_count, * ], [iic$fn_lf_delay_count, * ],
      [iic$fn_echoplex, * ], [iic$fn_hold_page, * ],
      [iic$fn_parity, * ], [iic$fn_network_cmd_character, * ],
      [iic$fn_end_block_character, * ], [iic$fn_eob_cursor_positioning, * ],
      [iic$fn_end_line_character, * ], [iic$fn_eol_cursor_positioning, * ],
      [iic$fn_input_flow_control, * ], [iic$fn_output_flow_control, * ],
      [iic$fn_lockout_unsolicited_msgs, * ], [iic$fn_pacer_prompting, * ],
      [iic$fn_output_device, * ], [iic$fn_pause_break_character, * ],
      [iic$fn_term_break_character, * ]],

   iiv$all_get_term_attributes: [XDCL, READ, oss$job_paged_literal]
     array [1 .. (ORD(ifc$max_connection_key) + 1)] of ift$get_connection_attribute := [
    [* , ifc$attention_character_action, *], [* , ifc$break_key_action, *],
    [* , ifc$end_of_information, *], [* , ifc$input_block_size, *],
    [* , ifc$input_editing_mode, *], [* , ifc$input_output_mode, *],
    [* , ifc$input_timeout, *], [* , ifc$input_timeout_length, *],
    [* , ifc$input_timeout_purge, *], [* , ifc$null_connection_attribute],
    [* , ifc$partial_char_forwarding, *], [* , ifc$prompt_file, *],
    [* , ifc$prompt_file_identifier, *], [* , ifc$prompt_string, *],
    [* , ifc$store_backspace_character, *], [* , ifc$store_nuls_dels, *],
    [* , ifc$trans_character_mode, *], [* , ifc$trans_forward_character, *],
    [* , ifc$trans_length_mode, *], [* , ifc$trans_message_length, *],
    [* , ifc$trans_terminate_character, *], [* , ifc$trans_timeout_mode, *],
    [* , ifc$trans_protocol_mode, *]],

   iiv$init_undefined_attributes: [XDCL, READ, oss$job_paged_literal]
     iit$connection_attributes :=
    [{ attention_character_action } [ * , ifc$undefined_attribute],
     { break_key_action           } [ * , ifc$undefined_attribute],
     { end_of_information         } [ * , ifc$undefined_attribute],
     { input_block_size           } [ * , ifc$undefined_attribute],
     { input_editing_mode         } [ * , ifc$undefined_attribute],
     { input_output_mode          } [ * , ifc$undefined_attribute],
     { input_timeout              } [ * , ifc$undefined_attribute],
     { input_timeout_length       } [ * , ifc$undefined_attribute],
     { input_timeout_purge        } [ * , ifc$undefined_attribute],
     { partial_char_forwarding    } [ * , ifc$undefined_attribute],
     { prompt_file                } [ * , ifc$undefined_attribute],
     { prompt_file_identifier     } [ * , ifc$undefined_attribute],
     { prompt_string              } [ * , ifc$undefined_attribute],
     { store_backspace_character  } [ * , ifc$undefined_attribute],
     { store_nuls_dels            } [ * , ifc$undefined_attribute],
     { trans_character_mode       } [ * , ifc$undefined_attribute],
     { trans_forward_character    } [ * , ifc$undefined_attribute],
     { trans_length_mode          } [ * , ifc$undefined_attribute],
     { trans_message_length       } [ * , ifc$undefined_attribute],
     { trans_terminate_character  } [ * , ifc$undefined_attribute],
     { trans_protocol_mode         } [ * , ifc$undefined_attribute],
     { trans_timeout_mode         } [ * , ifc$undefined_attribute]],

    iiv$control_char_descriptions: [XDCL, READ, oss$job_paged_literal]
      iit$control_char_descriptions := [
      [ifc$backspace_character, 'BACKSPACE_CHARACTER'],
      [ifc$cancel_line_character, 'CANCEL_LINE_CHARACTER'],
      [ifc$end_line_character, 'END_LINE_CHARACTER'],
      [ifc$network_command_character, 'NETWORK_COMMAND_CHARACTER'],
      [ifc$pause_break_character, 'PAUSE_BREAK_CHARACTER'],
      [ifc$terminate_break_character, 'TERMINATE_BREAK_CHARACTER']],

    iiv$term_char_change_count: [XDCL] integer := 0;

MODEND iim$job_pageable_variables;
