Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

TYPIO - Mitteilung an Konsole ausgeben

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Verkehr mit Datenstationen; siehe "Verkehr mit Datenstationen";

Meldungswesen; siehe "Meldungswesen";

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

Makrotyp:

S-Typ, MF-Format 1: (Standardform/E-Form/L-Form);

siehe "S-Typ-Makroaufrufe"


Physikalische und logische Konsolen und ihre Verwendung in BS2000 sind ausführlich im Handbuch „Systembetreuung“ [10] beschrieben.

Makrobeschreibung

Mit dem Makro TYPIO kann eine Nachricht an der Konsole ausgegeben und eine Antwort von dort übernommen werden.

Makroaufrufformat und Operandenbeschreibung

TYPIO

MSG={adr1 / (r1) / (basis1,[index1],[dist1])}

[,REPLY=(länge, )]{adr2 / (r2) / (basis2,[index2],[dist2}])

,SHORT=NO / YES

[,UCDEST={’destcode’ / adr3 / (r3) / (basis3,[index3].[dist3])} ]

,MF={S / L / (E,{adr4 / (1) / (r4)})

MSG=
beschreibt die Adresse eines Ausgabebereichs für die Ausgabenachricht (Satz variabler Länge). Nachrichtenlänge <= 230 Byte. Nachrichten mit einer Länge von 231 bis 251 Byte werden abgeschnitten; noch längere Nachrichten werden nicht übertragen.

adr1
symbolische Adresse (Name) des Ausgabebereiches.

(r1)
r1 = Register mit dem Wert der Adresse adr1.

(...)
Indirekte Adressierung für adr1.
basis1 = Basisregister 1; index1 = Indexregister 1; dist1 = Distanz 1

REPLY=

eine Antwort wird erwartet. Der Operand beschreibt die Adresse des Eingabebereiches für die Antwort (Satz variabler Länge).
Antwortlänge <= 72 Byte.

länge
Länge des Eingabebereiches (erwartete Antwortlänge + 4);
4 <= länge <= 76.

  • Längere Antworten werden abgeschnitten.

  • Kürzere Antworten werden linksbündig eingetragen und ein Byte mit X'00' angehängt.

  • länge < 4 bzw. länge > 251 ergibt Längenfehler (RC = X'0C').

  • 77 <= länge <= 251 ergibt Längenfehler (RC = X'04') und wird wie länge = 76 behandelt.

adr2
symbolische Adresse (Name) des Eingabebereiches

(r2)
r2 = Register mit dem Wert der Adresse adr2

(...)
Indirekte Adressierung für adr2.
basis2 = Basisregister 2; index2 = Indexregister 2; dist2 = Distanz 2

SHORT=
gibt an, ob die Nachricht mit ungekürztem Meldungsvorspann oder mit gekürztem Vorspann ausgegeben werden soll (nur wirksam bei Ausgabe auf physikalische Konsolen).

NO
Die Meldung wird ungekürzt ausgegeben.

YES
Der Meldungsvorspann wird in der Form %xxxx_ ausgegeben
Dabei bedeuten:
% = Meldung ohne Antwort
xxxx = Quellenkennzeichen/Name/TSN

SHORT=YES ist nur erlaubt, wenn REPLY nicht spezifiziert wurde.

UCDEST=
UCON-Ausgabeort.

Das Ziel (Ausgabeort) der Nachricht kann wie folgt angegeben werden:

  • mnemotechnischer Konsolname für eine bestimmte physikalische Konsole,

  • Berechtigungsschlüssel (Routingcode) für Konsolen und berechtigte Benutzerprogramme, denen ein bestimmtes Aufgabengebiet zugeordnet ist,

  • Berechtigungsname für ein berechtigtes Benutzerprogramm.

Ohne Angabe von UCDEST geht die Ausgabe an das im Systemparameter MSGDEST angegebene Ziel. Bei ungültiger UCDEST-Angabe geht die Ausgabe an die Hauptkonsole.

'destcode'
folgende Angaben sind möglich (Angaben müssen in Apostrophe eingeschlossen werden):

  • destcode = (mn)
    wobei mn = 2 Zeichen langer mnemotechnischer Konsolname

  • destcode = <x
    wobei x = Berechtigungsschlüssel (< muss mit angegeben werden)

  • destcode = Name des berechtigten Benutzerprogramms (4 Zeichen).

adr3
symbolische Adresse (Name) eines Feldes (Wort) mit der Angabe für destcode.

(r3)
r3 = Register mit der Angabe für destcode

(...)
Indirekte Adressierung für adr3.
basis3 = Basisregister 3; index3 = Indexregister 3; dist3 = Distanz 3

Hinweis
Alle Einträge müssen linksbündig eingetragen 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 E-Form des Makroaufrufs wird die Adresse des Datenbereichs während der Ausführung in Register R1 geschrieben.

Hinweise zum Makroaufruf

  • Bei indirekter Adressierung (Operanden MSG, REPLY, UCDEST) Kommas immer mitschreiben.

  • Aufbau des Ausgabe- bzw. Eingabebereiches (Operanden MSG bzw. REPLY):

    Byte 0-1:

    Satzlängenfeld (Länge der Nachricht/Antwort + 4); bei REPLY wird dieses
    Feld durch TYPIO versorgt.

    Byte 2-3:

    reserviert

    Byte 4-n:

    Nachrichten-/Antworttext

    Beispiel für einen Ausgabebereich:


    nachricht    DC    Y(nend-nachricht)
                 DS    CL2
                 DC    C'nachrichtentext'
    nend         EQU   *
    


    Beispiel für einen Eingabebereich:


    antwort      DS    0CL54
    slfeld       DS    CL2
                 DS    CL2
    atext        DS    CL50
    
  • Der Makro ist in ablaufinvarianten Programmen verwendbar, wenn nur Registerangaben benutzt und L- und E-Form getrennt aufgerufen werden.

  • Während der Ausführung des Makros TYPIO werden die Inhalte der Register R0 und R1 überschrieben: Der Inhalt von Register R0 wird mit binären Nullen überschrieben. In Register R1 wird die Anfangsadresse des Datenbereichs geschrieben (bei der E-Form des Makroaufrufs). Beide Register sollten daher nicht für die Speicherung anderer Werte genutzt werden.

Rückinformation und Fehleranzeige

R15:

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

Über die Ausführung des Makros TYPIO wird im rechtsbündigen Byte des Registers R15 ein Returncode übergeben; die restlichen Byte sind gelöscht.

X'aa'

Erläuterung

X'00'

Normale Ausführung

X'04'

TYPIO ausgeführt. Nachrichten- oder Antwortlänge abgeschnitten
Nachricht: Länge 230 bis 251 angegeben
Antwort: Länge 77 bis 251 angegeben

X'08'

Adressfehler: Adressierung erfolgte über die Register R0 oder R1 oder eine Adresse
(adr1- adr3) liegt zumindest teilweise außerhalb des Benutzerbereichs.

X'0C'

Längenfehler: Nachrichtenlänge <= 0 oder größer 251 Byte.

X'10'

Nachrichtenausgabe derzeit nicht möglich (kann z.B. während Erzeugung oder Beendigung
der aufrufenden Task auftreten).