PROCEDURE dum$display_failure, display_failure, disf (
  output, o: file = output
  status: (VAR BY_NAME) status
  )

  VAR
    console_line_offset: integer
    console_line_length: integer
    cst_offset: integer
    cst_length: integer
    jps_offset: integer
    jps_length: integer
    osv$control_codes_to_quest_mark: string (256) = '???????????????????????????????? '//..
          '!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl'//..
          'mnopqrstuvwxyz{|}~???????????????????????????????????????????????????????????'//..
          '??????????????????????????????????????????????????????????????????????'
  VAREND

  output_file = output.$eoi

  put_line l=' ******************** FAILURE DISPLAY ********************' o=output_file

  idle_message_line = $symbol_address(mtv$idle_message_line)
  fetch_field_info t=dpt$console_line f=text o=console_line_offset l=console_line_length
  message_address = idle_message_line + console_line_offset/8
  fetch_field_info t=dpt$console_line f=text_size o=console_line_offset l=console_line_length
  message_length = $memory(idle_message_line+console_line_offset/8 console_line_length/8 monitor 0 pva)
  message = $translate(osv$control_codes_to_quest_mark, ..
        $memory_string(message_address message_length monitor 0 pva))
  put_line l='  Termination message = '//message o=output_file

  fetch_field_info t=ost$cpu_state_table f=ost$cpu_state_table o=cst_offset l=cst_length
  fetch_field_info t=ost$cpu_state_table f=xcb_rma o=jps_offset l=jps_length
  FOR index = 0 to ($memory($symbol_address(osv$cpus_logically_on) 1 monitor 0 pva)-1) DO
    jps = $memory($symbol_address(mtv$cst0)+(index*(cst_length/8))+jps_offset/8 jps_length/8 monitor 0 pva)
    put_line l='  Last task JPS (CPU '//$strrep(index)//') ='//$strrep(jps 16) o=output_file
  FOREND

  put_line l=' *********************************************************' o=output_file

PROCEND dum$display_failure
