GEMFONT ------- Ein GEMgesttzter Zeichensatzeditor fr GDOS-Pixelfonts Version 1.21 Oktober 1992 bis Juli 1993 (c) 1991-93 bei Sascha Blank Shareware-Version 2. komplett berarbeitete und stark erg„nzte Fassung "Fr moderne GEM-Programme eignet sich [ ... ] GNU-C [ nicht ]." (ST-Computer 2/93, Seite 27) 1 Wichtiger Hinweis: Mit dem Erscheinen der Version 1.20 verlieren alle Handbcher (GEMFONT.TXT und GEMFONT.WP) von frheren GEMFONT-Versionen ihre Gl- tigkeit. Sollten Sie noch „ltere Handbcher besitzen, dann bitte ich Sie, diese nicht mehr zu benutzen oder zu verbreiten und sich stattdes- sen dieses neue Handbuch auszudrucken und nur noch dieses zu benutzen. Dieser Schritt wurde notwendig, da sich seit dem ersten Erstellen des Handbuchs inzwischen soviele Žnderungen ergeben haben, daž eine kom- plette šberarbeitung unumg„nglich wurde, um es wieder auf den aktuel- len Stand der Entwicklung zu bringen. Žltere GEMFONT-Handbcher enthal- ten Informationen, die inzwischen berholt oder sich als falsch heraus- gestellt haben und deren Benutzung zu unn”tigen Problemen fhren k”nn- te. 2 Inhaltsverzeichnis 1. Rechtliches . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1. Bedingungen fr die Weitergabe von GEMFONT . . . . . . . 6 1.2. Haftungsausschluž . . . . . . . . . . . . . . . . . . . . 6 1.3. Urheberrechte und deren Schutz . . . . . . . . . . . . . 6 1.4. Bestimmungen zur Verbreitung selbsterstellter Fonts . . . 7 2. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1. Warum berhaupt GEMFONT? . . . . . . . . . . . . . . . . 8 2.2. Diese Anleitung . . . . . . . . . . . . . . . . . . . . . 8 2.4. Systemanforderungen . . . . . . . . . . . . . . . . . . . 10 2.5. Die Formalit„ten . . . . . . . . . . . . . . . . . . . . 10 2.5.1. Wie bekomme ich GEMFONT? . . . . . . . . . . . . . 10 2.5.2. Das Shareware-Prinzip . . . . . . . . . . . . . . 10 2.5.3. Die Registrierung . . . . . . . . . . . . . . . . 11 2.5.4. Meine Gegenleistung . . . . . . . . . . . . . . . 11 2.6. Sonstige Leistungen . . . . . . . . . . . . . . . . . . . 11 2.6.1. Wie bekommt man ein Update? . . . . . . . . . . . 12 2.6.2. Programmfehler . . . . . . . . . . . . . . . . . . 12 2.6.3. Probleme mit GEMFONT . . . . . . . . . . . . . . . 12 2.6.4. Vorschl„ge . . . . . . . . . . . . . . . . . . . . 12 2.7. Austausch von Fonts . . . . . . . . . . . . . . . . . . . 12 2.8. Danksagungen . . . . . . . . . . . . . . . . . . . . . . 13 3. Installation und Bedienung . . . . . . . . . . . . . . . . . . . 14 3.1. Installation und Programmstart . . . . . . . . . . . . . 14 3.2. Die GEM-Erweiterungen von GEMFONT . . . . . . . . . . . . 14 3.2.1. Wertgebundene Slider . . . . . . . . . . . . . . . 14 3.2.2. Modale verschiebbare Dialoge . . . . . . . . . . . 14 3.2.3. šber Tastatur bedienbare Dialogboxen . . . . . . . 14 3.2.4. Menzeilen in Fenster . . . . . . . . . . . . . . 15 3.2.5. RaveUp-Mens . . . . . . . . . . . . . . . . . . . 15 3.2.6. Das Klemmbrett . . . . . . . . . . . . . . . . . . 15 3.3. Das Editorfenster . . . . . . . . . . . . . . . . . . . . . . 15 3.3.1. Aufbau . . . . . . . . . . . . . . . . . . . . . . 15 3.3.2. Bedienung . . . . . . . . . . . . . . . . . . . . 16 3.4. Bedienung der Fenster ber Funktionstasten . . . . . . . 16 3.5. Sonstige hilfreiche Funktionen . . . . . . . . . . . . . 17 4. Das GDOS-Fontformat . . . . . . . . . . . . . . . . . . . . . . 18 4.1. Einfhrung . . . . . . . . . . . . . . . . . . . . . . . 18 4.2. Der Aufbau von Fonts . . . . . . . . . . . . . . . . . . 18 4.3. Der Fontheader . . . . . . . . . . . . . . . . . . . . . 18 5. Das Hauptmen . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.1. Das Men "GEMFONT" . . . . . . . . . . . . . . . . . . . 26 5.1.1. "šber GEMFONT..." (Control Z) . . . . . . . . . . 26 5.2. Das Men "Datei" . . . . . . . . . . . . . . . . . . . . 26 5.2.1. "Neu anlegen..." (Control N) . . . . . . . . . . . 26 5.2.2. "™ffnen..." (Control O) . . . . . . . . . . . . . 26 5.2.3. "Schliežen..." (Control U) . . . . . . . . . . . . 27 5.2.4. "Sichern" (Control S) . . . . . . . . . . . . . . 27 5.2.5. "Sichern unter..." (Control M) . . . . . . . . . . 27 5.2.6. "Sichern Metafont..." (Control H) . . . . . . . . 28 5.2.7. "Abbrechen..." (Control D) . . . . . . . . . . . . 28 3 5.2.8. "Entfernen..." (Control L) . . . . . . . . . . . . 28 5.2.9. "Importieren..." (Control I) . . . . . . . . . . . 28 5.2.9.1. Bitmap-Fonts . . . . . . . . . . . . . . . 28 5.2.9.2. Signum.Zwei!-Fonts . . . . . . . . . . . . 29 5.2.9.3. METAFONT-PK-Files . . . . . . . . . . . . . 30 5.2.10. "Exportieren..." . . . . . . . . . . . . . . . . 31 5.2.11. "Clipboard laden" . . . . . . . . . . . . . . . . 31 5.2.12. "Clipboard speichern" . . . . . . . . . . . . . . 31 5.2.13. "Clipboard l”schen" . . . . . . . . . . . . . . . 31 5.2.14. "Ende" (Control Q) . . . . . . . . . . . . . . . 31 5.3. Das Men "Block" . . . . . . . . . . . . . . . . . . . . 31 5.3.1. "Blockanfang" (Control B) . . . . . . . . . . . . 31 5.3.2. "Blockende" (Control K) . . . . . . . . . . . . . 32 5.3.3. "Alles ausw„hlen" (Control A) . . . . . . . . . . 32 5.3.4. "Ausschneiden" (Control X) . . . . . . . . . . . . 32 5.3.5. "Kopieren" (Control C) . . . . . . . . . . . . . . 32 5.3.6. "Einfgen" (Control V) . . . . . . . . . . . . . . 32 5.3.7. "Blockkopiermodi..." . . . . . . . . . . . . . . . 32 5.4. Das Men "Puffer" . . . . . . . . . . . . . . . . . . . . 32 5.4.1. "Maske nach Puffer..." (Alternate P) . . . . . . . 33 5.4.2. "Puffer nach Maske..." (Alternate M) . . . . . . . 33 5.4.3. "Puffer speichern..." (Alternate U) . . . . . . . 33 5.4.4. "Puffer laden..." (Alternate O) . . . . . . . . . 33 5.5. Das Men "Parameter..." . . . . . . . . . . . . . . . . . 33 5.5.1. "Speicherstatistik..." . . . . . . . . . . . . . . 33 5.5.2. "Parameter einstellen..." (Alternate Q) . . . . . 34 5.5.3. "Parameter speichern..." . . . . . . . . . . . . . 36 5.6. Das Men "Fonts" . . . . . . . . . . . . . . . . . . . . 36 5.6.1. "™ffne xxxxxxxx.xxx" (Control 1 bis 7) . . . . . . 36 6. Das Editorfenstermen . . . . . . . . . . . . . . . . . . . . . 37 6.1. Das Men "GEMFONT" . . . . . . . . . . . . . . . . . . . 37 6.1.1. "šber GEMFONT..." . . . . . . . . . . . . . . . . 37 6.2. Das Men "Zeichen" . . . . . . . . . . . . . . . . . . . 37 6.2.1. "Auswahl..." (Funktionstaste 1) . . . . . . . . . 37 6.2.2. "Breite" (Funktionstaste 2) . . . . . . . . . . . 37 6.2.3. "Hor. Verschiebung..." (Alternate V) . . . . . . . 37 6.2.4. "Zentrieren..." (Funktionstaste 7) . . . . . . . . 38 6.2.5. "Ausmaž anpassen..." (Funktionstaste 8) . . . . . 38 6.2.6. "Werkzeuge..." (Funktionstaste 3) . . . . . . . . 38 6.2.7. "Schieben/Rotieren..." (Funktionstaste 4) . . . . 39 6.2.8. "Spiegeln/Drehen..." (Funktionstaste 5) . . . . . 39 6.2.9. "Stauchen/Strecken..." (Funktionstaste 6) . . . . 39 6.2.10. "Verfetten" . . . . . . . . . . . . . . . . . . . 40 6.2.11. "Komplett l”schen" (Alternate L) . . . . . . . . 40 6.2.12. "Zeichen aufr„umen" . . . . . . . . . . . . . . . 40 6.3. Das Men "Editor" . . . . . . . . . . . . . . . . . . . . 40 6.3.1. "Editormaskengr”že..." (Alternate C) . . . . . . . 40 6.3.2. "Editorrastergr”že..." (Alternate R) . . . . . . . 41 6.3.3. "Hilfspunkt setzen" (Funktionstaste 9) . . . . . . 41 6.3.4. "Hilfspunkt l”schen" (Alternate W) . . . . . . . . 41 6.3.5. "Alle Punkte l”schen" . . . . . . . . . . . . . . 41 6.3.6. "Žnderungen zurcknehmen" (UNDO) . . . . . . . . . 41 6.3.7. "Undopuffer aktualisieren" (Control UNDO) . . . . 41 6.4. Das Men "Fontheader" . . . . . . . . . . . . . . . . . . 41 6.4.1. "Zeichenextrema..." (Alternate Z) . . . . . . . . 41 6.4.2. "Fontlinien..." (Alternate A) . . . . . . . . . . 42 6.4.3. "Fontflags..." (Alternate B) . . . . . . . . . . . 42 4 6.4.4. "Fontkenndaten..." (Alternate D) . . . . . . . . . 42 6.4.5. "Kursivschrift..." (Alternate K) . . . . . . . . . 42 6.4.6. "Fettschrift..." (Alternate F) . . . . . . . . . . 42 6.4.7. "Unterstreichen..." (Alternate G) . . . . . . . . 42 6.4.8. "Helle Schrift..." (Alternate H) . . . . . . . . . 42 6.5. Schriftproben . . . . . . . . . . . . . . . . . . . . . . 42 7. H„ufige Fragen, Probleme und Tips . . . . . . . . . . . . . . . 44 8. Bezugsquellen fr GDOS . . . . . . . . . . . . . . . . . . . . . 46 8.1. GDOS . . . . . . . . . . . . . . . . . . . . . . . . . . 46 8.2. GDOS-Fonts . . . . . . . . . . . . . . . . . . . . . . . 46 9. Interna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.1. Wie alles anfing . . . . . . . . . . . . . . . . . . . . 48 9.2. Ein paar Fakten . . . . . . . . . . . . . . . . . . . . . 48 9.3. Laden und Speichern von Fonts . . . . . . . . . . . . . . 48 10. Fontregistrierung . . . . . . . . . . . . . . . . . . . . . . . 50 10.1. Die Idee . . . . . . . . . . . . . . . . . . . . . . . . 50 10.2. Die Registrierung . . . . . . . . . . . . . . . . . . . 50 10.3. Anfragen . . . . . . . . . . . . . . . . . . . . . . . . 50 Antrag auf Registrierung . . . . . . . . . . . . . . . . . . . . . 51 5 1. Rechtliches 1.1. Bedingungen fr die Weitergabe von GEMFONT GEMFONT wird als Shareware vertrieben. Es ist ausdrcklich erwnscht, daž GEMFONT weitergegeben wird. Dies darf jedoch nur in vollst„ndiger und unver„nderter Form geschehen, d.h. es mssen stets alle Dateien unver„ndert weitergegeben werden. Das Uploaden in Mailboxen, FTP-Server und anderen Netzen ist ebenfalls ausdrcklich erwnscht, da ich selbst keinen direkten Zugang zu Mail- boxnetzen habe. Es ist aber ausdrcklich verboten, GEMFONT kosten- pflichtig im PD-Versand zu vertreiben (Ausnahmen erfordern eine schriftliche Genehmigung meinerseits). Zuwiderhandlungen k”nnen recht- lich verfolgt werden! Ansonsten: Bitte empfehlen und verbreiten Sie GEMFONT weiter! 1.2. Haftungsausschluž Obwohl GEMFONT mit grožer Sorgfalt erstellt worden ist, kann ich nicht ausschliežen, daž noch Fehler im Programm und/oder der Anleitung exi- stieren. Deshalb stelle ich folgendes fest: Die in dieser Dokumentation enthaltenen Informationen sind zum Zeitpunkt ihrer Ver”ffentlichung wahrscheinlich korrekt. Trotzdem werden alle Informationen ohne irgendeine Garantie weitergegeben. Ich lehne jede Haftung fr Sch„den und sonstige Folgen ab, die direkt oder indirekt durch die Benutzung von GEMFONT und/oder der Dokumentation entstanden sind. Dies gilt auch fr den Fall, daž die Sch„den auf Fehler im Programm und/oder der Dokumentation zurckzufhren sind. Die Benutzung erfolgt stets ausschliežlich auf eigene Gefahr. Ebenso garantiere ich nicht dafr, daž GEMFONT fr einen bestimmten Zweck tauglich ist. Des weiteren lehne ich jede Haftung fr Verst”že gegen das Urheberrecht ab, die in Zusammenhang mit dem nachfolgen- den Kapitel "Urheberrechte und deren Schutz" stehen. Viele der in der Anleitung erw„hnten Firmen- und Produktnamen sind eigentragene Warenzeichen und als solche zu betrachten, auch wenn dies nicht explizit erw„hnt wird. An einigen Stellen im Handbuch kommentiere ich bestimmte Dinge positiv oder negativ. Ich weise darauf hin, daž es sich bei diesen Žužerugen um meine ganz pers”nliche Meinung han- delt, auch wenn sie dem ein oder anderen Leser nicht gefallen mag. Sie drfen GEMFONT fr den Eigengebrauch modifizieren, z.B. laufzeit- packen oder patchen. Selbstverst„ndlich bernehme ich erst recht keine Verantwortung fr solche modifizierten Versionen. Zudem verbiete ich die Weitergabe solcher modifizierter Versionen an Dritte. 1.3. Urheberrechte und deren Schutz 6 Mit GEMFONT ist es u.a. m”glich, Signum.Zwei!-, METAFONT- und Bitmap- Fonts in GDOS-Fonts umzuwandeln. Bitte achten Sie dabei unbedingt auf den urheberrechtlichen Schutz der Fonts, die Sie konvertieren wollen. Die konvertierten Fonts unterliegen den gleichen rechtlichen Bestimmungen wie die Originalfonts! Unterliegen die zu konvertierenden Fonts keinem Urheberrecht bzw. hat der/die/die Autor/in/en das Recht auf die Weitergabe oder die Konver- tierung der Fonts in andere Formate nicht weiter eingeschr„nkt, so spricht im allgemeinen nichts dagegen, diese nach der Konvertierung in GDOS-Fonts erneut in Umlauf zu bringen. Dies trifft auf viele Si- gnum.Zwei! und METAFONT-Fonts zu, die meist den Status "Public Domain" oder „hnlich tragen. Daneben gibt es Fonts, die urheberrechtlich geschtzt sind, beispiels- weise die Signum.Zwei!-Fonts der "Professional Font-Disks". In diesem Fall beziehen sich die Einschr„nkungen der Weitergabe sowohl auf die Originale als auch auf die daraus konvertierten Fonts. In der Regel drfen diese Fonts nicht weitergegeben werden, so daž eine Konvertie- rung ins GDOS-Format ausschliežlich fr den eigenen Gebrauch erlaubt ist, deren Weitergabe an andere ist aber nicht erlaubt. Bitte beachten Sie diesen Hinweis in Ihrem eigenen Interesse. Im Zwei- felsfall sollten Sie das Einverst„ndnis des/der/der Autor/in/en einho- len oder zu Ihrem eigenen Schutz von einer Verbreitung absehen. 1.4. Bestimmungen zur Verbreitung selbsterstellter Fonts Die Verbreitung von Fonts, die von Ihnen selbst erstellt wurden und ausschliežlich ihrem eigenen Copyright unterliegen (also frei von Rechten Dritter sind), wird hiermit uneingeschr„nkt erlaubt. Es mssen weder Lizenzgebhren an den Programmautor gezahlt werden noch etwa muž um dessen Erlaubnis zur Verbreitung der Fonts gebeten werden. Dies gilt auch fr den Fall, daž die Fonts als Teil eines kommerziellen Programm- pakets verbreitet werden. Die einzige Auflage, die ich stelle, ist diejenige, daž alle Produkte, die mit GEMFONT erstellte Fonts beinhalten, einen Hinweis auf GEMFONT tragen mssen. Dieser sollte beispielsweise im Handbuch, der Anleitung oder dem Programm selbst stehen und die Form "Die diesem Programm beiliegenden GDOS-Fonts wurden mit dem Programm 'GEMFONT' von Sascha Blank, (c) 1991-1993 erstellt." haben. Zudem muž erw„hnt werden, wie man GEMFONT beim Programmautor beziehen kann, etwa so: "Eine Kopie von GEMFONT erhalten Sie beim Autor von GEMFONT durch Zusendung eines frankierten Rckumschlags inkl. 3,5"- Diskette an folgende Adresse: Sascha Blank, Brentanostraže 21, 54294 Trier" Wenn Sie eigene Fonts verbreiten wollen, so w„re ich dankbar, wenn Sie mir eine Kopie der Fonts zukommen lassen wrden. Dies ist jedoch nicht zwingend n”tig. Wenn Sie weitere Fragen haben, dann wenden Sie sich bitte an mich. 7 2. Einleitung 2.1. Warum berhaupt GEMFONT? "Jetzt habe ich endlich einen GDOS-Druckertreiber, und dann gibt es keine Fonts dafr!" Der Autor, im Sommer 1992 Alles fing an, als ich vor noch gar nicht so langer Zeit die ersten Applikationen bekam, die ihre Ausgaben ber GDOS t„tigten. Also kramte ich GDOS hervor und installierte es. Da ich zwar einen NEC-Pinwriter besaž, aber nur einen Druckertreiber und zwei Fonts fr den Epson FX-85 hatte, mužte ich zwangsl„ufig diese benutzen. Der Ausdruck klappte zwar, doch von Schw„rzung oder hochaufl”sender Grafik konnte keine Rede sein. "Du brauchst einen Druckertreiber speziell fr deinen 24-Nadler!" dachte ich mir und begann zu suchen, bis mir schon bald das FontGDOS- Paket in die H„nde fiel. Da war u.a. ein passender Treiber dabei, der sofort installiert wurde. Die Grafikausdrucke waren jetzt sehr viel besser (vor allem hochaufl”send), nur die Schriften waren jetzt etwa viermal zu klein geraten. "Du brauchst passende GDOS-Schriften fr deinen 24-Nadler!" dachte ich mir und begann zu suchen. Ich suchte und suchte und suchte, fand aber keine. Neidisch blickte ich (wie wohl viele andere Anwender auch) auf die ber 1500 Signum.Zwei!-Schriften, die sowohl an Auswahl als auch an Qualit„t kaum mehr Wnsche offenliežen. "Es mžte ein Programm geben, mit dem man diese Schriften in GDOS- Schriften umwandeln kann!" dachte ich mir und begann zu suchen, doch auch diesmal wieder ohne Erfolg. Da entschlož ich mich, selbst aktiv zu werden und einen Fonteditor speziell fr GDOS-Fonts zu schreiben, der den Entwurf von Fonts m”g- lichst einfach machen soll. Inzwischen hat Atari selbst die Initiative ergriffen und mit Speedo ein GDOS geschaffen, das den Zugriff auf die sehr professionellen Vektor- fonts erm”glicht. Dies bedeutet jedoch keineswegs das Aus fr die GDOS- Pixelfonts. Die Bitstream-Fonts fr Speedo werden kommerziell entwickelt und ver- trieben, z.Z. liegen die Preise ab 150 DM aufw„rts fr ein Fontpaket. Dies ist sicherlich zuviel fr die Anwender, die GDOS nur gelegentlich benutzen. Zudem ist erst ein kleiner Bruchteil der Schriftenvielfalt der ber 1000 Bistream-Fonts auf dem Atari verfgbar. Anders sieht es bei den Signum.Zwei! oder METAFONT-Schriften aus. Hier gibt es bereits ber 1500 Signum.Zwei! und ber 50 hochprofessionelle METAFONT-Schriften, die direkt fr den Atari und zum allergr”žten Teil kostenlos zur Verfgung stehen. Sie sehen, daž GDOS neben Speedo weiterhin einen berechtigten Platz haben wird. 2.2. Diese Anleitung Diese Anleitung beschreibt (hoffentlich) alle Fakten, die n”tig sind, um alle Funktionen von GEMFONT bedienen und deren Wirkung verstehen zu k”nnen. Dazu habe ich mich meist an das Prinzip "lieber lange und genau als zu kurz und zu knapp erkl„ren" gehalten, denn umfangreiche Erl„ute- rungen sind n”tig, weil besonders Anf„nger nicht ber das zugegeben teilweise komplexe Insiderwissen verfgen; aber auch, weil GDOS und 8 besonders seine Interna bis heute nur sp„rlich dokumentiert sind und man viele Fakten selbst ermitteln muž. In n„chster Zukunft wird eine Anleitung speziell fr "GDOS-Neulinge" erscheinen, in der alle Schritte zum Arbeiten mit GEMFONT und GDOS erkl„rt sind. 2.3. Was GEMFONT so alles kann GEMFONT bietet unter anderem folgende Eigenschaften: - komplett in GEM eingebunden, dadurch lauff„hig auf allen Atari- Systemen in jeder Aufl”sung. - Fertig angepažt an MultiGEM und MultiTOS durch verschiebbare modale Dialogboxen sowie durch die Nutzung des Klemmbretts. - Steigerung des Bedienungskomforts durch Popup-Mens, ber Tastatur bedienbare Dialoge und Mens, Menzeilen in Fenstern, benutzerde- finierte Objekte und einigem mehr. - Bearbeitung von bis zu sieben Fonts gleichzeitig, die je in einem eigenen Fenster bearbeitet werden. (Diese Anzahl lieže sich durch- aus noch steigern, doch mehr Fonts w„ren wohl nicht mehr sinn- voll.) - Import von Signum.Zwei!-Drucker- und Editorfonts (9- und 24-Nadel Format und 300 DPI-Laserformat). - Import und Export von reinen Bitmap-Fonts (Degas Format). - Laden und Speichern von Fonts im Motorola- und Intelformat. - Speichern von Metafont-Informationsfiles. - Teilweise Reparatur und Korrektur von defekten Fonts und solchen, die in falschen Formaten gespeichert wurden (nahezu alle GDOS- Fonts aus den Anfangszeiten von GDOS). - Manipulation aller Parameter im Zeichensatzheader m”glich, einige davon werden auf Wunsch automatisch berechnet bzw. approximiert. - Verkleinerung und Vergr”žerung einzelner Zeicher oder ganzer Fonts. - zahlreiche Editorhilfen wie eingeblendete Ausrichtungslinien oder frei w„hlbare Hilfspunkte. - zahlreiche Werkzeuge wie Linien, Rechtecke, Rahmen. - zahlreiche Effekte wie Spiegeln, Drehen, Verschieben, Rotieren, Verfetten, Stauchen, Aush”hlen, Umranden, Invertieren, Zentrieren etc. - Das editierte Zeichen wird st„ndig in Echtgr”že angezeigt. - Eine beliebige Zeichenprobe kann auf dem Bildschirm zur Gesamtbe- urteilung des Fonts ausgegeben werden. Sofern ein GDOS-Drucker- treiber vorhanden ist, kann ein Ausdruck auch auf einen Drucker in Echtgr”že erfolgen. - komfortable Puffer- und Blockfunktionen. Neu ab Version 1.10: - Hochoptimierte Routinen sorgen fr deutliche Geschwindigkeitszu- w„chse beim Verg”žern und Verkleinern gegenber Vorversionen (Fak- tor 10 bis 15). - Bei Schriftproben k”nnen jetzt auch die VDI-Textattribute hinzu- geschaltet und kombiniert werden. - Verbesserte Druckroutine - Neue Zeichenwerkzeuge wie beispielsweise Halb- und Viertelkreise. Neu ab Version 1.20: 9 - Jetzt ist auch der Import von TeX-/METAFONT-PK-Fontdateien m”g- lich. Damit er”ffnet sich GDOS eine Welt von h”chst professio- nellen Fonts. - šberarbeitete Zeichenauswahlbox 2.4. Systemanforderungen GEMFONT arbeitet mit jeder Bildschirmaufl”sung, jeder Farbf„higkeit, jedem Monitor und jeder Grafikkarte, sofern sie ordnungsgem„ž durch das VDI untersttzt wird. Trotzdem sollte der Monitor wegen der Menzeile und der Dialoge eine Mindestaufl”sung von 80 mal 25 Zeichen bieten (muž aber nicht). Der Betrieb ist auf allen Atari ST/STE/TT/Falcon-Systemen mit jeder beliebigen TOS-Version m”glich (>= TOS 1.04 sollte es aber schon sein). Unter MiNT und MultiTOS gibt es erfahrungsgem„ž ebenfalls keine Proble- me. Eine Festplatte ist nicht n”tig, aber empfehlenswert. Zum Betrieb sollten mindestens 350 Kbyte freier Speicher vorhanden sein, da GEMFONT selbst mindenstens 280 Kbyte fr sich beansprucht. Beim Entwurf von Fonts fr hochaufl”sende Drucker sollte mindestens ein Mbyte Gesamtspeicher zur Verfgung stehen, da Fonts in hohen Aufl”sun- gen im Editor mehrere Hundert KByte in Anspruch nehmen (wohlgemerkt nur im Editor). Wer METAFONT-PK-Files importieren m”chte, der ist mit 2 oder besser 4 MByte gut beraten, denn gr”žere Fonts in 360-DPI Aufl”- sung ben”tigen enorm viel Platz (fr CMINCH.PK reichen selbst 6 MByte nicht). Ein GDOS ist nicht notwendig, aužer, Sie wollen eine Schriftprobe auch auf dem Drucker begutachten. In diesem Fall muž ein GDOS mit einem passenden GDOS-Druckertreiber installiert sein. Fr den Druckertreiber ben”tigen Sie aber keine passenden Fonts. Da GEMFONT seine Ausgaben ausschliežlich ber GEM t„tigt, ist der Einsatz eines Bildschirmbeschleunigers wie NVDI dringend zu empfehlen. 2.5. Die Formalit„ten 2.5.1. Wie bekomme ich GEMFONT? Eine Kopie der neusten Version von GEMFONT k”nnen Sie direkt bei mir erhalten. Dazu schicken Sie mir einfach eine 3,5"-Diskette (DD, auf Wunsch auch HD) sowie einen an sich selbst adressierten und ausreichend frankierten Rckumschlag zu. Meine Adresse finden Sie weiter unten. 2.5.2. Das Shareware-Prinzip GEMFONT wird als Shareware betrieben. Fr diejenigen, die noch nicht wissen, was es damit auf sich hat, sei das Prinzip noch einmal kurz erkl„rt (siehe auch den Abschnitt "Rechtliches"). Shareware bedeutet, daž Sie beim Erhalt des Programms erst mal nichts zahlen mssen. Sie k”nnen dann ber einen angemessenen Zeitraum (bis zu einem Monat ist angemessen) das Programm auf Herz und Nieren prfen, ohne daž dabei Kosten entstehen. Wenn Ihnen das Programm nicht gef„llt, dann vergessen Sie es am besten wieder. Sollte es Ihnen aber gefallen und Sie benutzen es regelm„žig, dann wird die Sharewaregebhr f„llig, die an der Programmautor zu zahlen ist (also an mich). "Warum soll ich den berhaupt bezahlen?" werden Sie sich wohl fragen. 10 Nun, in diesem Programm steckt viel Arbeit (inzwischen ber zwei Jahre und alles in meiner Freizeit neben dem Studium), fr die ich wenigstens eine kleine Entsch„digung haben m”chte, schliežlich erhalten Sie ja auch ein professionelles Produkt fr einen sehr gnstigen Preis. 2.5.3. Die Registrierung Bei GEMFONT betr„gt die Shareware-Gebhr 30,- DM (ich nehme aber auch gerne mehr). Diesen Betrag k”nnen Sie mir auf zwei verschiedene Arten zukommen lassen: 1.) als Bargeld oder 2.) in Form eines (Verrechnungs-)Schecks Nochmal meine Adresse: Sascha Blank Brentanostraže 21 54294 Trier Bundesrepublik Deutschland Die Registrierung kann nur schriftlich erfolgen, fllen Sie dazu bitte das Formular am Ende dieser Anleitung aus und schicken Sie mir es zu. Generell: wenn Sie mit mir Kontakt aufnehmen, dann bitte ich um ein wenig Geduld, sollte es einmal etwas dauern; das Studium geht halt vor. Wenn Sie sich schriftlich an mich wenden, legen Sie bitte ausreichend Rckporto bei (entf„llt bei der Registrierung). Fr Anwender mit Zugang zum InterNet bin ich auch ber "blank@server.uni-trier.de" erreichbar. Alternativ k”nnen Sie auch die Adresse "blank@treveris.uni-trier.de" verwenden. 2.5.4. Meine Gegenleistung Wenn Sie mir die Shareware-Gebhr zukommen lassen, werden Sie bei mir als Anwender von GEMFONT registriert. Das bringt ihnen folgende Vortei- le: - Sie erhalten die neueste Version des Programms zugesandt. - Sie k”nnen jederzeit ein Update bei mir anfordern. - Wenn Sie ein Problem mit GEMFONT haben, dann k”nnen Sie sich je- derzeit an mich wenden. - Wenn Sie einen Fehler gefunden haben, k”nnen Sie eine korrigierte Version von mir erhalten. - Sie k”nnen sich mit "gr”žeren" Wnschen an mich wenden (so gesche- hen beim Import von METAFONT-PK-Files). - Sie erhalten neuere Versionen, die m”glicherweise nur noch regi- strierten Anwendern zug„nglich gemacht werden. - Wen Sie ber das InterNet erreichbar sind und Ihre Email-Adresse angeben, dann werde ich Sie ber die Entwicklung von GEMFONT auf dem Laufenden halten (Updates etc.) 2.6. Sonstige Leistungen 2.6.1. Wie bekommt man ein Update? 11 Als registrierter Anwender k”nnen Sie jederzeit ein Update von GEMFONT bei mir erhalten. Dazu schicken Sie mir einfach eine 3,5"-Diskette (DD, auf Wunsch auch HD) sowie einen an sich selbst adressierten und ausrei- chend frankierten Rckumschlag zu. Sollten Sie nicht genau wissen, ob es bereits ein Update gibt, dann schicken Sie mir trotzdem eine Diskette und sagen mir zus„tzlich, welche die neuste Version ist, die Sie besitzen. Sollte diese Version noch die aktuelle sein, dann behalte ich Ihre Diskette einfach solange, bis es eine neuere Version gibt. Diese schicke ich Ihnen dann automa- tisch zu, wenn sie ver”ffentlicht wird. Updates von GEMFONT werden auch in mehr oder weniger regelm„žigen Abst„nden auf die wichtigsten FTP-Server in Deutschland upgeloaded (vorrangig ftp.tu-clausthal.de). Bei anderen Netzen (etwa Mausnetz) bin ich auf die Mithilfe anderer Anwender angewiesen, da ich keinen Zugang zu diesem Netz habe. Die neueste Version gibt es natrlich zuerst bei mir. 2.6.2. Programmfehler Wenn Sie glauben, einen Fehler im Programm oder in der Anleitung gefun- den zu haben, dann bitte ich Sie, mir diesen mitzuteilen. Dazu ben”tige ich eine genaue Beschreibung ihres Systems (Versionsnummer von GEMFONT, TOS-Version, Speicherausbau, Accessories, Hardware etc.), je genauer, um so besser. Sollte der Fehler rekonstruierbar sein, so sagen Sie mir bitte, wie. Wenn Sie mir eine Diskette mitschicken (Modalit„ten siehe oben), dann erhalten Sie eine fehlerbereinigte Version, sofern ich den Fehler finden und beheben kann. Tritt der Fehler in Zusammenhang mit bestimm- ten Fonts auf, dann ist es hilfreich, wenn Sie mir die Fonts auf die Diskette mitkopieren. 2.6.3. Probleme mit GEMFONT Sollten Sie einmal ein Problem mit GEMFONT haben und es ohne anderwei- tige Hilfe nicht l”sen k”nnen, dann k”nnen Sie sich an mich wenden. Ich werde mich im Rahmen meiner M”glichkeiten bemhen, Ihnen zu helfen. Auch hier gilt: Je genauer Sie mir Ihr Problem und die Umst„nde be- schreiben, desto eher kann ich Ihnen helfen. 2.6.4. Vorschl„ge Wenn Sie besondere Wnsche, Erweiterungen oder Vorschl„ge haben, die Sie gerne in zuknftigen Versionen von GEMFONT realisiert sehen wrden, dann teilen Sie mir diese mit. Ich werde mich dann bemhen, diese aufzugreifen und nach eingehender Prfung in die Tat umzusetzen. 2.7. Austausch von Fonts Wenn Sie neue Fonts entworfen bzw. konvertiert haben und glauben, sie k”nnten auch fr andere Benutzer ntzlich sein, dann schicken Sie mir diese doch zu, sofern sich dies mit den rechtlichen Bestimmungen ver- einbaren l„žt (siehe Kapitel 1). Ich werde diese Fonts dann zusammen mit GEMFONT verbreiten, soweit es die Umst„nde, d.h. der Platz auf der Diskette zul„žt. Vielleicht entsteht so eine kleine (oder auch grože) 12 Sammlung an hochwertigen GDOS-Fonts. 2.8. Danksagungen Bedanken m”chte ich mich bei - der Free Software Foundation fr ihren hervorragenden C-Compiler und all die anderen Utilities, die unter ihrer Feder entstehen, sowie all denjenigen, die sie immer wieder auf TOS/MiNT portieren. - Eric R. Smith, Nick Castellano, Jhawar Bammi und allen anderen fr ihre ausgezeichneten C-Bibliotheken und ihre Mitarbeit an MiNT. - dem Autorentrio Jankowski/Rabich/Reschke fr ihr Profibuch (wann kommt die Fortsetzung?) - dem ST-Magazin fr sein Expertenforum, ohne daž ich so manches Mal auf dem Schlauch gestanden h„tte. - Joachim H”hne aus Osnabrck, der sich als erster bei mir regi- strieren liež. Selbstverst„ndlich m”chte ich mich auch bei allen anderen registrieten Anwendern fr ihre Ehrlichkeit danken. - Betatester Stefan Haake, der mir dabei hilft, die noch unerforsch- ten Fehler zu erkunden. 13 3. Installation und Bedienung 3.1. Installation und Programmstart Die Installation von GEMFONT gestaltet sich einfach. Kopieren Sie die Dateien GEMFONT.APP, GEMFONT.RSC und GEMFONT.INF (sofern vorhanden) an einen gleichen, aber beliegen Platz, der Ihnen zusagt. GEMFONT kann als GEM-Applikation nicht aus dem AUTO-Ordner gestartet werden. Sollten Sie es versehentlich doch einmal versuchen, dann be- merkt GEMFONT dies und verhindert Schlimmeres. Eine Installation als Accessory durch Umbenennen von GEMFONT.APP in GEMFONT.ACC ist zwar m”glich, doch GEMFONT untersttzt den Accessorymodus nicht weiter, u.a. aufgrund der komplexen internen Speicherverwaltung. In diesem Fall be- legt GEMFONT zwar einen Accessoryeintrag, doch der Versuch, dieses Accessory zu aktivieren, wird ignoriert. Mit der zunehmenden Bedeutung von MultiTOS stellt dies jedoch keinen ernsthaften Verlust dar. Werden GEMFONT Fonts als Parameter bergeben (etwa durch Ziehen eines Fonts auf das GEMFONT-Icon unter Newdesk oder Gemini), so werden diese Fonts automatisch geladen. 3.2. Die GEM-Erweiterungen von GEMFONT GEMFONT benutzt neben den blichen GEM-Elementen noch weitere, um den Benutzerkomfort weiter zu steigern. 3.2.1. Wertgebundene Slider Wer XCONTROL kennt, der kennt auch die Slider, bei deren Bewegung irgendeine Anzeige gleichzeitig aktualisiert wird. Auch GEMFONT benutzt solche Slider. Ihre Bedienung funktioniert genau wie die Fenster-Sli- der. 3.2.2. Modale verschiebbare Dialoge Modale verschiebbare Dialoge sind zuerst einmal nichts anderes als Dialoge, die in einem Fenster liegen. An der Bedienung „ndert sich nichts, aužer, daž der Dialog verschoben werden kann, indem man das Fenster verschiebt. Der grože Vorteil dieser speziellen Art der Dialogverwaltung wird erst unter MultiTOS oder MultiGEM deutlich. Wird dort ein normaler Dialog behandelt, so stehen in diesem Moment alle anderen GEM-Prozesse im Speicher still, da intern der Screenmanager gesperrt werden muž, denn nur so kann die korrekte Behandlung des Dialogs garantiert werden. Dieser Zustand ist in einer Multitaskingumgebung zweifellos uner- wnscht. Liegt der Dialog jedoch in einem Fenster, dann kann mit Hilfe eigener Routinen auf ein Sperren des Screenmanagers verzichtet werden, ohne die korrekte Behandlung der Dialoge zu gef„hrden. Das Resultat ist, daž andere Prozesse auch w„hrend der Dialog bearbeitet wird weiterarbeiten. 3.2.3. šber Tastatur bedienbare Dialogboxen Alle Dialoge sind ber Tastatur bedienbar. Wenn in einem Button ein Zeichen unterstrichen ist, so k”nnen Sie diesen durch + aktivieren. Die Taste l”st meistens einen Button aus, der sinngem„ž fr den Abbruch einer Aktion steht ("Ende", "Abbruch" etc.) Wenn in einem Dialog keine Texteingaben m”glich sind, kann auf das Drcken der -Taste verzichtet werden. 3.2.4. Menzeilen in Fenster Fenster k”nnen ebenfalls Menzeilen besitzen. Um ein Men auszuklappen, klicken Sie den Titel an, das Men klappt je nach freiem Platz nach unten oder nach oben aus. Jetzt k”nnen Sie wie gewohnt einen Eintrag selektieren, ein Klick aužerhalb der Menbox selektiert keinen Eintrag und bricht die Auswahl zudem ab. Halten Sie die Maustaste nach dem Klick auf den Titel gedrckt, dann klappt das Men aus. Fahren Sie mit der Maus auf den gewnschten Ein- trag. Dieser wird dann beim Loslassen der Maustaste selektiert (am besten mal ausprobieren). Auf diese Weise k”nnen Sie ein Men mit einem Klick bedienen. Nach einer Selektion bzw. Nichtselektion (ein Klick aužerhalb der Menbox) klappt das Men in jedem Fall ein (h”rt sich schlimmer an, als es ist). Fenstermens k”nnen ebenso wie die echten Mens ber Tastatur- krzel gesteuert werden. Diese finden sie jeweils am rechten Rand des Eintrags. 3.2.5. RaveUp-Mens RaveUp-Mens (eigentlich heižen sie ja PopUp-Mens) werden genauso wie die Menzeilen in den Fenstern bedient. Mit dem kreisf”rmigen Pfeil rechts neben dem Men kann nacheinander jeder Eintrag ausgew„hlt wer- den, ohne daž dabei das Men ausgeklappt werden muž. Klappt ein RaveUp-Men aus, so ist der bisher aktuelle Eintrag mit einem H„kchen gekennzeichnet. Bei eingeklapptem Men wird jeweils der aktuelle Eintrag angezeigt. 3.2.6. Das Klemmbrett Das Klemmbrett soll den Datenaustausch zwischen Programmen erleichtern, was besonders bei MultiTOS und MultiGEM praktisch ist. Das Klemmbrett ist nichts anderes als ein Ordner auf einem Laufwerk (meist dem, von dem gebootet worden ist). Jedes Programm, daž das Klemmbrett unter- sttzt, kann in das Klemmbrett hineinspeichern bzw. von ihm lesen. Die Namen der Dateien im Klemmbrett sind vom System vorgegeben, deshalb erfolgt auch keine Frage nach einem Dateinamen beim Laden oder Spei- chern. So kann ein Programm A eine Datei ins Klemmbrett ablegen und Programm B dann sofort danach die Datei aus dem Klemmbrett laden, ohne daž dabei irgendwelche Angaben zu Dateinamen gemacht werden mžen. 3.3. Das Editorfenster 3.3.1. Aufbau Das Editorfenster besteht aus mehreren Komponenten. Der gr”žte Teil nimmt das Editorfeld selbst ein. Im rechten Rand wird das jeweils edi- 15 tierte Zeichen in Echtgr”že dargestellt. Die Titelzeile zeigt den kompletten Dateinamen des Fonts an. In der Infozeile des Fensters wird die aktuelle Position des Mauszeigers ber der Editorgitter angezeigt sowie die Nummer des gerade bearbeiteten Zeichens. Befindet sich die Maus aužerhalb des Gitters, dann werden keine Koordinaten angezeigt. Ein Stern am Anfang der Infozeile zeigt Ihnen, daž Sie den Font seit dem letzen Speicher-/Ladevorgang ver„ndert haben. Unterhalb der Infozeile befindet sich eine Menzeile, deren Bedienung bereits besprochen wurde. Der Pfeil im unteren Editorrand zeigt auf diejenige Pixelspalte, die die letzte rechte benutzte Zeichenspalte darstellt. Mit anderen Worten: dieser Pfeil gibt die Breite an. Der rechte Rand neben dem vertikalen Slider zeigt die Position der Ausrich- tungslinien an. Dabei stehen folgende Buchstaben fr folgende Linien: T Zeichenzellenoberkante ("Top Line") A Zeichenoberkante ("Ascent Line") H Halblinie ("Half Line") G Grundlinie D Zeichenunterkante ("Descent Line") B Zeichenzellenunterkante ("Bottom Line") Die Bedeutung dieser Linien wird im Kapitel ber das GDOS-Fontformat genau beschrieben. Das eigentliche Editorraster wird durch ein Gitter aus gestrichelten Linien gekennzeichnet. Zur besseren Orientierung sind alle Zeilen, die eine Ausrichtungslinie darstellen, von durchgezogenen Linien umgeben. Ebenso wird die rechte Linie derjenigen Spalte, die die Breite dar- stellt, mit einer durchgezogen Linie gekennzeichnet. 3.3.2. Bedienung Gesetzte Punkte werden durch ein schwarzes K„stchen im Gitter darge- stellt, nicht gesetzte durch ein weižes K„stchen. Sollte ein Block markiert sein, so werden dessen vier Eckpunkte durch ein Diagonalkreuz in den jeweiligen K„stchen angezeigt. Punkte, die einen Hilfspunkt darstellen, werden grau gerastert angezeigt. Punkte werden innerhalb des Editorrasters mit der linken Maustaste gesetzt bzw. gel”scht. Dabei wird bei einem Klick der bisherige Zustand des Punktes umgekehrt. Ein Klick auf einen gel”schten Punkt setzt diesen Punkt und umgekehrt. Sie k”nnen mit gedrckter Maustaste gleichzeitig mehrere Punkte bear- beiten. Solange Sie die Maustaste drcken, werden alle Punkte, die sie mit der Maus berhren, ver„ndert. Ob gel”scht oder gesetzt wird, h„ngt davon ab, welchen Zustand derjenige Punkt unterhalb des Mauspfeils hatte, als die Maustaste zu drcken begannen. (Am besten Sie probieren das mal aus, es ist ganz einfach.) 3.4. Bedienung der Fenster ber Funktionstasten Mit den Funktionstasten k”nnen Sie bestimmte Fensteranordnungen errei- chen, die mit der Maus alleine nur schwer zu erreichen w„ren: (Shift F1) Damit machen Sie ein Fenster nach dem anderen zum aktuellen. Die gleiche Funktion l„žt sich ber die Standardkombination (Control W) erreichen. 16 (Shift F2) Das aktuelle Fenster wird auf die kleinsten erlaubten Maže verkleinert. Dies ist praktisch, wenn man einmal vor lauter Fenstern den Desktop nicht mehr sieht. Mit dem Full-Size-Icon des Fensters vergr”žern Sie es wieder auf seine vorherigen Ausmaže. (Shift F3) Alle Fenster werden untereinander angeordnet, so daž sie die maximale Breite einnehmen und alle die gleiche H”he haben. Sollte bei diesem Vorhaben jedoch ein Fenster zu klein oder zu schmal werden, so erscheint eine Meldung und die Fenster bleiben unver„ndert. (Shift F4) Alle Fenster werden nebeneinder angeordnet, so daž sie die maximale H”he einnehmen und alle die gleiche Breite haben. Sollte bei diesem Vorhaben jedoch ein Fenster zu klein oder zu schmal werden, so erscheint eine Meldung und die Fenster bleiben unver„ndert. (Shift F5) Alle Fenster werden bereinander angeordnet, so daž ihre Arbeitsfl„che m”glich grož ist, jedoch jedes andere Fenster direkt ohne Verschieben nach oben gebracht werden kann. Sollte bei diesem Vorhaben jedoch ein Fenster zu klein oder zu schmal werden, so erscheint eine Meldung und die Fenster bleiben unver„ndert. Mit den Cursortasten kann der Fensterinhalt zeilen- bzw. spaltenweise verschoben werden, wird zus„tzlich CONTROL gedrckt, wird seitenweise in die gewnschte Richtung verschoben. 3.5. Sonstige hilfreiche Funktionen Sollte einmal aufgrund von Redraw-Fehlern der Inhalt eines Fensters zerst”rt worden sein, so gengt ein Druck auf die Tabulator-Taste und das aktuelle Fenster wird komplett neugezeichnet. Halten Sie zudem die Shift-Taste gedrckt, so wird der Desktop neugezeichnet, was aber nur in schlimmeren F„llen n”tig sein sollte. 17 4. Das GDOS-Fontformat 4.1. Einfhrung Bei den Fonts, die GDOS verwendet, handelt es sich um Pixel-Fonts, d.h. in einer Zeichenmaske sind Punkte gesetzt bzw. gel”scht, die dann als ganzes das Aussehen jedes Zeichens bestimmen. Der Vorteil von Pixelfonts ist, daž sie bei "kleinen" Gr”žen besser aussehen, da keine Rechenungenauigkeiten auftreten, dafr bei "grožen" Gr”žen viel mehr Speicher verbrauchen. Zudem ist ihre algorithmische Handhabung recht einfach. 4.2. Der Aufbau von Fonts GDOS verwendet ein spezielles Format, in dem die Fonts abgelegt werden. Grob gesehen besteht ein Font auf maximal vier Komponenten: 1.) Der Fontheader. In ihm stehen alle Angaben, die das VDI zum Um- gang mit dem Font braucht, angefangen vom Zeichensatznamen bis zu den Kursivberhangsneigungen. 2.) Die Horizontale Offset-Tabelle. Sie ist optional und wird nur sehr selten verwendet. Mit ihr kann jedes Zeichen vor seiner Ausgabe um einen frei bestimmbaren Wert nach links verschoben werden, sofern die Ausgabetreiber berhaupt diese Verschiebung bercksichtigen (viele tun es nicht!) 3.) Die Zeichenbreiten Offset-Tabelle. In ihr ist vermerkt, wie breit jedes Zeichen ist. Dies ist besonders bei proportionalen Schriften wichtig. 4.) Die Zeichendaten. Dies sind die eigentlichen Daten, die das Ausse- hen des Fonts bestimmen. Die Reihenfolge der Teile 2, 3 und 4 ist zwar so nicht zwingend vorge- geben, hat sich aber so eingebrgert. Jedes Fontfile enth„lt nur einen Font in einer bestimmten Gr”že. Soll ein Font aus mehreren Gr”žen bestehen, so wird fr jede Gr”že ein eigener Font angelegt, wobei alle Fonts die gleichen Eintr„ge id und name besitzen. 4.3. Der Fontheader Der Fontheader enth„lt alle wichtigen Informationen, deren Kenntnis auch bei der Bedienung von GEMFONT wichtig ist. Nachfolgend werden der Header und alle seine Eintr„ge erkl„rt. Hinter der Deklaration steht in Klammern der dezimale Offset zum Datei- anfang in Bytes. Fr alle Nicht-C-Programmierer seien kurz die verwen- deten Datentypen erkl„rt: char = -128 bis 128 (1 Byte) unsigned char = 0 bis 255 (1 Byte) short = -32768 bis 32767 (2 Bytes) unsigned short = 0 bis 65535 (2 Bytes) Steht vor dem Variablennamen ein Stern "*", dann bedeutet dies "Zeiger auf Datentyp ..." Noch ein Hinweis: Keine normale VDI-Anwendung braucht sich jemals mit 18 dem Aufbau und dem Format von GDOS-Fonts zu besch„ftigen. Alle Eintr„ge k”nnen ber entsprechende VDI-Funktion erfragt werden. Diese Beschreibung ist nur fr das Editieren von GDOS-Fonts wichtig! typedef struct font_hdr { unsigned short id; (0) Jeder Font verfgt ber eine Kennung, an der er eindeutig identi- fizierbar ist. Diese Kennung liegt im Bereich von 0 bis 32767. Das VDI erkennt seine Fonts ausschliežlich an diesem Feld, nicht etwa am Fontnamen (name) oder am Filenamen des Fonts, wie manchmal f„lschlicherweise behauptet wird. Manche Programme haben mit IDs gr”žer als 255 oder 127 Schwierig- keiten. Dies liegt nicht an GDOS, sondern ist ein Fehler dieser Programme! unsigned short point; (2) Damit wird die Gr”že des Fonts in typographischen Punkten ange- geben (1pt = ca. 0.0351 cm). Zwischen welchen Linien dabei gemes- sen wird, ist allerdings nirgends dokumentiert und auch mir noch nicht ganz klar. GEMFONT ermittelt die Gr”že zwischen Grundlinie und Zeichenoberkante, weil diese Werte denen aus vielen anderen Fonts meist sehr „hnlich sind. char name[32]; (4) Jeder Font besitzt einen Namen. Dieser wird zwar nicht zwingend vom VDI ben”tigt, kann aber ganz legal erfragt werden und sollte alleine schon deshalb immer angegeben werden. Der Name kann maxi- mal 32 Zeichen lang sein. Dabei ist man bereingekommen, daž die Zeichen 0 bis 15 den Namen des Fonts enthalten (etwa "Times", "Swiss") und die Zeichen 16 bis 31 den Stil (etwa "bold" oder "it- alic") enthalten. Der String ist nicht zwangsl„ufig NUL-termi- niert. unsigned short first_ade; (36) unsigned short last_ade; (38) Der ASCII-Zeichensatz besteht auch 256 Zeichen, n„mlich von 0 bis 255 inklusive. VDI ist sogar in der Lage, Fonts mit 65536 Zeichen (!) zu verarbeiten, was aber nicht gemacht wird, weil alle Hoch- sprachenbindings nicht darauf vorbereitet sind und ein solcher Font immens viel Speicher verbrauchen wrde. Deshalb enth„lt heute jeder GDOS-Font maximal 256 Zeichen. Um noch mehr Speicherplatz zu sparen, kann ein Font auch weniger Zeichen enthalten. Zu diesem Zweck kann der Code des ersten und des letzten benutzen Zeichens angegeben werden. Eine im englischen Sprachraum beliebte Einschr„nkung sind Fonts, die nur die Zeichen 32 bis 127 inklusive enthalten. Dann fehlen zwar die Control-Codes sowie alle nichtenglischen Zeichen, doch dies st”rt in diesem Sprachraum nicht. Auf diese Weise werden die Verwaltungstabellen 19 kleiner. In der Fontdatei werden nur die tats„chlich benutzten Zeichen abgelegt. Sollte ein Programm dennoch versuchen, ein Zeichen auszugeben, das nicht im Font vorhanden ist, so wird stattdessen ein Fragezeichen ausgegeben. unsigned short top; (40) unsigned short ascent; (42) unsigned short half; (44) unsigned short descent; (46) unsigned short bottom; (48) Jeder Font wird mit Hilfe von typographischen Hilfslinien erzeugt. Das VDI benutzt dazu sechs horizontale Ausrichtungslinien. Zur Veranschaulichung stellen sie sich ein Schreibheft vor, wel- ches Schulanf„nger benutzen. Dort werden in der Regel Zeilen verwendet, die aus vier Linien bestehen. Die zweite Zeile von unten ist die Grundlinie (Baseline), die die Unterkante der mei- sten Buchstaben darstellt. Die direkt darberliegende Zeile ist die Halblinie (Halfline), die die Oberkante vieler Kleinbuchstaben darstellt (etwa a, c, e, o). Die oberste Linie ist die Zeichen- oberkante (Ascent Line), die - wie der Name schon sagt - die Oberkante der meisten Grožbuchstaben darstellt. Schliežlich ist die unterste Linie die Zeichenunterkante (Descent Line). Sie wird nur von wenigen Buchstaben, etwa dem 'g' oder dem 'y' berhrt. Damit w„ren also schon einmal vier der sechs Zeilen erkl„rt. Bei der Textausgabe von Zeilen, die untereinander stehen sollen, geht man meist so vor, daž die Zeichenoberkante jeder neuen Zeile nahtlos an die Zeichenunterkante der vorherigen Zeile anschliežt. Dabei kann es aber passieren, daž bestimmte Zeichen beider Zeilen sich optisch schneiden. Um dies zu verhindern, benutzt das VDI zwei weitere Linien. Die Zeichenzellenunterkante (Bottom Line) liegt ein wenig unterhalb der Zeichenunterkante, so wie die Zei- chenzellenoberkante (Top Line) ein wenig ber der Zeichenoberkante liegt. Sie bilden damit eine Art Sicherheitsabstand gegen šber- schneidungen. Die Zeichenzellenoberkante liegt dabei immer auf der Position 0. Die Position der Linien ist jedoch nicht absolut, sondern relativ zur Grundlinie gespeichert. top gibt den Abstand der Grundlinie zur Zeichenzellenoberkannte an. Alle anderen Linienpositionen sind relativ zu top angegeben. Ihre absolute Positionen errechnen sich wie folgt, die Numerierung beginnt bei 0: Zeichenzellenoberkante = 0; Zeichenoberkante = top - ascent; Halblinie = top - half; Grundlinie = top; Zeichenunterkante = top + descent; Zeichenzellenunterkante = top + bottom; unsigned short max_char_width; (50) unsigned short max_cell_width; (52) Diese beiden Felder geben Auskunft ber das breiteste Zeichen im gesamten Zeichensatz. max_cell_width gibt an, wie breit dieses Zeichen laut der Editoreinstellung ist. max_char_width hingegen 20 gibt dessen echte Breite an. Die Breiten schliežen den linken freien Randbereich mit ein! Dazu ein Beispiel: Schauen Sie sich den Buchstaben "i" in ihrem Systemzeichensatz an. Laut Eintrag in der Zeichenbreitentabelle ist er 8 Pixel breit, doch sie sehen, daž er eigentlich schmaler ist. Wenn dieses "i" der breiteste Buchstabe w„re, dann enthielte max_cell_width den Wert 8. Subtrahiert man den Abstand, der zwi- schen dem "i" und seiner rechten Kante liegt, dann erh„lt man die echte Zeichenbreite, max_char_width enthielte dann beispielsweise den Wert 6. unsigned short left_offset; (54) unsigned short right_offset; (56) Wenn ein Zeichen geneigt ausgegeben wird, dann ragt es berhalb der Grundlinie rechts ber seinen Rand, unterhalb der Grundlinie ber seinen linken Rand. Wie weit es nun herausragt, muž das VDI genau wissen, damit die Textausgabe auch bei geneigter Schrift halbwegs vernnftig aussieht. Wie man diese Werte ermittelt, wurde nie offiziel dokumentiert. Eigene Versuche lassen aber auf folgendes Verfahren schliežen: ------- |*******| |*******| |*******| |*******| <- Grundlinie |*******| |*******| ------- Die Striche um das Zeichen sollen die Zellenkanten andeuten, die nicht mehr zum Zeichen geh”ren. Die Sterne stehen fr alle dieje- nigen Pixel, die gesetzt werden k”nnen, ob sie es tats„chlich sind, spielt bei der Kursivausgabe keine Rolle. Wenn dieses Zei- chen nun geneigt wird, sieht es wie folgt aus: ------- | ******* | ******* | ******* |*******| <- Grundlinie ****** | ****** | ------- Sie sehen, das Zeichen ragt an beiden Seiten ber die Zellenr„nder hinaus. Unterhalb der Grundlinie ragt es um zwei Pixel nach links ber (der Zellenrand geh”rt nicht mehr zum Zeichen), ber der Grundlinie ragt es drei Pixel nach rechts. In diesem Fall wrde left_offset den Wert 2, right_offset den Wert 3 enthalten. (Wahn- sinn!) Dieses Verfahren ist zweifellos nicht das einfachste, erfordert aber keine aufwendigen mathematischen Berechnungen (etwa trigono- metrische Funktionen) und ist deshalb recht gnstig zu implemen- tieren. 21 unsigned short thicken; (58) Soll ein Zeichen fett dargestellt werden, so wird das Zeichen aus- gegeben, und anschliežend noch einmal um genau ein Pixel nach rechts versetzt erneut ausgegeben. thicken gibt dabei an, wie oft dieser Vorgang wiederholt werden soll. Man sollte mit diesem Wert sparsam umgehen, meist reicht der Wert 1, bei grožen Fonts auch der Wert 2, da sonst das Zeichen besonders auf dem Bildschirm so sehr "verschmiert", daž es unleserlich wird. unsigned short ul_size; (60) Beim Unterstreichen wird eine Linie gezogen, die auf der Ausrich- tungslinie "Zeichenunterkante" liegt. Dieser Wert gibt an, wie dick diese Linie ist. Auch hier reichen die Werte 1 oder 2 meist vollkommen aus. Das VDI legt die Oberkante des Unterstrichs (ich weiž nicht, wie man das richtig nennt) genau auf die Zeichenzel- lenunterkante und zeichnet dann eine ul_size Pixel dicke Linie, die nach unten hin in ihrere Dicke w„chst. unsigned short lighten; (62) Um ein Zeichen "hell" darzustellen, wird ebenfalls ein recht kom- plizierter, aber einfach zu implementierender Algorithmus benutzt. Wenn Sie ihn nicht verstehen sollten, dann macht das auch nichts. Zur aufgehellten Zeichenausgabe wird eine Bitmaske benutzt, mit der die Zeichendaten st„ndig verknpft wird. Dazu wird von der Zeichenzellenoberkante ausgehend die erste Zeile mit lighten UND- verknpft und das Ergebnis dargestellt. Dann wird lighten um ein Bit nach links rotiert und die n„chste Zeile mit diesem Wert UND- verknpft. Dies geht solange, bis die Zeichenzellenunterkannte erreicht wordern ist. Die Voreinstellung ist der Wert 0x5555, der bei einem schwarzen Zeichen ein Schachbrettmuster ergibt. Dieser Wert pažt immer und ergibt auch den besten Effekt. Nur wenn der Wert lighten aus einem regelm„žigen Bitmuster be- steht, ergeben sich "gutaussehende" helle Zeichen. Bei sehr klei- nen Zeichen kann es dennoch passieren, daž es nicht mehr zu erken- nen ist, doch dies ist prinzipbedingt. unsigned short skew; (64) Hier wird es noch komplizierter als bei lighten. Diese Maske be- stimmt, wie sehr ein Zeichen bei der Kursivschrift nach rechts geneigt sind. Das verwendete Verfahren, das ebenfalls nicht doku- mentiert ist, erm”glicht Neigungen zwischen 0 und 45 Grad nach rechts. Die Berechnung beginnt bei der Zeichenzellenunterkante. Ist Bit 0 von skew gesetzt, dann wird die auszugebende Zeile um ein Pixel nach rechts verschoben, bevor sie ausgegeben wird. Jetzt wird skew um ein Bit nach rechts rotiert und die Zeile ber der vorherigen Zeile bearbeitet. Ist Bit 0 von skew gesetzt, so wird diese Zeile um ein Pixel gegenber der vorherigen Zeile versetzt ausgegeben. Das ganze wiederholt sich, bis alle Zeilen ausgegeben sind. (So 22 so!) Auch hierbei ergeben nur gleichm„žige Bitmuster in skew eine sau- bere Neigung, der Standardwert 0x5555 ist immer eine gute Wahl, er ergibt eine Neigung von 22,5 Grad. Die maximale Neigung von 45 Grad kann mit dem Wert 0xFFFF erreicht werden, der Wert 0x0000 erzeugt keine Neigung. unsigned short flags; (66) Zur Zeit sind in diesem Wert nur die Bits 0 bis 3 benutzt: - Bit 0 wird intern vom VDI verwendet. Ist es gesetzt, dann gibt es an, ob ein Zeichensatz momentan der aktuelle ist (durch vst_font ausgew„hlt). - Ist Bit 1 gesetzt, dann wird die Horizontale Offset Tabelle vom Font benutzt. - Ist Bit 2 gesetzt, dann liegt der Font im Motorola-Format vor. Da GEM einst auf dem PC entstanden ist, wurden auch einige dort herrschende Konventionen mit auf den Atari ber- nommen. Auf einem PC liegen unter anderem das High- und Low- Byte bei 16-Bit-W”rtern im Gegensatz zum Atari genau ver- tauscht vor; dies heižt allgemein "Intel-Format". Wenn ein Font im Intel-Format vorliegt, muž er erst einmal ins Motorola-Format umgewandelt werden, damit das Atari-GEM wieder etwas mit ihm anfangen kann. Damit GDOS nun weiž, in welchem Format der Font vorliegt, fragt es dieses Bit ab. - Bit 3 zeigt im gesetzten Zustand an, daž alle Zeichen im Font die gleiche Breite besitzen, also nicht proportional sind. - Alle anderen Bits sind reserviert fr Erweiterungen und mssen immer auf 0 gesetzt sein. Mit Bit 2 hat es so einiges auf sich. Schon bei der Abfrage dieses Bits beginnen die Probleme. Liegt der Font im Motorola-Format vor, so liegt Bit 2 von flags im Byte 67 relativ zum Dateianfang. Bei einer Abfrage von Bit 2 wird also auf Byte 67 zugegriffen. Liegt der Font aber im Intel-Format vor, dann sind ja High- und Low-Byte vertauscht, Bit 2 liegt jetzt im Byte 66 (in Worten: sechsund- sechszig). Um dieses Bit nun abzufragen, mžte man bereits vorher wissen, in welchem Format der Font vorliegt. Nur unter der Annah- me, daž Bit 10 des Flags niemals benutzt wird, ist eine sichere Abfrage m”glich. Aber abgesehen davon kmmert sich kaum ein Fonteditor um dieses Bit. So sind mir bereits Fonts begegnet, die laut flags im Intel- Format vorliegen, tats„chlich aber im Motorola-Format abgelegt sind, beispielsweise der Font "42nd street". Andere Fonts mischen einfach Intel- und Motorola-Format. Als Beispiel sei der Font "Gemini" (Filename: GEMINI.FNT; wenn ich blož noch wžte, woher ich den hatte), der anscheinend in mehre- ren Versionen im Umlauf ist, genannt: Laut flags Motorola-Format, die Fontdaten ebenfalls im Motorola-Format, die Zeichenbreitenta- belle dafr aber im Intel-Format. Die Dokumentationen (wenn man das so nennen darf) zu GDOS schrei- ben vor, daž die Zeichendaten im gleichen Format vorliegen mssen wie der Font selbst, doch dies ist (zumindest fr den Atari) falsch (oder alle meine Versuchfonts sind falsch). Die Fontdaten liegen immer im Motorola-Format vor, egal, ob der Rest des Fonts im Intel-Format abgelegt ist oder nicht. Versuche best„tigen diese 23 Annahme. Nichtsdestotrotz gibt es einige Fonts, die es besser zu wissen glauben. Fazit: Auf dieses Bit war bisher kaum Verlaž. Deshalb benutzt GEM- FONT komplizierte Plausibilit„tsalgorithmen, mit denen das echte Format der Tabellen ermittelt wird, um m”glichst unabh„ngig vom Format-Bit zu sein. Lediglich beim Format der Fontdaten muž manch- mal manuell nachgeholfen werden, sollte einmal ein Font geladen werden, dessen Zeichendaten tats„chlich im Intel-Format vorliegen. Es versteht sich von selbst, daž GEMFONT beim Speichern auf ein korrektes Format der Fonts achtet. unsigned char *hor_table; (68) Jedes Zeichen kann vor seiner Ausgabe noch einmal um eine bestimm- te Anzahl von Pixeln nach rechts verschoben werden. Dazu kann in dieser Tabelle jedem Zeichen ein Wert zwischen 0 und 255 zugeord- net werden. Bisher nutzt kein mir bekannter Font diese M”glich- keit, wahrscheinlich, weil es bisher keinen Fonteditor gab, der dies konnte. Der Sinn dieser Funktion scheint darin zu liegen, ein einfaches Zeichenkerning (Unterschneiden von zwei benachbarten Zeichen) zu realisieren. Um dies zu verdeutlichen, sehen Sie sich die Buchsta- benkombination "Te" an. Besonders bei grožen Zeichen klafft zwi- schen dem 'T' und dem 'e' eine unansehnliche Lcke, die dadurch geschlossen werden k”nnte, indem man das 'e' n„her an das 'T' heranschiebt oder umgekehrt, Platz genug ist ja da. Bei GDOS kann jedes Zeichen um einen frei w„hlbaren Wert nach rechts oder links verschoben werden. Beide Zeichen berschneiden sich dann zwar, ohne das es jedoch dabei zur Ausl”schung eines Teils des rechten Zeichens kommt. Mit dieser Methode l„žt sich aber nur ein einfaches Kerning reali- sieren, denn die Unterschneidung ist bei den Buchstaben 'Te' ein anderer Wert als bei 'Tr' oder 'TW', und genau dies l„žt sich mit dieser Methode der konstanten Verschiebung nicht verwirklichen. GDOS w„hlt stets fr das gerade auszugebende Zeichen ein festes Kerning, ohne dabei erst einen Blick auf das n„chste Zeichen zu werfen und dann in Abh„ngigkeit beider Zeichen das Kerning auszuw„hlen, so wie es sein sollte. Es scheint zudem vom jeweils aktuellen Treiber (oder gas GDOS?) abh„ngig zu sein, ob tats„chlich der horizontale Offset auch bercksichtigt wird. Bei eigenen Versuchen unter NVDI waren jeden- falls keine Ver„nderungen zu erkennen. Wird keine Tabelle im Font genutzt, so zeigt dieser Zeiger auf den Anfang der n„chsten benutzten Komponente (siehe auch Kapitel 4.2). Dieser und die beiden nachfolgenden Zeiger geben die Position immer relativ zum Dateistart an. Diese Tabelle enth„lt insgesamt (last_ade - first_ade + 1) Eintr„- ge, sofern sie denn benutzt wird. Der zu dem Zeichencode x geh”- rende Eintrag findet sich in (x - first_ade).ten Position in der Tabelle. Beispiel: last_ade = 32, Zeichen = "2" (Code 50), die Position des dazugeh”rigen Zeichens befindet sich dann an der (50 - 32 = 18).ten Position in der Tabelle. Wichtig: Die Numerierung der Eintr„ge beginnt bei 0, nicht etwa bei 1. 24 unsigned short *off_table; (72) Hier wird verzeichnet, wie breit jedes Zeichen ist. Dabei wird jedoch nicht einfach in jeden Eintrag die Breite eingetragen. Stattdessen wird die X-Koordinate, bei der ein Zeichen im "Font- bild" anf„ngt (siehe Beschreibung dat_table) eingetragen, denn dies vereinfacht VDI die Ausgabe mittels den Rasterkopierfunktio- nen erheblich. Die echte Breite eines Zeichens errechnet sich dann aus der Differenz zwischen der Startposition des gesuchten Zei- chens und der Startposition des unmittelbar nachfolgenden Zei- chens im "Fontbild". Daraus ergibt sich, daž diese Tabelle einen Eintrag mehr enth„lt als Zeichen benutzt werden. Beispiel: Breite des Zeichens mit dem Code x ergibt sich aus ((Wert an Position (x + 1 - first_ade)) - (Wert an Position (x- first_ade))). unsigned short *dat_table; (76) Dieser Zeiger zeigt auf die eigentlichen Fontdaten. Erkl„rung folgt. Der Begriff "Fontdaten" wird in der Anleitung fr diesen Teil des Fonts gebraucht. unsigned short form_width; (80) unsigned short form_height; (82) Stellen sie sich alle Zeichen eines Fonts hintereinander auf einen riesigen Bildschirm ausgegeben vor. Genauso sind die Fontdaten im Font abgelegt, wie in einem Bild. form_width gibt dabei die Breite des Bildes in Bytes an (nicht in Words wie manche behaupten). form_height gibt die H”he des Bildes in Pixeln an. Die Breite be- tr„gt immer ein Vielfaches von 2 Bytes, auch wenn dies nicht doku- mentiert ist. Sollte das Bild nicht genau auf einer Bytegrenze enden, dann werden soviele leere Pixelspalten an das Fontbild an- geh„ngt, bis die Grenzen stimmen. struct font_hdr *next_font; (84) Dieser Zeiger wird intern vom VDI benutzt. Die Fonts werden als lineare Liste organisiert, und dieser Zeiger zeigt auf den n„ch- sten Font in der Liste. In der Fontdatei sollte er immer auf 0 gesetzt sind. } FONT_HDR; 25 5. Das Hauptmen Viele Dialogboxen besitzen einen Button mit dem Text "Abbruch", "Ende" oder „hnlich. Damit kann die ausgew„hlte Operation abgebrochen werden, so daž der gleiche Zustand herrscht wie vor dem Aufruf des Dialogs. Da dies bei vielen Dialogen der Fall ist, wird dies nicht mehr gesondert erw„hnt. Entsprechend den GEM-Konventionen k”nnen viele Menpunkte auch per Tastatur aktiviert werden, die betreffenden Tastenkombination sind in Klammern angegeben. Drei Punkte hinter einem Mentitel bedeuten, daž nach der Aktivierung noch mindestens eine Dialogbox folgt, bevor die eigentliche Aktion ausgel”st wird. 5.1. Das Men "GEMFONT" 5.1.1. "šber GEMFONT..." (Control Z) Hier finden sie allgemeine Informationen ber GEMFONT, unter anderem die Versionsnummer und das Erstellungsdatum der Version, die sie benut- zen. Inoffizielle Versionen enthalten zur besseren Unterscheidung einen kleinen Buchstaben direkt hinter der Nummer, doch werden solche Versio- nen normalerweise nicht von mir in Umlauf gebracht. Bei Rckfragen bitte immer Versionsnummer- und datum angeben. 5.2. Das Men "Datei" 5.2.1. "Neu anlegen..." (Control N) Mit dieser Funktion k”nnen Sie einen neuen Font anlegen. sofern nicht bereits sieben Fonts bearbeitet werden. GEMFONT fragt Sie nach dem Ausmaž des gr”žten Zeichens innerhalb des Fonts. Diese Angaben dienen zum Einrichten der Editorpuffer fr jedes Zeichen, damit nur soviel Speicherplatz verbraucht wird, wie auch (wahrscheinlich) ben”tigt wird. Erfahrungsgem„ž sollten Sie hier etwas grožzgig sein. Sollten Sie sich doch mal versch„tzt haben, so k”nnen Sie die Gr”že sp„ter nachtr„glich „ndern. 5.2.2. "™ffnen..." (Control O) Sie laden hiermit einen GDOS-Font, den Sie in der Dateiauswahlbox ausw„hlen k”nnen. Existiert der von Ihnen gew„hlte Font nicht oder sollte es sich dabei nicht um einen GDOS-Font handeln, dann werden Sie darauf hingewiesen und die Funktion wird abgebrochen. GEMFONT versucht so weit wie m”glich zu kontrollieren, ob es sich bei der ausgew„hlten Datei tats„chlich um einen GDOS-Font handelt. Da GDOS- Fonts aber keine Magic-Numbers besitzen, ist die šberprfung nicht komplett sicher, zumal einige „hnliche Zeichensatzformate ebenfalls die Endung "FNT" besitzen. Deshalb sollten Sie GEMFONT keine Dateien unterschieben, die offensichtlich keine GDOS-Fonts sind. Da man dem Filenamen allgemein nur schwer ansehen kann, welcher Font dahintersteckt, wird eine Informationsbox angezeigt, der Sie die wich- tigsten Informationen des Fonts entnehmen k”nnen. Dazu geh”ren der Name, seine ID, die Gr”že in Punkten, die Breite des breitesten Zei- chens sowie die Fontflags. In der Box "Konvertierung" stellen Sie ein, ob die Zeichendaten konvertiert werden sollen. Dies ist erfahrungsgem„ž 26 aber nicht n”tig, weshalb Sie diese Option nur in Ausnahmef„llen akti- vieren mssen. Sagt Ihnen der Font zu, dann k”nnen Sie in laden, anson- sten die Funktion abbrechen. 5.2.3. "Schliežen..." (Control U) Es wird das aktuelle Editorfenster geschlossen. 5.2.4. "Sichern" (Control S) Hier k”nnen Sie einen Font im GDOS-Format abspeichern. Falls der Font noch keinen Namen besitzt - das ist der Fall, wenn er neu angelegt oder importiert wurde, dann werden Sie nach dem Dateinamen gefragt, unter dem der Font abgelegt werden soll. Ansonsten wird der Name benutzt, der in der Titelzeile des dazugeh”rigen Fensters steht. Sollte GEMFONT feststellen, daž die Ausrichtungslinien noch nicht po- sitioniert worden sind, dann werden Sie darauf hingewiesen und der Vor- gang abgebrochen. Dies ist deshalb wichtig, weil die Menge der zu spei- chernden Fontdaten durch die Position "Zeichenzellenunterkante" vorge- geben ist. Das heižt im Klartext, das alle Pixelinformationen, die sich unterhalb oder Zeichenzellenunterkante oder rechts von der von Ihnen eingestellten Breite befinden, nicht mitgespeichert werden. Und wenn die Zeichenzellenunterkante noch auf Position 0 liegt, dann gehen alle Informationen verloren. (Das ist mir selbst einige Male passiert, deshalb diese Vorsichtsmažnahme). Bei der Ermittlung der echten Zeichenbreiten wird der Parameter max_char_width korrekt gesetzt. Anschliežend werden die Daten zum Font- bild zusammengesetzt. Die Flags unter "Fontflags" bestimmen dabei das Format der Daten. Dabei wird im Gegensatz zu einigen anderen GDOS- Fonteditoren auf das korrekte Format aller Tabellen geachtet. Sollte aus irgendeinem Grund ein Fehler beim Speichern auftreten, so werden Sie darauf hingewiesen und der Vorgang abgebrochen. Die fehler- hafte Datei wird automatisch gel”scht. Noch ein Hinweis: GEMFONT setzt den Font vor dem Speichern fix und fertig im Speicher zusammen, bevor er auf ein externes Medium kopiert wird. Dafr wird Speicherplatz gebraucht, der vorbergehend angefor- dert wird. Deshalb sollten Sie stets darauf achten, nicht den komplet- ten Speicher zu belegen, sonst hat GEMFONT keinen Platz mehr fr den Aufbau. Bei der Erstellung von Druckerfonts sollten mindestens 100 KByte frei sein (siehe "Speicherstatistik"). Dieses Verfahren wurde gew„hlt, um auch in Multitaskingumgebungen flexibel zu sein, wo sich ja dauernd die Speicherlandschaft „ndert. Das st„ndige Belegen eines Aufbauspeichers, der nur fr kurze Zeit genutzt wird, wrde anderen Applikationen nur Speicherplatz wegnehmen, den Sie vielleicht selbst besser brauchen k”nnten. Dies bringt aber nur etwas, wenn auch die anderen Prozesse so kollegial sind. 5.2.5. "Sichern unter..." (Control M) Hier geschieht das gleiche wie unter "Speichern", doch k”nnen Sie einen neuen Namen bestimmen, unter dem der Font abgelegt werden soll. Nach dem erfolgreichen Speichern werden Sie gefragt, ob Sie den eben ausge- w„hlten Dateinamen bernehmen oder den alten beibehalten wollen. 27 5.2.6. "Sichern Metafont..." (Control H) Das Format von GDOS-Metafontdateien ist bis heute nicht dokumentiert worden. Eigene Untersuchungen an den wenigen Metfontdateien, die es gibt, legen die Vermutung nahe, daž es sich dabei um GDOS-Druckerfonts handelt, denen aber die eigentlichen Fontdaten fehlen; sie enthalten nur die eigentlichen Verwaltungsdaten. Vermutlich kommt es GDOS nur auf Verh„ltnisse der einzelnen Zeichenbreiten zueinander an. Wofr die Metafonts gut sein sollen, scheint auch niemand so genau zu wissen, jedenfalls ist sich die Literatur nicht einig, ob man berhaupt Metafonts braucht oder nicht. Wenn GDOS fr die Bearbeitung von Meta- file Angaben ber die benutzten Fonts braucht, dann k”nnte es sich die auch direkt aus den Druckerfonts selbst beschaffen (denke ich mir zumindest). Wer genaueres ber den Aufbau und Sinn der Metafonts weiž, dem w„re ich dankbar, wenn er sich mit mir in Verbindung setzen wrde, damit ich vielleicht diese Funktion korrigieren kann. Kurz noch zur Funktion selbst: Nach der Angabe eines Dateinamens wird der momentan bearbeitete Font gespeichert, aužer daž s„mtliche Infor- mationen ber das Aussehen der Zeichen in dieser Datei fehlen. 5.2.7. "Abbrechen..." (Control D) Wollen Sie alle gemachten Žnderungen verwerfen, so k”nnen Sie mit die- sem Menpunkt den aktuellen Font erneut einladen. Dies funktioniert aber nicht, wenn der Font neu angelegt oder importiert wurde. 5.2.8. "Entfernen..." (Control L) Es wird der Font, zu dem das aktuelle Editorfenster geh”rt, aus dem Speicher entfernt und sein Platz wieder freigegeben. Wurde der Font ge„ndert, so erfolgt vorher eine Sicherheitsabfrage. 5.2.9. "Importieren..." (Control I) Diese Funktion ist eines der Glanzlichter von GEMFONT. Hier k”nnen Sie Signum.Zwei!-Fonts (Editor- und Druckerfonts), METAFONT-PK-Font und auch Bitmap-Fonts importieren. Damit er”ffnet sich GDOS eine Vielzahl von professionellen Fonts aus der Signum.Zwei!- und der METAFONT-Welt. Nach der Anwahl dieser Funktion k”nnen Sie das Format angeben, das Sie importieren wollen. Sie haben die Auswahl zwischen Signum.Zwei!-Editor- fonts, Signum.Zwei!-Druckerfonts (egal ob *.L30 oder *.P24), METAFONT- PK-Fonts und den Bitmap-Fonts in zwei Gr”žen. Haben Sie sich entschie- den, dann w„hlen Sie die entsprechende Datei aus. GEMFONT berprft, ob die Datei das gewnschte Format besitzt und reklamiert Ihre Wahl, wenn dies nicht der Fall ist. 5.2.9.1. Bitmap-Fonts Bitmap-Fonts haben eine konstante Zeichengr”že von 8 mal 8 oder 8 mal 16 Pixeln (Dateil„nge stets 2048 oder 4096 Bytes), sie enthalten aus- schliežlich die Fontdaten aller 256 Zeichen. Der Editor "Tempus" oder die Textverarbeitung "Protext" k”nnen diese Zeichens„tze benutzen, um den Systemzeichensatz innerhalb dieser Programme zu ersetzen. Bitmap- 28 Fonts spielen fr GDOS keine grože Rolle, wurden jedoch ihrer Einfach- heit halber implementiert, weil etwa Harlekin Sie als Ersatz fr den Systemfont verwenden kann. Beim Import von diesen Fonts sind keine weiteren Angaben zu machen. 5.2.9.2. Signum.Zwei!-Fonts GEMFONT ist in der Lage, Fonts im Signum.Zwei!-Format, die zum gleich- namigen Dokumentverarbeitungsklassiker geh”ren, zu importieren. Die Anzahl der verfgbaren Schriften bel„uft sich nach neueren Sch„tzungen auf ber 1500 (manche vermuten sogar knapp 2000), von denen die aller- meisten zudem als Public-Domain zur Verfgung stehen. Die Qualit„t der Schriften ist teilweise professionell, die Auswahl der Schriftformen und -arten auf dem Atari bisher unerreicht. Damit sollte die Eint”nig- keit der Schriften unter GDOS endlich ein Ende haben! Nach Auswahl der Datei wird die maximale Gr”že der Zeichen ermittelt. Die ermittelten Werte werden Ihnen als neue Gr”že der Editorpuffer vorgeschlagen. Diese Werte k”nnen Sie in den meisten F„llen bernehmen. Geben Sie kleinere Werte an, dann gehen die Daten, die aužerhalb lie- gen, verloren. Wollen Sie den Font vergr”žern, dann geben Sie dement- sprechend gr”žere Werte an. Bei manchen Fonts kommt es vor, daž alle Zeichen recht tief unterhalb der Zeichenzellenoberkannte liegen. GEMFONT fragt Sie deshalb, ob Sie alle Zeichen um einen intern ermittelten Wert h”hersetzen wollen. Da dieses Verfahren nicht immer funktioniert, sollten Sie den Font zuerst unversetzt laden und erst dann entscheiden, ob Sie ihn erneut versetzt importieren wollen. Bevor Sie mit der Arbeit beginnen, kontrollieren Sie unbedingt alle diejenigen Zeichen, die besonders nahe an der oberen oder unteren Zeichenzellenkante enden, denn dort kann dann manchmal ein Stck verlorengegangen sein. Da Signum.Zwei!-Fonts nur aus 127 Zeichen bestehen, die zudem in einer anderen Reihenfolge als dem ASCII-Format abgelegt sind, verteilt GEM- FONT die Zeichen so, daž sie mit m”glichst vielen ASCII-Zeichen ber- einstimmen. Probleme gibt es dabei jedoch nur mit denjenigen Zeichen, die unter Signum.Zwei! dem externen Ziffernblock zugeordnet werden k”nnen, dafr gibt es keine „quivalenten ASCII-Positionen. Folgende Tabelle zeigt genau, wohin welches Signum.Zwei!-Zeichen gelegt wird. An den Achsen steht der Signum.Zwei!-Zeichencode, in der Tabelle der ASCII-Zeichencode: x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 +------------------------------------------------- 0x | 0 194 195 196 197 198 199 200 201 202 1x | 203 204 205 206 207 208 209 210 211 16 2x | 17 18 19 20 21 22 23 24 25 212 3x | 213 214 221 33 34 35 36 37 38 39 4x | 40 41 42 43 44 45 46 47 48 49 5x | 50 51 52 53 54 55 56 57 58 59 6x | 60 61 62 63 129 65 66 67 68 69 7x | 70 71 72 73 74 75 76 77 78 79 8x | 80 81 82 83 84 85 86 87 88 89 9x | 90 148 154 132 94 95 96 97 98 99 10x | 100 101 102 103 104 105 106 107 108 109 11x | 110 111 112 113 114 115 116 117 118 119 12x | 120 121 122 153 124 142 126 158 --- --- Leider mssen viele Signum.Zwei!-Fonts noch per Hand nachbearbeitet 29 werden, h„ufig wegen der Zeichenbreiten, die bei manchen Fonts v”llig falsch gesetzt worden sind. Doch auch hierfr bietet GEMFONT passende Werkzeuge. (Da ich selbst weder Signum.Zwei! noch Script besitzt, fehlt mir auch die offizielle Dokumentation der Signum.Zwei!-Fontformate, die viel- leicht in den Handbcherm zu diesen Programmen abgedruckt ist. Die jetzigen Routinen basieren auf einem Quicktip, der in einer Ausgabe der ST-Computer erschienen ist. Fr weitere Hinweise bezglich der Formate w„re ich sehr dankbar). 5.2.9.3. METAFONT-PK-Files Auf Wunsch einiger registrierter Anwender ist GEMFONT seit Version 1.20 als eines der ganz wenigen Atari-Programme (natrlich von TeX etc. abgesehen) in der Lage, auch PK-Files von METAFONT zu importieren. Damit steht eine weitere Vielzahl von Schriften zur Verfgung, deren Professionalit„t von allen unbestritten zum Besten gez„hlt wird, was der Computer-Schriftsatz im (halb-)professionellen Bereich zu bieten hat. Beim Import ist folgendes zu beachten: - GDOS kann mit den ausgefeilten Kerning der METAFONT-Fonts nichts anfangen, so daž die Fonts hinsichtlich der Breite der Zeichen- nachbearbeitet werden mssen. - Die im Gebrauch befindlichen PK-Files besitzen nur 128 Zeichen, fehlende Zeichen (die TeX durch šbereinanderlegen erzeugt, bei- spielweise die Umlaute) mssen manuell nacherzeugt werden. Erst die EC-/DC-Fonts bieten alle 256 Zeichen. - W„hrend die PK- und TFM-Files intern mit fixierten Kommazahlen rechnen, muž fr GDOS auf ganze Zahlen gerundet werden, so daž manche Zeichen ein Pixel zu hoch oder zu tief zu liegen kommen. Hier muž entsprechend verschoben werden. - TeX setzt keine zwingende Ordnung der Zeichen in den Fonts voraus (TeX erlaubt verschiebene sog. Kodierungsschemata), so daž even- tuell viele Zeichen vertauscht werden mssen. - Besonders Fonts in h”heren Aufl”sungen verbrauchen als GDOS-Fonts wesentlich mehr Platz als die entsprechenden PK-Files, da die PK- Fonts in einem stark gepackten Format vorliegen. - Die Breite der Zeichen orientiert sich an dem dx-Escapement der PK-Files. Dieser Wert ist bei geneigten Schriften bei manchen Zeichen zu klein gew„hlt, so daž die Breite auch hier nachbearbei- tet werden muž. - Die Gesamth”he der Zeichen ist in seltenen F„llen zu klein ge- w„hlt und muž dann manuell vergr”žert werden. An wem das liegt, versuche ich gerade herauszufinden. Bevor es mit dem Importieren losgehen kann, muž als erstes der TFM-Pfad gesetzt werden, also die Stelle angegeben werden, wo die TeX-Font- Metric-Dateien zu finden sind, denn diese werden ebenfalls gebraucht. Sie enthalten weitere Informationen zu den einzelnen PK-Files und werden automatisch beim Import eines PK-Files geladen. Mit dem Button "TFM-Pfad" kann der Pfad eingestellt werden. Dies ist meist nur einmal n”tig, denn er kann auch mit den anderen Pfaden abge- speichert werden. Zur eigenen Rettung bezglich der Geschwindigkeit m”chte ich noch bemerken, daž die Entpackroutinen nur scheinbar langsamer sind als die der vielen DVI-Treiber. Das Entpacken geht nahezu genauso schnell, aber das Transformieren der entpackten Daten in die interne GEMFONT-Darstel- 30 lung dauert recht lange, da dies (wie grausam!) bitweise geschehen muž. 5.2.10. "Exportieren..." GEMFONT kann Fonts auch wieder im Bitmap-Format exportieren (fr Si- gnum.Zwei!-Fonts ist schliežlich Skarabus zust„ndig und fr METAFONT- Fonts w„re ein Pixeleditor eine echte Schandtat!) Dabei w„hlen Sie wieder die Gr”že der Fonts aus und geben den Dateinamen an. Achten Sie darauf, daž alle die Pixel, die aužerhalb der 8 mal 8 bzw. 8 mal 16 Grenze liegen, im Font verloren gehen. 5.2.11. "Clipboard laden" Es soll ein Font aus dem Clipboard geladen werden. Dazu muž zum einen ein Font im Klemmbrett vorhanden sein und zum anderen berhaupt ein Klemmbrett existieren. Danach wird wie bei "™ffnen..." verfahren. 5.2.12. "Clipboard speichern" Ein Font soll ins Klemmbrett gespeichert werden. Auch hierbei muž der Zugriff auf das Klemmbrett m”glich sein. Sonst wird wie bei "Sichern..." verfahren. Achtung: Es werden alle Dateien, die sich im Klemmbrett befinden, vorher gel”scht! 5.2.13. "Clipboard l”schen" Nach der Best„tigung einer Sicherheitsabfrage werden alle Dateien im Klemmbrett gel”scht. 5.2.14. "Ende" (Control Q) Hier kann das Programm verlassen werden. Sollte sich noch ein ge„nder- ter Font im Speicher befinden, so erscheint eine Sicherheitsabfrage, die ihnen die M”glichkeit zum Abbruch gibt. 5.3. Das Men "Block" GEMFONT erlaubt das Markieren eines rechteckigen Teils eines bestimm- ten Zeichens. Dieser Ausschnitt wird "Block" genannt und kann ausge- schnitten, kopiert oder gel”scht werden und auch zwischen Fonts ausge- tauscht werden. Es kann jeweils nur ein Block zu einer Zeit existieren. 5.3.1. "Blockanfang" (Control B) Die Maus verwandelt sich in ein Fadenkreuz, mit dem Sie auf den Punkt im Editorraster klicken k”nnen, an dem der Anfangspunkt des Block liegen soll. An diesem Punkt erscheint dann als sichtbares Zeichen ein Diagonalkreuz, sofern er nicht gesetzt ist. Ein Klick aužerhalb des Gitters bricht die Funktion ab. 31 5.3.2. "Blockende" (Control K) Analog zu "Blockanfang" w„hlen Sie den Endpunkt des Blocks aus. An allen vier Eckpunkten des Blocks erscheint dann ein Diagonalkreuz, der Block ist vollst„ndig markiert. Auch hier bricht ein Klick aužerhalb des Gitters die Funktion ab. 5.3.3. "Alles ausw„hlen" (Control A) Hier wird ein Block definiert, der die gesamte Editormaske umfažt. Auf diese Weise k”nnen schnell komplette Zeichen bearbeitet werden. 5.3.4. "Ausschneiden" (Control X) Das durch einen Block definierte Rechteck wird aus dem Zeichem, in der Block definiert wurde, entfernt (d.h. ein Teil des Zeichens wird ge- l”scht) und in einen internen Puffer kopiert. Diese Funktion kann auch mit den Tasten Backspace und Delete ausgel”st werden. 5.3.5. "Kopieren" (Control C) Wie "Ausschneiden", doch das Gebiet, aus dem der Block ausgeschnitten wurde, wird nicht gel”scht. 5.3.6. "Einfgen" (Control V) Der vorher ausgeschnittene oder kopierte Block kann in ein beliebiges Zeichen eines beliebigen Fonts wieder hineinkopiert werden. Dieser Vor- gang kann so oft wiederholt werden, bis ein neuer Block definiert wird. Die Maus verwandelt sich die wieder in ein Fadenkreuz, mit der Sie die linke, obere Ecke angeben, an die der Block kopiert werden soll. Die Art, wie der Block eingefgt wird, h„ngt von der Einstellung "Block- kopiermodi..." ab. 5.3.7. "Blockkopiermodi..." Das Einfgen des Blocks kann auf verschiedene Arten geschehen. Der Block kann ersetzend eingesetzt werden oder aber vor dem Einsetzen mit dem Zielgebiet verknpft werden. Nach Anw„hlen dieses Menpunkts erscheint ein Popup-Men an der aktuel- len Mausposition, wo Sie den neuen Blockkopiermodus einstellen k”nnen. 5.4. Das Men "Puffer" Jeder Font besitzt 10 frei verfgbare Puffer. Diese k”nnen vorberge- hend beliebige Zeichen aufnehmen und wieder an beliebige Fontpositionen kopieren. Puffer k”nnen zudem geladen und gespeichert werden. Der Un- terschied zum Block besteht darin, daž Puffer nicht zwischen Fonts aus- 32 getauscht werden k”nnen (zumindest nicht direkt) und daž nur komplette Zeichen in Puffern abgelegt werden k”nnen. 5.4.1. "Maske nach Puffer..." (Alternate P) Das aktuelle Zeichen wird komplett in einen der 10 Puffer, den sie aus- w„hlen k”nnen, kopiert. Diese Funktionen k”nnen auch direkt mit den Tastenkombinationen +<1> bis +<0> auf dem alphanumeri- schen Teil der Tastatur erreicht werden. 5.4.2. "Puffer nach Maske..." (Alternate M) Ein Zeichen aus einem der 10 Puffer, den sie ausw„hlen k”nnen, wird in den aktuellen Zeichenpuffer kopiert. Dabei wird immer berlagerd ko- piert, die Blockkopiermodi wirken sich nicht auf die Pufferfunktionen aus. Diese Funktionen k”nnen auch direkt mit den Tastenkombinationen +<1> bis +<0> auf dem alphanumerischen Teil der Tastatur erreicht werden. 5.4.3. "Puffer speichern..." (Alternate U) Ein einzelner Puffer kann auch gespeichert werden. W„hlen Sie dazu einen Puffer sowie den Dateinamen aus, unter dem er abgespeichert wird. Die Pufferdatei sollte immer die Endung "*.GPU" tragen. In sie wird neben ein paar Verwaltungsinformationen nur die Fontdaten geschrieben. 5.4.4. "Puffer laden..." (Alternate O) Ein gespeicherter Puffer wird eingeladen. Dabei kann der Puffer auch in andere Fonts aužer demjenigen, aus dem er heraus abgespeichert wurde, geladen werden. Sollte das Zeichen im Puffer zu grož sein, so wird nur der passende Teil kopiert. Da man auch dem Dateinamen der Pufferdatei nicht ansieht, was sie beinhaltet, zeigt eine Informationsbox die wichtigsten Daten des Puf- fers an. Darunter fallen die Zeichenausmaže sowie der Name des Fonts, aus dem er ausgeschnitten wurde. Sagt Ihnen der Puffer zu, so k”nnen Sie ihn anschliežend laden. 5.5. Das Men "Parameter..." 5.5.1. "Speicherstatistik..." Hier k”nnen Sie sich einen šberblick ber den aktuellen Speicherver- brauch verschaffen. Dabei werden alle sieben Fonts durch ihren Dateina- men angezeigt. Dahinter wird angezeigt, wieviel Speicher der Font im Editor verbraucht, diese Anzeige ist keineswegs identisch mit der Gr”že, die der Font einmal in gespeicherter Form einnehmen wird! Das K„stchen vor dem Dateinamen ist durchkreuzt, wenn der Font inzwischen ver„ndert wurde. Ist ein Fontplatz im Speicher nicht belegt, dann wird die dazugeh”rige Zeile grau dargestellt. Der zweite Teil der Dialogbox zeigt den momentan freien Betriebssystemspeicher an (genauer den gr”ž- ten freien Speicherblock). 33 5.5.2. "Parameter einstellen..." (Alternate Q) GEMFONT erlaubt das Einstellen zahlreicher Parameter: "GEM-Rasterkopierroutinen verwenden" GEMFONT nutzt intern an vielen Stellen zum Kopieren von Speicher- bereichen dir VDI-Routine vro_cpyfm(). GEMFONT nutzt dabei uner- laubterweise die Tatsache aus, daž die allermeisten VDI-Treiber die innere Struktur des zu kopierenden Speicherbereichs nicht ver„ndern. Sollte es einmal Probleme mit bestimmten VDI-Treibern geben, so kann auf eine andere, wenn auch langsamere Kopierroutine umgeschaltet werden. In den allermeisten F„llen gibt es aber keine Schwierigkeiten, so daž die schnellere VDI-Routine benutzt werden sollte. Die bisherige Option "Grow-/Shrink-/Moveboxen ausschalten" ent- f„llt wegen Geringf„lligkeit ersatzlos. "Immer *.FNT als Endung voraussetzen" GEMFONT kann angewiesen werden, statt der Endung "*.FNT" die Endung "*.*" in der Dateiauswahlbox vorauszusetzen. Eine Ver„nde- rung dieser Einstellung ist dann sinnvoll, wenn Sie mit Filesyste- men arbeiten, die zwischen Grož- und Kleinschreibung unterschei- den. Die meisten Fileselektoren finden in diesem Fall keine Datei- en mit den angegebenen Extendern, weil vermutlich irgendwo Zei- chenumwanldungen stattfinden. Mit der Endung "*.*" treten solche Probleme nicht auf. "Keine Zusatzmeldungen ausgeben" Einige Aktionen werden von zus„tzlichen Hinweisen zur Bedienung oder Warnungen begleitet (z.B. alle Aktionen, die die Maus in ein Fadenkreuz zur Auswahl verwandeln). Diese k”nnen jedoch l„stig werden und hier abgeschaltet werden. "Klingelzeichen bei Alertbox" Als zus„tzliches akustisches Signal kann jede Alert-Box von einem "Ping" begleitet werden. Beim Abschluž l„ngerdauernden Aktionen wird ebenfalls ein "Ping" ausgegeben. "Vsync() bei der Ausgabe benutzen" Bei schnellen GEM-Ausgaben kann es zu optischen Unregelm„žigkei- ten wie Flackern kommen. Durch Einschalten der Vsync-Option kann dies weitestgehend unterbunden werden. Sollte es Probleme mit Grafikkarten geben, dann schalten Sie diese Option ab. "Fenster drfen negativen Rand benutzen" Fenster k”nnen zus„tzlichen Arbeitsplatz gewinnen, wenn sie ihren linken Rand im negativen Koordinantenbereich ablegen (beispiels- weise TEMPUS). Dieses Feature funktioniert zwar, ist jedoch nicht dokumentiert. Soll es unterbunden werden, so ist dieser Schalter zu aktivieren. 34 "Langsame Dialoge auslagern" Das Unterbringen von Dialogen in Fensters erm”glicht zwar den Mehrprogrammbetrieb, bremst aber dafr den Aufbau und das Redraw der Dialoge merklich ab, da ein komplizierteres Verfahren zum Erneuern der Darstellung n”tig ist (u.a. muž bercksichtigt wer- den, ob Teile des Dialogs von anderen Fenstern verdeckt werden.) Wer in einer Einprogrammumgebung arbeitet oder es verschmerzen kann, wenn GEMFONT einmal fr einige Sekunden andere Prozesse komplett blockiert, der kann GEMFONT anweisen, besonders zeitin- tensive Dialoge normal, also nicht in Fenstern darzustellen. In diesem Fall kann die normale und sehr schnelle Redrawroutine verwendet werden. "Vorgabe 'L30' statt 'P24' bei Import" Wer vorrangig Signum.Zwei!-Laserdruckerfonts importiert, kann einstellen, das statt der Endung "*.P24" (360 DPI) die Endung "*.L30" (300 DPI) zur neuen Vorgabe werden soll. "Zus„tzliche Zeilenvorschbe" Bei der Testausgabe auf einem Drucker fhren manche Druckertreiber einen oder gar mehrere Seitenvorschbe aus. Um das Papier jedoch platzsparend zu nutzen, spannen Sie in diesem Fall das Papier wieder an die Anfangsposition ein. GEMFONT fhrt dann selbst„ndig soviele Zeilenvorschbe aus, daž unterhalb der letzen Position weitergedruckt wird. Fhrt Ihr Druckertreiber jedoch keinen Sei- tenvorschub aus, dann deaktivieren Sie diesen Schalter. "Drucker-Reset vor Ausgabe ausfhren" Manche Druckertreiber stellen die von ihnen verstellten Druckerpa- rameter nicht mehr zurck. In einem solchen Fall kann GEMFONT vor jeder Druckerausgabe einen Reset ausl”sen. Dazu wird die Kombina- tion "ESC @" verschickt, die auf allen Druckern den gewnschten Effekt haben sollte. "Druckernummer" Die Druckernummer, unter der GDOS den Drucker ansprechen soll, kann mit einem Slider zwischen 10 und 99 eingestellt werden. So k”nnen mehrere Druckertreiber gleichzeitig installiert und benutzt werden. "Klemmbrettberwachung" GEMFONT kontrolliert in regelm„žigen Abst„nden, ob eine andere Applikation einen Font im Klemmbrett abgelegt hat. In welchen In- tervallen dies erfolgen soll, kann hier eingestellt werden. Beim Diskettenbetrieb sollte die šberprfung komplett abgestellt wer- den. Die Funktion selbst ist ein Relikt aus der Zeit, als GEMFONT noch einen eigenen Desktop besaž. Dort gab es u.a. auch ein Klemmbrett- icon, das seine Form „ndern sollte, sobald eine passende Datei im Klemmbrett aufgetaucht ist. 35 5.5.3. "Parameter speichern..." Die Parameter k”nnen unter dem Namen "GEMFONT.INF" an dem Ort abgespei- chert werden, von dem aus auch GEMFONT gestartet wurde. Findet GEMFONT diesen Ort nicht, so mssen Sie ihn selbst vorgeben. Geben Sie als Dateinamen immer "GEMFONT.INF" an. (Fr Fortgeschrittene: GEMFONT sucht seine Infodatei mittels shel_find().) Seit der Version 1.20 geh”ren zu diesen Parametern auch s„mtliche von GEMFONT benutzte Dateipfade. 5.6. Das Men "Fonts" 5.6.1. "™ffne xxxxxxxx.xxx" (Control 1 bis 7) Wenn ein Fenster geschlossen wurde, so kann es mit diesem Menpunkten wieder ge”ffnet werden. Die x's werden dabei durch den Dateinamen des Fonts ersetzt. Beachten Sie dabei, daž pro Font nur ein Fenster ge”ff- net werden kann. 36 6. Das Editorfenstermen Die hier besprochenen Funktionen sind in ihrer Wirkung ausschliežlich auf den Font, zu dem dieses Editormen geh”rt, beschr„nkt. Einige der Funktionen verlangen explizite Koordinatenangaben. In diesem Fall wird die Maus in ein Zielkreuz verwandelt, mit dem Sie dann das Pixel aussu- chen, das die gewnschten Koordinaten besitzt. Ein Klick aužerhalb des Editorrasters wird von GEMFONT als Aufforderung zum Abbruch der Funk- tion interpretiert. Bei der Beschreibung wird nicht mehr jedesmal auf diesen Umstand hingewiesen. Auch hier gilt, daž nahezu alle Dialogboxen eine Abbruchm”glichkeit besitzen. In diesem Fall werden die von Ihnen gemachten Žnderungen innerhalb des Dialogs nicht bernommen. Funktionen, die sich auf den ganzen Zeichensatz auswirken, beeinflussen nur alle diejenigen Zeichen, die zwischen first_ade und last_ade lie- gen. Fr viele Funktionen gilt: die Beschreibung klingt komplizierter als die Wirklichkeit. Deshalb sollten Sie mit allen Funktionen ein wenig spielen, um ihre Funktionsweise zu verstehen. 6.1. Das Men "GEMFONT" 6.1.1. "šber GEMFONT..." Dieser Menpunkt ist identisch mit dem des Hauptmens. 6.2. Das Men "Zeichen" 6.2.1. "Auswahl..." (Funktionstaste 1) Diese Funktion wurde in Version 1.20 komplett berarbeitet. Es wird eine Box angezeigt, in der Sie alle Zeichen, die der Font momentan kennt (also zwischen first_ade und last_ade), direkt mit der Maus ausw„hlen k”nnen. Nicht erlaubte Zeichen werden als Leerzeichen darge- stellt, eine Ausnahme stellt das Zeichen mit dem Code Null, das eben- falls als Leerzeichen dargestellt wird. Eine Anwahl solcher Zeichen ist nicht m”glich. Mit den Buttons "Vorheriges" und "N„chstes" k”nnen Sie das Zeichen vor bzw. nach dem aktuellen Zeichen sofort anw„hlen. 6.2.2. "Breite" (Funktionstaste 2) Hier stellen Sie mit dem Fadenkreuz die neue Breite des Zeichens ein. Klicken Sie dabei auf diejenige Spalte, die als die letzte benutzte Spalte gelten soll. Diese Spalte und die links von dieser liegenden geh”ren dann zum benutzten Teil des Zeichen. Da mit dieser Methode die Auswahl der Zeichenbreite 0 nicht m”glich ist, muž in diesem Fall zus„tzlich beim Mausklick eine der Shift-Tasten gedrckt werden. In diesem Fall wird die Breite auf 0 gesetzt, egal in welche Spalte Sie geklickt haben. 6.2.3. "Hor. Verschiebung..." (Alternate V) Das Einstellen des horizontalen Offsets eines Zeichens geschieht hier. 37 Standardm„žig besitzt jedes Zeichen die Verschiebung 0. Insgesamt sind nur die Werte zwischen -128 bis einschliežlich 127 erlaubt. Mit diesem Offset l„žt sich ein sehr einfaches Kerning realisieren. 6.2.4. "Zentrieren..." (Funktionstaste 7) Das aktuelle Zeichen wird zwischen dem linken Rand und derjenigen Spalte, die Sie mit der Funktion "Breite" eingestellt haben, horizontal zentriert. Diese Funktion ist wichtig bei Ziffern, die alle die gleiche Breite besitzen mssen, da sonst ein Tabellensatz fast unm”glich ist. (Vielen Signum.Zwei!-Fonts ist dies trotzdem neu.) 6.2.5. "Ausmaž anpassen..." (Funktionstaste 8) Hier k”nnen die R„nder aller Zeichen neu eingestellt werden. GEMFONT kann fr Sie automatisch die Zeichenober- und unterkanten ermitteln. Dazu wird einfach die letzte oberste und unterste benutzte Pixelzeile gesucht. (Praktisch bei importierten Fonts.) Wenn Sie einen Wert in die editierbaren Felder eingeben, dann positio- niert GEMFONT alle Zeichen so, daž sie die von Ihnen vorgegebene Anzahl von freien Pixelspalten auf der rechten/linken Seite besitzen. Diese Funktionen werden dann aktiviert, wenn Sie einen Wert in ein Feld eintragen. Soll die Funktion nicht ausgefhrt werden, dann muž dieses Feld leer sein. Die von Ihnen eingestellte Breite der einzelnen Zeichen wird automatisch angepažt. Die Funktion "Ziffernbreiten anpassen" ermittelt die gr”žte Breite aller Ziffern, pažt die Breite aller Ziffern an den gefundenen Maximal- wert an und zentriert anschliežend alle Ziffern horizontal. Die Anpassung der Breite ist besonders bei vielen Signum.Zwei!-Fonts sehr hilfreich, eine anschliežende šberprfung und Korrektur von Hand ist dennoch meistens unumg„nglich. 6.2.6. "Werkzeuge..." (Funktionstaste 3) An dieser Stelle finden Sie in einem RaveUp-Men, das an der aktuellen Mausposition erscheint, eine Auswahl von ntzlichen Zeichenfunktionen. "Linie" Nach der Angabe von zwei Koordinatenpunkten wird eine durch- gehende Linie gezogen. "Kreis" Als erstes gegen Sie den Mittelpunkt des Kreises an, der zweite von Ihnen zu setzende Punkt gibt den Radius an, der Rand wird durch diesen Punkt verlaufen. Genaugenommen wird mit dem zweiten Punkt nur der Radius des Kreis(-segmentes) bestimmt, so daž seine Richtung vom Mittelpunkt aus betrachtet egal ist. "Rechteck" Nach der Angabe der Koordinaten von zwei diagonal gegenberlie- genden Punkten eines Rechtecks wird ein ausgeflltes Rechteck ge- 38 zeichnet. "Rand" Wie "Rechteck", aber es wird nur der Rand gezeichnet. "Fllen" Geben Sie einen Punkt innerhalb einer Umrandung an, die gefllt werden soll. "Umrandung" Von dem Zeichen wird nur ein es umgebender Rand gezeichnet. Die Ausmaže des Zeichens wachsen in alle Richtungen um ein Pixel. "Aush”hlen" Wie "Umrandung", doch von dem Zeichen bleibt nur der Rand stehen. Die Ausmaže ver„ndern sich nicht. "1. Quadrant" bis "4. Quadrant" Wie "Kreis", aber es wird jeweils nur ein Kreisviertel in dem gew„hlten Quadrant gezeichnet. "Bogen oben/unten/rechts/links" Wie "Kreis", aber es wird in der angegebenen Richtung vom Kreis- mittelpunkt aus ein Halbkreis gezeichnet. 6.2.7. "Schieben/Rotieren..." (Funktionstaste 4) Zeichen k”nnen um einen beliebigen Wert innerhalb ihrer Maske verscho- ben bzw. rotiert werden. Geben Sie dazu die Verschiebe-/Rotierrichtung sowie die Anzahl der Pixel an, um die verschoben/rotiert werden soll. Ein leeres Wertfeld wird mit dem Wert 1 gleichgesetzt. Beim Schieben gehen Pixel, die ber den Rand geschoben werden verloren, beim Rotieren erscheinen sie hingegen wieder auf der gegenberliegenden Seite. Mit dem Button "Alle Zeichen bewegen" werden alle Zeichen des Fonts auf die gewnschte Art ver„ndert. 6.2.8. "Spiegeln/Drehen..." (Funktionstaste 5) Zeichen k”nnen an ihrer X- oder Y-Achse gespiegelt werden. Zudem k”nnen Sie um 90, 180 und 270 Grad in beide Richtungen gedreht werden. Bei Drehungen um 90 bzw. 270 Grad k”nnen Pixel verloren gehen, wenn die Breite des Rasters ungleich dessen H”he ist. Die Drehung um 180 Grad ist ein Synonym fr die Spiegelung an der X-Achse. Mit dem Button "Alle Zeichen spiegeln/drehen" werden alle Zeichen des Fonts auf die gewnschte Art ver„ndert. 6.2.9. "Stauchen/Strecken..." (Funktionstaste 6) Ein Zeichen kann sowohl vergr”žert als auch verkleinert werden. Geben 39 Sie dabei an, ob in horizontaler, vertikaler oder in beiden Richtungen gestreckt/gestaucht werden soll. Der von Ihnen eingegebene Wert gibt das Verh„ltnis der Gr”žen„nderung in Prozent an (Beispiel: Strecken um den Faktor 2: 2 * 100 = 200, Stauchen um den Faktor 4: (1 / 4) * 100 = 0.25 * 100 = 25). Es k”nnen auch alle Zeichen um die eingestellten Parameter verg”žert/verkleinert werden. Seit Version 1.10 werden die Vergr”žerung und Verkleinerung von zwei getrennten Algorithmen behandelt, die jeder fr sich neu entwickelt und extrem optimiert wurde. Im Gegensatz zum alten Algorithmus konnte die Anzahl der Fliežkommaoperationen auf einen Minimum gedrckt werden, innerhalb der notwendigen Schleifen tauchen nur noch elementare Inte- geroperationen auf, was auch der Grund fr die Geschwindigkeitssteige- rung um den Faktor 10 bis 15 ist. Der anzugebende Schwellenfaktor wirkt sich nur bei Verkleinerungen aus: es wird errechnet, wieviele Pixel aus dem Quellraster nach einer Ver- kleinerung auf den gleichen Punkt im Zielraster fallen, die betroffenen Pixel aus dem Quellraster werden zu einem logischen Bildblock zusammen- gefažt. Anschliežend wird das Verh„ltnis der tats„chlich gesetzten Punkte in einem solchen Bildblock zu der Anzahl der gesamten Punkte darin berechnet, der sich ergebende Koeffizient wird mit dem Schwellen- wert verglichen, wird er berschritten, dann wird der Punkt im Zielra- ster gesetzt, sonst nicht. Ein Schwellenwert von 50 Prozent ist in den meisten F„llen ausreichend, doch bei starker Verkleinerung dnnen die Zeichen zu stark aus, der Schwellenwert ist hier zu hoch. In solchen F„llen sollte man ihn auf 40 oder gar 30 Prozent absenken. Bei Vergr”žerungen stellt sich dieses Problem nicht, da in keinem Fall zwei Punkte aus dem Quellraster auf einen gleichen Punkt im Zielraster fallen k”nnen. Die Aktion kann durch Drcken einer Shift-Taste abgebrochen werden, die bereits ver„nderten Zeichen werden nicht in ihren Ursprungszustand zurckversetzt. 6.2.10. "Verfetten" Hier kann das aktuelle Zeichen horizontal oder vertikal um den Wert 1 verfettet werden. Der Effekt ist der gleiche wie bei thicken. 6.2.11. "Komplett l”schen" (Alternate L) Die Zeichenmaske wird nach Best„tigung einer Sicherheitsabfrage kom- plett gel”scht. 6.2.12. "Zeichen aufr„umen" Bei allen Zeichen werden diejenigen Pixel, die aužerhalb der Zeichen- zellenunterkante bzw. der Zeichenbreite liegen, gel”scht. Zeichen, in denen kein Pixel gesetzt ist, wird die Breite 0 zugewiesen (Ausnahme: das Leerzeichen (Code 32)). 6.3. Das Men "Editor" 6.3.1. "Editormaskengr”že..." (Alternate C) 40 Die von Ihnen gew„hlte Gr”že der Editorpuffer kann hier nachtr„glich ge„ndert werden. Dazu muž aber noch mindestens ein Fontplatz unbenutzt sein. Bei Verkleinerung der Gr”že gehen die berstehenden Pixel ohne Warnung verloren. 6.3.2. "Editorrastergr”že..." (Alternate R) Die Gr”že des Editorrasters kann getrennt fr die Spalten und Zeilen eingestellt werden. Vorgabe sind dabei die Breite des Systemzeichensat- zes. Kleine Werte verschaffen einen guten šberblick, bremsen aber den Bildschirmaufbau. 6.3.3. "Hilfspunkt setzen" (Funktionstaste 9) Zur besseren Orientierung beim Entwurf von Zeichen k”nnen bis zu 32 Hilfspunte an frei w„hlbaren Punkten des Fonts gesetzt werden. Diese erscheinen in grauer Rasterung, haben aber sonst keine Auswirkung auf den Font. Zum Setzen eines Hilfspunkt w„hlen Sie einfach den gewnschten Punkt aus. 6.3.4. "Hilfspunkt l”schen" (Alternate W) Wollen Sie einen Hilfspunkt wieder entfernen, dann k”nnen Sie die mit dieser Funktion tun. Klicken Sie den zu l”schenden Hilfspunkt einfach ein. 6.3.5. "Alle Punkte l”schen" Nach Best„tigung einer Sicherheitsabfrage werden alle Hilfspunkte gel- ”scht. 6.3.6. "Žnderungen zurcknehmen" (UNDO) Wenn Sie ein neues Zeichen ausw„hlen, dann wird dieses Zeichen zus„tz- lich in einen internen Puffer kopiert, bevor Sie es ver„ndern k”nnen. Wenn Sie Ver„nderungen gemacht haben, diese aber wieder rckg„ngig machen wollen, dann k”nnen Sie dies mit dieser Funktion tun. Wenn Sie ein anderes Zeichen ausw„hlen, dann werden alle Ver„nderungen am alten Zeichen bernommen, eine Rcknahme ist nicht mehr m”glich. 6.3.7. "Undopuffer aktualisieren" (Control UNDO) Diese Funktion finden Sie nicht im Men, da sie nur selten gebraucht wird. Das aktuelle Zeichen wird mit dieser Funktion zu (fast) jedem beliebigem Zeitpunkt in den internen Puffer kopiert. Ein Druck auf Undo holt dann wieder genau diese Kopie wieder zurck, sofern Sie nicht inzwischen ein anderes Zeichen ausgew„hlt haben. Das manuelle Erneuern kann bei bestimmten schwerwiegenden Ver„nderungen als Sicherung n”tig sein. 41 6.4. Das Men "Fontheader" 6.4.1. "Zeichenextrema..." (Alternate Z) Hier stellen Sie die Parameter first_ade und last_ade mittels zweier Slider ein. 6.4.2. "Fontlinien..." (Alternate A) Die Ausrichtungslinien werden hier eingestellt. In einem RaveUp-Men w„hlen Sie diejenige Linie aus, die sie neu setzen m”chten. Anschlie- žend w„hlen sie Zeile aus, an die die Linie gesetzt werden soll. GEM- FONT achtet darauf, daž die Linien in der korrekten Reihenfolge vorlie- gen und warnt Sie gegebenfalls. (Ein beliebter Fehler bei alten GDOS- Fonts!) 6.4.3. "Fontflags..." (Alternate B) Die Bits 0 bis 3 des Parameters flags k”nnen hier gesetzt bzw. gel”scht werden. Deren Bedeutung wurde bereits erkl„rt. 6.4.4. "Fontkenndaten..." (Alternate D) Die Parameter name, id und points werden hier eingegeben. GEMFONT kann anhand der Ausrichtungslinien selbst den Wert points berechnen, doch dabei orientiert das Programm sich an der momentanen Bildschirmaufl”- sung, weshalb diese Funktion nur fr Bildschirmfonts geeignet ist. 6.4.5. "Kursivschrift..." (Alternate K) Der Wert skew wird hier bitweise eingestellt. left_offset und right- _offset werden durch den Button "Gr”že" automatisch errechnet. Dies ge- schieht auch, wenn der Dialog mit "OK" verlassen wurde. Die Buchstaben und Zahlen ber den K„stchen stehen fr das dazugeh”rige Bit (ausge- drkt als Hexadezimalzahl). 6.4.6. "Fettschrift..." (Alternate F) Hier wird der Wert thicken eingestellt. 6.4.7. "Unterstreichen..." (Alternate G) Hier wird der Wert ul_size eingestellt. 6.4.8. "Helle Schrift..." (Alternate H) Der Wert lighten wird hier bitweise eingestellt. 6.5. Schriftproben 42 Mit der Taste ESC erreichen Sie einen Dialog, mit dem Sie Schriftproben auf dem Bildschirm und dem Drucker erstellen k”nnen. Sie k”nnen entwe- der nur das aktuelle Zeichen oder eine von Ihnen vorgegebene Zeichen- kette ausgeben lassen. Wenn kein Drucker verfgbar ist, dann ist als Ausgabeger„t nur der Bildschirm m”glich. Wurden bei der Druckerausgabe zus„tzliche Zeilen- vorschbe gewnscht, so wird nach jedem Ausdruck der Vorschubsz„hlen automatisch um den Wert 4 erh”ht. Sie k”nnen aber auch eigene Werte vorgeben, beispielsweise 0 beim Beginn einer neuen Seite. Seit Version 1.10 ist es endlich m”glich, auch die VDI-Textattribute in die Schriftprobe mit eingehen zu lassen. Derzeit k”nnen die Attribute "unterstrichen", "kursiv", "fett" und "hell" beliebig miteinander kombiniert und in ihrer Wirkung auf die Schrift betrachtet werden. Das Attribut "outlined" wird nicht untersttzt, weil es kaum gebraucht wird und ich zur Zeit nicht die Notwendigkeit fr die (doch recht kompli- zierte) Implementierung sehe. Bei der Ausgabe auf ein GDOS-Ger„t ist folgendes zu beachten: Nicht jedes Ger„t, daž GDOS als einen Drucker ansieht, ist tats„chlich ein physikalisch vorhandener Drucker. So kann der Treiber IMG-300.SYS beispielsweise in eine Datei drucken, wovon GEMDOS nun berhaupt nichts weiž. Deshalb gilt folgende Konvention: - Druckt der ausgew„hlte GDOS-Treiber auf einen echten Drucker, so sollte dieser vor Druckbeginn bereits ONLINE sein. GEMFONT bemerkt dies (d.h. daž der Drucker ONLINE ist) und schickt dann noch die gewnschte Anzahl von Zeilenvorschben voraus. - Druckt der ausgew„hlte GDOS-Treiber nicht auf einen echten Druk- ker, so sollte ein trotzdem angeschlossener Drucker OFFLINE sein. GEMFONT bemerkt dies ebenfalls und unterdrckt stillschweigend in diesem Fall die Ausgabe von irgendwelchen Positionierungskomman- dos, die ja sowieso sinnlos w„ren. 43 7. H„ufige Fragen, Probleme und Tips - Wieso kann GEMFONT keine Speedo-Schriften verarbeiten? Bei den Speedo-Schriften handelt es sich um Bitstream-Schriften, also um Vektorschriften, obwohl der Name "Bitstream" etwas irrefhrend ist. Bei den Vektorschriften handelt es sich um ein v”llig anderes Konzept als bei den Pixelorientierten GDOS-Schriften. Wenn GEMFONT mit Vektorschriften arbeiten sollte, dann msste das Programm komplett umgeschrieben werden. Zudem ist das Format der Bitstream- Schriften meines Wissens nicht fr normal Sterbliche zug„nglich, so daž ich nur im Trben fischen wrde. - viele alte GDOSse (etwa die Versionen 1.0, 1.1 und 1.8 von Atari) haben Probleme, Fonts im Motorola-Format zu verarbeiten. Berichten zufolge sollen die Reaktionen von leicht ver„rgert ber Pixelmll bis hin zur Bombenstimmung reichen. Da ich nicht selbst solche Uraltversionen besitze, muž ich mich hier auf H”rensagen sttzen. Sollten Sie selbst noch mit solchen veralteten GDOSsen arbeiten, so sollten Sie entweder auf Fonts im Motorola-Format verzichten oder aber schleunigst auf modernere Versionen umsteigen (bei- spielsweise AMC-GDOS oder NVDI). Einem Bericht der ST-Computer zufolge hat auch Speedo wieder kr„ftige Probleme mit Fonts im Motorola-Format. Da fragt man sich langsam, was einige der Programmierer bei Atari so die ganze Zeit machen. - Sollten Sie noch mit dem original Atari-GDOS arbeiten (diejenigen Versionen vor AMC-GDOS, ich meine jedoch nicht Speedo!), so rate ich Ihnen dringenst, auf andere GDOSse umzusteigen. Dafr sprechen folgende Grnde: - Die Atari-GDOSse sind stark fehlerbehaftet, vieles funktio- niert nicht so, wie es sein sollte, und wenn, dann meist nur teilweise. - Die Atari-GDOSse bremsen alle Ausgaben ber GEM um ca. 30 Prozent ab (kein Scherz). Dies ist ein unzumutbarer Zustand. - Viele Ger„tetreiber arbeiten fehlerhaft oder erschrek- kend langsam unter Atari-GDOS. - Neuere GDOS-Versionen besitzen viele inzwischen weit genutzte Erweiterungen. Sollten Sie noch mit einer solchen Version arbeiten und es gibt Probleme mit GEMFONT oder dessen Fonts, so sollten Sie erst einmal ein anderes GDOS einsetzen und schauen, ob die Probleme noch existent sind, bevor Sie sich an mich wenden. - Die Installation von GDOS selbst ist besonders fr Neulinge oft ein echtes R„tsel. Aus verst„ndlichen Grnden verweise ich hier auf die Anleitungen zu AMC-GDOS oder NVDI etwa, die sich diesem Problem ausfhrlich annehmen. - H„ufig besteht die Versuchung, einen Font, der in einer bestimmten Aufl”sung fehlt, durch Vergr”žerung oder Verkleinerung von bereits bestehenden Fonts zu erzeugen. Dies ist durchaus m”glich, doch sollten Sie sich vor Augen halten, daž die neu entstandenen Fonts intensiv nachbearbeitet werden mssen. Trotzdem ist das Ergebnis meist nicht unbedingt „sthetisch (beispielsweise das Verh„ltnis Breite zu H”he), denn das Auge nimmt etwa kleine Fonts anders wahr 44 als grože Fonts. Also sollte man sich vorher berlegen, ob es nicht sinnvoll w„re, den fehlenden Font komplett neu zu erstellen, auch wenn dies viel Arbeit ist, doch das Ergebnis ist dann meist wesentlich besser. - Bei Schriftproben auf 24-Nadeldruckern muž die lighten-Maske sehr "l”chrig" gew„hlt werden, da die Standardmaske, die immerhin jedes zweite Pixel unterschl„gt, ihre Wirkung erst unter einer Lupe ent- faltet. Generell kann gesagt werden, daž bei mageren Fonts die Maske "dichter" sein muž als bei fetten Fonts, da sonst die Seri- fen in ihrer Feinheit zu stark Schaden nehmen. - Manche Programme weigern sich, mit eigenen GDOS-Fonts zu arbeiten, solange kein passendes Metafont-File fr den Metafile-Treiber angemeldet wurde. Eine „ltere Version des Zeichenprogramms Kan- dinsky verh„lt sich beispielsweise so. 45 8. Bezugsquellen fr GDOS 8.1. GDOS Inzwischen ist GDOS recht weit verbreitet und einfach zu erhalten. AMC- GDOS ist bis einschliežlich Version 3.21 Public Domain und unter ande- rem bei Atari Deutschland gegen Einsendung eines frankierten Rckum- schlag inklusive Disketten erh„ltlich (n„heres siehe unten). Es ist aber auch auf vielen FTP-Servern oder in vielen DFš-Netzen zu finden. Alle sp„teren Versionen von AMC-GDOS werden in Zusammenhang mit kommer- ziellen Produkten (Version 5 beispielsweise mit X-Act) oder Shareware- produkten (eine eingeschr„nkte Version 4 beispielsweise mit Gemini) vertrieben. Daneben ist das NVDI in der Version >= 2.1 w„rmstens zu empfehlen, daž neben einer deutlichen Bildschirmbeschleunigung auch ein sehr gutes und erweitertes GDOS mit sich bringt. NVDI wird von der Firma "Bela Compu- ter, Eschborn" vertrieben. Selbst im Zusammenspiel mit Speedo kann NVDI noch einiges bewirken. Von Atari USA gibt es ein inzwischen nicht mehr ganz so neues GDOS mit dem Namen FontGDOS. Wesentliche Neuerungen sind die F„higkeit, Bezier- kurven ausgeben zu k”nnen sowie das Fontcaching, d.h. Fonts werden nur noch bei Bedarf geladen, was viel Speicher spart. Zudem liegen diesem Paket eine Flle von z.T. stark optimierten GDOS-Druckertreibern inkl. Konfigurationsprogrammen bei; allein dies macht das Paket schon sehr wertvoll. Leider bietet FontGDOS auch weniger sch”ne Seiten; etwa daž es das System um ca. 25 Prozent bremst (so gemessen mit meinem TOS 2.05) und Probleme mit der Speicherverwaltung sowie einigen nachweislich sauber programmierten GEM-Programmen hat (beispielsweise ein krachender Ab- sturz beim Polygontest in GEM_TEST.PRG, weil FontGDOS offensichtlich davon ausgeht, daž standardm„žig Bezierkurven statt Polygonen verwendet werden sollen). Im NewsNet habe ich inzwischen Mitteilungen von anderen Anwendern gelesen, die von weiteren z.T. gr”žeren Fehlern berichten. Wer jedoch noch keine passenden Druckertreiber hat, der ist mit FontGDOS gut bedient. Seit Ende April 1993 ist nun endlich Speedo-GDOS fr ca. 100,- DM erh„ltlich. Da ich bisher damit keine eigenen Erfahrungen sammeln konnte, muž ich mich hier auf die Fachpresse berufen, die sich jedoch schon im Vorfeld beeindruckt von der Anzahl und der Hochwertigkeit der Schriften zeigt. 8.2. GDOS-Fonts Bezugsadressen fr frei zug„ngliche GDOS-Fonts anzugegen, f„llt schwer. Einige Firmen legen ihren Produkten einige Fonts bei (beispielsweise EasyDraw oder X-Act), die dann allerdings Teil des Programms sind und durch dessen Copyrightbestimmung gegen eine Weiterverbreitung geschtzt sind. Wohl kaum ein Anwender wird sich solch ein Programm kaufen, blož weil er dessen Fonts gebrauchen kann. In einigen Mailboxen und FTP-Servern gibt es Archive, die einen Grož- teil der verfgbaren Fonts erhalten. Leider sind diese Sammlungen nicht vollst„ndig, meist fehlen die Druckerfonts, oder es gibt keine Fonts fr die mittlere Bildschirmaufl”sung oder Metafonts. Dies liegt jedoch nicht an den Zusammenstellern dieser Sammlungen, sondern einfach an dem verfgbaren Angebot an Fonts. Meines Wissens bietet Atari selbst einige GDOS-Fonts im Zusammenhang mit dem GDOS-Kit an, das jeder direkt bei Atari beziehen kann. Um 46 dieses zu erhalten, schicken Sie einen einen mit 3,00 DM frankierten DIN C5 Umschlag, der wiederum einen an sich selbst adressierten geft- terten DIN C5 Rckumschlag enth„lt (ebenfalls 3,00 DM), an folgende Adresse: Atari Deutschland GmbH Abteilung Kundensupport Am Kronberger Hang 2 D-6231 Schwalbach Wichtig: Sie mssen selbst drei Disketten mitschicken (deshalb das hohe Porto) sowie in einem kurzen Brief um die Zusendung des GDOS-Kits bestehend aus Fonts und Treibern bitten, sonst weiž niemand beim Kun- densupport, was Sie wollen. Woraus dieses Kit im einzelnen besteht, kann ich (noch) nicht sagen, da ich erst vor kurzem von dieser M”glich- keit erfahren habe. Frei verfgbare Druckerfonts fr 24-Nadler oder Laserdrucker sind mir ansonsten bisher nicht untergekommen, hier hilft nur das Importieren bzw. Selbsterstellen. Wer dennoch auf hochwertige Fonts angewiesen ist, dem bleibt nur Spee- do-GDOS brig. Die Quantit„t und Qualit„t der dazugeh”rigen Fonts ist sehr hoch, doch sollte man sich auch vor Augen halten, das Speedo- Fonts kommerziell entwickelt und vertrieben werden. Die Preise fr einen Font scheinen sich in der gleichen Preisklasse wie fr einen Calamus-Font einzupendeln und sind damit wohl nur noch fr professio- nelle und kommerzielle Anwender interessant. Es macht also durchaus Sinn, sich weiterhin auch auf dem Gebiet der Pixelfonts zu bet„tigen! 47 9. Interna 9.1. Wie alles anfing GEMFONT besteht grob gesehen aus zwei Teilen: einem selbst program- mierten GEM-Skelett, und dem Fonteditor selbst, der auf diesem Skelett aufbaut. Nach meinen ersten gr”žeren GEM-Projekten stellte ich schnell fest, daž bei der Programmierung viele wiederkehrende Routinearbeiten anfallen, die sich anbieten, zu eigenen Modulen zusammengefažt zu werden. So entstanden die ersten Module des Skeletts noch unter MWC 3.0. Mit der Zeit kamen mehr und mehr Module dazu, um im Herbst 1991 be- schlož ich, auf Lattice C 5.5 umzusteigen. Ende Februar 1992 hielt ich den Compiler dann endlich in meinen H„nden ("... ja, er wird diese Woche verschickt!"). Erneut begann ich, meine GEM-Modulbibliothek auf Lattice C zu portie- ren. Doch schon nach wenigen Wochen war ich ber dessen (nach meiner Meinung) unvollst„ndiges und unbrauchbares deutsches Handbuch sowie ber einige (inzwischen behobene) unangenehme Eigenheiten des Compilers dermažen ver„rgert, daž ich mich notgedrungen entschied, erneut umzu- steigen, diesmal auf den GNU C-Compiler V2.x.x der FSF (siehe auch die Artikelserie im ST-Magazin ab 8/92). (Leider konnte der gute Support der Firma CCD mir damals auch nicht weiterhelfen. Eigentlich schade, denn der Compiler ist an sich gut). Mit GCC verstand ich mich auf Anhieb bestens, daž Skelett gedieh pr„ch- tig, bis es Mitte 1992 nahezu ausgewachsen war. Um es praktisch einzu- setzen, beschlož ich, GEMFONT erneut anzugehen, nachdem der erste Versuch vor zwei Jahren aus Zeitmangel gescheitert war. Da ich noch auf die Konzepte aus dieser Zeit zurckgreifen konnte, entwickelte sich GEMFONT recht schnell, die erste komplette Version stand Mitte Oktober 1992. 9.2. Ein paar Fakten Das komplette Programm besteht z.Z. aus ca. 20000 Zeilen die sich auf 33 C-Module, 10 Header-Files und 1 kleines Assembler-Modul verteilen und insgesamt ungef„hr 700 Kbyte Umfang erreicht haben. Das Skelett besteht aus ca. 9000 Zeilen, den Rest verbucht der eigentliche Editor fr sich. Die Entwicklung fand und findet auf einen Mega STE 4 mit 85 MB-Fest- platte statt. Als Compiler wird der (meiner Meinung nach sehr gute) GNU-C-Compiler V2.x.x der Free Software Foundation (FSF) verwendet, den ich jedem empfehlen kann, der genug Speicher hat. Als Libraries wurden die MiNT-Library PatchLevel 32, die GEM-Library PatchLevel 27 und die Portable Math Library PatchLevel 21 verwendet. Dabei wurden alle Dateioperationen nicht direkt ber das GEMDOS abge- wickelt, sondern der MiNT/GNU-Library berlassen, was sich (so hoffe ich) positiv auf die Zusammenarbeit mit MiNT und MultiTOS auswirken wird. Probleme mit MiNT gibt es jedenfalls nicht (getestet mit MiNT 0.96 PatchLevel 14, MiNT 0.99 PatchLevel 2 und MiNT 1.04). 9.3. Laden und Speichern von Fonts Das GDOS-Fontformat ist zwar recht speicherplatzsparend, aber nur wenig zum direkten Editieren geeignet, aužer man benutzt aufwendige Algorith- men, bei denen st„ndig grože Speichermassen verschoben und kopiert wer- 48 den mžten. Ich habe aber den Weg der Einfachheit vorgezogen (ja ja, ich weiž...), und deshalb wird der Font bei Laden in einzelne Puffer von konstanter Gr”že ausgepackt. Dies erfolgt auf die gleiche Weise, wie das VDI seine Zeichen ausgibt: ber die Funktion vro_cpyfm. Da in der Character-Offset-Tabelle alle wichtigen Positionen vermerkt sind, geschieht dies ohne weiteren Rechenaufwand. Beim Speichern wird genau der umgekehrte Weg gegangen: die Puffer werden mittels vro_cpyfm zum "Fontbild" zusammengesetzt. Darberhinaus wird vro_cpyfm noch in vielen anderen Funktionen einge- setzt, von den Verfremdungsfunktionen bis zu den Pufferfunktionen hin. Dies bedeutet, daž die Rasterkopierfunktion unbedingt fehlerfrei funk- tionieren mssen, was heute auch bei Grafikkarten aber der Fall sein drfte. Kleiner Nach- oder auch Vorteil: die Geschwindigkeit dieser Funktion beeinflužt viele andere Funktionen, so kann ein Blitter oder NVDI sie sehr beschleunigen. Eine spezielle Kopierroutine w„re viel- leicht schneller ("... das ist dann wieder Arbeit."), dafr w„re der Aufwand aber wieder h”her ("... wir Informatiker sind von Natur aus faul." Hallo Michael!) 49 10. Fontregistrierung 10.1. Die Idee Hinter der Idee, GDOS-Fonts "registrieren" zu lassen, steht folgender Gedanke: Da jeder Font eine Kennung (ID) besitzt, ist es notwendig, daž diese ID nicht mehrfach fr verschiedene Fonts vergeben wird. Um dies zu verhindern, wird jeder Font registriert, d.h. wichtige Fontdaten werden in eine Liste aufgenommen, die allen zug„nglich ist (obwohl eine mehrfache Belegung nicht so schlimm ist wie beim XBRA-Verfahren). Auf diese Weise kann man auch sehen, welche Fonts bereits existieren, damit man vielleicht das Rad nicht noch einmal erfindet bzw. zeichnet. Wer die XBRA-Registrierung kennt, dem wird dieses Konzept bekannt sein. Die jeweils aktuelle Liste wird mit jedem neuem Update verteilt, kann aber auch bei mir auf Diskette angefordert werden (gleiches Verfahren wie das Anfordern einer Kopie von GEMFONT). Natrlich h„ngt die Zukunft dieser Idee stark davon ab, wie grož die Resonanz, sprich die Mitarbeit ist (obwohl man das ja eigentlich gar nicht als Arbeit bezeichnen kann). Also ...! 10.2. Die Registrierung Um einen oder mehrere Fonts in die Liste aufnehmen zu k”nnen, ben”tige ich folgende Angaben: - die Font-Kennung (font_id) (Beispiel: "83") - den Font-Namen (Name + Stil) (Beispiel: "Times bold") - fr welches Ausgabeger„t/Aufl”sung in welchen Gr”žen verfgbar (Beispiel: "300 DPI: 8,9,10,12 points, High: 4,6,8 points") - Angabe ber das Original (Beispiel: "Konvertierte SIGNUM.Zwei!- Schrift 'Dutch'", oder "mit GEMFONT erstellt" etc.) - Bemerkungen (z.B. Fehler im Header) - Bei kommerziell vertriebenen Fonts die vollst„ndige Bezugsadresse. Ansonsten geben Sie bitte m”glichst genau an, woher man den Font bekommen kann (etwa PD-Versand oder bei einem Autor etc.), damit auch andere Benutzer diesen bei Bedarf erhalten k”nnen. - Name und Anschrift des Autors des Fonts (sofern bekannt, wenn m”glich auch Netz-Adresse (Mailbox, FTP etc.)) In jedem Fall ben”tige ich fr Rckfragen unbedingt die Adresse derje- nigen Person, der mir Fonts zur Registrierung anbietet. Sollten Sie ber InterNet erreichbar sein, dann geben Sie bitte auch ihre Netz- adresse an, meine finden Sie weiter oben. Scheuen Sie sich dabei nicht, auch Fonts registrieren zu lassen, die nicht von Ihnen stammen. Damit die Liste m”glichst vollst„ndig wird, erbitte ich auch die Registrie- rung von Fonts kommerzieller Produkte. Ebenso bitte ich um Erg„nzung oder Korrektur von bereits vorhandenen Angaben. 10.3. Anfragen Anfragen bezglich Fonts sollten Sie zuerst versuchen, anhand einer aktuellen Fontliste abzukl„ren. Sollten Sie dennoch Fragen haben, so k”nnen Sie mit mir Kontakt aufnehmen, entweder per Post oder ber das InterNet. Wenn Sie mir schreiben, legen Sie bitte ausreichend Rckporto bei. 50 Antrag auf Registrierung Hiermit bitte ich um die Registrierung als Anwender von GEMFONT. Meine Adresse lautet: __________________________________________________ (Vor- und Nachname) __________________________________________________ (Straže und Hausnummer) __________________________________________________ (PLZ und Ortname) __________________________________________________ (Land) Den Sharewarebetrag von DM 30,- zahle ich wie folgt: [ ] - bar [ ] - per Scheck (Verrechnungsschecks bitte auf "Sascha Blank" ausstellen.) Folgende Angaben sind freiwillig und sollen dem Programmautor lediglich helfen, sich besser auf die Ausstattung der Benutzer einstellen zu k”nnen: Computer (genaue Bezeichnung): ________________________ Speicherausbau: ______ MByte TOS-Version: ______ Ich besitze folgenden Drucker: ________________________ Er bietet folgende Aufl”sung (in DPI): ________________ Wie sind Sie auf dieses Programm aufmerksam geworden, woher haben Sie diese Kopie erhalten? ____________________________________________________________ Wenn Sie ber InterNet erreichbar sind und ber die Weiterentwicklung von GEMFONT auf dem Laufenden gehalten werden wollen, dann geben Sie bitte hier ihre Email-Adresse an: ____________________________________________________________ Ich bin damit einverstanden, daž meine Daten zu Verwaltungszwecken elektronisch gespeichert werden. Eine Weitergabe an Dritte findet in aber keinem Fall statt. Falls Sie nicht einverstanden sind, dann strei- chen Sie diesen Absatz. ______________________________ ______________________________ (Unterschrift) (Ort und Datum)