1 " "GOTO 10
2 Y=0:REM ----+----+----+----+----+----+----+----+----+----+----+----+----+----+--
3 RETURN 
10 LOCK :CLEAR :DIM A$(1)*73:ON ERROR GOTO 500
11 CLS :PAUSE " PLANAR CARTESIAN PLOTTER":PAUSE "  Copr. 1982 Tandy Corp."
20 "C"CLS :WAIT 0:PRINT "  Fn  Plt Dsp End"
21 Z=ASC INKEY$ -16:IF Z<1OR Z>4THEN 21
22 CLS :GOTO 100*Z
100 M=STATUS 2-STATUS 1+16:INPUT "F(X)=";A$(0):CLS :A$(1)=A$(0)
110 RESTORE 901:IF A$(0)=""POKE M,58,&F1,&AB:GOTO 20
120 Z=ASC A$(0):IF Z<65OR Z>84THEN 160
130 FOR I=1TO 17:READ T$,Z:IF LEFT$ (A$(0),LEN T$)<>T$NEXT I:GOTO 160
140 I=17:NEXT I:POKE M,&F1,Z:M=M+2
150 PRINT T$;:G=LEN A$(0):H=LEN T$:A$(0)=RIGHT$ (A$(0),G-H):GOTO 110
160 Z=ASC A$(0):IF Z>32POKE M,Z:M=M+1
170 T$=CHR$ Z:GOTO 150
200 RESTORE 900:FOR I=1TO 6:READ P$:CLS :PRINT P$;" =";@(I);:INPUT "? ";@(I)
201 NEXT I:CLS 
202 IF E>0AND E<101AND E=INT ETHEN 210
203 CLS :INPUT "Reenter step, 1-100 ";E
204 GOTO 202
210 GRAPH :GLCURSOR (0,-250):SORGN 
211 LINE (0,0)-(216,200),,,B
212 FOR Y=0TO 195STEP 195:FOR Z=22TO 194STEP 22:LINE (Z,Y)-(Z,Y+5):NEXT Z:NEXT Y
213 FOR Y=0TO 211STEP 211:FOR Z=20TO 180STEP 20:LINE (Y,Z)-(Y+5,Z):NEXT Z:NEXT Y
220 FOR I=0TO 100STEP E:X=A+.01*I*(B-A):GOSUB 250:IF ILINE (K,L)-(M,N),0
221 K=M:L=N:NEXT I
230 GLCURSOR (0,-30):TEXT :CSIZE 1:LPRINT "F(X)=";A$(1):LF 1:RESTORE 900:FOR I=1TO 6:READ P$:LPRINT P$;" =";@(I)
231 NEXT I:LF 7:GOTO 20
250 GOSUB 2
251 IF Y<CLET Y=C
252 IF Y>DLET Y=D
253 M=216*(X-A)/(B-A)
254 N=200*(Y-C)/(D-C)
255 RETURN 
300 WAIT :PRINT "F(X)=";A$(1):WAIT 0:GOTO 20
400 UNLOCK :END
500 V=STATUS 4:W=PEEK &789B:IF V=2BEEP 1:Y=E:GOTO 251
510 WAIT :PRINT "ERROR";W;" in";V:GOTO 20
900 DATA "XL","XH","YL","YH","Step %","F(error)"
901 DATA "SQR",&6B,"SIN",&7D,"COS",&7E,"TAN",&7F,"LN",&76,"LOG",&77,"EXP",&78
902 DATA "PI",&5D,"ABS",&70,"ASN",&73,"ACS",&74,"ATN",&75,"INT",&71,"SGN",&79
903 DATA "OR",&51,"AND",&50,"NOT",&6D
999 END
