PROCEDURE dum$display_reallocate, display_reallocate (
  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='     '
  create_variable chain_pos_int k=integer
  create_variable chain_pos k=string d=0..4
  chain_pos(0) = 'dmc$first_and_last_allocation'
  chain_pos(1) = 'dmc$first_allocation'
  chain_pos(2) = 'dmc$middle_allocation'
  chain_pos(3) = 'dmc$last_allocation'
  chain_pos(4) = 'dmc$part_of_allocation_unit'

  log_address = log_address + 1
  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, j, 0, $value(am)), 16)
  output_line = output_line//' mf assigned='//$strrep($mem(log_address+14, 5, j, 0, $value(am)), 16)
  putl output_line o=$fname(output_file)
  output_line = indent//'dau_adrs='//$strrep($mem(log_address+19, 3, j, 0, $value(am)), 16)
  output_line = output_line//' old_dau_adrs='//$strrep($mem(log_address+22, 3, j, 0, $value(am)), 16)
  putl output_line o=$fname(output_file)
  output_line = indent//'next_dau_adrs='//$strrep($mem(log_address+25, 3, j, 0, $value(am)), 16)
  output_line = output_line//' prev_dau_adrs='//$strrep($mem(log_address+28, 3, j, 0, $value(am)), 16)
  putl output_line o=$fname(output_file)
  output_line = indent//'daus_per_alloc='//$strrep($mem(log_address+31, 1, j, 0, $value(am)), 16)
  chain_pos_int = $mem(log_address+32, 1, j, 0, $value(am))
  output_line = output_line//' alloc_chain_pos='//chain_pos(chain_pos_int)
  putl output_line o=$fname(output_file)

PROCEND dum$display_reallocate
