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.
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-onlyNote: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.


