.TITLE VMOV MOVE ONE VECTOR INTO ANOTHER .IDENT /1.0/ ; 08/15/79 ;+ ++EXTSPC>> ;.NAME VMOV ;INDEX VMOVD ;.TITLE SUBROUTINE VMOV ; ; CALL VMOV (C,A,N) ; ; CALL VMOVD (C,A,N) ; ; VERSION: VECTOR / MATRIX ROUTINES SAM MILLER REL 1.0 ; ; FUNCTION: ; ; MOVE A VECTOR TO ANOTHER VECTOR ; ; C = A ; ; ; LANGUAGE: MACRO-11 ; ; ; ARGUMENTS: ; ; C = OUTPUT VECTOR ; N = VECTOR DIMENSION ; A = INPUT VECTOR ; ; ; COMMONS: ; ; (NONE) ; ; ; GENERAL DESCRIPTION: ; ; ALL REAL ARGUMENTS EXCEPT INTEGER N. ; ; SINGLE PRECISION - VMOV ; ; DOUBLE PRECISION - VMOVD ; ; ; A AND C MUST NOT OVERLAP ; ; ; PERIPHERAL INPUT/OUTPUT: ; ; (NONE) ; ; ; LOGICAL UNIT USAGE: ; ; (NONE) ; ; ; EXTERNAL ROUTINES CALLED: ; ; NAM$ ; $BOMB ; ;- --EXTSPC>> ; ; WRITTEN BY: ; ; DENIS MAHONY AND SAM MILLER 08/15/79 ; ; ; MODIFIED BY: ; ; ********** **DATE** ; **DETAIL** ; ;- --EXTSPC>> .PAGE .GLOBL VMOV .ENABL LSB ; VMOV: CMP #3,(R5)+ ;CHECK NUMBER OF ARGUMENTS BNE BOMB ;BOMB IF # OF ARGS. IS INCORRECT MOV (R5)+,R0 ;R0=ADDRESS OF C MOV (R5)+,R1 ;R1=ADDRESS OF A MOV @(R5),R2 ;R2=N ; LOOP TO MOVE VECTOR 10$: MOV (R1)+,(R0)+ ;C(I)=A(I) SOB R2,10$ ;DONE? RTS PC ;RETURN BOMB: MOV #104600,-(SP) ;MOVE 2ND HALF OF NAME TO STACK MOV #105627,R4 ;MOVE 1ST HALF OF NAME TO R4 JSR R4,NAM$ ;SUBR TO PUT NAME IN WALKBACK JMP $BOMB ;ABORT, $BOMB DOES NOT EXIST .END