*TITLEJINITVSF -- INITIALIZE VS FORTRAN AREAS FOR JOBGEN (COBOL) C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** *A AUTHOR NORMAN MOZLEY *A DESIGNER I.B.M. *A LANGUAGE S/370 ASSEMBLER *A SYSTEM S/370 *A WRITTEN 10-08-84 * REVISED: * DATE BY REASON * * 01/30/86 NAM CHANGE FROM VS FORTRAN 3.1 TO VS FORTRAN 4.0 *A *A CALL 'JINITVSF' *A *A NO OTHER PARAMETERS ARE REQUIRED. *A *A THIS PROGRAM IS FOUND IN THE VS FORTRAN APPLICATION *A PROGRAMMING GUIDE IN APPENDIX A (ASSEMBLER LANGUAGE *A CONSIDERATIONS). CERTAIN FORTRAN LINKAGES MUST BE ESTABLISHED *A AFTER THE SAVE AREA IS ESTABLISHED AND BEFORE THE FORTRAN *A SUBROUTINE IS CALLED. THIS PROGRAM DOES THIS. *A *A THE LINKAGES ESTABLISHED CAUSE INITIALIZATION OF RETURN *A CODING AND INTERRUPT EXCEPTIONS, AS WELL AS OPENING OF THE *A ERROR MESSAGE DATA SET. *A *A IF THIS PROGRAM IS NOT CALLED AND THE FORTRAN SUBPROGRAM *A TERMINATES IN ERROR OR WIAT A STOP STATEMENT, ANY OPEN FORTRAN *A DATA SETS ARE NOT CLOSED, AND THE RESULTS OF THE PROGRAM *A TERMINATION ARE UNPREDICTABLE. *A *A IN OTHER WORDS, IF THE MAIN ROUTINE IS NOT FORTRAN, AND *A IT IS CALLING FORTRAN SUBROUTINES, THIS SUBROUTINE NEEDS TO *A BE CALLED FIRST. *A EJECT JINITVSF CSECT 00007300 SPACE 2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 SPACE 2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * STANDARD IBM LINKAGE * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SAVE (14,12),,* SAVE REGISTERS IN CALLING 00007400 * PROGRAMS SAVE AREA 00007500 LR R12,R15 00007600 USING JINITVSF,R12 ESTABLISH BASE REGISTER 00007700 ST R13,SAVEAREA+4 SAVE ADDRESS OF CALLING 00007800 * PROGRAM SAVE AREA 00007900 LR R11,R13 00008000 LA R13,SAVEAREA SET UP REG 13 TO POINT TO 00008100 * MY SAVE AREA 00008200 ST R13,8(R11) POINT CALLING SAVE TO ME 00008100 SPACE 2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * THIS CODE COMES FROM THE VS FORTRAN APPLICATION * * PROGRAMMING GUIDE, APPENDIX A. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SR R1,R1 INDICATES NO PARAMETER LIST L R15,=V(VFEIN#) LOADS INITIALIZATION ROUTINE ADDR BALR R14,R15 CALL VFEIN SPACE 2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * RETURN LOGIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * L R13,SAVEAREA+4 GRAB OLD SAVE AREA 00010900 LM R14,R12,12(R13) RESTORE REGISTERS 00011000 BR R14 RETURN TO CALLER 00011300 * 00011400 CNOP 0,4 00011500 SAVEAREA DC 18F'0' 00011700 END 00011800