File GFIC.FT (FORTRAN source file)

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

C PROGRAM GFIC
C "GFIC" DRAWS GRAPHS IN TWO AND THREE DIMENSIONS,ROTATE THE IMAGE,
C AND EXPANDS AND CONTRACTS IT.IN ADDITION,IT HAS ALL THE HOUSEKEEPING
C FUNCTIONS.
C	B	2-DIMENSIONAL GRAPHING (COEFFICIENTS,DOMAINS,ORIGINS)
C	D	CHAINS TO DRAW.SV
C	E	ERASES SCREEN
C	G	3-DIMENSIONAL GRAPHING (COEFFIZIENTS,DOMAINS,ORIGINS)
C	I	INITIALIZES TABLE
C	R	ROTATION (DIRECTION,DEGREES)
C	S	SCALING (EXPANSION FACTOR)
C	T 	CHAINS TO TAPE.SV
C	W	WRITES ALL VECTORS IN TABLE
C	X	EXITS FROM PROGRAM
C	F	CHAINS TO MODIFY.SV
C FORTRAN II
C SR : ERASE.FT / FDIS.FT / ALPHA.FT / RKB.FT
C CH : TAPE.SV / MODIFY.SV / DRAW.SV
C BEARBEITUNG VON DECUS #8-773
	COMMON NTAB,IPT
	DIMENSION NTAB(500,3)
	GOTO 2
1	IPT=0
2	N3=1
	N5=1
	Q4=1.
	J2=70
	GOTO 4
3	CALL ERASE
4	CALL FDIS(0,0,767)
	CALL ALPHA
	CALL RKB(K)
C G-GRAPH,I-INIT,B-BILEVEL,S-SIZE,R-ROTATE,X-EXIT,W-WRITE,
C E-ERASE,T-TAPE,D-DRAW,F-MODIFY
	IF (K-480) 5,22,5
5	IF (K-608) 6,1,6
6	IF (K-160) 7,36,7
7	IF (K-1248) 8,37,8
8	IF (K-1184) 9,40,9
9	IF (K-288) 10,17,10
10	IF (K-1568) 11,21,11
11	IF (K-1504) 12,18,12
12	IF (K-352) 13,3,13
13	IF (K-1312)14,16,14
14	IF (K-416) 4,15,4
15	CALL CHAIN('MODIFY')
16	CALL CHAIN('TAPE')
17	CALL CHAIN('DRAW')
C WRITING ROUTINE
18	N5=2
	GOTO (19,38,45),N3
19	CALL FDIS(0,NTAB(1,2),NTAB(1,3))
	DO 20 N=1,IPT
20 	CALL FDIS (NTAB(N,1),NTAB(N,2),NTAB(N,3))
	N3=1

N5=1 GOTO 4 21 CALL EXIT C GRAPHING ROUTINE 22 CALL ALPHA READ (1,100)A1,A2,A3,A4,A5,A6,A7 100 FORMAT('ENTER COEFF"S IN ORDER (1X**2+3Z**4+5)**6*7', 17(' ',F4.2)) READ (1,101) D,R,OX,OZ 101 FORMAT('ENTER D,R,OX,OZ F4.2 ',4(' 'F4.2)) Z=-OZ DO 35 I2=1,767,J2 IPT=0 DO 31 I=0,1023,30 X=-OX+FLOAT(I)*D/1023. Y=(A1*X**A2+A3*Z**A4+A5)**A6*A7 IF(Y)25,25,26 25 Y=1. 26 IF(Y-767.) 28,28,27 27 Y=767. 28 IPT=IPT+1 IF (IPT-500) 29,29,30 29 NTAB(IPT,1)=1 NTAB(IPT,2)=I NTAB(IPT,3)=IFIX(Y) GOTO 31 30 WRITE (1,103) 103 FORMAT ('MATRIX FILLED') GOTO 32 31 CONTINUE 32 CALL ERASE GOTO (33,38,45),N3 33 CALL FDIS(0,NTAB(1,2),NTAB(1,3)) DO 34 N=1,IPT 34 CALL FDIS (NTAB(N,1),NTAB(N,2),NTAB(N,3)) Z=-OZ+FLOAT(I2)*R/767. 35 CONTINUE N3=1 GOTO 4 C BILEVEL FUNCTION 36 CALL ALPHA J2=767 Q4=-1. WRITE(1,104) 104 FORMAT('ENTER Z-LEVEL FOR OZ') GOTO 22 C SCALING ROUTINE 37 CALL ALPHA READ (1,105) S 105 FORMAT ('EXPANSION FACTOR (F4.2)',F4.2) N3=2 GOTO 4 38 DO 39 N=1,IPT T=(FLOAT(NTAB(N,2))-512.)*S+512. R=(FLOAT(NTAB(N,3))-384.)*S+384.
NTAB(N,2)=IFIX(T) NTAB(N,3)=IFIX(R) 39 CONTINUE GOTO (33,19),N5 C ROTATE FUNCTION 40 CALL ALPHA READ (1,106) NT2 106 FORMAT ('DIRECTION (W=CLOCKWISE,C=C-CLOCKWISE) ',A1) IF (NT2-1504) 41,42,41 41 IF (NT2-224) 4,43,4 C CLOCKWISE ROTATION 42 Q3=-1. GOTO 44 43 Q3=1. 44 READ (1,107) T 107 FORMAT ('DEGREES F3.0 ',F3.0) Q2=T*3.1415925/180.*Q3 Q3=COS(Q2) Q2=SIN(Q2) N3=3 GOTO 4 45 DO 46 N=1,IPT Q=Q3*FLOAT(NTAB(N,2)-512)+Q2*FLOAT(NTAB(N,3)-383) Q4=-Q2*FLOAT(NTAB(N,2)-512)+Q3*FLOAT(NTAB(N,3)-383) NTAB(N,2)=IFIX(Q)+512 46 NTAB(N,3)=IFIX(Q4)+383 GOTO (33,19),N5 END



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