Listing of file='SNAKES.BAS;01' on disk='vmedia/action_soundware-sector.ccvf'
50 REM SNAKES 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,3 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 140 TM= PEEK (32940)+ PEEK (32941)* 256+ 1 200 REM INITIALIZATION 205 A= 2:B= 126:C= 128:D= 130 210 D(0)= 2:D(1)= - 128:D(2)= - 2:D(3)= 128 215 D(4)= - 126:D(5)= - 130:D(6)= 126:D(7)= 130 220 S(0)= 4:S(1)= - 256:S(2)= - 4:S(3)= 256 225 TK(0)= 120:TK(1)= 43 230 CO(0)= 25:CO(1)= 28 235 GOSUB 900:GOSUB 800:GOSUB 700 240 DI(0)= INT (RND (1)* 4):DI(1)= INT (RND (1)* 4) 250 FOR N= 0TO 1:PP(N)= 30100+ 128* INT (RND (1)* 18)+ 2* INT (RND (1)* 45):NEXT 260 PL= 0:POKE 33278,50+ 2* DI(1) 300 REM START GAME 400 REM MAIN PLAY LOOP 410 GOSUB 900:GOSUB 800 415 IF NP= 1AND PL= 1THEN 1100 420 IF (127AND (PEEK (PP(PL)+ S(DI(PL)))))< > 32THEN 610 430 IF ((127AND PEEK (PP(PL)+ D(DI(PL))))< > 32)THEN 620 435 PLOT 8 440 PP(PL)= PP(PL)+ D(DI(PL)) 445 POKE PP(PL)+ 1,CO(PL):POKE PP(PL),TK(PL) 450 PL= ABS (PL- 1):GOTO 415 600 REM HITTER 610 DI(PL)= INT (RND (1)* 4) 620 OK= 0:FOR N= 1TO 4 622 DI(PL)= DI(PL)+ 1:IF DI(PL)> 3THEN DI(PL)= 0 625 IF ((127AND PEEK (PP(PL)+ S(DI(PL))))= 32)THEN OK= 1:N= 4 630 NEXT 640 XY= CALL (0) 645 IF OK= 0THEN DI(PL)= INT (RND (1)* 4) 650 OK= 0:FOR N= 1TO 4 655 IF (127AND PEEK (PP(PL)+ D(DI(PL))))= 32THEN OK= 1:N= 4:GOTO 660 657 DI(PL)= DI(PL)+ 1:IF DI(PL)> 3THEN DI(PL)= 0 660 NEXT :IF OK= 0THEN 1300 670 GOTO 440 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 BLUE SNAKE. TRY TO MANEUVER YOUR SNAKE TO" 714 GOSUB 792:PRINT "KEEP FROM RUNNING INTO ANYTHING, AND TRY TO SET TRAPS" 715 GOSUB 792:PRINT "FOR THE YELLOW SNAKE. THE LAST SNAKE MOVING WINS. USE" 719 GOSUB 792:PRINT "THE NUMBER KEYS TO CONTROL THE SNAKE: THE 8 KEY MOVES" 723 GOSUB 792:PRINT "UP, THE 6 KEY RIGHT, ETC." 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 "PRESS O TO SEE THE COMPUTER PLAY AGAINST ITSELF, OR" 751 GOSUB 792:PRINT "PRESS 1 TO PLAY AGAINST THE COMPUTER "; 752 OUT 8,255:XX= CALL (2) 753 CH$= CHR$ (XX):PRINT CH$;:IF CH$= "0"OR CH$= "1"THEN 760 755 PRINT CHR$ (26);:GOTO 752 760 IF CH$= "0"THEN NP= 0 765 IF CH$= "1"THEN NP= 1 770 POKE 33278,INT (RND (1)* 4)+ 48 775 SC(0)= 0:SC(1)= 0 788 PLOT 8:FOR N= 1TO 25:XX= CALL (1):POKE TM,30- 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 810 PLOT 3,5,3 815 PRINT "++++++++";SC(0) 820 PLOT 3,47,3 825 PRINT "xxxxxxxx";SC(1) 850 RETURN 900 REM DRAW GAME SUBROUTINE 920 PLOT 6,6,12,6,3,15,27,24 925 PRINT "" 930 B1$= "```````````````````````````````" 932 BD$= "`````````````````````````````````````````````````````````````" 935 PLOT 3,1,1:PRINT BD$:XX= CALL (0) 937 PLOT 3,1,4:PRINT BD$ 939 PLOT 3,1,31:PRINT BD$ 941 PLOT 27,10,3,1,1:PRINT B1$ 943 PLOT 3,62,1:PRINT B1$ 945 PLOT 27,24,14 955 PLOT 3,22,2 956 REM 960 PRINT " S N A K E S " 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 1105 PO= PP(PL) 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 GOTO 1155 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) 1160 IF CH< > 32THEN 1300 1162 PP(PL)= PO 1165 GOTO 445 1200 REM MOVE CATERPILLAR 1300 REM GAME END 1305 POKE PP(PL),42:AA= PP(PL)+ 1 1306 BB= PEEK (AA):BB= (BBAND 7)+ 64 1307 POKE AA,BB 1310 SC(PL)= SC(PL)+ 1 1320 GOSUB 800 1330 GOSUB 1040 1340 IF NP= 0THEN 240 1346 PLOT 3,21,19:PRINT "PLAY AGAIN (Y OR N)? ";:XX= CALL (2) 1347 CH$= CHR$ (XX):PRINT CH$:IF CH$< > "Y"THEN 1390 1350 GOTO 240 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