Galaxy Invaders (SYNC)

Developer(s): Phil Gervais
Date: 1982
Type: Program
Platform(s): TS 2068
Tags: Arcade

After a random wait the screen shows the enemy and the command SHOOT NOW, and you press ENTER as fast as you can. A very quick response destroys the entire fleet, a slower one a small group or one craft, and anything slower means you are hit by phasers and lose one of your three ships. Points build up until your ships are gone.

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

Program Analysis

The program times your response with the frame counter: it zeroes it, waits for ENTER and reads it back, and line 30 turns the elapsed frames into a score C compared against 517, 505 and 500.

This copy came from a Larken disk. The ZX81 frame counter at 16436 is now the TS2068’s at 23672 (which counts up, so line 30 was changed to match), and the restart question accepts Y. Tested in ZEsarUX on a stock TS2068.

Related Articles

In Galaxy Invaders you are under attack by a fleet of enemy spacecraft which you must destroy before they destroy you. This game uses the ZX81's 1K RAM, graphics, and screen blackout characteristics to produce an arcade type game.

Image Gallery

Source Code

    1 REM ::GALAXY::INVADERS::
    2 CLS 
    4 CLS 
    6 LET P=0
    8 LET Z=3
   10 PRINT TAB 7;"GALAXY INVADERS"
   12 GO SUB 76
   14 CLS 
   16 FOR I=1 TO 20*INT ((RND*100)+1)
   18 NEXT I
   20 POKE 23672,0
   22 POKE 23673,0
   24 GO SUB 70
   26 LET A=PEEK 23672
   28 LET B=PEEK 23673
   30 LET C=535-(256*B+A)
   32 CLS 
   34 IF C>=517 THEN GO TO 62
   36 IF C>=505 THEN GO TO 94
   38 IF C>=500 THEN GO TO 97
   40 PRINT "::YOU::WERE::HIT::BY::PHASERS.::"
   42 LET Z=Z-1
   44 IF NOT Z=1 THEN PRINT Z;" SHIPS LEFT."
   46 IF Z=1 THEN PRINT Z;" SHIP LEFT."
   48 IF NOT Z=0 THEN GO TO 101
   50 PRINT "POINTS ACCUMULATED:";P
   52 PRINT "START::OVER::IN::NEW::GALAXY::?::(Y/N)"
   54 INPUT W$
   56 IF W$="Y" THEN RUN 
   58 CLS 
   60 STOP 
   62 PRINT TAB 3;"::DESTROYED::ENTIRE::FLEET.::"
   64 PRINT TAB 10;"GOOD WORK."
   66 LET P=P+4+INT ((RND*3)+1)
   68 GO TO 99
   70 CLS 
   72 PRINT TAB 10;"::SHOOT::NOW::"
   74 PRINT TAB 10;"====== ===="
   76 PRINT 
   78 PRINT 
   80 PRINT ,,".'. "
   82 PRINT 
   84 PRINT ,"  ::"
   86 PRINT ,"::::::::::"
   88 PRINT ,"::   ::",,".'. "
   90 PRINT 
   91 PRINT ".'. "
   92 INPUT W$
   93 RETURN 
   94 PRINT "DESTROYED SMALL GROUP"
   95 LET P=P+2+INT ((RND*2)+1)
   96 GO TO 99
   97 PRINT "DESTROYED 1 SMALL CRAFT."
   98 LET P=P+INT ((RND*2)+1)
   99 PRINT "POINTS:";P
  101 INPUT W$
  102 GO TO 14
 9992 SAVE "GLXYIN.B1" LINE 1
 9998 REM  was LKDOS-only

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