2bc0 3b9a 0000 B ... SNAKE           
5! S N A K E * * * * Z 1013
10 WINDOW
150 DIM R(4),HI(3),SP(8,5),U(4),UM(4)
160 DATA-1,-32,1,32 
180 RESTORE
190 FOR I=1 TO 4:READ R(I):NEXT I
220 GOSUB 1410
230 CLS
240 PRINT AT(12,5);"Stufe Nr. 1, 2 or 3 ?"
250 PRINT AT(0,0);" ":Q$=INKEY$
260 IF Q$<"1"OR Q$>"3"THEN 250 ELSE ST=ASC(Q$)-48
270 H=INT(ST)*10
280 E=-4367:ER=-1:C=-1:KR=0:SC=0:T=0:A=-4368:TH=-50
300 CLS
310 GOSUB 700
320 POKE A,195
330 POKE A+1,207
340 PRINT AT(30,0);"HP : ",HI(ST)
350 PRINT AT(30,10);"Punkte: ",SC
360 PRINT AT(30,22);"Stufe : ",ST
380 GOSUB 400    
390 END
400!SPIELSCHLEIFE
430 C$=INKEY$
440 IF C$=CHR$(11)THEN C=-32:GOTO 476
450 IF C$=CHR$(9)THEN C=1:GOTO 476
460 IF C$=CHR$(10)THEN C=32 :GOTO 476
470 IF C$=CHR$(8)THEN C=-1 :GOTO 476
471 LV=NOT LV:IF ST=1 OR(ST=2 AND LV)THEN 430
476 IF E<-5120 OR E>-4192 THEN 1010
480 IF(PEEK(A+C)=255)OR(PEEK(A+C)=207)THEN 1010
490 IF(PEEK(A+C)>48)AND(PEEK(A+C)<58)THEN T=Z+1:GOSUB 1300
500 POKE A,207:A=A+C:T=T-1
510 POKE A,195
515 IF PEEK(E)=32 OR PEEK(E)=255 THEN 530
520 POKE E,32 
530 IF T>0 THEN 430
540 IF PEEK(E+ER)=207 THEN 580
550 FOR I=1 TO 4
560 IF PEEK(E+R(I))=207 THEN ER=R(I):GOTO 580
570 NEXT I
580 E=E+ER
590 IF T=TH THEN GOSUB 610
600 GOTO 430
610!ZAHL GENERIEREN
640 Z=INT(9*RND(1))+1
650 P=INT(880*RND(1))+(-5161)
660 IF PEEK(P)<>32 THEN 640
670 POKE P,Z+48:BEEP:BEEP
690 RETURN
700 INK 2:FOR I=0 TO 31
750 PRINT AT(0,I);CHR$(255)
760 PRINT AT(28,I);CHR$(255)
770 NEXT I
780 FOR I=0 TO 28
790 PRINT AT(I,0);CHR$(255)
800 PRINT AT(I,31);CHR$(255)
810 NEXT I
820 FOR I=4 TO 1 STEP-1
830 SP(2,I)=-4792+I*32
840 SP(4,I)=-4472-I*32
850 SP(6,I)=-4777+I*32
860 SP(8,I)=-4457-I*32
870 NEXT I
880 FOR I=4 TO 1 STEP-1
890 SP(1,I)=-4637+I*1
900 SP(3,I)=-4627-I*1
910 SP(5,I)=-4622+I*1
920 SP(7,I)=-4612-I*1
930 NEXT I
940 FOR I=1 TO 9 
950 PRINT AT(10+I,8);CHR$(255)
960 PRINT AT(10+I,23);CHR$(255)
970 PRINT AT(15,3+I);CHR$(255)
980 PRINT AT(15,18+I);CHR$(255)
990 NEXT I
1000 RETURN
1010 U(1)=A+1:U(2)=A+32:U(3)=A-1:U(4)=A-32
1012 FOR I=1 TO 4:UM(I)=PEEK(U(I)):NEXT I
1014 Z=42
1016 FOR I=1 TO 1      
1018 FOR K=1 TO 4
1020 POKE U(K),Z:NEXT K
1021 FOR K=1 TO 4
1022 POKE U(K),32:NEXT K:NEXT I
1023 FOR I=1 TO 4
1024 POKE U(I),UM(I):NEXT I
1040 T=SC+1
1050 POKE A,42:Z=208
1060 IF PEEK(A+ER)=207 THEN 1100
1070 ER=0:FOR I=1 TO 4
1080 IF PEEK(A+R(I))=207 THEN ER=R(I)
1090 NEXT I:IF ER=0 THEN T=0:GOTO 1150
1100 A=A+ER
1102 IF Z>223 THEN Z=208
1105 IF PEEK(A+ER)=255 THEN 1120
1110 POKE A,Z:BEEP
1120 T=T-1:Z=Z+1
1130 IF T>0 THEN 1060
1150!
1160 CLS:PRINT AT(0,0);" "
1170 PRINT AT(3,10);"Stufe ",ST
1180 PRINT AT(4,10);"========"
1190 PRINT AT(7,10);"Punkte",SC
1200 IF SC>HI(ST)THEN HI(ST)=SC
1210 PRINT AT(11,10);"Hoechst-Punkte :",HI(ST)
1215 IF SC=0 GOTO 1230
1220 PAUSE 10:IF SC=HI(ST)THEN PRINT AT(18,0);"Hoechstpunktzahl !!!"
1230 PRINT AT(22,0);"Bei Fortsetzung Taste druecken!"
1240 IF INKEY$=""THEN 1240 
1250 GOTO 180
1300 SC=SC+Z
1310 PRINT AT(30,10);"Punkte: ",SC
1320 IF(KR<4)AND(SC>=H)THEN KR=KR+1:GOSUB 1370:H=H+H/KR
1330 RETURN
1370 FOR I=1 TO 8
1380 POKE SP(I,KR),32:POKE SP(I,KR)-1024,52
1390 NEXT I:GOSUB 2350:TH=-50+INT(HI(ST)/4)
1400 RETURN
1410!TITELBILD
1460 CLS:RESTORE 2220:PRINT AT(0,0);" "
1470 FOR I=1 TO 5
1480 READ Z
1490 FOR K=1 TO Z
1500 READ Y,X
1510 PRINT AT(X,Y);""
1540 NEXT K
1550 NEXT I
1650 PRINT AT(24,3);"Fertig? Dann Taste druecken!"
1651 PRINT AT(25,27);CHR$(157)
1652 PRINT AT(27,27);"U"
1656 PRINT AT(28,25);"<-_->"
1658 PRINT AT(29,27);CHR$(154)
1660 GOSUB 2310:Z=128
1670 POKE-4286,Z+1
1680 POKE-4253,Z+2
1690 POKE-4222,Z+3
1700 POKE-4255,Z+4:Z=Z+4
1710 A=-4107:POKE A,195
1720 E=A:ER=-1
1730 FOR I=1 TO 5
1740 E=E+1:POKE E,207
1750 GOSUB 2310
1760 NEXT I
1770 GOSUB 2120
1780 FOR K=1 TO 4
1790 S=R(K)
1800 IF K=1 THEN X=2:Y=19:P=-4255:Z=Z+1
1810 IF K=2 THEN X=3:Y=18:P=-4286:Z=Z+1 
1820 IF K=3 THEN X=4:Y=19:P=-4253:Z=Z+1
1830 IF K=4 THEN X=3:Y=20:P=-4222:Z=Z+1
1835 IF Z>255 THEN Z=128
1840 POKE P,Z
1850 IF ABS(S)=32 THEN RZ=9:GOTO 1870
1860 RZ=21
1870 FOR I=1 TO RZ
1880 GOSUB 2310
1900 POKE A,207:A=A+S
1910 POKE A,195:POKE E,32
1920 IF PEEK(E+ER)=103 THEN 1960
1930 FOR J=1 TO 4
1940 IF PEEK(E+R(J))=207 THEN ER=R(J):GOTO 1960
1950 NEXT J
1960 E=E+ER
1970 GOSUB 2030
1980 NEXT I
1990 POKE P,Z
2000 NEXT K
2010 GOTO 1780
2030 IF B=-4760 THEN GOSUB 2120
2040 IF(PEEK(B-1)>52)AND(PEEK(B-1)<57)THEN T=N+1
2050 POKE B,207:B=B-1:T=T-1
2060 POKE B,195
2070 POKE F,32
2080 IF T>0 THEN 2100
2090 F=F-1
2100 RETURN
2120 FOR J=0 TO 18
2130 POKE-4760+J,32
2140 NEXT J
2150 B=-4602:F=B+1
2160 POKE B,195:POKE F,207
2170 N=INT(4*RND(1))+5
2180 L=INT(11*RND(1))+(-4618)
2190 POKE L,48+N:BEEP:POKE L-60,48+N
2200 RETURN
2210!
2220 DATA 12,3,0,2,0,1,0,0,1,0,2,1,3,2,3,3,4,3,5,2,6,1,6,0,6  
2230 DATA 19,6,6,6,5,6,4,6,3,6,2,6,1,6,0,7,1,7,2,8,3 
2235 DATA 9,4,9,5,10,6,10,5,10,4,10,3,10,2,10,1,10,0 
2240 DATA 16,13,6,13,5,14,4,14,3,15,2,15,1,16,0,17,1,17 
2245 DATA 2,18,3,18,4,19,5,19,6,15,3,16,3,17,3 
2250 DATA 14,22,6,22,5,22,4,22,3,22,2,22,1,22,0,26 
2255 DATA 0,25,1,24,2,23,3,24,4,25,5,26,6,12,31,6,30,6,29,6 
2260 DATA 29,5,29,4,29,3,29,2,29,1,29,0,30,0,31,0,30,3 
2300 DATA-1,-32,1,40  
2310 B$=""
2320 B$=INKEY$
2330 IF B$=""THEN RETURN
2340 GOTO 230
2350 Y$=" GRATULATION "
2360 X$=""
2370 FOR K=1 TO 20
2380 PRINT INK 4;AT(0,10);Y$:PRINT INK 4;AT(28,10);Y$:BEEP:PAUSE 1
2390 PRINT INK 2;AT(28,10);X$:PRINT INK 2;AT(0,10);X$:PAUSE 1
2400 NEXT K:RETURN