MicroVAX I, MicroVAX II, VAX: Improve debug output for QVSS keyboard activities (LK)

This commit is contained in:
Mark Pizzolato 2016-07-17 11:44:23 -07:00
parent b8b95c7b20
commit 93a8754bfe

View file

@ -46,6 +46,10 @@
#define LK_MODE_NONE 2
#define LK_MODE_DOWNUP 3
static const char *lk_modes[] = {"DOWN", "AUTODOWN", "NONE", "DOWNUP"};
static const char *lk_states[] = {"DOWN", "UP", "REPEAT"};
/* Scan codes */
typedef struct {
@ -221,7 +225,7 @@ sim_debug (DBG_SERIAL, &lk_dev, "vax -> lk: %02X\n", c);
if (c == 0)
return SCPE_OK;
lk_rbuf[lk_rbuf_p++] = c;
if (lk_rbuf_p == 10) { /* too long? */
if (lk_rbuf_p == sizeof(lk_rbuf)) { /* too long? */
lk_rbuf_p = 0;
LK_SEND_CHAR(0xB6); /* input error */
return SCPE_OK;
@ -243,10 +247,10 @@ if (lk_shptr == lk_stptr) {
}
else {
*c = lk_sbuf[lk_shptr++];
sim_debug (DBG_SERIAL, &lk_dev, "lk -> vax: %02X (%s)\n", *c,
(lk_shptr != lk_stptr) ? "more" : "end");
if (lk_shptr == LK_BUF_LEN)
lk_shptr = 0; /* ring buffer wrap */
sim_debug (DBG_SERIAL, &lk_dev, "lk -> vax: %02X (%s)\n", *c,
(lk_shptr != lk_stptr) ? "more" : "end");
return SCPE_OK;
}
}
@ -365,22 +369,9 @@ if (lk_rbuf[0] & 1) { /* peripheral command */
else {
group = (lk_rbuf[0] >> 3) & 0xF;
if (group < 15) {
sim_debug (DBG_CMD, &lk_dev, "set group %d, ", group);
mode = (lk_rbuf[0] >> 1) & 0x3;
sim_debug (DBG_CMD, &lk_dev, "set group %d, mode = %s\n", group, lk_modes[mode]);
lk_mode[group] = mode;
switch (mode) {
case LK_MODE_DOWN:
sim_debug (DBG_CMD, &lk_dev, "mode = DOWN\n");
break;
case LK_MODE_AUTODOWN:
sim_debug (DBG_CMD, &lk_dev, "mode = AUTODOWN\n");
break;
case LK_MODE_DOWNUP:
sim_debug (DBG_CMD, &lk_dev, "mode = DOWNUP\n");
break;
}
LK_SEND_CHAR (0xBA); /* Mode change ACK */
}
else
@ -793,6 +784,8 @@ if (vid_poll_kb (&ev) != SCPE_OK)
lk_key = lk_map_key (ev.key);
mode = lk_mode[lk_key.group];
sim_debug (DBG_SERIAL, &lk_dev, "lk_poll() Event - Key: (group=%d, code=%02X), Mode: %s - auto-repeat inhibit: %s - state: %s\n", lk_key.group, lk_key.code, lk_modes[mode], lk_trpti ? "TRUE" : "FALSE", lk_states[ev.state]);
if (lk_trpti && (ev.state != SIM_KEYPRESS_REPEAT))
lk_trpti = FALSE;