Diag Card V.0.37







Entwickler: Dylan Smith, Brendan Alford
Herstellung und Vertrieb: Byte Delight, Ben Versteeg
Erscheinungsjahr: 2014
ROM: 4Mbit Flash (512x8Bit)
Bedienelemente: Reset-Taster, NMI-Taster, Schiebeschalter, Jumper
Anschlüsse: Edge Connector
Preis: ZX Diag Cart DIY kit: 39,71€
ZX Diag Cart Assembled: 53,73€
Preise ohne Gewähr!
Stand 03.09.2023

Die ZX DIAG Card erstellt mit Hilfe einer auf der Platine integrierten Software eine Fehlerdiagnose der ZX Spectrum Computer. Sie erkennt automatisch, was für ein Spectrum angeschlossen ist. Wichtig zu wissen ist, dass, wenn der Spectrum soweit gestorben ist, dass gar nichts mehr angezeigt wird, die Karte auch nicht funktionieren kann. Die Diag Card hängt zumindest soweit von einer funktionierenden Spectrum-Hardware ab, als dass sie die Bildschirmausgabe und ein halbwegs funktionierenden Prozessor benötigt.
Auf dem Diag Board befindet sich ein Flash-ROM, das über eine eigene Dekodierung mit dem Spectrum verbunden wird. Wird die Karte auf den Edge Connector gesteckt, wird das interne ROM wird über +5V am /ROMCS deselektiert, und stattdessen der Flash der Diag Card eingeblendet.
Die Diag Card untersucht die folgenden Funktionen und Komponenten:
  • ROM,
  • Lower Ram,
  • Upper Ram-Umschaltung auf die zweiten 64kB der 128k-Modelle,
  • ULA
  • Keyboard
Auf der Karte, die nur bedingt als Interface bezeichnet werden kann, befinden sich drei Reihen von LEDs, die über den jeweiligen Status Auskunft geben. Die obere Reihe der acht blauen Leuchtdioden zeigt den Status der Steuerleitungen an. Die zweite Reihe, acht rote LEDs, geben, je nach Position des Schiebeschalters, entweder den Status des Datenbusses wider oder es wird nach dem Einschalten einen Countdown herunter gezählt, bis alles LEDs aus sind und das Diagnosetool gestartet wird. Eine dritte Reihe von vier grünen LEDs zeigt die Zustände der Spannungsversorgung an.
Die Karte lässt sich bis zu einem gewissen Grad konfigurieren. Mit dem schon angesprochenen Schiebeschalter rechts neben den blauen LEDs kann zwischen der Zustandsanzeige des Datenbusses und dem Countdown umgeschaltet werden. Mit Jumper 1 wird die Bootsequenz gewählt. Ist er auf Pin 1-2 gesteckt, startet das Diagnosetool, auf Position 2-3 bootet der Spectrum normal.
Jumper J2 selektiert das Prozessorsignal M1 oder ignoriert es. Dieses Steuersignal, das von der CPU kommt, dient zur Kennzeichnung der »Befehlsholezyklen«. M1 zeigt an, das ein Befehl aus dem Speicher geholt wird. Zusammen im /IORQ wird auch ein Interrupt quittiert. Bei den ZXS16/48 und Toastrack wird M1 einfach auf den Edge Connector heraus geführt, und zumindest bei den +2A/b und +3 ist M1 mit zwei Dioden verbunden, deren Zweck sich mit nicht erschließt… Dort wird M1 auch nicht auf den Edge Connector heraus geführt.
Jumper ROM/OE dient der Kompatibilität zu den brasilianischen Nachbauten. Dort wird die ROM1/OE-Leitung zur Soundausgabe verwendet, zumindest laut Beschreibung.
Diagnosefunktionen:
Mit der Diag Card können fünf verschiedene Tests durchgeführt werden. Diese Test werden ausgeführt, wenn innerhalb des Countdown die entsprechende Taste gedrückt wird, als »S« für SOAK-Test, »U« für ULA-Test, usw. Von rechts nach links, wie auf dem Startbildschirm der Diag Card zu sehen ist, sind die Test wie folgt:
Der SOAK-Test:
Der SOAK-Test ist quasi der Härtetest des Rams. Zuerst wird die ULA getestet, im Anschluss findet der RAM-Test statt. Hier werden alle RAM-Test durchgeführt, die auch im Testprogramm durchgeführt werden, wenn die Diag Cart normal startet. Dieser Test läuft in einer Endlosschleife, solange, bis der Spectrum ausgeschaltet oder die Reset-Taste gedrückt wird. Hier können »weiche Rams« gefunden werden.
Der ULA-Test:
Hier werden ganz überraschend die ULA-Funktionen getestet. Der ULA-Typ wird automatisch erkannt und am oberen Rand des Bildschirms angezeigt. Der Bus wird detektiert und der CPU-Typ wird angezeigt. Im Allgemeinen wird ein NMOS-CPU-Typ angezeigt. Unterhalb des ULA-Port-Lesetests wandert ein achtfarbiger Streifen hin und her. Er zeigt an, ob die Interrupts funktionieren und ihre Frequenz stimmt. Tritt ein Fehler auf, wird in der Mitte der Zeile eine Fehlermeldung eingeblendet. Beim Drücken von 1 - 5 stoppt dieser Streifen, weil die Interupts abgeschaltet werden.
Beim Drücken von Taste 1 wird ein Ton über den MIC-Anschluss der ULA ausgegeben, begleitet von rot-cyanfarbenen Streifen im Border-Bereich. Dies kann verwendet werden, um die Ausgabe der Bandspeicherung zu überprüfen.
Durch Drücken der Taste 2 wird ebenfalls ein Ton ausgegeben, diesmal über den EAR-Anschluss der ULA. Bei einem ZXS16/48 ist der Ton zu hören, die anderen haben bekanntlich keinen eingebauten Lautsprecher. Im Border-Bereich werden gleichzeitig blau-gelbe Streifen ausgegeben.
Taste 3 testet die Erzeugung der Border-Farben als Regenbogenmuster.
Hinter Taste 4 verbirgt sich wieder ein komplexer Test. Bei 128k-Rechnern wird der Schattenbildschirm getestet, indem der Bildschirm mit grünen Balken auf dem Bildschirm und am Rand überlagert wird. Ein Problem beim Umschalten des Bildschirms würde dazu führen, dass der gesamte Bildschirm grün wird oder nur Streifen am Rand zu sehen sind, wie es etwas beim ZXS 48 der Fall ist.
Taste 5 überprüft die ULA-Adressierung. Dabei werden Werte abwechselnd in den ULA-Port 254 und in den Port 255 geschrieben. Wenn alles in Ordnung ist, ist einen blinkenden grün/weißen Rand sehen. Wenn der ULA jedoch auf OUTs reagiert, die nicht für ihn bestimmt sind, ist ein rot-weiß blinkenden Rand oder einen anderen unbestimmten Zustand sehen, der vom jeweiligen Fehler abhängt.
Memory-Test:
Für die, die immer genau wissen wollen, was im Speicher los ist, hält die Diag Card einen Memory Browser bereit. Hier kann ein tieferer Einblick in den Speicher genommen und gegebenenfalls geändert werden. Die angegebenen Adressen sind in HEX, die in die etwas hinein geschrieben werden kann, sind blau, alle andern sind rot. Man möge es ausprobieren, es ist ganz interessant zu sehen, was im Speicher so los ist.
Mit der Leertaste oder nach Ablauf des Countdowns springt das Programm in die Testroutine, in der alle Prüfungen ausgeführt werden. Gleich nach dem Start wird die ULA getestet, gleich im Anschluss das Lower RAM, dann das Upper RAM. Hier wird derselbe Test durchgeführt, der auch mit »S« aufgerufen werden kann, nur das hier die einzelnen Schritte angezeigt werden.
Ist der Speichertest fertig, werden die Interrupts überprüft und durch einen aufsteigenden Zähler angezeigt. Der abschließende ROM Paging-Test blättert die Diag Card im ROM. Hier wird ein Zähler nach unten gezählt, und bei 0 kehrt der Spectrum in sein System zurück.
Tastaturlayout:
Was sich hinter »K« verbirgt, ist selbsterklärend. Hier werden anhand des Tastaturlayouts des ZXS 48 sämtliche Tasten abgefragt. Wie das Bild zeigt, sind die ungetesteten Tasten schwarz auf blauem Hintergrund dargestellt. Wird eine Taste betätigt, wechselt die Farbe auf weiß auf blauem Hintergrund.
Und zu guter Letzt kann mit Symbol-Shift die Meldung angezeigt werden, was man da eigentlich auf seinen Speccy gesteckt hat und wer das Diag Board entworfen und programmiert hat.
Fazit:
Die Diag Card unterstützt die Fehlersuche im den ZX Spectrum Computern perfekt, wenn auch nicht alles gefunden wird. Das ist aber auch nicht der Anspruch. Der Anspruch ist eben die Fehlerdiagnose in den Spectrum Computern, und dieser Anspruch wird perfekt erfüllt. Anmerken möchte ich noch, dass die Diag Card tunlichst nicht am Next angeschlossen werden sollte. Es kann funktionieren, sie kann aber auch sein, dass der Next in den Computerhimmel geschickt wird.
Wer sich für mehr interessiert, dem sei die Entwicklerseite im Internet empfohlen. Der Link hierzu ist gleich nebenan zu finden.

Weiterführende Links
ByteDelight: Diag Cart
ZX Spectrum Diagnostics