TAPE &"TAPE OF DT1:DRAW.SOU 11:23 AM 27-Jun-77" 100 !**DRAW.SOU***AEL***31-1-77** !**(RSTS 6A & 6B)**SOURCE FILE FOR DRAW.BAS** 200 DIM A$(63%) \ A$ = SYS(CHR$(6%)+CHR$(-7%)) 400 ! LINES 500--->600 RESERVED 410 PRINT \ PRINT "RANGE FOR "; \ ONERRORGOTO 1000 700 &CHR$((-12.5*A%+38.5)*A%+62)+":" \ INPUT "LARGEST VALUE"; L, "SMALLEST VALUE"; S, "STEP LENGTH"; H, "ADD POINTS TO EXISTING FILE"; A$ \ B%=(ASCII(A$)=89%) 710 C%=(L-S)/H \ GOTO720 IF C%<501% \ & "500 POINTS MAXIMUM!" \ GOTO 700 720 IF B% THEN OPEN"DR"+J$+".PNT" FOR INPUT AS FILE 1% ELSE OPEN"DR"+J$+".PNT" FOR OUTPUT AS FILE 1% 730 PRINT \ INPUT "SYMBOL FOR THESE POINTS"; D$ \ D$=LEFT(CVT$$(D$,6%),1%) 740 V%=2%*LEN( CVTF$(1.) ) \ B=510%/V% \ FIELD#1%,510%ASB$ \ FIELD#1%,V%*(I%-1%) AS A$, V% AS A$(I%) FOR I%=1% TO B \ GOTO 1400 UNLESS B%\ GET#1% \ N%=CVT$%(A$(1%)) \ R% = -INT(-(N%+1%)/B) \ GET#1%,RECORD R% 745 IF N%+C% < 500% THEN 760 ELSE & "WITH POINTS ALREADY ON FILE, 500 MAX. EXCEEDED!" \ CLOSE 1% \ GOTO 700 760 S$=MID(B$,(N%+1%-(R%-1%)*B)*V%+1%,N%) 770 IFLEN(S$)B THEN P%=1% \ R%=R%+1% 790 GET#1%, RECORD R% \GOTO1500 ! P% IS POINTER TO NEXT ENTRY ! 1000 IFERR<>28%THEN1100 ELSE IFERL>3600THEN KILL"DR"+J$+".CMD" 1020 IFERL>=700ANDB%=1% THEN KILL"DR"+J$+".PNT" \ &"DATA FILE DR"+CVT$$(J$,6%)+".PNT DELETED!" 1040 RESUME 10000 1100 &"RUN DRAW FOR ANOTHER ATTEMPT -ERROR:-->" \ ONERRORGOTO 1400 P%=2% \ R%=1% \ N%=0% ! INITIALIZE RECORD NO, POINTER IN BUFFER, AND ! NUMBER OF POINTS 1500 ON A% GOTO 1600,1700,1800 1600 FOR X = S TO L STEP H \ X1=X \ Y1=FNX \ GOSUB 2000 \ NEXT X \ GOTO3000 1700 FOR Y=S TO L STEP H \ X1=FNX \ Y1=Y \ GOSUB2000 \ NEXT Y \ GOTO3000 1800 FOR A=S TO L STEP H \ X1=FNX \ Y1=FNY \ GOSUB2000 \ NEXT A \ GOTO3000 2000 N%=N%+1% \ LSET A$(P%)=CVTF$(X1) + CVTF$(Y1) \ S$ = S$ + D$ \ P%=P%+1% \ IF P%>B THEN PUT#1%,RECORD R% \ R%=R%+1% \ P%=1% 2020 RETURN 3000 IFP%=1% THEN P%=B+1%\ R%=R%-1% 3010 Q%=V%*(P%-1%) 3020 FIELD#1%,Q%ASD$,510%-Q% AS E$ \ LSET E$=S$ \ PUT#1%,RECORD R% \R%=R%+1% \ S$=RIGHT(S$,511%-Q%) \ GOTO 3060 UNLESS LEN(S$) \ Q%=0% \ GOTO3020 3060 GET#1%, RECORD1% \ LSET A$(1%)=CVT%$(N%)+"S" \ PUT#1%, RECORD1% \ CLOSE1% ! DATA FILE WRITTEN 3500 INPUT "DO YOU REQUIRE MORE POINTS"; A$ \ IF ASCII(A$)<>89% THEN INPUT "DO YOU NEED TO SEE THE COORDINATES OF THE PLOTTED POINTS"; A$ ELSE &"ADD THE NEW POINTS TO THE EXISTING FILE" \ CHAIN "$DRAW" 200 3600 ! WRITE COMMAND FILE ! 3620 OPEN "DR"+J$+".CMD" FOR OUTPUT AS FILE 1% \ B$=CHR$(13%)+CHR$(10%) \ C$="N/DR"+J$+".PNT"+B$+"Y"+B$+"E"+B$ \ IF LEFT(A$,1%)="Y" THEN C$=C$+"Y"+B$ ELSE C$=C$+"N"+B$ ! NOW REQUEST SWITCHES OR PROMPT FOR OPTIONS 3640 INPUT "SIMPLE SCALES (AT EXPENSE OF SMALLER GRAPH)-Y OR N"; A$\ IF LEFT(A$,1%) <>"<"THEN3700 ELSE A$="P"+A$+B$ \ GOTO 3800 3700 IF ASCII(A$)=89% THEN A$="P<"ELSE A$="P<*" 3720 INPUT "MARK X=0 & Y=0 AXES";D$ \ A$=A$+"A" IF LEFT(D$,1%)="Y" \ INPUT "UNIFORM SCALES"; D$ \ A$=A$+"U" IF LEFT(D$,1%)="Y" \ A$=A$+">"+B$ 3800 C$=C$+A$ \ &"X-AXIS LABEL"; \ INPUTLINE A$ \ &"Y-AXIS LABEL"; \ INPUTLINE D$ \ C$=C$+CVT$$(A$,4%)+B$+CVT$$(D$,4%)+B$+CHR$(26%) 4000 %,C$ \ CLOSE1% ! COMMAND FILE WRITTEN ! ! NEXT SET UP COMMON CORE ! 4500 & "GRAPH FOLLOWS THE '#'---->"; 5000 A$=SYS(CHR$(8%)+"*$DRAW+2000*DR"+J$+".CMD") \ CHAIN "$GRAPH2" 500 10000 END &"END OF TAPE" KEY