
                     A E S  F o n t  L o a d e r  
                     ---------------------------
                          Shareware-Version


1. Vorwort
----------
Seit  1985 gibt es die Atari Computer mit  GEM-Oberflche  schon.  Von 
Anfang  an  war ein nachladbares GDOS dabei,  mit dem man  jede  Menge 
schner und weniger schner GEM-Fonts seinen Programmen zur  Verfgung 
stellen kann.

Was aber haben die Programmautoren anfangs daraus gemacht?  Sie  haben 
recht  - nichts.  Seit einigen Jahren verbreitet sich GDOS aber  immer 
mehr,  besonders  seit es das schnelle NVDI gibt.  Es gibt  inzwischen 
viele  Programme,  besonders  im  Shareware-Bereich,  die  ihre  Text-
ausgaben  mit GEM-Fonts bewerkstelligen.  Eine angenehme  Abwechslung, 
wurde  man doch jahrelang mit immer demselben  'system  font'-Einerlei 
in schwere existenzielle Krisen gestrzt.

Doch halt,  was ist das. Da ist ja noch das AES, das nach wie vor stur 
mit  dem 8x8 system font in den niedrigen und dem 8x16 system font  in 
den  hohen Auflsungen seine Ausgaben ttigt.  Dazu kommt  noch  immer 
derselbe Icon-Font.

Das hat ein Ende,  denn jetzt gibt es AESFONT.  Sie brauchen nur  noch 
ein GDOS, dann knnen Sie zur Tat schreiten.


2. Einleitung
-------------
AESFONT  wird  im Autoordner nach  GDOS  gestartet.  Die  GDOS-Version 
meldet  ein  oder  zwei GDOS-Fonts beim AES  an.   Der  kleinere  Font 
(SMALL)  wird  danach  fr die Icontexte und  die  kleine  Schrift  in 
Dialogen verwendet,  der groe (IBM) fr alle brigen Textausgaben des 
AES. 

Zustzlich   kann  der  voreingestellte  Font  fr   GEM-Applikationen 
verndert werden und ein neuer Font fr die Konsolenausgabe angemeldet 
werden.

Dieses  Handbuch  soll  Ihnen  die  Bedienung  erleichtern.   Sie  ist 
gegliedert  in einen Teil,  der dem reinen Anwender die  Mglichkeiten 
erklrt.  Es schliet sich eine Beschreibung der Programmiererschnitt-
stelle an.


3. Installation:
----------------
Kopieren  Sie AESFONT.PRG und AESFONT.CNF in den Autoordner auf  ihrem 
Bootlaufwerk.  Kopieren  Sie die Fonts in ihren GDOS-Fontordner  (z.B. 
\GEMSYS).  Nennen  Sie ihr bisheriges ASSIGN.SYS in ASSIGN.OLD um  und 
ersetzen es durch das ASSIGN.SYS aus der AESFONT-Distribution.  Tragen
Sie  in ASSIGN.SYS  den korrekten  GDOS-Pfad  ein.  Voreingestellt ist 
'PATH=\GEMSYS\'.

Fhren Sie jetzt einen Reset aus. Der Rechner luft hoch. Jetzt sollte 
zunchst  GDOS  starten  und spter  AESFONT.  Wenn  alles  gut  geht, 
erscheint  jetzt der Desktop mit einem neuen Satz Fonts.

Wenn nicht,  berprfen Sie,  ob das GDOS richtig installiert ist,  es 
mu vor AESFONT gestartet werden.  Benennen Sie ggf. den Autoordner um 
und kopieren alle Programme einzeln in der gewnschten Reihenfolge  in 
einen   neuen   Autoordner.   Einfacher  ist   die   Benutzung   eines 
AUTOSORT.PRG.

Wenn   es  immer  noch  nicht  geht,   schalten  Sie   alle   weiteren 
Autoordnerprogramme  aus und probieren es erneut.  Irgendein  Programm 
knnte  unvertrglich sein.  Versuchen Sie ggf.  rauszufinden  welches 
und  schicken  eine  Fehlermeldung an die  am  Ende  dieses  Handbuchs 
angegebene Adresse.

Wenn  es  immer  noch nicht funktioniert,  setzen  Sie  sich  mit  dem 
Programmautoren  in  Verbindung.  Schildern Sie mglichst  genau  ihre 
Probleme.  Im unwahrscheinlichen Fall,  da es stndig Abstrze  gibt, 
wird  AESFONT  duch  Drcken der '*-'Taste  der  numerischen  Tastatur 
abgebrochen.

Die  ausgelieferte  Shareware-Version enthlt  verschiedene  Beispiel-
installationen als CNF-Dateien,  die ausprobiert werden  knnen.  Wenn 
Ihnen eine gefllt,  knnen Sie eine aus alt und neu kombinierte GDOS-
Installation herstellen.  Stellen Sie fest,  welche Fonts Sie fr  das 
AES verwenden.  Tragen Sie diese Fonts im ASSIGN.OLD ein und speichern 
die  Datei  als ASSIGN.SYS ab.  Dabei wird das  Test-ASSIGN.SYS  ber-
schrieben.

Wer   lieber   eine  eigene  Installation  zusammenstellt   und   alle 
Mglichkeiten  ausschpfen  will,  mu  nun aufmerksam  den  Rest  des 
Handbuchs durchlesen.  Gengsamere Zeitgenossen knnen es erstmal weg-
legen, verpassen aber auch eine Menge.


4. Spezielle Probleme mit anderen Systemerweiterungen
-----------------------------------------------------
Beim   Betrieb  mit  MiNT  sollte  AESFONT  mglichst  nach   MINT.PRG 
gestartet werden. Bei MultiTOS ist das allerdings nicht zwingend.


5. Konfigurationsvariablen von AESFONT
---------------------------------------
Sie  knnen die Funktionen ber  Environmentvariablen oder  ber  eine 
Konfigurationsdatei steuern.

5.1. Environmentvariablen
-------------------------
Environmentvariablen werden von dazu bestimmten  Autoordner-Programmen 
gesetzt.  Wie  das gemacht wird,  entnehmen sie bitte  der  jeweiligen 
Programmanleitung (z.B.  SETENV,  OVERSCAN,  JCNBOOT, MINT, MultiTOS). 
AESFONT wertet das Environment des AES aus, nicht sein eigenes.

5.2. Konfigurationsdatei
------------------------
Es kann auch  eine Datei  namens AESFONT.CNF in  das Wurzelverzeichnis
des Bootlaufwerkes gelegt werden. Sie mu folgendes Format aufweisen:

1. der Name der Environmentvariablen in Grobuchstaben
2. ein Gleichheitszeichen
3. der Wert der Variablen in Ziffern
4. beliebiger Kommentar
5. CR/LF.

Die Datei kann mit jedem blichen Editor erstellt werden.  Wichtig ist 
nur  die Trennung der Zeilen durch CR/LF.  Fhrende  Leerzeichen  sind 
nicht erlaubt.

Beispiel:

AF_VERBOSE=1        * Es darf geschwatzt werden
AF_FONTID=15        * Typewriter
AF_FONTHEIGHT=12    
AF_SMALLID=22       * Rufus 5 pt
AF_SMALLHEIGHT=5
AF_WINDOWPATCH=1

Ausgewertet  wird  zunchst die CNF-Datei und  dann  die  Environment-
variablen.  Es gilt der zuletzt gesetzte Wert.  Alle Werte werden ggf. 
von MultiTOS-Einstellungen berdeckt.

5.3. Die Konfigurationsvariablen im einzelnen
---------------------------------------------
Grosser AES-Font (IBM):

AF_FONTID      Font ID des groen AES-Fonts (IBM).  Gilt auch fr  den 
               SMALL-Font, wenn dieser nicht explizit gesetzt wird.

AF_FONTHEIGHT  Hhe des Fonts (IBM) im absolute mode (vst_height).

AF_FONTPOINT   Hhe im points mode (vst_point).
               HEIGHT und POINT sind alternativ zu verwenden.

Kleiner AES-Font (SMALL):

AF_SMALLID     Font ID des kleinen Icon-Fonts (SMALL).

AF_SMALLHEIGHT Hhe im absolute mode.

AF_SMALLPOINT  Hhe im points mode (alternativ).

Default Font:

AF_DEFAULTID   Font  ID  des Default Fonts,  d.h.  des Fonts  mit  dem 
               GEM-Applikationen von Haus aus arbeiten.

AF_DEFAULTHEIGHT
               Hhe im absolute mode.

AF_DEFAULTPOINT
               Hhe im points mode.

Console Font (Bios, Gemdos und VDI-Escape):

AF_CONID       Font  ID  eines neuen Fonts  fr  die  Console.
     Hinweis:  Der  Font darf kein Vektorfont sein und  mu  unbedingt 
               eine  feste  Breite  von  8  Pixeln  fr  alle  Zeichen 
               besitzen.  Bei Benutzung eines GDOS,  das  Fontswapping 
               beherrscht,  mu  der Font im ASSIGN.SYS  als  resident 
               angemeldet werden.  Wenn das GDOS das nicht kann,  ver-
               bietet sich eine Benutzung  dieser Variablen.

AF_CONHEIGHT   Hhe im absolute mode.

AF_CONPOINT    Hhe im points mode (alternativ).

     Hinweis:  Fr den Console-Font gilt,  da nicht  notwendigerweise 
               die aktuell eingestellte Gre verwendet wird,  sondern 
               der     zugrundeliegende    GDOS-Font     in     seiner 
               ursprnglichen Gre.
     WARNUNG:  Die Benutzung der Console-Funktionen erfolgt auf  eige-
               ne Gefahr.  Sie ist als Schmankerl gedacht und wird auf  
               nachladbaren  Bildschirmtreibern  wahrscheinlich  nicht 
               korrekt laufen.

Sonstige Optionen:

AF_VERBOSE     Geschwtzigkeit.  Wenn =  1,  dann werden  ausfhrliche 
               Informationen  ber den Programmablauf auf der  Console 
               ausgegeben.  Als Hilfe zur Fehlersuche gedacht.  Sollte 
               als erste Variable gesetzt werden.

     WARNUNG:  Darf   auf   keinen  Fall   unter   AutoSwitch-OverScan 
               angestellt  werden,  da  ltere  Treiber  einen  Fehler 
               enthalten,  der Daten im RAM schwer  beschdigt!  Unter 
               MultiTOS  ist  es  bisweilen  ebenfalls  zu   Abstrzen 
               gekommen.

AF_ALIGNMENT   Neues   vertikales   Alignment   fr   den    AES-Font. 
               Eingabeparameter  fr  vst_alignment.  Setzt  die  AES-
               Fonts  in  der  vertikalen  hoch  bzw.   runter.   Wird 
               eigentlich nicht bentigt.

AF_COLOR       Textfarbe   des   AES-Fonts.    Eingabeparameter    fr 
               vst_color.

AF_NODESKFIX   Wenn Wert = 1,  kein Fixen der Desktop-Resourcen im RAM 
               oder der DESKICON.RSC.  Bietet sich an fr  Leute,  die 
               niemals  den Atari-Desktop zu  Gesicht  bekommen,  weil 
               sie lieber Gemini,  Ease oder Neodesk benutzen.  Auer-
               dem bei der Verwendung von MultiTOS sinnvollerweise  in 
               GEM.CNF, da der Fix dort ohnehin berflssig ist.

AF_WINDOWPATCH Wenn  Wert = 1,  wird verhindert,  da Fenster  in  die 
               Menzeile hinein geffnet werden.

AF_GETINFOPATCH   Wenn Wert = 1,  wird die  appl_getinfo-Funktion  des 
               AES >4.0  gepatcht.  Bei ap_gtype 0 und 1 wird  jeweils 
               ap_gout2  (Font-ID) berichtigt,  falls 1  zurckgegeben 
               werden soll. Wird folglich nur bei MultiTOS bentigt.

AF_1WPATCH     Patch  fr  1st  Word,   der  work_out[47/48]  auf  die 
               Gre des  Default  Fonts und work_out[45/46]  auf  die 
               Gre des Icon Fonts setzt. Wert mu = 1 sein.
     Hinweis:  Da  1st Word+ diese Parameter  als  Greneinstellungen 
               fr  seine Textausgaben verwendet und gleichzeitig  die 
               Koordinaten   anhand   von   graf_handle()   errechnet, 
               nur  sinnvoll,  wenn   AES-Font  und  Default  Font  in 
               gleichen   Gren   vorliegen  und   zwar   fr   beide 
               Fontgren.

AF_NOWORK10    Wenn Wert = 1,  wird ein Patch ausgeschaltet,  der  den 
               Wert von work_out[10] beim v_opnvwk()  korrigiert.  Der 
               Patch  macht Gebrauch von negativen  Line  A-Variablen. 
               Alle bekannten offiziellen VDI-Versionen enthalten  den 
               entsprechenden  Fehler.  Einzige  Auswirkung  ist,  da 
               einige  Programme zu viele Fonts zur  Auswahl  stellen, 
               wobei die berzhligen immer nur den Systemfont  repr-
               sentieren.

"Verbotene" Konfigurationsvariablen:

AF_FLYHACK     Hack,  um  mit Programmen  zurechtzukommen,  die  starr 
               eine  der 3 Systemfontgren  einsetzen.  Das  betrifft 
               vor allem Fliegende Dialoge.
               Wenn der Wert 1 ist,  werden diverse vst_height-Aufrufe 
               mit den Gren 4,  6 und 13 auf die  korrespondierenden 
               Gren  des  AES-Fonts  gesetzt und  der  AES-Font  als 
               aktueller eingestellt.
               Ist der Wert 2,  dann wird vor allen  vst_point-Aufrufe 
               von 8,  9 und 10 Punkten der korrespondierende AES-Font 
               eingestellt.  Da dabei tatschlich die richtige  Gre 
               eingestellt wird, ist nicht gesagt.
               Bei einem Wert von 3 werden beide Hacks eingeschaltet.

     WARNUNG:  Diese  Funktion  sollte  nicht  im  tglichen   Betrieb 
               benutzt werden,  sie dient lediglich dazu,  die leichte 
               Anpabarkeit  vieler  Programme an  AESFONT  zu  demon-
               strieren.

AF_LOADHACK    Wenn Wert = 1,  wird bei jedem vst_load_fonts die  Zahl 
               der  zustzlichen Fonts vom ersten Ladeversuch  zurck-
               geben.  Wenn AF_DEFAULTID gesetzt ist und ein  Programm 
               die GDOS-Fonts nicht findet, hilft dieser Hack.

AF_UNLOAD      Wenn Wert <> 0,  werden  die Fonts nach Ermittlung  der 
               Daten wieder entladen (Testfunktion fr MultiTOS).

AF_CHAMHACK    Der  Wert  gibt die Verzgerung gemessen  in  Bios-Auf-
               rufen  an,  mit der der  Trap #2-Handler  reinstalliert 
               wird.  
               Notwendig ist das im Zusammenhang  mit  Chamleon  1.19 
               und  AF_DEFAULTID.  Beim Nachladen von  Accessories mit
               eigener  virtueller Workstation,  gibt es einen totalen
               Systemabsturz. Wenn AF_CHAMHACK >=8 ist, geht es trotz-
               dem (ohne Gewhr).
               Bei  Anwesenheit von NVDI ist AF_CHAMHACK  auf  mindes-
               tens 3 zu stellen.

Bei  allen HEIGHT,  POINT und ID-Funktionen fhrt ein Wert von  0  zum 
Ignorieren  der entsprechenden Funktion.  Alle nicht  genannten  Werte 
fhren zu unvorhersehbaren Resultaten.

5.4. Beispielkonfiguration
--------------------------
Die  folgende Konfiguration wrde den Typewriter aus  dem  Atari-GDOS-
Paket  und  den sattsam bekannten 6x6 system font  als  AES-Fonts  an-
melden.  Auerdem wrden die Konsolenausgaben mit dem 8x8 system  font 
erfolgen.  Ein  Fixen der Desktop-Resource im RAM findet nicht  statt. 
Die  Farbe  des  AES-Fonts ist 5.  1st Word wird  mit  dem  Typewriter 
ausgeben  (hoch- und tiefgestellte Texte sind aber unleserlich).

AF_FONTID=15
AF_FONTHEIGHT=12
AF_SMALLID=1
AF_SMALLHEIGHT=4
AF_CONID=1
AF_CONHEIGHT=6
AF_NODESKFIX=1
AF_COLOR=5
AF_1WPATCH=1

5.5. Die optimale Konfiguration
-------------------------------
Man sollte in jedem Fall versuchen,  die Eingriffe von AESFONT in  das 
VDI zu minimieren.  Unvermeidlich ist in jedem Fall,  da whrend  des 
ffnens der Workstation seitens des AES umfangreiche zustzliche  VDI-
Aufrufe  erfolgen.  Vermeidbar  ist aber,  da  whrend  der  weiteren 
Laufzeit  VDI-Aufrufe manipuliert werden.  Dazu mu man auf die  Vari-
ablen AF_SMALLID,  AF_DEFAULTID. AF_DEFAULTHEIGHT, AF_DEFAULTPOINT und 
AF_1WPATCH verzichten.

Der Grund liegt darin,  da AESFONT bestimmte VDI-Aufrufe abfngt  und 
vor oder nach diesen eigene VDI-Aufrufe absetzt.  Diese Art rekursiven 
Aufrufs des Trap #2 knnte theoretisch Trap-Handler anderer  Programme 
berfordern, wenn diese etwas nachlssig geschrieben sind.

Die Ergnzungen der rsrc-Routinen des AES sind stndig aktiv.  Nur der 
WINDOWPATCH  und der GETINFOPATCH knnen  beeinflut  werden.  Da  das 
Abfangen  der AES-Aufrufe auf dem saubersten mglichen  Wege  erfolgt, 
sind  hier  bei  allen TOS-Versionen vor MultiTOS  keine  Probleme  zu 
befrchten.

Wenn der VDI-Bildschirmtreiber negative Line A-Variablen nicht  unter-
sttzt,   darf   der   Konsolenfont  nicht  manipuliert   werden   und 
AF_NOWORK10 mu auf 1 gesetzt werden. Dieser Fall drfte hchstens bei 
Grafikkarten auftreten.


6. Fonts in AESFONT
--------------------
Sinnvoll verwendet knnen alle unproportionalen GDOS-Fonts.  Das  sind  
solche,  die nur Zeichen gleicher Breite enthalten, also etwa der beim 
Atari-GDOS mitgelieferte Typewriter (ATTP10.FNT).

6.1 AES-Fonts
-------------
Bei der Zusammenstellung von SMALL und IBM-Font ist zu  beachten,  da 
das Breitenverhltnis mglichst 4:3 betragen sollte.  Das hngt  damit 
zusammen,  da  dies  bei den Systemfonts des TOS auch der  Fall  ist. 
Wenn  dieses  Verhltnis nicht erreicht werden kann,  so  ist  ein  zu 
hoher Wert,  also etwa 9:6,  gnstiger als ein zu niedriger. Je grer 
die  Abweichung ist,  desto unschner erscheinen die Textausgaben  mit 
dem SMALL-Font in Dialogen.

Zur   Hhe   ist  zu  sagen,   da  ein  Verhltnis  von   4:3   nicht 
unterschritten   werden  sollte.   Als  grober  Richtwert   kann   ein 
Verhltnis von etwa 2:1 angegeben werden.

Auerdem   sollten  beide  Fonts  die  gleiche  ID   haben,   um   dem 
Betriebssystem  unntige  Eingriffe  durch  AESFONT  zu  ersparen  und 
Anwendungsprogramme nicht zu berfordern.  Also sollte man im  Zweifel 
die ID per Diskettenmonitor oder Fonteditor anpassen.

Auflsungswechsel  kann  man  berstehen,  indem man  nur  die  POINT-
Konfigurationsvariablen verwendet und in ASSIGN.SYS die der  Auflsung 
entsprechenden  Fonts  eintrgt.   Z.B.  ATTP10.FNT  fr  ST-HIGH  und 
ATTP10CG.FNT fr ST-MID.

6.2 Default Font
---------------- 
Wird  ein  Font als Default-Font verwendet,  dann mu  zustzlich  zur 
Bedingung  der Unproportionalitt unbedingt das sogenannte  Monospaced 
Flag im Fontheader gesetzt sein.

6.3. Konsolenfont
-----------------
Der  Font fr die zeichenorientierten Ausgaben des  BIOS,  GEMDOS  und 
der  VDI-Escape-Funktionen  auf  die  Konsole  (Bildschirm),  mu  ein 
unproportionaler  Font  mit 8 Pixeln Breite und  gesetztem  Monospaced 
Flag sein. Alle anderen werden abgelehnt.

6.4. Verzeichnis der mitgelieferten Fonts
-----------------------------------------
Zur  Zeit  werden  3  Fontkombinationen  mitgeliefert.  Sie  sind  den 
Systemfonts  des  TOS nachempfunden,  so da keine  groe  Umgewhnung 
ntig ist.

SMALL-Font                      IBM-Font
Dateiname   ID   Fontname       Dateiname     ID   Fontname

AES5X6.FNT  257  5x5 aes font   AES7X12.FNT   257  7x12 aes font
AES7X8.FNT  513  7x8 aes font   AES10X20.FNT  513  10x20 aes font
AES9X9.FNT  769  9x9 aes font   AES12X24.FNT  769  12x24 aes font

Die  gnstigste Kombination ist 9x9 und 12x24 aes font,  da  hier  das 
Breitenverhltnis exakt 4 zu 3 betrgt.


7. Fallstricke und Bugs in AESFONT
----------------------------------
Leider ist es nicht zu umgehen,  einige undokumentierte Eigenschaften, 
wie das Auslesen der Resource-Adresse im global-Feld, zuverwenden.

Wird AESFONT im Autoordner vor MiNT gestartet,  wird die  DESKICON.RSC 
bei TOS 2.0x und 3.0x nicht gefixed.  Dadurch sind dann die  Icontexte 
nicht vollstndig sichtbar. Abhilfe: AESFONT von MiNT starten lassen.

Der  Desktop des TOS 1.0 luft nicht korrekt,  da er die Resourcen  in 
einem unbekannten,  bereits relozierten Format enthlt.  Die Icontexte 
sind  nur eingeschrnkt lesbar.  Es wird immerhin  eine  Fehlermeldung 
"AESFONT:  unknown  desktop resource format" (mit Glocke)  ausgegeben, 
die allerdings nach ca. 3/10 Sekunden vom GEM gelscht wird.

Da  die Desktppe aus der Vor-MultiTOS-ra (Steinzeit)  die  AES-Funk-
tionen nicht ber Trap #2 aufrufen,  mu von AESFONT beim Startup  des 
GEM an den Desktop-Resourcen gehackt werden.  Deren Adresse ist  zudem 
nicht  bekannt.  Es kann also sein,  da AESFONT bei  bestimmten  Kon-
figurationen die Resource nicht findet.  Ich bitte fr diesen Fall  um 
Bug-Reports.  Nach menschlichem Ermessen sollten alle offiziellen TOS-
Versionen ab TOS 1.04 vernnftig laufen.

Unter MultiTOS wird berflssigerweise nach einer RAM-Kopie der  Desk-
top-Resource  gesucht  und zum Glck nicht  gefunden.  Es  ist  leider 
nicht mglich,  die Anwesenheit von MultiTOS vor dem ersten AES-Aufruf 
zu erkennen. (Oder kann jemand da helfen?)

Da G_*TEXT-Objekte an den SMALL-Font angepat werden mssen,  kann  es 
in  seltenen Fllen vorkommen,  da diese ca.  2 Pixel  auerhalb  des 
Mutterobjektes weitergezeichnet werden.  Damit mu man entweder leben, 
oder  die Mutterobjekte im Resource Construction Set auf  Zeichenkoor-
dinaten  snappen  lassen.  Alternativ  knnen  die  Mutterobjekte  als 
G_*TEXT mit leerem SMALL-Text definiert werden.


8. Bugs der Anderen (natrlich viel mehr):
------------------------------------------
Das XCONTROL.ACC kommt mit greren Systemfonts nicht zurecht.

Programme,  die  ltere  Versionen der FlyDials von  J.  Reschke  ver-
wenden,  strzen  beim Aufruf von Dialogen mit  "Kreisverkehrszeichen" 
ab  (z.B.  Gemini  1.21).  Das ist ein mittlerweile  behobener  Fehler 
dieser Dialoglibrary.

Einige  Programme,  wie  1st Word und der Pure  C-Editor  setzen  eine 
bereinstimmung von AES- und Default-Font voraus.  Sonst schreiben sie 
einen ziemlichen Unsinn in das Textfenster.  Diesem vermeidbaren  Feh-
ler  hat Atari durch falsche Vorschlge fr Entwickler (in  Atari.RSC) 
selber Vorschub geleistet.

Andere Programme (u.a.  viele GFA-Basic-Compilate, Pure C 1.0, Tempus) 
stellen  die Mens nicht korrekt dar,  weil sie sie falsch  berechnen. 
Probleme haben auch einige Fileselector-Substitute.

Einige  Accessories wie OverUtil und ProCalc rufen  rsrc_obfix()  auf, 
obwohl  sie  die Resource noch nicht  vollstndig  umgerechnet  haben. 
ob_spec  enthlt statt eines Zeigers noch einen Index,  was  eindeutig  
ein Bug ist.  AESFONT quittiert das bei gesetztem AF_VERBOSE durch ein 
Klingelzeichen,  jedesmal wenn ein solcher Aufruf kommt.  Dieser  wird 
selbstverstndlich nicht nicht durch die Fixroutinen bearbeitet.  Mit-
unter gibt das ein heftiges Gebimmel beim Systemstart.

NVDI  erklrt sich,  bedingt durch einen speziellen  Traphandler,  zum 
Herren  des VDI-Traps und schneidet alle anderen Trap-Routinen  (auer 
vom  Chamleon)  ab.  NVDI mu daher ausgetrickst  werden.  Ein  voll-
stndiges  funktionieren  aller Optionen kann daher  nicht  garantiert 
werden.

Ein besonders gefhrlicher Fehler steckt im Chamleon 1.19.  Das ganze 
System  strzt  ab,  wenn  vom Accessory  eine  virtuelle  Workstation 
geffnet wird.  Das ganze passiert nur bei AF_DEFAULT-Funktionen. Hier 
geht  der rekursive Aufruf von VDI-Funktionen verschrft in die  Hose. 
Als  Ausweg bietet sich die AF_CHAMHACK-Option an.  Es ist am  sicher-
sten,  berhaupt  keine Accessories mit dem Chamleon  zu  laden,  die 
eine virtuelle Workstation ffnen.

Einige Programme,  wie CAT 2.0,  werten die Anzahl der  Systemzeichen-
stze  in work_out[10] nicht aus.  So kommt es,  da bei  angestelltem 
AF_DEFAULTID die GDOS-Fonts nicht mehr erkannt werden.

Und vieles mehr,  was nicht korrekt luft. Sauber programmierte Appli-
kationen haben keine Probleme.  Positive Beispiele sind MUtility, GEM-
Draw, IdeaList und der MultiTos-Desktop.

Viele GEM-Fonts haben einen Fehler im Aufbau des  Fontheaders.  Dieser 
macht  sich  durch  ein ungewolltes  unterstreichen  bei  invertierter 
Textausgabe bemerkbar.  Gegenmittel ist das Freeware-Programm  FONTFIX 
von  J. Reschke.  Verursacher  dieses Fehlers ist brigens  der  Font-
editor Fontz!.

8.1 Kompatibilittsliste:
-------------------------
Viele Programme machen hier und da kleinere bis grere Probleme.  Die 
Liste zeigt nur die besonders guten und die groben Ausreier.

nicht funktionierende    Grund

Gemini 1.21              Fly Dials by J. Reschke strzen ab.
Rufus 1.06               dito
FontEdit.ACC 2.1         mllt den Bildschirm voll

gut funktionierende

DESKTOP                  
MUtil 1.0 und 2.1
PumpUp                   
FontSelector
Multifont                
ACopy 1.2
MDisk 6.92               
1st View
Treeview                 
Idealist 3.10
Turtle 3.20

bei entsprechender Einstellung gut funktionierende

1st Word       
1st Word Plus  AF_1WPATCH, AF_DEFAULTID = AF_FONTID = AF_SMALLID,
               AF_DEFAULTHEIGHT = AF_FONTHEIGHT, hohe Auflsung

8.2. Workarounds fr spezielle Probleme
---------------------------------------
Wenn's  auch  Schwei und Trnen kostet,  man kriegt  fast  alles  zum 
Laufen,  was auflsungsunabhngig programmiert ist. Um es ganz klar zu 
sagen,  die folgenden Vorschlge haben etwas vom Nylonstrumpf, der als 
Keilriemenersatz dient.

1st Word (Plus):
IBM und Default Font mssen gleich sein,  IBM und SMALL die gleiche ID 
haben. AF_1WPATCH und AF_WINDOWPATCH werden auf 1 gesetzt.

DR-RCS:
Wenn AF_1WPATCH gesetzt ist,  kann man das RCS mit alternativen  Fonts 
bedienen.  Trotzdem  sollte  man  Resourcen  auf  jeden  Fall  nur  in 
Standardauflsungen bearbeiten.

Fly Dials (J. Reschke / Gemini, Rufus):
IBM und Default Font mssen gleich sein.

Magic Dials [vor 1993] (Peter Hellinger):
IBM und Default Font mssen gleich sein.

Chickendial (M. Thaenitz / 7Up):
AF_FLYHACK auf 2 setzen.

Pure C:
IBM  und Default Font mssen gleich sein.  Die AES-Fontgre mu  nahe 
an der normalen liegen, weil die Resourcen sich nicht anpassen.

Cat 2.0 und Catputz:
AF_LOADHACK und AF_WINDOWPATCH auf 1 setzen.

MultiTOS:
MultiTOS-Verwender  sollten  AF_GETINFOPATCH  einschalten,  damit  die 
richtigen  Font-IDs gemeldet werden.  Da nicht davon  auszugehen  ist, 
da  Atari  diesen  Bug beseitigt,  wird das vermutlich  bis  in  alle 
Ewigkeit gelten, zumindest aber bis Version 1.08.


9. Hinweise fr Programmierer:
------------------------------
9.1. Traps
----------
AESFONT hngt in Trap #1,  Trap #2 und Trap #13.  Die XBRA-Kennung ist 
'AFnt'.

Andere VDI-Traphandler,  die sich hinter den Trap hngen, mssen damit 
rechnen,  da aus einem VDI-Aufruf heraus ein weiterer rekursiver VDI-
Aufruf (z.B.  von AESFONT) abgesetzt wird.  Es ist also dafr Sorge zu 
tragen,  da man damit zurechtkommt.  Eine Mglichkeit ist eine  Sema-
phore,  die  einen rekursiven Aufruf abweist.  Die zweite  Mglichkeit 
ist  der  Aufbau eines programminternen Stacks,  der  den  Traphandler 
reentrant  macht.

AESFONT selbst benutzt fr Bios,  Gemdos und VDI Semaphoren.  Fr  das 
AES gibt es einen relativ kompliziert aufgebauten Stack.

9.1. Das Programmierinterface

AESFONT richtet 2 Cookies ein. 

Erstens  den Cookie 'SMAL',  der im niederwertigen Wort die Gre  des 
Iconfonts (C-Definition:  SMALL) im absolute mode enthlt. Im Highword 
enthlt  er - optional, aber implementiert - die Gre des  IBM-Fonts. 
Das war ein Vorschlag,  der vor einiger Zeit im Mausnetz gemacht wurde 
und zur Abwrtskompatibilitt enthalten ist.  Die Dialog-Library  Ruby 
von Markus Nick verwendet diesen Cookie.

Fr  AESFONT wird ein anderes Verfahren empfohlen.  Der zweite  Cookie 
hat  die  Kennung 'AFnt'.  Dieser enthlt einen  Zeiger  auf  folgende 
Struktur:

struct
{
     long af_magic;
     int  version;
     int  installed;
     int  cdecl (*afnt_getinfo)(int af_gtype, int *af_gout1,
                 int *af_gout2, int *af_gout3, int *af_gout4);
}AFNT;

Tatschlich ist die Struktur noch etwas lnger.  Der Zugriff auf diese 
internen   Variablen   wird  aber  nur  bei   Vorlage   guter   Grnde 
offengelegt.

Wichtig ist,  zunchst die Versionsnummer abzufragen.  Das Lowbyte von 
version  gibt die Versionsnummer des Programms an.  0x0019  wre  z.B. 
die Version 1.9,  nchste Versionsnummer wre 0x0020 (2.0).  

Das  Highbyte von version gibt die  Revision  der  Cookieschnittstelle 
an.  Bei  einer nderung wird diese Zahl  erhht.  Diese  Beschreibung 
gilt ab V 0.5, Schnittstellenrevision 0 (0x0005).

Der  Grund fr diese etwas komplizierte Definition  liegt  darin,  da 
zwei  AESFONT-Zweige existieren.  Der eine enthlt die Fonts  im  Pro-
grammcode (V 0.0 bis 0.9),  der andere ldt sie ber GDOS (ab  V 1.0).  
Diese  Versionsnummern  haben demnach keinen Einflu auf  die  Cookie-
schnittstelle.

installed  ist 0,  solange AESFONT zwar geladen,  die Fonts aber  noch 
nicht angemeldet sind.

Man  erkennt,  da  in  der  Struktur ein  Zeiger  auf  eine  Funktion 
definiert ist. Diese wird ber folgenden Prototyp definiert (Pure C):

int cdecl (*afnt_getinfo)(int af_gtype, int *af_gout1, int *af_gout2,
                                        int *af_gout3, int *af_gout4);

Nach  Zuweisung des Wertes aus der Struktur,  kann die  Funktion  ganz 
normal aufgerufen werden:

af_greturn = afnt_getinfo(af_gtype, &af_gout1, &af_gout2,
                                    &af_gout3, &af_gout4);

Parameter:

af_gtype - Get information type

           0 - IBM Font Information
               af_gout1 - Fonthhe
               af_gout2 - Font ID
               af_gout3 - 1 wenn FSM-Font, sonst 0

           1 - SMALL Font Information
               af_gout1 - Fonthhe
               af_gout2 - Font ID
               af_gout3 - 1 wenn FSM-Font, sonst 0

af_greturn - kodierter Returnwert
           1 - kein Fehler
           0 - Fehler     (Achtung, das mu beachtet werden!)

hnlichkeiten  mit real existierenden MultiTOS-Funktionen sind  durch-
aus beabsichtigt.  Wenn eine funktionsgleiche echte AES-Funktion exis-
tiert,  ist  diese  zu  verwenden.  Sie gibt  -  wenn  sie  fehlerfrei 
implementiert  ist  - in jedem Fall die korrekten  Werte  zurck.  Die 
Rckgabewerte  von afnt_getinfo knnen dagegen  von  MultiTOS-Features 
ungltig gemacht werden.

Damit  sollte  es mglich sein,  alle von  AESFONT  vernderten  Werte 
abzufragen.

9.2. Generelle Ratschlge
-------------------------
Diese Ratschlge zu beachten kann nicht schaden, auch wenn man AESFONT 
gar nicht explizit untersttzen mchte.

9.2.1. Resourcen
----------------
Allgemein  sollte  man sich bemhen,  alle Objekte  in  Resourcen  auf 
Zeichenkoordinaten  snappen zu lassen.  Eine Korrektur der  Mae  oder 
der  Position  um 1 Pixel stellt danach kein Problem  dar.  Das  wilde 
Erstellen  von Dialogboxen im Panel-Modus fhrt dagegen  zu  unschnen 
Ergebnissen, wenn die AES-Fontgre verndert wird.

9.2.2. Fonts
------------
Wer  nicht  davon ausgeht,  da AES-Fonts und  Default  Font  dasselbe 
sind, kann weder bei AESFONT noch bei MultiTOS auf die Nase fallen.

Der  Default  Font  ist derjenige,  den man  nach  dem  ffnen  seiner 
virtuellen Workstation mit vqt_attributes erfragen kann.

Welches  die  AES-Fonts  sind,  kann  man  auch  ohne  spezielle  AES-
Funktionen  herausfinden.  Es ist allerdings relativ  kompliziert  und 
kommt seinerseits nicht ohne Annahmen aus.

Ein  ausfhrliches  Beispiel zu dem Gesagten  liegt als  C-Quelle  dem 
Programmpaket bei.

Man sollte es tunlichst unterlassen,  Annahmen darber zu machen,  was 
die Werte in work_out[45]-[48] bedeuten. Der Autor von AESFONT seiner-
seits  nimmt  an,  da  es sich um die Gren des  kleinsten  und  des 
grten  Fontfaces des Systemfonts mit der Nummer 1 in  seiner  natr-
lichen Gre handelt. Nicht verstanden? War auch nicht beabsichtigt.


10. Der FONTselector
--------------------
Der  FONTselector 1.0  ist ein Hilfsaccessory und  -programm  fr  den 
AES Font Loader.  Mit  ihm  lassen sich die  aktuell  geladenen  Fonts 
anzeigen und Einstellungen fr AESFONT ttigen.

Der  aktuell  gltige Default Font kann  mit  Applikation  eingestellt 
werden,  der  aktuell  gltige AES Font mit Resource und  der  aktuell 
gltige Konsolenfont ber Console.
 
Die globalen Einstellungen fr AESFONT erreichen Sie ber Mens...  -> 
AESFONT...  Die  dort gettigten Einstellungen knnen  in  AESFONT.CNF 
abgespeichert werden.  Vorsicht:  Die alten Einstellungen werden dabei 
berschrieben.

Eine vollstndige Anleitung fr FONTselector 1.0 liegt z.Z. noch nicht 
vor.


11. Disclaimer:
---------------
Es wird lediglich zugesichert,  da das Programm in der Lage ist,  auf 
den  Rechnerserien Atari ST und TT unter TOS 1.0 bis 3.06 einen  neuen 
Font  beim  AES  anzumelden und da  dieser  im  wesentlichen  korrekt 
dargestellt wird.

Darberhinausgehende Programmeigenschaften mssen nicht unbedingt  auf 
jedem System funktionieren.

Jegliche Haftung ist ausgeschlossen.


12. Verwertungsrechte:
----------------------
Alle Versionen ab 1.0 des AES Font Loader sind Shareware.  Sie  drfen 
den  AES Font Loader  3 Wochen lang kostenlos  testen.  Wenn  Sie  das 
Programm  weiterhin nutzen mchten,  mssen Sie  die  Shareware-Gebhr 
von   DM  30.-  entrichten.   Damit  erhalten  Sie  gleichzeitig   die 
Nutzungsberechtigung fr das FONTselector-Accessory.

Wenn  Sie  die  Gebhr  nicht  entrichten,  mssen  Sie  das  Programm 
lschen.  Eine  lngerfristige Benutzung ohne Zahlung  der  Shareware-
Gebhr entspricht der widerrechtlichen Benutzung einer Raubkopie.

Fr geizige,  aber ehrliche Menschen sei an dieser Stelle der  Hinweis 
auf  die AESFONT-Versionen bis 0.99 erlaubt.  Diese sind Freeware  und 
drfen unentgeltich benutzt werden.

Sie  knnen einen Scheck an die unten angegebene Adresse  senden  oder 
eine  berweisung auf das Konto Nr. 56 62 671 bei der  Deutschen  Bank 
Hamburg,  BLZ 200 700 00 ttigen.  Bitte beachten Sie,  da ich  durch 
die berweisung nicht automatisch Ihre Adresse erhalte.

Alle  Rechte  an diesem Programm liegen bei  Hayo  Schmidt.  Die  Ver-
breitung ber private Diskettenkopien und Mailboxen mit einer  Jahres-
gebhr  unter  DM 125.-  ist  erlaubt.  Jegliche  darberhinausgehende 
Weiterverbreitung  mu genehmigt werden.  Wer  dagegen  verstt,  mu 
damit rechnen, auf Unterlassung in Anspruch genommen zu werden.

Insbesondere  die  Verbreitung der Shareware-Version  im  Zusammenhang 
mit  dem  Verkauf  von Monitoren oder Grafikkarten ist  nur  nach  Ab-
sprache mit dem Autoren zulssig.  Die Weitergabe der Freeware-Version 
durch Hndler ist hingegen erlaubt.

PD- und Shareware-Versender erhalten auf Anfrage kostenlos die aktuel-
len Programmversionen und die Genehmigung zur  Verffentlichung.  Vor-
aussetzung ist,  da die Preise im Rahmen des  blichen  liegen,  d.h. 
da z.Z. DM 10.- je Diskette nicht berschritten werden sollte.


Fehlermeldungen und konstruktive Kritik an:

E-Mail:
   Hayo Schmidt @ HH          MausNet
   Hayo_Schmidt@hh.maus.de    Internet

Gelbe P*st:
   Hayo Schmidt
   Grotiusweg 1
   22587 Hamburg

Hamburg 11/93  v1.01

