diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST.rar b/Arcade_MiST/Atari Vector/LunarLander_MiST.rar new file mode 100644 index 00000000..756899d5 Binary files /dev/null and b/Arcade_MiST/Atari Vector/LunarLander_MiST.rar differ diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/LunarLander.qsf b/Arcade_MiST/Atari Vector/LunarLander_MiST/LunarLander.qsf index 52ac2de8..b5e7c515 100644 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/LunarLander.qsf +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/LunarLander.qsf @@ -192,20 +192,11 @@ set_global_assignment -name VHDL_FILE rtl/llander.vhd set_global_assignment -name VHDL_FILE rtl/llander_vg.vhd set_global_assignment -name VHDL_FILE rtl/llander_ram.vhd set_global_assignment -name VHDL_FILE rtl/llander_dw.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_VEC_ROM_2.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_VEC_ROM_1.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_VEC_ROM_0.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_PROG_ROM_3.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_PROG_ROM_2.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_PROG_ROM_1.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_PROG_ROM_0.vhd -set_global_assignment -name VHDL_FILE rtl/rom/LLANDER_DVG_ROM.vhd set_global_assignment -name VHDL_FILE rtl/gen_ram.vhd set_global_assignment -name VHDL_FILE rtl/dpram.vhd set_global_assignment -name VHDL_FILE rtl/ovo.vhd set_global_assignment -name VHDL_FILE rtl/base_pack.vhd set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv -set_global_assignment -name VERILOG_FILE rtl/p2ram.v set_global_assignment -name VERILOG_FILE rtl/pll.v set_global_assignment -name QIP_FILE ../../../common/CPU/T65/T65.qip set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/LunarLander.sdc b/Arcade_MiST/Atari Vector/LunarLander_MiST/LunarLander.sdc new file mode 100644 index 00000000..80fe5371 --- /dev/null +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/LunarLander.sdc @@ -0,0 +1,134 @@ +## Generated SDC file "vectrex_MiST.out.sdc" + +## Copyright (C) 1991-2013 Altera Corporation +## Your use of Altera Corporation's design tools, logic functions +## and other software and tools, and its AMPP partner logic +## functions, and any output files from any of the foregoing +## (including device programming or simulation files), and any +## associated documentation or information are expressly subject +## to the terms and conditions of the Altera Program License +## Subscription Agreement, Altera MegaCore Function License +## Agreement, or other applicable license agreement, including, +## without limitation, that your use is for the sole purpose of +## programming logic devices manufactured by Altera and sold by +## Altera or its authorized distributors. Please refer to the +## applicable agreement for further details. + + +## VENDOR "Altera" +## PROGRAM "Quartus II" +## VERSION "Version 13.1.0 Build 162 10/23/2013 SJ Web Edition" + +## DATE "Sun Jun 24 12:53:00 2018" + +## +## DEVICE "EP3C25E144C8" +## + +# Clock constraints + +# Automatically constrain PLL and other generated clocks +derive_pll_clocks -create_base_clocks + +# Automatically calculate clock uncertainty to jitter and other effects. +derive_clock_uncertainty + +# tsu/th constraints + +# tco constraints + +# tpd constraints + +#************************************************************** +# Time Information +#************************************************************** + +set_time_format -unit ns -decimal_places 3 + + + +#************************************************************** +# Create Clock +#************************************************************** + +create_clock -name {SPI_SCK} -period 41.666 -waveform { 20.8 41.666 } [get_ports {SPI_SCK}] + +set sys_clk "pll|altpll_component|auto_generated|pll1|clk[0]" +set sdram_clk "pll|altpll_component|auto_generated|pll1|clk[0]" +#************************************************************** +# Create Generated Clock +#************************************************************** + + +#************************************************************** +# Set Clock Latency +#************************************************************** + + + +#************************************************************** +# Set Clock Uncertainty +#************************************************************** + +#************************************************************** +# Set Input Delay +#************************************************************** + +set_input_delay -add_delay -clock_fall -clock [get_clocks {CLOCK_27}] 1.000 [get_ports {CLOCK_27}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {CONF_DATA0}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DI}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SCK}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS2}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS3}] + +set_input_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -max 6.6 [get_ports SDRAM_DQ[*]] +set_input_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -min 3.5 [get_ports SDRAM_DQ[*]] + +#************************************************************** +# Set Output Delay +#************************************************************** + +set_output_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DO}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {AUDIO_L}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {AUDIO_R}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {LED}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {VGA_*}] + +set_output_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -max 1.5 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}] +set_output_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -min -0.8 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}] + +#************************************************************** +# Set Clock Groups +#************************************************************** + +set_clock_groups -asynchronous -group [get_clocks {SPI_SCK}] -group [get_clocks {pll|altpll_component|auto_generated|pll1|clk[*]}] + +#************************************************************** +# Set False Path +#************************************************************** + + + +#************************************************************** +# Set Multicycle Path +#************************************************************** + +set_multicycle_path -to {VGA_*[*]} -setup 2 +set_multicycle_path -to {VGA_*[*]} -hold 1 + +#************************************************************** +# Set Maximum Delay +#************************************************************** + + + +#************************************************************** +# Set Minimum Delay +#************************************************************** + + + +#************************************************************** +# Set Input Transition +#************************************************************** + diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/Release/LLANDER.ROM b/Arcade_MiST/Atari Vector/LunarLander_MiST/Release/LLANDER.ROM new file mode 100644 index 00000000..f09eeb5e Binary files /dev/null and b/Arcade_MiST/Atari Vector/LunarLander_MiST/Release/LLANDER.ROM differ diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/LunarLander_MiST.sv b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/LunarLander_MiST.sv index ea39ecca..a3e0d74c 100644 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/LunarLander_MiST.sv +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/LunarLander_MiST.sv @@ -13,7 +13,7 @@ module LunarLander_MiST( input SPI_SS2, input SPI_SS3, input CONF_DATA0, - input CLOCK_27/*, + input CLOCK_27, output [12:0] SDRAM_A, inout [15:0] SDRAM_DQ, @@ -26,13 +26,13 @@ module LunarLander_MiST( output [1:0] SDRAM_BA, output SDRAM_CLK, output SDRAM_CKE -*/ + ); `include "rtl\build_id.v" localparam CONF_STR = { - "LunarLander;;", + "LLANDER;ROM;", "O12,Scanlines,None,CRT 25%,CRT 50%,CRT 75%;", "O3,Test,Off,On;", "O45,Language,English,Spanish,French,German;", @@ -41,8 +41,10 @@ localparam CONF_STR = { "V,v1.00.",`BUILD_DATE }; -assign LED = 1; +assign LED = ~ioctl_downl; assign AUDIO_R = AUDIO_L; +assign SDRAM_CLK = clk_50; +assign SDRAM_CKE = 1; wire clk_50, clk_25, clk_6, locked; pll pll( @@ -70,45 +72,81 @@ wire [7:0] audio; wire key_strobe; wire key_pressed; wire [7:0] key_code; -//this must go to sdram -wire [18:0] vram_write_addr; -wire [3:0] vram_write_data; -wire [18:0] vram_read_addr; -wire [3:0] vram_read_data; -wire vram_wren; -/* -sdram sdram ( - .SDRAM_DQ(SDRAM_DQ), - .SDRAM_A(SDRAM_A), - .SDRAM_DQML(SDRAM_DQML), - .SDRAM_DQMH(SDRAM_DQMH), - .SDRAM_BA(SDRAM_BA), - .SDRAM_nCS(SDRAM_nCS), - .SDRAM_nWE(SDRAM_nWE), - .SDRAM_nRAS(SDRAM_nRAS), - .SDRAM_nCAS(SDRAM_nCAS), - .SDRAM_CKE(SDRAM_CKE), - .init(~locked), // init signal after FPGA config to initialize RAM - .clk(clk_50), // sdram is accessed at up to 128MHz - .clkref(clk_25), // reference clock to sync to - .din(vram_write_data), // data input from chipset/cpu - .dout(vram_read_data), // data output to chipset/cpu - .raddr(vram_read_addr), // 25 bit byte address - .waddr(vram_write_addr), // 25 bit byte address - .rd(~vram_wren), // cpu/chipset requests read - .we(vram_wren) -);*/ +wire [12:0] cpu_rom_address; +wire [15:0] cpu_rom_data; +wire [12:0] vector_rom_address; +wire [15:0] vector_rom_data; +wire ioctl_downl; +wire [7:0] ioctl_index; +wire ioctl_wr; +wire [24:0] ioctl_addr; +wire [7:0] ioctl_dout; -//reduced ram size +data_io data_io( + .clk_sys ( clk_25 ), + .SPI_SCK ( SPI_SCK ), + .SPI_SS2 ( SPI_SS2 ), + .SPI_DI ( SPI_DI ), + .ioctl_download( ioctl_downl ), + .ioctl_index ( ioctl_index ), + .ioctl_wr ( ioctl_wr ), + .ioctl_addr ( ioctl_addr ), + .ioctl_dout ( ioctl_dout ) +); + +reg port1_req, port2_req; +sdram sdram( + .*, + .init_n ( locked ), + .clk ( clk_50 ), + + // port1 used for main CPU + .port1_req ( port1_req ), + .port1_ack ( ), + .port1_a ( ioctl_addr[23:1] ), + .port1_ds ( {ioctl_addr[0], ~ioctl_addr[0]} ), + .port1_we ( ioctl_downl ), + .port1_d ( {ioctl_dout, ioctl_dout} ), + .port1_q ( ), + + .cpu1_addr ( ioctl_downl ? 15'h7fff : {3'b000, cpu_rom_address[12:1]} ), + .cpu1_q ( cpu_rom_data ), + + // port2 for sound board + .port2_req ( port2_req ), + .port2_ack ( ), + .port2_a ( ioctl_addr[23:1] - 16'h1000 ), + .port2_ds ( {ioctl_addr[0], ~ioctl_addr[0]} ), + .port2_we ( ioctl_downl ), + .port2_d ( {ioctl_dout, ioctl_dout} ), + .port2_q ( ), + + .snd_addr ( ioctl_downl ? 15'h7fff : {3'b000, vector_rom_address[12:1]} ), + .snd_q ( vector_rom_data ) +); + +always @(posedge clk_25) begin + reg ioctl_wr_last = 0; + + ioctl_wr_last <= ioctl_wr; + if (ioctl_downl) begin + if (~ioctl_wr_last && ioctl_wr) begin + port1_req <= ~port1_req; + port2_req <= ~port2_req; + end + end +end + +reg reset = 1; +reg rom_loaded = 0; +always @(posedge clk_25) begin + reg ioctl_downlD; + ioctl_downlD <= ioctl_downl; + + if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1; + reset <= status[0] | buttons[1] | ~rom_loaded; +end -p2ram p2ram ( - .clock(clk_25), - .data(vram_write_data), - .rdaddress(vram_read_addr[15:0]), - .wraddress(vram_write_addr[15:0]), - .wren(vram_wren), - .q(vram_read_data) - ); LLANDER_TOP LLANDER_TOP ( .ROT_LEFT_L(~m_left), @@ -137,14 +175,13 @@ LLANDER_TOP LLANDER_TOP ( .VID_VBLANK(vb), .VGA_DE(vgade), .DIP({1'b0,1'b0,status[4],status[5],~status[6],1'b1,status[7],status[8]}),//todo dip full - .RESET_L(~(status[0] | buttons[1])), + .RESET_L(~(reset)), .clk_6(clk_6), .clk_25(clk_25), - .vram_write_addr(vram_write_addr), - .vram_write_data(vram_write_data), - .vram_read_addr(vram_read_addr), - .vram_read_data(vram_read_data), - .vram_wren(vram_wren) + .cpu_rom_address(cpu_rom_address), + .cpu_rom_data (cpu_rom_address[0] ? cpu_rom_data[15:8] : cpu_rom_data[7:0] ), + .vector_rom_address(vector_rom_address), + .vector_rom_data (vector_rom_address[0] ? vector_rom_data[15:8] : vector_rom_data[7:0] ) ); ovo #( diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander.vhd index 7ae44809..99af5b2c 100644 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander.vhd +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander.vhd @@ -84,7 +84,11 @@ entity LLander is Y_VECTOR : out std_logic_vector(9 downto 0); Z_VECTOR : out std_logic_vector(3 downto 0); BEAM_ON : out std_logic; - BEAM_ENA : out std_logic + BEAM_ENA : out std_logic; + cpu_rom_address : out std_logic_vector(12 downto 0); + cpu_rom_data : in std_logic_vector( 7 downto 0); + vector_rom_address : out std_logic_vector(12 downto 0); + vector_rom_data : in std_logic_vector( 7 downto 0) ); end; @@ -430,56 +434,15 @@ begin end case; end process; - rom0 : entity work.LLANDER_PROG_ROM_0 - port map ( - addr => c_addr(10 downto 0), - data => rom0_dout, - clk => CLK_6 - ); +--rom : entity work.llander_cpu_rom +-- port map ( +-- clk => CLK_6, +-- addr => c_addr(12 downto 0), +-- data => rom_dout +--); - rom1 : entity work.LLANDER_PROG_ROM_1 - port map ( - addr => c_addr(10 downto 0), - data => rom1_dout, - clk => CLK_6 - ); - - rom2 : entity work.LLANDER_PROG_ROM_2 - port map ( - addr => c_addr(10 downto 0), - data => rom2_dout, - clk => CLK_6 - ); - - rom3 : entity work.LLANDER_PROG_ROM_3 - port map ( - addr => c_addr(10 downto 0), - data => rom3_dout, - clk => CLK_6 - ); - - p_rom_mux : process(c_addr, rom0_dout, rom1_dout, rom2_dout, rom3_dout) - begin - rom_dout <= (others => '0'); - case c_addr(12 downto 11) is - when "00" => rom_dout <= rom0_dout; - when "01" => rom_dout <= rom1_dout; - when "10" => rom_dout <= rom2_dout; - when "11" => rom_dout <= rom3_dout; - when others => null; - end case; - end process; - - --- Zero-page RAM ---RAM: Entity work.RAM256 ---port map( --- clock => clk_6, --- address => c_addr(7 downto 0), --- data => c_dout, --- wren => ram_we, --- q => ram_dout --- ); +cpu_rom_address <= c_addr(12 downto 0); +rom_dout <= cpu_rom_data; RAM: Entity work.gen_ram generic map( @@ -639,7 +602,9 @@ end process; ENA_1_5M_E => ena_1_5m_e, RESET_L => reset_l, CLK_6 => CLK_6, - CLK_25 => CLK_25 + CLK_25 => CLK_25, + vector_rom_address => vector_rom_address, + vector_rom_data => vector_rom_data ); BEAM_ENA <= ena_1_5m; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_dw.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_dw.vhd index 7fb8a131..b6cc9408 100644 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_dw.vhd +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_dw.vhd @@ -57,30 +57,24 @@ library ieee; entity LLANDER_DW is port ( - RESET : in std_logic; - clk_25 : in std_logic; - clk_6 : in std_logic; + RESET : in std_logic; + clk_25 : in std_logic; + clk_6 : in std_logic; - X_VECTOR : in std_logic_vector(9 downto 0); - Y_VECTOR : in std_logic_vector(9 downto 0); - Z_VECTOR : in std_logic_vector(3 downto 0); - BEAM_ON : in std_logic; - BEAM_ENA : in std_logic; + X_VECTOR : in std_logic_vector(9 downto 0); + Y_VECTOR : in std_logic_vector(9 downto 0); + Z_VECTOR : in std_logic_vector(3 downto 0); + BEAM_ON : in std_logic; + BEAM_ENA : in std_logic; - VIDEO_R_OUT : out std_logic_vector(3 downto 0); - VIDEO_G_OUT : out std_logic_vector(3 downto 0); - VIDEO_B_OUT : out std_logic_vector(3 downto 0); - HSYNC_OUT : out std_logic; - VSYNC_OUT : out std_logic; - VID_DE : out std_logic; - VID_HBLANK : out std_logic; - VID_VBLANK : out std_logic; - - vram_write_addr : out std_logic_vector(18 downto 0); - vram_write_data : out std_logic_vector(3 downto 0); - vram_read_addr : out std_logic_vector(18 downto 0); - vram_read_data : in std_logic_vector(3 downto 0); - vram_wren : out std_logic + VIDEO_R_OUT : out std_logic_vector(3 downto 0); + VIDEO_G_OUT : out std_logic_vector(3 downto 0); + VIDEO_B_OUT : out std_logic_vector(3 downto 0); + HSYNC_OUT : out std_logic; + VSYNC_OUT : out std_logic; + VID_DE : out std_logic; + VID_HBLANK : out std_logic; + VID_VBLANK : out std_logic ); end; @@ -129,7 +123,7 @@ architecture RTL of LLANDER_DW is signal vcount : std_logic_vector(8 downto 0); signal hcount : std_logic_vector(8 downto 0); signal pxcount : std_logic_vector(8 downto 0); --- signal vram_wren : std_logic; + signal vram_wren : std_logic; @@ -431,20 +425,18 @@ begin end process; ---video_rgb : work.dpram generic map (19,4) ---port map( --- clock_a => clk_25, --- wren_a => vram_wren, --- address_a => dw_addr(18 downto 0), --- data_a => vid_data, + video_rgb : work.dpram generic map (16,4) +port map +( + clock_a => clk_25, + wren_a => vram_wren, + address_a => dw_addr(15 downto 0), + data_a => vid_data, --- clock_b => clk_25, --- address_b => (screen & up_addr(17 downto 0)), ---); -vram_write_addr <= dw_addr(18 downto 0); -vram_write_data <= vid_data; -vram_read_addr <= screen & up_addr(17 downto 0); -vid_out <= vram_read_data; + clock_b => clk_25, + address_b => (screen & up_addr(14 downto 0)), + q_b => vid_out +); -- job done ! end architecture RTL; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_top.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_top.vhd index 033c390c..5e161c1f 100644 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_top.vhd +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_top.vhd @@ -97,18 +97,17 @@ entity LLANDER_TOP is VID_HBLANK : out std_logic; VID_VBLANK : out std_logic; - DIP : in std_logic_vector(7 downto 0); + DIP : in std_logic_vector(7 downto 0); RESET_L : in std_logic; -- ref clock in clk_6 : in std_logic; clk_25 : in std_logic; - vram_write_addr : out std_logic_vector(18 downto 0); - vram_write_data : out std_logic_vector(3 downto 0); - vram_read_addr : out std_logic_vector(18 downto 0); - vram_read_data : in std_logic_vector(3 downto 0); - vram_wren : out std_logic + cpu_rom_address : out std_logic_vector(12 downto 0); + cpu_rom_data : in std_logic_vector(7 downto 0); + vector_rom_address : out std_logic_vector(12 downto 0); + vector_rom_data : in std_logic_vector(7 downto 0) ); end; @@ -203,7 +202,11 @@ port map( y_vector => y_vector, z_vector => z_vector, beam_on => beam_on, - BEAM_ENA => beam_ena + BEAM_ENA => beam_ena, + cpu_rom_address => cpu_rom_address, + cpu_rom_data => cpu_rom_data, + vector_rom_address => vector_rom_address, + vector_rom_data => vector_rom_data ); y_vector_w_offset<= y_vector+100; @@ -228,13 +231,7 @@ port map( VSYNC_OUT => VSYNC_OUT, VID_DE => VGA_DE, VID_HBLANK => VID_HBLANK, - VID_VBLANK => VID_VBLANK, - - vram_write_addr => vram_write_addr, - vram_write_data => vram_write_data, - vram_read_addr => vram_read_addr, - vram_read_data => vram_read_data, - vram_wren => vram_wren + VID_VBLANK => VID_VBLANK ); diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_vg.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_vg.vhd index 7d7a85ad..38f2b0ec 100644 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_vg.vhd +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/llander_vg.vhd @@ -52,26 +52,28 @@ library ieee; entity LLANDER_VG is port ( - C_ADDR : in std_logic_vector(15 downto 0); - C_DIN : in std_logic_vector( 7 downto 0); - C_DOUT : out std_logic_vector( 7 downto 0); - C_RW_L : in std_logic; - VMEM_L : in std_logic; + C_ADDR : in std_logic_vector(15 downto 0); + C_DIN : in std_logic_vector( 7 downto 0); + C_DOUT : out std_logic_vector( 7 downto 0); + C_RW_L : in std_logic; + VMEM_L : in std_logic; - DMA_GO_L : in std_logic; - DMA_RESET_L : in std_logic; - HALT_OP : out std_logic; + DMA_GO_L : in std_logic; + DMA_RESET_L : in std_logic; + HALT_OP : out std_logic; - X_VECTOR : out std_logic_vector(9 downto 0); - Y_VECTOR : out std_logic_vector(9 downto 0); - Z_VECTOR : out std_logic_vector(3 downto 0); - BEAM_ON : out std_logic; + X_VECTOR : out std_logic_vector(9 downto 0); + Y_VECTOR : out std_logic_vector(9 downto 0); + Z_VECTOR : out std_logic_vector(3 downto 0); + BEAM_ON : out std_logic; - ENA_1_5M : in std_logic; - ENA_1_5M_E : in std_logic; - RESET_L : in std_logic; - CLK_6 : in std_logic; - Clk_25 : in std_logic + ENA_1_5M : in std_logic; + ENA_1_5M_E : in std_logic; + RESET_L : in std_logic; + CLK_6 : in std_logic; + Clk_25 : in std_logic; + vector_rom_address : out std_logic_vector(12 downto 0); + vector_rom_data : in std_logic_vector( 7 downto 0) ); end; @@ -117,14 +119,10 @@ architecture RTL of LLANDER_VG is signal vram1_l : std_logic; signal vram2_l : std_logic; - signal vrom1_l : std_logic; - signal vrom2_l : std_logic; - signal vrom3_l : std_logic; + signal vrom_l : std_logic; signal vram1_t1_l : std_logic; signal vram2_t1_l : std_logic; - signal vrom1_t1_l : std_logic; - signal vrom2_t1_l : std_logic; - signal vrom3_t1_l : std_logic; + signal vrom_t1_l : std_logic; signal am_bus : std_logic_vector(12 downto 0); signal vw_l : std_logic; @@ -144,9 +142,7 @@ architecture RTL of LLANDER_VG is signal ram_din : std_logic_vector(7 downto 0); signal ram_dout_1 : std_logic_vector(7 downto 0); signal ram_dout_2 : std_logic_vector(7 downto 0); - signal rom_dout_1 : std_logic_vector(7 downto 0); - signal rom_dout_2 : std_logic_vector(7 downto 0); - signal rom_dout_3 : std_logic_vector(7 downto 0); + signal rom_dout : std_logic_vector(7 downto 0); signal memory_dout : std_logic_vector(7 downto 0); begin @@ -403,18 +399,16 @@ begin begin vram1_l <= '1'; vram2_l <= '1'; - vrom1_l <= '1'; - vrom2_l <= '1'; - vrom3_l <= '1'; + vrom_l <= '1'; case am_bus(12 downto 10) is when "000" => vram1_l <= '0'; when "001" => vram2_l <= '0'; - when "010" => vrom1_l <= '0'; - when "011" => vrom1_l <= '0'; - when "100" => vrom2_l <= '0'; - when "101" => vrom2_l <= '0'; - when "110" => vrom3_l <= '0'; -- AJS? - when "111" => vrom3_l <= '0'; + when "010" => vrom_l <= '0'; + when "011" => vrom_l <= '0'; + when "100" => vrom_l <= '0'; + when "101" => vrom_l <= '0'; + when "110" => vrom_l <= '0'; -- AJS? + when "111" => vrom_l <= '0'; when others => null; end case; @@ -425,9 +419,7 @@ begin wait until rising_edge(CLK_6); vram1_t1_l <= vram1_l; vram2_t1_l <= vram2_l; - vrom1_t1_l <= vrom1_l; - vrom2_t1_l <= vrom2_l; - vrom3_t1_l <= vrom3_l; + vrom_t1_l <= vrom_l; end process; -- only cpu can write to vector ram @@ -457,28 +449,17 @@ begin CLK => CLK_6 ); -u_vector_rom_0 : entity work.LLANDER_VEC_ROM_0 - port map ( - addr => am_bus(10 downto 0), - data => rom_dout_1, - clk => CLK_6 - ); +-- u_vector_rom : entity work.llander_vec_rom +-- port map ( +-- clk => CLK_6, +-- addr => am_bus(12 downto 0), +-- data => rom_dout +--); -u_vector_rom_1 : entity work.LLANDER_VEC_ROM_1 - port map ( - addr => am_bus(10 downto 0), - data => rom_dout_2, - clk => CLK_6 - ); - -u_vector_rom_2 : entity work.LLANDER_VEC_ROM_2 - port map ( - addr => am_bus(10 downto 0), - data => rom_dout_3, - clk => CLK_6 - ); +vector_rom_address <= am_bus(12 downto 0); +rom_dout <= vector_rom_data; - p_memory_data_mux : process(vram1_t1_l, vram2_t1_l, vrom1_t1_l, vrom2_t1_l, vrom3_t1_l,ram_dout_1, ram_dout_2, rom_dout_1, rom_dout_2,rom_dout_3) + p_memory_data_mux : process(vram1_t1_l, vram2_t1_l, vrom_t1_l, ram_dout_1, ram_dout_2, rom_dout) begin -- cpu buffer enabled when VMEM_L = 0 memory_dout <= (others => '0'); @@ -486,16 +467,12 @@ u_vector_rom_2 : entity work.LLANDER_VEC_ROM_2 memory_dout <= ram_dout_1; elsif (vram2_t1_l = '0') then memory_dout <= ram_dout_2; - elsif (vrom1_t1_l = '0') then - memory_dout <= rom_dout_1; -- AJS?? - elsif (vrom2_t1_l = '0') then - memory_dout <= rom_dout_2; -- AJS?? - elsif (vrom3_t1_l = '0') then - memory_dout <= rom_dout_3; -- AJS?? + elsif (vrom_t1_l = '0')then + memory_dout <= rom_dout; -- AJS?? else memory_dout <= (others => 'X'); end if; - end process; + end process; -- -- data memory latches -- diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/p2ram.v b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/p2ram.v deleted file mode 100644 index 67b17477..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/p2ram.v +++ /dev/null @@ -1,215 +0,0 @@ -// megafunction wizard: %RAM: 2-PORT% -// GENERATION: STANDARD -// VERSION: WM1.0 -// MODULE: altsyncram - -// ============================================================ -// File Name: p2ram.v -// Megafunction Name(s): -// altsyncram -// -// Simulation Library Files(s): -// altera_mf -// ============================================================ -// ************************************************************ -// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! -// -// 13.1.0 Build 162 10/23/2013 SJ Web Edition -// ************************************************************ - - -//Copyright (C) 1991-2013 Altera Corporation -//Your use of Altera Corporation's design tools, logic functions -//and other software and tools, and its AMPP partner logic -//functions, and any output files from any of the foregoing -//(including device programming or simulation files), and any -//associated documentation or information are expressly subject -//to the terms and conditions of the Altera Program License -//Subscription Agreement, Altera MegaCore Function License -//Agreement, or other applicable license agreement, including, -//without limitation, that your use is for the sole purpose of -//programming logic devices manufactured by Altera and sold by -//Altera or its authorized distributors. Please refer to the -//applicable agreement for further details. - - -// synopsys translate_off -`timescale 1 ps / 1 ps -// synopsys translate_on -module p2ram ( - clock, - data, - rdaddress, - wraddress, - wren, - q); - - input clock; - input [3:0] data; - input [16:0] rdaddress; - input [16:0] wraddress; - input wren; - output [3:0] q; -`ifndef ALTERA_RESERVED_QIS -// synopsys translate_off -`endif - tri1 clock; - tri0 wren; -`ifndef ALTERA_RESERVED_QIS -// synopsys translate_on -`endif - - wire [3:0] sub_wire0; - wire [3:0] q = sub_wire0[3:0]; - - altsyncram altsyncram_component ( - .address_a (wraddress), - .clock0 (clock), - .data_a (data), - .wren_a (wren), - .address_b (rdaddress), - .q_b (sub_wire0), - .aclr0 (1'b0), - .aclr1 (1'b0), - .addressstall_a (1'b0), - .addressstall_b (1'b0), - .byteena_a (1'b1), - .byteena_b (1'b1), - .clock1 (1'b1), - .clocken0 (1'b1), - .clocken1 (1'b1), - .clocken2 (1'b1), - .clocken3 (1'b1), - .data_b ({4{1'b1}}), - .eccstatus (), - .q_a (), - .rden_a (1'b1), - .rden_b (1'b1), - .wren_b (1'b0)); - defparam - altsyncram_component.address_aclr_b = "NONE", - altsyncram_component.address_reg_b = "CLOCK0", - altsyncram_component.clock_enable_input_a = "BYPASS", - altsyncram_component.clock_enable_input_b = "BYPASS", - altsyncram_component.clock_enable_output_b = "BYPASS", - altsyncram_component.intended_device_family = "Cyclone III", - altsyncram_component.lpm_type = "altsyncram", - altsyncram_component.numwords_a = 131072, - altsyncram_component.numwords_b = 131072, - altsyncram_component.operation_mode = "DUAL_PORT", - altsyncram_component.outdata_aclr_b = "NONE", - altsyncram_component.outdata_reg_b = "CLOCK0", - altsyncram_component.power_up_uninitialized = "FALSE", - altsyncram_component.ram_block_type = "M9K", - altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE", - altsyncram_component.widthad_a = 17, - altsyncram_component.widthad_b = 17, - altsyncram_component.width_a = 4, - altsyncram_component.width_b = 4, - altsyncram_component.width_byteena_a = 1; - - -endmodule - -// ============================================================ -// CNX file retrieval info -// ============================================================ -// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0" -// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0" -// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0" -// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0" -// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0" -// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0" -// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8" -// Retrieval info: PRIVATE: BlankMemory NUMERIC "1" -// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0" -// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0" -// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0" -// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0" -// Retrieval info: PRIVATE: CLRdata NUMERIC "0" -// Retrieval info: PRIVATE: CLRq NUMERIC "0" -// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0" -// Retrieval info: PRIVATE: CLRrren NUMERIC "0" -// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0" -// Retrieval info: PRIVATE: CLRwren NUMERIC "0" -// Retrieval info: PRIVATE: Clock NUMERIC "0" -// Retrieval info: PRIVATE: Clock_A NUMERIC "0" -// Retrieval info: PRIVATE: Clock_B NUMERIC "0" -// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0" -// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0" -// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0" -// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B" -// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0" -// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III" -// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0" -// Retrieval info: PRIVATE: JTAG_ID STRING "NONE" -// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0" -// Retrieval info: PRIVATE: MEMSIZE NUMERIC "524288" -// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0" -// Retrieval info: PRIVATE: MIFfilename STRING "" -// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2" -// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0" -// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "1" -// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "2" -// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2" -// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3" -// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3" -// Retrieval info: PRIVATE: REGdata NUMERIC "1" -// Retrieval info: PRIVATE: REGq NUMERIC "1" -// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1" -// Retrieval info: PRIVATE: REGrren NUMERIC "1" -// Retrieval info: PRIVATE: REGwraddress NUMERIC "1" -// Retrieval info: PRIVATE: REGwren NUMERIC "1" -// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" -// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0" -// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1" -// Retrieval info: PRIVATE: VarWidth NUMERIC "0" -// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "4" -// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "4" -// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "4" -// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "4" -// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0" -// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0" -// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0" -// Retrieval info: PRIVATE: enable NUMERIC "0" -// Retrieval info: PRIVATE: rden NUMERIC "0" -// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all -// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE" -// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0" -// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS" -// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS" -// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS" -// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" -// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram" -// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "131072" -// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "131072" -// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT" -// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE" -// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "CLOCK0" -// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE" -// Retrieval info: CONSTANT: RAM_BLOCK_TYPE STRING "M9K" -// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE" -// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "17" -// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "17" -// Retrieval info: CONSTANT: WIDTH_A NUMERIC "4" -// Retrieval info: CONSTANT: WIDTH_B NUMERIC "4" -// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1" -// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock" -// Retrieval info: USED_PORT: data 0 0 4 0 INPUT NODEFVAL "data[3..0]" -// Retrieval info: USED_PORT: q 0 0 4 0 OUTPUT NODEFVAL "q[3..0]" -// Retrieval info: USED_PORT: rdaddress 0 0 17 0 INPUT NODEFVAL "rdaddress[16..0]" -// Retrieval info: USED_PORT: wraddress 0 0 17 0 INPUT NODEFVAL "wraddress[16..0]" -// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren" -// Retrieval info: CONNECT: @address_a 0 0 17 0 wraddress 0 0 17 0 -// Retrieval info: CONNECT: @address_b 0 0 17 0 rdaddress 0 0 17 0 -// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0 -// Retrieval info: CONNECT: @data_a 0 0 4 0 data 0 0 4 0 -// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0 -// Retrieval info: CONNECT: q 0 0 4 0 @q_b 0 0 4 0 -// Retrieval info: GEN_FILE: TYPE_NORMAL p2ram.v TRUE -// Retrieval info: GEN_FILE: TYPE_NORMAL p2ram.inc FALSE -// Retrieval info: GEN_FILE: TYPE_NORMAL p2ram.cmp FALSE -// Retrieval info: GEN_FILE: TYPE_NORMAL p2ram.bsf FALSE -// Retrieval info: GEN_FILE: TYPE_NORMAL p2ram_inst.v FALSE -// Retrieval info: GEN_FILE: TYPE_NORMAL p2ram_bb.v FALSE -// Retrieval info: LIB_FILE: altera_mf diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_DVG_ROM.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_DVG_ROM.vhd deleted file mode 100644 index aff1c787..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_DVG_ROM.vhd +++ /dev/null @@ -1,38 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_DVG_ROM is -port ( - clk : in std_logic; - addr : in std_logic_vector(7 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_DVG_ROM is - type rom is array(0 to 255) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"0F",X"0C",X"0A",X"0E", - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"0F",X"0C",X"0A",X"0E", - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"0D",X"0F",X"0C",X"0B",X"0E", - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"0B",X"0D",X"01",X"00",X"08",X"0C",X"0A",X"0E", - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"08",X"0C",X"0A",X"0E", - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"09",X"0C",X"0A",X"0E", - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"09",X"0C",X"0A",X"0E", - X"00",X"01",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"0A",X"0C",X"0A",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"0F",X"0C",X"0A",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"0F",X"0C",X"0A",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"0D",X"0F",X"0C",X"0B",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"0B",X"0D",X"01",X"00",X"08",X"0C",X"0A",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"08",X"0C",X"0A",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"09",X"0C",X"0A",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"09",X"0C",X"0A",X"0E", - X"09",X"02",X"0D",X"0D",X"05",X"06",X"07",X"0D",X"09",X"0D",X"01",X"00",X"0A",X"0C",X"0A",X"0E"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_0.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_0.vhd deleted file mode 100644 index 8ef5c152..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_0.vhd +++ /dev/null @@ -1,150 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_PROG_ROM_0 is -port ( - clk : in std_logic; - addr : in std_logic_vector(10 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_PROG_ROM_0 is - type rom is array(0 to 2047) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"6B",X"20",X"13",X"62",X"A9",X"80",X"85",X"5D",X"24",X"97",X"30",X"0F",X"A9",X"00",X"85",X"22", - X"85",X"97",X"24",X"5D",X"10",X"4C",X"20",X"13",X"62",X"D0",X"28",X"A5",X"22",X"D0",X"21",X"20", - X"13",X"62",X"A9",X"F0",X"A2",X"08",X"20",X"5F",X"79",X"A2",X"00",X"86",X"23",X"86",X"A4",X"86", - X"A5",X"A9",X"11",X"85",X"63",X"A9",X"20",X"A6",X"98",X"D0",X"01",X"4A",X"85",X"22",X"D0",X"03", - X"20",X"35",X"62",X"20",X"A9",X"73",X"A2",X"2C",X"A0",X"CA",X"A5",X"21",X"F0",X"04",X"A2",X"A0", - X"A0",X"C3",X"A5",X"22",X"29",X"20",X"F0",X"04",X"A2",X"00",X"A0",X"F0",X"8E",X"00",X"40",X"8C", - X"01",X"40",X"A2",X"40",X"A0",X"04",X"A5",X"86",X"4A",X"90",X"04",X"A2",X"42",X"A0",X"84",X"86", - X"28",X"84",X"27",X"A5",X"22",X"29",X"20",X"D0",X"2D",X"20",X"95",X"67",X"20",X"39",X"65",X"20", - X"67",X"65",X"20",X"AD",X"65",X"A5",X"22",X"29",X"10",X"D0",X"1B",X"24",X"22",X"10",X"1D",X"A5", - X"62",X"29",X"0F",X"F0",X"0B",X"A5",X"29",X"85",X"27",X"A5",X"2A",X"85",X"28",X"20",X"95",X"75", - X"20",X"D6",X"68",X"4C",X"CE",X"60",X"20",X"7E",X"68",X"4C",X"CE",X"60",X"20",X"9D",X"66",X"24", - X"22",X"50",X"18",X"A5",X"23",X"D0",X"0B",X"A5",X"86",X"29",X"0F",X"C9",X"08",X"D0",X"03",X"20", - X"09",X"65",X"20",X"9E",X"68",X"20",X"FF",X"67",X"4C",X"CE",X"60",X"20",X"9F",X"79",X"A0",X"DE", - X"A9",X"4B",X"A2",X"06",X"20",X"A6",X"7E",X"AD",X"00",X"20",X"29",X"02",X"F0",X"FE",X"20",X"2D", - X"65",X"A0",X"02",X"A2",X"F0",X"A5",X"86",X"4A",X"90",X"04",X"A2",X"E1",X"A0",X"42",X"8E",X"03", - X"40",X"8C",X"02",X"40",X"8D",X"00",X"30",X"E6",X"86",X"A2",X"00",X"AD",X"00",X"20",X"29",X"04", - X"D0",X"02",X"A2",X"20",X"A9",X"1F",X"20",X"53",X"79",X"20",X"E6",X"62",X"20",X"14",X"64",X"24", - X"22",X"30",X"37",X"50",X"1F",X"20",X"32",X"6B",X"20",X"3C",X"63",X"20",X"71",X"6B",X"20",X"1B", - X"75",X"A5",X"01",X"C9",X"10",X"D0",X"02",X"A9",X"0F",X"4A",X"09",X"01",X"AA",X"A9",X"30",X"20", - X"53",X"79",X"D0",X"0D",X"A9",X"20",X"A2",X"00",X"20",X"53",X"79",X"A5",X"22",X"29",X"20",X"D0", - X"09",X"20",X"68",X"6C",X"20",X"4F",X"6D",X"20",X"1C",X"71",X"A5",X"22",X"F0",X"5B",X"20",X"AB", - X"62",X"24",X"22",X"30",X"33",X"70",X"55",X"A2",X"00",X"A5",X"86",X"29",X"10",X"D0",X"02",X"A2", - X"10",X"A9",X"0F",X"20",X"5F",X"79",X"2C",X"00",X"24",X"30",X"06",X"A9",X"40",X"85",X"25",X"D0", - X"04",X"06",X"25",X"B0",X"0D",X"24",X"5D",X"10",X"0C",X"20",X"13",X"62",X"A9",X"10",X"85",X"22", - X"D0",X"03",X"4C",X"40",X"60",X"4C",X"62",X"60",X"24",X"62",X"50",X"0E",X"24",X"5C",X"10",X"04", - X"24",X"5D",X"30",X"06",X"20",X"68",X"6C",X"20",X"4F",X"6D",X"A5",X"86",X"4A",X"B0",X"E6",X"E6", - X"56",X"10",X"E2",X"06",X"56",X"A5",X"62",X"85",X"5D",X"4C",X"08",X"60",X"A5",X"5D",X"30",X"28", - X"20",X"AA",X"64",X"24",X"97",X"30",X"0C",X"A5",X"8D",X"C9",X"05",X"90",X"03",X"4C",X"01",X"60", - X"4C",X"62",X"60",X"2C",X"05",X"24",X"30",X"06",X"A9",X"40",X"85",X"68",X"D0",X"F2",X"06",X"68", - X"90",X"EE",X"A9",X"64",X"85",X"56",X"D0",X"E8",X"20",X"E0",X"6B",X"A5",X"5D",X"85",X"62",X"0A", - X"D0",X"07",X"A0",X"00",X"A9",X"50",X"20",X"13",X"63",X"20",X"90",X"6B",X"20",X"94",X"76",X"A2", - X"00",X"86",X"AF",X"86",X"B0",X"86",X"B1",X"A0",X"0A",X"96",X"57",X"88",X"10",X"FB",X"A9",X"20", - X"20",X"53",X"79",X"06",X"22",X"A9",X"01",X"85",X"56",X"A9",X"0A",X"85",X"61",X"A9",X"41",X"85", - X"63",X"D0",X"AD",X"8D",X"00",X"3E",X"A2",X"08",X"86",X"02",X"BD",X"0E",X"78",X"95",X"06",X"BD", - X"B3",X"4B",X"95",X"0C",X"CA",X"D0",X"F3",X"86",X"60",X"86",X"61",X"A5",X"74",X"85",X"5F",X"A9", - X"11",X"85",X"63",X"10",X"53",X"A5",X"74",X"29",X"03",X"85",X"33",X"18",X"69",X"01",X"29",X"03", - X"85",X"34",X"A5",X"74",X"4A",X"4A",X"29",X"0F",X"C9",X"0F",X"D0",X"02",X"A9",X"04",X"20",X"9E", - X"62",X"85",X"35",X"49",X"0F",X"20",X"9E",X"62",X"85",X"36",X"A2",X"03",X"BD",X"13",X"78",X"95", - X"5E",X"BD",X"0F",X"78",X"95",X"07",X"BD",X"AE",X"55",X"95",X"11",X"CA",X"10",X"EE",X"A9",X"00", - X"AA",X"A0",X"07",X"96",X"9C",X"88",X"10",X"FB",X"A9",X"40",X"85",X"22",X"A9",X"0F",X"20",X"5F", - X"79",X"A9",X"10",X"85",X"02",X"20",X"BE",X"62",X"A2",X"00",X"A0",X"0E",X"96",X"4F",X"88",X"10", - X"FB",X"CA",X"A0",X"07",X"96",X"79",X"88",X"10",X"FB",X"A9",X"40",X"85",X"4E",X"60",X"C9",X"04", - X"B0",X"04",X"69",X"01",X"09",X"0A",X"60",X"11",X"11",X"22",X"11",X"2C",X"04",X"24",X"10",X"2D", - X"06",X"24",X"90",X"2D",X"E6",X"23",X"A5",X"23",X"29",X"03",X"85",X"23",X"A5",X"02",X"0A",X"0A", - X"85",X"67",X"A9",X"00",X"A2",X"03",X"95",X"03",X"CA",X"10",X"FB",X"85",X"66",X"A6",X"23",X"BD", - X"A7",X"62",X"85",X"63",X"BD",X"E2",X"62",X"AA",X"A9",X"F0",X"4C",X"5F",X"79",X"A9",X"40",X"85", - X"24",X"60",X"08",X"04",X"02",X"01",X"20",X"6B",X"79",X"D0",X"07",X"24",X"97",X"70",X"03",X"20", - X"09",X"63",X"A6",X"B6",X"F0",X"05",X"C6",X"B6",X"20",X"09",X"63",X"A6",X"B8",X"F0",X"09",X"C6", - X"B8",X"20",X"09",X"63",X"C6",X"99",X"D0",X"F9",X"60",X"A5",X"98",X"0A",X"AA",X"BD",X"2A",X"63", - X"BC",X"2B",X"63",X"A2",X"FF",X"86",X"97",X"F8",X"18",X"65",X"AD",X"AA",X"98",X"65",X"AE",X"D8", - X"90",X"03",X"A9",X"99",X"AA",X"85",X"AE",X"86",X"AD",X"60",X"00",X"09",X"50",X"04",X"00",X"06", - X"50",X"07",X"00",X"09",X"00",X"11",X"00",X"13",X"50",X"15",X"00",X"18",X"A5",X"56",X"F0",X"01", - X"60",X"A5",X"23",X"C9",X"03",X"F0",X"03",X"4C",X"D4",X"63",X"A5",X"66",X"18",X"65",X"03",X"85", - X"66",X"A5",X"67",X"65",X"04",X"85",X"67",X"4A",X"4A",X"29",X"1F",X"85",X"02",X"A0",X"00",X"A5", - X"03",X"A6",X"04",X"F0",X"0A",X"E8",X"D0",X"0B",X"C9",X"C0",X"90",X"07",X"88",X"30",X"04",X"C9", - X"41",X"90",X"F9",X"84",X"05",X"24",X"97",X"10",X"5A",X"20",X"04",X"64",X"0A",X"0A",X"0A",X"0A", - X"A0",X"00",X"29",X"F0",X"F0",X"25",X"90",X"01",X"88",X"18",X"65",X"03",X"AA",X"98",X"65",X"04", - X"10",X"0A",X"C9",X"FC",X"B0",X"0E",X"A9",X"FC",X"A2",X"00",X"F0",X"08",X"C9",X"04",X"90",X"04", - X"A9",X"03",X"A2",X"E0",X"85",X"04",X"86",X"03",X"4C",X"FE",X"63",X"A5",X"05",X"F0",X"1E",X"A5", - X"06",X"F0",X"05",X"A9",X"00",X"AA",X"F0",X"11",X"A5",X"03",X"05",X"04",X"F0",X"0F",X"A9",X"50", - X"A2",X"00",X"24",X"04",X"10",X"03",X"A9",X"B0",X"CA",X"86",X"04",X"85",X"03",X"A5",X"03",X"05", - X"04",X"85",X"06",X"60",X"24",X"97",X"10",X"FB",X"20",X"04",X"64",X"F0",X"F6",X"18",X"65",X"67", - X"85",X"67",X"AA",X"4A",X"4A",X"29",X"1F",X"85",X"02",X"A5",X"23",X"D0",X"11",X"E8",X"F0",X"06", - X"E0",X"42",X"D0",X"0A",X"A9",X"10",X"85",X"02",X"0A",X"0A",X"85",X"67",X"90",X"D5",X"A2",X"00", - X"A0",X"06",X"D0",X"5D",X"A2",X"00",X"2C",X"06",X"24",X"10",X"01",X"CA",X"2C",X"07",X"24",X"10", - X"01",X"E8",X"8A",X"60",X"24",X"22",X"50",X"04",X"A5",X"56",X"D0",X"44",X"A5",X"84",X"4A",X"4A", - X"AA",X"4A",X"85",X"37",X"A0",X"00",X"E4",X"82",X"B0",X"1A",X"A5",X"84",X"38",X"E5",X"82",X"A0", - X"0F",X"90",X"11",X"C5",X"37",X"90",X"0D",X"A5",X"82",X"A4",X"84",X"20",X"C0",X"70",X"8A",X"4A", - X"4A",X"4A",X"4A",X"A8",X"84",X"01",X"A0",X"00",X"A5",X"85",X"C9",X"4B",X"90",X"08",X"E6",X"83", - X"C6",X"84",X"C6",X"84",X"84",X"85",X"24",X"97",X"10",X"04",X"A5",X"22",X"D0",X"02",X"84",X"01", - X"60",X"A9",X"00",X"F8",X"85",X"39",X"86",X"38",X"84",X"37",X"A5",X"AC",X"38",X"E5",X"37",X"A8", - X"A5",X"AD",X"E5",X"38",X"AA",X"A5",X"AE",X"E5",X"39",X"B0",X"14",X"24",X"97",X"10",X"29",X"A9", - X"40",X"85",X"97",X"A9",X"00",X"85",X"AC",X"85",X"AD",X"85",X"AE",X"85",X"8D",X"F0",X"0A",X"84", - X"AC",X"86",X"AD",X"85",X"AE",X"05",X"AD",X"F0",X"E2",X"18",X"A0",X"02",X"A2",X"00",X"B5",X"A1", - X"75",X"37",X"95",X"A1",X"E8",X"88",X"10",X"F6",X"D8",X"60",X"A0",X"00",X"A5",X"56",X"F0",X"49", - X"24",X"97",X"10",X"46",X"A5",X"86",X"4A",X"90",X"1A",X"A5",X"02",X"C9",X"08",X"90",X"0A",X"F0", - X"12",X"C9",X"19",X"B0",X"04",X"C6",X"02",X"D0",X"07",X"18",X"69",X"01",X"29",X"1F",X"85",X"02", - X"20",X"BC",X"62",X"A5",X"5F",X"D0",X"04",X"85",X"5E",X"F0",X"02",X"C6",X"5F",X"A5",X"02",X"C9", - X"08",X"D0",X"16",X"A5",X"56",X"C9",X"3C",X"B0",X"0A",X"24",X"5C",X"30",X"06",X"A5",X"61",X"C9", - X"10",X"B0",X"09",X"A9",X"10",X"85",X"01",X"C6",X"56",X"60",X"84",X"01",X"84",X"56",X"60",X"04", - X"04",X"02",X"82",X"04",X"08",X"02",X"82",X"07",X"F0",X"A2",X"02",X"B5",X"5E",X"85",X"37",X"B5", - X"5F",X"A0",X"05",X"4A",X"66",X"37",X"88",X"D0",X"FA",X"85",X"38",X"B5",X"5E",X"38",X"E5",X"37", - X"95",X"5E",X"B5",X"5F",X"E5",X"38",X"95",X"5F",X"CA",X"CA",X"10",X"DF",X"60",X"46",X"73",X"90", - X"FC",X"AD",X"00",X"20",X"4A",X"90",X"FA",X"60",X"2E",X"A5",X"4F",X"0A",X"85",X"8C",X"0A",X"85", - X"8B",X"24",X"4E",X"70",X"0D",X"A9",X"E2",X"A2",X"51",X"20",X"D5",X"7E",X"A9",X"BA",X"A2",X"51", - X"D0",X"0B",X"A9",X"BC",X"A2",X"4B",X"20",X"D5",X"7E",X"A9",X"F0",X"A2",X"44",X"A4",X"27",X"84", - X"2D",X"A4",X"28",X"84",X"2E",X"D0",X"2B",X"24",X"4E",X"50",X"1C",X"A2",X"A1",X"20",X"9E",X"65", - X"A9",X"FE",X"A2",X"52",X"20",X"92",X"65",X"24",X"22",X"70",X"01",X"60",X"A2",X"A3",X"20",X"9E", - X"65",X"A9",X"0E",X"A2",X"53",X"D0",X"0B",X"A9",X"16",X"A2",X"54",X"20",X"D5",X"7E",X"A9",X"EE", - X"A2",X"53",X"18",X"65",X"8C",X"A8",X"8A",X"69",X"00",X"A2",X"0A",X"4C",X"A6",X"7E",X"A9",X"00", - X"85",X"37",X"85",X"39",X"85",X"3A",X"86",X"38",X"A0",X"37",X"4C",X"DC",X"7E",X"20",X"84",X"66", - X"A0",X"0D",X"A9",X"00",X"85",X"3E",X"85",X"40",X"20",X"A4",X"7E",X"A5",X"27",X"85",X"29",X"A5", - X"28",X"85",X"2A",X"A5",X"02",X"C9",X"09",X"B0",X"06",X"20",X"6E",X"66",X"4C",X"C9",X"7E",X"A2", - X"04",X"A0",X"04",X"C6",X"3E",X"C6",X"40",X"C9",X"10",X"90",X"0E",X"C9",X"19",X"90",X"06",X"A2", - X"00",X"E6",X"40",X"F0",X"08",X"29",X"0F",X"10",X"09",X"A0",X"00",X"E6",X"3E",X"20",X"F9",X"67", - X"29",X"07",X"86",X"3D",X"84",X"3F",X"20",X"6E",X"66",X"84",X"37",X"85",X"38",X"A0",X"00",X"B1", - X"37",X"0A",X"85",X"39",X"C8",X"B1",X"37",X"29",X"0F",X"09",X"20",X"2A",X"85",X"3A",X"24",X"4E", - X"50",X"05",X"A5",X"39",X"18",X"90",X"18",X"88",X"B1",X"39",X"0A",X"85",X"64",X"C8",X"B1",X"39", - X"29",X"0F",X"09",X"20",X"2A",X"85",X"65",X"20",X"37",X"66",X"A5",X"39",X"18",X"69",X"02",X"85", - X"64",X"A5",X"3A",X"69",X"00",X"85",X"65",X"A0",X"00",X"B1",X"64",X"91",X"27",X"C8",X"B1",X"64", - X"C9",X"A0",X"90",X"08",X"C9",X"F0",X"B0",X"17",X"88",X"4C",X"F8",X"74",X"45",X"3F",X"91",X"27", - X"C8",X"B1",X"64",X"91",X"27",X"C8",X"B1",X"64",X"45",X"3D",X"91",X"27",X"C8",X"D0",X"DA",X"45", - X"3F",X"91",X"27",X"88",X"B1",X"27",X"45",X"3D",X"91",X"27",X"C8",X"C8",X"D0",X"CB",X"0A",X"85", - X"8B",X"24",X"4E",X"50",X"07",X"69",X"F4",X"A8",X"A9",X"4D",X"D0",X"05",X"69",X"A2",X"A8",X"A9", - X"4B",X"69",X"00",X"60",X"A5",X"08",X"A6",X"07",X"20",X"EF",X"6C",X"85",X"10",X"84",X"0F",X"A5", - X"0A",X"A6",X"09",X"20",X"EF",X"6C",X"84",X"0D",X"09",X"A0",X"85",X"0E",X"60",X"A5",X"01",X"F0", - X"FB",X"A5",X"8B",X"24",X"4E",X"50",X"03",X"18",X"69",X"12",X"AA",X"BC",X"72",X"67",X"BD",X"71", - X"67",X"24",X"3E",X"10",X"03",X"20",X"F9",X"67",X"85",X"3D",X"98",X"24",X"40",X"10",X"03",X"20", - X"F9",X"67",X"85",X"3F",X"A5",X"01",X"A0",X"74",X"20",X"EF",X"70",X"A8",X"A5",X"86",X"4A",X"90", - X"01",X"C8",X"A5",X"01",X"18",X"69",X"10",X"0A",X"0A",X"0A",X"90",X"02",X"A9",X"F0",X"85",X"8F", - X"84",X"39",X"98",X"A4",X"3F",X"20",X"EF",X"70",X"86",X"3A",X"A5",X"3D",X"20",X"F9",X"67",X"A8", - X"A5",X"39",X"20",X"EF",X"70",X"86",X"39",X"A5",X"3E",X"45",X"40",X"10",X"06",X"20",X"28",X"67", - X"4C",X"09",X"67",X"20",X"09",X"67",X"4C",X"28",X"67",X"A0",X"00",X"A5",X"3A",X"18",X"65",X"3D", - X"10",X"01",X"88",X"85",X"19",X"84",X"1A",X"A2",X"00",X"A5",X"39",X"18",X"65",X"3F",X"10",X"01", - X"CA",X"85",X"1B",X"86",X"1C",X"4C",X"4A",X"67",X"A5",X"3A",X"20",X"F9",X"67",X"A2",X"00",X"18", - X"65",X"3D",X"10",X"01",X"CA",X"85",X"19",X"86",X"1A",X"A5",X"39",X"20",X"F9",X"67",X"A2",X"00", - X"18",X"65",X"3F",X"10",X"01",X"CA",X"85",X"1B",X"86",X"1C",X"A5",X"3E",X"45",X"40",X"10",X"1E", - X"A5",X"19",X"F0",X"0B",X"20",X"F9",X"67",X"85",X"19",X"A5",X"1A",X"49",X"FF",X"85",X"1A",X"A5", - X"1B",X"F0",X"0B",X"20",X"F9",X"67",X"85",X"1B",X"A5",X"1C",X"49",X"FF",X"85",X"1C",X"4C",X"43", - X"78",X"00",X"F9",X"02",X"FA",X"03",X"FA",X"04",X"FB",X"05",X"FB",X"06",X"FC",X"06",X"FD",X"07", - X"FE",X"07",X"00",X"00",X"FC",X"01",X"FC",X"01",X"FC",X"02",X"FD",X"03",X"FD",X"03",X"FE",X"04", - X"FF",X"04",X"FF",X"04",X"00",X"A0",X"3C",X"A9",X"55",X"20",X"A4",X"7E",X"A9",X"A4",X"20",X"EB", - X"67",X"A0",X"01",X"A9",X"9D",X"18",X"20",X"5A",X"7B",X"A2",X"02",X"20",X"AA",X"7E",X"A0",X"01", - X"A9",X"9C",X"20",X"ED",X"67",X"A9",X"AD",X"20",X"EB",X"67",X"A9",X"AF",X"20",X"F4",X"67",X"20", - X"D1",X"7E",X"A9",X"A6",X"20",X"F4",X"67",X"20",X"D1",X"7E",X"A9",X"A9",X"20",X"F4",X"67",X"A9", - X"55",X"A0",X"AA",X"20",X"A4",X"7E",X"A5",X"9B",X"0A",X"69",X"60",X"20",X"E3",X"67",X"A5",X"9A", - X"0A",X"69",X"5A",X"A8",X"A9",X"55",X"69",X"00",X"4C",X"C9",X"7E",X"A0",X"02",X"18",X"20",X"5A", - X"7B",X"4C",X"D1",X"7E",X"A0",X"03",X"4C",X"59",X"7B",X"49",X"FF",X"18",X"69",X"01",X"60",X"A2"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_1.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_1.vhd deleted file mode 100644 index ab57e3df..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_1.vhd +++ /dev/null @@ -1,150 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_PROG_ROM_1 is -port ( - clk : in std_logic; - addr : in std_logic_vector(10 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_PROG_ROM_1 is - type rom is array(0 to 2047) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"03",X"86",X"41",X"B5",X"33",X"85",X"37",X"0A",X"0A",X"85",X"8B",X"A2",X"4E",X"A9",X"06",X"A0", - X"03",X"24",X"4E",X"70",X"04",X"A9",X"42",X"A0",X"0F",X"84",X"3E",X"20",X"76",X"68",X"A6",X"4F", - X"86",X"3D",X"20",X"E4",X"7E",X"A5",X"27",X"85",X"2B",X"A5",X"28",X"85",X"2C",X"A6",X"37",X"BD", - X"54",X"6C",X"85",X"8B",X"A2",X"47",X"A9",X"00",X"24",X"4E",X"70",X"04",X"A2",X"4E",X"A9",X"7E", - X"20",X"76",X"68",X"20",X"A4",X"7E",X"A5",X"86",X"29",X"10",X"D0",X"0A",X"A0",X"03",X"B1",X"2B", - X"29",X"0F",X"91",X"2B",X"10",X"1A",X"A9",X"65",X"A0",X"07",X"20",X"C9",X"7E",X"A6",X"37",X"BD", - X"45",X"6C",X"0A",X"69",X"A4",X"A8",X"A9",X"57",X"20",X"C9",X"7E",X"A9",X"18",X"20",X"4F",X"7A", - X"A6",X"41",X"CA",X"10",X"8C",X"60",X"18",X"65",X"8B",X"A8",X"8A",X"69",X"00",X"60",X"20",X"2D", - X"7F",X"A2",X"00",X"A9",X"16",X"20",X"34",X"7A",X"A2",X"1C",X"A9",X"00",X"20",X"34",X"7A",X"A2", - X"20",X"20",X"32",X"7A",X"A9",X"AD",X"20",X"57",X"7B",X"A9",X"17",X"4C",X"4F",X"7A",X"A5",X"90", - X"F0",X"0F",X"C6",X"90",X"A2",X"08",X"20",X"32",X"7A",X"A9",X"95",X"20",X"57",X"7B",X"4C",X"29", - X"7A",X"A8",X"A2",X"04",X"A9",X"02",X"24",X"97",X"10",X"0E",X"A5",X"AE",X"D0",X"11",X"A5",X"86", - X"29",X"10",X"D0",X"0B",X"A9",X"01",X"A0",X"10",X"84",X"37",X"20",X"34",X"7A",X"A4",X"37",X"98", - X"AA",X"A9",X"2F",X"4C",X"53",X"79",X"A5",X"90",X"F0",X"16",X"C6",X"90",X"A2",X"10",X"A9",X"06", - X"20",X"34",X"7A",X"A2",X"08",X"20",X"32",X"7A",X"A9",X"95",X"20",X"57",X"7B",X"20",X"29",X"7A", - X"A2",X"18",X"20",X"32",X"7A",X"A9",X"92",X"20",X"57",X"7B",X"A9",X"15",X"20",X"4F",X"7A",X"A5", - X"62",X"29",X"0F",X"D0",X"20",X"A2",X"14",X"A9",X"07",X"24",X"62",X"50",X"0B",X"A9",X"08",X"20", - X"34",X"7A",X"A2",X"2C",X"A9",X"0D",X"D0",X"07",X"20",X"34",X"7A",X"A2",X"28",X"A9",X"09",X"18", - X"65",X"91",X"4C",X"34",X"7A",X"A2",X"24",X"A9",X"11",X"D0",X"F4",X"AB",X"69",X"79",X"69",X"84", - X"69",X"8F",X"69",X"9F",X"69",X"DD",X"69",X"E6",X"69",X"04",X"6A",X"13",X"6A",X"22",X"6A",X"3A", - X"6A",X"4E",X"6A",X"65",X"6A",X"74",X"6A",X"88",X"6A",X"9C",X"6A",X"B7",X"6A",X"CC",X"6A",X"D5", - X"6A",X"F2",X"6A",X"1A",X"6B",X"C2",X"69",X"B5",X"69",X"93",X"69",X"E5",X"69",X"C9",X"69",X"CC", - X"69",X"CF",X"69",X"D2",X"69",X"FF",X"64",X"03",X"65",X"D5",X"69",X"D9",X"69",X"00",X"18",X"06", - X"36",X"3C",X"3C",X"12",X"00",X"BA",X"3C",X"00",X"66",X"2C",X"32",X"42",X"00",X"32",X"30",X"00", - X"20",X"3E",X"1E",X"AC",X"32",X"3E",X"3C",X"00",X"32",X"20",X"00",X"20",X"3E",X"1E",X"AC",X"2C", - X"32",X"3A",X"BC",X"00",X"20",X"3E",X"1E",X"2C",X"00",X"3E",X"30",X"26",X"3C",X"3A",X"80",X"26", - X"30",X"3A",X"1E",X"38",X"3C",X"00",X"1A",X"32",X"26",X"30",X"BA",X"34",X"3E",X"3A",X"24",X"00", - X"3A",X"3C",X"16",X"38",X"BC",X"3A",X"1E",X"2C",X"1E",X"1A",X"3C",X"00",X"32",X"34",X"3C",X"26", - X"32",X"B0",X"00",X"34",X"32",X"26",X"30",X"3C",X"BA",X"0A",X"0C",X"82",X"0E",X"02",X"82",X"10", - X"0C",X"82",X"14",X"02",X"82",X"04",X"0C",X"0C",X"82",X"04",X"12",X"02",X"82",X"34",X"1E",X"38", - X"00",X"1A",X"32",X"26",X"B0",X"C4",X"16",X"3E",X"44",X"26",X"2C",X"26",X"16",X"38",X"46",X"00", - X"20",X"3E",X"1E",X"2C",X"00",X"3C",X"16",X"30",X"2A",X"3A",X"00",X"1C",X"1E",X"3A",X"3C",X"38", - X"32",X"46",X"1E",X"9C",X"1A",X"32",X"30",X"22",X"38",X"16",X"3C",X"3E",X"2C",X"16",X"3C",X"26", - X"32",X"30",X"BA",X"46",X"32",X"3E",X"00",X"2C",X"16",X"30",X"1C",X"1E",X"1C",X"00",X"24",X"16", - X"38",X"9C",X"3C",X"24",X"16",X"3C",X"00",X"42",X"16",X"3A",X"00",X"16",X"00",X"22",X"38",X"1E", - X"16",X"3C",X"00",X"2C",X"16",X"30",X"1C",X"26",X"30",X"A2",X"3C",X"24",X"1E",X"00",X"1E",X"16", - X"22",X"2C",X"1E",X"00",X"24",X"16",X"3A",X"00",X"2C",X"16",X"30",X"1C",X"1E",X"9C",X"3C",X"24", - X"1E",X"00",X"1A",X"32",X"2C",X"3E",X"2E",X"18",X"26",X"16",X"00",X"24",X"16",X"3A",X"00",X"2C", - X"16",X"30",X"1C",X"1E",X"9C",X"46",X"32",X"3E",X"00",X"24",X"16",X"40",X"1E",X"00",X"2C",X"16", - X"30",X"1C",X"1E",X"9C",X"2C",X"26",X"20",X"1E",X"00",X"3A",X"3E",X"34",X"34",X"32",X"38",X"3C", - X"00",X"26",X"3A",X"00",X"22",X"32",X"30",X"9E",X"46",X"32",X"3E",X"38",X"00",X"3C",X"38",X"26", - X"34",X"00",X"26",X"3A",X"00",X"32",X"30",X"1E",X"00",X"42",X"16",X"C6",X"46",X"32",X"3E",X"00", - X"16",X"38",X"1E",X"00",X"24",X"32",X"34",X"1E",X"2C",X"1E",X"3A",X"3A",X"2C",X"46",X"00",X"2E", - X"16",X"38",X"32",X"32",X"30",X"1E",X"9C",X"1A",X"32",X"2E",X"2E",X"3E",X"30",X"26",X"1A",X"16", - X"3C",X"26",X"32",X"30",X"00",X"3A",X"46",X"3A",X"3C",X"1E",X"2E",X"00",X"1C",X"1E",X"3A",X"3C", - X"38",X"32",X"46",X"1E",X"9C",X"46",X"32",X"3E",X"00",X"1A",X"38",X"1E",X"16",X"3C",X"1E",X"1C", - X"00",X"16",X"00",X"3C",X"42",X"32",X"00",X"2E",X"26",X"2C",X"1E",X"00",X"1A",X"38",X"16",X"3C", - X"1E",X"B8",X"46",X"32",X"3E",X"00",X"28",X"3E",X"3A",X"3C",X"00",X"1C",X"1E",X"3A",X"3C",X"38", - X"32",X"46",X"1E",X"1C",X"00",X"16",X"00",X"04",X"02",X"02",X"00",X"2E",X"1E",X"22",X"16",X"18", - X"3E",X"1A",X"2A",X"00",X"2C",X"16",X"30",X"1C",X"1E",X"B8",X"3C",X"24",X"1E",X"38",X"1E",X"00", - X"42",X"1E",X"38",X"1E",X"00",X"30",X"32",X"00",X"3A",X"3E",X"38",X"40",X"26",X"40",X"32",X"38", - X"BA",X"1C",X"A5",X"02",X"4A",X"4A",X"4A",X"AA",X"BD",X"F2",X"76",X"85",X"46",X"0A",X"85",X"47", - X"A6",X"01",X"BD",X"F6",X"76",X"85",X"0B",X"A5",X"02",X"29",X"0F",X"C9",X"09",X"90",X"04",X"49", - X"0F",X"69",X"00",X"85",X"37",X"49",X"07",X"69",X"01",X"29",X"0F",X"AA",X"BD",X"E9",X"76",X"A4", - X"0B",X"20",X"EF",X"70",X"85",X"58",X"A6",X"37",X"BD",X"E9",X"76",X"20",X"EF",X"70",X"85",X"59", - X"60",X"A9",X"DA",X"A4",X"0B",X"30",X"08",X"A6",X"23",X"E0",X"02",X"D0",X"02",X"A9",X"90",X"20", - X"EF",X"70",X"AA",X"A0",X"00",X"84",X"37",X"A0",X"07",X"20",X"C6",X"79",X"A8",X"4C",X"61",X"64", - X"A5",X"5D",X"29",X"0F",X"F0",X"49",X"F8",X"A5",X"9E",X"38",X"E5",X"A2",X"AA",X"A5",X"9F",X"E5", - X"A3",X"A8",X"A5",X"A0",X"E9",X"00",X"D8",X"90",X"36",X"F0",X"04",X"A2",X"99",X"A0",X"99",X"8A", - X"D0",X"03",X"98",X"F0",X"2A",X"98",X"A4",X"AD",X"84",X"3A",X"A4",X"AE",X"84",X"3B",X"A0",X"00", - X"84",X"A2",X"84",X"A3",X"20",X"63",X"64",X"A5",X"A2",X"A6",X"A3",X"24",X"97",X"30",X"04",X"A5", - X"3A",X"A6",X"3B",X"85",X"95",X"86",X"96",X"05",X"96",X"F0",X"04",X"A9",X"7F",X"85",X"90",X"60", - X"A5",X"0F",X"18",X"65",X"51",X"85",X"37",X"A5",X"10",X"65",X"4F",X"29",X"0F",X"A8",X"A2",X"03", - X"86",X"41",X"B5",X"33",X"85",X"3A",X"0A",X"0A",X"AA",X"38",X"A5",X"37",X"FD",X"44",X"4E",X"85", - X"38",X"98",X"FD",X"45",X"4E",X"90",X"12",X"D0",X"10",X"A6",X"3A",X"BD",X"54",X"6C",X"4A",X"4A", - X"4A",X"AA",X"BD",X"63",X"6C",X"C5",X"38",X"B0",X"09",X"A6",X"41",X"CA",X"10",X"D2",X"A9",X"01", - X"D0",X"05",X"A6",X"3A",X"BD",X"45",X"6C",X"A8",X"85",X"8E",X"20",X"76",X"75",X"88",X"D0",X"FA", - X"F8",X"86",X"92",X"84",X"93",X"98",X"18",X"65",X"92",X"90",X"02",X"E6",X"93",X"C6",X"8E",X"D0", - X"F5",X"85",X"92",X"D8",X"60",X"02",X"02",X"02",X"02",X"03",X"03",X"04",X"04",X"04",X"04",X"05", - X"05",X"05",X"05",X"05",X"00",X"08",X"10",X"10",X"18",X"10",X"18",X"18",X"18",X"18",X"18",X"18", - X"18",X"18",X"18",X"FF",X"80",X"40",X"20",X"68",X"A2",X"02",X"86",X"37",X"A9",X"00",X"85",X"5D", - X"85",X"4D",X"85",X"49",X"B5",X"55",X"30",X"28",X"B5",X"5F",X"85",X"48",X"B5",X"5E",X"24",X"4E", - X"70",X"0A",X"0A",X"26",X"48",X"26",X"49",X"0A",X"26",X"48",X"26",X"49",X"B5",X"5A",X"85",X"4C", - X"B5",X"08",X"48",X"B5",X"07",X"AA",X"68",X"20",X"00",X"6D",X"A6",X"37",X"95",X"08",X"94",X"07", - X"A9",X"00",X"85",X"49",X"8A",X"F0",X"02",X"A5",X"63",X"85",X"48",X"A9",X"80",X"85",X"4C",X"B4", - X"5A",X"B5",X"5F",X"48",X"B5",X"5E",X"AA",X"68",X"20",X"FE",X"6C",X"A5",X"37",X"4A",X"AA",X"B5", - X"58",X"85",X"48",X"B5",X"46",X"85",X"4C",X"A5",X"23",X"C9",X"02",X"D0",X"0C",X"A5",X"48",X"4A", - X"18",X"65",X"48",X"85",X"48",X"90",X"02",X"E6",X"49",X"20",X"04",X"6D",X"48",X"8A",X"A6",X"37", - X"95",X"5A",X"94",X"5E",X"68",X"95",X"5F",X"CA",X"CA",X"30",X"03",X"4C",X"6A",X"6C",X"60",X"86", - X"4A",X"06",X"4A",X"2A",X"26",X"4A",X"2A",X"A8",X"A5",X"4A",X"2A",X"29",X"03",X"60",X"84",X"4D", - X"85",X"4B",X"86",X"4A",X"A5",X"4C",X"45",X"4D",X"10",X"34",X"38",X"A5",X"4A",X"E5",X"48",X"A8", - X"A5",X"4B",X"E5",X"49",X"90",X"16",X"D0",X"0D",X"C0",X"00",X"D0",X"09",X"85",X"4A",X"85",X"4B", - X"85",X"4D",X"AA",X"A8",X"60",X"A6",X"4D",X"84",X"4A",X"85",X"4B",X"60",X"49",X"FF",X"AA",X"98", - X"49",X"FF",X"A8",X"C8",X"D0",X"01",X"E8",X"8A",X"A6",X"4C",X"86",X"4D",X"90",X"E9",X"18",X"A5", - X"4A",X"65",X"48",X"A8",X"A5",X"4B",X"65",X"49",X"90",X"DB",X"A9",X"FF",X"A8",X"B0",X"D6",X"20", - X"84",X"66",X"A9",X"6B",X"85",X"69",X"A2",X"00",X"86",X"6A",X"A5",X"86",X"4A",X"B0",X"11",X"86", - X"81",X"CA",X"86",X"79",X"86",X"7A",X"86",X"7D",X"86",X"7E",X"A0",X"07",X"A2",X"77",X"D0",X"11", - X"A9",X"C0",X"85",X"81",X"CA",X"86",X"7B",X"86",X"7C",X"86",X"7F",X"86",X"80",X"A0",X"87",X"A2", - X"77",X"20",X"B8",X"6F",X"A5",X"1D",X"18",X"65",X"51",X"A8",X"A5",X"1E",X"29",X"03",X"69",X"00", - X"AA",X"98",X"38",X"E9",X"30",X"A8",X"8A",X"E9",X"00",X"B0",X"03",X"A0",X"00",X"98",X"24",X"4E", - X"70",X"02",X"A0",X"00",X"84",X"38",X"85",X"39",X"18",X"65",X"4F",X"24",X"4E",X"70",X"08",X"29", - X"0F",X"A0",X"E2",X"A2",X"51",X"D0",X"10",X"29",X"03",X"85",X"3A",X"A0",X"BC",X"A2",X"4B",X"24", - X"38",X"10",X"04",X"A0",X"CE",X"A2",X"4B",X"86",X"2C",X"84",X"2B",X"0A",X"0A",X"A8",X"B1",X"2B", - X"38",X"E5",X"53",X"85",X"1B",X"C8",X"B1",X"2B",X"29",X"0F",X"E5",X"54",X"85",X"1C",X"C8",X"B1", - X"2B",X"38",X"E5",X"51",X"85",X"19",X"C8",X"B1",X"2B",X"29",X"03",X"E9",X"00",X"18",X"65",X"39", - X"85",X"1A",X"A5",X"39",X"AA",X"0A",X"18",X"24",X"38",X"10",X"24",X"A5",X"3A",X"0A",X"A8",X"B9", - X"07",X"78",X"85",X"2B",X"B9",X"08",X"78",X"85",X"2C",X"A0",X"00",X"E8",X"8A",X"0A",X"65",X"2D", - X"91",X"69",X"A5",X"2E",X"69",X"00",X"C8",X"91",X"69",X"E6",X"69",X"E6",X"69",X"D0",X"0A",X"65", - X"2D",X"85",X"2B",X"A5",X"2E",X"69",X"00",X"85",X"2C",X"A0",X"00",X"B1",X"2B",X"C8",X"AA",X"B1", - X"2B",X"C8",X"C9",X"A0",X"90",X"3D",X"C9",X"D0",X"90",X"16",X"F0",X"03",X"4C",X"85",X"6F",X"C6", - X"69",X"A0",X"00",X"B1",X"69",X"85",X"2C",X"C6",X"69",X"B1",X"69",X"85",X"2B",X"4C",X"2B",X"6E", - X"85",X"37",X"98",X"18",X"65",X"2B",X"A0",X"00",X"91",X"69",X"86",X"2B",X"E6",X"69",X"A5",X"2C", - X"69",X"00",X"91",X"69",X"E6",X"69",X"A5",X"37",X"29",X"0F",X"09",X"20",X"06",X"2B",X"2A",X"85", - X"2C",X"D0",X"B6",X"86",X"3F",X"AA",X"B1",X"2B",X"85",X"3D",X"C8",X"B1",X"2B",X"C8",X"84",X"39", - X"29",X"03",X"A8",X"8A",X"29",X"03",X"85",X"40",X"8A",X"6A",X"6A",X"6A",X"6A",X"85",X"4C",X"29", - X"0F",X"85",X"41",X"A9",X"09",X"38",X"E5",X"41",X"AA",X"98",X"4A",X"66",X"3D",X"46",X"40",X"66", - X"3F",X"CA",X"D0",X"F6",X"85",X"3E",X"A5",X"19",X"85",X"15",X"18",X"65",X"3D",X"85",X"19",X"A5", - X"1A",X"85",X"16",X"65",X"3E",X"85",X"1A",X"24",X"4C",X"10",X"12",X"A5",X"3F",X"49",X"FF",X"AA", - X"A5",X"40",X"49",X"FF",X"A8",X"E8",X"86",X"3F",X"D0",X"01",X"C8",X"84",X"40",X"A5",X"1B",X"85", - X"17",X"18",X"65",X"3F",X"85",X"1B",X"A5",X"1C",X"85",X"18",X"65",X"40",X"85",X"1C",X"A5",X"1A", - X"10",X"03",X"4C",X"80",X"6F",X"24",X"81",X"30",X"3F",X"A5",X"19",X"C5",X"1D",X"A5",X"1A",X"E5", - X"1E",X"90",X"06",X"A9",X"80",X"85",X"81",X"B0",X"28",X"A5",X"1F",X"C5",X"1B",X"A5",X"20",X"E5", - X"1C",X"90",X"7D",X"A9",X"80",X"85",X"81",X"A5",X"17",X"C5",X"1F",X"A5",X"18",X"30",X"12",X"E5", - X"20",X"90",X"0E",X"20",X"6E",X"70",X"85",X"7A",X"84",X"79",X"8A",X"10",X"04",X"A9",X"8F",X"85", - X"5D",X"A0",X"47",X"A2",X"77",X"20",X"B8",X"6F",X"A5",X"81",X"29",X"0F",X"D0",X"27",X"A5",X"19", - X"C5",X"1D",X"A5",X"1A",X"E5",X"1E",X"90",X"48",X"20",X"22",X"70",X"24",X"81",X"70",X"07",X"85", - X"7E",X"84",X"7D",X"4C",X"7F",X"6F",X"85",X"80",X"84",X"7F",X"A2",X"CF",X"86",X"81",X"A0",X"C7", - X"A2",X"77",X"20",X"B8",X"6F",X"A5",X"1D",X"18",X"69",X"30",X"AA",X"A5",X"1E",X"69",X"00",X"E4", - X"19",X"E5",X"1A",X"90",X"1A",X"A5",X"1B",X"C5",X"1F",X"A5",X"1C",X"30",X"13",X"E5",X"20",X"90", - X"0F",X"20",X"6E",X"70",X"85",X"7C",X"84",X"7B",X"8A",X"30",X"04",X"A9",X"8F",X"85",X"5D",X"60", - X"A4",X"39",X"4C",X"2B",X"6E",X"84",X"39",X"85",X"37",X"29",X"03",X"85",X"3F",X"A5",X"37",X"29", - X"08",X"4A",X"85",X"38",X"8A",X"29",X"08",X"05",X"38",X"4A",X"4A",X"86",X"38",X"A8",X"8A",X"29", - X"03",X"0A",X"06",X"3F",X"88",X"10",X"FA",X"85",X"3D",X"A5",X"37",X"4A",X"4A",X"6A",X"6A",X"85", - X"4C",X"A9",X"00",X"85",X"40",X"4C",X"A4",X"6E",X"86",X"32",X"84",X"31",X"24",X"4E",X"70",X"26", - X"A5",X"02",X"0A",X"A8",X"A2",X"00",X"B1",X"31",X"10",X"01",X"CA",X"18",X"65",X"0F",X"85",X"1D", - X"8A",X"65",X"10",X"85",X"1E",X"C8",X"A2",X"00",X"B1",X"31",X"10",X"01",X"CA",X"18",X"65",X"0D", - X"A8",X"8A",X"65",X"0E",X"D0",X"0C",X"A5",X"0F",X"85",X"1D",X"A5",X"10",X"85",X"1E",X"A4",X"0D", - X"A5",X"0E",X"29",X"0F",X"85",X"20",X"84",X"1F",X"60",X"A5",X"19",X"38",X"E5",X"15",X"85",X"3D"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_2.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_2.vhd deleted file mode 100644 index e5706ae1..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_2.vhd +++ /dev/null @@ -1,150 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_PROG_ROM_2 is -port ( - clk : in std_logic; - addr : in std_logic_vector(10 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_PROG_ROM_2 is - type rom is array(0 to 2047) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"A5",X"17",X"49",X"FF",X"A8",X"A5",X"18",X"49",X"FF",X"AA",X"C8",X"D0",X"01",X"E8",X"98",X"18", - X"65",X"1B",X"A8",X"8A",X"A2",X"00",X"65",X"1C",X"10",X"05",X"98",X"49",X"FF",X"A8",X"CA",X"86", - X"40",X"60",X"20",X"F9",X"6F",X"98",X"A4",X"3D",X"20",X"C0",X"70",X"A5",X"1D",X"38",X"E5",X"15", - X"A4",X"77",X"20",X"EF",X"70",X"86",X"37",X"A4",X"76",X"20",X"F1",X"70",X"18",X"65",X"37",X"85", - X"37",X"24",X"40",X"30",X"0E",X"18",X"65",X"17",X"85",X"48",X"A5",X"18",X"69",X"00",X"85",X"49", - X"4C",X"60",X"70",X"38",X"A5",X"17",X"E5",X"37",X"85",X"48",X"A5",X"18",X"E9",X"00",X"85",X"49", - X"A6",X"1F",X"A5",X"20",X"20",X"9B",X"70",X"10",X"04",X"A2",X"8F",X"86",X"5D",X"60",X"20",X"F9", - X"6F",X"A5",X"3D",X"20",X"C0",X"70",X"A5",X"17",X"38",X"E5",X"1F",X"A4",X"77",X"20",X"EF",X"70", - X"86",X"37",X"A4",X"76",X"20",X"F1",X"70",X"18",X"65",X"37",X"85",X"37",X"18",X"65",X"15",X"85", - X"48",X"A5",X"16",X"69",X"00",X"85",X"49",X"A6",X"1D",X"A5",X"1E",X"85",X"4B",X"A9",X"80",X"24", - X"49",X"10",X"14",X"A5",X"48",X"49",X"FF",X"85",X"48",X"A5",X"49",X"49",X"FF",X"85",X"49",X"E6", - X"48",X"D0",X"02",X"E6",X"49",X"A9",X"00",X"85",X"4C",X"A0",X"00",X"84",X"4D",X"4C",X"02",X"6D", - X"84",X"75",X"20",X"D1",X"70",X"86",X"77",X"A2",X"00",X"86",X"78",X"20",X"D5",X"70",X"86",X"76", - X"60",X"85",X"78",X"A9",X"00",X"A0",X"07",X"26",X"78",X"2A",X"B0",X"0E",X"C5",X"75",X"90",X"02", - X"E5",X"75",X"88",X"10",X"F2",X"26",X"78",X"A6",X"78",X"60",X"E5",X"75",X"38",X"B0",X"F3",X"85", - X"43",X"84",X"42",X"A5",X"43",X"48",X"49",X"FF",X"85",X"43",X"A9",X"00",X"85",X"44",X"85",X"45", - X"A2",X"08",X"06",X"43",X"B0",X"06",X"65",X"42",X"90",X"02",X"E6",X"45",X"CA",X"D0",X"07",X"AA", - X"68",X"85",X"43",X"A5",X"45",X"60",X"0A",X"26",X"45",X"90",X"E7",X"55",X"A9",X"00",X"85",X"55", - X"85",X"57",X"A9",X"0F",X"24",X"4E",X"50",X"02",X"A9",X"03",X"85",X"37",X"A5",X"08",X"24",X"5A", - X"10",X"0D",X"C9",X"20",X"B0",X"1A",X"20",X"2C",X"73",X"B0",X"15",X"C6",X"4F",X"90",X"0B",X"C9", - X"E0",X"90",X"0D",X"20",X"1B",X"73",X"90",X"08",X"E6",X"4F",X"A5",X"4F",X"25",X"37",X"85",X"4F", - X"24",X"4E",X"50",X"03",X"4C",X"3E",X"72",X"A5",X"0A",X"24",X"5C",X"10",X"0A",X"C9",X"40",X"B0", - X"03",X"20",X"54",X"73",X"4C",X"03",X"72",X"C9",X"A5",X"90",X"F9",X"20",X"FE",X"72",X"C9",X"02", - X"90",X"06",X"D0",X"0A",X"E0",X"08",X"B0",X"06",X"20",X"3D",X"73",X"4C",X"03",X"72",X"24",X"5D", - X"10",X"03",X"4C",X"39",X"72",X"A5",X"0F",X"18",X"65",X"51",X"85",X"51",X"A5",X"10",X"29",X"03", - X"65",X"4F",X"29",X"0F",X"AA",X"4A",X"66",X"51",X"4A",X"66",X"51",X"18",X"69",X"02",X"29",X"03", - X"85",X"4F",X"8A",X"29",X"0C",X"48",X"0A",X"0A",X"AA",X"BD",X"E2",X"51",X"38",X"E5",X"53",X"85", - X"48",X"BD",X"E3",X"51",X"E5",X"54",X"85",X"49",X"A9",X"80",X"85",X"4C",X"A0",X"00",X"A6",X"0D", - X"A5",X"0E",X"29",X"0F",X"20",X"FE",X"6C",X"4A",X"66",X"4A",X"4A",X"66",X"4A",X"85",X"4B",X"68", - X"AA",X"BD",X"BC",X"4B",X"85",X"48",X"BD",X"BD",X"4B",X"85",X"49",X"A9",X"00",X"85",X"50",X"85", - X"52",X"85",X"53",X"85",X"54",X"85",X"09",X"85",X"07",X"85",X"4C",X"20",X"04",X"6D",X"84",X"0A", - X"4A",X"66",X"0A",X"66",X"09",X"4A",X"66",X"0A",X"66",X"09",X"A9",X"80",X"85",X"08",X"A9",X"40", - X"85",X"4E",X"60",X"20",X"FE",X"72",X"09",X"00",X"D0",X"2B",X"E0",X"02",X"B0",X"27",X"C0",X"02", - X"B0",X"23",X"A5",X"02",X"38",X"E9",X"07",X"C9",X"03",X"B0",X"1E",X"A5",X"61",X"A2",X"80",X"C9", - X"04",X"90",X"06",X"C9",X"08",X"B0",X"12",X"A2",X"C0",X"A5",X"5F",X"C9",X"04",X"B0",X"0A",X"8A", - X"05",X"5D",X"85",X"5D",X"60",X"24",X"5D",X"10",X"04",X"A9",X"8F",X"85",X"5D",X"60",X"A5",X"0A", - X"24",X"5C",X"30",X"1A",X"C9",X"A5",X"90",X"2A",X"20",X"3D",X"73",X"F0",X"10",X"C9",X"02",X"90", - X"0C",X"20",X"2D",X"65",X"20",X"96",X"6B",X"A2",X"FF",X"9A",X"4C",X"40",X"60",X"60",X"A5",X"53", - X"05",X"54",X"F0",X"0E",X"20",X"54",X"73",X"B0",X"F4",X"A9",X"00",X"85",X"52",X"85",X"53",X"85", - X"54",X"60",X"20",X"FE",X"72",X"A8",X"D0",X"F9",X"E0",X"60",X"B0",X"F5",X"A5",X"0F",X"18",X"65", - X"51",X"85",X"51",X"A5",X"10",X"65",X"4F",X"29",X"03",X"AA",X"06",X"51",X"2A",X"06",X"51",X"2A", - X"48",X"38",X"E9",X"02",X"29",X"0F",X"85",X"4F",X"8A",X"0A",X"0A",X"AA",X"BD",X"BC",X"4B",X"85", - X"48",X"BD",X"BD",X"4B",X"85",X"49",X"A9",X"80",X"85",X"4C",X"A5",X"0E",X"A6",X"0D",X"A0",X"00", - X"20",X"FE",X"6C",X"06",X"4A",X"2A",X"06",X"4A",X"2A",X"85",X"4B",X"A9",X"A3",X"A2",X"78",X"85", - X"49",X"86",X"48",X"20",X"04",X"6D",X"A9",X"18",X"85",X"48",X"A9",X"A1",X"85",X"49",X"A9",X"00", - X"85",X"4C",X"85",X"4E",X"85",X"07",X"85",X"09",X"85",X"50",X"85",X"52",X"20",X"04",X"6D",X"68", - X"29",X"0C",X"0A",X"AA",X"BD",X"22",X"52",X"85",X"48",X"BD",X"23",X"52",X"85",X"49",X"20",X"04", - X"6D",X"85",X"54",X"84",X"53",X"A9",X"80",X"85",X"08",X"A9",X"9E",X"85",X"0A",X"60",X"A0",X"FF", - X"A5",X"7E",X"A6",X"7D",X"C5",X"80",X"90",X"12",X"D0",X"0C",X"A4",X"7F",X"C4",X"7D",X"B0",X"0A", - X"A6",X"7F",X"A4",X"7D",X"90",X"04",X"A5",X"80",X"A6",X"7F",X"60",X"20",X"6B",X"73",X"A5",X"50", - X"18",X"65",X"3D",X"85",X"50",X"A5",X"51",X"65",X"3E",X"85",X"51",X"60",X"20",X"6B",X"73",X"A5", - X"50",X"38",X"E5",X"3D",X"85",X"50",X"A5",X"51",X"E5",X"3E",X"85",X"51",X"60",X"20",X"8A",X"73", - X"A5",X"52",X"18",X"65",X"3F",X"85",X"52",X"A5",X"53",X"65",X"40",X"85",X"53",X"A5",X"54",X"69", - X"00",X"85",X"54",X"60",X"20",X"8A",X"73",X"A5",X"52",X"38",X"E5",X"3F",X"85",X"52",X"A5",X"53", - X"E5",X"40",X"85",X"53",X"A5",X"54",X"E9",X"00",X"85",X"54",X"60",X"A9",X"80",X"85",X"55",X"A5", - X"5F",X"85",X"3D",X"A9",X"00",X"85",X"3E",X"A5",X"5E",X"A2",X"02",X"24",X"4E",X"70",X"02",X"A2", - X"04",X"0A",X"26",X"3D",X"26",X"3E",X"CA",X"D0",X"F8",X"60",X"A9",X"80",X"85",X"57",X"A5",X"61", - X"85",X"3F",X"A9",X"00",X"85",X"40",X"A5",X"60",X"A2",X"02",X"24",X"4E",X"70",X"02",X"A2",X"04", - X"0A",X"26",X"3F",X"26",X"40",X"CA",X"D0",X"F8",X"60",X"A9",X"BA",X"85",X"64",X"A9",X"51",X"85", - X"65",X"A9",X"45",X"85",X"28",X"A9",X"6B",X"85",X"69",X"A9",X"00",X"85",X"27",X"85",X"6A",X"85", - X"37",X"85",X"38",X"85",X"39",X"A9",X"F0",X"85",X"2B",X"A9",X"44",X"85",X"2C",X"20",X"03",X"75", - X"A0",X"00",X"B1",X"64",X"AA",X"C8",X"B1",X"64",X"C9",X"A0",X"90",X"12",X"C9",X"D0",X"90",X"25", - X"F0",X"4F",X"91",X"27",X"88",X"8A",X"49",X"08",X"91",X"27",X"C8",X"C8",X"D0",X"E4",X"38",X"E9", - X"20",X"91",X"27",X"88",X"8A",X"91",X"27",X"C8",X"C8",X"B1",X"64",X"91",X"27",X"C8",X"B1",X"64", - X"91",X"27",X"C8",X"D0",X"CD",X"29",X"0F",X"85",X"3A",X"86",X"3B",X"88",X"20",X"F8",X"74",X"C8", - X"C8",X"98",X"A0",X"00",X"18",X"65",X"64",X"91",X"69",X"E6",X"69",X"A5",X"65",X"69",X"00",X"91", - X"69",X"E6",X"69",X"A5",X"3B",X"0A",X"85",X"64",X"A5",X"3A",X"2A",X"09",X"40",X"85",X"65",X"D0", - X"A1",X"88",X"20",X"F8",X"74",X"A0",X"00",X"C6",X"69",X"B1",X"69",X"85",X"65",X"C6",X"69",X"B1", - X"69",X"85",X"64",X"A6",X"69",X"E0",X"6B",X"D0",X"89",X"E6",X"37",X"A2",X"04",X"E4",X"37",X"D0", - X"81",X"A9",X"00",X"85",X"37",X"91",X"27",X"C8",X"A9",X"D0",X"91",X"27",X"C8",X"20",X"F8",X"74", - X"E6",X"39",X"A2",X"04",X"E4",X"39",X"F0",X"03",X"4C",X"CD",X"73",X"A9",X"F0",X"85",X"64",X"A9", - X"44",X"85",X"65",X"A5",X"38",X"18",X"65",X"2B",X"85",X"2B",X"D0",X"02",X"E6",X"2C",X"A0",X"07", - X"B1",X"64",X"91",X"2B",X"88",X"10",X"F9",X"A9",X"7E",X"85",X"64",X"A9",X"4E",X"85",X"65",X"A9", - X"00",X"85",X"27",X"A9",X"47",X"85",X"28",X"A0",X"00",X"A2",X"00",X"B1",X"64",X"E0",X"01",X"D0", - X"05",X"38",X"E9",X"20",X"D0",X"16",X"E0",X"07",X"D0",X"12",X"29",X"03",X"85",X"37",X"88",X"B1", - X"64",X"46",X"37",X"6A",X"46",X"37",X"6A",X"91",X"27",X"C8",X"A9",X"04",X"91",X"27",X"E8",X"8A", - X"29",X"07",X"AA",X"C8",X"C0",X"20",X"90",X"D3",X"A5",X"21",X"F0",X"2B",X"A2",X"05",X"86",X"37", - X"0A",X"AA",X"CA",X"CA",X"A9",X"40",X"85",X"27",X"A9",X"47",X"85",X"28",X"BD",X"6A",X"5E",X"BC", - X"69",X"5E",X"20",X"A4",X"7E",X"A6",X"65",X"A4",X"64",X"20",X"F2",X"79",X"A5",X"2C",X"A4",X"2B", - X"20",X"CD",X"7E",X"C6",X"37",X"10",X"EE",X"60",X"98",X"18",X"65",X"27",X"85",X"27",X"90",X"02", - X"E6",X"28",X"60",X"A5",X"28",X"4A",X"29",X"0F",X"09",X"C0",X"AA",X"A5",X"27",X"6A",X"A4",X"38", - X"91",X"2B",X"8A",X"C8",X"91",X"2B",X"C8",X"84",X"38",X"60",X"A8",X"A2",X"03",X"86",X"39",X"A2", - X"02",X"B5",X"5F",X"B4",X"5E",X"84",X"37",X"A0",X"09",X"86",X"3A",X"AA",X"20",X"C6",X"79",X"48", - X"8A",X"A6",X"39",X"95",X"A7",X"94",X"A8",X"68",X"95",X"A6",X"A6",X"3A",X"A0",X"02",X"05",X"94", - X"05",X"93",X"F0",X"07",X"B5",X"5A",X"0A",X"A9",X"00",X"2A",X"A8",X"8A",X"4A",X"AA",X"94",X"9A", - X"A9",X"00",X"85",X"39",X"A6",X"3A",X"CA",X"CA",X"10",X"C7",X"20",X"FE",X"72",X"86",X"37",X"24", - X"4E",X"50",X"06",X"06",X"37",X"2A",X"06",X"37",X"2A",X"AA",X"A4",X"37",X"20",X"C2",X"79",X"85", - X"AF",X"86",X"B0",X"84",X"B1",X"60",X"A2",X"15",X"24",X"5D",X"70",X"0A",X"A2",X"05",X"A5",X"5D", - X"29",X"0F",X"D0",X"02",X"A2",X"50",X"F8",X"8A",X"18",X"65",X"A4",X"85",X"A4",X"A5",X"A5",X"69", - X"00",X"85",X"A5",X"D8",X"60",X"A2",X"0C",X"A9",X"00",X"85",X"8F",X"8A",X"4A",X"A8",X"B9",X"8D", - X"76",X"C5",X"56",X"90",X"70",X"86",X"3A",X"20",X"2F",X"76",X"E0",X"0C",X"D0",X"03",X"18",X"65", - X"3D",X"20",X"BF",X"76",X"86",X"19",X"84",X"1A",X"A6",X"3A",X"E8",X"20",X"2F",X"76",X"CA",X"E0", - X"0C",X"D0",X"03",X"18",X"65",X"3F",X"20",X"BF",X"76",X"86",X"1B",X"84",X"1C",X"98",X"10",X"0B", - X"49",X"FF",X"A8",X"8A",X"49",X"FF",X"AA",X"E8",X"D0",X"01",X"C8",X"C0",X"04",X"B0",X"3A",X"20", - X"43",X"78",X"A0",X"00",X"A6",X"3A",X"E0",X"0C",X"D0",X"13",X"A5",X"56",X"29",X"07",X"0A",X"AA", - X"BD",X"9E",X"4E",X"91",X"27",X"C8",X"BD",X"9F",X"4E",X"91",X"27",X"D0",X"13",X"20",X"2D",X"76", - X"98",X"A4",X"37",X"91",X"27",X"C8",X"E8",X"20",X"2D",X"76",X"98",X"CA",X"A4",X"37",X"91",X"27", - X"20",X"38",X"78",X"A6",X"3A",X"CA",X"CA",X"10",X"82",X"A5",X"56",X"49",X"7F",X"C9",X"40",X"90", - X"0B",X"4A",X"4A",X"4A",X"09",X"08",X"AA",X"A9",X"20",X"4C",X"53",X"79",X"60",X"84",X"37",X"A5", - X"91",X"F0",X"1B",X"C9",X"02",X"90",X"10",X"F0",X"07",X"BD",X"7F",X"76",X"BC",X"10",X"4F",X"60", - X"BD",X"71",X"76",X"BC",X"04",X"4F",X"60",X"BD",X"63",X"76",X"BC",X"F8",X"4E",X"60",X"BD",X"55", - X"76",X"BC",X"EC",X"4E",X"60",X"00",X"FE",X"FF",X"FF",X"FE",X"00",X"FF",X"00",X"00",X"02",X"02", - X"FF",X"00",X"03",X"02",X"01",X"00",X"01",X"FC",X"01",X"FF",X"FF",X"02",X"00",X"00",X"FF",X"00", - X"02",X"FF",X"00",X"FD",X"00",X"01",X"00",X"FF",X"FF",X"00",X"FF",X"03",X"00",X"00",X"03",X"01", - X"FF",X"FB",X"00",X"01",X"FF",X"03",X"01",X"FF",X"FD",X"01",X"01",X"00",X"03",X"5D",X"60",X"64", - X"6D",X"70",X"74",X"7F",X"A5",X"61",X"4A",X"4A",X"4A",X"C9",X"08",X"90",X"02",X"A9",X"07",X"85", - X"3F",X"A5",X"5F",X"4A",X"4A",X"C9",X"08",X"90",X"02",X"A9",X"07",X"24",X"5A",X"30",X"05",X"49", - X"FF",X"18",X"69",X"01",X"85",X"3D",X"A5",X"74",X"4A",X"4A",X"29",X"03",X"85",X"91",X"60",X"A0", - X"00",X"85",X"38",X"0A",X"A5",X"56",X"85",X"37",X"90",X"02",X"A0",X"FF",X"84",X"39",X"A2",X"00", - X"A0",X"00",X"46",X"37",X"B0",X"03",X"D0",X"0A",X"60",X"18",X"8A",X"65",X"38",X"AA",X"98",X"65", - X"39",X"A8",X"06",X"38",X"26",X"39",X"4C",X"D2",X"76",X"00",X"32",X"5F",X"9A",X"B5",X"CD",X"EE", - X"FB",X"FF",X"00",X"80",X"C0",X"40",X"00",X"02",X"05",X"08",X"0B",X"0D",X"0F",X"10",X"11",X"12", - X"13",X"14",X"16",X"18",X"1A",X"1C",X"FF",X"EE",X"0C",X"EB",X"08",X"EA",X"04",X"E9",X"FF",X"EA", - X"FB",X"EB",X"F8",X"ED",X"F3",X"F1",X"F0",X"F5",X"EE",X"F8",X"EB",X"F8",X"00",X"F9",X"FD",X"F9", - X"FC",X"FA",X"FB",X"F8",X"00",X"F8",X"FF",X"F8",X"FD",X"F9",X"FC",X"F8",X"00",X"F9",X"FE",X"F9", - X"FD",X"FA",X"FC",X"F8",X"00",X"F8",X"FF",X"F4",X"12",X"F1",X"10",X"ED",X"0D",X"EB",X"08",X"EA", - X"05",X"E9",X"01",X"EA",X"FC",X"EB",X"F8",X"EE",X"F5",X"F0",X"F1",X"F2",X"EE",X"F8",X"EA",X"FB", - X"EA",X"FD",X"EA",X"ED",X"F3",X"F1",X"F0",X"F7",X"EE",X"F8",X"EB",X"FD",X"EA",X"03",X"EA",X"05", - X"EA",X"08",X"EA",X"04",X"EE",X"FC",X"F9",X"FD",X"F8",X"FF",X"F8",X"01",X"F8",X"FC",X"FA",X"FD", - X"F9",X"FE",X"F9",X"00",X"F7",X"01",X"F8",X"FD",X"F8",X"F9",X"FC",X"F9",X"FA",X"FB",X"FA",X"FC", - X"F9",X"FD",X"F9",X"EA",X"FC",X"EB",X"F8",X"03",X"F9",X"04",X"F9",X"05",X"F9",X"06",X"FB",X"FB", - X"EA",X"FD",X"EA",X"03",X"EA",X"08",X"EB",X"0C",X"EE",X"0F",X"F0",X"13",X"F3",X"15",X"F8",X"16", - X"FB",X"17",X"FF",X"16",X"04",X"10",X"F1",X"12",X"F4",X"15",X"F8",X"16",X"FC",X"03",X"F9",X"04", - X"F9",X"05",X"FA",X"07",X"FA",X"07",X"FC",X"02",X"F8",X"FF",X"F8",X"00",X"F7",X"02",X"F9",X"03", - X"F9",X"04",X"FA",X"FF",X"F8",X"01",X"F8",X"08",X"FE",X"08",X"FF",X"08",X"00",X"07",X"02",X"07", - X"FC",X"07",X"FD",X"08",X"00",X"08",X"01",X"0C",X"EE",X"0F",X"F0",X"13",X"F3",X"15",X"F8",X"16", - X"FB",X"17",X"FF",X"16",X"04",X"15",X"08",X"12",X"F4",X"15",X"F8",X"16",X"FC",X"17",X"01",X"16", - X"05",X"15",X"08",X"13",X"0D",X"0F",X"10",X"0B",X"12",X"08",X"FF",X"08",X"00",X"06",X"FC",X"07"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_3.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_3.vhd deleted file mode 100644 index 99863272..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_PROG_ROM_3.vhd +++ /dev/null @@ -1,150 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_PROG_ROM_3 is -port ( - clk : in std_logic; - addr : in std_logic_vector(10 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_PROG_ROM_3 is - type rom is array(0 to 2047) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"FD",X"07",X"FE",X"06",X"FB",X"07",X"FC",X"3C",X"45",X"BC",X"45",X"5E",X"46",X"B4",X"46",X"00", - X"10",X"80",X"AA",X"00",X"32",X"10",X"00",X"BF",X"90",X"04",X"29",X"0F",X"F0",X"05",X"29",X"0F", - X"18",X"69",X"01",X"08",X"0A",X"A0",X"00",X"AA",X"BD",X"A2",X"57",X"91",X"27",X"BD",X"A3",X"57", - X"C8",X"91",X"27",X"20",X"38",X"78",X"28",X"60",X"98",X"38",X"65",X"27",X"85",X"27",X"90",X"02", - X"E6",X"28",X"60",X"A5",X"1A",X"C9",X"80",X"90",X"11",X"49",X"FF",X"85",X"1A",X"A5",X"19",X"49", - X"FF",X"69",X"00",X"85",X"19",X"90",X"02",X"E6",X"1A",X"38",X"26",X"37",X"A5",X"1C",X"C9",X"80", - X"90",X"11",X"49",X"FF",X"85",X"1C",X"A5",X"1B",X"49",X"FF",X"69",X"00",X"85",X"1B",X"90",X"02", - X"E6",X"1C",X"38",X"26",X"37",X"A5",X"19",X"C5",X"1B",X"A5",X"1A",X"E5",X"1C",X"A2",X"00",X"B0", - X"02",X"A2",X"02",X"B5",X"1A",X"A0",X"09",X"C9",X"02",X"B0",X"09",X"88",X"16",X"19",X"F0",X"03", - X"2A",X"10",X"F4",X"2A",X"95",X"1A",X"98",X"0A",X"66",X"37",X"2A",X"66",X"37",X"2A",X"0A",X"85", - X"37",X"8A",X"49",X"02",X"AA",X"C0",X"09",X"B0",X"07",X"C8",X"16",X"19",X"36",X"1A",X"10",X"F5", - X"A0",X"00",X"A5",X"1B",X"91",X"27",X"A5",X"37",X"29",X"FC",X"05",X"1C",X"C8",X"91",X"27",X"A5", - X"19",X"C8",X"91",X"27",X"A5",X"37",X"29",X"02",X"0A",X"05",X"8F",X"05",X"1A",X"C8",X"91",X"27", - X"4C",X"38",X"78",X"A2",X"02",X"BD",X"01",X"24",X"0A",X"B5",X"B7",X"29",X"1F",X"B0",X"37",X"F0", - X"10",X"C9",X"1B",X"B0",X"0A",X"A8",X"A5",X"BA",X"29",X"07",X"C9",X"07",X"98",X"90",X"02",X"E9", - X"01",X"95",X"B7",X"AD",X"00",X"20",X"29",X"04",X"D0",X"04",X"A9",X"F0",X"85",X"B4",X"A5",X"B4", - X"F0",X"08",X"C6",X"B4",X"A9",X"00",X"95",X"B7",X"95",X"B3",X"18",X"B5",X"B3",X"F0",X"23",X"D6", - X"B3",X"D0",X"1F",X"38",X"B0",X"1C",X"C9",X"1B",X"B0",X"09",X"B5",X"B7",X"69",X"20",X"90",X"D1", - X"F0",X"01",X"18",X"A9",X"1F",X"B0",X"CA",X"95",X"B7",X"B5",X"B3",X"F0",X"01",X"38",X"A9",X"78", - X"95",X"B3",X"90",X"04",X"F6",X"B6",X"E6",X"B2",X"CA",X"CA",X"10",X"99",X"E6",X"BA",X"A5",X"BA", - X"4A",X"A5",X"B2",X"B0",X"0C",X"F0",X"0A",X"C9",X"10",X"B0",X"02",X"69",X"FF",X"69",X"EF",X"85", - X"B2",X"0A",X"60",X"25",X"89",X"86",X"3C",X"05",X"3C",X"8D",X"00",X"3C",X"85",X"89",X"60",X"25", - X"88",X"86",X"3C",X"05",X"3C",X"8D",X"00",X"32",X"85",X"88",X"60",X"AD",X"03",X"28",X"29",X"03", - X"AA",X"BD",X"9B",X"79",X"85",X"99",X"A2",X"00",X"EE",X"00",X"58",X"F0",X"06",X"AD",X"02",X"28", - X"29",X"03",X"AA",X"86",X"21",X"38",X"AD",X"01",X"28",X"2A",X"2A",X"2D",X"00",X"28",X"29",X"0F", - X"69",X"00",X"C9",X"09",X"90",X"02",X"A9",X"00",X"85",X"98",X"60",X"01",X"04",X"05",X"06",X"A2", - X"0C",X"A5",X"98",X"18",X"69",X"18",X"20",X"34",X"7A",X"A9",X"17",X"20",X"4F",X"7A",X"A9",X"05", - X"20",X"4F",X"7A",X"A5",X"86",X"29",X"20",X"F0",X"07",X"A2",X"00",X"A9",X"04",X"4C",X"34",X"7A", - X"60",X"00",X"84",X"37",X"A0",X"0F",X"86",X"38",X"A9",X"00",X"85",X"92",X"85",X"93",X"85",X"94", - X"F8",X"06",X"37",X"26",X"38",X"A5",X"92",X"65",X"92",X"85",X"92",X"A5",X"93",X"65",X"93",X"85", - X"93",X"A5",X"94",X"65",X"94",X"85",X"94",X"88",X"10",X"E7",X"A4",X"94",X"A6",X"93",X"A5",X"92", - X"D8",X"60",X"86",X"2C",X"84",X"2B",X"A9",X"00",X"4A",X"A8",X"B1",X"2B",X"85",X"39",X"29",X"7F", - X"AA",X"98",X"0A",X"A8",X"BD",X"A2",X"57",X"91",X"27",X"C8",X"BD",X"A3",X"57",X"91",X"27",X"C8", - X"98",X"24",X"39",X"10",X"E3",X"18",X"65",X"27",X"85",X"27",X"90",X"02",X"E6",X"28",X"98",X"4A", - X"65",X"2B",X"85",X"2B",X"90",X"02",X"E6",X"2C",X"60",X"A9",X"17",X"20",X"4F",X"7A",X"A9",X"03", - X"D0",X"1D",X"A9",X"80",X"48",X"8A",X"18",X"69",X"0C",X"A8",X"A9",X"55",X"69",X"00",X"A6",X"27", - X"86",X"2F",X"A6",X"28",X"86",X"30",X"20",X"CD",X"7E",X"20",X"10",X"7F",X"68",X"30",X"58",X"C9", - X"18",X"90",X"03",X"0A",X"D0",X"48",X"48",X"A6",X"21",X"F0",X"10",X"CA",X"7D",X"A1",X"5F",X"AA", - X"BD",X"A4",X"5F",X"A2",X"00",X"0A",X"90",X"0F",X"CA",X"B0",X"0C",X"E9",X"08",X"C9",X"0C",X"B0", - X"13",X"AA",X"BD",X"6D",X"69",X"A2",X"00",X"18",X"A0",X"02",X"71",X"2F",X"91",X"2F",X"8A",X"C8", - X"71",X"2F",X"91",X"2F",X"68",X"0A",X"C9",X"30",X"B0",X"14",X"A6",X"21",X"F0",X"10",X"CA",X"18", - X"7D",X"00",X"58",X"AA",X"BC",X"04",X"58",X"BD",X"05",X"58",X"AA",X"4C",X"F2",X"79",X"AA",X"BC", - X"2B",X"69",X"BD",X"2C",X"69",X"D0",X"F3",X"60",X"48",X"8A",X"48",X"98",X"48",X"D8",X"AD",X"00", - X"2C",X"38",X"E5",X"83",X"B0",X"04",X"C6",X"83",X"A9",X"00",X"C5",X"84",X"90",X"04",X"E6",X"84", - X"A5",X"84",X"AA",X"38",X"E5",X"82",X"90",X"0A",X"4A",X"4A",X"F0",X"0A",X"86",X"82",X"E6",X"85", - X"D0",X"04",X"69",X"03",X"30",X"F6",X"E6",X"74",X"A5",X"73",X"C9",X"03",X"B0",X"0D",X"8D",X"00", - X"34",X"A5",X"00",X"45",X"C1",X"45",X"C2",X"C9",X"85",X"F0",X"03",X"4C",X"EB",X"7A",X"20",X"D3", - X"78",X"90",X"06",X"A2",X"20",X"A9",X"FF",X"D0",X"04",X"A9",X"DF",X"A2",X"00",X"20",X"5F",X"79", - X"24",X"22",X"50",X"2F",X"C6",X"87",X"D0",X"2B",X"A9",X"FA",X"85",X"87",X"E6",X"8D",X"F8",X"18", - X"A2",X"00",X"A0",X"02",X"A9",X"08",X"75",X"9E",X"95",X"9E",X"A9",X"00",X"E8",X"88",X"10",X"F6", - X"A5",X"9C",X"18",X"69",X"01",X"C9",X"60",X"90",X"02",X"A9",X"00",X"85",X"9C",X"A5",X"9D",X"69", - X"00",X"85",X"9D",X"D8",X"A5",X"22",X"D0",X"0E",X"A5",X"74",X"A2",X"1F",X"4A",X"90",X"02",X"A2", - X"10",X"A9",X"00",X"20",X"5F",X"79",X"C6",X"8A",X"D0",X"06",X"A9",X"06",X"85",X"8A",X"E6",X"73", - X"68",X"A8",X"68",X"AA",X"68",X"40",X"00",X"A0",X"02",X"38",X"08",X"88",X"84",X"38",X"18",X"65", - X"38",X"28",X"AA",X"08",X"86",X"37",X"B5",X"00",X"4A",X"4A",X"4A",X"4A",X"28",X"20",X"18",X"78", - X"A5",X"38",X"D0",X"01",X"18",X"A6",X"37",X"B5",X"00",X"20",X"18",X"78",X"A6",X"37",X"CA",X"C6", - X"38",X"10",X"E0",X"60",X"A2",X"FF",X"9A",X"D8",X"A9",X"00",X"8D",X"00",X"3C",X"AA",X"95",X"00", - X"E8",X"D0",X"FB",X"AD",X"00",X"20",X"4A",X"4A",X"B0",X"03",X"4C",X"B9",X"7B",X"A9",X"85",X"85", - X"00",X"85",X"C1",X"85",X"C2",X"A9",X"FF",X"85",X"83",X"A9",X"06",X"85",X"8A",X"A9",X"02",X"85", - X"9A",X"85",X"9B",X"8D",X"00",X"34",X"4C",X"01",X"60",X"A2",X"11",X"9A",X"8A",X"85",X"00",X"A0", - X"00",X"A2",X"01",X"C8",X"B9",X"00",X"00",X"D0",X"23",X"E8",X"D0",X"F7",X"BA",X"8A",X"8D",X"00", - X"34",X"C8",X"D9",X"00",X"00",X"D0",X"12",X"A2",X"00",X"96",X"00",X"C8",X"D0",X"05",X"0A",X"A2", - X"00",X"B0",X"0A",X"AA",X"9A",X"96",X"00",X"D0",X"D8",X"59",X"00",X"00",X"AA",X"8A",X"A0",X"10", - X"29",X"0F",X"F0",X"02",X"A0",X"20",X"8A",X"A2",X"10",X"29",X"F0",X"F0",X"02",X"A2",X"20",X"98", - X"9A",X"AA",X"8E",X"00",X"3C",X"A0",X"0C",X"A2",X"64",X"2C",X"00",X"20",X"70",X"FB",X"2C",X"00", - X"20",X"50",X"FB",X"8D",X"00",X"34",X"CA",X"D0",X"F0",X"C0",X"05",X"D0",X"03",X"8E",X"00",X"3C", - X"88",X"D0",X"E4",X"A8",X"30",X"05",X"09",X"80",X"BA",X"10",X"D7",X"C9",X"90",X"D0",X"05",X"BA", - X"E0",X"10",X"F0",X"06",X"8D",X"00",X"34",X"4C",X"34",X"7C",X"A2",X"FF",X"9A",X"20",X"59",X"7E", - X"A8",X"91",X"27",X"C8",X"D0",X"FB",X"E6",X"28",X"A6",X"28",X"E0",X"48",X"90",X"F3",X"20",X"59", - X"7E",X"A9",X"11",X"85",X"37",X"84",X"BC",X"91",X"27",X"98",X"AA",X"C8",X"F0",X"06",X"B1",X"27", - X"D0",X"2B",X"F0",X"F7",X"8A",X"A8",X"A5",X"37",X"8D",X"00",X"34",X"D1",X"27",X"D0",X"1C",X"A9", - X"00",X"91",X"27",X"A5",X"37",X"C8",X"D0",X"03",X"0A",X"B0",X"06",X"85",X"37",X"91",X"27",X"D0", - X"D8",X"E6",X"28",X"A5",X"28",X"C9",X"48",X"90",X"C8",X"B0",X"1E",X"51",X"27",X"A2",X"00",X"48", - X"29",X"F0",X"F0",X"02",X"A2",X"02",X"68",X"29",X"0F",X"F0",X"01",X"E8",X"8A",X"A6",X"28",X"E0", - X"44",X"90",X"02",X"0A",X"0A",X"05",X"BC",X"85",X"BC",X"A5",X"BC",X"8D",X"00",X"32",X"A9",X"03", - X"85",X"56",X"18",X"A9",X"10",X"66",X"BC",X"08",X"90",X"01",X"0A",X"8D",X"00",X"3C",X"A0",X"50", - X"20",X"7F",X"7E",X"8E",X"00",X"3C",X"A0",X"28",X"20",X"7F",X"7E",X"28",X"C6",X"56",X"10",X"E3", - X"66",X"BC",X"8D",X"00",X"34",X"D0",X"FB",X"A9",X"48",X"85",X"2C",X"20",X"59",X"7E",X"85",X"2B", - X"85",X"BC",X"85",X"BB",X"20",X"2D",X"7F",X"A9",X"12",X"20",X"62",X"7E",X"A2",X"37",X"8A",X"0A", - X"A0",X"00",X"8D",X"00",X"34",X"51",X"2B",X"C8",X"D0",X"FB",X"A8",X"8A",X"29",X"03",X"C9",X"01", - X"98",X"B0",X"2E",X"F0",X"2B",X"85",X"BC",X"86",X"39",X"A9",X"34",X"38",X"E5",X"39",X"4A",X"85", - X"3A",X"38",X"E9",X"04",X"C9",X"04",X"B0",X"02",X"C6",X"BB",X"A5",X"BC",X"29",X"0F",X"F0",X"03", - X"20",X"17",X"7F",X"A5",X"BC",X"29",X"F0",X"F0",X"05",X"E6",X"3A",X"20",X"17",X"7F",X"A6",X"39", - X"8A",X"E6",X"2C",X"CA",X"10",X"BA",X"A6",X"BC",X"F0",X"16",X"24",X"BB",X"10",X"1B",X"A9",X"40", - X"85",X"27",X"A9",X"18",X"85",X"27",X"A9",X"22",X"A2",X"0E",X"20",X"64",X"7E",X"4C",X"59",X"7D", - X"AE",X"7F",X"7F",X"AC",X"7E",X"7F",X"20",X"F2",X"79",X"A9",X"00",X"85",X"56",X"85",X"39",X"85", - X"89",X"A9",X"11",X"8D",X"00",X"32",X"A5",X"28",X"85",X"2A",X"A5",X"27",X"85",X"29",X"A2",X"07", - X"BD",X"00",X"24",X"0A",X"26",X"BD",X"CA",X"10",X"F7",X"AD",X"00",X"20",X"29",X"04",X"85",X"BE", - X"A2",X"00",X"A5",X"BF",X"45",X"BD",X"D0",X"06",X"A5",X"C0",X"45",X"BE",X"F0",X"02",X"A2",X"30", - X"A9",X"0F",X"20",X"53",X"79",X"A5",X"BD",X"85",X"BF",X"A5",X"BE",X"85",X"C0",X"A5",X"29",X"85", - X"27",X"A5",X"2A",X"85",X"28",X"24",X"BB",X"30",X"27",X"A9",X"1A",X"20",X"62",X"7E",X"A0",X"01", - X"AD",X"00",X"2C",X"18",X"65",X"82",X"6A",X"85",X"82",X"A9",X"82",X"20",X"59",X"7B",X"20",X"9F", - X"79",X"A9",X"3A",X"20",X"62",X"7E",X"20",X"6B",X"79",X"A9",X"99",X"A0",X"01",X"20",X"59",X"7B", - X"20",X"71",X"7E",X"E6",X"56",X"A5",X"56",X"C9",X"20",X"90",X"1C",X"A6",X"3A",X"E8",X"E0",X"05", - X"90",X"02",X"A2",X"00",X"86",X"3A",X"BD",X"80",X"7F",X"8D",X"00",X"32",X"BD",X"85",X"7F",X"AA", - X"A9",X"30",X"20",X"53",X"79",X"84",X"56",X"20",X"95",X"7E",X"B0",X"03",X"4C",X"6E",X"7D",X"A2", - X"00",X"8E",X"00",X"3C",X"86",X"BB",X"20",X"59",X"7E",X"A4",X"BB",X"C0",X"03",X"D0",X"23",X"A9", - X"30",X"20",X"62",X"7E",X"A9",X"FB",X"A0",X"00",X"91",X"27",X"E6",X"27",X"48",X"A9",X"F8",X"91", - X"27",X"E6",X"27",X"A9",X"38",X"A2",X"02",X"20",X"64",X"7E",X"68",X"38",X"E9",X"10",X"B0",X"E6", - X"90",X"12",X"BE",X"F4",X"7F",X"98",X"0A",X"A8",X"B9",X"EF",X"7F",X"48",X"B9",X"EE",X"7F",X"A8", - X"68",X"20",X"A6",X"7E",X"20",X"71",X"7E",X"20",X"7A",X"7E",X"20",X"95",X"7E",X"90",X"F8",X"A6", - X"BB",X"E8",X"E0",X"04",X"90",X"AE",X"4C",X"9D",X"7B",X"A9",X"40",X"85",X"28",X"A9",X"00",X"85", - X"27",X"60",X"A2",X"08",X"18",X"6D",X"7C",X"7F",X"A8",X"AD",X"7D",X"7F",X"69",X"00",X"4C",X"A6", - X"7E",X"A9",X"4B",X"A0",X"DE",X"A2",X"06",X"20",X"A6",X"7E",X"8D",X"00",X"30",X"A0",X"03",X"8D", - X"00",X"34",X"A2",X"14",X"2C",X"00",X"20",X"70",X"FB",X"2C",X"00",X"20",X"50",X"FB",X"CA",X"D0", - X"F3",X"88",X"D0",X"EB",X"60",X"2C",X"00",X"20",X"30",X"03",X"06",X"26",X"60",X"A9",X"20",X"85", - X"26",X"18",X"90",X"F8",X"A2",X"08",X"85",X"65",X"84",X"64",X"8A",X"A8",X"88",X"B1",X"64",X"91", - X"27",X"88",X"10",X"F9",X"8A",X"18",X"65",X"27",X"85",X"27",X"90",X"02",X"E6",X"28",X"8A",X"18", - X"65",X"64",X"85",X"64",X"90",X"02",X"E6",X"65",X"60",X"A2",X"02",X"D0",X"D9",X"A2",X"04",X"D0", - X"D5",X"A2",X"04",X"D0",X"D5",X"18",X"65",X"8B",X"A8",X"8A",X"69",X"00",X"A2",X"00",X"86",X"3D", - X"A2",X"0F",X"86",X"3E",X"85",X"65",X"84",X"64",X"A0",X"00",X"B1",X"64",X"38",X"E5",X"53",X"91", - X"27",X"C8",X"B1",X"64",X"E5",X"54",X"29",X"0F",X"09",X"A0",X"91",X"27",X"C8",X"B1",X"64",X"38", - X"E5",X"51",X"91",X"27",X"C8",X"B1",X"64",X"E5",X"3D",X"25",X"3E",X"91",X"27",X"20",X"38",X"78", - X"A9",X"55",X"A0",X"AE",X"4C",X"CD",X"7E",X"A2",X"00",X"A4",X"3A",X"20",X"C2",X"79",X"A9",X"92", - X"38",X"A0",X"01",X"20",X"5A",X"7B",X"A9",X"10",X"A2",X"02",X"4C",X"64",X"7E",X"A9",X"00",X"A2", - X"10",X"4C",X"64",X"7E",X"00",X"A0",X"00",X"00",X"00",X"90",X"00",X"00",X"FF",X"A2",X"FF",X"03", - X"00",X"90",X"00",X"00",X"0B",X"F0",X"58",X"A2",X"10",X"00",X"00",X"70",X"00",X"00",X"80",X"A1", - X"00",X"02",X"00",X"70",X"00",X"00",X"CB",X"F8",X"C8",X"FF",X"CF",X"F8",X"C8",X"FB",X"CB",X"FF", - X"0F",X"F8",X"CB",X"FB",X"90",X"A1",X"00",X"02",X"00",X"90",X"00",X"00",X"0F",X"FD",X"F4",X"A1", - X"76",X"01",X"00",X"70",X"00",X"00",X"38",X"32",X"2E",X"00",X"32",X"AA",X"34",X"7F",X"76",X"7F", - X"11",X"12",X"14",X"18",X"00",X"01",X"03",X"07",X"0F",X"00",X"80",X"A1",X"00",X"02",X"00",X"90", - X"00",X"00",X"20",X"73",X"20",X"C3",X"07",X"E0",X"00",X"A0",X"00",X"00",X"00",X"90",X"00",X"00", - X"FF",X"92",X"FF",X"C2",X"FC",X"77",X"FC",X"C3",X"FE",X"87",X"FE",X"C7",X"FE",X"83",X"FE",X"C7", - X"FC",X"73",X"FC",X"C3",X"FF",X"96",X"FF",X"C2",X"FF",X"92",X"01",X"00",X"FF",X"96",X"FF",X"C6", - X"FC",X"73",X"FC",X"C7",X"FE",X"83",X"FE",X"C3",X"FE",X"87",X"FE",X"C3",X"FC",X"77",X"FC",X"C7", - X"FF",X"92",X"FF",X"C6",X"80",X"A1",X"00",X"02",X"00",X"90",X"00",X"00",X"06",X"C0",X"00",X"B0", - X"08",X"C0",X"00",X"D0",X"0A",X"C0",X"00",X"D0",X"CB",X"FB",X"CF",X"FB",X"00",X"D0",X"8A",X"7F", - X"98",X"7F",X"D4",X"7F",X"0E",X"3C",X"1A",X"00",X"57",X"00",X"A8",X"7A",X"84",X"7B",X"84",X"7B"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_0.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_0.vhd deleted file mode 100644 index 6fbb36a5..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_0.vhd +++ /dev/null @@ -1,150 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_VEC_ROM_0 is -port ( - clk : in std_logic; - addr : in std_logic_vector(10 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_VEC_ROM_0 is - type rom is array(0 to 2047) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"80",X"27",X"00",X"05",X"80",X"22",X"80",X"C6",X"80",X"22",X"00",X"C0",X"80",X"22",X"80",X"C2", - X"00",X"20",X"80",X"C2",X"80",X"26",X"80",X"C2",X"80",X"26",X"00",X"C0",X"80",X"26",X"80",X"C6", - X"00",X"20",X"80",X"C6",X"00",X"D0",X"00",X"36",X"40",X"04",X"C7",X"F2",X"80",X"22",X"80",X"C4", - X"C2",X"F3",X"80",X"20",X"80",X"C2",X"C3",X"F6",X"80",X"26",X"80",X"C0",X"C6",X"F7",X"80",X"24", - X"80",X"C6",X"00",X"D0",X"40",X"36",X"00",X"00",X"80",X"21",X"80",X"C7",X"80",X"22",X"00",X"C5", - X"80",X"23",X"80",X"C1",X"00",X"21",X"80",X"C2",X"80",X"25",X"80",X"C3",X"80",X"26",X"00",X"C1", - X"80",X"27",X"80",X"C5",X"00",X"25",X"80",X"C6",X"00",X"D0",X"00",X"36",X"80",X"00",X"80",X"20", - X"80",X"C7",X"00",X"22",X"80",X"C5",X"80",X"23",X"80",X"C0",X"80",X"21",X"00",X"C2",X"80",X"24", - X"80",X"C3",X"00",X"26",X"80",X"C1",X"80",X"27",X"80",X"C4",X"80",X"25",X"00",X"C6",X"00",X"D0", - X"05",X"FE",X"C5",X"F9",X"80",X"23",X"00",X"C0",X"C1",X"F9",X"00",X"20",X"80",X"C3",X"C1",X"FD", - X"80",X"27",X"00",X"C0",X"C5",X"FD",X"00",X"20",X"80",X"C7",X"00",X"D0",X"00",X"36",X"C0",X"04", - X"80",X"21",X"00",X"C6",X"80",X"23",X"80",X"C4",X"00",X"22",X"80",X"C1",X"80",X"20",X"80",X"C3", - X"80",X"25",X"00",X"C2",X"80",X"27",X"80",X"C0",X"00",X"26",X"80",X"C5",X"80",X"24",X"80",X"C7", - X"00",X"D0",X"00",X"36",X"40",X"04",X"00",X"21",X"80",X"C6",X"80",X"23",X"80",X"C5",X"80",X"22", - X"00",X"C1",X"80",X"21",X"80",X"C3",X"00",X"25",X"80",X"C2",X"80",X"27",X"80",X"C1",X"80",X"26", - X"00",X"C5",X"80",X"25",X"80",X"C7",X"00",X"D0",X"00",X"36",X"40",X"00",X"80",X"20",X"80",X"C6", - X"C6",X"F3",X"80",X"22",X"80",X"C0",X"C3",X"F2",X"80",X"24",X"80",X"C2",X"C2",X"F7",X"80",X"26", - X"80",X"C4",X"C7",X"F6",X"00",X"D0",X"00",X"C4",X"C0",X"33",X"40",X"05",X"80",X"26",X"00",X"C0", - X"80",X"26",X"00",X"00",X"80",X"26",X"00",X"C0",X"00",X"10",X"00",X"C7",X"C0",X"33",X"00",X"C0", - X"00",X"10",X"00",X"C3",X"00",X"10",X"00",X"07",X"C6",X"F9",X"00",X"F1",X"C0",X"FD",X"60",X"46", - X"00",X"00",X"C0",X"FD",X"00",X"F1",X"C2",X"F9",X"00",X"F9",X"80",X"25",X"00",X"C7",X"40",X"33", - X"00",X"C0",X"80",X"25",X"00",X"C3",X"80",X"21",X"00",X"07",X"00",X"D0",X"13",X"C4",X"80",X"24", - X"80",X"06",X"80",X"22",X"80",X"C4",X"80",X"22",X"80",X"04",X"80",X"22",X"80",X"C4",X"00",X"15", - X"00",X"C7",X"C0",X"37",X"C0",X"C0",X"00",X"11",X"00",X"C3",X"00",X"15",X"00",X"07",X"80",X"26", - X"80",X"C7",X"00",X"16",X"00",X"01",X"C5",X"F2",X"60",X"42",X"80",X"04",X"C0",X"F9",X"00",X"F5", - X"C0",X"34",X"40",X"C2",X"C0",X"36",X"80",X"00",X"00",X"26",X"80",X"C6",X"40",X"33",X"C0",X"C4", - X"00",X"25",X"80",X"C3",X"00",X"21",X"80",X"07",X"00",X"D0",X"22",X"C4",X"40",X"33",X"C0",X"06", - X"80",X"26",X"00",X"C1",X"80",X"26",X"00",X"01",X"80",X"26",X"00",X"C1",X"00",X"15",X"00",X"C7", - X"C0",X"33",X"80",X"C5",X"00",X"11",X"00",X"C3",X"00",X"15",X"00",X"07",X"40",X"30",X"00",X"C6", - X"00",X"12",X"00",X"05",X"C1",X"F6",X"40",X"46",X"C0",X"00",X"C1",X"F6",X"00",X"12",X"00",X"05", - X"C3",X"F3",X"05",X"F2",X"80",X"26",X"00",X"C6",X"40",X"33",X"40",X"C5",X"80",X"24",X"80",X"C3", - X"80",X"20",X"80",X"07",X"00",X"D0",X"35",X"C4",X"80",X"25",X"00",X"06",X"00",X"22",X"80",X"C5", - X"00",X"22",X"80",X"05",X"00",X"22",X"80",X"C5",X"00",X"15",X"00",X"C7",X"40",X"37",X"80",X"C2", - X"C1",X"F1",X"05",X"F5",X"40",X"36",X"00",X"C5",X"00",X"06",X"00",X"02",X"C5",X"F1",X"40",X"42", - X"A0",X"05",X"C5",X"F2",X"00",X"16",X"00",X"01",X"40",X"30",X"40",X"C2",X"40",X"36",X"C0",X"01", - X"00",X"27",X"80",X"C5",X"80",X"32",X"00",X"C6",X"80",X"20",X"80",X"C3",X"80",X"24",X"80",X"07", - X"00",X"D0",X"48",X"C4",X"01",X"FD",X"C5",X"F9",X"05",X"F9",X"C5",X"F9",X"C5",X"F5",X"C3",X"FF", - X"C1",X"F1",X"05",X"F5",X"00",X"36",X"C0",X"C4",X"00",X"06",X"00",X"02",X"C5",X"F1",X"C0",X"33", - X"C0",X"07",X"C5",X"F1",X"00",X"06",X"00",X"02",X"C0",X"30",X"00",X"C2",X"40",X"36",X"40",X"02", - X"C5",X"F7",X"80",X"32",X"C0",X"C6",X"00",X"21",X"80",X"C3",X"00",X"25",X"80",X"07",X"00",X"D0", - X"56",X"C4",X"80",X"31",X"00",X"06",X"80",X"25",X"00",X"C2",X"80",X"25",X"00",X"02",X"80",X"25", - X"00",X"C2",X"C5",X"F5",X"40",X"32",X"00",X"C7",X"C1",X"F1",X"05",X"F5",X"C6",X"FD",X"00",X"02", - X"00",X"06",X"C1",X"F5",X"00",X"37",X"C0",X"03",X"C2",X"F5",X"00",X"11",X"00",X"06",X"40",X"32", - X"80",X"C0",X"00",X"12",X"00",X"07",X"80",X"27",X"80",X"C4",X"00",X"32",X"C0",X"C6",X"80",X"21", - X"80",X"C3",X"80",X"25",X"80",X"07",X"00",X"D0",X"69",X"C4",X"00",X"25",X"80",X"02",X"00",X"21", - X"80",X"C6",X"00",X"21",X"80",X"06",X"00",X"21",X"80",X"C6",X"00",X"17",X"00",X"C5",X"80",X"35", - X"C0",X"C3",X"00",X"13",X"00",X"C1",X"00",X"17",X"00",X"05",X"40",X"36",X"00",X"C0",X"01",X"F0", - X"C5",X"F8",X"00",X"41",X"60",X"06",X"C5",X"F1",X"00",X"06",X"00",X"02",X"00",X"23",X"80",X"C3", - X"00",X"35",X"C0",X"02",X"80",X"27",X"00",X"C0",X"40",X"31",X"00",X"C7",X"00",X"22",X"80",X"C2", - X"00",X"26",X"80",X"06",X"00",X"D0",X"7C",X"C4",X"80",X"24",X"80",X"02",X"80",X"20",X"80",X"C6", - X"80",X"20",X"80",X"06",X"80",X"20",X"80",X"C6",X"00",X"17",X"00",X"C5",X"60",X"44",X"00",X"C2", - X"00",X"13",X"00",X"C0",X"00",X"17",X"00",X"00",X"40",X"36",X"80",X"C0",X"01",X"F0",X"C5",X"F8", - X"80",X"40",X"60",X"06",X"C6",X"F1",X"00",X"15",X"00",X"02",X"80",X"23",X"80",X"C2",X"80",X"34", - X"00",X"03",X"80",X"27",X"00",X"C1",X"C0",X"30",X"80",X"C7",X"80",X"22",X"00",X"C2",X"80",X"26", - X"00",X"C6",X"00",X"D0",X"00",X"C4",X"00",X"20",X"80",X"C6",X"00",X"17",X"00",X"C0",X"00",X"30", - X"C0",X"C3",X"00",X"13",X"00",X"C0",X"00",X"20",X"80",X"C6",X"C0",X"34",X"80",X"06",X"C5",X"FE", - X"05",X"F0",X"C1",X"F8",X"00",X"40",X"60",X"02",X"C1",X"F8",X"05",X"F0",X"C5",X"FA",X"05",X"F8", - X"00",X"27",X"80",X"C1",X"00",X"30",X"40",X"C7",X"00",X"23",X"80",X"C1",X"00",X"27",X"80",X"05", - X"00",X"D0",X"8B",X"C4",X"AE",X"C4",X"D5",X"C4",X"FB",X"C4",X"21",X"C5",X"40",X"C5",X"64",X"C5", - X"8B",X"C5",X"B2",X"C5",X"AA",X"A2",X"40",X"00",X"00",X"70",X"00",X"00",X"E8",X"A0",X"00",X"00", - X"40",X"A0",X"00",X"00",X"18",X"A1",X"00",X"00",X"78",X"A0",X"00",X"00",X"EA",X"00",X"AC",X"A0", - X"80",X"00",X"E0",X"A0",X"80",X"00",X"18",X"A0",X"80",X"00",X"18",X"A0",X"80",X"00",X"80",X"A1", - X"00",X"02",X"00",X"B0",X"80",X"20",X"80",X"06",X"00",X"13",X"00",X"C3",X"00",X"10",X"00",X"C3", - X"00",X"17",X"00",X"C3",X"00",X"17",X"00",X"C0",X"00",X"17",X"00",X"C7",X"00",X"10",X"00",X"C7", - X"00",X"13",X"00",X"C7",X"06",X"F7",X"C2",X"F1",X"C0",X"32",X"00",X"C0",X"C6",X"F1",X"02",X"F7", - X"00",X"12",X"00",X"C7",X"80",X"27",X"00",X"C0",X"00",X"12",X"00",X"C3",X"80",X"22",X"80",X"05", - X"00",X"D0",X"00",X"20",X"80",X"06",X"C1",X"F2",X"00",X"11",X"00",X"C3",X"C2",X"F5",X"00",X"17", - X"00",X"C1",X"C5",X"F6",X"00",X"15",X"00",X"C7",X"C6",X"F1",X"C5",X"F5",X"00",X"23",X"80",X"C4", - X"00",X"15",X"00",X"C3",X"00",X"22",X"80",X"06",X"80",X"24",X"00",X"C2",X"40",X"36",X"80",X"C0", - X"00",X"16",X"00",X"C7",X"40",X"32",X"40",X"04",X"00",X"D0",X"00",X"20",X"80",X"06",X"C1",X"F2", - X"00",X"11",X"00",X"C3",X"C2",X"F5",X"00",X"17",X"00",X"C1",X"C5",X"F6",X"00",X"15",X"00",X"C7", - X"C6",X"F1",X"05",X"F7",X"00",X"13",X"00",X"C3",X"40",X"32",X"C0",X"C4",X"80",X"20",X"00",X"C6", - X"00",X"26",X"80",X"02",X"00",X"11",X"00",X"C7",X"80",X"27",X"00",X"C1",X"00",X"13",X"00",X"C2", - X"05",X"F9",X"00",X"D0",X"00",X"26",X"80",X"05",X"80",X"24",X"00",X"C2",X"00",X"12",X"00",X"C3", - X"00",X"22",X"80",X"C0",X"00",X"13",X"00",X"C6",X"80",X"20",X"00",X"C6",X"00",X"16",X"00",X"C7", - X"00",X"26",X"80",X"C4",X"80",X"21",X"80",X"C7",X"00",X"20",X"80",X"C2",X"40",X"36",X"80",X"C1", - X"C5",X"F6",X"80",X"23",X"00",X"00",X"00",X"17",X"00",X"C5",X"C6",X"F3",X"00",X"10",X"00",X"C3", - X"00",X"10",X"00",X"07",X"00",X"D0",X"06",X"F5",X"B0",X"F9",X"B1",X"F1",X"B1",X"F8",X"B1",X"F5", - X"B0",X"FD",X"B5",X"F5",X"B5",X"F8",X"80",X"27",X"00",X"01",X"00",X"22",X"80",X"C0",X"CD",X"F1", - X"80",X"24",X"00",X"C6",X"00",X"25",X"80",X"03",X"C5",X"F8",X"C3",X"F7",X"C0",X"F9",X"07",X"F1", - X"00",X"D0",X"80",X"26",X"80",X"04",X"80",X"20",X"00",X"C2",X"00",X"13",X"00",X"C2",X"00",X"22", - X"80",X"C4",X"00",X"12",X"00",X"C7",X"80",X"24",X"00",X"C6",X"00",X"17",X"00",X"C6",X"00",X"26", - X"80",X"C0",X"00",X"36",X"80",X"01",X"C0",X"F9",X"80",X"31",X"40",X"C6",X"C6",X"F5",X"00",X"20", - X"80",X"03",X"00",X"15",X"00",X"C7",X"C3",X"F6",X"00",X"13",X"00",X"C0",X"80",X"20",X"00",X"07", - X"00",X"D0",X"00",X"26",X"80",X"05",X"C5",X"F2",X"00",X"13",X"00",X"C1",X"C2",X"F1",X"00",X"15", - X"00",X"C3",X"C1",X"F6",X"00",X"17",X"00",X"C5",X"C6",X"F5",X"80",X"26",X"00",X"02",X"00",X"22", - X"80",X"C4",X"C0",X"30",X"40",X"C6",X"00",X"17",X"00",X"C7",X"03",X"F1",X"00",X"16",X"00",X"C7", - X"00",X"25",X"80",X"C3",X"00",X"13",X"00",X"C5",X"80",X"24",X"00",X"07",X"00",X"D0",X"80",X"26", - X"00",X"00",X"C2",X"F1",X"00",X"13",X"00",X"C1",X"C5",X"F2",X"00",X"11",X"00",X"C7",X"C6",X"F5", - X"00",X"17",X"00",X"C5",X"C1",X"F6",X"C5",X"F5",X"80",X"24",X"00",X"C3",X"00",X"13",X"00",X"C5", - X"80",X"26",X"00",X"02",X"00",X"22",X"80",X"C4",X"80",X"30",X"40",X"C6",X"00",X"17",X"00",X"C6", - X"00",X"10",X"00",X"03",X"00",X"D0",X"80",X"26",X"80",X"04",X"00",X"13",X"00",X"C7",X"00",X"13", - X"00",X"C0",X"00",X"13",X"00",X"C3",X"00",X"10",X"00",X"C3",X"00",X"17",X"00",X"C3",X"00",X"17", - X"00",X"C0",X"00",X"17",X"00",X"C7",X"03",X"F6",X"C5",X"F2",X"00",X"30",X"C0",X"C6",X"C5",X"F6", - X"03",X"F2",X"00",X"17",X"00",X"C6",X"00",X"20",X"80",X"C3",X"00",X"13",X"00",X"C6",X"80",X"25", - X"80",X"06",X"00",X"D0",X"F2",X"C5",X"11",X"C6",X"2D",X"C6",X"4A",X"C6",X"6B",X"C6",X"81",X"C6", - X"A1",X"C6",X"BF",X"C6",X"DB",X"C6",X"18",X"A0",X"80",X"02",X"18",X"A0",X"60",X"03",X"38",X"A0", - X"08",X"01",X"20",X"A0",X"30",X"03",X"68",X"A0",X"40",X"00",X"A0",X"A0",X"C8",X"03",X"E8",X"A0", - X"00",X"00",X"C0",X"A0",X"98",X"00",X"88",X"A0",X"C8",X"00",X"70",X"A1",X"C0",X"01",X"78",X"A0", - X"F8",X"02",X"E0",X"A0",X"80",X"01",X"F0",X"A0",X"20",X"02",X"B8",X"A0",X"30",X"02",X"40",X"A0", - X"60",X"02",X"40",X"00",X"00",X"0A",X"40",X"00",X"80",X"0D",X"C0",X"00",X"20",X"04",X"60",X"00", - X"C0",X"0C",X"80",X"01",X"00",X"01",X"60",X"02",X"20",X"0F",X"80",X"03",X"00",X"00",X"E0",X"02", - X"60",X"02",X"00",X"02",X"20",X"03",X"A0",X"05",X"00",X"07",X"C0",X"01",X"E0",X"0B",X"60",X"03", - X"00",X"06",X"A0",X"03",X"80",X"08",X"C0",X"02",X"C0",X"08",X"E0",X"00",X"80",X"09",X"00",X"80", - X"00",X"D2",X"50",X"74",X"18",X"06",X"00",X"70",X"00",X"D2",X"A0",X"64",X"30",X"06",X"00",X"60", - X"00",X"D2",X"40",X"55",X"60",X"06",X"00",X"40",X"E0",X"D3",X"80",X"46",X"00",X"07",X"57",X"C7", - X"5B",X"C7",X"5F",X"C7",X"63",X"C7",X"67",X"C7",X"6A",X"C7",X"6E",X"C7",X"72",X"C7",X"00",X"C4", - X"80",X"23",X"00",X"01",X"00",X"D0",X"13",X"C4",X"00",X"32",X"40",X"00",X"00",X"D0",X"22",X"C4", - X"40",X"32",X"00",X"00",X"00",X"D0",X"35",X"C4",X"00",X"32",X"80",X"04",X"00",X"D0",X"48",X"C4", - X"01",X"FA",X"00",X"D0",X"56",X"C4",X"00",X"32",X"C0",X"00",X"00",X"D0",X"69",X"C4",X"00",X"32", - X"40",X"00",X"00",X"D0",X"7C",X"C4",X"00",X"32",X"40",X"04",X"00",X"D0",X"8E",X"C7",X"94",X"C7", - X"9D",X"C7",X"A3",X"C7",X"A9",X"C7",X"B1",X"C7",X"B7",X"C7",X"BC",X"C7",X"C7",X"C7",X"D0",X"C7", - X"D7",X"C7",X"DF",X"C7",X"9D",X"C7",X"DF",X"C7",X"C7",X"C7",X"B1",X"C7",X"A3",X"C7",X"DF",X"C7", - X"BC",X"C7",X"94",X"C7",X"9D",X"C7",X"D0",X"C7",X"B1",X"C7",X"B7",X"C7",X"A5",X"F8",X"01",X"F0", - X"A1",X"FA",X"00",X"36",X"80",X"04",X"00",X"D0",X"00",X"20",X"80",X"A6",X"00",X"17",X"00",X"A0", - X"00",X"30",X"C0",X"A2",X"80",X"21",X"00",X"07",X"00",X"D0",X"A7",X"F0",X"00",X"23",X"80",X"A1", - X"00",X"27",X"80",X"01",X"00",X"D0",X"00",X"20",X"80",X"A3",X"00",X"23",X"80",X"A5",X"06",X"F7", - X"00",X"D0",X"A1",X"F8",X"00",X"13",X"00",X"A0",X"00",X"30",X"80",X"A6",X"80",X"25",X"00",X"03", - X"00",X"D0",X"A1",X"F8",X"05",X"F0",X"A5",X"FA",X"00",X"36",X"80",X"00",X"00",X"D0",X"A0",X"F1", - X"A1",X"F0",X"A0",X"F5",X"A5",X"F0",X"00",X"D0",X"00",X"27",X"80",X"A5",X"00",X"30",X"40",X"A3", - X"00",X"23",X"80",X"A5",X"00",X"25",X"80",X"A6",X"00",X"11",X"00",X"A6",X"00",X"D0",X"00",X"13", - X"00",X"A0",X"00",X"30",X"80",X"A3",X"00",X"17",X"00",X"A0",X"00",X"30",X"80",X"A7",X"00",X"D0", - X"A5",X"F1",X"00",X"06",X"00",X"02",X"A2",X"F9",X"80",X"26",X"80",X"07",X"00",X"D0",X"A1",X"F1", - X"00",X"06",X"00",X"06",X"C0",X"30",X"00",X"A6",X"00",X"26",X"80",X"07",X"00",X"D0",X"00",X"13", - X"00",X"A3",X"00",X"17",X"00",X"A3",X"00",X"17",X"00",X"A7",X"00",X"13",X"00",X"A7",X"00",X"D0", - X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", - X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", - X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"53"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_1.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_1.vhd deleted file mode 100644 index 74684fe4..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_1.vhd +++ /dev/null @@ -1,150 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_VEC_ROM_1 is -port ( - clk : in std_logic; - addr : in std_logic_vector(10 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_VEC_ROM_1 is - type rom is array(0 to 2047) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"44",X"C8",X"4C",X"C8",X"52",X"C8",X"56",X"C8",X"00",X"D0",X"5B",X"C8",X"62",X"C8",X"00",X"D0", - X"68",X"C8",X"6F",X"C8",X"00",X"D0",X"7C",X"C8",X"82",X"C8",X"86",X"C8",X"4C",X"C8",X"00",X"D0", - X"8D",X"C8",X"62",X"C8",X"00",X"D0",X"92",X"C8",X"98",X"C8",X"9D",X"C8",X"00",X"D0",X"5B",X"C8", - X"A6",X"C8",X"D1",X"C8",X"AD",X"C8",X"00",X"D0",X"44",X"C8",X"86",X"C8",X"B2",X"C8",X"00",X"D0", - X"6F",X"C8",X"AA",X"F8",X"4C",X"C8",X"AA",X"F8",X"C4",X"C8",X"00",X"D0",X"56",X"C8",X"4C",X"C8", - X"7C",X"C8",X"56",X"C8",X"AA",X"FE",X"00",X"D0",X"BC",X"C8",X"82",X"C8",X"68",X"C8",X"00",X"D0", - X"B2",X"C8",X"C4",X"C8",X"86",X"C8",X"00",X"60",X"00",X"A2",X"00",X"D0",X"C9",X"C8",X"CE",X"C8", - X"00",X"D0",X"A6",X"C8",X"AA",X"F8",X"9D",X"C8",X"AA",X"F8",X"92",X"C8",X"00",X"D0",X"8D",X"C8", - X"D1",X"C8",X"AD",X"C8",X"AA",X"FA",X"00",X"D0",X"AA",X"F8",X"00",X"56",X"80",X"A0",X"AA",X"F8", - X"00",X"56",X"80",X"A0",X"A9",X"F8",X"00",X"D0",X"00",X"67",X"40",X"A0",X"00",X"67",X"C0",X"A0", - X"A8",X"FE",X"00",X"D0",X"00",X"66",X"80",X"A0",X"AB",X"FE",X"00",X"D0",X"00",X"66",X"80",X"A0", - X"A9",X"FE",X"AA",X"FE",X"00",X"D0",X"AA",X"F8",X"AA",X"FA",X"80",X"53",X"00",X"A2",X"80",X"52", - X"00",X"A2",X"00",X"D0",X"AA",X"FA",X"A9",X"FA",X"AA",X"FA",X"A9",X"FA",X"AA",X"F9",X"00",X"D0", - X"AA",X"FB",X"80",X"50",X"00",X"A2",X"80",X"51",X"00",X"A2",X"AA",X"F8",X"00",X"D0",X"80",X"54", - X"00",X"A2",X"80",X"55",X"00",X"A2",X"00",X"56",X"80",X"A0",X"00",X"56",X"80",X"A1",X"00",X"56", - X"80",X"A0",X"00",X"56",X"80",X"A1",X"00",X"D0",X"00",X"56",X"80",X"A0",X"00",X"56",X"80",X"A1", - X"AA",X"F8",X"00",X"D0",X"00",X"62",X"C0",X"A0",X"AB",X"F2",X"00",X"D0",X"AB",X"F6",X"00",X"56", - X"80",X"A1",X"00",X"66",X"80",X"A0",X"AB",X"FE",X"00",X"D0",X"AA",X"FE",X"00",X"60",X"00",X"A2", - X"AA",X"FA",X"00",X"D0",X"80",X"62",X"80",X"A0",X"00",X"62",X"80",X"A0",X"AA",X"F9",X"00",X"D0", - X"AA",X"FA",X"AA",X"FB",X"00",X"62",X"00",X"A1",X"00",X"D0",X"00",X"62",X"80",X"A0",X"AA",X"FA", - X"A9",X"FA",X"00",X"52",X"80",X"A0",X"00",X"52",X"80",X"A1",X"00",X"D0",X"00",X"62",X"80",X"A0", - X"00",X"63",X"80",X"A0",X"00",X"62",X"00",X"A0",X"00",X"D0",X"00",X"52",X"80",X"A0",X"00",X"52", - X"80",X"A1",X"00",X"D0",X"00",X"56",X"80",X"A0",X"80",X"67",X"40",X"A1",X"00",X"D0",X"00",X"70", - X"00",X"A2",X"00",X"70",X"00",X"A2",X"00",X"D0",X"00",X"63",X"80",X"A0",X"00",X"62",X"00",X"A1", - X"00",X"62",X"80",X"A0",X"A9",X"F8",X"00",X"D0",X"00",X"56",X"80",X"A0",X"00",X"56",X"80",X"A1", - X"00",X"D0",X"40",X"64",X"00",X"A2",X"C0",X"64",X"00",X"A2",X"00",X"D0",X"00",X"70",X"00",X"A2", - X"00",X"D0",X"00",X"62",X"40",X"A0",X"80",X"62",X"C0",X"A0",X"AA",X"F9",X"00",X"D0",X"AA",X"FA", - X"00",X"62",X"80",X"A0",X"00",X"52",X"80",X"A2",X"00",X"D0",X"00",X"C8",X"05",X"C8",X"08",X"C8", - X"0B",X"C8",X"10",X"C8",X"13",X"C8",X"17",X"C8",X"1C",X"C8",X"20",X"C8",X"26",X"C8",X"B7",X"C8", - X"2C",X"C8",X"30",X"C8",X"36",X"C8",X"39",X"C8",X"3F",X"C8",X"00",X"C8",X"05",X"C8",X"08",X"C8", - X"0B",X"C8",X"80",X"03",X"00",X"00",X"80",X"01",X"00",X"00",X"90",X"02",X"00",X"00",X"40",X"02", - X"00",X"00",X"E0",X"00",X"00",X"00",X"70",X"01",X"00",X"00",X"60",X"03",X"00",X"00",X"A0",X"05", - X"00",X"00",X"40",X"04",X"00",X"00",X"80",X"02",X"00",X"00",X"40",X"00",X"00",X"00",X"40",X"00", - X"00",X"00",X"C0",X"01",X"00",X"00",X"60",X"00",X"00",X"00",X"40",X"00",X"00",X"00",X"80",X"02", - X"00",X"00",X"68",X"03",X"68",X"01",X"78",X"02",X"28",X"02",X"C8",X"00",X"58",X"01",X"48",X"03", - X"88",X"05",X"28",X"04",X"68",X"02",X"28",X"00",X"28",X"00",X"A8",X"01",X"48",X"00",X"28",X"00", - X"68",X"02",X"92",X"00",X"00",X"62",X"00",X"02",X"88",X"F8",X"40",X"83",X"40",X"04",X"78",X"F8", - X"00",X"70",X"00",X"03",X"88",X"F8",X"80",X"77",X"80",X"04",X"98",X"F8",X"00",X"86",X"80",X"00", - X"00",X"D0",X"40",X"82",X"C0",X"00",X"98",X"F8",X"80",X"76",X"80",X"00",X"78",X"F8",X"00",X"76", - X"00",X"02",X"00",X"D0",X"08",X"FA",X"98",X"F8",X"00",X"83",X"C0",X"00",X"78",X"F8",X"00",X"77", - X"80",X"01",X"88",X"F8",X"80",X"77",X"00",X"01",X"00",X"D0",X"00",X"63",X"00",X"01",X"78",X"F8", - X"80",X"73",X"00",X"00",X"98",X"F8",X"80",X"75",X"80",X"02",X"88",X"F8",X"80",X"77",X"00",X"01", - X"00",X"D0",X"00",X"66",X"00",X"03",X"98",X"F8",X"00",X"72",X"00",X"01",X"88",X"F8",X"40",X"82", - X"C0",X"04",X"98",X"F8",X"00",X"72",X"80",X"02",X"88",X"F8",X"C0",X"87",X"40",X"00",X"78",X"F8", - X"00",X"D0",X"80",X"70",X"00",X"02",X"78",X"F8",X"80",X"82",X"80",X"00",X"98",X"F8",X"C0",X"86", - X"80",X"00",X"00",X"D0",X"40",X"82",X"40",X"00",X"98",X"F8",X"80",X"73",X"00",X"03",X"88",X"F8", - X"C0",X"87",X"80",X"04",X"78",X"F8",X"00",X"65",X"00",X"03",X"00",X"D0",X"00",X"72",X"00",X"01", - X"88",X"F8",X"00",X"72",X"00",X"02",X"98",X"F8",X"00",X"86",X"80",X"00",X"00",X"D0",X"22",X"C9", - X"3A",X"C9",X"51",X"C9",X"6A",X"C9",X"22",X"C9",X"3A",X"C9",X"51",X"C9",X"6A",X"C9",X"31",X"C9", - X"45",X"C9",X"61",X"C9",X"76",X"C9",X"31",X"C9",X"45",X"C9",X"61",X"C9",X"76",X"C9",X"00",X"60", - X"00",X"02",X"88",X"F8",X"40",X"87",X"00",X"01",X"68",X"F8",X"40",X"83",X"80",X"00",X"00",X"D0", - X"00",X"92",X"00",X"00",X"8F",X"C9",X"00",X"96",X"00",X"00",X"00",X"D0",X"00",X"86",X"00",X"00", - X"58",X"F8",X"80",X"82",X"C0",X"01",X"88",X"F8",X"00",X"73",X"80",X"00",X"00",X"D0",X"00",X"71", - X"00",X"02",X"78",X"F8",X"E0",X"96",X"40",X"00",X"68",X"F8",X"40",X"82",X"80",X"00",X"88",X"F8", - X"00",X"D0",X"40",X"92",X"80",X"00",X"58",X"F8",X"E0",X"97",X"60",X"00",X"88",X"F8",X"20",X"92", - X"20",X"00",X"68",X"F8",X"00",X"D0",X"80",X"92",X"A0",X"00",X"78",X"F8",X"80",X"86",X"C0",X"00", - X"88",X"F8",X"00",X"D0",X"40",X"83",X"40",X"01",X"58",X"F8",X"00",X"73",X"80",X"01",X"88",X"F8", - X"00",X"D0",X"00",X"76",X"00",X"02",X"78",X"F8",X"C0",X"86",X"C0",X"00",X"88",X"F8",X"00",X"72", - X"80",X"00",X"68",X"F8",X"00",X"D0",X"20",X"97",X"00",X"00",X"BB",X"C9",X"00",X"D0",X"00",X"73", - X"00",X"00",X"A7",X"C9",X"00",X"D0",X"00",X"86",X"00",X"00",X"B1",X"C9",X"00",X"72",X"00",X"00", - X"00",X"D0",X"80",X"77",X"00",X"00",X"BB",X"C9",X"00",X"D0",X"00",X"67",X"00",X"00",X"C9",X"C9", - X"00",X"D0",X"80",X"83",X"80",X"01",X"68",X"F8",X"00",X"60",X"00",X"02",X"00",X"D0",X"E0",X"96", - X"00",X"00",X"C2",X"C9",X"00",X"D0",X"00",X"77",X"00",X"00",X"BB",X"C9",X"00",X"D0",X"8F",X"C9", - X"98",X"C9",X"9E",X"C9",X"A7",X"C9",X"B1",X"C9",X"BB",X"C9",X"C2",X"C9",X"C9",X"C9",X"D3",X"C9", - X"D7",X"C9",X"DB",X"C9",X"E1",X"C9",X"E5",X"C9",X"E9",X"C9",X"EF",X"C9",X"F3",X"C9",X"8F",X"C9", - X"98",X"C9",X"9E",X"C9",X"A7",X"C9",X"E0",X"04",X"00",X"00",X"E0",X"04",X"00",X"00",X"E0",X"04", - X"00",X"00",X"E0",X"05",X"00",X"00",X"60",X"04",X"00",X"00",X"E0",X"04",X"00",X"00",X"20",X"06", - X"00",X"00",X"80",X"08",X"00",X"00",X"20",X"07",X"00",X"00",X"40",X"05",X"00",X"00",X"80",X"04", - X"00",X"00",X"80",X"04",X"00",X"00",X"E0",X"04",X"00",X"00",X"20",X"03",X"00",X"00",X"E0",X"04", - X"00",X"00",X"60",X"04",X"00",X"00",X"2C",X"CA",X"EC",X"A2",X"64",X"00",X"00",X"70",X"00",X"00", - X"62",X"CB",X"F4",X"CA",X"44",X"CB",X"5A",X"CB",X"02",X"CB",X"93",X"CB",X"93",X"CB",X"E0",X"64", - X"A0",X"06",X"69",X"CB",X"21",X"CB",X"39",X"CB",X"02",X"CB",X"93",X"CB",X"93",X"CB",X"93",X"CB", - X"E0",X"64",X"A0",X"06",X"0A",X"CB",X"6F",X"CB",X"02",X"CB",X"34",X"CB",X"93",X"CB",X"93",X"CB", - X"93",X"CB",X"70",X"80",X"40",X"03",X"DF",X"CA",X"34",X"CB",X"69",X"CB",X"21",X"CB",X"69",X"CB", - X"6F",X"CB",X"FA",X"CA",X"02",X"CB",X"93",X"CB",X"93",X"CB",X"93",X"CB",X"93",X"CB",X"93",X"CB", - X"93",X"CB",X"93",X"CB",X"93",X"CB",X"93",X"CB",X"93",X"CB",X"70",X"74",X"60",X"07",X"1A",X"CB", - X"44",X"CB",X"5A",X"CB",X"21",X"CB",X"8D",X"CB",X"44",X"CB",X"3F",X"CB",X"69",X"CB",X"DF",X"CA", - X"34",X"CB",X"93",X"CB",X"62",X"CB",X"4A",X"CB",X"02",X"CB",X"02",X"CB",X"FA",X"CA",X"93",X"CB", - X"93",X"CB",X"70",X"74",X"60",X"07",X"75",X"CB",X"02",X"CB",X"5A",X"CB",X"69",X"CB",X"21",X"CB", - X"F4",X"CA",X"DF",X"CA",X"34",X"CB",X"93",X"CB",X"62",X"CB",X"4A",X"CB",X"02",X"CB",X"02",X"CB", - X"FA",X"CA",X"93",X"CB",X"93",X"CB",X"93",X"CB",X"93",X"CB",X"00",X"D0",X"40",X"A2",X"B2",X"01", - X"60",X"A2",X"BE",X"01",X"60",X"A2",X"88",X"01",X"10",X"A2",X"76",X"01",X"80",X"A2",X"4C",X"01", - X"20",X"A2",X"A6",X"01",X"D0",X"A1",X"BE",X"01",X"10",X"A2",X"C4",X"01",X"E0",X"A1",X"A6",X"01", - X"20",X"A2",X"10",X"01",X"00",X"A2",X"70",X"01",X"00",X"A2",X"4C",X"01",X"EC",X"A2",X"C8",X"00", - X"00",X"70",X"00",X"00",X"C0",X"55",X"00",X"07",X"D9",X"CA",X"C0",X"55",X"80",X"07",X"38",X"90", - X"3C",X"02",X"E0",X"64",X"40",X"06",X"E0",X"64",X"40",X"06",X"B3",X"CA",X"BB",X"CA",X"08",X"F8", - X"C3",X"CA",X"CC",X"CA",X"08",X"F8",X"80",X"42",X"80",X"01",X"CB",X"F0",X"C7",X"F3",X"80",X"36", - X"00",X"C0",X"C3",X"F3",X"00",X"D0",X"40",X"51",X"40",X"02",X"CF",X"F0",X"C3",X"F3",X"80",X"36", - X"00",X"C0",X"C7",X"F3",X"00",X"D0",X"40",X"46",X"00",X"03",X"C8",X"F3",X"C7",X"F7",X"C3",X"F8", - X"C7",X"F3",X"C0",X"44",X"00",X"07",X"00",X"D0",X"C0",X"40",X"00",X"03",X"C8",X"F7",X"C7",X"F3", - X"C3",X"F8",X"C7",X"F7",X"40",X"42",X"00",X"07",X"00",X"D0",X"C2",X"A2",X"78",X"03",X"00",X"70", - X"00",X"00",X"01",X"F2",X"70",X"F0",X"00",X"F2",X"70",X"F0",X"01",X"FE",X"00",X"D0",X"C0",X"FA", - X"C2",X"F2",X"C2",X"F6",X"C0",X"FE",X"06",X"F9",X"C2",X"F8",X"02",X"F6",X"00",X"D0",X"C0",X"FB", - X"C3",X"F0",X"C1",X"F5",X"C0",X"F5",X"C5",X"F5",X"C7",X"F0",X"03",X"F0",X"C1",X"F5",X"C0",X"F5", - X"C5",X"F5",X"C7",X"F0",X"03",X"F8",X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"06",X"FF",X"C2",X"F8", - X"02",X"F0",X"00",X"D0",X"C0",X"FB",X"C2",X"F0",X"C2",X"F6",X"C0",X"F6",X"C6",X"F6",X"C6",X"F0", - X"03",X"F8",X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"05",X"F7",X"C7",X"F0",X"00",X"F7",X"C2",X"F8", - X"02",X"F0",X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"05",X"F7",X"C7",X"F0",X"00",X"F7",X"03",X"F8", - X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"C0",X"F6",X"06",X"F6",X"C2",X"F0",X"C0",X"F6",X"C6",X"F8", - X"03",X"F8",X"00",X"D0",X"C0",X"FB",X"00",X"F7",X"C2",X"F8",X"00",X"F3",X"C0",X"FF",X"02",X"F0", - X"00",X"D0",X"C2",X"F8",X"06",X"F0",X"C0",X"FB",X"02",X"F0",X"C6",X"F8",X"03",X"FF",X"00",X"D0", - X"00",X"F2",X"C2",X"F6",X"C2",X"F0",X"C0",X"FB",X"01",X"FF",X"00",X"D0",X"C0",X"FB",X"03",X"F0", - X"C7",X"F7",X"C3",X"F7",X"03",X"F0",X"00",X"D0",X"00",X"FB",X"C0",X"FF",X"C2",X"F8",X"02",X"F0", - X"00",X"D0",X"C0",X"FB",X"C2",X"F6",X"C2",X"F2",X"C0",X"FF",X"02",X"F0",X"00",X"D0",X"C0",X"FB", - X"C2",X"FF",X"C0",X"FB",X"01",X"FF",X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"C0",X"FF",X"C6",X"F8", - X"03",X"F8",X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"C0",X"F7",X"C6",X"F8",X"03",X"F7",X"03",X"F0", - X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"C0",X"FE",X"C6",X"F6",X"C6",X"F0",X"02",X"F2",X"C2",X"F6", - X"02",X"F0",X"00",X"D0",X"C0",X"FB",X"C2",X"F8",X"C0",X"F7",X"C6",X"F8",X"01",X"F0",X"C3",X"F7", - X"02",X"F0",X"00",X"D0",X"C2",X"F8",X"C0",X"F3",X"C6",X"F8",X"C0",X"F3",X"C2",X"F8",X"01",X"FF", - X"00",X"D0",X"02",X"F0",X"C0",X"FB",X"06",X"F0",X"C2",X"F8",X"01",X"FF",X"00",X"D0",X"00",X"FB", - X"C0",X"FF",X"C2",X"F8",X"C0",X"FB",X"01",X"FF",X"00",X"D0",X"00",X"FB",X"C1",X"FF",X"C1",X"FB", - X"01",X"FF",X"00",X"D0",X"00",X"FB",X"C0",X"FF",X"C2",X"F2",X"C2",X"F6",X"C0",X"FB",X"01",X"FF", - X"00",X"D0",X"C2",X"FB",X"06",X"F8",X"C2",X"FF",X"02",X"F0",X"00",X"D0",X"02",X"F0",X"C0",X"FA", - X"C6",X"F2",X"02",X"F8",X"C6",X"F6",X"02",X"FE",X"00",X"D0",X"00",X"FB",X"C2",X"F8",X"C6",X"FF", - X"C2",X"F8",X"02",X"F0",X"00",X"D0",X"03",X"F8",X"00",X"D0",X"02",X"F0",X"C0",X"FB",X"02",X"FF", - X"00",X"D0",X"00",X"FB",X"C2",X"F8",X"C0",X"F7",X"C6",X"F8",X"C0",X"F7",X"C2",X"F8",X"02",X"F0", - X"00",X"D0",X"C2",X"F8",X"C0",X"FB",X"C6",X"F8",X"00",X"F7",X"C2",X"F8",X"02",X"F7",X"00",X"D0", - X"00",X"FB",X"C0",X"F7",X"C2",X"F8",X"00",X"F3",X"C0",X"FF",X"02",X"F0",X"00",X"D0",X"C2",X"F8", - X"C0",X"F3",X"C6",X"F8",X"C0",X"F3",X"C2",X"F8",X"01",X"FF",X"00",X"D0",X"00",X"F3",X"C2",X"F8", - X"C0",X"F7",X"C6",X"F8",X"C0",X"FB",X"03",X"FF",X"00",X"D0",X"00",X"FB",X"C2",X"F8",X"C0",X"FF", - X"02",X"F0",X"00",X"D0",X"C2",X"F8",X"C0",X"FB",X"C6",X"F8",X"C0",X"FF",X"00",X"F3",X"C2",X"F8", - X"02",X"F7",X"00",X"D0",X"02",X"F8",X"C0",X"FB",X"C6",X"F8",X"C0",X"F7",X"C2",X"F8",X"02",X"F7", - X"00",X"D0",X"93",X"CB",X"44",X"CB",X"95",X"CB",X"99",X"CB",X"A1",X"CB",X"A8",X"CB",X"AF",X"CB", - X"B6",X"CB",X"BD",X"CB",X"C2",X"CB",X"CA",X"CB",X"DF",X"CA",X"E7",X"CA",X"F4",X"CA",X"FA",X"CA", - X"02",X"CB",X"0A",X"CB",X"11",X"CB",X"1A",X"CB",X"21",X"CB",X"28",X"CB",X"2E",X"CB",X"34",X"CB", - X"39",X"CB",X"3F",X"CB",X"44",X"CB",X"4A",X"CB",X"51",X"CB",X"5A",X"CB",X"62",X"CB",X"69",X"CB", - X"6F",X"CB",X"75",X"CB",X"7A",X"CB",X"81",X"CB",X"86",X"CB",X"8D",X"CB",X"00",X"00",X"00",X"00", - X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"37"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_2.vhd b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_2.vhd deleted file mode 100644 index 2f727bb4..00000000 --- a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/rom/LLANDER_VEC_ROM_2.vhd +++ /dev/null @@ -1,150 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all,ieee.numeric_std.all; - -entity LLANDER_VEC_ROM_2 is -port ( - clk : in std_logic; - addr : in std_logic_vector(10 downto 0); - data : out std_logic_vector(7 downto 0) -); -end entity; - -architecture prom of LLANDER_VEC_ROM_2 is - type rom is array(0 to 2047) of std_logic_vector(7 downto 0); - signal rom_data: rom := ( - X"00",X"30",X"60",X"00",X"94",X"58",X"C6",X"58",X"FA",X"58",X"2E",X"59",X"48",X"59",X"79",X"59", - X"9C",X"59",X"10",X"5A",X"36",X"5A",X"86",X"5A",X"D2",X"5A",X"0C",X"5B",X"4E",X"5B",X"82",X"5B", - X"EA",X"5B",X"36",X"5C",X"8D",X"5C",X"A6",X"5C",X"EC",X"5C",X"6A",X"5D",X"AA",X"5D",X"ED",X"5D", - X"02",X"5E",X"23",X"5E",X"A5",X"58",X"D7",X"58",X"0B",X"59",X"35",X"59",X"5D",X"59",X"82",X"59", - X"C5",X"59",X"1D",X"5A",X"55",X"5A",X"9C",X"5A",X"E4",X"5A",X"21",X"5B",X"5F",X"5B",X"A3",X"5B", - X"06",X"5C",X"47",X"5C",X"AD",X"5C",X"C5",X"5C",X"18",X"5D",X"7C",X"5D",X"C4",X"5D",X"F4",X"5D", - X"0E",X"5E",X"38",X"5E",X"B1",X"58",X"E7",X"58",X"1A",X"59",X"3D",X"59",X"6B",X"59",X"8B",X"59", - X"F1",X"59",X"2B",X"5A",X"70",X"5A",X"B1",X"5A",X"FA",X"5A",X"39",X"5B",X"71",X"5B",X"C4",X"5B", - X"22",X"5C",X"6C",X"5C",X"CE",X"5C",X"E3",X"5C",X"3C",X"5D",X"83",X"5D",X"DA",X"5D",X"FB",X"5D", - X"1A",X"5E",X"51",X"5E",X"16",X"34",X"34",X"3E",X"46",X"1E",X"38",X"00",X"3A",X"3E",X"38",X"00", - X"3A",X"3C",X"16",X"38",X"BC",X"34",X"3E",X"2C",X"3A",X"16",X"38",X"00",X"3A",X"3C",X"16",X"38", - X"BC",X"3A",X"3C",X"16",X"38",X"3C",X"2A",X"30",X"32",X"1E",X"34",X"20",X"1E",X"00",X"1C",X"38", - X"3E",X"1E",X"1A",X"2A",X"1E",X"B0",X"1A",X"16",X"38",X"18",X"3E",X"38",X"16",X"30",X"3C",X"00", - X"1C",X"26",X"2E",X"26",X"30",X"3E",X"9E",X"34",X"32",X"1A",X"32",X"00",X"1A",X"32",X"2E",X"18", - X"3E",X"3A",X"3C",X"26",X"18",X"2C",X"9E",X"3C",X"38",X"1E",X"26",X"18",X"3A",X"3C",X"32",X"20", - X"20",X"00",X"22",X"1E",X"24",X"3C",X"00",X"16",X"3E",X"BA",X"34",X"2C",X"3E",X"3A",X"00",X"1C", - X"1E",X"00",X"1A",X"16",X"38",X"18",X"3E",X"38",X"16",X"30",X"BC",X"3A",X"26",X"30",X"00",X"1A", - X"32",X"2E",X"18",X"3E",X"3A",X"3C",X"26",X"18",X"2C",X"9E",X"3C",X"38",X"1E",X"26",X"18",X"3A", - X"3C",X"32",X"20",X"20",X"3C",X"16",X"30",X"2A",X"3A",X"00",X"2C",X"1E",X"1E",X"B8",X"34",X"1E", - X"38",X"1C",X"3E",X"1E",X"BA",X"34",X"1E",X"38",X"1C",X"26",X"1C",X"16",X"BA",X"3C",X"1E",X"26", - X"2C",X"40",X"1E",X"38",X"2C",X"3E",X"3A",X"BC",X"26",X"30",X"3C",X"38",X"32",X"1C",X"3E",X"26", - X"38",X"1E",X"00",X"2C",X"1E",X"3A",X"00",X"34",X"26",X"1E",X"1A",X"1E",X"BA",X"26",X"30",X"3A", - X"1E",X"38",X"3C",X"1E",X"00",X"20",X"26",X"1A",X"24",X"16",X"BA",X"22",X"1E",X"2C",X"1C",X"00", - X"16",X"3E",X"3A",X"42",X"1E",X"38",X"20",X"1E",X"B0",X"34",X"16",X"38",X"00",X"34",X"26",X"1E", - X"1A",X"9E",X"34",X"32",X"38",X"00",X"20",X"26",X"1A",X"24",X"96",X"48",X"3E",X"2A",X"16",X"3E", - X"20",X"00",X"34",X"38",X"32",X"00",X"2E",X"3E",X"1E",X"30",X"48",X"9E",X"38",X"1E",X"3A",X"1E", - X"38",X"40",X"32",X"26",X"38",X"00",X"16",X"3E",X"44",X"26",X"2C",X"26",X"16",X"26",X"38",X"1E", - X"00",X"1C",X"1E",X"00",X"1A",X"16",X"38",X"18",X"3E",X"38",X"16",X"30",X"3C",X"00",X"1C",X"1E", - X"3C",X"38",X"3E",X"26",X"BC",X"3C",X"16",X"30",X"36",X"3E",X"1E",X"3A",X"00",X"16",X"3E",X"44", - X"26",X"2C",X"26",X"16",X"38",X"1E",X"3A",X"00",X"1C",X"1E",X"00",X"1A",X"32",X"2E",X"18",X"3E", - X"3A",X"3C",X"26",X"18",X"2C",X"1E",X"00",X"1C",X"1E",X"3A",X"3C",X"38",X"3E",X"26",X"1C",X"32", - X"BA",X"48",X"3E",X"3A",X"16",X"3C",X"48",X"3C",X"38",X"1E",X"26",X"18",X"3A",X"3C",X"32",X"20", - X"20",X"3C",X"16",X"30",X"2A",X"3A",X"00",X"48",X"1E",X"38",X"3A",X"3C",X"32",X"1E",X"38",X"BC", - X"20",X"1E",X"2C",X"26",X"1A",X"26",X"3C",X"16",X"3C",X"26",X"32",X"30",X"BA",X"20",X"1E",X"2C", - X"26",X"1A",X"26",X"3C",X"16",X"1A",X"26",X"32",X"30",X"1E",X"BA",X"22",X"38",X"16",X"3C",X"3E", - X"2C",X"16",X"3C",X"26",X"32",X"B0",X"40",X"32",X"3E",X"3A",X"00",X"16",X"40",X"1E",X"48",X"00", - X"16",X"3C",X"3C",X"1E",X"38",X"38",X"26",X"00",X"1C",X"26",X"20",X"20",X"26",X"1A",X"26",X"2C", - X"1E",X"2E",X"1E",X"30",X"BC",X"3E",X"3A",X"3C",X"1E",X"1C",X"00",X"16",X"2C",X"3E",X"30",X"26", - X"48",X"32",X"00",X"40",X"26",X"32",X"2C",X"1E",X"30",X"3C",X"16",X"2E",X"1E",X"30",X"3C",X"9E", - X"3A",X"26",X"1E",X"00",X"3A",X"26",X"30",X"1C",X"00",X"24",X"16",X"38",X"3C",X"00",X"22",X"1E", - X"2C",X"16",X"30",X"1C",X"1E",X"BC",X"3A",X"34",X"2C",X"1E",X"30",X"1C",X"26",X"1C",X"1E",X"00", - X"16",X"3C",X"3C",X"1E",X"38",X"38",X"26",X"3A",X"3A",X"16",X"22",X"9E",X"20",X"3E",X"1E",X"00", - X"3E",X"30",X"00",X"22",X"38",X"16",X"30",X"00",X"16",X"2C",X"3E",X"30",X"26",X"48",X"16",X"28", - X"9E",X"1C",X"26",X"1E",X"3A",X"00",X"42",X"16",X"38",X"00",X"1E",X"26",X"30",X"1E",X"00",X"22", - X"38",X"32",X"3A",X"3A",X"16",X"38",X"3C",X"26",X"22",X"1E",X"00",X"2C",X"16",X"30",X"1C",X"3E", - X"30",X"A2",X"2C",X"1E",X"00",X"1E",X"16",X"22",X"2C",X"1E",X"00",X"16",X"00",X"16",X"3C",X"3C", - X"1E",X"38",X"38",X"A6",X"1E",X"2C",X"00",X"16",X"22",X"3E",X"26",X"2C",X"16",X"00",X"24",X"16", - X"00",X"16",X"2C",X"3E",X"30",X"26",X"48",X"16",X"1C",X"B2",X"1E",X"16",X"22",X"2C",X"1E",X"00", - X"26",X"3A",X"3C",X"00",X"22",X"1E",X"2C",X"16",X"30",X"1C",X"1E",X"BC",X"2C",X"1E",X"00",X"1A", - X"32",X"2C",X"3E",X"2E",X"18",X"26",X"16",X"00",X"16",X"00",X"16",X"3C",X"3C",X"1E",X"38",X"38", - X"A6",X"1E",X"2C",X"00",X"1A",X"32",X"2C",X"3E",X"2E",X"18",X"26",X"16",X"00",X"24",X"16",X"00", - X"16",X"2C",X"3E",X"30",X"26",X"48",X"16",X"1C",X"B2",X"1A",X"32",X"2C",X"3E",X"2E",X"18",X"26", - X"16",X"00",X"26",X"3A",X"3C",X"00",X"22",X"1E",X"2C",X"16",X"30",X"1C",X"1E",X"BC",X"40",X"32", - X"3E",X"3A",X"00",X"16",X"40",X"1E",X"48",X"00",X"16",X"3C",X"3C",X"1E",X"38",X"38",X"A6",X"3E", - X"3A",X"3C",X"1E",X"1C",X"00",X"24",X"16",X"00",X"16",X"2C",X"3E",X"30",X"26",X"48",X"16",X"1C", - X"B2",X"3A",X"26",X"1E",X"00",X"3A",X"26",X"30",X"1C",X"00",X"22",X"1E",X"2C",X"16",X"30",X"1C", - X"1E",X"BC",X"2C",X"1E",X"00",X"3A",X"3E",X"34",X"34",X"32",X"38",X"3C",X"00",X"1C",X"1E",X"00", - X"3A",X"16",X"3E",X"40",X"1E",X"3C",X"16",X"22",X"1E",X"00",X"1E",X"3A",X"3C",X"00",X"34",X"16", - X"38",X"3C",X"A6",X"1E",X"36",X"3E",X"26",X"34",X"32",X"00",X"1C",X"1E",X"00",X"3A",X"3E",X"34", - X"1E",X"38",X"40",X"26",X"40",X"1E",X"30",X"1A",X"26",X"16",X"00",X"1C",X"1E",X"3A",X"3C",X"38", - X"3E",X"26",X"1C",X"B2",X"2C",X"1E",X"18",X"1E",X"30",X"3A",X"38",X"1E",X"3C",X"3C",X"3E",X"30", - X"22",X"3A",X"3A",X"46",X"3A",X"3C",X"1E",X"2E",X"1E",X"00",X"3A",X"26",X"30",X"1C",X"00",X"16", - X"3E",X"3A",X"22",X"1E",X"20",X"16",X"2C",X"2C",X"1E",X"B0",X"40",X"32",X"3C",X"38",X"1E",X"00", - X"40",X"32",X"46",X"16",X"22",X"1E",X"00",X"1E",X"3A",X"3C",X"00",X"3A",X"16",X"30",X"3A",X"00", - X"38",X"1E",X"3C",X"32",X"3E",X"B8",X"3A",X"3E",X"00",X"40",X"26",X"16",X"28",X"1E",X"00",X"1E", - X"3A",X"00",X"1C",X"1E",X"00",X"26",X"1C",X"16",X"00",X"3A",X"32",X"2C",X"16",X"2E",X"1E",X"30", - X"3C",X"9E",X"38",X"1E",X"26",X"3A",X"1E",X"00",X"32",X"24",X"30",X"1E",X"00",X"38",X"3E",X"1E", - X"1A",X"2A",X"2A",X"1E",X"24",X"B8",X"34",X"1E",X"38",X"1C",X"3E",X"00",X"3A",X"16",X"30",X"3A", - X"00",X"1E",X"3A",X"34",X"32",X"26",X"B8",X"2C",X"16",X"2E",X"1E",X"30",X"3C",X"16",X"18",X"2C", - X"1E",X"2E",X"1E",X"30",X"3C",X"1E",X"00",X"3E",X"3A",X"3C",X"1E",X"1C",X"00",X"30",X"32",X"00", - X"34",X"3E",X"1E",X"1C",X"1E",X"00",X"40",X"32",X"2C",X"40",X"1E",X"B8",X"2A",X"1E",X"26",X"30", - X"00",X"38",X"3E",X"1E",X"1A",X"2A",X"3A",X"3C",X"16",X"38",X"3C",X"00",X"48",X"3E",X"38",X"00", - X"1E",X"38",X"1C",X"1E",X"00",X"2E",X"32",X"1E",X"22",X"2C",X"26",X"1A",X"A4",X"3A",X"46",X"3A", - X"3C",X"1E",X"2E",X"1E",X"00",X"1C",X"1E",X"00",X"1A",X"32",X"2E",X"2E",X"3E",X"30",X"26",X"1A", - X"16",X"3C",X"26",X"32",X"30",X"00",X"1C",X"1E",X"3C",X"38",X"3E",X"26",X"BC",X"3A",X"26",X"3A", - X"3C",X"1E",X"2E",X"16",X"00",X"1C",X"1E",X"00",X"1A",X"32",X"2E",X"3E",X"30",X"26",X"1A",X"16", - X"1A",X"26",X"32",X"30",X"00",X"1C",X"1E",X"3A",X"3C",X"38",X"3E",X"26",X"1C",X"B2",X"2A",X"32", - X"2E",X"2E",X"3E",X"30",X"26",X"2A",X"16",X"3C",X"26",X"32",X"30",X"3A",X"3A",X"46",X"3A",X"3C", - X"1E",X"2E",X"00",X"48",X"1E",X"38",X"3A",X"3C",X"32",X"1E",X"38",X"BC",X"40",X"32",X"3E",X"3A", - X"00",X"16",X"40",X"1E",X"48",X"00",X"1A",X"38",X"1E",X"1E",X"00",X"3E",X"30",X"00",X"1A",X"38", - X"16",X"3C",X"1E",X"38",X"1E",X"00",X"1C",X"1E",X"00",X"1C",X"1E",X"3E",X"44",X"00",X"2A",X"26", - X"2C",X"32",X"2E",X"1E",X"3C",X"38",X"1E",X"BA",X"3E",X"3A",X"3C",X"1E",X"1C",X"00",X"1A",X"38", - X"1E",X"32",X"00",X"3E",X"30",X"00",X"1A",X"38",X"16",X"3C",X"1E",X"38",X"00",X"1C",X"1E",X"00", - X"06",X"00",X"2A",X"26",X"2C",X"32",X"2E",X"1E",X"3C",X"38",X"32",X"BA",X"3A",X"26",X"1E",X"00", - X"24",X"16",X"18",X"1E",X"30",X"00",X"1E",X"26",X"30",X"1E",X"30",X"00",X"06",X"00",X"2A",X"26", - X"2C",X"32",X"2E",X"1E",X"3C",X"1E",X"38",X"00",X"2A",X"38",X"16",X"3C",X"1E",X"38",X"00",X"16", - X"3E",X"20",X"22",X"1E",X"38",X"26",X"3A",X"3A",X"1E",X"B0",X"40",X"32",X"3E",X"3A",X"00",X"16", - X"40",X"1E",X"48",X"00",X"3E",X"30",X"00",X"1A",X"38",X"16",X"3A",X"A4",X"1C",X"1E",X"2E",X"32", - X"2C",X"1E",X"B8",X"0C",X"02",X"00",X"02",X"02",X"02",X"00",X"02",X"02",X"02",X"00",X"2E",X"16", - X"38",X"2A",X"00",X"3A",X"26",X"30",X"1C",X"00",X"26",X"30",X"00",X"1C",X"26",X"1E",X"00",X"2C", - X"3E",X"20",X"3C",X"00",X"22",X"1E",X"28",X"16",X"22",X"BC",X"26",X"2C",X"00",X"30",X"1E",X"46", - X"00",X"16",X"00",X"34",X"16",X"3A",X"00",X"1C",X"1E",X"00",X"3A",X"3E",X"38",X"40",X"26",X"40", - X"16",X"30",X"3C",X"BA",X"30",X"32",X"00",X"24",X"3E",X"18",X"32",X"00",X"3A",X"32",X"18",X"38", - X"1E",X"40",X"26",X"40",X"26",X"1E",X"30",X"3C",X"1E",X"BA",X"2A",X"1E",X"26",X"30",X"1E",X"00", - X"3E",X"1E",X"18",X"1E",X"38",X"2C",X"1E",X"18",X"1E",X"30",X"1C",X"1E",X"B0",X"00",X"34",X"32", - X"26",X"30",X"3C",X"BA",X"00",X"34",X"3E",X"30",X"3C",X"32",X"BA",X"00",X"34",X"3E",X"30",X"2A", - X"3C",X"9E",X"1A",X"24",X"32",X"26",X"44",X"00",X"1C",X"3E",X"00",X"28",X"1E",X"BE",X"1E",X"2C", - X"1E",X"22",X"26",X"38",X"00",X"28",X"3E",X"1E",X"22",X"B2",X"3A",X"34",X"26",X"1E",X"2C",X"42", - X"16",X"24",X"AC",X"00",X"3E",X"30",X"26",X"3C",X"1E",X"3A",X"00",X"1C",X"1E",X"00",X"1A",X"16", - X"38",X"18",X"3E",X"38",X"16",X"30",X"3C",X"80",X"00",X"3E",X"30",X"26",X"1C",X"16",X"1C",X"1E", - X"3A",X"00",X"1C",X"1E",X"00",X"1A",X"32",X"2E",X"18",X"3E",X"3A",X"3C",X"26",X"18",X"2C",X"1E", - X"80",X"00",X"3C",X"38",X"1E",X"26",X"18",X"3A",X"3C",X"32",X"20",X"20",X"80",X"00",X"00",X"00", - X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"6F",X"5E",X"D5",X"5E",X"33",X"5F",X"EC", - X"A2",X"28",X"00",X"00",X"70",X"00",X"00",X"3A",X"1A",X"32",X"38",X"9E",X"C0",X"55",X"C0",X"07", - X"1C",X"3E",X"38",X"1E",X"1E",X"00",X"1C",X"3E",X"00",X"28",X"1E",X"BE",X"70",X"74",X"40",X"06", - X"1A",X"32",X"2E",X"18",X"3E",X"3A",X"3C",X"26",X"18",X"2C",X"9E",X"70",X"80",X"40",X"03",X"16", - X"2C",X"3C",X"26",X"3C",X"3E",X"1C",X"9E",X"E0",X"64",X"00",X"07",X"40",X"26",X"3C",X"1E",X"3A", - X"3A",X"1E",X"00",X"24",X"32",X"38",X"26",X"48",X"32",X"30",X"3C",X"16",X"2C",X"9E",X"70",X"74", - X"90",X"07",X"40",X"26",X"3C",X"1E",X"3A",X"3A",X"1E",X"00",X"40",X"1E",X"38",X"3C",X"26",X"1A", - X"16",X"2C",X"9E",X"00",X"D0",X"EC",X"A2",X"64",X"00",X"00",X"70",X"00",X"00",X"34",X"3E",X"30", - X"3C",X"16",X"28",X"9E",X"E0",X"64",X"A0",X"06",X"3C",X"26",X"1E",X"2E",X"34",X"B2",X"E0",X"64", - X"40",X"06",X"34",X"1E",X"3C",X"38",X"32",X"AC",X"70",X"80",X"10",X"03",X"16",X"2C",X"3C",X"26", - X"3C",X"3E",X"9C",X"E0",X"64",X"A0",X"06",X"40",X"1E",X"2C",X"32",X"1A",X"26",X"1C",X"16",X"1C", - X"00",X"24",X"32",X"38",X"26",X"48",X"32",X"30",X"3C",X"16",X"AC",X"70",X"74",X"C0",X"07",X"40", - X"1E",X"2C",X"32",X"1A",X"26",X"1C",X"16",X"1C",X"00",X"40",X"1E",X"38",X"3C",X"26",X"1A",X"16", - X"AC",X"00",X"D0",X"EC",X"A2",X"4C",X"00",X"00",X"70",X"00",X"00",X"34",X"3E",X"30",X"2A",X"3C", - X"48",X"16",X"24",X"AC",X"E0",X"64",X"60",X"07",X"38",X"1E",X"3A",X"3C",X"48",X"1E",X"26",X"BC", - X"E0",X"64",X"00",X"07",X"34",X"1E",X"3C",X"38",X"32",X"AC",X"70",X"80",X"B0",X"02",X"24",X"32", - X"1E",X"24",X"9E",X"C0",X"55",X"C0",X"07",X"24",X"32",X"38",X"26",X"48",X"32",X"30",X"3C",X"16", - X"2C",X"1E",X"00",X"22",X"1E",X"3A",X"1A",X"24",X"42",X"26",X"30",X"1C",X"26",X"22",X"2A",X"1E", - X"26",X"BC",X"38",X"84",X"88",X"06",X"40",X"1E",X"38",X"3C",X"26",X"2A",X"16",X"2C",X"1E",X"00", - X"22",X"1E",X"3A",X"1A",X"24",X"42",X"26",X"30",X"1C",X"26",X"22",X"2A",X"1E",X"26",X"BC",X"00", - X"D0",X"00",X"1D",X"3A",X"EB",X"EE",X"EE",X"F7",X"E5",X"FD",X"DF",X"06",X"D0",X"06",X"12",X"09", - X"15",X"F7",X"06",X"27",X"FA",X"63",X"F4",X"42",X"2A",X"00",X"03",X"E5",X"00",X"00",X"00",X"00", - X"00",X"FA",X"F1",X"F4",X"F4",X"FA",X"FD",X"D6",X"03",X"DC",X"09",X"06",X"00",X"12",X"F7",X"06", - X"EB",X"F7",X"5D",X"0C",X"63",X"36",X"00",X"03",X"D9",X"00",X"00",X"00",X"00",X"00",X"DF",X"E8", - X"E5",X"EB",X"FA",X"E5",X"FD",X"0C",X"EB",X"E5",X"12",X"09",X"15",X"E8",X"1E",X"F7",X"00",X"5D", - X"EE",X"03",X"3F",X"00",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00"); -begin -process(clk) -begin - if rising_edge(clk) then - data <= rom_data(to_integer(unsigned(addr))); - end if; -end process; -end architecture; diff --git a/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/sdram.sv b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/sdram.sv new file mode 100644 index 00000000..bc78584d --- /dev/null +++ b/Arcade_MiST/Atari Vector/LunarLander_MiST/rtl/sdram.sv @@ -0,0 +1,323 @@ +// +// sdram.v +// +// sdram controller implementation for the MiST board +// https://github.com/mist-devel/mist-board +// +// Copyright (c) 2013 Till Harbaum +// Copyright (c) 2019 Gyorgy Szombathelyi +// +// 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 . +// + +module sdram ( + + // interface to the MT48LC16M16 chip + inout reg [15:0] SDRAM_DQ, // 16 bit bidirectional data bus + output reg [12:0] SDRAM_A, // 13 bit multiplexed address bus + output reg SDRAM_DQML, // two byte masks + output reg SDRAM_DQMH, // two byte masks + output reg [1:0] SDRAM_BA, // two banks + output SDRAM_nCS, // a single chip select + output SDRAM_nWE, // write enable + output SDRAM_nRAS, // row address select + output SDRAM_nCAS, // columns address select + + // cpu/chipset interface + input init_n, // init signal after FPGA config to initialize RAM + input clk, // sdram clock + + input port1_req, + output reg port1_ack, + input port1_we, + input [23:1] port1_a, + input [1:0] port1_ds, + input [15:0] port1_d, + output [15:0] port1_q, + + input [15:1] cpu1_addr, + output reg [15:0] cpu1_q, + + input port2_req, + output reg port2_ack, + input port2_we, + input [23:1] port2_a, + input [1:0] port2_ds, + input [15:0] port2_d, + output [15:0] port2_q, + + input [15:1] snd_addr, + output reg [15:0] snd_q +); + +localparam RASCAS_DELAY = 3'd2; // tRCD=20ns -> 2 cycles@<100MHz +localparam BURST_LENGTH = 3'b000; // 000=1, 001=2, 010=4, 011=8 +localparam ACCESS_TYPE = 1'b0; // 0=sequential, 1=interleaved +localparam CAS_LATENCY = 3'd2; // 2/3 allowed +localparam OP_MODE = 2'b00; // only 00 (standard operation) allowed +localparam NO_WRITE_BURST = 1'b1; // 0= write burst enabled, 1=only single access write + +localparam MODE = { 3'b000, NO_WRITE_BURST, OP_MODE, CAS_LATENCY, ACCESS_TYPE, BURST_LENGTH}; + +// 64ms/8192 rows = 7.8us -> 842 cycles@108MHz +localparam RFRSH_CYCLES = 10'd842; + +// --------------------------------------------------------------------- +// ------------------------ cycle state machine ------------------------ +// --------------------------------------------------------------------- + +/* + SDRAM state machine for 2 bank interleaved access + 1 word burst, CL2 +cmd issued registered + 0 RAS0 cas1 + 1 ras0 + 2 CAS0 data1 returned + 3 RAS1 cas0 + 4 ras1 + 5 CAS1 data0 returned +*/ + +localparam STATE_RAS0 = 3'd0; // first state in cycle +localparam STATE_RAS1 = 3'd3; // Second ACTIVE command after RAS0 + tRRD (15ns) +localparam STATE_CAS0 = STATE_RAS0 + RASCAS_DELAY; // CAS phase - 3 +localparam STATE_CAS1 = STATE_RAS1 + RASCAS_DELAY; // CAS phase - 5 +localparam STATE_READ0 = 3'd0; //STATE_CAS0 + CAS_LATENCY + 1'd1; // 7 +localparam STATE_READ1 = 3'd3; +localparam STATE_LAST = 3'd5; + +reg [2:0] t; + +always @(posedge clk) begin + t <= t + 1'd1; + if (t == STATE_LAST) t <= STATE_RAS0; +end + +// --------------------------------------------------------------------- +// --------------------------- startup/reset --------------------------- +// --------------------------------------------------------------------- + +// wait 1ms (32 8Mhz cycles) after FPGA config is done before going +// into normal operation. Initialize the ram in the last 16 reset cycles (cycles 15-0) +reg [4:0] reset; +reg init = 1'b1; +always @(posedge clk, negedge init_n) begin + if(!init_n) begin + reset <= 5'h1f; + init <= 1'b1; + end else begin + if((t == STATE_LAST) && (reset != 0)) reset <= reset - 5'd1; + init <= !(reset == 0); + end +end + +// --------------------------------------------------------------------- +// ------------------ generate ram control signals --------------------- +// --------------------------------------------------------------------- + +// all possible commands +localparam CMD_INHIBIT = 4'b1111; +localparam CMD_NOP = 4'b0111; +localparam CMD_ACTIVE = 4'b0011; +localparam CMD_READ = 4'b0101; +localparam CMD_WRITE = 4'b0100; +localparam CMD_BURST_TERMINATE = 4'b0110; +localparam CMD_PRECHARGE = 4'b0010; +localparam CMD_AUTO_REFRESH = 4'b0001; +localparam CMD_LOAD_MODE = 4'b0000; + +reg [3:0] sd_cmd; // current command sent to sd ram +reg [15:0] sd_din; +// drive control signals according to current command +assign SDRAM_nCS = sd_cmd[3]; +assign SDRAM_nRAS = sd_cmd[2]; +assign SDRAM_nCAS = sd_cmd[1]; +assign SDRAM_nWE = sd_cmd[0]; + +reg [24:1] addr_latch[2]; +reg [24:1] addr_latch_next[2]; +reg [15:1] addr_last[2]; +reg [15:1] addr_last2[2]; +reg [15:0] din_latch[2]; +reg [1:0] oe_latch; +reg [1:0] we_latch; +reg [1:0] ds[2]; + +localparam PORT_NONE = 2'd0; +localparam PORT_CPU1 = 2'd1; +localparam PORT_REQ = 2'd2; + +localparam PORT_SND = 2'd1; + +reg [2:0] next_port[2]; +reg [2:0] port[2]; + +reg refresh; +reg [10:0] refresh_cnt; +wire need_refresh = (refresh_cnt >= RFRSH_CYCLES); + +// PORT1: bank 0,1 +always @(*) begin + if (refresh) begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end else if (port1_req ^ port1_ack) begin + next_port[0] = PORT_REQ; + addr_latch_next[0] = { 1'b0, port1_a }; + end else if (cpu1_addr != addr_last[PORT_CPU1]) begin + next_port[0] = PORT_CPU1; + addr_latch_next[0] = { 9'd0, cpu1_addr }; + end else begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end +end + +// PORT2: bank 2,3 +always @(*) begin + if (port2_req ^ port2_ack) begin + next_port[1] = PORT_REQ; + addr_latch_next[1] = { 1'b1, port2_a }; + end else if (snd_addr != addr_last2[PORT_SND]) begin + next_port[1] = PORT_SND; + addr_latch_next[1] = { 1'b1, 8'd0, snd_addr }; + end else begin + next_port[1] = PORT_NONE; + addr_latch_next[1] = addr_latch[1]; + end +end + +always @(posedge clk) begin + + // permanently latch ram data to reduce delays + sd_din <= SDRAM_DQ; + SDRAM_DQ <= 16'bZZZZZZZZZZZZZZZZ; + { SDRAM_DQMH, SDRAM_DQML } <= 2'b11; + sd_cmd <= CMD_NOP; // default: idle + refresh_cnt <= refresh_cnt + 1'd1; + + if(init) begin + // initialization takes place at the end of the reset phase + if(t == STATE_RAS0) begin + + if(reset == 15) begin + sd_cmd <= CMD_PRECHARGE; + SDRAM_A[10] <= 1'b1; // precharge all banks + end + + if(reset == 10 || reset == 8) begin + sd_cmd <= CMD_AUTO_REFRESH; + end + + if(reset == 2) begin + sd_cmd <= CMD_LOAD_MODE; + SDRAM_A <= MODE; + SDRAM_BA <= 2'b00; + end + end + end else begin + // RAS phase + // bank 0,1 + if(t == STATE_RAS0) begin + addr_latch[0] <= addr_latch_next[0]; + port[0] <= next_port[0]; + { oe_latch[0], we_latch[0] } <= 2'b00; + + if (next_port[0] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[0][22:10]; + SDRAM_BA <= addr_latch_next[0][24:23]; + addr_last[next_port[0]] <= addr_latch_next[0][15:1]; + if (next_port[0] == PORT_REQ) begin + { oe_latch[0], we_latch[0] } <= { ~port1_we, port1_we }; + ds[0] <= port1_ds; + din_latch[0] <= port1_d; + end else begin + { oe_latch[0], we_latch[0] } <= 2'b10; + ds[0] <= 2'b11; + end + end + end + + // bank 2,3 + if(t == STATE_RAS1) begin + refresh <= 1'b0; + addr_latch[1] <= addr_latch_next[1]; + { oe_latch[1], we_latch[1] } <= 2'b00; + port[1] <= next_port[1]; + + if (next_port[1] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[1][22:10]; + SDRAM_BA <= addr_latch_next[1][24:23]; + addr_last2[next_port[1]] <= addr_latch_next[1][15:1]; + if (next_port[1] == PORT_REQ) begin + { oe_latch[1], we_latch[1] } <= { ~port2_we, port2_we }; + ds[1] <= port2_ds; + din_latch[1] <= port2_d; + end else begin + { oe_latch[1], we_latch[1] } <= 2'b10; + ds[1] <= 2'b11; + end + end + + if (next_port[1] == PORT_NONE && need_refresh && !we_latch[0] && !oe_latch[0]) begin + refresh <= 1'b1; + refresh_cnt <= 0; + sd_cmd <= CMD_AUTO_REFRESH; + end + end + + // CAS phase + if(t == STATE_CAS0 && (we_latch[0] || oe_latch[0])) begin + sd_cmd <= we_latch[0]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[0]; + if (we_latch[0]) begin + SDRAM_DQ <= din_latch[0]; + port1_ack <= port1_req; + end + SDRAM_A <= { 4'b0010, addr_latch[0][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[0][24:23]; + end + + if(t == STATE_CAS1 && (we_latch[1] || oe_latch[1])) begin + sd_cmd <= we_latch[1]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + if (we_latch[1]) begin + SDRAM_DQ <= din_latch[1]; + port2_ack <= port2_req; + end + SDRAM_A <= { 4'b0010, addr_latch[1][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[1][24:23]; + end + + // Data returned + if(t == STATE_READ0 && oe_latch[0]) begin + case(port[0]) + PORT_REQ: begin port1_q <= sd_din; port1_ack <= port1_req; end + PORT_CPU1: begin cpu1_q <= sd_din; end + default: ; + endcase; + end + if(t == STATE_READ1 && oe_latch[1]) begin + case(port[1]) + PORT_REQ: begin port2_q <= sd_din; port2_ack <= port2_req; end + PORT_SND: begin snd_q <= sd_din; end + default: ; + endcase; + end + end +end + +endmodule