next up previous contents index
Next: FZRUN - write Up: User specifications for Previous: FZLIMI - limit

FZODAT - storing and recovering the direct access table

The routines FZODAT and FZIDAT store and retrieve the direct-acces table onto and from a file.

See section refsec:random-access ``Usage for random access'' for explanations.

To store the Direct-access Table bank:

CALL FZODAT (LUN,IXDIV,!LDAT)

with    LUN:  logical unit number

      IXDIV:  index of division or store having the DaT bank

      !LDAT:  address of the DaT bank, if non-zero
If LDAT is zero the DaT 'forward reference' record is written to be updated later to contain the address of the DaT; this is useful only as the very first record on the file.

If LDAT is non-zero the DaT bank is written and the forward reference record is updated if possible.

To retrieve the DaT bank:

CALL FZIDAT (LUN,IXDIV,!LSUP,JBIAS)

with    LUN:  logical unit number

      IXDIV:  index of the division to receive the DaT bank

           The d/s read is linked into a pre-existing d/s as directed by
           !LSUP and JBIAS, which have the same significance as for MZLIFT:

      !LSUP:  if JBIAS < 1: !LSUP is the supporting bank,
      JBIAS:                 connection to link LQ(!LSUP-JBIAS)
                              IQUEST(13) returns the entry adr to the d/s

               if JBIAS = 1: *!LSUP is the supporting link,
                              connection to *!LSUP* (top-level d/s)
                              !LSUP* returns the entry adr to the d/s

               if JBIAS = 2: stand-alone d/s, no connection
                              !LSUP* returns the entry adr to the d/s

     Status return:  IQUEST(1) =  0  success
                                  -1  DaT not found
                                  -2  file is empty


Janne Saarela
Mon May 15 08:34:47 METDST 1995