-- Environment.mesa (last edited by: Knutsen on: July 16, 1979 6:26 PM) Environment: DEFINITIONS = BEGIN -- Fundamental properties of the OIS processor bitsPerWord: CARDINAL = 16; bitsPerByte, bitsPerCharacter: CARDINAL = 8; bytesPerWord, charsPerWord: CARDINAL = bitsPerWord/bitsPerCharacter; logBytesPerWord, logCharsPerWord: CARDINAL = 1; -- logarithm of bytesPerWord wordsPerPage: CARDINAL = 256; bytesPerPage, charsPerPage: CARDINAL = wordsPerPage*bytesPerWord; logWordsPerPage: CARDINAL = 8; -- logarithm of wordsPerPage logBytesPerPage, logCharsPerPage: CARDINAL = logWordsPerPage + logBytesPerWord; -- logarithm of bytesPerPage -- The following is the base pointer to the first 64K of virtual memory first64K: Base = LOOPHOLE[LONG[0]]; maxINTEGER: INTEGER = LAST[INTEGER]; -- 32767 minINTEGER: INTEGER = FIRST[INTEGER]; -- -32768 maxCARDINAL: CARDINAL = LAST[CARDINAL]; -- 177777B maxLONGINTEGER: LONG INTEGER = LAST[LONG INTEGER]; -- 2147483647 minLONGINTEGER: LONG INTEGER = FIRST[LONG INTEGER]; -- -2147483648 maxLONGCARDINAL: LONG CARDINAL = LAST[LONG CARDINAL]; -- 4294967295 Byte: TYPE = [0..255]; Word: TYPE = [0..65535]; Long, LongNumber: TYPE = MACHINE DEPENDENT RECORD [ SELECT OVERLAID * FROM lc => [lc: LONG CARDINAL], li => [li: LONG INTEGER], lp => [lp: LONG POINTER], lu => [lu: LONG UNSPECIFIED], any, num => [lowbits, highbits: CARDINAL], ENDCASE]; -- Common types used throughout Pilot Base: TYPE = LONG BASE POINTER; Block: TYPE = RECORD [ -- descriptor for arbitrary sequence of bytes blockPointer: LONG POINTER, startIndex, stopIndexPlusOne: CARDINAL]; maxPagesInVM: CARDINAL = 65535; -- Note that this is one less than the number of VM pages provided by the hardware; the highest numbered VM page is pre-empted for system purposes maxPagesInMDS: CARDINAL = 256; PageNumber: TYPE = [0..maxPagesInVM]; PageOffset: TYPE = [0..maxPagesInVM]; PageCount: TYPE = [0..maxPagesInVM]; END. LOG Time: April 26, 1978 4:34 PM By: McJones Action: Created file Time: May 3, 1978 1:46 PM By: Lauer Action: Merged contents of AltoDefs into file; changed name of file from "Processor". Time: June 21, 1978 10:03 AM By: Lauer Action: Added maxINTEGER, minINTEGER, maxCARDINAL, maxLONGINTEGER, minLONGINTEGER Time: July 21, 1978 11:31 AM By: Lauer Action: Moved type 'Block' from Stream to Environment Time: August 14, 1978 10:26 AM By: Horsley Action: Used FIRST and LAST for number bounds Time: March 7, 1979 10:31 AM By: McJones Action: Added Long; increased upper bound for PageNumber, PageOffset Time: July 16, 1979 6:26 PM By: Knutsen Action: Added first64K, Base.