Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CALL-Schnittstelle für DIV

Mit dem Adapter Window Services ist es in einigen höheren Programmiersprachen möglich, DIV-Funktionen aus Programmen über eine CALL-Schnittstelle aufzurufen. Es handelt sich dabei um folgende Programmiersprachen:

  • COBOL (ab Version 2.0)

  • FORTRAN (ab Version 2.2)

  • PL/1 (ab Version 4.1)

  • C (ab Version 2.0)

Der Aufruf von DIV-Funktionen über eine CALL-Schnittstelle setzt die sog. ILCS-Linkage voraus.
Die Übersetzung entsprechender Programme in den Programmiersprachen COBOL, FORTRAN, und C liefert die ILCS-Linkage standardmäßig. Bei der Übersetzung eines PL/1-Programms muss eine entsprechende Compiler-Option eingestellt werden.

Eine Besonderheit gibt es bei Programmen in C zu beachten: es sind nicht die Datenelemente, sondern Zeiger auf die Datenelemente zu übergeben („call by reference“-Übergabe in C).

Die Semantik der Datentypen weist bei den oben genannten Programmiersprachen starke Unterschiede auf. In der folgenden Tabelle werden diejenigen Datentypen aufgeführt, die in den genannten Sprachen eine gleiche Datendarstellung besitzen und daher problemlos als Parameter übergeben werden können, soweit dies für den Aufruf von Window Services erforderlich ist.

Datentypen aus Programmiersprachen, die als Parameter für DIV übergeben werden können:

Compiler

Datentyp Binär Wort

Datentyp String

PL/1

BIN FIXED (31)

CHAR (i)

COBOL

PIC S9(i) COMP
(i = 5,...,9)

USAGE DISPLAY

C

long

char <var>

FORTRAN


INT * 4

(<size>)
CHAR * i

Der Adapter Window Services wird ausgeliefert als Laufzeit-Bibliothek (OML) in einer Datei mit dem Namen SYSLIB.DWS.110 unter der Kennung TSOS des Systemverwalters.

Bei Aufruf von DIV über Window Services können einige DIV-Funktionen nicht oder nur eingeschränkt genützt werden:

  • Bei Window Services können Fenster nicht in einem Datenraum liegen (SPID entfällt).

  • Die Funktion LOCVIEW=MAP gibt es nicht bei Window Services.

  • RELEASE=YES (Funktion RESET) wird von Window Services nicht unterstützt.

  • Statt der Möglichkeit, bei seq. Bearbeitung die Zahl der im Voraus einzulesenden Seiten anzugeben (PFCOUNT), wird bei Window Services nur der sequentielle Zugriff angezeigt (USAGE).
    USAGE='RANDOM' wirkt wie PFCOUNT=0,
    USAGE='SEQ' wird auf PFCOUNT=15 abgebildet.

  • Als Returncode wird nur der Main-Returncode zur Verfügung gestellt.

CALL-Aufrufe

Beim CALL-Aufruf der entsprechenden Funktionen müssen verschiedene Parameter übergeben werden. Die folgende Tabelle zeigt eine Zusammenfassung aller möglichen Werte.

Feldname

Datentyp
PL/1-Umgebung

Kurzerklärung

DISPOS

CHAR(6);

/* bei Funktion=MAP: 'OBJECT' 'UNCHNG'
/* bei Funktion UNMAP: 'UNCHNG' 'FRESH'

DMS_CODE

BIN FIXED (31);


FILENAME

CHAR(54);


ID

CHAR (8);

/* Identifikation des OPEN,
/* (Ausgabe-Parameter)

LINKNAME

CHAR(8);


OFFSET

BIN FIXED (31);


OPEN-MODE

CHAR(5);


RETURNCODE

BIN FIXED (31);

/* 'INPUT' INOUT' 'OUTIN'

SHARUPD-MODE

CHAR(4);

/* 'NO' 'WEAK' 'YES'

SIZE

BIN FIXED (31);


SPAN

BIN FIXED (31);

/* Dateigröße,
/* (Ausgabe-Param.)

USAGE

CHAR(6);

/* ' RANDOM' ' SEQ'

WINDOW

AREA(1) BASED ...;

/* Ausrichtung auf
/* Seitengrenze !!

Im Folgenden werden die CALL-Aufrufe für die einzelnen DIV-Funktionen (in PL/1) aufgeführt. Welche Parameter bei dem jeweiligen CALL-Aufruf angegeben werden müssen, ist den einzelnen CALL-Aufrufen zu entnehmen.

DIV-Funktion OPEN

CALL DWSOPEN (LINKNAME, FILENAME, OPEN-MODE, SHARUPD-MODE, ID, SIZE, RETURNCODE, DMS-CODE);

DIV-Funktion MAP

CALL DWSMAP (ID, OFFSET, SPAN, WINDOW, USAGE, DISPOS, RETURNCODE);

DIV-Funktion SAVE

CALL DWSSAVE (ID, OFFSET, SPAN, SIZE, RETURNCODE);

Funktion REFRESH (entspricht der DIV-Funktion ''RESET'')

CALL DWSREFR (ID, OFFSET, SPAN, RETURNCODE);

DIV-Funktion UNMAP

CALL DWSUNMP (ID, OFFSET, SPAN, WINDOW, DISPOS, RETURNCODE);

DIV-Funktion CLOSE

CALL DWSCLS (ID, RETURNCODE, DMS_CODE);