
PROC dum$display_io_summary display_io_summary, disis (
  output, o : file = $output
  )

  out = $unique
  out_eoi = out // '.$EOI'

  create_variable, n=active_status, k=string, d=0..1
  active_status(0) = ' inactive'
  active_status(1) = ' active'

  request_heap = $sa(iov$request_heap)
  request_length = 152
  request_map = $sa(iov$request_heap_map)

  time_offset = 04f(16)
  time_length = 8

  unit_offset = 072(16)
  unit_length = 2

  cylinder_offset = 07a(16)
  cylinder_length = 2

  track_offset = 07c(16)
  track_length = 2

  sector_offset = 07e(16)
  sector_length = 2

  FOR i = 0 TO 254 DO
    map = $mem(request_map+i/8, 1)
    map_bit = $mod(map/(2**(7-$mod(i, 8))), 2)
    time = $mem(request_heap+request_length*i+time_offset, time_length)
    unit = $mem(request_heap+request_length*i+unit_offset, unit_length)
    cylinder = $mem(request_heap+request_length*i+cylinder_offset, cylinder_length)
    track = $mem(request_heap+request_length*i+track_offset, track_length)
    sector = $mem(request_heap+request_length*i+sector_offset, sector_length)

    index_string = $strrep(i+1, 10)
    index_string = $substr('', 1, 4-$strlen(index_string)) // index_string

    time_string = $strrep(time, 10)
    time_string = $substr('', 1, 17-$strlen(time_string)) // time_string

    unit_string = $strrep(unit, 10)
    unit_string = $substr('', 1, 3-$strlen(unit_string)) // unit_string

    cylinder_string = $strrep(cylinder, 10)
    cylinder_string = $substr('', 1, 5-$strlen(cylinder_string)) // cylinder_string

    track_string = $strrep(track, 10)
    track_string = $substr('', 1, 4-$strlen(track_string)) // track_string

    sector_string = $strrep(sector, 10)
    sector_string = $substr('', 1, 4-$strlen(sector_string)) // sector_string

    put_line, l=' i ='//index_string//' t ='//time_string//' u ='//unit_string//' cy ='//cylinder_string//..
' tk ='//track_string//' sc ='//sector_string//active_status(map_bit), o=$fname(out_eoi)
  FOREND

  copy_file, i=$fname(out), o=$value(output)
  delete_file, f=$fname(out)

PROCEND dum$display_io_summary
