From 93a8754bfe3bf2396db553842285643d63aaa5bf Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 17 Jul 2016 11:44:23 -0700 Subject: [PATCH] MicroVAX I, MicroVAX II, VAX: Improve debug output for QVSS keyboard activities (LK) --- VAX/vax_lk.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/VAX/vax_lk.c b/VAX/vax_lk.c index 3f4d9eb5..5757f80d 100644 --- a/VAX/vax_lk.c +++ b/VAX/vax_lk.c @@ -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;