Revision 50
Added by markw over 11 years ago
| common/a8core/ps2_to_atari800.vhdl | ||
|---|---|---|
|
|
||
|
CONSOL_START : OUT STD_LOGIC;
|
||
|
CONSOL_SELECT : OUT STD_LOGIC;
|
||
|
CONSOL_OPTION : OUT STD_LOGIC
|
||
|
CONSOL_OPTION : OUT STD_LOGIC;
|
||
|
|
||
|
FKEYS : OUT STD_LOGIC_VECTOR(11 downto 0)
|
||
|
);
|
||
|
END ps2_to_atari800;
|
||
|
|
||
|
ARCHITECTURE vhdl OF ps2_to_atari800 IS
|
||
|
signal ps2_keys_next : std_logic_vector(255 downto 0);
|
||
|
signal ps2_keys_reg : std_logic_vector(255 downto 0);
|
||
|
signal ps2_keys_next : std_logic_vector(511 downto 0);
|
||
|
signal ps2_keys_reg : std_logic_vector(511 downto 0);
|
||
|
|
||
|
signal key_event : std_logic;
|
||
|
signal key_value : std_logic_vector(7 downto 0);
|
||
| ... | ... | |
|
signal CONSOL_SELECT_INT : std_logic;
|
||
|
signal CONSOL_OPTION_INT : std_logic;
|
||
|
|
||
|
signal FKEYS_INT : std_logic_vector(11 downto 0);
|
||
|
|
||
|
signal atari_keyboard : std_logic_vector(63 downto 0);
|
||
|
SIGNAL SHIFT_PRESSED : STD_LOGIC;
|
||
|
SIGNAL BREAK_PRESSED : STD_LOGIC;
|
||
| ... | ... | |
|
atari_keyboard(51)<=ps2_keys_reg(16#3D#);
|
||
|
atari_keyboard(53)<=ps2_keys_reg(16#3E#);
|
||
|
atari_keyboard(48)<=ps2_keys_reg(16#46#);
|
||
|
atari_keyboard(17)<=ps2_keys_reg(16#ec#);
|
||
|
--atari_keyboard(17)<=ps2_keys_reg(16#ec#);
|
||
|
atari_keyboard(17)<=ps2_keys_reg(16#16c#);
|
||
|
atari_keyboard(52)<=ps2_keys_reg(16#66#);
|
||
|
atari_keyboard(28)<=ps2_keys_reg(16#76#);
|
||
|
atari_keyboard(39)<=ps2_keys_reg(16#91#);
|
||
|
--atari_keyboard(39)<=ps2_keys_reg(16#91#);
|
||
|
atari_keyboard(39)<=ps2_keys_reg(16#111#);
|
||
|
atari_keyboard(60)<=ps2_keys_reg(16#58#);
|
||
|
atari_keyboard(44)<=ps2_keys_reg(16#0D#);
|
||
|
atari_keyboard(12)<=ps2_keys_reg(16#5A#);
|
||
| ... | ... | |
|
consol_select_int<=ps2_keys_reg(16#04#);
|
||
|
consol_option_int<=ps2_keys_reg(16#0C#);
|
||
|
shift_pressed<=ps2_keys_reg(16#12#) or ps2_keys_reg(16#59#);
|
||
|
control_pressed<=ps2_keys_reg(16#14#) or ps2_keys_reg(16#94#);
|
||
|
--control_pressed<=ps2_keys_reg(16#14#) or ps2_keys_reg(16#94#);
|
||
|
control_pressed<=ps2_keys_reg(16#14#) or ps2_keys_reg(16#114#);
|
||
|
break_pressed<=ps2_keys_reg(16#77#);
|
||
|
|
||
|
fkeys_int(0)<=ps2_keys_reg(16#05#);
|
||
|
fkeys_int(1)<=ps2_keys_reg(16#06#);
|
||
|
fkeys_int(2)<=ps2_keys_reg(16#04#);
|
||
|
fkeys_int(3)<=ps2_keys_reg(16#0C#);
|
||
|
fkeys_int(4)<=ps2_keys_reg(16#03#);
|
||
|
fkeys_int(5)<=ps2_keys_reg(16#0B#);
|
||
|
fkeys_int(6)<=ps2_keys_reg(16#83#);
|
||
|
fkeys_int(7)<=ps2_keys_reg(16#0a#);
|
||
|
fkeys_int(8)<=ps2_keys_reg(16#01#);
|
||
|
fkeys_int(9)<=ps2_keys_reg(16#09#);
|
||
|
fkeys_int(10)<=ps2_keys_reg(16#78#);
|
||
|
fkeys_int(11)<=ps2_keys_reg(16#07#);
|
||
|
end process;
|
||
|
|
||
|
-- provide results as if we were a grid to pokey...
|
||
| ... | ... | |
|
CONSOL_START <= CONSOL_START_INT;
|
||
|
CONSOL_SELECT <= CONSOL_SELECT_INT;
|
||
|
CONSOL_OPTION <= CONSOL_OPTION_INT;
|
||
|
|
||
|
FKEYS <= FKEYS_INT;
|
||
|
END vhdl;
|
||
|
|
||
Added fkeys