Context
I have been tasked with getting a DOS program to run on more modern hardware. This program uses a serial COM port to communicate with a target device at a relatively low BAUD rate (4800 is typical).
So far I have used VirtualBox on a Windows machine to create a FreeDOS VM and have acquired a FTDI TTL-232R cable and a virtual COM port driver for that cable.
Problem
This setup kind of works actually. The software is able to communicate with the target device, but an oscilloscope shows that two or three bytes will be sent, and then up to ten milliseconds will elapse before another cluster of bytes are sent. This causes the target device to time out before it has received the full message.
Troubleshooting
The Windows computer I'm using actually still has a DB9 port. If I use that instead of the FTDI cable, the software works smoothly. This leads me to believe that the problem is not being caused by FreeDOS.
To test the FTDI cable, I wrote a short Python script on the Windows machine (using pyserial) to communicate with the target device using the virtual COM port. This also worked smoothly.
I've also read through The relevant documentation. I've tried adjusting driver settings with no affect. It also seems unlikely that the driver is the source of the problem given that the python script works fine.
Help!
If anyone has ideas on how to troubleshoot this further or recognizes the problem at hand, some advice would be greatly appreciated!