&DL      PROC  &P,0,                                                   X00000000
               &MSGSIZE=1024,                                          *
               &FILEDIV=0,                                             *
               &VERIFY=NO
XDISCFIL NAME  X                                                        00000100
DISCFILE NAME  0                   . GENERATE DTFS AND PCAS             00000200
.* .                                                                    00000300
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00000400
.* .                                                                  * 00000500
.* . THIS AND ALL RELATED PROGRAMS ARE PROPERTY OF                    * 00000600
.* .                                                                  * 00000700
.* . UNIVAC CONTAINING ITS CONFIDENTIAL INFORMATION                   * 00000800
.* .                                                                  * 00000900
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00001000
         GBL   &TS#TRMS            . NUMBER OF TERMINALS IN NETWORK     00001100
         GBL   &TN#DLFD            . DISC LFD NAME                      00001200
         GBL   &TCITRNS            . SET TO 1 IF TRANSIENT              00001300
         GBL   &TCIRES             . SET TO 1 IF RESIDENT CORE/DISC     00001400
         GBL   &TCIDOUT            . SET TO 1 IF RESIDENT DBUF OUTPUT   00001500
         GBL   &SLOTERM                                                 00001600
         GBL   &TRACK1,&TRACK2,&PCA1SIZ,&PCA2SIZ                        00001700
         GBL   &TOTAL                                                   00001800
         GBL   &NEXTS                                                   00001900
         GBL   &U9400                                                   00002000
         GBL   &MSGBYTE            . MAXIMUM MESSAGE SIZE               00002100
         GBL   &TS#HOFS            . MESSAGE HEADER OFFSET SIZE         00002200
         GBL   &TS#COFS            . CONT. SEGMENT OFFSET SIZE          00002300
         GBL   &TS#BPN3            . SIZE OF NETBUF IN WORDS            00002400
         GBL   &TS#BPS3                                                 00002500
         GBL   &BLOCK1             . NUMBER BLOCKS FOR PARTITION 1      00002600
         GBL   &BLOCK2             . NUMBER BLOCKS FOR PARTITION 2      00002700
         GBL   &BTOTAL             . TOTAL NUMBER BLOCKS IN FILE        00002800
         GBL   &SLOTSIZE           . NUMBER SECTORS PER SLOT            00002900
         GBL   &TN#CNME            . NETWORK NAME                       00003000
         GBLA  &DQFCNT                                                  00003050
         LCLA  &DQBLKSZ            . BLOCK SIZE FOR DISC QUEUES
         LCLA  &DQFDS              . SIZE FOR MAIN PARTITION
         LCLC  &CHARSTR            . CHARACTER STRING
         LCL   &AAAAA              . WHEN DONE - TOTAL SECTORS/TERMINAL 00003100
         LCL   &BBBBB              . BYTE COUNT FOR EXCLUSION           00003200
         LCL   &NNNNN              . NUMBER SECTORS/NETBUF              00003300
         LCL   &TCIPCA1                                                 00003400
         LCL   &TCIPCA2                                                 00003500
         LCL   &PCAONE                                                  00003600
         LCL   &PCATWO                                                  00003700
.* .                                                                    00003800
         DO    &FILEDIV=0=0                                             00003900
         GOTO  .DQFILE                                                  00004000
         ENDO                                                           00004100
         DO    '&U9400'=''                                              00004200
&U9400   SET   0                                                        00004300
         ENDO                                                           00004400
         DO    '&TCITRNS'=''                                            00004500
&TCITRNS SET   0                                                        00004600
         ENDO                                                           00004700
         DO    '&TCIRES'=''                                             00004800
&TCIRES  SET   0                                                        00004900
         ENDO                                                           00005000
         DO    '&TCIDOUT'=''                                            00005100
&TCIDOUT SET   0                                                        00005200
         ENDO                                                           00005300
.* .                                                                    00005400
.* .                                                                    00005500
&TN#DLFD SET   '&DL'               . FILE NAME FROM CALL LINE LABEL     00005600
.* .                                                                    00005700
         DO    '&DL'=''                                                 00005800
&TN#DLFD SET   'TCIDTF'                                                 00005900
         PNOTE *,'LFDNAME DEFAULTED TO TCIDTF'                          00006000
         ENDO                                                           00006100
.* .                                                                    00006200
.* .                                                                    00006300
.* .                                                                    00006400
&SLOTERM SET   9                   . 9 SLOTS PER TERM IN AND OUT        00006500
         DO    &TCIRES                                                  00006600
&SLOTERM SET   1                   . 1 IF NO DISC BUFFERED OUTPUT       00006700
         ENDO                                                           00006800
.* .                                                                    00006900
.* .                                                                    00007000
&AAAAA   SET   0                   . TOTAL SECTORS WHEN FINISHED        00007100
&BBBBB   SET   &TS#HOFS            . INITIALLY = HEADER OFFSET SIZE     00007200
&MSGBYTE SET   &MSGSIZE            . RUNNING MSG SIZE IN LOOP           00007300
&NNNNN   SET   &TS#BPN3//64        . NUMBER SECTORS PER NETBUF          00007400
.* .                                                                    00007500
.*       CALCULATE NUMBER SECTORS PER TERMINAL                          00007600
.* .                                                                    00007700
         DO    &TS#BPS3                                                 00007800
         DO    (&MSGBYTE<0)++(&MSGBYTE=0)  . PREVENTIVE CHECK           00007900
         GOTO  .DONEC                                                   00008000
         ENDO                                                           00008100
&AAAAA   SET   &NNNNN+&AAAAA       . TOTAL SECTOR COUNT UPDATE          00008200
&MSGBYTE SET   &MSGBYTE+&BBBBB-(&TS#BPN3*4)                             00008300
&BBBBB   SET   &TS#COFS            . NOW RESET TO CONT. SEG OFFSET      00008400
         ENDO                                                           00008500
.DONEC   LABEL                                                          00008600
&SLOTSIZE      SET                 &AAAAA                               00008700
&AAAAA   SET   &AAAAA*&SLOTERM     . TOTAL SECTORS PER TERMINAL         00008800
.* .                                                                    00008900
.* .                                                                    00009000
.* .                                                                    00009100
.* .                                                                    00009200
&TRACK1  SET   &TS#TRMS*&SLOTSIZE*&SLOTERM                              00009300
&TRACK1  SET   &TRACK1//40                                              00009400
&TRACK2  SET   0                   . IF NO TRANSIENT                    00009500
         DO    &TCITRNS                                                 00009600
&TRACK2  SET   4                                                        00009700
         ENDO                                                           00009800
&TOTAL   SET   &TRACK1+&TRACK2                                          00009900
&BLOCK1  SET   &TRACK1*40                                               00010000
&BLOCK2  SET   &TRACK2*40                                               00010100
&BTOTAL  SET   &BLOCK1+&BLOCK2                                          00010200
.* .                                                                    00010300
&PCA1SIZ SET   (&TRACK1*100)//&TOTAL                                    00010400
.* .                                                                    00010500
&PCA2SIZ SET   ((&TRACK2*100)//&TOTAL)-1                                00010600
.* .                                                                    00010700
&NEXTS   SET   2                   . MINIMUM OF 2 FOR DISC BUFFERING    00010800
         DO    &TCITRNS                                                 00010900
&NEXTS   SET   &NEXTS+2            . 2 MORE FOR TRANSIENT               00011000
         ENDO                                                           00011100
         DO    &U9400                                                   00011200
&NEXTS   SET   &NEXTS+1                                                 00011300
         ENDO                                                           00011400
*                                                                       00011500
*        DISC BUFFERING DTF TABLE                                       00011600
*                                                                       00011700
&PCAONE  SET   '1'                                                      00011800
&PCATWO  SET   '2'                                                      00011900
&TCIPCA1 SET   '&TN#DLFD&PCAONE'                                        00012000
&TCIPCA2 SET   '&TN#DLFD&PCATWO'                                        00012100
         CNOP  0,8                                                      00012200
TN#SDTF  EQU   *                                                        00012300
         DO    &TCITRNS                                                 00012400
&TN#DLFD DTFPF ERROR=TM#MOPEN,                                         X00012500
               PCA1=&TCIPCA1,                                          X00012600
               PCA2=&TCIPCA2,                                          X00012700
               WAIT=YES,                                               ;00012800
               EXTENTS=&NEXTS                                           00012900
         ENDO                                                           00013000
         DO    &TCIRES++&TCIDOUT                                        00013100
&TN#DLFD DTFPF ERROR=TM#MOPEN,                                         X00013200
               PCA1=&TCIPCA1,                                          X00013300
               WAIT=YES,                                               ;00013400
               EXTENTS=&NEXTS                                           00013500
         ENDO                                                           00013600
*                                                                       00013700
*        SAT REGISTER SAVE AREA                                         00013800
*                                                                       00013900
*                                                                       00014000
TM#MWORK DC    YL1(&SLOTSIZE)      . NUMBER SECTORS PER SLOT            00014100
         DC    AL3(&AAAAA)         . NUMBER SECTORS / TERMINAL          00014200
         DC    Y(&NNNNN)           . NUMBER SECTORS PER NETBUF          00014300
         DC    Y(&MSGSIZE)         . MAXIMUM MESSAGE SIZE               00014400
         DC    16F'00'             . MAXIMUM MESSAGE SIZE               00014500
*                                                                       00014600
*        DISC BUFFERING PARTITION FOR TCI                               00014700
*                                                                       00014800
&TCIPCA1 PCA   BLKSIZE=256,                                            X00014900
               IOAREA1=TN#SWA,                                         ;00015000
               LBLK=1,                                                 ;00015100
               SEQ=YES,                                                ;00015200
               SIZE=&PCA1SIZ                                            00015300
*                                                                       00015400
         DO    &TCITRNS=0                                               00015500
*                                                                       00015600
*        TCI INPUT I/O WORK AREA                                        00015700
*                                                                       00015800
         DC    3F'0'               . FOR FAKE CONTINUATION PREFIX       00015900
*                                                                       00016000
TN#SWA   EQU   *                                                        00016100
TN#ISWA  DC    64F'0'              . INPUT SAT WORK AREA                00016200
         DO    &TCIDOUT                                                 00016300
TN#OSWA  DC    64F'0'              . OUTPUT SAT WORK AREA               00016400
         ENDO                                                           00016500
         ENDO                                                           00016600
.* .                                                                    00016700
         DO    &TCITRNS                                                 00016800
*                                                                       00016900
*        OVERLAY PARTITION FOR TRANSINET TCI                            00017000
*                                                                       00017100
*                                                                       00017200
TN#SWA   EQU   *                                                        00017300
&TCIPCA2 PCA   BLKSIZE=3072,                                           X00017400
               IOAREA1=TN#SWA,                                         ;00017500
               LBLK=1,                                                 ;00017600
               LACE=1,                                                 ;00017700
               SEQ=YES,                                                ;00017800
               SIZE=&PCA2SIZ                                            00017900
*                                                                       00018000
         ENDO                                                           00018100
         GOTO  .ENDPROC                                                 00019000
.DQFILE  LABEL                                                          00019100
         TC#QDSTG                                                       00019200
&CHARSTR SETC  '&DL'(1,7)                                               00019250
&DQBLKSZ SETA  &TS#BPN3*4          . EST BLOCK SIZE
&DQFDS   SETA  100-&FILEDIV        .EST SIZE MAIN PARTITION
&CHARSTR DTFPF PCA1=&CHARSTR.1,    . SAT DTF FOR DISC QUEUEING         *00019300
               PCA2=&CHARSTR.2,                                        *00019400
               ERROR=TC#WIOEP,                                         *00019500
               EXTENTS=2,                                              *00019600
               WAIT=YES                                                 00019700
DQF#&DQFCNT EQU   &CHARSTR         . DTF LABEL FOR LINKAGE              00019750
&DQFCNT  SETA  &DQFCNT+1           . INCR DTF COUNTER
&CHARSTR.1 PCA BLKSIZE=&DQBLKSZ,   . PARTITION CONTROL AREA #1         *00019800
               IOAREA1=MAP#&DQFCNT,                                    *00019900
               SEQ=YES,                                                *00020000
               SIZE=&DQFDS,                                            *00020100
               VERIFY=&VERIFY                                           00020200
&CHARSTR.2 PCA BLKSIZE=256,        . PARTITION CONTROL AREA #2         *00020300
               IOAREA1=MAP#&DQFCNT,                                    $00020400
               SEQ=YES,                                                *00020500
               SIZE=&FILEDIV,                                          *00020600
               VERIFY=&VERIFY                                           00020700
         ECB                       . ECB AND REGISTER SAVE AREA         00020800
         DC    XL64'0'             . REST OF REGISTER SAVE AREA         00020900
         DC    A(&CHARSTR)         . A(SAT-DTF)                         00021000
         DC    A(0)                . A(DATA-BUFFER)                     00021100
         DC    A(0)                . DISC ADDRESS                       00021200
         DC    Y(0)                . I/O FUNCTION CODE                  00021300
         DC    X'0'                . I/O STATUS BYTE                    00021400
         DC    X'0'                . (UNUSED)                           00021500
         DC    A(DQF#&DQFCNT)      . LINK TO NEXT DTF                   00021550
         DC    3A(0)               . ARP QUEUES (HIGH,MEDIUM, AND LOW)  00021600
         DC    F'0'                . MAP CONTROL TABLE PART 1           00021700
         DC    4F'-1'              . MAP CONTROL TABLE PART 2
MAP#&DQFCNT DC XL256'0'            . BIT MAP                            00021800
.ENDPROC LABEL                                                          00021900
         END                                                            00022000
