-- VultureDefs.mesa -- Maurice Herlihy August 12, 1982 -- Everything you need to know about Grapevine archive files. -- Mostly taken from [indigo]MS>Spiller.mesa DIRECTORY BodyDefs, Space, VMDefs; VultureDefs: DEFINITIONS = { DirEntry: TYPE = MACHINE DEPENDENT RECORD[ bodyStart: LONG CARDINAL, -- words from start of file; 0 for deleted -- bodyLength: LONG CARDINAL, -- words -- textStart: LONG CARDINAL, -- words from start of file, for MTP -- textLength: BodyDefs.ItemLength -- bytes, for MTP -- ]; Directory: PUBLIC TYPE = LONG POINTER TO DirEntry; DirHeader: TYPE = MACHINE DEPENDENT RECORD[spare: CARDINAL]; entriesPerPage: INT = (VMDefs.pageSize-SIZE[DirHeader]) / SIZE[DirEntry]; DirPageContents: TYPE = MACHINE DEPENDENT RECORD[ header: DirHeader, entries: ARRAY [0..entriesPerPage) OF DirEntry ]; DirPage: TYPE = LONG POINTER TO DirPageContents; DirArray: TYPE = ARRAY [0..LAST[CARDINAL]] OF DirPageContents; DirPages: TYPE = LONG POINTER TO DirArray; }.