LOCATE CSECT
CVTPTR EQU 16
CVTTVT EQU X'9C'
R15 EQU 15
R14 EQU 14
R13 EQU 13
R12 EQU 12
R11 EQU 11
R9 EQU 9
R8 EQU 8
R0 EQU 0
IKJTSVT
LOCATE CSECT
STM R14,R12,12(R13) SAVE CALLER'S REGISTERS
BALR R12,0 ESTABLISH ADDRESSABILITY
USING *,R12 BASE REGISTER OF EXECUTING PROGRAM
ST R13,SAVEAREA+4 CALLER'S SAVEAREA ADDRESS
LA R15,SAVEAREA EXECUTING PROGRAM'S SAVEAREA ADDRESS
ST R15,8(,R13) EXECUTING PROGRAM'S SAVEAREA ADDRESS
LA R13,SAVEAREA EXECUTING PROGRAM'S SAVEAREA ADDRESS
*
*
LOOP DS 0H
L R15,CVTPTR ESTABLISH
L R15,CVTTVT(,R15) ADDRESSABILITY TO THE
L R15,TSVTVACC-TSVT(,R15) VARIABLE ACCESS SERVICE
*
* INVOKE THE VARIABLE ACCESS SERVICE
*
LTR R15,R15 VERIFY TSVT ADDRESS PRESENT
BNZ CALL441 IF PRESENT, CALL IKJCT441
LINK441 LINK EP=IKJCT441, *
PARAM=(ECODE, ENTRY CODE *
NAMEPTR, POINTER TO VARIABLE NAME *
NAMELEN, LENGTH OF VARIABLE NAME *
VALUEPTR, POINTER TO VARIABLE VALUE *
VALUELEN, LENGTH OF VARIABLE VALUE *
TOKEN), TOKEN TO VARIABLE ACCESS SERVICE *
VL=1 CAUSES HI BIT ON IN THE PARM LIST
B RET441
CALL441 CALL (15), *
(ECODE, ENTRY CODE *
NAMEPTR, POINTER TO VARIABLE NAME *
NAMELEN, LENGTH OF VARIABLE NAME *
VALUEPTR, POINTER TO VARIABLE VALUE *
VALUELEN, LENGTH OF VARIABLE VALUE *
TOKEN), TOKEN TO VARIABLE ACCESS SERVICE *
VL CAUSES HI BIT ON IN THE PARM LIST
*
RET441 C R15,NOMORE
BE ENDUP
LTR R15,R15
BNZ ERRORRTN
*
MAINLINE DS 0H
L R8,NAMEPTR
L R9,VALUEPTR
*
*
* ISSUE 'PUTLINE' TO WRITE VARIABLE NAME AND VALUE
* - OR -
* SAVE THE NAME AND VALUE IN A TABLE
*
*
B LOOP
*
*
ERRORRTN DS 0H
*
* ANALYZE RETURN CODE
*
B MAINLINE
*
ENDUP DS 0H
L R13,4(,R13)
L R14,12(,R13) RESTORE REGISTER 14
LM R0,R12,20(R13) RESTORE REMAINING REGISTERS
BR R14 RETURN TO CALLER, REGISTER 15 CONTAINS
* THE RETURN CODE FROM IKJCT441
*
*
NAMELEN DS F LENGTH OF NAME WILL BE RETURNED HERE
VALUELEN DS F LENGTH OF VALUE WILL BE RETURNED HERE
NAMEPTR DS A ADDRESS OF NAME WILL BE RETURNED HERE
VALUEPTR DS A ADDRESS OF VALUE WILL BE RETURNED HERE
TOKEN DC F'0' TOKEN MUST BE ZERO ON THE FIRST CALL
* AND NEVER CHANGED BY THE CALLER
ECODE DC A(TSVELOC) ENTRY CODE FOR THE 'LOCATE' SERVICE
NOMORE DC A(TSVRNOM) RETURN CODE FOR NO MORE NAMES
SAVEAREA DS 18F
END