compile insert SP.MFS.COMMON
* This is the LABELLED COMMON area for the SPINDEX MFS and the
* Background indexing routines...
*
COMMON /XSELECT.FLAGS/  SP.VAR0@, SP.VAR1@, SP.VAR2@, SP.VAR3@, SP.VAR4@, SP.SHO@, SP.PRN@, SP.IGN@, SP.MAK@, SP.USE@, SP.BEL@, SP.FOR@, SP.FAND@, SP.LASTX@, SP.LASTS@, SP.PCODE@
COMMON /FLAG.DEFAULTS/  SP.ERR@, SP.DSHO@, SP.DPRN@, SP.DIGN@, SP.DMAK@, SP.DUSE@, SP.DBEL@, SP.DFOR@, SP.DFAND@
COMMON /SPINDEX.COMMON/ SP.TABLE@, SP.TABLEDATA@, SP.TABLEKEYS@(10), SP.SORTKEYS@, SP.RN.NR@, SP.STAT@
COMMON /MSG.IMAGES/     IMAGE1@, IMAGE2@, IMAGE3@
*
* SP.TABLE@         ;* This carries the current spindex table, with overflow stored
*                   ;* in the ram.drive.file defined in sp.parms
* SP.TABLEDATA@     ;* Carries the data that tracks the 10 most recent tables used
*                   ;* in a readnext statment.
* SP.TABLEKEYS@(10) ;* This is a dimensionsed array that carries 10 blocks
*                   ;* of keys read from disk via this readnext.  The 10
*                   ;* blocks correspond with the 10 sets of tabledata stored
*                   ;* in sp.tabledata@.  This is done so that actual disk I/O
*                   ;* is eliminated when getting each record id via this
*                   ;* readnext...
* SP.SORTKEYS@      ;* If a sort has taken place, then this is the list of
*                   ;* resolved keys...
* SP.RN.NR@         ;* This is the readnext number that tells us what readnext
*                   ;* block of keys we are currently processing
* SP.STAT@          ;* the station's ID, usually the same as @station, but
*                   ;* could be different if on a banyon-vines network
*---------------------
*
* SP.PCODE@         ;* used to communicate to sp.parms.mfs that we are doing
*                   ;* an authorized access of spinp 'P' record...usually set
*                   ;* to the value of 'ESTER'
* SP.VAR1@          ;* THIS IS USED BY XSELECT TO TELL ALL OTHER PROCESSES,
*                   ;* PARTICULARLY XREADNEXT, THAT AN XSELECT HAS JUST TAKEN
*                   ;* PLACE; XREADNEXT WILL IMMEDIATELY TURN SP.VAR1@ OFF AND
*                   ;* START PROCESSING THE NEW SELECT DATA...
* SP.VAR2@          ;* USED BY SPINDFEX SELECT PROCESS TO TELL SP.MFS THAT
*                   ;* AN AREV SELECT IS NOW TAKING PLACWE AND THAT THE
*                   ;* CLEARSELECT FUNCTION MUST NOT BE EXECUTED AT COMPLETION
*                   ;* OF THE AREV SELECT!
* SP.VAR3@          ;* used ONLY by sp.mfs to handle readnext processing of
*                   ;* of sorted keys...
* SP.VAR4@          ;* Used by XSELECT to tell SPINDEX version of
*                   ;* RTP18.ENGLISH that the actual AREV select must be
*                   ;* perrformed instead of another call to XSELECT...
* SP.FOR@           ;* used for passing flags between certain processes
*                   ;* such as between xselect and sp.q33 regarding use of OR
*                   ;* operation...
* SP.FAND@          ;* forces an AND operation...with no msg prompt
* SP.LASTX@         ;* text of the last XSELECT statement
*
*
*
COMMON /SP.MFS.COMMON/ SP.FNAME@, SP.HAND@, SP.FNRS@, SP.ACC@, SP.STP1@, SP.STP2@, SP.1@, SP.DOS@, SP.TKEY@, SP.TFIL@(4), SP.PFIL@, SP.PARMS, SP.CODE@, SP.SNP1@, SP.SNP2@, SP.FILE@, SP.XREF@, SP.FIL@, SP.FLD@, SP.GRP@, SP.BUILD@
*
* SP.FNAME@ ;* All filenames that have been opened and correspond to
*              ;* the SP.HAND@ array
* SP.HAND@   ;* All file handles used with OPEN statement, correspoinding to
*              ;* the SP.FNAME@ array
* SP.FNRS@   ;* Actual SPINDEX File Numbers; in parallel with SP.FNAME@
*              ;* and SP.HAND@ above

* SP.ACC@    ;* Field 1 has a flag; TRUE = allowed access; FALSE =no access
*              ;* Field 2 contains the @STATION relative position in SPINP 'P'
*              ;* Parameters File.  This position tells SP.BUILD what volume
*              ;* to use for RAM drive, etc.
* SP.STP1@     ;* The current directories that SP.BACKGROUND was at when interrupted
*                      Field 001:  start.day   (directory)
*                      Field 002:  start.hr        ""
*                      Field 003:  days.left.to.check
*                      Field 004:  hrs.left.to.check
*
* SP.STP2@     ;* USED BY SP.MFS to determine if the user wants to save the
*                 entire set of changed data fields, or just the SPINDEX
*                 INDEXED data fields that have changed!
*
* SP.1@        ;* Used by sp.mfs to hold the file variable of the current file
*                 dictionary during sort operations...
*
* SP.DOS@      ;* Name of DOS file that holds the name of the DOS extensions
*                 used during low level SPINDEX Boolean operations
* SP.TKEY@     ;* Used by SP.I01 to hold the keys for the TABLE1, TABLE2,
*                 RESULT, and BOOLEAN tables during table processing...
*                 This data is in the form of a @FM delimited variable.
* SP.TFIL@(4)  ;* Used by SP.I01 to hold the TABLE file variables,
*                 where (1)=table1; (2)=result/table2; (3)=unused; (4)=Boolean
* SP.PFIL@     ;* SPINDEX SPINP Parms file
* SP.PARMS     ;* The PARMS variable read from the SPINP
* SP.CODE@     ;* <1> used by sp.r04 (RTP18.ENGLISH) to tell whether or not to
*                     read the xselect voc file item...stores @account here
*                 <2> used to store the last xref key read by sp.mfs
*                 <3> used to store the list of 500 xref keys read by sp.mfs
*                     which is cleared out at the end of a series of readnexts
*
* SP.SNP1@      ;* used to store the RAM.STORE file's file handle for sp.d06 MFS
* SP.SNP2@      ;* not used
* SP.FILE@      ;* The file NAME that is currently being updated by the trans
* SP.XREF@      ;* Used to store the !filename data for all AREV indexed files;
*                 The variable uses SP.FIL@ to determine which attribute to
*                 look at; then, within each attribute is the same !filename
*                 record that is stored by AREV (see REVMEDIA vol 2, issue 1
*                 pg 6,7).  We load that data here whenever the INSTALL is run
*                 and then we can use that data to determine whether a
*                 relational update is taking place!  Because, on relational
*                 update, we CANNOT write the update to disk!
* SP.FIL@      ;* The actual indexed SP.FIL@
* SP.FLD@     ;* The attribute number of the current indexed field
* SP.GRP@     ;* The actual GROUP number that the indexed field belongs to
*
* SP.BUILD@     ;* flag indicating that SP.BUILD is in progress
*
* 08/03/93 - rkh comment out old copyright
*EQUATE COPYRIGHT TO "COPYRIGHT (C) 1991, 1992, BY SEARCH TECHNOLOGIES, ALL RIGHTS RESERVED"
*
EQUATE ONE.NULL TO CHAR(31)
EQUATE TWO.NULL TO CHAR(31): CHAR(31)
EQUATE SPINDEX.FOUR           TO "SP": CHAR(125): CHAR(126)
EQUATE SPINDEX.SORT.FOUR      TO "SP": CHAR(123): CHAR(156)
EQUATE SPINDEX.SORT.KEYS.FOUR TO "SP": CHAR(122): CHAR(157)
EQUATE SPINDEX.SORT.REAL.KEYS TO "SP": CHAR(121): CHAR(158)
*
EQUATE NULL.TABLE TO STR( CHAR(0), 3): CHAR(11): CHAR(0): CHAR(0): CHAR(0): CHAR(129): CHAR(128): CHAR(129): CHAR(128)
* Source Date: 09:27:40  04 OCT 1993  Build ID: SPINDEX_21*1.0.14  Level: 1.0
