&DL      PROC  &P,2,                                                   X00000000
               &LEVEL=                                                  00000100
XGETPUT  NAME  X                                                        00000200
TM#GTPT  NAME  0                                                        00000300
GETCP    NAME  1                                                        00000400
PUTCP    NAME  2                                                        00000500
.* .                                                                    00000600
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00000700
.* .                                                                  * 00000800
.* . THIS AND ALL RELATED PROGRAMS ARE PROPERTY OF                    * 00000900
.* .                                                                  * 00001000
.* . UNIVAC CONTAINING ITS CONFIDENTIAL INFORMATION                   * 00001100
.* .                                                                  * 00001200
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00001300
         GBL   &USER94                                                  00001400
         GBL   &VS9                                                     00001410
         LCL   &LV                                                      00001500
         PRINT OFF                                                      00001510
         SYSTEM                                                         00001511
         PRINT ON                                                       00001512
.* .                                                                    00001600
.*                                                                      00001700
.*   ELEMENT NAME = TM#GTPT                                             00001800
.*                                                                      00001900
.*   MAIN PROGRAM = ICAM                                                00002000
.*                                                                      00002100
.*   PROC NAMES:    GETCP                                               00002200
.*                  PUTCP                                               00002300
.*                                                                      00002400
.*   AUTHOR:   WH                                                       00002500
.*                                                                      00002600
.*   VERSION   16/00          DATE   73/08/22                           00002700
.*                                                                      00002800
.*   FUNCTIONAL DESCRIPTION:                                            00002900
.*       TM#GTPT GENERATES THE GETCP AND PUTCP MACRO                    00003000
.*       EXPANSIONS.  THIS IS THE USER LEVEL INTER-                     00003100
.*       FACE WHEREBY THE USER IS ABLE TO CONTROL HIS                   00003200
.*       I/O TO THE SPECIFIC TERMINALS, DISTRIBUTION                    00003300
.*       LISTS, FAST SELECT LISTS, AND PROCESS FILES,                   00003400
.*       AND FROM SPECIFIC PROCESS FILES.                               00003500
.*       CODE IS GENERATED IN LINE WHICH SETS THE                       00003600
.*       REGISTERS FOR ICAM AND CALLS ON ICAM TO PER-                   00003700
.*       FORM THE REQUIRED TASK.                                        00003800
.*                                                                      00003900
.*   ENTRANCE REQUIREMENTS:                                             00004000
.*       NONE                                                           00004100
.*                                                                      00004200
.*   EXIT CONDITIONS:                                                   00004300
.*       NONE                                                           00004400
.*                                                                      00004500
.*   REGISTER USAGE:                                                    00004600
.*       TR#0                                                           00004700
.*       TR#1                                                           00004800
.*                                                                      00004900
.*   ENVIRONMENT:                                                       00005000
.*       USER                                                           00005100
.*                                                                      00005200
.*   ELEMENTS REFERENCING THIS ELEMENT:                                 00005300
.*       ICAM USER PROGRAMS                                             00005400
.*                                                                      00005500
.*   ELEMENTS REFERENCED BY THIS ELEMENT:                               00005600
.*                                                                      00005700
.*   TABLES REFERENCED BY THIS ELEMENT:                                 00005800
.*       NONE                                                           00005900
.*                                                                      00006000
         DO    '&USER94'=''                                             00006100
&USER94  SET   0                                                        00006200
         ENDO                                                           00006300
&LV      SET   0                                                        00006400
         DO    &P(0)=1                                                  00006500
         DO    1-(('&LEVEL'='HIGH')++('&LEVEL'='MEDIUM')++('&LEVEL'='LOX00006600
               W')++('&LEVEL'='AVAIL')++('&LEVEL'=''))                  00006700
         PNOTE '*','LEVEL-DEFINITION INVALID'                           00006800
         GOTO  .NOLV                                                    00006900
         ENDO                                                           00007000
         ENDO                                                           00007100
         DO    &P(0)=2                                                  00007200
         DO    1-(('&LEVEL'='TOPBRK')++('&LEVEL'='TOP')++('&LEVEL'='HIGX00007300
               H')++('&LEVEL'='MEDIUM')++('&LEVEL'='LOW')++('&LEVEL'=''X00007400
               ))                                                       00007500
         PNOTE '*','LEVEL-DEFINITION INVALID'                           00007600
         GOTO  .NOLV                                                    00007700
         ENDO                                                           00007800
         ENDO                                                           00007900
&LV      SET   &LV++('&LEVEL'='LOW')*1                                  00008000
&LV      SET   &LV++('&LEVEL'='MEDIUM')*2                               00008100
&LV      SET   &LV++('&LEVEL'='HIGH')*3                                 00008200
&LV      SET   &LV++(('&LEVEL'='AVAIL')++('&LEVEL'='TOP'))*4            00008300
&LV      SET   &LV++('&LEVEL'='TOPBRK')*5                               00008400
.NOLV    LABEL                                                          00008500
         DO    ('&P(1)'='')                                             00008600
         PNOTE 'P','DTF-NAME MISSING'                                   00008700
         DS    F                       . PATCH LOCATION                 00008800
         GOTO  .EX                                                      00008900
         ENDO                                                           00009000
         DO    ('&P(2)'='')                                             00009100
         PNOTE 'P','WORKAREA ADDRESS MISSING'                           00009200
         DS    F                       . PATCH LOCATION                 00009300
         GOTO  .EX                                                      00009400
         ENDO                                                           00009500
&DL      DS    0H                      . ADJUST TO HALF-WORD BOUNDARY   00009600
         DO    1-(('&P(1)'='1')++('&P(1)'='(1)'))                       00009700
         DO    (1-(('&P(2)'='0')++('&P(2)'='(0)')))                     00009800
         LM    0,1,TQ#P&SYSNDX                                          00009900
         ENDO                                                           00010000
         ENDO                                                           00010100
         DO    ('&P(1)'='1')++('&P(1)'='(1)')                           00010200
         LA    1,0(,1)                                                  00010300
         O     1,TQ#Q&SYSNDX                                            00010400
         ENDO                                                           00010500
         DO    ('&P(2)'='0')++('&P(2)'='(0)')                           00010600
         O     0,TQ#P&SYSNDX                                            00010700
         ENDO                                                           00010800
         DO    ('&P(2)'='0')++('&P(2)'='(0)')                           00010900
         DO    1-(('&P(1)'='1')++('&P(1)'='(1)'))                       00011000
         L     1,TQ#Q&SYSNDX                                            00011100
         ENDO                                                           00011200
         ENDO                                                           00011300
         DO    ('&P(1)'='1')++('&P(1)'='(1)')                           00011400
         DO    (1-(('&P(2)'='0')++('&P(2)'='(0)')))                     00011500
         L     0,TQ#P&SYSNDX                                            00011600
         ENDO                                                           00011700
         ENDO                                                           00011800
         B     TQ#T&SYSNDX                                              00011900
         DS    0F                      . ADJUST TO FULL WORD BOUNDARY   00012000
TQ#P&SYSNDX DC YL1(&P(0))              . FUNCTION CODE                  00012100
         DO    ('&P(2)'='0')++('&P(2)'='(0)')                           00012200
         DC    AL3(0)                  .                                00012300
         GOTO  .G0                                                      00012400
         ENDO                                                           00012500
         DC    AL3(&P(2)+0)            . ADDRESS OF WORKAREA            00012600
.G0      LABEL                                                          00012700
TQ#Q&SYSNDX DC YL1(&LV)                . LEVEL CODE                     00012800
         DO    ('&P(1)'='1')++('&P(1)'='(1)')                           00012900
         DC    AL3(0)                  .                                00013000
         GOTO  .G1                                                      00013100
         ENDO                                                           00013200
         DC    AL3(&P(1))              . DTF ADDRESS                    00013300
.G1      LABEL                                                          00013400
         DO    &USER94                                                  00013500
TQ#T&SYSNDX SVC SV#MCP                                                  00013600
         DC    AL2((128*/8)++2)                                         00013700
         GOTO  .EX                                                      00013800
         ENDO                                                           00013900
         DO    &VS9                                                     00013910
         CNOP  0,4                                                      00013911
TQ#T&SYSNDX TM 0(1),X'80'          . IRL?                               00013912
         BNO   *+8                 .  NO                                00013913
         OI    *+7,X'80'           . SAVE IRL FLAG IN SUB-FUNCTION CODE 00013914
         SVC   98                                                       00013915
         DC    AL2((128*/8)++2)                                         00013916
         GOTO  .EX                                                      00013917
         ENDO                                                           00013918
TQ#T&SYSNDX SVC 09                 . CALL ICAM                          00014000
         DC    AL2((128*/8)++2)                                         00014100
.EX      LABEL                                                          00014200
         END                                                            00014300
