1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-04-07 05:27:16 +00:00
This commit is contained in:
Marcel
2023-01-23 13:33:08 +01:00
parent d7b1cfb4ec
commit b9c3decb6b
11 changed files with 279 additions and 2548 deletions

View File

@@ -1,6 +1,6 @@
---------------------------------------------------------------------------------
--
-- Arcade: Burger Time for MiST by Gehstock
-- Arcade: Treasure Island for MiST
-- 18 December 2017
--
---------------------------------------------------------------------------------

View File

@@ -1,32 +0,0 @@
void btime_state::btime_map(address_map &map)
{
map(0x0000, 0x07ff).ram().share("rambase");
map(0x0c00, 0x0c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
map(0x1000, 0x13ff).ram().share("videoram");
map(0x1400, 0x17ff).ram().share("colorram");
map(0x1800, 0x1bff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w));
map(0x1c00, 0x1fff).rw(FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w));
map(0x4000, 0x4000).portr("P1").nopw();
map(0x4001, 0x4001).portr("P2");
map(0x4002, 0x4002).portr("SYSTEM").w(FUNC(btime_state::btime_video_control_w));
map(0x4003, 0x4003).portr("DSW1").w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x4004, 0x4004).portr("DSW2").w(FUNC(btime_state::bnj_scroll1_w));
map(0xb000, 0xffff).rom();
}
void btime_state::tisland_map(address_map &map)
{
map(0x0000, 0x07ff).ram().share("rambase");
map(0x0c00, 0x0c0f).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
map(0x1000, 0x13ff).ram().share("videoram");
map(0x1400, 0x17ff).ram().share("colorram");
map(0x1800, 0x1bff).rw(FUNC(btime_state::btime_mirrorvideoram_r), FUNC(btime_state::btime_mirrorvideoram_w));
map(0x1c00, 0x1fff).rw(FUNC(btime_state::btime_mirrorcolorram_r), FUNC(btime_state::btime_mirrorcolorram_w));
map(0x4000, 0x4000).portr("P1").nopw();
map(0x4001, 0x4001).portr("P2");
map(0x4002, 0x4002).portr("SYSTEM").w(FUNC(btime_state::btime_video_control_w));
map(0x4003, 0x4003).portr("DSW1").w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x4004, 0x4004).portr("DSW2").w(FUNC(btime_state::bnj_scroll1_w));
map(0x4005, 0x4005).w(FUNC(btime_state::bnj_scroll2_w));
map(0x9000, 0xffff).rom();
}

View File

@@ -18,7 +18,7 @@
#
# Quartus II 64-Bit
# Version 13.1.4 Build 182 03/12/2014 SJ Full Version
# Date created = 09:56:31 May 18, 2021
# Date created = 13:12:40 January 23, 2023
#
# -------------------------------------------------------------------------- #
#
@@ -47,10 +47,9 @@ set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl"
set_global_assignment -name SYSTEMVERILOG_FILE rtl/Treasure_Island.sv
set_global_assignment -name VHDL_FILE rtl/Treasure_Island_Top.vhd
set_global_assignment -name VHDL_FILE rtl/Treasure_Island_Sound.vhd
set_global_assignment -name VERILOG_FILE rtl/keyboard.v
set_global_assignment -name VHDL_FILE rtl/gen_ram.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/prog.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/sound_prog.vhd
set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv
set_global_assignment -name VERILOG_FILE rtl/pll.v
set_global_assignment -name VHDL_FILE rtl/Roms/bg_map.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/fg_sp_graphx_1.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/fg_sp_graphx_2.vhd
@@ -58,11 +57,10 @@ set_global_assignment -name VHDL_FILE rtl/Roms/fg_sp_graphx_3.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/bg_graphx_1.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/bg_graphx_2.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/bg_graphx_3.vhd
set_global_assignment -name QIP_FILE ../../../Mist_FPGA/common/CPU/T65/T65.qip
set_global_assignment -name QIP_FILE ../../../Mist_FPGA/common/mist/mist.qip
set_global_assignment -name VHDL_FILE ../../../Mist_FPGA/common/Sound/ym2149/YM2149.vhd
set_global_assignment -name VHDL_FILE ../../../Mist_FPGA/common/Sound/ym2149/vol_table_array.vhd
set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv
set_global_assignment -name VHDL_FILE ../../../common/Sound/ym2149/YM2149.vhd
set_global_assignment -name VHDL_FILE ../../../common/Sound/ym2149/vol_table_array.vhd
set_global_assignment -name QIP_FILE ../../../common/CPU/T65/T65.qip
set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip
# Pin & Location Assignments
# ==========================
@@ -205,6 +203,4 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -
# end ENTITY(Treasure_Island)
# ---------------------------
set_global_assignment -name TEXT_FILE Text1.txt
set_global_assignment -name VERILOG_FILE rtl/pll.v
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

View File

@@ -4,13 +4,13 @@ use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity fg_sp_graphx_2 is
port (
clk : in std_logic;
addr : in std_logic_vector(11 downto 0);
addr : in std_logic_vector(12 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of fg_sp_graphx_2 is
type rom is array(0 to 4095) of std_logic_vector(7 downto 0);
type rom is array(0 to 8191) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"10",X"10",X"1C",X"1E",X"7E",X"7E",X"1F",X"7F",X"FE",X"FE",X"FE",X"FC",X"D0",X"10",X"00",
X"00",X"00",X"06",X"1E",X"9E",X"9E",X"9E",X"1E",X"1E",X"0E",X"5E",X"5E",X"5E",X"06",X"00",X"00",
@@ -267,7 +267,263 @@ architecture prom of fg_sp_graphx_2 is
X"00",X"00",X"00",X"00",X"E0",X"FC",X"FE",X"10",X"10",X"FE",X"FC",X"E0",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"07",X"3F",X"FF",X"00",X"00",X"FF",X"3F",X"07",X"00",X"00",X"00",X"00",
X"00",X"00",X"E0",X"F8",X"BC",X"02",X"04",X"10",X"10",X"06",X"FE",X"FC",X"E0",X"00",X"00",X"00",
X"00",X"00",X"3F",X"7F",X"CF",X"07",X"00",X"00",X"00",X"00",X"FF",X"7F",X"1F",X"00",X"00",X"00");
X"00",X"00",X"3F",X"7F",X"CF",X"07",X"00",X"00",X"00",X"00",X"FF",X"7F",X"1F",X"00",X"00",X"00",
X"00",X"60",X"7C",X"BE",X"A0",X"00",X"04",X"10",X"10",X"04",X"02",X"BE",X"FC",X"E0",X"00",X"00",
X"00",X"3F",X"FF",X"07",X"0F",X"07",X"00",X"00",X"00",X"00",X"07",X"CF",X"7F",X"3F",X"00",X"00",
X"00",X"00",X"F8",X"F8",X"C4",X"1E",X"3C",X"F8",X"F0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"80",X"E0",X"F0",X"F8",X"3C",X"1E",X"C4",X"F8",X"F8",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"7F",X"4F",X"63",X"38",X"3C",X"1F",X"0F",X"07",X"01",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"E0",X"C0",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"1F",X"13",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"7E",X"FE",X"F1",X"C7",X"0E",X"38",X"C0",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"03",X"07",X"0F",X"0E",X"18",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"E0",X"F0",X"F8",X"38",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"7F",X"4F",X"63",X"38",X"3C",X"1F",X"00",
X"00",X"00",X"00",X"00",X"F0",X"F0",X"88",X"3C",X"78",X"F0",X"E0",X"C0",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"03",X"0F",X"1F",X"3E",X"78",X"71",X"C7",X"9F",X"FF",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"FF",X"F9",X"C7",X"3E",X"FE",X"FC",X"F8",X"C0",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"07",X"1F",X"3C",X"70",X"1F",X"1F",X"0F",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"C0",X"F8",X"FC",X"FE",X"7E",X"0F",X"03",X"E0",X"F8",X"FE",X"00",X"00",X"00",
X"00",X"00",X"00",X"0F",X"0F",X"1F",X"03",X"7A",X"38",X"3E",X"1F",X"07",X"01",X"00",X"00",X"00",
X"40",X"C0",X"C0",X"80",X"0C",X"3C",X"38",X"C0",X"E0",X"C0",X"00",X"80",X"A0",X"70",X"F0",X"78",
X"00",X"00",X"03",X"05",X"10",X"36",X"78",X"71",X"C7",X"99",X"FC",X"0F",X"07",X"02",X"00",X"00",
X"C0",X"A0",X"00",X"04",X"08",X"40",X"F0",X"80",X"40",X"30",X"00",X"00",X"C0",X"88",X"20",X"10",
X"00",X"91",X"25",X"49",X"28",X"60",X"70",X"C2",X"0B",X"B1",X"B0",X"5C",X"0C",X"02",X"40",X"00",
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"20",X"00",X"00",X"00",
X"00",X"01",X"10",X"40",X"20",X"80",X"80",X"48",X"10",X"45",X"00",X"00",X"40",X"28",X"0C",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"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"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"02",X"00",X"00",X"80",X"80",X"00",X"00",X"82",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"0C",X"98",X"B6",X"10",X"10",X"56",X"58",X"0C",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"02",X"00",X"80",X"80",X"00",X"00",X"80",X"80",X"00",X"02",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"0C",X"58",X"56",X"10",X"10",X"B6",X"98",X"0C",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"04",X"06",X"00",X"00",X"00",X"00",X"00",X"04",X"06",X"00",X"00",X"00",X"00",
X"00",X"00",X"06",X"07",X"0D",X"98",X"B0",X"10",X"10",X"50",X"58",X"0D",X"07",X"06",X"00",X"00",
X"00",X"00",X"00",X"00",X"02",X"06",X"00",X"00",X"00",X"00",X"06",X"02",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"07",X"0D",X"58",X"50",X"10",X"10",X"B0",X"98",X"0D",X"07",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"90",X"08",X"4A",X"29",X"08",X"2C",X"49",X"D0",X"00",X"00",X"00",X"00",
X"00",X"00",X"10",X"20",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"01",X"10",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"D0",X"49",X"2C",X"08",X"29",X"4A",X"08",X"90",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"10",X"01",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"20",X"10",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"18",X"B1",X"AD",X"20",X"20",X"AD",X"B1",X"18",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"80",X"80",X"00",X"00",X"80",X"80",X"00",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"58",X"56",X"10",X"10",X"B6",X"98",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"40",X"40",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"08",X"08",X"2B",X"2C",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"80",X"20",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"2D",X"26",X"03",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"C0",X"40",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"01",X"03",X"16",X"14",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"84",X"86",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"03",X"03",X"06",X"4C",X"58",X"08",X"08",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"06",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"07",X"0D",X"58",X"50",X"10",X"10",X"B0",X"98",X"00",
X"00",X"00",X"00",X"00",X"00",X"08",X"0C",X"00",X"00",X"00",X"00",X"00",X"08",X"08",X"00",X"00",
X"00",X"00",X"00",X"00",X"0C",X"0E",X"1A",X"B0",X"A0",X"20",X"20",X"20",X"50",X"5A",X"0E",X"00",
X"00",X"00",X"00",X"00",X"00",X"44",X"CC",X"8C",X"18",X"08",X"00",X"40",X"C0",X"C0",X"00",X"00",
X"00",X"00",X"02",X"30",X"60",X"62",X"C5",X"E0",X"CA",X"F8",X"F8",X"7C",X"7C",X"3C",X"0E",X"00",
X"00",X"00",X"48",X"80",X"10",X"02",X"00",X"00",X"00",X"80",X"20",X"30",X"00",X"02",X"00",X"00",
X"00",X"00",X"10",X"08",X"00",X"5D",X"08",X"50",X"A0",X"C8",X"B0",X"2A",X"28",X"30",X"00",X"0C",
X"00",X"00",X"00",X"00",X"04",X"0C",X"00",X"00",X"00",X"00",X"0C",X"04",X"00",X"00",X"00",X"00",
X"10",X"00",X"00",X"8E",X"5A",X"78",X"A0",X"30",X"20",X"A0",X"B0",X"9A",X"0E",X"10",X"00",X"00",
X"00",X"38",X"18",X"10",X"80",X"C4",X"CC",X"8C",X"18",X"18",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"00",X"C0",X"C0",X"C0",X"00",X"18",X"18",X"8C",X"CC",X"C4",X"80",X"10",X"18",X"38",X"00",
X"00",X"0F",X"3D",X"7C",X"7C",X"F8",X"F8",X"C8",X"E0",X"F3",X"71",X"40",X"20",X"02",X"07",X"03",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F0",X"D8",X"CC",X"CC",X"80",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"03",X"07",X"07",X"0F",X"0F",X"00",
X"00",X"00",X"00",X"00",X"00",X"C0",X"CE",X"86",X"04",X"20",X"71",X"F3",X"22",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"00",X"08",X"10",X"1C",X"3C",X"38",X"32",X"3E",X"00",
X"00",X"00",X"00",X"00",X"00",X"80",X"E0",X"60",X"60",X"00",X"0C",X"0C",X"46",X"E0",X"E0",X"00",
X"00",X"00",X"00",X"00",X"00",X"07",X"1E",X"3E",X"3E",X"7C",X"7C",X"64",X"70",X"79",X"38",X"00",
X"00",X"00",X"00",X"38",X"18",X"10",X"80",X"C4",X"CC",X"8C",X"18",X"18",X"00",X"C0",X"C0",X"00",
X"00",X"00",X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"00",
X"00",X"00",X"C0",X"40",X"10",X"38",X"1E",X"1F",X"1F",X"3F",X"7D",X"7D",X"3A",X"BE",X"1C",X"10",
X"00",X"00",X"04",X"1C",X"18",X"02",X"03",X"03",X"19",X"18",X"1C",X"08",X"03",X"03",X"00",X"00",
X"10",X"1C",X"BE",X"3A",X"7D",X"7D",X"3F",X"1F",X"1F",X"1E",X"38",X"10",X"40",X"C0",X"00",X"00",
X"00",X"00",X"03",X"03",X"08",X"1C",X"18",X"19",X"03",X"03",X"02",X"18",X"1C",X"04",X"00",X"00",
X"00",X"00",X"C0",X"C0",X"40",X"00",X"08",X"18",X"8C",X"CC",X"04",X"00",X"00",X"00",X"00",X"00",
X"00",X"06",X"0C",X"64",X"64",X"28",X"C8",X"C2",X"E3",X"C5",X"62",X"60",X"30",X"02",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"C0",X"60",X"60",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"20",X"66",X"24",X"22",X"40",X"40",X"90",X"9C",X"2C",X"40",X"10",X"C0",X"10",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"80",X"80",X"00",X"10",X"F0",X"80",X"80",X"00",X"00",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"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"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"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"C0",X"30",X"80",X"20",X"40",X"80",X"80",X"00",X"00",X"00",X"00",X"08",X"30",X"00",X"30",X"C0",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
X"C0",X"30",X"80",X"20",X"40",X"80",X"80",X"00",X"00",X"00",X"00",X"08",X"30",X"00",X"30",X"C0",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
X"C0",X"30",X"80",X"20",X"40",X"80",X"80",X"00",X"00",X"00",X"00",X"08",X"30",X"00",X"30",X"C0",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
X"C0",X"30",X"80",X"20",X"40",X"80",X"80",X"00",X"00",X"00",X"00",X"08",X"30",X"00",X"30",X"C0",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
X"C0",X"30",X"80",X"20",X"40",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"30",X"00",X"30",X"C0",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
X"C0",X"20",X"80",X"20",X"40",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"20",X"00",X"20",X"C0",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
X"C0",X"00",X"80",X"00",X"40",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
X"80",X"00",X"80",X"00",X"00",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",
X"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
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"07",X"1E",X"30",X"37",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6D",X"34",X"33",X"10",X"0E",X"07",
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"06",X"1E",X"30",X"36",X"66",X"7C",X"6C",X"68",X"62",X"6A",X"6C",X"34",X"32",X"10",X"0E",X"06",
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"04",X"1C",X"30",X"34",X"64",X"7C",X"6C",X"68",X"60",X"68",X"6C",X"34",X"30",X"10",X"0C",X"04",
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"18",X"30",X"30",X"60",X"78",X"68",X"68",X"60",X"68",X"68",X"30",X"30",X"10",X"08",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"10",X"30",X"30",X"60",X"70",X"60",X"60",X"60",X"60",X"60",X"30",X"30",X"10",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"20",X"20",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"20",X"20",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"40",X"40",X"40",X"40",X"40",X"40",X"40",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"64",X"67",X"04",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"64",X"66",X"04",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"64",X"64",X"04",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"60",X"60",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"60",X"60",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"60",X"60",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"40",X"40",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"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"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"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"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"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"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"F8",X"F8",X"C4",X"1E",X"3C",X"F8",X"F0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"F8",X"F8",X"C4",X"1E",X"3C",X"F8",X"F0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"F8",X"F8",X"C4",X"1C",X"3C",X"F8",X"F0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"F8",X"F8",X"C0",X"18",X"38",X"F8",X"F0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"F0",X"F0",X"C0",X"10",X"30",X"F0",X"F0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"E0",X"E0",X"C0",X"00",X"20",X"E0",X"E0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"C0",X"C0",X"C0",X"00",X"00",X"C0",X"C0",X"C0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"80",X"80",X"80",X"00",X"00",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",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"01",X"07",X"0F",X"1F",X"3C",X"38",X"63",X"4F",X"7F",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"06",X"0E",X"1E",X"3C",X"38",X"62",X"4E",X"7E",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"04",X"0C",X"1C",X"3C",X"38",X"60",X"4C",X"7C",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"08",X"18",X"38",X"38",X"60",X"48",X"78",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"10",X"30",X"30",X"60",X"40",X"70",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"20",X"20",X"60",X"40",X"60",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"40",X"40",X"40",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"38",X"18",X"10",X"80",X"C4",X"CC",X"8C",X"18",X"18",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"38",X"18",X"10",X"80",X"C4",X"CC",X"8C",X"18",X"18",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"38",X"18",X"10",X"80",X"C4",X"CC",X"8C",X"18",X"18",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"38",X"18",X"10",X"80",X"C0",X"C8",X"88",X"18",X"18",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"30",X"10",X"10",X"80",X"C0",X"C0",X"80",X"10",X"10",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"20",X"00",X"00",X"80",X"C0",X"C0",X"80",X"00",X"00",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"00",X"00",X"00",X"80",X"C0",X"C0",X"80",X"00",X"00",X"00",X"C0",X"C0",X"C0",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",X"00",
X"00",X"00",X"00",X"00",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"80",X"80",X"80",X"00",X"00",
X"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",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"03",X"07",X"02",X"20",X"40",X"71",X"F3",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3D",X"0F",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"02",X"06",X"02",X"20",X"40",X"70",X"F2",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3C",X"0E",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"04",X"00",X"20",X"40",X"70",X"F0",X"E0",X"C8",X"F8",X"F8",X"7C",X"7C",X"3C",X"0C",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"20",X"40",X"70",X"F0",X"E0",X"C8",X"F8",X"F8",X"78",X"78",X"38",X"08",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"20",X"40",X"70",X"F0",X"E0",X"C0",X"F0",X"F0",X"70",X"70",X"30",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"20",X"40",X"60",X"E0",X"E0",X"C0",X"E0",X"E0",X"60",X"60",X"20",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"40",X"40",X"C0",X"C0",X"C0",X"C0",X"C0",X"40",X"40",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"80",X"80",X"80",X"80",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"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"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"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"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"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"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"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"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"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"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"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");
begin
process(clk)
begin

View File

@@ -1,60 +0,0 @@
make_vhdl_prom t-0a.j11 sound_prog.vhd
make_vhdl_prom t-03.b5 bg_map.vhd
copy /b t-04.b7 + t-04.b7 + t-04.b7 + t-07.b11 + t-05.b9 + t-08.b13 + t-06.b10 + t-09.b14 rom.ROM
make_vhdl_prom rom.ROM prog.vhd
copy /b dummy4k + t-04.b7 + t-04.b7 + t-07.b11 + t-05.b9 + t-08.b13 + t-06.b10 + t-09.b14 prgrom
make_vhdl_prom prgrom prog.vhd
copy /B t-11.k11 + t-12.k13 fg_sp_graphx_1.bin
make_vhdl_prom fg_sp_graphx_1.bin fg_sp_graphx_1.vhd
copy /B t-0e.k6 + t-0f.k8 fg_sp_graphx_2.bin
make_vhdl_prom fg_sp_graphx_2.bin fg_sp_graphx_2.vhd
copy /B t-0b.k2 + t-0c.k4 fg_sp_graphx_3.bin
make_vhdl_prom fg_sp_graphx_3.bin fg_sp_graphx_3.vhd
make_vhdl_prom t-00.b1 bg_graphx_1.vhd
make_vhdl_prom t-01.b2 bg_graphx_2.vhd
make_vhdl_prom t-02.b4 bg_graphx_3.vhd
copy /b rom.ROM + t-0a.j11 TREASURE.ROM
pause
ROM_START( tisland )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "t-04.b7", 0xa000, 0x1000, CRC(641af7f9) SHA1(50cd8f2372725356bb5a66024084363f5c5a870d) )
ROM_RELOAD( 0x9000, 0x1000 )
ROM_LOAD( "t-07.b11", 0xb000, 0x1000, CRC(6af00c8b) SHA1(e3948ca36642d3c2a1f94b017893d6e2fe178bb0) )
ROM_LOAD( "t-05.b9", 0xc000, 0x1000, CRC(95b1a1d3) SHA1(5636580f26e839d1140838c7efc1cabc2cf06f6f) )
ROM_LOAD( "t-08.b13", 0xd000, 0x1000, CRC(b7bbc008) SHA1(751491eac90f46985c83a6c06088638bcd0c0f20) )
ROM_LOAD( "t-06.b10", 0xe000, 0x1000, CRC(5a6783cf) SHA1(f518290efec0fedb92432b4e3448aea2438b8448) )
ROM_LOAD( "t-09.b14", 0xf000, 0x1000, CRC(5b26771a) SHA1(31d86acba4b6549fc08a3947d6d6d1a470fcb9da) )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "t-0a.j11", 0xe000, 0x1000, CRC(807e1652) SHA1(ccfee616dc0e34d10a0e62b9864fd987291bf176) )
ROM_REGION( 0x3000, "gfx1", 0 )
ROM_LOAD( "t-13.k14", 0x0000, 0x1000, CRC(95bdec2f) SHA1(201b9c53ea53a25535b619231d0d14e08c206ecf) )
ROM_LOAD( "t-10.k10", 0x1000, 0x1000, CRC(3ba416cb) SHA1(90c968f963ba6f52f979f28f62eaccc0e2911508) )
ROM_LOAD( "t-0d.k5", 0x2000, 0x1000, CRC(3d3e40b2) SHA1(90576c82500ce8eddbf4dd02e59ec4ccc3b13000) ) /* 8x8 tiles */
ROM_REGION( 0x1800, "gfx2", 0 ) /* bg tiles */
// also contains the (incomplete) bg tilemap data for 1 tilemap (0x400-0x7ff of every rom is same as bg_map region, leftover?) */
ROM_LOAD( "t-00.b1", 0x0000, 0x0800, CRC(05eaf899) SHA1(b03a1b7d985b4d841d6bbb213a32a33e324dff89) ) /* charset #2 */
ROM_LOAD( "t-01.b2", 0x0800, 0x0800, CRC(f692e9e0) SHA1(e07ef20de8e9387f1096412d42d14ed5e52bbbd9) )
ROM_LOAD( "t-02.b4", 0x1000, 0x0800, CRC(88396cae) SHA1(47233d91e9c7b14091a0050524fa49e1bc69311d) )
ROM_REGION( 0x6000, "gfx3", 0 )
ROM_LOAD( "t-11.k11", 0x0000, 0x1000, CRC(779cc47c) SHA1(8921b81d460232252fd5a3c9bb2ad0befc1421da) ) /* 16x16 tiles*/
ROM_LOAD( "t-12.k13", 0x1000, 0x1000, CRC(c804a8aa) SHA1(f8ce1da88443416b6cd276741a600104d36c3725) )
ROM_LOAD( "t-0e.k6", 0x2000, 0x1000, CRC(63aa2b22) SHA1(765c405b1948191f5bdf1d8c1e7f20acb0894195) )
ROM_LOAD( "t-0f.k8", 0x3000, 0x1000, CRC(3eeca392) SHA1(78deceea3628aed0a57cb4208d260a91a304695a) )
ROM_LOAD( "t-0b.k2", 0x4000, 0x1000, CRC(ec416f20) SHA1(20852ef9753b103c5ec03d5eede778c0e25fc059) )
ROM_LOAD( "t-0c.k4", 0x5000, 0x1000, CRC(428513a7) SHA1(aab97ee938dc743a2941f71f827c22b9dde8aef0) )
ROM_REGION( 0x1000, "bg_map", 0 ) /* bg tilemap data */
ROM_LOAD( "t-03.b5", 0x0000, 0x1000, CRC(68df6d50) SHA1(461acc39089faac36bf8a8d279fbb6c046ae0264) )
ROM_END

View File

@@ -1,278 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity sound_prog is
port (
clk : in std_logic;
addr : in std_logic_vector(11 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of sound_prog is
type rom is array(0 to 4095) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"48",X"8A",X"48",X"98",X"48",X"AD",X"00",X"A0",X"48",X"F0",X"66",X"29",X"C0",X"D0",X"28",X"68",
X"29",X"1F",X"F0",X"52",X"C5",X"13",X"90",X"4E",X"85",X"13",X"A8",X"0A",X"AA",X"B9",X"7C",X"F2",
X"85",X"03",X"BD",X"F1",X"F2",X"85",X"05",X"E8",X"BD",X"F1",X"F2",X"85",X"06",X"A9",X"00",X"85",
X"01",X"A2",X"FF",X"9A",X"4C",X"A6",X"F0",X"68",X"30",X"32",X"29",X"0F",X"85",X"14",X"AA",X"BD",
X"8D",X"F2",X"85",X"04",X"BD",X"95",X"F2",X"85",X"15",X"A9",X"00",X"85",X"02",X"85",X"0E",X"85",
X"1C",X"85",X"1A",X"A5",X"14",X"C9",X"01",X"F0",X"09",X"38",X"E9",X"06",X"B0",X"04",X"A9",X"01",
X"85",X"1C",X"A9",X"01",X"85",X"19",X"68",X"A8",X"68",X"AA",X"68",X"40",X"E6",X"1B",X"4C",X"66",
X"F0",X"78",X"D8",X"A2",X"FF",X"9A",X"A2",X"40",X"A9",X"00",X"95",X"01",X"CA",X"10",X"FB",X"A2",
X"0B",X"A0",X"00",X"B9",X"9D",X"F2",X"8D",X"00",X"40",X"8D",X"00",X"80",X"C8",X"B9",X"9D",X"F2",
X"8D",X"00",X"20",X"8D",X"00",X"60",X"C8",X"CA",X"10",X"E9",X"AD",X"00",X"A0",X"A9",X"FF",X"8D",
X"00",X"C0",X"58",X"4C",X"A3",X"F0",X"A9",X"07",X"8D",X"00",X"40",X"A5",X"03",X"8D",X"00",X"20",
X"A4",X"01",X"B1",X"05",X"C9",X"80",X"F0",X"1F",X"85",X"0B",X"C8",X"B1",X"05",X"85",X"0C",X"C8",
X"B1",X"05",X"85",X"0D",X"A5",X"0B",X"8D",X"00",X"40",X"A5",X"0C",X"8D",X"00",X"20",X"C8",X"84",
X"01",X"20",X"72",X"F2",X"4C",X"B0",X"F0",X"A2",X"00",X"86",X"13",X"BD",X"B5",X"F2",X"8D",X"00",
X"40",X"E8",X"BD",X"B5",X"F2",X"8D",X"00",X"20",X"E8",X"E0",X"08",X"D0",X"EE",X"4C",X"A2",X"F0",
X"48",X"8A",X"48",X"98",X"48",X"A5",X"1B",X"F0",X"06",X"20",X"54",X"F2",X"4C",X"41",X"F1",X"A5",
X"19",X"F0",X"3E",X"A5",X"1C",X"D0",X"40",X"A5",X"1A",X"D0",X"31",X"E6",X"1A",X"A2",X"00",X"A4",
X"15",X"B9",X"13",X"F3",X"95",X"07",X"C8",X"E8",X"E0",X"04",X"D0",X"F5",X"A9",X"07",X"8D",X"00",
X"80",X"A5",X"04",X"8D",X"00",X"60",X"A0",X"00",X"A9",X"09",X"8D",X"00",X"80",X"B1",X"07",X"8D",
X"00",X"60",X"A9",X"0A",X"8D",X"00",X"80",X"B1",X"09",X"8D",X"00",X"60",X"20",X"7A",X"F1",X"C6",
X"0E",X"68",X"A8",X"68",X"AA",X"68",X"40",X"A5",X"1A",X"D0",X"27",X"E6",X"1A",X"A6",X"15",X"BD",
X"13",X"F3",X"85",X"07",X"E8",X"BD",X"13",X"F3",X"85",X"08",X"A9",X"07",X"8D",X"00",X"80",X"A5",
X"04",X"8D",X"00",X"60",X"A0",X"00",X"A9",X"08",X"8D",X"00",X"80",X"B1",X"07",X"85",X"17",X"8D",
X"00",X"60",X"20",X"D0",X"F1",X"C6",X"0E",X"4C",X"41",X"F1",X"A4",X"02",X"A5",X"0E",X"D0",X"46",
X"A6",X"14",X"BD",X"DB",X"F2",X"85",X"0E",X"C8",X"A9",X"03",X"8D",X"00",X"80",X"B1",X"07",X"C9",
X"80",X"F0",X"39",X"C9",X"81",X"F0",X"30",X"48",X"4A",X"4A",X"4A",X"4A",X"8D",X"00",X"60",X"A9",
X"02",X"8D",X"00",X"80",X"68",X"29",X"0F",X"AA",X"BD",X"BD",X"F2",X"8D",X"00",X"60",X"A9",X"00",
X"8D",X"00",X"80",X"B1",X"09",X"85",X"10",X"8D",X"00",X"60",X"A9",X"04",X"8D",X"00",X"80",X"A5",
X"10",X"8D",X"00",X"60",X"84",X"02",X"60",X"A9",X"00",X"85",X"02",X"60",X"20",X"54",X"F2",X"60",
X"A4",X"02",X"A5",X"0E",X"D0",X"40",X"A6",X"14",X"BD",X"DB",X"F2",X"85",X"0E",X"A5",X"02",X"29",
X"03",X"D0",X"3D",X"A9",X"08",X"8D",X"00",X"80",X"A5",X"17",X"8D",X"00",X"60",X"C8",X"A9",X"01",
X"8D",X"00",X"80",X"B1",X"07",X"C9",X"80",X"F0",X"23",X"C9",X"81",X"F0",X"1A",X"48",X"4A",X"4A",
X"4A",X"4A",X"8D",X"00",X"60",X"A9",X"00",X"8D",X"00",X"80",X"68",X"29",X"0F",X"AA",X"BD",X"BD",
X"F2",X"8D",X"00",X"60",X"84",X"02",X"60",X"A9",X"00",X"85",X"02",X"60",X"20",X"54",X"F2",X"60",
X"4A",X"B0",X"09",X"4A",X"B0",X"1A",X"4A",X"B0",X"21",X"4C",X"ED",X"F1",X"A5",X"17",X"38",X"E9",
X"01",X"85",X"18",X"A9",X"08",X"8D",X"00",X"80",X"A5",X"18",X"8D",X"00",X"60",X"4C",X"ED",X"F1",
X"A5",X"17",X"38",X"E9",X"02",X"85",X"18",X"4C",X"33",X"F2",X"A5",X"17",X"38",X"E9",X"04",X"85",
X"18",X"4C",X"33",X"F2",X"A2",X"00",X"BD",X"B5",X"F2",X"8D",X"00",X"80",X"E8",X"BD",X"B5",X"F2",
X"8D",X"00",X"60",X"E8",X"E0",X"08",X"D0",X"EE",X"A9",X"00",X"A2",X"04",X"95",X"19",X"CA",X"10",
X"FB",X"60",X"A2",X"80",X"CA",X"D0",X"FD",X"C6",X"0D",X"D0",X"F7",X"60",X"00",X"FE",X"FE",X"FE",
X"F7",X"FD",X"FD",X"FD",X"FD",X"FD",X"FD",X"FD",X"FC",X"F7",X"FD",X"FB",X"FB",X"00",X"F9",X"FE",
X"FE",X"FE",X"FE",X"F9",X"FF",X"00",X"02",X"06",X"08",X"0A",X"0C",X"0E",X"12",X"00",X"00",X"01",
X"00",X"02",X"00",X"03",X"00",X"04",X"00",X"05",X"00",X"07",X"FF",X"08",X"00",X"09",X"00",X"0A",
X"00",X"0E",X"00",X"0F",X"00",X"07",X"FF",X"08",X"00",X"09",X"00",X"0A",X"00",X"00",X"F5",X"BC",
X"86",X"BC",X"24",X"F7",X"CC",X"A4",X"7E",X"5A",X"38",X"18",X"FA",X"68",X"43",X"00",X"00",X"01",
X"00",X"02",X"00",X"03",X"00",X"04",X"00",X"05",X"00",X"07",X"FF",X"00",X"60",X"30",X"28",X"20",
X"18",X"40",X"00",X"00",X"00",X"01",X"00",X"02",X"00",X"03",X"00",X"04",X"00",X"05",X"00",X"07",
X"FF",X"00",X"00",X"33",X"F3",X"67",X"F3",X"86",X"F3",X"A5",X"F3",X"3C",X"F4",X"6D",X"F4",X"9E",
X"F4",X"CF",X"F4",X"00",X"F5",X"6A",X"F5",X"98",X"F5",X"CF",X"F5",X"F4",X"F5",X"61",X"F6",X"5B",
X"F7",X"98",X"F7",X"00",X"00",X"C3",X"F7",X"F9",X"F7",X"2E",X"F8",X"D0",X"F8",X"72",X"F9",X"14",
X"FA",X"B6",X"FA",X"38",X"FB",X"B9",X"FB",X"B9",X"FB",X"B9",X"FB",X"B9",X"FB",X"B9",X"FB",X"B9",
X"FB",X"B9",X"FB",X"01",X"00",X"01",X"08",X"0F",X"01",X"00",X"2C",X"10",X"00",X"3B",X"10",X"00",
X"2C",X"10",X"00",X"3B",X"10",X"00",X"2C",X"10",X"00",X"3B",X"10",X"00",X"37",X"10",X"00",X"3B",
X"10",X"00",X"37",X"10",X"00",X"3B",X"10",X"00",X"37",X"10",X"00",X"3B",X"10",X"00",X"2C",X"10",
X"00",X"3B",X"10",X"00",X"2C",X"10",X"80",X"01",X"00",X"01",X"08",X"0D",X"01",X"00",X"59",X"08",
X"00",X"4F",X"08",X"00",X"47",X"08",X"00",X"43",X"08",X"00",X"3B",X"08",X"00",X"35",X"08",X"00",
X"2F",X"08",X"00",X"2C",X"08",X"80",X"01",X"00",X"01",X"08",X"0D",X"01",X"00",X"2C",X"08",X"00",
X"2F",X"08",X"00",X"35",X"08",X"00",X"3B",X"08",X"00",X"43",X"08",X"00",X"47",X"08",X"00",X"4F",
X"08",X"00",X"59",X"08",X"80",X"06",X"09",X"08",X"08",X"0B",X"02",X"08",X"0C",X"02",X"08",X"0D",
X"02",X"08",X"0E",X"02",X"08",X"0F",X"02",X"08",X"0E",X"02",X"08",X"0D",X"02",X"08",X"0C",X"02",
X"08",X"0B",X"02",X"08",X"0A",X"02",X"08",X"0A",X"02",X"08",X"08",X"02",X"08",X"07",X"02",X"08",
X"06",X"02",X"08",X"05",X"02",X"08",X"06",X"02",X"08",X"07",X"02",X"08",X"08",X"02",X"08",X"09",
X"02",X"08",X"0A",X"02",X"08",X"0B",X"02",X"08",X"0C",X"02",X"08",X"0D",X"02",X"08",X"0E",X"02",
X"08",X"0F",X"02",X"06",X"0C",X"08",X"08",X"0E",X"02",X"06",X"0B",X"08",X"08",X"0D",X"02",X"06",
X"0A",X"08",X"08",X"0C",X"02",X"06",X"09",X"08",X"08",X"0B",X"02",X"06",X"08",X"08",X"08",X"0A",
X"02",X"06",X"07",X"08",X"08",X"09",X"02",X"06",X"06",X"08",X"08",X"08",X"02",X"06",X"05",X"08",
X"08",X"07",X"02",X"06",X"04",X"08",X"08",X"06",X"02",X"06",X"03",X"08",X"08",X"05",X"02",X"06",
X"02",X"08",X"08",X"04",X"02",X"06",X"08",X"08",X"08",X"03",X"02",X"80",X"09",X"10",X"01",X"0C",
X"08",X"01",X"0D",X"09",X"01",X"03",X"01",X"01",X"02",X"FA",X"20",X"02",X"F8",X"02",X"02",X"FA",
X"20",X"02",X"FC",X"02",X"02",X"FA",X"20",X"02",X"F8",X"02",X"02",X"FA",X"20",X"02",X"FC",X"02",
X"02",X"FF",X"02",X"02",X"FF",X"02",X"02",X"FF",X"02",X"02",X"FF",X"02",X"80",X"09",X"10",X"01",
X"0C",X"08",X"01",X"0D",X"09",X"01",X"03",X"01",X"01",X"02",X"92",X"20",X"02",X"90",X"02",X"02",
X"92",X"20",X"02",X"94",X"02",X"02",X"92",X"20",X"02",X"9C",X"02",X"02",X"92",X"20",X"02",X"9F",
X"02",X"02",X"98",X"02",X"02",X"9C",X"02",X"02",X"98",X"02",X"02",X"9C",X"02",X"80",X"09",X"10",
X"01",X"0C",X"08",X"01",X"0D",X"09",X"01",X"03",X"01",X"01",X"02",X"66",X"20",X"02",X"68",X"02",
X"02",X"66",X"20",X"02",X"6C",X"02",X"02",X"66",X"20",X"02",X"68",X"02",X"02",X"66",X"20",X"02",
X"6C",X"02",X"02",X"66",X"02",X"02",X"6F",X"02",X"02",X"66",X"02",X"02",X"6F",X"02",X"80",X"09",
X"10",X"01",X"0C",X"08",X"01",X"0D",X"09",X"01",X"03",X"00",X"01",X"02",X"FA",X"20",X"02",X"F8",
X"02",X"02",X"FA",X"20",X"02",X"FC",X"02",X"02",X"FA",X"20",X"02",X"F8",X"02",X"02",X"FA",X"20",
X"02",X"FC",X"02",X"02",X"FF",X"02",X"02",X"FF",X"02",X"02",X"FF",X"02",X"02",X"FF",X"02",X"80",
X"03",X"00",X"01",X"09",X"10",X"01",X"0C",X"08",X"01",X"0D",X"09",X"01",X"02",X"70",X"01",X"02",
X"6F",X"01",X"02",X"6E",X"01",X"02",X"6D",X"01",X"02",X"6C",X"01",X"02",X"6B",X"01",X"02",X"6A",
X"01",X"02",X"69",X"01",X"02",X"68",X"04",X"02",X"67",X"04",X"02",X"66",X"04",X"02",X"65",X"04",
X"02",X"64",X"04",X"02",X"63",X"08",X"02",X"62",X"08",X"02",X"61",X"08",X"02",X"60",X"08",X"02",
X"5F",X"08",X"02",X"5E",X"08",X"02",X"5D",X"08",X"02",X"5C",X"08",X"02",X"5B",X"08",X"02",X"5A",
X"08",X"02",X"59",X"08",X"02",X"58",X"08",X"02",X"57",X"08",X"02",X"56",X"08",X"02",X"55",X"08",
X"02",X"54",X"10",X"02",X"53",X"10",X"02",X"52",X"10",X"80",X"09",X"10",X"01",X"0C",X"08",X"01",
X"0D",X"09",X"01",X"03",X"0F",X"01",X"02",X"FF",X"08",X"03",X"00",X"01",X"02",X"F0",X"08",X"03",
X"0E",X"01",X"02",X"FF",X"08",X"03",X"00",X"01",X"02",X"A0",X"08",X"03",X"0D",X"01",X"02",X"FF",
X"08",X"03",X"00",X"01",X"02",X"60",X"20",X"80",X"03",X"00",X"01",X"09",X"10",X"01",X"0C",X"08",
X"01",X"0D",X"09",X"01",X"02",X"11",X"10",X"02",X"77",X"10",X"02",X"D5",X"10",X"02",X"49",X"10",
X"03",X"04",X"01",X"02",X"6A",X"10",X"03",X"01",X"01",X"02",X"49",X"10",X"02",X"D5",X"10",X"02",
X"77",X"10",X"02",X"19",X"10",X"02",X"00",X"10",X"03",X"00",X"01",X"02",X"EA",X"10",X"80",X"08",
X"10",X"01",X"09",X"10",X"01",X"0C",X"08",X"01",X"0D",X"09",X"01",X"01",X"03",X"01",X"00",X"F5",
X"10",X"03",X"01",X"01",X"02",X"FA",X"10",X"00",X"24",X"10",X"02",X"92",X"10",X"00",X"A4",X"10",
X"02",X"52",X"10",X"80",X"06",X"03",X"10",X"08",X"0F",X"02",X"08",X"0E",X"02",X"08",X"0D",X"02",
X"08",X"0C",X"02",X"08",X"0B",X"02",X"08",X"0A",X"02",X"08",X"09",X"02",X"08",X"07",X"02",X"08",
X"06",X"02",X"08",X"07",X"02",X"08",X"08",X"02",X"06",X"0A",X"10",X"08",X"09",X"02",X"08",X"0A",
X"10",X"08",X"0B",X"10",X"08",X"0C",X"02",X"08",X"0D",X"02",X"06",X"07",X"10",X"08",X"0C",X"02",
X"06",X"06",X"10",X"08",X"0B",X"02",X"06",X"05",X"10",X"08",X"0A",X"02",X"06",X"04",X"10",X"08",
X"09",X"02",X"06",X"03",X"10",X"08",X"08",X"02",X"06",X"02",X"10",X"08",X"07",X"02",X"06",X"01",
X"02",X"08",X"06",X"02",X"08",X"05",X"02",X"08",X"04",X"02",X"08",X"03",X"02",X"08",X"02",X"02",
X"80",X"09",X"10",X"01",X"03",X"00",X"01",X"0C",X"80",X"01",X"0D",X"09",X"01",X"02",X"3F",X"10",
X"02",X"3D",X"10",X"02",X"3B",X"10",X"02",X"39",X"10",X"02",X"37",X"10",X"02",X"35",X"10",X"02",
X"33",X"10",X"02",X"31",X"10",X"02",X"2F",X"10",X"02",X"2D",X"10",X"02",X"2B",X"10",X"02",X"29",
X"10",X"02",X"27",X"10",X"02",X"25",X"10",X"02",X"23",X"10",X"02",X"21",X"10",X"02",X"1F",X"10",
X"02",X"20",X"10",X"02",X"22",X"10",X"02",X"24",X"10",X"02",X"26",X"10",X"02",X"28",X"10",X"02",
X"2A",X"10",X"02",X"2C",X"10",X"02",X"2E",X"10",X"02",X"30",X"10",X"02",X"32",X"10",X"02",X"34",
X"10",X"02",X"36",X"10",X"02",X"38",X"10",X"02",X"3A",X"10",X"02",X"3C",X"10",X"02",X"3E",X"10",
X"02",X"40",X"08",X"02",X"42",X"08",X"02",X"44",X"08",X"02",X"46",X"08",X"02",X"48",X"08",X"02",
X"4A",X"08",X"02",X"4C",X"08",X"02",X"50",X"08",X"02",X"52",X"08",X"02",X"54",X"08",X"02",X"56",
X"08",X"02",X"58",X"08",X"02",X"5A",X"08",X"02",X"5C",X"08",X"02",X"5E",X"08",X"02",X"60",X"04",
X"02",X"64",X"04",X"02",X"68",X"04",X"02",X"6C",X"04",X"02",X"70",X"04",X"02",X"74",X"04",X"02",
X"78",X"04",X"02",X"7C",X"04",X"02",X"80",X"04",X"02",X"84",X"04",X"02",X"88",X"04",X"02",X"8C",
X"04",X"02",X"90",X"04",X"02",X"94",X"04",X"02",X"98",X"04",X"02",X"9C",X"04",X"02",X"A0",X"04",
X"02",X"A4",X"04",X"02",X"A4",X"04",X"02",X"A8",X"04",X"02",X"AC",X"04",X"02",X"B0",X"04",X"02",
X"B4",X"04",X"02",X"B8",X"04",X"02",X"BC",X"04",X"02",X"C0",X"04",X"02",X"C4",X"04",X"02",X"C8",
X"04",X"02",X"CC",X"04",X"02",X"D0",X"04",X"02",X"D4",X"04",X"80",X"0A",X"0F",X"01",X"04",X"40",
X"20",X"04",X"80",X"20",X"04",X"40",X"20",X"04",X"80",X"20",X"04",X"40",X"20",X"04",X"80",X"20",
X"04",X"40",X"20",X"04",X"80",X"20",X"04",X"40",X"20",X"04",X"80",X"20",X"04",X"40",X"20",X"04",
X"80",X"20",X"04",X"40",X"20",X"04",X"80",X"20",X"04",X"40",X"20",X"04",X"80",X"20",X"04",X"40",
X"20",X"04",X"80",X"20",X"04",X"40",X"20",X"80",X"0A",X"10",X"01",X"0C",X"08",X"01",X"0D",X"09",
X"01",X"04",X"32",X"10",X"04",X"2A",X"10",X"04",X"32",X"10",X"04",X"2A",X"10",X"04",X"32",X"10",
X"04",X"2A",X"10",X"04",X"32",X"10",X"04",X"2A",X"10",X"04",X"32",X"10",X"04",X"2A",X"10",X"04",
X"32",X"10",X"80",X"08",X"31",X"31",X"31",X"31",X"31",X"31",X"31",X"31",X"31",X"31",X"31",X"00",
X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"00",X"35",X"35",X"35",X"35",
X"35",X"35",X"35",X"35",X"35",X"35",X"35",X"00",X"1D",X"1D",X"2C",X"2C",X"2A",X"2A",X"28",X"28",
X"26",X"26",X"35",X"35",X"33",X"33",X"31",X"31",X"81",X"0A",X"A9",X"C9",X"FD",X"A9",X"C9",X"FD",
X"A9",X"C9",X"FD",X"A9",X"C9",X"FD",X"96",X"BD",X"E1",X"96",X"BD",X"E1",X"96",X"BD",X"E1",X"96",
X"BD",X"E1",X"86",X"A9",X"C9",X"86",X"A9",X"C9",X"86",X"A9",X"C9",X"86",X"A9",X"C9",X"7E",X"7E",
X"86",X"86",X"96",X"96",X"A9",X"A9",X"BC",X"BC",X"C9",X"C9",X"E1",X"E1",X"FD",X"FD",X"07",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"1E",X"00",X"00",X"00",X"0F",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"0A",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"11",
X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0A",X"00",X"00",X"00",X"0F",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",X"00",X"00",X"00",X"81",
X"08",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"21",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"1E",X"00",X"00",X"00",X"0F",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"0A",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",
X"00",X"11",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0A",X"00",X"00",X"00",X"0F",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",X"00",X"00",
X"00",X"81",X"09",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"21",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",X"00",X"2F",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"1E",X"00",X"00",X"00",X"0F",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"0A",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",
X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0A",X"00",X"00",X"00",X"0F",
X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0F",
X"00",X"00",X"00",X"81",X"0A",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",
X"00",X"0F",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",
X"00",X"0F",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",
X"00",X"2F",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"11",X"00",X"00",
X"00",X"21",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",
X"00",X"2F",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"2E",X"00",X"00",
X"00",X"2F",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"1E",X"00",X"00",
X"00",X"0F",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"0A",X"00",X"00",X"00",X"21",X"00",X"00",
X"00",X"01",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"0E",X"00",X"00",X"00",X"0A",X"00",X"00",
X"00",X"0F",X"00",X"00",X"00",X"21",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"0E",X"00",X"00",
X"00",X"0F",X"00",X"00",X"00",X"81",X"08",X"1D",X"1D",X"1D",X"1D",X"1D",X"1D",X"1D",X"1D",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"2C",X"2C",X"2C",X"2C",X"2C",X"2C",X"2C",X"2C",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"2A",X"2A",X"2A",X"2A",X"2A",X"2A",X"2A",X"2A",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"28",X"28",X"00",X"00",X"26",X"26",X"00",X"00",X"35",
X"35",X"00",X"00",X"33",X"33",X"00",X"00",X"1D",X"1D",X"1D",X"1D",X"1D",X"1D",X"1D",X"1D",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"2C",X"2C",X"2C",X"2C",X"2C",X"2C",X"2C",X"2C",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"2A",X"2A",X"2A",X"2A",X"2A",X"2A",X"2A",X"2A",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"28",X"28",X"00",X"00",X"26",X"26",X"00",X"00",X"35",
X"35",X"00",X"00",X"33",X"33",X"00",X"00",X"81",X"08",X"7E",X"7E",X"00",X"00",X"96",X"00",X"7E",
X"7E",X"00",X"00",X"96",X"00",X"7E",X"00",X"96",X"00",X"86",X"86",X"00",X"00",X"A9",X"00",X"86",
X"86",X"00",X"00",X"A9",X"00",X"86",X"00",X"A9",X"00",X"96",X"96",X"00",X"00",X"BD",X"00",X"96",
X"96",X"00",X"00",X"BD",X"00",X"96",X"00",X"BD",X"00",X"A9",X"A9",X"00",X"00",X"BD",X"BD",X"00",
X"00",X"C9",X"C9",X"00",X"00",X"E1",X"E1",X"00",X"00",X"7E",X"7E",X"00",X"00",X"96",X"00",X"7E",
X"7E",X"00",X"00",X"96",X"00",X"7E",X"00",X"96",X"00",X"86",X"86",X"00",X"00",X"A9",X"00",X"86",
X"86",X"00",X"00",X"A9",X"00",X"86",X"00",X"A9",X"00",X"96",X"96",X"00",X"00",X"BD",X"00",X"96",
X"96",X"00",X"00",X"BD",X"00",X"96",X"00",X"BD",X"00",X"A9",X"A9",X"00",X"00",X"BD",X"BD",X"00",
X"00",X"C9",X"C9",X"00",X"00",X"E1",X"E1",X"00",X"00",X"4C",X"71",X"FC",X"78",X"D8",X"A2",X"FF",
X"9A",X"AD",X"00",X"A0",X"A9",X"00",X"8D",X"00",X"C0",X"A0",X"00",X"A2",X"00",X"B9",X"00",X"F0",
X"95",X"00",X"C8",X"E8",X"D0",X"F7",X"B9",X"00",X"F0",X"9D",X"00",X"01",X"C8",X"E8",X"D0",X"F6",
X"B5",X"00",X"D9",X"00",X"F0",X"D0",X"D2",X"C8",X"E8",X"D0",X"F5",X"BD",X"00",X"01",X"D9",X"00",
X"F0",X"D0",X"7E",X"C8",X"E8",X"D0",X"F4",X"C8",X"C0",X"20",X"D0",X"CF",X"A2",X"00",X"A0",X"00",
X"98",X"85",X"1D",X"A9",X"02",X"85",X"1E",X"BD",X"00",X"F0",X"91",X"1D",X"E8",X"C8",X"D0",X"F7",
X"E6",X"1E",X"A5",X"1E",X"C9",X"04",X"90",X"EF",X"A9",X"00",X"85",X"1D",X"A9",X"02",X"85",X"1E",
X"B1",X"1D",X"DD",X"00",X"F0",X"D0",X"4A",X"E8",X"C8",X"D0",X"F5",X"E6",X"1E",X"A5",X"1E",X"C9",
X"04",X"90",X"ED",X"E8",X"E0",X"20",X"D0",X"C6",X"A2",X"00",X"BD",X"59",X"FC",X"8D",X"00",X"40",
X"E8",X"BD",X"59",X"FC",X"8D",X"00",X"20",X"E8",X"E0",X"18",X"D0",X"EE",X"A2",X"80",X"A0",X"00",
X"88",X"D0",X"FD",X"CA",X"D0",X"FA",X"4C",X"71",X"F0",X"00",X"66",X"01",X"01",X"02",X"1C",X"03",
X"01",X"04",X"EF",X"05",X"00",X"07",X"F8",X"08",X"10",X"09",X"10",X"0A",X"10",X"0C",X"30",X"0D",
X"09",X"A0",X"00",X"B9",X"92",X"FC",X"8D",X"00",X"40",X"C8",X"B9",X"92",X"FC",X"8D",X"00",X"20",
X"C8",X"C0",X"18",X"D0",X"EE",X"A2",X"A0",X"A0",X"00",X"88",X"D0",X"FD",X"CA",X"D0",X"FA",X"4C",
X"71",X"FC",X"00",X"CC",X"01",X"02",X"02",X"A4",X"03",X"02",X"04",X"7E",X"05",X"02",X"07",X"38",
X"08",X"10",X"09",X"10",X"0A",X"10",X"0C",X"30",X"0D",X"09",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"F0",X"F0",X"BC",X"FB",X"00",X"F0");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -120,7 +120,7 @@ sdram sdram(
.cpu1_addr ( ioctl_downl ? 16'hffff : {2'b00, prg_rom_addr[14:1]} ),
.cpu1_q ( prg_rom_do ),
.cpu2_addr ( ioctl_downl ? 16'hffff : {snd_rom_addr[11:1] + 16'h8000} ),
.cpu2_addr ( ioctl_downl ? 16'hffff : {snd_rom_addr[11:1] + 16'h4000} ),
.cpu2_q ( snd_rom_do ),
// port2 for graphics

View File

@@ -352,15 +352,15 @@ port map(
);
-- program rom
program_rom: entity work.sound_prog
port map(
clk => clock_12n,
addr => cpu_addr(11 downto 0),
data => prog_rom_do
);
--program_rom: entity work.sound_prog
--port map(
-- clk => clock_12n,
-- addr => cpu_addr(11 downto 0),
-- data => prog_rom_do
--);
--snd_rom_addr <= cpu_addr(11 downto 0);
--prog_rom_do <= snd_rom_do;
snd_rom_addr <= cpu_addr(11 downto 0);
prog_rom_do <= snd_rom_do;
-- AY-3-8910 #1
ay_3_8910_1 : entity work.YM2149

View File

@@ -277,7 +277,7 @@ wram_cs <= '1' when cpu_addr(15 downto 11) = "00000" else '0'; -- wo
io_cs <= '1' when cpu_addr(15 downto 3) = "0100000000000" else '0'; -- player/dip_sw 4000-4007 (4004)
fg_ram_cs <= '1' when cpu_addr(15 downto 12) = "0001" else '0'; -- foreground ram 1000-1fff
palette_cs <= '1' when cpu_addr(15 downto 4) = "000011000000" else '0'; -- palette ram 0c00-0c0f
prog_rom_cs <= '1' when cpu_addr(15) = '1' else '0'; -- program rom 9000-ffff
prog_rom_cs <= '1' when cpu_addr(15) = '1' else '0'; -- program rom 9000-ffff
-- write enable
wram_we <= '1' when wram_cs = '1' and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 0000-07ff
@@ -453,7 +453,8 @@ end process;
bg_scan_hcnt <= (hcnt_flip) + (scroll1(1 downto 0)&scroll2) + "0011110010" when cocktail_flip = '0' else
(hcnt_flip) + (scroll1(1 downto 0)&scroll2) + "1100000101";
bg_map_addr <= scroll1(3) & scroll1(2) & bg_scan_hcnt(9 downto 4) & vcnt_flip(7 downto 4);
bg_map_addr <= scroll1(2) & bg_scan_hcnt(9 downto 4) & vcnt_flip(8 downto 4);--todo
--bg_map_addr <= scroll1(2) & bg_scan_hcnt(9 downto 4) & vcnt_flip(7 downto 4);
-- manage background graphics rom address
process (clock_12,clock_6)

View File

@@ -1,82 +0,0 @@
module keyboard
(
input clk,
input reset,
input ps2_kbd_clk,
input ps2_kbd_data,
output reg[7:0] joystick
);
reg [11:0] shift_reg = 12'hFFF;
wire[11:0] kdata = {ps2_kbd_data,shift_reg[11:1]};
wire [7:0] kcode = kdata[9:2];
reg release_btn = 0;
reg [7:0] code;
reg input_strobe = 0;
always @(negedge clk) begin
reg old_reset = 0;
old_reset <= reset;
if(~old_reset & reset)begin
joystick <= 0;
end
if(input_strobe) begin
case(code)
'h16: joystick[1] <= ~release_btn; // 1
'h1E: joystick[2] <= ~release_btn; // 2
'h75: joystick[4] <= ~release_btn; // arrow up
'h72: joystick[5] <= ~release_btn; // arrow down
'h6B: joystick[6] <= ~release_btn; // arrow left
'h74: joystick[7] <= ~release_btn; // arrow right
'h29: joystick[0] <= ~release_btn; // Space
'h11: joystick[1] <= ~release_btn; // Left Alt
'h0d: joystick[2] <= ~release_btn; // Tab
'h76: joystick[3] <= ~release_btn; // Escape
endcase
end
end
always @(posedge clk) begin
reg [3:0] prev_clk = 0;
reg old_reset = 0;
reg action = 0;
old_reset <= reset;
input_strobe <= 0;
if(~old_reset & reset)begin
prev_clk <= 0;
shift_reg <= 12'hFFF;
end else begin
prev_clk <= {ps2_kbd_clk,prev_clk[3:1]};
if(prev_clk == 1) begin
if (kdata[11] & ^kdata[10:2] & ~kdata[1] & kdata[0]) begin
shift_reg <= 12'hFFF;
if (kcode == 8'he0) ;
// Extended key code follows
else if (kcode == 8'hf0)
// Release code follows
action <= 1;
else begin
// Cancel extended/release flags for next time
action <= 0;
release_btn <= action;
code <= kcode;
input_strobe <= 1;
end
end else begin
shift_reg <= kdata;
end
end
end
end
endmodule