| MemBurnin.burdock, HGM, 23-Apr-85 18:17:22 | | Setup for 1 board. Quits after 100 errors. Output to MemBurnin.log. | Boot[]; Load[MemTest]; CP[00, 0]! sticky ← FFFF; errorCount= CP[00, 0]! errorCount ← 0; passCount= CP[01, 0]! passCount ← 0; lowBank= CP[03, 0]! lowBank ← 0; highBank= CP[04, 0]! highBank ← 7; address= CP[07, 0]! $address; expected= CP[08, 0]! expected; found= CP[09, 0]! found; CP[0A, 0]! found2; CP[0B, 0]! found3; diff= CP[0C, 0]! diff ← 0; picked= CP[0D, 0]! picked ← 0; dropped= CP[0E, 0]! dropped ← 0; toCommand= CP[10, 0]! toCommand ← 0; toData= CP[11, 0]! toData ← 0; toAddr= CP[12, 0]! $toAddr ← 0; pc= CP[00, 2]! .TPC 0; reason= CP[01, 2]! reason; Break[DataMismatchButNoParityError]; Break[DataMismatchAndParityError]; Break[MesaIntIsProbablyAParityError]; Break[AnotherGoodPass]; | reason = 1 | Break[AnotherHundredGoodPasses]; | reason = 2 | OpenToAppend["MemBurnin.log"]; WriteTime[]; Write[" Start of Memory burnin test. LowBank = "]; WriteLoc[lowBank]; Write[", HighBank = "]; WriteLoc[highBank]; WriteLine["."]; WriteLine[]; Close[]; SetMP[passCount]; Loop: Continue[0]; SetMP[passCount]; IF reason = 1 { GOTO[Loop]; }; OpenToAppend["MemBurnin.log"]; IF reason = 2 { WriteTime[]; WriteLine[" Another hundred good passes."]; Close[]; GOTO[Loop]; }; IF errorCount = 1 {WriteLine[" Err Pass Addr Exp Fnd Diff Pick Drop Cmd Data ToAddr Reason"];}; WriteTime[]; WriteLoc[errorCount, 4]; WriteLoc[passCount, 5]; WriteLoc[address, 8]; WriteLoc[expected, 5]; WriteLoc[found, 5]; WriteLoc[diff, 5]; WriteLoc[picked, 5]; WriteLoc[dropped, 5]; WriteLoc[toCommand, 6]; WriteLoc[toData, 5]; WriteLoc[toAddr, 7]; Write[" "]; WriteLoc[pc]; WriteLine[]; Close[]; IF errorCount < 100 {GOTO[Loop];};