AppleIIMouse/mouseTop.vhd

50 lines
1.1 KiB
VHDL

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use work.ps2_components.all;
entity mouseTop is
port(
mclk : in STD_LOGIC;
PS2C : inout STD_LOGIC;
PS2D : inout STD_LOGIC;
btn : in STD_LOGIC_VECTOR(3 downto 0);
ld : out STD_LOGIC_VECTOR(3 downto 0);
aToG : out STD_LOGIC_VECTOR(6 downto 0);
dp : out STD_LOGIC;
an : out STD_LOGIC_VECTOR(3 downto 0)
);
end mouseTop;
architecture mouseTop of mouseTop is
signal clk7m, clk190, clr: STD_LOGIC;
signal byte3: STD_LOGIC_VECTOR(7 downto 0);
signal xData, yData: STD_LOGIC_VECTOR(8 downto 0);
signal xMouse: STD_LOGIC_VECTOR(15 downto 0);
begin
clr <= btn(3);
dp <= '1'; -- decimal points off
xMouse <= xData(7 downto 0) & yData(7 downto 0);
ld(0) <= yData(8);
ld(1) <= xData(8);
ld(2) <= byte3(1); -- right button
ld(3) <= byte3(0); -- left button
U1 : clkdiv2
port map(mclk => mclk, clr => clr, clk7m => clk7m, clk190 => clk190);
U2 : mouseCtrl
port map(clk7m => clk7m, clr => clr, sel => btn(0),
PS2C => PS2C, PS2D => PS2D, byte3 => byte3,
xData => xData, yData => yData);
U3 : x7segb
port map(x => xMouse, cclk => clk190, clr => clr,
aToG => aToG, an => an);
end mouseTop;