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. Wird name nicht angegeben, wird |
D C | Es wird ein Pseudoabschnitt ( Es wird ein Speicherabschnitt mit symbolischen Adressen generiert (keine |
prefix | Ein Zeichen, mit dem die generierten Feldnamen beginnen sollen. Wird prefix nicht angegeben, wird standardmäßig |
VERSION | Auswahl, welche Version des Kontrollblocks generiert werden soll: Die Version 1 wird mit dem V16-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 | Format | Parameterart | ||||
Aufruf | Rückkehr | ||||||
| Eindeutige Identifikation des EDT. | 2 | X | A(M) | |||
| Änderungsstand des Kontrollblocks. | 1 | X | A(M) | |||
|
| 1 | X | R | |||
|
| 1 | X | R | |||
|
| 2 | X | R | |||
| In diesem Feld steht bei einem Anweisungsfehler | 4 | X | R | |||
| Länge der Meldung in | 2 | X | A | R | ||
| In diesem Feld wird vom EDT eine (Fehler-) | 80 | C | A | R | ||
| In diesem Feld wird einem Anweisungsfilter
Werte für andere Funktionstasten siehe [18]. | 1 | X | R | |||
| Das Indikator-Byte enthält einzelne Flags mit | 1 | |||||
Flag | Der Aufruf der Funktion soll auf das kompatible | A | |||||
Flag | Dieses Flag (ILCS-Flag) sollte gesetzt werden, Wird der EDT V16 mit dem kompatiblen | A | |||||
Flag | Dieses Flag (SPL-Flag) muss gesetzt werden, | A | |||||
Flag | Dieses Flag muss gesetzt werden, wenn die | A | |||||
Flag | Dieses Flag wird vom EDT nach der Initalisierung | L(M) | R | ||||
Flag | Dieses Flag wird vom EDT nach der Initialisierung | L(M) | |||||
Flag | Dieses Flag wird vom EDT nach der Initialisierung | L(M) | |||||
| Dieses Feld wird vom EDT bei Rückkehr aus | 8 | C | R | |||
| In diesem Feld kann ein Aufrufer der | 4 | A | R | |||
| In diesem Feld kann ein Nutzer der @USE- | 4 | A | R | |||
| Dieses Feld wird vom EDT derzeit nicht | 4 | |||||
| Name des Zeichensatzes (ggf. mit Leerzeichen | 8 | C | A | |||
| Dieses Feld enthält momentan nur das Flag | 1 | |||||
Flag | Dieses Flag wird vom EDT gesetzt, wenn der | R |
A | Aufrufparameter | Muss vom Aufrufer versorgt werden. |
| Wird vom Makro (bei Angabe des Parameters | |
| Aufrufparameter | Muss vom Aufrufer beim ersten Aufruf gelöscht werden |
R | Rückkehrparameter | Wird von EDT versorgt. |
X | Binärformat | Binäre Zahlen. |
| Abdruckbar | Abdruckbare Texte (im Zeichensatz |
Auswahl des Zeichensatzes bei fehlender Angabe in EGLCCSN
Bei den Funktionen IEDTCMD und IEDTEXE:
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.
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.
Wenn weder durch 1) noch durch 2) ein Zeichensatz bestimmt werden kann, wird der Zeichensatz
EDF041
verwendet.
Bei den Funktionen IEDTGET, IEDTGTM und IEDTPUT:
Wenn die Arbeitsdatei, aus der gelesen bzw. in die geschrieben wird, nicht leer ist, wird der Zeichensatz dieser Arbeitsdatei gewählt.
Wenn die Arbeitsdatei leer ist, wird wie bei
IEDTCMD
undIEDTEXE
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:
Der Wert von
EGLUSR1
wird übernommen, wenn aus einem Benutzerprogramm die SchnittstelleIEDTCMD
aufgerufen wird.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.Der Wert von
EGLUSR3
wird derzeit niemals übernommen.
Der EDT versorgt einen GLCB
mit den Werten aller drei globalen Instanzen in folgenden Fällen:
Der EDT ruft eine Anwenderroutine (@RUN) oder eine Anweisungs- bzw. Filterroutine (@USE). Dies gilt ebenso beim Aufruf der zugehörigen Initialisierungsroutinen.
Der EDT gkehrt nach einem
IEDTCMD
- oderIEDTEXE
-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 FlagEGLMOD
ist neu.Die Returncodes
EUPCMPER
,EUPPA20
,EUPPA24
,EAMPA40
undEAMPA44
sind neu.
Kompatibles V17-Format: das Feld EGLCCSN
darf nur Leerzeichen enthalten.