&DL      PROC
XJRNINIT NAME  X
JRNINIT  NAME  0
*                                                               *
*  THIS AND ALL RELATED PROGRAMS ARE THE PROPERTY OF SPERRY     *
*  UNIVAC CONTAINING ITS CONFIDENTIAL INFORMATION .             *
*                                                               *
*  THIS PROCEDURE PERFORMS THE INITIALIZATION REQUIRED FOR JOURNAL
*  FILES.A SUB TASK IS ATTACHED AND CONTROL IS TRANSFERED TO OPEN
*  THE JOURNAL FILE.
*
         VTOC  SAT=YES,PCA=YES,FCB=YES
         TJ#DSECT
R0$      EQU   0                                                        00006050
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
RA$      EQU   10
RB$      EQU   11
RC$      EQU   12
RD$      EQU   13
RE$      EQU   14
RF$      EQU   15
         ENTRY TJ#OJRNI
         EXTRN TU#LRTRN
         EXTRN TJ#SYLD
         USING TN#CNTRL,R2$               COVER  CCA
         USING TN#GEN,R3$                 COVER  GENERAL TABLE
TJ#OJRNI BALR  RF$,0                     SET RF$ AS BASE
         USING TJ#O,RF$
TJ#O     ST    RF$,TJ#OSAVF              SAVE BASE
         STM   R0$,RE$,TJ#OSAVR          SAVE CALLERS REGISTERS
         L     R6$,TN#CCDTF              R1 = ADD OF JRN TBL IN CCA
         USING TJ#RADDR,R6$               JRNL TABLE
TJ#OPEN  XC    TJ#OERRF(2),TJ#OERRF     . CLEAR ERROR SAVE
         L     R1$,TJ#RADTF              R1 = ADD OF DTF
         USING ST$DTF,R1$                 DTF
         TM    ST$DMFLG,X'80'            FILE OPEN ?
         BO    TJ#ONXF                   YES,TJ#ONXF
         L     R7$,TJ#RARSA              R7 = ADD OF R$ SAVE AREA FOR
         STM   R0$,RF$,0(R7$)            THIS JRN FILE.
         L     R1$,TJ#RAECB              R1 = ADD OF ECB FOR SUBTASK
         ATTACH (1),TJ#OSUBT,TJ#OSERR   ATTACH SUBTASK
         RELEASE                         GO TO ACTIVITY CONTROL
TJ#OSRET BALR  RF$,0                     SUB TASK RETURN
         USING *,RF$
         L     RF$,=A(TJ#O)              RESTORE BASE
         USING TJ#O,RF$
         L     R6$,TN#CCDTF              R1 = ADD OF JRN TBL IN CCA
         L     R7$,TJ#RARSA              R7 = ADD OF JRN SAVE AREA
         LM    R0$,RE$,0(R7$)            RESTORE R$ FROM JRN SAVE AREA
         L     R1$,TJ#RADTF              R7 = ADD OF SAT DTF
         TM    ST$DMFLG,X'80'            FILE OPENED OK?
         BNO   TJ#ODERR                  NO,TJ#DERR1
TJ#ONXF  DS    0H                       . PROCESS NEXT JOURNAL FILE
         CLC   TN#CCDTF,TN#CLDTF        . IS THIS THE LAST DTF?
         BE    TJ#OEXIT                 . YES,EXIT
         BL    TJ#ONLUP                 . LAST MUST HAVE HIGHER ADDR
         MVI   TJ#OERRF,C'1'            . OTHERWISE INDICATE ERROR
         B     TJ#OERRX                 . AND GOTO EXIT VIA DETACH
TJ#OSERR MVI   TJ#OERRF,C'2'            . INDICATE FAILURE OF ATTACH
         B     TJ#OEXIT                 . EIT
TJ#ODERR MVI   TJ#OERRF,C'3'            . INDICATE FAILURE OF D.M. OPEN
         B     TJ#OERRX                 . EXIT VIA DETACH
TJ#ODETC MVI   TJ#OERRF+1,C'5'          . INDICATE FAILURE OF DETACH
         B     TJ#OEXIT                 . EIT
TJ#OERRX L     R1$,TJ#RAECB              R1 = ADD OF ECB FOR SUBTASK
         DETACH (1),TJ#ODETC             DETACH  SUBTASK
         B     TJ#OEXIT                  GOTO TJ#ONXF
TJ#ONLUP L     R6$,TJ#RENDM             . POINT TO END OF THIS FILE
         ST    R6$,TN#CCDTF             . PUT ADDR AS CURRENT
         B     TJ#OPEN
TJ#OEXIT XR    R0$,R0$                  . CLEAR ERROR FIELD
         IC    R0$,TJ#OERRF             . PICK UP ERROR SETTING
         L     R1$,TU#LDARP              R1 = ADD OF ARP
         L     RF$,=A(TU#LRTRN)          RF = RETURN ADD
         BR    RF$                       RETURN TO CALLER
*
*  SUBTASK TO INITIALIZE  JOURNAL FILE.
*              GET KEY AND CSD FROM USERS TCB
TJ#OSUBT BALR  RF$,0
         USING *,RF$
TJ#OSB   L     R4$,TN#GFJCB              R4 = ADD ICAM TCB
         LR    RA$,R1$                   RA = ECB ADD
         USING EC$DSECT,RA$               ECB
         SR    RB$,RB$                   RB = 0
         IC    RB$,EC$IDAT               RB = REL TCB NO.
         L     R8$,TN#GSIB               R8 = SIB ADD
         USING SB$DSECT,R8$               SIB
TJ#OCTCB AH    R4$,SB$JTLNG              R4 = ADD TCB LENGTH
         BCT   RB$,TJ#OCTCB              FOUND TCB ? NO,COUNT AGAIN
         USING JT$TCB,R4$                 TCB
         L     R7$,TN#CTCB               R7 = ADD USERS TCB
         MVC   JT$KEY(1),JT$KEY-JT$TCB(R7$)  . GET KEY FROM USER'S TCB
         MVC   JT$CSD(4),JT$CSD-JT$TCB(R7$)  . GET CSD FROM USER'S TCB
         ST    R4$,TJ#OSTCB               SAVE TCB ADD
*              OPEN THE SAT FILE
         USING ST$DTF,R1$
         L     R1$,TJ#RADTF               R1 = ADD OF SAT DTF
         L     R7$,=A(TJ#OOERR)           R7 = OPEN ERR ADD
         ST    R7$,ST$DECOD               STORE IN DTF
         LR    R8$,R1$                    R8 = R1 = DTF ADD
         OPEN  (1)                        OPEN  SAT FILE
         MVC   JDTF1(8),ST$DFNM    . MOVE JOURNAL FILENAME TO PIOCB
         RDFCB JDTF1,RDERR
         L     R9$,TJ#RASAC              R9=ADD OF SACT
         USING TJ#SACT,R9$                STAGE AREA CONTROL
         LA    R1$,JDTF1                 R1$=ADD OF PIOCB
         USING DF$FCB,R1$
         MVC   TJ#SVSN(6),DF$PERB        VOL SER NO
         MVC   TJ#SFIL(18),DF$FIDA       LBL   1 - 18
         MVC   TJ#SFIL+18(26),DF$FIDB    LBL  19 - 44
TJ#OOERR L     R7$,TU#LDARP              R7=ADD OF ARP
         LR    R1$,R7$                   R1 = ADD OF ARP
         USING TN#ARP,R7$
         L     R4$,=A(TJ#OSRET)          R4 = RETURN ADD
         ST    R4$,TN#ACMPA              STORE IN ARP
         OI    TN#AIRL,X'80'             SET IRL
         L     R7$,TN#GFJCB              R7 = COVER TCB
         USING JT$TCB,R7$
         SETBIT BT$TYLD,JT$TCB
         SCHEDULE (1),IRL=NO
         CLRBIT (BT$CYLD++BT$TYLD),JT$TCB
         BALR  RF$,0
         USING *,RF$
         L     RF$,=A(TJ#SYLD)
         BR    RF$                       GOTO YLD IN ROOT PHASE
         USING TJ#OSUBT+2,RF$
RDERR    MVI   TJ#OERRF,C'4'            . INDICATE FAILURE OF RDFCB
         B     TJ#OOERR                 . EXIT
TJ#OSAVF DC      F'0'
TJ#OSAVR DC    16F'0'                    CALLERS REGISTER SAVE AREA
TJ#OARSV DC      F'0'                    CURRENT REG SAVE AREA INJRNF
TJ#OAECB DC      F'0'                    CURRENT ECB ADD
TJ#OADTF DC      F'0'                    CURRENT DTF ADD
TJ#OERRF EQU   TN#CJECM+2
TJ#OSTCB DC      F'0'                    CURRENT TCB ADD
         LTORG
JDTF1    PIOCB 124
         DC    20F'0'                   PATCH AREA
         END
