1 REM Ins{nd av Kristoffer Eriksson SYSOP <5357> 1986-12-19 06.02.47 (DUMP) 20 ! ------------------------------- 30 ! 1986-01-19 40 ! DAVID ANDERSSON <5201> 50 ! ------------------------------- 60 ! Lite grafiktrix f|r ABC80(0). Som NY]R.BAC fast annorlunda. 70 ! Programmet f}r k|ras 1986-12-31. 80 ! 1986-12-16 Kristoffer Eriksson <5357>, Konverterat till ABC800-serien 85 ! Kr{ver DOTOPT.BAC p} ABC806 90 ! 100 INTEGER : EXTEND 110 ! 120 P9=2 ! Max raketer 130 P8=7 ! Max extra raketer 140 L9=128 ! Max l{ngd p} dotsekvens 150 V9=7 ! Variationer av dotsekvens 160 Cg$=GYEL 170 Ct$=MAG 180 Abc=800+(2 AND PEEK(39)=3)+(6 AND PEEK(39)=4) 190 DIM X(V9,L9),Y(V9,L9),L(V9) 200 DIM V(P8),V2(P8),X1(P8),Y1(P8),I1(P8),I2(P8),F(P8) 210 C9=PEEK(65364) : C8=C9/2-18 ! Antal kolumner (40/80) 220 Y9=C9*2 ! Antal grafikkolumner 230 ! 240 GOSUB 1000 ! Best{m tid till ny}r 250 GOSUB 1500 ! Visa bakgrund 260 GOSUB 2000 ! Init sekvenser 270 GOSUB 3000 ! Init raketer 280 GOSUB 3200 ! K|r 290 ; CUR(22,0) SPACE$(8);Cg$ : ; SPACE$(8);Cg$; 300 ; CUR(21,0); 310 END 1000 REM BEST[M TID 1010 ; CHR$(12) 1020 ; TAB(C8) 'Hur m}nga minuter {r det kvar' 1030 ; TAB(C8) 'till kl 00:00 den 1:a jan 1987 ?' 1040 ; 1050 ; TAB(C8); : INPUT M. 1060 ; 1070 IF M<0 ; TAB(C8) 'D} {r det f|r sent att k|ra programmet' : GOTO 310 1080 IF PEEK(65525)>80 THEN 1080 1090 GOSUB 4210 : T.=T.+PEEK(65524)/60 1100 T.=T.+M. 1110 T3.=INT(T.) : T2=(T.-T3.)*60 1120 RETURN 1500 REM RITA STAD 1510 ; CHR$(12) 1520 FOR X=0 TO 23 : ; CUR(X,0) Cg$; : NEXT X 1530 ; CUR(19,15) '5' CUR(20,14) 'j'; 1540 ; CUR(21,1) '  5'; 1550 ; CUR(22,1) LEFT$('`~}0  5  ||  ppp|||    |||| ppp ',C9-2);; 1560 ; CUR(23,1) STRING$(C9-2,127); 1570 RETURN 2000 REM INITIERA DOTSEKVENSER 2010 ; CUR(9,C8) Ct$ CUR(9,C8+1) 'Jag v{rmer upp, v{nta 20 sekunder...'; 2020 ! Dotsekvenser f|r stigning 2030 FOR V=0 TO 3 2040 READ D1.,D2.,D3. 2050 T.=2. 2060 FOR L=48 TO 0 STEP -1 2070 X(V,L)=INT(D1.*(T.^2)+.5) 2080 Y(V,L)=INT(-D2.*T.+D3.*SIN(T.)+.5) 2090 IF L<48 IF X(V,L)=X(V,L+1) AND Y(V,L)=Y(V,L+1) THEN L=L+1 2100 T.=T.+1. 2110 NEXT L : L(V)=48 2120 NEXT V 2130 DATA 0.03, 0.2,0 2140 DATA 0.03, 0.1,0 2150 DATA 0.03,-0.1,1.2 2160 DATA 0.03,-0.2,0 2170 ! Dotsekvenser f|r explosion 2180 ; CUR(9,C8) SPACE$(38) CUR(9,0) Cg$; 2190 FOR V=4 TO 7 2200 S=0 2210 READ R1.,R2.,A1. 2220 FOR A.=.1 TO 4.*PI STEP 4.*PI/A1. 2230 A1.(S)=SIN(A.) : A2.(S)=COS(A.) : S=S+1 2240 NEXT A. 2250 L=0 2260 FOR R.=.6 TO R1. 2270 FOR S=0 TO A1.-1. 2280 X(V,L)=INT(A1.(S)*R.+R./R1.+.5) 2290 Y(V,L)=INT(A2.(S)*R.+.5) 2300 IF L IF X(V,L)=X(V,L-1) AND Y(V,L)=Y(V,L-1) GOTO 2360 2310 L=L+1 2320 IF R.L(V) GOTO 3250 3240 X=X1+X(V,I1) : Y=Y1+Y(V,I1) : IF X>=0 AND Y>=2 AND YL(V) GOSUB 3800 : GOTO 3270 ELSE IF I2<0 GOTO 3270 3260 X=X1+X(V,I2) : Y=Y1+Y(V,I2) : IF X>=0 AND Y>=2 AND Y25000 RETURN 3420 GOSUB 4210 : IF T.>T3. OR (T.=T3. AND PEEK(65524)>=T2) THEN 3600 3430 FOR P=0 TO P9 : IF V(P)>=0 NEXT P : C=60 : RETURN 3440 X1=INT(RND*40.) : X1(P)=X1 3450 Y1=5.+INT(RND*(Y9-10.01)) : Y1(P)=Y1 3460 V=X1 AND 3 : V(P)=V 3470 V2(P)=(Y1 AND 3)+4 3480 FOR I2=L(V)-18 TO 0 STEP -1 3490 X=X1+X(V,I2) : IF NOT DOT(X,Y1+Y(V,I2)) OR X<57 IF X<69 NEXT I2 3500 I1(P)=I2+3+1 3510 I2(P)=I2+1 3520 ! IF U1 OUT 6,0,6,U2 3525 IF Abc=806 OR Abc=802 THEN OUT 34,9 3530 U2=157 : U1=5 3540 C=INT(RND*15.) : C=C1+C*C+16 3550 F(P)=145+INT(RND*7) 3560 RETURN 3600 REM STARTA RAKETER F\R ]RTAL 3610 IF C2 C2=0 : C=80 : RETURN 3620 P9=P8 ! Till}t extra raketer 3630 FOR P=0 TO P9 : IF V(P)>=0 NEXT P : C=40 : RETURN 3640 READ X1,Y1,V2 3650 IF X1=0 C=30000 : RETURN ! Slut p} det roliga 3660 Y1=Y1+(Y9/2-40) 3670 X1(P)=X1 : Y1(P)=Y1 3680 V2(P)=V2 3690 V=X1 AND 3 : V(P)=V 3700 GOSUB 3480 : READ C : C=C1+C 3705 IF Abc=806 OR Abc=802 THEN OUT 34,9 3710 RETURN 3800 REM B\RJA EXPLOSION 3810 X=X1+X(V,I2) : Y=Y1+Y(V,I2) 3820 V(P)=V2(P) : V2(P)=-1 3830 IF V(P)<0 RETURN 3840 I1(P)=0 : I2(P)=-25-V(P)*5 3850 ! IF U1 OUT 6,0,6,U2 3855 IF Abc=806 OR Abc=802 THEN OUT 34,10 3860 U2=137 : U1=8 3870 RETURN 4000 REM ]RTALS DATA 4010 DATA 15,20,7,15 4020 DATA 40,20,7,50 4025 DATA 10,68,5,5 4030 DATA 10,48,4,5 4040 DATA 09,58,4,15 4060 DATA 22,63,4,5 4070 DATA 34,59,4,5 4080 DATA 46,56,4,5 4090 DATA 0,0,0,0 4200 REM TID 4210 T.=(PEEK(65521)*24.+PEEK(65522))*60.+PEEK(65523) 4220 RETURN