RapunzelP2200V2.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Willie-Sue.pa at January 8, 1987 11:32:25 am PST
using Sirocco [1.0] of September 25, 1986 3:44:23 am PDT
DIRECTORY
CrRPC,
Rope;
RapunzelP2200V2: 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, value: CARD];
SeqCmd: TYPE ~ REF SeqCmdObject;
SeqCmdObject: TYPE ~ MACHINE DEPENDENT RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Cmd
];
DoCmds: PROC [h: CrRPC.Handle, cmdSeq: SeqCmd] RETURNS [resultSeq: SeqResult];
ReturnLengthResult: TYPE ~ RECORD [];
SetShftAddrs: PROC [h: CrRPC.Handle, shftA: CARD, shftB: CARD];
ShftReadResult: TYPE ~ RECORD [
numRepeats: CARDINAL
];
Long: TYPE ~ CARD;
Fault: ERROR [code: FaultCode, address: CARD];
Result: TYPE ~ RECORD [
SELECT type: OpCode FROM
peekShort => [peekShort: PeekShortResult],
pokeShort => [pokeShort: PokeShortResult],
shftRead => [shftRead: ShftReadResult],
shftWrite => [shftWrite: ShftWriteResult],
returnLength => [returnLength: ReturnLengthResult]
ENDCASE
];
PokeShort: PROC [h: CrRPC.Handle, address: CARD, value: CARDINAL];
ShftReadCmd: TYPE ~ RECORD [
address: CARD,
numRepeats: CARDINAL
];
PeekLong: PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARD];
PeekShortResult: TYPE ~ RECORD [
value: CARDINAL
];
PokeSeqShort: PROC [h: CrRPC.Handle, address: CARD, valueSeq: SeqShort];
PokeShortCmd: TYPE ~ RECORD [
address: CARD,
value: CARDINAL
];
PokeShortResult: TYPE ~ RECORD [];
ShftWriteCmd: TYPE ~ RECORD [
address: CARD,
numRepeats: CARDINAL
];
SeqResult: TYPE ~ REF SeqResultObject;
SeqResultObject: TYPE ~ MACHINE DEPENDENT RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Result
];
ReturnLengthCmd: TYPE ~ RECORD [
returnLength: CARDINAL
];
ShftWriteResult: TYPE ~ RECORD [
numRepeats: CARDINAL
];
Cmd: TYPE ~ RECORD [
SELECT type: OpCode FROM
peekShort => [peekShort: PeekShortCmd],
pokeShort => [pokeShort: PokeShortCmd],
shftRead => [shftRead: ShftReadCmd],
shftWrite => [shftWrite: ShftWriteCmd],
returnLength => [returnLength: ReturnLengthCmd]
ENDCASE
];
PeekShort: PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARDINAL];
OpCode: TYPE ~ MACHINE DEPENDENT {
peekShort(0),
pokeShort(1),
shftRead(2),
shftWrite(3),
returnLength(4)
};
PeekSeqShort: PROC [h: CrRPC.Handle, address: CARD, count: CARDINAL] RETURNS [resultSeq: 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
];
}...