1LOMEM :29000
5REM    game by MIKE ROBERTS
6REM          
7 n$=" EKANSS": d=0: a=0: b=0
10POKE 17126, 145:TEXT:POKE 16953, 0
15FOR i=1 TO 7: n$(i)=MID$(n$, i, 1):NEXT
20FOR i=1 TO 7: a=a+.4: n=INT(COS(a)*8)
25VTAB 24-d-i:HTAB 20+n:FLASH:? n$(i)
30NEXT: b=b+.4: a=b:IF d=16 THEN 37
35 d=d+1:GOTO 20
37NORMAL:SPEED =255
50VTAB 10:HTAB 1:? "Do you need instructions?"
60? "(y/n or <Q>uit) "; :GET a$:?
70IF a$="y" OR a$="Y" THEN 100
76IF a$="n" OR a$="N" THEN 180
77IF a$="Q" THEN END
80IF a$<>"y" OR a$<>"Y" OR a$<>"n" OR a$<>"N" OR a$<>"Q" OR  a$<>"q" THEN 50
85REM       
90REM       -- INSTRUCTIONS --
95REM       
100TEXT:HOME:VTAB 3:HTAB 12:? "SSNAKE"
110?:?
120? "THE HIGH SCORE IS:"; hs
130 s=0
140? "YOUR SCORE IS:"; s
150?:?:?
160? "THE OBJECT OF THE GAME IS TO   EAT ALL ALL THE BLUE    DOTS AND  ESCAPE OUT THE EXIT":?:?
170? "You CAN'T RUN INTO ANYTHING    THAT IS NOT BLUE!       INCLUDING    YOUR TRAIL (PURPLE)"
180VTAB 23:HTAB 3
190INVERSE:? "PRESS LEFT BUTTON TO START"; 
195NORMAL:IF  NOT PDL(7) THEN 195
196IF e=0 THEN GOSUB 1000
197FOR sc=1 TO 3
200REM       
203REM       -- SCREEN #1 -- 
205REM       
210GR:? "  PREPARE TO ENTER SCREEN #"; sc
220FOR d=1 TO 2000:NEXT d:GOSUB 1170:HOME
230VTAB 21:HTAB 11:? "SCORE:"; : s=0
240COLOR =15:HLIN 0, 38 AT 0:HLIN 0, 38 AT 38:VLIN 0, 38 AT  0:VLIN 0, 38 AT 38
250VLIN 0, 38 AT 39:COLOR =9
260FOR x=2 TO 34 STEP 4:FOR y=2 TO 34 STEP 4
270FOR z=x TO x+2:HLIN y, y+2 AT z:NEXT z, y, x
280FOR i=5 TO 33 STEP 4:FOR j=5 TO 34 STEP 4:COLOR =2:PLOT   i, j:NEXT j, i
290COLOR =6:PLOT 1, 2:PLOT 33, 31:PLOT 13, 23:PLOT 23, 13
300GOTO 620
305REM       
310REM        -- SCREEN #2 --
315REM       
320GR:? "  PREPARE TO ENTER SCREEN #"; sc:FOR d=1 TO         2000:NEXT d:GOSUB 1170:HOME
330VTAB 21:HTAB 11:? "SCORE:"; s: s=s
340COLOR =15:HLIN 0, 39 AT 0:HLIN 0, 39 AT 39:VLIN 0, 39 AT  0:VLIN 0, 39 AT 39
350COLOR =6:HLIN 17, 19 AT 15:HLIN 22, 24 AT 15:VLIN 15, 20  AT 17:VLIN 15, 20 AT 24:HLIN 17, 24 AT 20
360VLIN 1, 10 AT 2:HLIN 2, 5 AT 36:HLIN 2, 5 AT 10:HLIN 2, 7 AT 12:VLIN 12, 35 AT 2
370VLIN 10, 1 AT 5:VLIN 12, 2 AT 7:HLIN 7, 12 AT 2:HLIN 14,  19 AT 2:VLIN 2, 15 AT 19:VLIN 2, 15 AT 22
380HLIN 17, 14 AT 17:VLIN 17, 38 AT 14
390FOR x=9 TO 13:FOR y=9 TO 13:PLOT x, y:PLOT x+3, x+3:NEXT  y, x
400FOR x=9 TO 12:FOR y=17 TO 36:PLOT x, y:PLOT x-6, x+9:NEXT y, x
410FOR x=25 TO 38 STEP 3:FOR y=25 TO 38 STEP 2:FOR k=x TO y
420HLIN x, y AT k:NEXT k, y, x
430COLOR =0:VLIN 25, 36 AT 26:HLIN 26, 29 AT 36:VLIN 36, 33  AT 29:HLIN 29, 35 AT 33:VLIN 33, 25 AT 35
440COLOR =6:VLIN 24, 3 AT 32:HLIN 25, 36 AT 12
450COLOR =2:FOR x=7 TO 32 STEP 7:PLOT 1, x:NEXT x
460PLOT 19, 18:PLOT 22, 18:FOR x=8 TO 11 STEP y:PLOT x,      11:PLOT 17, 11
470PLOT 26, 9:PLOT 4, 11:PLOT 5, 11:PLOT 6, 10:PLOT 6, 2
480PLOT 15, 3:PLOT 13, 2:PLOT 4, 14:PLOT 13, 22:PLOT 16,     22:PLOT 19, 22:PLOT 6, 20
490PLOT 5, 30:PLOT 33, 33:PLOT 30, 33:PLOT 29, 36
500COLOR =0:HLIN 33, 37 AT 37:COLOR =6:HLIN 34, 37 AT        38:PLOT 38, 35
510GOTO 620
515REM      
520REM       -- SCREEN #3 --
525REM      
530GR:? "  PREPARE TO ENTER SCREEN #"; sc:GOSUB 1170
540FOR d=1 TO 2000:NEXT d:HOME
550VTAB 21:HTAB 11:? "SCORE:"; s: s=s
560COLOR =15:HLIN 0, 39 AT 0:HLIN 0, 39 AT 39:VLIN 0, 39 AT  0:VLIN 0, 39 AT 39
570COLOR =0:VLIN 1, 38 AT 1
580COLOR =2:FOR i=1 TO 15: cl=INT(RND(1)*37)+2:PLOT cl,      INT(RND(1)*37)+2:NEXT i
590COLOR =6:FOR j=1 TO 100: cj=INT(RND(1)*37)+2:IF cj=1 OR   cj=39 THEN 590
600PLOT cj, INT(RND(1)*37)+2:NEXT j
610PLOT 15, 1:PLOT 1, 12
615REM      
620REM       -- JOYSTICK ROUTINE --
625REM      
630 x1=1: y1=3: xc=0: yc=1
640 k=PDL(5)
650FOR d=1 TO 150:NEXT d
660IF k<>0 AND k/3<>INT(k/3) THEN  xc=(k=2)-(k=8):           yc=(k=4)-(k=1)
670 x1=x1+xc: y1=y1+yc
680IF x1=39 AND y1=37 THEN FOR d=1 TO 1000:NEXT d:TEXT:GOTO  810
690IF SCRN(x1, y1)=2 THEN  s=s+10:IF s=300 THEN GOSUB 1170
700IF SCRN(x1, y1)=1 OR SCRN(x1, y1)=6 OR SCRN(x1, y1)=9 OR  SCRN(x1, y1)=15 THEN GOSUB 1370
705IF SCRN(x1, y1)=1 OR SCRN(x1, y1)=6 OR SCRN(x1, y1)=9 OR  SCRN(x1, y1)=15 THEN 750
710IF sc=3 AND x1=38 AND y1=37 THEN TEXT:GOSUB 1170:GOTO 880
720IF s>=300 THEN COLOR =0:PLOT 38, 37:PLOT 39, 37
730VTAB 21:HTAB 17:? s; 
740COLOR =1:PLOT x1, y1:? CHR$(7); :GOTO 640
750FOR d=1 TO 1000:NEXT d
760IF s>hs THEN  hs=s
770TEXT:? "YOU HIT A BLOCK OR WALL!!":?:HTAB 10:FLASH:?      "GAME OVER!":NORMAL
780?:? "THE HIGH SCORE IS: "; hs:?:? "THE LAST SCORE WAS: "; s:?
790?:? "YOU WERE KILLED ON SCREEN #"; sc:?:?:INVERSE
793GOSUB 1270
795? "PRESS LEFT BUTTON TO PLAY AGAIN"; :NORMAL
797IF  NOT PDL(7) THEN 797
800GOTO 100
810TEXT:? "YOU MADE IT THROUGH SCREEN #"; sc
820IF s>hs THEN  hs=s
830?:?:? "THE HIGH SCORE IS: "; hs:?:? "YOUR SCORE IS: "; s
840 sc=sc+1
850?:INVERSE:? "PRESS LEFT BUTTON TO GET TO":? "SCREEN #";   sc
855NORMAL:IF  NOT PDL(7) THEN 855
860IF sc=2 THEN GOTO 320
870IF sc=3 THEN 530
880? "YOU SUCCESSFULLY COMPLETED ALL THREE SCREENS!!"
890?:?:? "THE HIGH SCORE IS: "; s:?:? "YOUR SCORE IS: "; s
900?:?:?:INVERSE:? "PRESS LEFT BUTTON TO PLAY AGAIN"; 
910NORMAL:IF  NOT PDL(7) THEN 910
1000 e=1:REM     music
1010REM     by Paul Pereira
1030DIM n(30), d(30)
1040FOR x=1 TO 30
1050READ n(x), d(x)
1060NEXT x
1070FOR x=28000 TO 28005
1080READ ml
1090POKE x, ml
1100NEXT x
1110REM     --music--
1120DATA     35,200,26,200,28,100,26,100,23,200,26,100
1130DATA     23,100,21,200,23,100,21,100,20,200,21,100
1140DATA      20,100,17,200,20,100,21,100,20,100,21,100
1145DATA     23,200,26,200,35,200,26,200,26,300,35,100
1150DATA      37,100,35,100,33,300,35,600,28,300,26,300
1160DATA       58,102,109,211,255,201
1170REM     winner sting
1180FOR x=1 TO 22
1190POKE 28006, 128:CALL 28000
1200POKE 28006, n(x):CALL 28000
1210POKE 28006, 144:CALL 28000
1220FOR d=1 TO d(x)
1230NEXT d
1240NEXT x
1250POKE 28006, 159:CALL 28000
1260RETURN
1270REM     this is loser sting
1280FOR x=23 TO 30
1290POKE 28006, 128:CALL 28000
1300POKE 28006, n(x):CALL 28000
1310POKE 28006, 144:CALL 28000
1320FOR d=1 TO d(x)
1330NEXT d
1340NEXT x
1350POKE 28006, 159:CALL 28000
1360RETURN
1370POKE 28006, 228:CALL 28000
1380FOR loud=240 TO 255
1390POKE 28006, loud:CALL 28000
1400FOR delay=1 TO 40:NEXT delay
1410NEXT loud
1420RETURN

