1
0
mirror of https://github.com/mist-devel/mist-board.git synced 2026-02-07 00:17:07 +00:00

[C64] Add Protovision 4 player joystick interface

This commit is contained in:
Gyorgy Szombathelyi
2018-12-20 03:15:15 +01:00
parent 188d1dba59
commit b012241721
2 changed files with 17 additions and 1 deletions

View File

@@ -85,6 +85,9 @@ entity fpga64_sid_iec is
-- joystick interface
joyA : in unsigned(6 downto 0);
joyB : in unsigned(6 downto 0);
-- 4 player interface
joyC : in unsigned(6 downto 0);
joyD : in unsigned(6 downto 0);
-- serial port, for connection to pheripherals
serioclk : out std_logic;
@@ -829,7 +832,10 @@ div1m: process(clk32) -- this process devides 32 MHz to 1MHz (for the SID)
end process;
cia2_pai(5 downto 0) <= cia2_pao(5 downto 0);
cia2_pbi(7 downto 0) <= cia2_pbo;
cia2_pbi(7 downto 6) <= cia2_pbo(7 downto 6);
-- Protovision 4 player interface
cia2_pbi(5 downto 0) <= not joyC(5 downto 0) when cia2_pbo(7) = '1' else not joyD(5 downto 0);
-- -----------------------------------------------------------------------
-- VIC bank to address lines

View File

@@ -351,10 +351,14 @@ end component cartridge;
signal joyA : std_logic_vector(31 downto 0);
signal joyB : std_logic_vector(31 downto 0);
signal joyC : std_logic_vector(31 downto 0);
signal joyD : std_logic_vector(31 downto 0);
signal joyA_int : std_logic_vector(6 downto 0);
signal joyB_int : std_logic_vector(6 downto 0);
signal joyA_c64 : std_logic_vector(6 downto 0);
signal joyB_c64 : std_logic_vector(6 downto 0);
signal joyC_c64 : std_logic_vector(6 downto 0);
signal joyD_c64 : std_logic_vector(6 downto 0);
signal reset_key : std_logic;
signal cart_detach_key :std_logic; -- cartridge detach key CTRL-D - LCA
@@ -469,6 +473,8 @@ begin
joystick_0 => joyA,
joystick_1 => joyB,
joystick_2 => joyC,
joystick_3 => joyD,
conf_str => to_slv(CONF_STR),
@@ -557,6 +563,8 @@ begin
-- rearrange joystick contacta for c64
joyA_int <= joyA(6 downto 4) & joyA(0) & joyA(1) & joyA(2) & joyA(3);
joyB_int <= joyB(6 downto 4) & joyB(0) & joyB(1) & joyB(2) & joyB(3);
joyC_c64 <= joyC(6 downto 4) & joyC(0) & joyC(1) & joyC(2) & joyC(3);
joyD_c64 <= joyD(6 downto 4) & joyD(0) & joyD(1) & joyD(2) & joyD(3);
-- swap joysticks if requested
joyA_c64 <= joyB_int when status(3)='1' else joyA_int;
@@ -818,6 +826,8 @@ begin
ba => open,
joyA => unsigned(joyA_c64),
joyB => unsigned(joyB_c64),
joyC => unsigned(joyC_c64),
joyD => unsigned(joyD_c64),
serioclk => open,
ces => ces,
SIDclk => open,