VOGONS


First post, by MarkClarke

User metadata
Rank Newbie
Rank
Newbie

Hello! I've been a long time lurker here, as this forum has been an invaluable resource to me when troubleshooting old PC equipment. I've cracked and decided to make an account due to a mystifying issue I've been experiencing with a salvaged AWE64 soundblaster value, model CT4520. I've installed it into an Asus P2-99 motherboard with windows 95 (yes, I know it's not exactly an era appropriate OS for the motherboard/processor combo in question). I also apologize if this has been posted to the wrong forum, as I'm not entirely sure where to turn to for this issue.

The issue - If I don't have the MFBEN jumper installed, I can use the card without any issues under windows 95, no problem. With the jumper in place, the system throws up a non maskable interrupt error on boot, followed by an I/O lockup - I have a window of what looks like a single power cycle to press f1 or f2, past that it becomes unresponsive to keyboard input.

The error message I'm receiving after it posts & self-tests memory is always the following:

"I/O CHANNEL CHECK - CHECKING FOR SEGMENT...
OFFENDING SEGMENT:
F000
PRESS f1 TO DISABLE NMI, F2 TO REBOOT"

Is this card defective by chance? I did pull it from a system with an exploded power supply... So I wouldn't be too surprised. However, the fact that it functions perfectly fine with no audible defects when no jumper is installed leads me to believe it could be a configuration issue on my end, but I could be easily wrong. I read online (probably from this forum) that it also could be an issue with the 512 kb memory installed onto the board, but I'm not sure. Other parts from the same exploded system appear to be working just fine, so i'm assuming this card has a greater chance of being unaffected by the defective PSU. The lack of any specific troubleshooting information online for this issue also leads me to believe this could indeed be a component-level hardware issue, so i have very mixed feelings towards just throwing the towel in on this card.

I'll admit, I don't REALLY know what I'm doing with old hardware like this. I've been spoiled with the convenience of setting up modern PC's. I've never had to resolve any IRQ conflicts or deal with any ISA interfaces in my entire life, so any advice is greatly appreciated.

I unfortunately don't have a huge surplus of parts I could swap out here, other than a questionable, untested pentium 3 that was pulled from the previously mentioned exploded system & a few spare SDRAM sticks. This is the only ISA soundblaster I currently have in my possession, which definitely complicates troubleshooting a bit. I'd like to see if it's fully functional before determining if it's a dud. Worst comes to worst, I wouldn't mind using it without MP-401 emulation until i can find a more suitable replacement.

Thanks again in advance for any advice! I'll keep trying different troubleshooting steps on my own, however I can't emphasize how much I appreciate any help at all.

Reply 1 of 7, by mkarcher

User metadata
Rank l33t
Rank
l33t
MarkClarke wrote on 2023-03-05, 15:29:

The issue - If I don't have the MFBEN jumper installed, I can use the card without any issues under windows 95, no problem. With the jumper in place, the system throws up a non maskable interrupt error on boot, followed by an I/O lockup

The point of MFBEN is that the card generates Non Maskable Interrupts when the MIDI ports are accessed, so that AWEUTIL is able to emulate the MPU-401 interface in software. As long as you don't load AWEUTIL as resident tool, the AWE32/64 series cards are not supposed to generate NMIs. Running AWEUTIL with the /s parameter is fine, and does not activate the NMI feature. If you load AWEUTIL without /s, AWEUTIL is supposed to handle the NMI, and the PC should not enter the default ROM BIOS NMI handler (which is what you are observing).

You only need AWEUTIL for MPU401 compatibility with old DOS software. You should not run AWEUTIL (without /S) from autoexec.bat when you are booting into a protected mode operating system. If you have AWEUTIL without /s in your Windows 95 autoexec.bat, that's the cause of your issue.

Reply 2 of 7, by MarkClarke

User metadata
Rank Newbie
Rank
Newbie
mkarcher wrote on 2023-03-05, 21:08:

As long as you don't load AWEUTIL as resident tool, the AWE32/64 series cards are not supposed to generate NMIs.

Very interesting, thank you kindly for your advice, that's very good to know. Unfortunately, the card is generating NMI's with that jumper in place, even without AWEUTIL & any drivers. It also generated these NMI's before I installed windows 95 onto this machine. Could it be possible that my pentium 3 board simply doesn't support NMI? From what i've researched, the P2-99 uses the intel 440ZX chipset, and i haven't found any mention of NMI support... It is totally possible that I'm not searching hard enough haha.

If all it's for is general midi emulation, that's not really a deal breaker for me. I don't have any FM compatible hardware in my "collection" and i'd be willing to compromise with this card's less-than-accurate reproduction of OPL synthesis.

Apologies if these are stupid questions, but your responses are very much appreciated.

Reply 3 of 7, by mkarcher

User metadata
Rank l33t
Rank
l33t
MarkClarke wrote on 2023-03-05, 21:21:
mkarcher wrote on 2023-03-05, 21:08:

As long as you don't load AWEUTIL as resident tool, the AWE32/64 series cards are not supposed to generate NMIs.

Very interesting, thank you kindly for your advice, that's very good to know. Unfortunately, the card is generating NMI's with that jumper in place, even without AWEUTIL or any drivers loaded.

That sounds like a broken card, then. The MFBEN jumper physically interrupts the NMI line, and makes the card incapable of generating NMIs. In your case, it prevents the card from generating spurious NMIs, which are a very bad thing to happen (as you observed yourself).

MarkClarke wrote on 2023-03-05, 21:21:

Could it be possible that my pentium 3 board simply doesn't support NMI?

If your board woudn't support NMIs, it would just ignore the NMI request of your AWE64 card. The crash you are observing shows that your board is perfectly capable of registering NMIs caused by ISA cards. ISA cards are just not supposed to generate NMIs unless either catastrophical things like memory parity errors happened, or a proprietary driver added an NMI handler (as AWEUTIL does).

MarkClarke wrote on 2023-03-05, 21:21:

If all it's for is general midi emulation, that's not really a deal breaker for me.

That's all. If you pull the MFBEN jumper, AWEUTIL will complain that the NMI won't work, and can't provide MPU401 emulation for General MIDI support. All other features of the AWE64 card work perfectly without MFBEN installed.

Reply 4 of 7, by MarkClarke

User metadata
Rank Newbie
Rank
Newbie
mkarcher wrote on 2023-03-05, 21:29:
MarkClarke wrote on 2023-03-05, 21:21:
mkarcher wrote on 2023-03-05, 21:08:

As long as you don't load AWEUTIL as resident tool, the AWE32/64 series cards are not supposed to generate NMIs.

Very interesting, thank you kindly for your advice, that's very good to know. Unfortunately, the card is generating NMI's with that jumper in place, even without AWEUTIL or any drivers loaded.

That sounds like a broken card, then. The MFBEN jumper physically interrupts the NMI line, and makes the card incapable of generating NMIs. In your case, it prevents the card from generating spurious NMIs, which are a very bad thing to happen (as you observed yourself).

Ahh, that's a real damn shame to hear. It was the one thing I was hoping would still be functional from that busted build, hahah.

mkarcher wrote on 2023-03-05, 21:08:
MarkClarke wrote on 2023-03-05, 21:21:

Could it be possible that my pentium 3 board simply doesn't support NMI?

If your board woudn't support NMIs, it would just ignore the NMI request of your AWE64 card. The crash you are observing shows that your board is perfectly capable of registering NMIs caused by ISA cards. ISA cards are just not supposed to generate NMIs unless either catastrophical things like memory parity errors happened, or a proprietary driver added an NMI handler (as AWEUTIL does).

That's also very informative. It would confirm my suspicions that the card may be faulty from the get go; when it's a more trivial issue to resolve I'd usually be tripping over potential solutions through google.

mkarcher wrote on 2023-03-05, 21:08:
MarkClarke wrote on 2023-03-05, 21:21:

If all it's for is general midi emulation, that's not really a deal breaker for me.

That's all. If you pull the MFBEN jumper, AWEUTIL will complain that the NMI won't work, and can't provide MPU401 emulation for General MIDI support. All other features of the AWE64 card work perfectly without MFBEN installed.

That's great! I would have zero problems using it without it's sub-par general midi emulation. Perhaps I could hand the card off to someone more knowledgeable than I who could take a hand at inspecting the fault in the card, but for now I'll just use it without the jumper installed.

Thank you very much for your help, mkarcher!

Reply 5 of 7, by bytesaber

User metadata
Rank Member
Rank
Member
MarkClarke wrote on 2023-03-05, 15:29:
"I/O CHANNEL CHECK - CHECKING FOR SEGMENT... OFFENDING SEGMENT: F000 PRESS f1 TO DISABLE NMI, F2 TO REBOOT" […]
Show full quote

"I/O CHANNEL CHECK - CHECKING FOR SEGMENT...
OFFENDING SEGMENT:
F000
PRESS f1 TO DISABLE NMI, F2 TO REBOOT"

I am experiencing this error. Mine says Segment 0000 instead of F000.

I am booting a real DOS-6.22 system with an AWE64 gold, to try playing Secret of Monkey Island, with MT32 Emulation by doing "AWEUTIL.EXE /EM:MT32"

The sound font loads fine from the output text of the util. But when I run the game with "monkey r", the error is displayed in large blueish text on a black display at the top. Am I doing something wrong? I am using QEMM fwiw.

Thank you

Reply 6 of 7, by mkarcher

User metadata
Rank l33t
Rank
l33t
bytesaber wrote on 2024-05-04, 18:30:

The sound font loads fine from the output text of the util. But when I run the game with "monkey r", the error is displayed in large blueish text on a black display at the top. Am I doing something wrong? I am using QEMM fwiw.

Oppinions are split about QEMM. My family had QEMM on all 386 or higher systems we used in DOS, and I liked the capabilties of QEMM, so you could consider me a QEMM fanboy. QEMM does some amazing things with its ROM stealthing feature. It does even more amazing things to provide EMS 4.0 support to map the main memory address space, which is a great help for DesqVIEW or Windows 3.0 in Real Mode, but we never used those applications, so QEMM basically just was EMM386 with ROM stealthing for us. Nevertheless, the magic QEMM performs can create compatiblity issues, so if you have a problem while using QEMM, I recommend first to try whether the problem persists if QEMM is not loaded. IIRC you can press some key during boot (Alt?) to disable QEMM. To help troubleshooting into the correct direction, please report first whether the problem persists if QEMM is not loaded. If I remember correctly, QEMM 7.something and AWEUTIL (the version shipped with our CT3600 card) were not generally incompatible, although I rarely used AWEUTIL in MIDI emulation mode.

Your issue seems to be clearly different from the OP issue: You are gettng the "NMI error" system crash exactly at the moment AWEUTIL is supposed to catch the NMI and do its host processor based MIDI processing. At the first glance, your hardware operates less errant than the OP's hardware that also crashed without AWEUTIL enabled. On the other hand, using Monkey Island, you observe the effect of the NMI not being caught by AWEUTIL, but instead heading into the ROM fallback NMI handler. While this is typical for protected mode games (using DOS4GW or similar DOS extenders), as far as I know, all editions of the Secret of Monkey Island are real mode games.

I see multiple possible explanations for the issue: Either some hardware problem prevents AWEUTIL to recognize that the NMI is generated by the AWE64 card is meant to be handled by AWEUTIL, so AWEUTIL purposefully does not handle it, or some software you use installs incompatible code into the NMI handling logic and prevents AWEUTIL from handling the NMI. In systems with an EMM386-like memory manager (this includes 3rd party software like 386MAX, QEMM), the NMI is always first handled by that memory manager (which is actually a kind of basic hypervisor for DOS software), and that memory manager then has to pass the NMI to AWEUTIL. If the memory manager just runs the ROM NMI handler and ignores any TSRs with extra NMI handling capabilities, this might explain the issue. Also, if the context of the NMI handler invoked via QEMM looks different from an NMI on a bare-bones system without QEMM, AWEUTIL might fail to recognize the MIDI NMI. That's why I recommend testing without QEMM. On the other hand, the AWE64 card might not be the only card that uses the NMI. If you have an early SVGA card with CGA/EGA/MDA emulation, it might be based on NMI feedback in a very similar way to the way AWEUTIL works. AFAIK Trident 8900/9000 series cards used software-assisted CGA/MDA/EGA register emulation using the NMI with support for that emulation in the BIOS, which might perform a "hostile takeover" preventing AWEUTIL to work properly.

Try loading AWEUTIL as late as possible (last line of autoexec.bat or at the command prompt directly before invoking monkey island), so AWEUTIL will be the utility that had the last word about who handles the NMI. Try loading as few other TSRs as possible. Try removing other fancy ISA cards that might rely on NMI for operation. And of course, as I already suggested, try without QEMM. If we know whether some of the suggestions help, we can zoom in on the actual problem on your system.

Reply 7 of 7, by bytesaber

User metadata
Rank Member
Rank
Member
mkarcher wrote on 2024-05-05, 08:59:

You are gettng the "NMI error" system crash exactly at the moment AWEUTIL is supposed to catch the NMI and do its host processor based MIDI processing.

Well, I am making a mess of the forum as I stumble across threads that match what I eventually discover from troubleshooting. I am in three places now and I need to help anyone reading this.

1.
I started here at the following thread, because I was simply working on MT32 emulation for Secret of Monkey Island.
Secret of Monkey Island. AWE32 troubles with music

2.
Then I found this current thread with a near similar error.

3.
After doing further troubleshooting, I noticed that disabling L1 cache worked, and wondered if AWEUTIL itself was speed sensitive to my PIII system.
Aweutil /EM option - speed sensitive

I apologize for a mess. This latest thread about AWEUTIL being speed sensitive, seems to be the logical thread. I will try to continue there.