]> git.donarmstrong.com Git - tmk_firmware.git/blobdiff - converter/x68k_usb/led.c
Initial version of Ergodox-FAQ.md
[tmk_firmware.git] / converter / x68k_usb / led.c
index 40156cf4accf1f604628652dbb22a0561f48c0bd..ccc38699c76bcffdfe31c42cc31c981a679aefc2 100644 (file)
@@ -16,11 +16,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "stdint.h"
-#include "x68k.h"
+#include "serial.h"
 #include "led.h"
+#include "debug.h"
 
 
 void led_set(uint8_t usb_led)
 {
-    // not supported now
+    /* X68000 LED bits 0: on, 1: off
+     * bit 7   1(fixed)
+     * bit 6   全角
+     * bit 5   ひらがな
+     * bit 4   INS
+     * bit 3   CAPS
+     * bit 2   コード入力
+     * bit 1   ローマ字
+     * bit 0   かな
+     */
+    uint8_t led = 0xFF;
+    if (usb_led&(1<<USB_LED_NUM_LOCK))      led &= ~(1<<2);
+    if (usb_led&(1<<USB_LED_CAPS_LOCK))     led &= ~(1<<3);
+    if (usb_led&(1<<USB_LED_SCROLL_LOCK))   led &= ~(1<<1);
+    if (usb_led&(1<<USB_LED_COMPOSE))       led &= ~(1<<4);
+    if (usb_led&(1<<USB_LED_KANA))          led &= ~(1<<0);
+    serial_send(led);
 }