*DECK XFILE 
          IDENT  XFILE
 XFILE    TITLE  XFILE - USER CALLABLE MAIN SUBROUTINE
* 
**    XFILE - USER CALLABLE SUBROUTINE TO SET UP FILE AREA
* 
*         INPUT  -  A1 = STARTING ADDRESS OF PARAMETER LIST 
*                   X1 = FIRST PARAMETER DESCRIPTOR 
* 
*         OUTPUT -  B1 = 1
*                   X6 = STATUS RETURN CODE (NORMALIZED FLOATING POINT) 
*                   X7 = 0
* 
*         PRESERVED  --, --, --, --, --, --, --, -- 
*                    A0, --, --, --, --, --, --, -- 
*                        --, --, --, --, --, --, -- 
* 
          LIST   X
*CALL COM2
****
*     XFILE FORCES THE TEST AND COMPARE DRIVERS INTO THE LOAD, BY 
*     REFERENCING THEIR ENTRY POINTS.  THIS IS THE ONLY PLACE SUCH
*     REFERENCES ARE MADE.  SEE THE  XF.PTR  TABLE. 
* 
* 
****
          SPACE  4
 TC.XFIL  VFD    42/5HXFILE,18/XFILE  TRACEBACK WORD
 XF.XIT   NX6    X5          EXIT CLEANUP 
          SX7    B0 
* 
 XFILE    JP     400000B+*   ENTRY POINT
 +        SX7    TC.XFIL     SAVE TRACEBACK INFO
          SB1    1
          SA7    T.ENTRY
          ZR     X1,XF.E1    ERROR NO PARAMETERS
          BX6    X1 
          MX0    60-6 
          LX1    60-24       CHECK TYPE 
          BX2    -X0*X1      TYPE 
          ZR     X2,XF.1     JP NO TYPE (FORTRAN) 
          SX2    X2-44B 
          ZR     X2,XF.5     JP FILE (COBOL)
          EQ     XF.E2       ERROR, NOT A FILE NAME 
* 
 XF.1     MX1    1           -VAR- PARAMETER BIT
          BX1    X1+X6
          RJ     =YGETFIT.
          SX6    X1          (X6) = FIT ADDRESS 
          SB1    1           RESTORE B1 
          MX0    60-6        RESTORE X0 
* 
* GET WSA PARAMETER 
* 
 XF.5     SA1    A1+B1
          ZR     X1,XF.E4    ERROR, NO WSA
          SB7    X1          HOLD WSA 
          LX1    60-24
          SB4    B1                SIZE OF WSA (DEFAULT FORTRAN)
          BX2    -X0*X1      GET TYPE FIELD 
          ZR     X2,XF.7     JP NO TYPE (FTN) 
          SX2    X2-40B 
          NG     X2,XF.E5    NOT A DATA TYPE
          SX2    X2-4B
          ZR     X2,XF.E5 
          LX1    24+60-30 
          BX2    -X0*X1      BCP FIELD
          NZ     X2,XF.E6     ERROR, NOT ALIGNED
          LX1    30+60-36 
          SX5    X1          SIZE IN (6-BIT) CHARACTERS 
          LX1    36-21             RT JUST CLASS
          MX4    57 
          BX1       -X4*X1              CLASS ISOLATED                  0010   5
          SX4    X1-2 
          NZ     X4,XF.6           BR IF CLASS NON-NUMERIC
          MX4    51 
          BX5    -X4*X5            MASK SZ TO 9 BITS
 XF.6     IX5       X5/X4,10            CONVERT TO WORDS                0010   7
          SB4    X5          SAVE DEFAULT SIZE
* 
* GET FILE PARAMETER POINTER
* 
 XF.7     SA1    A1+B1
          ZR     X1,XF.E7    ERROR, NO FILE STRING
          SX7    X1 
          SA5    C.MAXSZ     MAXIMUM SIZE OF AREA 
          LX1    60-24
          BX2    -X0*X1      TYPE 
          ZR     X2,XF.9     JP NO TYPE (FTN) 
          SX2    X2-40B 
          NG     X2,XF.E5    NOT A DATA ITEM
          SX2    X2-4B
          ZR     X2,XF.E5 
          LX1    24+60-30 
          BX2    -X0*X1      BCP
          LX2    18+1 
          IX7    X2+X7       ADD BCP TO POINTER 
          LX2    1
          IX7    X2+X7
          LX1    30+60-36 
          SX5    X1          SIZE IN (6-BIT) CHARACTERS 
          LX1    36-21             RT JUST CLASS
          MX4    57 
          BX1       -X4*X1              CLASS ISOLATED                  0010   9
          SX4    X1-2 
          NZ     X4,XF.8           BR IF CLASS NON-NUMERIC
          MX4    51 
          BX5    -X4*X5            MSK SZ TO 9 BITS 
 XF.8     IX4    X5+X5       CONVERT SIZE TO BITS 
          LX5    2
          IX5    X5+X4
 XF.9     LX5    36          ADD SIZE FIELD TO POINTER
          IX1    X5+X7
* 
* LOOK FOR SIZE PARAMETER 
* 
          SA2    A1+B1
          ZR     X2,XF.12    JP NOT SPECIFIED 
          SA3    X2 
          LX2    60-24
          BX4    -X0*X2      CHECK TYPE 
          ZR     X4,XF.10    JP NO TYPE (FORTRAN) 
          LX2    24-18
          BX4    -X0*X2 
          SX4    X4-24B      CHECK FOR COMP-1 
          NZ     X4,XF.E8    JP NO (ERROR)
 XF.10    UX3    X3,B4        YES 
          SB5    B4+1777B    CHECK FOR INTEGER
          ZR     B5,XF.11 
          LX3    X3,B4       NOMINAL SHIFT TO INTEGERIZE
 XF.11    SB4    X3          SAVE SIZE
* 
* START CHECKING AND PROCESS FILE STRING
* 
 XF.12    SB3    B4-6        MUST HAVE AT LEAST 6 WORDS 
          NG     B3,XF.E9     NOT ENOUGH SPACE
          SA6    B7          SAVE FIT ADDRESS 
          SX7    B0 
          SB3    B4-B1
 XF.13    SA7    B7+B3       ZERO THE SUPPLIED AREA 
          SB3    B3-B1
          GE     B3,B1,XF.13
* 
          SB6    XF.14       START SCAN OF FILE STRING
          EQ     NNBL 
 XF.14    SX6    X6-1R( 
          NZ     X6,XF.E10   ERROR, NO LEFT PAREN 
* 
 XF.15    SB6    XF.16       PICK UP KEYWORD
          SX5    B0 
          EQ     NNBL 
 XF.16    NG     X6,XF.E11
          SX0    X6-1RZ-1    CHECK FOR ALPHABETIC 
          PL     X0,XF.17     NO
          LX5    6           YES, ADD TO KEYWORD
          IX5    X5+X6
          EQ     NNBL 
* 
 XF.17    SX0    X6-1R=      CHECK FOR SEPARATOR
          SA2    XF.KTAB     SEARCH TABLE 
          NZ     X0,XF.E12   ILLEGAL SEPARATOR
 XF.18    ZR     X2,XF.E13
          SB3    X2 
          AX2    18 
          BX2    X2-X5
          ZR     X2,XF.19    FOUND IT 
          SA2    A2+B1        NO, GET NEXT
          EQ     XF.18
 XF.19    JP     B3          GO TO PROCESS KEYWORD
* 
* 
 XF.FT    SB6    XF.20       FILE TYPE
          EQ     NNBL 
 XF.20    SB3    X6-1RT       =TAPE 
          ZR     B3,XF.21 
          SB3    X6-1RP       =PRINT
          ZR     B3,XF.21 
          SB3    X6-1RC       =CARD 
          NZ     B3,XF.E14   INVALID
 XF.21    SA2    B7+W.FTYP   STORE IT 
          LX6    S.FTYP 
          BX7    X2+X6
          AX2    S.FTYP 
          SX2    X2 
          NZ     X2,XF.E15   DOUBLY SPECIFIED 
          SA7    A2 
          EQ     XF.COM      LOOK FOR COMMA OR )
* 
 XF.USE   SB6    XF.22       USAGE
          EQ     NNBL 
 XF.22    SB3    X6-1RR       =READ 
          ZR     B3,XF.23 
          SB3    X6-1RW       =WRITE
          NZ     B3,XF.E14   INVALID
 XF.23    SA2    B7          STORE IT 
          LX6    60-6 
          BX7    X2+X6
          AX2    60-6 
          NZ     X2,XF.E15   DOUBLY SPECIFIED 
          SA7    A2 
          EQ     XF.COM      LOOK FOR COMMA OR )
* 
 XF.RECF  SB6    XF.24       RECFM
          EQ     NNBL 
 XF.24    SB3    X6-1RF       =F
          ZR     B3,XF.25 
          SB3    X6-1RV+1     =V
          EQ     B3,B1,XF.25
          SB3    X6-1RU+2     =U
          SB5    B1+B1
          NE     B3,B5,XF.E14  INVALID
 XF.25    SA5    B7+W.TPAR
          SX7    B3+B1
          SX4    X5 
          LX7    2
          NZ     X4,XF.E15   DOUBLY DEFINED 
          BX7    X5+X7
          SA7    A5 
* 
          SB6    XF.26       RECFM, GET B OR S MODIFIERS
          EQ     NNBL 
 XF.26    SB3    X6-1RB       =B
          ZR     B3,XF.27 
          SB3    X6-1RS+1     =S
          NE     B3,B1,XF.COMA  NOT B OR S, CHECK FOR COMMA OR )
 XF.27    SA5    A5 
          SX7    B3+B1
          BX4    X5*X7
          NZ     X4,XF.E14   INVALID, SS OR BB
          BX7    X5+X7
          SA7    A5 
          EQ     NNBL        GET NEXT MODIFIER
* 
 XF.BLKS  SB6    XF.28       BLKSIZE
          EQ     NNBL 
 XF.28    SB6    XF.281 
          EQ     GETINT 
 XF.281   ZR     X5,XF.E14   INVALID (ZERO) 
          SA2    B7+W.TPAR
          LX5    S.BLKSZ
          BX7    X2+X5
          AX2    S.BLKSZ
          SX2    X2 
          NZ     X2,XF.E15   DOUBLY SPECIFIED 
          LX5    60-S.BLKSZ 
          AX5    17 
          NZ     X5,XF.E14   INVALID (TOO BIG)
          SA7    A2 
          EQ     XF.COMA     CHECK FOR COMMA OR ) 
* 
 XF.LREC  SB6    XF.29       LRECL
          EQ     NNBL 
 XF.29    SB6    XF.291 
          EQ     GETINT 
 XF.291   ZR     X5,XF.E14   INVALID (ZERO) 
          SA2    B7+W.TPAR
          LX5    S.LRECL
          BX7    X2+X5
          AX2    S.LRECL
          SX2    X2 
          NZ     X2,XF.E15   DOUBLY SPECIFIED 
          LX5    60-S.LRECL 
          AX5    17 
          NZ     X5,XF.E14   INVALID (TOO BIG)
          SA7    A2 
          EQ     XF.COMA     CHECK FOR COMMA OR ) 
* 
 XF.CODE  SB6    XF.30       CODE 
          EQ     NNBL 
 XF.30    SB3    X6-1RA       =ASCII
          ZR     B3,XF.31 
          SB3    X6-1RC       =EBCDIC 
          NZ     B3,XF.E14   INVALID
 XF.31    SA2    B7+W.XSET
          LX6    S.XSET 
          BX7    X2+X6
          AX2    S.XSET 
          MX0    60-6 
          BX2    -X0*X2 
          NZ     X2,XF.E15   DOUBLY DEFINED 
          SA7    A2 
          EQ     XF.COM      LOOK FOR COMMA OR )
* 
 XF.FMT   SB6    XF.32       FMT
          EQ     NNBL 
 XF.32    SB3    X6-1RA       =COL 1 CODE 
          ZR     B3,XF.33 
          SB3    X6-1R1       =1,2,3 SPACE
          NG     B3,XF.E14   INVALID
          SB3    X6-1R3 
          GT     B3,B0,XF.E14  INVALID
 XF.33    SA2    B7+W.STATUS  SAVE HERE TEMPORARILY 
          NZ     X2,XF.E15   DOUBLY DEFINED 
          SA6    A2 
          EQ     XF.COM      LOOK FOR COMMA OR )
* 
* 
 XF.COM   SB6    XF.COMA     LOOK FOR COMMA OR )
          EQ     NNBL 
 XF.COMA  NG     X6,XF.E11   RAN OFF END OF STRING
          SB3    X6-1R, 
          ZR     B3,XF.15    GO AROUND AGAIN
          SB3    X6-1R) 
          NZ     B3,XF.E14   PREVIOUS PARAMETER IS INVALID
* 
* CHECK EVERYTHING FOR CONSISTENCY
* 
          SA2    B7          CHECK READ/WRITE USAGE 
          SA3    B7+W.FTYP   CHECK FILE TYPE
          SX7    X2 
          AX2    60-12
          LX3    60-S.FTYP
          ZR     X2,XF.E17
          SX4    X3          =TYPE
          SX5    X2-100B*1RR  CHECK USE READ
          ZR     X4,XF.E18
          ZR     X5,XF.34 
          MX0    1           USE = WRITE
          BX7    X0+X7       FIT + READ-WRITE BIT 
 XF.34    IX5    X4+X2       USE-TYPE, FIND POINTERS
          SA2    XF.PTR 
          MX0    60-12
 XF.35    ZR     X2,XF.E16   USAGE/TYPE NOT ALLOWED 
          LX2    12 
          BX3    -X0*X2      GET USAGE
          BX3    X3-X5
          ZR     X3,XF.36    FOUND IT 
          SA2    A2+B1        NOT FOUND, TRY NEXT 
          EQ     XF.35
* 
 XF.36    MX0    60-18
          LX2    18 
          BX3    -X0*X2      =TEST POINTER
          LX2    30 
          BX2    -X0*X2      =CONV POINTER
          LX3    S.TST
          BX7    X7+X3
          LX2    S.CON
          BX7    X7+X2
          SA7    B7          STORE POINTER WORD (COMPLETE)
* 
          SB3    X4-1RT      CHECK FOR TAPE FILES 
          ZR     B3,XF.40    JP YES 
          SA2    B7+W.FTYP    NO
          SA3    B7+W.TPAR
          MX0    60-6 
          LX2    60-S.XSET
          NZ     X3,XF.E16   ERROR IF TAPE PARAMS SPECIFIED 
          BX5    -X0*X2 
          LX2    S.XSET 
          NZ     X5,XF.E16   ERROR, TAPE PARAM (CODE) SPECIFIED 
          SB3    X4-1RC      CHECK FOR CARD FILE
          SA3    B7+W.STATUS
          ZR     B3,XF.38    JP YES 
          NZ     X3,XF.37     NO, PRINT FILE
          SX3    1RA         SET DEFAULT PRINT FORMAT 
 XF.37    LX3    S.XSET 
          SB5    LW.PRINT+4  AREA SIZE FOR PRINTING 
          BX2    X2+X3
          EQ     XF.39
 XF.38    NZ     X3,XF.E16   CARD FILE, ERROR IF (FMT) SPECIFIED
          SB5    LW.CARD+4   AREA SIZE FOR CARD 
* 
 XF.39    SX7    B7+4        CARD AND PRINT, SET BUFFER AND STATUS
          SX6    X7 
          LX7    18 
          BX6    X2+X6
          IX7    X6+X7
 XF.OUT   SA7    A2          BUFFER POINTERS
          SX6    -4 
          PX6    X6,B0
          NX6    X6 
          SA6    B7+W.STATUS  STATUS
          SX5    B0 
          GE     B4,B5,XF.XIT  EXIT 
          EQ     XF.E9       ERROR, INSUFFICIENT BUFFER AREA
* 
* TAPE CODE 
* 
 XF.40    SA2    B7+W.XSET   CHECK TAPE CODE
          SA3    B7+W.STATUS
          MX0    60-6 
          LX2    60-S.XSET
          NZ     X3,XF.E16   ERROR, FMT SPECIFIED 
          BX4    -X0*X2 
          NZ     X4,XF.41    JP CODE SPECIFIED
          SX4    1R"CODE"     USE DEFAULT CODE
          BX2    X2+X4
 XF.41    SA3    B7+W.TPAR
          LX2    S.XSET 
          SX5    X3          RECFM
          LX3    60-S.LRECL 
          SX4    X3          LRECL
          LX3    S.LRECL+60-S.BLKSZ 
          SX3    X3          BLKSIZE
* 
          ZR     X5,XF.E19   ERROR, RECFM NOT SPECIFIED 
          SB3    X3-32760     MAX BLOCK 
          ZR     X3,XF.E20   ERROR, BLKSIZE NOT SPECIFIED 
          GT     B3,B0,XF.E21  ERROR, BLKSIZE TOO BIG 
          NZ     X4,XF.43    JP LRECL SPECIFIED 
          SX6    X5-12B       CHECK TYPE = VS 
          SX0    B1 
          ZR     X6,XF.E22   ERROR, LRECL MUST BE GIVEN IF VS- OR --B 
          BX0    X0*X5
          NZ     X0,XF.E22
          SX6    X5-2S2      CHECK TYPE = V 
          BX4    X3          LRECL = BLKSIZE
          NZ     X6,XF.42     JP NO 
          SX4    X4-4        YES, LRECL = BLKSIZE-4 
 XF.42    LX4    S.LRECL     RECONSTRUCT W.TPAR WORD
          BX7    X4+X5
          LX3    S.BLKSZ
          BX7    X3+X7
          AX4    S.LRECL
          SA7    A3 
          AX3    S.BLKSZ
* 
* 
 XF.43    SX6    X5          CHECK LRECL
          SB3    X4-32760     MAX SIZE
          AX6    2
          GT     B3,B0,XF.E23  LRECL EXCEEDS MAX
          SX6    X6-2        CHECK TYPE = V 
          LX5    59-1        CHECK SUBTYPE = S
          IX0    X3-X4       BLKSIZE - LRECL
          NZ     X6,XF.44    JP NOT V-- 
          SB3    X4-4        LRECL - 4
          LE     B3,B0,XF.E24 
          NG     X5,XF.45    JP VS OR VSB 
          SX0    X0-4         TYPE = V OR VB,(BLKSIZE-4 - LRECL)
 XF.44    NG     X0,XF.E23   LRECL TOO BIG (OR BLOCK TOO SMALL) 
* 
 XF.45    SA1    B7          CHECK READ/WRITE FLAG
          LX5    60-59+1     RESET RECFM
          PL     X1,XF.47    READING
          SX7    B7+6         WRITING, SET RESIDUAL BLOCK POINTER 
          LX3    36+3        RESIDUAL SIZE (BITS) 
          BX7    X3+X7       FULL BLOCK POINTER 
          LX3    60-36-3     RESET BLKSIZE
          NZ     X6,XF.46    JP NOT V-- 
          SX6    32           SKIP 32 BITS
          LX6    18 
          IX7    X7+X6       USED BIT COUNT 
          LX6    18 
          IX7    X7-X6       RESIDUAL 
 XF.46    SA7    B7+W.RESBLK
* 
 XF.47    SX0    B7+6        BLOCK ADDRESS
          SX3    X3+7 
          BX2    X0+X2       ADD BLOCK ADDRESS TO W.BUFR WORD 
          IX3    X3+X3
          LX0    18 
          IX3    X3/X7,15    BLKSIZE (WORDS)
          BX2    X0+X2       RECORD ADDRESS = BLOCK ADDRESS (SO FAR)
          SB5    X3 
          SA3    XF.MSK      TESTING MASK 
          SB3    X5          RECFM
          PL     X1,XF.48    READING
          LX3    30          SHIFT MASK IF WRITING
 XF.48    LX3    X3,B3
          PL     X3,XF.49    JP IF NO RECORD AREA NEEDED
          SX4    X4+7 
          SX3    B5          BLKSIZE (WORDS)
          IX4    X4+X4
          LX3    S.RECAD
          IX4    X4/X5,15    LRECL (WORDS)
          IX2    X2+X3       ADJUST RECORD AREA ADDRESS 
          SB5    X4+B5
 XF.49    SB5    B5+6        ADD BASIC INFO BLOCK SIZE
* 
          BX7    X2 
          EQ     XF.OUT      AND EXIT, SETTING BUFFER POINTERS AND STAT.
* 
          SPACE  4
* 
* DATA AREA 
* 
 XF.TAP   DATA   4LTAPE 
* 
 XF.KTAB  VFD    42/2RFT,18/XF.FT    KEYWORD TABLE
          VFD    42/3RUSE,18/XF.USE 
          VFD    42/5RRECFM,18/XF.RECF
          VFD    42/7RBLKSIZE,18/XF.BLKS
          VFD    42/5RLRECL,18/XF.LREC
          VFD    42/4RCODE,18/XF.CODE 
          VFD    42/3RFMT,18/XF.FMT 
          DATA   0
* 
 XF.PTR   VFD    12/2RWC,18/TEST6,12/0,18/CON6C   POINTERS
          VFD    12/2RWP,18/TEST6,12/0,18/CON6P 
          VFD    12/2RWT,18/TEST6,12/0,18/CON6T 
          VFD    12/2RRC,18/TESTC,12/0,18/CONC6 
          VFD    12/2RRT,18/TESTT,12/0,18/CONT6 
          DATA   0
* 
 XF.MSK   VFD  4/0,1/0,1/0,1/0,1/0,1/0,1/0,1/1,1/1,1/0,1/0,1/0,1/0,14/0 
          VFD  4/0,1/0,1/0,1/0,1/0,1/0,1/1,1/1,1/1,1/0,1/1,1/0,1/1,14/0 
*                  F   FB  FS  FSB V   VB  VS  VSB U   UB  US  USB
* 
          SPACE  4
**    ERROR ACTIONS 
* 
 XF.E1    SA2    XF.M1       NO PARAMETERS
          EQ     ERR.CON
 XF.E2    SA2    XF.M2       NOT A FILE NAME
          EQ     ERR.CON
 XF.E3    SA2    XF.M3       FILE NOT DECLARED
          EQ     ERR.CON
 XF.E4    SA2    XF.M4       NO WSA PARAMETER 
          EQ     ERR.CON
 XF.E5    SA2    XF.M5       PARAM NOT A DATA ITEM
          EQ     ERR.CON
 XF.E6    SA2    XF.M6       WSA NOT ALIGNED
          EQ     ERR.CON
 XF.E7    SA2    XF.M7       NO FILE STRING 
          EQ     ERR.CON
 XF.E8    SA2    XF.M8       PARAM NOT NUMERIC TYPE 
          EQ     ERR.CON
 XF.E9    SA2    XF.M9       WSA TOO SMALL
          EQ     ERR.CON
 XF.E10   SA2    XF.M10      FILE STRING MISSING (
          EQ     ERR.CON
 XF.E11   SA2    XF.M11      MISSING )
          EQ     ERR.CON
 XF.E12   SA2    XF.M12      KEYWORD NOT FOLLOWED BY =
          EQ     ERR.CON
 XF.E13   SA2    XF.M13      UNRECOGNIZED KEYWORD 
          EQ     ERR.CON
 XF.E14   SA2    XF.M14      INVALID PARAMETER VALUE
          EQ     ERR.CON
 XF.E15   SA2    XF.M15      DOUBLY SPECIFIED PARAMETER 
          EQ     ERR.CON
 XF.E16   SA2    XF.M16      INCONSISTENT PARAMETERS
          EQ     ERR.CON
 XF.E17   SA2    XF.M17      FILE USAGE NOT SPECIFIED 
          EQ     ERR.CON
 XF.E18   SA2    XF.M18      FILE TYPE NOT SPECIFIED
          EQ     ERR.CON
 XF.E19   SA2    XF.M19      RECFM NOT SPECIFIED
          EQ     ERR.CON
 XF.E20   SA2    XF.M20      BLKSIZE NOT SPECIFIED
          EQ     ERR.CON
 XF.E21   SA2    XF.M21      BLKSIZE EXCEEDS MAX ALLOWABLE
          EQ     ERR.CON
 XF.E22   SA2    XF.M22      LRECL NOT SPECIFIED
          EQ     ERR.CON
 XF.E23   SA2    XF.M23      LRECL TOO LARGE
          EQ     ERR.CON
 XF.E24   SA2    XF.M24      LRECL TOO SMALL FOR RECORD HEADER
          EQ     ERR.CON
****
* 
 XF.M1    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/MISSING PARAMETER LIST/ 
 XF.M2    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/FILE PARAMETER IS NOT A FILE NAME/
 XF.M3    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/FILE NOT DECLARED/
 XF.M4    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/NO WORKING STORAGE AREA PROVIDED/ 
 XF.M5    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/PARAMETER IS NOT A DATA ITEM/ 
 XF.M6    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/WSA NOT ALIGNED TO WORD BOUNDARY/ 
 XF.M7    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/NO FILE STRING GIVEN/ 
 XF.M8    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/SIZE PARAMETER NOT NUMERIC TYPE/
 XF.M9    VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/WORKING STORAGE AREA TOO SMALL/ 
 XF.M10   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/FILE STRING DOES NOT BEGIN WITH -(-/
 XF.M11   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/FILE STRING NOT TERMINATED WITH -)-/
 XF.M12   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/KEYWORD NOT FOLLOWED BY = IN FILE STRING/ 
 XF.M13   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/UNRECOGNIZED KEYWORD IN FILE STRING/
 XF.M14   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/INVALID PARAMETER VALUE IN FILE STRING/ 
 XF.M15   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/DOUBLY SPECIFIED PARAMETER IN FILE STRING/
 XF.M16   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/INCONSISTENT PARAMETERS IN FILE STRING/ 
 XF.M17   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/FILE USAGE NOT SPECIFIED/ 
 XF.M18   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/FILE TYPE NOT SPECIFIED/
 XF.M19   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/RECFM NOT SPECIFIED/
 XF.M20   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/BLKSIZE NOT SPECIFIED/
 XF.M21   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/BLKSIZE EXCEEDS 32760 BYTES/
 XF.M22   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/LRECL NOT SPECIFIED/
 XF.M23   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/LRECL TOO LARGE FOR BLKSIZE/
 XF.M24   VFD    12/0,18/E.PAR,12/0,18/*+1
          DATA    C/LRECL TOO SMALL FOR V-RECORD HEADER/
****
          END 
