Reparatur fehlerhafter C64

  • Der mir neu zugelaufene C64 hat beim ersten Einschalten seine normale Meldung gezeigt...


    ...für ca. 5 Sekunden. Dann sind die Zeichen "weg-gefaded", als wäre es ein Grafikeffekt die Pixel wegzunehmen. Dabei Farbjitter in den Zeichen.
    Ich hab erst mal auf Verdacht die PLA getauscht, aber die geht. Beim Einschalten hab ich nun das da:



    Der Cursor blinkt an 2 Stellen, die beiden inversen Nullen.


    Es handelt sich um eine Assy #250425. Keine TTL Chips von MOS.


    Ich dachte bevor ich mich der Sache systematisch messtechnisch weiter annehme frage ich mal in die Runde ob ihr einen heissen Tip habt?


    Aufgrund der 0 anstatt von Space würde ich auf das RAM U23 (D4) tippen, oder der 74LS257 auf U25. Die farbigen Zeichen unten irritieren mich aber.


    Ideen?


    Viele Grüße
    Andreas

  • Eindeutig ein Adressierungsfehler, alles wird zweimal im Abstand von 128 Bytes angezeigt, das müsste also A7 sein. Multiplexer tauschen?


    EDIT: Die bunten Zeichen werden aus den letzten 24 Bytes des Farb-RAMs gelesen; die sind ja normalerweise nicht auf dem Bildschirm sichtbar und werden daher nicht mit der Zeichenfarbe initialisiert, haben also ihre zufälligen Einschaltwerte.

    Yes, I'm the guy responsible for the ACME cross assembler

  • ...nimmt der Rechner Befehle wie POKE53280,0 an?
    Nach erneutem Nachdenken tendiere ich jetzt nämlich zu einer kalten Lötstelle am VIC (ebenfalls A7), das würde nicht nur die doppelten Zeichen, sondern auch Null-statt-Space erklären.

    Yes, I'm the guy responsible for the ACME cross assembler

  • (ebenfalls A7), das würde nicht nur die doppelten Zeichen, sondern auch Null-statt-Space erklären


    da geh' ich ohne zusäzliche Erklärung nicht mit - aus einem SPACE wird ein Null, aus einem 'E' wird ein 'U', aus einem 'A' wird ein 'Q', aus einem 'D' wird ein 'T', während ein 'S' ein 'S' und ein 'Y' ein 'Y' bleibt, wenn Bit 4 auf '1' klemmt.
    Wenn also nicht irgendwo ein Shift im Spiel ist, kann man den Adress- und den Datenfehler nicht auf einen Fehler einer gemeinsamen Adress/Datenleitung zurückführen.
    Mit einer kleinen Wahrscheinlichkeit ist ein Kurzschluss zwischen D4 und A7 vorhanden - eine kleine Wahrscheinlichkeit, weil man bei einem Kurzschluss eher erwarten wird, dass bei unterschiedlichen Werten der kurzgeschlossenen Leitungen typischerweise die "gewinnt", die die '0' trägt, mithin typischerweise das Bit auf '0' klemmen sollte.


  • da geh' ich ohne zusäzliche Erklärung nicht mit - aus einem SPACE wird ein Null, [...] wenn Bit 4 auf '1' klemmt.

    Ja, bei den Screencodes schon, aber danach wird ja noch das Char-ROM konsultiert. Falls A7 für den VIC fest auf 1 hängt, erzeugt auch der Screencode für Space trotzdem das Zeichen Null, weil das Char-ROM 128 Bytes weiter oben ausgelesen wird.

    Yes, I'm the guy responsible for the ACME cross assembler

  • Ja, bei den Screencodes schon, aber danach wird ja noch das Char-ROM konsultiert.


    Ah ja - hab mir mal den Schaltplan gegoogled und reingeschaut - hatte nicht damit gerechnet, dass das Character-RAM noch am Main-Bus hängt, der Main-Bus also derart stark "belastet" wird.
    Da ein offner LS-Eingang wie ein "1" wirkt, kann der Feher gut durch eine kalte Lötstelle oder ein Leiterbahnbruch zustande kommen. In Frage für die kalte Lötstelle kommt nicht nur Pin 31 am VICs (U19), sondern auch die Pins 6, 9, 10, 11 des 74LS258-Bausteins (U14). Falls die Baustein gesockelt sind, hilft vielleicht schon aus-/einstecken der Bauteile.

    Einmal editiert, zuletzt von dlchnr ()

  • Heureka! Die Maschine geht wieder.


    A7 vom VIC-II (Pin 31) war die passende Richtung. Das Signal von 10/11 des 74LS258 kommend sah nicht in Ordnung aus, erreichte bei Low keinen Low-Pegel. Also Bausteine raus und gemessen... Die Leiterbahn hatte einen Schluss zu Pin 11 vom PLA (ROML). Da kommt die Bahn auf der Oberseite direkt dran vorbei, das hat sich wohl mit der Zeit gebildet.


    Viele Grüße
    Andreas