PBusCacheProg6.mesa
Copyright Ó 1987, 1988 by Xerox Corporation. All rights reserved.
Created by Jean Gastinel, June 10, 1988 12:22:49 pm PDT
Jean Gastinel June 28, 1988 5:35:12 pm PDT
DIRECTORY
Atom; 
PBusCacheProg6: 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, $CacheFull],
LIST[$Wait, C[2]],
LIST[$WaitSync, $MemReady],
Testing for OwnerShip
LIST[$SetByteSelect,C[0FH]],  -- Word selection
LIST[$IOWrite,C[9H],C[01234567H]],    -- AID register
LIST[$IOReadAndCheck,C[9H],C[01234567H]],  
LIST[$SetMode,C[0]],   -- test in Kernel mode
LIST[$Write,C[00045128H],C[1111H]],  -- Fill completly the cache
LIST[$Write,C[00045130H],C[2222H]],  
LIST[$Write,C[00045138H],C[3333H]],  
LIST[$Write,C[00045140H],C[4444H]],  
LIST[$Write,C[00045148H],C[5555H]],  
LIST[$Write,C[00045150H],C[6666H]],  
LIST[$Write,C[00045158H],C[7777H]],  
LIST[$Write,C[00045160H],C[8888H]],  
LIST[$Write,C[00045168H],C[9999H]],
LIST[$SetFlag, $CacheFull], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], --DeMap reply inbetween 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], --20 more
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$ReadAndCheck,C[00045128H],C[1111H]], 
LIST[$Write,C[00045128H],C[22223333H]], 
LIST[$Write,C[00045128H],C[44445555H]], 
LIST[$DeMap,C[00045128H]],  --deMap
LIST[$ReadAndCheck,C[00045128H],C[44445555H]], 
LIST[$ClearVP,C[00045128H]],  --ClearVP
LIST[$ReadAndCheck,C[00045128H],C[44445555H]], 
LIST[$ReadAndCheck,C[00045128H],C[44445555H]], --one more
LIST[$BIOWrite,C[0ABCDEF9H],C[11122233H]], --Broadcast IO

   
$StopSimul,
$Nop,
LIST[$Jump, $Nop]
]];
END.