1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-02-26 16:43:21 +00:00

Tisland Files

This commit is contained in:
Marcel
2023-04-23 09:19:42 +02:00
parent 6f668be7fc
commit 7aa1201e5c
35 changed files with 5916 additions and 1959 deletions

View File

@@ -1,30 +0,0 @@
# -------------------------------------------------------------------------- #
#
# Copyright (C) 1991-2014 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.
#
# -------------------------------------------------------------------------- #
#
# Quartus II 64-Bit
# Version 13.1.4 Build 182 03/12/2014 SJ Full Version
# Date created = 19:35:28 January 31, 2023
#
# -------------------------------------------------------------------------- #
QUARTUS_VERSION = "13.1"
DATE = "19:35:28 January 31, 2023"
# Revisions
PROJECT_REVISION = "Burgertime"

View File

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

View File

@@ -0,0 +1,31 @@
# -------------------------------------------------------------------------- #
#
# Copyright (C) 2016 Intel Corporation. All rights reserved.
# Your use of Intel 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 Intel Program License
# Subscription Agreement, the Intel Quartus Prime License Agreement,
# the Intel 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 Intel and sold by Intel or its
# authorized distributors. Please refer to the applicable
# agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus Prime
# Version 16.1.0 Build 196 10/24/2016 SJ Lite Edition
# Date created = 21:51:49 December 06, 2017
#
# -------------------------------------------------------------------------- #
QUARTUS_VERSION = "16.1"
DATE = "21:51:49 December 06, 2017"
# Revisions
PROJECT_REVISION = "burger_time_mist"

View File

@@ -0,0 +1,166 @@
# -------------------------------------------------------------------------- #
#
# 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.
#
# -------------------------------------------------------------------------- #
#
# Quartus II 64-Bit
# Version 13.1.0 Build 162 10/23/2013 SJ Web Edition
# Date created = 14:52:55 December 26, 2017
#
# -------------------------------------------------------------------------- #
#
# Notes:
#
# 1) The default values for assignments are stored in the file:
# burnin_rubber_mist_assignment_defaults.qdf
# If this file doesn't exist, see file:
# assignment_defaults.qdf
#
# 2) Altera recommends that you do not modify this file. This
# file is updated automatically by the Quartus II software
# and any changes you make may be lost or overwritten.
#
# -------------------------------------------------------------------------- #
# Project-Wide Assignments
# ========================
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 15.1.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "17:45:13 JUNE 17,2016"
set_global_assignment -name LAST_QUARTUS_VERSION 13.1
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl"
# Pin & Location Assignments
# ==========================
set_location_assignment PIN_7 -to LED
set_location_assignment PIN_54 -to CLOCK_27
set_location_assignment PIN_144 -to VGA_R[5]
set_location_assignment PIN_143 -to VGA_R[4]
set_location_assignment PIN_142 -to VGA_R[3]
set_location_assignment PIN_141 -to VGA_R[2]
set_location_assignment PIN_137 -to VGA_R[1]
set_location_assignment PIN_135 -to VGA_R[0]
set_location_assignment PIN_133 -to VGA_B[5]
set_location_assignment PIN_132 -to VGA_B[4]
set_location_assignment PIN_125 -to VGA_B[3]
set_location_assignment PIN_121 -to VGA_B[2]
set_location_assignment PIN_120 -to VGA_B[1]
set_location_assignment PIN_115 -to VGA_B[0]
set_location_assignment PIN_114 -to VGA_G[5]
set_location_assignment PIN_113 -to VGA_G[4]
set_location_assignment PIN_112 -to VGA_G[3]
set_location_assignment PIN_111 -to VGA_G[2]
set_location_assignment PIN_110 -to VGA_G[1]
set_location_assignment PIN_106 -to VGA_G[0]
set_location_assignment PIN_136 -to VGA_VS
set_location_assignment PIN_119 -to VGA_HS
set_location_assignment PIN_65 -to AUDIO_L
set_location_assignment PIN_80 -to AUDIO_R
set_location_assignment PIN_105 -to SPI_DO
set_location_assignment PIN_88 -to SPI_DI
set_location_assignment PIN_126 -to SPI_SCK
set_location_assignment PIN_127 -to SPI_SS2
set_location_assignment PIN_91 -to SPI_SS3
set_location_assignment PIN_13 -to CONF_DATA0
set_location_assignment PLL_1 -to "pll:pll|altpll:altpll_component"
# Classic Timing Assignments
# ==========================
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
# Analysis & Synthesis Assignments
# ================================
set_global_assignment -name FAMILY "Cyclone III"
set_global_assignment -name TOP_LEVEL_ENTITY burger_time_mist
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144
set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8
# Fitter Assignments
# ==================
set_global_assignment -name DEVICE EP3C25E144C8
set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "PASSIVE SERIAL"
set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF
set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA7_THROUGH_DATA2_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_OTHER_AP_PINS_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO"
# Assembler Assignments
# =====================
set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
set_global_assignment -name GENERATE_RBF_FILE ON
# SignalTap II Assignments
# ========================
set_global_assignment -name ENABLE_SIGNALTAP OFF
set_global_assignment -name USE_SIGNALTAP_FILE stp1.stp
# Power Estimation Assignments
# ============================
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
# Advanced I/O Timing Assignments
# ===============================
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
# --------------------------------
# start ENTITY(burnin_rubber_mist)
# start DESIGN_PARTITION(Top)
# ---------------------------
# Incremental Compilation Assignments
# ===================================
# end DESIGN_PARTITION(Top)
# -------------------------
# end ENTITY(burnin_rubber_mist)
# ------------------------------
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_global_assignment -name SYSTEMVERILOG_FILE rtl/burger_time_mist.sv
set_global_assignment -name VHDL_FILE rtl/burger_time.vhd
set_global_assignment -name VHDL_FILE "rtl/burger_time _sound.vhd"
set_global_assignment -name QIP_FILE rtl/pll.qip
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/fg_sp_graphx_3.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/fg_sp_graphx_2.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/fg_sp_graphx_1.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/burger_time_sound_prog.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/burger_time_prog.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/bg_map.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/bg_graphx_3.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/bg_graphx_2.vhd
set_global_assignment -name VHDL_FILE rtl/Roms/bg_graphx_1.vhd
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
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

View File

@@ -0,0 +1,135 @@
## 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 vid_clk "pll|altpll_component|auto_generated|pll1|clk[1]"
set sdram_clk "pll|altpll_component|auto_generated|pll1|clk[1]"
#**************************************************************
# 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 $vid_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
#**************************************************************

View File

@@ -0,0 +1,143 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity bg_graphx_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 bg_graphx_1 is
type rom is array(0 to 1935) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"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"AA",X"AA",X"AA",X"AA",X"AA",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"8A",X"8A",X"8A",X"8A",X"8A",
X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"8A",X"8A",X"8A",X"8A",X"8A",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"AA",X"AA",X"AA",X"AA",X"AA",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"AA",X"AA",X"AA",X"AA",X"AA",
X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",
X"00",X"00",X"00",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",
X"00",X"00",X"00",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",
X"60",X"60",X"60",X"EA",X"EA",X"EA",X"EA",X"EA",X"EA",X"EA",X"EA",X"EA",X"EA",X"60",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"60",X"60",X"60",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"60",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"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",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"80",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"60",X"60",X"60",X"60",X"60",X"60",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"AA",X"AA",X"AA",X"AA",X"AA",
X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"00",X"00",X"00",X"8A",X"8A",X"8A",X"8A",X"8A",
X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"8A",X"8A",X"8A",X"8A",X"8A",X"00",X"00",X"00",X"60",X"60",X"60",X"60",X"60",X"60",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"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",
X"7E",X"12",X"1E",X"00",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",X"7E",X"12",X"2E",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"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"02",X"10",X"00",X"22",X"00",X"10",X"04",X"00",X"00",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"80",X"00",X"00",X"10",X"00",X"48",X"00",X"00",X"20",X"00",X"08",X"40",X"00",X"10",X"04",
X"00",X"00",X"00",X"01",X"00",X"10",X"00",X"00",X"02",X"00",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"80",X"00",X"00",X"00",X"00",
X"02",X"00",X"24",X"00",X"08",X"41",X"04",X"00",X"09",X"01",X"04",X"90",X"04",X"20",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"00",X"00",
X"20",X"80",X"00",X"00",X"00",X"00",X"80",X"00",X"10",X"80",X"00",X"00",X"20",X"00",X"80",X"00",
X"00",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"10",X"80",X"04",X"00",X"20",X"05",X"00",X"00",X"04",X"00",X"00",X"00",X"00",X"00",
X"10",X"00",X"41",X"08",X"00",X"20",X"81",X"00",X"10",X"00",X"00",X"82",X"00",X"04",X"00",X"20",
X"00",X"00",X"24",X"00",X"04",X"01",X"10",X"00",X"02",X"00",X"00",X"00",X"00",X"01",X"00",X"00",
X"04",X"40",X"08",X"20",X"02",X"00",X"20",X"04",X"80",X"01",X"08",X"20",X"02",X"00",X"04",X"01",
X"00",X"00",X"00",X"00",X"01",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"00",X"00",
X"00",X"00",X"10",X"00",X"04",X"00",X"01",X"00",X"04",X"00",X"00",X"09",X"00",X"02",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"C6",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"FE",X"92",X"F6",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"DE",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"DE",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"DE",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"50",X"60",X"F0",X"D4",X"5A",X"88",X"A8",X"50",X"A0",X"CC",X"70",X"78",X"40",X"00",
X"00",X"00",X"00",X"00",X"01",X"02",X"07",X"04",X"06",X"04",X"03",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"38",X"6E",X"76",X"7F",X"5D",X"7F",X"77",X"7F",X"5E",X"76",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"F8",X"CC",X"84",X"84",X"84",X"84",X"84",X"84",X"84",X"CC",X"F8",X"20",X"10",X"10",X"E0",
X"30",X"79",X"77",X"EF",X"EF",X"DF",X"DF",X"DF",X"EF",X"EF",X"77",X"79",X"31",X"02",X"01",X"00",
X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"10",X"5C",X"54",X"74",X"10",X"00",
X"00",X"00",X"7C",X"20",X"7C",X"64",X"7C",X"00",X"00",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"E0",
X"00",X"03",X"1F",X"11",X"1B",X"11",X"1F",X"03",X"00",X"00",X"00",X"00",X"00",X"10",X"70",X"80",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"80",X"70",X"10",X"00",X"00",X"00",X"00",X"00",
X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"80",X"60",X"60",X"00",X"00",X"00",
X"00",X"0C",X"02",X"A2",X"12",X"12",X"0C",X"00",X"00",X"00",X"BE",X"00",X"00",X"BE",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"02",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"E6",X"B2",X"9E",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"C6",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"9E",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"E6",X"B2",X"9E",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"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"24",X"FE",X"20",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"FE",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"92",X"F6",X"00",X"FE",X"82",X"FE",X"82",X"FE",X"82",X"FE",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -0,0 +1,50 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity bg_graphx_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 bg_graphx_2 is
type rom is array(0 to 447) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"60",X"60",X"60",X"60",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"60",X"60",X"60",X"60",X"60",X"60",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"00",X"00",X"60",X"60",X"60",X"60",X"60",X"60",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"60",X"60",X"60",X"60",X"60",X"60",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"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"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",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"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",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"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",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"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",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"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",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"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -0,0 +1,143 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity bg_graphx_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 bg_graphx_3 is
type rom is array(0 to 1935) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"10",X"10",X"10",X"10",X"10",X"20",X"40",X"80",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",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"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",
X"7E",X"12",X"1E",X"00",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",X"7E",X"12",X"2E",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"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"02",X"10",X"00",X"22",X"00",X"10",X"04",X"00",X"00",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"80",X"00",X"00",X"10",X"00",X"48",X"00",X"00",X"20",X"00",X"08",X"40",X"00",X"10",X"04",
X"00",X"00",X"00",X"01",X"00",X"10",X"00",X"00",X"02",X"00",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"80",X"00",X"00",X"00",X"00",
X"02",X"00",X"24",X"00",X"08",X"41",X"04",X"00",X"09",X"01",X"04",X"90",X"04",X"20",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"00",X"00",
X"20",X"80",X"00",X"00",X"00",X"00",X"80",X"00",X"10",X"80",X"00",X"00",X"20",X"00",X"80",X"00",
X"00",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"10",X"80",X"04",X"00",X"20",X"05",X"00",X"00",X"04",X"00",X"00",X"00",X"00",X"00",
X"10",X"00",X"41",X"08",X"00",X"20",X"81",X"00",X"10",X"00",X"00",X"82",X"00",X"04",X"00",X"20",
X"00",X"00",X"24",X"00",X"04",X"01",X"10",X"00",X"02",X"00",X"00",X"00",X"00",X"01",X"00",X"00",
X"04",X"40",X"08",X"20",X"02",X"00",X"20",X"04",X"80",X"01",X"08",X"20",X"02",X"00",X"04",X"01",
X"00",X"00",X"00",X"00",X"01",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"00",X"00",
X"00",X"00",X"10",X"00",X"04",X"00",X"01",X"00",X"04",X"00",X"00",X"09",X"00",X"02",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"C6",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"FE",X"92",X"F6",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"DE",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"DE",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"DE",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"50",X"60",X"F0",X"D4",X"5A",X"88",X"A8",X"50",X"A0",X"CC",X"70",X"78",X"40",X"00",
X"00",X"00",X"00",X"00",X"01",X"02",X"07",X"04",X"06",X"04",X"03",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"38",X"6E",X"76",X"7F",X"5D",X"7F",X"77",X"7F",X"5E",X"76",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"F8",X"CC",X"84",X"84",X"84",X"84",X"84",X"84",X"84",X"CC",X"F8",X"20",X"10",X"10",X"E0",
X"30",X"79",X"77",X"EF",X"EF",X"DF",X"DF",X"DF",X"EF",X"EF",X"77",X"79",X"31",X"02",X"01",X"00",
X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"10",X"5C",X"54",X"74",X"10",X"00",
X"00",X"00",X"7C",X"20",X"7C",X"64",X"7C",X"00",X"00",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"E0",
X"00",X"03",X"1F",X"11",X"1B",X"11",X"1F",X"03",X"00",X"00",X"00",X"00",X"00",X"10",X"70",X"80",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"80",X"70",X"10",X"00",X"00",X"00",X"00",X"00",
X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"80",X"60",X"60",X"00",X"00",X"00",
X"00",X"0C",X"02",X"A2",X"12",X"12",X"0C",X"00",X"00",X"00",X"BE",X"00",X"00",X"BE",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"02",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"E6",X"B2",X"9E",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"C6",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"9E",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"E6",X"B2",X"9E",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"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"24",X"FE",X"20",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"FE",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"92",X"F6",X"00",X"FE",X"82",X"FE",X"82",X"FE",X"82",X"FE",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -0,0 +1,150 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity bg_map 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 bg_map is
type rom is array(0 to 2047) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"05",X"06",X"00",X"05",X"06",X"07",X"05",X"06",X"00",X"05",X"06",X"00",X"05",X"06",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"04",X"07",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"00",X"00",X"07",X"03",X"0D",X"08",X"0C",X"04",X"07",X"05",X"06",X"00",X"05",X"06",X"00",
X"00",X"01",X"0B",X"08",X"0C",X"04",X"00",X"05",X"06",X"07",X"03",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"05",X"06",X"07",X"03",X"0D",X"09",X"0C",X"0D",X"08",X"0C",X"04",X"07",X"00",X"00",X"00",
X"00",X"05",X"06",X"07",X"05",X"06",X"00",X"05",X"06",X"00",X"03",X"0D",X"08",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"08",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"07",X"05",X"06",X"00",
X"00",X"05",X"06",X"00",X"05",X"06",X"00",X"05",X"06",X"00",X"05",X"06",X"07",X"05",X"06",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"08",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"08",X"0C",X"0D",X"08",X"0C",X"04",X"07",X"05",X"06",X"07",X"05",X"06",X"00",
X"00",X"03",X"0D",X"08",X"0C",X"04",X"07",X"03",X"0D",X"08",X"0C",X"0D",X"08",X"0C",X"04",X"00",
X"00",X"05",X"06",X"07",X"03",X"0D",X"08",X"0C",X"04",X"07",X"03",X"0D",X"08",X"0C",X"04",X"00",
X"00",X"03",X"0D",X"08",X"0C",X"0D",X"08",X"0C",X"0D",X"08",X"0C",X"0D",X"08",X"0C",X"04",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"03",X"0D",X"08",X"0A",X"02",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"0B",X"08",X"0C",X"04",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"07",X"03",X"0D",X"08",X"0A",X"02",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"0B",X"08",X"0C",X"0D",X"08",X"0A",X"02",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",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"03",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"08",X"0A",X"0B",X"08",X"0A",X"0B",X"09",X"0C",X"04",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"00",X"03",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"03",X"0D",X"09",X"0A",X"0B",X"08",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"00",X"00",X"00",X"03",X"04",X"07",X"03",X"0D",X"08",X"0A",X"02",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"03",X"0D",X"08",X"0C",X"0D",X"09",X"0C",X"04",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"03",X"04",X"00",X"00",X"00",X"00",X"05",X"06",X"00",X"00",X"00",X"00",
X"00",X"01",X"0B",X"09",X"0C",X"04",X"00",X"00",X"00",X"00",X"03",X"0D",X"09",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"08",X"0C",X"04",X"00",X"00",X"00",X"00",X"03",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"03",X"0D",X"08",X"0C",X"04",X"00",X"00",X"00",X"00",X"03",X"0D",X"08",X"0C",X"04",X"00",
X"00",X"00",X"00",X"00",X"03",X"0D",X"09",X"0A",X"0B",X"09",X"0C",X"04",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"03",X"0D",X"08",X"0A",X"0B",X"08",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"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"01",X"0B",X"08",X"0A",X"0B",X"08",X"0A",X"0B",X"08",X"0A",X"0B",X"08",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"01",X"0B",X"08",X"0A",X"0B",X"08",X"0C",X"0D",X"08",X"0A",X"0B",X"08",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"00",
X"00",X"03",X"0D",X"08",X"0A",X"0B",X"08",X"0A",X"0B",X"08",X"0A",X"0B",X"08",X"0C",X"04",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",X"0C",X"0D",X"09",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"03",X"0D",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"08",X"0C",X"04",X"00",
X"00",X"01",X"0B",X"09",X"0A",X"0B",X"09",X"0C",X"0D",X"09",X"0C",X"04",X"07",X"05",X"06",X"00",
X"00",X"03",X"0D",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0A",X"02",X"07",X"05",X"06",X"00",
X"00",X"03",X"0D",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0C",X"0D",X"08",X"0C",X"04",X"00",
X"00",X"03",X"0D",X"09",X"0C",X"0D",X"09",X"0A",X"0B",X"09",X"0A",X"02",X"07",X"05",X"06",X"00",
X"00",X"03",X"0D",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0C",X"04",X"07",X"05",X"06",X"00",
X"00",X"03",X"0D",X"09",X"0A",X"0B",X"09",X"0A",X"0B",X"09",X"0C",X"04",X"07",X"05",X"06",X"00",
X"00",X"05",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"0B",X"08",X"0C",X"04",X"00",
X"00",X"05",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"06",X"00",X"05",X"06",X"00",
X"00",X"05",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"06",X"00",X"05",X"06",X"00",
X"00",X"03",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"0D",X"09",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"0B",X"09",X"0A",X"02",X"00",X"01",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"01",X"0B",X"09",X"0C",X"04",X"07",X"01",X"0B",X"09",X"0C",X"04",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"03",X"0D",X"08",X"0A",X"02",X"07",X"01",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"01",X"0B",X"09",X"0C",X"04",X"07",X"03",X"0D",X"08",X"0C",X"04",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"0B",X"08",X"0C",X"04",X"00",X"03",X"0D",X"09",X"0A",X"02",X"00",
X"00",X"01",X"0B",X"09",X"0C",X"04",X"00",X"03",X"0D",X"09",X"0C",X"04",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"03",X"0D",X"09",X"0A",X"02",X"07",X"01",X"0B",X"09",X"0A",X"02",X"00",
X"00",X"01",X"0B",X"09",X"0C",X"04",X"07",X"03",X"0D",X"08",X"0C",X"04",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"0B",X"08",X"0A",X"02",X"07",X"03",X"0D",X"09",X"0A",X"02",X"00",
X"00",X"01",X"0B",X"09",X"0C",X"04",X"00",X"03",X"0D",X"08",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"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",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
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -0,0 +1,278 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity burger_time_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 burger_time_sound_prog is
type rom is array(0 to 4095) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"4C",X"7A",X"F0",X"4C",X"09",X"F0",X"4C",X"55",X"F2",X"78",X"D8",X"A2",X"FF",X"9A",X"A2",X"EF",
X"A9",X"00",X"95",X"00",X"CA",X"D0",X"FB",X"20",X"2A",X"F0",X"A9",X"08",X"85",X"1E",X"A9",X"FF",
X"8D",X"00",X"C0",X"58",X"20",X"4A",X"F0",X"4C",X"27",X"F0",X"A9",X"00",X"85",X"05",X"AA",X"A5",
X"05",X"8D",X"00",X"40",X"8D",X"00",X"80",X"BD",X"64",X"F0",X"8D",X"00",X"20",X"8D",X"00",X"60",
X"E8",X"E6",X"05",X"A5",X"05",X"C9",X"10",X"90",X"E6",X"60",X"A9",X"00",X"85",X"05",X"AA",X"A5",
X"05",X"8D",X"00",X"80",X"BD",X"64",X"F0",X"8D",X"00",X"60",X"E8",X"E6",X"05",X"A5",X"05",X"C9",
X"0B",X"90",X"EC",X"60",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"68",X"A8",X"68",X"AA",X"68",X"40",X"48",X"8A",X"48",X"98",X"48",X"A5",
X"01",X"F0",X"F1",X"A5",X"04",X"C9",X"05",X"D0",X"04",X"A9",X"00",X"85",X"04",X"E6",X"04",X"0A",
X"AA",X"BD",X"9E",X"F0",X"85",X"1C",X"BD",X"9F",X"F0",X"85",X"1D",X"6C",X"1C",X"00",X"AA",X"F0",
X"FE",X"F0",X"3F",X"F1",X"80",X"F1",X"74",X"F0",X"74",X"F0",X"A5",X"12",X"D0",X"38",X"A4",X"0C",
X"E6",X"0C",X"B1",X"06",X"F0",X"3F",X"C9",X"FF",X"D0",X"07",X"A9",X"FF",X"85",X"15",X"4C",X"E9",
X"F0",X"20",X"1E",X"F2",X"A9",X"00",X"8D",X"00",X"40",X"A5",X"1A",X"8D",X"00",X"20",X"A9",X"01",
X"8D",X"00",X"40",X"A5",X"1B",X"8D",X"00",X"20",X"A5",X"1E",X"85",X"17",X"A9",X"08",X"8D",X"00",
X"40",X"A5",X"17",X"8D",X"00",X"20",X"4C",X"74",X"F0",X"A9",X"0C",X"85",X"1E",X"A9",X"0B",X"85",
X"20",X"A9",X"00",X"85",X"43",X"A9",X"00",X"85",X"1A",X"85",X"1B",X"4C",X"C4",X"F0",X"A5",X"15",
X"D0",X"34",X"A5",X"13",X"D0",X"2D",X"A4",X"0D",X"E6",X"0D",X"B1",X"08",X"F0",X"28",X"20",X"1E",
X"F2",X"A9",X"02",X"8D",X"00",X"40",X"A5",X"1A",X"8D",X"00",X"20",X"A9",X"03",X"8D",X"00",X"40",
X"A5",X"1B",X"8D",X"00",X"20",X"A5",X"1F",X"85",X"18",X"A9",X"09",X"8D",X"00",X"40",X"A5",X"18",
X"8D",X"00",X"20",X"4C",X"74",X"F0",X"A9",X"00",X"85",X"1A",X"85",X"1B",X"4C",X"11",X"F1",X"A5",
X"15",X"D0",X"34",X"A5",X"14",X"D0",X"2D",X"A4",X"0E",X"E6",X"0E",X"B1",X"0A",X"F0",X"28",X"20",
X"1E",X"F2",X"A9",X"04",X"8D",X"00",X"40",X"A5",X"1A",X"8D",X"00",X"20",X"A9",X"05",X"8D",X"00",
X"40",X"A5",X"1B",X"8D",X"00",X"20",X"A5",X"20",X"85",X"19",X"A9",X"0A",X"8D",X"00",X"40",X"A5",
X"19",X"8D",X"00",X"20",X"4C",X"74",X"F0",X"A9",X"00",X"85",X"1A",X"85",X"1B",X"4C",X"52",X"F1",
X"4C",X"8C",X"F1",X"4C",X"DE",X"F1",X"4C",X"FE",X"F1",X"4C",X"74",X"F0",X"A5",X"15",X"D0",X"20",
X"A5",X"0F",X"D0",X"0F",X"A4",X"0C",X"B1",X"06",X"85",X"0F",X"E6",X"0C",X"A9",X"FF",X"85",X"12",
X"4C",X"83",X"F1",X"C6",X"0F",X"A5",X"0F",X"D0",X"F7",X"A9",X"00",X"85",X"12",X"4C",X"A0",X"F1",
X"A9",X"00",X"AA",X"95",X"0C",X"E8",X"E0",X"0B",X"D0",X"F9",X"A2",X"00",X"A5",X"03",X"D0",X"0D",
X"BD",X"80",X"F3",X"95",X"06",X"E8",X"E0",X"06",X"D0",X"F6",X"4C",X"89",X"F1",X"BD",X"86",X"F3",
X"95",X"06",X"E8",X"E0",X"06",X"D0",X"F6",X"A9",X"0C",X"85",X"1F",X"4C",X"89",X"F1",X"A5",X"10",
X"D0",X"0F",X"A4",X"0D",X"B1",X"08",X"85",X"10",X"E6",X"0D",X"A9",X"FF",X"85",X"13",X"4C",X"86",
X"F1",X"C6",X"10",X"A5",X"10",X"D0",X"F7",X"A9",X"00",X"85",X"13",X"4C",X"EE",X"F1",X"A5",X"11",
X"D0",X"0F",X"A4",X"0E",X"B1",X"0A",X"85",X"11",X"E6",X"0E",X"A9",X"FF",X"85",X"14",X"4C",X"89",
X"F1",X"C6",X"11",X"A5",X"11",X"D0",X"F7",X"A9",X"00",X"85",X"14",X"4C",X"0E",X"F2",X"48",X"29",
X"0F",X"AA",X"BD",X"3D",X"F2",X"85",X"1A",X"BD",X"49",X"F2",X"85",X"1B",X"68",X"4A",X"4A",X"4A",
X"4A",X"F0",X"09",X"AA",X"18",X"46",X"1B",X"66",X"1A",X"CA",X"D0",X"F8",X"60",X"F2",X"1B",X"51",
X"91",X"DD",X"32",X"91",X"F9",X"6A",X"E3",X"63",X"EB",X"0E",X"0E",X"0D",X"0C",X"0B",X"0B",X"0A",
X"09",X"09",X"08",X"08",X"07",X"48",X"8A",X"48",X"98",X"48",X"AD",X"00",X"A0",X"85",X"3D",X"29",
X"F0",X"F0",X"34",X"C9",X"10",X"D0",X"2D",X"A5",X"3D",X"29",X"0F",X"F0",X"27",X"C9",X"0F",X"B0",
X"23",X"AA",X"A5",X"3E",X"DD",X"C6",X"F2",X"F0",X"02",X"B0",X"19",X"BD",X"C6",X"F2",X"85",X"3E",
X"8A",X"0A",X"AA",X"BD",X"E1",X"F2",X"85",X"3F",X"BD",X"E2",X"F2",X"85",X"40",X"A2",X"FF",X"9A",
X"58",X"6C",X"3F",X"00",X"4C",X"74",X"F0",X"A5",X"01",X"85",X"02",X"A9",X"00",X"85",X"01",X"A9",
X"0F",X"85",X"1E",X"A9",X"0E",X"85",X"1F",X"A9",X"0E",X"85",X"20",X"A5",X"3D",X"0A",X"C9",X"0C",
X"90",X"03",X"4C",X"FF",X"F2",X"AA",X"BD",X"D5",X"F2",X"85",X"41",X"BD",X"D6",X"F2",X"85",X"42",
X"20",X"06",X"F3",X"6C",X"41",X"00",X"00",X"03",X"03",X"02",X"07",X"04",X"09",X"09",X"06",X"0A",
X"08",X"0C",X"0B",X"05",X"01",X"09",X"F0",X"8C",X"F3",X"AA",X"F3",X"30",X"F3",X"30",X"F3",X"58",
X"F3",X"74",X"F0",X"3A",X"F6",X"DB",X"F3",X"12",X"F4",X"33",X"F6",X"49",X"F4",X"AE",X"F4",X"41",
X"F6",X"D8",X"F6",X"48",X"F6",X"4F",X"F6",X"60",X"F5",X"56",X"F6",X"EF",X"F4",X"5D",X"F6",X"A5",
X"02",X"85",X"01",X"4C",X"74",X"F0",X"A9",X"07",X"8D",X"00",X"40",X"A9",X"F8",X"8D",X"00",X"20",
X"60",X"A9",X"08",X"8D",X"00",X"40",X"A5",X"1E",X"8D",X"00",X"20",X"A9",X"09",X"8D",X"00",X"40",
X"A5",X"1F",X"8D",X"00",X"20",X"A9",X"0A",X"8D",X"00",X"40",X"A5",X"20",X"8D",X"00",X"20",X"60",
X"A9",X"00",X"85",X"03",X"A5",X"43",X"D0",X"C7",X"A2",X"00",X"BD",X"80",X"F3",X"95",X"06",X"E8",
X"E0",X"06",X"D0",X"F6",X"A9",X"0C",X"85",X"1E",X"A9",X"00",X"85",X"1F",X"A9",X"0B",X"85",X"20",
X"85",X"01",X"20",X"11",X"F3",X"4C",X"74",X"F0",X"A9",X"FF",X"85",X"03",X"A5",X"43",X"D0",X"9F",
X"A2",X"00",X"BD",X"86",X"F3",X"95",X"06",X"E8",X"E0",X"06",X"D0",X"F6",X"A9",X"0C",X"85",X"1E",
X"A9",X"0C",X"85",X"1F",X"A9",X"0B",X"85",X"20",X"85",X"01",X"20",X"11",X"F3",X"4C",X"74",X"F0",
X"F9",X"F8",X"8A",X"F9",X"9C",X"F9",X"F9",X"F8",X"0A",X"FA",X"9C",X"F9",X"20",X"C8",X"F3",X"A2",
X"00",X"BD",X"A4",X"F3",X"95",X"06",X"E8",X"E0",X"06",X"D0",X"F6",X"A9",X"0F",X"85",X"01",X"85",
X"43",X"4C",X"74",X"F0",X"A3",X"F7",X"D4",X"F7",X"04",X"F8",X"20",X"C8",X"F3",X"A2",X"00",X"BD",
X"C2",X"F3",X"95",X"06",X"E8",X"E0",X"06",X"D0",X"F6",X"A9",X"0F",X"85",X"01",X"85",X"43",X"4C",
X"74",X"F0",X"42",X"F8",X"A1",X"F8",X"C3",X"F8",X"20",X"2A",X"F0",X"20",X"06",X"F3",X"A2",X"00",
X"8A",X"85",X"04",X"95",X"0C",X"E8",X"E0",X"0B",X"D0",X"F9",X"60",X"20",X"68",X"F7",X"A0",X"20",
X"A9",X"24",X"20",X"53",X"F7",X"A9",X"D2",X"85",X"2F",X"A9",X"F5",X"85",X"30",X"A9",X"00",X"85",
X"25",X"A9",X"00",X"85",X"29",X"A9",X"08",X"85",X"2A",X"20",X"A4",X"F5",X"A5",X"22",X"C9",X"FF",
X"F0",X"06",X"20",X"B8",X"F5",X"4C",X"F9",X"F3",X"20",X"68",X"F7",X"A9",X"00",X"85",X"3E",X"4C",
X"23",X"F0",X"20",X"68",X"F7",X"A0",X"0C",X"A9",X"10",X"20",X"53",X"F7",X"A9",X"07",X"85",X"2F",
X"A9",X"F6",X"85",X"30",X"A9",X"00",X"85",X"25",X"A9",X"02",X"85",X"29",X"A9",X"09",X"85",X"2A",
X"20",X"A4",X"F5",X"A5",X"22",X"C9",X"FF",X"F0",X"06",X"20",X"B8",X"F5",X"4C",X"30",X"F4",X"20",
X"68",X"F7",X"A9",X"00",X"85",X"3E",X"4C",X"23",X"F0",X"20",X"68",X"F7",X"A0",X"24",X"A9",X"2A",
X"20",X"53",X"F7",X"A9",X"10",X"85",X"27",X"A9",X"0F",X"85",X"22",X"A9",X"57",X"85",X"2B",X"A9",
X"74",X"85",X"2D",X"A5",X"2B",X"38",X"E9",X"0F",X"85",X"2B",X"A5",X"2D",X"38",X"E9",X"06",X"85",
X"2D",X"20",X"75",X"F7",X"A9",X"09",X"85",X"21",X"20",X"83",X"F7",X"E6",X"21",X"20",X"83",X"F7",
X"A0",X"02",X"20",X"8E",X"F7",X"E6",X"2B",X"E6",X"2D",X"E6",X"2D",X"E6",X"2D",X"20",X"75",X"F7",
X"A0",X"01",X"20",X"8E",X"F7",X"A5",X"27",X"29",X"01",X"F0",X"02",X"C6",X"22",X"C6",X"27",X"F0",
X"03",X"4C",X"63",X"F4",X"20",X"68",X"F7",X"A9",X"00",X"85",X"3E",X"4C",X"23",X"F0",X"20",X"68",
X"F7",X"A0",X"10",X"A9",X"14",X"20",X"53",X"F7",X"A9",X"03",X"85",X"27",X"85",X"23",X"A9",X"02",
X"85",X"29",X"A9",X"09",X"85",X"2A",X"A9",X"07",X"85",X"22",X"20",X"B8",X"F5",X"E6",X"22",X"A5",
X"22",X"C9",X"0F",X"D0",X"F5",X"A9",X"00",X"85",X"22",X"20",X"B8",X"F5",X"A0",X"0F",X"20",X"8E",
X"F7",X"C6",X"27",X"D0",X"E1",X"20",X"68",X"F7",X"A9",X"00",X"85",X"3E",X"4C",X"23",X"F0",X"20",
X"68",X"F7",X"A0",X"2A",X"A9",X"36",X"20",X"53",X"F7",X"A9",X"01",X"85",X"27",X"A9",X"00",X"85",
X"22",X"20",X"27",X"F5",X"38",X"A5",X"2B",X"E9",X"20",X"85",X"2D",X"20",X"75",X"F7",X"A4",X"21",
X"20",X"8E",X"F7",X"A5",X"2B",X"C9",X"00",X"D0",X"E8",X"C6",X"27",X"D0",X"E0",X"20",X"68",X"F7",
X"A9",X"00",X"85",X"3E",X"4C",X"23",X"F0",X"A6",X"22",X"BD",X"38",X"F5",X"85",X"2B",X"E8",X"BD",
X"38",X"F5",X"85",X"21",X"E8",X"86",X"22",X"60",X"29",X"08",X"2C",X"08",X"2E",X"08",X"34",X"08",
X"37",X"08",X"3A",X"08",X"3F",X"08",X"47",X"08",X"52",X"08",X"58",X"08",X"60",X"08",X"68",X"08",
X"74",X"08",X"80",X"08",X"90",X"08",X"A0",X"08",X"B4",X"08",X"D0",X"08",X"F0",X"08",X"00",X"01",
X"20",X"68",X"F7",X"A0",X"00",X"A9",X"0C",X"20",X"53",X"F7",X"A9",X"E0",X"85",X"2B",X"A9",X"90",
X"85",X"2D",X"A5",X"2B",X"38",X"E9",X"04",X"85",X"2B",X"A5",X"2D",X"38",X"E9",X"04",X"85",X"2D",
X"20",X"75",X"F7",X"A0",X"01",X"20",X"8E",X"F7",X"E6",X"2B",X"E6",X"2D",X"20",X"75",X"F7",X"A0",
X"01",X"20",X"8E",X"F7",X"A5",X"2B",X"C9",X"64",X"D0",X"D8",X"20",X"68",X"F7",X"A9",X"00",X"85",
X"3E",X"4C",X"23",X"F0",X"A6",X"25",X"A4",X"26",X"B1",X"2F",X"95",X"21",X"E6",X"26",X"E8",X"E0",
X"03",X"D0",X"F3",X"A2",X"00",X"86",X"25",X"60",X"A5",X"29",X"8D",X"00",X"80",X"A5",X"21",X"8D",
X"00",X"60",X"A5",X"2A",X"8D",X"00",X"80",X"A5",X"22",X"8D",X"00",X"60",X"A4",X"23",X"20",X"8E",
X"F7",X"60",X"E0",X"0F",X"04",X"E2",X"0F",X"04",X"E0",X"0E",X"03",X"E2",X"0E",X"03",X"E0",X"0D",
X"03",X"E2",X"0D",X"02",X"E0",X"0C",X"02",X"E2",X"0C",X"02",X"20",X"09",X"01",X"22",X"08",X"01",
X"00",X"09",X"01",X"00",X"09",X"01",X"20",X"09",X"01",X"FF",X"0F",X"0A",X"FD",X"0D",X"02",X"FF",
X"0A",X"02",X"FD",X"08",X"02",X"FF",X"FF",X"E0",X"0E",X"0E",X"E2",X"0E",X"0E",X"E0",X"0D",X"0D",
X"E2",X"0D",X"0D",X"E0",X"0C",X"0D",X"E2",X"0C",X"0D",X"E0",X"0B",X"0D",X"E2",X"0B",X"0D",X"E0",
X"0A",X"07",X"E2",X"0A",X"07",X"E0",X"09",X"07",X"E2",X"07",X"03",X"DE",X"08",X"03",X"DD",X"08",
X"03",X"FF",X"FF",X"A9",X"05",X"85",X"44",X"4C",X"64",X"F6",X"A9",X"04",X"85",X"44",X"4C",X"64",
X"F6",X"A9",X"01",X"85",X"44",X"4C",X"64",X"F6",X"A9",X"00",X"85",X"44",X"4C",X"64",X"F6",X"A9",
X"02",X"85",X"44",X"4C",X"64",X"F6",X"A9",X"06",X"85",X"44",X"4C",X"64",X"F6",X"A9",X"03",X"85",
X"44",X"4C",X"64",X"F6",X"20",X"68",X"F7",X"A5",X"44",X"0A",X"AA",X"BD",X"A8",X"FA",X"85",X"45",
X"BD",X"A9",X"FA",X"85",X"46",X"BD",X"9A",X"FA",X"85",X"47",X"BD",X"9B",X"FA",X"85",X"48",X"A0",
X"00",X"B1",X"45",X"8D",X"00",X"80",X"C8",X"B1",X"45",X"8D",X"00",X"60",X"C8",X"B1",X"45",X"C9",
X"80",X"D0",X"EE",X"C8",X"84",X"26",X"A0",X"00",X"A9",X"00",X"8D",X"00",X"80",X"B1",X"47",X"8D",
X"00",X"60",X"C8",X"A9",X"02",X"8D",X"00",X"80",X"B1",X"47",X"8D",X"00",X"60",X"20",X"C1",X"F6",
X"C8",X"B1",X"47",X"C9",X"81",X"D0",X"E1",X"20",X"68",X"F7",X"A9",X"00",X"85",X"3E",X"4C",X"23",
X"F0",X"98",X"48",X"A4",X"26",X"B1",X"45",X"85",X"21",X"A9",X"FC",X"85",X"22",X"C6",X"22",X"D0",
X"FC",X"C6",X"21",X"D0",X"F8",X"68",X"A8",X"60",X"20",X"68",X"F7",X"A0",X"00",X"A9",X"0C",X"20",
X"53",X"F7",X"A9",X"E3",X"85",X"2B",X"A9",X"A0",X"85",X"2D",X"A5",X"2B",X"38",X"E9",X"04",X"85",
X"2B",X"A5",X"2D",X"38",X"E9",X"03",X"85",X"2D",X"20",X"75",X"F7",X"A0",X"01",X"20",X"8E",X"F7",
X"18",X"E6",X"2B",X"E6",X"2D",X"20",X"75",X"F7",X"A0",X"01",X"20",X"8E",X"F7",X"A5",X"2B",X"C9",
X"30",X"B0",X"D7",X"20",X"68",X"F7",X"A9",X"00",X"85",X"3E",X"4C",X"23",X"F0",X"07",X"F9",X"09",
X"1D",X"0A",X"1D",X"0B",X"00",X"0C",X"40",X"0D",X"09",X"07",X"FD",X"03",X"02",X"06",X"0F",X"07",
X"EF",X"07",X"F9",X"09",X"10",X"0A",X"10",X"0B",X"00",X"0D",X"09",X"0C",X"40",X"07",X"FE",X"01",
X"03",X"07",X"F9",X"03",X"01",X"05",X"01",X"07",X"F9",X"09",X"10",X"0A",X"10",X"0B",X"00",X"0C",
X"37",X"0D",X"09",X"85",X"31",X"B9",X"1D",X"F7",X"8D",X"00",X"80",X"C8",X"B9",X"1D",X"F7",X"8D",
X"00",X"60",X"C8",X"C4",X"31",X"D0",X"EE",X"60",X"A9",X"00",X"A2",X"10",X"95",X"21",X"CA",X"10",
X"FB",X"20",X"4A",X"F0",X"60",X"A2",X"05",X"B5",X"29",X"8E",X"00",X"80",X"8D",X"00",X"60",X"CA",
X"10",X"F5",X"60",X"A5",X"21",X"8D",X"00",X"80",X"A5",X"22",X"8D",X"00",X"60",X"60",X"A9",X"F0",
X"85",X"32",X"20",X"99",X"F7",X"88",X"D0",X"F6",X"60",X"A2",X"00",X"CA",X"D0",X"FD",X"C6",X"32",
X"10",X"F9",X"60",X"44",X"20",X"47",X"0E",X"00",X"0A",X"47",X"28",X"45",X"10",X"44",X"10",X"45",
X"20",X"49",X"0E",X"00",X"0A",X"49",X"28",X"47",X"10",X"45",X"10",X"47",X"20",X"4B",X"0E",X"00",
X"0A",X"4B",X"28",X"49",X"10",X"4B",X"10",X"50",X"18",X"47",X"08",X"49",X"18",X"47",X"08",X"00",
X"40",X"00",X"FF",X"FF",X"40",X"20",X"44",X"0E",X"00",X"0A",X"44",X"28",X"42",X"10",X"40",X"10",
X"42",X"20",X"45",X"0E",X"00",X"0A",X"45",X"28",X"44",X"10",X"42",X"10",X"44",X"20",X"47",X"0E",
X"00",X"0A",X"47",X"28",X"45",X"10",X"47",X"10",X"47",X"18",X"44",X"08",X"45",X"18",X"44",X"08",
X"00",X"40",X"00",X"FF",X"30",X"10",X"00",X"10",X"34",X"10",X"00",X"10",X"37",X"10",X"00",X"10",
X"40",X"10",X"00",X"10",X"32",X"10",X"00",X"10",X"35",X"10",X"00",X"10",X"39",X"10",X"00",X"10",
X"42",X"10",X"00",X"10",X"3B",X"10",X"00",X"10",X"32",X"10",X"00",X"10",X"35",X"10",X"00",X"10",
X"37",X"10",X"00",X"10",X"40",X"10",X"00",X"10",X"39",X"10",X"00",X"10",X"37",X"10",X"00",X"30",
X"00",X"FF",X"44",X"2A",X"00",X"02",X"37",X"09",X"00",X"02",X"39",X"09",X"00",X"0D",X"40",X"09",
X"00",X"02",X"45",X"2A",X"00",X"02",X"44",X"2A",X"00",X"02",X"42",X"1F",X"00",X"02",X"41",X"09",
X"00",X"02",X"42",X"09",X"00",X"02",X"00",X"16",X"49",X"2A",X"00",X"02",X"47",X"09",X"00",X"02",
X"45",X"1F",X"00",X"02",X"44",X"09",X"00",X"02",X"00",X"16",X"47",X"14",X"00",X"02",X"47",X"1D",
X"00",X"04",X"47",X"09",X"00",X"02",X"49",X"2A",X"00",X"02",X"4B",X"2A",X"00",X"02",X"50",X"1F",
X"00",X"02",X"47",X"09",X"00",X"02",X"4B",X"1D",X"00",X"04",X"50",X"09",X"00",X"5A",X"00",X"FF",
X"FF",X"00",X"58",X"42",X"2A",X"00",X"02",X"40",X"2A",X"00",X"B2",X"44",X"14",X"00",X"02",X"44",
X"1D",X"00",X"04",X"44",X"09",X"00",X"02",X"45",X"2A",X"00",X"02",X"47",X"2A",X"00",X"4F",X"00",
X"FF",X"00",X"FF",X"30",X"24",X"00",X"08",X"30",X"24",X"00",X"08",X"32",X"24",X"00",X"08",X"34",
X"24",X"00",X"08",X"35",X"24",X"00",X"08",X"35",X"24",X"00",X"08",X"35",X"24",X"00",X"08",X"35",
X"24",X"00",X"08",X"34",X"24",X"00",X"08",X"34",X"24",X"00",X"08",X"32",X"24",X"00",X"08",X"32",
X"24",X"00",X"08",X"30",X"24",X"00",X"8C",X"00",X"FF",X"4A",X"0D",X"00",X"05",X"4A",X"0D",X"00",
X"05",X"4B",X"0D",X"00",X"05",X"4B",X"0D",X"00",X"05",X"50",X"0D",X"00",X"05",X"50",X"0D",X"00",
X"05",X"51",X"0D",X"00",X"05",X"51",X"0D",X"00",X"05",X"52",X"0E",X"00",X"16",X"49",X"0E",X"00",
X"16",X"52",X"0E",X"00",X"16",X"49",X"0E",X"00",X"16",X"50",X"0D",X"00",X"05",X"55",X"0D",X"00",
X"05",X"54",X"0D",X"00",X"05",X"52",X"0D",X"00",X"05",X"50",X"0D",X"00",X"05",X"4B",X"0D",X"00",
X"05",X"50",X"0D",X"00",X"05",X"4B",X"0D",X"00",X"05",X"50",X"0E",X"00",X"16",X"55",X"0E",X"00",
X"16",X"50",X"0E",X"00",X"16",X"55",X"0E",X"00",X"16",X"50",X"0E",X"00",X"16",X"59",X"0E",X"00",
X"16",X"50",X"0E",X"00",X"16",X"59",X"0E",X"00",X"16",X"4A",X"10",X"00",X"14",X"57",X"0D",X"00",
X"17",X"49",X"10",X"00",X"14",X"55",X"0D",X"00",X"17",X"4A",X"10",X"00",X"14",X"57",X"0D",X"00",
X"17",X"49",X"10",X"00",X"14",X"55",X"0D",X"00",X"17",X"FF",X"00",X"20",X"00",X"90",X"00",X"90",
X"00",X"90",X"00",X"90",X"00",X"90",X"00",X"90",X"00",X"98",X"00",X"F0",X"3A",X"0D",X"00",X"05",
X"3A",X"0D",X"00",X"05",X"39",X"0D",X"00",X"05",X"39",X"0D",X"00",X"05",X"38",X"0D",X"00",X"05",
X"38",X"0D",X"00",X"05",X"37",X"0D",X"00",X"05",X"37",X"0D",X"00",X"05",X"36",X"24",X"00",X"12",
X"36",X"0D",X"00",X"05",X"36",X"1C",X"00",X"2C",X"35",X"12",X"00",X"12",X"37",X"12",X"00",X"12",
X"39",X"0D",X"00",X"05",X"38",X"0D",X"00",X"05",X"39",X"0D",X"00",X"05",X"38",X"0D",X"00",X"05",
X"39",X"24",X"00",X"12",X"39",X"0D",X"00",X"05",X"39",X"1C",X"00",X"2C",X"35",X"24",X"00",X"12",
X"35",X"0D",X"00",X"05",X"35",X"1C",X"00",X"2C",X"37",X"12",X"00",X"36",X"35",X"12",X"00",X"36",
X"37",X"12",X"00",X"36",X"35",X"12",X"00",X"36",X"00",X"F0",X"67",X"0D",X"00",X"05",X"64",X"0D",
X"00",X"05",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"00",X"48",X"67",X"0D",X"00",X"05",
X"64",X"0D",X"00",X"05",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"00",X"48",X"67",X"0D",
X"00",X"05",X"64",X"0D",X"00",X"05",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"00",X"48",
X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",
X"00",X"48",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"67",X"0D",X"00",X"05",X"64",X"0D",
X"00",X"05",X"00",X"48",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"67",X"0D",X"00",X"05",
X"64",X"0D",X"00",X"05",X"00",X"48",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"67",X"0D",
X"00",X"05",X"64",X"0D",X"00",X"05",X"00",X"48",X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",
X"67",X"0D",X"00",X"05",X"64",X"0D",X"00",X"05",X"00",X"48",X"12",X"FB",X"3B",X"FB",X"49",X"FB",
X"58",X"FB",X"DF",X"FB",X"EC",X"FB",X"15",X"FC",X"B6",X"FA",X"C2",X"FA",X"D6",X"FA",X"E2",X"FA",
X"EE",X"FA",X"FA",X"FA",X"06",X"FB",X"07",X"F8",X"08",X"0F",X"09",X"0F",X"01",X"00",X"03",X"01",
X"80",X"11",X"07",X"F8",X"08",X"10",X"09",X"10",X"0A",X"10",X"01",X"01",X"03",X"01",X"0B",X"04",
X"0C",X"02",X"0D",X"0F",X"80",X"03",X"07",X"F8",X"08",X"0F",X"09",X"0F",X"01",X"00",X"03",X"00",
X"80",X"0A",X"07",X"F8",X"08",X"0F",X"09",X"0F",X"01",X"00",X"03",X"00",X"80",X"0A",X"07",X"F8",
X"08",X"0D",X"09",X"0B",X"01",X"01",X"03",X"03",X"80",X"08",X"07",X"F8",X"08",X"0F",X"09",X"0F",
X"01",X"00",X"03",X"00",X"80",X"08",X"07",X"F8",X"08",X"0F",X"09",X"0F",X"01",X"00",X"03",X"00",
X"80",X"0A",X"7E",X"FA",X"00",X"00",X"64",X"92",X"00",X"00",X"54",X"52",X"00",X"00",X"3F",X"FA",
X"00",X"00",X"54",X"52",X"00",X"00",X"64",X"92",X"00",X"00",X"7E",X"FA",X"00",X"00",X"64",X"92",
X"00",X"00",X"43",X"0C",X"00",X"00",X"3F",X"FA",X"3F",X"FA",X"81",X"43",X"2F",X"43",X"2F",X"43",
X"2F",X"43",X"2F",X"43",X"2F",X"43",X"2F",X"43",X"81",X"C9",X"C9",X"00",X"00",X"C9",X"C9",X"00",
X"00",X"A9",X"A9",X"00",X"00",X"64",X"64",X"81",X"A9",X"54",X"96",X"4B",X"86",X"43",X"A9",X"54",
X"96",X"4B",X"86",X"43",X"7F",X"3F",X"A9",X"54",X"96",X"4B",X"86",X"43",X"7E",X"3F",X"A9",X"54",
X"96",X"4B",X"86",X"43",X"A9",X"54",X"96",X"4B",X"86",X"43",X"7F",X"3F",X"A9",X"54",X"96",X"4B",
X"86",X"43",X"7E",X"3F",X"A9",X"54",X"96",X"4B",X"86",X"43",X"A9",X"54",X"96",X"4B",X"86",X"43",
X"7F",X"3F",X"A9",X"54",X"96",X"4B",X"86",X"43",X"7E",X"3F",X"A9",X"54",X"96",X"4B",X"86",X"43",
X"A9",X"54",X"96",X"4B",X"86",X"43",X"7F",X"3F",X"A9",X"54",X"96",X"4B",X"86",X"43",X"7E",X"3F",
X"A9",X"54",X"96",X"4B",X"86",X"43",X"A9",X"54",X"96",X"4B",X"86",X"43",X"7F",X"3F",X"A9",X"54",
X"96",X"4B",X"86",X"43",X"7E",X"3F",X"A9",X"54",X"96",X"4B",X"86",X"43",X"A9",X"54",X"96",X"4B",
X"86",X"43",X"7F",X"3F",X"A9",X"54",X"96",X"4B",X"86",X"43",X"7E",X"3F",X"00",X"00",X"81",X"FD",
X"FD",X"FD",X"FD",X"FD",X"FD",X"A9",X"A9",X"A9",X"A9",X"A9",X"A9",X"81",X"54",X"2A",X"54",X"2A",
X"00",X"00",X"54",X"2A",X"54",X"2A",X"00",X"00",X"64",X"32",X"64",X"32",X"00",X"00",X"64",X"32",
X"64",X"32",X"00",X"00",X"7E",X"3F",X"7E",X"3F",X"00",X"00",X"7E",X"3F",X"7E",X"3F",X"00",X"00",
X"7E",X"3F",X"7E",X"3F",X"81",X"A9",X"54",X"00",X"00",X"3F",X"2A",X"00",X"00",X"3F",X"2A",X"00",
X"00",X"3F",X"2A",X"00",X"00",X"3F",X"2A",X"00",X"00",X"3F",X"2A",X"00",X"00",X"3F",X"2A",X"00",
X"00",X"3F",X"2A",X"81",X"4C",X"EC",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"55",X"F2",X"95",X"00",X"C8",X"E8",X"D0",
X"F7",X"B9",X"55",X"F2",X"9D",X"00",X"01",X"C8",X"E8",X"D0",X"F6",X"B5",X"00",X"D9",X"55",X"F2",
X"D0",X"D2",X"C8",X"E8",X"D0",X"F5",X"BD",X"00",X"01",X"D9",X"55",X"F2",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"49",X"A9",X"02",
X"85",X"4A",X"BD",X"55",X"F2",X"91",X"49",X"E8",X"C8",X"D0",X"F7",X"E6",X"4A",X"A5",X"4A",X"C9",
X"04",X"90",X"EF",X"A9",X"00",X"85",X"49",X"A9",X"02",X"85",X"4A",X"B1",X"49",X"DD",X"55",X"F2",
X"D0",X"4A",X"E8",X"C8",X"D0",X"F5",X"E6",X"4A",X"A5",X"4A",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"D4",X"FC",X"8D",X"00",X"40",X"E8",X"BD",X"D4",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"03",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"0D",
X"FD",X"8D",X"00",X"40",X"C8",X"B9",X"0D",X"FD",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"EC",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"00",X"F0",X"37",X"FC",X"06",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

@@ -0,0 +1,470 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity fg_sp_graphx_1 is
port (
clk : in std_logic;
addr : in std_logic_vector(12 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of fg_sp_graphx_1 is
type rom is array(0 to 7167) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"1C",X"3E",X"61",X"41",X"43",X"3E",X"1C",
X"00",X"00",X"40",X"42",X"7F",X"7F",X"40",X"40",X"00",X"62",X"73",X"79",X"59",X"5D",X"4F",X"46",
X"00",X"20",X"61",X"49",X"4D",X"4F",X"7B",X"31",X"00",X"18",X"1C",X"16",X"13",X"7F",X"7F",X"10",
X"00",X"27",X"67",X"45",X"45",X"45",X"7D",X"38",X"00",X"3C",X"7E",X"4B",X"49",X"49",X"79",X"30",
X"00",X"03",X"03",X"71",X"79",X"0D",X"07",X"03",X"00",X"36",X"4F",X"4D",X"59",X"59",X"76",X"30",
X"00",X"06",X"4F",X"49",X"49",X"69",X"3F",X"1E",X"00",X"7C",X"7E",X"13",X"11",X"13",X"7E",X"7C",
X"00",X"7F",X"7F",X"49",X"49",X"49",X"7F",X"36",X"00",X"1C",X"3E",X"63",X"41",X"41",X"63",X"22",
X"00",X"7F",X"7F",X"41",X"41",X"63",X"3E",X"1C",X"00",X"00",X"7F",X"7F",X"49",X"49",X"49",X"41",
X"00",X"7F",X"7F",X"09",X"09",X"09",X"09",X"01",X"00",X"1C",X"3E",X"63",X"41",X"49",X"79",X"79",
X"00",X"7F",X"7F",X"08",X"08",X"08",X"7F",X"7F",X"00",X"00",X"41",X"41",X"7F",X"7F",X"41",X"41",
X"00",X"20",X"60",X"40",X"40",X"40",X"7F",X"3F",X"00",X"7F",X"7F",X"18",X"3C",X"76",X"63",X"41",
X"00",X"00",X"7F",X"7F",X"40",X"40",X"40",X"40",X"00",X"7F",X"7F",X"0E",X"1C",X"0E",X"7F",X"7F",
X"00",X"7F",X"7F",X"0E",X"1C",X"38",X"7F",X"7F",X"00",X"3E",X"7F",X"41",X"41",X"41",X"7F",X"3E",
X"00",X"7F",X"7F",X"11",X"11",X"11",X"1F",X"0E",X"00",X"3E",X"7F",X"41",X"51",X"71",X"3F",X"5E",
X"00",X"7F",X"7F",X"11",X"31",X"79",X"6F",X"4E",X"00",X"26",X"6F",X"49",X"49",X"4B",X"7A",X"30",
X"00",X"00",X"01",X"01",X"7F",X"7F",X"01",X"01",X"00",X"3F",X"7F",X"40",X"40",X"40",X"7F",X"3F",
X"00",X"0F",X"1F",X"38",X"70",X"38",X"1F",X"0F",X"00",X"1F",X"7F",X"38",X"1C",X"38",X"7F",X"1F",
X"00",X"63",X"77",X"3E",X"1C",X"3E",X"77",X"63",X"00",X"00",X"03",X"0F",X"78",X"78",X"0F",X"03",
X"00",X"61",X"71",X"79",X"5D",X"4F",X"47",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",
X"7E",X"12",X"1E",X"00",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",X"7E",X"12",X"2E",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"FF",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"FF",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"FF",X"00",X"FF",X"01",X"01",X"01",X"01",X"01",X"01",
X"00",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"00",X"7F",X"40",X"40",X"40",X"40",X"40",X"40",
X"7F",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"FF",X"81",X"81",X"81",X"81",X"81",X"81",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"00",X"00",X"00",X"00",X"02",X"02",X"10",X"00",X"22",X"00",X"10",X"04",X"00",X"00",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"80",X"00",X"00",X"10",X"00",X"48",X"00",X"00",X"20",X"00",X"08",X"40",X"00",X"10",X"04",
X"00",X"00",X"00",X"01",X"00",X"10",X"00",X"00",X"02",X"00",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"80",X"00",X"00",X"00",X"00",
X"02",X"00",X"24",X"00",X"08",X"41",X"04",X"00",X"09",X"01",X"04",X"90",X"04",X"20",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"00",X"00",
X"20",X"80",X"00",X"00",X"00",X"00",X"80",X"00",X"10",X"80",X"00",X"00",X"20",X"00",X"80",X"00",
X"00",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"10",X"80",X"04",X"00",X"20",X"05",X"00",X"00",X"04",X"00",X"00",X"00",X"00",X"00",
X"10",X"00",X"41",X"08",X"00",X"20",X"81",X"00",X"10",X"00",X"00",X"82",X"00",X"04",X"00",X"20",
X"00",X"00",X"24",X"00",X"04",X"01",X"10",X"00",X"02",X"00",X"00",X"00",X"00",X"01",X"00",X"00",
X"04",X"40",X"08",X"20",X"02",X"00",X"20",X"04",X"80",X"01",X"08",X"20",X"02",X"00",X"04",X"01",
X"00",X"00",X"00",X"00",X"01",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"00",X"00",
X"00",X"00",X"10",X"00",X"04",X"00",X"01",X"00",X"04",X"00",X"00",X"09",X"00",X"02",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"C6",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"FE",X"92",X"F6",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"DE",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"DE",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"DE",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"50",X"60",X"F0",X"D4",X"5A",X"88",X"A8",X"50",X"A0",X"CC",X"70",X"78",X"40",X"00",
X"00",X"00",X"00",X"00",X"01",X"02",X"07",X"04",X"06",X"04",X"03",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"38",X"6E",X"76",X"7F",X"5D",X"7F",X"77",X"7F",X"5E",X"76",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"F8",X"CC",X"84",X"84",X"84",X"84",X"84",X"84",X"84",X"CC",X"F8",X"20",X"10",X"10",X"E0",
X"30",X"79",X"77",X"EF",X"EF",X"DF",X"DF",X"DF",X"EF",X"EF",X"77",X"79",X"31",X"02",X"01",X"00",
X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"10",X"5C",X"54",X"74",X"10",X"00",
X"00",X"00",X"7C",X"20",X"7C",X"64",X"7C",X"00",X"00",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"E0",
X"00",X"03",X"1F",X"11",X"1B",X"11",X"1F",X"03",X"00",X"00",X"00",X"00",X"00",X"10",X"70",X"80",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"80",X"70",X"10",X"00",X"00",X"00",X"00",X"00",
X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"80",X"60",X"60",X"00",X"00",X"00",
X"00",X"0C",X"02",X"A2",X"12",X"12",X"0C",X"00",X"00",X"00",X"BE",X"00",X"00",X"BE",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"02",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"E6",X"B2",X"9E",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"C6",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"9E",X"92",X"F2",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"E6",X"B2",X"9E",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"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"24",X"FE",X"20",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"FE",X"92",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"FE",X"00",X"FE",X"92",X"F6",X"00",X"FE",X"82",X"FE",X"82",X"FE",X"82",X"FE",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"08",X"1D",X"1F",X"3F",X"3E",X"3E",X"0E",X"04",X"00",X"00",X"00",
X"00",X"04",X"8C",X"9E",X"9C",X"9E",X"1F",X"1F",X"1F",X"1F",X"1B",X"97",X"86",X"46",X"00",X"00",
X"00",X"00",X"00",X"00",X"10",X"08",X"1D",X"1F",X"3F",X"3E",X"3E",X"0E",X"04",X"00",X"00",X"00",
X"00",X"00",X"10",X"0C",X"1C",X"9E",X"9F",X"9F",X"99",X"87",X"07",X"16",X"18",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"10",X"08",X"1A",X"1F",X"3F",X"3E",X"3E",X"0E",X"04",X"00",X"00",X"00",
X"00",X"00",X"00",X"50",X"56",X"56",X"17",X"1B",X"1F",X"1F",X"1F",X"9F",X"86",X"46",X"00",X"00",
X"00",X"00",X"00",X"03",X"3F",X"1F",X"11",X"1B",X"1B",X"11",X"1F",X"3F",X"01",X"00",X"00",X"00",
X"00",X"06",X"03",X"13",X"9F",X"9E",X"94",X"1E",X"1E",X"24",X"2E",X"3F",X"0E",X"07",X"0E",X"0C",
X"00",X"00",X"00",X"01",X"3F",X"1F",X"11",X"1B",X"1B",X"11",X"1F",X"3F",X"03",X"00",X"00",X"00",
X"0C",X"0E",X"07",X"0B",X"3F",X"2E",X"24",X"1E",X"1E",X"94",X"9E",X"9F",X"13",X"03",X"06",X"00",
X"00",X"00",X"00",X"01",X"3F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3F",X"03",X"00",X"00",X"00",
X"0C",X"0E",X"07",X"2B",X"2F",X"2F",X"1F",X"1F",X"1F",X"9F",X"9F",X"9F",X"1B",X"07",X"0E",X"00",
X"00",X"00",X"00",X"03",X"3F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3F",X"01",X"00",X"00",X"00",
X"00",X"0E",X"07",X"1B",X"9F",X"9F",X"9F",X"1F",X"1F",X"1F",X"2F",X"2F",X"2B",X"07",X"0E",X"0C",
X"00",X"00",X"00",X"03",X"3F",X"1F",X"11",X"1B",X"1B",X"11",X"1F",X"3F",X"03",X"00",X"00",X"00",
X"0C",X"0E",X"07",X"1B",X"9F",X"9E",X"94",X"1E",X"1E",X"94",X"9E",X"9F",X"1B",X"07",X"0E",X"0C",
X"00",X"00",X"00",X"03",X"3F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3F",X"03",X"00",X"00",X"00",
X"0C",X"0E",X"07",X"1B",X"9F",X"9F",X"9F",X"1F",X"1F",X"9F",X"9F",X"9F",X"1B",X"07",X"0E",X"0C",
X"00",X"00",X"80",X"80",X"10",X"08",X"1D",X"1F",X"3F",X"3E",X"3E",X"0E",X"04",X"00",X"00",X"00",
X"00",X"00",X"11",X"0F",X"1C",X"9E",X"9F",X"9F",X"99",X"87",X"47",X"76",X"18",X"00",X"00",X"00",
X"00",X"00",X"80",X"03",X"3F",X"1F",X"11",X"1B",X"1B",X"11",X"1F",X"3F",X"03",X"00",X"00",X"00",
X"00",X"01",X"03",X"1F",X"9F",X"9E",X"94",X"1E",X"1E",X"14",X"5E",X"7F",X"1B",X"07",X"0E",X"0C",
X"00",X"80",X"C0",X"83",X"3F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3F",X"03",X"00",X"00",X"00",
X"00",X"00",X"03",X"1F",X"9F",X"9F",X"9F",X"1F",X"1F",X"1F",X"DF",X"DF",X"1B",X"07",X"0E",X"0C",
X"C0",X"C0",X"80",X"83",X"3F",X"1F",X"11",X"1B",X"1B",X"11",X"1F",X"3F",X"83",X"80",X"C0",X"C0",
X"00",X"01",X"03",X"0F",X"8F",X"8F",X"8A",X"0F",X"0F",X"8A",X"8F",X"8F",X"0F",X"03",X"01",X"00",
X"C0",X"C0",X"80",X"83",X"3F",X"1F",X"11",X"1B",X"1B",X"11",X"1F",X"3F",X"83",X"80",X"C0",X"C0",
X"00",X"01",X"03",X"0F",X"8F",X"8F",X"8A",X"0F",X"0F",X"8A",X"8F",X"8F",X"0F",X"03",X"01",X"00",
X"00",X"F0",X"E0",X"80",X"01",X"02",X"00",X"03",X"00",X"00",X"02",X"01",X"80",X"E0",X"F0",X"00",
X"00",X"01",X"03",X"0F",X"8F",X"8F",X"8A",X"0F",X"0F",X"8A",X"8F",X"8F",X"0F",X"03",X"01",X"00",
X"60",X"E0",X"C0",X"C0",X"80",X"80",X"00",X"80",X"80",X"00",X"80",X"80",X"C0",X"C0",X"E0",X"60",
X"00",X"00",X"01",X"01",X"00",X"0E",X"0E",X"00",X"00",X"0E",X"0E",X"00",X"01",X"01",X"00",X"00",
X"80",X"C0",X"0C",X"0E",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"0E",X"0C",X"C0",X"C0",X"80",
X"00",X"00",X"03",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"00",X"00",
X"00",X"00",X"30",X"60",X"40",X"00",X"00",X"00",X"00",X"00",X"40",X"60",X"30",X"00",X"00",X"00",
X"04",X"0C",X"3C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"3C",X"0C",X"04",
X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"80",X"80",X"80",X"00",
X"08",X"0C",X"30",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"0C",X"00",X"00",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"00",X"00",X"00",X"00",
X"80",X"80",X"80",X"80",X"00",X"10",X"10",X"10",X"08",X"04",X"00",X"00",X"40",X"20",X"10",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"0C",X"00",X"00",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"08",X"10",X"10",X"20",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"80",X"84",X"88",X"80",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"0C",X"00",X"00",X"0C",X"00",X"00",X"00",X"00",X"00",
X"00",X"10",X"20",X"40",X"00",X"01",X"04",X"08",X"00",X"00",X"00",X"00",X"80",X"80",X"80",X"80",
X"00",X"00",X"00",X"00",X"00",X"0C",X"00",X"00",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"80",X"80",X"80",X"80",X"00",X"04",X"10",X"10",X"00",X"00",X"00",X"00",X"40",X"20",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"80",X"80",X"80",X"80",X"00",X"00",X"00",X"00",X"08",X"04",X"01",X"00",X"40",X"20",X"10",X"00",
X"00",X"00",X"00",X"00",X"00",X"20",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"10",X"20",X"40",X"00",X"00",X"00",X"00",X"00",X"08",X"06",X"00",X"80",X"80",X"80",X"80",
X"00",X"00",X"00",X"00",X"40",X"50",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"80",
X"00",X"00",X"00",X"80",X"80",X"80",X"40",X"00",X"00",X"00",X"00",X"00",X"02",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"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"02",X"01",X"02",X"20",X"40",X"40",X"00",X"00",X"00",X"01",X"02",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"90",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"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"00",X"28",X"00",X"14",X"40",X"00",X"00",X"00",X"00",X"00",
X"40",X"40",X"80",X"80",X"00",X"02",X"00",X"01",X"00",X"00",X"00",X"00",X"80",X"80",X"40",X"40",
X"00",X"00",X"48",X"00",X"08",X"20",X"0B",X"10",X"49",X"02",X"14",X"80",X"00",X"12",X"00",X"40",
X"82",X"80",X"80",X"80",X"02",X"00",X"03",X"00",X"00",X"01",X"00",X"00",X"80",X"80",X"80",X"80",
X"E0",X"F0",X"FC",X"FE",X"F2",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FE",X"FE",X"FC",X"F8",X"E0",
X"01",X"07",X"0F",X"1F",X"1F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"1F",X"1F",X"0F",X"07",X"01",
X"C0",X"80",X"C0",X"C0",X"80",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"E0",X"F8",X"FC",X"FE",X"FE",X"F3",X"FF",X"FF",X"FF",X"FF",X"F3",X"FE",X"FE",X"FC",X"F8",X"E0",
X"01",X"07",X"0F",X"1F",X"1F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"1F",X"1F",X"0F",X"07",X"01",
X"C0",X"C0",X"C0",X"C0",X"C0",X"80",X"C0",X"C0",X"C0",X"C0",X"80",X"C0",X"C0",X"C0",X"C0",X"C0",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"E0",X"F8",X"FC",X"FE",X"FE",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FE",X"FE",X"FC",X"F8",X"E0",
X"01",X"07",X"0F",X"1F",X"1F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"1F",X"1F",X"0F",X"07",X"01",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"00",X"C0",X"E0",X"F0",X"F0",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F0",X"F0",X"E0",X"C0",X"00",
X"07",X"1F",X"3F",X"7E",X"7E",X"FA",X"FC",X"FF",X"FF",X"FC",X"FA",X"7E",X"7E",X"3F",X"1F",X"07",
X"00",X"00",X"00",X"80",X"80",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"80",X"80",X"00",X"00",X"00",
X"18",X"3E",X"7F",X"7B",X"FB",X"FB",X"F7",X"FF",X"FF",X"F7",X"FB",X"FB",X"7B",X"7F",X"3E",X"18",
X"00",X"00",X"00",X"00",X"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"70",X"70",X"D8",X"D8",X"E8",X"E8",X"F8",X"F8",X"E8",X"E8",X"D8",X"D8",X"70",X"70",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"40",X"80",X"88",X"00",X"A0",X"80",X"A0",X"00",X"88",X"80",X"A0",X"A0",X"88",X"00",X"A0",X"48",
X"00",X"80",X"E0",X"F0",X"F0",X"78",X"F8",X"F8",X"F8",X"F8",X"78",X"F0",X"F0",X"E0",X"80",X"00",
X"00",X"07",X"1F",X"3F",X"3E",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3E",X"3F",X"1F",X"07",X"00",
X"25",X"E0",X"FC",X"FD",X"AC",X"1E",X"BE",X"FE",X"FE",X"BE",X"1E",X"AC",X"FD",X"F8",X"E2",X"01",
X"10",X"01",X"07",X"2F",X"0E",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"0E",X"0F",X"07",X"09",X"00",
X"C0",X"F0",X"7C",X"3E",X"3F",X"3F",X"7F",X"FF",X"FF",X"FE",X"FC",X"F0",X"E0",X"C0",X"80",X"80",
X"07",X"18",X"10",X"20",X"28",X"A8",X"B6",X"F8",X"FF",X"3F",X"3F",X"3F",X"1F",X"0F",X"07",X"03",
X"C0",X"60",X"20",X"10",X"18",X"1C",X"3E",X"7F",X"FF",X"FF",X"FF",X"FF",X"FE",X"F8",X"E0",X"C0",
X"03",X"84",X"98",X"B0",X"70",X"34",X"3B",X"3C",X"3F",X"3F",X"7F",X"5F",X"DF",X"1F",X"0F",X"03",
X"80",X"C0",X"F0",X"FC",X"FE",X"7F",X"BF",X"BF",X"3F",X"3F",X"7F",X"FE",X"F0",X"E0",X"C0",X"00",
X"03",X"07",X"1F",X"1F",X"38",X"F3",X"60",X"20",X"20",X"20",X"70",X"38",X"3F",X"1F",X"0F",X"07",
X"C0",X"E0",X"F8",X"FC",X"7E",X"BE",X"5F",X"5F",X"1E",X"1E",X"3C",X"7C",X"F8",X"E0",X"C0",X"80",
X"03",X"0F",X"0F",X"1F",X"3C",X"79",X"30",X"30",X"30",X"70",X"F8",X"3C",X"1F",X"07",X"03",X"01",
X"80",X"C0",X"F0",X"FC",X"FC",X"F8",X"F8",X"F8",X"F8",X"FA",X"F9",X"FC",X"F0",X"E0",X"C0",X"00",
X"03",X"07",X"1F",X"1F",X"3F",X"FF",X"7F",X"3F",X"3F",X"3F",X"7F",X"3F",X"3F",X"1F",X"0F",X"07",
X"C0",X"E0",X"F8",X"FC",X"FE",X"FE",X"FF",X"FF",X"FE",X"FE",X"FC",X"FC",X"F8",X"E0",X"C0",X"80",
X"03",X"0F",X"0F",X"1F",X"3F",X"7F",X"3F",X"3F",X"3F",X"7F",X"FF",X"3F",X"1F",X"07",X"03",X"01",
X"00",X"80",X"E0",X"F0",X"F0",X"78",X"38",X"38",X"38",X"38",X"78",X"F0",X"E0",X"C0",X"00",X"00",
X"8E",X"9F",X"7F",X"7F",X"F8",X"F0",X"E0",X"E8",X"E8",X"E4",X"F0",X"F8",X"FF",X"7F",X"BF",X"9C",
X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"00",X"00",
X"8C",X"9E",X"7F",X"7F",X"F8",X"F0",X"E0",X"E8",X"E8",X"E4",X"F0",X"F8",X"7F",X"7E",X"9C",X"8C",
X"00",X"00",X"00",X"00",X"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"C0",X"E0",X"E0",X"C0",X"C0",X"80",X"80",X"80",X"80",X"C0",X"C0",X"E0",X"C0",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"40",X"88",X"80",X"80",X"92",X"80",X"08",X"40",X"84",X"88",X"80",X"20",X"84",X"80",X"40",X"40",
X"00",X"00",X"C0",X"A0",X"F8",X"E8",X"7C",X"F8",X"FC",X"E8",X"F8",X"F0",X"40",X"80",X"00",X"00",
X"8E",X"9F",X"7F",X"7F",X"E3",X"C1",X"91",X"90",X"BC",X"90",X"C1",X"E3",X"FF",X"7F",X"BF",X"9C",
X"89",X"C0",X"64",X"DA",X"7C",X"3C",X"96",X"1E",X"9F",X"1B",X"3E",X"7A",X"DE",X"F8",X"60",X"CA",
X"05",X"23",X"07",X"9F",X"FC",X"38",X"32",X"31",X"32",X"30",X"38",X"FC",X"9B",X"0F",X"2F",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"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"C0",X"E0",X"C0",X"C0",X"E4",X"C0",X"C8",X"E2",X"C0",X"C8",X"E2",X"C0",X"C0",X"EA",X"C0",
X"C0",X"EA",X"C0",X"C0",X"E2",X"C8",X"C0",X"E2",X"C8",X"C0",X"E4",X"C0",X"C0",X"E0",X"C0",X"00",
X"80",X"80",X"C0",X"80",X"80",X"C8",X"80",X"90",X"C4",X"80",X"90",X"C4",X"80",X"80",X"D4",X"80",
X"80",X"D4",X"80",X"80",X"C4",X"90",X"80",X"C4",X"90",X"80",X"C8",X"80",X"80",X"C0",X"80",X"00",
X"00",X"00",X"80",X"00",X"00",X"90",X"00",X"20",X"88",X"00",X"20",X"88",X"00",X"00",X"A8",X"00",
X"00",X"A8",X"00",X"00",X"88",X"20",X"00",X"88",X"20",X"00",X"90",X"00",X"00",X"80",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"20",X"00",X"40",X"10",X"00",X"40",X"10",X"00",X"00",X"50",X"00",
X"00",X"50",X"00",X"00",X"10",X"40",X"00",X"10",X"40",X"00",X"20",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"80",X"20",X"00",X"80",X"20",X"00",X"00",X"A0",X"00",
X"00",X"A0",X"00",X"00",X"20",X"80",X"00",X"20",X"80",X"00",X"40",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"40",X"00",X"00",X"40",X"00",X"00",X"40",X"00",
X"00",X"40",X"00",X"00",X"40",X"00",X"00",X"40",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"80",X"00",X"00",X"80",X"00",X"00",X"80",X"00",
X"00",X"80",X"00",X"00",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"00",
X"06",X"06",X"07",X"06",X"06",X"07",X"06",X"06",X"07",X"06",X"06",X"07",X"06",X"06",X"07",X"06",
X"06",X"07",X"06",X"06",X"07",X"06",X"06",X"07",X"06",X"06",X"07",X"06",X"06",X"07",X"06",X"00",
X"0C",X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",
X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",X"0C",X"0E",X"0C",X"00",
X"18",X"18",X"1C",X"18",X"18",X"1C",X"18",X"19",X"1C",X"18",X"19",X"1C",X"18",X"18",X"1D",X"18",
X"18",X"1D",X"18",X"18",X"1C",X"19",X"18",X"1C",X"19",X"18",X"1C",X"18",X"18",X"1C",X"18",X"00",
X"30",X"30",X"38",X"30",X"30",X"39",X"30",X"32",X"38",X"30",X"32",X"38",X"30",X"30",X"3A",X"30",
X"30",X"3A",X"30",X"30",X"38",X"32",X"30",X"38",X"32",X"30",X"39",X"30",X"30",X"38",X"30",X"00",
X"60",X"60",X"70",X"60",X"60",X"72",X"60",X"64",X"71",X"60",X"64",X"71",X"60",X"60",X"75",X"60",
X"60",X"75",X"60",X"60",X"71",X"64",X"60",X"71",X"64",X"60",X"72",X"60",X"60",X"70",X"60",X"00",
X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",
X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"0E",X"06",X"00",
X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",
X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"1C",X"0C",X"00",
X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",
X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"38",X"18",X"00",
X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",
X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"70",X"30",X"00",
X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",
X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"E0",X"60",X"00",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"00",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",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"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",
X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"01",X"00",X"00",
X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",
X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"03",X"01",X"00",
X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",
X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"07",X"03",X"00",
X"00",X"00",X"78",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",
X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"78",X"00",X"00",
X"00",X"00",X"F0",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",
X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F0",X"00",X"00",
X"00",X"00",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",
X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"E0",X"00",X"00",
X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",
X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",X"00",
X"00",X"00",X"80",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"80",X"00",X"00",
X"00",X"00",X"00",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",X"00",
X"00",X"00",X"01",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"01",X"00",X"00",
X"00",X"00",X"03",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",
X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"03",X"00",X"00",
X"00",X"00",X"07",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",
X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"07",X"00",X"00",
X"00",X"00",X"0F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",
X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"0F",X"00",X"00",
X"00",X"00",X"1E",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",
X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"1E",X"00",X"00",
X"00",X"00",X"3C",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",
X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"7E",X"3C",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"70",X"62",X"40",X"42",X"02",X"42",X"06",X"02",X"02",X"06",X"06",X"02",X"06",
X"06",X"06",X"06",X"02",X"06",X"02",X"02",X"02",X"06",X"00",X"02",X"40",X"02",X"38",X"00",X"00",
X"00",X"00",X"00",X"E0",X"C4",X"80",X"84",X"04",X"84",X"0C",X"04",X"04",X"0C",X"0C",X"04",X"0C",
X"0C",X"0C",X"0C",X"04",X"0C",X"04",X"04",X"04",X"0C",X"00",X"04",X"80",X"04",X"70",X"00",X"00",
X"00",X"00",X"00",X"C0",X"88",X"00",X"08",X"08",X"08",X"18",X"08",X"08",X"18",X"18",X"08",X"18",
X"18",X"18",X"18",X"08",X"18",X"08",X"08",X"08",X"18",X"00",X"08",X"00",X"08",X"E0",X"00",X"00",
X"00",X"00",X"00",X"80",X"10",X"00",X"10",X"10",X"10",X"30",X"10",X"10",X"30",X"30",X"10",X"30",
X"30",X"30",X"30",X"10",X"30",X"10",X"10",X"10",X"30",X"00",X"10",X"00",X"10",X"C0",X"00",X"00",
X"00",X"00",X"00",X"00",X"20",X"00",X"20",X"20",X"20",X"60",X"20",X"20",X"60",X"60",X"20",X"60",
X"60",X"60",X"60",X"20",X"60",X"20",X"20",X"20",X"60",X"00",X"20",X"00",X"20",X"80",X"00",X"00",
X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"40",X"40",X"C0",X"40",X"40",X"C0",X"C0",X"40",X"C0",
X"C0",X"C0",X"C0",X"40",X"C0",X"40",X"40",X"40",X"C0",X"00",X"40",X"00",X"40",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"80",X"00",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"00",X"80",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"01",X"01",X"01",X"01",X"00",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"00",X"00",X"00",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"03",X"03",X"02",X"02",X"00",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"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"01",X"00",X"00",
X"00",X"00",X"00",X"07",X"06",X"04",X"04",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"03",X"00",X"00",
X"00",X"00",X"00",X"0E",X"0C",X"08",X"08",X"00",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"08",X"00",X"07",X"00",X"00",
X"00",X"00",X"00",X"1C",X"18",X"10",X"10",X"00",X"10",X"01",X"00",X"00",X"01",X"01",X"00",X"01",
X"01",X"01",X"01",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"10",X"00",X"0E",X"00",X"00",
X"00",X"00",X"00",X"38",X"31",X"20",X"21",X"01",X"21",X"03",X"01",X"01",X"03",X"03",X"01",X"03",
X"03",X"03",X"03",X"01",X"03",X"01",X"01",X"01",X"03",X"00",X"01",X"20",X"01",X"1C",X"00",X"00",
X"D0",X"78",X"BC",X"FE",X"74",X"7A",X"FC",X"F8",X"7C",X"FA",X"FE",X"7C",X"3A",X"7C",X"F4",X"FE",
X"FE",X"F4",X"7C",X"3A",X"7C",X"FE",X"FA",X"7C",X"F8",X"FC",X"7A",X"74",X"FE",X"BC",X"78",X"00",
X"A0",X"F0",X"78",X"FC",X"E8",X"F4",X"F8",X"F0",X"F8",X"F4",X"FC",X"F8",X"74",X"F8",X"E8",X"FC",
X"FC",X"E8",X"F8",X"74",X"F8",X"FC",X"F4",X"F8",X"F0",X"F8",X"F4",X"E8",X"FC",X"78",X"F0",X"00",
X"40",X"E0",X"F0",X"F8",X"D0",X"E8",X"F0",X"E0",X"F0",X"E8",X"F8",X"F0",X"E8",X"F0",X"D0",X"F8",
X"F8",X"D0",X"F0",X"E8",X"F0",X"F8",X"E8",X"F0",X"E0",X"F0",X"E8",X"D0",X"F8",X"F0",X"E0",X"00",
X"80",X"C0",X"E0",X"F0",X"A0",X"D0",X"E0",X"C0",X"E0",X"D0",X"F0",X"E0",X"D0",X"E0",X"A0",X"F0",
X"F0",X"A0",X"E0",X"D0",X"E0",X"F0",X"D0",X"E0",X"C0",X"E0",X"D0",X"A0",X"F0",X"E0",X"C0",X"00",
X"00",X"80",X"C0",X"E0",X"40",X"A0",X"C0",X"80",X"C0",X"A0",X"E0",X"C0",X"A0",X"C0",X"40",X"E0",
X"E0",X"40",X"C0",X"A0",X"C0",X"E0",X"A0",X"C0",X"80",X"C0",X"A0",X"40",X"E0",X"C0",X"80",X"00",
X"00",X"00",X"80",X"C0",X"80",X"40",X"80",X"00",X"80",X"40",X"C0",X"80",X"40",X"80",X"80",X"C0",
X"C0",X"80",X"80",X"40",X"80",X"C0",X"40",X"80",X"00",X"80",X"40",X"80",X"C0",X"80",X"00",X"00",
X"00",X"00",X"00",X"80",X"00",X"80",X"00",X"00",X"00",X"80",X"80",X"00",X"80",X"00",X"00",X"80",
X"80",X"00",X"00",X"80",X"00",X"80",X"80",X"00",X"00",X"00",X"80",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"01",X"00",X"01",X"01",X"00",X"00",X"01",X"01",X"00",X"01",X"01",X"00",X"00",X"00",X"01",X"01",
X"01",X"01",X"00",X"00",X"00",X"01",X"01",X"00",X"01",X"01",X"00",X"00",X"01",X"01",X"00",X"00",
X"03",X"01",X"02",X"03",X"01",X"01",X"03",X"03",X"01",X"03",X"03",X"01",X"00",X"01",X"03",X"03",
X"03",X"03",X"01",X"00",X"01",X"03",X"03",X"01",X"03",X"03",X"01",X"01",X"03",X"02",X"01",X"00",
X"06",X"03",X"05",X"07",X"03",X"03",X"07",X"07",X"03",X"07",X"07",X"03",X"01",X"03",X"07",X"07",
X"07",X"07",X"03",X"01",X"03",X"07",X"07",X"03",X"07",X"07",X"03",X"03",X"07",X"05",X"03",X"00",
X"0D",X"07",X"0B",X"0F",X"07",X"07",X"0F",X"0F",X"07",X"0F",X"0F",X"07",X"03",X"07",X"0F",X"0F",
X"0F",X"0F",X"07",X"03",X"07",X"0F",X"0F",X"07",X"0F",X"0F",X"07",X"07",X"0F",X"0B",X"07",X"00",
X"1A",X"0F",X"17",X"1F",X"0E",X"0F",X"1F",X"1F",X"0F",X"1F",X"1F",X"0F",X"07",X"0F",X"1E",X"1F",
X"1F",X"1E",X"0F",X"07",X"0F",X"1F",X"1F",X"0F",X"1F",X"1F",X"0F",X"0E",X"1F",X"17",X"0F",X"00",
X"34",X"1E",X"2F",X"3F",X"1D",X"1E",X"3F",X"3E",X"1F",X"3E",X"3F",X"1F",X"0E",X"1F",X"3D",X"3F",
X"3F",X"3D",X"1F",X"0E",X"1F",X"3F",X"3E",X"1F",X"3E",X"3F",X"1E",X"1D",X"3F",X"2F",X"1E",X"00",
X"68",X"3C",X"5E",X"7F",X"3A",X"3D",X"7E",X"7C",X"3E",X"7D",X"7F",X"3E",X"1D",X"3E",X"7A",X"7F",
X"7F",X"7A",X"3E",X"1D",X"3E",X"7F",X"7D",X"3E",X"7C",X"7E",X"3D",X"3A",X"7F",X"5E",X"3C",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -0,0 +1,438 @@
library ieee;
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(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 6655) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"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"20",X"38",X"F4",X"FF",X"F8",X"FC",X"F8",X"F0",X"7E",X"30",X"3C",X"00",X"00",
X"00",X"00",X"00",X"18",X"60",X"01",X"03",X"03",X"03",X"03",X"01",X"60",X"18",X"00",X"00",X"00",
X"00",X"00",X"00",X"D0",X"C8",X"C0",X"E2",X"C0",X"C8",X"C0",X"E0",X"C8",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"01",X"07",X"1F",X"7F",X"FF",X"7F",X"1F",X"07",X"01",X"00",X"00",X"00",X"00",
X"00",X"80",X"B0",X"78",X"78",X"78",X"78",X"78",X"78",X"78",X"B0",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"18",X"31",X"31",X"61",X"61",X"61",X"31",X"31",X"18",X"00",X"00",X"00",X"00",X"00",
X"00",X"6C",X"EE",X"EE",X"EE",X"EE",X"EE",X"6C",X"00",X"64",X"F6",X"A2",X"A2",X"82",X"F6",X"64",
X"00",X"54",X"82",X"F6",X"82",X"B2",X"82",X"54",X"00",X"00",X"0C",X"0E",X"0E",X"4E",X"6C",X"00",
X"00",X"00",X"60",X"E0",X"E0",X"E0",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"F0",X"E0",X"E0",X"C0",X"C0",X"C0",X"00",X"00",X"00",X"00",X"00",
X"18",X"18",X"00",X"44",X"60",X"61",X"20",X"20",X"20",X"60",X"64",X"E8",X"C0",X"48",X"0C",X"00",
X"00",X"00",X"00",X"00",X"E0",X"F0",X"E0",X"E0",X"C0",X"C0",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"60",X"60",X"66",X"78",X"18",X"08",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"E0",X"F0",X"E0",X"E0",X"C0",X"C0",X"C0",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"0C",X"4C",X"68",X"69",X"28",X"24",X"20",X"20",X"60",X"60",X"60",X"08",X"0C",X"00",
X"00",X"00",X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",X"00",X"00",X"00",
X"00",X"00",X"0C",X"0C",X"00",X"61",X"61",X"01",X"01",X"11",X"11",X"00",X"00",X"00",X"10",X"10",
X"00",X"00",X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",X"00",X"00",X"00",
X"10",X"10",X"00",X"00",X"00",X"11",X"11",X"01",X"01",X"61",X"61",X"00",X"0C",X"0C",X"00",X"00",
X"00",X"00",X"00",X"00",X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"C0",X"00",X"00",X"00",X"00",
X"10",X"10",X"00",X"00",X"10",X"10",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"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"C0",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"10",X"10",X"00",X"00",X"10",X"10",
X"00",X"00",X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",X"00",X"00",X"00",
X"10",X"10",X"00",X"00",X"00",X"61",X"61",X"01",X"01",X"61",X"61",X"00",X"00",X"00",X"10",X"10",
X"00",X"00",X"00",X"00",X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"C0",X"00",X"00",X"00",X"00",
X"10",X"10",X"00",X"00",X"00",X"60",X"60",X"00",X"00",X"60",X"60",X"00",X"00",X"00",X"10",X"10",
X"00",X"C0",X"00",X"00",X"E0",X"F0",X"E0",X"E0",X"C0",X"C0",X"C0",X"00",X"00",X"00",X"00",X"00",
X"01",X"01",X"00",X"00",X"00",X"01",X"60",X"60",X"66",X"78",X"78",X"68",X"00",X"00",X"00",X"00",
X"E0",X"E0",X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"61",X"61",X"01",X"01",X"21",X"61",X"60",X"00",X"00",X"10",X"10",
X"00",X"70",X"30",X"40",X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"C0",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"60",X"E0",X"C0",X"00",X"00",X"10",X"10",
X"20",X"20",X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",X"00",X"20",X"20",
X"00",X"00",X"00",X"00",X"10",X"70",X"70",X"10",X"10",X"70",X"70",X"10",X"00",X"00",X"00",X"00",
X"20",X"20",X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",X"00",X"20",X"20",
X"00",X"00",X"00",X"00",X"10",X"70",X"70",X"10",X"10",X"70",X"70",X"10",X"00",X"00",X"00",X"00",
X"00",X"00",X"18",X"08",X"F1",X"FA",X"F8",X"FB",X"F8",X"F8",X"FA",X"F1",X"08",X"18",X"00",X"00",
X"00",X"00",X"00",X"00",X"10",X"70",X"70",X"10",X"10",X"70",X"70",X"10",X"00",X"00",X"00",X"00",
X"10",X"10",X"00",X"00",X"78",X"7C",X"7C",X"7C",X"7C",X"7C",X"7C",X"78",X"00",X"00",X"10",X"10",
X"00",X"00",X"00",X"06",X"0F",X"01",X"01",X"07",X"07",X"01",X"01",X"0F",X"06",X"00",X"00",X"00",
X"00",X"00",X"F0",X"F0",X"C0",X"C0",X"80",X"80",X"80",X"C0",X"C0",X"F0",X"F0",X"00",X"00",X"00",
X"03",X"03",X"00",X"07",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"07",X"00",X"03",X"03",
X"00",X"00",X"00",X"00",X"80",X"80",X"00",X"00",X"00",X"00",X"80",X"80",X"00",X"00",X"00",X"00",
X"03",X"03",X"00",X"7F",X"FF",X"FD",X"FC",X"F8",X"F8",X"FC",X"FD",X"FF",X"7F",X"00",X"03",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"30",X"30",X"0F",X"7F",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FF",X"7F",X"00",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"0C",X"00",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",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"0C",X"00",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",X"00",X"00",X"00",X"00",X"00",X"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"4C",X"40",X"40",X"4C",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"4C",X"40",X"40",X"4C",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"50",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"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"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"02",X"01",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"90",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"00",X"00",X"00",
X"00",X"00",X"10",X"24",X"00",X"00",X"10",X"20",X"00",X"10",X"00",X"00",X"08",X"20",X"10",X"40",
X"00",X"00",X"00",X"00",X"C0",X"E0",X"F8",X"D4",X"FC",X"E8",X"B8",X"70",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"0F",X"3D",X"7F",X"FE",X"FF",X"FF",X"7F",X"38",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"14",X"DE",X"F4",X"EF",X"B6",X"FC",X"E8",X"70",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"0C",X"1F",X"3C",X"3F",X"37",X"1A",X"0E",X"03",X"00",X"00",X"00",X"00",
X"E0",X"10",X"04",X"02",X"02",X"01",X"01",X"01",X"01",X"01",X"01",X"02",X"02",X"04",X"18",X"E0",
X"01",X"06",X"08",X"10",X"10",X"20",X"20",X"20",X"20",X"20",X"20",X"10",X"10",X"08",X"06",X"01",
X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"C0",
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"01",
X"E0",X"18",X"04",X"02",X"02",X"01",X"01",X"01",X"01",X"01",X"01",X"02",X"02",X"04",X"18",X"E0",
X"01",X"06",X"08",X"10",X"10",X"20",X"20",X"20",X"20",X"20",X"20",X"10",X"10",X"08",X"06",X"01",
X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"C0",
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"01",
X"E0",X"18",X"04",X"02",X"02",X"01",X"01",X"01",X"01",X"01",X"01",X"02",X"02",X"04",X"18",X"E0",
X"01",X"06",X"08",X"10",X"10",X"20",X"20",X"20",X"20",X"20",X"20",X"10",X"10",X"08",X"06",X"01",
X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"C0",
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"01",
X"00",X"C0",X"20",X"10",X"10",X"08",X"08",X"08",X"08",X"08",X"08",X"10",X"10",X"20",X"C0",X"00",
X"07",X"18",X"20",X"40",X"40",X"80",X"80",X"80",X"80",X"80",X"80",X"40",X"40",X"20",X"18",X"07",
X"00",X"00",X"00",X"80",X"80",X"40",X"40",X"40",X"40",X"40",X"40",X"80",X"80",X"00",X"00",X"00",
X"18",X"26",X"41",X"40",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"40",X"41",X"26",X"18",
X"00",X"00",X"00",X"00",X"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"10",X"10",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"10",X"10",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"80",X"C0",X"F0",X"F0",X"68",X"F8",X"78",X"F8",X"D8",X"78",X"E0",X"F0",X"E0",X"80",X"00",
X"00",X"07",X"1F",X"3F",X"3A",X"7F",X"7F",X"7F",X"7F",X"7B",X"7F",X"3E",X"3F",X"1E",X"07",X"00",
X"00",X"E0",X"B8",X"F4",X"A8",X"1E",X"B4",X"FE",X"DA",X"BC",X"1E",X"AC",X"DC",X"F0",X"A0",X"00",
X"00",X"00",X"07",X"0F",X"0E",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"0E",X"0E",X"07",X"01",X"00",
X"00",X"00",X"80",X"C0",X"C0",X"C0",X"80",X"00",X"04",X"18",X"20",X"00",X"00",X"00",X"00",X"00",
X"00",X"07",X"0F",X"1F",X"1F",X"1F",X"0F",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"80",X"C0",X"E0",X"E0",X"E0",X"C0",X"80",X"00",X"04",X"18",X"20",X"00",X"00",X"00",X"00",
X"00",X"03",X"07",X"0F",X"0F",X"0F",X"07",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"80",X"C0",X"C0",X"C4",X"C0",X"98",X"30",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"07",X"0F",X"1F",X"1F",X"1F",X"1F",X"0F",X"07",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"80",X"C0",X"E0",X"E2",X"E4",X"E8",X"C0",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"03",X"07",X"0F",X"0F",X"0F",X"0F",X"07",X"03",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"02",X"07",X"07",X"07",X"07",X"07",X"07",X"C2",X"00",X"00",X"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"18",X"09",X"02",X"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"00",X"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"0C",X"06",X"03",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"80",X"C0",X"C0",X"C0",X"C0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"07",X"0F",X"1F",X"1F",X"1F",X"1F",X"0F",X"07",X"08",X"06",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"80",X"C0",X"C0",X"C0",X"C0",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"07",X"0F",X"1F",X"1F",X"1F",X"1F",X"0F",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"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"20",X"30",X"78",X"78",X"78",X"78",X"30",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"00",X"00",X"00",X"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"50",X"F8",X"D8",X"FC",X"F4",X"FC",X"D8",X"F8",X"F0",X"C0",X"80",X"00",X"00",
X"8E",X"9F",X"7F",X"7F",X"FF",X"FF",X"FE",X"FF",X"FF",X"FF",X"FF",X"FF",X"FE",X"7F",X"BF",X"9C",
X"80",X"40",X"C0",X"F8",X"FC",X"FC",X"FA",X"FE",X"FF",X"F7",X"FE",X"FE",X"EC",X"78",X"E0",X"C0",
X"01",X"03",X"07",X"97",X"FF",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"FF",X"9F",X"0B",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"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"F0",X"F8",X"F8",X"FC",X"FC",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",
X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FC",X"FC",X"F8",X"F8",X"F0",X"00",
X"C0",X"E0",X"F0",X"F0",X"F8",X"F8",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",
X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"F8",X"F8",X"F0",X"F0",X"E0",X"00",
X"80",X"C0",X"E0",X"E0",X"F0",X"F0",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",
X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F0",X"F0",X"E0",X"E0",X"C0",X"00",
X"00",X"80",X"C0",X"C0",X"E0",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",
X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"E0",X"E0",X"C0",X"C0",X"80",X"00",
X"00",X"00",X"80",X"80",X"C0",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",
X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"C0",X"80",X"80",X"00",X"00",
X"00",X"00",X"00",X"00",X"80",X"80",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",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"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"00",
X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",
X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"00",
X"0E",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",
X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"00",
X"1C",X"1E",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",
X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1E",X"00",
X"38",X"3C",X"3E",X"3E",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",
X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3E",X"3E",X"3C",X"00",
X"70",X"78",X"7C",X"7C",X"7E",X"7E",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",
X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7E",X"7E",X"7C",X"7C",X"78",X"00",
X"1E",X"7E",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",
X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"7E",X"00",
X"3C",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",
X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"00",
X"78",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",
X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"00",
X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",
X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"00",
X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",
X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"00",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"00",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",
X"00",X"01",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"01",X"00",
X"00",X"03",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",
X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"03",X"00",
X"01",X"07",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",
X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"07",X"00",
X"03",X"0F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",
X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"0F",X"00",
X"07",X"1F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",
X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"1F",X"00",
X"0F",X"3F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",
X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3F",X"00",
X"00",X"00",X"78",X"FC",X"CC",X"84",X"84",X"B4",X"B4",X"B4",X"F4",X"B4",X"F4",X"F4",X"F4",X"F4",
X"FC",X"FC",X"F4",X"F4",X"F4",X"F4",X"F4",X"F4",X"B4",X"BC",X"CC",X"FC",X"FC",X"78",X"00",X"00",
X"00",X"00",X"F0",X"F8",X"98",X"08",X"08",X"68",X"68",X"68",X"E8",X"68",X"E8",X"E8",X"E8",X"E8",
X"F8",X"F8",X"E8",X"E8",X"E8",X"E8",X"E8",X"E8",X"68",X"78",X"98",X"F8",X"F8",X"F0",X"00",X"00",
X"00",X"00",X"E0",X"F0",X"30",X"10",X"10",X"D0",X"D0",X"D0",X"D0",X"D0",X"D0",X"D0",X"D0",X"D0",
X"F0",X"F0",X"D0",X"D0",X"D0",X"D0",X"D0",X"D0",X"D0",X"F0",X"30",X"F0",X"F0",X"E0",X"00",X"00",
X"00",X"00",X"C0",X"E0",X"60",X"20",X"20",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",
X"E0",X"E0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"E0",X"60",X"E0",X"E0",X"C0",X"00",X"00",
X"00",X"00",X"80",X"C0",X"C0",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",
X"C0",X"C0",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"C0",X"C0",X"C0",X"C0",X"80",X"00",X"00",
X"00",X"00",X"00",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",X"00",
X"00",X"00",X"01",X"03",X"03",X"02",X"02",X"02",X"02",X"02",X"03",X"02",X"03",X"03",X"03",X"03",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"02",X"02",X"03",X"03",X"03",X"01",X"00",X"00",
X"00",X"00",X"03",X"07",X"06",X"04",X"04",X"05",X"05",X"05",X"07",X"05",X"07",X"07",X"07",X"07",
X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"05",X"05",X"06",X"07",X"07",X"03",X"00",X"00",
X"00",X"00",X"07",X"0F",X"0C",X"08",X"08",X"0B",X"0B",X"0B",X"0F",X"0B",X"0F",X"0F",X"0F",X"0F",
X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0B",X"0B",X"0C",X"0F",X"0F",X"07",X"00",X"00",
X"00",X"00",X"0F",X"1F",X"19",X"10",X"10",X"16",X"16",X"16",X"1E",X"16",X"1E",X"1E",X"1E",X"1E",
X"1F",X"1F",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"16",X"17",X"19",X"1F",X"1F",X"0F",X"00",X"00",
X"00",X"00",X"1E",X"3F",X"33",X"21",X"21",X"2D",X"2D",X"2D",X"3D",X"2D",X"3D",X"3D",X"3D",X"3D",
X"3F",X"3F",X"3D",X"3D",X"3D",X"3D",X"3D",X"3D",X"2D",X"2F",X"33",X"3F",X"3F",X"1E",X"00",X"00",
X"00",X"00",X"3C",X"7E",X"66",X"42",X"42",X"5A",X"5A",X"5A",X"7A",X"5A",X"7A",X"7A",X"7A",X"7A",
X"7E",X"7E",X"7A",X"7A",X"7A",X"7A",X"7A",X"7A",X"5A",X"5E",X"66",X"7E",X"7E",X"3C",X"00",X"00",
X"00",X"00",X"38",X"7C",X"54",X"FE",X"EA",X"FE",X"B6",X"FE",X"EE",X"FE",X"BA",X"EE",X"FE",X"B6",
X"B6",X"FE",X"EE",X"BA",X"FE",X"EE",X"FE",X"B6",X"FE",X"EA",X"FE",X"54",X"7C",X"38",X"00",X"00",
X"00",X"00",X"70",X"F8",X"A8",X"FC",X"D4",X"FC",X"6C",X"FC",X"DC",X"FC",X"74",X"DC",X"FC",X"6C",
X"6C",X"FC",X"DC",X"74",X"FC",X"DC",X"FC",X"6C",X"FC",X"D4",X"FC",X"A8",X"F8",X"70",X"00",X"00",
X"00",X"00",X"E0",X"F0",X"50",X"F8",X"A8",X"F8",X"D8",X"F8",X"B8",X"F8",X"E8",X"B8",X"F8",X"D8",
X"D8",X"F8",X"B8",X"E8",X"F8",X"B8",X"F8",X"D8",X"F8",X"A8",X"F8",X"50",X"F0",X"E0",X"00",X"00",
X"00",X"00",X"C0",X"E0",X"A0",X"F0",X"50",X"F0",X"B0",X"F0",X"70",X"F0",X"D0",X"70",X"F0",X"B0",
X"B0",X"F0",X"70",X"D0",X"F0",X"70",X"F0",X"B0",X"F0",X"50",X"F0",X"A0",X"E0",X"C0",X"00",X"00",
X"00",X"00",X"80",X"C0",X"40",X"E0",X"A0",X"E0",X"60",X"E0",X"E0",X"E0",X"A0",X"E0",X"E0",X"60",
X"60",X"E0",X"E0",X"A0",X"E0",X"E0",X"E0",X"60",X"E0",X"A0",X"E0",X"40",X"C0",X"80",X"00",X"00",
X"00",X"00",X"00",X"80",X"80",X"C0",X"40",X"C0",X"C0",X"C0",X"C0",X"C0",X"40",X"C0",X"C0",X"C0",
X"C0",X"C0",X"C0",X"40",X"C0",X"C0",X"C0",X"C0",X"C0",X"40",X"C0",X"80",X"80",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"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"01",X"01",X"03",X"03",X"03",X"02",X"03",X"03",X"03",X"02",X"03",X"03",X"02",
X"02",X"03",X"03",X"02",X"03",X"03",X"03",X"02",X"03",X"03",X"03",X"01",X"01",X"00",X"00",X"00",
X"00",X"00",X"01",X"03",X"02",X"07",X"07",X"07",X"05",X"07",X"07",X"07",X"05",X"07",X"07",X"05",
X"05",X"07",X"07",X"05",X"07",X"07",X"07",X"05",X"07",X"07",X"07",X"02",X"03",X"01",X"00",X"00",
X"00",X"00",X"03",X"07",X"05",X"0F",X"0E",X"0F",X"0B",X"0F",X"0E",X"0F",X"0B",X"0E",X"0F",X"0B",
X"0B",X"0F",X"0E",X"0B",X"0F",X"0E",X"0F",X"0B",X"0F",X"0E",X"0F",X"05",X"07",X"03",X"00",X"00",
X"00",X"00",X"07",X"0F",X"0A",X"1F",X"1D",X"1F",X"16",X"1F",X"1D",X"1F",X"17",X"1D",X"1F",X"16",
X"16",X"1F",X"1D",X"17",X"1F",X"1D",X"1F",X"16",X"1F",X"1D",X"1F",X"0A",X"0F",X"07",X"00",X"00",
X"00",X"00",X"0E",X"1F",X"15",X"3F",X"3A",X"3F",X"2D",X"3F",X"3B",X"3F",X"2E",X"3B",X"3F",X"2D",
X"2D",X"3F",X"3B",X"2E",X"3F",X"3B",X"3F",X"2D",X"3F",X"3A",X"3F",X"15",X"1F",X"0E",X"00",X"00",
X"00",X"00",X"1C",X"3E",X"2A",X"7F",X"75",X"7F",X"5B",X"7F",X"77",X"7F",X"5D",X"77",X"7F",X"5B",
X"5B",X"7F",X"77",X"5D",X"7F",X"77",X"7F",X"5B",X"7F",X"75",X"7F",X"2A",X"3E",X"1C",X"00",X"00",
X"00",X"7C",X"04",X"04",X"0E",X"08",X"08",X"08",X"08",X"0C",X"08",X"0A",X"08",X"0C",X"0A",X"08",
X"0C",X"08",X"08",X"08",X"0C",X"08",X"0A",X"08",X"0C",X"08",X"0A",X"0C",X"06",X"04",X"7C",X"00",
X"00",X"F8",X"08",X"08",X"1C",X"10",X"10",X"10",X"10",X"18",X"10",X"14",X"10",X"18",X"14",X"10",
X"18",X"10",X"10",X"10",X"18",X"10",X"14",X"10",X"18",X"10",X"14",X"18",X"0C",X"08",X"F8",X"00",
X"00",X"F0",X"10",X"10",X"38",X"20",X"20",X"20",X"20",X"30",X"20",X"28",X"20",X"30",X"28",X"20",
X"30",X"20",X"20",X"20",X"30",X"20",X"28",X"20",X"30",X"20",X"28",X"30",X"18",X"10",X"F0",X"00",
X"00",X"E0",X"20",X"20",X"70",X"40",X"40",X"40",X"40",X"60",X"40",X"50",X"40",X"60",X"50",X"40",
X"60",X"40",X"40",X"40",X"60",X"40",X"50",X"40",X"60",X"40",X"50",X"60",X"30",X"20",X"E0",X"00",
X"00",X"C0",X"40",X"40",X"E0",X"80",X"80",X"80",X"80",X"C0",X"80",X"A0",X"80",X"C0",X"A0",X"80",
X"C0",X"80",X"80",X"80",X"C0",X"80",X"A0",X"80",X"C0",X"80",X"A0",X"C0",X"60",X"40",X"C0",X"00",
X"00",X"80",X"80",X"80",X"C0",X"00",X"00",X"00",X"00",X"80",X"00",X"40",X"00",X"80",X"40",X"00",
X"80",X"00",X"00",X"00",X"80",X"00",X"40",X"00",X"80",X"00",X"40",X"80",X"C0",X"80",X"80",X"00",
X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"80",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"00",X"80",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"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"00",X"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"00",
X"00",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"00",X"00",X"00",X"00",X"00",X"03",X"00",
X"00",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"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"00",
X"00",X"0F",X"00",X"00",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",X"0F",X"00",
X"00",X"1F",X"01",X"01",X"03",X"02",X"02",X"02",X"02",X"03",X"02",X"02",X"02",X"03",X"02",X"02",
X"03",X"02",X"02",X"02",X"03",X"02",X"02",X"02",X"03",X"02",X"02",X"03",X"01",X"01",X"1F",X"00",
X"00",X"3E",X"02",X"02",X"07",X"04",X"04",X"04",X"04",X"06",X"04",X"05",X"04",X"06",X"05",X"04",
X"06",X"04",X"04",X"04",X"06",X"04",X"05",X"04",X"06",X"04",X"05",X"06",X"03",X"02",X"3E",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -0,0 +1,470 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity fg_sp_graphx_3 is
port (
clk : in std_logic;
addr : in std_logic_vector(12 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of fg_sp_graphx_3 is
type rom is array(0 to 7167) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"1C",X"3E",X"61",X"41",X"43",X"3E",X"1C",
X"00",X"00",X"40",X"42",X"7F",X"7F",X"40",X"40",X"00",X"62",X"73",X"79",X"59",X"5D",X"4F",X"46",
X"00",X"20",X"61",X"49",X"4D",X"4F",X"7B",X"31",X"00",X"18",X"1C",X"16",X"13",X"7F",X"7F",X"10",
X"00",X"27",X"67",X"45",X"45",X"45",X"7D",X"38",X"00",X"3C",X"7E",X"4B",X"49",X"49",X"79",X"30",
X"00",X"03",X"03",X"71",X"79",X"0D",X"07",X"03",X"00",X"36",X"4F",X"4D",X"59",X"59",X"76",X"30",
X"00",X"06",X"4F",X"49",X"49",X"69",X"3F",X"1E",X"00",X"7C",X"7E",X"13",X"11",X"13",X"7E",X"7C",
X"00",X"7F",X"7F",X"49",X"49",X"49",X"7F",X"36",X"00",X"1C",X"3E",X"63",X"41",X"41",X"63",X"22",
X"00",X"7F",X"7F",X"41",X"41",X"63",X"3E",X"1C",X"00",X"00",X"7F",X"7F",X"49",X"49",X"49",X"41",
X"00",X"7F",X"7F",X"09",X"09",X"09",X"09",X"01",X"00",X"1C",X"3E",X"63",X"41",X"49",X"79",X"79",
X"00",X"7F",X"7F",X"08",X"08",X"08",X"7F",X"7F",X"00",X"00",X"41",X"41",X"7F",X"7F",X"41",X"41",
X"00",X"20",X"60",X"40",X"40",X"40",X"7F",X"3F",X"00",X"7F",X"7F",X"18",X"3C",X"76",X"63",X"41",
X"00",X"00",X"7F",X"7F",X"40",X"40",X"40",X"40",X"00",X"7F",X"7F",X"0E",X"1C",X"0E",X"7F",X"7F",
X"00",X"7F",X"7F",X"0E",X"1C",X"38",X"7F",X"7F",X"00",X"3E",X"7F",X"41",X"41",X"41",X"7F",X"3E",
X"00",X"7F",X"7F",X"11",X"11",X"11",X"1F",X"0E",X"00",X"3E",X"7F",X"41",X"51",X"71",X"3F",X"5E",
X"00",X"7F",X"7F",X"11",X"31",X"79",X"6F",X"4E",X"00",X"26",X"6F",X"49",X"49",X"4B",X"7A",X"30",
X"00",X"00",X"01",X"01",X"7F",X"7F",X"01",X"01",X"00",X"3F",X"7F",X"40",X"40",X"40",X"7F",X"3F",
X"00",X"0F",X"1F",X"38",X"70",X"38",X"1F",X"0F",X"00",X"1F",X"7F",X"38",X"1C",X"38",X"7F",X"1F",
X"00",X"63",X"77",X"3E",X"1C",X"3E",X"77",X"63",X"00",X"00",X"03",X"0F",X"78",X"78",X"0F",X"03",
X"00",X"61",X"71",X"79",X"5D",X"4F",X"47",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",
X"00",X"00",X"80",X"60",X"60",X"00",X"00",X"00",X"00",X"0C",X"02",X"A2",X"12",X"12",X"0C",X"00",
X"00",X"00",X"BE",X"00",X"00",X"BE",X"00",X"00",X"7E",X"C3",X"99",X"A5",X"A5",X"81",X"C3",X"7E",
X"00",X"FF",X"FF",X"C3",X"E7",X"7E",X"7E",X"FF",X"FF",X"DB",X"DB",X"DB",X"7E",X"FF",X"C3",X"C3",
X"F7",X"76",X"7E",X"FF",X"C3",X"C3",X"FF",X"7E",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",
X"7E",X"12",X"1E",X"00",X"7E",X"12",X"1E",X"00",X"7E",X"5A",X"5A",X"00",X"7E",X"12",X"2E",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"C0",X"C0",X"00",X"00",X"00",X"00",X"01",X"01",X"0F",X"01",X"01",X"00",X"0F",X"02",
X"04",X"02",X"0F",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"40",X"68",X"94",X"A8",X"40",X"00",
X"00",X"00",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"A0",X"80",X"00",X"00",X"20",X"00",X"50",X"00",X"00",X"20",X"80",X"80",X"80",X"00",
X"00",X"03",X"1F",X"FF",X"FE",X"FC",X"F8",X"F9",X"F8",X"F9",X"FC",X"FE",X"FF",X"1F",X"03",X"00",
X"00",X"00",X"00",X"10",X"08",X"00",X"22",X"00",X"08",X"00",X"20",X"08",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"02",X"15",X"2A",X"15",X"02",X"01",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"20",X"70",X"70",X"70",X"70",X"70",X"70",X"70",X"20",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"08",X"10",X"10",X"20",X"20",X"20",X"10",X"10",X"08",X"00",X"00",X"00",X"00",X"00",
X"00",X"44",X"92",X"D6",X"92",X"D6",X"92",X"44",X"00",X"40",X"9A",X"82",X"8A",X"8A",X"9A",X"40",
X"00",X"10",X"82",X"BA",X"82",X"BA",X"82",X"10",X"00",X"00",X"08",X"08",X"0A",X"08",X"08",X"00",
X"00",X"00",X"00",X"2E",X"04",X"2E",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"24",X"02",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"CC",X"E2",X"E0",X"20",X"20",X"20",X"60",X"64",X"E8",X"C0",X"40",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"24",X"02",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"00",X"02",X"80",X"E0",X"E0",X"E6",X"E0",X"00",X"08",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"24",X"02",X"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"68",X"68",X"28",X"24",X"20",X"20",X"60",X"E0",X"E0",X"40",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"4E",X"04",X"04",X"4E",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"EA",X"00",X"00",X"3A",X"30",X"20",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"4E",X"04",X"04",X"4E",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"20",X"30",X"3A",X"00",X"00",X"EA",X"E0",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"20",X"30",X"30",X"00",X"00",X"00",X"E0",X"E0",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"80",X"E0",X"E0",X"00",X"00",X"00",X"30",X"30",X"20",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"4E",X"04",X"04",X"4E",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"EA",X"00",X"00",X"EA",X"E0",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"80",X"E0",X"E0",X"00",X"00",X"E0",X"E0",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"24",X"02",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"00",X"02",X"80",X"E0",X"E0",X"E6",X"E0",X"60",X"68",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"4E",X"04",X"04",X"4E",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"EA",X"00",X"00",X"2A",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"80",X"E0",X"E0",X"00",X"00",X"60",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"4E",X"04",X"04",X"4E",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"90",X"F0",X"F5",X"10",X"10",X"F5",X"F0",X"90",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"4E",X"04",X"04",X"4E",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"90",X"F0",X"F5",X"10",X"10",X"F5",X"F0",X"90",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"40",X"20",X"00",X"00",X"20",X"40",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"90",X"F0",X"F5",X"10",X"10",X"F5",X"F0",X"90",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"A0",X"00",X"00",X"A0",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"06",X"0F",X"0F",X"0F",X"07",X"07",X"0F",X"0F",X"0F",X"06",X"00",X"00",X"00",
X"00",X"00",X"FC",X"FE",X"C0",X"C0",X"80",X"80",X"80",X"C0",X"C0",X"FE",X"FC",X"00",X"00",X"00",
X"00",X"00",X"00",X"07",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"07",X"00",X"00",X"00",
X"00",X"00",X"30",X"60",X"C0",X"80",X"00",X"00",X"00",X"00",X"C0",X"E0",X"30",X"00",X"00",X"00",
X"00",X"00",X"00",X"7F",X"FF",X"FD",X"FC",X"F8",X"F8",X"FC",X"FD",X"FF",X"7F",X"00",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"80",X"80",X"80",X"80",X"00",
X"00",X"00",X"0F",X"7F",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FF",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"0E",X"13",X"3F",X"FF",X"FF",X"FF",X"FE",X"FC",X"38",X"E0",X"00",X"00",X"00",
X"80",X"80",X"80",X"9C",X"3E",X"2F",X"2F",X"2F",X"37",X"1B",X"0F",X"07",X"41",X"20",X"10",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"E0",X"F8",X"FC",X"F2",X"FF",X"FF",X"FF",X"3F",X"1F",X"0E",
X"00",X"08",X"10",X"10",X"20",X"00",X"03",X"0F",X"1F",X"1F",X"3F",X"3E",X"BF",X"BB",X"96",X"9C",
X"00",X"00",X"00",X"00",X"F0",X"FC",X"FE",X"F3",X"FF",X"FF",X"F2",X"1C",X"00",X"00",X"00",X"00",
X"00",X"10",X"20",X"40",X"03",X"0E",X"1B",X"37",X"3F",X"3F",X"1F",X"0E",X"80",X"80",X"80",X"80",
X"00",X"00",X"00",X"00",X"1C",X"F2",X"FF",X"FF",X"F3",X"FE",X"FC",X"F0",X"00",X"00",X"00",X"00",
X"80",X"80",X"80",X"80",X"0E",X"1B",X"2F",X"2F",X"3F",X"1F",X"0F",X"03",X"40",X"20",X"10",X"00",
X"00",X"00",X"00",X"00",X"1C",X"FE",X"FF",X"FF",X"FF",X"FE",X"FC",X"F0",X"00",X"00",X"00",X"00",
X"80",X"80",X"80",X"80",X"0E",X"1F",X"3F",X"3F",X"37",X"1B",X"0E",X"03",X"40",X"20",X"10",X"00",
X"00",X"00",X"00",X"00",X"F0",X"DC",X"F6",X"FF",X"FF",X"FF",X"FE",X"1C",X"00",X"00",X"00",X"00",
X"00",X"10",X"20",X"40",X"03",X"0F",X"1F",X"3F",X"3F",X"37",X"19",X"0E",X"80",X"80",X"80",X"80",
X"00",X"E0",X"F0",X"F8",X"B8",X"A8",X"E8",X"F8",X"F0",X"F0",X"E0",X"E0",X"C0",X"80",X"60",X"80",
X"00",X"00",X"01",X"83",X"83",X"87",X"47",X"1F",X"3F",X"7F",X"7F",X"7F",X"7D",X"33",X"1E",X"00",
X"00",X"80",X"C0",X"C0",X"C0",X"80",X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"00",X"00",
X"07",X"1F",X"3E",X"3D",X"7E",X"7D",X"FE",X"FC",X"FC",X"FC",X"FC",X"FE",X"FF",X"7E",X"7C",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"00",X"00",X"00",X"00",X"00",
X"20",X"70",X"70",X"30",X"60",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"60",X"70",X"70",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"40",X"80",X"90",X"A4",X"00",X"80",X"90",X"A0",X"80",X"90",X"00",X"80",X"88",X"20",X"90",X"40",
X"00",X"00",X"00",X"00",X"C0",X"E0",X"F8",X"D4",X"FC",X"E8",X"B8",X"70",X"00",X"00",X"00",X"00",
X"40",X"40",X"80",X"80",X"0F",X"3D",X"7F",X"FE",X"FF",X"FF",X"7F",X"38",X"80",X"80",X"40",X"40",
X"00",X"00",X"00",X"00",X"14",X"DE",X"F4",X"EF",X"B6",X"FC",X"E8",X"70",X"00",X"00",X"00",X"00",
X"80",X"80",X"80",X"80",X"0C",X"1F",X"3C",X"3F",X"3F",X"1E",X"0F",X"03",X"80",X"80",X"80",X"80",
X"E0",X"FC",X"7C",X"FE",X"BE",X"EF",X"FF",X"FF",X"B7",X"FF",X"FF",X"5E",X"FE",X"FC",X"F8",X"E0",
X"21",X"47",X"4F",X"9F",X"9B",X"3E",X"37",X"3F",X"3D",X"BF",X"BB",X"9F",X"9F",X"8F",X"07",X"01",
X"C0",X"E0",X"C0",X"C0",X"E0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"01",X"01",X"81",X"81",X"81",X"81",X"81",X"01",X"01",X"01",X"01",X"81",X"81",X"41",X"41",X"21",
X"E0",X"F8",X"7C",X"FE",X"BE",X"EF",X"FF",X"FF",X"B7",X"FF",X"FF",X"5E",X"FE",X"FC",X"F8",X"E0",
X"21",X"47",X"4F",X"9F",X"9B",X"3E",X"37",X"3F",X"3D",X"BF",X"BB",X"9F",X"9F",X"8F",X"07",X"01",
X"C0",X"C0",X"C0",X"C0",X"C0",X"E0",X"C0",X"C0",X"C0",X"C0",X"E0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"01",X"01",X"81",X"81",X"81",X"81",X"81",X"01",X"01",X"01",X"01",X"81",X"81",X"41",X"41",X"21",
X"E0",X"F8",X"7C",X"FE",X"BE",X"EF",X"FF",X"FF",X"B7",X"FF",X"FF",X"5E",X"FE",X"FC",X"F8",X"E0",
X"21",X"47",X"4F",X"9F",X"9B",X"3E",X"37",X"3F",X"3D",X"BF",X"BB",X"9F",X"9F",X"8F",X"07",X"01",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"01",X"01",X"81",X"81",X"81",X"81",X"81",X"01",X"01",X"01",X"01",X"81",X"81",X"41",X"41",X"21",
X"00",X"C0",X"E0",X"F0",X"F0",X"F8",X"D8",X"F8",X"B8",X"F8",X"F8",X"F0",X"F0",X"E0",X"C0",X"00",
X"87",X"9F",X"BB",X"7F",X"5F",X"FF",X"BF",X"FF",X"EF",X"FF",X"DF",X"7F",X"7F",X"BF",X"9F",X"87",
X"00",X"00",X"00",X"80",X"80",X"C0",X"40",X"C0",X"C0",X"C0",X"C0",X"80",X"80",X"00",X"00",X"00",
X"58",X"BE",X"EF",X"7F",X"FF",X"FF",X"FF",X"FF",X"BE",X"FF",X"FF",X"FF",X"7F",X"FF",X"BE",X"58",
X"00",X"00",X"00",X"00",X"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"F0",X"F0",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F0",X"F0",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"40",X"80",X"88",X"00",X"A0",X"80",X"A0",X"00",X"88",X"80",X"A0",X"A0",X"88",X"00",X"A0",X"48",
X"00",X"80",X"C0",X"F0",X"F0",X"E8",X"F8",X"78",X"F8",X"D8",X"F8",X"E0",X"F0",X"E0",X"80",X"00",
X"20",X"47",X"9F",X"BF",X"3B",X"7F",X"7F",X"7F",X"7F",X"7B",X"7F",X"3F",X"BF",X"9E",X"47",X"20",
X"00",X"E0",X"B8",X"F4",X"F8",X"FE",X"F4",X"FE",X"DA",X"FC",X"FE",X"FC",X"DC",X"F0",X"A0",X"00",
X"80",X"80",X"87",X"8F",X"0F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"0F",X"8E",X"87",X"81",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"03",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"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"03",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"00",X"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"18",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"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"01",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"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"00",X"00",X"00",X"00",X"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"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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"50",X"00",X"10",X"80",X"04",X"00",X"10",X"00",X"00",X"80",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"1C",X"3E",X"6E",X"6F",X"43",X"6F",X"3E",X"1C",X"00",X"00",X"00",X"00",
X"00",X"00",X"80",X"20",X"80",X"C0",X"68",X"E0",X"60",X"E4",X"C0",X"84",X"20",X"00",X"80",X"00",
X"00",X"00",X"00",X"00",X"03",X"07",X"0D",X"0E",X"0D",X"0F",X"07",X"03",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"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"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"08",X"00",X"0C",X"08",X"06",X"06",X"0C",X"06",X"06",X"0C",X"0E",X"06",X"04",X"0E",
X"0E",X"04",X"06",X"0E",X"0C",X"06",X"06",X"0C",X"06",X"06",X"08",X"0C",X"00",X"08",X"10",X"00",
X"00",X"20",X"10",X"00",X"18",X"10",X"0C",X"0C",X"18",X"0C",X"0C",X"18",X"1C",X"0C",X"08",X"1C",
X"1C",X"08",X"0C",X"1C",X"18",X"0C",X"0C",X"18",X"0C",X"0C",X"10",X"18",X"00",X"10",X"20",X"00",
X"00",X"40",X"20",X"00",X"30",X"20",X"18",X"18",X"30",X"18",X"18",X"30",X"38",X"18",X"10",X"38",
X"38",X"10",X"18",X"38",X"30",X"18",X"18",X"30",X"18",X"18",X"20",X"30",X"00",X"20",X"40",X"00",
X"00",X"80",X"40",X"00",X"60",X"40",X"30",X"30",X"60",X"30",X"30",X"60",X"70",X"30",X"20",X"70",
X"70",X"20",X"30",X"70",X"60",X"30",X"30",X"60",X"30",X"30",X"40",X"60",X"00",X"40",X"80",X"00",
X"00",X"00",X"80",X"00",X"C0",X"80",X"60",X"60",X"C0",X"60",X"60",X"C0",X"E0",X"60",X"40",X"E0",
X"E0",X"40",X"60",X"E0",X"C0",X"60",X"60",X"C0",X"60",X"60",X"80",X"C0",X"00",X"80",X"00",X"00",
X"00",X"00",X"00",X"00",X"80",X"00",X"C0",X"C0",X"80",X"C0",X"C0",X"80",X"C0",X"C0",X"80",X"C0",
X"C0",X"80",X"C0",X"C0",X"80",X"C0",X"C0",X"80",X"C0",X"C0",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"80",X"80",X"00",X"80",X"80",X"00",X"80",X"80",X"00",X"80",
X"80",X"00",X"80",X"80",X"00",X"80",X"80",X"00",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"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"00",X"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"00",
X"00",X"02",X"01",X"00",X"01",X"01",X"00",X"00",X"01",X"00",X"00",X"01",X"01",X"00",X"00",X"01",
X"01",X"00",X"00",X"01",X"01",X"00",X"00",X"01",X"00",X"00",X"01",X"01",X"00",X"01",X"02",X"00",
X"00",X"04",X"02",X"00",X"03",X"02",X"01",X"01",X"03",X"01",X"01",X"03",X"03",X"01",X"01",X"03",
X"03",X"01",X"01",X"03",X"03",X"01",X"01",X"03",X"01",X"01",X"02",X"03",X"00",X"02",X"04",X"00",
X"00",X"08",X"04",X"00",X"06",X"04",X"03",X"03",X"06",X"03",X"03",X"06",X"07",X"03",X"02",X"07",
X"07",X"02",X"03",X"07",X"06",X"03",X"03",X"06",X"03",X"03",X"04",X"06",X"00",X"04",X"08",X"00",
X"00",X"40",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"40",X"00",
X"00",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",
X"00",X"01",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"01",X"00",
X"00",X"02",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",
X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"02",X"00",
X"00",X"04",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",
X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"04",X"00",
X"00",X"08",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",
X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"18",X"08",X"00",
X"00",X"10",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",
X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"10",X"00",
X"00",X"20",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",
X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"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"14",X"38",X"BA",X"7C",X"7E",X"FC",X"7C",X"7E",X"7C",X"FC",X"7C",X"FC",X"7E",
X"7E",X"FC",X"7C",X"FC",X"7C",X"7E",X"7C",X"FC",X"7E",X"7C",X"BA",X"38",X"14",X"20",X"00",X"00",
X"00",X"00",X"40",X"28",X"70",X"74",X"F8",X"FC",X"F8",X"F8",X"FC",X"F8",X"F8",X"F8",X"F8",X"FC",
X"FC",X"F8",X"F8",X"F8",X"F8",X"FC",X"F8",X"F8",X"FC",X"F8",X"74",X"70",X"28",X"40",X"00",X"00",
X"00",X"00",X"80",X"50",X"E0",X"E8",X"F0",X"F8",X"F0",X"F0",X"F8",X"F0",X"F0",X"F0",X"F0",X"F8",
X"F8",X"F0",X"F0",X"F0",X"F0",X"F8",X"F0",X"F0",X"F8",X"F0",X"E8",X"E0",X"50",X"80",X"00",X"00",
X"00",X"00",X"00",X"A0",X"C0",X"D0",X"E0",X"F0",X"E0",X"E0",X"F0",X"E0",X"E0",X"E0",X"E0",X"F0",
X"F0",X"E0",X"E0",X"E0",X"E0",X"F0",X"E0",X"E0",X"F0",X"E0",X"D0",X"C0",X"A0",X"00",X"00",X"00",
X"00",X"00",X"00",X"40",X"80",X"A0",X"C0",X"E0",X"C0",X"C0",X"E0",X"C0",X"C0",X"C0",X"C0",X"E0",
X"E0",X"C0",X"C0",X"C0",X"C0",X"E0",X"C0",X"C0",X"E0",X"C0",X"A0",X"80",X"40",X"00",X"00",X"00",
X"00",X"00",X"00",X"80",X"00",X"40",X"80",X"C0",X"80",X"80",X"C0",X"80",X"80",X"80",X"80",X"C0",
X"C0",X"80",X"80",X"80",X"80",X"C0",X"80",X"80",X"C0",X"80",X"40",X"00",X"80",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"80",X"00",X"00",X"80",X"00",X"00",X"00",X"00",X"80",
X"80",X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"80",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"01",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"01",X"00",
X"00",X"01",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"01",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"02",X"01",X"01",X"03",X"01",X"01",X"01",X"03",X"01",X"03",X"01",
X"01",X"03",X"01",X"03",X"01",X"01",X"01",X"03",X"01",X"01",X"02",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"00",X"01",X"05",X"03",X"03",X"07",X"03",X"03",X"03",X"07",X"03",X"07",X"03",
X"03",X"07",X"03",X"07",X"03",X"03",X"03",X"07",X"03",X"03",X"05",X"01",X"00",X"01",X"00",X"00",
X"00",X"00",X"02",X"01",X"03",X"0B",X"07",X"07",X"0F",X"07",X"07",X"07",X"0F",X"07",X"0F",X"07",
X"07",X"0F",X"07",X"0F",X"07",X"07",X"07",X"0F",X"07",X"07",X"0B",X"03",X"01",X"02",X"00",X"00",
X"00",X"00",X"04",X"02",X"07",X"17",X"0F",X"0F",X"1F",X"0F",X"0F",X"0F",X"1F",X"0F",X"1F",X"0F",
X"0F",X"1F",X"0F",X"1F",X"0F",X"0F",X"0F",X"1F",X"0F",X"0F",X"17",X"07",X"02",X"04",X"00",X"00",
X"00",X"00",X"08",X"05",X"0E",X"2E",X"1F",X"1F",X"3F",X"1F",X"1F",X"1F",X"3F",X"1F",X"3F",X"1F",
X"1F",X"3F",X"1F",X"3F",X"1F",X"1F",X"1F",X"3F",X"1F",X"1F",X"2E",X"0E",X"05",X"08",X"00",X"00",
X"00",X"00",X"10",X"0A",X"1C",X"5D",X"3E",X"3F",X"7E",X"3E",X"3F",X"3E",X"7E",X"3E",X"7E",X"3F",
X"3F",X"7E",X"3E",X"7E",X"3E",X"3F",X"3E",X"7E",X"3F",X"3E",X"5D",X"1C",X"0A",X"10",X"00",X"00",
X"00",X"00",X"FA",X"8A",X"90",X"B6",X"B6",X"F6",X"B6",X"F2",X"F6",X"F4",X"F6",X"F2",X"F4",X"F6",
X"F2",X"F6",X"F6",X"F6",X"F2",X"F6",X"F4",X"F6",X"F2",X"F6",X"F4",X"B2",X"F8",X"C2",X"00",X"00",
X"00",X"00",X"F4",X"14",X"20",X"6C",X"6C",X"EC",X"6C",X"E4",X"EC",X"E8",X"EC",X"E4",X"E8",X"EC",
X"E4",X"EC",X"EC",X"EC",X"E4",X"EC",X"E8",X"EC",X"E4",X"EC",X"E8",X"64",X"F0",X"84",X"00",X"00",
X"00",X"00",X"E8",X"28",X"40",X"D8",X"D8",X"D8",X"D8",X"C8",X"D8",X"D0",X"D8",X"C8",X"D0",X"D8",
X"C8",X"D8",X"D8",X"D8",X"C8",X"D8",X"D0",X"D8",X"C8",X"D8",X"D0",X"C8",X"E0",X"08",X"00",X"00",
X"00",X"00",X"D0",X"50",X"80",X"B0",X"B0",X"B0",X"B0",X"90",X"B0",X"A0",X"B0",X"90",X"A0",X"B0",
X"90",X"B0",X"B0",X"B0",X"90",X"B0",X"A0",X"B0",X"90",X"B0",X"A0",X"90",X"C0",X"10",X"00",X"00",
X"00",X"00",X"A0",X"A0",X"00",X"60",X"60",X"60",X"60",X"20",X"60",X"40",X"60",X"20",X"40",X"60",
X"20",X"60",X"60",X"60",X"20",X"60",X"40",X"60",X"20",X"60",X"40",X"20",X"80",X"20",X"00",X"00",
X"00",X"00",X"40",X"40",X"00",X"C0",X"C0",X"C0",X"C0",X"40",X"C0",X"80",X"C0",X"40",X"80",X"C0",
X"40",X"C0",X"C0",X"C0",X"40",X"C0",X"80",X"C0",X"40",X"C0",X"80",X"40",X"00",X"40",X"00",X"00",
X"00",X"00",X"80",X"80",X"00",X"80",X"80",X"80",X"80",X"80",X"80",X"00",X"80",X"80",X"00",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"00",X"80",X"80",X"80",X"00",X"80",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",
X"00",X"00",X"03",X"02",X"02",X"02",X"02",X"03",X"02",X"03",X"03",X"03",X"03",X"03",X"03",X"03",
X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"02",X"03",X"03",X"00",X"00",
X"00",X"00",X"07",X"04",X"04",X"05",X"05",X"07",X"05",X"07",X"07",X"07",X"07",X"07",X"07",X"07",
X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"05",X"07",X"06",X"00",X"00",
X"00",X"00",X"0F",X"08",X"09",X"0B",X"0B",X"0F",X"0B",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",
X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0B",X"0F",X"0C",X"00",X"00",
X"00",X"00",X"1F",X"11",X"12",X"16",X"16",X"1E",X"16",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",
X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"1E",X"16",X"1F",X"18",X"00",X"00",
X"00",X"00",X"3E",X"22",X"24",X"2D",X"2D",X"3D",X"2D",X"3C",X"3D",X"3D",X"3D",X"3C",X"3D",X"3D",
X"3C",X"3D",X"3D",X"3D",X"3C",X"3D",X"3D",X"3D",X"3C",X"3D",X"3D",X"2C",X"3E",X"30",X"00",X"00",
X"00",X"00",X"7D",X"45",X"48",X"5B",X"5B",X"7B",X"5B",X"79",X"7B",X"7A",X"7B",X"79",X"7A",X"7B",
X"79",X"7B",X"7B",X"7B",X"79",X"7B",X"7A",X"7B",X"79",X"7B",X"7A",X"59",X"7C",X"61",X"00",X"00",
X"D0",X"78",X"BC",X"FE",X"74",X"7A",X"FC",X"F8",X"7C",X"FA",X"FE",X"7C",X"3A",X"7C",X"F4",X"FE",
X"FE",X"F4",X"7C",X"3A",X"7C",X"FE",X"FA",X"7C",X"F8",X"FC",X"7A",X"74",X"FE",X"BC",X"78",X"00",
X"A0",X"F0",X"78",X"FC",X"E8",X"F4",X"F8",X"F0",X"F8",X"F4",X"FC",X"F8",X"74",X"F8",X"E8",X"FC",
X"FC",X"E8",X"F8",X"74",X"F8",X"FC",X"F4",X"F8",X"F0",X"F8",X"F4",X"E8",X"FC",X"78",X"F0",X"00",
X"40",X"E0",X"F0",X"F8",X"D0",X"E8",X"F0",X"E0",X"F0",X"E8",X"F8",X"F0",X"E8",X"F0",X"D0",X"F8",
X"F8",X"D0",X"F0",X"E8",X"F0",X"F8",X"E8",X"F0",X"E0",X"F0",X"E8",X"D0",X"F8",X"F0",X"E0",X"00",
X"80",X"C0",X"E0",X"F0",X"A0",X"D0",X"E0",X"C0",X"E0",X"D0",X"F0",X"E0",X"D0",X"E0",X"A0",X"F0",
X"F0",X"A0",X"E0",X"D0",X"E0",X"F0",X"D0",X"E0",X"C0",X"E0",X"D0",X"A0",X"F0",X"E0",X"C0",X"00",
X"00",X"80",X"C0",X"E0",X"40",X"A0",X"C0",X"80",X"C0",X"A0",X"E0",X"C0",X"A0",X"C0",X"40",X"E0",
X"E0",X"40",X"C0",X"A0",X"C0",X"E0",X"A0",X"C0",X"80",X"C0",X"A0",X"40",X"E0",X"C0",X"80",X"00",
X"00",X"00",X"80",X"C0",X"80",X"40",X"80",X"00",X"80",X"40",X"C0",X"80",X"40",X"80",X"80",X"C0",
X"C0",X"80",X"80",X"40",X"80",X"C0",X"40",X"80",X"00",X"80",X"40",X"80",X"C0",X"80",X"00",X"00",
X"00",X"00",X"00",X"80",X"00",X"80",X"00",X"00",X"00",X"80",X"80",X"00",X"80",X"00",X"00",X"80",
X"80",X"00",X"00",X"80",X"00",X"80",X"80",X"00",X"00",X"00",X"80",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"01",X"00",X"01",X"01",X"00",X"00",X"01",X"01",X"00",X"01",X"01",X"00",X"00",X"00",X"01",X"01",
X"01",X"01",X"00",X"00",X"00",X"01",X"01",X"00",X"01",X"01",X"00",X"00",X"01",X"01",X"00",X"00",
X"03",X"01",X"02",X"03",X"01",X"01",X"03",X"03",X"01",X"03",X"03",X"01",X"00",X"01",X"03",X"03",
X"03",X"03",X"01",X"00",X"01",X"03",X"03",X"01",X"03",X"03",X"01",X"01",X"03",X"02",X"01",X"00",
X"06",X"03",X"05",X"07",X"03",X"03",X"07",X"07",X"03",X"07",X"07",X"03",X"01",X"03",X"07",X"07",
X"07",X"07",X"03",X"01",X"03",X"07",X"07",X"03",X"07",X"07",X"03",X"03",X"07",X"05",X"03",X"00",
X"0D",X"07",X"0B",X"0F",X"07",X"07",X"0F",X"0F",X"07",X"0F",X"0F",X"07",X"03",X"07",X"0F",X"0F",
X"0F",X"0F",X"07",X"03",X"07",X"0F",X"0F",X"07",X"0F",X"0F",X"07",X"07",X"0F",X"0B",X"07",X"00",
X"1A",X"0F",X"17",X"1F",X"0E",X"0F",X"1F",X"1F",X"0F",X"1F",X"1F",X"0F",X"07",X"0F",X"1E",X"1F",
X"1F",X"1E",X"0F",X"07",X"0F",X"1F",X"1F",X"0F",X"1F",X"1F",X"0F",X"0E",X"1F",X"17",X"0F",X"00",
X"34",X"1E",X"2F",X"3F",X"1D",X"1E",X"3F",X"3E",X"1F",X"3E",X"3F",X"1F",X"0E",X"1F",X"3D",X"3F",
X"3F",X"3D",X"1F",X"0E",X"1F",X"3F",X"3E",X"1F",X"3E",X"3F",X"1E",X"1D",X"3F",X"2F",X"1E",X"00",
X"68",X"3C",X"5E",X"7F",X"3A",X"3D",X"7E",X"7C",X"3E",X"7D",X"7F",X"3E",X"1D",X"3E",X"7A",X"7F",
X"7F",X"7A",X"3E",X"1D",X"3E",X"7F",X"7D",X"3E",X"7C",X"7E",X"3D",X"3A",X"7F",X"5E",X"3C",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -0,0 +1,426 @@
---------------------------------------------------------------------------------
-- burger time sound by Dar (darfpga@aol.fr) (27/12/2017)
-- http://darfpga.blogspot.fr
---------------------------------------------------------------------------------
-- Educational use only
-- Do not redistribute synthetized file with roms
-- Do not redistribute roms whatever the form
-- Use at your own risk
---------------------------------------------------------------------------------
-- gen_ram.vhd & io_ps2_keyboard
--------------------------------
-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
-- http://www.syntiac.com/fpga64.html
---------------------------------------------------------------------------------
-- T65(b) core.Ver 301 by MikeJ March 2005
-- Latest version from www.fpgaarcade.com (original www.opencores.org)
---------------------------------------------------------------------------------
-- YM2149 (AY-3-8910)
-- Copyright (c) MikeJ - Jan 2005
---------------------------------------------------------------------------------
-- Use burger_time_de10_lite.sdc to compile (Timequest constraints)
-- /!\
-- Don't forget to set device configuration mode with memory initialization
-- (Assignments/Device/Pin options/Configuration mode)
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
entity burger_time_sound is
port
(
clock_12 : in std_logic;
reset : in std_logic;
sound_req : in std_logic;
sound_code_in : in std_logic_vector(7 downto 0);
sound_timing : in std_logic;
audio_out : out std_logic_vector(10 downto 0);
dbg_cpu_addr: out std_logic_vector(15 downto 0)
);
end burger_time_sound;
architecture syn of burger_time_sound is
-- clocks, reset
signal clock_12n : std_logic;
signal clock_div1 : std_logic_vector(8 downto 0) := (others =>'0');
signal clock_div2 : std_logic_vector(4 downto 0) := (others =>'0');
signal clock_500K : std_logic;
signal ayx_clock : std_logic;
signal reset_n : std_logic;
-- cpu signals
signal cpu_addr : std_logic_vector(23 downto 0);
signal cpu_di : std_logic_vector( 7 downto 0);
signal cpu_di_dec : std_logic_vector( 7 downto 0);
signal cpu_do : std_logic_vector( 7 downto 0);
signal cpu_rw_n : std_logic;
signal cpu_nmi_n : std_logic;
signal cpu_irq_n : std_logic;
signal cpu_sync : std_logic;
-- program rom signals
signal prog_rom_cs : std_logic;
signal prog_rom_do : std_logic_vector(7 downto 0);
-- working ram signals
signal wram_cs : std_logic;
signal wram_we : std_logic;
signal wram_do : std_logic_vector(7 downto 0);
-- sound req management
signal nmi_reg : std_logic;
signal nmi_reg_cs : std_logic;
signal nmi_reg_we : std_logic;
signal sound_code : std_logic_vector(7 downto 0);
signal sound_code_cs : std_logic;
-- ay-3-8910 signal
signal ay1_bc1 : std_logic;
signal ay1_bdir : std_logic;
signal ay1_audio_chan : std_logic_vector(1 downto 0);
signal ay1_audio_muxed: std_logic_vector(7 downto 0);
signal ay1_chan_a: std_logic_vector(7 downto 0);
signal ay1_chan_b: std_logic_vector(7 downto 0);
signal ay1_chan_c: std_logic_vector(7 downto 0);
signal ay2_bc1 : std_logic;
signal ay2_bdir : std_logic;
signal ay2_audio_chan : std_logic_vector(1 downto 0);
signal ay2_audio_muxed: std_logic_vector(7 downto 0);
signal ay2_chan_a: std_logic_vector(7 downto 0);
signal ay2_chan_b: std_logic_vector(7 downto 0);
signal ay2_chan_c: std_logic_vector(7 downto 0);
-- digital filtering AY2 channel A
signal uin : integer range -256 to 255;
signal u3 : integer range -32768 to 32767;
signal u4 : integer range -32768 to 32767;
signal du3 : integer range -32768*4096 to 32767*4096;
signal du4 : integer range -32768*4096 to 32767*4096;
signal uout : integer range -32768 to 32767;
signal uout_lim : integer range -128 to 127;
begin
process (clock_12, cpu_sync)
begin
if rising_edge(clock_12) then
if cpu_sync = '1' then
dbg_cpu_addr <= cpu_addr(15 downto 0);
end if;
end if;
end process;
reset_n <= not reset;
clock_12n <= not clock_12;
process (clock_12, reset)
begin
if reset='1' then
clock_div1 <= (others => '0');
clock_div2 <= (others => '0');
else
if rising_edge(clock_12) then
if clock_div1 = "111111111" then -- divide by 512 (23.437kHz)
clock_div1 <= "000000000";
else
clock_div1 <= clock_div1 + '1';
end if;
if clock_div2 = "10111" then -- divide by 24
clock_div2 <= "00000";
else
clock_div2 <= clock_div2 + '1';
end if;
end if;
end if;
end process;
clock_500K <= clock_div2(4); --12MHz/24 = 500kHz
ayx_clock <= clock_div1(2); --12MHz/8 = 1.5MHz
--static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, btime_state )
-- AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM AM_SHARE("audio_rambase")
-- AM_RANGE(0x2000, 0x3fff) AM_DEVWRITE("ay1", ay8910_device, data_w)
-- AM_RANGE(0x4000, 0x5fff) AM_DEVWRITE("ay1", ay8910_device, address_w)
-- AM_RANGE(0x6000, 0x7fff) AM_DEVWRITE("ay2", ay8910_device, data_w)
-- AM_RANGE(0x8000, 0x9fff) AM_DEVWRITE("ay2", ay8910_device, address_w)
-- AM_RANGE(0xa000, 0xbfff) AM_READ(audio_command_r)
-- AM_RANGE(0xc000, 0xdfff) AM_WRITE(audio_nmi_enable_w)
-- AM_RANGE(0xe000, 0xefff) AM_MIRROR(0x1000) AM_ROM
--ADDRESS_MAP_END
-- chip select
wram_cs <= '1' when cpu_addr(15 downto 13) = "000" else '0'; -- working ram 0000-07ff .. 1fff
ay1_bc1 <= '1' when cpu_addr(15 downto 13) = "010" else '0';
ay1_bdir <= '1' when cpu_addr(15 downto 13) = "001" or ay1_bc1 = '1' else '0';
ay2_bc1 <= '1' when cpu_addr(15 downto 13) = "100" else '0';
ay2_bdir <= '1' when cpu_addr(15 downto 13) = "011" or ay2_bc1 = '1' else '0';
sound_code_cs <= '1' when cpu_addr(15 downto 13) = "101" else '0';
nmi_reg_cs <= '1' when cpu_addr(15 downto 13) = "110" else '0';
prog_rom_cs <= '1' when cpu_addr(15 downto 13) = "111" else '0';
-- write enable
wram_we <= '1' when wram_cs = '1' and cpu_rw_n = '0' else '0';
nmi_reg_we <= '1' when nmi_reg_cs = '1' and cpu_rw_n = '0' else '0';
-- cpu di mux
cpu_di <= wram_do when wram_cs = '1' else
prog_rom_do when prog_rom_cs = '1' else
sound_code when sound_code_cs = '1' else
X"FF";
-- regsiter sound code and irq management
process (clock_12)
begin
if rising_edge(clock_12) then
if sound_req = '1' then
sound_code <= sound_code_in;
cpu_irq_n <= '0';
end if;
if sound_code_cs = '1' then
cpu_irq_n <= '1';
end if;
end if;
end process;
-- nmi autorisation management
process (reset, clock_12)
begin
if reset = '1' then
nmi_reg <= '0';
else
if rising_edge(clock_12) then
if nmi_reg_we = '1' then
nmi_reg <= cpu_do(0);
end if;
end if;
end if;
end process;
-- nmi
cpu_nmi_n <= '0' when nmi_reg = '1' and sound_timing = '1' else '1';
-- demux AY chips output
process (ayx_clock)
begin
if rising_edge(ayx_clock) then
if ay1_audio_chan = "00" then ay1_chan_a <= ay1_audio_muxed; end if;
if ay1_audio_chan = "01" then ay1_chan_b <= ay1_audio_muxed; end if;
if ay1_audio_chan = "10" then ay1_chan_c <= ay1_audio_muxed; end if;
if ay2_audio_chan = "00" then ay2_chan_a <= ay2_audio_muxed; end if;
if ay2_audio_chan = "01" then ay2_chan_b <= ay2_audio_muxed; end if;
if ay2_audio_chan = "10" then ay2_chan_c <= ay2_audio_muxed; end if;
end if;
end process;
-- AOP Rauch passe bande filter
--
-- ----------o------------
-- u4^ | | |
-- | --- C4 | | R5 |
-- | --- | | |
-- | | C3 | |
-- --| R1 |----o----||---o------|\ |
-- ^ | ------> u3 | \__o---
-- | | | / ^
-- |uin | | R2 --|/ |
-- | | | | | uout
-- | | | |
-- ------------o--------------o----------
--
--
-- i1 = (sin+u3)/R1
-- i2 = -u3/R2
-- i3 = (u4-u3)/R5
-- i4 = i2-i1-i3
--
-- u3(t+dt) = u3(t) + i3(t)*dt/C3;
-- u4(t+dt) = u4(t) + i4(t)*dt/C4;
-- uout = u4-u3
-- R1 = 5000;
-- R2 = 10000;
-- C3 = 0.068e-6;
-- C4 = 0.068e-6;
-- R5 = 47000;
--
-- dt = 1/f_ech = 1/23437
-- dt/C3 = dt/C4 = 627
--
-- (i3(t)*dt/C3)*8192 = du3*8192 = ((u4-u3)/47000*627)*8192
-- = (u4-u3)*109
--
-- (i4(t)*dt/C4)*8192 = du4*8192 = (-u3/10000 -(uin+u3)/5000 -(u4-u3)/47000)*627*8192
-- = -u3(514+1027-109) - uin*1027 - u4*109
-- = -(u4*109 + u3*1432 + uin*1027)
--
-- down sample to 23.437kHz and filter AY2 channel A
uin <= to_integer(unsigned(ay2_chan_a));
process (clock_12)
begin
if rising_edge(clock_12) then
if clock_div1 = "000000000" then
du3 <= u4*109 - u3*109;
du4 <= u4*109 + u3*1432 + uin*1027*16; -- add gain(16) to uin
end if;
if clock_div1 = "000000001" then
u3 <= u3 + du3/8192;
u4 <= u4 - du4/8192;
end if;
if clock_div1 = "000000010" then
uout <= (u4 - u3) / 8; -- adjust output gain
end if;
-- limit signed dynamique before return to unsigned
if clock_div1 = "000000011" then
if uout > 127 then
uout_lim <= 127;
elsif uout < -127 then
uout_lim <= -127;
else
uout_lim <= uout;
end if;
end if;
if clock_div1 = "000000100" then
audio_out <= ("000"&ay1_chan_a(7 downto 0)) +
("000"&ay1_chan_b(7 downto 0)) +
("000"&ay1_chan_c(7 downto 0)) +
("000"&std_logic_vector(to_unsigned(uout_lim+128,8)))+
("000"&ay2_chan_b(7 downto 0)) +
("000"&ay2_chan_c(7 downto 0));
end if;
end if;
end process;
---------------------------
-- components
---------------------------
cpu_inst : entity work.T65
port map
(
Mode => "00", -- 6502
Res_n => reset_n,
Enable => '1',
Clk => clock_500K,
Rdy => '1',
Abort_n => '1',
IRQ_n => cpu_irq_n,
NMI_n => cpu_nmi_n,
SO_n => '1',--cpu_so_n,
R_W_n => cpu_rw_n,
Sync => cpu_sync, -- open
EF => open,
MF => open,
XF => open,
ML_n => open,
VP_n => open,
VDA => open,
VPA => open,
A => cpu_addr,
DI => cpu_di,
DO => cpu_do
);
-- working ram
wram : entity work.gen_ram
generic map( dWidth => 8, aWidth => 11)
port map(
clk => clock_12n,
we => wram_we,
addr => cpu_addr(10 downto 0),
d => cpu_do,
q => wram_do
);
-- program rom
program_rom: entity work.burger_time_sound_prog
port map(
clk => clock_12n,
addr => cpu_addr(11 downto 0),
data => prog_rom_do
);
-- AY-3-8910 #1
ay_3_8910_1 : entity work.YM2149
port map(
-- data bus
I_DA => cpu_do, -- in std_logic_vector(7 downto 0);
O_DA => open, -- out std_logic_vector(7 downto 0);
O_DA_OE_L => open, -- out std_logic;
-- control
I_A9_L => '0', -- in std_logic;
I_A8 => '1', -- in std_logic;
I_BDIR => ay1_bdir, -- in std_logic;
I_BC2 => '1', -- in std_logic;
I_BC1 => ay1_bc1, -- in std_logic;
I_SEL_L => '1', -- in std_logic;
O_AUDIO => ay1_audio_muxed, -- out std_logic_vector(7 downto 0);
O_CHAN => ay1_audio_chan, -- out std_logic_vector(1 downto 0);
-- port a
I_IOA => X"00", -- in std_logic_vector(7 downto 0);
O_IOA => open, -- out std_logic_vector(7 downto 0);
O_IOA_OE_L => open, -- out std_logic;
-- port b
I_IOB => X"00", -- in std_logic_vector(7 downto 0);
O_IOB => open, -- out std_logic_vector(7 downto 0);
O_IOB_OE_L => open, -- out std_logic;
ENA => '1', -- in std_logic; -- clock enable for higher speed operation
RESET_L => reset_n, -- in std_logic;
CLK => ayx_clock -- in std_logic -- note 6 Mhz
);
-- AY-3-8910 #2
ay_3_8910_2 : entity work.YM2149
port map(
-- data bus
I_DA => cpu_do, -- in std_logic_vector(7 downto 0);
O_DA => open, -- out std_logic_vector(7 downto 0);
O_DA_OE_L => open, -- out std_logic;
-- control
I_A9_L => '0', -- in std_logic;
I_A8 => '1', -- in std_logic;
I_BDIR => ay2_bdir, -- in std_logic;
I_BC2 => '1', -- in std_logic;
I_BC1 => ay2_bc1, -- in std_logic;
I_SEL_L => '1', -- in std_logic;
O_AUDIO => ay2_audio_muxed, -- out std_logic_vector(7 downto 0);
O_CHAN => ay2_audio_chan, -- out std_logic_vector(1 downto 0);
-- port a
I_IOA => (others => '0'), -- in std_logic_vector(7 downto 0);
O_IOA => open, -- out std_logic_vector(7 downto 0);
O_IOA_OE_L => open, -- out std_logic;
-- port b
I_IOB => (others => '0'), -- in std_logic_vector(7 downto 0);
O_IOB => open, -- out std_logic_vector(7 downto 0);
O_IOB_OE_L => open, -- out std_logic;
ENA => '1', --cpu_ena, -- in std_logic; -- clock enable for higher speed operation
RESET_L => reset_n, -- in std_logic;
CLK => ayx_clock -- in std_logic -- note 6 Mhz
);
end SYN;

View File

@@ -34,33 +34,35 @@ port
(
clock_12 : in std_logic;
reset : in std_logic;
hwsel : in integer range 0 to 1;
video_r : out std_logic_vector(2 downto 0);
video_g : out std_logic_vector(2 downto 0);
video_b : out std_logic_vector(1 downto 0);
video_hs : out std_logic;
video_vs : out std_logic;
video_hblank : out std_logic;
video_vblank : out std_logic;
video_blankn : out std_logic;
video_csync : out std_logic;
audio_out : out std_logic_vector(10 downto 0);
P1 : in std_logic_vector(7 downto 0);
P2 : in std_logic_vector(7 downto 0);
SYS : in std_logic_vector(7 downto 0);
DSW1 : in std_logic_vector(6 downto 0);
DSW2 : in std_logic_vector(7 downto 0);
prg_rom_addr : out std_logic_vector(14 downto 0);
prg_rom_do : in std_logic_vector(7 downto 0);
snd_rom_addr : out std_logic_vector(11 downto 0);
snd_rom_do : in std_logic_vector(7 downto 0);
dl_clk : in std_logic;
dl_addr : in std_logic_vector(16 downto 0);
dl_data : in std_logic_vector(7 downto 0);
dl_wr : in std_logic
audio_out : out std_logic_vector(10 downto 0);
start2 : in std_logic;
start1 : in std_logic;
coin1 : in std_logic;
fire1 : in std_logic;
right1 : in std_logic;
left1 : in std_logic;
down1 : in std_logic;
up1 : in std_logic;
fire2 : in std_logic;
right2 : in std_logic;
left2 : in std_logic;
down2 : in std_logic;
up2 : in std_logic;
dbg_cpu_addr: out std_logic_vector(15 downto 0)
);
end burger_time;
@@ -140,9 +142,6 @@ architecture syn of burger_time is
signal fg_grphx_1_do : std_logic_vector( 7 downto 0);
signal fg_grphx_2_do : std_logic_vector( 7 downto 0);
signal fg_grphx_3_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_1_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_2_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_3_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_1 : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_2 : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_3 : std_logic_vector( 7 downto 0);
@@ -159,7 +158,7 @@ architecture syn of burger_time is
signal palette_do : std_logic_vector(7 downto 0);
-- background map rom
signal bg_map_addr : std_logic_vector(11 downto 0);
signal bg_map_addr : std_logic_vector(10 downto 0);
signal bg_map_do : std_logic_vector(7 downto 0);
-- background control
@@ -182,23 +181,9 @@ architecture syn of burger_time is
-- misc
signal raz_nmi_we : std_logic;
signal coin_r : std_logic;
signal coin1_r : std_logic;
signal sound_req : std_logic;
signal bg_map_we : std_logic;
signal bg_graphx_1_we : std_logic;
signal bg_graphx_2_we : std_logic;
signal bg_graphx_3_we : std_logic;
signal fg_sp_graphx_1_we : std_logic;
signal fg_sp_graphx_2_we : std_logic;
signal fg_sp_graphx_3_we : std_logic;
signal fg_graphx_1_we : std_logic;
signal fg_graphx_2_we : std_logic;
signal fg_graphx_3_we : std_logic;
constant HW_BTIME : integer := 0;
constant HW_TISLAND : integer := 1;
begin
--process (clock_12, cpu_sync)
@@ -256,11 +241,60 @@ end process;
hcnt_flip <= hcnt when cocktail_flip = '0' else not hcnt;
vcnt_flip <= not vcnt when cocktail_flip = '0' else vcnt;
dip_sw1 <= vblank & DSW1;
dip_sw2 <= DSW2;
btn_p1 <= P1;
btn_p2 <= P2;
btn_system <= SYS;
--ROM_START( btime )
-- ROM_REGION( 0x10000, "maincpu", 0 )
-- ROM_LOAD( "aa04.9b", 0xc000, 0x1000, CRC(368a25b5) SHA1(ed3f3712423979dcb351941fa85dce6a0a7bb16b) )
-- ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) )
-- ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) )
-- ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) )
--
-- ROM_REGION( 0x10000, "audiocpu", 0 )
-- ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) )
--
-- ROM_REGION( 0x6000, "gfx1", 0 )
-- ROM_LOAD( "aa12.7k", 0x0000, 0x1000, CRC(c4617243) SHA1(24204d591aa2c264a852ee9ba8c4be63efd97728) ) /* charset #1 */
-- ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) )
-- ROM_LOAD( "ab10.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) )
-- ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) )
-- ROM_LOAD( "aa8.13k", 0x4000, 0x1000, CRC(8650c788) SHA1(d9b1ee2d1f2fd66705d497c80252861b49aa9254) )
-- ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) )
--
-- ROM_REGION( 0x1800, "gfx2", 0 )
-- ROM_LOAD( "ab00.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) /* charset #2 */
-- ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) )
-- ROM_LOAD( "ab02.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) )
--
-- ROM_REGION( 0x0800, "bg_map", 0 ) /* background tilemaps */
-- ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) )
--ROM_END
--static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8, btime_state )
-- AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
-- AM_RANGE(0x0c00, 0x0c0f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
-- AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
-- AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram")
-- AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
-- AM_RANGE(0x1c00, 0x1fff) AM_READWRITE(btime_mirrorcolorram_r, btime_mirrorcolorram_w)
-- AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1") AM_WRITENOP
-- AM_RANGE(0x4001, 0x4001) AM_READ_PORT("P2")
-- AM_RANGE(0x4002, 0x4002) AM_READ_PORT("SYSTEM") AM_WRITE(btime_video_control_w)
-- AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW1") AM_WRITE(audio_command_w)
-- AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW2") AM_WRITE(bnj_scroll1_w)
-- AM_RANGE(0xb000, 0xffff) AM_ROM
--ADDRESS_MAP_END
-- dip_sw1 -- unkown/cocktail/hatch/test/coinage_b[2]/coinage_a[2]
-- dip_sw2 -- off/off/off/eol pepper/enemies/bonus[2]/lives
-- btn_p1 -- nu/nu/unkonw/jump/down/up/left/right
-- btn_p2 -- nu/nu/unkonw/jump/down/up/left/right
-- btn_system -- coin2/coin1/unknown/unknown/unkown/tilt/start2/start1
dip_sw1 <= "00111111";
dip_sw2 <= "11101011";
btn_p1 <= not("000"&fire1 & down1 & up1 & left1 & right1);
btn_p2 <= not("000"&fire2 & down2 & up2 & left2 & right2);
btn_system <= ('0'&coin1) & not("0000"&start2&start1);
-- misc (coin, nmi, cocktail)
process (reset,clock_12)
@@ -269,24 +303,26 @@ begin
cpu_nmi_n <= '1';
had_written <='0';
cocktail_flip <= '0';
elsif rising_edge(clock_12)then
coin_r <= btn_system(6) or btn_system(7);
if coin_r = '0' and (btn_system(6) = '1' or btn_system(7) = '1') then
else
if rising_edge(clock_12)then
coin1_r <= coin1;
if coin1_r = '0' and coin1 = '1' then
cpu_nmi_n <= '0';
end if;
end if;
if raz_nmi_we = '1' then
cpu_nmi_n <= '1';
cpu_nmi_n <= '1';
end if;
if cpu_ena = '1' then
if cpu_rw_n = '0' then
had_written <= '1';
elsif cpu_sync = '1' then
had_written <= '0';
elsif cpu_sync = '1' then
had_written <= '0';
end if;
end if;
if cocktail_we = '1' then
cocktail_flip <= dip_sw1(6) and cpu_do(0);
end if;
end if;
end if;
end process;
@@ -298,10 +334,10 @@ 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 downto 14) = "11" else '0'; -- program rom c000-ffff
-- write enable
wram_we <= '1' when wram_cs = '1' and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 0000-07ff
wram_we <= '1' when wram_cs = '1' and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 0000-07ff
raz_nmi_we <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "000" and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 4000
scroll1_we <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "100" and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 4004
scroll2_we <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "101" and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 4005
@@ -314,7 +350,7 @@ palette_we <= '1' when palette_cs = '1' and cpu_rw_n =
-- cpu di mux
cpu_di <= wram_do when wram_cs = '1' else
prog_rom_do when prog_rom_cs = '1' else
dip_sw1 when (io_cs = '1') and (cpu_addr(2 downto 0) = "011") else
vblank&dip_sw1(6 downto 0) when (io_cs = '1') and (cpu_addr(2 downto 0) = "011") else
dip_sw2 when (io_cs = '1') and (cpu_addr(2 downto 0) = "100") else
btn_p1 when (io_cs = '1') and (cpu_addr(2 downto 0) = "000") else
btn_p2 when (io_cs = '1') and (cpu_addr(2 downto 0) = "001") else
@@ -326,7 +362,7 @@ cpu_di <= wram_do when wram_cs = '1' else
-- decrypt fetched instruction
decrypt <= '1' when ((cpu_addr(15 downto 0) and X"0104") = X"0104") and (cpu_sync = '1') and (had_written = '1') else '0';
cpu_di_dec <= cpu_di when decrypt = '0' else
cpu_di(6) & cpu_di(5) & cpu_di(3) & cpu_di(4) & cpu_di(2) & cpu_di(7) & cpu_di(1 downto 0);
cpu_di(6) & cpu_di(5) & cpu_di(3) & cpu_di(4) & cpu_di(2) & cpu_di(7) & cpu_di(1 downto 0);
----------------------------
-- foreground and sprites --
@@ -410,15 +446,9 @@ begin
if rising_edge(clock_12) and clock_6 = '1' then
if hcnt(2 downto 0) = "101" then
if display_tile = '1' then
if hcnt8_r = '1' or hwsel = HW_BTIME then
fg_sp_grphx_1 <= fg_sp_grphx_1_do;
fg_sp_grphx_2 <= fg_sp_grphx_2_do;
fg_sp_grphx_3 <= fg_sp_grphx_3_do;
else
fg_sp_grphx_1 <= fg_grphx_1_do;
fg_sp_grphx_2 <= fg_grphx_2_do;
fg_sp_grphx_3 <= fg_grphx_3_do;
end if;
fg_sp_grphx_1 <= fg_grphx_1_do;
fg_sp_grphx_2 <= fg_grphx_2_do;
fg_sp_grphx_3 <= fg_grphx_3_do;
fg_low_priority <= '1'; --fg_grphx_addr(10); -- #fg_ram_low_do(7) (always 1 for burger time)
else
fg_sp_grphx_1 <= (others =>'0');
@@ -445,7 +475,7 @@ sprite_buffer_di <= "000" when hcnt8_rr = '0' else -- clear ram after
sprite_buffer_do when fg_sp_bits = "000" else fg_sp_bits; -- sp vs sp priority rules
-- read sprite buffer
process (clock_12,clock_6)
process (clock_12)
begin
if rising_edge(clock_12) and clock_6 = '0' then
if hcnt8_rr = '0' then
@@ -464,7 +494,7 @@ fg_bits <= sp_bits_out when (fg_sp_bits = "000") or (sp_bits_out/="000" and fg_l
----------------
-- latch scroll1 & 2 data
process (clock_12n,clock_6)
process (clock_12n)
begin
if rising_edge(clock_12n) and clock_6 = '1' then
if scroll1_we = '1' then
@@ -480,10 +510,10 @@ 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 <= '0'&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(7 downto 4);
-- manage background graphics rom address
process (clock_12,clock_6)
process (clock_12)
begin
if rising_edge(clock_12) and clock_6 = '0' then
if bg_scan_hcnt(2 downto 0) = "000" then
@@ -493,7 +523,7 @@ begin
end process;
-- latch and shift background graphics
process (clock_12,clock_6)
process (clock_12)
begin
if rising_edge(clock_12) and clock_6 = '1' then
if scroll1(4) = '0' then
@@ -525,9 +555,9 @@ bg_bits <= bg_grphx_3(0) & bg_grphx_2(0) & bg_grphx_1(0) when cocktail_flip = '0
palette_addr <= cpu_addr(3 downto 0) when palette_we = '1' else
'1'&bg_bits when fg_bits = "000" else
'0'&fg_bits;
-- get palette output
process (clock_12,clock_6)
process (clock_12)
begin
if rising_edge(clock_12) and clock_6 = '0' then
video_r <= not palette_do(2 downto 0);
@@ -542,7 +572,7 @@ end process;
video_csync <= csync;
process(clock_12,clock_6)
process(clock_12)
constant hcnt_base : integer := 312; --320
variable vsync_cnt : std_logic_vector(3 downto 0);
begin
@@ -594,6 +624,8 @@ if rising_edge(clock_12) and clock_6 = '1' then
end if;
-- external sync and blank outputs
video_blankn <= not (hblank or vblank);
video_hs <= hsync0;
if vsync_cnt = 0 then video_vs <= '0';
@@ -602,9 +634,6 @@ if rising_edge(clock_12) and clock_6 = '1' then
end if;
end process;
video_hblank <= hblank;
video_vblank <= vblank;
---------------------------
-- components
@@ -649,15 +678,12 @@ port map(
);
-- program rom
--program_rom: entity work.prog
--port map(
-- clk => clock_12n,
-- addr => cpu_addr(14 downto 0),
-- data => prog_rom_do
--);
prg_rom_addr <= cpu_addr(14 downto 0);
prog_rom_do <= prg_rom_do;
program_rom: entity work.burger_time_prog
port map(
clk => clock_12n,
addr => cpu_addr(13 downto 0),
data => prog_rom_do
);
-- foreground ram low
fg_ram_low : entity work.gen_ram
@@ -681,93 +707,30 @@ port map(
q => fg_ram_high_do
);
-- foreground/sprite roms
fg_sp_graphx_1: entity work.dpram
generic map( dWidth => 8, aWidth => 13)
-- foreground and sprite graphix rom bit #1
fg_sp_graphx_1: entity work.fg_sp_graphx_1
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr,
q_a => fg_sp_grphx_1_do,
clk_b => dl_clk,
addr_b => dl_addr(12 downto 0),
we_b => fg_sp_graphx_1_we,
d_b => dl_data
clk => clock_12n,
addr => fg_grphx_addr,
data => fg_grphx_1_do
);
fg_sp_graphx_1_we <= '1' when dl_wr = '1' and dl_addr(16 downto 13) = "0110" else '0'; -- 0C000 - 0DFFF
fg_sp_graphx_2: entity work.dpram
generic map( dWidth => 8, aWidth => 13)
-- foreground and sprite graphix rom bit #2
fg_sp_graphx_2: entity work.fg_sp_graphx_2
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr,
q_a => fg_sp_grphx_2_do,
clk_b => dl_clk,
addr_b => dl_addr(12 downto 0),
we_b => fg_sp_graphx_2_we,
d_b => dl_data
clk => clock_12n,
addr => fg_grphx_addr,
data => fg_grphx_2_do
);
fg_sp_graphx_2_we <= '1' when dl_wr = '1' and dl_addr(16 downto 13) = "0111" else '0'; -- 0E000 - 0FFFF
fg_sp_graphx_3: entity work.dpram
generic map( dWidth => 8, aWidth => 13)
-- foreground and sprite graphix rom bit #3
fg_sp_graphx_3: entity work.fg_sp_graphx_3
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr,
q_a => fg_sp_grphx_3_do,
clk_b => dl_clk,
addr_b => dl_addr(12 downto 0),
we_b => fg_sp_graphx_3_we,
d_b => dl_data
clk => clock_12n,
addr => fg_grphx_addr,
data => fg_grphx_3_do
);
fg_sp_graphx_3_we <= '1' when dl_wr = '1' and dl_addr(16 downto 13) = "1000" else '0'; -- 10000 - 11FFF
-- foreground only rom (tisland, zoar)
fg_graphx_1: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr(11 downto 0),
q_a => fg_grphx_1_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => fg_graphx_1_we,
d_b => dl_data
);
fg_graphx_1_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "10010" else '0'; -- 12000 - 12FFF
fg_graphx_2: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr(11 downto 0),
q_a => fg_grphx_2_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => fg_graphx_2_we,
d_b => dl_data
);
fg_graphx_2_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "10011" else '0'; -- 13000 - 13FFF
fg_graphx_3: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr(11 downto 0),
q_a => fg_grphx_3_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => fg_graphx_3_we,
d_b => dl_data
);
fg_graphx_3_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "10100" else '0'; -- 14000 - 14FFF
-- sprite buffer ram
sprite_buffer_ram : entity work.gen_ram
generic map( dWidth => 3, aWidth => 8)
@@ -790,64 +753,40 @@ port map(
q => palette_do
);
bg_map: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
-- background map rom
bg_map: entity work.bg_map
port map(
clk_a => clock_12n,
addr_a => bg_map_addr,
q_a => bg_map_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => bg_map_we,
d_b => dl_data
clk => clock_12n,
addr => bg_map_addr,
data => bg_map_do
);
bg_map_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "01001" else '0'; -- 09000 - 09FFF
bg_graphx_1: entity work.dpram
generic map( dWidth => 8, aWidth => 11)
-- background graphix rom bit #1
bg_graphx_1: entity work.bg_graphx_1
port map(
clk_a => clock_12n,
addr_a => bg_grphx_addr,
q_a => bg_grphx_1_do,
clk_b => dl_clk,
addr_b => dl_addr(10 downto 0),
we_b => bg_graphx_1_we,
d_b => dl_data
clk => clock_12n,
addr => bg_grphx_addr,
data => bg_grphx_1_do
);
bg_graphx_1_we <= '1' when dl_wr = '1' and dl_addr(16 downto 11) = "010100" else '0'; -- 0A000 - 0A7FF
bg_graphx_2: entity work.dpram
generic map( dWidth => 8, aWidth => 11)
-- background graphix rom bit #2
bg_graphx_2: entity work.bg_graphx_2
port map(
clk_a => clock_12n,
addr_a => bg_grphx_addr,
q_a => bg_grphx_2_do,
clk_b => dl_clk,
addr_b => dl_addr(10 downto 0),
we_b => bg_graphx_2_we,
d_b => dl_data
clk => clock_12n,
addr => bg_grphx_addr,
data => bg_grphx_2_do
);
bg_graphx_2_we <= '1' when dl_wr = '1' and dl_addr(16 downto 11) = "010101" else '0'; -- 0A800 - 0AFFF
bg_graphx_3: entity work.dpram
generic map( dWidth => 8, aWidth => 11)
-- background graphix rom bit #3
bg_graphx_3: entity work.bg_graphx_3
port map(
clk_a => clock_12n,
addr_a => bg_grphx_addr,
q_a => bg_grphx_3_do,
clk_b => dl_clk,
addr_b => dl_addr(10 downto 0),
we_b => bg_graphx_3_we,
d_b => dl_data
clk => clock_12n,
addr => bg_grphx_addr,
data => bg_grphx_3_do
);
bg_graphx_3_we <= '1' when dl_wr = '1' and dl_addr(16 downto 11) = "010110" else '0'; -- 0B000 - 0B7FF
-- sound part
Sound: entity work.burger_time_sound
-- burger time sound part
burger_tiime_sound: entity work.burger_time_sound
port map(
clock_12 => clock_12,
reset => reset,
@@ -857,9 +796,8 @@ port map(
sound_timing => vcnt(3),
audio_out => audio_out,
snd_rom_addr => snd_rom_addr,
snd_rom_do => snd_rom_do,
dbg_cpu_addr => open
dbg_cpu_addr => dbg_cpu_addr
);
end SYN;

View File

@@ -0,0 +1,163 @@
module burger_time_mist(
output LED,
output [5:0] VGA_R,
output [5:0] VGA_G,
output [5:0] VGA_B,
output VGA_HS,
output VGA_VS,
output AUDIO_L,
output AUDIO_R,
input SPI_SCK,
output SPI_DO,
input SPI_DI,
input SPI_SS2,
input SPI_SS3,
input CONF_DATA0,
input CLOCK_27
);
`include "rtl\build_id.v"
localparam CONF_STR = {
"BurgerTime;;",
"O2,Rotate Controls,Off,On;",
"O34,Scanlines,Off,25%,50%,75%;",
"O6,Blend,Off,On;",
"T0,Reset;",
"V,v1.15.",`BUILD_DATE
};
assign LED = 1;
assign AUDIO_R = AUDIO_L;
wire clk_48, clk_12, clk_6, clk_24;
wire pll_locked;
pll pll(
.inclk0(CLOCK_27),
.areset(0),
.c0(clk_12),
.c1(clk_24)
);
wire [63:0] status;
wire [1:0] buttons;
wire [1:0] switches;
wire [31:0] joystick_0,joystick_1;
wire scandoublerD;
wire ypbpr;
wire key_strobe;
wire key_pressed;
wire [7:0] key_code;
wire no_csync;
wire [10:0] audio;
wire hs, vs, cs;
wire [2:0] r, g;
wire [1:0] b;
wire blankn;
burger_time burger_time(
.clock_12(clk_12),
.reset(status[0] | buttons[1]),
.video_r(r),
.video_g(g),
.video_b(b),
.video_csync(cs),
.video_blankn(blankn),
.video_hs(hs),
.video_vs(vs),
.audio_out(audio),
.start2(m_two_players),
.start1(m_one_player),
.coin1(m_coin1),
.fire1(m_fireA),
.right1(m_right),
.left1(m_left),
.down1(m_down),
.up1(m_up),
.fire2(m_fire2A),
.right2(m_right2),
.left2(m_left2),
.down2(m_down2),
.up2(m_up2)
);
mist_video #(
.COLOR_DEPTH(3),
.SD_HCNT_WIDTH(10))
mist_video(
.clk_sys ( clk_24 ),
.SPI_SCK ( SPI_SCK ),
.SPI_SS3 ( SPI_SS3 ),
.SPI_DI ( SPI_DI ),
.R ( blankn ? r : 0 ),
.G ( blankn ? g : 0 ),
.B ( blankn ? {b[1], b} : 0 ),
.HSync ( hs ),
.VSync ( vs ),
.VGA_R ( VGA_R ),
.VGA_G ( VGA_G ),
.VGA_B ( VGA_B ),
.VGA_VS ( VGA_VS ),
.VGA_HS ( VGA_HS ),
.scanlines (scandoublerD ? 2'b00 : status[4:3]),
.rotate ( {1'b1,status[2]} ),
.ce_divider ( 1'b1 ),
.blend ( status[6] ),
.scandoubler_disable(scandoublerD ),
.no_csync ( no_csync ),
.ypbpr ( ypbpr )
);
user_io #(
.STRLEN(($size(CONF_STR)>>3)))
user_io(
.clk_sys (clk_24 ),
.conf_str (CONF_STR ),
.SPI_CLK (SPI_SCK ),
.SPI_SS_IO (CONF_DATA0 ),
.SPI_MISO (SPI_DO ),
.SPI_MOSI (SPI_DI ),
.buttons (buttons ),
.switches (switches ),
.scandoubler_disable (scandoublerD ),
.ypbpr (ypbpr ),
.no_csync (no_csync ),
.key_strobe (key_strobe ),
.key_pressed (key_pressed ),
.key_code (key_code ),
.joystick_0 (joystick_0 ),
.joystick_1 (joystick_1 ),
.status (status )
);
dac #(11) dac(
.clk_i(clk_12),
.res_n_i(1),
.dac_i(audio),
.dac_o(AUDIO_L)
);
wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF;
wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F;
wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players;
arcade_inputs inputs (
.clk ( clk_24 ),
.key_strobe ( key_strobe ),
.key_pressed ( key_pressed ),
.key_code ( key_code ),
.joystick_0 ( joystick_0 ),
.joystick_1 ( joystick_1 ),
.rotate ( status[2] ),
.orientation ( 2'b11 ),
.joyswap ( 1'b0 ),
.oneplayer ( 1'b0 ),
.controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ),
.player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ),
.player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} )
);
endmodule

File diff suppressed because one or more lines are too long

View File

@@ -14,7 +14,7 @@
// ************************************************************
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
//
// 13.1.4 Build 182 03/12/2014 SJ Web Edition
// 13.1.4 Build 182 03/12/2014 Patches 4.26 SJ Web Edition
// ************************************************************
@@ -40,14 +40,12 @@ module pll (
areset,
inclk0,
c0,
c1,
locked);
c1);
input areset;
input inclk0;
output c0;
output c1;
output locked;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
@@ -57,21 +55,18 @@ module pll (
`endif
wire [4:0] sub_wire0;
wire sub_wire2;
wire [0:0] sub_wire6 = 1'h0;
wire [0:0] sub_wire3 = sub_wire0[0:0];
wire [0:0] sub_wire5 = 1'h0;
wire [0:0] sub_wire2 = sub_wire0[0:0];
wire [1:1] sub_wire1 = sub_wire0[1:1];
wire c1 = sub_wire1;
wire locked = sub_wire2;
wire c0 = sub_wire3;
wire sub_wire4 = inclk0;
wire [1:0] sub_wire5 = {sub_wire6, sub_wire4};
wire c0 = sub_wire2;
wire sub_wire3 = inclk0;
wire [1:0] sub_wire4 = {sub_wire5, sub_wire3};
altpll altpll_component (
.areset (areset),
.inclk (sub_wire5),
.inclk (sub_wire4),
.clk (sub_wire0),
.locked (sub_wire2),
.activeclock (),
.clkbad (),
.clkena ({6{1'b1}}),
@@ -87,6 +82,7 @@ module pll (
.fbout (),
.fref (),
.icdrclk (),
.locked (),
.pfdena (1'b1),
.phasecounterselect ({4{1'b1}}),
.phasedone (),
@@ -109,11 +105,11 @@ module pll (
altpll_component.bandwidth_type = "AUTO",
altpll_component.clk0_divide_by = 9,
altpll_component.clk0_duty_cycle = 50,
altpll_component.clk0_multiply_by = 16,
altpll_component.clk0_multiply_by = 4,
altpll_component.clk0_phase_shift = "0",
altpll_component.clk1_divide_by = 9,
altpll_component.clk1_duty_cycle = 50,
altpll_component.clk1_multiply_by = 4,
altpll_component.clk1_multiply_by = 8,
altpll_component.clk1_phase_shift = "0",
altpll_component.compensate_clock = "CLK0",
altpll_component.inclk0_input_frequency = 37037,
@@ -132,7 +128,7 @@ module pll (
altpll_component.port_fbin = "PORT_UNUSED",
altpll_component.port_inclk0 = "PORT_USED",
altpll_component.port_inclk1 = "PORT_UNUSED",
altpll_component.port_locked = "PORT_USED",
altpll_component.port_locked = "PORT_UNUSED",
altpll_component.port_pfdena = "PORT_UNUSED",
altpll_component.port_phasecounterselect = "PORT_UNUSED",
altpll_component.port_phasedone = "PORT_UNUSED",
@@ -163,7 +159,6 @@ module pll (
altpll_component.port_extclk1 = "PORT_UNUSED",
altpll_component.port_extclk2 = "PORT_UNUSED",
altpll_component.port_extclk3 = "PORT_UNUSED",
altpll_component.self_reset_on_loss_lock = "OFF",
altpll_component.width_clock = 5;
@@ -188,12 +183,12 @@ endmodule
// Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0"
// Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0"
// Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8"
// Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "33"
// Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "9"
// Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "9"
// Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000"
// Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "48.000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "12.000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "12.000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "24.000000"
// Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
// Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0"
// Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1"
@@ -209,20 +204,20 @@ endmodule
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz"
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III"
// Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1"
// Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "0"
// Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0"
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg"
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "ps"
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "deg"
// Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any"
// Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0"
// Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0"
// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "70"
// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "8"
// Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "4"
// Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "48.00000000"
// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "12.00000000"
// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "12.00000000"
// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "24.00000000"
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz"
@@ -270,11 +265,11 @@ endmodule
// Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO"
// Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "9"
// Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "16"
// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "4"
// Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
// Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "9"
// Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50"
// Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "4"
// Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "8"
// Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0"
// Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0"
// Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037"
@@ -292,7 +287,7 @@ endmodule
// Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED"
@@ -323,20 +318,17 @@ endmodule
// Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: SELF_RESET_ON_LOSS_LOCK STRING "OFF"
// Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5"
// Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]"
// Retrieval info: USED_PORT: areset 0 0 0 0 INPUT GND "areset"
// Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0"
// Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1"
// Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0"
// Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked"
// Retrieval info: CONNECT: @areset 0 0 0 0 areset 0 0 0 0
// Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0
// Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0
// Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0
// Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1
// Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.ppf TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.inc FALSE

View File

@@ -0,0 +1,31 @@
# -------------------------------------------------------------------------- #
#
# Copyright (C) 2016 Intel Corporation. All rights reserved.
# Your use of Intel 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 Intel Program License
# Subscription Agreement, the Intel Quartus Prime License Agreement,
# the Intel 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 Intel and sold by Intel or its
# authorized distributors. Please refer to the applicable
# agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus Prime
# Version 16.1.0 Build 196 10/24/2016 SJ Lite Edition
# Date created = 21:51:49 December 06, 2017
#
# -------------------------------------------------------------------------- #
QUARTUS_VERSION = "16.1"
DATE = "21:51:49 December 06, 2017"
# Revisions
PROJECT_REVISION = "Burgertime"

View File

@@ -0,0 +1,246 @@
---------------------------------------------------------------------------------
--
-- Arcade: Treasure Island for MiST
-- 18 December 2017
--
---------------------------------------------------------------------------------
-- Copyright (c) DAR - Dez 2017
-- https://sourceforge.net/projects/darfpga/files/Software%20VHDL/burger_time/
---------------------------------------------------------------------------------
--
-- Only controls are rotated on VGA output.
--
--
-- Keyboard inputs :
--
-- ESC : Coin
-- F1 : Start 1 player
-- F2 : Start 2 players
-- SPACE : Pepper
-- LALT :
-- ARROW KEYS : Movement
--
-- Joystick support.
--
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-- Burger Time by Dar (darfpga@aol.fr) (27/12/2017)
-- http://darfpga.blogspot.fr
---------------------------------------------------------------------------------
-- Educational use only
-- Do not redistribute synthetized file with roms
-- Do not redistribute roms whatever the form
-- Use at your own risk
---------------------------------------------------------------------------------
-- gen_ram.vhd & io_ps2_keyboard
--------------------------------
-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
-- http://www.syntiac.com/fpga64.html
---------------------------------------------------------------------------------
-- T65(b) core.Ver 301 by MikeJ March 2005
-- Latest version from www.fpgaarcade.com (original www.opencores.org)
---------------------------------------------------------------------------------
-- YM2149 (AY-3-8910)
-- Copyright (c) MikeJ - Jan 2005
---------------------------------------------------------------------------------
-- Use burger_time_de10_lite.sdc to compile (Timequest constraints)
-- /!\
-- Don't forget to set device configuration mode with memory initialization
-- (Assignments/Device/Pin options/Configuration mode)
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
--
-- Main features :
-- PS2 keyboard input @gpio pins 35/34 (beware voltage translation/protection)
-- Audio pwm output @gpio pins 1/3 (beware voltage translation/protection)
--
-- Uses 1 pll for 12MHz generation from 50MHz
--
-- Board key :
-- 0 : reset game
--
-- Keyboard players inputs :
--
-- F3 : Add coin
-- F2 : Start 2 players
-- F1 : Start 1 player
-- SPACE : pepper
-- RIGHT arrow : move right
-- LEFT arrow : move left
-- UP arrow : move up
-- DOWN arrow : move down
--
-- Other details : see burger_time.vhd
-- For USB inputs and SGT5000 audio output see my other project: xevious_de10_lite
---------------------------------------------------------------------------------
-- Use burger_time_de10_lite.sdc to compile (Timequest constraints)
-- /!\
-- Don't forget to set device configuration mode with memory initialization
-- (Assignments/Device/Pin options/Configuration mode)
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-- Features :
-- TV 15KHz mode only (atm)
-- Coctail mode ok
-- Sound ok
-- No external RAM/SDRAM required
-- Use with MAME roms from btime.zip
--
-- Use make_burger_time_proms.bat to build vhd file from binaries
-- Burger Time Hardware caracteristics :
--
-- VIDEO : 1x6502@750kHz CPU accessing its program rom, working ram,
-- foreground and sprite data ram, I/O, sound board register and trigger.
-- 16Kx8bits program rom
-- 2Kb8bits working ram
--
-- One char 8x8 tile map 32x30 + sprites data
-- 1Kx8bits + 1Kx2bits
-- 3x8Kx8bits graphics rom 3bits/pixel
-- 8 colors with ram palette
--
-- 8 sprites 16*16 with priorities and flip H/V
-- use char graphics rom and colors
--
-- Char/sprites 8 colors among 256 colors
-- 8bits 3red/3green/2blue
--
-- Sprites buffer rams 3x256bits
--
-- Background static tile map with scroll
-- 2K*8bits tile map rom
-- 3x2K*8bits graphics rom 3bits/pixel
-- 8 colors with ram palette
-- 16x16 tiles
--
-- SOUND : 1x6502@500kHz CPU accessing its program rom, working ram, 2x-AY3-8910,
-- command registers, triggers.
-- 2Kx8bits working ram
-- 4Kx8bits program rom
--
-- 1xAY-3-8910
-- 3 sound channels
-- 1xAY-3-8910
-- 3 sound channels
--
-- Pass band active filter on channel A of AY#2
--
+----------------------------------------------------------------------------------+
; Fitter Summary ;
+------------------------------------+---------------------------------------------+
; Fitter Status ; Successful - Wed Dec 27 10:02:23 2017 ;
; Quartus Prime Version ; 16.1.0 Build 196 10/24/2016 SJ Lite Edition ;
; Revision Name ; burger_time_de10_lite ;
; Top-level Entity Name ; burger_time_de10_lite ;
; Family ; MAX 10 ;
; Device ; 10M50DAF484C6GES ;
; Timing Models ; Preliminary ;
; Total logic elements ; 3,540 / 49,760 ( 7 % ) ;
; Total combinational functions ; 3,382 / 49,760 ( 7 % ) ;
; Dedicated logic registers ; 1,090 / 49,760 ( 2 % ) ;
; Total registers ; 1090 ;
; Total pins ; 105 / 360 ( 29 % ) ;
; Total virtual pins ; 0 ;
; Total memory bits ; 465,792 / 1,677,312 ( 28 % ) ;
; Embedded Multiplier 9-bit elements ; 0 / 288 ( 0 % ) ;
; Total PLLs ; 1 / 4 ( 25 % ) ;
; UFM blocks ; 0 / 1 ( 0 % ) ;
; ADC blocks ; 0 / 2 ( 0 % ) ;
+------------------------------------+---------------------------------------------+
---------------
VHDL File list
---------------
max10_pll_12M.vhd Pll 12MHz and 14 MHz from 50MHz altera mf
rtl_dar/burger_time_de10_lite.vhd Top level for de10_lite board
rtl_dar/burger_time.vhd Main video board logic
rtl_dar/burger_time_sound.vhd Main sound board logic
rtl_mikej/YM2149_linmix_sep.vhd Copyright (c) MikeJ - Jan 2005
t65/T65.vhd Copyright (c) MikeJ - Jan 2005t65/T65_Pack.vhdt65/T65_MCode.vhdt65/T65_ALU.vhd
rtl_dar/kbd_joystick.vhd Keyboard key to player/coin input
rtl_dar/io_ps2_keyboard.vhd Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
rtl_dar/gen_ram.vhd Generic RAM (Peter Wendrich + DAR Modification)
rtl_dar/decodeur_7_seg.vhd 7 segments display decoder
burger_time_prog.vhd Burger Time video board PROMs
fg_sp_graphx_3.vhd
fg_sp_graphx_2.vhd
fg_sp_graphx_1.vhd
bg_map.vhd
bg_graphx_3.vhd
bg_graphx_2.vhd
bg_graphx_1.vhd
burger_time_sound_prog.vhd Burger Time sound board PROM
----------------------
Quartus project files
----------------------
de10_lite/burger_time_de10_lite.sdc Timequest constraints file
de10_lite/burger_time_de10_lite.qsf de10_lite settings (files,pins...)
de10_lite/burger_time_de10_lite.qpf de10_lite project
-----------------------------
Required ROMs (Not included)
-----------------------------
You need the following 15 ROMs binary files from btime.zip (MAME)
aa04.9b, aa06.13b, aa05.10b, aa07.15b
aa12.7k, ab13.9k
ab10.10k, ab11.12k
aa8.13k, ab9.15k
ab00.1b
ab01.3b
ab02.4b
ab03.6b
ab14.12h
------
Tools
------
You need to build vhdl files from the binary file :
- Unzip the roms file in the tools/burger_time_unzip directory
- Double click (execute) the script tools/make_burger_time_proms.bat to get the following files
burger_time_prog.vhd : aa04.9b + aa06.13b + aa05.10b + aa07.15b
fg_sp_graphx_1.vhd : aa12.7k + ab13.9k
fg_sp_graphx_2.vhd : ab10.10k + ab11.12k
fg_sp_graphx_3.vhd : aa8.13k + ab9.15k
bg_graphx_1.vhd : ab00.1b
bg_graphx_2.vhd : ab01.3b
bg_graphx_3.vhd : ab02.4b
bg_map.vhd : ab03.6b
burger_time_sound_prog.vhd : ab14.12h
*DO NOT REDISTRIBUTE THESE FILES*
VHDL files are needed to compile and include roms into the project
The script make_burger_time_proms.bat uses make_vhdl_prom executables delivered both in linux and windows version. The script itself is delivered only in windows version (.bat) but should be easily ported to linux.
Source code of make_vhdl_prom.c is also delivered.
---------------------------------
Compiling for de10_lite
---------------------------------
You can build the project with ROM image embeded in the sof file.
*DO NOT REDISTRIBUTE THESE FILES*
3 steps
- put the VHDL ROM files (.vhd) into the rtl_dar directory
- build burger_time_de10_lite
- program burger_time_de10_lite.sof
------------------------
------------------------
End of file
------------------------

View File

@@ -0,0 +1,15 @@
@echo off
del /s *.bak
del /s *.orig
del /s *.rej
rmdir /s /q db
rmdir /s /q incremental_db
rmdir /s /q output_files
rmdir /s /q simulation
rmdir /s /q greybox_tmp
del PLLJ_PLLSPE_INFO.txt
del *.qws
del *.ppf
del *.qip
del *.ddb
pause

View File

@@ -178,7 +178,8 @@ wire [10:0] audio;
wire hs, vs, cs;
wire [2:0] r, g;
wire [1:0] b;
wire hb, vb, blankn = ~(hb | vb);
wire hb, vb;
wire blankn = ~(hb | vb);
burger_time burger_time (
.clock_12 (clk_12),

View File

@@ -0,0 +1,35 @@
# ================================================================================
#
# Build ID Verilog Module Script
# Jeff Wiencrot - 8/1/2011
#
# Generates a Verilog module that contains a timestamp,
# from the current build. These values are available from the build_date, build_time,
# physical_address, and host_name output ports of the build_id module in the build_id.v
# Verilog source file.
#
# ================================================================================
proc generateBuildID_Verilog {} {
# Get the timestamp (see: http://www.altera.com/support/examples/tcl/tcl-date-time-stamp.html)
set buildDate [ clock format [ clock seconds ] -format %y%m%d ]
set buildTime [ clock format [ clock seconds ] -format %H%M%S ]
# Create a Verilog file for output
set outputFileName "rtl/build_id.v"
set outputFile [open $outputFileName "w"]
# Output the Verilog source
puts $outputFile "`define BUILD_DATE \"$buildDate\""
puts $outputFile "`define BUILD_TIME \"$buildTime\""
close $outputFile
# Send confirmation message to the Messages window
post_message "Generated build identification Verilog module: [pwd]/$outputFileName"
post_message "Date: $buildDate"
post_message "Time: $buildTime"
}
# Comment out this line to prevent the process from automatically executing when the file is sourced:
generateBuildID_Verilog

View File

@@ -0,0 +1,865 @@
---------------------------------------------------------------------------------
-- burger time by Dar (darfpga@aol.fr) (27/12/2017)
-- http://darfpga.blogspot.fr
---------------------------------------------------------------------------------
-- Educational use only
-- Do not redistribute synthetized file with roms
-- Do not redistribute roms whatever the form
-- Use at your own risk
---------------------------------------------------------------------------------
-- gen_ram.vhd & io_ps2_keyboard
--------------------------------
-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
-- http://www.syntiac.com/fpga64.html
---------------------------------------------------------------------------------
-- T65(b) core.Ver 301 by MikeJ March 2005
-- Latest version from www.fpgaarcade.com (original www.opencores.org)
---------------------------------------------------------------------------------
-- YM2149 (AY-3-8910)
-- Copyright (c) MikeJ - Jan 2005
---------------------------------------------------------------------------------
-- Use burger_timer_de10_lite.sdc to compile (Timequest constraints)
-- /!\
-- Don't forget to set device configuration mode with memory initialization
-- (Assignments/Device/Pin options/Configuration mode)
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
entity burger_time is
port
(
clock_12 : in std_logic;
reset : in std_logic;
hwsel : in integer range 0 to 1;
video_r : out std_logic_vector(2 downto 0);
video_g : out std_logic_vector(2 downto 0);
video_b : out std_logic_vector(1 downto 0);
video_hs : out std_logic;
video_vs : out std_logic;
video_hblank : out std_logic;
video_vblank : out std_logic;
video_csync : out std_logic;
audio_out : out std_logic_vector(10 downto 0);
P1 : in std_logic_vector(7 downto 0);
P2 : in std_logic_vector(7 downto 0);
SYS : in std_logic_vector(7 downto 0);
DSW1 : in std_logic_vector(6 downto 0);
DSW2 : in std_logic_vector(7 downto 0);
prg_rom_addr : out std_logic_vector(14 downto 0);
prg_rom_do : in std_logic_vector(7 downto 0);
snd_rom_addr : out std_logic_vector(11 downto 0);
snd_rom_do : in std_logic_vector(7 downto 0);
dl_clk : in std_logic;
dl_addr : in std_logic_vector(16 downto 0);
dl_data : in std_logic_vector(7 downto 0);
dl_wr : in std_logic
);
end burger_time;
architecture syn of burger_time is
-- clocks, reset
signal clock_12n : std_logic;
signal clock_6 : std_logic := '0';
signal reset_n : std_logic;
-- cpu signals
signal cpu_addr : std_logic_vector(23 downto 0);
signal cpu_di : std_logic_vector( 7 downto 0);
signal cpu_di_dec : std_logic_vector( 7 downto 0);
signal cpu_do : std_logic_vector( 7 downto 0);
signal cpu_rw_n : std_logic;
signal cpu_nmi_n : std_logic;
signal cpu_sync : std_logic;
signal cpu_ena : std_logic;
signal had_written : std_logic := '0';
signal decrypt : std_logic;
-- program rom signals
signal prog_rom_cs : std_logic;
signal prog_rom_do : std_logic_vector(7 downto 0);
-- working ram signals
signal wram_cs : std_logic;
signal wram_we : std_logic;
signal wram_do : std_logic_vector(7 downto 0);
-- foreground ram signals
signal fg_ram_cs : std_logic;
signal fg_ram_low_we : std_logic;
signal fg_ram_high_we : std_logic;
signal fg_ram_addr_sel : std_logic_vector(1 downto 0);
signal fg_ram_addr : std_logic_vector(9 downto 0);
signal fg_ram_low_do : std_logic_vector(7 downto 0);
signal fg_ram_high_do : std_logic_vector(1 downto 0);
-- video scan counter
signal hcnt : std_logic_vector(8 downto 0);
signal vcnt : std_logic_vector(8 downto 0);
signal hsync0 : std_logic;
signal hsync1 : std_logic;
signal hsync2 : std_logic;
signal csync : std_logic;
signal hblank : std_logic;
signal vblank : std_logic;
signal hcnt_flip : std_logic_vector(8 downto 0);
signal vcnt_flip : std_logic_vector(8 downto 0);
signal cocktail_we : std_logic;
signal cocktail_flip : std_logic := '0';
signal hcnt8_r : std_logic;
signal hcnt8_rr : std_logic;
-- io
signal io_cs : std_logic;
signal dip_sw1 : std_logic_vector(7 downto 0);
signal dip_sw2 : std_logic_vector(7 downto 0);
signal btn_p1 : std_logic_vector(7 downto 0);
signal btn_p2 : std_logic_vector(7 downto 0);
signal btn_system : std_logic_vector(7 downto 0);
-- foreground and sprite graphix
signal sprite_attr : std_logic_vector( 2 downto 0);
signal sprite_tile : std_logic_vector( 7 downto 0);
signal sprite_line : std_logic_vector( 7 downto 0);
signal sprite_buffer_addr : std_logic_vector( 7 downto 0);
signal sprite_buffer_addr_flip : std_logic_vector( 7 downto 0);
signal sprite_buffer_di : std_logic_vector( 2 downto 0);
signal sprite_buffer_do : std_logic_vector( 2 downto 0);
signal fg_grphx_addr : std_logic_vector(12 downto 0);
signal fg_grphx_addr_early : std_logic_vector(12 downto 0);
signal fg_grphx_1_do : std_logic_vector( 7 downto 0);
signal fg_grphx_2_do : std_logic_vector( 7 downto 0);
signal fg_grphx_3_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_1_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_2_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_3_do : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_1 : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_2 : std_logic_vector( 7 downto 0);
signal fg_sp_grphx_3 : std_logic_vector( 7 downto 0);
signal display_tile : std_logic;
signal fg_low_priority : std_logic;
signal fg_sp_bits : std_logic_vector( 2 downto 0);
signal sp_bits_out : std_logic_vector( 2 downto 0);
signal fg_bits : std_logic_vector( 2 downto 0);
-- color palette
signal palette_addr : std_logic_vector(3 downto 0);
signal palette_cs : std_logic;
signal palette_we : std_logic;
signal palette_do : std_logic_vector(7 downto 0);
-- background map rom
signal bg_map_addr : std_logic_vector(11 downto 0);
signal bg_map_do : std_logic_vector(7 downto 0);
-- background control
signal scroll1_we : std_logic;
signal scroll1 : std_logic_vector(4 downto 0);
signal scroll2_we : std_logic;
signal scroll2 : std_logic_vector(7 downto 0);
signal bg_hcnt : std_logic_vector( 7 downto 0);
signal bg_scan_hcnt : std_logic_vector( 9 downto 0);
signal bg_scan_addr : std_logic_vector( 9 downto 0);
signal bg_grphx_addr : std_logic_vector(10 downto 0);
signal bg_grphx_1_do : std_logic_vector( 7 downto 0);
signal bg_grphx_2_do : std_logic_vector( 7 downto 0);
signal bg_grphx_3_do : std_logic_vector( 7 downto 0);
signal bg_grphx_1 : std_logic_vector( 7 downto 0);
signal bg_grphx_2 : std_logic_vector( 7 downto 0);
signal bg_grphx_3 : std_logic_vector( 7 downto 0);
signal bg_bits : std_logic_vector( 2 downto 0);
-- misc
signal raz_nmi_we : std_logic;
signal coin_r : std_logic;
signal sound_req : std_logic;
signal bg_map_we : std_logic;
signal bg_graphx_1_we : std_logic;
signal bg_graphx_2_we : std_logic;
signal bg_graphx_3_we : std_logic;
signal fg_sp_graphx_1_we : std_logic;
signal fg_sp_graphx_2_we : std_logic;
signal fg_sp_graphx_3_we : std_logic;
signal fg_graphx_1_we : std_logic;
signal fg_graphx_2_we : std_logic;
signal fg_graphx_3_we : std_logic;
constant HW_BTIME : integer := 0;
constant HW_TISLAND : integer := 1;
begin
--process (clock_12, cpu_sync)
--begin
-- if rising_edge(clock_12) then
-- if cpu_sync = '1' then
-- dbg_cpu_addr <= cpu_addr(15 downto 0);
-- end if;
-- end if;
--end process;
reset_n <= not reset;
clock_12n <= not clock_12;
process (clock_12, reset)
begin
if reset='1' then
clock_6 <= '0';
else
if rising_edge(clock_12) then
clock_6 <= not clock_6;
end if;
end if;
end process;
-------------------
-- Video scanner --
-------------------
-- make hcnt and vcnt video scanner (from schematics !)
--
-- hcnt [0..255,256..383] => 384 pixels, 384/6Mhz => 1 line is 64us (15.625KHz)
-- vcnt [8..255,256..279] => 272 lines, 1 frame is 272 x 64us = 17.41ms (57.44Hz)
process (reset, clock_12, clock_6)
begin
if reset='1' then
hcnt <= (others => '0');
vcnt <= (others => '0');
else
if rising_edge(clock_12) and clock_6 = '1' then
hcnt <= hcnt + '1';
if hcnt = 383 then
hcnt <= (others => '0');
if vcnt = 260 then -- total should be 272 from Bump&Jump schematics !
vcnt <= (others => '0');
else
vcnt <= vcnt + '1';
end if;
end if;
end if;
end if;
end process;
hcnt_flip <= hcnt when cocktail_flip = '0' else not hcnt;
vcnt_flip <= not vcnt when cocktail_flip = '0' else vcnt;
dip_sw1 <= vblank & DSW1;
dip_sw2 <= DSW2;
btn_p1 <= P1;
btn_p2 <= P2;
btn_system <= SYS;
-- misc (coin, nmi, cocktail)
process (reset,clock_12)
begin
if reset = '1' then
cpu_nmi_n <= '1';
had_written <='0';
cocktail_flip <= '0';
elsif rising_edge(clock_12)then
coin_r <= btn_system(6) or btn_system(7);
if coin_r = '0' and (btn_system(6) = '1' or btn_system(7) = '1') then
cpu_nmi_n <= '0';
end if;
if raz_nmi_we = '1' then
cpu_nmi_n <= '1';
end if;
if cpu_ena = '1' then
if cpu_rw_n = '0' then
had_written <= '1';
elsif cpu_sync = '1' then
had_written <= '0';
end if;
end if;
if cocktail_we = '1' then
cocktail_flip <= dip_sw1(6) and cpu_do(0);
end if;
end if;
end process;
cpu_ena <= '1' when hcnt(2 downto 0) = "111" and clock_6 = '1' else '0';
-- chip select
wram_cs <= '1' when cpu_addr(15 downto 11) = "00000" else '0'; -- working ram 0000-07ff
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
-- write enable
wram_we <= '1' when wram_cs = '1' and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 0000-07ff
raz_nmi_we <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "000" and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 4000
scroll1_we <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "100" and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 4004
scroll2_we <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "101" and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 4005
cocktail_we <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "010" and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 4002
sound_req <= '1' when io_cs = '1' and cpu_addr(2 downto 0) = "011" and cpu_rw_n = '0' else '0'; -- 4003
fg_ram_low_we <= '1' when fg_ram_cs = '1' and cpu_addr(10) = '0' and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 1000-13ff & 1800-4bff
fg_ram_high_we <= '1' when fg_ram_cs = '1' and cpu_addr(10) = '1' and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 1400-17ff & 1c00-4fff
palette_we <= '1' when palette_cs = '1' and cpu_rw_n = '0' and cpu_ena = '1' else '0'; -- 0c00-0c0f
-- cpu di mux
cpu_di <= wram_do when wram_cs = '1' else
prog_rom_do when prog_rom_cs = '1' else
dip_sw1 when (io_cs = '1') and (cpu_addr(2 downto 0) = "011") else
dip_sw2 when (io_cs = '1') and (cpu_addr(2 downto 0) = "100") else
btn_p1 when (io_cs = '1') and (cpu_addr(2 downto 0) = "000") else
btn_p2 when (io_cs = '1') and (cpu_addr(2 downto 0) = "001") else
btn_system when (io_cs = '1') and (cpu_addr(2 downto 0) = "010") else
fg_ram_low_do when (fg_ram_cs = '1') and (cpu_addr(10) = '0') else
"000000"&fg_ram_high_do when (fg_ram_cs = '1') and (cpu_addr(10) = '1') else
X"FF";
-- decrypt fetched instruction
decrypt <= '1' when ((cpu_addr(15 downto 0) and X"0104") = X"0104") and (cpu_sync = '1') and (had_written = '1') else '0';
cpu_di_dec <= cpu_di when decrypt = '0' else
cpu_di(6) & cpu_di(5) & cpu_di(3) & cpu_di(4) & cpu_di(2) & cpu_di(7) & cpu_di(1 downto 0);
----------------------------
-- foreground and sprites --
----------------------------
-- foreground ram addr
fg_ram_addr_sel <= "00" when cpu_ena = '1' and cpu_addr(11) = '0' else
"01" when cpu_ena = '1' and cpu_addr(11) = '1' else
"10" when cpu_ena = '0' and hcnt(8) = '0' else
"11";
with fg_ram_addr_sel select
fg_ram_addr <= cpu_addr(4 downto 0) & cpu_addr(9 downto 5) when "00", -- cpu mirrored addressing
cpu_addr(9 downto 0) when "01", -- cpu normal addressing
vcnt_flip(7 downto 3) & hcnt_flip(7 downto 3) when "10", -- foreground tile scan addressing
"00000" & hcnt(6 downto 2) when others; -- sprite data scan addressing
-- latch sprite data,
-- manage fg and sprite graphix rom address
-- manage sprite line buffer address
process (clock_12, clock_6)
begin
if rising_edge(clock_12) and clock_6 = '1' then
if hcnt(3 downto 0) = "0000" then
sprite_attr <= fg_ram_low_do(2 downto 0);
end if;
if hcnt(3 downto 0) = "0100" then
sprite_tile <= fg_ram_low_do(7 downto 0);
end if;
if hcnt(3 downto 0) = "1000" then
if sprite_attr(1) = '0' then
sprite_line <= vcnt_flip(7 downto 0) - 0 + fg_ram_low_do(7 downto 0);
else
sprite_line <= (vcnt_flip(7 downto 0) - 0 + fg_ram_low_do(7 downto 0)) xor X"0F"; -- flip V
end if;
end if;
if hcnt(2 downto 0) = "100" then
hcnt8_r <= hcnt(8);
fg_grphx_addr_early <= fg_ram_high_do & fg_ram_low_do & vcnt_flip(2 downto 0); -- fg_ram_low_do(7) = '1' => low priority foreground
if hcnt8_r = '1' then
fg_grphx_addr <= sprite_tile & not (sprite_attr(2) xor hcnt_flip(3) xor cocktail_flip) & sprite_line(3 downto 0);
if hcnt(3) = '1' then
if (sprite_line(7 downto 4) = "1111") and (sprite_attr(0) = '1') then
display_tile <= '1';
else
display_tile <= '0';
end if;
end if;
else
fg_grphx_addr <= fg_grphx_addr_early;
display_tile <= '1';
end if;
end if;
if hcnt8_r = '1' then
if hcnt(3 downto 0) = X"D" then
sprite_buffer_addr <= fg_ram_low_do(7 downto 0);
hcnt8_rr <= '1';
else
sprite_buffer_addr <= sprite_buffer_addr + '1';
end if;
else
if hcnt(7 downto 0) = X"0D" then
sprite_buffer_addr <= X"01"; -- (others => '0');
hcnt8_rr <= '0';
else
sprite_buffer_addr <= sprite_buffer_addr + '1';
end if;
end if;
end if;
end process;
sprite_buffer_addr_flip <= not (sprite_buffer_addr) when hcnt8_rr = '0' and cocktail_flip = '1' else sprite_buffer_addr;
-- latch and shift foreground and sprite graphics
process (clock_12, clock_6)
begin
if rising_edge(clock_12) and clock_6 = '1' then
if hcnt(2 downto 0) = "101" then
if display_tile = '1' then
if hcnt8_r = '1' or hwsel = HW_BTIME then
fg_sp_grphx_1 <= fg_sp_grphx_1_do;
fg_sp_grphx_2 <= fg_sp_grphx_2_do;
fg_sp_grphx_3 <= fg_sp_grphx_3_do;
else
fg_sp_grphx_1 <= fg_grphx_1_do;
fg_sp_grphx_2 <= fg_grphx_2_do;
fg_sp_grphx_3 <= fg_grphx_3_do;
end if;
fg_low_priority <= '1'; --fg_grphx_addr(10); -- #fg_ram_low_do(7) (always 1 for burger time)
else
fg_sp_grphx_1 <= (others =>'0');
fg_sp_grphx_2 <= (others =>'0');
fg_sp_grphx_3 <= (others =>'0');
end if;
elsif cocktail_flip = '0' or hcnt8_rr = '1' then
fg_sp_grphx_1 <= '0' & fg_sp_grphx_1(7 downto 1);
fg_sp_grphx_2 <= '0' & fg_sp_grphx_2(7 downto 1);
fg_sp_grphx_3 <= '0' & fg_sp_grphx_3(7 downto 1);
else
fg_sp_grphx_1 <= fg_sp_grphx_1(6 downto 0) & '0';
fg_sp_grphx_2 <= fg_sp_grphx_2(6 downto 0) & '0';
fg_sp_grphx_3 <= fg_sp_grphx_3(6 downto 0) & '0';
end if;
end if;
end process;
fg_sp_bits <= fg_sp_grphx_3(0) & fg_sp_grphx_2(0) & fg_sp_grphx_1(0) when cocktail_flip = '0' or hcnt8_rr = '1' else
fg_sp_grphx_3(7) & fg_sp_grphx_2(7) & fg_sp_grphx_1(7);
-- data to sprite buffer
sprite_buffer_di <= "000" when hcnt8_rr = '0' else -- clear ram after read
sprite_buffer_do when fg_sp_bits = "000" else fg_sp_bits; -- sp vs sp priority rules
-- read sprite buffer
process (clock_12,clock_6)
begin
if rising_edge(clock_12) and clock_6 = '0' then
if hcnt8_rr = '0' then
sp_bits_out <= sprite_buffer_do;
else
sp_bits_out <= "000";
end if;
end if;
end process;
-- mux foreground and sprite buffer output with priorities
fg_bits <= sp_bits_out when (fg_sp_bits = "000") or (sp_bits_out/="000" and fg_low_priority = '1') else fg_sp_bits;
----------------
-- background --
----------------
-- latch scroll1 & 2 data
process (clock_12n,clock_6)
begin
if rising_edge(clock_12n) and clock_6 = '1' then
if scroll1_we = '1' then
scroll1 <= cpu_do(4 downto 0);
end if;
if scroll2_we = '1' then
scroll2 <= cpu_do;
end if;
end if;
end process;
-- manage background rom map address
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 <= '0'&scroll1(2) & bg_scan_hcnt(9 downto 4) & vcnt_flip(7 downto 4);
-- manage background graphics rom address
process (clock_12,clock_6)
begin
if rising_edge(clock_12) and clock_6 = '0' then
if bg_scan_hcnt(2 downto 0) = "000" then
bg_grphx_addr <= bg_map_do(5 downto 0) & bg_scan_hcnt(3) & vcnt_flip(3 downto 0);
end if;
end if;
end process;
-- latch and shift background graphics
process (clock_12,clock_6)
begin
if rising_edge(clock_12) and clock_6 = '1' then
if scroll1(4) = '0' then
bg_grphx_1 <= (others => '0');
bg_grphx_2 <= (others => '0');
bg_grphx_3 <= (others => '0');
else
if bg_scan_hcnt(2 downto 0) = "000" then
bg_grphx_1 <= bg_grphx_1_do;
bg_grphx_2 <= bg_grphx_2_do;
bg_grphx_3 <= bg_grphx_3_do;
elsif cocktail_flip = '0' then
bg_grphx_1 <= '0' & bg_grphx_1(7 downto 1);
bg_grphx_2 <= '0' & bg_grphx_2(7 downto 1);
bg_grphx_3 <= '0' & bg_grphx_3(7 downto 1);
else
bg_grphx_1 <= bg_grphx_1(6 downto 0) & '0';
bg_grphx_2 <= bg_grphx_2(6 downto 0) & '0';
bg_grphx_3 <= bg_grphx_3(6 downto 0) & '0';
end if;
end if;
end if;
end process;
bg_bits <= bg_grphx_3(0) & bg_grphx_2(0) & bg_grphx_1(0) when cocktail_flip = '0' else
bg_grphx_3(7) & bg_grphx_2(7) & bg_grphx_1(7);
-- manage color palette address
palette_addr <= cpu_addr(3 downto 0) when palette_we = '1' else
'1'&bg_bits when fg_bits = "000" else
'0'&fg_bits;
-- get palette output
process (clock_12,clock_6)
begin
if rising_edge(clock_12) and clock_6 = '0' then
video_r <= not palette_do(2 downto 0);
video_g <= not palette_do(5 downto 3);
video_b <= not palette_do(7 downto 6);
end if;
end process;
----------------------------
-- video syncs and blanks --
----------------------------
video_csync <= csync;
process(clock_12,clock_6)
constant hcnt_base : integer := 312; --320
variable vsync_cnt : std_logic_vector(3 downto 0);
begin
if rising_edge(clock_12) and clock_6 = '1' then
if hcnt = hcnt_base+0 then hsync0 <= '0';
elsif hcnt = hcnt_base+24 then hsync0 <= '1';
end if;
if hcnt = hcnt_base+0 then hsync1 <= '0';
elsif hcnt = hcnt_base+12 then hsync1 <= '1';
elsif hcnt = hcnt_base+192-384 then hsync1 <= '0';
elsif hcnt = hcnt_base+204-384 then hsync1 <= '1';
end if;
if hcnt = hcnt_base+0 then hsync2 <= '0';
elsif hcnt = hcnt_base+192-12-384 then hsync2 <= '1';
elsif hcnt = hcnt_base+192-384 then hsync2 <= '0';
elsif hcnt = hcnt_base+0-12 then hsync2 <= '1';
end if;
if hcnt = hcnt_base then
if vcnt = 246 then
vsync_cnt := X"0";
else
if vsync_cnt < X"F" then vsync_cnt := vsync_cnt + '1'; end if;
end if;
end if;
if vsync_cnt = 0 then csync <= hsync1;
elsif vsync_cnt = 1 then csync <= hsync1;
elsif vsync_cnt = 2 then csync <= hsync1;
elsif vsync_cnt = 3 then csync <= hsync2;
elsif vsync_cnt = 4 then csync <= hsync2;
elsif vsync_cnt = 5 then csync <= hsync2;
elsif vsync_cnt = 6 then csync <= hsync1;
elsif vsync_cnt = 7 then csync <= hsync1;
elsif vsync_cnt = 8 then csync <= hsync1;
else csync <= hsync0;
end if;
if hcnt = 267 then hblank <= '1';
elsif hcnt = 14 then hblank <= '0';
end if;
if vcnt = 248 then vblank <= '1';
elsif vcnt = 8 then vblank <= '0';
end if;
-- external sync and blank outputs
video_hs <= hsync0;
if vsync_cnt = 0 then video_vs <= '0';
elsif vsync_cnt = 8 then video_vs <= '1';
end if;
end if;
end process;
video_hblank <= hblank;
video_vblank <= vblank;
---------------------------
-- components
---------------------------
cpu_inst : entity work.T65
port map
(
Mode => "00", -- 6502
Res_n => reset_n,
Enable => cpu_ena,
Clk => clock_12,
Rdy => '1',
Abort_n => '1',
IRQ_n => '1',--cpu_irq_n,
NMI_n => cpu_nmi_n,
SO_n => '1',--cpu_so_n,
R_W_n => cpu_rw_n,
Sync => cpu_sync, -- open
EF => open,
MF => open,
XF => open,
ML_n => open,
VP_n => open,
VDA => open,
VPA => open,
A => cpu_addr,
DI => cpu_di_dec,
DO => cpu_do
);
-- working ram
wram : entity work.gen_ram
generic map( dWidth => 8, aWidth => 11)
port map(
clk => clock_12n,
we => wram_we,
addr => cpu_addr( 10 downto 0),
d => cpu_do,
q => wram_do
);
-- program rom
--program_rom: entity work.prog
--port map(
-- clk => clock_12n,
-- addr => cpu_addr(14 downto 0),
-- data => prog_rom_do
--);
prg_rom_addr <= cpu_addr(14 downto 0);
prog_rom_do <= prg_rom_do;
-- foreground ram low
fg_ram_low : entity work.gen_ram
generic map( dWidth => 8, aWidth => 10)
port map(
clk => clock_12n,
we => fg_ram_low_we,
addr => fg_ram_addr,
d => cpu_do,
q => fg_ram_low_do
);
-- foreground ram high
fg_ram_high : entity work.gen_ram
generic map( dWidth => 2, aWidth => 10)
port map(
clk => clock_12n,
we => fg_ram_high_we,
addr => fg_ram_addr,
d => cpu_do(1 downto 0),
q => fg_ram_high_do
);
-- foreground/sprite roms
fg_sp_graphx_1: entity work.dpram
generic map( dWidth => 8, aWidth => 13)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr,
q_a => fg_sp_grphx_1_do,
clk_b => dl_clk,
addr_b => dl_addr(12 downto 0),
we_b => fg_sp_graphx_1_we,
d_b => dl_data
);
fg_sp_graphx_1_we <= '1' when dl_wr = '1' and dl_addr(16 downto 13) = "0110" else '0'; -- 0C000 - 0DFFF
fg_sp_graphx_2: entity work.dpram
generic map( dWidth => 8, aWidth => 13)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr,
q_a => fg_sp_grphx_2_do,
clk_b => dl_clk,
addr_b => dl_addr(12 downto 0),
we_b => fg_sp_graphx_2_we,
d_b => dl_data
);
fg_sp_graphx_2_we <= '1' when dl_wr = '1' and dl_addr(16 downto 13) = "0111" else '0'; -- 0E000 - 0FFFF
fg_sp_graphx_3: entity work.dpram
generic map( dWidth => 8, aWidth => 13)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr,
q_a => fg_sp_grphx_3_do,
clk_b => dl_clk,
addr_b => dl_addr(12 downto 0),
we_b => fg_sp_graphx_3_we,
d_b => dl_data
);
fg_sp_graphx_3_we <= '1' when dl_wr = '1' and dl_addr(16 downto 13) = "1000" else '0'; -- 10000 - 11FFF
-- foreground only rom (tisland, zoar)
fg_graphx_1: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr(11 downto 0),
q_a => fg_grphx_1_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => fg_graphx_1_we,
d_b => dl_data
);
fg_graphx_1_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "10010" else '0'; -- 12000 - 12FFF
fg_graphx_2: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr(11 downto 0),
q_a => fg_grphx_2_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => fg_graphx_2_we,
d_b => dl_data
);
fg_graphx_2_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "10011" else '0'; -- 13000 - 13FFF
fg_graphx_3: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
port map(
clk_a => clock_12n,
addr_a => fg_grphx_addr(11 downto 0),
q_a => fg_grphx_3_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => fg_graphx_3_we,
d_b => dl_data
);
fg_graphx_3_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "10100" else '0'; -- 14000 - 14FFF
-- sprite buffer ram
sprite_buffer_ram : entity work.gen_ram
generic map( dWidth => 3, aWidth => 8)
port map(
clk => clock_12n,
we => clock_6,
addr => sprite_buffer_addr_flip,
d => sprite_buffer_di,
q => sprite_buffer_do
);
-- color palette ram
color_ram : entity work.gen_ram
generic map( dWidth => 8, aWidth => 4)
port map(
clk => clock_12n,
we => palette_we,
addr => palette_addr,
d => cpu_do,
q => palette_do
);
bg_map: entity work.dpram
generic map( dWidth => 8, aWidth => 12)
port map(
clk_a => clock_12n,
addr_a => bg_map_addr,
q_a => bg_map_do,
clk_b => dl_clk,
addr_b => dl_addr(11 downto 0),
we_b => bg_map_we,
d_b => dl_data
);
bg_map_we <= '1' when dl_wr = '1' and dl_addr(16 downto 12) = "01001" else '0'; -- 09000 - 09FFF
bg_graphx_1: entity work.dpram
generic map( dWidth => 8, aWidth => 11)
port map(
clk_a => clock_12n,
addr_a => bg_grphx_addr,
q_a => bg_grphx_1_do,
clk_b => dl_clk,
addr_b => dl_addr(10 downto 0),
we_b => bg_graphx_1_we,
d_b => dl_data
);
bg_graphx_1_we <= '1' when dl_wr = '1' and dl_addr(16 downto 11) = "010100" else '0'; -- 0A000 - 0A7FF
bg_graphx_2: entity work.dpram
generic map( dWidth => 8, aWidth => 11)
port map(
clk_a => clock_12n,
addr_a => bg_grphx_addr,
q_a => bg_grphx_2_do,
clk_b => dl_clk,
addr_b => dl_addr(10 downto 0),
we_b => bg_graphx_2_we,
d_b => dl_data
);
bg_graphx_2_we <= '1' when dl_wr = '1' and dl_addr(16 downto 11) = "010101" else '0'; -- 0A800 - 0AFFF
bg_graphx_3: entity work.dpram
generic map( dWidth => 8, aWidth => 11)
port map(
clk_a => clock_12n,
addr_a => bg_grphx_addr,
q_a => bg_grphx_3_do,
clk_b => dl_clk,
addr_b => dl_addr(10 downto 0),
we_b => bg_graphx_3_we,
d_b => dl_data
);
bg_graphx_3_we <= '1' when dl_wr = '1' and dl_addr(16 downto 11) = "010110" else '0'; -- 0B000 - 0B7FF
-- sound part
Sound: entity work.burger_time_sound
port map(
clock_12 => clock_12,
reset => reset,
sound_req => sound_req,
sound_code_in => cpu_do,
sound_timing => vcnt(3),
audio_out => audio_out,
snd_rom_addr => snd_rom_addr,
snd_rom_do => snd_rom_do,
dbg_cpu_addr => open
);
end SYN;

View File

@@ -0,0 +1,84 @@
-- -----------------------------------------------------------------------
--
-- Syntiac's generic VHDL support files.
--
-- -----------------------------------------------------------------------
-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
-- http://www.syntiac.com/fpga64.html
--
-- Modified April 2016 by Dar (darfpga@aol.fr)
-- http://darfpga.blogspot.fr
-- Remove address register when writing
--
-- -----------------------------------------------------------------------
--
-- gen_rwram.vhd
--
-- -----------------------------------------------------------------------
--
-- generic ram.
--
-- -----------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_std.ALL;
-- -----------------------------------------------------------------------
entity gen_ram is
generic (
dWidth : integer := 8;
aWidth : integer := 10
);
port (
clk : in std_logic;
we : in std_logic;
addr : in std_logic_vector((aWidth-1) downto 0);
d : in std_logic_vector((dWidth-1) downto 0);
q : out std_logic_vector((dWidth-1) downto 0)
);
end entity;
-- -----------------------------------------------------------------------
architecture rtl of gen_ram is
subtype addressRange is integer range 0 to ((2**aWidth)-1);
type ramDef is array(addressRange) of std_logic_vector((dWidth-1) downto 0);
signal ram: ramDef;
signal rAddrReg : std_logic_vector((aWidth-1) downto 0);
signal qReg : std_logic_vector((dWidth-1) downto 0);
begin
-- -----------------------------------------------------------------------
-- Signals to entity interface
-- -----------------------------------------------------------------------
-- q <= qReg;
-- -----------------------------------------------------------------------
-- Memory write
-- -----------------------------------------------------------------------
process(clk)
begin
if rising_edge(clk) then
if we = '1' then
ram(to_integer(unsigned(addr))) <= d;
end if;
end if;
end process;
-- -----------------------------------------------------------------------
-- Memory read
-- -----------------------------------------------------------------------
process(clk)
begin
if rising_edge(clk) then
-- qReg <= ram(to_integer(unsigned(rAddrReg)));
-- rAddrReg <= addr;
---- qReg <= ram(to_integer(unsigned(addr)));
q <= ram(to_integer(unsigned(addr)));
end if;
end process;
--q <= ram(to_integer(unsigned(addr)));
end architecture;

View File

@@ -0,0 +1,4 @@
set_global_assignment -name IP_TOOL_NAME "ALTPLL"
set_global_assignment -name IP_TOOL_VERSION "13.1"
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "pll.v"]
set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "pll.ppf"]

View File

@@ -0,0 +1,348 @@
// megafunction wizard: %ALTPLL%
// GENERATION: STANDARD
// VERSION: WM1.0
// MODULE: altpll
// ============================================================
// File Name: pll.v
// Megafunction Name(s):
// altpll
//
// Simulation Library Files(s):
// altera_mf
// ============================================================
// ************************************************************
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
//
// 13.1.4 Build 182 03/12/2014 SJ Web Edition
// ************************************************************
//Copyright (C) 1991-2014 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 pll (
areset,
inclk0,
c0,
c1,
locked);
input areset;
input inclk0;
output c0;
output c1;
output locked;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
tri0 areset;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif
wire [4:0] sub_wire0;
wire sub_wire2;
wire [0:0] sub_wire6 = 1'h0;
wire [0:0] sub_wire3 = sub_wire0[0:0];
wire [1:1] sub_wire1 = sub_wire0[1:1];
wire c1 = sub_wire1;
wire locked = sub_wire2;
wire c0 = sub_wire3;
wire sub_wire4 = inclk0;
wire [1:0] sub_wire5 = {sub_wire6, sub_wire4};
altpll altpll_component (
.areset (areset),
.inclk (sub_wire5),
.clk (sub_wire0),
.locked (sub_wire2),
.activeclock (),
.clkbad (),
.clkena ({6{1'b1}}),
.clkloss (),
.clkswitch (1'b0),
.configupdate (1'b0),
.enable0 (),
.enable1 (),
.extclk (),
.extclkena ({4{1'b1}}),
.fbin (1'b1),
.fbmimicbidir (),
.fbout (),
.fref (),
.icdrclk (),
.pfdena (1'b1),
.phasecounterselect ({4{1'b1}}),
.phasedone (),
.phasestep (1'b1),
.phaseupdown (1'b1),
.pllena (1'b1),
.scanaclr (1'b0),
.scanclk (1'b0),
.scanclkena (1'b1),
.scandata (1'b0),
.scandataout (),
.scandone (),
.scanread (1'b0),
.scanwrite (1'b0),
.sclkout0 (),
.sclkout1 (),
.vcooverrange (),
.vcounderrange ());
defparam
altpll_component.bandwidth_type = "AUTO",
altpll_component.clk0_divide_by = 9,
altpll_component.clk0_duty_cycle = 50,
altpll_component.clk0_multiply_by = 16,
altpll_component.clk0_phase_shift = "0",
altpll_component.clk1_divide_by = 9,
altpll_component.clk1_duty_cycle = 50,
altpll_component.clk1_multiply_by = 4,
altpll_component.clk1_phase_shift = "0",
altpll_component.compensate_clock = "CLK0",
altpll_component.inclk0_input_frequency = 37037,
altpll_component.intended_device_family = "Cyclone III",
altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll",
altpll_component.lpm_type = "altpll",
altpll_component.operation_mode = "NORMAL",
altpll_component.pll_type = "AUTO",
altpll_component.port_activeclock = "PORT_UNUSED",
altpll_component.port_areset = "PORT_USED",
altpll_component.port_clkbad0 = "PORT_UNUSED",
altpll_component.port_clkbad1 = "PORT_UNUSED",
altpll_component.port_clkloss = "PORT_UNUSED",
altpll_component.port_clkswitch = "PORT_UNUSED",
altpll_component.port_configupdate = "PORT_UNUSED",
altpll_component.port_fbin = "PORT_UNUSED",
altpll_component.port_inclk0 = "PORT_USED",
altpll_component.port_inclk1 = "PORT_UNUSED",
altpll_component.port_locked = "PORT_USED",
altpll_component.port_pfdena = "PORT_UNUSED",
altpll_component.port_phasecounterselect = "PORT_UNUSED",
altpll_component.port_phasedone = "PORT_UNUSED",
altpll_component.port_phasestep = "PORT_UNUSED",
altpll_component.port_phaseupdown = "PORT_UNUSED",
altpll_component.port_pllena = "PORT_UNUSED",
altpll_component.port_scanaclr = "PORT_UNUSED",
altpll_component.port_scanclk = "PORT_UNUSED",
altpll_component.port_scanclkena = "PORT_UNUSED",
altpll_component.port_scandata = "PORT_UNUSED",
altpll_component.port_scandataout = "PORT_UNUSED",
altpll_component.port_scandone = "PORT_UNUSED",
altpll_component.port_scanread = "PORT_UNUSED",
altpll_component.port_scanwrite = "PORT_UNUSED",
altpll_component.port_clk0 = "PORT_USED",
altpll_component.port_clk1 = "PORT_USED",
altpll_component.port_clk2 = "PORT_UNUSED",
altpll_component.port_clk3 = "PORT_UNUSED",
altpll_component.port_clk4 = "PORT_UNUSED",
altpll_component.port_clk5 = "PORT_UNUSED",
altpll_component.port_clkena0 = "PORT_UNUSED",
altpll_component.port_clkena1 = "PORT_UNUSED",
altpll_component.port_clkena2 = "PORT_UNUSED",
altpll_component.port_clkena3 = "PORT_UNUSED",
altpll_component.port_clkena4 = "PORT_UNUSED",
altpll_component.port_clkena5 = "PORT_UNUSED",
altpll_component.port_extclk0 = "PORT_UNUSED",
altpll_component.port_extclk1 = "PORT_UNUSED",
altpll_component.port_extclk2 = "PORT_UNUSED",
altpll_component.port_extclk3 = "PORT_UNUSED",
altpll_component.self_reset_on_loss_lock = "OFF",
altpll_component.width_clock = 5;
endmodule
// ============================================================
// CNX file retrieval info
// ============================================================
// Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0"
// Retrieval info: PRIVATE: BANDWIDTH STRING "1.000"
// Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz"
// Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low"
// Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1"
// Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0"
// Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0"
// Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0"
// Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0"
// Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0"
// Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0"
// Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0"
// Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0"
// Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0"
// Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8"
// Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "33"
// Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "9"
// Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000"
// Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "48.000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "12.000000"
// Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
// Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0"
// Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0"
// Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0"
// Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575"
// Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1"
// Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "27.000"
// Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz"
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000"
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz"
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III"
// Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1"
// Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0"
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg"
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "ps"
// Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any"
// Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0"
// Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0"
// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "70"
// Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "4"
// Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "48.00000000"
// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "12.00000000"
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz"
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz"
// Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0"
// Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000"
// Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "0.00000000"
// Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0"
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg"
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "deg"
// Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "1"
// Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1"
// Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0"
// Retrieval info: PRIVATE: RECONFIG_FILE STRING "pll.mif"
// Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0"
// Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0"
// Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0"
// Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0"
// Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000"
// Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz"
// Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500"
// Retrieval info: PRIVATE: SPREAD_USE STRING "0"
// Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0"
// Retrieval info: PRIVATE: STICKY_CLK0 STRING "1"
// Retrieval info: PRIVATE: STICKY_CLK1 STRING "1"
// Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1"
// Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
// Retrieval info: PRIVATE: USE_CLK0 STRING "1"
// Retrieval info: PRIVATE: USE_CLK1 STRING "1"
// Retrieval info: PRIVATE: USE_CLKENA0 STRING "0"
// Retrieval info: PRIVATE: USE_CLKENA1 STRING "0"
// Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0"
// Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0"
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
// Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO"
// Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "9"
// Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "16"
// Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
// Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "9"
// Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50"
// Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "4"
// Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0"
// Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0"
// Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037"
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III"
// Retrieval info: CONSTANT: LPM_TYPE STRING "altpll"
// Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL"
// Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO"
// Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: SELF_RESET_ON_LOSS_LOCK STRING "OFF"
// Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5"
// Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]"
// Retrieval info: USED_PORT: areset 0 0 0 0 INPUT GND "areset"
// Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0"
// Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1"
// Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0"
// Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked"
// Retrieval info: CONNECT: @areset 0 0 0 0 areset 0 0 0 0
// Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0
// Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0
// Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0
// Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1
// Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.ppf TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.inc FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.cmp FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.bsf FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_inst.v FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_bb.v FALSE
// Retrieval info: LIB_FILE: altera_mf
// Retrieval info: CBX_MODULE_PREFIX: ON