*DECK GMOVC2
          IDENT  GMOVC2 
          TITLE  GMOVC2 - GENERATE C22XX MOVES
  
          MACHINE  ANY,I
          SST 
          COMMENT  GENERATE C22XX MOVES 
          SPACE  4
**        GMOVC2 - GENERATE C22XX MOVES 
* 
* C22C1   LINK   CGC22C1
* C22C2   LINK   CGC22C2
*C22C4    LINK   CGC22C4
* C22ND   LINK   CGC22ND
* C22NE   LINK   CGC22NE
* C22R1   LINK   CGC22R1
* C22R2   LINK   CGC22R2
* C22R4   LINK   CGC22R4
* C22XF   LINK   CGC22XF
* 
*         REGB = DNAT POINTER TO SOURCE.
*         REGC = DNAT POINTER TO DESTINATION
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
  
  
  
*      COMDECKS 
  
  
  
  
  
 CONTROL  OPSYN  NIL
  
  
  
  
*CALL CCT 
  
          EJECT 
 GMOVC2   MODULE
  
*      REGTABLE EQUATES 
  
  
 MOVEREGA EQU    REGB 
 MOVEREGB EQU    REGC 
 MOVEREGD EQU    REGQ 
 MOVEREGE EQU    REGR 
 MOVEREGF EQU    REGS 
 MOVEREGM EQU    REGM 
  
*      VIRTUAL REGISTER EQUATES 
  
 VREGA    EQU    VREG1
 VREGB    EQU    VREG2
 VREGC    EQU    VREG3
 VREGD    EQU    VREG9
 VREGE    EQU    VREG5
 VREGF    EQU    VREG6
 VREGG    EQU    VREG7
 VREGH    EQU    VREG8
 VREGI    EQU    VREG9
 VREGJ    EQU    VREG10 
 VREGK    EQU    VREG11 
 VREGL    EQU    VREG12 
 VREGU    EQU    VREG16 
 VREGV    EQU    VREG17 
 VREGW    EQU    VREG18 
 VREGX    EQU    VREG4
 VREGAC   EQU    VREG1
  
*      FIXED TABLE EQUATES
  
  
*      MISCELLANEOUS EQUATES
  
  
*      LINKAGE FROM CALLING ROUTINES IN OTHER MODULES 
  
 C22C1    KNIL   CGC22C1
 C22C2    KNIL   CGC22C2
 C22ND    KNIL   CGC22ND
 C22C4    KNIL   CGC22C4
 C22NE    KNIL   CGC22NE
 C22R1    KNIL   CGC22R1
 C22R2    KNIL   CGC22R2
 C22R4    KNIL   CGC22R4
 C22XF    KNIL   CGC22XF
 LOADC4   LINK   CGLOAD4     * TO GMOVSUB 
 STORC4   LINK   STORC4 
 ND2RN    LINK   CGND2RN    * TO GMOVLOD
 RN2R1    LINK   CGRN2R1   * TO GMOVRN
 R12R2    LINK   CGR12R2     * TO GMOVR1
 R12ND    LINK   CGR12ND     * TO GMOVR1
 R42RN    LINK   CGR42RN
  
*      LINKAGE TO CALLED ROUTINES IN OTHER MODULES
  
 ADNAT    LINK   ADNAT       * TO CGSTART 
 LOADC1C2 LINK   CGLOADC     * TO GMOVSUB 
 RN2ND    LINK   CGRN2ND     * TO GMOVRN
 RN2NE    LINK   CGRN2NE     * TO GMOVRN
 R22RN    LINK   CGR22RN     * TO GMOVR2
 R22R1    LINK   CGR22R1     * TO GMOVR2
 R22R2    LINK   CGR22R2     * TO GMOVR2
 R22R4    LINK   CGR22R4     * TO GMOVR2
 STORC1C2 LINK   CGSTORC     * TO GMOVSUB 
 R12R1    LINK   CGR12R1     * TO GMOVR1
 SUBDNAT  LINK   SUBDNAT     * TO CGSTART 
 R12RN    LINK   CGR12RN     * TO GMOVRN
 STORC4   LINK   STORC4      * TO GMOVSUB 
*      DEFINING SYMBOLIC PARAMETERS 
 CBFTENS  SETSY  (EXT$OF,C.FTENS),T1
  
*      SYMBOLIC PARAMETER DEFINITIONS 
  
          SPACE  4
          LISTSEC  C22C1
          TITLE  C22C1 -  COMP-2 ITEM TO COMP-1 ITEM
**        C22C1 -  COMP-2 ITEM TO COMP-1 ITEM 
* 
*         REGB = DNAT POINTER TO SOURCE ITEM. 
*         FWASOURC = ADDRESS OF SOURCE ITEM.
*         (SIGNOF,REGB) = 1 IFF SOURCE IS SIGNED. 
*         REGC = DNAT POINTER TO DESINATION ITEM. 
*         FWARECV = ADDRESS OF DESTINATION ITEM.
*         (NUMLENOF,REGC) = NUMBER OF DIGITS IN DESTINATION VALUE.
*         (POINTOF,REGC) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.   (E.G. PIC 999P _ -1) 
*         (SIGNOF,REGC) = 1 IFF DESTINATION IS SIGNED.
* 
*         CALLZ  C22C1
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
* 
*         USES-  REGU2
*                REGU1
  
  
 C22C1    EGO    2
          NOTE   C22C1
  
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
  
          CALLZ  LOADC1C2 
  
*      CREATE A DUMMY SOURCE DNAT 
  
          MOVEZ  REGU1,REGT                      ENTRY REGU1 _ DNAT 
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  VREG1,(TREGOF,REGU1) 
          MOVEZ  (SIGNOF,REGB),(SIGNOF,REGU1) 
          MOVEZ  0,(POINTOF,REGU1)
  
*      CREATE A DUMMY DESTINATION DNAT
  
          MOVEZ  REGU2,REGT                      ENTRY REGU2 _ DNAT 
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGU2) 
          MOVEZ  (POINTOF,REGC),(POINTOF,REGU2) 
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGU2) 
  
*      CONVERT R2 (IN REGU1) TO R1 (IN REGU2) 
  
          PUSH   REGB,REGC                       SAVE ORIG. SOURCE, DEST
          MOVEZ  REGU1,REGB 
          MOVEZ  REGU2,REGC                      THIS DEST. IS REGU2
          CALLZ  R22R1                           CONVERT (REGB) _ (REGC)
          POP    REGB,REGC
  
*      CONVERT R1 (IN REGU2) TO C1 (IN REGC)
  
          MOVEZ  (TREGOF,REGU2),P1
          CALLZ  STORC1C2 
  
          CALLZ  SUBDNAT                         DELETE REGU2 DNAT
          CALLZ  SUBDNAT                         DELETE REGU1 DNAT
          RETURN
          SPACE  4
          LISTSEC  C22C2
          TITLE  C22C2 -  COMP-2 ITEM TO COMP-2 ITEM
**        C22C2 -  COMP-2 ITEM TO COMP-2 ITEM 
* 
*         REGB = DNAT POINTER TO SOURCE TEIM
*         (FWA$OF,REGB) = ADDRESS OF SOURCE ITEM
*         REGC = DNAT POINTER TO DESTINATION ITEM 
*         (FWA$OF,REGC) = ADDRESS OF DESTINATION ITEM 
* 
*         CALLZ  C22C2
  
  
 C22C2    EGO    2
          NOTE   C22C2
  
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
  
          CALLZ  LOADC1C2 
  
*      STORE THE VALUE
  
          MOVEZ  VREG1,P1 
          CALLZ  STORC1C2 
  
          RETURN
          SPACE  4
          LISTSEC  C22C4
          TITLE  C22C4  COMP-2 ITEM TO COMP-4 ITEM
************************************************************************
*         C22C4  -  COMP-2 ITEM TO COMP-4 ITEM                         *
*                                                                      *
*         REGB=  DNAT POINTER TO SOURCE ITEM                           *
*         REGC=  DNAT POINTER TO DEST.  ITEM                           *
*                                                                      *
*         CALLZ  C22C4                                                 *
*                                                                      *
*         GENERATE CODE TO PERFORM THE INDICATED MOVE                  *
*                                                                      *
*         USES   REGU1                                                 *
*                REGU2                                                 *
*                                                                      *
************************************************************************
 C22C4    EGO    2
          NOTE   C22C4
* 
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
* 
          CALLZ  LOADC1C2 
* 
*      CREATE DUMMY DNAT
* 
          MOVEZ  REGU1,REGT                      ENTRY REGU1 TO DNAT
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  VREG1,(TREGOF,REGU1) 
          MOVEZ  (SIGNOF,REGB),(SIGNOF,REGU1) 
          MOVEZ  0,(POINTOF,REGU1)
* 
*      CREATE ANOTHER DUMMY DNAT
* 
          MOVEZ  REGU2,REGT                      ENTRY REGU2 TO DNAT
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGU2) 
          MOVEZ  (POINTOF,REGC),(POINTOF,REGU2) 
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGU2) 
* 
*      CONVERT R2 (IN REGU1) TO R1 (IN REGU2) 
* 
          PUSH   REGB,REGC                       SAVE ORIGINAL FIELDS 
          MOVEZ  REGU1,REGB 
          MOVEZ  REGU2,REGC 
          CALLZ  R22R1
          POP    REGB,REGC                       RESTORE
*      STORE RESULT 
          MOVEZ  (TREGOF,REGU2),P1
          CALLZ  STORC4 
          CALLZ  SUBDNAT                         DELETE REGU1 DNAT
          CALLZ  SUBDNAT                         DELETE REGU2 DNAT
          RETURN
          SPACE  4
          LISTSEC  C22ND
          TITLE  C22ND -  COMP-2 ITEM TO NUMERIC DISPLAY ITEM 
**        C22ND -  COMP-2 ITEM TO NUMERIC DISPLAY ITEM
* 
*         REGB = DNAT POINTER TO SOURCE ITEM. 
*         FWASOURC = ADDRESS OF SOURCE ITEM.
*         (SIGNOF,REGB) = 1 IFF SOURCE IS SIGNED. 
*         REGC = DNAT POINTER TO DESTINATION ITEM.
*         FWARECV = ADDRESS OF DESTINATION ITEM.
*         (NUMLENOF,REGC) = NUMBER OF DIGITS IN DESTINATION.
*         (POINTOF,REGC) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.   (E.G. PIC 999V9 _ 1) 
*         (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  C22ND
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
* 
*         USES-  REGU3
*                REGU2
*                SAVREGB2 
*                SAVREGC2 
*                REGU1       (BY R22RN) 
*                SAVREGB1    (BY R22RN) 
*                SAVREGC1    (BY R22RN) 
  
  
 C22ND    EGO    2
          NOTE   C22ND
  
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
  
          CALLZ  LOADC1C2 
          IFZ    ((NUMLENOF,REGC),GT,14),C22ND1 
  
*      CREATE A DUMMY SOURCE DNAT 
  
          MOVEZ  (EQUALS,REGU2),REGT             REGU2 TO POINT TO DNAT 
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  VREG1,(TREGOF,REGU2) 
          MOVEZ  (SIGNOF,REGB),(SIGNOF,REGU2) 
          MOVEZ  0,(POINTOF,REGB) 
  
*      CREATE A DUMMY DESTINATION DNAT
  
          MOVEZ  (EQUALS,REGU3),REGT             REGU3 TO POINT TO DNAT 
          CALLZ  ADNAT                           CREATE DNAT
          MAXZ   (NUMLENOF,REGC),(POINTOF,REGC),(NUMLENOF,REGU3)
          MOVEZ  (POINTOF,REGC),(POINTOF,REGU3) 
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGU3) 
  
*      CONVERT R2 (IN REGU2) TO RN (IN REGU3) 
  
          PUSH   REGB,REGC                       SAVE ORIG. SOURCE, DEST
          MOVEZ  REGU2,REGB                      THIS SOURCE IS REGU2 
          MOVEZ  REGU3,REGC                      THIS DEST. IS REGU3
          CALLZ  R22RN                           CONVERT (REGB) _ (REGC)
          POP    REGB,REGC                       RESTORE
  
*      CONVERT RN (IN REGU3) TO ND (IN REGC)
  
          PUSH   REGB                            SAVE ORIGINAL SOURCE 
          MOVEZ  REGU3,REGB 
          CALLZ  RN2ND                           CONVERT (REGB) _ (REGC)
          POP    REGB                            RESTORE ORIGINAL SOURCE
  
          CALLZ  SUBDNAT                         DELETE REGU3 DNAT
          CALLZ  SUBDNAT                         DELETE REGU2 DNAT
          RETURN
          SPACE  3
 C22ND1   LABEL 
* CREATE DUMMY R4 SOURCE DNAT 
          MOVEZ  REGU4,REGT 
          PUSH    REGB
          MOVEZ   REGT,REGB 
          CALLZ  ADNAT
          GEN    XMIT,(VREGOF,VREG2),VREG1
          GEN    MASK,(VREGOF,VREG3),0
          MOVEZ  VREG2,(TREGOF,REGB)
          MOVEZ  1,(SIGNOF,REGB)
*      CREATE DUMMY DESTINATION DNAT
          MOVEZ  REGU3,REGT 
          CALLZ  ADNAT
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGU3) 
          MOVEZ  (POINTOF,REGC),(POINTOF,REGU3) 
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGU3) 
*      CONVERT R4 (REGU4) TO RN (REGU3) 
          PUSH   REGC 
          MOVEZ  REGU3,REGC 
          CALLZ  R42RN
          POP    REGC 
*      CONVERT RN (REGU3) TO ND (REGC)
          MOVEZ    REGU3,REGB 
          CALLZ  RN2ND
          POP    REGB 
          CALLZ  SUBDNAT
          CALLZ  SUBDNAT
          RETURN
          SPACE  4
          LISTSEC  C22NE
          TITLE  C22NE -  COMP-2 ITEM TO NUMERIC-EDITED ITEM
**        C22NE -  COMP-2 ITEM TO NUMERIC-EDITED ITEM 
* 
*         REGB = DNAT POINTER TO SOURCE ITEM. 
*         FWASOURC = ADDRESS OF SOURCE ITEM.
*         (SIGNOF,REGB) = 1 IFF SOURCE IS SIGNED. 
*         REGC = DNAT POINTER TO DESTINATION ITEM.
* 
*         CALLZ  C22NE
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
* 
*         USES-  REGU3
*                REGU2
*                REGU1       (BY R12RN (VIA R22RN), AND BY RN2NE) 
  
  
 C22NE    EGO    2
          NOTE   C22NE
  
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
  
          CALLZ  LOADC1C2 
          IFZ    ((NUMLENOF,REGC),GT,14),C22NE1 
  
*      CREATE A DUMMY DNAT
  
          MOVEZ  REGU2,REGT                      ENTRY REGU2 _ DNAT 
*         MOVEZ  0,(POINTOF,REGU2)               (SET BY ADNAT) 
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  VREG1,(TREGOF,REGU2) 
          MOVEZ  (SIGNOF,REGB),(SIGNOF,REGU2) 
  
*      CREATE ANOTHER DUMMY DNAT
  
          MOVEZ  REGU3,REGT                      ENTRY REGU3 _ DNAT 
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGU3) 
          MOVEZ  (POINTOF,REGC),(POINTOF,REGU3) 
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGU3) 
  
*      CONVERT R2 (IN REGU2) TO RN (IN REGU3) 
  
          PUSH   REGB,REGC                       SAVE ORIG. SOURCE, DEST
          MOVEZ  REGU2,REGB                      THIS SOURCE IS REGU2 
          MOVEZ  REGU3,REGC                      THIS DEST. IS REGU3
          CALLZ  R22RN                           CONVERT (REGB) _ (REGC)
          POP    REGB,REGC                       RESTORE
  
*      CONVERT RN (IN REGU3) TO NE (IN REGC)
  
          PUSH   REGB                            SAVE ORIGINAL SOURCE 
          MOVEZ  REGU3,REGB                      THIS SOURCE IS REGU3 
          CALLZ  RN2NE                           CONVERT (REGB) _ (REGC)
          POP    REGB                            RESTORE ORIGINAL SOURCE
  
          CALLZ  SUBDNAT                         DELETE REGU3 DNAT
          CALLZ  SUBDNAT                         DELETE REGU2 DNAT
          RETURN
          SPACE 3 
 C22NE1   LABEL 
*    CREATE DUMMY R4 SOURCE DNAT
          MOVEZ  REGU4,REGT 
          PUSH   REGB 
          MOVEZ  REGT,REGB
          CALLZ  ADNAT
          GEN    XMIT,(VREGOF,VREG2),VREG1
          GEN    MASK,(VREGOF,VREG3),0
          MOVEZ  VREG2,(TREGOF,REGB)
          MOVEZ  1,(SIGNOF,REGB)
*     CREATE DUMMY DESTINATION DNAT 
          MOVEZ  REGU3,REGT 
          CALLZ  ADNAT
          MOVEZ  (NUMLENOF,REGC),(NUMLENOF,REGU3) 
          MOVEZ  (POINTOF,REGC),(POINTOF,REGU3) 
          MOVEZ  (SIGNOF,REGC),(SIGNOF,REGU3) 
*      CONVERT R4 (REGU4) TO RN (REGU3) 
          PUSH   REGC 
          MOVEZ  REGU3,REGC 
          CALLZ  R42RN
          POP     REGC
*     CONVERT RN (REGU3) TO NE (REGC) 
          MOVEZ  REGU3,REGB 
          CALLZ  RN2NE
          POP    REGB 
          CALLZ  SUBDNAT
          CALLZ  SUBDNAT
          RETURN
          SPACE  4
          LISTSEC  C22R1
          TITLE  C22R1 -  COMP-2 TO REGISTER COMP-1 
**        C22R1 -  COMP-2 TO REGISTER COMP-1
* 
*         REGB = DNAT POINTER TO SOURCE ITEM. 
*         (FWA$OF,REGB) = ADDRESS.
*         (POINTOF,REGB) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.   (E.G. PIC 999PP _ 2) 
*         (NUMLENOF,REGB) = NUMBER OF DECIMAL DIGITS. 
*         REGC = DNAT POINTER TO DESTINATION REGISTER.
*         (POINTOF,REGC) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.
* 
*         CALLZ  C22R1
* 
*         GENERATES CODE TO LOAD THE ITEM, CONVERT TO COMP-1, 
*           AND PERFORM ANY NECESSARY SCALING.
*         SETS (TREGOF,REGC) = VIRTUAL REGISTER NUMBER OF RESULT REG. 
* 
*         USES-  REGU1
  
  
 C22R1    EGO    2
          NOTE   C22R1
  
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
  
          CALLZ  LOADC1C2 
  
*      CREATE A DUMMY SOURCE DNAT 
  
          MOVEZ  REGU1,REGT                      ENTRY REGU1 _ DNAT 
          CALLZ  ADNAT                           CREATE DNAT
          MOVEZ  (NUMLENOF,REGB),(NUMLENOF,REGU1) 
          MOVEZ  VREG1,(TREGOF,REGU1) 
*         MOVEZ  0,(POINTOF,REGU1)               (SET BY ADNAT) 
  
*      CONVERT R2 (IN REGU1) TO R1 (IN REGC)
  
          PUSH   REGB                            SAVE ORIGINAL SOURCE 
          MOVEZ  REGU1,REGB                      THIS SOURCE IS REGU1 
          CALLZ  R22R1                           CONVERT (REGB) _ (REGC)
          POP    REGB                            RESTORE ORIGINAL SOURCE
  
          CALLZ  SUBDNAT                         DELETE REGU1 DNAT
  
          RETURN
          SPACE  4
          LISTSEC  C22R2
          TITLE  C22R2 -  COMP-2 TO REGISTER COMP-2 
**        C22R2 -  COMP-2 TO REGISTER COMP-2
* 
*         REGB = DNAT POINTER TO SOURCE ITEM. 
*         (FWA$OF,REGB) = ADDRESS.
*         (POINTOF,REGB) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.   (E.G. PIC 99V9 _ -1) 
*         REGC = DNAT POINTER TO DESTINATION REGISTER.
*         (POINTOF,REGC) = POSITION OF LEAST SIGNIFICANT DIGIT
*           RELATIVE TO DECIMAL POINT.
* 
*         CALLZ  C22R2
* 
*         GENERATES CODE TO LOAD THE ITEM AND PERFORM 
*           ANY NECESSARY SCALING.
*         SETS (TREGOF,REGC) = VIRTUAL REGISTER NUMBER OF RESULT REG. 
  
  
 C22R2    EGO    2
          NOTE   C22R2
  
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
  
          CALLZ  LOADC1C2 
  
*      CREATE TEMPORARY SOURCE DNAT 
          MOVEZ  REGU1,REGT 
          CALLZ  ADNAT
          MOVEZ  VREG1,(TREGOF,REGU1) 
          MOVEZ  (POINTOF,REGB),(POINTOF,REGU1) 
          MOVEZ  (SIGNOF,REGB),(SIGNOF,REGU1) 
          PUSH   REGB 
          MOVEZ  REGU1,REGB 
          CALLZ  R22R2       SCALE R2 IF NECESSARY
          POP    REGB 
          CALLZ  SUBDNAT
  
          RETURN
          SPACE  4
          LISTSEC  C22R4
          TITLE  C22R4 -  COMP-2 TO REGISTER D.P. COMP-2
**        C22R4 -  COMP-2 ITEM TO REGISTER D.P. COMP-2
* 
*         REGB = DNAT POINTER TO SOURCE ITEM. 
*         FWASOURC = ADDRESS OF SOURCE ITEM.
*         REGC = DNAT POINTER TO DESTINATION REGISTERS. 
* 
*         CALLZ  C22R4
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
*         SETS (TREGOF,REGC) = VIRTUAL REGISTER NUMBER OF REGISTER
*           CONTAINING MOST SIGNIFICANT PART OF RESULT. 
*         (TREGP1OF,REGC) WILL CONTAIN VIRTUAL REGISTER NUMBER OF 
*           REGISTER CONTAINING LEAST SIGNIFICANT PART OF RESULT. 
  
  
 C22R4    EGO    2
          NOTE   C22R4
  
*      LOAD THE SOURCE WORD INTO REGISTER VREG1 
  
          CALLZ  LOADC1C2                                  VREG1
  
*      CREATE TEMPORARY SOURCE DNAT 
          MOVEZ  REGU1,REGT 
          CALLZ  ADNAT
          MOVEZ  VREG1,(TREGOF,REGU1) 
          MOVEZ  (POINTOF,REGB),(POINTOF,REGU1) 
          MOVEZ  (SIGNOF,REGB),(SIGNOF,REGU1) 
          PUSH   REGB 
          MOVEZ  REGU1,REGB 
          CALLZ  R22R4       SCALE R4 IF NECESSARY
          POP    REGB 
          CALLZ  SUBDNAT
          RETURN
          SPACE  4
          LISTSEC  C22XF
          TITLE  C22XF -  COMP-2 ITEM TO EXTERNAL FLOAT 
**        C22XF -  COMP-2 ITEM TO EXTERNAL FLOAT
* 
*         REGB = REGTABL INDEX FOR DNAT DESCRIBING SOURCE 
*         REGC = REGTABL INDEX FOR DNAT DESCRIBING DESTINATION. 
* 
*         CALLZ  C22XF
* 
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
  
  
 C22XF    EGO    2
  
*      LOAD C2 (IN REGB) INTO R2 (IN REGISTER VREG1)
  
          NOTE   C22XF
          CALLZ  LOADC1C2 
  
*      CONVERT R2 (IN REGISTER VREG1) TO XF (IN REGC) 
  
          NOTE   C22XF1 
          GEN    SBBPB,(VREGOF,VREG2)            0
          GEN    SBBPK,(VREGOF,VREG3),,(BCPOF,REGC) 
          GEN    SBBPK,(VREGOF,VREG4),,((FWA$OF,REGC))
          GENOBJ N=C.R22XF,I=(VREG1,VREG2,VREG3,VREG4)
  
          RETURN
          LISTSEC * 
          TITLE  C42ND -  COMP-4 ITEM TO NUMERIC DISPLAY
          END 
