Hello, Guest the thread was called2.5k times and contains 52 replays

last post from $FFF6 at the

Check64 zeigt U1 BAD bei Assy 250425

  • Hi Zusammen,


    nachdem ich Thema Assy No 250425 zeigt schwarzes Bild mit tatkräftiger Unterstützung erfolgreich lösen konnte, habe ich jetzt leider einen Nachtrag zu meinem Vergleichsboard, welches etwas herhalten musste.
    Während der Reparatur in o.a. Thema musste ich U1 Sockeln um die CIA's zu testen.


    Jetzt, nachdem ich eigentlich aufräumen wollte, habe ich meinen Cevi mal mit Check64 getestet und festgestellt, daß U1 _immer_ als BAD angezeigt wird obwohl ich keinerlei Beeinträchtigung in der Funktion feststellen kann. Tastatur und Joysticks funktionieren einwandfrei, ich kann Spiele von Floppy laden und spielen und Check64 läuft beliebig oft durch ohne das sich die Uhrzeiten unten rechts im Bildschirm verändern, es zeigt halt einfach immer U1 als BAD an



    Es ist dabei egal ob ich die CIA's gegeneinander tausche oder ob ich andere einsetze (Habe jetzt ein paar zur Auswahl)


    Ich hatte mal HIER gelesen dass die Verschiedenen Herstellungsjahre/Wochen bei den 6526 zu unterschiedlichen Ergebnissen führen könnte was Tests angeht - Somit habe ich mein Check64 Eprom erstmal auf neuesten Stand gebracht, weil ich nicht wusste ob es diesbezüglich Unterschiede bei dem Diagnostic Part gibt zwischen der ersten und zweiten Check64 Version (1.2).




    Hier mal verschiedene Konstellationen, wobei mir dann auch tatsächlich ein CIA auf U1 als fehlerhaft angezeigt wird, von dem ich eigentlich dachte er wäre OK - Aber auf U2 läuft er OK durch ( auch gut ^^ )
    Assy 250425 (Meins)


    U1 6526 16/85 BAD
    U2 6526 16/85 OK


    U1 6526 44/84 BAD
    U2 6526 16/85 OK


    U1 6526A 46/86 206A BAD
    U2 6526 16/85 OK


    U1 6526 29/83 BAD - Keyboard BAD
    U2 6526 16/85 OK



    Assy 250425 (repariertes Vergleichboard)


    U1 6526A 46/86 206A OK
    U2 6526 29/83 OK


    U1 6526 29/83 BAD - Keyboard BAD
    U2 6526A 46/86 206A OK


    U1 6526 16/85 OK
    U2 6526 29/83 OK


    U1 6526 44/84 OK
    U2 6526 29/83 OK




    Ich habe bereits eine sehr gründliche Sichtprüfung gemacht (Diesmal mit Lupenbrille!), wobei mir keinerlei Unterbrechungen aufgefallen sind. Auch habe ich die Pins von U1 aus an die entsprechenden Gegenstellen durchgemessen (Von der IC Oberseite).
    Ich habe dann den Federkontakt Sockel wieder abgelötet und neu gesockelt. U2 habe ich auch gleich mit gesockelt. Diesmal mit Präzisionssockeln (Meinungen geteilt, ich weiß ;) ).


    Wie auch immer, Check64 bleibt bei seiner Meinung.
    Diese mag ich leider nicht akzeptieren, weil das andere 250425er Board komplett Fehlerfrei durchläuft.


    Hat jemand eine Idee was ich noch prüfen könnte?


    Besten Dank schonmal.


    Hier noch ein paar Bilder:

  • Beim Interrupt Test.

    Das würde für ein Problem mit den HMOS-6526 sprechen, die haben ein anderes Timing beim Interrupt. Aber das hier ...

    U1 6526 16/85 BAD


    U1 6526 44/84 BAD


    U1 6526A 46/86 206A BAD

    ...spricht dagegen, es tritt sowohl bei den NMOS als auch bei den HMOS-II auf.


    Das Board funktioniert, die Tastatur z. B.? CIA1 generiert den IRQ, der u. a. die Tastaturabfrage durchführt.


    [EDIT]



    [/EDIT]

  • Das Board funktioniert, die Tastatur z. B.? CIA1 generiert den IRQ, der u. a. die Tastaturabfrage durchführt.

    Ja - Die Tastatur lässt sich normal bedienen und alle Tasten funktionieren - Ich kann keine Auffälligkeiten feststellen.


    Das Ding ist: Der Interrupt Test wird ja immer mit OK abgeschlossen?!

  • TL/DR: RUN/STOP-RESTORE funktioniert auch? Dann ist der NMI auch OK. Folglich kannst du den Fehler offensichtlich ignorieren.


    Langversion;:


    Mal zuerst was Generelles:


    "Check64" ist die Hardware, die von @GMP neu aufgelegt wurde. Darauf befindet sich ein EPROM, das mehrere Programme enthält, die von dieser Hardware mehr oder weniger Gebrauch machen. Dasjenige Programm, das alle Dongles usw. nützt, ist das "Diag8k" aka. "C64 Diagnostics Rev. 586220".


    Von diesem gibt es mittlerweile wohl dutzende "gepatchte" Versionen. Welches bei deinem EPROM dabei ist weiß ich natürlich nicht, es ist auch schwer zu erkennen. Die verlässlichste Quelle für mich ist "World of Jani", Jani sammelt dort die ganzen Versionen zusammen. die letzte ist " Commodore Diag 586220* ".


    Ich würde mit jetzt erst mal dieses in das EPROM brennen und dann den Test nochmals laufen lassen. So ganz grundsätzlich.


    Im Sourcecode gibt es vier oder fünf Stellen, wo aus der Interrupt-Test-Routine auf die Ausgabe "U1 BAD" ($94A4) gesprungen wird. Zuvor wird immer ein Interrupt-Test durchgeführt, wo auch immer eine kleine Verzögerungsschleife durchlaufen wird (bei $94D1). Bei $94D5 steht der Wert, mit dem diese Schleife initialisiert wird (#$3F). Möglicherweise würde es was nützen, an diesem Wert zu drehen. Die Adressen beziehen sich auf den Source-Code, den Jani durch disassemblieren gewonnen hat.


    Warum nur "U1 BAD" ausgegeben wird, aber "INTERRUPT OK" ist mir im Moment nicht klar. Ich würde es aber bis auf Weiteres als Programmfehler ansehen, der durch gewisse, mir derzeit nicht klare Umstände zustande kommt. (Wie gesagt, eine Möglichkeit wäre das geänderte Timing bei den HMOS-6526, aber das widerspricht deinen Tests.)

  • Keyboard = open. Kein Teststecker drauf? Mach den mal drauf und teste nochmal. Ich meine mich erinnern zu können, dass ohne immer U1 Bad ist.

    Das würde mich wundern, ist mir noch nie aufgefallen. Gut, man weiß nicht, welche gepatchte Version des 586220 im Einsatz ist.

  • Das Keyboard-Dongle fehlt wohl eindeutig.

    Das führt bei mir aber zu keinem "U1 BAD". (Bzw. wäre mir das neu.)

    Ansonsten könntest du noch mal die Userport-Kontakte gründlich reinigen und den Userport-Stecker mal hin- und herbewegen.


    Dann dürfte der Fehler weg sein.

    Nein, denn dann wären andere Tests auch BAD.


    Das ist ein Programmfehler, der anscheinend unter gewissen Umständen auftritt.


    @fff6
    Bist du sicher, dass "U1 BAD" kommt, nachdem INTERRUPT angezeigt wird? Wenn ich mir den Sourcecode anschaue ...

    ... kann das in der INTERRUPT-Test-Routine gar nicht passieren, da wird nach "U1 BAD" immer ein "INTERRUPT BAD" (bei $94B6) ausgegeben ... :gruebel

  • Ansonsten könntest du noch mal die Userport-Kontakte gründlich reinigen und den Userport-Stecker mal hin- und herbewegen.

    Die Kontakte habe ich gereinigt, sodass man sich fast drin sehen kann...Fehler bleibt

    Das Keyboard-Dongle fehlt wohl eindeutig.

    Ja, der Dongle hat gefehlt - Mit Dongle zeigt es "Keyboard OK" aber U1 ist weiterhin BAD:


    @fff6
    Bist du sicher, dass "U1 BAD" kommt, nachdem INTERRUPT angezeigt wird? Wenn ich mir den Sourcecode anschaue ...


    Ja - Alle Tests werden ausgeführt und mit OK quittiert.
    Kurz nachdem die Steps TIMER2 A / B mit OK abgeschlossen wurden und er scheinbar am Interrupt test ist, erscheint das BAD hinter U1.
    ca. 2 Sekunden später erscheint dann das OK beim Interrupt Test.


    Ich weiß übrigens das RUN/STOP funktioniert, weil ich diese brauchte um bei Giana Sisters aus dem Intro zu kommen :D

  • Ja, der Dongle hat gefehlt - Mit Dongle zeigt es "Keyboard OK" aber U1 ist weiterhin BAD:

    Wie zu erwarten war,

    Ich weiß übrigens das RUN/STOP funktioniert, weil ich diese brauchte um bei Giana Sisters aus dem Intro zu kommen

    Ich hab eigentlich nach der Kombination RUN-STOP + RESTORE gefragt und deren Funktion im normalen BASIC-Startbildschirm. Grund: RESTORE löst einen NMI aus. Zusammen mit RUN-STOP gibt das den BASIC-Warmstart - oder wie immer man das bezeichnen will, halt das "READY." links oben. Funktioniert das, funktioniert der NMI.

    die PLA !
    Es ist die PLA

    Ja, es ist wahnsinnig heiß heute. :D

  • Ich hab eigentlich nach der Kombination RUN-STOP + RESTORE gefragt und deren Funktion im normalen BASIC-Startbildschirm. Grund: RESTORE löst einen NMI aus. Zusammen mit RUN-STOP gibt das den BASIC-Warmstart - oder wie immer man das bezeichnen will, halt das "READY." links oben. Funktioniert das, funktioniert der NMI.


    RUN-STOP + RESTORE löst keinen NMI aus.
    Es passiert nichts wenn ich die Tasten drücke....Also ist tatsächlich etwas im argen..... X/

  • RUN-STOP + RESTORE löst keinen NMI aus.
    Es passiert nichts wenn ich die Tasten drücke.

    Welchen Pegel hat die NMI-Leitung an der CPU? NMI ist flankengetriggert, "ständig low" hätte also den gleichen Effekt wie "niemals low".

  • Den Gedanken hatte ich auch schon ... NMI hängt aber an CIA2, was mich jetzt ein wenig verwirrt ...

  • Welchen Pegel hat die NMI-Leitung an der CPU?

    Keinen.


    Nach ein wenig messen bin ich schnell auf U20 gekommen. Zuerst hatte ich U8 in Verdacht, der war es aber nicht.
    Lustig ist, das der LM556 so ziemlich der einzige Chip ist, den ich in meiner letzten Reparatur-Orgie nicht bestellt hatte... :huh:


    Da ich den reparierten Cevi noch da habe, konnte ich mir U20 noch ausleihen und siehe da: Check64 läuft seine Runden ohne einen Fehler zu zeigen.


    Ihr seit echt super - Danke!




    Von diesem gibt es mittlerweile wohl dutzende "gepatchte" Versionen. Welches bei deinem EPROM dabei ist weiß ich natürlich nicht, es ist auch schwer zu erkennen. Die verlässlichste Quelle für mich ist "World of Jani", Jani sammelt dort die ganzen Versionen zusammen. die letzte ist " Commodore Diag 586220* ".

    Danke auch für diesen Tip!
    Auf dem Check64 Eprom ist die "Commodore Diag 586220++" Version von 8/2017
    Die "Commodore Diag 586220*" ist von 7/2018


    Kennst Du eine Seite die Erklärt wie ich mir z.B. das Check64 Eprom neu brennen kann um das Commodore Diag Modul gegen das aktuellere zu tauschen?


    Ich könnte mir vorstellen, das ich nur wissen muss an welchen Adressen die jeweiligen Module liegen - Dann könnte ich diese entsprechend auslesen und dann auf ein weiteres Eprom brennen - Das aktuelle Commodore Diag Module würde ich dann einzeln an seine Adresse brennen.


    Geht das?


    Ich suche aber mal selbst ein wenig rum und eröffne ansonsten mal einen eigenen Thread dafür - Interessiert ja vielleicht auch noch andere hier... :D


    Ein finales Danke!


    Chris

  • Lustig ist, das der LM556 so ziemlich der einzige Chip ist, den ich in meiner letzten Reparatur-Orgie nicht bestellt hatte...


    Da ich den reparierten Cevi noch da habe, konnte ich mir U20 noch ausleihen und siehe da: Check64 läuft seine Runden ohne einen Fehler zu zeigen.

    Hah! Dann frage ich mich allerdings, wieso "INTERRUPT OK" ausgeworfen wird. Das muss ich mir mal in einer ruhigen Minute ansehen.

    Kennst Du eine Seite die Erklärt wie ich mir z.B. das Check64 Eprom neu brennen kann um das Commodore Diag Modul gegen das aktuellere zu tauschen?

    Nein. Aber:

    Ich könnte mir vorstellen, das ich nur wissen muss an welchen Adressen die jeweiligen Module liegen - Dann könnte ich diese entsprechend auslesen und dann auf ein weiteres Eprom brennen - Das aktuelle Commodore Diag Module würde ich dann einzeln an seine Adresse brennen.

    Das stimmt. Ich kenne die Aufteilung im EPROM jetzt nicht auswendig, es ist aber ein 27C256, das heißt 256 kBit = 32 kByte = 4 Bänke zu je 8 kByte. Diese vier Bänke werden über zwei DIP-Schalter, die die Adressleitungen A13 und A14 schalten ausgewählt. Wenn man jetzt schaut, welches der vier ROMs (Dead Test, Diag 586220, usw.) bei welcher Schalterstellung aktiv ist weiß man, welchen Bereich man überschreiben muss.


    Praktisch wird man das so machen, dass man das EPROM ausliest (oder das vorhandene BIN nimmt :D ), in einen Hex-Editor lädt und genau den betreffenden 8 kByte-Teil durch das "Diag 586220*" ersetzt. Das neu entstehende BIN mit 32 kByte Größe brennt man dann in ein neues EPROM oder löscht das bestehende und nimmt dieses.


    Die genaue Aufteilung weiß ich jetzt nicht und hab im Moment keine Möglichkeit nachzusehen. Wenn du es nicht selbst schaffst kann ich es später zu Hause raussuchen.

    Geht das?

    Siehe oben. Ja. :D