
  PROCEDURE display_integer_monitor
    (    desc: string ( * <= 60);
         int: integer);
?? PUSH (LISTEXT := ON) ??
?? RIGHT := 110 ??
    VAR
      hex_digits: [READ] array [0 .. 15] of char := ['0', '1', '2', '3', '4',
            '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];

    TYPE
      convert = record
        case (integ, strng) of
        = integ =
          int: integer,
        = strng =
          strn: string (8),
        casend,
      recend;

    VAR
      conv: convert,
      data: string (8),
      data_index: integer,
      line: string (80),
      line_index: integer;

    line := desc;
    line_index := #SIZE (desc) + 2;
    conv.int := int;
    data := conv.strn;
    FOR data_index := 1 TO 8 DO
      line (line_index) := hex_digits [$INTEGER (data (data_index)) DIV 16];
      line (line_index + 1) := hex_digits [$INTEGER (data (data_index)) MOD
            16];
      line_index := line_index + 2;
    FOREND;
    dpp$display_error (line (1, (line_index - 1)));

  PROCEND display_integer_monitor;

*copyc dpp$display_error
?? POP ??
