&DL      PROC  &BUFF,9,&ARP=1,&THOLD=,&DISC=NO,&STAT=NO,&DICE=1         00000000
XBUFFERS NAME  X    . 76/03/25 BUFFER POOL GENERATOR                    00000100
BUFFERS  NAME  0    . GENERATES ONE OR TWO BUFFER POOLS                 00000200
RESIBUF  NAME  1                                                        00000210
.* .                                                                    00000300
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00000400
.* .                                                                  * 00000500
.* . THIS AND ALL RELATED PROGRAMS ARE PROPERTY OF                    * 00000600
.* .                                                                  * 00000700
.* . UNIVAC CONTAINING ITS CONFIDENTIAL INFORMATION                   * 00000800
.* .                                                                  * 00000900
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00001000
         GBL   &TS#BPS1,&TS#BPN1,&TS#BPT1                               00001100
         GBL   &TS#BPS2,&TS#BPN2,&TS#BPT2                               00001200
         GBL   &TS#BPS3,&TS#BPN3,&TS#BPT3                               00001300
         GBL   &TS#HOFS,&TS#COFS                                        00001400
         GBL   &CDDI,&CTCI                                              00001500
         GBL   &CRJE                                                    00001600
         GBL   &TRANS                                                   00001700
         GBL   &TN#CNME            . NETWORK NAME                       00001800
         GBL   &U93,&VS9,&RESI                                          00001810
         LCL   &AAAAA                                                   00001900
         LCL   &THRESH                                                  00002000
         LCL   &ILBDSP             . TRANS DISP INTO RDH DATA AREA      00002100
         LCL   &THD                     . TRANS HEADER SIZE             00002200
.* .                                                                    00002300
.*                                                                      00002400
.*       THIS PROC USES THE BUFFER PROC IMBEDDED TO GEN BUFFER POOLS    00002500
.*                                                                      00002600
.*       FOLLOWING USED FOR BUFFER POOLS STATISTICS                     00002700
.*                                                                      00002800
.*                                                                      00002900
         SYSTEM                                                         00002910
&TS#BPS1 SET   0                   . BUFFER SIZE                        00003000
&TS#BPN1 SET   0                   . NUMBER IN POOL                     00003100
&TS#BPT1 SET   0                   . THRESHOLD VALUE                    00003200
&TS#BPS2 SET   0                   . BUFFER SIZE                        00003300
&TS#BPN2 SET   0                   . NUMBER IN POOL                     00003400
&TS#BPT2 SET   0                   . THRESHOLD VALUE                    00003500
&TS#BPS3 SET   0                   . BUFFER SIZE                        00003600
&TS#BPN3 SET   0                   . NUMBER IN POOL                     00003700
&TS#BPT3 SET   0                   . THRESHOLD VALUE                    00003800
&TS#HOFS SET   0                   . MESSAGE HEADER OFFSET              00003900
&TS#COFS SET   0                   . CONT. SEGMENT OFFSET               00004000
         DO    &BUFF(0)=1                                               00004010
&RESI    SET   1                                                        00004020
         GOTO  .RESIYES                                                 00004030
         ENDO                                                           00004040
&RESI    SET   0                                                        00004050
.RESIYES LABEL                                                          00004060
         DO    '&TRANS'=''                                              00004100
&TRANS   SET   0                                                        00004200
         ENDO                                                           00004300
.*                                                                      00004400
&AAAAA   SET   N'&BUFF             . NUMBER OF POSITIONAL PARAMETERS    00004500
         DO    &ARP=1                                                   00004600
.*                                 . GENERATE ARP BUFFER POOL           00004700
         PNOTE 'E','INSUFFIENT OR NO ARPS SPECIFIED'                    00004800
         GOTO  .EXIT                                                    00004900
         ENDO                                                           00005000
.*       ALTERNATE GENERATION PARAMETERS                                00005100
         DO    &CDDI                                                    00005200
         PNOTE *,'DDI MINIMUM ARPS. 4 PER LINE PLUS 3 FOR NETWORK'      00005300
         GOTO  .SKIPNTS                                                 00005400
         ENDO                                                           00005500
         DO    &TRANS                                                   00005600
         PNOTE *,'TRANS MIN ARPS. 5 PER LINE PLUS 4 FOR NETWORK.'       00005700
         GOTO  .SKIPNTS                                                 00005800
         ENDO                                                           00005900
         DO    &CTCI                                                    00006000
         PNOTE *,'TCI MINIMUM ARPS. 7 PER LINE + 4 FOR NETWORK'         00006100
         PNOTE *,'TERM QUEING WITH DEVICES ON U-100 ADD 1 PER TERM.'    00006200
         GOTO  .SKIPNTS                                                 00006300
         ENDO                                                           00006400
         DO    &CRJE                                                    00006500
         GOTO  .RJE                                                     00006600
         ENDO                                                           00006700
         PNOTE *,'STD GET/PUT ARPS. 5 PER LINE + 2 PER PRCS + 3 NET'    00006800
         PNOTE *,'TERM QUEING WITH DEVICES ON U-100 ADD 1 PER TERM.'    00006900
.SKIPNTS LABEL                                                          00007000
         PNOTE *,'IF SEQUENTIAL IRL SVCS, ADD 1 ARP FOR EACH SVC '      00007100
         PNOTE *,'FUNCTION IN THE LONGEST IRL CHAIN TO BE ISSUED.'      00007200
.RJE     LABEL                                                          00007300
.*                                 . GENERATE ARP BUFFER POOL           00007400
*                                                                       00007500
*        ACTIVITY REQUEST PACKET (ARP) BUFFER POOL                      00007600
*                                                                       00007700
&THRESH  SET   &ARP//10+1          . ARP POOL THRESHOLD VALUE           00007800
&TS#BPS1 SET   &ARP                . NUMBER IN POOL                     00007900
&TS#BPN1 SET   10                  . SIZE IN WORDS                      00008000
&TS#BPT1 SET   &THRESH             . THRESHOLD VALUE                    00008100
TN#CARP  BUFFER &ARP,&TS#BPN1,&THRESH,STATS=&STAT                       00008200
         DO    &CRJE                                                    00008300
&TS#BPS3 SET   &BUFF(1)                                                 00008400
&TS#BPN3 SET   ((&BUFF(2)//64)*64)+12                                   00008500
&TS#BPT3 SET   '&BUFF(3)'          . THRESHOLD VALUE                    00008600
         PNOTE *,'DATA BUFFER SIZE GENERATED WAS MOD 64 WORDS'          00008700
         GOTO  .SIZOK                                                   00008800
         ENDO                                                           00008900
         DO    &CDDI                                                    00009000
TN#CDATA EQU   0                       . NO DATA BUFFERS FOR DDI        00009100
         PNOTE *,'DDI NETWORK REQUIRES NO NETWORK BUFFERS'              00009200
         GOTO  .EXIT                                                    00009300
         ENDO                                                           00009400
.ALSODDI LABEL                                                          00009500
         DO    &TRANS=0                                                 00009600
         DO    &AAAAA>0                                                 00009700
.*                                 . GENERATE DATA BUFFER POOL          00009800
*                                                                       00009900
*        NETWORK DATA BUFFER POOL                                       00010000
*                                                                       00010100
         DO    '&BUFF(1)'=''                                            00010200
         GOTO  .NOBUF                                                   00010300
         ENDO                                                           00010400
         DO    &BUFF(1)=0                                               00010500
.NOBUF   LABEL                                                          00010600
         PNOTE 'E','INSUFFIENT OR NO DATA BUFFERS SPECIFIED'            00010700
         GOTO  .EXIT                                                    00010800
         ENDO                                                           00010900
         DO    &BUFF(2)<23                                              00011000
         PNOTE 'E','DATA BUFFER MUST BE GREATER THAN 22 WORDS'          00011100
         GOTO  .EXIT                                                    00011200
         ENDO                                                           00011300
&TS#BPS3 SET   &BUFF(1)            . NUMBER IN POOL                     00011400
&TS#BPN3 SET   &BUFF(2)            . SIZE IN WORDS                      00011500
&TS#BPT3 SET   '&BUFF(3)'          . THRESHOLD VALUE                    00011600
&TS#HOFS SET   64+12*('&DISC'='YES')
&TS#COFS SET   12+4*('&DISC'='YES')
         DO    '&DISC'='YES'                                            00012100
         DO    ((&BUFF(2)//64)*64)=&BUFF(2)                             00012400
         GOTO  .SIZOK                                                   00012500
         ENDO                                                           00012600
         PNOTE *,'DATA BUFFER SIZE GENERATED IS NEXT MULTIPLE'          00012700
         PNOTE *,'OF 64 WORDS FOR DISC QUEUEING'                        00012800
&TS#BPN3 SET   (&BUFF(2)//64)*64                                        00012900
.SIZOK   LABEL                                                          00013000
         ENDO                                                           00013100
         DO    &CRJE                                                    00013200
&TS#HOFS SET   'ERBLNGTH'                                               00013300
&TS#COFS SET   1                                                        00013400
         ENDO                                                           00013500
         DO    &U93++&RESI                                              00013510
TN#CDATA BUFFER &BUFF(1),&TS#BPN3,&BUFF(3),&TS#HOFS,&TS#COFS,          *
               DEFER=&DISC,                                            *
               STATS=&STAT
         ENDO                                                           00014410
         DO    &VS9**(&RESI=0)                                          00014420
TN#CDATA VBUFFER &BUFF(1),&TS#BPN3,&BUFF(3),&TS#HOFS,&TS#COFS           00014430
         ENDO                                                           00014440
         ENDO                                                           00014500
         ENDO                                                           00014600
         DO    &TRANS                                                   00014700
         PRINT OFF                                                      00014800
         TN#DSECT MSGPRE                                                00014900
         PRINT ON                                                       00015000
         PNOTE *,'TRANSIENT TCI SUPPORTS ONLY 1 NETWORK DATA BUFFER.'   00015100
         PNOTE *,'TRANSIENT TCI BUFFER SIZE MUST BE DIVISIBLE BY 64.'   00015200
&TS#BPN3 SET   (&BUFF(2)//64)*64                                        00015300
*                                                                       00015400
*        TRANSIENT ICAM NETWORK & LINE BUFFER                           00015500
&ILBDSP  SET   68                       . 80X12 AND 64X16 U100          00015600
&THD     SET   'TN#MHDCL'                                               00015700
         DO    &TS#BPN3>320                                             00015800
&ILBDSP  SET   100                      . 80X24 U200                    00015900
         DO    &TS#BPN3>512                                             00016000
&ILBDSP  SET   132                      . 64X32 U200                    00016100
         ENDO                                                           00016200
         ENDO                                                           00016300
*                                                                       00016400
TN#CDATA EQU   *                   . TRANSIENT BUFFER CONTROL SECTION   00016500
         DC    A(TN#CDBUF)             . ADDR TRANS NETBUF              00016600
         DC    A(TN#CDAT)              . ADDR DATA BUFFER               00016700
         DC    A(TN#CLBUF)             . ADDR OUT LBUF2                 00016800
         DC    Y(&TS#BPN3*4)           . SIZE OUT LBUF2(BYTES)          00016900
         DC    Y(&TS#BPN3*4)           . SIZE NETBUF(BYTES)             00017000
         DC    Y(TN#MHDCL)             . HEADER SIZE(BYTES)             00017100
         DC    Y(&TS#BPN3*4)           . SIZE INPUT LBUF(BYTES)         00017200
         DC    A(TN#CDBUF+&ILBDSP+&THD) . ADDR INPUT LBUF               00017300
TN#CLBUF DC    (&DICE*3)F'0'           . START OUT LBUF2                00017400
TN#CDBUF DC    (TN#MHDCL//4)F'0'       . TRANS NETBUF HDR               00017500
TN#CDAT  DC    (&TS#BPN3-TN#MHDCL//4)F'0' . TRANS DATA BUFFER           00017501
TN#LBONE DC    (&ILBDSP+&THD)XL1'00'    . OUTPUT LINE BUFFER 1          00017600
&TS#BPS3 SET   1                                                        00017700
&TS#BPT3 SET   0                                                        00017800
         ENDO                                                           00017900
.EXIT    LABEL                                                          00018000
         END                                                            00018100
