dmurdoch@watstat.uwaterloo.ca (Duncan Murdoch) (08/11/90)
In article <1260@gold.GVG.TEK.COM> grege@gold.GVG.TEK.COM (Greg Ebert) writes: >> >In the AT, and probably the PC, there is an NMI mask register which allows you >to disable IO_CHANNEL_CHECK interrupts. Yes, it's there in the XT, at least. And by default, in some BIOS's at least, it's left disabled. Lots of languages (MS Fortran I think, old Turbo Pascal, etc.) forget to enable it, and crash when they cause an exception on the math coprocessor (which shares the interrupt, for some reason). >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. On an XT, writing 80h to port A0h enables it. Now, for my question: The current issue of PC Techniques (a new programming mag, generally pretty good) gives instructions (p. 8) to build a simple breakout switch, that triggers a NMI by temporarily grounding bus pin A1. I did it, but get no sign of anything happening, whether NMI is enabled or not. (This on a no-name 8086 clone.) Can anyone suggest a fix? What do I need to do to get an NMI? Duncan Murdoch dmurdoch@watstat.waterloo.edu
mathrich@mthvax.cs.miami.edu (Rich Winkel) (08/14/90)
In <1990Aug11.033457.12369@maytag.waterloo.edu> dmurdoch@watstat.uwaterloo.ca (Duncan Murdoch) writes: >Now, for my question: The current issue of PC Techniques (a new programming >mag, generally pretty good) gives instructions (p. 8) to build a simple >breakout switch, that triggers a NMI by temporarily grounding bus pin A1. >I did it, but get no sign of anything happening, whether NMI is enabled or >not. (This on a no-name 8086 clone.) >Can anyone suggest a fix? What do I need to do to get an NMI? You may need to drive it negative. Try hooking it through a resister to a -5V line. On the XT bus, pin B5 is at -5V. A 1K resister should do. Rich