$Id: README,v 1.7 1997/03/18 02:32:35 msmith Exp $ This is the work-in-progress BSD DOScmd MS-DOS emulator. It supports both the running of individual DOS programs and the booting of MS-DOS inside the emulator. It is based on source released by BSDi, and is not related to the Linux DOSemu in any way. At this point in time, this version of DOScmd runs under FreeBSD. It is most recently descended from work by John Kohl on the BSDi sources for NetBSD, and as such should build and run under NetBSD with trivial changes. I/we do not currently have a NetBSD machine to test on. Work is also underway to reinstate the BSD/OS support with the eventual aim of having a single product that will compile on all BSD platforms. (It is expected that the OpenBSD people will find supporting DOScmd a trivial exercise.) To get up and going, apply the patch in the diffs directory to your /usr/src directory (or a copy therof). Make sure that you supply the '-p' argument to patch, so that it generates the new files correctly. Note that as of this version, the bulk of the vm86 support is now in a loadable kernel module. More on that below. Build a new kernel; no specific options need to be supplied. Note that the patches change the size of a kernel data structure, and as a consequence 'w' and 'ps' and similar tools will not work with the new kernel. You can rebuild libkvm and these tools if you plan to use the new kernel on a regular basis. Build the lkm in src/lkm/vm86. It can be loaded simply by saying 'modload vm86_mod.o'. Build the emulator in the freebsd directory. Note that the freebsd/machine directory contains prepatched versions of some system headers affected by the vm86 patches; this avoids having to install the new versions in /usr/include/machine. A VGA font suitable for use with DOScmd in X mode is supplied in 'vga.pcf'. Put this in your /usr/X11R6/lib/X11/fonts/misc directory, as root say 'mkfontdir' in that directory, and then say 'xset fp rehash' before running DOScmd (or restart your X server). Read the manual page in the freebsd directory for usage details, or ask on the emulation@freebsd.org mailing list if you're stumped. Any bug reports will be promptly responded to. Note that this document, and others in the same directory are fairly outdated, and contain some inaccuracies. In particular, note that a harddisk image must be fleshed out using dd before it can be used. Enjoy! Mike msmith@gsoft.com.au changes: -------- 970320: Update patch set to the latest from Jonathan. 970318: Integrated Jonathan Lemon's changes to the vm86 kernel code, including LKM support. This appears to have mostly squashed the problems where DOS programs not trapping to the emulator were immune to scheduling. Fixed some serious bugs in the redirector which prevented it from being good for much at all; file sizes were not being updated on writes, the 'qualify path' function was returning a misleading error code, chdir() would only work on writeable filesystems, and there were a few other bogons too. 960923: Major code rework to improve register access abstractions. All functions needing register access now take a parameter 'regcontext_t *REGS', and macros R_* are provided to access registers independent of the actual platform implementation. This does away forever with the nasty GETx/PUTx macros, although these are still available for compatability. Neither the video BIOS nor tty code have been converted yet, as these are undergoing a rewrite. Consolidated several small files into the BIOS, and other (as yet unimplemented) NetBIOS files together. Functionally, this version should be identical to 960920 modulo any transcription errors. Finished (hopefully) whitespace and formatting changes. At last there is (almost) a single coding style throughout. 960920: Reworked the redirector support, fixed several oddities and implemtented 2f:11:0f (stat). Reimplement PSL_I for pushf/popf.