From f446c8507609754f0ab8da9008164cecc97ba43c Mon Sep 17 00:00:00 2001 From: waltje Date: Thu, 28 Sep 2017 20:10:15 -0400 Subject: [PATCH] Added EMABLE_KEYBOARD_LOGGING to the XT keyboards. --- src/Makefile.mingw | 3 ++- src/keyboard_amstrad.c | 14 ++++++++++++++ src/keyboard_olim24.c | 8 ++++++++ src/keyboard_xt.c | 6 ++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Makefile.mingw b/src/Makefile.mingw index e69d70202..7e009df13 100644 --- a/src/Makefile.mingw +++ b/src/Makefile.mingw @@ -8,7 +8,7 @@ # # Modified Makefile for Win32 (MinGW32) environment. # -# Version: @(#)Makefile.mingw 1.0.48 2017/09/25 +# Version: @(#)Makefile.mingw 1.0.49 2017/09/28 # # Authors: Miran Grca, # Fred N. van Kempen, @@ -38,6 +38,7 @@ STUFF := # -DENABLE_IDE_LOG enables extra logging. # -DENABLE_SERIAL_LOG enables extra logging. # -DENABLE_NIC_LOG enables extra logging. +# -DENABLE_KEYBOARD_LOG enables extra logging. ifndef EXTRAS EXTRAS := endif diff --git a/src/keyboard_amstrad.c b/src/keyboard_amstrad.c index 14743091d..6ebbaa0f3 100644 --- a/src/keyboard_amstrad.c +++ b/src/keyboard_amstrad.c @@ -48,12 +48,16 @@ void keyboard_amstrad_poll(void) keyboard_amstrad.wantirq = 0; keyboard_amstrad.pa = keyboard_amstrad.key_waiting; picint(2); +#if ENABLE_KEYBOARD_LOG pclog("keyboard_amstrad : take IRQ\n"); +#endif } if (key_queue_start != key_queue_end && !keyboard_amstrad.pa) { keyboard_amstrad.key_waiting = key_queue[key_queue_start]; +#if ENABLE_KEYBOARD_LOG pclog("Reading %02X from the key queue at %i\n", keyboard_amstrad.key_waiting, key_queue_start); +#endif key_queue_start = (key_queue_start + 1) & 0xf; keyboard_amstrad.wantirq = 1; } @@ -62,22 +66,30 @@ void keyboard_amstrad_poll(void) void keyboard_amstrad_adddata(uint8_t val) { key_queue[key_queue_end] = val; +#if ENABLE_KEYBOARD_LOG pclog("keyboard_amstrad : %02X added to key queue at %i\n", val, key_queue_end); +#endif key_queue_end = (key_queue_end + 1) & 0xf; return; } void keyboard_amstrad_write(uint16_t port, uint8_t val, void *priv) { +#if ENABLE_KEYBOARD_LOG pclog("keyboard_amstrad : write %04X %02X %02X\n", port, val, keyboard_amstrad.pb); +#endif switch (port) { case 0x61: +#if ENABLE_KEYBOARD_LOG pclog("keyboard_amstrad : pb write %02X %02X %i %02X %i\n", val, keyboard_amstrad.pb, !(keyboard_amstrad.pb & 0x40), keyboard_amstrad.pb & 0x40, (val & 0x40)); +#endif if (!(keyboard_amstrad.pb & 0x40) && (val & 0x40)) /*Reset keyboard*/ { +#if ENABLE_KEYBOARD_LOG pclog("keyboard_amstrad : reset keyboard\n"); +#endif keyboard_amstrad_adddata(0xaa); } keyboard_amstrad.pb = val; @@ -168,7 +180,9 @@ void keyboard_amstrad_reset(void) void keyboard_amstrad_init(void) { +#if ENABLE_KEYBOARD_LOG pclog("keyboard_amstrad_init\n"); +#endif io_sethandler(0x0060, 0x0006, keyboard_amstrad_read, NULL, NULL, keyboard_amstrad_write, NULL, NULL, NULL); keyboard_amstrad_reset(); keyboard_send = keyboard_amstrad_adddata; diff --git a/src/keyboard_olim24.c b/src/keyboard_olim24.c index c0b9506cb..2425c1ff9 100644 --- a/src/keyboard_olim24.c +++ b/src/keyboard_olim24.c @@ -54,11 +54,15 @@ static void keyboard_olim24_poll(void) { keyboard_olim24.wantirq = 0; picint(2); +#if ENABLE_KEYBOARD_LOG pclog("keyboard_olim24 : take IRQ\n"); +#endif } if (!(keyboard_olim24.status & STAT_OFULL) && key_queue_start != key_queue_end) { +#if ENABLE_KEYBOARD_LOG pclog("Reading %02X from the key queue at %i\n", keyboard_olim24.out, key_queue_start); +#endif keyboard_olim24.out = key_queue[key_queue_start]; key_queue_start = (key_queue_start + 1) & 0xf; keyboard_olim24.status |= STAT_OFULL; @@ -72,14 +76,18 @@ void keyboard_olim24_adddata(uint8_t val) { key_queue[key_queue_end] = val; key_queue_end = (key_queue_end + 1) & 0xf; +#if ENABLE_KEYBOARD_LOG pclog("keyboard_olim24 : %02X added to key queue %02X\n", val, keyboard_olim24.status); +#endif return; } static void keyboard_olim24_write(uint16_t port, uint8_t val, void *priv) { +#if ENABLE_KEYBOARD_LOG pclog("keyboard_olim24 : write %04X %02X\n", port, val); +#endif /* if (ram[8] == 0xc3) { output = 3; diff --git a/src/keyboard_xt.c b/src/keyboard_xt.c index 14d773ed2..86e7f0a8e 100644 --- a/src/keyboard_xt.c +++ b/src/keyboard_xt.c @@ -51,7 +51,9 @@ static void keyboard_xt_poll(void) { keyboard_xt.pa = key_queue[key_queue_start]; picint(2); +#if ENABLE_KEYBOARD_LOG pclog("Reading %02X from the key queue at %i\n", keyboard_xt.pa, key_queue_start); +#endif key_queue_start = (key_queue_start + 1) & 0xf; keyboard_xt.blocked = 1; } @@ -60,7 +62,9 @@ static void keyboard_xt_poll(void) void keyboard_xt_adddata(uint8_t val) { key_queue[key_queue_end] = val; +#if ENABLE_KEYBOARD_LOG pclog("keyboard_xt : %02X added to key queue at %i\n", val, key_queue_end); +#endif key_queue_end = (key_queue_end + 1) & 0xf; return; } @@ -72,7 +76,9 @@ static void keyboard_xt_write(uint16_t port, uint8_t val, void *priv) case 0x61: if (!(keyboard_xt.pb & 0x40) && (val & 0x40)) /*Reset keyboard*/ { +#if ENABLE_KEYBOARD_LOG pclog("keyboard_xt : reset keyboard\n"); +#endif key_queue_end = key_queue_start; keyboard_xt_adddata(0xaa); }