Bom, não sei se isto aqui vem a ajudar o pessoal a me dar mais dicas
mas...
Rodei o DOSEMU com os seguintes parâmetros:
dosemu -O -D +9s 2> dosemu-erro.log
Ou seja... pra ele fazer um debug e me dar as mensagens referentes á
'serial'.
Abaixo colo o que pintou pra mim:
=================
SER: directory /var/lock namestub LCK.. binary No
SER: /dev/ttyS0 port 0 int 4
SERIAL $Header: /cvsroot/dosemu/dosemu/src/base/serial/ser_init.c,v 1.1.2.5
2004/02/10 00:36:26 bartoldeman Exp $
SER: Running serial_init, 1 serial ports
SER0: enabling interrupt 12
SER0: COM1, intlevel=12, base=0x3f8, device=/dev/ttyS0
SER0: BIOS memory location 0x400 has value of 0x3f8
SER0: INT14 0x0: Initialize port 0, AL=0xa3
SER0: Running ser_open, fd=-1
SER0: Clear FIFO.
SER0: tmp=0 int_cond=0 int_req=0 int=0
SER0: do_ser_init: running ser_termios
SER0: LCR = 0x3, 8N1, bps = 2400, divisor 0x30 -> 0x30
SER0: Modem Status Change: MSR -> 0xb0
SER0: Func modstat_engine requesting MS_INTR
SER0: tmp=0 int_cond=8 int_req=0 int=8
SER0: Interrupt 12 (8) cannot be requested: enable=0 IER=0x0
SER0: Read LCR = 0x3
SER0: MCR = 0x3
SER0: MCR: DTR -> 1
SER0: MCR: RTS -> 2
SER0: LCR = 0x83, DLAB high.
SER0: Divisor LSB = 0x30
SER0: Divisor MSB = 0x0
SER0: LCR = 0x3, DLAB low.
SER0: LCR = 0x3, 8N1, bps = 2400, divisor 0x30 -> 0x30
SER0: Read LSR = 0x60
SER0: tmp=0 int_cond=0 int_req=0 int=0
SER0: Read MSR = 0xbb
SER0: INT14 0x0: Return with AL=0xbb AH=0x60
SER0: Read LSR = 0x60
SER0: tmp=0 int_cond=0 int_req=0 int=0
SER0: Read MSR = 0xb0
SER0: INT14 0x3: Port Status, AH=0x60 AL=0xb0
SER0: INT14 0x1: Write char 0x1b
SER0: Func transmit_engine requesting TX_INTR
SER0: tmp=0 int_cond=2 int_req=0 int=2
SER0: Interrupt 12 (2) cannot be requested: enable=0 IER=0x0
[ cortei pra nao ficar mais longo do que já estava, visto que muita coisa se
repete ]
SER0: Read MSR = 0xb0
SER0: Read LSR = 0x60
SER0: INT14 0x2: Read char timeout.
SER0: Read LSR = 0x60
SER0: INT14 0x2: Read char timeout.
SER0: Read LSR = 0x60
SER0: INT14 0x2: Read char timeout.
=====================
Bom, o que eu ACHO que poderia dar uma luz no que está acontecendo (me
corrijam se eu estiver errado) é o fato de que o dosemu está tentando acessar
a COM1 na interrupção 12 (irq 12 se nao estou errado). Bom... a IRQ 12 já
está sendo ocupada por outro dispositivo... e a COM1 deveria ser acessada na
IRQ 4.
As linhas abaixo do "corte" mostram o que acontece quando tento fazer a
impressora fiscal cuspir papel. Aqueles erros ali se repetem indefinidamente.
Alguém saberia dizer se minhas suspeitas estão corretas? E caso eu
esteja
certo... como eu faço pra que a COM1 seja acessada com a IRQ 4 ao invés da
IRQ 12?
Como já disse antes, tentei especificar isso no dosemu.conf, mas mesmo
assim
o problema se repete.
Obrigado pela atenção
Yucatan
P.S. - drkn prometo que a hora que eu resolver essa parada vai rolar um howto
daqueles, e quem sabe eu escrevo duas trilogias hehehe
--
(http://kenjiro.web.terra.com.br)
Linux Counter: #163748
==========================================
There is no Emotion, there is Peace
There is no Ignorance, there is Knowledge
There is no Passion, there is Serenity
There is no Death, there is the Force
--
GUS-BR - Grupo de Usuarios Slackware - BR
http://www.slackwarebrasil.org/
http://www.linuxmag.com.br/mailman/listinfo/slack-users