Many many years ago, a Famous Assembler Programmer at Prodigy Services (Fread 
Veasley) gave me this routine to externalize a Return Code. I have been using 
it for some time and I cant recall Having a problem with it.

I thought I would share it.



*********************************************************************   00970000
* HEXPRINT - THIS SUBROUTINE CONVERTS HEX ADDRESS TO DISPLAY        *   00980000
*********************************************************************   00990000
HEXPRINT DS   0H                                                        01000000
         USING HEXPRINT,R6                                              01010000
         ST    R14,SAVE14A@   SAVE LINKAGE/RETURN REGISTER              01020000
         ST    R15,WKSV15     SAVE REGISTER 15                          01030000
*                                                                       01040000
         LA   R1,OUTSTRNG     ADDRESS OF OUTPUT STRING                  01050000
         L    R15,INSTRNG     ADDRESS OF INPUT STRING                   01060000
         LA   R0,8            LOOP COUNTER (8 HALF WORDS)               01070000
*                                                                       01080000
BK       EQU  *                                                         01090000
         LA   R14,15          PLACE 'F' INTO LOW ORDER NIBBLE OF R14    01100000
         SLDL R14,4           SHIFT FIRST HEX CHAR INTO R14 FROM        01110000
*                             HIGH ORDER NIBBLE OF REGISTER 15          01120000
*                                                                       01130000
         C    R14,=F'250'     IF  (F0 --> F9  THEN OK)                  01140000
         BL   OK                                                        01150000
         S    R14,=F'57'      MUST BE AN ALPHA                          01160000
*                             HIGH ORDER NIBBLE OF REGISTER 15          01170000
*                                                                       01180000
OK       EQU  *                                                         01190000
         STC  R14,0(R1)       STORE CHARACTER IN OUTSTRNG               01200000
         LA   R1,1(R1)        POINT TO NEXT AVAILABLE POSITION          01210000
         BCT  R0,BK           LOOP AGAIN                                01220000
*                                                                       01230000
         L    R15,WKSV15      RESTORE REGISTER 15                       01240000
         L    R14,SAVE14A@    RESTORE LINAKGE REGISTER                  01250000
         BR   R14             RETURN TO CALLER                          01260000
         LTORG                GENERATE LOCAL LITTERAL POOL              01270000
         DROP R6              TELL ASSEMBLER                            01280000
         EJECT                                                          01290000
*********************************************************************   01300000






RESPDSECT DSECT                                         00100000
RESPWORK  DS 0A               .Alignment                                00110000
RSAVE     DS 18A               .Register Save Area                      00120000
RETCODES  DS 0A                .RETURN/RESPONSE CODES                   00130000
RESPONSE  DS 1A                .  HEX RESPONSE CODE                     00140000
REASON    DS 1A                .  HEX REASON  CODE                      00150000
INSTRNG   DS  A                . INPUT STRING                           00160000
OUTSTRNG  DS  D                . OUTPUT STRING                          00170000
CRESPONSE DS  D                .Character Response Code                 00180000
CREASON   DS  D                .Character Reason Code                   00190000
RESPAREA  DS  CL16             .                                        00200000
PREVR13   DS  A                .Previous Register 13                    00210000
          DS  D                .                                        00220000
RESPWORK# EQU  *-RESPWORK      .Length Of Area                          00230000
         MEXIT                                                          00240000
         MEND                                                           00250000

Reply via email to