DIRECTORY Core, Dragon, DragOpsCross, EU2Arith, EU2Utils, Ports, Rosemary; EU2: CEDAR DEFINITIONS = BEGIN Vdd, Gnd, PadVdd, PadGnd, PhA, PhB, VRef, DPRejectB, DPData, -- 32 bits KBus, -- 32 bits EURdFromPBus3AB, EUWriteToPBus3AB, EUAluOp2AB, -- 4 bits Dragon.ALUOps EUCondSel2AB, -- 4 bits Dragon.CondSelects EUCondition2B, DShA, DShB, DShRd, DShWt, DShIn, DShOut, DHold, DStAd: NAT; NoteRegStoreProc: TYPE = PROC [ data: REF ANY, reg: [0..256), value: CARD ]; EUTypeData: TYPE = RECORD [ data: REF ANY, storeNoted: BOOL, noteStore: NoteRegStoreProc _ NIL ]; nRegs: NAT = 160; EU2State: TYPE = REF EU2StateRec; EU2StateRec: TYPE = RECORD[ data: REF EUTypeData _ NIL, simRegs: ARRAY EU2Utils.PipeRange OF CARD _ ALL[0], carryAB, carryBA: BOOL _ FALSE, conditionBA: BOOL _ FALSE, -- needed during A to update carryAB rejectBA: BOOL _ FALSE, -- a copy of DPRejectB stable during PhiA size: NAT _ nRegs, ram: ARRAY [0..nRegs) OF CARD ]; CreateEU2: PUBLIC PROC [ typeData: REF EUTypeData _ NIL, fullEU: BOOL _ FALSE ] RETURNS [cellType: Core.CellType]; END. EU2.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Louis Monier June 2, 1986 3:52:58 pm PDT McCreight, April 10, 1986 12:13:37 pm PST Barth, April 19, 1986 5:23:49 pm PST Bertrand Serlet June 7, 1986 7:10:28 pm PDT Last Edited by: Louis Monier September 12, 1986 12:41:08 pm PDT -- Phase-multiplexed on KBus aAdr [0..7] bAdr [8..15] cAdr [16..23] EUSt3AisCBus2BA [24] EUAluLeftSrc1BA [25..26] EUAluRightSrc1BA [27..29] EUStore2ASrc1BA [30..31] -- kitchen sink -- registers -- a few bits of state -- register file ram: SEQUENCE size: NAT OF CARD The EU2 register file is organised as follows (Ref DragOpsCross.mesa): 0..127: the stack 128 words 128: euJunk used to specify no write 129: euToKBus send result on K bus to IFU 130: euMAR Memory Address Register 131: euField Field register, an alias of "field" 132..143 constant 12 constant registers 144..159 auxilliary 16 auxilliary registers Any aAdr larger than euBogus=160 is illegal Note: ram[132] is the constant zero, implemented by a ROM Κ­˜šœ™Icodešœ Οmœ1™