&DL      PROC  &P,0,                                                   X00000000
               &DEST=,                                                 X00000100
               &ERRET=,                                                X00000200
               &LEVEL=,                                                X00000300
               &NOBAV=,&NOMAV=,                                        X00000400
               &TYPE=,                                                 X00000500
               &UNIT=,                                                 X00000600
               &WAS=                                                    00000700
XDTFCP   NAME  X                                                        00000800
TM#DTFCP NAME  0    OS/7 ICAM USER DTF GENERATION              73/08/22 00000900
DTFCP    NAME  1                                                        00001000
.* .                                                                    00001100
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00001200
.* .                                                                  * 00001300
.* . THIS AND ALL RELATED PROGRAMS ARE PROPERTY OF                    * 00001400
.* .                                                                  * 00001500
.* . UNIVAC CONTAINING ITS CONFIDENTIAL INFORMATION                   * 00001600
.* .                                                                  * 00001700
.* . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** 00001800
         LCL   &DTFIND,&ERROR,&INVLV                                    00001900
.* .                                                                    00002000
.*                                                                      00002100
.*   ELEMENT NAME = DTFCP                                               00002200
.*                                                                      00002300
.*   MAIN PROGRAM = ICAM USER INTERFACE                                 00002400
.*                                                                      00002500
.*   PROC NAME = TM#DTFCP                                               00002600
.*                                                                      00002700
.*   AUTHOR:   WH                                                       00002800
.*                                                                      00002900
.*   VERSION   16/00          DATE   73/08/22                           00003000
.*                                                                      00003100
.*   FUNCTIONAL DESCRIPTION:                                            00003200
.*       TM#DTFCP GENERATES A DTF TO BE USED BY AN ICAM                 00003300
.*       USER PROGRAM.  BY MEANS OF THE DTF THE USER IS                 00003400
.*       ABLE TO CONTROL HIS/HERS GET AND/OR PUT PROCESSING.            00003500
.*       TWO TYPES OF DTF'S CAN BE GENERATED: A PROCESS FILE            00003600
.*       DTF, USED WITH THE GET PROCESSOR, OR A DESTINATION             00003700
.*       FILE DTF, USED WITH THE PUT PROCESSOR.  THE                    00003800
.*       DTF GENERATION IS PARAMETER DRIVEN.                            00003900
.*                                                                      00004000
.*   ENTRANCE REQUIREMENTS:                                             00004100
.*       SEE ICAM PRM FOR PARAMETERS.                                   00004200
.*                                                                      00004300
.*   EXIT CONDITIONS:                                                   00004400
.*       NOT APPLICABLE                                                 00004500
.*                                                                      00004600
.*   REGISTER USAGE:                                                    00004700
.*       NONE                                                           00004800
.*                                                                      00004900
.*   ENVIRONMENT:                                                       00005000
.*       USER                                                           00005100
.*                                                                      00005200
.*   ELEMENTS REFERENCING THIS ELEMENT:                                 00005300
.*       NONE                                                           00005400
.*                                                                      00005500
.*   ELEMENTS REFERENCED BY THIS ELEMENT:                               00005600
.*       NONE                                                           00005700
.*                                                                      00005800
.*   TABLES REFERENCED BY THIS ELEMENT:                                 00005900
.*       NONE                                                           00006000
.*                                                                      00006100
         TM#DSCTS GETPUT                                                00006200
&ERROR   SET   0                                                        00006300
&INVLV   SET   0                                                        00006400
&DTFIND  SET   0                                                        00006500
         DO    1-(('&TYPE'='GT')++('&TYPE'='PT'))                       00006600
         PNOTE 'P','DTF-TYPE INCORRECT SPECIFIED'                       00006700
&ERROR   SET   1                                                        00006800
         ENDO                                                           00006900
         DO    ''='&DL'                                                 00007000
         PNOTE 'P','LABEL MISSING'                                      00007100
&ERROR   SET   1                                                        00007200
         ENDO                                                           00007300
         DO    1-(('&UNIT'='LINE')++(''='&UNIT'))                       00007400
         PNOTE 'P','INVALID UNIT DEFINITION'                            00007500
&ERROR   SET   1                                                        00007600
         ENDO                                                           00007700
         DO    '&TYPE'='GT'                                             00007800
         DO    1-(('&LEVEL'='HIGH')++('&LEVEL'='MEDIUM')++('&LEVEL'='LOX00007900
               W')++('&LEVEL'='AVAIL')++(''='&LEVEL'))                  00008000
         PNOTE '*','INVALID LEVEL SPECIFIED'                            00008100
&INVLV   SET   1                                                        00008200
&DTFIND  SET   X'04'                  . SET 'AVAIL' IF LEVEL IS INVALID 00008300
         ENDO                                                           00008400
         DO    '&LEVEL'=''                                              00008500
&DTFIND  SET   X'04'                  . SET 'AVAIL' IF LEVEL IS INVALID 00008600
         ENDO                                                           00008700
         ENDO                                                           00008800
         DO    '&TYPE'='PT'                                             00008900
         DO    1-(('&DEST(1)'='T')++('&DEST(1)'='D')++('&DEST(1)'='P')+X00009000
               +('&DEST(1)'=''))                                        00009100
         PNOTE 'P','DESTINATION TYPE INVALID'                           00009200
&ERROR   SET   1                                                        00009300
         ENDO                                                           00009400
         DO    1-('&DEST(1)'='')                                        00009500
         DO    '&DEST(2)'=''                                            00009600
         PNOTE 'P','NO DESTINATION-NAME SPECIFIED'                      00009700
&ERROR   SET   1                                                        00009800
         ENDO                                                           00009900
         ENDO                                                           00010000
         DO    '&DEST(1)'='T'                                           00010100
         DO    1-(('&DEST(3)'='FSEL')++('&DEST(3)'=''))                 00010200
         PNOTE 'P','INVALID TERMINAL DEFINITION'                        00010300
&ERROR   SET   1                                                        00010400
         ENDO                                                           00010500
         ENDO                                                           00010600
         DO     1-(('&LEVEL'='TOPBRK')++('&LEVEL'='TOP')++('&LEVEL'='HIX00010700
               GH')++('&LEVEL'='MEDIUM')++('&LEVEL'='LOW')++(''='&LEVELX00010800
               '))                                                      00010900
         PNOTE '*','INVALID LEVEL SPECIFIED'                            00011000
&INVLV   SET   1                                                        00011100
&DTFIND  SET X'01'                    . SET 'LOW' IF LEVEL IS INVALID   00011200
         ENDO                                                           00011300
         DO    '&LEVEL'=''                                              00011400
&DTFIND  SET X'01'                    . SET 'LOW' IF LEVEL IS INVALID   00011500
         ENDO                                                           00011600
         ENDO                                                           00011700
         DO    (&ERROR=1)*(1-('&TYPE'='PT'))                            00011800
         DS    8F                      . RESERVE SPACE FOR PRCS-DTF     00011900
         GOTO  .EX                                                      00012000
         ENDO                                                           00012100
         DO    (&ERROR=1)*('&TYPE'='PT')                                00012200
         DS    7F                      . RESERVE SPACE FOR DEST-DTF     00012300
         GOTO  .EX                                                      00012400
         ENDO                                                           00012500
         DS    0F                      . ADJUST TO A FULLWORD BOUNDARY  00012600
&DL      DC    XL2'0'                   . INDICATOR BYTES               00012700
         DC    XL2'0'                  . ERROR-BYTES                    00012800
         DC    CL4'&DL'                 . DTF NAME (LABEL)              00012900
         DO    '&TYPE'='PT'                                             00013000
         DO    ''='&DEST'                                               00013100
         PNOTE '*','NO DESTINATION SPECIFIED'                           00013200
         DC    CL4'00'                 . SPACE FOR DESTINATION NAME     00013300
         GOTO  .NODE                                                    00013400
         ENDO                                                           00013500
         DC    CL4'&DEST(2)'           . DESTINATION NAME               00013600
         DO    '&DEST(1)'='T'                                           00013700
         DO    '&DEST(3)'='FSEL'                                        00013800
&DTFIND  SET   &DTFIND++X'28'         . SET TM#DEDE + TM#DFSL TO 1      00013900
         ENDO                                                           00014000
         ENDO                                                           00014100
         DO    '&DEST(1)'='P'                                           00014200
&DTFIND  SET   &DTFIND++X'40'         . SET TM#DEDE TO 2                00014300
         ENDO                                                           00014400
         DO    '&DEST(1)'='D'                                           00014500
&DTFIND  SET   &DTFIND++X'60'         . SET TM#DEDE TO 3                00014600
         ENDO                                                           00014700
.NODE    LABEL                                                          00014800
         DC    XL2'00'                 . AUXILARY DEVICE SPECIFICATION' 00014900
         ENDO                                                           00015000
         DO    '&TYPE'='GT'                                             00015100
         DC    XL4'00'                 . NAME OF SOURCE TERMINAL        00015200
         DO    ''='&WAS'                                                00015300
         DC    Y(0)                                                     00015400
         GOTO  .NOWS                                                    00015500
         ENDO                                                           00015600
         DC    Y(&WAS)                 . WORKAREA SIZE                  00015700
&DTFIND  SET   &DTFIND++X'08'         . SET TM#PWAS TO 1                00015800
         ENDO                                                           00015900
.NOWS    LABEL                                                          00016000
         DO    1-(&INVLV=1)                                             00016100
&DTFIND  SET   &DTFIND++(('&LEVEL'='LOW')*X'01')                        00016200
&DTFIND  SET   &DTFIND++(('&LEVEL'='MEDIUM')*X'02')                     00016300
&DTFIND  SET   &DTFIND++(('&LEVEL'='HIGH')*X'03')                       00016400
&DTFIND  SET   &DTFIND++((('&LEVEL'='AVAIL')++('&LEVEL'='TOP'))*X'04')  00016500
&DTFIND  SET   &DTFIND++(('&LEVEL'='TOPBRK')*X'05')                     00016600
         ENDO                                                           00016700
         DO    '&UNIT'='LINE'                                           00016800
&DTFIND  SET   &DTFIND++X'10'         . SET TM#PLTR / TM#DLTR TO 1      00016900
         ENDO                                                           00017000
         DC    YL1(&DTFIND)            . TM#PDTF / TM#DDTF              00017100
         DC    X'0'                   . TM#PSEG / TM#DSEG               00017200
         DO    '&TYPE'='GT'                                             00017300
         DC    A(0)                    . TM#PCHD                        00017400
         DC    A(&NOMAV+0)             . TM#PNMA                        00017500
         ENDO                                                           00017600
         DO    '&TYPE'='PT'                                             00017700
         DC    A(0)                    . TM#DCHD                        00017800
         DC    A(&NOBAV+0)             . TM#DNBA                        00017900
         ENDO                                                           00018000
         DC    A(&ERRET+0)             . TM#PERA/TM#DERA                00018100
         DO    '&TYPE'='GT'                                             00018200
         DC    Y(0)                    . TM#PAUX                        00018300
         DC    Y(0)                    . TM#PRSG                        00018400
         ENDO                                                           00018500
.EX      LABEL                                                          00018600
         END                                                            00018700
