DIRECTORY CrRPC, RapunzelP2200V0; RapunzelP2200V0ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS RapunzelP2200V0 ~ { OPEN RapunzelP2200V0; Fault: PUBLIC ERROR [code: RapunzelP2200V0.FaultCode, address: CARD] ~ CODE; GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 0 => { code: RapunzelP2200V0.FaultCode; address: CARD; code _ VAL[CrRPC.GetCARDINAL[h]]; address _ CrRPC.GetCARD[h]; ERROR Fault[code, address] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; PokeSeqShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD, args: RapunzelP2200V0.SeqShort] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARDINAL[h, args.length]; FOR i0: CARDINAL IN [0..args.length) DO CrRPC.PutCARDINAL[h, args.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~0, remoteProc~4, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PokeLong: PUBLIC PROC [h: CrRPC.Handle, address: CARD, arg: CARD] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARD[h, arg]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~0, remoteProc~6, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DoCmds: PUBLIC PROC [h: CrRPC.Handle, cmds: RapunzelP2200V0.SeqCmd] RETURNS [results: RapunzelP2200V0.SeqResult] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARDINAL[h, cmds.length]; FOR i0: CARDINAL IN [0..cmds.length) DO CrRPC.PutCARDINAL[h, ORD[cmds.body[i0].type]]; WITH cmds.body[i0] SELECT FROM it: pokeShort RapunzelP2200V0.Cmd => { CrRPC.PutCARD[h, it.pokeShort.address]; CrRPC.PutCARDINAL[h, it.pokeShort.value]; }; it: peekShort RapunzelP2200V0.Cmd => { CrRPC.PutCARD[h, it.peekShort.address]; }; ENDCASE; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; results _ NEW[RapunzelP2200V0.SeqResultObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO TRUSTED { tag2: RapunzelP2200V0.OpCode ~ VAL[CrRPC.GetCARDINAL[h]]; SELECT tag2 FROM pokeShort => results.body[i0] _ [pokeShort[pokeShort~]]; -- RECORD [] peekShort => { x3: RapunzelP2200V0.PeekShortResult; x3.value _ CrRPC.GetCARDINAL[h]; results.body[i0] _ [peekShort[x3]]; }; ENDCASE; }; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~0, remoteProc~0, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PeekLong: PUBLIC PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARD] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; }; GetResults: CrRPC.GetResultsProc ~ { result _ CrRPC.GetCARD[h]; }; CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~0, remoteProc~5, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PeekSeqShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD, count: CARDINAL] RETURNS [results: RapunzelP2200V0.SeqShort] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARDINAL[h, count]; }; GetResults: CrRPC.GetResultsProc ~ { { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; results _ NEW[RapunzelP2200V0.SeqShortObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO results.body[i0] _ CrRPC.GetCARDINAL[h]; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~0, remoteProc~3, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PeekShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARDINAL] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; }; GetResults: CrRPC.GetResultsProc ~ { result _ CrRPC.GetCARDINAL[h]; }; CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~0, remoteProc~1, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PokeShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD, arg: CARDINAL] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARDINAL[h, arg]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2200, remotePgmVersion~0, remoteProc~2, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; }... ÄRapunzelP2200V0ClientImpl.Mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Generated by Sirocco on September 22, 1986 1:27:05 pm PDT Errors GetErrorProc Remote Procedures ĘV˜šœ™Jšœ>™>Jšœ9™9—J˜šĎk ˜ J˜J˜—J˜šĎnœœ˜(Jšœ˜ Jšœ˜Jšœ˜—J˜šœ™J˜Jš žœœœ,œœ˜LJ˜—šœ ™ J˜šžœ˜ šœ˜˜J˜ Jšœ œ˜Jšœœ˜!J˜Jšœ˜J˜—šœ˜ Jšœ8˜=J˜——J˜—J˜—šœ™J˜š ž œœœœ"œ˜išžœ˜J˜J˜"šœœœ˜'J˜$Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜}J˜—J˜š žœœœœœœ˜Pšžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜}J˜—J˜šžœœœ1œ)˜tšžœ˜J˜"šœœœ˜'Jšœœ˜.šœœ˜˜&J˜'J˜)J˜—˜&J˜'J˜—Jšœ˜—Jšœ˜—J˜—šž œ˜$˜Jšœ œ˜)Jšœ œ+˜9šœœœ˜#šœ˜ Jšœœ˜9šœ˜Jšœ9Ďc ˜E˜J˜$J˜ J˜#J˜—Jšœ˜—J˜—Jšœ˜—J˜—J˜J˜—J˜}J˜—J˜š žœœœœœ œ˜Qšžœ˜J˜J˜—šž œ˜$J˜J˜J˜—J˜}J˜—J˜š ž œœœœ œœ(˜{šžœ˜J˜J˜J˜—šž œ˜$˜Jšœ œ˜)Jšœ œ*˜8šœœœ˜#J˜(Jšœ˜—J˜—J˜J˜—J˜}J˜—J˜š ž œœœœœ œ˜Všžœ˜J˜J˜—šž œ˜$J˜J˜J˜—J˜}J˜—J˜š ž œœœœœœ˜Ušžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜}J˜—J˜—J˜J˜—…—č