Author: bla@smashthestack.org Abstract: Fix Bios wait interrupt 0x15 ah=0x86 testcase: http://io.smashthestack.org:84/intro/huh2.asm diff -urpN a/dosbox-0.74/src/cpu/callback.cpp b/dosbox-0.74/src/cpu/callback.cpp --- a/dosbox-0.74/src/cpu/callback.cpp 2010-05-10 19:43:54.000000000 +0200 +++ b/dosbox-0.74/src/cpu/callback.cpp 2011-07-20 22:25:25.000000000 +0200 @@ -65,7 +65,7 @@ void CALLBACK_Idle(void) { Bit16u oldcs=SegValue(cs); Bit32u oldeip=reg_eip; SegSet16(cs,CB_SEG); - reg_eip=call_idle*CB_SIZE; + reg_eip=call_idle*CB_SIZE+CB_SOFFSET; DOSBOX_RunMachine(); reg_eip=oldeip; SegSet16(cs,oldcs); diff -urpN a/dosbox-0.74/src/ints/bios.cpp b/dosbox-0.74/src/ints/bios.cpp --- a/dosbox-0.74/src/ints/bios.cpp 2010-05-10 19:43:54.000000000 +0200 +++ b/dosbox-0.74/src/ints/bios.cpp 2011-07-20 22:22:04.000000000 +0200 @@ -678,6 +678,7 @@ static Bitu INT15_Handler(void) { CALLBACK_Idle(); } CALLBACK_SCF(false); + break; } case 0x87: /* Copy extended memory */ {