Hallo Besucher, der Thread wurde 11k mal aufgerufen und enthält 41 Antworten

letzter Beitrag von mgreima am

EasyFlash und der C128

  • Bei Modulen die Für den C128 geschrieben sind, geht das auch so, wenn sie Entsprechend geschrieben sind. C64er Modulen, im C128 Modus geht nicht. Um C64 Module, im C128 Modus laufen zu lassen, muß man die Leitungen "Game und Exrom" durchtrennen und dann auch noch die Komplette Modul-Rom-Software, Vollständig umschreiben. Ich hab bis jetzt noch kein Modul gesehen, das diese Anforderungen erfüllt.

  • Ehrlich gesagt, bin ich mir nicht sicher, ob das EasyFlash am C128 überhaupt funktioniert.
    Wenn es bereits mit Daten gefüllt ist, vermutlich schon, aber Beschreiben dürfte problematisch sein.
    Es wird auch ausdrücklich als "C64" cartridge verkauft und angepriesen...

  • Nö, EF1 geht soviel ich weiss nur am C64. Man könnte zwar Exrom und Game per Software abschalten, aber die Firmware unterstützt keine 128er Module und die Hardware womöglich auch nicht.


    Es ist schon fraglich ob 64 Module im 64 Modus gehen. Das Timing vom 128er ist ziemlich besc..., - äh eigenartig!

  • Das EasyFlash läuft auf dem C128 im C64-Modus. Auch das Flashen funktioniert. Schließlich haben wir extra für den C128 Schaltungsänderungen gemacht.


    Natürlich kann man (wie immer) nicht garantieren, dass es auf jedem C128 geht, aber ich hab bis jetzt noch nicht von Problemen gehört. Vielleicht kann sich noch ein C128-Benutzer dazu äußern.


    Zum C128-Modus kann ich gar nichts sagen, weil ich den nie benutze. Wenn man aber den Boot-Schalter ausschaltet, Sind GAME und EXROM high. Ob man daraus was für den C128-Modus anstellen kann, weiß ich nicht. Evtl. mit gepatchter Software.

  • Easyflash lässt sich auch im C128-Modus verwenden:


    Aufgefallen war mir dies, als ich mein easyflash über den boot-switch "ausgeschaltet" habe und den C128 gebootet hatte. Danach konnte ich mir im Monitor in Bank 8 den Inhalt der lauffähigen C64-cartridge anschauen. (M 88000).


    Dann habe ich auf die Schnelle die Signatur der Cartridge angepasst und siehe da, der Einsprung wird im C128-Modus gefunden und beim Booten aufgerufen.


    Die ersten Bytes ab $8000:

    Code
    1. 4C 0A 80 4C 0A 80 11 43 42 4D 00


    Der Aufruf erfolgt ab Adresse $800A.


    Genauere Details folgen demnächst.


    Gruß Dirk

  • Also das C128-Diagnose-Modul läuft auf dem easyflash. Einfach das Image in Low-Rom brennen und den Boot-switch nach rechts. Dann startet der Test.


    C128-Diagnose-Modul


    Infos zu dem Dongle habe ich noch nicht gefunden.


    Am Basic 8 bin ich gerade dran, das muss umgeschrieben werden, da es nur vom internal function Rom aus läuft.


    c64doc: Kannst Du den thread wieder aufmachen?


    Gruß Dirk

  • Meine Güte! Du entdeckst ja immer neue Geheimnisse ;)
    Das muss ich unbedingt auch mal ausprobieren. Habe ich das jetzt richtig verstanden, dass man nur das unterste ROM im C128-Mode nutzen kann? Oder kann man da doch irgendwie switchen?


    Basic 8 und Double Ass wären meine Kandidaten für eine Modulversion.


    Gruß WTE

  • Habe ich das jetzt richtig verstanden, dass man nur das unterste ROM im C128-Mode nutzen kann?


    Ich denke, man kann von beiden ROMs des easyflash jeweils 8 KB in die RAM-Bank 8 des C128 einblenden. Die kompletten 32 KB werden wohl nicht auf einmal gehen?? Aber 16 KB auf einmal müssten gehen.


    Hier habe ich die Hoffnung, dass die meisten (viele waren es ja nicht) Module die 32 KB garnicht brauchen, sondern nur aus Bequemlichkeit verwendet wurden und eine Menge "Luft" enthalten und so vielleicht mit weniger ROM auskommen können.


    Außerdem werden die ROMs des easyflash am C128 im in Bank 8 (external function ROM) eingeblendet.


    Nicht alle ROMs laufen aus dem external ROM. Hier ein Beispiel von BASIC 8, wo nach dem Booten ein Programm vom internal ROM (Bank 4) ins C128-Ram nach Bank 0 kopiert wird:

    Code
    1. Original:
    2. 48020 SEI
    3. 48021 LDA #$17 ;internal function rom einblenden
    4. 48023 STA $FF00
    5. Neu für easyflash:
    6. 48020 SEI
    7. 48021 LDA #$2B ;external function rom einblenden
    8. 48023 STA $FF00


    Viel wichtiger:

    Auf jeden Fall kann man das easyflash am C128 komplett für eigene Zwecke nutzen:
    - Bibliothek für Routinen (nützlich für Compiler)
    - Speicher für Laufzeitdaten (Grafiken, Texte, DBs, ...)
    - Zwischenspeicher allgemein


    Gruß Dirk

  • Also das C128-Diagnose-Modul läuft auf dem easyflash. Einfach das Image in Low-Rom brennen


    Habe heute mein Easyflash bekommen und möchte nun das C128-Diagnose-Modul dort "brennen". Laut EasyProg Doku werden nur *.crt images supported. Ist C128diag.bin bereits im crt-Format oder muß ich es irgendwie konvertieren? DCM mag das Format jedenfalls nicht: "Can't load cart. It's probably not an easyflash cart".



    Aufgefallen war mir dies, als ich mein easyflash über den boot-switch "ausgeschaltet" habe und den C128 gebootet hatte. Danach konnte ich mir im Monitor in Bank 8 den Inhalt der lauffähigen C64-cartridge anschauen. (M 88000).


    Dann habe ich auf die Schnelle die Signatur der Cartridge angepasst und siehe da, der Einsprung wird im C128-Modus gefunden und beim Booten aufgerufen.


    Wie hast du die die Signatur der Cartridge angepasst? Via C128 Monitor? Oder Image File geändert und neu "gebrannt"?



    Genauere Details folgen demnächst.


    Die genauen Details würden mich schon interessieren.

  • Ich habe das BIN-File des Diagnose-Modul (kein CRT) direkt in den Slot 0 gebrannt. Den Schalter nach rechts (damit der C128 nicht direkt in den C64-Modus geht) und den Rechner neu gestartet. Dananch wird sofort das Diagnose-Modul aufgerufen (die Ausgaben erfolgen auf dem 40-Zeichen Modus, im VDC wird nur der Speicher mit Bit-Mustern gefüllt). Ob ich beim Starten des Moduls die CONTROL-Taste drücken musste, kann ich dir jetzt auf Anhieb nicht mehr sagen: Manche Module werden erst am C128 aktiv, wenn man beim Booten die CONTROL-Taste drückt.


    Die Signatur habe ich mit einem Hex-Monitor auf die Schnelle angepasst. Wie im Post 10 beschrieben, springt der C128 über einen JMP (JSR?) direkt zur Adresse 800A. Die Null dort war nur zum Testen (BRK). Auch hier werde ich den Boot-Vorgang demnächst noch einmal ganz genau beschreiben, weil die Infos die man dazu findet, fast Alle grober Unsinn und widersprüchlich sind.


    Derzeit bin ich noch mit meinem Image-Viewer beschäftigt, in ein paar Tagen werde ich mich dann wieder dem Easyflash widmen. Dann folgen genauere Infos. Die Idee: Oft benötigte Daten direkt vom Easyflash laden, ohne über ein externes Speichermedium gehen zu müssen.


    Gruß Dirk

  • Ich habe das BIN-File des Diagnose-Modul (kein CRT) direkt in den Slot 0 gebrannt.


    Dumme Frage, wie macht man das? Geht das mit EasyProg? Und wenn ja mit welchen Spezialoptionen?



    Die Signatur habe ich mit einem Hex-Monitor auf die Schnelle angepasst.


    Im C128DIAG.BIN File?


    Sorry - ich habe 0 Erfahrung mit EasyFlash

  • Dirk: Habe meine Fragen selber beantworten können. :)


    Eine Frage habe ich aber noch ;)



    Was genau hast Du da geändert außer der Einsprungadresse $800A ?

  • Was genau hast Du da geändert außer der Einsprungadresse $800A ?


    Ich hatte vorher ein ROM für den C64 getestet und dann gedacht: Eigentlich müsste das auch am C128 gehen.
    Da man das Easyflash auch flashen kann, wenn mit dem Schalter die Modulfunktion abgeschaltet wird, ist das Modul nicht abgeschaltet, sondern nur die /GAME- und /EXROM-Leitungen bleiben unangetastet: Damit versucht der C64 nicht das Modul zu starten, aber der C128 ...


    Also habe ich in dem C64-Rom die ersten Bytes so angepasst, dass der C128 dies als gültiges Modul akzeptiert und gesehen, dass er tatsächlich den Einsprung gemacht hat. Der finale Test war dann das echte C128-Diagnose-Rom (8KiB), damit hat es dann direkt funktioniert.


    Gruß Dirk


  • Also habe ich in dem C64-Rom die ersten Bytes so angepasst, dass der C128 dies als gültiges Modul akzeptiert und gesehen,


    Das Du die ersten Bytes angepasst hast war mir schon klar. Ich wollte es schon etwas genauer wissen. ;)


    Code
    1. 4C 0A 80 4C 0A 80 11 43 42 4D 00


    Wenn ich mit der Orginalquelle vergleiche hast Du 2 Bytes geändert. Byte 7 von 01 auf 11 und Byte 11 von 78 auf 00. Würde mich schon interessieren welche Bedeutung diese Bytes haben. Ist Byte 11 nicht der erste Code auf Adresse 800A? SEI neutralisieren?