Appears on
Library tape of the Indiana Sinclair Timex User’s Group.
Source Code
10 LET y=0: LET h=y 20 LET e$="Jack" 30 RESTORE 1460: FOR b=y TO 63 40 READ C: POKE USR "\a"+b,c: NEXT B 50 LET s=y: LET v=1: LET y$=CHR$ 16+CHR$ y+"\g": LET z$=CHR$ 16+CHR$ 4+"X" 60 LET z=4: PAPER PI: INVERSE 1 70 LET f=y 80 CLS 90 PRINT INK z;"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 100 IF f=1 THEN RETURN 110 PRINT z$;y$;"\g\g\g\g\g\g\g\g\g\g\g\g''''\g\g\g\g\g\g\g\g\g\g\g\g\g";z$ 120 IF f=1 THEN GO TO 90 130 PRINT z$;y$; INK z;"\g\g\g\g\g\g\g\g\g\g\g\g"; INK y;"''''"; INK z;"\g\g\g\g\g\g\g\g\g\g\g\g";y$;z$ 140 IF f=1 THEN GO TO 110 150 PRINT z$;y$;z$;y$;"\g\g\g\g\g\g\g\g\g\g''''\g\g\g\g\g\g\g\g\g\g\g";z$;y$;z$ 160 IF f=1 THEN GO TO 130 170 PRINT z$;y$;z$;y$;z$;"XXXXXXXXX"; INK y;"''''";z$;"XXXXXXXXX";y$;z$;y$;z$ 180 IF f=1 THEN GO TO 150 190 PRINT z$;y$;z$;y$;z$;y$;"\g\g\g\g\g\g\g\g''''\g\g\g\g\g\g\g\g\g";z$;y$;z$;y$;z$ 200 IF f=1 THEN GO TO 170 210 PRINT z$;y$;z$;y$;z$;y$;z$;"XXXXXXX"; INK y;"''''";z$;"XXXXXXX";y$;z$;y$;z$;y$;z$ 220 IF f=1 THEN GO TO 190 230 PRINT z$;y$;z$;y$;z$;y$;z$;y$;"\g\g\g\g\g\g''''\g\g\g\g\g\g\g";z$;y$;z$;y$;z$;y$;z$ 240 IF f=1 THEN GO TO 210 250 PRINT z$;y$;z$;y$;z$;y$;z$;y$;z$;"XXXXXXXXXXXXXXX";y$;z$;y$;z$;y$;z$;y$;z$ 260 IF f=1 THEN GO TO 230 270 FOR a=1 TO 4 280 PRINT z$; INK y;"'''''''";z$;"XXXXXXXXXXXXXXX"; INK y;"'''''''";z$ 290 NEXT a 300 LET f=1 310 GO SUB 250 320 INVERSE y 330 GO SUB 1230 340 LET u=20 350 PAPER 0: INK 6 360 LET p=17 370 LET du=y 380 LET lj=4 390 LET dp=1 400 LET lf=4 410 LET a=10 420 LET g$="'" 430 LET t=1 440 LET l$="'" 450 LET da=-1 460 PRINT AT 9,9; PAPER y; INK 4;"Score: " 470 LET dt=0 480 LET q=1 490 LET c=144 500 IF INKEY$<>"" THEN BEEP .01,0 510 PRINT AT u,p; INK 6;CHR$ c 520 IF SCREEN$ (u+du,p+dp)="X" THEN GO TO 1180 530 PRINT AT a,t; INK PI;g$ 540 IF SCREEN$ (a+da,t+dt)="X" THEN GO TO 1210 550 LET g$=SCREEN$ (a+da,t+dt) 560 IF ATTR (a+da,t+dt)>128 THEN LET g$="," 570 IF g$<>"'" THEN LET q=v 580 IF g$<>"'" AND g$<>"," THEN LET g$="\g" 590 LET a=a+da: LET t=t+dt 600 IF a=ba AND t=rl THEN GO SUB 1390 610 IF SCREEN$ (a,t)="'" AND lj<>lf THEN GO SUB 920 620 PRINT AT a,t;"\h" 630 PRINT AT u,p; INK PI;l$ 640 LET u=u+du: LET p=p+dp 650 IF ATTR (u,p)=6 THEN GO TO 1050 660 LET m=0: LET l$=SCREEN$ (u,p): IF l$="" THEN LET l$=",": LET m=1 670 IF u=ba AND p=rl THEN GO SUB 1340 680 PRINT AT u,p;"\f" 690 IF m=1 THEN LET s=s+1: LET s2=s2+1: BEEP .005,-10: BEEP .005,-5: PRINT AT 9,17;s 700 IF s2>=244 THEN LET v=v-RND: GO TO 60 710 IF INKEY$="" OR l$="," THEN GO TO 500 720 LET i$=INKEY$ 730 IF CODE INKEY$<53 OR CODE INKEY$>56 THEN GO TO 500 740 RESTORE 750 750 DATA du,"6","7",dp,"5","8" 760 FOR i=1 TO 2 770 READ j: READ j$: READ k$ 780 IF j=y AND INKEY$<>j$ AND INKEY$<>k$ THEN GO TO 500 790 NEXT i 800 LET u1=u: LET p1=p 810 LET u1=u+((i$="6")-(i$="7"))*(du=y)*2 820 LET p1=p+((i$="8")-(i$="5"))*(dp=y)*2 830 LET n=(i$="6")*(dp=1)+(i$="7")*(dp=-1)+(i$="5")*(du=1)+(i$="8")*(du=-1) 840 IF n=y THEN LET n=-1 850 IF lj+n=y OR lj+n=5 THEN GO TO 500 860 LET lj=lj+n 870 PRINT AT u,p; INK PI;l$ 880 LET u=u1: LET p=p1 890 PRINT AT u,p;"\f" 900 BEEP .01,10 910 GO TO 500 920 IF INT q=y THEN RETURN 930 LET tf=lf+(lf<lj)-(lf>lj) 940 LET q=q-1 950 LET o=(lf>lj)*(da=-1)+(lf<lj)*(da=1) 960 IF o=y THEN LET o=-1*(dt=y) 970 LET o=o*2 980 LET t=t+o 990 LET o=(lf>lj)*(dt=1)+(lf<lj)*(dt=-1) 1000 LET lf=tf 1010 IF o=y THEN LET o=-1*(da=y) 1020 LET o=o*2 1030 LET a=a+o 1040 RETURN 1050 RESTORE 1170 1060 FOR a=1 TO 4 1070 READ b$: READ r 1080 PRINT AT u,p;b$ 1090 BEEP 1,r: NEXT a 1100 FOR a=1 TO 64 1110 BEEP .01,25: NEXT a 1120 PRINT AT 17,11;"GAME OVER" 1130 IF h<s THEN INPUT "You have passed highest score: Please type in your name and press ENTER. ";e$: IF LEN e$>11 THEN PRINT AT u,p-5;"Too long.......": GO TO 1050 1140 IF h<s THEN LET h=s 1150 IF INKEY$="" THEN GO TO 1150 1160 GO TO 50 1170 DATA "\f",30,"\e",20,".",10," ",0 1180 IF du=y THEN LET du=-dp: LET dp=y: LET c=c+1: GO TO 520 1190 IF dp=y THEN LET dp=du: LET du=y: LET c=c+1: IF c=148 THEN LET c=144 1200 GO TO 520 1210 IF da=y THEN LET da=dt: LET dt=y: GO TO 590 1220 IF dt=y THEN LET dt=-da: LET da=y: GO TO 590 1230 RESTORE 1260 1240 LET s2=y 1250 GO SUB 1390 1260 DATA 7,1,7,.5,7,.5,10,1,12,1,14,.5,12,1.5,10,1.5,12,.5,7,1,7,.5,7,.5,10,1,12,1,7,2 1270 DATA 7,1,7,1,10,1,12,1,14,.5,12,1.5,10,1,12,1,7,1,7,1,5,.5,4,1.5,y,2 1280 FOR a=1 TO 26 1290 READ w,x 1300 BEEP x/10,w: NEXT a 1310 IF h<s THEN LET h=s 1320 PRINT AT 11,9; PAPER z; INK y;"High score: ";h;AT 12,9;"by ";e$ 1330 RETURN 1340 FOR d=24 TO y STEP -1 1350 BEEP .01,d: NEXT d 1360 BEEP .1,36 1370 LET s=s+5 1380 LET l$="," 1390 LET ba=INT (RND*20)+1 1400 LET rl=INT (RND*29)+1 1410 LET b$=SCREEN$ (ba,rl) 1420 IF b$="'" OR b$="X" OR (b$="," AND s2<112) OR (ba>8 AND ba<13) THEN GO TO 1390 1430 PRINT AT ba,rl; INK 5; PAPER y;"\g" 1440 IF s>=112 THEN LET s2=s2+1 1450 RETURN 1460 DATA 60,126,240,224,C,240,126,60 1470 DATA y,66,195,C,231,255,126,60,C,126,15,7,C,15,126,60 1480 DATA 60,126,255,231,195,C,66,y,C,C,C,C,60,C,C,C 1490 DATA 60,126,255,C,C,C,126,60,y,6,8,60,126,60,24,y 1500 DATA 24,60,24,255,24,C,36,102 1510 SAVE "JACK 5" LINE 10