2 PMU_DUMP_MEMORY
 Post Mortem Utility to dump a specified range of memory in
 both hexadecimal and ASCII.

   CALL PMU_DUMP_MEMORY( range.ra.ra [,action.rzem.r])

 range   array containing the beginning (first element) and ending
         (second element) addresses of the memory range to be dumped.
         Passed by reference.

 action  address of a action routine to do the output I/O.  This
         routine has the same calling sequence as LIB$PUT_OUTPUT.
         Passed by reference.

 Any errors (from the action routine) are signalled.

 This routine rounds the range addresses to permit full lines of
 8 longwords (32 bytes) to be printed in the dump.  The beginning
 address will be rounded down and the ending address up to the next
 32-byte address boundaries.  In some circumstances this may cause
 access violations so beware of this effect.

 If the action routine address is 0, PMU_DUMP_MEMORY calls
 LIB$PUT_OUTPUT to perform output.
3 Impure_Range
 The module PMU_IMPURE defines the global symbol PMU_AA_IMPURE_RANGE
 as the label of the range array which defines the standard impure
 data areas in a normal process (which uses High-Level Languages and
 the normal PSECT linking order).  The start of the impure area is
 defined by the special PSECT $DAT0 (REL,LCL,NOSHR,NOEXE,WRT) which
 will be linked before PSECT's named $DATA or $LOCAL (local variables
 from HLL's like C and FORTRAN).  The end of the impure area is also
 defined by a special PSECT, $COD0 (REL,LCL,SHR,EXE,NOWRT) which will
 be linked just before the $CODE PSECT which normally contains the
 executable code and pure data.  Note that FORTRAN commons are usually
 linked into this "impure" range.

 The array pointed to by PMU_AA_IMPURE_RANGE (global array of addresses)
 is suitable for input to PMU_DUMP_MEMORY as the range argument.

2 PMU_DUMP_REGISTERS
 Post Mortem Utility to dump the general registers at the point
 of the signal.

   CALL PMU_DUMP_REGISTERS( siga.rl.ra, mecha.rl.ra, frame.rr.r
                            [,array.rl.r] [,action.rzem.r])

 siga    signal array as passed to the condition handler.
         Passed by reference.

 mecha   mechanism array as passed to the condition handler.
         Passed by reference.

 frame   stack frame of the condition handler (usually the caller
         of this routine).  Passed by reference.

 array   (optional) array in which the contents of the registers
         R2-R11 from the signal (same as at start of the condition
         handler) are saved.  If not given, these must be saved in
         the condition handler's stack frame.

 action  address of a action routine to do the output I/O.  This
         routine has the same calling sequence as LIB$PUT_OUTPUT.
         Passed by reference.

 Any errors (from the action routine) are signalled.  If the action
 routine address is 0, PMU_DUMP_REGISTERS calls LIB$PUT_OUTPUT to
 perform output.

 The R0 and R1 register contents are gotten from the mechanism array.
 The AP and FP register contents are extracted from the condition
 handler's stack frame.  The original stack pointer (SP) is calculated
 to have been just above the end of the signal array.  The old PC is
 gotten from the signal array (PC of the signal).  The contents of
 registers R2-R11 are provided in the optional array; if this argument
 is not provided the registers are expected to have been saved in the
 condition handler's stack frame by its entry mask.

