.TITLE TPLOT- VECTOR PLOT ROUTINE .IDENT /18NOV7/ ;17:00, MK ; .ENTRY TPLOT - VECTOR PLOT ROUTINE ;+ ; T P L O T ; ; PURPOSE: VECTOR PLOT ROUTINE-PART OF TEKTRONIX 4010 PLOTTING PKG ; ; INTERFACE: CALLING SEQUENCE: (FORTRAN-CALLABLE SUBROUTINE) ; CALL TPLOT(MODE,IX,IY) ; INPUT: MODE=0, MOVE WITH "PEN" UP TO IX,IY ; MODE=1, MOVE WITH "PEN" DOWN TO IX,IY ; MODE=-1,PUT A POINT AT IX,IY ; IX,IY=X,Y COORDINATES (0-1023) ; ; METHOD: MOVES BEAM TO (IX,IY) AND INTENSIFIES ACCORDING ; TO VALUE OF MODE: ; MODE=0: DARK VECTOR TO (IX,IY) ; MODE>0: BRIGHT VECTOR TO (IX,IY), UNLESS ; GRAPHIC MODE HAD TO BE ENTERED. IN THIS CASE, ; MODE>0 HAS THE SAME EFFECTS AS MODE=0. ; MODE<0: POINT AT (IX,IY). ; ; LANGUAGE: MACRO-11 ;- ; REVISIONS: ; MM/MK WRITTEN ; 02-SEP-76 MK PADDING ADDED TO KEEP POINTS FROM ; STREAKING ON SERIAL TERMINALS. ; 26-JAN-77 MK INCREASE PADDING TO 3. ; 31-MAY-77 EM UPDATED TO CONFORM TO STANDARDS. ; 18-NOV-77 MK ADD IHAR$S MACRO CALL ; .MCALL PUSH,POP,IHAR$S PAD=3 ;NUMBER OF PADS FOR POINT PLOT TPLOT:: PUSH IHAR$S ;INHIBIT AST'S MOV CH.IN,R0 ;GET ADDRESS IN BUFFER TST @2(R5) ;BRIGHT VECTOR REQUESTED? BLE 1$ ;NO TST CH.MOD ;IN GRAPHICS MODE? BNE 2$ ;YES 1$: MOV #-1,CH.MOD ;SET GRAPHICS MODE (SOFTWARE) MOVB #GS,(R0)+ ;SET GRAPHICS MODE (HARDWARE) 2$: MOV #^D780,R2 ;Y LIMIT MOV @6(R5),R1 ;YCOORDINATE JSR PC,HIOUT ;HIGH BYTE OF Y IN BUFFER BIS #140,R2 ;SET LOW Y TAG MOVB R2,(R0)+ ;LOW Y IN BUFFER MOV #^D1023,R2 ;X LIMIT MOV @4(R5),R1 ;X COORDINATE JSR PC,HIOUT ;HIGH BYTE OF X IN BUFFER BIS #100,R2 ;SET LOW X TAG MOVB R2,(R0)+ ;LOW X IN BUFFER TST @2(R5) ;POINT PLOT? BGE 3$ ;NO - RETURN .REPT PAD CLRB (R0)+ .ENDM MOVB R2,(R0)+ ;REPEAT LOW X 3$: JSR PC,CHO POP RTS PC .PAGE ; ;OUTPUT HIGH BYTE OF COORDINATE ; HIOUT: BGE 1$ ;<0 CLR R1 1$: CMP R1,R2 ;>LIMIT BLE 2$ MOV R2,R1 ;YES SET TO LIMIT 2$: MOV R1,R2 ASH #3,R2 ;POSITION HIGH BYTE SWAB R2 BIC #177740,R2 ;CLEAN UP BIS #40,R2 ;SET HIGH TAG MOVB R2,(R0)+ ;PUT IN OUTPUT BUFFER MOV R1,R2 BIC #177740,R2 ;CLEAN UP LOW BYTE RTS PC .END