1 ! SAVE XXXPAC.BAC 5 ! F|r ABC806 och ABC800 med HR-grafik av ok{nd programmerare 6 INTEGER : EXTEND 10 PREPARE 'PR:' AS FILE 1 20 RANDOMIZE 40 ; CHR$(12) 50 ! 60 Antal$=NUM$(Antal) 70 ON ERROR GOTO 140 80 OPEN 'DR1:REKORD2.'+Antal$ AS FILE 3 90 FOR T=1 TO 10 100 INPUT #3,Rekordnamn$(T) 110 INPUT #3,Rekord(T) 120 INPUT #3,Datum$(T) 130 NEXT T 140 CLOSE 3 150 GOTO 310 160 ! 170 ! _________ SORTERING 180 H|gre(0)=30000 190 FOR J=1 TO 10 200 FOR I=1 TO 10 210 FOR Wq=0 TO J-1 220 IF Test(Wq)=I THEN 250 230 NEXT Wq 240 IF Rekord(I)>H|gre(J) AND Rekord(I)<=H|gre(J-1) THEN H|gre(J)=Rekord(I) : H|gnamn$(J)=Rekordnamn$(I) : H|gdatum$(J)=Datum$(I) : Test(Wq)=I 250 NEXT I 260 Wq=Wq+1 270 NEXT J 280 IF Ret=1 THEN RETURN 290 ! 300 ! 310 ; CHR$(12) 320 FOR T=1 TO 10 330 ; EL CUR(T+4,0) T CUR(T+4,8) Rekordnamn$(T) CUR(T+4,35) Rekord(T); 340 ; NRML CUR(T+4,60) Datum$(T) 350 NEXT T 360 ! 370 GET P$ 380 ! 390 ; CHR$(12) : FGPOINT 0,0,0 : FGFILL 239,239 400 FGCTL 1 410 FGPOINT 120,20,1 : FGLINE 12,20 : FGLINE 12,220 : FGLINE 120,220 420 FGPOINT 12,111,0 : FGLINE 12,129 430 FGPOINT 60,20,1 : FGLINE 60,40 440 FGPOINT 72,40 : FGLINE 120,40 450 FGPOINT 24,40 : FGLINE 36,40 : FGLINE 36,80 : FGLINE 24,80 460 FGPOINT 12,60 : FGLINE 24,60 470 FGPOINT 48,60 : FGFILL 72,80 : FGPOINT 49,61,0 : FGFILL 71,79 480 FGPOINT 84,60,1 : FGLINE 96,60 : FGLINE 96,80 490 FGPOINT 120,60 : FGLINE 108,60 : FGLINE 108,80 : FGLINE 120,80 500 FGPOINT 12,100 : FGLINE 24,100 : FGLINE 24,110 : FGLINE 12,110 510 FGPOINT 12,130 : FGLINE 24,130 : FGLINE 24,140 : FGLINE 12,140 520 FGPOINT 36,100 : FGLINE 60,100 : FGLINE 60,140 : FGLINE 48,140 530 FGLINE 48,160 : FGLINE 36,160 : FGLINE 36,100 540 FGPOINT 72,100 : FGLINE 108,100 550 FGPOINT 72,120 : FGLINE 84,120 : FGPOINT 72,140 : FGLINE 96,140 560 FGLINE 96,120 570 FGPOINT 108,120 : FGLINE 120,120 : FGPOINT 108,140 : FGLINE 120,140 580 FGPOINT 24,160 : FGLINE 24,200 590 FGPOINT 36,220 : FGLINE 36,200 : FGLINE 48,200 : FGLINE 48,180 600 FGLINE 60,180 : FGLINE 60,200 : FGLINE 72,200 : FGLINE 72,220 610 FGPOINT 72,160 : FGLINE 96,160 : FGLINE 96,200 : FGLINE 84,200 620 FGLINE 84,180 : FGLINE 72,180 : FGLINE 72,160 630 FGPOINT 120,160 : FGLINE 108,160 : FGLINE 108,180 : FGLINE 120,180 640 FGPOINT 108,200 : FGLINE 120,200 650 FGPOINT 216,110,1 : FGLINE 228,110 : FGPOINT 216,130 : FGLINE 228,130 660 ! SLUT P] LAB 670 FOR I=20 TO 220 STEP 20 680 FOR J=120 TO 228 690 FGPOINT J,I,FGPOINT(240-J,I) 700 NEXT J 710 NEXT I 720 FOR J=120 TO 228 STEP 12 730 FOR I=20 TO 220 740 FGPOINT J,I,FGPOINT(240-J,I) 750 NEXT I 760 NEXT J 770 ! 780 Liv=2 790 ! 800 ; CHR$(12) 810 ! 820 Mat=0 : G3=1 : Yminsta=100 : G2=10 : Minsta=4 830 ! 831 Tid1$=MID$(TIME$,12,2) : Tid2$=MID$(TIME$,15,2) : Tid3$=MID$(TIME$,18,2) 832 Tid11$=MUL$(Tid1$,'3600',0) : Tid22$=MUL$(Tid2$,'60',0) 833 Tid33$=ADD$(Tid11$,Tid22$,0) 834 Sek$=ADD$(Tid33$,Tid3$,0) 840 ! 850 ! 860 ! _____________________ RITAR UT KAKORNA 870 ! 880 E=0 890 FOR T=3 TO 22 STEP 2 900 FOR J=5 TO 75 STEP 4 910 IF E=2 OR E=3 OR E=4 OR E=13 OR E=14 OR E=15 OR E=21 OR E=32 THEN 970 920 IF E=24 OR E=29 OR E=41 OR E=42 OR E=44 OR E=45 OR E=47 OR E=48 THEN 970 930 IF E=56 OR E=69 OR E=74 OR E=75 OR E=86 OR E=87 OR E=92 OR E=93 THEN 970 940 IF E=104 OR E=105 OR E=129 OR E=130 OR E=134 OR E=135 OR E=139 THEN 970 950 IF E=140 OR E=80 OR E=81 OR E=90 OR E=72 OR E=89 OR E=107 THEN 970 960 FGPOINT J*3+3,240-(T*10),2 970 E=E+1 980 NEXT J 990 NEXT T 1000 ! 1010 ! ____________ RITAR UT "ST[RKEPILLER" 1020 ! 1030 FGPOINT 17,30,3 : FGLINE 19,30 : FGPOINT 18,31 : FGLINE 18,29 1040 FGPOINT 17,210,3 : FGLINE 19,210 : FGPOINT 18,211 : FGLINE 18,209 1050 FGPOINT 222,29,3 : FGLINE 222,31 : FGPOINT 223,30 : FGLINE 221,30 1060 FGPOINT 222,209,3 : FGLINE 222,211 : FGPOINT 223,210 : FGLINE 221,210 1070 GOTO 1110 1080 ! 1090 ! 1100 ; CHR$(12) 1110 ; CUR(0,2) EL; : ; STRING$(Liv,35); 1120 ! 1130 ! 1140 ! ______ STARTV[RDEN TILL SP\KENA 1150 ! 1160 FOR T=1 TO 4 1170 Ysp|(T)=10 : Xsp|(T)=40 1180 Yysp|(T)=10 : Xxsp|(T)=40 1190 NEXT T 1200 ! 1210 ! 1220 ! 1230 ! _________ RENSAR SK[RM, DIMENSIONERAR, S[TTER V[RDEN 1240 ! 1250 Slp=1 : P$='4' : Pq$='4' 1260 ! 1280 ! 1300 ! 1310 ! _____ S[TTER UT STARTV[RDEN P] "SPIDERMAN" 1320 ! 1330 Y=20 : X=40 : Yy=20 : Xx=40 1340 ! 1350 ! 1360 ! 1370 ! 1380 ON ERROR GOTO 1470 1385 GOTO 1480 1400 ! 1410 ! 1420 ! +-----------------------------------------+ 1430 ! ! ! 1440 ! ! HUVUD-LOOPEN ! 1450 ! ! ! 1460 ! +-----------------------------------------+ 1470 Pq$='4' : GOTO 1380 1480 ! 1490 ! 1491 Xu=X*3+6 : Yu=240-Y*10 1500 Yn=Yu-20 1510 Xv=Xu-6 : Yv=Yu-10 1520 Xh=Xu+6 1530 IF SYS(5)<>0 THEN GET Pq$ 1540 ON VAL(Pq$)/2 GOTO 1560,1570,1580,1550 1550 IF FGPOINT(Xu,Yu)<>1 THEN P$=Pq$ : GOTO 1590 ELSE 1590 1560 IF FGPOINT(Xu,Yn)<>1 THEN P$=Pq$ : GOTO 1610 ELSE 1590 1570 IF FGPOINT(Xv,Yv)<>1 THEN P$=Pq$ : GOTO 1620 ELSE 1590 1580 IF FGPOINT(Xh,Yv)<>1 THEN P$=Pq$ : GOTO 1630 ELSE 1590 1590 ON VAL(P$)/2 GOTO 1610,1620,1630,1600 1600 IF FGPOINT(Xu,Yu)<>1 THEN Y=Y-1 : GOTO 1680 ELSE 1680 1610 IF FGPOINT(Xu,Yn)<>1 THEN Y=Y+1 : GOTO 1680 ELSE 1680 1620 IF FGPOINT(Xv,Yv)<>1 THEN X=X-2 : GOTO 1680 ELSE 1680 1630 IF FGPOINT(Xh,Yv)<>1 THEN X=X+2 : GOTO 1680 ELSE 1680 1640 ! 1650 Xu=X*3+6 : Yv=230-Y*10 1660 ! 1670 ! ____________ KOLLAR OM MAN TAR ST[RKEPILLER 1680 IF X>14 AND X<66 THEN 1770 1690 IF FGPOINT(Xu,Yv)<>3 THEN 1770 1700 FGPOINT Xu-1,Yv,0 : FGLINE Xu+1,Yv 1710 FGPOINT Xu,Yv+1,0 : FGLINE Xu,Yv-1 1720 G}ng=G}ng+100 : Po{ng=Po{ng+5 1730 Mat=Mat-1 : IF Mat=-142 THEN 2050 1740 Jagning=1 1750 ! 1760 ! ____________ KOLLAR OM MAN TAR ETT SP\KE I JAGNINGS-MOD 1770 IF Jagning<>1 THEN 2000 1780 M1=PEEK(30720+Y*80+X) 1790 IF M1=8 OR M1=24 OR M1=12 THEN 1820 1800 GOTO 2000 1810 ! 1820 Po{ngh=20+(G}ng/5) 1830 ; CUR(22,20) EL 'PO[NGH\JNING=' Po{ngh; : FOR H=1 TO 10000 : NEXT H 1840 ; CUR(22,20) SPACE$(25) 1850 Po{ng=Po{ng+Po{ngh 1860 ! 1870 G}ng=G}ng-30 1880 ! 1890 FOR I=1 TO 4 1900 IF ABS(Xsp|(I)-X)<6 AND ABS(Ysp|(I)-Y)<5 THEN 1920 1910 NEXT I 1920 ! 1930 ; CUR(Yysp|(I),Xxsp|(I)) ' '; 1940 ; CUR(Yysp|(I)+1,Xxsp|(I)) ' '; 1950 Ysp|(I)=10 : Yysp|(I)=10 : Xsp|(I)=40 : Xxsp|(I)=40 1960 ! 1970 ! 1980 ! ______________ KOLLAR OM MAN [TER EN "KAKA" 1990 ! 2000 IF FGPOINT(Xu,Yv)<>2 THEN 2170 2010 FGPOINT Xu,Yv,0 : Po{ng=Po{ng+1 : Mat=Mat-1 2020 ! 2030 ! ____________ KOLLAR OM PLANBYTE SKA SKE 2040 ! 2050 IF Mat<>-142 THEN 2170 2060 Planbyte=Planbyte+1 2070 ; CUR(22,20) EL 'ANTAL PLANBYTEN=' Planbyte; 2075 FOR H=1 TO 3000 : NEXT H 2080 Tid1$=MID$(TIME$,12,2) : Tid2$=MID$(TIME$,15,2) : Tid3$=MID$(TIME$,18,2) 2081 Tid11$=MUL$(Tid1$,'3600',0) : Tid22$=MUL$(Tid2$,'60',0) 2082 Tid33$=ADD$(Tid11$,Tid22$,0) 2083 Sek2$=ADD$(Tid33$,Tid3$,0) 2084 Sek3$=SUB$(Sek2$,Sek$,0) 2085 ! 2086 Po{ngh|jn=1000-VAL(Sek3$) : Po{ngh|jn=Po{ngh|jn/2 : Po{ngh|jn=Po{ngh|jn-400 2087 Po{ngh|jn=Po{ngh|jn+Po{ng/20 2090 ; CUR(22,20) EL 'PO[NG H\JNING=' Planbyte*10+Po{ngh|jn; 2091 FOR H=1 TO 5000 : NEXT H 2100 ; CUR(22,20) ' ' 2110 Po{ng=Po{ng+(Planbyte*10)+Po{ngh|jn 2120 IF Planbyte=3 AND Po{ng>1000 THEN Liv=Liv+1 2130 IF Planbyte=5 AND Po{ng>1500 THEN Liv=Liv+1 2140 GOTO 800 2150 ! 2160 ! _______ SUDDAR "PAC-MAN" 2170 POKE 30720+Yy*80+Xx,0,0,0,0 2180 POKE 30720+(Yy+1)*80+Xx,0,0,0,0 2190 ! 2200 ! ________ KOLLAR OM MAN G]R GENOM TUNNELN 2210 IF X>74 THEN X=2 : Xx=2 2220 IF X<2 THEN X=74 : Xx=74 2230 ! 2240 ! _________ RITAR PAC-MAN 2250 ! 2260 POKE 30720+Y*80+X,159,155,151,159 2270 POKE 30720+(Y+1)*80+X,144,6,9,144 2280 Yy=Y : Xx=X 2290 GOSUB 2380 2300 IF Po{ng=Xpo{ng THEN 2330 2310 ; CUR(0,27) EL 'PO[NG=' Po{ng; 2320 Xpo{ng=Po{ng 2330 ! 2340 GOTO 1480 2350 ! 2360 ! ___________ SP\KENA 2370 ! 2380 I=] 2390 IF G2<>10 THEN 2480 2400 Xminsta=Minsta+G3 : G3=G3+1 : IF Xminsta=5 THEN Xminsta=1 : G3=0 2410 IF Xminsta<>Minsta THEN I=Xminsta : GOTO 2490 2420 Yminsta=100 2430 FOR I=1 TO 4 2440 A(I)=ABS(X-Xsp|(I)) : B(I)=ABS(Y-Ysp|(I)) 2450 C(I)=A(I)/2+B(I) : IF C(I)1 THEN Ysp|(I)=Ysp|(I)-1 : GOTO 2780 2630 IF Y>Ysp|(I) AND FGPOINT(Xsu,Ysn)<>1 THEN Ysp|(I)=Ysp|(I)+1 : GOTO 2780 2640 IF X1 THEN Xsp|(I)=Xsp|(I)-2 : GOTO 2780 2650 IF X>Xsp|(I) AND FGPOINT(Xsh,Ysv)<>1 THEN Xsp|(I)=Xsp|(I)+2 : GOTO 2780 2660 Slp=RND*3+1 2670 ! 2680 G(I)=G(I)-1 2690 ON Slp GOTO 2700,2720,2740,2760 2700 IF FGPOINT(Xsu,Ysn)=1 THEN 2780 2710 Ysp|(I)=Ysp|(I)+1 : GOTO 2790 2720 IF FGPOINT(Xsu,Ysu)=1 THEN 2780 2730 Ysp|(I)=Ysp|(I)-1 : GOTO 2790 2740 IF FGPOINT(Xsv,Ysv)=1 THEN 2780 2750 Xsp|(I)=Xsp|(I)-2 : GOTO 2790 2760 IF FGPOINT(Xsh,Ysv)=1 THEN 2780 2770 Xsp|(I)=Xsp|(I)+2 : GOTO 2790 2780 G(I)=0 ! ENDAST OM EJ SLUMPFLYTTNING HAR SKETT 2790 IF ABS(Ysp|(I)-Y)<2 AND ABS(Xsp|(I)-X)<3 THEN 3500 2800 ! 2810 ! 2820 POKE 30720+Yysp|(I)*80+Xxsp|(I),0,0,0,0 2830 POKE 30720+(Yysp|(I)+1)*80+Xxsp|(I),0,0,0,0 2840 ! 2860 IF Xsp|(I)>74 THEN Xsp|(I)=2 : Xxsp|(I)=2 2870 IF Xsp|(I)<2 THEN Xsp|(I)=74 : Xxsp|(I)=74 2880 ! 2910 POKE 30720+Ysp|(I)*80+Xsp|(I),151,27,135,155 2920 POKE 30720+(Ysp|(I)+1)*80+Xsp|(I),159,147,147,159 2940 ! 2950 Yysp|(I)=Ysp|(I) : Xxsp|(I)=Xsp|(I) 2960 RETURN 2970 ! 2980 ! 2990 ! 3000 ! 3010 ! 3020 ! _______________ OMV[ND SP\KG]NG 3030 ! 3040 ! GOTO ADRESS 3050 ! 3060 G}ng=G}ng-1 : IF G}ng<0 THEN Jagning=0 : G}ng=0 : RETURN 3070 IF G}ng=10 THEN ; CHR$(7); 3080 ! 3090 Xsu=Xsp|(I)*3+6 : Ysu=240-Ysp|(I)*10 3100 Ysn=Ysu-20 3110 Xsv=Xsu-6 : Ysv=Ysu-10 3120 Xsh=Xsu+6 3130 ! 3140 IF G(I)<=0 THEN G(I)=4 ELSE 3220 3150 Xslp=RND*1+1 : ON Xslp GOTO 3160,3180 3160 IF Y>Ysp|(I) AND FGPOINT(Xsu,Ysu)<>1 THEN Ysp|(I)=Ysp|(I)-1 : GOTO 3320 3170 IF Y1 THEN Ysp|(I)=Ysp|(I)+1 : GOTO 3320 3180 IF X>Xsp|(I) AND FGPOINT(Xsv,Ysv)<>1 THEN Xsp|(I)=Xsp|(I)-2 : GOTO 3320 3190 IF X1 THEN Xsp|(I)=Xsp|(I)+2 : GOTO 3320 3200 Slp=RND*3+1 3210 ! 3220 G(I)=G(I)-1 3230 ON Slp GOTO 3240,3260,3280,3300 3240 IF FGPOINT(Xsu,Ysn)=1 THEN 3260 3250 Ysp|(I)=Ysp|(I)+1 : GOTO 3330 3260 IF FGPOINT(Xsu,Ysu)=1 THEN 3280 3270 Ysp|(I)=Ysp|(I)-1 : GOTO 3330 3280 IF FGPOINT(Xsv,Ysv)=1 THEN 3300 3290 Xsp|(I)=Xsp|(I)-2 : GOTO 3330 3300 IF FGPOINT(Xsh,Ysv)=1 THEN 3200 3310 Xsp|(I)=Xsp|(I)+2 : GOTO 3330 3320 G(I)=0 ! 3330 ! 3340 ! 3350 POKE 30720+Yysp|(I)*80+Xxsp|(I),0,0,0,0 3360 POKE 30720+(Yysp|(I)+1)*80+Xxsp|(I),0,0,0,0 3370 ! 3380 ! 3390 ! 3400 IF Xsp|(I)>74 THEN Xsp|(I)=2 : Xxsp|(I)=2 3410 IF Xsp|(I)<2 THEN Xsp|(I)=74 : Xxsp|(I)=74 3420 ! 3430 POKE 30720+Ysp|(I)*80+Xsp|(I),8,132,24,4 3440 POKE 30720+(Ysp|(I)+1)*80+Xsp|(I),32,12,12,32 3450 ! 3460 ! 3470 Yysp|(I)=Ysp|(I) : Xxsp|(I)=Xsp|(I) 3490 RETURN 3500 ! ENDAST F\R TEST 3510 ! 3520 FOR H=1 TO 5000 : NEXT H 3530 Liv=Liv-1 : IF Liv<0 THEN 3540 ELSE 1100 3540 ; CHR$(12) : FGCTL 0 3550 ! 3560 ! 3570 IF Po{ng>Rekord(10) THEN Rekord(10)=Po{ng ELSE 3770 3580 INPUT 'NAMN? 'Rekordnamn$(10) : Datum$(10)=RIGHT$(TIME$,3) 3590 Ret=1 : GOSUB 180 3600 ! 3610 FOR I=1 TO 10 3620 Rekordnamn$(I)=H|gnamn$(I) 3630 Rekord(I)=H|gre(I) 3640 Datum$(I)=H|gdatum$(I) 3650 NEXT I 3660 ! 3670 ! 3680 PREPARE 'DR1:REKORD2.'+Antal$ AS FILE 3 3690 FOR I=1 TO 10 3700 ; #3,Rekordnamn$(I) 3710 ; #3,Rekord(I) 3720 ; #3,Datum$(I) 3730 NEXT I 3740 CLOSE 3 3750 ! 3760 ! 3770 ! 3780 FOR I=1 TO 10 3790 IF Rekord(I)=Po{ng THEN ; FLSH; ELSE ; STDY; 3800 ; EL CUR(I+4,0) I CUR(I+4,8) Rekordnamn$(I) CUR(I+4,35) Rekord(I); 3810 ; NRML CUR(I+4,60) Datum$(I) 3820 NEXT I