PET 2001-32N, Teil 3

Fehlermeldung am Bildschirm
Fehlermeldung am Bildschirm

Der PET startet nun zwar wieder, aber immer öfter kommt anstatt der Start-Meldung das interne Monitor-Programm, was meist auf einen Fehler im RAM bzw. im Stack hinweist. Mit angeschlossener Tastatur bleibt der Rechner sofort hängen – auch mit dem neuen PIA 6520. Diese adressiert zwar einwandfrei den 74LS145 BCD-zu-Dezimal-Decoder, aber es kommen keine Signale raus. Komischerweise sagt der TL866 Eprommer, dass der IC gut ist. Naja, dann wird eben hier auch ein neuer IC bestellt.

4116 RAM
4116 RAM

Auch für das defekte RAM habe ich zwei Ersatz ICs bestellt. Ein paar Stunden später habe ich in meinem Sammelsurium an ICs genau zwei dieser 4116 RAM Chips gefunden. Sogar in Gold! Aber die sind eh viel zu schön…

Das Problem mit der Tastatur hat mich etwas länger beschäftigt.
Es wurden diverse Messungen durchgeführt und die Eingangssignale am BCD to Decimal Encoder 74LS145 waren einwandfrei.

Signal an 74LS145

Aber am Ausgang kam nichts. Nichts! Auch die zwei neuen ICs hatten den gleichen “Defekt”. Weder an den Pins des Tastatursteckers, noch direkt an den Beinchen des ICs kamen irgendwelche Signale an. In meiner Not wandte ich mich an das Forum des VzEkC und noch während des Tippens fiel es mir wie Schuppen vor den Augen – Die Ausgänge sind Open Collector! Das kann so nicht funktionieren, denn sie ziehen eine Last auf Masse. Das war auch der Grund, warum der Test im IC-Tester funktionierte. Tja, wer misst, misst Mist.

Ein anders Problem beschäftigt mich immer noch: Der PET bleibt beim Start einfach hängen. Was bei normalen PCs oft ein Problem ist, lässt sich zumindest hier mit dem Logic Analyzer gut überprüfen.

Endlosschleife

Der PET befindet sich in einer Schleife bei $E6EB und prüft, ob ein Wert der Adresse $E840 gesetzt wird. Erst dann wird die Schleife verlassen. Das Datenbyte ist aber immer $68. Mein Testaufbau wird erweitert und ich verwende den Disassembler auf Masswerk.at um den durchlaufenen Code zu analysieren und zu verstehen. Die Tools von dieser Seite finde ich super und leicht zu verwenden: Assembler, Disassembler, Emulator und die Erklärung der Instruktionen – alles, was das 6502-Herz so benötigt.

Folgendes Codes-Schnipsel wird dabei durchlaufen:

* = $E6EB
E6EB AD 40 E8 LE6EB LDA $E840
E6EE 29 20          AND #$20
E6F0 D0 F9          BNE LE6EB
E6F2 98             TYA
E6F3 A4 C6          LDY $C6
E6F5 91 C4          STA ($C4),Y
E6F7 60             RTS

Dabei muss die Adresse $E840 etwas besonderes sein, denn im EPROM macht diese Abfrage keinen Sinn. Da ändert sich kein Bit. Auf der Suche nach dieser Adresse stoße ich auf diverse Manuals, die auf den VIA Chip 6522 hinweisen. Unter anderem wieder auf Zimmers.net

Signale am VIA

Und ich verstehe nun auch, wie mit den Chip-Select Signalen CS1 und /CS2 dieser IC angesprochen wird. Mit diversen zusätzlichen Messstrippen des Logic Analyzers komme ich darauf, dass die Signale an den Pins des Port B und dem, was im Programm eingelesen wird, nicht zusammen passt.
Wenn mich nicht alles täuscht, ist auch der 6522 VIA defekt. Jetzt wird erst mal ein Ersatz bestellt, dann sehen wir weiter.

Entlötete IC Sockel

Die Instabilität des PET nervt – mal kommt die Startmeldung, mal der Debug-Monitor, mal nur die Hälfte und mal gar nichts. Ich bekam den Tip, die weißen IC-Sockel zu ersetzen. Mit der Entlötstation ist das auch im Nu geschehen – trotz 160 zu entlötenden Pins. Zusätzlich lade ich mir auch noch das ROM/RAM-Testprogramm von Vossi und brenne es auf ein EPROM. Es läuft an und ich erkenne sofort, dass auch das zweite Video RAM defekt ist, welche ich gleich austausche.

Und siehe da: Die ROMs werden überprüft und für in Ordnung empfunden und auch die 15kB RAM werden OK getestet. Ein erster größerer Erfolg. Mal sehen, ob die Kiste stabil läuft…