GEOS unter Windows 8.1 im Fenster - geht

  • Nur mal so als kurze Erfolgsmeldung: ich bin gestern abend noch ein bisschen mit der Idee weiter gekommen, die ich mit Andreas' Hilfe beim Treffen angefangen habe: es klappt jetzt mit einer geänderten geosvd.dll auch die Anzeige von Geos auf dem Windows-Desktop, wenn die Farbtiefe von Windows auf 32-bit gestellt ist (was auf meinem Netbook mit Windows 8.1 die einzige Option ist).

    Im Moment noch auf 800x600, und mit einer ziemlich hohen CPU-Auslastung, weil im Moment das ganze Fenster ständig aktualisiert wird (und dabei noch jedes Mal die Bitmap von 16-bit auf 24-bit konvertiert wird), aber wenigstens sind jetzt alle Puzzleteile für gezielte Änderungen an der Grafikausgabe unter Windows vorhanden... und ein lauffähiges SDK (GDSK03 von Andreas) mit Swat habe ich jetzt zum ersten mal seit langer Zeit auch wieder.

  • Hallo Markus

    Das sind doch schöne Neuigkeiten. Es zeigt sich wieder einmal: Wo ein Wille ist, gibt es auch einen Weg.

    Natürlich sind wir mit Dir in der glücklichen Lage, eine Kompetenz mit Wissen aus der M$ Welt zu haben ;)

    Gruss
    Andreas

  • Falls es mal jemand von Euch ausprobieren will: ich habe an diesen Post die aktuelle Version der neuen geosvdd.dll angehängt. Die läuft bei mir mit dem Target aus dem GSDK 0.3 von Andreas und auch mit dem alten Nokia 9110 SDK, zumindest under Windows 8.1 mit 32-bit Farbtiefe im Videotreiber.

    Die Hauptänderung ist, dass die neue Version auch die Farbtiefe zwischen Geos und Windows umsetzen kann. Allerdings sollte theoretisch bei identischer Farbtiefe (beides 16-bit) ein schnellerer Modus gewählt werden, die die Bitmap einmal weniger umrechnet. Leider habe ich keinen Rechner hier, auf dem ich noch 16-bit-Videotreiber aktivieren kann, deshalb wäre ich dankbar, ob die DLL auch noch bei denen funktioniert, die die alte Version benutzt haben.

    Es sind noch ein paar andere Optimierungen enthalten, die das Neuzeichnen reduzieren sollten - dadurch dürfte die CPU-Last etwas geringer ausfallen, vor allem, wenn Geos gerade nichts zeichnet.

    Für ein Update sollte es reichen, einfach ein Backup der alten Version (vermutlich in c:\windows\system32) zu machen und sie mit der neuen Version zu überschreiben.

    Viel Vergnügen.

    Wenn ich jetzt noch eine gute Lösung für TCP/IP hätte, damit ich WebMagick mal wieder im aktuellen WWW ausprobieren könnte... :)

  • Hallo Marcus!
    ich habe jetzt mal deine neue geosvdd.dll unter Windows 7 getestet.

    Ich habe jetzt einfach mal 3 Zeiten mit der Uhr gemessen.
    1). Die Zeit vom Doppelklick auf das Geos-Start-Icon, bis das weiße Hinweisfenster kommt, in dem man auf "Ignorieren" klicken muss.
    2). Die Zeit von dem Klick auf den Ignorieren-Button, bis Geos komplett gestartet ist.
    3). Doppelklick auf eine von mir erstellte Tabellenkalkulation.

    Alter Treiber:
    1). -> 4 Sekunden
    2). -> 10 Sekunden
    3). -> 6 Sekunden

    Neuer Treiber
    1). -> 2 Sekunden
    2). -> 3 Sekunden
    3). -> 2 Sekunden

    Unter Windows hatte ich 1024x600 True Color (32 Bit) eingestellt.
    Für einen zweiten Test habe ich dann unter Windows 1024x600 True Color (16 Bit) eingestellt. (was 65.000 Farben entsprechen müsste)
    Unterschiede in der Geschwindigkeit konnte ich zwischen beiden Windows-treibern nicht feststellen.
    Der Treiber lief unter beiden oben genannten Einstellungen.

    Unter Geos habe ich folgende Einstellungen

    Treiber: Vesa Compatible Super VGA: 800x600 64k-color

    In der Geos.ini folgende Einstellungen (da der Asus EeePC nur maximal 1024x600 auf dem 10 Zoll Display darstellen kann).
    Aber der Windows-Treiber zur Zeit ja bekanntlich nur ein Fenster von 800 x 600 öffnet.

    [ui]
    xScreenSize = 800
    yScreenSize = 570
    xFieldSize = 800
    yFieldSize = 570

    Gruß Frank

    Geos + Lenovo Ideapad 5 = Aufbruch in eine neue Galaxie

  • Wer nicht weiß, wovon Marcus und ich reden, hier eine Erläuterung bzw. eine Zusammenfassung aus einem Mailverkehr zwischen Marcus und mir.

    Vorwort:
    Vor einiger Zeit hatte Uli? einen GDI-Treiber modifiziert, der es erlaubte Geos in einem Fenster unter Windows 7 laufen zu lassen.
    Ein Wermutstropfen dabei ist, dass das Windows-Fenster nur eine Größe von 800 x 600 Pixeln hat.
    Weitere Informationen könnt ihr dieser Seite entnehmen.

    Marcus hat nun die zugehörige geosvd.dll dahingehend modifiziert, so dass Geos nun auch unter Windows 8 laufen sollte, sowie auch unter Windows-Grafikkarteneinstellungen mit 65000 Farben. Auch ist dieser Treiber schneller beim neuzeichnen, was sich bei meinem kleinen Asus EeePC sehr stark bemerkbar macht.

    Der nächste Schritt wäre dann den Treiber so zu modifizieren, dass man Geos im Fenster auch im Vollbildmodus betreiben kann.

    Gruß Frank

    Geos + Lenovo Ideapad 5 = Aufbruch in eine neue Galaxie

  • Hi Frank,

    danke für den Test!

    Unter Windows hatte ich 1024x600 True Color (32 Bit) eingestellt.
    Für einen zweiten Test habe ich dann unter Windows 1024x600 True Color
    (16 Bit) eingestellt. (was 65.000 Farben entsprechen müsste). Unterschiede in der Geschwindigkeit konnte ich zwischen beiden Windows-treibern nicht feststellen.
    Der Treiber lief unter beiden oben genannten Einstellungen.

    Das ist ja fast wie ich gehofft hatte. Das einzige, was mich etwas wundert, ist, dass der alte Treiber bei Dir auch schon mit 32-bit Farben läuft. Da gab es bei mir immer nur ein graues Fenster. Ob es da sogar verschiedene "alte" Treiber gibt, wo schon mal jemand (Falk?) sich daran gemacht hat, das Problem mit der Farbtiefe zu beseitigen? Wo stammt denn Deine geosvdd.dll her?

    In der Geos.ini folgende Einstellungen (da der Asus EeePC nur maximal 1024x600 auf dem 10 Zoll Display darstellen kann).
    Aber der Windows-Treiber zur Zeit ja bekanntlich nur ein Fenster von 800 x 600 öffnet.

    Das habe ich bei mir ganz genau so gemacht, da mein MSI Wind U100 das gleiche Display verwendet. Aber mit dem Sourcecode des Treibers ist Vollbild bzw. Darstellung ohne Fenster-Rand etwas, was nicht allzu schwierig sein dürfte. Mal sehen, ob ich da was hinbekomme...

    ciao marcus

  • Hallo Marcus!

    Du schriebst:
    Das ist ja fast wie ich gehofft hatte. Das einzige, was mich etwas wundert, ist, dass der alte Treiber bei Dir auch schon mit 32-bit Farben läuft. Da gab es bei mir immer nur ein graues Fenster. Ob es da sogar verschiedene "alte" Treiber gibt, wo schon mal jemand (Falk?) sich daran gemacht hat, das Problem mit der Farbtiefe zu beseitigen? Wo stammt denn Deine geosvdd.dll her?

    Die geosvdd.dll habe ich von Uli, aber ich habe jetzt bei meinen Recherchen die Antwort gefunden...

    Antwort:
    Das ist nicht ganz so, wie du denkst.
    Unter Windows war der 32-Bit Frabtreiber gestartet - das ist richtig.
    Aber nachdem ich mit einem Doppelklick die Verknüpfung auf die GEOS.BAT gestartet habe - wird ganz kurz der komplette Bildschirm schwarz. Danach kommt ein schwarzes Fenster auf dem Windows Desktop, und ein kleineres weißes Fenster.
    Am Hintergrund des noch sichtbaren Windows-Desktop-Hintergrund kann ich erkennen, dass der Windows-Treiber auf 16 Bit Farbtiefe umgeschaltet hat.

    Der "Schuldige" ist in meinem Fall die GEOS.BAT (muß auch von Uli sein).

    Inhalt der GEOS.BAT
    @echo off
    setres b16
    loader32.exe
    setres b32

    Ich interpretiere die Einträge so, daß erst auf den 16 Bit Modus umgeschaltet wird (was der Windows Treiber anscheinend mitmacht),
    anschließend die Loader32.exe gestartet wird, und dann innerhalb von Geos wieder auf 32 Bit gewechselt wird.

    (Nachtrag: ...und eine SetRes.exe habe ich auch im Geosverzeichnis nun gefunden)

    In dem schon erwähnten schwarzen Fenster ist zu lesen...
    Attempting change from: h1024 v600 b32 f60 p0
    To: h1024 v600 b16 f60
    The settings change was succesful

    In dem weißen Fenster ist zu lesen...
    GEOS
    This system does not support fullscreen mode. Choose "Close" to terminate the
    application"

    In diesem Fenster gibt es noch zwei Buttons, "Schließen" und "ignorieren".

    ...das heißt, daß ich meinen Test unter dem 32-Bit Treiber von Windows wiederholen muß.

    Gruß Frank

    Geos + Lenovo Ideapad 5 = Aufbruch in eine neue Galaxie

    Einmal editiert, zuletzt von Frank9652 (6. Februar 2014 um 21:30)

  • Hallo Marcus!

    Du schriebst...
    Das einzige, was mich etwas
    wundert, ist, dass der alte Treiber bei Dir auch schon mit 32-bit Farben
    läuft. Da gab es bei mir immer nur ein graues Fenster.

    Antwort:
    Ich habe jetzt noch einmal den alten dll-Treiber installiert und die Loader32.exe direkt (unter dem 32-Bit Windowstreiber) gestartet.
    Als Ergebnis bekomme ich auch nur das große graue Fenster wie von dir beschrieben.
    Dann habe ich deinen neuen dll-Treiber wieder installiert, und wieder die Loader32.exe direkt (unter dem 32-Bit Windowstreiber) gestartet.
    Nun startet Geos normal. Ich habe dann auch gleich nochmal die Zeiten gemessen.

    Neuer Treiber

    1). -> 1 Sekunden

    2). -> 2,5 Sekunden

    3). -> 1,5 Sekunden

    Ergebnis:
    Mit deinem neuen Treiber kann man den Umweg über die Geos.bat und die SetRes.exe sparen (wußte ich vorher auch nicht).
    Und dadurch hat man nochmal einen kleinen (kaum messbaren) Zeitgewinn.

    Ich habe jetzt noch mal in der LIESMICH.TXT von dem GDI-Paket nachgelesen.
    Da steht nichts von der Geos.bat drin, deshalb gehe ich davon aus, dass sie aus der Feder von Uli stammt.

    Gruß Frank

    Geos + Lenovo Ideapad 5 = Aufbruch in eine neue Galaxie

    Einmal editiert, zuletzt von Frank9652 (6. Februar 2014 um 21:40)

  • Hallo Andreas!

    Habe jetzt mal nachgeschaut. Ist die selbe Loader.exe die auch bei dem GDI-Treiberpaket dabei ist.
    Kann sein, dass ich die bei der Installation damals umbenannt habe, weil ich die Loader.exe von Geos nicht löschen wollte (wahrscheinlich weil ich mir nicht sicher war, ob es Veränderungen zwischen der Geos-Version und der GDI-Version gab).

    Habe beide verglichen.
    Bytezahl ist die selbe 8208 Byte (12288 Byte Größe auf Datenträger)
    Und Erstellungsdatum bzw. zuletzt geändert 8.8.2000 / 10:17:00 ist das selbe.

    Gruß Frank

    Geos + Lenovo Ideapad 5 = Aufbruch in eine neue Galaxie

  • Hi Frank,

    Inhalt der GEOS.BAT
    @echo off
    setres b16
    loader32.exe
    setres b32

    Ach ja - die "setres" habe ich komplett vergessen. Die gab es bei mir am Anfang auch (aus Andreas' SDK), allerdings hat sie unter Windows 8.1 mangels 16-bit-Modus des Treibers nichts sinnvolles hinbekommen.

    So passt jetzt alles zusammen, würde ich sagen.

    Dann kann ich mir bei Gelegenheit ja mal die Vollbild-Frage vornehmen...

    ciao marcus

  • Hallo Leute!

    Wenn jemand Geos unter Windows 8.1 zum laufen bekommen hat, dann sage er mir bitte wie er das gemacht hat.
    Unter Windows 7 hatte es ja bei mir geklappt.
    Ich hatte meine Geos-Installation 1:1 von Windows 7 nach Windows 8.1 kopiert. - Das liegt bei mir direkt unter C:/
    Dann bin ich nach der Anleitung (LIESMICH) gegangen, die bei dem GDI-Treiberpaket auf der Infobase dabei ist.
    Die Geoseinstellungen und Treiberinstallation unter Geos habe ich übersprungen, weil die ja schon in der fertigen Installation gemacht waren.

    Unter Windows 8.1 konnte ich weder die erwähnte CONFIG.NT noch eine CONFIG.SYS finden, um die erwähnten Einstellungen zu machen.
    Die Geosvdd.dll habe ich nach C:\Windows\System32 kopiert, und dabei Marcus neue Version genommen.

    Beim Doppelklick auf die Loader32.exe kam die Fehlermeldung:
    "Diese App kann auf dem PC nicht ausgeführt werden.
    Wenden Sie sich an den Softwareherausgeber, um eine geeignete Version für Ihren PC zu finden."

    Gruß Frank

    Geos + Lenovo Ideapad 5 = Aufbruch in eine neue Galaxie

  • Hi Frank,

    Beim Doppelklick auf die Loader32.exe kam die Fehlermeldung:
    "Diese App kann auf dem PC nicht ausgeführt werden.
    Wenden Sie sich an den Softwareherausgeber, um eine geeignete Version für Ihren PC zu finden."

    Das kann tatsächlich am 64-bit-Windows liegen, das soweit ich weiss keine Unterstützung für 16-bit-DOS-Anwendungen mehr enthält. Auf meinem Netbook läuft noch die 32-bit-Version von Windows 8.1, während mein Arbeitslaptop mit Windows 7 64-bit auch schon keine DOS-Programme mehr benutzen kann.

    Es gibt etwas von Microsoft (separater Download), das sich XP Modus nennt, und im Prinzip eine virtuelle Maschine für ein Windows XP im Fenster zur Verfügung stellt. Bin aber nicht ganz sicher, ob das auf jedem 8.1 läuft, oder nur bei den "Professional"-Versionen. Außerdem wäre das dann schon eine "Emulation in der Emulation". :)

    Aber gehen könnte es vielleicht... sonst bliebe doch noch der Weg über DOSBox.

    ciao marcus

  • Hier ist noch ein Update, das jetzt auch mal Vollbildmodus ausprobiert - er wird dann aktiviert, wenn die Höhe des Bildschirms unter Windows genau der Höhe des Bildpuffers unter Geos entspricht. Bisher habe ich das nur unter 800x600 (Geos) auf 1024x600 (Windows) testen können, da ich die anderen Auflösungen für den GDI-Treiber auf meinem Netbook in Geos nicht aktiviert bekomme.

    Viel Spaß...

    ciao marcus

  • Hallo Marcus,

    das klingt ja echt super. Hab leider gerade nicht den Kopf frei zu testen, aber das kommt bestimmt...

    @Frank: Das liegt ganz sicher am 64-Bit Windows. Ich habe mir für meinen Laptop extra ein Win7/32 Bit zugelegt, damit mein Compilertools laufen. Leider verhindert mein Grafikkartentreiber das Aufrufen des Vollbildmodus für DOS (sprich für die Loader.exe), so dass die GEOS-Version mit der geosvdd.dll trotzdem nicht nativ auf dem Laptop läuft
    Mit dem XP-Modus habe ich eher schlechte Erfahrungen gemacht, auch mit Windows Virtual PC. Was funktioniert ist bei mir VirtualBox, in das ich ein XP installiert habe. Aber das hängt sicher alles von der Hardware ab ;(.

    Gruß
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.