$PAGE  "INCLFLAB  FILE LABEL INCLUDE FILE"                              00005000
<<**********************************************************>>          00010000
<<**                                                      **>>          00015000
<<**              File Label Include File                 **>>          00020000
<<**                                                      **>>          00025000
<<**********************************************************>>          00030000
                                                                        00035000
                                                                        00040000
COMMENT                                                                 00045000
                                                                        00050000
 The file label has the following format:                               00055000
                                                                        00060000
    0   1   2   3         7    8         12  13  14  15                 00065000
    -----------------------------------------------------               00070000
  0 |  File name - 1st char.  |  File name - 2nd char.  |  0            00075000
    |---------------------------------------------------|               00080000
  1 |  File name - 3rd char.  |  File name - 4th char.  |  1            00085000
    |---------------------------------------------------|               00090000
  2 |  File name - 5th char.  |  File name - 6th char.  |  2            00095000
    |---------------------------------------------------|               00100000
  3 |  File name - 7th char.  |  File name - 8th char.  |  3            00105000
    |---------------------------------------------------|               00110000
  4 | Group name - 1st char.  | Group name - 2nd char.  |  4            00115000
    |---------------------------------------------------|               00120000
  5 | Group name - 3rd char.  | Group anme - 4th char.  |  5            00125000
    |---------------------------------------------------|               00130000
  6 | Group name - 5th char.  | Group name - 6th char.  |  6            00135000
    |---------------------------------------------------|               00140000
  7 | Group name - 7th char.  | Group name - 8th char.  |  7            00145000
    |---------------------------------------------------|               00150000
 10 |  Acct name - 1st char.  |  Acct name - 2nd char.  |  8            00155000
    |---------------------------------------------------|               00160000
 11 |  Acct name - 3rd char.  |  Acct name - 4th char.  |  9            00165000
    |---------------------------------------------------|               00170000
 12 |  Acct name - 5th char.  |  Acct name - 6th char.  | 10            00175000
    |---------------------------------------------------|               00180000
 13 |  Acct name - 7th char.  |  Acct name - 8th char.  | 11            00185000
    |---------------------------------------------------|               00190000
 14 | Creator name - 1st char.| Creator name - 2nd char.| 12            00195000
    |---------------------------------------------------|               00200000
 15 | Creator name - 3rd char.| Creator name - 4th char.| 13            00205000
    |---------------------------------------------------|               00210000
 16 | Creator name - 5th char.| Creator name - 6th char.| 14            00215000
    |---------------------------------------------------|               00220000
 17 | Creator name - 7th char.| Creator name - 8th char.| 15            00225000
    |---------------------------------------------------|               00230000
 20 |  Lockword - 1st char.   |  Lockword - 2nd char.   | 16            00235000
    |---------------------------------------------------|               00240000
 21 |  Lockword - 3rd char.   |  Lockword - 4th char.   | 17            00245000
    |---------------------------------------------------|               00250000
 22 |  Lockword - 5th char.   |  Lockword - 6th char.   | 18            00255000
    |---------------------------------------------------|               00260000
 23 |  Lockword - 7th char.   |  Lockword - 8th char.   | 19            00265000
    |---------------------------------------------------|               00270000
 24 |                                                   | 20            00275000
    |                  Security matrix                  |               00280000
 25 |                                                   | 21            00285000
    |---------------------------------------------------|               00290000
 26 |  Language Attribute     |                | SR | S | 22            00295000
    |---------------------------------------------------|               00300000
 27 |                   Creation date                   | 23            00305000
    |---------------------------------------------------|               00310000
 30 |                  Last access date                 | 24            00315000
    |---------------------------------------------------|               00320000
 31 |               Last modification date              | 25            00325000
    |---------------------------------------------------|               00330000
 32 |                     File code                     | 26            00335000
    |---------------------------------------------------|               00340000
 33 | C |           |  MVTABX |         VMASK           | 27            00345000
    |---------------------------------------------------|               00350000
 34 | S | R | L | X | Subtype |    Disc type    |  R/W  | 28            00355000
    |---------------------------------------------------|               00360000
 35 | No. user labels written | No. user labels avail.  | 29            00365000
    |---------------------------------------------------|               00370000
 36 |                                                   | 30            00375000
    |               File limit in blocks                |               00380000
 37 |                                                   | 31            00385000
    |---------------------------------------------------|               00390000
 40 |                                                   | 32            00395000
    |                   FCB Vector                      |               00400000
 41 |                                                   | 33            00405000
    |---------------------------------------------------|               00410000
 42 |                     Checksum                      | 34            00415000
    |---------------------------------------------------|               00420000
 43 |                    Cold load ID                   | 35            00425000
    |---------------------------------------------------|               00430000
 44 |                     FOPTIONS                      | 36            00435000
    |---------------------------------------------------|               00440000
 45 |                Record size in bytes               | 37            00445000
    |---------------------------------------------------|               00450000
 46 |                Block size in words                | 38            00455000
    |---------------------------------------------------|               00460000
 47 |      Sector offset      |     |   No. extents -1  | 39            00465000
    |---------------------------------------------------|               00470000
 50 |            Last extent size in sectors            | 40            00475000
    |---------------------------------------------------|               00480000
 51 |               Extent size in sectors              | 41            00485000
    |---------------------------------------------------|               00490000
 52 |                                                   | 42            00495000
    |                End of data pointer                |               00500000
 53 |                                                   | 43            00505000
    |---------------------------------------------------|               00510000
 54 |   Volume table index    |                         | 44            00515000
    |--------------------------                         |               00520000
 55 |              1st extent sector number             | 45            00525000
    |---------------------------------------------------|               00530000
    |                         .                         |               00535000
    |                         .                         |               00540000
    |                         .                         |               00545000
    |---------------------------------------------------|               00550000
    |   Volume table index    |                         |               00555000
    |--------------------------                         |               00560000
    |             Last extent sector number             |               00565000
    |---------------------------------------------------|               00570000
    |                         .                         |               00575000
    |                         .                         |               00580000
    |                         .                         |               00585000
    |---------------------------------------------------|               00590000
154 |                                                   |108            00595000
    |             File allocation time                  |               00600000
155 |                                                   |109            00605000
    |---------------------------------------------------|               00610000
156 |             File allocation date                  |110            00615000
    |---------------------------------------------------|               00620000
157 |                   Unused                          |111            00625000
    |---------------------------------------------------|               00630000
160 |                                                   |112            00635000
    |            Start of file block number             |               00640000
161 |                                                   |113            00645000
    |---------------------------------------------------|               00650000
162 |                                                   |114            00655000
    |         Block number of end of file               |               00660000
163 |                                                   |115            00665000
    |---------------------------------------------------|               00670000
164 |                                                   |116            00675000
    |  Number of open and close records (message file)  |               00680000
165 |                                                   |117            00685000
    |---------------------------------------------------|               00690000
166 |                                                   |118            00695000
    |              Last Modify Time                     |               00700000
167 |                                                   |119            00705000
    |---------------------------------------------------|               00710000
170 |                    Unused                         |120            00715000
    |---------------------------------------------------|               00720000
171 |                    Unused                         |121            00725000
    |---------------------------------------------------|               00730000
172 |                    Unused                         |122            00735000
    |---------------------------------------------------|               00740000
173 |                    Unused                         |123            00745000
    |---------------------------------------------------|               00750000
174 | Device name - 1st char. | Device name - 2nd char. |124            00755000
    |---------------------------------------------------|               00760000
175 | Device name - 3rd char. | Device name - 4th char. |125            00765000
    |---------------------------------------------------|               00770000
176 | Device name - 5th char. | Device name - 6th char. |126            00775000
    |---------------------------------------------------|               00780000
177 | Device name - 7th char. | Device name - 8th char. |127            00785000
    -----------------------------------------------------               00790000
                                                                        00795000
                                                                        00800000
 The above diagram corresponds to the following word names              00805000
                                                                        00810000
 WORD   NAME                                                            00815000
   #                                                                    00820000
                                                                        00825000
   1  FLLOCNAME                                                         00830000
   4  FLGRPNAME                                                         00835000
   8  FLACCTNAME                                                        00840000
  12  FLUSERID                                                          00845000
  16  FLLOCKWORD                                                        00850000
  20  FLSECMX                                                           00855000
  22  FLNATLANG                                                         00860000
      FLSECURE     = FLAB(22).(15:1)                                    00865000
      FLSRRELEASE  = FLAB(22).(14:1)                                    00870000
  23  FLCREATE                                                          00875000
  24  FLLASTACC                                                         00880000
  25  FLLASTMOD                                                         00885000
  26  FLFILECODE                                                        00890000
  27  FLPVINFO                                                          00895000
  28  FLLOCK                                                            00900000
      FLSTORE      = FLAB(28).(0:1)                                     00905000
      FLRESTORE    = FLAB(28).(1:1)                                     00910000
      FLLOAD       = FLAB(28).(2:1)                                     00915000
      FLEXCL       = FLAB(28).(3:1)                                     00920000
      FLSR         = FLAB(28).(0:2)                                     00925000
      FLSRL        = FLAB(28).(0:3)                                     00930000
      FLSRLX       = FLAB(28).(0:4)                                     00935000
      FLSUBTYPE    = FLAB(28).(4:4)                                     00940000
      FLDTYPE      = FLAB(28).(8:6)                                     00945000
      FLSTATUS     = FLAB(28).(14:2)                                    00950000
  29  FLUSERLBL                                                         00955000
      FLLBLEOF     = FLAB(29).(0:8)                                     00960000
      FLLBL        = FLAB(29).(8:8)                                     00965000
  30  FLFLIM                                                            00970000
      FLFCBVECT    = FLABDBL(16)                                        00975000
  34  FLCHECKSUM                                                        00980000
  35  FLCLID                                                            00985000
  36  FLFOPTIONS                                                        00990000
  37  FLRECSIZE                                                         00995000
  38  FLBLKSIZE                                                         01000000
  39  FLSECTOFF    = FLAB(39).(0:8)                                     01005000
      FLNUMEXTS    = FLAB(39).(11:5)                                    01010000
  40  FLLASTEXTSIZE                                                     01015000
  41  FLEXTSIZE                                                         01020000
  42  FLEOF                                                             01025000
  44  FLEXTMAP                                                          01030000
      FLLABEL      = FLABDBL(22)                                        01035000
      FLVTAB       = FLAB(44).(0:8)                                     01040000
 108  FLALLOCTIME                                                       01045000
 110  FLALLOCDATE                                                       01050000
 112  FLSTART                                                           01055000
 114  FLEND                                                             01060000
 116  FLNUMOPENCLSREC                                                   01065000
 118  FLMODTIME                                                         01070000
 124  FLDEVNAME                                                         01075000
                                                                        01080000
                                                                        01085000
                                                                        01090000
Discussion:                                                             01095000
                                                                        01100000
                                                                        01105000
FLACCTNAME      This is the account name of the file.  It is eight bytes01110000
                in length with trailing blanks added.                   01115000
                                                                        01120000
FLALLOCDATE     Date that the file was allocated on this system.        01125000
                                                                        01130000
FLALLOCTIME     Doubleword containing the time that the file was alloca-01135000
                ted on this system.                                     01140000
                                                                        01145000
FLBLKSIZE       This is the block size, in sectors, of the file.        01150000
                                                                        01155000
FLCHECKSUM      This is the exclusive-OR checksum of the FLAB (excluding01160000
                words 34, 42 and 43 octal) and is used for error detec- 01165000
                tion.  Each time the file label is read from disc, the  01170000
                check sum is calculated and compared against the value  01175000
                recorded in the file label.  Similarly, each time the   01180000
                file label is writted to the disk, the check sum is cal-01185000
                culated and inserted into the file label.               01190000
                                                                        01195000
FLCLASSFLG      Your guess is as good as mine.                          01200000
                                                                        01205000
FLCLID          This  is  the  cold load number in effect the last time 01210000
                that the file was accessed.  This should always be the  01215000
                current CLED number.  If it is not, then it means that  01220000
                the system crashed while the file was open and that the 01225000
                data in the FLAB should be reset (principally the FCB   01230000
                vector, store/restore bits and access bits.             01235000
                                                                        01240000
FLCREATE        This is the creation date of the file.  It is in the    01245000
                format defined by the intrinsic CALENDER.               01250000
                                                                        01255000
FLDEVNAME       This is the FOPEN device specification that was used    01260000
                when the file was created.  This information is need-   01265000
                ed when new extents are allocated.                      01270000
                                                                        01275000
FLDTYPE         This  is  the device type number of the first extent of 01280000
                of the file, see ACBDTYPE for a list of legal values.   01285000
                This value is determined by configuration.              01290000
                                                                        01295000
FLEND           Number of current data blocks (that is, the end of file 01300000
                block number relative to the start of the file).        01305000
                                                                        01310000
FLEOF           This  is the end-of-file pointer for the file.  It is a 01315000
                double word representing the number of records in the   01320000
                file. It can also be viewed as the record number of the 01325000
                next record past EOF.                                   01330000
                                                                        01335000
FLEXCL          This is the exclusive access flag fop the file.   If set01340000
                it  means that the file has been opened exclusively by a01345000
                accessor.  If  not  set  then  the  file i s potentially01350000
                accessible by others.                                   01355000
                                                                        01360000
FLEXTMAP        This  is  the extent map of the file.  The number of ex-01365000
                tents  is specified by FLNUMEXTS, a 0D extent descriptor01370000
                indicates that the extent has not been allocated.       01375000
                                                                        01380000
FLEXTSIZE       This  is  the extent size, in sectors, of the file.  All01385000
                extents  in  the  f ile except the last have this extent01390000
                size.  This  is  a logical value, and legal values range01395000
                from  1  to 65525 sectors.  This limits the maximum file01400000
                size to 2097120 sectors.                                01405000
                                                                        01410000
FLFCBVECT       If non-zero, this is the vector of the FCB for the file.01415000
                If zero, then the file is not currenty being accessed.  01420000
                                                                        01425000
FLFILECODE      This is the file code of the file. Know values are:     01430000
                                                                        01435000
                     -401   IMAGE data set                              01440000
                     -400   IMAGE root file                             01445000
                     1024   USL file                                    01450000
                     1025   BASIC data file                             01455000
                     1026   BASIC program file                          01460000
                     1027   BASIC fast program file                     01465000
                     1028   RL file                                     01470000
                     1029   Program file                                01475000
                     1030   STAR file                                   01480000
                     1031   SL file                                     01485000
                     1040   Cross Loader ASCII file (SAVE)              01490000
                     1041   Cross Loader relocatable binary file        01495000
                     1042   Cross Loader ASCII file (DISPLAY)           01500000
                     1050   EDITOR KEEPQ file (non-COBAL)               01505000
                     1051   EDITOR KEEPQ file (COBAL)                   01510000
                     1060   RJE punch file                              01515000
                     1069   RSAM (Bob Strand's ISAM) file               01520000
                     1070   QUERY procedure file                        01525000
                     1071   QUERY work file                             01530000
                     1072   QUERY work file                             01535000
                     1080   KSAM key file                               01540000
                     1081                                               01545000
                     to    Reserved for KSAM                            01550000
                     1089                                               01555000
                     8000                                               01560000
                     to    Reserved for APL                             01565000
                     8099                                               01570000
                                                                        01575000
FLFLIM          This  is the end-of-space pointer for the file.  It is a01580000
                double integer representing the maximum numb. of records01585000
                (fixed  length  record  format)  or blocks (undefined or01590000
                variable length record format) in the file.             01595000
                                                                        01600000
FLFOPTIONS      This is the FOPTIONS of the file.                       01605000
                                                                        01610000
FLGRPNAME       This  is the group name of the file.  It is 8 bytes long01615000
                with trailing blanks added.                             01620000
                                                                        01625000
FLLABEL         This  is the volume table index and sector number of the01630000
                FLAB, which is the same as the first extent descriptor. 01635000
                                                                        01640000
FLLASTACC       This  is the last access date of the file.  It is in the01645000
                format defined by the intrinsic CALENDAR.               01650000
                                                                        01655000
FLLASTMOD       This  is  the last modification date of the file.  It is01660000
                in the format defined by the intrinsic CALENDAR.        01665000
                                                                        01670000
FLLASTEXTSIZE   This  is the size, in sectors, of the last extent of the01675000
                file.  If  the file has one extent then this is the same01680000
                as FLEXTSIZE, if the file has more than one extent, then01685000
                this value may be different from FLEXTSIZE.  This is the01690000
                size of the last physical extent for the file, it is not01695000
                the size of the last allocated extent.                  01700000
                                                                        01705000
FLLBL           This  is  the  number  of  user labels allocated for the01710000
                file.  Since  each  label is a sector long, this is also01715000
                number of sectors currenty allocated for user labels.   01720000
                                                                        01725000
FLLBLEOF        This is the end-of-data pointer for the user labels.  It01730000
                is  analogous  to FLEOF in that it represents the number01735000
                of labels written.                                      01740000
                                                                        01745000
FLLOAD          This  is  the LOADED flag for the file.  If set it means01750000
                that  the file is a loaded program or SL file and cannot01755000
                be  modified except by a privileged accessor. This flag 01760000
                is set cleared by the loader, not the file system.      01765000
                                                                        01770000
FLLOCK          This identifies the word containing the lock bits, which01775000
                described separately.                                   01780000
                                                                        01785000
FLLOCKWORD      This  is  the  lock word of the file. It is 8 bytes long01790000
                with  trailing  blanks  added.  If it is all blanks then01795000
                the file does not have a lockword.                      01800000
                                                                        01805000
FLLOCNAME       This  is the local name of the file.  It is 8 bytes long01810000
                with trailing blanks added.                             01815000
                                                                        01820000
FLMVTABX        This is the mounted volume table index of the volume set01825000
                in  which the file resides.  Applicable iff the file re-01830000
                sides on a private volume.                              01835000
                                                                        01840000
FLNUMEXTS       This is the number of extents, less one, allowed for the01845000
                file. It is not the number of extents currenty          01850000
                Legal values range from 0 to 31, i.e., 1 to 32 extents. 01855000
                                                                        01860000
FLNUMOPENCLSREC Number of open and close records in the message file.   01865000
                                                                        01870000
FLPVINFO        Private  volume  information.  Includes the MVTABX,     01875000
                and volume mask.                                        01880000
                                                                        01885000
FLRECSIZE       This is the record size of the file in negative bytes.  01890000
                                                                        01895000
FLRESTORE       This is the RESTORE flag for the file.  If set, it means01900000
                that  the file is being RESTOREd and cannot be accessed.01905000
                RESTORE  also sets the STORE bit for the file (FLSTORE),01910000
                see  FLSR  for  a  full  description of the use of these01915000
                bits. This flag is set and cleared by STORE/RESTORE, not01920000
                by the file system                                      01925000
                                                                        01930000
FLSECMX         This  is  the security matrix of the file.  The bits are01935000
                organized  into five groups of six bits each. (Bits 0:2)01940000
                are not used.  The groups correspond to the access types01945000
                READ,  APPEND,  WRITE,  LOCK,  and EXECUTE.  Within each01950000
                group,  each bit  specifies  who  may h ave access: ANY,01955000
                ACCOUNT MGR, ACCOUNT LIBRARIAN,  GROUP, GROUP LIBRARIAN,01960000
                and CREATOR.                                            01965000
                                                                        01970000
FLSECTOFF       This  is  the sector offset from file label to the first01975000
                block  of  the  file.  This  is not necessarily equal to01980000
                FLLBL+1 since an integral number of blocks are allocated01985000
                for the file and user labels.                           01990000
                                                                        01995000
FLSECURE        This is the file security enforcement flag.  If not set,02000000
                then  the file has been RELEASEd and the security matrix02005000
                FLSECMX is ignored.  If set, then the file is secured as02010000
                specified by the security matrix.                       02015000
                                                                        02020000
FLSR            This  is the STORE and RESTORE flags for the file, which02025000
                are  described separately.  STORE and RESTORE decode the02030000
                two-bit field to indicate their operation.              02035000
                                                                        02040000
                     Legal values are:                                  02045000
                                                                        02050000
                          0 - file not in use by either STORE or RESTORE02055000
                          1 - illegal value                             02060000
                          2 - file being STOREd                         02065000
                          3 - file being RESTOREd                       02070000
                                                                        02075000
                The  file  system interprets the leftmost bit as indica-02080000
                that  the  file  is  being  accessed  by either STORE or02085000
                RESTORE  and the rightmost bit is interpreted as indica-02090000
                ting  access  should be permitted:  0 (file being STOREd02095000
                allows  read  access, 1 (file  being RESTOREd) allows no02100000
                access.   This  field  is set and reset by STORE/RESTORE02105000
                and not by the file system.                             02110000
                                                                        02115000
FLSRL           This is the STORE, RESTORE and LOADED flags.            02120000
                                                                        02125000
FLSRLX          This is the STORE, RESTORE, LOADED and exclusive flags. 02130000
                                                                        02135000
FLSRRELEASE     This flag is used by STORE/RESTORE.  If a file is STOREd02140000
                with  the "RELEASE" keyword, STORE will set this flag in02145000
                the tape copy of the file label.  RESTORE will allow any02150000
                user to access such files, regardless of the file's nor-02155000
                mal security. If this bit is off in the tape copy of the02160000
                file  label,  RESTORE applies normal security checks (as02165000
                defined  by  the  information  in FLSECMX and FLSECURE).02170000
                This bit is zero for files on disk.                     02175000
                                                                        02180000
FLSTART         Block number  of the first data block of a message file,02185000
                excluding  the  file  label  or  user label blocks.  For02190000
                normal variable length files, this field is zero, signi-02195000
                fying that the data starts at block 0.                  02200000
                                                                        02205000
FLSTATUS        This is the read/write status of the file.  Legal values02210000
                                                                        02215000
                     0 - no accessors                                   02220000
                     1 - read                                           02225000
                     2 - write                                          02230000
                     3 - read/write                                     02235000
                                                                        02240000
FLSTORE         This  is  the  STORE/RESTORE  flag  for file. If set, it02245000
                means  that the file is being either STOREd or RESTOREd.02250000
                The  RESTORE bit (FLRESTORE) must be interrogated to de-02255000
                termine which operation is taking place.  See FLSR for a02260000
                full description of the use of these bits.  This flag is02265000
                set and cleared by STORE/RESTORE and not the file system02270000
                                                                        02275000
FLSUBTYPE       This  is  the device sub-type of the first extent of the02280000
                file.  This value is determined by configuration.       02285000
                                                                        02290000
FLUSERID        This  is  the  creating  user name of the file.  It is 802295000
                bytes long with trailing blanks added.                  02300000
                                                                        02305000
FLUSERLBL       This  field  describes  the user labels of the file.  It02310000
                consists of FLLBL and FLLBLEOF, which are described sep-02315000
                erately.                                                02320000
                                                                        02325000
FLVTAB          This  is  the  volume table index of the first extent of02330000
                the file.                                               02335000
                                                                        02340000
FLVMASK         This  is  the mask  of  the volume entry of the specific02345000
                private  volume  in  which the file resides.  If this is02350000
                the master volume of the private volume set, then bit 1502355000
                is on, second volume of the set, bit 14 on, etc.  A vol-02360000
                ume set can have at most 8 dics and therefore this 8 bit02365000
                mask field is the perfect size.                         02370000
;                                                                       02375000
                                                                        02380000
                                                                        02385000
                                                                        02390000
<<---------------------------------------------------------->>          02395000
<< Addressing conventions:                                  >>          02400000
<<                                                          >>          02405000
<< INTEGER ARRAY FLAB(0:127);                               >>          02410000
<< DOUBLE ARRAY FLABDBL(*) = FLAB;                          >>          02415000
<<          OR                                              >>          02420000
<< INTEGER POINTER FLAB;                                    >>          02425000
<< DOUBLE POINTER FLABDBL;                                  >>          02430000
<<---------------------------------------------------------->>          02435000
                                                                        02440000
                                                                        02445000
EQUATE                                                                  02450000
FLSKIP1     =  28,  << LOCK BITS INDEX                     >>           02455000
FLSKIP2     =  34,  << CHECKSUM INDEX                      >>           02460000
FLSKIP3     =  35,  << COLD LOAD ID INDEX                  >>           02465000
FLEXTINDEX  =  44,  << EXTENT MAP INDEX                    >>           02470000
DFLEXTINDEX =  22,  << EXTENT MAP INDEX - DOUBLE           >>           02475000
HARDFLABERR =   7,  << IRRECOVERABLE LABEL ERROR           >>           02480000
FLABERRNO   = 247;  << MESSAGE CATALOG ENTRY NUMBER        >>           02485000
                                                                        02490000
DEFINE                                                                  02495000
FLVOLNUMF  = (0:8)#,                                                    02500000
ALLOCFLAB   = PUSH(S); @FLAB := TOS+1; ASSEMBLE(ADDS 128)#,             02505000
CHECKSUM    = TOS := -1;                                                02510000
              X := 127;                                                 02515000
              DO BEGIN                                                  02520000
                 IF X <> FLSKIP1 AND X <> FLSKIP2 AND X <> FLSKIP3      02525000
                    THEN TOS := TOS XOR LOGICAL(FLAB(X));               02530000
                 X := X-1                                               02535000
              END UNTIL <#;                                             02540000
                                                                        02545000
                                                                        02550000
DEFINE                                                                  02555000
FLLOCNAME   =FLAB#,           << local file name           >>           02560000
FLGRPNAME   =FLAB(4)#,        << group name                >>           02565000
FLACCTNAME  =FLAB(8)#,        << account name              >>           02570000
FLUSERID    =FLAB(12)#,       << creating user ID          >>           02575000
FLLOCKWORD  =FLAB(16)#,       << lockword                  >>           02580000
FLSECMX     =FLABDBL(10)#,    << security matrix           >>           02585000
FLLANG      =FLAB(22).(0:8)#, << language attribute field  >>           02590000
FLSRRELEASE =FLAB(22).(14:1)#,<< STORE/RESTORE released bit>>           02595000
FLSECURE    =FLAB(22).(15:1)#,<< file Secure bit           >>           02600000
FLCREATE    =FLAB(23)#,       << create date               >>           02605000
FLLASTACC   =FLAB(24)#,       << last access date          >>           02610000
FLLASTMOD   =FLAB(25)#,       << last modification date    >>           02615000
FLFILECODE  =FLAB(26)#,       << File code.                >>           02620000
FLPVINFO    =FLAB (27) #,     << PVINFO from mount         >>           02625000
FLCLASSFLG  =FLPVINFO.(0:1)#, << Class flag.               >>           02630000
FLMVTABX    =FLPVINFO.(4:4) #,<< Mounted Vol Table index   >>           02635000
FLVMASK     =FLPVINFO.(8:8) #,<< Volume mask bits.         >>           02640000
FLLOCK      =FLAB(28)#,       << lock bits, etc.           >>           02645000
FLSTORE     =FLAB(28).(0:1)#, << file being Stored         >>           02650000
FLRESTORE   =FLAB(28).(1:1)#, << file being Restored       >>           02655000
FLLOAD      =FLAB(28).(2:1)#, << file Loaded               >>           02660000
FLEXCL      =FLAB(28).(3:1)#, << exclusive FOPEN           >>           02665000
FLSR        =FLAB(28).(0:2)#, << Store & Restore bits      >>           02670000
FLSRL       =FLAB(28).(0:3)#, << Store, Restore & Load bits>>           02675000
FLSRLX      =FLAB(28).(0:4)#, << S/R, Load and Excl bits.  >>           02680000
FLSUBTYPE   =FLAB(28).(4:4)#, << sub type                  >>           02685000
FLDTYPE     =FLAB(28).(8:6)#, << device type               >>           02690000
FLSTATUS    =FLAB(28).(14:2)#,<< Write/Read status         >>           02695000
FLUSERLBL   =FLAB(29)#,       << user label                >>           02700000
FLLBLEOF    =FLAB(29).(0:8)#, << # lbls written            >>           02705000
FLLBL       =FLAB(29).(8:8)#, << # of user labels          >>           02710000
FLFLIM      =FLABDBL(15)#,    << file limit                >>           02715000
FLFCBVECT   =FLABDBL(16)#,    << FCB Vector                >>           02720000
FLCHECKSUM  =FLAB(34)#,       << file label checksum       >>           02725000
FLCLID      =FLAB(35)#,       << Cold Load ID              >>           02730000
FLFOPTIONS  =FLAB(36)#,       << FOPTIONS                  >>           02735000
FLRECSIZE   =FLAB(37)#,       << record size, -bytes       >>           02740000
FLBLKSIZE   =FLAB(38)#,       << block size, words         >>           02745000
FLSECTOFF   =FLAB(39).(0:8)#, << sector offset to data     >>           02750000
FLNUMEXTS   =FLAB(39).(11:5)#,<< number of extents - 1     >>           02755000
FLLASTEXTSIZE=FLAB(40)#,      << last extent size, sectors >>           02760000
FLEXTSIZE   =FLAB(41)#,       << extent size, sectors      >>           02765000
FLEOF       =FLABDBL(21)#,    << end-of-data pointer, records     >>    02770000
FLLABEL     =FLABDBL(22)#,    << file label VTAB and sector num   >>    02775000
FLVTAB      =FLAB(44).(0:8)#, << file label VTAB index     >>           02780000
FLEXTMAP    =FLAB(44)#,       << origin of Extent map      >>           02785000
FLALLOCTIME =FLABDBL(54)#,    << Restore time              >>           02790000
FLALLOCDATE =FLAB(110)#,      << Restore date              >>           02795000
FLSTART     =FLABDBL(56)#,    << Absolute 1st data block   >>           02800000
FLEND       =FLABDBL(57)#,    << End of data block for var->>           02805000
                              << iable fles, rel to FLSTART>>           02810000
FLHDRECS    =FLABDBL(58)#,    << Number of header records  >>           02815000
FLMODTIME   =FLABDBL(59)#,    << Last modify time.         >>           02820000
FLDEVNAME   =FLAB(124)#;      << device specification name >>           02825000
                                                                        02830000
DEFINE  <<FOPTIONS DEFINITIONS>>                                        02835000
FLFILETYPE      = FLFOPTIONS.(2:3)#,      << FILE TYPE                >>02840000
FLKSAM          = (FLFILETYPE=1)#,        << RESERVED FOR KSAM        >>02845000
FLRIO           = (FLFILETYPE=2)#,        <<RIO FILE                  >>02850000
FLCIRFILE       = (FLFILETYPE=4)#,        << CIRCULAR FILE            >>02855000
FLMSGFILE       = (FLFILETYPE=6)#,        << IPC FILE                 >>02860000
FLNOEQUATE      = LOG(FLFOPTIONS.(5:1))#, << NO FILE EQUATION         >>02865000
FLUNLABELLED    = LOG(FLFOPTIONS.(6:1))#, << UNLABELLED TAPE          >>02870000
FLCONTROL       = LOG(FLFOPTIONS.(7:1))#, << CARRIAGE CONTROL         >>02875000
FLFORMAT        = FLFOPTIONS.(8:2)#,      << RECORD FORMAT            >>02880000
FLVARFLD        = FLFOPTIONS.(9:1)#,      << VARIABLE BIT             >>02885000
FLFIXED         = (FLFORMAT = 0)#,        << FIXED                    >>02890000
FLVARIABLE      = (FLVARFLD = 1)#,        << VARIABLE                 >>02895000
FLNORMVAR       = (FLFORMAT = 1)#,        << NORMAL VAR               >>02900000
FLSPECVAR       = (FLFORMAT = 3)#,        << SPECIAL VAR              >>02905000
FLUNDEFINED     = (FLFORMAT = 2)#,        << UNDEFINED                >>02910000
FLDESIGNATOR    = FLFOPTIONS.(10:3)#,     << DESIGNATOR TYPE          >>02915000
FLACTUAL        = (FLDESIGNATOR = 0)#,    << ACTUAL                   >>02920000
FLSTDLIST       = (FLDESIGNATOR = 1)#,    << $STDLIST                 >>02925000
FLNEWPASS       = (FLDESIGNATOR = 2)#,    << $NEWPASS                 >>02930000
FLOLDPASS       = (FLDESIGNATOR = 3)#,    << $OLDPASS                 >>02935000
FLSTDIN         = (FLDESIGNATOR = 4)#,    << $STDIN                   >>02940000
FLSTDINX        = (FLDESIGNATOR = 5)#,    << $STDINX                  >>02945000
FLNULL          = (FLDESIGNATOR = 6)#,    << $NULL                    >>02950000
FLASCII         = LOG(FLFOPTIONS.(13:1))#,<< ASCII/BINARY FORMAT      >>02955000
FLDOMAIN        = FLFOPTIONS.(14:2)#,     << FILE DOMAIN              >>02960000
FLNEW           = (FLDOMAIN = 0)#,        << NEW                      >>02965000
FLPERMANENT     = (FLDOMAIN = 1)#,        << OLD - PERMANENT          >>02970000
FLTEMPORARY     = (FLDOMAIN = 2)#,        << OLD - TEMPORARY          >>02975000
FLOLD           = (FLDOMAIN = 3)#;        << OLD - EITHER             >>02980000
                                                                        02985000
<<---------------------------------------------------------->>          02990000
<<**                                                      **>>          02995000
<<**       END OF FILE LABEL INCLUDE FILE                 **>>          03000000
<<**                                                      **>>          03005000
<<---------------------------------------------------------->>          03010000
                                                                        03015000
