         << LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION >>     00000001
$PAGE "INCLACB -- ACB Include File"                                     00005000
<<-------------------------------------------------------------------->>00010000
<<                                                                    >>00015000
<<     * * * * *    INCLACB -- ACB INCLUDE FILES     * * * * *        >>00020000
<<                                                                    >>00025000
<<-------------------------------------------------------------------->>00030000
COMMENT                                                                 00035000
                                                                        00040000
Logical Access Control Block (LACB)                                     00045000
-----------------------------------                                     00050000
                                                                        00055000
All LACBs have the same structure:                                      00060000
                                                                        00065000
 0   1   2  3   4   5   6   7   8   9  10  11 12  13  14 15             00070000
------------------------------------------------------------            00075000
|  3   |               Complete LACB size                  |  0         00080000
|----------------------------------------------------------|            00085000
|                            |        File number          |  1         00090000
|----------------------------------------------------------|            00095000
|    File name - 1st char.   |    File name - 2nd char.    |  2         00100000
|----------------------------------------------------------|            00105000
|    File name - 3rd char.   |    File name - 4th char.    |  3         00110000
|----------------------------------------------------------|            00115000
|    File name - 5th char.   |    File name - 6th char.    |  4         00120000
|----------------------------------------------------------|            00125000
|    File name - 7th char.   |    File name - 8th char.    |  5         00130000
|----------------------------------------------------------|            00135000
|                       FOPTIONS                           |  6         00140000
|----------------------------------------------------------|            00145000
|                       AOPTIONS                           |  7         00150000
|----------------------------------------------------------|            00155000
|                  Record size in bytes                    | 10         00160000
|----------------------------------------------------------|            00165000
|                  Block size in words                     | 11         00170000
|----------------------------------------------------------|            00175000
|                      Spare                               | 12         00180000
|----------------------------------------------------------|            00185000
|                   Carriage control code                  | 13         00190000
|----------------------------------------------------------|            00195000
|  |EOF|Pg|Ln |St |FK |TC |TB |8B |Car|DB |EOF T| EOF M |  | 14         00200000
|----------------------------------------------------------|            00205000
|             | TE| IC| Q |   |   Terminal stop character  | 15         00210000
|----------------------------------------------------------|            00215000
|                        Error code                        | 16         00220000
|----------------------------------------------------------|            00225000
|                 Last I/O transmission log                | 17         00230000
-----------------------------------------------------------             00235000
                                                                        00240000
                                                                        00245000
Discussion:                                                             00250000
                                                                        00255000
LACBAOPTIONS     See ACBAOPTIONS.                                       00260000
                                                                        00265000
LACBBSIZE        See ACBBSIZE.                                          00270000
                                                                        00275000
LACBCTL          See ACBCTL.                                            00280000
                                                                        00285000
LACBERROR        See ACBERROR.                                          00290000
                                                                        00295000
LACBFNUM         See ACBFNUM.                                           00300000
                                                                        00305000
LACBFOPTIONS     See ACBFOPTIONS.                                       00310000
                                                                        00315000
LACBMODE         See ACBMODE.                                           00320000
                                                                        00325000
LACBNAME1-4      See ACBNAME.                                           00330000
                                                                        00335000
LACBRSIZE        See ACBRSIZE.                                          00340000
                                                                        00345000
LACBSIZE         This is the size, in words, of the LACB.  All          00350000
                 LACBs are sixteen (decimal) words long.                00355000
                                                                        00360000
LACBSTATE        See ACBLSTATE.                                         00365000
                                                                        00370000
LACBSTOPCHAR     See ACBSTOPCHAR.                                       00375000
                                                                        00380000
LACBTLOG         See ACBTLOG.                                           00385000
;                                                                       00390000
                                                                        00395000
<<----------------------------------------------------------------------00400000
*                                                                      *00405000
*  LOGICAL ACCESS CONTROL BLOCK (LACB) DEFINITIONS                     *00410000
*                                                                      *00415000
---------------------------------------------------------------------->>00420000
                                                                        00425000
EQUATE                                                                  00430000
SIZELACB      = 16, << LACB size in words                             >>00435000
MSGLACBEXTEND = 12, << # extra words in message file LACB    >><<02241>>00440000
SIZENOWR      = 10, << Read only part of LACB                         >>00445000
SIZELACBWR    = SIZELACB-SIZENOWR;                                      00450000
                                                                        00455000
                                                                        00460000
$PAGE                                                                   00465000
COMMENT                                                                 00470000
Physical Access Control Block (PACB)                                    00475000
------------------------------------                                    00480000
                                                                        00485000
The overall structure of the PACB is:                                   00490000
                                                                        00495000
                    -------------------------                           00500000
                    |                       |                           00505000
                    |      Basic PACB       |     (fixed)               00510000
                    |                       |                           00515000
                    |-----------------------|                           00520000
                    |                       |                           00525000
                    |       Buffering       |                           00530000
                    |                       |     (variable)            00535000
                    |       extension       |                           00540000
                    |                       |                           00545000
                    -------------------------                           00550000
                                                                        00555000
The buffering extension is optional.  It is present  if  and only if the00560000
file  is  accessed  with buffering.  There are thus two possible formats00565000
for an ACB:                                                             00570000
                                                                        00575000
       1. No buffers, the buffering extension is not present.           00580000
                                                                        00585000
       2. PACB  buffers,  the  buffering  extension  is  present and the00590000
          buffers are in the buffering extension.                       00595000
                                                                        00600000
If  multiple PACB buffers exist, there will be a buffering extension for00605000
each,  immediately preceding the buffer.  The basic PACB (or NOBUF PACB)00610000
is copied into the the ACB as words 0 - %63.  An ACB "extention" is then00615000
generated  in words %64 - %67.  The resulting ACB thus has the following00620000
format:                                                                 00625000
                                                                        00630000
      0   1   2   3   4  5  6   7  8  9   10  11  12 13  14  15         00635000
    -----------------------------------------------------------         00640000
  0 | 2   |                   Complete ACB size               |  0      00645000
    |---------------------------------------------------------|         00650000
  1 |                      File number                        |  1      00655000
    |---------------------------------------------------------|         00660000
  2 |   File name - 1st char.   |   File name - 2nd char.     |  2      00665000
    |---------------------------------------------------------|         00670000
  3 |   File name - 3rd char.   |   File name - 4th char.     |  3      00675000
    |---------------------------------------------------------|         00680000
  4 |   File name - 5th char.   |   File name - 6th char.     |  4      00685000
    |---------------------------------------------------------|         00690000
  5 |   File name - 7th char.   |   File name - 8th char.     |  5      00695000
    |---------------------------------------------------------|         00700000
  6 |                       FOPTIONS                          |  6      00705000
    |---------------------------------------------------------|         00710000
  7 |                       AOPTIONS                          |  7      00715000
    |---------------------------------------------------------|         00720000
  8 |                 Record size in bytes                    | 10      00725000
    |---------------------------------------------------------|         00730000
  9 |                  Block size in words                    | 11      00735000
    |---------------------------------------------------------|         00740000
 10 |                        Spare                            | 12      00745000
    |---------------------------------------------------------|         00750000
 11 |                Carriage control code                    | 13      00755000
    |---------------------------------------------------------|         00760000
 12 |   |EOF|Pg |Ln|St|FK|TC |TB|8B |Car|DB |EOF T |EOF M |   | 14      00765000
    |---------------------------------------------------------|         00770000
 13 |              |TE|IC| Q | S|   Terminal stop character   | 15      00775000
    |---------------------------------------------------------|         00780000
 14 |                       Error code                        | 16      00785000
    |---------------------------------------------------------|         00790000
 15 |                Last I/O transmission log                | 17      00795000
    +---------------------------------------------------------+         00800000
 16 |                                                         | 20      00805000
    |                     File pointer                        |         00810000
 17 |                                                         | 21      00815000
    |---------------------------------------------------------|         00820000
 18 |                                                         | 22      00825000
    |            Current variable block number                |         00830000
 19 |                                                         | 23      00835000
    |---------------------------------------------------------|         00840000
 20 |                                                         | 24      00845000
    |                 Record transfer count                   |         00850000
 21 |                                                         | 25      00855000
    |---------------------------------------------------------|         00860000
 22 |                                                         | 26      00865000
    |                  Block transfer count                   |         00870000
 23 |                                                         | 27      00875000
    |---------------------------------------------------------|         00880000
 24 |                                                         | 30      00885000
    |              Highest block number started               |         00890000
 25 |                                                         | 31      00895000
    |---------------------------------------------------------|         00900000
 26 |                                                         | 32      00905000
    |                      FCB vector                         |         00910000
 27 |                                                         | 33      00915000
    |---------------------------------------------------------|         00920000
 28 |                   Total no. LACB'S                      | 34      00925000
    |---------------------------------------------------------|         00930000
 29 |   |Bk |      Device type  |    Last logical I/O status  | 35      00935000
    |---------------------------------------------------------|         00940000
 30 |             Logical Device Number                       | 36      00945000
    |---------------------------------------------------------|         00950000
 31 |PF|         |Current buffer| Tape Displace.| No. buffers | 37      00955000
    |---------------------------------------------------------|         00960000
 32 |               Current record word index                 | 40      00965000
    |---------------------------------------------------------|         00970000
 33 |                      Buffer size                        | 41      00975000
    |---------------------------------------------------------|         00980000
 34 |             Virtual logical device number               | 42      00985000
    |---------------------------------------------------------|         00990000
 35 |                      FMAVT index                        | 43      00995000
    |---------------------------------------------------------|         01000000
 36 |                No. input LACB's                         | 44      01005000
    |---------------------------------------------------------|         01010000
 37 |       Name type           |        File disposition     | 45      01015000
    |---------------------------------------------------------|         01020000
 38 |    Access bit map         |    Blocking Factor          | 46      01025000
    |---------------------------------------------------------|         01030000
 39 | S | M | Q | R| D| C| H| F |AE|RW|ABR|NE| SEOFS| EOFS    | 47      01035000
    |---------------------------------------------------------|         01040000
 40 |  Spooled device type  |   Spooled device record size    | 50      01045000
    |---------------------------------------------------------|         01050000
 41 |                Spooled device FOPTIONS                  | 51      01055000
    |---------------------------------------------------------|         01060000
 42 |                Spooled device AOPTIONS                  | 52      01065000
    |---------------------------------------------------------|         01070000
 43 |                    IDD or ODD Index                     | 53      01075000
    |---------------------------------------------------------|         01080000
 44 |                                                         | 54      01085000
    |                   No-Wait disk address                  |         01090000
 45 |                                                         | 55      01095000
    |---------------------------------------------------------|         01100000
 46 |                     Unused                              | 56      01105000
    |---------------------------------------------------------|         01110000
 47 |            No wait IO Logical Device                    | 57      01115000
    |---------------------------------------------------------|         01120000
 48 |               P1P2 used by                              | 60      01125000
    |                                                         |         01130000
 49 |                 FDEVICECONTROL                          | 61      01135000
    |---------------------------------------------------------|         01140000
 50 |                    Unused                               | 62      01145000
    |---------------------------------------------------------|         01150000
 51 |                    Unused                               | 63      01155000
    +---------------------------------------------------------+         01160000
                                                                        01165000
                                                                        01170000
The above words, 0-%63, are physically located in the PACB of the  file.01175000
Below,  words %64-%67, are used by file system intrinsics and are placed01180000
onto the stack by the procedure LOC'ACB when locking the ACB.  Therefore01185000
the buffering extention, if present, will immediately follow word %63 of01190000
the actual ACB in the Control Block Table of the file.                  01195000
                                                                        01200000
    +---------------------------------------------------------+         01205000
 52 |             DST relative offset to PACB                 | 64      01210000
    |---------------------------------------------------------|         01215000
 53 |             DST relative offset to LACB                 | 65      01220000
    |---------------------------------------------------------|         01225000
 54 |       DST relative offset to ACB in the stack           | 66      01230000
    |---------------------------------------------------------|         01235000
 55 |            Stack relative offset to DB                  | 67      01240000
    +---------------------------------------------------------+         01245000
                                                                        01250000
Discussion:                                                             01255000
                                                                        01260000
                                                                        01265000
ACBABORTREAD     This  flag  is used to abort a broken terminal         01270000
                 re-read.  The flag is set via the ABORT                01275000
                 parameter  to  FUNBREAK.  If  the  flag is set         01280000
                 then the READ PENDING message will be aborted          01285000
                 along with the  re-read.   This  feature  is           01290000
                 needed to handle the BREAK...:ABORT, etc.              01295000
                 situation.                                             01300000
                                                                        01305000
ACBACCCL         This  is  the  access  class  part  of  the            01310000
                 device type number.  The following are legal           01315000
                 values:                                                01320000
                                                                        01325000
                      0 - direct (e.g. disc)                            01330000
                      1 - serial input (e.g. card reader)               01335000
                      2 - parallel input/output (e.g. terminal)         01340000
                      3 - serial input/output (e.g. mag tape)           01345000
                      4 - serial output (e.g. line printer)             01350000
                                                                        01355000
                                                                        01360000
ACBACCESS        This is the access bit map for the file.  The          01365000
                 following are the bit definitions of this              01370000
                 eight-bit field:                                       01375000
                                                                        01380000
                      (0:1) - unused                                    01385000
                      (1:1) - unused                                    01390000
                      (2:1) - read                                      01395000
                      (3:1) - append                                    01400000
                      (4:1) - write                                     01405000
                      (5:1) - lock                                      01410000
                      (6:1) - execute                                   01415000
                      (7:1) - save                                      01420000
                                                                        01425000
                 This access security  is  determined  by  the          01430000
                 ACCCHECK intrinsic and enforced by the file            01435000
                 system.                                                01440000
                                                                        01445000
ACBAOPTIONS      This is the AOPTIONS in effect for this file           01450000
                 access.                                                01455000
                                                                        01460000
ACBFULLBUFFS     This bit is set after every FREAD to indicate          01465000
                 that the buffers are full.  In this way, we do         01470000
                 not have to scan all the buffers looking for           01475000
                 empty ones to do pre-reads on when they are al-        01480000
                 ready full.  It is set in IOMOVE after every           01485000
                 FREAD and cleared in FQUIESCE'IO.                      01490000
                                                                        01495000
ACBBINARYIO      This  bit controls full eight bit transfers on         01500000
                 the 2644 page mode terminal.  It is adjusted           01505000
                 by FCONTROL(26) and FCONTROL(27).                      01510000
                                                                        01515000
ACBBLK           This is the block number of the current                01520000
                 variable record format block.  Applicable  iff         01525000
                 the  record  format  is variable.                      01530000
                                                                        01535000
ACBBLKFACT       This  is  the  blocking factor for the file.           01540000
                 It is the number of records in a block.  Legal         01545000
                 values range  from 1 to 255.                           01550000
                                                                        01555000
ACBBREAK         This  is the break mode flag.  It is                   01560000
                 applicable iff the ACB is for $STDIN or                01565000
                 $STDLIST.  If set  it  means  that the  BREAK          01570000
                 key has been hit and that the CI should have           01575000
                 high priority access to the  ACB.   The  flag          01580000
                 will  be cleared when a RESUME or ABORT is             01585000
                 issued.                                                01590000
                                                                        01595000
ACBBSIZE         This is the block size, in words, of the file.         01600000
                                                                        01605000
ACBBTFRCT        This  is  the total number of blocks                   01610000
                 transferred to and from the file.  The initial         01615000
                 value is 0D.                                           01620000
                                                                        01625000
ACBBUFUSED       This is the word index, relative to  the  base         01630000
                 of  the block,  for  the selected record               01635000
                 within the block. This is applicable iff the           01640000
                 file access is buffered.                               01645000
                                                                        01650000
ACBCARRIAGE      This bit signifies that the file has carriage          01655000
                 control.  It   is  the  same  as  the                  01660000
                 carriage  control  bit  in ACBFOPTIONS if the          01665000
                 file is spooled.   If  not  spooled, the  bit          01670000
                 is  zero,  and  IOMOVE  will  pass the FWRITE          01675000
                 carriage  control  parameter  directly  to             01680000
                 the  driver rather  than imbedding it as the           01685000
                 first character of the output record.                  01690000
                                                                        01695000
ACBCTL           This is the CONTROL parameter  from  the  last         01700000
                 FWRITE.  This  value  is  pertinent iff the            01705000
                 file was opened with carriage control.                 01710000
                                                                        01715000
ACBCURRBUF       This is the buffer number (0-relative)                 01720000
                 containing  the most  recently  referenced             01725000
                 record.  Applicable iff the file access is             01730000
                 buffered.                                              01735000
                                                                        01740000
ACBDADDR         This is the logical device number of the file.         01745000
                 For  a disc  file  this  is  the  logical              01750000
                 device number of the first extent.                     01755000
                                                                        01760000
ACBDEFBLOCK      This bit signifies that the file is to be              01765000
                 accessed with default  blocking.   The  bit            01770000
                 is  initialized from the FOPEN stateword               01775000
                 STATE.  It does not need to be  in  the ACB.           01780000
                 It is mentioned here only to signify that the          01785000
                 bit is  effectively  used  due  to  the  way           01790000
                 ACBLSTATE  is initialized from STATE.                  01795000
                                                                        01800000
ACBDISP          This  is  the  file  close disposition derived         01805000
                 from the FOPEN call.  The only way this can be         01810000
                 specified is  via a  file  equation.   The             01815000
                 legal  values are the same as those for                01820000
                 FCLOSE.                                                01825000
                                                                        01830000
ACBDNTYPE        This  is  the  file reference format type              01835000
                 number and is derived from the FOPEN call.             01840000
                 The following  are  legal values:                      01845000
                                                                        01850000
                      0 - full name                                     01855000
                      1 - account name absent                           01860000
                      2 - group and account name absent                 01865000
                      3 - null name                                     01870000
                 This information is needed by FRENAME.                 01875000
                                                                        01880000
ACBDTYPE         This is the  device  type  number  of  the             01885000
                 file.   The following are legal values                 01890000
                 (octal):                                               01895000
                                                                        01900000
                       0 - moving head disc                             01905000
                       1 - fixed head disc                              01910000
                       7 - foreign disc                                 01915000
                      10 - card reader                                  01920000
                      11 - paper tape reader                            01925000
                      20 - terminal                                     01930000
                      24 - card reader/interpreter/punch                01935000
                      26 - SSLC                                         01940000
                      27 - programmable controller                      01945000
                      30 - magnetic tape                                01950000
                      31 - serial disc                                  01955000
                      40 - line printer                                 01960000
                      41 - card punch                                   01965000
                      42 - paper tape punch                             01970000
                      43 - CALCOMP 500 plotter                          01975000
                      44 - CALCOMP 600 plotter                          01980000
                      45 - CALCOMP 700 plotter                          01985000
                                                                        01990000
                                                                        01995000
ACBEOF           This bit is set when EOF has been sensed.              02000000
                                                                        02005000
ACBEOFS          This  is  the  type of EOF detected on                 02010000
                 $STDIN(X).  This field consists of two bits:           02015000
                                                                        02020000
                    (0:1) - super colon (i.e. EOF for $STDINX)          02025000
                    (1:1) - regular colon (i.e. EOF for $STDIN)         02030000
                                                                        02035000
                 Applicable for multi-access to $STDIN(X) only.         02040000
                                                                        02045000
ACBERROR         This  is  the error number for the file.  It           02050000
                 is used by all intrinsics except FOPEN.  When          02055000
                 an error is detected the  error  number  is            02060000
                 placed in this cell.  The error number is              02065000
                 cleared at the beginning of each callable              02070000
                 intrinsic except FCHECK (which reads it).              02075000
                                                                        02080000
ACBFCB           This  is  the FCB vector for the file.                 02085000
                 Applicable only to disc files.                         02090000
                                                                        02095000
ACBFKEYS         This bit controls the  definition  of  the  f1         02100000
                 and  f2 function  keys  on  the  2644 page             02105000
                 mode terminal.  It is adjusted by FCONTROL(32)         02110000
                 and FCONTROL(33). (Obsolete function)                  02115000
                                                                        02120000
ACBFNUM          File  number.  Used mostly for calling routines        02125000
                 that access things, such as labels, by file            02130000
                 number.                                                02135000
                                                                        02140000
ACBFOPTIONS      This is the FOPTIONS in effect for this file           02145000
                 access.                                                02150000
                                                                        02155000
ACBFPTR          This  is  the  sequential  access  record              02160000
                 pointer.  It contains  the  next  sequential           02165000
                 record  number.    The initial  value  is  0D.         02170000
                 This value is used only by the FREAD, FWRITE           02175000
                 and  FUPDATE  intrinsics.   However  the value         02180000
                 is  maintained  by  all  data  transferring            02185000
                 file system intrinsics.                                02190000
                                                                        02195000
ACBFMAVTX        This is the entry  index  into  the  file              02200000
                 multi-access vector  table  (FMAVT).   This            02205000
                 is  valid  iff the file access is                      02210000
                 multi-access.                                          02215000
                                                                        02220000
ACBGSTATUS       This is the general part of the last I/O               02225000
                 status for the file.  The following are the            02230000
                 legal values:                                          02235000
                                                                        02240000
                      0 - pending                                       02245000
                      1 - successful                                    02250000
                      2 - end of file                                   02255000
                      3 - unusual condition                             02260000
                      4 - irrecoverable error                           02265000
                                                                        02270000
                                                                        02275000
ACBHIBLK         This  is  the  highest  block  number  for             02280000
                 which   an anticipatory  read  has  been               02285000
                 issued, and is applicable iff the file access          02290000
                 is buffered.  The initial value  is -1D.               02295000
                                                                        02300000
ACBINHIBCRLF     This bit controls the termination of lines             02305000
                 written  to the  terminal.  If not set then            02310000
                 each line is terminated with a CR and LF,  if          02315000
                 set  then  no  line  termination characters            02320000
                 are used.  This bit is valid iff the file is a         02325000
                 terminal file, it is adjusted by FSETMODE.             02330000
                                                                        02335000
ACBLINECTL       This is the line control bit.  If  not  set            02340000
                 then  each line   is   post-spaced,  if  set           02345000
                 then  each  line  is pre-spaced.  This bit is          02350000
                 used  by  line  printers  and terminals  only.         02355000
                 It  is  adjusted  by FCONTROL(1) and FWRITE            02360000
                 with the appropriate carriage control.                 02365000
                                                                        02370000
ACBLPCTL         This are the line and  page  control  bits,            02375000
                 which  are described separately.                       02380000
                                                                        02385000
ACBLSTATE        These  are miscellaneous state flags.  They            02390000
                 are "local" in nature in  that  they  may  be          02395000
                 different  for  each accessor in a                     02400000
                 multi-access environment.  Bits (9:6) are              02405000
                 initialized from the stateword  local                  02410000
                 variable  called STATE in FOPEN.  The ten              02415000
                 remaining bits are initialized individually.           02420000
                 The  constituent  bits  are   described                02425000
                 individually.                                          02430000
                                                                        02435000
ACBMODE          These  are  miscellaneous  mode flags.  The            02440000
                 constituent bits are described individually.           02445000
                                                                        02450000
ACBNAME          This is the local file name.  The name is              02455000
                 eight  bytes in length with trailing blanks            02460000
                 added.                                                 02465000
                                                                        02470000
ACBNEWEOF        This  flag  when  set  indicates  that  a new          02475000
                 tape mark should  be  written  before  the             02480000
                 tape  is  rewound  or backspaced. Applicable           02485000
                 only to mag tape files.                                02490000
                                                                        02495000
ACBNOWAITEOF     This  bit  is  used  to save the value of the          02500000
                 local EOF advanced  flag  NEWEOF  in  IOMOVE           02505000
                 between   the   I/O initiation  and  I/O               02510000
                 completion  calls.   This flag is applicable           02515000
                 iff the file  is  accessed  in  no-wait  I/O           02520000
                 mode.                                                  02525000
                                                                        02530000
ACBNOWAITMODE    This  cell is used to save the I/O mode                02535000
                 between no-wait I/O initiation and completion          02540000
                 calls.  If the bit is set then the last I/O            02545000
                 request was a write, otherwise it was a read.          02550000
                 This  cell  is  pertinent  iff  the  file  is          02555000
                 accessed in no-wait I/O mode.                          02560000
                                                                        02565000
ACBNUMBUFS       This  is  the number of buffers, less one,             02570000
                 used for the file  access.   Applicable  iff           02575000
                 the  file  access   is buffered.                       02580000
                                                                        02585000
ACBP1P2          This is used by FDEVICECONTROL to pass                 02590000
                 ATTACHIO parameters to IOMOVE to place into            02595000
                 the spoolfile header record.                           02600000
                                                                        02605000
ACBPAGECTL       This  is  the page control bit.  If not set            02610000
                 then a page is assumed to consist of 60 lines          02615000
                 (auto page eject).  If set  then  a page is            02620000
                 assumed to consist of 66 lines (no auto page           02625000
                 eject).  This  is  used  primarily  for  line          02630000
                 printers but is also valid for terminals.              02635000
                 These are the only devices for which this  is          02640000
                 valid.   This  bit  is adjusted by FCONTROL(1)         02645000
                 and FWRITE with the appropriate carriage               02650000
                 control.                                               02655000
                                                                        02660000
ACBPRIV          This  flag  when  set  indicates  that  the            02665000
                 file   is privileged  in  that  it  has a              02670000
                 negative file code.  The user must be in               02675000
                 privileged mode to access it.                          02680000
                                                                        02685000
ACBQSTATUS       This  is the qualifying part of the last I/O           02690000
                 status for the file.  The  values  are  unique         02695000
                 for  each  general status  part.  See I/O              02700000
                 System IMS for all legal values.                       02705000
                                                                        02710000
ACBQUIESCE       This  bit  controls  critical  output                  02715000
                 verification.  If set, buffered output is              02720000
                 guaranteed to have been written to  the                02725000
                 device  when  control is returned to the user.         02730000
                 This bit is adjusted by FSETMODE.                      02735000
                                                                        02740000
ACBREADCODE      This field consists of the input EOF checking          02745000
                 type  and mode,  and  is  used  to  generate           02750000
                 the P1 parameter to ATTACHIO. These fields are         02755000
                 described individually.                                02760000
                                                                        02765000
ACBREADMODE      This field controls the input EOF checking             02770000
                 mode.  It is 00  for  reading $STDIN, 01 for           02775000
                 reading $STDINX, and 10 for the command                02780000
                 interpreter.                                           02785000
                                                                        02790000
ACBREADTYPE      This field controls the input EOF checking             02795000
                 type.  It is 01 for JOBs, 10 for SESSIONs, and         02800000
                 00 for DATA.                                           02805000
                                                                        02810000
ACBRSIZE         This is the file's record size in positive             02815000
                 bytes.                                                 02820000
                                                                        02825000
ACBRTFRCT        This  is the total number of records                   02830000
                 transferred to and from the file.  The initial         02835000
                 value is 0D.                                           02840000
                                                                        02845000
ACBSAVEEOFS      This field is used to  save  the  contents  of         02850000
                 ACBEOFS during BREAK mode processing.                  02855000
                                                                        02860000
ACBSERIALIO      This bit is set by FSETMODE and it signifies           02865000
                 that if Disc Caching is enabled, to output all         02870000
                 disc writes in the order in which they were            02875000
                 sent to ATTACHIO.  This bit is sent to ATTACHIO        02880000
                 from IOMOVE.                                           02885000
                                                                        02890000
ACBSHCNT         This  is  the total number of LACBs that exist         02895000
                 for this PACB. Valid iff the file access is            02900000
                 multi-access.                                          02905000
                                                                        02910000
ACBSHCNTIN       This is the total number of input-only LACBs           02915000
                 that exist for   this   PACB.    Valid  iff            02920000
                 the  file  access  is multi-access.                    02925000
                                                                        02930000
ACBSHCNTS        This is  the  total  LACB  and  total                  02935000
                 input-only  LACB counts, each of which is              02940000
                 described separately.                                  02945000
                                                                        02950000
ACBSIZE          This  is  the  size, in words, of the complete         02955000
                 ACB.  It includes the buffering extension, if          02960000
                 present.                                               02965000
                                                                        02970000
ACBSPAOPT        This  is  the  AOPTIONS   for   the   spooled          02975000
                 device.  Applicable  iff the file access is to         02980000
                 a spooled device.                                      02985000
                                                                        02990000
ACBSPCCTL        This has the value 1 if the spoolfile has              02995000
                 carriage control.  Used for length comparisons.        03000000
                                                                        03005000
ACBSPFOPT        This   is   the   FOPTIONS   for  the  spooled         03010000
                 device.  Applicable iff the file access is to          03015000
                 a spooled  device.                                     03020000
                                                                        03025000
ACBSPOOLED       This is the spooled device flag.  If set then          03030000
                 the  file access is to a spooled device.               03035000
                                                                        03040000
ACBSPOOLIO       This  field is a combination of the spooled            03045000
                 device flag and the input/output mode of the           03050000
                 spooled device.  Legal values are:                     03055000
                                                                        03060000
                      0 - not spooled                                   03065000
                      1 - illegal                                       03070000
                      0 - input spooling                                03075000
                      1 - output spooling                               03080000
                                                                        03085000
                                                                        03090000
ACBSPREC         This is the record  size,  in  bytes,  of  the         03095000
                 spooled device.  Applicable iff the file               03100000
                 access is to a spooled device.                         03105000
                                                                        03110000
ACBSPTYPE        This is the device type (from the LDT) of  the         03115000
                 spooled device.  Applicable iff the file               03120000
                 access is to a spooled device.                         03125000
                                                                        03130000
ACBSPTYRC        This cell contains the spooled device type             03135000
                 and  record size, which are described                  03140000
                 separately.                                            03145000
                                                                        03150000
ACBSPVDEV        This  is  the  logical  device  number  of             03155000
                 the spooled device. Applicable iff the file            03160000
                 access is to a  spooled device.                        03165000
                                                                        03170000
ACBSPXDDX        This  is the index into the IDD or ODD for a           03175000
                 spoolfile.  Applicable iff the file access is          03180000
                 to either  a  spooled device or a spoolfile.           03185000
                                                                        03190000
ACBSTATUS        This  is  the  last  I/O status for the file.          03195000
                 It comes from the I/O  status  part  of  the           03200000
                 IOCB  returned  by ATTACHIO.  Not all ATTACHIO         03205000
                 calls update this cell.                                03210000
                                                                        03215000
ACBSTOPCHAR      This  is  the  record  termination  character          03220000
                 used for terminal reads.  This  character  can         03225000
                 be  changed  via FCONTROL(25).                         03230000
                                                                        03235000
ACBSTREAM        This  bit signifies inter-block garbage for            03240000
                 disc files.  If set, the block size is a               03245000
                 multiple of 128  words  and therefore  there           03250000
                 is  no  garbage  data between blocks.  This            03255000
                 fact  is  used  to  improve  multi-record  I/O         03260000
                 by mapping  the request into as few ATTACHIOs          03265000
                 as possible.                                           03270000
                                                                        03275000
ACBSUBCL         This  is  the sub-class part of the device             03280000
                 type number.  The sub-class is unique for              03285000
                 each  access  class.   The following  are  the         03290000
                 legal  sub-class  values  for each device              03295000
                 class:                                                 03300000
                                                                        03305000
                      0 - direct                                        03310000
                          0 - moving head disc                          03315000
                          1 - fixed head disc                           03320000
                          7 - foreign disc                              03325000
                      1 - serial input                                  03330000
                          0 - card reader                               03335000
                          1 - paper tape reader                         03340000
                      2 - parallel input/output                         03345000
                          0 - terminal                                  03350000
                          4 - card reader/punch                         03355000
                          6 - SSLC                                      03360000
                          7 - programmable controller                   03365000
                      3 - serial input/output                           03370000
                          0 - mag tape                                  03375000
                          7 - serial disc                               03380000
                      4 - serial output                                 03385000
                          0 - line printer                              03390000
                          1 - card punch                                03395000
                          2 - paper tape punch                          03400000
                          3 - CALCOMP 500 plotter                       03405000
                          4 - CALCOMP 600 plotter                       03410000
                          5 - CALCOMP 700 plotter                       03415000
                                                                        03420000
                                                                        03425000
ACBTAPEDISP      This number is used to keep track of the               03430000
                 difference or dis- placement between the               03435000
                 physical and logical tape locations.  The tape         03440000
                 could be mispositioned due to pre-reads and            03445000
                 this variable is used to properly backspace            03450000
                 the tape before an FWRITE, FSPACE, FCONTROL(6)         03455000
                 or FCLOSE(DISP=3).                                     03460000
                                                                        03465000
ACBTAPEERROR     This bit controls the reporting of recovered           03470000
                 mag  tape errors.  If not set the recovered            03475000
                 errors are not reported to the user.  If set           03480000
                 then recovered errors are reported to the user         03485000
                 by returning CCL and error number 39.  Valid           03490000
                 iff the file is a mag tape file.  This bit is          03495000
                 adjusted by FSETMODE.                                  03500000
                                                                        03505000
ACBTBLOCK        This bit controls block mode transfers on the          03510000
                 2644 page mode terminal. This bit is adjusted          03515000
                 by FCONTROL(28) and FCONTROL(29).                      03520000
                                                                        03525000
ACBTLOG          This is the last I/O transmission log for the          03530000
                 file.  It comes from the I/O transmission log          03535000
                 part  of  the  IOCB returned  by  ATTACHIO.            03540000
                 Not all ATTACHIO calls update this cell.               03545000
                                                                        03550000
ACBVDADDR        This  is  the  volume  table  index   for              03555000
                 the   file.  Applicable iff the file is a disc         03560000
                 file.                                                  03565000
                                                                        03570000
ACBXMITCRLF      This  bit  controls  CR  and LF insertion into         03575000
                 the user buffer on the 2644 page  mode                 03580000
                 terminal.  This  bit  is adjusted by                   03585000
                 FCONTROL(30) and FCONTROL(31).                         03590000
;                                                                       03595000
$PAGE                                                                   03600000
<<----------------------------------------------------------------------03605000
*                                                                      *03610000
*  Access Control Block (ACB) definitions                              *03615000
*                                                                      *03620000
---------------------------------------------------------------------->>03625000
                                                                        03630000
EQUATE                                                                  03635000
ACBNAME'DISP =2,     << offset to file name in ACB                    >>03640000
SIZEXACB     =%70,   << size of extra ACB used by LOC'ACB             >>03645000
SIZEACB      =%64,   << Basic ACB size                                >>03650000
SIZEPACBWR   = SIZEACB-SIZENOWR,                                        03655000
SIZEMRPACB   = SIZEACB-SIZELACB,                                        03660000
IPCBLKOVERHEAD=3,                                                       03665000
MSGACBEXTEND= 40, <<IPC additions: pointers,stack,lacbx,pacbx>><<02241>>03670000
MSGSIZEACB  = SIZEACB+MSGACBEXTEND,                                     03675000
BLKBUFDISP  = 12,            << Buffering extention size              >>03680000
BLKBUFBDISP = BLKBUFDISP*2;  << Same in bytes                         >>03685000
DEFINE                                                                  03690000
   UMODE    = STATUS.(0:1)&LSL(15)#,                                    03695000
   PMODE    = %100000#;                                                 03700000
                                                                        03705000
$IF X9=ON   << Module 50 defines.                                     >>03710000
                                                                        03715000
<<---------------------------------------------------------->>          03720000
<< Addressing conventions used for ACB in Module 50         >>          03725000
<<                                                          >>          03730000
<< INTEGER ARRAY ACB(0:SIZEACB-1);                          >>          03735000
<< DOUBLE ACBDBL(*) = ACB;                                  >>          03740000
<<---------------------------------------------------------->>          03745000
                                                                        03750000
DEFINE                                                                  03755000
ACBSIZE     =ACB.(2:14)#,     << size of ACB (incl. buffs)            >>03760000
ACBFNUM     =ACB(1)#,         << file number                          >>03765000
ACBNAME     =ACB(2)#,         << file name                            >>03770000
ACBNAME1    =ACBDBL(1)#,      << file name - first half               >>03775000
ACBNAME2    =ACBDBL(2)#,      << file name - second half              >>03780000
ACBFOPTIONS =ACB(6)#,         << FOPTIONS                             >>03785000
ACBAOPTIONS =ACB(7)#,         << AOPTIONS                             >>03790000
ACBRSIZE    =ACB(8)#,         << record size (bytes)                  >>03795000
ACBBSIZE    =ACB(9)#,         << block size (words)                   >>03800000
<< spare    =ACB(10)#,           unused                               >>03805000
ACBCTL      =ACB(11)#,        << carriage control word                >>03810000
ACBLSTATE   =ACB(12)#,        << local state flags                    >>03815000
ACBMODW     =ACB(13)#,        << mode word                            >>03820000
ACBMODE     =ACBMODW.(0:8)#,  << mode setting                         >>03825000
ACBSETMODE  =ACBMODW.(0:8)#,                                            03830000
ACBTAPEERROR=LOG(ACBMODW.(4:1))#,  << report recovered tape error     >>03835000
ACBINHIBCRLF=LOG(ACBMODW.(5:1))#,  << inhibit terminal CR/LF          >>03840000
ACBQUIESCE  =LOG(ACBMODW.(6:1))#,  << critical output verify          >>03845000
ACBSERIALIO =ACBMODW.(7:1)#,       << serial I/O, disc caching.       >>03850000
ACBSTOPCHAR =ACBMODW.(8:8)#,  << terminal stop character              >>03855000
ACBERROR    =ACB(14)#,        << error code                           >>03860000
ACBTLOG     =ACB(15)#,        << last I/O transmission log            >>03865000
ACBFPTR     =ACBDBL(08)#,     << current record number                >>03870000
ACBBLK      =ACBDBL(09)#,     << current variable block               >>03875000
ACBRTFRCT   =ACBDBL(10)#,     << logical record tfr count             >>03880000
ACBBTFRCT   =ACBDBL(11)#,     << block transfer count                 >>03885000
ACBHIBLK    =ACBDBL(12)#,     << highest block started                >>03890000
ACBFCB      =ACBDBL(13)#,     << FCB vector                           >>03895000
ACBSHCNT    =ACB(28)#,        << # of LACB's                          >>03900000
ACBSTATW    =ACB(29)#,        << access class, status, etc.           >>03905000
ACBBREAK    =ACBSTATW.(1:1)#, << break ($STDIN/LIST only)             >>03910000
ACBDTYPE    =ACBSTATW.(2:6)#, << device type                          >>03915000
ACBACCCL    =ACBSTATW.(2:3)#, << device access class                  >>03920000
ACBSUBCL    =ACBSTATW.(5:3)#, << device sub-class                     >>03925000
ACBSTATUS   =ACBSTATW.(8:8)#, << last logical I/O status              >>03930000
ACBQSTATUS  =ACBSTATW.(8:5)#, << qualifying status part               >>03935000
ACBGSTATUS  =ACBSTATW.(13:3)#,<< general status part                  >>03940000
ACBDADDR    =ACB(30)#,        << LDEV number                          >>03945000
ACBBUFX     =ACB(31)#,        << buffer data & misc. flags            >>03950000
ACBPRIV     =ACBBUFX.(0:1)#,  << privileged access only               >>03955000
ACBCURRBUF  =ACBBUFX.(4:4)#,  << current buffer nr.                   >>03960000
ACBTAPEDISP =ACBBUFX.(8:4)#,  << number tape pre-reads.               >>03965000
ACBNUMBUFS  =ACBBUFX.(12:4)#, << number of buffers less 1             >>03970000
ACBBUFUSED  =ACB(32)#,        << used block word count                >>03975000
ACBBUFSIZE  =ACB(33)#,        << buffer size (words)                  >>03980000
ACBSPVDEV   =ACB(34)#,        << Spooled Virtual Device               >>03985000
ACBFMAVTX   =ACB(35)#,        << FMAVT index                          >>03990000
ACBSHCNTIN  =ACB(36)#,        << Number of input LACB's.              >>03995000
ACBDNTD     =ACB(37)#,        << type & disposition                   >>04000000
ACBDNTYPE   =ACBDNTD.(0:8)#,  << name type for dir. search            >>04005000
ACBDISP     =ACBDNTD.(8:8)#,  << file disposition                     >>04010000
ACBAMLD     =ACB(38)#,        << access mask & LDEV                   >>04015000
ACBACCESS   =ACBAMLD.(0:8)#,  << access mask                          >>04020000
ACBBLKFACT  =ACBAMLD.(8:8)#,  << records/block                        >>04025000
                                                                        04030000
ACBGSTW     =ACB(39)#,        << status and spool control flags       >>04035000
ACBSPOOL    =ACBGSTW.(0:1)#,  << spooled device flag                  >>04040000
ACBSPOOLED  =LOG(ACBSPOOL)#,  << spooled device                       >>04045000
ACBSPOOLIO  =ACBGSTW.(0:2)#,  << spooled IN/OUT                       >>04050000
ACBSPSQ     =ACBGSTW.(2:2)#,  << squeeze flags                        >>04055000
ACBSPSQZ    =ACBGSTW.(2:1)#,  << file squeezed                        >>04060000
ACBSPRSQ    =ACBGSTW.(3:1)#,  << request to sqz                       >>04065000
ACBSPDSQ    =ACBGSTW.(4:1)#,  << squeeze just done                    >>04070000
ACBCIROVERFLOW=ACBGSTW.(5:1)#,<< Circular overflow flag.              >>04075000
ACBHIT      =ACBGSTW.(6:1)#,  << Record was in a buffer already.      >>04080000
ACBFULLBUFFS=ACBGSTW.(7:1)#,  << The buffers are full, no prereads.   >>04085000
ACBNOWAITEOF=ACBGSTW.(8:1)#,  << EOF advanced?                        >>04090000
ACBNOWAITMODE=ACBGSTW.(9:1)#, << last I/O: 0=read, 1=write            >>04095000
ACBABORTREAD=ACBGSTW.(10:1)#, << abort broken re-read?                >>04100000
ACBNEWEOF   =ACBGSTW.(11:1)#, << EOF advanced - tape only             >>04105000
ACBSAVEEOFS =ACBGSTW.(12:2)#, << for saving ACBEOFS                   >>04110000
ACBEOFS     =ACBGSTW.(14:2)#, << EOF flags - :EOD/:                   >>04115000
ACBSPTYRC   =ACB(40)#,        << spooled dev type/recsize             >>04120000
ACBSPTYPE   =ACBSPTYRC.(0:6)#,<< spooled dev type                     >>04125000
ACBSPREC    =ACBSPTYRC.(6:10)#,<< spooled dev rec size                >>04130000
ACBSPFOPT   =ACB(41)#,        << spooled dev FOPTIONS                 >>04135000
ACBSPAOPT   =ACB(42)#,        << spooled dev AOPTIONS                 >>04140000
ACBSPXDDX   =ACB(43)#,        << IDD/ODD index                        >>04145000
ACBNOWAITDA =ACBDBL(22)#,     << No-wait disk address                 >>04150000
<< Word 46 is currenty unassigned.                                    >>04155000
ACBNOWAITLDEV=ACB(47)#,       << no wait logical device #             >>04160000
ACBP1P2     =ACBDBL(24)#,     << used by FDEVICECONTROL               >>04165000
ACBP1       =ACB(48)#,                                                  04170000
ACBP2       =ACB(49)#,                                                  04175000
ACBBUFPOOL  =ACB(SIZEACB)#;   << buffer pool origin                   >>04180000
                                                                        04185000
<<             AOPTIONS DEFINITIONS                                   >>04190000
                                                                        04195000
DEFINE                                                                  04200000
ACBGLOBALAFT    = LOG(ACBAOPTIONS.(2:1))#,<< GLOBAL AFT               >>04205000
ACBCOPY         = LOG(ACBAOPTIONS.(3:1))#,<< COPY/REPLICATE           >>04210000
ACBNOWAIT       = LOG(ACBAOPTIONS.(4:1))#,<<NO-WAIT I/O MODE          >>04215000
ACBMULTAC       = ACBAOPTIONS.(5:2)#,     <<MULTI ACCESS MODE         >>04220000
ACBGLOBALMULTAC = ACBAOPTIONS.(6:1)#,     << GLOBAL MULTI             >>04225000
ACBINHIBITBUF   = LOG(ACBAOPTIONS.(7:1))#,<< INHIBIT BUFFERING        >>04230000
ACBACMODE       = ACBAOPTIONS.(8:2)#,     << ACCESS MODE              >>04235000
ACBDEFAULT      = (ACBACMODE = 0)#,       << DEFAULT                  >>04240000
ACBEXCLUSIVE    = (ACBACMODE = 1)#,       << EXCLUSIVE                >>04245000
ACBSEMI         = (ACBACMODE = 2)#,       << SEMI-EXCLUSIVE           >>04250000
ACBSHARE        = (ACBACMODE = 3)#,       << SHARE                    >>04255000
ACBLOCKING      = LOG(ACBAOPTIONS.(10:1))#,<< DYNAMIC LOCKING         >>04260000
ACBMULTIREC     = LOG(ACBAOPTIONS.(11:1))#,<< MULTI-RECORD            >>04265000
ACBACTYPE       = ACBAOPTIONS.(12:4)#,    << ACCESS TYPE              >>04270000
ACBREAD         = (ACBACTYPE = 0)#,       << READ ONLY                >>04275000
ACBWRITE        = (ACBACTYPE = 1)#,       << WRITE ONLY - DELETE      >>04280000
ACBWRITESAVE    = (ACBACTYPE = 2)#,       << WRITE ONLY - SAVE        >>04285000
ACBAPPEND       = (ACBACTYPE = 3)#,       << APPEND ONLY              >>04290000
ACBREADWRITE    = (ACBACTYPE = 4)#,       << READ/WRITE               >>04295000
ACBUPDATE       = (ACBACTYPE = 5)#,       << UPDATE ONLY              >>04300000
ACBEXECUTE      = (ACBACTYPE = 6)#;       << EXECUTE ONLY             >>04305000
                                                                        04310000
<<          FOPTIONS DEFINITIONS                                      >>04315000
                                                                        04320000
DEFINE                                                                  04325000
ACBFILETYPE     = ACBFOPTIONS.(2:3)#,     << FILE TYPE                >>04330000
ACBFKSAM        = (ACBFFILETYPE=1)#,      <<RESERVED FOR KSAM         >>04335000
ACBRIO          = (ACBFILETYPE=2)#,       << RIO FILE                 >>04340000
ACBCIRFILE      = (ACBFILETYPE=4)#,       << CIRCULAR FILE            >>04345000
ACBMSGFILE      = (ACBFILETYPE=6)#,       << IPC FILE                 >>04350000
ACBNOEQUATE     = LOG(ACBFOPTIONS.(5:1))#,<<NO FILE EQUATION          >>04355000
ACBUNLABELLED   = NOT LOG(ACBFOPTIONS.(6:1))#,                          04360000
ACBLABELLED     = LOG(ACBFOPTIONS.(6:1))#,                              04365000
ACBCONTROL      = LOG(ACBFOPTIONS.(7:1))#,<< CARRIAGE CONTROL         >>04370000
ACBFORMAT       = ACBFOPTIONS.(8:2)#,     << RECORD FORMAT            >>04375000
ACBVARFLD       = ACBFOPTIONS.(9:1)#,     << VARIABLE BIT             >>04380000
ACBFIXED        = (ACBFORMAT = 0)#,       << FIXED                    >>04385000
ACBVARIABLE     = (ACBVARFLD = 1)#,       << VARIABLE                 >>04390000
ACBNORMVAR      = (ACBFORMAT = 1)#,       << NORMAL VAR               >>04395000
ACBSPECVAR      = (ACBFORMAT = 3)#,       << SPECIAL VAR              >>04400000
ACBUNDEFINED    = (ACBFORMAT = 2)#,       << UNDEFINED                >>04405000
ACBDESIGNATOR   = ACBFOPTIONS.(10:3)#,    << DESIGNATOR TYPE          >>04410000
ACBACTUAL       = (ACBDESIGNATOR = 0)#,   << ACTUAL                   >>04415000
ACBSTDLIST      = (ACBDESIGNATOR = 1)#,   << $STDLIST                 >>04420000
ACBNEWPASS      = (ACBDESIGNATOR = 2)#,   << $NEWPASS                 >>04425000
ACBOLDPASS      = (ACBDESIGNATOR = 3)#,   << $OLDPASS                 >>04430000
ACBSTDIN        = (ACBDESIGNATOR = 4)#,   << $STDIN                   >>04435000
ACBSTDINX       = (ACBDESIGNATOR = 5)#,   << $STDINX                  >>04440000
ACBNULL         = (ACBDESIGNATOR = 6)#,   << $NULL                    >>04445000
ACBASCII        = LOG(ACBFOPTIONS.(13:1))#,<< ASCII/BINARY FORMAT     >>04450000
ACBDOMAIN       = ACBFOPTIONS.(14:2)#,    << FILE DOMAIN              >>04455000
ACBNEW          = (ACBDOMAIN = 0)#,       << NEW                      >>04460000
ACBPERMANENT    = (ACBDOMAIN = 1)#,       << OLD - PERMANENT          >>04465000
ACBTEMPORARY    = (ACBDOMAIN = 2)#,       << OLD - TEMPORARY          >>04470000
ACBOLD          = (ACBDOMAIN = 3)#;       << OLD - EITHER             >>04475000
                                                                        04480000
<<           ACBLSTATE DEFINITIONS                                    >>04485000
                                                                        04490000
DEFINE                                                                  04495000
ACBEOF      =ACBLSTATE.(1:1)#, << END OF FILE SENSED                  >>04500000
ACBLPCTL    =ACBLSTATE.(2:2)#, << PAGE AND LINE CONTROL               >>04505000
ACBPAGECTL  =ACBLSTATE.(2:1)#, << PAGE CONTROL 0=60 LPP 1=66 LPP      >>04510000
ACBLINECTL  =ACBLSTATE.(3:1)#, << LINE CONTROL 0=POST 1=PRE           >>04515000
ACBSTREAM   =ACBLSTATE.(4:1)#, << STREAM I/O                          >>04520000
ACBFKEYS    =ACBLSTATE.(5:1)#, << RESTORE FUNCTION KEYS               >>04525000
ACBXMITCRLF =ACBLSTATE.(6:1)#, << TRANSMIT CR,LF TO USER BUFFER       >>04530000
ACBTBLOCK   =ACBLSTATE.(7:1)#, << DISABLE TERMINAL BLOCK MODE         >>04535000
ACBBINARYIO =ACBLSTATE.(8:1)#, << EIGHT BIT TERMINAL TRANSFERS        >>04540000
ACBCARRIAGE =ACBLSTATE.(9:1)#, << CARRIAGE CONTROL FLAG               >>04545000
ACBDEFBLOCK =ACBLSTATE.(10:1)#,<< DEFAULT BLOCKING                    >>04550000
ACBREADCODE =ACBLSTATE.(11:4)#,<< INPUT EOF CHECK                     >>04555000
ACBREADTYPE =ACBLSTATE.(11:2)#,<< INPUT EOF TYPE                      >>04560000
ACBREADMODE =ACBLSTATE.(13:2)#;<< INPUT EOF MODE                      >>04565000
                                                                        04570000
<< Any misc. ACB defines for Module 50 go here.             >>          04575000
                                                                        04580000
DEFINE                                                                  04585000
   LABELDEVICE = ACBLABELLED  AND ACBACCCL = SERIALIO#;                 04590000
                                                                        04595000
$IF X9=OFF << Ends Mod 50 ACB, Begin Mod 97 ACB.            >>          04600000
                                                                        04605000
                                                                        04610000
<<---------------------------------------------------------->>          04615000
<<  Addressing conventions used in Module 97.               >>          04620000
<<                                                          >>          04625000
<< INTEGER AFTE;                                            >>          04630000
<< DOUBLE PACBV;                                            >>          04635000
<< DOUBLE LACBV;                                            >>          04640000
<< INTEGER IOQX;                                            >>          04645000
<< INTEGER ARRAY ACB(0:SIZEXACB-1) = Q;                     >>          04650000
<< INTEGER DSTX;                                            >>          04655000
<<---------------------------------------------------------->>          04660000
                                                                        04665000
DEFINE                                                                  04670000
   ACB'SETMODE   =ACB'MODW.(4:4)#,                                      04675000
   ACB'TAPEERROR =ACB'MODW.(4:1)#,                                      04680000
   ACB'INHIBCRLF =ACB'MODW.(5:1)#,                                      04685000
   ACB'QUIESCE   =ACB'MODW.(6:1)#,                                      04690000
   ACB'SERIALIO  =ACB'MODW.(7:1)#,                                      04695000
   ACB'STOPCHAR  =ACB'MODW.(8:8)#,                                      04700000
                                                                        04705000
   ACB'BREAK     =ACB'STATW.(1:1)#,                                     04710000
   ACB'ACCCL     =ACB'STATW.(2:3)#,                                     04715000
   ACB'DTYPE     =ACB'STATW.(2:6)#,                                     04720000
   ACB'STATUS    =ACB'STATW.(8:8)#,                                     04725000
   ACB'GSTATUS   =ACB'STATW.(13:3)#,                                    04730000
                                                                        04735000
   ACB'SPOOLED   =ACB'GSTW.(0:1)#,                                      04740000
   ACB'SPSQZ     =ACB'GSTW.(2:1)#,                                      04745000
   ACB'SPRSQ     =ACB'GSTW.(3:1)#,                                      04750000
   ACB'SPDQQ     =ACB'GSTW.(4:1)#,                                      04755000
   ACB'CIROVERFLOW=ACB'GSTW.(5:1)#,                                     04760000
   ACB'HIT       =ACB'GSTW.(6:1)#,                                      04765000
   ACB'FULLBUFFS =ACB'GSTW.(7:1)#,                                      04770000
   ACB'NOWAITEOF =ACB'GSTW.(8:1)#,                                      04775000
   ACB'NOWAITMODE=ACB'GSTW.(9:1)#,                                      04780000
   ACB'ABORTREAD =ACB'GSTW.(10:1)#,                                     04785000
   ACB'NEWEOF    =ACB'GSTW.(11:1)#,                                     04790000
   ACB'SAVEEOFS  =ACB'GSTW.(12:2)#,                                     04795000
   ACB'EOFS      =ACB'GSTW.(14:2)#,                                     04800000
                                                                        04805000
   ACB'EOF       =ACB'LSTATE.(1:1)#,                                    04810000
   ACB'LPCTL     =ACB'LSTATE.(2:2)#,                                    04815000
   ACB'PAGECTL   =ACB'LSTATE.(2:1)#,                                    04820000
   ACB'LINECTL   =ACB'LSTATE.(3:1)#,                                    04825000
   ACB'STREAM    =ACB'LSTATE.(4:1)#,                                    04830000
   ACB'FKEYS     =ACB'LSTATE.(5:1)#,                                    04835000
   ACB'XMITCRLF  =ACB'LSTATE.(6:1)#,                                    04840000
   ACB'TBLOCK    =ACB'LSTATE.(7:1)#,                                    04845000
   ACB'BINARYIO  =ACB'LSTATE.(8:1)#,                                    04850000
   ACB'CARRIAGE  =ACB'LSTATE.(9:1)#,                                    04855000
   ACB'READCODE  =ACB'LSTATE.(11:4)#,                                   04860000
                                                                        04865000
   ACB'RIO       =(ACB'FOPTIONS.(2:3)=2)#,                              04870000
   ACB'CIRFILE   =(ACB'FOPTIONS.(2:3)=4)#,                              04875000
   ACB'MSGFILE   =(ACB'FOPTIONS.(2:3)=6)#,                              04880000
   ACB'LABELLED  =ACB'FOPTIONS.(6:1)#,                                  04885000
   ACB'CONTROL   =ACB'FOPTIONS.(7:1)#,                                  04890000
   ACB'FIXED     =ACB'FOPTIONS.(8:2)=0#,                                04895000
   ACB'VARIABLE  =ACB'FOPTIONS.(9:1)#,                                  04900000
   ACB'NORMVAR   =ACB'FOPTIONS.(8:2)=1#,                                04905000
   ACB'SPECVAR   =ACB'FOPTIONS.(8:2)=3#,                                04910000
   ACB'UNDEFINED =ACB'FOPTIONS.(8:2)=2#,                                04915000
   ACB'ASCII     =ACB'FOPTIONS.(13:1)#,                                 04920000
   ACB'DOMAIN    =ACB'FOPTIONS.(14:2)#,                                 04925000
                                                                        04930000
   ACB'SPTYPE    =ACB'SPTYRC.(0:6)#,                                    04935000
   ACB'SPREC     =ACB'SPTYRC.(6:10)#,                                   04940000
   ACB'SPCCTL    =INT(ACB'SPFOPT.FOPCONTROLF)#,                         04945000
   ACB'PRIV      =ACB'BUFX.(0:1)#,                                      04950000
   ACB'CURRBUF   =ACB'BUFX.(4:4)#,                                      04955000
   ACB'TAPEDISP  =ACB'BUFX.(8:4)#,                                      04960000
   ACB'NUMBUFS   =ACB'BUFX.(12:4)#,                                     04965000
   ACB'ACCESS    =ACB'AMLD.(0:8)#,                                      04970000
   ACB'BLKFACT   =INTEGER(ACB'AMLD.(8:8))#,                             04975000
                                                                        04980000
   ACB'NOWAIT    =ACB'AOPTIONS.(4:1)#,                                  04985000
   ACB'INHIBITBUF=ACB'AOPTIONS.(7:1)#,                                  04990000
   ACB'ACMODE    =ACB'AOPTIONS.(8:2)#,                                  04995000
   ACB'COPY      =ACB'AOPTIONS.(3:1)#,                                  05000000
   ACB'EXCLUSIVE =(ACB'ACMODE=1)#,                                      05005000
   ACB'DEFAULT   =(ACB'ACMODE =0)#,                                     05010000
   ACB'MULTIREC  =ACB'AOPTIONS.(11:1)#,                                 05015000
   ACB'APPEND    =(ACB'ACTYPE=3)#,                                      05020000
   ACB'READ      =(ACB'ACTYPE=0)#,                                      05025000
   ACB'UPDATE    =(ACB'ACTYPE=5)#,                                      05030000
   ACB'ACTYPE    =INTEGER(ACB'AOPTIONS.(12:4))#;                        05035000
                                                                        05040000
<< ACB Extension definitions, used by LOC'ACB and UNLOC'ACB.>>          05045000
                                                                        05050000
DEFINE                                                                  05055000
                                                                        05060000
<< ACB minus extention.                                     >>          05065000
                                                                        05070000
ACBM'AFTE        = AQM6  (DQ)#,                                         05075000
ACBM'AFTNULL     = (ACBM'AFTE.(0:5) = 1)#,                              05080000
ACBM'AFTTYPE     = ACBM'AFTE.(0:4)#,                                    05085000
ACBM'FSTYPE      = (ACBM'AFTTYPE = 0)#,                                 05090000
ACBM'RFTYPE      = (ACBM'AFTTYPE = 1)#,                                 05095000
ACBM'KSTYPE      = (ACBM'AFTTYPE = 6)#,                                 05100000
ACBM'MSGTYPE     = (ACBM'AFTTYPE = 8)#,                                 05105000
ACBM'PORTYPE     = (ACBM'AFTTYPE = 9)#,                                 05106000
<< The two defines below combine to form the PACBV.         >>          05110000
ACBM'PACBV'DSTN  = AQM5  (DQ)#,                                         05115000
ACBM'PACBV'ENTRY = AQM4  (DQ)#,                                         05120000
<< The two defines below combine to form the LACBV.         >>          05125000
ACBM'LACBV'DSTN  = AQM3  (DQ)#,                                         05130000
ACBM'LACBV'ENTRY = AQM2  (DQ)#,                                         05135000
ACBM'IOQX        = AQM1  (DQ)#,                                         05140000
                                                                        05145000
<< ACB plus extention.                                      >>          05150000
                                                                        05155000
ACBX'PACBOFFSET  = AQPL52(DQ)#,                                         05160000
ACBX'LACBOFFSET  = AQPL53(DQ)#,                                         05165000
ACBX'ACBOFFSET   = AQPL54(DQ)#,                                         05170000
ACBX'DBOFFSET    = AQPL55(DQ)#;                                         05175000
                                                                        05180000
<< Misc Defines for Module 97 go here.                     >>           05185000
                                                                        05190000
DEFINE                                                                  05195000
   LEGAL'FTYPES    = %141300#,                                 << 9754>>05200000
   LABEL'DEVICE    = ACB'LABELLED AND ACB'ACCCL = SERIALIO#,            05205000
   ACBSTATUSCODE   = [2/CCL,2/CCL,2/CCG,2/CCE,2/CCL]                    05210000
                     &LSR(ACB'GSTATUS*2)#;                              05215000
                                                                        05220000
<<**********************************************************>>          05225000
<< The define BUILD'ACB is used to declare all possible ACB >>          05230000
<< variables in all file system Intrinsics.  The ACB'NR de- >>          05235000
<< fine is the same except it does not have the RFA stuff.  >>          05240000
<<**********************************************************>>          05245000
                                                                        05250000
DEFINE BUILD'ACB =                                                      05255000
   RFASTUFF;                                                            05260000
   BUILD'ACB'                                                           05265000
   BUILD'ACB''                                                          05270000
   BUILD'ACB'''#;                                                       05275000
DEFINE BUILD'ACBNR =                                                    05280000
   BUILD'ACB'                                                           05285000
   BUILD'ACB''                                                          05290000
   BUILD'ACB'''#;                                                       05295000
DEFINE BUILD'ACB' =                                                     05300000
   INTEGER ACB'FNUM     = ACB+1;                                        05305000
   INTEGER ACB'NAME     = ACB+2;                                        05310000
   DOUBLE  ACB'NAME1    = ACB+2;                                        05315000
   DOUBLE  ACB'NAME2    = ACB+4;                                        05320000
   LOGICAL ACB'FOPTIONS = ACB+6;                                        05325000
   LOGICAL ACB'AOPTIONS = ACB+7;                                        05330000
   INTEGER ACB'RSIZE    = ACB+8;                                        05335000
   INTEGER ACB'BSIZE    = ACB+9;                                        05340000
   LOGICAL ACB'RSIZE'L  = ACB'RSIZE;                                    05345000
   LOGICAL ACB'BSIZE'L  = ACB'BSIZE;                                    05350000
   LOGICAL ACB'CTL      = ACB+11;                                       05355000
   LOGICAL ACB'LSTATE   = ACB+12;                                       05360000
   LOGICAL ACB'MODW     = ACB+13;                                       05365000
   INTEGER ACB'ERROR    = ACB+14;                                       05370000
   INTEGER ACB'TLOG     = ACB+15;                                       05375000
   DOUBLE  ACB'FPTR     = ACB+16;                                       05380000
   LOGICAL ACB'FPLOW    = ACB+17;#;                                     05385000
DEFINE BUILD'ACB'' =                                                    05390000
   DOUBLE  ACB'BLK      = ACB+18;                                       05395000
   DOUBLE  ACB'RTFRCT   = ACB+20;                                       05400000
   DOUBLE  ACB'BTFRCT   = ACB+22;                                       05405000
   DOUBLE  ACB'HIBLK    = ACB+24;                                       05410000
   DOUBLE  ACB'FCB      = ACB+26;                                       05415000
   INTEGER ACB'SHCNT    = ACB+28;                                       05420000
   LOGICAL ACB'STATW    = ACB+29;                                       05425000
   INTEGER ACB'DADDR    = ACB+30;                                       05430000
   INTEGER ACB'BUFX     = ACB+31;                                       05435000
   INTEGER ACB'BUFUSED  = ACB+32;                                       05440000
   INTEGER ACB'BUFSIZE  = ACB+33;                                       05445000
   INTEGER ACB'SPVDEV   = ACB+34;                                       05450000
   INTEGER ACB'FMAVTX   = ACB+35;                                       05455000
   INTEGER ACB'SHCNTIN  = ACB+36;                                       05460000
   INTEGER ACB'DNTD     = ACB+37;#;                                     05465000
DEFINE BUILD'ACB''' =                                                   05470000
   INTEGER ACB'AMLD     = ACB+38;                                       05475000
   LOGICAL ACB'GSTW     = ACB+39;                                       05480000
   INTEGER ACB'SPTYRC   = ACB+40;                                       05485000
   LOGICAL ACB'SPFOPT   = ACB+41;                                       05490000
   LOGICAL ACB'SPAOPT   = ACB+42;                                       05495000
   INTEGER ACB'SPXDDX   = ACB+43;                                       05500000
   DOUBLE  ACB'NOWAITDA = ACB+44;                                       05505000
   << Word 46 is currently unused >>                                    05510000
   INTEGER ACB'NOWAITLDEV=ACB+47;                                       05515000
   DOUBLE  ACB'P1P2     =ACB+48;                                        05520000
   INTEGER ACB'P1       =ACB+48;                                        05525000
   INTEGER ACB'P2       =ACB+49#;                                       05530000
                                                                        05535000
$IF   << End of Module 97 ACB Defines.                      >>          05540000
                                                                        05545000
<<**********************************************************>>          05550000
<< The following define is used for Remote File Access.     >>          05555000
<< LOC'ACB copies the AFT onto the stack, and we use the    >>          05560000
<< file system declarations to access the RFA variables.    >>          05565000
<< The below declarations show the mapping of the RFA var-  >>          05570000
<< iables the the standard file system variables.           >>          05575000
<<**********************************************************>>          05580000
                                                                        05585000
DEFINE RFASTUFF =                                                       05590000
   INTEGER RFAFILE      =PACBV+0;                                       05595000
   INTEGER RFALINE      =PACBV+1;                                       05600000
   INTEGER RFAPDISP     =LACBV+0#;                                      05605000
                                                                        05610000
                                                                        05615000
<<**********************************************************>>          05620000
<< Used to calculate Q relative location of ACB and FCB     >>          05625000
<< ACBMQ is used in calls to LOC'ACB and UNLOC'ACB and FCBMQ>>          05630000
<< is used in calls to LOCK'CB.  We must P-Disable our-     >>          05635000
<< selves since  the LRA instruction does not work in split >>          05640000
<< stack mode if DB moves between instructions.             >>          05645000
<<**********************************************************>>          05650000
                                                                        05655000
DEFINE GET'ACB'Q'LOC =                                                  05660000
   PSEUDODISABLE;                                                       05665000
   ACBMQ := @ACB - @Q0;                                                 05670000
   PSEUDOENABLE#;                                                       05675000
                                                                        05680000
DEFINE GET'FCB'Q'LOC =                                                  05685000
   PSEUDODISABLE;                                                       05690000
   FCBMQ := @FCB - @Q0;                                                 05695000
   PSEUDOENABLE#;                                                       05700000
                                                                        05705000
DEFINE GET'FCB'PRIME'Q'LOC =   <<using FCB' instead of FCB>>            05710000
   PSEUDODISABLE;                                                       05715000
   FCBMQ := @FCB' - @Q0;                                                05720000
   PSEUDOENABLE#;                                                       05725000
                                                                        05730000
$PAGE                                                                   05735000
COMMENT                                                                 05740000
                                                                        05745000
If  present,  the  PACB buffering extension contains from one           05750000
to sixteen block buffers each having the following format:              05755000
   0             7         10  11  12  13  14  15                       05760000
--------------------------------------------------                      05765000
|                IOQ entry index                 | 0  BLKIOQX           05770000
|------------------------------------------------|                      05775000
| Blk. LDEV number  |     | U | R | D | W | M | P| 1  BLKFLAGW          05780000
|------------------------------------------------|                      05785000
|                 IOCB - Status                  | 2  BLKLSTAT          05790000
|------------------------------------------------|                      05795000
|            IOCB - Transmission log             | 3  BLKTLOG           05800000
|------------------------------------------------|                      05805000
|                                                | 4  BLKBLOCK          05810000
|                 Block number                   |                      05815000
|                                                | 5                    05820000
|------------------------------------------------|                      05825000
|                                                | 6                    05830000
|              Block Sector Address              |                      05835000
|                                                | 7                    05840000
|------------------------------------------------|                      05845000
|                                                | 8 BLKEXTBASE         05850000
|             Block Extent Base                  |                      05855000
|                                                | 9                    05860000
|------------------------------------------------|                      05865000
|                Block Extent Size               |10 BLKEXTSIZE         05870000
|------------------------------------------------|                      05875000
|                   Not Used                     | 11                   05880000
|------------------------------------------------|                      05885000
|                                                | 12 BLKBUFFER         05890000
|                                                |                      05895000
|                                                |                      05900000
|                      Buffer                    |                      05905000
|                                                |                      05910000
|                                                |                      05915000
|                                                |                      05920000
--------------------------------------------------                      05925000
                                                                        05930000
                                                                        05935000
                                                                        05940000
Discussion:                                                             05945000
                                                                        05950000
BLKBLOCK                                                                05955000
                 This is the block number of the data contained         05960000
                 in  the buffer.  A  value  of  -1D indicates           05965000
                 that the buffer is empty.                              05970000
BLKBUFFER                                                               05975000
                 If ACB buffering is used, this is the buffer           05980000
                 location.                                              05985000
BLKDADDR                                                                05990000
                 This is the block's logical device and sector          05995000
                 number.                                                06000000
BLKDIRTY                                                                06005000
                 This flag is set if the contents of the buffer         06010000
                 has been modified.  When the block buffer is           06015000
                 reused this flag is checked  to see if the             06020000
                 block needs to be written to the device.               06025000
BLKDONTWAIT                                                             06030000
                 This bit is on if  the  buffer's  I/O  was             06035000
                 completed  and  the BLKIOQX and pending bits           06040000
                 cleared, but the status of the I/O was not             06045000
                 checked.  This is done to free valuable  DRQ           06050000
                 entries.   If the  bit  is on, then BLKLSTAT           06055000
                 must be checked before using the block.                06060000
BLKEXTBASE                                                              06065000
                 This is the sector address of the base of the          06070000
                 extent in  which the block resides.  It is             06075000
                 used for I/O disk caching.                             06080000
BLKEXTSIZE                                                              06085000
                 This is the size, in sectors, of the extent in         06090000
                 which the  block resides.  Also used for I/O           06095000
                 disk caching.                                          06100000
BLKFLAGS                                                                06105000
                 These  are  the  miscellaneous  flags                  06110000
                 associated   with    the block, which are              06115000
                 described separately.                                  06120000
BLKIOCB                                                                 06125000
                 This  is  the  IOCB returned by the I/O system         06130000
                 when the block I/O has completed.  On a                06135000
                 blocked I/O request this is obtained from the          06140000
                 ATTACHIO call.  On an unblocked I/O request            06145000
                 this is obtained from WAITFORIO.                       06150000
BLKIOCOMP                                                               06155000
                 This is the buffer modified flag (BLKDIRTY)            06160000
                 and the I/O in  progress  flag  (BLKIOPEND),           06165000
                 which  are  described separately.  This field          06170000
                 is usually interrogated to  see if it contains         06175000
                 the value 2, which means that the buffer has           06180000
                 been modified but not yet written to the               06185000
                 device.                                                06190000
BLKIOOUT                                                                06195000
                 This is the mode of the I/O operation  for             06200000
                 the  block.  It is set by a write and cleared          06205000
                 by a read.                                             06210000
BLKIOPEND                                                               06215000
                 This is the I/O in progress flag.  It is set           06220000
                 if the I/O is pending, it is cleared when the          06225000
                 I/O has completed.                                     06230000
BLKIOQX                                                                 06235000
                 This is the IOQ index of the unblocked I/O             06240000
                 request  for the  block.   It  is used as the          06245000
                 argument to WAITFORIO, which insures the               06250000
                 completion of the I/O request.                         06255000
BLKLDEV                                                                 06260000
                 This is the logical device number of the               06265000
                 block.                                                 06270000
BLKLSTAT                                                                06275000
                 The I/O status part of the IOCB  consists  of          06280000
                 the  PCB number  and  the  error  code  for            06285000
                 the  completed  I/O request.                           06290000
BLKREVERSE                                                              06295000
                 This bit is not  currently  used  but  has             06300000
                 been  reserved  for FREADBACKWARDS  (reading           06305000
                 a tape backwards) to a buffered file, which is         06310000
                 not currently supported.                               06315000
BLKTLOG                                                                 06320000
                 The transmission log part of the IOCB is the           06325000
                 number  of words or bytes transferred by the           06330000
                 the I/O request.                                       06335000
BLKUNALLOCEXT                                                           06340000
                 This bit is on if the block in this buffer             06345000
                 was  read  from  an unallocated extent.  In            06350000
                 this case, the extent was not allocated and            06355000
                 the buffer was simply flushed with  fill               06360000
                 characters.   The block    must    be                  06365000
                 allocated    before   writing   to   it.               06370000
;                                                                       06375000
                                                                        06380000
<<-------------------------------------------------------------------->>06385000
<<                                                                    >>06390000
<<                     BUFFERING EXTENSION DEFINITIONS                >>06395000
<<                                                                    >>06400000
<<-------------------------------------------------------------------->>06405000
                                                                        06410000
DEFINE                                                                  06415000
BLK'LDEV       =BLK'FLAGW.(0:8)#,                                       06420000
BLK'FLAGS      =BLK'FLAGW.(8:8)#,  << I/O flags >>                      06425000
BLK'UNALLOCEXT =BLK'FLAGW.(10:1)#, <<block from un-allocated ext.>>     06430000
BLK'REVERSE    =BLK'FLAGW.(11:1)#, << block for tape FREADBACKWARDS>>   06435000
BLK'DONTWAIT   =BLK'FLAGW.(12:1)#, << I/O status not checked >>         06440000
BLK'IOOUT      =BLK'FLAGW.(13:1)#,  << last I/O was write? >>           06445000
BLK'DIRTY      =BLK'FLAGW.(14:1)#,  << buffer modified? >>              06450000
BLK'IOCOMP     =BLK'FLAGW.(14:2)#,  << I/O complete - not dirty >>      06455000
BLK'IOPEND     =BLK'FLAGW.(15:1)#;  << I/O in progress? >>              06460000
                                                                        06465000
DEFINE                                                                  06470000
BLKIOQX     =BLK(0)#,          << IOQ entry number.         >>          06475000
BLKFLAGW    =BLK(1)#,          << I/O and assorted flags.   >>          06480000
BLKDONTWAIT =BLKFLAGW.(12:1)#, << Need to check status.     >>          06485000
BLKIOPEND   =BLKFLAGW.(15:1)#, << I/O pending bit.          >>          06490000
BLKIOCOMP   =BLKFLAGW.(14:2)#, << I/O complete-not dirty.   >>          06495000
BLKIOCB     =BLKDBL(1)#,       << IOCB, TLOG & status.      >>          06500000
BLKBLOCK       =BLKDBL(2)#;                                             06505000
                                                                        06510000
$PAGE                                                                   06515000
<<---------------------------------------------------------->>          06520000
<<                                                          >>          06525000
<<            AOPTION's and FOPTION's                       >>          06530000
<<                                                          >>          06535000
<<---------------------------------------------------------->>          06540000
                                                                        06545000
COMMENT-------------- FOPTIONS -------------------------------          06550000
                                                                        06555000
      Bits               Meaning                                        06560000
--------------------------------------------------------------          06565000
(0:2)          | Unused                                                 06570000
--------------------------------------------------------------          06575000
(2:3)          | File type - 000 - Standard                             06580000
               |             001 - KSAM                                 06585000
               |             010 - RIO                                  06590000
               |             100 - CIR                                  06595000
               |             110 - MSG                                  06600000
--------------------------------------------------------------          06605000
(5:1)          | Disallow :FILE - 0 - Allow :FILE                       06610000
               |                  1 - No :FILE equation                 06615000
--------------------------------------------------------------          06620000
(6:1)          | MPE Tape Labels- 0 - Unlabeled tape                    06625000
               |                  1 - Labeled tape                      06630000
--------------------------------------------------------------          06635000
(7:1)          | CCTL             0 - NOCCTL                            06640000
               |                  1 - CCTL                              06645000
--------------------------------------------------------------          06650000
(8:2)          | Record Format - 00 - Fixed                             06655000
               |                 01 - Variable                          06660000
               |                 10 - Undefined                         06665000
               |                 11 - Special spoolfile                 06670000
--------------------------------------------------------------          06675000
(10:3)         | Default Designator                                     06680000
               |    000 - Filename                                      06685000
               |    001 - $STDLIST                                      06690000
               |    010 - $NEWPASS                                      06695000
               |    011 - $OLDPASS                                      06700000
               |    100 - $STDIN                                        06705000
               |    101 - $STDINX                                       06710000
               |    110 - $NULL                                         06715000
--------------------------------------------------------------          06720000
(13:1)         | ASCII/Binary - 0 - Binary                              06725000
               |                1 - ASCII                               06730000
--------------------------------------------------------------          06735000
(14:2)         | Domain - 00 - New file                                 06740000
               |          01 - Old permanent file                       06745000
               |          10 - Old Temporary file                       06750000
               |          11 - Old perm or temp file                    06755000
--------------------------------------------------------------          06760000
                                                                        06765000
------------------ AOPTIONS ----------------------------------          06770000
                                                                        06775000
--------------------------------------------------------------          06780000
(0:2)          | Unused                                                 06785000
--------------------------------------------------------------          06790000
(2:1)          | Global AFT - 0 - Not global AFT                        06795000
               |              1 - Global AFT requested                  06800000
--------------------------------------------------------------          06805000
(3:1)          | File Copy                                              06810000
               |    0 - Access in file's native mode, ie. as            06815000
               |        a message or KSAM file if applicable.           06820000
               |    1 - Access as a standard sequential file.           06825000
--------------------------------------------------------------          06830000
(4:1)          | No-wait - 0 - Normal, not nowait                       06835000
               |           1 - Nowait I/O is on for the file            06840000
--------------------------------------------------------------          06845000
(5:2)          | Multi-access                                           06850000
               |    00 - Non-multi-access                               06855000
               |    01 - Intra-job multi-access only                    06860000
               |    10 - Inter-job multi-access allowed                 06865000
--------------------------------------------------------------          06870000
(7:1)          | Inhibit buffering - 0 - Buffered access                06875000
               |                     1 - NOBUF acess                    06880000
--------------------------------------------------------------          06885000
(8:2)          | Access mode                                            06890000
               |    00 - Default                                        06895000
               |    01 - Exclusive                                      06900000
               |    10 - EAR, exclusive access with read                06905000
               |    11 - Share                                          06910000
--------------------------------------------------------------          06915000
(10:1)         | Dynamic locking - 0 - NO locking allowed               06920000
               |                   1 - Locking allowed                  06925000
--------------------------------------------------------------          06930000
(11:1)         | Multi-record access - 0 - No MR allowed                06935000
               |                       1 - MR is on                     06940000
--------------------------------------------------------------          06945000
(12:4)         | Access type                                            06950000
               |    0000 - Read only                                    06955000
               |    0001 - Write only                                   06960000
               |    0010 - Write save only                              06965000
               |    0011 - Append only                                  06970000
               |    0100 - Read/write                                   06975000
               |    0110 - Execute access (privileged only)             06980000
               |    1111 - Skip security, read only (priv only)         06985000
--------------------------------------------------------------;         06990000
                                                                        06995000
<<**********************************************************>>          07000000
<<**                                                      **>>          07005000
<<**                  END OF INCLACB                      **>>          07010000
<<**                                                      **>>          07015000
<<**********************************************************>>          07020000
