
  CONST
    pmc$max_object_file_list = 0ffff(16),
    pmc$max_module_list = 0ffff(16),
    pmc$max_library_list = 0ffff(16);

  TYPE
{      A program description is a sequence of one to five variables: }
{        1) program_attributes: pmt$program_attributes - required; specifys }
{           presence or absence, and size of remaining four variables, }
{        2) object_file_list: pmt$object_file_list, }
{        3) module_list: pmt$module_list, }
{        4) object_library_list: pmt$object_library_list. }
{        5) enable_inhibit_conditions: pmt$enable_inhibit_conditions. }
    pmt$program_description = SEQ ( * ),

    pmt$program_attributes = record
      contents: pmt$prog_description_contents,
      starting_procedure: pmt$program_name,
      number_of_object_files: pmt$number_of_object_files,
      number_of_modules: pmt$number_of_modules,
      number_of_libraries: pmt$number_of_libraries,
      load_map_file: amt$local_file_name,
      load_map_options: pmt$load_map_options,
      termination_error_level: pmt$termination_error_level,
      preset: pmt$initialization_value,
      maximum_stack_size: ost$segment_length,
      debug_input: amt$local_file_name,
      debug_output: amt$local_file_name,
      abort_file: amt$local_file_name,
      debug_mode: pmt$debug_mode,
    recend,

    pmt$prog_description_contents = set of pmt$prog_description_content,

    pmt$prog_description_content = (pmc$starting_proc_specified,
      pmc$object_file_list_specified, pmc$module_list_specified,
      pmc$library_list_specified, pmc$load_map_file_specified,
      pmc$load_map_options_specified, pmc$term_error_level_specified,
      pmc$preset_specified, pmc$max_stack_size_specified,
      pmc$debug_input_specified, pmc$debug_output_specified,
      pmc$abort_file_specified, pmc$debug_mode_specified,
      pmc$condition_specified, pmc$pd_reserved_10,
      pmc$pd_reserved_9, pmc$pd_reserved_8,
      pmc$pd_reserved_7, pmc$pd_reserved_6, pmc$pd_reserved_5,
      pmc$pd_reserved_4, pmc$pd_reserved_3, pmc$pd_reserved_2,
      pmc$pd_reserved_1),

    pmt$object_file_list = array [1 .. * ] of amt$local_file_name,

    pmt$module_list = array [1 .. * ] of pmt$program_name,

    pmt$object_library_list = array [1 .. * ] of amt$local_file_name,

    pmt$enable_inhibit_conditions = record
      enable_system_conditions: pmt$system_conditions,
      inhibit_system_conditions: pmt$system_conditions,
    recend,

    pmt$number_of_object_files = 0 .. pmc$max_object_file_list,

    pmt$number_of_modules = 0 .. pmc$max_module_list,

    pmt$number_of_libraries = 0 .. pmc$max_library_list,

    pmt$load_map_options = set of pmt$load_map_option,

    pmt$load_map_option = (pmc$no_load_map, pmc$segment_map, pmc$block_map,
      pmc$entry_point_map, pmc$entry_point_xref),

    pmt$termination_error_level = (pmc$warning_load_errors,
      pmc$error_load_errors, pmc$fatal_load_errors);

*copyc AMT$LOCAL_FILE_NAME
*copyc OSD$VIRTUAL_ADDRESS
*copyc PMT$PROGRAM_NAME
*copyc PMT$DEBUG_MODE
*copyc PMT$SYSTEM_CONDITIONS
*copyc PMT$INITIALIZATION_VALUE
