*DECK GMOVSTO 
          IDENT  GMOVSTO
          TITLE  GMOVSTO -  GENERATE MOVE = STORE NUMERIC DISPLAY 
          MACHINE  ANY,I
          SST 
          COMMENT  GENERATE MOVE = STORE NUMERIC DISPLAY
          SPACE  4
**        GMOVSTO -  GENERATE MOVE = STORE NUMERIC DISPLAY
*                    (UNROUNDED)
* 
* RN2ND   LINK   CGRN2ND
* 
*         REGB = DNAT POINTER TO SOURCE REGISTER. 
*         REGC = DNAT POINTER TO DESTINATION ITEM.
* 
*         CALLZ  RN2ND
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE
          TITLE  RN2ND
  
*      COMDECKS 
  
  
  
  
 CONTROL  OPSYN  NIL
  
  
  
  
  
*      MODULE DECLARATION 
  
 GMOVSTO  MODULE
  
  
*      LINKAGE FROM CALLING ROUTINES IN OTHER MODULES 
  
 RN2ND    KNIL   CGRN2ND     * FROM GMOVE 
  
  
*      LINKAGE TO CALLED ROUTINES IN OTHER MODULES
  
 ADNAT    LINK   ADNAT
 RN2RN    LINK   CGRN2RN
 SCSTORE  LINK   SCSTORE
 SUBDNAT  LINK   SUBDNAT
 SUBLOAD  LINK   SUBLOAD
 SETXXPK  LINK   CGSXXPK     * TO GMOVSUB 
  
*      FIXED TABLE EQUATES
  
 BCPOFB   EQU    T6 
 BCPMASK  EQU    T7 
 LENMASK  EQU    T8 
 SCALE    EQU    T9 
 LSHIFTCT EQU    T10
 LABEL1   EQU    P9          LABEL NUMBER FOR LABEL *LOCLAB1* 
 STOREG   EQU    REGT16 
  
  
*      MISCELLANEOUS EQUATES
  
  
  
*      SYMBOLIC PARAMETER DEFINITIONS 
  
 CBZEROP  SETSY  (EXT$OF,C.ZEROP) 
 CBZEROS  SETSY  (EXT$OF,C.ZEROS) 
 CBZNM33B SETSY  (EXT$OF,C.ZN),-1R0 
 FWARECV  SETSY  (FWA$OF,REGC)
 FWARECP1 SETSY  (FWA$OF,REGC),1
 LOCLAB1  SETSY  (LOCAL$OF,LABEL1)
 LWARECV  SETSY  (LWA$OF,REGC)
          EJECT 
          SPACE  4
**        RN2ND -  REGISTER NUMERIC TO NUMERIC DISPLAY ITEM 
  
  
  
  
  
* 
*         REGB = DNAT POINTER TO SOURCE REGISTER. 
*         (TREGOF,REGB) = VIRTUAL REGISTER NUMBER OF REGISTER WITH
*           (MOST) SIGNIFICANT DIGITS.
*         (TREGP1OF,REGB) = VIRTUAL REGISTER NUMBER OF REGISTER WITH
*           LEAST SIGNIFICANT DIGITS, IF TWO REGISTERS ARE NEEDED.
*         (NUMLENOF,REGB) = NUMBER OF DIGITS IN SOURCE. 
*         (POINTOF,REGB) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.   (E.G. PIC 999PP _ 2) 
*         (SIGNOF,REGB) = 1 IFF SOURCE IS SIGNED. 
*         REGC = DNAT POINTER TO DESTINATION FIELD. 
*         FWARECV = FIRST WORD ADDRESS OF RECEIVING FIELD.
*         FWARECV = FIRST WORD ADDRESS PLUS ONE OF DESTINATION. 
*         (NUMLENOF,REGC) = NUMBER OF DIGITS IN DESTINATION FIELD.
*         (POINTOF,REGC) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.   (E.G. PIC 66V6 _ -1) 
*         (SIGNOF,REGC) = 1 IFF DESTINATION IS SIGNED.
* 
*         CALLZ  RN2ND
* 
*         GENERATES CODE TO STORE THE SOURCE REGISTER INTO THE
*           DESTINATION FIELD.
* 
*         USES-  (NONE) 
  
  
 RN2ND    EGO    2
          NOTE   RN2ND
  
*      IF DESTINATION IS SUBSCRIPTED, GO PROCESS
  
          IFZ    (RECSUBS,NE,0),RN2ND23 
  
*      COMPUTE (BCPOF,REGB) 
  
          IFTHEN ((NUMLENOF,REGB),LE,10)
            SUBZ   10,(NUMLENOF,REGB),(BCPOF,REGB)
          ELSEZ 
            SUBZ   20,(NUMLENOF,REGB),(BCPOF,REGB)
            ENDIFZ
  
*      CHECK FOR PATHOLOGICAL CASES 
  
          SUBZ   (POINTOF,REGB),(POINTOF,REGC),T1 
          ADDZ   T1,18,T1 
          IFZ    (T1,LT,0),RN2ND22               IF SCALE < -18 
          SUBZ   18,(NUMLENOF,REGC),T2
          IFZ    (T1,LE,T2),RN2ND18              IF -18 @ SCALE @ LEN C 
          IFZ    (T1,GT,36),RN2ND22              IF SCALE > 18
          ADDZ   18,(NUMLENOF,REGB),T2
          IFZ    (T1,GE,T2),RN2ND18              IF LEN B @ SCALE @ 18
  
*      COMPUTE VARIABLES *SCALE* AND *LSHIFTCT* 
  
          ANDZ   (LDSIGNOF,REGC),(SCHAROF,REGC),T1
          ADDZ   (BCPOF,REGC),T1,T1              BCP OF NUMERIC PART
          ADDZ   T1,(INTLENOF,REGC),T1           ENDING CHARACTER POS.
          ADDZ   (BCPOF,REGB),(INTLENOF,REGB),T2
          SUBZ   (ARITH8,T2),(ARITH8,T1),SCALE   < 0 IFF SHIFTING RIGHT 
          QUOTZ  (ARITH9,SCALE),6,LSHIFTCT
  
*      SET VREG1 = VIRTUAL REGISTER NUMBER OF RIGHT-MOST REGISTER 
  
          MOVEZ  (TREGOF,REGB),VREG1
          ADDZ   (NUMLENOF,REGB),(SIGNOF,REGB),T2 
          IFTHEN (T2,GT,10)                      IF 2-REGISTER SOURCE 
            MOVEZ  (TREGP1OF,REGB),VREG1
            ENDIFZ
  
          IFZ    ((NUMLENOF,REGB),GT,10),RN2ND4  IF SOURCE IS 2 WORDS 
  
*      IF SOURCE IS SIGNED, TAKE ABSOLUTE VALUE 
  
          IFTHEN ((SIGNOF,REGB),EQ,1) 
            GEN    XMIT,(VREGOF,VREG3),(TREGOF,REGB)
            GEN    SHR,VREG3,59 
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG3
            ENDIFZ
  
          ADDZ   (BCPOF,REGC),(NUMLENOF,REGC),T1
*                            (ARITH1,REGC) WAS NOT USED BECAUSE 
*                            SEPARATE SIGN GIVES DIFFERENT RESULT.
          ANDZ   (LDSIGNOF,REGC),(SCHAROF,REGC),T2  1 IFF LEAD SEP SIGN 
          ADDZ   T1,T2,T1 
          IFZ    (T1,GT,20),RN2ND3               IF DEST. SPANS 3 WORDS 
          IFZ    (T1,GT,10),RN2ND2               IF DEST. SPANS 2 WORDS 
          IFZ    ((NUMLENOF,REGC),EQ,10),RN2ND1  IF DEST. IS FULL WORD
  
*                            SOURCE IS 1 REGISTER 
*                            NUMERIC PART OF DESTINATION IS A 
*                              PROPER SUBSET OF ONE WORD
          CALLZ  RN2NDD 
          RETURN
  
  
*                            SOURCE IS 1 REGISTER 
*                            NUMERIC PART OF DESTINATION IS A FULL WORD 
 RN2ND1   LABEL 
          CALLZ  RN2NDB 
          RETURN
  
  
*                            SOURCE IS 1 REGISTER 
*                            NUMERIC PART OF DESTINATION SPANS 2 WORDS
 RN2ND2   LABEL 
          CALLZ  RN2NDA 
          RETURN
  
  
*                            SOURCE IS 1 REGISTER 
*                            NUMERIC PART OF DESTINATION SPANS 3 WORDS
 RN2ND3   LABEL 
          CALLZ  RN2NDE 
          RETURN
  
  
*                            SOURCE IS 2 REGISTERS
 RN2ND4   LABEL 
          CALLZ  RN2NDE 
          RETURN
  
  
*                            PATHOLOGICAL CASES:  
*                            -18 @ SCALE @ LEN B, OR
*                            LEN C @ SCALE @ 18 
*                            I.E. NO DIGIT FROM SOURCE IS MOVED 
* 
*                            POSITIVE ZERO WILL BE MOVED TO DESTINATION 
*                            GOOD CODE WILL NOT NECESSARILY BE GENERATED
 RN2ND18  LABEL 
          NOTE   RN2ND18
          GEN    SLRBPK,(VREGOF,VREG3),,CBZEROS 
          GEN    SLRBPK,(VREGOF,VREG1),,FWARECV 
  
          ADDZ   (BCPOF,REGC),(NUMLENOF,REGC),T2
  
          IFTHEN (T2,GE,10) 
            GEN    MASK,(VREGOF,VREG5),(ARITH2,REGC)       6*BCPOF
          ELSEZ 
            SUBZ   10,(NUMLENOF,REGC),T1
          GEN      MASK,(VREGOF,VREG5),(ARITH8,T1)
          SUBZ   T1,(BCPOF,REGC),T1 
            GEN    SHL,VREG5,(ARITH8,T1)
            ENDIFZ
  
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
          GEN    LIMP,(VREGOF,VREG4),VREG3,VREG5
          GEN    IADD,(VREGOF,VREG2),VREG2,VREG4
          GEN    SSRAPB,VREG2,VREG1 
  
          IFZ    (T2,LE,10),RN2ND19              IF 1 WORD DESTINATION
  
          GEN    SLRAPB,(VREGOF,VREG1),VREG1,VREGB1 
          SUBZ   T2,10,T2 
  
          IFTHEN (T2,LT,10) 
            GEN    MASK,(VREGOF,VREG5),(ARITH8,T2)         6*T2 
            GEN    LAND,(VREGOF,VREG4),VREG3,VREG5
            GEN    LIMP,(VREGOF,VREG2),VREG1,VREG5
            GEN    IADD,(VREGOF,VREG2),VREG2,VREG4
          ELSEZ 
            GEN    XMIT,(VREGOF,VREG2),VREG3
            ENDIFZ
  
          GEN    SSRAPB,VREG2,VREG1 
  
          IFZ    (T2,LE,10),RN2ND19              IF 2 WORD DESTINATION
  
          GEN    SLRAPB,(VREGOF,VREG1),VREG1,VREGB1 
          SUBZ   T2,10,T2 
          GEN    MASK,(VREGOF,VREG5),(ARITH8,T2)           6*T2 
          GEN    LAND,(VREGOF,VREG4),VREG3,VREG5
          GEN    LIMP,(VREGOF,VREG2),VREG1,VREG5
          GEN    IADD,(VREGOF,VREG2),VREG2,VREG4
          GEN    SSRAPB,VREG2,VREG1 
  
*                            ZEROS HAVE BEEN STORED IN DESTINATION
*                            HANDLE POSSIBLE SEPARATE SIGN
 RN2ND19  LABEL 
          IFZ    ((SIGNOF,REGC),EQ,0),RETURN     IF DESTINATION UNSIGNED
          IFZ    ((SCHAROF,REGC),EQ,0),RETURN    IF INCLUDED SIGN 
          IFZ    ((LDSIGNOF,REGC),EQ,0),RN2ND20  IF TRAILING SIGN 
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
          NOTE   RN2ND19
          GEN    SLRBPK,(VREGOF,VREG1),,FWARECV 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    SXBPK,(VREGOF,VREG4),,1R+
          SUBZ   9,(BCPOF,REGC),T1
          GEN    SHL,VREG5,(ARITH8,T1)                     6*T1 
          GEN    SHL,VREG4,(ARITH8,T1)                     6*T1 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
          GEN    IADD,(VREGOF,VREG2),VREG2,VREG4
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
 RN2ND20  LABEL 
          NOTE   RN2ND20
          GEN    SLRBPK,(VREGOF,VREG1),,LWARECV 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    SXBPK,(VREGOF,VREG4),,1R+
          REMZ   (ARITH1,REGC),10,T1             6*BCPOF+6*BYTLENOF 
          SUBZ   10,T1,T1 
          GEN    SHL,VREG5,(ARITH8,T1)                     6*T1 
          GEN    SHL,VREG4,(ARITH8,T1)                     6*T1 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
          GEN    IADD,(VREGOF,VREG2),VREG2,VREG4
          GEN    SSRAPB,VREG2,VREG1 
 RN2ND21  LABEL              RETURN 
          RETURN
  
  
*                            ERROR CASES: 
*                            SCALE < -18,  OR 
*                            SCALE > 18 
 RN2ND22  LABEL 
          NOTE   RN2ND22
          ERROR  7000B
          BRANCH RN2ND18                         GO MOVE ZERO 
  
  
*                            DESTINATION IS SUBSCRIPTED 
 RN2ND23  LABEL 
          NOTE   RN2ND23
          IFZ    ((SUBSCOF,REGC),NE,0),RN2ND24
          MOVEZ  STOREG,REGT
          CALLZ   ADNAT 
          MOVEZ   (SIGNOF,REGC),(SIGNOF,REGT) 
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGT)
          MOVEZ  (POINTOF,REGC),(POINTOF,REGT)
          IFTHEN ((SCHAROF,REGC),EQ,1)
          ANDIF   ((LDSIGNOF,REGC),EQ,0)
*                                  SIGN TRAILING SEPARATE, RESERVE ROOM 
            ADDZ  1,(NUMLENOF,REGT),(NUMLENOF,REGT) 
            ADDZ  1,(POINTOF,REGT),(POINTOF,REGT) 
          ENDIFZ
          PUSH   REGC 
          MOVEZ  REGT,REGC
          CALLZ   RN2RN      ALIGN SOURCE WITH DESTINATION
          POP    REGC 
          IFTHEN ((SIGNOF,REGT),EQ,0) 
            GEN    XMIT,(VREGOF,VREG1),(TREGOF,REGT)
            IFZ    ((NUMLENOF,REGT),LE,10),RN2ND23A 
            GEN    XMIT,(VREGOF,VREG2),(TREGP1OF,REGT)
 RN2ND23A LABEL 
          ELSEZ 
            CALLZ  RN2NDESG 
          ENDIFZ
          MOVEZ  RECSUBS,P1 
          CALLZ  SUBLOAD
          GEN    SHR,P1,30
          MOVEZ  P1,VREG17
          MOVEZ  (BCPOF,REGC),P1
          CALLZ  SETXXPK
          GEN    SBBPK,(VREGOF,VREG3),,FWARECV
          GEN    SBBPK,(VREGOF,VREG4),,(BYTLENOF,REGC)
          IFTHEN ((BYTLENOF,REGC),LE,10)
            GENOBJ N=C.SSTOR,I=(VREG1,VREG3,VREG17,VREG4) 
          ELSEZ 
            GENOBJ N=C.DSTOR,I=(VREG1,VREG2,VREG3,VREG17,VREG4) 
          ENDIFZ
          RETURN
          EJECT 
*                            DESTINATION SPECIAL CASE SUBSCRIPTED 
 RN2ND24  LABEL 
          NOTE   RN2ND24
          MOVEZ  STOREG,REGT
          CALLZ  ADNAT
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGT)
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGT)
          MOVEZ  (POINTOF,REGC),(POINTOF,REGT)
          IFTHEN ((SCHAROF,REGC),EQ,1)
          ANDIF  ((LDSIGNOF,REGC),EQ,0) 
*                            SIGN TRAILING SEPARATE, RESERVE ROOM FOR IT
            ADDZ   1,(NUMLENOF,REGT),(NUMLENOF,REGT)
            ADDZ   1,(POINTOF,REGT),(POINTOF,REGT)
          ENDIFZ
          PUSH   REGC 
          MOVEZ  REGT,REGC
          CALLZ  RN2RN       ALIGN SOURCE WITH DESTINATION
          POP    REGC 
*                            SOURCE NOW IN REGT 
          IFTHEN ((SIGNOF,REGT),EQ,0) 
            GEN    XMIT,(VREGOF,VREG1),(TREGOF,REGT)
          ELSEZ 
            CALLZ  RN2NDESG 
          ENDIFZ
          MOVEZ  REGC,P1
          MOVEZ  1,P2        RIGHT JUSTIFIED
          MOVEZ  0,P3        NOT BINARY ZERO FILLED 
          MOVEZ  VREG1,P4 
          CALLZ  SCSTORE
          RETURN
RN2NDA    EJECT 
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
**        RN2NDA -  SOURCE IS ONE REGISTER
*                   DESTINATION SPANS TWO WORDS,
*                   E.G.  /      9999/999       /          /
*                         / 999999999/999999999 /          /
*                         /+999999999/999999999 /          /
*                         / 999999999/999999999+/          /
*                         /  99999999/9999999999/          /
*                         /  99999999/9999999999/+         /
*                         /          /9999999999/999       /
*                         /         +/9999999999/999       /
* 
*         VREG1 = VIRTUAL REGISTER NUMBER OF REGISTER CONTAINING
*           ABSOLUTE VALUE OF SOURCE. 
*         VREG3 = (IF (SIGNOF,REGB)=1) SIGN OF SOURCE.
*           (I.E. 000...000B IF +, 777...777B IF -) 
*         LSHIFTCT = NUMBER OF CHARACTERS VREG1 IS TO BE SHIFTED LEFT 
*           TO ALIGN DECIMAL POINTS WITH RECEIVING FIELD. 
*         SCALE < 0 IFF VREG1 IS CONCEPTUALLY SHIFTED RIGHT.
*                     (I.E. AFTER SHIFT, RIGHT SIDE IS KEPT)
*               \ 0 IFF VREG1 IS CONCEPTUALLY SHIFTED LEFT. 
*                     (I.E. AFTER SHIFT, LEFT SIDE IS KEPT) 
*         (SIGNOF,REGB) = 1 IFF SOURCE IS SIGNED. 
*         (NUMLENOF,REGB) = NUMBER OF DIGITS IN SOURCE. 
*         (POINTOF,REGB) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.   (E.G. PIC 999V99 _ 2)
*         (BCPOF,REGC) = BEGINNING CHARACTER POSITION OF DESTINATION. 
*         (NUMLENOF,REGC) = NUMBER OF DIGITS IN DESTINATION FIELD.
*         (POINTOF,REGC) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.
*         (SIGNOF,REGC) = 1 IFF DESTINATION IS SIGNED.
*         (LDSIGNOF,REGC) = 1 IFF DESTINATION HAS A LEADING SIGN. 
*         (SCHAROF,REGC) = 1 IFF DESTINATION HAS A SEPARATE SIGN. 
* 
*         CALLZ  RN2NDA 
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
  
  
 RN2NDA   EGO    3
          NOTE   RN2NDA 
          ORZ    (SCHAROF,REGC),(LDSIGNOF,REGC),T1
          ANDZ   (SIGNOF,REGC),T1,T2
          IFZ    (T2,NE,0),RN2NDA.3 
          IFZ    ((NUMLENOF,REGC),GT,10),RN2NDA.3 
          SUBZ   (POINTOF,REGC),(POINTOF,REGB),T1 
          IFTHEN (T1,GE,0)
            SUBZ   10,(NUMLENOF,REGB),T2
            IFZ    (T1,GT,T2),RN2NDA.3
          ELSEZ 
            SUBZ   10,(NUMLENOF,REGC),T2
            IFZ    ((ABSVALOF,T1),GT,T2),RN2NDA.3 
          ENDIFZ
*                            SPECIAL CASE - DESTINATION UNSIGNED, 
*                              LESS THAN 11 CHARACTERS, 
*                              SOURCE NEEDS NO DISPLAY ZERO FILL
          SUBZ   20,(POINTOF,REGB),T1 
          SUBZ   T1,(BCPOF,REGC),T2 
          SUBZ   T2,(INTLENOF,REGC),T3
          MULTZ  6,T3,T1    6*(20 - POINT SOURCE - BCP DEST - INTLEN D) 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SHL,VREG1,(ARITH9,T1)          T1 MOD 60 
          GEN    SLRBPK,(VREGOF,VREG2),,((FWA$OF,REGC)) 
          GEN    MASK,(VREGOF,VREG6),(ARITH2,REGC)         6*BCP
          GEN    LAND,(VREGOF,VREG4),VREG6,VREG2
          GEN    LIMP,(VREGOF,VREG5),VREG1,VREG6
          GEN    LOR,(VREGOF,VREG6),VREG4,VREG5 
          GEN    SSRAPB,VREG6,VREG2,VREGB0
          IFTHEN ((SIGNOF,REGB),NE,0) 
          ANDIF  ((SIGNOF,REGC),NE,0) 
          ANDIF  ((SCHAROF,REGC),EQ,0)
          ANDIF  ((LDSIGNOF,REGC),EQ,0) 
*                            SIGN DESTINATION TRAILING INCLUDED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            GEN    SHL,VREG1,(ARITH13,REGC) 
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG6),VREG4,CBZNM33B 
            GEN    LXOR,VREG1,VREG1,VREG6 
            SUBZ   60,(ARITH13,REGC),T2 
            GEN    SHL,VREG1,T2 
            GEN    LABEL$,LOCLAB1 
            GEN    RFREE,VREG1
          ENDIFZ
          GEN    SLRAPB,(VREGOF,VREG3),VREG2,VREGB1 
          GEN    MASK,(VREGOF,VREG4),(ARITH13,REGC) 6*(BCP+NUMLEN) -60
          GEN    LIMP,(VREGOF,VREG5),VREG3,VREG4
          GEN    LAND,(VREGOF,VREG6),VREG4,VREG1
          GEN    LOR,(VREGOF,VREG7),VREG5,VREG6 
          GEN    SSRAPB,VREG7,VREG3,VREGB0
          RETURN
          SPACE  3
 RN2NDA.3 LABEL 
          MINZ   (INTLENOF,REGB),(INTLENOF,REGC),T2        NUMLEN-POINT 
          MINZ   (POINTOF,REGB),(POINTOF,REGC),T3 
          ADDZ   T2,T3,LENMASK
          SUBZ   (INTLENOF,REGB),T2,T2
          ADDZ   (BCPOF,REGB),T2,BCPMASK
  
          SUBZ   0,60,T1                         T1 = -60 
  
          IFZ    (SCALE,GT,T1),RN2NDA.5 
          GEN    MASK,(VREGOF,VREG5),(ARITH8,LSHIFTCT)     6*LSHIFTCT 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
          GEN    SLRBPK,(VREGOF,VREG1),,((EXT$OF,C.ZEROS))
          GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
          GEN    LOR,(VREGOF,VREG2),VREG2,VREG4 
          GEN    SHL,VREG2,(ARITH8,LSHIFTCT)               VREG2
          BRANCH RN2NDA.7 
  
  
 RN2NDA.5 LABEL 
          GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
          GEN    MASK,(VREGOF,VREG5),(ARITH8,LENMASK)      6*LENMASK
          GEN    SHL,VREG5,(ARITH7,BCPMASK)                60-6*BCPMASK 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    LIMP,(VREGOF,VREG6),VREG4,VREG5
          GEN    LOR,(VREGOF,VREG1),VREG6,VREG1 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
        IFTHEN (SCALE,LT,0) 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,LSHIFTCT)     60-6*LSHIFTCT
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
          GEN    LIMP,(VREGOF,VREG1),VREG1,VREG5
          GEN    LAND,(VREGOF,VREG6),VREG4,VREG5
          GEN    IADD,(VREGOF,VREG1),VREG6,VREG1
          GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
          GEN    IADD,(VREGOF,VREG2),VREG2,VREG4
        ELSEZ 
          GEN    XMIT,(VREGOF,VREG2),VREG4
        ENDIFZ
  
 RN2NDA.7 LABEL 
          IFZ    ((SIGNOF,REGC),EQ,0),RN2NDA7    IF DESTINATION UNSIGNED
          IFZ    ((LDSIGNOF,REGC),EQ,0),RN2NDA4  IF TRAILING SIGN 
          IFZ    ((SCHAROF,REGC),EQ,0),RN2NDA2   IF LEADING INCLUDED
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
 RN2NDA1  LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDA1
          ADDZ   (BCPOF,REGC),1,T1
          GEN    SHL,VREG1,(ARITH8,T1)                     6*T1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),VREGB1
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),1R+ 
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SHL,VREG1,(ARITH7,T1)                     60-6*T1
  
          CALLZ  RN2NDAS                         STORE VREG1, VREG2 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SOURCE IS SIGNED 
 RN2NDA2  LABEL 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDA3    IF SOURCE UNSIGNED 
  
          NOTE   RN2NDA2
          GEN    HOLDR,VREG1
          MOVEZ  (LOCLAB,LABEL1),LABEL1          CREATE NEW *LOCLAB1* 
          GEN    PL$,VREG3,LOCLAB1
          ADDZ   (BCPOF,REGC),1,T1
          GEN    SHL,VREG1,(ARITH8,T1)                     6*T1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
          GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
          GEN    LXOR,VREG1,VREG1,VREG4 
          GEN    SHL,VREG1,(ARITH7,T1)           60-6*T1
          GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG1
  
          CALLZ  RN2NDAS                         STORE VREG1, VREG2 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SOURCE IS UNSIGNED 
 RN2NDA3  LABEL 
          NOTE   RN2NDA3
  
          CALLZ  RN2NDAS                         STORE VREG1, VREG2 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SIGN
 RN2NDA4  LABEL 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDA6   IF TRAILING SEPARATE 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDA5    IF SOURCE UNSIGNED 
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SOURCE IS SIGNED 
          NOTE   RN2NDA4
          GEN    HOLDR,VREG2
          MOVEZ  (LOCLAB,LABEL1),LABEL1          CREATE NEW *LOCLAB1* 
          GEN    PL$,VREG3,LOCLAB1
          SUBZ   (ARITH1,REGC),10,T1                       BCP+LENGTH 
          GEN    SHL,VREG2,(ARITH8,T1)                     6*T1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LIMP,(VREGOF,VREG4),VREG2,VREG5
          GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
          GEN    LXOR,VREG2,VREG2,VREG4 
          GEN    SHL,VREG2,(ARITH7,T1)
          GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG2
  
          CALLZ  RN2NDAS                         STORE VREG1, VREG2 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SOURCE IS UNSIGNED 
 RN2NDA5  LABEL 
          NOTE   RN2NDA5
  
          CALLZ  RN2NDAS                         STORE VREG1, VREG2 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
 RN2NDA6  LABEL 
          NOTE   RN2NDA6
          SUBZ   (ARITH1,REGC),10,T1
          GEN    SHL,VREG2,(ARITH8,T1)                     6*T1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG2),VREG2,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),VREGB1
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG2),VREG2,VREG4 
          GEN    SHL,VREG2,(ARITH7,T1)                     60-6*T1
  
          CALLZ  RN2NDAS                         STORE VREG1, VREG2 
  
          RETURN
  
  
*                            DESTINATION IS UNSIGNED
 RN2NDA7  LABEL 
          NOTE   RN2NDA7
          CALLZ  RN2NDAS                         STORE VREG1, VREG2 
  
          RETURN
RN2NDAS   EJECT 
**        RN2NDAS -  STORE RESULT FOR RN2NDA
* 
*         VREG1, VREG2 = CORRECT VALUE
* 
*         CALLZ  RN2NDAS
* 
*         INSERTS THE VALUE INTO MEMORY.
  
  
 RN2NDAS  EGO    4
          NOTE   RN2NDAS
  
          IFTHEN ((BCPOF,REGC),NE,0)             IF NOT LEFT-JUSTIFIED
           ANDIF ((SYNCHOF,REGC),EQ,0)            AND NOT SYNCHRONIZED
            GEN    SLRBPK,(VREGOF,VREG4),,((FWA$OF,REGC)) 
            GEN    MASK,(VREGOF,VREG3),(ARITH2,REGC)       6*BCP
            GEN    LAND,(VREGOF,VREG5),VREG4,VREG3
            GEN    LIMP,(VREGOF,VREG1),VREG1,VREG3
            GEN    LOR,(VREGOF,VREG1),VREG5,VREG1 
            GEN    SSRAPB,VREG1,VREG4 
          ELSEZ 
            GEN    XMIT,(VREGOF,VREG1),VREG1
            GEN    SSRBPK,VREG1,,((FWA$OF,REGC))
            ENDIFZ
  
          IFTHEN ((ARITH1,REGC),NE,20)           IF NOT RIGHT-JUSTIFIED 
           ANDIF ((SYNCHOF,REGC),EQ,0)            AND NOT SYNCHRONIZED
            GEN    SLRAPB,(VREGOF,VREG4),VREG1,VREGB1 
            SUBZ   (ARITH1,REGC),10,T1                     BCP+LENGTH 
            GEN    MASK,(VREGOF,VREG3),(ARITH8,T1)         6*T1 
            GEN    LIMP,(VREGOF,VREG5),VREG4,VREG3
            GEN    LAND,(VREGOF,VREG2),VREG2,VREG3
            GEN    LOR,(VREGOF,VREG2),VREG2,VREG5 
            GEN    SSRAPB,VREG2,VREG4 
          ELSEZ 
            GEN    XMIT,(VREGOF,VREG2),VREG2
            GEN    SSRAPB,VREG2,VREG1,VREGB1
            ENDIFZ
          RETURN
RN2NDB    EJECT 
**        RN2NDB -  SOURCE IS IN SINGLE REGISTER
*                   DESTINATION IS TYPE B 
*                   (E.G. /          /XXXXXXXXXX/          /) 
* 
*         VREG1 = VIRTUAL REGISTER NUMBER OF REGISTER CONTAINING
*           ABSOLUTE VALUE OF SOURCE. 
*         VREG3 = VIRTUAL REGISTER NUMBER OF REGISTER CONTAINING
*           SIGN (IF (SIGNOF,REGB) = 1)  IN FORMAT
*           000...000B IF +,  777...777B IF -.
*         LSHIFTCT = NUMBER OF CHARACTERS REGISTER VREG1 NEEDS TO 
*           BE SHIFTED TO ALIGN THE SOURCE DECIMAL POINT WITH THE 
*           DESTINATION DECIMAL POINT.
*         SCALE = (POINTOF,REGB) - (POINTOF,REGC) 
*         (SIGNOF,REGB) = 1 IFF SOURCE IS SIGNED. 
*         (NUMLENOF,REGB) = NUMBER OF DIGITS IN SOURCE. 
*         (SIGNOF,REGC) = 1 IFF DESTINATION IS SIGNED.
*         (FWA$OF,REGC) = ADDRESS OF DESTINATION ITEM.
*         (LDSIGNOF,REGC) = 1 IFF DESTINATION HAS A LEADING SIGN. 
*         (SCHAROF,REGC) = 1 IFF DESTINATION HAS SEPARATE SIGN. 
  
  
 RN2NDB   LABEL 
          IFZ    (LSHIFTCT,EQ,0),RN2NDB28        IF NO SHIFTING 
          IFZ    ((SIGNOF,REGC),EQ,0),RN2NDB24   IF DESTINATION UNSIGNED
          IFZ    ((LDSIGNOF,REGC),EQ,0),RN2NDB14 IF TRAILING SIGN 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDB9   IF SEPARATE SIGN 
*                            LEADING INCLUDED SIGN
          IFZ    (SCALE,LT,0),RN2NDB4            IF DIVIDING BY 10'N
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          IFZ    (T1,LT,10),RN2NDB3              IF NO END-AROUND CARRY 
          IFZ    (T1,EQ,10),RN2NDB2              IF LEFT-JUSTIFIED
  
*                            LEADING INCLUDED SIGN
*                            MULTIPLYING BY POWER OF 10 
*                            DIGITS FROM SOURCE MUST BE STRIPPED
*                            E. G. 009999999V9 _ 99999V99999
 RN2NDB1  LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDB1
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SIGN AVAILABLE
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            ADDZ   LSHIFTCT,1,T2
            GEN    SHL,VREG1,(ARITH8,T2)                   6*T2 
            GEN    MASK,(VREGOF,VREG4),60-6 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG4
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
            GEN    SHL,VREG1,(ARITH7,T2)                   60-6*T2
            GEN    LABEL$,LOCLAB1 
          ELSEZ                                  IF VREG1 = ORIGINAL REG
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)
          SUBZ   T1,10,T1                        NUMBER OF SOURCE DIGITS
                                                   AT RIGHT THAT MUST 
                                                   BE ZEROED
          GEN    MASK,(VREGOF,VREG4),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG4
  
          IFTHEN (T1,LE,3)
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ 
            GEN    SLRBPK,(VREGOF,VREG5),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG5,VREG4
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            LEADING INCLUDED SIGN
*                            MOST SIGNIFICANT DIGIT OF SOURCE 
*                              IS MOST SIGNIFICANT DIGIT OF DESTINATION 
*                            E.G. 0099999999V99 _ 999999V9999 
 RN2NDB2  LABEL 
          NOTE   RN2NDB2
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            ADDZ   LSHIFTCT,1,T2
            GEN    SHL,VREG1,(ARITH8,T2)                   6*T2 
            GEN    MASK,(VREGOF,VREG4),60-6 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG4
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
            GEN    SHL,VREG1,(ARITH7,T2)                   60-6*T2
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            LEADING INCLUDED SIGN
*                            MULTIPLYING BY POWER OF 10 
*                            SOURCE DIGITS DO NOT REACH SIGN DIGIT
*                            E.G. 00009999V99 _ 99999V99999 
 RN2NDB3  LABEL 
          NOTE   RN2NDB3
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            GEN    SXBPK,(VREGOF,VREG4),,1R0&1R!
            GEN    SHL,VREG4,54 
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
            GEN    LABEL$,LOCLAB1 
            ENDIFZ
  
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            LEADING INCLUDED SIGN
*                            DIVIDING BY POWER OF 10
 RN2NDB4  LABEL 
          GOTOCASE  LSHIFTCT
            CASE    9,RN2NDB8                    IF TRUNCATE 1 DIGIT
            CASE    8,RN2NDB7                    IF TRUNCATE 2 DIGITS 
            CASE    7,RN2NDB6                    IF TRUNCATE 3 DIGITS 
            ENDCASE 
  
*                            LEADING INCLUDED SIGN
*                            DIVIDING BY 10'(10-LSHIFTCT) 
*                            NUMBER OF DIGITS TO TRUNCATE \ 4 
*                            E.G. 0009999V999 _ 9999999999P 
 RN2NDB5  LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDB5
          GEN    SLRBPK,(VREGOF,VREG5),,CBZEROS 
          GEN    MASK,(VREGOF,VREG4),(ARITH8,LSHIFTCT)     6*LSHIFTCT 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG4
          GEN    LIMP,(VREGOF,VREG5),VREG5,VREG4
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG5
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            GEN    SXBPK,(VREGOF,VREG4),,1R0&1R!
            GEN    SHL,VREG4,54 
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
            GEN    LABEL$,LOCLAB1 
            ENDIFZ
  
          GEN    SSRBPK,VREG1,FWARECV 
          RETURN
  
  
*                            LEADING INCLUDED SIGN
*                            DIVIDING BY 1000 
*                            E.G. 00000099V99 _ 9999999999P 
 RN2NDB6  LABEL 
          NOTE   RN2NDB6
          GEN    MASK,(VREGOF,VREG5),60-6*3 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    SXBPK,(VREGOF,VREG4),,3R!XX-3R0XX
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
          GEN    SXXPK,(VREGOF,VREG4),VREG4,3R000 
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SHL,VREG1,6*7
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            LEADING INCLUDED SIGN
*                            DIVIDING BY 100
*                            E.G. 0000000999P _ 9999999999PPP 
 RN2NDB7  LABEL 
          NOTE   RN2NDB7
          GEN    MASK,(VREGOF,VREG5),60-6*2 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    SXBPK,(VREGOF,VREG4),,2R!X-2R0X
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
          GEN    SXXPK,(VREGOF,VREG4),VREG4,2R00
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SHL,VREG1,6*8
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            LEADING INCLUDED SIGN
*                            DIVIDING BY 10 
*                            E.G. 000000999V9 _ 9999999999
 RN2NDB8  LABEL 
          NOTE   RN2NDB8
          GEN    MASK,(VREGOF,VREG5),60-6*1 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    SXBPK,(VREGOF,VREG4),,1R!-1R0
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
          GEN    SXXPK,(VREGOF,VREG4),VREG4,1R0 
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SHL,VREG1,6*9
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            LEADING SEPARATE SIGN
 RN2NDB9  LABEL 
          IFZ    (SCALE,LT,0),RN2NDB13           IF DIVIDING BY 10'N
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          IFZ    (T1,LE,10),RN2NDB11             IF SOURCE SHORT ENOUGH 
  
*                            LEADING SEPARATE SIGN
*                            MULTIPLYING BY POWER OF 10 
*                            DIGITS FROM SOURCE MUST BE STRIPPED
*                            T1 = 10 + NUMBER OF DIGITS TO STRIP
*                            E.G. 0000000999 _ 99V99999999
 RN2NDB10 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDB10 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          SUBZ   T1,10,T1 
          GEN    MASK,(VREGOF,VREG4),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG4
  
          IFTHEN (T1,LE,3)
            GEN    SXBPK,(VREGOF,VREG4),(ARITH20,T1)       (T1)R000 
          ELSEZ 
            GEN    SLRBPK,(VREGOF,VREG5),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG5,VREG4
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SSRBPK,VREG1,,FWARECP1 
          GEN    SLRAMB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG4),54 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG4
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG5),,VREGB1 
            GEN    LAND,(VREGOF,VREG5),VREG5,VREG3
            GEN    SXXPK,(VREGOF,VREG5),VREG5,1R+ 
            ERRNZ  1+1R+-1R-                     (-) MUST EQUAL (+) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG5),,1R+
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG2),VREG2,VREG5 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            LEADING SEPARATE SIGN
*                            MULTIPLYING BY POWER OF 10 
*                            SOURCE DIGITS NOT SHIFTED AROUND END 
*                            SOURCE IS SIGNED 
*                            E.G. 0000000999 _ 9999V999999
*                            OR   0000000999 _ 999V9999999
 RN2NDB11 LABEL 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDB12   IF SOURCE UNSIGNED 
          NOTE   RN2NDB11 
*                            SINCE SOURCE IS SIGNED, VREG1 MUST BE
*                            A STORE-ABLE REGISTER. 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SSRBPK,VREG1,,FWARECP1 
          GEN    SLRAMB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
          GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
          GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ERRNZ  1+1R+-1R-                       (-) MUST EQUAL (+) + 1 
          GEN    LOR,(VREGOF,VREG2),VREG2,VREG4 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            LEADING SEPARATE SIGN
*                            MULTIPLYING BY POWER OF 10 
*                            SOURCE DIGITS NOT SHIFTED AROUND END 
*                            SOURCE IS UNSIGNED 
*                            E.G. 0000006666PP _ 9999999V999
 RN2NDB12 LABEL 
          NOTE   RN2NDB12 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SSRBPK,VREG1,,FWARECP1 
          GEN    SLRAMB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
          GEN    SXBPK,(VREGOF,VREG4),,1R+
          GEN    LOR,(VREGOF,VREG2),VREG2,VREG4 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            LEADING SEPARATE SIGN
*                            DIVIDING BY POWER OF 10
*                            E.G. 0000099999 _ 9999999999PPP
 RN2NDB13 LABEL 
          NOTE   RN2NDB13 
          GEN    MASK,(VREGOF,VREG5),(ARITH8,LSHIFTCT)     6*LSHIFTCT 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (LSHIFTCT,GE,7)                 IF @ 3 DIGITS
            SUBZ   10,LSHIFTCT,T1 
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SSRBPK,VREG1,FWARECP1
          GEN    SLRAMB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ERRNZ  1+1R+-1R-                     (-) MUST EQUAL (+) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG2),VREG2,VREG4 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            TRAILING SIGN
 RN2NDB14 LABEL 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDB20  IF SEPARATE SIGN 
*                            TRAILING INCLUDED SIGN 
          IFZ    (SCALE,LT,0),RN2NDB19           IF DIVIDING BY 10'N
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          IFZ    (T1,LE,10),RN2NDB17             IF NO CARRY AROUND END 
  
*                            TRAILING INCLUDED SIGN 
*                            MULTIPLYING BY POWER OF 10 
*                            DIGITS FROM SOURCE MUST BE STRIPPED
*                            SOURCE IS SIGNED 
*                            T1 = 10 + NUMBER OF DIGITS TO STRIP
*                            E.G. 009999999V9 _ 99999V99999 
 RN2NDB15 LABEL                                  (CROSS-REFS ONLY)
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDB16   IF SOURCE UNSIGNED 
          NOTE   RN2NDB15 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,LSHIFTCT)     60-6*LSHIFTCT
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          MOVEZ  LSHIFTCT,T1
  
          IFTHEN (T1,LE,3)                       IF NUMBER OF DIGITS @ 3
            GEN    SXBPK,(VREGOF,VREG4),,1R!-1R0
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SXXPK,(VREGOF,VREG4),VREG4,(ARITH20,T1) (T1)R000 
          ELSEZ                                  IF NUMBER OF DIGITS > 3
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            GEN    SXBPK,(VREGOF,VREG5),,1R!-1R0
            GEN    LAND,(VREGOF,VREG5),VREG5,VREG3
            GEN    IADD,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            TRAILING INCLUDED SIGN 
*                            MULTIPLYING BY POWER OF 10 
*                            DIGITS FROM SOURCE MUST BE STRIPPED
*                            SOURCE IS UNSIGNED 
*                            T1 = 10 + NUMBER OF DIGITS TO STRIP
*                            E.G. 0009999999PPPPP _ 9999999999P 
 RN2NDB16 LABEL 
          NOTE   RN2NDB16 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,LSHIFTCT)     60-6*LSHIFTCT
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          MOVEZ  LSHIFTCT,T1
  
          IFTHEN (T1,LE,3)                       IF NUMBER OF DIGITS @ 3
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ 
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            TRAILING INCLUDED SIGN 
*                            MULTIPLYING BY POWER OF 10 
*                            SOURCE IS SIGNED 
*                            NO SOURCE DIGITS TO STRIP
*                            E.G. 0009999999 _ 99999999V99
 RN2NDB17 LABEL 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDB18   IF SOURCE UNSIGNED 
          NOTE   RN2NDB17 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SXBPK,(VREGOF,VREG4),,1R!-1R0
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            TRAILING INCLUDED SIGN 
*                            MULTIPLYING BY POWER OF 10 
*                            NO SOURCE DIGITS TO STRIP
*                            SOURCE IS UNSIGNED 
*                            E.G. 00999999V99 _ 999999V9999 
 RN2NDB18 LABEL 
          NOTE   RN2NDB18 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            TRAILING INCLUDED SIGN 
*                            DIVIDING BY POWER OF 10
*                            E.G. 00000999V99 _ 9999999999
 RN2NDB19 LABEL 
          NOTE   RN2NDB19 
          GEN    MASK,(VREGOF,VREG5),(ARITH8,LSHIFTCT)
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (LSHIFTCT,GE,7)                 IF NUMBER OF DIGITS @ 3
            SUBZ   10,LSHIFTCT,T1 
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ 
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            GEN    MASK,(VREGOF,VREG4),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG4
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    LABEL$,LOCLAB1 
            ENDIFZ
  
          GEN    SSRBPK,VREG1,,FWARECV
            GEN    RFREE,VREG1
          RETURN
  
  
*                            TRAILING SEPARATE SIGN 
 RN2NDB20 LABEL 
          IFZ    (SCALE,LT,0),RN2NDB23           IF DIVIDING BY 10'N
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          IFZ    (T1,LE,10),RN2NDB22             IF NO CARRY AROUND END 
  
*                            TRAILING SEPARATE SIGN 
*                            MULTIPLYING BY POWER OF 10 
*                            DIGITS FROM SOURCE MUST BE STRIPPED
*                            T1 = 10 + NUMBER OF DIGITS TO STRIP
*                            E.G. 0999999999 _ 99999999V99
 RN2NDB21 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDB21 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          SUBZ   T1,10,T1 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF FILL WITH @ 3 DIGITS
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF FILL WITH > 3 DIGITS
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SSRBPK,VREG1,,FWARECV
          GEN    SLRAPB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),6
          GEN    LIMP,(VREGOF,VREG2),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    SHL,VREG4,54 
          GEN    LOR,(VREGOF,VREG2),VREG4,VREG2 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            TRAILING SEPARATE SIGN 
*                            MULTIPLYING BY POWER OF 10 
*                            NO SOURCE DIGITS TO STRIP
*                            E.G. 0000999999PPP _ 999999999V9 
 RN2NDB22 LABEL 
          NOTE   RN2NDB22 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)
          GEN    SSRBPK,VREG1,,FWARECV
          GEN    SLRAPB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),6
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    SHL,VREG4,54 
          GEN    LOR,(VREGOF,VREG2),VREG4,VREG2 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            TRAILING SEPARATE SIGN 
*                            DIVIDING BY POWER OF 10
*                            E.G. 999999999V9 _ 9999999999PPP 
 RN2NDB23 LABEL 
          NOTE   RN2NDB23 
          GEN    MASK,(VREGOF,VREG5),(ARITH8,LSHIFTCT)     6*LSHIFTCT 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          SUBZ   10,LSHIFTCT,T1 
  
          IFTHEN (T1,LE,3)                       IF NUMBER OF DIGITS @ 3
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF NUMBER OF DIGITS > 3
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SSRBPK,VREG1,,FWARECV
          GEN    SLRAPB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),6
          GEN    LIMP,(VREGOF,VREG2),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    SHL,VREG4,54 
          GEN    LOR,(VREGOF,VREG2),VREG4,VREG2 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            DESTINATION IS UNSIGNED
 RN2NDB24 LABEL 
          IFZ    (SCALE,LT,0),RN2NDB27           IF DIVIDING BY 10'N
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          IFZ    (T1,LE,10),RN2NDB26             IF NO DIGITS TO STRIP
  
*                            UNSIGNED 
*                            MULTIPLYING BY POWER OF 10 
*                            DIGITS FROM SOURCE MUST BE STRIPPED
*                            E.G. 0000000999PPPPPPP _ 9999999999PPP 
 RN2NDB25 LABEL 
          NOTE   RN2NDB25 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          SUBZ   T1,10,T1 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF MULT. BY 10'N, N @ 3
            GEN    SXBPK,(VREGOF,VREG4),(ARITH20,T1)       (T1)R000 
          ELSEZ                                  IF MULT. BY 10'N, N > 3
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            UNSIGNED 
*                            MULTIPLYING BY POWER OF 10 
*                            NO SOURCE DIGITS TO STRIP
*                            E.G. 0000009999PP _ 9999999V999
 RN2NDB26 LABEL 
          NOTE   RN2NDB26 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            UNSIGNED 
*                            DIVIDING BY POWER OF 10
*                            E.G. 99999999V99 _ 9999999999
 RN2NDB27 LABEL 
          NOTE   RN2NDB27 
          GEN    MASK,(VREGOF,VREG5),(ARITH8,LSHIFTCT)     6*LSHIFTCT 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (LSHIFTCT,GE,7)                 IF DIV. BY 10'N, N @ 3 
            SUBZ   10,LSHIFTCT,T1 
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF DIV. BY 10'N, N > 3 
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            NO SHIFTING
 RN2NDB28 LABEL 
          IFZ    ((SIGNOF,REGC),EQ,0),RN2NDB35   IF DESTINATION UNSIGNED
          IFZ    ((LDSIGNOF,REGC),EQ,0),RN2NDB32 IF TRAILING SIGN 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDB31  IF SEPARATE SIGN 
          IFZ    ((NUMLENOF,REGB),LT,10),RN2NDB30 IF SIGN DIGIT IS ZERO 
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SOURCE IS 10 DIGITS
*                            E.G. 99999999V99 _ 99999999V99 
 RN2NDB29 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDB29 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            GEN    MASK,(VREGOF,VREG4),6
            GEN    LAND,(VREGOF,VREG4),VREG1,VREG4
            GEN    SHL,VREG4,6
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    SHL,VREG4,54 
            GEN    HOLDR,VREG1
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    LABEL$,LOCLAB1 
            GEN    SSRBPK,VREG1,,FWARECV
            GEN    RFREE,VREG1
          ELSEZ                                  IF VREG1 = ORIGINAL REG
            GEN    XMIT,(VREGOF,VREG1),VREG1
            GEN    SSRBPK,VREG1,,FWARECV
            ENDIFZ
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SIGN DIGIT IS ZERO 
*                            E.G. 0099999999PP _ 9999999999PP 
 RN2NDB30 LABEL 
          NOTE   RN2NDB30 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R0&1R!
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SHL,VREG4,54 
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
          ELSEZ                                  IF VREG1 = ORIGINAL REG
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            E.G. PPP9999999999 _ PPP9999999999 
 RN2NDB31 LABEL 
          NOTE   RN2NDB31 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SSRBPK,VREG1,,FWARECP1 
          GEN    SLRAMB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG2),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ERRNZ  1+1R+-1R-                     (-) MUST EQUAL (+) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG2),VREG2,VREG4 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            DESTINATION HAS TRAILING SIGN
 RN2NDB32 LABEL 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDB34  IF SEPARATE SIGN 
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
 RN2NDB33 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDB33 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
          GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
          GEN    LXOR,VREG1,VREG1,VREG4 
          GEN    RFREE,VREG1
            GEN    LABEL$,LOCLAB1 
          ENDIFZ
          GEN    XMIT,(VREGOF,VREG1),VREG1       ASSEM SHOULD THROW OUT 
*                                                IF THIS IS UNNECESSARY 
  
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
 RN2NDB34 LABEL 
          NOTE   RN2NDB34 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL REG
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SSRBPK,VREG1,,FWARECV
          GEN    SLRAPB,(VREGOF,VREG1),VREG1,VREGB1 
          GEN    MASK,(VREGOF,VREG5),6
          GEN    LIMP,(VREGOF,VREG2),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1) 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ERRNZ  1+1R+-1R-                     (-) MUST EQUAL (+) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    SHL,VREG4,54 
          GEN    LOR,(VREGOF,VREG2),VREG4,VREG2 
          GEN    SSRAPB,VREG2,VREG1 
          RETURN
  
  
*                            DESTINATION IS UNSIGNED
 RN2NDB35 LABEL 
          NOTE   RN2NDB35 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL REG
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SSRBPK,VREG1,,FWARECV
          RETURN
RN2NDC    EJECT 
**        RN2NDD -  SOURCE IS ONE REGISTER
*                   DESTINATION IS TYPE D 
*                            I.E. A PROPER SUBSET OF 1 WORD 
*                   E.G. /  9999    /          /          / 
*                   OR   /+99999    /          /          / 
*                   OR   /  9999999+/          /          / 
*                   OR   /  99999999/+         /          / 
*                   OR  +/999999    /          /          / 
* 
*         VREG1 = VIRTUAL REGISTER NUMBER OF REGISTER CONTAINING
*           ABSOLUTE VALUE OF SOURCE. 
*         VREG3 = VIRTUAL REGISTER NUMBER OF REGISTER CONTAINING
*           SIGN (IF (SIGNOF,REGB)=1)  IN FORMAT: 
*           000...000B IF +,  777...777B IF - 
*         LSHIFTCT = NUMBER OF CHARACTERS REGISTER VREG1 NEEDS TO 
*           BE SHIFTED TO ALIGN THE SOURCE DECIMAL POINT WITH THE 
*           DESTINATION DECIMAL POINT.
*         SCALE < 0 IF REGISTER VREG1 IS CONCEPTUALLY TO BE 
*                     SHIFTED RIGHT.
*               \ 0 IF REGISTER VREG1 IS CONCEPTUALLY TO BE 
*                     SHIFTED LEFT. 
*         (SIGNOF,REGB) = 1 IFF SOURCE IS SIGNED. 
*         (NUMLENOF,REGB) = NUMBER OF DIGITS IN SOURCE. 
*         (SIGNOF,REGC) = 1 IFF DESTINATION IS SIGNED.
*         (LDSIGNOF,REGC) = 1 IFF DESTINATION HAS A LEADING SIGN. 
*         (SCHAROF,REGC) = 1 IFF DESTINATION HAS A SEPARATE SIGN
*         FWARECV = ADDRESS OF DESTINATION. 
* 
*         CALLZ  RN2NDD 
  
  
 RN2NDD   LABEL 
          IFZ    (LSHIFTCT,EQ,0),RN2NDD82        IF NO SHIFTING 
          IFZ    ((SIGNOF,REGC),EQ,0),RN2NDD77   IF SOURCE IS UNSIGNED
          IFZ    ((LDSIGNOF,REGC),EQ,0),RN2NDD50 IF TRAILING SIGN 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDD11  IF LEADING SEPARATE
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
          IFZ    (SCALE,LT,0),RN2NDD4            IF SHIFTING RIGHT
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          SUBZ   10,(BCPOF,REGC),T2 
          IFZ    (T1,LT,T2),RN2NDD3              IF SIGN DIGIT IS 0 
          SUBZ   T1,10,T1                        DIGITS AROUND END
          SUBZ   10,(ARITH1,REGC),T2             RIGHT-SIDE PADDING 
          IFZ    (T1,GT,T2),RN2NDD2              IF DIGITS TO TRUNCATE
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING LEFT
*                            SOURCE SUPPLIES SIGN DIGIT 
*                            ZEROS WILL BE IN LEAST SIG. OF DESTINATION 
*                            E.G. 0000999999 _ X9999V999XX
*                                       R 
*                            OR   0000999999 _ X9999V9999X
*                                       R 
 RN2NDD1  LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD1
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1        CREATE NEW *LOCLAB1* 
            GEN    PL$,VREG3,LOCLAB1
            ADDZ   LSHIFTCT,(BCPOF,REGC),T1 
            ADDZ   T1,1,T1
            GEN    SHL,VREG1,(ARITH8,T1)                   6*T1 
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    SHL,VREG1,(ARITH7,T1)                   60-6*T1
            GEN    LABEL$,LOCLAB1 
            GEN    RFREE,VREG1
          ELSEZ                                  IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING LEFT
*                            SOURCE SUPPLIES SIGN DIGIT 
*                            DIGITS MUST BE TRUNCATED FROM DESTINATION
*                            T1 = NUMBER OF DIGITS SHIFTED AROUND END 
*                            T2 = NUMBER OF RIGHT-SIDE NULLS IN DEST. 
*                            E.G. 0099999999 _ X99999V999X
*                                   0  R
 RN2NDD2  LABEL 
          NOTE   RN2NDD2
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1        CREATE NEW *LOCLAB1* 
            GEN    PL$,VREG3,LOCLAB1
            ADDZ   LSHIFTCT,(BCPOF,REGC),T3 
            ADDZ   T3,1,T3
            GEN    SHL,VREG1,(ARITH8,T3)                   6*T3 
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    SHL,VREG1,(ARITH7,T3)                   60-6*T3
            GEN    LABEL$,LOCLAB1 
            GEN    RFREE,VREG1
          ELSEZ                                  IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          SUBZ   T1,T2,T1                        NO. DIGITS TO ZERO 
          ADDZ   T2,(BCPOF,REGC),T2 
          SUBZ   LSHIFTCT,T2,T3                  TO RIGHT-JUST ' DIGITS 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    SHL,VREG1,(ARITH8,T3)                     6*T3 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          SUBZ   LSHIFTCT,T3,T3                  TO FINALLY JUSTIFY REG.
          GEN    SHL,VREG1,(ARITH8,T3)                     6*T3 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING LEFT
*                            SIGN DIGIT CONVERTED FROM 0
*                            E.G. 0000009999 _ XX99999V99X
*                                      !
 RN2NDD3  LABEL 
          NOTE   RN2NDD3
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R!&1R0
            GEN    SHL,VREG1,(ARITH8,LSHIFTCT)             6*LSHIFTCT 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1R!&1R0 IFF -
            SUBZ   9,(BCPOF,REGC),T1
            GEN    SHL,VREG4,(ARITH8,T1)                   6*T1 
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
          ELSEZ                                  IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            GEN    SHL,VREG1,(ARITH8,LSHIFTCT)             6*LSHIFTCT 
            ENDIFZ
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING RIGHT 
 RN2NDD4  LABEL 
          SUBZ   10,LSHIFTCT,T1                  RIGHT-SHIFT COUNT
          IFZ    (T1,LE,(BCPOF,REGC)),RN2NDD7    IF NO TRUNCATION 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD6    IF SOURCE UNSIGNED 
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING RIGHT 
*                            LEAST SIG. OF SOURCE TO BE SIGNED ZERO 
*                            T1 = RIGHT-SHIFT COUNT 
*                            E.G. 9999999V999 _ X99999999X
*                                           ! 
 RN2NDD5  LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD5
          SUBZ   T1,(BCPOF,REGC),T1              NO. OF DIGITS TO ZERO
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,EQ,1)                       IF 1 DIGIT TO ZERO 
            GEN    SXBPK,(VREGOF,VREG4),,1R!-1R0
            ENDIFZ
          IFTHEN (T1,EQ,2)                       IF 2 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,2R!X-2R0X
            ENDIFZ
          IFTHEN (T1,EQ,3)                       IF 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,3R!XX-3R0XX
            ENDIFZ
          IFTHEN (T1,GT,3)                       IF > 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,1R!-1R0
            SUBZ   T1,1,T2
            GEN    SHL,VREG4,(ARITH8,T2)                   6*T2 
            ENDIFZ
  
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXXPK,(VREGOF,VREG4),VREG4,(ARITH20,T1) (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG6),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG6),VREG6,VREG5
            GEN    IADD,(VREGOF,VREG4),VREG6,VREG4
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG5 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING RIGHT 
*                            SOURCE IS UNSIGNED 
*                            LEAST SIG. OF SOURCE TO BE UNSIGNED ZERO 
*                            T1 = RIGHT-SHIFT COUNT 
*                            E.G. 999999V9999 _ X99999999X
*                                          00 
 RN2NDD6  LABEL 
          NOTE   RN2NDD6
          SUBZ   T1,(BCPOF,REGC),T1              NO. OF DIGITS TO ZERO
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            T1 = RIGHT-SHIFT COUNT 
 RN2NDD7  LABEL 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD10   IF SOURCE UNSIGNED 
          ADDZ   T1,(BCPOF,REGB),T2 
          IFZ    (T2,GT,(BCPOF,REGC)),RN2NDD9    IF SIGN IS ZERO
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            SIGN DIGIT IS FROM SOURCE
*                            E.G. 00999999V99 _ XXXX99999X
*                                    R
 RN2NDD8  LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD8
*                            SOURCE IS SIGNED 
          ADDZ   LSHIFTCT,(BCPOF,REGC),T1 
          SUBZ   T1,10-1,T1                      TO RIGHT-JUST SIGN CHAR
          GEN    HOLDR,VREG1
          MOVEZ  (LOCLAB,LABEL1),LABEL1          CREATE NEW *LOCLAB1* 
          GEN    PL$,VREG3,LOCLAB1
          GEN    SHL,VREG1,(ARITH8,T1)                     6*T1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
          GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
          GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
          GEN    LXOR,VREG1,VREG1,VREG4 
          GEN    SHL,VREG1,(ARITH7,T1)                     60-6*T1
          GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG1
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            SOURCE IS SIGNED 
*                            SIGN DIGIT IS CONVERTED FROM ZERO
*                            E.G. 00099999V99 _ XXX999999X
*                                   ! 
 RN2NDD9  LABEL 
          NOTE   RN2NDD9
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SXBPK,(VREGOF,VREG4),,1R!&1R0
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3           1R!&1R0 IFF -
          GEN    LIMP,(VREGOF,VREG4),VREG4,VREG3
          SUBZ   9,(BCPOF,REGC),T1
          GEN    SHL,VREG4,(ARITH8,T1)                     6*T1 
          GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            SOURCE IS UNSIGNED 
*                            E.G. 0000099999 _ XXXX99999PPPXX 
 RN2NDD10 LABEL 
          NOTE   RN2NDD10 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
 RN2NDD11 LABEL 
          IFZ    (SCALE,LT,0),RN2NDD16           IF SHIFTING RIGHT
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          SUBZ   T1,10,T1                        NO. DIGITS AROUND END
          SUBZ   10,(NUMLENOF,REGC),T2           NO. OF RIGHT-SIDE NULLS
          IFZ    (T1,LE,T2),RN2NDD13             IF NO TRUNCATION 
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING LEFT
*                            LEFT SOURCE DIGITS TO BE TRUNCATED 
*                            T1 = NUMBER OF DIGITS SHIFTED AROUND END 
*                            T2 = NUMBER OF RIGHT-SIDE NULLS IN DEST. 
*                            E.G. 0009999999 _ X+999V9999X
*                                    0  + 
 RN2NDD12 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD12 
          SUBZ   T1,T2,T1                        NO. DIGITS TO TRUNCATE 
          SUBZ   LSHIFTCT,T2,T3                  TO RIGHT-JUST ' DIGITS 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,T3)                     6*T3 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          ADDZ   (BCPOF,REGC),1,T3
          ADDZ   T2,T3,T2                        TO RIGHT-JUST SIGN CHAR
          GEN    SHL,VREG1,(ARITH8,T2)                     6*T2 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ERRNZ  1+1R+-1R-                     (-) MUST EQUAL (+) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH7,T3)                     60-6*T3
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING LEFT
*                            NO TRUNCATION
 RN2NDD13 LABEL 
          SUBZ   (BCPOF,REGB),LSHIFTCT,T1 
          IFZ    (T1,GT,(BCPOF,REGC)),RN2NDD15   IF SIGN CHAR IS 0
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING LEFT
*                            NO TRUNCATION
*                            SIGN CHAR CONVERTED FROM SOURCE DIGIT
*                            E.G. 0009999999 _ XX+9999XXX 
*                                      +
 RN2NDD14 LABEL 
          NOTE   RN2NDD14 
          ADDZ   LSHIFTCT,(BCPOF,REGC),T1 
          ADDZ   T1,1,T1                         TO RIGHT-JUST SIGN CHAR
          GEN    SHL,VREG1,(ARITH8,T1)                     6*T1 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ERRNZ  1+1R+-1R-                     (-) MUST EQUAL (+) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          SUBZ   (ARITH8,LSHIFTCT),(ARITH8,T1),T2          6*SLHIFTCT,T1
          GEN    SHL,VREG1,(ARITH9,T2)
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING LEFT
*                            NO TRUNCATION
*                            SIGN CHARACTER CONVERTED FROM 0
*                            E.G. 00009999V99 _ X+9999V99XX 
*                                    +
 RN2NDD15 LABEL 
          NOTE   RN2NDD15 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG3         1 IFF +
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R-&1R0 
 #T1        SET    1R-&1R0
 #T2        SET    1R+&1R0
            ERRNZ  1+#T1-#T2                     (+&0) MUST = (-&0) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+&1R0
            ENDIFZ
  
          SUBZ   9,(BCPOF,REGC),T1
          GEN    SHL,VREG4,(ARITH8,T1)                     6*T1 
          GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING RIGHT 
 RN2NDD16 LABEL 
          SUBZ   10,LSHIFTCT,T1                  RIGHT-SHIFT COUNT
          IFZ    (T1,GT,(BCPOF,REGC)),RN2NDD19   IF TRUNCATION + SIGN 
          ADDZ   T1,(BCPOF,REGB),T2              SOURCE BCP AFTER SHIFT 
          IFZ    (T2,EQ,10),RN2NDD21             IF SIGN IN SEP WORD
          IFZ    (T2,GT,(BCPOF,REGC)),RN2NDD18   IF SIGN IS 0 
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            SIGN CHARACTER INSERTED OVER SOURCE DIGIT
*                            E.G. 00999999V99 _ XXXX+9999X
*                                    +
 RN2NDD17 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD17 
          ADDZ   LSHIFTCT,(BCPOF,REGC),T1 
          SUBZ   (ARITH8,T1),6,T1                TO RIGHT-JUST SIGN CHAR
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH9,T1)                     T1 (MOD 60)
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ERRNZ  1+1R+-1R-                     (-) MUST EQUAL (+) + 1 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          SUBZ   (ARITH8,LSHIFTCT),T1,T1                   6*LSHIFTCT 
          GEN    SHL,VREG1,(ARITH9,T1)                     T1 (MOD 60)
  
          MOVEZ  1,P1                            USE *IADD* IN MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            SIGN CHARACTER CONVERTED FROM ZERO DIGIT 
*                            E.G. 00999999V99 _ XX+999999X
*                                  +
 RN2NDD18 LABEL 
          NOTE   RN2NDD18 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG3         1 IFF +
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R-&1R0 
 #T1        SET    1R-&1R0
 #T2        SET    1R+&1R0
            ERRNZ  1+#T1-#T2                     (+&0) MUST = (-&0) + 1 
          ELSEZ 
            GEN    SXBPK,(VREGOF,VREG4),,1R+&1R0
            ENDIFZ
  
          SUBZ   10-1,(BCPOF,REGC),T1 
          GEN    SHL,VREG4,(ARITH8,T1)           POSITION OVER SIGN CHAR
          GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING RIGHT 
*                            RIGHT-MOST SOURCE DIGITS TRUNCATED 
*                            SOURCE IS SIGNED 
*                            E.G. 009999V9999 _ X+9999999X
*                                          +0 
 RN2NDD19 LABEL 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD20   IF SOURCE UNSIGNED 
  
          NOTE   RN2NDD19 
*                            T1 = RIGHT-SHIFT COUNT 
          SUBZ   T1,(BCPOF,REGC),T1              NO. OF SIGN + ZEROS
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,EQ,1)                       IF SIGN ONLY 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ENDIFZ
          IFTHEN (T1,EQ,2)                       IF SIGN + ZERO 
            GEN    SXBPK,(VREGOF,VREG4),,2R-X-2R+X
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         100B IFF - 
            GEN   SXXPK,(VREGOF,VREG4),VREG4,2R+0 
            ENDIFZ
          IFTHEN (T1,GT,2)                       IF SIGN + > 1 ZERO 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SLRBPK,(VREGOF,VREG6),,CBZEROP 
            GEN    IADD,(VREGOF,VREG4),VREG6,VREG4
            SUBZ   T1,1,T2
            GEN    SHL,VREG4,(ARITH8,T2)                   6*T2 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING RIGHT 
*                            RIGHT-MOST SOURCE DIGITS TRUNCATED 
*                            T1 = RIGHT-SHIFT COUNT 
*                            SOURCE IS UNSIGNED 
*                            E.G. 009999V9999 _ X+9999999PX 
*                                         +00 
 RN2NDD20 LABEL 
          NOTE   RN2NDD20 
          SUBZ   T1,(BCPOF,REGC),T1              NO. OF SIGN + ZEROS
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,EQ,1)                       IF SIGN ONLY 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
          IFTHEN (T1,EQ,2)                       IF SIGN + 1 ZERO 
            GEN    SXBPK,(VREGOF,VREG4),,2R+0 
            ENDIFZ
          IFTHEN (T1,GT,2)                       IF SIGN + > 1 ZERO 
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROP 
            SUBZ   T1,1,T2
            GEN    SHL,VREG4,(ARITH8,T2)                   6*T2 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
          SPACE  4
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            SIGN CHAR IN SEPARATE WORD 
*                            E.G. 0000000009 _ +/9XXXXXXXXX/
*                                 + 
 RN2NDD21 LABEL 
          NOTE   RN2NDD21 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)     6*LSHIFTCT 
          CALLZ  RN2NDDU
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING LEFT
*                            SIGN CONVERTED FROM (NON-ZERO) DIGIT 
*                            E.G. 0000000009 _ X9XXXXXXXXX
*                                          R
*                            OR   00000999V99 _ XXXX99V9XXX 
*                                          R
 RN2NDD49 LABEL 
          NOTE   RN2NDD49 
  
          GEN    XMIT,(VREGOF,VREG1),VREG1       ALLOW SHIFTING 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
          GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1        CREATE NEW *LOCLAB1* 
            GEN    PL$,VREG3,LOCLAB1
            SUBZ   (POINTOF,REGB),(POINTOF,REGC),T1 
            GEN    SHL,VREG1,(ARITH7,T1)                   60-6*T1
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    SHL,VREG1,(ARITH8,T1)                   6*T1 
            GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
*                            TRAILING SIGN
 RN2NDD50 LABEL 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDD60  IF SEPARATE SIGN 
          IFZ    (SCALE,LT,0),RN2NDD54           IF SHIFTING RIGHT
          ADDZ   (NUMLENOF,REGB),LSHIFTCT,T1
          SUBZ   T1,10,T1                        NO. DIGITS AROUND END
          SUBZ   10,(ARITH1,REGC),T2                      BCPOF+BYTLENOF
                                                 NO. OF RIGHT-SIDE NULLS
          IFZ    (T1,LE,T2),RN2NDD53             IF NO TRUNCATION 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD52   IF SOURCE UNSIGNED 
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING LEFT
*                            SOURCE DIGITS NEED TO BE TRUNCATED 
*                            T1 = NUMBER OF DIGITS SHIFTED AROUND END 
*                            T2 = NUMBER OF RIGHT-SIDE NULLS IN DEST. 
*                            SOURCE IS SIGNED 
*                            E.G. 0099999999 _ XXX9V9999XX
*                                   0!
*                            OR   0999999999 _ 9999V99XXXX
*                                  !
*                            OR   0999999999PPP _ XXXX999999
*                                  0! 
 RN2NDD51 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD51 
          SUBZ   T1,T2,T1                        NO. DIGITS TO ZERO 
          SUBZ   LSHIFTCT,T2,T3                  TO RIGHT-JUST ' DIGITS 
          GEN    SHL,VREG1,(ARITH8,T3)                     6*T3 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1) 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG6),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG6,VREG5
            ENDIFZ
  
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    HOLDR,VREG1
          MOVEZ  (LOCLAB,LABEL1),LABEL1 
          GEN    PL$,VREG3,LOCLAB1
          GEN    SXBPK,(VREGOF,VREG4),,1R!&1R0
          GEN    LXOR,VREG1,VREG1,VREG4 
          GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG1
          GEN    SHL,VREG1,(ARITH8,T2)                     6*T2 
  
          MOVEZ  1,P1                            USE *IADD* IN MERGE
          CALLZ  RN2NDDS               STORE VREG1 IN  FWARECV
  
          RETURN
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING LEFT
*                            SOURCE DIGITS NEED TO BE TRUNCATED 
*                            T1 = NUMBER OF DIGITS SHIFTED AROUND END 
*                            T2 = NUMBER OF RIGHT-SIDE NULLS IN DEST. 
*                            SOURCE IS UNSIGNED 
*                            E.G. 0099999999 _ XXX9V9999XX
*                                   00
*                            OR   0999999999 _ 9999V99XXXX
*                                  0
*                            OR   0999999999PPP _ XXXX99999V9 
*                                  000
 RN2NDD52 LABEL 
          NOTE   RN2ND52
          SUBZ   T1,T2,T1                        NO. DIGITS TO ZERO 
          SUBZ   LSHIFTCT,T2,T3                  TO RIGHT-JUST ' DIGITS 
          GEN    SHL,VREG1,(ARITH8,T3)                     6*T3 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,T2)                     6*T2 
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING LEFT
*                            SOURCE DIGITS ARE NOT TRUNCATED
*                            I.E. SIGN DIGIT CONVERTED FROM ZERO DIGIT
*                            E.G. 0000009999 _ XXX9999V9XX
*                                 ! 
 RN2NDD53 LABEL 
          IFZ    ((POINTOF,REGB),GE,(POINTOF,REGC)),RN2NDD49  SIGN=DIGIT
          NOTE   RN2NDD53 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R!&1R0
            GEN    SHL,VREG1,(ARITH8,LSHIFTCT)             6*LSHIFTCT 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1R!&1R0 IFF -
            ADDZ   (BCPOF,REGC),(BYTLENOF,REGC),T1
            GEN    SHL,VREG4,(ARITH7,T1)         60-6*T1
            GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
          ELSEZ                                  IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            GEN    SHL,VREG1,(ARITH8,LSHIFTCT)  6*LSHIFTCT
            ENDIFZ
  
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING RIGHT 
 RN2NDD54 LABEL 
          SUBZ   10,LSHIFTCT,T1                  NO. DIGITS AROUND END
          IFZ    (T1,LE,(BCPOF,REGC)),RN2NDD57   IF NO TRUNCATION 
          IFZ    ((ARITH1,REGC),EQ,10),RN2NDD56  IF DEST. RIGHT-JUST
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING RIGHT 
*                            LOWER DIGITS MUST BE TRUNCATED 
*                            DESTINATION IS NOT RIGHT-JUSTIFIED 
*                            T1 = NUMBER OF LOWER DIGITS SHIFTED AROUND 
*                            E.G. 00009999V99 _ 999999999X
*                                        R  0 
*                            OR   00999999V99 _ XX9999999PPPX 
*                                     R    00 
 RN2ND55  LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD55 
          SUBZ   T1,(BCPOF,REGC),T1              NO. DIGITS TO ZERO 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1        CREATE NEW *LOCLAB1* 
            GEN    PL$,VREG3,LOCLAB1
            SUBZ   10,(ARITH1,REGC),T1           NO. RIGHT-SIDE NULLS 
            SUBZ   LSHIFTCT,T1,T1                TO RIGHT-JUST SIGN DIG.
            GEN    SHL,VREG1,(ARITH8,T1)                   6*T1 
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    SHL,VREG1,(ARITH7,T1)                   60-6*T1
            GEN    LABEL$,LOCLAB1 
            GEN    RFREE,VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING RIGHT 
*                            LOWER DIGITS MUST BE TRUNCATED 
*                            DESTINATION IS RIGHT-JUSTIFIED 
*                            T1 = NUMBER OF LOWER DIGITS SHIFTED AROUND 
*                            E.G. 00009999V99 _ X999999999
*                                        R  0 
 RN2NDD56 LABEL 
          NOTE   RN2NDD56 
          SUBZ   T1,(BCPOF,REGC),T1 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1 
            GEN    PL$,VREG3,LOCLAB1
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    LABEL$,LOCLAB1 
            GEN    RFREE,VREG1
            ENDIFZ
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            DESTINATION IS NOT RIGHT-JUSTIFIED 
*                            E.G. 00999999V99 _ 99999999PPXX
*                                      R
*                            OR   00999999V99 _ XX9999999X
*                                        R
 RN2NDD57 LABEL 
          IFZ    ((ARITH1,REGC),EQ,10),RN2NDD58  IF DEST. RIGHT-JUST
  
          NOTE   RN2NDD57 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1        CREATE NEW *LOCLAB1* 
            GEN    PL$,VREG3,LOCLAB1
            SUBZ   10,(ARITH1,REGC),T1           NO. RIGHT-SIDE NULLS 
            SUBZ   LSHIFTCT,T1,T1                TO RIGHT-JUST SIGN DIG 
            GEN    SHL,VREG1,(ARITH8,T1)                   6*T1 
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    SHL,VREG1,(ARITH7,T1)                   60-6*T1
            GEN    LABEL$,LOCLAB1 
            GEN    RFREE,VREG1
          ELSEZ                                  IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            DESTINATION IS RIGHT-JUSTIFIED 
*                            SOURCE IS SIGNED 
*                            E.G. 00099999V99 _ XX99999999
*                                        R
 RN2NDD58 LABEL 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD59   IF SOURCE UNSIGNED 
  
          NOTE   RN2NDD58 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    HOLDR,VREG1
          MOVEZ  (LOCLAB,LABEL1),LABEL1          CREATE NEW *LOCLAB1* 
          GEN    PL$,VREG3,LOCLAB1
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
          GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
          GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            GEN    LXOR,VREG1,VREG1,VREG4 
          GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG1
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING INCLUDED SIGN 
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            DESTINATION IS RIGHT-JUSTIFIED 
*                            SOURCE IS UNSIGNED 
*                            E.G. 0009999999 _ XX99999999P
*                                         R 
 RN2NDD59 LABEL 
          NOTE   RN2NDD59 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
 RN2NDD60 LABEL 
          IFZ    ((ARITH1,REGC),EQ,11),RN2NDD71  IF NUMERIC RIGHT-JUST
          SUBZ   11,(ARITH1,REGC),T2             RIGHT-SIDE NON-DIGITS
          IFZ    (SCALE,LT,0),RN2NDD68           IF SHIFTING RIGHT
          ADDZ   LSHIFTCT,(NUMLENOF,REGB),T1
          SUBZ   T1,10,T1                        NO. DIGITS AROUND END
          IFZ    (T1,LE,T2),RN2NDD63             IF NO TRUNCATION 
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD62   IF SOURCE UNSIGNED 
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING LEFT
*                            SOURCE DIGITS MUST BE TRUNCATED
*                            T1 = NUMBER OF DIGITS AROUND END 
*                            T2 = NUMBER OF RIGHT-SIDE NON-DIGITS 
*                            SOURCE IS SIGNED 
*                            E.G. 0099999999 _ 9999V9999+X
*                                   0+
*                            OR   0099999999PP _ X9999V9999+
*                                   000+
 RN2NDD61 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD61 
          SUBZ   T2,1,T2                         EXCLUDE SIGN CHARACTER 
          SUBZ   T1,T2,T1                        NO. OF CHARS TO SET
          SUBZ   LSHIFTCT,T2,T3                  TO RIGHT-JUST ' CHARS
          GEN    SHL,VREG1,(ARITH8,T3)                     6*T3 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3           1 IFF -
  
          IFTHEN (T1,EQ,1)                       IF SIGN ONLY 
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ENDIFZ
          IFTHEN (T1,EQ,2)                       IF SIGN + 1 DIGIT
            GEN    SXXPK,(VREGOF,VREG4),VREG4,2R0+
            ENDIFZ
          IFTHEN (T1,EQ,3)                       FI SIGN + 2 DIGITS 
            GEN    SXXPK,(VREGOF,VREG4),VREG4,3R00+ 
            ENDIFZ
          IFTHEN (T1,GT,3)                       IF SIGN + > 2 DIGITS 
            GEN    SLRBPK,(VREGOF,VREG6),,CBZEROP 
            GEN    LIMP,(VREGOF,VREG6),VREG6,VREG5
            GEN    IADD,(VREGOF,VREG4),VREG6,VREG4
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SHL,VREG1,(ARITH8,T2)                     6*T2 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPERATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING LEFT
*                            SOURCE DIGITS MUST BE TRUNCATED
*                            T1 = NUMBER OF DIGITS AROUND END 
*                            T2 = NUMBER OF RIGHT-SIDE NON-DIGITS 
*                            SOURCE IS UNSIGNED 
*                            E.G. 0099999999PP _ 999999V99+X
*                                   0+
*                            OR   0099999999 _ X9999V9999+
*                                   0+
 RN2NDD62 LABEL 
          NOTE   RN2NDD62 
          SUBZ   T2,1,T2                         EXCLUDE SIGN FROM NULLS
          SUBZ   T1,T2,T1                        NO. OF CHARS TO SET
          SUBZ   LSHIFTCT,T2,T3                  TO RIGHT-JUST ' CHARS
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    SHL,VREG1,(ARITH8,T3)                     6*T3 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    SXBPB,(VREGOF,VREG4),VREGB1
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3           1 IFF -
  
          IFTHEN (T1,EQ,1)                       IF SIGN ONLY 
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            ENDIFZ
          IFTHEN (T1,EQ,2)                       IF 1 DIGIT + SIGN
            GEN    SXXPK,(VREGOF,VREG4),VREG4,2R0+
            ENDIFZ
          IFTHEN (T1,EQ,3)                       IF 2 DIGITS + SIGN 
            GEN    SXXPK,(VREGOF,VREG4),VREG4,3R00+ 
            ENDIFZ
          IFTHEN (T1,GT,3)                       IF > 2 DIGITS + SIGN 
            GEN    SLRBPK,(VREGOF,VREG6),,CBZEROP 
            GEN    LIMP,(VREGOF,VREG6),VREG6,VREG5
            GEN    IADD,(VREGOF,VREG4),VREG6,VREG4
            ENDIFZ
  
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
          GEN    SHL,VREG1,(ARITH8,T2)
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING LEFT
*                            T1 = NUMBER OF DIGITS SHIFTED AROUND END 
*                            T2 = NUMBER OF RIGHT-SIDE NON-DIGITS 
 RN2NDD63 LABEL 
          IFZ    (T1,NE,T2),RN2NDD66             IF SIGN DIGIT NON-ZERO 
          IFZ    (LSHIFTCT,LT,T2),RN2NDD66       IF TRUNCATION ON RIGHT 
          SUBZ   T2,1,T2                         EXCLUDE SIGN FROM NULLS
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD65   IF SOURCE UNSIGNED 
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING LEFT
*                            NO TRUNCATION
*                            T2 = NUMBER OF RIGHT-SIDE NULLS W/O SIGN 
*                            SIGN CHAR CONVERTED FROM ZERO DIGIT
*                            SOURCE IS SIGNED 
*                            E.G. 0009999999 _ XX99999V99+
*                                   + 
 RN2NDD64 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD64 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
          GEN    LIMP,(VREGOF,VREG4),VREG4,VREG3           1 IFF +
          GEN    SXXPK,(VREGOF,VREG4),VREG4,1R-&1R0 
 #T1      SET    1R-&1R0
 #T2      SET    1R+&1R0
          ERRNZ  1+#T1-#T2                       (+&0) MUST = (-&0) + 1 
          GEN    SHL,VREG4,(ARITH8,T2)                     6*T2 
          GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING LEFT
*                            NO TRUNCATION
*                            T2 = NUMBER OF RIGHT-SIDE NULLS W/O SIGN 
*                            SIGN CHAR CONVERTED FROM ZERO DIGIT
*                            SOURCE IS UNSIGNED 
*                            E.G. 0009999999PP _ 999999+XXX 
*                                   + 
 RN2NDD65 LABEL 
          NOTE   RN2NDD65 
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          GEN    SXBPK,(VREGOF,VREG4),,1R+&1R0
          GEN    SHL,VREG4,(ARITH8,T2)           6*T2 
          GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING LEFT
*                            NO TRUNCATION
*                            T2 = NUMBER OF RIGHT-SIDE NULLS W/O SIGN 
*                            SIGN CHAR CONVERTED FROM (NON-ZERO) DIGIT
*                            SOURCE IS SIGNED 
*                            E.G. 0099999999 _ 999999V99+X
*                                   + 
*                            OR   0099999999 _ X999999V99+
*                                   + 
 RN2NDD66 LABEL 
          SUBZ   T2,1,T2                         EXCLUDE SIGN FROM NULLS
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD67   IF SOURCE UNSIGNED 
  
          NOTE   RN2NDD66 
          SUBZ   LSHIFTCT,T2,T1                  TO RIGHT-JUST SIGN CHAR
  
          IFTHEN (T1,NE,0)
            GEN    SBBPK,(VREGOF,VREG5),,(ARITH8,T1)
            GEN    SHLB,(VREGOF,VREG1),VREG5,VREG1
          ENDIFZ
  
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3           1 IFF -
          GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
  
          IFTHEN (T2,NE,0)
            GEN    SHL,VREG1,(ARITH8,T2)                   6*T2 
            ENDIFZ
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING LEFT
*                            NO TRUNCATION
*                            T2 = NUMBER OF RIGHT-SIDE NULLS W/O SIGN 
*                            SIGN CHAR CONVERTED FROM (NON-ZERO) DIGIT
*                            SOURCE IS UNSIGNED 
*                            E.G. 0099999999P _ X9999V99+XX 
*                                   + 
 RN2NDD67 LABEL 
          NOTE   RN2NDD67 
          SUBZ   LSHIFTCT,T2,T1                  TO RIGHT-JUST SIGN CHAR
          GEN    SHL,VREG1,(ARITH8,T1)                     6*T1 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    SXBPK,(VREGOF,VREG4),,1R+
          GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
  
          IFTHEN (T2,NE,0)
            GEN    SHL,VREG1,(ARITH8,T2)
            ENDIFZ
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART NOT RIGHT-JUSTIFIED 
*                            SHIFTING RIGHT 
*                            T2 = NUMBER OF RIGHT-SIDE NON-DIGITS 
 RN2NDD68 LABEL 
          SUBZ   10,LSHIFTCT,T1                  NO. DIGITS AROUND END
          IFZ    (T1,LE,T2),RN2NDD70             IF NO TRUNCATION 
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS NOT RIGHT-JUSTIFIED
*                            SHIFTING RIGHT 
*                            SOURCE DIGITS MUST BE TRUNCATED
*                            T1 = NO. OF LOWER DIGITS SHIFTED AROUND END
*                            T2 = NUMBER OF RIGHT-SIDE NON-DIGITS 
*                            E.G.  00999999V99 _ XX9999999PPP+
*                                       +   00
 RN2NDD69 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD69 
          SUBZ   T1,T2,T1                        NO. DIGITS TO ZERO 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)     6*LSHIFTCT 
            GEN    HOLDR,VREG1
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    SXBPB,(VREGOF,VREG4),VREGB1
            GEN    LAND,VREG1,VREG1,VREG5 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            GEN    IADD,VREG1,VREG1,VREG4 
            GEN    RFREE,VREG1
  
          CALLZ  RN2NDDS                         STORE VREG1 + SIGN 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS NOT RIGHT-JUSTIFIED
*                            SHIFTING RIGHT 
*                            SOURCE DIGITS MUST BE TRUNCATED
*                            T1 = NO. OF LOWER DIGITS SHIFTED AROUND END
*                            T2 = NUMBER OF RIGHT-SIDE NON-DIGITS 
*                            E.G.  0099999999 _ XX9999999PPPX 
*                                         + 
 RN2NDD70 LABEL 
          NOTE   RN2NDD70 
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)     6*LSHIFTCT 
            GEN    HOLDR,VREG1
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    SXBPB,(VREGOF,VREG4),VREGB1
            GEN    LAND,VREG1,VREG1,VREG5 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
            GEN    IADD,VREG1,VREG1,VREG4 
            GEN    RFREE,VREG1
  
          CALLZ  RN2NDDS                         STORE VREG1 + SIGN 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS RIGHT-JUSTIFIED
 RN2NDD71 LABEL 
          IFZ    (SCALE,LT,0),RN2NDD74           IF SHIFTING RIGHT
          IFZ    (LSHIFTCT,LT,(BCPOF,REGB)),RN2NDD73  IF NO ZERO PADDING
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS RIGHT-JUSTIFIED
*                            SHIFTING LEFT
*                            SOURCE NEEDS ZERO PADDING
*                            E.G.  0999999999 _ XXXXX999V99/+ 
*                                   0 
 RN2NDD72 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD72 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
          SUBZ   LSHIFTCT,(BCPOF,REGB),T1        NO. DIGITS TO ZERO 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
  
          CALLZ  RN2NDDT                         STORE VREG1 + SIGN 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS RIGHT-JUSTIFIED
*                            SHIFTING LEFT
*                            SOURCE NEEDS NO ZERO PADDING 
*                            E.G.  0000009999 _ XXXXX999V99/+ 
 RN2NDD73 LABEL 
          NOTE   RN2NDD73 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          CALLZ  RN2NDDT                         STORE VREG1 + SIGN 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS RIGHT-JUSTIFIED
*                            SHIFTING RIGHT 
 RN2NDD74 LABEL 
          SUBZ   10,LSHIFTCT,T1                  NO. DIGITS AROUND END
          IFZ    (T1,LE,(BCPOF,REGC)),RN2NDD76   IF NO TRUNCATION 
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS RIGHT-JUSTIFIED
*                            SHIFTING RIGHT 
*                            SOURCE DIGITS MUST BE TRUNCATED
*                            T1 = NO. OF LOWER DIGITS SHIFTED AROUND END
*                            E.G. 00009999V99 _ X999999999/+
*                                         0 
 RN2NDD75 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD75 
  
          SUBZ   T1,(BCPOF,REGC),T1              NO. DIGITS TO ZERO 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG4,VREG4
  
          CALLZ  RN2NDDT                         STORE VREG1 + SIGN 
  
          RETURN
  
  
*                            DESTINATION HAS TRAILING SEPARATE SIGN 
*                            NUMERIC PART IS RIGHT-JUSTIFIED
*                            SHIFTING RIGHT 
*                            SOURCE NEEDS NO TRUNCATION 
*                            E.G.  00009999V99 _ XX99999999/+ 
 RN2NDD76 LABEL 
          NOTE   RN2NDD76 
  
          IFTHEN (SIGNOF,REGB),EQ,0)             IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          CALLZ  RN2NDDT                         STORE VREG1 + SIGN 
  
          RETURN
  
  
*                            SOURCE IS UNSIGNED 
 RN2NDD77 LABEL 
          SUBZ   10,(ARITH1,REGC),T2             RIGHT-SIDE NON-DIGITS
          IFZ    (SCALE,LT,0),RN2NDD80           IF SHIFTING RIGHT
          IFZ    (LSHIFTCT,LE,T2),RN2NDD79       IF NO ZERO PADDING 
          SUBZ   (POINTOF,REGC),(POINTOF,REGB),T3  DIGITS TO BE ZERO
          IFZ    (T3,GE,(BCPOF,REGB)),RN2NDD79   IF NO ZERO PADDING 
  
*                            SOURCE IS UNSIGNED 
*                            SHIFTING LEFT
*                            SOURCE NEEDS ZERO PADDING
*                            T2 = NO. OF RIGHT-SIDE NON-DIGITS IN DEST. 
*                            E.G.  099999999PPP _ XXX999999PX 
*                                   0 
*                            OR    0999999999PPP _ XXX9999999 
*                                   00
 RN2NDD78 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD78 
  
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)  6*FIXED 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,LSHIFTCT)   60-6*FIXED 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN  (LSHIFTCT,LE,3) 
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,LSHIFTCT) 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG5
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION IS UNSIGNED
*                            SHIFTING LEFT
*                            SOURCE NEEDS NO ZERO PADDING 
*                            E.G. 0099999999_ XXX999999X
*                                             0999999990
*                            OR   0000099999 _ 9999V99999X
*                                              9999 000009
 RN2NDD79 LABEL 
          NOTE   RN2NDD79 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION IS UNSIGNED
*                            SHIFTING RIGHT 
 RN2NDD80 LABEL 
          SUBZ   10,LSHIFTCT,T1                  NO. DIGITS AROUND END
          IFZ    (T1,LE,(BCPOF,REGC)),RN2NDD81   IF NO TRUNCATION 
          SUBZ   T1,(BCPOF,REGC),T1              NO. DIGITS TO ZERO 
  
*                            DESTINATION IS UNSIGNED
*                            SHIFTING RIGHT 
*                            SOURCE DIGITS MUST BE TRUNCATED
*                            T1 = NUMBER OF LOWER DIGITS TO BE ZEROED 
*                            E.G.  00000999V99 _ 0999999999 
*                                            0
          NOTE   RN2NDD80 
  
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
  
          IFTHEN (T1,LE,3)                       IF @ 3 DIGITS TO ZERO
            GEN    SXBPK,(VREGOF,VREG4),,(ARITH20,T1)      (T1)R000 
          ELSEZ                                  IF > 3 DIGITS TO ZERO
            GEN    SLRBPK,(VREGOF,VREG4),,CBZEROS 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG4
            ENDIFZ
  
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION IS UNSIGNED
*                            SHIFTING RIGHT 
*                            NO TRUNCATION
*                            E.G.  00099999V99 _ 0099999999 
 RN2NDD81 LABEL 
          NOTE   RN2NDD81 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,LSHIFTCT)               6*LSHIFTCT 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            NO SHIFTING
 RN2NDD82 LABEL 
          IFZ    ((SIGNOF,REGC),EQ,0),RN2NDD89   IF DESTINATION UNSIGNED
  
          IFTHEN ((LDSIGNOF,REGC),EQ,1)          IF LEADING SIGN
           ANDIF ((BCPOF,REGB),GT,(BCPOF,REGC))   AND UPPER ZEROS 
            BRANCH RN2NDD85                        GO SPECIAL CASE
            ENDIFZ
  
          IFTHEN ((LDSIGNOF,REGC),EQ,1)          IF LEADING SIGN
            ADDZ   (BCPOF,REGC),1,T1             TO RIGHT JUSTIFY SIGN
          ELSEZ                                  IF TRAILING SIGN 
            MOVEZ  (ARITH1,REGC),T1                        BCP+BYTLENOF 
            ENDIFZ
  
          IFZ    ((SCHAROF,REGC),EQ,0),RN2NDD83  IF INCLUDED SIGN 
          IFTHEN ((LDSIGNOF,REGC),EQ,0) 
            ANDIF  (T1,EQ,11) 
              BRANCH RN2NDD90      TRAILING SEP SIGN IN NEXT WORD 
          ENDIFZ
          BRANCH RN2NDD84    SEPARATE SIGN IS INCLUDED IN SAME WORD 
  
*                            DESTINATION HAS INCLUDED SIGN
*                            NO SHIFTING
*                            T1 = LEFT-SHIFT COUNT TO RIGHT-JUST. SIGN
*                            E.G.  00009999V99 _ XXX99999V9X
*                                           R 
*                            OR    00999999999 _ XXXXX9999PX
*                                        R
 RN2NDD83 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD83 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    HOLDR,VREG1
            MOVEZ  (LOCLAB,LABEL1),LABEL1        CREATE NEW *LOCLAB1* 
            GEN    PL$,VREG3,LOCLAB1
            GEN    SHL,VREG1,(ARITH8,T1)                   6*T1 
            GEN    MASK,(VREGOF,VREG5),54 
            GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
            GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
            GEN    LXOR,VREG1,VREG1,VREG4 
            GEN    SHL,VREG1,(ARITH7,T1)                   60-6*T1
            GEN    LABEL$,LOCLAB1 
            GEN    RFREE,VREG1
            ENDIFZ
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS SEPARATE SIGN
*                            NO SHIFTING
*                            T1 = LEFT-SHIFT COUNT TO RIGHT-JUST. SIGN
*                            E.G.  0000099999PPP _ XX999999PPPPP+X
*                                          +
*                            OR    0099999999 _ XXX+9999PPXX
*                                     + 
 RN2NDD84 LABEL 
          NOTE   RN2NDD84 
  
          IFTHEN ((SIGNOF,REGB),EQ,0)            IF VREG1 = ORIGINAL
            GEN    XMIT,(VREGOF,VREG1),VREG1
            ENDIFZ
  
          GEN    SHL,VREG1,(ARITH8,T1)                     6*T1 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE SIGNED 
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          GEN    SHL,VREG1,(ARITH7,T1)                     60-6*T1
  
          MOVEZ  1,P1                            USE *IADD* TO MERGE
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            SOURCE SIGN DIGIT IS ZERO
 RN2NDD85 LABEL 
          IFZ    ((SCHAROF,REGC),EQ,1),RN2NDD88  IF LEADING SEPARATE
          IFZ    ((SIGNOF,REGB),EQ,0),RN2NDD87   IF SOURCE UNSIGNED 
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            NO SHIFTING
*                            SOURCE IS SIGNED 
*                            SIGN DIGIT IS ZERO 
*                            E.G.  0000009999 _ XX999999999 
*                                    !
 RN2NDD86 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDD86 
  
          GEN    SXBPK,(VREGOF,VREG4),,1R!&1R0
          GEN    LAND,(VREGOF,VREG4),VREG4,VREG3
          SUBZ   9,(BCPOF,REGC),T1               TO POSITION SIGN MOD.
          GEN    SHL,VREG4,(ARITH8,T1)                     6*T1 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING INCLUDED SIGN
*                            NO SHIFTING
*                            SOURCE IS UNSIGNED 
*                            E.G.  0099999999 _ 99999999PPXX
 RN2NDD87 LABEL 
          NOTE   RN2NDD87 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION HAS LEADING SEPARATE SIGN
*                            NO SHIFTING
*                            SIGN DIGIT IS ZERO 
*                            E.G. 0000999999 _ XX+9999999 
*                                   + 
 RN2NDD88 LABEL 
          NOTE   RN2NDD88 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE IS SIGNED
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LIMP,(VREGOF,VREG4),VREG4,VREG3         1 IFF +
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R-&1R0 
 #T1        SET    1R+&1R0
 #T2        SET    1R-&1R0
            ERRNZ  1+#T2-#T1                     1+(-&0) MUST = (+&0) 
          ELSEZ                                  IF SOURCE UNSIGNED 
            GEN    SXBPK,(VREGOF,VREG4),,1R+&1R0
            ENDIFZ
  
          SUBZ   9,(BCPOF,REGC),T1               TO POSITION SIGN MOD.
          GEN    SHL,VREG4,(ARITH8,T1)                     6*T1 
          GEN    LXOR,(VREGOF,VREG1),VREG1,VREG4
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
  
  
*                            DESTINATION IS UNSIGNED
*                            NO SHIFTING
*                            E.G.  0000999999 _ XXXXX99999
 RN2NDD89 LABEL 
          NOTE   RN2NDD89 
  
          MOVEZ  0,P1                            USE *LOR* TO MERGE 
          CALLZ  RN2NDDS                         STORE VREG1 IN FWARECV 
  
          RETURN
          SPACE  4
*                            DESTINATION HAS TRAILING SEPARATE SIGN IN
*                            FOLLOWING WORD 
*                            NO SHIFTING
*                            E.G. 0000099999 _ XXXXX99999 + 
 RN2NDD90 LABEL 
          NOTE   RN2NDD90 
          CALLZ  RN2NDDT
          RETURN
RN2NDDS   EJECT 
**        RN2NDDS -  INSERT ALIGNED RESULT INTO DESTINATION WORD
* 
*         VREG1 = ALIGNED RESULT
*         FWARECV = ADDRESS OF DESTINATION WORD 
*         (BCPOF,REGC) = BCP OF DESTINATION FIELD WITHIN (FWARECV)
*         (BYTLENOF,REGC) = LENGTH IN CHARACTERS OF DESTINATION FIELD 
*         P1 = 1 IFF *IADD* INSTRUCTION MAY BE USED TO MERGE PARTS. 
* 
*         CALLZ  RN2NDDS
* 
*         NOTE-  (BYTLENOF,REGC)=10  IS NOT HANDLED.
  
  
 RN2NDDS  EGO    4
          IFZ    ((SYNCHOF,REGC),EQ,1),RN2NDDS4 
          IFZ    ((ARITH1,REGC),EQ,10),RN2NDDS3  IF RIGHT-JUSTIFIED 
          IFZ    ((BCPOF,REGC),EQ,0),RN2NDDS2    IF LEFT-JUSTIFIED
  
*                            FIELD DOES NOT TOUCH EITHER WORD BOUNDARY
 RN2NDDS1 LABEL                                  (CROSS-REFS ONLY)
          NOTE   RN2NDDS1 
          GEN    SLRBPK,(VREGOF,VREG2),,FWARECV 
          GEN    MASK,(VREGOF,VREG5),(ARITH3,REGC)         6*BYTLENOF 
          MOVEZ  (BCPOF,REGC),T1
          GEN    SHL,VREG5,(ARITH7,T1)                     60-6*T1
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    LIMP,(VREGOF,VREG4),VREG2,VREG5
  
          IFTHEN (P1,EQ,1)                       IF *IADD* ALLOWED
            GEN    IADD,(VREGOF,VREG1),VREG4,VREG1
          ELSEZ                                  IF MUST USE *LOR*
            GEN    LOR,(VREGOF,VREG1),VREG4,VREG1 
            ENDIFZ
  
          GEN    SSRAPB,VREG1,VREG2 
          RETURN
  
  
*                            FIELD IS LEFT-JUSTIFIED
 RN2NDDS2 LABEL 
          NOTE   RN2NDDS2 
          GEN    SLRBPK,(VREGOF,VREG2),,FWARECV 
          GEN    MASK,(VREGOF,VREG5),(ARITH3,REGC)         6*BYTLENOF 
          GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
          GEN    LIMP,(VREGOF,VREG4),VREG2,VREG5
  
          IFTHEN (P1,EQ,1)                       IF *IADD* ALLOWED
            GEN    IADD,(VREGOF,VREG1),VREG1,VREG4
          ELSEZ                                  IF MUST USE *LOR*
            GEN    LOR,(VREGOF,VREG1),VREG1,VREG4 
            ENDIFZ
  
          GEN    SSRAPB,VREG1,VREG2 
          RETURN
  
  
*                            FIELD IS RIGHT-JUSTIFIED 
 RN2NDDS3 LABEL 
          NOTE   RN2NDDS3 
          GEN    SLRBPK,(VREGOF,VREG2),,FWARECV 
          MOVEZ  (BYTLENOF,REGC),T1 
          GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)           60-6*T1
          GEN    LIMP,(VREGOF,VREG1),VREG1,VREG5
          GEN    LAND,(VREGOF,VREG4),VREG2,VREG5
  
          IFTHEN (P1,EQ,1)                       IF *IADD* ALLOWED
            GEN    IADD,(VREGOF,VREG1),VREG4,VREG1
          ELSEZ                                  IF MUST USE *LOR*
            GEN    LOR,(VREGOF,VREG1),VREG4,VREG1 
            ENDIFZ
  
          GEN    SSRAPB,VREG1,VREG2 
          RETURN
  
  
*                            FIELD IS SYNCHRONIZED
 RN2NDDS4 LABEL 
          NOTE   RN2NDDS4 
          GEN    XMIT,(VREGOF,VREG1),VREG1
          GEN    SSRBPK,VREG1,,((FWA$OF,REGC))
          RETURN
RN2NDDT   EJECT 
**        RN2NDDT -  STORE VREG1 AND SEPARATE SIGN IN NEXT WORD 
* 
*         VREG1 = RIGHT-JUSTIFED VALUE
*         VREG3 = SIGN OF SOURCE
* 
*         CALLZ  RN2NDDT
* 
*         GENERATES CODE TO STORE VREG1 IN FWARECV, 
*         AND TO STORE THE SIGN CHARACTER IN BITS 59-54 OF THE NEXT WORD
  
  
 RN2NDDT  LABEL 
          NOTE   RN2NDDT
  
          IFTHEN ((BCPOF,REGC),NE,0)             IF NOT FULL WORD 
            GEN    SLRBPK,(VREGOF,VREG2),,FWARECV 
            SUBZ   (BYTLENOF,REGC),1,T1 
            GEN    MASK,(VREGOF,VREG5),(ARITH7,T1)         60-6*T1
            GEN    LIMP,(VREGOF,VREG1),VREG1,VREG5
            GEN    LAND,(VREGOF,VREG4),VREG2,VREG5
            GEN    IADD,(VREGOF,VREG1),VREG4,VREG1
            GEN    SSRAPB,VREG1,VREG2 
          ELSEZ                                  IF FULL WORD 
            GEN    SSRBPK,VREG1,,FWARECV
            ENDIFZ
  
          GEN    SLRAPB,(VREGOF,VREG2),VREG1,VREGB1 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE IS SIGNED
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE IS UNSIGNED
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    MASK,(VREGOF,VREG5),6
          GEN    LIMP,(VREGOF,VREG1),VREG2,VREG5
          GEN    SHL,VREG4,54 
          GEN    LOR,(VREGOF,VREG1),VREG4,VREG1 
          GEN    SSRAPB,VREG1,VREG2 
  
          RETURN
          EJECT 
**        RN2NDDU - STORE SEPARATE SIGN AND VREG1 IN NEXT WORD
* 
*         VREG1 = RIGHT-JUSTIFED VALUE
*         VREG3 = SIGN OF SOURCE
* 
*         CALLZ  RN2NDDU
* 
*         GENERATES CODE TO STORE THE SIGN CHARACTER IN BITS 5-0 OF 
*         FWARECV AND THEN STORE VREG1 IN THE NEXT WORD 
  
  
 RN2NDDU  LABEL 
          NOTE   RN2NDDU
  
          GEN    SLRBPK,(VREGOF,VREG2),,FWARECV 
  
          IFTHEN ((SIGNOF,REGB),EQ,1)            IF SOURCE IS SIGNED
            GEN    SXBPB,(VREGOF,VREG4),,VREGB1 
            GEN    LAND,(VREGOF,VREG4),VREG4,VREG3         1 IFF -
            GEN    SXXPK,(VREGOF,VREG4),VREG4,1R+ 
          ELSEZ                                  IF SOURCE IS UNSIGNED
            GEN    SXBPK,(VREGOF,VREG4),,1R+
            ENDIFZ
  
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LAND,(VREGOF,VREG2),VREG5,VREG2
          GEN    LOR,(VREGOF,VREG4),VREG2,VREG4 
          GEN    SSRAPB,VREG4,VREG2 
  
          IFTHEN ((BYTLENOF,REGC),NE,10)
            GEN    SLRAPB,(VREGOF,VREG2),VREG2,VREGB1 
            SUBZ   (BYTLENOF,REGC),1,T1 
            GEN    MASK,(VREGOF,VREG5),(ARITH8,T1)         6*T1 
            GEN    LAND,(VREGOF,VREG1),VREG1,VREG5
            GEN    LIMP,(VREGOF,VREG4),VREG2,VREG5
            GEN    IADD,(VREGOF,VREG1),VREG4,VREG1
            GEN    SSRAPB,VREG1,VREG2 
            ENDIFZ
  
          RETURN
RN2NDE    EJECT 
**        RN2NDE  - SOURCE IS TWO REGISTERS AND/OR DESTINATION SPANS
*                   THREE WORDS 
 RN2NDE   EGO    3
          NOTE   RN2NDE 
          MOVEZ  STOREG,REGT
          CALLZ  ADNAT
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGT)
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGT)
          MOVEZ  (POINTOF,REGC),(POINTOF,REGT)
          IFTHEN ((SCHAROF,REGC),EQ,1)
          ANDIF  ((LDSIGNOF,REGC),EQ,0) 
*                            SIGN TRAILING SEPARATE, RESERVE ROOM FOR IT
            ADDZ   1,(NUMLENOF,REGT),(NUMLENOF,REGT)
            ADDZ   1,(POINTOF,REGT),(POINTOF,REGT)
          ENDIFZ
          IFTHEN  ((SCHAROF,REGC),EQ,1) 
           ANDIF ((LDSIGNOF,REGC),EQ,1) 
            ADDZ   1,(NUMLENOF,REGT),(NUMLENOF,REGT)  MAKE ROOM FOR SIGN
          ENDIFZ
          PUSH   REGC 
          MOVEZ  REGT,REGC
          CALLZ  RN2RN       ALIGN SOURCE WITH DESTINATION
          POP    REGC 
*                            SOURCE NOW IN REGT 
          IFTHEN ((SIGNOF,REGT),EQ,0) 
            GEN    XMIT,(VREGOF,VREG1),(TREGOF,REGT)
            IFZ    ((NUMLENOF,REGT),LE,10),RN2NDE.5 
            GEN    XMIT,(VREGOF,VREG2),(TREGP1OF,REGT)
 RN2NDE.5 LABEL 
          ELSEZ 
            CALLZ  RN2NDESG 
          ENDIFZ
          MOVEZ  (ARITH1,REGC),T1      ECP
          IFZ    (T1,GT,20),RN2NDE1    SPANS THREE WORDS
          IFZ    (T1,GT,10),RN2NDE2    SPANS TWO WORDS
*                                      CONTAINED IN ONE WORD
          NOTE   RN2NDE.5 
          IFTHEN ((BYTLENOF,REGC),EQ,10)
            GEN  XMIT,(VREGOF,VREG3),VREG1
            GEN  SSRBPK,VREG3,,FWARECV
            RETURN
          ENDIFZ
          SUBZ   10,(BYTLENOF,REGC),T2
          GEN    MASK,(VREGOF,VREG3),(ARITH8,T2)   6*(10-ITMLEN)
          IFTHEN (T1,NE,10) 
            SUBZ   T2,(BCPOF,REGC),T3 
            GEN    SHL,VREG1,(ARITH8,T3)    6*FIXED 
            GEN    SHL,VREG3,(ARITH8,T3)    6*FIXED 
          ENDIFZ
          GEN    SLRBPK,(VREGOF,VREG4),,FWARECV 
          GEN    LAND,(VREGOF,VREG5),VREG3,VREG4
          GEN    LIMP,(VREGOF,VREG6),VREG1,VREG3
          GEN    LOR,(VREGOF,VREG2),VREG5,VREG6 
          GEN    SSRAPB,VREG2,VREG4,VREGB0
          RETURN
          SPACE  3
 RN2NDE1  LABEL              DESTINATION SPANS THREE WORDS
          NOTE   RN2NDE1
          GEN    MASK,(VREGOF,VREG3),(ARITH2,REGC)   6*BCP
          GEN    SLRBPK,(VREGOF,VREG4),,FWARECV 
          SUBZ   20,(BYTLENOF,REGC),T1
          SUBZ   (BCPOF,REGC),T1,T2 
          GEN    SHL,VREG1,(ARITH7,T2)     60-6*FIXED 
          GEN    LAND,(VREGOF,VREG5),VREG3,VREG4
          GEN    LIMP,(VREGOF,VREG6),VREG1,VREG3
          GEN    LOR,(VREGOF,VREG7),VREG5,VREG6 
          GEN    SSRAPB,VREG7,VREG4,VREGB0
          GEN    SHL,VREG2,(ARITH7,T2)      60-6*FIXED
          GEN    MASK,(VREGOF,VREG3),(ARITH8,T2)  G*FIXED 
          GEN    LAND,(VREGOF,VREG5),VREG1,VREG3
          GEN    LIMP,(VREGOF,VREG6),VREG2,VREG3
          GEN    LOR,(VREGOF,VREG7),VREG5,VREG6 
          GEN    SSRAPB,VREG7,VREG4,VREGB1
          GEN    SLRAPB,(VREGOF,VREG4),VREG7,VREGB1 
          GEN    LAND,(VREGOF,VREG5),VREG2,VREG3
          GEN    LIMP,(VREGOF,VREG6),VREG4,VREG3
          GEN    LOR,(VREGOF,VREG7),VREG5,VREG6 
          GEN    SSRAPB,VREG7,VREG4,VREGB0
          RETURN
          SPACE  3
 RN2NDE2  LABEL              DESTINATION SPANS TWO WORDS
          IFZ    ((BYTLENOF,REGC),LE,10),RN2NDE3
          NOTE   RN2NDE2
          IFTHEN (T1,EQ,20) 
            GEN    SLRBPK,(VREGOF,VREG3),,FWARECV 
            GEN    MASK,(VREGOF,VREG4),(ARITH2,REGC)   6*BCP
            GEN    LAND,(VREGOF,VREG5),VREG3,VREG4
            GEN    LIMP,(VREGOF,VREG6),VREG1,VREG4
            GEN    LOR,(VREGOF,VREG7),VREG5,VREG6 
            GEN    SSRAPB,VREG7,VREG3,VREGB0
            GEN    XMIT,(VREGOF,VREG4),VREG2
            GEN    SSRAPB,VREG4,VREG7,VREGB1
            RETURN
          ENDIFZ
          SUBZ   T1,10,T2    ECP - 10 
          GEN    SHL,VREG1,(ARITH7,T2)    60-6*FIXED
          GEN    SHL,VREG2,(ARITH7,T2)    60-6*FIXED
          GEN    MASK,(VREGOF,VREG3),(ARITH8,T2)   6*FIXED
          GEN    LAND,(VREGOF,VREG4),VREG2,VREG3
          GEN    LAND,(VREGOF,VREG5),VREG1,VREG3
          GEN    LIMP,(VREGOF,VREG6),VREG2,VREG3
          GEN    LOR,(VREGOF,VREG7),VREG5,VREG6 
          IFTHEN ((BCPOF,REGC),NE,0)
            GEN    SLRBPK,(VREGOF,VREG5),,FWARECV 
            GEN    MASK,(VREGOF,VREG6),(ARITH2,REGC)
            GEN    LAND,(VREGOF,VREG8),VREG6,VREG5
            GEN    LIMP,(VREGOF,VREG7),VREG7,VREG6
            GEN    LOR,(VREGOF,VREG7),VREG8,VREG7 
          ENDIFZ
          GEN    SSRBPK,VREG7,,FWARECV
          GEN    SLRAPB,(VREGOF,VREG5),VREG7,VREGB1 
          GEN    LIMP,(VREGOF,VREG6),VREG5,VREG3
          GEN    LOR,(VREGOF,VREG8),VREG6,VREG4 
          GEN    SSRAPB,VREG8,VREG5,VREGB0
          RETURN
          SPACE  3
 RN2NDE3  LABEL              DESTINATION SPANS TWO WORDS, BYTLEN LE 10
          NOTE   RN2NDE3
          SUBZ   T1,10,T2 
          GEN    SHL,VREG1,(ARITH7,T2)           60-6*FIXED 
          GEN    MASK,(VREGOF,VREG3),(ARITH8,T2)     6*FIXED
          GEN    LAND,(VREGOF,VREG4),VREG1,VREG3
          GEN   SLRBPK,(VREGOF,VREG5),,FWARECV
          GEN    MASK,(VREGOF,VREG6),(ARITH2,REGC)
          GEN    LAND,(VREGOF,VREG8),VREG5,VREG6
          GEN    LIMP,(VREGOF,VREG7),VREG1,VREG6
          GEN    LOR,(VREGOF,VREG7),VREG7,VREG8 
          GEN    SSRAPB,VREG7,VREG5 
          GEN    SLRAPB,(VREGOF,VREG5),VREG7,VREGB1 
          GEN    LIMP,(VREGOF,VREG6),VREG5,VREG3
          GEN    LOR,(VREGOF,VREG8),VREG4,VREG6 
          GEN    SSRAPB,VREG8,VREG5 
          RETURN
          SPACE  3
 RN2NDESG EGO    4           DESTINATION SIGNED 
          NOTE   RN2NDESG 
          GEN    XMIT,(VREGOF,VREG3),(TREGOF,REGT)
          GEN    SHR,VREG3,59 
          IFTHEN ((NUMLENOF,REGT),LT,10)
            GEN    LXOR,(VREGOF,VREG1),(TREGOF,REGT),VREG3
          ENDIFZ
          IFTHEN ((NUMLENOF,REGT),EQ,10)
            GEN    LXOR,(VREGOF,VREG1),(TREGP1OF,REGT),VREG3
          ENDIFZ
          IFTHEN ((NUMLENOF,REGT),GT,10)
            GEN    LXOR,(VREGOF,VREG1),(TREGOF,REGT),VREG3
            GEN    LXOR,(VREGOF,VREG2),(TREGP1OF,REGT),VREG3
          ENDIFZ
          IFZ    ((SCHAROF,REGC),EQ,0),RN2NDESI 
          GEN    SXBPB,(VREGOF,VREG4),VREGB1
          GEN    LAND,(VREGOF,VREG5),VREG4,VREG3
          GEN    SXXPK,(VREGOF,VREG4),VREG5,1R+      SIGN CHARACTER 
          IFZ    ((LDSIGNOF,REGC),EQ,1),ESC1
*                            SIGN TRAILING
          GEN    MASK,(VREGOF,VREG3),54 
          IFTHEN ((NUMLENOF,REGC),GE,10)
            GEN    LAND,(VREGOF,VREG5),VREG2,VREG3
            GEN    LOR,(VREGOF,VREG2),VREG5,VREG4 
          ELSEZ 
            GEN    LAND,(VREGOF,VREG5),VREG1,VREG3
            GEN    LOR,(VREGOF,VREG1),VREG5,VREG4 
          ENDIFZ
          RETURN
          SPACE  3
 ESC1     LABEL              SIGN LEADING 
          IFTHEN ((BYTLENOF,REGC),GT,10)
            SUBZ   21,(BYTLENOF,REGC),T3
          ELSEZ 
            SUBZ   11,(BYTLENOF,REGC),T3
          ENDIFZ
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    SHL,VREG1,(ARITH8,T3)           6*FIXED
          GEN    LAND,(VREGOF,VREG6),VREG5,VREG1
          GEN    LOR,(VREGOF,VREG1),VREG6,VREG4 
          GEN    SHL,VREG1,(ARITH7,T3)           60-6 
          RETURN
          SPACE  3
 RN2NDESI LABEL              SIGN INCLUDED
          NOTE   RN2NDESI 
          IFZ    ((LDSIGNOF,REGC),EQ,0),ESI1
*                            SIGN LEADING 
          GEN    HOLDR,VREG1
          MOVEZ  (LOCLAB,LABEL1),LABEL1 
          GEN    PL$,VREG3,LOCLAB1
          IFTHEN ((BYTLENOF,REGC),GT,10)
            SUBZ   21,(BYTLENOF,REGC),T3
          ELSEZ 
            SUBZ   11,(BYTLENOF,REGC),T3
          ENDIFZ
          GEN    SHL,VREG1,(ARITH8,T3)           60-6*FIXED 
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LIMP,(VREGOF,VREG4),VREG1,VREG5
          GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
          GEN    LXOR,VREG1,VREG1,VREG4 
          GEN    SHL,VREG1,(ARITH7,T3)           60-6*FIXED 
          GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG1
          RETURN
          SPACE  3
 ESI1     LABEL              SIGN TRAILING
          IFTHEN ((NUMLENOF,REGC),GT,10)
            MOVEZ  VREG2,VREG20 
          ELSEZ 
            MOVEZ  VREG1,VREG20 
          ENDIFZ
          GEN    HOLDR,VREG20 
          MOVEZ  (LOCLAB,LABEL1),LABEL1 
          GEN    PL$,VREG3,LOCLAB1
          GEN    MASK,(VREGOF,VREG5),54 
          GEN    LIMP,(VREGOF,VREG4),VREG20,VREG5 
          GEN    SLRXPK,(VREGOF,VREG4),VREG4,CBZNM33B 
          GEN    LXOR,VREG20,VREG20,VREG4 
          GEN    LABEL$,LOCLAB1 
          GEN    RFREE,VREG20 
          RETURN
  
  
  
  
  
  
          SPACE  4
          END 
