PROCEDURE dum$display_dfl_entry, display_dfl_entry, disdfle (
  address, a: integer = $required
  output, o: file = $output
  address_mode, am: key pva, p, sva, s, keyend = sva
  status)

  IF $file($value(output) open_position) = '$BOI' THEN
    output_file = $string($value(output))//'.$asis'
  ELSE
    output_file = $string($value(output))
  IFEND

  create_variable flag_kind k=string d=0..2
  flag_kind(0) = 'available'
  flag_kind(1) = 'assigned to mainframe'
  flag_kind(2) = 'assigned to file'

  create_variable chain_s k=string d=0..1
  chain_s(0) = 'linked'
  chain_s(1) = 'NOT linked'

  create_variable dmt$file_damage_types k=string d=0..15
  dmt$file_damage_types(15) = 'dmc$file_damage_15'
  dmt$file_damage_types(14) = 'dmc$file_damage_14'
  dmt$file_damage_types(13) = 'dmc$file_damage_13'
  dmt$file_damage_types(12) = 'dmc$file_damage_12'
  dmt$file_damage_types(11) = 'dmc$file_damage_11'
  dmt$file_damage_types(10) = 'dmc$file_damage_10'
  dmt$file_damage_types(9) = 'dmc$file_damage_9'
  dmt$file_damage_types(8) = 'dmc$file_damage_8'
  dmt$file_damage_types(7) = 'dmc$file_damage_7'
  dmt$file_damage_types(6) = 'dmc$file_damage_6'
  dmt$file_damage_types(5) = 'dmc$file_damage_5'
  dmt$file_damage_types(4) = 'dmc$file_damage_4'
  dmt$file_damage_types(3) = 'dmc$file_damage_3'
  dmt$file_damage_types(2) = 'dmc$media_image_inconsistent'
  dmt$file_damage_types(1) = 'dmc$allocation_chain_brocken'
  dmt$file_damage_types(0) = 'dmc$eoi_modified_by_recovery'

  create_variable file_type k=string d=0..5
  file_type(0) = 'permanent'
  file_type(1) = 'device'
  file_type(2) = 'temp_named'
  file_type(3) = 'temp_unnamed'
  file_type(4) = 'catalog'
  file_type(5) = 'temp_global'
  create_variable output_line k=string v=' '
  create_variable indent k=(string, 5) v='     '

  start_of_entry = $value(address)
  display_memory start_of_entry b=56 am=$value(am) o=$fname(output_file) t='DEVICE FILE LIST ENTRY'

  gfn_address = start_of_entry+16
  display_binary_unique_name gfn_address o=$fname(output_file) cs='       gfn=' am=$value(am)

  output_line = indent//' flag='//flag_kind($mem(start_of_entry+2, 1,,, $value(am)))
  output_line = output_line//'   chain_status='//chain_s($mem(start_of_entry+3, 1,,, $value(am)))
  putl output_line o=$fname(output_file)
  output_line = ' '
  output_line = indent//' dau/au='//$strrep($mem(start_of_entry+4, 1,,, $value(am)), 16)//'(16)'
  output_line = output_line//'   file_byte_address='//..
$strrep($mem(start_of_entry+5, 6,,, $value(am)), 16)//'(16)'
  output_line = output_line//'   hash='//$strrep($mem(start_of_entry+11, 1,,, $value(am)), 16)//'(16)'
  output_line = output_line//'   '//file_type($mem(start_of_entry+12, 1,,, $value(am)))//' file'
  putl output_line o=$fname(output_file)
  output_line = ' '
  output_line = indent//' first_dau='//$strrep($mem(start_of_entry+13, 3,,, $value(am)), 16)//'(16)'
  output_line = output_line//'   subf_length='//$strrep($mem(start_of_entry+27, 6,,, $value(am)), 16)//'(16)'
  output_line = output_line//'   logical_length='//..
$strrep($mem(start_of_entry+33, 6,,, $value(am)), 16)//'(16)'
  putl output_line o=$fname(output_file)
  output_line = ' '
  output_line = indent//' eoi='//$strrep($mem(start_of_entry+39, 6,,, $value(am)), 16)//'(16)'
  output_line = output_line//'   eof='//$strrep($mem(start_of_entry+45, 6,,, $value(am)), 16)//'(16)'
  output_line = output_line//'   login_set='//$strrep($mem(start_of_entry+51, 3,,, $value(am)), 16)//'(16)'
  putl output_line o=$fname(output_file)
  null_set = true
  damage_set = $mem(start_of_entry+54, 2,,, $value(am))
  FOR i = 0 TO 15 DO
    IF damage_set <> (damage_set/ 2 * 2) THEN
      output_line = indent//' damage = '//dmt$file_damage_types(15-i)
      putl output_line o=$fname(output_file)
      null_set = false
    IFEND
    damage_set = damage_set/ 2
  FOREND

  IF null_set THEN
    output_line = indent//' damage = null set'
    putl output_line o=$fname(output_file)
  IFEND
  output_line = ' '

PROCEND dum$display_dfl_entry
