*DECK     WRH 
          IDENT  P.WRH
          B1=1
          ENTRY  P.WRH
 WRH      SPACE  4,10 
 WRH      TITLE  P.WRH - WRITE HEXADECIMAL ROUTINE. 
          COMMENT PASCAL 6000 WRITE HEXADECIMAL ROUTINE.
          COMMENT COPYRIGHT (C) UNIVERSITY OF MINNESOTA - 1978. 
 WRH      SPACE  4,10 
***       P.WRH - WRITE HEXADECIMAL ROUTINE.
*         J. J. DRUMMOND.    77/04/30.
* BRING DOCUMENTATION UP TO CODING STANDARDS, FIX TYPOS.
 WRH      SPACE  4,10 
***       P.WRH - WRITE HEXADECIMAL ROUTINE.
* 
*         ENTRY  (B1) = 1.
*                (B6) = TOP OF STACK (TOS). 
*                (TOS + PFLC) = EFET ADDRESS - 13 = FILE FWA. 
*                (TOS + PFLC + 1) = VALUE TO WRITE. 
*                (TOS + PFLC + 2) = FIELD WIDTH.
* 
*         EXIT   VALUE WRITTEN TO FILE BUFFER.
* 
*         USES   A - 1, 3, 4, 5, 6, 7.
*                B - 2, 3, 7. 
*                X - ALL. 
* 
*         CALLS  P.PUTC.
* 
*         MACROS NONE.
  
  
*CALL     COMSPAS 
  
  
 P.WRH    PS                 ENTRY/EXIT 
          SA5    B6+PFLC+2   FIELD WIDTH
          SA1    B6+PFLC     FET - 14 
          SB3    X5 
          LE     B3,B0,P.WRH IF FIELD WIDTH <= 0
          SA1    X1+12       EFET - 1 
          SB2    X5-15       NUMBER OF BLANKS 
          LE     B2,B0,WRH2  IF NO BLANKS TO WRITE
          SB7    -B2         NEGATIVE NUMBER OF BLANKS
          SX5    X5+B7       NUMBER OF DIGITS TO CONVERT
 WRH1     SX6    1R 
          SB2    B2-B1
          SA6    X1          STORE BLANK
          RJ     =XP.PUTC    PUT CHARACTER
          SA1    X2-2        LOAD EFET - 1
          GT     B2,B0,WRH1  IF MORE BLANKS 
 WRH2     SB2    X5          DIGITS TO CONVERT
          SB7    60 
          SB3    B2+B2
          SA5    A5-B1       VALUE TO CONVERT 
          SB3    B3+B3       FIELD WIDTH * 4
          SB7    B7-B3
          LX5    B7          POSITION TO PROPER DIGITS
 WRH3     MX2    -4 
          SB2    B2-B1
          LX5    4
          BX3    -X2*X5 
          SX6    X3+1R0      HEX DIGIT
          SX2    X6-1R9-1 
          NG     X2,WRH4     IF 0..9
          SX6    X3-9        A..F 
 WRH4     SA6    X1          STORE DIGIT
          RJ     =XP.PUTC    PUT CHARACTER
          SA1    X2-2        EFET - 1 
          GT     B2,B0,WRH3  IF MORE DIGITS 
          EQ     P.WRH       RETURN 
 WRH      SPACE  4
          END 
