]LIST
1 REM: “ORBITS” BY S. HOPE.
5 LT=1:G=500:CLS:SC=3:CH=129
10 DIMS(LT),V(LT),A(LT),SN(LT),VN(LT),D(7),CH(2047)
20 FORI=0TOLT:INPUT”CO-ORDS FOR START (S,V) “;S(I),V(I):NEXT
30 INPUT”GIVE 2ND MASS COORDS”;M(0),M(1)
40 CLS:FORI=0TO7:READD(I):NEXT:DATA128,64,32,16,8,4,2,1
45 FORI=1TO40:X=48*RND(1):Y=15*RND(1):PRINT@X,Y,”.”;:NEXT
50 FORI=0TO31:DOKEI,0:NEXT:FORI=13TO17:READA:POKEI,A:CH(I)=A:NEXT
60 DATA28,62,62,62,28
70 PRINT@22,9,CHR$(128);@ 22,10,CHR$(129);
100 GOSUB1000:X=S(0)/SC:Y=S(1)/SC
102 J=2592+X/8-INT(Y/16)*64:IFPEEK(J)>100THENK=(PEEK(J)-128)*16:GOTO110
104 CH=CH+1:IFCH>255THENPRINT@0,0,”NO MORE CHARS”:STOP
105 K=16*(CH-128):FORI=KTO14+KSTEP2:DOKEI,0:NEXT
107 IFPEEK(J)=46THENDOKEK+7,6168
108 POKEJ,CH:PRINT@42,0,255-CH;
110 A=KBD:IFA<>THENTL=A-48
115 L=K+15-(YAND15):CH(L)=CH(L)ORD(XAND7):POKEL,CH(L):GOTO100
1000 R=0:R1=0:FORI=0TOLT:VN(I)=V(I)+A(I):SN(I)=S(I)+V(I)+A(I)/2
1002 X(SN(I)+S(I))/2:R=X*X+R:Y=X-M(I):R1=R1+Y*Y
1003 NEXT:IFR<1ORR1<1THENPRINT@0,0,”BANG”;:STOP
1010 A=-G/R/SQR(R):A1=-G/R1/SQR(R1)
1015 FORI=0TOLT:A(I)=A*(S(I)+SN(I))/2+A1*((S(I)+SN(I))/2-M(I))
1020 V(I)=(VN(I)+V(I)+A(I))/2:S(I)=(SN(I)+S(I)+V(I)+A(I)/2)/2:NEXT:RETURN
Ok
LIST
5 REM: A PROGRAM TO PLOT SIMPLE GRAPHS
10 CLEAR:DIMCH(2047),DT(7)
20 DATA 128,64,32,16,8,4,2,1
30 FOR N=0 TO 7:READ DT(N):NEXT
40 GOSUB 900
45 REM: THE SINE CURVE
50 FORX=0 TO 383:Y=120+100*SIN((X-191)/60)
60 GOSUB 1000:NEXT
70 FORT=1TO2000:NEXT
80 GOSUB900:FORX=0TO383:XS=(X-191.5)/30
85 REM: THE GRAPH OF SIN(X)/X
90 Y=120+100*SIN(XS)/XS
100 GOSUB 1000:NEXT
800 END
900 CLS:CR=127:FORX=0TO383:Y=120:GOSUB1000:NEXT
910 FORY=0TO239:X=191:GOSUB1000:NEXT:RETURN
1000 X1=INT(X/8):X2=X-8*X1
1005 Y1=INT(Y/16):Y2=Y-16*Y1
1010 M=2954+X1-64*Y1:C=(PEEK(M)-128)*16
1020 IF C>0 THEN 1060
1030 CR=CR+1:IFCR>255THEN RETURN
1040 C=16*(CR-128):POKEM,CR
1050 FORK=CTOC+15:POKEK,0:CH(K)=0:NEXT
1060 N=C+15-Y2:CH(N)=CH(N)ORDT=(X2)POKEN,CH(N)
1070 RETURN
OK