Sample application that uses stand-alone log services

Sample segments of an assembler program use three stand-alone log services (OPEN, GET, and CLOSE) to process one log record.

Begin program-specific programming interface information.For example:

Figure 1. Excerpts from a sample program using stand-alone log services
TSTJSLR5 CSECT
⋮
OPENCALL EQU   *
         LA    R2,NAME                GET BSDS DDNAME ADDRESS
         LA    R3,RANGER              GET ADDRESS OF RBA RANGE
         DSNJSLR FUNC=OPEN,DDNAME=(R2),RANGE=(R3)
         LTR   R15,R15                CHECK RETURN CODE FROM OPEN
         BZ    GETCALL                OPEN OK, DO GET CALLS
⋮
*****************************************************************
*        HANDLE ERROR FROM OPEN FUNCTION AT THIS POINT          *
*****************************************************************
⋮
GETCALL  EQU   *
         DSNJSLR FUNC=GET,RBR=(R1)
         C     R0,=X'00D10020'        END OF RBA RANGE ?
         BE    CLOSE                  YES, DO CLEANUP
         C     R0,=X'00D10021'        RBA GAP DETECTED ?
         BE    GAPRTN                 HANDLE RBA GAP
         LTR   R15,R15                TEST RETURN CODE FROM GET
         BNZ   ERROR
⋮
⋮
******************************************************************
*       PROCESS RETURNED LOG RECORD AT THIS POINT. IF LOG RECORD *
*       DATA MUST BE KEPT ACROSS CALLS, IT MUST BE MOVED TO A    *
*       USER-PROVIDED AREA.                                      *
******************************************************************
         USING SLRF,1                 BASE SLRF DSECT
         L     R8,SLRFFRAD            GET LOG RECORD START ADDR
         LR    R9,R8
         AH    R9,SLRFRCLL            GET LOG RECORD END ADDRESS
         BCTR  R9,R0
⋮
CLOSE    EQU   *
         DSNJSLR FUNC=CLOSE,RBR=(1)
⋮
NAME     DC    C'DDBSDS'
RANGER   DC    X'00000000000000000005FFFF'
⋮
         DSNDSLRB
         DSNDSLRF
         EJECT
R0       EQU   0
R1       EQU   1
R2       EQU   2
⋮
R15      EQU   15
         END

End program-specific programming interface information.