Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Alte LMS-Unterprogramm-Schnittstelle

&pagelevel(3)&pagelevel

Aus Kompatibilitätsgründen wird noch die hier beschriebene alte Unterprogramm-Schnittstelle unterstützt.

Die neue Unterprogramm-Schnittstelle ist in [1] beschrieben.

Wird LMS als Unterprogramm mit eigenständiger Dialogführung aufgerufen, kehrt es nach der Verarbeitung von END zum aufrufenden Programm zurück. LMS bleibt nach der Verarbeitung von END geladen. Ansonsten ist der Ablauf wie nach dem Laden mit dem Kommando /START-EXECUTABLE-PROGRAM. Bei jedem Aufruf von LMS meldet LMS eine eigene STXIT-Routine an.

Beim Rücksprung in das Hauptprogramm wird die LMS-STXIT-Routine abgemeldet; das Hauptprogramm muss seine eigene STXIT-Routine wieder anmelden.

Beim Aufruf der Unterprogramm-Schnittstelle sind folgende Registerkonventionen zu beachten:

Register 1

Register 13

muss Null sein.

enthält die Adresse eines Sicherstellungsbereichs von 18 Worten, der
vom aufrufenden Programm zur Verfügung gestellt werden muss. Dieser
Bereich wird von LMS für die Speicherung der Register des rufenden
Programms verwendet.

Register 14

Register 15

enthält die Rücksprungadresse.

enthält die Einsprungadresse LMSUPSDF.

Vor dem Rücksprung in das rufende Programm hinterlegt LMS im Register 15 folgende Rücksprungcodes:

X'00'

X'04'

LMS wurde normal beendet

LMS wurde abnormal beendet

Beispiel

Aus dem Programm UPROG wird LMS als Unterprogramm aufgerufen. In LMS wird ein Element aus einer Programmbibliothek in eine Datei ausgegeben. Nach Beenden des LMS-Laufs wird ins Benutzerprogramm zurückgesprungen.

/START-LMS 
//OPEN UEB.BIB,U ------------------------------------------------------------------  (1) 
//SHOW-ELEM *LIB(,LMSCALL,S) ------------------------------------------------------  (2) 
INPUT  LIBRARY= :N:$USER.UEB.BIB,DEV=DISK 
INPUT  ELEMENT= (S)LMSCALL/(0001)/1995-08-12 
UPROG    START
        BALR  3,0
        USING *,3
        MVC   OUTPUT,ANMELD
AUFRUF   WROUT OUT,TERM
        LA    14,RUECK -----------------------------------------------------------  (3) 
        LA    1,0 ----------------------------------------------------------------  (4) 
        LA    13,SAVE ------------------------------------------------------------  (5) 
        L     15,=V(LMSUPSDF) ----------------------------------------------------  (6) 
        BALR  14,15
RUECK    MVC   OUTPUT,ABMELD
        WROUT OUT,TERM
*
*
TERM     TERM
*
*
SAVE     DS    18F
*
ANMELD   DC    '********** *LMS WIRD JETZT AUFGERUFEN ************'
ABMELD   DC    '***** LMS WURDE BEENDET - WEITER IM PROGRAMM *****'
OUT      DC    Y(ENDE-OUT)
        DS    CL2
        DC    X'01'
OUTPUT   DS    CL50
ENDE     EQU   *
*
*
        END   UPROG
NUMBER OF PROCESSED RECORDS IS      29
//END
/
.
.
.
/START-EXECUTABLE-PROGRAM FROM-FILE=(LIB=UEB.BIB,ELEM=LMSCALL)
%  BLS0500 PROGRAM 'LMSCALL', VERSION '007' OF '95-08-12' LOADED
********** *LMS WIRD JETZT AUFGERUFEN ************
%  LMS0310 LMS VERSION  ́03.4B00 ́ STARTED -----------------------------------------   (7) 
//OPEN UEB.BIB,U
//SHOW-E-ATTR
INPUT  LIBRARY= :N:$USER.UEB.BIB,DEV=DISK
TYP NAME    VER (VAR#) DATE
(C) LMSCALL 007 (0001) 1995-08-12
    1 (C)-ELEMENT(S) IN THIS TABLE OF CONTENTS
//EXTRACT-ELEM *LIB(,LMSCALL,S),LMSCALL1
INPUT  LIBRARY= :N:$USER.UEB.BIB,DUF2EV=DISK
OUTPUT FILE
        SEL (S)LMSCALL/(0001)/1995-08-12 AS LMSCALL1
//END ----------------------------------------------------------------------------   (8) 
***** LMS WURDE BEENDET - WEITER IM PROGRAMM ***** 

(1)

Die Programmbibliothek UEB.BIB wird als Ein- und Ausgabebibliothek zugewiesen.

(2)

Das Quellprogramm LMSCALL wird aufgelistet.

(3)

Die Rücksprungadresse wird nach Register 14 geladen.

(4)

Register 1 wird auf 0 gesetzt.

(5)

Die Adresse des Sicherstellungsbereiches wird nach Register 13 geladen.

(6)

Die Einsprungadresse LMSUPSDF wird nach Register 15 geladen.

(7)

Aus dem Benutzerprogramm heraus wird LMS aufgerufen.

(8)

Nach Beenden des LMS-Laufes wird ins Benutzerprogramm zurückgesprungen.