Added EMABLE_KEYBOARD_LOGGING to the XT keyboards.
This commit is contained in:
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user