Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

WROUT - Satz nach SYSOUT übertragen

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Ein-/Ausgabe von Dateien und Sätzen; siehe "Dateien und Sätze";

Verkehr mit Datenstationen; siehe "Verkehr mit Datenstationen";

Kommunikation; siehe "Kommunikation (Programm, Anwender, System)"

Makrotyp:

S-Typ, MF-Format 1: 24-Bit-Schnittstelle: Standardform/E-/L-Form;

31-Bit-Schnittstelle: Standardform/E-/L-/C-/D-Form;

siehe "S-Typ-Makroaufrufe"


  • Stand der Beschreibung: TIAM V13.2A

  • Für die 31-Bit-Schnittstelle zu beachten:

    • Bei Verwendung von MF=C/D werden für den Standardheader keine symbolische Namen und Equates erzeugt. Bei dynamischer Versorgung des Datenbereichs sollten die Initialisierungswerte für den Standardheader aus einem mit MF=L erzeugten Datenbereich übernommen werden.

    • Im Standardheader wird kein Returncode übergeben.

  • Der Makro CUPAB generiert eine DSECT des Datenbereichs des WROUT für den Aufruf im 24-Bit-Adressierungsmodus.

Makrobeschreibung

Mit dem Makro WROUT kann eine Nachricht in die Datei SYSOUT übertragen werden. SYSOUT kann einem Element einer PLAM-Bibliothek, einer S-Variablen, einer katalogisierten SAM- oder ISAM-Datei, insbesondere der prozessführenden Datenstation zugeordnet sein.

Wird der Operand LOGGING=PARAMETERS (LISTING=YES) im Kommando SET-LOGON-PARAMETERS oder MODIFY-JOB-OPTIONS angegeben, so werden die Ausgaben nach SYSOUT auch nach SYSLST übertragen.

Makroaufrufformat 1 und Operandenbeschreibung

WROUT

satz,fehler[,edit]

[{,MODE=COMP ,OTRSUP= {NO / YES},OLINEND={NO / YES}

,OHCOPY= {NO / YES},OHDR= {NO / YES} /

,MODE=LINE ,OHCOPY= {NO / YES},OHOM= {NO / YES}

,OINFO= {NO / YES},ONOPOSN= {NO / YES}

,OBELL= {NO / YES},ONOLOGC= {NO / YES}

,EXTEND= {NO / YES} /

,MODE=PHYS ,OHDR= {NO / YES},OETB= {NO / YES}

,OTRANS= {NO / YES} /

,MODE=FORM}]

,RC=OLD / NEW

[,VTSUCBA=adr]

[,ASSIGN=NO /YES]

,PARMOD=24 / 31

[,MF=L / C / (C,pre) / (D,pre) / D / (E,...)]

satz
Symbolische Adresse des auszugebenden Datensatzes. Der Satz beginnt mit dem Satzlängenfeld, gefolgt von dem Vorschubsteuerzeichen und der auszugebenden Nachricht.

Satzaufbau und Beispiel:

Byte 0-1:

Länge der Nachricht + 4 Byte Satzlängenfeld, die Länge muss > 5 sein.

Byte 2-3:

reserviert

Byte 4:

Vorschubsteuerzeichen; wird nur bei Ausgabe auf Drucker ausgewertet

Byte 5-n:

Nachricht

satz     DC    Y (satzend-satz)
         DS    CL2               reservierte Byte
         DC    X'nm'             Druckvorschubzeichen
         DC    nachricht'        zu übertragende Nachricht
satzend  EQU   *

Hinweis

Wenn SYSOUT eine katalogisierte Datei ist, so werden Sätze, die größer als 2044 bzw. 2032 Byte sind, abgeschnitten (Returncode X'0C') und nur der erste Teil des Satzes in die Datei geschrieben. Die unterschiedliche maximale Ausgabelänge ist abhängig von der Pamkey-Verwendung (FORMAT=NONKEY/KEY).

fehler
Symbolische Adresse einer Fehlerroutine im Benutzerprogramm, zu der im Fehlerfall verzweigt wird.
Im Fehlerfall enthält Register R14 die Adresse des Befehls, der dem WROUT-Aufruf folgt. Der Fehlercode wird im Register R15 übergeben.

31-Bit-Schnittstelle: Bei Angabe fehler = 0 (Adresse X'00..0') wird das Programm mit dem Befehl fortgesetzt, der dem WROUT-Aufruf folgt.

edit
Aufbereitungsfunktion (Edit-Options) für eine Nachricht, die zur Datenstation übertragen werden soll. Die Aufbereitung wird übergangen, wenn SYSOUT keine Datenstation ist. Dieser Operand ist nicht erforderlich, wenn Standardfunktionen (alle Edit-Bits=0) verwendet werden, bei einer MODE-Angabe oder bei Nutzung des VTSU-Control-Blocks. Durch Direktangabe (X'xx') kann nur das 1. Edit-Byte für Ausgabe auf die beim CUPAB

  • Makro beschriebene Bedeutung gesetzt werden.

    Hinweis

    Dieser Operand wird nur noch aus Kompatibilitätsgründen unterstützt. Die Edit-Byte sollten über MODE-Angaben (siehe Operand MODE) oder über den VTSU-Control-Block (siehe Operand VTSUCBA) gesteuert werden.

    MF=
    Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. für einen Präfix) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.

    Bei der C-Form und D-Form des Makroaufrufs kann ein Präfix (pre = 1..3 Buchstaben), wie im Aufrufformat dargestellt, angegeben werden. Voreinstellung: pre = CUW

    PARMOD=
    Steuert die Makroauflösung. Es wird entweder die 24-Bit-Schnittstelle oder die 31-Bit-Schnittstelle generiert. Wenn PARMOD nicht angegeben wird, erfolgt die Makroauflösung entsprechend der Angabe für den Makro GPARMOD oder der Voreinstellung für Assembler (= 24-Bit-Adressierung).

    24
    Die 24-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 24-Bit-Adressen (Adressraum <= 16MB).

    31
    Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2GB).
    Datenlisten beginnen mit dem Standardheader.

    Die MODE-Angaben zusammen mit den Edit-Optionen werden nur noch aus Kompatibilitätsgründen unterstützt. Sie werden jetzt im VTSU-Control-Block (VTSUCB, siehe Makro VTSUCB) zusammengefasst.

    MODE=
    Dieser Operand wird nur ausgewertet, wenn SYSDTA der Datensichtstation zugeordnet ist.

    COMP
    Kompatibler Betriebsmodus. Vom Benutzerprogramm können sämtliche Edit-Optionen über die symbolischen Operanden OTRSUP bis OHDR (siehe unten) verwendet werden. Eventuell direkt im Operanden edit gemachte Angaben werden ignoriert. Steuerzeichen in der Ausgabenachricht sind zulässig, werden aber vom System nicht auf Richtigkeit geprüft. Diese Betriebsweise ist kompatibel zu früheren Versionen des Betriebssystems.
    Für die Geräte 8160, 8162, 9749, 975x, 9763, 3270 und X.29-Datenstationen wird dieser Modus wie MODE=LINE behandelt. Die Edit-Option OLINEND wird ignoriert. Die Edit-Optionen OTRSUP und OHDR werden abgewiesen (RC: X'08').

    LINE
    Die aktuelle Datenstation soll als logische Zeilen- bzw. Seiten-Datenstation behandelt werden. Die Nachricht kann durch logische Steuerzeichen strukturiert werden (siehe Makro VTCSET). Ist SYSOUT keine Datenstation, so werden nur die logischen Steuerzeichen NL und NP ausgewertet, z.B bei Ausgaben auf Drucker im Batch-Betrieb.
    Weitere Steuerzeichen sind unzulässig und werden vom System in ein vom Benutzer definiertes Ersatzzeichen umgewandelt (siehe Kommando MODIFY-TERMINAL-OP-TIONS SUBSTITUTE-CHARACTER= ).

FORM

Format-Modus. Das Benutzerprogramm arbeitet mit der Software-Komponente FHS bzw. Formatsteuerung, die auch die datenstationsgerechte Aufbereitung der Ausgabenachricht vornimmt.

PHYS
Die Nachricht soll physikalisch, d.h. ohne Aufbereitung durch das System an die Datenstation ausgegeben werden. Damit können spezielle Gerätefunktionen angesprochen werden, für die der LINE- oder FORM-Modus nicht ausreicht. Wird keine der zulässigen Edit-Optionen angegeben, stellt das System der Nachricht einen gerätespezifischen Standard-Nachrichtenkopf voran.

EXTEND=
legt fest, ob die Felder für Ausgabetexte geschützt oder ungeschützt angelegt werden.

NO
Die Bedienerführung erfolgt durch das System. Geschützt gegen Überschreiben ist nur die Eingabeaufforderung durch das System bzw. das Anwenderprogramm.

Ausgaben erfolgen ungeschützt und halbhell.

NIL-Zeichen im Ausgabetext werden in das Ersatzzeichen umgewandelt, bei Eingabe entfernt.

Je nach Betriebsart wird am Anfang der Ausgabe der Bildschirm ab der Schreibmarke gelöscht.

YES
(Nur für Datenstationen 9749, 975x, 9763, 816x und 3270)
Diese Angabe unterstützt die Verwendung von geschützten und ungeschützten Feldern mit den logischen Steuerzeichen EPA, NUM und SPA (siehe Makro VTCSET).

Die Ausgabe des Textes erfolgt standardmäßig geschützt und halbhell. Die Nachricht kann durch logische Steuerzeichen strukturiert werden (siehe Makro VTCSET). Bei 3270-Datenstationen ist zu beachten, dass die logischen Steuerzeichen Platz auf dem Bildschirm beanspruchen. Mehrere logische Steuerzeichen hintereinander benötigen aber nur einen Platz. Bereiche, in die der Terminalbediener eingeben kann, werden mit EPA oder NUM begonnen und mit SPA beendet.

Bei Ein- und Ausgabe wird NIL als erlaubtes Zeichen behandelt, es wird vom Programm zur Datenstation und umgekehrt geschickt. Bei 3270-Datenstationen ist zu beachten, dass NIL-Zeichen nicht zur DVA übertragen werden. Felder, die bei der Eingabe verkürzt zurückkommen, werden durch NIL-Zeichen auf ihre ursprüngliche Länge ergänzt. Dadurch bekommt der Anwender die Felder immer in der Ausgabelänge zurück.

Der Anfang einer Ausgabenachricht wird an dem der Schreibmarke folgenden nächsten Zeilenanfang abgebildet. Vor dem 1.Textzeichen wird der Schirm ab Schreibmarke gelöscht, wenn die Nachricht nicht mit VPA beginnt.

Wird bei der Ausgabe das Bildschirmende erreicht, so wird am Schirmanfang fortgesetzt. Diese Fortsetzung ist in jedem Fall ungeschützt. Die Bildschirmüberlaufkontrolle ist unwirksam.
Die Tasten RU, EFZ, AFZ und LSP sind gesperrt. Alle anderen Edit-Options außer OBELL, ILCASE, IGETFC werden ignoriert (siehe Programmierhinweise).

OBELL=
bestimmt, ob bei der Ausgabe ein akustisches Signal ertönt.

NO
Bei der Ausgabe ertönt kein akustisches Signal.

YES
Bei der Ausgabe ertönt am Ende der Nachricht ein akustisches Signal (nur bei den Datenstationen 9749, 975x, 9763 816x und bei 3270 mit einem speziellen Gerätezusatz).

OETB=
bestimmt für die Ausgabenachricht das abschließende Steuerzeichen.

NO
Die Ausgabenachricht zur Datenstation wird mit dem Steuerzeichen ETX abgeschlossen.

YES
Die Ausgabenachricht zur Datenstation wird mit dem Steuerzeichen ETB abgeschlossen.

OHCOPY=
legt fest, ob die Ausgabenachricht nicht nur auf eine Datensichtstation, sondern auch über ein angeschlossenes Hardcopy-Gerät (Drucker) ausgegeben werden soll.

NO
Die Ausgabenachricht wird nur über die Datensichtstation ausgegeben.

YES
Die Ausgabenachricht für eine Datensichtstation wird gleichzeitig über ein dort angeschlossenes Hardcopy-Gerät (Drucker) ausgedruckt. Das Hardcopy-Gerät muss generiert werden oder mittels TCHNG zugewiesen werden.

Bei 3270-Datenstationen:

Der Inhalt des gesamten Bildschirmes wird über das Hardcopy-Gerät ausgedruckt. Dadurch werden eventuell auch frühere Aus- und Eingaben ausgedruckt. Bei mehreren direkt aufeinander folgenden Ausgaben wird die Hardcopy-Funktion nur bei der letzten Ausgabe ausgelöst. Der Hardcopy-Abdruck erfolgt nur dann, wenn für die Datensichtstation beim Verbindungsaufbau ein Hardcopy-Gerät generiert wurde.

Wurde OINFO=YES oder EXTEND=YES angegeben, erfolgt kein Hardcopy-Abdruck.

Wird OHCOPY=YES verwendet und enthält die Nachricht das logische Steuerzeichen SPA, EPA, CHS oder NUM, so wird nicht die gesamte Nachricht, sondern nur der letzte ungeschützte Teil der Nachricht abgedruckt.
Wird gleichzeitig OVERFLOW-CONTROL=NO (Kommando MODIFY-TERMINAL-OP-TIONS) verwendet, kann es vorkommen, dass nur ein Teil der Ausgabe auf dem Hard-copy-Gerät wiedergegeben wird.

OHDR=
gibt an, wie das System mit dem Nachrichtenkopf verfahren soll.

NO
Der Nachrichtenkopf (im US-ASCII-Code) wird dem Ausgabetext nicht vorangestellt.

YES
Die Nachricht enthält einen benutzerindividuellen Nachrichtenkopf, den das System dem Ausgabetext voranstellt. Die Länge des Nachrichtenkopfes plus 1 muss in Byte 5 der Nachricht binär angegeben werden. Der Nachrichtenkopf ist im US-ASCII-Code anzugeben.

Bei 3270-Datenstationen:

Der Nachrichtenkopf wird im EBCDIC-Code angegeben und besteht aus dem CMD-Byte und dem WCC-Byte. Vor diesem Nachrichtenkopf muss ein Byte mit dem Inhalt X'01' gesetzt werden (Länge des TRANSDATA-Nachrichtenkopfes + 1).

Hinweis

Bei Ausgabe auf die Datensichtstationen 8160, 975x, 9763 und daran lokal angeschlossene Drucker ist zu beachten, dass das System (MODE=LINE bzw. COMP) oder FHS mit MODE=FORM keinen Nachrichtenkopf verwendet (PARAMO, PA-RAM1), sondern mit Operandenangaben (PAG) arbeitet. Die Unterschiede zwischen diesen beiden Arbeitsweisen sind in den Handbüchern der Datensichtstationen bzw. Drucker beschrieben.

OHOM=
gibt an, ob die Nachricht strukturiert oder homogen ausgegeben werden soll.

NO
Die Nachricht soll strukturiert, nicht homogen ausgegeben werden, d.h. als Ausgabeeinheit wird eine logische Zeile betrachtet. Die Nachrichtenlänge ist nicht beschränkt, falls die logischen Zeilen nicht länger als 255 Zeichen sind.

Wirkung bei Betriebsart 1:
Einzelne logische Zeilen können getrennt modifiziert und damit gezielt zurückübertragen werden.

YES
Nur bei Datensichtstationen 816x, 9749, 975x und 9763 anzuwenden.

Die Nachricht soll unstrukturiert, homogen ausgegeben werden, d.h. die gesamte Nachricht wird als eine Ausgabeeinheit betrachtet. Die Nachrichtenlänge ist durch die Größe des Ausgabepuffers im System beschränkt.

Wirkung bei Betriebsart 1:
Durch Modifikation eines Zeichens einer Ausgabenachricht kann die gesamte Nachricht wieder zurückübertragen werden, sofern diese keine logischen Anzeigesteuerzeichen enthält.

Hinweis

Ist SYSOUT einer Datei zugeordnet, wird der Makro WROUT nicht ausgeführt und die SYSLST-Protokollierung unterdrückt.

OINFO=

legt fest, ob die Nachricht in einer speziellen Informationszeile ausgegeben werden soll.

NO
Die Nachricht wird nicht in der speziellen Informationszeile ausgegeben.

YES
Die Nachricht kann in einer speziellen Informationszeile abgebildet werden, ohne an der Datenstation wichtige Daten zu zerstören.

Die Angabe ist vor allem für die Benutzerprogramme gedacht, die „asynchron“ Nachrichten an Datenstationen senden, ohne die aktuelle Datenstationsanzeige zu kennen. Die Abbildung erfolgt:

  • geschützt in einer Hardware-Anzeigezeile (z.B. DSS 9749, 9750, 9752) oder

  • geschützt in der letzten Bildschirmzeile (z.B. DSS 816x, 9751, 9753, 3270), wenn es im Benutzerprogramm festgelegt wird (siehe Makroaufruf TCHNG, Operand IN-FOLIN), nach vorhergegangener Ausgabe mit MODE=FORM oder MODE=PHYS.

  • in allen anderen Fällen, wie eine normale Line-Mode-Nachricht.

Ist die Nachricht länger als eine Bildschirmzeile, wird sie aufgeteilt und Zeile für Zeile ausgegeben. Das System berücksichtigt dabei die mit MODIFY-TERMINAL-OPTIONS OVERFLOW-CONTROL=TIME() eingestellte Wartezeit.

Bei OINFO=YES wird die Angabe OHCOPY=YES ignoriert, d.h. es werden weder die Informationszeile noch der Bildschirminhalt abgedruckt.

Erst nach der nächsten Eingabe, auf die eine Ausgabe folgt, wird die Hardware-Anzeigezeile zurückgesetzt.

OLINEND=
gibt an, wie mit den Wagenrücklauf-/Zeilenvorschubzeichen verfahren wird.

NO

Jede Ausgabenachricht beginnt bei einer Datenstation immer mit einer neuen Zeile. Die dafür notwendigen Steuerzeichen werden vom System der Nachricht vorangestellt
bzw. bei Erreichen des physikalischen Zeilenendes in die Nachricht eingeschoben, wenn es die betreffende Datenstation erforderlich macht.

YES
Die Ausgabe der Nachricht zur Datenstation erfolgt ohne vom System bereitgestellte Steuerzeichen für Wagenrücklauf/ Zeilenvorschub. Die Steuerung muss vom Benutzerprogramm vorgenommen werden.

ONOLOGC=
gibt an, ob logische Steuerzeichen ausgewertet werden sollen.

NO
Alle logischen Steuerzeichen werden ausgewertet und spezielle physikalische Steuerzeichen werden durchgelassen (siehe Makro VTCSET z.B. ESC, DC4). Andere Zeichen < X'40' werden durch SUB ersetzt. Zeichen >= X'40' werden durchgelassen.

YES
Logische Steuerzeichen werden nicht ausgewertet. Alle Zeichen, die im EBCDIC-Code < als X'40' sind, werden durch SUB ersetzt.
Nur Zeichen >= X'40' werden durchgelassen.

ONOPOSN=
bestimmt, wo die Nachricht beginnen soll.

NO
Die Nachricht beginnt am Anfang der nächsten Zeile.

YES
Die Nachricht beginnt am Anfang der aktuellen Zeile (gilt nur für Schreibstationen).

OTRANS=
gibt an, ob die Ausgabedaten normiert oder transparent übertragen werden sollen.

NO
Die Ausgabedaten sollen normiert übertragen werden, d.h. es findet eine Codeumsetzung statt.

YES
Die Ausgabedaten sollen transparent übertragen werden, d.h. sie bestehen aus beliebigen Binärzeichen (je nach Gerätecode aus 5, 7 oder 8 Bit pro Zeichen), die auf dem Übertragungsweg nicht umgewandelt werden. Ist der Übertragungsweg nicht „potenziell transparent“ generiert, wird die Ausgabe mit RC:X'04' abgewiesen.

OTRSUP=
gibt an, ob die Übersetzung von Gerätecode in EBCDIC unterdrückt werden soll.

NO

Die Übersetzung der Nachricht von EBCDIC in Gerätecode wird nicht unterdrückt, d.h. das Programm liefert die Nachricht in EBCDIC-Code. Im System wird die Nachricht in den Gerätecode übersetzt.

YES
Die Übersetzung der Nachricht wird unterdrückt. Das Programm muss in diesem Fall die Nachricht im Gerätecode liefern.

RC=

legt fest, wo der Returncode abgelegt wird.
Dieser Operand ist nur für eine 31-Bit-Schnittstelle zulässig.

OLD
Der Returncode wird im rechtsbündigen Byte des Registers R15 abgelegt.

NEW
Der Returncode wird sowohl im Register R15 als auch im Standardheader abgelegt. Alle 4 Byte des Registers R15 sind für die Auswertung belegt. Ein 4 Byte-Returncode wird nur zurückgeliefert, wenn SYSDTA von der Datensichtstation liest. In allen anderen Fällen wird nur ein 1 Byte-Returncode zurückgeliefert, unabhängig vom Wert des Returncodes.

VTSUCBA=adr
bestimmt die Adresse eines mit MF=L erzeugten VTSUCB.
Bei Benutzung des Operanden VTSUCBA wird der Operand MODE und die folgenden Edit-Optionen ignoriert (im Datenbereich wird ihr Wert auf X'FF' gesetzt). Das bedeutet, dass alle gewünschten Edit-Optionen im VTSUCB angegeben werden müssen.
Die Angabe des Operanden ist nur für die 31-Bit-Schnittstelle zulässig und wird nur ausgewertet, wenn SYSDTA einer Datensichtstation zugeordnet ist. Standardmäßig erfolgt keine Verwendung des VTSUCB.

ASSIGN=
legt fest, ob Änderungen in der SYSOUT-Zuweisung angezeigt werden sollen.
Das Benutzerprogramm wird von der anfänglichen Standardzuweisung und von jeder folgenden Änderung der SYSOUT-Zuweisung über die Fehlerroutine im Benutzerprogramm verständigt. Bei einer erkannten Änderung der SYSOUT-Zuweisung wird der Satz nicht geschrieben.
Dieser Operandenwert ist nur für die 31-Bit-Schnittstelle zulässig.

NO
Änderungen der SYSOUT-Zuweisung sollen nicht angezeigt werden.

YES
Änderungen der SYSOUT-Zuweisung sollen angezeigt werden.

Hinweis

Die SYSOUT-Zuweisung wird in einem Ausgabefeld der Parameterliste eingetragen.Das Benutzerprogramm kann so auf die geänderten Randbedingungen reagieren, eventuell notwendige Umsetzungen des Ausgabesatzes durchführen und dann das Schreiben mit dem korrigierten Satz erneut ausführen.

Programmierhinweise

für die Verwendung des Operanden MODE=LINE mit EXTEND=YES
(für 3270-Datenstationen siehe Anhang)

Mit EXTEND=YES im LINE-Mode kann mit Formaten gearbeitet werden, ohne dass hierbei eine Formatsteuerung benutzt werden muss.

  • Soll der Terminalbediener wie mit Formaten arbeiten, so muss die 1. Ausgabe mit NP beginnen, um den Bildschirm zu löschen und mit dem Text in Position (1.1) beginnen zu können.

  • Mit NL wird auf den nächsten Zeilenanfang positioniert und der Rest des Bildschirmes gelöscht, mit VPAn auf den Anfang der Zeile n, wobei der Rest des Bildschirmes erhalten bleibt.

  • Positionierung innerhalb einer Zeile kann nur durch Text, Zwischenräume oder NIL-Zeichen erfolgen.

  • Der Text nach VPAn, NL und CHS wird geschützt und halbhell dargestellt.

  • Ungeschützte Felder werden mit „EPA Text SPA“ ausgegeben.
    Numerische Felder werden mit „NUM text SPA“ ausgegeben.

  • Mit VPAn am Ende der Nachricht kann die Schreibmarke auf den Anfang des ersten ungeschützten Feldes der Zeile n gesetzt werden, wobei der Bildschirminhalt erhalten bleibt. Beginnt in Zeile n kein ungeschütztes Feld, so wird auf den Anfang des ersten ungeschützten Feldes nach Zeile n positioniert.
    Wird am Ende der Nachricht kein VPAn angegeben, so wird die Schreibmarke in das erste ungeschützte Feld auf dem Bildschirm gesetzt.

  • Folgeausgabe / Bild-Update
    Mit NP wird ein neues Bild erzeugt.
    Mit VPAn am Anfang der Ausgabe wird Zeile n des Bildes geändert. Mit VPAn können eine oder mehrere Zeilen übersprungen werden. In der aktuellen Zeile wird ab der Schreibmarke ein dunkler Bereich erzeugt, der bis zum Zeilenende bzw. einem davor liegenden Feld reicht. Anschließend wird in die Zeile n positioniert. Am Ende der Änderung sollte die Schreibmarke wieder mit VPAn positioniert werden, da sonst der Bildschirm ab der Schreibmarke gelöscht würde (s.o.). Bei der Verwendung von NL innerhalb einer Änderung wird ebenfalls der Bildschirm ab Schreibmarke gelöscht. Soll dies verhindert werden, muss eine neue Zeile immer mit VPAn angesprungen werden.

Makroaufrufformat 2 und Operandenbeschreibung

WROUT

(1)

[,PARMOD=24 / 31

(1)
Register R1 enthält die Adresse des Datenbereichs. Die Liste auf Wortgrenze ausrichten.

PARMOD=
steuert die Makroauflösung. Es wird entweder die 24-Bit- oder die 31-Bit-Schnittstelle generiert.
Wenn PARMOD nicht spezifiziert wird, erfolgt die Makroauflösung entsprechend der Angabe für den Makro GPARMOD oder der Voreinstellung für den Assembler (= 24-Bit-Schnittstelle).

24
Die 24-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 24-Bit-Adressen (Adressraum <= 16 MB).

31
Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2 GB). Datenlisten beginnen mit dem Standardheader.

Aufbau des Datenbereichs

Adressierungs-
Modus

Byte

Inhalt

24-Bit-Modus

0

Output Edit Byte 1

1 - 3

Adresse des auszugebenden Datensatzes (Operand satz).

4

Output Edit Byte 2

5 - 7

Adresse, zu der im Fehlerfall verzweigt wird (Operand fehler).

31-Bit-Modus

0 - 7

Standardheader. Aufbau siehe "Standardheader"Die Initialisierungswerte sind einem mit MF=L erzeugten Datenbereich
zu entnehmen. Bei RC=OLD wird kein Returncode im Standardheader
übergeben.

8 - 11

Adresse, zu der im Fehlerfall verzweigt wird (Operand fehler).

12 - 15

Adresse des auszugebenden Datensatzes (Operand satz).

16

Output Edit Byte 1

17

Output Edit Byte 2

18

reserviert (X'00' )

19

Flag mit Anzeigen für Verwendung des VTSUCB und für Returncode-
Verhalten.

20-23

Adresse des VTSUCB

24-25

reserviert (X'0000' )

26

Änderung der SYSOUT-Zuweisung soll mitgeteilt werden
(Eingabewert)

27

Änderung der SYSOUT-Zuweisung (Ausgabewert)

Bei Verwendung der 24-Bit-Schnittstelle sind die Werte für Output Edit Byte 1/2 der beim Makro CUPAB angegebenen Tabelle zu entnehmen.

Bei Verwendung der 31-Bit-Schnittstelle sind die Werte einer mit MF=C/D erzeugten Liste zu entnehmen.
Dies gilt auch für die Steuerung, ob eine Änderung der SYSOUT-Zuweisung angezeigt werden soll (Byte 26) und für die Werte der SYSOUT-Zuweisung (Byte 27).

Werte für Änderung der SYSOUT-Zuweisung

Wert

Bedeutung

X'00'

Zuordnung für SYSOUT nicht geändert

X'01'

SYSOUT ist einer Datei zugeordnet

X'02'

SYSOUT ist einer Datenstation zugeordnet

X'03'

SYSOUT ist einer S-Variablen zugeordnet

X'04'

SYSOUT ist einem Element einer PLAM-Bibliothek zugeordnet

Hinweis

Wenn die Systemdatei SYSOUT eine katalogisierte Datei ist, so werden Sätze, die größer als 2044 bzw. 2032 Byte sind, abgeschnitten (Returncode X'0C') und nur der erste Teil des Satzes in die Datei geschrieben. Die unterschiedliche maximale Ausgabelänge ist abhängig von der Pamkey-Verwendung (FORMAT=NONKEY/KEY).
Bei EAM-Dateien werden Sätze, die größer als 2040 Byte sind, ebenfalls abgeschnitten (Returncode X'0C').

Rückinformation und Fehleranzeigen

Während der Makrobearbeitung enthält Register R1 die Adresse des Datenbereichs.

bei PARMOD=24:

R15:

+---------------+
|   |   |   |   |
|0|0|0|0|0|0|a|a|
+---------------+

Über die Ausführung des Makros WROUT wird im Register R15 ein Returncode übergeben.


X'aa'

Erläuterung

X'04'

Nicht behebbarer Fehler.

X'08'

Operandenfehler.

X'0C'

Abschneiden des Ausgabesatzes. Satzinhalt (ohne Satzlängenfeld) überschreitet die Größe
des Ein-/Ausgabepuffers: bei Datensichtstationen abhängig vom Gerätetyp und der
Netzgenerierung, 2044 Byte bei Ausgabe in eine katalogisierte Datei.

X'10'

An der Datenstation wurde „BREAK“ während der Ausführung des Makroaufrufs gegeben.

X'20'

Ungültige Edit Option; wurde vom System korrigiert.

X'38'

Fehler im Zusammenhang mit POSIX.

bei PARMOD=31:

bei RC=OLD:

Zusätzlich zu den bei PARMOD=24 beschriebenen Returncodes können die Returncodes

X'aa'

Erläuterung

X'00'

Normale Beendigung.

X'24'

Fehler im VTSUCB.

auftreten, sowie die Returncodes, die durch Konvention makroübergreifend festgelegt sind (siehe Tabelle „Standard-Returncodes“ (Standardheader)).

bei RC=NEW:

Die Returncodes werden im Standardheader und im Register R15 eingetragen.

Standardheader:

+---------------+
|   |   |   |   |
|c|c|b|b|a|a|a|a|
+---------------+

Über die Ausführung des Makros WROUT wird im Standardheader folgender Returncode übergeben (cc=Subcode2, bb=Subcode1, aaaa=Maincode):

X'cc'

X'bb'

X'aaaa'

Erläuterung

X'00'

X'00'

X'0000'

Erfolgreiche Bearbeitung der Funktion.

X'00'

X'00'

X'0020'

Erfolgreiche Berabeitung der Funktion, ein aufgetretener Operandenfehler
ist durch TIAM/VTSU korrigiert worden.

X'00'

X'01'

X'0008'

Nicht korrigierter Operandenfehler.

X'07'

X'01'

X'0008'

Nicht korrigierter Operandenfehler: die RESERVED-Felder sind nicht 0.

X'00'

X'20'

X'0004'

Interner Fehler.

X'02'

X'20'

X'0004'

Interner Fehler: BCAM-Nachricht verloren.

X'06'

X'20'

X'0004'

Interner Fehler: negative Transportquittung.

X'00'

X'20'

X'0028'

Interner Fehler: Probleme bei der Speicherzuordnung.
SYSOUT ist einer Datei zugeordnet, die bei der Primärzuweisung des
Speicherplatzes den Speicher völlig belegt und deren Sekundärzuweisung
Null ist.

X'00'

X'40'

X'000C'

Ausgabesatz wurde abgeschnitten.

X'00'

X'40'

X'0010'

BREAK während der Ausführung.

X'00'

X'40'

X'0030'

Ein-/Ausgabe abgebrochen.

X'01'

X'80'

X'0004'

Interner BCAM-Engpass.

X'09'

X'80'

X'0038'

Fehler im Zusammenhang mit POSIX:
Ein-/Ausgabe-Serialisierungsfehler.

X'0A'

X'40'

X'0038'

Fehler im Zusammenhang mit POSIX:
Wenn die LOGON-Task im Systemmodus ist, sind keine Ein-/Ausgaben
von mit fork{} erzeugten Prozessen möglich.



X'24'

VTSU-Fehler. Außer Maincode (rechtes Byte) siehe Fehlerinformation
im VTSUCB-Header.

Beispiel 1

  WROUT1   START
           PRINT NOGEN
  WROUT1   AMODE 31
  WROUT1   RMODE 24
           BALR  3,0
           USING *,3
           WROUT MESSAGE,ERROR,PARMOD=31
2                *,@DCEO      999    921011   53531004
           TERM
  ERROR    TERM  DUMP=Y
  *
  MESSAGE  DC    Y(ENDMESS-MESSAGE)      Record length
           DS    CL2                     Reserved
           DC    X'01'                   Print feed control character
           DC    'EXAMPLE WROUT 1'       Text
  ENDMESS  EQU   *
           END

Ablaufprotokoll:

/start-assembh
%  BLS0500 PROGRAM 'ASSEMBH', VERSION '<ver>' OF '<date>' LOADED
%  ASS6010 <ver> OF BS2000 ASSEMBH  READY 
//compile source=*library-element(macexmp.lib,wrout1), -
//        compiler-action=module-generation(module-format=llm), -
//        module-library=macexmp.lib, -
//        listing=parameters(output=*library-element(macexmp.lib,wrout1))
%  ASS6011 ASSEMBLY TIME: 293 MSEC
%  ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES
%  ASS6019 HIGHEST ERROR-WEIGHT: NO ERRORS
%  ASS6006 LISTING GENERATOR TIME: 79 MSEC
//end
%  ASS6012 END OF ASSEMBH
/start-executable-program library=macexmp.lib,element-or-symbol=wrout1, -
/      prog-mode=*any
%  BLS0523 ELEMENT 'WROUT1', VERSION '@' FROM LIBRARY
   ':2OSG:$QM212.MACEXMP.LIB' IN PROCESS
%  BLS0524 LLM 'WROUT1', VERSION ' ' OF '<date> <time>' LOADED
EXAMPLE WROUT 1

Beispiel 2

  WROUT2   START
           PRINT NOGEN
           BALR  10,0
           USING *,10
           WROUT MESSAGE,ERROR,PARMOD=31,MODE=LINE,OBELL=Y
2                *,@DCEO      999    921011   53531004
  ERROR    NOP   0
           TERM
  *
  MESSAGE  DC    Y(ENDMESS-MESSAGE)
           DS    3X
           DC    C'Output WROUT 2'
  ENDMESS  EQU   *
           END

Beispiel 3

Verwendung des VTSUCB

  WROUT3   START
           PRINT NOGEN
           BALR  10,0
           USING *,10
           WROUT  MESSAGE,ERROR,PARMOD=31,VTSUCBA=VTSUPAR
  ERROR    NOP   0
           TERM
  *
  VTSUPAR  VTSUCB MODE=LINE,BELL=YES
1                *,VTSUCB     350    980309
  MESSAGE  DC    Y(ENDMESS-MESSAGE)
           DS    3X
           DC    C'Output WROUT 3'
  ENDMESS  EQU   *
           END

Beispiel 4

Verwendung von Format 2

  WROUT4   START
           PRINT NOGEN
           BALR  10,0
           USING *,10
           LA    1,PARAM
           WROUT (1),PARMOD=31
  ERROR    NOP   0
           TERM
  *
  PARAM    WROUT MESSAGE,ERROR,MF=L,PARMOD=31,MODE=LINE,OBELL=Y
2                *,@DCEO      999    921011   53531004
  MESSAGE  DC    Y(ENDMESS-MESSAGE)
           DS    3X
           DC    C'Output WROUT 4'
  ENDMESS  EQU   *
           END