GEMFONT ------- Ein GEMgesttzter Zeichensatzeditor fr GDOS-Pixelfonts Version 1.11 Oktober 1992 bis Mai 1993 (c) 1991-93 by Sascha Blank Shareware-Version "Fr moderne GEM-Programme eignet sich [ ... ] GNU-C [ nicht ]." (ST-Computer 2/93, Seite 27) 1 Inhaltsverzeichnis 1. Rechtliches . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Bedingungen fr die Weitergabe von GEMFONT . . . . . . . 5 1.2. Haftungsausschluž . . . . . . . . . . . . . . . . . . . . 5 1.3. Urheberrechte und deren Schutz . . . . . . . . . . . . . 5 1.4. Bestimmungen zur Verbreitung selbsterstellter Fonts . . . 6 2. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1. Warum berhaupt GEMFONT? . . . . . . . . . . . . . . . . 7 2.2. Diese Anleitung . . . . . . . . . . . . . . . . . . . . . 7 2.4. Systemanforderungen . . . . . . . . . . . . . . . . . . . 8 2.5. Die Formalit„ten . . . . . . . . . . . . . . . . . . . . 8 2.5.1. Wie bekomme ich GEMFONT? . . . . . . . . . . . . . 8 2.5.2. Das Shareware-Prinzip . . . . . . . . . . . . . . 9 2.5.3. Die Registrierung . . . . . . . . . . . . . . . . 9 2.5.4. Meine Gegenleistung . . . . . . . . . . . . . . . 10 2.6. Sonstige Leistungen . . . . . . . . . . . . . . . . . . . 10 2.6.1. Wie bekommt man ein Update? . . . . . . . . . . . 10 2.6.2. Programmfehler . . . . . . . . . . . . . . . . . . 10 2.6.3. Probleme mit GEMFONT . . . . . . . . . . . . . . . 10 2.6.4. Vorschl„ge . . . . . . . . . . . . . . . . . . . . 11 2.7. Austausch von Fonts . . . . . . . . . . . . . . . . . . . 11 2.8. Danksagungen . . . . . . . . . . . . . . . . . . . . . . 11 3. Installation und Bedienung . . . . . . . . . . . . . . . . . . . 12 3.1. Installation und Programmstart . . . . . . . . . . . . . 12 3.2. Die GEM-Erweiterungen von GEMFONT . . . . . . . . . . . . 12 3.2.1. Wertgebundene Slider . . . . . . . . . . . . . . . 12 3.2.2. Modale verschiebbare Dialoge . . . . . . . . . . . 12 3.2.3. šber Tastatur bedienbare Dialogboxen . . . . . . . 12 3.2.4. Menzeilen in Fenster . . . . . . . . . . . . . . 13 3.2.5. RaveUp-Mens . . . . . . . . . . . . . . . . . . . 13 3.2.6. Das Klemmbrett . . . . . . . . . . . . . . . . . . 13 3.3. Der Desktop . . . . . . . . . . . . . . . . . . . . . . . 13 3.4. Das Editorfenster . . . . . . . . . . . . . . . . . . . . 13 3.4.1. Aufbau . . . . . . . . . . . . . . . . . . . . . . 13 3.4.2. Bedienung . . . . . . . . . . . . . . . . . . . . 14 3.5. Bedienung der Fenster ber Funktionstasten . . . . . . . 14 3.6. Sonstige hilfreiche Funktionen . . . . . . . . . . . . . 15 4. Das GDOS-Fontformat . . . . . . . . . . . . . . . . . . . . . . 16 4.1. Einfhrung . . . . . . . . . . . . . . . . . . . . . . . 16 4.2. Der Aufbau von Fonts . . . . . . . . . . . . . . . . . . 16 4.3. Der Fontheader . . . . . . . . . . . . . . . . . . . . . 16 5. Das Hauptmen . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.1. Das Men "GEMFONT" . . . . . . . . . . . . . . . . . . . 24 5.1.1. "šber GEMFONT..." (Control Z) . . . . . . . . . . 24 5.2. Das Men "Datei" . . . . . . . . . . . . . . . . . . . . 24 5.2.1. "Neu anlegen..." (Control N) . . . . . . . . . . . 24 5.2.2. "™ffnen..." (Control O) . . . . . . . . . . . . . 24 5.2.3. "Schliežen..." (Control U) . . . . . . . . . . . . 25 5.2.4. "Sichern" (Control S) . . . . . . . . . . . . . . 25 5.2.5. "Sichern unter..." (Control M) . . . . . . . . . . 25 5.2.6. "Sichern Metafont..." (Control H) . . . . . . . . 25 5.2.7. "Abbrechen..." (Control D) . . . . . . . . . . . . 26 5.2.8. "Entfernen..." (Control L) . . . . . . . . . . . . 26 5.2.9. "Importieren..." (Control I) . . . . . . . . . . . 26 5.2.10. "Exportieren..." . . . . . . . . . . . . . . . . 27 2 5.2.11. "Clipboard laden" . . . . . . . . . . . . . . . . 27 5.2.12. "Clipboard speichern" . . . . . . . . . . . . . . 27 5.2.13. "Clipboard l”schen" . . . . . . . . . . . . . . . 28 5.2.14. "Ende" (Control Q) . . . . . . . . . . . . . . . 28 5.3. Das Men "Block" . . . . . . . . . . . . . . . . . . . . 28 5.3.1. "Blockanfang" (Control B) . . . . . . . . . . . . 28 5.3.2. "Blockende" (Control K) . . . . . . . . . . . . . 28 5.3.3. "Alles ausw„hlen" (Control A) . . . . . . . . . . 28 5.3.4. "Ausschneiden" (Control X) . . . . . . . . . . . . 28 5.3.5. "Kopieren" (Control C) . . . . . . . . . . . . . . 29 5.3.6. "Einfgen" (Control V) . . . . . . . . . . . . . . 29 5.3.7. "Blockkopiermodi..." . . . . . . . . . . . . . . . 29 5.4. Das Men "Puffer" . . . . . . . . . . . . . . . . . . . . 29 5.4.1. "Maske nach Puffer..." (Alternate P) . . . . . . . 29 5.4.2. "Puffer nach Maske..." (Alternate M) . . . . . . . 29 5.4.3. "Puffer speichern..." (Alternate U) . . . . . . . 29 5.4.4. "Puffer laden..." (Alternate O) . . . . . . . . . 30 5.5. Das Men "Parameter..." . . . . . . . . . . . . . . . . . 30 5.5.1. "Speicherstatistik..." . . . . . . . . . . . . . . 30 5.5.2. "Parameter einstellen..." (Alternate Q) . . . . . 30 5.5.3. "Parameter speichern..." . . . . . . . . . . . . . 32 5.6. Das Men "Fonts" . . . . . . . . . . . . . . . . . . . . 32 5.6.1. "™ffne xxxxxxxx.xxx" (Control 1 bis 7) . . . . . . 32 6. Das Editorfenstermen . . . . . . . . . . . . . . . . . . . . . 33 6.1. Das Men "GEMFONT" . . . . . . . . . . . . . . . . . . . 33 6.1.1. "šber GEMFONT..." . . . . . . . . . . . . . . . . 33 6.2. Das Men "Zeichen" . . . . . . . . . . . . . . . . . . . 33 6.2.1. "Auswahl..." (Funktionstaste 1) . . . . . . . . . 33 6.2.2. "Breite" (Funktionstaste 2) . . . . . . . . . . . 33 6.2.3. "Hor. Verschiebung..." (Alternate V) . . . . . . . 34 6.2.4. "Zentrieren..." (Funktionstaste 7) . . . . . . . . 34 6.2.5. "Ausmaž anpassen..." (Funktionstaste 8) . . . . . 34 6.2.6. "Werkzeuge..." (Funktionstaste 3) . . . . . . . . 34 6.2.7. "Schieben/Rotieren..." (Funktionstaste 4) . . . . 35 6.2.8. "Spiegeln/Drehen..." (Funktionstaste 5) . . . . . 35 6.2.9. "Stauchen/Strecken..." (Funktionstaste 6) . . . . 35 6.2.10. "Verfetten" . . . . . . . . . . . . . . . . . . . 36 6.2.11. "Komplett l”schen" (Alternate L) . . . . . . . . 36 6.2.12. "Zeichen aufr„umen" . . . . . . . . . . . . . . . 36 6.3. Das Men "Editor" . . . . . . . . . . . . . . . . . . . . 36 6.3.1. "Editormaskengr”že..." (Alternate C) . . . . . . . 36 6.3.2. "Editorrastergr”že..." (Alternate R) . . . . . . . 37 6.3.3. "Hilfspunkt setzen" (Funktionstaste 9) . . . . . . 37 6.3.4. "Hilfspunkt l”schen" (Alternate W) . . . . . . . . 37 6.3.5. "Alle Punkte l”schen" . . . . . . . . . . . . . . 37 6.3.6. "Žnderungen zurcknehmen" (UNDO) . . . . . . . . . 37 6.3.7. "Undopuffer aktualisieren" (Control UNDO) . . . . 37 6.4. Das Men "Fontheader" . . . . . . . . . . . . . . . . . . 37 6.4.1. "Zeichenextrema..." (Alternate Z) . . . . . . . . 37 6.4.2. "Fontlinien..." (Alternate A) . . . . . . . . . . 38 6.4.3. "Fontflags..." (Alternate B) . . . . . . . . . . . 38 6.4.4. "Fontkenndaten..." (Alternate D) . . . . . . . . . 38 6.4.5. "Kursivschrift..." (Alternate K) . . . . . . . . . 38 6.4.6. "Fettschrift..." (Alternate F) . . . . . . . . . . 38 6.4.7. "Unterstreichen..." (Alternate G) . . . . . . . . 38 6.4.8. "Helle Schrift..." (Alternate H) . . . . . . . . . 38 6.5. Schriftproben . . . . . . . . . . . . . . . . . . . . . . 38 7. H„ufige Fragen, Probleme und Tips . . . . . . . . . . . . . . . 40 3 8. Bezugsquellen fr GDOS . . . . . . . . . . . . . . . . . . . . . 41 8.1. GDOS . . . . . . . . . . . . . . . . . . . . . . . . . . 41 8.2. GDOS-Fonts . . . . . . . . . . . . . . . . . . . . . . . 41 9. Interna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 9.1. Wie alles anfing . . . . . . . . . . . . . . . . . . . . 43 9.2. Ein paar Fakten . . . . . . . . . . . . . . . . . . . . . 43 9.3. Laden und Speichern von Fonts . . . . . . . . . . . . . . 43 10. Fontregistrierung . . . . . . . . . . . . . . . . . . . . . . . 45 10.1. Die Idee . . . . . . . . . . . . . . . . . . . . . . . . 45 10.2. Die Registrierung . . . . . . . . . . . . . . . . . . . 45 10.3. Anfragen . . . . . . . . . . . . . . . . . . . . . . . . 45 4 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. Sie drfen GEMFONT fr den Eigengebrauch modifizieren, z.B. laufzeit- packen oder patchen (obwohl sich das nicht lohnt, da es weder einen Kopierschutz noch sonstige L„cherlichkeiten (etwa zeitgekoppelte Demo- phasen (die meisten sind eh' so primitiv implementiert)) zu entfernen gilt). 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 Mit GEMFONT ist es u.a. m”glich, Signum- und Bitmap-Fonts in GDOS- Fonts umzuwandeln. Bitte achten Sie dabei unbedingt auf den urheber- rechtlichen 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 Signum- 5 Fonts zu, die meist den Status "Public Domain" tragen. Daneben gibt es Fonts, die urheberrechtlich geschtzt sind, beispiels- weise die Signum-Fonts der "Professional Font-Disks". In diesem Fall beziehen sich die Einschr„nkungen der Weitergabe sowohl auf die Origi- nale als auch auf die daraus konvertierten Fonts. In der Regel drfen diese Fonts nicht weitergegeben werden, so daž eine Konvertierung 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, W-5500 Trier" (Nach dem Inkrafttreten der neuen PLZen ist die alte PLZ durch die neue 54294 zu ersetzen.) 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. 6 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 So ging es mir, als ich nach langem Suchen auf zahlreichen FTP-Servern endlich einen GDOS-Druckertreiber fr meinen NEC-Pinwriter gefunden hatte. Einen Treiber hatte ich also nun, aber keine Fonts dafr, so daž ich ber das VDI eigentlich keine Texte auf dem Drucker ausgeben konn- te. Mit Hilfe eines FX-Emulationsprogramms und der GDOS-Zeichens„tzen fr den Epson FX-85 aus der Atari GDOS-Distribution gelang mir es dann doch, aber die Qualit„t ist bei 9-Nadlerfonts zwangsl„ufig entt„u- schend. Die weitere Suche nach Fonts verlief ergebnislos. Das Entwerfen eigener Fonts war kaum m”glich, weil zum einen der eine Editor, den ich eben- falls nach langem Suchen gefunden hatte, unbrauchbar war und zum ande- ren der Entwurf von Druckerfonts sehr aufwendig ist und ein gewisses Mindestmaž an typographischem Wissen erfordert, wenn das Ergebnis an- sprechend sein soll. Eine M”glichkeit w„re es, die vielen zum Teil sehr guten Signum-Fonts in GDOS-Fonts zu konvertieren, doch dies war bisher nicht m”glich. (Angeblich gibt es ein Programm, das dies kann, doch es ist mir bis heute nicht begegnet.) Um dem Fontnotstand zu mildern, beschlož ich, einen Fonteditor speziell fr GDOS-Fonts zu entwerfen, der den Entwurf von Fonts m”glichst ein- fach machen soll. Inzwischen liegt das erste gr”žere Update als Version 1.10 vor. Viele Ideen, die ich w„hrend meiner Vorbereitungszeit auf einige Klausuren gesammelt habe, sind hier mit eingegangen. Da sind vor allem die stark beschleunigten und erweiterten Vergr”žer-/Verkleinerungsroutinen sowie die Anzeige von VDI-Textattributen bei Schriftproben zu erw„hnen. 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 besonders seine Interna bis heute nur sp„rlich dokumentiert sind und man viele Fakten selbst ermitteln muž. 2.3. Was GEMFONT so alles kann GEMFONT bietet folgende Eigenschaften: - komplett in GEM eingebunden, dadurch lauff„hig auf allen Atari- Systemen in jeder Aufl”sung. - "zukunftssicher" in Bezug auf MultiGEM und MultiTOS durch ver- schiebbare modale Dialogboxen sowie durch die Nutzung des Klemm- bretts. - Steigerung des Bedienungskomforts durch Popup-Mens, ber Tastatur bedienbare Dialoge und Mens, Menzeilen in Fenstern, benutzerde- finierte Objekte (MultiTOS-sauber) und einigem mehr. - Bearbeitung von bis zu sieben Fonts gleichzeitig, die je in einem 7 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 II 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. interpoliert. - zahlreiche Editorhilfen wie eingeblendete Ausrichtungslinien, frei w„hlbare Hilfspunkte. - zahlreiche Werkzeuge wie Linien, Rechtecke, Rahmen, halbe, viertel und ganze Kreise. - zahlreiche Effekte wie spiegeln, drehen, verschieben, rotieren, verfetten, stauchen, aush”hlen, umranden, invertieren, zentrieren etc. - Verkleinerung und Vergr”žerung einzelner Zeicher oder ganzer Fonts. Seit Version 1.10 sorgen hochoptimierte Routinen fr deut- liche Geschwindigkeitszuw„chse gegenber Vorversionen (Faktor 10 bis 15). - 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. Seit Version 1.10 k”nnen dabei auch die VDI- Textattribute hinzugeschaltet und kombiniert werden. - komfortable Puffer- und Blockfunktionen. 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 Mens 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). Da es unter MiNT keine Probleme gibt, sollte dies auf MultiTOS eben- falls zutreffen. Der Betrieb unter MultiGEM sollte auch keine Probleme bereiten, was ich jedoch mangels Programm nicht selbst testen konnte. Eine Festplatte ist nicht n”tig, aber empfehlenswert. Zum Betrieb soll- ten mindestens 350 Kbyte freier Speicher vorhanden sein, da GEMFONT selbst etwa 280 Kbyte beansprucht. Doch beim Entwurf von grožen Fonts, etwa fr hochaufl”sende Drucker, sollte mindestens 1 Mbyte Gesamtspei- cher zur Verfgung stehen, da so grože Fonts im Editor leicht mehrere Hundert KByte in Anspruch nehmen (wohlgemerkt nur im Editor). Kurz gesagt: je mehr Speicher, um so besser. Die Gr”že des freien Speichers beeinflužt letztendlich die Maximalgr”že der Fonts, die Sie bearbeiten k”nnen. Ein GDOS ist nicht notwendig, aužer, Sie wollen eine Schriftprobe auch auf dem Drucker begutachten. In diesem Fall ben”tigen Sie einen passen- den GDOS-Druckertreiber, aber keine passenden Fonts. 2.5. Die Formalit„ten 2.5.1. Wie bekomme ich GEMFONT? 8 Eine Kopie von GEMFONT k”nnen Sie direkt bei mir erhalten. Dazu schik- ken Sie mir einfach eine 3,5"-Diskette (DD, auf Wunsch auch HD) sowie einen an sich selbst adressierten und ausreichend frankierten Rckum- schlag zu. Meine Adresse finden Sie weiter unten. 2.5.2. Das Shareware-Prinzip GEMFONT wird als Shareware betrieben. Fr diejenigen, die (immer) 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/oder 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. 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. 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 verschiedene Arten zukom- men lassen: 1.) als Bargeld oder 2.) in Form eines (Verrechnungs-)Schecks Nochmal meine Adresse: Sascha Blank Brentanostraže 21 W-5500 Trier (Ab 1. Juli 1993: 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. Ach ja: Dank dem neuen Konzept "Brief 2000" der Deutschen Bundespost kostet der Versand einer Diskette in einer gepolsterten Versandtasche jetzt 3,- statt bisher 1,- DM. Da ich aber nicht einsehe, fr diese Leistung jetzt dreimal soviel zu bezahlen wie bisher, zumal die Quali- t„t des Versands nicht besser geworden ist, verschicke ich die Disket- ten ab sofort in verst„rkten Briefumschl„gen. Auf diese Weise kann ich das Porto je nach Gewicht der Beilagen auf 2,- bzw. 1,- DM drcken. Wer jedoch Angst hat, die Diskette k”nnte nicht heil bei Ihr/Ihm ankommen, der kann mir zus„tzlich 3,- DM in Briefmarken mitschicken und erh„lt 9 dann Ihre/Seine Diskette wieder in einer gepolsterten Versandtasche. 2.5.4. Meine Gegenleistung Wenn Sie mir die Shareware-Gebhr zukommen lassen, werden Sie bei mir als Anwender von GEMFONT registriert. Dies bringt ihnen folgende Vor- teile: - Sie erhalten umgehend 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 erhalten neuere Versionen, die m”glicherweise nur noch regi- strierten Anwendern zug„nglich gemacht werden. 2.6. Sonstige Leistungen 2.6.1. Wie bekommt man ein Update? 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. 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 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 10 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 ich 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) Sammlung an hochwertigen GDOS-Fonts. Besonders dringend werden "Brot- schriften" gebraucht, also solche Schriften, die sehr h„ufig benutzt werden (beispielsweise Times oder Helvetica). Zier- oder Frakturschrif- ten sind zwar sch”n anzuschauen, werden aber nur selten genutzt. 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. Nicht bedanken m”chte ich mich bei - dem, der das deutsche Handbuch zu Lattice C verfasst hat. (Wenn ich so die Leserbriefe in den wichtigen ST-Publikationen oder die Nachrichten im NewsNet lese, dann weiž ich, daž ich mit meiner Meinung nicht alleine stehe!) - dem, der meinen Account auf dem alten SUN-Server aufgel”st hat. (das kann eigentlich nur einer gewesen sein...) - einem gewissen Herrn fr eine gewisse "Algorithmen und Datenstruk- turen"-Klausur im SS 92 (er wird wissen, daž er gemeint ist...) 11 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. 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 geh”ren inzwischen zum guten Ton eines GEM-Programms. Das bedeutet nichts anderes, als daž alle Dialoge in Fenstern liegen. Dadurch wird die Parallelverarbeitung von Prozessen auch w„hrend der Dialogbearbeitung nicht unterbrochen. Wird ein Dialog bearbeitet, so k”nnen alle anderen Fenster, die zur gleichen Applikation geh”ren, nicht nach oben gebracht werden. Eine Weiterarbeit ist erst dann m”glich, wenn der Dialog beendet wurde. Zudem sind alle Meneintr„ge gesperrt, andere Accessories k”nnen jedoch weiterhin aktiviert werden. So kann die Applikation im Hintergrund wei- terarbeiten, w„hrend ein anderer Prozess im Vordergrund l„uft. Sollte kein Fenster mehr fr die Anzeige eines Dialogs zur Verfgung stehen, dann wird er normal, also ohne Fenster bearbeitet. Die Paral- lelverarbeitung ist in diesem Fall natrlich unterbrochen. Sollte Ihnen das zu kompliziert sein, so brauchen Sie sich nur zu mer- ken, daž alle Dialoge in Fenstern liegen und daž sich an deren Bedie- nung nichts ge„ndert hat gegenber normalen Dialogen. 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.) 12 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 Eintrag. 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 Tastaturkrzel gesteuert wer- den. Diese finden sie jeweils am rechten Rand des Eintrags. Wenn ein Men ausgeklappt ist und der Mauszeiger auf einem Eintrag steht, Sie aber dann das Krzel eines anderen Eintrags tippen, so hat das eingegebene Krzel Vorrang vor dem Eintrag, auf dem der Mauszeiger steht. 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 multitaskingf„higen GEM-Versionen 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 untersttzt, 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 gemacht werden mžten. 3.3. Der Desktop Seit Version 1.03 besitzt GEMFONT kein eigenes Desktop mehr. Zu diesem Schritt entschlož ich mich, da das Desktop von GEMFONT nichts bot, was nicht auch ber das Men zu erreichen gewesen w„re. Zudem ist ein eigenes Desktop unter MultiGEM und MultiTOS nur hinderlich, wenn es nicht mindestens genauso viel bietet wie das Standard-Desktop (und das tat es bisher eben nicht). 3.4. Das Editorfenster 3.4.1. Aufbau 13 Das Editorfenster besteht aus mehreren Komponenten. Der gr”žte Teil nimmt das Editorfeld selbst ein. Im rechten Rand wird das jeweils edi- 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") Das eigentliche Editorraster wird durch ein Gitter aus gestrichelten Linien gekennzeichnet. Zur besseren Orientierung sind alle Linien, 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.4.2. Bedienung Gesetzte Punkte werden durch ein schwarzes K„stchen im Gitter darge- stellt, ungesetzte 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. Das heižt 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, dann verstehen Sie alles viel leichter.) 3.5. 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. (Shift F2) 14 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.6. 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 neu gezeichnet. Halten Sie zudem die Shift-Taste gedrckt, so wird der Desktop neugezeichnet, was aber nur in schlimmeren F„llen n”tig sein sollte. 15 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, 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. 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 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 16 { 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 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) 17 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 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. 18 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. 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- 19 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 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 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 20 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 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 21 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, Platz genug ist ja da. Bei GDOS kann jedoch nur das linke Zeichen um einen freien Wert nach rechts verschoben werden, als wrde das 'T' an das 'e' herangeschoben werden. Beide Zeichen berschneiden sich 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 das Kerning ist bei den Buchstaben 'Te' ein anderer Wert als bei 'Tr' oder 'TW' etwa, und genau dies l„žt sich mit dieser Methode der konstanten Rechtsverschiebung nicht verwirkli- chen. GDOS w„hlt stets fr das gerade auszugebende Zeichen ein festes Kerning, ohne dabei erst einen Blick auf das n„chste Zei- chen 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. 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. 22 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; 23 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 der Gr”že 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, die Gr”že in Punkten, die Breite des breitesten Zeichens sowie die Fontflags. In der Box "Konvertierung" stellen Sie ein, ob die Zeichendaten konvertiert werden sollen. Dies ist erfahrungsgem„ž aber nicht n”tig, weshalb Sie diese Option nur in Ausnahmef„llen aktivieren sollten. Sagt Ihnen der Font zu, dann k”nnen Sie in laden, ansonsten die Funktion abbrechen. 24 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 vorgege- ben 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 (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 angefordert wird. Deshalb sollten Sie stets darauf achten, nicht den kompletten Speicher zu belegen, sonst hat GEMFONT keinen Platz mehr fr den Auf- bau. 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. 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 25 nur die eigentlichen Verwaltungsdaten. 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ž das Fontbild in dieser Datei fehlt. 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 II-Fonts (Editor- und Druckerfonts) als auch Bitmap-Fonts impor- tieren. Damit er”ffnet sich GDOS eine Vielzahl von teilweise professio- nellen Fonts aus der Signum-Welt. Da Signum wohl jedem Benutzer ein Begriff ist, erkl„re ich nur kurz, was Bitmap-Fonts sind: Bitmap-Fonts haben eine konstante Zeichengr”že von 8x8 oder 8x16 Pixeln (Dateil„nge 2048 oder 4096 Bytes), sie enthal- ten ausschliež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. Bit- map-Fonts spielen fr GDOS keine grože Rolle, wurden jedoch ihrer Ein- fachheit halber implementiert. Nach der Anwahl dieser Funktion k”nnen Sie das Format angeben, das Sie importieren wollen. Sie haben die Auswahl zwischen Signum-Editorfonts, Signum-Druckerfonts (egal ob *.L30 oder *.P24) und den Bitmap-Fonts in zwei Gr”žen. Haben Sie sich entschieden, dann w„hlen Sie die entspre- chende Datei aus. GEMFONT berprft, ob die Datei das gewnschte Format besitzt und reklamiert Ihre Wahl, wenn dies nicht der Fall ist. Bei Signum-Fonts wird die maximale Gr”že der Zeichen ermittelt. Die dabei 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 26 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 II-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 dem externen Ziffernblock zugeordnet werden k”nnen, dafr gibt es keine „quivalenten ASCII-Positionen. Folgende Tabelle zeigt genau, wohin welches Signum-Zeichen gelegt wird: S i g n u m - C o d e 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 A 2x | 17 18 19 20 21 22 23 24 25 212 S 3x | 213 214 221 33 34 35 36 37 38 39 C 4x | 40 41 42 43 44 45 46 47 48 49 I 5x | 50 51 52 53 54 55 56 57 58 59 I 6x | 60 61 62 63 129 65 66 67 68 69 - 7x | 70 71 72 73 74 75 76 77 78 79 C 8x | 80 81 82 83 84 85 86 87 88 89 o 9x | 90 148 154 132 94 95 96 97 98 99 d 10x | 100 101 102 103 104 105 106 107 108 109 e 11x | 110 111 112 113 114 115 116 117 118 119 12x | 120 121 122 153 124 142 126 158 --- --- Leider mssen viele Signum-Fonts noch per Hand nachbearbeitet werden, h„ufig wegen der Zeichenbreiten, die bei manchen Fonts im Trunkenheits- zustand gesetzt worden zu sein scheinen. Doch auch hierfr bietet GEM- FONT passende Werkzeuge. (Da ich selbst weder Signum noch Script besitzt, fehlt mir auch die offizielle Dokumentation der Signum-Fontformate, die vielleicht 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). Der Import der Bitmap-Fonts gestaltet sich problemlos, es sind dafr keine weiteren Angaben durch den Anwender notwendig. 5.2.10. "Exportieren..." GEMFONT kann Fonts auch wieder im Bitmap-Format exportieren (fr Si- gnum-Fonts ist schliežlich Skarabus zust„ndig). Dabei w„hlen Sie wieder die Gr”že der Fonts aus und geben den Dateinamen an. Achten Sie dar- auf, daž alle die Pixel, die aužerhalb der 8x8 bzw. 8x16-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" 27 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. 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 28 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- 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. 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. 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. 29 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. 5.5.2. "Parameter einstellen..." (Alternate Q) GEMFONT erlaubt das Einstellen zahlreicher Parameter: "Grow-/Shrink-/Move-Boxes anzeigen" Die Geisterrahmen, die das ™ffnen, Verschieben und Schliežen von Fenstern sowie von Dialogen begleiten, k”nnen hier abgeschaltet werden. Sie sehen zwar effektvoll aus, halten aber erfahrene An- wender meist zulange auf. "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 meist unn”tig. "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" 30 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. "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-Laserdruckerfonts importiert, kann einstel- len, 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 (beispielsweise mein NECP.SYS-Treiber aus dem FontGDOS-Paket, der gleich zwei Seiten- vorschbe veranl„žt). Um das Papier jedoch platzsparend zu nutzen, spannen Sie in diesem Fall das Papier wieder an die Anfangsposi- tion ein. GEMFONT fhrt dann selbst„ndig soviele Zeilenvorschbe aus, daž unterhalb der letzen Position weitergedruckt wird. Fhrt Ihr Druckertreiber jedoch keinen Seitenvorschub aus, dann deaktivieren Sie diesen Schalter. "Drucker-Reset vor Ausgabe ausfhren" Manche Druckertreiber stellen die von ihnen verstellten Druckerpa- rameter nicht mehr zurck (dazu z„hlt ebenfalls der NECP.SYS- Treiber aus dem FontGDOS-Paket). In einem solchen Fall kann GEM- FONT vor jeder Druckerausgabe einen Reset ausl”sen. Dazu wird die Kombination "ESC @" verschickt, die auf allen Druckern den ge- wnschten Effekt haben sollte. "Druckernummer" Die Druckernummer, unter der GDOS den Drucker ansprechen soll, kann mit einem Slider zwischen 21 und 30 eingestellt werden. So k”nnen mehrere Druckertreiber gleichzeitig installiert und benutzt werden. 31 "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. 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.) 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. 32 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) Hier k”nnen Sie das Zeichen ausw„hlen, das Sie bearbeiten wollen. GEM- FONT bietet Ihnen drei verschiedene M”glichkeiten, ein bestimmtes Zei- chen auszuw„hlen: - Mit dem Slider k”nnen Sie alle erlaubten Zeichencodes anw„hlen. Dabei wird auf die first_ade und last_ade geachtet. - Sie k”nnen das Zeichen direkt per Tastatur eingeben. Damit sind jedoch nicht alle Zeichencodes erreichbar. - Mit "Vorheriges" bzw. "Nachfolgendes" k”nnen Sie das Zeichen, das unmittelbar vor bzw. nach dem aktuellen Zeichen liegt, ausw„hlen. Bei der Auswahl ist folgendes zu beachten: Wenn ein Zeichen direkt eingeben wird, so wird dessen Code als neues aktuelles Zeichen betrach- tet (aužer bei "Abbruch"). Die direkte Zeicheneingabe hat dabei Vorrang vor der Sliderauswahl. Wurde ein Zeichen direkt eingegeben und die Button "Vorheriges" oder "Nachfolgendes" aktiviert, dann haben sie keine Wirkung auf den Code des direkt eingegebenen Zeichens. Ist dieses Feld leer, dann bezieht sich die Wirkung der Buttons auf das bisherige aktuelle Zeichen (Wenn Sie es erst mal verstanden haben, werden Sie die Effektivit„t dieser Auswahl festtellen.) 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 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 33 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. Standardm„žig besitzt jedes Zeichen die Verschiebung 0. Insgesamt sind nur die Werte 0 bis einschliežlich 255 erlaubt. 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 unm”glich ist. (Vie- len Signum-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-Fonts sehr hilfreich, eine anschliežende šberprfung und Korrektur von Hand ist dennoch n”tig. 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. 34 "Rechteck" Nach der Angabe der Koordinaten von zwei diagonal gegenberlie- genden Punkten eines Rechtecks wird ein ausgeflltes Rechteck ge- 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. 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. 6.2.9. "Stauchen/Strecken..." (Funktionstaste 6) Ein Zeichen kann sowohl vergr”žert als auch verkleinert werden. Geben 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 35 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) 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. 36 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. 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. 37 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 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 Zeilenvorschbe 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 38 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. 39 7. H„ufige Fragen, Probleme und Tips - 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). - Sollten Sie noch mit dem original Atari-GDOS arbeiten (diejenigen Versionen vor AMC-GDOS), 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 beispielsweise kleine Fonts anders wahr als grože Fonts. Also sollte man sich vorher berle- gen, 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, daž bei mageren Fonts die Maske "dichter" sein muž als bei fetten Fonts, da sonst die Serifen in ihrer Feinheit zu stark Schaden nehmen. 40 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). 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.1x 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. Von dieser Firma gibt es auch eine Sammlung von einem Druckerfont in den Aufl”sungen 120, 180, 240, 300 und 360 DPI sowie einem Dutzend teilweise gepatchter GDOS-Druckertreiber, ber die ich jedoch nichts genaueres zu berichten weiž. Von Atari USA gibt es ein neues GDOS mit dem Namen FontGDOS. Wesentli- che Neuerungen sind die F„higkeit, Bezierkurven 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. 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 GDOS-Fonts anzugegen, f„llt schwer. Einige Firmen legten ihren Produkten einige Fonts bei (beispielsweise EasyDraw), doch inzwischen gehen viele Firmen dazu ber, nur noch eine absolute Min- destanzahl an Fonts (wenn berhaupt) mitzuliefern. 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 lediglich Atari selbst GDOS-Fonts im Zusammenhang mit dem GDOS-Kit an, das jeder direkt bei Atari beziehen kann. Um 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: 41 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. Professionelle Druckerfonts fr 24-Nadler sind mir ansonsten bisher nicht untergekommen, angeblich gibt es eine Firma, die kommerziel GDOS- Fonts fr 300- und 360-DPI Drucker vertreibt, best„tigen kann ich dies aber nicht. Lediglich den Atari-Laserdruckern liegen meines Wissens einige wenige GDOS-Laserfonts bei. (Ich lasse mich gerne eines anderen belehren.) 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! 42 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 miserables, v”llig unbrauchbares deutsches Handbuch sowie ber die regelm„žigen Ab- strze des Optimierers und des Assemblers dermažen ver„rgert (das Geld h„tte ich mir sparen k”nnen... Ý%#@!"Ý, bitte achten Sie auf die Ein- blendung des Schriftzuges "Kommentar" in der linken oberen Ecke... :-), daž ich mich entschied, erneut umzusteigen, diesmal auf den GNU C- Compiler V2.3.3 der FSF (siehe auch die Artikelserie im ST-Magazin ab 8/92). Mit ihm verstand ich mich auf Anhieb bestens, daž Skelett gedieh pr„chtig, bis es Mitte 1992 nahezu ausgewachsen war. Um es praktisch einzusetzen, 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. Als letztes Problem war die Sache mit dem Copyright zu kl„ren: nach langem Hin und Her stand fest, das die von GEMFONT benutzten Bibliothe- ken schon seit langer Zeit von ihren Autoren zu "Public Domain" erkl„rt worden waren (insbesondere unterliegen Sie nicht der "GNU Public Licen- ce for Libraries") und die von GCC erzeugten Kompilate keinen rechtli- chen Verbreitungseinschr„nkugen unterlagen, so daž der Verbreitung von GEMFONT als Shareware nichts mehr im Wege stand (hoffentlich haben die mir alle die Wahrheit erz„hlt... :-}) 9.2. Ein paar Fakten Das komplette Programm besteht z.Z aus ca. 18000 Zeilen (ja richtig, GEMFONT ist durch Optimierungen kleiner geworden), die sich auf 32 C- Module, 10 Header-Files und 1 kleines Assembler-Modul verteilen und insgesamt ungef„hr 700 Kbyte Umfang erreicht haben. Sowohl auf das Skelett als auch den Editor entfallen je ca. 9000 Zeilen. 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.3.3 der Free Software Foundation (FSF) verwendet, den ich jedem empfehlen kann, der genug Speicher hat. Als Libraries wurden die MiNT-Library PatchLevel 30, 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 43 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- 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!) 44 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-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. 45 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? ____________________________________________________________ Ich bin damit einverstanden, daž meine Daten zu Verwaltungszwecken elektronisch gespeichert werden. Eine Weitergabe an Dritte findet in aber keinem Fall statt. ______________________________ ______________________________ (Unterschrift) (Ort und Datum)