<<>> <> <> <> MachineParms: DEFINITIONS = { <> <<>> BitOrder: TYPE = {msBit, lsBit}; < bit N is more significant than bit N+1 in a word>> <<(PrincOps, Dragon, Motorola 680x0, IBM 360, Sparc)>> < bit N+1 is more significant than bit N in a word>> <<(PDP-11, VAX, Intel 80x86)>> <<>> WordOrder: TYPE = {msWord, lsWord}; < word N is more significant than word N+1 in multi-word arithmetic>> < word N+1 is more significant than word N in multi-word arithmetic>> bitOrder: BitOrder = msBit; wordOrder: WordOrder = msWord; bitsPerAU: NAT = 8; -- AU = "addressing unit" logBitsPerAU: NAT = BITS[[0..bitsPerAU)]; bitsPerByte: NAT = 8; maxByte: NAT = 0FFh; bitsPerChar: NAT = 8; maxChar: NAT = 0FFh; logBitsPerChar: NAT = BITS[[0..bitsPerChar)]; newLineChar: CHAR = 012C; -- UNIX convention bitsPerWord: NAT = 32; -- bits per word (native arithmetic) maxWord: CARD = 0FFFFFFFFh; logBitsPerWord: NAT = 5; bitsPerLongWord: NAT = 32; maxLongWord: CARD = 0FFFFFFFFh; logBitsPerLongWord: NAT = 5; bitsPerReal: NAT = 32; <> bitsPerPtr: NAT = 32; <> bitsPerLongPtr: NAT = 32; <> bitsPerPort: NAT = 2*bitsPerWord; -- obsolete! bitsPerProc: NAT = 32; bitsPerProcess: NAT = wordsPerProcess*bitsPerWord; bitsPerProgram: NAT = bitsPerWord; bitsPerRef: NAT = 32; bitsPerSignal: NAT = bitsPerProc; wordsPerProcess: NAT = 2; processNil: ARRAY [0..wordsPerProcess) OF CARD32 = ALL[0]; wordsPerCondVar: NAT = 6; bitsPerCondVar: NAT = wordsPerCondVar*bitsPerWord; condVarInit: ARRAY [0..wordsPerCondVar) OF CARD32 = ALL[0]; wordsPerMonLock: NAT = 4; bitsPerMonLock: NAT = wordsPerMonLock*bitsPerWord; monLockInit: ARRAY [0..wordsPerMonLock) OF CARD32 = ALL[0]; bitsPerStringBound: NAT = 16; <> <> bitsPerLink: NAT = bitsPerPtr; <> fastBytes: BOOL = TRUE; <> packedFields: BOOL = TRUE; PackedBitCount: TYPE = [1..bitsPerLongWord]; packedFieldSize: ARRAY PackedBitCount OF NAT = [ 01, 02, 04, 04, 08, 08, 08, 08, 16, 16, 16, 16, 16, 16, 16, 16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32]; Alignments: ARRAY AlignmentIndex OF NAT = [8, 16, 32, 64]; AlignmentIndex: TYPE = [0..3]; }.