10 REM GRAND PRIX.
20 REM à PAUL STANLEY.
25 REM PAN BOOKS 1984
30 MODE 1:BORDER 0:INK 0,0:INK 1,24:INK 2,20:INK 3,6:WINDOW #1,1,40,1,25:PAPER #1,0:PEN #1,1:CLS #1
40 DIM B$(3),I(3):FOR F=1 TO 3:B$(F)="":I(F)=0:NEXT
50 GOSUB 880
60 GOSUB 410
70 WINDOW #0,5,36,1,25:PAPER #0,0:PEN #0,1:CLS #0
80 LOCATE 1,24:PEN 3:PRINT CHR$(20);"ENTER SKILL (1-good to 4-bad)";:INPUT SK:IF SK<1 OR SK>4 THEN 80:PEN 1
90 LOCATE 1,24:PEN 2:PRINT CHR$(20);"How many laps";:INPUT LAPS:IF LAPS <1 THEN 90:PEN 1
100 LOCATE 1,24:PRINT CHR$(20);"1-hard Or 2-Easy Circuit";:INPUT CI:IF CI<>1 AND CI<>2 THEN 100
110 CLS:GOSUB 490
120 READ Q
130 LOCATE 18,3:PEN 3:PRINT"READY";:GOSUB 900:SOUND 1,120,3:SOUND 1,180,3:LOCATE 18,3:PEN 2:PRINT"STEADY";:GOSUB 900:SOUND 1,120,3:SOUND 1,90,3:LOCATE 18,3:PEN 1:PRINT"GO    ";:SOUND 1,180,3:SOUND 1,90,3:LOCATE 18,3:PRINT"     ";
140 GOSUB 900
150 IF INKEY$<>"" THEN 150
160 IF INKEY$="1" THEN G=1:SOUND 1,200,3
170 IF INKEY$="2" THEN G=2:SOUND 1,170,3
180 PO=PO-(INKEY(1)=0 AND PO<227)+7*(INKEY(1)=0 AND PO=227)+(INKEY(8)=0 AND PO>220)-7*(INKEY(8)=0 AND PO=220):IF X<5 THEN C=1
190 FOR F=1 TO G
200 SOUND 1,250,1:SOUND 1,300,1
210  Y=Y+(PO>220 AND PO<224)-(PO>224):X=X+(PO<222 OR PO=227)-(PO>222 AND PO<226)
220 LOCATE X+1,Y+1:CALL 360:K=PEEK(367): IF K=228 OR K=0 THEN Y=Y1:X=X1:SOUND 1,90,3:PO=INT(RND*8)+220
230  PEN 0:LOCATE X1+1,Y1+1:PRINT CHR$(PO1);:PEN 1
240  LOCATE X+1,Y+1:PRINT CHR$(PO);
250 Y1=Y:X1=X:PO1=PO
260 IF Y=10 THEN IF X>27 THEN IF C=1 THEN SOUND 1,200,3:L1=L1+1:LOCATE 11,1:PRINT MID$(STR$(L1),2);:C=0:IF L1=LAPS+1 THEN 370
270 NEXT F
280 SOUND 1,1180,1:SOUND 1,500,1
290 PEN 3:CY=CY+(CPO>220 AND CPO<224)-(CPO>224):CX=CX+(CPO<222 OR CPO=227)-(CPO>222 AND CPO<226):PEN 1
300 READ Q:CPO=220+Q
310 SOUND 1,1180,1:SOUND 1,500,1
320 PEN 0:LOCATE CX1+1,CY1+1:PRINT CHR$(CPO);:PEN 1
330 PEN 3: LOCATE CX+1,CY+1:PRINT CHR$(CPO);:PEN 1
340 CY1=CY:CX1=CX:CPO1=CPO
350 IF CY=11 THEN IF CX=30 THEN FG=1:GOSUB 710:L2=L2+1:SOUND 1,120,1:IF L2=LAPS+1 THEN 370 ELSE LOCATE 30,1:PRINT MID$(STR$(L2),2);
360 GOTO 160
370 FOR F=1 TO 40:SOUND 1,(F+100),3:NEXT
380 LOCATE 3,24:PRINT CHR$(24);"PRESS ANY KEY TO PLAY AGAIN.";CHR$(24);
390 IF INKEY$<>"" THEN 390
400 IF INKEY$="" THEN 400 ELSE CLS:GOTO 80
410 a$=" GRAND  PRIX  -  BY  PAUL  STANLEY"
420 PEN 2:LOCATE 1,5:PRINT"Steer your car around the Race-track andtry  to  beat  [A]  car  driven by  the computer.":PEN 1  
430 PEN 3:PRINT:PRINT"Turn left with the left arrow key and   right with the right arrow key.":PEN 1
440 PRINT:PRINT"You can select gears with [1] slow and  [2] fast.The computer will stay in  [1]"
450 PEN 3:PRINT:PRINT"If you crash you will restart randomly. So you must sort yourself out as fast aspossible.Your car is the Yellow one.":PEN 1
460 PRINT:PRINT:PRINT"         PRESS ANY KEY TO START"
470 PEN 1:B$=STRING$(40,46)+A$+STRING$(40,46):FOR N=1 TO LEN(B$)-40:IF INKEY$<>"" THEN CLS ELSE LOCATE 1,1:PRINT CHR$(24);MID$(B$,N,40);CHR$(24):PEN 1:LOCATE 1,24:PRINT CHR$(24);MID$(B$,N,40);CHR$(24):NEXT:PEN 1 : GOTO 470
480 RETURN
490 RESTORE 510
500 SYMBOL AFTER 219
510 SYMBOL 220,0,110,132,252,252,132,110,0
520 SYMBOL 221,40,108,240,58,223,76,24,8
530 SYMBOL 222,60,90,90,24,90,126,90,0
540 SYMBOL 223,20,54,15,92,251,50,24,16
550 SYMBOL 224,0,118,33,63,63,33,118,0
560 SYMBOL 225,16,24,50,251,92,15,54,20
570 SYMBOL 226,0,90,126,90,24,90,90,60
580 SYMBOL 227,8,24,76,223,58,240,108,40
590 SYMBOL 228,60,66,189,165,165,189,66,60
600 LOCATE 1,2
610 M$="  IIIIIIIIIIIIIIIIIIIIIIIIIIII   II                          II II                            III               IIIIIIIII      II              II    I  II     II             II     I   II    II    IIIIIIIIII      I    II   I":GOSUB 860
620 M$="I          I         I     I   II          I         I     I   II          I    I    I     I   III         I   III   I     I   I IIIIII    I   I I   I     I   I      II   I   I I   I     I   I IIIIII    I   I I   I     I   I":GOSUB 860
630 M$="II         I   I I   II   II   II          I   I I    IIIII    II     IIIIII   I I             II              I I             II              I I             III            II II           II IIIIIIIIIIIIII   IIIIIIIIIIIII":GOSUB 860
640 LOCATE 28,12:PEN 3:PRINT CHR$(228);"   ";CHR$(228);:PEN 1
650 IF CI=1 THEN LOCATE 7,4:PEN 2:PRINT CHR$(228);CHR$(228);:LOCATE 6,5:PRINT CHR$(228);CHR$(228);:LOCATE 3,9:PRINT CHR$(228);:LOCATE 3,10:PRINT CHR$(228);CHR$(228);
660 IF CI=1 THEN LOCATE 4,18:PRINT CHR$(228);:LOCATE 4,19:PRINT CHR$(228);:LOCATE 19,9:PRINT CHR$(228);:LOCATE 29,14:PRINT CHR$(228);:PEN 1
670 DATA 2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,7,5,5,5,5,6,6,7,7,0,7,6,5,4,4,4,4,4,4,3,2,2,2,2,2,3,3,3,4,5,5,6,6,6,6,5,5,4,4,4,4,4,4,4,3,3,3,2,2,2,2
680 DATA 2,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,7,6,5,4,5,5,5,6,7,7,0,7,6,5,4,4,4,4,4,4,3,3,2,2,2,2,3,3,3,4,5,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,2,2,2
690 DATA 2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,7,7,6,6,5,4,4,4,4,4,5,5,6,6,6,7,0,0,0,0,0,7,6,5,4,4,4,4,4,4,4,4,3,3,3,2,2,2,2,2,2,3,3,3,4,5,6,6,6,6,6,6,6,6,5,5,5,5,4,4,3,3,3,3,3,2,2,2,2,2
700 DATA 2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0.0,7,6,6,6,6,5,4,4,4,4,4,5,5,5,6,7,7,0,0,0,0,0,7,7,6,5,4,4,4,4,4,4,4,4,4,3,3,3,2,2,2,2,2,2,2,2,3,3,4,4,5,5,6,6,6,6,6,6,6,6,5,5,4,4,4,4,4,3,3,3,2,2,2,2,2,2,2
710 IF SK=1 THEN RESTORE 670
720 IF SK=2 THEN RESTORE 680
730 IF SK=3 THEN RESTORE 690
740 IF SK=4 THEN RESTORE 700
750 IF FG=1 THEN FG=0: RETURN
760 PO=222:CPO=222
770 Y=10:X=28:CY=Y:CX=30
780 Y1=Y:X1=X:PO1=PO
790 CY1=CY:CX1=CX:CPO1=CPO
800 L1=1:L2=L1
810 G=1:C=0
820 PEN 1:LOCATE X+1,Y+1:PRINT CHR$(PO);" ";:PEN 3:PRINT CHR$(CPO);
830 LOCATE 1,1:PRINT CHR$(24);"YOUR LAPS:";MID$(STR$(L1),2);" ";CHR$(24);
840 PEN 2:PRINT CHR$(24);" COMPUTER'S LAPS:";MID$(STR$(L2),2);" ";CHR$(24);:PEN 1
850 RETURN
860 PEN 2: FOR X=1 TO LEN(M$):IF MID$(M$,X,1)=" " THEN PRINT " "; ELSE PRINT CHR$(155+ASC(MID$(M$,X,1)));
870 NEXT:PEN 1:RETURN
880 RESTORE 890:FOR X=360 TO 366:READ A:POKE X,A:NEXT:RESTORE:RETURN
890 DATA 205,96,187,50,111,1,201
900 FOR LX=1 TO 800:NEXT
910 RETURN