Comet Crusher

Developer(s): Chuck Dawson
Date: 1982
Type: Program
Platform(s): TS 2068
Tags: Arcade

A comet crawls across the top of the screen while your rocket waits on the launch pad. Press F to fire: the rocket climbs with a flame trail, and if it reaches the comet’s height as the comet passes overhead you score a hit. A miss resets the round.

The program is the type-in from SYNC v2 n4 (1982) (see the article Comet Crusher). Bob Swoger’s copy was transferred from the TS1000 to the TS2068 with Upload 2000.

Program Analysis

The comet moves one ZX81 pixel per step with PAUSE 45 between steps, and the rocket rises one line per step after launch. A hit is detected at line 150 when the comet’s x position is 39 and the rocket is in the top rows.

This copy came from a Larken disk. The ZX81 POKEs to its FRAMES counter were removed, the comet is drawn as a ZX81-sized pixel by a subroutine at 2010 (Upload 2000 had dropped UNPLOT), and F is accepted in lower case too. Tested in ZEsarUX on a stock TS2068.

Related Articles

FLASH!!! Astronomers have spotted a hitherto unknown comet a million kilometers from the earth.

Image Gallery

Source Code

    1 REM ::COMET::CRUSHER::TO::SAVE::GOTO::500.::
    5 CLS 
   10 LET H=18
   15 LET A=0
   20 LET Y=37
   25 LET X=0
   30 PRINT AT 18,19;":'";TAB 19;" :";TAB 19;".'. "
   40 PRINT AT 20,0;"::PRESS::'F'::TO::FIRE.::"
   50 PRINT AT 21,0;"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
   60 LET u=X-1: LET v=Y: LET w=1: GO SUB 2010
   70 LET u=X: LET v=Y: LET w=0: GO SUB 2010
   80 LET X=X+1
   85 PAUSE 45
   87 REM  removed (LKDOS-only)
   90 IF X>63 THEN GO TO 1
  100 IF INKEY$="F" OR INKEY$="f" THEN LET A=1
  110 IF A=1 THEN PRINT AT 20,0;"                 "
  120 IF A=0 THEN GO TO 30
  130 LET H=H-1
  140 PRINT AT H,19;":'";TAB 19;" :";TAB 19;".'. ";TAB 19;"* ";TAB 19;"  "
  150 IF X=39 AND H<4 AND H>0 THEN GO TO 200
  160 IF H=0 THEN GO TO 1
  170 IF H=17 THEN GO TO 50
  180 GO TO 60
  200 CLS 
  210 PRINT AT 3,19;"::HIT::"
  220 PAUSE 500
  225 REM  removed (LKDOS-only)
  230 RUN 
  500 SAVE "COMET CRUSHER"
  510 RUN 
 2000 REM plot (w=0) or unplot (w=1) one ZX81-size pixel at u,v
 2010 FOR q=0 TO 3: PLOT INVERSE w;4*u,4*v+q: DRAW INVERSE w;3,0: NEXT q: RETURN 
 9992 SAVE "CMTCRH.B1"
 9998 REM  was LKDOS-only

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