Listing of file='CATERP.BAS;01' on disk='vmedia/action_soundware-sector.ccvf'
50 REM CATERPILLAR 60 REM COPYRIGHT 7-79 70 REM CAP ELECTRONICS 80 REM 105 PLOT 12,15,6,6,29,27,24 110 TM= PEEK (32940)+ PEEK (32941)* 256+ 1:POKE 32936,2 115 IF TM> 1024* 64- 8THEN LOAD "SOUND":RUN 120 IF PEEK (TM+ 179)< > 241THEN LOAD "SOUND":RUN 125 A= PEEK (32940)+ 8:B= PEEK (32941) 130 POKE 33283,A:POKE 33284,B 135 CLEAR 500:DIM CA(255):DIM AP(255) 140 TM= PEEK (32940)+ PEEK (32941)* 256+ 1 145 A= 2:B= 126:C= 128:D= 130:CL= 2:ZS= 0 200 REM INITIALIZATION 300 REM START GAME 310 GOSUB 900 315 GOSUB 700 325 POKE 33278,53:POKE PO,79 330 PLOT 6,0:OUT 8,255 400 REM MAIN PLAY LOOP 420 GOSUB 1100 425 PLOT 8 430 IF CH< > 32THEN 600 440 GOSUB 1200 445 SA= RND (1):IF SA> .91THEN GOSUB 505 450 PLOT 8:GOTO 400 455 NEXT 500 REM APPLE SUBROUTINE 505 RA= RND (1):IF RA> .9THEN 575 507 X= INT (RND (1)* 61)* 2 508 Y= INT (RND (1)* 27) 510 PA= 29186+ 128* Y+ X 515 IF (PEEK (PA)AND 127)< > 32THEN 507 520 AL= AL+ 1:IF RA> .7THEN 545 525 IF RA> .12THEN 560 534 REM PURPLE APPLE 535 POKE PA+ 1,5:POKE PA,81:GOSUB 1010 540 AL= AL- 1:RETURN 544 REM RED APPLE 545 POKE PA+ 1,1:POKE PA,81:GOSUB 1010 550 AP(AH)= PA:AH= AH+ 1:IF AH> 255THEN AH= 0 555 RETURN 559 REM GREEN APPLE 560 POKE PA+ 1,2:POKE PA,81:GOSUB 1010 565 AP(AH)= PA:AH= AH+ 1:IF AH> 255THEN AH= 0 570 RETURN 574 REM APPLE REMOVER 575 IF AL< 1THEN RETURN 577 PLOT 8:CH= PEEK (AP(AT)):IF CH= 81THEN 588 580 AT= AT+ 1:IF AT> 255THEN AT= 0 585 GOTO 577 588 GOSUB 1030:POKE AP(AT),32:POKE AP(AT)+ 1,6 590 SC= SC- 25:GOSUB 805 591 AT= AT+ 1:IF AT> 255THEN AT= 0 594 AL= AL- 1:RETURN 600 REM HITTER 605 IF CH= 81THEN CH= PEEK (PO+ 1):GOTO 615 610 GOTO 680 615 IF CH= 5THEN 680 616 AL= AL- 1 617 PT= PT- 3:IF PT< 0THEN PT= 255 618 GOSUB 1020 620 IF CH= 1THEN SC= SC+ 100:GOTO 635 625 IF CH= 2THEN SC= SC+ 25:GOTO 635 630 GOTO 680 635 GOSUB 805:POKE PO+ 1,6:GOTO 440 680 POKE PO+ 1,PEEK (PO+ 1)+ 64 685 GOTO 1300 700 REM INSTRUCTIONS 705 C= 1:X= 2:Y= 5:H= 26:W= 60:GOSUB 64000 710 X= 4:Y= 6:PLOT 15 712 GOSUB 792:PRINT " S O U N D W A R E S O F T W A R E ":GOSUB 792 713 GOSUB 792:PRINT "YOU CONTROL A HUNGRY CATERPILLAR !" 716 GOSUB 792:GOSUB 792:PRINT "APPLES APPEAR ON THE COURT, WHICH YOU TRY TO EAT. USE" 719 GOSUB 792:PRINT "THE NUMBER KEYS TO CONTROL YOUR CATERPILLAR. THE 8 KEY" 723 GOSUB 792:PRINT "MOVES UP, THE 6 KEY MOVES RIGHT, ECT." 726 GOSUB 792 729 GOSUB 792:PRINT " 7 8 9" 733 GOSUB 792:PRINT " |ba~" 736 GOSUB 792:PRINT " 4 sr 6" 739 GOSUB 792:PRINT " eqpe" 742 GOSUB 792:PRINT " ~ba|" 745 GOSUB 792:PRINT " 1 2 3" 748 GOSUB 792:GOSUB 792:PRINT "YOUR CATERPILLAR GETS POINTS AND GROWS FOR EATING RED" 750 GOSUB 792:PRINT "APPLES OR GREEN APPLES. PURPLE APPLES ARE ROTTEN,DON'T" 753 GOSUB 792:PRINT "EAT THEM. IF YOU GET ENOUGH APPLES EATEN, OTHER" 755 GOSUB 792:PRINT "CATERPILLARS WILL JOIN YOUR TEAM. INVISIBLE BIRDS MAY" 757 GOSUB 792:PRINT "FLY BY AND EAT THE GOOD APPLES." 758 GOSUB 792:GOSUB 792:PRINT "PRESS RETURN TO CONTINUE ! ";:OUT 8,255:XX= CALL (2) 780 OUT 8,247:PLOT 8:FOR N= 1TO 25 785 XX= CALL (1):POKE TM,50- N:XX= CALL (0):NEXT 790 C= 128:RETURN 792 Y= Y+ 1:PLOT 3,X,Y:RETURN 795 Y= Y- 2:PLOT 3,X,Y:RETURN 800 REM SCORE SUBROUTINE 805 OUT 8,247 810 PLOT 3,11,2,6,3,14 815 PRINT SC;" ":PLOT 15,8,6,0:OUT 8,255:RETURN 900 REM DRAW GAME SUBROUTINE 901 PO= 30120+ INT (RND (1)* 30)* 2+ INT (RND (1)* 15)* 128 902 PH= 1:PT= 242:CA(0)= PO:AH= 0:AT= 0:AL= 0 910 OUT 8,247:SC= 0 920 PLOT 6,6,12,6,3,15 930 BD$= "`````````````````````````````````````````````````````````````" 932 B1$= LEFT$ (BD$,31) 933 XX= CALL (0) 935 PLOT 3,1,1:PRINT BD$ 937 PLOT 3,1,4:PRINT BD$ 938 XX= CALL (0) 939 PLOT 3,1,31:PRINT BD$ 941 PLOT 27,10,3,1,1:PRINT B1$ 943 PLOT 3,62,1:PRINT B1$ 944 XX= CALL (0) 945 PLOT 27,24,14,3,8,3 950 PLOT 3,3,2:PRINT "SCORE = " 952 GOSUB 805:OUT 8,247 955 PLOT 3,17,2 960 PRINT "C A T E R P I L L A R ";CL;" CATERPILLARS LEFT" 990 RETURN 1000 REM SOUNDS SUBROUTINES 1010 POKE TM,20:POKE TM+ 2,50:XX= CALL (0):RETURN 1020 POKE TM,100:XX= CALL (0):RETURN 1030 POKE TM,30:POKE TM+ 2,100:XX= CALL (0):RETURN 1040 POKE TM,1:POKE TM+ 2,5:POKE TM+ 4,255:POKE TM+ 5,8:XX= CALL (0):RETURN 1100 REM KEY HANDLER 1110 PLOT 8:FOR NX= 1TO TD 1115 OUT 8,255 1120 KE= PEEK (33278)- 48 1122 IF KE< 0THEN KE= 0 1125 ON KEGOTO 1141,1142,1143,1144,1145,1146,1147,1148,1149 1141 PO= PO+ B:GOTO 1155 1142 PO= PO+ C:GOTO 1155 1143 PO= PO+ D:GOTO 1155 1144 PO= PO- A:GOTO 1155 1145 SC= SC- 1:GOSUB 800:GOTO 1110 1146 PO= PO+ A:GOTO 1155 1147 PO= PO- D:GOTO 1155 1148 PO= PO- C:GOTO 1155 1149 PO= PO- B:GOTO 1155 1150 GOTO 1110 1155 CH= 127AND PEEK (PO) 1157 PLOT 8 1160 RETURN 1200 REM MOVE CATERPILLAR 1205 POKE 33209,0 1210 PH= PH+ 1:IF PH> 255THEN PH= 0 1215 PT= PT+ 1:IF PT> 255THEN PT= 0 1220 POKE PO,79:CA(PH)= PO:POKE CA(PT),32 1235 RETURN 1300 REM GAME END 1305 ZS= ZS+ SC:CL= CL- 1 1310 IF SC> 1500THEN CL= CL+ 3:IF SC> 2500THEN CL= CL+ 2 1315 GOSUB 955:GOSUB 1040:IF CL< 1THEN 1345 1320 PLOT 3,15,15 1325 PRINT "YOU NOW HAVE ";ZS;" POINTS--PLAY ON!!" 1330 FOR NB= 1TO 2000:NEXT 1340 GOSUB 900:GOTO 325 1345 PLOT 3,20,15:PRINT "YOU GOT ";ZS;" POINTS !" 1346 PLOT 3,20,19:PRINT "PLAY AGAIN (Y OR N)? ";:XX= CALL (2) 1347 CH$= CHR$ (XX):PRINT CH$:IF CH$< > "Y"THEN 1390 1348 CL= 2:ZS= 0:FOR N= 1TO 25:XX= CALL (1):NEXT :GOSUB 900:GOTO 325 1390 OUT 8,255:PLOT 6,6,3,3,5,27,11,15 1395 LOAD "MENU":RUN 6666 64000 REM SCROLLING ROUTINE 64010 DA= 28672+ 128* Y+ X+ X:AD= TM+ 126:GOSUB 64100 64015 DA= 128- W- W:AD= TM+ 149:GOSUB 64100 64020 POKE TM+ 129,H- 1:POKE TM+ 131,W* (C+ 1) 64030 POKE TM+ 143,35* (1- C):RETURN 64100 Z1= INT (DA/ 256):Z2= DA- Z1* 256 64110 POKE AD,Z2:POKE AD+ 1,Z1:RETURN