1
0
mirror of https://github.com/rcornwell/sims.git synced 2026-03-09 12:15:57 +00:00

KA10: Use vid_poll_kb instead of vid_display_kb_event_process for DKB.

This improves keyboard respose considerably.
This commit is contained in:
Lars Brinkhoff
2021-09-27 20:14:53 +02:00
parent 913aa2e3f1
commit c6ef47f3c3

View File

@@ -53,6 +53,7 @@
#define LINE u6
t_stat dkb_devio(uint32 dev, uint64 *data);
t_stat dkb_svc(UNIT *uptr);
int dkb_keyboard (SIM_KEY_EVENT *kev);
t_stat dkb_reset(DEVICE *dptr);
t_stat dkb_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr);
@@ -64,8 +65,7 @@ int dkb_kmod = 0;
DIB dkb_dib = { DKB_DEVNUM, 1, dkb_devio, NULL};
UNIT dkb_unit[] = {
{UDATA (NULL, UNIT_IDLE, 0) },
{ 0 }
{UDATA (&dkb_svc, UNIT_IDLE, 0) },
};
@@ -75,7 +75,7 @@ MTAB dkb_mod[] = {
DEVICE dkb_dev = {
"DKB", dkb_unit, NULL, dkb_mod,
2, 10, 31, 1, 8, 8,
1, 10, 31, 1, 8, 8,
NULL, NULL, dkb_reset,
NULL, NULL, NULL, &dkb_dib, DEV_DEBUG | DEV_DISABLE | DEV_DIS, 0, dev_debug,
NULL, NULL, &dkb_help, NULL, NULL, &dkb_description
@@ -429,11 +429,19 @@ int dkb_keyboard (SIM_KEY_EVENT *kev)
return 1;
}
t_stat dkb_svc(UNIT *uptr)
{
SIM_KEY_EVENT ev;
sim_activate_after (uptr, 10000);
if (vid_poll_kb (&ev) == SCPE_OK)
dkb_keyboard (&ev);
return SCPE_OK;
}
t_stat dkb_reset( DEVICE *dptr)
{
if ((dkb_dev.flags & DEV_DIS) == 0)
vid_display_kb_event_process = dkb_keyboard;
sim_activate_abs (dkb_unit, 0);
dkb_kmod = SHFT|TOP|META|CTRL;
return SCPE_OK;
}