DIRECTORY CrRPC USING [Handle, CreateClientHandle], XNSCH USING [LookupAddressFromRope], RapunzelP2200V2, Rope USING [ROPE], XNS USING [Address, GetThisHost, unknownAddress, unknownNet, unknownSocket]; RapunzelSimpleClientImpl: CEDAR PROGRAM IMPORTS CrRPC, XNS, XNSCH = BEGIN OPEN Rapunzel: RapunzelP2200V2; ROPE: TYPE = Rope.ROPE; GetHandleForMe: PROC RETURNS [h: CrRPC.Handle] ~ { me: XNS.Address ~ [net: XNS.unknownNet, host: XNS.GetThisHost[], socket: XNS.unknownSocket]; RETURN[CrRPC.CreateClientHandle[$SPP, me, 0]]; }; GetOtherHandle: PROC[host: ROPE] RETURNS [h: CrRPC.Handle] ~ { netAddr: XNS.Address _ XNSCH.LookupAddressFromRope[host].address; netAddr.socket _ XNS.unknownSocket; RETURN[CrRPC.CreateClientHandle[$SPP, netAddr, 0]]; }; GetNet3DoradoHandle: PROC[f: BYTE] RETURNS [h: CrRPC.Handle] ~ { net3Dorado: XNS.Address; net3Dorado _ XNS.unknownAddress; net3Dorado.net.d _ 3; net3Dorado.host _ [a: 0, b: 0, c: 170, d: 81, e: 1, f: f]; RETURN[CrRPC.CreateClientHandle[$SPP, net3Dorado, 0]]; }; PeekPokePeek: PROC[address: Rapunzel.Address, value: CARDINAL] RETURNS[sc: Rapunzel.SeqCmd] = TRUSTED { peek: Rapunzel.PeekShortCmd; poke: Rapunzel.PokeShortCmd; sc _ NEW[Rapunzel.SeqCmdObject [3]]; peek.address _ address; sc[0] _ sc[2] _ [peekShort[peek]]; poke.address _ address; poke.value _ value; sc[1] _ [pokeShort[poke]]; }; PokePoke: PROC[address: Rapunzel.Address, value: CARDINAL] RETURNS[sc: Rapunzel.SeqCmd] = TRUSTED { poke: Rapunzel.PokeShortCmd; sc _ NEW[Rapunzel.SeqCmdObject [2]]; poke.address _ address; poke.value _ value; sc[0] _ [pokeShort[poke]]; poke.address _ address + 1; poke.value _ value; sc[1] _ [pokeShort[poke]]; }; PokePeek: PROC[address: Rapunzel.Address, value: CARDINAL] RETURNS[sc: Rapunzel.SeqCmd] = TRUSTED { peek: Rapunzel.PeekShortCmd; poke: Rapunzel.PokeShortCmd; sc _ NEW[Rapunzel.SeqCmdObject [2]]; peek.address _ address; sc[1] _ [peekShort[peek]]; poke.address _ address; poke.value _ value; sc[0] _ [pokeShort[poke]]; }; PokePeekPeek: PROC[addr1, addr2: Rapunzel.Address, value: CARDINAL] RETURNS[sc: Rapunzel.SeqCmd] = TRUSTED { peek: Rapunzel.PeekShortCmd; poke: Rapunzel.PokeShortCmd; sc _ NEW[Rapunzel.SeqCmdObject [3]]; poke.address _ addr1; poke.value _ value; sc[0] _ [pokeShort[poke]]; peek.address _ addr1; sc[1] _ [peekShort[peek]]; peek.address _ addr2; sc[2] _ [peekShort[peek]]; }; PeekPoke: PROC[address: Rapunzel.Address, value: CARDINAL] RETURNS[sc: Rapunzel.SeqCmd] = TRUSTED { peek: Rapunzel.PeekShortCmd; poke: Rapunzel.PokeShortCmd; sc _ NEW[Rapunzel.SeqCmdObject [2]]; peek.address _ address; sc[0] _ [peekShort[peek]]; poke.address _ address; poke.value _ value; sc[1] _ [pokeShort[poke]]; }; PokeSeq: PROC[n: CARDINAL] RETURNS[seq: Rapunzel.SeqShort] = { seq _ NEW[Rapunzel.SeqShortObject [n]] }; END... ςRapunzelSimpleClientImpl.Mesa Copyright (C) 1986, 1987 by Xerox Corporation. All rights reserved. taken from RapunzelP1620V0ClientImpl.mesa Willie-Sue, January 8, 1987 11:20:55 am PST Bill Jackson (bj) February 3, 1987 6:19:42 pm PST Κf˜šœ™JšœD™DIcodešœ)™)Kšœ(Οk™+Kšœ1™1—J˜š ˜ Jšœœ˜)Jšœœ˜$Jšœ˜Jšœœœ˜JšœœC˜L—J˜šΟnœœ˜'Jšœœ˜Jšœ˜J˜Jšœžœ˜J˜Jšœœœ˜J˜šžœœœ˜2Jš œœœœœ˜\Jšœ(˜.J˜—J˜šžœœœœ˜>Jšœ œ œ%˜AJšœœ˜#Jšœ-˜3J˜—J˜šžœœœœ˜@Jšœ œ ˜Jšœ œ˜ Jšœ˜Jšœ:˜:Jšœ0˜6J˜—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˜—šž œœ(œ˜CJšœœœ˜)J˜J˜Jšœœ˜$Jšœ˜J˜J˜Jšœ˜J˜Jšœ˜J˜J˜—J˜šžœœ#œ˜:Jšœœœ˜)J˜J˜Jšœœ˜$Jšœ˜J˜Jšœ˜J˜J˜J˜—J˜šžœœœœ˜