From: Toni Wilen Date: Sun, 4 Dec 2016 11:48:22 +0000 (+0200) Subject: Keyboard connected/disconnected update. X-Git-Tag: 3400~14 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=ae3de27ebbfd90e5f394e35fe2f7b94c8546eaa0;p=francis%2Fwinuae.git Keyboard connected/disconnected update. --- diff --git a/cia.cpp b/cia.cpp index 28800054..fbc29e37 100644 --- a/cia.cpp +++ b/cia.cpp @@ -670,6 +670,8 @@ static void sendrw (void) int resetwarning_do (int canreset) { + if (!currprefs.keyboard_connected) + return 0; if (resetwarning_phase || regs.halted > 0) { /* just force reset if second reset happens during resetwarning */ if (canreset) { @@ -795,8 +797,13 @@ void CIAB_tod_handler (int hoffset) } } -void keyboard_connected(void) +void keyboard_connected(bool connect) { + if (connect) { + write_log(_T("Keyboard connected\n")); + } else { + write_log(_T("Keyboard disconnected\n")); + } kbstate = 0; kblostsynccnt = 0; resetwarning_phase = 0; @@ -855,6 +862,10 @@ void CIA_hsync_posthandler (bool ciahsync, bool dotod) if ((hsync_counter & 15) == 0) check_keyboard(); } + } else { + while (keys_available()) { + get_next_key(); + } } } diff --git a/custom.cpp b/custom.cpp index 75394e15..f945ec6f 100644 --- a/custom.cpp +++ b/custom.cpp @@ -9946,7 +9946,9 @@ void check_prefs_changed_custom (void) currprefs.collision_level = changed_prefs.collision_level; if (!currprefs.keyboard_connected && changed_prefs.keyboard_connected) { // send powerup sync - keyboard_connected(); + keyboard_connected(true); + } else if (currprefs.keyboard_connected && !changed_prefs.keyboard_connected) { + keyboard_connected(false); } currprefs.keyboard_connected = changed_prefs.keyboard_connected; diff --git a/include/cia.h b/include/cia.h index dc29ac9d..46892d9d 100644 --- a/include/cia.h +++ b/include/cia.h @@ -36,6 +36,6 @@ extern int parallel_direct_read_status (uae_u8*); extern void rtc_hardreset (void); -extern void keyboard_connected(void); +extern void keyboard_connected(bool); #endif /* UAE_CIA_H */