aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/slavio_serial.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/slavio_serial.c b/hw/slavio_serial.c
index 36dbdcf..86e661c 100644
--- a/hw/slavio_serial.c
+++ b/hw/slavio_serial.c
@@ -427,17 +427,17 @@ static void slavio_serial_mem_writeb(void *opaque, target_phys_addr_t addr, uint
break;
case 1:
SER_DPRINTF("Write channel %c, ch %d\n", CHN_C(s), val);
+ s->tx = val;
if (s->wregs[5] & 8) { // tx enabled
- s->tx = val;
if (s->chr)
qemu_chr_write(s->chr, &s->tx, 1);
else if (s->type == kbd) {
handle_kbd_command(s, val);
}
- s->rregs[0] |= 4; // Tx buffer empty
- s->rregs[1] |= 1; // All sent
- set_txint(s);
}
+ s->rregs[0] |= 4; // Tx buffer empty
+ s->rregs[1] |= 1; // All sent
+ set_txint(s);
break;
default:
break;