From 9b76127cdbb83a074f56f3b6ff1df4503fe72fa2 Mon Sep 17 00:00:00 2001 From: "K.Ohta" Date: Fri, 24 Apr 2015 07:55:15 +0900 Subject: [PATCH] [VM][FM77AV][WIP] Fixing real-time-key-scanning , WIP. --- source/src/vm/fm7/fm7_mainio.cpp | 6 +++--- source/src/vm/fm7/keyboard.cpp | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/source/src/vm/fm7/fm7_mainio.cpp b/source/src/vm/fm7/fm7_mainio.cpp index c0380b09e..5e8cb9f27 100644 --- a/source/src/vm/fm7/fm7_mainio.cpp +++ b/source/src/vm/fm7/fm7_mainio.cpp @@ -277,13 +277,13 @@ void FM7_MAINIO::set_irq_keyboard(bool flag) if(flag) { irqstat_reg0 &= 0xfe; irqstat_keyboard = true; - if(backup != irqstat_reg0) do_irq(); + // if(backup != irqstat_reg0) do_irq(); } else { irqstat_reg0 |= 0x01; irqstat_keyboard = false; - if(backup != irqstat_reg0) do_irq(); + // if(backup != irqstat_reg0) do_irq(); } - //do_irq(); + do_irq(); } diff --git a/source/src/vm/fm7/keyboard.cpp b/source/src/vm/fm7/keyboard.cpp index cc9c95997..e99ecfdd2 100644 --- a/source/src/vm/fm7/keyboard.cpp +++ b/source/src/vm/fm7/keyboard.cpp @@ -896,16 +896,16 @@ void KEYBOARD::key_up(uint32 vk) this->write_signals(&break_line, 0x00); } } - //if(key_pressed_flag[scancode] == false) return; + if(key_pressed_flag[scancode] == false) return; key_pressed_flag[scancode] = false; if(keymode == KEYMODE_SCAN) { // Notify even key-up, when using SCAN mode. - //printf("UP SCAN=%04x break=%d\n", scancode, stat_break); - //if(scancode != 0) { + //printf("UP SCAN=%04x break=%d\n", scancode, stat_break); + if(scancode != 0) { code_7 = scancode | 0x80; keycode_7 = code_7 | 0x8000; mainio->write_signal(FM7_MAINIO_KEYBOARDIRQ, keycode_7, 0x8000); display->write_signal(SIG_FM7_SUB_KEY_FIRQ, keycode_7, 0x8000); - //} + } } } @@ -936,7 +936,7 @@ void KEYBOARD::key_down_main(void) code_7 = scancode & 0x7f; } //printf("DOWN SCAN=%04x 7CODE=%03x break=%d\n", scancode, code_7, stat_break); - //if(key_pressed_flag[scancode] != false) return; + if(key_pressed_flag[scancode] != false) return; if(code_7 < 0x200) { keycode_7 = code_7 | 0x8000; //mainio->write_signal(FM7_MAINIO_PUSH_KEYBOARD, code_7, 0x1ff); -- 2.11.0