TC64v2 und Reset am MK2

Caution: Non registered users only see threads and messages in the currently selected language, which is determined by their browser. Please create an account and log in to see all content by default. This is a limitation of the forum software.


Also users that are not logged in can not create new threads. This is a, unfortunately needed, counter measure against spam. Please create an account and log in to start new threads.

Don't Panic. Please wash hands.
  • Hi...


    ich hab zwei MK2(mit SCPU-Fix), an beiden MK2 sorgt ein RESET über die "Up"-Position den Ein-/Aus-Schalters am MK2 mit einem TC64V2 für einen "abgestürzten" C64... Einschaltmeldung ist da, aber der Cursor blinkt nicht. RUN/STOP+RESTORE ohne Funktion.


    Reset über das TC64v2 funktioniert.


    Mit einem UII+ an Stelle des TC64v2 funktioniert der MK2-Reset.


    Ist das bekannt? Kann man das über Einstellungen "ändern"? Oder kann da etwas "verstellt" sein?

    Firmware des TC64 ist 9i.


    Ist jetzt kein wirkliches Problem, ist mir beim testen nur so aufgefallen...


    Markus

  • Danke für die Rückmeldung.


    Ich hab noch weiter getestet: Wenn ich das TC64 im 1MHz-Modus starte (turbo mode off, write settings, aus-/einschalten), dann erhalte ich beim RESET wenigstens noch einen blinkenden Cursor… aber die Tastatur funktioniert trotzdem nicht, auch kein run/stop+restore.


    Wenn ich über den Monitor den C64 unterbreche, dann läuft die Tastaturabfrage, das MK2 scheint also nicht komplett abgestürzt zu sein.


    Ich hab sonst keine Module am MK2, auch keine Geräte am ser.Bus. Nichts am JoyPort1+2.


    Chips im MK2 sind 6510, 6569r5, 8580, 2x6526A. Karte ist eine SDHC/8Gb.


    Sonst funktioniert ja alles... beide MK2 nutzen noch die Original Konfiguration, gab also keine Änderungen über das Firmware-Menü.


    Falls das nicht reproduzierbar ist, dann belassen wir es dabei. Das TC64 hat ja einen RESET-Knopf...


    Markus


    P.S. Wenn ich das MK2 einschalte und über das Menü den Slot1 starte (RetroReplay), dann funktioniert das ganz normal. Mache ich jetzt einen RESET über das MK2, dann erscheint wieder das RetroReplay Menü, aber die Tastatur reagiert nicht. Über die RESTORE-Taste kommt aber das Freezer-Menü. Also funktioniert die Tastatur an sich schon noch...

  • ich habe aber diesn Fix nicht. Jens ?

    Der SCPU-Fix entkoppelt nur die Spannung der Takterzeugung auf dem C64RMK2, hat also definitiv keinen Einfluss auf das Reset-Verhalten.


    Über die RESTORE-Taste kommt aber das Freezer-Menü. Also funktioniert die Tastatur an sich schon noch...

    Restore ist eine besondere Taste, die nicht über die CIA abgefragt wird, sondern die einen NMI auslöst, ganz unabhängig vom CIA-Chip. Und der CIA-Chip ist auch das, was ich als Erstes anschauen würde (auch wenn das Verhalten wohl an beiden C64RMK2 gleich ist): Wenn die Tastatur nicht funktioniert, bitte mal die zwei CIA-Chips gegeneinander tauschen oder einen anderen Chip in den Sockel nahe dem Tastaturanschluss stecken. Außerdem vielleicht mal die CIA im Sockel seitlich verschieben, während der Nullkraftsockel zu ist (also "Hebel nach unten"). Das löst eventuelle Kontaktschwierigkeiten - vielleicht bekommt die CIA ja gar keinen Reset?

  • Letzteres würde ich auch erstmal ausschliessen wollen.... das Restore in den Freezer springt ist auch eher falsch. Vllt auch ein subtiler defekt (oder schlechter Kontakt?) am IRQ pin von CIA2?

  • Ich hab mal die beiden CIAs gegeneinander getauscht, ohne Erfolg.


    Ich hab mal eine CMD-HD angeschlossen, nach dem MK2-Reset führt auch die HD einen RESET aus, aber nicht komplett, die ACIVITY-LED bleibt an und am C64/MK2 rührt sich nichts mehr. Einschaltmeldung ist aber da (Reset wird optisch am MK2 also ausgeführt).

    Ein RESET am TC64 setzt die HD dann wieder korrekt zurück, und auch das MK2. Jetzt geht auch die Tastatur wieder.


    Wie gesagt, es funktioniert sonst alles inkl. Tastatur. An beiden MK2. Aber beide hängen nach einem RESET über das MK2 wenn das TC64v2 eingesteckt ist. Mit dem UII+ oder einem EasyFlash klappt der RESET ohne Probleme.


    Wenn das MK2 hängt und ich über das TC64 den Monitor starte, dann kann ich den Tastaturpuffer manuell auch mit Daten füttern. Wenn ich den Monitor und das TC64 verlasse und zum BASIC zurückkehre, dann werden die im Tastaturpuffer abgelegten "Tasten" auch ausgegeben. Also ist das kein richtiger "Crash"... es sieht eher so aus als wird der RESET nicht komplett durchgeführt, deshalb bleibt die CMD-HD auch mitten in der RESET-Prozedur "hängen"...


    Im 1MHz-Modus kommt die RESET-Routine wohl etwas weiter, dann blinkt wenigstens nach dem RESET der Cursor... über die Tastatur kann ich aber trotzdem nichts eingeben und die HD bleibt auch hängen.


    Wie gesagt... nicht so wichtig. Wenn's bei anderen Funktioniert dann ist hier evtl. doch was verstellt, aber da lohnt die Suche nicht...

  • Klingt fast nach einem analogen Effekt. Haben Sie einen Reset-Taster für den Userport? Falls ja, bitte den mal ausprobieren. So ganz möchte ich noch nicht aufgeben :-)

  • Es gibt also nur dann ein Problem, wenn der Microcontroller auf dem C64RMK2 den Reset auslöst. Hier wäre zu untersuchen, ob wir die Dauer, die das Signal gehalten wird anpassen können. Bevor wir das machen, bitte erstmal prüfen, welche Version der MCU-Firmware in den beiden C64RMK2 ist. Schließlich wollen wir keine Geister jagen, sondern Bugs zunächst sicher reproduzieren um sie dann zu fixen.

  • Ich hab die beiden MK2 ja erst vor ein paar Wochen bestellt...

    Bevor wir das machen, bitte erstmal prüfen, welche Version der MCU-Firmware in den beiden C64RMK2 ist.

    MK2#1:

    ?

    VIC-II: 6569 (1C 51 AF55 PAL)

    SID 1 : 8580 (DD 00)

    SID 2 : Unknown (11 00)

    CPU : PHI2 OK (045E)

    MCU : 20180227

    READY (press key for menu)


    MK2#2:

    ?

    VIC-II: 6569 (1A 54 AF55 PAL)

    SID 1 : 8580 (DF 00)

    SID 2 : Unknown (15 00)

    CPU : PHI2 OK (045E)

    MCU : 20180227

    READY (press key for menu)


    Weil ich gerade das Firmware-Tool am laufen hatte... mal "R Reset machine" ausgeführt. Und... gleicher Effekt. Das MK2 "hängt"... kein blinkender Cursor (bei TurboON), keine Tastatureingabe möglich. Reset über TC64v2 schafft Abhilfe.

  • Es gibt also nur dann ein Problem, wenn der Microcontroller auf dem C64RMK2 den Reset auslöst. Hier wäre zu untersuchen, ob wir die Dauer, die das Signal gehalten wird anpassen können.

    OK... hatte das nicht damit in Verbindung gebracht, aber ich hab ein paar Tests mit dem Userport-Reset-Taster gemacht. Konnte es nicht 100%ig reproduzieren aber länger und öfters den RESET-Taster drücken hat ganz, ganz selten auch zu einem Stillstand geführt. Der normale Reset (nur 1x ca. 0.5s den Taster drücken) führt *IMMER* einen Reset aus. Macht die Signal-Dauer auch am Userport einen Unterschied?


    Den Power-Schalter des MK2 so kurz wie möglich zu drücken ändert aber nichts.

  • Macht die Signal-Dauer auch am Userport einen Unterschied?

    Genau das müssten wir im Quelltext des Microcontrollers abgleichen. Dass er den Reset ziehen kann, scheint sicher zu sein, aber die Dauer die der Reset gehalten wird, müssten wir einfach mal probehalber ändern und schauen, ob sich am Verhalten etwas verändert. Das ist jetzt nur ein Schuss ins Blaue - ohne mal zu messen oder den Fehler hier nachgestellt zu haben, bleiben halt nur "educated guesses".


    Den Power-Schalter des MK2 so kurz wie möglich zu drücken ändert aber nichts.

    Kann auch nicht, denn die Tast-Funktion des Powerschalters ist für den Microcontroller nur ein Soft-Button. Der Controller ermittelt, wie lange der Taster gedrückt war und löst dann die programmierte Funktion für diese Dauer aus. Wenn es Reset ist, wird in die gleiche Routine gesprungen, die auch den Reset aus dem Menü heraus auslöst, insofern ist die Beobachtung, dass beide das gleiche Problem haben richtig.


    Versuche mit der MCU-Firmware müssen wir auf kommende Woche verschieben. Eigentlich bin ich gar nicht mehr im Büro...

  • Hat keine Eile, ich hab damit auch kein weiteres Problem...


    Die Frage ist aber warum das nur bei mir ein Problem ist, bei Tobias scheint es ja zu funktionieren. Gleiche MCU-Version? Gab es da unterschiedliche Board-Revisionen?


    Bevor man an der Software was ändert, was bei anderen wieder neue Probleme schafft, würde ich auch damit leben können.


    P.S. Ich hab eben auch noch die SuperCPU getestet, damit geht der RESET am MK2 auch...

  • Gab es da unterschiedliche Board-Revisionen?

    Nein, es gibt genau eine Board-Revision die es in Serie gegeben hat, und mit der arbeiten alle Mitarbeiter. Ich gehe auch davon aus, dass sämtliche MCUs auf dem Stand von Februar 2018 sind - das ist die letzte Version die in der Chip-Erkennung einen Fix hat. An der Dauer des Reset-Pulses haben wir AFAIK nie gearbeitet, aber das müsste Peter im Changelog nachsehen (Montag dann).

    Bevor man an der Software was ändert, was bei anderen wieder neue Probleme schafft, würde ich auch damit leben können.

    Ich tippe darauf, dass das einfach ein edge case ist, also dass wegen geringer Toleranzen im einen Fall der Reset mit Chameleon fehlschlägt, und wie z.B. bei Tobias immer funktioniert. Es würde mich nicht wundern, dass es auf allen Testmaschinen funktioniert wenn wir den Reset-Puls um ein paar ms verlängern. Der Microcontroller hat aber auch noch mehr Informationen, so dass wir die steigende Reset-Flanke mit anderen Events synchronisieren können um eine vernünftige Reproduzierbarkeit zu bekommen. Bei modernen embedded-Systemen, aber auch schon bei den 680x0-Prozessoren ist der Reset sehr genau definiert (oft im Zusammenhang mit power-sequencing), was aber bei den alten 8-Bit Systemen nie spezifiziert wurde. Aus heutiger Sicht könnte man aber mal mit einem kritischen Auge auf das Reset-Timing schauen.

  • Da muss ich mich anschließen.

    Auch wenn ich von dem oben stehenden nur die Hälfte verstanden habe...


    Wenn ich beim MK2 mit eingesteckten TC64 Reset auslösen, dann geht er zwar über ins Basic, aber die Tastatur funktioniert dann nicht mehr. Das kann ich beliebig reproduzieren.

    Muss dann erst am TC64 das Menü starten um wieder weiter zu kommen.


    Merkwürdiges Verhalten.

  • Wenn ich beim MK2 mit eingesteckten TC64 Reset auslösen, dann geht er zwar über ins Basic, aber die Tastatur funktioniert dann nicht mehr. Das kann ich beliebig reproduzieren.

    Muss dann erst am TC64 das Menü starten um wieder weiter zu kommen.

    Ahhhh!!!! Danke! Damit bin ich nicht alleine und da ist das Problem dann doch in der Hardware und sitzt nicht vor dem MK2/TC64 :)

  • Es wäre toll wenn beim MK2 Reset man direkt in das Menü vom TC64 kommt.

    Oder zumindest wenn es schon Basic ist, dann mit funktionierender Tastatur.


    Aber ich denke dass dürfte zu lösen sein.

  • Ich hab das hier jetzt nochmal ausprobiert.... und kann das jetzt zumindest teilweise auch nachvollziehen (irgendwie komisch dass das vorher anders war). Vielleicht tatsächlich ein Edge case, jetzt war das Chameleon über Stunden eingeschaltet und ist "warm". kA ob das schon einen Unterschied machen kann. Zumindest verhält es sich bei mir jetzt so:


    - Einschalten mit Chameleon, Tastatur im Menu funktioniert

    - im Chameleon "F3" für "Reset to Basic"

    - Tastatur im Basic funktioniert

    - Reset über den Schalter am C64MK2

    - Cursor blinkt im BASIC Einschaltscreen, Tastatur funktioniert _nicht_

    - Reset über den Resetknopf am Chameleon oder wahlweise am Userport

    - Tastatur funktioniert wieder


    Das Ganze lässt sich beliebig (ohne Powercycle machen zu müssen) wiederholen, also Reset über den Schalter am C64MK2 -> Tastatur tot, wieder Reset am Chameleon oder Userport -> Tastatur funktioniert (Das schliesst zumindest wohl mal aus dass die Menu Software schuld sein kann)


    Zusätzliche Beobachtung: Der Feuerknopf am Joystick Port1 wirkt wie "Space", auch wenn die Tastatur nicht funktioniert. Das spricht dafür dass die CIA zwar resettet wurde, aber das Datenrichtungsregister nicht gesetzt wurde - Warum auch immer das passiert ist.


    Und: eine zusätzlich angesteckte PS/2 Tastatur funktioniert auch in dem Zustand. Gibt man mit dieser jetzt POKE 56322,255 ein... funktioniert auch die Tastatur am C64 wieder :)


    Irgendwie muss der Init der CIAs nicht zu den echten CIAs durchgedrungen sein. Evtl werden die noch im Resetzustand gehalten während der Core schon den Kernal ausführt? (Wobei ich mir grade nicht erklären kann wie das sein könnte). Oder das "Durchreichen" der writes auf die echten CIAs wird (vom Core) zu lange unterdrückt? Jens das kannst du besser rauskriegen (messen) als ich :)

  • Und: eine zusätzlich angesteckte PS/2 Tastatur funktioniert auch in dem Zustand. Gibt man mit dieser jetzt POKE 56322,255 ein... funktioniert auch die Tastatur am C64 wieder :)

    Das hat mir jetzt keine Ruhe gelassen... also PS/2-Tastatur rausgesucht... und nuja...


    Die CMD-HD hängt ja nach dem MK2-Reset im RESET-Modus fest.


    Ich kann im TurboModus zwar war den RESET ausführen, aber die PS/2-Tastatur reagiert nicht.


    Im 1MHz-Modus führt der RESET zu einem blinkenden Cursor, und F1 zeigt @$:* an... aber da die CMD-HD im RESET festhängt, passiert nichts weiter.


    Poke56322,255 kann ich nur im 1MHz-Modus eingeben, danach funktioniert die MK2-Tastatur, aber die CMD-HD bleibt im RESET-Modus. Der ser. Bus ist also nach wie vor blockiert.


    Sieht so aus als ob das RESET-Signal zu kurz ist. Im TurboModus ist das TC64 früher wieder da als "erlaubt" und unterbricht den RESET-Impuls (sorry, verstehe davon nichts, ist so mein "Gefühl"...)


    Aber gut das ich jetzt nicht mehr der einzige bin. Es ist für mich auch kein größeres Problem, das TC64 hat ja einen RESET-Button...


    P.S.

    Vielleicht tatsächlich ein Edge case, jetzt war das Chameleon über Stunden eingeschaltet und ist "warm".

    Um die Uhrzeit ist mein TC64+MK2 "kalt" gewesen ;)

  • Ich kann bestätigen: wenn ich den Turbo aktiviere, dann blinkt im Basic auch kein Cursor nach Reset mit dem Schalter am MK2


    Eine 1541 lässt sich dann auch nicht ansprechen, auch nicht nach "antriegeln" der Tastatur mit dem Poke. Ich denke dass da auch CIA2 nicht richtig initialisiert ist.


    Ausserdem hab ich mal kurz im Kernal Code geguckt... die CIA Register werden in den ersten ~150 cycles gesetzt, also wirklich praktisch sofort nach Reset. Ein bischen wundert mich dass der Write nach $d016 (der bei Reset den Rahmen "enger" macht) als allererstes kommt - und der aber offensichtlich funktioniert (wie man an der VIC Ausgabe sehen kann). Aber vllt brauchen die CIAs auch einfach ein bischen länger....

  • The last reply was more than 365 days ago, this thread is most likely obsolete.