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.
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.
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.
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
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.
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…