   V1.0                                              Hamburg, den 24.11.93

   HINWEIS:  Dieses  ist  im  wesentlichen die  Anleitung  einer  frheren 
   Version  aus  dem Jahre 1991.  Die aktuelle Version ist  hiermit  nicht 
   vollstndig beschrieben.  Bei Lust und Gelegenheit werde ich die Anlei-
   tung auf den aktuellen Stand bringen.


   Liebe ATARI ST-Freunde,

   Der FONTselector  ist  Bestandteil  des  AES Font Loader-Paketes.   Das 
   Paket  ist zu privaten Zwecken frei kopierbar und  darf   weitergegeben 
   werden.  Die  dauerhafte Nutzung erfordert die Zahlung  der  SHAREWARE-
   Gebhr fr AESFONT.

   Der FONTselector ist ein kombiniertes Accessory/Programm,  d.h Sie kn-
   nen es als ACC oder als PRG starten.

   Der FONTselector ermglicht die Auswahl von geladenen GDOS-Fonts.

   Der FONTselector  arbeitet  (hoffentlich) in jeder  noch  so  abstrusen 
   Auflsung.

   Der FONTselector wurde in Pure-C geschrieben.


   Hier nun eine kurze Beschreibung der Elemente des Dialogfensters:
   ----------------------------------------------------------------- 
    
   Das  FONTselector-Fenster  funktioniert im Grundsatz  genauso  wie  das 
   Kontrollfeld,  d.h. Sie knnen die Box innerhalb des Bildschirms belie-
   big verschieben.

   Zustzlich ist eine Tastatursteuerung integriert.

   Im  'FONT #'-Feld wird die Font-Identifikation des  Fonts  eingestellt. 
   Dazu sind die Pfeile anzuklicken.
   Tasten: Cursor links/rechts.

   Der  aktuelle  Zeichensatz  kann gleichfalls ber  das  Popup-Men  des 
   FONTselector-Image eingestellt werden.

   Mit  'POINTS'  wird  die  Zeichengre  eingestellt.
   Tasten: Cursor hoch/runter.

   Im  groen,  grauen  Feld wird der aktuelle Font in  der  eingestellten 
   Gre  angezeigt.  Durch  einfaches Anklicken  des  Feldes,  wird  eine 
   Tabelle des angezeigten Fonts gezeigt.
   Taste: F1.
   Durch  Doppelklick  wird eine Tabelle des  aktuellen  Console-Fonts  in 
   einem  riesigen Fenster gezeigt.
   Taste: F2.

   Darunter steht der Name des Fonts.

   Durch  Doppelklick  auf das FONTselector-Logo erhlt man  eine  Tabelle 
   des Default-System-Fonts.
   Taste: F3.

   'Fonts  laden' fhrt ein vst_load_fonts() fr die  VDI-Workstation  von 
   FONTSLCT durch.
   Taste: Insert.

   'Fonts entladen' fhrt ein vst_unload_fonts() durch.
   Taste: Delete.

   'SPEZIALEFFEKTE' stellt die Texteffekte wie kursiv und fett ein.
   Tasten: erster Buchstabe.

   'EINSTELLEN FR' stellt den aktuellen Font ein als
          'Resource '- fr Mens und GEM-Dialoge.
          Taste: R.
          'Applikation' - kann und soll von anderen Programmen  ausgelesen 
          werden.  Setzt  im Zusammenhang mit AESFONT einen neuen  Default 
          Font fr neuerffnete virtuelle Workstations.
          Taste: Return.
          'Console' - meldet mit v_fontinit() einen 8 Pixel  breiten,  fixen 
          Font als Console-Font an.
          Taste: C.

   Im 'MODUS'-Feld wird eingestellt,  ob die Einstellung  im 'points' mode 
   (vst_points())  oder im 'absolute' mode (vst_height())  erfolgen  soll. 
   Mit dem selektierten 'points'-Knopf kann ein Popup mit den  verfgbaren 
   Punktgren des aktuellen Fonts aufgerufen werden.
   Tasten: erster Buchstabe.

   ber  'Mens...'  werden weitere Features  des  FONTselector  erreicht. 
   U.a.  ist  hier ein Konfigurationsdialog fr  AESFONT  erreichbar.
   Die exakte Beschreibung hierzu ist noch nicht fertig.

   Die Help-Taste liefert einige Seiten Hilfstext.

   Die  Esc-Taste zeichnet das FONTselector-Fenster neu,  Shift-Esc  fhrt 
   einen Redraw fr den gesamten Bildschirm aus.

   Mit dem Schliefeld des Fensters wird das Fenster geschlossen.
   Tasten: Ctrl-U, Ctrl-C

   Die  meisten Objekte der Resource knnen mit einem RCS gesetzt  werden. 
   Sie  werden beim Erststart als FONTselector-Voreinstellungen  beachtet.  
   In   'FONT#'  und  'POINTS'  stehen  die  jeweiligen  Maximalwerte  des 
   Nummernkreises. Der MODUS und die SCHRIFTART werden beachtet.

   Der  FONTselector  besitzt  eine interne  Datenstruktur,  auf  die  aus 
   anderen  Programmen  heraus zugegriffen  werden  kann.  Bei  Accessory-
   Betrieb  kann die Adresse dieser Struktur ber die Message  0xF05E  und 
   Sub-msgcode  1  in  Wort 3 des  bergebenen  Buffers  abgefragt  werden 
   (mittels appl_write()).  Man erhlt dann die Message 0xF05E zurck  mit 
   Sub-msgcode 2 und der Adresse in Wort 4 und 5.

   Sinnvoll  wird der Einsatz im Programmbetrieb erst durch die  Benutzung 
   des Cookie-Jars.   Der Cookie  mit der Kennung 'FOse' wird vom Programm 
   FOSEINST.PRG installiert,  das am besten aus dem Auto-Ordner  gestartet 
   wird.  Das Programm installiert zustzlich die Datenstruktur  resident. 
   Ansonsten startet der FONTselector das Programm nach,  wenn es im Auto-
   Ordner  oder im FONTSLCT-Ordner zu finden ist.  Das Programm ist  nicht 
   zwingend notwendig,  wenn man auf den Cookie-Eintrag und die  residente 
   Speicherung  der Datenstruktur verzichten kann.  Der Cookie 'FOse'  und 
   enthlt einen Zeiger auf die programminterne Datenstruktur.

   Auf  die  Struktur   kann aus  anderen  Programmen  heraus  zugegriffen 
   werden.   Dadurch   kann  in  anderen  Programmen  ber  FONTSLCT   ein 
   bestimmter  Font und eine Gre ausgewhlt werden.  Auerdem ist  diese 
   Datenstruktur  das Elefantengedchtnis,  wenn Sie den FONTselector  nur 
   als  Programm  verwenden   -  alle  Einstellungen  bleiben  auch   nach 
   Programmende erhalten.

   Wenn  Sie  das  Dialogfenster an  einer  bestimmten  Stelle  erscheinen 
   lassen wollen,  dann knnen Sie die X- und Y-Koordinate des  Dialogfel-
   des - entsprechend den Koordinaten des Arbeitsbereiches des Fensters  - 
   manipulieren.

   Offset    Typ    Zugriff      Inhalt      Bedeutung
   
    0        LONG   read only    "FOse"      Kennung - zur  berprfung 
                                             der Gltigkeit des Zeigers. 
    4        LONG   read only    $00010000   Versionsnummer.


    8        WORD   read only    $....       Font-ID des im  Beispiel-
                                             fenster dargestellten Fonts.
   10        WORD   read only    $....       Fonthhe.

   12        WORD   read/write   $....       Texteffekt.
                                                 
   14        WORD   read/write   $0001       Modus: points   = 1
                              o. $0000              absolute = 0.
                                           
   16        WORD   read         $....       Font-ID des Application-
                                             Fonts.
   18        WORD   read         $....       Fonthhe.

   20        WORD   read         $....       Texteffekt.

   22        WORD   read         $0000       Modus.
                              o. $0001       

   24        WORD   read only    $....       Font-ID des Resource-Fonts.
                                             
   26        WORD   read only    $....       Fonthhe.

   28        WORD   read only    $....       Texteffekt.


   30        WORD   read/write   $....       X-Koordinate der Dialogbox.

   32        WORD   read/write   $....       Y-Koordinate.

   34        WORD   read only    $....       Breite.

   36        WORD   read only    $....       Hhe.


   38        WORD   read/write   $....       VDI-Handle von FONTSLCT.

   40        WORD   read only    $....       Handle des Fensters.


                                
   Bei den Texthhenmodi gilt der Wert 1 fr den points mode,  0  fr  den 
   absolute mode.  Alle anderen Werte fhren dazu, da der aktuelle Status 
   der 'MODUS'-Buttons gilt.  Fr Resourcen ist der Modus natrlich  immer 
   absolute.

   Auf  die Datenstruktur soll aus anderen Programmen zugegriffen  werden. 
   Es  bleibt dabei dem Programmierer berlassen,  ob er  den  angezeigten 
   Beispielfont oder den gewhlten Application-Font verwendet.

   Die  mit  'write'  gekennzeichneten Werte knnen  auch  extern  gesetzt 
   werden. Nach Vernderung der Werte ist ein Redraw auszulsen.

   Der  VDI-Handle   kann  auf den  eines  anderen  Programmes   umgebogen 
   werden,  wodurch der FONTselector de facto auf einer fremden  VWorksta-
   tion arbeitet.  Der Handle kann durch den Wert -1 wieder  zurckgesetzt 
   werden.  Der VDI-Handle  ist beim Schlieen der VWorkstation auf  jeden 
   Fall rckzusetzten.

   Wenn FONTSLCT.PRG mit pexec() gestartet wird,  kann durch die  bergabe 
   des  Kommandos  'X'  (1  Zeichen) die  Ausgabe  der  meisten  Meldungen 
   unterdrckt werden.  Hierzu gehrt insbesondere der Alert, wenn sie den 
   VDI-Handle  vom FONTselector auf den eigenen umbiegen.  Die  mglicher-
   weise geladenen GDOS-Fonts werden beim terminieren nicht entladen.

   Als Beispiel knnen Sie sich das Programm FOSEEXMP.GFA ansehen.

   Da alle GDOS-Versionen unter AMCGDOS 4.0  die Wanze enthalten,  da mit 
   vst_load_fonts()  erstmalig  geladene Fonts in  der  Speicherverwaltung  
   die gerade geladene Hauptapplikation als Owner verpat bekommen,  biegt 
   FONTSLCT.ACC  vor  dem  Aufruf 'load fonts'  den  aktuellen  Prozedes-
   kriptor auf die eigene Basepage (was laut Atari illegal  ist).  Ansons-
   ten  wrden  nach dem Verlassen der  Hauptapplikation  die  Speicherbe-
   reiche  mit den Fonts wieder freigegeben und diese  berschrieben,  was 
   natrlich  beim  nchsten Ausgabeversuch mit diesen Fonts  zum  Absturz 
   fhrte.

   Warnung:
   -------- 
   FONTselector  darf mit dem Accessory 'The Chameleon'  installiert  wer-
   den.   Jedoch   kann  der  FONTselector   auerhalb  des   GEM-Desktops 
   FOSEINST.PR?  nicht nachladen,  da es dann zum Absturz kme.  Also  ist 
   FOSEINST vorher zu starten.
   Auf  meiner  Konfiguration (TOS 1.4) strzte in diesem Fall  jede  lau-
   fende  Hauptapplikation ab,  nicht jedoch der FONTselector.  Der  Grund 
   dafr  liegt  im Dunkeln des TOS,  aber es wird wohl nicht  ohne  Grund 
   davor gewarnt pexec() aus Accessories aufzurufen.
   Desgleichen   strzt  das  System ab,  wenn  zwei  Accessories  in  der 
   Bootphase ein pexec() durchfhren (vermutlich deswegen!?).

   Im folgenden ein Zitat des Atari Programmierers Allan Pratt:

   C. Kaernbach's question was why his accessory, which basically did
   a Pexec from a file selector, didn't always work.  The answer is that
   it works when used within a program which has returned enough memory to
   the OS for the child.  Why might it bomb?  Because if a program has
   returned a *little* memory to the OS (only about 2K), a bug in Pexec 
   shows up that breaks the memory manager.  Accessories are strange beasts
   anyway, so for the most part combining two strange beasts (Accessories
   and Pexec) is bad news.

   /----------------------------------------------\
   | Opinions expressed above do not necessarily  | -- Allan Pratt, Atari Corp.
   | reflect those of Atari Corp. or anyone else. |    ...lll-lcc!atari!apratt
   \----------------------------------------------/    (APRATT on GEnie)

   Es  mu  hier  zugegeben  werden,  da FOseINST  in  das  letzte  obere 
   Kilobyte des Speicher gequetscht wird,  um eine  Speicherfragmentierung 
   zu vermeiden.
   Demnach  ist  bei Abstrzen dieses Accessories in der  Bootphase  immer 
   zunchst ein Versuch mit FOseINST im Auto-Ordner zu machen.

   Disclaimer:
   ----------- 
   Fr  die  Funktionsfhgkeit dieses Software-Produktes wird  weder  eine 
   Gewhr  gegeben,  noch  kann  eine Haftung  fr  eventuell  auftretende 
   Schden an Ihrer Hard- und Software bernommen werden.

   Adresse:
   -------- 
   Hayo Schmidt
   Grotiusweg 1
   22587 Hamburg

   EMail:
   ------
   MausNet: Hayo Schmidt@HH
   
   Bankverbindung:
   --------------- 
   Deutsche Bank Hamburg, Bankleitzahl 200 700 00, Konto-Nr. 56 62 671


   ---------------------------------------- 
   [FONTselector is a trademark of HayoSoft]
   [GFA-BASIC is a trademark of GFA-Systemtechnik]

