From 01b56cd73039760fd8a319584c979aa10d50119b Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Mon, 6 May 2024 00:29:39 +0300 Subject: MidiPlay: Added check for dmpi_yield on DOS and use the "hlt" when "dmpi_yield" is unavailable --- utils/midiplay/adlmidiplay.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'utils/midiplay') diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp index 542a3a1..1b5bf28 100644 --- a/utils/midiplay/adlmidiplay.cpp +++ b/utils/midiplay/adlmidiplay.cpp @@ -122,6 +122,7 @@ __inline int c99_snprintf(char *outBuf, size_t size, const char *format, ...) #define HW_OPL_MSDOS #include #include +#include #include #include #include @@ -998,6 +999,10 @@ int main(int argc, char **argv) # ifdef __DJGPP__ //disable(); + int haveYield; + errno = 0; + __dpmi_yield(); + haveYield = errno ? 0 : 1; outportb(0x43, 0x34); outportb(0x40, timerPeriod & 0xFF); outportb(0x40, timerPeriod >> 8); @@ -1192,7 +1197,10 @@ int main(int argc, char **argv) //__asm__ volatile("sti\nhlt"); //usleep(10000); # ifdef __DJGPP__ - __dpmi_yield(); + if(haveYield) + __dpmi_yield(); + else + __asm__ volatile("hlt"); # endif # ifdef __WATCOMC__ //dpmi_dos_yield(); -- cgit v1.2.3