Nuclear Attack

Date: 198x
Type: Program
Platform(s): TS 2068
Tags: Arcade

Nuclear Attack is a Missile Command–style arcade game in which the player defends six cities and a missile launch site from incoming nuclear missiles. The player moves a crosshair “X” cursor in eight directions using keyboard rows and fires surface-to-air missiles toward the cursor position; each intercepted enemy missile scores 1,000 points, with bonus points for surviving cities and unused missiles awarded between waves. User-defined graphics (UDGs) are loaded at startup via a DATA block POKEd into the UDG area, providing city sprites, missile shapes, and explosion frames. The game tracks a three-entry high-score table stored in string and numeric arrays, with the player prompted for a name if their score qualifies. The screen color scheme cycles between PAPER 4, 5, and 6 across successive waves, and a bonus city is awarded upon reaching 50,000 and 100,000 points.

Program Structure

The program is organized into several broad functional regions:

  • Lines 2–4: Variable initialization, color setup, and array allocation for the current wave.
  • Line 10 / Lines 4000–4130: UDG loader — reads 152 bytes from DATA statements and POKEs them into the UDG area starting at USR "\\a", then jumps to the title/intro sequence.
  • Lines 11, 6050–6199: Title screen, instructions, and briefing pages.
  • Lines 6080–6105: Elaborate title screen drawn entirely with PLOT/DRAW commands and block graphics, including two symmetrical rocket silhouettes.
  • Lines 20–995: Main game loop — spawns missiles, moves them, handles player input, and triggers sub-routines for firing and city destruction.
  • Lines 1000–2060: Player cursor movement and missile firing dispatcher.
  • Lines 2100–2500: Wave-end logic, game-over sequence, high-score entry, and between-wave bonus scoring screen.
  • Lines 3000–3170: Enemy bomber/plane sub-routine that scrolls across the screen dropping additional missiles.
  • Lines 5000–5200: Explosion animation sub-routine using PLOT/DRAW bursts with INVERSE toggling.
  • Lines 6000–6049: Player missile trajectory calculation and drawing using OVER 1 to erase previous position.
  • Lines 6213–6900: Missile rack display and POKE-based attribute manipulation for the launch-site representation.
  • Lines 7000–7150: Player missile rendering loop with multi-frame animation using UDG characters.
  • Lines 7200–7999: City destruction sequence — an extensive series of PLOT/DRAW commands builds an expanding explosion bloom pixel by pixel around the city coordinate uu.
  • Lines 8000–8200: Hit detection confirmation, score update, and enemy missile removal from the active array.

UDG Usage

Nineteen UDGs (\\a through \\s, characters 144–162) are defined by the DATA block at lines 4040–4130. The 152 bytes cover sprites used for city buildings (three-character wide UDGs \\a\\b\\c), player missile trail frames (\\l, \\m), explosion fragments (\\f\\g\\h, \\i\\j\\k), and the bomber sprite (\\q\\r\\s, \\n\\o, \\p). The loader at lines 4000–4030 uses USR "\\a" as the base address and steps through all 152 bytes in a FOR loop with POKE USR "\\a"+a,b.

Enemy Missile Mechanics

Up to ten simultaneous enemy missiles are tracked in parallel arrays: d() for X pixel position, e() for Y pixel position, f() for horizontal drift, and i(,) for the launch origin. Counter b tracks how many are active; mm tracks surviving cities. Each missile is drawn with PLOT/DRAW using f(a) as the horizontal component of a 4-pixel downward step. When a missile reaches Y < 5 (line 115), city-destruction logic is triggered at line 7200. The variable ii governs spawn probability — it starts at 0 and rises to 0.8 (line 2100) or 1 (line 65/3100) as the wave progresses.

Player Input and Missile Firing

Keyboard scanning uses direct IN port reads rather than INKEY$: ports 64510 (Q/E row), 57342 (Y–P row), and 49150 (H–NL row) move the cursor; port 65278 (Z–V row) fires. The cursor “X” is drawn with OVER 1 to XOR it on and off without disturbing the background. The firing subroutine at line 6000 calculates the trajectory offset from the fixed launch point (oo,qq) to the cursor (x,y) and draws the missile path with OVER 1, then erases it on the next pass.

Hit Detection

Enemy missile hits on cities are detected at line 132 using POINT to check whether a pixel is set at the missile’s projected next position, combined with ATTR to verify the cell’s attribute matches pp (the current PAPER color attribute value, e.g., 42 for PAPER 5). Player missile hits on enemy missiles are detected by checking ATTR at the bomber’s column against pp (line 3020). Direct interception of an enemy missile by the explosion is handled at line 8000 via a flag set from line 132.

Score and High-Score Table

The three-entry high-score table uses c(1)–c(3) for numeric scores and c$(1,14)–c$(3,14) for 14-character names, all held in RAM between games. At game-over (line 2290 onward), the table is displayed using TAB 14-LEN STR$ c(n) to right-justify scores. If the player’s score qualifies, the program inserts it into the correct rank by shuffling lower entries down (lines 2320–2332), then prompts for a name via INPUT. The COPY command at line 2438 allows printing the scoreboard.

Between-Wave Bonus Screen

Lines 2500–2760 handle inter-wave scoring. Surviving cities award 2,000 points each; surviving player missiles (up to 30 total, tracked by t) award 500 each. Remaining missiles are drawn as pixel-art rockets using a sequence of PLOT/DRAW commands split across two rows of 15. The wave color cycles: PAPER 5 → PAPER 4 → PAPER 6 → back to 5, controlled by xx and pp (lines 2704–2720). Difficulty increases each wave via jj (max simultaneous missiles) and ab (barrage length threshold).

Bomber Sub-Routine

A bonus enemy type — a bomber — appears randomly (line 150 triggers at RND > 0.9). It scrolls left to right across row 11 using UDGs \\q\\r\\s, erasing its trail with \\n\\o. At each column it probabilistically checks whether it is aligned above a city (ae vs g(af)), and if so spawns a downward missile (lines 3100–3165). Hitting the bomber with an explosion scores 3,000 points (line 5003).

Memory and Display Techniques

  • OVER 1 (XOR mode) is used extensively for flicker-free movement of the cursor, enemy missiles, and player missiles without saving/restoring background.
  • Direct POKEs to the attribute file area (lines 6222–6225, addresses 23276–23282) manipulate the launch-site rack display at the character-cell level.
  • The city explosion at lines 7240–7540 is drawn entirely with PLOT/DRAW, building an expanding circular blast shape over ~60 individual drawing commands — one of the most elaborate pixel-art sequences in the program.
  • VAL is not used for line-number optimization here; GO TO targets are literal integers throughout.

Bugs and Anomalies

  • Line 7345 contains PLOT uu=5,17 — the = operator assigns 5 to uu mid-expression rather than using -, corrupting the city coordinate used for subsequent explosion PLOTs. This is almost certainly a typo for uu-5.
  • Variable ww is used at line 2650 (LET g(mm)=ww) to restore a destroyed city’s X position, but ww is only set at line 7989 if a non-launch-site city was destroyed. If a bonus city is awarded after the launch site was hit first, ww may hold a stale value.
  • Line 6199 sets LET SS=-1 (uppercase) which is a different variable from ss (lowercase) used everywhere else; the check at line 6290 (IF ss=-1) therefore uses lowercase ss and will never be true via this path, making the GO TO 20 at 6290 unreachable from this route.
  • Lines 6120 contains RUN inside a FOR loop used as part of the title-screen music wait; if INKEY$ is non-empty, RUN restarts the entire program, which is the intended “press any key to start” mechanism but is an unconventional approach.

Image Gallery

Source Code

    2 LET xx=5:LET ss=0:LET pp=42:INK 0:PAPER 5:BORDER 5:BRIGHT 0:OVER 0:INVERSE 0:FLASH 0:CLS :BEEP .5,30
    3 DIM g(7):LET mm=7:LET vv=0:LET g(1)=28:LET g(2)=60:LET g(3)=92:LET g(4)=128:LET g(5)=164:LET g(6)=196:LET g(7)=228
    4 LET ab=28:LET ss=0:DIM c$(4,14):DIM c(3):LET c(1)=0:LET c(2)=0:LET c(3)=0:GO TO 6050
   10 GO TO 4000
   11 OVER 0:INK 7:PAPER 0:BORDER 0:INVERSE 0:FLASH 0:BRIGHT 1:CLS :GO TO 6080
   28 IF ss<0 THEN LET ss=0
   29 BEEP .5,30
   30 DIM z(30):DIM m(30):DIM q(30):DIM i(11,2):DIM a(11):DIM d(11):DIM e(11):DIM f(11)
   34 LET ad=0:LET yy=0:LET t=0:LET rr=0:LET kk=9:LET ll=12:LET nn=0:LET oo=125:LET qq=14
   35 LET aj=0:LET jj=6:LET ii=0:LET aa=1:LET cc=1:LET dd=0:LET ee=1:LET ff=1:LET gg=1:LET hh=1:LET bb=0:LET s=0:LET b=0:LET p=0
   37 PRINT AT 0,10;"                "; OVER 1; INK 9; AT 0,10;"SCORE ";ss
   40 RANDOMIZE 
   50 PLOT 127,0
   60 LET x=16:LET y=10
   61 LET c=20:LET n=20
   62 PRINT OVER 1; AT y,x;"X"
   65 IF yy >=ab THEN LET ii=1
   66 IF b>jj THEN GO TO 2100
   67 LET b=b+1
   68 IF b>10 THEN LET b=b-1
   69 IF b>10 THEN RETURN 
   70 LET yy=yy+1
   71 LET f(b)= INT (RND*10)-4
   73 LET d(b)=g((INT (RND*mm))+1)-175*(f(b)/5)
   75 LET e(b)=175
   82 LET i(b,1)=d(b):LET i(b,2)=e(b)
   90 IF d(b)<0 OR d(b)>255 THEN GO TO 71
   95 IF b>1 THEN RETURN 
  100 OVER 0
  101 IF b=0 OR mm=0 THEN GO TO 2200
  102 IF RND>ii THEN GO SUB 65
  110 FOR a=1 TO b
  115 IF e(a)<5 THEN GO TO 7200
  120 PLOT d(a),e(a):DRAW f(a),-4
  130 LET e(a)=e(a)-5:LET d(a)=d(a)+f(a)
  131 IF ad=1 THEN GO TO 3060
  132 LET k=1:IF POINT (d(a),e(a)-1)=1 AND ATTR ((175-e(a))/8,d(a)/8)=pp THEN GO TO 8000
  135 IF IN 65278+ IN 64510+ IN 57342+ IN 49150<124 THEN GO SUB 1000
  140 NEXT a
  150 IF RND>.9 THEN GO TO 3000
  990 IF IN 65278+ IN 64510+ IN 57342+ IN 49150<124 THEN GO SUB 1000
  992 IF bb=1 THEN RETURN 
  995 GO TO 100
 1000 LET c=x:LET n=y
 1010 LET x=x+(IN 64510=27 AND x<30)-(IN 64510=30 AND x>0)
 1020 LET y=y-(IN 57342<31 AND y>0)+(IN 49150<31 AND y<19)
 2000 IF x<0 THEN LET x=0
 2020 IF y<0 THEN LET y=0
 2030 IF y>20 THEN LET y=20
 2040 IF x>31 THEN LET x=31
 2045 IF c=x AND n=y THEN GO TO 2050
 2046 OVER 1:PRINT AT y,x;"X"
 2049 OVER 1:INVERSE 0:PRINT AT n,c;"X":INVERSE 0:OVER 0
 2050 IF IN 65278<31 THEN GO SUB 6000
 2060 RETURN 
 2100 LET ii=.8
 2190 GO TO 67
 2200 IF mm <=0 THEN GO TO 2210
 2202 IF yy <=ab THEN GO TO 65
 2209 GO TO 2500
 2210 FLASH 1:PAPER 2:PRINT \{20}\{1}\{20}\{0}"\{20}\{1}     GAME     OVER   @#*!      ":PAUSE 400:FLASH 0
 2270 FOR a=40 TO 0 STEP -1:BEEP a*.002,a:NEXT a:FOR a=30 TO 69:BEEP .0015,a:NEXT a:PAUSE 100
 2280 PAPER 1:BORDER 1:INK 7:BRIGHT 1:OVER 0:INVERSE 0:CLS 
 2282 LET w=0
 2290 PRINT AT 0,11;"SCOREBOARD"
 2292 PRINT AT 3,0;"      SCORE          NAME"''"  1  "; TAB 14- LEN STR$ c(1);c(1)," ";c$(1)
 2293 PRINT AT 7,0;"  2  "; TAB 14- LEN STR$ c(2);c(2)," ";c\{20}\{1}\{20}\{0}$(2)''"  3  "; TAB 14- LEN STR$ c(3);c(3)," ";c$(3)
 2294 PLOT 7,154:DRAW 240,0:DRAW 0,-64:DRAW -240,0:DRAW 0,64:PLOT 7,142:DRAW 240,0
 2295 PLOT 32,154:DRAW 0,-64:PLOT 127,154:DRAW 0,-64
 2300 PRINT AT 12,6;"YOUR SCORE.. "; AT 12,18;"........"; AT 12,(26- LEN STR$ ss);ss
 2305 IF w>0 THEN GO TO 2370
 2310 FOR a=1 TO 3:IF ss>c(a) THEN GO TO 2316
 2315 NEXT a:GO TO 2370
 2316 PRINT AT 16,2;"You have the Number ";a;" score."
 2317 INPUT "Please ENTER your name (14 letter max)....";c\{20}\{1}\{20}\{0}$(4)
 2320 FOR w=2 TO a STEP -1
 2325 LET c$(w+1)=c$(w)
 2330 LET c(w+1)=c(w)
 2332 NEXT w
 2335 LET w=2
 2340 LET c(a)=ss
 2350 LET c$(a)=c$(4)
 2355 PRINT AT 16,2;"                              "
 2360 GO TO 2285
 2370 PRINT AT 18,6;"C=Copy of Scoreboard"
 2380 PRINT AT 16,4;"Please make a choice...."
 2385 PRINT ''"       E=End the Program        "
 2390 PRINT "      S=Start another game       "
 2400 LET a$= INKEY$:IF a$="" THEN GO TO 2400
 2409 IF a$="e" OR a$="E" THEN CLS 
 2410 IF a$="e" OR a$="E" THEN STOP 
 2420 IF a$="s" OR a$="S" THEN GO TO 2422
 2421 GO TO 2430
 2422 LET xx=5:LET pp=42:INK 0:PAPER 5:BORDER 5:BRIGHT 0:OVER 0:INVERSE 0:FLASH 0:CLS :BEEP .5,30
 2423 DIM g(7):LET mm=7:LET vv=0:LET g(1)=28:LET g(2)=60:LET g(3)=92:LET g(4)=128:LET g(5)=164:LET g(6)=196:LET g(7)=228
 2424 LET ab=28:GO TO 6050
 2430 IF a$="c" OR a$="C" THEN GO TO 2438
 2431 GO TO 2370
 2438 COPY :BEEP .5,30:PRINT AT 18,6;"                     ":GO TO 2380
 2500 BORDER 0:PAPER 0:BRIGHT 1:INK 4:INVERSE 0:FLASH 0:OVER 0:CLS 
 2501 LET y=0:LET n=0
 2502 PRINT AT 17,2;"CITY POINTS.................."; AT 19,2;"MISSILE POINTS..............."
 2510 PRINT AT 0,10;"BONUS POINTS"
 2511 FOR a=1 TO mm:IF g(a)=128 THEN GO TO 2513
 2512 NEXT a:GO TO 2520
 2513 FOR w=a TO mm-1:LET g(w)=g(w+1):NEXT w:LET mm=mm-1
 2520 PRINT AT 3,5;"CITIES REMAINING"
 2525 PRINT AT 5,7;"NONE"
 2530 FOR a=1 TO mm
 2540 PRINT AT 5,4*a-1;"\a\b\c     "
 2542 LET y=y+2000:PRINT AT 17,30- LEN STR$ y;y:BEEP .025,30
 2550 NEXT a
 2560 PRINT AT 8,5;"MISSILES REMAINING"
 2562 IF t >=30 THEN PRINT AT 10,7;"NONE"
 2565 LET c=0:LET w=100
 2570 FOR a=1 TO (30-t)
 2580 PLOT a*15+10-c,w:DRAW -1,-1:DRAW -1,-2:DRAW 0,-5:DRAW -2,-2:DRAW 2,-4:DRAW 0,-5:DRAW -2,-2:DRAW 0,-3:DRAW 6,-2:DRAW 0,1
 2586 LET n=n+500:PRINT AT 19,30- LEN STR$ n;n:BEEP .025,35
 2588 IF a=15 THEN LET w=70
 2589 IF a=15 THEN LET c=225
 2590 NEXT a
 2600 LET ss=ss+n+y:PRINT AT 21,2;"NEW SCORE...................."; AT 21,30- LEN STR$ ss;ss
 2605 IF vv=2 THEN GO TO 2700
 2610 IF ss >=100000 THEN GO TO 2640
 2620 IF ss >=50000 THEN GO TO 2640
 2630 GO TO 2700
 2640 IF vv=1 AND ss<100000 THEN GO TO 2700
 2642 LET vv=vv+1:IF mm >=6 THEN GO TO 2700
 2645 LET mm=mm+1
 2650 LET g(mm)=ww
 2660 PRINT FLASH 1; INK 6; AT 1,9;"BONUS CITY \a\b\c"
 2700 FOR a=1 TO 50:NEXT a:INPUT "Press ENTER to continue....";a$
 2704 IF xx=6 THEN GO TO 2717
 2705 IF xx=4 THEN GO TO 2715
 2710 LET XX=4:LET PP=34:INK 0:PAPER 4:BORDER 4:OVER 0:INVERSE 0:BRIGHT 0:FLASH 0:CLS 
 2711 GO TO 2720
 2715 LET XX=6:LET PP=50:INK 0:PAPER 6:BORDER 6:OVER 0:INVERSE 0:BRIGHT 0:FLASH 0:CLS 
 2716 GO TO 2720
 2717 LET xx=5:LET pp=42:INK 0:PAPER 5:BORDER 5:OVER 0:INVERSE 0:BRIGHT 0:FLASH 0:CLS 
 2720 FOR a=1 TO mm:LET tt=(g(a)+3)/8-2
 2730 LET jj=jj+2:LET ab=ab+1:PRINT AT 21,tt;"\a\b\c":NEXT a
 2735 LET mm=mm+1:LET g(mm)=128
 2740 PLOT 0,0:DRAW 255,0
 2750 GO SUB 6213
 2760 GO TO 20
 3000 IF ad=1 THEN GO TO 160
 3001 LET ad=1:INK 8
 3005 LET ac=0
 3006 GO TO 132
 3010 LET ac=ac+1
 3011 PRINT AT 11,ac;"\q\r\s"
 3020 IF ATTR (11,ac+2)=pp THEN GO TO 5000
 3025 IF RND>.3 THEN GO TO 3050
 3030 IF ac>27 THEN GO TO 3050
 3035 LET ae=16+ac*8:LET af=(ac+2)/4
 3040 IF ae>g(af)-6 AND ae<g(af)+4 THEN GO TO 3100
 3050 PRINT AT 11,ac;" \n\o"
 3055 GO TO 132
 3060 IF ac=29 THEN LET ad=0
 3070 IF ad=1 THEN GO TO 3010
 3075 PRINT AT 11,0;"                                "; AT y,x;"X"
 3080 GO TO 132
 3100 IF yy >=ab THEN LET ii=1
 3105 LET b=b+1
 3110 IF b>10 THEN LET b=b-1
 3120 IF b>10 THEN GO TO 3050
 3130 LET yy=yy+1
 3140 LET f(b)=1
 3150 LET d(b)=g(af)-15.4
 3160 LET e(b)=75:LET i(b,1)=d(b):LET i(b,2)=80
 3165 PLOT d(b)-1,80:DRAW 1,-5
 3170 GO TO 3050
 4000 FOR a=0 TO 151
 4010 READ b
 4020 POKE USR "\a"+a,b
 4030 NEXT a
 4035 GO TO 11
 4040 DATA 6,6,22,30,95,95,127,255,28,28,92,92,125,125,253,255
 4050 DATA 0,0,64,96,104,232,250,255,7,7,15,15,15,15,7,7
 4060 DATA 224,224,240,240,240,240,224,224,0,0,0,0,0,0,1,3
 4070 DATA 0,0,0,0,60,255,255,255,0,0,0,0,0,0,128,192
 4080 DATA 3,1,0,0,0,0,0,0,255,255,255,60,0,0,0,0
 4090 DATA 192,128,0,0,0,0,0,0,60,126,255,255,255,255,126,60
 4100 DATA 0,0,24,60,60,24,0,0,192,244,127,63,127,195,7,14
 4110 DATA 192,224,240,252,255,240,192,0,60,126,90,126,60,219,60,195
 4120 DATA 12,14,7,3,7,12,0,0,12,14,255,255,255,63,124,224
 4130 DATA 0,0,0,192,240,0,0,0
 5000 LET ai=83:LET ah=ac*8+20
 5001 PRINT AT 11,0;"                                "; AT y,x;"X"
 5002 LET aj=1
 5003 LET ss=ss+3000:PRINT AT 0,10;"                "; OVER 1; INK 9; AT 0,10;"SCORE ";ss
 5004 GO TO 5010
 5005 LET ah=d(a):LET ai=e(a)
 5010 IF ai-10>174 OR ah-10<0 OR ah+10>255 THEN GO TO 5013
 5011 GO TO 5014
 5013 BEEP .025,20:GO TO 5190
 5014 LET ak=0
 5015 LET ak=ak+1
 5016 FOR w=1 TO 5 STEP 2
 5020 PLOT ah-w,ai-w:DRAW 1,0
 5025 PLOT ah-w*2,ai:DRAW 1,0
 5030 PLOT ah+w,ai-w:DRAW 1,0
 5035 PLOT ah+w*2,ai:DRAW 1,0
 5040 PLOT ah+w,ai+w:DRAW 1,0
 5045 PLOT ah,ai+w*2:DRAW 1,0
 5050 PLOT ah-w,ai+w:DRAW 1,0
 5055 PLOT ah,ai-w*2:DRAW 1,0
 5180 NEXT w
 5182 IF ak=1 THEN INVERSE 1
 5183 IF ak=1 THEN BEEP .025,20
 5184 IF ak=1 THEN GO TO 5015
 5185 INVERSE 0
 5190 IF aj=1 THEN LET ad=0
 5192 IF aj <>1 THEN GO TO 8002
 5195 LET aj=0
 5200 GO TO 100
 6000 IF t >=30 THEN GO TO 7069
 6001 OVER 1
 6002 LET o=x*8-112-kk:LET r=170-y*8-ll
 6003 PLOT oo,qq:DRAW o,r
 6004 PLOT oo,qq:DRAW o,r
 6008 OVER 0
 6010 INVERSE 1:PLOT oo-1,qq:DRAW 2,0:PLOT oo,qq:DRAW 0,5
 6015 IF nn=0 THEN LET ll=ll-4
 6018 IF nn=0 THEN LET kk=kk+21-ll*1.5
 6020 IF nn=0  THEN LET nn=24-ll*1.5
 6025 LET kk=kk-6
 6030 LET nn=nn-6
 6040 LET oo=kk+116:LET qq=ll+2
 6045 IF t<19 AND ll<0 AND kk=21 THEN GO SUB 6214
 6049 INVERSE 0:GO TO 7000
 6050 INK 0:PAPER 5:BORDER 5:BRIGHT 0:OVER 0:INVERSE 0:CLS :PRINT AT 10,4;"Do you want instructions?          <y> or <n>"
 6051 PAUSE 0:IF INKEY$="y" OR INKEY$="Y" THEN GO TO 6054
 6052 IF INKEY$="" THEN GO TO 6052
 6053 GO TO 6198
 6054 CLS :PRINT AT 0,9;"YOUR BRIEFING"
 6055 PRINT '"You are in charge of a surface- to-air Guided Missile Base at    the outbreak of Nuclear War..."
 6056 PRINT '"Your job is to defend 6 Cities  and your own missile Launching  site from the nuclear missles.."
 6057 PRINT '"You have THIRTY Surface to air  missiles, up to 10 of these willbe at the Launching site at any time, if the site is hit, all    missiles present, will be        destroyed."
 6058 PRINT '" Be Careful, you are the last   line of defence, the longer you can hold off the attack the morepeople can be evacuated."
 6059 PRINT #1; AT 1,2;"PRESS ANY KEY TO CONTINUE...":PAUSE 0
 6060 CLS :PRINT AT 0,0;"TECHNICAL BRIEF"
 6061 PRINT '"THE SURFACE TO AIR MISSILES ARE  GUIDED BY MOVING THE ""X"" TO THE POINT THAT THE MISSILE IS TO     EXPLODE... TO DESTROY A NUCLEAR MISSILE OR PLANE, YOU CAN MOVE THE ""X"" IN 8 DIRECTIONS.":FLASH 1:PRINT INK 0; PAPER 6;"REMEMBER: Q=LEFT,E= RIGHT, Y-P= UP, H-NL =DOWN, Z-V =FIRE  ":FLASH 0
 6073 PRINT #1; AT 1,2;"PRESS ANY KEY TO CONTINUE...":PAUSE 0
 6074 PAPER 5:CLS :PRINT AT 0,12;"SCORING"
 6075 PRINT '"For each missile shot down you  get 1000 points.  For each city and each Surface-to-Air Missile remaining intact at the end of  a barage you receive bonus       points, after 50,000 & 100,000  you receive a bonus city..."
 6076 PRINT '"You can shoot missiles down     while moving your sight ""X"" in  any of 8 directions. Experience will show you that it is best to  fire your missiles into the   path of  your target."
 6077 PRINT ''"Good Luck. You'll need it."
 6078 PRINT #1, AT 1,2;"PRESS ANY KEY TO CONTINUE...":PAUSE 0:GO TO 6198
 6080 PRINT AT 3,14;"\..\::\.."; AT 4,12;"\..\::\::\::\::\::\.."; AT 5,11;"\ :\::\::\::\::\::\::\::\: "
 6081 PRINT AT 6,11;"\::\::\::\::\::\::\::\::\::"; AT 7,10;"\ :\::\::\::\::\::\::\::\::\::\: "; AT 8,11;"\::\::\::\::\::\::\::\::\::"
 6082 PRINT AT 9,11;"\ :\::\::\::\::\::\::\::\: "; AT 10,12;"\''\::\::\::\::\::\''"; AT 11,14;"\::\::\::"
 6083 PRINT AT 12,13;"\ .\::\::\::\. "; AT 13,11;"\ .\'.\'.\::\::\::\.'\.'\. "; AT 14,12;"\' \' \::\::\::\ '\ '"
 6084 PRINT AT 15,13;"\ .\::\::\::\. "; AT 16,12;"\ .\.:\::\::\::\:.\. "; AT 17,8;"\ .\..\.:\::\::\::\::\::\::\::\::\::\..\.."
 6085 PRINT AT 18,7;"\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''"
 6086 PLOT 0,0:DRAW 255,0:DRAW 0,175:DRAW -255,0:DRAW 0,-175:
 6087 PLOT 4,4:DRAW 247,0:DRAW 0,167:DRAW -247,0:DRAW 0,-167
 6088 PLOT 8,8:DRAW 239,0:DRAW 0,159:DRAW -239,0:DRAW 0,-159
 6089 PRINT FLASH 1; INK 2; AT 19,9;"STOP THE TAPE"
 6090 PRINT INK 4; INVERSE 1; AT 6,12;"NUCLEAR"; AT 7,12;"ATTACK."
 6091 FOR a=44 TO 208 STEP 159
 6092 PLOT a,150:DRAW -5,-9, PI/2:DRAW 0,-40:DRAW -10,-10:DRAW 5,-5:DRAW 5,-10:DRAW 0,-20:DRAW -10,-10:DRAW 0,-10:DRAW 10,-5
 6093 PLOT a,150:DRAW 5,-9, PI/2:DRAW 0,-40:DRAW 10,-10:DRAW -5,-5:DRAW -5,-10:DRAW 0,-20:DRAW 10,-10:DRAW 0,-10:DRAW -10,-5:DRAW 0,2:DRAW -10,0:DRAW 0,-2
 6094 PLOT a,101:DRAW 0,-25:PLOT a,56:DRAW 0,-25
 6095 PRINT FLASH 1; INK 3; AT 18, INT (a/8);"\.'"; AT 19, INT (a/8);"\'."
 6096 INK 5:PLOT a-2,137:DRAW 0,-3:DRAW 1,0:DRAW 1,1:DRAW 0,2:DRAW -1,1:DRAW -1,0:PLOT a-2,128:DRAW 0,3:DRAW 1,1:DRAW 1,-1:DRAW 0,-3:DRAW 0,2:DRAW -1,0
 6097 PLOT a-2,122:DRAW 0,4:DRAW 2,-4:DRAW 0,4:PLOT a,120:DRAW -1,0:DRAW -1,-1:DRAW 0,-2:DRAW 1,-1:DRAW 1,0:DRAW 0,2
 6098 PLOT a,114:DRAW -2,0:DRAW 0,-2:DRAW 2,0:DRAW -2,0:DRAW 0,-2:DRAW 2,0:PLOT a-2,104:DRAW 0,4:DRAW 1,0:DRAW 1,-1:DRAW -1,-1:DRAW 1,-1:DRAW 0,-1
 6099 INK 7:PLOT a-4,144:DRAW 8,0:PLOT a-4,142:DRAW 8,0
 6100 PRINT AT 13, INT (a/8);"\p"
 6101 PLOT a-4,61:DRAW 1,0:DRAW 1,-1:DRAW 1,0:DRAW 1,1:DRAW 1,0:DRAW 1,-1:DRAW 1,0:DRAW 1,1:DRAW 1,0
 6102 PLOT a-4,59:DRAW 1,0:DRAW 1,-1:DRAW 1,0:DRAW 1,1:DRAW 1,0:DRAW 1,-1:DRAW 1,0:DRAW 1,1:DRAW 1,0
 6105 NEXT a
 6108 PRINT #1; AT 1,3;"PRESS ANY KEY TO BEGIN...."
 6110 FOR w=50 TO 35 STEP -1:IF INKEY$="" THEN GO TO 6130
 6120 FOR w=1 TO 10:RUN 
 6130 BEEP .015,w:BEEP .025, RND*100-35:BEEP .025, RND*50-25:BEEP .025, RND*20-10:NEXT w
 6140 FOR w=1 TO 10:NEXT w:PAUSE 0:RUN 
 6198 LET ak=1:CLS :PRINT AT 10,8;"""NUCLEAR ATTACK"""
 6199 LET SS=-1:PRINT TAB 5;"Press any key to Start":FOR w=-1 TO 12:BEEP .025, RND*100-40:BEEP .025,w*5:NEXT w:PAUSE 0:CLS 
 6200 FOR z=2 TO 12 STEP 4
 6210 PRINT AT 21,z;"\a\b\c"
 6211 PRINT AT 21,z+17;"\a\b\c"
 6212 NEXT z
 6213 LET ak=1:GO TO 6320
 6214 INVERSE 0:LET wwww=0
 6215 FOR a=0 TO 3
 6216 FOR z=a+wwww TO wwww
 6217 OVER 1:PLOT 115+(z*6),2+(a*4):DRAW 2,0:PLOT 116+(z*6),2+(a*4):DRAW 0,5
 6218 NEXT z
 6219 LET wwww=wwww-.5
 6220 NEXT a:OVER 0
 6221 IF ak=1 THEN GO TO 6229
 6222 IF t >=19 THEN GO TO 6225
 6223 POKE 23280,63:POKE 23281,63:POKE 23282,63
 6224 GO TO 6229
 6225 POKE 23276,63:POKE 23277,63:POKE 23278,63
 6229 LET ak=0
 6230 PLOT 0,0:DRAW 255,0
 6240 LET kk=9:LET ll=12:LET nn=0:LET oo=125:LET qq=14
 6290 IF ss=-1 THEN GO TO 20
 6300 RETURN 
 6310 GO TO 7000
 6330 RESTORE 6430
 6340 PLOT 0,0:DRAW 255,0
 6350 FOR a=20687 TO 22223 STEP 256
 6360 POKE a,60
 6370 NEXT a
 6380 POKE 22479,126
 6390 FOR a=20719 TO 22299 STEP 256
 6400 READ b
 6410 POKE a,b
 6420 NEXT a
 6430 DATA 255,231,231,231,231,195,129
 6440 FOR a=20716 TO 22296 STEP 256
 6450 READ b,c,d
 6460 POKE a,b:POKE a+1,c:POKE a+2,d:POKE a+4,b:POKE a+5,c:POKE a+6,d
 6470 NEXT a
 6480 DATA 132,33,8,115,156,231,132,33,8
 6490 DATA 0,0,0,132,33,8,114,156,231,132,33,8
 6500 POKE 23247,8*xx+7
 6510 POKE 23279,8*xx+7
 6515 FOR a=0 TO 6
 6520 POKE 23276+a,56
 6530 IF a=2 THEN LET a=3
 6540 NEXT a
 6900 GO TO 6214
 7000 IF t >=30 THEN GO TO 7069
 7001 LET s=s+1:LET t=t+1:LET m(s)=y:LET q(s)=x
 7005 LET bb=1
 7010 INK 2:OVER 1
 7022 FOR w=aa TO s
 7025 PRINT AT m(w),q(w);"\m"
 7030 NEXT w
 7031 LET aa=aa+(w-aa)
 7032 BEEP .01,35
 7035 FOR w=cc TO s
 7038 PRINT AT m(w),q(w);"\m"
 7040 PRINT AT m(w),q(w);"\l"
 7045 NEXT w
 7050 BEEP .01,35
 7058 LET cc=cc+(w-cc)
 7060 FOR w=ee TO s
 7062 PRINT AT m(w),q(w);"\l"
 7065 PRINT AT m(w),q(w)-1;" \::\:: "; AT m(w)-1,q(w)-1;"\f\g\h"; AT m(w)+1,q(w)-1;"\i\j\k"
 7066 NEXT w
 7067 BEEP .01,35
 7068 LET ee=ee+(w-ee)
 7069 INK 8:OVER 0:GO SUB 100
 7070 INK 2:OVER 1
 7071 FOR w=ff TO s
 7072 PRINT AT m(w),q(w);"\l"
 7075 PRINT AT m(w),q(w)-1;" \::\:: "; AT m(w)-1,q(w)-1;"\f\g\h"; AT m(w)+1,q(w)-1;"\i\j\k"
 7080 NEXT w
 7081 LET ff=ff+(w-ff)
 7082 IF s=30 THEN GO TO 7084
 7083 INK 8:OVER 0:GO SUB 100
 7084 INK 2:OVER 1
 7085 FOR w=gg TO s
 7088 PRINT AT m(w),q(w);"\l"
 7090 PRINT AT m(w),q(w);"\m"
 7095 NEXT w
 7096 LET gg=gg+(w-gg)
 7097 IF s=30 THEN GO TO 7099
 7098 INK 8:OVER 0:GO SUB 100
 7099 INK 0:OVER 0
 7100 FOR w=hh TO s
 7105 PRINT AT m(w),q(w)-1;"   "; AT m(w)-1,q(w)-1;"   "
 7106 IF m(w) >=20 THEN GO TO 7108
 7107 PRINT AT m(w)+1,q(w)-1;"   ":GO TO 7110
 7109 PRINT OVER 1; AT m(w)+1,q(w)-1;"   "
 7110 NEXT w
 7120 LET hh=hh+(w-hh)
 7130 PRINT INK 0; OVER 0; AT y,x;"X"
 7135 PRINT AT 0,10;"                "; OVER 1; INK 9; AT 0,10;"SCORE ";SS
 7140 LET BB=0
 7150 INK 0:INVERSE 0:OVER 0:GO TO 100
 7200 LET dd=1:OVER 0
 7210 FOR w=1 TO mm
 7220 IF d(a)<g(w)+8 AND d(a)>g(w)-8 THEN GO TO 7231
 7230 NEXT w:GO TO 7996
 7235 LET zz=w
 7240 LET tt=(d(a)+3)/8-2
 7250 PRINT AT 19,tt+1;" "; AT 20,tt;"   "; AT 21,tt;"   "   
 7260 LET uu=g(w)
 7268 PLOT 0,0:DRAW 255,0
 7270 PLOT uu-4,1:DRAW 7,0:PLOT uu-2,2:DRAW 3,0
 7275 PLOT uu-5,2:DRAW 9,0:PLOT uu-7,1:DRAW 13,0:PLOT uu-7,1:DRAW 13,0:PLOT uu-2,3:DRAW 3,0
 7280 PLOT uu-4,3:DRAW 7,0:PLOT uu-6,2:DRAW 11,0:PLOT uu-2,4:DRAW 3,0:PLOT uu-9,1:DRAW 17,0:PLOT uu-1,5:PLOT uu,5
 7285 PLOT uu-5,4:DRAW 9,0:PLOT uu-6,3:DRAW 11,0:PLOT uu-4,5:DRAW 7,0:PLOT uu-8,2:DRAW 15,0:PLOT uu-3,6:DRAW 5,0:PLOT uu-11,1:DRAW 21,0:PLOT uu-1,7:PLOT uu,7
 7286 OVER 1:INK 8:PAPER 7:BRIGHT 1:PRINT AT 21,tt-1;"     "
 7287 PRINT AT 20,tt-2;"       "; AT 19,tt-1;"     "; AT 18,tt;"   "; AT 17,tt+1;" "
 7288 BRIGHT 0:OVER 1:INK 8:PAPER xx:PRINT AT 21,tt-1;"    "
 7290 PRINT AT 20,tt-2;"       "; AT 19,tt-1;"     "; AT 18,tt;"   "; AT 17,tt+1;" "
 7292 OVER 0
 7294 PLOT uu-7,5:DRAW 13,0:PLOT uu-7,6:DRAW 13,0:PLOT uu-8,4:DRAW 15,0:PLOT uu-6,7:DRAW 11,0:PLOT uu-8,3:DRAW 15,0
 7295 PLOT uu-5,8:DRAW 9,0:PLOT uu-9,2:DRAW 17,0:PLOT uu-3,9:DRAW 5,0:PLOT uu-13,1:DRAW 25,0:PLOT uu-1,10:PLOT uu,10
 7300 PLOT uu-8,7:DRAW 1,0:PLOT uu+6,7:DRAW 1,0:PLOT uu-9,6:DRAW 1,0:PLOT uu+7,6:DRAW 1,0:PLOT uu-8,8:DRAW 2,0:PLOT uu+5,8:DRAW 2,0
 7305 PLOT uu-9,5:DRAW 1,0:PLOT uu+7,5:DRAW 1,0:PLOT uu-7,9:DRAW 13,0:PLOT uu-7,10:DRAW 13,0:PLOT uu-6,11:DRAW 11,0:PLOT uu-11,2:DRAW 1,0
 7310 PLOT uu+8,2:DRAW 1,0:PLOT uu-4,12:DRAW 7,0:PLOT uu-15,1:DRAW 1,0:PLOT uu+13,1:DRAW 1,0:PLOT uu-2,13:DRAW 3,0
 7315 PLOT uu-10,8:DRAW 1,0:PLOT uu+8,8:DRAW 1,0:PLOT uu-9,9:DRAW 1,0:PLOT uu+7,9:DRAW 1,0:PLOT uu-10,7:DRAW 1,0:PLOT uu+8,7:DRAW 1,0:PLOT uu-9,10:DRAW 1,0:PLOT uu+7,10:DRAW 1,0:
 7320 PLOT uu-8,11:DRAW 1,0:PLOT uu+6,11:DRAW 1,0:PLOT uu-8,12:DRAW 15,0:PLOT uu-7,13:DRAW 13,0
 7325 PLOT uu-10,3:DRAW 1,0:PLOT uu+7,3:DRAW 1,0:PLOT uu-5,14:DRAW 9,0:PLOT uu-14,2:DRAW 2,0:PLOT uu+10,2:DRAW 2,0
 7330 PLOT uu-3,15:DRAW 5,0:PLOT uu-1,16:PLOT uu,16:PLOT uu-17,1:DRAW 1,0:PLOT uu+14,1:DRAW 1,0
 7335 INVERSE 1:PLOT uu-10,8:DRAW 0,-1:DRAW 1,0:DRAW 0,-2:DRAW 1,0:DRAW 0,-1:DRAW 2,0:PLOT uu+9,8:DRAW 0,-1:DRAW -1,0:DRAW 0,-2:DRAW -1,0:DRAW 0,-1:DRAW -2,0
 7340 INVERSE 0:PLOT uu-10,10:DRAW 0,1:DRAW 1,0:DRAW 0,2:DRAW 1,0:DRAW 0,1:DRAW 2,0:PLOT uu+9,10:DRAW 0,1:DRAW -1,0:DRAW 0,2:DRAW -1,0:DRAW 0,1:DRAW -2,0
 7345 PLOT uu-8,15:DRAW 15,0:PLOT uu-7,16:DRAW 13,0:PLOT uu=5,17:DRAW 9,0:PLOT uu-3,18:DRAW 5,0:PLOT uu-1,19:PLOT uu,19
 7350 INVERSE 1:PLOT uu-10,11:DRAW 0,-1:DRAW 1,0:DRAW 0,-2:DRAW 1,0:DRAW 0,-1:DRAW 2,0:PLOT uu+9,11:DRAW 0,-1:DRAW -1,0:DRAW 0,-2:DRAW -1,0:DRAW 0,-1:DRAW -2,0
 7352 PLOT uu-8,6:DRAW 2,0:PLOT uu+4,6:DRAW 3,0
 7355 INVERSE 0:PLOT uu-10,13:DRAW 0,1:DRAW 1,0:DRAW 0,2:DRAW 1,0:DRAW 0,1:DRAW 2,0:PLOT uu+9,13:DRAW 0,1:DRAW -1,0:DRAW 0,2:DRAW -1,0:DRAW 0,1:DRAW -2,0
 7360 PLOT uu-8,18:DRAW 15,0:PLOT uu-7,19:DRAW 13,0
 7365 PLOT uu-5,20:DRAW 9,0:PLOT uu-3,21:DRAW 5,0:PLOT uu-1,22:PLOT uu,22:PLOT uu-6,4:PLOT uu+5,4
 7370 INVERSE 1:PLOT uu-10,14:DRAW 0,-1:DRAW 1,0:DRAW 0,-2:DRAW 1,0:DRAW 0,-1:DRAW 2,0:PLOT uu+9,14:DRAW 0,-1:DRAW -1,0:DRAW 0,-2:DRAW -1,0:DRAW 0,-1:DRAW -2,0
 7375 INVERSE 0:PLOT uu-10,16:DRAW 0,1:DRAW 1,0:DRAW 0,2:DRAW 1,0:DRAW 0,1:DRAW 2,0:PLOT uu+9,16:DRAW 0,1:DRAW -1,0:DRAW 0,2:DRAW -1,0:DRAW 0,1:DRAW -2,0
 7380 PLOT uu-8,21:DRAW 15,0:PLOT uu-7,22:DRAW 13,0
 7385 PLOT uu-5,23:DRAW 9,0:PLOT uu-3,24:DRAW 5,0:PLOT uu-1,25:PLOT uu,25:PLOT uu-6,6:DRAW 0,-1:PLOT uu+5,6:DRAW -1,0
 7390 INVERSE 1:PLOT uu-10,17:DRAW 0,-1:DRAW 1,0:DRAW 0,-2:DRAW 1,0:DRAW 0,-1:DRAW 2,0:PLOT uu+9,17:DRAW 0,-1:DRAW -1,0:DRAW 0,-2:DRAW -1,0:DRAW 0,-1:DRAW -2,0
 7392 PLOT uu-8,12:DRAW 3,0:PLOT uu+4,12:DRAW 3,0
 7395 INVERSE 0:PLOT uu-10,19:DRAW 0,1:DRAW 0,2:DRAW 1,0:DRAW 0,1:DRAW 2,0:PLOT uu+9,19:DRAW 0,1:DRAW -1,0:DRAW 0,2:DRAW -1,0:DRAW 0,1:DRAW -2,0
 7400 PLOT uu-8,24:DRAW 15,0:PLOT uu-7,25:DRAW 13,0
 7402 PLOT uu-8,10:DRAW 3,0:PLOT uu+4,10:DRAW 4,0
 7405 PLOT uu-5,26:DRAW 9,0:PLOT uu-3,27:DRAW 5,0:PLOT uu-1,28:PLOT uu,28:INVERSE 1:PLOT uu-7,5:DRAW 1,0:DRAW 0,1:PLOT uu+6,5:DRAW -1,0:DRAW 0,1
 7410 PLOT uu-5,7:DRAW 0,-2:PLOT uu+4,7:DRAW 0,-2
 7415 PLOT uu-10,20:DRAW 0,-1:DRAW 1,0:DRAW 0,-2:DRAW 1,0:DRAW 0,-1:DRAW 2,0:PLOT uu+9,20:DRAW 0,-1:DRAW -1,0:DRAW 0,-2:DRAW -1,0:DRAW 0,-1:DRAW -2,0
 7420 INVERSE 0:PLOT uu-10,22:DRAW 0,1:DRAW 1,0:DRAW 0,2:DRAW 1,0:DRAW 0,1:DRAW 2,0:PLOT uu+9,22:DRAW 0,1:DRAW -1,0:DRAW 0,2:DRAW -1,0:DRAW 0,1:DRAW -2,0
 7425 PLOT uu-8,27:DRAW 15,0:PLOT uu-7,28:DRAW 13,0
 7430 PLOT uu-5,29:DRAW 9,0:PLOT uu-3,30:DRAW 5,0:PLOT uu-1,28:PLOT uu,31:INVERSE 1:PLOT uu-8,15:DRAW 4,0:PLOT uu+3,15:DRAW 4,0:PLOT uu-7,14:DRAW 3,0:PLOT uu+3,14:DRAW 3,0
 7435 PLOT uu+8,10:PLOT uu-4,7:DRAW 0,1:DRAW -3,0:DRAW -1,1:DRAW 1,1:DRAW 1,-1:DRAW 1,1:DRAW 1,-1:PLOT uu+3,7:DRAW 0,1:DRAW 3,0:DRAW 1,1:DRAW -1,1:DRAW -1,-1:DRAW -1,1:DRAW -1,-1:PLOT uu-6,11:DRAW 2,2:PLOT uu+5,11:DRAW -2,2
 7440 PLOT uu-4,11:PLOT uu+3,11
 7450 INVERSE 1:PLOT uu-3,13:DRAW 0,1:DRAW 1,0:DRAW 1,-1:DRAW -2,-2:PLOT uu,13:DRAW 1,1:DRAW 1,0:DRAW -5,-5
 7460 PLOT uu-4,6:DRAW 6,6:PLOT uu-4,4:DRAW 6,6:PLOT uu-2,4:DRAW 4,4:PLOT uu,4:DRAW 2,2
 7470 PLOT uu+2,4:DRAW 1,1:PLOT uu+4,4:DRAW 1,0:PLOT uu-6,4:PLOT uu-10,3:DRAW 19,0
 7480 FOR w=0 TO 3
 7490 IF w=1 THEN GO TO 7550
 7500 PLOT uu-10,26-w:DRAW 9,9:DRAW 10,-10:PLOT uu-10,22-w:DRAW 9,9:DRAW 10,-10:DRAW -4,-4:PLOT uu-8,20-w:DRAW 7,7:DRAW 8,-8
 7510 PLOT uu-7,17-w:DRAW 6,6:DRAW 5,-5:PLOT uu-4,16-w:DRAW 3,3:DRAW 3,-3:PLOT uu-8,22-w:DRAW 7,-7:DRAW 9,9
 7520 PLOT uu-8,26-w:DRAW 7,-7:DRAW 7,7:PLOT uu-6,28-w:DRAW 5,-5:DRAW 5,5:PLOT uu-4,30-w:DRAW 3,-3:DRAW 3,3
 7530 NEXT w
 7540 INVERSE 0:GO TO 7980
 7550 PLOT uu-14,2:DRAW 27,0
 7560 PLOT uu-2,13:DRAW 4,0:PLOT uu-3,8:DRAW 4,0:DRAW 1,-1:DRAW -4,0:DRAW -1,-1:DRAW 6,0:DRAW -1,-1:DRAW -6,0:DRAW -1,-1:DRAW 8,0
 7600 PLOT uu-17,1:DRAW 33,0
 7610 PLOT uu-5,13:DRAW 1,-1:DRAW 7,0:DRAW 1,1:PLOT uu-7,11:DRAW 13,0:DRAW 1,-1:DRAW -15,0:DRAW 1,-1:DRAW 13,0
 7620 GO TO 7500
 7985 IF g(zz)=128 THEN LET t=30-(INT (2.9-t/10))*10
 7986 IF g(zz)=128 AND t<30 THEN LET rr=1
 7987 IF g(zz)=128 AND t<30  THEN GO TO 8002
 7989 IF g(zz) <>128 THEN LET ww=g(w)
 7990 FOR w=zz TO mm-1:LET g(w)=g(w+1):NEXT w:LET mm=mm-1
 7996 PLOT 0,0:DRAW 255,0
 7999 GO TO 8002
 8000 LET ss=ss+1000
 8001 GO TO 5005
 8002 OVER 0:INVERSE 1:PLOT i(a,1),i(a,2):DRAW d(a)-i(a,1),e(a)-i(a,2)
 8010 PLOT i(a,1)+(i(a,1)<255),i(a,2)-(i(a,1)=255):DRAW d(a)-i(a,1),e(a)-i(a,2)
 8020 PLOT i(a,1)-(i(a,1)>0),i(a,2)-(i(a,1)=0):DRAW d(a)-i(a,1),e(a)-i(a,2):INVERSE 0
 8030 PRINT AT 0,10;"                "; OVER 1; INK 9; AT 0,10;"SCORE ";ss
 8035 IF dd=1 THEN PRINT AT y,x;"X"
 8038 LET dd=0
 8040 FOR w=a TO b
 8045 LET h=w+1
 8050 LET e(w)=e(h)
 8053 LET d(w)=d(h)
 8056 LET f(w)=f(h)
 8058 LET i(w,1)=i(h,1)
 8059 LET i(w,2)=i(h,2)
 8060 NEXT w
 8070 LET b=b-1
 8080 IF rr=1 THEN GO SUB 6214
 8090 LET rr=0
 8200 GO TO 100
 9000 STOP 
 9996 RESTORE :CLEAR 
 9997 REM CLEAR :RANDOMIZE USR 100:SAVE "MISILE.B1" LINE 1
 9998 REM CLEAR :RANDOMIZE USR 100:LOAD "L.B1"

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.