MSX1FPGA日本語キーボードレイアウト

1Chip MSXに代わるMSX1FPGAというのを見つけました。

https://github.com/fbelavenuto/msx1fpga

ところどころ荒削りですがまさに求めていたソースコードです。

http://msxvillage.fr/forum/topic.php?id=3236

とりいそぎ日本語キーボードレイアウトを作成してみました。

http://www.geocities.jp/parallel_computer_inc/JP.zip

VGA出力に以下で変更できます。

de1_top.vhd

(省略)
-- The MSX1
the_msx: entity work.msx
generic map (
	hw_id_g		=> 1,
	hw_txt_g	=> "DE-1 Board",
	hw_version_g	=> X"12",
	video_opt_g	=> 1,	                -- Dblscan
	ramsize_g	=> 8192
)
(省略)
vga_on_k_i		=> '1',
scanline_on_k_i         => extra_keys_s(1),	-- Scroll Lock

msx_de1.qsf

(省略)
# SLOT1/2 (DEXT0)
set_location_assignment PIN_H13 -to pSltClk
set_location_assignment PIN_G15 -to bus_addr_s[0]
set_location_assignment PIN_G16 -to bus_addr_s[1]
set_location_assignment PIN_F13 -to bus_addr_s[2]
set_location_assignment PIN_D14 -to bus_addr_s[3]
set_location_assignment PIN_D16 -to bus_addr_s[4]
set_location_assignment PIN_C18 -to bus_addr_s[5]
set_location_assignment PIN_C20 -to bus_addr_s[6]
set_location_assignment PIN_D20 -to bus_addr_s[7]
set_location_assignment PIN_F20 -to bus_addr_s[8]
set_location_assignment PIN_E18 -to bus_addr_s[9]
set_location_assignment PIN_G18 -to bus_addr_s[10]
set_location_assignment PIN_H17 -to bus_addr_s[11]
set_location_assignment PIN_H18 -to bus_addr_s[12]
set_location_assignment PIN_N21 -to bus_addr_s[13]
set_location_assignment PIN_N15 -to bus_addr_s[14]
set_location_assignment PIN_P18 -to bus_addr_s[15]
set_location_assignment PIN_E20 -to pSltDat[0]
set_location_assignment PIN_E19 -to pSltDat[1]
set_location_assignment PIN_G20 -to pSltDat[2]
set_location_assignment PIN_G17 -to pSltDat[3]
set_location_assignment PIN_J15 -to pSltDat[4]
set_location_assignment PIN_N22 -to pSltDat[5]
set_location_assignment PIN_P15 -to pSltDat[6]
set_location_assignment PIN_P17 -to pSltDat[7]
set_location_assignment PIN_G22 -to pSltInt_n
set_location_assignment PIN_J21 -to bus_iorq_n_s
set_location_assignment PIN_D19 -to bus_m1_n_s
set_location_assignment PIN_K21 -to bus_mreq_n_s
set_location_assignment PIN_K22 -to bus_rd_n_s
set_location_assignment PIN_J19 -to pSltRfsh_n
set_location_assignment PIN_J20 -to pSltRst_n
set_location_assignment PIN_J18 -to bus_wr_n_s
set_location_assignment PIN_C19 -to pSltBdir_n
set_location_assignment PIN_L18 -to pSltCs1_n
set_location_assignment PIN_L19 -to pSltCs2_n
set_location_assignment PIN_F12 -to pSltCs12_n
set_location_assignment PIN_E14 -to pSltRsv5
set_location_assignment PIN_F15 -to pSltRsv16
set_location_assignment PIN_E15 -to bus_sltsl2_n_s
set_location_assignment PIN_C14 -to bus_sltsl1_n_s
set_location_assignment PIN_C17 -to pSltSw1
set_location_assignment PIN_D15 -to pSltSw2
set_location_assignment PIN_K20 -to pSltWait_n
# Joystick (DEXT0)
#set_location_assignment PIN_A13 -to gpio0_io[0]
#set_location_assignment PIN_B13 -to gpio0_io[1]
#set_location_assignment PIN_A14 -to gpio0_io[2]
set_location_assignment PIN_B14 -to gpio0_io[3]
set_location_assignment PIN_A15 -to gpio0_io[4]
set_location_assignment PIN_B15 -to gpio0_io[5]
set_location_assignment PIN_A16 -to gpio0_io[6]
set_location_assignment PIN_B16 -to gpio0_io[7]
set_location_assignment PIN_A17 -to gpio0_io[8]
set_location_assignment PIN_B17 -to gpio0_io[9]
set_location_assignment PIN_A18 -to gpio0_io[10]
set_location_assignment PIN_B18 -to gpio0_io[11]
set_location_assignment PIN_A19 -to gpio0_io[12]
set_location_assignment PIN_B19 -to gpio0_io[13]
set_location_assignment PIN_A20 -to gpio0_io[14]
set_location_assignment PIN_B20 -to gpio0_io[15]
#set_location_assignment PIN_C21 -to gpio0_io[16]
#set_location_assignment PIN_C22 -to gpio0_io[17]
#set_location_assignment PIN_D21 -to gpio0_io[18]
#set_location_assignment PIN_D22 -to gpio0_io[19]
#set_location_assignment PIN_E21 -to gpio0_io[20]
#set_location_assignment PIN_E22 -to gpio0_io[21]
#set_location_assignment PIN_F21 -to gpio0_io[22]
#set_location_assignment PIN_F22 -to gpio0_io[23]
#set_location_assignment PIN_G21 -to gpio0_io[24]
#set_location_assignment PIN_G22 -to gpio0_io[25]
#set_location_assignment PIN_J21 -to gpio0_io[26]
#set_location_assignment PIN_J22 -to gpio0_io[27]
#set_location_assignment PIN_K21 -to gpio0_io[28]
#set_location_assignment PIN_K22 -to gpio0_io[29]
#set_location_assignment PIN_J19 -to gpio0_io[30]
#set_location_assignment PIN_J20 -to gpio0_io[31]
#set_location_assignment PIN_J18 -to gpio0_io[32]
#set_location_assignment PIN_K20 -to gpio0_io[33]
#set_location_assignment PIN_L19 -to gpio0_io[34]
#set_location_assignment PIN_L18 -to gpio0_io[35]
#set_location_assignment PIN_H12 -to gpio1_io[0]
#set_location_assignment PIN_H13 -to gpio1_io[1]
#set_location_assignment PIN_H14 -to gpio1_io[2]
#set_location_assignment PIN_G15 -to gpio1_io[3]
#set_location_assignment PIN_E14 -to gpio1_io[4]
#set_location_assignment PIN_E15 -to gpio1_io[5]
#set_location_assignment PIN_F15 -to gpio1_io[6]
#set_location_assignment PIN_G16 -to gpio1_io[7]
#set_location_assignment PIN_F12 -to gpio1_io[8]
#set_location_assignment PIN_F13 -to gpio1_io[9]
#set_location_assignment PIN_C14 -to gpio1_io[10]
#set_location_assignment PIN_D14 -to gpio1_io[11]
#set_location_assignment PIN_D15 -to gpio1_io[12]
#set_location_assignment PIN_D16 -to gpio1_io[13]
#set_location_assignment PIN_C17 -to gpio1_io[14]
#set_location_assignment PIN_C18 -to gpio1_io[15]
#set_location_assignment PIN_C19 -to gpio1_io[16]
#set_location_assignment PIN_C20 -to gpio1_io[17]
#set_location_assignment PIN_D19 -to gpio1_io[18]
#set_location_assignment PIN_D20 -to gpio1_io[19]
#set_location_assignment PIN_E20 -to gpio1_io[20]
#set_location_assignment PIN_F20 -to gpio1_io[21]
#set_location_assignment PIN_E19 -to gpio1_io[22]
#set_location_assignment PIN_E18 -to gpio1_io[23]
#set_location_assignment PIN_G20 -to gpio1_io[24]
#set_location_assignment PIN_G18 -to gpio1_io[25]
#set_location_assignment PIN_G17 -to gpio1_io[26]
#set_location_assignment PIN_H17 -to gpio1_io[27]
#set_location_assignment PIN_J15 -to gpio1_io[28]
#set_location_assignment PIN_H18 -to gpio1_io[29]
#set_location_assignment PIN_N22 -to gpio1_io[30]
#set_location_assignment PIN_N21 -to gpio1_io[31]
#set_location_assignment PIN_P15 -to gpio1_io[32]
#set_location_assignment PIN_N15 -to gpio1_io[33]
#set_location_assignment PIN_P17 -to gpio1_io[34]
#set_location_assignment PIN_P18 -to gpio1_io[35]
(省略)
set_global_assignment -name VHDL_FILE ../../src/audio/dcsg/psg_tone.vhd
set_global_assignment -name VHDL_FILE ../../src/audio/dcsg/psg_noise.vhd
set_global_assignment -name VHDL_FILE ../../src/audio/dcsg/psg.vhd
set_global_assignment -name SDC_FILE "../../src/syn-de1/timing.sdc"
set_global_assignment -name VHDL_FILE "../../src/syn-de1/de1_top.vhd"
set_global_assignment -name VHDL_FILE ../../src/msx.vhd
set_global_assignment -name VHDL_FILE ../../src/clocks.vhd
set_global_assignment -name VHDL_FILE ../../src/cpu/t80a.vhd
set_global_assignment -name VHDL_FILE ../../src/cpu/t80_reg.vhd
set_global_assignment -name VHDL_FILE ../../src/cpu/t80_pack.vhd
set_global_assignment -name VHDL_FILE ../../src/cpu/t80_mcode.vhd
set_global_assignment -name VHDL_FILE ../../src/cpu/t80_alu.vhd
set_global_assignment -name QIP_FILE "../../src/syn-de1/pll1.qip"
set_global_assignment -name VHDL_FILE ../../src/cpu/t80.vhd
set_global_assignment -name VHDL_FILE ../../src/ram/spram.vhd
set_global_assignment -name VHDL_FILE ../../src/ram/dpram.vhd
set_global_assignment -name VHDL_FILE ../../src/ram/ssdram.vhd
set_global_assignment -name VHDL_FILE ../../src/rom/ipl_rom.vhd
set_global_assignment -name VHDL_FILE ../../src/shared/seg7.vhd
set_global_assignment -name VHDL_FILE ../../src/audio/YM2149.vhd
set_global_assignment -name VHDL_FILE ../../src/audio/Audio_WM8731.vhd
set_global_assignment -name VHDL_FILE ../../src/audio/i2s_intf.vhd
set_global_assignment -name VHDL_FILE ../../src/audio/i2c_loader.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_core.vhd
set_global_assignment -name VHDL_FILE "../../src/video/vdp18/vdp18_pack-p.vhd"
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_sprite.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_pattern.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_hor_vert.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_ctrl.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_cpuio.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_col_mux.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_clk_gen.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_addr_mux.vhd
set_global_assignment -name VHDL_FILE ../../src/video/vdp18/vdp18_palette.vhd
set_global_assignment -name VHDL_FILE ../../src/video/dblscan.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/memoryctl.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/keyboard.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/ps2_iobase.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/keymap.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/pio.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/spi.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/swioports.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/exp_slot.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/romnextor.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/escci/escci.vhd
set_global_assignment -name VHDL_FILE ../../src/peripheral/escci/scc_wave.vhd
set_global_assignment -name VHDL_FILE ../../src/audio/jt51/jt51_wrapper.vhd
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_timers.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_sh.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_reg.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_pm.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_phrom.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_phinc_rom.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_pg.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_op.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_noise_lfsr.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_noise.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_mod.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_mmr.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_lin2exp.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_lfo_lfsr.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_lfo.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_kon.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_exprom.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_exp2lin.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_eg.v
set_global_assignment -name VERILOG_FILE ../../src/audio/jt51/jt51_acc.v
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top