File AXIS.FT (FORTRAN source file)

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

	SUBROUTINE AXIS(XPAGE,YPAGE,IBCD,NCHAR,AXLEN,ANGLE,FIRSTV,DELTAV)
C
C	PARAMETER SETZEN :
C
C	CALL AXIS (XTICS,YTICS,0,MODUL,999.,Z,T,0.0)
C
	DIMENSION IBCD(2)
C
	EQUIVALENCE (XLS,B),(XLC,D),(YVAL,A)
C
C	STANDARD WERTE FUER TIC - LAENGE UND ZEICHENHOEHE
C	STANDARD WERTE FUER TIC - ABSTAND UND BESCHRIFTUNG
C
C	DATA T,Z,ZH,Z2,XTICS,YTICS / 0.2 , 0.27 , 0.135 , 0.54 ,
C	1 1.0 , 2.0 /
C
	T = 0.2
	Z = 0.35
	ZH = 0.175
	Z2 = 0.7
	XTICS = 1.
	YTICS = 2.
C
C	PARAMETER SETZEN ?
C
	IF (AXLEN-999.) 50,1100,50
C
50	S = TSIN(ANGLE)
	C = TCOS(ANGLE)
	A = 1.0
	B = 2.0
	D = 1.0
	IEX = 0
	NC = NCHAR
C
	IF (NC) 100,300,300
100	A = -A
	B = 3.0
	D = 3.0
	NC = -NC
C
300	LFLAG = 0
	DELT = ABS(DELTAV)
400	IF (DELT-100.) 500,450,450
450	DELT = DELT*0.1
	IEX = IEX-1
	GOTO 400
500	IF (DELT-0.01) 550,600,600
550	IF (DELT-1.0) 560,600,600
560	DELT = DELT*10.0
	IEX = IEX+1
	GOTO 550
600	X10 = 10.0**IEX
	XVAL = FIRSTV*X10
	DELT = DELTAV*X10
C
	DX = -Z
	DY = A*(D*ZH+T)
	XN = XPAGE+DX*C-DY*S
	YN = YPAGE+DX*S+DY*C
C
	DX = AXLEN*0.5-FLOAT(NC)*ZH
	IF (IEX) 650,660,650
650	DX = DX-ZH*FLOAT(IABS(IEX))
660	DY = A*(B*Z+T)
	XT = XPAGE+DX*C-DY*S
	YT = YPAGE+DX*S+DY*C
C
	XMOD = ABS(XVAL)+ABS(DELT*AXLEN)+ABS(X10)
	IF (IMOD) 670,680,670
670	XMOD=IMOD
680	XL = XPAGE
	YL = YPAGE
	XLS = XTICS*S
	XLC = XTICS*C
C
	DY = T*A
	DX = S*DY
	DY = C*DY
C
	MAX = AXLEN/YTICS
	DO 1000 I = 0 , MAX
	YVAL = AMOD(XVAL,XMOD)
	J = 2
	IF (AINT(YVAL)-YVAL) 700,690,700
690	J = -1
700	CALL NUMBER (XN,YN,Z,YVAL,ANGLE,J)
	IF (LFLAG) 720,710,720
710	IF (I-MAX/2) 720,715,720
715	LFLAG = 1
720	IF (LFLAG) 900,900,730
730	CALL SYMBOL (XT,YT,Z,IBCD,ANGLE,NC)
	IF (IEX) 740,800,740
740	CALL SYMBOL (999.,999.,Z,' * ',ANGLE,3)
	IEX1 = IEX
	IF (IEX1) 750,760,760
750	IEX1 = -1
760	CALL NUMBER (999.,999.,Z,10.0**(-IEX),ANGLE,IEX1)
800	LFLAG = -1
900	XN = XN+YTICS*C
	YN = YN+YTICS*S
	XVAL = XVAL+YTICS*DELT
	CALL PLOT (XL,YL,3)
	IF (I-MAX) 910,1050,910
910	K = YTICS/AMOD(XTICS,YTICS+1.0E-6)
	DO 950 J = 1 , K
	CALL PLOT (XL-DX,YL+DY,2)
	CALL PLOT (XL,YL,2)
	XL = XL+XLC
	YL = YL+XLS
	CALL PLOT (XL,YL,2)
	CALL PLOT (XL-DX,YL+DY,2)
950	CONTINUE
1000	CONTINUE
1050	RETURN
C
C	PARAMETER UEBERNEHMEN
C
1100	IF (ANGLE) 1110,1150,1110
1110	Z = ANGLE
	Z2 = 2.0*Z
	ZH = 0.5*Z
1150	IF (FIRSTV) 1160,1170,1160
1160	T = FIRSTV
1170	IF (XPAGE) 1180,1190,1180
1180	XTICS = XPAGE
1190	IF (YPAGE) 1200,1210,1200
1200	YTICS = YPAGE
1210	IMOD = NCHAR
	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