Compucolor.org – Virtual Media

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