File AXIS.FC (FOCAL source file)

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

YQ()BTC U/W-FOCAL:AXIS15.10.78?MB=BAC AXIS-PLOTTING LIBRARY SUBROUTINE; SET $R, $S AS DESIRED, WRITE PARAMETERS?M?CBBC INTO FILE "PLOT.TM," AND DO "L G AXIS."  PLOT.TM FORMAT AS FOLLOWS:?M?DABCC <DELIM> <TITLE> <DELIM> <X/Y> <LENGTH> <LOW> <HIGH>?M?DBDC D
LIM=FIRST CHARACTER IN FILE, TITLE=ARBITRARY ASCII STRING,?MEHBEC X/Y = "X" OR "Y" AND MUST IMMEDIATELY FOLLOW 2ND OCCUR. OF DELIM,?M?E.BFC LENGTH=LENGTH IN INCHES, LOW & HIGH = MIN, MAX VALUES TO BE PLOTTED?M?FEBGC LENGTH, LOW, AND HIGH IN "ASK" FORMAT.?
FNBJO I PLOT.TM?M?FVBTS PD=FIN()?MF[B^DO 8?MF9B(IF (FTRM()-154),.5;IF (FTRM()-PD),.3;IF (FIND(PD)),,.3?MGB2O I,E;R?M?GNDC READ THE PARAMETERS?M?GSDJZ PQ?MG-DTY PQ;S PQ(PQ)=FIN();IF (PQ(PQ)-PD).2,,.2;Y -PQ?MHADXS PA=2*(FIN()-216.5),$R=PS(3)-PA-1?MHMD^ASK P
,PX(1),PX(2)?MHXD(S PR=PX(2)-PX(1)?MHD2S PK=1/FLOG(10)?M?H<FAC 300,301,302,303, ETC. YIELD 1,2,5,10, ETC.?MIXFBC OFFSET OF 300 TO AVOID "FINT.NE.ENTIER" PROBLEMS?MI.FJS =+1-3*$=FITR(/3);IF (-3).2;S =5?MI9FTS *10^PE=$-100?M?JRHC FIND MAJOR INTERVAL FOR TIC
 DISTANCE > ?M?J!HJS PS=(PX(2)-PX(1))*/PL?M?J2HTS PM=3*FITR(100+PK*FLOG(PS))?MKCH^IF (PS-F(3,PM)).4;Y PM;G .3?M?KWH(S PN=FITR(F(3,PM)/F(3,PM-2)+1E-8)?M?K H2S PM=F(3,PM)?MK6JC SET UP COUNT RANGE FOR INTERVAL OF ?MLXJJS PC(1)=FITR(PX(1)/-1000)+1000,PC(2)=FI
R(PX(2)/+1000)-1000?M?L$JTS PF=PC(1)-PX(1)/?ML-LC PLOT TICKS?ML6LJS F(5,PM/PN)?ML=LTP 0,0,1?M?MJL^F $=PC(1),PC(2);DO 7?MMQL(P PL,0,1?MMZNC USED BY 6?M?M/NJS PT=.1; IF (FRAC($/PN)),.2;S PT=.05?MM?NTS PX=($*PM/PN-PX(1))*PL/PR?MNQN^P PX,0,1;P PX,PA*PT,1;P PX
0,1?MN	PJS PS(1)=$D,PS(2)=$F,PS(3)=$R,PS(4)=$S?M?N/PTS $S=$D=2?M?N4P^DO 2?MOEP(O O PLTR:;S F(4,1);DO 6,9,11?MOKP2P;O S?M?O!P<S $D=PS(1),$F=PS(2),$R=PS(3),$S=PS(4)?M?O+RC PLOT NUMBERS?MPRTS F(5,PM);F PJ=PC(2),-1,PC(1);DO 10?M?PITC USED BY 9?M?PQTES PB=PJ*P
?MP
TJS PX=(PB-PX(1))*PL/PR?M?P/TTS PY=.1*PA+$S*(.14*PA-.03)?MP:T^S PC=F(12,PB,PE)?MQIT(S PX=PX-$S*(.06*PC-.04)?M?QRT2P PX,PY;T PB?MQ\VC PLOT LEGEND?M?Q*VJS PX=(PL-.06*$S*PQ)/2?M?Q:VTS PY=.1*PA+$S*(.28*PA-.03)?MRAV^P PX,PY?M?ROV(F =1,PQ;S FOUT(PQ())?MRXAC PRE
ARE TO TYPE  TO PRECISION $?MR7XBC RETURNING COUNT OF CENTER DIGIT?M?R?XDIF (),.8?M?SOXJS %=FITR(PK*FLOG()+1E-8)?M?SXTS %=FMAX(0,%),$=FMIN(0,$),=%-$+1?M?S,X(T %(-.01*$)?MS4X2IF ($),.7?M?S<X<S 3+.5*;R?MTEYFS 2.5+.5*;R?MTMYPT %1;S 3;R?MTVZC DEBUGGING?M?T%ZJ
SK Q,PE;S QQ=F(12,Q,PE)?MUBZTT "/",Q,"/",!;F I=1,QQ;T " ";N;T "^",:20,%6.01,QQ,!?M?UGZ^G .1?MUN$C DEBUG?M?U">AC PA--1 FOR Y AXIS, -1 FOR X AXIS?M?U>>BC PQ-- CHARS IN LEGEND, PQ(I)=I-TH CHAR IN LEGEND?MVP>CC PX(1),PX(2)--EXTREME VALUES?M?V\>DC PL--AXIS LEN
TH?M?V,>FC PM--MAJOR TICK, SCALING?M?W>GC PN-- MINOR TICKS PER MAJOR TICK?MW >HC PF--EXCESS FRACTION OF MINOR INTERVAL LEFT OF FIRST TICK?MW0>IC PD--DELIMITER FOR LEGEND?MW=>JC PB--NUMBER TO PLOT?MXL>KC PC--CENTERING VARIABLE?MXY>LC PS--SAVE $R,$S,$D?M?X>
C PK--FLOG(10)?MX2>NC PJ--(9) LOOP VARIABLE?M?YA>2C TEMPORARIES, BY GROUP?M?YI>3C 7 PX,PT?M?>4C 10 PX,PY?M?ML D AXIS;L S AXIS;E?M??M13.01?M?)+1E-8)?M?-8)?M? 10?M?NCE > ?M?01HA4.01?M?M-1000?M??M?M?M;Y

Note: Lines longer than 256 characters were wrapped



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