Hi Paul,
> I was thinking... I think DOSEMU2 execute program in VM86 mode. Only if it is a real mode program. If it is a protected mode program, it uses protected mode. DOSEMU2 has DPMI. > That way, direct IN/OUT generate an interrupt that > can be intercepted to emulate hardware. Yes. This is how most emulators emulate hardware, because you would not want your emulator to mess up your real VGA. Actually even MS EMM386 has an interface to register for notification when IN/OUT happens. This is used by some "SoundBlaster compatible" PCI soundcards to trap attempts to access a classic SoundBlaster 16 and let some driver shipped with the PCI soundcards create an illusion of having an ISA soundcard. Unfortunately, JEMM386 does not yet support that interface, but some drivers can use VM86 themselves to simulate a SB16, without needing help from MS EMM386. In all cases, EMM386 puts DOS inside a VM86 task, because it has to run in protected mode itself (to "simulate" EMS, which originally was an ISA add-on hardware, and UMB) which is why some games only run if EMM386 is NOT on. > It is a bit unclear how QEMU/VirtualBox works... I have > read, that newer CPU emulate a full CPU. Emulators for complete computers such as QEMU and VirtualBox indeed tend to emulate the full CPU, so apps can believe that they could do whatever they want. However, this STILL allows you to catch IN/OUT attempts and simulate hardware :-) You can also do this with CPU virtualization assistance, but again, emulators ALWAYS emulate part of your hardware. If they have DOS users as target audience, the hardware will include VGA and SoundBlaster 16 and similar. If the goal is to run Windows 10 inside a window on your Apple, then your emulator is NOT likely to emulate things needed by DOS games. Eric _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel