RapunzelP2200V2ClientImpl.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Willie-Sue.pa at February 13, 1987 2:11:41 pm PST
using Sirocco [2.0] of January 31, 1987 1:52:42 am PST
Remote Procedures --
PokeSeqShort:
PUBLIC PokeSeqShortType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, address];
MProc1[h, s, valueSeq];
};
GetResults: CrRPC.GetResultsProc ~ {
NULL
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~4 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
PokeLong:
PUBLIC PokeLongType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, address];
CrRPC.PutCard32[s, value];
};
GetResults: CrRPC.GetResultsProc ~ {
NULL
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~6 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
SetShftAddrs:
PUBLIC SetShftAddrsType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, shftA];
CrRPC.PutCard32[s, shftB];
};
GetResults: CrRPC.GetResultsProc ~ {
NULL
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~8 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
DoCmds:
PUBLIC DoCmdsType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
MProc2[h, s, cmdSeq];
};
GetResults: CrRPC.GetResultsProc ~ {
resultSeq ← UProc3[h, s];
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~7 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
PeekLong:
PUBLIC PeekLongType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, address];
};
GetResults: CrRPC.GetResultsProc ~ {
result ← CrRPC.GetCard32[s];
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~5 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
PeekSeqShort:
PUBLIC PeekSeqShortType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, address];
CrRPC.PutCard16[s, count];
};
GetResults: CrRPC.GetResultsProc ~ {
resultSeq ← UProc4[h, s];
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
PeekShort:
PUBLIC PeekShortType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, address];
};
GetResults: CrRPC.GetResultsProc ~ {
result ← CrRPC.GetCard16[s];
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
PokeShort:
PUBLIC PokeShortType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, address];
CrRPC.PutCard16[s, value];
};
GetResults: CrRPC.GetResultsProc ~ {
NULL
};
CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~2, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
Unmarshal / Marshal Procs --
MProc1:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: SeqShort] ~ {
CrRPC.PutCard16[s, val.length];
FOR i5:
CARDINAL
IN [0..val.length)
DO
CrRPC.PutCard16[s, val.body[i5]];
ENDLOOP;
};
UProc3:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: SeqResult] ~ {
{
length7: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[SeqResultObject[length7]];
FOR i6:
CARDINAL
IN [0..length7)
DO
res.body[i6] ← UProc8[h, s];
ENDLOOP;
};
};
MProc2:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: SeqCmd] ~ {
CrRPC.PutCard16[s, val.length];
FOR i9:
CARDINAL
IN [0..val.length)
DO
MProc10[h, s, val.body[i9]];
ENDLOOP;
};
MProc10:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: Cmd] ~ {
CrRPC.PutCard16[s, ORD[val.type]];
WITH val
SELECT
FROM
it:
REF CmdObject.peekShort => {
CrRPC.PutCard32[s, it^.peekShort.address];
};
it:
REF CmdObject.pokeShort => {
CrRPC.PutCard32[s, it^.pokeShort.address];
CrRPC.PutCard16[s, it^.pokeShort.value];
};
it:
REF CmdObject.shftRead => {
CrRPC.PutCard32[s, it^.shftRead.address];
CrRPC.PutCard16[s, it^.shftRead.numRepeats];
};
it:
REF CmdObject.shftWrite => {
CrRPC.PutCard32[s, it^.shftWrite.address];
CrRPC.PutCard16[s, it^.shftWrite.numRepeats];
};
it:
REF CmdObject.returnLength => {
CrRPC.PutCard16[s, it^.returnLength.returnLength];
};
ENDCASE;
};
UProc4:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: SeqShort] ~ {
{
length13: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[SeqShortObject[length13]];
FOR i12:
CARDINAL
IN [0..length13)
DO
res.body[i12] ← CrRPC.GetCard16[s];
ENDLOOP;
};
};
UProc8:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: Result] ~ {
{
tag14: OpCode ~ VAL[CrRPC.GetCard16[s]];
SELECT tag14
FROM
peekShort => {
temp15: PeekShortResult;
temp15.value ← CrRPC.GetCard16[s];
res ← NEW[ResultObject.peekShort ← [peekShort[temp15]]] };
pokeShort => {
temp15: PokeShortResult;
temp15.null ← 0;
res ← NEW[ResultObject.pokeShort ← [pokeShort[temp15]]] };
shftRead => {
temp15: ShftReadResult;
temp15.numRepeats ← CrRPC.GetCard16[s];
res ← NEW[ResultObject.shftRead ← [shftRead[temp15]]] };
shftWrite => {
temp15: ShftWriteResult;
temp15.numRepeats ← CrRPC.GetCard16[s];
res ← NEW[ResultObject.shftWrite ← [shftWrite[temp15]]] };
returnLength => {
temp15: ReturnLengthResult;
temp15.null ← 0;
res ← NEW[ResultObject.returnLength ← [returnLength[temp15]]] };
ENDCASE => ERROR;
};
};
}...