*DECK GMOVE 
          IDENT  GMOVE
          TITLE  GMOVE -  GENERATE MOVES
  
          MACHINE  ANY,I
          SST 
          COMMENT  GENERATE MOVES 
          SPACE  4
**        GMOVE - GENERATE MOVES
* 
* GMOVE   LINK   CGMOVE 
* 
*         REGB = DNAT POINTER TO SOURCE.
*         REGC = DNAT POINTER TO DESTINATION
* 
*         CALLZ  GMOVE
* 
*         GENERATES CODE TO PERFORM THE INDICATED MOVE. 
  
  
  
*      COMDECKS 
  
  
  
  
  
 CONTROL  OPSYN  NIL
  
  
  
  
*CALL CCT 
  
          TITLE  MOVE MAIN CONTROL
  
 GMOVE    MODULE
  
*      REGTABLE EQUATES 
  
  
 MOVEREGA EQU    REGB 
 MOVEREGB EQU    REGC 
 MOVEREGD EQU    REGQ 
 MOVEREGE EQU    REGR 
 MOVEREGF EQU    REGS 
 MOVEREGM EQU    REGM 
  
  
*      ERROR EQUATES
  
 MOVEERR1 EQU    4301 
 MOVEERR2 EQU    4302 
 MOVEERR3 EQU    4303 
 MOVEERR4 EQU    4304 
 MOVEERR5 EQU    4305 
  
*      LINKAGE FROM CALLING ROUTINES IN OTHER MODULES 
  
 CGMOVE   KNIL   CGMOVE      * FROM MAIN VERB LOOP
 MOVER    KNIL   GMOVER            * FROM ARITHMETICS AND CONDITIONALS
 MOVES    KNIL   MOVES
  
*      LINKAGE TO CALLED ROUTINES IN OTHER MODULES
  
 ADPDNAT  LINK   ADPDNAT     * TO CGSTART 
 AN2AE    LINK   CGAN2AE     * TO GMOVAN
 AN2AN    LINK   CGAN2AN     * TO GANMOVE 
 AN2C1    LINK   CGAN2C1
 AN2C2    LINK   CGAN2C2
 AN2C4    LINK   CGAN2C4
 AN2ND    LINK   CGAN2ND
 AN2NE    LINK   CGAN2NE
 AN2BD    LINK   CGBD2BD
 AN2EC    LINK   CGAN2EC     * TO GMOVECS 
 AN2RA    LINK   CGAN2RA     * TO GMOVAN
 AN2VG    LINK   CGAN2VG
 BD2AN    LINK   CGAN2AN
 BD2AE    LINK   CGAN2AE
 BD2BD    LINK   CGBD2BD
 C12AE    LINK   CGC12AE     * TO GMOVC1
 C12AN    LINK   CGC12AN     * TO GMOVC1
 C12C1    LINK   CGC12C1     * TO GMOVC1
 C12C2    LINK   CGC12C2     * TO GMOVC1
 C12C4    LINK   CGC12C4     * TO GMOVC1
 C12ND    LINK   CGC12ND     * TO GMOVC1
 C12NE    LINK   CGC12NE     * TO GMOVC1
 C12R1    LINK   CGC12R1     * TO GMOVC1
 C12R2    LINK   CGC12R2     * TO GMOVC1
 C12R4    LINK   CGC12R4     * TO GMOVC1
 C22C1    LINK   CGC22C1     * TO GMOVC2
 C22C2    LINK   CGC22C2     * TO GMOVC2
 C22C4    LINK   CGC22C4     * TO GMOVC2
 C22ND    LINK   CGC22ND     * TO GMOVC2
 C22NE    LINK   CGC22NE     * TO GMOVC2
 C22R1    LINK   CGC22R1     * TO GMOVC2
 C22R2    LINK   CGC22R2     * TO GMOVC2
 C22R4    LINK   CGC22R4     * TO GMOVC2
 C22XF    LINK   CGC22XF     * TO GMOVC2
 C42AE    LINK   CGC42AE     * TO GMOVC4
 C42AN    LINK   CGC42AN     * TO GMOVC4
 C42C1    LINK   CGC42C1     * TO GMOVC4
 C42C2    LINK   CGC42C2     * TO GMOVC4
 C42C4    LINK   CGC42C4     * TO GMOVC4
 C42ND    LINK   CGC42ND     * TO GMOVC4
 C42NE    LINK   CGC42NE     * TO GMOVC4
 C42R1    LINK   CGC42R1     * TO GMOVC4
 C42R2    LINK   CGC42R2     * TO GMOVC4
 C42R4    LINK   CGC42R4
 ND2C4    LINK   ND2C4       * TO GMOVC4
 C42ND    LINK   CGC42ND     * TO GMOVC4
 EC2AN    LINK   CGEC2AN     * TO GMOVECS 
 EC2EC    LINK   CGEC2EC     * TO GMOVECS 
 GMOVSZ1  LINK   CGMVSZ1     * TO GMOVSUB 
 GMOVSZ3  LINK   CGMVSZ3     * TO GMOVSUB 
 LI2EC    LINK   CGLI2EC     * TO GMOVECS 
 LI2AE    LINK   CGLI2AE     * TO GMOVLIT 
 LI2AN    LINK   CGLI2AN     * TO GMOVLIT 
 LI2BD    LINK   CGLI2BD
 LI2C1    LINK   CGLI2C1     * TO GMOVLIT 
 LI2C2    LINK   CGLI2C2     * TO GMOVLIT 
 LI2C4    LINK   CGLI2C4     * TO GMOVLIT 
 LI2ND    LINK   CGLI2ND     * TO GMOVLIT 
 LI2NE    LINK   CGLI2NE     * TO GMOVLIT 
 LI2RA    LINK   CGLI2RA     * TO GMOVLIT 
 LI2RN    LINK   CGLI2RN     * TO GMOVLIT 
 LI2R1    LINK   CGLI2R1     * TO GMOVLIT 
 LI2R2    LINK   CGLI2R2     * TO GMOVLIT 
 LI2R4    LINK   CGLI2R4     * TO GMOVLIT 
 ND2AE    LINK   CGND2AE     * TO GMOVND
 ND2AN    LINK   CGND2AN     * TO GMOVND
 ND2C1    LINK   CGND2C1     * TO GMOVND
 ND2C2    LINK   CGND2C2     * TO GMOVND
 ND2ND    LINK   CGND2ND     * TO GMOVND
 ND2NE    LINK   CGND2NE     * TO GMOVND
 ND2RA    LINK   CGND2RA     * TO GMOVND
 ND2RN    LINK   CGND2RN     * TO GMOVLOD 
 ND2R1    LINK   CGND2R1     * TO GMOVND
 ND2R2    LINK   CGND2R2     * TO GMOVND
 ND2R4    LINK   CGND2R4     * TO GMOVND
 RA2AE    LINK   CGRA2AE     * TO GMOVRA
 RA2AN    LINK   CGRA2AN     * TO GMOVRA
 RN2AE    LINK   CGRN2AE     * TO GMOVRN
 RN2AN    LINK   CGRN2AN     * TO GMOVRN
 RN2C1    LINK   CGRN2C1     * TO GMOVRN
 RN2C2    LINK   CGRN2C2     * TO GMOVRN
 RN2ND    LINK   CGRN2ND     * TO GMOVSTO 
 RN2NE    LINK   CGRN2NE     * TO GMOVRN
 RN2RN    LINK   CGRN2RN     * TO GMOVSCA 
 RN2R1    LINK   CGRN2R1     * TO GMOVRN
 RN2R2    LINK   CGRN2R2     * TO GMOVRN
 RN2R4    LINK   CGRN2R4     * TO GMOVRN
 R12AE    LINK   CGR12AE     * TO GMOVR1
 R12AN    LINK   CGR12AN     * TO GMOVR1
 R12C1    LINK   CGR12C1     * TO GMOVR1
 R12C2    LINK   CGR12C2     * TO GMOVR1
 R12C4    LINK   CGR12C4     * TO GMOVR1
 R12ND    LINK   CGR12ND     * TO GMOVR1
 R12NE    LINK   CGR12NE     * TO GMOVR1
 R12RN    LINK   CGR12RN     * TO GMOVR1
 R12R1    LINK   CGR12R1     * TO GMOVR1
 R12R2    LINK   CGR12R2     * TO GMOVR1
 R12R4    LINK   CGR12R4     * TO GMOVR1
 R22C1    LINK   CGR22C1     * TO GMOVR2
 R22C2    LINK   CGR22C2     * TO GMOVR2
 R22C4    LINK   CGR22C4     * TO GMOVR2
 R42C4    LINK   CGR42C4
 RN2C4    LINK   CGRN2C4
 R22ND    LINK   CGR22ND     * TO GMOVR2
 R22NE    LINK   CGR22NE     * TO GMOVR2
 R22RN    LINK   CGR22RN     * TO GMOVR2
 R22R1    LINK   CGR22R1     * TO GMOVR2
 R22R2    LINK   CGR22R2     * TO GMOVR2
 R22R4    LINK   CGR22R4     * TO GMOVR2
 R42C1    LINK   CGR42C1     * TO GMOVR4
 R42C2    LINK   CGR42C2     * TO GMOVR4
 R42ND    LINK   CGR42ND     * TO GMOVR4
 R42NE    LINK   CGR42NE     * TO GMOVR4
 R42RN    LINK   CGR42RN     * TO GMOVR4
 R42R1    LINK   CGR42R1     * TO GMOVR4
 R42R2    LINK   CGR42R2     * TO GMOVR4
 R42R4    LINK   CGR42R4     * TO GMOVR4
 VG2AN    LINK   CGVG2AN     * TO GMOVVG
 VG2RA    LINK   CGVG2RA     * TO GMOVVG
  
          QUAL   LINK        FOR LABELS AFTER GMOVE+4000B 
 R42R1    EQU    0
 R42R2    EQU    0
 R42RN    EQU    0
 SA2RA    EQU    0
          QUAL   *
  
          EJECT 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*      THIS IS THE MOVE VERB PROCESSOR                                * 
*                                                                     * 
*      FOLLOWING ARE THE CONVENTIONS AND OTHER USEFUL INFORMATION     * 
*      USED IN  CODING THIS PROCESSOR:                                * 
*                                                                     * 
*      . THE TABLE CALL AND EQUATE SECTION APPEARS AT THE  BEGINNING  * 
*        OF THE MODULE, AND IS ORDERED AS FOLLOWS.                    * 
*        1. REQUIRED CALL TO SYMCOMP COMDECK.                         * 
*        2. SYSTEM TABLE COMDECKS CALLED AS NEEDED, IN THE ORDER IN   * 
*           WHICH THEY APPEAR ON THE UPDATE LIBRARY.                  * 
*        3. REQUIRED CALLS TO CGENP1 AND CGENP2 COMDECKS.             * 
*        4. REQUIRED MODULE COMMAND FOR THE MODULE.                   * 
*        5. REG TABLE EQUATES.                                        * 
*        5K. FIXED TABLE EQUATES.                                     * 
*        6. ERROR EQUATES.                                            * 
*        7. MISCELLANEOUS EQUATES.                                    * 
*        8. LINKAGE FROM CALLING ROUTINES.                            * 
*        9. LINKAGE TO CALLED ROUTINES.                               * 
*        10. SETSY FORMAT 1 AND 2 COMMANDS.                           * 
*        11. SETSY FORMAT 3 COMMANDS.                                 * 
*        12. MAIN HEADER BLOCK FOR THE MODULE.                        * 
*      . ERROR NUMBERS FOR ERROR MACRO CALLS ARE A 4 TO 5-DIGIT       * 
*        NUMBER, INCLUDING THE 2 TO 3-DIGIT VERB NUMBER IN GTEXT      * 
*        FOLLOWED BY A 2-DIGIT SEQUENTIAL NUMBER.                     * 
*      . MAJOR SECTION HEADERS ARE BLOCKED.                           * 
*      . MINOR COMMENT CARDS ARE PRECEEDED AND FOLLOWED BY A BLANK    * 
*        CARD.                                                        * 
*      . THE TEST FOR A CONDITION  PRECEDES THE HEADER COMMENTS FOR   * 
*        THE TRUE PATH, AS DOES THE LABEL PRECEDE THE HEADER COMMENTS * 
*        FOR THE FALSE PATH.                                          * 
*      . ARITHMETIC FUNCTIONS ARE CALLED ARITH1, ETC. AND EACH USE IS * 
*        PRECEEDED BY A COMMENT INDICATING THE COMPUTATION PERFORMED. * 
*      . STANDARD COLUMN SETTINGS OF 2, 11, 18, AND 30 ARE USED.      * 
*      . COMMENTS ON COMMENT CARDS BEGIN IN COLUMN 8.                 * 
*      . COMMENTS ON COMMENT CARDS WHICH EXPLAIN FUNCTION CALLS BEGIN * 
*        IN  COLUMN 20.                                               * 
*      . BCP MEANS BEGINNING CHARACTER POSITION.                      * 
*      . BCP(REG) MEANS BCP OF ITEM INDICATED BY SPECIFIED REG TABLE  * 
*        ENTRY.                                                       * 
*      . NOTE LOGICAL OPERATOR NAMES ARE EQ, GR, LT, GE, LE, AND NE.  * 
*      . DATA NAME SHORTHAND--                                        * 
*        AN    ALPHANUMERIC        AL    ALPHABETIC                   * 
*        AE    ALPHANUM. EDITED    AB    ALPHABETIC EDITED            * 
*        ND    NUMERIC DISPLAY     C1    COMPUTATIONAL-1              * 
*        NE    NUMERIC EDITED      C2    COMPUTATIONAL-2              * 
*        RA    ALPHANUMERIC (REG)  R1    COMPUTATIONAL-1 (REG)        * 
*        RN    NUMERIC (REG)       R2    COMPUTATIONAL-2 (REG) S.P.   * 
*        SA    SUBSCR ALPHANUMERIC R4    COMPUTATIONAL-2 (REG) D.P.   * 
*        VG    VARIABLE GROUP      LI    LITERAL                       *
*        EC    SEC STORAGE (ECS)   SE    SUBSCR SEC STORAGE (ECS)      *
*        XF  EXTERNAL FLOAT                                           * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  
 CGMOVE   EGO    1
 MOVER    EGO    1           *** TEMPORARY ***
  
*      SET SUBSCRIPTED FLAGS FOR ALL MOVE PROCESSORS
  
  
*      CHECK TO SEE IF ON SIZE ERROR CODE NEEDS TO BE GENERATED 
  
          CALLZ  GMOVSZ1
  
*      CALL THE PROCESSOR FOR THE TYPE OF MOVE TO BE DONE.
*      EACH COMBINATION OF SOURCE AND RECEIVING OPERAND TYPE IS HANDLED 
*      BY A SPECIAL PROCESSOR.
  
          CALLZ  MOVES
  
*      CHECK TO SEE IF ON SIZE ERROR CODE WAS GENERATED 
  
          CALLZ  GMOVSZ3
  
          RETURN
          SPACE  4
          LISTSEC  MOVES
MOVES     EJECT 
**        MOVES - CALL BRANCH MATRIX ACCORDING TO ECS/LITERAL/CORE/REG
* 
*         THE PRIMARY CONSIDERATION IN SEPARATING THE INDIVIDUAL CASES
*         IS WHETHER AN ITEM IS A LITERAL, IN ECS, IN CORE OR IN A
*         REGISTER.  THIS WE HAVE TEN BRANCH MATRICES:  
* 
*                CORE_CORE
*                CORE_REGISTER
*                CORE_ECS 
*                LITERAL_CORE 
*                LITERAL_REGISTER 
*                LITERAL_ECS
*                REGISTER_REGISTER
*                REGISTER_CORE
*                ECS_CORE 
*                ECS_ECS
  
  
 MOVES    EGO    2
          MOVEZ  (GSCODEOF,MOVEREGA),SENDSUBS 
          MOVEZ  (GSCODEOF,MOVEREGB),RECSUBS
          IFZ    ((GCODEOF,MOVEREGA),EQ,GLITREF),MOVES5      IF SRC=LIT 
          IFZ    ((LEVELOF,MOVEREGA),EQ,TEMPLEVL),MOVES3     IF SRC=REG 
          IFZ    ((MAJMSCOF,MOVEREGA),EQ,SECSMSEC),MOVES8    IF SRC=ECS 
  
*                            SOURCE IS IN CORE
  
          IFZ    ((LEVELOF,MOVEREGB),EQ,TEMPLEVL),MOVES1    IF DEST=REG 
          IFZ    ((MAJMSCOF,MOVEREGB),EQ,SECSMSEC),MOVES2    IF REC=ECS 
  
*                            SOURCE IS IN CORE, DESTINATION IS REGISTER 
          CALLZ  MOVECC                CORE_CORE BRANCH MATRIX
          RETURN
  
  
 MOVES1   LABEL              SOURCE IS IN CORE, DESTINATION IS REGISTER 
          CALLZ  MOVECR                CORE_REGISTER BRANCH MATRIX
          RETURN
          SPACE  2
 MOVES2   LABEL              SOURCE IS IN CORE, DESTINATION IS IN ECS 
          CALLZ  MOVECE                CORE_ECS BRANCH MATRIX 
          RETURN
  
  
*                            SOURCE IS REGISTER 
 MOVES3   LABEL 
          IFZ    ((LEVELOF,MOVEREGB),EQ,TEMPLEVL),MOVES4    IF DEST=REG 
*                            SOURCE IS REGISTER, DESTINATION IS IN CORE 
          CALLZ  MOVERC                REGISTER_CORE BRANCH MATRIX
          RETURN
  
  
 MOVES4   LABEL              SOURCE IS REGISTER, DESTINATION IS REGISTER
          CALLZ  MOVERR                REGISTER_REGISTER BRANCH MATRIX
          RETURN
  
  
*                            SOURCE IS LITERAL
 MOVES5   LABEL 
          IFZ    ((LEVELOF,MOVEREGB),EQ,TEMPLEVL),MOVES6    IF DEST=REG 
          IFZ    ((MAJMSCOF,MOVEREGB),EQ,SECSMSEC),MOVES7   IF DEST=ECS 
          CALLZ  MOVELC                LITERAL_CORE BRANCH MATRIX 
          RETURN
  
  
*                            SOURCE IS LITERAL, DESTINATION IS REGISTER 
 MOVES6   LABEL 
          CALLZ  MOVELR                LITERAL_REGISTER BRANCH MATRIX 
          RETURN
  
*                            SOURCE IS LITERAL, DESTINATION IS IN ECS 
 MOVES7   LABEL 
          CALLZ  MOVELE                LITERAL_ECS BRANCH MATRIX
          RETURN
          SPACE  2
*                            SOURCE IS IN ECS 
 MOVES8   LABEL 
          IFZ    ((MAJMSCOF,MOVEREGB),EQ,SECSMSEC),MOVES9    IF DEST=ECS
          CALLZ  MOVEEC                ECS_CORE BRANCH MATRIX 
          RETURN
          SPACE  2
 MOVES9   LABEL              SOURCE IS IN ECS, DESTINATION IS IN ECS
          CALLZ  MOVEEE                ECS_ECS BRANCH MATRIX
          RETURN
MOVECC    EJECT 
**        MOVECC -  BRANCH MATRIX FOR CORE TO CORE MOVE 
* 
*         THE SECOND  CONSIDERATION IN SEPARATING THE CASES IS
*         THE TYPE OF THE SENDING AND DESTINATION ITEM. 
* 
*         THE THIRD CONSIDERATION IS SUBSCRIPTING,
*         WHICH IS HANDLED IN EACH PROCESSOR
  
  
 MOVECC   LABEL 
*                            BRANCH ACCORDING TO TYPE OF SOURCE 
          GOTOCASE  (TYPEOF,MOVEREGA) 
            CASE    ALPHABET,MOVECC1
            CASE    ALPHEDIT,MOVECC1
            CASE    ALPHNUM,MOVECC1 
            CASE    ALPNUMED,MOVECC1
            CASE    COMP,MOVECC2
            CASE    NUMEDIT,MOVECC5 
            CASE    COMP1,MOVECC3 
            CASE    COMP2,MOVECC4 
            CASE    COMP4,MOVECC7 
            CASE    GROUP,AN2AN 
            CASE    INDXDATA,MOVECC3
            CASE   VARGROUP,VG2AN 
            CASE    BOOLBIT,MOVECC8 
            CASE    BOOLDSP,MOVECC9 
            ENDCASE 
          ERROR  MOVEERR1 
          RETURN
  
  
*                            SOURCE IS ALPHABETIC 
*                                      ALPHABETIC EDITED
*                                      ALPHANUMERIC 
*                                      ALPHANUMERIC EDITED
*                                      NUMERIC EDITED 
 MOVECC1  LABEL 
*                            ALLOW SOURCE TO BE TREATED AS UNSIGNED INT.
          MOVEZ  (BYTLENOF,REGB),(NUMLENOF,REGB)
          MOVEZ  0,(SIGNOF,REGB)                 UNSIGNED 
          MOVEZ  0,(POINTOF,REGB)                INTEGER
 MOVECC5  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,AN2AN
            CASE    ALPHEDIT,AN2AE
            CASE    ALPHNUM,AN2AN 
            CASE    ALPNUMED,AN2AE
            CASE   COMP,AN2ND 
            CASE   COMP1,AN2C1
            CASE   COMP2,AN2C2
            CASE   COMP4,AN2C4
            CASE   INDXDATA,AN2C1 
            CASE   NUMEDIT,AN2NE
            CASE    GROUP,AN2AN 
            CASE    VARGROUP,AN2AN
            CASE   BOOLDSP,AN2BD
            ENDCASE 
          ERROR  MOVEERR2 
          RETURN
  
  
*                            SOURCE IS NUMERIC DISPLAY
 MOVECC2  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHNUM,ND2AN 
            CASE    ALPNUMED,ND2AE
            CASE    COMP,ND2ND
            CASE   COMP1,ND2C1
            CASE    COMP2,ND2C2 
            CASE    COMP4,ND2C4 
            CASE    INDXDATA,ND2C1
            CASE    NUMEDIT,ND2NE 
            CASE    GROUP,AN2AN 
            CASE   VARGROUP,AN2VG 
            ENDCASE 
          ERROR  MOVEERR3 
          RETURN
  
  
*                            SOURCE IS COMPUTATIONAL-1
 MOVECC3  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHNUM,C12AN 
            CASE    ALPNUMED,C12AE
            CASE    COMP,C12ND
            CASE    COMP1,C12C1 
            CASE    COMP2,C12C2 
            CASE    COMP4,C12C4 
            CASE    INDXDATA,C12C1
            CASE    NUMEDIT,C12NE 
            CASE    GROUP,AN2AN 
            CASE    VARGROUP,AN2AN
            ENDCASE 
          ERROR  MOVEERR4 
          RETURN
  
*                            SOURCE IS COMPUTATIONAL-2
 MOVECC4  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    COMP,C22ND
            CASE    COMP1,C22C1 
            CASE    COMP2,C22C2 
            CASE    COMP4,C22C4 
            CASE    EXTFLOAT,C22XF
            CASE    INDXDATA,C22C1
            CASE    NUMEDIT,C22NE 
            CASE    GROUP,AN2AN 
            CASE    VARGROUP,AN2AN
            ENDCASE 
          ERROR  MOVEERR5 
          RETURN
  
  
  
*                            SOURCE IS COMP-4 
 MOVECC7  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE   ALPHNUM,C42AN
            CASE   ALPNUMED,C42AE 
            CASE   COMP,C42ND 
            CASE   COMP1,C42C1
            CASE   COMP2,C42C2
            CASE   COMP4,C42C4
            CASE   INDXDATA,C42C1 
            CASE   NUMEDIT,C42NE
            CASE   GROUP,AN2AN
            CASE   VARGROUP,AN2AN 
            ENDCASE 
            ERROR 
            ENDCASE 
          ERROR 
          RETURN
          SPACE  3
*                            SOURCE IS BOOLEAN BIT
 MOVECC8  LABEL 
          ERROR 
          SPACE  3
*                            SOURCE IS BOOLEAN DISPLAY
 MOVECC9  LABEL 
          GOTOCASE (TYPEOF,MOVEREGB)
            CASE   ALPHNUM,BD2AN
            CASE   ALPNUMED,BD2AE 
            CASE   BOOLDSP,BD2BD
            CASE   GROUP,AN2AN
          ENDCASE 
          ERROR 
  
MOVECR    EJECT 
**        MOVECR -  BRANCH MATRIX FOR CORE TO REGISTER MOVE 
* 
* 
  
  
 MOVECR   LABEL 
*                            BRANCH ACCORDING TO TYPE OF SOURCE 
          GOTOCASE  (TYPEOF,MOVEREGA) 
            CASE    ALPHABET,MOVECR1
            CASE    ALPHEDIT,MOVECR1
            CASE    ALPHNUM,MOVECR1 
            CASE    ALPNUMED,MOVECR1
            CASE    COMP,MOVECR2
            CASE    NUMEDIT,AN2RA 
            CASE    COMP1,MOVECR3 
            CASE    COMP2,MOVECR4 
            CASE    COMP4,MOVECR5 
            CASE    GROUP,AN2RA 
            CASE    INDXDATA,MOVECR3
            CASE    VARGROUP,VG2RA
            CASE   BOOLDSP,AN2RA
            CASE   BOOLBIT,AN2RA
            ENDCASE 
          ERROR  MOVEERR1 
          RETURN
  
  
*                            SOURCE IS ALPHABETIC 
*                                      ALPHABETIC EDITED
*                                      ALPHANUMERIC 
*                                      ALPHANUMERIC EDITED
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
 MOVECR1  LABEL 
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,AN2RA
            CASE    ALPHNUM,AN2RA 
            CASE    COMP,ND2RN
            CASE    COMP1,ND2R1 
            CASE    COMP2,ND2R2 
            CASE    COMP4,ND2R1 
            CASE    INDXDATA,ND2R1
            ENDCASE 
          ERROR  MOVEERR2 
          RETURN
  
  
*                            SOURCE IS NUMERIC DISPLAY
 MOVECR2  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHNUM,ND2RA 
            CASE    COMP,ND2RN
            CASE    COMP1,ND2R1 
            CASE    COMP2,ND2R2 
            CASE    COMP4,ND2R1 
            CASE    DPCOMP2,ND2R4 
            CASE    INDXDATA,ND2R1
            ENDCASE 
          ERROR  MOVEERR3 
          RETURN
  
  
*                            SOURCE IS COMPUTATIONAL-1
 MOVECR3  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    COMP1,C12R1 
            CASE    COMP2,C12R2 
            CASE    COMP4,C12R1 
            CASE    DPCOMP2,C12R4 
            CASE    INDXDATA,C12R1
            ENDCASE 
          ERROR  MOVEERR4 
          RETURN
  
*                            SOURCE IS COMPUTATIONAL-2
 MOVECR4  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    COMP2,C22R2 
            CASE    DPCOMP2,C22R4 
            ENDCASE 
          ERROR  MOVEERR4 
          RETURN
*                            SOURCE IS COMPUTATIONAL-4
 MOVECR5  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE   COMP1,C42R1
            CASE   COMP2,C42R2
            CASE   COMP4,C42R1
            CASE   DPCOMP2,C42R4
            ENDCASE 
          ERROR  MOVERR4
          RETURN
 MOVECE   EJECT 
**        MOVECE - BRANCH MATRIX FOR CORE TO ECS MOVE 
* 
* 
          SPACE  2
 MOVECE   LABEL 
*                            BRANCH ACCORDING TO TYPE OF SOURCE 
          GOTOCASE  (TYPEOF,MOVEREGA) 
            CASE    ALPHABET,MOVECE1
            CASE    ALPHEDIT,MOVECE1
            CASE    ALPHNUM,MOVECE1 
            CASE    ALPNUMED,MOVECE1
            CASE    GROUP,MOVECE1 
            CASE    NUMEDIT,MOVECE1 
            ENDCASE 
          ERROR  MOVEERR1 
          RETURN
          SPACE  4
*                            SOURCE IS ALPHABETIC 
*                                      ALPHABETIC EDITED
*                                      ALPHANUMERIC 
*                                      NUMERIC EDITED 
*                                      ALPHANUMERIC EDITED
*                                      GROUP
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
 MOVECE1  LABEL 
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,AN2EC
            CASE    ALPHNUM,AN2EC 
            CASE    GROUP,AN2EC 
          ENDCASE 
          ERROR  MOVEERR2 
          RETURN
MOVELC    EJECT 
**        MOVELC -  BRANCH MATRIX FOR LITERAL TO CORE MOVE
* 
* 
  
  
 MOVELC   LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,LI2AN
            CASE    ALPHEDIT,LI2AE
            CASE    ALPHNUM,LI2AN 
            CASE    ALPNUMED,LI2AE
            CASE    COMP,LI2ND
            CASE    COMP1,LI2C1 
            CASE    COMP2,LI2C2 
          CASE   COMP4,LI2C4
            CASE    GROUP,LI2AN 
            CASE    VARGROUP,LI2AN
            CASE    INDXDATA,LI2C1
            CASE    NUMEDIT,LI2NE 
            CASE    BOOLDSP,LI2BD 
            ENDCASE 
          ERROR  MOVEERR1 
          RETURN
MOVELR    EJECT 
**        MOVELR -  BRANCH MATRIX FOR LITERAL TO REGISTER 
* 
* 
  
  
 MOVELR   LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,LI2RA
            CASE    ALPHNUM,LI2RA 
            CASE    COMP,LI2RN
            CASE    COMP1,LI2R1 
            CASE    COMP2,LI2R2 
            CASE   COMP4,LI2R1
            CASE    DPCOMP2,LI2R4 
            CASE    INDXDATA,LI2R1
            ENDCASE 
          ERROR  MOVEERR1 
          RETURN
 MOVELE   EJECT 
**        MOVELE - BRANCH MATRIX FOR LITERAL TO ECS MOVE
* 
* 
          SPACE  2
 MOVELE   LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,LI2EC
            CASE   ALPHNUM,LI2EC
            CASE    GROUP,LI2EC 
          ENDCASE 
          ERROR  MOVERR2
          RETURN
          RETURN
MOVERC    EJECT 
**        MOVERC -  BRANCH MATRIX FOR REGISTER TO CORE MOVE 
* 
* 
  
  
 MOVERC   LABEL 
*                            BRANCH ACCORDING TO TYPE OF SOURCE 
          GOTOCASE  (TYPEOF,MOVEREGA) 
            CASE    ALPHNUM,MOVERC1 
            CASE    COMP,MOVERC2
            CASE    COMP1,MOVERC3 
            CASE    COMP2,MOVERC4 
            CASE    COMP4,MOVERC3 
            CASE    DPCOMP2,MOVERC5 
            CASE    INDXDATA,MOVERC3
            ENDCASE 
          ERROR  MOVEERR1 
          RETURN
  
  
*                            SOURCE IS ALPHANUMERIC REGISTER
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
 MOVERC1  LABEL 
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,RA2AN
            CASE    ALPHEDIT,RA2AE
            CASE    ALPHNUM,RA2AN 
            CASE    ALPNUMED,RA2AE
            CASE    COMP,RN2ND
            CASE    NUMEDIT,RN2NE 
            CASE    COMP1,RN2C1 
            CASE    COMP2,RN2C2 
            CASE   COMP4,RN2C4
            CASE    GROUP,RA2AN 
            CASE    INDXDATA,RN2C1
            ENDCASE 
          ERROR  MOVERR2
          RETURN
  
  
*                            SOURCE IS NUMERIC DISPLAY
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
 MOVERC2  LABEL 
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,RN2AN
            CASE    ALPHNUM,RN2AN 
            CASE    COMP,RN2ND
            CASE    NUMEDIT,RN2NE 
            CASE    COMP1,RN2C1 
            CASE    COMP2,RN2C2 
            CASE   COMP4,RN2C4
            CASE    GROUP,RN2AN 
            CASE    INDXDATA,RN2C1
            CASE    VARGROUP,RN2AN
            ENDCASE 
          ERROR  MOVEERR3 
          RETURN
  
  
*                            SOURCE IS COMPUTATIONAL-1 REGISTER 
 MOVERC3  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHNUM,R12AN 
            CASE    ALPNUMED,R12AE
            CASE    COMP,R12ND
            CASE    NUMEDIT,R12NE 
            CASE    COMP1,R12C1 
            CASE    COMP2,R12C2 
            CASE    COMP4,R12C4 
            CASE    GROUP,R12AN 
            CASE    INDXDATA,R12C1
            CASE    VARGROUP,R12AN
            ENDCASE 
          ERROR  MOVEERR4 
          RETURN
  
  
*                            SOURCE IS COMPUTATIONAL-2 REGISTER 
 MOVERC4  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHNUM,R22ND 
            CASE    COMP,R22ND
            CASE   NUMEDIT,R22NE
            CASE    COMP1,R22C1 
            CASE    COMP2,R22C2 
            CASE    COMP4,R22C4 
            CASE    GROUP,R22ND 
            CASE    INDXDATA,R22C1
            CASE    VARGROUP,R22ND
            ENDCASE 
          ERROR  MOVEERR5 
          RETURN
  
  
*                            SOURCE IS D.P. COMPUTATIONAL-2 REGISTER
 MOVERC5  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    COMP,R42ND
            CASE    COMP1,R42C1 
            CASE    COMP2,R42C2 
            CASE   COMP4,R42C4
            CASE    INDXDATA,R42C1
            CASE    NUMEDIT,R42NE 
            ENDCASE 
          ERROR  MOVEERR5 
          RETURN
MOVERR    EJECT 
**        MOVERR -  BRANCH MATRIX FOR REGISTER TO REGISTER
* 
* 
  
  
 MOVERR   LABEL 
*                            BRANCH ACCORDING TO TYPE OF SOURCE 
          GOTOCASE  (TYPEOF,MOVEREGA) 
            CASE    ALPHNUM,MOVERR1 
            CASE    COMP,MOVERR2
            CASE    COMP1,MOVERR3 
            CASE    COMP2,MOVERR4 
            CASE   COMP4,MOVERR3
            CASE    DPCOMP2,MOVERR5 
            CASE    INDXDATA,MOVERR3
            ENDCASE 
          ERROR  MOVEERR1 
          RETURN
  
  
*                            SOURCE IS ALPHANUMERIC REGISTER
 MOVERR1  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHEDIT,RA2AE
            CASE    ALPNUMED,RA2AE
            ENDCASE 
          ERROR  MOVEERR2 
          RETURN
  
  
*                            SOURCE IS NUMERIC DISPLAY REGISTER 
 MOVERR2  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPNUMED,RN2AE
            CASE    COMP,RN2RN
            CASE    COMP1,RN2R1 
            CASE    COMP2,RN2R2 
            CASE   COMP4,RN2R1
            CASE    DPCOMP2,RN2R4 
            CASE    INDXDATA,RN2R1
            ENDCASE 
          ERROR  MOVEERR3 
          RETURN
  
  
*                            SOURCE IS COMPUTATIONAL-1 REGISTER 
 MOVERR3  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    COMP,R12RN
            CASE    COMP1,R12R1 
            CASE    COMP2,R12R2 
            CASE   COMP4,R12R1
            CASE    DPCOMP2,R12R4 
            CASE    INDXDATA,R12R1
            ENDCASE 
          ERROR  MOVEERR4 
          RETURN
  
  
*                            SOURCE IS COMPUTATIONAL-2 REGISTER 
 MOVERR4  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    COMP,R22RN
            CASE    COMP1,R22R1 
            CASE    COMP2,R22R2 
            CASE   COMP4,R22R1
            CASE    DPCOMP2,R22R4 
            CASE    INDXDATA,R22R1
            ENDCASE 
          ERROR  MOVEERR5 
          RETURN
  
  
*                            SOURCE IS D.P. COMPUTATIONAL-2 REGISTER
 MOVERR5  LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    COMP,R42RN
            CASE    COMP1,R42R1 
            CASE    COMP2,R42R2 
            CASE   COMP4,R42R1
            CASE    DPCOMP2,R42R4 
            CASE    INDXDATA,R42R1
            ENDCASE 
          ERROR  MOVEERR4 
          RETURN
 MOVEEC   EJECT 
**        MOVEEC - BRANCH MATRIX FOR ECS TO CORE MOVE 
* 
* 
          SPACE  2
 MOVEEC   LABEL 
*                            BRANCH ACCORDING TO TYPE OF DESTINATION
          GOTOCASE  (TYPEOF,MOVEREGB) 
            CASE    ALPHABET,EC2AN
            CASE    ALPHNUM,EC2AN 
            CASE    GROUP,EC2AN 
          ENDCASE 
          ERROR  MOVEERR2 
          RETURN
 MOVEEE   EJECT 
**        MOVEEE - BRANCH MATRIX FOR ECS TO ECS MOVES 
* 
* 
          SPACE  2
 MOVEEE   LABEL 
          BRANCH EC2EC
          RETURN
          LISTSEC  *
          END 
