constinteger Max Bound       =      7
recordformat Boundfm(integer Lower, Upper, Mult)
recordformat Afm(integer Dimension,
                           Total Size,
                           Zero Displacement,
                           DV,
                           Local Frame,
                           Base,
    record(Boundfm)array Bound(1:Max Bound))

constrecord(Afm)name A type == 0             {for NEW}

recordformat Varfm(integer Flags,
                    byte Base, Prim,
                 byte  Type, Form,
                 (longreal Rvar or
                  integer Disp, (integer Extra or record(Afm)name Adata)),
                 (integer Format or integer Scale),
                 integer Area)


recordformatspec Stackfm
recordformat Olfm(integer  Oper, record(Stackfm)name Link)
recordformat  Xfm(integer Xsize, record(Stackfm)name Index)

recordformat Datafm( c
        record(Varfm)    V,
        integer Varno,
        record(Varfm)name Fv,
        (integer Bias or byte Reg, Label),
        record(Stackfm)name  Params, Record,
        (integer Oper, record(Stackfm)name Link or record(Olfm) Oplink),
        (integer Xsize, record(Stackfm)name Index or record(Xfm) X))

recordformat Memberfm(integer Const, Items,
                       record(Stackfm)name A, B,
                       record(Memberfm)name Link)

constrecord(Memberfm)name Memberfm Type == 0

recordformat Stackfm( c
   record(Varfm)     V                   or
   record(Datafm)    Data                or
   integer Flags,
   byte Base, Prim,
   byte  Type, Form,
   (longreal Rval or integer Rhigh, Rlow c
     or (integer Disp, (integer Extra or record(Afm)name Adata)),
   (integer Format or integer Scale),
   integer Area,
   integer Varno,
   (record(Varfm)name Fv or record(Memberfm)name Members),
   (integer Bias or byte Reg, Label),
   record(Stackfm)name     Params, Record,
   (integer  Oper, record(Stackfm)name Link  or record(Olfm) Oplink),
   (integer Xsize, record(Stackfm)name Index or record(Xfm) X)),
   record(Stackfm)name          Using, Stack)

constrecord(Stackfm)name Stackfm Type == 0

begin
  record (stackfm) V
  routine do(record (stackfm) name  V)
    write(v_Base, 0)
    write(v_Disp, 0)
    write(v_Oper, 0)
  end

  do(V)
  
endofprogram