V1.0 Hamburg, den 24.11.93 HINWEIS: Dieses ist im wesentlichen die Anleitung einer frheren Version aus dem Jahre 1991. Die aktuelle Version ist hiermit nicht vollst„ndig beschrieben. Bei Lust und Gelegenheit werde ich die Anlei- tung auf den aktuellen Stand bringen. Liebe ATARI ST-Freunde, Der FONTselector ist Bestandteil des AES Font Loader-Paketes. Das Paket ist zu privaten Zwecken frei kopierbar und darf weitergegeben werden. Die dauerhafte Nutzung erfordert die Zahlung der SHAREWARE- Gebhr fr AESFONT. Der FONTselector ist ein kombiniertes Accessory/Programm, d.h Sie k”n- nen es als ACC oder als PRG starten. Der FONTselector erm”glicht die Auswahl von geladenen GDOS-Fonts. Der FONTselector arbeitet (hoffentlich) in jeder noch so abstrusen Aufl”sung. Der FONTselector wurde in Pure-C geschrieben. Hier nun eine kurze Beschreibung der Elemente des Dialogfensters: ----------------------------------------------------------------- Das FONTselector-Fenster funktioniert im Grundsatz genauso wie das Kontrollfeld, d.h. Sie k”nnen die Box innerhalb des Bildschirms belie- big verschieben. Zus„tzlich ist eine Tastatursteuerung integriert. Im 'FONT #'-Feld wird die Font-Identifikation des Fonts eingestellt. Dazu sind die Pfeile anzuklicken. Tasten: Cursor links/rechts. Der aktuelle Zeichensatz kann gleichfalls ber das Popup-Men des FONTselector-Image eingestellt werden. Mit 'POINTS' wird die Zeichengr”že eingestellt. Tasten: Cursor hoch/runter. Im grožen, grauen Feld wird der aktuelle Font in der eingestellten Gr”že angezeigt. Durch einfaches Anklicken des Feldes, wird eine Tabelle des angezeigten Fonts gezeigt. Taste: F1. Durch Doppelklick wird eine Tabelle des aktuellen Console-Fonts in einem riesigen Fenster gezeigt. Taste: F2. Darunter steht der Name des Fonts. Durch Doppelklick auf das FONTselector-Logo erh„lt man eine Tabelle des Default-System-Fonts. Taste: F3. 'Fonts laden' fhrt ein vst_load_fonts() fr die VDI-Workstation von FONTSLCT durch. Taste: Insert. 'Fonts entladen' fhrt ein vst_unload_fonts() durch. Taste: Delete. 'SPEZIALEFFEKTE' stellt die Texteffekte wie kursiv und fett ein. Tasten: erster Buchstabe. 'EINSTELLEN FšR' stellt den aktuellen Font ein als 'Resource '- fr Mens und GEM-Dialoge. Taste: R. 'Applikation' - kann und soll von anderen Programmen ausgelesen werden. Setzt im Zusammenhang mit AESFONT einen neuen Default Font fr neuer”ffnete virtuelle Workstations. Taste: Return. 'Console' - meldet mit v_fontinit() einen 8 Pixel breiten, fixen Font als Console-Font an. Taste: C. Im 'MODUS'-Feld wird eingestellt, ob die Einstellung im 'points' mode (vst_points()) oder im 'absolute' mode (vst_height()) erfolgen soll. Mit dem selektierten 'points'-Knopf kann ein Popup mit den verfgbaren Punktgr”áen des aktuellen Fonts aufgerufen werden. Tasten: erster Buchstabe. šber 'Mens...' werden weitere Features des FONTselector erreicht. U.a. ist hier ein Konfigurationsdialog fr AESFONT erreichbar. Die exakte Beschreibung hierzu ist noch nicht fertig. Die Help-Taste liefert einige Seiten Hilfstext. Die Esc-Taste zeichnet das FONTselector-Fenster neu, Shift-Esc fhrt einen Redraw fr den gesamten Bildschirm aus. Mit dem Schliežfeld des Fensters wird das Fenster geschlossen. Tasten: Ctrl-U, Ctrl-C Die meisten Objekte der Resource k”nnen mit einem RCS gesetzt werden. Sie werden beim Erststart als FONTselector-Voreinstellungen beachtet. In 'FONT#' und 'POINTS' stehen die jeweiligen Maximalwerte des Nummernkreises. Der MODUS und die SCHRIFTART werden beachtet. Der FONTselector besitzt eine interne Datenstruktur, auf die aus anderen Programmen heraus zugegriffen werden kann. Bei Accessory- Betrieb kann die Adresse dieser Struktur ber die Message 0xF05E und Sub-msgcode 1 in Wort 3 des bergebenen Buffers abgefragt werden (mittels appl_write()). Man erh„lt dann die Message 0xF05E zurck mit Sub-msgcode 2 und der Adresse in Wort 4 und 5. Sinnvoll wird der Einsatz im Programmbetrieb erst durch die Benutzung des Cookie-Jars. Der Cookie mit der Kennung 'FOse' wird vom Programm FOSEINST.PRG installiert, das am besten aus dem Auto-Ordner gestartet wird. Das Programm installiert zus„tzlich die Datenstruktur resident. Ansonsten startet der FONTselector das Programm nach, wenn es im Auto- Ordner oder im FONTSLCT-Ordner zu finden ist. Das Programm ist nicht zwingend notwendig, wenn man auf den Cookie-Eintrag und die residente Speicherung der Datenstruktur verzichten kann. Der Cookie 'FOse' und enth„lt einen Zeiger auf die programminterne Datenstruktur. Auf die Struktur kann aus anderen Programmen heraus zugegriffen werden. Dadurch kann in anderen Programmen ber FONTSLCT ein bestimmter Font und eine Gr”že ausgew„hlt werden. Aužerdem ist diese Datenstruktur das Elefantenged„chtnis, wenn Sie den FONTselector nur als Programm verwenden - alle Einstellungen bleiben auch nach Programmende erhalten. Wenn Sie das Dialogfenster an einer bestimmten Stelle erscheinen lassen wollen, dann k”nnen Sie die X- und Y-Koordinate des Dialogfel- des - entsprechend den Koordinaten des Arbeitsbereiches des Fensters - manipulieren. Offset Typ Zugriff Inhalt Bedeutung 0 LONG read only "FOse" Kennung - zur šberprfung der Gltigkeit des Zeigers. 4 LONG read only $00010000 Versionsnummer. 8 WORD read only $.... Font-ID des im Beispiel- fenster dargestellten Fonts. 10 WORD read only $.... Fonth”he. 12 WORD read/write $.... Texteffekt. 14 WORD read/write $0001 Modus: points = 1 o. $0000 absolute = 0. 16 WORD read $.... Font-ID des Application- Fonts. 18 WORD read $.... Fonth”he. 20 WORD read $.... Texteffekt. 22 WORD read $0000 Modus. o. $0001 24 WORD read only $.... Font-ID des Resource-Fonts. 26 WORD read only $.... Fonth”he. 28 WORD read only $.... Texteffekt. 30 WORD read/write $.... X-Koordinate der Dialogbox. 32 WORD read/write $.... Y-Koordinate. 34 WORD read only $.... Breite. 36 WORD read only $.... H”he. 38 WORD read/write $.... VDI-Handle von FONTSLCT. 40 WORD read only $.... Handle des Fensters. Bei den Texth”henmodi gilt der Wert 1 fr den points mode, 0 fr den absolute mode. Alle anderen Werte fhren dazu, daž der aktuelle Status der 'MODUS'-Buttons gilt. Fr Resourcen ist der Modus natrlich immer absolute. Auf die Datenstruktur soll aus anderen Programmen zugegriffen werden. Es bleibt dabei dem Programmierer berlassen, ob er den angezeigten Beispielfont oder den gew„hlten Application-Font verwendet. Die mit 'write' gekennzeichneten Werte k”nnen auch extern gesetzt werden. Nach Ver„nderung der Werte ist ein Redraw auszul”sen. Der VDI-Handle kann auf den eines anderen Programmes umgebogen werden, wodurch der FONTselector de facto auf einer fremden VWorksta- tion arbeitet. Der Handle kann durch den Wert -1 wieder zurckgesetzt werden. Der VDI-Handle ist beim Schliežen der VWorkstation auf jeden Fall rckzusetzten. Wenn FONTSLCT.PRG mit pexec() gestartet wird, kann durch die šbergabe des Kommandos 'X' (1 Zeichen) die Ausgabe der meisten Meldungen unterdrckt werden. Hierzu geh”rt insbesondere der Alert, wenn sie den VDI-Handle vom FONTselector auf den eigenen umbiegen. Die m”glicher- weise geladenen GDOS-Fonts werden beim terminieren nicht entladen. Als Beispiel k”nnen Sie sich das Programm FOSEEXMP.GFA ansehen. Da alle GDOS-Versionen unter AMCGDOS 4.0 die Wanze enthalten, daž mit vst_load_fonts() erstmalig geladene Fonts in der Speicherverwaltung die gerade geladene Hauptapplikation als Owner verpažt bekommen, biegt FONTSLCT.ACC vor dem Aufruf 'load fonts' den aktuellen Prozeždes- kriptor auf die eigene Basepage (was laut Atari illegal ist). Ansons- ten wrden nach dem Verlassen der Hauptapplikation die Speicherbe- reiche mit den Fonts wieder freigegeben und diese berschrieben, was natrlich beim n„chsten Ausgabeversuch mit diesen Fonts zum Absturz fhrte. Warnung: -------- FONTselector darf mit dem Accessory 'The Chameleon' installiert wer- den. Jedoch kann der FONTselector aužerhalb des GEM-Desktops FOSEINST.PR? nicht nachladen, da es dann zum Absturz k„me. Also ist FOSEINST vorher zu starten. Auf meiner Konfiguration (TOS 1.4) strzte in diesem Fall jede lau- fende Hauptapplikation ab, nicht jedoch der FONTselector. Der Grund dafr liegt im Dunkeln des TOS, aber es wird wohl nicht ohne Grund davor gewarnt pexec() aus Accessories aufzurufen. Desgleichen strzt das System ab, wenn zwei Accessories in der Bootphase ein pexec() durchfhren (vermutlich deswegen!?). Im folgenden ein Zitat des Atari Programmierers Allan Pratt: C. Kaernbach's question was why his accessory, which basically did a Pexec from a file selector, didn't always work. The answer is that it works when used within a program which has returned enough memory to the OS for the child. Why might it bomb? Because if a program has returned a *little* memory to the OS (only about 2K), a bug in Pexec shows up that breaks the memory manager. Accessories are strange beasts anyway, so for the most part combining two strange beasts (Accessories and Pexec) is bad news. /----------------------------------------------\ | Opinions expressed above do not necessarily | -- Allan Pratt, Atari Corp. | reflect those of Atari Corp. or anyone else. | ...lll-lcc!atari!apratt \----------------------------------------------/ (APRATT on GEnie) Es muž hier zugegeben werden, daž FOseINST in das letzte obere Kilobyte des Speicher gequetscht wird, um eine Speicherfragmentierung zu vermeiden. Demnach ist bei Abstrzen dieses Accessories in der Bootphase immer zun„chst ein Versuch mit FOseINST im Auto-Ordner zu machen. Disclaimer: ----------- Fr die Funktionsf„hgkeit dieses Software-Produktes wird weder eine Gew„hr gegeben, noch kann eine Haftung fr eventuell auftretende Sch„den an Ihrer Hard- und Software bernommen werden. Adresse: -------- Hayo Schmidt Grotiusweg 1 22587 Hamburg EMail: ------ MausNet: Hayo Schmidt@HH Bankverbindung: --------------- Deutsche Bank Hamburg, Bankleitzahl 200 700 00, Konto-Nr. 56 62 671 ---------------------------------------- [ýFONTselector is a trademark of HayoSoft] [þGFA-BASIC is a trademark of GFA-Systemtechnik]