Running freedos under DOSEMU in Linux. Linux has full internet access. I want to run DOS BBS, Doors, and terminal dial-up programs under DOSEMU. Dosbox already does something like this. Dosbox gives us a "virtual modem" and BBS, Doors, and terminal dial-up programs see a modem and can "dial" IP addresses. if you are not familiar with this feature, give it a try!
The problem with DOSBOX is that it loads the mounted disks into memory and does not write back to it until it is shut down. This creates several issues where multi node BBS, Doors,es are concerned. For starters, share.exe won't work and so, if two nodes are accessing the drive at the same time, data will get corrupted. If you run only a single node BBS and power goes off, all your data is lost. if you are running Telix or Telemate and you download a QWK packet or a file, it doesn't get saved to the hard drive. The creator of DOSBOX states that because he made this to only play DOS games and nothing else, he is not going to start changing it to be safe to run other applications. caching the drive makes sense when playing a single player DOS game, but not when running a multi node BBS or, God forbid, a multi-user legacy database system.
What we need in DOSEMU is the ability to have a "virtual modem" that lets BBS, Doors, and terminal dial-up software see a modem and then dial out and receive calls in using IP addresses. I am reading the documentation for the DOSEMU.conf Serial Port settings. It says:
"virtual" keyword may be used to redirect the COM port to the terminal. A wrong but quick way for the sysop to play his BBS door games locally.
This is not what we need. We need to be able to have BBS, Doors, and terminal dial-up programs use the virtual comports to send and receive modem data while the virtual modem does its magic and sends and receives that data over TCP. DOSBOX can do it, DOSEMU should too.
Usually modemu is used for this:
https://archive.debian.net/ru/source/etch/modemu
But it seems modemu have been dropped from
all distros, so it may make sense to import it to our
source tree, and either convert to a library, or run
via pipes.
This is likely something the users should do themselves:
the task is not difficult, and you already have the test-case.
Besides, you should use dosemu2.
dosemu1 project is out of support.