BBC Basic Editor
I got an old game from a magazine and pasted into the editor, didn&#x27;t like for some reason.<p>edit:it was leading spaces before the line numbers that had broken it - got rid of them and it works.<p>OK so take this code below, strip off the leading spaces (thats important) and paste it into the box.<p>Its a helicopter game, controls are Z,X,M,K for left, right, up and down. You have to collect the asterixes.<p>The controls wont work in the right hand pane but if you press the JSBeeb button at the bottom it will port your code to JSBeeb where it does run<p>&quot;Helicopter&quot; by David Johnston from Acorn Computing magazine, 1994<p><pre><code>  10 MODE1
  20 TIME=0
  30 VDU 23;8202;0;0;0;
  40 VDU 23,130,248,63,0,0,0,15,57,96
  50 VDU 23,131,0,255,16,16,16,19,215,126
  60 VDU 23,132,0,252,31,0,0,192,0,0
  70 VDU 23,133,0,0,0,0,0,48,72,132
  80 VDU 23,134,192,128,128,192,127,127,31,0
  90 VDU 23,135,63,63,63,63,255,254,254,130
  100 VDU 23,136,255,255,248,128,0,0,0,0
  110 VDU 23,137,228,132,72,48,0,0,0,0
  120 VDU 23,138,0,31,63,31,0,0,0,0
  130 VDU 23,139,130,255,255,255,0,0,0,0
  140 VDU 23,140,0,240,248,240,0,0,0,0
  150 VDU 23,141,85,85,255,0,0,0,0,0
  160 VDU 23,142,255,255,195,195,195,195,255,255
  170 VDU 23,143,24,126,126,255,255,126,126,24
  180 A=35:B=15
  190 FORZ=1TO38:PRINTTAB(Z,31);CHR$(141);:NEXT
  200 S=0
  210 BA2=0:BB2=0:BL2=0
  220 BA=-6:BB=20:BL=7
  230 BA3=0:BB3=0:BL3=0
  240 CA=0:CB=0
  250 PROCdraw
  260 QT%=TIME+8:IF INKEY(-71)=-1 THEN PROCup
  270 IF INKEY(-102)=-1 THEN PROCdown
  280 IF INKEY(-98)=-1 THEN PROCleft
  290 IF INKEY(-67)=-1 THEN PROCright
  300 PROCbuilding
  310 PROCsidec
  320 PROCcir
  330 IF (CA=A AND CB=B+2) OR (CA=A+1 AND CB=B+2) OR (CA=A+2 AND CB=B+2) THEN CA=0:S=S+10
  340 IF TIME&gt;10000 THEN CLS:PRINT&quot;Out of time&quot;:PRINT:PRINT&quot;You scored &quot;;S:GOTO1260
  350 REPEATUNTILTIME&gt;QT%:GOTO260
  360 DEFPROCup
  370 IF B=1 THEN ENDPROC
  380 PROCundraw
  390 B=B-1
  400 IF (INKEY(-98)=-1 AND A&gt;1) OR (INKEY(-67)=-1 AND A&lt;35) THEN GOTO 410 ELSE PROCdraw
  410 ENDPROC
  420 DEFPROCdown
  430 IF B=28 THEN ENDPROC
  440 IF A+3&gt;BA AND A&lt;BA+BL AND B=BB-3 THEN PROCdie
  450 IF A+3&gt;BA2 AND A&lt;BA2+BL2 AND B=BB2-3 THEN PROCdie
  460 IF A+3&gt;BA3 AND A&lt;BA3+BL3 AND B=BB3-3 THEN PROCdie
  470 PROCundraw
  480 B=B+1
  490 IF (INKEY(-98)=-1 AND A&gt;1) OR (INKEY(-67)=-1 AND A&lt;35) THENGOTO500 ELSE PROCdraw
  500 ENDPROC
  510 DEFPROCleft
  520 IF A=1 THEN ENDPROC
  530 PROCsidec
  540 PROCundraw
  550 A=A-1:PROCdraw
  560 ENDPROC
  570 DEFPROCright
  580 IF A=35 THEN ENDPROC
  590 PROCundraw
  600 A=A+1:PROCdraw
  610 ENDPROC
  620 DEFPROCsidec
  630 IF B+3&gt;BB AND A=BA+BL THEN PROCdie
  640 IF B+3&gt;BB2 AND A=BA2+BL2 THEN PROCdie
  650 IF B+3&gt;BB3 AND A=BA3+BL3 THEN PROCdie
  660 ENDPROC
  670 DEFPROCcir
  675 COLOUR3
  680 IF CA=0 THENGOTO730
  690 PRINTTAB(CA,CB)&quot; &quot;
  700 IF CA=38 THEN CA=0:GOTO740
  710 CA=CA+1
  720 PRINTTAB(CA,CB)CHR$(143)
  730 IF CA&gt;0 THEN ENDPROC
  740 IF POINT(36,100)=2 THEN ENDPROC
  750 IF RND(10)&gt;1 THEN ENDPROC
  760 CA=1:CB=RND(5)+20
  770 ENDPROC
  780 DEFPROCdraw
  785 COLOUR1
  790 PRINTTAB(A,B);
  800 VDU130:VDU131:VDU132:VDU133
  810 PRINTTAB(A,B+1);
  820 VDU134:VDU135:VDU136:VDU137
  830 PRINTTAB(A,B+2);
  840 VDU138:VDU139:VDU140
  850 ENDPROC
  860 DEFPROCundraw
  870 PRINTTAB(A,B);&quot;    &quot;
  880 PRINTTAB(A,B+1);&quot;    &quot;
  890 PRINTTAB(A,B+2);&quot;   &quot;
  900 ENDPROC
  910 DEFPROCbuilding
  915 COLOUR2
  920 IF BL=0 THENGOTO980
  930 IF BA&lt;1 THENGOTO950
  940 FOR Z%=BB TO 30:PRINTTAB(BA,Z%);&quot; &quot;;:NEXT
  950 IF BA&gt;38-BL THENGOTO970
  960 FOR Z%=BB TO 30:PRINTTAB(BA+BL,Z%)CHR$(142):NEXT
  970 BA=BA+1:IF BA=39 THEN BL=0
  980 IF BL2=0 THENGOTO1040
  990 IF BA2&lt;1 THENGOTO1010
  1000 FOR Z%=BB2 TO 30:PRINTTAB(BA2,Z%);&quot; &quot;;:NEXT
  1010 IF BA2&gt;38-BL2 THENGOTO1030
  1020 FOR Z%=BB2 TO 30:PRINTTAB(BA2+BL2,Z%)CHR$(142):NEXT
  1030 BA2=BA2+1:IF BA2=39 THEN BL2=0
  1040 IF BL3=0 THENGOTO1100
  1050 IF BA3&lt;1 THENGOTO1070
  1060 FOR Z%=BB3 TO 30:PRINTTAB(BA3,Z%);&quot; &quot;;:NEXT
  1070 IF BA3&gt;38-BL3 THENGOTO1090
  1080 FOR Z%=BB3 TO 30:PRINTTAB(BA3+BL3,Z%)CHR$(142):NEXT
  1090 BA3=BA3+1:IF BA3=39 THEN BL3=0
  1095 IF CA=1 OR CA=2 THEN ENDPROC
  1100 IF BL=0 AND (BA2&gt;2 OR BL2=0) AND (BA3&gt;2 OR BL3=0) THENGOTO1120
  1110 GOTO1140
  1120 IF RND(10)&gt;1 THENGOTO1140
  1130 BL=RND(10)+5:BA=1-BL:BB=RND(10)+10
  1140 IF BL2=0 AND (BA&gt;2 OR BL=0) AND (BA3&gt;2 OR BL3=0) THENGOTO1160
  1150 GOTO1180
  1160 IF RND(10)&gt;1 THENGOTO1180
  1170 BL2=RND(10)+5:BA2=1-BL2:BB2=RND(10)+10
  1180 IF BL3=0 AND (BA&gt;2 OR BL=0) AND (BA2&gt;2 OR BL2=0) THENGOTO1200
  1190 GOTO1220
  1200 IF RND(10)&gt;1 THENGOTO1220
  1210 BL3=RND(10)+5:BA3=1-BL3:BB3=RND(10)+10
  1220 ENDPROC
  1230 DEFPROCdie
  1240 CLS:PRINT&quot;You have crashed&quot;
  1250 PRINT:PRINT&quot;You scored &quot;;S
  1260 FORT=1TO3000:NEXT:*FX15,1 
  1270 PRINT:PRINT&quot;Press any key to play again&quot;
  1280 A=GET:RUN


</code></pre>
Also a bat and ball game here, its not very good though:<p><a href="https:&#x2F;&#x2F;pastebin.com&#x2F;dntnb8es" rel="nofollow">https:&#x2F;&#x2F;pastebin.com&#x2F;dntnb8es</a>