From 326cfc57bd9f8a46a51db89f26f5ff87b04f4b0f Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 17 Oct 2023 15:36:09 +0900 Subject: [PATCH] archimedes: scan logic --- converter/archimedes_usb/archimedes_usb.c | 136 +++++++++++++++++++--- converter/archimedes_usb/config.h | 17 ++- 2 files changed, 131 insertions(+), 22 deletions(-) diff --git a/converter/archimedes_usb/archimedes_usb.c b/converter/archimedes_usb/archimedes_usb.c index 3bb607d4..4a556bb6 100644 --- a/converter/archimedes_usb/archimedes_usb.c +++ b/converter/archimedes_usb/archimedes_usb.c @@ -42,6 +42,13 @@ SOFTWARE. #define SACK 0x31 #define MACK 0x32 #define SMAK 0x33 +#define KDDA 0xC0 +#define KUDA 0xD0 + +// Archimedes LED +#define ARC_LED_CAPS_LOCK 0 +#define ARC_LED_NUM_LOCK 1 +#define ARC_LED_SCROLL_LOCK 2 void matrix_init(void) @@ -53,32 +60,117 @@ void matrix_init(void) // wait for keyboard coming up // otherwise LED status update fails print("Archimedes starts.\n"); - print("Sending HRST(0xFF): "); + xprintf("EIMSK: %02X\n", EIMSK); + xprintf("EICRA: %02X\n", EICRA); return; } +static uint8_t arc_led = 1<