home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC4.DMS / in.adf / Archive / Prog.lha / Docs / TextAufbau < prev   
Encoding:
Text File  |  1994-02-14  |  17.5 KB  |  392 lines

  1.  
  2. Text-Aufbau
  3. ===========
  4.  
  5.    Diese  Datei  beschreibt  den  Aufbau eines Textes in HotHelps internem
  6. Text-Format.   Kenntnisse über dieses Format sind nur notwendig, wenn über
  7. einen  Handler  oder die Library-Funktion 'HH_ASyncCustomText ()' ein Text
  8. in  einem  HotHelp-Fenster  dargestellt  werden  soll,  der nicht in einer
  9. Projekt-Datei  vorliegt.   Ein  solcher  Text  muß  -  wenn  er an HotHelp
  10. übergeben wird - in HotHelps internem Text-Format vorliegen.
  11.  
  12.    Im  Normalfall kann dazu ein ganz normaler ASCII-Text verwendet werden,
  13. der  dann  mit  Hilfe der Funktion 'HH_Translate ()' in das HotHelp-Format
  14. umgesetzt  werden  kann.   Nur wenn diese Möglichkeit nicht genutzt werden
  15. soll  (weil  eine  100%ige  Kontrolle über den Aufbau des Textes notwendig
  16. ist), sollte der Text direkt in HotHelps internem Format aufgebaut werden.
  17.  
  18.    Das  HotHelp-Format  setzt  sich  zusammen  aus  dem normalen Text (der
  19. später  im  Fenster  ausgegeben wird) und einer Reihe von Steuercodes, die
  20. als Binär-Zahlen im Text eingestreut werden.  Im Augenblick sind nur Codes
  21. mit Werten zwischen 0 und 8 in Verwendung.  Im Hinblick auf Kompatibilität
  22. mit  zukünftigen  Versionen  sollten  aber  grundsätzlich keine Binärwerte
  23. kleiner   20  verwendet  werden  (mit  Ausnahme  von  'Tab'  und  'Return'
  24. natürlich).   Sinnvoll  wären  solche  Codes sowieso nicht, da sie von der
  25. 'Text ()'-Routine nicht vernünftig ausgegeben werden können.
  26.  
  27.    Während   HotHelp   bei   Verwendung   von  'HH_Translate  ()'  den  zu
  28. übersetzenden Quelltext auf mögliche Fehler hin untersucht, wird ein Text,
  29. der  in  HotHelps  internem  Format vorliegt, keiner weiteren Untersuchung
  30. mehr  unterzogen  - HotHelp geht davon aus, daß der Text aus zuverlässiger
  31. Quelle  stammt ('HH_Translate ()', HotHelpComp) und verläßt sich auf seine
  32. Integrität.   Die  fehlerhafte  Definition  eines solchen Textes kann dann
  33. beliebig katastrophale Folgen haben!
  34.  
  35.  
  36. Textende
  37. ========
  38.  
  39.    Als  letztes  Zeichen  des  Textes  muß  unbedingt der Ende-Code '\x00'
  40. angegeben werden.
  41.  
  42.  
  43. Absätze
  44. =======
  45.  
  46.    Die  kleinste  Einheit,  in  die  Texte  eingeteilt werden können, sind
  47. Absätze.   Die  Aufteilung  in  Zeilen  wird  erst  später bei der Ausgabe
  48. vorgenommen  und richtet sich nach der dann aktuellen Fenster-Breite.  Der
  49. gesamte  Text  eines  Absatzes  muß  also in einer einzigen Zeile abgelegt
  50. werden.    Erst   am   Ende   dieser   überlangen   Zeile  darf  dann  der
  51. Zeilenvorschub-Code   '\n'   verwendet   werden,   der   von  HotHelp  als
  52. Absatzende-Code  verwendet  wird.  Um hinter einem Absatz ein oder mehrere
  53. Leerzeilen   einzufügen,  werden  entsprechend  viele  weitere  '\n'-Codes
  54. eingesetzt.
  55.  
  56.    Hier  ein  Beispiel  für die Aufteilung eines Textes in Absätze.  Würde
  57. der  folgende  String  an  HotHelp  zur Darstellung übermittelt, würde die
  58. darauf   folgende   Ausgabe   erzeugt   (der   Rahmen   repräsentiert  das
  59. HotHelp-Fenster):
  60.  
  61.    "Dies ist ein kleiner Beispiel-Text.\nabcdefgh\n\nijklmnopq\n\x00"
  62.  
  63.    +-----------------+
  64.    |Dies ist ein     |
  65.    |kleiner Beispiel-|
  66.    |Text.            |
  67.    |abcdefgh         |
  68.    |                 |
  69.    |ijklmnopq        |
  70.    +-----------------+
  71.  
  72.    Obwohl  in  Zeile  3  noch  genug  Platz  wäre,  um den Text 'abcdefgh'
  73. aufzunehmen,  wird  dieser  in  einer  neuen  Zeile  ausgegeben, da hinter
  74. 'Text.' ein Absatzende definiert wurde.  Die folgende Leerzeile wird durch
  75. die  beiden  aufeinanderfolgenden  '\n's erzeugt.  Am Textende könnte auch
  76. auf den Zeilenvorschub verzichtet werden.
  77.  
  78.  
  79. Einrückungen
  80. ============
  81.  
  82.    Für jeden Absatz können zwei Einrückungs-Tiefen vorgegeben werden:  die
  83. Tiefe  der ersten ausgegebenen Zeile und die Tiefe aller folgenden Zeilen.
  84. Im  Normalfall wird keine Zeile eingerückt; eine Einrückung muß durch eine
  85. eigene   Marke   angefordert  werden.   Es  darf  nicht  versucht  werden,
  86. Einrückungen  durch  Einfügen von Blanks oder Tabulatoren zu erzeugen:  am
  87. Anfang  eines  Absatzes  werden  diese  übersprungen und befinden sie sich
  88. innerhalb  eines  Absatzes, so können sie bei verschiedenen Fensterbreiten
  89. auch  an  ganz  verschiedenen Positionen innerhalb der Zeilen auftauchen -
  90. selten jedoch genau am Zeilenanfang!
  91.  
  92.    Um  für einen Absatz eine bestimmte Einrückungs-Tiefe zu bestimmen, muß
  93. das  ERSTE  Zeichen  des Absatzes der Code '\x03' sein.  Das folgende Byte
  94. gibt  dann  die  Einrückungstiefe für die erste Zeile des Absatzes an, das
  95. nächste Byte die Tiefe für alle weiteren Zeilen.  Es können Werte zwischen
  96. 0  (keine  Einrückung)  und 127 (paßt auf keinen normalen Bildschirm mehr)
  97. angegeben  werden.  Der Code darf nur unmittelbar am Anfang eines Absatzes
  98. und sonst nirgendwo verwendet werden.
  99.  
  100.    Dazu wieder ein Beispiel.  Die erste Zeile des zweiten Absatzes wird um
  101. 8  Schritte  eingerückt, alle weiteren Zeilen um 4.  Andere als der zweite
  102. Absatz  werden  davon nicht betroffen - wird keine Einrückung angefordert,
  103. werden die Zeilen auch nicht eingerückt.
  104.  
  105.    "BlaBla.\n\x03\x08\x04Quassel Quassel Bläh Blubber\nTest Test\x00"
  106.  
  107.    +-----------------+
  108.    |BlaBla.          |
  109.    |        Quassel  |
  110.    |    Quassel Bläh |
  111.    |    Blubber      |
  112.    |Test Test        |
  113.    +-----------------+
  114.  
  115.  
  116. Querverweise
  117. ============
  118.  
  119.    Soll  ein Teil eines Textes als Querverweis definiert werden, so muß er
  120. durch den Querverweis-Codes eingerahmt werden.  Vor dem ersten Zeichen des
  121. Querverweises  muß  in jedem Fall der Code '\x01' eingefügt werden.  Stößt
  122. HotHelp  bei der Ausgabe auf diesen Wert, so wird der folgende Text farbig
  123. hervorgehoben.   Das  Ende  des  Querverweises  kann nun auf verschiedenen
  124. Wegen angezeigt werden:
  125.  
  126.     Um  einen  ganz  normalen  Querverweis  zu  definieren, wird hinter dem
  127. Querverweis-Text der Code '\x02' eingefügt.
  128.  
  129.     Soll  ein  Querverweis  mit zusätzlicher Projekt-Angabe erzeugt werden,
  130. müssen  hinter  dem  Querverweis-Text selber die folgenden Codes eingefügt
  131. werden:  '\x08', '??', '\x06' und '\xFF'.  Direkt danach muß dann der Name
  132. des  gewünschten  Projektes  eingefügt  werden.   Dieser String darf nicht
  133. 0-terminiert sein und hat eine Maximallänge von 'HH_PROJECT_LEN - 1'.  Die
  134. Länge  dieses  Strings  muß  (um  vier  erhöht) anstelle des oben mit '??'
  135. markierten Bytes in den Text eingefügt werden.
  136.  
  137.     Um  einem  Querverweis  ein ARexx-Kommando zuzuordnen, wird prinzipiell
  138. genauso  vorgegangen  wie  beim  Projekt-Querverweis.   Die Codefolge, die
  139. hinter  dem  Querverweis eingefügt werden muß, lautet jetzt jedoch '\x08',
  140. '??',  '\x07'  und  '\xFF'.   Als  nächstes  muß  dann  der String mit dem
  141. ARexx-Befehl  eingefügt werden, der ebenfalls nicht 0-terminiert sein darf
  142. und  eine  Maximallänge  von 'HH_AREXX_LEN - 1' Bytes haben darf. Anstelle
  143. von '??' muß auch hier die Länge des Strings + 4 eingesetzt werden.
  144.  
  145.    Taucht  in  einem ARexx-Kommando das Zeichen '|' auf, verwendet HotHelp
  146. den  Text  vor  dem  Zeichen  als  Host-Name,  die  Zeichen  dahinter  als
  147. eigentliches  Kommando.   Taucht  das  Zeichen nicht auf, wird der gesamte
  148. String an den ARexx-Host übermittelt.
  149.  
  150.    Der  Querverweis  selber darf niemals länger als 'HH_KEY_LEN - 1' Bytes
  151. sein  -  längere  Verweise  führen  spätestens  bei  der Auswahl durch den
  152. Benutzer zum Überlauf eines internen Puffers!
  153.  
  154.    Die  folgenden  Texte  definieren - umrahmt von normalen Text, der hier
  155. durch  Punkte  symbolisiert  wird  -  einen  normalen  Querverweis,  einen
  156. Projekt-Querverweis und einen ARexx-Querverweis:
  157.  
  158.    "...\x01Normaler Querverweis\x02..."
  159.    "...\x01Projekt-Querverweis\x08\x10\x06\xFFProjekt-Name..."
  160.    "...\x01ARexx-Querverweis\x08\x12\x07\xFFARexx-Kommando...\x00"
  161.  
  162.    In  Zeile  2  und  3  sind  die  erweiterten  Texte ('Projekt-Name' und
  163. 'ARexx-Kommando')  nicht vom folgenden normalen Text abgetrennt.  Dies ist
  164. auch nicht notwendig, da HotHelp bei der Ausgabe hinter der abschließenden
  165. Marke einfach soviele Bytes überspringt, wie das entsprechende Längen-Byte
  166. angibt.
  167.  
  168.  
  169. Schriftarten
  170. ============
  171.  
  172.    Um   eine   bestimmte  Schriftart  anzuforden,  wird  der  Code  '\x04'
  173. verwendet.   Im darauffolgenden Byte wird dann ein Code für die geforderte
  174. Schriftart  selber  abgelegt.   Hierfür  sind  nur  Werte zwischen 0 und 7
  175. erlaubt:
  176.  
  177.    0: Normal
  178.    1: Unterstrichen
  179.    2: Fett
  180.    3: Fett + Unterstrichen
  181.    4: Kursiv
  182.    5: Kursiv + Unterstrichen
  183.    6: Fett + Kursiv
  184.    7: Fett + Kursiv + Unterstrichen
  185.  
  186.    Die  Schriftart  wird  beibehalten, bis der aktuelle Absatz beendet ist
  187. oder  bis  durch  eine  weitere  Schriftart-Marke  eine  andere Schriftart
  188. angefordert wird.
  189.  
  190.    Das Beispiel gibt einen unterstrichenen Text, einen normalen, einen mit
  191. allen  drei  möglichen  Schriftarten versehenen und einen fetten Text aus.
  192. Am  Absatzende  wird dann automatisch wieder auf Normal-Text umgeschaltet,
  193. so daß ein noch folgender Absatz wieder normal ausgegeben würde.
  194.  
  195.    "\x04\x01Unterstrichen\x04\x00Normal\x04\x07Alle Styles\x04\x04Fett\n"
  196.  
  197.  
  198. Fließtext
  199. =========
  200.  
  201.    Normalerweise  wird  aller  Text  von  HotHelp als Fließtext behandelt;
  202. d.h., daß der Text bei der Ausgabe anhand der aktuellen Fenster-Breite und
  203. der  Breite des verwendeten Zeichensatzes formatiert wird.  Ist dies nicht
  204. gewünscht,  kann  über  eine  Kennung festgelegt werden, daß die folgenden
  205. Zeilen  nicht umgebrochen werden sollen; falls eine Zeile zu breit für das
  206. Fenster  wird,  kann  der  Fensterinhalt  über die drei Gadgets am unteren
  207. Fensterrand gescrollt werden.
  208.  
  209.     Die  Fließtext-Marke  wirkt  dabei  als  Umschalter:   bei ihrem ersten
  210. Auftreten   schaltet   sie  die  Fließtext-Darstellung  aus,  so  daß  die
  211. Folgezeilen  als  Nicht-Fließtext betrachtet werden; das nächste Auftreten
  212. schaltet  den Fließtext dann wieder ein etc.  Die folgenden Zeichen müssen
  213. in  den  Text  eingefügt werden, um die Darstellung umzuschalten:  '\x08',
  214. '\x03' und '\x09'.
  215.  
  216.  
  217. AmigaGuide-Querverweis
  218. ======================
  219.  
  220.    Um  die  Darstellung  von AmigaGuide-Texten zu ermöglichen, wurde diese
  221. neue  Marke  eingeführt.   Sie kann nicht über HotHelpComp erzeugt werden,
  222. sondern  wird  lediglich  intern verwendet.  Die Marke wird ebenso benutzt
  223. wie   die   übrigen  Querverweis-Marken,  mit  dem  Unterschied,  daß  das
  224. Querverweis-Ende  jetzt  durch  die  Codes '\x08', '??', '\x08' und '\xFF'
  225. dargestellt  wird - alles andere bleibt gleich (Einleiten mit '\x01', nach
  226. den  Ende-Code folgt der nicht 0-terminierte Folgestring, dessen Länge + 4
  227. anstelle von '??' abgelegt werden muß).
  228.  
  229.    Der Folgestring hat es aber nun in sich.  Enthält er weder ein ':' noch
  230. ein  '/',  wird  er als ganz normaler Schlüssel-Begriff angesehen, der mit
  231. diesem Querverweis verknüpft ist.  Gegenüber normalen Querverweisen können
  232. sich  hier  also  der  sichtbare  Teil  (der  im Fenster hervorgehoben und
  233. ausgewählt  werden  kann)  und  der  zu  dem  Verweis  gehörende Schlüssel
  234. unterscheiden (wie dies beim AmigaGuide üblich ist).
  235.  
  236.    Enthält  der  String  einen  ':'  oder mindestens zwei '/', wird er als
  237. Dateiname  angesehen.   HotHelp  lädt  dann  die entsprechende Datei nach.
  238. Enthält  der Dateiname keinen ':', wird ab OS 2.0 der Pfadname relativ zum
  239. Inhalt der Umgebungs-Variablen 'AmigaGuide/Path' ausgewertet.  Die Ausgabe
  240. beginnt   normalerweise   mit  der  ersten  Zeile  des  Textes;  soll  die
  241. Darstellung  mit  einer anderen Zeile beginnen, muß deren Nummer (von 0 an
  242. gezählt)  durch  ein  Semikolon  getrennt  am  Ende  des Strings angegeben
  243. werden.   HotHelp  ignoriert  -  von  dieser Zahl abgesehen - alle Zeichen
  244. hinter dem letzten '/'-Zeichen des Strings.
  245.  
  246.    Enthält  der  String  nur  einen einzigen '/' und stellt der Teilstring
  247. davor   den   Namen   eines  Projektes  dar,  wird  der  Begriff  als  ein
  248. Projekt-Querverweis   aufgefaßt   -  andernfalls  wird  er  ebenfalls  als
  249. Dateiname behandelt.
  250.  
  251.    Wie  üblich  dürfen  die Querverweise nicht länger als 'HH_KEY_LEN - 1'
  252. Bytes sein.  Hier einige Beispiele:
  253.  
  254.    "...\x01Normaler Querverweis\x08\x0A\x08\xFFNormal..."
  255.    "...\x01Projekt-Querverweis\x08\x11\x08\xFFGlossar/ASCII..."
  256.    "...\x01Datei-Querverweis\x08\x18\x08\xFFWork:Datei-Name/Main..."
  257.    "...\x01Datei-Querverweis\x08\x18\x08\xFFTexte/Hilfe/Main;123...\x00"
  258.  
  259.    In  Fall  1  wird  bei  der  Ausgabe  der  Text  'Normaler Querverweis'
  260. angezeigt,  der  über  Maus  oder  Tastatur  ausgewählt  werden kann.  Der
  261. zugehörige  String  ("Normal")  enthält  weder '/' noch ':', so daß er als
  262. ganz   normaler   Schlüssel-Begriff  behandelt  wird.   Bei  Fall  2  wird
  263. 'Projekt-Querverweis' angezeigt.  Der zugeordnete String enthält lediglich
  264. einen   '/'   und  deutet  so  an,  daß  der  Schlüssel  'ASCII'  aus  dem
  265. 'Glossar'-Projekt gemeint ist.
  266.  
  267.    Beispiel  3  und 4 werden beide als 'Datei-Querverweis' angezeigt.  Der
  268. String des dritten Querverweises enthält einen Doppelpunkt, so daß es sich
  269. offensichtlich  um  einen  Dateinamen  handelt.   Geladen  wird  die Datei
  270. 'Work:Datei-Name'  -  der Schlüssel-Begriff 'Main' am Ende wird ignoriert.
  271. Der  letzte Querverweis bezieht sich ebenfalls auf eine Datei, da mehr als
  272. ein   '/'  auftaucht.   Der  Name  wird  relativ  zur  Umgebungs-Variablen
  273. 'AmigaGuide/Path'  ausgewertet  und  bezieht  sich  auf  eine Datei namens
  274. 'Hilfe' im Verzeichnis 'Texte'.  Die Datei wird ab Zeile 123 dargestellt.
  275.  
  276.  
  277. Kapitel
  278. =======
  279.  
  280.     Diese  Marke  ermöglicht  es (neben der Verwendung von Gruppen-Titeln),
  281. einem  Text  einen  weiteren  Text als Kapitel-Übersicht zuzuordnen.  Dazu
  282. wird  dem Eintrag mit Hilfe dieser Marke ein Schlüssel-Begriff zugeordnet;
  283. betätigt  der  Benutzer  dann  das  Kapitel-Gadget,  wird  der  zu  diesem
  284. Schlüssel    gehörende    Eintrag    angezeigt.     Der    so   definierte
  285. Kapitel-Querverweis wird bei der Ausgabe unterdrückt.
  286.  
  287.    Um  einen solchen Kapitel-Namen zu vergeben, muß die Code-Folge '\x08',
  288. '??',  '\x00',  '\FF'  in den Text eingefügt werden.  Unmittelbar dahinter
  289. folgt  dann der Schlüssel-Begriff selber (nicht '\0'-terminiert).  Er darf
  290. maximal  'HH_KEY_LEN  -  1' Zeichen lang sein.  Er wird ebenso ausgewertet
  291. wie  der  Schlüssel-Begriff eines AmigaGuide-Querverweises.  Die Länge des
  292. Strings + 4 muß anstelle von '??' eingesetzt werden.
  293.  
  294.    "...\x08\x15\x00\xFFKapitel-Übersicht..."
  295.  
  296.     Dieses  Beispiel  definiert  'Kapitel-Übersicht'  als  String,  der bei
  297. Auswahl des Kapitel-Gadgets als neuer Suchschlüssel verwendet wird.
  298.  
  299.  
  300. Vorgängertext, Nachfolgertext
  301. =============================
  302.  
  303.     Ähnlich  wie  bei der Kapitel-Angabe können über diese Marken Schlüssel
  304. angegeben werden, die bei Auswahl des Pfeil-links- (<) bzw.  Pfeil-rechts-
  305. (>)  Gadgets  verwendet  werden sollen.  Dazu wird genauso vorgegangen wie
  306. bei  der  Definition  des  Kapitel-Schlüssels;  für  den Vorgängertext muß
  307. lediglich   anstelle   des   '\x00'-Bytes   der   Wert   '\x02',  für  den
  308. Nachfolgertext der Wert '\x04' eingesetzt werden.
  309.  
  310.    "...\x08\x0B\x02\xFFVortext..."
  311.    "...\x08\x0D\x04\xFFFolgetext..."
  312.  
  313.     Beispiel  1 belegt das '<'-Gadget mit dem Schlüssel 'Vortext', Beispiel
  314. 2 versieht das '>'-Gadget mit dem Schlüssel 'Folgetext'.
  315.  
  316.  
  317. Farbe
  318. =====
  319.  
  320.    Über  diese  Marke  kann  die  Vorder-  und Hintergrundfarbe des Textes
  321. geändert  werden.   Dazu werden die folgenden Codes in den Text eingefügt:
  322. '\x08',  '\x04',  '\x0A' und '??'.  Anstelle von '??' muß ein Code für die
  323. gewünschten  Farben eingesetzt werden.  Die oberen vier Bit werden für die
  324. Hintergrund-,  die  unteren 4 Bit für die Vordergrund-Farbe verwendet.  Es
  325. können jeweils die folgenden 9 Werte eingesetzt werden, die den Indizes in
  326. das  Feld  'dri_Pens'  der  DrawInfo-Struktur  entsprechen (zum Setzen der
  327. Hintergrundfarbe   muß  der  entsprechende  Wert  um  4  Bits  nach  links
  328. verschoben  werden;  also  z.B.   zum  Setzen  des FILLPENS '\x05' für die
  329. Vordergrundfarbe und '\x50' für die Hintergrundfarbe):
  330.  
  331.    0 - DETAILPEN
  332.    1 - BLOCKPEN
  333.    2 - TEXTPEN
  334.    3 - SHINEPEN
  335.    4 - SHADOWPEN
  336.    5 - FILLPEN
  337.    6 - FILLTEXTPEN
  338.    7 - BACKGROUNDPEN
  339.    8 - HIGHLIGHTTEXTPEN
  340.  
  341.    Soll  die  entsprechende Farbe unverändert bleiben, muß der Wert '\x0F'
  342. (bzw. '\xF0' für die Hintergrundfarbe) eingesetzt werden.
  343.  
  344.     "...\x08\x04\x0A\x13..."
  345.     "...\x08\x04\x0A\xF2..."
  346.  
  347.     Das  erste  Beispiel  setzt  die  Vordergrundfarbe auf SHINEPEN und die
  348. Hintergrundfarbe    auf   BLOCKPEN.   Im   zweiten   Beispiel   wird   die
  349. Hintergrundfarbe unverändert beibehalten, während die Vordergrundfarbe auf
  350. den TEXTPEN gesetzt wird.
  351.  
  352.  
  353. Gruppen-Listen, Gruppen-Titel und Gruppen-Querverweise
  354. ======================================================
  355.  
  356.    Die  Verwendung  dieser Objekte ist nicht möglich, da Gruppen eindeutig
  357. einem  Projekt zugeordnet sein müssen.  Wird aber ein Text an HotHelp über
  358. einen  Handler  oder  'HH_ASyncCustomText  ()'  übermittelt, gehört dieser
  359. logischerweise  keinem  Projekt  an,  so  daß er auch keine Gruppen-Listen
  360. verwenden darf.
  361.  
  362.  
  363. Übersicht
  364. =========
  365.  
  366.    Textende:                     \x00
  367.    Start Querverweis:            \x01
  368.    Ende Querverweis:             \x02
  369.    Einrückung:                   \x03 i1 i2
  370.    Schriftart:                   \x04 s
  371.    Ende Projekt-Querverweis:     \x08 l \x06 \xFF str
  372.    Ende ARexx-Querverweis:       \x08 l \x07 \xFF str
  373.    Ende AmigaGuide-Querverweis:  \x08 l \x08 \xFF str
  374.    Fließtext-Toggle:             \x08 \x03 \x09
  375.    Kapitel:                      \x08 l \x00 \xFF str
  376.    Vorgängertext:                \x08 l \x02 \xFF str
  377.    Nachfolgertext:               \x08 l \x04 \xFF str
  378.    Farbe:                        \x08 \x04 \x0A f
  379.    Tabulator:                    \t
  380.    Absatzende:                   \n
  381.  
  382.    i1, i2:  Zwei Bytes mit den Einrückungs-Tiefen.
  383.    s:       Ein Byte mit dem Code der gewünschten Schriftart.
  384.    l:       Ein  vorzeichenloses  Byte mit der Länge des folgenden Strings
  385.             'str', erhöht um den Wert 4.
  386.    str:     Ein String der Länge 'l - 4', nicht '\0'-terminiert.
  387.    f:       Ein Byte, das die Vorder- und Hintergrundfarbe angibt.
  388.  
  389.    Die  Codes  '\x05'  und  '\x06'  sind  für  die  Verwendung von Gruppen
  390. reserviert   und   dürfen  daher  nicht  angegeben  werden  (siehe  oben).
  391. Tabulatoren und Absatzenden werden mit den üblichen Zeichen definiert.
  392.