?? TITLE := 'QTF Application Values', EJECT ??

?? LEFT := 1, RIGHT := 110 ??
?? FMT (FORMAT := ON, INDENT := 2) ??
?? SET (LIST := ON, LISTCTS := OFF) ??
MODULE nfm$qtf_application_data;
*copyc nfc$parameter_01_definitions
*copyc nfc$parameter_03_definitions
*copyc nfc$parameter_04_definitions
*copyc nfc$parameter_05_definitions
*copyc nfc$parameter_06_definitions
*copyc nfc$parameter_07_definitions
*copyc nfc$parameter_08_definitions
*copyc nfc$parameter_12_definitions
*copyc nfc$parameter_16_definitions
*copyc nfc$parameter_17_definitions
*copyc nfc$parameter_18_definitions
*copyc nfc$parameter_20_definitions
*copyc nfc$parameter_21_definitions
*copyc nfc$parameter_22_definitions
*copyc nfc$parameter_24_definitions
*copyc nfc$parameter_25_definitions
*copyc nfc$parameter_26_definitions
*copyc nfc$parameter_27_definitions
*copyc nfc$parameter_29_definitions
*copyc nfc$parameter_30_definitions
*copyc nfc$parameter_31_definitions
*copyc nfc$parameter_32_definitions
*copyc nfc$parameter_33_definitions
*copyc nft$parameter_rules
*copyc nft$parameter_rules_array
*copyc nft$parameter_set
*copyc nft$required_param_on_command
?? NEWTITLE := '  QTF parameter rules' ??
*copyc nfs$qtf_application_data

  VAR
    nfv$qtf_parameter_rules: [XDCL, READ, nfs$qtf_application_data] nft$parameter_rules_array :=
          [^protocol_id_rules {0} , ^nil_parameter {1} , ^nil_parameter {2} , ^facilities_rules {3} ,
          ^state_of_transfer_rules {4} , ^user_text_directive_rules {5} , ^file_length_rules {6} ,
          ^operator_message_rules {7} , ^user_message_rules {8} , ^nil_parameter {9} , ^nil_parameter {10} ,
          ^nil_parameter {11} , ^max_block_size_rules {12} , ^nil_parameter {13} , ^file_name_rules {16} ,
          ^file_disposition_rules {17} , ^acknowledgement_window_rules {18} , ^nil_parameter {19} ,
          ^min_timeout_interval_rules {20} , ^mode_of_access_rules {21} , ^host_type_rules {22} ,
          ^nil_parameter {23} , ^source_lid_rules {24} , ^transfer_lid_rules {25} , ^job_name_rules {26} ,
          ^physical_id_rules {27} , ^nil_parameter {28} , ^echo_rules {29} , ^attribute_continued_rules {30} ,
          ^data_declaration_rules {31} , ^system_routing_text_rules {32} , ^implicit_routing_text_rules {33} ,
          ^nil_parameter {51} , ^nil_parameter {52} , ^nil_parameter {53} , ^nil_parameter {54} ,
          ^nil_parameter {55} , ^nil_parameter {56} , ^nil_parameter {57} , ^nil_parameter {58} ,
          ^nil_parameter {59} , ^nil_parameter {60} , ^nil_parameter {90} , ^nil_parameter {91} ,
          ^nil_parameter {92} , ^nil_parameter {93} , ^nil_parameter {94} , ^nil_parameter {95} ,
          ^nil_parameter {96} , ^nil_parameter {97} , ^nil_parameter {98} , ^nil_parameter {99} ],

    nil_parameter: [READ, nfs$qtf_application_data] nft$parameter_rules := [[FALSE], [FALSE], [FALSE]],

    protocol_id_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p01_min_size, nfc$p01_min_size, $nft$command_set [nfc$rft, nfc$rpos],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE],
          [TRUE, nfc$p01_min_size, nfc$p01_min_size, $nft$command_set [nfc$rft, nfc$rpos],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE], [FALSE]],

    facilities_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p03_min_size, nfc$p03_max_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE],
          [TRUE, nfc$p03_min_size, nfc$p03_max_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE], [FALSE]],

    state_of_transfer_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p04_min_param_len, nfc$p04_max_param_len, $nft$command_set
          [nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], $nft$command_set [], $nft$command_set [],
          FALSE], [TRUE, nfc$p04_min_param_len, nfc$p04_max_param_len, $nft$command_set
          [nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], $nft$command_set [], $nft$command_set [],
          FALSE], [FALSE]],

    user_text_directive_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p05_min_param_len, nfc$p05_max_param_len, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rneg], $nft$command_set [], FALSE],
          [TRUE, nfc$p05_min_param_len, nfc$p05_max_param_len, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rneg],  $nft$command_set [], FALSE], [FALSE]],

    file_length_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p06_min_param_len, nfc$p06_max_param_len, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft], $nft$command_set [], FALSE],
          [TRUE, nfc$p06_min_param_len, nfc$p06_max_param_len, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft], $nft$command_set [], FALSE], [FALSE]],

    operator_message_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p07_min_param_len, nfc$p07_max_param_len_a101, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rpos, nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], FALSE],
          [TRUE, nfc$p07_min_param_len, nfc$p07_max_param_len_a102, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rpos, nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], FALSE], [FALSE]],

    user_message_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p08_min_param_len, nfc$p08_max_param_len_a101, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rpos, nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], FALSE],
          [TRUE, nfc$p08_min_param_len, nfc$p08_max_param_len_a102, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rpos, nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], FALSE], [FALSE]],

    max_block_size_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p12_min_size_a101, nfc$p12_max_size_a101, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE],
          [TRUE, nfc$p12_min_size_a102, nfc$p12_max_size_a102, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE], [FALSE]],

    file_name_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p16_min_param_length, nfc$p16_max_param_length_a101, $nft$command_set [nfc$rft],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE],
          [TRUE, nfc$p16_min_param_length, nfc$p16_max_param_length_a102, $nft$command_set [nfc$rft],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE], [FALSE]],

    file_disposition_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p17_min_size, nfc$p17_max_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft], $nft$command_set [], FALSE],
          [TRUE, nfc$p17_min_size, nfc$p17_max_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft], $nft$command_set [], FALSE], [FALSE]],

    acknowledgement_window_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p18_minimum_parameter_size, nfc$p18_maximum_parameter_size, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE],
          [TRUE, nfc$p18_minimum_parameter_size, nfc$p18_maximum_parameter_size, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE], [FALSE]],

    min_timeout_interval_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p20_min_size, nfc$p20_max_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE],
          [TRUE, nfc$p20_min_size, nfc$p20_max_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE], [FALSE]],

    mode_of_access_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p21_min_param_len, nfc$p21_max_param_len, $nft$command_set [nfc$rft],
          $nft$command_set [nfc$rpos], $nft$command_set [], $nft$command_set [], FALSE],
          [TRUE, nfc$p21_min_param_len, nfc$p21_max_param_len, $nft$command_set [nfc$rft],
          $nft$command_set [nfc$rpos], $nft$command_set [], $nft$command_set [], FALSE], [FALSE]],

    host_type_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p22_min_size, nfc$p22_max_size, $nft$command_set [nfc$rft, nfc$rpos],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE],
          [TRUE, nfc$p22_min_size, nfc$p22_max_size, $nft$command_set [nfc$rft, nfc$rpos],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE], [FALSE]],

    source_lid_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p24_min_param_size_a101, nfc$p24_min_param_size_a101, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft], $nft$command_set [], FALSE],
          [TRUE, nfc$p24_min_param_size_a102, nfc$p24_max_param_size_a102, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft], $nft$command_set [], FALSE], [FALSE]],

    transfer_lid_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p25_min_param_size_a101, nfc$p25_max_param_size_a101, $nft$command_set [nfc$rft],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE],
          [TRUE, nfc$p25_min_param_size_a102, nfc$p25_max_param_size_a102, $nft$command_set [nfc$rft],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE], [FALSE]],

    job_name_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p26_min_param_length, nfc$p26_max_param_length_a101, $nft$command_set [nfc$rft],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE],
          [TRUE, nfc$p26_min_param_length, nfc$p26_max_param_length_a102, $nft$command_set [nfc$rft],
          $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE], [FALSE]],

    physical_id_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p27_min_param_size_a101, nfc$p27_max_param_size_a101, $nft$command_set
          [nfc$rft, nfc$rpos], $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE],
          [TRUE, nfc$p27_min_param_size_a102, nfc$p27_max_param_size_a102, $nft$command_set
          [nfc$rft, nfc$rpos], $nft$command_set [], $nft$command_set [], $nft$command_set [], FALSE],
          [FALSE]],

    echo_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p29_min_param_size_a101, nfc$p29_max_param_size_a102, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE],
          [TRUE, nfc$p29_min_param_size_a102, nfc$p29_max_param_size_a102, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE], [FALSE]],

    attribute_continued_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p30_min_param_size, nfc$p30_max_param_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos, nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], FALSE],
          [TRUE, nfc$p30_min_param_size, nfc$p30_max_param_size, $nft$command_set [], $nft$command_set [],
          $nft$command_set [nfc$rft, nfc$rpos, nfc$rneg, nfc$stop, nfc$stopr], $nft$command_set [], FALSE],
          [FALSE]],

    data_declaration_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p31_min_param_length_a101, nfc$p31_max_param_length_a101, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE],
          [TRUE, nfc$p31_min_param_length_a102, nfc$p31_max_param_length_a102, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft, nfc$rpos], $nft$command_set [], FALSE], [FALSE]],

    system_routing_text_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p32_min_param_length_a101, nfc$p32_max_param_length_a101, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft], $nft$command_set [], FALSE],
          [TRUE, nfc$p32_min_param_length_a102, nfc$p32_max_param_length_a102, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft], $nft$command_set [], FALSE], [FALSE]],

    implicit_routing_text_rules: [READ, nfs$qtf_application_data] nft$parameter_rules :=
          [[TRUE, nfc$p33_min_param_length_a101, nfc$p33_max_param_length_a101, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft], $nft$command_set [], FALSE],
          [TRUE, nfc$p33_min_param_length_a102, nfc$p33_max_param_length_a102, $nft$command_set [],
          $nft$command_set [], $nft$command_set [nfc$rft], $nft$command_set [], FALSE], [FALSE]];

?? TITLE := '  QTF required parameters on protocol commands', EJECT ??

  VAR
    nfv$qtf_required_params_on_cmds: [XDCL, READ, nfs$qtf_application_data] nft$required_param_on_command :=
          [$nft$parameter_set [], $nft$parameter_set [nfc$protocol_id, nfc$file_name, nfc$mode_of_access,
          nfc$host_type, nfc$transfer_lid, nfc$physical_id],
          $nft$parameter_set [nfc$protocol_id, nfc$host_type, nfc$physical_id],
          $nft$parameter_set [nfc$state_of_transfer], $nft$parameter_set [],
          $nft$parameter_set [nfc$state_of_transfer], $nft$parameter_set [nfc$state_of_transfer],
          $nft$parameter_set [], $nft$parameter_set [], $nft$parameter_set []];

MODEND nfm$qtf_application_data;
