1 PMODE0:PCLEAR1:POKE&HE6C6,&H21:GOSUB 276 2 POKE&HFFA1,&H30:POKE&HFFA2,&H31:LOADM"FELINES.SC1":POKE&HFFA1,&H32:POKE&HFFA2,&H33:LOADM"FELINES.SC2":POKE&HFFA1,&H39:POKE&HFFA2,&H3A:LOADM"FELINES.PAL" 3 DIM GH,GV,MH,V,VV,DV,H,SM,F,MC,PQ,DM,MP,CC,CP,PE,LS,LO:DD=15:K1=165:K2=170 4 HSCREEN 2:ON BRK GOTO 350 5 HLINE(0,208)-(319,216),PRESET,BF:HCOLOR10:HPRINT(0,26),"Press (C) for TV/CMP or (R) for RGB/VGA" 6 P$=INKEY$:IF P$="" GOTO 6 7 IF P$="C" THEN LOADM"FELINES.CMP" 8 LOADM"TRNSPUT":LOADM"VSYNC":POKE 65497,0:X=RND(TIMER) 9 GOSUB 301 ' INITIALIZE 10 GOSUB 176 ' DRAW SCREEN 11 GOSUB 125 ' PILE UP CATS 12 GOSUB 101 ' SELECT JUMPING CAT 13 GOSUB 226 ' THE CAT FALLS 14 REM MAIN LOOP 15 DV=(GS+PG)*-2.5:F=0:HGET(GH,GV-35)-(GH+DD,GV-20),17 16 IF F=0 THEN EXEC &HE00:HPUT(GH,GV-DD)-(GH+DD,GV),17,PSET 17 IF V>16 THEN GV=INT(V):GH=H:IF INT (GH/2)<>GH/2 THEN GH=GH+1 18 IF F AND V>16 AND H<305 THEN HGET(GH,GV-DD)-(GH+DD,GV),17:EXEC &HE00:HPUT (GH,GV-DD)-(GH+DD,GV),CP,PRESET 19 GOSUB 76:H=H+VV+LO:V=V+DV:IF SGN(DV) =1 THEN DV=DV/PE ELSE DV=DV*PE 20 IF VV>0 THEN CD=DD ELSE CD=0 21 IF DV>-.5 AND DV=<0 THEN DV=.5 22 IF H<48 THEN H=48 23 CC=HPOINT(GH+CD+VV,GV):IF CC>9 THEN VV=VV*-1:LS=LS-1:V=V+ABS(DV*3):PLAY"T255O5CDO3BAGT196F":IF CP<4 THEN CP=CP+3 ELSE CP=CP-3 24 IF DV=>0 THEN IF HPOINT(GH+CD,GV+DV+1)>9 THEN DV=0:PLAY"T255O3CDO2BAGT196F" 25 IF F THEN F=0 ELSE F=1 26 IF V<165 THEN 16 ' LOOP 50 HPUT(GH,GV-DD)-(GH+DD,GV),17,PSET:IF H>311 THEN HCOLOR1:HPRINT(38,20),"??":HPRINT(38,19),"??":GOTO 54 51 GH=INT(H):IF GH/2<>INT (GH/2) THEN GH=GH+1 52 IF CP>3 AND GH+7MH THEN CP=CP+3 53 HGET(GH,156)-(GH+DD,170),17:HPUT(GH,156)-(GH+DD,170),CP,PRESET:IF ABS(GH+7-MH)<13 THEN HCOLOR 1:HPRINT (INT(GH/8)-3,18),"CAUGHT!!":PLAY"T64O3CDO2GFET48D":GOTO 151 54 IF LS<0 THEN T$="The mouse got away!":GOTO 326 55 A$=INKEY$:GOSUB 76:IF A$="" GOTO 55 56 HPUT(GH,156)-(GH+DD,170),17,PSET:HLINE(0,151)-(15,0),PRESET,BF:HLINE(MH-6,165)-(MH+6,170),PRESET,BF:IF VV<0 THEN VV=-VV 57 GOSUB 307:GOSUB 205:GOTO 11 ' REPEAT SAME LEVEL 75 REM MOVE THE MOUSE 76 MC=HPOINT(MH+8*SM,168):IF MC>1 OR MH<72 OR MH>310 THEN DM=DM*-1:SM=SGN(DM):IF MP=8 THEN MP=7 ELSE MP=8 77 IF MC>9 AND SM=SGN(MH-PQ) THEN HLINE(MH-6*SM,K1)-(MH-8*SM,K2),PRESET,BF 78 HPUT(MH-5,K1)-(MH+5,K2),MP,PSET:HLINE(MH-6*SM,K1)-(MH-7*SM,K2),PRESET:MH=MH+DM:IF ABS(MH-(PQ+6))<15 THEN T$="The cheese is lost!":GOTO 325 79 RETURN 100 REM SELECT JUMPING CAT 101 PE=0:HCOLOR 4:HPRINT(5,20),"???":HCOLOR 0 102 A$=INKEY$: IF A$<"1" OR A$>"3" THEN 104 103 HPRINT(5,20),"???":CP=VAL(A$):HPUT(40,155)-(55,170),10+CP,PSET:PE=.8+CP/30 104 GOSUB 76:IF A$=" " AND PE>0 THEN LS=LS-10:RETURN ELSE 102 125 GS=0:PG=0 126 A$=INKEY$:IF A$=" " AND GS>1 THEN RETURN 127 GOSUB 76:IF A$="" GOTO 126 128 IF A$<"1" OR A$>"3" OR GS=9 THEN PLAY"T128CEC":GOTO 126 ELSE GS=GS+1 129 IF A$="1" THEN PG=1 ELSE IF A$="2" THEN PG=.75 ELSE IF A$="3" THEN PG=.6 130 FC=VAL(A$):HGET(0,151-GS*16)-(15,166-GS*16),17:HPUT(0,151-GS*16)-(15,166-GS*16),FC,PRESET:GOTO 126 150 REM NEXT LEVEL 151 LV=LV+1:SC=SC+LS+(LV+LO)*20:IF LV=NL THEN 250 152 FOR A=88 TO 238 STEP 16:FOR B=15 TO 32 STEP 15:HPUT(A,B)-(A+15,B+19),9,PSET:NEXT:NEXT:HLINE(94,24)-(241,39),PRESET,BF 153 T$="Level"+STR$(LV+LO*NL)+" completed":HPRINT(12,3),T$:T$="Your score is"+STR$(SC):HPRINT(12,4),T$ 154 A$=INKEY$:IF A$="" THEN 154 155 GOSUB 307: GOSUB 179: GOTO 11 175 REM DRAW GRAPHICS AND INTRO 176 HGET (100,101)-(115,116),1:HGET (80,101)-(95,116),2:HGET(60,101)-(75,116),3:HGET (204,101)-(219,116),4:HGET (224,101)-(239,116),5:HGET(244,101)-(259,116),6 177 HGET (138,111)-(148,116),7:HGET (170,111)-(180,116),8:HGET(30,119)-(45,138),9:HGET(250,10)-(268,28),10:HGET (40,81)-(55,96),11:HGET (20,71)-(35,86),12 178 HGET (0,61)-(15,76),13:HGET(264,81)-(279,96),14:HGET(284,71)-(299,86),15:HGET(304,61)-(319,76),16:HGET(155,91)-(166,99),18 179 HCLS 0:FORA=0 TO 319 STEP 16:HPUT(A,171)-(A+DD,190),9,PSET:NEXT 180 HPUT(10,199)-(25,214),1,PSET:HPUT(100,199)-(115,214),2,PSET:HPUT(230,199)-(245,214),3,PSET:HCOLOR1:HPRINT(4,25),"1=Tabby":HPRINT(15,25),"2=Shorthair":HPRINT(31,25),"3=Siamese":HPRINT(5,26),"Heavy":HPRINT(16,26),"Medium":HPRINT(32,26),"Light" 181 BH=320 182 BX=BH-25-(RND(8)*5):BV=RND(6)*15+5:IF BX<1 THEN BX=1 183 HCOLOR8:HLINE(BH,0)-(BX,BV),PSET,BF:NS=BV/15:FOR ES=1 TO NS:HSET(RND(BH-BX)+BX,RND(BV),RND(4)+3):NEXT 184 IF BH>18 AND LU=0 AND RND(3)=1 THEN MO=RND(BV-19):HPUT(BH-19,MO)-(BH-1,MO+18),10,PSET:LU=1 185 HCOLOR1:FORVX=BX+5 TO BH-8 STEP 15:FORVY=BV+10 TO 120 STEP 20 186 IF RND(2)=1 THENHLINE(VX,VY)-(VX+5,VY+8),PSET,BF:IF RND(2)=1 THEN HLINE(VX+2,VY)-(VX+3,VY+8),PRESET,BF:HLINE(VX,VY+4)-(VX+5,VY+4),PRESET 187 NEXT:NEXT 188 IF BX>12 THEN BH=BX:GOTO 182 189 LU=0 200 REM INIT LEVEL 201 POKE 65496,0:IF LV=0 THEN OPEN "I",#1,"FELINES.LVL":INPUT #1,NL 202 LS=100:FOR A=1 TO 5:INPUT #1,PH(A),PV(A):NEXT:INPUT #1,MH,DM,PQ:POKE 65497,0 203 SM=SGN(DM):VV=RND(3)+1:IF PQ/2=INT(PQ/2) THEN PQ=PQ+1 204 FOR A=1 TO 5:FOR B=170 TO 170-PV(A) STEP -20:HPUT(PH(A),B)-(PH(A)+15,B-19),9,PSET:NEXT:NEXT 205 HLINE(20,170)-(35,152),PRESET,BF:HCOLOR3:HLINE(21,170)-(33,152),PSET,BF 206 FOR A=170 TO 155 STEP -4:HCOLOR 4:HLINE(20,A)-(34,A-4),PSET:HCOLOR0:HLINE(20,A-1)-(34,A-5),PSET:NEXT 207 HCOLOR 3:HLINE(20,151)-(35,155),PSET,BF:HDRAW"C4BM20,155;NU4C9R14U4RD4":HLINE(304,152)-(319,168),PRESET,BF:HPUT(PQ,162)-(PQ+11,170),18:HLINE(103,183)-(215,192),PRESET,BF:HCOLOR10:HPRINT(0,0),"Wind":HPRINT(31,0),"Level:"+STR$(LV+1) 208 HPRINT(13,23),"Cat morale:"+STR$(LS-1):HDRAW "BM40,0;C5;XW$;":IF VV>2 THEN HDRAW"BM54,0;C1;XW$;":IF VV=4 THEN HDRAW"BM68,0;C10;XW$;" 209 IF DM>0 THEN MP=7 ELSE MP=8 210 HPUT(MH-5,165)-(MH+5,170),MP,PRESET:RETURN 225 REM THE CAT FALLS 226 FS$="":XH=0:IV=151-GS*16:FOR XH=0 TO 18 STEP 2:HPUT(XH,IV)-(XH+15,IV+15),17,PSET:HGET(XH+2,IV)-(XH+17,IV+15),17:HPUT(XH+2,IV)-(XH+17,IV+15),FC,PRESET:GOSUB 76:NEXT 227 SI=INT(220/((150-IV)/5)):FS=225:FOR XV=IV TO 150 STEP 5 228 IF XV<130 THEN HPUT(20,XV)-(35,XV+15),17,PSET ELSE HLINE(20,XV)-(35,XV+15),PSET,BF 229 HGET(20,XV+5)-(35,XV+20),17:IF XV>130 THEN HPUT(20,XV+5)-(35,XV+20),FC,PSET ELSE HPUT(20,XV+5)-(35,XV+20),FC,PRESET 230 PLAY FS$:GOSUB 76:FS=INT((165-XV)/7):IF FS>12 THEN FS=FS-12:OS$="O4;" ELSE OS$="O3;" 231 FS$="T48"+OS$+STR$(FS):PLAY FS$:NEXT:HPUT(20,XV)-(35,XV+15),17,PSET:HPUT(20,155)-(35,170),FC,PSET:RETURN 250 REM END GAME 251 CLOSE #1 252 FOR B=45 TO 125 STEP 15:FOR A=60 TO 255 STEP 15:HPUT(A,B)-(A+14,B+19),9:NEXT:NEXT:HCOLOR 0:HLINE(80,60)-(248,118),PSET,BF 253 HCOLOR4:HPRINT(12,8),"CONGRATULATIONS!!":HPRINT(12,9),"You have finished":HPRINT(13,10),"all the levels":T$="Your score is"+STR$(SC):HPRINT(11,12),T$:HPRINT(12,13),"Keep going (Y/N)?" 254 A$=INKEY$:IF A$="N" OR A$="n" THEN 325 ELSE IF A$="Y" OR A$="y" THEN 255 ELSE 254 255 LO=LO+1:LV=0:GOTO 155 275 REM 320X225 276 POKE&HE06D,&H7E:POKE&HE0EE,&H34:POKE&HE6C0,&H70:POKE&HE87C,&HE0:POKE&HE87D,&HFF:POKE&HE87F,&HB4:POKE&HE880,&HF3:POKE&HE7BA,&HE1:POKE&HE7BE,&HE0:POKE&HEB75,&HE0:POKE&HEF8F,&H1B:POKE&HF521,&HE1:POKE&HF526,&HE0 277 POKE&HE6E7,&HAC:POKE&HE6E8,&HA0:EXEC&HE097:POKE &HE3A3,&H37:POKE&HE0D4,&H37:POKE&HE50B,&H37:HBUFF0:RETURN 300 REM INITIALIZE 301 HBUFF 7,62:HBUFF 8,62:HBUFF 9,160:HBUFF 17,160:HBUFF 10,231:HBUFF 18,64:FOR A=1 TO 6:HBUFF A,160:HBUFF 10+A,160:NEXT 302 PLAY"L6O1;12;O2;3;1;3":IF INKEY$<>"" GOTO 306 ELSE PLAY"2;4;L3;3;L6O1;12;O2;3":IF INKEY$<>"" GOTO 306 303 PLAY"1;3;2;1;L3O1;12":IF INKEY$<>"" GOTO 306 ELSE PLAY"O2L6;4;L12;3;2;L6;3;1":IF INKEY$<>"" GOTO 306 304 PLAY"2;6;L3;3;":IF INKEY$<>"" GOTO 306 ELSE PLAY "L12;2;3;4;3;2;3;4;2": IF INKEY$<>"" GOTO 306 305 PLAY"3;2;3;2;L3;3":IF INKEY$<>"" GOTO 306 ELSE PLAY"L12;3;2;1;O1;12;L6;11;L3;4" 306 PLAY"L4":W$="R11F3G3L12E3H3":LO=0:SC=0:LV=0 307 V=170:H=41:GH=41:GV=170:MP=7:CP=1:RETURN 325 REM LOST THE GAME 326 FOR B=45 TO 105 STEP 20:FOR A=65 TO 250 STEP 15:HPUT(A,B)-(A+14,B+19),9:NEXT:NEXT:HCOLOR 0:HLINE(88,60)-(239,113),PSET,BF:HCOLOR4:HPRINT(11,8),T$:HPRINT(14,9),"Game Over :-(":T$="Your score is"+STR$(SC):HPRINT(12,12),T$:CLOSE#1 327 HPRINT(14,13),"Play again ?" 328 A$=INKEY$:IF A$="N" OR A$="n" GOTO 350 329 IF A$="Y" OR A$="y" GOSUB 306:GOSUB 179:GOTO 11 330 GOTO 328 350 HSCREEN 0:PRINT"MEOW!":PLAY"T64O5CDO3BAGT32FCDO2BAGT16FT8P1":WIDTH 80 351 PRINT "'FURIOUS FELINES' is free software (c) Diego Barizo, April 2013 - July 2018" 352 PRINT "The program, graphics, source code, and the files RUNME.BAS, FELINES.DRW," 353 PRINT "FELINES.BAS, FELINES.LVL, FELINES.PAL, FELINES.SC1, FELINES.SC2, FELINES.IN1," 354 PRINT "FELINES.CMP and FELINES.INT can be freely distributed with no restrictions." 355 PRINT "Creation of derivative works is allowed, as long as credit to the original" 356 PRINT "author is given. Distribution of derivative works is allowed for non-comercial" 357 PRINT "purposes only, unless a specific authorization has been granted by the" 358 PRINT "author of the original." 359 PRINT:PRINT"www.yaccs.info / www.cocowares.com" 360 RGB