90 OPTION BASE 1 100 RANDOMIZE :: CALL CLEAR :: CALL SCREEN(2) :: DIM MY(80),MX(80),MMY(80),MMX(80) 110 FOR T=1 TO 14 :: READ F1,F2 :: CALL COLOR(T,F1,F2) :: NEXT T 120 READ A,A$ :: IF A=0 THEN 130 ELSE CALL CHAR(A,A$) :: GOTO 120 130 CALL COLOR(11,12,2) :: GOSUB 6000 :: CALL RATT :: CALL VAN 132 CALL COLOR(11,7,16) :: CALL VAL(V,V1) :: IF V1=4 THEN 140 ELSE 7000 140 CALL SKRIT :: SK=1 :: P=0 :: L=3 150 GOSUB 2000 160 CALL JO(V,A,B) :: B=B/4*(A=0) :: A=A/4 :: RX=-((A<>0)*-A+(A=0)*-RX)*(B=0) :: RY=-((B<>0)*-B+(B=0)*-RY)*(A=0) 161 X=X+RX :: Y=Y+RY :: CALL LOCATE(#2,Y*8-7,X*8-7,#1,Y*8-7,X*8-7) :: CALL GCHAR(Y,X,CR) 162 IF MLA=MMLA THEN CALL HCHAR(MY(SLA),MX(SLA),32) 163 IF MLA=MMLA THEN STLA=SLA :: SLA=SLA+1 :: SLA=(SLA>MLA)*-1+(SLA<=MLA)*-SLA ELSE MLA=MLA+1 :: IF SLA=1 THEN STLA=MLA ELSE GOSUB 600 :: STLA=MLA 164 CALL HCHAR(Y,X,104) :: MY(STLA)=Y :: MX(STLA)=X 180 IF CR=32 THEN IF X=30 OR X=3 OR Y=1 OR Y=20 THEN 500 ELSE 160 190 IF CR=112 OR CR=128 OR CR=104 THEN CALL DOD :: GOTO 800 200 IF CR=33 THEN IF OP=0 THEN CALL DOD :: GOTO 800 ELSE CALL COLOR(1,2,2) :: CALL SOUND(-10,-3,5) :: GOTO 160 210 IF CR=120 THEN CALL SWAMP(P,MMLA,MA) :: SW=SW-1 :: IF SW=0 THEN CALL OPD :: GOTO 160 ELSE 160 220 IF CR=136 THEN P=P+40+SK*2-2 :: CALL KAK :: CALL D(SK,P,L) :: GOTO 160 230 IF CR=34 THEN OP=1 :: CALL SOUND(1,110,6,111,6,112,6) :: GOTO 160 500 CALL DELSPRITE(#1,#2) :: MLA=MLA+1 :: GOSUB 600 :: FOR T=1 TO MLA-1 :: CALL HCHAR(MY(T),MX(T),32) :: CALL SOUND(1,110+T*25,5,111+T*25,5) :: NEXT T 510 CALL R :: SK=SK+1 :: GOTO 150 600 FOR T=1 TO MLA-1 :: MMY(T)=MY(SLA) :: MMX(T)=MX(SLA) :: SLA=SLA+1 :: IF SLA>MLA-1 THEN SLA=1 610 NEXT T 620 FOR T=1 TO MLA-1 :: MY(T)=MMY(T) :: MX(T)=MMX(T) :: NEXT T 630 SLA=1 :: RETURN 800 L=L-1 :: CALL DELSPRITE(#1,#2) :: CALL D(SK,P,L) :: CALL CHAR(96,"3C7EDBFFDBC3663C",104,"7EE7FFADB5FFE77E") 810 IF L=0 THEN 820 ELSE CALL R :: GOTO 150 820 CALL CLEAR :: DISPLAY AT(9,12):"TYV]RR!":" DU HAR":" INGA FLER ]GG!!" 830 DISPLAY AT(16,1):" MEN,":" DU FICK":" I ALLA FALL";P;" PO]NG!" 840 IF P32 THEN 20150 ELSE CALL HCHAR(RY,RX,128) 20160 CALL KAK :: SUBEND 20165 SUB KAK 20170 FOR T=1 TO 3 :: CALL CHAR(96,"3C7EDBFFFFFF663C") :: CALL SOUND(-10,-1,6) :: CALL CHAR(96,"3C7EDBFFDBC3663C") 20180 CALL SOUND(-10,-2,6) :: NEXT T 20190 SUBEND 20200 SUB OPD :: CALL HCHAR(1,16,32,2) :: CALL HCHAR(20,16,32,2) :: CALL VCHAR(10,3,32,2) :: CALL VCHAR(10,30,32,2) 20210 FOR T=0 TO 30 STEP 2 :: CALL SOUND(-10,1760,T) :: CALL SOUND(-10,1760*1.1,T) :: NEXT T 20220 SUBEND 20230 SUB R :: CALL HCHAR(1,16,112,2) :: CALL HCHAR(20,16,112,2) :: CALL VCHAR(10,3,112,2) :: CALL VCHAR(10,30,112,2) 20240 FOR T=2 TO 19 :: DISPLAY AT(T,2)SIZE(26) :: NEXT T 20250 SUBEND 20260 SUB RE(S) :: ON S GOSUB 20270,20271,20272,20273,20274,20275,20276,20277,20278,20279,20280 :: SUBEXIT 20265 SUBEXIT 20270 RESTORE 30100 :: RETURN 20271 RESTORE 30110 :: RETURN 20272 RESTORE 30120 :: RETURN 20273 RESTORE 30130 :: RETURN 20274 RESTORE 30140 :: RETURN 20275 RESTORE 30150 :: RETURN 20276 RESTORE 30160 :: RETURN 20277 RESTORE 30170 :: RETURN 20278 RESTORE 30180 :: RETURN 20279 RESTORE 30190 :: RETURN 20280 RESTORE 30200 :: RETURN 20500 SUBEND 20600 SUB RATT :: DISPLAY AT(14,22):"F\x5cRL[T," :: DISPLAY AT(15,25):"FEL" 20605 RESTORE 20610 :: FOR T=12 TO 16 :: READ A$ :: DISPLAY AT(T,21):A$ :: NEXT T 20610 DATA y y,}~|w," {{",|w}~,z z 20620 SUBEND 20630 SUB VAL(V,V1) :: CALL CLEAR :: CALL HCHAR(2,10,104,14) :: CALL HCHAR(6,10,104,14) :: CALL VCHAR(2,10,104,5) :: CALL VCHAR(2,23,104,5) 20640 DISPLAY AT(4,10)SIZE(10):"CHAMPIOMAX" :: DISPLAY AT(9,8):"1 JOYSTICK": :" 2 PILTANGENTER": :" 3 TIO I TOP" 20650 DISPLAY AT(15,8):"4 STARTA SPELET" 20660 V=1 :: V1=0 :: CALL SPRITE(#28,96,12,65,65) 20670 CALL KEY(0,K,S) :: IF NOT S THEN 20670 20680 IF K>48 AND K<51 THEN V=K-48 20690 IF K>50 AND K<53 THEN V1=K-48 20700 CALL LOCATE(#28,V*16+49,65) :: IF V1 THEN 20710 ELSE 20670 20710 CALL SPRITE(#27,96,9,V1*16+49,65) :: FOR T=1 TO 300 :: NEXT T :: CALL CLEAR :: CALL DELSPRITE(ALL) :: SUBEND 30000 SUB SKRIT :: CALL HCHAR(1,3,112,28) :: CALL HCHAR(20,3,112,28) :: CALL VCHAR(1,3,112,20) :: CALL VCHAR(1,30,112,20) 30010 DISPLAY AT(22,2)SIZE(5):"PO]NG" 30011 DISPLAY AT(21,2)SIZE(5):"SK]RM" :: DISPLAY AT(23,2)SIZE(3):"]GG" 30020 SUBEND 30030 SUB SKA(S,ANS,Y,X,MA) 30040 CALL RE(S) 30050 READ ANS,Y,X,MA 30060 READ RY,RX,RR,RP :: IF RY=0 THEN 30065 ELSE CALL HCHAR(RY,RX,RR,RP) :: GOTO 30060 30065 READ RY,RX,RR,RP :: IF RY=0 THEN 30066 ELSE CALL VCHAR(RY,RX,RR,RP) :: GOTO 30065 30066 FOR T=1 TO ANS 30067 RX=INT(RND*26)+4 :: RY=INT(RND*18)+2 :: CALL GCHAR(RY,RX,C) :: IF C<>32 THEN 30067 ELSE CALL HCHAR(RY,RX,120) 30068 NEXT T 30070 FOR T=1 TO S+INT(RND*S) 30075 RX=INT(RND*26)+4 :: RY=INT(RND*18)+2 :: CALL GCHAR(RY,RX,C) :: IF C<>32 THEN 30075 ELSE CALL HCHAR(RY,RX,136) 30080 NEXT T 30100 DATA 8,10,16,2,0,0,0,0,0,0,0,0 30110 DATA 9,10,22,2,10,8,112,10,0,0,0,0,0,0,0,0 30120 DATA 10,4,6,9,2,17,112,11,0,0,0,0,9,17,112,10,0,0,0,0 30130 DATA 10,9,16,3,10,13,112,8,0,0,0,0,5,8,112,15,2,25,112,15,0,0,0,0 30140 DATA 10,6,10,3,11,5,112,12,10,17,112,12,0,0,0,0,3,16,112,8,11,17,112,8,0,0,0,0 30150 DATA 11,18,16,3,6,6,112,22,15,6,112,22,0,0,0,0,7,16,112,8,11,10,112,4,7,23,112,4,0,0,0,0 30160 DATA 15,3,6,3,6,5,112,24,16,18,112,5,19,16,112,2,12,4,33,12,0,0,0,0,2,19,112,3,3,25,112,3 30164 DATA 18,27,34,1 30165 DATA 7,7,112,3,7,22,112,10,9,26,112,11,10,4,112,2,10,29,112,2,13,11,112,7,13,15,33,7,0,0,0,0 30170 DATA 10,11,16,8,0,0,0,0,0,0,0,0 32000 SUBEND