Loading...
Select Version
&pagelevel(4)&pagelevel
Wir wählen bewusst das Hilfsmittel Columbus-Assembler, weil wir so auf explizites Registersichern und Rückladen verzichten können. Der Benutzer braucht nur das angebotene Gerüst zu übernehmen und kann nach Belieben den Rest der Routinen in Assembler oder Columbus-Assembler schreiben.
Die Namen von Basisroutine und Subroutinen müssen systemweit eindeutig sein und dürfen nicht mit Namen in Systemmodulen kollidieren.
Basisroutine
START
EXITCOD AMODE ANY
EXITCOD RMODE ANY
EXPARLI EX090 DSECT for Exit-090
EXITCOD CSECT
*****************************************************************************
* MAINROUTINE *
* R1 = EXPARLI A(PARAMETERLIST OF EXIT#90 *
*****************************************************************************
EXIT090 @ENTR TYP=E,ENV=SPLSPEC,RETURNS=NO
ENTRY EXIT090
USING EXPARLI,R1 Use layout of parlist of Exit-090
*****************************************************************************
* AUFRUF 1.SUBROUTINE *
*****************************************************************************
@PASS EXTNAME=SUBROUT1 Call Subrout1
@IF NZ If returncode not ok
LTR R15,R15
@THEN
ST R15,IEXRC set returncode in exit paralist
@EXIT then return to system
@BEND
*****************************************************************************
* AUFRUF 2.SUBROUTINE *
*****************************************************************************
@PASS EXTNAME=SUBROUT2 Call Subrout2
@IF NZ If returncode not ok
LTR R15,R15
@THEN
ST R15,IEXRC set returncode in exit paralist
@EXIT then return to system
@BEND
*****************************************************************************
* AUFRUF WEITERER ROUTINEN *
*****************************************************************************
:
:
@PASS EXTNAME=SUBROUTN Call Subrout2
@IF NZ If returncode not ok
LTR R15,R15
@THEN
ST R15,IEXRC set returncode in exit paralist
@EXIT then return to system
@BEND
*****************************************************************************
* END OF MAINROUTINE *
*****************************************************************************
@EXIT
@END
END
Subroutine
SUBEX001 CSECT
PRINT GEN
SUBEX001 AMODE ANY
SUBEX001 RMODE ANY
EXITPL EX090
SUBROUTN @ENTR TYP=I,ENV=SPLSPEC,RETURNS=NO
ENTRY SUBROUTN
****************************************************************************
* Anwendungsspezifische Befehle *
****************************************************************************
L R15,IADD RETURNCODE WEITERREICHEN
@EXIT , RETURN TO BASISROUTINE
@END ,
END