C-PS/8 FOCAL, 1971 1.01 C GRAPH BY STEVE POULSEN 1.02 C OMSI SOFTWARE DEVELOPEMENT GROUP 1.03 C LAST CHANGE: 8/31/71 1.04 C ***** TEKTRONIX T-4002 GRAPHICS TERMINAL REQUIRED ***** 1.05 1.06 C THIS PROGRAM WILL GRAPH ANY TWO DIMENSIONAL EQUATION ON 1.07 C AN EUCLIDEAN GRAPH. TYPE ANYTHING BUT YES IF YOU WANT TO 1.08 C INPUT AN EQUATION WHEN ASKED IF THE EQUATION IS IN, AND THE 1.09 C COMPUTER WILL INTERRUPT THE PROGRAM AND ALLOW YOU TO MODIFY ITS 1.10 C INPUT EQUATION. IF YOU CHOOSE NOT TO MODIFY THE EQUATION, 1.11 C THE PROGRAM WILL ASSUME Y=FSIN(X). TYPE AN = AFTER THE 1.12 C CARRIAGE RETURN AND YOU WILL GET THE FIRST PART OF THE EQUATION 1.13 C SINCE IT IS IN MODIFY MODE. REMEMBER, THE EQUATION MUST BE Y 1.14 C IN TERMS OF X. 1.15 C ** X OFFSET IS THE VERTICAL DISPLACEMENT OF THE X AXIS. 1.16 C ** Y SCALING FACTOR SETS THE VERTICAL PLOT LIMIT OF THE SCREEN. 1.17 C ** X INCREMENT IS THE STEP. (EX: .001,.1,1,2,10,100,ETC.) 1.18 C WHEN INPUTTING YOUR EQUATION, REMEMBER THAT YOU ARE USING MODIFY 1.19 C IN FOCAL SO SINE AND COSINE (AND ALL OTHERS) MUST BEGIN WITH F. 1.20 E 1.21 I ((/3)-FITR(/3)) 1.22,1.28,1.22 1.22 T "YOU DO NOT HAVE ENOUGH FEATURES." 1.23 T " RESTART FOCAL WITH FEATURE 2.",!;Q 1.24 1.28 A !%6.03,"HAVE YOU ENTERED THE EQUATION ",A1;I (A1-0YES) 1.29,1.3; 1.29 T !"ENTER EQUATION OF Y IN TERMS OF X"!!;M 30.1 1.30 A !"LOWER LIMIT OF X ",X1,"UPPER LIMIT OF X ",X2,"X INCREMENT",X3 1.40 A !"X OFFSET ",X4,"Y SCALING FACTOR ",Y1 1.50 S XS=1000/(X2-X1);S XC=-X1*XS 1.60 S YS=Y1*XS 1.70 S YC=380+X4*YS 1.80 F Q7=0,.2,FOUT(24); 2.10 I (XC) 2.5;I (1020-XC) 2.5;S Q8=FDIS(0,XC,0)+FDIS(1,XC,780) 2.20 S D1=FITR(FLOG(50/YS)/FLOG(10));S DV=FEXP(D1*FLOG(10)) 2.25 S Q8=FOUT(1);T "Y UNITS:",DV 2.30 F U1=FITR(-YC/(YS*DV))*DV,DV,FITR((760-YC)/(YS*DV))*DV;D 5.1 2.50 I (YC) 3.1;I (780-YC) 3.1;S Q8=FDIS(0,0,YC)+FDIS(1,1020,YC) 2.60 S D1=FITR(FLOG(50/XS)/FLOG(10));S DV=FEXP(D1*FLOG(10)) 2.65 S Q8=FOUT(1);T !"X UNITS:",DV 2.70 F U1=FITR(-XC/(XS*DV))*DV,DV,FITR((1020-XC)/(XS*DV))*DV;D 5.2 3.10 S I=0 3.20 F X=X1,X3,X2;D 30.1;D 4 3.30 S Q8=FOUT(1);T !!!;Q 4.10 S XP=XC+X*XS;S YP=YC+Y*YS 4.40 S R=FSQT((510-XP)^2+(510-YP)^2);I (R-510) 4.5;S I=0 4.50 S Q9=FDIS(I,XP,YP);I (R-510) 4.6;R 4.60 S I=1 5.10 S Q8=FDIS(0,XC-5,YC+YS*U1)+FDIS(1,XC+5,YC+YS*U1) 5.20 S Q8=FDIS(0,XC+XS*U1,YC-5)+FDIS(1,XC+XS*U1,YC+5) 30.10 S Y=FSIN(X)