C64C hängt sich mit Diagnose64-Modul immer bei "Interrupts" auf

Es gibt 31 Antworten in diesem Thema, welches 4.341 mal aufgerufen wurde. Der letzte Beitrag (3. Oktober 2018 um 23:02) ist von kinzi.

  • Hallo,

    ich habe jetzt einen C64C (ASSY 250469) bekommen. Einschaltbild funktioniert, ein Modul (International Soccer) funktioniert. Dann habe ich mal das Diagnose64 Modul und die Prüfstecker eingesetzt. Alle Tests sind "OK" bis zur Prüfung der Interupts, wo sich der Rechner offenbar aufhängt (weder "OK" noch "BAD"). Ich meine hier im Forum mal gelesen zu haben, dass dies evtl. ein Fehler des Moduls oder seiner Software sein könnte (also gar kein Interrupt - Problem vorliegt). Wie könnte ich die Interrupts denn "von Hand" testen bzw. mit welchen Modulen ? Gesockelt sind in diesem C64 nur der VIC 8565R2, der SID 8580R5 und der MOS 8701 (beim Oszillator). Hat jemand evtl. eine Idee, was ich prüfen könnte ?

    Grüße,
    Ralf

  • Der IRQ-Test check die Leitungen /IRQ und /NMI. Als Quelle werden nur die CIAs verwendet, nicht der VIC. Zuerst wird ein IRQ und NMI durch die Echtzeituhren generiert, dann ein NMI durch einen Datentransfer über die Dongles.

    Laufen die beiden Echtzeituhren rechts unten im Diag-Screen normal?

  • Es gab doch bei den 469ern und bestimmen CIAs ein Problem mit den Interrupts... da war das Timing um einen Zyklus anders... Wenn sonst alle läuft würde ich mir also eher keine Gedanken machen...


    Gruß, Gerd

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Bitte melde dich an, um diesen Link zu sehen. Wenn die Echtzeituhren nicht laufen, wartet das Programm wohl ewig auf das Erreichen der Alarmzeit. Es wird für den IRQ-Test ein Alarm zwei Sekunden in der "Zukunft" gesetzt und geprüft, ob zu diesem Zeitpunkt ein IRQ/NMI ausgelöst wird.

    Die Echtzeituhren benötigen 50 Hz aus dem 9 V AC-Zweig -> Sicherung prüfen! Beim 250469 läuft fast alles ohne die 9 V AC, nur SID, HF-Modulator, Datasette und User-Port Pin 10/11 nicht. Und natürlich die Echtzeituhren ... :D

    [EDIT: Typos]

  • Hallo,

    Danke für die Infos. Ich glaube ich habe ein etwas älteres Diagnose64, da werden keine Uhren auf dem Bildschirm gezeigt, sondern es laufen die verscheidenen Tests in Endlosschleife. Naja ich werde morgen mal ein paar Spiele laden und prüfen, ob die laufen. Ein Defekt von meinem Diagnose-Modul oder den Dongles kann ich ausschließen, an einem anderen C64 läuft alles mit "OK" durch.

    Grüße,
    Ralf

  • Die Uhren kann man zu Not ja auch im Basic prüfen... Stichwort TI$

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Simmt, einfach PRINTTI$ eingeben und nach paar Sekunden nochmal und prüfen, ob die Anzeige weiterläuft ? Das mache ich gleich mal. Eben habe ich die Sicherung geprüft, sie ist okay und auch das Netzteil liefert ca. 10 VAC. Wo könnte ich denn mit dem Oszi die Interrupt-Signale ansehen ?

    Grüße,
    Ralf

  • Register der Echtzeituhr:

    $DC09 und $DD09 (Sekunden), da muss sich was tun...Die BasicUhr geht über Interrupt

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Die Uhren kann man zu Not ja auch im Basic prüfen... Stichwort TI$

    Nein, das sind nicht die Echtzeituhren (aka "TOD"), leider.

    Die TODs sind in den CIAs eingebaut. Die BASIC-Variablen TI und TI$ werden vom KERNAL verwaltet und bei jedem Interrupt hochgezählt. Das hat nichts miteinander zu tun.

    Meine Vermutung ist eben, dass die Interrupts von den CIAs grundsätzlich korrekt erzeugt werden, sonst würde kein Cursor blinken (IRQ) und RUNSTOP/RESTORE (NMI) würde auch nicht funktionieren. Wenn aber das Diag da trotzdem hängenbleibt, riecht das ganz stark nach TOD für mich. Dann wird einfach die Alarmzeit nicht erreicht und daher kein IRQ (CIA1) bzw. NMI (CIA2) ausgelöst.

  • Wo könnte ich denn mit dem Oszi die Interrupt-Signale ansehen ?

    An den CIAs Pin 19 müssen 50 Hz anliegen (TTL-Pegel).

    [edit]

    OK, lesen bildet ... du hattest nach den Interrupts gefragt: CIA1 (U1) Pin 21 muss ein 60 Hz-Signal liefern im normalen BASIC-Betrieb (= /IRQ). CIA2 (U2) Pin 21 muss beim Drücken von RESTORE einen kurzen Puls liefern (= /NMI).

    Wenn im BASIC der Cursor blinkt und Eingaben möglich sind -> /IRQ OK.
    Wenn im BASIC die Tastenkombination RUN/STOP-RESTORE den Bildschirm zurücksetzt und links oben ein "READY." liefert -> /NMI OK:

    [/edit]
  • Wie gesagt in meiner Diagnose64 - Version werden keine Echtzeituhren im Screen rechts unten angezeigt. TI$ habe ich gerade probiert, diese Uhr funktioniert. Dann werde ich mir als nächstes mal die Signale an Pin19 der CIAs ansehen.

    Grüße,
    Ralf

  • Wie gesagt in meiner Diagnose64 - Version werden keine Echtzeituhren im Screen rechts unten angezeigt.

    Oh, sorry, diesen Post muss ich überlesen haben. :(

    Das ist dann aber eine komische Version - kannst du mal ein Foto machen? Die "normale" Version heißt "Rev. 586220". Wenn du eine EPROM-Karte und ein EPROM samt Brenner hast, kannst du Bitte melde dich an, um diesen Link zu sehen. und brennen. Im EF3 müsste sie theoretisch auch laufen, praktisch weiß ich das nicht, ich habe kein EF3.

  • Ah das ist super, da werde ich mein Diag64 morgen mal aktualisieren. Meine Version habe ich auch gefunden: Es ist "C-64 Diagnostic (Box) (CBM 324517-02)". Passen die Prüfstecker für diese Version dann auch bei der Rev. 586220 ? Eben habe ich mal die Pins19 der CIAs mit dem Oszi angeschaut: Da ist jeweils ein "zittriges" Rechtecksignal mit viel "Jitter" drin, Amplitude (VSS) ca. 200mV, Frequenz nicht stabil, um die 1 MHz. Dann dürften wohl beide CIA-Timer defekt sein?

    Grüße,
    Ralf

  • Dann dürften wohl beide CIA-Timer defekt sein?

    Nein, die CIAs sind wohl eher nicht defekt, das ist ein CIA-Eingang, da muss vom Netzteil 50 Hz als Zeitbasis für die Echtzeituhren in den CIAs kommen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Rechts kommt "9V AC1" daher. Das wird an U23, einem Schmitt-Trigger-Inverter (74LS14) in ein TTL-kompatibles Rechteck-Signal gewandelt und an die Pins 19 der CIAs geliefert. Wenn da nur Murks ankommt, ist entweder das Gatter U23a (oder das ganze IC) hin, die Zener-Diode CR6 oder C44 hat einen Schluss, der 560-Ohm-Widerstand ohne Bezeichnung ist kaputt oder es kommt nix von 9V AC1 daher.

    Das Signal an "TOD" (CIA Pin 19) muss ein sauberes Rechtecksignal mit 50 Hz sein, kein Jitter, sauber triggerbar.

    [edit]

    Es ist "C-64 Diagnostic (Box) (CBM 324517-02)". Passen die Prüfstecker für diese Version dann auch bei der Rev. 586220 ?

    Das kann ich dir im Moment nicht sagen, ich kenne dieses Diag nicht. Müsste ich erst nachschauen. Vielleicht kennt es jemand anders? Oder es ist auch auf Janis Seite beschrieben, die ich verlinkt habe, Jani hat einen Haufen dieser Diags zerpflückt und online gestellt.

    [/edit]

    [EDIT 2]

    Ja, Jani hat es auf seiner Seite, inkl. "Schematics". Da könntest du mal vergleichen. Ich komm grad nicht dazu.

    [/EDIT 2]

  • Ich denke mal irgendetwas stimmt mit der Verarbeitung der AC-Spannung nicht. Bei dem U23 (74LS14), der wohl das Sinussignal in Rechteck wandeln soll, kommt schon am Eingang nichts an. Das werde ich morgen mal genauer nachverfolgen.
    Das C-64 Diagnostic Assembly Kit (CBM 326070-01) ist bei den Prüfsteckern sehr aufwändig, da bleibe ich lieber erstmal bei dem alten Modul. Aber das C-64 Dead Test Kit (CBM 314139-03) werde ich mir mal brennen. Soweit ich das verstanden habe, kann dieses Modul beim "Black Screen" durch Blink-Zeichen RAM-Fehler anzeigen. Außerdem werden die beiden TOD-Clocks angezeigt.

    Grüße,
    Ralf

  • Soweit ich das verstanden habe, kann dieses Modul beim "Black Screen" durch Blink-Zeichen RAM-Fehler anzeigen.

    Das hast du richtig verstanden.

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Aber das C-64 Dead Test Kit (CBM 314139-03) werde ich mir mal brennen. Soweit ich das verstanden habe, kann dieses Modul beim "Black Screen" durch Blink-Zeichen RAM-Fehler anzeigen.

    Ich würde mir allerdings dieses Programm auf ein eigenes Modul brennen. Es kann das Diag nicht ersetzen, z. B. kann es nur die ersten 4 kB RAM testen. Es ist also vordergründig wirklich nur für "Dead Tests" gedacht, nict für einen "vollständigen" Test und als Ersatz des Diags.

  • Ich habe mir gerade mal das Dead Test Cart. auf ein 27C64 Eprom gebrannt und auch noch eine alte Eprom-Karte aus Donalds Shop (basierend auf einem Design von Hucky aus der "Emu-Ecke") gefunden. Wenn ich das in einen C64 stecke, kommt nur ein leerer Bildschirm in den C64 Farben (Dunkelblau / Hellblau) und nichts passiert weiter. Jetzt überlege ich, ob das Eprom vielleicht eine besondere Platine benörigt ? In der "World of Jani" (link oben posting 14) ist ja auch ein Bild /Video von der Zerlegung des original Moduls dabei. DIeses File hat aber eine ".tas" - Endung, welche ich nicht öffnen kann. Alles was ich dazu gefunden habe, ist der "Adrift Runner" (wohl ein Programm zur Entwicklung von Adventures ?). Das habe ich installiert, damit kann ich aber nur ".taf" - Files öffnen. Weiß jemand mit welchem Programm ich diese .tas files ansehen kann ?

    Grüße,
    Ralf