/CLIN - GRAPHICS OVERLAY FOR FOCAL,ZZK /FINITE DIFFERENCE EQUATION OF A CIRCLE - FOR FOCAL /16.2 S P=X-X0;S Q=Y-Y0;S R=FSQT(Q^2+P^2) /16.3 S Z=FNEW(6.3*R*C,P,Q,X0,Y0,S/R) /16.4 S X0=X;S YO=Y /LINEAR DIFFERENCE EQUATION OF A LINE /17.1 D 16.2;S Z=FNEW(R,P/R,Q/R,X0,Y0,0);D 16.4 BOTTOM=35 FNTABF=373 EVAL=1613 EXP=44 AXIN=10 PUSHJ=4540 EFUN3I=135 INTEGER=53 HORD=45 LORD=46 DXS=6057 DXL=6053 DYS=6067 *BOTTOM FCIN-1 *FNTABF+14 FCIN *4400+40 FCIN, JMS I INTEGER CMA DCA R /SAVE THE POINT COUNT TAD XXP DCA AXIN /START DATA POINTERS TAD M5 /FOR 5 MORE ITEMS DCA CT GETA, PUSHJ /COMPUTE EACH ARG EVAL-1 TAD EXP /FOUR FIXED POINT RESULTS TAD LP DCA EXP JMS I INTEGER CLA TAD P13 /SAVE UNNORMALIZED FORM DCA I AXIN TAD HORD DCA I AXIN TAD LORD DCA I AXIN ISZ CT /TEST FOR END OF DATA JMP GETA TAD LORD /TEST FOR CIRCLE OR LINE SZA CLA JMP XFCIR XFLIN, CLL /VECTOR PLOT ALGORITHM TAD X01 TAD P1 DCA X01 RAL TAD X00 TAD P0 DXL DCA X00 CLL TAD Y01 TAD Q1 DCA Y01 RAL TAD Y00 TAD Q0 DYS DCA Y00 ISZ R JMP XFLIN JMP I EFUN3I /TO DISPLAY A POINT X,Y: SET Z=FDIS(X,Y) /TO DRAW LINE X0,Y0 TO X,Y: DO 17 /TO SET XO,Y0=X,Y: DO 16.4 /TO ERASE SCREEN : TYPE "(ERASE CODE)" /TO RESET PRINT ORIGIN: TYPE "(RESET CODE)" /TO DRAW A CIRCLE ABOUT X0,Y0 STARTING AT X,Y /AND GOING COUNTERCLOCKWISE FOR FRACTION /OF A CIRCLE ALPHA : SET S=+1;SET C=ALPHA;DO 16 /TO GO CLOCKWISE: SET S=-1;DO 16 /GROUPS 16 AND 17 CREATE OR USE THE VARIABLES /X,Y,X0,Y0,Z,R,C,P,Q,K,AND S /S MAY BE REPLACED BY A 1 IF DESIRED CT, 00 00 00 PP, 00 P0, 00 P1, 00 QQ, 00 Q0, 00 Q1, 00 XX, 13 X00,00 X01,00 YY, 13 Y00,00 Y01,00 KK, 00 00 00 XXP, PP-1 LP, 14 R, 00 XFCIR, FINT /CIRCLE ALGORITHM FGET QQ FMUL KK FPUT CT FGET PP FSUB CT FPUT PP FADD XX FXIT JMS I INTEGER DXS FINT /CLEARS AC FGET PP FMUL KK FADD QQ FPUT QQ FADD YY FXIT JMS I INTEGER DYS CLA ISZ R JMP XFCIR JMP I EFUN3I /LOCAL (IAS) DEFINITIONS FINT=JMS I 7 FIXMRI FGET=00 FIXMRI FMUL=4000 FIXMRI FPUT=6000 FIXMRI FSUB=2000 FIXMRI FADD=1000 FXIT=00 M5=117 P13=5 $