DOS platform emulation stuff
Posted: Sun 26 Jul 2009, 09:43
Hmmm .....
Recently, I was finally able to play with Dosbox 0.73 and Dosemu 1.4.0. After tinkering with them for a bit, I made these pet packages in the hope that they'll be useful to someone. Note: These are once in a blue moon effort and probably will not be maintained.
Dosbox was a straight forward setup and easy to use. It comes with built-in dos shell and all I have to do is to mount the appropriate folder as drive C and the way I go ...
Dosemu needs some tinkering to get it to work right on puppy. Initially I had segfaults and bus errors with dosemu. It seemed hopeless but I needed those direct hardware access. After a bit of tinkering, I realized that it just needed some basic memory handling stuffs to be properly setup and walla, no more segfaults, no more bus errors.
Dosemu requires hands on DOS folder population. The easiest would be to create ~/.dosemu/drives/drive_c folder and copy the necessary DOS files into it. The xdosemu loader script have been adjusted to handle shm checking.
DosBox basic comparison specs
---------------------------------
1. runs on any CPU. Defaults as x86 cpu emulation (with DIT only on x86 cpu)
2. emulates 286/386
3. No direct hardware access
4. SDL library is compulsory
5. built-in DOS shell
6. S3 Trio64 emulation (text -> VESA 2.0)
7. SB16/GUS/WSS/Speaker emulation
8. mount folder or disk image
9. One single binary for all
10. actively maintained
Dosemu basic comparison specs
---------------------------------
1. runs on x86 CPU only. Defaults as JIT (with optional vm86/full cpu emulation)
2. emulates 8086/286/386/486/586
3. allows direct hardware access (user configured)
4. Xlib/SDL/slang are optional
5. requires external DOS shell
6. Trident8900C emulation (text -> VESA 2.0)
7. SB16 emulation only
8. boot to a populated folder, disk image or direct disk access
9. Modular binary package, least dependency.
10. maintainance seems dormant
Which one to use ?
-----------------------
For most DOS stuffs, Dosbox is recommended. If you just want to run a DOS based apps, it's highly likely dosbox will fit the bill. The single binary comes with everything ready to run. Of course, the SDL library IS the minimum pre-requisite. For network support, SDL_net linked binary is also available.
Dosemu is recommended if you need specific customized setup (for example) :
1. Direct parallel access to an eprom programmer.
2. Boot specific DOS versions (MS-DOS 5.0-7.1, DR-DOS, FDOS, etc).
3. Mounting and booting a drive/partition directly.
4. Pentium level optimization.
5. TUN/TAP vnet capability.
(Note: actual setup is beyond the scope of this thread. Further info can be found in the README)
Execution speed is subjective to actual hardware in use. Both dosbox and dosemu have their own quirks. Some apps works better on dosbox and vice-versa. Some h/w dependent apps may work better in dosemu. However, I noticed peaked cpu usage when running apps in dosbox in several cases. Dosemu seems to be able to release cpu time and thus lower cpu usage in several cases. YMMV ...
PET binary packages :
--------------------------
(Note: Full source code is available upstream. No source modifications made.)
DOSBox 0.73 standard (745KB)
[download]
Description: Dosbox 0.73 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
Requires SDL-1.2.13 library minimum.
DOSBox 0.73 network support (765KB)
[download]
Description: Dosbox 0.73 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
Requires SDL-1.2.13 and SDL_net 1.2.7 library.
DOSEmu 1.4.0 basic (1.06MB)
[download]
Description: DOSEmu 1.4.0 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
SDL-1.2.13 library optional. FreeDOS tarball not included.
Requires manual boot folder/image preparation.
SDL-1.2.13 library (2MB)
[download]
Description: SDL 1.2.13 release pet package. Compiled on Puppy 412.
Full library, headers, docs, mans, etc. Suitable for developers.
SDL_net-1.2.7 library (37KB)
[download]
Description: SDL_net 1.2.7 release pet package. Compiled on Puppy 412.
Full library, headers, mans, etc. Suitable for developers.
Rgds
.-.
Recently, I was finally able to play with Dosbox 0.73 and Dosemu 1.4.0. After tinkering with them for a bit, I made these pet packages in the hope that they'll be useful to someone. Note: These are once in a blue moon effort and probably will not be maintained.
Dosbox was a straight forward setup and easy to use. It comes with built-in dos shell and all I have to do is to mount the appropriate folder as drive C and the way I go ...
Dosemu needs some tinkering to get it to work right on puppy. Initially I had segfaults and bus errors with dosemu. It seemed hopeless but I needed those direct hardware access. After a bit of tinkering, I realized that it just needed some basic memory handling stuffs to be properly setup and walla, no more segfaults, no more bus errors.
Dosemu requires hands on DOS folder population. The easiest would be to create ~/.dosemu/drives/drive_c folder and copy the necessary DOS files into it. The xdosemu loader script have been adjusted to handle shm checking.
DosBox basic comparison specs
---------------------------------
1. runs on any CPU. Defaults as x86 cpu emulation (with DIT only on x86 cpu)
2. emulates 286/386
3. No direct hardware access
4. SDL library is compulsory
5. built-in DOS shell
6. S3 Trio64 emulation (text -> VESA 2.0)
7. SB16/GUS/WSS/Speaker emulation
8. mount folder or disk image
9. One single binary for all
10. actively maintained
Dosemu basic comparison specs
---------------------------------
1. runs on x86 CPU only. Defaults as JIT (with optional vm86/full cpu emulation)
2. emulates 8086/286/386/486/586
3. allows direct hardware access (user configured)
4. Xlib/SDL/slang are optional
5. requires external DOS shell
6. Trident8900C emulation (text -> VESA 2.0)
7. SB16 emulation only
8. boot to a populated folder, disk image or direct disk access
9. Modular binary package, least dependency.
10. maintainance seems dormant
Which one to use ?
-----------------------
For most DOS stuffs, Dosbox is recommended. If you just want to run a DOS based apps, it's highly likely dosbox will fit the bill. The single binary comes with everything ready to run. Of course, the SDL library IS the minimum pre-requisite. For network support, SDL_net linked binary is also available.
Dosemu is recommended if you need specific customized setup (for example) :
1. Direct parallel access to an eprom programmer.
2. Boot specific DOS versions (MS-DOS 5.0-7.1, DR-DOS, FDOS, etc).
3. Mounting and booting a drive/partition directly.
4. Pentium level optimization.
5. TUN/TAP vnet capability.
(Note: actual setup is beyond the scope of this thread. Further info can be found in the README)
Execution speed is subjective to actual hardware in use. Both dosbox and dosemu have their own quirks. Some apps works better on dosbox and vice-versa. Some h/w dependent apps may work better in dosemu. However, I noticed peaked cpu usage when running apps in dosbox in several cases. Dosemu seems to be able to release cpu time and thus lower cpu usage in several cases. YMMV ...
PET binary packages :
--------------------------
(Note: Full source code is available upstream. No source modifications made.)
DOSBox 0.73 standard (745KB)
[download]
Description: Dosbox 0.73 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
Requires SDL-1.2.13 library minimum.
DOSBox 0.73 network support (765KB)
[download]
Description: Dosbox 0.73 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
Requires SDL-1.2.13 and SDL_net 1.2.7 library.
DOSEmu 1.4.0 basic (1.06MB)
[download]
Description: DOSEmu 1.4.0 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
SDL-1.2.13 library optional. FreeDOS tarball not included.
Requires manual boot folder/image preparation.
SDL-1.2.13 library (2MB)
[download]
Description: SDL 1.2.13 release pet package. Compiled on Puppy 412.
Full library, headers, docs, mans, etc. Suitable for developers.
SDL_net-1.2.7 library (37KB)
[download]
Description: SDL_net 1.2.7 release pet package. Compiled on Puppy 412.
Full library, headers, mans, etc. Suitable for developers.
Rgds
.-.