RapunzelP2200V0.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Sirocco on September 22, 1986 1:27:03 pm PDT
RapunzelP2200V0:
CEDAR
DEFINITIONS ~ {
ROPE: TYPE ~ Rope.ROPE;
FaultCode:
TYPE ~
MACHINE
DEPENDENT {
nonexistent(1),
protection(2),
alignmentShort(3),
alignmentLong(4)
};
PokeLong: PROC [h: CrRPC.Handle, address: CARD, arg: CARD];
SeqCmd: TYPE ~ REF SeqCmdObject;
SeqCmdObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Cmd
];
DoCmds: PROC [h: CrRPC.Handle, cmds: SeqCmd] RETURNS [results: SeqResult];
Long: TYPE ~ CARD;
Fault: ERROR [code: FaultCode, address: CARD];
Result:
TYPE ~
RECORD [
SELECT type: OpCode
FROM
pokeShort => [pokeShort: PokeShortResult],
peekShort => [peekShort: PeekShortResult]
ENDCASE
];
PokeShort: PROC [h: CrRPC.Handle, address: CARD, arg: CARDINAL];
SeqLong: TYPE ~ REF SeqLongObject;
SeqLongObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARD
];
PeekShortResult:
TYPE ~
RECORD [
value: CARDINAL
];
PeekLong: PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARD];
PokeSeqShort: PROC [h: CrRPC.Handle, address: CARD, args: SeqShort];
PokeShortCmd:
TYPE ~
RECORD [
address: CARD,
value: CARDINAL
];
PokeShortResult: TYPE ~ RECORD [];
SeqResult: TYPE ~ REF SeqResultObject;
SeqResultObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Result
];
Cmd:
TYPE ~
RECORD [
SELECT type: OpCode
FROM
pokeShort => [pokeShort: PokeShortCmd],
peekShort => [peekShort: PeekShortCmd]
ENDCASE
];
OpCode:
TYPE ~
MACHINE
DEPENDENT {
pokeShort(0),
peekShort(1)
};
PeekShort: PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARDINAL];
PeekSeqShort: PROC [h: CrRPC.Handle, address: CARD, count: CARDINAL] RETURNS [results: SeqShort];
Address: TYPE ~ CARD;
Short: TYPE ~ CARDINAL;
PeekShortCmd:
TYPE ~
RECORD [
address: CARD
];
SeqShort: TYPE ~ REF SeqShortObject;
SeqShortObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARDINAL
];
}...