VOGONS


First post, by Riikcakirds

User metadata
Rank Member
Rank
Member

Over the week I've been testing a CT4520 AWE64 card in DOS. Everything works apart from:

After running Aweutil /EM:MT32 command it shows:
SYNTHMT.SBK loaded
Set MIDI emulation to MT32
Reverb: ###########################
Chorus: ###########################
TSR installed.

Then when I run a game like Supaplex, King's Quest IV, Populous Prince Persia, M1 Tank (any REAL-MODE game that supports MT32), it will crash out with the following error message:

I/O CHANNEL CHECK - CHECKING FOR SEGMENT
OFFENDING SEGMENT:
E000
PRESS F1 TO DISABLE NMI, F2 TO REBOOT

The above message is not generated by the games, i have found it in the bios , searching the bios image in a hex editor.
The computer I am using is an MS-5120, 430fx chipset with a Pentium 100mhz. MS-DOS 6.22. My motherboard bios has an option for memory parity on/off but makes no difference.

I have found by chance that if I disable CPU L1 cache the games now work with MT32 emulation, but they run like a slideshow (the games run fine using a P100 with adlib and only Aweutil /s option).
Considering P100 was period correct in 1996 when the Aweutil was in common use i don't think people were disabling L1 cache back then to play these games using \EM option.
Is Aweutil speed sensitive?

Reply 1 of 8, by dominusprog

User metadata
Rank Member
Rank
Member

AWEUTIL will not work in protected mode. You have to use the DOS32AWE utility.

DOS32AWE - DOS/4G compatible DOS Extender with Sound Blaster AWEUTIL MIDI synthesizer support for Protected mode,VIASB

Duke_2600.png
A-Trend ATC-1020 V1.1 ❇ Cyrix 6x86 150+ @ 120MHz ❇ 32MiB EDO RAM (8MiBx4) ❇ A-Trend S3 Trio64V2 2MiB
Aztech Pro16 II-3D PnP ❇ 8.4GiB Quantum Fireball ❇ Win95 OSR2 Plus!

Reply 2 of 8, by Riikcakirds

User metadata
Rank Member
Rank
Member
dominusprog wrote on 2023-12-31, 14:36:

AWEUTIL will not work in protected mode. You have to use the DOS32AWE utility.

DOS32AWE - DOS/4G compatible DOS Extender with Sound Blaster AWEUTIL MIDI synthesizer support for Protected mode,VIASB

These are all real mode games from crica 1988-1990. I'm not running emm386 only umbpci so the cpu is also in real mode.
I've tried the above for protected mode games and it works most of the time.
The problem I have is with Aweutil /EM:MT32, then loading a real mode game like supaplex that support MT32, it errors out and dos shows:

I/O CHANNEL CHECK - CHECKING FOR SEGMENT
OFFENDING SEGMENT:
E000
PRESS F1 TO DISABLE NMI, F2 TO REBOOT

.

Reply 3 of 8, by Tiido

User metadata
Rank l33t
Rank
l33t

This is sort of a board/BIOS incompatibility. AWE cards use NMI to do their MIDI emulation, but some boards trap it before the TSR can and output a message like this. Disabling NMI will remove any chance for the TSR to do its magic and reboot is not useful either 🤣.

You may have lucky with changing BIOS on the board, perhaps there's one that will not care about NMI...

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 4 of 8, by georgel

User metadata
Rank Member
Rank
Member

Which version of AWEUTIL are you using? Try to use the latest one. AWEUTIL likes higher CPU speeds. The BIOS must not trap the NMI first. AWEUTIL stays earlier if not on top of the NMI handlers chain. Either for some reason the NMI vector in the interrupt table is overwritten back with the BIOS vector (for example on a timer basis), or most likely AWEUTIL does not recognize some or all NMIs as sound card generated and passes program flow down the next NMI handler. After AWEUTIL installation in /EM mode it would be interesting to see the NMI vector pointer of your configuration. For example you may run C:>debug and type the dump command d0:8 (it is a zero after d, what a stupid font vogons forum has) and tell what the first 4 dumped bytes are. The "OFFENDING SEGMENT" also puzzles me. Could you please stop using UMBs for testing purpose. Do you know which TSRs are located in EOOO segment in your DOS setup? I think you are loading high AWEUTIL in that region and it passes NMI down the interrupt handler that corresponds to the second scenario I described.

Reply 5 of 8, by Riikcakirds

User metadata
Rank Member
Rank
Member
georgel wrote on 2024-01-01, 07:26:

Which version of AWEUTIL are you using? Try to use the latest one. AWEUTIL likes higher CPU speeds. The BIOS must not trap the NMI first. AWEUTIL stays earlier if not on top of the NMI handlers chain. Either for some reason the NMI vector in the interrupt table is overwritten back with the BIOS vector (for example on a timer basis), or most likely AWEUTIL does not recognize some or all NMIs as sound card generated and passes program flow down the next NMI handler. After AWEUTIL installation in /EM mode it would be interesting to see the NMI vector pointer of your configuration. For example you may run C:>debug and type the dump command d0:8 (it is a zero after d, what a stupid font vogons forum has) and tell what the first 4 dumped bytes are. The "OFFENDING SEGMENT" also puzzles me. Could you please stop using UMBs for testing purpose. Do you know which TSRs are located in EOOO segment in your DOS setup? I think you are loading high AWEUTIL in that region and it passes NMI down the interrupt handler that corresponds to the second scenario I described.

Oops, I made a mistake with the "OFFENDING SEGMENT" it was OOOO, not EOOO. Sorry about that, my mind was a bit frazzled with the Christmas chaos going on here.

I'm using AWEUTIL V1.36, and the card is a CT4520 AWE64.
Booting to Dos clean (nothing loaded, not even himem.sys) then running CTCM to initialize card. The Blaster line is:
BLASTER=A220 I5 D1 H5 P330 E620 T6

After running AWEUTIL /EM:MT32
the first 4 bytes output of Debug d0:8 is - C1 13 DE 15

The reason I'm booting to Dos clean, with no TSRs loaded or even himem.sys, is because the two real-mode games I'm running that offer MT32 both work with only 512kb memory and it rules out out any other dos tsr problems. (the games are Supaplex and Chips Challenge, both easy to setup with choice of adlib or MT32).
Both games will run fine on my P100 after running AWEUTIL /S and then selecting Adlib sound in the games.

After running AWEUTIL /EM:MT32 then running the games they will bomb out to dos text mode screen with:
I/O CHANNEL CHECK - CHECKING FOR SEGMENT
OFFENDING SEGMENT:
0000
PRESS F1 TO DISABLE NMI, F2 TO REBOOT

Pressing either F1 or F2 does nothing.

Reply 6 of 8, by georgel

User metadata
Rank Member
Rank
Member

I recommend you to load normally your config.sys and autoexec.bat and start a protected mode game with DOS32AWE, then exit the game and without rebooting the PC run a real mode game that used to cause I/O CHANNEL CHECK error.

Reply 7 of 8, by Riikcakirds

User metadata
Rank Member
Rank
Member
georgel wrote on 2024-01-02, 04:46:

I recommend you to load normally your config.sys and autoexec.bat and start a protected mode game with DOS32AWE, then exit the game and without rebooting the PC run a real mode game that used to cause I/O CHANNEL CHECK error.

I ran the game Screamer, first renamed DOS32AWE to dos4gw in the game directory. Selected General Midi as music device in setup and the game worked with GM music. This was after running AWEUTIL /EM:GM.
Then I exited Screamer and ran real mode game Chips Challenge and it showed:

I/O CHANNEL CHECK - CHECKING FOR SEGMENT
OFFENDING SEGMENT:
D000
PRESS F1 TO DISABLE NMI, F2 TO REBOOT

Difference is the segment is now D000 instead of oooo, and also now pressing F1 works and it takes me back to the dos prompt.