10 REM          Bang wollop
20 REM         *************
30 REM
40 REM       Mark edmonds 1986
50 REM
60 MEMORY HIMEM-12
70 COPYCHAR=HIMEM+1
80 FOR ADDRESS=COPYCHAR TO COPYCHAR+10
90 READ BYTE:POKE ADDRESS,BYTE
100 NEXT ADDRESS
110 DATA &CD,&60,&BB,&DD,&6E,&00,&DD,&66,&01,&77,&C9
120 RESTORE 130:FOR Q=1 TO 10:READ IK:P(Q)=IK:NEXT
130 DATA 0,13,1,3,2,10,9,4,11,6
140 GOSUB 1290
150 REM
160 REM * Instructions *
170 REM
180 BORDER 0:INK 0,0:INK 1,25:INK 2,17:INK 3,19
190 MODE 1:PAPER 0:CLS:PEN 1:LOCATE 11,1:PRINT"* Bang wollop *"
200 PEN 2:FOR d=1 TO 39:LOCATE d,5:PRINT" ";CHR$(250):FOR n=1 TO 70:NEXT n:NEXT d:LOCATE 40,5:PRINT" "
210 PEN 3:LOCATE 1,6:PRINT" A game of skill and anticipation..."
220 PEN 1:PRINT:PRINT"  The object of the game is to race     around the many passages of the track     collecting points as you go whilst       avoiding the suicidal robot car."
230 PRINT:PRINT"  There is one catch...you can only     change lanes at one of the four small         gaps in the circuit!"
240 PRINT:PRINT" The robot car can only move one lane   at a time....  you can move up to five   in one gap.BEWARE...the robot drives    in the opposite direction and always    changes into the lane nearest to you !!"
250 PEN 2:LOCATE 12,24:PRINT"Press any key"
260 IF INKEY$="" THEN 260
270 CLS:PEN 1:LOCATE 16,1:PRINT"Keys":LOCATE 16,2:PRINT"===="
280 PEN 2:LOCATE 9,4:PRINT"A - Move up one lane"
290 LOCATE 9,6:PRINT"Z - Move down one lane"
300 LOCATE 9,8:PRINT"N - Move left one lane"
310 LOCATE 9,10:PRINT"M - Move right one lane"
320 PEN 2:LOCATE 12,24:PRINT"Press any key"
330 IF INKEY$="" THEN 330
340 REM
350 REM * Set up *
360 REM
370 SC=0:DOTS=0:SH=1:LI=3
380 REM
390 REM  * Draw screen *
400 REM
410 MODE 1:INK 0,p(sh)
420 PAPER 0:CLS:BORDER 7:PEN 1
430 PRINT"+--------------------------------------+";
440 PRINT"—................      ................—";
450 PRINT"—.+--------------      --------------+.—";
460 PRINT"—.—..............      ..............—.—";
470 PRINT"—.—.+------------      ------------+.—.—";
480 PRINT"—.—.—............      ............—.—.—";
490 PRINT"—.—.—.+----------      ----------+.—.—.—";
500 PRINT"—.—.—.—..........      ..........—.—.—.—";
510 PRINT"—.—.—.—.+--------      --------+.—.—.—.—";
520 PRINT"—.—.—.—.—                      —.—.—.—.—";
530 PRINT"—         +------------------+         —";
540 PRINT"—         —                  —         —";
550 PRINT"—         —                  —         —";
560 PRINT"—         —                  —         —";
570 PRINT"—         +------------------+         —";
580 PRINT"—.—.—.—.—                      —.—.—.—.—";
590 PRINT"—.—.—.—.+--------      --------+.—.—.—.—";
600 PRINT"—.—.—.—..........      ..........—.—.—.—";
610 PRINT"—.—.—.+----------      ----------+.—.—.—";
620 PRINT"—.—.—............      ............—.—.—";
630 PRINT"—.—.+------------      ------------+.—.—";
640 PRINT"—.—..............      ..............—.—";
650 PRINT"—.+--------------      --------------+.—";
660 PRINT"—................      ................—";
670 PRINT"+--------------------------------------+";
680 LOCATE 17,12:PEN 2:PRINT"Score ";SC
690 LOCATE 17,13:PEN 3:PRINT"Sheet ";SH
700 LOCATE 17,14:PEN 1:PRINT"Lives ";LI
710 REM
720 REM * Tune *
730 REM
740 PEN 2:LOCATE 21,24:PRINT CHR$(248)
750 PEN 3:LOCATE 21,10:PRINT CHR$(244)
760 FOR M=1 TO 3
770 SOUND 7,239,10
780 FOR N=1 TO 700:NEXT N
790 NEXT M
800 SOUND 7,119,100
810 LOCATE 21,10:PRINT " "
820 REM
830 REM * Main loop *
840 REM
850 X=21:Y=24:A=21:B=10
860 L=5:K=1
870 Z=248:C=244:A%=0:B%=0
880 LOCATE X,Y:CALL COPYCHAR,àB%
890 LOCATE A,B:CALL COPYCHAR,àA%
900 PEN 2:LOCATE X,Y:PRINT CHR$(Z)
910 PEN 3:LOCATE A,B:PRINT CHR$(C)
920 D=A:E=B:V=X:W=Y
930 IF b%=46 THEN dots=dots+1:SOUND 7,119,3
940 IF (x=a OR x=a+1 OR x=a-1) AND (y=b OR y=b+1 OR y=b-1) THEN GOTO 1180
950 IF z=248 OR z=250 THEN x=x-(249-z) ELSE y=y-(250-z)
960 IF c=244 OR c=246 THEN a=a-(245-c) ELSE b=b+(246-c)
970 i$=UPPER$(INKEY$)
980 IF I$="N" THEN GOTO 1390
990 IF I$="M" THEN GOTO 1420
1000 IF I$="A" THEN GOTO 1450
1010 IF I$="Z" THEN GOTO 1480
1020 IF b=14 AND a>30 AND a<38 AND k<l THEN k=k+1:a=a+2
1030 IF b=14 AND a>32 AND a<40 AND k>l THEN k=k-1:a=a-2
1040 IF a=19 AND b>15 AND b<23 AND k<l THEN k=k+1:b=b+2
1050 IF a=19 AND b>17 AND b<25 AND k>l THEN k=k-1:b=b-2
1060 IF b=12 AND a>3 AND a<11 AND k<l THEN k=k+1:a=a-2
1070 IF b=12 AND a>1 AND a<9 AND k>l THEN k=k-1:a=a+2
1080 IF a=22 AND b>3 AND b<11 AND k<l THEN k=k+1:b=b-2
1090 IF a=22 AND b>1 AND b<9 AND k>l THEN k=k-1:b=b+2
1100 IF (x=y AND x<11) OR (x+(25-y)=40 AND x>29) OR (x+y=41 AND x>29) OR (x+y=26 AND x<11) THEN z=z+1
1110 IF (a=b AND a<11) OR (a+(25-b)=40 AND a>29) OR (a+b=41 AND a>29) OR (a+b=26 AND a<11) THEN c=c+1
1120 IF c=248 THEN c=244
1130 IF z=252 THEN z=248
1140 IF DOTS=288 THEN GOTO 1510
1150 PEN 1:LOCATE D,E:PRINT CHR$(A%):LOCATE V,W:PRINT" "
1160 GOTO 880
1170 REM
1180 REM  * Crash *
1190 REM
1200 PEN 3:LOCATE x-1,y-1:PRINT"***":LOCATE x-1,y:PRINT"*#*":LOCATE x-1,y+1:PRINT"***"
1210 ENV 1,100,3,1:SOUND 1,200,100,1,1,1,5
1220 PS=SC:SC=SC+DOTS
1230 PEN 2:FOR t=ps TO sc:LOCATE 23,12:PRINT t:SOUND 7,119,1:NEXT t
1240 LI=LI-1:LOCATE 17,14:PEN 1:PRINT"Lives ";LI
1250 FOR WT=1 TO 1000:NEXT WT
1260 IF LI=0 THEN GOTO 1560
1270 dots=0
1280 GOTO 380
1290 SYMBOL 244,&7,&F7,&62,&FF,&FF,&62,&F7,&7
1300 SYMBOL 244,&7,&F7,&62,&FF,&FF,&62,&F7,&7
1310 SYMBOL 245,&DB,&FF,&DB,&18,&5A,&7E,&7E,&5A
1320 SYMBOL 246,&E0,&EF,&46,&FF,&FF,&46,&EF,&E0
1330 SYMBOL 247,&5A,&7E,&7E,&5A,&18,&DB,&FF,&DB
1340 SYMBOL 248,&7,&F7,&62,&FF,&FF,&62,&F7,&7
1350 SYMBOL 249,&5A,&7E,&7E,&5A,&18,&DB,&FF,&DB
1360 SYMBOL 250,&E0,&EF,&46,&FF,&FF,&46,&EF,&E0
1370 SYMBOL 251,&DB,&FF,&DB,&18,&5A,&7E,&7E,&5A
1380 RETURN
1390 IF x>3 AND x<11 AND y>10 AND y<16 THEN x=x-2:l=l+1
1400 IF x>32 AND y>10 AND y<16 THEN x=x-2:l=l-1
1410 GOTO 1020
1420 IF x>1 AND x<10 AND y>10 AND y<16 THEN x=x+2:l=l-1
1430 IF x>30 AND x<38 AND y>10 AND y<16 THEN x=x+2:l=l+1
1440 GOTO 1020
1450 IF y>3 AND y<11 AND x>17 AND x<24 THEN y=y-2:l=l+1
1460 IF y>17 AND x>17 AND x<24 THEN y=y-2:l=l-1
1470 GOTO 1020
1480 IF y>1 AND y<9 AND x>17 AND x<24 THEN y=y+2:l=l-1
1490 IF y>15 AND y<23 AND x>17 AND x<24 THEN y=y+2:l=l+1
1500 GOTO 1020
1510 ps=sc:sc=sc+dots
1520 PEN 2:FOR t=ps TO sc:LOCATE 23,12:PRINT t:SOUND 7,119,1:NEXT t
1530 SH=SH+1:DOTS=0
1540 IF SH=11 THEN SH=1
1550 GOTO 380
1560 CLS:PEN 2:LOCATE 16,13:PRINT" GAME OVER"
1570 LOCATE 16,15:PEN 3:PRINT"SCORE -";SC
1580 LOCATE 9,24:PEN 1:PRINT"PRESS A KEY TO PLAY AGAIN"
1590 IF INKEY$="" THEN 1590
1600 GOTO 340
1610 FOR WT=1 TO 1000:NEXT WT