PROCEDURE dum$display_file_damaged, display_file_damaged (
  address, a: integer = $required
  output, o: file = $output
  address_mode, am: key pva, sva, 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 output_line k=string v=' '
  create_variable log_address v=$value(address)
  create_variable indent k=(string, 5) v=' '
  log_address = log_address + 1
  create_variable null_set k=boolean
  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'

  display_binary_unique_name log_address o=$fname(output_file) cs=indent//'    gfn=' am=$value(am)
  output_line = indent//'    dfl='//$strrep($mem(log_address+11, 3,,, $value(am)), 16)//'(16)'
  putl output_line o=$fname(output_file)

  null_set = true
  damage_set = $mem(log_address+14, 2,,, $value(am))
  FOR i = 0 TO 15 DO
    IF damage_set <> (damage_set/ 2 * 2) THEN
      output_line = indent//'    add 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//'    add damage = null set'
    putl output_line o=$fname(output_file)
  IFEND

  null_set = true
  damage_set = $mem(log_address+16, 2,,, $value(am))
  FOR i = 0 TO 15 DO
    IF damage_set <> (damage_set/ 2 * 2) THEN
      output_line = indent//'    remove 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//'    remove damage = null set'
    putl output_line o=$fname(output_file)
  IFEND

PROCEND dum$display_file_damaged
