From 174c546ae61bee537538e1bb222061dc589fcd10 Mon Sep 17 00:00:00 2001 From: Gehstock Date: Sat, 29 Sep 2018 13:07:42 +0200 Subject: [PATCH] Repair Keyboard -> Release --- Sharp - MZ-80K_MiST/Release/mz80k_mist.rbf | Bin 0 -> 248182 bytes Sharp - MZ-80K_MiST/mz80k_mist.qsf | 70 +- Sharp - MZ-80K_MiST/rtl/build_id.v | 4 +- .../rtl/greybox_tmp/cbx_args.txt | 18 - Sharp - MZ-80K_MiST/rtl/i8255.v | 284 ------ Sharp - MZ-80K_MiST/rtl/i8255.vhd | 863 ++++++++++++++---- Sharp - MZ-80K_MiST/rtl/keyboard.sv | 78 -- Sharp - MZ-80K_MiST/rtl/keymatrix.vhd | 226 +++++ Sharp - MZ-80K_MiST/rtl/mist_io.v | 381 ++++---- Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv | 16 +- Sharp - MZ-80K_MiST/rtl/mz80k_top.v | 74 +- Sharp - MZ-80K_MiST/rtl/ps2.v | 283 ------ Sharp - MZ-80K_MiST/rtl/ps2_recieve.v | 116 --- Sharp - MZ-80K_MiST/rtl/ps2n.sv | 93 -- .../rtl/roms/combined_keymap.mif | 102 +++ Sharp - MZ-80K_MiST/rtl/sprom.vhd | 82 ++ Sharp - MZ-80K_MiST/snapshot/mz80a_mist.rbf | Bin 247090 -> 0 bytes Sharp - MZ-80K_MiST/snapshot/mz80k_mist.rbf | Bin 247355 -> 0 bytes 18 files changed, 1365 insertions(+), 1325 deletions(-) create mode 100644 Sharp - MZ-80K_MiST/Release/mz80k_mist.rbf delete mode 100644 Sharp - MZ-80K_MiST/rtl/greybox_tmp/cbx_args.txt delete mode 100644 Sharp - MZ-80K_MiST/rtl/i8255.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/keyboard.sv create mode 100644 Sharp - MZ-80K_MiST/rtl/keymatrix.vhd delete mode 100644 Sharp - MZ-80K_MiST/rtl/ps2.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/ps2_recieve.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/ps2n.sv create mode 100644 Sharp - MZ-80K_MiST/rtl/roms/combined_keymap.mif create mode 100644 Sharp - MZ-80K_MiST/rtl/sprom.vhd delete mode 100644 Sharp - MZ-80K_MiST/snapshot/mz80a_mist.rbf delete mode 100644 Sharp - MZ-80K_MiST/snapshot/mz80k_mist.rbf diff --git a/Sharp - MZ-80K_MiST/Release/mz80k_mist.rbf b/Sharp - MZ-80K_MiST/Release/mz80k_mist.rbf new file mode 100644 index 0000000000000000000000000000000000000000..68fe4d8b2d99f4846baab72b6a153d458f4f17af GIT binary patch literal 248182 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.org -// -// -// This source file is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This source file is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -// -// ============================================================================ -// -module i8255(ack_o, rst_i, clk_i, rd_i, we_i, cs_i, adr_i, dat_i, dat_o, a, b, c); -output ack_o; -input rst_i; -input clk_i; -input rd_i; -input we_i; -input cs_i; -input [1:0] adr_i; -input [7:0] dat_i; -output [7:0] dat_o; -reg [7:0] dat_o; -inout [7:0] a; -tri [7:0] a; -inout [7:0] b; -tri [7:0] b; -inout [7:0] c; -tri [7:0] c; - -reg [7:0] ao,bo,co; // output registers -reg [7:0] aL,bL; // input latches -reg [1:0] modeA; -reg modeB; -reg [7:0] cio; -reg aio; -reg bio; -wire INTEai = co[4]; -wire INTEao = co[6]; -wire INTEb = co[2]; -wire ackA_n = c[6]; -wire stbA_n = c[4]; -wire ackB_n = c[2]; -wire stbB_n = c[2]; -reg ostbA_n,ostbB_n; // old strobe -reg oackA_n,oackB_n; // old acknowledge -reg ack1; - -//wire cs = cyc_i && stb_i && (adr_i[15:2]==pIOAddress[15:2]); -always @(posedge clk_i) - ack1 <= cs_i; -assign ack_o = cs_i ? (we_i ? 1'b1 : ack1) : 1'b0; -wire wr = cs_i & we_i; -reg owr; // old write -reg [1:0] oad; // old address - -// Input port latches -always @(stbA_n) - if (stbA_n==1'b0) - aL <= a; -always @(stbB_n) - if (stbB_n==1'b0) - bL <= b; - -always @(posedge clk_i) -if (rst_i) begin - modeA <= 2'd0; - modeB <= 1'b0; - cio <= 8'hFF; - aio <= 1'b1; - bio <= 1'b1; - ao <= 8'h00; - bo <= 8'h00; - co <= 8'h00; -end -else begin - owr <= wr; - oad <= adr_i[1:0]; - - ostbA_n <= stbA_n; - ostbB_n <= stbB_n; - oackA_n <= ackA_n; - oackB_n <= ackB_n; - - // Ports in Input mode: Negative edge on strobe actives IBF signal - if (stbA_n==1'b0 && ostbA_n==1'b1 && ((modeA==2'd1 && aio) || modeA==2'd2)) - co[5] <= 1'b1; - if (stbB_n==1'b0 && ostbB_n==1'b1 && modeB==1'b1 && bio) - co[1] <= 1'b1; - // Ports in input mode: rising edge on strobe sets interrupt output if INTE is set. - if (stbA_n==1'b1 && ostbA_n==1'b0 && ((modeA==2'd1 && aio) || modeA==2'd2)) - if (INTEai) - co[3] <= 1'b1; - if (stbB_n==1'b1 && ostbB_n==1'b0 && modeB==1'b1 && bio) - if (INTEb) - co[0] <= 1'b1; - // Ports in output mode: Rising edge on ACK sets interrupt output if INTE is set. - if (!oackA_n & ackA_n && ((modeA==2'd1 && !aio) || modeA==2'd2)) - if (INTEao) - co[3] <= 1'b1; - if (!oackB_n & ackB_n && (modeB==1'd1 && !bio)) - if (INTEb) - co[0] <= 1'b1; - - // Deactivation of write causes OBF_n to be activated - // Output: write causes INTR to be reset - if (!wr & owr) begin - case(oad) - 2'd0: begin - if ((modeA==2'd1 && !aio) || modeA==2'd2) - co[7] <= 1'b0; - if ((modeA==2'd1 && !aio) || modeA==2'd2) - if (INTEao) - co[3] <= 1'b0; - end - 2'd1: begin - if (modeB==1'b1 && !bio) - co[1] <= 1'b0; - if (modeB==1'b1 && !bio) - if (INTEb) - co[0] <= 1'b0; - end - endcase - end - // falling edge of ACK causes OBF_n to be deactivated - if (oackA_n & !ackA_n && ((modeA==2'b01 && !aio) || modeA==2'd2)) - co[7] <= 1'b1; - if (oackB_n & !ackB_n && (modeB==1'b1 && !bio)) - co[1] <= 1'b1; - - if (cs_i & we_i) begin - case(adr_i[1:0]) - 2'd0: ao <= dat_i; - 2'd1: bo <= dat_i; - 2'd2: co <= dat_i; - 2'd3: - begin - if (dat_i[7]) begin - modeB <= dat_i[2]; - if (dat_i[2]) begin - // Port C pin directions are the same for - // both input and output under mode 1 - cio[2] <= 1'b1; - cio[1] <= 1'b0; - cio[0] <= 1'b0; - end - else begin - cio[3] <= dat_i[0]; // This pin control will be overridden by Port A settings. - cio[2] <= dat_i[0]; - cio[1] <= dat_i[0]; - cio[0] <= dat_i[0]; - end - modeA <= dat_i[6:5]; - case(dat_i[6:5]) - 2'b00: begin - cio[7] <= dat_i[3]; - cio[6] <= dat_i[3]; - cio[5] <= dat_i[3]; - cio[4] <= dat_i[3]; - end - 2'b01: begin - // Mode 1 - Input - if (dat_i[4]) begin - cio[4] <= 1'b1; - cio[5] <= 1'b0; - cio[3] <= 1'b0; - end - // Mode 1 - Output - else begin - cio[7] <= 1'b0; - cio[6] <= 1'b1; - cio[3] <= 1'b0; - end - end - 2'b1x: begin - cio[7] <= 1'b0; - cio[6] <= 1'b1; - cio[4] <= 1'b1; - cio[5] <= 1'b0; - cio[3] <= 1'b0; - end - endcase - aio <= dat_i[4]; - bio <= dat_i[1]; - // Mode change causes port A and C outputs to be - // reset to zero. - if (dat_i[6:5]!=modeA) begin - ao <= 8'h00; - co <= 8'h00; - end - end - else begin - case(dat_i[3:1]) - 3'd0: co[0] <= dat_i[0]; - 3'd1: co[1] <= dat_i[0]; - 3'd2: co[2] <= dat_i[0]; - 3'd3: co[3] <= dat_i[0]; - 3'd4: co[4] <= dat_i[0]; - 3'd5: co[5] <= dat_i[0]; - 3'd6: co[6] <= dat_i[0]; - 3'd7: co[7] <= dat_i[0]; - endcase - end - end - endcase - end - // Reads - if (cs_i) begin - case(adr_i[1:0]) - 2'd0: begin - if (modeA==2'b00) // Simple I/O - dat_o <= aio ? a : ao; - else begin // Handshake I/O - // Reading port clears IBF - if (aio==1'b1) begin - dat_o <= aL; - co[5] <= 1'b0; - if (INTEai) // Reading the port resets the interrupt - co[3] <= 1'b0; - end - else - dat_o <= ao; - end - end - 2'd1: begin - if (modeB==1'b0) - dat_o <= bio ? b : bo; - else begin - // Reading port clears IBF - if (bio==1'b1) begin - dat_o <= bL; - co[1] <= 1'b0; - if (INTEb) // Reading the port resets the interrupt - co[0] <= 1'b0; - end - else - dat_o <= bo; - end - end - 2'd2: dat_o <= { - cio[0] ? c[0] : co[0], - cio[1] ? c[1] : co[1], - cio[2] ? c[2] : co[2], - cio[3] ? c[3] : co[3], - cio[4] ? c[4] : co[4], - cio[5] ? c[5] : co[5], - cio[6] ? c[6] : co[6], - cio[7] ? c[7] : co[7], - }; - 2'd3: dat_o <= 8'h00; // no read of control word - endcase - end - else - dat_o <= 8'h00; -end - - -// In mode 2 the I/O is defined as output when ACK is active, otherwise input; the aio setting is a don't care. -assign a = - (modeA==2'd2) ? (ackA_n==1'b0 ? ao : 8'bz) : - aio ? 8'bz : ao; -assign b = bio ? 8'bz : bo; -assign c[0] = cio[0] ? 1'bz : co[0]; -assign c[1] = cio[1] ? 1'bz : co[1]; -assign c[2] = cio[2] ? 1'bz : co[2]; -assign c[3] = cio[3] ? 1'bz : co[3]; -assign c[4] = cio[4] ? 1'bz : co[4]; -assign c[5] = cio[5] ? 1'bz : co[5]; -assign c[6] = cio[6] ? 1'bz : co[6]; -assign c[7] = cio[7] ? 1'bz : co[7]; - -endmodule \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/i8255.vhd b/Sharp - MZ-80K_MiST/rtl/i8255.vhd index c2f3f1ce..7af5db5b 100644 --- a/Sharp - MZ-80K_MiST/rtl/i8255.vhd +++ b/Sharp - MZ-80K_MiST/rtl/i8255.vhd @@ -1,203 +1,700 @@ +--------------------------------------------------------------------------------------------------------- -- --- i8255.vhd +-- Name: i8255.vhd +-- Created: Feb 2007 +-- Author(s): MikeJ, Refactored and ported for this emulation by Philip Smart +-- Description: Sharp MZ series i8255 PPI +-- This module emulates the Intel i8255 Programmable Peripheral Interface chip. -- --- Intel 8255 (PPI:Programmable Peripheral Interface) partiality compatible module --- for MZ-700 on FPGA +-- Credits: +-- Copyright: (c) MikeJ - Feb 2007 -- --- Port A : Output, mode 0 only --- Port B : Input, mode 0 only --- Port C : Input(7-4)&Output(3-0), mode 0 only, bit set/reset support +-- History: July 2018 - Initial module refactored and updated for this emulation. -- --- Nibbles Lab. 2005 +--------------------------------------------------------------------------------------------------------- -- +-- Original copyright notice below:- +-- +-- A simulation model of i8255 PIA +-- Copyright (c) MikeJ - Feb 2007 +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS CODE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- You are responsible for any legal issues arising from your use of this code. +-- +-- The latest version of this file can be found at: www.fpgaarcade.com +-- +-- Email support@fpgaarcade.com +-- +-- Revision list +-- +-- version 001 initial release +-- +--------------------------------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_ARITH.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; - --- Uncomment the following lines to use the declarations that are --- provided for instantiating Xilinx primitive components. ---library UNISIM; ---use UNISIM.VComponents.all; +library ieee ; + use ieee.std_logic_1164.all ; + use ieee.std_logic_unsigned.all; + use ieee.numeric_std.all; entity i8255 is - Port ( RST : in std_logic; - A : in std_logic_vector(1 downto 0); - CS : in std_logic; - WR : in std_logic; - DI : in std_logic_vector(7 downto 0); - DO : out std_logic_vector(7 downto 0); - LDDAT : out std_logic_vector(7 downto 0); --- LDDAT2 : out std_logic; --- LDSNS : out std_logic; - CLKIN : in std_logic; - KCLK : in std_logic; --- FCLK : in std_logic; - VBLNK : in std_logic; - INTMSK : out std_logic; - RBIT : in std_logic; - SENSE : in std_logic; - MOTOR : out std_logic; - PS2CK : in std_logic; - PS2DT : in std_logic); -end i8255; + port ( + RESET : in std_logic; + CLK : in std_logic; + ENA : in std_logic; -- (CPU) clk enable + ADDR : in std_logic_vector(1 downto 0); -- A1-A0 + DI : in std_logic_vector(7 downto 0); -- D7-D0 + DO : out std_logic_vector(7 downto 0); +-- DO_OE_n : out std_logic; + CS_n : in std_logic; + RD_n : in std_logic; + WR_n : in std_logic; + + PA_I : in std_logic_vector(7 downto 0); + PA_O : out std_logic_vector(7 downto 0); + PA_O_OE_n : out std_logic_vector(7 downto 0); + + PB_I : in std_logic_vector(7 downto 0); + PB_O : out std_logic_vector(7 downto 0); + PB_O_OE_n : out std_logic_vector(7 downto 0); + + PC_I : in std_logic_vector(7 downto 0); + PC_O : out std_logic_vector(7 downto 0); + PC_O_OE_n : out std_logic_vector(7 downto 0) + ); +end; -architecture Behavioral of i8255 is - --- --- Port Register --- -signal PA : std_logic_vector(7 downto 0); -signal PB : std_logic_vector(7 downto 0); -signal PC : std_logic_vector(7 downto 0); --- --- Port Selecter --- -signal SELPA : std_logic; -signal SELPB : std_logic; -signal SELPC : std_logic; -signal SELCT : std_logic; --- --- CURSOR blink --- -signal TBLNK : std_logic; -signal CCOUNT : std_logic_vector(3 downto 0); --- --- Remote --- -signal SNS : std_logic; -signal MTR : std_logic; -signal M_ON : std_logic; -signal SENSE0 : std_logic; -signal SWIN : std_logic_vector(3 downto 0); - --- --- Components --- -component keymatrix - Port ( RST : in std_logic; - PA : in std_logic_vector(3 downto 0); - PB : out std_logic_vector(7 downto 0); - KCLK : in std_logic; - LDDAT : out std_logic_vector(7 downto 0); - PS2CK : in std_logic; - PS2DT : in std_logic); -end component; +architecture RTL of i8255 is + -- registers + signal bit_mask : std_logic_vector(7 downto 0); + signal r_porta : std_logic_vector(7 downto 0); + signal r_portb : std_logic_vector(7 downto 0); + signal r_portc : std_logic_vector(7 downto 0); + signal r_control : std_logic_vector(7 downto 0); + -- + signal porta_we : std_logic; + signal portb_we : std_logic; + signal porta_re : std_logic; + signal portb_re : std_logic; + -- + signal porta_we_t1 : std_logic; + signal portb_we_t1 : std_logic; + signal porta_re_t1 : std_logic; + signal portb_re_t1 : std_logic; + -- + signal porta_we_rising : boolean; + signal portb_we_rising : boolean; + signal porta_re_rising : boolean; + signal portb_re_rising : boolean; + -- + signal groupa_mode : std_logic_vector(1 downto 0); -- port a/c upper + signal groupb_mode : std_logic; -- port b/c lower + -- + signal porta_read : std_logic_vector(7 downto 0); + signal portb_read : std_logic_vector(7 downto 0); + signal portc_read : std_logic_vector(7 downto 0); + signal control_read : std_logic_vector(7 downto 0); + signal mode_clear : std_logic; + -- + signal a_inte1 : std_logic; + signal a_inte2 : std_logic; + signal b_inte : std_logic; + -- + signal a_intr : std_logic; + signal a_obf_l : std_logic; + signal a_ibf : std_logic; + signal a_ack_l : std_logic; + signal a_stb_l : std_logic; + signal a_ack_l_t1 : std_logic; + signal a_stb_l_t1 : std_logic; + -- + signal b_intr : std_logic; + signal b_obf_l : std_logic; + signal b_ibf : std_logic; + signal b_ack_l : std_logic; + signal b_stb_l : std_logic; + signal b_ack_l_t1 : std_logic; + signal b_stb_l_t1 : std_logic; + -- + signal a_ack_l_rising : boolean; + signal a_stb_l_rising : boolean; + signal b_ack_l_rising : boolean; + signal b_stb_l_rising : boolean; + -- + signal porta_ipreg : std_logic_vector(7 downto 0); + signal portb_ipreg : std_logic_vector(7 downto 0); begin + -- + -- mode 0 - basic input/output + -- mode 1 - strobed input/output + -- mode 2/3 - bi-directional bus + -- + -- control word (write) + -- + -- D7 mode set flag 1 = active + -- D6..5 GROUPA mode selection (mode 0,1,2) + -- D4 GROUPA porta 1 = input, 0 = output + -- D3 GROUPA portc upper 1 = input, 0 = output + -- D2 GROUPB mode selection (mode 0 ,1) + -- D1 GROUPB portb 1 = input, 0 = output + -- D0 GROUPB portc lower 1 = input, 0 = output + -- + -- D7 bit set/reset 0 = active + -- D6..4 x + -- D3..1 bit select + -- d0 1 = set, 0 - reset + -- + -- all output registers including status are reset when mode is changed + --1. Port A: + --All Modes: Output data is cleared, input data is not cleared. - -- - -- Instantiation - -- - keys : keymatrix port map ( - RST => RST, - PA => PA(3 downto 0), - PB => PB, - KCLK => KCLK, - LDDAT => LDDAT, - PS2CK => PS2CK, - PS2DT => PS2DT); + --2. Port B: + --Mode 0: Output data is cleared, input data is not cleared. + --Mode 1 and 2: Both output and input data are cleared. - -- - -- Port select for Output - -- - SELPA<='1' when A="00" else '0'; - SELPB<='1' when A="01" else '0'; - SELPC<='1' when A="10" else '0'; - SELCT<='1' when A="11" else '0'; + --3. Port C: + --Mode 0:Output data is cleared, input data is not cleared. + --Mode 1 and 2: IBF and INTR are cleared and OBF# is set. + --Outputs in Port C which are not used for handshaking or interrupt signals are cleared. + --Inputs such as STB#, ACK#, or "spare" inputs are not affected. The interrupts for Ports A and B are disabled. - -- - -- Output - -- - process( RST, WR, CS ) begin - if( RST='0' ) then - PA<=(others=>'0'); --- PB<=(others=>'0'); - PC<=(others=>'0'); - elsif( WR'event and WR='1' and CS='0' ) then - if( SELPA='1' ) then - PA<=DI; - end if; --- if( SELPB='1' ) then --- PB<=DI; --- end if; - if( SELPC='1' ) then - PC(3 downto 0)<=DI(3 downto 0); - end if; - if( SELCT='1' and DI(7)='0' ) then - case DI(3 downto 0) is - when "0000" => PC(0)<='0'; - when "0001" => PC(0)<='1'; - when "0010" => PC(1)<='0'; - when "0011" => PC(1)<='1'; - when "0100" => PC(2)<='0'; - when "0101" => PC(2)<='1'; - when "0110" => PC(3)<='0'; - when "0111" => PC(3)<='1'; --- when "1000" => PC(4)<='0'; --- when "1001" => PC(4)<='1'; --- when "1010" => PC(5)<='0'; --- when "1011" => PC(5)<='1'; --- when "1100" => PC(6)<='0'; --- when "1101" => PC(6)<='1'; --- when "1110" => PC(7)<='0'; --- when "1111" => PC(7)<='1'; - when others => PC<="XXXXXXXX"; - end case; - end if; - end if; - end process; + p_bit_mask : process(DI) + begin + bit_mask <= x"01"; + case DI(3 downto 1) is + when "000" => bit_mask <= x"01"; + when "001" => bit_mask <= x"02"; + when "010" => bit_mask <= x"04"; + when "011" => bit_mask <= x"08"; + when "100" => bit_mask <= x"10"; + when "101" => bit_mask <= x"20"; + when "110" => bit_mask <= x"40"; + when "111" => bit_mask <= x"80"; + when others => null; + end case; + end process; - -- - -- CURSOR blink Clock - -- - process( CLKIN, PA(7) ) begin - if( PA(7)='0' ) then - CCOUNT<=(others=>'0'); - elsif( CLKIN'event and CLKIN='1' ) then - CCOUNT<=CCOUNT+'1'; - if( CCOUNT=13 ) then - CCOUNT<=(others=>'0'); - TBLNK<=not TBLNK; - end if; - end if; - end process; + p_write_reg_reset : process(RESET, CLK) + variable r_portc_masked : std_logic_vector(7 downto 0); + variable r_portc_setclr : std_logic_vector(7 downto 0); + begin + if (RESET = '1') then + r_porta <= x"00"; + r_portb <= x"00"; + r_portc <= x"00"; + r_control <= x"9B"; -- 10011011 + mode_clear <= '1'; + elsif rising_edge(CLK) then - -- - -- Input select - -- - DO<=PB when SELPB='1' else - VBLNK&TBLNK&RBIT&MTR&PC(3 downto 0) when SELPC='1' else (others=>'1'); + r_portc_masked := (not bit_mask) and r_portc; + for i in 0 to 7 loop + r_portc_setclr(i) := bit_mask(i) and DI(0); + end loop; - -- - -- Remote - -- - MOTOR<=MTR; - process( KCLK ) begin - if( KCLK'event and KCLK='1' ) then - M_ON<=PC(3); - SNS<=SENSE0; - if( SENSE0='1' ) then - MTR<='0'; - elsif( SNS='1' and SENSE0='0' ) then - MTR<='1'; - elsif( M_ON='0' and PC(3)='1' ) then - MTR<=not MTR; - end if; + if (ENA = '1') then + mode_clear <= '0'; + if (CS_n = '0') and (WR_n = '0') then + case ADDR is + when "00" => r_porta <= DI; + when "01" => r_portb <= DI; + when "10" => r_portc <= DI; - SWIN<=SWIN(2 downto 0)&(not SENSE); - if( SWIN="1111" and SENSE='0' ) then - SENSE0<='0'; - elsif( SWIN="0000" and SENSE='1' ) then - SENSE0<='1'; - end if; - end if; - end process; + when "11" => if (DI(7) = '0') then -- set/clr + r_portc <= r_portc_masked or r_portc_setclr; + else + --mode_clear <= '1'; + --r_porta <= x"00"; + --r_portb <= x"00"; -- clear port b input reg + --r_portc <= x"00"; -- clear control sigs + r_control <= DI; -- load new mode + end if; + when others => null; + end case; + end if; + end if; + end if; + end process; - -- - -- Others - -- - INTMSK<=PC(2); + p_decode_control : process(r_control) + begin + groupa_mode <= r_control(6 downto 5); + groupb_mode <= r_control(2); + end process; -end Behavioral; + --p_oe : process(CS_n, RD_n) + --begin + -- DO_OE_n <= '1'; + -- if (CS_n = '0') and (RD_n = '0') then + -- DO_OE_n <= '0'; + -- end if; + --end process; + + p_read : process(ADDR , porta_read, portb_read, portc_read, control_read) + begin + DO <= x"00"; -- default + --if (CS_n = '0') and (RD_n = '0') then -- not required + case ADDR is + when "00" => DO <= porta_read; + when "01" => DO <= portb_read; + when "10" => DO <= portc_read; + when "11" => DO <= control_read; + when others => null; + end case; + --end if; + end process; + control_read(7) <= '1'; -- always 1 + control_read(6 downto 0) <= r_control(6 downto 0); + + p_rw_control : process(CS_n, RD_n, WR_n, ADDR ) + begin + porta_we <= '0'; + portb_we <= '0'; + porta_re <= '0'; + portb_re <= '0'; + + if (CS_n = '0') and (ADDR = "00") then + porta_we <= not WR_n; + porta_re <= not RD_n; + end if; + + if (CS_n = '0') and (ADDR = "01") then + portb_we <= not WR_n; + portb_re <= not RD_n; + end if; + end process; + + p_rw_control_reg : process + begin + wait until rising_edge(CLK); + if (ENA = '1') then + porta_we_t1 <= porta_we; + portb_we_t1 <= portb_we; + porta_re_t1 <= porta_re; + portb_re_t1 <= portb_re; + + a_stb_l_t1 <= a_stb_l; + a_ack_l_t1 <= a_ack_l; + b_stb_l_t1 <= b_stb_l; + b_ack_l_t1 <= b_ack_l; + end if; + end process; + + porta_we_rising <= (porta_we = '0') and (porta_we_t1 = '1'); -- falling as inverted + portb_we_rising <= (portb_we = '0') and (portb_we_t1 = '1'); -- " + porta_re_rising <= (porta_re = '0') and (porta_re_t1 = '1'); -- falling as inverted + portb_re_rising <= (portb_re = '0') and (portb_re_t1 = '1'); -- " + -- + a_stb_l_rising <= (a_stb_l = '1') and (a_stb_l_t1 = '0'); + a_ack_l_rising <= (a_ack_l = '1') and (a_ack_l_t1 = '0'); + b_stb_l_rising <= (b_stb_l = '1') and (b_stb_l_t1 = '0'); + b_ack_l_rising <= (b_ack_l = '1') and (b_ack_l_t1 = '0'); + -- + -- GROUP A + -- in mode 1 + -- + -- d4=1 (porta = input) + -- pc7,6 io (d3=1 input, d3=0 output) + -- pc5 output a_ibf + -- pc4 input a_stb_l + -- pc3 output a_intr + -- + -- d4=0 (porta = output) + -- pc7 output a_obf_l + -- pc6 input a_ack_l + -- pc5,4 io (d3=1 input, d3=0 output) + -- pc3 output a_intr + -- + -- GROUP B + -- in mode 1 + -- d1=1 (portb = input) + -- pc2 input b_stb_l + -- pc1 output b_ibf + -- pc0 output b_intr + -- + -- d1=0 (portb = output) + -- pc2 input b_ack_l + -- pc1 output b_obf_l + -- pc0 output b_intr + + + -- WHEN AN INPUT + -- + -- stb_l a low on this input latches input data + -- ibf a high on this output indicates data latched. set by stb_l and reset by rising edge of RD_L + -- intr a high on this output indicates interrupt. set by stb_l high, ibf high and inte high. reset by falling edge of RD_L + -- inte A controlled by bit/set PC4 + -- inte B controlled by bit/set PC2 + + -- WHEN AN OUTPUT + -- + -- obf_l output will go low when cpu has written data + -- ack_l input - a low on this clears obf_l + -- intr output set when ack_l is high, obf_l is high and inte is one. reset by falling edge of WR_L + -- inte A controlled by bit/set PC6 + -- inte B controlled by bit/set PC2 + + -- GROUP A + -- in mode 2 + -- + -- porta = IO + -- + -- control bits 2..0 still control groupb/c lower 2..0 + -- + -- + -- PC7 output a_obf + -- PC6 input a_ack_l + -- PC5 output a_ibf + -- PC4 input a_stb_l + -- PC3 is still interrupt out + p_control_flags : process(RESET, CLK) + variable we : boolean; + variable set1 : boolean; + variable set2 : boolean; + begin + if (RESET = '1') then + a_obf_l <= '1'; + a_inte1 <= '0'; + a_ibf <= '0'; + a_inte2 <= '0'; + a_intr <= '0'; + -- + b_inte <= '0'; + b_obf_l <= '1'; + b_ibf <= '0'; + b_intr <= '0'; + elsif rising_edge(CLK) then + we := (CS_n = '0') and (WR_n = '0') and (ADDR = "11") and (DI(7) = '0'); + + if (ENA = '1') then + if (mode_clear = '1') then + a_obf_l <= '1'; + a_inte1 <= '0'; + a_ibf <= '0'; + a_inte2 <= '0'; + a_intr <= '0'; + -- + b_inte <= '0'; + b_obf_l <= '1'; + b_ibf <= '0'; + b_intr <= '0'; + else + if (bit_mask(7) = '1') and we then + a_obf_l <= DI(0); + else + if porta_we_rising then + a_obf_l <= '0'; + elsif (a_ack_l = '0') then + a_obf_l <= '1'; + end if; + end if; + -- + if (bit_mask(6) = '1') and we then a_inte1 <= DI(0); end if; -- bus set when mode1 & input? + -- + if (bit_mask(5) = '1') and we then + a_ibf <= DI(0); + else + if porta_re_rising then + a_ibf <= '0'; + elsif (a_stb_l = '0') then + a_ibf <= '1'; + end if; + end if; + -- + if (bit_mask(4) = '1') and we then a_inte2 <= DI(0); end if; -- bus set when mode1 & output? + -- + set1 := a_ack_l_rising and (a_obf_l = '1') and (a_inte1 = '1'); + set2 := a_stb_l_rising and (a_ibf = '1') and (a_inte2 = '1'); + -- + if (bit_mask(3) = '1') and we then + a_intr <= DI(0); + else + if (groupa_mode(1) = '1') then + if (porta_we = '1') or (porta_re = '1') then + a_intr <= '0'; + elsif set1 or set2 then + a_intr <= '1'; + end if; + else + if (r_control(4) = '0') then -- output + if (porta_we = '1') then -- falling ? + a_intr <= '0'; + elsif set1 then + a_intr <= '1'; + end if; + elsif (r_control(4) = '1') then -- input + if (porta_re = '1') then -- falling ? + a_intr <= '0'; + elsif set2 then + a_intr <= '1'; + end if; + end if; + end if; + end if; + -- + if (bit_mask(2) = '1') and we then b_inte <= DI(0); end if; -- bus set? + + if (bit_mask(1) = '1') and we then + b_obf_l <= DI(0); + else + if (r_control(1) = '0') then -- output + if portb_we_rising then + b_obf_l <= '0'; + elsif (b_ack_l = '0') then + b_obf_l <= '1'; + end if; + else + if portb_re_rising then + b_ibf <= '0'; + elsif (b_stb_l = '0') then + b_ibf <= '1'; + end if; + end if; + end if; + + if (bit_mask(0) = '1') and we then + b_intr <= DI(0); + else + if (r_control(1) = '0') then -- output + if (portb_we = '1') then -- falling ? + b_intr <= '0'; + elsif b_ack_l_rising and (b_obf_l = '1') and (b_inte = '1') then + b_intr <= '1'; + end if; + else + if (portb_re = '1') then -- falling ? + b_intr <= '0'; + elsif b_stb_l_rising and (b_ibf = '1') and (b_inte = '1') then + b_intr <= '1'; + end if; + end if; + end if; + + end if; + end if; + end if; + end process; + + p_porta : process(r_porta, r_control, groupa_mode, PA_I, porta_ipreg, a_ack_l) + begin + -- D4 GROUPA porta 1 = input, 0 = output + PA_O <= x"FF"; -- if not driven, float high + PA_O_OE_n <= x"FF"; + porta_read <= x"00"; + + if (groupa_mode = "00") then -- simple io + if (r_control(4) = '0') then -- output + PA_O <= r_porta; + PA_O_OE_n <= x"00"; + end if; + porta_read <= PA_I; + elsif (groupa_mode = "01") then -- strobed + if (r_control(4) = '0') then -- output + PA_O <= r_porta; + PA_O_OE_n <= x"00"; + end if; + porta_read <= porta_ipreg; + else -- if (groupa_mode(1) = '1') then -- bi dir + if (a_ack_l = '0') then -- output enable + PA_O <= r_porta; + PA_O_OE_n <= x"00"; + end if; + porta_read <= porta_ipreg; -- latched data + end if; + + end process; + + p_portb : process(r_portb, r_control, groupb_mode, PB_I, portb_ipreg) + begin + PB_O <= x"FF"; -- if not driven, float high + PB_O_OE_n <= x"FF"; + portb_read <= x"00"; + + if (groupb_mode = '0') then -- simple io + if (r_control(1) = '0') then -- output + PB_O <= r_portb; + PB_O_OE_n <= x"00"; + end if; + portb_read <= PB_I; + else -- strobed mode + if (r_control(1) = '0') then -- output + PB_O <= r_portb; + PB_O_OE_n <= x"00"; + end if; + portb_read <= portb_ipreg; + end if; + end process; + + p_portc_out : process(r_portc, r_control, groupa_mode, groupb_mode, + a_obf_l, a_ibf, a_intr,b_obf_l, b_ibf, b_intr) + begin + PC_O <= x"FF"; -- if not driven, float high + PC_O_OE_n <= x"FF"; + + -- bits 7..4 + if (groupa_mode = "00") then -- simple io + if (r_control(3) = '0') then -- output + PC_O (7 downto 4) <= r_portc(7 downto 4); + PC_O_OE_n(7 downto 4) <= x"0"; + end if; + elsif (groupa_mode = "01") then -- mode1 + + if (r_control(4) = '0') then -- port a output + PC_O (7) <= a_obf_l; + PC_O_OE_n(7) <= '0'; + -- 6 is ack_l input + if (r_control(3) = '0') then -- port c output + PC_O (5 downto 4) <= r_portc(5 downto 4); + PC_O_OE_n(5 downto 4) <= "00"; + end if; + else -- port a input + if (r_control(3) = '0') then -- port c output + PC_O (7 downto 6) <= r_portc(7 downto 6); + PC_O_OE_n(7 downto 6) <= "00"; + end if; + PC_O (5) <= a_ibf; + PC_O_OE_n(5) <= '0'; + -- 4 is stb_l input + end if; + + else -- if (groupa_mode(1) = '1') then -- mode2 + PC_O (7) <= a_obf_l; + PC_O_OE_n(7) <= '0'; + -- 6 is ack_l input + PC_O (5) <= a_ibf; + PC_O_OE_n(5) <= '0'; + -- 4 is stb_l input + end if; + + -- bit 3 (controlled by group a) + if (groupa_mode = "00") then -- group a steals this bit + --if (groupb_mode = '0') then -- we will let bit 3 be driven, data sheet is a bit confused about this + if (r_control(0) = '0') then -- ouput (note, groupb control bit) + PC_O (3) <= r_portc(3); + PC_O_OE_n(3) <= '0'; + end if; + -- + else -- stolen + PC_O (3) <= a_intr; + PC_O_OE_n(3) <= '0'; + end if; + + -- bits 2..0 + if (groupb_mode = '0') then -- simple io + if (r_control(0) = '0') then -- output + PC_O (2 downto 0) <= r_portc(2 downto 0); + PC_O_OE_n(2 downto 0) <= "000"; + end if; + else + -- mode 1 + -- 2 is input + if (r_control(1) = '0') then -- output + PC_O (1) <= b_obf_l; + PC_O_OE_n(1) <= '0'; + else -- input + PC_O (1) <= b_ibf; + PC_O_OE_n(1) <= '0'; + end if; + PC_O (0) <= b_intr; + PC_O_OE_n(0) <= '0'; + end if; + end process; + + p_portc_in : process(r_portc, PC_I, r_control, groupa_mode, groupb_mode, a_ibf, b_obf_l, + a_obf_l, a_inte1, a_inte2, a_intr, b_inte, b_ibf, b_intr) + begin + portc_read <= x"00"; + + a_stb_l <= '1'; + a_ack_l <= '1'; + b_stb_l <= '1'; + b_ack_l <= '1'; + + if (groupa_mode = "01") then -- mode1 or 2 + if (r_control(4) = '0') then -- port a output + a_ack_l <= PC_I(6); + else -- port a input + a_stb_l <= PC_I(4); + end if; + elsif (groupa_mode(1) = '1') then -- mode 2 + a_ack_l <= PC_I(6); + a_stb_l <= PC_I(4); + end if; + + if (groupb_mode = '1') then + if (r_control(1) = '0') then -- output + b_ack_l <= PC_I(2); + else -- input + b_stb_l <= PC_I(2); + end if; + end if; + + if (groupa_mode = "00") then -- simple io + portc_read(7 downto 3) <= PC_I(7 downto 3); + elsif (groupa_mode = "01") then + if (r_control(4) = '0') then -- port a output + portc_read(7 downto 3) <= a_obf_l & a_inte1 & PC_I(5 downto 4) & a_intr; + else -- input + portc_read(7 downto 3) <= PC_I(7 downto 6) & a_ibf & a_inte2 & a_intr; + end if; + else -- mode 2 + portc_read(7 downto 3) <= a_obf_l & a_inte1 & a_ibf & a_inte2 & a_intr; + end if; + + if (groupb_mode = '0') then -- simple io + portc_read(2 downto 0) <= PC_I(2 downto 0); + else + if (r_control(1) = '0') then -- output + portc_read(2 downto 0) <= b_inte & b_obf_l & b_intr; + else -- input + portc_read(2 downto 0) <= b_inte & b_ibf & b_intr; + end if; + end if; + end process; + + p_ipreg : process + begin + wait until rising_edge(CLK); + -- pc4 input a_stb_l + -- pc2 input b_stb_l + + if (ENA = '1') then + if (a_stb_l = '0') then + porta_ipreg <= PA_I; + end if; + + if (mode_clear = '1') then + portb_ipreg <= (others => '0'); + elsif (b_stb_l = '0') then + portb_ipreg <= PB_I; + end if; + end if; + end process; + +end architecture RTL; diff --git a/Sharp - MZ-80K_MiST/rtl/keyboard.sv b/Sharp - MZ-80K_MiST/rtl/keyboard.sv deleted file mode 100644 index ced157db..00000000 --- a/Sharp - MZ-80K_MiST/rtl/keyboard.sv +++ /dev/null @@ -1,78 +0,0 @@ - - -module keyboard -( - input clk, - input reset, - input ps2_kbd_clk, - input ps2_kbd_data, - - output reg[7:0] joystick -); - -reg [11:0] shift_reg = 12'hFFF; -wire[11:0] kdata = {ps2_kbd_data,shift_reg[11:1]}; -wire [7:0] kcode = kdata[9:2]; -reg release_btn = 0; - -reg [7:0] code; -reg input_strobe = 0; - -always @(negedge clk) begin - reg old_reset = 0; - - old_reset <= reset; - - if(~old_reset & reset)begin - joystick <= 0; - end - - if(input_strobe) begin - case(code) - 'h75: joystick[7] <= ~release_btn; // arrow up - 'h74: joystick[6] <= ~release_btn; // arrow right - 'h72: joystick[5] <= ~release_btn; // arrow down - 'h6B: joystick[4] <= ~release_btn; // arrow left - 'h16: joystick[3] <= ~release_btn; // 1 - 'h1E: joystick[2] <= ~release_btn; // 2 - 'h26: joystick[1] <= ~release_btn; // 3 - 'h25: joystick[0] <= ~release_btn; // 4 - endcase - end -end - -always @(posedge clk) begin - reg [3:0] prev_clk = 0; - reg old_reset = 0; - reg action = 0; - - old_reset <= reset; - input_strobe <= 0; - - if(~old_reset & reset)begin - prev_clk <= 0; - shift_reg <= 12'hFFF; - end else begin - prev_clk <= {ps2_kbd_clk,prev_clk[3:1]}; - if(prev_clk == 1) begin - if (kdata[11] & ^kdata[10:2] & ~kdata[1] & kdata[0]) begin - shift_reg <= 12'hFFF; - if (kcode == 8'he0) ; - // Extended key code follows - else if (kcode == 8'hf0) - // Release code follows - action <= 1; - else begin - // Cancel extended/release flags for next time - action <= 0; - release_btn <= action; - code <= kcode; - input_strobe <= 1; - end - end else begin - shift_reg <= kdata; - end - end - end -end -endmodule diff --git a/Sharp - MZ-80K_MiST/rtl/keymatrix.vhd b/Sharp - MZ-80K_MiST/rtl/keymatrix.vhd new file mode 100644 index 00000000..98437bd8 --- /dev/null +++ b/Sharp - MZ-80K_MiST/rtl/keymatrix.vhd @@ -0,0 +1,226 @@ +--------------------------------------------------------------------------------------------------------- +-- +-- Name: keymatrix.vhd +-- Created: July 2018 +-- Author(s): Philip Smart +-- Description: Keyboard module to convert PS2 key codes into Sharp scan matrix key connections. +-- For each scan output (10 lines) sent by the Sharp, an 8bit response is read in +-- and the bits set indicate keys pressed. This allows for multiple keys to be pressed +-- at the same time. The PS2 scan code is mapped via a rom and the output is used to drive +-- the data in lines of the 8255. +-- +-- Credits: Nibbles Lab (c) 2005-2012 +-- Copyright: (c) 2018 Philip Smart +-- +-- History: July 2018 - Initial module written, originally based on the Nibbles Lab code but +-- rewritten to match the overall design of this emulation. +-- +--------------------------------------------------------------------------------------------------------- +-- This source file is free software: you can redistribute it and-or modify +-- it under the terms of the GNU General Public License as published +-- by the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This source file is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +--------------------------------------------------------------------------------------------------------- + +library IEEE; +library pkgs; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; + +entity keymatrix is + Port ( + RST_n : in std_logic; + -- i8255 + PA : in std_logic_vector(3 downto 0); + PB : out std_logic_vector(7 downto 0); + STALL : in std_logic; + -- PS/2 Keyboard Data + PS2_KEY : in std_logic_vector(10 downto 0); -- PS2 Key data. + KEY_BANK : in std_logic_vector(2 downto 0); + -- Clock signals used by this module. + CKCPU : in std_logic + ); +end keymatrix; + +architecture Behavioral of keymatrix is + +-- +-- prefix flag +-- +signal FLGF0 : std_logic; +signal FLGE0 : std_logic; +-- +-- MZ-series matrix registers +-- +signal SCAN00 : std_logic_vector(7 downto 0); +signal SCAN01 : std_logic_vector(7 downto 0); +signal SCAN02 : std_logic_vector(7 downto 0); +signal SCAN03 : std_logic_vector(7 downto 0); +signal SCAN04 : std_logic_vector(7 downto 0); +signal SCAN05 : std_logic_vector(7 downto 0); +signal SCAN06 : std_logic_vector(7 downto 0); +signal SCAN07 : std_logic_vector(7 downto 0); +signal SCAN08 : std_logic_vector(7 downto 0); +signal SCAN09 : std_logic_vector(7 downto 0); +signal SCAN10 : std_logic_vector(7 downto 0); +signal SCAN11 : std_logic_vector(7 downto 0); +signal SCAN12 : std_logic_vector(7 downto 0); +signal SCAN13 : std_logic_vector(7 downto 0); +signal SCAN14 : std_logic_vector(7 downto 0); +signal SCANLL : std_logic_vector(7 downto 0); +-- +-- Key code exchange table +-- +signal MTEN : std_logic_vector(3 downto 0); +signal F_KBDT : std_logic_vector(7 downto 0); +signal MAP_DATA : std_logic_vector(7 downto 0); + +signal KEY_EXTENDED : std_logic; +signal KEY_FLAG : std_logic; +signal KEY_PRESS : std_logic; +signal KEY_VALID : std_logic; + +begin + -- + -- Instantiation + -- + -- 0 = MZ80K KEYMAP = 256Bytes -> 0000:00ff 0000 bytes padding + -- 1 = MZ80C KEYMAP = 256Bytes -> 0100:01ff 0000 bytes padding + -- 2 = MZ1200 KEYMAP = 256Bytes -> 0200:02ff 0000 bytes padding + -- 3 = MZ80A KEYMAP = 256Bytes -> 0300:03ff 0000 bytes padding + -- 4 = MZ700 KEYMAP = 256Bytes -> 0400:04ff 0000 bytes padding + -- 5 = MZ80B KEYMAP = 256Bytes -> 0500:05ff 0000 bytes padding + -- KEY_BANK <= "000" when CONFIG(MZ80K) = '1' else -- Key map for MZ80K + -- "001" when CONFIG(MZ80C) = '1' else -- Key map for MZ80C + -- "010" when CONFIG(MZ1200) = '1' else -- Key map for MZ1200 + -- "011" when CONFIG(MZ80A) = '1' else -- Key map for MZ80A + -- "100" when CONFIG(MZ700) = '1' else -- Key map for MZ700 + -- "101" when CONFIG(MZ800) = '1' else -- Key map for MZ800 + -- "110" when CONFIG(MZ80B) = '1' else -- Key map for MZ80B + -- "111" when CONFIG(MZ2000) = '1'; -- Key map for MZ2000 + --KEY_BANK <= "000"; + + MAP0 : entity work.sprom + GENERIC MAP ( + --init_file => "./mif/key_80k_80b.mif", + init_file => "./roms/combined_keymap.mif", + widthad_a => 11, + width_a => 8 + ) + PORT MAP ( + clock => CKCPU, + address => KEY_BANK & F_KBDT, + q => MAP_DATA + ); + + -- Store changes to the key valid flag in a flip flop. + process( CKCPU ) begin + if rising_edge(CKCPU) then + KEY_FLAG <= PS2_KEY(10); + end if; + end process; + + KEY_PRESS <= PS2_KEY(9); + KEY_EXTENDED <= PS2_KEY(8); + KEY_VALID <= '1' when KEY_FLAG /= PS2_KEY(10) else '0'; + + -- + -- Convert + -- + process( RST_n, CKCPU) begin + if RST_n = '0' then + SCAN00 <= (others=>'0'); + SCAN01 <= (others=>'0'); + SCAN02 <= (others=>'0'); + SCAN03 <= (others=>'0'); + SCAN04 <= (others=>'0'); + SCAN05 <= (others=>'0'); + SCAN06 <= (others=>'0'); + SCAN07 <= (others=>'0'); + SCAN08 <= (others=>'0'); + SCAN09 <= (others=>'0'); + SCAN10 <= (others=>'0'); + SCAN11 <= (others=>'0'); + SCAN12 <= (others=>'0'); + SCAN13 <= (others=>'0'); + SCAN14 <= (others=>'0'); + FLGF0 <= '0'; + FLGE0 <= '0'; + MTEN <= (others=>'0'); + + elsif CKCPU'event and CKCPU='1' then + MTEN <= MTEN(2 downto 0) & KEY_VALID; + if KEY_VALID='1' then + if(KEY_EXTENDED='1') then + FLGE0 <= '1'; + end if; + if(KEY_PRESS='0') then + FLGF0 <= '1'; + end if; + if(PS2_KEY(7 downto 0) = X"AA" ) then + F_KBDT <= X"EF"; + else + F_KBDT <= FLGE0 & PS2_KEY(6 downto 0); FLGE0<='0'; + end if; + end if; + + if MTEN(3)='1' then + case MAP_DATA(7 downto 4) is + when "0000" => SCAN00(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "0001" => SCAN01(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "0010" => SCAN02(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "0011" => SCAN03(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "0100" => SCAN04(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "0101" => SCAN05(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "0110" => SCAN06(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "0111" => SCAN07(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "1000" => SCAN08(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "1001" => SCAN09(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "1010" => SCAN10(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "1011" => SCAN11(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "1100" => SCAN12(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "1101" => SCAN13(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + when "1110" => SCAN14(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; + when others => SCAN14(conv_integer(MAP_DATA(2 downto 0))) <= not FLGF0; FLGF0 <= '0'; + end case; + end if; + end if; + end process; + + PA_L : for I in 0 to 7 generate + SCANLL(I) <= SCAN00(I) or SCAN01(I) or SCAN02(I) or SCAN03(I) or SCAN04(I) or + SCAN05(I) or SCAN06(I) or SCAN07(I) or SCAN08(I) or SCAN09(I) or + SCAN10(I) or SCAN11(I) or SCAN12(I) or SCAN13(I) or SCAN14(I); + end generate PA_L; + + -- + -- response from key access + -- + PB <= (not SCANLL) when STALL='0' and KEY_BANK="110" else + (not SCAN00) when PA="0000" else + (not SCAN01) when PA="0001" else + (not SCAN02) when PA="0010" else + (not SCAN03) when PA="0011" else + (not SCAN04) when PA="0100" else + (not SCAN05) when PA="0101" else + (not SCAN06) when PA="0110" else + (not SCAN07) when PA="0111" else + (not SCAN08) when PA="1000" else + (not SCAN09) when PA="1001" else + (not SCAN10) when PA="1010" else + (not SCAN11) when PA="1011" else + (not SCAN12) when PA="1100" else + (not SCAN13) when PA="1101" else (others=>'1'); + + + +end Behavioral; diff --git a/Sharp - MZ-80K_MiST/rtl/mist_io.v b/Sharp - MZ-80K_MiST/rtl/mist_io.v index ab9ef8ad..dc336b2f 100644 --- a/Sharp - MZ-80K_MiST/rtl/mist_io.v +++ b/Sharp - MZ-80K_MiST/rtl/mist_io.v @@ -5,6 +5,7 @@ // http://code.google.com/p/mist-board/ // // Copyright (c) 2014 Till Harbaum +// Copyright (c) 2015-2017 Sorgelig // // This source file is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published @@ -61,13 +62,13 @@ module mist_io #(parameter STRLEN=0, parameter PS2DIV=100) // SD config input sd_conf, input sd_sdhc, - output img_mounted, // signaling that new image has been mounted + output [1:0] img_mounted, // signaling that new image has been mounted output reg [31:0] img_size, // size of image in bytes // SD block level access input [31:0] sd_lba, - input sd_rd, - input sd_wr, + input [1:0] sd_rd, + input [1:0] sd_wr, output reg sd_ack, output reg sd_ack_conf, @@ -83,25 +84,27 @@ module mist_io #(parameter STRLEN=0, parameter PS2DIV=100) output ps2_mouse_clk, output reg ps2_mouse_data, + // ps2 alternative interface. + + // [8] - extended, [9] - pressed, [10] - toggles with every press/release + output reg [10:0] ps2_key = 0, + + // [24] - toggles with every event + output reg [24:0] ps2_mouse = 0, + // ARM -> FPGA download - input ioctl_force_erase, + input ioctl_ce, output reg ioctl_download = 0, // signal indicating an active download - output reg ioctl_erasing = 0, // signal indicating an active erase output reg [7:0] ioctl_index, // menu index used to upload the file output reg ioctl_wr = 0, output reg [24:0] ioctl_addr, output reg [7:0] ioctl_dout ); -reg [7:0] b_data; -reg [6:0] sbuf; -reg [7:0] cmd; -reg [2:0] bit_cnt; // counts bits 0-7 0-7 ... -reg [7:0] byte_cnt; // counts bytes reg [7:0] but_sw; reg [2:0] stick_idx; -reg mount_strobe = 0; +reg [1:0] mount_strobe = 0; assign img_mounted = mount_strobe; assign buttons = but_sw[1:0]; @@ -109,160 +112,189 @@ assign switches = but_sw[3:2]; assign scandoubler_disable = but_sw[4]; assign ypbpr = but_sw[5]; -wire [7:0] spi_dout = { sbuf, SPI_DI}; - // this variant of user_io is for 8 bit cores (type == a4) only wire [7:0] core_type = 8'ha4; // command byte read by the io controller -wire [7:0] sd_cmd = { 4'h5, sd_conf, sd_sdhc, sd_wr, sd_rd }; +wire drive_sel = sd_rd[1] | sd_wr[1]; +wire [7:0] sd_cmd = { 4'h6, sd_conf, sd_sdhc, sd_wr[drive_sel], sd_rd[drive_sel] }; + +reg [7:0] cmd; +reg [2:0] bit_cnt; // counts bits 0-7 0-7 ... +reg [9:0] byte_cnt; // counts bytes reg spi_do; assign SPI_DO = CONF_DATA0 ? 1'bZ : spi_do; -// drive MISO only when transmitting core id -always@(negedge SPI_SCK) begin - if(!CONF_DATA0) begin - // first byte returned is always core type, further bytes are - // command dependent - if(byte_cnt == 0) begin - spi_do <= core_type[~bit_cnt]; +reg [7:0] spi_data_out; - end else begin - case(cmd) - // reading config string - 8'h14: begin - // returning a byte from string - if(byte_cnt < STRLEN + 1) spi_do <= conf_str[{STRLEN - byte_cnt,~bit_cnt}]; - else spi_do <= 0; - end +// SPI transmitter +always@(negedge SPI_SCK) spi_do <= spi_data_out[~bit_cnt]; - // reading sd card status - 8'h16: begin - if(byte_cnt == 1) spi_do <= sd_cmd[~bit_cnt]; - else if((byte_cnt >= 2) && (byte_cnt < 6)) spi_do <= sd_lba[{5-byte_cnt, ~bit_cnt}]; - else spi_do <= 0; - end - - // reading sd card write data - 8'h18: - spi_do <= b_data[~bit_cnt]; - - default: - spi_do <= 0; - endcase - end - end -end - -reg b_wr2,b_wr3; -always @(negedge clk_sys) begin - b_wr3 <= b_wr2; - sd_buff_wr <= b_wr3; -end +reg [7:0] spi_data_in; +reg spi_data_ready = 0; // SPI receiver always@(posedge SPI_SCK or posedge CONF_DATA0) begin + reg [6:0] sbuf; + reg [31:0] sd_lba_r; + reg drive_sel_r; if(CONF_DATA0) begin - b_wr2 <= 0; bit_cnt <= 0; byte_cnt <= 0; - sd_ack <= 0; - sd_ack_conf <= 0; - end else begin - b_wr2 <= 0; - - sbuf <= spi_dout[6:0]; + spi_data_out <= core_type; + end + else + begin bit_cnt <= bit_cnt + 1'd1; - if(bit_cnt == 5) begin - if (byte_cnt == 0) sd_buff_addr <= 0; - if((byte_cnt != 0) & (sd_buff_addr != 511)) sd_buff_addr <= sd_buff_addr + 1'b1; - if((byte_cnt == 1) & ((cmd == 8'h17) | (cmd == 8'h19))) sd_buff_addr <= 0; - end + sbuf <= {sbuf[5:0], SPI_DI}; // finished reading command byte if(bit_cnt == 7) begin + if(!byte_cnt) cmd <= {sbuf, SPI_DI}; + + spi_data_in <= {sbuf, SPI_DI}; + spi_data_ready <= ~spi_data_ready; if(~&byte_cnt) byte_cnt <= byte_cnt + 8'd1; - if(byte_cnt == 0) begin - cmd <= spi_dout; - - if(spi_dout == 8'h19) begin - sd_ack_conf <= 1; - sd_buff_addr <= 0; - end - if((spi_dout == 8'h17) || (spi_dout == 8'h18)) begin - sd_ack <= 1; - sd_buff_addr <= 0; - end - if(spi_dout == 8'h18) b_data <= sd_buff_din; - - mount_strobe <= 0; - - end else begin - case(cmd) - // buttons and switches - 8'h01: but_sw <= spi_dout; - 8'h02: joystick_0 <= spi_dout; - 8'h03: joystick_1 <= spi_dout; + spi_data_out <= 0; + case({(!byte_cnt) ? {sbuf, SPI_DI} : cmd}) + // reading config string + 8'h14: if(byte_cnt < STRLEN) spi_data_out <= conf_str[(STRLEN - byte_cnt - 1)<<3 +:8]; - // store incoming ps2 mouse bytes - 8'h04: begin - ps2_mouse_fifo[ps2_mouse_wptr] <= spi_dout; - ps2_mouse_wptr <= ps2_mouse_wptr + 1'd1; - end + // reading sd card status + 8'h16: if(byte_cnt == 0) begin + spi_data_out <= sd_cmd; + sd_lba_r <= sd_lba; + drive_sel_r <= drive_sel; + end else if (byte_cnt == 1) begin + spi_data_out <= drive_sel_r; + end else if(byte_cnt < 6) spi_data_out <= sd_lba_r[(5-byte_cnt)<<3 +:8]; - // store incoming ps2 keyboard bytes - 8'h05: begin - ps2_kbd_fifo[ps2_kbd_wptr] <= spi_dout; - ps2_kbd_wptr <= ps2_kbd_wptr + 1'd1; - end - - 8'h15: status[7:0] <= spi_dout; - - // send SD config IO -> FPGA - // flag that download begins - // sd card knows data is config if sd_dout_strobe is asserted - // with sd_ack still being inactive (low) - 8'h19, - // send sector IO -> FPGA - // flag that download begins - 8'h17: begin - sd_buff_dout <= spi_dout; - b_wr2 <= 1; - end + // reading sd card write data + 8'h18: spi_data_out <= sd_buff_din; + endcase + end + end +end - 8'h18: b_data <= sd_buff_din; +reg [31:0] ps2_key_raw = 0; +wire pressed = (ps2_key_raw[15:8] != 8'hf0); +wire extended = (~pressed ? (ps2_key_raw[23:16] == 8'he0) : (ps2_key_raw[15:8] == 8'he0)); - // joystick analog - 8'h1a: begin - // first byte is joystick index - if(byte_cnt == 1) stick_idx <= spi_dout[2:0]; - else if(byte_cnt == 2) begin - // second byte is x axis - if(stick_idx == 0) joystick_analog_0[15:8] <= spi_dout; - else if(stick_idx == 1) joystick_analog_1[15:8] <= spi_dout; - end else if(byte_cnt == 3) begin - // third byte is y axis - if(stick_idx == 0) joystick_analog_0[7:0] <= spi_dout; - else if(stick_idx == 1) joystick_analog_1[7:0] <= spi_dout; - end - end +// transfer to clk_sys domain +always@(posedge clk_sys) begin + reg old_ss1, old_ss2; + reg old_ready1, old_ready2; + reg [2:0] b_wr; + reg got_ps2 = 0; - // notify image selection - 8'h1c: mount_strobe <= 1; + old_ss1 <= CONF_DATA0; + old_ss2 <= old_ss1; + old_ready1 <= spi_data_ready; + old_ready2 <= old_ready1; + + sd_buff_wr <= b_wr[0]; + if(b_wr[2] && (~&sd_buff_addr)) sd_buff_addr <= sd_buff_addr + 1'b1; + b_wr <= (b_wr<<1); - // send image info - 8'h1d: if(byte_cnt<5) img_size[(byte_cnt-1)<<3 +:8] <= spi_dout; - - // status, 32bit version - 8'h1e: if(byte_cnt<5) status[(byte_cnt-1)<<3 +:8] <= spi_dout; - default: ; - endcase + if(old_ss2) begin + got_ps2 <= 0; + sd_ack <= 0; + sd_ack_conf <= 0; + sd_buff_addr <= 0; + if(got_ps2) begin + if(cmd == 4) ps2_mouse[24] <= ~ps2_mouse[24]; + if(cmd == 5) begin + ps2_key <= {~ps2_key[10], pressed, extended, ps2_key_raw[7:0]}; + if(ps2_key_raw == 'hE012E07C) ps2_key[9:0] <= 'h37C; // prnscr pressed + if(ps2_key_raw == 'h7CE0F012) ps2_key[9:0] <= 'h17C; // prnscr released + if(ps2_key_raw == 'hF014F077) ps2_key[9:0] <= 'h377; // pause pressed end end end + else + if(old_ready2 ^ old_ready1) begin + + if(cmd == 8'h18 && ~&sd_buff_addr) sd_buff_addr <= sd_buff_addr + 1'b1; + + if(byte_cnt < 2) begin + + if (cmd == 8'h19) sd_ack_conf <= 1; + if((cmd == 8'h17) || (cmd == 8'h18)) sd_ack <= 1; + mount_strobe <= 0; + + if(cmd == 5) ps2_key_raw <= 0; + end else begin + + case(cmd) + // buttons and switches + 8'h01: but_sw <= spi_data_in; + 8'h02: joystick_0 <= spi_data_in; + 8'h03: joystick_1 <= spi_data_in; + + // store incoming ps2 mouse bytes + 8'h04: begin + got_ps2 <= 1; + case(byte_cnt) + 2: ps2_mouse[7:0] <= spi_data_in; + 3: ps2_mouse[15:8] <= spi_data_in; + 4: ps2_mouse[23:16] <= spi_data_in; + endcase + ps2_mouse_fifo[ps2_mouse_wptr] <= spi_data_in; + ps2_mouse_wptr <= ps2_mouse_wptr + 1'd1; + end + + // store incoming ps2 keyboard bytes + 8'h05: begin + got_ps2 <= 1; + ps2_key_raw[31:0] <= {ps2_key_raw[23:0], spi_data_in}; + ps2_kbd_fifo[ps2_kbd_wptr] <= spi_data_in; + ps2_kbd_wptr <= ps2_kbd_wptr + 1'd1; + end + + 8'h15: status[7:0] <= spi_data_in; + + // send SD config IO -> FPGA + // flag that download begins + // sd card knows data is config if sd_dout_strobe is asserted + // with sd_ack still being inactive (low) + 8'h19, + // send sector IO -> FPGA + // flag that download begins + 8'h17: begin + sd_buff_dout <= spi_data_in; + b_wr <= 1; + end + + // joystick analog + 8'h1a: begin + // first byte is joystick index + if(byte_cnt == 2) stick_idx <= spi_data_in[2:0]; + else if(byte_cnt == 3) begin + // second byte is x axis + if(stick_idx == 0) joystick_analog_0[15:8] <= spi_data_in; + else if(stick_idx == 1) joystick_analog_1[15:8] <= spi_data_in; + end else if(byte_cnt == 4) begin + // third byte is y axis + if(stick_idx == 0) joystick_analog_0[7:0] <= spi_data_in; + else if(stick_idx == 1) joystick_analog_1[7:0] <= spi_data_in; + end + end + + // notify image selection + 8'h1c: mount_strobe[spi_data_in[0]] <= 1; + + // send image info + 8'h1d: if(byte_cnt<6) img_size[(byte_cnt-2)<<3 +:8] <= spi_data_in; + + // status, 32bit version + 8'h1e: if(byte_cnt<6) status[(byte_cnt-2)<<3 +:8] <= spi_data_in; + default: ; + endcase + end + end end @@ -417,6 +449,8 @@ localparam UIO_FILE_TX = 8'h53; localparam UIO_FILE_TX_DAT = 8'h54; localparam UIO_FILE_INDEX = 8'h55; +reg rdownload = 0; + // data_io has its own SPI interface to the io controller always@(posedge SPI_SCK, posedge SPI_SS2) begin reg [6:0] sbuf; @@ -426,15 +460,10 @@ always@(posedge SPI_SCK, posedge SPI_SS2) begin if(SPI_SS2) cnt <= 0; else begin - rclk <= 0; - // don't shift in last bit. It is evaluated directly // when writing to ram if(cnt != 15) sbuf <= { sbuf[5:0], SPI_DI}; - // increase target address after write - if(rclk) addr <= addr + 1'd1; - // count 0-7 8-15 8-15 ... if(cnt < 15) cnt <= cnt + 1'd1; else cnt <= 8; @@ -446,18 +475,11 @@ always@(posedge SPI_SCK, posedge SPI_SS2) begin if((cmd == UIO_FILE_TX) && (cnt == 15)) begin // prepare if(SPI_DI) begin - case(ioctl_index) - 0: addr <= 'h080000; // BOOT ROM - 'h01: addr <= 'h000100; // ROM file - 'h41: addr <= 'h000100; // COM file - 'h81: addr <= 'h000000; // C00 file - 'hC1: addr <= 'h010000; // EDD file - default: addr <= 'h100000; // FDD file - endcase - ioctl_download <= 1; + addr <= 25'h080000; + rdownload <= 1; end else begin addr_w <= addr; - ioctl_download <= 0; + rdownload <= 0; end end @@ -465,7 +487,8 @@ always@(posedge SPI_SCK, posedge SPI_SS2) begin if((cmd == UIO_FILE_TX_DAT) && (cnt == 15)) begin addr_w <= addr; data_w <= {sbuf, SPI_DI}; - rclk <= 1; + addr <= addr + 1'd1; + rclk <= ~rclk; end // expose file (menu) index @@ -473,60 +496,24 @@ always@(posedge SPI_SCK, posedge SPI_SS2) begin end end -reg [24:0] erase_mask; -wire [24:0] next_erase = (ioctl_addr + 1'd1) & erase_mask; - +// transfer to ioctl_clk domain. +// ioctl_index is set before ioctl_download, so it's stable already always@(posedge clk_sys) begin reg rclkD, rclkD2; - reg old_force = 0; - reg [5:0] erase_clk_div; - reg [24:0] end_addr; - reg erase_trigger = 0; - rclkD <= rclk; - rclkD2 <= rclkD; - ioctl_wr <= 0; + if(ioctl_ce) begin + ioctl_download <= rdownload; - if(rclkD & ~rclkD2) begin - ioctl_dout <= data_w; - ioctl_addr <= addr_w; - ioctl_wr <= 1; - end + rclkD <= rclk; + rclkD2 <= rclkD; + ioctl_wr <= 0; - if(ioctl_download) begin - old_force <= 0; - ioctl_erasing <= 0; - erase_trigger <= (ioctl_index == 1); - end else begin - - old_force <= ioctl_force_erase; - - // start erasing - if(erase_trigger) begin - erase_trigger <= 0; - erase_mask <= 'hFFFF; - end_addr <= 'h0100; - erase_clk_div <= 1; - ioctl_erasing <= 1; - end else if((ioctl_force_erase & ~old_force)) begin - erase_trigger <= 0; - ioctl_addr <= 'h1FFFFFF; - erase_mask <= 'h1FFFFFF; - end_addr <= 'h0050000; - erase_clk_div <= 1; - ioctl_erasing <= 1; - end else if(ioctl_erasing) begin - erase_clk_div <= erase_clk_div + 1'd1; - if(!erase_clk_div) begin - if(next_erase == end_addr) ioctl_erasing <= 0; - else begin - ioctl_addr <= next_erase; - ioctl_dout <= 0; - ioctl_wr <= 1; - end - end + if(rclkD != rclkD2) begin + ioctl_dout <= data_w; + ioctl_addr <= addr_w; + ioctl_wr <= 1; end end end -endmodule \ No newline at end of file +endmodule \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv b/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv index 271c2fa0..3fdf77ec 100644 --- a/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv +++ b/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv @@ -44,7 +44,7 @@ wire clk_12p5; wire locked; wire scandoubler_disable; wire ypbpr; -wire ps2_kbd_clk, ps2_kbd_data; +wire [10:0] PS2_KEY; wire [31:0] status; wire [1:0] buttons; wire [1:0] switches; @@ -84,8 +84,7 @@ mist_io #(.STRLEN(($size(CONF_STR)>>3))) mist_io .scandoubler_disable(scandoubler_disable), .ypbpr(ypbpr), .status(status), - .ps2_kbd_clk(ps2_kbd_clk), - .ps2_kbd_data(ps2_kbd_data) + .ps2_key(PS2_KEY) ); video_mixer #(.LINE_LENGTH(480), .HALF_DEPTH(1)) video_mixer @@ -128,8 +127,7 @@ assign AUDIO_R = AUDIO_L; mz80k_top mz80k_top( .CLK_50MHZ(clk_sys), .RESET(reset), - .PS2_CLK(ps2_kbd_clk), - .PS2_DATA(ps2_kbd_data), + .PS2_KEY(PS2_KEY), .VGA_RED(r), .VGA_GREEN(g), .VGA_BLUE(b), @@ -138,13 +136,5 @@ mz80k_top mz80k_top( .TURBO(status[2]), .TP1(audio) ); - -keyboard keyboard( - .clk(clk_sys), - .reset(0), - .ps2_kbd_clk(ps2_kbd_clk), - .ps2_kbd_data(ps2_kbd_data), - .joystick(kb_ext) - ); endmodule \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/mz80k_top.v b/Sharp - MZ-80K_MiST/rtl/mz80k_top.v index 17e885c2..88686f8b 100644 --- a/Sharp - MZ-80K_MiST/rtl/mz80k_top.v +++ b/Sharp - MZ-80K_MiST/rtl/mz80k_top.v @@ -2,8 +2,7 @@ module mz80k_top( input CLK_50MHZ, input RESET, - input PS2_CLK, - input PS2_DATA, + input [10:0] PS2_KEY, output VGA_RED, output VGA_GREEN, output VGA_BLUE, @@ -42,22 +41,27 @@ module mz80k_top( wire start, waitreq; // I/O - wire io_e000 = (cpu_addr[15:0] == 16'he000) & mreq; - wire io_e001 = (cpu_addr[15:0] == 16'he001) & mreq; + /* CS_E0_n <= '0' when CS_E_n='0' and T80_A16(11 downto 2)="0000000000" -- 8255 + else '1'; + CS_E1_n <= '0' when CS_E_n='0' and T80_A16(11 downto 2)="0000000001" -- 8253 + else '1'; + CS_E2_n <= '0' when CS_E_n='0' and T80_A16(11 downto 2)="0000000010" -- LS367 + else '1'; + CS_ESWP_n <= '0' when CONFIG(MZ_A)='1' and CS_E_n='0' and T80_RD_n='0' and T80_A16(11 downto 5)="0000000" -- ROM/RAM Swap + else '1';*/ + //wire io_e000 = (cpu_addr[15:0] == 16'he000) & mreq; + //wire io_e001 = (cpu_addr[15:0] == 16'he001) & mreq; wire io_e002 = (cpu_addr[15:0] == 16'he002) & mreq; wire io_8253 = (cpu_addr[15:2] == 14'b11100000000001) & mreq; + wire io_8255 = (cpu_addr[15:2] == 14'b11100000000000) & mreq; wire io_e008 = (cpu_addr[15:0] == 16'he008) & mreq; - reg [3:0] key_no; reg speaker_enable; always @(posedge CLK_CPU or posedge RESET) begin if (RESET) begin - key_no <= 0; speaker_enable <= 0; end else begin - if (io_e000 & wr ) begin - key_no <= cpu_data_out[3:0]; - end else if (io_e008 & wr ) begin + if (io_e008 & wr ) begin speaker_enable <= cpu_data_out[0]; end end @@ -103,18 +107,44 @@ module mz80k_top( .out2(out2) ); -// KEYBOARD - wire [7:0] ps2_dat; - ps2 ps2_1( - .clk(CLK_50MHZ), - .reset(RESET), - .ps2_clk(PS2_CLK), - .ps2_data(PS2_DATA), - .cs(io_e001 & rd), - .rd(rd), - .addr(key_no), - .data(ps2_dat) - ); + wire [7:0] i8255_data_out; + wire [7:0] i8255_PA_I; + wire [7:0] i8255_PA_O; + wire [7:0] i8255_PB_I; + wire [7:0] i8255_PB_O; + wire [7:0] i8255_PC_I; + wire [7:0] i8255_PC_O; + +i8255 i8255_1( + .RESET(RESET), + .CLK(CLK_CPU), + .ENA(1'b1), + .ADDR(cpu_addr[1:0]), + .DI(cpu_data_out), + .DO(i8255_data_out), + .CS_n(~io_8255), + .RD_n(~rd), + .WR_n(~wr), + .PA_I(i8255_PA_I), + .PA_O(i8255_PA_O), + .PA_O_OE_n(), + .PB_I(i8255_PB_I), + .PB_O(i8255_PB_O), + .PB_O_OE_n(), + .PC_I(i8255_PC_I), + .PC_O(i8255_PC_O), + .PC_O_OE_n() + ); + +keymatrix keymatrix( + .RST_n(~RESET), + .PA(i8255_PA_O[3:0]), + .PB(i8255_PB_I), + .STALL(i8255_PA_O[4]), + .PS2_KEY(PS2_KEY), + .KEY_BANK(3'b000), + .CKCPU(CLK_CPU) + ); // VGA wire [11:0] vga_addr; @@ -172,9 +202,9 @@ module mz80k_top( assign vram_wr = busack ? 1'b0 : wr; // Memory assign cpu_data_in = - ( io_e001 & rd ) ? ps2_dat : ( io_e002 & rd ) ? {VGA_VSYNC, clk_count[24], 6'b0000000} : ( io_8253 & rd ) ? i8253_data_out : + ( io_8255 & rd ) ? i8255_data_out : ( io_e008 & rd ) ? {7'b0000000, clk_count[19]} : // MUSIC���Ȃǂ�WAIT�ŏd�v (vram_select & rd) ? vram_data : (ram_select & rd) ? ram_data_out: 8'hzz; diff --git a/Sharp - MZ-80K_MiST/rtl/ps2.v b/Sharp - MZ-80K_MiST/rtl/ps2.v deleted file mode 100644 index 44d96d57..00000000 --- a/Sharp - MZ-80K_MiST/rtl/ps2.v +++ /dev/null @@ -1,283 +0,0 @@ -module ps2(clk, reset, - ps2_clk, ps2_data, - cs, rd, addr, data); - - input clk,reset; - input ps2_clk, ps2_data; - input cs, rd; - input [7:0] addr; - output [7:0] data; - - wire clk, reset; - wire ps2_clk, ps2_data; - wire cs, rd; - wire [7:0] addr; - reg [7:0] data; - - reg [7:0]key_tbl0 = 8'b11111111, - key_tbl1 = 8'b11111111, - key_tbl2 = 8'b11111111, - key_tbl3 = 8'b11111111, - key_tbl4 = 8'b11111111, - key_tbl5 = 8'b11111111, - key_tbl6 = 8'b11111111, - key_tbl7 = 8'b11111111, - key_tbl8 = 8'b11111111, - key_tbl9 = 8'b11111111, - key_tbla = 8'b11111111, - key_tblb = 8'b11111111, - key_tblc = 8'b11111111, - key_tbld = 8'b11111111, - key_tble = 8'b11111111; - reg key_f0 = 1'b0; - reg key_e0 = 1'b0; - - // - // I/O(0-9) read - // - always @(posedge clk ) begin - if ( cs & rd ) begin - begin - case (addr[3:0]) - 4'h0: data <= key_tbl0; - 4'h1: data <= key_tbl1; - 4'h2: data <= key_tbl2; - 4'h3: data <= key_tbl3; - 4'h4: data <= key_tbl4; - 4'h5: data <= key_tbl5; - 4'h6: data <= key_tbl6; - 4'h7: data <= key_tbl7; - 4'h8: data <= key_tbl8; - 4'h9: data <= key_tbl9; - 4'ha: data <= key_tbla; - 4'hb: data <= key_tblb; - 4'hc: data <= key_tblc; - 4'hd: data <= key_tbld; - 4'he: data <= key_tble; - default: data <= 8'hzz; - endcase - end - end - end - - // - // PS/2“ü—͏ˆ—ŽÀ‘• - // - wire dten; - wire [7:0] kdata; - ps2_recieve ps2_recieve1(.clk(clk), .reset(reset), - .ps2_clk(ps2_clk), .ps2_data(ps2_data), - .dten(dten), .kdata(kdata)); - - - // - // - // - always @(posedge clk or posedge reset) begin - if( reset ) begin - key_e0 <= 1'b0; - key_f0 <= 1'b0; - key_tbl0 <= 8'b11111111; - key_tbl1 <= 8'b11111111; - key_tbl2 <= 8'b11111111; - key_tbl3 <= 8'b11111111; - key_tbl4 <= 8'b11111111; - key_tbl5 <= 8'b11111111; - key_tbl6 <= 8'b11111111; - key_tbl7 <= 8'b11111111; - key_tbl8 <= 8'b11111111; - key_tbl9 <= 8'b11111111; - end else if ( dten ) begin - case ( kdata ) - 8'h70: begin - if ( key_e0 ) begin - key_tbl8[1] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // INS (E0) - end else begin - key_tbl1[4] <= key_f0; key_f0 <= 1'b0; // 0 - end - end - 8'h69: begin - if ( key_e0 ) begin - key_f0 <= 1'b0; key_e0 <= 1'b0; // END (E0) - end else begin - key_tbl0[0] <= key_f0; key_f0 <= 1'b0; // 1 - end - end - 8'h72: begin - if ( key_e0 ) begin - key_tbl9[2] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // DOWN (E0) - end else begin - key_tbl1[0] <= key_f0; key_f0 <= 1'b0; // 2 - end - end - 8'h7A: begin - if ( key_e0 ) begin - key_tble[0] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // PGDN (E0) - end else begin - key_tbl0[1] <= key_f0; key_f0 <= 1'b0; // 3 - end - end - 8'h6B: begin - if ( key_e0 ) begin - key_tbl8[3] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // LEFT (E0) - end else begin - key_tbl1[1] <= key_f0; key_f0 <= 1'b0; // 4 - end - end - 8'h73: begin key_tbl0[2] <= key_f0; key_f0 <= 1'b0; end // 5 - 8'h74: begin - if ( key_e0 ) begin - key_tbl8[3] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // RIGHT (E0) - end else begin - key_tbl1[2] <= key_f0; key_f0 <= 1'b0; // 6 - end - end - 8'h6C: begin - if ( key_e0 ) begin - key_tbl8[0] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // HOME (E0) - end else begin - key_tbl0[3] <= key_f0; key_f0 <= 1'b0; // 7 - end - end - 8'h75: begin - if ( key_e0 ) begin - key_tbl9[2] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // UP (E0) - end else begin - key_tbl1[3] <= key_f0; key_f0 <= 1'b0; // 8 - end - end - 8'h7D: begin - if ( key_e0 ) begin - key_tble[0] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // PGUP (E0) - end else begin - key_tbl0[4] <= key_f0; key_f0 <= 1'b0; // 9 - end - end - 8'h7C: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // * - 8'h79: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // + - 8'h7B: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // = - 8'h7C: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // , - 8'h71: begin - if ( key_e0 ) begin - key_tbl8[1] <= key_f0; key_tblc[7] <= key_f0; key_f0 <= 1'b0; key_e0 <= 1'b0; // DEL (E0) - end else begin - key_tble[0] <= key_f0; key_f0 <= 1'b0; // . - end - end - 8'h71: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // . - 8'h5A: begin key_tbl8[4] <= key_f0; key_f0 <= 1'b0; end // RET E0 - 8'h54: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // @ - 8'h1C: begin key_tbl4[0] <= key_f0; key_f0 <= 1'b0; end // A - 8'h32: begin key_tbl6[2] <= key_f0; key_f0 <= 1'b0; end // B - 8'h21: begin key_tbl6[1] <= key_f0; key_f0 <= 1'b0; end // C - 8'h23: begin key_tbl4[1] <= key_f0; key_f0 <= 1'b0; end // D - 8'h24: begin key_tbl2[1] <= key_f0; key_f0 <= 1'b0; end // E - 8'h2B: begin key_tbl5[1] <= key_f0; key_f0 <= 1'b0; end // F - 8'h34: begin key_tbl4[2] <= key_f0; key_f0 <= 1'b0; end // G - 8'h33: begin key_tbl5[2] <= key_f0; key_f0 <= 1'b0; end // H - 8'h43: begin key_tbl3[3] <= key_f0; key_f0 <= 1'b0; end // I - 8'h3B: begin key_tbl4[3] <= key_f0; key_f0 <= 1'b0; end // J - 8'h42: begin key_tbl5[3] <= key_f0; key_f0 <= 1'b0; end // K - 8'h4B: begin key_tbl4[4] <= key_f0; key_f0 <= 1'b0; end // L - 8'h3A: begin key_tbl6[3] <= key_f0; key_f0 <= 1'b0; end // M - 8'h31: begin key_tbl7[2] <= key_f0; key_f0 <= 1'b0; end // N - 8'h44: begin key_tbl2[4] <= key_f0; key_f0 <= 1'b0; end // O - 8'h4D: begin key_tbl3[4] <= key_f0; key_f0 <= 1'b0; end // P - 8'h15: begin key_tbl2[0] <= key_f0; key_f0 <= 1'b0; end // Q - 8'h2D: begin key_tbl3[1] <= key_f0; key_f0 <= 1'b0; end // R - 8'h1B: begin key_tbl5[0] <= key_f0; key_f0 <= 1'b0; end // S - 8'h2C: begin key_tbl2[2] <= key_f0; key_f0 <= 1'b0; end // T - 8'h3C: begin key_tbl2[3] <= key_f0; key_f0 <= 1'b0; end // U - 8'h2A: begin key_tbl7[1] <= key_f0; key_f0 <= 1'b0; end // V - 8'h1D: begin key_tbl3[0] <= key_f0; key_f0 <= 1'b0; end // W - 8'h22: begin key_tbl7[0] <= key_f0; key_f0 <= 1'b0; end // X - 8'h35: begin key_tbl3[2] <= key_f0; key_f0 <= 1'b0; end // Y - 8'h1A: begin key_tbl6[0] <= key_f0; key_f0 <= 1'b0; end // Z - 8'h5B: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // [ - 8'h6A: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // \ - 8'h5D: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // ] - 8'h55: begin key_tbl5[5] <= key_f0; key_f0 <= 1'b0; end // ^ - 8'h4E: begin key_tbl2[5] <= key_f0; key_f0 <= 1'b0; end // = - 8'h45: begin key_tbl1[4] <= key_f0; key_f0 <= 1'b0; end // 0 - 8'h16: begin key_tbl0[0] <= key_f0; key_f0 <= 1'b0; end // 1 - 8'h1E: begin key_tbl1[0] <= key_f0; key_f0 <= 1'b0; end // 2 - 8'h26: begin key_tbl0[1] <= key_f0; key_f0 <= 1'b0; end // 3 - 8'h25: begin key_tbl1[1] <= key_f0; key_f0 <= 1'b0; end // 4 - 8'h2E: begin key_tbl0[2] <= key_f0; key_f0 <= 1'b0; end // 5 - 8'h36: begin key_tbl1[2] <= key_f0; key_f0 <= 1'b0; end // 6 - 8'h3D: begin key_tbl0[3] <= key_f0; key_f0 <= 1'b0; end // 7 - 8'h3E: begin key_tbl1[3] <= key_f0; key_f0 <= 1'b0; end // 8 - 8'h46: begin key_tbl0[4] <= key_f0; key_f0 <= 1'b0; end // 9 - 8'h52: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // : - 8'h4C: begin key_tbl5[4] <= key_f0; key_f0 <= 1'b0; end // ; - 8'h41: begin key_tbl7[3] <= key_f0; key_f0 <= 1'b0; end // < , - 8'h49: begin key_tbl6[4] <= key_f0; key_f0 <= 1'b0; end // > . - 8'h4A: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // ? - 8'h51: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // _ - 8'h11: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // GRPH - 8'h13: begin key_tbl6[5] <= key_f0; key_f0 <= 1'b0; end // ƒJƒi - 8'h12: begin key_tbl8[0] <= ( key_f0 | key_e0 ) & (key_tbl8[0] | ~key_e0 ); key_f0 <= 1'b0; key_e0 <= 1'b0; end // SHIFT - 8'h59: begin key_tbl8[5] <= ( key_f0 | key_e0 ) & (key_tbl8[5] | ~key_e0 ); key_f0 <= 1'b0; key_e0 <= 1'b0; end // SHIFT - 8'h14: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // CTRL - 8'h77: begin key_tbl9[3] <= key_f0; key_f0 <= 1'b0; end // STOP (E1) - 8'h7E: begin key_tbl9[3] <= key_f0; key_f0 <= 1'b0; end // STOP (SCROLL KEY) - 8'h05: begin key_tble[0] <= key_f0; key_tblc[0] <= key_f0; key_f0 <= 1'b0; end // F1 - 8'h06: begin key_tble[0] <= key_f0; key_tblc[1] <= key_f0; key_f0 <= 1'b0; end // F2 - 8'h04: begin key_tble[0] <= key_f0; key_tblc[2] <= key_f0; key_f0 <= 1'b0; end // F3 - 8'h0C: begin key_tble[0] <= key_f0; key_tblc[3] <= key_f0; key_f0 <= 1'b0; end // F4 - 8'h03: begin key_tble[0] <= key_f0; key_tblc[4] <= key_f0; key_f0 <= 1'b0; end // F5 - 8'h29: begin key_tbl9[1] <= key_f0; key_tbld[7] <= key_f0; key_f0 <= 1'b0; end // SPACE - 8'h76: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // ESC - 8'h0d: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // TAB - 8'h58: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // CAPS - 8'h66: begin key_tbl8[1] <= key_f0; key_f0 <= 1'b0; end // BS - 8'h0b: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // F6 - 8'h83: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // F7 - 8'h0a: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // F8 - 8'h01: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // F9 - 8'h09: begin key_tble[0] <= key_f0; key_f0 <= 1'b0; end // F10 - 8'he0: key_e0 <= 1'b1; - 8'hf0: key_f0 <= 1'b1; - default: begin key_e0 <= 1'b0; key_f0 <= 1'b0; end - endcase - end - end - -endmodule - -module ps2_recieve(clk, reset, - ps2_clk, ps2_data, - dten, kdata); - - input clk,reset; - input ps2_clk, ps2_data; - output dten; - output [7:0] kdata; - - wire clk, reset; - wire ps2_clk, ps2_data; - reg dten; - reg [7:0] kdata; - - reg [10:0] key_data; - reg [3:0] clk_data; - - always @(posedge clk or posedge reset) begin - if( reset ) begin - key_data <= 11'b11111111111; - dten <= 1'b0; - end else begin - clk_data <= {clk_data[2:0], ps2_clk}; - if ( clk_data == 4'b0011 ) - key_data <= {ps2_data, key_data[10:1]}; - if ( !key_data[0] & key_data[10] ) begin - dten <= 1'b1; - kdata <= key_data[8:1]; - key_data <= 11'b11111111111; - end else - dten <= 1'b0; - end - - end - -endmodule diff --git a/Sharp - MZ-80K_MiST/rtl/ps2_recieve.v b/Sharp - MZ-80K_MiST/rtl/ps2_recieve.v deleted file mode 100644 index 3e3db386..00000000 --- a/Sharp - MZ-80K_MiST/rtl/ps2_recieve.v +++ /dev/null @@ -1,116 +0,0 @@ -module ps2_recieve( - input clk, - input reset, - input ps2_clk, - input ps2_data, - output dten, - output [7:0] kdata); - - reg [10:0] key_data; - reg [3:0] clk_data; - - always @(posedge clk or posedge reset) begin - if( reset ) begin - key_data <= 11'b11111111111; - dten <= 1'b0; - end else begin - clk_data <= {clk_data[2:0], ps2_clk}; - if ( clk_data == 4'b0011 ) - key_data <= {ps2_data, key_data[10:1]}; - if ( !key_data[0] & key_data[10] ) begin - dten <= 1'b1; - kdata <= key_data[8:1]; - key_data <= 11'b11111111111; - end else - dten <= 1'b0; - end - - end - -endmodule - - - - -module keyboard ( - input clock, - input ps2_data, - input ps2_clk, - output reg [7:0] led_g -); - - -parameter idle = 2'b01; -parameter receive = 2'b10; -parameter ready = 2'b11; - - -reg [1:0] state=idle; -reg [15:0] rxtimeout=16'b0000000000000000; -reg [10:0] rxregister=11'b11111111111; -reg [1:0] datasr=2'b11; -reg [1:0] clksr=2'b11; -reg [7:0] rxdata; - - -reg datafetched; -reg rxactive; -reg dataready; - - -always @(posedge clock ) -begin - if(datafetched==1) - led_g <=rxdata; -end - -always @(posedge clock ) -begin - rxtimeout<=rxtimeout+1; - datasr <= {datasr[0],ps2_data}; - clksr <= {clksr[0],ps2_clk}; - - - if(clksr==2'b10) - rxregister<= {datasr[1],rxregister[10:1]}; - - - case (state) - idle: - begin - rxregister <=11'b11111111111; - rxactive <=0; - dataready <=0; - rxtimeout <=16'b0000000000000000; - if(datasr[1]==0 && clksr[1]==1) - begin - state<=receive; - rxactive<=1; - end - end - - receive: - begin - if(rxtimeout==50000) - state<=idle; - else if(rxregister[0]==0) - begin - dataready<=1; - rxdata<=rxregister[8:1]; - state<=ready; - datafetched<=1; - end - end - - ready: - begin - if(datafetched==1) - begin - state <=idle; - dataready <=0; - rxactive <=0; - end - end - endcase -end -endmodule diff --git a/Sharp - MZ-80K_MiST/rtl/ps2n.sv b/Sharp - MZ-80K_MiST/rtl/ps2n.sv deleted file mode 100644 index 5dd29436..00000000 --- a/Sharp - MZ-80K_MiST/rtl/ps2n.sv +++ /dev/null @@ -1,93 +0,0 @@ -module ps2n( - input clk, - input reset, - input ps2_clk, - input ps2_data, - input cs, - input rd, - input [7:0] addr, - output [7:0] data); - - reg [7:0]key_tbl0 = 8'b11111111, - key_tbl1 = 8'b11111111, - key_tbl2 = 8'b11111111, - key_tbl3 = 8'b11111111, - key_tbl4 = 8'b11111111, - key_tbl5 = 8'b11111111, - key_tbl6 = 8'b11111111, - key_tbl7 = 8'b11111111, - key_tbl8 = 8'b11111111, - key_tbl9 = 8'b11111111, - key_tbla = 8'b11111111, - key_tblb = 8'b11111111, - key_tblc = 8'b11111111, - key_tbld = 8'b11111111, - key_tble = 8'b11111111; - - - - - always @(posedge clk ) begin - if ( cs & rd ) begin - begin - case (addr[3:0]) - 4'h0: data <= key_tbl0; - 4'h1: data <= key_tbl1; - 4'h2: data <= key_tbl2; - 4'h3: data <= key_tbl3; - 4'h4: data <= key_tbl4; - 4'h5: data <= key_tbl5; - 4'h6: data <= key_tbl6; - 4'h7: data <= key_tbl7; - 4'h8: data <= key_tbl8; - 4'h9: data <= key_tbl9; - 4'ha: data <= key_tbla; - 4'hb: data <= key_tblb; - 4'hc: data <= key_tblc; - 4'hd: data <= key_tbld; - 4'he: data <= key_tble; - default: data <= 8'hzz; - endcase - end - end - end - - always @(posedge clk ) begin - key_tbl0 <= 8'b11111111; - key_tbl1 <= 8'b11111111; - key_tbl2 <= 8'b11111111; - key_tbl3 <= 8'b11111111; - key_tbl4 <= 8'b11111111; - key_tbl5 <= 8'b11111111; - key_tbl6 <= 8'b11111111; - key_tbl7 <= 8'b11111111; - key_tbl8 <= 8'b11111111; - key_tbl9 <= 8'b11111111; - case ( kdata ) - 8'h1C: begin key_tbl4[0] = 1'b0; end//A - 8'h32: begin key_tbl6[2] = 1'b0; end//B - default: begin end - endcase - end - - wire dten; - wire [7:0] kdata; - ps2_recieve ps2_recieve1( - .clk(clk), - .reset(reset), - .ps2_clk(ps2_clk), - .ps2_data(ps2_data), - .dten(dten), - .kdata(kdata) - ); - - - - - - - - - - -endmodule \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/roms/combined_keymap.mif b/Sharp - MZ-80K_MiST/rtl/roms/combined_keymap.mif new file mode 100644 index 00000000..955a6b50 --- /dev/null +++ b/Sharp - MZ-80K_MiST/rtl/roms/combined_keymap.mif @@ -0,0 +1,102 @@ +DEPTH = 1536; +WIDTH = 8; +ADDRESS_RADIX = HEX; +DATA_RADIX = HEX; +CONTENT BEGIN +0000: ff ff ff ff ff ff ff 86 ff 37 ff ff ff 90 93 ff; +0010: ff ff 80 ff ff 20 00 ff ff ff 60 50 40 30 10 ff; +0020: ff 61 70 41 21 11 01 ff ff 91 71 51 22 31 02 ff; +0030: ff 72 62 52 42 32 12 ff ff ff 63 43 23 03 13 ff; +0040: ff 73 53 33 24 14 04 ff ff 64 74 44 54 34 05 ff; +0050: ff 95 45 ff 25 15 ff ff 81 85 84 55 ff 75 ff ff; +0060: ff ff ff ff ff ff 65 ff ff 66 35 46 26 ff ff ff; +0070: 96 87 76 56 47 36 ff 06 77 57 67 17 07 27 ff ff; +0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +00c0: ff ff ff ff ff ff ff ff ff ff 16 ff ff ff ff ff; +00d0: ff ff ff ff ff ff ff ff ff ff 97 ff ff ff ff ff; +00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ef; +00f0: ff 81 92 ff 83 ff ff ff ff ff ff ff ff ff ff ff; +0100: ff ff ff ff ff ff ff 86 ff 37 ff ff ff 90 93 ff; +0110: ff ff 80 ff ff 20 00 ff ff ff 60 50 40 30 10 ff; +0120: ff 61 70 41 21 11 01 ff ff 91 71 51 22 31 02 ff; +0130: ff 72 62 52 42 32 12 ff ff ff 63 43 23 03 13 ff; +0140: ff 73 53 33 24 14 04 ff ff 64 74 44 54 34 05 ff; +0150: ff 95 45 ff 25 15 ff ff 81 85 84 55 ff 75 ff ff; +0160: ff ff ff ff ff ff 65 ff ff 66 35 46 26 ff ff ff; +0170: 96 87 76 56 47 36 ff 06 77 57 67 17 07 27 ff ff; +0180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +01a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +01b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +01c0: ff ff ff ff ff ff ff ff ff ff 16 ff ff ff ff ff; +01d0: ff ff ff ff ff ff ff ff ff ff 97 ff ff ff ff ff; +01e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ef; +01f0: ff 81 92 ff 83 ff ff ff ff ff ff ff ff ff ff ff; +0200: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0210: ff ff 00 ff 27 14 16 ff ff ff 10 22 13 15 17 ff; +0220: ff 20 21 23 24 27 26 ff ff 40 31 32 34 25 36 ff; +0230: ff 41 30 42 33 35 37 ff ff ff 50 43 44 46 47 ff; +0240: ff 51 52 45 54 57 56 ff ff 60 70 53 63 55 67 ff; +0250: ff ff 62 ff 65 66 ff ff 11 07 73 72 64 76 ff ff; +0260: ff ff ff ff ff ff 61 ff ff 8a ff 84 77 ff ff ff; +0270: 12 ff 74 85 75 a7 ff ff ff 97 92 95 90 96 ff ff; +0280: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0290: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +02a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +02b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +02c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +02d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +02e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +02f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0300: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0310: ff ff 00 ff 27 14 16 ff ff ff 10 22 13 15 17 ff; +0320: ff 20 21 23 24 27 26 ff ff 40 31 32 34 25 36 ff; +0330: ff 41 30 42 33 35 37 ff ff ff 50 43 44 46 47 ff; +0340: ff 51 52 45 54 57 56 ff ff 60 70 53 63 55 67 ff; +0350: ff ff 62 ff 65 66 ff ff 11 07 73 72 64 76 ff ff; +0360: ff ff ff ff ff ff 61 ff ff 8a ff 84 77 ff ff ff; +0370: 12 ff 74 85 75 a7 ff ff ff 97 92 95 90 96 ff ff; +0380: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0390: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +03a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +03b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +03c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +03d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +03e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +03f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0400: ff ff ff 93 95 97 96 ff ff ff ff ff 94 ff ff ff; +0410: ff 06 80 ff a6 27 57 ff ff ff 16 25 47 21 56 ff; +0420: ff 45 20 44 43 45 55 ff ff 64 22 42 24 26 53 ff; +0430: ff 32 46 40 41 17 52 ff ff ff 33 36 23 51 50 ff; +0440: ff 61 35 37 31 63 62 ff ff 60 70 34 0a 30 75 ff; +0450: ff ff ff ff 14 65 ff ff 04 ff 00 13 ff 67 ff ff; +0460: ff ff ff ff ff ff ff ff ff ff ff 72 ff ff ff ff; +0470: 77 76 74 ff 73 75 87 ff ff ff ff ff ff ff ff ff; +0480: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0490: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +04a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +04b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +04c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +04d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +04e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +04f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +0500: ff 10 ff 04 02 00 01 ff ff 11 07 05 03 b0 b3 ff; +0510: ff 30 b2 ff ff 61 81 ff ff ff 72 63 41 67 82 ff; +0520: ff 43 70 44 45 84 83 ff ff 31 66 46 64 62 85 ff; +0530: ff 56 42 50 47 71 86 ff ff ff 55 52 65 87 90 ff; +0540: ff 77 53 51 57 80 91 ff ff 76 40 54 93 60 94 ff; +0550: ff 75 92 ff 95 73 ff ff b1 b2 32 96 ff a0 ff ff; +0560: ff ff ff ff ff ff 37 ff ff 21 74 24 27 ff ff ff; +0570: 20 15 22 25 26 12 ff ff ff 17 23 16 ff 13 ff ff; +0580: ff ff ff 06 ff ff ff ff ff ff ff ff ff ff ff ff; +0590: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +05a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +05b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff; +05c0: ff ff ff ff ff ff ff ff ff ff 14 ff ff ff ff ff; +05d0: ff ff ff ff ff ff ff ff ff ff 32 ff ff ff ff ff; +05e0: ff ff ff ff ff ff ff ff ff ff ff 35 ff ff ff ef; +05f0: a2 a3 34 ff 36 33 ff ff ff ff ff ff ff ff ff ff; +END; diff --git a/Sharp - MZ-80K_MiST/rtl/sprom.vhd b/Sharp - MZ-80K_MiST/rtl/sprom.vhd new file mode 100644 index 00000000..a81ac959 --- /dev/null +++ b/Sharp - MZ-80K_MiST/rtl/sprom.vhd @@ -0,0 +1,82 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY sprom IS + GENERIC + ( + init_file : string := ""; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END sprom; + + +ARCHITECTURE SYN OF sprom IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_aclr_a : STRING; + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_aclr_a => "NONE", + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "ROM", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + clock0 => clock, + address_a => address, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Sharp - MZ-80K_MiST/snapshot/mz80a_mist.rbf b/Sharp - MZ-80K_MiST/snapshot/mz80a_mist.rbf deleted file mode 100644 index b7b4274c0aa4203548d815c23c2677f1b5b74c64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247090 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 z 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�HYEH|ej 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