*COMDECK PBTUPDUMP
_$J+  PAGE EJECT? 
_*****************************
*                            *
*         PBTUPDUMP          *
*         TUP DUMP           *
*                            *
*****************************?
_$R+,G+,I-     RECURSIVE
               INTERRUPTABLE ?
_***********************************************************************
*                                                                      *
**OVERVIEW- PBTUPDUMP FORMATS 8-WORDS OF CORE FOR DUMPING.             *
*           THE TUP OUTPUT BUFFER CONTAINS THE DUMP INFORMATION        *
*           AND THE FIRST TWO ENTRIES IN THE TUP PARAMETER             *
*           TABLE CONTAIN THE DUMP START/STOP ADDRESSES.               *
*           PBTUPDUMP CHECKS FOR END-OF-DUMP AND RESETS THE            *
*           TUP DUMP FLAGS AT END.                                     *
*                                                                      *
**INPUT- TUP TABLE                                                     *
*                                                                      *
**OUTPUT- EIGHT WORDS OF DUMP FORMATTED.                               *
*                                                                      *
**EXTERNAL SUBROUTINES-                                                *
*              1) PBTOAH           CONVERT TO ASCII HEX                *
*                                                                      *
***********************************************************************?
PROCEDURE PBTUPDUMP;
CONST LSTCHAR = J1LST32;
VAR I : INTEGER;
    WORD : B0OVERLAY; 
BEGIN 
  WITH JUTUPTABLE,                          _TUP TABLE                 ?
       JUPARAM[0],                          _START OF DUMP             ?
       JUTUPOUT' DO                         _TUP OUTPUT BFR            ?
  BEGIN 
    I := J1FRSTCHAR+9;
    BFDATAC[J1FRSTCHAR+2] := #*#; 
    BFDATAC[J1FRSTCHAR+8] := # #; 
    P1TOAH(JV18BITS,JUTUPOUT,               _CONVERT DUMP ADDRESS      ?
           J1FRSTCHAR+3,LSTCHAR); 
    REPEAT
      PB18BITS(JV18BITS,WORD.BAINT,J0GET);
      PBTOAH(WORD.BAHEX,JUTUPOUT,           _CONVERT CORE CONTENTS     ?
             I,LSTCHAR);
      I := I+5; 
      PB18ADD(ONE,JV18BITS);
    UNTIL (J1FRSTCHAR+49 @ I) !             _CHECK FOR 8 WORDS DUMPED  ?
          PB18COMP(JV18BITS,J0EQ,           _CHECK FOR END-OF-DUMP     ?
                   JUPARAM[1].JV18BITS);
    BFLCD := I; 
    BFDATAC[I] := # #;
    IF PB18COMP(JV18BITS,J0EQ,              _CHECK FOR END-OF-DUMP     ?
                JUPARAM[1].JV18BITS) THEN 
    BEGIN 
      JUDPCFLG := FALSE;                    _-RESET DUMP               ?
      JUDPLFLG := FALSE;                    _-FLAGS                    ?
      BFEOTFLG := TRUE;                     _SET EOT FLAG IN BFR       ?
    END;
  END; _WITH? 
END; _PBTUPDUMP?
