DIRECTORY Atom; PBusCacheProg4: CEDAR PROGRAM IMPORTS Atom EXPORTS ~ BEGIN C: PROC [c: CARD] RETURNS [rc: REF ANY] = {rc _ NEW[CARD _ c]}; Atom.PutProp[$PBusEmul, $PKList, LIST[ LIST[$ClearFlag, $WriteDone], LIST[$Wait, C[2]], LIST[$WaitSync, $MemReady], LIST[$SetMode,C[0]], -- test in Kernel mode LIST[$SetByteSelect,C[0FH]], -- Word selection LIST[$IOWrite,C[9H],C[01234567H]], -- AID register LIST[$IOReadAndCheck,C[9H],C[01234567H]], LIST[$SetMode,C[1]], -- test in User mode LIST[$IOWrite,C[1H],C[01234567H]], -- Old Value LIST[$IOWrite,C[3H],C[00112233H]], -- New Value LIST[$CondWriteSingleAndCheck,C[00112288H],C[0]], -- Fetch & Non Matche LIST[$CondWriteSingleAndCheck,C[0011228AH],C[00010001H]], -- No Fetch & Non Matche LIST[$CondWriteSingleAndCheck,C[00112289H],C[01234567H]], -- No Fetch & Matche LIST[$SetFlag, $WriteDone], $LoopWait, LIST[$CondWriteSingleAndCheck,C[00112289H],C[00112233H]], -- No Fetch & no Match LIST[$SkipIfTrue, $LocShared], LIST[$Jump, $LoopWait], LIST[$IOWrite,C[1H],C[00112233H]], -- New Value LIST[$IOWrite,C[3H],C[0ABCDEF9H]], -- New Value LIST[$CondWriteSingleAndCheck,C[00112289H],C[00112233H]], -- No Fetch & Matche & Shared $StopSimul, $Nop, LIST[$Jump, $Nop] ]]; END. BPBusCacheProg4.mesa Copyright Σ 1987, 1988 by Xerox Corporation. All rights reserved. Created by Jean Gastinel, May 21, 1988 6:20:57 pm PDT Jean Gastinel July 11, 1988 5:28:34 pm PDT Testing for Conditionnal Write Single LIST[$WaitSync, $LocShared], -- wait for the Exerciser making this location shared Κ*˜codešœ™KšœB™BKšœ5™5Kšœ+™+K™—K™K™KšΟk ˜ Kšœ˜KšΡbln Οnœœ˜Kšœ˜ Kšœ˜šœ˜K˜—˜KšŸœœœœœœ œœ˜?K˜K˜šœ!œ˜&Kšœœ˜Kšœœ˜Kšœœ˜K˜Kšœ%™%K™KšœœΟc˜0Kšœœ œ˜4Kšœœ# ˜9Kšœœ(˜.K™Kšœœ ˜.Kšœ˜Kšœœ#  ˜6Kšœœ#  ˜6Kšœœ/ ˜JKšœœ6 ˜TKšœœ6 ˜QK˜Kšœœ˜Kšœœ 6™VKšœ ˜ Kšœœ6 ˜SKšœœ˜ Kšœœ˜—š ˜Kšœœ#  ˜6Kšœœ"  ˜5Kšœœ6 ˜ZKš ˜Kšœ˜Kšœ ˜ K˜Kšœœ ˜Kšœ˜K˜——K˜Kšœ˜—…—LΈ