recordformatspec STACKFM

recordformat BOUNDFM(c
  integer LOWER,
  integer UPPER,
  integer MULT C
)

recordformat AFM(c
  integer DIMENSION,
  integer TOTALSIZE,
  integer ZERODISPLACEMENT,
  integer DV,
  integer LOCALFRAME,
  integer BASE,
  record (BOUNDFM) array BOUND (1:7) C
)

constant record (AFM) name ATYPE == 0

recordformat VARFM(c
  integer FLAGS,
  byte integer BASE,
  byte integer PRIM,
  byte integer TYPE,
  byte integer FORM,
  ( c
    long real RVAR C
  or c
    integer DISP,
    ( c
      integer EXTRA C
    or c
      record (AFM) name ADATA C
    ) c
  ),
  ( c
    integer FORMAT C
  or c
    integer SCALE C
  ),
  integer AREA C
)

recordformat OLFM(c
  integer OPER,
  record (STACKFM) name LINK C
)

recordformat XFM(c
  integer XSIZE,
  record (STACKFM) name INDEX C
)

recordformat DATAFM(c
  record (VARFM) V,
  integer VARNO,
  record (VARFM) name FV,
  ( c
    integer BIAS C
  or c
    byte integer REG,
    byte integer LABEL C
  ),
  record (STACKFM) name PARAMS,
  record (STACKFM) name RECORD,
  ( c
    integer OPER,
    record (STACKFM) name LINK C
  or c
    record (OLFM) OPLINK C
  ),
  ( c
    integer XSIZE,
    record (STACKFM) name INDEX C
  or c
    record (XFM) X C
  ) c
)

recordformat MEMBERFM(c
  integer CONST,
  integer ITEMS,
  record (STACKFM) name A,
  record (STACKFM) name B,
  record (MEMBERFM) name LINK C
)

constant record (MEMBERFM) name MEMBERFMTYPE == 0

recordformat STACKFM(c
  record (VARFM) V C
or c
  record (DATAFM) DATA C
or c
  integer FLAGS,
  byte integer BASE,
  byte integer PRIM,
  byte integer TYPE,
  byte integer FORM,
  ( c
    long real RVAL C
  or c
    integer RHIGH,
    integer RLOW C
  or c
    ( c
      integer DISP,
      ( c
        integer EXTRA C
      or c
        record (AFM) name ADATA C
      ) c
    ),
    ( c
      integer FORMAT C
    or c
      integer SCALE C
    ),
    integer AREA,
    integer VARNO,
    ( c
      record (VARFM) name FV C
    or c
      record (MEMBERFM) name MEMBERS C
    ),
    ( c
      integer BIAS C
    or c
      byte integer REG,
      byte integer LABEL C
    ),
    record (STACKFM) name PARAMS,
    record (STACKFM) name RECORD,
    ( c
      integer OPER,
      record (STACKFM) name LINK C
    or c
      record (OLFM) OPLINK C
    ),
    ( c
      integer XSIZE,
      record (STACKFM) name INDEX C
    or c
      record (XFM) X C
    ) c
  ),
  record (STACKFM) name USING,
  record (STACKFM) name STACK C
)

constant record (STACKFM) name STACKFMTYPE == 0

recordformat WITHFM(c
  integer KEY,
  record (DATAFM) DATA,
  record (WITHFM) name LINK C
)

constant record (WITHFM) name WITHFMTYPE == 0

recordformat WORKFM(c
  integer SIZE,
  integer DISPLACEMENT,
  integer VALIDITY C
)

endoffile