10 REM
20 REM
30 REM
40 REM
50 REM
60 REM
70 REM
80 REM
90 REM
100 REM
110 REM
120 REM ** Henrik ]shuvud ** 85-08-03 **
130 REM
135 ; INP(3%);
140 GOTO 2010
150 RANDOMIZE : DIM F$(2%)=6%,G$(2%)=6%,[$(2%)=6%
160 GOTO 310
170 B$="EFGHIJKLMNOPQRSSSTUVVUUTSSSSTUVWWWXYZZYXXXXYYYYYYYYYYXXWWVUTTSSSTUUUTSRQQPQRSTU"
180 C$="UUVVWXXXYZ[\]^^]]]\\\\\\\\\]]^__``__^]]\\\\\[\]]\\]^_```__^]\\[ZZZ[\\\[ZZZYXXXW"
190 GOTO 490
200 B$="DDEEEFGHHHHHGGFEEEDCBA@?????@ABCCCDEFFFGHIIJKLLLLKJIHHGGGGGGGGGGGGHHIJKKLMMMNOP"
210 C$="OPQRQPPOOOOPQRSTUUUUTSRQQPOOOOPQQQPONMLKJJJJJJJJJJJIHHGFEEEEEEFGHIIIIHGGGFEDDDD"
220 GOTO 490
230 B$="DDEFGGGGFEEEEEDCBBA@@@@?????@ABCDDDDDDDDDDDDEFFFGHIIHHGFFFFGHIJJJJJJJJJIHGFEDDD"
240 C$="DDDDDDDDDDDDEFGGHIIIHGGFEEDCBA@????@ABCCCCDEFGGGGGFEDCCCCCDEEEEEDCBBA@@@@@ABBCD"
250 GOTO 490
260 B$="()*+,-./011234323345665543345567789:;<<=<<=>>?@@A@@AA@AAA@?>==>?>=<;;;;;;;;;;;;"
270 C$=";;;;;;<=>>>??@@??@@ABCCCDDCCDDEEFFGFEDDEFEEDDDCCDDCCBBBBBBAAAABCBAA@?>=<;;:9876"
280 D$="DDDDEFGGGGFEDCCCBABCDEEEFGHIJKKKJJJKLMMLLKKJIHHHHIIIIJKLMMNOOOPQPOOOOONMMMMMMMM"
285 Q5%=60%
290 E$="MMMMMMNOOONNMLLLKJJJKLLLLMNOPQRSSSSSRQQQPOOOPQQPPPQRSTTTTTUVVVWXXXYZZZZZYXXXXXY"
300 GOTO 490
310 B%=1% : C%=-1% : F%=28% : G%=17% : H%=4% : M%=21% : S%=1100% : V%=54% : Y%=1% : ]%=34%
320 DATA 245,197,213,175,50,244,253
330 DATA 50,243,253,245,205,147,2
340 DATA 6,38,19
350 DATA 19,26,27,18,19,16,249
360 DATA 62,32,18,241,60,254,24
370 DATA 32,230
380 DATA 209,193,241,201
390 FOR I%=65408% TO 65408%+36%
400 READ P% : POKE I%,P%
410 NEXT I%
420 ; CHR$(12%) : FOR I%=1% TO 24% : ; CHR$(151%,151%) : NEXT I% : ; CUR(0%,0%)" ";
430 REM
440 GOSUB 980
450 FOR I%=4% TO 79% : SETDOT 33%,I% : NEXT I%
460 READ K1%,L1% : IF K1%=0% OR PEEK(65013%) RESTORE 1050 : GOTO 480
470 FOR I1%=1% TO K1% : OUT 6%,0%,6%,121% : FOR I%=1% TO L1% : NEXT I% : NEXT I1% : L1%=L1%-1% : GOTO 460
480 ON B% GOTO 170,200,230,260
490 REM
500 IF B%=4% 640
510 GOSUB 750 : C%=C%+2% : IF C%=79% C%=-1% : GOTO 560
520 GOSUB 860 : P%=CALL(65408%) : GOSUB 980
525 SETDOT ASC(MID$(B$,C%,1%))-35%,78% : SETDOT ASC(MID$(B$,C%+1%,1%))-35%,79%
530 IF DOT(M%,38%) OR DOT(M%+2%,38%) OR DOT(M%,39%) OR DOT(M%+2%,39%) 1320
540 GOSUB 740
550 GOTO 510
560 IF C$=B$ 570 ELSE B$=C$ : GOTO 490
570 IF E% B%=4% : GOTO 480
580 IF B%>1% 600
590 GOSUB 860 : P%=CALL(65408%) : GOSUB 980 : GOSUB 740 : FOR I%=33% TO 52% : SETDOT I%,78% : NEXT I% : SETDOT 33%,79%
600 IF \% 1860
610 D%=D%+1% : IF D%=5% D%=0% : GOTO 620 ELSE C%=-1% : GOTO 480
620 REM
630 B%=B%+1% : GOTO 480
640 GOSUB 750 : C%=C%+2% : IF C%=79% C%=-1% : GOTO 700
650 GOSUB 860 : P%=CALL(65408%) : GOSUB 980
655 SETDOT ASC(MID$(B$,C%,1%))-37%+E%,78% : SETDOT ASC(MID$(B$,C%+1%,1%))-37%+E%,79%
660 SETDOT ASC(MID$(D$,C%,1%))-35%,78% : SETDOT ASC(MID$(D$,C%+1%,1%))-35%,79%
670 IF DOT(M%,38%) OR DOT(M%+2%,38%) OR DOT(M%,39%) OR DOT(M%+2%,39%) 1320
680 GOSUB 740
690 GOTO 640
700 IF C$=B$ 710 ELSE B$=C$ : D$=E$ : GOTO 640
710 E%=E%+1% : IF E%=5% E%=0% : GOTO 1430
720 C%=1% : B%=3% : GOSUB 860 : P%=CALL(65408%) : GOSUB 980 : GOSUB 740
730 FOR I%=33% TO 52% : SETDOT I%,78% : NEXT I% : SETDOT 33%,79% : GOTO 480
740 FOR I%=0% TO Q5% : NEXT I% : RETURN
750 REM
760 IF F%=1% 840
770 F%=F%-1% : IF F%?4",F%*(-1%)+4%,1%); : J%=37% : RETURN
800 ; CUR(G%-2%,39%)MID$("` (,<,",F%*(-1%)+7%,1%);CUR(G%-1%,39%)MID$("(+/o#4",F%*(-1%)+7%,1%);
810 ; CUR(G%,39%)MID$(" rw0",F%*(-1%)+7%,1%); : K%=34% : RETURN
820 ; CUR(G%-1%,39%)MID$(" ppp ",F%*(-1%)+6%,1%);CUR(G%,39%)MID$("jOIL5",F%*(-1%)+6%,1%); : L%=35% : RETURN
830 RETURN
840 READ F%,G%,H%
850 RETURN
860 IF J% J%=J%-1%
870 IF K% K%=K%-1%
880 IF L% L%=L%-1%
890 ; CUR(0%,4%)" "
900 IF S%=0% N%=N%+1% : IF DOT(M%+3%,39%) SETDOT M%+2%,43% : GOTO 940 ELSE 940
910 IF M%=8% 930
920 IF INP(56%)=221% N%=N%-1%
930 IF INP(56%)=173% N%=N%+1% : IF DOT(M%+3%,39%) SETDOT M%+2%,43%
940 IF Q% CLRDOT Q%,35%
950 CLRDOT M%,36% : CLRDOT M%,37% : CLRDOT M%+1%,38% : CLRDOT M%+2%,36% : CLRDOT M%+2%,37%
960 M%=M%+N% : N%=0%
970 RETURN
980 SETDOT M%,36% : SETDOT M%,37% : SETDOT M%+1%,38% : SETDOT M%+2%,36% : SETDOT M%+2%,37%
990 IF S%=0% S%=2%
1000 S%=S%-2% : ; CUR(0%,4%)S%CUR(0%,11%)R%
1010 IF Q% Q%=Q%+1% : IF DOT(Q%+1%,35%) OR DOT(Q%+1%,36%) OR DOT(Q%+1%,37%) 1250 ELSE SETDOT Q%,35% : GOTO 1030
1020 IF INP(56%)=218% AND NOT DOT(M%+3%,36%) Q%=M%+2%
1030 RETURN
1040 DATA 20,29,20,31,20,29,40,36,30,29,160,31,20,31,20,36,20,40,40,36,30,31,160,29,0,0
1050 DATA 27,18,7,53,17,4,28,18,6,52,17,4,28,18,6,52,17,4,27,18,7,53,17,4,28,18,6
1060 DATA 58,11,6,32,12,7,49,11,6,32,12,7,47,11,6,33,12,4,47,11,7,33,12,4,47,11,6,33,12,4
1070 DATA 36,10,6,14,12,4,10,10,7,56,10,6,14,12,4,10,10,7,56,10,6,14,12,4,10,10
1075 DATA 7,70,12,4,10,10,7,56,10,6,14,12,4,10,10,7
1080 DATA 78,13,4,57,10,6,14,12,4,10,10,7,78,13,4,57,10,6,14,12,4,10,10,7,78,13,4,57,10,6,14,12,4,10,10,7
1090 DATA 78,13,4,57,10,6,14,12,4,10,10,7,78,13,4,68,11,4
1100 DATA 33,12,4,47,11,4,34,12,4,47,11,4,33,12,4,47,11,4,33,12,4,47,11,4,444,444,4
1110 DATA 17,6,1,11,15,1,3,6,1,3,6,1,43,14,2,19,13,1,2,13,1,2,13,1,29,8,1,15,8,2,17,15,2,15,15,1,8,13,1,8,11,1,8,6,1
1120 DATA 35,12,2,15,11,1,2,11,1,2,11,1,13,8,1,18,8,2,4,18,1,2,18,1,2,18,1,2,18,1,2,18,1,26,7,1,28,12,2
1130 DATA 22,9,1,7,11,1,5,9,1,14,17,1,4,15,1,3,19,1,26,14,2,26,9,1,33,16,2,40,6,1,40,16,2,40,6,1
1140 DATA 25,10,2,1,13,1,1,10,2,1,13,1,1,10,2,1,13,1,1,10,2,1,13,1,1,10,2,1,13,1,1,10,2,15,0,3
1150 DATA 20,29,20,31,20,29,40,36,30,29,160,31,20,31,20,36,20,40,40,36,30,31,160,29
1160 DATA 20,29,20,31,20,29,40,36,30,29,160,31,20,31,20,36,20,40,40,36,30,31,30,29
1170 DATA 20,49,20,36,50,31,22,40,22,31,50,29,22,36,50,29,22,40,66,25,22,40,77,21
1180 DATA 30,25,50,29,40,25,30,49,30,29,55,31,20,36,44,36,22,40,20,36,44,36,30,40,30,36
1190 DATA 20,49,20,36,50,31,22,40,22,31,50,29,22,36,50,29,22,40,66,25,22,40,30,21
1200 DATA 25,29,25,40,25,20,25,29,25,36,25,18,25,25,25,36,25,17,25,25,25,31,35,15,35,21,35,14,35,21,35,12,35,21
1210 DATA 44,11,44,12,44,14,66,17,55,14,77,18,66,14,66,18,33,14,99,18
1220 DATA 44,11,44,12,44,14,66,17,44,14,77,18,66,17,44,14,66,17,77,14,44,11,44,12,44,14,77,17,66,14,77,18
1230 DATA 44,11,44,14,55,17,66,14,144,17,144,21,144,20,144,25,244,21
1240 DATA 11,20,11,19,11,18,11,17,11,16,11,15,11,14,11,13,11,12,11,11,11,10,11,9,11,8,11,6,11,4,111,2,0,0
1250 IF J%=17% OR J%=18% ; CUR(INT(Q%/3%),17%)" "CUR(INT(Q%/3%)+1%,17%)"a&0" : Q%=0%
1260 IF J%=17% OR J%=18% J%=0% : R%=R%+100% : OUT 6%,0%,6%,137% : RETURN
1270 IF K%>10% AND K%<17% ; CUR(INT(Q%/3%),K%+1%)" "CUR(INT(Q%/3%)+1%,K%+1%)"`(!(021" : Q%=0%
1280 IF K%>10% AND K%<17% R%=R%+150% : K%=0% : OUT 6%,0%,6%,137% : RETURN
1290 IF L%>13% AND L%<19% ; CUR(INT(Q%/3%),L%+1%)" "CUR(INT(Q%/3%)+1%,L%+1%)"e(&2 " : Q%=0%
1300 IF L%>13% AND L%<19% S%=S%+200% : L%=0% : OUT 6%,0%,6%,133% : RETURN
1310 Q%=0% : RETURN
1320 OUT 6%,9% : CLRDOT M%+1%,20% : I%=36% : W%=M%+2%
1330 IF M%<6% 1350
1340 CLRDOT M%,I% : CLRDOT M%,I%*(-1%)+73%
1350 IF I%<7% 2010
1360 IF W%>63% 1380
1370 CLRDOT W%,I% : CLRDOT W%,I%*(-1%)+73%
1380 M%=M%-1% : I%=I%-1% : IF M%<6% 1400
1390 SETDOT M%,I% : SETDOT M%,I%*(-1%)+73%
1400 W%=W%+1% : IF W%>63% 1330
1410 SETDOT W%,I% : SETDOT W%,I%*(-1%)+73%
1420 GOTO 1330
1430 GOSUB 740 : T%=T%+1% : IF T%=40% T%=0% : GOTO 1460
1440 IF DOT(M%,38%) OR DOT(M%+2%,38%) OR DOT(M%,39%) OR DOT(M%+2%,39%) 1320
1450 ; CUR(18%,39%)"#"; : GOSUB 860 : P%=CALL(65408%) : GOSUB 980 : GOTO 1430
1460 Q5%=0% : OUT 6%,5% : FOR I%=S% TO 9900 STEP 10% : ; CUR(0%,4%)I% : NEXT I% : S%=9900% : OUT 6%,0%
1470 REM
1480 U%=INT(RND*3%)-1%
1490 IF V%+U%=36% U%=1%
1500 IF V%+U%=63% U%=-1%
1510 V%=V%+U%
1520 SETDOT V%,78% : SETDOT V%,79% : REM SETDOT V%+1%,78% : SETDOT V%+1%,79%
1530 GOSUB 740
1540 IF DOT(M%,38%) OR DOT(M%+2%,38%) OR DOT(M%,39%) OR DOT(M%+2%,39%) 1320
1550 GOSUB 860 : P%=CALL(65408%) : GOSUB 980
1560 IF W%=10% 1590
1570 W%=INT(RND*22%) : Z%=INT(M%/3%)-1%
1580 GOTO 1470
1590 IF F$(0%)="" \%=\%+1% : ON \% GOTO 1660,1690,1720,1750,1780,1810
1600 X%=X%+Y% : IF X%=2% Y%=-1%
1610 IF X%=0% Y%=1%
1620 OUT 6%,93% : ; CUR(Z%,]%)F$(X%);CUR(Z%+1%,]%)G$(X%)" ";CUR(Z%+2%,]%)[$(X%); : ]%=]%-2%
1630 IF ]%=10% ]%=34% : W%=0% : X%=0% : Y%=1% : R%=R%+150% : A1%=A1%+1% : OUT 6%,0%
1640 IF A1%=4% A1%=0% : F$(0%)=""
1650 GOTO 1470
1660 F$(0%)="`|}t " : F$(1%)=" h} " : F$(2%)=" x}0 " : G$(0%)="##7#! " : G$(1%)=" j " : G$(2%)="(/?- "
1670 [$(0%)=" e$ " : [$(1%)=" % " : [$(2%)=" d% "
1680 GOTO 1600
1690 F$(0%)="~{{4 " : F$(1%)="xll0 " : F$(2%)="`pp " : G$(0%)="+<>! " : G$(1%)="os{% " : G$(2%)=".n "
1700 [$(0%)="`5u " : [$(1%)="`5u " : [$(2%)="b7w "
1710 GOTO 1600
1720 F$(0%)="htt " : F$(1%)="xrf " : F$(2%)="(=,, " : G$(0%)='"/!5 ' : G$(1%)="o$) " : G$(2%)="~4 "
1730 [$(0%)=" 5 " : [$(1%)=" " : [$(2%)='"# '
1740 GOTO 1600
1750 F$(0%)=" p0 " : F$(1%)=" p0 " : F$(2%)=" p0 " : G$(0%)='"#4 ' : G$(1%)='"k4 ' : G$(2%)='"4 '
1760 [$(0%)="""/' " : [$(1%)="""/' " : [$(2%)="""/' "
1770 GOTO 1600
1780 F$(0%)=" )0 " : F$(1%)="(d0 " : F$(2%)=" " : G$(0%)="||~ " : G$(1%)="||~ " : G$(2%)=" "
1790 [$(0%)="+' " : [$(1%)="+' " : [$(2%)="+' "
1800 GOTO 1600
1810 Q5%=75% : SETDOT V%,78% : SETDOT V%,79% : V%=V%-1% : IF V%=33% 1850
1820 GOSUB 740
1830 IF DOT(M%,38%) OR DOT(M%+2%,38%) OR DOT(M%,39%) OR DOT(M%+2%,39%) 1320
1840 GOSUB 860 : P%=CALL(65408%) : GOSUB 980 : GOTO 1810
1850 GOSUB 740 : B%=2% : GOTO 480
1860 IF D%=4% D%=0% : GOTO 1880
1870 GOTO 610
1880 SETDOT V%,78% : SETDOT V%,79% : V%=V%+1% : IF V%=63% READ F%,G%,H% : GOTO 1920
1890 GOSUB 740
1900 IF DOT(M%,38%) OR DOT(M%+2%,38%) OR DOT(M%,39%) OR DOT(M%+2%,39%) 1320
1910 GOSUB 860 : P%=CALL(65408%) : GOSUB 980 : GOTO 1880
1920 ; CUR(2%,39%)"p";CUR(21%,39%)"#"; : GOSUB 740
1930 IF DOT(M%,38%) OR DOT(M%+2%,38%) OR DOT(M%,39%) OR DOT(M%+2%,39%) 1320
1940 GOSUB 860 : P%=CALL(65408%) : GOSUB 980
1950 D1%=D1%+1% : IF D1%=F% D1%=0% : R%=R%+150% : ON H% GOTO 1970,1980,1990
1960 GOTO 1920
1970 FOR I%=G% TO 20% : ; CUR(I%,38%)"w{" : NEXT I% : READ F%,G%,H% : GOTO 1920
1980 FOR I%=3% TO G% : ; CUR(I%,38%)"w{" : NEXT I% : READ F%,G%,H% : GOTO 1920
1990 READ K1%,L1% : IF K1%=0% 2010
2000 FOR I1%=1% TO K1% : OUT 6%,0%,6%,121% : FOR I%=1% TO L1% : NEXT I% : NEXT I1% : L1%=L1%-1% : GOTO 1990
2010 ; CHR$(12%); : ; CUR(0%,0%)"********************************************************************************";
2020 FOR I%=2% TO 20% : ; CUR(I%,0%)"**"CUR(I%,38%)"**"; : NEXT I%
2030 ; CUR(21%,0%)"********************************************************************************";
2040 ; CUR(4%,8%)CHR$(151%)"<,h,$H1% H1%=R%
2070 ; CUR(15%,10%)"Din po{ng "R%CUR(17%,10%)"High score"H1%
2080 OUT 6%,0% : RESTORE
2090 E%=0% : \%=0% : R%=0% : D%=0% : X%=0% : W%=0% : F$(0%)="" : A1%=0%
2095 Q%=0% : K%=0% : L%=0% : M%=0% : D1%=0% : Q5%=0%
2100 FOR I%=0% TO 5000% : NEXT I%
2110 IF INP(56%)>127% POKE 65013%,0% : GOTO 150 ELSE 2110