-- JaMMasterDefs.mesa -- Written by: John Warnock, January 1979. -- Last changed by Doug Wyatt, September 29, 1980 11:31 AM DIRECTORY StreamDefs: FROM "StreamDefs" USING [StreamHandle]; -- This definitions file provides the basic definitions required by the -- JaM Machine. Included are the object definitions, the stack definitions, -- and some of the basic procedural interface definitions. JaMMasterDefs: DEFINITIONS = BEGIN Object: TYPE = MACHINE DEPENDENT RECORD [ litflag: {lit,nolit}, DataField: SELECT Type: MType FROM IntegerType => [IntegerVal:INTEGER], LongIntegerType => [LongIntegerVal:LONG INTEGER], Mesa5RealType => [RealVal:LONG UNSPECIFIED], BooleanType => [BooleanVal:BOOLEAN], StringType => [Offset: [0..1], Length: [0..77777B], Address:LONG POINTER], StreamType => [SHandle:StreamDefs.StreamHandle], CommandType => [Command:CommandIndex], DictType => [Address:LONG POINTER], ArrayType => [Length: CARDINAL, ArrayPtr: LONG POINTER], StackType => [StkPtr: Stack], FrameType => [FrmPtr:POINTER TO Frame], MarkType => [], UserType => [Type: CARDINAL, Address: LONG POINTER], NullType => [], RealType => [RealVal:REAL], ENDCASE]; MType : TYPE = MACHINE DEPENDENT { IntegerType,LongIntegerType,Mesa5RealType, BooleanType,StringType,StreamType,CommandType, DictType,ArrayType,StackType,FrameType,MarkType, UserType,NullType,RealType,(17B)}; CommandIndex:TYPE = [0..MaxCommands]; CommandArray:TYPE = ARRAY CommandIndex OF PROCEDURE; MaxCommands:CARDINAL = 255; -- Basic stack definitions. Frame: TYPE = MACHINE DEPENDENT RECORD [opstk,dictstk,execstk:Stack]; Stack:TYPE = POINTER TO StackLink; StackLink: TYPE = POINTER TO StackEntry; StackEntry: TYPE = MACHINE DEPENDENT RECORD [ob:Object,nextEntry:StackLink]; END. DKW July 25, 1980 4:06 PM made everything MACHINE DEPENDENT changed RealType to Mesa5RealType (Mesa5-style REALs) added new RealType (Mesa6-style Ieee standard REALs)(670)\435b6B