&DL      PROC  &P,2                                                     00000000
XMFUNCT  NAME  X                                                        00000100
TM#MFUNC NAME  0                                                        00000200
MREAD    NAME  1                                                        00000300
MSWITCH  NAME  2                                                        00000400
MWRITE   NAME  3                                                        00000500
MDEFER   NAME  4                                                        00000600
MALERT   NAME  5                                                        00000700
.* .                                                                    00000800
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00000900
.* .                                                                  * 00001000
.* . THIS AND ALL RELATED PROGRAMS ARE PROPERTY OF                    * 00001100
.* .                                                                  * 00001200
.* . UNIVAC CONTAINING ITS CONFIDENTIAL INFORMATION                   * 00001300
.* .                                                                  * 00001400
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00001500
         GBL   &USER94                                                  00001600
         GBL   &VS9                                                     00001610
         PRINT OFF                                                      00001611
         SYSTEM                                                         00001612
         PRINT ON                                                       00001613
.* .                                                                    00001700
         DO    '&USER94'=''                                             00001800
&USER94  SET   0                                                        00001900
         ENDO                                                           00002000
.*  FUNCTIONAL DESCRIPTION                                              00002100
.*       GENERATES USER CODE FOR THE TCI USER MACROS.                   00002200
.*       R1 CONTAINS THE FUNCTION CODE WHICH THE MPROCESSOR DECODES.    00002300
.*       R1 ALSO CONTAINS TTT ADDRESS FOR ALL FUNCTIONS                 00002400
.*       R0 IS A PARAMETER ON MALERT ONLY                               00002500
         DO    ('&P(1)'='')++('&P(1)'='(0)')                            00002600
         PNOTE 'P','R1 PARAMETER MISSING'                               00002700
         GOTO  .EXIT                                                    00002800
         ENDO                                                           00002900
         DO    '&DL'=''=0                                               00003000
&DL      DS    0H                                                       00003100
         GOTO  .START                                                   00003200
         ENDO                                                           00003300
         DS    0H                                                       00003400
.START   LABEL                                                          00003500
         DO    (1-(('&P(1)'='1')++('&P(1)'='(1)')))                     00003600
         DO    (1-(('&P(2)'='0')++('&P(2)'='(0)')++('&P(2)'='')))       00003700
         LM    0,1,TM#P&SYSNDX                                          00003800
         ENDO                                                           00003900
         ENDO                                                           00004000
         DO    ('&P(1)'='1')++('&P(1)'='(1)')                           00004100
         LA    1,0(,1)                                                  00004200
         O     1,TM#Q&SYSNDX                                            00004300
         ENDO                                                           00004400
         DO    ('&P(2)'='0')++('&P(2)'='(0)')++('&P(2)'='')             00004500
         DO    (1-(('&P(1)'='1')++('&P(1)'='(1)')))                     00004600
         L     1,TM#Q&SYSNDX                                            00004700
         ENDO                                                           00004800
         ENDO                                                           00004900
         DO    ('&P(1)'='1')++('&P(1)'='(1)')                           00005000
         DO    (1-(('&P(2)'='0')++('&P(2)'='(0)')++('&P(2)'='')))       00005100
         L     0,TM#P&SYSNDX                                            00005200
         ENDO                                                           00005300
         ENDO                                                           00005400
         B     TM#T&SYSNDX                                              00005500
         DS    0F                                                       00005600
         DO    ('&P(0)'='5')                                            00005700
         DO    ('&P(2)'='')                                             00005800
         PNOTE 'P','MALERT SECOND PARAMETER MISSING'                    00005900
         GOTO  .EXIT                                                    00006000
         ENDO                                                           00006100
         DO    (('&P(2)'='(0)')++('&P(2)'='0'))                         00006200
         PNOTE *,'USER SPECIFIED FUNCTION CODE IN R0'                   00006300
         PNOTE *,'BESURE FIRST THREE BYTES OF R0 = ZERO.'               00006400
         GOTO  .RONEDC             . USER HAS SUPPLIED FUNC. CODE       00006500
         ENDO                                                           00006600
TM#P&SYSNDX DC AL3(0)                                                   00006700
         DO    ('&P(2)'='RETRANS')                                      00006800
         DC    YL1(1)              . RETRANS                            00006900
         GOTO  .RONEDC                                                  00007000
         ENDO                                                           00007100
         DO    ('&P(2)'='NORETRAN')                                     00007200
         DC    YL1(2)              . NORETRAN                           00007300
         GOTO  .RONEDC                                                  00007400
         ENDO                                                           00007500
         DO    ('&P(2)'='ENABLIN')                                      00007600
         DC    YL1(3)              . ENABLIN                            00007700
         GOTO  .RONEDC                                                  00007800
         ENDO                                                           00007900
         DO    ('&P(2)'='CANCELIN')                                     00008000
         DC    YL1(4)              . CANCELIN                           00008100
         GOTO  .RONEDC                                                  00008200
         ENDO                                                           00008300
         DO    ('&P(2)'='TSTATUS')                                      00008400
         DC    YL1(5)              . TSTATUS                            00008500
         GOTO  .RONEDC                                                  00008600
         ENDO                                                           00008700
         DO    ('&P(2)'='CLEARQUE')                                     00008800
         DC    YL1(6)              . CLEARQUE                           00008900
         GOTO  .RONEDC                                                  00009000
         ENDO                                                           00009100
         PNOTE 'P','MALERT SECOND PARAMETER ERROR'                      00009200
         GOTO  .EXIT                                                    00009300
         ENDO                                                           00009400
         DO    (1-(('&P(2)'='0')++('&P(2)'='(0)')++('&P(2)'='')))       00009500
TM#P&SYSNDX DC YL1(0)                                                   00009600
         DC    AL3(&P(2))                                               00009700
         ENDO                                                           00009800
.RONEDC  LABEL                                                          00009900
TM#Q&SYSNDX DC YL1(&P(0))                                               00010000
         DO    ('&P(1)'='1')++('&P(1)'='(1)')                           00010100
         DC    AL3(0)                                                   00010200
         GOTO  .SVC                                                     00010300
         ENDO                                                           00010400
         DO    '&P(1)'=''                                               00010500
         DC    AL3(0)                                                   00010600
         GOTO  .SVC                                                     00010700
         ENDO                                                           00010800
         DC    AL3(&P(1))                                               00010900
.SVC     LABEL                                                          00011000
         DO    &USER94                                                  00011100
TM#T&SYSNDX SVC SV#MCP                                                  00011200
         DC    AL2((128*/8)++3)                                         00011300
         GOTO  .EXIT                                                    00011400
         ENDO                                                           00011500
         DO    &VS9                                                     00011510
         CNOP  0,4                                                      00011511
TM#T&SYSNDX TM 0(1),X'80'          . IRL?                               00011512
         BNO   *+8                 .  NO                                00011513
         OI    *+7,X'80'           . SAVE IRL FLAG IN SUB-FUNCTION CODE 00011514
         SVC   98                                                       00011515
         DC    AL2((128*/8)++3)                                         00011516
         GOTO  .EXIT                                                    00011517
         ENDO                                                           00011518
TM#T&SYSNDX SVC 09                 . CALL ICAM                          00011600
         DC    AL2((128*/8)++3)                                         00011700
.EXIT    LABEL                                                          00011800
         END                                                            00011900
