]> git.donarmstrong.com Git - tmk_firmware.git/blob - converter/x68k_usb/led.c
a1c1d546ece44048d700ac124ce593a0e05d3c8c
[tmk_firmware.git] / converter / x68k_usb / led.c
1 /*
2 Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #include "stdint.h"
19 #include "serial.h"
20 #include "led.h"
21 #include "debug.h"
22 #include "x68k.h"
23
24
25 void led_set(uint8_t usb_led)
26 {
27     /* X68000 LED bits 0: on, 1: off
28      * bit 7   1(fixed)
29      * bit 6   全角
30      * bit 5   ひらがな
31      * bit 4   INS
32      * bit 3   CAPS
33      * bit 2   コード入力
34      * bit 1   ローマ字
35      * bit 0   かな
36      */
37     uint8_t led = 0xFF;
38     xprintf("usb_led: %02X\n", usb_led);
39     if (usb_led&(1<<USB_LED_NUM_LOCK))      led &= ~(1<<2);
40     if (usb_led&(1<<USB_LED_CAPS_LOCK))     led &= ~(1<<3);
41     if (usb_led&(1<<USB_LED_SCROLL_LOCK))   led &= ~(1<<1);
42     if (usb_led&(1<<USB_LED_COMPOSE))       led &= ~(1<<4);
43     if (usb_led&(1<<USB_LED_KANA))          led &= ~(1<<0);
44     xprintf("led: %02X\n", led);
45     x68k_send(led);
46 }