IBMulator icon indicating copy to clipboard operation
IBMulator copied to clipboard

MEGAMID hangs while resetting the SB DSP if used with the /sbmidi program argument.

Open barotto opened this issue 3 years ago • 0 comments

After the Sound Blaster DSP reset, MEGAMID reads the DMA channel 0's current count register (port 0x01) to see if its value is 0, otherwise it waits indefinitely.

The PS/1 BIOS POST procedure tests the DMA controller writing all its registers with the 0xAA value without clearing them afterwards, so when MEGAMID reads port 0x01 looking for 0 it ends up hanging.

Verified also on DOSBox, which won't hang as it starts with all DMA registers cleared.

Not verified on real hardware (I need a Sound Blaster) but AFAIK the DMA controller won't clear its channels' registers on RESET so I expect MEGAMID to hang on a real PS/1 too.

This is a MEGAMID's bug which manifests itself on the PS/1, so everything "works" as intended.

barotto avatar Dec 25 '20 20:12 barotto