home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / gdos / gemfo111 / gemfont.txt < prev    next >
Text File  |  1993-04-30  |  130KB  |  2,892 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                                      GEMFONT
  25.                                      -------
  26.  
  27.              Ein GEMgestützter Zeichensatzeditor für GDOS-Pixelfonts
  28.  
  29.                                   Version 1.11
  30.                             Oktober 1992 bis Mai 1993
  31.  
  32.                            (c) 1991-93 by Sascha Blank
  33.  
  34.                                 Shareware-Version
  35.  
  36.  
  37.           "Für moderne GEM-Programme eignet sich [ ... ] GNU-C [ nicht ]."
  38.                           (ST-Computer 2/93, Seite 27)
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                         1
  64.  
  65.      Inhaltsverzeichnis
  66.  
  67.      1. Rechtliches  . . . . . . . . . . . . . . . . . . . . . . . . . .   5
  68.           1.1. Bedingungen für die Weitergabe von GEMFONT  . . . . . . .   5
  69.           1.2. Haftungsausschluß . . . . . . . . . . . . . . . . . . . .   5
  70.           1.3. Urheberrechte und deren Schutz  . . . . . . . . . . . . .   5
  71.           1.4. Bestimmungen zur Verbreitung selbsterstellter Fonts . . .   6
  72.  
  73.      2. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . .   7
  74.           2.1. Warum überhaupt GEMFONT?  . . . . . . . . . . . . . . . .   7
  75.           2.2. Diese Anleitung . . . . . . . . . . . . . . . . . . . . .   7
  76.           2.4. Systemanforderungen . . . . . . . . . . . . . . . . . . .   8
  77.           2.5. Die Formalitäten  . . . . . . . . . . . . . . . . . . . .   8
  78.                2.5.1. Wie bekomme ich GEMFONT? . . . . . . . . . . . . .   8
  79.                2.5.2. Das Shareware-Prinzip  . . . . . . . . . . . . . .   9
  80.                2.5.3. Die Registrierung  . . . . . . . . . . . . . . . .   9
  81.                2.5.4. Meine Gegenleistung  . . . . . . . . . . . . . . .  10
  82.           2.6. Sonstige Leistungen . . . . . . . . . . . . . . . . . . .  10
  83.                2.6.1. Wie bekommt man ein Update?  . . . . . . . . . . .  10
  84.                2.6.2. Programmfehler . . . . . . . . . . . . . . . . . .  10
  85.                2.6.3. Probleme mit GEMFONT . . . . . . . . . . . . . . .  10
  86.                2.6.4. Vorschläge . . . . . . . . . . . . . . . . . . . .  11
  87.           2.7. Austausch von Fonts . . . . . . . . . . . . . . . . . . .  11
  88.           2.8. Danksagungen  . . . . . . . . . . . . . . . . . . . . . .  11
  89.  
  90.      3. Installation und Bedienung . . . . . . . . . . . . . . . . . . .  12
  91.           3.1. Installation und Programmstart  . . . . . . . . . . . . .  12
  92.           3.2. Die GEM-Erweiterungen von GEMFONT . . . . . . . . . . . .  12
  93.                3.2.1. Wertgebundene Slider . . . . . . . . . . . . . . .  12
  94.                3.2.2. Modale verschiebbare Dialoge . . . . . . . . . . .  12
  95.                3.2.3. Über Tastatur bedienbare Dialogboxen . . . . . . .  12
  96.                3.2.4. Menüzeilen in Fenster  . . . . . . . . . . . . . .  13
  97.                3.2.5. RaveUp-Menüs . . . . . . . . . . . . . . . . . . .  13
  98.                3.2.6. Das Klemmbrett . . . . . . . . . . . . . . . . . .  13
  99.           3.3. Der Desktop . . . . . . . . . . . . . . . . . . . . . . .  13
  100.           3.4. Das Editorfenster . . . . . . . . . . . . . . . . . . . .  13
  101.                3.4.1. Aufbau . . . . . . . . . . . . . . . . . . . . . .  13
  102.                3.4.2. Bedienung  . . . . . . . . . . . . . . . . . . . .  14
  103.           3.5. Bedienung der Fenster über Funktionstasten  . . . . . . .  14
  104.           3.6. Sonstige hilfreiche Funktionen  . . . . . . . . . . . . .  15
  105.  
  106.      4. Das GDOS-Fontformat  . . . . . . . . . . . . . . . . . . . . . .  16
  107.           4.1. Einführung  . . . . . . . . . . . . . . . . . . . . . . .  16
  108.           4.2. Der Aufbau von Fonts  . . . . . . . . . . . . . . . . . .  16
  109.           4.3. Der Fontheader  . . . . . . . . . . . . . . . . . . . . .  16
  110.  
  111.      5. Das Hauptmenü  . . . . . . . . . . . . . . . . . . . . . . . . .  24
  112.           5.1. Das Menü "GEMFONT"  . . . . . . . . . . . . . . . . . . .  24
  113.                5.1.1. "Über GEMFONT..." (Control Z)  . . . . . . . . . .  24
  114.           5.2. Das Menü "Datei"  . . . . . . . . . . . . . . . . . . . .  24
  115.                5.2.1. "Neu anlegen..." (Control N) . . . . . . . . . . .  24
  116.                5.2.2. "Öffnen..." (Control O)  . . . . . . . . . . . . .  24
  117.                5.2.3. "Schließen..." (Control U) . . . . . . . . . . . .  25
  118.                5.2.4. "Sichern" (Control S)  . . . . . . . . . . . . . .  25
  119.                5.2.5. "Sichern unter..." (Control M) . . . . . . . . . .  25
  120.                5.2.6. "Sichern Metafont..." (Control H)  . . . . . . . .  25
  121.                5.2.7. "Abbrechen..." (Control D) . . . . . . . . . . . .  26
  122.                5.2.8. "Entfernen..." (Control L) . . . . . . . . . . . .  26
  123.                5.2.9. "Importieren..." (Control I) . . . . . . . . . . .  26
  124.                5.2.10. "Exportieren..."  . . . . . . . . . . . . . . . .  27
  125.  
  126.                                         2
  127.  
  128.                5.2.11. "Clipboard laden" . . . . . . . . . . . . . . . .  27
  129.                5.2.12. "Clipboard speichern" . . . . . . . . . . . . . .  27
  130.                5.2.13. "Clipboard löschen" . . . . . . . . . . . . . . .  28
  131.                5.2.14. "Ende" (Control Q)  . . . . . . . . . . . . . . .  28
  132.           5.3. Das Menü "Block"  . . . . . . . . . . . . . . . . . . . .  28
  133.                5.3.1. "Blockanfang" (Control B)  . . . . . . . . . . . .  28
  134.                5.3.2. "Blockende" (Control K)  . . . . . . . . . . . . .  28
  135.                5.3.3. "Alles auswählen" (Control A)  . . . . . . . . . .  28
  136.                5.3.4. "Ausschneiden" (Control X) . . . . . . . . . . . .  28
  137.                5.3.5. "Kopieren" (Control C) . . . . . . . . . . . . . .  29
  138.                5.3.6. "Einfügen" (Control V) . . . . . . . . . . . . . .  29
  139.                5.3.7. "Blockkopiermodi..." . . . . . . . . . . . . . . .  29
  140.           5.4. Das Menü "Puffer" . . . . . . . . . . . . . . . . . . . .  29
  141.                5.4.1. "Maske nach Puffer..." (Alternate P) . . . . . . .  29
  142.                5.4.2. "Puffer nach Maske..." (Alternate M) . . . . . . .  29
  143.                5.4.3. "Puffer speichern..." (Alternate U)  . . . . . . .  29
  144.                5.4.4. "Puffer laden..." (Alternate O)  . . . . . . . . .  30
  145.           5.5. Das Menü "Parameter..." . . . . . . . . . . . . . . . . .  30
  146.                5.5.1. "Speicherstatistik..." . . . . . . . . . . . . . .  30
  147.                5.5.2. "Parameter einstellen..." (Alternate Q)  . . . . .  30
  148.                5.5.3. "Parameter speichern..." . . . . . . . . . . . . .  32
  149.           5.6. Das Menü "Fonts"  . . . . . . . . . . . . . . . . . . . .  32
  150.                5.6.1. "Öffne xxxxxxxx.xxx" (Control 1 bis 7) . . . . . .  32
  151.      6. Das Editorfenstermenü  . . . . . . . . . . . . . . . . . . . . .  33
  152.           6.1. Das Menü "GEMFONT"  . . . . . . . . . . . . . . . . . . .  33
  153.                6.1.1. "Über GEMFONT..."  . . . . . . . . . . . . . . . .  33
  154.           6.2. Das Menü "Zeichen"  . . . . . . . . . . . . . . . . . . .  33
  155.                6.2.1. "Auswahl..." (Funktionstaste 1)  . . . . . . . . .  33
  156.                6.2.2. "Breite" (Funktionstaste 2)  . . . . . . . . . . .  33
  157.                6.2.3. "Hor. Verschiebung..." (Alternate V) . . . . . . .  34
  158.                6.2.4. "Zentrieren..." (Funktionstaste 7) . . . . . . . .  34
  159.                6.2.5. "Ausmaß anpassen..." (Funktionstaste 8)  . . . . .  34
  160.                6.2.6. "Werkzeuge..." (Funktionstaste 3)  . . . . . . . .  34
  161.                6.2.7. "Schieben/Rotieren..." (Funktionstaste 4)  . . . .  35
  162.                6.2.8. "Spiegeln/Drehen..." (Funktionstaste 5)  . . . . .  35
  163.                6.2.9. "Stauchen/Strecken..." (Funktionstaste 6)  . . . .  35
  164.                6.2.10. "Verfetten" . . . . . . . . . . . . . . . . . . .  36
  165.                6.2.11. "Komplett löschen" (Alternate L)  . . . . . . . .  36
  166.                6.2.12. "Zeichen aufräumen" . . . . . . . . . . . . . . .  36
  167.           6.3. Das Menü "Editor" . . . . . . . . . . . . . . . . . . . .  36
  168.                6.3.1. "Editormaskengröße..." (Alternate C) . . . . . . .  36
  169.                6.3.2. "Editorrastergröße..." (Alternate R) . . . . . . .  37
  170.                6.3.3. "Hilfspunkt setzen" (Funktionstaste 9) . . . . . .  37
  171.                6.3.4. "Hilfspunkt löschen" (Alternate W) . . . . . . . .  37
  172.                6.3.5. "Alle Punkte löschen"  . . . . . . . . . . . . . .  37
  173.                6.3.6. "Änderungen zurücknehmen" (UNDO) . . . . . . . . .  37
  174.                6.3.7. "Undopuffer aktualisieren" (Control UNDO)  . . . .  37
  175.           6.4. Das Menü "Fontheader" . . . . . . . . . . . . . . . . . .  37
  176.                6.4.1. "Zeichenextrema..." (Alternate Z)  . . . . . . . .  37
  177.                6.4.2. "Fontlinien..." (Alternate A)  . . . . . . . . . .  38
  178.                6.4.3. "Fontflags..." (Alternate B) . . . . . . . . . . .  38
  179.                6.4.4. "Fontkenndaten..." (Alternate D) . . . . . . . . .  38
  180.                6.4.5. "Kursivschrift..." (Alternate K) . . . . . . . . .  38
  181.                6.4.6. "Fettschrift..." (Alternate F) . . . . . . . . . .  38
  182.                6.4.7. "Unterstreichen..." (Alternate G)  . . . . . . . .  38
  183.                6.4.8. "Helle Schrift..." (Alternate H) . . . . . . . . .  38
  184.           6.5. Schriftproben . . . . . . . . . . . . . . . . . . . . . .  38
  185.  
  186.      7. Häufige Fragen, Probleme und Tips  . . . . . . . . . . . . . . .  40
  187.  
  188.  
  189.                                         3
  190.  
  191.      8. Bezugsquellen für GDOS . . . . . . . . . . . . . . . . . . . . .  41
  192.           8.1. GDOS  . . . . . . . . . . . . . . . . . . . . . . . . . .  41
  193.           8.2. GDOS-Fonts  . . . . . . . . . . . . . . . . . . . . . . .  41
  194.      9. Interna  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  43
  195.           9.1. Wie alles anfing  . . . . . . . . . . . . . . . . . . . .  43
  196.           9.2. Ein paar Fakten . . . . . . . . . . . . . . . . . . . . .  43
  197.           9.3. Laden und Speichern von Fonts . . . . . . . . . . . . . .  43
  198.  
  199.      10. Fontregistrierung . . . . . . . . . . . . . . . . . . . . . . .  45
  200.           10.1. Die Idee . . . . . . . . . . . . . . . . . . . . . . . .  45
  201.           10.2. Die Registrierung  . . . . . . . . . . . . . . . . . . .  45
  202.           10.3. Anfragen . . . . . . . . . . . . . . . . . . . . . . . .  45
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.                                         4
  253.  
  254.      1. Rechtliches
  255.      1.1. Bedingungen für die Weitergabe von GEMFONT
  256.  
  257.      GEMFONT wird  als Shareware  vertrieben. Es ist ausdrücklich erwünscht,
  258.      daß GEMFONT weitergegeben wird. Dies darf  jedoch nur  in vollständiger
  259.      und  unveränderter  Form  geschehen,  d.h. es müssen stets alle Dateien
  260.      unverändert weitergegeben werden.
  261.      Das Uploaden in Mailboxen, FTP-Server und anderen Netzen  ist ebenfalls
  262.      ausdrücklich erwünscht,  da ich  selbst keinen direkten Zugang zu Mail-
  263.      boxnetzen habe. Es  ist  aber  ausdrücklich  verboten,  GEMFONT kosten-
  264.      pflichtig  im   PD-Versand  zu  vertreiben  (Ausnahmen  erfordern  eine
  265.      schriftliche Genehmigung meinerseits). Zuwiderhandlungen  können recht-
  266.      lich verfolgt werden!
  267.      Ansonsten: Bitte empfehlen und verbreiten Sie GEMFONT weiter!
  268.  
  269.  
  270.      1.2. Haftungsausschluß
  271.  
  272.      Obwohl GEMFONT  mit großer Sorgfalt erstellt worden ist, kann ich nicht
  273.      ausschließen, daß noch Fehler im Programm  und/oder der  Anleitung exi-
  274.      stieren. Deshalb stelle ich folgendes fest:
  275.  
  276.           Die  in  dieser  Dokumentation enthaltenen Informationen sind
  277.           zum Zeitpunkt ihrer Veröffentlichung  wahrscheinlich korrekt.
  278.           Trotzdem werden  alle Informationen  ohne irgendeine Garantie
  279.           weitergegeben.
  280.           Ich lehne jede Haftung  für Schäden  und sonstige  Folgen ab,
  281.           die  direkt  oder  indirekt  durch  die Benutzung von GEMFONT
  282.           und/oder der Dokumentation entstanden  sind.  Dies  gilt auch
  283.           für den Fall, daß die Schäden auf Fehler im Programm und/oder
  284.           der Dokumentation zurückzuführen sind.  Die Benutzung erfolgt
  285.           stets ausschließlich auf eigene Gefahr. Ebenso garantiere ich
  286.           nicht dafür, daß GEMFONT für einen  bestimmten Zweck tauglich
  287.           ist. Des  weiteren lehne  ich jede Haftung für Verstöße gegen
  288.           das Urheberrecht ab, die in Zusammenhang  mit dem nachfolgen-
  289.           den Kapitel "Urheberrechte und deren Schutz" stehen.
  290.  
  291.      Sie dürfen  GEMFONT für  den Eigengebrauch modifizieren, z.B. laufzeit-
  292.      packen oder patchen (obwohl  sich das  nicht lohnt,  da es  weder einen
  293.      Kopierschutz noch  sonstige Lächerlichkeiten (etwa zeitgekoppelte Demo-
  294.      phasen (die meisten sind eh' so  primitiv implementiert))  zu entfernen
  295.      gilt). Selbstverständlich  übernehme ich erst recht keine Verantwortung
  296.      für solche modifizierten Versionen.  Zudem verbiete  ich die Weitergabe
  297.      solcher modifizierter Versionen an Dritte.
  298.  
  299.  
  300.      1.3. Urheberrechte und deren Schutz
  301.  
  302.      Mit  GEMFONT  ist  es  u.a.  möglich, Signum- und Bitmap-Fonts in GDOS-
  303.      Fonts umzuwandeln. Bitte achten  Sie dabei  unbedingt auf  den urheber-
  304.      rechtlichen Schutz der Fonts, die Sie konvertieren wollen.
  305.  
  306.           Die konvertierten  Fonts unterliegen den gleichen rechtlichen
  307.           Bestimmungen wie die Originalfonts!
  308.  
  309.      Unterliegen die zu konvertierenden  Fonts keinem  Urheberrecht bzw. hat
  310.      der/die/die Autor/in/en  das Recht  auf die Weitergabe oder die Konver-
  311.      tierung der Fonts in  andere  Formate  nicht  weiter  eingeschränkt, so
  312.      spricht im  allgemeinen nichts dagegen, diese nach der Konvertierung in
  313.      GDOS-Fonts erneut in Umlauf zu bringen.  Dies trifft  auf viele Signum-
  314.  
  315.                                         5
  316.  
  317.      Fonts zu, die meist den Status "Public Domain" tragen.
  318.      Daneben gibt  es Fonts, die urheberrechtlich geschützt sind, beispiels-
  319.      weise die  Signum-Fonts der  "Professional Font-Disks".  In diesem Fall
  320.      beziehen sich  die Einschränkungen der Weitergabe sowohl auf die Origi-
  321.      nale als auch auf die daraus konvertierten Fonts.  In der  Regel dürfen
  322.      diese Fonts  nicht weitergegeben  werden, so daß eine Konvertierung ins
  323.      GDOS-Format ausschließlich für den eigenen Gebrauch  erlaubt ist, deren
  324.      Weitergabe an andere ist aber nicht erlaubt.
  325.      Bitte beachten  Sie diesen Hinweis in Ihrem eigenen Interesse. Im Zwei-
  326.      felsfall sollten Sie das Einverständnis des/der/der  Autor/in/en einho-
  327.      len oder zu Ihrem eigenen Schutz von einer Verbreitung absehen.
  328.  
  329.      1.4. Bestimmungen zur Verbreitung selbsterstellter Fonts
  330.  
  331.      Die Verbreitung  von Fonts,  die von  Ihnen selbst  erstellt wurden und
  332.      ausschließlich  ihrem  eigenen  Copyright  unterliegen  (also  frei von
  333.      Rechten Dritter  sind), wird hiermit uneingeschränkt erlaubt. Es müssen
  334.      weder Lizenzgebühren an den Programmautor gezahlt werden noch  etwa muß
  335.      um dessen Erlaubnis zur Verbreitung der Fonts gebeten werden. Dies gilt
  336.      auch für den Fall, daß die Fonts als Teil eines kommerziellen Programm-
  337.      pakets verbreitet werden.
  338.      Die einzige  Auflage, die ich stelle, ist diejenige, daß alle Produkte,
  339.      die mit GEMFONT erstellte Fonts beinhalten,  einen Hinweis  auf GEMFONT
  340.      tragen müssen.  Dieser sollte beispielsweise im Handbuch, der Anleitung
  341.      oder dem Programm selbst stehen und die Form
  342.  
  343.           "Die diesem Programm beiliegenden  GDOS-Fonts wurden  mit dem
  344.           Programm 'GEMFONT' von Sascha Blank, (c) 1991-1993 erstellt."
  345.  
  346.      haben.  Zudem  muß  erwähnt  werden, wie man GEMFONT beim Programmautor
  347.      beziehen kann, etwa so: 
  348.  
  349.           "Eine Kopie von GEMFONT erhalten Sie  beim Autor  von GEMFONT
  350.           durch Zusendung  eines frankierten  Rückumschlags inkl. 3,5"-
  351.           Diskette an folgende  Adresse:  Sascha  Blank, Brentanostraße
  352.           21, W-5500 Trier" (Nach dem Inkrafttreten der neuen PLZen ist
  353.           die alte PLZ durch die neue 54294 zu ersetzen.)
  354.  
  355.      Wenn Sie eigene Fonts verbreiten wollen, so wäre ich dankbar,  wenn Sie
  356.      mir eine  Kopie der Fonts zukommen lassen würden. Dies ist jedoch nicht
  357.      zwingend nötig.
  358.      Wenn Sie weitere Fragen haben, dann wenden Sie sich bitte an mich.
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.                                         6
  379.  
  380.      2. Einleitung
  381.      2.1. Warum überhaupt GEMFONT?
  382.  
  383.           "Jetzt habe ich endlich  einen GDOS-Druckertreiber,  und dann
  384.           gibt es keine Fonts dafür!"
  385.                                                    Der Autor, im Sommer 1992
  386.  
  387.      So ging  es mir, als ich nach langem Suchen auf zahlreichen FTP-Servern
  388.      endlich einen  GDOS-Druckertreiber  für  meinen  NEC-Pinwriter gefunden
  389.      hatte. Einen Treiber hatte ich also nun, aber keine Fonts dafür, so daß
  390.      ich über das VDI eigentlich keine Texte auf dem Drucker  ausgeben konn-
  391.      te. Mit  Hilfe eines  FX-Emulationsprogramms und der GDOS-Zeichensätzen
  392.      für den Epson FX-85 aus der Atari GDOS-Distribution gelang mir  es dann
  393.      doch,  aber  die  Qualität  ist  bei 9-Nadlerfonts zwangsläufig enttäu-
  394.      schend.
  395.      Die weitere Suche nach Fonts verlief ergebnislos. Das Entwerfen eigener
  396.      Fonts war  kaum möglich,  weil zum einen der eine Editor, den ich eben-
  397.      falls nach langem Suchen gefunden hatte, unbrauchbar war  und zum ande-
  398.      ren der  Entwurf von  Druckerfonts sehr  aufwendig ist und ein gewisses
  399.      Mindestmaß an typographischem Wissen  erfordert, wenn  das Ergebnis an-
  400.      sprechend sein soll.
  401.      Eine Möglichkeit  wäre es,  die vielen zum Teil sehr guten Signum-Fonts
  402.      in GDOS-Fonts zu konvertieren,  doch  dies  war  bisher  nicht möglich.
  403.      (Angeblich gibt  es ein  Programm, das  dies kann,  doch es ist mir bis
  404.      heute nicht begegnet.)
  405.      Um dem Fontnotstand zu mildern, beschloß ich, einen Fonteditor speziell
  406.      für GDOS-Fonts  zu entwerfen,  der den Entwurf von Fonts möglichst ein-
  407.      fach machen soll.
  408.      Inzwischen liegt das erste größere Update  als Version  1.10 vor. Viele
  409.      Ideen, die  ich während  meiner Vorbereitungszeit  auf einige Klausuren
  410.      gesammelt habe, sind hier mit eingegangen. Da sind vor allem  die stark
  411.      beschleunigten und  erweiterten Vergrößer-/Verkleinerungsroutinen sowie
  412.      die Anzeige von VDI-Textattributen bei Schriftproben zu erwähnen.
  413.  
  414.  
  415.      2.2. Diese Anleitung
  416.  
  417.      Diese Anleitung beschreibt (hoffentlich)  alle Fakten,  die nötig sind,
  418.      um alle  Funktionen von GEMFONT bedienen und deren Wirkung verstehen zu
  419.      können. Dazu habe ich mich meist an das Prinzip "lieber lange und genau
  420.      als zu kurz und zu knapp erklären" gehalten, denn umfangreiche Erläute-
  421.      rungen sind nötig, weil besonders  Anfänger  nicht  über  das zugegeben
  422.      teilweise  komplexe  Insiderwissen  verfügen;  aber auch, weil GDOS und
  423.      besonders seine Interna bis  heute nur  spärlich dokumentiert  sind und
  424.      man viele Fakten selbst ermitteln muß.
  425.  
  426.  
  427.      2.3. Was GEMFONT so alles kann
  428.  
  429.      GEMFONT bietet folgende Eigenschaften:
  430.  
  431.      -    komplett in  GEM eingebunden,  dadurch lauffähig  auf allen Atari-
  432.           Systemen in jeder Auflösung.
  433.      -    "zukunftssicher" in Bezug auf  MultiGEM  und  MultiTOS  durch ver-
  434.           schiebbare modale  Dialogboxen sowie  durch die Nutzung des Klemm-
  435.           bretts.
  436.      -    Steigerung des Bedienungskomforts durch Popup-Menüs, über Tastatur
  437.           bedienbare Dialoge  und Menüs, Menüzeilen in Fenstern, benutzerde-
  438.           finierte Objekte (MultiTOS-sauber) und einigem mehr.
  439.      -    Bearbeitung von bis zu sieben Fonts gleichzeitig, die  je in einem
  440.  
  441.                                         7
  442.  
  443.           eigenen Fenster bearbeitet werden. (Diese Anzahl ließe sich durch-
  444.           aus noch  steigern, doch  mehr Fonts  wären wohl  nicht mehr sinn-
  445.           voll.)
  446.      -    Import  von  Signum  II  Drucker- und Editorfonts (9- und 24-Nadel
  447.           Format und 300 DPI-Laserformat).
  448.      -    Import und Export von reinen Bitmap-Fonts (Degas Format).
  449.      -    Laden und Speichern von Fonts im Motorola- und Intelformat.
  450.      -    Speichern von Metafont-Informationsfiles.
  451.      -    Teilweise Reparatur und Korrektur von defekten  Fonts und solchen,
  452.           die  in  falschen  Formaten  gespeichert wurden (nahezu alle GDOS-
  453.           Fonts aus den Anfangszeiten von GDOS).
  454.      -    Manipulation aller Parameter im  Zeichensatzheader möglich, einige
  455.           davon werden auf Wunsch automatisch berechnet bzw. interpoliert.
  456.      -    zahlreiche Editorhilfen wie eingeblendete Ausrichtungslinien, frei
  457.           wählbare Hilfspunkte.
  458.      -    zahlreiche Werkzeuge wie Linien, Rechtecke, Rahmen, halbe, viertel
  459.           und ganze Kreise.
  460.      -    zahlreiche  Effekte  wie  spiegeln, drehen, verschieben, rotieren,
  461.           verfetten, stauchen, aushöhlen, umranden,  invertieren, zentrieren
  462.           etc.
  463.      -    Verkleinerung  und  Vergrößerung  einzelner  Zeicher  oder  ganzer
  464.           Fonts. Seit Version 1.10 sorgen hochoptimierte  Routinen für deut-
  465.           liche  Geschwindigkeitszuwächse  gegenüber Vorversionen (Faktor 10
  466.           bis 15).
  467.      -    Das editierte Zeichen wird ständig in Echtgröße angezeigt.
  468.      -    Eine beliebige Zeichenprobe kann auf dem  Bildschirm zur Gesamtbe-
  469.           urteilung  des  Fonts  ausgegeben werden. Sofern ein GDOS-Drucker-
  470.           treiber vorhanden ist, kann ein Ausdruck auch auf einen Drucker in
  471.           Echtgröße erfolgen.  Seit Version  1.10 können dabei auch die VDI-
  472.           Textattribute hinzugeschaltet und kombiniert werden.
  473.      -    komfortable Puffer- und Blockfunktionen.
  474.  
  475.      2.4. Systemanforderungen
  476.  
  477.      GEMFONT arbeitet mit  jeder  Bildschirmauflösung,  jeder Farbfähigkeit,
  478.      jedem Monitor und jeder Grafikkarte, sofern sie ordnungsgemäß durch das
  479.      VDI unterstützt wird. Trotzdem sollte der Monitor wegen  der Menüs eine
  480.      Mindestauflösung von 80 mal 25 Zeichen bieten (muß aber nicht).
  481.      Der  Betrieb  ist  auf  allen Atari ST/STE/TT/Falcon-Systemen mit jeder
  482.      beliebigen TOS-Version möglich (>= TOS 1.04 sollte es aber schon sein).
  483.      Da es  unter MiNT  keine Probleme  gibt, sollte dies auf MultiTOS eben-
  484.      falls zutreffen. Der Betrieb unter MultiGEM sollte auch  keine Probleme
  485.      bereiten, was ich jedoch mangels Programm nicht selbst testen konnte.
  486.      Eine Festplatte ist nicht nötig, aber empfehlenswert. Zum Betrieb soll-
  487.      ten mindestens 350 Kbyte freier  Speicher  vorhanden  sein,  da GEMFONT
  488.      selbst etwa  280 Kbyte beansprucht. Doch beim Entwurf von großen Fonts,
  489.      etwa für hochauflösende Drucker, sollte mindestens  1 Mbyte Gesamtspei-
  490.      cher zur  Verfügung stehen,  da so große Fonts im Editor leicht mehrere
  491.      Hundert KByte in Anspruch  nehmen  (wohlgemerkt  nur  im  Editor). Kurz
  492.      gesagt: je  mehr Speicher, um so besser. Die Größe des freien Speichers
  493.      beeinflußt letztendlich die Maximalgröße der Fonts,  die Sie bearbeiten
  494.      können.
  495.      Ein GDOS  ist nicht notwendig, außer, Sie wollen eine Schriftprobe auch
  496.      auf dem Drucker begutachten. In diesem Fall benötigen Sie einen passen-
  497.      den GDOS-Druckertreiber, aber keine passenden Fonts.
  498.  
  499.  
  500.      2.5. Die Formalitäten
  501.  
  502.      2.5.1. Wie bekomme ich GEMFONT?
  503.  
  504.                                         8
  505.  
  506.      Eine Kopie  von GEMFONT können Sie direkt bei mir erhalten. Dazu schik-
  507.      ken Sie mir einfach eine 3,5"-Diskette (DD, auf  Wunsch auch  HD) sowie
  508.      einen an  sich selbst  adressierten und ausreichend frankierten Rückum-
  509.      schlag zu. Meine Adresse finden Sie weiter unten.
  510.  
  511.  
  512.      2.5.2. Das Shareware-Prinzip
  513.  
  514.      GEMFONT wird als Shareware betrieben. Für diejenigen, die  (immer) noch
  515.      nicht wissen,  was es  damit auf  sich hat, sei das Prinzip noch einmal
  516.      kurz erklärt (siehe auch den Abschnitt "Rechtliches").
  517.      Shareware bedeutet, daß Sie beim Erhalt  des Programms  erst mal nichts
  518.      zahlen müssen. Sie können dann über einen angemessenen Zeitraum (bis zu
  519.      einem Monat ist angemessen)  das Programm  auf Herz  und Nieren prüfen,
  520.      ohne daß dabei Kosten entstehen. Wenn Ihnen das Programm nicht gefällt,
  521.      dann vergessen Sie es am besten wieder. Sollte  es Ihnen  aber gefallen
  522.      und/oder  Sie  benutzen  es  regelmäßig,  dann wird die Sharewaregebühr
  523.      fällig, die an der Programmautor zu zahlen ist (also an mich).
  524.      "Warum soll ich den überhaupt bezahlen?"  werden Sie  sich wohl fragen.
  525.      Nun, in  diesem Programm steckt viel Arbeit (inzwischen über zwei Jahre
  526.      und alles in meiner Freizeit neben dem Studium), für die ich wenigstens
  527.      eine  kleine  Entschädigung  haben  möchte, schließlich erhalten Sie ja
  528.      auch ein professionelles Produkt.
  529.  
  530.  
  531.      2.5.3. Die Registrierung
  532.  
  533.      Bei GEMFONT beträgt die Shareware-Gebühr 30,-  DM (ich  nehme aber auch
  534.      gerne mehr). Diesen Betrag können Sie mir auf verschiedene Arten zukom-
  535.      men lassen: 
  536.  
  537.           1.) als Bargeld oder
  538.           2.) in Form eines (Verrechnungs-)Schecks
  539.  
  540.      Nochmal meine Adresse:
  541.  
  542.                                   Sascha Blank
  543.                                 Brentanostraße 21
  544.                    W-5500 Trier (Ab 1. Juli 1993: 54294 Trier)
  545.                            Bundesrepublik Deutschland
  546.  
  547.      Die Registrierung kann nur schriftlich erfolgen, füllen Sie  dazu bitte
  548.      das Formular am Ende dieser Anleitung aus und schicken Sie mir es zu.
  549.      Generell: wenn  Sie mit  mir Kontakt  aufnehmen, dann  bitte ich um ein
  550.      wenig Geduld, sollte es einmal etwas dauern; das Studium geht halt vor.
  551.      Wenn Sie  sich schriftlich  an mich wenden, legen Sie bitte ausreichend
  552.      Rückporto bei (entfällt bei der Registrierung). Für Anwender mit Zugang
  553.      zum InterNet  bin ich auch über "blank@server.uni-trier.de" erreichbar.
  554.      Alternativ können Sie  auch  die  Adresse "blank@treveris.uni-trier.de"
  555.      verwenden.
  556.  
  557.      Ach ja:  Dank dem  neuen Konzept  "Brief 2000" der Deutschen Bundespost
  558.      kostet der Versand einer  Diskette in  einer gepolsterten Versandtasche
  559.      jetzt 3,-  statt bisher  1,- DM.  Da ich  aber nicht einsehe, für diese
  560.      Leistung jetzt dreimal soviel zu bezahlen wie bisher,  zumal die Quali-
  561.      tät des  Versands nicht besser geworden ist, verschicke ich die Disket-
  562.      ten ab sofort in verstärkten Briefumschlägen. Auf diese  Weise kann ich
  563.      das Porto je nach Gewicht der Beilagen auf 2,- bzw. 1,- DM drücken. Wer
  564.      jedoch Angst hat, die Diskette könnte nicht heil  bei Ihr/Ihm ankommen,
  565.      der kann  mir zusätzlich  3,- DM  in Briefmarken mitschicken und erhält
  566.  
  567.                                         9
  568.  
  569.      dann Ihre/Seine Diskette wieder in einer gepolsterten Versandtasche.
  570.  
  571.      2.5.4. Meine Gegenleistung
  572.  
  573.      Wenn Sie mir die Shareware-Gebühr zukommen  lassen, werden  Sie bei mir
  574.      als Anwender  von GEMFONT  registriert. Dies bringt ihnen folgende Vor-
  575.      teile:
  576.  
  577.      -    Sie erhalten umgehend die neueste Version des Programms zugesandt.
  578.      -    Sie können jederzeit ein Update bei mir anfordern.
  579.      -    Wenn Sie ein Problem mit GEMFONT haben, dann  können Sie  sich je-
  580.           derzeit an mich wenden.
  581.      -    Wenn Sie  einen Fehler gefunden haben, können Sie eine korrigierte
  582.           Version von mir erhalten.
  583.      -    Sie erhalten neuere Versionen,  die möglicherweise  nur noch regi-
  584.           strierten Anwendern zugänglich gemacht werden.
  585.  
  586.  
  587.      2.6. Sonstige Leistungen
  588.  
  589.      2.6.1. Wie bekommt man ein Update?
  590.  
  591.      Als registrierter  Anwender können Sie jederzeit ein Update von GEMFONT
  592.      bei mir erhalten. Dazu schicken Sie mir einfach eine 3,5"-Diskette (DD,
  593.      auf Wunsch auch HD) sowie einen an sich selbst adressierten und ausrei-
  594.      chend frankierten Rückumschlag zu.
  595.      Sollten Sie nicht genau  wissen, ob  es bereits  ein Update  gibt, dann
  596.      schicken  Sie  mir  trotzdem  eine  Diskette  und sagen mir zusätzlich,
  597.      welche die neuste Version ist, die  Sie besitzen.  Sollte diese Version
  598.      noch die aktuelle sein, dann behalte ich Ihre Diskette einfach solange,
  599.      bis es eine neuere Version gibt. Diese schicke  ich Ihnen  dann automa-
  600.      tisch zu, wenn sie veröffentlicht wird.
  601.  
  602.  
  603.      2.6.2. Programmfehler
  604.  
  605.      Wenn Sie glauben, einen Fehler im Programm oder in der Anleitung gefun-
  606.      den zu haben, dann bitte ich Sie, mir diesen mitzuteilen. Dazu benötige
  607.      ich eine genaue Beschreibung ihres Systems (Versionsnummer von GEMFONT,
  608.      TOS-Version,  Speicherausbau,  Accessories  etc.),  je  genauer,  um so
  609.      besser. Sollte der Fehler rekonstruierbar sein, so sagen Sie mir bitte,
  610.      wie.
  611.      Wenn Sie mir eine Diskette mitschicken  (Modalitäten siehe  oben), dann
  612.      erhalten  Sie  eine  fehlerbereinigte  Version,  sofern  ich den Fehler
  613.      finden und beheben kann. Tritt der Fehler in  Zusammenhang mit bestimm-
  614.      ten Fonts  auf, dann  ist es  hilfreich, wenn Sie mir die Fonts auf die
  615.      Diskette mitkopieren.
  616.  
  617.  
  618.      2.6.3. Probleme mit GEMFONT
  619.  
  620.      Sollten Sie einmal ein Problem mit GEMFONT haben und es  ohne anderwei-
  621.      tige Hilfe nicht lösen können, dann können Sie sich an mich wenden. Ich
  622.      werde mich im Rahmen meiner  Möglichkeiten  bemühen,  Ihnen  zu helfen.
  623.      Auch hier  gilt: Je  genauer Sie  mir Ihr  Problem und die Umstände be-
  624.      schreiben, desto eher kann ich Ihnen helfen.
  625.  
  626.  
  627.      2.6.4. Vorschläge
  628.  
  629.  
  630.                                        10
  631.  
  632.      Wenn Sie  besondere Wünsche,  Erweiterungen oder  Vorschläge haben, die
  633.      Sie gerne in zukünftigen Versionen von GEMFONT realisiert sehen würden,
  634.      dann teilen Sie mir diese mit. Ich werde  ich mich  dann bemühen, diese
  635.      aufzugreifen und nach eingehender Prüfung in die Tat umzusetzen.
  636.  
  637.      2.7. Austausch von Fonts
  638.  
  639.      Wenn Sie  neue Fonts  entworfen bzw. konvertiert haben und glauben, sie
  640.      könnten auch für andere Benutzer nützlich  sein, dann  schicken Sie mir
  641.      diese doch  zu, sofern  sich dies mit den rechtlichen Bestimmungen ver-
  642.      einbaren läßt (siehe Kapitel  1). Ich  werde diese  Fonts dann zusammen
  643.      mit GEMFONT  verbreiten, soweit es die Umstände, d.h. der Platz auf der
  644.      Diskette zuläßt. Vielleicht entsteht so eine  kleine (oder  auch große)
  645.      Sammlung an  hochwertigen GDOS-Fonts.  Besonders dringend werden "Brot-
  646.      schriften" gebraucht,  also solche  Schriften, die  sehr häufig benutzt
  647.      werden (beispielsweise Times oder Helvetica). Zier- oder Frakturschrif-
  648.      ten sind zwar schön anzuschauen, werden aber nur selten genutzt.
  649.  
  650.  
  651.      2.8. Danksagungen
  652.  
  653.      Bedanken möchte ich mich bei
  654.  
  655.      -    der Free Software Foundation  für ihren  hervorragenden C-Compiler
  656.           und all  die anderen  Utilities, die  unter ihrer Feder entstehen,
  657.           sowie all denjenigen, die sie immer wieder auf TOS/MiNT portieren.
  658.      -    Eric R. Smith, Nick Castellano, Jhawar Bammi und allen anderen für
  659.           ihre ausgezeichneten C-Bibliotheken und ihre Mitarbeit an MiNT.
  660.      -    dem Autorentrio  Jankowski/Rabich/Reschke für  ihr Profibuch (wann
  661.           kommt die Fortsetzung?)
  662.      -    dem ST-Magazin für sein Expertenforum, ohne daß ich so manches Mal
  663.           auf dem Schlauch gestanden hätte.
  664.      -    Joachim Höhne  aus Osnabrück,  der sich  als erster  bei mir regi-
  665.           strieren ließ. Selbstverständlich möchte  ich mich  auch bei allen
  666.           anderen registrieten Anwendern für ihre Ehrlichkeit danken.
  667.  
  668.  
  669.      Nicht bedanken möchte ich mich bei
  670.  
  671.      -    dem, der  das deutsche  Handbuch zu  Lattice C verfasst hat. (Wenn
  672.           ich so die Leserbriefe in den wichtigen ST-Publikationen  oder die
  673.           Nachrichten im  NewsNet lese,  dann weiß  ich, daß  ich mit meiner
  674.           Meinung nicht alleine stehe!)
  675.      -    dem, der meinen Account  auf dem  alten SUN-Server  aufgelöst hat.
  676.           (das kann eigentlich nur einer gewesen sein...)
  677.      -    einem gewissen Herrn für eine gewisse "Algorithmen und Datenstruk-
  678.           turen"-Klausur im SS 92 (er wird wissen, daß er gemeint ist...)
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.                                        11
  694.  
  695.      3. Installation und Bedienung
  696.      3.1. Installation und Programmstart
  697.  
  698.      Die Installation von GEMFONT gestaltet sich  einfach. Kopieren  Sie die
  699.      Dateien GEMFONT.APP,  GEMFONT.RSC und GEMFONT.INF (sofern vorhanden) an
  700.      einen gleichen, aber beliegen Platz, der Ihnen zusagt.
  701.      GEMFONT kann  als GEM-Applikation  nicht aus  dem AUTO-Ordner gestartet
  702.      werden. Sollten  Sie es  versehentlich doch  einmal versuchen, dann be-
  703.      merkt GEMFONT  dies und  verhindert Schlimmeres.  Eine Installation als
  704.      Accessory  durch  Umbenennen  von  GEMFONT.APP  in GEMFONT.ACC ist zwar
  705.      möglich, doch GEMFONT unterstützt den Accessorymodus nicht weiter, u.a.
  706.      aufgrund der  komplexen internen Speicherverwaltung. In diesem Fall be-
  707.      legt GEMFONT zwar  einen  Accessoryeintrag,  doch  der  Versuch, dieses
  708.      Accessory zu aktivieren, wird ignoriert.
  709.      Werden GEMFONT  Fonts als  Parameter übergeben (etwa durch Ziehen eines
  710.      Fonts auf das GEMFONT-Icon unter Newdesk oder Gemini),  so werden diese
  711.      Fonts automatisch geladen.
  712.  
  713.  
  714.      3.2. Die GEM-Erweiterungen von GEMFONT
  715.  
  716.      GEMFONT benutzt  neben den  üblichen GEM-Elementen noch weitere, um den
  717.      Benutzerkomfort weiter zu steigern.
  718.  
  719.  
  720.      3.2.1. Wertgebundene Slider
  721.  
  722.      Wer XCONTROL kennt, der  kennt  auch  die  Slider,  bei  deren Bewegung
  723.      irgendeine Anzeige gleichzeitig aktualisiert wird. Auch GEMFONT benutzt
  724.      solche Slider. Ihre Bedienung  funktioniert genau  wie die Fenster-Sli-
  725.      der.
  726.  
  727.  
  728.      3.2.2. Modale verschiebbare Dialoge
  729.  
  730.      Modale  verschiebbare  Dialoge  gehören  inzwischen zum guten Ton eines
  731.      GEM-Programms. Das bedeutet nichts anderes,  als  daß  alle  Dialoge in
  732.      Fenstern  liegen.  Dadurch  wird die Parallelverarbeitung von Prozessen
  733.      auch während der Dialogbearbeitung nicht unterbrochen.
  734.      Wird ein  Dialog bearbeitet,  so können  alle anderen  Fenster, die zur
  735.      gleichen  Applikation  gehören,  nicht  nach oben gebracht werden. Eine
  736.      Weiterarbeit ist erst dann  möglich,  wenn  der  Dialog  beendet wurde.
  737.      Zudem sind alle Menüeinträge gesperrt, andere Accessories können jedoch
  738.      weiterhin aktiviert werden. So kann die Applikation im Hintergrund wei-
  739.      terarbeiten, während ein anderer Prozess im Vordergrund läuft.
  740.      Sollte kein  Fenster mehr  für die  Anzeige eines Dialogs zur Verfügung
  741.      stehen, dann wird er normal, also  ohne Fenster  bearbeitet. Die Paral-
  742.      lelverarbeitung ist in diesem Fall natürlich unterbrochen.
  743.      Sollte Ihnen  das zu kompliziert sein, so brauchen Sie sich nur zu mer-
  744.      ken, daß alle Dialoge in Fenstern liegen und  daß sich  an deren Bedie-
  745.      nung nichts geändert hat gegenüber normalen Dialogen.
  746.  
  747.  
  748.      3.2.3. Über Tastatur bedienbare Dialogboxen
  749.  
  750.      Alle Dialoge  sind über  Tastatur bedienbar.  Wenn in  einem Button ein
  751.      Zeichen unterstrichen ist, so können Sie diesen durch <Alternate>+<unt-
  752.      erstrichenes Zeichen>  aktivieren. Die Taste <UNDO> löst meistens einen
  753.      Button aus, der sinngemäß für den  Abbruch einer  Aktion steht ("Ende",
  754.      "Abbruch" etc.)
  755.  
  756.                                        12
  757.  
  758.  
  759.      3.2.4. Menüzeilen in Fenster
  760.  
  761.      Fenster können ebenfalls Menüzeilen besitzen. Um ein Menü auszuklappen,
  762.      klicken Sie den Titel  an, das  Menü klappt  je nach  freiem Platz nach
  763.      unten oder  nach oben  aus. Jetzt  können Sie wie gewohnt einen Eintrag
  764.      selektieren, ein Klick außerhalb der Menübox  selektiert keinen Eintrag
  765.      und  bricht  die  Auswahl  zudem  ab. Halten Sie die Maustaste nach dem
  766.      Klick auf den Titel gedrückt, dann klappt das Menü aus.  Fahren Sie mit
  767.      der Maus  auf den  gewünschten Eintrag. Dieser wird dann beim Loslassen
  768.      der Maustaste selektiert (am besten mal ausprobieren). Auf  diese Weise
  769.      können Sie ein Menü mit einem Klick bedienen. Nach einer Selektion bzw.
  770.      Nichtselektion (ein Klick außerhalb der  Menübox)  klappt  das  Menü in
  771.      jedem  Fall  ein  (hört  sich  schlimmer  an, als es ist). Fenstermenüs
  772.      können ebenso wie die echten Menüs  über Tastaturkürzel  gesteuert wer-
  773.      den. Diese finden sie jeweils am rechten Rand des Eintrags.
  774.      Wenn  ein  Menü  ausgeklappt  ist  und der Mauszeiger auf einem Eintrag
  775.      steht, Sie aber dann das Kürzel eines anderen  Eintrags tippen,  so hat
  776.      das eingegebene  Kürzel Vorrang vor dem Eintrag, auf dem der Mauszeiger
  777.      steht.
  778.  
  779.  
  780.      3.2.5. RaveUp-Menüs
  781.  
  782.      RaveUp-Menüs (eigentlich heißen sie ja PopUp-Menüs)  werden genauso wie
  783.      die  Menüzeilen  in  den  Fenstern bedient. Mit dem kreisförmigen Pfeil
  784.      rechts neben dem Menü kann nacheinander  jeder Eintrag  ausgewählt wer-
  785.      den, ohne daß dabei das Menü ausgeklappt werden muß.
  786.      Klappt  ein  RaveUp-Menü  aus,  so  ist der bisher aktuelle Eintrag mit
  787.      einem Häkchen gekennzeichnet. Bei  eingeklapptem Menü  wird jeweils der
  788.      aktuelle Eintrag angezeigt.
  789.  
  790.  
  791.      3.2.6. Das Klemmbrett
  792.  
  793.      Das Klemmbrett soll den Datenaustausch zwischen Programmen erleichtern,
  794.      was besonders bei multitaskingfähigen GEM-Versionen praktisch  ist. Das
  795.      Klemmbrett ist  nichts anderes als ein Ordner auf einem Laufwerk (meist
  796.      dem, von dem gebootet worden ist).  Jedes Programm,  daß das Klemmbrett
  797.      unterstützt, kann in das Klemmbrett hineinspeichern bzw. von ihm lesen.
  798.      Die Namen der Dateien im Klemmbrett sind vom System vorgegeben, deshalb
  799.      erfolgt auch  keine Frage  nach einem  Dateinamen beim Laden oder Spei-
  800.      chern. So kann ein  Programm A  eine Datei  ins Klemmbrett  ablegen und
  801.      Programm B  dann sofort danach die Datei aus dem Klemmbrett laden, ohne
  802.      daß dabei irgendwelche Angaben gemacht werden müßten.
  803.  
  804.  
  805.      3.3. Der Desktop
  806.  
  807.      Seit Version 1.03 besitzt GEMFONT kein eigenes Desktop  mehr. Zu diesem
  808.      Schritt entschloß  ich mich, da das Desktop von GEMFONT nichts bot, was
  809.      nicht auch über das Menü  zu  erreichen  gewesen  wäre.  Zudem  ist ein
  810.      eigenes  Desktop  unter  MultiGEM  und MultiTOS nur hinderlich, wenn es
  811.      nicht mindestens genauso viel bietet wie das Standard-Desktop  (und das
  812.      tat es bisher eben nicht).
  813.  
  814.  
  815.      3.4. Das Editorfenster
  816.  
  817.      3.4.1. Aufbau
  818.  
  819.                                        13
  820.  
  821.      Das  Editorfenster  besteht  aus  mehreren Komponenten. Der größte Teil
  822.      nimmt das Editorfeld selbst ein. Im rechten Rand wird das  jeweils edi-
  823.      tierte  Zeichen  in  Echtgröße  dargestellt.  Die  Titelzeile zeigt den
  824.      kompletten Dateinamen des Fonts an. In der Infozeile  des Fensters wird
  825.      die aktuelle  Position des  Mauszeigers über der Editorgitter angezeigt
  826.      sowie die Nummer des  gerade bearbeiteten  Zeichens. Befindet  sich die
  827.      Maus außerhalb  des Gitters,  dann werden  keine Koordinaten angezeigt.
  828.      Ein Stern am Anfang der Infozeile  zeigt Ihnen,  daß Sie  den Font seit
  829.      dem letzen Speicher-/Ladevorgang verändert haben.
  830.      Unterhalb der  Infozeile befindet  sich eine Menüzeile, deren Bedienung
  831.      bereits besprochen wurde. Der Pfeil  im  unteren  Editorrand  zeigt auf
  832.      diejenige  Pixelspalte,  die  die  letzte rechte benutzte Zeichenspalte
  833.      darstellt. Mit  anderen Worten:  dieser Pfeil  gibt die  Breite an. Der
  834.      rechte Rand neben dem vertikalen Slider zeigt die Position der Ausrich-
  835.      tungslinien an. Dabei stehen folgende Buchstaben für folgende Linien:
  836.  
  837.           T    Zeichenzellenoberkante ("Top Line")
  838.           A    Zeichenoberkante ("Ascent Line")
  839.           H    Halblinie ("Half Line")
  840.           G    Grundlinie
  841.           D    Zeichenunterkante ("Descent Line")
  842.           B    Zeichenzellenunterkante ("Bottom Line")
  843.  
  844.      Das eigentliche  Editorraster wird  durch ein  Gitter aus gestrichelten
  845.      Linien gekennzeichnet.  Zur besseren Orientierung sind alle Linien, die
  846.      eine Ausrichtungslinie  darstellen, von  durchgezogenen Linien umgeben.
  847.      Ebenso wird  die rechte  Linie derjenigen  Spalte, die  die Breite dar-
  848.      stellt, mit einer durchgezogen Linie gekennzeichnet.
  849.  
  850.  
  851.      3.4.2. Bedienung
  852.  
  853.      Gesetzte Punkte werden durch  ein schwarzes  Kästchen im  Gitter darge-
  854.      stellt, ungesetzte durch ein weißes Kästchen. Sollte ein Block markiert
  855.      sein, so werden dessen  vier Eckpunkte  durch ein  Diagonalkreuz in den
  856.      jeweiligen Kästchen angezeigt. Punkte, die einen Hilfspunkt darstellen,
  857.      werden grau gerastert angezeigt.
  858.      Punkte werden innerhalb  des  Editorrasters  mit  der  linken Maustaste
  859.      gesetzt bzw. gelöscht. Dabei wird bei einem Klick der bisherige Zustand
  860.      des Punktes umgekehrt. Das heißt ein  Klick auf  einen gelöschten Punkt
  861.      setzt diesen Punkt und umgekehrt.
  862.      Sie können  mit gedrückter  Maustaste gleichzeitig mehrere Punkte bear-
  863.      beiten. Solange Sie die Maustaste drücken, werden alle  Punkte, die sie
  864.      mit der  Maus berühren, verändert. Ob gelöscht oder gesetzt wird, hängt
  865.      davon ab, welchen  Zustand  derjenige  Punkt  unterhalb  des Mauspfeils
  866.      hatte, als  die Maustaste zu drücken begannen. (Am besten Sie probieren
  867.      das mal aus, dann verstehen Sie alles viel leichter.)
  868.  
  869.  
  870.      3.5. Bedienung der Fenster über Funktionstasten
  871.  
  872.      Mit den Funktionstasten können Sie bestimmte  Fensteranordnungen errei-
  873.      chen, die mit der Maus alleine nur schwer zu erreichen wären:
  874.  
  875.           (Shift F1)
  876.                Damit machen  Sie ein Fenster nach dem anderen zum aktuellen.
  877.                Die gleiche Funktion läßt  sich über  die Standardkombination
  878.                (Control W) erreichen.
  879.  
  880.           (Shift F2)
  881.  
  882.                                        14
  883.  
  884.                Das aktuelle  Fenster wird  auf die  kleinsten erlaubten Maße
  885.                verkleinert. Dies ist praktisch,  wenn man  einmal vor lauter
  886.                Fenstern den Desktop nicht mehr sieht. Mit dem Full-Size-Icon
  887.                des Fensters  vergrößern Sie  es wieder  auf seine vorherigen
  888.                Ausmaße.
  889.           (Shift F3)
  890.                Alle Fenster  werden untereinander angeordnet, so daß sie die
  891.                maximale Breite  einnehmen und  alle die  gleiche Höhe haben.
  892.                Sollte bei  diesem Vorhaben  jedoch ein Fenster zu klein oder
  893.                zu schmal werden, so erscheint eine  Meldung und  die Fenster
  894.                bleiben unverändert.
  895.  
  896.           (Shift F4)
  897.                Alle Fenster  werden nebeneinder  angeordnet, so  daß sie die
  898.                maximale Höhe  einnehmen und  alle die  gleiche Breite haben.
  899.                Sollte bei  diesem Vorhaben  jedoch ein Fenster zu klein oder
  900.                zu schmal werden, so erscheint eine  Meldung und  die Fenster
  901.                bleiben unverändert.
  902.  
  903.           (Shift F5)
  904.                Alle  Fenster  werden  übereinander  angeordnet,  so daß ihre
  905.                Arbeitsfläche möglich groß ist,  jedoch jedes  andere Fenster
  906.                direkt  ohne  Verschieben  nach  oben  gebracht  werden kann.
  907.                Sollte bei diesem Vorhaben jedoch ein  Fenster zu  klein oder
  908.                zu schmal  werden, so  erscheint eine Meldung und die Fenster
  909.                bleiben unverändert.
  910.  
  911.      Mit den Cursortasten kann  der Fensterinhalt  zeilen- bzw. spaltenweise
  912.      verschoben werden,  wird zusätzlich  CONTROL gedrückt, wird Seitenweise
  913.      in die gewünschte Richtung verschoben.
  914.  
  915.  
  916.      3.6. Sonstige hilfreiche Funktionen
  917.  
  918.      Sollte einmal aufgrund von  Redraw-Fehlern  der  Inhalt  eines Fensters
  919.      zerstört worden  sein, so  genügt ein Druck auf die Tabulator-Taste und
  920.      das aktuelle Fenster wird komplett  neu  gezeichnet.  Halten  Sie zudem
  921.      die Shift-Taste  gedrückt, so  wird der Desktop neugezeichnet, was aber
  922.      nur in schlimmeren Fällen nötig sein sollte.
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.                                        15
  946.  
  947.      4. Das GDOS-Fontformat
  948.      4.1. Einführung
  949.  
  950.      Bei den Fonts, die GDOS verwendet, handelt es sich um Pixel-Fonts, d.h.
  951.      in einer  Zeichenmaske sind  Punkte gesetzt bzw. gelöscht, die dann als
  952.      ganzes das Aussehen jedes Zeichens bestimmen.
  953.      Der Vorteil  von Pixelfonts  ist, daß  sie bei  "kleinen" Größen besser
  954.      aussehen,  dafür  bei  "großen"  Größen viel mehr Speicher verbrauchen.
  955.      Zudem ist ihre algorithmische Handhabung recht einfach.
  956.  
  957.  
  958.      4.2. Der Aufbau von Fonts
  959.  
  960.      GDOS verwendet ein spezielles Format, in dem die Fonts abgelegt werden.
  961.      Grob gesehen besteht ein Font auf maximal vier Komponenten:
  962.  
  963.      1.)  Der Fontheader.  In ihm  stehen alle  Angaben, die das VDI zum Um-
  964.           gang mit dem Font braucht, angefangen vom Zeichensatznamen  bis zu
  965.           den Kursivüberhangsneigungen.
  966.      2.)  Die Horizontale Offset-Tabelle. Sie ist optional und wird nur sehr
  967.           selten verwendet. Mit ihr kann jedes Zeichen vor seiner Ausgabe um
  968.           einen frei bestimmbaren Wert nach links verschoben werden.
  969.      3.)  Die Zeichenbreiten  Offset-Tabelle. In ihr ist vermerkt, wie breit
  970.           jedes Zeichen ist. Dies ist besonders bei proportionalen Schriften
  971.           wichtig.
  972.      4.)  Die Zeichendaten. Dies sind die eigentlichen Daten, die das Ausse-
  973.           hen des Fonts bestimmen.
  974.  
  975.      Die Reihenfolge der Teile 2, 3 und 4 ist zwar so nicht  zwingend vorge-
  976.      geben, hat sich aber so eingebürgert.
  977.      Jedes Fontfile  enthält nur  einen Font in einer bestimmten Größe. Soll
  978.      ein Font aus mehreren Größen  bestehen,  so  wird  für  jede  Größe ein
  979.      eigener Font  angelegt, wobei  alle Fonts  die gleichen Einträge id und
  980.      name besitzen.
  981.  
  982.  
  983.      4.3. Der Fontheader
  984.  
  985.      Der Fontheader enthält  alle  wichtigen  Informationen,  deren Kenntnis
  986.      auch bei  der Bedienung von GEMFONT wichtig ist. Nachfolgend werden der
  987.      Header und alle seine Einträge erklärt.
  988.      Hinter der Deklaration steht in Klammern der dezimale Offset zum Datei-
  989.      anfang in  Bytes. Für alle Nicht-C-Programmierer seien kurz die verwen-
  990.      deten Datentypen erklärt:
  991.  
  992.           char           = -128 bis 128 (1 Byte)
  993.           unsigned char  = 0 bis 255 (1 Byte)
  994.           short          = -32768 bis 32767 (2 Bytes)
  995.           unsigned short = 0 bis 65535 (2 Bytes)
  996.  
  997.      Steht vor dem Variablennamen ein Stern "*", dann  bedeutet dies "Zeiger
  998.      auf Datentyp ..."
  999.  
  1000.      Noch ein  Hinweis: Keine  normale VDI-Anwendung braucht sich jemals mit
  1001.      dem  Aufbau  und  dem  Format  von  GDOS-Fonts  zu  beschäftigen.  Alle
  1002.      Einträge können  über entsprechende  VDI-Funktion erfragt werden. Diese
  1003.      Beschreibung ist nur für das Editieren von GDOS-Fonts wichtig!
  1004.  
  1005.  
  1006.      typedef struct font_hdr
  1007.  
  1008.                                        16
  1009.  
  1010.      {
  1011.      unsigned short id;                 (0)
  1012.  
  1013.           Jeder Font verfügt über eine Kennung, an der  er eindeutig identi-
  1014.           fizierbar ist. Diese Kennung liegt im Bereich von 0 bis 32767. Das
  1015.           VDI erkennt seine Fonts ausschließlich an diesem Feld,  nicht etwa
  1016.           am  Fontnamen  (name)  oder  am  Filenamen des Fonts, wie manchmal
  1017.           fälschlicherweise behauptet wird.
  1018.           Manche Programme haben mit IDs größer als 255  oder 127 Schwierig-
  1019.           keiten. Dies  liegt nicht  an GDOS,  sondern ist ein Fehler dieser
  1020.           Programme!
  1021.  
  1022.  
  1023.      unsigned short point;              (2)
  1024.  
  1025.           Damit wird die Größe  des Fonts  in typographischen  Punkten ange-
  1026.           geben (1pt  = ca. 0.0351 cm). Zwischen welchen Linien dabei gemes-
  1027.           sen wird, ist allerdings nirgends dokumentiert  und auch  mir noch
  1028.           nicht ganz  klar. GEMFONT  ermittelt die Größe zwischen Grundlinie
  1029.           und Zeichenoberkante,  weil diese  Werte denen  aus vielen anderen
  1030.           Fonts meist sehr ähnlich sind.
  1031.  
  1032.  
  1033.      char name[32];                     (4)
  1034.  
  1035.           Jeder Font  besitzt einen  Namen. Dieser  wird zwar nicht zwingend
  1036.           vom VDI benötigt, kann aber ganz  legal erfragt  werden und sollte
  1037.           alleine schon  deshalb immer angegeben werden. Der Name kann maxi-
  1038.           mal 32 Zeichen lang sein. Dabei  ist man  übereingekommen, daß die
  1039.           Zeichen  0  bis  15  den  Namen des Fonts enthalten (etwa "Times",
  1040.           "Swiss") und die Zeichen 16 bis 31 den Stil (etwa "bold" oder "it-
  1041.           alic")  enthalten.  Der  String  ist nicht zwangsläufig NUL-termi-
  1042.           niert.
  1043.  
  1044.  
  1045.      unsigned short first_ade;          (36)
  1046.      unsigned short last_ade;           (38)
  1047.  
  1048.           Der ASCII-Zeichensatz besteht auch 256 Zeichen, nämlich von  0 bis
  1049.           255 inklusive.  VDI ist sogar in der Lage, Fonts mit 65536 Zeichen
  1050.           (!) zu verarbeiten, was aber nicht  gemacht wird,  weil alle Hoch-
  1051.           sprachenbindings  nicht  darauf  vorbereitet  sind und ein solcher
  1052.           Font immens viel Speicher verbrauchen würde.
  1053.           Deshalb enthält heute  jeder  GDOS-Font  maximal  256  Zeichen. Um
  1054.           noch  mehr  Speicherplatz  zu  sparen,  kann ein Font auch weniger
  1055.           Zeichen enthalten. Zu diesem  Zweck kann  der Code  des ersten und
  1056.           des letzten benutzen Zeichens angegeben werden. Eine im englischen
  1057.           Sprachraum beliebte Einschränkung sind Fonts, die  nur die Zeichen
  1058.           32 bis 127 inklusive enthalten. Dann fehlen zwar die Control-Codes
  1059.           sowie alle nichtenglischen  Zeichen,  doch  dies  stört  in diesem
  1060.           Sprachraum nicht.  Auf diese  Weise werden die Verwaltungstabellen
  1061.           kleiner. In der Fontdatei  werden  nur  die  tatsächlich benutzten
  1062.           Zeichen abgelegt.
  1063.           Sollte ein Programm dennoch versuchen, ein Zeichen auszugeben, das
  1064.           nicht im Font vorhanden ist, so wird stattdessen  ein Fragezeichen
  1065.           ausgegeben.
  1066.  
  1067.  
  1068.      unsigned short top;                (40)
  1069.      unsigned short ascent;             (42)
  1070.  
  1071.                                        17
  1072.  
  1073.      unsigned short half;               (44)
  1074.      unsigned short descent;            (46)
  1075.      unsigned short bottom;             (48)
  1076.           Jeder Font wird mit Hilfe von typographischen Hilfslinien erzeugt.
  1077.           Das VDI benutzt dazu sechs horizontale Ausrichtungslinien.
  1078.           Zur Veranschaulichung stellen sie  sich ein  Schreibheft vor, wel-
  1079.           ches  Schulanfänger  benutzen.  Dort  werden  in  der Regel Zeilen
  1080.           verwendet, die aus vier  Linien  bestehen.  Die  zweite  Zeile von
  1081.           unten ist  die Grundlinie  (Baseline), die die Unterkante der mei-
  1082.           sten Buchstaben darstellt. Die  direkt  darüberliegende  Zeile ist
  1083.           die Halblinie (Halfline), die die Oberkante vieler Kleinbuchstaben
  1084.           darstellt (etwa a, c, e, o).  Die oberste  Linie ist  die Zeichen-
  1085.           oberkante  (Ascent  Line),  die  -  wie  der Name schon sagt - die
  1086.           Oberkante der meisten  Großbuchstaben  darstellt.  Schließlich ist
  1087.           die unterste  Linie die Zeichenunterkante (Descent Line). Sie wird
  1088.           nur von  wenigen Buchstaben,  etwa dem  'g' oder  dem 'y' berührt.
  1089.           Damit wären also schon einmal vier der sechs Zeilen erklärt.
  1090.           Bei der  Textausgabe von  Zeilen, die untereinander stehen sollen,
  1091.           geht man meist so vor, daß die Zeichenoberkante  jeder neuen Zeile
  1092.           nahtlos an  die Zeichenunterkante der vorherigen Zeile anschließt.
  1093.           Dabei kann es aber passieren, daß bestimmte Zeichen  beider Zeilen
  1094.           sich  optisch  schneiden.  Um  dies zu verhindern, benutzt das VDI
  1095.           zwei weitere  Linien.  Die  Zeichenzellenunterkante  (Bottom Line)
  1096.           liegt ein  wenig unterhalb  der Zeichenunterkante, so wie die Zei-
  1097.           chenzellenoberkante (Top Line) ein wenig über der Zeichenoberkante
  1098.           liegt. Sie  bilden damit  eine Art  Sicherheitsabstand gegen Über-
  1099.           schneidungen. Die Zeichenzellenoberkante liegt dabei immer auf der
  1100.           Position 0.
  1101.           Die Position  der Linien ist jedoch nicht absolut, sondern relativ
  1102.           zur Grundlinie  gespeichert. top  gibt den  Abstand der Grundlinie
  1103.           zur Zeichenzellenoberkannte an. Alle anderen Linienpositionen sind
  1104.           relativ zu top angegeben. Ihre absolute  Positionen errechnen sich
  1105.           wie folgt, die Numerierung beginnt bei 0:
  1106.  
  1107.                Zeichenzellenoberkante   = 0;
  1108.                Zeichenoberkante         = top - ascent;
  1109.                Halblinie                = top - half;
  1110.                Grundlinie               = top;
  1111.                Zeichenunterkante        = top + descent;
  1112.                Zeichenzellenunterkante  = top + bottom;
  1113.  
  1114.  
  1115.      unsigned short max_char_width;     (50)
  1116.      unsigned short max_cell_width;     (52)
  1117.  
  1118.           Diese beiden  Felder geben  Auskunft über das breiteste Zeichen im
  1119.           gesamten Zeichensatz. max_cell_width  gibt  an,  wie  breit dieses
  1120.           Zeichen  laut  der  Editoreinstellung ist. max_char_width hingegen
  1121.           gibt dessen echte Breite  an.  Die  Breiten  schließen  den linken
  1122.           freien Randbereich mit ein!
  1123.           Dazu ein  Beispiel: Schauen  Sie sich  den Buchstaben "i" in ihrem
  1124.           Systemzeichensatz an. Laut  Eintrag  in  der Zeichenbreitentabelle
  1125.           ist er  8 Pixel  breit, doch sie sehen, daß er eigentlich schmaler
  1126.           ist. Wenn dieses "i" der breiteste Buchstabe wäre,  dann enthielte
  1127.           max_cell_width den  Wert 8.  Subtrahiert man den Abstand, der zwi-
  1128.           schen dem "i" und seiner rechten Kante liegt, dann erhält  man die
  1129.           echte Zeichenbreite,  max_char_width enthielte dann beispielsweise
  1130.           den Wert 6.
  1131.  
  1132.  
  1133.  
  1134.                                        18
  1135.  
  1136.      unsigned short left_offset;        (54)
  1137.      unsigned short right_offset;       (56)
  1138.           Wenn ein Zeichen geneigt  ausgegeben wird,  dann ragt  es überhalb
  1139.           der Grundlinie  rechts über  seinen Rand, unterhalb der Grundlinie
  1140.           über seinen linken Rand. Wie weit es nun  herausragt, muß  das VDI
  1141.           genau  wissen,  damit  die  Textausgabe auch bei geneigter Schrift
  1142.           halbwegs vernünftig aussieht.
  1143.           Wie man  diese Werte  ermittelt, wurde  nie offiziel dokumentiert.
  1144.           Eigene Versuche lassen aber auf folgendes Verfahren schließen:
  1145.  
  1146.                 -------
  1147.                |*******|
  1148.                |*******|
  1149.                |*******|
  1150.                |*******| <- Grundlinie
  1151.                |*******|
  1152.                |*******|
  1153.                 -------
  1154.  
  1155.           Die Striche  um das  Zeichen sollen die Zellenkanten andeuten, die
  1156.           nicht mehr zum Zeichen gehören. Die Sterne stehen  für alle dieje-
  1157.           nigen  Pixel,  die  gesetzt  werden  können, ob sie es tatsächlich
  1158.           sind, spielt bei der Kursivausgabe keine  Rolle. Wenn  dieses Zei-
  1159.           chen nun geneigt wird, sieht es wie folgt aus:
  1160.  
  1161.                 -------
  1162.                |   *******
  1163.                |  *******
  1164.                | *******
  1165.                |*******| <- Grundlinie
  1166.                ******  |
  1167.               ******   |
  1168.                 -------
  1169.  
  1170.           Sie sehen, das Zeichen ragt an beiden Seiten über die Zellenränder
  1171.           hinaus. Unterhalb der Grundlinie ragt es um zwei  Pixel nach links
  1172.           über  (der  Zellenrand  gehört  nicht  mehr zum Zeichen), über der
  1173.           Grundlinie ragt es drei  Pixel nach  rechts. In  diesem Fall würde
  1174.           left_offset den  Wert 2, right_offset den Wert 3 enthalten. (Wahn-
  1175.           sinn!)
  1176.           Dieses Verfahren ist zweifellos  nicht  das  einfachste, erfordert
  1177.           aber keine  aufwendigen mathematischen Berechnungen (etwa trigono-
  1178.           metrische Funktionen) und ist  deshalb recht  günstig zu implemen-
  1179.           tieren.
  1180.  
  1181.  
  1182.      unsigned short thicken;            (58)
  1183.  
  1184.           Soll ein Zeichen fett dargestellt werden, so wird das Zeichen aus-
  1185.           gegeben, und anschließend noch  einmal  um  genau  ein  Pixel nach
  1186.           rechts versetzt  erneut ausgegeben. thicken gibt dabei an, wie oft
  1187.           dieser Vorgang wiederholt werden soll. Man sollte mit  diesem Wert
  1188.           sparsam umgehen,  meist reicht  der Wert  1, bei großen Fonts auch
  1189.           der Wert 2, da sonst das Zeichen besonders  auf dem  Bildschirm so
  1190.           sehr "verschmiert", daß es unleserlich wird.
  1191.  
  1192.  
  1193.      unsigned short ul_size;            (60)
  1194.  
  1195.           Beim Unterstreichen  wird eine Linie gezogen, die auf der Ausrich-
  1196.  
  1197.                                        19
  1198.  
  1199.           tungslinie "Zeichenunterkante" liegt.  Dieser  Wert  gibt  an, wie
  1200.           dick diese  Linie ist.  Auch hier reichen die Werte 1 oder 2 meist
  1201.           vollkommen aus. Das VDI legt die  Oberkante des  Unterstrichs (ich
  1202.           weiß nicht,  wie man  das richtig nennt) genau auf die Zeichenzel-
  1203.           lenunterkante und  zeichnet dann  eine ul_size  Pixel dicke Linie,
  1204.           die nach unten hin in wächst.
  1205.  
  1206.      unsigned short lighten;            (62)
  1207.  
  1208.           Um ein  Zeichen "hell" darzustellen, wird ebenfalls ein recht kom-
  1209.           plizierter, aber einfach zu implementierender Algorithmus benutzt.
  1210.           Wenn Sie ihn nicht verstehen sollten, dann macht das auch nichts.
  1211.           Zur  aufgehellten  Zeichenausgabe  wird eine Bitmaske benutzt, mit
  1212.           der die Zeichendaten ständig verknüpft  wird.  Dazu  wird  von der
  1213.           Zeichenzellenoberkante ausgehend  die erste Zeile mit lighten UND-
  1214.           verknüpft und das Ergebnis dargestellt. Dann  wird lighten  um ein
  1215.           Bit nach  links rotiert und die nächste Zeile mit diesem Wert UND-
  1216.           verknüpft. Dies  geht  solange,  bis  die Zeichenzellenunterkannte
  1217.           erreicht wordern ist.
  1218.           Die Voreinstellung  ist der  Wert 0x5555,  der bei einem schwarzen
  1219.           Zeichen ein Schachbrettmuster ergibt.  Dieser Wert  paßt immer und
  1220.           ergibt auch den besten Effekt.
  1221.           Nur  wenn  der  Wert  lighten aus einem regelmäßigen Bitmuster be-
  1222.           steht, ergeben sich "gutaussehende" helle Zeichen.  Bei sehr klei-
  1223.           nen Zeichen kann es dennoch passieren, daß es nicht mehr zu erken-
  1224.           nen ist, doch dies ist prinzipbedingt.
  1225.  
  1226.  
  1227.      unsigned short skew;               (64)
  1228.  
  1229.           Hier wird es noch komplizierter als  bei lighten.  Diese Maske be-
  1230.           stimmt,  wie  sehr  ein  Zeichen bei der Kursivschrift nach rechts
  1231.           geneigt sind. Das verwendete Verfahren, das  ebenfalls nicht doku-
  1232.           mentiert  ist,  ermöglicht  Neigungen  zwischen 0 und 45 Grad nach
  1233.           rechts.
  1234.           Die Berechnung beginnt bei der Zeichenzellenunterkante.  Ist Bit 0
  1235.           von skew  gesetzt, dann  wird die  auszugebende Zeile um ein Pixel
  1236.           nach rechts verschoben, bevor sie ausgegeben wird. Jetzt wird skew
  1237.           um ein  Bit nach  rechts rotiert und die Zeile über der vorherigen
  1238.           Zeile bearbeitet. Ist Bit 0 von skew gesetzt, so wird  diese Zeile
  1239.           um ein  Pixel gegenüber  der vorherigen Zeile versetzt ausgegeben.
  1240.           Das ganze wiederholt sich,  bis alle  Zeilen ausgegeben  sind. (So
  1241.           so!)
  1242.           Auch hierbei  ergeben nur gleichmäßige Bitmuster in skew eine sau-
  1243.           bere Neigung, der Standardwert 0x5555 ist immer eine gute Wahl, er
  1244.           ergibt eine  Neigung von  22,5 Grad.  Die maximale  Neigung von 45
  1245.           Grad kann  mit dem  Wert 0xFFFF  erreicht werden,  der Wert 0x0000
  1246.           erzeugt keine Neigung.
  1247.  
  1248.  
  1249.      unsigned short flags;              (66)
  1250.  
  1251.           Zur Zeit sind in diesem Wert nur die Bits 0 bis 3 benutzt:
  1252.  
  1253.           -    Bit 0  wird intern  vom VDI  verwendet. Ist  es gesetzt, dann
  1254.                gibt es an, ob  ein  Zeichensatz  momentan  der  aktuelle ist
  1255.                (durch vst_font ausgewählt).
  1256.           -    Ist Bit  1 gesetzt,  dann wird die Horizontale Offset Tabelle
  1257.                vom Font benutzt.
  1258.           -    Ist Bit 2 gesetzt, dann  liegt  der  Font  im Motorola-Format
  1259.  
  1260.                                        20
  1261.  
  1262.                vor.  Da  GEM  einst  auf  dem PC entstanden ist, wurden auch
  1263.                einige dort herrschende Konventionen mit auf  den Atari über-
  1264.                nommen. Auf  einem PC liegen unter anderem das High- und Low-
  1265.                Byte bei 16-Bit-Wörtern im  Gegensatz  zum  Atari  genau ver-
  1266.                tauscht vor; dies heißt allgemein "Intel-Format".
  1267.                Wenn ein  Font im  Intel-Format vorliegt,  muß er erst einmal
  1268.                ins Motorola-Format  umgewandelt werden,  damit das Atari-GEM
  1269.                wieder etwas  mit ihm  anfangen kann. Damit GDOS nun weiß, in
  1270.                welchem Format der Font vorliegt, fragt es dieses Bit ab.
  1271.           -    Bit 3 zeigt im gesetzten Zustand an, daß alle Zeichen im Font
  1272.                die gleiche Breite besitzen, also nicht proportional sind.
  1273.           -    Alle  anderen  Bits  sind  reserviert  für  Erweiterungen und
  1274.                müssen immer auf 0 gesetzt sein.
  1275.           Mit Bit 2 hat es so einiges auf sich. Schon bei der Abfrage dieses
  1276.           Bits beginnen die Probleme. Liegt der Font im Motorola-Format vor,
  1277.           so liegt Bit 2 von flags im Byte  67 relativ  zum Dateianfang. Bei
  1278.           einer Abfrage  von Bit  2 wird also auf Byte 67 zugegriffen. Liegt
  1279.           der Font aber im Intel-Format vor, dann sind ja High- und Low-Byte
  1280.           vertauscht, Bit  2 liegt  jetzt im  Byte 66  (in Worten: sechsund-
  1281.           sechszig). Um dieses Bit nun abzufragen, müßte man  bereits vorher
  1282.           wissen, in  welchem Format der Font vorliegt. Nur unter der Annah-
  1283.           me, daß Bit 10 des Flags  niemals benutzt  wird, ist  eine sichere
  1284.           Abfrage möglich.
  1285.           Aber abgesehen  davon kümmert  sich kaum  ein Fonteditor um dieses
  1286.           Bit. So sind mir bereits Fonts begegnet, die laut flags  im Intel-
  1287.           Format  vorliegen,  tatsächlich  aber  im Motorola-Format abgelegt
  1288.           sind, beispielsweise der Font "42nd street".
  1289.           Andere  Fonts  mischen  einfach  Intel-  und  Motorola-Format. Als
  1290.           Beispiel  sei  der  Font  "Gemini" (Filename: GEMINI.FNT; wenn ich
  1291.           bloß noch wüßte, woher ich den  hatte), der  anscheinend in mehre-
  1292.           ren Versionen  im Umlauf ist, genannt: Laut flags Motorola-Format,
  1293.           die Fontdaten ebenfalls im  Motorola-Format, die Zeichenbreitenta-
  1294.           belle dafür aber im Intel-Format.
  1295.           Die Dokumentationen  (wenn man das so nennen darf) zu GDOS schrei-
  1296.           ben vor, daß die Zeichendaten im gleichen Format  vorliegen müssen
  1297.           wie  der  Font  selbst,  doch  dies  ist (zumindest für den Atari)
  1298.           falsch (oder alle meine  Versuchfonts sind  falsch). Die Fontdaten
  1299.           liegen immer  im Motorola-Format  vor, egal, ob der Rest des Fonts
  1300.           im Intel-Format abgelegt ist oder nicht. Versuche bestätigen diese
  1301.           Annahme. Nichtsdestotrotz  gibt es  einige Fonts, die es besser zu
  1302.           wissen glauben.
  1303.           Fazit: Auf dieses Bit war bisher kaum Verlaß. Deshalb benutzt GEM-
  1304.           FONT komplizierte  Plausibilitätsalgorithmen, mit  denen das echte
  1305.           Format der  Tabellen ermittelt  wird, um  möglichst unabhängig vom
  1306.           Format-Bit zu sein. Lediglich beim Format der Fontdaten muß manch-
  1307.           mal manuell  nachgeholfen werden,  sollte einmal  ein Font geladen
  1308.           werden, dessen Zeichendaten tatsächlich im Intel-Format vorliegen.
  1309.           Es versteht sich von  selbst, daß  GEMFONT beim  Speichern auf ein
  1310.           korrektes Format der Fonts achtet.
  1311.  
  1312.  
  1313.      unsigned char *hor_table;          (68)
  1314.  
  1315.           Jedes Zeichen kann vor seiner Ausgabe noch einmal um eine bestimm-
  1316.           te Anzahl von Pixeln nach rechts  verschoben werden.  Dazu kann in
  1317.           dieser Tabelle  jedem Zeichen ein Wert zwischen 0 und 255 zugeord-
  1318.           net werden. Bisher nutzt  kein mir  bekannter Font  diese Möglich-
  1319.           keit, wahrscheinlich,  weil es  bisher keinen  Fonteditor gab, der
  1320.           dies konnte.
  1321.           Der Sinn dieser Funktion  scheint darin  zu liegen,  ein einfaches
  1322.  
  1323.                                        21
  1324.  
  1325.           Zeichenkerning (Unterschneiden  von zwei  benachbarten Zeichen) zu
  1326.           realisieren. Um dies zu verdeutlichen, sehen Sie sich die Buchsta-
  1327.           benkombination "Te"  an. Besonders  bei großen Zeichen klafft zwi-
  1328.           schen dem 'T' und  dem 'e'  eine unansehnliche  Lücke, die dadurch
  1329.           geschlossen  werden  könnte,  indem  man  das 'e' näher an das 'T'
  1330.           heranschiebt, Platz genug ist ja da. Bei GDOS kann jedoch  nur das
  1331.           linke Zeichen  um einen freien Wert nach rechts verschoben werden,
  1332.           als würde das 'T' an das 'e' herangeschoben  werden. Beide Zeichen
  1333.           überschneiden sich  zwar, ohne das es jedoch dabei zur Auslöschung
  1334.           eines Teils des rechten Zeichens kommt.
  1335.           Mit dieser Methode läßt sich aber nur ein einfaches Kerning reali-
  1336.           sieren, denn  das Kerning  ist bei den Buchstaben 'Te' ein anderer
  1337.           Wert als bei 'Tr'  oder 'TW'  etwa, und  genau dies  läßt sich mit
  1338.           dieser Methode  der konstanten Rechtsverschiebung nicht verwirkli-
  1339.           chen. GDOS wählt stets für  das  gerade  auszugebende  Zeichen ein
  1340.           festes Kerning,  ohne dabei  erst einen Blick auf das nächste Zei-
  1341.           chen zu werfen und dann in Abhängigkeit beider Zeichen das Kerning
  1342.           auszuwählen, so wie es sein sollte.
  1343.           Es scheint  zudem vom  jeweils aktuellen  Treiber (oder gas GDOS?)
  1344.           abhängig zu  sein,  ob  tatsächlich  der  horizontale  Offset auch
  1345.           berücksichtigt wird. Bei eigenen Versuchen unter NVDI waren jeden-
  1346.           falls keine Veränderungen zu erkennen.
  1347.           Wird keine Tabelle im Font genutzt, so zeigt dieser Zeiger auf den
  1348.           Anfang der nächsten benutzten Komponente (siehe auch Kapitel 4.2).
  1349.           Dieser und die  beiden  nachfolgenden  Zeiger  geben  die Position
  1350.           immer relativ zum Dateistart an.
  1351.           Diese Tabelle enthält insgesamt (last_ade - first_ade + 1) Einträ-
  1352.           ge, sofern sie denn benutzt wird. Der zu  dem Zeichencode  x gehö-
  1353.           rende Eintrag  findet sich  in (x - first_ade).ten Position in der
  1354.           Tabelle.
  1355.           Beispiel: last_ade = 32, Zeichen = "2" (Code 50), die Position des
  1356.           dazugehörigen  Zeichens  befindet  sich  dann  an  der  (50 - 32 =
  1357.           18).ten Position in der Tabelle.
  1358.           Wichtig: Die Numerierung der  Einträge beginnt  bei 0,  nicht etwa
  1359.           bei 1.
  1360.  
  1361.      unsigned short *off_table;         (72)
  1362.  
  1363.           Hier  wird  verzeichnet,  wie  breit jedes Zeichen ist. Dabei wird
  1364.           jedoch nicht einfach  in  jeden  Eintrag  die  Breite eingetragen.
  1365.           Stattdessen wird  die X-Koordinate,  bei der ein Zeichen im "Font-
  1366.           bild" anfängt  (siehe  Beschreibung  dat_table)  eingetragen, denn
  1367.           dies vereinfacht  VDI die Ausgabe mittels den Rasterkopierfunktio-
  1368.           nen erheblich. Die echte Breite eines Zeichens errechnet sich dann
  1369.           aus der  Differenz zwischen  der Startposition  des gesuchten Zei-
  1370.           chens und der  Startposition  des  unmittelbar  nachfolgenden Zei-
  1371.           chens im  "Fontbild". Daraus  ergibt sich, daß diese Tabelle einen
  1372.           Eintrag mehr enthält als Zeichen benutzt werden.
  1373.           Beispiel: Breite des Zeichens  mit  dem  Code  x  ergibt  sich aus
  1374.           ((Wert an  Position (x  + 1  - first_ade)) - (Wert an Position (x-
  1375.           first_ade))).
  1376.  
  1377.  
  1378.      unsigned short *dat_table;         (76)
  1379.  
  1380.           Dieser Zeiger  zeigt  auf  die  eigentlichen  Fontdaten. Erklärung
  1381.           folgt. Der  Begriff "Fontdaten"  wird in  der Anleitung für diesen
  1382.           Teil des Fonts gebraucht.
  1383.  
  1384.  
  1385.  
  1386.                                        22
  1387.  
  1388.      unsigned short form_width;         (80)
  1389.      unsigned short form_height;        (82)
  1390.           Stellen sie sich alle Zeichen eines Fonts hintereinander auf einen
  1391.           riesigen Bildschirm  ausgegeben vor. Genauso sind die Fontdaten im
  1392.           Font abgelegt, wie in einem Bild. form_width gibt dabei die Breite
  1393.           des  Bildes  in  Bytes  an  (nicht in Words wie manche behaupten).
  1394.           form_height gibt die Höhe des Bildes in Pixeln an. Die  Breite be-
  1395.           trägt immer ein Vielfaches von 2 Bytes, auch wenn dies nicht doku-
  1396.           mentiert ist. Sollte das Bild  nicht  genau  auf  einer Bytegrenze
  1397.           enden, dann  werden soviele leere Pixelspalten an das Fontbild an-
  1398.           gehängt, bis die Grenzen stimmen.
  1399.  
  1400.  
  1401.      struct font_hdr *next_font;        (84)
  1402.  
  1403.           Dieser Zeiger wird intern  vom VDI  benutzt. Die  Fonts werden als
  1404.           lineare Liste  organisiert, und  dieser Zeiger zeigt auf den näch-
  1405.           sten Font in der  Liste. In  der Fontdatei  sollte er  immer auf 0
  1406.           gesetzt sind.
  1407.  
  1408.      } FONT_HDR;
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.                                        23
  1450.  
  1451.      5. Das Hauptmenü
  1452.      Viele Dialogboxen  besitzen einen Button mit dem Text "Abbruch", "Ende"
  1453.      oder ähnlich. Damit kann die ausgewählte  Operation abgebrochen werden,
  1454.      so daß  der gleiche Zustand herrscht wie vor dem Aufruf des Dialogs. Da
  1455.      dies bei vielen Dialogen der Fall ist, wird  dies nicht  mehr gesondert
  1456.      erwähnt.
  1457.      Entsprechend  den  GEM-Konventionen  können  viele  Menüpunkte auch per
  1458.      Tastatur aktiviert werden, die  betreffenden Tastenkombination  sind in
  1459.      Klammern angegeben.  Drei Punkte  hinter einem  Menütitel bedeuten, daß
  1460.      nach der Aktivierung noch  mindestens eine  Dialogbox folgt,  bevor die
  1461.      eigentliche Aktion ausgelöst wird.
  1462.  
  1463.  
  1464.      5.1. Das Menü "GEMFONT"
  1465.  
  1466.      5.1.1. "Über GEMFONT..." (Control Z)
  1467.  
  1468.      Hier finden  sie allgemeine  Informationen über  GEMFONT, unter anderem
  1469.      die Versionsnummer und das Erstellungsdatum der Version, die sie benut-
  1470.      zen. Inoffizielle Versionen enthalten zur besseren Unterscheidung einen
  1471.      kleinen Buchstaben direkt hinter der Nummer, doch werden solche Versio-
  1472.      nen normalerweise nicht von mir in Umlauf gebracht.
  1473.      Bei Rückfragen bitte immer Versionsnummer- und datum angeben.
  1474.  
  1475.  
  1476.      5.2. Das Menü "Datei"
  1477.  
  1478.      5.2.1. "Neu anlegen..." (Control N)
  1479.  
  1480.      Mit dieser  Funktion können  Sie einen neuen Font anlegen. sofern nicht
  1481.      bereits sieben Fonts bearbeitet werden.
  1482.      GEMFONT fragt  Sie nach  der Größe  des größten  Zeichens innerhalb des
  1483.      Fonts. Diese  Angaben dienen  zum Einrichten der Editorpuffer für jedes
  1484.      Zeichen, damit  nur  soviel  Speicherplatz  verbraucht  wird,  wie auch
  1485.      (wahrscheinlich) benötigt  wird. Erfahrungsgemäß sollten Sie hier etwas
  1486.      großzügig sein. Sollten Sie sich doch  mal verschätzt  haben, so können
  1487.      Sie die Größe später nachträglich ändern.
  1488.  
  1489.  
  1490.      5.2.2. "Öffnen..." (Control O)
  1491.  
  1492.      Sie  laden  hiermit  einen  GDOS-Font,  den  Sie in der Dateiauswahlbox
  1493.      auswählen können. Existiert der  von  Ihnen  gewählte  Font  nicht oder
  1494.      sollte es  sich dabei nicht um einen GDOS-Font handeln, dann werden Sie
  1495.      darauf hingewiesen und die Funktion wird abgebrochen.
  1496.      GEMFONT versucht so weit wie möglich zu kontrollieren,  ob es  sich bei
  1497.      der ausgewählten Datei tatsächlich um einen GDOS-Font handelt. Da GDOS-
  1498.      Fonts aber keine  Magic-Numbers  besitzen,  ist  die  Überprüfung nicht
  1499.      komplett  sicher,  zumal  einige  ähnliche Zeichensatzformate ebenfalls
  1500.      die Endung "FNT" besitzen.  Deshalb sollten  Sie GEMFONT  keine Dateien
  1501.      unterschieben, die offensichtlich keine GDOS-Fonts sind.
  1502.      Da man  dem Filenamen  allgemein nur  schwer ansehen kann, welcher Font
  1503.      dahintersteckt, wird eine Informationsbox angezeigt, der  Sie die wich-
  1504.      tigsten  Informationen  des  Fonts  entnehmen  können. Dazu gehören der
  1505.      Name, die Größe in  Punkten, die  Breite des  breitesten Zeichens sowie
  1506.      die  Fontflags.  In  der  Box  "Konvertierung"  stellen Sie ein, ob die
  1507.      Zeichendaten konvertiert werden sollen.  Dies ist  erfahrungsgemäß aber
  1508.      nicht nötig,  weshalb Sie diese Option nur in Ausnahmefällen aktivieren
  1509.      sollten. Sagt Ihnen der Font zu,  dann können  Sie in  laden, ansonsten
  1510.      die Funktion abbrechen.
  1511.  
  1512.                                        24
  1513.  
  1514.  
  1515.      5.2.3. "Schließen..." (Control U)
  1516.  
  1517.      Es wird das aktuelle Editorfenster geschlossen.
  1518.  
  1519.  
  1520.      5.2.4. "Sichern" (Control S)
  1521.  
  1522.      Hier können  Sie einen  Font im GDOS-Format abspeichern. Falls der Font
  1523.      noch keinen Namen besitzt - das ist der Fall, wenn er neu angelegt oder
  1524.      importiert wurde,  dann werden  Sie nach  dem Dateinamen gefragt, unter
  1525.      dem der Font abgelegt werden soll. Ansonsten wird der Name benutzt, der
  1526.      in der Titelzeile des dazugehörigen Fensters steht.
  1527.      Sollte GEMFONT  feststellen, daß  die Ausrichtungslinien noch nicht po-
  1528.      sitioniert worden sind, dann werden Sie darauf hingewiesen und der Vor-
  1529.      gang abgebrochen. Dies ist deshalb wichtig, weil die Menge der zu spei-
  1530.      chernden Fontdaten durch die  Position Zeichenzellenunterkante vorgege-
  1531.      ben ist.  Das heißt  im Klartext, das alle Pixelinformationen, die sich
  1532.      unterhalb oder  Zeichenzellenunterkante oder  rechts von  der von Ihnen
  1533.      eingestellten  Breite  befinden,  nicht mitgespeichert werden. Und wenn
  1534.      die Zeichenzellenunterkante noch auf Position 0 liegt, dann  gehen alle
  1535.      Informationen verloren  (ist mir  selbst einige  Male passiert, deshalb
  1536.      diese Vorsichtsmaßnahme).
  1537.      Bei  der  Ermittlung  der  echten  Zeichenbreiten  wird  der  Parameter
  1538.      max_char_width korrekt gesetzt. Anschließend werden die Daten zum Font-
  1539.      bild zusammengesetzt. Die Flags  unter "Fontflags"  bestimmen dabei das
  1540.      Format  der   Daten.  Dabei   wird  im  Gegensatz  zu  einigen  anderen
  1541.      GDOS-Fonteditoren auf das korrekte Format aller Tabellen geachtet.
  1542.      Sollte aus irgendeinem Grund  ein Fehler  beim Speichern  auftreten, so
  1543.      werden Sie  darauf hingewiesen und der Vorgang abgebrochen. Die fehler-
  1544.      hafte Datei wird automatisch gelöscht.
  1545.      Noch ein Hinweis: GEMFONT setzt den  Font  vor  dem  Speichern  fix und
  1546.      fertig im  Speicher zusammen,  bevor er auf ein externes Medium kopiert
  1547.      wird. Dafür wird Speicherplatz gebraucht, der vorübergehend angefordert
  1548.      wird.  Deshalb  sollten  Sie  stets darauf achten, nicht den kompletten
  1549.      Speicher zu belegen, sonst hat GEMFONT keinen Platz  mehr für  den Auf-
  1550.      bau. Bei  der Erstellung  von Druckerfonts sollten mindestens 100 KByte
  1551.      frei sein (siehe "Speicherstatistik").
  1552.      Dieses  Verfahren  wurde  gewählt,  um  auch  in Multitaskingumgebungen
  1553.      flexibel zu sein, wo sich ja dauernd die Speicherlandschaft ändert. Das
  1554.      ständige Belegen eines Aufbauspeichers, der nur für kurze  Zeit genutzt
  1555.      wird, würde  anderen Applikationen nur Speicherplatz wegnehmen, den Sie
  1556.      vielleicht selbst besser brauchen könnten. Dies bringt aber  nur etwas,
  1557.      wenn auch die anderen Prozesse so kollegial sind.
  1558.  
  1559.  
  1560.      5.2.5. "Sichern unter..." (Control M)
  1561.  
  1562.      Hier geschieht das gleiche wie unter "Speichern", doch können Sie einen
  1563.      neuen Namen bestimmen, unter  dem der  Font abgelegt  werden soll. Nach
  1564.      dem erfolgreichen  Speichern werden Sie gefragt, ob Sie den eben ausge-
  1565.      wählten Dateinamen übernehmen oder den alten beibehalten wollen.
  1566.  
  1567.  
  1568.      5.2.6. "Sichern Metafont..." (Control H)
  1569.  
  1570.      Das Format  von GDOS-Metafontdateien  ist bis  heute nicht dokumentiert
  1571.      worden.  Eigene  Untersuchungen  an  den wenigen Metfontdateien, die es
  1572.      gibt, legen die Vermutung nahe, daß es sich  dabei um GDOS-Druckerfonts
  1573.      handelt, denen  aber die  eigentlichen Fontdaten  fehlen; sie enthalten
  1574.  
  1575.                                        25
  1576.  
  1577.      nur die eigentlichen Verwaltungsdaten.
  1578.      Wofür die Metafonts gut sein sollen, scheint auch  niemand so  genau zu
  1579.      wissen, jedenfalls ist sich die Literatur nicht einig, ob man überhaupt
  1580.      Metafonts braucht oder nicht. Wenn GDOS  für die  Bearbeitung von Meta-
  1581.      file Angaben  über die benutzten Fonts braucht, dann könnte es sich die
  1582.      auch direkt aus  den  Druckerfonts  selbst  beschaffen  (denke  ich mir
  1583.      zumindest).
  1584.      Wer genaueres  über den  Aufbau und  Sinn der  Metafonts weiß, dem wäre
  1585.      ich dankbar, wenn er sich mit mir in Verbindung setzen würde, damit ich
  1586.      vielleicht diese Funktion korrigieren kann.
  1587.      Kurz noch  zur Funktion  selbst: Nach der Angabe eines Dateinamens wird
  1588.      der momentan bearbeitete Font gespeichert, außer,  daß das  Fontbild in
  1589.      dieser Datei fehlt.
  1590.  
  1591.      5.2.7. "Abbrechen..." (Control D)
  1592.  
  1593.      Wollen Sie  alle gemachten Änderungen verwerfen, so können Sie mit die-
  1594.      sem Menüpunkt den aktuellen  Font  erneut  einladen.  Dies funktioniert
  1595.      aber nicht, wenn der Font neu angelegt oder importiert wurde.
  1596.  
  1597.  
  1598.      5.2.8. "Entfernen..." (Control L)
  1599.  
  1600.      Es wird  der Font,  zu dem  das aktuelle  Editorfenster gehört, aus dem
  1601.      Speicher entfernt und sein Platz  wieder  freigegeben.  Wurde  der Font
  1602.      geändert, so erfolgt vorher eine Sicherheitsabfrage.
  1603.  
  1604.  
  1605.      5.2.9. "Importieren..." (Control I)
  1606.  
  1607.      Diese Funktion  ist eines der Glanzlichter von GEMFONT. Hier können Sie
  1608.      Signum II-Fonts (Editor- und Druckerfonts) als auch Bitmap-Fonts impor-
  1609.      tieren. Damit eröffnet sich GDOS eine Vielzahl von teilweise professio-
  1610.      nellen Fonts aus der Signum-Welt.
  1611.      Da Signum wohl jedem Benutzer ein  Begriff ist,  erkläre ich  nur kurz,
  1612.      was Bitmap-Fonts  sind: Bitmap-Fonts  haben eine konstante Zeichengröße
  1613.      von 8x8 oder 8x16 Pixeln (Dateilänge 2048 oder 4096 Bytes), sie enthal-
  1614.      ten ausschließlich die Fontdaten aller 256 Zeichen. Der Editor "Tempus"
  1615.      oder die Textverarbeitung "Protext" können diese Zeichensätze benutzen,
  1616.      um den  Systemzeichensatz innerhalb  dieser Programme zu ersetzen. Bit-
  1617.      map-Fonts spielen für GDOS keine große Rolle, wurden  jedoch ihrer Ein-
  1618.      fachheit halber implementiert.
  1619.      Nach der  Anwahl dieser Funktion können Sie das Format angeben, das Sie
  1620.      importieren wollen. Sie haben die Auswahl  zwischen Signum-Editorfonts,
  1621.      Signum-Druckerfonts (egal  ob *.L30 oder *.P24) und den Bitmap-Fonts in
  1622.      zwei Größen. Haben Sie sich entschieden,  dann wählen  Sie die entspre-
  1623.      chende  Datei  aus.  GEMFONT  überprüft,  ob  die  Datei das gewünschte
  1624.      Format besitzt und reklamiert Ihre Wahl, wenn dies nicht der Fall ist.
  1625.      Bei Signum-Fonts wird die maximale  Größe  der  Zeichen  ermittelt. Die
  1626.      dabei ermittelten  Werte werden  Ihnen als  neue Größe der Editorpuffer
  1627.      vorgeschlagen. Diese Werte können Sie in den meisten Fällen übernehmen.
  1628.      Geben Sie  kleinere Werte  an, dann gehen die Daten, die außerhalb lie-
  1629.      gen, verloren. Wollen Sie den Font  vergrößern, dann  geben Sie dement-
  1630.      sprechend größere Werte an.
  1631.      Bei manchen  Fonts kommt  es vor, daß alle Zeichen recht tief unterhalb
  1632.      der Zeichenzellenoberkannte liegen. GEMFONT  fragt Sie  deshalb, ob Sie
  1633.      alle Zeichen  um einen  intern ermittelten  Wert höhersetzen wollen. Da
  1634.      dieses Verfahren nicht immer funktioniert, sollten Sie den  Font zuerst
  1635.      unversetzt laden  und erst dann entscheiden, ob Sie ihn erneut versetzt
  1636.      importieren wollen.  Bevor Sie  mit der  Arbeit beginnen, kontrollieren
  1637.  
  1638.                                        26
  1639.  
  1640.      Sie unbedingt alle diejenigen Zeichen, die besonders nahe an der oberen
  1641.      oder unteren Zeichenzellenkante enden, denn dort kann dann manchmal ein
  1642.      Stück verlorengegangen sein.
  1643.      Da Signum  II-Fonts nur  aus 127  Zeichen bestehen,  die zudem in einer
  1644.      anderen Reihenfolge als dem  ASCII-Format abgelegt  sind, verteilt GEM-
  1645.      FONT die  Zeichen so,  daß sie mit möglichst vielen ASCII-Zeichen über-
  1646.      einstimmen. Probleme gibt es dabei jedoch  nur mit  denjenigen Zeichen,
  1647.      die unter  Signum dem  externen Ziffernblock  zugeordnet werden können,
  1648.      dafür gibt es  keine  äquivalenten  ASCII-Positionen.  Folgende Tabelle
  1649.      zeigt genau, wohin welches Signum-Zeichen gelegt wird:
  1650.                                    S i g n u m - C o d e
  1651.  
  1652.                       x0   x1   x2   x3   x4   x5   x6   x7   x8   x9
  1653.                    +-------------------------------------------------
  1654.                 0x |   0  194  195  196  197  198  199  200  201  202
  1655.                 1x | 203  204  205  206  207  208  209  210  211   16
  1656.           A     2x |  17   18   19   20   21   22   23   24   25  212
  1657.           S     3x | 213  214  221   33   34   35   36   37   38   39
  1658.           C     4x |  40   41   42   43   44   45   46   47   48   49
  1659.           I     5x |  50   51   52   53   54   55   56   57   58   59
  1660.           I     6x |  60   61   62   63  129   65   66   67   68   69
  1661.           -     7x |  70   71   72   73   74   75   76   77   78   79
  1662.           C     8x |  80   81   82   83   84   85   86   87   88   89
  1663.           o     9x |  90  148  154  132   94   95   96   97   98   99
  1664.           d    10x | 100  101  102  103  104  105  106  107  108  109
  1665.           e    11x | 110  111  112  113  114  115  116  117  118  119
  1666.                12x | 120  121  122  153  124  142  126  158  ---  ---
  1667.  
  1668.  
  1669.      Leider müssen  viele Signum-Fonts  noch per Hand nachbearbeitet werden,
  1670.      häufig wegen der Zeichenbreiten, die bei manchen Fonts im Trunkenheits-
  1671.      zustand gesetzt  worden zu sein scheinen. Doch auch hierfür bietet GEM-
  1672.      FONT passende Werkzeuge.
  1673.      (Da ich selbst weder  Signum noch  Script besitzt,  fehlt mir  auch die
  1674.      offizielle Dokumentation  der Signum-Fontformate, die vielleicht in den
  1675.      Handbücherm zu diesen Programmen abgedruckt ist.  Die jetzigen Routinen
  1676.      basieren  auf  einem  Quicktip,  der  in  einer Ausgabe der ST-Computer
  1677.      erschienen ist. Für weitere Hinweise  bezüglich  der  Formate  wäre ich
  1678.      sehr dankbar).
  1679.      Der Import  der Bitmap-Fonts  gestaltet sich  problemlos, es sind dafür
  1680.      keine weiteren Angaben durch den Anwender notwendig.
  1681.  
  1682.  
  1683.      5.2.10. "Exportieren..."
  1684.  
  1685.      GEMFONT kann Fonts auch  wieder im  Bitmap-Format exportieren  (für Si-
  1686.      gnum-Fonts ist schließlich Skarabus zuständig). Dabei wählen Sie wieder
  1687.      die Größe der Fonts aus und  geben den  Dateinamen an.  Achten Sie dar-
  1688.      auf, daß alle die Pixel, die außerhalb der 8x8 bzw. 8x16-Grenze liegen,
  1689.      im Font verloren gehen.
  1690.  
  1691.  
  1692.      5.2.11. "Clipboard laden"
  1693.  
  1694.      Es soll ein Font aus dem Clipboard geladen  werden. Dazu  muß zum einen
  1695.      ein Font  im Klemmbrett  vorhanden sein  und zum  anderen überhaupt ein
  1696.      Klemmbrett existieren. Danach wird wie bei "Öffnen..." verfahren.
  1697.  
  1698.  
  1699.      5.2.12. "Clipboard speichern"
  1700.  
  1701.                                        27
  1702.  
  1703.  
  1704.      Ein Font soll ins Klemmbrett gespeichert  werden. Auch  hierbei muß der
  1705.      Zugriff  auf   das  Klemmbrett   möglich  sein.   Sonst  wird  wie  bei
  1706.      "Sichern..." verfahren.
  1707.      Achtung: Es werden  alle  Dateien,  die  sich  im  Klemmbrett befinden,
  1708.      vorher gelöscht!
  1709.  
  1710.  
  1711.      5.2.13. "Clipboard löschen"
  1712.  
  1713.      Nach der  Bestätigung einer  Sicherheitsabfrage werden  alle Dateien im
  1714.      Klemmbrett gelöscht.
  1715.  
  1716.  
  1717.      5.2.14. "Ende" (Control Q)
  1718.  
  1719.  
  1720.      Hier kann das Programm verlassen werden. Sollte sich  noch ein geänder-
  1721.      ter Font  im Speicher  befinden, so  erscheint eine Sicherheitsabfrage,
  1722.      die ihnen die Möglichkeit zum Abbruch gibt.
  1723.  
  1724.  
  1725.  
  1726.      5.3. Das Menü "Block"
  1727.  
  1728.      GEMFONT erlaubt das Markieren  eines rechteckigen  Teils eines bestimm-
  1729.      ten Zeichens.  Dieser Ausschnitt  wird "Block"  genannt und kann ausge-
  1730.      schnitten, kopiert oder gelöscht werden und auch zwischen  Fonts ausge-
  1731.      tauscht werden. Es kann jeweils nur ein Block zu einer Zeit existieren.
  1732.  
  1733.  
  1734.      5.3.1. "Blockanfang" (Control B)
  1735.  
  1736.      Die Maus  verwandelt sich  in ein Fadenkreuz, mit dem Sie auf den Punkt
  1737.      im Editorraster klicken  können,  an  dem  der  Anfangspunkt  des Block
  1738.      liegen soll.  An diesem Punkt erscheint dann als sichtbares Zeichen ein
  1739.      Diagonalkreuz, sofern er nicht gesetzt  ist.  Ein  Klick  außerhalb des
  1740.      Gitters bricht die Funktion ab.
  1741.  
  1742.  
  1743.      5.3.2. "Blockende" (Control K)
  1744.  
  1745.      Analog  zu  "Blockanfang"  wählen  Sie  den Endpunkt des Blocks aus. An
  1746.      allen vier Eckpunkten des Blocks erscheint dann ein  Diagonalkreuz, der
  1747.      Block ist  vollständig markiert.  Auch hier  bricht ein Klick außerhalb
  1748.      des Gitters die Funktion ab.
  1749.  
  1750.  
  1751.      5.3.3. "Alles auswählen" (Control A)
  1752.  
  1753.      Hier wird ein Block definiert, der die gesamte  Editormaske umfaßt. Auf
  1754.      diese Weise können schnell komplette Zeichen bearbeitet werden.
  1755.  
  1756.  
  1757.      5.3.4. "Ausschneiden" (Control X)
  1758.  
  1759.      Das durch  einen Block definierte Rechteck wird aus dem Zeichem, in der
  1760.      Block definiert wurde, entfernt  (d.h. ein  Teil des  Zeichens wird ge-
  1761.      löscht) und in einen internen Puffer kopiert.
  1762.      Diese Funktion  kann auch mit den Tasten Backspace und Delete ausgelöst
  1763.  
  1764.                                        28
  1765.  
  1766.      werden.
  1767.  
  1768.      5.3.5. "Kopieren" (Control C)
  1769.  
  1770.      Wie "Ausschneiden", doch das Gebiet, aus  dem der  Block ausgeschnitten
  1771.      wurde, wird nicht gelöscht.
  1772.  
  1773.  
  1774.      5.3.6. "Einfügen" (Control V)
  1775.  
  1776.      Der vorher  ausgeschnittene oder  kopierte Block kann in ein beliebiges
  1777.      Zeichen eines beliebigen Fonts wieder hineinkopiert werden. Dieser Vor-
  1778.      gang kann so oft wiederholt werden, bis ein neuer Block definiert wird.
  1779.      Die Maus  verwandelt sich die wieder in ein Fadenkreuz, mit der Sie die
  1780.      linke, obere Ecke angeben, an die  der Block  kopiert werden  soll. Die
  1781.      Art, wie  der Block  eingefügt wird,  hängt von der Einstellung "Block-
  1782.      kopiermodi..." ab.
  1783.  
  1784.  
  1785.      5.3.7. "Blockkopiermodi..."
  1786.  
  1787.      Das Einfügen des Blocks  kann  auf  verschiedene  Arten  geschehen. Der
  1788.      Block kann  ersetzend eingesetzt werden oder aber vor dem Einsetzen mit
  1789.      dem Zielgebiet verknüpft werden.
  1790.      Nach Anwählen dieses Menüpunkts erscheint ein Popup-Menü an der aktuel-
  1791.      len Mausposition, wo Sie den neuen Blockkopiermodus einstellen können.
  1792.  
  1793.  
  1794.  
  1795.      5.4. Das Menü "Puffer"
  1796.  
  1797.      Jeder Font  besitzt 10  frei verfügbare Puffer. Diese können vorüberge-
  1798.      hend beliebige Zeichen aufnehmen und wieder an beliebige Fontpositionen
  1799.      kopieren. Puffer  können zudem  geladen und gespeichert werden. Der Un-
  1800.      terschied zum Block besteht darin, daß Puffer nicht zwischen Fonts aus-
  1801.      getauscht werden  können (zumindest nicht direkt) und daß nur komplette
  1802.      Zeichen in Puffern abgelegt werden können.
  1803.  
  1804.  
  1805.      5.4.1. "Maske nach Puffer..." (Alternate P)
  1806.  
  1807.      Das aktuelle Zeichen wird komplett in einen der 10 Puffer, den sie aus-
  1808.      wählen können, kopiert.
  1809.  
  1810.  
  1811.      5.4.2. "Puffer nach Maske..." (Alternate M)
  1812.  
  1813.      Ein Zeichen  aus einem der 10 Puffer, den sie auswählen können, wird in
  1814.      den aktuellen  Zeichenpuffer kopiert.  Dabei wird  immer überlagerd ko-
  1815.      piert, die  Blockkopiermodi wirken  sich nicht auf die Pufferfunktionen
  1816.      aus.
  1817.  
  1818.  
  1819.      5.4.3. "Puffer speichern..." (Alternate U)
  1820.  
  1821.      Ein einzelner Puffer kann  auch  gespeichert  werden.  Wählen  Sie dazu
  1822.      einen Puffer sowie den Dateinamen aus, unter dem er abgespeichert wird.
  1823.      Die Pufferdatei  sollte immer  die Endung  "*.GPU" tragen.  In sie wird
  1824.      neben ein paar Verwaltungsinformationen nur die Fontdaten geschrieben.
  1825.  
  1826.  
  1827.                                        29
  1828.  
  1829.      5.4.4. "Puffer laden..." (Alternate O)
  1830.  
  1831.      Ein gespeicherter Puffer wird eingeladen. Dabei kann der Puffer auch in
  1832.      andere Fonts außer demjenigen, aus dem  er heraus  abgespeichert wurde,
  1833.      geladen werden.  Sollte das Zeichen im Puffer zu groß sein, so wird nur
  1834.      der passende Teil kopiert.
  1835.      Da man auch dem  Dateinamen  der  Pufferdatei  nicht  ansieht,  was sie
  1836.      beinhaltet, zeigt  eine Informationsbox  die wichtigsten Daten des Puf-
  1837.      fers an. Darunter fallen die Zeichenausmaße  sowie der  Name des Fonts,
  1838.      aus dem  er ausgeschnitten  wurde. Sagt  Ihnen der Puffer zu, so können
  1839.      Sie ihn anschließend laden.
  1840.  
  1841.  
  1842.      5.5. Das Menü "Parameter..."
  1843.  
  1844.  
  1845.      5.5.1. "Speicherstatistik..."
  1846.  
  1847.      Hier können Sie sich  einen Überblick  über den  aktuellen Speicherver-
  1848.      brauch verschaffen. Dabei werden alle sieben Fonts durch ihren Dateina-
  1849.      men angezeigt. Dahinter wird  angezeigt, wieviel  Speicher der  Font im
  1850.      Editor  verbraucht,  diese  Anzeige  ist  keineswegs  identisch mit der
  1851.      Größe, die der Font  einmal in  gespeicherter Form  einnehmen wird! Das
  1852.      Kästchen vor  dem Dateinamen  ist durchkreuzt, wenn der Font inzwischen
  1853.      verändert wurde. Ist ein Fontplatz im Speicher nicht  belegt, dann wird
  1854.      die dazugehörige  Zeile grau dargestellt. Der zweite Teil der Dialogbox
  1855.      zeigt den momentan freien Betriebssystemspeicher an.
  1856.  
  1857.  
  1858.      5.5.2. "Parameter einstellen..." (Alternate Q)
  1859.  
  1860.      GEMFONT erlaubt das Einstellen zahlreicher Parameter:
  1861.  
  1862.      "Grow-/Shrink-/Move-Boxes anzeigen"
  1863.  
  1864.           Die Geisterrahmen, die das  Öffnen, Verschieben  und Schließen von
  1865.           Fenstern  sowie  von  Dialogen begleiten, können hier abgeschaltet
  1866.           werden. Sie sehen zwar effektvoll aus,  halten aber  erfahrene An-
  1867.           wender meist zulange auf.
  1868.  
  1869.      "Immer *.FNT als Endung voraussetzen"
  1870.  
  1871.           GEMFONT  kann  angewiesen  werden,  statt  der  Endung "*.FNT" die
  1872.           Endung "*.*" in der Dateiauswahlbox vorauszusetzen.  Eine Verände-
  1873.           rung dieser Einstellung ist meist unnötig.
  1874.  
  1875.      "Keine Zusatzmeldungen ausgeben"
  1876.  
  1877.           Einige  Aktionen  werden  von zusätzlichen Hinweisen zur Bedienung
  1878.           oder Warnungen begleitet (z.B. alle Aktionen, die die  Maus in ein
  1879.           Fadenkreuz  zur  Auswahl  verwandeln).  Diese können jedoch lästig
  1880.           werden und hier abgeschaltet werden.
  1881.  
  1882.      "Klingelzeichen bei Alertbox"
  1883.  
  1884.           Als zusätzliches akustisches Signal kann jede  Alert-Box von einem
  1885.           "Ping"  begleitet  werden.  Beim Abschluß längerdauernden Aktionen
  1886.           wird ebenfalls ein "Ping" ausgegeben.
  1887.  
  1888.      "Vsync() bei der Ausgabe benutzen"
  1889.  
  1890.                                        30
  1891.  
  1892.           Bei schnellen GEM-Ausgaben kann  es zu  optischen Unregelmäßigkei-
  1893.           ten wie  Flackern kommen.  Durch Einschalten der Vsync-Option kann
  1894.           dies weitestgehend  unterbunden  werden.  Sollte  es  Probleme mit
  1895.           Grafikkarten geben, dann schalten Sie diese Option ab.
  1896.  
  1897.      "Fenster dürfen negativen Rand benutzen"
  1898.  
  1899.           Fenster können  zusätzlichen Arbeitsplatz gewinnen, wenn sie ihren
  1900.           linken Rand  im negativen  Koordinantenbereich ablegen (beispiels-
  1901.           weise TEMPUS).  Dieses Feature funktioniert zwar, ist jedoch nicht
  1902.           dokumentiert. Soll es unterbunden  werden, so  ist dieser Schalter
  1903.           zu aktivieren.
  1904.  
  1905.      "Langsame Dialoge auslagern"
  1906.  
  1907.           Das  Unterbringen  von  Dialogen  in  Fensters ermöglicht zwar den
  1908.           Mehrprogrammbetrieb, bremst aber dafür  den Aufbau  und das Redraw
  1909.           der  Dialoge  merklich  ab,  da  ein komplizierteres Verfahren zum
  1910.           Erneuern der Darstellung nötig  ist (u.a.  muß berücksichtigt wer-
  1911.           den, ob  Teile des  Dialogs von anderen Fenstern verdeckt werden.)
  1912.           Wer in einer  Einprogrammumgebung  arbeitet  oder  es verschmerzen
  1913.           kann,  wenn  GEMFONT  einmal  für  einige Sekunden andere Prozesse
  1914.           komplett blockiert, der kann  GEMFONT anweisen,  besonders zeitin-
  1915.           tensive Dialoge  normal, also  nicht in  Fenstern darzustellen. In
  1916.           diesem Fall  kann  die  normale  und  sehr  schnelle Redrawroutine
  1917.           verwendet werden.
  1918.  
  1919.      "Vorgabe 'L30' statt 'P24' bei Import"
  1920.  
  1921.           Wer  vorrangig  Signum-Laserdruckerfonts importiert, kann einstel-
  1922.           len, das  statt der  Endung "*.P24"  (360 DPI)  die Endung "*.L30"
  1923.           (300 DPI) zur neuen Vorgabe werden soll.
  1924.  
  1925.      "Zusätzliche Zeilenvorschübe"
  1926.  
  1927.           Bei der Testausgabe auf einem Drucker führen manche Druckertreiber
  1928.           einen oder gar mehrere  Seitenvorschübe  aus  (beispielsweise mein
  1929.           NECP.SYS-Treiber aus  dem FontGDOS-Paket,  der gleich zwei Seiten-
  1930.           vorschübe veranläßt). Um das Papier jedoch platzsparend zu nutzen,
  1931.           spannen Sie  in diesem  Fall das Papier wieder an die Anfangsposi-
  1932.           tion ein. GEMFONT führt  dann selbständig  soviele Zeilenvorschübe
  1933.           aus, daß unterhalb der letzen Position weitergedruckt wird.
  1934.           Führt  Ihr  Druckertreiber  jedoch keinen Seitenvorschub aus, dann
  1935.           deaktivieren Sie diesen Schalter.
  1936.  
  1937.      "Drucker-Reset vor Ausgabe ausführen"
  1938.  
  1939.           Manche Druckertreiber stellen die von ihnen verstellten Druckerpa-
  1940.           rameter  nicht  mehr  zurück  (dazu  zählt ebenfalls der NECP.SYS-
  1941.           Treiber aus dem FontGDOS-Paket). In einem  solchen Fall  kann GEM-
  1942.           FONT vor  jeder Druckerausgabe einen Reset auslösen. Dazu wird die
  1943.           Kombination "ESC @" verschickt, die  auf  allen  Druckern  den ge-
  1944.           wünschten Effekt haben sollte.
  1945.  
  1946.      "Druckernummer"
  1947.  
  1948.           Die  Druckernummer,  unter  der  GDOS den Drucker ansprechen soll,
  1949.           kann mit einem Slider  zwischen 21  und 30  eingestellt werden. So
  1950.           können mehrere Druckertreiber gleichzeitig installiert und benutzt
  1951.           werden.
  1952.  
  1953.                                        31
  1954.  
  1955.      "Klemmbrettüberwachung"
  1956.  
  1957.           GEMFONT kontrolliert in  regelmäßigen  Abständen,  ob  eine andere
  1958.           Applikation einen  Font im Klemmbrett abgelegt hat. In welchen In-
  1959.           tervallen dies erfolgen soll,  kann hier  eingestellt werden. Beim
  1960.           Diskettenbetrieb sollte  die Überprüfung  komplett abgestellt wer-
  1961.           den.
  1962.  
  1963.  
  1964.      5.5.3. "Parameter speichern..."
  1965.  
  1966.      Die Parameter können unter dem Namen "GEMFONT.INF" an dem Ort abgespei-
  1967.      chert werden,  von dem aus auch GEMFONT gestartet wurde. Findet GEMFONT
  1968.      diesen Ort nicht, so müssen Sie  ihn  selbst  vorgeben.  Geben  Sie als
  1969.      Dateinamen immer "GEMFONT.INF" an. (Für Fortgeschrittene: GEMFONT sucht
  1970.      seine Infodatei mittels shel_find.)
  1971.  
  1972.  
  1973.      5.6. Das Menü "Fonts"
  1974.  
  1975.      5.6.1. "Öffne xxxxxxxx.xxx" (Control 1 bis 7)
  1976.  
  1977.      Wenn ein Fenster geschlossen wurde, so  kann es  mit diesem Menüpunkten
  1978.      wieder geöffnet  werden. Die  x's werden dabei durch den Dateinamen des
  1979.      Fonts ersetzt. Beachten Sie dabei, daß pro Font nur ein  Fenster geöff-
  1980.      net werden kann.
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.                                        32
  2017.  
  2018.      6. Das Editorfenstermenü
  2019.      Die hier  besprochenen Funktionen  sind in ihrer Wirkung ausschließlich
  2020.      auf den Font, zu dem dieses  Editormenü gehört,  beschränkt. Einige der
  2021.      Funktionen verlangen  explizite Koordinatenangaben. In diesem Fall wird
  2022.      die Maus in ein Zielkreuz verwandelt, mit dem Sie dann das Pixel aussu-
  2023.      chen, das  die gewünschten Koordinaten besitzt. Ein Klick außerhalb des
  2024.      Editorrasters wird von GEMFONT als Aufforderung  zum Abbruch  der Funk-
  2025.      tion interpretiert.  Bei der  Beschreibung wird nicht mehr jedesmal auf
  2026.      diesen Umstand hingewiesen.
  2027.      Auch hier gilt, daß  nahezu  alle  Dialogboxen  eine Abbruchmöglichkeit
  2028.      besitzen.  In  diesem  Fall  werden  die von Ihnen gemachten Änderungen
  2029.      innerhalb des Dialogs nicht übernommen.
  2030.      Funktionen, die sich auf den ganzen Zeichensatz auswirken, beeinflussen
  2031.      nur alle  diejenigen Zeichen,  die zwischen first_ade und last_ade lie-
  2032.      gen.
  2033.      Für viele  Funktionen gilt:  die Beschreibung  klingt komplizierter als
  2034.      die Wirklichkeit.  Deshalb sollten  Sie mit  allen Funktionen ein wenig
  2035.      spielen, um ihre Funktionsweise zu verstehen.
  2036.  
  2037.  
  2038.      6.1. Das Menü "GEMFONT"
  2039.  
  2040.      6.1.1. "Über GEMFONT..."
  2041.  
  2042.      Dieser Menüpunkt ist identisch mit dem des Hauptmenüs.
  2043.  
  2044.  
  2045.      6.2. Das Menü "Zeichen"
  2046.  
  2047.      6.2.1. "Auswahl..." (Funktionstaste 1)
  2048.  
  2049.      Hier können Sie das Zeichen auswählen, das Sie  bearbeiten wollen. GEM-
  2050.      FONT bietet  Ihnen drei verschiedene Möglichkeiten, ein bestimmtes Zei-
  2051.      chen auszuwählen:
  2052.  
  2053.      -    Mit dem  Slider können  Sie alle  erlaubten Zeichencodes anwählen.
  2054.           Dabei wird auf die first_ade und last_ade geachtet.
  2055.      -    Sie können  das Zeichen  direkt per  Tastatur eingeben. Damit sind
  2056.           jedoch nicht alle Zeichencodes erreichbar.
  2057.      -    Mit "Vorheriges" bzw. "Nachfolgendes" können Sie  das Zeichen, das
  2058.           unmittelbar vor bzw. nach dem aktuellen Zeichen liegt, auswählen.
  2059.  
  2060.      Bei  der  Auswahl  ist  folgendes  zu beachten: Wenn ein Zeichen direkt
  2061.      eingeben wird, so wird dessen Code als neues aktuelles Zeichen betrach-
  2062.      tet (außer bei "Abbruch"). Die direkte Zeicheneingabe hat dabei Vorrang
  2063.      vor der Sliderauswahl. Wurde  ein  Zeichen  direkt  eingegeben  und die
  2064.      Button  "Vorheriges"  oder  "Nachfolgendes"  aktiviert,  dann haben sie
  2065.      keine Wirkung auf den Code des direkt eingegebenen Zeichens. Ist dieses
  2066.      Feld leer,  dann bezieht sich die Wirkung der Buttons auf das bisherige
  2067.      aktuelle Zeichen (Wenn Sie es erst mal verstanden haben, werden Sie die
  2068.      Effektivität dieser Auswahl festtellen.)
  2069.  
  2070.  
  2071.      6.2.2. "Breite" (Funktionstaste 2)
  2072.  
  2073.      Hier stellen  Sie mit  dem Fadenkreuz die neue Breite des Zeichens ein.
  2074.      Klicken Sie dabei auf diejenige Spalte, die als  letzte benutzte Spalte
  2075.      gelten soll.  Diese Spalte  und die  links von dieser liegenden gehören
  2076.      dann zum benutzten Teil des Zeichen. Da mit dieser Methode  die Auswahl
  2077.      der Zeichenbreite  0 nicht  möglich ist,  muß in diesem Fall zusätzlich
  2078.  
  2079.                                        33
  2080.  
  2081.      beim Mausklick eine der  Shift-Tasten gedrückt  werden. In  diesem Fall
  2082.      wird  die  Breite  auf  0  gesetzt,  egal in welche Spalte Sie geklickt
  2083.      haben.
  2084.  
  2085.      6.2.3. "Hor. Verschiebung..." (Alternate V)
  2086.  
  2087.      Das Einstellen des horizontalen Offsets eines  Zeichens geschieht hier.
  2088.      Standardmäßig besitzt  jedes Zeichen die Verschiebung 0. Insgesamt sind
  2089.      nur die Werte 0 bis einschließlich 255 erlaubt.
  2090.  
  2091.  
  2092.      6.2.4. "Zentrieren..." (Funktionstaste 7)
  2093.  
  2094.      Das aktuelle Zeichen  wird  zwischen  dem  linken  Rand  und derjenigen
  2095.      Spalte, die Sie mit der Funktion "Breite" eingestellt haben, horizontal
  2096.      zentriert. Diese Funktion ist wichtig bei Ziffern, die alle die gleiche
  2097.      Breite besitzen  müssen, da sonst ein Tabellensatz unmöglich ist. (Vie-
  2098.      len Signum-Fonts ist dies trotzdem neu.)
  2099.  
  2100.  
  2101.      6.2.5. "Ausmaß anpassen..." (Funktionstaste 8)
  2102.  
  2103.      Hier können die Ränder  aller Zeichen  neu eingestellt  werden. GEMFONT
  2104.      kann für  Sie automatisch  die Zeichenober-  und unterkanten ermitteln.
  2105.      Dazu wird einfach die letzte oberste  und unterste  benutzte Pixelzeile
  2106.      gesucht. (Praktisch bei importierten Fonts.)
  2107.      Wenn Sie  einen Wert in die editierbaren Felder eingeben, dann positio-
  2108.      niert GEMFONT alle  Zeichen  so,  daß  sie  die  von  Ihnen vorgegebene
  2109.      Anzahl von  freien Pixelspalten  auf der rechten/linken Seite besitzen.
  2110.      Diese Funktionen werden dann aktiviert, wenn Sie einen Wert in ein Feld
  2111.      eintragen. Soll  die Funktion  nicht ausgeführt werden, dann muß dieses
  2112.      Feld leer sein. Die von Ihnen eingestellte Breite der einzelnen Zeichen
  2113.      wird automatisch angepaßt.
  2114.      Die  Funktion  "Ziffernbreiten  anpassen"  ermittelt  die größte Breite
  2115.      aller Ziffern, paßt die Breite aller Ziffern an den gefundenen Maximal-
  2116.      wert an und zentriert anschließend alle Ziffern horizontal.
  2117.      Die  Anpassung  der  Breite  ist besonders bei vielen Signum-Fonts sehr
  2118.      hilfreich, eine  anschließende Überprüfung  und Korrektur  von Hand ist
  2119.      dennoch nötig.
  2120.  
  2121.  
  2122.      6.2.6. "Werkzeuge..." (Funktionstaste 3)
  2123.  
  2124.      An dieser  Stelle finden Sie in einem RaveUp-Menü, das an der aktuellen
  2125.      Mausposition erscheint, eine Auswahl von nützlichen Zeichenfunktionen.
  2126.  
  2127.      "Linie"
  2128.  
  2129.           Nach der  Angabe  von  zwei  Koordinatenpunkten  wird  eine durch-
  2130.           gehende Linie gezogen.
  2131.  
  2132.      "Kreis"
  2133.  
  2134.           Als erstes  gegen Sie  den Mittelpunkt  des Kreises an, der zweite
  2135.           von Ihnen zu setzende Punkt gibt  den  Radius  an,  der  Rand wird
  2136.           durch diesen Punkt verlaufen.
  2137.           Genaugenommen  wird  mit  dem  zweiten  Punkt  nur  der Radius des
  2138.           Kreis(-segmentes) bestimmt, so daß seine Richtung  vom Mittelpunkt
  2139.           aus betrachtet egal ist.
  2140.  
  2141.  
  2142.                                        34
  2143.  
  2144.      "Rechteck"
  2145.           Nach der  Angabe der  Koordinaten von  zwei diagonal gegenüberlie-
  2146.           genden Punkten eines Rechtecks wird ein  ausgefülltes Rechteck ge-
  2147.           zeichnet.
  2148.  
  2149.      "Rand"
  2150.  
  2151.           Wie "Rechteck", aber es wird nur der Rand gezeichnet.
  2152.  
  2153.      "Füllen"
  2154.  
  2155.           Geben Sie  einen Punkt  innerhalb einer  Umrandung an, die gefüllt
  2156.           werden soll.
  2157.  
  2158.      "Umrandung"
  2159.  
  2160.           Von dem Zeichen wird  nur ein  es umgebender  Rand gezeichnet. Die
  2161.           Ausmaße des Zeichens wachsen in alle Richtungen um ein Pixel.
  2162.  
  2163.      "Aushöhlen"
  2164.  
  2165.           Wie "Umrandung",  doch von dem Zeichen bleibt nur der Rand stehen.
  2166.           Die Ausmaße verändern sich nicht.
  2167.  
  2168.      "1. Quadrant" bis "4. Quadrant"
  2169.  
  2170.           Wie "Kreis", aber es wird  jeweils  nur  ein  Kreisviertel  in dem
  2171.           gewählten Quadrant gezeichnet.
  2172.  
  2173.      "Bogen oben/unten/rechts/links"
  2174.  
  2175.           Wie "Kreis",  aber es  wird in der angegebenen Richtung vom Kreis-
  2176.           mittelpunkt aus ein Halbkreis gezeichnet.
  2177.  
  2178.  
  2179.      6.2.7. "Schieben/Rotieren..." (Funktionstaste 4)
  2180.  
  2181.      Zeichen können um einen beliebigen Wert innerhalb ihrer  Maske verscho-
  2182.      ben bzw.  rotiert werden. Geben Sie dazu die Verschiebe-/Rotierrichtung
  2183.      sowie die Anzahl der Pixel an,  um die  verschoben/rotiert werden soll.
  2184.      Ein leeres  Wertfeld wird  mit dem  Wert 1 gleichgesetzt. Beim Schieben
  2185.      gehen Pixel, die über den Rand geschoben werden verloren, beim Rotieren
  2186.      erscheinen sie hingegen wieder auf der gegenüberliegenden Seite.
  2187.  
  2188.  
  2189.      6.2.8. "Spiegeln/Drehen..." (Funktionstaste 5)
  2190.  
  2191.      Zeichen  können  an  ihrer  X-  oder  Y-Achse  gespiegelt werden. Zudem
  2192.      können Sie um 90, 180 und 270 Grad in beide  Richtungen gedreht werden.
  2193.      Bei Drehungen  um 90  bzw. 270  Grad können  Pixel verloren gehen, wenn
  2194.      die Breite des Rasters  ungleich dessen  Höhe ist.  Die Drehung  um 180
  2195.      Grad ist ein Synonym für die Spiegelung an der X-Achse.
  2196.  
  2197.  
  2198.      6.2.9. "Stauchen/Strecken..." (Funktionstaste 6)
  2199.  
  2200.      Ein Zeichen  kann sowohl  vergrößert als auch verkleinert werden. Geben
  2201.      Sie dabei an, ob in horizontaler, vertikaler oder  in beiden Richtungen
  2202.      gestreckt/gestaucht werden  soll. Der  von Ihnen  eingegebene Wert gibt
  2203.      das Verhältnis der Größenänderung in Prozent an (Beispiel:  Strecken um
  2204.  
  2205.                                        35
  2206.  
  2207.      den Faktor  2: 2 * 100 = 200, Stauchen um den Faktor 4: (1 / 4) * 100 =
  2208.      0.25 *  100 =  25). Es  können auch  alle Zeichen  um die eingestellten
  2209.      Parameter vergößert/verkleinert werden.
  2210.      Seit Version  1.10 werden  die Vergrößerung  und Verkleinerung von zwei
  2211.      getrennten Algorithmen behandelt, die jeder für sich neu entwickelt und
  2212.      extrem optimiert  wurde. Im  Gegensatz zum alten Algorithmus konnte die
  2213.      Anzahl der Fließkommaoperationen  auf  einen  Minimum  gedrückt werden,
  2214.      innerhalb der  notwendigen Schleifen  tauchen nur noch elementare Inte-
  2215.      geroperationen auf, was auch der Grund  für die Geschwindigkeitssteige-
  2216.      rung um den Faktor 10 bis 15 ist.
  2217.      Der anzugebende Schwellenfaktor wirkt sich nur bei Verkleinerungen aus:
  2218.      es wird errechnet, wieviele Pixel aus  dem Quellraster  nach einer Ver-
  2219.      kleinerung auf den gleichen Punkt im Zielraster fallen, die betroffenen
  2220.      Pixel aus dem Quellraster werden zu einem logischen Bildblock zusammen-
  2221.      gefaßt.  Anschließend  wird  das  Verhältnis  der tatsächlich gesetzten
  2222.      Punkte in  einem solchen  Bildblock zu  der Anzahl  der gesamten Punkte
  2223.      darin berechnet, der sich ergebende Koeffizient wird mit dem Schwellen-
  2224.      wert verglichen, wird er überschritten, dann wird der  Punkt im Zielra-
  2225.      ster gesetzt, sonst nicht.
  2226.      Ein Schwellenwert von 50 Prozent ist in den meisten Fällen ausreichend,
  2227.      doch bei  starker Verkleinerung  dünnen die  Zeichen zu  stark aus, der
  2228.      Schwellenwert ist hier zu hoch. In solchen Fällen sollte man ihn auf 40
  2229.      oder gar 30 Prozent absenken.
  2230.      Bei Vergrößerungen stellt sich dieses Problem nicht, da  in keinem Fall
  2231.      zwei Punkte  aus dem Quellraster auf einen gleichen Punkt im Zielraster
  2232.      fallen können.
  2233.      Die Aktion kann durch Drücken einer Shift-Taste abgebrochen werden, die
  2234.      bereits  veränderten  Zeichen  werden  nicht  in ihren Ursprungszustand
  2235.      zurückversetzt.
  2236.  
  2237.      6.2.10. "Verfetten"
  2238.  
  2239.      Hier kann das aktuelle Zeichen horizontal oder vertikal  um den  Wert 1
  2240.      verfettet werden. Der Effekt ist der gleiche wie bei thicken.
  2241.  
  2242.  
  2243.      6.2.11. "Komplett löschen" (Alternate L)
  2244.  
  2245.      Die  Zeichenmaske  wird  nach Bestätigung einer Sicherheitsabfrage kom-
  2246.      plett gelöscht.
  2247.  
  2248.  
  2249.      6.2.12. "Zeichen aufräumen"
  2250.  
  2251.      Bei allen Zeichen werden diejenigen Pixel,  die außerhalb  der Zeichen-
  2252.      zellenunterkante bzw.  der Zeichenbreite  liegen, gelöscht. Zeichen, in
  2253.      denen kein Pixel gesetzt ist, wird  die Breite  0 zugewiesen (Ausnahme:
  2254.      das Leerzeichen (Code 32)).
  2255.  
  2256.  
  2257.  
  2258.      6.3. Das Menü "Editor"
  2259.  
  2260.      6.3.1. "Editormaskengröße..." (Alternate C)
  2261.  
  2262.      Die von  Ihnen gewählte  Größe der  Editorpuffer kann hier nachträglich
  2263.      geändert werden. Dazu muß aber noch mindestens ein  Fontplatz unbenutzt
  2264.      sein. Bei  Verkleinerung der  Größe gehen  die überstehenden Pixel ohne
  2265.      Warnung verloren.
  2266.  
  2267.  
  2268.                                        36
  2269.  
  2270.      6.3.2. "Editorrastergröße..." (Alternate R)
  2271.  
  2272.      Die Größe des Editorrasters  kann getrennt  für die  Spalten und Zeilen
  2273.      eingestellt werden. Vorgabe sind dabei die Breite des Systemzeichensat-
  2274.      zes. Kleine Werte verschaffen einen guten  Überblick, bremsen  aber den
  2275.      Bildschirmaufbau.
  2276.  
  2277.  
  2278.      6.3.3. "Hilfspunkt setzen" (Funktionstaste 9)
  2279.  
  2280.      Zur besseren  Orientierung beim  Entwurf von  Zeichen können  bis zu 32
  2281.      Hilfspunte an frei wählbaren  Punkten des  Fonts gesetzt  werden. Diese
  2282.      erscheinen in  grauer Rasterung,  haben aber sonst keine Auswirkung auf
  2283.      den Font.
  2284.      Zum Setzen eines Hilfspunkt  wählen Sie  einfach den  gewünschten Punkt
  2285.      aus.
  2286.  
  2287.  
  2288.      6.3.4. "Hilfspunkt löschen" (Alternate W)
  2289.  
  2290.      Wollen Sie  einen Hilfspunkt  wieder entfernen, dann können Sie die mit
  2291.      dieser Funktion tun. Klicken Sie den  zu löschenden  Hilfspunkt einfach
  2292.      ein.
  2293.  
  2294.  
  2295.      6.3.5. "Alle Punkte löschen"
  2296.  
  2297.      Nach Bestätigung  einer Sicherheitsabfrage werden alle Hilfspunkte gel-
  2298.      öscht.
  2299.  
  2300.  
  2301.      6.3.6. "Änderungen zurücknehmen" (UNDO)
  2302.  
  2303.      Wenn Sie ein neues Zeichen auswählen, dann wird  dieses Zeichen zusätz-
  2304.      lich in  einen internen  Puffer kopiert, bevor Sie es verändern können.
  2305.      Wenn Sie Veränderungen  gemacht  haben,  diese  aber  wieder rückgängig
  2306.      machen wollen,  dann können  Sie dies mit dieser Funktion tun. Wenn Sie
  2307.      ein anderes Zeichen auswählen, dann werden alle Veränderungen  am alten
  2308.      Zeichen übernommen, eine Rücknahme ist nicht mehr möglich.
  2309.  
  2310.  
  2311.      6.3.7. "Undopuffer aktualisieren" (Control UNDO)
  2312.  
  2313.      Diese Funktion  finden Sie  nicht im  Menü, da sie nur selten gebraucht
  2314.      wird. Das  aktuelle Zeichen  wird mit  dieser Funktion  zu (fast) jedem
  2315.      beliebigem Zeitpunkt in den internen Puffer kopiert. Ein Druck auf Undo
  2316.      holt dann wieder genau diese  Kopie  wieder  zurück,  sofern  Sie nicht
  2317.      inzwischen ein  anderes Zeichen ausgewählt haben. Das manuelle Erneuern
  2318.      kann bei bestimmten schwerwiegenden  Veränderungen als  Sicherung nötig
  2319.      sein.
  2320.  
  2321.  
  2322.      6.4. Das Menü "Fontheader"
  2323.  
  2324.      6.4.1. "Zeichenextrema..." (Alternate Z)
  2325.  
  2326.      Hier stellen  Sie die  Parameter first_ade  und last_ade mittels zweier
  2327.      Slider ein.
  2328.  
  2329.  
  2330.  
  2331.                                        37
  2332.  
  2333.      6.4.2. "Fontlinien..." (Alternate A)
  2334.      Die Ausrichtungslinien werden hier  eingestellt.  In  einem RaveUp-Menü
  2335.      wählen Sie  diejenige Linie  aus, die sie neu setzen möchten. Anschlie-
  2336.      ßend wählen sie Zeile aus, an die die  Linie gesetzt  werden soll. GEM-
  2337.      FONT achtet darauf, daß die Linien in der korrekten Reihenfolge vorlie-
  2338.      gen und warnt Sie gegebenfalls. (Ein  beliebter Fehler  bei alten GDOS-
  2339.      Fonts!)
  2340.  
  2341.  
  2342.      6.4.3. "Fontflags..." (Alternate B)
  2343.  
  2344.      Die Bits 0 bis 3 des Parameters flags können hier gesetzt bzw. gelöscht
  2345.      werden. Deren Bedeutung wurde bereits erklärt.
  2346.  
  2347.  
  2348.      6.4.4. "Fontkenndaten..." (Alternate D)
  2349.  
  2350.      Die Parameter name, id und points werden hier  eingegeben. GEMFONT kann
  2351.      anhand der  Ausrichtungslinien selbst  den Wert  points berechnen, doch
  2352.      dabei orientiert das Programm  sich an  der momentanen Bildschirmauflö-
  2353.      sung, weshalb diese Funktion nur für Bildschirmfonts geeignet ist.
  2354.  
  2355.  
  2356.      6.4.5. "Kursivschrift..." (Alternate K)
  2357.  
  2358.      Der Wert  skew wird  hier bitweise  eingestellt. left_offset und right-
  2359.      _offset werden durch den Button "Größe" automatisch errechnet. Dies ge-
  2360.      schieht auch,  wenn der Dialog mit "OK" verlassen wurde. Die Buchstaben
  2361.      und Zahlen über den  Kästchen stehen  für das  dazugehörige Bit (ausge-
  2362.      drükt als Hexadezimalzahl).
  2363.  
  2364.  
  2365.      6.4.6. "Fettschrift..." (Alternate F)
  2366.  
  2367.      Hier wird der Wert thicken eingestellt.
  2368.  
  2369.  
  2370.      6.4.7. "Unterstreichen..." (Alternate G)
  2371.  
  2372.      Hier wird der Wert ul_size eingestellt.
  2373.  
  2374.  
  2375.      6.4.8. "Helle Schrift..." (Alternate H)
  2376.  
  2377.      Der Wert lighten wird hier bitweise eingestellt.
  2378.  
  2379.  
  2380.      6.5. Schriftproben
  2381.  
  2382.      Mit der Taste ESC erreichen Sie einen Dialog, mit dem Sie Schriftproben
  2383.      auf dem Bildschirm und dem Drucker erstellen können.  Sie können entwe-
  2384.      der nur  das aktuelle  Zeichen oder eine von Ihnen vorgegebene Zeichen-
  2385.      kette ausgeben lassen. Wenn  kein Drucker  verfügbar ist,  dann ist als
  2386.      Ausgabegerät nur  der Bildschirm möglich. Wurden bei der Druckerausgabe
  2387.      zusätzliche Zeilenvorschübe gewünscht, so wird nach  jedem Ausdruck der
  2388.      Vorschubszählen automatisch  um den Wert 4 erhöht. Sie können aber auch
  2389.      eigene Werte vorgeben, beispielsweise 0 beim Beginn einer neuen Seite.
  2390.      Seit Version 1.10 ist es endlich möglich, auch die VDI-Textattribute in
  2391.      die Schriftprobe  mit eingehen  zu lassen. Derzeit können die Attribute
  2392.      "unterstrichen",  "kursiv",  "fett"  und  "hell"  beliebig  miteinander
  2393.  
  2394.                                        38
  2395.  
  2396.      kombiniert und  in ihrer Wirkung auf die Schrift betrachtet werden. Das
  2397.      Attribut "outlined" wird nicht unterstützt, weil es kaum gebraucht wird
  2398.      und ich  zur Zeit  nicht die  Notwendigkeit für die (doch recht kompli-
  2399.      zierte) Implementierung sehe.
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.                                        39
  2458.  
  2459.      7. Häufige Fragen, Probleme und Tips
  2460.      -    viele alte GDOSse (etwa die Versionen 1.0, 1.1 und 1.8  von Atari)
  2461.           haben Probleme, Fonts im Motorola-Format zu verarbeiten. Berichten
  2462.           zufolge sollen die Reaktionen von leicht  verärgert über Pixelmüll
  2463.           bis  hin  zur  Bombenstimmung  reichen. Da ich nicht selbst solche
  2464.           Uraltversionen besitze, muß ich mich hier  auf Hörensagen stützen.
  2465.           Sollten Sie  selbst noch  mit solchen veralteten GDOSsen arbeiten,
  2466.           so sollten  Sie entweder  auf Fonts  im Motorola-Format verzichten
  2467.           oder  aber  schleunigst  auf  modernere  Versionen umsteigen (bei-
  2468.           spielsweise AMC-GDOS oder NVDI).
  2469.  
  2470.      -    Sollten Sie noch mit dem original  Atari-GDOS arbeiten (diejenigen
  2471.           Versionen vor  AMC-GDOS), so  rate ich Ihnen dringenst, auf andere
  2472.           GDOSse umzusteigen. Dafür sprechen folgende Gründe:
  2473.  
  2474.           -    Die Atari-GDOSse  sind stark  fehlerbehaftet, vieles funktio-
  2475.                niert nicht  so, wie es sein sollte, und wenn, dann meist nur
  2476.                teilweise.
  2477.           -    Die Atari-GDOSse bremsen alle Ausgaben  über  GEM  um  ca. 30
  2478.                Prozent ab (kein Scherz). Dies ist ein unzumutbarer Zustand.
  2479.           -    Viele  Gerätetreiber  arbeiten fehlerhaft oder erschrek-
  2480.                kend langsam unter Atari-GDOS.
  2481.           -    Neuere GDOS-Versionen besitzen viele inzwischen weit genutzte
  2482.                Erweiterungen.
  2483.  
  2484.           Sollten Sie  noch mit  einer solchen  Version arbeiten und es gibt
  2485.           Probleme mit GEMFONT oder dessen Fonts, so sollten Sie erst einmal
  2486.           ein  anderes  GDOS  einsetzen  und  schauen,  ob die Probleme noch
  2487.           existent sind, bevor Sie sich an mich wenden.
  2488.  
  2489.      -    Die Installation von GDOS  selbst ist  besonders für  Neulinge oft
  2490.           ein echtes  Rätsel. Aus  verständlichen Gründen  verweise ich hier
  2491.           auf die Anleitungen zu  AMC-GDOS oder  NVDI etwa,  die sich diesem
  2492.           Problem ausführlich annehmen.
  2493.  
  2494.      -    Häufig besteht die Versuchung, einen Font, der in einer bestimmten
  2495.           Auflösung fehlt, durch Vergrößerung oder Verkleinerung von bereits
  2496.           bestehenden  Fonts  zu  erzeugen.  Dies ist durchaus möglich, doch
  2497.           sollten Sie sich vor Augen halten, daß die  neu entstandenen Fonts
  2498.           intensiv nachbearbeitet  werden müssen.  Trotzdem ist das Ergebnis
  2499.           meist nicht unbedingt  ästhetisch  (beispielsweise  das Verhältnis
  2500.           Breite zu  Höhe), denn  das Auge nimmt beispielsweise kleine Fonts
  2501.           anders wahr als große Fonts. Also  sollte man  sich vorher überle-
  2502.           gen, ob es nicht sinnvoll wäre, den fehlenden Font komplett neu zu
  2503.           erstellen, auch wenn dies viel Arbeit  ist, doch  das Ergebnis ist
  2504.           dann meist wesentlich besser.
  2505.  
  2506.      -    Bei Schriftproben  auf 24-Nadeldruckern muß die lighten-Maske sehr
  2507.           "löchrig" gewählt werden, da die Standardmaske, die immerhin jedes
  2508.           zweite Pixel unterschlägt, ihre Wirkung erst unter einer Lupe ent-
  2509.           faltet. Generell kann gesagt,  daß  bei  mageren  Fonts  die Maske
  2510.           "dichter" sein  muß als  bei fetten Fonts, da sonst die Serifen in
  2511.           ihrer Feinheit zu stark Schaden nehmen.
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.                                        40
  2521.  
  2522.      8. Bezugsquellen für GDOS
  2523.      8.1. GDOS
  2524.  
  2525.      Inzwischen ist GDOS recht weit verbreitet und einfach zu erhalten. AMC-
  2526.      GDOS ist  bis einschließlich Version 3.21 Public Domain und unter ande-
  2527.      rem bei  Atari Deutschland  gegen Einsendung  eines frankierten Rückum-
  2528.      schlag inklusive Disketten erhältlich (näheres siehe unten).
  2529.      Alle späteren Versionen von AMC-GDOS werden in Zusammenhang mit kommer-
  2530.      ziellen Produkten (Version 5 beispielsweise mit  X-Act) oder Shareware-
  2531.      produkten  (eine  eingeschränkte  Version  4 beispielsweise mit Gemini)
  2532.      vertrieben.
  2533.      Daneben ist das NVDI in der  Version 2.1x  wärmstens zu  empfehlen, daß
  2534.      neben einer deutlichen Bildschirmbeschleunigung auch ein sehr gutes und
  2535.      erweitertes GDOS mit sich bringt. NVDI wird von der Firma  "Bela Compu-
  2536.      ter, Eschborn"  vertrieben. Von dieser Firma gibt es auch eine Sammlung
  2537.      von einem Druckerfont in den Auflösungen 120, 180, 240, 300 und 360 DPI
  2538.      sowie einem  Dutzend teilweise gepatchter GDOS-Druckertreiber, über die
  2539.      ich jedoch nichts genaueres zu berichten weiß.
  2540.      Von Atari USA gibt es ein neues GDOS mit dem  Namen FontGDOS. Wesentli-
  2541.      che  Neuerungen  sind  die  Fähigkeit,  Bezierkurven ausgeben zu können
  2542.      sowie das Fontcaching, d.h. Fonts werden  nur noch  bei Bedarf geladen,
  2543.      was viel  Speicher spart. Zudem liegen diesem Paket eine Fülle von z.T.
  2544.      stark optimierten  GDOS-Druckertreibern  inkl. Konfigurationsprogrammen
  2545.      bei; allein dies macht das Paket schon sehr wertvoll.
  2546.      Leider  bietet  FontGDOS  auch  weniger  schöne Seiten; etwa daß es das
  2547.      System um ca. 25 Prozent bremst (so gemessen  mit meinem  TOS 2.05) und
  2548.      Probleme mit  der Speicherverwaltung  sowie einigen nachweislich sauber
  2549.      programmierten GEM-Programmen hat  (beispielsweise  ein  krachender Ab-
  2550.      sturz  beim  Polygontest  in GEM_TEST.PRG, weil FontGDOS offensichtlich
  2551.      davon ausgeht, daß standardmäßig Bezierkurven statt Polygonen verwendet
  2552.      werden sollen). Im NewsNet habe ich inzwischen Mitteilungen von anderen
  2553.      Anwendern gelesen, die von weiteren z.T. größeren Fehlern berichten.
  2554.      Seit Ende April 1993 ist  nun  endlich  Speedo-GDOS  für  ca.  100,- DM
  2555.      erhältlich.  Da  ich  bisher  damit  keine  eigenen Erfahrungen sammeln
  2556.      konnte, muß ich mich hier auf die Fachpresse  berufen, die  sich jedoch
  2557.      schon im  Vorfeld beeindruckt von der Anzahl und der Hochwertigkeit der
  2558.      Schriften zeigt.
  2559.  
  2560.  
  2561.      8.2. GDOS-Fonts
  2562.  
  2563.      Bezugsadressen für GDOS-Fonts anzugegen,  fällt  schwer.  Einige Firmen
  2564.      legten ihren Produkten einige Fonts bei (beispielsweise EasyDraw), doch
  2565.      inzwischen gehen viele Firmen  dazu über,  nur noch  eine absolute Min-
  2566.      destanzahl an Fonts (wenn überhaupt) mitzuliefern. In einigen Mailboxen
  2567.      und FTP-Servern gibt es Archive,  die  einen  Großteil  der verfügbaren
  2568.      Fonts erhalten.  Leider sind  diese Sammlungen nicht vollständig, meist
  2569.      fehlen die Druckerfonts, oder es  gibt  keine  Fonts  für  die mittlere
  2570.      Bildschirmauflösung  oder  Metafonts.  Dies  liegt  jedoch nicht an den
  2571.      Zusammenstellern dieser Sammlungen, sondern einfach an  dem verfügbaren
  2572.      Angebot an Fonts.
  2573.      Meines Wissens bietet lediglich Atari selbst GDOS-Fonts im Zusammenhang
  2574.      mit dem GDOS-Kit an, das  jeder  direkt  bei  Atari  beziehen  kann. Um
  2575.      dieses zu  erhalten, schicken  Sie einen  einen mit 3,00 DM frankierten
  2576.      DIN C5 Umschlag, der wiederum einen an sich  selbst adressierten gefüt-
  2577.      terten  DIN  C5  Rückumschlag  enthält (ebenfalls 3,00 DM), an folgende
  2578.      Adresse:
  2579.  
  2580.  
  2581.  
  2582.  
  2583.                                        41
  2584.  
  2585.           Atari Deutschland GmbH
  2586.           Abteilung Kundensupport
  2587.           Am Kronberger Hang 2
  2588.           D-6231 Schwalbach
  2589.      Wichtig: Sie müssen selbst drei Disketten mitschicken (deshalb das hohe
  2590.      Porto)  sowie  in  einem  kurzen  Brief  um die Zusendung des GDOS-Kits
  2591.      bestehend aus Fonts und Treibern bitten,  sonst weiß  niemand beim Kun-
  2592.      densupport,  was  Sie  wollen.  Woraus dieses Kit im einzelnen besteht,
  2593.      kann ich (noch) nicht sagen, da ich erst vor kurzem von dieser Möglich-
  2594.      keit erfahren habe.
  2595.      Professionelle  Druckerfonts  für  24-Nadler  sind mir ansonsten bisher
  2596.      nicht untergekommen, angeblich gibt es eine Firma, die kommerziel GDOS-
  2597.      Fonts für  300- und 360-DPI Drucker vertreibt, bestätigen kann ich dies
  2598.      aber nicht. Lediglich  den  Atari-Laserdruckern  liegen  meines Wissens
  2599.      einige wenige  GDOS-Laserfonts bei. (Ich lasse mich gerne eines anderen
  2600.      belehren.)
  2601.      Wer dennoch auf hochwertige Fonts angewiesen ist, dem  bleibt nur Spee-
  2602.      do-GDOS übrig.  Die Quantität  und Qualität der dazugehörigen Fonts ist
  2603.      sehr hoch, doch sollte man sich  auch  vor  Augen  halten,  das Speedo-
  2604.      Fonts  kommerziell  entwickelt  und  vertrieben  werden. Die Preise für
  2605.      einen Font scheinen sich in  der  gleichen  Preisklasse  wie  für einen
  2606.      Calamus-Font einzupendeln  und sind  damit wohl nur noch für professio-
  2607.      nelle und kommerzielle Anwender  interessant.  Es  macht  also durchaus
  2608.      Sinn, sich weiterhin auch auf dem Gebiet der Pixelfonts zu betätigen!
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.                                        42
  2647.  
  2648.      9. Interna
  2649.      9.1. Wie alles anfing
  2650.  
  2651.      GEMFONT  besteht  grob  gesehen  aus zwei Teilen: einem selbst program-
  2652.      mierten GEM-Skelett, und dem Fonteditor selbst, der auf  diesem Skelett
  2653.      aufbaut.
  2654.      Nach meinen ersten größeren GEM-Projekten stellte ich schnell fest, daß
  2655.      bei der  Programmierung viele  wiederkehrende Routinearbeiten anfallen,
  2656.      die  sich  anbieten,  zu  eigenen  Modulen zusammengefaßt zu werden. So
  2657.      entstanden die ersten Module des Skeletts noch unter MWC 3.0.
  2658.      Mit der Zeit kamen mehr und  mehr Module  dazu, um  im Herbst  1991 be-
  2659.      schloß ich,  auf Lattice C 5.5 umzusteigen. Ende Februar 1992 hielt ich
  2660.      den Compiler dann endlich in meinen  Händen  ("...  ja,  er  wird diese
  2661.      Woche verschickt!").
  2662.      Erneut begann  ich, meine  GEM-Modulbibliothek auf Lattice C zu portie-
  2663.      ren. Doch  schon nach  wenigen Wochen  war ich  über dessen miserables,
  2664.      völlig unbrauchbares deutsches Handbuch sowie über die regelmäßigen Ab-
  2665.      stürze des Optimierers und des Assemblers dermaßen verärgert  (das Geld
  2666.      hätte ich  mir sparen  können... §%#@!"§, bitte achten Sie auf die Ein-
  2667.      blendung des Schriftzuges "Kommentar" in der linken oberen Ecke... :-),
  2668.      daß  ich  mich  entschied,  erneut  umzusteigen, diesmal auf den GNU C-
  2669.      Compiler V2.3.3 der FSF (siehe auch  die Artikelserie  im ST-Magazin ab
  2670.      8/92). Mit ihm verstand ich mich auf Anhieb bestens, daß Skelett gedieh
  2671.      prächtig, bis es Mitte 1992 nahezu ausgewachsen war.
  2672.      Um es  praktisch einzusetzen,  beschloß ich,  GEMFONT erneut anzugehen,
  2673.      nachdem der  erste Versuch  vor zwei  Jahren aus Zeitmangel gescheitert
  2674.      war. Da ich noch auf die Konzepte aus dieser Zeit zurückgreifen konnte,
  2675.      entwickelte  sich  GEMFONT  recht  schnell, die erste komplette Version
  2676.      stand Mitte Oktober 1992.
  2677.      Als letztes Problem war  die Sache  mit dem  Copyright zu  klären: nach
  2678.      langem Hin und Her stand fest, das die von GEMFONT benutzten Bibliothe-
  2679.      ken schon seit langer Zeit von ihren Autoren zu "Public Domain" erklärt
  2680.      worden waren (insbesondere unterliegen Sie nicht der "GNU Public Licen-
  2681.      ce for Libraries") und die von GCC erzeugten  Kompilate keinen rechtli-
  2682.      chen Verbreitungseinschränkugen  unterlagen, so daß der Verbreitung von
  2683.      GEMFONT als Shareware nichts mehr im Wege stand  (hoffentlich haben die
  2684.      mir alle die Wahrheit erzählt... :-})
  2685.  
  2686.  
  2687.      9.2. Ein paar Fakten
  2688.  
  2689.      Das komplette  Programm besteht  z.Z aus  ca. 18000 Zeilen (ja richtig,
  2690.      GEMFONT ist durch Optimierungen kleiner geworden),  die sich  auf 32 C-
  2691.      Module,  10  Header-Files  und  1 kleines Assembler-Modul verteilen und
  2692.      insgesamt ungefähr 700 Kbyte  Umfang  erreicht  haben.  Sowohl  auf das
  2693.      Skelett als auch den Editor entfallen je ca. 9000 Zeilen.
  2694.      Die Entwicklung  fand und  findet auf  einen Mega STE 4 mit 85 MB-Fest-
  2695.      platte statt.  Als Compiler  wird der  (meiner Meinung  nach sehr gute)
  2696.      GNU-C-Compiler V2.3.3 der Free Software Foundation (FSF) verwendet, den
  2697.      ich jedem empfehlen kann, der genug Speicher hat.  Als Libraries wurden
  2698.      die MiNT-Library  PatchLevel 30,  die GEM-Library PatchLevel 27 und die
  2699.      Portable Math Library PatchLevel 21 verwendet.
  2700.      Dabei wurden alle Dateioperationen nicht direkt  über das  GEMDOS abge-
  2701.      wickelt, sondern  der MiNT/GNU-Library  überlassen, was  sich (so hoffe
  2702.      ich) positiv auf die Zusammenarbeit  mit  MiNT  und  MultiTOS auswirken
  2703.      wird. Probleme  mit MiNT  gibt es  jedenfalls nicht  (getestet mit MiNT
  2704.      0.96 PatchLevel 14, MiNT 0.99 PatchLevel 2 und MiNT 1.04).
  2705.  
  2706.  
  2707.      9.3. Laden und Speichern von Fonts
  2708.  
  2709.                                        43
  2710.  
  2711.      Das GDOS-Fontformat ist zwar recht speicherplatzsparend, aber nur wenig
  2712.      zum direkten Editieren geeignet, außer man benutzt aufwendige Algorith-
  2713.      men, bei denen ständig große Speichermassen verschoben und kopiert wer-
  2714.      den müßten.  Ich habe  aber den  Weg der Einfachheit vorgezogen (ja ja,
  2715.      ich weiß...), und deshalb wird der  Font bei  Laden in  einzelne Puffer
  2716.      von konstanter  Größe ausgepackt.  Dies erfolgt  auf die gleiche Weise,
  2717.      wie das VDI seine Zeichen ausgibt: über die  Funktion vro_cpyfm.  Da in
  2718.      der Character-Offset-Tabelle  alle wichtigen  Positionen vermerkt sind,
  2719.      geschieht dies ohne weiteren  Rechenaufwand. Beim  Speichern wird genau
  2720.      der umgekehrte  Weg gegangen:  die Puffer  werden mittels vro_cpyfm zum
  2721.      "Fontbild" zusammengesetzt.
  2722.      Darüberhinaus wird vro_cpyfm noch  in vielen  anderen Funktionen einge-
  2723.      setzt, von  den Verfremdungsfunktionen bis zu den Pufferfunktionen hin.
  2724.      Dies bedeutet, daß die Rasterkopierfunktion unbedingt  fehlerfrei funk-
  2725.      tionieren müssen,  was heute  auch bei  Grafikkarten aber der Fall sein
  2726.      dürfte. Kleiner Nach- oder  auch  Vorteil:  die  Geschwindigkeit dieser
  2727.      Funktion beeinflußt  viele andere  Funktionen, so kann ein Blitter oder
  2728.      NVDI sie  sehr beschleunigen.  Eine spezielle  Kopierroutine wäre viel-
  2729.      leicht schneller  ("... das  ist dann  wieder Arbeit."), dafür wäre der
  2730.      Aufwand aber  wieder höher  ("... wir  Informatiker sind  von Natur aus
  2731.      faul." Hallo Michael!)
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.                                        44
  2773.  
  2774.      10. Fontregistrierung
  2775.      10.1. Die Idee
  2776.  
  2777.      Hinter der  Idee, GDOS-Fonts  "registrieren" zu lassen, steht folgender
  2778.      Gedanke: Da jeder Font eine Kennung (ID) besitzt, ist es notwendig, daß
  2779.      diese ID  nicht mehrfach  für verschiedene Fonts vergeben wird. Um dies
  2780.      zu verhindern, wird jeder  Font  registriert,  d.h.  wichtige Fontdaten
  2781.      werden in eine Liste aufgenommen, die allen zugänglich ist (obwohl eine
  2782.      mehrfache Belegung nicht so schlimm ist  wie beim  XBRA-Verfahren). Auf
  2783.      diese Weise kann man auch sehen, welche Fonts bereits existieren, damit
  2784.      man vielleicht das Rad  nicht noch  einmal erfindet  bzw. zeichnet. Wer
  2785.      die XBRA-Registrierung kennt, dem wird dieses Konzept bekannt sein.
  2786.      Die jeweils  aktuelle Liste  wird mit jedem neuem Update verteilt, kann
  2787.      aber auch bei mir auf Diskette  angefordert werden  (gleiches Verfahren
  2788.      wie das Anfordern einer Kopie von GEMFONT).
  2789.      Natürlich hängt  die Zukunft  dieser Idee  stark davon ab, wie groß die
  2790.      Resonanz, sprich die Mitarbeit  ist (obwohl  man das  ja eigentlich gar
  2791.      nicht als Arbeit bezeichnen kann). Also ...!
  2792.  
  2793.  
  2794.      10.2. Die Registrierung
  2795.  
  2796.      Um einen  oder mehrere Fonts in die Liste aufnehmen zu können, benötige
  2797.      ich folgende Angaben:
  2798.  
  2799.      -    die Font-Kennung (font_id) (Beispiel: "83")
  2800.      -    den Font-Namen (Name + Stil) (Beispiel: "Times bold")
  2801.      -    für welches  Ausgabegerät/Auflösung  in  welchen  Größen verfügbar
  2802.           (Beispiel: "300 DPI: 8,9,10,12 points, High: 4,6,8 points")
  2803.      -    Angabe über  das Original  (Beispiel: "Konvertierte SIGNUM-Schrift
  2804.           'Dutch'", oder "mit GEMFONT erstellt" etc.)
  2805.      -    Bemerkungen (z.B. Fehler im Header)
  2806.      -    Bei kommerziell vertriebenen Fonts die vollständige Bezugsadresse.
  2807.           Ansonsten geben  Sie bitte  möglichst genau an, woher man den Font
  2808.           bekommen kann (etwa PD-Versand oder bei  einem Autor  etc.), damit
  2809.           auch andere Benutzer diesen bei Bedarf erhalten können.
  2810.      -    Name  und  Anschrift  des  Autors  des Fonts (sofern bekannt, wenn
  2811.           möglich auch Netz-Adresse (Mailbox, FTP etc.))
  2812.  
  2813.      In jedem Fall benötige ich für Rückfragen unbedingt  die Adresse derje-
  2814.      nigen  Person,  der  mir  Fonts zur Registrierung anbietet. Sollten Sie
  2815.      über InterNet  erreichbar sein,  dann geben  Sie bitte  auch ihre Netz-
  2816.      adresse an, meine finden Sie weiter oben. Scheuen Sie sich dabei nicht,
  2817.      auch Fonts registrieren zu lassen, die  nicht von  Ihnen stammen. Damit
  2818.      die Liste  möglichst vollständig  wird, erbitte ich auch die Registrie-
  2819.      rung von Fonts kommerzieller  Produkte. Ebenso  bitte ich  um Ergänzung
  2820.      oder Korrektur von bereits vorhandenen Angaben.
  2821.  
  2822.  
  2823.      10.3. Anfragen
  2824.  
  2825.      Anfragen  bezüglich  Fonts  sollten  Sie zuerst versuchen, anhand einer
  2826.      aktuellen Fontliste  abzuklären. Sollten  Sie dennoch  Fragen haben, so
  2827.      können Sie  mit mir  Kontakt aufnehmen, entweder per Post oder über das
  2828.      InterNet. Wenn Sie mir schreiben, legen Sie bitte ausreichend Rückporto
  2829.      bei.
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.                                        45
  2836.  
  2837.                             Antrag auf Registrierung
  2838.  
  2839.      Hiermit bitte  ich um die Registrierung als Anwender von GEMFONT. Meine
  2840.      Adresse lautet:
  2841.  
  2842.                __________________________________________________
  2843.                                (Vor- und Nachname)
  2844.  
  2845.                __________________________________________________
  2846.                              (Straße und Hausnummer)
  2847.  
  2848.                __________________________________________________
  2849.                                 (PLZ und Ortname)
  2850.  
  2851.                __________________________________________________
  2852.                                      (Land)
  2853.  
  2854.  
  2855.      Den Sharewarebetrag von DM 30,- zahle ich wie folgt:
  2856.  
  2857.           [ ] - bar
  2858.  
  2859.           [ ] - per Scheck  (Verrechnungsschecks  bitte  auf  "Sascha Blank"
  2860.                 ausstellen.)
  2861.  
  2862.  
  2863.      Folgende Angaben sind freiwillig und sollen dem Programmautor lediglich
  2864.      helfen, sich besser auf  die  Ausstattung  der  Benutzer  einstellen zu
  2865.      können:
  2866.  
  2867.              Computer (genaue Bezeichnung): ________________________
  2868.  
  2869.              Speicherausbau: ______ MByte        TOS-Version: ______
  2870.  
  2871.              Ich besitze folgenden Drucker: ________________________
  2872.  
  2873.              Er bietet folgende Auflösung (in DPI): ________________
  2874.  
  2875.  
  2876.      Wie sind  Sie auf  dieses Programm aufmerksam geworden, woher haben Sie
  2877.      diese Kopie erhalten?
  2878.  
  2879.  
  2880.           ____________________________________________________________
  2881.  
  2882.  
  2883.      Ich bin damit  einverstanden,  daß  meine  Daten  zu Verwaltungszwecken
  2884.      elektronisch gespeichert  werden. Eine  Weitergabe an  Dritte findet in
  2885.      aber keinem Fall statt.
  2886.  
  2887.  
  2888.         ______________________________     ______________________________
  2889.                (Unterschrift)                     (Ort und Datum)
  2890.  
  2891.  
  2892.