X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=converter%2Fpc98_usb%2Fmatrix.c;h=b44d3ef55cd6271d7aab2dcd95a2a232be35a417;hb=1575db9166a21591bed95d4653db4d5d45e534be;hp=54bb30414d7b458859ecf21f7d137386f0c2815a;hpb=9977fd514076651400b088268c1c0b57e6b00772;p=max%2Ftmk_keyboard.git diff --git a/converter/pc98_usb/matrix.c b/converter/pc98_usb/matrix.c index 54bb3041..b44d3ef5 100644 --- a/converter/pc98_usb/matrix.c +++ b/converter/pc98_usb/matrix.c @@ -68,26 +68,36 @@ static int16_t pc98_wait_response(void) static void pc98_inhibit_repeat(void) { uint16_t code; - - // clear recv buffer - while (serial_recv()) ; RETRY: - _delay_ms(100); pc98_send(0x9C); code = pc98_wait_response(); - if (code != -1) xprintf("PC98: send 9C: %02X\n", code); - if (code != 0xFA) goto RETRY; + if (code != -1) dprintf("send 9C: %02X\n", code); + if (code != 0xFA) return; - _delay_ms(100); pc98_send(0x70); code = pc98_wait_response(); - if (code != -1) xprintf("PC98: send 70: %02X\n", code); + if (code != -1) dprintf("send 70: %02X\n", code); + if (code != 0xFA) goto RETRY; +} + +static uint8_t pc98_led = 0; +static void pc98_led_set(void) +{ + uint16_t code; +RETRY: + pc98_send(0x9D); + code = pc98_wait_response(); + if (code != -1) dprintf("send 9D: %02X\n", code); + if (code != 0xFA) return; + + pc98_send(pc98_led); + code = pc98_wait_response(); + if (code != -1) dprintf("send %02X: %02X\n", pc98_led, code); if (code != 0xFA) goto RETRY; } void matrix_init(void) { - debug_keyboard = true; PC98_RST_DDR |= (1< 13us + PC98_RST_PORT |= (1<