TITLE 'COPY A TO B WITH COPY SUBROUTINE USING MACROS'
         MACRO
         COPY  &ARRAY1,&ARRAY2,&LENGTH
         LA    1,&ARRAY1
         ST    1,CCB&SYSNDX
         LA    1,&ARRAY2
         ST    1,CCB&SYSNDX+4
         L     1,&LENGTH
         ST    1,CCB&SYSNDX+8
         LA    1,CCB&SYSNDX
         BAL   5,COPY
         B     CCBA&SYSNDX  BRANCH AROUND THE COPY CONTROL BLOCK
         DS    0F
CCB&SYSNDX EQU *
         DS 3F
CCBA&SYSNDX EQU *
         MEND
*
*
P1       START
         BALR  12,0
         USING *,12
         COPY  A,B,=A(ALEN)
         BR    14
         EJECT
COPY     EQU   *
* CCB CONTAINS FIRST ADDR, SECOND ADDR, NO. OF FULLWORDS
*                    +0           +4         +8
* R1 = CCB ON ENTRY
         L     2,0(0,1) R2=FIRST ADDR
         L     3,4(0,1) R3=SECOND ADDR
         L     4,8(0,1) R4=# OF EACH
         SR    9,9
COPY1    EQU   *
         CR    9,4
         BE    COPY2
         L     6,0(0,2)
         ST    6,0(0,3)
         A     2,=F'4'
         A     3,=F'4'
         A     9,=F'1'
         B     COPY1
COPY2    EQU   *
         BR    5          COPY ENDS
*
A        DC    F'1',F'2',F'3',F'4'
ALEN     EQU   (*-A)/4
         DC    F'-1'
B        DS    10F
         END