         PROC  &P,20                                                    00000000
XLLKCA   NAME  X                                                        00000100
LLKCA    NAME  0                                                        00000200
.* .                                                                    00000300
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00000400
.* .                                                                  * 00000500
.* . THIS AND ALL RELATED PROGRAMS ARE PROPERTY OF                    * 00000600
.* .                                                                  * 00000700
.* . UNIVAC CONTAINING ITS CONFIDENTIAL INFORMATION                   * 00000800
.* .                                                                  * 00000900
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00001000
         GBL   &U93,&DUALCAS,&LLTDSP                                    00001100
         GBL   &VS9                                                     00001200
         LCL   &CRNTDSP,&LS,&F,&A,&SW,&D,&PTTYPE,&AUTOID,&SY            00001300
         LCL   &EON,&P9                                                 00001400
         LCL   &T                      LINE TYPE                        00001500
         LCL   &DEVICE(3)               DEVICE TYPE LIST                00001600
         LCL   &NOOP                    NOOP CHARACTER                  00001700
         LCL   &TEMP1,&TEMP2                                            00001800
         LCL   &TEMP3                                                   00001900
         LCL   &M                                                       00002000
         LCL   &L                                                       00002100
         LCLA  &FUD                . FULL DUPLEX INDICATOR              00002150
.* .                                                                    00002200
&LS      SET   0                                                        00002300
&F       SET   0                                                        00002400
&A       SET   0                                                        00002500
&AUTOID  SET   0                                                        00002600
&SW      SET   0                                                        00002700
&SY      SET   0                                                        00002800
&D       SET   0                                                        00002900
&PTTYPE  SET   0                                                        00003000
&EON     SET   0                                                        00003100
&T       SET   X'00'                    INITIAL-BAUDOT TTY              00003200
&NOOP    SET   X'00'                    ASSUME BAUDOT TTYY              00003300
&DEVICE(1)  SET    ''                                                   00003400
&DEVICE(2)   SET   ''                                                   00003500
&DEVICE(3)   SET   ''                                                   00003600
.*                                                                      00003700
.* SET LINE CONTROL FLAGS                                               00003800
.*                                                                      00003900
&S       DO    N'&P                                                     00004000
         DO    '&P(&S)'='FULL'                                          00004100
&F       SET   1                                                        00004200
         ENDO                                                           00004300
         DO    '&P(&S)'='AUTODIAL'                                      00004400
&A       SET   1                                                        00004500
&AUTOID  SET   &P(&S+1)                                                 00004600
         ENDO                                                           00004700
         DO    '&P(&S)'='DIALER'                                        00004800
         DO    (&S>1)**(&VS9=0)                                         00004900
         PNOTE 'P','DIALER KEYWORD NOT FIRST PARAMETER IN SUBLIST - CAC;00005000
               H&P(2)'                                                  00005100
         ENDO                                                           00005200
         DO    (&S>1)**(&VS9=0)                                         00005300
         PNOTE 'P','DIALER KEYWORD NOT FIRST PARAMETER IN SUBLIST - POR$00005400
               T&P(2)'                                                  00005500
         ENDO                                                           00005600
&D       SET   1                                                        00005700
         DO    '&P(&S+1)'='EON'                                         00005800
&EON     SET   1                                                        00005900
         ENDO                                                           00006000
         ENDO                                                           00006100
         DO    '&P(&S)'='SWITCHED'                                      00006200
&SW      SET   1                                                        00006300
         ENDO                                                           00006400
         DO    '&P(&S)'='SWCH'                                          00006500
&SW      SET   1                                                        00006600
         ENDO                                                           00006700
         DO    '&P(&S)'='SYNC'                                          00006800
&SY      SET   1                                                        00006900
         ENDO                                                           00007000
.*                                                                      00007100
.*       GENERATE LINE DEVICE TYPE IN LLT FOR VS9 ONLY                  00007200
.*                                                                      00007300
.*  SET UP DEVICE(1),(I),(O) FROM INPUT OF FORM (A,B,C)                 00007400
.*  SO THAT CODE FROM XLINE PROC CAN BE USED                            00007500
         DO    '&P(&S)'(1,1)='('                                        00007600
&L       SET   1                                                        00007700
&M       SET   1                                                        00007800
&TEMP1   SET   0                                                        00007900
&J             DO   50                                                  00008000
                    DO   '&P(&S)'(&J+1,1)=')'                           00008100
&TEMP1              SET   1                                             00008200
                    ENDO                                                00008300
                    DO   &TEMP1=0                                       00008400
                         DO   '&P(&S)'(&J+1,1)=','                      00008500
&M                       SET   &M+1                                     00008600
&L                       SET   &L+1                                     00008700
                         ENDO                                           00008800
&M                  SET  &M+1                                           00008900
                         DO    ('&P(&S)'(&M,1)=')')=0                   00009000
&DEVICE(&L)              SET   '&DEVICE(&L)'.'&P(&S)'(&M,1)             00009100
                         ENDO                                           00009200
                    ENDO                                                00009300
               ENDO                                                     00009400
         DO    ('&DEVICE(2)'='BATCH')**('&DEVICE(3)'=''=0)              00009500
         PNOTE 'P','BATCH AND INTER DEVICES ARE NOT MIXABLE'            00009600
         ENDO                                                           00009700
         DO    '&DEVICE(1)'='TTY'                                       00009800
&T       SET   X'02'               . TELETYPE DEVICE                    00009900
         DO    ('&DEVICE(2)'='28')++('&DEVICE(2)'='32')                 00010000
&T       SET   X'00'               . BAUDOT TELETYPE                    00010100
         ENDO                                                           00010200
         ENDO                                                           00010300
.*                                 . CHECK FOR DCT500                   00010400
         DO    ('&DEVICE(1)'='DCT500')++('&DEVICE(1)'='DCT524')++('&DEVX00010500
               ICE(1)'='DCT475')                                        00010600
         DO    ('&DEVICE(2)'='')++('&DEVICE(2)'='TTY')                  00010700
&T       SET   X'02'               . DCT500 TELETYPE MODE               00010800
         ENDO                                                           00010900
         ENDO                                                           00011000
         DO    '&DEVICE(2)'='AUTO'                                      00011100
&T       SET   X'03'               . DCT500 AUTOMATIC MODE              00011200
         ENDO                                                           00011300
.*                                 . CHECK FOR U100 OR DCT1000          00011400
         DO    '&DEVICE(1)'='DCT1000'                                   00011500
&T       SET   X'10'               . DCT1000 DEVICE                     00011600
&NOOP    SET   X'16'                                                    00011700
         ENDO                                                           00011800
         DO    ('&DEVICE(1)'='U100')++('&DEVICE(3)'='U100')             00011900
&T       SET   X'10'               . U100 DEVICE                        00012000
&NOOP    SET   X'16'                                                    00012100
         ENDO                                                           00012200
         DO    ('&DEVICE(1)'='U200')++('&DEVICE(3)'='U200')             00012300
&T       SET   X'10'               . U200 DEVICE                        00012400
&NOOP    SET   X'16'                                                    00012500
         ENDO                                                           00012600
         DO    ('&DEVICE(1)'='UNISCOPE')++('&DEVICE(3)'='UNISCOPE')     00012700
&T       SET   X'10'               . MIX OF U100 AND U200 DEVICES       00012800
&NOOP    SET   X'16'                                                    00012900
         ENDO                                                           00013000
.*                                 . CHECK FOR DCT2000                  00013100
         DO    '&DEVICE(1)'='DCT2000'                                   00013200
&T       SET   X'20'               . DCT2000 DEVICE                     00013300
&NOOP    SET   X'16'                                                    00013400
         ENDO                                                           00013500
         DO    '&DEVICE(1)'='DCT2EM'                                    00013600
&T       SET   X'21'                                                    00013700
&NOOP    SET   X'35'                                                    00013800
         ENDO                                                           00013900
         DO    '&DEVICE(1)'='BSC'                                       00014000
&T       SET   X'54'               . SET BSC LINE TYPE = ASCII          00014100
&NOOP    SET   X'32'                                                    00014200
         DO    '&DEVICE(3)'='ASCII'                                     00014300
&T       SET   X'58'               . SET BSC LINE TYPE=EBCDIC           00014400
&NOOP    SET   X'16'                                                    00014500
         ENDO                                                           00014600
         DO    '&DEVICE(3)'='TRANSCOD'                                  00014700
&T       SET   X'50'               . SET BSC LINE TYPE = TRANSCODE      00014800
&NOOP    SET   X'3A'                                                    00014900
         ENDO                                                           00015000
         ENDO                                                           00015100
.*                                 . CHECK FOR 1004                     00015200
         DO    '&DEVICE(1)'='1004'                                      00015300
&T       SET   X'40'               . 1004 DEVICE                        00015400
&NOOP    SET   X'35'                                                    00015500
         ENDO                                                           00015600
.*                                 . CHECK FOR 9200 OR 9300             00015700
         DO    '&DEVICE(1)'='9200'                                      00015800
&T       SET   X'41'               . 9200 DEVICE                        00015900
&NOOP    SET   X'35'                                                    00016000
         ENDO                                                           00016100
         DO    '&DEVICE(1)'='9300'                                      00016200
&T       SET   X'42'               . 9300 DEVICE                        00016300
&NOOP    SET   X'35'                                                    00016400
         ENDO                                                           00016500
         DO    '&DEVICE(1)'='1004EM'                                    00016600
&T       SET   X'A0'                                                    00016700
&NOOP    SET   X'35'                                                    00016800
         ENDO                                                           00016900
         ENDO  '&P(&S)'(1,1)='('                                        00017000
         ENDO  N'&P                                                     00017100
.*                                                                      00017200
         DO    ('&DEVICE(1)'='')**&VS9                                  00017300
         PNOTE 'P','DEVICE TYPE NOT SPECIFIED - PORT&P(2) - TTY,28 ASSU$00017400
               MED'                                                     00017500
         ENDO  (&DEVICE=0)**(&VS9)                                      00017600
*                                                                       00017700
.* CHECK ADDRESS FOLLOWING AUTODIAL KEYWORD                             00017800
.*                                                                      00017900
         DO    &U93                                                     00018000
         DO    ((&DUALCAS**&A)**((&AUTOID<4)++(&AUTOID=16)++(&AUTOID=17;00018100
               )++(&AUTOID=18)++(&AUTOID=19)++(&AUTOID>31)))            00018200
         GOTO  .ALABEL                                                  00018300
         ENDO                                                           00018400
         DO    ((&DUALCAS=0)**(&A)**((&AUTOID<4)++(&AUTOID>15)))        00018500
.ALABEL  LABEL                                                          00018600
         PNOTE 'P','ADDR SPECIFIED FOLLOWING AUTODIAL KEYWORD IS OUT OF;00018700
                CA RANGE - CACH&P(2)'                                   00018800
         ENDO                                                           00018900
         ENDO                                                           00019000
.*                                                                      00019100
         DO    &D                                                       00019200
&PTTYPE  SET   X'80'               . SINGLE DIALER PORT                 00019300
         GOTO  .LABEL1                                                  00019400
         ENDO                                                           00019500
&LS      SET   16                  . INITIALIZE LINE SPEED SYMBOL       00019600
.* .                                                                    00019700
.* SET LINE SPEED ACCORDING TO WHAT USER SPECIFIED IN PORTXX KEYWORD    00019800
.* .                                                                    00019900
         DO    &SY=0               . ASYNC LINE SPEEDS                  00020000
         DO    &P(1)=45            . 45.45  BPS                         00020100
&LS      SET   0                                                        00020200
         ENDO                                                           00020300
         DO    &P(1)=50            . 50.0  BPS                          00020400
&LS      SET   1                                                        00020500
         ENDO                                                           00020600
         DO    &P(1)=56            . 56.8 BPS                           00020700
&LS      SET   2                                                        00020800
         ENDO                                                           00020900
         DO    &P(1)=74            . 74.2 BPS                           00021000
&LS      SET   3                                                        00021100
         ENDO                                                           00021200
         DO    &P(1)=75            . 75.0 BPS                           00021300
&LS      SET   4                                                        00021400
         ENDO                                                           00021500
         DO    &P(1)=100           . 100.0 BPS                          00021600
&LS      SET   5                                                        00021700
         ENDO                                                           00021800
         DO    &P(1)=110           . 110.0 BPS                          00021900
&LS      SET   6                                                        00022000
         ENDO                                                           00022100
         DO    &P(1)=134           . 134.5 BPS                          00022200
&LS      SET   7                                                        00022300
         ENDO                                                           00022400
         DO    &P(1)=150           . 150.0 BPS                          00022500
&LS      SET   8                                                        00022600
         ENDO                                                           00022700
         DO    &P(1)=200           . 200.0 BPS                          00022800
&LS      SET   9                                                        00022900
         ENDO                                                           00023000
         DO    &P(1)=300           . 300.0 BPS                          00023100
&LS      SET   10                                                       00023200
         ENDO                                                           00023300
         DO    &P(1)=600           . 600.0 BPS                          00023400
&LS      SET   11                                                       00023500
         ENDO                                                           00023600
         DO    &P(1)=1050          . 1050.0 BPS                         00023700
&LS      SET   12                                                       00023800
         ENDO                                                           00023900
         DO    &P(1)=1200          . 1200.0 BPS                         00024000
&LS      SET   13                                                       00024100
         ENDO                                                           00024200
         DO    &P(1)=1800          . 1800.0 BPS                         00024300
&LS      SET   14                                                       00024400
         ENDO                                                           00024500
         DO    &P(1)=2400          . 2400.0 BPS                         00024600
&LS      SET   15                                                       00024700
         ENDO                                                           00024800
         DO    &VS9**(&LS=16)                                           00024900
         PNOTE 'P','INVALID LINE SPEED FOR ASYNCH LINE - PORT&P(2)'     00025000
&LS      SET   0                                                        00025100
         ENDO  &VS9**(&LS=16)                                           00025200
         DO    (&U93=0)**(&LS=16)**(&VS9=0)                             00025300
         PNOTE 'P','INVALID LINE SPEED FOR ASYNC LINE - DCSCH&P(2)'     00025400
&LS      SET   0                                                        00025500
         ENDO                                                           00025600
         DO    &U93**(&LS=16)                                           00025700
         PNOTE 'P','INVALID LINE SPEED FOR ASYNC LINE - CACH&P(2)'      00025800
&LS      SET   0                                                        00025900
         ENDO                                                           00026000
         ENDO                                                           00026100
         DO    &SY=1                                                    00026200
         DO    &P(1)=2000          . 2000 BPS                           00026300
&LS      SET   0                                                        00026400
         ENDO                                                           00026500
         DO    &P(1)=2400          . 2400 BPS                           00026600
&LS      SET   1                                                        00026700
         ENDO                                                           00026800
         DO    &P(1)=4800          . 4800 BPS                           00026900
&LS      SET   2                                                        00027000
         ENDO                                                           00027100
         DO    &P(1)=9600          . 9600 BPS                           00027200
&LS      SET   3                                                        00027300
         ENDO                                                           00027400
         DO    &P(1)>9600          . > 9600 BPS                         00027500
&LS      SET   4                                                        00027600
         ENDO                                                           00027700
.* .                                                                    00027800
         DO    &VS9**(&LS=16)                                           00027900
         PNOTE 'P','INVALID LINE SPEED FOR SYNCH LINE - PORT&P(2)'      00028000
&LS      SET 0                                                          00028100
         ENDO  &VS9**(&LS=16)                                           00028200
         DO    (&U93=0)**(&LS=16)**(&VS9=0)                             00028300
         PNOTE 'P','INVALID LINE SPEED FOR SYNC LINE - DCSCH&P(2)'      00028400
&LS      SET   0                                                        00028500
         ENDO                                                           00028600
         DO    &U93**(&LS=16)                                           00028700
         PNOTE 'P','INVALID LINE SPEED FOR SYNC LINE - CACH&P(2)'       00028800
&LS      SET   0                                                        00028900
         ENDO                                                           00029000
         ENDO                                                           00029100
.* .                                                                    00029200
.* DO ERROR CHECKING                                                    00029300
.* .                                                                    00029400
.LABEL1  LABEL                                                          00029500
         DO    (&A)**(&SW=0)                                            00029600
&SW      SET   1                                                        00029700
         PNOTE '*','LINE SPECIFIED FOR AUTODIALING BUT NOT SPECIFIED AS;00029800
                SWITCHED'                                               00029900
         DO    &U93                                                     00030000
         PNOTE '*','LINE DEFINED AS SWITCHED AND AUTO-DIAL LINE - CACH&;00030100
               P(2)'                                                    00030200
         GOTO  .LABL1A                                                  00030300
         ENDO                                                           00030400
         DO    (&U93=0)**(&VS9=0)                                       00030500
         PNOTE '*','LINE DEFINED AS SWITCHED AND AUTO-DIAL LINE - DCSCH;00030600
               &P(2)'                                                   00030700
         ENDO                                                           00030800
         DO    &VS9                                                     00030900
         PNOTE '*','LINE DEFINED AS SWITCHED AND AUTO-DIAL LINE  - PORTX00031000
               &P(2)'                                                   00031100
         ENDO  &VS9                                                     00031200
         ENDO                                                           00031300
.LABL1A  LABEL                                                          00031400
.*                                                                      00031500
.* STORE CONFIGURATION FROM CACHNN CALL INTO LINE LINK CALL             00031600
.*                                                                      00031700
         DO    &U93                                                     00031800
&CRNTDSP SET   &P(12)                  REL PORT #                       00031900
.LABELG  LABEL                                                          00031950
         SPACE 3                                                        00032000
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PID-TN#PHEAD)           00032100
         DC    AL1(0)                  CHANNEL                          00032200
         DC    AL1(&P(2)+&FUD)     PORT                                 00032300
         DC    Y(TN#PLING-(2*((&P(2)**1)*TN#PLING)))  . DISP-COMPANION  00032400
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PDLID-TN#PHEAD)         00032500
         DC    AL1(&AUTOID)        . PORT ADDR OF ASSOC DIAL LA IF ANY  00032600
         DC    AL3(0)              . NON-MCP USER'S R0                  00032700
         DC    AL1(&PTTYPE)        . PORT TYPE                          00032800
         DC    AL1(0)                                                   00032900
         DC    AL1((TN#PFDX*&F)++(TN#PSWT*&SW)++(TN#PACU*&A)++(TN#PSYN*;00033000
               &SY)++&LS)                                               00033100
         DC    AL1(TN#PEON*&EON)                                        00033200
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PBCWA-TN#PHEAD)         00033300
         DC    A((&P(2)*16)+256)                                        00033400
         DO    &P(2)>15                                                 00033500
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PBCWA-TN#PHEAD)         00033600
         DC    A((&P(2)*16)512)                                         00033700
         ENDO                                                           00033800
         GOTO  .LABEL2                                                  00033850
         DO    &FUD=&F=0
&FUD     SETA  1
         GOTO  .LABELG
         ENDO  &FUD=&F=0
         GOTO  .LABEL2                                                  00033900
         ENDO                                                           00034000
         DO    (&U93=0)**(&VS9=0)                                       00034100
         DO    &P(9)>0                                                  00034200
&P9      SET   &P(9)/2                                                  00034300
         ENDO                                                           00034400
&CRNTDSP SET   &P(9)                                                    00034500
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PDLID-TN#PHEAD)         00034600
         DC    AL1(&AUTOID)                                             00034700
         DC    AL3(0)                                                   00034800
         DC    AL1(0)                                                   00034900
         DC    AL1(&P(2))                                               00035000
         DC    AL1((TN#PFDX*&F)++(TN#PSWT*&SW)++(TN#PACU*&A)++(TN#PSYN*;00035100
               &SY)++&LS)                                               00035200
         DC    AL1(TN#PEON*&EON)                                        00035300
         ENDO                                                           00035400
         DO    &VS9                                                     00035500
&CRNTDSP SET   &P(12)                  PORT NO (RELATIVE TO START PORT) 00035600
         DO    &F                      IF FULL DUPLEX, SET LOC COUNTER  00035700
&CRNTDSP SET   &CRNTDSP-(&P(2)**1)     TO EVEN LLT LOCATION             00035800
         ENDO  &F                                                       00035900
&J       DO    &F+1                    DO ONCE(HALF), TWICE(FULL)       00036000
&CRNTDSP SET   &CRNTDSP+(&J-1)                                          00036100
         SPACE 3                                                        00036200
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PID-TN#PHEAD)           00036300
         DC    AL1(0)                  CHANNEL NUMBER                   00036400
.*                                     SUBTRACT 1 IF FULL,ODD,&1ST TIME 00036500
         DC    AL1(&P(2)-(&F**(&P(2)))+(&J-1))     PORT NUMBER          00036600
         DO    ((&J-1)=0)**(&F=1)      EVEN PORT AND FULL DUPLEX        00036700
         DC    Y(TN#PLING)             DISPLACEMENT TO COMPANION PORT   00036800
         ENDO  ((&J-1)=0)**(&F=1)                                       00036900
         DO    (&J-1)=1                ODD PORT AND FULL DUPLEX         00037000
         DC    Y(-TN#PLING)            DISPLACEMENT TO COMPANION PORT   00037100
         ENDO  (&J-1)=1                                                 00037200
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PDLID-TN#PHEAD)         00037300
         DC    AL1(&AUTOID)            PORT ADDR ASSOCIATED DIAL LA     00037400
         DC    AL3(0)                                                   00037500
         DC    AL1(&PTTYPE)            PORT TYPE                        00037600
         DC    AL1(&T)                  DEVICE TYPE                     00037700
         DC    AL1((TN#PFDX*&F)++(TN#PSWT*&SW)++(TN#PACU*&A)++(TN#PSYN*&00037800
               &SY)++&LS)                                               00037900
         DC    AL1(TN#PEON*&EON)                                        00038000
         ORG   TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PCCW3-TN#PHEAD)         00038100
         DC    X'09'                   TIC COMMAND                      00038200
         DC    AL3(TS#LINEA+(&CRNTDSP*TN#PLING)+(TN#PBCW1-TN#PHEAD))    00038300
         ENDO  &F+1                                                     00038400
         ENDO  &VS9                                                     00038500
.LABEL2  LABEL                                                          00038600
         END                                                            00038700
