Deine Daten. Deine Wahl.

Wenn du nur das Nötigste wählst, erfassen wir mit Cookies und ähnlichen Technologien Informationen zu deinem Gerät und deinem Nutzungsverhalten auf unserer Website. Diese brauchen wir, um dir bspw. ein sicheres Login und Basisfunktionen wie den Warenkorb zu ermöglichen.

Wenn du allem zustimmst, können wir diese Daten darüber hinaus nutzen, um dir personalisierte Angebote zu zeigen, unsere Webseite zu verbessern und gezielte Werbung auf unseren und anderen Webseiten oder Apps anzuzeigen. Dazu können bestimmte Daten auch an Dritte und Werbepartner weitergegeben werden.

Hintergrund

Nerd-Nostalgik: Programmieren auf dem ZX Spectrum

David Lee
6.8.2026
Bilder: David Lee

Der ZX Spectrum funktioniert wie viele 80er-Jahre-Rechner mit der Programmiersprache Basic. Mit einem Emulator oder der Hardware-Nachbildung kannst du auch heute selbst Spiele programmieren. Die eigenartige Texteingabe bedarf jedoch einer Erklärung.

Den Commodore 64 kennen wohl die meisten, die in den 80er-Jahren schon vor einem Computer gesessen haben. Weniger bekannt ist der ZX Spectrum. Und das, obwohl er trotz eines ähnlichen Konzepts viel weniger kostete.

Wie der C64 erschien der ZX Spectrum 1982 und hat die Form einer Tastatur, in die der Rechner eingebaut ist. Als Bildschirm diente damals meist ein Röhrenfernseher. Beide Computer operieren mit Basic und eignen sich gut für Games. Der ZX Spectrum ist insgesamt etwas schwächer, er hat zum Beispiel weniger Arbeitsspeicher (48 statt 64 KB), den schlechteren Sound und eine – nett gesagt – kostengünstige Tastatur. Er war vor allem in seinem Herkunftsland Grossbritannien sowie Spanien ein Erfolg.

Eine weitere Gemeinsamkeit: Man kann damit recht einfach selber Spiele programmieren. Da ich das schon beim C64 gemacht habe, versuche ich es auch hier.

The Spectrum: fast wie das Original, aber mit modernem Komfort

Seit Ende 2024 gibt es «The Spectrum» von Retro Games, eine Nachbildung des ZX Spectrum. Das Prinzip ist das gleiche wie bei The C64. Äusserlich möglichst originalgetreu nachgebaut, funktioniert der Rechner im Innern komplett anders als das Original: Auf einem Arm-Prozessor läuft ein Emulator.

Davon merke ich nichts, der Emulator verhält sich weitgehend gleich wie das Original. Die alten Schnittstellen fehlen, dafür gibt es mit dem modernen Prozessor USB und HDMI. Über einen USB-Stick lassen sich beliebige Games laden. The Spectrum kommt mit 48 integrierten Spielen. Pro Game lassen sich vier Spielstände speichern und es gibt eine Zurückspul-Funktion, mit der du zu einem beliebigen Punkt der letzten 40 Sekunden springen kannst.

In die Programmierumgebung wechseln

Mit «The Spectrum» lassen sich auch eigene Programme schreiben. Dafür wechselst du in den klassischen Modus. Dieser ist recht gut versteckt: Mit der Leertaste (auch sie etwas versteckt unten rechts) gelangst du zu den Optionen, dann mit der Taste 6, die zugleich der Pfeil nach unten ist, zu «Advanced options». Mit M bestätigst du und bei der nächsten Auswahl wählst du «Switch to classic mode». Im gleichen Menü lässt sich auch einstellen, dass der Computer direkt im klassischen Modus starten soll.

Programmieren kannst du natürlich auch in einem Emulator auf deinem gewöhnlichen Rechner. Beides hat Vor- und Nachteile, wie du gleich sehen wirst. Als Emulator verwende ich Fuse.

Wie das Tippen auf dem Spectrum ZX funktioniert

Der ZX Spectrum hat eine sehr eigenwillige Art der Texteingabe. Mit der Hardware-Replika hast du die passende Tastatur inklusive aller Beschriftungen. Im Emulator musst du mit einer normalen Tastatur arbeiten, was zu Beginn sehr mühsam ist.

Im klassischen Modus respektive beim Original-ZX siehst du anfänglich bloss eine graue Fläche mit einem Copyright-Hinweis. Beginnst du zu tippen, blinkt der Cursor und zeigt einen Buchstaben an. Es ist aber nicht der Buchstabe, den du zuletzt getippt hast. Sondern dieser Buchstabe gibt den aktuellen Modus an.

  • «K» steht für Keyword. In diesem Modus schreibt der Rechner beim Tippen eines Buchstabens nicht den Buchstaben, sondern den Basic-Befehl, der weiss auf der betreffenden Taste steht. Tippst du zum Beispiel ein «P», erscheint «PRINT» auf dem Bildschirm.
  • «L» steht für Letters, also Buchstaben. Normales Tippen in Kleinbuchstaben.
  • «C» steht für Capitals, also Grossbuchstaben. Zwischen Klein- und Grossbuchstaben wechselst du mit Shift+2.
  • «E» steht für Extended Mode, also erweiterter Modus. Damit lassen sich die grün beschrifteten Befehle aktivieren. Drückst du zudem noch Shift, erreichst du damit die rot beschrifteten Wörter.
  • «G» steht für Graphics Mode. Mit den Tasten 1 bis 8 lassen sich ASCII-Grafikzeichen schreiben, um Mosaike, Blöcke, dicke Linien und Ähnliches zu zeichnen.

Tastenkürzel für Basic-Befehle gibt es auf vielen Rechnern der 80er-Jahre. Ungewöhnlich ist aber, dass sie obligatorisch sind: Du kannst keinen Basic-Befehl mit Einzelbuchstaben tippen. Der Rechner erkennt ihn nicht als solchen; ausserdem kannst du eine Zeile gar nicht mit Einzelbuchstaben beginnen. Die Eingabe startet immer mit dem Modus K oder E.

Das ist anfangs recht nervig. Denn auch wenn du das Zehnfingersystem beherrschst, arbeitest du mit dem Adlersystem, bis du endlich auswendig weisst, wo welcher Befehl liegt. Ab dann ist das Konzept aber effizient. Das ist bei der Gummitastatur auch nötig, denn das Tippen fällt damit schwer.

Die manchmal festklemmenden Gumminoppen und das ungewöhnliche Layout erschweren das Tippen.
Die manchmal festklemmenden Gumminoppen und das ungewöhnliche Layout erschweren das Tippen.

Arbeitest du mit dem Emulator, siehst du die Befehle nicht auf deiner Tastatur. Hier hilft die Tabelle auf der Wikipedia-Seite zu Sinclair Basic weiter. Mit ⌘-K kann ich in Fuse die Tastatur des Spectrum einblenden lassen, dann funktioniert aber das Tippen nicht mehr – wahrscheinlich ein Bug. Ich habe mir darum einen Screenshot davon erstellt.

Zeilen automatisch neu nummerieren

Der ZX Spectrum kennt keinen Befehl, um ein Programm automatisch neu zu nummerieren und dabei alle Verweise anzupassen. Das ist aber wichtig: Auch wenn du die Befehle anfänglich in Zehnerschritten nummerierst, kann es passieren, dass du zwischen zwei Zeilen zu wenig Platz für nachträglich hinzugefügten Code hast.

Beim C64 habe ich die Programme auf meinem normalen Rechner geschrieben und dann per Zwischenablage in den Emulator kopiert, um sie zu testen. So wäre die Renummerierung auch mit einer externen Software möglich. Das Einfügen per Zwischenablage funktioniert jedoch beim Emulator Fuse nicht. Für den Emulator habe ich dennoch einen Workaround gefunden. Auf der Retro-Nachbildung nicht.

Der Workaround: Das spanische ROM für den Spectrum ZX 128 hat einen Befehl NUMERO. Seltsamerweise gibt es im Standard-ROM keine Entsprechung. Dieser Befehl nummeriert das Listing neu. Das erste Argument gibt die Startzeile an, das zweite das Inkrement. Das spanische ROM kann in Fuse geladen werden. Da der Spectrum 128 rückwärtskompatibel ist, lässt sich das Programm laden, neu nummerieren und wieder abspeichern. In der Retro-Nachbildung kann ich zwar vom 48K auf den 128K-Spectrum wechseln, aber keine eigenen ROMs laden.

Weitere Eigenheiten von Basic auf dem ZX Spectrum:

  • Der Befehl LET ist obligatorisch. Eine Zeile «x=1» funktioniert nicht, es muss «LET x=1» heissen.
  • Variablennamen für Arrays und Strings dürfen nur einen Buchstaben lang sein. Bei Zahlen sind längere Namen möglich.
  • THEN nach IF ist zwingend. Ebenso kann GO TO nach THEN nicht weggelassen werden.
  • Es gibt kein ELSE-Statement.
  • Der Befehl DIM startet mit Index 1. In vielen Basic-Dialekten startet er mit 0.
  • Mehrere Befehle pro Zeile sind möglich und werden durch einen Doppelpunkt getrennt. Dabei musst du jedoch beachten, dass der Interpreter bei einem IF-Statement direkt zur nächsten Zeile springt, wenn die Bedingung nicht erfüllt ist.

Die Programmierung von «Mastermind»

Mastermind stammt aus der analogen Welt und ist ein Denkspiel für zwei Personen aus dem Jahr 1970. Eigentlich spielt pro Runde nur eine Person, die andere gibt lediglich Feedback. Damit eignet sich «Mastermind» perfekt für eine Computer-Adaption als Einzelspiel.

Hermex Mastermind Entschlüsselungsspiel Steckspiel Logikspiel Codeknacker-Spiel (Englisch, 2 Spieler)
Legespiele

Hermex Mastermind Entschlüsselungsspiel Steckspiel Logikspiel Codeknacker-Spiel

Englisch, 2 Spieler

Für die Farbkombination stehen sechs verschiedene Farben zur Wahl. Hinzu kommen Schwarz und Weiss, um das Feedback zu signalisieren. Schwarz bedeutet, dass der Stein die richtige Farbe hat und auf der richtigen Position liegt. Weiss bedeutet, dass diese Farbe zwar vorkommt, aber nicht an dieser Stelle.

Acht Farben, das passt zum ZX Spectrum: Dieser kann acht Farben in je zwei Helligkeitsstufen darstellen, also insgesamt 16 Farben. Wobei bei den dunkleren Farben die Unterschiede nur schwer und bei Schwarz kaum zu erkennen sind. Am deutlichsten ist der Unterschied bei Weiss: In der dunklen Version ist es Grau. Um diese neunte Farbe war ich froh, da der Hintergrund eine andere Farbe haben sollte als die im Spiel verwendeten Farben.

Das einzig Schwierige beim Programmieren des Spiels war der Algorithmus fürs korrekte Feedback. Anfängliche Versuche funktionierten nur in gewissen Fällen korrekt – etwa, wenn jede Farbe nur einmal auftritt. Der korrekte, finale Algorithmus checkt die Antwort einmal auf Volltreffer (schwarz) und dann noch einmal auf Halbtreffer (weiss). Er markiert dabei alle Treffer, damit sie nicht doppelt gezählt werden.

Programm speichern und laden

Ich habe das Spiel im Emulator programmiert, hauptsächlich wegen der oben beschriebenen Möglichkeit zur automatischen Zeilennummerierung. Am Ende will ich es trotzdem auf der Spectrum-Hardware spielen können. Dazu erstelle ich mit dem Menübefehl «Media > Tape > Save As» eine tzx-Datei. Das ist ein Kassetten-Image – das gängige Speichermedium für den ZX Spectrum. Da auch The Spectrum unter der Haube ein Emulator ist, kann er tzx-Dateien einlesen. Um das Programm auf einem richtigen ZX Spectrum aus den 80er-Jahren zu laden, müsste man mit einem Hilfstool aus dem Image eine Sound-Datei kreieren und dieses dann abspielen.

So lädst du eine tzx-Datei in The Spectrum:

  • Stecke den USB-Stick mit der Datei in einen freien Slot.
  • Navigiere mit der Taste 5 nach links durch die Games, bis das USB-Symbol erscheint.
  • Drücke «M», wähle dann im Dateibrowser das Game aus und starte es mit «M».
  • Tippe «R», um den Befehl «RUN» einzugeben und dann die Enter-Taste.

So lädst du eine tzx-Datei in Fuse:

  • Öffne die Datei mit «File > Open File».
  • Tippe «R» für «RUN» + Enter.

Hier gibt es Mastermind als gezippte tzx-Datei. Ein Online-Emulator zum schnellen Ausprobieren ist JSSpeccy.

6 Personen gefällt dieser Artikel


User Avatar
User Avatar

Durch Interesse an IT und Schreiben bin ich schon früh (2000) im Tech-Journalismus gelandet. Mich interessiert, wie man Technik benutzen kann, ohne selbst benutzt zu werden. Meine Freizeit ver(sch)wende ich am liebsten fürs Musikmachen, wo ich mässiges Talent mit übermässiger Begeisterung kompensiere. 


Hintergrund

Interessantes aus der Welt der Produkte, Blicke hinter die Kulissen von Herstellern und Portraits von interessanten Menschen.

Alle anzeigen

Weitere Beiträge aus dem Magazin

1 Kommentar

Avatar
later