Re: Re: emm386 in C?
Eric Auer <[email protected]>
| Newsgroups | gmane.os.freedos.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, as a reply to Toms two mails: I did not know that after fixing the known issues there are unknown incompatibilities left between fd(x)xms 0.9 and emm386. The advantage of fdxxms is that it offers > 64 MB XMS for programs that use the new XMS API. Should be no problem for programs as emm386 which use the old API and at most 64 MB XMS. About the problems with tut15: Using PAGING is not too hard: See my emmsys.asm for an example of how to init a page table (untested) and, by the way, for some sketches and stubs for VCPI and EMS API. See vm386/vmm386 as an assembly language example of a smart way to manage pages like clusters in a FAT filesystem. Or, of course, see FD emm386 as an example how to manage EMS in a working but old style (no 4k pages supported, which is needed for EMS 4.0 (less important) and VCPI (more important) ...). For VCPI, see the emmsys stubs for inspiration and vm386 for a supposed- to-work but non-working (!) implementation. I think the "magically trapped I/O port" of vm386 is not the best way to communicate between v86 and protected mode task. Better use privileged instructions at magical addresses that get trapped, along with data in registers or stack (take care, segment registers do not get further than into the TSS because they are incompatible between v86 and protected mode, so you have to access the TSS to read/write them). The mouse mapping and int 15.87 should indeed be easy, but I think mapping UMBs and moving the code beyond 10ffef should be delayed to the point where the rest of the basics is running stable. No opinion on TSR and SYS from me here. I have a mirror of vm386 (in soft/by-others) online, plus emmsys (and pmlib, somewhere in soft/) and some docs and cut-and-paste-of-the-most- important of EMS/VCPI/... API things (in emm386/), all to be found in the mentioned subdirectories of http://www.coli.uni-sb.de/~eric/stuff/ . Feel free to ask me technical detail questions in personal mail. I am alas out of time regarded the actual emm386/C programming for some months or so, but I have thought about emm386 issues a lot, which gives me some kind of "virtual experience" :-). The v86 monitor can be debugged easier when written mostly in C, but I agree that it can be done in plain assembly language, see my emmsys efforts (very incomplete) and FD emm386 (should handle more privileged instructions by emulation instead of killing the offending DOS program, but works nicely otherwise) and vm386. Good luck with emm386 then! Eric.