baxter@robespierre.ICS.UCI.EDU (Ira Baxter) (08/11/90)
My PC clone has memory-parity error detect. How does this information make its way from the the detection circuitry to me, the user, when a parity error occurs? I assume there is some sort of non-maskable interrupt vector provided by the hardware for this... but I hear that *application* software actually "ignores" such errors; how would the software accomplish this, and why would anybody writing an application program bother to do this? -- Ira Baxter
grege@gold.GVG.TEK.COM (Greg Ebert) (08/11/90)
In article <9008101543.aa18551@PARIS.ICS.UCI.EDU> baxter@robespierre.ICS.UCI.EDU (Ira Baxter) writes: >My PC clone has memory-parity error detect. How does this information make >its way from the the detection circuitry to me, the user, when a parity >error occurs? I assume there is some sort of non-maskable interrupt vector >provided by the hardware for this... but I hear that *application* software >actually "ignores" such errors; how would the software accomplish this, >and why would anybody writing an application program bother to do this? > > In the AT, and probably the PC, there is an NMI mask register which allows you to disable IO_CHANNEL_CHECK interrupts. One reason is memory sizing. Typically, a pattern is written into RAM, and subsequently read-back, to determine if RAM exists at that particular address. The plethora of idiot programmers out there may not know how to handle an NMI, so they disable them. Why would you get a parity error ? Simple. If the scheme uses even-parity, and the hardware (most likely) reads FFFFh with parity=1 at a non-existent address, bingo, instant parity error. I believe the mask register is in port 70h, bit 7. It's been awhile since I did that ASIC for AST Research, which had the NMI register inside. I think writing a '1' to this position disables NMI's. As for why would an applications programmer disable NMI, I dunno. Why would Micr*s*ft write a program like BASIC or EXE2BIN which requires 'wraparound' to address 0 after reaching FFFFFh ? ----------------------------------------------------------------------------- Warning: I wear titanium underpants.