Retro: Sinclair ZX Spectrum – ZXC3 – Teil 4

ZXC3
ZXC3

Ein weiterer Teil in der Artikelreihe zu dem wunderbaren ZXC3 Cartridge.

Diese Mal geht es um den Spectrum 128 Emulator.
Die Cartridge ist in erster Linie für den 48K Spectrum und den Spectrum+ gedacht und versorgt diese mit der neuen Softwarefunktionalität des ZX Spectrum 128. Es gibt zwei Versionen des Emulators. Die erste ist ein 1:1 Port des Spectrum 128 ROM mit all seinen Fehlern. Die zweite Version beseitigt alle Fehler im Editor ROM. Die Fehler im 48K Basic ROM wurden nicht beseitigt um die Kompatibilität mit dem 16K/48K Spectrum zu gewährleisten. Die fehlerfreie Version kann ebenso auf dem Spectrum 128 oder Spectrum +2 eingesetzt werden und macht dadurch ein Upgrade auf diese „bessere“ Version.
Nach dem Einschalten präsentiert sich der Spectrum mit dem Standard Menü des Spectrum 128 mit Tape Loader, 128 BASIC, Calculator, 48 BASIC und Tape Tester. Die fehlerfreie Version kann an der Kennzeichnung 128+ in der Titelleiste des Auswahlmenüs erkannt werden.

Wenn es auf einem 48K Spectrum oder Spectrum+ verwendet wird, unterscheidet sich das 128 BASIC nur in der Größe des verfügbaren RAM, da das ZXC2/3 PCB nicht fähig ist extra RAM hinzuzufügen. Die zusätzlichen 80K Speicher des Spectrum 128 waren durch die neuen RAM-Disk Befehle verfügbar, aber auf der Emulator Cartridge ist die RAM-Disk auf 11K limitiert (10K für Programmdaten und 1K für den Katalog, was für 50 Einträge ausreicht). Die RAM-Disk befindet sich auf der letzten 16K Bank des RAM – in den restlichen 5K befinden sich die Systemvariablen die vom 128 BASIC Interpreter genutzt werden. Als Ergebnis sind nur 32K RAM für Benutzerprogramme im 128 BASIC Modus verfügbar. Auf dem richtigen Spectrum 128 (und wenn die Cartridge auf einem Spectrum 128 +2 benutzt wird), wird die RAM-Disk und die neuen BASIC Interpreter Systemvariablen über zwei der zusätzlichen RAM Bänke verteilt.

Die 128 BASIC Schlüsselwörter SPECTRUM und PLAY werden vom Emulator unterstützt, ebenso wie die Renumber, Print und Screen Toggle Fähigkeiten.

S128_RC_BASIC

Das SPECTRUM Schlüsselwort und die 48 BASIC Option aus dem Hauptmenü deaktivieren das ROM Cartridge komplett und veranlassen den Spectrum dazu sein internes ROM zu verwenden. Wenn die Cartridge auf einem 48K Spectrum verwendet wird, schließt das die volle Kompatibilität der kompletten 48K Software ein (ebenso wie der 48 BASIC Modus auf ein richtigen Spectrum 128). Wenn ein externes Board mit einem AY-3-8912 Sound Chip an einem 48K Spectrum verwendet wird und so konstruiert ist, das es die gleichen I/O Ports wie ein Spectrum 128 verwendet, dann sollte der PLAY Befehl das externe Board erfolgreich kontrollieren können. Wenn auch ein RS232 Line Driver und Receiver implementiert sind, sollten die COPY, LPRINT und LLIST Befehle mit dem RS232 Port arbeiten können und der 128 BASIC Modus sollte das KEYPAD unterstützen. Auch wenn das Spectrum 128 Keypad in England nie veröffentlicht wurde, kann die Spanische Version benutzt werden oder Sie können sich ihr eigenes kompatibles Spectrum 128 Keypad bauen.

Die Tape Loader, Calculator und Tape Tester Modi arbeiten identisch zu denen auf einem echten Spectrum 128. Die Tape Loader Option setzt den 128 BASIC Modus voraus. Daher kann es auf einem 48K Spectrum wegen der Unterschiede in der Benutzung der letzten 16K RAM Bank geschehen das einige 48K Programme nicht funktionieren. Wenn dieser Fall auftritt, dann einfach das Programm im 48 BASIC Modus laden. Jedes Programm das versucht den zusätzlichen Speicher eines Spectrum 128 zu benutzen wird offensichtlich scheitern wenn die Cartridge auf einem 48K Spectrum benutzt wird.

Der Test Bildschirm auf einem Spectrum 128 (BREAK Taste während des Einschalten gedrückt halten) wird vom Emulator ebenso wiedergegeben.

S128_RC_Test_Screen

Da der 48 BASIC Modus die ROM Cartridge komplett abschaltet, kann in diesem Modus der Spectrum benutzt werden als wenn das ROM Cartridge gar nicht angeschlossen wäre. Deshalb ist es möglich die Cartridge an einem 48K Spectrum immer angeschlossen zu lassen, so dass die neuen Fähigkeiten immer dann verfügbar sind, wenn Sie beim Einschalten benötigt werden.

Zur Benutzung benötigt man wieder ein ROM Cartridge, das wie immer auf der Seite von Paul Farrow zu finden ist. Diese muss mit dem ROM Cartridge Creator auf das ZXC3 kopiert werden: ZX Spectrum 128 Emulator. Ich hatte zum Testen das ROM incl. Interface 1 ROM verwendet – dazu muss man das „richtige“ Interface 1 aber abstecken sonst funktioniert der 48K Modus nicht 🙂

ZXC3 – Teil 1: Allgemeines zum ZXC3
ZXC3 – Teil 2: Cartridge Programmer Utility/Flash Programmer
ZXC3 – Teil 3: ZX80/ZX81 Emulatoren
ZXC3 – Teil 4: Spectrum 128 Emulator
ZXC3 – Teil 5: Microdrive Emulator/Microdrive Kopierer
ZXC3 – Teil 6: Testprogramme