Touchdown
A flame from the thruster, a ship drawn on the title, and a play-again loop. Touchdown is finished — and so is Volume 1.
The game is whole; three small touches finish it. A flame that shows when the thruster fires, a spacecraft drawn on the title screen, and a loop back to play again — the polish that turns a working program into a game you keep coming back to.
10 BORDER 0: PAPER 0: INK 7: CLS
20 DATA 24,24,60,60,126,126,90,24
30 DATA 0,24,36,36,66,66,129,24
50 FOR u = 0 TO 1: FOR j = 0 TO 7: READ b: POKE USR CHR$ (144 + u) + j, b: NEXT j: NEXT u
60 LET a$ = "*** TOUCHDOWN ***": LET y = 5: GO SUB 9000
70 PRINT AT 7, 4; "Land the spacecraft safely."
80 PRINT AT 8, 4; "Hold SPACE to thrust."
90 PRINT AT 9, 4; "Land slowly or you crash."
100 PRINT AT 10, 4; "Limited fuel. Use it wisely."
110 PLOT 128, 78: DRAW -6, -12: DRAW 0, -16: DRAW -4, -6: DRAW 20, 0: DRAW -4, 6: DRAW 0, 16: DRAW -6, 12
120 PRINT AT 18, 4; "Press any key to launch"
130 PAUSE 0
140 CLS
150 FOR i = 1 TO 20: PLOT INT (RND * 256), INT (RND * 100) + 60: NEXT i
160 INVERSE 1: PRINT AT 0, 0; " ALT: SPD: FUEL: ": INVERSE 0
170 INK 4: PRINT AT 21, 0;: FOR i = 1 TO 32: PRINT CHR$ 143;: NEXT i: INK 7
180 LET alt = 100
190 LET spd = 0
200 LET fuel = 50
210 LET spd = spd + 1
220 IF INKEY$ = " " AND fuel > 0 THEN LET spd = spd - 2: LET fuel = fuel - 1: BEEP 0.02, 15
230 IF spd < 0 THEN LET spd = 0
240 LET prev = alt
250 LET alt = alt - spd
260 IF alt <= 0 THEN LET alt = 0
270 PRINT AT 0, 6; alt; " "
280 PRINT AT 0, 19; spd; " "
290 PRINT AT 0, 27; fuel; " "
300 REM Fuel bar
310 PRINT AT 2, 1;
320 FOR j = 1 TO fuel: PRINT INK 4; CHR$ 143;: NEXT j
330 FOR j = fuel + 1 TO 50: PRINT " ";: NEXT j
340 IF alt > 70 THEN BORDER 1
350 IF alt > 40 AND alt <= 70 THEN BORDER 5
360 IF alt > 20 AND alt <= 40 THEN BORDER 6
370 IF alt > 10 AND alt <= 20 THEN BORDER 2
380 IF alt <= 10 THEN BORDER 7
390 IF fuel < 10 AND fuel > 0 THEN BEEP 0.02, 30
400 LET row = 20 - INT (alt / 5)
410 IF row < 4 THEN LET row = 4
420 IF row > 20 THEN LET row = 20
430 LET prow = 20 - INT (prev / 5)
440 IF prow < 4 THEN LET prow = 4
450 IF prow > 20 THEN LET prow = 20
460 PRINT AT prow, 15; " ": IF prow < 20 THEN PRINT AT prow + 1, 15; " "
470 PRINT AT row, 15; CHR$ 144
480 IF INKEY$ = " " AND fuel > 0 AND row < 20 THEN PRINT AT row + 1, 15; INK 6; CHR$ 145: INK 7
490 PAUSE 3
500 IF alt = 0 AND spd <= 2 THEN GO TO 600
510 IF alt = 0 AND spd <= 5 THEN GO TO 640
520 IF alt = 0 AND spd > 5 THEN GO TO 680
530 GO TO 210
600 BORDER 4
610 BEEP 0.1, 10: BEEP 0.1, 15: BEEP 0.1, 20: BEEP 0.2, 24
620 PRINT AT 10, 8; INK 4; "PERFECT LANDING!"
630 GO TO 710
640 BORDER 6
650 BEEP 0.1, 10: BEEP 0.1, 12
660 PRINT AT 10, 8; INK 6; "Bumpy but safe"
670 GO TO 710
680 BORDER 2
690 BEEP 0.5, -10
700 PRINT AT 10, 8; INK 2; "CRASH!"
710 PRINT AT 14, 8; "Speed at landing: "; spd
720 PRINT AT 15, 8; "Fuel remaining: "; fuel
730 PRINT AT 18, 4; "Press any key to play again"
740 PAUSE 0
750 GO TO 10
9000 PRINT AT y, (32 - LEN a$) / 2; BRIGHT 1; a$
9010 RETURN
The finishing touches
Line 480 shows the engine: when SPACE is held and the ship is above the ground, it prints a
second user-defined graphic — a flame — in the cell below the lander, in yellow. Now you see
the thruster fire, not just feel its effect on your speed. Line 110 draws the ship on the title
with PLOT and DRAW, the line-drawing from Reflex tracing a little rocket outline. And lines
730–750 add the loop that matters most: after the debrief, "Press any key to play again" and
GO TO 10 — straight back to the top for another descent, fresh fuel, fresh sky.
What you built
Touchdown began as three lines of falling numbers and grew into a real-time game: a loop that never waits, gravity and thrust pushing a speed you integrate into altitude, fuel you have to ration, a ship you animate by erasing and redrawing, ambient colour and sound, three performed endings, and a custom craft over a starfield. The one new idea — a world that runs whether you act or not — is the foundation every arcade game is built on, and you now have it.
What you built — across Volume 1
Eight games, one language. You started by printing a story and asking a name; you finish by flying a spacecraft through a physics simulation. Along the way you met output and input, variables, decisions, both kinds of loop, random numbers, real-time keys, colour, sound, strings as sequences, your own graphics, and the difference between a program that reports and a game that delivers. Sinclair BASIC took you the whole way — no assembler, no tricks, just clear ideas stacked one on the next.
That is Volume 1. From here the games get larger and the ideas deeper — arrays and state, worlds and rules — but the craft is the same, and it is already yours.