&LABL    PROC  &P,1,&BLKSIZE=,&BKSZ=,&IOAREA1=,&IOA1=,&IOA2=,&IOAREA2=,1DTF00010
               &EOFADDR=,&EOFA=,&OPTION=,&ERROR=,&IOREG=,&LBAD=,       2DTF00020
               &LABADDR=,&RECFORM=,&RCFM=,&RECSIZE=,&RCSZ=,&SAVAREA=,  3DTF00030
               &TYPEFLE=,&TYPF=,&VARBLD=,&VBLD=,&WORK=,&WORKA=,        4DTF00040
               &ASCII=,&BKNO=,&CKPTREC=,&BUFOFF=,&CLRW=,&FILABL=,      XDTF00050
               &LENCHK=,&OPRW=,&READ=FORWARD,&REWIND=,&TPMARK=,&ERRO=, XDTF00060
               &DEVA=,&VOLN=,&GENO=,&CRDT=,&XPDT=,&FLID=,&CKPT=,&FLBL=,XDTF00070
               &TPMK=,&TYPE=,&IORG=,&ALTTAPE=,&CONTROL=,&DEVADDR=,     XDTF00080
               &ERROPT=,&TRLBL=,&ERRIO=,&WLRERR=,&SEPASMB=              DTF00090
DTFMT3   NAME  0                                                        DTF00100
DTFMT    NAME  0                                                        DTF00110
         LCL   &LAB,&IA1,&IA2,&BKS,&TYP,&EOF                            DTF00120
         LCL   &RSZ,&RCF,&VBL,&FG,&FC,&REGS                             DTF00130
         LCL   &FB,&N1,&N2,&N3,&N4,&N5                                  DTF00140
         LCL   &IRG,&WRK                                                DTF00150
         LCL   &ERO,&TPK,&FIL                                           DTF00160
         DO    0                                                        DTF00170
*        &BKS-BKSZ/BLKSIZE SPECIFICATION                                DTF00180
*        &EOF-EOFA/EOFADDR                                              DTF00190
*        &ERR  ERROR ROUTINE: RERRO/&ERROR                              DTF00200
*        &IA1-IOA1/IOAREA1                                              DTF00210
*        &IOA-IOA2/IOAREA2                                              DTF00220
*        &LAB-LBAD/LABADDR                                              DTF00230
*        &RCF-RCFM/RECFORM                                              DTF00240
*        &RSZ-RCSZ/RECSIZE                                              DTF00250
*        &TYP-TYPF/TYPEFLE/TYPE                                         DTF00260
*        &VBL-VBLD/VARBLD                                               DTF00270
*        &WRK-WORK/WORKA                                                DTF00280
         ENDO                                                           DTF00290
         LCL   &TF1,&TF2,&RD,&BUFO                                      DTF00300
&ERO     SET   '&ERRO'                                                  DTF00310
         DO    '&ERROPT'=''=0                                           DTF00320
&ERO     SET   '&ERROPT'                                                DTF00330
         ENDO                                                           DTF00340
         DO    ('&ERRO'=''=0)**('&ERROPT'=''=0)                         DTF00350
         PNOTE '*','ERRO AND ERROPT BOTH SPECIFIED, ERROPT USED'        DTF00360
         ENDO                                                           DTF00370
         DO    ('&ERO'=''=0)**('&ERO'='SKIP'=0)**('&ERO'='IGNORE'=0)    DTF00380
         PNOTE '*','ERROPT INCORRECTLY SPECIFIED, IGNORED'              DTF00390
&ERO     SET   ''                                                       DTF00400
         ENDO                                                           DTF00410
         DO    ('&BLKSIZE'=''=0)**('&BKSZ'=''=0)                        DTF00420
         PNOTE '*','BLKSIZE AND BKSZ SPECIFIED, BLKSIZE USED'           DTF00430
         ENDO                                                           DTF00440
         DO    ('&EOFADDR'=''=0)**('&EOFA'=''=0)                        DTF00450
         PNOTE '*','EOFADDR AND EOFA SPECIFIED, EOFADDR USED'           DTF00460
         ENDO                                                           DTF00470
         DO    ('&IOAREA1'=''=0)**('&IOA1'=''=0)                        DTF00480
         PNOTE '*','IOAREA1 AND IA1 SPECIFIED, IOAREA1 USED'            DTF00490
         ENDO                                                           DTF00500
         DO    ('&IOAREA2'=''=0)**('&IOA2'=''=0)                        DTF00510
         PNOTE '*','IOAREA2 AND IOA2 SPECIFIED, IOAREA2 USED'           DTF00520
         ENDO                                                           DTF00530
         DO    ('&LABADDR'=''=0)**('&LBAD'=''=0)                        DTF00540
         PNOTE '*','LABADDR AND LBAD SPECIFIED, LABADDR USED'           DTF00550
         ENDO                                                           DTF00560
         DO    ('&RECSIZE'=''=0)**('&RCSZ'=''=0)                        DTF00570
         PNOTE '*','RECSIZE AND RCSZ SPECIFIED, RECSIZE USED'           DTF00580
         ENDO                                                           DTF00590
         DO    ('&RECFORM'=''=0)**('&RCFM'=''=0)                        DTF00600
         PNOTE '*','RECFORM AND RCFM SPECIFIED, RECFORM USED'           DTF00610
         ENDO                                                           DTF00620
         DO    ('&TYPEFLE'=''=0)**(('&TYPF'=''=0)++('&TYPE'=''=0))      DTF00630
         PNOTE '*','TYPEFLE AND TYPE/TYPF SPECIFIED,TYPEFLE USED'       DTF00640
         ENDO                                                           DTF00650
         DO    ('&TYPEFLE'='')**('&TYPF'=''=0)**('&TYPE'=''=0)          DTF00660
         PNOTE '*','TYPE AND TYPF SPECIFIED,TYPE USED'                  DTF00670
         ENDO                                                           DTF00680
         DO    ('&VARBLD'=''=0)**('&VBLD'=''=0)                         DTF00690
         PNOTE '*','VARBLD AND VBLD SPECIFIED, VARBLD USED'             DTF00700
         ENDO                                                           DTF00710
         DO    ('&WORKA'=''=0)**('&WORK'=''=0)                          DTF00720
         PNOTE '*','WORKA AND WORK SPECIFIED, WORKA USED'               DTF00730
         ENDO                                                           DTF00740
         DO    ('&IOREG'=''=0)**('&IORG'=''=0)                          DTF00750
         PNOTE '*','IOREG AND IORG SPECIFIED,IOREG USED'                DTF00760
         ENDO                                                           DTF00770
         DO    ('&FILABL'=''=0)**('&FLBL'=''=0)                         DTF00780
         PNOTE '*','FILABL AND FLBL SPECIFIED,FILABL USED'              DTF00790
         ENDO                                                           DTF00800
         DO    '&IORG'=''=0                                             DTF00810
&IRG     SET   &IORG(1)                                                 DTF00820
         ENDO                                                           DTF00830
         DO    '&IOREG'=''=0                                            DTF00840
&IRG     SET   &IOREG(1)                                                DTF00850
         ENDO                                                           DTF00860
         DO    ('&TRLBL'=''=0)**('&TRLBL'='YES'=0)                      DTF00870
         PNOTE '*','TRLBL INCORRECTLY SPECIFIED, YES ASSUMED'           DTF00880
         ENDO                                                           DTF00890
&WRK     SET   '&WORK'                                                  DTF00900
         DO    '&WORKA'=''=0                                            DTF00910
&WRK     SET   '&WORKA'                                                 DTF00920
         ENDO                                                           DTF00930
         DO    ('&WRK'=''=0)**('&WRK'='YES'=0)                          DTF00940
         PNOTE '*','WORKA INCORRECTLY SPECIFIED, YES ASSUMED'           DTF00950
         ENDO                                                           DTF00960
         DO    ('&WRK'=''=0)**('&IRG'=''=0)                             DTF00970
         PNOTE '*','WORKA AND IOREG SPECIFIED, IOREG IGNORED'           DTF00980
&IRG     SET   ''                                                       DTF00990
         ENDO                                                           DTF01000
&LAB     SET   '&LBAD'                                                  DTF01010
         DO    '&LABADDR'=''=0                                          DTF01020
&LAB     SET   '&LABADDR'                                               DTF01030
         ENDO                                                           DTF01040
&IA1     SET   '&IOA1'                                                  DTF01050
         DO    '&IOAREA1'=''=0                                          DTF01060
&IA1     SET   '&IOAREA1'                                               DTF01070
         ENDO                                                           DTF01080
&IA2     SET   '&IOA2'                                                  DTF01090
         DO    '&IOAREA2'=''=0                                          DTF01100
&IA2     SET   '&IOAREA2'                                               DTF01110
         ENDO                                                           DTF01120
         DO    ('&IA2'=''=0)**('&WRK'='')**('&IRG'='')                  DTF01130
         PNOTE '*','WORKA OR IOREG SHOULD BE SPEC. WHEN IOAREA2 SPEC.'  DTF01140
         ENDO                                                           DTF01150
&BKS     SET   0                                                        DTF01160
         DO    '&BKSZ'=''=0                                             DTF01170
&BKS     SET   '&BKSZ'                                                  DTF01180
         ENDO                                                           DTF01190
         DO    '&BLKSIZE'=''=0                                          DTF01200
&BKS     SET   '&BLKSIZE'                                               DTF01210
         ENDO                                                           DTF01220
&TYP     SET   '&TYPF'                                                  DTF01230
         DO    '&TYPE'=''=0                                             DTF01240
&TYP     SET   '&TYPE'                                                  DTF01250
         ENDO                                                           DTF01260
         DO    '&TYPEFLE'=''=0                                          DTF01270
&TYP     SET   '&TYPEFLE'                                               DTF01280
         ENDO                                                           DTF01290
         DO    '&TYP'=''                                                DTF01300
         PNOTE '*','FILE TYPE NOT SPECIFIED, INPUT ASSUMED'             DTF01310
&TYP     SET   'INPUT'                                                  DTF01320
         ENDO                                                           DTF01330
         DO    ('&TYP'='INPUT'=0)**('&TYP'='OUTPUT'=0)**('&TYP'='INOUT'1DTF01340
               =0)                                                      DTF01350
         PNOTE '*','FILE TYPE INCORRECTLY SPECIFIED, INPUT ASSUMED'     DTF01360
&TYP     SET   'INPUT'                                                  DTF01370
         ENDO                                                           DTF01380
&EOF     SET   '&EOFA'                                                  DTF01390
         DO    '&EOFADDR'=''=0                                          DTF01400
&EOF     SET   '&EOFADDR'                                               DTF01410
         ENDO                                                           DTF01420
&TPK     SET   '&TPMK'                                                  DTF01430
         DO    '&TPMARK'=''=0                                           DTF01440
&TPK     SET   '&TPMARK'                                                DTF01450
         ENDO                                                           DTF01460
&FIL     SET   '&FLBL'                                                  DTF01470
         DO    '&FILABL'=''=0                                           DTF01480
&FIL     SET   '&FILABL'                                                DTF01490
         ENDO                                                           DTF01500
&RSZ     SET   0                                                        DTF01510
         DO    '&RCSZ'=''=0                                             DTF01520
&RSZ     SET   '&RCSZ'                                                  DTF01530
         ENDO                                                           DTF01540
         DO    '&RECSIZE'=''=0                                          DTF01550
&RSZ     SET   '&RECSIZE'                                               DTF01560
         ENDO                                                           DTF01570
&RCF     SET   '&RCFM'                                                  DTF01580
         DO    '&RECFORM'=''=0                                          DTF01590
&RCF     SET   '&RECFORM'                                               DTF01600
         ENDO                                                           DTF01610
         DO    '&RCF'=''                                                DTF01620
         PNOTE '*','RECORD FORMAT NOT SPECIFIED, FIXUNB ASSUMED'        DTF01630
&RCF     SET   'FIXUNB'                                                 DTF01640
         ENDO                                                           DTF01650
         DO    '&RCF'='UNDEF'                                           DTF01660
         DO    '&RSZ'(1,1)='('=0                                        DTF01670
         PNOTE 'P','RECSIZE REGISTER REQUIRED FOR RECFORM=UNDEF'        DTF01680
         GOTO  .RLB1                                                    DTF01690
         ENDO                                                           DTF01700
&RSZ     SET   0                                                        DTF01710
         DO    '&RCSZ'=''=0                                             DTF01720
&RSZ     SET   &RCSZ(1)                                                 DTF01730
         ENDO                                                           DTF01740
         DO    '&RECSIZE'=''=0                                          DTF01750
&RSZ     SET   &RECSIZE(1)                                              DTF01760
         ENDO                                                           DTF01770
         DO    (&RSZ<2)++(&RSZ>12)                                      DTF01780
         DO    (&RSZ=13)**('&SAVAREA'=''=0)                             DTF01790
&RSZ     SET   4096                                                     DTF01800
         GOTO  .RLB1                                                    DTF01810
         ENDO                                                           DTF01820
         PNOTE 'P','RECSIZE REGISTER INCORRECTLY SPECIFIED'             DTF01830
&RSZ     SET   0                                                        DTF01840
         GOTO  .RLB1                                                    DTF01850
         ENDO                                                           DTF01860
&RSZ     SET   20+4*(&RSZ)                                              DTF01870
         ENDO                                                           DTF01880
.RLB1    LABEL                                                          DTF01890
         DO    ('&WRK'='')**('&IRG'='')**('&RCF'(4,3)='BLK')            DTF01900
         PNOTE '*','WORKA OR IOREG NOT SPECIFIED FOR BLOCKED FILE'      DTF01910
         ENDO                                                           DTF01920
         DO    '&VBLD'=''=0                                             DTF01930
&VBL     SET   &VBLD(1)                                                 DTF01940
         ENDO                                                           DTF01950
         DO    '&VARBLD'=''=0                                           DTF01960
&VBL     SET   &VARBLD(1)                                               DTF01970
         ENDO                                                           DTF01980
&FB      SET   0+('&WRK'=''=0)+16*('&LAB'=''=0)                         DTF01990
&FB      SET   &FB+64*('&TYP'='OUTPUT')+32*('&TYP'='INPUT')             DTF02000
&FB      SET   &FB+96*('&TYP'='INOUT')                                  DTF02010
&N2      SET   ('&TYP'='OUTPUT')++('&TYP'='INOUT')                      DTF02020
&N3      SET   1*('&TYP'='INOUT')                                       DTF02030
&N4      SET   ('&TYP'='INPUT')++('&TYP'='INOUT')                       DTF02040
&N1      SET   'T'                                                      DTF02050
&N5      SET   16                                                       DTF02060
         CNOP  0,8                                                      DTF02070
         DO    ('&LABL'='')++('&LABL'>'Z999999')                        DTF02080
         PNOTE 'P','FILENAME UNDEFINED OR GREATER THAN 7 CHARACTERS'    DTF02090
         ENDO                                                           DTF02100
         ENTRY &LABL                                                    DTF02110
         DO    '&SEPASMB'='NO'=0                                        DTF02112
         ENTRY &LABL.C                                                  DTF02120
         ENTRY &LABL.E                                                  DTF02130
         ENDO                                                           DTF02132
&LABL    DC    XL4'00008048'            CCB                    DC$CCB   DTF02140
         DC    2F'0'                                                    DTF02150
         DC    A(*+48)                                                  DTF02160
         DC    3F'0'                                                    DTF02170
         DC    CL7'&LABL'               FILENAME            DC$NME      DTF02180
         DC    C' '                                                     DTF02190
&FG      SET   0                                                        DTF02200
&FG      SET   &FG+2                                                    DTF02210
         DC    Y(&FG)                   MODULE FLAGS           DC$MFLG  DTF02220
         DC    XL8'00'                  PUBS VOLS 1-4          DC$PUB   DTF02230
         DC    YL1(&N5)                 DTF TYPE CODE          DC$DTF   DTF02240
         DC    YL2(&FB)                 DTF REQUIREMENTS                DTF02250
         DC    XL1'0'                   FUNCTION CODE          DC$REQS  DTF02260
         DC    Y(0)                     ERROR FLAGS            DC$ERFLG DTF02270
         EXTRN DD$&N1.&N2.&N3.&N4                                       DTF02280
         DC    A(DD$&N1.&N2.&N3.&N4)    IOCS MODULE ADDRESS    DC$IOCS  DTF02290
&LABL.E  DC    YL1(0)                   ERROR CODE             DC$ERCD  DTF02300
         DC    AL3(0)                                          DC$ERIOC DTF02310
         DC    5F'0'                                                    DTF02320
&FG      SET   1                                                        DTF02330
         DC    XL1'&FG'            PCA COUNT                   DC$PCACT DTF02340
&FB      SET   ''                                                       DTF02350
         DO    '&ASCII'='YES'                                           DTF02360
         DO    '&SEPASMB'='NO'=0                                        DTF02362
         EXTRN DT$ETA                                                   DTF02370
         ENDO                                                           DTF02372
         DC    AL3(DT$ETA)              ASCII TRS.TABLE ADR    DC$TASC  DTF02380
         GOTO  .TAL1                                                    DTF02390
         ENDO                                                           DTF02400
         DC    XL1'0'                   FLAGS                  DC$TFLG  DTF02410
         DC    XL2'0'                                                   DTF02420
.TAL1    LABEL                                                          DTF02430
         DC    4H'0'                                                    DTF02440
         DC    YL1(1)                                          DC$PCA1  DTF02450
         DC    AL3(*+67)                                                DTF02460
&FB      SET   0                                                        DTF02470
         DO    ('&ASCII'=''=0)**('&ASCII'='YES'=0)                      DTF02480
         PNOTE '*','ASCII INCORRECTLY SPECIFIED, NO ASSUMED'            DTF02490
         GOTO  .TL1                                                     DTF02500
         ENDO                                                           DTF02510
&FB      SET   &FB+128*('&ASCII'='YES')                                 DTF02520
.TL1     LABEL                                                          DTF02530
         DO    ('&BKNO'=''=0)**('&BKNO'='YES'=0)                        DTF02540
         PNOTE '*','BKNO INCORRECTLY SPECIFIED, NO ASSUMED'             DTF02550
         GOTO  .TL2                                                     DTF02560
         ENDO                                                           DTF02570
&FB      SET   &FB+64*('&BKNO'='YES')                                   DTF02620
.TL2     LABEL                                                          DTF02630
         DO    ('&LENCHK'=''=0)**('&LENCHK'='YES'=0)                    DTF02640
         PNOTE '*','LENCHK INCORRECTLY SPECIFIED, NO ASSUMED'           DTF02650
         GOTO  .TL3                                                     DTF02660
         ENDO                                                           DTF02670
&FB      SET   &FB+32*('&LENCHK'='YES')                                 DTF02680
.TL3     LABEL                                                          DTF02690
         DO    ('&CKPTREC'=''=0)**('&CKPTREC'='YES'=0)                  DTF02700
         PNOTE '*','CKPTREC INCORRECTLY SPECIFIED, NO ASSUMED'          DTF02710
         GOTO  .TL4                                                     DTF02720
         ENDO                                                           DTF02730
&FB      SET   &FB+16*('&CKPTREC'='YES')                                DTF02740
.TL4     LABEL                                                          DTF02750
         DO    ('&TPMK'=''=0)**('&TPMARK'=''=0)                         DTF02760
         PNOTE '*','TPMARK AND TPMK SPECIFIED,TPMARK USED'              DTF02770
         ENDO                                                           DTF02780
         DO    ('&TPK'=''=0)**('&TPK'='NO'=0)                           DTF02790
         PNOTE '*','TPMARK/TPMK INCORRECTLY SPECIFIED,IGNORED'          DTF02800
         ENDO                                                           DTF02810
&FB      SET   &FB+8*('&TPK'='NO'=0)                                    DTF02820
         DO    ('&FIL'=''=0)**('&FIL'='STD'=0)**('&FIL'='NO'=0)**('&FILXDTF02830
               '='NSTD'=0)                                              DTF02840
         PNOTE '*','FILABL INCORRECTLY SPECIFIED, NO ASSUMED'           DTF02850
&FB      SET   &FB+4                    FILABL NOT SPECIFIED            DTF02860
         GOTO  .TL6                                                     DTF02870
         ENDO                                                           DTF02880
&FB      SET   &FB+4*(('&FIL'='')++('&FIL'='NO'))                       DTF02890
&FB      SET   &FB+2*('&FIL'='STD')                                     DTF02900
&FB      SET   &FB+1*('&FIL'='NSTD')                                    DTF02910
.TL6     LABEL                                                          DTF02920
         DO    ('&ASCII'='YES')**(('&FIL'='')++('&FIL'='NO')++('&FIL'='XDTF02930
               NSTD'))                                                  DTF02940
         PNOTE '*','INVALID FILABL(NSTD/NO) SPECIFIED FOR ASCII FILE'   DTF02950
         ENDO                                                           DTF02960
&TF1     SET   &FB                                                      DTF02970
&FB      SET   0                                                        DTF02980
         DO    ('&OPRW'=''=0)**('&OPRW'='NORWD'=0)                      DTF02990
         PNOTE '*','OPRW INCORRECTLY SPECIFIED, IGNORED'                DTF03000
         GOTO  .TL7                                                     DTF03010
         ENDO                                                           DTF03020
&FB      SET   &FB+128*('&OPRW'='NORWD')                                DTF03030
.TL7     LABEL                                                          DTF03040
         DO    ('&CLRW'=''=0)**('&CLRW'='RWD'=0)**('&CLRW'='NORWD'=0)   DTF03050
         PNOTE '*','CLRW INCORRECTLY SPECIFIED, IGNORED'                DTF03060
         GOTO  .TL8                                                     DTF03070
         ENDO                                                           DTF03080
&FB      SET   &FB+64*(('&CLRW'='RWD')**('&REWIND'=''))                 DTF03090
&FB      SET   &FB+32*(('&CLRW'='NORWD')**('&REWIND'=''))               DTF03100
.TL8     LABEL                                                          DTF03110
         DO    ('&REWIND'=''=0)**('&REWIND'='UNLOAD'=0)**('&REWIND'='NOXDTF03120
               RWD'=0)                                                  DTF03130
         PNOTE '*','REWIND INCORRECTLY SPECIFIED, IGNORED'              DTF03140
         GOTO  .TL9                                                     DTF03150
         ENDO                                                           DTF03160
&FB      SET   &FB+16*('&REWIND'='UNLOAD')                              DTF03170
&FB      SET   &FB+8*('&REWIND'='NORWD')                                DTF03180
.TL9     LABEL                                                          DTF03190
         DO    ('&TYP'='INOUT')**('&READ'='BACK')                       DTF03200
&TYP     SET   'INPUT'                 TYPE=INPUT                       DTF03210
         ENDO                                                           DTF03220
&RD      SET   '&READ'                                                  DTF03230
         DO    ('&TYP'='OUTPUT')**('&READ'='BACK')                      DTF03240
         PNOTE '*','READ INCORRECTLY SPECIFIED,FORWARD ASSUMED'         DTF03250
&FB      SET   &FB+4                   READ=FORWARD                     DTF03260
&RD      SET   'FORWARD'                                                DTF03270
         GOTO  .TL10                                                    DTF03280
         ENDO                                                           DTF03290
         DO    ('&READ'=''=0)**('&READ'='BACK'=0)**('&READ'='FORWARD'=0XDTF03300
               )                                                        DTF03310
         PNOTE '*','READ INCORRECTLY SPECIFIED, FORWARD ASSUMED'        DTF03320
&FB      SET   &FB+4                    READ=FORWARD                    DTF03330
&RD      SET   'FORWARD'                                                DTF03340
         GOTO  .TL10                                                    DTF03350
         ENDO                                                           DTF03360
&FB      SET   &FB+4*('&READ'='FORWARD')                                DTF03370
.TL10    LABEL                                                          DTF03380
&TF2     SET   &FB                                                      DTF03390
         DC    6F'0'                                                    DTF03400
&FG      SET   0+2*('&LAB'=''=0)+('&TRLBL'=''=0)                        DTF03410
&FG      SET   &FG+8*('&ERO'='SKIP')+4*('&ERO'='IGNORE')                DTF03420
         DC    YL1(&FG)                 FLAG 1                 DC$FG1   DTF03430
         DC    YL1(0)                   FLAG2                  DC$FG2   DTF03440
&FG      SET   0+128*(('&TYP'='OUTPUT')++('&TYP'='INOUT'))              DTF03450
&FG      SET   &FG+64*('&TYP'='INPUT')                                  DTF03460
&FG      SET   &FG+16*('&OPTION'='YES')                                 DTF03470
         DC    YL1(&FG)                 FLAG 3                 DC$FG3   DTF03480
         DC    XL1'00'                                         DC$FCS   DTF03490
         DC    A(*+36)                                                  DTF03500
         DC    A(0)                                            DC$RELOC DTF03510
         DO    '&SAVAREA'=''=0                                          DTF03520
         DO    '&SEPASMB'='NO'=0                                        DTF03522
         EXTRN &SAVAREA                                                 DTF03530
         ENDO                                                           DTF03532
         DC    A(&SAVAREA)              SAVE AREA           DC$SAV      DTF03540
         DC    A(0)                                         DC$SAVR     DTF03550
         GOTO  .L9                                                      DTF03560
         ENDO                                                           DTF03570
         DC    X'F0000000'              (NOT SPECIFIED)         DC$SAV  DTF03580
         DC    A(0)                                             DC$SAVR DTF03590
.L9      LABEL                                                          DTF03600
         DO    '&ERROR'=''                                              DTF03610
         PNOTE 'P','NO ERROR ROUTINE,ERRORS RETURN INLINE'              DTF03620
         DC    A(0)                     (NOT SPECIFIED)     DC$ERR      DTF03630
         ENDO                                                           DTF03640
         DO    '&ERROR'=''=0                                            DTF03650
         DO    '&SEPASMB'='NO'=0                                        DTF03652
         EXTRN &ERROR                                                   DTF03660
         ENDO                                                           DTF03662
         DC    A(&ERROR)                ERROR ADDRESS       DC$ERR      DTF03670
         ENDO                                                           DTF03680
&LABL.C  DC    A(0)                     ERROR FLAGS            DC$ERRF  DTF03690
         DO    '&LAB'=''=0                                              DTF03700
         DO    '&SEPASMB'='NO'=0                                        DTF03702
         EXTRN &LAB                                                     DTF03710
         ENDO                                                           DTF03712
         DC    A(&LAB)                  LABADDR ADDRESS     DC$LBL      DTF03720
         GOTO  .L11                                                     DTF03730
         ENDO                                                           DTF03740
         DC    A(0)                     (NOT SPECIFIED)     DC$LBL      DTF03750
.L11     LABEL                                                          DTF03760
         DC    A(0)                     (NOT SPECIFIED)        DD$SKAD  DTF03770
         DC    A(0)                     (NOT SPECIFIED)        DD$IDLOC DTF03780
         DC    A(1)                                                     DTF03790
         DC    YL1(&TF1)                FLAG1                  DC$TF^1  DTF03800
         DC    YL1(&TF2)                FLAG12                 DC$TFG2  DTF03810
&BUFO SET      0                                                        DTF03820
         DO    '&BUFOFF'=''                                             DTF03830
         DO    '&ASCII'='YES'                                           DTF03840
         PNOTE '*','BUFOFF NOT SPECIFIED FOR ASCII,0 ASSUMED'           DTF03850
         ENDO                                                           DTF03860
         DC    Y(0)                     BUFFER OFFSET                   DTF03870
         ENDO                                                           DTF03880
         DO    '&BUFOFF'=''=0                                           DTF03890
         DO    ('&ASCII'='YES')**(('&RCF'='VARUNB')++('&RCF'='VARBLK')) DTF03900
         DO    ('&TYP'='OUTPUT')++(('&TYP'='INOUT')**('&RD'='FORWARD')) DTF03910
         DO    (&BUFOFF=4=0)**(&BUFOFF=0=0)                             DTF03920
         PNOTE '*','BUFOFF INCORRECTLY SPECIFIED FOR ASCII,0 ASSUMED'   DTF03930
         DC    Y(0)                                                     DTF03940
         GOTO  .TAL2                                                    DTF03950
         ENDO                                                           DTF03960
         ENDO                                                           DTF03970
         ENDO                                                           DTF03980
         DC    Y(&BUFOFF)              BUFFER OFFSET                    DTF03990
&BUFO    SET   '&BUFOFF'                                                DTF04000
         ENDO                                                           DTF04010
.TAL2    LABEL                                                          DTF04020
         DC    A(0)                                                     DTF04030
         DC    XL1'01'                  PARTITION ID           DC$PID   DTF04040
         DC    AL3(1)                   EOD ID                 DC$EODID DTF04050
         DO    '&IA1'=''                                                DTF04060
         PNOTE 'P','IO AREA 1 REQUIRED FOR ALL FILES'                   DTF04070
         DC    A(0)                     (NOT SPECIFIED)     DC$A1       DTF04080
&IA1     SET   0                                                        DTF04090
         GOTO  .L6                                                      DTF04100
         ENDO                                                           DTF04110
         DO    '&SEPASMB'='NO'=0                                        DTF04112
         EXTRN &IA1                                                     DTF04120
         ENDO                                                           DTF04122
         DC    XL1'1'                   IOAREA1 ADDRESS        DC$A1    DTF04130
         DC    AL3(&IA1)                                                DTF04140
.L6      LABEL                                                          DTF04150
         DO    '&BKS'=''                                                DTF04160
         PNOTE '*','BLKSIZE NOT SPECIFIED, 256 ASSUMED'                 DTF04170
&BKS     SET   256                                                      DTF04180
         ENDO                                                           DTF04190
         DO    ('&TYP'='OUTPUT'=0)**('&LAB'=''=0)**(&BKS>79=0)          DTF04200
         PNOTE '*','CAUTION--IOAREA1 MUST BE MIN 80 BYTES FOR LABELS'   DTF04210
         ENDO                                                           DTF04220
         DC    Y(&BKS)                  BLOCK SIZE          DC$BKS      DTF04230
         DC    XL1'00'                                                  DTF04240
         DC    XL1'01'                                                  DTF04250
         DC    Y(0)                                                     DTF04260
         DC    Y(100)                                                   DTF04270
         DC    Y(100)                                                   DTF04280
         DC    Y(0)                                                     DTF04290
&FG      SET   8                                                        DTF04300
         DO    ('&TYP'='INPUT'=0)                                       DTF04310
&FG      SET   &FG+128                                                  DTF04320
         ENDO                                                           DTF04330
&FG      SET   &FG+32                                                   DTF04340
         DC    YL1(&FG)                 PARTITION FLAG         DC$PFG1  DTF04350
         DO    '&EOF'=''                                                DTF04360
         DO    ('&TYP'='INPUT')++('&TYP'='INOUT')                       DTF04370
         PNOTE 'P','EOFADDR REQUIRED BUT NOT SPECIFIED'                 DTF04380
         ENDO                                                           DTF04390
         DC    AL3(0)                   (NOT SPECIFIED)        DC$EOD   DTF04400
         GOTO  .L5                                                      DTF04410
         ENDO                                                           DTF04420
         DO    '&SEPASMB'='NO'=0                                        DTF04422
         EXTRN &EOF                                                     DTF04430
         ENDO                                                           DTF04432
         DC    AL3(&EOF)                EOF/EOD ADDRESS        DC$EOD   DTF04440
.L5      LABEL                                                          DTF04450
         DC    A(0)                                            DD$KYL   DTF04460
&REGS    SET   &BKS                                                     DTF04470
&FG      SET   1                                                        DTF04480
         DO    '&RCF'='FIXUNB'                                          DTF04490
         GOTO  .L7                                                      DTF04500
         ENDO                                                           DTF04510
         DO    '&RCF'='FIXBLK'                                          DTF04520
         DO    (&RSZ+&BUFO>&REGS)++(&REGS-&BUFO=((&REGS-&BUFO)/&RSZ)*&RXDTF04530
               SZ=0)                                                    DTF04540
         PNOTE '*','BLKSIZE LESS THAN OR NOT MULTIPLE OF RECSIZE'       DTF04550
&RSZ     SET   &REGS                                                    DTF04560
         ENDO                                                           DTF04570
&FG      SET   &REGS/&RSZ                                               DTF04580
&REGS    SET   &RSZ                                                     DTF04590
         ENDO                                                           DTF04600
         DO    '&RCF'='UNDEF'                                           DTF04610
&REGS    SET   &RSZ                                                     DTF04620
         ENDO                                                           DTF04630
.L7      LABEL                                                          DTF04640
         DC    Y(&REGS)                 RECSIZE             DC$REC      DTF04650
         DC    Y(&BKS)                                         DC$SUBF  DTF04660
         DO    ('&ASCII'='YES')**((&BKS>9999)++(&REGS>9999))            DTF04670
         PNOTE 'P','INVALID BKSZ/RCSZ(>9999) SPECIFIED FOR ASCII FILE'  DTF04680
         ENDO                                                           DTF04690
&FC      SET   0+(128*('&WRK'='YES')+64*('&IA2'=''=0)+16*('&IRG'=''=0)+1DTF04700
               8*(('&VBL'=''=0)**('&RCF'='VARBLK')))                    DTF04710
         DC    YL1(&FC)                 FLAG 4                 DC$FG4   DTF04720
         DC    XL1'00'                  FLAG 5                 DC$FG5   DTF04730
         DO    '&RCF'='FIXBLK'                                          DTF04740
&REGS    SET   X'1000'                                                  DTF04750
         GOTO  .L4                                                      DTF04760
         ENDO                                                           DTF04770
         DO    '&RCF'='VARBLK'                                          DTF04780
&REGS    SET   X'0800'                                                  DTF04790
         GOTO  .L4                                                      DTF04800
         ENDO                                                           DTF04810
         DO    '&RCF'='FIXUNB'                                          DTF04820
&REGS    SET   X'0400'                                                  DTF04830
         GOTO  .L4                                                      DTF04840
         ENDO                                                           DTF04850
         DO    '&RCF'='VARUNB'                                          DTF04860
&REGS    SET   X'0200'                                                  DTF04870
         GOTO  .L4                                                      DTF04880
         ENDO                                                           DTF04890
         DO    '&RCF'='UNDEF'                                           DTF04900
&REGS    SET   X'0100'                                                  DTF04910
         GOTO  .L4                                                      DTF04920
         ENDO                                                           DTF04930
         PNOTE '*','RECORD FORMAT INCORRECTLY SPECIFIED,FIXUNB ASSUMED' DTF04940
&REGS    SET   X'0400'                                                  DTF04950
.L4      LABEL                                                          DTF04960
         DC    Y(&REGS)                 RECORD FORMAT          DC$RFM   DTF04970
         DC    A(0)                     RESERVED               DC$TAB   DTF04980
         DO    '&IA2'=''                                                DTF04990
         DC    XL1'1'                   (NOT SPECIFIED)        DC$A2    DTF05000
         DC    AL3(&IA1)                                                DTF05010
         ENDO                                                           DTF05020
         DO    '&IA2'=''=0                                              DTF05030
         DO    '&SEPASMB'='NO'=0                                        DTF05032
         EXTRN &IA2                                                     DTF05040
         ENDO                                                           DTF05042
         DC    XL1'1'                   IOAREA2 ADDRESS        DC$A2    DTF05050
         DC    AL3(&IA2)                                                DTF05060
         ENDO                                                           DTF05070
         DC    Y(0)                     CURRENT DISPLACEMENT   DS$CUR   DTF05080
         DC    Y(0)                     SIZE OF LAST RECORD    DS$LST   DTF05090
         DO    '&IRG'=''                                                DTF05100
&REGS    SET   0                                                        DTF05110
         GOTO  .L8                                                      DTF05120
         ENDO                                                           DTF05130
         DO    (&IRG<2)++(&IRG>12)                                      DTF05140
         DO    (&IRG=13)**('&SAVAREA'=''=0)                             DTF05150
&REGS    SET   4096                                                     DTF05160
         GOTO  .L8                                                      DTF05170
         ENDO                                                           DTF05180
         PNOTE '*','IOREG INCORRECTLY SPECIFIED, IGNORED'               DTF05190
&REGS    SET   0                                                        DTF05200
         GOTO  .L8                                                      DTF05210
         ENDO                                                           DTF05220
&REGS    SET   20+4*&IRG                                                DTF05230
.L8      LABEL                                                          DTF05240
         DC    Y(&REGS)                 IOREG REGISTER         DS$IRG   DTF05250
         DO    '&VBL'=''                                                DTF05260
&REGS    SET   0                                                        DTF05270
         GOTO  .L3                                                      DTF05280
         ENDO                                                           DTF05290
         DO    (&VBL>12)++(&VBL<2)                                      DTF05300
         DO    (&VBL=13)**('&SAVAREA'=''=0)                             DTF05310
&REGS    SET   4096                                                     DTF05320
         GOTO  .L3                                                      DTF05330
         ENDO                                                           DTF05340
         PNOTE '*','INVALID REGISTER SPECIFIED FOR VARBLD, IGNORED'     DTF05350
&REGS    SET   0                                                        DTF05360
         GOTO  .L3                                                      DTF05370
         ENDO                                                           DTF05380
&REGS    SET   20+4*(&VBL)                                              DTF05390
.L3      LABEL                                                          DTF05400
         DC    Y(&REGS)                 VARBLD REGISTER     DC$VBL      DTF05410
         DC    A(&FG)                   RECORDS/BLK                     DTF05420
         DC    A(0)                     REC/BLK FOR LAST BLK   DC$LRPB  DTF05430
         DC    A(1)                                            DD$HIEOD DTF05440
         DC    A(0)                                                     DTF05450
         DC    Y(0)                                                     DTF05460
         END                                                            DTF05470
