Hy!
I try to use a proprietary program to transfer data over a modem line
between two computers (no way using a different program). On a DOS/Win9x
computer it's running perfectly well. But trying to use it on linux
(kernel 2.0.36 p-133/64MB and PII-350/128MB) (dosemu 0.98.6 / 0.99.x)
fails. After turning on the debug flags I get the error (warning?)
"cancelled serial interrupt".

Does that mean IIR is cleared before it can be processed by
pic_serial_run? If so is there a way to lock the reading of IIR when
do_irq hasn't finished?

Enabling the $_ports-range and $_irqpassing brings dosemu to a
standstill. Disabling $_com2 prevents the program from recognizing the
port.

Have I missed something?
Anybody seen this before? 
Any help very much appreciated.
uwe


Part of output showing 'cancelled serial interrupt!':
SER1: Transmit 0x26
SER1: Read IIR = 0x1
SER1: Func transmit_engine requesting TX_INTR (non fifo-mode)
SER1: Func pic_request intlevel=11, int_requested=2
SER1: ---BEGIN INTERRUPT--- int_condition = 02
SER1: Read IIR = 0x2 (THRI now cleared)
SER1: ---END INTERRUPT---
SER1: Read MSR = 0x10
SER1: Transmit 0x46
SER1: Read IIR = 0x1
SER1: Func transmit_engine requesting TX_INTR (non fifo-mode)
SER1: Func pic_request intlevel=11, int_requested=2
SER1: ---BEGIN INTERRUPT--- int_condition = 02
SER1: Read IIR = 0x2 (THRI now cleared)
SER1: ---END INTERRUPT---
SER1: Read MSR = 0x10
SER1: Transmit 0xd
SER1: Func transmit_engine requesting TX_INTR (non fifo-mode)
SER1: Func pic_request intlevel=11, int_requested=2
SER1: Read IIR = 0x2 (THRI now cleared)
SER1: Read IIR = 0x1
SER1: ---BEGIN INTERRUPT--- int_condition = 00
SER1: Interrupt Error: cancelled serial interrupt!
SER1: ---END INTERRUPT---
SER1: Read MSR = 0x10
... (about 7000 times repeated)
SER1: Read MSR = 0x10
SER1: Func uart_fill requesting RX_INTR (non fifo-mode)

Reply via email to