diff --git a/bochs/iodev/sb16.cc b/bochs/iodev/sb16.cc index 7ded3b823..591498ca2 100644 --- a/bochs/iodev/sb16.cc +++ b/bochs/iodev/sb16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: sb16.cc,v 1.42 2004-09-19 18:38:09 vruppert Exp $ +// $Id: sb16.cc,v 1.43 2005-02-04 19:50:50 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -229,7 +229,7 @@ void bx_sb16_c::init(void) MIXER.reg[0x00] = 0; // reset register MIXER.reg[0x80] = 2; // IRQ 5 MIXER.reg[0x81] = 2; // 8-bit DMA 1, no 16-bit DMA - MIXER.reg[0x82] = 0; // no IRQ pending + MIXER.reg[0x82] = 2 << 5; // no IRQ pending MIXER.reg[0xfd] = 16; // ??? MIXER.reg[0xfe] = 6; // ??? set_irq_dma(); // set the IRQ and DMA @@ -243,6 +243,11 @@ void bx_sb16_c::init(void) OPL.timer_running = 0; opl_entermode(single); + // csp + memset(&BX_SB16_THIS csp_reg[0], 0, sizeof(BX_SB16_THIS csp_reg)); + BX_SB16_THIS csp_reg[5] = 0x01; + BX_SB16_THIS csp_reg[9] = 0xf8; + // Allocate the IO addresses, 2x0..2xf, 3x0..3x4 and 388..38b for (addr=BX_SB16_IO; addr