diff options
Diffstat (limited to 'src/gb.c')
| -rw-r--r-- | src/gb.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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 } |
