LizardTweaker.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Russ Atkinson (RRA) September 17, 1985 6:31:02 pm PDT
DIRECTORY
DragOpsCross USING [Inst, Word],
LizardHeart USING [Processor];
LizardTweaker: CEDAR DEFINITIONS = BEGIN
OpcodeHandler:
TYPE =
PROC [
data: REF, -- callback data
processor: LizardHeart.Processor, -- the processor executing the instruction
inst: DragOpsCross.Inst, -- the instruction
rest: DragOpsCross.Word] -- the operand (right-justified)
RETURNS [normal: BOOL ← FALSE]; -- normal => do normal opcode processing
Register: PROC [inst: DragOpsCross.Inst, handler: OpcodeHandler, data: REF ← NIL];
OpcodeRegistry: TYPE = REF OpcodeRegistryRep;
OpcodeRegistryRep: TYPE = ARRAY DragOpsCross.Inst OF OpcodeRegistryEntry;
OpcodeRegistryEntry: TYPE = RECORD [handler: OpcodeHandler, data: REF];
END.