40 IF PEEK(PK% +PD%) >127 THEN SP% = SP% +1: IF SP% >5 THEN SP% = 1
50 IF PDL(PD%) <35 THEN X = X -3 -(SP% -3) *(SP% >3): IF X <85 THEN X = 85
60 IF PDL(PD%) >230 THEN X = X +3 +(SP% -3) *(SP% >3): IF X >205 THEN X = 205
70 RETURN
80 REM *** KEYBOARD MOVES ***
90 KEY% = PEEK(KB%): IF KEY% = 211 THEN POKE -16368,0:SP% = SP% +1: IF SP% >5 THEN SP% = 1
100 IF KEY% = 136 THEN DIR% = 1
110 IF KEY% = 160 THEN DIR% = 2
120 IF KEY% = 149 THEN DIR% = 3
130 ON DIR% GOSUB 140,150,160: RETURN
140 X = X -3 -(SP% -3) *(SP% >4): IF X <85 THEN X = 85
150 RETURN
160 X = X +3 +(SP% -3) *(SP% >4): IF X >205 THEN X = 205
170 RETURN
180 REM *** LEVEL 3 ***
190 HCOLOR= 0: DRAW CTR% +2 AT 110,155: ON CTR% GOSUB 230,240,250,260,280,290: IF CTR% +1 >6 THEN LAP = LAP +1: VTAB 22: HTAB 39: PRINT LAP;:CTR% = 0: IF LAP = 10 THEN POP : GOTO 780
200 HCOLOR= 3: DRAW CTR% +3 AT 110,155: ON (CTR% +1) GOSUB 230,240,250,260,280,290: IF CTR% +3 = 8 AND LAP = 8 THEN DRAW 12 AT 165,12
210 IF CTR% +3 = 8 AND LAP = 9 THEN HCOLOR= 0: DRAW 12 AT 165,12: HCOLOR= 3: DRAW 13 AT 165,12
220 RETURN
230 HPLOT 125,159 TO 125,110 TO 105,70 TO 125,3: HPLOT 155,159 TO 155,110 TO 135,70 TO 155,3: DRAW 1 AT INT( RND(FL) *25) +128,125:FL = NOT FL: RETURN
240 HPLOT 125,159 TO 85,100 TO 85,90 TO 110,50 TO 125,3: HPLOT 155,159 TO 115,100 TO 115,90 TO 140,50 TO 155,3:RDM = INT( RND(FL) *10) +122: DRAW 2 AT RDM,20: DRAW 2 AT RDM +15,20: DRAW 2 AT RDM -3,28:FL = NOT FL: RETURN
250 HPLOT 125,159 TO 100,120 TO 100,100 TO 150,50 TO 125,3: HPLOT 155,159 TO 130,120 TO 130,100 TO 180,50 TO 155,3: DRAW 1 AT INT( RND(FL) *20) +103,110 - INT( RND(0) *30):FL = NOT FL: RETURN
260 HPLOT 125,159 TO 125,140 TO 90,90 TO 125,40 TO 125,3: HPLOT 155,159 TO 155,140 TO 190,90 TO 155,40 TO 155,3: HPLOT 140,110 TO 125,90 TO 140,70 TO 155,90 TO 140,110
270 RDM = RND(FL): DRAW 1 AT INT(RDM *25) +128,30: DRAW 1 AT INT(RDM *10) +102,100: DRAW 1 AT INT(RDM *10) +150,80:FL = NOT FL: RETURN
280 HPLOT 125,159 TO 150,110 TO 150,100 TO 175,60 TO 125,3: HPLOT 155,159 TO 180,110 TO 180,100 TO 205,60 TO 155,3: DRAW 2 AT INT( RND(FL) *20) +145,130:FL = NOT FL: RETURN
290 HPLOT 125,159 TO 125,130 TO 100,75 TO 100,50 TO 125,3: HPLOT 155,159 TO 155,130 TO 180,80 TO 180,50 TO 155,3: HPLOT 137,107 TO 125,80 TO 125,50 TO 138,27 TO 150,50 TO 150,80 TO 137,107
300 DRAW 1 AT INT( RND(FL) *25) +152,65:FL = NOT FL: HPLOT 100,61 TO 125,61: FOR I = 0 TO 3: HPLOT 100,50 +I TO 125,50 +I: NEXT
310 DRAW 9 AT 90,57: DRAW 10 AT 90,66: DRAW 11 AT 90,75: RETURN
320 REM *** LEVEL 2 ***
330 HCOLOR= 0: DRAW CTR% +2 AT 105,155: ON CTR% GOSUB 370,380,390,400,410: IF CTR% +1 >5 THEN LAP = LAP +1: VTAB 22: HTAB 39: PRINT LAP;:CTR% = 0: IF LAP = 4 THEN POP : GOTO 780
340 HCOLOR= 3: DRAW CTR% +3 AT 105,155: ON (CTR% +1) GOSUB 370,380,390,400,410: IF CTR% +3 = 7 AND LAP = 2 THEN DRAW 12 AT 165,12
350 IF CTR% +3 = 7 AND LAP = 3 THEN HCOLOR= 0: DRAW 12 AT 165,12: HCOLOR= 3: DRAW 13 AT 165,12
360 RETURN
370 HPLOT 125,159 TO 122,110 TO 102,70 TO 125,3: HPLOT 155,159 TO 157,110 TO 137,70 TO 155,3: DRAW 1 AT INT( RND(FL) *25) +125,120:FL = NOT FL: RETURN
380 HPLOT 125,159 TO 165,100 TO 165,60 TO 125,3: HPLOT 155,159 TO 200,100 TO 200,60 TO 155,3: DRAW 2 AT INT( RND(FL) *27) +167,70:FL = NOT FL: RETURN
390 HPLOT 125,159 TO 97,120 TO 97,95 TO 142,50 TO 125,3: HPLOT 155,159 TO 132,120 TO 132,95 TO 177,50 TO 155,3: DRAW 2 AT INT( RND(FL) *27) +99,100:FL = NOT FL: RETURN
400 HPLOT 125,159 TO 122,140 TO 87,90 TO 122,40 TO 125,3: HPLOT 155,159 TO 157,140 TO 192,90 TO 157,40 TO 155,3: HPLOT 140,110 TO 125,90 TO 140,70 TO 155,90 TO 140,110: DRAW 1 AT INT( RND(FL) *27) +124,35:FL = NOT FL: RETURN
410 HPLOT 125,159 TO 87,100 TO 87,90 TO 107,50 TO 125,3: HPLOT 155,159 TO 122,100 TO 122,90 TO 142,50 TO 155,3: DRAW 2 AT INT( RND(FL) *27) +88,95:FL = NOT FL: RETURN
420 REM *** LEVEL 1 ***
430 HCOLOR= 0: DRAW CTR% +2 AT 105,155: ON CTR% GOSUB 470,480,490,500: IF CTR% +1 >4 THEN LAP = LAP +1: VTAB 22: HTAB 39: PRINT LAP;:CTR% = 0: IF LAP = 3 THEN POP : GOTO 780
440 HCOLOR= 3: DRAW CTR% +3 AT 105,155: ON (CTR% +1) GOSUB 470,480,490,500: IF CTR% +3 = 6 AND LAP = 1 THEN DRAW 12 AT 165,12
450 IF CTR% +3 = 6 AND LAP = 2 THEN HCOLOR= 0: DRAW 12 AT 165,12: HCOLOR= 3: DRAW 13 AT 165,12
460 RETURN
470 RDM = INT( RND(FL) *22) +119: HPLOT 125,159 TO 120,135 TO 120,25 TO 125,3: HPLOT 155,159 TO 160,135 TO 160,25 TO 155,3: FOR I = 1 TO 3: DRAW 2 AT RDM +I *5,120 -20 *I: NEXT :FL = NOT FL: RETURN
480 HPLOT 125,159 TO 85,100 TO 85,90 TO 105,50 TO 125,3: HPLOT 155,159 TO 125,100 TO 125,90 TO 145,50 TO 155,3: DRAW 2 AT INT( RND(FL) *25) +86,90:FL = NOT FL: RETURN
490 HPLOT 125,159 TO 95,120 TO 95,100 TO 140,50 TO 125,3: HPLOT 155,159 TO 135,120 TO 135,100 TO 180,50 TO 155,3: DRAW 2 AT INT( RND(FL) *27) +96,120:FL = NOT FL: RETURN
500 HPLOT 125,159 TO 145,110 TO 145,100 TO 165,60 TO 125,3: HPLOT 155,159 TO 185,110 TO 185,100 TO 205,60 TO 155,3: DRAW 2 AT INT( RND(FL) *29) +146,105:FL = NOT FL: RETURN
510 REM *** START RACE TRACK ***
520 HPLOT 125,159 TO 0,159 TO 0,0: FOR I = 0 TO 2: HPLOT 0,I TO 125,I: HPLOT 155,I TO 279,I: NEXT : HPLOT 279,0 TO 279,159 TO 155,159
530 HPLOT 125,159 TO 125,110 TO 105,70 TO 125,3: HPLOT 155,159 TO 155,110 TO 135,70 TO 155,3: DRAW 3 AT 110,155: RETURN
540 HPLOT 125,159 TO 122,110 TO 102,70 TO 125,3: HPLOT 155,159 TO 157,110 TO 137,70 TO 155,3: DRAW 3 AT 105,155: RETURN
550 HPLOT 125,159 TO 120,135 TO 120,25 TO 125,3: HPLOT 155,159 TO 160,135 TO 160,25 TO 155,3: DRAW 3 AT 105,155: RETURN
560 REM *** OUT OF GAS LOOP ***
570 VTAB 23: HTAB 7: PRINT " 0.0";: HTAB 22: FLASH : PRINT " OUT OF GAS! ";: FOR I = 1 TO 4000: NEXT : NORMAL :FUEL = 15:SP% = 1:TIME = TIME +90: HTAB 22: CALL -958: RETURN
580 REM *** MAIN LOOP ***
590 ON MODE% GOSUB 40,90
600 Y = Y -2 *SP%: IF Y <0 THEN Y = 163: XDRAW 1 AT OX,OY: XDRAW 1 AT X,Y:CTR% = CTR% +1:OX = X:OY = Y: ON A% GOSUB 430,330,190: GOTO 590
610 IF PEEK(KB%) = 155 THEN POKE -16368,0: TEXT : GOTO 20
620 TIME = TIME +.2:MIN% = INT(TIME/60):SEC% = INT(TIME -(MIN% *60))
1200 KB% = -16384:BZ% = -16336:PK% = -16287:CC% = 234:NAM$ = " THE NIBBLE 500 ":OVER$ = " GAME OVER ":NBR% = 10:MODE% = 0
1210 LN$ = "-": FOR I = 1 TO 39:LN$ = LN$ +"-": NEXT
1220 PRINT D$"BLOAD RACER.SHAPES"
1230 POKE 232,0: POKE 233,16
1240 VTAB 22: PRINT "** COPYRIGHT 1985 BY MICROSPARC, INC. **": VTAB 20: HTAB 3: PRINT "WOULD YOU LIKE INSTRUCTIONS? (Y/N) ";
1250 GET A$: PRINT : IF A$ = "N" THEN 1560
1260 IF A$ < >"Y" THEN 1250
1270 HOME : VTAB 1: HTAB 11: INVERSE : PRINT NAM$: NORMAL
1280 PRINT " PLAYERS ARE OFFERED A CHOICE OF THREE";: PRINT "LEVELS OF PLAY. A 'BEGINNER'S TRACK'": PRINT "HAS WIDE ROADWAYS, SWEEPING TURNS, AND": PRINT "FEW OBSTACLES. A 'WARM-UP TRACK' OFFERS";
1290 PRINT "NARROWER ROADWAYS AND A FEW MORE": PRINT "OBSTACLES (POTHOLES AND ABANDONED CARS).";: PRINT "THE 'CHAMPIONSHIP TRACK' HAS NARROWER": PRINT "ROADWAYS, SHARPER TURNS, AND A PIT STOP.";
1300 PRINT : PRINT " AT WHATEVER LEVEL YOU CHOOSE TO PLAY,";: PRINT "TRY TO AVOID THE OBSTACLES OR DRIVING": PRINT "INTO THE SIDES OF THE TRACK. DOING": PRINT "EITHER SLOWS YOU AND COSTS TIME."
1310 PRINT : PRINT " A DISPLAY OF FUEL REMAINING WILL": PRINT "APPEAR ON THE SCREEN UNDER ALL LEVELS,": PRINT "BUT WILL NORMALLY ONLY BE A FACTOR ON": PRINT "THE CHAMPIONSHIP TRACK. USE THE PIT"
1320 PRINT "STOP TO GET UP TO 35 MORE GALLONS OF": PRINT "FUEL. DON'T RUN OUT!!!": PRINT : PRINT TAB( 10);"<ANY KEY FOR MORE>";
1330 GET A$: HOME
1340 PRINT " THE BEGINNER'S GAME LASTS FOR THREE": PRINT "LAPS THROUGH A SEQUENCE OF FOUR LAYOUTS.";: PRINT "THE WARM-UP GAME TAKES FOUR LAPS THROUGH";: PRINT "A SEQUENCE OF FIVE LAYOUTS. THE"
1350 PRINT "CHAMPIONSHIP GAME RUNS FOR TEN LAPS": PRINT "THROUGH A SERIES OF SIX TRACK LAYOUTS.": PRINT
1360 PRINT " YOU MAY USE THE <ESC> KEY TO END A": PRINT "RACE EARLY AND THEN RESTART.": PRINT
1370 PRINT " AT ALL THREE LEVELS, WHEN YOUR RACER": PRINT "IS ABOUT TO BEGIN THE FINAL LAP, A SMALL";: PRINT "WHITE FLAG WILL APPEAR NEAR THE TOP OF"
1380 PRINT "THE SCREEN. AND, WHEN THE FINAL LAYOUT": PRINT "OF THE LAST LAP IS REACHED, YOU'LL GET": PRINT "THE CHECKERED FLAG....GAME'S OVER!!!"
1450 POKE 32,3: PRINT : PRINT "A NOTE ON SPEED...": PRINT : PRINT "THE RACER TURNS SHARPER AT SLOWER": PRINT "SPEEDS THAN AT THE FASTER ONES.": PRINT "THIS INCREASES MANEUVERABILITY, BUT": PRINT "ALSO REQUIRES A FINER TOUCH.": POKE 32,0