&DL      PROC  &P,0,&TYPE=(SAT,DISC),&BUFF=(3,1024,1)                   00000000
XJRNFILE NAME  X
JRNFILE  NAME  0                         GENERATES DTF/BUFFERS FOR JRN
         GBL   &TN#CNME                CCA PROC CALL LABEL              00001600
         GBL   &TS#BPN3                NETWORK BUFFSIZE IN WORDS
         GBLA  &XJ
         LCL   &TJ#A0                                                   00001640
         LCL   &TJ#B0,&TJ#B1,&TJ#B2 . BUFFER LOCALS                     00001650
&TJ#A0   SET   0
         DO    ('&DL'='')                                               00001651
         PNOTE 'TJ001','JRNFILE NAME NOT SPECIFIED'                     00001653
&TJ#A0   SET   1                                                        00001655
         ENDO                                                           00001657
&TJ0     DO    3*(('&BUFF'='')=0)                                       00001659
         DO    ('&BUFF(&TJ0)'='')                                       00001661
         PNOTE 'TJ002','BUFFER SUBPARAMETER SPECIFICATION INCOMPLETE'   00001663
         GOTO  .JF10                                                    00001665
         ENDO                                                           00001667
         ENDO                                                           00001669
         DO    &TJ#A0                                                   00001671
         GOTO  .JF10                                                    00001673
         ENDO                                                           00001675
*  THIS  PROCEDURE GENERATES THE DTF, BUFFER SPACE, ECB, AND REGISTER
*  SAVE  AREA  REQUIRED TO SUPPORT THE JOURNALING FUNCTION OF ICAM .
*
*        KEYWORD PARAMETERS ARE :
*                TYPE =(ACCESS METHOD,DEVICE TYPE)
*                BUFF =(NUMBER,SIZE,THRESHOLD)
*
&TJ#B0   SET   &BUFF(1)                                                 00001677
&TJ#B1   SET   &BUFF(2)
&TJ#B2   SET   &BUFF(3)                                                 00001680
&XJ      SETA  &XJ+1
         CNOP  4,8                                                      00001700
         DC    A(TJ#RSA&XJ)               ADD OF REGISTER SAVEAREA       0001800
         DC    A(TJ#SA&XJ)                ADD OF STAGE CONTROL TBL
         DC    A(TJ#SE&XJ)                ADD OF ECB
         DC    A(&DL)                     ADD OF DTF                     0002100
         DC    A(TJ#SN&XJ)                ADD OF END OF JRN CODE
         DO    &XJ=1                                                    00002300
         ORG   CCA#&TN#CNME+TN#CFDTF-TN#CNTRL                           00002310
         DC    A(&DL-20)        . SET FIRST JRNFILE ADDRESS             00002320
         DC    A(&DL-20)        . SET CURRENT JRNFILE ADDRESS           00002330
         ENDO                                                           00002340
         ORG   CCA#&TN#CNME+TN#CLDTF-TN#CNTRL                           00002350
         DC    A(&DL-20)        . SET LAST JRNFILE ADDRESS              00002360
         ORG                                                            00002370
         DO    (&BUFF(1)<1)                                             00002400
&TJ#B0   SET   1                                                        00002410
         PNOTE *,'BUFFER NUMBER SET TO MINIMUM - &TJ#B0'                00002420
         ENDO                                                           00002430
         DO    (&BUFF(3)>&TJ#B0)                                        00002440
&TJ#B2   SET   1                                                        00002450
         PNOTE *,'BUFFER THRESHOLD EXCEEDS NUMBER OF BUFFERS'           00002460
         PNOTE *,'THRESHOLD REDUCED TO &TJ#B2'                          00002470
         ENDO                                                           00002480
         DO    (&BUFF(2)<((&TS#BPN3*4)+22))
&TJ#B1   SET   (&TS#BPN3*4)+22
         PNOTE *,'BUFFER SIZE SET TO MINIMUM - &TJ#B1 BYTES'
         ENDO
         DO    ('&TYPE(1)'='SAT')**('&TYPE(2)'='TAPE')
&DL      SAT   TCA=TJ#TC&XJ,              SAT TAPE DTF                 C00002500
               ERROR=&DL,                                              C
               WAIT=YES
TJ#TC&XJ TCA   IOAREA1=TJ#I1&XJ,                                       C 0 02800
               BLKSIZE=&TJ#B1,                                         C
               FILABL=STD,                                             C
               TYPEFLE=OUTPUT
         GOTO  .JF1                                                     00003000
         ENDO
         DO    (('&TYPE(1)'='SAT')**('&TYPE(2)'='DISC')=0)              00003100
         PNOTE *,'TYPE NOT SAT,DISC OR SAT,TAPE - SAT,DISC ASSUMED'     00003200
         ENDO
&DL      DTFPF PCA1=TJ#PC&XJ,             SAT DISC DTF                 C00003300
               ERROR=&DL,                                              C
               EXTENTS=1,                                              C
               WAIT=YES
TJ#PC&XJ PCA   BLKSIZE=&TJ#B1,                                         C
               IOAREA1=TJ#I1&XJ,                                       C00003800
               SEQ=YES,                                                C
               SIZE=100,                                               C
               VERIFY=YES
.JF1     LABEL                                                          00004190
&IOA     DO    &TJ#B0                                                    0004200
         CNOP  0,4                        ALIGN S. A.                   00004300
TJ#I&IOA&XJ DC XL8'0'
         DC    XL13'0'                 BLOCK PREFIX
         DS    XL(&TJ#B1-13)           STAGE AREA
         ENDO
TJ#SA&XJ DS    0F                         STAGE AREA CONTROL TABLE      00004600
         DC    4F'0'                      SEQUENCE COUNT BY JEC
         DC    A(0)                       CURRENT NORMAL S.A. ADDRESS
         DC    A(0)                       SUBTASK TCB ADDRESS
         DC    A(0)                       START OF SUBTASK ARP QUEUE
         DC    A(0)                       END   OF SUBTASK ARP QUEUE
TJ#SE&XJ ECB                              SUBTASK EVENT CONTROL BLOCK
         DC    CL6' '                     JOURNAL FILE VSN
         DC    CL44' '                    JOURNAL FILENAME
         DC    F'&TJ#B1'        . BUFFER SIZE                           00005300
         DC    H'&TJ#B0'                  COUNT OF AVAILABLE S. A.      00005400
         DC    H'&TJ#B0'                  NUMBER OF MAXIMUM S.A.        00005500
         DC    H'&TJ#B2'                  THRESHOLD VALUE               00005600
         DC    F'0'                       THRESHOLD ERROR COUNT
         DC    F'0'                       STAGING   ERROR COUNT
&IOB     DO    &TJ#B0                                                   00005900
         DC    A(TJ#I&IOB&XJ)             ADDRESS OF S.A.
         ENDO
TJ#RSA&XJ DC   XL64'00'                 . REGISTER SAVE AREA
         DC    16F'0'                   . I/O PARAMETER LIST
         CNOP  4,8                                                      00006450
TJ#SN&XJ EQU   *
.JF10    LABEL                                                          00006500
         END
