Added EMABLE_KEYBOARD_LOGGING to the XT keyboards.

This commit is contained in:
waltje
2017-09-28 20:10:15 -04:00
parent f58afc4801
commit f446c85076
4 changed files with 30 additions and 1 deletions

View File

@@ -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, <mgrca8@gmail.com>
# Fred N. van Kempen, <decwiz@yahoo.com>
@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);
}