--- title: "ZX Destroyer" id: 72052 type: "computer_media" slug: "zx-destroyer" url: "http://localhost/computer_media/zx-destroyer/" markdown_url: "http://localhost/computer_media/zx-destroyer.md" published_at: "2026-10-20T14:07:36+00:00" modified_at: "2026-10-20T14:20:43+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/ZXDestroyer.png" excerpt: "A compact shooter where machine code in a REM line runs the action from a domed laser base, with laser sights and a laser counter that starts at five." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" model: - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" indiv: - name: "Raymond Fowkes" slug: "raymond-fowkes" taxonomy: "indiv" url: "http://localhost/indiv/raymond-fowkes/" genre: - name: "Game" slug: "game" taxonomy: "genre" url: "http://localhost/type/game/" media_type: "Program" programmers: - name: "Raymond Fowkes" slug: "raymond-fowkes" taxonomy: "indiv" url: "http://localhost/indiv/raymond-fowkes/" download_url: "https://archive.org/download/timex-sinclair-software-archive/ZX%20Destroyer%20%281982%29%28Fowkes%2C%20Raymond%29%28TS1000%29%28US%29%28Program%29.zip" mediadate: "1982" images: - url: "http://localhost/wp-content/uploads/2026/10/ZXDestroyer.png" - url: "http://localhost/wp-content/uploads/2026/10/ZXDestroyer-scaled.jpg" article_media: - id: 24366 title: "ZX Destroyer" type: "article" url: "http://localhost/article/zx-destroyer/" media_type_tags: "Game" --- # ZX Destroyer Defends a domed base standing on a strip of ground, with a “LASER 5” counter at the top of the screen. BASIC draws the dome, the figure inside it and the ground from block graphics, then hands control to a machine-code routine that runs the game in `FAST` mode, reading the keyboard directly and using laser sights to aim. When the routine returns, the program waits about five seconds and restarts itself with `RUN`. The whole program fits in about 1K. This is the hybrid BASIC and machine-code shooter by Raymond Fowkes published in *Sync*, July/August 1982, where it was described as having laser sights and a flicker-free display. The cassette is labeled by hand “ZX DEFENDERS”, but the program’s own REM title is “ZX DESTROYER”. ## Program Analysis ### Program Structure - Line 1: a REM holding about 400 bytes of Z80 code, starting at 16514. The bytes include `IN A,(254)` keyboard reads. - Lines 100–170: the playfield, printed once: the dome outline, a figure built from block graphics, and a two-row stippled ground strip. - Lines 180–200: `POKE`s to 16516, 16519 and 16524 reset values inside the REM code before each game. - Lines 210–250: `FAST`, `RAND USR 16526` to run the game, `PAUSE 300`, then `SLOW` and `RUN` for a new game. ### Notable Techniques - BASIC only draws the static scene; all movement, firing and the laser count are handled by the machine code, with the BASIC `POKE`s acting as a reset of its variables. - Ending with `RUN` instead of `GOTO` makes each game start from a clean state. ## Source Code ``` 1 REM ▘▀ # COPY TO #### ▖<>5▙RNDPEEK COPYE£RNDACS UNPLOT ▘3▘Y CLSLN [P]▝F▘▝;Y SCROLLLN [P]▝F▘3▘Y SCROLLLN [P]▝Y#<= RETURN3SQR Y SCROLL<= RETURN▒<>#▝[B]4#▞7/Z<>P 4#<>#▘W<># <>#▀<>#▖▞▘E£RND,,Q ACS F#ACS <;#▄<>#▀Q▌;ACS 7ACS 7;Y#W[Y]▞▖4~~<>#▖ GOSUB #<>#▖▞▘▒#▒<>#▀ACS #4▝LEN £ACS #4▝CHR$ £LEN [=]<>[Y]▌4[C]<>Q▝▘A▘<>#▀)5 ; GOSUB #£RND,,6[▒]RNDQ▌▞1/#)5 E[▒]RND;<>O▝<>ACS ▝#4XY$▞$[Y]Q▌4+ FAST<>Q▌ TO 5▛ GOSUB #£RND,,PY0[Y] LPRINT COS ▞▀( RETURNY:<>[Y]▝▞=4?<>Q▝█E[▒]RND)# RETURN;▞3Q 6[▒]RND/)Q Y[$]▞7<>[Y]▝4 LIST ▞7<>Q▝ ( RETURN[J]<>[Y]~~C#E[~~]RNDQ ) TO COPY;Y▌▞0[Y]CD6[~~]RND<>O~~Y▞▞-[Y]C6S/Y(▞=<>[Y]~~C)Y$▞<<>[Y]~~STQ▘▞)/NQ <>Q~~ /F▞#2 CLEARQ ;( CLSTAN ▒ACS #▞64;<>Q~~▘<>#▌A COPY) TO COPY; GOSUB #(RND,,6[~~]RNDQ▘▞/▒( RETURN<>P"▞#48<>Q"▞E£RND)$▘;###7▘* GOSUB [K]>)4 ;###F:* GOSUB [S]>▞~~( RETURN<>#▌- COPYE(RND;Q ) ▒ACS #4▘.ACS #4▘<;[J][Q]▞#▌▄<>#▌#[>]RND 10 REM "ZX DESTROYER" 90 CLS 100 PRINT "LASER 5";TAB 15;"▄▄" 110 PRINT TAB 12;"▄▀▀ ▀▀▄" 120 PRINT TAB 10;"▗▀";TAB 20;"▀▖" 130 PRINT TAB 9;"▗▘";TAB 21;"▝▖" 140 PRINT TAB 9;"▞ █▌ ▚" 150 PRINT TAB 8;"▐ ▜▘ ▌" 160 PRINT TAB 8;"▌ ▗▜▚ ▐" 170 PRINT TAB 8;"▌ ▞▖ ▐";TAB 4;"▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒";TAB 4;"▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒" 180 POKE 16516,0 190 POKE 16519,223 200 POKE 16524,0 210 FAST 220 RAND USR 16526 230 PAUSE 300 240 SLOW 250 RUN ```