Re: Emulated PCI devices?
Stas Sergeev <[email protected]>
| Newsgroups | org.kernel.vger.linux-msdos |
|---|---|
| Message-ID | <[email protected]> |
22.10.2016 16:34, Mouse пишет: >> Its just that usually when you have some expensive HW, emulating it >> in software is not enough because the HW is usually doing something >> useful, not just makes some program to work. :) If you don't need >> any functionality of that HW other than to make some DOS prog happy, > Sort of. It's a (relatively-)high-speed input device, and we plan to > replace it with either a pre-canned data file or a network connection > as a data source. But, even once the host machine has the data, we > have to get it into the program somehow. I could replace all the > relevant hardware accesses with traps to the emulator, but I could also > simulate the hardware it's expecting. I wonder if there is a big difference. Any hardware access you don't have ioperm permissions to, makes it into an emulator trap. So I very much suspect you are talking differently about the same thing. If you patch every in/out insn of your prog into hlt, nothing will really change other than it will be more difficult to simulate. >> then I am afraid dosemu is not prepared for that, and you'll need to >> implement the PCI emulator (in which case you can try qemu). > OK, I'll talk with the other people invovled and we'll decide what tack > to take: hack on the program, add PCI emulation to dosemu, switch > emulators, whatever. Since dosemu is really a virtual machine (not like ntvdm or wine, for example dosemu can run real windows31), and so is qemu, you can get most of everything you had with dosemu, with qemu too. Its just that dosemu sets up many things for you automatically, which makes people think of it as of wine or ntvdm, but its not. With qemu you'll have to do a lot of manual setup to get the host FS access for example, but at the end you can get the same results. OTOH adding the PCI emulator to dosemu is not exceptionally difficult, provided that it already has the PCI bios and emulation of the config space ports. Its not like implementing everything from scratches because you likely only need to emulate the device config space. I suppose the device emulation itself will take much more time anyway, esp if it uses DMA.