/\  <<  >>

21. Hardware-nahe Anweisungen (Interncode)

     Die Anweisungen dieser Gruppe sollten im  allgemeinen  nicht  in
     den Eingabedaten enthalten sein. Sie werden insbesondere für die
     Auflösung  von  Makros  benötigt,  wenn  damit nicht über andere
     Steueranweisungen ansprechbare Leistungen der  Satzausgabe  ver-
     langt werden sollen (z.B. Übereinander-Belichten von Zeichen).

     Der dabei verwendete Code ist der (auf  8-bit-Werte  ausgedehnte
     und  um die am Schluss dieses Kapitels aufgeführten Codes erwei-
     terte) Interncode des DIGISET 50T1; er wird, wenn nichts anderes
     angegeben ist, vom Programm an der  ent­sprechenden  Stelle  ohne
     weitere  Prüfung  in  die AUSGABE-Datei übernommen. Es kann also
     aus der Tatsache, dass das Satzprogramm bei der Verwendung  die-
     ser  Anweisungen keinen Fehler meldet, nicht geschlossen werden,
     dass eine fehlerfreie  Weiterverarbeitung  dieser  AUSGABE-Datei
     mit #*PSAUS möglich ist.

     Bei einigen Anweisungen ist es jedoch sinnvoll, dem Satzprogramm
     eine Buchführung über die ent­sprechenden Schritte zu ermöglichen
     (so bei allen Verschiebe-Anweisungen)  bzw.  die  Dicktenzählung
     für  den Zeilenausgleich mitzuführen oder nach anderen Operatio-
     nen den Grundzustand wieder herzustellen. Deshalb ist für einige
     Funktionen eine abweichende Form der Codierung vorgesehen.

     Die hier einzeln zwischen &!( und ) aufgeführten Codes  sollten,
     wenn  nichts anderes angegeben ist, zu einer einzigen Code-Folge
     zwischen &!( und ) zusammengefasst werden. Dabei ist  die  Code-
     Folge  in  der Klammer mit der Angabe des Dicktenwertes, den der
     Klammerausdruck hat, abzuschließen (vgl. unten  die  Anweisungen
     &!(nn+d)­,  &!(nn-d)­, &!(nn+d*g)­), falls dieser Dicktenwert nicht
     0 ist oder falls er nicht lt. Beschreibung automatisch  mit  be-
     rücksichtigt wird.

     &!(##mmmmm/nnn)­ Post­Script-Sonderzeichen

                 Das Zeichen mit der  (dreistellig  zu  schreibenden)
                 oktalen Zeichennummer nnn aus der Post­Script-Schrift
                 mit  der  fünfstelligen  TUSTEP-Schriftnummer  mmmmm
                 soll aufgerufen werden. Seine  Dickte  wird  automa-
                 tisch  mit  berücksichtigt  (s.u.)  und ggf. auf die
                 durch +d bzw. +-d angegebenen Dicktenwerte (vor  der
                 evtl.  Multiplikation  mit  dem durch *g angegebenen
                 Faktor, siehe unten) aufaddiert.

     &!(#Giii)­   Post­Script-Grafik

                 Bei der Ausgabe mit dem Standard-Makro #*PSAUS  wird
                 an  dieser Stelle die Abbildung Nummer iii eingebun-
                 den. Folgen auf iii weitere Angaben in der  Klammer,
                 so muss die Nummer iii durch \ abgeschlossen werden,
                 wenn das nächste Zeichen hinter iii eine Ziffer ist.

                 Die Abbildung muss im EPS-Format (Encapsulated Post-
                 Script) vorliegen. Sie  wird  vertikal  relativ  zur
                 Schriftgrundlinie  positioniert, auf der ein an die-
                 ser Stelle gesetztes Zeichen stehen würde.
                 Solche Abbildungen müssen vor der  Ausgabe  mit  dem
                 Standard-Makro #*GRAFIK zum Einmontieren vorbereitet
                 und  mit einer Nummer zwischen 1 und 999999 versehen
                 in einer Datei gesammelt werden.  Diese  Datei  muss
                 später  beim  Aufruf  von  #*PSAUS zur Spezifikation
                 GRAFIK angegeben werden.

     &!(#Gn/iii)­ Post­Script-Grafik

                 Wie &!(#Giii); n ist die Nummer der Grafikdatei, aus
                 der die Abbildung ausgewählt werden soll,  und  gibt
                 an, als wievielte die Grafikdatei später beim Aufruf
                 von #*PSAUS angegeben wird.

     &!(#Siii)­   Post­Script-Grafik, skaliert

                 Wie &!(#Giii), jedoch wird die Abbildung der  augen-
                 blicklich  eingestellten Schriftgröße angepasst. Da-
                 bei wird davon ausgegangen, dass die  Abbildung  für
                 die  Einbindung in eine Umgebung mit 12 Punkt Kegel-
                 größe vorbereitet wurde.

     &!(+nn)­     Verschieben des Schreibstrahls um nn Bild­linien nach
                 rechts, mit Berücksichtigung bei  der  Zeilenlängen-
                 Berechnung

                 Für nn kann ein beliebiger Wert angegeben werden. In
                 der Klammer darf sonst nichts stehen.

     &!(-nn)­     Verschieben des Schreibstrahls um nn Bild­linien nach
                 links, mit Berücksichtigung bei der Zeilenlängen-Be-
                 rechnung

                 Für nn kann ein beliebiger Wert angegeben werden. In
                 der Klammer darf sonst nichts stehen.

     &!(++nn)­    Verschieben des Schreibstrahls um nn Bild­linien nach
                 rechts, ohne Berücksichtigung bei der  Zeilenlängen-
                 Berechnung

                 Für nn kann ein beliebiger  Wert  angegeben  werden.
                 Dieser Wert wird nach hinten abgeschlossen durch das
                 nächste  von  einer  Ziffer verschiedene Zeichen des
                 Befehlsmakros oder durch ein \.

     &!(--nn)­    Verschieben des Schreibstrahls um nn Bild­linien nach
                 links, ohne Berücksichtigung bei  der  Zeilenlängen-
                 Berechnung

                 Für nn kann ein beliebiger  Wert  angegeben  werden.
                 Dieser Wert wird nach hinten abgeschlossen durch das
                 nächste  von  einer  Ziffer verschiedene Zeichen des
                 Befehlsmakros oder durch ein \.

     &!(nn)­      Hardware-nahe Anweisung (Interncode) bzw. Primär-
                 adressenaufruf nn

                 nn ist eine zweistellige Dezimalzahl und muss einem
                 legalen Interncode ent­sprechen.
     &!(Dnnn)­    wie &!(nn), jedoch ist nnn eine  dreistellige  Dezi-
                 malzahl  von  000  bis  255 (je einschließlich), bei
                 &!(00Dnnn)­ und &!(2836Dnnn)­ von 000 bis 999

     &!(Hnn)­     wie &!(nn), jedoch ist nn eine zweistellige Hexade-
                 zimalzahl von 00 bis FF (je einschließlich)

     &!(nn+d)­    Dicktenwert d (in Bild­linien), der der gesamten  An-
                 weisungsfolge  nn außer den in der Klammer enthalte-
                 nen, mit #nnnn codierten Sonderzeichen,  ent­spricht;
                 d ist eine beliebige Dezimalzahl

                 Aus Gründen der Kompatibilität mit bereits vorhande-
                 nen älteren Daten können Werte, die größer sind  als
                 99, durch Wiederholung angegeben werden, z.B. +99+06
                 für "Dickte von 105 Bild­linien".

     &!(nn-d)­    oder &!(nn+-d)­ negativer Dicktenwert d (in Bild­lini-
                 en), sonst wie &!(nn+d)

                 Aus Gründen der Kompatibilität mit bereits vorhande-
                 nen älteren Daten können Werte, die kleiner sind als
                 -99,  durch  Wiederholung  angegeben  werden,   z.B.
                 +-99+-6 für "negative Dickte von 105 Bild­linien".

     &!(nn+d*g)­  Angabe der Schriftgröße g, auf die sich  die  unmit-
                 telbar  davor  in +d (bzw. bei &!(nn-d*g)­ in -d) ge-
                 nannte Bild­linienzahl bezieht

                 *g muss angegeben werden, wenn  in  der  Anweisungs-
                 klammer  die  Schriftgröße  oder  die Schrift-Dickte
                 geändert wurde.

                 Für die Berechnung der Zeilenlänge werden die unmit-
                 telbar davor stehenden  Angaben  der  Bild­linienzahl
                 mit dem Faktor g multipliziert und durch die vor der
                 Klammer zuletzt durch Steueranweisungen eingestellte
                 Schriftgröße  dividiert.  Beispiel:  In  der Klammer
                 wurde auf 5-Punkt-Schrift  umgeschaltet,  um  einige
                 verkleinerte  Zeichen zu setzen. Diese Zeichen haben
                 zusammen eine Dickte von  137  Bild­linien.  Die  zur
                 Berechnung  der Zeilenlänge notwendige Angabe lautet
                 dann: +137*05

                 Die Angaben zur Dicktenberechnung müssen  immer  als
                 letzte  in der Klammer stehen und auch für Bild­lini-
                 enzahl 00 gemacht werden.  Ist  eine  Multiplikation
                 wie eben beschrieben notwendig, so muss die entspre-
                 chende Angabe die letzte in der Klammer sein.

     &!(..)­      Rückschalten der Schriftgröße auf den vor der  Klam-
                 mer  zuletzt  durch  Steueranweisungen eingestellten
                 Wert

     &!({­{)­      Rückschalten des Auszeichnungszustandes auf den  zu-
                 letzt  vor  der  Klammer durch Steueranweisungen er-
                 reichten Wert
     &!(:nn)­     Verschieben  des  Schreibstrahls  nach  oben  um  nn
                 (zweistellig)  Halbpunktschritte (absolut, nicht ad-
                 dierend mit vorhergehenden, auf diese Weise  angege-
                 benen Werten)

     &!(:Dnnn)­   wie &!(:nn), jedoch ist nnn eine dreistellige Dezi-
                 malzahl von 000 bis 255

     &!(::nn)­    Verschieben des Schreibstrahls nach oben um die Zahl
                 von Halbpunktschritten, die sich aus nn/32  der  Ge-
                 vierthöhe errechnet; sonst wie &!(:nn)

     &!(::Dnnn)­  wie &!(::nn), jedoch ist nnn eine dreistellige Dezi-
                 malzahl von 000 bis 255

     &!(;nn)­     Verschieben des Schreibstrahls nach  unten  um  nn+1
                 Halbpunktschritte (absolut, nicht addierend mit vor-
                 hergehenden,  auf diese Weise angegebenen Werten; nn
                 ist zweistellig zu schreiben)

     &!(;Dnnn)­   wie &!(;nn), jedoch ist nnn eine dreistellige Dezi-
                 malzahl von 000 bis 255

     &!(;;nn)­    Verschieben des Schreibstrahls nach unten  um  einen
                 halben  Punkt  plus die Zahl von Halbpunktschritten,
                 die sich aus nn/32 der Gevierthöhe errechnet;  sonst
                 wie &!(;nn)

     &!(;;Dnnn)­  wie &!(;;nn), jedoch ist nnn eine dreistellige Dezi-
                 malzahl von 000 bis 255

                 Die  Grundstellung  wird   wieder   erreicht   durch
                 &!(:00);  dieser  Zustand  sollte  vor Verlassen der
                 Klammer wieder hergestellt werden.

     &!(@b)­      Kennzeichnung einer hardware-nahen Codierung als
                 Buchstabe

                 Als erste innerhalb der Klammer verwendet, macht die
                 Zeichenfolge @b (b ist ein beliebiger  Kleinbuchsta-
                 be)  den Klammerausdruck für das Silbentrennungspro-
                 gramm und für evtl. Sperrungen und Akzente  mit  dem
                 angegebenen Buchstaben gleichwertig.

                 Dies sollte z.B. verwendet  werden,  wenn  innerhalb
                 von  längeren  Wörtern  Sonderformen  von Buchstaben
                 vorkommen, die durch Makro codiert und dann in  Form
                 von  Hardware-Anweisungen angegeben werden, da diese
                 Wörter sonst in der  Umgebung  dieses  Makros  weder
                 getrennt noch gesperrt werden können.

     Erweiterungen des 50T1-Codes:

     &!(2800)­               Umschaltung auf Primäradressenbereich
                            192-255
     &!(2801)­               Video aus für das nächste Zeichen
     &!(2802)­               Bild nachtragen
     &!(2803uullnn)­         PostScript-Bild (schru schrl nr) einblen-
                            den
     &!(2804nn)­             Unterlegung nn Anfang
     &!(2805nn)­             Unterlegung nn Ende
     &!(2806ccmmyykk)­       Color cmyk Anfang (Farbwerte cc mm yy kk)
     &!(2807)­               Color Ende
     &!(2808)­               Video ein
     &!(2809)­               Video aus
     &!(2810ppqq00gg)­       Rechteck  grau  (Grauwert  gg)   zwischen
                            Merkpositionen pp und qq (pp=00: aktuelle
                            Position)
     &!(2810ppqqd25500ccmmyykk)­ Rechteck farbig (Farbwerte cc mm yy
                            kk)
     &!(2811yyyyllllnn)­     Linie von y (Viertelpunkt  von  Satz­spie-
                            geloberkante),  l/8  Punkt  lang  und n/8
                            Punkt breit
     &!(2812ppllllnn)­       Linie von Merkposition pp, llll/8 Punkt
                            lang und nn/8 Punkt breit
     &!(2813D254nnnn)­       Satzspiegel um nnnn Punkt nach rechts
                            verschieben
     &!(2813D255nnnn)­       Satzspiegel um nnnn Punkt nach links ver-
                            schieben
     &!(2813ppqqnn)­         Linie nn/8 Punkt breit, zwischen  Merkpo-
                            sitionen pp und qq (pp=00: aktuelle Posi-
                            tion)
     &!(2813ppqqnnllww)­     Linie, nn/8 Punkt breit, zwischen Merkpo-
                            sitionen pp-128 und  qq-128,  mit  Pfeil-
                            spitzen  der  Länge  ll/8  Punkt  und der
                            Breite ww/8 Punkt. Ist pp oder qq kleiner
                            als 128, so wird an diesem Ende der Linie
                            keine Pfeilspitze gezeichnet.

     &!(2813D128qqnnllww)­   Linie, nn/8 Punkt breit, zwischen aktuel-
                            ler Position  und  Merkposition  qq,  mit
                            Pfeilspitzen der Länge ll/8 Punkt und der
                            Breite  ww/8 Punkt. Ist statt D128 00 an-
                            gegeben oder ist qq kleiner als  128,  so
                            wird  an  diesem  Ende  der  Linie  keine
                            Pfeilspitze gezeichnet.

     &!(2813pp0000)­         Positionieren auf vertikale Position pp
     &!(2814pp)­             aktuelle Position als pp merken
     &!(2815nn)­             Größe nn/4 Punkt
     &!(2819nn)­             &!Tn+ Textfeld-Anfang
     &!(2820nn)­             &!Tn- Textfeld-Ende
     &!(2821nn)­             &!Tn. Textfeld-Ausgabe
     &!(2822)­               &!|­ Spiegeln Anfang
     &!(2823)­               &!|­ Spiegeln Ende
     &!(282400llllnn)­       waagerechte Linie von aktueller Position,
                            llll/8 Punkt lang und nn/8 Punkt dick
     &!(2825nn)­             Schriftumschaltung auf Bereich nn
     &!(2831nn)­             Negativer Zeilenvorschub
     &!(2832nnnn)­           nnnn/8 p Abstand von oben für nachfolgen-
                            de Linie bzw. Rechteck
     &!(2833nn)­             Dicktenänderung auf nn/4 Punkt
     &!(2842nn)­             Schrägstellung um nn Grad
                            nn von 00 bis 45; bei negativem nn  (Nei-
                            gung   nach  links):  256+nn,  also  z.B.
                            &!(2842D226)­ für -30 Grad
     &!(2846mmnn)­           Schreibstrahl rückwärts um mm + nn (mm
                            und nn < 256)
     &!(2863)­               Wiederholen
     &!(2865yynnzzzz)­       bzw.
     &!(2866yynnzzzz)­       pdfmark  /Launch;  yy  =   Oberkante   d.
                            Schaltfläche,  nnzzzz = nn Zeichen zz für
                            Pfadname (bei  2865)  bzw.  für  Uri-Name
                            (bei 2866)
     &!(28xxyynnzzzz)­       pdfmark /Note; xx = 66 +  b,  wobei  b  =
                            lfd.  Nr.  des  Buchstabens,  der Art der
                            Notiz kennzeichnet (B, C, E, G, H, K,  L,
                            N,  P,  Q, S, T, Z), im Alphabet nnzzzz =
                            nn  Zeichen  "r,g,b:::titel:::text"  bzw.
                            "r,g,b;;;titel;;;text"
     &!(D25536)­             kürzere Form für &!(00D2500036)
     &!(D255D25536)­         kürzere Form für &!(286300020036)

                                                           /\  <<  >>