Posts by Rainer

    Das klingt so, als müsstest du die GenValueClass überscheiben und MSG_META_COPY und MSG_META_PASTE (Bezeichnungen und alles folgende aus dem Kopf) so implementieren, dass sie das machen, was du willst z.B den angezeigten Text oder alternativ den Wert ins Clipboard kopieren bzw von dort laden. Außerdem musst du (wahrscheinlich) das GenValue-Objekt targetable (glaube ich) setzen, damit das Objekt Befehle vom EditControl annehmen kann. Da gibt es irgendwo einen Abschnitt in der Doku, wie man mit dem Clipboard resp. mit dem EditControl arbeitet.

    Das wäre so meine Denkrichtung / mein Plan. Strg-C und Strg-V gehen ans EditControl, wenn du eins hast.

    Hier mal eine mögliche Quelle:
    * Quelle: Clipsamp-Application, Zeile 399ff
    * Siehe auch: Concepts 7, "The Clipboard"

    Für Drag&Drop gibt es noch mal spezielle Messages mit _QUICK_TRANSFER im Namen.

    Ich hab das meiste davon schon mal irgendwann gemacht (z.B. außer GenValues mit dem Clipboard arbeiten zu lassen). Vielleicht reden wir per PM und ich grabe mich dann konkret durch meinen Code.

    LG
    Rainer

    Bitte bedenke dabei auch, ein Link wird nicht unbedingt hilfreich für jene sein, welche, wie schon erwähnt, FreeGeos unter nativem DOS betreiben und keinen Internetzugang mit besagten Systemen besitzen.

    Ein Link in einer Textdatei ist sowieso nur nützlich, wenn man ihn manuell in den Browser kopiert. Und die Tatsache, dass es Leute gibt, die keinen Browser-Zugang im Kontext mit GEOS haben, ist m.E. kein Grund der überwiegenden Mehrheit die Quelle der Lizenzvereinbarung vorzuenthalten :)
    Außerdem: irgendwo müssen sie GEOS ja her haben. 8o

    Rainer

    Nach meiner Meinung muss die version.txt unbedingt angepasst und übersetzt werden. Ich hatte das schon mal am Wickel, aber aus Gründen, die ich jetzt nicht mehr weiß, wollte Falk da noch nicht ran. Es gibt auch noch relativ viele Referenzen auf Breadbox in den Geoden (z.B. in den CR-Notes), die m.E. auch raus müssten.

    Prinzipiell trifft das auch auf die Readme.txt zu. Wenn ein deutsche GEOS, dann richtig. Hier müsste man aber entscheiden, ob man "nur" ein Kapitel zu DosBox unter Win 10+ nachrüstet (und evt das Kapitel zu Linux updatet) oder die ganze Datei aus heutiger Sicht durchforstet und updatet. Auch wenn ich sie für mich selbst nicht mehr für zeitgemäß halte, würde ich sie doch nicht entfernen. a) aus historischen Gründen und b) gibt es ja doch eine ganze Menge Leute, die GEOS wirklich unter alter Hardware und echtem DOS / alten Systemen einsetzten wollen.

    Rainer

    Hallo,

    hier mal etwas aus der Rubrik "ist ja erstaunlich". Ich wollte den Betrag einer Differenz ermitteln und hatte das zuerst mit if's gemacht. Dann habe ich dieses Macro verwendet

    Code
    #define diff(a, b) ( (a>b) ? (a-b) : (b-a) )

    und mich gewundert, dass es plötzlich langsamer war. Letztlich läuft folgende Variante am schnellsten (ca. Faktor 1,4 bis 1,5) d muss natürlich eine integer-Variable sein

    Code
    #define diff2(d, a, b ) \
    	d = (a) - (b); \
    	if ( d < 0 ) d = -d;

    Wenn man das dreimal auf jedes Pixel eines Bildes anwendet, kommt da eine merkliche Zeitersparnis zusammen.

    LG
    Rainer

    Ich habe auch mal ausprobiert ein paar Formel mit Matrix, Integral und Schnickschnack in GEOS zu setzten. Das ist SEHR mühsam, weil man den Text ja über mehrere Zeilen verteilen muss und ggf. Tabs für eine exakte Ausrichtung (Matrix) braucht. Praktische Relevanz der ganzen Thematik ist für mich da eher fraglich.

    So habe ich es aber gemacht, wen ich mal ne Formel innerhalb einer Zeile brauchte. Mit GeoDraw erstellte Formeln (das ist etwas weniger aufwändig) werden eben nicht zeilenmittig angezeigt. Deswegen steht ein Formeleditor schon seit ewigen Zeiten auf meiner Wunschliste ...

    PS: warum verwendet GEOS6 in der GEOS.INI eigentlich dezimale Werte für das Font-ID-Mapping, wo die Konstanten im Code doch im hexadezimal (FID_PS_<name>) definiert werden? Die Umrechnerei ist doch nur fehleranfällig.

    Wahrscheinlich ist es so: Das muss ja nur einmal gemacht werden, beim Erstellen der Mapping-Tabelle. Es gibt eine GEOS Funktion InitFilereadInteger(), die in der GEOS.INI eine dezimale Zahl erwartet, keine Hex-Zahlen. Hex-Zahlen würden also mehr Aufwand machen - Zeit, die der Treiber nicht hat.

    dann ist SymbolPS keine 08/15-Symbolschrift, sondern die PostScript-Standard-Symbolschrift, also quasi selbst ein historischer Standard.

    Ich bin bisher davon ausgegangen, dass die Schrift eingebettet wird. Dann wäre es wurscht. Aber nix genaues weiß ich nicht.


    Rainer

    Das heißt, dieser Font wird nicht auf den Drucker downgeloaded, weil er dort bereits im PS-ROM vorliegt.

    Gäbe es dann nicht prinzipiell Probleme, wenn ein Zeichen in einem speziellen Symbol-Font (z.B. Windows) auf einer andere Stelle liegt, als in einem anderen (z.B. GEOS)? Also genau das Problem, was wir jetzt hatten?

    Rainer

    because you couldt connect a MIDI-Device at Joystickport.

    OK, I may be wrong, but I think, then you are not using the SoundBlaster hardware, you are using the MIDI hardware. But the MIDI device is passed an instrument number, not an instrument descrition structure. We need another driver for that.

    The sound blaster driver tries to emulate the MIDI instruments by setting up a (hopefully good) instrument description structure (11 bytes) and passes it to the SB hardware. That is, what I have done.

    Rainer

    Note, we don't talking about note length, frequency and so on.

    Ich stelle jetzt mal ne nur halb ernste gemeinte Frage: Was machen wir mir den leere Zeilen? Kann man die gewinnbringend nutzen und wenn ja, wie? Oder ist das Aufwand/Nutzen Verhältnis einfach nicht angemessen?

    Rainer

    Maybe, we can enjoy the "original Sound Blaster-Instrunent-Sounds" and compare it with the Results of Rainers Hard work on the SB-Driver.

    I assume whis will "only" compare the hardware OPL chip sound with the simulated sounds of the DosBox/DosEmu emulator. But that is a great thing! I' very interested in!
    Please correct me, if I'm wrong, but the sound blaster has no "original build in sounds". It has the OPL chips, which are programmed by the software - in our case the GEOS sound blaster driver.

    Rainer

    nschu Sehr cool! Allerdings sind die Zeichen in den letzten drei Zeilen noch eine Position zu weit rechts. Ursache ist das als Punkt dargestellte Zeichen auf Position 0xCA. Dort gehört das auf der Seite liegende U mit dem Unterstrich hin, das jetzt rechts davon ist. Dann rutschen die anderen Zeichen (Hoffentlich) nach.

    Ich halte die Kompatibilität der Zeichensätze zu älteren Dokumenten für extrem wichtig. Deswegen bin ich dir wirklich dankbar Nico, dass du dich da so reinhängst! Ich würde es echt blöd finden, wenn ich mir die Arbeit gemacht hätte, eine Formel mit dem Symbol-Font zusetzen und dann meinen Schülern sagen müsste (nur als symbolischen Beispiel) "Stellt euch vor, diese Blume hier ist jetzt ein Pfeil nach rechts".

    Unter URW Symbol gehören immer 3 nebeneinander stehende Zeichen zusammen (hier in einem GeoWrite Dokument). Der scheinbar zusätzliche Strich auf 0xEF dient dazu, die geschweiften Klammern zu verlängern.

    Die Datei dazu hängt dran.

    LG
    Rainer

    Manchmal gibt es Compiler-Fallen, die echt böse sind. OK, es ist alles irgendwo dokumentiert, aber wer hat schon die komplette Doku im Kopf?

    WWFixed ist ein cooler Datentyp, der das Berechnen mit Integerwerten (-32000 .. +32000) mit Nachkommastellen zulässt. Ich habe mich gewundert (soll heißen: stundenlang gesucht), dass

    Code
    if (sVal > MakeWWFixed(360) ) ..

    für negative sVal Werte (Datentyp sdword, - dword mit Vorzeichen) immer TRUE liefert und das Programm entsprechenden Unfug macht. Ist aber ganz logisch, weil MakeWWFixed() ein dword liefert. Das kennt keine negativen Zahlen und negative sVal-Werte haben das Bit 15 gesetzt, sind also immer größer als 360*65536 ....

    Abhilfe:

    Code
    if (wwfVal > (sdword)MakeWWFixed(360) ) ..


    Außerdem liefern die Anweisungen

    Code
    x = x +  12;
    x = x + 012;

    verschiedene Werte <X. Im zweiten Fall wird die Zahl nämlich als Oktal-Zahl aufgefasst - 12okt ist aber 14dez. Von wegen, führende Nullen kann man beliebig hinzufügen.

    Vielleicht erspare ich ja jemandem ein paar Stunden Sucharbeit.

    Rainer

    Ja, Sebi und ich (vor allem Sebi) hatten so etwas mal für R-BASIC gebaut. Ich komme aber in den nächsten tagen nicht dazu, das (d.h. die Tabellen dazu) rauszusuchen. Vielleicht ist Sebi ja schneller :)
    Ansonsten kann man versuchen, dass mit R-BASIC selbst zu programmieren. Die Funktion Convert$ unterstützt die Modi UTF8_TO_GEOS und GEOS_TO_UTF8.

    Rainer