From 94d9af013db2b9c065da0ba33f768075935e397f Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Sun, 21 Apr 2019 19:38:26 +0200 Subject: [PATCH] [C64] PgUp - TAP start/stop --- cores/c64/rtl/fpga64_keyboard_matrix_mark_mcdougall.vhd | 6 +++++- cores/c64/rtl/fpga64_sid_iec.vhd | 4 +++- cores/c64/rtl/mist/c64_mist.vhd | 6 ++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/cores/c64/rtl/fpga64_keyboard_matrix_mark_mcdougall.vhd b/cores/c64/rtl/fpga64_keyboard_matrix_mark_mcdougall.vhd index de08b5a..00ba0f1 100644 --- a/cores/c64/rtl/fpga64_keyboard_matrix_mark_mcdougall.vhd +++ b/cores/c64/rtl/fpga64_keyboard_matrix_mark_mcdougall.vhd @@ -55,6 +55,8 @@ entity fpga64_keyboard_matrix is disk_num : out std_logic_vector(7 downto 0); cart_detach_key : out std_logic; -- CTRL D - remove active cartridge signal - LCA + + tapPlayStopKey: out std_logic; -- Config -- backwardsReadingEnabled = 1 allows reversal of PIA registers to still work. @@ -366,6 +368,7 @@ begin joySelKey <= '0'; diskChgKey <= '0'; cart_detach_key <= '0'; + tapPlayStopKey <= '0'; if newScanCode = '1' then if theScanCode=X"F0" then releaseFlag <= '1'; @@ -458,7 +461,8 @@ begin when X"72" => if extendedFlag = '0' then joyKeys(1) <= not releaseFlag; else key_down <= not releaseFlag; end if; when X"74" => if extendedFlag = '0' then joyKeys(3) <= not releaseFlag; else key_right <= not releaseFlag; end if; when X"75" => if extendedFlag = '0' then joyKeys(0) <= not releaseFlag; else key_up <= not releaseFlag; end if; - when X"76" => key_runstop <= not releaseFlag; + when X"76" => key_runstop <= not releaseFlag; + when X"7D" => if extendedFlag = '1' then tapPlayStopKey <= not releaseFlag; end if; -- pg up when others => null; end case; end if; diff --git a/cores/c64/rtl/fpga64_sid_iec.vhd b/cores/c64/rtl/fpga64_sid_iec.vhd index 1d8b61c..3b37796 100644 --- a/cores/c64/rtl/fpga64_sid_iec.vhd +++ b/cores/c64/rtl/fpga64_sid_iec.vhd @@ -45,6 +45,7 @@ entity fpga64_sid_iec is kbd_dat : in std_logic; reset_key : out std_logic; cart_detach_key : out std_logic; + tap_playstop_key : out std_logic; -- external memory ramAddr : out unsigned(15 downto 0); @@ -805,8 +806,9 @@ div1m: process(clk32) -- this process devides 32 MHz to 1MHz (for the SID) reset_key => reset_key, restore_key => restore_key, cart_detach_key => cart_detach_key, -- cartridge detach key CTRL-D - LCA + tapPlayStopKey => tap_playstop_key, disk_num => disk_num, - + backwardsReadingEnabled => '1' ); diff --git a/cores/c64/rtl/mist/c64_mist.vhd b/cores/c64/rtl/mist/c64_mist.vhd index 98dfe8b..6c9904a 100644 --- a/cores/c64/rtl/mist/c64_mist.vhd +++ b/cores/c64/rtl/mist/c64_mist.vhd @@ -530,7 +530,8 @@ end component cartridge; signal tap_wrreq : std_logic; signal tap_wrfull : std_logic; signal tap_fifo_error : std_logic; - signal tap_version : std_logic; + signal tap_version : std_logic; + signal tap_playstop_key : std_logic; signal reset_counter : integer; signal reset_n : std_logic; @@ -1085,6 +1086,7 @@ begin c64rom_data => ioctl_data, c64rom_wr => c64rom_wr, -- cart_detach_key => cart_detach_key, + tap_playstop_key => tap_playstop_key, reset_key => reset_key ); @@ -1277,7 +1279,7 @@ begin cass_write => cass_write, cass_motor => cass_motor, cass_sense => cass_sense, - osd_play_stop_toggle => st_tap_play_btn, + osd_play_stop_toggle => st_tap_play_btn or tap_playstop_key, ear_input => UART_RX and not st_user_port_uart );