I would be interested to hear your comments on this structure.


TITLE 'SOFTWARE TOOLS'

SOFTOOL  START



         STM   R14,R12,12(R13)

         BALR  R15,0

         USING *,R15

         L     R1,MAIN-16

         ST    R13,4(R1)

         ST    R1,8(R13)

         LR    R13,R1

         LM    R10,R12,MAIN-12

         DROP  R15

         USING MAIN,R10,R11,R12

         B     MAIN

         DC    A(SAVE,MAIN,MAIN+4096,MAIN+8192)

*

*   MAIN LINE CODE

*

MAIN     EQU   *

         L     R15,=A(GETCHAR)

         BAL   R14,SENTER

MAIN99   SR    R15,R15

         B     SEXIT

         TITLE 'COMMON SUBROUTINE ENTRY/EXIT'

*

*   COMMON SUBROUTINE ENTRY

*

SENTER   STM   R14,R12,12(R13)

         C     R13,=A(SAVEND)

         BL    SENTER1

         DC    H'0'

         DC    C'SAVE AREA OVERFLOW'

SENTER1  LR    R9,R15

         LA    R15,72(R13)

         ST    R15,8(R13)

         ST    R13,4(R15)

         LR    R13,R15

         BR    R9

*

*   COMMON SUBROUTINE EXIT

*

SEXIT    L     R13,4(R13)

         L     R14,12(R13)

         LM    R0,R12,20(R13)

         BR    R14

         TITLE 'REGISTER EQUATES AND USAGE'

*

*   REGISTER EQUATES

*

R0       EQU   0

R1       EQU   1

R2       EQU   2

R3       EQU   3

R4       EQU   4

R5       EQU   5

R6       EQU   6

R7       EQU   7

R8       EQU   8

R9       EQU   9   SENTER BRANCH TO SUBROUTINE, SUBROUTINE USES AS BASE

R10      EQU   10  BASE REGISTER FOR MAIN

R11      EQU   11  BASE REGISTER FOR MAIN

R12      EQU   12  BASE REGISTER FOR MAIN

R13      EQU   13  SAVE AREA ADDRESS

R14      EQU   14  SEXIT RETURN ADDRESS

R15      EQU   15  BRANCH TO ADDRESS, SENTER COPIES TO R9

*                  RETURN CODE FROM SUBROUTINE

         TITLE 'TASK CONTROL BLOCK'

         IKJTCB LIST=YES

         TITLE 'DATA EXTENT BLOCK'

         IECTDEBX

         TITLE 'DATA CONTROL BLOCK'

DCBDS    DSECT

         DCBD  DSORG=PS

         TITLE 'UNIT CONTROL BLOCK'

UCBDS    DSECT

         IEFUCBOB

         TITLE 'TASK I/O TABLE'

TIOTDS   DSECT

         IEFTIOT1

         TITLE 'JOB FILE CONTROL BLOCK'

JFCBDS   DSECT

         IEFJFCBN LIST=YES

         TITLE 'DATA EVENT CONTROL BLOCK'

         IECTDECB

         TITLE 'COMMUNICATION VECTOR TABLE'

         IEFJSCVT

         TITLE 'VSAM ACB'

         IFGACB DSECT=YES

         TITLE 'REMOTE AREAS'

SOFTOOL1 CSECT

*

*   REMOTE AREAS

*

SAVE     DS    90D

SAVEND   EQU   *

         TITLE 'GETCHAR: GET CHARACTER FROM FILE'

*

*   GET CHARACTER FROM FILE

*

GETCHAR  B     14(0,R9)

         USING GETCHAR,R9

         DC    AL1(8),CL9'GETCHAR'

         B     SEXIT

         LTORG

Reply via email to