{
{  PROCEDURE mm_path_test (name: list of key all,
{    (advise_in ai),
{    (advise_out ao),
{    (advise_out_in aoi),
{    (assign_contiguous_memory, acm)
{    (assign_pages ap),
{    (change_stack_aattribute, csa)
{    (check_io_status cios),
{    (conditional_free cf),
{    (copy_pages cp),
{    (create_scratch_segment css),
{    (create_segment cs),
{    (create_shadow_segment cshs),
{    (create_user_segment cus),
{    (delete_segment, ds)
{    (fetch_pva_unwritten_pages fpup)
{    (fetch_segment_attributes fsa),
{    (get_segment_length gsl),
{    (initiate_debug_shadowing ids),
{    (initiate_shadowing is),
{    (lock_pages lp),
{    (lock_segment ls),
{    (move_pages mp),
{    (null_monitor_request nmr),
{    (pf_disk pfd),
{    (pf_new_file_alloc pfnfa),
{    (pf_new_file_no_alloc pfnfna),
{    (pf_new_no_file pfnnf),
{    (pf_reclaim pfr),
{    (preallocate_file_space, pfs)
{    (process_io_completion pioc),
{    (read r),
{    (set_access_selections sas),
{    (set_segment_length ssl),
{    (store_segment_attributes ssa),
{    (task_switch ts),
{    (verify_access va),
{    (wait_io_completion wic),
{    (write w),
{    (write_modified_pages wmp),
{    (write_modified_pages_no_file wmpnf),
{    keyend
{    scale, s: integer 1 .. 1000 = 1
{    file_type, ft: key (transient t) (permanent, p) keyend = TRANSIENT
{    skip_shadow_tests, sst: boolean = FALSE
{    output, o: file = output)

?? PUSH (LISTEXT := ON) ??
?? FMT (FORMAT := OFF) ??

  VAR
    pdt: [STATIC, READ, cls$declaration_section] record
      header: clt$pdt_header,
      names: array [1 .. 9] of clt$pdt_parameter_name,
      parameters: array [1 .. 5] of clt$pdt_parameter,
      type1: record
        header: clt$type_specification_header,
        qualifier: clt$list_type_qualifier,
        element_type_spec: record
          header: clt$type_specification_header,
          qualifier: clt$keyword_type_qualifier,
          keyword_specs: array [1 .. 81] of clt$keyword_specification,
        recend,
      recend,
      type2: record
        header: clt$type_specification_header,
        qualifier: clt$integer_type_qualifier,
        default_value: string (1),
      recend,
      type3: record
        header: clt$type_specification_header,
        qualifier: clt$keyword_type_qualifier,
        keyword_specs: array [1 .. 4] of clt$keyword_specification,
        default_value: string (9),
      recend,
      type4: record
        header: clt$type_specification_header,
        default_value: string (5),
      recend,
      type5: record
        header: clt$type_specification_header,
        default_value: string (6),
      recend,
    recend := [
    [1,
    [89, 7, 5, 12, 8, 50, 376],
    clc$command, 9, 5, 0, 0, 0, 0, 0, ''], [
    ['FILE_TYPE                      ',clc$nominal_entry, 3],
    ['FT                             ',clc$abbreviation_entry, 3],
    ['NAME                           ',clc$nominal_entry, 1],
    ['O                              ',clc$abbreviation_entry, 5],
    ['OUTPUT                         ',clc$nominal_entry, 5],
    ['S                              ',clc$abbreviation_entry, 2],
    ['SCALE                          ',clc$nominal_entry, 2],
    ['SKIP_SHADOW_TESTS              ',clc$nominal_entry, 4],
    ['SST                            ',clc$abbreviation_entry, 4]],
    [
{ PARAMETER 1
    [3, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation, clc$standard_parameter_checking, 3020,
  clc$optional_parameter, 0, 0],
{ PARAMETER 2
    [7, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation, clc$standard_parameter_checking, 20,
  clc$optional_default_parameter, 0, 1],
{ PARAMETER 3
    [1, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation, clc$standard_parameter_checking, 155,
  clc$optional_default_parameter, 0, 9],
{ PARAMETER 4
    [8, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation, clc$standard_parameter_checking, 3,
  clc$optional_default_parameter, 0, 5],
{ PARAMETER 5
    [5, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation, clc$standard_parameter_checking, 3,
  clc$optional_default_parameter, 0, 6]],
{ PARAMETER 1
    [[1, 0, clc$list_type], [3004, 1, clc$max_list_size, FALSE],
      [[1, 0, clc$keyword_type], [81], [
      ['ACM                            ', clc$abbreviation_entry, clc$normal_usage_entry, 5],
      ['ADVISE_IN                      ', clc$nominal_entry, clc$normal_usage_entry, 2],
      ['ADVISE_OUT                     ', clc$nominal_entry, clc$normal_usage_entry, 3],
      ['ADVISE_OUT_IN                  ', clc$nominal_entry, clc$normal_usage_entry, 4],
      ['AI                             ', clc$abbreviation_entry, clc$normal_usage_entry, 2],
      ['ALL                            ', clc$nominal_entry, clc$normal_usage_entry, 1],
      ['AO                             ', clc$abbreviation_entry, clc$normal_usage_entry, 3],
      ['AOI                            ', clc$abbreviation_entry, clc$normal_usage_entry, 4],
      ['AP                             ', clc$abbreviation_entry, clc$normal_usage_entry, 6],
      ['ASSIGN_CONTIGUOUS_MEMORY       ', clc$nominal_entry, clc$normal_usage_entry, 5],
      ['ASSIGN_PAGES                   ', clc$nominal_entry, clc$normal_usage_entry, 6],
      ['CF                             ', clc$abbreviation_entry, clc$normal_usage_entry, 9],
      ['CHANGE_STACK_AATTRIBUTE        ', clc$nominal_entry, clc$normal_usage_entry, 7],
      ['CHECK_IO_STATUS                ', clc$nominal_entry, clc$normal_usage_entry, 8],
      ['CIOS                           ', clc$abbreviation_entry, clc$normal_usage_entry, 8],
      ['CONDITIONAL_FREE               ', clc$nominal_entry, clc$normal_usage_entry, 9],
      ['COPY_PAGES                     ', clc$nominal_entry, clc$normal_usage_entry, 10],
      ['CP                             ', clc$abbreviation_entry, clc$normal_usage_entry, 10],
      ['CREATE_SCRATCH_SEGMENT         ', clc$nominal_entry, clc$normal_usage_entry, 11],
      ['CREATE_SEGMENT                 ', clc$nominal_entry, clc$normal_usage_entry, 12],
      ['CREATE_SHADOW_SEGMENT          ', clc$nominal_entry, clc$normal_usage_entry, 13],
      ['CREATE_USER_SEGMENT            ', clc$nominal_entry, clc$normal_usage_entry, 14],
      ['CS                             ', clc$abbreviation_entry, clc$normal_usage_entry, 12],
      ['CSA                            ', clc$abbreviation_entry, clc$normal_usage_entry, 7],
      ['CSHS                           ', clc$abbreviation_entry, clc$normal_usage_entry, 13],
      ['CSS                            ', clc$abbreviation_entry, clc$normal_usage_entry, 11],
      ['CUS                            ', clc$abbreviation_entry, clc$normal_usage_entry, 14],
      ['DELETE_SEGMENT                 ', clc$nominal_entry, clc$normal_usage_entry, 15],
      ['DS                             ', clc$abbreviation_entry, clc$normal_usage_entry, 15],
      ['FETCH_PVA_UNWRITTEN_PAGES      ', clc$nominal_entry, clc$normal_usage_entry, 16],
      ['FETCH_SEGMENT_ATTRIBUTES       ', clc$nominal_entry, clc$normal_usage_entry, 17],
      ['FPUP                           ', clc$abbreviation_entry, clc$normal_usage_entry, 16],
      ['FSA                            ', clc$abbreviation_entry, clc$normal_usage_entry, 17],
      ['GET_SEGMENT_LENGTH             ', clc$nominal_entry, clc$normal_usage_entry, 18],
      ['GSL                            ', clc$abbreviation_entry, clc$normal_usage_entry, 18],
      ['IDS                            ', clc$abbreviation_entry, clc$normal_usage_entry, 19],
      ['INITIATE_DEBUG_SHADOWING       ', clc$nominal_entry, clc$normal_usage_entry, 19],
      ['INITIATE_SHADOWING             ', clc$nominal_entry, clc$normal_usage_entry, 20],
      ['IS                             ', clc$abbreviation_entry, clc$normal_usage_entry, 20],
      ['LOCK_PAGES                     ', clc$nominal_entry, clc$normal_usage_entry, 21],
      ['LOCK_SEGMENT                   ', clc$nominal_entry, clc$normal_usage_entry, 22],
      ['LP                             ', clc$abbreviation_entry, clc$normal_usage_entry, 21],
      ['LS                             ', clc$abbreviation_entry, clc$normal_usage_entry, 22],
      ['MOVE_PAGES                     ', clc$nominal_entry, clc$normal_usage_entry, 23],
      ['MP                             ', clc$abbreviation_entry, clc$normal_usage_entry, 23],
      ['NMR                            ', clc$abbreviation_entry, clc$normal_usage_entry, 24],
      ['NULL_MONITOR_REQUEST           ', clc$nominal_entry, clc$normal_usage_entry, 24],
      ['PFD                            ', clc$abbreviation_entry, clc$normal_usage_entry, 25],
      ['PFNFA                          ', clc$abbreviation_entry, clc$normal_usage_entry, 26],
      ['PFNFNA                         ', clc$abbreviation_entry, clc$normal_usage_entry, 27],
      ['PFNNF                          ', clc$abbreviation_entry, clc$normal_usage_entry, 28],
      ['PFR                            ', clc$abbreviation_entry, clc$normal_usage_entry, 29],
      ['PFS                            ', clc$abbreviation_entry, clc$normal_usage_entry, 30],
      ['PF_DISK                        ', clc$nominal_entry, clc$normal_usage_entry, 25],
      ['PF_NEW_FILE_ALLOC              ', clc$nominal_entry, clc$normal_usage_entry, 26],
      ['PF_NEW_FILE_NO_ALLOC           ', clc$nominal_entry, clc$normal_usage_entry, 27],
      ['PF_NEW_NO_FILE                 ', clc$nominal_entry, clc$normal_usage_entry, 28],
      ['PF_RECLAIM                     ', clc$nominal_entry, clc$normal_usage_entry, 29],
      ['PIOC                           ', clc$abbreviation_entry, clc$normal_usage_entry, 31],
      ['PREALLOCATE_FILE_SPACE         ', clc$nominal_entry, clc$normal_usage_entry, 30],
      ['PROCESS_IO_COMPLETION          ', clc$nominal_entry, clc$normal_usage_entry, 31],
      ['R                              ', clc$abbreviation_entry, clc$normal_usage_entry, 32],
      ['READ                           ', clc$nominal_entry, clc$normal_usage_entry, 32],
      ['SAS                            ', clc$abbreviation_entry, clc$normal_usage_entry, 33],
      ['SET_ACCESS_SELECTIONS          ', clc$nominal_entry, clc$normal_usage_entry, 33],
      ['SET_SEGMENT_LENGTH             ', clc$nominal_entry, clc$normal_usage_entry, 34],
      ['SSA                            ', clc$abbreviation_entry, clc$normal_usage_entry, 35],
      ['SSL                            ', clc$abbreviation_entry, clc$normal_usage_entry, 34],
      ['STORE_SEGMENT_ATTRIBUTES       ', clc$nominal_entry, clc$normal_usage_entry, 35],
      ['TASK_SWITCH                    ', clc$nominal_entry, clc$normal_usage_entry, 36],
      ['TS                             ', clc$abbreviation_entry, clc$normal_usage_entry, 36],
      ['VA                             ', clc$abbreviation_entry, clc$normal_usage_entry, 37],
      ['VERIFY_ACCESS                  ', clc$nominal_entry, clc$normal_usage_entry, 37],
      ['W                              ', clc$abbreviation_entry, clc$normal_usage_entry, 39],
      ['WAIT_IO_COMPLETION             ', clc$nominal_entry, clc$normal_usage_entry, 38],
      ['WIC                            ', clc$abbreviation_entry, clc$normal_usage_entry, 38],
      ['WMP                            ', clc$abbreviation_entry, clc$normal_usage_entry, 40],
      ['WMPNF                          ', clc$abbreviation_entry, clc$normal_usage_entry, 41],
      ['WRITE                          ', clc$nominal_entry, clc$normal_usage_entry, 39],
      ['WRITE_MODIFIED_PAGES           ', clc$nominal_entry, clc$normal_usage_entry, 40],
      ['WRITE_MODIFIED_PAGES_NO_FILE   ', clc$nominal_entry, clc$normal_usage_entry, 41]]
      ]
    ],
{ PARAMETER 2
    [[1, 0, clc$integer_type], [1, 1000, 10],
    '1'],
{ PARAMETER 3
    [[1, 0, clc$keyword_type], [4], [
    ['P                              ', clc$abbreviation_entry, clc$normal_usage_entry, 2],
    ['PERMANENT                      ', clc$nominal_entry, clc$normal_usage_entry, 2],
    ['T                              ', clc$abbreviation_entry, clc$normal_usage_entry, 1],
    ['TRANSIENT                      ', clc$nominal_entry, clc$normal_usage_entry, 1]]
    ,
    'TRANSIENT'],
{ PARAMETER 4
    [[1, 0, clc$boolean_type],
    'FALSE'],
{ PARAMETER 5
    [[1, 0, clc$file_type],
    'output']];

?? FMT (FORMAT := ON) ??
?? POP ??

    CONST
      p$name = 1,
      p$scale = 2,
      p$file_type = 3,
      p$skip_shadow_tests = 4,
      p$output = 5;

    VAR
      pvt: array [1 .. 5] of clt$parameter_value;
