•  Back 
  •  Line-A 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File6.13  Text block transfer                                          TOS

 Name:          »Text block transfer«

 Line-A Nummer: $A008

 Binding:       Bindings für text_blt

 Beschreibung:  Diese Line-A Funktion gibt ein einzelnes Zeichen aus. 
                Die Quelle für das Zeichen muß den gleichen Aufbau wie 
                in einem GDOS Rasterfont haben. Man kann die Fontdaten 
                als ein großes Bild betrachten, dessen Höhe der 
                Zeichenhöhe entspricht. Sämtliche Zeichen stehen dicht 
                nebeneinander in diesem "Bild". Zusätzlich enthält ein 
                GDOS Font eine Offset Tabelle, in der für jedes 
                Zeichen der Offset in diesem großen Bild steht. Der 
                Parameter ade_lo des Fontheaders gibt dabei das erste 
                ASCII Zeichen an, für das ein Image und damit auch ein 
                Offset enthalten ist. Dieser Offset ist neben dem 
                Anfang der Fontdaten an diese Line-A Funktion zu 
                übergeben. Der Y-Offset ist gewöhnlich 0. Da Line-A 
                die Zeichensätze nicht selbst verwaltet und auch den 
                Fontheader nicht kennt, müssen entsprechende Paramter 
                auf die Fontdaten übergeben werden. Hinzu kommen eine 
                Reihe weiterer Paramter für die diversen Effekte wie 
                z.B. kursiv, ... Die folgenden Line-A Variablen werden 
                benutzt:

                 Variable     Bedeutung

                 wrt_mode     Schreibmodes, es sind die folgenden 
                              Modie möglich:
                               REPLACE 0  Replace
                               TRANS 1    Transparent (OR)
                               XOR 2      Inverse (XOR)
                               INVERS 3   Inverse Transparent (XOR mit 
                                          not(LN_MASK))
                 xacc_dda     Sollte vor jedem Aufruf auf $8000 
                              gesetzt werden.
                 dda_inc      Vergrößerungsfaktor.
                 t_sclsts     Vergrößerungsrichtung, also ob 
                              Verkleinert oder Vergrößert wird.
                 mono_status  1 wenn sämtliche Zeichen die gleiche 
                              Breite haben, es also ein 
                              nichtproportionaler Font ist, sonst 0.
                 sourcex      X-Koordinate des auszugebenden Zeichens 
                              im Font und kann durch die Offset 
                              Tabelle ermittelt werden.
                 sourcey      Y-Koordinate des auszugebenden Zeichens 
                              im Font, normalerweise 0.
                 destx        X-Koordinate der Bildschirmposition, an 
                              der das Zeichen ausgegeben werden soll.
                 desty        Y-Koordinate der Bildschirmposition, an 
                              der das Zeichen ausgegeben werden soll.
                 delx         Breite des Zeichens, kann ebenfalls aus 
                              dem Fontheader ermittelt werden.
                 dely         Höhe des Zeichens, kann ebenfalls aus 
                              dem Fontheader ermittelt werden.
                 fbase        Der Zeiger auf die Fontdaten, also das 
                              "Bild" mit den einzelnen Zeichen.
                 fwidth       Breite des Fontimage.
                 style        Gibt die Texteffekte an. Einzelne Bits 
                              stehen für einzelne Effekte und können 
                              kombiniert werden:
                               Bit 0  Fettschrift
                               Bit 1  Helle Schrift
                               Bit 2  Kursivschrift
                               Bit 3  Unterstrichen (wird ignoriert)
                               Bit 4  Umrissene Schrift "outline"
                 litemask     Eine Maske für helle (light) Schrift.
                 skewmask     Eine Maske für kursive (skew) Schrift.
                 weight       Die Breite bei Fettschrift (Bold).
                 r_off        Der rechten Offset für Kursivschrift, 
                              also quasi ein Paramter für die 
                              "Schrägstellung" des Zeichens.
                 l_off        Der linke Offset für Kursivschrift, also 
                              quasi ein Paramter für die 
                              "Schrägstellung" des Zeichens.
                 scale        1, wenn eine Skalierung erwünscht ist.
                 chup         Rotationswinkel in 1/10 Grad. Es sind 
                              allerdings nur Drehungen um ein 
                              Vielfaches von 90 Grad möglich, also die 
                              Werte 0, 900, 1800, 2700.
                 text_fg      Textfarbe.
                 text_bg      Hintergrundfarbe.
                 scrtchp      Ein Puffer, der doppelt soviel Platz 
                              bieten sollte, wie das Zeichen belegt, 
                              damit Line-A die Texteffekte berechnen 
                              kann.
                 scrpt2       Ein Index in den Puffer, der auf die 
                              Puffermitte zeigt, also die halbe 
                              Puffergröße angibt.
                 clip         1 wenn Clipping gewünscht wird, 0 sonst.
                 xmn_clip     X-Koordinate die linken oberen Ecke des 
                              Clipping Bereichs, wenn Clipping 
                              eingeschaltet ist.
                 ymn_clip     Y-Koordinate die linken oberen Ecke des 
                              Clipping Bereichs, wenn Clipping 
                              eingeschaltet ist.
                 xmx_clip     X-Koordinate der rechten unteren Ecke 
                              des Clipping Bereichs, wenn Clipping 
                              eingeschaltet ist.
                 ymx_clip     Y-Koordinate der rechten unteren Ecke 
                              des Clipping Bereichs, wenn Clipping 
                              eingeschaltet ist.

                Das Binding von TC übergibt einen Zeiger auf den Font 
                Header, Flags für Skalierung, Stil, Rotationsvektor, 
                Vorder- und Hintergrundfarbe nicht an die text_blt 
                Funktion, sondern benutzt die separate Funktion 
                set_text_blt() zum Setzen der Parameter in dem Line-A 
                Paramterblock. Daten über den Font werden dabei 
                automatisch gesetzt.

 Ergebnis:      Die Funktion liefert keinen Returnwert.

 Verfügbar:     Alle TOS-Versionen.

 Querverweis:   Binding   Bit block transfer