Hallo Besucher, der Thread wurde 1,8k mal aufgerufen und enthält 8 Antworten

letzter Beitrag von markusC64 am

1541U2-FW3 -> Speicherresistente Programme

  • Moin,


    ich habe gestern meine 1541U2 von FW 2.6K auf 3.0e von @markusC64 aktualisiert. Danke, Markus und an alle anderen.


    Dabei ist mir etwas aufgefallen, wo ich zuerst dachte, mein C64 hat bald einen Defekt oder er hat einen.
    Er geht ab und zu nicht mehr an!


    Ich konnte das dann darauf runterbrechen, dass dieses oft geschieht, wenn man .crt Files lädt oder speicherresistente Programme.
    Das kenne ich noch von früher. Man musste dann recht lange warten, bis sich der Rechner wieder starten ließ.


    Lade ich zum Beispieln den C64 bunring test, bekomm ich das nicht wieder abgeschaltet ohne einen kompletten Neustart.
    Jetzt muss ich allerdings bis zu 3-4 Minuten warten.


    Bei der 2.6k war das nicht so.
    Ich habe einen alternativen Kernel und 1541 geladen (ist davon aber unabhängig).


    Kann es sein, dass die 2.6k FW immer die Kernel geladen hat, auch, wenn ein Speicherresistentes Programm noch im Speicher war?
    Und die FW3 macht das nun nicht mehr und daher muss man ewig warten?


    Hab ich vielleicht eine Einstellung übersehen, da ich die Werkseinstellungen beim Update geladen hatte?


    Kann man das alte Verhalten wieder programmieren, bitte?
    Ist so zwar schön retro, aber so viel Zeit die beim rumspielen vergeht! :-)


    Danke und Gruß
    PhantombrainM

  • Das erste Mal, dass ich davon höre... ich meine, dass das bei 2.6k besser sein soll, ist mir völlig neu.


    Allerdings kenne ich das analoge Poblem vom C128: Wenn dort im Warmstartvektor Mist drin steht, so ist Ausschalten angesagt und tatsächlich etwas länger warten. Die RAMs vergessen die Daten scheinbar recht langsam.


    Beim C64 wäre es eigentlich auch so (dann aber bei $8000 die Modulkennung). Aber da mein C64 eine Hardwarekernalumschaltung hat, schalte ich dann auf Speeddos, drücke beim Reset Space und gebe anschließend "poke 32776,0" ein. Dann hat sich das erledigt. (Beim C128 im 64er Modus analog, da ich s-jiffydos drin habe).


    Für den C128 Modus kenne ich nichts vergleichbares, muss aber mal im ROM-Listing nachlesen, ob man irgendwas machen kann; aber da nervt es mich tierisch. Deswegen versteh' ich Dich sehr gut...



    Wenn der C64 nicht hochkommt: Das Menü der Ultimate kommt aber noch, oder?

  • Vielen Dank für deine Antwort.


    Das Ultimate Menü funktioniert dann noch und man kann auch PRGs sofort laden. Disk's gehen natürlich nicht mehr, da er nicht mehr ins "System" kommt.


    Ich gehe davon aus, dass die Ultimate zuvor 2.x immer den alternativen Kernel geladen hat und dann gebootet hat.
    Jetzt wartet er anscheinend auf den C64 und startet dann erst die Ultimate und lädt dann den alternativen Kernel?


    Vielleicht aus Kompatibilitätsgründen? Im Grunde kann man ja sagen, dass das Verhalten des C64 so korrekt ist.
    Vorher war es trotzdem besser! ;)


    Kann das übrigens auch reproduzieren. Gerade gegengetestet.


    mfg
    PhantombrainM

  • Ich tippe mal drauf, dass irgendetwas die CBM 80 Kennung im Modulbereich hinterlegt hat und deswegen der C64 nicht hoch kommt. Wenn ja, siehe weiter unten in der Antwort.


    Die Firmware 2.x war beim Laden schneller. Deswegen merkt man, dass die 3.0 erst den C64 Kernal anstartet, dann den gewünschten und einen Reset macht. Allerdings sollte eigentlich ein C64 Hänger nicht daraus resultieren, dass der eingebaute Kernal erst kurz gestartet wird.



    Wenn meien Ferndiagnose stimmt, dann hilft sehr wahrscheinlich folgender Trick: Ein Basic Programm


    10 poke 32776,0
    20 sys 64738


    auf der Ultimate ablegen. Wenn der C64 mal wieder ein residentes Programm hat, einfach jenes Programm laden (per Ultimate und DMA) und die Sache müsste sich erledigt haben.

  • Das klingt aber sehr spannend, das werde ich auf jeden Fall mal ausprobieren und dir berichten.
    Leider ist gestern auch mein Röhrenfernseher kaputt gegangen und Text ist jetzt so unscharf, dass ich kaum noch was erkennen kann.


    Mal schauen, ob ich das so noch prüfen kann, aber ich werde dir auf jeden Fall heute berichten!
    Zur Not kommt der Cevi halt an den 16:9 Fernseher, auch, wenn ich das eigentlich nicht ertragen kann.
    Aber besser, also ganz ohne :)

  • So trivial nicht, da auch der C128 zu bedenken ist. Steht aber noch auf meiner (Wunsch-) Liste, könnte also mit etwas Glück in einer zukünftigen neuen Version drin sein.


    Allerdings hatte ich letztes Jahr mit dem analogen Problem auf dem C128 einen dicken Misserfolg hingelegt. Ich verspreche also nichts...

  • Könnte man den Poke Befehl nicht einfach im Ultimate Menü unter "Hard Reboot" vorschicken?


    Dann lässt sich zwar der Cevi immer noch nicht direkt durch Power Cycle ein- und ausschalten aber über das Menü würde das dann gehen und es wäre einfach zu implementieren und auch keine Kompatibilität stören, oder?


    Das würde zudem besser für die Hardware sein, da man nicht mehr hardwareseitig neustarten muss.


    mfg
    PhantombrainM

  • Klingt einfach, ist es aber nicht. Während die Ultimate den C64 angehalen hat, sind die Signalleitungen so beschaltet, dass der Speicher im Ultimax-Modus ist. Da ist an der fraglichen Adresse kein RAM eingeblendet (und im überwiegenden Teil des Adressraums ebenfalls nicht).


    Und beim Tricksen mit den Signalleitungen habe ich dann den Effekt bekommen, dass der C128 beim Versuch dann immer gecrashed ist, während es auf einen C64 läuft. Ein C128 kann eben im C64, C128 oder im CP/M Modus sein... und per Bankswitching auch noch auf verschiedenen Banks stehen.