diff --git a/abstract-machine/am/src/platform/nemu/ioe/audio.c b/abstract-machine/am/src/platform/nemu/ioe/audio.c index 34bd632..98c2478 100644 --- a/abstract-machine/am/src/platform/nemu/ioe/audio.c +++ b/abstract-machine/am/src/platform/nemu/ioe/audio.c @@ -38,7 +38,7 @@ void __am_audio_play(AM_AUDIO_PLAY_T *ctl) { int cnt = ctl->buf.end - ctl->buf.start, i = 0; while (cnt) { // lock sbuf - outl(AUDIO_INIT_ADDR, 1 << 1); + outl(AUDIO_INIT_ADDR, 2); for (; i < cnt; i++) { if (inl(AUDIO_COUNT_ADDR) == audio_sbuf_size) { i--; diff --git a/nemu/src/device/audio.c b/nemu/src/device/audio.c index e4286a2..8a43506 100644 --- a/nemu/src/device/audio.c +++ b/nemu/src/device/audio.c @@ -89,7 +89,7 @@ static void audio_io_handler(uint32_t offset, int len, bool is_write) { case reg_init: if (is_write) { if (audio_base[reg_init] & 1) init_audio_dev(); - if (audio_base[reg_init] & 1 << 1) { + if (audio_base[reg_init] & 2) { mtx_lock(&mtx_audio); } else { mtx_unlock(&mtx_audio);