Might this be one place where FPGA emulation would make sense?
Turns out they already have ASICs for this
https://en.wikipedia.org/wiki/List_of_x86_manufacturers#x86-processors_for_embedded_designs_onlyand also an FPGA implementation called ao486
Update:
I tried the patches, they didn’t work. Also tried “slowdown”, a DOS program that slows down the system artificially. Also didn’t work.
Then I tried DosBox. Turns out it has a boot command, so I can literally install and boot PC-DOS from it. Here’s how I did it:
Create a blank image file or download one. Mount it to letter C using the imgmount command.
Now, you have to install PC-DOS from five floppies. The trick is as follows,
Copy disk 1 and name it something like diskX.img
Mount diskX.img to letter A using imgmount.
On the DosBox prompt, type
boot -l A. This will boot the first floppy.
Begin the install.
When the install asks for disk 2, you will copy disk2 to diskX. What I did is that I opened the Windows command prompt and did
copy disk2.img diskX.img. Then you return to DosBox and tell the installer you inserted disk 2. (I’m amazed this works...)
Repeat until disk 5.
The installer will then shut down DosBox.
Start DosBox again.
Mount drive letter C again.
Boot from drive C by typing
boot -l CYou should now be in PC-DOS.
To install any software, it’s more or less similar:
Mount the installer to letter A.
Start the installer
Don’t boot into PC-DOS, just run the installer directly from the DosBox prompt. Remember you can do the copying trick to swap disks.
In my case, the installer assumed it should install into drive C, so I had no issues. DosBox is in drive Z, maybe some installers will install into there. In that case, I don’t know what you should do. When I tried to load A: from the PC-DOS file manager it gave me some errors (I also can’t format disks, it might have to do with the emulation). I didn’t try loading from the shell directly.
When the install is done, you can boot from letter C.
I now have the software running. No errors. It even emulates the PC speaker. I haven’t tested the serial port yet but I’m hopeful.
Last hint, the config file for DosBox has an auto exec section where you can add all your mount commands. I mount drive C and drive A automatically and also i boot from C. This is very neat. The program I’m running has a backup functionality that copies all profiles into a floppy. I could have a script on Windows that backs up drive A every time the file changes, and gives it a date and time.
Next steps: back up the current profiles from the physical machine into a floppy and make an image of that floppy.
Let’s hope the serial port works and the delays are accurate