File GRAPH.FC (FOCAL source file)

Directory of image this file is from
This file as a plain text file

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)



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search