--- title: "Comet Crusher" id: 72851 type: "computer_media" slug: "comet-crusher" url: "http://localhost/computer_media/comet-crusher/" markdown_url: "http://localhost/computer_media/comet-crusher.md" published_at: "2026-10-27T15:54:37+00:00" modified_at: "2026-10-27T15:54:37+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/d-3.png" excerpt: "Launch your rocket at the right moment to destroy a comet crossing the top of the screen." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Chuck Dawson" slug: "chuck-dawson" taxonomy: "indiv" url: "http://localhost/indiv/chuck-dawson/" genre: - name: "Arcade" slug: "arcade" taxonomy: "genre" url: "http://localhost/type/arcade/" media_type: "Program" programmers: - name: "Chuck Dawson" slug: "chuck-dawson" taxonomy: "indiv" url: "http://localhost/indiv/chuck-dawson/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Comet%20Crusher%20%281982%29%28Dawson%2C%20Chuck%29%28TS2068%29%28US%29%28Program%29.zip" tsrun_member: "Comet Crusher (1982)(Dawson, Chuck)(TS2068)(US)(Program)/Comet Crusher (1982)(Dawson, Chuck)(TS2068)(US)(Program).tap" mediadate: "1982" images: - url: "http://localhost/wp-content/uploads/2026/10/d-3.png" - url: "http://localhost/wp-content/uploads/2026/10/e-1-1.png" article_media: - id: 24353 title: "Comet Crusher" type: "article" url: "http://localhost/article/comet-crusher/" media_type_tags: "Arcade" license: false --- # Comet Crusher 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. ## 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 ```