         PROC  &P,0,&REG=                                               00000100
FUNTABDS NAME  1                                                        00000200
.*  THIS PROC GENERATES THE FORTRAN UNIT TABLE DSECT.                   00000300
.*  IT HAS ONE KEYWORD PARAMETER 'REG' WHICH INDICATES THE VALUE        00000400
.*  OF THE BASE REGISTER FOR THE DSECT. IF 'REG' IS NOT SPECIFIED,      00000500
.*  THE USING STATEMENT COVERING THE DSECT IS NOT GENERATED.            00000600
         EJECT                                                          00000700
FUNTABD  DSECT                                                          00000800
         DO    '&REG'=''=0                                              00000900
         USING FUNTABD,&REG                                             00001000
         GOTO  .FUNTBD1                                                 00001100
         ENDO                                                           00001200
         USING FUNTABD,2                                                00001300
.FUNTBD1 LABEL                                                          00001400
*                                                                       00001500
*    FORTRAN UNIT TABLE SLOT FOR DMS FILES                              00001600
*    THIS DSECT DEFINES ONE IOCS FILE SLOT WITHIN THE                   00001700
*    FORTRAN UNIT TABLE                                                 00001800
*                                                                       00001900
*                                                                       00002000
         DS    0F                                                       00002100
*********************************************************************** 00002200
RUNFLGS  DS    X'00'                    RUN TIME FLAGS                  00002300
*********************************************************************** 00002400
*                                                                       00002500
RFENDLST EQU   X'80'                    END OF FUNTAB                   00002600
*                                                                       00002700
RFCLOSE  EQU   X'40'                     UNIT CLOSE (BIT = 0)           00002800
RFOPEN   EQU   X'40'                     UNIT OPEN  (BIT = 1)           00002900
*                                                                       00003000
RFHANG   EQU   X'20'                     PRINT LINE HANGING ON UNIT     00003100
RFDEF    EQU   X'10'                     DEFINE INST. ISSUED FOR UNIT   00003200
*                                                                       00003300
RFIN     EQU   X'08'                     INPUT UNIT (BIT = 0)           00003400
RFOUT    EQU   X'08'                     OUTPUT UNIT (BIT = 1)          00003500
RFEOF    EQU   X'04'                     UNIT END OF FILE HIT           00003600
RFWAITF  EQU   X'02'                   DAM WAITF REQUIRED FOR           00003700
*                                       OUTSTANDING READ ORDER          00003800
RFREWND  EQU   X'01'                    DELAYED REWIND ORDER ON UNIT    00003900
*********************************************************************** 00004000
LASTCMD  DS    X'00'                    LAST COMMAND ISSUED TO UNIT     00004100
*********************************************************************** 00004200
*                                                                       00004300
LCNOPREV EQU   0                        NO PREVIOUS COMMAND             00004400
LCREAD   EQU   4                        READ                            00004500
LCWRITE  EQU   8                        WRITE                           00004600
LCENDFLE EQU   12                       ENDFILE                         00004700
LCBCKSP  EQU   16                       BACKSPACE                       00004800
LCREWND  EQU   20                       REWIND                          00004900
LCEOF    EQU   24                       EOF HIT (FILE CLOSED)           00005000
*                                                                       00005100
*********************************************************************** 00005200
UNIT#    DS    H                        UNIT NUMBER                     00005300
*********************************************************************** 00005400
*                                                                       00005500
*********************************************************************** 00005600
UNITTYPE DS    X'00'                    UNIT DTF TYPE AND CLASS         00005700
*********************************************************************** 00005800
*                                       DEVICE CLASS - BITS 2**7-2**4   00005900
*                                       DEVICE - BITS 2**3-2**0         00006000
*                                                                       00006100
UTUR     EQU   X'80'                     UNIT RECORD CLASS              00006200
UTGETCS  EQU   X'81'                    SYSCARD (GETCS UNIT)            00006300
UTPRINT  EQU   X'82'                     PRINTER                        00006400
UTCARD   EQU   X'83'                     CARD                           00006500
UTSAM    EQU   X'40'                     SAM NON-UNIT RECORD CLASS      00006600
UTTAPE   EQU   X'41'                     TAPE                           00006700
UTSDISC  EQU   X'42'                     SEQUENTIAL ACCESS DISC         00006800
UTDAM    EQU   X'20'                     DAM NON-UNIT RECORD CLASS      00006900
UTDISC   EQU   X'21'                     DIRECT ACCESS DISC             00007000
*                                                                       00007100
*********************************************************************** 00007200
UNTOPTN1 DS    X'00'                     UNIT OPTION FLAGS (BYTE 1)     00007300
*********************************************************************** 00007400
UOSEPDTF EQU   X'80'                     SEPARATE DTF                   00007500
UOEQU    EQU   X'40'                     EQUATED UNIT (MULTDEF)         00007600
UOREREAD EQU   X'20'                     REREAD ON UNIT                 00007700
UORERD   EQU   X'10'                     REREAD UNIT                    00007800
UOPOOL   EQU   X'08'                     UNIT BUFFER'S POOLED (BUFPOOL) 00007900
UOGETCS  EQU   X'04'                     GETCS UNIT                     00008000
UOSEQ    EQU   X'02'                     SEQUENTIAL ACCESS UNIT         00008100
UODIRECT EQU   X'01'                     DIRECT ACCESS UNIT             00008200
*                                                                       00008300
*********************************************************************** 00008400
UNTOPTN2 DS    X'00'                     UNIT OPTION FLAGS (BYTE 2)     00008500
*********************************************************************** 00008600
*                                                                       00008700
UOWORKA  EQU   X'80'                     WORKAREA SPECIFIED             00008800
*                                                                       00008900
UOIN     EQU   X'40'                     TYPEFILE IS INPUT              00009000
UOOUT    EQU   X'20'                     TYPEFILE IS OUTPUT             00009100
UOINOUT  EQU   X'60'                     TYPEFILE IS INOUT              00009200
UODIAG   EQU   X'10'                     DIAGNOSTIC UNIT                00009300
*                                                                       00009400
UOVAR    EQU   X'08'                    VARIABLE LENGTH RECORDS (BIT=1) 00009500
UOFIX    EQU   X'08'                    FIXED LENGTH RECORDS (BIT=0)    00009600
*                                                                       00009700
UOASCII  EQU   X'04'                    ASCII MODE FILE                 00009800
UOPRNTR  EQU   X'02'                    PRNTR FILE (DEFAULT MSG FILE)   00009900
UORECERR EQU   X'01'                    ERROR RECORD TO BE REREAD       00010000
*********************************************************************** 00010100
RUNFLGSA DS    X'00'                    RUN TIME FLAGS                  00010200
UNITDEAD EQU   X'80'                    UNIT IS DEAD                    00010300
*                                                                       00010400
*********************************************************************** 00010500
*                                                                       00010600
*********************************************************************** 00010700
RECSIZE  DC    A(0)                     MAX RECORD SIZE FOR UNIT        00010800
*********************************************************************** 00010900
*                                                                       00011000
*********************************************************************** 00011100
RECADDR  DC    A(0)                     ADDRESS OF I/O RECORD           00011200
*                                        WHEN IOREG IS SPECIFIED        00011300
*                                        OR                             00011400
WKAADDR  EQU   RECADDR,4                WORKAREA ADDRESS WHEN           00011500
*                                        WORKA=YES IS SPECIFIED         00011600
*********************************************************************** 00011700
*                                                                       00011800
*********************************************************************** 00011900
DTFADDR  DC    A(0)                      UNIT'S DTF ADDRESS             00012000
*                                       OR                              00012100
EQUADDR  EQU   DTFADDR,4               ORIGINAL SLOT ADDRESS FOR        00012200
*                                       FMULTDEF UNIT NUMBER            00012300
*                                       OR                              00012400
GETCSBLK EQU   DTFADDR,4                NUMBER OF RECORDS IN GETCS BLK  00012500
*********************************************************************** 00012600
*                                                                       00012700
*********************************************************************** 00012800
*********************************************************************** 00012900
*********************************************************************** 00013000
VARADDR  DS    0F                       ASSOCIATED VARIABLE INFO        00013100
VARINDEX DC    X'00'                    ASSOCIATED VARIABLE'S TYPE      00013200
*                                       INDEX                           00013300
ASSOCVAR DC    AL3(0)                   ADDRESS OF ASSOCIATED VARIABLE  00013400
**********************************************************************  00013500
         ORG   VARADDR                  REDEFINE PREVIOUS AREA          00013600
**********************************************************************  00013700
GETCSIO1 DC    A(0)                     GETCS IOAREA ADDRESS            00013800
*********************************************************************** 00013900
         ORG   VARADDR                  REDEFINES PREVIOUS AREA         00014000
*********************************************************************** 00014100
ERRRECCT DC    A(0)                     NUMBER OF ERROR RECORDS TO SKIP 00014200
*                                       (SAM TAPE OR DISC ONLY)         00014300
*********************************************************************** 00014400
         ORG   VARADDR                  REDEFINES PREVIOUS AREA         00014500
*********************************************************************** 00014600
PRTRECLT DC    A(0)                     DELAYED PRINT LINE RECORD       00014700
*                                       LENGTH                          00014800
*********************************************************************** 00014900
*********************************************************************** 00015000
*********************************************************************** 00015100
*                                                                       00015200
*********************************************************************** 00015300
NUMREC   DC    A(0)                     NUMBER OF RECORDS IN DAM FILE   00015400
*********************************************************************** 00015500
         ORG   NUMREC                   REDEFINES PREVIOUS AREA         00015600
*********************************************************************** 00015700
BUFRECCT DC    A(0)                     NUMBER OF RECORDS REMAINING     00015800
*                                       IN SYSCARD BUFFER               00015900
*********************************************************************** 00016000
         ORG   NUMREC                   REDEFINES PREVIOUS AREA         00016100
*********************************************************************** 00016200
BLKCNT   DC    A(0)                     TAPE FILE BLOCK COUNT WHEN      00016300
*                                       CLOSED WITH NO REWIND           00016400
*********************************************************************** 00016500
*                                                                       00016600
FUNTABLT EQU   *-FUNTABD                LENGTH OF FUNTAB SLOT           00016700
*********************************************************************** 00016800
         END                                                            00016900
