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