121,7 → 121,7 |
|
} |
|
void com_end(unsigned port) |
void com_close_irq(unsigned port) |
{ |
SYS_FLAGS f; |
|
130,19 → 130,19 |
com_write(port, IER, 0); |
com_read(port, LSR); |
com_read(port, IIR); |
com_close(port); |
|
handler_remove(com_irq[port]); |
|
kern_frestore(f); |
|
} |
|
void com_init(unsigned port, DWORD speed, BYTE parity, BYTE len, BYTE stop) |
void com_init_irq(unsigned port) |
{ |
SYS_FLAGS f; |
|
f = kern_fsave(); |
|
com_open(port, speed, parity, len, stop); |
SCom_Error = 0; |
handler_set(com_irq[port], com_irq_sel, NIL, TRUE); |
com_irq_disable(port, ALL_IRQ); /* Disable interrupts */ |
186,6 → 186,12 |
|
} |
|
__inline__ void com_irq_send(unsigned port, BYTE len, BYTE *m) { |
|
com_send_msg(port, len, m); |
|
} |
|
void THRE_handler (unsigned port) /* Transmit Data Register Ready for next byte */ |
{ |
if (SCom_TX_data.ptr < SCom_TX_data.len) |