10 REM SNAKER
20 GOSUB 470
30 HIGH=0
40 HS$=""
50 SYMBOL 250,&18,&3C,&42,&DB,&DB,&42,&3C,&18
60 SYMBOL 251,&18,&5A,&3C,&E7,&E7,&3C,&18,&5A
70 REM NEW PLAYER LOOP
80 SC=0
90 MODE 1
100 LOCATE 1,10
110 INPUT "What is your name ";name$
120 IF LEN(NAME$)>10 OR NAME$="" THEN GOTO 90
130 MODE 1
140 X=5:Y=5
150 KK=1
160 IF HIGH=0 THEN GOTO 180
170 LOCATE 1,1:PEN 1:PRINT"     HIGH SCORE OF ";HIGH;" BY ";HS$
180 REM MAIN PLAY LOOP
190 GOSUB 650
200 A=X:B=Y
210 KK=Q
220 IF KK=0 THEN B=B-1:IF B=0 THEN B=25
230 IF KK=2 THEN B=B+1:IF B=26 THEN B=2
240 IF KK=1 THEN A=A+1:IF A=41 THEN A=1
250 IF KK=8 THEN A=A-1:IF A=0 THEN A=40
260 XX=A:YY=B
270 GOSUB 600
280 IF DD<>32 THEN GOTO 370
290 PEN 3
300 LOCATE X,Y:PRINT CHR$(250);
310 PEN 2
320 LOCATE A,B:PRINT CHR$(251);
330 X=A:Y=B
340 SC=SC+15
350 SOUND 1,300,5
360 GOTO 190
370 REM THE SNAKE ATE ITSELF
380 FOR Q=10 TO 450 STEP 5
390 SOUND 1,Q,4
400 SOUND 2,Q+10,3
410 INK 3,INT(RND(1)*16+4)
420 NEXT Q
430 IF SC>HIGH THEN CALL &BB03:LOCATE 1,10:PRINT"THE NEW HIGH SCORE":HIGH=SC:HS$=NAME$
440 IF INKEY$="" THEN GOTO 440
450 IF INKEY$<>"" THEN GOTO 450
460 GOTO 70
470 REM PUT MACHINE CODE ABOVE RAMTOP
480 MEMORY &997F
490 MC=&A980
500 TH=&A9
510 TL=&FF
520 POKE MC,&CD
530 POKE MC+1,&60
540 POKE MC+2,&BB
550 POKE MC+3,&32
560 POKE MC+4,TL
570 POKE MC+5,TH
580 POKE MC+6,&C9
590 RETURN
600 REM RETURN SCREEN CHARACTER 
610 LOCATE XX,YY
620 CALL MC
630 DD=PEEK(&A9FF)
640 RETURN
650 Q=KK
660 FOR L=0 TO 8
670 IF INKEY(L)=0 THEN Q=L
680 NEXT L
690 IF Q<>0 AND V>1 AND V>2 AND Q<>8 THEN Q=KK
700 RETURN