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

Responder a