diff options
Diffstat (limited to 'utils/midiplay/adlmidiplay.cpp')
-rw-r--r-- | utils/midiplay/adlmidiplay.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp index 443327d..e7ff8ef 100644 --- a/utils/midiplay/adlmidiplay.cpp +++ b/utils/midiplay/adlmidiplay.cpp @@ -627,14 +627,14 @@ static struct TimeCounter #endif #ifdef ADLMIDI_ENABLE_HW_DOS - unsigned newTimerFreq; + volatile unsigned newTimerFreq; unsigned timerPeriod; int haveYield; int haveDosIdle; - unsigned int ring; - unsigned long BIOStimer_begin; + volatile unsigned int ring; + volatile unsigned long BIOStimer_begin; - unsigned long timerNext; + volatile unsigned long timerNext; enum wmethod { @@ -776,7 +776,10 @@ static struct TimeCounter default: case WM_NONE: if(timerNext != 0) - while(BIOStimer < timerNext); + { + while(BIOStimer < timerNext) + delay(1); + } timerNext = BIOStimer + 1; break; |