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