Hello,
first of all, thank you for making DOSEMU. I've tried several emulators but none of them was able to maintain full functionality of my dos applications but this one is!
Everything works fine and I am really happy that I can use my old programs on Ubuntu.
On my old DOS-PC I had an adapter to add 4 more COM-Ports (then I had the onboard com1/2 and the external com5,6,7,8 - no com 3/4). The problem ist that the software I use tries to communicate to COM5 which should be COM4 or COM3 in DOSEMU.
--> Is there any possibility to rename COM4 in DOSEMU to COM5? Actually I only need 4 serial ports at maximum but I need to redirect the data to COM4.
The program uses the DOS-INT 14 call. "int86(0x14, ®s, ®s)"
I did this with the DOSBOX Emulator by overriding the port number at the other side of the bios call in source but I can't find a similiar passage in DOSEMU src.
Can you help me?
Thanks,
Hi Stas,
no problem. The 6d92d5be version works flawless as it did before, printing and controlling the machine is possible. On the other side the devel version doesn't. Printer recieves something but does not print.
I don't really know how to make this log but I assume I did by opening "dosemu -D9+s". After that here's what I did in the emu:
mode com1:96,n,8,1 //printer may need this setting)
copy eti_00.tst COM1 //send a printerfile to the printer @COM1
//Printer LED blinks but does not print
//Now I unplugged printer cable and plugged machine to COM1
cd pa
pa //start the programm
//Connection error, I close dosemu
Attached boot.log, hope that's right?
By the way, thanks for your fast answers. I really appreciate your help.
Last edit: Hans-Christian Koch 2013-11-12
OK, I see a lot of
SER0: ERROR: TX overrun
in the log, which is bad.
But I don't know why.
Are you using FreeDOS?
Please attach the log from 6d92d5be
so that I can see how it works better.
Okay, attached a boot.log of the older version. Did the exact same: mode, copy, cd pa, pa - works.
It seems it worked wrongly also in the
old version, but the overflow was not
enforced (because of the bug), and so it
worked "correctly".
I applied some fix to devel. I am not
sure it will help, but it should be a
spet forward. Please update with
git pull
and attach another log.
Okay, I updated it. Still the same error(s) and in addition to it DOSEMU says
"Error reading from device COM1: write fault"
when I'm trying to copy something to the printer but the printer LED still blinks.
Log attached.
That's fine: instead of many ignored
overruns, there is now only one, and
is properly reported.
Unfortunately, where does this overrun
come from, is a mystery. I suspect a
freedos bug here. Could you please try
ms-dos or pc-dos and see if the problem
is still there?
While ComOutStat is defined in serial.asm
of freedos, I don't see it is ever used in
chario.c with something like CharCmd(pdev, C_OSTAT).
Also, in serial.asm we can see a ComWr1
loop, which doesn't check the status as
well (but, according to a log, it doesn't
really loop much, cx==1).
So it seems freedos forgets to check for
the busy status before writing to the ser
port. It was probably tested with dosemu,
which never set an output status in the past,
but that was fixed.
Bart, could you confirm that the writing
routine never checks the status before
doing write? I am not a freedos user.
Hi Stas,
okay, can you provide me a link for a guide on installing ms dos?
You only need to copy io.sys/msdos.sys/command.com
into C: and dosemu will find them on next boot.