Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

EDTGLCB - Globaler EDT - Kontrollblock

&pagelevel(4)&pagelevel

Der EDTGLCB stellt den globalen Kontrollblock innerhalb aller EDT-Programmschnittstellen dar. Er wird sowohl von der IEDTGLE-Schnittstelle als auch von der @USE- und der @RUN- Schnittstelle verwendet.

Erstellen des Kontrollblockes EDTGLCB

Mit dem Assembler-Makro IEDTGLCB kann der Kontrollblock EDTGLCB generiert werden.

Name

Operation

Operanden

[name]

IEDTGLCB

[ { D | C } ] [,prefix] [,VERSION= { 1 | 2 } ]

name

– Symbolischer Name der 1. DS-Anweisung bei Angabe von C.
– Name der DSECT bei Angabe von D.

Wird name nicht angegeben, wird EDTGLCB benutzt (mit vorangestelltem
prefix, falls angegeben).

D

C

Es wird ein Pseudoabschnitt (DSECT) generiert.

Es wird ein Speicherabschnitt mit symbolischen Adressen generiert (keine
CSECT-Anweisung).

prefix

Ein Zeichen, mit dem die generierten Feldnamen beginnen sollen.

Wird prefix nicht angegeben, wird standardmäßig E eingesetzt.

VERSION

Auswahl, welche Version des Kontrollblocks generiert werden soll:

Die Version 1 wird mit dem V16-Format der Schnittstelle eingesetzt.
Die Version 2 wird mit dem V17-Format der Schnittstelle eingesetzt.

Bei Angabe des Makros IEDTGLCB VERSION=2 wird der Kontrollblock EDTGLCB in folgender Form generiert:

           IEDTGLCB D,VERSION=2
1 EDTGLCB  MFPRE DNAME=EDT,MF=D
2 EDTGLCB  DSECT ,
2                *,##### PREFIX=I, MACID= #####
1 *--------------- EDT UNIT NUMBER, EDTGLCB VERSION NUMBER --------------
1 EGLUNITC EQU   66                  EDT UNIT NUMBER
1 EGLVERSC EQU   2                   EDTGLCB VERSION NUMBER
1 EGLVERSL EQU   12                  VERSION-LENGTH (INFO)
1 EGLMSGM  EQU   80                  MAX LENGTH FOR MESS
1 *--------------- EDT MAIN-RETURNCODES ---------------------------------
1 *                     *------ EDT-CALL --------------------------------
1 EUPRETOK EQU   X'0000'             NO ERROR
1 EUPSYERR EQU   X'0008'             SYNTAX ERROR IN COMMAND
1 EUPRTERR EQU   X'000C'             RUNTIME ERROR IN COMMAND
1 EUPEDERR EQU   X'0010'             UNRECOVERABLE EDT ERROR
1 EUPOSERR EQU   X'0014'             UNRECOVERABLE SYSTEM ERROR
1 EUPUSERR EQU   X'0018'             UNRECOVERABLE USER ERROR
1 EUPPAERR EQU   X'0020'             PARAMETER ERROR
1 EUPSPERR EQU   X'0024'             REQM ERROR
1 EUPVEERR EQU   X'0028'             VERSION ERROR                  V16.5
1 EUPABERR EQU   X'002C'             ABNORMAL HALT BY USER          V16.5
1 EUPCMPER EQU   X'0030'             COMPATIBILITY VIOLATION        V17.0
1 *                     *------ EDT-ACCESS-METHOD -----------------------
1 EAMRETOK EQU   X'0000'             NO ERROR
1 EAMACERR EQU   X'0004'             ACCESS ERROR
1 EAMEDERR EQU   X'0010'             UNRECOVERABLE EDT ERROR
1 EAMOSERR EQU   X'0014'             UNRECOVERABLE SYSTEM ERROR
1 EAMUSERR EQU   X'0018'             UNRECOVERABLE USER ERROR
1 EAMPAERR EQU   X'0020'             PARAMETER ERROR
1 EAMSPERR EQU   X'0024'             REQM ERROR
1 *--------------- EDT SUB-RETURNCODE1 ----------------------------------
1 *                     *------ MAIN: EUPRETOK --------------------------
1 EUPOK00  EQU   X'00'               NO ERROR
1 EUPOK04  EQU   X'04'               HALT
1 EUPOK08  EQU   X'08'               HALT <TEXT>
1 EUPOK12  EQU   X'0C'               RETURN
1 EUPOK16  EQU   X'10'               RETURN <TEXT>
1 EUPOK20  EQU   X'14'               K1-KEY
1 EUPOK24  EQU   X'18'               IGNORE COMMAND
1 *                     *------ MAIN: EUPPAERR --------------------------
1 EUPPA04  EQU   X'04'               ERROR IN EDTGLCB
1 EUPPA08  EQU   X'08'               ERROR IN EDTUPCB
1 EUPPA12  EQU   X'0C'               ERROR IN COMMAND PARAMETER
1 EUPPA16  EQU   X'10'               ERROR IN MESSAGE PARAMETER
1 EUPPA20  EQU   X'14'               ERROR IN CCSN                  V17.0
1 EUPPA24  EQU   X'18'               CONVERSION ERROR               V17.0
1 *                     *------ MAIN: EUPVEERR --------------------------
1 EUPVE00  EQU   X'00'               STANDARD VERSION RETURNED
1 EUPVE04  EQU   X'04'               NO VERSION RETURNED
1 *                     *------ MAIN: EAMRETOK --------------------------
1 EAMOK00  EQU   X'00'               NO ERROR
1 EAMOK04  EQU   X'04'               NEXT RECORD RETURNED
1 EAMOK08  EQU   X'08'               FIRST RECORD RETURNED
1 EAMOK12  EQU   X'0C'               LAST RECORD RETURNED
1 EAMOK16  EQU   X'10'               FILE CLEARED
1 EAMOK20  EQU   X'14'               COPY BUFFER CLEARED            V16.6
1 *                     *------ MAIN: EAMACERR --------------------------
1 EAMAC04  EQU   X'04'               PUT RECORD TRUNCATED
1 EAMAC08  EQU   X'08'               KEY TRUNCATED ( MOVE MODE )
1 EAMAC12  EQU   X'0C'               RECORD TRUNCATED (MOVE MODE )
1 EAMAC16  EQU   X'10'               FILE IS EMPTY
1 EAMAC20  EQU   X'14'               NO MARKS IN FILE
1 EAMAC24  EQU   X'18'               FILE NOT OPENED (NO LONGER USED)
1 EAMAC28  EQU   X'1C'               FILE REAL OPENED (NO MARKS)
1 EAMAC32  EQU   X'20'               PTM NOT FOUND
1 EAMAC36  EQU   X'24'               REN KEY ERROR
1 EAMAC40  EQU   X'28'               MAX LINE ERROR
1 EAMAC44  EQU   X'2C'               RENUMBER INHIBITED
1 EAMAC48  EQU   X'30'               FILE IS ACTIVE
1 *                     *------ MAIN: EAMPAERR --------------------------
1 EAMPA04  EQU   X'04'               ERROR IN EDTGLCB
1 EAMPA08  EQU   X'08'               ERROR IN EDTAMCB
1 EAMPA12  EQU   X'0C'               FILENAME ERROR
1 EAMPA16  EQU   X'10'               ACCESS FUNCTION ERROR
1 EAMPA20  EQU   X'14'               KEY FORMAT ERROR
1 EAMPA24  EQU   X'18'               KEY LENGTH ERROR
1 EAMPA28  EQU   X'1C'               RECORD LENGTH ERROR
1 EAMPA32  EQU   X'20'               WRONG TRANSFER MODUS BYTE
1 EAMPA36  EQU   X'24'               WRONG VERSION OR UNIT NUMBER
1 EAMPA40  EQU   X'28'               ERROR IN CCSN                  V17.0
1 EAMPA44  EQU   X'2C'               CONVERSION ERROR               V17.0
1 *--------------- CONTROL BLOCK EDTGLCB --------------------------------
1 *                       *---- CONTROL BLOCK HEADER --------------------
1 EGLFHE   DS    0XL8                GENERAL OPERAND LIST HEADER
1 EGLIFID  DS    0A                  INTERFACE IDENTIFIER
1 EGLUNIT  DC    AL2(XGLUNITC)       UNIT NUMBER
1          DS    AL1                 RESERVED
1 EGLVERS  DC    AL1(XGLVERSC)       FUNCTION INTERFACE VERSION NUMBER
1 *                       *--- RETURN CODE ------------------------------
1 EGLRETC  DS    0A                  GENERAL RETURN CODE
1 EGLSRET  DS    0AL2                SUB RETURN CODE
1 EGLSR2   DC    AL1(0)              SUB RETURN CODE2
1 EGLSR1   DC    AL1(0)              SUB RETURN CODE1
1 EGLMRET  DC    AL2(0)              MAIN RETURN CODE
1 *                       *---- RETURN MESSAGE FIELD --------------------
1 EGLINFM  DS    0F                  INFORMATION OF MEMORY SIZE
1 EGLCMDS  DC    F'0'                DISPLACEMENT OF INVALID COMMAND
1 EGLRMSG  DS    0CL82               EDT RETURN MESSAGE
1 EGLRMSGL DC    H'0'                MESSAGE LENGTH
1 EGLRMSGF DC    CL80' '             MESSAGE FIELD
1 *                       *---- EDT GLOBAL PARAMETERS -------------------
1 EGLCDS   DC    X'00'               CODE OF SENDING KEY            V16.4
1 EGLDUE   EQU   X'66'               DUE
1 EGLF1    EQU   X'5B'               F1
1 EGLF2    EQU   X'5C'               F2
1 EGLF3    EQU   X'5D'               F3
1 EGLK1    EQU   X'53'               K1
1 EGLINDB  DC    X'00'               INDICATOR BYTE
1 EGLCOMP  EQU   X'80'               COMPATIBLE/EXTENDED FORMAT     V17.0
1 EGLILCS  EQU   X'40'               ILCS ENVIRONMENT               V17.0
1 EGLSPL   EQU   X'10'               EDT CALL FROM SPL
1 EGLSTXIT EQU   X'08'               EDT STXIT ALLOWED              V16.4
1 EGLINIT  EQU   X'04'               EDT DATA INITIATED
1 EGLDTVD  EQU   X'02'               EDT DATA ADDRESS VALID
1 EGLETVD  EQU   X'01'               EDT ENTRY ADDRESS VALID
1 EGLENTRY DC    A(0)                EDT ENTRY ADDRESS
1 EGLDATA  DC    A(0)                EDT DATA ADDRESS
1 *                       *---- ACTIVE EDT-FILE (OUTPUT)----------------1
 EGLFILE  DC    CL8' '              INTERN FILENAME
1 *                       *---- USER PARAMETERS -------------------------
1 EGLUSR1  DC    XL4'00000000'       USER PARAMETER1 (EDT CALLER    )
1 EGLUSR2  DC    XL4'40404040'       USER PARAMETER2 (SUBROUTINE    )
1 EGLUSR3  DC    XL4'40404040'       USER PARAMETER3 (EXIT ROUTINE  )
1 *                       *---- CHARACTER SET ---------------------------
1 EGLCCSN  DC    CL8' '              CODED CHARACTER SET NAME       V17.0
1 EGLIND2  DC    X'00'               INDICATOR BYTE 2               V17.0
1 EGLCMOD  EQU   X'80'               COMP MODE RUNNING              V17.0
1 EGLRES   DC    X'000000'           RESERVED                       V17.0
1 *--------------- LENGTH OF CONTROL BLOCK ------------------------------
1 EGLGLCBL EQU   *-EDTGLCB

Bedeutung der Kontrollblockfelder

Länge
(Byte)

Format

Parameterart

Aufruf

Rückkehr

EGLUNIT

Eindeutige Identifikation des EDT.

2

X

A(M)


EGLVERS

Änderungsstand des Kontrollblocks.

1

X

A(M)


EGLSR1

SUBCODE1: Unterwert des Returncodes, der
innerhalb des Hauptwerts eindeutig ist.

1

X


R

EGLSR2

SUBCODE2: Unterwert des Returncodes, der
innerhalb des Hauptwerts eindeutig ist.

1

X


R

EGLMRET

MAINCODE: Hauptwert des Returncodes. Die
einzelnen Returncodes sind auf "EDTGLCB - Globaler EDT - Kontrollblock "ff
näher erläutert.

2

X


R

EGLCMDS/
EGLINFM

In diesem Feld steht bei einem Anweisungsfehler
(Syntaxfehler) die Distanz der fehlerhaften
Anweisung zum Beginn der Anweisungsfolge
(Funktionen IEDTCMD und IEDTEXE).
Bei der Funktion IEDTINF wird das Feld
EGLINFM vom EDT immer mit 0 belegt.

4

X


R

EGLRMSGL

Länge der Meldung in EGLRMSGF. Wird keine
Meldung übergeben, enthält das Feld den
Wert Null.

2

X

A

R

EGLRMSGF

In diesem Feld wird vom EDT eine (Fehler-)
Meldung an das Benutzerprogramm übergeben.

80

C

A

R

EGLCDS

In diesem Feld wird einem Anweisungsfilter
vom EDT die Sendetaste mitgeteilt, mit der die
Anweisung im F-Modus-Dialog abgeschickt
wurde.

EGLDUE

EGLF1

EGLF2

EGLF3

EGLK1

DUE-Taste

Funktionstaste F1

Funktionstaste F2

Funktionstaste F3

Funktionstaste K1

Werte für andere Funktionstasten siehe [18].

1

X


R

EGLINDB

Das Indikator-Byte enthält einzelne Flags mit
verschiedener Bedeutung.

1




Flag
EGLCOMP

Der Aufruf der Funktion soll auf das kompatible
Format beschränkt sein:
nicht gesetzt (Standard): Es wird das erweiterte
V17-Format benutzt.
gesetzt: Es wird das kompatible V17-Format
benutzt. Siehe auch Abschnitt 2.1.3 (Schnittstellenformate und Betriebsmodi ).



A


Flag
EGLILCS

Dieses Flag (ILCS-Flag) sollte gesetzt werden,
wenn der EDT aus einem C-Hauptprogramm
heraus aufgerufen wird (siehe ab Abschnitt
6.1 (Produktion von Hauptprogrammen in C )).

Wird der EDT V16 mit dem kompatiblen
V17-Format aufgerufen, wird dieses Flag
ignoriert.



A


Flag
EGLSPL

Dieses Flag (SPL-Flag) muss gesetzt werden,
wenn der EDT aus einer SPL-Umgebung
aufgerufen wird.



A


Flag
EGLSTXIT

Dieses Flag muss gesetzt werden, wenn die
Unterbrechungsroutinen des EDT während
des Aufrufs aktiviert werden sollen. Es wird
nur bei Aufruf über die Schnittstellen IEDTCMD
und IEDTEXE ausgewertet.



A


Flag
EGLINIT

Dieses Flag wird vom EDT nach der Initalisierung
gesetzt und nach Beenden des EDT
gelöscht.



L(M)

R

Flag
EGLDTVD

Dieses Flag wird vom EDT nach der Initialisierung
gesetzt und nach Beenden des EDT
gelöscht.



L(M)


Flag
EGLETVD

Dieses Flag wird vom EDT nach der Initialisierung
gesetzt. Es bleibt auch nach Beendigung
des EDT gesetzt.



L(M)


EGLFILE

Dieses Feld wird vom EDT bei Rückkehr aus
der Funktion IEDTCMD linksbündig mit der
Nummer der aktuellen Arbeitsdatei ($0..$22)
versorgt. Das Feld wird mit Leerzeichen a
aufgefüllt. Dies gilt ebenfalls für den EDTGLCB, der
einer Anweisungs- oder Anwenderroutine
mitgegeben wird.

8

C


R

EGLUSR1

In diesem Feld kann ein Aufrufer der
IEDTCMD -Schnittstelle einen Wert hinterlegen,
der vom EDT anderen Nutzern der
IEDTGLE- oder der @USE-Schnittstelle
unverändert zur Verfügung gestellt wird (Details siehe
unten). Das Feld ist mit binär Null vorbelegt.

4


A

R

EGLUSR2

In diesem Feld kann ein Nutzer der @USE-
Schnittstelle einen Wert hinterlegen, der vom
EDT anderen Nutzern der @USE- oder der
IEDTGLE-Schnittstelle unverändert zur Verfügung
gestellt wird (Details siehe unten). Das
Feld ist mit vier Leerzeichen vorbelegt.

4


A

R

EGLUSR3

Dieses Feld wird vom EDT derzeit nicht
übernommen. Der Inhalt ist daher undefiniert.

4




EGLCCSN

Name des Zeichensatzes (ggf. mit Leerzeichen
aufgefüllt oder mit X’00’ abgeschlossen),
in dem bestimmte Parameter codiert
sind:
COMMAND, MESSAGE1, MESSAGE2 und EDTREC
(beim Lesen und Schreiben). Siehe Abschnitte
Anweisungs- und Satzzugriffsfunktionen.
Wird kein Zeichensatz angegeben (acht
Leerzeichen oder 1.Zeichen binär Null), wird der
Zeichensatz nach den unten beschriebenen
Regeln bestimmt.

8

C

A


EGLIND2

Dieses Feld enthält momentan nur das Flag
EGLCMOD.

1




Flag
EGLCMOD

Dieses Flag wird vom EDT gesetzt, wenn der
EDT im Kompatibilitäts-Modus läuft, also die
Kontrollblöcke aus dem V16-Format
rückkonvertiert wurden.




R

AAufrufparameterMuss vom Aufrufer versorgt werden.

(M)


Wird vom Makro (bei Angabe des Parameters C) gesetzt
und sollte vom Anwender nicht verändert werden.

L

Aufrufparameter

Muss vom Aufrufer beim ersten Aufruf gelöscht werden
und darf danach nicht mehr geändert werden.

RRückkehrparameterWird von EDT versorgt.
XBinärformatBinäre Zahlen.

C

Abdruckbar

Abdruckbare Texte (im Zeichensatz EDF03IRV).

Auswahl des Zeichensatzes bei fehlender Angabe in EGLCCSN

Bei den Funktionen IEDTCMD und IEDTEXE:

  1. Wenn im EDT ein globaler Zeichensatz eingestellt ist, d.h. für alle nicht leeren Arbeitsdateien des EDT der gleiche Zeichensatz eingestellt ist und wenn dieser Zeichensatz ein 7-Bit oder 8-Bit EBCDIC Zeichensatz ist, wird dieser verwendet.

  2. Wenn aufgrund von 1) kein Zeichensatz bestimmt werden kann, wird der Zeichensatz der aktuellen Arbeitsdatei verwendet, sofern dieser ein 7- oder 8-Bit EBCDIC Zeichensatz ist.

  3. Wenn weder durch 1) noch durch 2) ein Zeichensatz bestimmt werden kann, wird der Zeichensatz EDF041 verwendet.

Bei den Funktionen IEDTGET, IEDTGTM und IEDTPUT:

  1. Wenn die Arbeitsdatei, aus der gelesen bzw. in die geschrieben wird, nicht leer ist, wird der Zeichensatz dieser Arbeitsdatei gewählt.

  2. Wenn die Arbeitsdatei leer ist, wird wie bei IEDTCMD und IEDTEXE verfahren.

Behandlung der Benutzer-Parameter

Der EDT verwaltet globale Instanzen der Benutzer-Parameter EGLUSR1, EGLUSR2 und EGLUSR3. Er übernimmt Werte aus einem vom Benutzer versorgten GLCB in diese globalen Instanzen in folgenden Fällen:

  1. Der Wert von EGLUSR1 wird übernommen, wenn aus einem Benutzerprogramm die Schnittstelle IEDTCMD aufgerufen wird.

  2. Der Wert von EGLUSR2 wird übernommen, wenn aus einer Anwenderroutine (@RUN) oder einer Anweisungs- bzw. Filterroutine (@USE) zum EDT zurückgekehrt wird. Dies gilt ebenso bei Rückkehr aus den zugehörigen Initialisierungsroutinen.

  3. Der Wert von

    EGLUSR3 wird derzeit niemals übernommen.

Der EDT versorgt einen GLCB mit den Werten aller drei globalen Instanzen in folgenden Fällen:

  1. Der EDT ruft eine Anwenderroutine (@RUN) oder eine Anweisungs- bzw. Filterroutine (@USE). Dies gilt ebenso beim Aufruf der zugehörigen Initialisierungsroutinen.

  2. Der EDT gkehrt nach einem IEDTCMD- oder IEDTEXE-Aufruf in ein Anwenderprogramm zurück.

Änderungen gegenüber dem V16-Format

  • Das Flag EGLREOR entfällt.

  • Das Flag EGLCOMP ist neu.

  • Das Flag EGLILCS ist neu.

  • Das Feld EGLCCSN ist neu.

  • Das Feld EGLIND2 mit dem Flag EGLMOD ist neu.

  • Die Returncodes EUPCMPER, EUPPA20, EUPPA24, EAMPA40 und EAMPA44 sind neu.

Kompatibles V17-Format: das Feld EGLCCSN darf nur Leerzeichen enthalten.