|
Figure 1. Assembler Language
Program Demonstrating the Use of IKJEFTSI, IKJEFTSR, and IKJEFTST
to Invoke a CommandCOMPOS4 CSECT ,
COMPOS4 AMODE 31
COMPOS4 RMODE ANY
@MAINENT DS 0H
STM R14,R12,12(R13) ENTRY LINKAGE
LR R12,R15
@PSTART EQU COMPOS4
USING @PSTART,R12
ST R13,SAVEAREA+4
LA R11,SAVEAREA
ST R11,8(,R13)
LA R13,SAVEAREA
*
*
MAIN DS 0H
*
******************************************************************
* *
* SET UP THE PARAMETER LIST FOR IKJEFTSI. A VALUE OF ZERO IS *
* PASSED FOR ALL PARAMETERS. *
* *
******************************************************************
XC IKJEFTSJ(72),IKJEFTSJ INITIALIZE PARAMETER VALUES
LA R2,EFTSI_ECTPARM PLACE ADDRESS OF ECTPARM
ST R2,EFTSI_ECTPARM@ IN THE PARAMETER LIST
LA R2,EFTSI_RESERVED PLACE ADDRESS OF RESERVED
ST R2,EFTSI_RESERVED@ DATA IN PARAMETER LIST
LA R2,EFTSI_TOKEN PLACE ADDRESS OF TOKEN
ST R2,EFTSI_TOKEN@ DATA IN PARAMETER LIST
LA R2,EFTSI_ERROR PLACE ADDRESS OF ERROR
ST R2,EFTSI_ERROR@ DATA IN PARAMETER LIST
LA R2,EFTSI_ABEND PLACE ADDRESS OF ABEND
ST R2,EFTSI_ABEND@ DATA IN PARAMETER LIST
LA R2,EFTSI_REASON PLACE ADDRESS OF REASON
ST R2,EFTSI_REASON@ DATA IN PARAMETER LIST
OI EFTSI_REASON@,X'80' SET HIGH ORDER BIT
LA R1,IKJEFTSJ REG 1 POINTS TO PARM LIST
CALLTSSR EP=IKJTSFI INVOKE IKJEFTSI, SPECIFYING
* ENTRY POINT IKJTSFI.
* ---- Provide for error conditions here ----
*
******************************************************************
* *
* SET UP THE PARAMETER LIST FOR IKJEFTSR. *
* *
******************************************************************
LA R2,TSR1 PLACE ADDR OF TSR1
ST R2,TSR1@ IN THE PARAMETER LIST
LA R2,TSR2 PLACE ADDR OF TSR2
ST R2,TSR2@ IN THE PARAMETER LIST
LA R2,TSR3 PLACE ADDR OF TSR3
ST R2,TSR3@ IN THE PARAMETER LIST
LA R2,TSR4 PLACE ADDR OF TSR4
ST R2,TSR4@ IN THE PARAMETER LIST
LA R2,TSR5 PLACE ADDR OF TSR5
ST R2,TSR5@ IN THE PARAMETER LIST
LA R2,TSR6 PLACE ADDR OF TSR6
ST R2,TSR6@ IN THE PARAMETER LIST
LA R2,TSR7 PLACE ADDR OF TSR7
ST R2,TSR7@ IN THE PARAMETER LIST
LA R2,TSR8 PLACE ADDR OF TSR8
ST R2,TSR8@ IN THE PARAMETER LIST
LA R2,EFTSI_TOKEN PLACE ADDR OF THE TOKEN
ST R2,TSR9@ IN THE PARAMETER LIST
OI TSR9@,X'80' SET HIGH ORDER BIT
LA R1,TSR1@ REG 1 POINTS TO PARM LIST
L R15,CVTPTR
L R15,CVTTVT(,R15)
L R15,TSVTASF-TSVT(,R15)
BALR R14,R15 CALL IKJEFTSR
* ---- Provide for error conditions here ----
*
L R15,CVTPTR
L R15,CVTTVT(,R15)
L R15,TSVTASF-TSVT(,R15)
BALR R14,R15 CALL IKJEFTSR
CALL (15),(TSR1,TSR2,TSR3,TSR4,TSR5,TSR6,TSR7,TSR8,
EFTSI_TOKEN),VL
* ---- Provide for error conditions here ----
*
******************************************************************
* *
* SET UP THE PARAMETER LIST FOR IKJEFTST. A VALUE OF ZERO IS *
* PASSED FOR ALL PARAMETERS, EXCEPT FOR THE TOKEN THAT IS *
* GOTTEN FROM IKJEFTSI. *
* *
******************************************************************
XC IKJEFTSV(72),IKJEFTSV INITIALIZE PARAMETER VALUES
LA R2,EFTST_ECTPARM PLACE ADDRESS OF ECTPARM
ST R2,EFTST_ECTPARM@ IN THE PARAMETER LIST
LA R2,EFTST_RESERVED PLACE ADDRESS OF RESERVED
ST R2,EFTST_RESERVED@ DATA IN PARAMETER LIST
LA R2,EFTST_TOKEN PLACE ADDRESS OF TOKEN
ST R2,EFTST_TOKEN@ DATA IN PARAMETER LIST
MVC EFTST_TOKEN(16),EFTSI_TOKEN PASS TOKEN
* FROM IKJEFTSI
LA R2,EFTST_ERROR PLACE ADDRESS OF ERROR
ST R2,EFTST_ERROR@ DATA IN PARAMETER LIST
LA R2,EFTST_ABEND PLACE ADDRESS OF ABEND
ST R2,EFTST_ABEND@ DATA IN PARAMETER LIST
LA R2,EFTST_REASON PLACE ADDRESS OF REASON
ST R2,EFTST_REASON@ DATA IN PARAMETER LIST
OI EFTST_REASON@,X'80' SET HIGH ORDER BIT
LA R1,IKJEFTSV REG 1 POINTS TO PARM LIST
CALLTSSR EP=IKJTSFT INVOKE IKJEFTST, SPECIFYING
* ENTRY POINT IKJTSFT.
* ---- Provide for error conditions here ----
*
DS 0H
L R13,4(,R13) EXIT LINKAGE
LM R14,R12,12(R13)
SLR R15,R15
BR R14
*
*
SAVEAREA DS 18F
*
*
ZERO DC F'0'
*
* IKJEFTSI Input:
IKJADFMT
IKJEFTSJ
* 000
* IKJEFTSR Input:
TSR1@ DS F o Address of Parm 1
TSR2@ DS F o Address of Parm 2
TSR3@ DS F o Address of Parm 3
TSR4@ DS F o Address of Parm 4
TSR5@ DS F o Address of Parm 5
TSR6@ DS F o Address of Parm 6
TSR7@ DS F o Address of Parm 7
TSR8@ DS F o Address of Parm 8
TSR9@ DS F o Address of Parm 9
TSR1 DS 0F o Parm 1:
RESFLAGS DC X'00' Byte 1 - Reserved
UNAUTHFL DC X'01' Byte 2 - Unauthorized environment
ABFLAGS DC X'01' Byte 3 - Dump indicator
FNCFLAGS DC X'01' Byte 4 - Cmd, REXX, CLIST indicator
*
TSR2 DC C'ALTLIB DISPLAY '
*
TSR3 DC F'20' o Parm 3 - Buffer Len
TSR4 DS F o Parm 4 - Return code
TSR5 DS F o Parm 5 - Reason code
TSR6 DS F o Parm 6 - Abend code
TSR7 DC F'0' o Parm 7 - Parm for pgms
TSR8 DC 4F'0' o Parm 8 - CPPL
* let IKJEFTSR get appropriate values
* o Parm 9 - Token
* obtained from IKJEFTSI Parm 3
*
* IKJEFTST Input:
IKJEFTSV
*
CVTPTR EQU 16
CVTTVT EQU X'9C'
R15 EQU 15
R14 EQU 14
R13 EQU 13
R12 EQU 12
R11 EQU 11
R10 EQU 10
R9 EQU 9
R8 EQU 8
R7 EQU 7
R6 EQU 6
R5 EQU 5
R4 EQU 4
R3 EQU 3
R2 EQU 2
R1 EQU 1
IKJTSVT
END
|