*COMDECK COMMOV 
 MOVEW    CTEXT  COMMOV  -  COMPASS MOVE WHOLE WORDS ROUTINE. 
 MOVEW    SPACE  4,10 
***       MOVEW  -  ROUTINE TO MOVE WHOLE WORDS.
* 
*         ENTRY  (B3) = FROM ADDRESS. 
*                (B4) = WORD COUNT TO BE MOVED. 
*                (B5) = TO ADDRESS. 
* 
*         EXIT   WORDS MOVED. 
* 
*         USES   X - 1, 6 
*                B - 2, 4, 6
*                A - 1, 6 
  
  
 MOV1     SB4    B4+B2       UPDATE TO NEXT INDEX TO MOVE 
          SA1    B3+B4       FETCH NEXT WORD FROM FROMADDR + INDEX
          BX6    X1 
          SA6    B5+B4       STORE THIS WORD AT TOADDR + INDEX
          NE     B4,B6,MOV1  IF NOT REACHED LAST INDEX TO MOVE
  
 MOVEW    SUBR               ENTRY/EXIT 
          EQ     B3,B5,EXIT. IF FROMADDR = TOADDR 
          LE     B4,EXIT.    IF WORD COUNT LE 0 
          GT     B3,B5,MOV2  IF FROMADDR < TOADDR, FORWARD MOVE 
          =B2    -1          INDEX CHANGES BY -1 FOR REVERSE MOVE 
          SB6    B0          LAST INDEX TO MOVE IS 0 FOR REVERSE MOVE 
          EQ     MOV1        GO MOVE THE WORDS
  
 MOV2     =B2    1           INDEX CHANGES BY 1 FOR FORWARD MOVE
          =B6    B4-1        LIMIT FOR FORWARD MOVE IS COUNT - 1
          =B4    -1          INDEX WILL START AT 0 AND RISE TO LIMIT
          EQ     MOV1        GO MOVE THE WORDS
          ENDX
