From caa49053f601df1dbb62194d62f69b533e003608 Mon Sep 17 00:00:00 2001 From: Daniel Serpell Date: Mon, 11 May 2020 20:55:01 -0400 Subject: Suspend raw keyboard handling before READ from CON. --- src/dos.c | 1 + src/keyb.c | 8 +++++++- src/keyb.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dos.c b/src/dos.c index 203eff0..eb55f87 100644 --- a/src/dos.c +++ b/src/dos.c @@ -1320,6 +1320,7 @@ void int21() if(devinfo[cpuGetBX()] == 0x80D3) { int i, max = cpuGetCX(), cr = 0; + suspend_keyboard(); for(i = 0; i < max; i++) { int c = fgetc(f); diff --git a/src/keyb.c b/src/keyb.c index 0b4d0f5..f0e06c6 100644 --- a/src/keyb.c +++ b/src/keyb.c @@ -392,8 +392,14 @@ static void init_keyboard(void) exit(1); } atexit(exit_keyboard); - set_raw_term(1); } + set_raw_term(1); +} + +// Disables keyboard support - will be enabled again if needed +void suspend_keyboard(void) +{ + set_raw_term(0); } int kbhit(void) diff --git a/src/keyb.h b/src/keyb.h index 3de5a21..2517ec6 100644 --- a/src/keyb.h +++ b/src/keyb.h @@ -6,3 +6,4 @@ int getch(int detect_brk); int kbhit(void); void int16(void); uint8_t keyb_read_port(unsigned port); +void suspend_keyboard(void); -- cgit v1.2.3