DIRECTORY Atom; PBusCacheProg2: CEDAR PROGRAM IMPORTS Atom EXPORTS ~ BEGIN C: PROC [c: CARD] RETURNS [rc: REF ANY] = {rc _ NEW[CARD _ c]}; Atom.PutProp[$PBusEmul, $PKList, LIST[ LIST[$Wait, C[100]], -- wait for the DBus and the memory controller to be intialized LIST[$SetMode,C[1]], -- test in User mode LIST[$SetByteSelect,C[08H]], -- MSB selection LIST[$Write,C[00112233H],C[89ABCDEFH]], LIST[$ReadAndCheck,C[00112233H],C[89234567H]], LIST[$SetByteSelect,C[04H]], -- Byte selection LIST[$Write,C[00112233H],C[56ABCDEFH]], LIST[$ReadAndCheck,C[00112233H],C[89AB4567H]], LIST[$SetByteSelect,C[02H]], -- Byte selection LIST[$Write,C[00112233H],C[5678CDEFH]], LIST[$ReadAndCheck,C[00112233H],C[89ABCD67H]], LIST[$SetByteSelect,C[01H]], -- LSB selection LIST[$Write,C[00112233H],C[567890EFH]], LIST[$ReadAndCheck,C[00112233H],C[89ABCDEFH]], LIST[$SetByteSelect,C[0AH]], -- Bytes selection LIST[$ReadAndCheck,C[00112233H],C[89ABCDEFH]], LIST[$IOWrite,C[9H],C[01234567H],C[13H]], -- AID register LIST[$SetMode,C[0]], -- Put in Kernel mode LIST[$SetByteSelect,C[0FH]], -- Word selection LIST[$IOWrite,C[9H],C[01234567H]], -- AID register LIST[$SetByteSelect,C[0AH]], -- Bytes selection LIST[$IOWrite,C[9H],C[99887766H]], -- AID register LIST[$SetMode,C[1]], -- Put in User mode LIST[$SetByteSelect,C[0FH]], -- Bytes selection LIST[$IOWrite,C[3H],C[98765432H]], -- CWSnew register LIST[$IOReadAndCheck,C[9H],C[0H],C[13H]], -- Fault access in User M LIST[$SetMode,C[0]], -- Put in Kernel mode LIST[$IOReadAndCheck,C[9H],C[99237767H]], LIST[$SetMode,C[1]], -- Put in User mode LIST[$IOReadAndCheck,C[3H],C[98765432H]], LIST[$SetByteSelect,C[0AH]], -- Bytes selection LIST[$IOWrite,C[0ABCDEFH],C[01357H]], -- IO external to the cache LIST[$IOReadAndCheck,C[0ABCDEFH],C[01357H]], $StopSimul, $Nop, LIST[$Jump, $Nop] ]]; END. μPBusCacheProg2.mesa Copyright Σ 1987, 1988 by Xerox Corporation. All rights reserved. Created by Jean Gastinel, March 20, 1988 6:20:57 pm PDT Pradeep Sindhu May 10, 1988 9:06:08 pm PDT Jean Gastinel May 22, 1988 6:04:00 pm PDT Testing for Byte Access on Ram Testing that Byte select has no effect on Read Testing Behavior of Byteselect on inernal IOWrite First let's generate a fault becaus in User mode Testing that ByteSelect IOWrite has no effect on external Adresses Κα˜codešœ™KšœB™BKšœ7™7K™*Kšœ*™*K™—K™K™KšΟk ˜ Kšœ˜KšΡbln Οnœœ˜Kšœ˜ Kšœ˜šœ˜K˜—˜KšŸœœœœœœ œœ˜?K˜K˜šœ!œ˜&KšœœΟc?˜VK˜Kšœ™K™Kšœœ ˜.Kšœ˜Kšœœ ˜2Kšœœ%˜+Kšœœ-˜3K˜Kšœœ ˜3Kšœœ%˜+Kšœœ1˜7Kšœœ ˜3Kšœœ%˜+Kšœœ1˜7Kšœœ ˜2Kšœœ%˜+Kšœœ-˜3K˜Kšœ.™.K™Kšœœ ˜4Kšœœ+˜1Kšœ˜Kšœ3™3K™K™2Kšœœ) ˜?Kšœ˜Kšœœ ˜/Kšœœ ˜3Kšœœ# ˜9Kšœœ ˜4Kšœœ# ˜9Kšœœ ˜-Kšœœ ˜4Kšœœ# ˜;Kš ˜Kšœœ' ˜IKšœœ ˜/Kšœœ(˜.Kšœœ ˜-Kšœœ+˜1KšœD™DKšœœ ˜4Kšœœ% ˜GKšœœ)˜/Kšœ ˜ Kšœ˜Kšœ ˜ K˜Kšœœ ˜Kšœ˜K˜——K˜Kšœ˜—…— Ρ