Subject: Space Quest IV SoundBlaster Fix Intro ----- On OS/2 2.0 304E, Space Quest IV experiences problems in a DOS session. On machines that have the SoundBlaster card, it runs for about 30 seconds, and then stops. The problem was found to be related to DMA transfers and simulated interrupts. Fix Description --------------- After debugging for several days, a fix was found for the SNDBLAST.DRV file that comes with Space Quest IV. This fix makes the interrupt handler for the SoundBlaster card work better under a Virtual 86 environment. Essentially, it guarantees that the SoundBlaster card is in the correct state before it sends an End of Interrupt (EOI) to the Programmable Interrupt Controller. We have patched the SNDBLAST.DRV file and it now works correctly. Essentially, the EOI is at the end of the interrupt handler instead of at the beginning. Why Not Change OS/2? -------------------- Changing OS/2 for this problem would mean a great deal of work. Interrupt simulation would have to change so that it would be impossible to ever enable interrupts while running a DOS interrupt handler. All associated code would have to be resident (present), and the DOS address space for interrupt handlers could never cross a page-boundry without the pages being present. This is not a trivial fix. The fix was to move four bytes of code in the SNDBLAST.DRV instead of trying a major change to OS/2. Sierra Contact -------------- Sierra was contacted to discuss the change.They agreed that it was a good change and that it might partially explain why Space Quest IV doesn't work under Windows Enhanced Mode Dos sessions. We expect that they will incorporate this idea into their products from this day on. Patch for Customers ------------------- We have built a executable called SQ4FIX.COM that runs in a DOS session. We are putting this file into the product, and it will be installed into \OS2\MDOS when the user selects the DOS & Win-OS/2 section during install. To use this patch program, the user only has to change to the drive which has Space Quest IV installed and execute the program. Example: D:\> sq4fix There are no parameters to worry about and SQ4FIX will do error checking. The README for GA is being updated to inform the user about this program and how to use it.