From 53f261d26654dda2bfc82ae8ccc16abe2d261506 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Thu, 1 May 2025 21:57:56 +0300 Subject: MIDIPlay: Small timer tweak at the DOS player --- utils/midiplay/adlmidiplay.cpp | 13 ++++++++----- 1 file 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; -- cgit v1.2.3