next up previous contents index
Next: ALFA exchange format Up: Technical details Previous: FZINFO - obtain

FZ control bank description

link 2  points to the associated text buffer

@:   address is LQFy, shortened to '@'      y = F or I or X
@ -5  LUNy

@ +0  MSTATy   status word of the control bank
      MEDIUy  bit   1-3:  medium:   0   disk,   1 T  tape, normal
                                    2 K disk,   3 TK tape, user
                                    4 C disk,   5 TC tape, channel
                                    6 M memory

      IFIFOy  bit   4-6:  file fmt: 0   native
                                    1 X exchange sequential
                                    2 D direct-access
                                    3 M memory
                                    4 A alfa

      IDAFOy  bit     7:  data fmt: 0 native,  1 exchange

      IACMOy  bit  8-10:  access:   0 F Fortran
                                      1 Y special
                                      2 L c library
                                      3 C channel

              bit    11:  read  permission
              bit    12:  write permission
              bit 13-14:  NEOF = 0, 1, 2, or 3
              bit    15:  option S for separate d/ss
      IUPAKy  bit    16:  option U for unpacked d/ss

@  1  IADOPy  Channel:  adr of user routine
              Memory:   current memory pointer

@  2  IACTVy  last activity:

      =  0  file unused              10  switch input to output
                                         or: rewind to over-write
                                         or: new output file connected
         1  read start-of-run        11  write start-of-run
         2  read d/s                 12  write d/s
         3  read end-of-run          13  write d/s, buffer flushed
         4  read Zebra  end-of-file  14  write end-of-run
         5  read system end-of-file  15  write end-of-file
         6  read end-of-data         16  write end-of-data
         7  attempted read beyond    17  attempted write beyond EoD
         8  rewind after read        18  rewind after write for input
            or: new input file connected

@  3  INCBFy  incr. to go to the buffer param.:  LBPARy = LQFy + INCBFy
@  4  LOGLVy  logging level

@  5  MAXREy  native mode:    maximum logical record size
              exchange file format:  physical record size
@  6
@  8  Memory: LMEM:  User memory starts at IQ(LMEM)
@  9  Memory: NWMEM: Size of the user memory

@+11  number of system file marks
@ 12  number of Zebra EoF signals
@ 13  number of   end-of-run records
@ 14  number of start-of-run records
@ 15  number of pilot records
@ 16  number of non-empty d/s
@ 17  number of     empty d/s
@ 18  number of errors
@ 19  number of Mwords read/written
@ 20  number of  words read/written (up to 1 M)
@ 21  number of good logical records
@ 22  number of good physical records (exchange file format)
@ 23  number of steering blocks (exchange file format)
@ 24  number of conversion problems (exchange data format)

@ 26  input: last read status returned
@ 27  input: LRTYP status of last record read
@ 28  number of pilots printed by last statistic message
@ 29  current run number
@ 30  input:  pending:  0 nothing,  1 EoF,  2 st/end of run

@ 31  DsA word 1:  record # for current d/s
@ 32  DsA word 2:  offset
@ 33  current record number for direct-access
      if -ve: FZINXT called, reset from previous
@ 34  saved DsA word 1 of the direct access table
@ 35  word 2

Control bank for input

@ 41  NWTB, number of table words
@ 42  NWBK, number of words of bank material
@ 43  LENTRY, entry adr to d/s

@ 50  NWIOI, number of words in I/O characteristic
@ 51 -> 66   I/O characteristic for last user header vector

@ 68  NWSEG, number of words in the segment table
@ 69 ->128   last segment table read

@130  NTBE, number of early table words (only if native file format)
@131 -> 170  early table

  buffer parameters in the control bank,  LBPARI = LQFI + INCBFI

      -9  non-zero if last LR abended
          next physical record ready in the buffer if N4ENDI not zero
      -7  expected next PhR number
      -6  zero if current block is steering,
            = 1 if last fast block in burst, =2 if last-but-one, etc
      -5  number of fast blocks to follow current block
      -4  N4SKII, # of words to be skipped before next transmission
      -3  N4RESI, # of words still to be read for current LR
      -2  N4DONI, # of words of the current buffer already done
      -1  N4ENDI, # of words in buffer before start of next LR
                  if = buffer-size: record continues in next PhR
LBPARI+0  maximum size of buffer, file words
      +1  expected size of PhR, machine words
      +2  displacement from LBPAR to start-of-buffer LSTO
      +3  off-set from start-of-buffer to read position for packed records
      +4  off-set for writing

          LSTO = LBPARI + IQ(LBPARI+2)

 LSTO -1  space for left half of double-precision number spanning PhRs
 LSTO +0  start-of-buffer: read (if 32-bit machine) or unpack into here

Control bank for output

@ 37  limit: Mega-words
@ 38  limit: words
@ 39  original parameter from FZLIMI

  buffer parameters in the control bank,  LBPARX = LQFX + INCBFX

      -6  zero if current block is steering,
            = 1 if last fast block in burst, =2 if last-but-one, etc
      -5  number of fast blocks to follow current block
      -4
      -3  N4RESX, # of words still to be done for current LR
      -2  N4DONX, # of words of the current buffer already done
      -1
LBPARX+0  maximum size of buffer, file words
      +1  size of PhR, machine words
      +2  displacement from LBPAR to start-of-buffer LSTO
      +3  off-set for input
      +4  off-set for output

          LSTO = LBPARX + IQ(LBPARX+2)

      -1  free to allow packing with shift
 LSTO +0  start-of-buffer for accumulation

      last buffer-word + 1:
          space for right half of a double-precision number
                spanning physical records


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