5  COM A[100],C[100]
7  COM X1,X9,Y1,Y9,H5,V5
10  COM E,P9,D2,D1,P1,P8,P3,Q7,Q8,Z$[60],D8,D9,H$[4]
20  COM X2,Y2,V1,V9,H1,H9,D3,Q9
30  COM E9,P0,S9,A9,F[2],X3,Y3
31  COM A$[1],D7
32  COM D4,Q1
33  COM S$[6]
35  DIM B$[20],C$[10],D$[20],E$[1],F$[20],G$[7],I$[12],T$[3]
60  DEF FNF()=-INT(+.000001)
61  DEF FNL()=LOG()/LOG(10)
1000  PRINT "     PLTT"
1005  PRINT "ENTER YOUR INSTRUCTIONS ALL AT ONCE, OR"
1010  PRINT "ENTER P FOR POINTS, L FOR LINES, B FOR BARS OR S FOR STEPS."
1015  INPUT Z$
1020  L3=LEN(Z$)
1025  IF L3>10 THEN 1090
1030  A$=Z$[1,1]
1035  PRINT "ENTER PAPER NUMBER OR THE TYPE OF X AND Y SCALES"
1040  INPUT B$
1045  PRINT "ENTER N,S OR A FOR EACH AXIS IN THE FORM:X/Y"
1050  PRINT "ENTER N IF NEW AXIS IS TO BE DRAWN, OR"
1055  PRINT "      S IF SAME AXIS IS TO BE USED, OR"
1060  PRINT "      A IF ANOTHER AXIS IS TO BE DRAWN."
1065  INPUT C$
1070  PRINT "ENTER DATA RANGE OF INTEREST, OR"
1075  PRINT "     ENTER A/A IF ALL OF THE DATA ARE TO BE PLOTTED"
1080  INPUT D$
1085  GOTO 1220
1090  S1=1
1095  A$=Z$[1,1]
1100  P=2
1105  N=2
1110  E$=Z$[N,N]
1115  IF E$=";" THEN 1135
1120  N=N+1
1125  IF N>(L3-1) THEN 1330
1130  GOTO 1110
1135  P=N+1
1140  N=P
1145  E$=Z$[N,N]
1150  IF E$=";" THEN 1170
1155  N=N+1
1160  IF N>(L3-2) THEN 1330
1165  GOTO 1145
1170  K=N-P
1175  IF S1=2 THEN 1205
1180  B$=Z$[P,P+K-1]
1185  P=N+1
1190  N=P
1195  S1=2
1200  GOTO 1145
1205  C$=Z$[P,P+K-1]
1210  P=N+1
1215  D$=Z$[P,L3]
1220  E$=B$[1,1]
1225  IF E$ <> "L" THEN 1240
1230  D7=0
1235  GOTO 1295
1240  D7=1
1245  FOR I=1 TO 4
1250  READ F$,G$,D1,D2,D8,D9
1255  IF B$ <> F$ THEN 1270
1260  B$=G$
1265  GOTO 1295
1270  NEXT I
1275  PRINT "PAPER NUMBER NOT IN TABLE. ENTER CORRECT NUMBER, OR"
1280  PRINT "     ENTER THE TYPE OF X AND Y SCALES"
1285  INPUT B$
1290  GOTO 1220
1295  IF A$="L" THEN 1340
1300  IF A$="P" THEN 1340
1305  IF A$="B" THEN 1320
1310  IF A$="S" THEN 1320
1315  GOTO 1330
1320  H$="PLTL"
1325  GOTO 1345
1330  PRINT "ERROR. RE-ENTER THE INFORMATION"
1335  RESTORE 
1337  GOTO 1000
1340  H$[1,3]="PLT"
1342  H$[4,4]=A$
1345  T$=B$[1,3]
1350  IF T$ <> "LOG" THEN 1365
1355  X2=1
1360  GOTO 1370
1365  X2=0
1370  T$=B$[5,7]
1375  IF T$ <> "LOG" THEN 1390
1380  Y2=1
1385  GOTO 1395
1390  Y2=0
1395  E$=C$[1,1]
1400  IF E$ <> "S" THEN 1415
1405  X3=1
1410  GOTO 1435
1415  IF E$ <> "A" THEN 1430
1420  X3=2
1425  GOTO 1435
1430  X3=0
1435  E$=C$[3,3]
1440  IF E$ <> "S" THEN 1455
1445  Y3=1
1450  GOTO 1480
1455  IF E$ <> "A" THEN 1470
1460  Y3=2
1465  GOTO 1480
1470  Y3=0
1480  S2=0
1485  S4=1
1490  S5=1
1495  FOR I=1 TO LEN(D$)
1500  E$=D$[I,I]
1505  GOTO S5 OF 1510,1540,1600,1655
1510  IF E$=" " THEN 1820
1515  IF E$ <> "A" THEN 1525
1520  GOTO S4 OF 1575,1590
1525  I3=I
1530  S5=2
1535  GOTO 1820
1540  IF E$="/" THEN 1330
1545  IF E$='92 THEN 1330
1550  IF E$=" " THEN 1565
1555  IF E$="T" THEN 1565
1560  GOTO 1820
1565  S2=S2+1
1570  GOTO 1705
1575  X=0
1580  S2=2
1585  GOTO 1755
1590  Y=0
1595  GOTO 1830
1600  IF E$="/" THEN 1330
1605  IF E$='92 THEN 1330
1610  IF E$=" " THEN 1820
1615  IF E$="T" THEN 1820
1620  IF E$="O" THEN 1820
1625  I3=I
1630  S5=4
1635  IF I <> LEN(D$) THEN 1650
1640  IF S4=2 THEN 1695
1645  GOTO 1330
1650  GOTO 1820
1655  IF E$=" " THEN 1675
1660  IF E$="/" THEN 1675
1665  IF E$='92 THEN 1675
1670  GOTO 1685
1675  IF S4=1 THEN 1700
1680  GOTO 1330
1685  IF I=LEN(D$) THEN 1695
1690  GOTO 1820
1695  I=LEN(D$)+1
1700  S2=S2+1
1705  I2=I-I3
1710  F$=D$[I3,I2+I3-1]
1715  GOTO S2 OF 1720,1740,1790,1810
1720  B$=F$
1721  GOSUB 5100
1722  X1=B2
1725  X=1
1730  S5=3
1735  GOTO 1820
1740  B$=F$
1741  GOSUB 5100
1742  X9=B2
1745  IF E$="/" THEN 1775
1750  IF E$='92 THEN 1775
1755  I=I+1
1760  IF I>LEN(D$) THEN 1330
1765  E$=D$[I,I]
1770  GOTO 1745
1775  S5=1
1780  S4=2
1785  GOTO 1820
1790  B$=F$
1791  GOSUB 5100
1792  Y1=B2
1795  Y=1
1800  S5=3
1805  GOTO 1820
1810  B$=F$
1811  GOSUB 5100
1812  Y9=B2
1815  GOTO 1830
1820  NEXT I
1825  GOTO 1330
1830  IF X <> 0 THEN 1875
1835  X9=X1=A[1]
1840  FOR I=2 TO E
1845  A6=A[I]
1850  IF A6 >= X1 THEN 1860
1855  X1=A6
1860  IF A6 <= X9 THEN 1870
1865  X9=A6
1870  NEXT I
1875  IF Y <> 0 THEN 1920
1880  Y1=Y9=C[1]
1885  FOR I=2 TO E
1890  A6=C[I]
1895  IF A6 >= Y1 THEN 1905
1900  Y1=A6
1905  IF A6 <= Y9 THEN 1915
1910  Y9=A6
1915  NEXT I
1920  GOTO 2530
1925  Z1=Y1
1930  Z2=Y2
1935  Z5=D2
1940  Z9=Y9
1945  S7=1
1950  S6=1
1955  IF Z5 <> 0 THEN 1965
1960  Z5=5
1965  IF S7=2 THEN 1995
1970  IF Y=0 THEN 2020
1972  IF Z1<0 THEN 1977
1975  V1=Z1
1976  GOTO 1978
1977  V1=Z1-.00001*Z1
1978  IF Z9<0 THEN 1982
1980  V9=Z9
1981  GOTO 1985
1982  V9=Z9-.00001*Z1
1985  D2=Z5
1990  GOTO 2740
1995  IF X=0 THEN 2020
1997  IF Z1<0 THEN 2002
2000  H1=Z1
2001  GOTO 2004
2002  H1=Z1-.00001*Z1
2004  IF Z9<0 THEN 2007
2005  H9=Z9
2006  GOTO 2010
2007  H9=Z9-.00001*Z9
2010  D1=Z5
2015  GOTO 2180
2020  D3=1
2025  R1=ABS((-1)*Z1+Z9+D3/S6)
2030  R2=Z5*D3
2035  IF R2<R1 THEN 2050
2040  D3=D3/10
2045  GOTO 2025
2050  D3=D3*10
2051  IF Z5 <> 1 THEN 2055
2052  R1=ABS(Z9-Z1)
2053  GOTO 2060
2055  R1=ABS((-1)*Z1+Z9+D3/S6)
2060  R2=Z5*D3
2065  IF R2 >= R1 THEN 2075
2070  GOTO 2050
2075  IF R2 <= 2*R1 THEN 2115
2080  IF S6 <> 1 THEN 2100
2085  D3=2
2090  S6=2
2095  GOTO 2025
2100  IF S6 <> 2 THEN 2115
2105  D3=S6=5
2110  GOTO 2025
2115  IF S7=2 THEN 2170
2120  V1=(D3/S6)*INT((S6/D3)*Z1+1.E-08)-1.E-08
2122  IF ABS(V1)>.000001 THEN 2125
2124  V1=0
2125  V9=V1+D3*Z5+2.E-08
2130  D2=Z5
2135  GOTO 2740
2140  S7=2
2145  Z1=X1
2150  Z2=X2
2155  Z5=D1
2160  Z9=X9
2165  GOTO 1950
2170  H1=(D3/S6)*INT((S6/D3)*Z1+1.E-08)-1.E-08
2171  IF ABS(H1)>.000001 THEN 2175
2174  H1=0
2175  H9=H1+D3*Z5+2.E-08
2180  D1=Z5
2185  T4=0
2190  T5=125
2195  T7=9874
2200  T8=9999
2202  IF F[2] <> 1 THEN 2205
2203  P0=4
2204  CHAIN "$HP3A"
2205  PRINT "     PLTL"
2210  IF Y3=1 THEN 2405
2215  IF Y3=2 THEN 2380
2217  PRINT "5000 5000 PLTT"
2218  PRINT "     PLTL"
2220  PRINT "0000 9999^"
2230  PRINT "0000 5000"
2240  PRINT "0000 0000"
2245  PRINT "2500 0000"
2250  PRINT "5000 0000"
2255  PRINT "7500 0000"
2265  PRINT "9999 0000"
2267  P2=T7
2269  GOSUB 6000
2270  PRINT "5000 5000 PLTT"
2275  PRINT "     PLTL"
2285  FOR I=1 TO D2
2300  P2=T4
2302  GOSUB 6000
2304  C$=B$
2306  P2=INT((9999/D2)*(D2+1-I))
2308  GOSUB 6000
2315  PRINT C$;" ";B$;"^"
2316  P2=T5
2317  C$=B$
2318  GOSUB 6000
2320  PRINT B$;" ";C$
2325  NEXT I
2335  PRINT "5000 5000 PLTT"
2340  PRINT "     PLTL"
2345  FOR I=1 TO D1
2355  P2=INT(9999/D1*I)
2356  GOSUB 6000
2357  C$=B$
2358  P2=T4
2359  GOSUB 6000
2360  PRINT C$;" ";B$;"^"
2362  P2=T5
2364  GOSUB 6000
2365  PRINT C$;" ";B$
2370  NEXT I
2375  GOTO 2524
2380  PRINT "9999 0000^"
2390  PRINT "9999 5000"
2400  PRINT "9999 9999"
2405  IF X3=1 THEN 2480
2410  IF X3 <> 2 THEN 2490
2415  PRINT "9999 9999^"
2425  PRINT "6000 9999"
2430  PRINT "3000 9999"
2440  PRINT "0000 9999"
2450  FOR I=1 TO D1
2460  P2=INT(9999/D1*I)
2461  GOSUB 6000
2462  C$=B$
2463  P2=T7
2464  GOSUB 6000
2465  PRINT C$;" ";B$;"^"
2466  P2=T8
2468  GOSUB 6000
2470  PRINT C$;" ";B$
2475  NEXT I
2480  IF Y3 <> 2 THEN 2524
2490  FOR I=1 TO D2
2505  P2=T7
2506  GOSUB 6000
2507  C$=B$
2508  P2=INT(9999/D2*(D2+1-I))
2509  GOSUB 6000
2510  PRINT C$;" ";B$;"^"
2511  P2=T8
2512  C$=B$
2514  GOSUB 6000
2515  PRINT B$;" ";C$
2520  NEXT I
2524  P0=4
2525  CHAIN "$HP3A"
2530  T1=Y1*(-1)+Y9
2535  IF T1>0 THEN 2565
2540  IF T1=0 THEN 2555
2545  PRINT "Y UPPER LIMIT FOUND LESS THEN LOWER LIMIT"
2550  GOTO 1330
2555  Y1=Y1-1
2560  Y9=Y9+1
2565  IF Y3=1 THEN 2740
2570  IF Y2=0 THEN 1925
2575  IF Y1 <= 0 THEN 2840
2580  T2=FNL(Y1)
2585  G5=ABS(T2)
2590  T1=FNF(T2)
2595  IF T1>.0001 THEN 2605
2600  V1=Y1
2605  IF SGN(T2)<0 THEN 2625
2610  T1=G5
2615  GOTO 2630
2625  T1=(G5+SGN(T2)*(-1))
2630  T2=SGN(T2)*INT(T1)
2635  V1=10^T2
2640  T2=FNL(Y9)
2645  G5=ABS(T2)
2650  T1=FNF(T2)
2655  IF T1>.00001 THEN 2670
2660  V9=Y9
2665  GOTO 2685
2670  T1=ABS(G5+SGN(T2))
2675  T2=SGN(T2)*INT(T1)
2680  V9=10^T2
2685  Z5=(-1)*FNL(V1)+FNL(V9)
2690  IF D2 <> 0 THEN 2705
2695  D2=INT(Z5+1-.00001)
2700  GOTO 2725
2705  IF Z5>D2 THEN 2730
2710  IF D2=Z5 THEN 2725
2715  V9=10^(T2+D2-Z5)
2720  Z5=D2
2725  GOTO 2740
2730  PRINT "NEED PAPER WITH";Z5;"CYCLES ON Y AXIS"
2735  GOTO 2945
2740  T1=X1*(-1)+X9
2745  IF T1>0 THEN 2775
2750  IF T1=0 THEN 2765
2755  PRINT "X UPPER LIMIT FOUND LESS THAN LOWER LIMIT"
2760  GOTO 1330
2765  X1=X1-1
2770  X9=X9+1
2775  IF X3=1 THEN 2185
2780  IF X2=0 THEN 2140
2785  IF X1 <= 0 THEN 2840
2790  T2=FNL(X1)
2795  G5=ABS(T2)
2800  T1=FNF(T2)
2805  IF T1>.0001 THEN 2820
2810  H1=X1
2815  GOTO 2835
2820  T1=ABS(G5+SGN(T2)*(-1))
2825  T2=SGN(T2)*INT(T1)
2830  H1=10^T2
2835  GOTO 2850
2840  PRINT "NO LOG. NEGATIVE OR ZERO VALUE FOUND"
2845  GOTO 1330
2850  T2=FNL(X9)
2855  G5=ABS(T2)
2860  T1=FNF(T2)
2865  IF T1>.00001 THEN 2880
2870  H9=X9
2875  GOTO 2895
2880  T1=ABS(G5+SGN(T2))
2885  T2=SGN(T2)*INT(T1)
2890  H9=10^T2
2895  Z5=(-1)*FNL(H1)+FNL(H9)
2900  IF D1=0 THEN 2930
2905  IF Z5>D1 THEN 2940
2910  IF D1=Z5 THEN 2925
2915  H9=10^(T2+D1-Z5)
2920  Z5=D1
2925  GOTO 2185
2930  D1=INT(Z5+1-.00001)
2935  GOTO 2185
2940  PRINT "NEED PAPER WITH";Z5;"CYCLES ON X AXIS"
2945  PRINT "CHANGE PAPER THEN RE-ENTER THE INFORMATION"
2950  RESTORE 
2960  GOTO 1000
5100  I$=" 0123456789."
5110  B8=1
5120  B2=0
5130  FOR J=1 TO LEN(B$)
5135  FOR I1=1 TO LEN(I$)
5140  IF B$[J,J]=I$[I1,I1] THEN 5180
5150  NEXT I1
5151  IF B$[J,J] <> "-" THEN 5160
5152  B8=-1
5153  GOTO 5210
5160  PRINT "ERROR ON INPUT-NONNUMERIC CHARACTER AFTER="
5170  GOTO 1000
5180  IF I1=1 THEN 5210
5190  IF I1=12 THEN 5230
5200  B2=B2*10+I1-2
5210  NEXT J
5215  B2=B2*B8
5220  RETURN 
5230  I2=J
5240  I$="0123456789"
5250  FOR J=I2+1 TO LEN(B$)
5260  FOR I1=1 TO LEN(I$)
5270  IF B$[J,J]=I$[I1,I1] THEN 5310
5280  NEXT I1
5290  PRINT "ERROR ON INPUT-NONNUMERIC CHARACTER AFTER="
5300  GOTO 1000
5310  IF I1=1 THEN 5330
5320  B2=B2+(I1-1)*10^(-(J-I2))
5330  NEXT J
5340  RETURN 
6000  I$="0123456789"
6005  B$="0000"
6010  FOR J=1 TO 4
6020  P5=INT(P2/10^(4-J))
6030  P2=P2-P5*10^(4-J)
6050  FOR J1=0 TO 9
6060  IF P5=J1 THEN 6080
6070  NEXT J1
6080  B$[J,J]=I$[J1+1,J1+1]
6090  NEXT J
6100  RETURN 
7000  DATA "9270-1004","LIN/LIN",15,10,15,10
7010  DATA "46 5492","LIN/LOG",7,3,7,10
7020  DATA "9280-0168","LIN/LIN",5,15,7,10
7030  DATA "46 3410","LIN/LIN",5,15,7,7.5
9000  END 
