Hallo Besucher, der Thread wurde 85k mal aufgerufen und enthält 932 Antworten

letzter Beitrag von darkvision am

GEOS MegaPatch 64/128 als SourceCode verfügbar!

  • Forum64_Wolke\Software\Geos\System\Deutsch\GEOS64_V2.0_M&T_DE_uninstalliert.7z sowie GEOS128_V2.0_M&T_DE_uninstalliert.7z. Ist jeweils in der Zusatzdiskette enthalten, die nicht zum originalen Lieferumfang gehört, sondern von Werner stammt.

  • MakeBoot wird gesucht. Aber der Bildschirm bleibt weiß, d.h. das Programm wird gar nicht erst gestartet?

    Ja, so sieht es aus.

    Wenn GEOS.MP3 gestartet wird und die Abfrage mit dem Mauszeiger kommt, dann wird auch die RAMGröße angezeigt und danach die Startadresse/Blockgröße. Kannst Du mir sagen was da angezeigt wird?

    Kann ich nicht ganz genau sagen, aber auf jeden Fall stand da:


    GEORAM, 2048Kb, $00:0000



    Wenn Du ein anderes MP3 startest, kannst Du dann auf der Disk mal GEOS.MP3 ausführen? Die Dateien müssten ja alle auf der Disk sein. Funktioniert dann das "Upgrade" ?

    Ups, falsch gelesen :-( . Habe jetzt auf der Disk "nur" Geos128.MakeBoot nochmal per Hand gestartet. Dann läuft es.



    MountBBGRam ist im MSPI-Geos (M&T) auf der Wolke enthalten. Man kann damit nur M&T-Disketten für GeoRAM und kompatible anpassen. Umgekehrt gibt es meines Wissens nichts. Da ist auch das "richtige" MountBBGRam drauf. Die originale Version davon setzt Geos auf US....



    Als Bestätigung wäre es aber gut zu wissen ob das mit der Ultimate und 2Mb GEORAM funktioniert.

    Da komme ich leider frühestens morgen Abend zu ......


    Gruß
    Werner

  • Da komme ich leider frühestens morgen Abend zu ......

    Kein Problem... ich kann das jetzt hier zuverlässig reproduzieren. Mit 2Mb klappt die Installation, mit 16Mb crasht das an der von Dir angegebenen Stelle. Mehrmals jetzt getestet. Das ist aber etwas komplizierter da ich momentan keine Ahnung hab was da quer läuft.

  • Als Bestätigung wäre es aber gut zu wissen ob das mit der Ultimate und 2Mb GEORAM funktioniert.

    So, habe das jetzt mit der geoRAM der1541 UII+ durchprobiert...

    Kein Problem... ich kann das jetzt hier zuverlässig reproduzieren.

    GeoRAM auf 2 MB gestellt:
    Während der Installation wird mir angezeigt: DACC-Speicher Georam 2048 kB $00 :0000/$10
    Installation läuft durch. Kein Problem


    GeoRam auf 4 MB gestellt:
    Während der Installation wird mir angezeigt: DACC-Speicher Georam 2048 kB $00 :0000/$10
    Installation läuft durch. Kein Problem


    GeoRam auf 8 MB gestellt:
    Während der Installation wird mir angezeigt: DACC-Speicher Georam 2048 kB $00 :0000/$20
    Installation hängt, wie bei 16 MB beschrieben...
    Hoffe, das hilft ein wenig weiter.


    Gruß
    Werner

  • Ich glaube das Problem erkannt zu haben:
    MP3 installiert die Speicherbereiche im erweiterten RAM während dem Update mit den alten GEOS-StashRAM-Routinen da der neue Kernal noch nicht im System installiert ist.


    In meinem Fall ist die GEOS128r-Disk nicht in der Lage mit mehr als 4Mb umzugehen. Der FetchRAM-Treiber entspricht quasi dem Stand von MP-3.01/2003. Der MP3-Treiber konnte damals auch nicht mit mehr als 4Mb umgehen. Bis zu der Größe wird alles korrekt im erweiterten RAM abgelegt.


    Bei GeoRAM >4Mb muss man aber andere Bank-Größen verwenden (wurde ja vor Wochen hier auch diskutiert). D.h. über 4Mb legen die GEOS-2.0r-Routinen die Daten von GEOS.MP3 falsch im erweiterten Speicher ab. GEOS128-2.0r berechnet dann die Adresse in der GeoRAM falsch weil es fix mit 16Kb-Speicherbänken rechnet.


    Nachdem der MP3-Kernal installiert ist sind die neuen RAM-Treiber aktiv. Die nutzen dann bereits die richtigen Bankgrößen und greifen damit bei gleichen Speicher-Adressen/64K-Bank auf andere Bereiche zu wie zuvor GEOS128-2.0r. Das passt einfach nicht zusammen.


    Da ist klar das GEOS.MP3 beim laden des Hintergrundbildes bei GEOS.MakeBoot abstürzt: Das ist das erste mal das eine erweiterte Routine aus dem RAM geladen werden muss: GetBackScreen. Da wird dann irgendein Code eingelesen, aber nicht die BackScreen-Routine. Die hat GEOS128-2.0r an einer falschen Stelle abgelegt oder schlimmstenfalls mit anderem Code überschrieben.


    Eigentlich dürfte man GEOS128-2.0r nur mit soviel RAM starten wie von der GEOS-Version unterstützt wird. In meinem Fall nur 512Kb. Aber da bis 4Mb die Bankgröße gleich ist spielt das bis 4Mb keine Rolle.


    Für wie viel MB war denn MountBBGRAM ausgelegt?


    Eigentlich bleibt da jetzt nur speziell für GeoRAM den Code über die eigenen Routinen in den erweiterten Speicher zu schieben. Dann würde die Installation von einem GEOS funktionieren das eigentlich nicht mit 16Mb umgehen kann. Da muss ich erst mal schauen wie viel Platz da im Update-Tool frei ist. Den Treiber dann einzubinden ist dann das kleinere Problem. Der wurde ja im Zuge der Aufräumarbeiten vor kurzem modularisiert...


    Vorerst sollte man also zur Installation nur ein passendes System aus GEOS+GEORAM verwenden bzw. die Installation von GEOS 2.x mit max. 4Mb ausführen. Ist auch bei einer Installation von MP3 von 2003 der Fall. Ist also kein neuer Bug, wurde wohl bisher in so einer Kombi evtl. nur nicht getestet. Dürfte schon seit Beginn des 16Mb-Supports enthalten sein.

  • Für wie viel MB war denn MountBBGRAM ausgelegt?

    MountBBGRam stammt von Performance Peripherals. Es (AutoExec) dient eigentlich nur dazu, bei laufendem Geos (BerkeleySoftworks, M&T und MSPI) statt die Hardware CBM-REU die Hardware GeoRAM (und kompatible) zu erkennen. Größe zunächst egal ;-). Natürlich benötigt man auch das entsprechende Konfigurieren für die GeoRAM. Damit das läuft, muss "MountBBGRam" als erstes AutoExec noch vor dem Konfigurieren gespsichert sein.
    Es macht quasi aus einer Geos-Bootdisk von Berkeley/M&T/MSPI (original oder CMDs GeoMakeBoot) eine Bootdisk für GeoRAM. Dabei wird aber (bis auf Konfigurieren) nichts auf der Boot-Disk geändert.



    MP3 installiert die Speicherbereiche im erweiterten RAM während dem Update mit den alten GEOS-StashRAM-Routinen da der neue Kernal noch nicht im System installiert ist

    Eigentlich dürfte man GEOS128-2.0r nur mit soviel RAM starten wie von der GEOS-Version unterstützt wird. In meinem Fall nur 512Kb. Aber da bis 4Mb die Bankgröße gleich ist spielt das bis 4Mb keine Rolle.

    Und das funktioniert mit CBM-REU nur, weil die Blockgröße sich nicht ändert?
    Wenn ich aus dem normalen Geos V2 für CBM-REU (Berkeley Softworks/M&T/MSPI) heraus installiere habe ich doch auch nur 2 MB maximal.....


    Gruß
    Werner

  • Größe zunächst egal ;-). Natürlich benötigt man auch das entsprechende Konfigurieren für die GeoRAM.

    Soweit ich weiß, hat noch niemand mit MountBBGRAM von einem GeoRAM mehr als 4 MB benutzt. Daher wäre der einzige mögliche Beleg ein Disassembly des GeoRam-Zugriffs im MountBBGRan.
    Nachtrag: Oder halt damit auf mindestens 8 MB fehlerfrei zugreifen.

  • Hm ja. Falls meine Idee klappt, ist das nicht schwer: Breakpoint im Vice auf die GeoRAM-I/O-Adressen und den Bereich, wo man dann landet, im VICE ansehen.

  • Und das funktioniert mit CBM-REU nur, weil die Blockgröße sich nicht ändert?
    Wenn ich aus dem normalen Geos V2 für CBM-REU (Berkeley Softworks/M&T/MSPI) heraus installiere habe ich doch auch nur 2 MB maximal.....

    Genau, das ist eine Eigenart der GEORAM. Ich hab mal für mich zur Doku eine Skizze angelegt, siehe Screenshot. Falls da jemand eine andere Erklärung hat... bitte korrigieren:
    Links eine 4Mb GEORAM und wie GEOS2.0r hier die 16Kb-Bänke organisiert. Der rechte Block zeigt wie GEOS2.0r die Daten in einer 16Mb-GEORAM organisieren müsste. Wenn man Bank#0 anspricht kopiert GEOS2.0r hier trotzdem nur 16Kb Daten rein. Das die Bank 64Kb groß ist, davon weiß GEOS2.0r nichts. Die restlichen 48Kb bleiben unberücksichtigt.
    MP3 erwartet jetzt aber beim Zugriff auf Bank#0 64Kb an Daten, findet aber nur 16Kb. Der restliche Bereich enthält dann irgendwas => Absturz.


    Ich hab das aber heute morgen beim Frühstück in 5min angepasst, 8 neue Befehle und 2x4 Befehle geändert/Include-Dateien ergänzt. Da hat das assemblieren länger gedauert. Fazit: Installation läuft jetzt durch (zumindest hier...). Ich will das jetzt aber noch am 64er testen. Da hab ich zwar keine GeoRAM mit 16Mb, aber es sollte dann nicht schlechter werden.


    Bei REU/RL/SCPU ist das kein Problem, die haben immer nur 64Kb große Speicherbänke. Da geht es dann nur um die Anzahl.


    Ich ändere gerade noch etwas an den Laufwerkstreibern um das Problem mit dem fehlenden Disknamen zu beheben. Wird da aber ein paar Einschränkungen geben müssen.


    Danach gibts die (hoffentlich) nächste "stabile" Version :)

  • Links eine 4Mb GEORAM und wie GEOS2.0r hier die 16Kb-Bänke organisiert. Der rechte Block zeigt wie GEOS2.0r die Daten in einer 16Mb-GEORAM organisieren müsste. Wenn man Bank#0 anspricht kopiert GEOS2.0r hier trotzdem nur 16Kb Daten rein. Das die Bank 64Kb groß ist, davon weiß GEOS2.0r nichts. Die restlichen 48Kb bleiben unberücksichtigt.

    Dieses fehlerträchtige Block/Bank-Gedöns wird gedanklich viel handlicher, wenn man die beiden Zugriffsregister einfach als "Track" und "Sector" bezeichnet. In der Minimalgröße von 512 KiB sind die Registerbreiten so gewählt (6 Bits und 5 Bits), dass eine 1541-Disk ohne jede Umrechnung abgebildet werden kann. Man könnte fast meinen, die Entwickler hätten sich was dabei gedacht... :anonym

  • Falls Du allerdings im GeoRAM-Treiber noch einige Bytes (ich kann nicht sagen, wie viele genau) frei hast, ließe sich da was machen. Ähnliches habe ich bei der 1541 U2(+) nämlich auch gemacht, damit man Images einladen kann für die wichtigen Fälle 4 MB und kleiner (größere GeoRAM Images hatte zu den Zeitpunkt eh keiner, weil es ein solches GeoRAM vorher schlicht noch nicht gab).



    Edit: In den nachgfolgenden Details ist der Wurm drin, die Idee passt, aber die Details nicht:


    Statt zzxxxxxx yyvvvvvvvv nach $DFFF $DFFE zu schreibenm sortiert man die Bits etwas um: yyxxxxxx zzvvvvvvvv.



    Wenn man jetzt "nur" höchstens 4 MB nutzt, so ist zz=00 und somit findet vor und nach der Umsortierung, dass ein Zugriff auf RAM <= 4 MB dort landet, wo Geos 2.0 ihn auch hin schreiben würde.
    Auf der anderen Seite wird aber jede Speicherseite eindeutig wiedergefunden.


    Dummerweise darf man diese Umsortierung nur machen, wenn die REU 16 MB groß ist. Bei 8 MB muss man ein Biit weniger vertauschen: zyxxxxxx 0avvvvvvvv -> zaxxxxxx 0yvvvvvvvv. Argumentation ansonsten analog.

  • Dummerweise darf man diese Umsortierung nur machen, wenn die REU 16 MB groß ist. Bei 8 MB muss man ein Biit weniger vertauschen: zyxxxxxx 0avvvvvvvv -> zaxxxxxx 0yvvvvvvvv. Argumentation ansonsten analog.

    Dann muss man also für 8Mb was anpassen. Macht man das nicht kommt irgendwann der BugReport das es in VICE mit 8Mb nicht klappt...
    Ich glaub ich las das erst mal so. Das funktioniert ja nun und ist ja auch plausibel nachzuvollziehen.
    Ich wer das aber in die Liste der "KnownIssues" mit aufnehmen. Hinweis kann da nicht schaden.


    Dieses fehlerträchtige Block/Bank-Gedöns wird gedanklich viel handlicher

    Jedesmal wenn ich da was anpassen muss komme ich immer wieder durcheinander... Bankgröße, Pagesize, Register, 16/32/64Kb. Die Entwickler gehören meiner Meinung nach gesteinigt :bgdev (Scherz... man sollte Dankbar sein für jeden der etwas für die alten Kisten entwickelt/entwickelt hat...)
    Deshalb hab ich mir da jetzt diese Skizze angelegt. Evtl. hilft mir das beim nächsten mal. :huh:

  • Ups, da habe ich mich bei den Vertauschungen irgendwie vertan, wie ich gerade merke, als ich mir Essen machen will... Die Grundidee stimmt, die Details aber nicht.


    Ich bin gerade am Nachdenken, ob folgendes passt:


    zzyyyyxx wwvvvvuu -> yyyyxxww zzvvvvuu (zz = 0 für ≤ 4 MB)


    Edit: Ja, genau das ist die Transformation, die man braucht. Die Inverse davon mache ich nämlich inder U2(+)/U64.

  • Ich glaub ich las das erst mal so. Das funktioniert ja nun und ist ja auch plausibel nachzuvollziehen.
    Ich wer das aber in die Liste der "KnownIssues" mit aufnehmen. Hinweis kann da nicht schaden.

    Sehe ich auch so. Nur wegen der Installation das ganze langsamer zu machen lohnt sich nur sehr bedingt... Bei der U2(+)/U64 ist das was anderes, der FPGA simuliert eine Hardware, die das native ohne Zeitverlust macht (als Hardware kann man sich einfach vorstellen, man vertaucht bei der Verkabelung die Drähte; also geht das in Hardware zeitneutral).

  • HD Parallel 2.6 sec.
    HD Serial 6.4 sec.
    SD2IEC 6.4 sec.
    RamLink 1.4 sec.

    Mir liegt ein nicht eigenes Testergebnis vor, welches besagt: ARM2IEC Parallel (Dolphin DOS): Etwas über 2 sec.


    Womit sich bestätigt, dass der IEC Bus der Flaschenhals ist.


    Wie auch immer: Kein signifikanter Unterschied zwischen SD2IEC/ARM2IEC und CMD HD.

  • Könntest du in einer der nächsten Versionen die LW-Icons für TD mit anpassen??

    Die Icons kommen nicht von MegaPatch sondern vom TopDesk. Ich fürchte da kann ich nix machen. Liegt daran das TopDesk die neuen Laufwerkstypen nicht kennt und dann eben das 81-Symbol verwendet. :nixwiss:

  • Wie heißen die denn?

    In :RealDrvType ab $9f8e (4Bytes, nur in MP3, nicht GEOS 2.x) stehen für Laufwerk A,B,C,D folgende Werte: