DIRECTORY CrRPC, RapunzelP2200V2; RapunzelP2200V2ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS RapunzelP2200V2 ~ { OPEN RapunzelP2200V2; Fault: PUBLIC FaultType ~ CODE; GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 0 => { code: FaultCode; address: CARD32; code _ VAL[CrRPC.GetCard16[s]]; address _ CrRPC.GetCard32[s]; ERROR Fault[code, address] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; 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]; }; 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; }; }; }...  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 Errors GetErrorProc Remote Procedures -- Unmarshal / Marshal Procs -- ÊŠ˜šœ™Jšœ>™>Jšœ>™>Jšœ6™6J˜—šÏk ˜ J˜J˜—J˜šÏnœœ˜(Jšœ˜ Jšœ˜Jšœ˜—J˜šœ™J˜J˜Jšžœœ œ˜J˜—šœ ™ J˜šžœ˜ šœ˜˜J˜Jšœ œ˜Jšœœ˜J˜Jšœ˜J˜—šœ˜ Jšœ8˜=J˜——J˜—J˜—šœ™J˜šž œœ˜)šžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜~J˜—J˜šžœœ˜!šžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜~J˜—J˜šž œœ˜)šžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜~J˜—J˜šžœœ˜šžœ˜J˜J˜—šž œ˜$J˜J˜J˜—J˜~J˜—J˜šžœœ˜!šžœ˜J˜J˜—šž œ˜$J˜J˜J˜—J˜~J˜—J˜šž œœ˜)šžœ˜J˜J˜J˜—šž œ˜$J˜J˜J˜—J˜~J˜—J˜šž œœ˜#šžœ˜J˜J˜—šž œ˜$J˜J˜J˜—J˜~J˜—J˜šž œœ˜#šžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜~J˜—J˜—šœ™J˜J˜šžœœœ˜BJ˜šœœœ˜&J˜!Jšœ˜—J˜—J˜šžœœœœ˜L˜Jšœ œ˜'Jšœœ˜%šœœœ˜#J˜Jšœ˜—J˜—J˜—J˜šžœœœ˜@J˜šœœœ˜&J˜Jšœ˜—J˜—J˜šžœœœ˜>Jšœœ ˜"šœœ˜šœœ˜ J˜*J˜—šœœ˜ J˜*J˜(J˜—šœœ˜J˜)J˜,J˜—šœœ˜ J˜*J˜-J˜—šœœ˜#J˜2J˜—Jšœ˜—J˜—J˜šžœœœœ˜K˜Jšœ œ˜(Jšœœ˜%šœœœ˜%J˜#Jšœ˜—J˜—J˜—J˜šžœœœœ˜I˜Jšœœ˜(šœ˜˜J˜J˜"Jšœœ1˜:—˜J˜J˜Jšœœ1˜:—˜ J˜J˜'Jšœœ/˜8—˜J˜J˜'Jšœœ1˜:—˜J˜J˜Jšœœ7˜@—Jšœœ˜—J˜—J˜—J˜—J˜J˜—…—^