Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Änderungen an der Unterprogramm-Schnittstelle

&pagelevel(4)&pagelevel

In diesem Abschnitt werden die Änderungen beschrieben, die abgesehen vom Wegfall der L-Modus-Schnittstelle und Ablösung der @RUN-Schnittstelle (siehe Abschnitt „Nicht mehr unterstützte Funktionen“) von Anwendern zu beachten sind, die in ihren Programmen die IEDTGLE-Schnittstelle benutzen.

Dabei muss unterschieden werden, ob das V16-Format der IEDTGLE-Schnittstelle (alte Makros bzw. neue Makros mit entsprechendem VERSION-Parameter), das V17-Format der IEDTGLE-Schnittstelle (neue Makros mit entsprechendem VERSION-Parameter) oder das kompatible V17-Format (steuerbar über das Flag EGLCOMP) benutzt wird. Das kompatible V17-Format ist dann zu benutzen, wenn die Anwendung auch in Umgebungen laufen soll, in denen nur ein EDT mit einer Version klener als V17.0A installiert ist.

Werden im V16-Format Lese- oder Schreib-Operationen im Locate-Modus aufgerufen, wenn sich der EDT im Unicode-Modus befindet und ein Umschalten in den Kompatibilitäts-Modus nicht möglich ist (z.B. weil Arbeitsdateien nicht leer sind), wird der Aufruf mit Returncode abgewiesen.

Beim Lesen des globalen Status (Funktion IEDTGET mit Pseudo-Arbeitsdatei 'G') im V16-Format, wird das im V17-Format entfallene Feld für den global eingestellten Zeichensatz nur dann mit einem Wert ungleich Leerzeichen versorgt, wenn in allen nicht leeren Arbeitsdateien der gleiche Zeichensatz eingestellt ist.

Im V16-Format werden Zeichenfolgen, die im Puffer EDTREC übertragen werden, in dem Zeichensatz interpretiert, der für die betroffene Arbeitsdatei eingestellt ist. Funktionen des V16-Formats, die mit den Puffern COMMAND, MESSAGE1 und MESSAGE2 arbeiten, können im Unicode-Modus nur dann korrekt bearbeitet werden, wenn entweder in den Kompatibilitäts-Modus umgeschaltet werden kann oder wenn für alle Arbeitsdateien der gleiche Zeichensatz eingestellt ist (siehe Anweisung @CODENAME GLOBAL,...), andernfalls wird die jeweilige Funktion mit Returncode abgewiesen.

In beiden Formaten muss das aufrufende Programm damit rechnen, dass im Unicode-Modus Sätze mit einer Länge größer als 256 Byte geliefert werden bzw. dass längere Sätze gekürzt werden. Wenn kein ausreichend großer Puffer bereitgestellt wird, muss zumindest der Returncode (EAMAC04) ausgewertet und angemessen behandelt werden.

In beiden Formaten muss das aufrufende Programm damit rechnen, dass im Unicode-Modus Sätze mit der Länge 0 geliefert werden.

In beiden Formaten liefert die Funktion IEDTINF im Feld EGLINFM (Anzahl der für den statischen Datenbereich benötigten Speicherseiten) des Kontrollblocks EDTGLCB immer den Wert 0 zurück.

Im V17-Format des Kontrollblocks EDTGLCB ist das Flag EGLREOR (Speicher-Reorganisation unterbinden) entfallen, die Felder EGLCCSN (Name des Zeichensatzes, in dem die Puffer COMMAND, MESSAGE1, MESSAGE2 bzw. EDTREC codiert sind) und EGLCOMP (Flag für das kompatible V17-Format), das Feld EGLIND2 (Anzeige, dass der EDT im Kompatibilitäts-Modus läuft) sowie der Returncode EUPCMPER (Benutzung von inkompatiblen Funktionen im kompatiblen Format) sind neu. Im kompatiblen V17-Format darf das Feld EGLCCSN nur Leerzeichen enthalten.

Im V17-Format des Kontrollblocks EDTUPCB ist das Flag EUPNUNI (Sperren des Umschaltens vom Unicode- zum Kompatibilitäts-Modus) neu. Im kompatiblen V17-Format darf EUPNUNI nicht gesetzt sein.

Im V17-Format des Kontrollblocks EDTAMCB sind das Feld EAMMMODB und die beiden Flags EAMMOVM und EAMLOCM (alle im Zusammenhang mit dem MOVE-Mode) entfallen. Ferner sind die Equates für die nicht verwendeten Markierungen (EAMMK10, EAMMK11, EAMMK12 und EAMMK0) entfallen.

Im V17-Format des Kontrollblocks EDTPARG ist das Feld EPGCCSN (Name des im EDT global eingestellten Zeichensatzes) entfallen. Es ist jetzt mit dem Namen EPLCCSN im Kontrollblock EDTPARL lokal für jede Arbeitsdatei vorhanden.

Im V17-Format des Kontrollblocks EDTPARL ist das Feld EPLCCSN neu (früher mit dem Namen EPGCCSN im Kontrollblock EDTPARG). Ferner ist das Feld EPLCCSNG (Zeichensatz gilt global für alle Arbeitsdateien) neu und die Felder EPLSTCOD (Code-Voreinstellung EBCDIC/ISO) und EPLOPNXC (Code der POSIX-Datei EBCDIC/ISO) sind entfallen.

Sollen externe Anweisungsroutinen (mittels @USE-Anweisung definierte Benutzeranweisungen) benutzt werden, die das V17-Format der Unterprogramm-Schnittstelle in ihrer Implementierung verwenden, muss der Ersteller der Anweisungsroutine zusätzlich eine Initialisierungsroutine bereitstellen. Am Vorhandensein der Initialisierungsroutine erkennt der EDT, dass das V17-Format verstanden wird.