A E S F o n t L o a d e r --------------------------- Shareware-Version 1. Vorwort ---------- Seit 1985 gibt es die Atari Computer mit GEM-Oberfl„che schon. Von Anfang an war ein nachladbares GDOS dabei, mit dem man jede Menge sch”ner und weniger sch”ner GEM-Fonts seinen Programmen zur Verfgung stellen kann. Was aber haben die Programmautoren anfangs daraus gemacht? Sie haben recht - nichts. Seit einigen Jahren verbreitet sich GDOS aber immer mehr, besonders seit es das schnelle NVDI gibt. Es gibt inzwischen viele Programme, besonders im Shareware-Bereich, die ihre Text- ausgaben mit GEM-Fonts bewerkstelligen. Eine angenehme Abwechslung, wurde man doch jahrelang mit immer demselben 'system font'-Einerlei in schwere existenzielle Krisen gestrzt. Doch halt, was ist das. Da ist ja noch das AES, das nach wie vor stur mit dem 8x8 system font in den niedrigen und dem 8x16 system font in den hohen Aufl”sungen seine Ausgaben t„tigt. Dazu kommt noch immer derselbe Icon-Font. Das hat ein Ende, denn jetzt gibt es AESFONT. Sie brauchen nur noch ein GDOS, dann k”nnen Sie zur Tat schreiten. 2. Einleitung ------------- AESFONT wird im Autoordner nach GDOS gestartet. Die GDOS-Version meldet ein oder zwei GDOS-Fonts beim AES an. Der kleinere Font (SMALL) wird danach fr die Icontexte und die kleine Schrift in Dialogen verwendet, der grože (IBM) fr alle brigen Textausgaben des AES. Zus„tzlich kann der voreingestellte Font fr GEM-Applikationen ver„ndert werden und ein neuer Font fr die Konsolenausgabe angemeldet werden. Dieses Handbuch soll Ihnen die Bedienung erleichtern. Sie ist gegliedert in einen Teil, der dem reinen Anwender die M”glichkeiten erkl„rt. Es schliežt sich eine Beschreibung der Programmiererschnitt- stelle an. 3. Installation: ---------------- Kopieren Sie AESFONT.PRG und AESFONT.CNF in den Autoordner auf ihrem Bootlaufwerk. Kopieren Sie die Fonts in ihren GDOS-Fontordner (z.B. \GEMSYS). Nennen Sie ihr bisheriges ASSIGN.SYS in ASSIGN.OLD um und ersetzen es durch das ASSIGN.SYS aus der AESFONT-Distribution. Tragen Sie in ASSIGN.SYS den korrekten GDOS-Pfad ein. Voreingestellt ist 'PATH=\GEMSYS\'. Fhren Sie jetzt einen Reset aus. Der Rechner l„uft hoch. Jetzt sollte zun„chst GDOS starten und sp„ter AESFONT. Wenn alles gut geht, erscheint jetzt der Desktop mit einem neuen Satz Fonts. Wenn nicht, berprfen Sie, ob das GDOS richtig installiert ist, es muž vor AESFONT gestartet werden. Benennen Sie ggf. den Autoordner um und kopieren alle Programme einzeln in der gewnschten Reihenfolge in einen neuen Autoordner. Einfacher ist die Benutzung eines AUTOSORT.PRG. Wenn es immer noch nicht geht, schalten Sie alle weiteren Autoordnerprogramme aus und probieren es erneut. Irgendein Programm k”nnte unvertr„glich sein. Versuchen Sie ggf. rauszufinden welches und schicken eine Fehlermeldung an die am Ende dieses Handbuchs angegebene Adresse. Wenn es immer noch nicht funktioniert, setzen Sie sich mit dem Programmautoren in Verbindung. Schildern Sie m”glichst genau ihre Probleme. Im unwahrscheinlichen Fall, daž es st„ndig Abstrze gibt, wird AESFONT duch Drcken der '*-'Taste der numerischen Tastatur abgebrochen. Die ausgelieferte Shareware-Version enth„lt verschiedene Beispiel- installationen als CNF-Dateien, die ausprobiert werden k”nnen. Wenn Ihnen eine gef„llt, k”nnen Sie eine aus alt und neu kombinierte GDOS- Installation herstellen. Stellen Sie fest, welche Fonts Sie fr das AES verwenden. Tragen Sie diese Fonts im ASSIGN.OLD ein und speichern die Datei als ASSIGN.SYS ab. Dabei wird das Test-ASSIGN.SYS ber- schrieben. Wer lieber eine eigene Installation zusammenstellt und alle M”glichkeiten aussch”pfen will, muž nun aufmerksam den Rest des Handbuchs durchlesen. Gengsamere Zeitgenossen k”nnen es erstmal weg- legen, verpassen aber auch eine Menge. 4. Spezielle Probleme mit anderen Systemerweiterungen ----------------------------------------------------- Beim Betrieb mit MiNT sollte AESFONT m”glichst nach MINT.PRG gestartet werden. Bei MultiTOS ist das allerdings nicht zwingend. 5. Konfigurationsvariablen von AESFONT¾ --------------------------------------- Sie k”nnen die Funktionen ber Environmentvariablen oder ber eine Konfigurationsdatei steuern. 5.1. Environmentvariablen ------------------------- Environmentvariablen werden von dazu bestimmten Autoordner-Programmen gesetzt. Wie das gemacht wird, entnehmen sie bitte der jeweiligen Programmanleitung (z.B. SETENV, OVERSCAN, JCNBOOT, MINT, MultiTOS). AESFONT wertet das Environment des AES aus, nicht sein eigenes. 5.2. Konfigurationsdatei ------------------------ Es kann auch eine Datei namens AESFONT.CNF in das Wurzelverzeichnis des Bootlaufwerkes gelegt werden. Sie muž folgendes Format aufweisen: 1. der Name der Environmentvariablen in Grožbuchstaben 2. ein Gleichheitszeichen 3. der Wert der Variablen in Ziffern 4. beliebiger Kommentar 5. CR/LF. Die Datei kann mit jedem blichen Editor erstellt werden. Wichtig ist nur die Trennung der Zeilen durch CR/LF. Fhrende Leerzeichen sind nicht erlaubt. Beispiel: AF_VERBOSE=1 * Es darf geschwatzt werden AF_FONTID=15 * Typewriter AF_FONTHEIGHT=12 AF_SMALLID=22 * Rufus 5 pt AF_SMALLHEIGHT=5 AF_WINDOWPATCH=1 Ausgewertet wird zun„chst die CNF-Datei und dann die Environment- variablen. Es gilt der zuletzt gesetzte Wert. Alle Werte werden ggf. von MultiTOS-Einstellungen berdeckt. 5.3. Die Konfigurationsvariablen im einzelnen --------------------------------------------- Grosser AES-Font (IBM): AF_FONTID Font ID des grožen AES-Fonts (IBM). Gilt auch fr den SMALL-Font, wenn dieser nicht explizit gesetzt wird. AF_FONTHEIGHT H”he des Fonts (IBM) im absolute mode (vst_height). AF_FONTPOINT H”he im points mode (vst_point). HEIGHT und POINT sind alternativ zu verwenden. Kleiner AES-Font (SMALL): AF_SMALLID Font ID des kleinen Icon-Fonts (SMALL). AF_SMALLHEIGHT H”he im absolute mode. AF_SMALLPOINT H”he im points mode (alternativ). Default Font: AF_DEFAULTID Font ID des Default Fonts, d.h. des Fonts mit dem GEM-Applikationen von Haus aus arbeiten. AF_DEFAULTHEIGHT H”he im absolute mode. AF_DEFAULTPOINT H”he im points mode. Console Font (Bios, Gemdos und VDI-Escape): AF_CONID Font ID eines neuen Fonts fr die Console. Hinweis: Der Font darf kein Vektorfont sein und muž unbedingt eine feste Breite von 8 Pixeln fr alle Zeichen besitzen. Bei Benutzung eines GDOS, das Fontswapping beherrscht, muž der Font im ASSIGN.SYS als resident angemeldet werden. Wenn das GDOS das nicht kann, ver- bietet sich eine Benutzung dieser Variablen. AF_CONHEIGHT H”he im absolute mode. AF_CONPOINT H”he im points mode (alternativ). Hinweis: Fr den Console-Font gilt, daž nicht notwendigerweise die aktuell eingestellte Gr”že verwendet wird, sondern der zugrundeliegende GDOS-Font in seiner ursprnglichen Gr”že. WARNUNG: Die Benutzung der Console-Funktionen erfolgt auf eige- ne Gefahr. Sie ist als Schmankerl gedacht und wird auf nachladbaren Bildschirmtreibern wahrscheinlich nicht korrekt laufen. Sonstige Optionen: AF_VERBOSE Geschw„tzigkeit. Wenn = 1, dann werden ausfhrliche Informationen ber den Programmablauf auf der Console ausgegeben. Als Hilfe zur Fehlersuche gedacht. Sollte als erste Variable gesetzt werden. WARNUNG: Darf auf keinen Fall unter AutoSwitch-OverScan angestellt werden, da „ltere Treiber einen Fehler enthalten, der Daten im RAM schwer besch„digt! Unter MultiTOS ist es bisweilen ebenfalls zu Abstrzen gekommen. AF_ALIGNMENT Neues vertikales Alignment fr den AES-Font. Eingabeparameter fr vst_alignment. Setzt die AES- Fonts in der vertikalen hoch bzw. runter. Wird eigentlich nicht ben”tigt. AF_COLOR Textfarbe des AES-Fonts. Eingabeparameter fr vst_color. AF_NODESKFIX Wenn Wert = 1, kein Fixen der Desktop-Resourcen im RAM oder der DESKICON.RSC. Bietet sich an fr Leute, die niemals den Atari-Desktop zu Gesicht bekommen, weil sie lieber Gemini, Ease oder Neodesk benutzen. Aužer- dem bei der Verwendung von MultiTOS sinnvollerweise in GEM.CNF, da der Fix dort ohnehin berflssig ist. AF_WINDOWPATCH Wenn Wert = 1, wird verhindert, daž Fenster in die Menzeile hinein ge”ffnet werden. AF_GETINFOPATCH Wenn Wert = 1, wird die appl_getinfo-Funktion des AES >4.0 gepatcht. Bei ap_gtype 0 und 1 wird jeweils ap_gout2 (Font-ID) berichtigt, falls 1 zurckgegeben werden soll. Wird folglich nur bei MultiTOS ben”tigt. AF_1WPATCH Patch fr 1st Word, der work_out[47/48] auf die Gr”že des Default Fonts und work_out[45/46] auf die Gr”že des Icon Fonts setzt. Wert muž = 1 sein. Hinweis: Da 1st Word+ diese Parameter als Gr”ženeinstellungen fr seine Textausgaben verwendet und gleichzeitig die Koordinaten anhand von graf_handle() errechnet, nur sinnvoll, wenn AES-Font und Default Font in gleichen Gr”žen vorliegen und zwar fr beide Fontgr”žen. AF_NOWORK10 Wenn Wert = 1, wird ein Patch ausgeschaltet, der den Wert von work_out[10] beim v_opnvwk() korrigiert. Der Patch macht Gebrauch von negativen Line A-Variablen. Alle bekannten offiziellen VDI-Versionen enthalten den entsprechenden Fehler. Einzige Auswirkung ist, daž einige Programme zu viele Fonts zur Auswahl stellen, wobei die berz„hligen immer nur den Systemfont repr„- sentieren. "Verbotene" Konfigurationsvariablen: AF_FLYHACK Hack, um mit Programmen zurechtzukommen, die starr eine der 3 Systemfontgr”žen einsetzen. Das betrifft vor allem Fliegende Dialoge. Wenn der Wert 1 ist, werden diverse vst_height-Aufrufe mit den Gr”žen 4, 6 und 13 auf die korrespondierenden Gr”žen des AES-Fonts gesetzt und der AES-Font als aktueller eingestellt. Ist der Wert 2, dann wird vor allen vst_point-Aufrufe von 8, 9 und 10 Punkten der korrespondierende AES-Font eingestellt. Daž dabei tats„chlich die richtige Gr”že eingestellt wird, ist nicht gesagt. Bei einem Wert von 3 werden beide Hacks eingeschaltet. WARNUNG: Diese Funktion sollte nicht im t„glichen Betrieb benutzt werden, sie dient lediglich dazu, die leichte Anpažbarkeit vieler Programme an AESFONT zu demon- strieren. AF_LOADHACK Wenn Wert = 1, wird bei jedem vst_load_fonts die Zahl der zus„tzlichen Fonts vom ersten Ladeversuch zurck- geben. Wenn AF_DEFAULTID gesetzt ist und ein Programm die GDOS-Fonts nicht findet, hilft dieser Hack. AF_UNLOAD Wenn Wert <> 0, werden die Fonts nach Ermittlung der Daten wieder entladen (Testfunktion fr MultiTOS). AF_CHAMHACK Der Wert gibt die Verz”gerung gemessen in Bios-Auf- rufen an, mit der der Trap #2-Handler reinstalliert wird. Notwendig ist das im Zusammenhang mit Cham„leon 1.19 und AF_DEFAULTID. Beim Nachladen von Accessories mit eigener virtueller Workstation, gibt es einen totalen Systemabsturz. Wenn AF_CHAMHACK >=8 ist, geht es trotz- dem (ohne Gew„hr). Bei Anwesenheit von NVDI ist AF_CHAMHACK auf mindes- tens 3 zu stellen. Bei allen HEIGHT, POINT und ID-Funktionen fhrt ein Wert von 0 zum Ignorieren der entsprechenden Funktion. Alle nicht genannten Werte fhren zu unvorhersehbaren Resultaten. 5.4. Beispielkonfiguration -------------------------- Die folgende Konfiguration wrde den Typewriter aus dem Atari-GDOS- Paket und den sattsam bekannten 6x6 system font als AES-Fonts an- melden. Aužerdem wrden die Konsolenausgaben mit dem 8x8 system font erfolgen. Ein Fixen der Desktop-Resource im RAM findet nicht statt. Die Farbe des AES-Fonts ist 5. 1st Word wird mit dem Typewriter ausgeben (hoch- und tiefgestellte Texte sind aber unleserlich). AF_FONTID=15 AF_FONTHEIGHT=12 AF_SMALLID=1 AF_SMALLHEIGHT=4 AF_CONID=1 AF_CONHEIGHT=6 AF_NODESKFIX=1 AF_COLOR=5 AF_1WPATCH=1 5.5. Die optimale Konfiguration ------------------------------- Man sollte in jedem Fall versuchen, die Eingriffe von AESFONT in das VDI zu minimieren. Unvermeidlich ist in jedem Fall, daž w„hrend des ™ffnens der Workstation seitens des AES umfangreiche zus„tzliche VDI- Aufrufe erfolgen. Vermeidbar ist aber, daž w„hrend der weiteren Laufzeit VDI-Aufrufe manipuliert werden. Dazu muž man auf die Vari- ablen AF_SMALLID, AF_DEFAULTID. AF_DEFAULTHEIGHT, AF_DEFAULTPOINT und AF_1WPATCH verzichten. Der Grund liegt darin, daž AESFONT bestimmte VDI-Aufrufe abf„ngt und vor oder nach diesen eigene VDI-Aufrufe absetzt. Diese Art rekursiven Aufrufs des Trap #2 k”nnte theoretisch Trap-Handler anderer Programme berfordern, wenn diese etwas nachl„ssig geschrieben sind. Die Erg„nzungen der rsrc-Routinen des AES sind st„ndig aktiv. Nur der WINDOWPATCH und der GETINFOPATCH k”nnen beeinflužt werden. Da das Abfangen der AES-Aufrufe auf dem saubersten m”glichen Wege erfolgt, sind hier bei allen TOS-Versionen vor MultiTOS keine Probleme zu befrchten. Wenn der VDI-Bildschirmtreiber negative Line A-Variablen nicht unter- sttzt, darf der Konsolenfont nicht manipuliert werden und AF_NOWORK10 muž auf 1 gesetzt werden. Dieser Fall drfte h”chstens bei Grafikkarten auftreten. 6. Fonts in AESFONT¾ -------------------- Sinnvoll verwendet k”nnen alle unproportionalen GDOS-Fonts. Das sind solche, die nur Zeichen gleicher Breite enthalten, also etwa der beim Atari-GDOS mitgelieferte Typewriter (ATTP10.FNT). 6.1 AES-Fonts ------------- Bei der Zusammenstellung von SMALL und IBM-Font ist zu beachten, daž das Breitenverh„ltnis m”glichst 4:3 betragen sollte. Das h„ngt damit zusammen, daž dies bei den Systemfonts des TOS auch der Fall ist. Wenn dieses Verh„ltnis nicht erreicht werden kann, so ist ein zu hoher Wert, also etwa 9:6, gnstiger als ein zu niedriger. Je gr”žer die Abweichung ist, desto unsch”ner erscheinen die Textausgaben mit dem SMALL-Font in Dialogen. Zur H”he ist zu sagen, daž ein Verh„ltnis von 4:3 nicht unterschritten werden sollte. Als grober Richtwert kann ein Verh„ltnis von etwa 2:1 angegeben werden. Aužerdem sollten beide Fonts die gleiche ID haben, um dem Betriebssystem unn”tige Eingriffe durch AESFONT zu ersparen und Anwendungsprogramme nicht zu berfordern. Also sollte man im Zweifel die ID per Diskettenmonitor oder Fonteditor anpassen. Aufl”sungswechsel kann man berstehen, indem man nur die POINT- Konfigurationsvariablen verwendet und in ASSIGN.SYS die der Aufl”sung entsprechenden Fonts eintr„gt. Z.B. ATTP10.FNT fr ST-HIGH und ATTP10CG.FNT fr ST-MID. 6.2 Default Font ---------------- Wird ein Font als Default-Font verwendet, dann muž zus„tzlich zur Bedingung der Unproportionalit„t unbedingt das sogenannte Monospaced Flag im Fontheader gesetzt sein. 6.3. Konsolenfont ----------------- Der Font fr die zeichenorientierten Ausgaben des BIOS, GEMDOS und der VDI-Escape-Funktionen auf die Konsole (Bildschirm), muž ein unproportionaler Font mit 8 Pixeln Breite und gesetztem Monospaced Flag sein. Alle anderen werden abgelehnt. 6.4. Verzeichnis der mitgelieferten Fonts ----------------------------------------- Zur Zeit werden 3 Fontkombinationen mitgeliefert. Sie sind den Systemfonts des TOS nachempfunden, so daž keine grože Umgew”hnung n”tig ist. SMALL-Font IBM-Font Dateiname ID Fontname Dateiname ID Fontname AES5X6.FNT 257 5x5 aes font AES7X12.FNT 257 7x12 aes font AES7X8.FNT 513 7x8 aes font AES10X20.FNT 513 10x20 aes font AES9X9.FNT 769 9x9 aes font AES12X24.FNT 769 12x24 aes font Die gnstigste Kombination ist 9x9 und 12x24 aes font, da hier das Breitenverh„ltnis exakt 4 zu 3 betr„gt. 7. Fallstricke und Bugs in AESFONT ---------------------------------- Leider ist es nicht zu umgehen, einige undokumentierte Eigenschaften, wie das Auslesen der Resource-Adresse im global-Feld, zuverwenden. Wird AESFONT im Autoordner vor MiNT gestartet, wird die DESKICON.RSC bei TOS 2.0x und 3.0x nicht gefixed. Dadurch sind dann die Icontexte nicht vollst„ndig sichtbar. Abhilfe: AESFONT von MiNT starten lassen. Der Desktop des TOS 1.0 l„uft nicht korrekt, da er die Resourcen in einem unbekannten, bereits relozierten Format enth„lt. Die Icontexte sind nur eingeschr„nkt lesbar. Es wird immerhin eine Fehlermeldung "AESFONT: unknown desktop resource format" (mit Glocke) ausgegeben, die allerdings nach ca. 3/10 Sekunden vom GEM gel”scht wird. Da die Deskt”ppe aus der Vor-MultiTOS-Žra (Steinzeit) die AES-Funk- tionen nicht ber Trap #2 aufrufen, muž von AESFONT beim Startup des GEM an den Desktop-Resourcen gehackt werden. Deren Adresse ist zudem nicht bekannt. Es kann also sein, daž AESFONT bei bestimmten Kon- figurationen die Resource nicht findet. Ich bitte fr diesen Fall um Bug-Reports. Nach menschlichem Ermessen sollten alle offiziellen TOS- Versionen ab TOS 1.04 vernnftig laufen. Unter MultiTOS wird berflssigerweise nach einer RAM-Kopie der Desk- top-Resource gesucht und zum Glck nicht gefunden. Es ist leider nicht m”glich, die Anwesenheit von MultiTOS vor dem ersten AES-Aufruf zu erkennen. (Oder kann jemand da helfen?) Da G_*TEXT-Objekte an den SMALL-Font angepažt werden mssen, kann es in seltenen F„llen vorkommen, daž diese ca. 2 Pixel aužerhalb des Mutterobjektes weitergezeichnet werden. Damit muž man entweder leben, oder die Mutterobjekte im Resource Construction Set auf Zeichenkoor- dinaten snappen lassen. Alternativ k”nnen die Mutterobjekte als G_*TEXT mit leerem SMALL-Text definiert werden. 8. Bugs der Anderen (natrlich viel mehr): ------------------------------------------ Das XCONTROL.ACC kommt mit gr”žeren Systemfonts nicht zurecht. Programme, die „ltere Versionen der FlyDials von J. Reschke ver- wenden, strzen beim Aufruf von Dialogen mit "Kreisverkehrszeichen" ab (z.B. Gemini 1.21). Das ist ein mittlerweile behobener Fehler dieser Dialoglibrary. Einige Programme, wie 1st Word und der Pure C-Editor setzen eine šbereinstimmung von AES- und Default-Font voraus. Sonst schreiben sie einen ziemlichen Unsinn in das Textfenster. Diesem vermeidbaren Feh- ler hat Atari durch falsche Vorschl„ge fr Entwickler (in Atari.RSC) selber Vorschub geleistet. Andere Programme (u.a. viele GFA-Basic-Compilate, Pure C 1.0, Tempus) stellen die Mens nicht korrekt dar, weil sie sie falsch berechnen. Probleme haben auch einige Fileselector-Substitute. Einige Accessories wie OverUtil und ProCalc rufen rsrc_obfix() auf, obwohl sie die Resource noch nicht vollst„ndig umgerechnet haben. ob_spec enth„lt statt eines Zeigers noch einen Index, was eindeutig ein Bug ist. AESFONT quittiert das bei gesetztem AF_VERBOSE durch ein Klingelzeichen, jedesmal wenn ein solcher Aufruf kommt. Dieser wird selbstverst„ndlich nicht nicht durch die Fixroutinen bearbeitet. Mit- unter gibt das ein heftiges Gebimmel beim Systemstart. NVDI erkl„rt sich, bedingt durch einen speziellen Traphandler, zum Herren des VDI-Traps und schneidet alle anderen Trap-Routinen (aužer vom Cham„leon) ab. NVDI muž daher ausgetrickst werden. Ein voll- st„ndiges funktionieren aller Optionen kann daher nicht garantiert werden. Ein besonders gef„hrlicher Fehler steckt im Cham„leon 1.19. Das ganze System strzt ab, wenn vom Accessory eine virtuelle Workstation ge”ffnet wird. Das ganze passiert nur bei AF_DEFAULT-Funktionen. Hier geht der rekursive Aufruf von VDI-Funktionen versch„rft in die Hose. Als Ausweg bietet sich die AF_CHAMHACK-Option an. Es ist am sicher- sten, berhaupt keine Accessories mit dem Cham„leon zu laden, die eine virtuelle Workstation ”ffnen. Einige Programme, wie CAT 2.0, werten die Anzahl der Systemzeichen- s„tze in work_out[10] nicht aus. So kommt es, daž bei angestelltem AF_DEFAULTID die GDOS-Fonts nicht mehr erkannt werden. Und vieles mehr, was nicht korrekt l„uft. Sauber programmierte Appli- kationen haben keine Probleme. Positive Beispiele sind MUtility, GEM- Draw, IdeaList und der MultiTos-Desktop. Viele GEM-Fonts haben einen Fehler im Aufbau des Fontheaders. Dieser macht sich durch ein ungewolltes unterstreichen bei invertierter Textausgabe bemerkbar. Gegenmittel ist das Freeware-Programm FONTFIX von J. Reschke. Verursacher dieses Fehlers ist brigens der Font- editor Fontz!. 8.1 Kompatibilit„tsliste: ------------------------- Viele Programme machen hier und da kleinere bis gr”žere Probleme. Die Liste zeigt nur die besonders guten und die groben Ausreižer. nicht funktionierende Grund Gemini 1.21 Fly Dials by J. Reschke strzen ab. Rufus 1.06 dito FontEdit.ACC 2.1 mllt den Bildschirm voll gut funktionierende DESKTOP MUtil 1.0 und 2.1 PumpUp FontSelector Multifont ACopy 1.2 MDisk 6.92 1st View Treeview Idealist 3.10 Turtle 3.20 bei entsprechender Einstellung gut funktionierende 1st Word 1st Word Plus AF_1WPATCH, AF_DEFAULTID = AF_FONTID = AF_SMALLID, AF_DEFAULTHEIGHT = AF_FONTHEIGHT, hohe Aufl”sung 8.2. Workarounds fr spezielle Probleme --------------------------------------- Wenn's auch Schweiž und Tr„nen kostet, man kriegt fast alles zum Laufen, was aufl”sungsunabh„ngig programmiert ist. Um es ganz klar zu sagen, die folgenden Vorschl„ge haben etwas vom Nylonstrumpf, der als Keilriemenersatz dient. 1st Word (Plus): IBM und Default Font mssen gleich sein, IBM und SMALL die gleiche ID haben. AF_1WPATCH und AF_WINDOWPATCH werden auf 1 gesetzt. DR-RCS: Wenn AF_1WPATCH gesetzt ist, kann man das RCS mit alternativen Fonts bedienen. Trotzdem sollte man Resourcen auf jeden Fall nur in Standardaufl”sungen bearbeiten. Fly Dials (J. Reschke / Gemini, Rufus): IBM und Default Font mssen gleich sein. Magic Dials [vor 1993] (Peter Hellinger): IBM und Default Font mssen gleich sein. Chickendial (M. Thaenitz / 7Up): AF_FLYHACK auf 2 setzen. Pure C: IBM und Default Font mssen gleich sein. Die AES-Fontgr”že muž nahe an der normalen liegen, weil die Resourcen sich nicht anpassen. Cat 2.0 und Catputz: AF_LOADHACK und AF_WINDOWPATCH auf 1 setzen. MultiTOS: MultiTOS-Verwender sollten AF_GETINFOPATCH einschalten, damit die richtigen Font-IDs gemeldet werden. Da nicht davon auszugehen ist, daž Atari diesen Bug beseitigt, wird das vermutlich bis in alle Ewigkeit gelten, zumindest aber bis Version 1.08. 9. Hinweise fr Programmierer: ------------------------------ 9.1. Traps ---------- AESFONT h„ngt in Trap #1, Trap #2 und Trap #13. Die XBRA-Kennung ist 'AFnt'. Andere VDI-Traphandler, die sich hinter den Trap h„ngen, mssen damit rechnen, daž aus einem VDI-Aufruf heraus ein weiterer rekursiver VDI- Aufruf (z.B. von AESFONT) abgesetzt wird. Es ist also dafr Sorge zu tragen, daž man damit zurechtkommt. Eine M”glichkeit ist eine Sema- phore, die einen rekursiven Aufruf abweist. Die zweite M”glichkeit ist der Aufbau eines programminternen Stacks, der den Traphandler reentrant macht. AESFONT selbst benutzt fr Bios, Gemdos und VDI Semaphoren. Fr das AES gibt es einen relativ kompliziert aufgebauten Stack. 9.1. Das Programmierinterface AESFONT richtet 2 Cookies ein. Erstens den Cookie 'SMAL', der im niederwertigen Wort die Gr”že des Iconfonts (C-Definition: SMALL) im absolute mode enth„lt. Im Highword enth„lt er - optional, aber implementiert - die Gr”že des IBM-Fonts. Das war ein Vorschlag, der vor einiger Zeit im Mausnetz gemacht wurde und zur Abw„rtskompatibilit„t enthalten ist. Die Dialog-Library Ruby von Markus Nick verwendet diesen Cookie. Fr AESFONT wird ein anderes Verfahren empfohlen. Der zweite Cookie hat die Kennung 'AFnt'. Dieser enth„lt einen Zeiger auf folgende Struktur: struct { long af_magic; int version; int installed; int cdecl (*afnt_getinfo)(int af_gtype, int *af_gout1, int *af_gout2, int *af_gout3, int *af_gout4); }AFNT; Tats„chlich ist die Struktur noch etwas l„nger. Der Zugriff auf diese internen Variablen wird aber nur bei Vorlage guter Grnde offengelegt. Wichtig ist, zun„chst die Versionsnummer abzufragen. Das Lowbyte von version gibt die Versionsnummer des Programms an. 0x0019 w„re z.B. die Version 1.9, n„chste Versionsnummer w„re 0x0020 (2.0). Das Highbyte von version gibt die Revision der Cookieschnittstelle an. Bei einer Žnderung wird diese Zahl erh”ht. Diese Beschreibung gilt ab V 0.5, Schnittstellenrevision 0 (0x0005). Der Grund fr diese etwas komplizierte Definition liegt darin, daž zwei AESFONT-Zweige existieren. Der eine enth„lt die Fonts im Pro- grammcode (V 0.0 bis 0.9), der andere l„dt sie ber GDOS (ab V 1.0). Diese Versionsnummern haben demnach keinen Einfluž auf die Cookie- schnittstelle. installed ist 0, solange AESFONT zwar geladen, die Fonts aber noch nicht angemeldet sind. Man erkennt, daž in der Struktur ein Zeiger auf eine Funktion definiert ist. Diese wird ber folgenden Prototyp definiert (Pure C): int cdecl (*afnt_getinfo)(int af_gtype, int *af_gout1, int *af_gout2, int *af_gout3, int *af_gout4); Nach Zuweisung des Wertes aus der Struktur, kann die Funktion ganz normal aufgerufen werden: af_greturn = afnt_getinfo(af_gtype, &af_gout1, &af_gout2, &af_gout3, &af_gout4); Parameter: af_gtype - Get information type 0 - IBM Font Information af_gout1 - Fonth”he af_gout2 - Font ID af_gout3 - 1 wenn FSM-Font, sonst 0 1 - SMALL Font Information af_gout1 - Fonth”he af_gout2 - Font ID af_gout3 - 1 wenn FSM-Font, sonst 0 af_greturn - kodierter Returnwert 1 - kein Fehler 0 - Fehler (Achtung, das muž beachtet werden!) Žhnlichkeiten mit real existierenden MultiTOS-Funktionen sind durch- aus beabsichtigt. Wenn eine funktionsgleiche echte AES-Funktion exis- tiert, ist diese zu verwenden. Sie gibt - wenn sie fehlerfrei implementiert ist - in jedem Fall die korrekten Werte zurck. Die Rckgabewerte von afnt_getinfo k”nnen dagegen von MultiTOS-Features ungltig gemacht werden. Damit sollte es m”glich sein, alle von AESFONT ver„nderten Werte abzufragen. 9.2. Generelle Ratschl„ge ------------------------- Diese Ratschl„ge zu beachten kann nicht schaden, auch wenn man AESFONT gar nicht explizit untersttzen m”chte. 9.2.1. Resourcen ---------------- Allgemein sollte man sich bemhen, alle Objekte in Resourcen auf Zeichenkoordinaten snappen zu lassen. Eine Korrektur der Maže oder der Position um 1 Pixel stellt danach kein Problem dar. Das wilde Erstellen von Dialogboxen im Panel-Modus fhrt dagegen zu unsch”nen Ergebnissen, wenn die AES-Fontgr”že ver„ndert wird. 9.2.2. Fonts ------------ Wer nicht davon ausgeht, daž AES-Fonts und Default Font dasselbe sind, kann weder bei AESFONT noch bei MultiTOS auf die Nase fallen. Der Default Font ist derjenige, den man nach dem ™ffnen seiner virtuellen Workstation mit vqt_attributes erfragen kann. Welches die AES-Fonts sind, kann man auch ohne spezielle AES- Funktionen herausfinden. Es ist allerdings relativ kompliziert und kommt seinerseits nicht ohne Annahmen aus. Ein ausfhrliches Beispiel zu dem Gesagten liegt als C-Quelle dem Programmpaket bei. Man sollte es tunlichst unterlassen, Annahmen darber zu machen, was die Werte in work_out[45]-[48] bedeuten. Der Autor von AESFONT seiner- seits nimmt an, daž es sich um die Gr”žen des kleinsten und des gr”žten Fontfaces des Systemfonts mit der Nummer 1 in seiner natr- lichen Gr”že handelt. Nicht verstanden? War auch nicht beabsichtigt. 10. Der FONTselector -------------------- Der FONTselector 1.0 ist ein Hilfsaccessory und -programm fr den AES Font Loader. Mit ihm lassen sich die aktuell geladenen Fonts anzeigen und Einstellungen fr AESFONT t„tigen. Der aktuell gltige Default Font kann mit Applikation eingestellt werden, der aktuell gltige AES Font mit Resource und der aktuell gltige Konsolenfont ber Console. Die globalen Einstellungen fr AESFONT erreichen Sie ber Mens... -> AESFONT... Die dort get„tigten Einstellungen k”nnen in AESFONT.CNF abgespeichert werden. Vorsicht: Die alten Einstellungen werden dabei berschrieben. Eine vollst„ndige Anleitung fr FONTselector 1.0 liegt z.Z. noch nicht vor. 11. Disclaimer: --------------- Es wird lediglich zugesichert, daž das Programm in der Lage ist, auf den Rechnerserien Atari ST und TT unter TOS 1.0 bis 3.06 einen neuen Font beim AES anzumelden und daž dieser im wesentlichen korrekt dargestellt wird. Darberhinausgehende Programmeigenschaften mssen nicht unbedingt auf jedem System funktionieren. Jegliche Haftung ist ausgeschlossen. 12. Verwertungsrechte: ---------------------- Alle Versionen ab 1.0 des AES Font Loader sind Shareware. Sie drfen den AES Font Loader 3 Wochen lang kostenlos testen. Wenn Sie das Programm weiterhin nutzen m”chten, mssen Sie die Shareware-Gebhr von DM 30.- entrichten. Damit erhalten Sie gleichzeitig die Nutzungsberechtigung fr das FONTselector-Accessory. Wenn Sie die Gebhr nicht entrichten, mssen Sie das Programm l”schen. Eine l„ngerfristige Benutzung ohne Zahlung der Shareware- Gebhr entspricht der widerrechtlichen Benutzung einer Raubkopie. Fr geizige, aber ehrliche Menschen sei an dieser Stelle der Hinweis auf die AESFONT-Versionen bis 0.99 erlaubt. Diese sind Freeware und drfen unentgeltich benutzt werden. Sie k”nnen einen Scheck an die unten angegebene Adresse senden oder eine šberweisung auf das Konto Nr. 56 62 671 bei der Deutschen Bank Hamburg, BLZ 200 700 00 t„tigen. Bitte beachten Sie, daá ich durch die šberweisung nicht automatisch Ihre Adresse erhalte. Alle Rechte an diesem Programm liegen bei Hayo Schmidt. Die Ver- breitung ber private Diskettenkopien und Mailboxen mit einer Jahres- gebhr unter DM 125.- ist erlaubt. Jegliche darberhinausgehende Weiterverbreitung muá genehmigt werden. Wer dagegen verst”át, muá damit rechnen, auf Unterlassung in Anspruch genommen zu werden. Insbesondere die Verbreitung der Shareware-Version im Zusammenhang mit dem Verkauf von Monitoren oder Grafikkarten ist nur nach Ab- sprache mit dem Autoren zul„ssig. Die Weitergabe der Freeware-Version durch H„ndler ist hingegen erlaubt. PD- und Shareware-Versender erhalten auf Anfrage kostenlos die aktuel- len Programmversionen und die Genehmigung zur Ver”ffentlichung. Vor- aussetzung ist, daá die Preise im Rahmen des blichen liegen, d.h. daá z.Z. DM 10.- je Diskette nicht berschritten werden sollte. Fehlermeldungen und konstruktive Kritik an: E-Mail: Hayo Schmidt @ HH MausNet Hayo_Schmidt@hh.maus.de Internet Gelbe P*st: Hayo Schmidt Grotiusweg 1 22587 Hamburg Hamburg 11/93 v1.01