Hallo.
Nachdem ich jetzt für einen Kumpel 3 Commodore CBM Rechner repariert habe und noch einen PET2001 von ihm in Reparatur habe (ich warte auf Teile), konnte ich wieder nicht nein sagen und habe für mich selber diesmal jetzt noch einen 3032 im Blechgewandt ergattert. Das Gehäuse bin ich momentan am herrichten (siehe Nachbarthread). Um das Board zu reparieren, habe ich es in meinen 3008er eingebaut.
Jedenfalls läuft der Rechner nicht. Als ich ihn bekam, kam nur ab und zu der Garbage Screen. Ich habe die Sockel von CPU und Video-ROM erneuert. Wenn ich ihn jetzt einschalte, kommt ca. 1-2 Sekunden der Garbage Screen und dann ist der Bildschirm dunkel. Das Board habe ich unter dem Stereoskop überprüft - im Bereich des 555-Timers für den Reset habe ich einen zerbröselten Scheibenkondensator gefunden, diesen habe ich ersetzt. Während dem Garbage-Screen ist das Reset-Signal auf low, geht dann auf high und das Bild geht weg.
Folgendes wurde bereits gemessen:
- Spannungsversorgungen
- Taktfrequenz
- Reset-Signal
- IRQ
- NMI
- Ready
- Sync
- RW
- Alle Adressleitungen geprüft mittels NOP-Generator (CPU, an RAM-Decoder und am ROM)
- Datenleitungen gemessen
- Chipselect Leitungen direkt an den ROMs gemessen und Phasenversetzung der ROMs mittels Mehrkanaloszilloskop geprüft
- Piggyback Video-RAM
- Piggyback RAM
Außerdem hab ich die ROMs gelesen und ein verify mit den Originaldumps gemacht. Trotzdem hab ich die ROMs durch funktionierende aus einem anderen Rechner ersetzt. Außerdem habe ich die 2 PIAs und den VIA ersetzt.
Ich habe die ROMs entfernt und mein RAM/ROM-Board montiert. An den Jumpern habe ich auf Basic 2 gestellt und vorher nochmal im anderen CBM getestet, ob das RAM/ROM Board einwandfrei funktioniert, das tut es da. Ich hab an dem Board nur das ROM aktiv !
Wenn es in diesem Rechner steckt, meldet sich der TIM. Allerdings steht da alles durcheinander (siehe Bild) und ich kann keine Eingabe tätigen. Entferne ich die PIA, die für die Tastatur zuständig ist, erscheint die Basic Meldung, allerdings auch durcheinander und ohne Cursor. Die Meldung sieht jedes Mal etwas anders aus. Aber er schreibt, 31743 bytes free. Also hat er den Speichertest erfolgreich durchgezogen. Kurioserweise ist die Basic-Meldung in Kleinschrift, obwohl sie in Großschrift erscheinen sollte. Graf. Version, nicht business,
In dem "wirren" TIM sieht man, dass der Stackpointer auf 01 steht. Das tut er immer ! Das lässt darauf schließen, dass es einen Stack Overflow gibt. Aber das tut er auch, wenn beide PIAs und die VIA draussen sind... aber was, außer vielen aneinander gereihten Interrupts soll das auslösen ? Woher soll dieser overflow kommen ?
Ich habe natürlich am RAM/ROM Board zwischen verschiedenen Versionen umgeschalten. In Basic 2 und 4 erscheint der verwirrte TIM. In Basic 1 erscheint nichts, da gabs ja auch keinen TIM. Sind die ROMs eingesetzt, erscheint ebenfalls nichts, obwohl es sich definitiv um Basic 2 ROMs handelt !
WIe dem auch sei, ich hab das RAM/ROM Board auf Basic 2 gejumpert. Der Rechner bleibt immer an der gleichen Stelle stehen. Im PC des wirren TIMs steht zwar immer was anderes, aber mit dem Oszi am Adressbus gemessen komme ich auch folgendes Ergebnis:
1111 1101 1xxx xxxx
Bei den Bits, die mit "x" gezeichnet sind, sehe ich auf dem Oszi eine ansteigende Flanke. Low bis zur Bildmitte, dann high. Der Rechner sollte also irgendwo zwischen $FD80 und $FDFF pendeln. In diesem Adressbereich liegt das Kernal. Allerdings ist für mich in der Memory-MAP nicht ersichtlich, was an dieser Stelle passiert. Ich müsste den Adressbereich des Kernal-ROMs von $d80 bis $dff mal disassemblieren.
Ansonsten bin ich jetzt gerade an einem Punkt, wo ich nicht weiterkomme. Vielleicht hat jemand von euch noch ne Idee ?!
Vielen Dank !
Gruß Jan