0 REM ****************** 1 REM * * 2 REM * V U L K A N * 3 REM * * 4 REM * (C) 17.6.1985 * 5 REM * * 6 REM * by Jens Berke * 7 REM * * 8 REM ****************** 9 ? "}":POKE 580,1:POKE 539,0:POKE 203,0:POKE 710,0:POSITION 10,10:? "BITTE WARTEN!" 10 REM Δες Πολε ²°³¬° ιστ χιγθτιη‘‘ 100 DIM A$(44),B$(18),H(5):H(1)=3:H(2)=9:H(3)=17:H(4)=23:H(5)=29 105 FOR A=1 TO 18:READ B:B$(A)=CHR$(B):NEXT A 106 DATA 104,104,133,207,104,133,206,104,104,168,169,0,145,206,136,208,251,96 110 CH=(PEEK(106)-8)*256:PM=(PEEK(106)-16)*256:CH1=PM:IF PEEK(203)<>0 THEN GOTO 10000 120 FOR A=1 TO 44:READ B:A$(A)=CHR$(B):NEXT A 130 DATA 104,201,3,208,254,162,6,104,149,211,202,208,250,230,212,230,213,198,212,208,4,198 140 DATA 213,240,18,161,216,129,214,230,216,208,2,230,217,230,214,208,234,230,215,208,230,96 150 X=USR(ADR(A$),57344,CH,1024):X=USR(ADR(A$),57344,CH1,512):RESTORE 32000 160 READ A:IF A=-1 THEN POKE 203,CH/256:GOTO 180 170 FOR B=0 TO 7:READ C:POKE CH+A*8+B,C:POKE CH1+A*8+B,C:NEXT B:GOTO 160 180 FOR A=1 TO 7:READ B:POKE CH+96+A,B:NEXT A:GOTO 10000 199 REM *** MC - UNTERROUTINE *** 200 RESTORE 220:FOR A=1536 TO 1761:READ B:POKE A,B:NEXT A 210 POKE 512,0:POKE 513,6:POKE 54286,192:RETURN 220 DATA 120,72,138,72,152,72,166,203,202,134,203,208,35,162,3,134,203,166,204,232,134,204 230 DATA 142,0,208,166,205,232,134,205,142,1,208,173,223,6,69,1,141,223,6,168,185,224,6,141 240 DATA 244,2,76,138,6,201,11,208,16,166,206,202,224,47,208,2,162,48,138,32,147,6,76,130,6 250 DATA 173,120,2,201,7,208,19,166,206,232,224,201,208,2,162,200,24,138,105,6,32,147,6,76,130,6 260 DATA 169,0,141,5,210,173,120,2,201,14,208,21,169,134,141,7,210,169,0,141,6,210,166,206,202,202,202,142,3 270 DATA 208,76,141,6,169,0,141,3,208,141,7,210,141,30,208,104,168,104,170,104,64,134,206,142,2,208,141,5,208,169 280 DATA 80,141,4,210,169,102,141,5,210,96,104,104,104,168,185,216,6,133,85,185,217,6,133,84,152,72,169,32 290 DATA 32,176,242,198,85,104,168,230,84,165,84,153,217,6,32,128,241,198,85,141,222,6,201 295 DATA 32,208,5,169,42,32,176,242,96,0,0,0,0,0,0,32,0,224,224 299 REM *** WOLKEN DEFINIEREN *** 300 POKE 623,1:RESTORE 320:FOR A=PM+1057 TO PM+1071:READ B:POKE A,B:NEXT A 310 FOR A=PM+1316 TO PM+1331:READ B:POKE A,B:NEXT A:POKE 203,3:POKE 204,40:POKE 205,170:RETURN 320 DATA 64,224,192,0,8,24,60,62,126,127,255,62,28,14,4 330 DATA 2,6,6,15,31,12,4,0,0,48,120,254,124,56,248,112 399 REM *** FEUERWEHRWAGEN DIFINIEREN ** 400 RESTORE 420:FOR A=0 TO 5:READ B:POKE PM+1728+A,B:NEXT A 410 POKE PM+961,15:POKE PM+962,15:POKE 206,48:RETURN 420 DATA 126,255,255,255,255,189 499 REM *** WASSERSTRAHL *** 500 B=1:FOR A=PM+1983 TO PM+1962 STEP -1:POKE A,B:B=B+LOG(B+1)+1*(B>32):NEXT A:RETURN 599 REM *** MC-UNTERROUTINE EINLESEN *** 600 RESTORE 610:FOR A=0 TO 83:READ B:POKE 30000+A,B:NEXT A:RETURN 610 DATA 104,160,0,185,132,117,208,8,200,200,200,192,15,208,244,96,200,185,132,117,56,233,1,153,132,117,208 620 DATA 237,136,169,0,153,132,117,200,200,185,132,117,133,85,169,16,133,84,152,72,169,32,32,176,242,32,176,242 630 DATA 104,168,230,84,185,132,117,133,85,152,72,169,46,32,176,242,169,47,32,176,242,104,168,200,198,207,76,51,117 999 REM *** GRAFIK VORBEREITEN *** 1000 GRAPHICS 0:POKE 712,154:POKE 708,14:POKE 709,52:POKE 710,0:POKE 711,166:POKE 756,CH/256 1005 DL=PEEK(560)+256*PEEK(561):FOR A=6 TO 28:POKE DL+A,4:NEXT A:POKE DL+3,68 1007 POKE 82,0:POKE 752,1:POSITION 14,11:? "bitte warten" 1008 FOR A=768 TO 1792 STEP 256:X=USR(ADR(B$),PM+A,255):NEXT A 1010 GOSUB 600:GOSUB 300:GOSUB 400:GOSUB 500:GOSUB 200:POKE 1760,CH/256:POKE 1761,CH1/256 1020 POKE 53277,3:POKE 559,62:POKE 54279,PM/256:POKE 704,14:POKE 705,12:POKE 53256,3:POKE 53257,3 1030 POKE 706,56:POKE 707,140:X=19:Y=8:SC=30:ZEILE=2000:POKE 207,5:POKE 53250,48:POKE 53253,54 1040 ? CHR$(125):POSITION 0,16:? " %";CHR$(168);" #+$" 1050 ? "%";CHR$(168);CHR$(168);"&' %&'%#!!$";CHR$(168);"&'%";CHR$(168); 1060 ? CHR$(168);"%&'";CHR$(168);" ";CHR$(168);"&'";CHR$(168);"%";CHR$(168);"#!!!$";CHR$(168); 1070 ? "!!!!!$";CHR$(168);"#!!!!!!!!!!!!!!!!!!$#!!!!!!!!!!!!"; 1080 COLOR 41:PLOT 0,20:DRAWTO 39,20:COLOR 33:PLOT 0,19:DRAWTO 39,19 1085 PLOT 0,21:DRAWTO 39,21:PLOT 0,22:DRAWTO 39,22:? "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; 1090 POSITION 0,0:? CHR$(157):POSITION 3,22:? "HAEUSER!:!5!!!!!!!!!PUNKTE!:!0" 1100 COLOR 34:PLOT X,Y 1110 FOR FL=1 TO 3:GOSUB 4000:NEXT FL:FL=0:SC=0:GOSUB 6000:Z=32:POKE DL,240 1999 REM *** STICKABFRAGE (KREUZ) *** 2000 ST=STICK(0):IF ST=15 THEN 2050 2010 COLOR 32:PLOT X,Y:SOUND 1,100,12,6 2020 X=X+(ST<8)*(X<35)-(ST>8 AND ST<12)*(X>0):SOUND 1,0,0,0 2030 Y=Y+(ST=5 OR ST=9 OR ST=13)*(Y<15)-(ST=6 OR ST=10 OR ST=14)*(Y>0) 2040 COLOR 34:PLOT X,Y 2050 IF STRIG(0)=0 THEN 5000 2999 REM *** LAVABROCKEN BEWEGEN *** 3000 IF PEEK(207)=0 THEN 9000 3005 FL=FL+1:IF FL=4 THEN FL=1 3010 Q=USR(30000):Q=USR(1702,(FL-1)*2):IF PEEK(30084)=0 THEN POKE 53761,0 3020 Z=PEEK(1758):IF Z=32 THEN GOTO ZEILE 3030 IF Z=38 OR Z=39 THEN 8000 3040 GOSUB 4000:GOTO ZEILE 3999 REM *** NEUER LAVABROCKEN NACH OBEN *** 4000 FOR A=15 TO O STEP -5:COLOR 42:PLOT 36,A:SOUND 3,A+100,0,10:COLOR 32:PLOT 36,A:NEXT A:SOUND 3,0,0,0 4005 A=INT(RND(0)*35):IF RND(0)7 AND PEEK(53255)<>15 THEN 3000 7020 A=INT((PEEK(206)-47)/4):B=A-1*(A/2=INT(A/2)) 7030 FOR C=0 TO 4:IF PEEK(30084+C*3)=0 THEN NEXT C:GOTO 3000 7040 Q=PEEK(30086+C*3):IF Q<>B AND Q<>B+2 AND Q<>B-2 THEN NEXT C:GOTO 3000 7050 COLOR 32:POSITION A-1-1*(A/2<>INT(A/2)),16:? " "; 7060 POKE 30084+C*3,0:POKE 30086+C*3,0:SC=SC+10:GOSUB 6000:POKE 53278,0:GOTO 3000 7999 REM *** HAUS IST GETROFFEN WORDEN *** 8000 COLOR 44:A=PEEK(1752+(FL-1)*2):PLOT A,16:SOUND 0,50,0,4 8010 IF A/2=INT(A/2) THEN PLOT A-1,16:B=A-1:GOTO 8030 8020 PLOT A+1,16:B=A 8030 FOR C=0 TO 4:IF PEEK(30084+C*3)=1 THEN NEXT C 8040 POKE 30086+C*3,B:POKE 30085+C*3,50-SG*6:POKE 30084+C*3,1:H=H+SG/1000:GOTO 3040 8999 REM *** SPIELENDE *** 9000 POKE DL,112:POKE 1584,76:POKE 1585,141:POKE 1586,6:POKE DL,240:RESTORE 9500 9010 X=USR(ADR(B$),PM+1536,255):POKE 53253,0:POKE 53251,0:POKE 706,154:POSITION 13,2:? "0" 9015 SOUND 3,0,0,0:SOUND 2,0,0,0 9020 FOR A=1 TO 9:READ C:FOR B=0 TO 7:POKE PM+1584+A*8+B,PEEK(57344+C*8+B):NEXT B:NEXT A 9030 POSITION 11,13:? "!!!PRESS!!START!!!":A=0:POKE 53250,124 9035 POSITION 11,14:? "!!!RESET!!!MENU!!!" 9040 IF PEEK(53279)=6 THEN POKE 53248,0:POKE 53249,0:POKE 53250,0:RUN 9050 A=A+1:IF A=256 THEN A=0 9060 POKE 706,A:GOTO 9040 9500 DATA 39,33,45,37,0,47,54,37,50 9999 REM *** VORSPANN UND LEVEL-EINGABE *** 10000 GRAPHICS 0:POKE 559,62:POKE 53277,3:POKE 54279,PM/256:POKE 704,200:POKE 705,200:POKE 752,1:? CHR$(125) 10010 X=USR(ADR(B$),PM+1024,255):X=USR(ADR(B$),PM+1280,255):POKE 708,200:POKE 710,0:POKE 709,56 10015 COLOR 18:PLOT 0,2:DRAWTO 39,2:PLOT 39,18:DRAWTO 0,18:PLOT 0,18:POKE 53256,0:POKE 53257,0 10020 DL=PEEK(560)+256*PEEK(561):POKE DL+13,6:POKE DL+14,6:POSITION 11,4:? "JB'85 praesentiert :" 10030 RESTORE 11000:FOR X=1 TO 6:Q=USR(ADR(B$),PM+1280,255):POKE 53249,96+X*8:READ C:FOR A=1 TO 6 10040 Z=PEEK(57344+C*8+A):POKE PM+1120+A,Z 10050 FOR B=30 TO 96+X*8 STEP 8+X:POKE 53248,B:SOUND 0,B-30,0,6:NEXT B 10060 POKE PM+1120+A,0:POKE PM+1376+A,Z 10070 NEXT A:POSITION X+6,8:? CHR$(C+32):NEXT X:SOUND 0,0,0,0 10080 POKE DL+22,6:POKE DL+23,6:POSITION 7,11:? "GESCHRIEBEN VON JENS BERKE" 10085 POSITION 8,13:? "Copyright (c) 17.6.1985" 10090 POSITION 5,16:? "level ";CHR$(26);" ";CHR$(16):SG=0 10100 IF PEEK(53279)=6 THEN POKE 53248,0:POKE 53249,0:H=SG/10+0.5:GOTO 1000 10110 IF PEEK(53279)<>5 THEN 10100 10120 SG=SG+1:IF SG=6 THEN SG=0 10130 POSITION 13,16:? CHR$(SG+16):FOR A=10 TO 0 STEP -1:SOUND 0,100,10,A:NEXT A:GOTO 10100 11000 DATA 54,53,44,43,33,78 32000 DATA 1,170,171,186,170,170,170,174,170 32010 DATA 2,0,48,48,48,204,48,48,48 32020 DATA 3,2,2,10,11,42,42,46,170 32030 DATA 4,0,128,160,160,160,168,234,174 32040 DATA 5,0,0,0,0,0,32,40,174 32050 DATA 6,170,170,170,170,21,29,29,21 32060 DATA 7,170,170,170,170,84,116,116,84 32070 DATA 8,0,48,252,252,240,32,32,32 32080 DATA 9,85,255,255,125,255,255,255,85 32090 DATA 33,86,86,102,102,86,86,102,102 32100 DATA 37,86,86,106,90,90,106,86,86 32110 DATA 40,102,102,102,86,86,102,102,102 32120 DATA 43,102,102,102,90,90,102,102,102 32130 DATA 44,106,106,106,106,106,106,86,86 32140 DATA 46,102,102,86,86,86,86,102,102 32150 DATA 48,86,86,102,86,86,106,106,106 32160 DATA 50,86,86,102,86,86,90,102,102 32170 DATA 51,86,86,106,86,86,166,86,86 32180 DATA 52,86,86,154,154,154,154,154,154 32190 DATA 53,102,102,102,102,102,102,86,86 32200 DATA 54,102,102,102,120,102,86,86,154 32210 DATA 26,170,170,154,154,170,154,154,170 32220 DATA 16,86,86,102,102,102,102,86,86 32230 DATA 17,154,90,90,154,154,154,154,154 32240 DATA 18,86,86,166,86,86,106,86,86 32250 DATA 19,86,86,166,150,150,166,86,86 32260 DATA 20,106,102,102,86,86,166,166,166 32270 DATA 21,86,86,106,86,86,166,86,86 32280 DATA 22,86,86,106,86,86,102,86,86 32290 DATA 23,86,68,166,166,166,166,166,166 32300 DATA 24,86,86,102,86,86,102,86,86 32310 DATA 25,86,86,102,86,86,166,86,86 32320 DATA 10,8,40,42,174,190,56,32,0 32330 DATA 11,190,255,255,255,255,190,170,170 32340 DATA 12,0,32,34,34,42,170,190,190 32350 DATA 13,174,234,170,150,150,170,174,170 32360 DATA 14,0,3,15,48,48,51,60,255 32370 DATA 15,0,240,63,12,40,204,252,255 32380 DATA -1 32767 DATA 0,8,136,136,138,170,190