DOS Emulation Under Linux - a Simple Guide
David Precious writes "With just a little work, it's possible to get your Linux system to run DOS applications with very little trouble. Whether you need to run some legacy corporate application, or just want to play some of those old classic DOS games, it's easy to get going. To make it easy, I've produced a simple guide to explain it. Hopefully it'll be of use to some people."
Will it play Duke Nukem 3D....forever?
Life is not for the lazy.
. . . you can also try DOSbox, which is a virtual DOS machine.
I see a new era of DOS-resident viruses comming up.
Has anyone made emulation work with Parallel port Dongles and Hasps? It seems that most of the emulators target dos games -- will they translate com and printer port calls ?
Some programs that "just work" are really a pain to change. I support a few of these that run on dos and I don't think there is a will to port them or replace them.
At this point Linux is much better maintained than dos and it would be a better fit if the programs ran perfectly? I know I'd like to dump dos.
LS
In real Linux distributions, click K (or G) > Configuration > Packaging > Install software
Enter root password
search for dos.
Tick the dosbox box. Click install.
All the depencancies are automagically resolved and your done in 10 seconds.
Then click
K > Applications > Emulators > Dosbox
Then volia, the c prompt is here haunt you.
Silly geeks, why do you make your life so hard when it can be so easy now days.
Am I the only one who finds the articly higly lacking any useful info?
Sure, I haven't touched DOSEMU since about 1998 but back then I remember all sorts of problems.
Even now, the article mentions nothing about setting up sound, midi playback, etc, is this all handled automatically by dosemu installer (doubt it).
This guide seems to be written by someone who just found DOSEMU yesterday and didn't know anyone used it for years before.
I mean there's even DOSEMU-HOWTO written which is the official linux dosemu howto, what's wrong with that one? It seems to be even kept up-to-date (as popular dos is these days, anyhow).
And most of the games he mentions on the site have way better native linux ports...
DOSBox will also run on non-x86 machines. Got MacOSX or LinuxPPC? Works.
OK, I'm not getting why this article made the front page. The "tutorial" seems to consist of saying "download the software and install it", which shouldn't be too hard to figure out on one's own. The bulk of the tutorial content is pointers to four standard DOS games.
BTW, on Debian, the installation is "apt-get install dosemu-freedos". I was about to gloat about how easy that is, but it looks pretty darn easy under Slackware also. :-)
You only waited 3 hours? You got it lucky, I've been waiting 10 years for a guide on how to use DOSEMU.
There's still a dusty corner of systems design and programming that takes place on DOS: some embedded programming tools (compilers, flash burners, in circuit emulator debuggers) for some chips still work "best" on DOS.
Only now, we can use DOSEMU to run them under Linux and get the benefit of real development environment when supporting legacy apps. We can open a bash shell and use Perl, gnu make, emacs/vim, etc to drive development, then have a DOSemu / FreeDOS window to drive download and debug.
It can be quite difficult automating the Windows versions of these tools to that same level. Most of our projects use Windowes tool (running in VMware on Linux), but we did one two years ago hosted on DOSEMU and using Bytecraft's (now) excellent compiler for the PIC chips.
Best of both worlds, and many, many thanks to all the hackers that made it work so well.
- Barrie
I'm curious to know what are those 16 bytes in the ROM...must have been highly optimized :)
The trick is, that when writing an emulator, you don't need to write a BIOS in 16 bit code. Instead a BIOS implementation is written in 32 bit code, that can execute outside the precious low end address space. Then I just need enough entry points from 16 bit code to 32 bit code. An entry points requires an instruction that will trap from virtual 86 mode to 32 bit user mode. I decided to use the HLT instruction which is only one byte. Because of the segment:offset addressing there are 4096 different ways to address this single byte, that means I have 4096 entry points which is a lot more than I need. The entry point for reboot is sometimes accessed through at least two different addressings, so I avoided to place my HLT instruction there and instead placed the conventional five bytes long far jump instruction there, which jumps to one of my entry points. After this five bytes instruction are eight bytes reserved for the BIOS date written as month / date / year. The last three bytes are three single byte instructions HLT IRET RETF. The HLT and IRET are actually used, the RETF I just placed there because it might come in handy. Because of the DOS memory management and the reboot entry point, there is no way to make the ROM smaller than 16 bytes.
To actually protect the ROM against writing I mark the entire page read only, though it is only the last 16 bytes I really need to protect. This means any write to the first 4050 bytes of this page will trap, those are the traps that I needed to fix in the kernel because they would Oops if triggered by a stack access by an instruction emulated in the kernel. All those traps of course slows down execution, so I might want to sacrifice the last 4050 bytes for a bit of performance. I'm still looking for an efficient way to access the last bytes. If I could put an upper limit to the address accessed by virtual 86 mode, I could switch between a limit just below the ROM and a write protected page, which I belive would speed up execution. Together with my emulator I have put a GPL'ed UMM driver that works with my emulator, quite conveniently this driver does not support the last 4050 bytes of UMB that have been causing problems anyway. EMM386 doesn't work with my emulator, and never will because of braindead Intel design.
Do you care about the security of your wireless mouse?
May I suggest vdmsound Allowed me to play Dune 2 no problems under windows 2k. Bonus points for it being open source and gpl'ed eh?
groklaw, wired and slashdot. The holy trinity of work based time wasting.
IIRC, Apogee sell all their old games online on their website www.3drealms.com -quick check- Yep, if you go here: http://store.yahoo.com/3drealms/dowit.html you can find classics such as Duke Nukem (1&2), Commander Keen (various episodes), and lesser known games such as the "cute" Cosmo, Crystal Caves, etc. Those were the days!