File SYMBOL.FT (FORTRAN source file)

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

C 1	OS/8 4006-1 DISPLAY SOFTWARE
C
C	SYMBOL.FT
C
C	AUFBAU DER KOORDINATENTABELLE
C
C	I-----------------------------------------------I
C	I   I   I   I   I   I   I   I   I   I   I 1 I 1 I
C	I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 0 I 1 I
C	I-----------------------------------------------I
C	I           I           I           I           I
C	I     Y1    I     X1    I     Y2    I     X2    I
C	I           I           I           I           I
C	I-----------------------------------------------I
C
C	Y1,X1,Y2,X2 :
C
C	0 ... 6		KOORDINATEN
C
C	07		PEN-CHANGE
C
C	77 [ Y1,X1 ]	CHAR-ENDE
C
	SUBROUTINE SYMBOL(XPAGE,YPAGE,HEIGH,IBCD,ANGLE,NC)
	COMMON IVER,IZEI
	DIMENSION IBCD(1),IVER(1),IZEI(1)
C
C	SET MODE CALL ?
C
	IF(HEIGH) 1000,80,80
C
C	WENN X- ODER Y-PAGE = 999. , DANN ALTEN
C	WERT BENUTZEN.(ENDE DES ZULETZT GESCHRIEBENEN
C	ZEICHENS
C
80	IF(XPAGE-999.) 90,100,90
90	X=XPAGE
100	IF(YPAGE-999.) 150,200,150
150	Y=YPAGE
C
C	SIN UND COS WERDEN NUR AUFGERUFEN, WENN SICH DIE
C	ZEICHEN-HOEHE ODER DER ZEICHEN-WINKEL AENDERN
200	IF(OLDH-HEIGH) 250,300,250
250	H=HEIGH/7.
	OLDH=HEIGH
	GOTO 400
300	IF(OLDA-ANGLE) 400,500,400
400	OLDA=ANGLE
	S=TSIN(OLDA)*H
	C=TCOS(OLDA)*H
500	IP=3
C
C	BEI ZENTRIERTEN ZEICHEN SICHTBAR VERBINDEN ?
C
	IF(NC+2) 520,520,540
520	IP=2
540	CALL PLOT(X,Y,IP)
	I=1
C
C	STRINGANFANG
C
600	J = LGET(IBCD,I)
	IF(J) 610,850,610
610	J=J+1
	IF(NC) 630,620,620
620	J=J+15
C
C	ZEICHENANFANG
C
630	J=IVER(J)
	L=1
	IP=2
700	K=LGET(IZEI(J),L)
	IF(K-7) 730,720,730
720	IP=5-IP
	GOTO 810
730	IF(K-63) 740,900,740
S\740,	TAD	\K
S	AND	(7
S	DCA	\IX
S	TAD	\K
S	RAR;RTR
S	AND	(7
S	DCA	\IY
	IF(NC) 710,800,800
C
C	DIE ZENTRIERTEN SYMBOLE SIND MIT OFFSET VESEHEN
C
710	IX=IX-3
	IY=IY-3
800	X2=IX
	Y2=IY
	X1=X+(X2+Y2*TAL)*ASP*C-Y2*S
	Y1=Y+(X2+Y2*TAL)*ASP*S+Y2*C
	CALL PLOT(X1,Y1,IP)
810	L=L+1
	GOTO 700
850	I=NC
900	IF(NC) 1100,1100,910
910	I=I+1
	X=X+SPA*C
	Y=Y+SPA*S
	IF(I-NC) 600,600,1100
C
C	SET MODE CALL PARAMETER UEBERNEHMEN
C
1000	IF(XPAGE-999.) 1010,1020,1010
1010	ASP=XPAGE
1020	IF(YPAGE-999.) 1030,1040,1030
1030	TAL=YPAGE
1040	IF(ANGLE-999.) 1050,1100,1050
1050	SPA=ANGLE*7.*ASP
1100	RETURN
	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