.TITLE VCLR CLEARS A VECTOR .IDENT /1.0/ ; 08/15/79 ;+ ++EXTSPC>> ;.NAME VCLR ;.INDEX V3CLR ;.INDEX VCLRD ;.INDEX V3CLRD ;.TITLE SUBROUTINE VCLR ; ; CALL VCLR (C,N) ; ; CALL V3CLR (C) ; ; CALL VCLRD (C,N) ; ; CALL V3CLRD (C) ; ; ; VERSION: MATRIX / VECTOR ROUTINES SAM MILLER REL 1.0 ; ; FUNCTION: ; ; CLEARS A VECTOR ; ; C = 0 ; ; ; LANGUAGE: MACRO-11 ; ; ; ARGUMENTS: ; ; C = OUTPUT VECTOR ; N = VECTOR DIMENSION ; ; ; COMMONS: ; ; (NONE) ; ; ; GENERAL DESCRIPTION: ; ; C IS REAL AND N IS INTEGER. ; ; ; ; SINGLE PRECISION - VCLR FOR N-VECTORS ; V3CLR FOR 3-VECTORS ; ; DOUBLE PRECISION - VCLRD FOR N-VECTORS ; V3CLRD FOR 3-VECTORS ; ; ; ; 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 VCLR, V3CLR .ENABL LSB ; F0=R0 ;DEFINE FLOATING REGISTER 0 V3CLR: CMP #1,(R5)+ ;CHECK FOR 1 ARGUMENTS BNE BOMB3 ;BOMB IF # OF ARGS. NE 1 MOV #3,R0 ;R0=N=3 BR 20$ VCLR: CMP #2,(R5)+ ;CHECK FOR 2 ARGUMENTS BNE BOMB ;BOMB IF # OF ARGS. NE 2 MOV @2(R5),R0 ;R0=N 20$: MOV (R5),R4 ;R4=ADDRESS OF C SETF ;SET FLOATING MODE CLRF F0 ;F0=0 ;LOOP TO CLEAR VECTOR 60$: STF F0,(R4)+ ;C(I)=0 SOB R0,60$ ;DONE? RTS PC ;RETURN BOMB3: MOV #46720,-(SP) ;MOVE 2ND HALF OF NAME TO STACK MOV #107253,R4 ;MOVE 1ST HALF OF NAME TO R4 BR 70$ BOMB: MOV #70200,-(SP) ;MOVE 2ND HALF OF NAME TO STACK MOV #105004,R4 ;MOVE 1ST HALF OF NAME TO R4 70$: JSR R4,NAM$ ;SUBR TO PUT NAME IN WALKBACK JMP $BOMB ;ABORT, $BOMB DOES NOT EXIST .END