On Sun, Oct 25, 2009 at 7:40 PM, Andrew Bird (Sphere Systems) <ajb@xxxxxxxxxxxxxxxxxxx> wrote: > My understanding of $_cpu_emu=vm86 is that it's also simulated by software, > just that it's done on demand and cached. You are 100% right here. Chunks of vm86 code are translated to 64-bit native long mode code and then executed. With vm86sim the code is interpreted instead of translated. On i386 kernels, DOSEMU can use the vm86 syscall which is native, but on x86-64 it can't, at least without a special kernel module (http://v86-64.sourceforge.net/) which switches the CPU from long to legacy mode and back, somewhat tricky. What you are running into is a bug in DOSEMU, where it uses a JIT emulator to execute vm86 code (the default on x86-64, and also used when $_cpu_emu="off" there). The bug is not present in the slower, but sometimes more reliable simulator. You could try current SVN to see if it fixed it, because there have been quite a few emulator fixes. I'm sorry I haven't had time to do a new release so far. Bart -- To unsubscribe from this list: send the line "unsubscribe linux-msdos" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html