RapunzelP2200V3.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Willie-Sue.pa at March 18, 1987 11:26:16 am PST
using Sirocco [2.0] of January 31, 1987 1:52:42 am PST
RapunzelP2200V3:
CEDAR
DEFINITIONS ~ {
ROPE: TYPE ~ Rope.ROPE;
FaultCode: TYPE ~ MACHINE DEPENDENT { nonexistent(1), protection(2), alignmentShort(3), alignmentLong(4)};
PokeLongType: TYPE ~ PROC [h: CrRPC.Handle, address: CARD32, value: CARD32];
PokeLong: PokeLongType;
SeqCmd: TYPE ~ REF SeqCmdObject;
SeqCmdObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Cmd
];
DoCmdsType: TYPE ~ PROC [h: CrRPC.Handle, cmdSeq: SeqCmd] RETURNS [resultSeq: SeqResult];
DoCmds: DoCmdsType;
ReturnLengthResult: TYPE ~ RECORD [null: CARDINAL ← 0];
SetShftAddrsType: TYPE ~ PROC [h: CrRPC.Handle, shftA: CARD32, shftB: CARD32];
SetShftAddrs: SetShftAddrsType;
ShftReadResult:
TYPE ~
RECORD [
numRepeats: CARD16];
FaultType: TYPE ~ ERROR [code: FaultCode, address: CARD32];
Fault: FaultType;
PokeLongResult: TYPE ~ RECORD [null: CARDINAL ← 0];
PeekSeqLongType: TYPE ~ PROC [h: CrRPC.Handle, address: CARD32, count: CARD16] RETURNS [resultSeq: SeqLong];
PeekSeqLong: PeekSeqLongType;
Result: TYPE ~ REF ResultObject;
ResultObject:
TYPE ~
RECORD [
SELECT type: OpCode
FROM
peekShort => [peekShort: PeekShortResult],
pokeShort => [pokeShort: PokeShortResult],
pokeLong => [pokeLong: PokeLongResult],
shftRead => [shftRead: ShftReadResult],
shftWrite => [shftWrite: ShftWriteResult],
returnLength => [returnLength: ReturnLengthResult]
ENDCASE
];
PokeShortType: TYPE ~ PROC [h: CrRPC.Handle, address: CARD32, value: CARD16];
PokeShort: PokeShortType;
ShftReadCmd:
TYPE ~
RECORD [
address: CARD32,
numRepeats: CARD16];
SeqLong: TYPE ~ REF SeqLongObject;
SeqLongObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARD32
];
PeekLongType: TYPE ~ PROC [h: CrRPC.Handle, address: CARD32] RETURNS [result: CARD32];
PeekLong: PeekLongType;
PeekShortResult:
TYPE ~
RECORD [
value: CARD16];
PokeSeqShortType: TYPE ~ PROC [h: CrRPC.Handle, address: CARD32, valueSeq: SeqShort];
PokeSeqShort: PokeSeqShortType;
PokeLongCmd:
TYPE ~
RECORD [
address: CARD32,
value: CARD32];
PokeShortCmd:
TYPE ~
RECORD [
address: CARD32,
value: CARD16];
PokeShortResult: TYPE ~ RECORD [null: CARDINAL ← 0];
ShftWriteCmd:
TYPE ~
RECORD [
address: CARD32,
numRepeats: CARD16];
SeqResult: TYPE ~ REF SeqResultObject;
SeqResultObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Result
];
ReturnLengthCmd:
TYPE ~
RECORD [
returnLength: CARD16];
ShftWriteResult:
TYPE ~
RECORD [
numRepeats: CARD16];
Cmd: TYPE ~ REF CmdObject;
CmdObject:
TYPE ~
RECORD [
SELECT type: OpCode
FROM
peekShort => [peekShort: PeekShortCmd],
pokeShort => [pokeShort: PokeShortCmd],
pokeLong => [pokeLong: PokeLongCmd],
shftRead => [shftRead: ShftReadCmd],
shftWrite => [shftWrite: ShftWriteCmd],
returnLength => [returnLength: ReturnLengthCmd]
ENDCASE
];
PeekShortType: TYPE ~ PROC [h: CrRPC.Handle, address: CARD32] RETURNS [result: CARD16];
PeekShort: PeekShortType;
OpCode: TYPE ~ MACHINE DEPENDENT { peekShort(0), pokeShort(1), pokeLong(2), shftRead(3), shftWrite(4), returnLength(5)};
PeekSeqShortType: TYPE ~ PROC [h: CrRPC.Handle, address: CARD32, count: CARD16] RETURNS [resultSeq: SeqShort];
PeekSeqShort: PeekSeqShortType;
PeekShortCmd:
TYPE ~
RECORD [
address: CARD32];
SeqShort: TYPE ~ REF SeqShortObject;
SeqShortObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARD16
];
}...