diff options
Diffstat (limited to 'converter/x68k_usb/led.c')
-rw-r--r-- | converter/x68k_usb/led.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/converter/x68k_usb/led.c b/converter/x68k_usb/led.c index 40156cf4ac..a1c1d546ec 100644 --- a/converter/x68k_usb/led.c +++ b/converter/x68k_usb/led.c @@ -16,11 +16,31 @@ 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" +#include "x68k.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; + xprintf("usb_led: %02X\n", usb_led); + 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); + xprintf("led: %02X\n", led); + x68k_send(led); } |