|
|
1.1 ! root 1: ! 2: /* mem.h 4.9 81/04/03 */ ! 3: /* Tahoe version Dec 1982 */ ! 4: ! 5: /* ! 6: * Memory controller registers ! 7: * ! 8: */ ! 9: ! 10: ! 11: /* ! 12: * Some bits definition for MCR ! 13: */ ! 14: ! 15: #define EED 0x01 /* Enable error detection */ ! 16: #define EEC 0x02 /* Enable error correction */ ! 17: #define WMD 0x04 /* Write memory diagnostic */ ! 18: #define RMD 0x08 /* Read memory diagnostic */ ! 19: #define INT 0x20 /* Init = power on bit */ ! 20: #define CEC 0x40 /* Clear error count */ ! 21: #define CME 0x80 /* Clear memory error */ ! 22: #define CMEC 0xff00 /* Corrected memory error count (mask) */ ! 23: ! 24: /* ! 25: * MER bits ! 26: */ ! 27: ! 28: #define ERRCD 0x07 /* Error code (mask) */ ! 29: #define APE 1 /* Address parity error */ ! 30: #define DPE 2 /* Data parity error */ ! 31: #define DCE 3 /* Data check error */ ! 32: #define VTO 4 /* Versabus timeout */ ! 33: #define VBE 5 /* Versabus error */ ! 34: #define NEM 6 /* Non-existent memory */ ! 35: ! 36: #define AXE 0x08 /* Adapter external error */ ! 37: #define ERM 0x10 /* Error master (0=CPU, 1=Versabus) */ ! 38: #define IVV 0x100 /* Illegal Versabus vector */ ! 39: ! 40: /* ! 41: * MCBR bits ! 42: */ ! 43: ! 44: #define MCBR 0xffff0000 ! 45: #define MEAR 0xffff0000 ! 46: ! 47: /* ! 48: * Frame for bus error ! 49: */ ! 50: struct buserframe { ! 51: int which_bus; /* primary or secondary */ ! 52: int memerreg; /* memory error register */ ! 53: int trp_pc; /* trapped pc */ ! 54: int trp_psl; /* trapped psl */ ! 55: }; ! 56: ! 57: extern long IOinit; ! 58: ! 59: buserror(busef) ! 60: long *busef; ! 61: { ! 62: register struct buserframe *frameptr; ! 63: register long hardreg; ! 64: ! 65: if (IOinit) return; ! 66: frameptr = (struct buserframe *)busef; ! 67: writes("\nbus error at address : "); writeh(frameptr->trp_pc); ! 68: writes(", PSL : "); writeh(frameptr->trp_psl); ! 69: hardreg = frameptr->memerreg; ! 70: ! 71: writes("\nMEAR = "); writeh(((hardreg&MEAR)>>16)&0xffff); ! 72: switch (hardreg & ERRCD){ ! 73: case (APE): writes("\tAddress parity error !! \n"); ! 74: break; ! 75: case (DPE): writes("\tData parity error.\n"); ! 76: break; ! 77: case (DCE): writes("\tData check error.\n"); ! 78: break; ! 79: case (VTO): writes("\tVersabus timeout.\n"); ! 80: break; ! 81: case (VBE): writes("\tVersabus error !! \n"); ! 82: break; ! 83: case (NEM): writes("\tNon existent memory.\n"); ! 84: break; ! 85: default: writes("\tUnknown error code : "); ! 86: writeh(hardreg&ERRCD); ! 87: } ! 88: if (hardreg&AXE) writes("\tAdapter external error\n"); ! 89: writes ("\tError master : "); ! 90: if (hardreg&ERM) writes("Versabus\n"); ! 91: else writes ("Tahoe\n"); ! 92: if (hardreg&IVV) writes("\tIllegal interrupt vector\n"); ! 93: ! 94: hardreg = frameptr->which_bus; ! 95: writes("\nMCBR = "); writeh(((hardreg&0x1fff)>>16)&0xffff); ! 96: writes("\tVersabus type : "); writeh(hardreg&0xffff); writec('\n'); ! 97: } ! 98:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.