aboutsummaryrefslogtreecommitdiff
path: root/utils/midiplay/adlmidiplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/midiplay/adlmidiplay.cpp')
-rw-r--r--utils/midiplay/adlmidiplay.cpp13
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;