Damian Walker

Personal Web Pages

8088 DOS Emulation under Linux?

Sunday, 5th November 2017

This weekend, I wanted to test a program I'd compiled, to make sure it actually works on an 8086 machine. The documentation for the compiler I'm using doesn't make it clear whether the compiled 16-bit code needs a 286. This matters to me, as I want to use the compiler to write programs that will run on my Hewlett Packard 100LX.

I looked at three ways to emulate an 8088 on my Linux machine: Dosbox, PCem and PCE. After a weekend o frustration I came to the conclusion: don't bother. It would have been far easier to go through the process of copying the code to my HP and testing it there (awkward, as it doesn't have a direct link to my PC even through storage media).

Dosbox was the quickest option to eliminate. According to what I could see in the documentation and the configuration file, it simply doesn't have the option to emulate a specific CPU type. I can test for speed, by lowering cycles, which I certainly will want to do, but I can't confirm that my code doesn't need a 286 to run.

I looked at PCem, which claimed to to do the job on Linux. Much of my wasted weekend was spent getting the thing to compile. Once compiled, I quickly found that documentation was lacking. It wanted ROM files, but where was it looking for them? After searching on-line I found that although the emulator can run on Linux, it doesn't support it properly. So I went on to PCE.

PCE appears to have similar documentation and less on-line support than PCem. I had it installed already, and had actually tried it briefly before PCem, but I simply can't get a system to boot. The rest of my wasted weekend was spent trying out different boot image files and configurations to get PCE working, all to no avail. I get no error messages, no complaints about missing ROMs or disk images, but instead the system just freezes. For all I know, the program just doesn't work. Google searches reveal nothing relevant.

So I'm left with the task of copying a simple executable to my HP before going on with my project. As the HP doesn't share a storage medium with any of my PCs, and as I don't have a direct connection cable, that means copying files to my Psion 5mx as an intermediary, using that to put the files onto a CF, and hoping that the HP can read them.