10 REM KILL MICE
20 REM (C)2011 GAMECAST
30 REM VERSION 1.8
40 REM UPDATE 21/12/2011
50 REM ****************
60 REM
70 WIDTH32:KEYOFF:DEFINTA-Z
80 HI=3494:DEFUSR1=&H41:DEFUSR2=&H44
90 DEFUSR3=&HC000:REM PLAY!
100 DEFUSR4=&HC020:REM CONTINUE
110 DEFUSR5=&HC050:REM PAUSE
120 CLS:FORA=0TO31:PUTSPRITEA,,,0:NEXTA
130 LI=2:SC=0:BO=500:LV=1:ST=1:TI=10000:DM=0
140 PRINT" SCORE        HI SCORE"
150 PRINTSC*100;SPC(10);HI*100
160 LOCATE0,6
170 PRINT"                "
180 PRINT"                  "
190 PRINT"                  "
200 PRINT"                    "
210 PRINT"              "
220 LOCATE 1,18:PRINT"1UP BONUS EVERY FOR 50000 PTS"
230 LOCATE 1,20:PRINT"@ 2011 GAMECAST ENTERTAINMENT"
240 LOCATE 2,22:PRINT"PUSH SPACE OR FIRE TO START":A=USR2(0)
250 PLAY"V15L8T160S10M3000O5DEFCEFO4B-O5EFO4AV7AV6AV5AV4AV3AV2AV1AV0A","V15L8T160S10M3000O4FFFFFFFFFCV7CV6CV5CV4CV3CV2CV1CV0C","V15L8T160S10M3000O2B-B-B-AAAGGGFV7FV6FV5FV4FV3FV2FV1FV0F"
260 STRIG(0)ON:STRIG(1)ON:STRIG(3)ON
270 ON STRIG GOSUB 300,300,300,300
280 GOTO 260
290 REM SCORE,LIVES
300 A=USR1(0):FORA=0TO31:PUTSPRITEA,,,0:NEXTA:CLS:A=USR2(0)
310 CLS:FORA=1TO4:PUTSPRITEA,,,0:NEXT:LOCATE 11,10:PRINT"STAGE";ST
320 LOCATE 12,12:PRINT"READY!"
330 PLAY"T200V10O5L2CO4L8GGGS13M500GGV12GGGGEFGL4ABO5CDEL8FFFEDCDDO4AAABO5L4CCC","T200V10O4L2CO3L8GGGGGGGGGEFGL4ABO4CDEL8FFFEDCDDO3AAABO4L4CCC","V10O4L4AL8GFEDL4FEEFL8EDC+O3BO4L4C+DD"
340 FORI=0TO4000:NEXTI
350 A=USR1(0):CLS:LOCATE 1,0:PRINT"SCORE":LOCATE12,0:PRINT"HI-SCORE"
360 LOCATE0,1:PRINTSC*100:LOCATE11,1:PRINTHI*100:LOCATE21,0::LOCATE21,1:PRINTUSING"TIME#####";TI
370 LF=LI:IFLF>12THENLF=12
380 FOR A=1 TO LF
390 LOCATE 20+A,0:PRINTCHR$(124)
400 NEXTA
410 REM LOAD STAGE
420 A=USR2(0):PG=0:A=USR8(PG)
430 A=USR3(0):REM PLAY MUSIC!
440 X%=176:Y%=159:SP%=1
450 ON STRIG GOSUB 1000,1000,940,940
460 STRIG(0)ON:STRIG(1)ON:STRIG(3)ON
470 ONSTICK(0)ORSTICK(1)GOSUB620,620,630,630,640,640,650,650
480 IFSTICK(0)ORSTICK(1)>0THENZ%=Z%+3ANDZ%<1
490 X1=X:Y1=Y
500 IF(PEEK(&HFBE0)AND(&H4))=0THENGOSUB940
510 IFF1=1THENSTRIG(0)OFF:STRIG(1)OFF:GOSUB1030ELSEIFF1=2THENSTRIG(0)OFF:STRIG(1)OFF:GOSUB1060
520 PUTSPRITE1,(X%,Y%),10,SP%+Z%:PUTSPRITE2,(X%,Y%),6,SP%+1+Z%:PUTSPRITE3,(X%,Y%),4,SP%+2+Z%
530 IFF1=0THENGOSUB880
540 IFSC=>BOTHENBO=BO+500:GOSUB1220
550 IFSC=>HITHENHI=SC:LOCATE11,1:PRINTHI*100
560 IFF1=0ANDUU=0THENIFVPEEK(6144+INT(INT((Y%+24)/8)*32+((X%)/8)))=32THENGOSUB880
570 IFF1>0ANDX%=>248THENX%=X1%
580 IFF1>0ANDX%=<0THENX%=X1%
590 TI=TI-10:LOCATE25,1:PRINTUSING"#####";TI:IFTI=<0THENTI=9990:GOSUB1100
600 GOTO 470
610 REM ANIMAZIONE 1UP
620 GOSUB660:IFUP%=136ANDF1=0THENPS%=1:STRIG(0)OFF:STRIG(1)OFF:SP%=13:Y%=Y%-8:GOSUB850:RETURNELSEPS%=0:STRIG(0)ON:STRIG(1)ON:UP%=0:RETURN
630 IFPS%=0THENSP%=1:X%=X%+8:S=0:GOSUB690:IFX=240THENA=USR7(PG):PG=PG+1:A=USR8(PG):X=0:RETURNELSERETURN
640 GOSUB670:IFDW%=136ANDF1=0THENPS%=1:STRIG(0)OFF:STRIG(1)OFF:SP%=13:Y%=Y%+8:GOSUB860:RETURNELSEPS%=0:STRIG(0)ON:STRIG(1)ON:DW%=0:RETURN
650 IFPS%=0THENSP%=7:X%=X%-8:S=4:GOSUB760:IFX=0THENA=USR7(PG):PG=PG-1:A=USR8(PG):X=240:RETURNELSERETURN
660 UP%=VPEEK(6144+INT(INT((Y%+1)/8)*32+((X%)/8))):RETURN
670 DW%=VPEEK(6144+INT(INT((Y%+17)/8)*32+((X%)/8))):RETURN
680 REM COLLIDE WALL
690 Z1=(6144+INT(INT((Y%+8)/8)*32+((X%+8)/8)))
700 Z2=VPEEK(6144+INT(INT((Y%+8)/8)*32+((X%+8)/8)))
710 IFZ2=128THENX%=X1:F1=0:RETURN
720 IFZ2=144THENX%=X1:F1=0:RETURN
730 IFZ2=168THENGOSUB1100
740 IFZ2=176THENA=USR5(0):GOSUB1580:VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:SC=SC+1:DM=DM+1:LOCATE0,1:PRINTSC*100:A=USR4(0):RETURN
750 IFZ2=240THENA=USR5(0):GOSUB1580:VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:SC=SC+5:TI=TI+1000:LOCATE0,1:PRINTSC*100:LOCATE21,1:PRINTUSING"TIME#####";TI:A=USR4(0):RETURN
760 Z1=(6144+INT(INT((Y%+8)/8)*32+((X%)/8)))
770 Z2=VPEEK(6144+INT(INT((Y%+8)/8)*32+((X%)/8)))
780 IFZ2=128THENX%=X1:F1=0:RETURN
790 IFZ2=144THENX%=X1:F1=0:RETURN
800 IFZ2=168THENGOSUB1100
810 IFZ2=176THENA=USR5(0):GOSUB1580:VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:SC=SC+1:DM=DM+1:LOCATE0,1:PRINTSC*100:A=USR4(0):RETURN
820 IFZ2=240THENA=USR5(0):GOSUB1580:VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:SC=SC+5:TI=TI+1000:LOCATE0,1:PRINTSC*100:LOCATE21,1:PRINTUSING"TIME#####";TI:A=USR4(0):RETURN
830 RETURN
840 REM CHANGE PAGE UP/DOWN
850 IFY=7THENUU=1:A=USR7(PG):PG=PG+3:A=USR8(PG):Y=167:UU=0:RETURNELSERETURN
860 IFY=175THENUU=1:A=USR7(PG):PG=PG-3:A=USR8(PG):Y=-1:UU=0:RETURNELSERETURN
870 REM CADUTA 1UP
880 STRIG(0)OFF:STRIG(1)OFF:ZC=VPEEK(6144+INT(INT((Y+24)/8)*32+((X)/8))):IFZC=32ORZC>199ORZC=0THENY=Y+8
890 PUTSPRITE1,(X%,Y%),10,SP%+Z%:PUTSPRITE2,(X%,Y%),6,SP%+1+Z%:PUTSPRITE3,(X%,Y%),4,SP%+2+Z%
900 IFVPEEK(6144+INT(INT((Y+24)/8)*32+((X)/8)))=144THENSTRIG(0)ON:STRIG(1)ON:RETURNELSERETURN
910 GOTO880
920 RETURN
930 REM POOL CHIAVE INGLESE
940 IFPS%=1THENRETURN
945 WX=X%:WY=Y%
950 IFS=0THENWX=WX+8:PUTSPRITE4,(WX,WY),4,19:Z4=VPEEK(6144+INT(INT((WY+8)/8)*32+((WX)/8))):Z5=(6144+INT(INT((WY+8)/8)*32+((WX)/8))):IFZ4=168THENGOSUB980:RETURNELSEIFWX>240THENPUTSPRITE4,,0,0:RETURNELSE950
960 IFS=4THENWX=WX-8:PUTSPRITE4,(WX,WY),4,19:Z4=VPEEK(6144+INT(INT((WY+8)/8)*32+((WX)/8))):Z5=(6144+INT(INT((WY+8)/8)*32+((WX)/8))):IFZ4=168THENGOSUB980:RETURNELSEIFWX<16THENPUTSPRITE4,,0,0:RETURNELSE960
970 REM DEATH MOUSE
980 A=USR5(0):PUTSPRITE4,,0,0:VPOKEZ5,32:VPOKEZ5+1,32:VPOKEZ5+32,32:VPOKEZ5+33,32:GOSUB1600:MC=MC+1:SC=SC+3:LOCATE0,1:PRINTSC*100:A=USR4(0):IFMC=>47THENRETURN1340ELSERETURN
990 REM JUMP 1UP
1000 IFS=0ANDVPEEK(6144+INT(INT((Y%+8)/8)*32+((X%+8)/8)))=144THENX%=X1:F1=0:STRIG(0)ON:STRIG(1)ON:RETURN
1010 IFS=4ANDVPEEK(6144+INT(INT((Y%+8)/8)*32+((X%)/8)))=144THENX%=X1:F1=0:STRIG(0)ON:STRIG(1)ON:RETURN
1020 F1=1:STRIG(0)ON:STRIG(1)ON
1030 IFS=0THENY%=Y%-4:YJ=YJ+1ANDYJ<4:IFYJ=4THENYJ=0:F1=2:RETURNELSERETURN
1040 IFS=4THENY%=Y%-4:YJ=YJ+1ANDYJ<4:IFYJ=4THENYJ=0:F1=2:RETURNELSERETURN
1050 RETURN
1060 IFS=0THENY%=Y%+4:YJ=YJ+1ANDYJ<4:IFYJ=4THENYJ=0:F1=0:STRIG(0)ON:STRIG(1)ON:RETURNELSERETURN
1070 IFS=4THENY%=Y%+4:YJ=YJ+1ANDYJ<4:IFYJ=4THENYJ=0:F1=0:STRIG(0)ON:STRIG(1)ON:RETURNELSERETURN
1080 RETURN
1090 REM MORTE 1UP
1100 REM
1110 A=USR5(0)
1120 PUTSPRITE1,(X%,Y%),10,20:PUTSPRITE2,(X%,Y%),6,21:PUTSPRITE3,(X%,Y%),4,22
1130 GOSUB1630:PLAY"V15T200O4L4FFFC+C+C+O3AAAAFF","V15T200O4L4C+C+C+O3B-B-B-FFFDDD","T200V10O4L8CCCFE-E-E-E-E-E-E-FE-E-E-FCCCFE-E-E-EV9GV8GV7GV6GV5GV4GV3GV2GV1GV0G"
1140 FORI=0TO3000:NEXTI
1150 LI=LI-1:IF LI<0 THEN 1280
1160 LF=LI:IFLI>12THENLF=12
1170 IFLI>12THEN1180ELSELOCATE 21+LF,0:PRINTCHR$(32)
1180 SP%=1:X%=176:Y%=159:F1=0:PS%=0:TI=10000
1190 A=USR3(0)
1200 RETURN470
1210 REM BONUS 1UP
1220 A=USR5(0):GOSUB1690
1230 LI=LI+1
1240 LF=LI:IFLF>12THENLF=12
1250 LOCATE 20+LF,0:PRINTCHR$(124)
1260 A=USR4(0):RETURN
1270 REM GAME OVER
1280 LOCATE 10,10:PRINT" GAME OVER "
1290 FORI=0TO4000:NEXTI
1300 BLOAD"KILLMICE.VRM",S
1310 BLOAD"KILLMICE.BIN"
1320 GOTO120
1330 REM ROUND CLEAR
1340 A=USR5(0):LOCATE10,10:PRINT"STAGE CLEAR!"
1350 REM
1360 LV=LV+1:ST=ST+1:GOSUB1700:GOSUB1570:FORI=0TO1000:NEXTI:FORA=0TO4:PUTSPRITEA,,0,0:NEXTA
1370 LOCATE3,14:PRINT"BONUS TIME ";TAB(18):PRINTUSING"#####";TI;:PRINT "X100 PTS":TI=TI/10:BT=INT(TI)
1380 LOCATE3,16:PRINT"BONUS SCORE";TAB(22);:PRINTUSING"##### PTS";BT*100:SC=SC+BT:LOCATE0,1:PRINT SC*100:GOSUB1700:GOSUB1510
1390 LOCATE3,18:PRINT USING "BONUS DIAMONDS #####";DM;:PRINT"X300 PTS"
1400 LOCATE3,20:PRINT "BONUS SCORE";TAB(21);:PRINTUSING "###### PTS";DM*3*100:SC=SC+DM*3:LOCATE0,1:PRINT SC*100:GOSUB1700:GOSUB1510
1410 FORI=0TO3000:NEXTI:GOSUB1570
1420 SP%=1:F1=0:PS%=0:TI=10000:BT=0:MC=0:DM=0
1430 FORA=0TO31:PUTSPRITEA,,,0:NEXTA
1440 REM LOAD LEVELS
1450 IFLV=1THENBLOAD"KILLMICE.VRM",S:BLOAD"KILLMICE.BIN"
1460 IFLV=2THENBLOAD"KILLMIC1.VRM",S:BLOAD"KILLMIC1.BIN"
1470 IFLV=3THENBLOAD"KILLMIC2.VRM",S:BLOAD"KILLMIC2.BIN"
1480 IFLV>3THENLV=1:GOTO1450
1490 GOTO310
1500 REM BONUS 1UP AND HI-SCORE
1510 IFSC=>HITHENHI=SC:LOCATE11,1:PRINTHI*100
1520 IFSC=>BOTHENBO=BO+500ELSERETURN
1530 GOSUB1690:LI=LI+1
1540 LF=LI:IFLF>12THENLF=12
1550 LOCATE 20+LF,0:PRINTCHR$(124)
1560 RETURN
1570 SOUND8,15:FORI=50TO165STEP8:SOUND0,I:SOUND1,178-I:FORE=1TORND(9)*100:NEXTE:NEXTI:SOUND8,0:RETURN
1580 SOUND1,2:FOR I=255 TO 140 STEP -8:SOUND8,13:SOUND0,I:NEXT:FOR O=10 TO 0 STEP -2:FOR I=50 TO 0 STEP -1:SOUND0,I:NEXT:SOUND8,O:NEXT:SOUND0,0:SOUND1,0
1590 RETURN
1600 FORQ=250TO50STEP-100:FORW=QTOQ-50STEP-1:SOUND8,13:SOUND0,W:NEXTW:NEXTQ:SOUND0,0
1610 RETURN
1620 FORQ=250TO0STEP1:FORW=QTOQ-100STEP-10:SOUND8,13:SOUND0,W:NEXTW:NEXTQ:SOUND0,0:RETURN
1630 FOR I=0 TO 200 STEP 2:FOR O=I TO I+50STEP50:SOUND8,13:SOUND0,O:NEXT:NEXT:SOUND0,0
1640 RETURN
1650 FOR I=250 TO 50 STEP -80:FOR O=I TO I-80 STEP -20:SOUND8,13:SOUND0,O:NEXT:NEXT:SOUND0,0
1660 RETURN
1670 'FORO=255TO50STEP-8:SOUND8,13:SOUND0,O:NEXT:SOUND0,0
1680 'RETURN
1690 FORLC=1TO5:FOR I=0 TO 250 STEP25:FOR O=I TO I+250STEP-1:SOUND8,13:SOUND0,O:NEXT:NEXT:SOUND0,0:NEXT:RETURN
1700 FOR I=0 TO 200 STEP 4:FOR O=I TO I+50STEP10:SOUND8,13:SOUND0,O:NEXT:NEXT:SOUND0,0:RETURN
