aboutsummaryrefslogtreecommitdiffstats
path: root/src/gb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gb.c')
-rw-r--r--src/gb.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gb.c b/src/gb.c
index 3caa986..fc19e25 100644
--- a/src/gb.c
+++ b/src/gb.c
@@ -140,9 +140,11 @@ void gb_write(GB *gb, u16 addr, u8 val) {
gb->sc &= ~0x80;
gb_request_interrupt(gb, INT_SERIAL);
} else if (n == 0) {
- gb->sb = 0x04; // EOF -> EOT (Ctrl-D)
- gb->sc &= ~0x80;
- gb_request_interrupt(gb, INT_SERIAL);
+ if (!gb->serial_no_eof) {
+ gb->sb = 0x04; // EOF -> EOT (Ctrl-D)
+ gb->sc &= ~0x80;
+ gb_request_interrupt(gb, INT_SERIAL);
+ } // else: stay pending (OSK provides input)
}
// n < 0 (EAGAIN on a live tty): stay pending, poll again
}