From 811cd54a800dbb5c13b632ea9d30a8155f1acbb4 Mon Sep 17 00:00:00 2001 From: Gehstock Date: Mon, 11 Nov 2019 12:01:09 +0100 Subject: [PATCH] New Core Domino Man --- Arcade_MiST/Midway MCR 2/Domino Man.jpg | Bin 0 -> 21704 bytes .../DominoMan/Snapshot/DominoMan.rbf | Bin 341797 -> 0 bytes .../Midway MCR 2/DominoMan_MiST/DominoMan.qpf | 30 + .../Midway MCR 2/DominoMan_MiST/DominoMan.qsf | 207 ++ .../Midway MCR 2/DominoMan_MiST/DominoMan.sdc | 134 ++ .../Midway MCR 2/DominoMan_MiST/DominoMan.srf | 1 + .../Midway MCR 2/DominoMan_MiST/README.txt | 320 +++ .../Release}/DOMINO.ROM | Bin .../DominoMan_MiST/Release/DominoMan.rbf | Bin 0 -> 343365 bytes .../Midway MCR 2/DominoMan_MiST/clean.bat | 37 + .../DominoMan_MiST/rtl/DominoMan_MiST.sv | 304 +++ .../DominoMan_MiST/rtl/T80/T80.vhd | 1097 +++++++++ .../DominoMan_MiST/rtl/T80/T80_ALU.vhd | 371 +++ .../DominoMan_MiST/rtl/T80/T80_MCode.vhd | 2030 +++++++++++++++++ .../DominoMan_MiST/rtl/T80/T80_Pack.vhd | 220 ++ .../DominoMan_MiST/rtl/T80/T80_Reg.vhd | 116 + .../DominoMan_MiST/rtl/T80/T80se.vhd | 193 ++ .../DominoMan_MiST/rtl/YM2149_linmix_sep.vhd | 574 +++++ .../DominoMan_MiST/rtl/build_id.tcl | 35 + .../DominoMan_MiST/rtl/cmos_ram.vhd | 356 +++ .../DominoMan_MiST/rtl/ctc_controler.vhd | 106 + .../DominoMan_MiST/rtl/ctc_counter.vhd | 152 ++ .../DominoMan_MiST/rtl/gen_ram.vhd | 84 + .../DominoMan_MiST/rtl/pll_mist.qip | 4 + .../DominoMan_MiST/rtl/pll_mist.vhd | 397 ++++ .../rtl/rom/domino_bg_bits_1.vhd | 534 +++++ .../rtl/rom/domino_bg_bits_2.vhd | 534 +++++ .../rtl/rom/domino_sp_bits_1.vhd | 534 +++++ .../rtl/rom/domino_sp_bits_2.vhd | 534 +++++ .../rtl/rom/domino_sp_bits_3.vhd | 534 +++++ .../rtl/rom/domino_sp_bits_4.vhd | 534 +++++ .../DominoMan_MiST/rtl/rom/midssio_82s123.vhd | 24 + .../DominoMan_MiST/rtl/satans_hollow.vhd | 893 ++++++++ .../rtl/satans_hollow_sound_board.vhd | 553 +++++ .../Midway MCR 2/DominoMan_MiST/rtl/sdram.sv | 279 +++ .../Midway MCR 2/TwoTigers_MiST/README.txt | 2 +- .../Midway MCR 2/TwoTigers_MiST/TwoTigers.qsf | 1 - Arcade_MiST/README.txt | 1 + 38 files changed, 11723 insertions(+), 2 deletions(-) create mode 100644 Arcade_MiST/Midway MCR 2/Domino Man.jpg delete mode 100644 Arcade_MiST/Midway MCR 2/DominoMan/Snapshot/DominoMan.rbf create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qpf create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qsf create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.sdc create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.srf create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/README.txt rename Arcade_MiST/Midway MCR 2/{DominoMan/Snapshot => DominoMan_MiST/Release}/DOMINO.ROM (100%) create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/Release/DominoMan.rbf create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/clean.bat create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/DominoMan_MiST.sv create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_ALU.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_MCode.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Pack.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Reg.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80se.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/YM2149_linmix_sep.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/build_id.tcl create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/cmos_ram.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_controler.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_counter.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/gen_ram.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.qip create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_1.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_2.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_1.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_2.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_3.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_4.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/midssio_82s123.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow_sound_board.vhd create mode 100644 Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/sdram.sv diff --git a/Arcade_MiST/Midway MCR 2/Domino Man.jpg b/Arcade_MiST/Midway MCR 2/Domino Man.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f7263d691036f2ddad13f156971f53fe1bfddbca GIT binary patch literal 21704 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%0AAY@n?gX_qlm>3(EWlbnq<99Q$qgd1&d{@*rm z#cs9bsldJT%s-p9pz|P3a`s}%R)(G6*EGqx<4ZP|q@4fx;tr&UF<7U}(tsOnGvWXJ z;Yo&Y->Cm`%zpxw{#E(UP}oz|JMbMmsxc=#Z6?d}+Pd=EbjzEm*mM6pG({=+H#OK< znAk<@pH~Slj{5*2VK!fjOU+3*=prcPfo{9Gz38)>e)8tIU!zL?;NVDScktHaxV>sAO#rFoZy7c!@40Nh}4( z!EOP4Gvul#B7F5(<2U;6lf=6&sO2c(;(>&MGwDVxsZ z;gMm1Jq)bo`LE>W@6bCmCz>^>=OPPkQttkdE6DZfk=d58SVNGPHXA?1GgzJB9Y7)E z4sbHvD8IMkHS4Q?BX|eUIK;5bF1by;0~B7Ma%p6qn_ur$Hu9?sE&EV0%6|XTI21W@ z)HKHhHbZ0miiG}wWpGjr-H)=D2vd&0S1(%Q;&q-NyYO1J(F&47Q7i2F9)>doh`zG7 z{?x$zu*(7myR>!jEq_uNL^}KCsG@WO-l3!^E~76eAsgYZr8nMWhQlv(_|s~BccrEG z#m78i)rt+LNf0Pt0L55#Uo=&34d2nR_Y%?;8C+1P+J{euug+zfO}QL&d0gZx>si)B zC~M!qT|*+{OM|pSTg>`mR3I!+=nF&5Zx8pem0kze4vv*yAl1BIp-c`OJ}l%$O=ado zet5={l$2^V;wpptR4En+HFGM(^&?TS()b8&G_qG1%Qhx8T8VpDU=(&xKiI89^8B#{ ztGxwI>9Y0P;}?p0dZYE>R+Hpom`}u;FzR`Y6XWgmV$K~yuTuK;MQ*HzZ|+MbimV!H zXYS5gG#ttFo-8lBsXZLB%m5dz_5mCFsrPQaRAdfZ`zLCa@EDKCl7M{D5%Q=B z$?KwU=`&Wk=_w9jErX4_0emC~hVcE;~|1beXn2HF|RZ zHn^=V7y;FzG9M)7e;#}8Khuiae_G!Fl_VySu8UDSJ!D)m;9WG18k2)AhaGEftcGV0 z$so5ZxmDR|5dtBZ3>Ap-hk*e<|4i0Wxq^w&;$-!|R$+(r1E)NYj&5KS7=1Fj3M$l@ zerth4kyhV8;4MSc;lmd7FOJ>VY*()(rL)wg_46jh#F3u
tm8+_mbqzu9QwmS8~ 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 diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qpf b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qpf new file mode 100644 index 00000000..b9f2c32c --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# 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 = 13:02:51 November 09, 2019 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "13.1" +DATE = "13:02:51 November 09, 2019" + +# Revisions + +PROJECT_REVISION = "DominoMan" diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qsf b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qsf new file mode 100644 index 00000000..d1484b8e --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.qsf @@ -0,0 +1,207 @@ +# -------------------------------------------------------------------------- # +# +# 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 = 19:17:51 November 03, 2019 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# DominoMan_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 PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL +set_global_assignment -name LAST_QUARTUS_VERSION 13.1 +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 PIN_49 -to SDRAM_A[0] +set_location_assignment PIN_44 -to SDRAM_A[1] +set_location_assignment PIN_42 -to SDRAM_A[2] +set_location_assignment PIN_39 -to SDRAM_A[3] +set_location_assignment PIN_4 -to SDRAM_A[4] +set_location_assignment PIN_6 -to SDRAM_A[5] +set_location_assignment PIN_8 -to SDRAM_A[6] +set_location_assignment PIN_10 -to SDRAM_A[7] +set_location_assignment PIN_11 -to SDRAM_A[8] +set_location_assignment PIN_28 -to SDRAM_A[9] +set_location_assignment PIN_50 -to SDRAM_A[10] +set_location_assignment PIN_30 -to SDRAM_A[11] +set_location_assignment PIN_32 -to SDRAM_A[12] +set_location_assignment PIN_83 -to SDRAM_DQ[0] +set_location_assignment PIN_79 -to SDRAM_DQ[1] +set_location_assignment PIN_77 -to SDRAM_DQ[2] +set_location_assignment PIN_76 -to SDRAM_DQ[3] +set_location_assignment PIN_72 -to SDRAM_DQ[4] +set_location_assignment PIN_71 -to SDRAM_DQ[5] +set_location_assignment PIN_69 -to SDRAM_DQ[6] +set_location_assignment PIN_68 -to SDRAM_DQ[7] +set_location_assignment PIN_86 -to SDRAM_DQ[8] +set_location_assignment PIN_87 -to SDRAM_DQ[9] +set_location_assignment PIN_98 -to SDRAM_DQ[10] +set_location_assignment PIN_99 -to SDRAM_DQ[11] +set_location_assignment PIN_100 -to SDRAM_DQ[12] +set_location_assignment PIN_101 -to SDRAM_DQ[13] +set_location_assignment PIN_103 -to SDRAM_DQ[14] +set_location_assignment PIN_104 -to SDRAM_DQ[15] +set_location_assignment PIN_58 -to SDRAM_BA[0] +set_location_assignment PIN_51 -to SDRAM_BA[1] +set_location_assignment PIN_85 -to SDRAM_DQMH +set_location_assignment PIN_67 -to SDRAM_DQML +set_location_assignment PIN_60 -to SDRAM_nRAS +set_location_assignment PIN_64 -to SDRAM_nCAS +set_location_assignment PIN_66 -to SDRAM_nWE +set_location_assignment PIN_59 -to SDRAM_nCS +set_location_assignment PIN_33 -to SDRAM_CKE +set_location_assignment PIN_43 -to SDRAM_CLK +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 DominoMan_MiST +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 +set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 +set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP + +# Fitter Assignments +# ================== +set_global_assignment -name DEVICE EP3C25E144C8 +set_global_assignment -name ENABLE_CONFIGURATION_PINS OFF +set_global_assignment -name ENABLE_NCE_PIN OFF +set_global_assignment -name ENABLE_BOOT_SEL_PIN OFF +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_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO" + +# Assembler Assignments +# ===================== +set_global_assignment -name GENERATE_RBF_FILE ON +set_global_assignment -name USE_CONFIGURATION_DEVICE OFF + +# 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(Kickman_MiST) + + # start DESIGN_PARTITION(Top) + # --------------------------- + + # Incremental Compilation Assignments + # =================================== + + # end DESIGN_PARTITION(Top) + # ------------------------- + +# end ENTITY(Kickman_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/DominoMan_MiST.sv +set_global_assignment -name VHDL_FILE rtl/satans_hollow.vhd +set_global_assignment -name VHDL_FILE rtl/satans_hollow_sound_board.vhd +set_global_assignment -name VHDL_FILE rtl/YM2149_linmix_sep.vhd +set_global_assignment -name VHDL_FILE rtl/ctc_counter.vhd +set_global_assignment -name VHDL_FILE rtl/ctc_controler.vhd +set_global_assignment -name VHDL_FILE rtl/gen_ram.vhd +set_global_assignment -name VHDL_FILE rtl/cmos_ram.vhd +set_global_assignment -name VHDL_FILE rtl/rom/midssio_82s123.vhd +set_global_assignment -name VHDL_FILE rtl/rom/domino_sp_bits_4.vhd +set_global_assignment -name VHDL_FILE rtl/rom/domino_sp_bits_3.vhd +set_global_assignment -name VHDL_FILE rtl/rom/domino_sp_bits_2.vhd +set_global_assignment -name VHDL_FILE rtl/rom/domino_sp_bits_1.vhd +set_global_assignment -name VHDL_FILE rtl/rom/domino_bg_bits_2.vhd +set_global_assignment -name VHDL_FILE rtl/rom/domino_bg_bits_1.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80se.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_Reg.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_Pack.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_MCode.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80_ALU.vhd +set_global_assignment -name VHDL_FILE rtl/T80/T80.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv +set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd +set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.sdc b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.sdc new file mode 100644 index 00000000..4f80488a --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.sdc @@ -0,0 +1,134 @@ +## Generated SDC file "vectrex_MiST.out.sdc" + +## Copyright (C) 1991-2013 Altera Corporation +## Your use of Altera Corporation's design tools, logic functions +## and other software and tools, and its AMPP partner logic +## functions, and any output files from any of the foregoing +## (including device programming or simulation files), and any +## associated documentation or information are expressly subject +## to the terms and conditions of the Altera Program License +## Subscription Agreement, Altera MegaCore Function License +## Agreement, or other applicable license agreement, including, +## without limitation, that your use is for the sole purpose of +## programming logic devices manufactured by Altera and sold by +## Altera or its authorized distributors. Please refer to the +## applicable agreement for further details. + + +## VENDOR "Altera" +## PROGRAM "Quartus II" +## VERSION "Version 13.1.0 Build 162 10/23/2013 SJ Web Edition" + +## DATE "Sun Jun 24 12:53:00 2018" + +## +## DEVICE "EP3C25E144C8" +## + +# Clock constraints + +# Automatically constrain PLL and other generated clocks +derive_pll_clocks -create_base_clocks + +# Automatically calculate clock uncertainty to jitter and other effects. +derive_clock_uncertainty + +# tsu/th constraints + +# tco constraints + +# tpd constraints + +#************************************************************** +# Time Information +#************************************************************** + +set_time_format -unit ns -decimal_places 3 + + + +#************************************************************** +# Create Clock +#************************************************************** + +create_clock -name {SPI_SCK} -period 41.666 -waveform { 20.8 41.666 } [get_ports {SPI_SCK}] + +#************************************************************** +# 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 {pll|altpll_component|auto_generated|pll1|clk[0]}] -max 6.4 [get_ports SDRAM_DQ[*]] +set_input_delay -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] -min 3.2 [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 {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {AUDIO_L}] +set_output_delay -add_delay -clock_fall -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {AUDIO_R}] +set_output_delay -add_delay -clock_fall -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {LED}] +set_output_delay -add_delay -clock_fall -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {VGA_*}] + +set_output_delay -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] -max 1.5 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}] +set_output_delay -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] -min -0.8 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}] +set_output_delay -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] -max 1.5 [get_ports {SDRAM_CLK}] +set_output_delay -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] -min -0.8 [get_ports {SDRAM_CLK}] + +#************************************************************** +# Set Clock Groups +#************************************************************** + +set_clock_groups -asynchronous -group [get_clocks {SPI_SCK}] -group [get_clocks {pll|altpll_component|auto_generated|pll1|clk[*]}] + +#************************************************************** +# Set False Path +#************************************************************** + + + +#************************************************************** +# Set Multicycle Path +#************************************************************** + +set_multicycle_path -to {VGA_*[*]} -setup 2 +set_multicycle_path -to {VGA_*[*]} -hold 1 + +#************************************************************** +# Set Maximum Delay +#************************************************************** + + + +#************************************************************** +# Set Minimum Delay +#************************************************************** + + + +#************************************************************** +# Set Input Transition +#************************************************************** + diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.srf b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.srf new file mode 100644 index 00000000..4cde516e --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/DominoMan.srf @@ -0,0 +1 @@ +{ "" "" "" "*" { } { } 0 14026 "" 0 0 "Quartus II" 0 -1 0 ""} diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/README.txt b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/README.txt new file mode 100644 index 00000000..b28f5503 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/README.txt @@ -0,0 +1,320 @@ +--------------------------------------------------------------------------------- +-- +-- Arcade: Domino Man port to MiST by Gehstock +-- 11 November 2019 +-- +-- VGA Only + +--------------------------------------------------------------------------------- +-- DE10_lite Top level for Kick (Midway MCR) by Dar (darfpga@aol.fr) (19/10/2019) +-- 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 +--------------------------------------------------------------------------------- +-- Use kick_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) +-- +-- Video : 31Khz/60Hz +-- Cocktail mode : NO +-- Sound : OK +-- +-- For hardware schematic see my other project : NES +-- +-- Uses 1 pll 40MHz from 50MHz to make 20MHz and 8Mhz +-- +-- Board key : +-- 0 : reset game +-- +-- Keyboard players inputs : +-- +-- F3 : Add coin +-- F2 : Start 2 players +-- F1 : Start 1 player +-- SPACE : move faster +-- RIGHT arrow : move right +-- LEFT arrow : move left +-- UP arrow : toggle service mode ON/OFF +-- DOWN arrow : kick +-- +-- Other details : see kick.vhd +-- For USB inputs and SGT5000 audio output see my other project: xevious_de10_lite + +--------------------------------------------------------------------------------- +-- Kick by Dar (darfpga@aol.fr) (19/10/2019) +-- http://darfpga.blogspot.fr +--------------------------------------------------------------------------------- +-- gen_ram.vhd & io_ps2_keyboard +-------------------------------- +-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com) +-- http://www.syntiac.com/fpga64.html +--------------------------------------------------------------------------------- +-- T80/T80se - Version : 304 +----------------------------- +-- Z80 compatible microprocessor core +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +--------------------------------------------------------------------------------- +-- YM2149 (AY-3-8910) +-- Copyright (c) MikeJ - Jan 2005 +--------------------------------------------------------------------------------- +-- Educational use only +-- Do not redistribute synthetized file with roms +-- Do not redistribute roms whatever the form +-- Use at your own risk +--------------------------------------------------------------------------------- + +-- Features : +-- Video : 31Khz/60Hz +-- Coctail mode : NO +-- Sound : OK + +-- Use with MAME roms from kick.zip and midssio.zip +-- +-- Use make_kick_proms.bat to build vhd file from binaries +-- (CRC list included) + +-- Kick/Kickman (Midway mcr) Hardware caracteristics : +-- +-- VIDEO : 1xZ80@3MHz CPU accessing its program rom, working ram, +-- sprite data ram, I/O, sound board register and trigger. +-- 24Kx8bits program rom +-- +-- One char/background tile map 30x32 +-- 2x4Kx8bits graphics rom 4bits/pixel +-- rbg programmable ram palette 16 colors 12bits : 4red 4green 4blue +-- +-- 128 sprites, up to ~15/line, 32x32 with flip H/V +-- 4x4Kx8bits graphics rom 4bits/pixel +-- rbg programmable ram palette 16 colors 12bits : 4red 4green 4blue +-- +-- Working ram : 2Kx8bits +-- video (char/background) ram : 1Kx8bits +-- Sprites ram : 512x8bits + 512x8bits cache buffer + +-- Sprites line buffer rams : 1 scan line delay flip/flop 2x256x8bits +-- +-- SOUND : see Kick_sound_board.vhd + +--------------------------------------------------------------------------------- +-- Schematics remarks : +-- +-- Display is 512x480 pixels (video 635x525 lines @ 20MHz ) + +-- 635/20e6 = 31.75us per line (31.750KHz) +-- 31.75*525 = 16.67ms per frame (59.99Hz) +-- +-- Original video is interlaced 240 display lines per 1/2 frame +-- +-- H0 and V0 are not use for background => each bg tile is 16x16 pixel but +-- background graphics is 2x2 pixels defintion. +-- +-- Sprite are 32x32 pixels with 1x1 pixel definition, 16 lines for odd 1/2 +-- frame and 16 lines for even 2/2 frame thanks to V8 on sprite rom ROMAD2 +-- (look at 74ls86 G1 pin 9 on video genration board schematics) +-- +-- *H and V stand for Horizontal en Vertical counter (Hcnt, Vcnt in VHDL code) +-- +-- /!\ For VHDL port interlaced video mode is replaced with progressive video +-- mode. +-- +-- Sprite data are stored first by cpu into a 'cache' buffer (staging ram at +-- K6/L6) this buffer is read and write for cpu. After visible display, cache +-- buffer (512x8) is moved to actual sprite ram buffer (512x8). Actual sprite +-- buffer is access by transfer address counter during 2 scanlines after +-- visible area and only by sprite machine during visible area. +-- +-- Thus cpu can read and update sprites position during entire frame except +-- during 2 lines. +-- +-- Sprite data are organised (as seen by cpu F000-F1FF) into 128 * 4bytes. +-- bytes #1 : Vertical position +-- bytes #2 : code and attribute +-- bytes #3 : Horizontal position +-- bytes #4 : not used +-- +-- Athough 1x1 pixel defintion sprite position horizontal/vertical is made on +-- on a 2x2 grid (due to only 8bits for position data) +-- +-- Z80-CTC : interruption ar managed by CTC chip. ONly channel 3 is trigered +-- by hardware signal line 493. channel 0 to 2 are in timer mode. Schematic +-- show zc/to of channel 0 connected to clk/trg of channel 1. This seems to be +-- unsued for that (Kick) game. +-- +-- CPU programs 4 interuptions : (Vector D0) +-- +-- IT ch 3 : triggered by line 493 : once per frame : start @00D8 +-- set timer ch0 to launch interrupt around line 20 +-- set timer ch1 to launch interrupt around line 240 +-- +-- IT ch 0 : triggered by timer ch 0 : once per frame : start @017E +-- stop timer 0 +-- +-- IT ch 1 : triggered by timer ch 1 : once per frame : start @0192 +-- stop timer 1 +-- +-- IT ch 2 : trigged by timer ch 2 : once every ~105 scanlines : start @04E1 +-- read angle decoder +-- +-- Z80-CTC VHDL port keep separated interrupt controler and each counter so +-- one can use them on its own. Priority daisy-chain is not done (not used in +-- that game). clock polarity selection is not done since it has no meaning +-- with digital clock/enable (e.g cpu_ena signal) method. +-- +-- Angle (spin) decoder : Original design is a simple Up/Down 4 bits counter. +-- Replacement is proposed in kick_de10_lite.vhd as a 10bits counter allowing +-- more stable speed. It make use of CTC zc_to channel 2 signal to avoid +-- aliasing problems. Despite speed selection (faster/slower) is available +-- from keyboard key it hardly simulate a real spinner. +-- +-- Ressource : input clock 40MHz is chosen to allow easy making of 20MHz for +-- pixel clock and 8MHz signal for amplitude modulation circuit of ssio board +-- +-- +-- TODO : +-- Working ram could be initialized to set initial difficulty level and +-- initial bases (live) number. Otherwise one can set it up by using service +-- menu at each power up. +-- ++----------------------------------------------------------------------------------+ +; Fitter Summary ; ++------------------------------------+---------------------------------------------+ +; Fitter Status ; Successful - Sat Nov 02 22:31:20 2019 ; +; Quartus Prime Version ; 18.1.0 Build 625 09/12/2018 SJ Lite Edition ; +; Revision Name ; kick_de10_lite ; +; Top-level Entity Name ; kick_de10_lite ; +; Family ; MAX 10 ; +; Device ; 10M50DAF484C6GES ; +; Timing Models ; Preliminary ; +; Total logic elements ; 7,125 / 49,760 ( 14 % ) ; +; Total combinational functions ; 6,705 / 49,760 ( 13 % ) ; +; Dedicated logic registers ; 2,068 / 49,760 ( 4 % ) ; +; Total registers ; 2068 ; +; Total pins ; 105 / 360 ( 29 % ) ; +; Total virtual pins ; 0 ; +; Total memory bits ; 700,416 / 1,677,312 ( 42 % ) ; +; 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 +--------------- + +de10_lite/max10_pll_40M.vhd Pll 40MHz from 50MHz altera mf + +rtl_dar/kick_de10_lite.vhd Top level for de10_lite board +rtl_dar/kick.vhd Main CPU and video boards logic +rtl_dar/kick_sound_board.vhd Main sound board logic +rtl_dar/ctc_controler.vhd Z80-CTC controler +rtl_dar/ctc_counter.vhd Z80-CTC counter + +rtl_mikej/YM2149_linmix.vhd Copyright (c) MikeJ - Jan 2005 + +rtl_T80_304/T80se.vhdT80 Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +rtl_T80_304/T80_Reg.vhd +rtl_T80_304/T80_Pack.vhd +rtl_T80_304/T80_MCode.vhd +rtl_T80_304/T80_ALU.vhd +rtl_T80_304/T80.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 + +rtl_dar/proms/kick_cpu.vhd CPU board PROMS +rtl_dar/proms/kick_bg_bits_2.vhd +rtl_dar/proms/kick_bg_bits_1.vhd + +rtl_dar/proms/kick_sp_bits_4.vhd Video board PROMS +rtl_dar/proms/kick_sp_bits_3.vhd +rtl_dar/proms/kick_sp_bits_2.vhd +rtl_dar/proms/kick_sp_bits_1.vhd + +rtl_dar/proms/kick_sound_cpu.vhd Sound board PROMS +rtl_dar/proms/midssio_82s123.vhd + +---------------------- +Quartus project files +---------------------- +de10_lite/kick_de10_lite.sdc Timequest constraints file +de10_lite/kick_de10_lite.qsf de10_lite settings (files,pins...) +de10_lite/kick_de10_lite.qpf de10_lite project + +----------------------------- +Required ROMs (Not included) +----------------------------- +You need the following 17 ROMs binary files from kick.zip and midssio.zip(MAME) + +1200a-v2.b3 CRC 65924917 +1300b-v2.b4 CRC 27929f52 +1400c-v2.b5 CRC 69107ce6 +1500d-v2.d4 CRC 04a23aa1 +1600e-v2.d5 CRC 1d2834c0 +1700f-v2.d6 CRC ddf84ce1 +1800g-v2.g4 CRC b4d120f3 +1900h-v2.g5 CRC c3ba4893 + +2600a-v2.1e CRC 2c5d6b55 +2700b-v2.1d CRC 565ea97d +2800c-v2.1b CRC f3be56a1 +2900d-v2.1a CRC 77da795e + +4200-a.a7 CRC 9e35c02e +4300-b.a8 CRC ca2b7c28 +4400-c.a9 CRC d1901551 +4500-d.a10 CRC d36ddcdc +midssio_82s123.12d CRC e1281ee9 + +------ +Tools +------ +You need to build vhdl files from the binary file : + - Unzip the roms file in the tools/kick_unzip directory + - Double click (execute) the script tools/make_kick_proms.bat to get the following 9 files + +kick_cpu.vhd +kick_bg_bits_2.vhd +kick_bg_bits_1.vhd +kick_sp_bits_4.vhd +kick_sp_bits_3.vhd +kick_sp_bits_2.vhd +kick_sp_bits_1.vhd +kick_sound_cpu.vhd +midssio_82s123.vhd + +*DO NOT REDISTRIBUTE THESE FILES* + +VHDL files are needed to compile and include roms into the project + +The script make_kick_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/proms directory + - build kick_de10_lite + - program kick_de10_lite.sof + +------------------------ +------------------------ +End of file +------------------------ diff --git a/Arcade_MiST/Midway MCR 2/DominoMan/Snapshot/DOMINO.ROM b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/Release/DOMINO.ROM similarity index 100% rename from Arcade_MiST/Midway MCR 2/DominoMan/Snapshot/DOMINO.ROM rename to Arcade_MiST/Midway MCR 2/DominoMan_MiST/Release/DOMINO.ROM diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/Release/DominoMan.rbf b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/Release/DominoMan.rbf new file mode 100644 index 0000000000000000000000000000000000000000..1211f658530b1efcbbb2742f7c192f311aec57b9 GIT binary patch literal 343365 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 z
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 ajxVf58iP9g{N=)-^e#g|^U>;D3N7b#u< literal 0 HcmV?d00001 diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/clean.bat b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/clean.bat new file mode 100644 index 00000000..b3b7c3b5 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/clean.bat @@ -0,0 +1,37 @@ +@echo off +del /s *.bak +del /s *.orig +del /s *.rej +del /s *~ +rmdir /s /q db +rmdir /s /q incremental_db +rmdir /s /q output_files +rmdir /s /q simulation +rmdir /s /q greybox_tmp +rmdir /s /q hc_output +rmdir /s /q .qsys_edit +rmdir /s /q hps_isw_handoff +rmdir /s /q sys\.qsys_edit +rmdir /s /q sys\vip +cd sys +for /d %%i in (*_sim) do rmdir /s /q "%%~nxi" +cd .. +for /d %%i in (*_sim) do rmdir /s /q "%%~nxi" +del build_id.v +del c5_pin_model_dump.txt +del PLLJ_PLLSPE_INFO.txt +del /s *.qws +del /s *.ppf +del /s *.ddb +del /s *.csv +del /s *.cmp +del /s *.sip +del /s *.spd +del /s *.bsf +del /s *.f +del /s *.sopcinfo +del /s *.xml +del /s new_rtl_netlist +del /s old_rtl_netlist + +pause diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/DominoMan_MiST.sv b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/DominoMan_MiST.sv new file mode 100644 index 00000000..7a651323 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/DominoMan_MiST.sv @@ -0,0 +1,304 @@ +//============================================================================ +// Arcade: Domino Man by DarFPGA +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +//============================================================================ + +module DominoMan_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, + output [12:0] SDRAM_A, + inout [15:0] SDRAM_DQ, + output SDRAM_DQML, + output SDRAM_DQMH, + output SDRAM_nWE, + output SDRAM_nCAS, + output SDRAM_nRAS, + output SDRAM_nCS, + output [1:0] SDRAM_BA, + output SDRAM_CLK, + output SDRAM_CKE +); + +`include "rtl/build_id.v" + +localparam CONF_STR = { + "DOMINO;;", + "O34,Scanlines,Off,25%,50%,75%;", + "O5,Blend,Off,On;", + "O6,Service,Off,On;", + "T0,Reset;", + "V,v1.0.",`BUILD_DATE +}; + +assign LED = ~ioctl_downl; +assign SDRAM_CLK = clk_sys; +assign SDRAM_CKE = 1; + +wire clk_sys; +wire pll_locked; +pll_mist pll( + .inclk0(CLOCK_27), + .areset(0), + .c0(clk_sys), + .locked(pll_locked) + ); + +wire [31:0] status; +wire [1:0] buttons; +wire [1:0] switches; +wire [7:0] joystick_0; +wire [7:0] joystick_1; +wire scandoublerD; +wire ypbpr; +wire [15:0] audio_l, audio_r; +wire hs, vs; +wire blankn; +wire [3:0] g, r, b; +wire [14:0] rom_addr; +wire [15:0] rom_do; +wire rom_rd; +wire [13:0] snd_addr; +wire [15:0] snd_do; +wire snd_rd; +wire ioctl_downl; +wire [7:0] ioctl_index; +wire ioctl_wr; +wire [24:0] ioctl_addr; +wire [7:0] ioctl_dout; +wire [15:0] joystick_analog_0; +wire [15:0] joystick_analog_1; + +data_io data_io( + .clk_sys ( clk_sys ), + .SPI_SCK ( SPI_SCK ), + .SPI_SS2 ( SPI_SS2 ), + .SPI_DI ( SPI_DI ), + .ioctl_download( ioctl_downl ), + .ioctl_index ( ioctl_index ), + .ioctl_wr ( ioctl_wr ), + .ioctl_addr ( ioctl_addr ), + .ioctl_dout ( ioctl_dout ) +); + +reg port1_req, port2_req; +sdram sdram( + .*, + .init_n ( pll_locked ), + .clk ( clk_sys ), + + // port1 used for main CPU + .port1_req ( port1_req ), + .port1_ack (), + .port1_a ( ioctl_downl ? ioctl_addr[23:1] : rom_addr[14:1] ), + .port1_ds ( ioctl_downl ? {ioctl_addr[0], ~ioctl_addr[0]} : 2'b11 ), + .port1_we ( ioctl_downl ), + .port1_d ( {ioctl_dout, ioctl_dout} ), + .port1_q ( rom_do ), + + // port2 for sound board + .port2_req ( port2_req ), + .port2_ack (), + .port2_a ( ioctl_downl ? ioctl_addr[23:1] - 16'h4000 : snd_addr[13:1] ), + .port2_ds ( ioctl_downl ? {ioctl_addr[0], ~ioctl_addr[0]} : 2'b11 ), + .port2_we ( ioctl_downl ), + .port2_d ( {ioctl_dout, ioctl_dout} ), + .port2_q ( snd_do ) +); + +always @(posedge clk_sys) begin + reg [16:1] rom_addr_last; + reg [15:1] snd_addr_last; + reg ioctl_wr_last = 0; + + ioctl_wr_last <= ioctl_wr; + if (ioctl_downl) begin + snd_addr_last <= 14'h2fff; + rom_addr_last <= 15'h7fff; + if (~ioctl_wr_last && ioctl_wr) begin + port1_req <= ~port1_req; + port2_req <= ~port2_req; + end + end else begin + if (rom_rd && rom_addr_last != rom_addr[14:1]) begin + rom_addr_last <= rom_addr[14:1]; + port1_req <= ~port1_req; + end + if (snd_rd && snd_addr_last != snd_addr[13:1]) begin + snd_addr_last <= snd_addr[13:1]; + port2_req <= ~port2_req; + end + end +end + +reg reset = 1; +reg rom_loaded = 0; +always @(posedge clk_sys) begin + reg ioctl_downlD; + ioctl_downlD <= ioctl_downl; + + if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1; + reset <= status[0] | buttons[1] | ~rom_loaded; +end + +satans_hollow satans_hollow( + .clock_40(clk_sys), + .reset(reset), + .video_r(r), + .video_g(g), + .video_b(b), + .video_blankn(blankn), + .video_hs(hs), + .video_vs(vs), + .separate_audio(1'b0), + .audio_out_l(audio_l), + .audio_out_r(audio_r), + .coin1(btn_coin), + .coin2(1'b0), + .start2(btn_two_players), + .start1(btn_one_player), + .up2(m_up), + .down2(m_down), + .left2(m_left), + .right2(m_right), + .fire2(m_fire), + .up1(m_up), + .down1(m_down), + .left1(m_left), + .right1(m_right), + .fire1(m_fire), + .cocktail(1), + .coin_meters(), + .service_toggle(status[6]), + .cpu_rom_addr ( rom_addr ), + .cpu_rom_do ( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ), + .cpu_rom_rd ( rom_rd ), + .snd_rom_addr ( snd_addr ), + .snd_rom_do ( snd_addr[0] ? snd_do[15:8] : snd_do[7:0] ), + .snd_rom_rd ( snd_rd ) +); + +mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video( + .clk_sys ( clk_sys ), + .SPI_SCK ( SPI_SCK ), + .SPI_SS3 ( SPI_SS3 ), + .SPI_DI ( SPI_DI ), + .R ( blankn ? r : 0 ), + .G ( blankn ? g : 0 ), + .B ( blankn ? 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 ), + .ce_divider ( 1 ), + .blend ( status[5] ), + .scandoubler_disable(1),//scandoublerD ), + .scanlines ( status[4:3] ), + .ypbpr ( ypbpr ) + ); + +user_io #( + .STRLEN(($size(CONF_STR)>>3))) +user_io( + .clk_sys (clk_sys ), + .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 ), + .key_strobe (key_strobe ), + .key_pressed (key_pressed ), + .key_code (key_code ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), + .joystick_analog_0(joystick_analog_0), + .joystick_analog_1(joystick_analog_1), + .status (status ) + ); + +dac #( + .C_bits(16)) +dac_l( + .clk_i(clk_sys), + .res_n_i(1), + .dac_i(audio_l), + .dac_o(AUDIO_L) + ); + +dac #( + .C_bits(16)) +dac_r( + .clk_i(clk_sys), + .res_n_i(1), + .dac_i(audio_r), + .dac_o(AUDIO_R) + ); + + +wire m_up = btn_up | joystick_0[3] | joystick_1[3]; +wire m_down = btn_down | joystick_0[2] | joystick_1[2]; +wire m_left = btn_left | joystick_0[1] | joystick_1[1]; +wire m_right = btn_right | joystick_0[0] | joystick_1[0]; +wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4]; + + +reg btn_one_player = 0; +reg btn_two_players = 0; +reg btn_left = 0; +reg btn_right = 0; +reg btn_down = 0; +reg btn_up = 0; +reg btn_fire1 = 0; +reg btn_coin = 0; +wire key_pressed; +wire [7:0] key_code; +wire key_strobe; + +always @(posedge clk_sys) begin + if(key_strobe) begin + case(key_code) + 'h75: btn_up <= key_pressed; // up + 'h72: btn_down <= key_pressed; // down + 'h6B: btn_left <= key_pressed; // left + 'h74: btn_right <= key_pressed; // right + 'h76: btn_coin <= key_pressed; // ESC + 'h05: btn_one_player <= key_pressed; // F1 + 'h06: btn_two_players <= key_pressed; // F2 + 'h29: btn_fire1 <= key_pressed; // Space + endcase + end +end + +endmodule diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80.vhd new file mode 100644 index 00000000..4150a43d --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80.vhd @@ -0,0 +1,1097 @@ +-- **** +-- T80(b) core. In an effort to merge and maintain bug fixes .... +-- +-- Ver 304 init values of registers on first startup (better simulation) +-- Ver 303 add undocumented DDCB and FDCB opcodes by TobiFlex 20.04.2010 +-- Ver 302 fixed IO cycle timing, tested thanks to Alessandro. +-- Ver 301 parity flag is just parity for 8080, also overflow for Z80, by Sean Riddle +-- Ver 300 started tidyup. Rmoved some auto_wait bits from 0247 which caused problems +-- +-- MikeJ March 2005 +-- Latest version from www.fpgaarcade.com (original www.opencores.org) +-- +-- $Id: T80.vhd 1330 2015-05-22 19:55:46Z wolfgang.scherr $ +-- +-- **** +-- +-- Z80 compatible microprocessor core +-- +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +-- MikeJ March 2005 +-- Wolfgang Scherr 2011-2015 (email: WoS pin4 at) +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- Please report bugs to the author, but before you do so, please +-- make sure that this is not a derivative work and that +-- you have the latest version of this file. +-- +-- The latest version of this file can be found at: +-- http://www.opencores.org/cvsweb.shtml/t80/ +-- +-- Limitations : +-- +-- File history : +-- +-- 0208 : First complete release +-- +-- 0210 : Fixed wait and halt +-- +-- 0211 : Fixed Refresh addition and IM 1 +-- +-- 0214 : Fixed mostly flags, only the block instructions now fail the zex regression test +-- +-- 0232 : Removed refresh address output for Mode > 1 and added DJNZ M1_n fix by Mike Johnson +-- +-- 0235 : Added clock enable and IM 2 fix by Mike Johnson +-- +-- 0237 : Changed 8080 I/O address output, added IntE output +-- +-- 0238 : Fixed (IX/IY+d) timing and 16 bit ADC and SBC zero flag +-- +-- 0240 : Added interrupt ack fix by Mike Johnson, changed (IX/IY+d) timing and changed flags in GB mode +-- +-- 0242 : Added I/O wait, fixed refresh address, moved some registers to RAM +-- +-- 0247 : Fixed bus req/ack cycle +-- + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.numeric_std.all; +use work.T80_Pack.all; + +entity T80 is + generic( + Mode : integer := 0; -- 0 => Z80, 1 => Fast Z80, 2 => 8080, 3 => GB + IOWait : integer := 0; -- 1 => Single cycle I/O, 1 => Std I/O cycle + Flag_C : integer := 0; + Flag_N : integer := 1; + Flag_P : integer := 2; + Flag_X : integer := 3; + Flag_H : integer := 4; + Flag_Y : integer := 5; + Flag_Z : integer := 6; + Flag_S : integer := 7 + ); + port( + RESET_n : in std_logic; + CLK_n : in std_logic; + CEN : in std_logic; + WAIT_n : in std_logic; + INT_n : in std_logic; + NMI_n : in std_logic; + BUSRQ_n : in std_logic; + M1_n : out std_logic; + IORQ : out std_logic; + NoRead : out std_logic; + Write : out std_logic; + RFSH_n : out std_logic; + HALT_n : out std_logic; + BUSAK_n : out std_logic; + A : out std_logic_vector(15 downto 0); + DInst : in std_logic_vector(7 downto 0); + DI : in std_logic_vector(7 downto 0); + DO : out std_logic_vector(7 downto 0); + MC : out std_logic_vector(2 downto 0); + TS : out std_logic_vector(2 downto 0); + IntCycle_n : out std_logic; + IntE : out std_logic; + Stop : out std_logic + ); +end T80; + +architecture rtl of T80 is + + constant aNone : std_logic_vector(2 downto 0) := "111"; + constant aBC : std_logic_vector(2 downto 0) := "000"; + constant aDE : std_logic_vector(2 downto 0) := "001"; + constant aXY : std_logic_vector(2 downto 0) := "010"; + constant aIOA : std_logic_vector(2 downto 0) := "100"; + constant aSP : std_logic_vector(2 downto 0) := "101"; + constant aZI : std_logic_vector(2 downto 0) := "110"; + + -- Registers + signal ACC, F : std_logic_vector(7 downto 0) := "11111111"; + signal Ap, Fp : std_logic_vector(7 downto 0) := "11111111"; + signal I : std_logic_vector(7 downto 0) := "00000000"; + signal R : unsigned(7 downto 0) := "00000000"; + signal SP : unsigned(15 downto 0) := "1111111111111111"; + signal PC : unsigned(15 downto 0) := "0000000000000000"; + + signal RegDIH : std_logic_vector(7 downto 0); + signal RegDIL : std_logic_vector(7 downto 0); + signal RegBusA : std_logic_vector(15 downto 0); + signal RegBusB : std_logic_vector(15 downto 0); + signal RegBusC : std_logic_vector(15 downto 0); + signal RegAddrA_r : std_logic_vector(2 downto 0); + signal RegAddrA : std_logic_vector(2 downto 0); + signal RegAddrB_r : std_logic_vector(2 downto 0); + signal RegAddrB : std_logic_vector(2 downto 0); + signal RegAddrC : std_logic_vector(2 downto 0); + signal RegWEH : std_logic; + signal RegWEL : std_logic; + signal Alternate : std_logic; + + -- Help Registers + signal TmpAddr : std_logic_vector(15 downto 0); -- Temporary address register + signal IR : std_logic_vector(7 downto 0); -- Instruction register + signal ISet : std_logic_vector(1 downto 0); -- Instruction set selector + signal RegBusA_r : std_logic_vector(15 downto 0); + + signal ID16 : signed(15 downto 0); + signal Save_Mux : std_logic_vector(7 downto 0); + + signal TState : unsigned(2 downto 0); + signal MCycle : std_logic_vector(2 downto 0); + signal IntE_FF1 : std_logic; + signal IntE_FF2 : std_logic; + signal Halt_FF : std_logic; + signal BusReq_s : std_logic; + signal BusAck : std_logic; + signal ClkEn : std_logic; + signal NMI_s : std_logic; + signal INT_s : std_logic; + signal IStatus : std_logic_vector(1 downto 0); + + signal DI_Reg : std_logic_vector(7 downto 0); + signal T_Res : std_logic; + signal XY_State : std_logic_vector(1 downto 0); + signal Pre_XY_F_M : std_logic_vector(2 downto 0); + signal NextIs_XY_Fetch : std_logic; + signal XY_Ind : std_logic; + signal No_BTR : std_logic; + signal BTR_r : std_logic; + signal Auto_Wait : std_logic; + signal Auto_Wait_t1 : std_logic; + signal Auto_Wait_t2 : std_logic; + signal IncDecZ : std_logic; + + -- ALU signals + signal BusB : std_logic_vector(7 downto 0); + signal BusA : std_logic_vector(7 downto 0); + signal ALU_Q : std_logic_vector(7 downto 0); + signal F_Out : std_logic_vector(7 downto 0); + + -- Registered micro code outputs + signal Read_To_Reg_r : std_logic_vector(4 downto 0); + signal Arith16_r : std_logic; + signal Z16_r : std_logic; + signal ALU_Op_r : std_logic_vector(3 downto 0); + signal Save_ALU_r : std_logic; + signal PreserveC_r : std_logic; + signal MCycles : std_logic_vector(2 downto 0); + + -- Micro code outputs + signal MCycles_d : std_logic_vector(2 downto 0); + signal TStates : std_logic_vector(2 downto 0); + signal IntCycle : std_logic; + signal NMICycle : std_logic; + signal Inc_PC : std_logic; + signal Inc_WZ : std_logic; + signal IncDec_16 : std_logic_vector(3 downto 0); + signal Prefix : std_logic_vector(1 downto 0); + signal Read_To_Acc : std_logic; + signal Read_To_Reg : std_logic; + signal Set_BusB_To : std_logic_vector(3 downto 0); + signal Set_BusA_To : std_logic_vector(3 downto 0); + signal ALU_Op : std_logic_vector(3 downto 0); + signal Save_ALU : std_logic; + signal PreserveC : std_logic; + signal Arith16 : std_logic; + signal Set_Addr_To : std_logic_vector(2 downto 0); + signal Jump : std_logic; + signal JumpE : std_logic; + signal JumpXY : std_logic; + signal Call : std_logic; + signal RstP : std_logic; + signal LDZ : std_logic; + signal LDW : std_logic; + signal LDSPHL : std_logic; + signal IORQ_i : std_logic; + signal Special_LD : std_logic_vector(2 downto 0); + signal ExchangeDH : std_logic; + signal ExchangeRp : std_logic; + signal ExchangeAF : std_logic; + signal ExchangeRS : std_logic; + signal I_DJNZ : std_logic; + signal I_CPL : std_logic; + signal I_CCF : std_logic; + signal I_SCF : std_logic; + signal I_RETN : std_logic; + signal I_BT : std_logic; + signal I_BC : std_logic; + signal I_BTR : std_logic; + signal I_RLD : std_logic; + signal I_RRD : std_logic; + signal I_INRC : std_logic; + signal SetDI : std_logic; + signal SetEI : std_logic; + signal IMode : std_logic_vector(1 downto 0); + signal Halt : std_logic; + signal XYbit_undoc : std_logic; + + +begin + + mcode : T80_MCode + generic map( + Mode => Mode, + Flag_C => Flag_C, + Flag_N => Flag_N, + Flag_P => Flag_P, + Flag_X => Flag_X, + Flag_H => Flag_H, + Flag_Y => Flag_Y, + Flag_Z => Flag_Z, + Flag_S => Flag_S) + port map( + IR => IR, + ISet => ISet, + MCycle => MCycle, + F => F, + NMICycle => NMICycle, + IntCycle => IntCycle, + XY_State => XY_State, + MCycles => MCycles_d, + TStates => TStates, + Prefix => Prefix, + Inc_PC => Inc_PC, + Inc_WZ => Inc_WZ, + IncDec_16 => IncDec_16, + Read_To_Acc => Read_To_Acc, + Read_To_Reg => Read_To_Reg, + Set_BusB_To => Set_BusB_To, + Set_BusA_To => Set_BusA_To, + ALU_Op => ALU_Op, + Save_ALU => Save_ALU, + PreserveC => PreserveC, + Arith16 => Arith16, + Set_Addr_To => Set_Addr_To, + IORQ => IORQ_i, + Jump => Jump, + JumpE => JumpE, + JumpXY => JumpXY, + Call => Call, + RstP => RstP, + LDZ => LDZ, + LDW => LDW, + LDSPHL => LDSPHL, + Special_LD => Special_LD, + ExchangeDH => ExchangeDH, + ExchangeRp => ExchangeRp, + ExchangeAF => ExchangeAF, + ExchangeRS => ExchangeRS, + I_DJNZ => I_DJNZ, + I_CPL => I_CPL, + I_CCF => I_CCF, + I_SCF => I_SCF, + I_RETN => I_RETN, + I_BT => I_BT, + I_BC => I_BC, + I_BTR => I_BTR, + I_RLD => I_RLD, + I_RRD => I_RRD, + I_INRC => I_INRC, + SetDI => SetDI, + SetEI => SetEI, + IMode => IMode, + Halt => Halt, + NoRead => NoRead, + Write => Write, + XYbit_undoc => XYbit_undoc); + + alu : T80_ALU + generic map( + Mode => Mode, + Flag_C => Flag_C, + Flag_N => Flag_N, + Flag_P => Flag_P, + Flag_X => Flag_X, + Flag_H => Flag_H, + Flag_Y => Flag_Y, + Flag_Z => Flag_Z, + Flag_S => Flag_S) + port map( + Arith16 => Arith16_r, + Z16 => Z16_r, + ALU_Op => ALU_Op_r, + IR => IR(5 downto 0), + ISet => ISet, + BusA => BusA, + BusB => BusB, + F_In => F, + Q => ALU_Q, + F_Out => F_Out); + + ClkEn <= CEN and not BusAck; + + T_Res <= '1' when TState = unsigned(TStates) else '0'; + + NextIs_XY_Fetch <= '1' when XY_State /= "00" and XY_Ind = '0' and + ((Set_Addr_To = aXY) or + (MCycle = "001" and IR = "11001011") or + (MCycle = "001" and IR = "00110110")) else '0'; + + Save_Mux <= BusB when ExchangeRp = '1' else + DI_Reg when Save_ALU_r = '0' else + ALU_Q; + + process (RESET_n, CLK_n) + begin + if RESET_n = '0' then + PC <= (others => '0'); -- Program Counter + A <= (others => '0'); + TmpAddr <= (others => '0'); + IR <= "00000000"; + ISet <= "00"; + XY_State <= "00"; + IStatus <= "00"; + MCycles <= "000"; + DO <= "00000000"; + + ACC <= (others => '1'); + F <= (others => '1'); + Ap <= (others => '1'); + Fp <= (others => '1'); + I <= (others => '0'); + R <= (others => '0'); + SP <= (others => '1'); + Alternate <= '0'; + + Read_To_Reg_r <= "00000"; + F <= (others => '1'); + Arith16_r <= '0'; + BTR_r <= '0'; + Z16_r <= '0'; + ALU_Op_r <= "0000"; + Save_ALU_r <= '0'; + PreserveC_r <= '0'; + XY_Ind <= '0'; + + elsif CLK_n'event and CLK_n = '1' then + + if ClkEn = '1' then + + ALU_Op_r <= "0000"; + Save_ALU_r <= '0'; + Read_To_Reg_r <= "00000"; + + MCycles <= MCycles_d; + + if IMode /= "11" then + IStatus <= IMode; + end if; + + Arith16_r <= Arith16; + PreserveC_r <= PreserveC; + if ISet = "10" and ALU_OP(2) = '0' and ALU_OP(0) = '1' and MCycle = "011" then + Z16_r <= '1'; + else + Z16_r <= '0'; + end if; + + if MCycle = "001" and TState(2) = '0' then + -- MCycle = 1 and TState = 1, 2, or 3 + + if TState = 2 and Wait_n = '1' then + if Mode < 2 then + A(7 downto 0) <= std_logic_vector(R); + A(15 downto 8) <= I; + R(6 downto 0) <= R(6 downto 0) + 1; + end if; + + if Jump = '0' and Call = '0' and NMICycle = '0' and IntCycle = '0' and not (Halt_FF = '1' or Halt = '1') then + PC <= PC + 1; + end if; + + if IntCycle = '1' and IStatus = "01" then + IR <= "11111111"; + elsif Halt_FF = '1' or (IntCycle = '1' and IStatus = "10") or NMICycle = '1' then + IR <= "00000000"; + else + IR <= DInst; + end if; + + ISet <= "00"; + if Prefix /= "00" then + if Prefix = "11" then + if IR(5) = '1' then + XY_State <= "10"; + else + XY_State <= "01"; + end if; + else + if Prefix = "10" then + XY_State <= "00"; + XY_Ind <= '0'; + end if; + ISet <= Prefix; + end if; + else + XY_State <= "00"; + XY_Ind <= '0'; + end if; + end if; + + else + -- either (MCycle > 1) OR (MCycle = 1 AND TState > 3) + + if MCycle = "110" then + XY_Ind <= '1'; + if Prefix = "01" then + ISet <= "01"; + end if; + end if; + + if T_Res = '1' then + BTR_r <= (I_BT or I_BC or I_BTR) and not No_BTR; + if Jump = '1' then + A(15 downto 8) <= DI_Reg; + A(7 downto 0) <= TmpAddr(7 downto 0); + PC(15 downto 8) <= unsigned(DI_Reg); + PC(7 downto 0) <= unsigned(TmpAddr(7 downto 0)); + elsif JumpXY = '1' then + A <= RegBusC; + PC <= unsigned(RegBusC); + elsif Call = '1' or RstP = '1' then + A <= TmpAddr; + PC <= unsigned(TmpAddr); + elsif MCycle = MCycles and NMICycle = '1' then + A <= "0000000001100110"; + PC <= "0000000001100110"; + elsif MCycle = "011" and IntCycle = '1' and IStatus = "10" then + A(15 downto 8) <= I; + A(7 downto 0) <= TmpAddr(7 downto 0); + PC(15 downto 8) <= unsigned(I); + PC(7 downto 0) <= unsigned(TmpAddr(7 downto 0)); + else + case Set_Addr_To is + when aXY => + if XY_State = "00" then + A <= RegBusC; + else + if NextIs_XY_Fetch = '1' then + A <= std_logic_vector(PC); + else + A <= TmpAddr; + end if; + end if; + when aIOA => + if Mode = 3 then + -- Memory map I/O on GBZ80 + A(15 downto 8) <= (others => '1'); + elsif Mode = 2 then + -- Duplicate I/O address on 8080 + A(15 downto 8) <= DI_Reg; + else + A(15 downto 8) <= ACC; + end if; + A(7 downto 0) <= DI_Reg; + when aSP => + A <= std_logic_vector(SP); + when aBC => + if Mode = 3 and IORQ_i = '1' then + -- Memory map I/O on GBZ80 + A(15 downto 8) <= (others => '1'); + A(7 downto 0) <= RegBusC(7 downto 0); + else + A <= RegBusC; + end if; + when aDE => + A <= RegBusC; + when aZI => + if Inc_WZ = '1' then + A <= std_logic_vector(unsigned(TmpAddr) + 1); + else + A(15 downto 8) <= DI_Reg; + A(7 downto 0) <= TmpAddr(7 downto 0); + end if; + when others => + A <= std_logic_vector(PC); + end case; + end if; + + Save_ALU_r <= Save_ALU; + ALU_Op_r <= ALU_Op; + + if I_CPL = '1' then + -- CPL + ACC <= not ACC; + F(Flag_Y) <= not ACC(5); + F(Flag_H) <= '1'; + F(Flag_X) <= not ACC(3); + F(Flag_N) <= '1'; + end if; + if I_CCF = '1' then + -- CCF + F(Flag_C) <= not F(Flag_C); + F(Flag_Y) <= ACC(5); + F(Flag_H) <= F(Flag_C); + F(Flag_X) <= ACC(3); + F(Flag_N) <= '0'; + end if; + if I_SCF = '1' then + -- SCF + F(Flag_C) <= '1'; + F(Flag_Y) <= ACC(5); + F(Flag_H) <= '0'; + F(Flag_X) <= ACC(3); + F(Flag_N) <= '0'; + end if; + end if; + + if TState = 2 and Wait_n = '1' then + if ISet = "01" and MCycle = "111" then + IR <= DInst; + end if; + if JumpE = '1' then + PC <= unsigned(signed(PC) + signed(DI_Reg)); + elsif Inc_PC = '1' then + PC <= PC + 1; + end if; + if BTR_r = '1' then + PC <= PC - 2; + end if; + if RstP = '1' then + TmpAddr <= (others =>'0'); + TmpAddr(5 downto 3) <= IR(5 downto 3); + end if; + end if; + if TState = 3 and MCycle = "110" then + TmpAddr <= std_logic_vector(signed(RegBusC) + signed(DI_Reg)); + end if; + + if (TState = 2 and Wait_n = '1') or (TState = 4 and MCycle = "001") then + if IncDec_16(2 downto 0) = "111" then + if IncDec_16(3) = '1' then + SP <= SP - 1; + else + SP <= SP + 1; + end if; + end if; + end if; + + if LDSPHL = '1' then + SP <= unsigned(RegBusC); + end if; + if ExchangeAF = '1' then + Ap <= ACC; + ACC <= Ap; + Fp <= F; + F <= Fp; + end if; + if ExchangeRS = '1' then + Alternate <= not Alternate; + end if; + end if; + + if TState = 3 then + if LDZ = '1' then + TmpAddr(7 downto 0) <= DI_Reg; + end if; + if LDW = '1' then + TmpAddr(15 downto 8) <= DI_Reg; + end if; + + if Special_LD(2) = '1' then + case Special_LD(1 downto 0) is + when "00" => + ACC <= I; + F(Flag_P) <= IntE_FF2; + when "01" => + ACC <= std_logic_vector(R); + F(Flag_P) <= IntE_FF2; + when "10" => + I <= ACC; + when others => + R <= unsigned(ACC); + end case; + end if; + end if; + + if (I_DJNZ = '0' and Save_ALU_r = '1') or ALU_Op_r = "1001" then + if Mode = 3 then + F(6) <= F_Out(6); + F(5) <= F_Out(5); + F(7) <= F_Out(7); + if PreserveC_r = '0' then + F(4) <= F_Out(4); + end if; + else + F(7 downto 1) <= F_Out(7 downto 1); + if PreserveC_r = '0' then + F(Flag_C) <= F_Out(0); + end if; + end if; + end if; + if T_Res = '1' and I_INRC = '1' then + F(Flag_H) <= '0'; + F(Flag_N) <= '0'; + if DI_Reg(7 downto 0) = "00000000" then + F(Flag_Z) <= '1'; + else + F(Flag_Z) <= '0'; + end if; + F(Flag_S) <= DI_Reg(7); + F(Flag_P) <= not (DI_Reg(0) xor DI_Reg(1) xor DI_Reg(2) xor DI_Reg(3) xor + DI_Reg(4) xor DI_Reg(5) xor DI_Reg(6) xor DI_Reg(7)); + end if; + + if TState = 1 then + DO <= BusB; + if I_RLD = '1' then + DO(3 downto 0) <= BusA(3 downto 0); + DO(7 downto 4) <= BusB(3 downto 0); + end if; + if I_RRD = '1' then + DO(3 downto 0) <= BusB(7 downto 4); + DO(7 downto 4) <= BusA(3 downto 0); + end if; + end if; + + if T_Res = '1' then + Read_To_Reg_r(3 downto 0) <= Set_BusA_To; + Read_To_Reg_r(4) <= Read_To_Reg; + if Read_To_Acc = '1' then + Read_To_Reg_r(3 downto 0) <= "0111"; + Read_To_Reg_r(4) <= '1'; + end if; + end if; + + if TState = 1 and I_BT = '1' then + F(Flag_X) <= ALU_Q(3); + F(Flag_Y) <= ALU_Q(1); + F(Flag_H) <= '0'; + F(Flag_N) <= '0'; + end if; + if I_BC = '1' or I_BT = '1' then + F(Flag_P) <= IncDecZ; + end if; + + if (TState = 1 and Save_ALU_r = '0') or + (Save_ALU_r = '1' and ALU_OP_r /= "0111") then + case Read_To_Reg_r is + when "10111" => + ACC <= Save_Mux; + when "10110" => + DO <= Save_Mux; + when "11000" => + SP(7 downto 0) <= unsigned(Save_Mux); + when "11001" => + SP(15 downto 8) <= unsigned(Save_Mux); + when "11011" => + F <= Save_Mux; + when others => + end case; + if XYbit_undoc='1' then + DO <= ALU_Q; + end if; + end if; + + end if; + + end if; + + end process; + +--------------------------------------------------------------------------- +-- +-- BC('), DE('), HL('), IX and IY +-- +--------------------------------------------------------------------------- + process (CLK_n) + begin + if CLK_n'event and CLK_n = '1' then + if ClkEn = '1' then + -- Bus A / Write + RegAddrA_r <= Alternate & Set_BusA_To(2 downto 1); + if XY_Ind = '0' and XY_State /= "00" and Set_BusA_To(2 downto 1) = "10" then + RegAddrA_r <= XY_State(1) & "11"; + end if; + + -- Bus B + RegAddrB_r <= Alternate & Set_BusB_To(2 downto 1); + if XY_Ind = '0' and XY_State /= "00" and Set_BusB_To(2 downto 1) = "10" then + RegAddrB_r <= XY_State(1) & "11"; + end if; + + -- Address from register + RegAddrC <= Alternate & Set_Addr_To(1 downto 0); + -- Jump (HL), LD SP,HL + if (JumpXY = '1' or LDSPHL = '1') then + RegAddrC <= Alternate & "10"; + end if; + if ((JumpXY = '1' or LDSPHL = '1') and XY_State /= "00") or (MCycle = "110") then + RegAddrC <= XY_State(1) & "11"; + end if; + + if I_DJNZ = '1' and Save_ALU_r = '1' and Mode < 2 then + IncDecZ <= F_Out(Flag_Z); + end if; + if (TState = 2 or (TState = 3 and MCycle = "001")) and IncDec_16(2 downto 0) = "100" then + if ID16 = 0 then + IncDecZ <= '0'; + else + IncDecZ <= '1'; + end if; + end if; + + RegBusA_r <= RegBusA; + end if; + end if; + end process; + + RegAddrA <= + -- 16 bit increment/decrement + Alternate & IncDec_16(1 downto 0) when (TState = 2 or + (TState = 3 and MCycle = "001" and IncDec_16(2) = '1')) and XY_State = "00" else + XY_State(1) & "11" when (TState = 2 or + (TState = 3 and MCycle = "001" and IncDec_16(2) = '1')) and IncDec_16(1 downto 0) = "10" else + -- EX HL,DL + Alternate & "10" when ExchangeDH = '1' and TState = 3 else + Alternate & "01" when ExchangeDH = '1' and TState = 4 else + -- Bus A / Write + RegAddrA_r; + + RegAddrB <= + -- EX HL,DL + Alternate & "01" when ExchangeDH = '1' and TState = 3 else + -- Bus B + RegAddrB_r; + + ID16 <= signed(RegBusA) - 1 when IncDec_16(3) = '1' else + signed(RegBusA) + 1; + + process (Save_ALU_r, Auto_Wait_t1, ALU_OP_r, Read_To_Reg_r, + ExchangeDH, IncDec_16, MCycle, TState, Wait_n) + begin + RegWEH <= '0'; + RegWEL <= '0'; + if (TState = 1 and Save_ALU_r = '0') or + (Save_ALU_r = '1' and ALU_OP_r /= "0111") then + case Read_To_Reg_r is + when "10000" | "10001" | "10010" | "10011" | "10100" | "10101" => + RegWEH <= not Read_To_Reg_r(0); + RegWEL <= Read_To_Reg_r(0); + when others => + end case; + end if; + + if ExchangeDH = '1' and (TState = 3 or TState = 4) then + RegWEH <= '1'; + RegWEL <= '1'; + end if; + + if IncDec_16(2) = '1' and ((TState = 2 and Wait_n = '1' and MCycle /= "001") or (TState = 3 and MCycle = "001")) then + case IncDec_16(1 downto 0) is + when "00" | "01" | "10" => + RegWEH <= '1'; + RegWEL <= '1'; + when others => + end case; + end if; + end process; + + process (Save_Mux, RegBusB, RegBusA_r, ID16, + ExchangeDH, IncDec_16, MCycle, TState, Wait_n) + begin + RegDIH <= Save_Mux; + RegDIL <= Save_Mux; + + if ExchangeDH = '1' and TState = 3 then + RegDIH <= RegBusB(15 downto 8); + RegDIL <= RegBusB(7 downto 0); + end if; + if ExchangeDH = '1' and TState = 4 then + RegDIH <= RegBusA_r(15 downto 8); + RegDIL <= RegBusA_r(7 downto 0); + end if; + + if IncDec_16(2) = '1' and ((TState = 2 and MCycle /= "001") or (TState = 3 and MCycle = "001")) then + RegDIH <= std_logic_vector(ID16(15 downto 8)); + RegDIL <= std_logic_vector(ID16(7 downto 0)); + end if; + end process; + + Regs : T80_Reg + port map( + Clk => CLK_n, + CEN => ClkEn, + WEH => RegWEH, + WEL => RegWEL, + AddrA => RegAddrA, + AddrB => RegAddrB, + AddrC => RegAddrC, + DIH => RegDIH, + DIL => RegDIL, + DOAH => RegBusA(15 downto 8), + DOAL => RegBusA(7 downto 0), + DOBH => RegBusB(15 downto 8), + DOBL => RegBusB(7 downto 0), + DOCH => RegBusC(15 downto 8), + DOCL => RegBusC(7 downto 0)); + +--------------------------------------------------------------------------- +-- +-- Buses +-- +--------------------------------------------------------------------------- + process (CLK_n) + begin + if CLK_n'event and CLK_n = '1' then + if ClkEn = '1' then + case Set_BusB_To is + when "0111" => + BusB <= ACC; + when "0000" | "0001" | "0010" | "0011" | "0100" | "0101" => + if Set_BusB_To(0) = '1' then + BusB <= RegBusB(7 downto 0); + else + BusB <= RegBusB(15 downto 8); + end if; + when "0110" => + BusB <= DI_Reg; + when "1000" => + BusB <= std_logic_vector(SP(7 downto 0)); + when "1001" => + BusB <= std_logic_vector(SP(15 downto 8)); + when "1010" => + BusB <= "00000001"; + when "1011" => + BusB <= F; + when "1100" => + BusB <= std_logic_vector(PC(7 downto 0)); + when "1101" => + BusB <= std_logic_vector(PC(15 downto 8)); + when "1110" => + BusB <= "00000000"; + when others => + BusB <= "--------"; + end case; + + case Set_BusA_To is + when "0111" => + BusA <= ACC; + when "0000" | "0001" | "0010" | "0011" | "0100" | "0101" => + if Set_BusA_To(0) = '1' then + BusA <= RegBusA(7 downto 0); + else + BusA <= RegBusA(15 downto 8); + end if; + when "0110" => + BusA <= DI_Reg; + when "1000" => + BusA <= std_logic_vector(SP(7 downto 0)); + when "1001" => + BusA <= std_logic_vector(SP(15 downto 8)); + when "1010" => + BusA <= "00000000"; + when others => + BusB <= "--------"; + end case; + if XYbit_undoc='1' then + BusA <= DI_Reg; + BusB <= DI_Reg; + end if; + end if; + end if; + end process; + +--------------------------------------------------------------------------- +-- +-- Generate external control signals +-- +--------------------------------------------------------------------------- + process (RESET_n,CLK_n) + begin + if RESET_n = '0' then + RFSH_n <= '1'; + elsif CLK_n'event and CLK_n = '1' then + if CEN = '1' then + if MCycle = "001" and ((TState = 2 and Wait_n = '1') or TState = 3) then + RFSH_n <= '0'; + else + RFSH_n <= '1'; + end if; + end if; + end if; + end process; + + MC <= std_logic_vector(MCycle); + TS <= std_logic_vector(TState); + DI_Reg <= DI; + HALT_n <= not Halt_FF; + BUSAK_n <= not BusAck; + IntCycle_n <= not IntCycle; + IntE <= IntE_FF1; + IORQ <= IORQ_i; + Stop <= I_DJNZ; + +------------------------------------------------------------------------- +-- +-- Syncronise inputs +-- +------------------------------------------------------------------------- + process (RESET_n, CLK_n) + variable OldNMI_n : std_logic; + begin + if RESET_n = '0' then + BusReq_s <= '0'; + INT_s <= '0'; + NMI_s <= '0'; + OldNMI_n := '0'; + elsif CLK_n'event and CLK_n = '1' then + if CEN = '1' then + BusReq_s <= not BUSRQ_n; + INT_s <= not INT_n; + if NMICycle = '1' then + NMI_s <= '0'; + elsif NMI_n = '0' and OldNMI_n = '1' then + NMI_s <= '1'; + end if; + OldNMI_n := NMI_n; + end if; + end if; + end process; + +------------------------------------------------------------------------- +-- +-- Main state machine +-- +------------------------------------------------------------------------- + process (RESET_n, CLK_n) + begin + if RESET_n = '0' then + MCycle <= "001"; + TState <= "000"; + Pre_XY_F_M <= "000"; + Halt_FF <= '0'; + BusAck <= '0'; + NMICycle <= '0'; + IntCycle <= '0'; + IntE_FF1 <= '0'; + IntE_FF2 <= '0'; + No_BTR <= '0'; + Auto_Wait_t1 <= '0'; + Auto_Wait_t2 <= '0'; + M1_n <= '1'; + elsif CLK_n'event and CLK_n = '1' then + if CEN = '1' then + Auto_Wait_t1 <= Auto_Wait; + Auto_Wait_t2 <= Auto_Wait_t1; + No_BTR <= (I_BT and (not IR(4) or not F(Flag_P))) or + (I_BC and (not IR(4) or F(Flag_Z) or not F(Flag_P))) or + (I_BTR and (not IR(4) or F(Flag_Z))); + if TState = 2 then + if SetEI = '1' then + IntE_FF1 <= '1'; + IntE_FF2 <= '1'; + end if; + if I_RETN = '1' then + IntE_FF1 <= IntE_FF2; + end if; + end if; + if TState = 3 then + if SetDI = '1' then + IntE_FF1 <= '0'; + IntE_FF2 <= '0'; + end if; + end if; + if IntCycle = '1' or NMICycle = '1' then + Halt_FF <= '0'; + end if; + if MCycle = "001" and TState = 2 and Wait_n = '1' then + M1_n <= '1'; + end if; + if BusReq_s = '1' and BusAck = '1' then + else + BusAck <= '0'; + if TState = 2 and Wait_n = '0' then + elsif T_Res = '1' then + if Halt = '1' then + Halt_FF <= '1'; + end if; + if BusReq_s = '1' then + BusAck <= '1'; + else + TState <= "001"; + if NextIs_XY_Fetch = '1' then + MCycle <= "110"; + Pre_XY_F_M <= MCycle; + if IR = "00110110" and Mode = 0 then + Pre_XY_F_M <= "010"; + end if; + elsif (MCycle = "111") or + (MCycle = "110" and Mode = 1 and ISet /= "01") then + MCycle <= std_logic_vector(unsigned(Pre_XY_F_M) + 1); + elsif (MCycle = MCycles) or + No_BTR = '1' or + (MCycle = "010" and I_DJNZ = '1' and IncDecZ = '1') then + M1_n <= '0'; + MCycle <= "001"; + IntCycle <= '0'; + NMICycle <= '0'; + if NMI_s = '1' and Prefix = "00" then + NMICycle <= '1'; + IntE_FF1 <= '0'; + elsif (IntE_FF1 = '1' and INT_s = '1') and Prefix = "00" and SetEI = '0' then + IntCycle <= '1'; + IntE_FF1 <= '0'; + IntE_FF2 <= '0'; + end if; + else + MCycle <= std_logic_vector(unsigned(MCycle) + 1); + end if; + end if; + else + if Auto_Wait = '1' nand Auto_Wait_t2 = '0' then + + TState <= TState + 1; + end if; + end if; + end if; + if TState = 0 then + M1_n <= '0'; + end if; + end if; + end if; + end process; + + process (IntCycle, NMICycle, MCycle) + begin + Auto_Wait <= '0'; + if IntCycle = '1' or NMICycle = '1' then + if MCycle = "001" then + Auto_Wait <= '1'; + end if; + end if; + end process; + +end; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_ALU.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_ALU.vhd new file mode 100644 index 00000000..96e689f1 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_ALU.vhd @@ -0,0 +1,371 @@ +-- **** +-- T80(b) core. In an effort to merge and maintain bug fixes .... +-- +-- Ver 301 parity flag is just parity for 8080, also overflow for Z80, by Sean Riddle +-- Ver 300 started tidyup +-- +-- Latest version from www.fpgaarcade.com (original www.opencores.org) +-- +-- $Id: T80_ALU.vhd 1330 2015-05-22 19:55:46Z wolfgang.scherr $ +-- +-- **** +-- +-- Z80 compatible microprocessor core +-- +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +-- MikeJ March 2005 +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- Please report bugs to the author, but before you do so, please +-- make sure that this is not a derivative work and that +-- you have the latest version of this file. +-- +-- The latest version of this file can be found at: +-- http://www.opencores.org/cvsweb.shtml/t80/ +-- +-- Limitations : +-- +-- File history : +-- +-- 0214 : Fixed mostly flags, only the block instructions now fail the zex regression test +-- +-- 0238 : Fixed zero flag for 16 bit SBC and ADC +-- +-- 0240 : Added GB operations +-- +-- 0242 : Cleanup +-- +-- 0247 : Cleanup +-- + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.numeric_std.all; + +entity T80_ALU is + generic( + Mode : integer := 0; + Flag_C : integer := 0; + Flag_N : integer := 1; + Flag_P : integer := 2; + Flag_X : integer := 3; + Flag_H : integer := 4; + Flag_Y : integer := 5; + Flag_Z : integer := 6; + Flag_S : integer := 7 + ); + port( + Arith16 : in std_logic; + Z16 : in std_logic; + ALU_Op : in std_logic_vector(3 downto 0); + IR : in std_logic_vector(5 downto 0); + ISet : in std_logic_vector(1 downto 0); + BusA : in std_logic_vector(7 downto 0); + BusB : in std_logic_vector(7 downto 0); + F_In : in std_logic_vector(7 downto 0); + Q : out std_logic_vector(7 downto 0); + F_Out : out std_logic_vector(7 downto 0) + ); +end T80_ALU; + +architecture rtl of T80_ALU is + + procedure AddSub(A : std_logic_vector; + B : std_logic_vector; + Sub : std_logic; + Carry_In : std_logic; + signal Res : out std_logic_vector; + signal Carry : out std_logic) is + + variable B_i : unsigned(A'length - 1 downto 0); + variable Res_i : unsigned(A'length + 1 downto 0); + begin + if Sub = '1' then + B_i := not unsigned(B); + else + B_i := unsigned(B); + end if; + + Res_i := unsigned("0" & A & Carry_In) + unsigned("0" & B_i & "1"); + Carry <= Res_i(A'length + 1); + Res <= std_logic_vector(Res_i(A'length downto 1)); + end; + + -- AddSub variables (temporary signals) + signal UseCarry : std_logic; + signal Carry7_v : std_logic; + signal Overflow_v : std_logic; + signal HalfCarry_v : std_logic; + signal Carry_v : std_logic; + signal Q_v : std_logic_vector(7 downto 0); + + signal BitMask : std_logic_vector(7 downto 0); + +begin + + with IR(5 downto 3) select BitMask <= "00000001" when "000", + "00000010" when "001", + "00000100" when "010", + "00001000" when "011", + "00010000" when "100", + "00100000" when "101", + "01000000" when "110", + "10000000" when others; + + UseCarry <= not ALU_Op(2) and ALU_Op(0); + AddSub(BusA(3 downto 0), BusB(3 downto 0), ALU_Op(1), ALU_Op(1) xor (UseCarry and F_In(Flag_C)), Q_v(3 downto 0), HalfCarry_v); + AddSub(BusA(6 downto 4), BusB(6 downto 4), ALU_Op(1), HalfCarry_v, Q_v(6 downto 4), Carry7_v); + AddSub(BusA(7 downto 7), BusB(7 downto 7), ALU_Op(1), Carry7_v, Q_v(7 downto 7), Carry_v); + + -- bug fix - parity flag is just parity for 8080, also overflow for Z80 + process (Carry_v, Carry7_v, Q_v) + begin + if(Mode=2) then + OverFlow_v <= not (Q_v(0) xor Q_v(1) xor Q_v(2) xor Q_v(3) xor + Q_v(4) xor Q_v(5) xor Q_v(6) xor Q_v(7)); else + OverFlow_v <= Carry_v xor Carry7_v; + end if; + end process; + + process (Arith16, ALU_OP, F_In, BusA, BusB, IR, Q_v, Carry_v, HalfCarry_v, OverFlow_v, BitMask, ISet, Z16) + variable Q_t : std_logic_vector(7 downto 0); + variable DAA_Q : unsigned(8 downto 0); + begin + Q_t := "--------"; + F_Out <= F_In; + DAA_Q := "---------"; + case ALU_Op is + when "0000" | "0001" | "0010" | "0011" | "0100" | "0101" | "0110" | "0111" => + F_Out(Flag_N) <= '0'; + F_Out(Flag_C) <= '0'; + case ALU_OP(2 downto 0) is + when "000" | "001" => -- ADD, ADC + Q_t := Q_v; + F_Out(Flag_C) <= Carry_v; + F_Out(Flag_H) <= HalfCarry_v; + F_Out(Flag_P) <= OverFlow_v; + when "010" | "011" | "111" => -- SUB, SBC, CP + Q_t := Q_v; + F_Out(Flag_N) <= '1'; + F_Out(Flag_C) <= not Carry_v; + F_Out(Flag_H) <= not HalfCarry_v; + F_Out(Flag_P) <= OverFlow_v; + when "100" => -- AND + Q_t(7 downto 0) := BusA and BusB; + F_Out(Flag_H) <= '1'; + when "101" => -- XOR + Q_t(7 downto 0) := BusA xor BusB; + F_Out(Flag_H) <= '0'; + when others => -- OR "110" + Q_t(7 downto 0) := BusA or BusB; + F_Out(Flag_H) <= '0'; + end case; + if ALU_Op(2 downto 0) = "111" then -- CP + F_Out(Flag_X) <= BusB(3); + F_Out(Flag_Y) <= BusB(5); + else + F_Out(Flag_X) <= Q_t(3); + F_Out(Flag_Y) <= Q_t(5); + end if; + if Q_t(7 downto 0) = "00000000" then + F_Out(Flag_Z) <= '1'; + if Z16 = '1' then + F_Out(Flag_Z) <= F_In(Flag_Z); -- 16 bit ADC,SBC + end if; + else + F_Out(Flag_Z) <= '0'; + end if; + F_Out(Flag_S) <= Q_t(7); + case ALU_Op(2 downto 0) is + when "000" | "001" | "010" | "011" | "111" => -- ADD, ADC, SUB, SBC, CP + when others => + F_Out(Flag_P) <= not (Q_t(0) xor Q_t(1) xor Q_t(2) xor Q_t(3) xor + Q_t(4) xor Q_t(5) xor Q_t(6) xor Q_t(7)); + end case; + if Arith16 = '1' then + F_Out(Flag_S) <= F_In(Flag_S); + F_Out(Flag_Z) <= F_In(Flag_Z); + F_Out(Flag_P) <= F_In(Flag_P); + end if; + when "1100" => + -- DAA + F_Out(Flag_H) <= F_In(Flag_H); + F_Out(Flag_C) <= F_In(Flag_C); + DAA_Q(7 downto 0) := unsigned(BusA); + DAA_Q(8) := '0'; + if F_In(Flag_N) = '0' then + -- After addition + -- Alow > 9 or H = 1 + if DAA_Q(3 downto 0) > 9 or F_In(Flag_H) = '1' then + if (DAA_Q(3 downto 0) > 9) then + F_Out(Flag_H) <= '1'; + else + F_Out(Flag_H) <= '0'; + end if; + DAA_Q := DAA_Q + 6; + end if; + -- new Ahigh > 9 or C = 1 + if DAA_Q(8 downto 4) > 9 or F_In(Flag_C) = '1' then + DAA_Q := DAA_Q + 96; -- 0x60 + end if; + else + -- After subtraction + if DAA_Q(3 downto 0) > 9 or F_In(Flag_H) = '1' then + if DAA_Q(3 downto 0) > 5 then + F_Out(Flag_H) <= '0'; + end if; + DAA_Q(7 downto 0) := DAA_Q(7 downto 0) - 6; + end if; + if unsigned(BusA) > 153 or F_In(Flag_C) = '1' then + DAA_Q := DAA_Q - 352; -- 0x160 + end if; + end if; + F_Out(Flag_X) <= DAA_Q(3); + F_Out(Flag_Y) <= DAA_Q(5); + F_Out(Flag_C) <= F_In(Flag_C) or DAA_Q(8); + Q_t := std_logic_vector(DAA_Q(7 downto 0)); + if DAA_Q(7 downto 0) = "00000000" then + F_Out(Flag_Z) <= '1'; + else + F_Out(Flag_Z) <= '0'; + end if; + F_Out(Flag_S) <= DAA_Q(7); + F_Out(Flag_P) <= not (DAA_Q(0) xor DAA_Q(1) xor DAA_Q(2) xor DAA_Q(3) xor + DAA_Q(4) xor DAA_Q(5) xor DAA_Q(6) xor DAA_Q(7)); + when "1101" | "1110" => + -- RLD, RRD + Q_t(7 downto 4) := BusA(7 downto 4); + if ALU_Op(0) = '1' then + Q_t(3 downto 0) := BusB(7 downto 4); + else + Q_t(3 downto 0) := BusB(3 downto 0); + end if; + F_Out(Flag_H) <= '0'; + F_Out(Flag_N) <= '0'; + F_Out(Flag_X) <= Q_t(3); + F_Out(Flag_Y) <= Q_t(5); + if Q_t(7 downto 0) = "00000000" then + F_Out(Flag_Z) <= '1'; + else + F_Out(Flag_Z) <= '0'; + end if; + F_Out(Flag_S) <= Q_t(7); + F_Out(Flag_P) <= not (Q_t(0) xor Q_t(1) xor Q_t(2) xor Q_t(3) xor + Q_t(4) xor Q_t(5) xor Q_t(6) xor Q_t(7)); + when "1001" => + -- BIT + Q_t(7 downto 0) := BusB and BitMask; + F_Out(Flag_S) <= Q_t(7); + if Q_t(7 downto 0) = "00000000" then + F_Out(Flag_Z) <= '1'; + F_Out(Flag_P) <= '1'; + else + F_Out(Flag_Z) <= '0'; + F_Out(Flag_P) <= '0'; + end if; + F_Out(Flag_H) <= '1'; + F_Out(Flag_N) <= '0'; + F_Out(Flag_X) <= '0'; + F_Out(Flag_Y) <= '0'; + if IR(2 downto 0) /= "110" then + F_Out(Flag_X) <= BusB(3); + F_Out(Flag_Y) <= BusB(5); + end if; + when "1010" => + -- SET + Q_t(7 downto 0) := BusB or BitMask; + when "1011" => + -- RES + Q_t(7 downto 0) := BusB and not BitMask; + when "1000" => + -- ROT + case IR(5 downto 3) is + when "000" => -- RLC + Q_t(7 downto 1) := BusA(6 downto 0); + Q_t(0) := BusA(7); + F_Out(Flag_C) <= BusA(7); + when "010" => -- RL + Q_t(7 downto 1) := BusA(6 downto 0); + Q_t(0) := F_In(Flag_C); + F_Out(Flag_C) <= BusA(7); + when "001" => -- RRC + Q_t(6 downto 0) := BusA(7 downto 1); + Q_t(7) := BusA(0); + F_Out(Flag_C) <= BusA(0); + when "011" => -- RR + Q_t(6 downto 0) := BusA(7 downto 1); + Q_t(7) := F_In(Flag_C); + F_Out(Flag_C) <= BusA(0); + when "100" => -- SLA + Q_t(7 downto 1) := BusA(6 downto 0); + Q_t(0) := '0'; + F_Out(Flag_C) <= BusA(7); + when "110" => -- SLL (Undocumented) / SWAP + if Mode = 3 then + Q_t(7 downto 4) := BusA(3 downto 0); + Q_t(3 downto 0) := BusA(7 downto 4); + F_Out(Flag_C) <= '0'; + else + Q_t(7 downto 1) := BusA(6 downto 0); + Q_t(0) := '1'; + F_Out(Flag_C) <= BusA(7); + end if; + when "101" => -- SRA + Q_t(6 downto 0) := BusA(7 downto 1); + Q_t(7) := BusA(7); + F_Out(Flag_C) <= BusA(0); + when others => -- SRL + Q_t(6 downto 0) := BusA(7 downto 1); + Q_t(7) := '0'; + F_Out(Flag_C) <= BusA(0); + end case; + F_Out(Flag_H) <= '0'; + F_Out(Flag_N) <= '0'; + F_Out(Flag_X) <= Q_t(3); + F_Out(Flag_Y) <= Q_t(5); + F_Out(Flag_S) <= Q_t(7); + if Q_t(7 downto 0) = "00000000" then + F_Out(Flag_Z) <= '1'; + else + F_Out(Flag_Z) <= '0'; + end if; + F_Out(Flag_P) <= not (Q_t(0) xor Q_t(1) xor Q_t(2) xor Q_t(3) xor + Q_t(4) xor Q_t(5) xor Q_t(6) xor Q_t(7)); + if ISet = "00" then + F_Out(Flag_P) <= F_In(Flag_P); + F_Out(Flag_S) <= F_In(Flag_S); + F_Out(Flag_Z) <= F_In(Flag_Z); + end if; + when others => + null; + end case; + Q <= Q_t; + end process; +end; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_MCode.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_MCode.vhd new file mode 100644 index 00000000..6fc66bc1 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_MCode.vhd @@ -0,0 +1,2030 @@ +-- **** +-- T80(b) core. In an effort to merge and maintain bug fixes .... +-- +-- Ver 304 synthesis/simulation fixes +-- Ver 303 add undocumented DDCB and FDCB opcodes by TobiFlex 20.04.2010 +-- Ver 302 fixed IO cycle timing, tested thanks to Alessandro. +-- Ver 300 started tidyup +-- +-- Latest version from www.fpgaarcade.com (original www.opencores.org) +-- +-- $Id: T80_MCode.vhd 1330 2015-05-22 19:55:46Z wolfgang.scherr $ +-- +-- **** +-- +-- Z80 compatible microprocessor core +-- +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +-- MikeJ March 2005 +-- Wolfgang Scherr 2011-2015 (email: WoS pin4 at) +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- Please report bugs to the author, but before you do so, please +-- make sure that this is not a derivative work and that +-- you have the latest version of this file. +-- +-- The latest version of this file can be found at: +-- http://www.opencores.org/cvsweb.shtml/t80/ +-- +-- Limitations : +-- +-- File history : +-- +-- 0208 : First complete release +-- +-- 0211 : Fixed IM 1 +-- +-- 0214 : Fixed mostly flags, only the block instructions now fail the zex regression test +-- +-- 0235 : Added IM 2 fix by Mike Johnson +-- +-- 0238 : Added NoRead signal +-- +-- 0238b: Fixed instruction timing for POP and DJNZ +-- +-- 0240 : Added (IX/IY+d) states, removed op-codes from mode 2 and added all remaining mode 3 op-codes + +-- 0240mj1 fix for HL inc/dec for INI, IND, INIR, INDR, OUTI, OUTD, OTIR, OTDR +-- +-- 0242 : Fixed I/O instruction timing, cleanup +-- + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.numeric_std.all; +use work.T80_Pack.all; + +entity T80_MCode is + generic( + Mode : integer := 0; + Flag_C : integer := 0; + Flag_N : integer := 1; + Flag_P : integer := 2; + Flag_X : integer := 3; + Flag_H : integer := 4; + Flag_Y : integer := 5; + Flag_Z : integer := 6; + Flag_S : integer := 7 + ); + port( + IR : in std_logic_vector(7 downto 0); + ISet : in std_logic_vector(1 downto 0); + MCycle : in std_logic_vector(2 downto 0); + F : in std_logic_vector(7 downto 0); + NMICycle : in std_logic; + IntCycle : in std_logic; + XY_State : in std_logic_vector(1 downto 0); + MCycles : out std_logic_vector(2 downto 0); + TStates : out std_logic_vector(2 downto 0); + Prefix : out std_logic_vector(1 downto 0); -- None,CB,ED,DD/FD + Inc_PC : out std_logic; + Inc_WZ : out std_logic; + IncDec_16 : out std_logic_vector(3 downto 0); -- BC,DE,HL,SP 0 is inc + Read_To_Reg : out std_logic; + Read_To_Acc : out std_logic; + Set_BusA_To : out std_logic_vector(3 downto 0); -- B,C,D,E,H,L,DI/DB,A,SP(L),SP(M),0,F + Set_BusB_To : out std_logic_vector(3 downto 0); -- B,C,D,E,H,L,DI,A,SP(L),SP(M),1,F,PC(L),PC(M),0 + ALU_Op : out std_logic_vector(3 downto 0); + -- ADD, ADC, SUB, SBC, AND, XOR, OR, CP, ROT, BIT, SET, RES, DAA, RLD, RRD, None + Save_ALU : out std_logic; + PreserveC : out std_logic; + Arith16 : out std_logic; + Set_Addr_To : out std_logic_vector(2 downto 0); -- aNone,aXY,aIOA,aSP,aBC,aDE,aZI + IORQ : out std_logic; + Jump : out std_logic; + JumpE : out std_logic; + JumpXY : out std_logic; + Call : out std_logic; + RstP : out std_logic; + LDZ : out std_logic; + LDW : out std_logic; + LDSPHL : out std_logic; + Special_LD : out std_logic_vector(2 downto 0); -- A,I;A,R;I,A;R,A;None + ExchangeDH : out std_logic; + ExchangeRp : out std_logic; + ExchangeAF : out std_logic; + ExchangeRS : out std_logic; + I_DJNZ : out std_logic; + I_CPL : out std_logic; + I_CCF : out std_logic; + I_SCF : out std_logic; + I_RETN : out std_logic; + I_BT : out std_logic; + I_BC : out std_logic; + I_BTR : out std_logic; + I_RLD : out std_logic; + I_RRD : out std_logic; + I_INRC : out std_logic; + SetDI : out std_logic; + SetEI : out std_logic; + IMode : out std_logic_vector(1 downto 0); + Halt : out std_logic; + NoRead : out std_logic; + Write : out std_logic; + XYbit_undoc : out std_logic + ); +end T80_MCode; + +architecture rtl of T80_MCode is + + constant aNone : std_logic_vector(2 downto 0) := "111"; + constant aBC : std_logic_vector(2 downto 0) := "000"; + constant aDE : std_logic_vector(2 downto 0) := "001"; + constant aXY : std_logic_vector(2 downto 0) := "010"; + constant aIOA : std_logic_vector(2 downto 0) := "100"; + constant aSP : std_logic_vector(2 downto 0) := "101"; + constant aZI : std_logic_vector(2 downto 0) := "110"; + + function is_cc_true( + F : std_logic_vector(7 downto 0); + cc : bit_vector(2 downto 0) + ) return boolean is + begin + if Mode = 3 then + case cc is + when "000" => return F(7) = '0'; -- NZ + when "001" => return F(7) = '1'; -- Z + when "010" => return F(4) = '0'; -- NC + when "011" => return F(4) = '1'; -- C + when "100" => return false; + when "101" => return false; + when "110" => return false; + when "111" => return false; + end case; + else + case cc is + when "000" => return F(6) = '0'; -- NZ + when "001" => return F(6) = '1'; -- Z + when "010" => return F(0) = '0'; -- NC + when "011" => return F(0) = '1'; -- C + when "100" => return F(2) = '0'; -- PO + when "101" => return F(2) = '1'; -- PE + when "110" => return F(7) = '0'; -- P + when "111" => return F(7) = '1'; -- M + end case; + end if; + end; + +begin + + process (IR, ISet, MCycle, F, NMICycle, IntCycle, XY_State) + variable DDD : std_logic_vector(2 downto 0); + variable SSS : std_logic_vector(2 downto 0); + variable DPair : std_logic_vector(1 downto 0); + variable IRB : bit_vector(7 downto 0); + begin + DDD := IR(5 downto 3); + SSS := IR(2 downto 0); + DPair := IR(5 downto 4); + IRB := to_bitvector(IR); + + MCycles <= "001"; + if MCycle = "001" then + TStates <= "100"; + else + TStates <= "011"; + end if; + Prefix <= "00"; + Inc_PC <= '0'; + Inc_WZ <= '0'; + IncDec_16 <= "0000"; + Read_To_Acc <= '0'; + Read_To_Reg <= '0'; + Set_BusB_To <= "0000"; + Set_BusA_To <= "0000"; + ALU_Op <= "0" & IR(5 downto 3); + Save_ALU <= '0'; + PreserveC <= '0'; + Arith16 <= '0'; + IORQ <= '0'; + Set_Addr_To <= aNone; + Jump <= '0'; + JumpE <= '0'; + JumpXY <= '0'; + Call <= '0'; + RstP <= '0'; + LDZ <= '0'; + LDW <= '0'; + LDSPHL <= '0'; + Special_LD <= "000"; + ExchangeDH <= '0'; + ExchangeRp <= '0'; + ExchangeAF <= '0'; + ExchangeRS <= '0'; + I_DJNZ <= '0'; + I_CPL <= '0'; + I_CCF <= '0'; + I_SCF <= '0'; + I_RETN <= '0'; + I_BT <= '0'; + I_BC <= '0'; + I_BTR <= '0'; + I_RLD <= '0'; + I_RRD <= '0'; + I_INRC <= '0'; + SetDI <= '0'; + SetEI <= '0'; + IMode <= "11"; + Halt <= '0'; + NoRead <= '0'; + Write <= '0'; + XYbit_undoc <= '0'; + + case ISet is + when "00" => + +------------------------------------------------------------------------------ +-- +-- Unprefixed instructions +-- +------------------------------------------------------------------------------ + + case IRB is +-- 8 BIT LOAD GROUP + when "01000000"|"01000001"|"01000010"|"01000011"|"01000100"|"01000101"|"01000111" + |"01001000"|"01001001"|"01001010"|"01001011"|"01001100"|"01001101"|"01001111" + |"01010000"|"01010001"|"01010010"|"01010011"|"01010100"|"01010101"|"01010111" + |"01011000"|"01011001"|"01011010"|"01011011"|"01011100"|"01011101"|"01011111" + |"01100000"|"01100001"|"01100010"|"01100011"|"01100100"|"01100101"|"01100111" + |"01101000"|"01101001"|"01101010"|"01101011"|"01101100"|"01101101"|"01101111" + |"01111000"|"01111001"|"01111010"|"01111011"|"01111100"|"01111101"|"01111111" => + -- LD r,r' + Set_BusB_To(2 downto 0) <= SSS; + ExchangeRp <= '1'; + Set_BusA_To(2 downto 0) <= DDD; + Read_To_Reg <= '1'; + when "00000110"|"00001110"|"00010110"|"00011110"|"00100110"|"00101110"|"00111110" => + -- LD r,n + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + Set_BusA_To(2 downto 0) <= DDD; + Read_To_Reg <= '1'; + when others => null; + end case; + when "01000110"|"01001110"|"01010110"|"01011110"|"01100110"|"01101110"|"01111110" => + -- LD r,(HL) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + when 2 => + Set_BusA_To(2 downto 0) <= DDD; + Read_To_Reg <= '1'; + when others => null; + end case; + when "01110000"|"01110001"|"01110010"|"01110011"|"01110100"|"01110101"|"01110111" => + -- LD (HL),r + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + Set_BusB_To(2 downto 0) <= SSS; + Set_BusB_To(3) <= '0'; + when 2 => + Write <= '1'; + when others => null; + end case; + when "00110110" => + -- LD (HL),n + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + Set_Addr_To <= aXY; + Set_BusB_To(2 downto 0) <= SSS; + Set_BusB_To(3) <= '0'; + when 3 => + Write <= '1'; + when others => null; + end case; + when "00001010" => + -- LD A,(BC) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aBC; + when 2 => + Read_To_Acc <= '1'; + when others => null; + end case; + when "00011010" => + -- LD A,(DE) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aDE; + when 2 => + Read_To_Acc <= '1'; + when others => null; + end case; + when "00111010" => + if Mode = 3 then + -- LDD A,(HL) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + when 2 => + Read_To_Acc <= '1'; + IncDec_16 <= "1110"; + when others => null; + end case; + else + -- LD A,(nn) + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + when 4 => + Read_To_Acc <= '1'; + when others => null; + end case; + end if; + when "00000010" => + -- LD (BC),A + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aBC; + Set_BusB_To <= "0111"; + when 2 => + Write <= '1'; + when others => null; + end case; + when "00010010" => + -- LD (DE),A + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aDE; + Set_BusB_To <= "0111"; + when 2 => + Write <= '1'; + when others => null; + end case; + when "00110010" => + if Mode = 3 then + -- LDD (HL),A + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + Set_BusB_To <= "0111"; + when 2 => + Write <= '1'; + IncDec_16 <= "1110"; + when others => null; + end case; + else + -- LD (nn),A + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + Set_BusB_To <= "0111"; + when 4 => + Write <= '1'; + when others => null; + end case; + end if; + +-- 16 BIT LOAD GROUP + when "00000001"|"00010001"|"00100001"|"00110001" => + -- LD dd,nn + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + Read_To_Reg <= '1'; + if DPAIR = "11" then + Set_BusA_To(3 downto 0) <= "1000"; + else + Set_BusA_To(2 downto 1) <= DPAIR; + Set_BusA_To(0) <= '1'; + end if; + when 3 => + Inc_PC <= '1'; + Read_To_Reg <= '1'; + if DPAIR = "11" then + Set_BusA_To(3 downto 0) <= "1001"; + else + Set_BusA_To(2 downto 1) <= DPAIR; + Set_BusA_To(0) <= '0'; + end if; + when others => null; + end case; + when "00101010" => + if Mode = 3 then + -- LDI A,(HL) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + when 2 => + Read_To_Acc <= '1'; + IncDec_16 <= "0110"; + when others => null; + end case; + else + -- LD HL,(nn) + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + LDW <= '1'; + when 4 => + Set_BusA_To(2 downto 0) <= "101"; -- L + Read_To_Reg <= '1'; + Inc_WZ <= '1'; + Set_Addr_To <= aZI; + when 5 => + Set_BusA_To(2 downto 0) <= "100"; -- H + Read_To_Reg <= '1'; + when others => null; + end case; + end if; + when "00100010" => + if Mode = 3 then + -- LDI (HL),A + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + Set_BusB_To <= "0111"; + when 2 => + Write <= '1'; + IncDec_16 <= "0110"; + when others => null; + end case; + else + -- LD (nn),HL + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + LDW <= '1'; + Set_BusB_To <= "0101"; -- L + when 4 => + Inc_WZ <= '1'; + Set_Addr_To <= aZI; + Write <= '1'; + Set_BusB_To <= "0100"; -- H + when 5 => + Write <= '1'; + when others => null; + end case; + end if; + when "11111001" => + -- LD SP,HL + TStates <= "110"; + LDSPHL <= '1'; + when "11000101"|"11010101"|"11100101"|"11110101" => + -- PUSH qq + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + TStates <= "101"; + IncDec_16 <= "1111"; + Set_Addr_TO <= aSP; + if DPAIR = "11" then + Set_BusB_To <= "0111"; + else + Set_BusB_To(2 downto 1) <= DPAIR; + Set_BusB_To(0) <= '0'; + Set_BusB_To(3) <= '0'; + end if; + when 2 => + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + if DPAIR = "11" then + Set_BusB_To <= "1011"; + else + Set_BusB_To(2 downto 1) <= DPAIR; + Set_BusB_To(0) <= '1'; + Set_BusB_To(3) <= '0'; + end if; + Write <= '1'; + when 3 => + Write <= '1'; + when others => null; + end case; + when "11000001"|"11010001"|"11100001"|"11110001" => + -- POP qq + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aSP; + when 2 => + IncDec_16 <= "0111"; + Set_Addr_To <= aSP; + Read_To_Reg <= '1'; + if DPAIR = "11" then + Set_BusA_To(3 downto 0) <= "1011"; + else + Set_BusA_To(2 downto 1) <= DPAIR; + Set_BusA_To(0) <= '1'; + end if; + when 3 => + IncDec_16 <= "0111"; + Read_To_Reg <= '1'; + if DPAIR = "11" then + Set_BusA_To(3 downto 0) <= "0111"; + else + Set_BusA_To(2 downto 1) <= DPAIR; + Set_BusA_To(0) <= '0'; + end if; + when others => null; + end case; + +-- EXCHANGE, BLOCK TRANSFER AND SEARCH GROUP + when "11101011" => + if Mode /= 3 then + -- EX DE,HL + ExchangeDH <= '1'; + end if; + when "00001000" => + if Mode = 3 then + -- LD (nn),SP + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + LDW <= '1'; + Set_BusB_To <= "1000"; + when 4 => + Inc_WZ <= '1'; + Set_Addr_To <= aZI; + Write <= '1'; + Set_BusB_To <= "1001"; + when 5 => + Write <= '1'; + when others => null; + end case; + elsif Mode < 2 then + -- EX AF,AF' + ExchangeAF <= '1'; + end if; + when "11011001" => + if Mode = 3 then + -- RETI + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_TO <= aSP; + when 2 => + IncDec_16 <= "0111"; + Set_Addr_To <= aSP; + LDZ <= '1'; + when 3 => + Jump <= '1'; + IncDec_16 <= "0111"; + I_RETN <= '1'; + SetEI <= '1'; + when others => null; + end case; + elsif Mode < 2 then + -- EXX + ExchangeRS <= '1'; + end if; + when "11100011" => + if Mode /= 3 then + -- EX (SP),HL + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aSP; + when 2 => + Read_To_Reg <= '1'; + Set_BusA_To <= "0101"; + Set_BusB_To <= "0101"; + Set_Addr_To <= aSP; + when 3 => + IncDec_16 <= "0111"; + Set_Addr_To <= aSP; + TStates <= "100"; + Write <= '1'; + when 4 => + Read_To_Reg <= '1'; + Set_BusA_To <= "0100"; + Set_BusB_To <= "0100"; + Set_Addr_To <= aSP; + when 5 => + IncDec_16 <= "1111"; + TStates <= "101"; + Write <= '1'; + when others => null; + end case; + end if; + +-- 8 BIT ARITHMETIC AND LOGICAL GROUP + when "10000000"|"10000001"|"10000010"|"10000011"|"10000100"|"10000101"|"10000111" + |"10001000"|"10001001"|"10001010"|"10001011"|"10001100"|"10001101"|"10001111" + |"10010000"|"10010001"|"10010010"|"10010011"|"10010100"|"10010101"|"10010111" + |"10011000"|"10011001"|"10011010"|"10011011"|"10011100"|"10011101"|"10011111" + |"10100000"|"10100001"|"10100010"|"10100011"|"10100100"|"10100101"|"10100111" + |"10101000"|"10101001"|"10101010"|"10101011"|"10101100"|"10101101"|"10101111" + |"10110000"|"10110001"|"10110010"|"10110011"|"10110100"|"10110101"|"10110111" + |"10111000"|"10111001"|"10111010"|"10111011"|"10111100"|"10111101"|"10111111" => + -- ADD A,r + -- ADC A,r + -- SUB A,r + -- SBC A,r + -- AND A,r + -- OR A,r + -- XOR A,r + -- CP A,r + Set_BusB_To(2 downto 0) <= SSS; + Set_BusA_To(2 downto 0) <= "111"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + when "10000110"|"10001110"|"10010110"|"10011110"|"10100110"|"10101110"|"10110110"|"10111110" => + -- ADD A,(HL) + -- ADC A,(HL) + -- SUB A,(HL) + -- SBC A,(HL) + -- AND A,(HL) + -- OR A,(HL) + -- XOR A,(HL) + -- CP A,(HL) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + when 2 => + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_BusB_To(2 downto 0) <= SSS; + Set_BusA_To(2 downto 0) <= "111"; + when others => null; + end case; + when "11000110"|"11001110"|"11010110"|"11011110"|"11100110"|"11101110"|"11110110"|"11111110" => + -- ADD A,n + -- ADC A,n + -- SUB A,n + -- SBC A,n + -- AND A,n + -- OR A,n + -- XOR A,n + -- CP A,n + MCycles <= "010"; + if MCycle = "010" then + Inc_PC <= '1'; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_BusB_To(2 downto 0) <= SSS; + Set_BusA_To(2 downto 0) <= "111"; + end if; + when "00000100"|"00001100"|"00010100"|"00011100"|"00100100"|"00101100"|"00111100" => + -- INC r + Set_BusB_To <= "1010"; + Set_BusA_To(2 downto 0) <= DDD; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + PreserveC <= '1'; + ALU_Op <= "0000"; + when "00110100" => + -- INC (HL) + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + when 2 => + TStates <= "100"; + Set_Addr_To <= aXY; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + PreserveC <= '1'; + ALU_Op <= "0000"; + Set_BusB_To <= "1010"; + Set_BusA_To(2 downto 0) <= DDD; + when 3 => + Write <= '1'; + when others => null; + end case; + when "00000101"|"00001101"|"00010101"|"00011101"|"00100101"|"00101101"|"00111101" => + -- DEC r + Set_BusB_To <= "1010"; + Set_BusA_To(2 downto 0) <= DDD; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + PreserveC <= '1'; + ALU_Op <= "0010"; + when "00110101" => + -- DEC (HL) + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + when 2 => + TStates <= "100"; + Set_Addr_To <= aXY; + ALU_Op <= "0010"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + PreserveC <= '1'; + Set_BusB_To <= "1010"; + Set_BusA_To(2 downto 0) <= DDD; + when 3 => + Write <= '1'; + when others => null; + end case; + +-- GENERAL PURPOSE ARITHMETIC AND CPU CONTROL GROUPS + when "00100111" => + -- DAA + Set_BusA_To(2 downto 0) <= "111"; + Read_To_Reg <= '1'; + ALU_Op <= "1100"; + Save_ALU <= '1'; + when "00101111" => + -- CPL + I_CPL <= '1'; + when "00111111" => + -- CCF + I_CCF <= '1'; + when "00110111" => + -- SCF + I_SCF <= '1'; + when "00000000" => + if NMICycle = '1' then + -- NMI + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + TStates <= "101"; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1101"; + when 2 => + TStates <= "100"; + Write <= '1'; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1100"; + when 3 => + TStates <= "100"; + Write <= '1'; + when others => null; + end case; + elsif IntCycle = '1' then + -- INT (IM 2) + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 1 => + LDZ <= '1'; + TStates <= "101"; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1101"; + when 2 => + TStates <= "100"; + Write <= '1'; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1100"; + when 3 => + TStates <= "100"; + Write <= '1'; + when 4 => + Inc_PC <= '1'; + LDZ <= '1'; + when 5 => + Jump <= '1'; + when others => null; + end case; + else + -- NOP + end if; + when "01110110" => + -- HALT + Halt <= '1'; + when "11110011" => + -- DI + SetDI <= '1'; + when "11111011" => + -- EI + SetEI <= '1'; + +-- 16 BIT ARITHMETIC GROUP + when "00001001"|"00011001"|"00101001"|"00111001" => + -- ADD HL,ss + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + NoRead <= '1'; + ALU_Op <= "0000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_BusA_To(2 downto 0) <= "101"; + case to_integer(unsigned(IR(5 downto 4))) is + when 0|1|2 => + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + Set_BusB_To(0) <= '1'; + when others => + Set_BusB_To <= "1000"; + end case; + TStates <= "100"; + Arith16 <= '1'; + when 3 => + NoRead <= '1'; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + ALU_Op <= "0001"; + Set_BusA_To(2 downto 0) <= "100"; + case to_integer(unsigned(IR(5 downto 4))) is + when 0|1|2 => + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + when others => + Set_BusB_To <= "1001"; + end case; + Arith16 <= '1'; + when others => + end case; + when "00000011"|"00010011"|"00100011"|"00110011" => + -- INC ss + TStates <= "110"; + IncDec_16(3 downto 2) <= "01"; + IncDec_16(1 downto 0) <= DPair; + when "00001011"|"00011011"|"00101011"|"00111011" => + -- DEC ss + TStates <= "110"; + IncDec_16(3 downto 2) <= "11"; + IncDec_16(1 downto 0) <= DPair; + +-- ROTATE AND SHIFT GROUP + when "00000111" + -- RLCA + |"00010111" + -- RLA + |"00001111" + -- RRCA + |"00011111" => + -- RRA + Set_BusA_To(2 downto 0) <= "111"; + ALU_Op <= "1000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + +-- JUMP GROUP + when "11000011" => + -- JP nn + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Inc_PC <= '1'; + Jump <= '1'; + when others => null; + end case; + when "11000010"|"11001010"|"11010010"|"11011010"|"11100010"|"11101010"|"11110010"|"11111010" => + if IR(5) = '1' and Mode = 3 then + case IRB(4 downto 3) is + when "00" => + -- LD ($FF00+C),A + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aBC; + Set_BusB_To <= "0111"; + when 2 => + Write <= '1'; + IORQ <= '1'; + when others => + end case; + when "01" => + -- LD (nn),A + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + Set_BusB_To <= "0111"; + when 4 => + Write <= '1'; + when others => null; + end case; + when "10" => + -- LD A,($FF00+C) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aBC; + when 2 => + Read_To_Acc <= '1'; + IORQ <= '1'; + when others => + end case; + when "11" => + -- LD A,(nn) + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + when 4 => + Read_To_Acc <= '1'; + when others => null; + end case; + end case; + else + -- JP cc,nn + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Inc_PC <= '1'; + if is_cc_true(F, to_bitvector(IR(5 downto 3))) then + Jump <= '1'; + end if; + when others => null; + end case; + end if; + when "00011000" => + if Mode /= 2 then + -- JR e + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + when 3 => + NoRead <= '1'; + JumpE <= '1'; + TStates <= "101"; + when others => null; + end case; + end if; + when "00111000" => + if Mode /= 2 then + -- JR C,e + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + if F(Flag_C) = '0' then + MCycles <= "010"; + end if; + when 3 => + NoRead <= '1'; + JumpE <= '1'; + TStates <= "101"; + when others => null; + end case; + end if; + when "00110000" => + if Mode /= 2 then + -- JR NC,e + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + if F(Flag_C) = '1' then + MCycles <= "010"; + end if; + when 3 => + NoRead <= '1'; + JumpE <= '1'; + TStates <= "101"; + when others => null; + end case; + end if; + when "00101000" => + if Mode /= 2 then + -- JR Z,e + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + if F(Flag_Z) = '0' then + MCycles <= "010"; + end if; + when 3 => + NoRead <= '1'; + JumpE <= '1'; + TStates <= "101"; + when others => null; + end case; + end if; + when "00100000" => + if Mode /= 2 then + -- JR NZ,e + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + if F(Flag_Z) = '1' then + MCycles <= "010"; + end if; + when 3 => + NoRead <= '1'; + JumpE <= '1'; + TStates <= "101"; + when others => null; + end case; + end if; + when "11101001" => + -- JP (HL) + JumpXY <= '1'; + when "00010000" => + if Mode = 3 then + I_DJNZ <= '1'; + elsif Mode < 2 then + -- DJNZ,e + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + TStates <= "101"; + I_DJNZ <= '1'; + Set_BusB_To <= "1010"; + Set_BusA_To(2 downto 0) <= "000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + ALU_Op <= "0010"; + when 2 => + I_DJNZ <= '1'; + Inc_PC <= '1'; + when 3 => + NoRead <= '1'; + JumpE <= '1'; + TStates <= "101"; + when others => null; + end case; + end if; + +-- CALL AND RETURN GROUP + when "11001101" => + -- CALL nn + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + IncDec_16 <= "1111"; + Inc_PC <= '1'; + TStates <= "100"; + Set_Addr_To <= aSP; + LDW <= '1'; + Set_BusB_To <= "1101"; + when 4 => + Write <= '1'; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1100"; + when 5 => + Write <= '1'; + Call <= '1'; + when others => null; + end case; + when "11000100"|"11001100"|"11010100"|"11011100"|"11100100"|"11101100"|"11110100"|"11111100" => + if IR(5) = '0' or Mode /= 3 then + -- CALL cc,nn + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Inc_PC <= '1'; + LDW <= '1'; + if is_cc_true(F, to_bitvector(IR(5 downto 3))) then + IncDec_16 <= "1111"; + Set_Addr_TO <= aSP; + TStates <= "100"; + Set_BusB_To <= "1101"; + else + MCycles <= "011"; + end if; + when 4 => + Write <= '1'; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1100"; + when 5 => + Write <= '1'; + Call <= '1'; + when others => null; + end case; + end if; + when "11001001" => + -- RET + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_TO <= aSP; + when 2 => + IncDec_16 <= "0111"; + Set_Addr_To <= aSP; + LDZ <= '1'; + when 3 => + Jump <= '1'; + IncDec_16 <= "0111"; + when others => null; + end case; + when "11000000"|"11001000"|"11010000"|"11011000"|"11100000"|"11101000"|"11110000"|"11111000" => + if IR(5) = '1' and Mode = 3 then + case IRB(4 downto 3) is + when "00" => + -- LD ($FF00+nn),A + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + Set_Addr_To <= aIOA; + Set_BusB_To <= "0111"; + when 3 => + Write <= '1'; + when others => null; + end case; + when "01" => + -- ADD SP,n + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + ALU_Op <= "0000"; + Inc_PC <= '1'; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_BusA_To <= "1000"; + Set_BusB_To <= "0110"; + when 3 => + NoRead <= '1'; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + ALU_Op <= "0001"; + Set_BusA_To <= "1001"; + Set_BusB_To <= "1110"; -- Incorrect unsigned !!!!!!!!!!!!!!!!!!!!! + when others => + end case; + when "10" => + -- LD A,($FF00+nn) + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + Set_Addr_To <= aIOA; + when 3 => + Read_To_Acc <= '1'; + when others => null; + end case; + when "11" => + -- LD HL,SP+n -- Not correct !!!!!!!!!!!!!!!!!!! + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + LDW <= '1'; + when 4 => + Set_BusA_To(2 downto 0) <= "101"; -- L + Read_To_Reg <= '1'; + Inc_WZ <= '1'; + Set_Addr_To <= aZI; + when 5 => + Set_BusA_To(2 downto 0) <= "100"; -- H + Read_To_Reg <= '1'; + when others => null; + end case; + end case; + else + -- RET cc + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + if is_cc_true(F, to_bitvector(IR(5 downto 3))) then + Set_Addr_TO <= aSP; + else + MCycles <= "001"; + end if; + TStates <= "101"; + when 2 => + IncDec_16 <= "0111"; + Set_Addr_To <= aSP; + LDZ <= '1'; + when 3 => + Jump <= '1'; + IncDec_16 <= "0111"; + when others => null; + end case; + end if; + when "11000111"|"11001111"|"11010111"|"11011111"|"11100111"|"11101111"|"11110111"|"11111111" => + -- RST p + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + TStates <= "101"; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1101"; + when 2 => + Write <= '1'; + IncDec_16 <= "1111"; + Set_Addr_To <= aSP; + Set_BusB_To <= "1100"; + when 3 => + Write <= '1'; + RstP <= '1'; + when others => null; + end case; + +-- INPUT AND OUTPUT GROUP + when "11011011" => + if Mode /= 3 then + -- IN A,(n) + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + Set_Addr_To <= aIOA; + when 3 => + Read_To_Acc <= '1'; + IORQ <= '1'; + TStates <= "100"; -- MIKEJ should be 4 for IO cycle + when others => null; + end case; + end if; + when "11010011" => + if Mode /= 3 then + -- OUT (n),A + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + Set_Addr_To <= aIOA; + Set_BusB_To <= "0111"; + when 3 => + Write <= '1'; + IORQ <= '1'; + TStates <= "100"; -- MIKEJ should be 4 for IO cycle + when others => null; + end case; + end if; + +------------------------------------------------------------------------------ +------------------------------------------------------------------------------ +-- MULTIBYTE INSTRUCTIONS +------------------------------------------------------------------------------ +------------------------------------------------------------------------------ + + when "11001011" => + if Mode /= 2 then + Prefix <= "01"; + end if; + + when "11101101" => + if Mode < 2 then + Prefix <= "10"; + end if; + + when "11011101"|"11111101" => + if Mode < 2 then + Prefix <= "11"; + end if; + + end case; + + when "01" => + +------------------------------------------------------------------------------ +-- +-- CB prefixed instructions +-- +------------------------------------------------------------------------------ + + Set_BusA_To(2 downto 0) <= IR(2 downto 0); + Set_BusB_To(2 downto 0) <= IR(2 downto 0); + + case IRB is + when "00000000"|"00000001"|"00000010"|"00000011"|"00000100"|"00000101"|"00000111" + |"00010000"|"00010001"|"00010010"|"00010011"|"00010100"|"00010101"|"00010111" + |"00001000"|"00001001"|"00001010"|"00001011"|"00001100"|"00001101"|"00001111" + |"00011000"|"00011001"|"00011010"|"00011011"|"00011100"|"00011101"|"00011111" + |"00100000"|"00100001"|"00100010"|"00100011"|"00100100"|"00100101"|"00100111" + |"00101000"|"00101001"|"00101010"|"00101011"|"00101100"|"00101101"|"00101111" + |"00110000"|"00110001"|"00110010"|"00110011"|"00110100"|"00110101"|"00110111" + |"00111000"|"00111001"|"00111010"|"00111011"|"00111100"|"00111101"|"00111111" => + -- RLC r + -- RL r + -- RRC r + -- RR r + -- SLA r + -- SRA r + -- SRL r + -- SLL r (Undocumented) / SWAP r + if XY_State="00" then + if MCycle = "001" then + ALU_Op <= "1000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + end if; + else + -- R/S (IX+d),Reg, undocumented + MCycles <= "011"; + XYbit_undoc <= '1'; + case to_integer(unsigned(MCycle)) is + when 1 | 7=> + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_Addr_To <= aXY; + TStates <= "100"; + when 3 => + Write <= '1'; + when others => null; + end case; + end if; + + + when "00000110"|"00010110"|"00001110"|"00011110"|"00101110"|"00111110"|"00100110"|"00110110" => + -- RLC (HL) + -- RL (HL) + -- RRC (HL) + -- RR (HL) + -- SRA (HL) + -- SRL (HL) + -- SLA (HL) + -- SLL (HL) (Undocumented) / SWAP (HL) + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 | 7 => + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_Addr_To <= aXY; + TStates <= "100"; + when 3 => + Write <= '1'; + when others => + end case; + when "01000000"|"01000001"|"01000010"|"01000011"|"01000100"|"01000101"|"01000111" + |"01001000"|"01001001"|"01001010"|"01001011"|"01001100"|"01001101"|"01001111" + |"01010000"|"01010001"|"01010010"|"01010011"|"01010100"|"01010101"|"01010111" + |"01011000"|"01011001"|"01011010"|"01011011"|"01011100"|"01011101"|"01011111" + |"01100000"|"01100001"|"01100010"|"01100011"|"01100100"|"01100101"|"01100111" + |"01101000"|"01101001"|"01101010"|"01101011"|"01101100"|"01101101"|"01101111" + |"01110000"|"01110001"|"01110010"|"01110011"|"01110100"|"01110101"|"01110111" + |"01111000"|"01111001"|"01111010"|"01111011"|"01111100"|"01111101"|"01111111" => + -- BIT b,r + if XY_State="00" then + if MCycle = "001" then + Set_BusB_To(2 downto 0) <= IR(2 downto 0); + ALU_Op <= "1001"; + end if; + else + -- BIT b,(IX+d), undocumented + MCycles <= "010"; + XYbit_undoc <= '1'; + case to_integer(unsigned(MCycle)) is + when 1 | 7=> + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1001"; + TStates <= "100"; + when others => null; + end case; + end if; + when "01000110"|"01001110"|"01010110"|"01011110"|"01100110"|"01101110"|"01110110"|"01111110" => + -- BIT b,(HL) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 | 7=> + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1001"; + TStates <= "100"; + when others => null; + end case; + when "11000000"|"11000001"|"11000010"|"11000011"|"11000100"|"11000101"|"11000111" + |"11001000"|"11001001"|"11001010"|"11001011"|"11001100"|"11001101"|"11001111" + |"11010000"|"11010001"|"11010010"|"11010011"|"11010100"|"11010101"|"11010111" + |"11011000"|"11011001"|"11011010"|"11011011"|"11011100"|"11011101"|"11011111" + |"11100000"|"11100001"|"11100010"|"11100011"|"11100100"|"11100101"|"11100111" + |"11101000"|"11101001"|"11101010"|"11101011"|"11101100"|"11101101"|"11101111" + |"11110000"|"11110001"|"11110010"|"11110011"|"11110100"|"11110101"|"11110111" + |"11111000"|"11111001"|"11111010"|"11111011"|"11111100"|"11111101"|"11111111" => + -- SET b,r + if XY_State="00" then + if MCycle = "001" then + ALU_Op <= "1010"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + end if; + else + -- SET b,(IX+d),Reg, undocumented + MCycles <= "011"; + XYbit_undoc <= '1'; + case to_integer(unsigned(MCycle)) is + when 1 | 7=> + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1010"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_Addr_To <= aXY; + TStates <= "100"; + when 3 => + Write <= '1'; + when others => null; + end case; + end if; + when "11000110"|"11001110"|"11010110"|"11011110"|"11100110"|"11101110"|"11110110"|"11111110" => + -- SET b,(HL) + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 | 7=> + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1010"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_Addr_To <= aXY; + TStates <= "100"; + when 3 => + Write <= '1'; + when others => null; + end case; + when "10000000"|"10000001"|"10000010"|"10000011"|"10000100"|"10000101"|"10000111" + |"10001000"|"10001001"|"10001010"|"10001011"|"10001100"|"10001101"|"10001111" + |"10010000"|"10010001"|"10010010"|"10010011"|"10010100"|"10010101"|"10010111" + |"10011000"|"10011001"|"10011010"|"10011011"|"10011100"|"10011101"|"10011111" + |"10100000"|"10100001"|"10100010"|"10100011"|"10100100"|"10100101"|"10100111" + |"10101000"|"10101001"|"10101010"|"10101011"|"10101100"|"10101101"|"10101111" + |"10110000"|"10110001"|"10110010"|"10110011"|"10110100"|"10110101"|"10110111" + |"10111000"|"10111001"|"10111010"|"10111011"|"10111100"|"10111101"|"10111111" => + -- RES b,r + if XY_State="00" then + if MCycle = "001" then + ALU_Op <= "1011"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + end if; + else + -- RES b,(IX+d),Reg, undocumented + MCycles <= "011"; + XYbit_undoc <= '1'; + case to_integer(unsigned(MCycle)) is + when 1 | 7=> + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1011"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_Addr_To <= aXY; + TStates <= "100"; + when 3 => + Write <= '1'; + when others => null; + end case; + end if; + + when "10000110"|"10001110"|"10010110"|"10011110"|"10100110"|"10101110"|"10110110"|"10111110" => + -- RES b,(HL) + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 | 7 => + Set_Addr_To <= aXY; + when 2 => + ALU_Op <= "1011"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_Addr_To <= aXY; + TStates <= "100"; + when 3 => + Write <= '1'; + when others => null; + end case; + end case; + + when others => + +------------------------------------------------------------------------------ +-- +-- ED prefixed instructions +-- +------------------------------------------------------------------------------ + + case IRB is + when "00000000"|"00000001"|"00000010"|"00000011"|"00000100"|"00000101"|"00000110"|"00000111" + |"00001000"|"00001001"|"00001010"|"00001011"|"00001100"|"00001101"|"00001110"|"00001111" + |"00010000"|"00010001"|"00010010"|"00010011"|"00010100"|"00010101"|"00010110"|"00010111" + |"00011000"|"00011001"|"00011010"|"00011011"|"00011100"|"00011101"|"00011110"|"00011111" + |"00100000"|"00100001"|"00100010"|"00100011"|"00100100"|"00100101"|"00100110"|"00100111" + |"00101000"|"00101001"|"00101010"|"00101011"|"00101100"|"00101101"|"00101110"|"00101111" + |"00110000"|"00110001"|"00110010"|"00110011"|"00110100"|"00110101"|"00110110"|"00110111" + |"00111000"|"00111001"|"00111010"|"00111011"|"00111100"|"00111101"|"00111110"|"00111111" + + + |"10000000"|"10000001"|"10000010"|"10000011"|"10000100"|"10000101"|"10000110"|"10000111" + |"10001000"|"10001001"|"10001010"|"10001011"|"10001100"|"10001101"|"10001110"|"10001111" + |"10010000"|"10010001"|"10010010"|"10010011"|"10010100"|"10010101"|"10010110"|"10010111" + |"10011000"|"10011001"|"10011010"|"10011011"|"10011100"|"10011101"|"10011110"|"10011111" + | "10100100"|"10100101"|"10100110"|"10100111" + | "10101100"|"10101101"|"10101110"|"10101111" + | "10110100"|"10110101"|"10110110"|"10110111" + | "10111100"|"10111101"|"10111110"|"10111111" + |"11000000"|"11000001"|"11000010"|"11000011"|"11000100"|"11000101"|"11000110"|"11000111" + |"11001000"|"11001001"|"11001010"|"11001011"|"11001100"|"11001101"|"11001110"|"11001111" + |"11010000"|"11010001"|"11010010"|"11010011"|"11010100"|"11010101"|"11010110"|"11010111" + |"11011000"|"11011001"|"11011010"|"11011011"|"11011100"|"11011101"|"11011110"|"11011111" + |"11100000"|"11100001"|"11100010"|"11100011"|"11100100"|"11100101"|"11100110"|"11100111" + |"11101000"|"11101001"|"11101010"|"11101011"|"11101100"|"11101101"|"11101110"|"11101111" + |"11110000"|"11110001"|"11110010"|"11110011"|"11110100"|"11110101"|"11110110"|"11110111" + |"11111000"|"11111001"|"11111010"|"11111011"|"11111100"|"11111101"|"11111110"|"11111111" => + null; -- NOP, undocumented + when "01111110"|"01111111" => + -- NOP, undocumented + null; +-- 8 BIT LOAD GROUP + when "01010111" => + -- LD A,I + Special_LD <= "100"; + TStates <= "101"; + when "01011111" => + -- LD A,R + Special_LD <= "101"; + TStates <= "101"; + when "01000111" => + -- LD I,A + Special_LD <= "110"; + TStates <= "101"; + when "01001111" => + -- LD R,A + Special_LD <= "111"; + TStates <= "101"; +-- 16 BIT LOAD GROUP + when "01001011"|"01011011"|"01101011"|"01111011" => + -- LD dd,(nn) + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + LDW <= '1'; + when 4 => + Read_To_Reg <= '1'; + if IR(5 downto 4) = "11" then + Set_BusA_To <= "1000"; + else + Set_BusA_To(2 downto 1) <= IR(5 downto 4); + Set_BusA_To(0) <= '1'; + end if; + Inc_WZ <= '1'; + Set_Addr_To <= aZI; + when 5 => + Read_To_Reg <= '1'; + if IR(5 downto 4) = "11" then + Set_BusA_To <= "1001"; + else + Set_BusA_To(2 downto 1) <= IR(5 downto 4); + Set_BusA_To(0) <= '0'; + end if; + when others => null; + end case; + when "01000011"|"01010011"|"01100011"|"01110011" => + -- LD (nn),dd + MCycles <= "101"; + case to_integer(unsigned(MCycle)) is + when 2 => + Inc_PC <= '1'; + LDZ <= '1'; + when 3 => + Set_Addr_To <= aZI; + Inc_PC <= '1'; + LDW <= '1'; + if IR(5 downto 4) = "11" then + Set_BusB_To <= "1000"; + else + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + Set_BusB_To(0) <= '1'; + Set_BusB_To(3) <= '0'; + end if; + when 4 => + Inc_WZ <= '1'; + Set_Addr_To <= aZI; + Write <= '1'; + if IR(5 downto 4) = "11" then + Set_BusB_To <= "1001"; + else + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + Set_BusB_To(0) <= '0'; + Set_BusB_To(3) <= '0'; + end if; + when 5 => + Write <= '1'; + when others => null; + end case; + when "10100000" | "10101000" | "10110000" | "10111000" => + -- LDI, LDD, LDIR, LDDR + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + IncDec_16 <= "1100"; -- BC + when 2 => + Set_BusB_To <= "0110"; + Set_BusA_To(2 downto 0) <= "111"; + ALU_Op <= "0000"; + Set_Addr_To <= aDE; + if IR(3) = '0' then + IncDec_16 <= "0110"; -- IX + else + IncDec_16 <= "1110"; + end if; + when 3 => + I_BT <= '1'; + TStates <= "101"; + Write <= '1'; + if IR(3) = '0' then + IncDec_16 <= "0101"; -- DE + else + IncDec_16 <= "1101"; + end if; + when 4 => + NoRead <= '1'; + TStates <= "101"; + when others => null; + end case; + when "10100001" | "10101001" | "10110001" | "10111001" => + -- CPI, CPD, CPIR, CPDR + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aXY; + IncDec_16 <= "1100"; -- BC + when 2 => + Set_BusB_To <= "0110"; + Set_BusA_To(2 downto 0) <= "111"; + ALU_Op <= "0111"; + Save_ALU <= '1'; + PreserveC <= '1'; + if IR(3) = '0' then + IncDec_16 <= "0110"; + else + IncDec_16 <= "1110"; + end if; + when 3 => + NoRead <= '1'; + I_BC <= '1'; + TStates <= "101"; + when 4 => + NoRead <= '1'; + TStates <= "101"; + when others => null; + end case; + when "01000100"|"01001100"|"01010100"|"01011100"|"01100100"|"01101100"|"01110100"|"01111100" => + -- NEG + Alu_OP <= "0010"; + Set_BusB_To <= "0111"; + Set_BusA_To <= "1010"; + Read_To_Acc <= '1'; + Save_ALU <= '1'; + when "01000110"|"01001110"|"01100110"|"01101110" => + -- IM 0 + IMode <= "00"; + when "01010110"|"01110110" => + -- IM 1 + IMode <= "01"; + when "01011110"|"01110111" => + -- IM 2 + IMode <= "10"; +-- 16 bit arithmetic + when "01001010"|"01011010"|"01101010"|"01111010" => + -- ADC HL,ss + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + NoRead <= '1'; + ALU_Op <= "0001"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_BusA_To(2 downto 0) <= "101"; + case to_integer(unsigned(IR(5 downto 4))) is + when 0|1|2 => + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + Set_BusB_To(0) <= '1'; + when others => + Set_BusB_To <= "1000"; + end case; + TStates <= "100"; + when 3 => + NoRead <= '1'; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + ALU_Op <= "0001"; + Set_BusA_To(2 downto 0) <= "100"; + case to_integer(unsigned(IR(5 downto 4))) is + when 0|1|2 => + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + Set_BusB_To(0) <= '0'; + when others => + Set_BusB_To <= "1001"; + end case; + when others => + end case; + when "01000010"|"01010010"|"01100010"|"01110010" => + -- SBC HL,ss + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 2 => + NoRead <= '1'; + ALU_Op <= "0011"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_BusA_To(2 downto 0) <= "101"; + case to_integer(unsigned(IR(5 downto 4))) is + when 0|1|2 => + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + Set_BusB_To(0) <= '1'; + when others => + Set_BusB_To <= "1000"; + end case; + TStates <= "100"; + when 3 => + NoRead <= '1'; + ALU_Op <= "0011"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + Set_BusA_To(2 downto 0) <= "100"; + case to_integer(unsigned(IR(5 downto 4))) is + when 0|1|2 => + Set_BusB_To(2 downto 1) <= IR(5 downto 4); + when others => + Set_BusB_To <= "1001"; + end case; + when others => + end case; + when "01101111" => + -- RLD + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 2 => + NoRead <= '1'; + Set_Addr_To <= aXY; + when 3 => + Read_To_Reg <= '1'; + Set_BusB_To(2 downto 0) <= "110"; + Set_BusA_To(2 downto 0) <= "111"; + ALU_Op <= "1101"; + TStates <= "100"; + Set_Addr_To <= aXY; + Save_ALU <= '1'; + when 4 => + I_RLD <= '1'; + Write <= '1'; + when others => + end case; + when "01100111" => + -- RRD + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 2 => + Set_Addr_To <= aXY; + when 3 => + Read_To_Reg <= '1'; + Set_BusB_To(2 downto 0) <= "110"; + Set_BusA_To(2 downto 0) <= "111"; + ALU_Op <= "1110"; + TStates <= "100"; + Set_Addr_To <= aXY; + Save_ALU <= '1'; + when 4 => + I_RRD <= '1'; + Write <= '1'; + when others => + end case; + when "01000101"|"01001101"|"01010101"|"01011101"|"01100101"|"01101101"|"01110101"|"01111101" => + -- RETI, RETN + MCycles <= "011"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_TO <= aSP; + when 2 => + IncDec_16 <= "0111"; + Set_Addr_To <= aSP; + LDZ <= '1'; + when 3 => + Jump <= '1'; + IncDec_16 <= "0111"; + I_RETN <= '1'; + when others => null; + end case; + when "01000000"|"01001000"|"01010000"|"01011000"|"01100000"|"01101000"|"01110000"|"01111000" => + -- IN r,(C) + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aBC; + when 2 => + TStates <= "100"; -- MIKEJ should be 4 for IO cycle + IORQ <= '1'; + if IR(5 downto 3) /= "110" then + Read_To_Reg <= '1'; + Set_BusA_To(2 downto 0) <= IR(5 downto 3); + end if; + I_INRC <= '1'; + when others => + end case; + when "01000001"|"01001001"|"01010001"|"01011001"|"01100001"|"01101001"|"01110001"|"01111001" => + -- OUT (C),r + -- OUT (C),0 + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aBC; + Set_BusB_To(2 downto 0) <= IR(5 downto 3); + if IR(5 downto 3) = "110" then + Set_BusB_To(3) <= '1'; + end if; + when 2 => + TStates <= "100"; -- MIKEJ should be 4 for IO cycle + Write <= '1'; + IORQ <= '1'; + when others => + end case; + when "10100010" | "10101010" | "10110010" | "10111010" => + -- INI, IND, INIR, INDR + -- note B is decremented AFTER being put on the bus + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 1 => + Set_Addr_To <= aBC; + Set_BusB_To <= "1010"; + Set_BusA_To <= "0000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + ALU_Op <= "0010"; + when 2 => + TStates <= "100"; -- MIKEJ should be 4 for IO cycle + IORQ <= '1'; + Set_BusB_To <= "0110"; + Set_Addr_To <= aXY; + when 3 => + if IR(3) = '0' then + --IncDec_16 <= "0010"; + IncDec_16 <= "0110"; + else + --IncDec_16 <= "1010"; + IncDec_16 <= "1110"; + end if; + TStates <= "100"; + Write <= '1'; + I_BTR <= '1'; + when 4 => + NoRead <= '1'; + TStates <= "101"; + when others => null; + end case; + when "10100011" | "10101011" | "10110011" | "10111011" => + -- OUTI, OUTD, OTIR, OTDR + -- note B is decremented BEFORE being put on the bus. + -- mikej fix for hl inc + MCycles <= "100"; + case to_integer(unsigned(MCycle)) is + when 1 => + TStates <= "101"; + Set_Addr_To <= aXY; + Set_BusB_To <= "1010"; + Set_BusA_To <= "0000"; + Read_To_Reg <= '1'; + Save_ALU <= '1'; + ALU_Op <= "0010"; + when 2 => + Set_BusB_To <= "0110"; + Set_Addr_To <= aBC; + when 3 => + if IR(3) = '0' then + IncDec_16 <= "0110"; -- mikej + else + IncDec_16 <= "1110"; -- mikej + end if; + TStates <= "100"; -- MIKEJ should be 4 for IO cycle + IORQ <= '1'; + Write <= '1'; + I_BTR <= '1'; + when 4 => + NoRead <= '1'; + TStates <= "101"; + when others => null; + end case; + end case; + + end case; + + if Mode = 1 then + if MCycle = "001" then +-- TStates <= "100"; + else + TStates <= "011"; + end if; + end if; + + if Mode = 3 then + if MCycle = "001" then +-- TStates <= "100"; + else + TStates <= "100"; + end if; + end if; + + if Mode < 2 then + if MCycle = "110" then + Inc_PC <= '1'; + if Mode = 1 then + Set_Addr_To <= aXY; + TStates <= "100"; + Set_BusB_To(2 downto 0) <= SSS; + Set_BusB_To(3) <= '0'; + end if; + if IRB = "00110110" or IRB = "11001011" then + Set_Addr_To <= aNone; + end if; + end if; + if MCycle = "111" then + if Mode = 0 then + TStates <= "101"; + end if; + if ISet /= "01" then + Set_Addr_To <= aXY; + end if; + Set_BusB_To(2 downto 0) <= SSS; + Set_BusB_To(3) <= '0'; + if IRB = "00110110" or ISet = "01" then + -- LD (HL),n + Inc_PC <= '1'; + else + NoRead <= '1'; + end if; + end if; + end if; + + end process; + +end; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Pack.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Pack.vhd new file mode 100644 index 00000000..b1de7a83 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Pack.vhd @@ -0,0 +1,220 @@ +-- **** +-- T80(b) core. In an effort to merge and maintain bug fixes .... +-- +-- Ver 303 add undocumented DDCB and FDCB opcodes by TobiFlex 20.04.2010 +-- Ver 300 started tidyup +-- +-- Latest version from www.fpgaarcade.com (original www.opencores.org) +-- +-- $Id: T80_Pack.vhd 1330 2015-05-22 19:55:46Z wolfgang.scherr $ +-- +-- **** +-- +-- Z80 compatible microprocessor core +-- +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +-- MikeJ March 2005 +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- Please report bugs to the author, but before you do so, please +-- make sure that this is not a derivative work and that +-- you have the latest version of this file. +-- +-- The latest version of this file can be found at: +-- http://www.opencores.org/cvsweb.shtml/t80/ +-- +-- Limitations : +-- +-- File history : +-- + +library IEEE; +use IEEE.std_logic_1164.all; + +package T80_Pack is + + component T80 + generic( + Mode : integer := 0; -- 0 => Z80, 1 => Fast Z80, 2 => 8080, 3 => GB + IOWait : integer := 0; -- 1 => Single cycle I/O, 1 => Std I/O cycle + Flag_C : integer := 0; + Flag_N : integer := 1; + Flag_P : integer := 2; + Flag_X : integer := 3; + Flag_H : integer := 4; + Flag_Y : integer := 5; + Flag_Z : integer := 6; + Flag_S : integer := 7 + ); + port( + RESET_n : in std_logic; + CLK_n : in std_logic; + CEN : in std_logic; + WAIT_n : in std_logic; + INT_n : in std_logic; + NMI_n : in std_logic; + BUSRQ_n : in std_logic; + M1_n : out std_logic; + IORQ : out std_logic; + NoRead : out std_logic; + Write : out std_logic; + RFSH_n : out std_logic; + HALT_n : out std_logic; + BUSAK_n : out std_logic; + A : out std_logic_vector(15 downto 0); + DInst : in std_logic_vector(7 downto 0); + DI : in std_logic_vector(7 downto 0); + DO : out std_logic_vector(7 downto 0); + MC : out std_logic_vector(2 downto 0); + TS : out std_logic_vector(2 downto 0); + IntCycle_n : out std_logic; + IntE : out std_logic; + Stop : out std_logic + ); + end component; + + component T80_Reg + port( + Clk : in std_logic; + CEN : in std_logic; + WEH : in std_logic; + WEL : in std_logic; + AddrA : in std_logic_vector(2 downto 0); + AddrB : in std_logic_vector(2 downto 0); + AddrC : in std_logic_vector(2 downto 0); + DIH : in std_logic_vector(7 downto 0); + DIL : in std_logic_vector(7 downto 0); + DOAH : out std_logic_vector(7 downto 0); + DOAL : out std_logic_vector(7 downto 0); + DOBH : out std_logic_vector(7 downto 0); + DOBL : out std_logic_vector(7 downto 0); + DOCH : out std_logic_vector(7 downto 0); + DOCL : out std_logic_vector(7 downto 0) + ); + end component; + + component T80_MCode + generic( + Mode : integer := 0; + Flag_C : integer := 0; + Flag_N : integer := 1; + Flag_P : integer := 2; + Flag_X : integer := 3; + Flag_H : integer := 4; + Flag_Y : integer := 5; + Flag_Z : integer := 6; + Flag_S : integer := 7 + ); + port( + IR : in std_logic_vector(7 downto 0); + ISet : in std_logic_vector(1 downto 0); + MCycle : in std_logic_vector(2 downto 0); + F : in std_logic_vector(7 downto 0); + NMICycle : in std_logic; + IntCycle : in std_logic; + XY_State : in std_logic_vector(1 downto 0); + MCycles : out std_logic_vector(2 downto 0); + TStates : out std_logic_vector(2 downto 0); + Prefix : out std_logic_vector(1 downto 0); -- None,BC,ED,DD/FD + Inc_PC : out std_logic; + Inc_WZ : out std_logic; + IncDec_16 : out std_logic_vector(3 downto 0); -- BC,DE,HL,SP 0 is inc + Read_To_Reg : out std_logic; + Read_To_Acc : out std_logic; + Set_BusA_To : out std_logic_vector(3 downto 0); -- B,C,D,E,H,L,DI/DB,A,SP(L),SP(M),0,F + Set_BusB_To : out std_logic_vector(3 downto 0); -- B,C,D,E,H,L,DI,A,SP(L),SP(M),1,F,PC(L),PC(M),0 + ALU_Op : out std_logic_vector(3 downto 0); + -- ADD, ADC, SUB, SBC, AND, XOR, OR, CP, ROT, BIT, SET, RES, DAA, RLD, RRD, None + Save_ALU : out std_logic; + PreserveC : out std_logic; + Arith16 : out std_logic; + Set_Addr_To : out std_logic_vector(2 downto 0); -- aNone,aXY,aIOA,aSP,aBC,aDE,aZI + IORQ : out std_logic; + Jump : out std_logic; + JumpE : out std_logic; + JumpXY : out std_logic; + Call : out std_logic; + RstP : out std_logic; + LDZ : out std_logic; + LDW : out std_logic; + LDSPHL : out std_logic; + Special_LD : out std_logic_vector(2 downto 0); -- A,I;A,R;I,A;R,A;None + ExchangeDH : out std_logic; + ExchangeRp : out std_logic; + ExchangeAF : out std_logic; + ExchangeRS : out std_logic; + I_DJNZ : out std_logic; + I_CPL : out std_logic; + I_CCF : out std_logic; + I_SCF : out std_logic; + I_RETN : out std_logic; + I_BT : out std_logic; + I_BC : out std_logic; + I_BTR : out std_logic; + I_RLD : out std_logic; + I_RRD : out std_logic; + I_INRC : out std_logic; + SetDI : out std_logic; + SetEI : out std_logic; + IMode : out std_logic_vector(1 downto 0); + Halt : out std_logic; + NoRead : out std_logic; + Write : out std_logic; + XYbit_undoc : out std_logic + ); + end component; + + component T80_ALU + generic( + Mode : integer := 0; + Flag_C : integer := 0; + Flag_N : integer := 1; + Flag_P : integer := 2; + Flag_X : integer := 3; + Flag_H : integer := 4; + Flag_Y : integer := 5; + Flag_Z : integer := 6; + Flag_S : integer := 7 + ); + port( + Arith16 : in std_logic; + Z16 : in std_logic; + ALU_Op : in std_logic_vector(3 downto 0); + IR : in std_logic_vector(5 downto 0); + ISet : in std_logic_vector(1 downto 0); + BusA : in std_logic_vector(7 downto 0); + BusB : in std_logic_vector(7 downto 0); + F_In : in std_logic_vector(7 downto 0); + Q : out std_logic_vector(7 downto 0); + F_Out : out std_logic_vector(7 downto 0) + ); + end component; + +end; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Reg.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Reg.vhd new file mode 100644 index 00000000..61626b59 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80_Reg.vhd @@ -0,0 +1,116 @@ +-- **** +-- T80(b) core. In an effort to merge and maintain bug fixes .... +-- +-- Ver 304 init values of registers on first startup (better simulation) +-- Ver 300 started tidyup +-- +-- Latest version from www.fpgaarcade.com (original www.opencores.org) +-- +-- $Id: T80_Reg.vhd 1330 2015-05-22 19:55:46Z wolfgang.scherr $ +-- +-- **** +-- +-- T80 Registers, technology independent +-- +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +-- MikeJ March 2005 +-- Wolfgang Scherr 2011-2015 (email: WoS pin4 at) +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- Please report bugs to the author, but before you do so, please +-- make sure that this is not a derivative work and that +-- you have the latest version of this file. +-- +-- The latest version of this file can be found at: +-- http://www.opencores.org/cvsweb.shtml/t51/ +-- +-- Limitations : +-- +-- File history : +-- +-- 0242 : Initial release +-- +-- 0244 : Changed to single register file +-- + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.numeric_std.all; + +entity T80_Reg is + port( + Clk : in std_logic; + CEN : in std_logic; + WEH : in std_logic; + WEL : in std_logic; + AddrA : in std_logic_vector(2 downto 0); + AddrB : in std_logic_vector(2 downto 0); + AddrC : in std_logic_vector(2 downto 0); + DIH : in std_logic_vector(7 downto 0); + DIL : in std_logic_vector(7 downto 0); + DOAH : out std_logic_vector(7 downto 0); + DOAL : out std_logic_vector(7 downto 0); + DOBH : out std_logic_vector(7 downto 0); + DOBL : out std_logic_vector(7 downto 0); + DOCH : out std_logic_vector(7 downto 0); + DOCL : out std_logic_vector(7 downto 0) + ); +end T80_Reg; + +architecture rtl of T80_Reg is + + type Register_Image is array (natural range <>) of std_logic_vector(7 downto 0); + signal RegsH : Register_Image(0 to 7) := (others => (others => '0')); + signal RegsL : Register_Image(0 to 7) := (others => (others => '0')); + +begin + + process (Clk) + begin + if Clk'event and Clk = '1' then + if CEN = '1' then + if WEH = '1' then + RegsH(to_integer(unsigned(AddrA))) <= DIH; + end if; + if WEL = '1' then + RegsL(to_integer(unsigned(AddrA))) <= DIL; + end if; + end if; + end if; + end process; + + DOAH <= RegsH(to_integer(unsigned(AddrA))); + DOAL <= RegsL(to_integer(unsigned(AddrA))); + DOBH <= RegsH(to_integer(unsigned(AddrB))); + DOBL <= RegsL(to_integer(unsigned(AddrB))); + DOCH <= RegsH(to_integer(unsigned(AddrC))); + DOCL <= RegsL(to_integer(unsigned(AddrC))); + +end; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80se.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80se.vhd new file mode 100644 index 00000000..5240e62b --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/T80/T80se.vhd @@ -0,0 +1,193 @@ +-- **** +-- T80(b) core. In an effort to merge and maintain bug fixes .... +-- +-- +-- Ver 300 started tidyup +-- +-- Latest version from www.fpgaarcade.com (original www.opencores.org) +-- +-- $Id: T80se.vhd 1330 2015-05-22 19:55:46Z wolfgang.scherr $ +-- +-- **** +-- +-- Z80 compatible microprocessor core, synchronous top level with clock enable +-- Different timing than the original z80 +-- Inputs needs to be synchronous and outputs may glitch +-- +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +-- MikeJ March 2005 +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- Please report bugs to the author, but before you do so, please +-- make sure that this is not a derivative work and that +-- you have the latest version of this file. +-- +-- The latest version of this file can be found at: +-- http://www.opencores.org/cvsweb.shtml/t80/ +-- +-- Limitations : +-- +-- File history : +-- +-- 0235 : First release +-- +-- 0236 : Added T2Write generic +-- +-- 0237 : Fixed T2Write with wait state +-- +-- 0238 : Updated for T80 interface change +-- +-- 0240 : Updated for T80 interface change +-- +-- 0242 : Updated for T80 interface change +-- +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.numeric_std.all; +use work.T80_Pack.all; + +entity T80se is + generic( + Mode : integer := 0; -- 0 => Z80, 1 => Fast Z80, 2 => 8080, 3 => GB + T2Write : integer := 0; -- 0 => WR_n active in T3, /=0 => WR_n active in T2 + IOWait : integer := 1 -- 0 => Single cycle I/O, 1 => Std I/O cycle + ); + port( + RESET_n : in std_logic; + CLK_n : in std_logic; + CLKEN : in std_logic; + WAIT_n : in std_logic; + INT_n : in std_logic; + NMI_n : in std_logic; + BUSRQ_n : in std_logic; + M1_n : out std_logic; + MREQ_n : out std_logic; + IORQ_n : out std_logic; + RD_n : out std_logic; + WR_n : out std_logic; + RFSH_n : out std_logic; + HALT_n : out std_logic; + BUSAK_n : out std_logic; + A : out std_logic_vector(15 downto 0); + DI : in std_logic_vector(7 downto 0); + DO : out std_logic_vector(7 downto 0) + ); +end T80se; + +architecture rtl of T80se is + + signal IntCycle_n : std_logic; + signal NoRead : std_logic; + signal Write : std_logic; + signal IORQ : std_logic; + signal DI_Reg : std_logic_vector(7 downto 0); + signal MCycle : std_logic_vector(2 downto 0); + signal TState : std_logic_vector(2 downto 0); + +begin + + u0 : T80 + generic map( + Mode => Mode, + IOWait => IOWait) + port map( + CEN => CLKEN, + M1_n => M1_n, + IORQ => IORQ, + NoRead => NoRead, + Write => Write, + RFSH_n => RFSH_n, + HALT_n => HALT_n, + WAIT_n => Wait_n, + INT_n => INT_n, + NMI_n => NMI_n, + RESET_n => RESET_n, + BUSRQ_n => BUSRQ_n, + BUSAK_n => BUSAK_n, + CLK_n => CLK_n, + A => A, + DInst => DI, + DI => DI_Reg, + DO => DO, + MC => MCycle, + TS => TState, + IntCycle_n => IntCycle_n); + + process (RESET_n, CLK_n) + begin + if RESET_n = '0' then + RD_n <= '1'; + WR_n <= '1'; + IORQ_n <= '1'; + MREQ_n <= '1'; + DI_Reg <= "00000000"; + elsif CLK_n'event and CLK_n = '1' then + if CLKEN = '1' then + RD_n <= '1'; + WR_n <= '1'; + IORQ_n <= '1'; + MREQ_n <= '1'; + if MCycle = "001" then + if TState = "001" or (TState = "010" and Wait_n = '0') then + RD_n <= not IntCycle_n; + MREQ_n <= not IntCycle_n; + IORQ_n <= IntCycle_n; + end if; + if TState = "011" then + MREQ_n <= '0'; + end if; + else + if (TState = "001" or (TState = "010" and Wait_n = '0')) and NoRead = '0' and Write = '0' then + RD_n <= '0'; + IORQ_n <= not IORQ; + MREQ_n <= IORQ; + end if; + if T2Write = 0 then + if TState = "010" and Write = '1' then + WR_n <= '0'; + IORQ_n <= not IORQ; + MREQ_n <= IORQ; + end if; + else + if (TState = "001" or (TState = "010" and Wait_n = '0')) and Write = '1' then + WR_n <= '0'; + IORQ_n <= not IORQ; + MREQ_n <= IORQ; + end if; + end if; + end if; + if TState = "010" and Wait_n = '1' then + DI_Reg <= DI; + end if; + end if; + end if; + end process; + +end; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/YM2149_linmix_sep.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/YM2149_linmix_sep.vhd new file mode 100644 index 00000000..6ed2498a --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/YM2149_linmix_sep.vhd @@ -0,0 +1,574 @@ +-- changes for seperate audio outputs and enable now enables cpu access as well +-- +-- A simulation model of YM2149 (AY-3-8910 with bells on) + +-- Copyright (c) MikeJ - Jan 2005 +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS CODE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- You are responsible for any legal issues arising from your use of this code. +-- +-- The latest version of this file can be found at: www.fpgaarcade.com +-- +-- Email support@fpgaarcade.com +-- +-- Revision list +-- +-- version 001 initial release +-- +-- Clues from MAME sound driver and Kazuhiro TSUJIKAWA +-- +-- These are the measured outputs from a real chip for a single Isolated channel into a 1K load (V) +-- vol 15 .. 0 +-- 3.27 2.995 2.741 2.588 2.452 2.372 2.301 2.258 2.220 2.198 2.178 2.166 2.155 2.148 2.141 2.132 +-- As the envelope volume is 5 bit, I have fitted a curve to the not quite log shape in order +-- to produced all the required values. +-- (The first part of the curve is a bit steeper and the last bit is more linear than expected) +-- +-- NOTE, this component uses LINEAR mixing of the three analogue channels, and is only +-- accurate for designs where the outputs are buffered and not simply wired together. +-- The ouput level is more complex in that case and requires a larger table. + +library ieee; + use ieee.std_logic_1164.all; + use ieee.std_logic_arith.all; + use ieee.std_logic_unsigned.all; + +entity YM2149 is + port ( + -- data bus + I_DA : in std_logic_vector(7 downto 0); + O_DA : out std_logic_vector(7 downto 0); + O_DA_OE_L : out std_logic; + -- control + I_A9_L : in std_logic; + I_A8 : in std_logic; + I_BDIR : in std_logic; + I_BC2 : in std_logic; + I_BC1 : in std_logic; + I_SEL_L : in std_logic; + + O_AUDIO : out std_logic_vector(7 downto 0); + O_CHAN : out std_logic_vector(1 downto 0); + -- port a + I_IOA : in std_logic_vector(7 downto 0); + O_IOA : out std_logic_vector(7 downto 0); + O_IOA_OE_L : out std_logic; + -- port b + I_IOB : in std_logic_vector(7 downto 0); + O_IOB : out std_logic_vector(7 downto 0); + O_IOB_OE_L : out std_logic; + + ENA : in std_logic; -- clock enable for higher speed operation + RESET_L : in std_logic; + CLK : in std_logic -- note 6 Mhz + ); +end; + +architecture RTL of YM2149 is + type array_16x8 is array (0 to 15) of std_logic_vector( 7 downto 0); + type array_3x12 is array (1 to 3) of std_logic_vector(11 downto 0); + + signal cnt_div : std_logic_vector(3 downto 0) := (others => '0'); + signal cnt_div_t1 : std_logic_vector(3 downto 0); + signal noise_div : std_logic := '0'; + signal ena_div : std_logic; + signal ena_div_noise : std_logic; + signal poly17 : std_logic_vector(16 downto 0) := (others => '0'); + + -- registers + signal addr : std_logic_vector(7 downto 0); + signal busctrl_addr : std_logic; + signal busctrl_we : std_logic; + signal busctrl_re : std_logic; + + signal reg : array_16x8; + signal env_reset : std_logic; + signal ioa_inreg : std_logic_vector(7 downto 0); + signal iob_inreg : std_logic_vector(7 downto 0); + + signal noise_gen_cnt : std_logic_vector(4 downto 0); + signal noise_gen_op : std_logic; + signal tone_gen_cnt : array_3x12 := (others => (others => '0')); + signal tone_gen_op : std_logic_vector(3 downto 1) := "000"; + + signal env_gen_cnt : std_logic_vector(15 downto 0); + signal env_ena : std_logic; + signal env_hold : std_logic; + signal env_inc : std_logic; + signal env_vol : std_logic_vector(4 downto 0); + + signal tone_ena_l : std_logic; + signal tone_src : std_logic; + signal noise_ena_l : std_logic; + signal chan_vol : std_logic_vector(4 downto 0); + + signal dac_amp : std_logic_vector(7 downto 0); +begin + -- cpu i/f + p_busdecode : process(I_BDIR, I_BC2, I_BC1, addr, I_A9_L, I_A8) + variable cs : std_logic; + variable sel : std_logic_vector(2 downto 0); + begin + -- BDIR BC2 BC1 MODE + -- 0 0 0 inactive + -- 0 0 1 address + -- 0 1 0 inactive + -- 0 1 1 read + -- 1 0 0 address + -- 1 0 1 inactive + -- 1 1 0 write + -- 1 1 1 read + busctrl_addr <= '0'; + busctrl_we <= '0'; + busctrl_re <= '0'; + + cs := '0'; + if (I_A9_L = '0') and (I_A8 = '1') and (addr(7 downto 4) = "0000") then + cs := '1'; + end if; + + sel := (I_BDIR & I_BC2 & I_BC1); + case sel is + when "000" => null; + when "001" => busctrl_addr <= '1'; + when "010" => null; + when "011" => busctrl_re <= cs; + when "100" => busctrl_addr <= '1'; + when "101" => null; + when "110" => busctrl_we <= cs; + when "111" => busctrl_addr <= '1'; + when others => null; + end case; + end process; + + p_oe : process(busctrl_re) + begin + -- if we are emulating a real chip, maybe clock this to fake up the tristate typ delay of 100ns + O_DA_OE_L <= not (busctrl_re); + end process; + + -- + -- CLOCKED + -- + p_waddr : process(RESET_L, CLK) + begin + -- looks like registers are latches in real chip, but the address is caught at the end of the address state. + if (RESET_L = '0') then + addr <= (others => '0'); + elsif rising_edge(CLK) then + if (ENA = '1') then + if (busctrl_addr = '1') then + addr <= I_DA; + end if; + end if; + end if; + end process; + + p_wdata : process(RESET_L, CLK) + begin + if (RESET_L = '0') then + reg <= (others => (others => '0')); + env_reset <= '1'; + elsif rising_edge(CLK) then + if (ENA = '1') then + env_reset <= '0'; + if (busctrl_we = '1') then + case addr(3 downto 0) is + when x"0" => reg(0) <= I_DA; + when x"1" => reg(1) <= I_DA; + when x"2" => reg(2) <= I_DA; + when x"3" => reg(3) <= I_DA; + when x"4" => reg(4) <= I_DA; + when x"5" => reg(5) <= I_DA; + when x"6" => reg(6) <= I_DA; + when x"7" => reg(7) <= I_DA; + when x"8" => reg(8) <= I_DA; + when x"9" => reg(9) <= I_DA; + when x"A" => reg(10) <= I_DA; + when x"B" => reg(11) <= I_DA; + when x"C" => reg(12) <= I_DA; + when x"D" => reg(13) <= I_DA; env_reset <= '1'; + when x"E" => reg(14) <= I_DA; + when x"F" => reg(15) <= I_DA; + when others => null; + end case; + end if; + end if; + end if; + end process; + + p_rdata : process(busctrl_re, addr, reg, ioa_inreg, iob_inreg) + begin + O_DA <= (others => '0'); -- 'X' + if (busctrl_re = '1') then -- not necessary, but useful for putting 'X's in the simulator + case addr(3 downto 0) is + when x"0" => O_DA <= reg(0) ; + when x"1" => O_DA <= "0000" & reg(1)(3 downto 0) ; + when x"2" => O_DA <= reg(2) ; + when x"3" => O_DA <= "0000" & reg(3)(3 downto 0) ; + when x"4" => O_DA <= reg(4) ; + when x"5" => O_DA <= "0000" & reg(5)(3 downto 0) ; + when x"6" => O_DA <= "000" & reg(6)(4 downto 0) ; + when x"7" => O_DA <= reg(7) ; + when x"8" => O_DA <= "000" & reg(8)(4 downto 0) ; + when x"9" => O_DA <= "000" & reg(9)(4 downto 0) ; + when x"A" => O_DA <= "000" & reg(10)(4 downto 0) ; + when x"B" => O_DA <= reg(11); + when x"C" => O_DA <= reg(12); + when x"D" => O_DA <= "0000" & reg(13)(3 downto 0); + when x"E" => if (reg(7)(6) = '0') then -- input + O_DA <= ioa_inreg; + else + O_DA <= reg(14); -- read output reg + end if; + when x"F" => if (Reg(7)(7) = '0') then + O_DA <= iob_inreg; + else + O_DA <= reg(15); + end if; + when others => null; + end case; + end if; + end process; + -- + p_divider : process + begin + wait until rising_edge(CLK); + -- / 8 when SEL is high and /16 when SEL is low + if (ENA = '1') then + ena_div <= '0'; + ena_div_noise <= '0'; + if (cnt_div = "0000") then + cnt_div <= (not I_SEL_L) & "111"; + ena_div <= '1'; + + noise_div <= not noise_div; + if (noise_div = '1') then + ena_div_noise <= '1'; + end if; + else + cnt_div <= cnt_div - "1"; + end if; + end if; + end process; + + p_noise_gen : process + variable noise_gen_comp : std_logic_vector(4 downto 0); + variable poly17_zero : std_logic; + begin + wait until rising_edge(CLK); + if (reg(6)(4 downto 0) = "00000") then + noise_gen_comp := "00000"; + else + noise_gen_comp := (reg(6)(4 downto 0) - "1"); + end if; + + poly17_zero := '0'; + if (poly17 = "00000000000000000") then poly17_zero := '1'; end if; + + if (ENA = '1') then + if (ena_div_noise = '1') then -- divider ena + + if (noise_gen_cnt >= noise_gen_comp) then + noise_gen_cnt <= "00000"; + poly17 <= (poly17(0) xor poly17(2) xor poly17_zero) & poly17(16 downto 1); + else + noise_gen_cnt <= (noise_gen_cnt + "1"); + end if; + end if; + end if; + end process; + noise_gen_op <= poly17(0); + + p_tone_gens : process + variable tone_gen_freq : array_3x12; + variable tone_gen_comp : array_3x12; + begin + wait until rising_edge(CLK); + -- looks like real chips count up - we need to get the Exact behaviour .. + tone_gen_freq(1) := reg(1)(3 downto 0) & reg(0); + tone_gen_freq(2) := reg(3)(3 downto 0) & reg(2); + tone_gen_freq(3) := reg(5)(3 downto 0) & reg(4); + -- period 0 = period 1 + for i in 1 to 3 loop + if (tone_gen_freq(i) = x"000") then + tone_gen_comp(i) := x"000"; + else + tone_gen_comp(i) := (tone_gen_freq(i) - "1"); + end if; + end loop; + + if (ENA = '1') then + for i in 1 to 3 loop + if (ena_div = '1') then -- divider ena + + if (tone_gen_cnt(i) >= tone_gen_comp(i)) then + tone_gen_cnt(i) <= x"000"; + tone_gen_op(i) <= not tone_gen_op(i); + else + tone_gen_cnt(i) <= (tone_gen_cnt(i) + "1"); + end if; + end if; + end loop; + end if; + end process; + + p_envelope_freq : process + variable env_gen_freq : std_logic_vector(15 downto 0); + variable env_gen_comp : std_logic_vector(15 downto 0); + begin + wait until rising_edge(CLK); + env_gen_freq := reg(12) & reg(11); + -- envelope freqs 1 and 0 are the same. + if (env_gen_freq = x"0000") then + env_gen_comp := x"0000"; + else + env_gen_comp := (env_gen_freq - "1"); + end if; + + if (ENA = '1') then + env_ena <= '0'; + if (ena_div = '1') then -- divider ena + if (env_gen_cnt >= env_gen_comp) then + env_gen_cnt <= x"0000"; + env_ena <= '1'; + else + env_gen_cnt <= (env_gen_cnt + "1"); + end if; + end if; + end if; + end process; + + p_envelope_shape : process(env_reset, reg, CLK) + variable is_bot : boolean; + variable is_bot_p1 : boolean; + variable is_top_m1 : boolean; + variable is_top : boolean; + begin + -- envelope shapes + -- C AtAlH + -- 0 0 x x \___ + -- + -- 0 1 x x /___ + -- + -- 1 0 0 0 \\\\ + -- + -- 1 0 0 1 \___ + -- + -- 1 0 1 0 \/\/ + -- ___ + -- 1 0 1 1 \ + -- + -- 1 1 0 0 //// + -- ___ + -- 1 1 0 1 / + -- + -- 1 1 1 0 /\/\ + -- + -- 1 1 1 1 /___ + if (env_reset = '1') then + -- load initial state + if (reg(13)(2) = '0') then -- attack + env_vol <= "11111"; + env_inc <= '0'; -- -1 + else + env_vol <= "00000"; + env_inc <= '1'; -- +1 + end if; + env_hold <= '0'; + + elsif rising_edge(CLK) then + is_bot := (env_vol = "00000"); + is_bot_p1 := (env_vol = "00001"); + is_top_m1 := (env_vol = "11110"); + is_top := (env_vol = "11111"); + + if (ENA = '1') then + if (env_ena = '1') then + if (env_hold = '0') then + if (env_inc = '1') then + env_vol <= (env_vol + "00001"); + else + env_vol <= (env_vol + "11111"); + end if; + end if; + + -- envelope shape control. + if (reg(13)(3) = '0') then + if (env_inc = '0') then -- down + if is_bot_p1 then env_hold <= '1'; end if; + else + if is_top then env_hold <= '1'; end if; + end if; + else + if (reg(13)(0) = '1') then -- hold = 1 + if (env_inc = '0') then -- down + if (reg(13)(1) = '1') then -- alt + if is_bot then env_hold <= '1'; end if; + else + if is_bot_p1 then env_hold <= '1'; end if; + end if; + else + if (reg(13)(1) = '1') then -- alt + if is_top then env_hold <= '1'; end if; + else + if is_top_m1 then env_hold <= '1'; end if; + end if; + end if; + + elsif (reg(13)(1) = '1') then -- alternate + if (env_inc = '0') then -- down + if is_bot_p1 then env_hold <= '1'; end if; + if is_bot then env_hold <= '0'; env_inc <= '1'; end if; + else + if is_top_m1 then env_hold <= '1'; end if; + if is_top then env_hold <= '0'; env_inc <= '0'; end if; + end if; + end if; + + end if; + end if; + end if; + end if; + end process; + + p_chan_mixer : process(cnt_div, reg, tone_gen_op) + begin + tone_ena_l <= '1'; tone_src <= '1'; + noise_ena_l <= '1'; chan_vol <= "00000"; + case cnt_div(1 downto 0) is + when "00" => + tone_ena_l <= reg(7)(0); tone_src <= tone_gen_op(1); chan_vol <= reg(8)(4 downto 0); + noise_ena_l <= reg(7)(3); + when "01" => + tone_ena_l <= reg(7)(1); tone_src <= tone_gen_op(2); chan_vol <= reg(9)(4 downto 0); + noise_ena_l <= reg(7)(4); + when "10" => + tone_ena_l <= reg(7)(2); tone_src <= tone_gen_op(3); chan_vol <= reg(10)(4 downto 0); + noise_ena_l <= reg(7)(5); + when "11" => null; -- tone gen outputs become valid on this clock + when others => null; + end case; + end process; + + p_op_mixer : process + variable chan_mixed : std_logic; + variable chan_amp : std_logic_vector(4 downto 0); + begin + wait until rising_edge(CLK); + if (ENA = '1') then + + chan_mixed := (tone_ena_l or tone_src) and (noise_ena_l or noise_gen_op); + + chan_amp := (others => '0'); + if (chan_mixed = '1') then + if (chan_vol(4) = '0') then + if (chan_vol(3 downto 0) = "0000") then -- nothing is easy ! make sure quiet is quiet + chan_amp := "00000"; + else + chan_amp := chan_vol(3 downto 0) & '1'; -- make sure level 31 (env) = level 15 (tone) + end if; + else + chan_amp := env_vol(4 downto 0); + end if; + end if; + + dac_amp <= x"00"; + case chan_amp is + when "11111" => dac_amp <= x"FF"; + when "11110" => dac_amp <= x"D9"; + when "11101" => dac_amp <= x"BA"; + when "11100" => dac_amp <= x"9F"; + when "11011" => dac_amp <= x"88"; + when "11010" => dac_amp <= x"74"; + when "11001" => dac_amp <= x"63"; + when "11000" => dac_amp <= x"54"; + when "10111" => dac_amp <= x"48"; + when "10110" => dac_amp <= x"3D"; + when "10101" => dac_amp <= x"34"; + when "10100" => dac_amp <= x"2C"; + when "10011" => dac_amp <= x"25"; + when "10010" => dac_amp <= x"1F"; + when "10001" => dac_amp <= x"1A"; + when "10000" => dac_amp <= x"16"; + when "01111" => dac_amp <= x"13"; + when "01110" => dac_amp <= x"10"; + when "01101" => dac_amp <= x"0D"; + when "01100" => dac_amp <= x"0B"; + when "01011" => dac_amp <= x"09"; + when "01010" => dac_amp <= x"08"; + when "01001" => dac_amp <= x"07"; + when "01000" => dac_amp <= x"06"; + when "00111" => dac_amp <= x"05"; + when "00110" => dac_amp <= x"04"; + when "00101" => dac_amp <= x"03"; + when "00100" => dac_amp <= x"03"; + when "00011" => dac_amp <= x"02"; + when "00010" => dac_amp <= x"02"; + when "00001" => dac_amp <= x"01"; + when "00000" => dac_amp <= x"00"; + when others => null; + end case; + + cnt_div_t1 <= cnt_div; + end if; + end process; + + p_audio_output : process(RESET_L, CLK) + begin + if (RESET_L = '0') then + O_AUDIO <= (others => '0'); + O_CHAN <= (others => '0'); + elsif rising_edge(CLK) then + + if (ENA = '1') then + O_AUDIO <= dac_amp(7 downto 0); + O_CHAN <= cnt_div_t1(1 downto 0); + end if; + end if; + end process; + + p_io_ports : process(reg) + begin + O_IOA <= reg(14); + O_IOA_OE_L <= not reg(7)(6); + O_IOB <= reg(15); + O_IOB_OE_L <= not reg(7)(7); + end process; + + p_io_ports_inreg : process + begin + wait until rising_edge(CLK); + if (ENA = '1') then -- resync + ioa_inreg <= I_IOA; + iob_inreg <= I_IOB; + end if; + end process; +end architecture RTL; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/build_id.tcl b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/build_id.tcl new file mode 100644 index 00000000..938515d8 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/build_id.tcl @@ -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 \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/cmos_ram.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/cmos_ram.vhd new file mode 100644 index 00000000..c5e34893 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/cmos_ram.vhd @@ -0,0 +1,356 @@ +-- ----------------------------------------------------------------------- +-- +-- 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 cmos_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 cmos_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:= ( + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --000-00F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --010-01F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --020-02F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --030-03F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --040-04F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --050-05F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --060-06F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --070-07F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --080-08F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --090-09F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --0A0-0AF + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --0B0-0BF + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --0C0-0CF + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --0D0-0DF + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --0E0-0EF + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --0F0-0FF + + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --100-10F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --1F0-1FF + + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --200-20F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --2F0-2FF + + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --300-30F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --3F0-3FF + + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --400-40F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --4F0-4FF + + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --500-50F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --5F0-5FF + + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --600-60F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --6F0-6FF + + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --700-70F + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF" --7F0-7FF + +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --800-80F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --8F0-8FF +-- +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --900-90F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --9F0-9FF +-- +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --A00-A0F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --AF0-AFF +-- +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --B00-B0F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --BF0-BFF +-- +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --C00-C0F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --CF0-CFF +-- +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --D00-D0F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --DF0-DFF +-- +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --E00-E0F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --EF0-EFF +-- +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", --F00-F0F +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", +-- X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF" --FF0-FFF +); + + 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; + diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_controler.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_controler.vhd new file mode 100644 index 00000000..1ff9961d --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_controler.vhd @@ -0,0 +1,106 @@ +--------------------------------------------------------------------------------- +-- Z80-CTC controler by Dar (darfpga@aol.fr) (19/10/2019) +-- http://darfpga.blogspot.fr +--------------------------------------------------------------------------------- +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +entity ctc_controler is +port( + clock : in std_logic; + clock_ena : in std_logic; + reset : in std_logic; + + d_in : in std_logic_vector( 7 downto 0); + load_data : in std_logic; + int_ack : in std_logic; + + int_pulse_0 : in std_logic; + int_pulse_1 : in std_logic; + int_pulse_2 : in std_logic; + int_pulse_3 : in std_logic; + + d_out : out std_logic_vector( 7 downto 0); + int_n : out std_logic + +); +end ctc_controler; + +architecture struct of ctc_controler is + + signal int_vector : std_logic_vector(4 downto 0); + + signal wait_for_time_constant : std_logic; + signal load_data_r : std_logic; -- make sure load_data toggles to get one new data + + signal int_reg_0 : std_logic; + signal int_reg_1 : std_logic; + signal int_reg_2 : std_logic; + signal int_reg_3 : std_logic; + + signal int_ack_r : std_logic; + +begin + +int_n <= '0' when (int_reg_0 or int_reg_1 or int_reg_2 or int_reg_3) = '1' else '1'; + +d_out <= int_vector & "000" when int_reg_0 = '1' else + int_vector & "010" when int_reg_1 = '1' else + int_vector & "100" when int_reg_2 = '1' else + int_vector & "110" when int_reg_3 = '1' else (others => '0'); + +process (reset, clock) +begin + + if reset = '1' then -- hardware and software reset + wait_for_time_constant <= '0'; + int_reg_0 <= '0'; + int_reg_1 <= '0'; + int_reg_2 <= '0'; + int_reg_3 <= '0'; + load_data_r <= load_data; + int_vector <= (others => '0'); + else + if rising_edge(clock) then + if clock_ena = '1' then + + load_data_r <= load_data; + int_ack_r <= int_ack; + + if load_data = '1' and load_data_r = '0' then + + if wait_for_time_constant = '1' then + wait_for_time_constant <= '0'; + else + if d_in(0) = '1' then -- check if its a control world + wait_for_time_constant <= d_in(2); +-- if d_in(1) = '1' then -- software reset +-- wait_for_time_constant <= '0'; +-- end if; + else -- its an interrupt vector + int_vector <= d_in(7 downto 3); + end if; + end if; + + end if; + + if int_pulse_0 = '1' then int_reg_0 <= '1'; end if; + if int_pulse_1 = '1' then int_reg_1 <= '1'; end if; + if int_pulse_2 = '1' then int_reg_2 <= '1'; end if; + if int_pulse_3 = '1' then int_reg_3 <= '1'; end if; + + if int_ack_r = '1' and int_ack = '0' then + if int_reg_0 = '1' then int_reg_0 <= '0'; + elsif int_reg_1 = '1' then int_reg_1 <= '0'; + elsif int_reg_2 = '1' then int_reg_2 <= '0'; + elsif int_reg_3 = '1' then int_reg_3 <= '0'; end if; + end if; + + end if; + end if; + end if; +end process; + +end struct; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_counter.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_counter.vhd new file mode 100644 index 00000000..25f9a797 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/ctc_counter.vhd @@ -0,0 +1,152 @@ +--------------------------------------------------------------------------------- +-- Z80-CTC counter by Dar (darfpga@aol.fr) (19/10/2019) +-- http://darfpga.blogspot.fr +--------------------------------------------------------------------------------- +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +entity ctc_counter is +port( + clock : in std_logic; + clock_ena : in std_logic; + reset : in std_logic; + + d_in : in std_logic_vector( 7 downto 0); + load_data : in std_logic; + + clk_trg : in std_logic; + + d_out : out std_logic_vector(7 downto 0); + zc_to : out std_logic; + int_pulse : out std_logic + + ); +end ctc_counter; + +architecture struct of ctc_counter is + + signal control_word : std_logic_vector(7 downto 0); + signal wait_for_time_constant : std_logic; + signal time_constant_loaded : std_logic; + signal restart_on_next_clock : std_logic; + signal restart_on_next_trigger : std_logic; + + signal prescale_max : std_logic_vector(7 downto 0); + signal prescale_in : std_logic_vector(7 downto 0) := (others => '0'); + signal count_max : std_logic_vector(8 downto 0); + signal count_in : std_logic_vector(8 downto 0) := (others => '0'); + signal zc_to_in : std_logic; + signal clk_trg_r : std_logic; + signal trigger : std_logic; + signal count_ena : std_logic; + signal load_data_r : std_logic; -- make sure load_data toggles to get one new data + +begin + +prescale_max <= + (others => '0') when control_word(6) = '1' else -- counter mode (prescale max = 0) + X"0F" when control_word(6 downto 5) = "00" else -- timer mode prescale 16 + X"FF"; -- timer mode prescale 256 + +trigger <= + '1' when (clk_trg = '0' and clk_trg_r = '1' and control_word(4) = '0') or -- falling edge + (clk_trg = '1' and clk_trg_r = '0' and control_word(4) = '1') else '0'; -- rising edge + +d_out <= count_in(7 downto 0); + +zc_to <= zc_to_in; +int_pulse <= zc_to_in when control_word(7) = '1' else '0'; + +process (reset, clock) +begin + + if reset = '1' then -- hardware reset + count_ena <= '0'; + wait_for_time_constant <= '0'; + time_constant_loaded <= '0'; + restart_on_next_clock <= '0'; + restart_on_next_trigger <= '0'; + count_in <= (others=> '0'); + zc_to_in <= '0'; + clk_trg_r <= clk_trg; + else + if rising_edge(clock) then + if clock_ena = '1' then + + clk_trg_r <= clk_trg; + load_data_r <= load_data; + + if (restart_on_next_trigger = '1' and trigger = '1') or (restart_on_next_clock = '1') then + restart_on_next_clock <= '0'; + restart_on_next_trigger <= '0'; + count_ena <= '1'; + count_in <= count_max; + prescale_in <= prescale_max; + end if; + + if load_data = '1' and load_data_r = '0' then + + if wait_for_time_constant = '1' then + wait_for_time_constant <= '0'; + time_constant_loaded <= '1'; + + if d_in = X"00" then + count_max <= '1'&X"00"; + else + count_max <= '0'&d_in; + end if; + + if control_word(6) = '0' and count_ena = '0' then -- in timer mode, if count was stooped + if control_word(3) = '0' then -- auto start when time_constant loaded + restart_on_next_clock <= '1'; + else -- wait for trigger to start + restart_on_next_trigger <= '1'; + end if; + end if; + + else -- not waiting for time constant + + if d_in(0) = '1' then -- check if its a control world + control_word <= d_in; + wait_for_time_constant <= d_in(2); + restart_on_next_clock <= '0'; + restart_on_next_trigger <= '0'; + + if d_in(1) = '1' then -- software reset + count_ena <= '0'; + time_constant_loaded <= '0'; + zc_to_in <= '0'; +-- zc_to_in_r <= '0'; + clk_trg_r <= clk_trg; + end if; + end if; + + end if; + + end if; -- end load data + + -- counter + zc_to_in <= '0'; + if ((control_word(6) = '1' and trigger = '1' ) or + (control_word(6) = '0' and count_ena = '1') ) and time_constant_loaded = '1' then + if prescale_in = 0 then + prescale_in <= '0'&prescale_max(7 downto 1); -- test divide by 2 ! + if count_in = 0 then + zc_to_in <= '1'; + count_in <= count_max; + else + count_in <= count_in - '1'; + end if; + else + prescale_in <= prescale_in - '1'; + end if; + end if; + + end if; + end if; + end if; +end process; + +end struct; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/gen_ram.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/gen_ram.vhd new file mode 100644 index 00000000..f1a95608 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/gen_ram.vhd @@ -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; + diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.qip b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.qip new file mode 100644 index 00000000..d4720390 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.qip @@ -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 VHDL_FILE [file join $::quartus(qip_path) "pll_mist.vhd"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "pll_mist.ppf"] diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.vhd new file mode 100644 index 00000000..15c5571c --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/pll_mist.vhd @@ -0,0 +1,397 @@ +-- megafunction wizard: %ALTPLL% +-- GENERATION: STANDARD +-- VERSION: WM1.0 +-- MODULE: altpll + +-- ============================================================ +-- File Name: pll_mist.vhd +-- Megafunction Name(s): +-- altpll +-- +-- Simulation Library Files(s): +-- altera_mf +-- ============================================================ +-- ************************************************************ +-- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +-- +-- 13.1.0 Build 162 10/23/2013 SJ Web Edition +-- ************************************************************ + + +--Copyright (C) 1991-2013 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + + +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY pll_mist IS + PORT + ( + areset : IN STD_LOGIC := '0'; + inclk0 : IN STD_LOGIC := '0'; + c0 : OUT STD_LOGIC ; + c1 : OUT STD_LOGIC ; + locked : OUT STD_LOGIC + ); +END pll_mist; + + +ARCHITECTURE SYN OF pll_mist IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (4 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC ; + SIGNAL sub_wire2 : STD_LOGIC ; + SIGNAL sub_wire3 : STD_LOGIC ; + SIGNAL sub_wire4 : STD_LOGIC ; + SIGNAL sub_wire5 : STD_LOGIC_VECTOR (1 DOWNTO 0); + SIGNAL sub_wire6_bv : BIT_VECTOR (0 DOWNTO 0); + SIGNAL sub_wire6 : STD_LOGIC_VECTOR (0 DOWNTO 0); + + + + COMPONENT altpll + GENERIC ( + bandwidth_type : STRING; + clk0_divide_by : NATURAL; + clk0_duty_cycle : NATURAL; + clk0_multiply_by : NATURAL; + clk0_phase_shift : STRING; + clk1_divide_by : NATURAL; + clk1_duty_cycle : NATURAL; + clk1_multiply_by : NATURAL; + clk1_phase_shift : STRING; + compensate_clock : STRING; + inclk0_input_frequency : NATURAL; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + operation_mode : STRING; + pll_type : STRING; + port_activeclock : STRING; + port_areset : STRING; + port_clkbad0 : STRING; + port_clkbad1 : STRING; + port_clkloss : STRING; + port_clkswitch : STRING; + port_configupdate : STRING; + port_fbin : STRING; + port_inclk0 : STRING; + port_inclk1 : STRING; + port_locked : STRING; + port_pfdena : STRING; + port_phasecounterselect : STRING; + port_phasedone : STRING; + port_phasestep : STRING; + port_phaseupdown : STRING; + port_pllena : STRING; + port_scanaclr : STRING; + port_scanclk : STRING; + port_scanclkena : STRING; + port_scandata : STRING; + port_scandataout : STRING; + port_scandone : STRING; + port_scanread : STRING; + port_scanwrite : STRING; + port_clk0 : STRING; + port_clk1 : STRING; + port_clk2 : STRING; + port_clk3 : STRING; + port_clk4 : STRING; + port_clk5 : STRING; + port_clkena0 : STRING; + port_clkena1 : STRING; + port_clkena2 : STRING; + port_clkena3 : STRING; + port_clkena4 : STRING; + port_clkena5 : STRING; + port_extclk0 : STRING; + port_extclk1 : STRING; + port_extclk2 : STRING; + port_extclk3 : STRING; + self_reset_on_loss_lock : STRING; + width_clock : NATURAL + ); + PORT ( + areset : IN STD_LOGIC ; + clk : OUT STD_LOGIC_VECTOR (4 DOWNTO 0); + inclk : IN STD_LOGIC_VECTOR (1 DOWNTO 0); + locked : OUT STD_LOGIC + ); + END COMPONENT; + +BEGIN + sub_wire6_bv(0 DOWNTO 0) <= "0"; + sub_wire6 <= To_stdlogicvector(sub_wire6_bv); + sub_wire3 <= sub_wire0(0); + sub_wire1 <= sub_wire0(1); + c1 <= sub_wire1; + locked <= sub_wire2; + c0 <= sub_wire3; + sub_wire4 <= inclk0; + sub_wire5 <= sub_wire6(0 DOWNTO 0) & sub_wire4; + + altpll_component : altpll + GENERIC MAP ( + bandwidth_type => "AUTO", + clk0_divide_by => 27, + clk0_duty_cycle => 50, + clk0_multiply_by => 40, + clk0_phase_shift => "0", + clk1_divide_by => 27, + clk1_duty_cycle => 50, + clk1_multiply_by => 80, + clk1_phase_shift => "0", + compensate_clock => "CLK0", + inclk0_input_frequency => 37037, + intended_device_family => "Cyclone III", + lpm_hint => "CBX_MODULE_PREFIX=pll_mist", + lpm_type => "altpll", + operation_mode => "NORMAL", + pll_type => "AUTO", + port_activeclock => "PORT_UNUSED", + port_areset => "PORT_USED", + port_clkbad0 => "PORT_UNUSED", + port_clkbad1 => "PORT_UNUSED", + port_clkloss => "PORT_UNUSED", + port_clkswitch => "PORT_UNUSED", + port_configupdate => "PORT_UNUSED", + port_fbin => "PORT_UNUSED", + port_inclk0 => "PORT_USED", + port_inclk1 => "PORT_UNUSED", + port_locked => "PORT_USED", + port_pfdena => "PORT_UNUSED", + port_phasecounterselect => "PORT_UNUSED", + port_phasedone => "PORT_UNUSED", + port_phasestep => "PORT_UNUSED", + port_phaseupdown => "PORT_UNUSED", + port_pllena => "PORT_UNUSED", + port_scanaclr => "PORT_UNUSED", + port_scanclk => "PORT_UNUSED", + port_scanclkena => "PORT_UNUSED", + port_scandata => "PORT_UNUSED", + port_scandataout => "PORT_UNUSED", + port_scandone => "PORT_UNUSED", + port_scanread => "PORT_UNUSED", + port_scanwrite => "PORT_UNUSED", + port_clk0 => "PORT_USED", + port_clk1 => "PORT_USED", + port_clk2 => "PORT_UNUSED", + port_clk3 => "PORT_UNUSED", + port_clk4 => "PORT_UNUSED", + port_clk5 => "PORT_UNUSED", + port_clkena0 => "PORT_UNUSED", + port_clkena1 => "PORT_UNUSED", + port_clkena2 => "PORT_UNUSED", + port_clkena3 => "PORT_UNUSED", + port_clkena4 => "PORT_UNUSED", + port_clkena5 => "PORT_UNUSED", + port_extclk0 => "PORT_UNUSED", + port_extclk1 => "PORT_UNUSED", + port_extclk2 => "PORT_UNUSED", + port_extclk3 => "PORT_UNUSED", + self_reset_on_loss_lock => "OFF", + width_clock => 5 + ) + PORT MAP ( + areset => areset, + inclk => sub_wire5, + clk => sub_wire0, + locked => sub_wire2 + ); + + + +END SYN; + +-- ============================================================ +-- 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 "27" +-- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "27" +-- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "40.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "80.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 "40" +-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "80" +-- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "40.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "80.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" +-- 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_mist.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 "27" +-- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "40" +-- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "27" +-- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "80" +-- 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: @inclk 0 0 2 0 INPUT_CLK_EXT VCC "@inclk[1..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_mist.vhd TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.ppf TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.inc FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.cmp FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.bsf FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist_inst.vhd FALSE +-- Retrieval info: LIB_FILE: altera_mf +-- Retrieval info: CBX_MODULE_PREFIX: ON diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_1.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_1.vhd new file mode 100644 index 00000000..00a2084a --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_1.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity domino_bg_bits_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 domino_bg_bits_1 is + type rom is array(0 to 8191) 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"3F",X"FF",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA", + X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA", + X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3F",X"FF",X"00",X"00", + X"00",X"00",X"FF",X"FC",X"AA",X"AF",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"FF",X"EA",X"C0",X"FA",X"C0",X"3E",X"C0",X"0F",X"C0",X"03",X"C0",X"03", + X"C0",X"03",X"C0",X"03",X"C0",X"0F",X"C0",X"3E",X"C0",X"FA",X"FF",X"EA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AF",X"FF",X"FC",X"00",X"00", + X"00",X"00",X"00",X"00",X"C0",X"00",X"F0",X"00",X"BC",X"00",X"AF",X"00",X"AB",X"C0",X"AA",X"F0", + X"AA",X"B0",X"AA",X"B0",X"AA",X"BC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC", + X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"BC",X"AA",X"B0",X"AA",X"B0", + X"AA",X"F0",X"AB",X"C0",X"AF",X"00",X"BC",X"00",X"F0",X"00",X"C0",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"0F",X"00",X"FE",X"00",X"EA",X"03",X"EA",X"0F",X"AA", + X"0E",X"AA",X"0E",X"AA",X"3E",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA", + X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3A",X"AA",X"3E",X"AA",X"0E",X"AA",X"0E",X"AA", + X"0F",X"AA",X"03",X"EA",X"00",X"EA",X"00",X"FE",X"00",X"0F",X"00",X"03",X"00",X"00",X"00",X"00", + X"00",X"00",X"3F",X"FC",X"FA",X"AF",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AF",X"FA",X"BC",X"3E",X"F0",X"0F",X"C0",X"03",X"C0",X"03", + X"C0",X"03",X"C0",X"03",X"F0",X"0F",X"BC",X"3E",X"AF",X"FA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"FA",X"AF",X"3F",X"FC",X"00",X"00", + X"00",X"00",X"00",X"00",X"C0",X"00",X"F0",X"00",X"BF",X"00",X"AB",X"00",X"AB",X"C0",X"AA",X"F0", + X"AA",X"B0",X"AA",X"B0",X"AA",X"BC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC", + X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"BC",X"AA",X"B0",X"AA",X"B0", + X"AA",X"F0",X"AB",X"C0",X"AB",X"00",X"BF",X"00",X"F0",X"00",X"C0",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"C0",X"03",X"C0",X"03",X"F0",X"0F",X"B0",X"0E",X"B0",X"0E",X"BC",X"3E",X"AC",X"3A", + X"AF",X"FA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"FE",X"BF",X"CE",X"B3",X"CE",X"B3",X"CF",X"F3",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03", + X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"00",X"00", + X"00",X"00",X"FF",X"FC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC", + X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC", + X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"AA",X"AC",X"FF",X"FC",X"00",X"00", + X"00",X"00",X"03",X"FF",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"03",X"FF", + X"03",X"FF",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"03",X"FF",X"00",X"00", + X"00",X"00",X"FF",X"FF",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"EA",X"AB", + X"EA",X"AB",X"EA",X"AB",X"EA",X"AB",X"EA",X"AB",X"EA",X"AB",X"EA",X"AB",X"EA",X"AB",X"EA",X"AB", + X"EA",X"AB",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"FF",X"FF",X"00",X"00", + X"00",X"00",X"FF",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"FF",X"C0", + X"FF",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"FF",X"C0",X"00",X"00", + X"00",X"00",X"C0",X"03",X"C0",X"03",X"F0",X"03",X"B0",X"03",X"BC",X"03",X"AC",X"03",X"AF",X"03", + X"AB",X"03",X"AB",X"C3",X"AA",X"C3",X"AA",X"F3",X"AA",X"B3",X"AA",X"BF",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"FE",X"AA",X"CE",X"AA",X"CF",X"AA",X"C3",X"AA",X"C3",X"EA",X"C0",X"EA", + X"C0",X"FA",X"C0",X"3A",X"C0",X"3E",X"C0",X"0E",X"C0",X"0F",X"C0",X"03",X"C0",X"03",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"00",X"03",X"00",X"03",X"00",X"0F",X"00",X"0E", + X"00",X"0E",X"00",X"0E",X"00",X"3E",X"00",X"3A",X"00",X"3A",X"00",X"3A",X"00",X"FA",X"00",X"EA", + X"00",X"EA",X"00",X"EA",X"03",X"EA",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"03",X"AA",X"0F",X"AA", + X"0E",X"AA",X"3E",X"AB",X"3A",X"AB",X"3A",X"AF",X"3A",X"AC",X"3A",X"AC",X"3F",X"FC",X"00",X"00", + X"00",X"00",X"FF",X"FF",X"EA",X"AB",X"EA",X"AB",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AB",X"EA",X"AF",X"FA",X"AC",X"3A",X"AC",X"3A",X"BC",X"3E",X"B0",X"0E",X"B0",X"0E",X"BF",X"FE", + X"00",X"00",X"0A",X"A0",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"0A",X"A0", + X"00",X"00",X"0A",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"0A",X"A0", + X"00",X"00",X"2A",X"A0",X"20",X"A0",X"00",X"A0",X"2A",X"A0",X"28",X"00",X"28",X"20",X"2A",X"A0", + X"00",X"00",X"2A",X"A0",X"20",X"A0",X"00",X"A0",X"0A",X"80",X"00",X"A0",X"20",X"A0",X"2A",X"A0", + X"00",X"00",X"00",X"A0",X"28",X"A0",X"28",X"A0",X"2A",X"A8",X"00",X"A0",X"00",X"A0",X"00",X"A0", + X"00",X"00",X"2A",X"A0",X"28",X"20",X"28",X"00",X"2A",X"A0",X"00",X"A0",X"20",X"A0",X"2A",X"A0", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"00",X"2A",X"A8",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"2A",X"A0",X"28",X"A0",X"00",X"A0",X"00",X"A0",X"00",X"A0",X"00",X"A0",X"00",X"A0", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"28",X"0A",X"A0",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"28",X"2A",X"A8",X"00",X"28",X"28",X"28",X"2A",X"A8", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"BF",X"FE",X"B0",X"0E",X"F0",X"0F", + X"C0",X"03",X"C0",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"C0",X"00",X"C0",X"00",X"C0",X"00",X"F0",X"00",X"B0",X"00", + X"B0",X"00",X"B0",X"00",X"BC",X"00",X"AC",X"00",X"AC",X"00",X"AC",X"00",X"AF",X"00",X"AB",X"00", + X"AB",X"00",X"AB",X"00",X"AB",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"C0",X"AA",X"F0", + X"AA",X"B0",X"EA",X"BC",X"EA",X"AC",X"FA",X"AC",X"3A",X"AC",X"3A",X"AC",X"3F",X"FC",X"00",X"00", + X"02",X"A0",X"0A",X"A8",X"08",X"88",X"28",X"0A",X"2A",X"AA",X"0A",X"A8",X"0A",X"28",X"15",X"15", + X"00",X"00",X"0A",X"A0",X"28",X"28",X"28",X"28",X"28",X"28",X"2A",X"A8",X"28",X"28",X"28",X"28", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"28",X"2A",X"A0",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"00",X"28",X"00",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"2A",X"A0",X"28",X"A8",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"A8",X"2A",X"A0", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"00",X"2A",X"80",X"28",X"00",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"00",X"2A",X"80",X"28",X"00",X"28",X"00",X"28",X"00", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"00",X"28",X"A8",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"28",X"28",X"28",X"28",X"28",X"28",X"2A",X"A8",X"28",X"28",X"28",X"28",X"28",X"28", + X"00",X"00",X"0A",X"A0",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"0A",X"A0", + X"00",X"00",X"02",X"A8",X"00",X"A0",X"00",X"A0",X"00",X"A0",X"28",X"A0",X"28",X"A0",X"2A",X"A0", + X"00",X"00",X"28",X"20",X"28",X"A0",X"2A",X"A0",X"2A",X"00",X"2A",X"A0",X"28",X"A0",X"28",X"A0", + X"00",X"00",X"28",X"00",X"28",X"00",X"28",X"00",X"28",X"00",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"A8",X"A8",X"AA",X"A8",X"A2",X"28",X"A2",X"28",X"A0",X"28",X"A0",X"28",X"A0",X"28", + X"00",X"00",X"A0",X"28",X"A8",X"28",X"AA",X"28",X"AA",X"A8",X"A2",X"A8",X"A0",X"A8",X"A0",X"28", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"28",X"2A",X"A8",X"28",X"00",X"28",X"00",X"28",X"00", + X"00",X"00",X"AA",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A2",X"A0",X"A2",X"A8",X"AA",X"A8", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"28",X"2A",X"A0",X"28",X"28",X"28",X"28",X"28",X"28", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"28",X"00",X"2A",X"A8",X"00",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"2A",X"A8",X"2A",X"A8",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80", + X"00",X"00",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"28",X"08",X"28",X"08",X"28",X"08",X"28",X"28",X"28",X"A0",X"2A",X"80",X"2A",X"00", + X"00",X"00",X"A0",X"28",X"A0",X"28",X"A0",X"28",X"A2",X"28",X"A2",X"28",X"AA",X"A8",X"A8",X"A8", + X"00",X"00",X"A0",X"28",X"A8",X"A8",X"2A",X"A0",X"0A",X"80",X"2A",X"A0",X"A8",X"A8",X"A0",X"28", + X"00",X"00",X"28",X"28",X"28",X"28",X"2A",X"A8",X"0A",X"A0",X"02",X"80",X"02",X"80",X"02",X"80", + X"00",X"00",X"2A",X"A8",X"28",X"28",X"00",X"A0",X"02",X"80",X"0A",X"00",X"28",X"28",X"2A",X"A8", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"55",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"55",X"55",X"55",X"55",X"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"F5",X"FF",X"D5",X"FF",X"54",X"FD",X"50",X"F5",X"40",X"D5",X"00",X"54",X"00",X"50",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"00",X"00",X"00",X"00",X"00", + X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FD", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"57",X"55",X"5F",X"55",X"7F",X"55",X"FF",X"57",X"FF",X"5F",X"FF", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"7F",X"FF",X"7F",X"FF",X"7F",X"FF",X"7F",X"FF",X"7F",X"FF",X"7F",X"FF",X"7F",X"FF",X"7F",X"FF", + X"FF",X"FF",X"FF",X"D7",X"FF",X"D7",X"FF",X"D7",X"FF",X"D7",X"FF",X"D7",X"FF",X"D7",X"FF",X"D7", + X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"AA",X"02",X"AA",X"02",X"80",X"02",X"80",X"02",X"80", + X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80", + X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"AA",X"02",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"AA",X"AA",X"AA",X"AA",X"00",X"00",X"00",X"00",X"00",X"00", + X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA", + X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"8A",X"AA",X"80",X"00",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",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"AA",X"AA", + X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2", + X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"AA",X"A2",X"00",X"02",X"AA",X"AA", + X"00",X"00",X"2A",X"A8",X"2A",X"A8",X"2A",X"A8",X"2A",X"A8",X"2A",X"A8",X"2A",X"A8",X"00",X"00", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"57",X"55",X"5F",X"55",X"7F",X"55",X"FF",X"57",X"FF",X"5F",X"FF",X"7F",X"FF", + X"55",X"55",X"D5",X"55",X"F5",X"55",X"FD",X"55",X"FF",X"55",X"FF",X"D5",X"FF",X"F5",X"FF",X"FD", + X"80",X"08",X"80",X"08",X"80",X"28",X"A8",X"20",X"88",X"28",X"A0",X"08",X"88",X"28",X"88",X"20", + X"80",X"A8",X"80",X"80",X"80",X"80",X"A8",X"A8",X"88",X"88",X"A0",X"A8",X"88",X"88",X"88",X"88", + X"08",X"0A",X"28",X"02",X"20",X"02",X"A2",X"AA",X"82",X"22",X"A2",X"22",X"22",X"02",X"A2",X"02", + X"28",X"00",X"08",X"00",X"08",X"00",X"2A",X"A0",X"22",X"20",X"22",X"20",X"20",X"20",X"20",X"20", + X"28",X"20",X"08",X"20",X"08",X"20",X"28",X"28",X"22",X"08",X"22",X"08",X"22",X"28",X"28",X"20", + X"20",X"20",X"20",X"20",X"28",X"28",X"08",X"08",X"0A",X"08",X"02",X"08",X"2A",X"28",X"20",X"20", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"A9",X"AA",X"A5",X"AA",X"95",X"AA",X"55",X"A9",X"55",X"A5",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A9",X"AA",X"95",X"AA",X"55",X"A9",X"55",X"95",X"55", + X"AA",X"55",X"A5",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"00",X"00",X"54",X"54",X"04",X"40",X"54",X"54",X"40",X"04",X"54",X"54",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"95",X"A9",X"55",X"95",X"55",X"55",X"55", + X"AA",X"A5",X"A9",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"5A",X"AA",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"55",X"AA",X"55",X"6A",X"55",X"56",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"6A",X"AA",X"5A",X"AA",X"55",X"AA", + X"55",X"6A",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"56",X"AA",X"55",X"6A", + X"15",X"55",X"05",X"55",X"41",X"55",X"50",X"01",X"55",X"50",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"05",X"55",X"40",X"15",X"55",X"01",X"55",X"50", + X"00",X"00",X"00",X"04",X"00",X"04",X"00",X"04",X"00",X"04",X"00",X"04",X"00",X"00",X"00",X"00", + X"40",X"01",X"55",X"50",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"00",X"15",X"55",X"01",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A9",X"AA",X"95", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A9",X"AA",X"95",X"A9",X"55",X"55",X"55", + X"95",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A9",X"AA",X"A5",X"AA",X"95", + X"AA",X"95",X"A9",X"55",X"A5",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AF",X"FA",X"BD",X"7F",X"F5",X"57",X"55",X"57",X"55",X"57",X"55",X"55",X"55",X"65",X"55",X"69", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"EA",X"AA",X"EF",X"FA",X"FD",X"7A",X"55",X"7A", + X"55",X"7E",X"56",X"5E",X"55",X"7E",X"55",X"7A",X"55",X"7B",X"56",X"7F",X"5A",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"FE",X"AA",X"DF",X"EA",X"D5",X"EA",X"55",X"EA",X"57",X"EA",X"5F",X"AA", + X"5E",X"AA",X"5E",X"AA",X"5E",X"BF",X"5F",X"B5",X"57",X"F5",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"FA",X"AA",X"7A",X"AA",X"7E",X"FE",X"5E",X"DE",X"5F",X"DF",X"55",X"57", + X"EA",X"AA",X"FE",X"FE",X"5E",X"DE",X"9F",X"DE",X"95",X"5E",X"55",X"7E",X"55",X"7A",X"55",X"7F", + X"EA",X"BF",X"EA",X"F7",X"EF",X"D7",X"ED",X"55",X"FD",X"59",X"55",X"69",X"55",X"A9",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"EA",X"AA",X"FA",X"AA",X"7E",X"AA",X"5F",X"AA",X"57",X"AA",X"57",X"AA", + X"57",X"FA",X"55",X"7A",X"55",X"FA",X"57",X"EA",X"57",X"AA",X"57",X"AA",X"57",X"FE",X"55",X"5F", + X"EA",X"AA",X"FA",X"AA",X"7E",X"AA",X"5E",X"AA",X"5E",X"AA",X"7E",X"AA",X"7A",X"AA",X"7A",X"AA", + X"5F",X"FE",X"55",X"5E",X"55",X"7E",X"57",X"FA",X"57",X"AA",X"57",X"EA",X"55",X"FE",X"55",X"5E", + X"55",X"5F",X"55",X"57",X"55",X"55",X"55",X"55",X"55",X"55",X"45",X"5A",X"41",X"6A",X"55",X"69", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"45",X"5A",X"41",X"6A",X"55",X"69", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AB",X"AA",X"AF",X"AA",X"FF", + X"AA",X"AF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"BF",X"AB",X"FF",X"BF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"FF",X"AF",X"FF",X"BF",X"FF",X"BF",X"FF",X"BF",X"FF",X"BF",X"FF",X"BF",X"FF",X"AB",X"FF", + X"AA",X"BF",X"AA",X"BF",X"AA",X"FF",X"AB",X"FF",X"BF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AF",X"AB",X"FF",X"BF",X"FF", + X"AA",X"AF",X"AA",X"BF",X"AB",X"FF",X"BF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AB",X"FF",X"AF",X"FF",X"AF",X"FF",X"BF",X"FF",X"BF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"BF",X"FF",X"BF",X"FF", + X"AF",X"FF",X"AF",X"FF",X"AB",X"FF",X"AA",X"FF",X"AA",X"BF",X"AA",X"BF",X"AA",X"AF",X"AA",X"AB", + X"FF",X"FF",X"BF",X"FF",X"AB",X"FF",X"AA",X"FF",X"AA",X"AF",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"AF",X"FF",X"AA",X"AF", + X"FF",X"FF",X"AF",X"FF",X"AA",X"AF",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"55",X"55",X"59",X"55",X"59",X"59",X"5A",X"59",X"9A",X"5A",X"9A",X"6A",X"AA",X"6A",X"AA",X"AA", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FD",X"55",X"FD",X"00",X"FD",X"55", + X"FF",X"55",X"FF",X"F5",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"57",X"FF",X"5F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"67",X"FF",X"65",X"FF", + X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF",X"6F",X"FF", + X"6A",X"AA",X"6A",X"AA",X"6A",X"AA",X"6A",X"AA",X"6A",X"AA",X"6A",X"AA",X"6A",X"AA",X"6A",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"6A",X"AA",X"6A",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A9", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",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"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"02",X"00",X"0A",X"00",X"2A",X"00",X"AA",X"02",X"AA",X"0A",X"AA",X"2A",X"AA", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"54",X"55",X"54",X"55",X"54",X"55",X"54",X"55",X"54",X"55",X"54",X"55",X"54",X"55",X"54", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"40",X"54",X"00", + X"55",X"54",X"55",X"54",X"55",X"54",X"55",X"54",X"55",X"50",X"55",X"40",X"55",X"40",X"55",X"00", + X"AA",X"AA",X"AA",X"AA",X"AA",X"A5",X"AA",X"95",X"AA",X"55",X"A9",X"55",X"A9",X"55",X"A5",X"54", + X"95",X"50",X"55",X"40",X"55",X"00",X"54",X"00",X"54",X"00",X"54",X"05",X"95",X"56",X"9A",X"AA", + X"9A",X"AA",X"9A",X"AA",X"9A",X"AA",X"95",X"AA",X"A9",X"AA",X"A9",X"AA",X"A9",X"AB",X"A9",X"FF", + X"AA",X"7F",X"AA",X"7F",X"AA",X"7F",X"AA",X"5F",X"AA",X"96",X"AA",X"56",X"A9",X"45",X"A9",X"01", + X"A5",X"01",X"A4",X"01",X"A4",X"01",X"A4",X"01",X"A4",X"01",X"A4",X"00",X"A4",X"00",X"A5",X"00", + X"A5",X"00",X"A9",X"40",X"A9",X"40",X"AA",X"50",X"AA",X"94",X"AA",X"A5",X"AA",X"AA",X"AA",X"AA", + X"A5",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"00",X"50",X"00",X"00",X"00",X"00",X"00", + X"00",X"01",X"00",X"15",X"00",X"56",X"05",X"6A",X"56",X"AA",X"6A",X"AA",X"AA",X"A9",X"AA",X"A5", + X"AA",X"A4",X"AA",X"A4",X"AA",X"A4",X"AA",X"A4",X"AA",X"B4",X"AA",X"F4",X"FF",X"F4",X"FF",X"F4", + X"FF",X"F5",X"FF",X"F5",X"FF",X"F9",X"FF",X"E9",X"EA",X"A9",X"AA",X"A9",X"AA",X"A9",X"AA",X"A5", + X"5A",X"A9",X"15",X"A9",X"01",X"59",X"00",X"15",X"40",X"0D",X"40",X"15",X"50",X"44",X"15",X"04", + X"00",X"05",X"00",X"01",X"00",X"01",X"00",X"00",X"00",X"00",X"55",X"00",X"AA",X"AA",X"AA",X"AA", + X"56",X"AA",X"55",X"AA",X"55",X"6A",X"06",X"6A",X"06",X"5A",X"06",X"9A",X"16",X"9A",X"5A",X"96", + X"6A",X"A7",X"AA",X"A5",X"AA",X"AD",X"AA",X"AD",X"AA",X"AD",X"AA",X"BD",X"55",X"7D",X"00",X"7F", + X"00",X"5F",X"00",X"1E",X"15",X"1E",X"55",X"1E",X"55",X"16",X"55",X"06",X"55",X"06",X"15",X"16", + X"00",X"1A",X"00",X"1A",X"00",X"1A",X"00",X"55",X"05",X"40",X"14",X"00",X"10",X"00",X"50",X"00", + X"40",X"15",X"40",X"55",X"41",X"55",X"41",X"55",X"01",X"55",X"01",X"55",X"01",X"55",X"00",X"55", + X"00",X"55",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"10",X"00",X"A4",X"00",X"A9",X"55", + X"AA",X"BD",X"AA",X"DF",X"AB",X"F7",X"AD",X"FD",X"AF",X"F7",X"BD",X"DD",X"DF",X"7F",X"FD",X"FD", + X"FF",X"7D",X"5F",X"DF",X"F7",X"F7",X"DD",X"DD",X"F7",X"F7",X"7D",X"DD",X"7F",X"7F",X"7D",X"FD", + X"7F",X"7D",X"5F",X"DF",X"77",X"F7",X"5D",X"DD",X"77",X"F7",X"7D",X"DD",X"7F",X"7F",X"7D",X"FD", + X"77",X"7D",X"5F",X"DF",X"77",X"F7",X"5D",X"DF",X"17",X"F7",X"05",X"00",X"01",X"40",X"00",X"40", + X"40",X"50",X"40",X"10",X"50",X"10",X"50",X"10",X"50",X"14",X"50",X"04",X"50",X"04",X"50",X"04", + X"40",X"04",X"00",X"14",X"00",X"10",X"00",X"50",X"00",X"40",X"01",X"40",X"15",X"00",X"50",X"00", + X"F7",X"7A",X"FF",X"FE",X"DD",X"F7",X"5F",X"7F",X"FF",X"FD",X"FF",X"7F",X"7D",X"F7",X"F7",X"DF", + X"7F",X"F5",X"DD",X"5F",X"FF",X"F7",X"7D",X"FF",X"D7",X"7D",X"FF",X"DF",X"FD",X"77",X"FD",X"FD", + X"7F",X"F0",X"DD",X"71",X"FF",X"C0",X"7D",X"D1",X"D7",X"00",X"00",X"14",X"00",X"10",X"00",X"41", + X"01",X"10",X"00",X"01",X"04",X"40",X"00",X"11",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"EA",X"AA",X"7A",X"AA",X"76",X"AA",X"DF",X"AA",X"7D",X"EA", + X"DF",X"DA",X"77",X"7C",X"77",X"71",X"FD",X"C0",X"7F",X"10",X"77",X"01",X"DC",X"10",X"71",X"01", + X"DC",X"10",X"F0",X"40",X"41",X"01",X"C0",X"00",X"C4",X"10",X"C0",X"01",X"D0",X"10",X"01",X"01", + X"01",X"00",X"10",X"04",X"00",X"40",X"40",X"40",X"10",X"01",X"01",X"10",X"00",X"41",X"44",X"00", + X"14",X"00",X"00",X"44",X"40",X"00",X"10",X"41",X"01",X"00",X"00",X"04",X"00",X"00",X"00",X"00", + X"01",X"0A",X"10",X"12",X"00",X"00",X"41",X"10",X"00",X"00",X"04",X"04",X"10",X"40",X"00",X"00", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"6A",X"AA",X"02",X"AA",X"04",X"2A",X"10",X"4A",X"00",X"02", + X"AA",X"AA",X"AA",X"AA",X"2A",X"AA",X"6A",X"AA",X"0A",X"AA",X"02",X"AA",X"10",X"AA",X"41",X"AA", + X"01",X"04",X"40",X"00",X"00",X"11",X"04",X"00",X"00",X"10",X"10",X"00",X"04",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"11",X"00",X"04",X"00",X"40",X"40", + X"41",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"01",X"00",X"10",X"10",X"00",X"00",X"41",X"10",X"00",X"00",X"04",X"04",X"10",X"40",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"AA",X"80",X"AA",X"80",X"02",X"80",X"02",X"80",X"02",X"80", + X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80",X"02",X"80", + X"02",X"80",X"02",X"80",X"02",X"80",X"AA",X"80",X"AA",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"02",X"AA",X"A2",X"AA",X"A2",X"00",X"02",X"00",X"02",X"00",X"00", + X"0A",X"A0",X"28",X"28",X"22",X"88",X"22",X"08",X"22",X"08",X"22",X"88",X"28",X"28",X"0A",X"A0", + X"05",X"54",X"01",X"50",X"05",X"54",X"15",X"54",X"95",X"55",X"95",X"55",X"A5",X"55",X"29",X"54", + X"05",X"50",X"15",X"54",X"5F",X"F5",X"57",X"F5",X"97",X"76",X"85",X"52",X"29",X"68",X"0A",X"A0", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"FF",X"FF",X"FF",X"FF",X"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"00",X"54",X"00",X"44",X"00",X"44",X"00",X"44",X"00",X"54",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"54",X"54",X"44",X"44",X"44",X"44",X"44",X"44",X"54",X"54",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"54",X"00",X"04",X"00",X"54",X"00",X"40",X"00",X"54",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"54",X"00",X"40",X"00",X"54",X"00",X"04",X"00",X"54",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"A2",X"A2",X"22",X"22",X"82",X"22",X"22",X"22",X"A2",X"A2",X"00",X"00", + X"00",X"00",X"00",X"00",X"A2",X"22",X"22",X"22",X"22",X"22",X"22",X"20",X"22",X"A2",X"00",X"00", + X"00",X"00",X"00",X"00",X"A0",X"00",X"02",X"AA",X"A2",X"AA",X"20",X"00",X"A0",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"05",X"00",X"15",X"00",X"55",X"01",X"55",X"05",X"55",X"15",X"55", + X"00",X"00",X"00",X"00",X"40",X"00",X"50",X"00",X"54",X"00",X"55",X"00",X"55",X"40",X"55",X"50", + X"00",X"00",X"00",X"01",X"00",X"05",X"00",X"15",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"01",X"55",X"01",X"55",X"05",X"55",X"05",X"55", + X"55",X"54",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"00",X"55",X"00",X"55",X"40",X"55",X"40", + X"00",X"00",X"00",X"00",X"40",X"00",X"50",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"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"05",X"55",X"15",X"55",X"15",X"55",X"15",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"40",X"55",X"50",X"55",X"50",X"55",X"50",X"55",X"54",X"55",X"54",X"55",X"55",X"55",X"55", + X"00",X"01",X"00",X"05",X"00",X"05",X"00",X"05",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",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"40",X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"55",X"7F",X"FF",X"5F",X"FF",X"57",X"FF",X"15",X"FF",X"05",X"7F",X"01",X"5F",X"00",X"57", + X"00",X"15",X"00",X"05",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"FF",X"FF",X"7F",X"FF",X"5F",X"FF",X"57",X"FF",X"15",X"FF",X"05",X"7F",X"01",X"5F",X"00",X"57", + X"00",X"15",X"00",X"05",X"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"00",X"50",X"00",X"D4",X"00",X"F5",X"00",X"FD",X"40",X"FF",X"50",X"FF",X"D4",X"FF",X"F5", + X"FF",X"FD",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"55",X"55",X"FF",X"FD",X"FF",X"F5",X"FF",X"D5",X"FF",X"54",X"FD",X"50",X"F5",X"40",X"D5",X"00", + X"54",X"00",X"50",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"00", + X"FF",X"FF",X"FF",X"FD",X"FF",X"F5",X"FF",X"D5",X"FF",X"54",X"FD",X"50",X"F5",X"40",X"D5",X"00", + X"54",X"00",X"50",X"00",X"00",X"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"05",X"00",X"17",X"00",X"5F",X"01",X"7F",X"05",X"FF",X"17",X"FF",X"5F",X"FF", + X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"55",X"55",X"15",X"55",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"55",X"55",X"55",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"54",X"55",X"55",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"55",X"55",X"55",X"00",X"50",X"00",X"10",X"00",X"14",X"00",X"04",X"00",X"05",X"00",X"01", + X"40",X"00",X"40",X"00",X"50",X"00",X"10",X"00",X"14",X"00",X"04",X"00",X"05",X"00",X"01",X"00", + X"01",X"40",X"00",X"40",X"00",X"50",X"00",X"10",X"00",X"14",X"00",X"04",X"00",X"05",X"00",X"01", + X"55",X"55",X"55",X"55",X"50",X"00",X"10",X"00",X"14",X"00",X"04",X"00",X"05",X"00",X"01",X"00", + X"00",X"00",X"15",X"55",X"55",X"55",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"55",X"55",X"55",X"54",X"00",X"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"05",X"00",X"04",X"00",X"14",X"00",X"10",X"00",X"50", + X"00",X"40",X"55",X"55",X"55",X"55",X"05",X"00",X"04",X"00",X"14",X"00",X"10",X"00",X"50",X"00", + X"40",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"00",X"00",X"00", + X"00",X"40",X"01",X"40",X"01",X"00",X"05",X"00",X"04",X"00",X"14",X"00",X"10",X"00",X"50",X"00", + X"55",X"55",X"55",X"55",X"00",X"01",X"00",X"05",X"00",X"04",X"00",X"14",X"00",X"10",X"00",X"50", + X"00",X"00",X"55",X"55",X"55",X"55",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA", + X"FF",X"FF",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55", + X"FF",X"FF",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA", + X"FF",X"FF",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_2.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_2.vhd new file mode 100644 index 00000000..b13eb857 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_bg_bits_2.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity domino_bg_bits_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 domino_bg_bits_2 is + type rom is array(0 to 8191) 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"3F",X"FF",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55", + X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55", + X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"3F",X"FF",X"00",X"00", + X"00",X"00",X"FF",X"FC",X"55",X"5F",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"FF",X"D5",X"C0",X"F5",X"C0",X"3D",X"C0",X"0F",X"C0",X"03",X"C0",X"03", + X"C0",X"03",X"C0",X"03",X"C0",X"0F",X"C0",X"3D",X"C0",X"F5",X"FF",X"D5",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"5F",X"FF",X"FC",X"00",X"00", + X"00",X"00",X"00",X"00",X"C0",X"00",X"F0",X"00",X"7C",X"00",X"5F",X"00",X"57",X"C0",X"55",X"F0", + X"55",X"70",X"55",X"70",X"55",X"7C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C", + X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"7C",X"55",X"70",X"55",X"70", + X"55",X"F0",X"57",X"C0",X"5F",X"00",X"7C",X"00",X"F0",X"00",X"C0",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"0F",X"00",X"FD",X"00",X"D5",X"03",X"D5",X"0F",X"55", + X"0D",X"55",X"0D",X"55",X"3D",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55", + X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"35",X"55",X"3D",X"55",X"0D",X"55",X"0D",X"55", + X"0F",X"55",X"03",X"D5",X"00",X"D5",X"00",X"FD",X"00",X"0F",X"00",X"03",X"00",X"00",X"00",X"00", + X"00",X"00",X"3F",X"FC",X"F5",X"5F",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"55",X"5F",X"F5",X"7C",X"3D",X"F0",X"0F",X"C0",X"03",X"C0",X"03", + X"C0",X"03",X"C0",X"03",X"F0",X"0F",X"7C",X"3D",X"5F",X"F5",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"F5",X"5F",X"3F",X"FC",X"00",X"00", + X"00",X"00",X"00",X"00",X"C0",X"00",X"F0",X"00",X"7F",X"00",X"57",X"00",X"57",X"C0",X"55",X"F0", + X"55",X"70",X"55",X"70",X"55",X"7C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C", + X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"7C",X"55",X"70",X"55",X"70", + X"55",X"F0",X"57",X"C0",X"57",X"00",X"7F",X"00",X"F0",X"00",X"C0",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"C0",X"03",X"C0",X"03",X"F0",X"0F",X"70",X"0D",X"70",X"0D",X"7C",X"3D",X"5C",X"35", + X"5F",X"F5",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"FD",X"7F",X"CD",X"73",X"CD",X"73",X"CF",X"F3",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03", + X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"00",X"00", + X"00",X"00",X"FF",X"FC",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C", + X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C", + X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"55",X"5C",X"FF",X"FC",X"00",X"00", + X"00",X"00",X"03",X"FF",X"03",X"55",X"03",X"55",X"03",X"55",X"03",X"55",X"03",X"55",X"03",X"FF", + X"03",X"FF",X"03",X"55",X"03",X"55",X"03",X"55",X"03",X"55",X"03",X"55",X"03",X"FF",X"00",X"00", + X"00",X"00",X"FF",X"FF",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"D5",X"57", + X"D5",X"57",X"D5",X"57",X"D5",X"57",X"D5",X"57",X"D5",X"57",X"D5",X"57",X"D5",X"57",X"D5",X"57", + X"D5",X"57",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"FF",X"FF",X"00",X"00", + X"00",X"00",X"FF",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"FF",X"C0", + X"FF",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"FF",X"C0",X"00",X"00", + X"00",X"00",X"C0",X"03",X"C0",X"03",X"F0",X"03",X"70",X"03",X"7C",X"03",X"5C",X"03",X"5F",X"03", + X"57",X"03",X"57",X"C3",X"55",X"C3",X"55",X"F3",X"55",X"73",X"55",X"7F",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"FD",X"55",X"CD",X"55",X"CF",X"55",X"C3",X"55",X"C3",X"D5",X"C0",X"D5", + X"C0",X"F5",X"C0",X"35",X"C0",X"3D",X"C0",X"0D",X"C0",X"0F",X"C0",X"03",X"C0",X"03",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"00",X"03",X"00",X"03",X"00",X"0F",X"00",X"0D", + X"00",X"0D",X"00",X"0D",X"00",X"3D",X"00",X"35",X"00",X"35",X"00",X"35",X"00",X"F5",X"00",X"D5", + X"00",X"D5",X"00",X"D5",X"03",X"D5",X"03",X"55",X"03",X"55",X"03",X"55",X"03",X"55",X"0F",X"55", + X"0D",X"55",X"3D",X"57",X"35",X"57",X"35",X"5F",X"35",X"5C",X"35",X"5C",X"3F",X"FC",X"00",X"00", + X"00",X"00",X"FF",X"FF",X"D5",X"57",X"D5",X"57",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"57",X"D5",X"5F",X"F5",X"5C",X"35",X"5C",X"35",X"7C",X"3D",X"70",X"0D",X"70",X"0D",X"7F",X"FD", + X"00",X"00",X"05",X"50",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"05",X"50", + X"00",X"00",X"05",X"40",X"01",X"40",X"01",X"40",X"01",X"40",X"01",X"40",X"01",X"40",X"05",X"50", + X"00",X"00",X"15",X"50",X"10",X"50",X"00",X"50",X"15",X"50",X"14",X"00",X"14",X"10",X"15",X"50", + X"00",X"00",X"15",X"50",X"10",X"50",X"00",X"50",X"05",X"40",X"00",X"50",X"10",X"50",X"15",X"50", + X"00",X"00",X"00",X"50",X"14",X"50",X"14",X"50",X"15",X"54",X"00",X"50",X"00",X"50",X"00",X"50", + X"00",X"00",X"15",X"50",X"14",X"10",X"14",X"00",X"15",X"50",X"00",X"50",X"10",X"50",X"15",X"50", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"00",X"15",X"54",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"15",X"50",X"14",X"50",X"00",X"50",X"00",X"50",X"00",X"50",X"00",X"50",X"00",X"50", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"14",X"05",X"50",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"14",X"15",X"54",X"00",X"14",X"14",X"14",X"15",X"54", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"7F",X"FD",X"70",X"0D",X"F0",X"0F", + X"C0",X"03",X"C0",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"C0",X"00",X"C0",X"00",X"C0",X"00",X"F0",X"00",X"70",X"00", + X"70",X"00",X"70",X"00",X"7C",X"00",X"5C",X"00",X"5C",X"00",X"5C",X"00",X"5F",X"00",X"57",X"00", + X"57",X"00",X"57",X"00",X"57",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"C0",X"55",X"F0", + X"55",X"70",X"D5",X"7C",X"D5",X"5C",X"F5",X"5C",X"35",X"5C",X"35",X"5C",X"3F",X"FC",X"00",X"00", + X"06",X"E4",X"0F",X"FC",X"0D",X"DC",X"15",X"55",X"15",X"55",X"0A",X"A8",X"0A",X"28",X"2A",X"2A", + X"00",X"00",X"05",X"50",X"14",X"14",X"14",X"14",X"14",X"14",X"15",X"54",X"14",X"14",X"14",X"14", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"14",X"15",X"50",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"00",X"14",X"00",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"15",X"50",X"14",X"54",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"54",X"15",X"50", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"00",X"15",X"40",X"14",X"00",X"14",X"14",X"15",X"54", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"00",X"15",X"40",X"14",X"00",X"14",X"00",X"14",X"00", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"00",X"14",X"54",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"14",X"14",X"14",X"14",X"14",X"14",X"15",X"54",X"14",X"14",X"14",X"14",X"14",X"14", + X"00",X"00",X"05",X"50",X"01",X"40",X"01",X"40",X"01",X"40",X"01",X"40",X"01",X"40",X"05",X"50", + X"00",X"00",X"01",X"54",X"00",X"50",X"00",X"50",X"00",X"50",X"14",X"50",X"14",X"50",X"15",X"50", + X"00",X"00",X"14",X"10",X"14",X"50",X"15",X"50",X"15",X"00",X"15",X"50",X"14",X"50",X"14",X"50", + X"00",X"00",X"14",X"00",X"14",X"00",X"14",X"00",X"14",X"00",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"54",X"54",X"55",X"54",X"51",X"14",X"51",X"14",X"50",X"14",X"50",X"14",X"50",X"14", + X"00",X"00",X"50",X"14",X"54",X"14",X"55",X"14",X"55",X"54",X"51",X"54",X"50",X"54",X"50",X"14", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"14",X"15",X"54",X"14",X"00",X"14",X"00",X"14",X"00", + X"00",X"00",X"55",X"50",X"50",X"50",X"50",X"50",X"50",X"50",X"51",X"50",X"51",X"54",X"55",X"54", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"14",X"15",X"50",X"14",X"14",X"14",X"14",X"14",X"14", + X"00",X"00",X"15",X"54",X"14",X"14",X"14",X"00",X"15",X"54",X"00",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"15",X"54",X"15",X"54",X"01",X"40",X"01",X"40",X"01",X"40",X"01",X"40",X"01",X"40", + X"00",X"00",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"14",X"15",X"54", + X"00",X"00",X"14",X"04",X"14",X"04",X"14",X"04",X"14",X"14",X"14",X"50",X"15",X"40",X"15",X"00", + X"00",X"00",X"50",X"14",X"50",X"14",X"50",X"14",X"51",X"14",X"51",X"14",X"55",X"54",X"54",X"54", + X"00",X"00",X"50",X"14",X"54",X"54",X"15",X"50",X"05",X"40",X"15",X"50",X"54",X"54",X"50",X"14", + X"00",X"00",X"14",X"14",X"14",X"14",X"15",X"54",X"05",X"50",X"01",X"40",X"01",X"40",X"01",X"40", + X"00",X"00",X"15",X"54",X"14",X"14",X"00",X"50",X"01",X"40",X"05",X"00",X"14",X"14",X"15",X"54", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AB",X"AA",X"AF",X"AA",X"BF",X"AA",X"FF",X"AB",X"FF",X"AF",X"FF", + X"BF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FA",X"FF",X"EA",X"FF",X"AA",X"FE",X"AA",X"FA",X"AA",X"EA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"56",X"55",X"56",X"55",X"56",X"55",X"AA",X"AA",X"55",X"56",X"55",X"56",X"55",X"56",X"AA",X"AA", + X"AA",X"55",X"AA",X"55",X"AA",X"55",X"AA",X"AA",X"AA",X"56",X"AA",X"56",X"AA",X"56",X"AA",X"AA", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"95",X"55",X"95",X"55",X"95",X"55",X"95",X"55",X"95",X"55",X"95",X"55",X"95",X"55",X"95",X"55", + X"55",X"55",X"55",X"7D",X"55",X"7D",X"55",X"7D",X"55",X"7D",X"55",X"7D",X"55",X"7D",X"55",X"69", + X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"55",X"01",X"AA",X"01",X"80",X"01",X"80",X"01",X"80", + X"01",X"80",X"01",X"80",X"01",X"80",X"01",X"80",X"01",X"80",X"01",X"80",X"01",X"80",X"01",X"80", + X"01",X"80",X"01",X"80",X"01",X"80",X"01",X"AA",X"01",X"55",X"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"55",X"55",X"00",X"00",X"00",X"00",X"00",X"00", + X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA", + X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"D5",X"55",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"55",X"55",X"FF",X"FF", + X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7", + X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"AA",X"A7",X"55",X"57",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"D5",X"5D",X"D5",X"5D",X"D5",X"7D",X"FD",X"75",X"DD",X"7D",X"F5",X"5D",X"DD",X"7D",X"DD",X"75", + X"D5",X"FD",X"D5",X"D5",X"D5",X"D5",X"FD",X"FD",X"DD",X"DD",X"F5",X"FD",X"DD",X"DD",X"DD",X"DD", + X"5D",X"5F",X"7D",X"57",X"75",X"57",X"F7",X"FF",X"D7",X"77",X"F7",X"77",X"77",X"57",X"F7",X"57", + X"7D",X"55",X"5D",X"55",X"5D",X"55",X"7F",X"F5",X"77",X"75",X"77",X"75",X"75",X"75",X"75",X"75", + X"7D",X"75",X"5D",X"75",X"5D",X"75",X"7D",X"7D",X"77",X"5D",X"77",X"5D",X"77",X"7D",X"7D",X"75", + X"75",X"75",X"75",X"75",X"7D",X"7D",X"5D",X"5D",X"5F",X"5D",X"57",X"5D",X"7F",X"7D",X"75",X"75", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"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"A8",X"AA",X"A0",X"AA",X"80",X"AA",X"00",X"A8",X"00",X"A0",X"00",X"00",X"00", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A8",X"AA",X"80",X"AA",X"00",X"A8",X"00",X"80",X"00", + X"AA",X"00",X"A0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"A8",X"A8",X"08",X"80",X"A8",X"A8",X"80",X"08",X"A8",X"A8",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"80",X"A8",X"00",X"80",X"00",X"00",X"00", + X"AA",X"A0",X"A8",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"0A",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"00",X"AA",X"00",X"2A",X"00",X"02",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"2A",X"AA",X"0A",X"AA",X"00",X"AA", + X"00",X"2A",X"00",X"00",X"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"AA",X"AA",X"02",X"AA",X"00",X"2A", + X"40",X"00",X"50",X"00",X"14",X"00",X"05",X"54",X"00",X"05",X"00",X"00",X"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"15",X"40",X"00",X"54",X"00",X"05", + X"00",X"00",X"00",X"08",X"00",X"08",X"00",X"08",X"00",X"08",X"00",X"08",X"00",X"00",X"00",X"00", + X"15",X"54",X"00",X"05",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"55",X"40",X"00",X"54",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"AA",X"AA",X"AA",X"A8",X"AA",X"80", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A8",X"AA",X"80",X"A8",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"00", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A8",X"AA",X"A0",X"AA",X"80", + X"AA",X"80",X"A8",X"00",X"A0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"0F",X"00",X"3F",X"30",X"3C",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"03",X"00",X"30",X"00",X"F0",X"00",X"F0",X"00",X"C3",X"00",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"C0",X"00",X"C0",X"00",X"00",X"00",X"3C",X"00",X"0F",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"3C",X"00",X"FC",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"0F",X"00",X"3F",X"00",X"3C",X"00",X"00",X"00",X"10",X"0F",X"14",X"3F",X"00",X"3C", + X"00",X"0C",X"0F",X"0F",X"3F",X"00",X"3C",X"00",X"00",X"00",X"10",X"0F",X"14",X"3F",X"00",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"02",X"AA",X"02",X"FF",X"02",X"AA", + X"00",X"AA",X"00",X"0A",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"A8",X"00",X"A0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F8",X"00",X"FA",X"00", + X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00", + X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00",X"F0",X"00", + X"00",X"01",X"00",X"05",X"00",X"15",X"00",X"55",X"01",X"55",X"05",X"55",X"15",X"55",X"55",X"55", + X"55",X"55",X"15",X"55",X"00",X"55",X"00",X"05",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F0",X"00",X"FC",X"00", + X"00",X"00",X"00",X"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"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"57",X"55",X"5F",X"55",X"7F",X"55",X"FF",X"57",X"FF",X"5F",X"FF",X"7F",X"FF", + X"99",X"95",X"99",X"95",X"99",X"95",X"99",X"95",X"99",X"95",X"99",X"95",X"99",X"99",X"99",X"99", + X"99",X"59",X"99",X"59",X"99",X"59",X"99",X"59",X"99",X"59",X"99",X"59",X"99",X"59",X"99",X"59", + X"99",X"95",X"99",X"95",X"99",X"95",X"99",X"95",X"99",X"95",X"99",X"AA",X"9A",X"95",X"A9",X"55", + X"99",X"59",X"99",X"59",X"99",X"59",X"99",X"69",X"99",X"A5",X"99",X"95",X"9A",X"95",X"AA",X"55", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FA",X"FF",X"E9",X"FF",X"A5",X"FE",X"95",X"FE",X"55",X"FA",X"57", + X"E9",X"5F",X"A5",X"7F",X"95",X"FF",X"97",X"FF",X"97",X"FF",X"AB",X"FA",X"EA",X"A9",X"E5",X"55", + X"E5",X"55",X"E5",X"55",X"E5",X"55",X"EA",X"55",X"FE",X"55",X"FE",X"55",X"FE",X"57",X"FE",X"FF", + X"FF",X"BF",X"FF",X"BF",X"FF",X"BF",X"FF",X"AF",X"FF",X"E9",X"FF",X"A9",X"FE",X"BA",X"FE",X"FE", + X"FA",X"FE",X"FB",X"FE",X"FB",X"FE",X"FB",X"FE",X"FB",X"FE",X"FB",X"FF",X"FB",X"FF",X"FA",X"FF", + X"FA",X"FF",X"FE",X"BF",X"FE",X"BF",X"FF",X"AF",X"FF",X"EB",X"FF",X"FA",X"FF",X"FF",X"FF",X"FF", + X"FA",X"AA",X"A9",X"55",X"95",X"55",X"55",X"55",X"55",X"FF",X"5F",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FE",X"FF",X"EA",X"FF",X"A9",X"FA",X"95",X"A9",X"55",X"95",X"55",X"55",X"56",X"55",X"5A", + X"55",X"5A",X"55",X"5A",X"55",X"5A",X"55",X"5A",X"55",X"7A",X"55",X"FA",X"FF",X"FA",X"FF",X"FA", + X"FF",X"FA",X"FF",X"FA",X"FF",X"F6",X"FF",X"D6",X"D5",X"56",X"55",X"56",X"55",X"56",X"55",X"5A", + X"A5",X"56",X"AA",X"56",X"AA",X"A6",X"AA",X"AA",X"AA",X"A6",X"AA",X"AA",X"AA",X"BB",X"EA",X"FB", + X"FF",X"FA",X"FF",X"FE",X"FF",X"FE",X"FF",X"F5",X"FF",X"D5",X"AA",X"55",X"FF",X"FF",X"FF",X"FF", + X"AB",X"FF",X"5A",X"FF",X"5A",X"BF",X"F9",X"BF",X"F9",X"AF",X"F9",X"6F",X"E9",X"6F",X"A5",X"6B", + X"95",X"59",X"55",X"5A",X"55",X"5E",X"55",X"5E",X"55",X"5E",X"55",X"7E",X"AA",X"BE",X"AA",X"BF", + X"AA",X"AF",X"AA",X"AD",X"AA",X"AD",X"BF",X"AD",X"BF",X"A9",X"BF",X"A9",X"BF",X"A9",X"AA",X"A9", + X"AA",X"A5",X"AA",X"A5",X"AA",X"A5",X"AA",X"AA",X"AA",X"BF",X"AB",X"FF",X"AF",X"FF",X"AF",X"FF", + X"BF",X"EA",X"BF",X"BF",X"BE",X"BF",X"BE",X"FF",X"FE",X"FF",X"FE",X"FF",X"FE",X"BF",X"FF",X"BF", + X"FF",X"AA",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"BF",X"FF",X"6F",X"FF",X"FB",X"FF",X"FE",X"AA", + X"FF",X"D7",X"FF",X"5D",X"FD",X"59",X"F6",X"57",X"F5",X"D5",X"D5",X"66",X"6D",X"DD",X"56",X"57", + X"55",X"97",X"E7",X"5D",X"55",X"59",X"76",X"57",X"59",X"D5",X"95",X"66",X"9D",X"DD",X"96",X"57", + X"95",X"97",X"A7",X"5D",X"95",X"59",X"B6",X"57",X"99",X"D5",X"95",X"66",X"9D",X"DD",X"96",X"57", + X"9D",X"97",X"A5",X"5D",X"95",X"59",X"A6",X"55",X"E9",X"D5",X"FA",X"55",X"FE",X"95",X"FF",X"95", + X"BF",X"A5",X"BF",X"E5",X"AF",X"E5",X"EF",X"E5",X"EF",X"E9",X"EF",X"F9",X"EF",X"F9",X"AF",X"F9", + X"BF",X"F9",X"FF",X"E9",X"FF",X"E5",X"FF",X"A5",X"FF",X"95",X"FE",X"95",X"EA",X"55",X"A5",X"55", + X"55",X"9F",X"75",X"57",X"57",X"5D",X"65",X"55",X"55",X"75",X"5D",X"55",X"96",X"5D",X"55",X"55", + X"95",X"5B",X"56",X"75",X"5D",X"55",X"96",X"75",X"5D",X"56",X"55",X"75",X"75",X"95",X"56",X"56", + X"95",X"5F",X"56",X"5E",X"5D",X"7F",X"96",X"6E",X"5D",X"FF",X"55",X"EB",X"57",X"EF",X"5F",X"BE", + X"5E",X"EF",X"7F",X"FE",X"FB",X"BF",X"7F",X"EE",X"55",X"7F",X"55",X"55",X"55",X"55",X"55",X"55", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",X"FF",X"DF",X"FF",X"97",X"FF",X"65",X"FF",X"55",X"7F", + X"77",X"5F",X"99",X"D7",X"5D",X"9E",X"75",X"7F",X"D5",X"EF",X"9D",X"FE",X"67",X"EF",X"5E",X"FE", + X"77",X"EF",X"5F",X"BF",X"7E",X"FE",X"7F",X"FF",X"7B",X"EF",X"7F",X"FE",X"6F",X"EF",X"FE",X"FE", + X"FE",X"FF",X"EF",X"FB",X"FF",X"BF",X"BF",X"BF",X"EF",X"FE",X"FE",X"EF",X"FF",X"BE",X"BB",X"FF", + X"EB",X"FF",X"FF",X"BB",X"BF",X"FF",X"EF",X"BE",X"FE",X"FF",X"FF",X"FB",X"55",X"7F",X"55",X"57", + X"FE",X"FF",X"EF",X"EF",X"FF",X"FF",X"BE",X"EF",X"FF",X"FF",X"FB",X"FB",X"EF",X"BF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"BF",X"FF",X"FF",X"FF",X"FB",X"FF",X"EF",X"BF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"BF",X"FF",X"FF",X"FF",X"FF",X"FF",X"EF",X"FF",X"BE",X"FF", + X"FE",X"FB",X"BF",X"FF",X"FF",X"EE",X"FB",X"FF",X"FF",X"ED",X"EF",X"F5",X"FB",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"D5",X"55",X"B9",X"55",X"FF",X"55",X"EE",X"D5",X"FB",X"D5",X"BF",X"95", + X"BE",X"55",X"ED",X"55",X"F5",X"55",X"D5",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"FE",X"F5",X"EF",X"ED",X"FF",X"FF",X"BE",X"EF",X"FF",X"FF",X"FB",X"FB",X"EF",X"BF",X"FF",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"55",X"40",X"AA",X"40",X"02",X"40",X"02",X"40",X"02",X"40", + X"02",X"40",X"02",X"40",X"02",X"40",X"02",X"40",X"02",X"40",X"02",X"40",X"02",X"40",X"02",X"40", + X"02",X"40",X"02",X"40",X"02",X"40",X"AA",X"40",X"55",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"02",X"55",X"52",X"AA",X"92",X"00",X"02",X"00",X"02",X"00",X"00", + X"05",X"50",X"14",X"14",X"11",X"44",X"11",X"04",X"11",X"04",X"11",X"44",X"14",X"14",X"05",X"50", + X"0F",X"FC",X"03",X"B0",X"0E",X"AC",X"3E",X"FC",X"FE",X"AF",X"FF",X"EF",X"FE",X"AF",X"3F",X"BC", + X"0F",X"F0",X"3F",X"FC",X"F5",X"5F",X"FD",X"5F",X"7D",X"DD",X"6F",X"F9",X"17",X"D4",X"05",X"50", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"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"00",X"A8",X"00",X"88",X"00",X"88",X"00",X"88",X"00",X"A8",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"A8",X"A8",X"88",X"88",X"88",X"88",X"88",X"88",X"A8",X"A8",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"A8",X"00",X"08",X"00",X"A8",X"00",X"80",X"00",X"A8",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"A8",X"00",X"80",X"00",X"A8",X"00",X"08",X"00",X"A8",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"A2",X"A2",X"22",X"22",X"82",X"22",X"22",X"22",X"A2",X"A2",X"00",X"00", + X"00",X"00",X"00",X"00",X"A2",X"22",X"22",X"22",X"22",X"22",X"22",X"20",X"22",X"A2",X"00",X"00", + X"00",X"00",X"00",X"00",X"A0",X"00",X"01",X"55",X"A1",X"AA",X"20",X"00",X"A0",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"0F",X"00",X"3F",X"00",X"FF",X"03",X"FF",X"0F",X"FF",X"3F",X"FF", + X"00",X"00",X"00",X"00",X"C0",X"00",X"F0",X"00",X"FC",X"00",X"FF",X"00",X"FF",X"C0",X"FF",X"F0", + X"00",X"00",X"00",X"03",X"00",X"0F",X"00",X"3F",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"03",X"FF",X"03",X"FF",X"0F",X"FF",X"0F",X"FF", + X"FF",X"FC",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"FF",X"00",X"FF",X"C0",X"FF",X"C0", + X"00",X"00",X"00",X"00",X"C0",X"00",X"F0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"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"03", + X"0F",X"FF",X"3F",X"FF",X"3F",X"FF",X"3F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"C0",X"FF",X"F0",X"FF",X"F0",X"FF",X"F0",X"FF",X"FC",X"FF",X"FC",X"FF",X"FF",X"FF",X"FF", + X"00",X"03",X"00",X"0F",X"00",X"0F",X"00",X"0F",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + 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"00",X"00",X"00", + X"00",X"00",X"C0",X"00",X"C0",X"00",X"C0",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"EA",X"AA",X"FA",X"AA",X"FE",X"AA",X"FF",X"AA", + X"FF",X"EA",X"FF",X"FA",X"FF",X"FE",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"EA",X"AA",X"FA",X"AA",X"FE",X"AA",X"FF",X"AA", + X"FF",X"EA",X"FF",X"FA",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"BF",X"FF",X"AF",X"FF",X"AB",X"FF",X"AA",X"FF",X"AA",X"BF",X"AA",X"AF",X"AA",X"AB",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AB",X"AA",X"AF",X"AA",X"BF",X"AA",X"FF", + X"AB",X"FF",X"AF",X"FF",X"BF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AB",X"AA",X"AF",X"AA",X"BF",X"AA",X"FF", + X"AB",X"FF",X"AF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FE",X"FF",X"FA",X"FF",X"EA",X"FF",X"AA",X"FE",X"AA",X"FA",X"AA",X"EA",X"AA",X"AA",X"AA", + X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA", + X"FF",X"FF",X"3F",X"FF",X"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"FF",X"FF",X"FF",X"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"FC",X"FF",X"FF",X"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"FF",X"FF",X"FF",X"00",X"F0",X"00",X"30",X"00",X"3C",X"00",X"0C",X"00",X"0F",X"00",X"03", + X"C0",X"00",X"C0",X"00",X"F0",X"00",X"30",X"00",X"3C",X"00",X"0C",X"00",X"0F",X"00",X"03",X"00", + X"03",X"C0",X"00",X"C0",X"00",X"F0",X"00",X"30",X"00",X"3C",X"00",X"0C",X"00",X"0F",X"00",X"03", + X"FF",X"FF",X"FF",X"FF",X"F0",X"00",X"30",X"00",X"3C",X"00",X"0C",X"00",X"0F",X"00",X"03",X"00", + X"00",X"00",X"3F",X"FF",X"FF",X"FF",X"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"FF",X"FF",X"FC",X"00",X"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"03",X"00",X"0F",X"00",X"0C",X"00",X"3C",X"00",X"30",X"00",X"F0", + X"00",X"C0",X"FF",X"FF",X"FF",X"FF",X"0F",X"00",X"0C",X"00",X"3C",X"00",X"30",X"00",X"F0",X"00", + X"C0",X"00",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"C0",X"03",X"C0",X"03",X"00",X"0F",X"00",X"0C",X"00",X"3C",X"00",X"30",X"00",X"F0",X"00", + X"FF",X"FF",X"FF",X"FF",X"00",X"03",X"00",X"0F",X"00",X"0C",X"00",X"3C",X"00",X"30",X"00",X"F0", + X"00",X"00",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55",X"D5",X"55", + X"FF",X"FF",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA", + X"FF",X"FF",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA",X"DA",X"AA", + X"FF",X"FF",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA",X"EA",X"AA"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_1.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_1.vhd new file mode 100644 index 00000000..5429782a --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_1.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity domino_sp_bits_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 domino_sp_bits_1 is + type rom is array(0 to 8191) 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"90",X"00",X"00",X"00",X"29",X"99", + X"00",X"99",X"29",X"11",X"00",X"92",X"24",X"49",X"00",X"72",X"24",X"59",X"00",X"72",X"44",X"69", + X"00",X"92",X"44",X"11",X"00",X"99",X"24",X"11",X"00",X"00",X"29",X"99",X"00",X"00",X"29",X"90", + X"00",X"00",X"90",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"A9",X"00",X"00",X"CC",X"29",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"9C",X"00", + X"00",X"9C",X"94",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"9C",X"00", + X"00",X"99",X"CC",X"00",X"00",X"44",X"C9",X"00",X"00",X"44",X"99",X"90",X"00",X"49",X"44",X"90", + X"00",X"99",X"44",X"90",X"00",X"94",X"94",X"90",X"00",X"94",X"44",X"90",X"00",X"94",X"44",X"90", + X"00",X"99",X"44",X"90",X"00",X"92",X"99",X"90",X"00",X"92",X"22",X"90",X"00",X"99",X"22",X"00", + X"00",X"91",X"22",X"00",X"00",X"11",X"22",X"00",X"00",X"11",X"22",X"00",X"00",X"11",X"99",X"00", + X"00",X"99",X"91",X"00",X"00",X"11",X"91",X"00",X"00",X"91",X"99",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"C9",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"AA",X"00",X"00",X"9C",X"2A",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"9C",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"99",X"00",X"00",X"99",X"44",X"90", + X"00",X"99",X"44",X"90",X"00",X"94",X"94",X"90",X"00",X"94",X"44",X"90",X"00",X"94",X"44",X"90", + X"00",X"94",X"44",X"90",X"00",X"99",X"99",X"90",X"00",X"99",X"22",X"90",X"00",X"92",X"99",X"90", + X"00",X"92",X"91",X"00",X"00",X"92",X"11",X"00",X"00",X"92",X"11",X"00",X"00",X"99",X"11",X"00", + X"00",X"91",X"99",X"00",X"00",X"91",X"11",X"00",X"00",X"99",X"91",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"C9",X"00",X"00",X"09",X"CC",X"00", + X"00",X"09",X"44",X"00",X"00",X"00",X"94",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"9C",X"00",X"00",X"00",X"C9",X"00",X"00",X"99",X"99",X"99",X"00",X"99",X"D9",X"99", + X"00",X"F9",X"D4",X"99",X"00",X"99",X"44",X"99",X"00",X"99",X"94",X"99",X"00",X"99",X"94",X"99", + X"00",X"99",X"49",X"99",X"00",X"99",X"D9",X"99",X"00",X"99",X"D9",X"99",X"00",X"99",X"D9",X"99", + X"00",X"99",X"D9",X"99",X"00",X"99",X"D9",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"09",X"11", + X"00",X"19",X"00",X"11",X"00",X"99",X"00",X"19",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"C9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"CC",X"00", + X"00",X"99",X"44",X"00",X"00",X"09",X"94",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9C",X"00", + X"00",X"00",X"CC",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"99",X"90",X"00",X"99",X"99",X"99", + X"00",X"99",X"99",X"99",X"00",X"F9",X"99",X"99",X"00",X"99",X"94",X"99",X"00",X"99",X"49",X"99", + X"00",X"99",X"44",X"99",X"00",X"99",X"C9",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99", + X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99", + X"00",X"09",X"99",X"00",X"00",X"09",X"11",X"00",X"00",X"09",X"11",X"00",X"00",X"09",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00", + X"00",X"00",X"99",X"99",X"00",X"09",X"44",X"44",X"00",X"99",X"44",X"44",X"00",X"94",X"44",X"94", + X"00",X"44",X"44",X"99",X"00",X"49",X"44",X"94",X"00",X"49",X"44",X"99",X"00",X"44",X"44",X"9C", + X"00",X"44",X"99",X"9C",X"00",X"99",X"22",X"99",X"00",X"44",X"22",X"00",X"00",X"99",X"29",X"00", + X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"9C",X"00", + X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90", + X"00",X"00",X"CC",X"90",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00", + X"00",X"09",X"99",X"90",X"00",X"99",X"44",X"99",X"00",X"94",X"44",X"49",X"00",X"44",X"44",X"44", + X"00",X"49",X"44",X"44",X"00",X"49",X"44",X"99",X"00",X"44",X"44",X"09",X"00",X"44",X"99",X"09", + X"00",X"99",X"99",X"09",X"00",X"44",X"22",X"09",X"00",X"99",X"22",X"09",X"00",X"9C",X"99",X"09", + X"00",X"9C",X"29",X"99",X"00",X"09",X"99",X"90",X"00",X"00",X"90",X"90",X"00",X"00",X"90",X"90", + X"00",X"00",X"90",X"90",X"00",X"00",X"90",X"90",X"00",X"00",X"90",X"90",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"A9", + X"00",X"00",X"CC",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"9C",X"00",X"00",X"99",X"CC", + X"00",X"00",X"CC",X"CC",X"00",X"00",X"CC",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"99", + X"00",X"00",X"CC",X"99",X"00",X"00",X"9C",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"44",X"94", + X"99",X"09",X"44",X"94",X"91",X"09",X"99",X"99",X"91",X"99",X"99",X"90",X"91",X"99",X"44",X"99", + X"91",X"99",X"44",X"29",X"91",X"92",X"99",X"22",X"91",X"92",X"99",X"92",X"91",X"22",X"00",X"22", + X"99",X"29",X"00",X"22",X"00",X"99",X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"91", + X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"C9",X"00",X"00",X"CC",X"99",X"00",X"00",X"C9",X"C9",X"00",X"00",X"CC",X"CC", + X"00",X"00",X"99",X"CC",X"00",X"00",X"CC",X"CC",X"00",X"00",X"CC",X"99",X"00",X"00",X"C9",X"99", + X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"C9",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"99", + X"00",X"09",X"44",X"94",X"00",X"99",X"44",X"94",X"00",X"29",X"99",X"99",X"00",X"29",X"99",X"00", + X"00",X"29",X"44",X"00",X"00",X"29",X"99",X"00",X"00",X"22",X"29",X"00",X"00",X"99",X"29",X"00", + X"00",X"99",X"99",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"00",X"00",X"00",X"29",X"00",X"00", + X"00",X"29",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"C9",X"A9",X"00",X"00",X"CC",X"9C",X"00",X"00",X"CC",X"9C",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"49",X"00", + X"00",X"CC",X"49",X"00",X"00",X"99",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"94",X"49",X"00", + X"00",X"99",X"44",X"00",X"00",X"92",X"99",X"00",X"00",X"99",X"22",X"00",X"00",X"91",X"22",X"00", + X"00",X"11",X"22",X"00",X"00",X"11",X"92",X"00",X"00",X"11",X"99",X"00",X"00",X"99",X"91",X"00", + X"00",X"11",X"99",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"CC",X"99",X"00",X"09",X"CC",X"99",X"00",X"00",X"99",X"90", + X"00",X"00",X"29",X"90",X"00",X"00",X"A9",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"CC",X"90", + X"00",X"09",X"9C",X"99",X"00",X"00",X"99",X"90",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"90", + X"00",X"09",X"CC",X"90",X"00",X"99",X"9C",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"44",X"94", + X"00",X"99",X"94",X"94",X"00",X"94",X"99",X"94",X"00",X"99",X"94",X"44",X"00",X"00",X"44",X"99", + X"00",X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"92",X"00",X"00",X"00",X"99",X"90", + X"00",X"00",X"90",X"90",X"00",X"00",X"90",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90", + X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"90",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"CC",X"00",X"00",X"CC",X"CC",X"90",X"00",X"CC",X"99",X"90",X"00",X"C9",X"44",X"90", + X"00",X"99",X"44",X"90",X"00",X"94",X"44",X"90",X"00",X"94",X"44",X"90",X"00",X"99",X"94",X"90", + X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"CC",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00", + X"00",X"99",X"CC",X"90",X"00",X"99",X"CC",X"90",X"00",X"C9",X"99",X"90",X"00",X"CC",X"44",X"90", + X"00",X"C9",X"44",X"90",X"00",X"99",X"44",X"90",X"00",X"44",X"44",X"00",X"00",X"94",X"44",X"00", + X"00",X"94",X"44",X"00",X"00",X"94",X"99",X"00",X"00",X"94",X"44",X"00",X"00",X"94",X"99",X"00", + X"00",X"99",X"22",X"00",X"00",X"92",X"22",X"00",X"00",X"92",X"99",X"00",X"00",X"92",X"91",X"00", + X"00",X"99",X"11",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"11",X"00",X"00",X"91",X"11",X"00", + X"00",X"99",X"11",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"90",X"00",X"00",X"99",X"90",X"09",X"99",X"9A",X"90", + X"9D",X"DD",X"92",X"90",X"99",X"99",X"99",X"90",X"99",X"99",X"CC",X"90",X"99",X"F9",X"CC",X"90", + X"99",X"99",X"99",X"90",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"9C",X"00", + X"CC",X"99",X"C9",X"00",X"CC",X"99",X"CC",X"00",X"CC",X"F9",X"99",X"90",X"99",X"99",X"99",X"90", + X"99",X"99",X"44",X"90",X"9D",X"D9",X"44",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"49",X"00", + X"99",X"99",X"44",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"22",X"00",X"99",X"99",X"29",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"29",X"00",X"99",X"99",X"99",X"00",X"99",X"F9",X"29",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"19",X"99",X"00",X"00",X"19",X"19",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"90",X"00",X"00",X"2A",X"90",X"00",X"00",X"99",X"90", + X"00",X"00",X"DD",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"49",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9", + X"00",X"00",X"99",X"C9",X"00",X"00",X"DD",X"C9",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"19",X"19",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"90",X"00",X"00",X"CC",X"90",X"00",X"09",X"CC",X"90",X"00",X"09",X"99",X"90", + X"00",X"09",X"99",X"90",X"00",X"09",X"99",X"90",X"00",X"09",X"99",X"90",X"00",X"09",X"99",X"90", + X"00",X"09",X"CC",X"90",X"00",X"00",X"CC",X"90",X"00",X"99",X"CC",X"99",X"00",X"94",X"CC",X"94", + X"00",X"94",X"99",X"44",X"00",X"94",X"99",X"44",X"00",X"99",X"44",X"49",X"00",X"09",X"44",X"99", + X"00",X"00",X"44",X"90",X"00",X"00",X"49",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"44",X"90", + X"00",X"00",X"99",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"90", + X"00",X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00", + X"00",X"00",X"22",X"90",X"00",X"00",X"99",X"19",X"00",X"00",X"19",X"19",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"40",X"00",X"09",X"99",X"40",X"00",X"09",X"9A",X"40",X"00",X"09",X"9A",X"04", + X"00",X"09",X"AA",X"04",X"00",X"09",X"AA",X"40",X"00",X"9C",X"99",X"40",X"00",X"9C",X"CC",X"40", + X"00",X"9C",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"94",X"00", + X"00",X"49",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"94",X"00",X"00",X"94",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"09",X"44",X"00",X"00",X"09",X"99",X"09",X"00",X"09",X"99",X"09", + X"00",X"00",X"99",X"09",X"00",X"00",X"29",X"99",X"00",X"00",X"22",X"91",X"00",X"00",X"22",X"91", + X"00",X"00",X"22",X"11",X"00",X"00",X"92",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"CC",X"00", + X"00",X"09",X"C9",X"00",X"00",X"09",X"99",X"00",X"00",X"9C",X"9C",X"00",X"00",X"9C",X"CC",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"49",X"00", + X"00",X"99",X"99",X"09",X"00",X"44",X"CC",X"99",X"00",X"44",X"99",X"49",X"00",X"44",X"94",X"49", + X"00",X"49",X"44",X"99",X"00",X"49",X"99",X"00",X"00",X"49",X"94",X"00",X"00",X"49",X"44",X"09", + X"00",X"49",X"94",X"09",X"00",X"49",X"94",X"09",X"00",X"49",X"99",X"99",X"00",X"49",X"99",X"29", + X"00",X"49",X"99",X"29",X"00",X"49",X"99",X"99",X"00",X"99",X"90",X"00",X"00",X"09",X"90",X"00", + X"00",X"09",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"90",X"AA",X"00",X"99",X"C9",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"CC",X"AA", + X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"AA",X"00",X"C9",X"CC",X"0A",X"00",X"C9",X"CC",X"00", + X"00",X"CC",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"9C",X"00",X"00",X"49",X"CC",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"44",X"00", + X"00",X"49",X"44",X"00",X"00",X"49",X"99",X"00",X"00",X"49",X"94",X"00",X"00",X"49",X"44",X"09", + X"00",X"49",X"94",X"09",X"00",X"49",X"94",X"09",X"00",X"49",X"99",X"99",X"00",X"99",X"99",X"29", + X"00",X"49",X"99",X"29",X"00",X"49",X"99",X"99",X"00",X"99",X"90",X"00",X"00",X"09",X"90",X"00", + X"00",X"09",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"DD",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"9F",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"D9",X"00",X"00",X"09",X"9D",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90", + X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"D9",X"90",X"00",X"99",X"D9",X"99", + X"00",X"99",X"D9",X"99",X"00",X"DD",X"DD",X"DD",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99", + X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00", + X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00", + X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9D",X"00", + X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00", + X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"9D",X"00", + X"00",X"00",X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"D9",X"90",X"00",X"00",X"9D",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"D9",X"00",X"00",X"00",X"9D",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99", + X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99", + X"00",X"00",X"9D",X"99",X"00",X"00",X"9D",X"99",X"00",X"00",X"99",X"9D",X"00",X"00",X"99",X"DD", + X"00",X"00",X"99",X"D9",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99", + X"00",X"00",X"D9",X"99",X"00",X"00",X"DD",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"DD",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"F9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"DD",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"F9",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"FF",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"D9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00", + X"00",X"F9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"DD",X"00",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"09",X"9F",X"99",X"00",X"09",X"99",X"99",X"00", + X"99",X"99",X"99",X"00",X"9D",X"DD",X"DD",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"F9",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"F9",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"DD",X"D9",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"FF",X"00",X"00",X"99",X"99",X"00", + X"00",X"DD",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"CC",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"9E",X"99", + X"00",X"CC",X"EC",X"C9",X"00",X"9C",X"EC",X"C9",X"00",X"CC",X"C9",X"C9",X"00",X"9C",X"99",X"99", + X"00",X"9C",X"CC",X"99",X"00",X"9C",X"99",X"99",X"00",X"9C",X"9F",X"99",X"00",X"9C",X"99",X"99", + X"09",X"99",X"9F",X"99",X"09",X"99",X"99",X"99",X"09",X"99",X"44",X"99",X"09",X"D9",X"CC",X"99", + X"09",X"D9",X"99",X"99",X"09",X"D9",X"99",X"99",X"09",X"D9",X"99",X"99",X"09",X"99",X"99",X"99", + X"09",X"99",X"44",X"CC",X"09",X"99",X"44",X"CC",X"09",X"99",X"44",X"CC",X"09",X"99",X"49",X"CC", + X"09",X"99",X"99",X"9C",X"99",X"99",X"99",X"99",X"9C",X"99",X"99",X"CC",X"99",X"99",X"C9",X"CC", + X"09",X"99",X"C9",X"CE",X"09",X"99",X"CC",X"CE",X"09",X"99",X"CC",X"EC",X"09",X"99",X"CC",X"99", + X"09",X"99",X"CC",X"99",X"09",X"C9",X"99",X"BB",X"09",X"CC",X"BB",X"BB",X"09",X"99",X"BB",X"BB", + X"09",X"BB",X"BB",X"BB",X"09",X"BB",X"9B",X"BB",X"09",X"BB",X"9B",X"BB",X"00",X"BB",X"9B",X"BB", + X"00",X"BB",X"9B",X"BB",X"00",X"BB",X"9B",X"BB",X"00",X"BB",X"9B",X"BB",X"00",X"BB",X"99",X"BB", + X"00",X"99",X"9B",X"BB",X"00",X"EE",X"9B",X"B9",X"00",X"77",X"9B",X"B9",X"00",X"77",X"99",X"B9", + X"00",X"77",X"99",X"B9",X"00",X"77",X"9B",X"B9",X"00",X"99",X"9B",X"B9",X"00",X"77",X"9B",X"B9", + X"00",X"77",X"B9",X"99",X"00",X"99",X"BB",X"BB",X"00",X"00",X"BB",X"BB",X"00",X"00",X"99",X"99", + X"00",X"00",X"97",X"79",X"00",X"00",X"99",X"99",X"00",X"00",X"97",X"90",X"00",X"00",X"99",X"90", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"95",X"55",X"00",X"00",X"22",X"59",X"00",X"00",X"99",X"59",X"00", + X"09",X"22",X"99",X"00",X"09",X"55",X"90",X"00",X"99",X"55",X"00",X"90",X"9F",X"59",X"99",X"99", + X"99",X"59",X"95",X"99",X"99",X"99",X"55",X"99",X"95",X"99",X"55",X"99",X"99",X"55",X"55",X"59", + X"09",X"99",X"99",X"59",X"00",X"00",X"99",X"55",X"00",X"00",X"99",X"55",X"00",X"00",X"55",X"55", + X"00",X"00",X"55",X"55",X"00",X"00",X"55",X"55",X"00",X"00",X"99",X"55",X"00",X"00",X"59",X"59", + X"00",X"00",X"55",X"99",X"00",X"00",X"55",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"77", + X"00",X"00",X"95",X"99",X"00",X"00",X"95",X"59",X"00",X"00",X"55",X"99",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"95",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"92",X"00",X"00",X"09",X"99",X"00",X"00", + X"09",X"55",X"99",X"00",X"99",X"55",X"59",X"00",X"9F",X"99",X"95",X"90",X"99",X"59",X"99",X"99", + X"99",X"59",X"55",X"99",X"95",X"99",X"55",X"99",X"99",X"94",X"55",X"99",X"09",X"44",X"59",X"59", + X"00",X"44",X"99",X"59",X"00",X"44",X"55",X"55",X"00",X"99",X"99",X"55",X"00",X"99",X"99",X"55", + X"00",X"99",X"55",X"55",X"99",X"55",X"55",X"55",X"97",X"59",X"99",X"55",X"99",X"99",X"00",X"55", + X"99",X"90",X"00",X"95",X"95",X"00",X"00",X"99",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"09",X"9C",X"00",X"00",X"09",X"9C",X"00", + X"00",X"09",X"9C",X"00",X"00",X"09",X"9C",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"CC",X"00", + X"00",X"09",X"CC",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"99",X"00",X"00",X"94",X"94",X"99", + X"00",X"99",X"44",X"99",X"00",X"99",X"44",X"99",X"00",X"97",X"94",X"99",X"00",X"97",X"99",X"99", + X"00",X"99",X"9C",X"99",X"00",X"99",X"CC",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"22",X"99", + X"00",X"9F",X"22",X"99",X"00",X"99",X"22",X"99",X"00",X"99",X"22",X"99",X"00",X"99",X"22",X"99", + X"00",X"00",X"99",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"C9",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"C9",X"00", + X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"9C",X"CC",X"00",X"00",X"9C",X"CC",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"99",X"99",X"00",X"49",X"94",X"99", + X"00",X"99",X"44",X"99",X"00",X"99",X"44",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"44",X"99", + X"00",X"99",X"44",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"22",X"99",X"00",X"F9",X"22",X"99", + X"00",X"99",X"99",X"91",X"00",X"99",X"99",X"91",X"00",X"92",X"99",X"11",X"00",X"92",X"00",X"19", + X"00",X"19",X"00",X"19",X"00",X"11",X"00",X"99",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"09",X"CC",X"00",X"09",X"99",X"C9",X"00", + X"99",X"99",X"C9",X"00",X"9C",X"99",X"C9",X"00",X"9C",X"9C",X"C9",X"00",X"99",X"9C",X"CC",X"00", + X"09",X"9C",X"CC",X"00",X"09",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"94",X"99",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"99",X"00",X"00",X"99",X"94",X"00", + X"00",X"99",X"44",X"00",X"00",X"09",X"44",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"44",X"00", + X"00",X"09",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"09",X"00",X"00",X"22",X"99", + X"00",X"09",X"99",X"91",X"00",X"99",X"09",X"91",X"00",X"92",X"00",X"11",X"00",X"92",X"00",X"19", + X"00",X"19",X"00",X"19",X"00",X"11",X"00",X"99",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"60",X"99",X"06",X"00",X"00",X"99",X"06",X"05",X"09",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"99",X"9F",X"00",X"00",X"99",X"FF",X"99", + X"03",X"C9",X"FF",X"C9",X"00",X"99",X"9F",X"C9",X"00",X"CC",X"C9",X"C9",X"00",X"9C",X"C9",X"99", + X"00",X"9C",X"9C",X"99",X"00",X"99",X"CC",X"99",X"00",X"9C",X"C9",X"99",X"00",X"9C",X"99",X"99", + X"09",X"99",X"49",X"99",X"09",X"99",X"44",X"99",X"09",X"99",X"99",X"99",X"09",X"D9",X"C9",X"99", + X"09",X"D9",X"99",X"99",X"09",X"D9",X"99",X"99",X"09",X"D9",X"99",X"9C",X"09",X"99",X"99",X"CC", + X"09",X"99",X"94",X"CC",X"09",X"99",X"94",X"CC",X"09",X"99",X"44",X"CC",X"09",X"99",X"99",X"99", + X"99",X"09",X"99",X"00",X"90",X"99",X"09",X"90",X"00",X"09",X"09",X"99",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"44",X"00",X"00",X"94",X"4A",X"00",X"00",X"94",X"4A",X"99", + X"00",X"44",X"EA",X"49",X"00",X"94",X"E4",X"49",X"00",X"44",X"49",X"49",X"00",X"94",X"99",X"99", + X"00",X"94",X"44",X"99",X"00",X"94",X"99",X"99",X"00",X"94",X"F9",X"99",X"00",X"94",X"99",X"99", + X"09",X"99",X"F9",X"99",X"09",X"99",X"F9",X"99",X"09",X"99",X"99",X"99",X"09",X"D9",X"44",X"99", + X"09",X"D9",X"99",X"99",X"09",X"D9",X"99",X"99",X"09",X"D9",X"99",X"99",X"09",X"99",X"99",X"99", + X"09",X"99",X"44",X"CC",X"09",X"99",X"44",X"CC",X"09",X"99",X"44",X"CC",X"09",X"99",X"49",X"CC", + X"09",X"99",X"99",X"9C",X"99",X"99",X"99",X"99",X"9C",X"99",X"99",X"CC",X"99",X"99",X"C9",X"CC", + X"09",X"99",X"C9",X"CE",X"09",X"99",X"CC",X"CE",X"09",X"99",X"CC",X"EC",X"09",X"99",X"CC",X"99", + X"09",X"99",X"CC",X"99",X"09",X"C9",X"99",X"FF",X"09",X"CC",X"FF",X"44",X"09",X"99",X"FF",X"44", + X"09",X"44",X"FF",X"FF",X"09",X"FF",X"F9",X"FF",X"09",X"F4",X"F9",X"44",X"09",X"F4",X"99",X"44", + X"09",X"99",X"09",X"99",X"00",X"EE",X"09",X"EE",X"00",X"EE",X"99",X"CC",X"00",X"CE",X"9E",X"99", + X"00",X"CE",X"9C",X"90",X"00",X"CC",X"9E",X"90",X"00",X"CE",X"9C",X"99",X"00",X"CC",X"9E",X"CC", + X"09",X"EC",X"99",X"EC",X"09",X"CE",X"09",X"CE",X"99",X"9C",X"00",X"E9",X"91",X"9C",X"00",X"99", + X"9B",X"99",X"99",X"9B",X"9B",X"BB",X"9B",X"BB",X"99",X"9B",X"B9",X"BB",X"09",X"BB",X"99",X"BB", + X"09",X"9B",X"99",X"9B",X"09",X"BB",X"BB",X"99",X"0B",X"B9",X"BB",X"BB",X"09",X"99",X"99",X"B9", + X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"12", + X"00",X"99",X"00",X"22",X"90",X"CC",X"00",X"99",X"40",X"C9",X"00",X"9B",X"40",X"99",X"09",X"99", + X"40",X"C9",X"99",X"E9",X"22",X"C9",X"99",X"99",X"A0",X"C9",X"97",X"45",X"A0",X"99",X"97",X"45", + X"A0",X"96",X"97",X"45",X"F0",X"66",X"97",X"45",X"00",X"66",X"97",X"45",X"00",X"69",X"97",X"45", + X"00",X"99",X"97",X"45",X"00",X"92",X"97",X"45",X"00",X"26",X"97",X"45",X"00",X"66",X"97",X"45", + X"00",X"99",X"99",X"47",X"00",X"AA",X"09",X"47",X"00",X"AA",X"00",X"47",X"00",X"A9",X"00",X"99", + X"00",X"99",X"00",X"95",X"00",X"9E",X"00",X"95",X"00",X"99",X"00",X"99",X"00",X"9E",X"09",X"99", + X"00",X"99",X"99",X"59",X"00",X"99",X"9B",X"59",X"00",X"99",X"99",X"99",X"00",X"99",X"09",X"00", + X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"12", + X"F0",X"99",X"00",X"22",X"A0",X"CC",X"00",X"99",X"A0",X"C9",X"00",X"9B",X"A0",X"99",X"09",X"99", + X"22",X"C9",X"99",X"99",X"40",X"C9",X"97",X"45",X"40",X"C9",X"97",X"45",X"40",X"99",X"97",X"45", + X"90",X"96",X"97",X"45",X"00",X"66",X"97",X"45",X"00",X"66",X"97",X"45",X"00",X"69",X"97",X"45", + X"00",X"99",X"97",X"45",X"00",X"92",X"97",X"45",X"00",X"26",X"97",X"45",X"00",X"66",X"99",X"47", + X"00",X"66",X"09",X"47",X"00",X"99",X"00",X"47",X"00",X"99",X"00",X"99",X"00",X"99",X"00",X"95", + X"00",X"A9",X"90",X"95",X"00",X"AA",X"90",X"99",X"09",X"9A",X"90",X"90",X"99",X"9A",X"90",X"99", + X"99",X"99",X"00",X"59",X"99",X"09",X"00",X"59",X"09",X"00",X"00",X"99",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00", + X"00",X"00",X"42",X"00",X"00",X"00",X"C2",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00", + X"00",X"99",X"CC",X"90",X"00",X"9A",X"C9",X"99",X"00",X"AA",X"CC",X"A9",X"00",X"AA",X"CC",X"AA", + X"00",X"AA",X"99",X"A9",X"00",X"9A",X"A9",X"99",X"00",X"C9",X"A9",X"9C",X"00",X"99",X"29",X"99", + X"00",X"92",X"A2",X"99",X"99",X"92",X"AA",X"90",X"90",X"9A",X"AA",X"90",X"99",X"9A",X"AA",X"99", + X"94",X"9A",X"A2",X"09",X"94",X"9A",X"2A",X"99",X"94",X"99",X"AA",X"99",X"94",X"59",X"99",X"99", + X"94",X"59",X"00",X"09",X"94",X"59",X"00",X"09",X"94",X"59",X"00",X"09",X"99",X"99",X"00",X"09", + X"00",X"22",X"00",X"09",X"00",X"99",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00", + X"00",X"00",X"44",X"00",X"00",X"00",X"C4",X"00",X"00",X"00",X"CC",X"00",X"00",X"99",X"CC",X"90", + X"00",X"9A",X"CC",X"99",X"00",X"AA",X"CC",X"A9",X"00",X"AA",X"CC",X"AA",X"00",X"AA",X"CC",X"A9", + X"00",X"9A",X"99",X"99",X"00",X"C9",X"A9",X"9C",X"00",X"99",X"A9",X"99",X"00",X"92",X"29",X"99", + X"99",X"92",X"A2",X"90",X"90",X"92",X"AA",X"90",X"99",X"9A",X"AA",X"99",X"94",X"99",X"AA",X"99", + X"94",X"99",X"A2",X"99",X"94",X"99",X"2A",X"99",X"94",X"9A",X"AA",X"99",X"94",X"99",X"99",X"99", + X"94",X"90",X"09",X"09",X"94",X"90",X"00",X"09",X"99",X"90",X"00",X"09",X"00",X"90",X"00",X"99", + X"00",X"90",X"00",X"29",X"00",X"00",X"00",X"99",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00", + X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"99",X"E4",X"00",X"00",X"9A",X"E4",X"90", + X"00",X"AA",X"EE",X"99",X"00",X"AA",X"EE",X"A9",X"00",X"AA",X"4E",X"AA",X"00",X"AA",X"49",X"A9", + X"00",X"9A",X"99",X"99",X"00",X"C9",X"9A",X"9C",X"00",X"99",X"AA",X"99",X"00",X"09",X"AA",X"99", + X"00",X"99",X"99",X"90",X"00",X"92",X"AA",X"90",X"00",X"9A",X"A9",X"99",X"00",X"99",X"A9",X"A9", + X"00",X"99",X"A9",X"A9",X"00",X"99",X"A9",X"99",X"00",X"9A",X"AA",X"A9",X"00",X"99",X"99",X"99", + X"00",X"90",X"09",X"09",X"00",X"90",X"00",X"09",X"00",X"90",X"00",X"09",X"00",X"90",X"00",X"99", + X"00",X"90",X"00",X"29",X"00",X"00",X"00",X"99",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"55",X"00",X"00",X"95",X"99",X"00", + X"00",X"55",X"FF",X"00",X"00",X"55",X"FF",X"90",X"00",X"59",X"99",X"90",X"00",X"99",X"99",X"90", + X"00",X"9F",X"99",X"90",X"00",X"99",X"49",X"90",X"00",X"99",X"49",X"90",X"00",X"9F",X"49",X"90", + X"00",X"9F",X"99",X"90",X"00",X"99",X"FF",X"90",X"00",X"59",X"FF",X"90",X"00",X"55",X"FF",X"90", + X"00",X"95",X"FF",X"00",X"00",X"95",X"FF",X"00",X"00",X"99",X"99",X"99",X"00",X"09",X"55",X"99", + X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"92",X"99",X"99",X"00",X"22",X"22",X"44",X"00",X"99",X"29",X"44", + X"00",X"C9",X"99",X"55",X"00",X"9C",X"49",X"99",X"00",X"CC",X"99",X"C9",X"0D",X"9C",X"00",X"99", + X"0D",X"99",X"90",X"94",X"09",X"09",X"90",X"94",X"00",X"09",X"99",X"44",X"DD",X"99",X"93",X"99", + X"D9",X"93",X"33",X"00",X"D9",X"93",X"39",X"00",X"09",X"93",X"99",X"00",X"09",X"93",X"99",X"00", + X"09",X"99",X"9A",X"90",X"09",X"69",X"9A",X"99",X"00",X"69",X"99",X"66",X"09",X"69",X"96",X"66", + X"09",X"66",X"66",X"66",X"09",X"22",X"22",X"22",X"09",X"22",X"22",X"22",X"99",X"99",X"22",X"99", + X"9D",X"77",X"22",X"77",X"9D",X"75",X"66",X"57",X"9D",X"99",X"66",X"97",X"9D",X"D9",X"66",X"99", + X"99",X"99",X"99",X"97",X"00",X"77",X"00",X"77",X"00",X"77",X"00",X"74",X"00",X"99",X"00",X"99", + X"00",X"99",X"09",X"00",X"00",X"92",X"92",X"00",X"00",X"22",X"29",X"99",X"00",X"99",X"99",X"49", + X"00",X"CE",X"99",X"49",X"00",X"9E",X"49",X"49",X"00",X"CC",X"99",X"49",X"0D",X"9C",X"55",X"99", + X"0D",X"99",X"58",X"00",X"09",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"DD",X"99",X"93",X"00", + X"D9",X"93",X"33",X"00",X"D9",X"93",X"33",X"00",X"09",X"93",X"99",X"00",X"09",X"93",X"99",X"00", + X"09",X"93",X"99",X"00",X"09",X"99",X"9A",X"90",X"09",X"69",X"9A",X"99",X"00",X"69",X"99",X"66", + X"09",X"69",X"96",X"66",X"09",X"66",X"66",X"66",X"09",X"99",X"22",X"99",X"09",X"77",X"22",X"79", + X"99",X"77",X"22",X"77",X"9D",X"97",X"22",X"77",X"9D",X"D9",X"66",X"97",X"9D",X"99",X"66",X"97", + X"9D",X"97",X"66",X"75",X"09",X"77",X"99",X"55",X"00",X"77",X"00",X"59",X"00",X"99",X"00",X"99", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"09",X"09",X"99",X"00",X"99",X"9E",X"E9",X"00",X"E9",X"9E",X"E9", + X"00",X"E9",X"9E",X"99",X"00",X"E9",X"99",X"90",X"00",X"EE",X"E9",X"90",X"00",X"EE",X"EE",X"99", + X"00",X"9E",X"EE",X"E9",X"00",X"9E",X"E9",X"E9",X"00",X"9E",X"E9",X"E9",X"00",X"9E",X"99",X"99", + X"00",X"EE",X"99",X"00",X"00",X"99",X"E9",X"00",X"00",X"99",X"EE",X"00",X"00",X"90",X"9E",X"00", + X"00",X"90",X"99",X"00",X"00",X"90",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"09",X"99",X"00",X"00",X"9E",X"E9",X"00",X"90",X"9E",X"E9",X"00",X"99",X"9E",X"99", + X"00",X"E9",X"99",X"90",X"00",X"EE",X"E9",X"90",X"00",X"9E",X"EE",X"99",X"00",X"EE",X"EE",X"99", + X"00",X"EE",X"E9",X"E9",X"00",X"9E",X"E9",X"E9",X"00",X"9E",X"E9",X"99",X"00",X"9E",X"EE",X"99", + X"00",X"99",X"E9",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"09",X"9E",X"00", + X"00",X"09",X"9E",X"00",X"00",X"09",X"E9",X"00",X"00",X"09",X"E9",X"00",X"00",X"00",X"E9",X"00", + X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"EE",X"00",X"00",X"99",X"9E",X"00", + X"00",X"9E",X"99",X"00",X"00",X"9E",X"90",X"00",X"00",X"EE",X"90",X"00",X"00",X"E9",X"99",X"00", + X"00",X"E9",X"E9",X"00",X"00",X"E9",X"E9",X"00",X"00",X"EE",X"E9",X"00",X"00",X"EE",X"99",X"00", + X"00",X"99",X"90",X"00",X"00",X"E9",X"90",X"00",X"00",X"EE",X"99",X"00",X"00",X"9E",X"EE",X"00", + X"00",X"E9",X"EE",X"00",X"00",X"EE",X"99",X"00",X"00",X"EE",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"09", + X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"AA",X"00",X"99",X"9D",X"99",X"00",X"AA",X"99",X"AA", + X"00",X"99",X"99",X"AA",X"00",X"AA",X"99",X"99",X"00",X"99",X"55",X"09",X"00",X"90",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"55",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"99",X"00",X"FF",X"00",X"44",X"00",X"FF",X"00",X"99",X"00",X"FF",X"00",X"99",X"00", + X"00",X"F0",X"9A",X"00",X"00",X"F0",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"C9",X"99",X"00", + X"00",X"C9",X"44",X"00",X"00",X"99",X"C9",X"00",X"00",X"C9",X"99",X"00",X"00",X"99",X"55",X"00", + X"00",X"95",X"99",X"00",X"00",X"95",X"99",X"00",X"00",X"95",X"55",X"00",X"00",X"99",X"55",X"00", + X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"44",X"92",X"00",X"00",X"94",X"99",X"00",X"00",X"99",X"29",X"00", + X"00",X"EE",X"22",X"00",X"00",X"EE",X"22",X"00",X"00",X"99",X"92",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"C9",X"00", + X"00",X"00",X"C9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"77",X"00",X"00",X"00",X"77",X"00", + X"00",X"00",X"77",X"00",X"00",X"00",X"79",X"00",X"00",X"00",X"79",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"C9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"C9",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"92",X"00",X"00",X"00",X"92",X"00",X"00",X"00",X"92",X"00",X"00",X"00",X"92",X"00", + X"00",X"00",X"92",X"00",X"00",X"00",X"92",X"00",X"00",X"09",X"92",X"00",X"00",X"09",X"92",X"00", + X"00",X"09",X"99",X"00",X"00",X"09",X"FF",X"00",X"00",X"09",X"FF",X"00",X"00",X"09",X"FF",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"49",X"00",X"00",X"99",X"44",X"00",X"09",X"99",X"94",X"00", + X"09",X"94",X"A9",X"00",X"09",X"99",X"99",X"00",X"09",X"9C",X"CC",X"00",X"00",X"99",X"CC",X"00", + X"00",X"99",X"44",X"00",X"00",X"99",X"44",X"00",X"09",X"99",X"C9",X"00",X"09",X"92",X"99",X"00", + X"09",X"29",X"22",X"00",X"09",X"29",X"22",X"00",X"00",X"99",X"29",X"00",X"00",X"92",X"29",X"00", + X"00",X"92",X"29",X"00",X"00",X"92",X"29",X"00",X"00",X"99",X"29",X"00",X"00",X"99",X"99",X"00", + X"00",X"96",X"99",X"00",X"00",X"96",X"69",X"00",X"00",X"96",X"69",X"00",X"00",X"96",X"66",X"00", + X"00",X"99",X"69",X"00",X"00",X"11",X"69",X"00",X"00",X"11",X"69",X"00",X"00",X"11",X"69",X"00", + X"00",X"99",X"99",X"00",X"00",X"11",X"11",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"99",X"99",X"CC",X"99",X"99",X"99",X"99",X"99", + X"00",X"90",X"22",X"90",X"00",X"90",X"22",X"90",X"00",X"90",X"22",X"90",X"00",X"90",X"22",X"90", + X"00",X"90",X"22",X"90",X"99",X"99",X"22",X"99",X"99",X"99",X"22",X"99",X"00",X"00",X"29",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"92",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00", + X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"90", + X"00",X"00",X"99",X"99",X"00",X"00",X"66",X"69",X"00",X"00",X"66",X"66",X"00",X"09",X"99",X"96", + X"00",X"09",X"66",X"96",X"00",X"09",X"66",X"99",X"00",X"09",X"99",X"00",X"00",X"09",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"99",X"00",X"00",X"77",X"9C",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"99", + X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"09",X"00",X"00",X"94",X"09",X"00",X"00",X"99",X"09", + X"00",X"00",X"44",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"99",X"99", + X"00",X"00",X"22",X"29",X"00",X"00",X"29",X"99",X"00",X"00",X"29",X"99",X"00",X"00",X"29",X"00", + X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"66",X"00",X"00",X"00",X"69",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"69",X"00", + X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"69",X"19",X"00",X"00",X"69",X"99", + X"00",X"00",X"99",X"19",X"00",X"00",X"19",X"19",X"00",X"00",X"19",X"99",X"00",X"00",X"99",X"90", + X"00",X"99",X"99",X"00",X"00",X"CC",X"44",X"00",X"99",X"C9",X"44",X"99",X"99",X"99",X"44",X"99", + X"00",X"29",X"44",X"00",X"00",X"29",X"94",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"C9",X"00", + X"00",X"00",X"CC",X"00",X"99",X"99",X"CC",X"99",X"99",X"99",X"99",X"99",X"00",X"00",X"99",X"00", + X"00",X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00",X"09",X"29",X"00", + X"00",X"09",X"29",X"00",X"00",X"09",X"29",X"00",X"00",X"09",X"29",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"C9",X"00",X"00",X"09",X"C9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"69",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"19",X"00", + X"00",X"11",X"19",X"00",X"00",X"91",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"09",X"99",X"00",X"49",X"09",X"69",X"09",X"44",X"09",X"99",X"99",X"44",X"96",X"99", + X"99",X"99",X"96",X"90",X"09",X"EE",X"96",X"90",X"09",X"CC",X"99",X"99",X"09",X"CC",X"00",X"11", + X"00",X"9C",X"00",X"91",X"00",X"99",X"00",X"91",X"00",X"CC",X"00",X"11",X"00",X"99",X"00",X"91", + X"00",X"55",X"00",X"91",X"00",X"99",X"00",X"91",X"00",X"59",X"00",X"91",X"00",X"99",X"00",X"91", + X"00",X"9C",X"90",X"91",X"00",X"99",X"90",X"91",X"00",X"55",X"99",X"99",X"00",X"55",X"99",X"44", + X"00",X"99",X"90",X"44",X"00",X"11",X"00",X"44",X"00",X"19",X"99",X"44",X"00",X"11",X"99",X"44", + X"09",X"11",X"99",X"44",X"09",X"99",X"99",X"44",X"99",X"99",X"90",X"99",X"99",X"09",X"90",X"95", + X"99",X"00",X"00",X"59",X"99",X"00",X"00",X"7A",X"99",X"00",X"00",X"97",X"99",X"00",X"00",X"99", + X"00",X"99",X"00",X"99",X"00",X"44",X"00",X"79",X"00",X"44",X"00",X"79",X"09",X"44",X"00",X"7A", + X"09",X"99",X"00",X"7A",X"00",X"EE",X"00",X"96",X"00",X"EC",X"00",X"96",X"00",X"CC",X"00",X"96", + X"00",X"99",X"00",X"99",X"00",X"C9",X"00",X"91",X"00",X"CC",X"00",X"91",X"00",X"99",X"00",X"91", + X"00",X"99",X"00",X"11",X"00",X"59",X"00",X"91",X"00",X"99",X"00",X"91",X"00",X"9C",X"90",X"91", + X"00",X"99",X"90",X"91",X"00",X"55",X"99",X"99",X"00",X"55",X"99",X"44",X"00",X"99",X"90",X"44", + X"00",X"11",X"00",X"44",X"00",X"11",X"00",X"44",X"00",X"11",X"00",X"44",X"00",X"19",X"00",X"44", + X"00",X"19",X"00",X"44",X"00",X"19",X"00",X"99",X"00",X"19",X"00",X"57",X"00",X"19",X"00",X"55", + X"00",X"19",X"00",X"9A",X"00",X"99",X"00",X"99",X"00",X"99",X"00",X"55",X"00",X"99",X"00",X"99", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"9A",X"90", + X"00",X"00",X"9A",X"90",X"00",X"90",X"99",X"90",X"00",X"90",X"CC",X"90",X"00",X"90",X"CC",X"90", + X"00",X"99",X"99",X"90",X"00",X"99",X"99",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"9C",X"00", + X"00",X"94",X"C9",X"00",X"00",X"99",X"CC",X"90",X"00",X"09",X"99",X"99",X"00",X"00",X"44",X"49", + X"00",X"00",X"49",X"44",X"00",X"00",X"99",X"44",X"00",X"00",X"9C",X"49",X"00",X"00",X"9C",X"99", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"22",X"00",X"00",X"19",X"29",X"00", + X"00",X"11",X"99",X"00",X"00",X"11",X"99",X"00",X"00",X"91",X"09",X"00",X"00",X"91",X"09",X"00", + X"00",X"99",X"09",X"00",X"00",X"09",X"09",X"99",X"00",X"00",X"09",X"19",X"00",X"00",X"09",X"99", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F9",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"F9",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"49",X"00",X"00",X"09",X"44",X"00", + X"00",X"94",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"A9",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"9C",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"C4",X"00",X"00",X"00",X"94",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"97",X"00",X"00",X"99",X"77",X"00",X"00",X"97",X"97",X"00", + X"00",X"99",X"77",X"00",X"00",X"C9",X"99",X"00",X"00",X"C9",X"97",X"00",X"00",X"99",X"77",X"00", + X"00",X"09",X"99",X"00",X"00",X"99",X"DD",X"90",X"00",X"94",X"D9",X"90",X"00",X"94",X"99",X"90", + X"00",X"94",X"D9",X"90",X"00",X"99",X"99",X"99",X"00",X"94",X"09",X"99",X"00",X"99",X"09",X"99", + X"00",X"09",X"00",X"99",X"00",X"09",X"00",X"99",X"00",X"09",X"00",X"90",X"00",X"0A",X"09",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_2.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_2.vhd new file mode 100644 index 00000000..6651a748 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_2.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity domino_sp_bits_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 domino_sp_bits_2 is + type rom is array(0 to 8191) 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"99", + X"00",X"90",X"99",X"11",X"09",X"99",X"11",X"44",X"09",X"41",X"11",X"55",X"09",X"41",X"77",X"66", + X"09",X"99",X"77",X"11",X"00",X"90",X"11",X"11",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"91", + X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"91", + X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"C9",X"C9",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"44",X"4C",X"00",X"00",X"49",X"4C",X"00",X"00",X"C9",X"C9",X"00",X"00",X"CC",X"C9",X"00", + X"00",X"9C",X"99",X"00",X"00",X"99",X"94",X"00",X"00",X"49",X"99",X"00",X"00",X"44",X"99",X"00", + X"09",X"44",X"99",X"00",X"09",X"44",X"99",X"00",X"09",X"44",X"99",X"00",X"09",X"44",X"99",X"00", + X"09",X"99",X"99",X"00",X"09",X"29",X"99",X"00",X"09",X"22",X"99",X"00",X"09",X"99",X"99",X"00", + X"09",X"19",X"99",X"00",X"00",X"11",X"99",X"00",X"00",X"11",X"99",X"00",X"00",X"11",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"11",X"99",X"00",X"00",X"19",X"99",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"9C",X"9C",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"44",X"44",X"00",X"00",X"C9",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"CC",X"00", + X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00",X"00",X"49",X"94",X"00",X"00",X"44",X"99",X"00", + X"00",X"44",X"99",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"99",X"00", + X"00",X"44",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"22",X"99",X"00",X"00",X"22",X"99",X"00", + X"00",X"22",X"19",X"00",X"00",X"99",X"11",X"00",X"00",X"29",X"11",X"00",X"00",X"99",X"11",X"00", + X"00",X"19",X"99",X"00",X"00",X"19",X"11",X"00",X"00",X"99",X"19",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"9C",X"00",X"00",X"99",X"99",X"00",X"00",X"CC",X"9C",X"00",X"00",X"CC",X"C9",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"99",X"44",X"00",X"00",X"09",X"9C",X"00",X"00",X"09",X"CC",X"00", + X"00",X"00",X"C9",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"94",X"99",X"00",X"99",X"44",X"99", + X"00",X"99",X"44",X"9F",X"00",X"99",X"44",X"99",X"00",X"99",X"49",X"99",X"00",X"99",X"99",X"99", + X"00",X"F9",X"99",X"99",X"09",X"99",X"99",X"99",X"09",X"99",X"99",X"99",X"09",X"99",X"99",X"99", + X"09",X"99",X"99",X"9F",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"29",X"99",X"00", + X"00",X"99",X"09",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"90",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"9A",X"CC",X"00",X"00",X"9A",X"9C",X"00",X"00",X"C9",X"CC",X"00",X"00",X"CC",X"99",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"99",X"44",X"00",X"00",X"99",X"9C",X"00",X"00",X"99",X"CC",X"00", + X"00",X"09",X"CC",X"00",X"00",X"00",X"C9",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"99",X"99", + X"09",X"99",X"94",X"99",X"09",X"99",X"44",X"F9",X"09",X"99",X"44",X"99",X"09",X"99",X"49",X"99", + X"09",X"99",X"99",X"99",X"09",X"F9",X"99",X"99",X"09",X"99",X"99",X"99",X"09",X"99",X"99",X"99", + X"09",X"99",X"99",X"99",X"09",X"99",X"F9",X"F9",X"09",X"99",X"99",X"99",X"00",X"99",X"99",X"99", + X"00",X"99",X"91",X"00",X"00",X"11",X"91",X"00",X"00",X"11",X"91",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"9C",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"9C",X"CC",X"00",X"00",X"99",X"CC",X"00",X"00",X"09",X"C9",X"00", + X"00",X"99",X"99",X"90",X"00",X"94",X"44",X"99",X"00",X"44",X"44",X"49",X"00",X"99",X"44",X"49", + X"00",X"99",X"44",X"99",X"00",X"99",X"44",X"49",X"00",X"99",X"44",X"99",X"00",X"99",X"44",X"C9", + X"00",X"99",X"99",X"C9",X"00",X"99",X"22",X"99",X"00",X"99",X"92",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"92",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"09",X"C9",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00", + X"00",X"99",X"CC",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"CC",X"00",X"00",X"00",X"CC",X"00", + X"00",X"99",X"99",X"00",X"00",X"44",X"44",X"00",X"00",X"99",X"44",X"90",X"00",X"99",X"44",X"99", + X"00",X"99",X"44",X"49",X"00",X"99",X"44",X"44",X"00",X"99",X"44",X"44",X"00",X"99",X"99",X"99", + X"00",X"99",X"99",X"44",X"00",X"99",X"22",X"99",X"00",X"99",X"92",X"CC",X"00",X"99",X"99",X"CC", + X"00",X"99",X"29",X"99",X"00",X"99",X"99",X"00",X"00",X"99",X"09",X"00",X"00",X"99",X"09",X"00", + X"00",X"99",X"09",X"00",X"00",X"99",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"CC",X"C9", + X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"99", + X"00",X"09",X"C9",X"9C",X"00",X"09",X"CC",X"9C",X"09",X"09",X"99",X"9C",X"99",X"99",X"49",X"9C", + X"91",X"99",X"44",X"9C",X"11",X"49",X"99",X"99",X"19",X"44",X"94",X"00",X"99",X"44",X"44",X"00", + X"92",X"99",X"49",X"90",X"99",X"29",X"99",X"90",X"99",X"22",X"99",X"99",X"90",X"29",X"00",X"29", + X"90",X"99",X"00",X"29",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"11", + X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9", + X"00",X"00",X"CC",X"C9",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"90",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"9C",X"00",X"09",X"C9",X"C9",X"00",X"09",X"CC",X"99",X"00",X"99",X"99",X"9C", + X"00",X"99",X"49",X"9C",X"00",X"49",X"44",X"99",X"00",X"49",X"99",X"99",X"00",X"44",X"94",X"00", + X"00",X"99",X"49",X"00",X"00",X"99",X"99",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"00",X"00", + X"00",X"22",X"00",X"00",X"00",X"29",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"92",X"00",X"00", + X"91",X"22",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"91",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"C9",X"C9",X"00",X"00",X"CC",X"CC",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"9C",X"CC",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"CC",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"44",X"00",X"00",X"44",X"99",X"00", + X"00",X"99",X"44",X"00",X"00",X"29",X"99",X"00",X"00",X"99",X"22",X"00",X"00",X"19",X"22",X"00", + X"00",X"11",X"99",X"00",X"00",X"11",X"29",X"00",X"00",X"11",X"99",X"00",X"00",X"99",X"19",X"00", + X"00",X"11",X"99",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"A9",X"00",X"00",X"9C",X"29",X"00",X"00",X"9C",X"99",X"00",X"00",X"94",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"99",X"90",X"00",X"CC",X"49",X"90", + X"00",X"99",X"49",X"90",X"00",X"99",X"99",X"90",X"00",X"94",X"44",X"90",X"00",X"94",X"44",X"00", + X"00",X"94",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"22",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00", + X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"9C",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"9C",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"49",X"00", + X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"94",X"44",X"00",X"00",X"94",X"44",X"00", + X"00",X"94",X"99",X"00",X"00",X"94",X"99",X"00",X"00",X"94",X"44",X"00",X"00",X"94",X"99",X"00", + X"00",X"99",X"22",X"00",X"00",X"92",X"92",X"00",X"00",X"92",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"09",X"09",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"9C",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"CC",X"CC",X"00",X"00",X"9C",X"9C",X"00",X"00",X"99",X"99",X"00", + X"00",X"94",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00", + X"00",X"44",X"44",X"00",X"00",X"49",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"99",X"94",X"00", + X"00",X"92",X"99",X"00",X"00",X"22",X"22",X"00",X"00",X"29",X"99",X"00",X"00",X"22",X"19",X"00", + X"00",X"99",X"11",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"11",X"00",X"00",X"19",X"11",X"00", + X"00",X"99",X"11",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"9C",X"00",X"99",X"00",X"A9",X"00", + X"DD",X"90",X"A9",X"00",X"99",X"90",X"9C",X"00",X"99",X"90",X"C9",X"00",X"F9",X"90",X"99",X"00", + X"99",X"90",X"99",X"00",X"99",X"90",X"99",X"00",X"99",X"90",X"9C",X"00",X"99",X"90",X"C9",X"00", + X"99",X"99",X"99",X"00",X"99",X"94",X"CC",X"00",X"F9",X"99",X"99",X"00",X"99",X"9C",X"99",X"00", + X"99",X"CC",X"44",X"00",X"DD",X"CC",X"44",X"00",X"99",X"99",X"99",X"00",X"99",X"90",X"99",X"00", + X"F9",X"90",X"44",X"00",X"99",X"90",X"99",X"00",X"99",X"90",X"22",X"00",X"99",X"90",X"92",X"00", + X"99",X"90",X"22",X"00",X"99",X"90",X"99",X"00",X"99",X"90",X"99",X"00",X"99",X"90",X"22",X"00", + X"99",X"90",X"99",X"00",X"99",X"99",X"11",X"00",X"00",X"91",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"09",X"C2",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"DD",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"94",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00", + X"00",X"9C",X"99",X"00",X"00",X"9C",X"DD",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"F9",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"91",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"9C",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"9C",X"CC",X"00",X"00",X"99",X"CC",X"90",X"00",X"99",X"C9",X"90", + X"00",X"49",X"99",X"90",X"00",X"44",X"99",X"90",X"00",X"44",X"44",X"90",X"00",X"99",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"99",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"44",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"22",X"00",X"00",X"99",X"22",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"92",X"00",X"00",X"00",X"92",X"00",X"00",X"00",X"92",X"00",X"00",X"00",X"92",X"00", + X"00",X"99",X"92",X"00",X"00",X"91",X"99",X"00",X"00",X"91",X"09",X"00",X"00",X"09",X"09",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"AA",X"00",X"00",X"99",X"99",X"40", + X"00",X"9C",X"99",X"70",X"00",X"9C",X"AA",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"CC",X"00", + X"00",X"CC",X"9C",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00", + X"00",X"9C",X"99",X"00",X"00",X"99",X"94",X"00",X"00",X"49",X"94",X"00",X"00",X"99",X"99",X"00", + X"00",X"94",X"49",X"00",X"09",X"94",X"99",X"00",X"99",X"44",X"44",X"00",X"9C",X"44",X"44",X"00", + X"9C",X"44",X"99",X"00",X"9C",X"99",X"44",X"00",X"99",X"22",X"99",X"99",X"00",X"92",X"92",X"19", + X"00",X"99",X"22",X"19",X"00",X"09",X"92",X"19",X"00",X"00",X"99",X"19",X"00",X"00",X"29",X"19", + X"00",X"00",X"29",X"19",X"00",X"00",X"99",X"99",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"9C",X"00", + X"00",X"9C",X"99",X"00",X"00",X"9C",X"CC",X"00",X"00",X"9C",X"CC",X"00",X"00",X"99",X"CC",X"00", + X"00",X"CC",X"9C",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"C9",X"99",X"00", + X"00",X"9C",X"99",X"99",X"00",X"99",X"99",X"CC",X"00",X"49",X"99",X"C9",X"00",X"49",X"99",X"CC", + X"00",X"44",X"49",X"99",X"00",X"94",X"99",X"00",X"00",X"94",X"44",X"99",X"00",X"99",X"44",X"91", + X"00",X"99",X"99",X"11",X"00",X"11",X"44",X"11",X"00",X"11",X"99",X"11",X"09",X"11",X"92",X"11", + X"99",X"11",X"22",X"11",X"9C",X"11",X"99",X"99",X"99",X"99",X"00",X"00",X"00",X"11",X"00",X"00", + X"00",X"91",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00", + X"00",X"CC",X"99",X"00",X"00",X"C9",X"C9",X"00",X"00",X"CC",X"CC",X"A0",X"00",X"99",X"C9",X"00", + X"00",X"CC",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"CC",X"99",X"00",X"00",X"9C",X"94",X"00",X"00",X"99",X"94",X"00",X"00",X"49",X"99",X"00", + X"00",X"44",X"49",X"00",X"00",X"94",X"99",X"00",X"00",X"94",X"44",X"99",X"00",X"99",X"44",X"91", + X"00",X"99",X"99",X"11",X"00",X"11",X"44",X"11",X"00",X"11",X"99",X"11",X"09",X"11",X"92",X"11", + X"99",X"11",X"22",X"11",X"9C",X"11",X"99",X"99",X"99",X"99",X"00",X"00",X"00",X"11",X"00",X"00", + X"00",X"91",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"90",X"00",X"00", + X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9D",X"99",X"00",X"00",X"9D",X"D9",X"00",X"00", + X"09",X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"D9",X"00", + X"00",X"09",X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"F9",X"F9",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"90",X"09",X"DD",X"DD",X"D9",X"09",X"99",X"99",X"99",X"09",X"99",X"99",X"99", + X"09",X"99",X"99",X"99",X"09",X"99",X"99",X"99",X"09",X"99",X"99",X"99",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"9D",X"99",X"00",X"00",X"99",X"9D",X"00",X"00",X"9F",X"D9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"9F",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9D",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"9F",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"9D",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"F9",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"9D",X"90", + X"00",X"00",X"F9",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"09",X"9D",X"D9",X"00",X"99",X"99",X"99", + X"00",X"9D",X"9F",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99", + X"00",X"99",X"9D",X"90",X"00",X"99",X"9D",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"D9",X"00", + X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"9D",X"DD",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9D",X"DD",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"09",X"99",X"90",X"00",X"09",X"99",X"90",X"00",X"99",X"99",X"99",X"00",X"9D",X"DD",X"D9",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"09",X"99",X"90",X"00",X"09",X"9F",X"90",X"00", + X"09",X"99",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"DD",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"DD",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9F",X"99",X"00",X"00", + X"99",X"99",X"90",X"00",X"DD",X"DD",X"90",X"00",X"99",X"99",X"90",X"00",X"99",X"99",X"90",X"00", + X"99",X"99",X"90",X"00",X"99",X"99",X"90",X"00",X"99",X"99",X"90",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"DD",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"90",X"00", + X"09",X"9F",X"90",X"00",X"09",X"99",X"90",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"9D",X"DD",X"D9",X"00",X"99",X"99",X"99",X"00",X"09",X"99",X"90",X"00",X"09",X"99",X"90",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"9C",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"C9",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"EE",X"42",X"00", + X"00",X"EE",X"42",X"00",X"00",X"CC",X"CC",X"00",X"00",X"CC",X"9C",X"99",X"00",X"CC",X"CC",X"99", + X"00",X"CC",X"CC",X"99",X"09",X"CC",X"99",X"99",X"09",X"C9",X"9F",X"99",X"99",X"C9",X"99",X"99", + X"99",X"C9",X"9C",X"99",X"99",X"9C",X"9C",X"99",X"99",X"9C",X"CC",X"99",X"99",X"99",X"CC",X"99", + X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"EE",X"99",X"99",X"9C",X"EC",X"99",X"99",X"CC", + X"CE",X"99",X"99",X"CE",X"EC",X"99",X"99",X"CC",X"EE",X"99",X"99",X"CE",X"EC",X"99",X"99",X"EC", + X"CE",X"99",X"99",X"CE",X"CC",X"99",X"99",X"CC",X"CC",X"99",X"99",X"CC",X"CC",X"99",X"99",X"CC", + X"EC",X"C9",X"99",X"CC",X"CE",X"C9",X"CC",X"E9",X"EC",X"CC",X"CC",X"C9",X"CC",X"CC",X"CE",X"99", + X"CC",X"99",X"99",X"90",X"CC",X"99",X"9B",X"90",X"C9",X"9B",X"BB",X"90",X"C9",X"9B",X"BB",X"90", + X"C9",X"BB",X"BB",X"90",X"C9",X"BB",X"BB",X"90",X"99",X"BB",X"BB",X"90",X"00",X"BB",X"BB",X"90", + X"00",X"BB",X"BB",X"90",X"00",X"BB",X"BB",X"90",X"00",X"BB",X"BB",X"90",X"00",X"BB",X"BB",X"90", + X"00",X"99",X"BB",X"90",X"00",X"E9",X"BB",X"90",X"00",X"7E",X"BB",X"00",X"00",X"77",X"BB",X"00", + X"00",X"77",X"9B",X"00",X"00",X"77",X"BB",X"00",X"00",X"99",X"BB",X"00",X"00",X"77",X"BB",X"00", + X"00",X"79",X"9B",X"90",X"00",X"99",X"BB",X"90",X"00",X"00",X"BB",X"90",X"00",X"00",X"99",X"90", + X"00",X"00",X"7E",X"90",X"00",X"00",X"9E",X"00",X"00",X"00",X"77",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"95",X"00",X"99",X"00",X"95",X"00",X"99",X"00", + X"95",X"99",X"99",X"00",X"99",X"55",X"95",X"00",X"09",X"52",X"55",X"00",X"00",X"59",X"55",X"00", + X"99",X"52",X"99",X"00",X"55",X"55",X"00",X"00",X"99",X"55",X"99",X"00",X"99",X"99",X"95",X"00", + X"99",X"44",X"55",X"99",X"95",X"44",X"55",X"55",X"55",X"44",X"55",X"95",X"55",X"44",X"55",X"99", + X"95",X"95",X"55",X"90",X"99",X"95",X"95",X"90",X"00",X"95",X"55",X"90",X"00",X"99",X"55",X"90", + X"00",X"09",X"55",X"90",X"00",X"09",X"55",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"97",X"90", + X"00",X"00",X"99",X"00",X"00",X"00",X"59",X"00",X"00",X"09",X"99",X"90",X"00",X"99",X"55",X"90", + X"00",X"95",X"55",X"90",X"00",X"99",X"59",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"55",X"00",X"00",X"09",X"52",X"00",X"00",X"09",X"59",X"00",X"00",X"99",X"52",X"00",X"00", + X"55",X"55",X"00",X"00",X"99",X"55",X"90",X"00",X"99",X"95",X"99",X"00",X"99",X"95",X"99",X"09", + X"95",X"95",X"95",X"99",X"55",X"95",X"95",X"95",X"55",X"95",X"95",X"99",X"95",X"99",X"95",X"90", + X"99",X"99",X"55",X"90",X"00",X"95",X"55",X"90",X"00",X"55",X"95",X"99",X"00",X"59",X"55",X"97", + X"09",X"55",X"55",X"99",X"99",X"59",X"55",X"95",X"99",X"99",X"99",X"55",X"95",X"00",X"00",X"55", + X"95",X"00",X"00",X"59",X"55",X"00",X"00",X"99",X"95",X"00",X"00",X"99",X"95",X"00",X"00",X"09", + X"99",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"9A",X"00",X"00",X"99",X"92",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"CC",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"49",X"99",X"00",X"09",X"44",X"99",X"99", + X"09",X"44",X"99",X"9D",X"09",X"94",X"49",X"9D",X"09",X"99",X"44",X"9D",X"09",X"79",X"94",X"9D", + X"09",X"77",X"94",X"9D",X"09",X"99",X"99",X"9D",X"09",X"92",X"92",X"9D",X"09",X"99",X"22",X"9D", + X"09",X"99",X"22",X"9D",X"09",X"92",X"22",X"9D",X"09",X"92",X"22",X"9D",X"09",X"99",X"29",X"99", + X"00",X"09",X"99",X"00",X"00",X"09",X"11",X"00",X"00",X"09",X"11",X"00",X"00",X"09",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"9C",X"AA",X"00",X"00",X"9C",X"A2",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"CC",X"00", + X"00",X"CC",X"9C",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00", + X"00",X"9C",X"99",X"00",X"00",X"99",X"90",X"00",X"99",X"49",X"99",X"90",X"99",X"94",X"99",X"D9", + X"99",X"94",X"99",X"D9",X"99",X"44",X"49",X"D9",X"99",X"44",X"94",X"D9",X"99",X"44",X"44",X"D9", + X"99",X"99",X"44",X"D9",X"99",X"99",X"99",X"99",X"99",X"99",X"22",X"91",X"99",X"92",X"22",X"11", + X"99",X"92",X"22",X"19",X"99",X"22",X"99",X"19",X"99",X"22",X"99",X"99",X"00",X"22",X"09",X"90", + X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"CC",X"9C",X"A9",X"00",X"C9",X"9C",X"A2",X"00",X"C9",X"9C",X"99",X"00",X"C9",X"99",X"CC",X"00", + X"99",X"CC",X"9C",X"00",X"94",X"CC",X"99",X"00",X"99",X"CC",X"99",X"00",X"09",X"9C",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"49",X"90",X"00",X"00",X"44",X"90",X"00",X"00",X"44",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"94",X"49",X"00",X"00",X"44",X"94",X"00",X"00",X"44",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"99",X"99",X"99",X"00",X"99",X"22",X"91",X"00",X"92",X"22",X"11", + X"00",X"92",X"22",X"19",X"00",X"22",X"99",X"19",X"00",X"22",X"09",X"99",X"00",X"22",X"09",X"90", + X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"50",X"99",X"99",X"05",X"55",X"9C",X"9C",X"05", + X"00",X"9C",X"CC",X"00",X"00",X"F9",X"99",X"00",X"00",X"F9",X"FF",X"00",X"00",X"FF",X"FF",X"0A", + X"30",X"FF",X"99",X"00",X"00",X"9F",X"99",X"00",X"00",X"99",X"FF",X"00",X"00",X"CC",X"99",X"00", + X"00",X"9C",X"CC",X"90",X"09",X"99",X"CC",X"99",X"09",X"99",X"99",X"99",X"99",X"CC",X"99",X"99", + X"99",X"CC",X"49",X"99",X"99",X"9C",X"94",X"99",X"99",X"9C",X"49",X"99",X"99",X"99",X"44",X"99", + X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"EE",X"99",X"99",X"CC",X"EC",X"99",X"99",X"CC", + X"CE",X"99",X"49",X"CE",X"EC",X"99",X"49",X"CC",X"99",X"99",X"49",X"99",X"90",X"99",X"99",X"90", + X"09",X"99",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"90",X"99",X"09",X"90",X"90",X"00", + X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"94",X"94",X"00", + X"00",X"94",X"44",X"00",X"00",X"44",X"A9",X"00",X"00",X"49",X"AA",X"00",X"00",X"99",X"99",X"00", + X"00",X"9A",X"AA",X"00",X"00",X"4A",X"44",X"00",X"00",X"44",X"94",X"99",X"00",X"94",X"44",X"99", + X"00",X"99",X"49",X"99",X"09",X"9F",X"99",X"99",X"09",X"9F",X"FF",X"99",X"99",X"99",X"99",X"99", + X"99",X"49",X"F9",X"99",X"99",X"99",X"F9",X"99",X"99",X"94",X"94",X"99",X"99",X"99",X"44",X"99", + X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"EE",X"99",X"99",X"9C",X"EC",X"99",X"99",X"CC", + X"CE",X"99",X"99",X"CE",X"EC",X"99",X"99",X"CC",X"EE",X"99",X"99",X"CE",X"EC",X"99",X"99",X"EC", + X"CE",X"99",X"99",X"CE",X"CC",X"99",X"99",X"CC",X"CC",X"99",X"99",X"CC",X"CC",X"99",X"99",X"CC", + X"EC",X"C9",X"99",X"CC",X"CE",X"C9",X"CC",X"E9",X"CC",X"CC",X"CC",X"C9",X"CC",X"CC",X"CE",X"99", + X"CC",X"99",X"99",X"90",X"CC",X"99",X"94",X"90",X"C9",X"9F",X"F4",X"90",X"C9",X"9F",X"FF",X"90", + X"C9",X"F4",X"F4",X"90",X"C9",X"F4",X"94",X"99",X"99",X"4F",X"FF",X"F9",X"FF",X"4F",X"FF",X"F9", + X"99",X"99",X"99",X"99",X"09",X"EE",X"CE",X"90",X"00",X"EC",X"CE",X"90",X"00",X"CC",X"CE",X"90", + X"00",X"CE",X"EC",X"00",X"00",X"EC",X"CE",X"00",X"00",X"CE",X"CE",X"99",X"00",X"EC",X"EC",X"E9", + X"99",X"EC",X"CE",X"E9",X"B9",X"CE",X"99",X"CC",X"1B",X"EC",X"09",X"99",X"BB",X"99",X"00",X"BB", + X"BB",X"BB",X"99",X"B9",X"BB",X"BB",X"B9",X"99",X"99",X"B9",X"99",X"9B",X"99",X"99",X"9B",X"BB", + X"BB",X"BB",X"BB",X"BB",X"99",X"BB",X"BB",X"9B",X"BB",X"9B",X"99",X"BB",X"99",X"BB",X"9B",X"99", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"77", + X"00",X"90",X"00",X"77",X"00",X"90",X"09",X"99",X"02",X"90",X"99",X"BB",X"22",X"00",X"9E",X"BB", + X"22",X"99",X"EE",X"BB",X"22",X"CC",X"99",X"99",X"22",X"CC",X"47",X"45",X"02",X"C9",X"47",X"45", + X"00",X"99",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45", + X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45", + X"00",X"90",X"47",X"47",X"00",X"90",X"97",X"47",X"00",X"90",X"99",X"47",X"00",X"00",X"09",X"99", + X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"09", + X"00",X"00",X"BA",X"99",X"00",X"90",X"55",X"9A",X"00",X"99",X"BB",X"99",X"00",X"99",X"99",X"09", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"77", + X"00",X"90",X"00",X"77",X"00",X"90",X"09",X"99",X"02",X"90",X"99",X"BB",X"22",X"00",X"9E",X"BB", + X"22",X"99",X"99",X"99",X"22",X"CC",X"47",X"45",X"22",X"CC",X"47",X"45",X"02",X"C9",X"47",X"45", + X"00",X"99",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45", + X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"45",X"00",X"90",X"47",X"47", + X"00",X"90",X"97",X"47",X"09",X"90",X"99",X"47",X"09",X"90",X"09",X"99",X"09",X"00",X"00",X"59", + X"09",X"90",X"00",X"99",X"09",X"99",X"00",X"90",X"99",X"AA",X"09",X"99",X"22",X"AA",X"99",X"9B", + X"92",X"AA",X"9B",X"B5",X"99",X"99",X"9A",X"B5",X"99",X"99",X"99",X"9A",X"99",X"09",X"09",X"99", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"49",X"00",X"00",X"09",X"44",X"00", + X"00",X"99",X"AA",X"00",X"00",X"94",X"22",X"00",X"00",X"94",X"CC",X"00",X"00",X"94",X"CC",X"00", + X"00",X"94",X"44",X"00",X"00",X"94",X"99",X"00",X"00",X"94",X"44",X"90",X"00",X"99",X"CC",X"99", + X"00",X"AA",X"99",X"C9",X"09",X"99",X"AA",X"CC",X"99",X"99",X"AA",X"CC",X"9C",X"99",X"99",X"CC", + X"9C",X"29",X"99",X"9C",X"9C",X"AA",X"AA",X"9C",X"99",X"AA",X"AA",X"9C",X"90",X"AA",X"AA",X"99", + X"99",X"AA",X"22",X"44",X"95",X"22",X"AA",X"99",X"95",X"AA",X"AA",X"55",X"95",X"99",X"99",X"55", + X"95",X"CC",X"09",X"55",X"95",X"CC",X"09",X"54",X"95",X"CC",X"09",X"54",X"95",X"99",X"09",X"54", + X"95",X"22",X"09",X"55",X"99",X"99",X"09",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"92",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"49",X"00",X"00",X"09",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"9C",X"44",X"00",X"00",X"9C",X"44",X"00",X"00",X"99",X"C4",X"00", + X"00",X"A9",X"CC",X"00",X"00",X"A9",X"CC",X"90",X"00",X"A9",X"C9",X"99",X"00",X"A9",X"99",X"C9", + X"09",X"AA",X"9A",X"CC",X"99",X"AA",X"AA",X"CC",X"9C",X"9A",X"AA",X"CC",X"9C",X"99",X"9A",X"9C", + X"9C",X"99",X"99",X"9C",X"99",X"AA",X"AA",X"9C",X"90",X"AA",X"AA",X"99",X"99",X"AA",X"AA",X"04", + X"95",X"9A",X"22",X"99",X"95",X"A2",X"AA",X"55",X"95",X"AA",X"AA",X"55",X"95",X"99",X"99",X"54", + X"95",X"9C",X"CC",X"54",X"95",X"9C",X"99",X"54",X"95",X"9C",X"09",X"55",X"95",X"9C",X"09",X"55", + X"99",X"9C",X"09",X"99",X"00",X"99",X"09",X"00",X"00",X"92",X"00",X"00",X"00",X"22",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"49",X"00",X"00",X"09",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"94",X"44",X"00",X"00",X"94",X"44",X"00",X"00",X"99",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"A9",X"49",X"90",X"00",X"AA",X"99",X"99",X"09",X"AA",X"9A",X"C9", + X"99",X"9A",X"AA",X"CC",X"9C",X"9A",X"AA",X"CC",X"99",X"AA",X"AA",X"CC",X"9C",X"AA",X"AA",X"9C", + X"99",X"AA",X"99",X"9C",X"99",X"A9",X"AA",X"9C",X"90",X"AA",X"AA",X"99",X"99",X"AA",X"AA",X"00", + X"95",X"9A",X"AA",X"99",X"95",X"AA",X"9A",X"55",X"95",X"AA",X"AA",X"55",X"95",X"99",X"99",X"55", + X"95",X"9C",X"CC",X"54",X"95",X"9C",X"99",X"54",X"95",X"9C",X"00",X"54",X"95",X"9C",X"09",X"55", + X"99",X"9C",X"09",X"55",X"00",X"99",X"09",X"99",X"00",X"92",X"00",X"00",X"00",X"22",X"00",X"00", + X"00",X"09",X"99",X"00",X"00",X"09",X"59",X"00",X"00",X"09",X"59",X"00",X"00",X"09",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"95",X"55",X"00",X"00",X"55",X"95",X"00", + X"00",X"99",X"99",X"00",X"00",X"9F",X"99",X"00",X"00",X"9F",X"99",X"00",X"00",X"FF",X"9F",X"00", + X"00",X"FF",X"FF",X"00",X"00",X"99",X"FF",X"00",X"00",X"99",X"FF",X"00",X"00",X"FF",X"FF",X"00", + X"00",X"FF",X"FF",X"00",X"00",X"FF",X"FF",X"00",X"00",X"FF",X"FF",X"99",X"00",X"9F",X"FF",X"92", + X"00",X"99",X"F9",X"92",X"00",X"59",X"99",X"92",X"00",X"55",X"95",X"92",X"00",X"95",X"55",X"92", + X"00",X"99",X"99",X"92",X"00",X"09",X"99",X"99",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"22",X"99",X"90",X"00",X"22",X"22",X"99",X"00",X"99",X"99",X"49", + X"00",X"E9",X"00",X"49",X"00",X"CD",X"00",X"49",X"DD",X"44",X"00",X"49",X"DD",X"49",X"00",X"49", + X"D0",X"CC",X"00",X"49",X"90",X"C9",X"09",X"49",X"9D",X"99",X"99",X"49",X"99",X"39",X"39",X"99", + X"09",X"33",X"99",X"00",X"0D",X"33",X"9A",X"00",X"99",X"39",X"AA",X"00",X"95",X"39",X"AA",X"00", + X"55",X"33",X"A2",X"00",X"95",X"33",X"99",X"90",X"95",X"13",X"96",X"99",X"99",X"99",X"66",X"69", + X"66",X"69",X"66",X"99",X"22",X"22",X"22",X"95",X"22",X"22",X"22",X"95",X"22",X"99",X"22",X"99", + X"92",X"79",X"22",X"99",X"96",X"57",X"69",X"79",X"96",X"75",X"69",X"77",X"96",X"95",X"69",X"77", + X"99",X"77",X"99",X"74",X"00",X"77",X"09",X"49",X"00",X"79",X"00",X"99",X"00",X"99",X"00",X"90", + X"00",X"99",X"29",X"00",X"00",X"22",X"99",X"00",X"00",X"22",X"90",X"00",X"00",X"99",X"99",X"00", + X"00",X"E9",X"44",X"00",X"00",X"CC",X"44",X"00",X"DD",X"99",X"49",X"00",X"DD",X"94",X"59",X"00", + X"D0",X"C9",X"99",X"00",X"90",X"C9",X"99",X"00",X"90",X"CC",X"93",X"00",X"99",X"99",X"33",X"00", + X"09",X"39",X"39",X"00",X"09",X"33",X"99",X"00",X"00",X"39",X"9A",X"00",X"99",X"39",X"AA",X"00", + X"95",X"33",X"AA",X"00",X"55",X"33",X"AA",X"00",X"95",X"13",X"99",X"90",X"95",X"33",X"96",X"99", + X"99",X"99",X"66",X"69",X"66",X"69",X"66",X"99",X"22",X"92",X"22",X"95",X"22",X"99",X"22",X"95", + X"22",X"79",X"29",X"99",X"92",X"77",X"29",X"79",X"96",X"77",X"69",X"79",X"96",X"77",X"69",X"79", + X"96",X"77",X"69",X"59",X"99",X"79",X"99",X"99",X"00",X"99",X"00",X"90",X"00",X"90",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"E9",X"00",X"00",X"00",X"E9",X"00", + X"00",X"09",X"E9",X"00",X"00",X"9E",X"EE",X"00",X"00",X"E9",X"EE",X"00",X"00",X"EE",X"EE",X"00", + X"00",X"EE",X"E9",X"00",X"00",X"9E",X"EE",X"00",X"00",X"99",X"EE",X"00",X"00",X"E9",X"9E",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"E9",X"00",X"00",X"99",X"EE",X"00", + X"00",X"99",X"E9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"E9",X"00",X"00",X"00",X"E9",X"00",X"00",X"09",X"E9",X"00", + X"00",X"99",X"EE",X"00",X"00",X"9E",X"EE",X"00",X"00",X"E9",X"EE",X"00",X"00",X"EE",X"E9",X"00", + X"00",X"9E",X"EE",X"00",X"00",X"99",X"EE",X"00",X"00",X"99",X"9E",X"00",X"00",X"E9",X"99",X"00", + X"00",X"E9",X"99",X"00",X"00",X"E9",X"99",X"00",X"00",X"EE",X"90",X"00",X"00",X"9E",X"00",X"00", + X"00",X"9E",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"EE",X"90",X"00", + X"00",X"EE",X"90",X"00",X"00",X"EE",X"90",X"00",X"00",X"9E",X"00",X"00",X"00",X"9E",X"00",X"00", + X"00",X"EE",X"90",X"00",X"00",X"EE",X"90",X"00",X"00",X"9E",X"90",X"00",X"00",X"9E",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"E9",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"EE",X"00",X"00", + X"00",X"9E",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"E9",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9E",X"00",X"00",X"00",X"9E",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"EE",X"90",X"00",X"00",X"EE",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"44",X"09",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"90",X"99", + X"00",X"00",X"99",X"AA",X"00",X"00",X"D9",X"AA",X"09",X"90",X"FD",X"9A",X"99",X"99",X"99",X"99", + X"9A",X"92",X"99",X"AA",X"99",X"22",X"99",X"AA",X"9A",X"99",X"55",X"99",X"99",X"00",X"99",X"00", + X"09",X"00",X"99",X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"F0",X"00",X"99",X"00",X"F0",X"09",X"49",X"00",X"F0",X"99",X"44",X"00",X"FF",X"94",X"99",X"00", + X"00",X"9C",X"9C",X"00",X"00",X"99",X"9C",X"00",X"00",X"09",X"CC",X"00",X"00",X"99",X"4C",X"00", + X"00",X"55",X"C9",X"00",X"00",X"55",X"99",X"00",X"00",X"95",X"55",X"00",X"00",X"99",X"55",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"59",X"00",X"00",X"59",X"55",X"00", + X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"22",X"00",X"00",X"09",X"22",X"00", + X"00",X"99",X"29",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00", + X"00",X"90",X"99",X"00",X"00",X"90",X"29",X"00",X"00",X"90",X"29",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"0F",X"09",X"00",X"00",X"FF",X"00",X"00",X"00",X"0F",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"49",X"00",X"00",X"09",X"44",X"00", + X"00",X"09",X"94",X"00",X"00",X"09",X"49",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"77",X"00",X"00",X"97",X"77",X"00",X"00",X"95",X"79",X"00",X"00",X"95",X"99",X"00", + X"00",X"95",X"95",X"00",X"00",X"97",X"97",X"00",X"00",X"99",X"77",X"00",X"00",X"09",X"77",X"00", + X"00",X"09",X"79",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"22",X"00",X"00",X"09",X"22",X"00", + X"00",X"09",X"22",X"00",X"00",X"09",X"29",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"29",X"00",X"00",X"E9",X"22",X"00", + X"00",X"E9",X"99",X"00",X"00",X"E9",X"09",X"00",X"00",X"EE",X"09",X"00",X"00",X"99",X"09",X"00", + X"09",X"99",X"00",X"00",X"09",X"94",X"90",X"00",X"09",X"44",X"90",X"00",X"99",X"49",X"99",X"00", + X"99",X"9A",X"49",X"00",X"99",X"99",X"99",X"00",X"99",X"CC",X"C9",X"00",X"09",X"CC",X"99",X"00", + X"09",X"44",X"90",X"00",X"99",X"44",X"90",X"00",X"99",X"99",X"99",X"00",X"99",X"29",X"22",X"00", + X"99",X"92",X"22",X"00",X"99",X"92",X"22",X"00",X"00",X"22",X"92",X"00",X"00",X"29",X"92",X"00", + X"00",X"22",X"22",X"00",X"00",X"22",X"22",X"00",X"00",X"22",X"22",X"00",X"00",X"99",X"99",X"00", + X"00",X"69",X"CC",X"00",X"00",X"66",X"CC",X"00",X"00",X"66",X"9C",X"00",X"00",X"66",X"99",X"00", + X"00",X"96",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"19",X"00",X"00", + X"00",X"99",X"99",X"00",X"00",X"19",X"19",X"00",X"00",X"99",X"11",X"00",X"00",X"90",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"94",X"00",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99", + X"00",X"09",X"9C",X"00",X"00",X"09",X"9C",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"9C",X"00", + X"00",X"09",X"94",X"00",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"00",X"00",X"99",X"00", + X"00",X"00",X"29",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"92",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"66",X"90",X"00",X"00",X"66",X"99",X"00",X"99",X"96",X"69", + X"00",X"19",X"66",X"99",X"00",X"19",X"99",X"91",X"00",X"19",X"90",X"91",X"00",X"19",X"00",X"99", + X"00",X"19",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"99",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"99", + X"00",X"00",X"44",X"99",X"00",X"00",X"49",X"99",X"00",X"00",X"99",X"92",X"00",X"00",X"94",X"92", + X"00",X"00",X"49",X"92",X"00",X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00",X"09",X"99",X"99", + X"00",X"99",X"22",X"99",X"00",X"92",X"22",X"99",X"00",X"99",X"22",X"00",X"00",X"99",X"22",X"00", + X"00",X"99",X"22",X"00",X"00",X"99",X"22",X"00",X"00",X"99",X"22",X"00",X"00",X"92",X"99",X"00", + X"00",X"99",X"69",X"00",X"00",X"9C",X"66",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"99",X"99",X"49",X"99",X"99",X"99",X"44",X"99", + X"09",X"CC",X"44",X"09",X"09",X"CC",X"44",X"09",X"09",X"99",X"44",X"09",X"09",X"29",X"94",X"09", + X"09",X"09",X"94",X"09",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"00",X"09",X"90",X"00", + X"00",X"09",X"90",X"00",X"00",X"09",X"20",X"00",X"00",X"99",X"20",X"00",X"00",X"99",X"20",X"00", + X"00",X"29",X"20",X"00",X"00",X"22",X"20",X"00",X"00",X"92",X"20",X"00",X"00",X"99",X"90",X"00", + X"00",X"69",X"60",X"00",X"00",X"96",X"60",X"00",X"00",X"99",X"90",X"00",X"00",X"09",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"77",X"00",X"09",X"90",X"77",X"00",X"99",X"99",X"99",X"00",X"44",X"44",X"66",X"00", + X"99",X"99",X"66",X"00",X"9E",X"EC",X"66",X"00",X"CE",X"9C",X"99",X"99",X"9C",X"99",X"00",X"33", + X"9C",X"C9",X"00",X"93",X"99",X"C9",X"09",X"93",X"09",X"99",X"93",X"99",X"99",X"90",X"31",X"90", + X"95",X"90",X"93",X"90",X"99",X"90",X"99",X"90",X"99",X"99",X"00",X"90",X"99",X"CE",X"00",X"90", + X"95",X"CE",X"00",X"99",X"95",X"9C",X"00",X"99",X"95",X"99",X"99",X"99",X"99",X"90",X"99",X"44", + X"99",X"90",X"09",X"44",X"91",X"90",X"09",X"44",X"99",X"90",X"09",X"44",X"99",X"99",X"00",X"44", + X"99",X"11",X"00",X"44",X"11",X"11",X"00",X"49",X"11",X"11",X"00",X"99",X"11",X"91",X"00",X"59", + X"11",X"99",X"00",X"95",X"19",X"09",X"00",X"95",X"99",X"00",X"00",X"59",X"99",X"00",X"00",X"99", + X"00",X"90",X"00",X"66",X"00",X"99",X"00",X"66",X"99",X"49",X"00",X"66",X"94",X"44",X"00",X"AA", + X"99",X"99",X"00",X"AA",X"99",X"EC",X"00",X"66",X"9C",X"C9",X"00",X"66",X"99",X"C9",X"00",X"66", + X"09",X"CC",X"00",X"99",X"09",X"99",X"09",X"90",X"99",X"CC",X"99",X"90",X"95",X"99",X"93",X"99", + X"99",X"90",X"93",X"11",X"99",X"99",X"99",X"99",X"99",X"CE",X"00",X"90",X"95",X"CE",X"00",X"99", + X"95",X"9C",X"00",X"99",X"95",X"99",X"99",X"99",X"99",X"90",X"99",X"44",X"99",X"90",X"09",X"44", + X"91",X"90",X"09",X"44",X"91",X"90",X"09",X"44",X"91",X"90",X"00",X"44",X"99",X"90",X"00",X"44", + X"09",X"00",X"00",X"49",X"09",X"00",X"00",X"99",X"09",X"00",X"00",X"99",X"09",X"00",X"00",X"79", + X"09",X"00",X"00",X"79",X"09",X"99",X"00",X"59",X"09",X"99",X"00",X"99",X"09",X"99",X"00",X"90", + X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"9C",X"00",X"00",X"00",X"A9",X"00", + X"00",X"00",X"29",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"C9",X"00",X"09",X"00",X"99",X"00", + X"09",X"00",X"99",X"00",X"09",X"90",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"94",X"C9",X"00", + X"00",X"44",X"99",X"00",X"00",X"44",X"CC",X"00",X"00",X"94",X"99",X"00",X"00",X"99",X"44",X"90", + X"00",X"00",X"99",X"90",X"00",X"00",X"C9",X"90",X"00",X"00",X"C9",X"90",X"00",X"00",X"C9",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"99",X"92",X"00", + X"00",X"99",X"22",X"00",X"00",X"92",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"19",X"22",X"00", + X"00",X"11",X"99",X"00",X"00",X"91",X"11",X"00",X"00",X"99",X"11",X"00",X"00",X"09",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"94",X"99",X"00", + X"00",X"44",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"9A",X"C9",X"00",X"00",X"9A",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"9C",X"90",X"00",X"00",X"94",X"99",X"00",X"00",X"99",X"97",X"00", + X"00",X"99",X"97",X"00",X"00",X"97",X"77",X"00",X"00",X"77",X"77",X"00",X"00",X"79",X"79",X"00", + X"00",X"79",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"77",X"00",X"00",X"99",X"79",X"00", + X"00",X"90",X"9D",X"00",X"00",X"99",X"DD",X"00",X"00",X"49",X"9D",X"00",X"00",X"49",X"DD",X"00", + X"00",X"49",X"DD",X"00",X"00",X"99",X"D9",X"00",X"00",X"49",X"DD",X"00",X"00",X"99",X"9D",X"00", + X"00",X"90",X"99",X"00",X"00",X"90",X"09",X"00",X"00",X"90",X"99",X"00",X"00",X"90",X"99",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_3.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_3.vhd new file mode 100644 index 00000000..4b88a5c3 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_3.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity domino_sp_bits_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 domino_sp_bits_3 is + type rom is array(0 to 8191) 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"09",X"00",X"00",X"00",X"91",X"00",X"00",X"99",X"91", + X"99",X"00",X"91",X"11",X"92",X"99",X"11",X"91",X"52",X"11",X"11",X"91",X"52",X"11",X"11",X"91", + X"99",X"99",X"11",X"19",X"00",X"00",X"11",X"91",X"00",X"00",X"99",X"19",X"00",X"00",X"00",X"91", + X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"91", + X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"AA",X"99",X"00",X"00",X"A2",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"9C",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00", + X"00",X"C9",X"99",X"00",X"00",X"CC",X"44",X"00",X"09",X"99",X"99",X"00",X"99",X"44",X"99",X"00", + X"94",X"44",X"99",X"00",X"44",X"99",X"99",X"00",X"44",X"44",X"99",X"00",X"99",X"44",X"99",X"00", + X"44",X"44",X"99",X"00",X"99",X"99",X"99",X"00",X"CC",X"22",X"99",X"00",X"CC",X"29",X"99",X"00", + X"99",X"92",X"99",X"00",X"00",X"92",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"90",X"99",X"00", + X"00",X"90",X"99",X"00",X"00",X"90",X"99",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"9A",X"99",X"00",X"00",X"92",X"CC",X"00",X"00",X"99",X"9C",X"00",X"00",X"C9",X"CC",X"00", + X"00",X"49",X"49",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00",X"00",X"C9",X"90",X"00", + X"09",X"CC",X"99",X"00",X"99",X"9C",X"49",X"00",X"94",X"99",X"44",X"00",X"94",X"44",X"99",X"00", + X"94",X"44",X"99",X"00",X"94",X"99",X"99",X"00",X"99",X"44",X"99",X"00",X"9C",X"44",X"99",X"00", + X"9C",X"44",X"99",X"00",X"99",X"99",X"99",X"00",X"00",X"22",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"29",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"AA",X"C9",X"00",X"00",X"2A",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"CC",X"99",X"00", + X"00",X"C9",X"CC",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"CC",X"00", + X"00",X"99",X"99",X"00",X"00",X"09",X"44",X"00",X"09",X"99",X"44",X"99",X"9D",X"99",X"44",X"99", + X"9D",X"99",X"4F",X"99",X"9D",X"99",X"99",X"99",X"9D",X"CC",X"99",X"99",X"9D",X"CC",X"99",X"99", + X"9D",X"CC",X"99",X"99",X"9D",X"99",X"99",X"99",X"9D",X"99",X"99",X"99",X"9D",X"99",X"99",X"99", + X"9D",X"9F",X"F9",X"99",X"9D",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"09",X"90",X"22",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"A9",X"99",X"00",X"00",X"29",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"99",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"94",X"00",X"99",X"99",X"44",X"90", + X"D9",X"99",X"44",X"90",X"D9",X"99",X"49",X"90",X"D9",X"99",X"99",X"90",X"D9",X"99",X"99",X"90", + X"D9",X"99",X"99",X"90",X"D9",X"99",X"99",X"90",X"D9",X"99",X"99",X"90",X"D9",X"99",X"99",X"90", + X"D9",X"99",X"99",X"90",X"D9",X"F9",X"99",X"90",X"D9",X"99",X"99",X"90",X"99",X"99",X"99",X"90", + X"00",X"99",X"90",X"00",X"00",X"11",X"90",X"00",X"00",X"11",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"C9",X"CC",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"CC",X"CC",X"00",X"00",X"CC",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"49",X"49",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"99",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"99",X"44",X"00",X"00",X"99",X"44",X"00",X"00",X"99",X"44",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"29",X"00",X"00",X"99",X"92",X"00",X"00",X"99",X"92",X"00", + X"00",X"91",X"22",X"00",X"00",X"11",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"11",X"99",X"00", + X"00",X"11",X"91",X"00",X"00",X"11",X"91",X"00",X"00",X"91",X"99",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"9C",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"CC",X"CC",X"00",X"00",X"9C",X"CC",X"00",X"00",X"99",X"99",X"00", + X"00",X"94",X"94",X"00",X"00",X"44",X"44",X"00",X"00",X"99",X"44",X"00",X"00",X"99",X"44",X"00", + X"00",X"99",X"44",X"90",X"00",X"99",X"44",X"90",X"00",X"99",X"44",X"90",X"00",X"99",X"94",X"90", + X"00",X"99",X"99",X"90",X"00",X"99",X"22",X"90",X"00",X"99",X"29",X"90",X"00",X"99",X"99",X"90", + X"00",X"99",X"91",X"90",X"00",X"99",X"11",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"11",X"00", + X"00",X"99",X"11",X"00",X"00",X"99",X"11",X"00",X"00",X"09",X"91",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"9C",X"00",X"00",X"99",X"9C",X"00", + X"00",X"09",X"9C",X"00",X"00",X"09",X"9C",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"CC",X"00", + X"00",X"09",X"CC",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90", + X"00",X"99",X"44",X"99",X"00",X"44",X"CC",X"C9",X"99",X"44",X"99",X"C9",X"19",X"44",X"94",X"C9", + X"11",X"44",X"44",X"C9",X"99",X"99",X"99",X"99",X"92",X"99",X"44",X"00",X"22",X"44",X"94",X"00", + X"22",X"44",X"99",X"99",X"22",X"99",X"99",X"91",X"92",X"29",X"99",X"91",X"99",X"99",X"00",X"11", + X"09",X"00",X"00",X"11",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99", + X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"9C",X"00", + X"00",X"99",X"9C",X"00",X"00",X"99",X"9C",X"00",X"00",X"09",X"9C",X"00",X"00",X"09",X"CC",X"00", + X"00",X"09",X"CC",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"99", + X"00",X"00",X"99",X"9C",X"00",X"99",X"44",X"9C",X"00",X"44",X"CC",X"CC",X"00",X"44",X"99",X"C9", + X"00",X"44",X"94",X"C9",X"00",X"44",X"44",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"00", + X"00",X"44",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"29",X"00",X"00", + X"00",X"99",X"00",X"00",X"09",X"92",X"00",X"00",X"99",X"22",X"00",X"00",X"19",X"29",X"00",X"00", + X"11",X"99",X"00",X"00",X"11",X"99",X"00",X"00",X"99",X"11",X"00",X"00",X"99",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"A9",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"9C",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9F",X"CC",X"00", + X"00",X"99",X"CC",X"00",X"00",X"9C",X"9C",X"00",X"09",X"99",X"CC",X"00",X"09",X"94",X"CC",X"00", + X"09",X"94",X"99",X"00",X"09",X"99",X"99",X"00",X"09",X"44",X"49",X"00",X"09",X"44",X"49",X"00", + X"00",X"44",X"49",X"00",X"00",X"99",X"99",X"00",X"00",X"22",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"92",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00", + X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00", + X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"CC",X"CC",X"00",X"00",X"4C",X"CC",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"C9",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"99",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"44",X"99",X"00",X"00",X"99",X"44",X"00", + X"00",X"44",X"99",X"00",X"00",X"99",X"92",X"00",X"00",X"22",X"99",X"00",X"00",X"22",X"91",X"00", + X"00",X"99",X"11",X"00",X"00",X"92",X"11",X"00",X"00",X"99",X"11",X"00",X"00",X"91",X"99",X"00", + X"00",X"99",X"11",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"C9",X"CC",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"CC",X"CC",X"00",X"00",X"C9",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"44",X"49",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00", + X"00",X"44",X"44",X"00",X"00",X"44",X"94",X"00",X"00",X"44",X"44",X"00",X"00",X"49",X"99",X"00", + X"00",X"99",X"29",X"00",X"00",X"22",X"22",X"00",X"00",X"99",X"92",X"00",X"00",X"91",X"22",X"00", + X"00",X"11",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"11",X"99",X"00",X"00",X"11",X"91",X"00", + X"00",X"11",X"99",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"CC",X"00",X"00",X"C9",X"CC",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"CC",X"C9",X"00",X"00",X"99",X"99",X"00",X"00",X"94",X"99",X"00", + X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"49",X"00",X"00",X"44",X"49",X"00", + X"00",X"99",X"49",X"00",X"00",X"99",X"49",X"00",X"00",X"44",X"49",X"00",X"00",X"99",X"49",X"00", + X"00",X"22",X"99",X"00",X"00",X"29",X"29",X"00",X"00",X"99",X"29",X"00",X"00",X"99",X"99",X"00", + X"00",X"90",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"DD",X"9C",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"CC",X"00",X"99",X"99",X"9C",X"00", + X"99",X"99",X"94",X"00",X"99",X"99",X"44",X"00",X"9F",X"9C",X"9C",X"00",X"99",X"99",X"9C",X"00", + X"99",X"99",X"C9",X"00",X"99",X"49",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"94",X"00", + X"99",X"94",X"49",X"00",X"DD",X"94",X"44",X"00",X"99",X"99",X"99",X"00",X"99",X"94",X"99",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"92",X"00",X"99",X"09",X"22",X"00",X"99",X"09",X"22",X"00", + X"9F",X"09",X"22",X"00",X"99",X"09",X"92",X"00",X"99",X"09",X"29",X"00",X"99",X"09",X"22",X"00", + X"99",X"99",X"99",X"00",X"99",X"91",X"11",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"AC",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"C9",X"F9",X"00", + X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"49",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"C9",X"F9",X"00",X"00",X"C9",X"99",X"00", + X"00",X"CC",X"99",X"00",X"00",X"CC",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"F9",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"C9",X"CC",X"00",X"00",X"CC",X"CC",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"CC",X"CC",X"00",X"00",X"CC",X"C9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"94",X"00",X"00",X"49",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00", + X"00",X"99",X"44",X"00",X"00",X"99",X"44",X"00",X"00",X"94",X"44",X"00",X"00",X"94",X"44",X"00", + X"00",X"44",X"99",X"00",X"00",X"99",X"22",X"00",X"00",X"92",X"22",X"00",X"00",X"92",X"92",X"00", + X"00",X"92",X"22",X"00",X"00",X"92",X"22",X"00",X"00",X"92",X"22",X"00",X"00",X"99",X"22",X"00", + X"00",X"99",X"22",X"00",X"00",X"19",X"99",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"9C",X"00",X"00",X"99",X"9C",X"00", + X"00",X"CC",X"97",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"CC",X"00",X"00",X"9C",X"CC",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"CC",X"94",X"00",X"00",X"CC",X"94",X"00",X"00",X"CC",X"94",X"00", + X"00",X"C9",X"49",X"00",X"00",X"CC",X"49",X"00",X"00",X"99",X"99",X"00",X"09",X"44",X"90",X"00", + X"99",X"44",X"00",X"00",X"94",X"44",X"99",X"00",X"49",X"44",X"49",X"00",X"44",X"44",X"44",X"00", + X"CC",X"44",X"44",X"00",X"C9",X"94",X"49",X"00",X"99",X"99",X"99",X"00",X"00",X"22",X"91",X"00", + X"00",X"22",X"91",X"00",X"00",X"92",X"91",X"00",X"00",X"99",X"91",X"00",X"00",X"09",X"91",X"00", + X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"CC",X"90",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"CC",X"00",X"00",X"9C",X"CC",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"CC",X"90",X"00",X"00",X"C9",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"C9",X"00",X"90",X"00",X"CC",X"99",X"99",X"00",X"99",X"44",X"CC",X"00",X"44",X"94",X"C9", + X"00",X"44",X"99",X"99",X"00",X"44",X"99",X"00",X"00",X"44",X"49",X"90",X"00",X"99",X"44",X"90", + X"00",X"11",X"44",X"90",X"00",X"11",X"49",X"90",X"00",X"11",X"99",X"90",X"99",X"11",X"22",X"90", + X"CC",X"11",X"22",X"90",X"CC",X"11",X"99",X"90",X"99",X"99",X"00",X"00",X"09",X"11",X"00",X"00", + X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"CC",X"C9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"94",X"00",X"00",X"99",X"99",X"00",X"00",X"94",X"99",X"00", + X"00",X"94",X"94",X"00",X"00",X"99",X"44",X"00",X"00",X"CC",X"99",X"00",X"00",X"99",X"90",X"00", + X"00",X"44",X"90",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"49",X"90",X"00",X"99",X"44",X"90", + X"00",X"11",X"44",X"90",X"00",X"11",X"49",X"90",X"00",X"11",X"99",X"90",X"99",X"11",X"22",X"90", + X"CC",X"11",X"22",X"90",X"CC",X"11",X"99",X"90",X"99",X"99",X"00",X"00",X"09",X"11",X"00",X"00", + X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"9F",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9D",X"00",X"00",X"00", + X"D9",X"00",X"00",X"00",X"D9",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"9F",X"00",X"00",X"99",X"D9",X"00",X"00",X"09",X"9D",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"F9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"D9",X"00",X"00",X"09",X"9D",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"09",X"99",X"99",X"00", + X"99",X"9F",X"99",X"00",X"DD",X"DD",X"DD",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"90",X"00",X"00",X"DD",X"D0",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"DD",X"90",X"00", + X"00",X"9D",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"09",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"D9",X"00",X"00", + X"09",X"D9",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"9D",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"9F",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"9D",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"D9",X"00",X"00",X"00",X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90", + X"00",X"00",X"99",X"D9",X"00",X"09",X"99",X"99",X"00",X"99",X"DD",X"99",X"00",X"99",X"9D",X"99", + X"00",X"D9",X"99",X"99",X"00",X"DD",X"99",X"99",X"00",X"9D",X"9D",X"90",X"00",X"99",X"DD",X"00", + X"00",X"99",X"D9",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"F9",X"F9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"F9",X"F9",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"F9",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"F9",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"00", + X"99",X"99",X"00",X"00",X"FF",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9D",X"DD",X"00",X"00",X"99",X"99",X"00",X"00", + X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"F9",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"00", + X"9F",X"9F",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"9D",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"DD",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"C9",X"C9",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"99",X"9C",X"00",X"00",X"99",X"99",X"00",X"00",X"2A",X"AE",X"00", + X"00",X"22",X"2E",X"00",X"00",X"CC",X"CC",X"00",X"00",X"C9",X"CC",X"00",X"00",X"CC",X"CC",X"90", + X"09",X"CC",X"CC",X"90",X"99",X"99",X"CC",X"99",X"99",X"F9",X"9C",X"99",X"99",X"99",X"9C",X"99", + X"99",X"9F",X"CC",X"99",X"99",X"99",X"C9",X"99",X"99",X"CC",X"C9",X"99",X"99",X"CC",X"99",X"99", + X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"C9",X"C9",X"99",X"99",X"CE",X"EC",X"99",X"99",X"EE", + X"EE",X"94",X"99",X"CC",X"EC",X"94",X"99",X"EE",X"CE",X"94",X"99",X"CC",X"EC",X"99",X"99",X"EC", + X"EE",X"99",X"99",X"CC",X"EC",X"99",X"99",X"C9",X"CE",X"99",X"99",X"C9",X"EC",X"9C",X"CC",X"99", + X"EE",X"CC",X"CC",X"90",X"CC",X"99",X"CC",X"90",X"CE",X"CC",X"EC",X"00",X"CC",X"CC",X"CE",X"00", + X"CC",X"CC",X"99",X"00",X"CC",X"99",X"BB",X"00",X"C9",X"BB",X"BB",X"00",X"C9",X"BB",X"BB",X"00", + X"C9",X"BB",X"BB",X"00",X"C9",X"BB",X"BB",X"00",X"99",X"BB",X"BB",X"00",X"99",X"BB",X"BB",X"00", + X"9B",X"BB",X"BB",X"00",X"9B",X"B9",X"BB",X"00",X"99",X"B9",X"BB",X"00",X"09",X"B9",X"BB",X"00", + X"99",X"B9",X"BB",X"00",X"99",X"99",X"BB",X"00",X"99",X"99",X"BB",X"00",X"97",X"79",X"BB",X"00", + X"97",X"79",X"BB",X"00",X"97",X"79",X"BB",X"00",X"99",X"99",X"BB",X"00",X"99",X"99",X"BB",X"00", + X"09",X"90",X"BB",X"00",X"00",X"00",X"BB",X"00",X"00",X"00",X"BB",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"E7",X"00",X"00",X"00",X"E9",X"00",X"00",X"00",X"77",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"90",X"00",X"99",X"00",X"99",X"00", + X"95",X"99",X"59",X"00",X"55",X"59",X"59",X"00",X"57",X"25",X"59",X"00",X"97",X"9E",X"99",X"00", + X"99",X"2E",X"90",X"00",X"55",X"E5",X"00",X"00",X"55",X"55",X"99",X"00",X"55",X"55",X"55",X"00", + X"55",X"95",X"99",X"99",X"55",X"45",X"99",X"59",X"55",X"44",X"99",X"55",X"55",X"44",X"59",X"95", + X"59",X"45",X"55",X"95",X"99",X"55",X"55",X"95",X"00",X"55",X"55",X"95",X"00",X"55",X"55",X"95", + X"00",X"55",X"55",X"99",X"00",X"99",X"55",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00", + X"00",X"99",X"95",X"00",X"00",X"97",X"55",X"00",X"00",X"99",X"55",X"00",X"00",X"59",X"59",X"00", + X"00",X"55",X"99",X"00",X"00",X"55",X"99",X"00",X"00",X"95",X"09",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00", + X"99",X"59",X"00",X"00",X"95",X"25",X"00",X"00",X"57",X"25",X"00",X"99",X"99",X"25",X"00",X"95", + X"55",X"55",X"00",X"95",X"55",X"59",X"00",X"95",X"55",X"59",X"99",X"95",X"55",X"59",X"55",X"95", + X"55",X"59",X"55",X"55",X"55",X"59",X"99",X"59",X"55",X"59",X"99",X"99",X"59",X"55",X"99",X"00", + X"99",X"95",X"59",X"00",X"00",X"55",X"55",X"00",X"00",X"55",X"55",X"99",X"99",X"55",X"55",X"79", + X"97",X"95",X"55",X"97",X"77",X"99",X"55",X"99",X"99",X"09",X"99",X"59",X"99",X"00",X"00",X"55", + X"95",X"00",X"00",X"55",X"55",X"00",X"00",X"55",X"59",X"00",X"00",X"55",X"59",X"00",X"00",X"55", + X"99",X"00",X"00",X"59",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"CC",X"A9",X"00",X"00",X"C9",X"A9",X"00",X"00",X"CC",X"9C",X"00",X"00",X"99",X"CC",X"00", + X"00",X"CC",X"CC",X"00",X"00",X"44",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"99",X"00", + X"00",X"CC",X"90",X"00",X"00",X"9C",X"00",X"00",X"00",X"99",X"00",X"00",X"99",X"99",X"99",X"00", + X"99",X"49",X"99",X"90",X"9F",X"44",X"99",X"90",X"99",X"44",X"49",X"90",X"99",X"94",X"44",X"90", + X"99",X"99",X"44",X"90",X"99",X"99",X"99",X"90",X"99",X"22",X"22",X"90",X"99",X"22",X"29",X"90", + X"9F",X"92",X"29",X"90",X"99",X"99",X"99",X"90",X"99",X"29",X"99",X"90",X"99",X"99",X"99",X"00", + X"00",X"19",X"99",X"00",X"00",X"19",X"11",X"00",X"00",X"19",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"C9",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"C9",X"CC",X"00",X"00",X"9C",X"CC",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"44",X"99",X"00",X"00",X"C9",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"99",X"99",X"99",X"00",X"99",X"49",X"99",X"00", + X"94",X"44",X"99",X"00",X"44",X"44",X"99",X"00",X"44",X"44",X"49",X"00",X"99",X"44",X"44",X"00", + X"44",X"44",X"44",X"00",X"99",X"99",X"99",X"90",X"CC",X"99",X"29",X"90",X"CC",X"99",X"22",X"90", + X"99",X"29",X"22",X"90",X"99",X"22",X"92",X"00",X"99",X"22",X"22",X"00",X"00",X"99",X"92",X"00", + X"00",X"90",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"99",X"99",X"90",X"00", + X"C9",X"C9",X"90",X"00",X"C9",X"99",X"99",X"00",X"99",X"C9",X"CC",X"00",X"99",X"9C",X"CC",X"00", + X"44",X"CC",X"C9",X"00",X"44",X"44",X"99",X"00",X"44",X"C9",X"90",X"00",X"94",X"CC",X"90",X"00", + X"99",X"CC",X"00",X"00",X"09",X"9C",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"49",X"00",X"00", + X"00",X"44",X"00",X"00",X"00",X"44",X"90",X"00",X"00",X"44",X"99",X"00",X"00",X"44",X"49",X"00", + X"00",X"44",X"49",X"00",X"00",X"99",X"99",X"90",X"00",X"99",X"29",X"90",X"00",X"99",X"22",X"90", + X"00",X"29",X"22",X"90",X"00",X"22",X"92",X"00",X"00",X"22",X"22",X"00",X"00",X"99",X"92",X"00", + X"00",X"90",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00", + X"05",X"99",X"90",X"00",X"05",X"99",X"99",X"55",X"55",X"99",X"99",X"50",X"50",X"C9",X"C9",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"9F",X"9C",X"00",X"A0",X"9F",X"F9",X"00",X"00",X"FF",X"FF",X"00", + X"00",X"FF",X"FF",X"00",X"00",X"FF",X"FF",X"00",X"00",X"99",X"99",X"00",X"00",X"CC",X"9C",X"00", + X"09",X"CC",X"C9",X"00",X"99",X"CC",X"C9",X"90",X"99",X"9C",X"99",X"90",X"99",X"99",X"99",X"99", + X"99",X"99",X"9C",X"99",X"99",X"CC",X"99",X"99",X"99",X"CC",X"49",X"99",X"99",X"CC",X"99",X"99", + X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"CC",X"99",X"99",X"CE",X"EC",X"99",X"99",X"EE", + X"CC",X"94",X"99",X"CC",X"EC",X"94",X"99",X"EE",X"99",X"94",X"99",X"99",X"09",X"99",X"99",X"09", + X"00",X"00",X"99",X"90",X"90",X"00",X"00",X"00",X"99",X"09",X"00",X"00",X"00",X"09",X"09",X"90", + X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"49",X"49",X"00", + X"00",X"44",X"49",X"00",X"00",X"99",X"94",X"00",X"00",X"9A",X"99",X"00",X"00",X"A9",X"A9",X"00", + X"00",X"AA",X"AA",X"00",X"00",X"A4",X"AA",X"00",X"00",X"49",X"44",X"00",X"00",X"44",X"49",X"90", + X"09",X"94",X"99",X"90",X"99",X"99",X"F9",X"99",X"99",X"FF",X"99",X"99",X"99",X"99",X"94",X"99", + X"99",X"FF",X"44",X"99",X"99",X"9F",X"49",X"99",X"99",X"49",X"49",X"99",X"99",X"44",X"99",X"99", + X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"C9",X"C9",X"99",X"99",X"CE",X"EC",X"99",X"99",X"EE", + X"EE",X"94",X"99",X"CC",X"EC",X"94",X"99",X"EE",X"CE",X"94",X"99",X"CC",X"EC",X"99",X"99",X"EC", + X"EE",X"99",X"99",X"CC",X"EC",X"99",X"99",X"C9",X"CE",X"99",X"99",X"C9",X"EC",X"9C",X"CC",X"99", + X"EE",X"CC",X"CC",X"90",X"CC",X"99",X"CC",X"90",X"CC",X"CC",X"EC",X"00",X"CC",X"CC",X"CE",X"00", + X"CC",X"CC",X"99",X"00",X"CC",X"99",X"4F",X"00",X"C9",X"F4",X"4F",X"00",X"C9",X"FF",X"FF",X"00", + X"C9",X"4F",X"44",X"00",X"C9",X"49",X"44",X"00",X"99",X"FF",X"FF",X"00",X"F9",X"FF",X"FF",X"00", + X"99",X"99",X"99",X"00",X"9E",X"EC",X"EE",X"00",X"9C",X"CC",X"CC",X"00",X"99",X"EE",X"CE",X"00", + X"09",X"CE",X"EE",X"00",X"00",X"EC",X"CC",X"00",X"00",X"CE",X"CE",X"00",X"00",X"EC",X"EC",X"00", + X"09",X"C9",X"CE",X"90",X"99",X"99",X"EC",X"90",X"B1",X"90",X"9C",X"99",X"BB",X"90",X"99",X"B9", + X"BB",X"99",X"00",X"99",X"BB",X"B9",X"99",X"1B",X"9B",X"99",X"BB",X"BB",X"99",X"9B",X"BB",X"BB", + X"99",X"BB",X"BB",X"B9",X"99",X"B9",X"99",X"B9",X"BB",X"99",X"99",X"99",X"99",X"BB",X"BB",X"90", + 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"00",X"00",X"09",X"77", + X"00",X"00",X"99",X"77",X"99",X"00",X"9E",X"99",X"9C",X"00",X"EE",X"BB",X"9C",X"00",X"EE",X"BB", + X"9C",X"99",X"EE",X"BB",X"9C",X"97",X"99",X"99",X"9C",X"99",X"45",X"45",X"9C",X"90",X"45",X"45", + X"9C",X"00",X"45",X"45",X"99",X"00",X"45",X"45",X"09",X"00",X"45",X"45",X"09",X"00",X"45",X"45", + X"09",X"00",X"45",X"45",X"09",X"00",X"45",X"45",X"99",X"00",X"45",X"45",X"96",X"00",X"47",X"45", + X"99",X"00",X"47",X"47",X"9A",X"00",X"47",X"49",X"9A",X"00",X"47",X"99",X"99",X"00",X"99",X"90", + X"09",X"00",X"95",X"90",X"99",X"00",X"99",X"00",X"9A",X"00",X"99",X"00",X"9A",X"00",X"90",X"99", + X"9A",X"00",X"99",X"AB",X"99",X"00",X"A9",X"55",X"99",X"00",X"99",X"BB",X"99",X"00",X"90",X"99", + 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"00",X"00",X"09",X"77", + X"00",X"00",X"99",X"77",X"99",X"00",X"9E",X"99",X"9C",X"00",X"EE",X"BB",X"9C",X"00",X"EE",X"BB", + X"9C",X"99",X"99",X"99",X"9C",X"97",X"45",X"45",X"9C",X"99",X"45",X"45",X"9C",X"90",X"45",X"45", + X"9C",X"00",X"45",X"45",X"99",X"00",X"45",X"45",X"09",X"00",X"45",X"45",X"09",X"00",X"45",X"45", + X"09",X"00",X"45",X"45",X"09",X"00",X"45",X"45",X"09",X"00",X"47",X"45",X"99",X"00",X"47",X"47", + X"96",X"00",X"47",X"49",X"99",X"00",X"47",X"99",X"AA",X"00",X"99",X"90",X"9A",X"00",X"95",X"00", + X"99",X"00",X"99",X"00",X"99",X"99",X"09",X"00",X"29",X"A9",X"99",X"90",X"22",X"A9",X"B9",X"99", + X"29",X"99",X"5B",X"B9",X"99",X"99",X"5B",X"A9",X"99",X"99",X"A9",X"99",X"99",X"90",X"99",X"90", + X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"94",X"99",X"00", + X"00",X"44",X"49",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"CC",X"00",X"00",X"44",X"99",X"00", + X"00",X"4C",X"C9",X"00",X"00",X"4C",X"C9",X"00",X"00",X"49",X"C9",X"00",X"09",X"99",X"99",X"00", + X"99",X"AA",X"9A",X"90",X"9C",X"AA",X"AA",X"99",X"CC",X"AA",X"AA",X"C9",X"CC",X"99",X"99",X"CC", + X"CC",X"99",X"99",X"CC",X"CC",X"AA",X"AA",X"CC",X"99",X"AA",X"AA",X"C9",X"00",X"AA",X"AA",X"99", + X"99",X"AA",X"AA",X"44",X"55",X"22",X"22",X"99",X"55",X"AA",X"AA",X"55",X"55",X"99",X"99",X"55", + X"45",X"CC",X"CC",X"55",X"45",X"99",X"CC",X"54",X"45",X"90",X"CC",X"54",X"55",X"99",X"CC",X"54", + X"55",X"29",X"CC",X"55",X"99",X"99",X"99",X"99",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00", + X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"94",X"99",X"00", + X"00",X"4A",X"49",X"00",X"00",X"C2",X"44",X"00",X"00",X"CC",X"44",X"00",X"00",X"9C",X"44",X"00", + X"00",X"C4",X"44",X"00",X"00",X"C9",X"44",X"00",X"09",X"C4",X"44",X"00",X"99",X"9C",X"99",X"90", + X"9C",X"99",X"AA",X"99",X"CC",X"AA",X"AA",X"C9",X"CC",X"AA",X"AA",X"CC",X"CC",X"AA",X"AA",X"CC", + X"CC",X"99",X"99",X"CC",X"99",X"AA",X"99",X"C9",X"00",X"AA",X"AA",X"99",X"99",X"AA",X"AA",X"44", + X"55",X"AA",X"AA",X"99",X"55",X"22",X"22",X"55",X"55",X"AA",X"AA",X"55",X"45",X"99",X"99",X"54", + X"45",X"C9",X"CC",X"54",X"45",X"C9",X"9C",X"54",X"55",X"C9",X"9C",X"55",X"55",X"C9",X"99",X"55", + X"99",X"C9",X"22",X"99",X"00",X"99",X"99",X"00",X"00",X"29",X"00",X"00",X"00",X"22",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"94",X"99",X"00", + X"00",X"44",X"49",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"49",X"00", + X"00",X"94",X"99",X"00",X"09",X"99",X"9A",X"00",X"99",X"99",X"AA",X"00",X"9C",X"A9",X"AA",X"90", + X"CC",X"AA",X"AA",X"99",X"CC",X"AA",X"AA",X"C9",X"9C",X"AA",X"AA",X"CC",X"CC",X"AA",X"AA",X"99", + X"CC",X"A9",X"9A",X"CC",X"99",X"99",X"99",X"C9",X"00",X"AA",X"AA",X"99",X"99",X"AA",X"AA",X"00", + X"55",X"AA",X"AA",X"99",X"55",X"AA",X"AA",X"55",X"55",X"AA",X"AA",X"55",X"45",X"99",X"99",X"55", + X"45",X"C9",X"CC",X"54",X"45",X"C9",X"9C",X"54",X"55",X"C9",X"9C",X"54",X"55",X"C9",X"99",X"55", + X"99",X"C9",X"22",X"55",X"00",X"99",X"99",X"99",X"00",X"29",X"00",X"00",X"00",X"22",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"55",X"99",X"00",X"00",X"99",X"55",X"00", + X"00",X"9F",X"95",X"00",X"00",X"FF",X"95",X"00",X"00",X"FF",X"99",X"00",X"00",X"FF",X"F9",X"00", + X"00",X"FF",X"FF",X"00",X"00",X"99",X"FF",X"00",X"00",X"99",X"FF",X"00",X"00",X"F9",X"FF",X"00", + X"00",X"FF",X"FF",X"00",X"00",X"FF",X"F9",X"00",X"00",X"FF",X"F9",X"90",X"00",X"FF",X"95",X"90", + X"00",X"FF",X"95",X"90",X"00",X"9F",X"55",X"90",X"00",X"99",X"59",X"90",X"00",X"55",X"99",X"90", + X"00",X"99",X"99",X"90",X"00",X"99",X"99",X"90",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"AA",X"00",X"00",X"00",X"D9",X"09",X"00",X"00",X"CC",X"09",X"00",X"00",X"9C",X"09",X"00", + X"9D",X"99",X"99",X"00",X"9D",X"C4",X"93",X"00",X"90",X"CC",X"33",X"00",X"90",X"9C",X"33",X"00", + X"99",X"99",X"99",X"00",X"95",X"33",X"29",X"00",X"55",X"93",X"29",X"00",X"55",X"99",X"29",X"00", + X"55",X"99",X"99",X"00",X"55",X"99",X"96",X"00",X"55",X"99",X"66",X"00",X"99",X"33",X"66",X"90", + X"66",X"99",X"66",X"99",X"22",X"22",X"22",X"55",X"22",X"22",X"22",X"55",X"22",X"22",X"29",X"59", + X"29",X"92",X"99",X"99",X"99",X"99",X"97",X"96",X"97",X"79",X"77",X"96",X"97",X"79",X"75",X"96", + X"97",X"79",X"77",X"99",X"99",X"99",X"97",X"90",X"09",X"90",X"99",X"00",X"00",X"00",X"09",X"00", + X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"99",X"00",X"00",X"99",X"94",X"00", + X"00",X"A9",X"44",X"00",X"00",X"CC",X"99",X"00",X"00",X"9C",X"9C",X"00",X"00",X"99",X"CC",X"00", + X"9D",X"44",X"C9",X"00",X"9D",X"99",X"9C",X"00",X"90",X"CC",X"99",X"00",X"90",X"CC",X"90",X"00", + X"90",X"99",X"90",X"00",X"99",X"33",X"99",X"00",X"95",X"93",X"29",X"00",X"55",X"99",X"29",X"00", + X"55",X"99",X"A9",X"00",X"55",X"99",X"99",X"00",X"55",X"99",X"96",X"00",X"55",X"33",X"66",X"00", + X"99",X"33",X"66",X"90",X"66",X"99",X"66",X"99",X"22",X"22",X"29",X"55",X"29",X"22",X"99",X"55", + X"99",X"92",X"97",X"59",X"97",X"92",X"77",X"99",X"97",X"96",X"77",X"96",X"97",X"96",X"77",X"96", + X"95",X"96",X"77",X"96",X"99",X"99",X"97",X"99",X"09",X"00",X"99",X"00",X"00",X"00",X"09",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"EE",X"00",X"00",X"EE",X"AE",X"00",X"00",X"99",X"EE",X"00",X"00",X"EE",X"EE",X"00", + X"00",X"EE",X"9E",X"00",X"00",X"EE",X"9E",X"00",X"00",X"EE",X"99",X"00",X"00",X"E9",X"E9",X"00", + X"09",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"9E",X"90",X"99",X"00",X"99",X"00",X"99",X"00", + X"09",X"00",X"99",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"99",X"00",X"09",X"99",X"EE",X"00", + X"09",X"EE",X"AE",X"00",X"00",X"99",X"AE",X"00",X"00",X"9E",X"EE",X"00",X"00",X"EE",X"9E",X"00", + X"00",X"EE",X"9E",X"00",X"00",X"EE",X"99",X"00",X"00",X"EE",X"E9",X"00",X"00",X"9E",X"99",X"00", + X"00",X"99",X"09",X"00",X"00",X"EE",X"00",X"00",X"00",X"E9",X"00",X"00",X"00",X"EE",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9E",X"00",X"00",X"00",X"EA",X"00",X"00",X"00",X"EA",X"00",X"00", + X"00",X"EE",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"E9",X"00",X"00",X"00",X"E9",X"00",X"00", + X"00",X"EE",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"E9",X"00",X"00",X"00",X"E9",X"00",X"00", + X"00",X"E9",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"9E",X"00",X"00", + X"99",X"99",X"00",X"00",X"9E",X"9E",X"00",X"00",X"9E",X"EE",X"00",X"00",X"99",X"EE",X"00",X"00", + X"09",X"99",X"00",X"00",X"00",X"E9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"09",X"00",X"00",X"99",X"94",X"00",X"00",X"09",X"09",X"00",X"00",X"00",X"00",X"90", + X"00",X"09",X"00",X"99",X"99",X"99",X"90",X"A9",X"9A",X"9D",X"99",X"A9",X"AA",X"99",X"99",X"9A", + X"AA",X"99",X"92",X"AA",X"99",X"99",X"99",X"99",X"AA",X"95",X"90",X"90",X"AA",X"99",X"90",X"00", + X"99",X"99",X"90",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"94",X"90",X"00",X"00",X"44",X"99",X"00",X"FF",X"99",X"49",X"00", + X"00",X"C9",X"C9",X"00",X"00",X"C9",X"99",X"00",X"00",X"CC",X"90",X"00",X"00",X"94",X"90",X"00", + X"00",X"9C",X"99",X"00",X"00",X"99",X"59",X"00",X"00",X"55",X"55",X"00",X"00",X"55",X"55",X"00", + X"00",X"99",X"99",X"00",X"00",X"59",X"99",X"00",X"00",X"55",X"99",X"00",X"00",X"55",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"90",X"00", + X"00",X"22",X"90",X"00",X"00",X"92",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"99",X"00", + X"00",X"09",X"9E",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"9E",X"00", + X"00",X"00",X"9E",X"00",X"00",X"00",X"99",X"00",X"00",X"F0",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"94",X"90",X"00",X"00",X"44",X"90",X"00", + X"00",X"49",X"90",X"00",X"00",X"94",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"95",X"00",X"00",X"79",X"97",X"00",X"00",X"79",X"57",X"00", + X"00",X"99",X"79",X"00",X"00",X"77",X"79",X"00",X"00",X"77",X"99",X"00",X"00",X"97",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"90",X"00", + X"00",X"22",X"90",X"00",X"00",X"92",X"90",X"00",X"00",X"92",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"92",X"99",X"00",X"00",X"22",X"9E",X"00", + X"00",X"99",X"9E",X"00",X"00",X"90",X"9E",X"00",X"00",X"90",X"EE",X"00",X"00",X"90",X"99",X"00", + X"99",X"99",X"00",X"00",X"CC",X"44",X"00",X"00",X"CC",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"9C",X"00",X"00",X"99",X"9C",X"00",X"00",X"29",X"CC",X"00",X"00",X"29",X"99",X"00",X"00", + X"29",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"CC",X"90",X"00",X"99",X"99",X"90",X"00", + X"99",X"22",X"90",X"00",X"99",X"22",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"22",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"66",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00", + X"00",X"09",X"90",X"00",X"00",X"99",X"99",X"00",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99", + X"90",X"94",X"9C",X"90",X"90",X"94",X"9C",X"90",X"90",X"94",X"99",X"90",X"90",X"99",X"90",X"90", + X"90",X"99",X"90",X"90",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"99",X"00",X"09",X"90",X"00", + X"00",X"09",X"90",X"00",X"00",X"09",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"92",X"92",X"00",X"00",X"92",X"22",X"00",X"00",X"92",X"29",X"00",X"00",X"92",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"96",X"99",X"09",X"00",X"99",X"99",X"99",X"00",X"99",X"90",X"11", + X"00",X"66",X"90",X"11",X"00",X"66",X"90",X"19",X"00",X"99",X"00",X"19",X"00",X"99",X"00",X"90", + X"00",X"19",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"99",X"90",X"00",X"09",X"49",X"90",X"00",X"09",X"44",X"90",X"00",X"99",X"44",X"99", + X"00",X"94",X"44",X"99",X"00",X"94",X"94",X"99",X"00",X"94",X"44",X"99",X"00",X"99",X"99",X"90", + X"00",X"09",X"9C",X"90",X"00",X"09",X"CC",X"99",X"00",X"99",X"99",X"99",X"00",X"29",X"92",X"99", + X"00",X"29",X"29",X"99",X"00",X"99",X"22",X"99",X"00",X"92",X"22",X"00",X"00",X"22",X"22",X"00", + X"00",X"22",X"22",X"00",X"00",X"22",X"22",X"00",X"00",X"92",X"22",X"00",X"00",X"99",X"29",X"00", + X"00",X"99",X"99",X"00",X"00",X"96",X"66",X"00",X"00",X"96",X"99",X"00",X"00",X"99",X"66",X"00", + X"00",X"09",X"69",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"91",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"91",X"00",X"00",X"91",X"91",X"00",X"00",X"11",X"99",X"00",X"00",X"99",X"09",X"00", + X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"99",X"99",X"99",X"99",X"99",X"C9",X"99",X"99", + X"00",X"C9",X"90",X"00",X"00",X"C9",X"90",X"00",X"00",X"9C",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"49",X"90",X"00",X"99",X"9C",X"99",X"99",X"99",X"99",X"99",X"99",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00", + X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00",X"00",X"29",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"69",X"00",X"00",X"00",X"69",X"00",X"00",X"00",X"66",X"00",X"00", + X"00",X"66",X"00",X"00",X"00",X"66",X"00",X"00",X"00",X"66",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"99",X"00",X"79",X"00",X"94",X"00",X"79",X"00",X"44",X"90",X"AA",X"00",X"44",X"99",X"AA",X"00", + X"99",X"99",X"97",X"00",X"EE",X"C9",X"97",X"00",X"EE",X"CC",X"97",X"90",X"C4",X"99",X"99",X"99", + X"C4",X"00",X"00",X"39",X"CC",X"00",X"99",X"99",X"99",X"00",X"33",X"90",X"55",X"00",X"11",X"00", + X"55",X"00",X"33",X"00",X"55",X"00",X"99",X"00",X"95",X"90",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"EE",X"00",X"00",X"55",X"CC",X"09",X"99",X"55",X"9C",X"99",X"99",X"55",X"9C",X"77",X"44", + X"99",X"99",X"77",X"44",X"11",X"00",X"74",X"44",X"11",X"00",X"94",X"44",X"91",X"90",X"99",X"49", + X"99",X"99",X"09",X"99",X"99",X"11",X"00",X"90",X"19",X"11",X"00",X"00",X"99",X"19",X"00",X"90", + X"90",X"99",X"00",X"90",X"99",X"99",X"00",X"90",X"99",X"00",X"00",X"90",X"99",X"00",X"00",X"00", + X"09",X"00",X"00",X"69",X"99",X"00",X"09",X"97",X"94",X"99",X"09",X"77",X"44",X"49",X"09",X"77", + X"99",X"99",X"09",X"77",X"EE",X"CC",X"09",X"99",X"EE",X"CC",X"09",X"69",X"EC",X"99",X"00",X"69", + X"CC",X"90",X"00",X"99",X"9C",X"90",X"99",X"09",X"99",X"90",X"33",X"99",X"55",X"00",X"11",X"93", + X"55",X"00",X"31",X"31",X"95",X"90",X"99",X"99",X"99",X"99",X"00",X"00",X"99",X"EE",X"00",X"90", + X"55",X"CC",X"99",X"99",X"55",X"9C",X"99",X"99",X"55",X"9C",X"77",X"44",X"99",X"99",X"77",X"44", + X"11",X"00",X"44",X"44",X"11",X"00",X"94",X"44",X"11",X"00",X"99",X"49",X"99",X"00",X"09",X"99", + X"19",X"00",X"00",X"90",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00", + X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00",X"99",X"99",X"CC",X"00",X"9C",X"99",X"9C",X"00", + X"CC",X"99",X"94",X"00",X"9C",X"99",X"44",X"00",X"99",X"9C",X"9C",X"00",X"00",X"99",X"9C",X"00", + X"00",X"49",X"C9",X"00",X"00",X"44",X"99",X"00",X"00",X"99",X"94",X"00",X"00",X"99",X"44",X"00", + X"00",X"99",X"49",X"00",X"00",X"94",X"99",X"00",X"00",X"94",X"44",X"00",X"00",X"94",X"44",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"92",X"00",X"00",X"92",X"22",X"00",X"00",X"92",X"22",X"00", + X"00",X"22",X"22",X"00",X"00",X"22",X"92",X"00",X"00",X"22",X"29",X"00",X"00",X"92",X"22",X"00", + X"00",X"99",X"99",X"00",X"00",X"11",X"11",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"94",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00", + X"00",X"44",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"A9",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"C9",X"00",X"00",X"00",X"CC",X"90",X"00",X"00",X"49",X"99",X"00", + X"00",X"9C",X"79",X"00",X"00",X"99",X"79",X"00",X"00",X"97",X"99",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"99",X"CC",X"99",X"00",X"49",X"CC",X"79",X"00",X"00",X"99",X"99",X"00", + X"00",X"09",X"D9",X"00",X"00",X"09",X"D9",X"00",X"00",X"09",X"D9",X"00",X"00",X"09",X"99",X"00", + X"00",X"00",X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"DD",X"00",X"00",X"00",X"DD",X"00", + X"00",X"00",X"DD",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_4.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_4.vhd new file mode 100644 index 00000000..34d2c6b9 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/domino_sp_bits_4.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity domino_sp_bits_4 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 domino_sp_bits_4 is + type rom is array(0 to 8191) 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"99",X"00",X"09",X"00",X"99",X"00",X"92",X"99",X"90", + X"90",X"92",X"11",X"99",X"99",X"92",X"94",X"19",X"41",X"72",X"95",X"19",X"41",X"72",X"96",X"99", + X"99",X"92",X"11",X"19",X"00",X"92",X"11",X"99",X"00",X"92",X"91",X"19",X"00",X"92",X"91",X"99", + X"00",X"09",X"99",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99", + X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00", + X"09",X"9A",X"00",X"00",X"09",X"9A",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"CC",X"00",X"00", + X"09",X"C9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"09",X"99",X"90",X"00",X"99",X"CC",X"99",X"00",X"94",X"99",X"49",X"00",X"44",X"44",X"44",X"00", + X"44",X"94",X"94",X"00",X"99",X"99",X"94",X"00",X"99",X"44",X"44",X"00",X"90",X"94",X"44",X"00", + X"90",X"94",X"99",X"00",X"90",X"99",X"44",X"00",X"90",X"22",X"99",X"00",X"90",X"92",X"C9",X"00", + X"99",X"99",X"C9",X"00",X"09",X"92",X"90",X"00",X"09",X"99",X"00",X"00",X"09",X"09",X"00",X"00", + X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"A9",X"90",X"00",X"00",X"A9",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"9C",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"44",X"CC",X"90",X"00",X"44",X"99",X"99",X"00",X"49",X"44",X"49",X"00", + X"49",X"94",X"44",X"00",X"49",X"99",X"94",X"00",X"99",X"44",X"94",X"00",X"C9",X"94",X"44",X"00", + X"C9",X"94",X"44",X"00",X"99",X"99",X"99",X"00",X"00",X"22",X"44",X"00",X"00",X"92",X"99",X"00", + X"00",X"99",X"C9",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"90",X"00",X"00",X"09",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"90",X"00",X"00",X"CC",X"99",X"00",X"00",X"9C",X"99",X"00", + X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"C9",X"00",X"00",X"CC",X"C9",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"CC",X"49",X"00",X"99",X"99",X"49",X"00",X"99",X"99",X"99",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"94",X"99",X"00",X"99",X"94",X"99",X"00", + X"99",X"94",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"91",X"00",X"29",X"00", + X"91",X"00",X"91",X"00",X"99",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"C9",X"90",X"00",X"00",X"C9",X"90",X"00", + X"00",X"C9",X"90",X"00",X"00",X"C9",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"CC",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"99",X"00",X"00",X"CC",X"44",X"00",X"00",X"99",X"44",X"00",X"99",X"99",X"49",X"00", + X"99",X"9D",X"99",X"00",X"99",X"9D",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"99",X"C9",X"99",X"00",X"99",X"CC",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"9D",X"99",X"00", + X"99",X"9D",X"99",X"00",X"99",X"9D",X"99",X"00",X"99",X"9D",X"99",X"00",X"99",X"99",X"99",X"00", + X"00",X"99",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00", + X"00",X"CC",X"99",X"00",X"00",X"CC",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"CC",X"00",X"00", + X"00",X"99",X"99",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"09",X"44",X"99",X"00", + X"09",X"44",X"99",X"00",X"09",X"44",X"49",X"00",X"09",X"44",X"49",X"00",X"09",X"44",X"49",X"00", + X"09",X"49",X"49",X"00",X"09",X"99",X"99",X"00",X"09",X"22",X"99",X"00",X"09",X"99",X"29",X"00", + X"00",X"19",X"29",X"00",X"00",X"11",X"29",X"00",X"00",X"99",X"99",X"00",X"00",X"11",X"99",X"00", + X"00",X"11",X"19",X"00",X"00",X"11",X"19",X"00",X"00",X"19",X"99",X"00",X"00",X"99",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"CC",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"CC",X"C9",X"00",X"00",X"CC",X"99",X"00",X"00",X"9C",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"44",X"44",X"00",X"09",X"44",X"44",X"00",X"09",X"44",X"44",X"00", + X"09",X"44",X"99",X"00",X"09",X"44",X"99",X"00",X"09",X"44",X"49",X"00",X"09",X"49",X"49",X"00", + X"09",X"99",X"99",X"00",X"09",X"22",X"29",X"00",X"09",X"92",X"29",X"00",X"00",X"99",X"99",X"00", + X"00",X"22",X"19",X"00",X"00",X"99",X"11",X"00",X"00",X"22",X"99",X"00",X"00",X"99",X"11",X"00", + X"00",X"11",X"11",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"19",X"00",X"00",X"00",X"99",X"00", + X"00",X"09",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"9A",X"00",X"00",X"99",X"9A",X"00", + X"00",X"99",X"9A",X"00",X"00",X"99",X"9A",X"00",X"00",X"C9",X"99",X"00",X"00",X"C9",X"CC",X"00", + X"00",X"CC",X"C9",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"00", + X"00",X"99",X"49",X"00",X"00",X"49",X"C9",X"00",X"00",X"99",X"99",X"00",X"90",X"44",X"44",X"00", + X"90",X"44",X"44",X"00",X"90",X"99",X"99",X"00",X"99",X"99",X"49",X"00",X"29",X"44",X"99",X"00", + X"29",X"44",X"92",X"90",X"99",X"99",X"29",X"99",X"29",X"99",X"99",X"19",X"22",X"00",X"99",X"19", + X"92",X"00",X"99",X"99",X"99",X"00",X"09",X"90",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"09",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"CC",X"00", + X"00",X"99",X"9A",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"9A",X"00",X"00",X"C9",X"CC",X"00", + X"00",X"C9",X"CC",X"00",X"00",X"CC",X"C9",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"99",X"90", + X"00",X"9C",X"99",X"90",X"00",X"99",X"44",X"90",X"00",X"99",X"CC",X"90",X"00",X"49",X"99",X"90", + X"00",X"44",X"44",X"00",X"09",X"44",X"44",X"00",X"09",X"99",X"99",X"00",X"09",X"99",X"00",X"00", + X"09",X"44",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00",X"09",X"99",X"00",X"00", + X"99",X"92",X"00",X"00",X"92",X"29",X"00",X"00",X"22",X"99",X"00",X"00",X"92",X"90",X"00",X"00", + X"99",X"00",X"00",X"00",X"19",X"99",X"00",X"00",X"11",X"19",X"00",X"00",X"99",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"99",X"CC",X"90",X"00",X"09",X"CC",X"00",X"00",X"09",X"CC",X"00",X"00", + X"09",X"C9",X"00",X"00",X"09",X"C9",X"00",X"00",X"09",X"C9",X"00",X"00",X"09",X"CC",X"00",X"00", + X"99",X"C9",X"90",X"00",X"09",X"99",X"00",X"00",X"00",X"49",X"90",X"00",X"09",X"9F",X"90",X"00", + X"09",X"99",X"90",X"00",X"99",X"CC",X"99",X"00",X"99",X"99",X"99",X"00",X"49",X"44",X"99",X"00", + X"49",X"49",X"99",X"00",X"49",X"99",X"99",X"00",X"44",X"49",X"99",X"00",X"99",X"44",X"00",X"00", + X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"09",X"99",X"00",X"00", + X"09",X"09",X"00",X"00",X"09",X"09",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00", + X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"C9",X"99",X"00", + X"00",X"C9",X"99",X"00",X"00",X"C9",X"9C",X"00",X"00",X"C9",X"CC",X"00",X"00",X"C9",X"44",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"9C",X"CC",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"9C",X"00",X"00",X"94",X"CC",X"00", + X"00",X"94",X"CC",X"00",X"00",X"44",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"94",X"99",X"00", + X"00",X"44",X"99",X"00",X"00",X"99",X"29",X"00",X"00",X"22",X"99",X"00",X"00",X"22",X"19",X"00", + X"00",X"22",X"11",X"00",X"00",X"29",X"11",X"00",X"00",X"99",X"11",X"00",X"00",X"19",X"99",X"00", + X"00",X"99",X"11",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00", + X"09",X"CC",X"99",X"00",X"09",X"CC",X"99",X"00",X"09",X"99",X"9C",X"00",X"09",X"44",X"CC",X"00", + X"09",X"44",X"9C",X"00",X"09",X"44",X"99",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"49",X"00", + X"00",X"44",X"49",X"00",X"00",X"99",X"49",X"00",X"00",X"44",X"49",X"00",X"00",X"99",X"49",X"00", + X"00",X"22",X"99",X"00",X"00",X"22",X"29",X"00",X"00",X"99",X"29",X"00",X"00",X"19",X"29",X"00", + X"00",X"11",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"11",X"99",X"00",X"00",X"11",X"19",X"00", + X"00",X"11",X"99",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"09",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"CC",X"99",X"00",X"09",X"CC",X"CC",X"00",X"09",X"99",X"CC",X"00",X"09",X"44",X"9C",X"00", + X"09",X"44",X"99",X"00",X"09",X"44",X"49",X"00",X"09",X"44",X"49",X"00",X"09",X"49",X"99",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"92",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"99",X"9A",X"99",X"00", + X"DD",X"92",X"99",X"00",X"99",X"99",X"CC",X"00",X"99",X"CC",X"9C",X"00",X"99",X"CC",X"CC",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"C9",X"00",X"99",X"99",X"99",X"00",X"99",X"CC",X"90",X"00", + X"99",X"9C",X"99",X"00",X"99",X"99",X"49",X"00",X"99",X"49",X"49",X"00",X"99",X"99",X"44",X"00", + X"99",X"94",X"49",X"00",X"DD",X"94",X"49",X"00",X"99",X"99",X"99",X"00",X"99",X"44",X"99",X"00", + X"99",X"44",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"22",X"29",X"00",X"99",X"22",X"29",X"00", + X"99",X"22",X"29",X"00",X"99",X"22",X"29",X"00",X"99",X"92",X"99",X"00",X"99",X"22",X"29",X"00", + X"99",X"99",X"99",X"00",X"99",X"11",X"11",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"DD",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"9C",X"00",X"00",X"9F",X"9C",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"94",X"00",X"00",X"99",X"94",X"00",X"00",X"9F",X"9C",X"00",X"00",X"99",X"9C",X"00", + X"00",X"99",X"CC",X"00",X"00",X"DD",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"9F",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"91",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"9C",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00",X"00",X"99",X"C9",X"00", + X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"CC",X"99",X"00", + X"00",X"99",X"49",X"00",X"00",X"99",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"49",X"00", + X"00",X"44",X"99",X"00",X"00",X"94",X"99",X"00",X"00",X"44",X"49",X"00",X"00",X"44",X"49",X"00", + X"00",X"99",X"49",X"00",X"00",X"92",X"99",X"00",X"00",X"22",X"29",X"00",X"00",X"22",X"29",X"00", + X"00",X"22",X"29",X"00",X"00",X"22",X"29",X"00",X"00",X"22",X"29",X"00",X"00",X"22",X"29",X"00", + X"00",X"22",X"29",X"00",X"00",X"99",X"99",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"90",X"00",X"00",X"9C",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"CC",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"C9",X"90",X"00",X"00",X"99",X"90",X"00", + X"09",X"99",X"90",X"00",X"09",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"94",X"99",X"00",X"00", + X"44",X"44",X"00",X"00",X"44",X"44",X"00",X"00",X"49",X"49",X"90",X"00",X"99",X"44",X"90",X"00", + X"90",X"44",X"90",X"00",X"90",X"44",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"22",X"99",X"00", + X"00",X"22",X"19",X"00",X"00",X"22",X"19",X"00",X"00",X"22",X"19",X"00",X"00",X"92",X"19",X"00", + X"00",X"99",X"19",X"00",X"00",X"09",X"19",X"00",X"00",X"00",X"19",X"00",X"00",X"00",X"99",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9C",X"00",X"00", + X"00",X"9C",X"00",X"00",X"00",X"9C",X"90",X"00",X"00",X"9C",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"CC",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"94",X"00",X"00", + X"09",X"99",X"00",X"00",X"09",X"CC",X"99",X"99",X"09",X"99",X"49",X"C9",X"09",X"99",X"49",X"99", + X"09",X"44",X"99",X"00",X"09",X"44",X"00",X"00",X"09",X"49",X"90",X"00",X"09",X"94",X"90",X"00", + X"09",X"99",X"90",X"00",X"09",X"11",X"90",X"00",X"99",X"11",X"99",X"00",X"99",X"11",X"22",X"00", + X"C9",X"11",X"22",X"00",X"CC",X"11",X"99",X"00",X"C9",X"99",X"00",X"00",X"99",X"11",X"00",X"00", + X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"0A",X"00",X"00",X"CC",X"0A",X"00",X"09",X"9C",X"00",X"00",X"09",X"CC",X"99",X"00", + X"09",X"CC",X"C9",X"00",X"09",X"C9",X"C9",X"00",X"09",X"C9",X"99",X"00",X"09",X"CC",X"49",X"00", + X"09",X"99",X"99",X"00",X"09",X"99",X"49",X"00",X"00",X"94",X"49",X"00",X"00",X"44",X"49",X"00", + X"09",X"49",X"49",X"00",X"09",X"99",X"99",X"00",X"09",X"CC",X"90",X"00",X"09",X"99",X"00",X"00", + X"09",X"44",X"00",X"00",X"09",X"44",X"00",X"00",X"09",X"49",X"90",X"00",X"09",X"94",X"90",X"00", + X"09",X"99",X"90",X"00",X"09",X"11",X"90",X"00",X"99",X"11",X"99",X"00",X"99",X"11",X"22",X"00", + X"C9",X"11",X"22",X"00",X"CC",X"11",X"99",X"00",X"C9",X"99",X"00",X"00",X"99",X"11",X"00",X"00", + X"00",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"9D",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00",X"00",X"00", + X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"9D",X"00",X"00",X"99",X"9D",X"00",X"00",X"99",X"D9",X"00",X"00", + X"09",X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"D9",X"00", + X"00",X"09",X"9D",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"09",X"9F",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"9F",X"99",X"9F",X"00",X"DD",X"DD",X"DD",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00", + X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"99",X"99",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"DD",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"D9",X"00",X"00",X"00",X"DD",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9F",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"90",X"00",X"00", + X"99",X"99",X"00",X"00",X"DD",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9F",X"99",X"00",X"00", + X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"9D",X"90",X"00", + X"00",X"99",X"99",X"00",X"00",X"DD",X"99",X"00",X"00",X"D9",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"09",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"9D",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"09",X"F9",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"F9",X"D9",X"00", + X"00",X"99",X"9D",X"00",X"00",X"99",X"DD",X"00",X"00",X"D9",X"D9",X"00",X"00",X"DD",X"99",X"00", + X"00",X"9D",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"DD",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"DD",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"F9",X"9F",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"F9",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"00",X"00",X"00", + X"F9",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"D9",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"F9",X"00",X"00", + X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"F9",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"F9",X"00",X"00", + X"99",X"99",X"00",X"00",X"DD",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"F9",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"DD",X"DD",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"00",X"00",X"99",X"C9",X"00",X"99",X"4E",X"C9",X"00", + X"9C",X"4C",X"CC",X"00",X"9C",X"CC",X"C9",X"00",X"9C",X"9C",X"CC",X"00",X"99",X"99",X"C9",X"00", + X"99",X"CC",X"C9",X"00",X"99",X"99",X"C9",X"00",X"99",X"F9",X"C9",X"90",X"99",X"99",X"C9",X"90", + X"99",X"9F",X"99",X"90",X"99",X"99",X"99",X"90",X"99",X"44",X"99",X"90",X"99",X"CC",X"99",X"90", + X"99",X"99",X"99",X"90",X"99",X"99",X"D9",X"90",X"99",X"99",X"D9",X"90",X"99",X"99",X"99",X"90", + X"CC",X"49",X"9C",X"90",X"CC",X"49",X"9C",X"90",X"CC",X"44",X"9C",X"90",X"CC",X"44",X"99",X"90", + X"CC",X"94",X"99",X"90",X"C9",X"99",X"9C",X"90",X"99",X"99",X"CC",X"00",X"C9",X"CC",X"CC",X"00", + X"C9",X"CC",X"CC",X"00",X"C9",X"CC",X"EC",X"00",X"C9",X"CC",X"CE",X"00",X"CC",X"CC",X"CC",X"00", + X"CC",X"CC",X"99",X"00",X"CC",X"99",X"BB",X"00",X"C9",X"BB",X"BB",X"00",X"C9",X"BB",X"BB",X"00", + X"C9",X"BB",X"BB",X"00",X"C9",X"B9",X"BB",X"00",X"C9",X"99",X"BB",X"00",X"9B",X"B9",X"BB",X"00", + X"BB",X"99",X"BB",X"00",X"BB",X"90",X"BB",X"00",X"BB",X"00",X"BB",X"00",X"BB",X"00",X"BB",X"00", + X"B9",X"00",X"BB",X"00",X"99",X"00",X"BB",X"00",X"EE",X"00",X"BB",X"00",X"77",X"00",X"BB",X"00", + X"77",X"00",X"BB",X"00",X"77",X"00",X"BB",X"00",X"99",X"00",X"BB",X"00",X"77",X"09",X"BB",X"00", + X"97",X"09",X"99",X"00",X"99",X"09",X"BB",X"00",X"00",X"09",X"BB",X"00",X"00",X"09",X"99",X"00", + X"00",X"09",X"77",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"77",X"00",X"00",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00", + X"59",X"09",X"00",X"00",X"79",X"99",X"00",X"00",X"79",X"95",X"00",X"00",X"79",X"55",X"00",X"00", + X"99",X"55",X"00",X"00",X"55",X"59",X"00",X"00",X"55",X"99",X"99",X"00",X"55",X"99",X"55",X"00", + X"55",X"95",X"55",X"00",X"55",X"55",X"95",X"90",X"59",X"55",X"95",X"90",X"59",X"55",X"95",X"90", + X"99",X"55",X"55",X"90",X"00",X"59",X"55",X"90",X"00",X"59",X"55",X"90",X"00",X"55",X"55",X"90", + X"00",X"55",X"95",X"90",X"00",X"55",X"95",X"00",X"00",X"55",X"99",X"00",X"00",X"95",X"55",X"00", + X"00",X"95",X"55",X"00",X"00",X"99",X"59",X"00",X"00",X"79",X"99",X"00",X"00",X"97",X"99",X"00", + X"00",X"99",X"59",X"00",X"00",X"59",X"55",X"00",X"00",X"55",X"99",X"00",X"00",X"99",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"99",X"90",X"00",X"00",X"79",X"90",X"00",X"00",X"79",X"99",X"00",X"90",X"99",X"59",X"00",X"90", + X"55",X"59",X"00",X"90",X"55",X"59",X"00",X"90",X"55",X"59",X"99",X"90",X"55",X"59",X"55",X"90", + X"55",X"55",X"55",X"90",X"59",X"55",X"55",X"90",X"59",X"95",X"95",X"00",X"99",X"95",X"95",X"00", + X"09",X"99",X"95",X"00",X"09",X"55",X"55",X"00",X"99",X"59",X"55",X"00",X"77",X"59",X"55",X"90", + X"79",X"55",X"95",X"99",X"99",X"55",X"95",X"79",X"95",X"99",X"99",X"99",X"59",X"00",X"09",X"99", + X"59",X"00",X"09",X"99",X"99",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"99", + X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"C9",X"00",X"00",X"CC",X"C9",X"00", + X"00",X"44",X"99",X"00",X"00",X"49",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"C9",X"00",X"00", + X"09",X"CC",X"00",X"00",X"09",X"CC",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"99",X"00", + X"99",X"94",X"99",X"00",X"99",X"99",X"9F",X"00",X"99",X"49",X"99",X"00",X"99",X"94",X"99",X"00", + X"99",X"44",X"99",X"00",X"99",X"9C",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"22",X"99",X"00", + X"99",X"22",X"99",X"00",X"99",X"22",X"99",X"00",X"99",X"22",X"99",X"00",X"99",X"22",X"99",X"00", + X"00",X"99",X"90",X"00",X"00",X"11",X"90",X"00",X"00",X"11",X"90",X"00",X"00",X"99",X"90",X"00", + X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"9C",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"44",X"90",X"00",X"00",X"49",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"99",X"C9",X"00",X"00",X"94",X"CC",X"00",X"00",X"94",X"99",X"99",X"00",X"44",X"99",X"99",X"00", + X"44",X"44",X"F9",X"00",X"49",X"44",X"99",X"00",X"99",X"44",X"99",X"00",X"99",X"44",X"99",X"00", + X"99",X"44",X"99",X"00",X"99",X"99",X"99",X"00",X"99",X"22",X"99",X"00",X"99",X"92",X"99",X"00", + X"99",X"99",X"29",X"00",X"99",X"99",X"29",X"00",X"99",X"99",X"29",X"00",X"11",X"90",X"99",X"00", + X"11",X"00",X"91",X"00",X"91",X"00",X"99",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"90",X"99",X"00",X"00",X"99",X"99",X"90",X"00",X"44",X"9C",X"90",X"00",X"94",X"CC",X"90",X"00", + X"99",X"44",X"90",X"00",X"49",X"49",X"00",X"00",X"44",X"99",X"00",X"00",X"49",X"99",X"00",X"00", + X"44",X"C9",X"00",X"00",X"94",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"99",X"00",X"00", + X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00", + X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"90",X"00",X"00",X"92",X"99",X"00", + X"00",X"99",X"29",X"00",X"00",X"90",X"29",X"00",X"99",X"90",X"29",X"00",X"11",X"90",X"99",X"00", + X"11",X"00",X"91",X"00",X"91",X"00",X"99",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"CC",X"99",X"30",X"00",X"F9",X"99",X"00",X"99",X"F9",X"99",X"00", + X"9C",X"F9",X"9C",X"00",X"9C",X"F9",X"99",X"00",X"9C",X"9C",X"CC",X"00",X"99",X"9C",X"C9",X"00", + X"99",X"C9",X"C9",X"00",X"99",X"CC",X"99",X"00",X"99",X"CC",X"C9",X"00",X"99",X"99",X"C9",X"00", + X"99",X"94",X"99",X"90",X"99",X"99",X"99",X"90",X"99",X"C9",X"99",X"90",X"99",X"CC",X"9D",X"90", + X"99",X"99",X"9D",X"90",X"99",X"99",X"9D",X"90",X"C9",X"99",X"9D",X"90",X"CC",X"99",X"99",X"90", + X"CC",X"49",X"99",X"90",X"CC",X"49",X"99",X"90",X"CC",X"44",X"99",X"90",X"99",X"99",X"99",X"90", + X"00",X"99",X"90",X"99",X"09",X"90",X"99",X"09",X"99",X"90",X"90",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"90",X"00",X"00",X"99",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"A4",X"99",X"00",X"00",X"AA",X"49",X"00",X"99",X"9A",X"99",X"00", + X"94",X"AA",X"94",X"00",X"94",X"44",X"49",X"00",X"94",X"94",X"44",X"00",X"99",X"99",X"49",X"00", + X"99",X"44",X"49",X"00",X"99",X"99",X"49",X"00",X"99",X"9F",X"49",X"90",X"99",X"99",X"49",X"90", + X"99",X"9F",X"99",X"90",X"99",X"9F",X"99",X"90",X"99",X"99",X"99",X"90",X"99",X"44",X"99",X"90", + X"99",X"99",X"99",X"90",X"99",X"99",X"D9",X"90",X"99",X"99",X"D9",X"90",X"99",X"99",X"99",X"90", + X"CC",X"49",X"9C",X"90",X"CC",X"49",X"9C",X"90",X"CC",X"44",X"9C",X"90",X"CC",X"44",X"99",X"90", + X"CC",X"94",X"99",X"90",X"C9",X"99",X"9C",X"90",X"99",X"99",X"CC",X"00",X"C9",X"CC",X"CC",X"00", + X"C9",X"CC",X"CC",X"00",X"C9",X"CC",X"EC",X"00",X"C9",X"CC",X"CE",X"00",X"CC",X"CC",X"CC",X"00", + X"CC",X"CC",X"99",X"00",X"CC",X"99",X"FF",X"00",X"C9",X"44",X"F4",X"00",X"C9",X"FF",X"F4",X"00", + X"C9",X"FF",X"FF",X"00",X"C9",X"9F",X"FF",X"00",X"C9",X"99",X"F4",X"00",X"99",X"99",X"F4",X"00", + X"99",X"90",X"99",X"00",X"EE",X"90",X"EE",X"00",X"CC",X"99",X"EC",X"00",X"CC",X"C9",X"CE",X"00", + X"9C",X"C9",X"C9",X"00",X"99",X"E9",X"E9",X"00",X"09",X"C9",X"CC",X"00",X"99",X"90",X"CE",X"00", + X"9C",X"90",X"EC",X"00",X"99",X"00",X"CE",X"00",X"B9",X"00",X"EC",X"00",X"3B",X"00",X"9C",X"90", + X"BB",X"90",X"99",X"90",X"BB",X"99",X"99",X"B0",X"99",X"BB",X"31",X"90",X"9B",X"BB",X"BB",X"90", + X"99",X"B9",X"B9",X"90",X"99",X"99",X"99",X"00",X"BB",X"9B",X"9B",X"00",X"99",X"B9",X"BB",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00", + X"09",X"00",X"91",X"00",X"99",X"00",X"99",X"90",X"2C",X"00",X"E9",X"90",X"2A",X"00",X"EE",X"90", + X"2C",X"99",X"EE",X"99",X"CC",X"55",X"99",X"99",X"CC",X"99",X"45",X"49",X"CC",X"00",X"45",X"49", + X"99",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"69",X"00",X"45",X"49", + X"66",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"66",X"00",X"45",X"09", + X"99",X"00",X"47",X"99",X"AA",X"00",X"47",X"90",X"AA",X"00",X"47",X"00",X"AA",X"00",X"99",X"00", + X"AA",X"00",X"59",X"00",X"AA",X"00",X"59",X"00",X"AA",X"00",X"99",X"00",X"AA",X"00",X"99",X"90", + X"AA",X"00",X"95",X"99",X"99",X"00",X"95",X"B9",X"99",X"00",X"99",X"99",X"99",X"00",X"00",X"90", + X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"11",X"00", + X"09",X"00",X"91",X"00",X"99",X"00",X"99",X"90",X"2C",X"00",X"E9",X"90",X"2A",X"00",X"EE",X"90", + X"2C",X"99",X"99",X"99",X"CC",X"55",X"45",X"49",X"CC",X"99",X"45",X"49",X"CC",X"00",X"45",X"49", + X"99",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"69",X"00",X"45",X"49", + X"66",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"99",X"00",X"45",X"49",X"66",X"00",X"47",X"99", + X"66",X"00",X"47",X"90",X"99",X"00",X"47",X"00",X"AA",X"00",X"99",X"00",X"AA",X"00",X"59",X"00", + X"AA",X"99",X"59",X"00",X"9A",X"99",X"99",X"00",X"99",X"99",X"09",X"00",X"99",X"99",X"99",X"00", + X"90",X"99",X"95",X"00",X"00",X"90",X"95",X"00",X"90",X"00",X"99",X"00",X"90",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"94",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00", + X"00",X"44",X"90",X"00",X"00",X"44",X"90",X"00",X"00",X"4C",X"90",X"00",X"00",X"CC",X"90",X"00", + X"00",X"CC",X"09",X"00",X"09",X"CC",X"9A",X"00",X"99",X"CC",X"AA",X"00",X"9A",X"9C",X"AA",X"00", + X"C9",X"99",X"AA",X"00",X"CC",X"AA",X"99",X"00",X"CC",X"A9",X"99",X"90",X"CC",X"99",X"99",X"90", + X"C9",X"92",X"92",X"90",X"C9",X"AA",X"A2",X"90",X"99",X"AA",X"AA",X"99",X"00",X"AA",X"A9",X"09", + X"99",X"AA",X"99",X"49",X"55",X"22",X"29",X"99",X"55",X"AA",X"AA",X"59",X"55",X"99",X"99",X"59", + X"45",X"C9",X"90",X"59",X"45",X"90",X"90",X"59",X"45",X"00",X"90",X"59",X"59",X"00",X"90",X"59", + X"59",X"00",X"90",X"59",X"99",X"00",X"90",X"99",X"00",X"00",X"99",X"00",X"00",X"00",X"29",X"00", + X"00",X"99",X"00",X"00",X"00",X"94",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00", + X"00",X"A2",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"CC",X"99",X"00", + X"09",X"4C",X"9A",X"00",X"99",X"99",X"9A",X"00",X"9A",X"4C",X"9A",X"00",X"C9",X"CC",X"9A",X"00", + X"CC",X"99",X"99",X"00",X"CC",X"AA",X"A9",X"90",X"CC",X"A9",X"99",X"90",X"C9",X"99",X"99",X"90", + X"C9",X"92",X"92",X"90",X"99",X"AA",X"22",X"90",X"00",X"AA",X"A2",X"99",X"99",X"AA",X"AA",X"49", + X"55",X"AA",X"AA",X"99",X"55",X"22",X"29",X"59",X"55",X"AA",X"AA",X"59",X"45",X"99",X"99",X"59", + X"45",X"00",X"C9",X"59",X"45",X"00",X"C9",X"59",X"55",X"00",X"C9",X"59",X"55",X"00",X"99",X"59", + X"99",X"00",X"22",X"99",X"00",X"00",X"99",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"94",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00", + X"00",X"44",X"90",X"00",X"00",X"44",X"90",X"00",X"00",X"44",X"90",X"00",X"09",X"44",X"99",X"00", + X"99",X"44",X"AA",X"00",X"9A",X"44",X"AA",X"00",X"9A",X"94",X"AA",X"00",X"C9",X"99",X"AA",X"00", + X"CC",X"99",X"99",X"00",X"CC",X"A9",X"A9",X"90",X"99",X"AA",X"A9",X"90",X"90",X"AA",X"AA",X"90", + X"90",X"99",X"AA",X"90",X"90",X"AA",X"9A",X"90",X"00",X"AA",X"AA",X"99",X"99",X"AA",X"AA",X"09", + X"55",X"AA",X"AA",X"99",X"55",X"AA",X"A9",X"59",X"55",X"AA",X"AA",X"59",X"45",X"99",X"99",X"59", + X"45",X"00",X"C9",X"59",X"45",X"00",X"C9",X"59",X"55",X"00",X"C9",X"59",X"55",X"00",X"99",X"59", + X"99",X"00",X"22",X"59",X"00",X"00",X"99",X"99",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"59",X"00",X"00",X"00",X"95",X"00",X"00", + X"00",X"95",X"00",X"00",X"00",X"95",X"00",X"00",X"00",X"55",X"90",X"00",X"09",X"99",X"90",X"00", + X"09",X"FF",X"99",X"00",X"99",X"FF",X"59",X"00",X"95",X"FF",X"55",X"00",X"95",X"FF",X"95",X"00", + X"95",X"99",X"95",X"00",X"95",X"44",X"95",X"00",X"95",X"44",X"95",X"00",X"95",X"44",X"95",X"00", + X"95",X"99",X"95",X"00",X"95",X"FF",X"95",X"00",X"95",X"FF",X"55",X"00",X"99",X"FF",X"59",X"00", + X"09",X"FF",X"99",X"00",X"00",X"FF",X"90",X"00",X"00",X"99",X"99",X"00",X"00",X"55",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"90",X"99",X"00",X"00",X"90",X"00",X"00",X"00",X"90",X"00",X"00", + X"00",X"90",X"00",X"00",X"09",X"90",X"00",X"00",X"09",X"90",X"00",X"00",X"09",X"90",X"00",X"00", + X"00",X"99",X"00",X"00",X"09",X"29",X"09",X"00",X"09",X"92",X"99",X"00",X"09",X"99",X"94",X"00", + X"09",X"A9",X"94",X"00",X"09",X"9C",X"99",X"00",X"09",X"C9",X"CC",X"00",X"09",X"C9",X"C9",X"00", + X"D0",X"99",X"9C",X"00",X"D0",X"4C",X"99",X"00",X"00",X"CC",X"39",X"00",X"00",X"C9",X"99",X"00", + X"90",X"99",X"90",X"00",X"99",X"39",X"00",X"00",X"55",X"39",X"00",X"00",X"55",X"39",X"90",X"00", + X"99",X"33",X"99",X"00",X"96",X"39",X"66",X"00",X"96",X"99",X"66",X"00",X"96",X"39",X"66",X"00", + X"66",X"99",X"66",X"90",X"22",X"22",X"22",X"99",X"22",X"22",X"22",X"99",X"99",X"22",X"99",X"99", + X"97",X"22",X"77",X"29",X"77",X"66",X"75",X"D9",X"77",X"66",X"79",X"D9",X"79",X"66",X"9D",X"99", + X"47",X"99",X"79",X"90",X"77",X"00",X"77",X"00",X"97",X"00",X"77",X"00",X"99",X"00",X"99",X"00", + X"00",X"99",X"00",X"00",X"09",X"29",X"00",X"00",X"09",X"92",X"99",X"00",X"09",X"99",X"44",X"00", + X"09",X"A9",X"54",X"00",X"09",X"CC",X"99",X"00",X"09",X"C9",X"C9",X"00",X"09",X"99",X"99",X"00", + X"D0",X"45",X"90",X"00",X"D0",X"99",X"90",X"00",X"00",X"CC",X"90",X"00",X"00",X"C9",X"00",X"00", + X"00",X"99",X"00",X"00",X"90",X"39",X"00",X"00",X"99",X"39",X"00",X"00",X"55",X"39",X"00",X"00", + X"55",X"33",X"90",X"00",X"99",X"39",X"99",X"00",X"96",X"99",X"66",X"00",X"96",X"33",X"66",X"00", + X"96",X"39",X"66",X"00",X"66",X"99",X"66",X"90",X"99",X"22",X"99",X"99",X"97",X"22",X"77",X"99", + X"77",X"22",X"77",X"99",X"77",X"22",X"79",X"D9",X"79",X"66",X"9D",X"D9",X"79",X"66",X"99",X"69", + X"57",X"66",X"79",X"99",X"55",X"99",X"77",X"90",X"95",X"00",X"77",X"00",X"99",X"00",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"09",X"00",X"99",X"00", + X"09",X"99",X"EE",X"00",X"09",X"EE",X"AE",X"00",X"09",X"99",X"EE",X"00",X"09",X"EE",X"99",X"00", + X"09",X"EE",X"EE",X"00",X"00",X"EE",X"E9",X"00",X"09",X"EE",X"99",X"00",X"99",X"EE",X"F9",X"00", + X"9E",X"9E",X"F9",X"00",X"EE",X"9E",X"99",X"00",X"EE",X"99",X"90",X"00",X"EE",X"09",X"99",X"00", + X"EE",X"00",X"99",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"90",X"00",X"09",X"00",X"99",X"00",X"99",X"00",X"EE",X"99",X"EE",X"00", + X"9E",X"EE",X"AE",X"00",X"99",X"99",X"AE",X"00",X"09",X"EE",X"99",X"00",X"09",X"EE",X"E9",X"00", + X"09",X"EE",X"E9",X"00",X"09",X"EE",X"99",X"00",X"00",X"9E",X"F9",X"00",X"00",X"9E",X"F9",X"00", + X"00",X"9E",X"99",X"00",X"00",X"9E",X"00",X"00",X"00",X"9E",X"00",X"00",X"00",X"9E",X"00",X"00", + X"00",X"9E",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"EA",X"00",X"00",X"00",X"EA",X"00",X"00", + X"00",X"E9",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"EE",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"9F",X"00",X"00",X"09",X"9F",X"00",X"00",X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"9E",X"99",X"00",X"00",X"9E",X"9E",X"00",X"00",X"9E",X"9E",X"00",X"00",X"9E",X"99",X"00",X"00", + X"9E",X"99",X"00",X"00",X"9E",X"E9",X"00",X"00",X"9E",X"E9",X"00",X"00",X"EE",X"99",X"00",X"00", + X"9E",X"9E",X"00",X"00",X"99",X"99",X"00",X"00",X"09",X"00",X"00",X"00",X"09",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"90",X"00",X"00",X"00",X"40",X"00",X"00",X"90",X"90",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"99",X"00",X"99",X"D9",X"9A",X"00",X"A9",X"FD",X"99",X"90",X"AA",X"99",X"AA",X"90", + X"99",X"99",X"2A",X"90",X"9A",X"99",X"99",X"90",X"AA",X"55",X"00",X"00",X"99",X"99",X"00",X"00", + X"90",X"99",X"00",X"00",X"00",X"55",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"FF",X"99",X"00",X"00", + X"0F",X"A9",X"00",X"00",X"00",X"9C",X"00",X"00",X"09",X"9C",X"00",X"00",X"09",X"99",X"00",X"00", + X"09",X"44",X"00",X"00",X"09",X"9C",X"90",X"00",X"09",X"99",X"90",X"00",X"09",X"55",X"90",X"00", + X"09",X"99",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"55",X"00",X"00",X"00",X"55",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00", + X"09",X"29",X"00",X"00",X"09",X"22",X"00",X"00",X"09",X"22",X"00",X"00",X"09",X"22",X"90",X"00", + X"09",X"92",X"E9",X"00",X"09",X"99",X"E9",X"00",X"09",X"09",X"E9",X"00",X"00",X"00",X"E9",X"00", + X"00",X"00",X"99",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9C",X"00",X"00", + X"00",X"9C",X"90",X"00",X"00",X"99",X"90",X"00",X"00",X"77",X"90",X"00",X"00",X"77",X"90",X"00", + X"00",X"97",X"90",X"00",X"00",X"99",X"00",X"00",X"00",X"79",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"9C",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"9C",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"2F",X"00",X"00",X"00",X"2F",X"00",X"00",X"00",X"2F",X"00",X"00",X"00",X"2F",X"00",X"00", + X"00",X"2F",X"00",X"00",X"00",X"2F",X"00",X"00",X"00",X"2F",X"90",X"00",X"00",X"2F",X"90",X"00", + X"00",X"9F",X"90",X"00",X"00",X"0F",X"90",X"00",X"00",X"0F",X"90",X"00",X"00",X"0F",X"90",X"00", + X"99",X"99",X"00",X"00",X"C9",X"44",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00", + X"99",X"C9",X"00",X"00",X"90",X"C9",X"00",X"00",X"90",X"CC",X"00",X"00",X"90",X"99",X"00",X"00", + X"99",X"CC",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"CC",X"00",X"00",X"99",X"99",X"00",X"00", + X"92",X"22",X"00",X"00",X"99",X"22",X"00",X"00",X"99",X"22",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"29",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"66",X"00",X"00",X"00",X"96",X"00",X"00",X"00",X"96",X"00",X"00", + X"09",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"91",X"96",X"00",X"00",X"91",X"96",X"00",X"00", + X"91",X"99",X"00",X"00",X"91",X"91",X"00",X"00",X"99",X"91",X"00",X"00",X"09",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"9C",X"00",X"00",X"99",X"9C",X"99",X"99",X"99",X"99",X"99",X"99", + X"00",X"92",X"90",X"00",X"00",X"92",X"90",X"00",X"00",X"92",X"90",X"00",X"00",X"92",X"00",X"00", + X"00",X"92",X"00",X"00",X"99",X"92",X"99",X"99",X"99",X"92",X"99",X"99",X"00",X"99",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"92",X"00",X"00", + X"00",X"22",X"90",X"00",X"00",X"22",X"90",X"00",X"00",X"22",X"99",X"00",X"00",X"22",X"69",X"00", + X"00",X"99",X"66",X"99",X"00",X"66",X"66",X"99",X"00",X"99",X"99",X"19",X"00",X"99",X"99",X"19", + X"00",X"66",X"09",X"99",X"00",X"66",X"00",X"90",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"99",X"99",X"00",X"00",X"97",X"99",X"00",X"00",X"77",X"99",X"00",X"00",X"74",X"99",X"90", + X"00",X"44",X"49",X"90",X"00",X"99",X"49",X"90",X"00",X"49",X"99",X"90",X"00",X"44",X"99",X"00", + X"00",X"99",X"99",X"00",X"00",X"C9",X"99",X"00",X"00",X"9C",X"99",X"90",X"00",X"99",X"29",X"90", + X"00",X"22",X"92",X"90",X"00",X"22",X"92",X"90",X"00",X"22",X"99",X"00",X"00",X"22",X"29",X"00", + X"00",X"22",X"29",X"00",X"00",X"22",X"29",X"00",X"00",X"22",X"99",X"00",X"00",X"29",X"99",X"00", + X"00",X"99",X"69",X"00",X"00",X"66",X"69",X"00",X"00",X"69",X"69",X"00",X"00",X"66",X"69",X"00", + X"00",X"96",X"99",X"00",X"00",X"96",X"11",X"00",X"00",X"96",X"11",X"00",X"00",X"96",X"99",X"00", + X"00",X"99",X"11",X"00",X"00",X"11",X"11",X"00",X"00",X"11",X"11",X"00",X"00",X"99",X"99",X"00", + X"99",X"99",X"00",X"00",X"9C",X"44",X"00",X"00",X"9C",X"44",X"99",X"99",X"99",X"94",X"99",X"99", + X"09",X"A9",X"09",X"00",X"09",X"99",X"09",X"00",X"09",X"CC",X"09",X"00",X"09",X"C4",X"09",X"00", + X"09",X"94",X"09",X"00",X"99",X"CC",X"99",X"99",X"99",X"99",X"99",X"99",X"00",X"92",X"00",X"00", + X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"92",X"00",X"00", + X"00",X"92",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"CC",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"66",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"69",X"00",X"00",X"00",X"69",X"00",X"00",X"09",X"99",X"00",X"00", + X"09",X"19",X"00",X"00",X"09",X"19",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"00",X"00",X"00", + X"99",X"00",X"66",X"00",X"44",X"00",X"66",X"00",X"44",X"00",X"66",X"00",X"44",X"00",X"99",X"00", + X"99",X"00",X"77",X"00",X"EE",X"90",X"77",X"00",X"EE",X"90",X"77",X"00",X"4C",X"90",X"99",X"00", + X"49",X"00",X"09",X"00",X"CC",X"00",X"90",X"00",X"9C",X"00",X"99",X"00",X"99",X"00",X"11",X"00", + X"99",X"00",X"99",X"00",X"59",X"00",X"90",X"00",X"55",X"00",X"00",X"00",X"95",X"90",X"00",X"00", + X"99",X"99",X"09",X"00",X"59",X"9C",X"99",X"00",X"55",X"CC",X"99",X"99",X"55",X"CC",X"77",X"49", + X"99",X"99",X"44",X"49",X"11",X"00",X"44",X"49",X"11",X"09",X"44",X"99",X"11",X"99",X"44",X"90", + X"11",X"99",X"94",X"00",X"99",X"99",X"99",X"00",X"00",X"99",X"09",X"00",X"00",X"99",X"09",X"00", + X"00",X"99",X"09",X"00",X"00",X"90",X"09",X"00",X"90",X"00",X"09",X"00",X"90",X"00",X"00",X"00", + X"99",X"00",X"09",X"99",X"44",X"00",X"97",X"79",X"44",X"00",X"77",X"79",X"44",X"90",X"77",X"79", + X"99",X"90",X"77",X"79",X"EE",X"99",X"77",X"99",X"EE",X"C9",X"99",X"00",X"44",X"99",X"00",X"00", + X"44",X"00",X"00",X"00",X"CC",X"00",X"90",X"99",X"99",X"00",X"99",X"39",X"59",X"00",X"33",X"19", + X"59",X"00",X"11",X"39",X"55",X"00",X"99",X"99",X"95",X"90",X"00",X"00",X"95",X"99",X"99",X"00", + X"99",X"9C",X"99",X"90",X"55",X"CC",X"99",X"99",X"55",X"CC",X"77",X"49",X"99",X"99",X"44",X"49", + X"11",X"00",X"44",X"49",X"11",X"00",X"44",X"99",X"11",X"00",X"44",X"90",X"11",X"00",X"94",X"00", + X"11",X"00",X"99",X"00",X"91",X"00",X"09",X"00",X"91",X"00",X"99",X"00",X"11",X"00",X"95",X"00", + X"11",X"00",X"95",X"00",X"99",X"00",X"95",X"00",X"99",X"00",X"99",X"00",X"99",X"00",X"09",X"00", + X"00",X"09",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"9A",X"99",X"00", + X"00",X"92",X"99",X"00",X"99",X"99",X"CC",X"00",X"9C",X"CC",X"9C",X"00",X"9C",X"CC",X"CC",X"00", + X"CC",X"99",X"99",X"00",X"C9",X"99",X"C9",X"00",X"99",X"99",X"99",X"00",X"99",X"CC",X"90",X"00", + X"09",X"9C",X"99",X"00",X"00",X"99",X"49",X"00",X"00",X"49",X"44",X"00",X"00",X"44",X"94",X"00", + X"00",X"44",X"94",X"00",X"00",X"44",X"94",X"00",X"00",X"44",X"44",X"00",X"00",X"44",X"49",X"00", + X"00",X"44",X"99",X"00",X"00",X"99",X"99",X"00",X"00",X"22",X"29",X"00",X"09",X"22",X"29",X"00", + X"09",X"92",X"29",X"00",X"09",X"99",X"29",X"00",X"09",X"99",X"99",X"00",X"00",X"29",X"29",X"00", + X"00",X"99",X"99",X"00",X"00",X"99",X"11",X"00",X"00",X"90",X"11",X"00",X"00",X"90",X"99",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"9F",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"9F",X"00",X"00", + X"00",X"99",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00",X"00",X"44",X"00",X"00", + X"00",X"44",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"AA",X"00",X"00",X"00",X"A9",X"00",X"00", + X"00",X"A9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00", + X"00",X"CC",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"79",X"00",X"00",X"09",X"99",X"00",X"00", + X"99",X"97",X"00",X"00",X"9C",X"99",X"00",X"00",X"9C",X"94",X"00",X"00",X"99",X"99",X"00",X"00", + X"00",X"77",X"00",X"00",X"00",X"99",X"99",X"00",X"00",X"DD",X"99",X"00",X"00",X"9D",X"D9",X"00", + X"00",X"99",X"D9",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"D9",X"00",X"00",X"00",X"D9",X"00", + X"00",X"00",X"D9",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00",X"00",X"00",X"99",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/midssio_82s123.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/midssio_82s123.vhd new file mode 100644 index 00000000..daecc05c --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/rom/midssio_82s123.vhd @@ -0,0 +1,24 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity midssio_82s123 is +port ( + clk : in std_logic; + addr : in std_logic_vector(4 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of midssio_82s123 is + type rom is array(0 to 31) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",X"FF",X"FF",X"FE",X"FF",X"FF",X"FD",X"FF",X"FE",X"FF",X"F7", + X"FB",X"EF",X"6D",X"07",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow.vhd new file mode 100644 index 00000000..20de5e83 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow.vhd @@ -0,0 +1,893 @@ +--------------------------------------------------------------------------------- +-- Satans Hollow by Dar (darfpga@aol.fr) (09/11/2019) +-- http://darfpga.blogspot.fr +--------------------------------------------------------------------------------- +-- gen_ram.vhd & io_ps2_keyboard +-------------------------------- +-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com) +-- http://www.syntiac.com/fpga64.html +--------------------------------------------------------------------------------- +-- T80/T80se - Version : 304 +----------------------------- +-- Z80 compatible microprocessor core +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +--------------------------------------------------------------------------------- +-- YM2149 (AY-3-8910) +-- Copyright (c) MikeJ - Jan 2005 +--------------------------------------------------------------------------------- +-- Educational use only +-- Do not redistribute synthetized file with roms +-- Do not redistribute roms whatever the form +-- Use at your own risk +--------------------------------------------------------------------------------- + +-- Features : +-- Video : 31Khz/60Hz +-- Coctail mode : NO +-- Sound : OK + +-- Use with MAME roms from shollow.zip +-- +-- Use make_satans_hollow_proms.bat to build vhd file from binaries +-- (CRC list included) + +-- Satans hollow (midway mcr) Hardware caracteristics : +-- +-- VIDEO : 1xZ80@3MHz CPU accessing its program rom, working ram, +-- sprite data ram, I/O, sound board register and trigger. +-- 48Kx8bits program rom +-- +-- One char/background tile map 30x32 +-- 2x8Kx8bits graphics rom 4bits/pixel +-- rbg programmable ram palette 64 colors 9bits : 3red 3green 3blue +-- +-- 128 sprites, up to ~15/line, 32x32 with flip H/V +-- 4x8Kx8bits graphics rom 4bits/pixel +-- rbg programmable ram palette 64 colors 9bits : 3red 3green 3blue +-- +-- Working ram : 2Kx8bits +-- video (char/background) ram : 2Kx8bits +-- Sprites ram : 512x8bits + 512x8bits cache buffer + +-- Sprites line buffer rams : 1 scan line delay flip/flop 2x256x8bits +-- +-- SOUND : see satans_hollow_sound_board.vhd + +--------------------------------------------------------------------------------- +-- Schematics remarks : +-- +-- Display is 512x480 pixels (video 635x525 lines @ 20MHz ) + +-- 635/20e6 = 31.75us per line (31.750KHz) +-- 31.75*525 = 16.67ms per frame (59.99Hz) +-- +-- Original video is interlaced 240 display lines per 1/2 frame +-- +-- H0 and V0 are not use for background => each bg tile is 16x16 pixel but +-- background graphics is 2x2 pixels defintion. +-- +-- Sprite are 32x32 pixels with 1x1 pixel definition, 16 lines for odd 1/2 +-- frame and 16 lines for even 2/2 frame thanks to V8 on sprite rom ROMAD2 +-- (look at 74ls86 G1 pin 9 on video genration board schematics) +-- +-- *H and V stand for Horizontal en Vertical counter (Hcnt, Vcnt in VHDL code) +-- +-- /!\ For VHDL port interlaced video mode is replaced with progressive video +-- mode. +-- +-- Real hardware uses background ram access after each 1/2 frame (~line 240 +-- and 480). In these areas cpu can access ram since scanlines are out of +-- visible display. In progessive mode there are video access around lines 240. +-- These accesses will create video artfacts aound mid display. In VHDL code +-- ram access is muliplexed between cpu and scanlines by using hcnt(0) in +-- order to avoid these artefacts. +-- +-- Sprite data are stored first by cpu into a 'cache' buffer (staging ram at +-- K6/L6) this buffer is read and write for cpu. After visible display, cache +-- buffer (512x8) is moved to actual sprite ram buffer (512x8). Actual sprite +-- buffer is access by transfer address counter during 2 scanlines after +-- visible area and only by sprite machine during visible area. +-- +-- Thus cpu can read and update sprites position during entire frame except +-- during 2 lines. +-- +-- Sprite data are organised (as seen by cpu F000-F1FF) into 128 * 4bytes. +-- bytes #1 : Vertical position +-- bytes #2 : code and attribute +-- bytes #3 : Horizontal position +-- bytes #4 : not used +-- +-- Athough 1x1 pixel defintion sprite position horizontal/vertical is made on +-- on a 2x2 grid (due to only 8bits for position data) +-- +-- Z80-CTC : interruption ar managed by CTC chip. ONly channel 3 is trigered +-- by hardware signal line 493. channel 0 to 2 are in timer mode. Schematic +-- show zc/to of channel 0 connected to clk/trg of channel 1. This seems to be +-- unsued for that (Kick) game. +-- +-- Z80-CTC VHDL port keep separated interrupt controler and each counter so +-- one can use them on its own. Priority daisy-chain is not done (not used in +-- that game). clock polarity selection is not done since it has no meaning +-- with digital clock/enable (e.g cpu_ena signal) method. +-- +-- Ressource : input clock 40MHz is chosen to allow easy making of 20MHz for +-- pixel clock and 8MHz signal for amplitude modulation circuit of ssio board +-- +-- TODO : +-- Working ram could be initialized to set initial difficulty level and +-- initial bases (live) number. Otherwise one can set it up by using service +-- menu at each power up. +-- +--------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +entity satans_hollow is +port( + clock_40 : in std_logic; + reset : in std_logic; + --tv15Khz_mode : in std_logic; + video_r : out std_logic_vector(2 downto 0); + video_g : out std_logic_vector(2 downto 0); + video_b : out std_logic_vector(2 downto 0); + video_clk : out std_logic; + --video_csync : out std_logic; + video_blankn : out std_logic; + video_hs : out std_logic; + video_vs : out std_logic; + + separate_audio : in std_logic; + audio_out_l : out std_logic_vector(15 downto 0); + audio_out_r : out std_logic_vector(15 downto 0); + + coin1 : in std_logic; + coin2 : in std_logic; + start1 : in std_logic; + start2 : in std_logic; + + up2 : in std_logic; + down2 : in std_logic; + left2 : in std_logic; + right2 : in std_logic; + fire2 : in std_logic; + + up1 : in std_logic; + down1 : in std_logic; + left1 : in std_logic; + right1 : in std_logic; + fire1 : in std_logic; + + cocktail : in std_logic; + coin_meters : in std_logic; + + service_toggle : in std_logic; + + dbg_cpu_addr : out std_logic_vector(15 downto 0); + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + cpu_rom_rd : out std_logic; + + snd_rom_addr : out std_logic_vector(13 downto 0); + snd_rom_do : in std_logic_vector(7 downto 0); + snd_rom_rd : out std_logic + + ); +end satans_hollow; + +architecture struct of satans_hollow is + + signal reset_n : std_logic; + signal clock_vid : std_logic; + signal clock_vidn: std_logic; + signal clock_cnt : std_logic_vector(3 downto 0) := "0000"; + + signal hcnt : std_logic_vector(9 downto 0) := (others=>'0'); -- horizontal counter + signal vcnt : std_logic_vector(9 downto 0) := (others=>'0'); -- vertical counter + signal vflip : std_logic_vector(9 downto 0) := (others=>'0'); -- vertical counter flip + + signal frame : std_logic_vector(9 downto 0) := (others=>'0'); -- frame counter dbg + + signal pix_ena : std_logic; + signal pix_ena_r : std_logic; + signal cpu_ena : std_logic; + + signal cpu_addr : std_logic_vector(15 downto 0); + signal cpu_di : std_logic_vector( 7 downto 0); + signal cpu_do : std_logic_vector( 7 downto 0); + signal cpu_wr_n : std_logic; + signal cpu_rd_n : std_logic; + signal cpu_mreq_n : std_logic; + signal cpu_ioreq_n : std_logic; + signal cpu_irq_n : std_logic; + signal cpu_m1_n : std_logic; + + signal ctc_controler_we : std_logic; + signal ctc_controler_do : std_logic_vector(7 downto 0); + signal ctc_int_ack : std_logic; + + signal ctc_counter_0_we : std_logic; +-- signal ctc_counter_0_trg : std_logic; + signal ctc_counter_0_do : std_logic_vector(7 downto 0); + signal ctc_counter_0_int : std_logic; + + signal ctc_counter_1_we : std_logic; +-- signal ctc_counter_1_trg : std_logic; + signal ctc_counter_1_do : std_logic_vector(7 downto 0); + signal ctc_counter_1_int : std_logic; + + signal ctc_counter_2_we : std_logic; +-- signal ctc_counter_2_trg : std_logic; + signal ctc_counter_2_do : std_logic_vector(7 downto 0); + signal ctc_counter_2_int : std_logic; + + signal ctc_counter_3_we : std_logic; + signal ctc_counter_3_trg : std_logic; + signal ctc_counter_3_do : std_logic_vector(7 downto 0); + signal ctc_counter_3_int : std_logic; + + signal wram_we : std_logic; + signal wram_do : std_logic_vector( 7 downto 0); + + signal bg_ram_addr: std_logic_vector(10 downto 0); + signal bg_ram_we : std_logic; + signal bg_ram_cpu_access : std_logic; + signal bg_ram_do : std_logic_vector(7 downto 0); + signal bg_ram_do_r: std_logic_vector(7 downto 0); -- registred data for cpu + + signal bg_code : std_logic_vector(7 downto 0); + signal bg_code_r : std_logic_vector(7 downto 0); + signal bg_attr : std_logic_vector(7 downto 0); + --signal bg_attr_r : std_logic_vector(7 downto 0); + + signal bg_code_line : std_logic_vector(12 downto 0); + signal bg_graphx1_do : std_logic_vector( 7 downto 0); + signal bg_graphx2_do : std_logic_vector( 7 downto 0); + --signal bg_vid : std_logic_vector( 3 downto 0); + signal bg_palette_addr : std_logic_vector( 5 downto 0); + + signal sp_ram_cache_addr : std_logic_vector(8 downto 0); + signal sp_ram_cache_we : std_logic; + signal sp_ram_cache_cpu_access : std_logic; + signal sp_ram_cache_do : std_logic_vector(7 downto 0); + + signal move_buf : std_logic; + signal sp_ram_addr : std_logic_vector(8 downto 0); + signal sp_ram_we : std_logic; + signal sp_ram_do : std_logic_vector(7 downto 0); + + signal sp_cnt : std_logic_vector(6 downto 0); + signal sp_code : std_logic_vector( 7 downto 0); + signal sp_input_phase : std_logic_vector( 5 downto 0); + + signal sp_done : std_logic; + signal sp_vcnt : std_logic_vector( 9 downto 0); + signal sp_line : std_logic_vector( 4 downto 0); + signal sp_hcnt : std_logic_vector( 8 downto 0); -- lsb used to mux rd/wr line buffer + signal sp_on_line : std_logic; + signal sp_on_line_r : std_logic; + signal sp_byte_cnt : std_logic_vector( 1 downto 0); + signal sp_code_line : std_logic_vector(12 downto 0); + signal sp_hflip : std_logic_vector( 1 downto 0); + signal sp_vflip : std_logic_vector( 4 downto 0); + + signal sp_graphx1_do : std_logic_vector( 7 downto 0); + signal sp_graphx2_do : std_logic_vector( 7 downto 0); + signal sp_graphx3_do : std_logic_vector( 7 downto 0); + signal sp_graphx4_do : std_logic_vector( 7 downto 0); + signal sp_mux_roms : std_logic_vector( 1 downto 0); + signal sp_graphx_mux : std_logic_vector( 7 downto 0); + signal sp_graphx_flip : std_logic_vector( 7 downto 0); + + signal sp_buffer_ram1_addr : std_logic_vector(7 downto 0); + signal sp_buffer_ram1_we : std_logic; + signal sp_buffer_ram1_di : std_logic_vector(7 downto 0); + signal sp_buffer_ram1_do : std_logic_vector(7 downto 0); + signal sp_buffer_ram1_do_r : std_logic_vector(7 downto 0); + + signal sp_buffer_ram2_addr : std_logic_vector(7 downto 0); + signal sp_buffer_ram2_we : std_logic; + signal sp_buffer_ram2_di : std_logic_vector(7 downto 0); + signal sp_buffer_ram2_do : std_logic_vector(7 downto 0); + signal sp_buffer_ram2_do_r : std_logic_vector(7 downto 0); + + signal sp_vid_a : std_logic_vector(3 downto 0); + signal sp_vid : std_logic_vector(3 downto 0); + + signal palette_addr : std_logic_vector(5 downto 0); + signal palette_we : std_logic; + signal palette_do : std_logic_vector(8 downto 0); + + signal ssio_iowe : std_logic; + signal ssio_do : std_logic_vector(7 downto 0); + + signal input_0 : std_logic_vector(7 downto 0); + signal input_1 : std_logic_vector(7 downto 0); + signal input_2 : std_logic_vector(7 downto 0); + signal input_3 : std_logic_vector(7 downto 0); + signal service_toggle_r : std_logic; + signal service : std_logic; + +begin + +clock_vid <= clock_40; +clock_vidn <= not clock_40; +reset_n <= not reset; + +-- debug +process (reset, clock_vid) +begin + if rising_edge(clock_vid) and cpu_ena ='1' and cpu_mreq_n ='0' then + dbg_cpu_addr<= "000000000000000"&service; --cpu_addr; + end if; +end process; + +-- make enables clock from clock_vid +process (clock_vid, reset) +begin + if reset='1' then + clock_cnt <= (others=>'0'); + else + if rising_edge(clock_vid) then + if clock_cnt = "1111" then -- divide by 16 + clock_cnt <= (others=>'0'); + else + clock_cnt <= clock_cnt + 1; + end if; + end if; + end if; +end process; +-- +cpu_ena <= '1' when clock_cnt = "1111" else '0'; -- (2.5MHz) +pix_ena <= clock_cnt(0); -- (20MHz) + +----------------------------------- +-- Video scanner 635x525 @20Mhz -- +-- display 512x480 -- +----------------------------------- +process (reset, clock_vid) +begin + if reset='1' then + hcnt <= (others=>'0'); + vcnt <= (others=>'0'); + frame <= (others=>'0'); + else + if rising_edge(clock_vid) then + if pix_ena = '1' then + + hcnt <= hcnt + 1; + if hcnt = 634 then + hcnt <= (others=>'0'); + vcnt <= vcnt + 1; + if vcnt = 524 then + vcnt <= (others=>'0'); + frame <= frame + 1; + end if; + end if; + + if vcnt = 490-1 then video_vs <= '0'; end if; -- front porch 10 + if vcnt = 492-1 then video_vs <= '1'; end if; -- sync pulse 2 + -- back porch 33 + + if hcnt = 512+35 then video_hs <= '0'; end if; -- front porch 16/25*20 = 13 + if hcnt = 512+90+9 then video_hs <= '1'; end if; -- sync pulse 96/25*20 = 77 + -- back porch 48/25*20 = 38 + video_blankn <= '0'; + if hcnt >= 2+16 and hcnt < 514+16 and + vcnt >= 2 and vcnt < 481 then video_blankn <= '1';end if; + +-- -- test pattern +-- +-- video_blankn <= '1'; +-- +-- video_r <= "0000"; +-- video_g <= "0000"; +-- video_b <= "0000"; +-- +-- if hcnt >= 0 and hcnt < 512 and +-- vcnt >= 0 and vcnt < 480 then video_b <= "0100"; end if; +-- +-- if hcnt >= 1 and hcnt < 511 and +-- vcnt >= 1 and vcnt < 479 then video_r <= "0100"; end if; +-- +-- if hcnt >= 0 and hcnt < 512 and +-- vcnt >= 0 and vcnt < 480 then video_g <= "0100"; end if; +-- +-- if hcnt >= 0 and hcnt < 512 and +-- vcnt >= 0 and vcnt < 480 and +-- hcnt(5 downto 0) = vcnt(5 downto 0) then +-- video_r <= "1100"; +-- video_g <= "1100"; +-- video_b <= "1100"; +-- end if; + + end if; + end if; + end if; +end process; + +-------------------- +-- players inputs -- +-------------------- +-- "111" for test & tilt & unused +input_0 <= not service & "11" & not fire1 & not start2 & not start1 & not coin2 & not coin1; +input_1 <= "1111" & not down1 & not up1 & not right1 & not left1; +input_2 <= "111" & not fire2 & not down2 & not up2 & not right2 & not left2; +input_3 <= coin_meters & cocktail & "111111"; + +process (clock_vid, reset) +begin + if reset = '1' then + service <= '0'; + else + if rising_edge(clock_vid) then + service_toggle_r <= service_toggle; + + if service_toggle_r = '0' and service_toggle ='1' then + service <= not service; + end if; + + end if; + end if; +end process; + +------------------------------------------ +-- cpu data input with address decoding -- +------------------------------------------ +cpu_di <= cpu_rom_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12) < X"C" else -- 0000-BFFF + wram_do when cpu_mreq_n = '0' and cpu_addr(15 downto 13) = "110" else -- C000-C7FF/C800-CFFF/D000-D7FF/D800-DFFF + sp_ram_cache_do when cpu_mreq_n = '0' and cpu_addr(15 downto 11) = "11110" else -- sprite ram F000-F1FF + mirroring adresses + bg_ram_do_r when cpu_mreq_n = '0' and cpu_addr(15 downto 11) = "11111" else -- video ram F800-FFFF + mirroring adresses + ctc_controler_do when cpu_ioreq_n = '0' and cpu_m1_n = '0' else -- ctc ctrl (interrupt vector) + ssio_do when cpu_ioreq_n = '0' and cpu_addr(7 downto 4) = X"0" else + ctc_counter_3_do when cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F3" else + ctc_counter_2_do when cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F2" else + ctc_counter_1_do when cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F1" else + ctc_counter_0_do when cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F0" else + X"FF"; + +------------------------------------------------------------------------ +-- Misc registers : ctc write enable / interrupt acknowledge +------------------------------------------------------------------------ +ctc_counter_3_trg <= '1' when vcnt = 493 else '0'; +ctc_counter_3_we <= '1' when cpu_wr_n = '0' and cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F3" else '0'; +ctc_counter_2_we <= '1' when cpu_wr_n = '0' and cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F2" else '0'; +ctc_counter_1_we <= '1' when cpu_wr_n = '0' and cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F1" else '0'; +ctc_counter_0_we <= '1' when cpu_wr_n = '0' and cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F0" else '0'; +ctc_controler_we <= '1' when cpu_wr_n = '0' and cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F0" else '0'; -- only channel 0 receive int vector +ctc_int_ack <= '1' when cpu_ioreq_n = '0' and cpu_m1_n = '0' else '0'; + +------------------------------------------ +-- write enable / ram access from CPU -- +------------------------------------------ +wram_we <= '1' when cpu_mreq_n = '0' and cpu_wr_n = '0' and cpu_addr(15 downto 12) = X"C" else '0'; +sp_ram_cache_we <= '1' when cpu_mreq_n = '0' and cpu_wr_n = '0' and cpu_addr(15 downto 11) = "11110" else '0'; +sp_ram_cache_cpu_access <= '1' when cpu_mreq_n = '0' and (cpu_wr_n = '0' or cpu_rd_n = '0') and cpu_addr(15 downto 11) = "11110" else '0'; +bg_ram_cpu_access <= '1' when cpu_mreq_n = '0' and (cpu_wr_n = '0' or cpu_rd_n = '0') and cpu_addr(15 downto 11) = "11111" and hcnt(0) = '0' else '0'; +bg_ram_we <= '1' when bg_ram_cpu_access = '1' and cpu_wr_n = '0' else '0'; + +ssio_iowe <= '1' when cpu_wr_n = '0' and cpu_ioreq_n = '0' else '0'; + +---------------------- +--- sprite machine --- +---------------------- +--vflip <= 480-vcnt; -- apply mirror flip +vflip <= vcnt; -- do not apply mirror flip + +process (clock_vid) +begin + if rising_edge(clock_vid) then + + if pix_ena = '1' then + if hcnt = 0 then + sp_cnt <= (others => '0'); + sp_input_phase <= (others => '0'); + sp_on_line <= '0'; + sp_done <= '0'; + end if; + + if sp_done = '0' then + sp_input_phase <= sp_input_phase + 1 ; + sp_hcnt <= sp_hcnt + 1; + case sp_input_phase is + when "000000" => + if sp_vcnt(8 downto 5) = x"F" then + sp_line <= sp_vcnt(4 downto 0); + else + sp_input_phase <= (others => '0'); + sp_cnt <= sp_cnt + 1; + if sp_cnt = "1111111" then sp_done <= '1'; end if; + end if; + sp_byte_cnt <= (others => '0'); + when "000001" => + sp_code <= sp_ram_do; + when "000010" => + sp_hcnt <= sp_ram_do & '0'; + sp_on_line <= '1'; + when "001001"|"010001"|"011001" => + sp_byte_cnt <= sp_byte_cnt + 1; + when "100001" => + sp_on_line <= '0'; + sp_input_phase <= (others => '0'); + sp_cnt <= sp_cnt + 1; + if sp_cnt = "1111111" then sp_done <= '1'; end if; + when others => + null; + end case; + sp_mux_roms <= sp_input_phase(2 downto 1); + end if; + + if hcnt(0) = '0' then + sp_buffer_ram1_do_r <= sp_buffer_ram1_do; + sp_buffer_ram2_do_r <= sp_buffer_ram2_do; + end if; + + sp_on_line_r <= sp_on_line; + + pix_ena_r <= pix_ena; + + sp_vid <= sp_vid_a; + + end if; + + end if; +end process; + +sp_ram_cache_addr <= cpu_addr(8 downto 0) when sp_ram_cache_cpu_access = '1' else sp_ram_addr; + +move_buf <= '1' when vcnt(8 downto 1) = 250 else '0'; -- line 500-501 +sp_ram_addr <= vcnt(0) & hcnt(8 downto 1) when move_buf = '1' else sp_cnt & sp_input_phase(1 downto 0); +sp_ram_we <= hcnt(0) when move_buf = '1' else '0'; + +sp_vcnt <= vflip + (sp_ram_do & '0'); -- valid when sp_input_phase = 0 + +sp_hflip <= (others => sp_code(6)); +sp_vflip <= (others => sp_code(7)); + +sp_code_line <= sp_code(5 downto 0) & (sp_line xor sp_vflip) & (sp_byte_cnt xor sp_hflip); -- sprite graphics roms addr + +sp_graphx_mux <= sp_graphx1_do when (sp_hflip(0) = '0' and sp_mux_roms = "01") or + (sp_hflip(0) = '1' and sp_mux_roms = "00") else + sp_graphx2_do when (sp_hflip(0) = '0' and sp_mux_roms = "10") or + (sp_hflip(0) = '1' and sp_mux_roms = "11") else + sp_graphx3_do when (sp_hflip(0) = '0' and sp_mux_roms = "11") or + (sp_hflip(0) = '1' and sp_mux_roms = "10") else + sp_graphx4_do when (sp_hflip(0) = '0' and sp_mux_roms = "00") or + (sp_hflip(0) = '1' and sp_mux_roms = "01") ; + +sp_graphx_flip <= sp_graphx_mux when sp_hflip(0) = '0' else + sp_graphx_mux(3 downto 0) & sp_graphx_mux(7 downto 4); + +sp_buffer_ram1_di <= sp_buffer_ram1_do or sp_graphx_flip when vflip(0) = '1' else "00000000"; +sp_buffer_ram1_addr <= sp_hcnt(8 downto 1) when vflip(0) = '1' else hcnt(8 downto 1) - X"05"; +sp_buffer_ram1_we <= not sp_hcnt(0) and sp_on_line and pix_ena when vflip(0) = '1' else hcnt(0); + +sp_buffer_ram2_di <= sp_buffer_ram2_do or sp_graphx_flip when vflip(0) = '0' else "00000000"; +sp_buffer_ram2_addr <= sp_hcnt(8 downto 1) when vflip(0) = '0' else hcnt(8 downto 1) - X"05"; +sp_buffer_ram2_we <= not sp_hcnt(0) and sp_on_line and pix_ena when vflip(0) = '0' else hcnt(0); + +sp_vid_a <= sp_buffer_ram1_do_r(7 downto 4) when (vflip(0) = '0') and (hcnt(0) = '1') else + sp_buffer_ram1_do_r(3 downto 0) when (vflip(0) = '0') and (hcnt(0) = '0') else + sp_buffer_ram2_do_r(7 downto 4) when (vflip(0) = '1') and (hcnt(0) = '1') else + sp_buffer_ram2_do_r(3 downto 0) when (vflip(0) = '1') and (hcnt(0) = '0'); + +-------------------- +--- char machine --- +-------------------- +bg_ram_addr <= cpu_addr(10 downto 0) when bg_ram_cpu_access = '1' else vflip(8 downto 4) & hcnt(8 downto 4) & hcnt(1); + +bg_code_line <= bg_attr(0) & bg_code_r & (vflip(3 downto 1) xor (bg_attr(2) & bg_attr(2) & bg_attr(2) ) ) & (hcnt(3) xor bg_attr(1)); + +process (clock_vid) +begin + if rising_edge(clock_vid) then + if hcnt(0) = '0' then bg_ram_do_r <= bg_ram_do; end if; + if pix_ena = '1' then + if hcnt(0) = '1' then + case hcnt(3 downto 1) is + when "110" => bg_code <= bg_ram_do; + when "111" => bg_attr <= bg_ram_do; + bg_code_r <= bg_code; + when others => null; + end case; + + case hcnt(2 downto 1) xor (bg_attr(1) & bg_attr(1)) is + when "00" => bg_palette_addr <= bg_attr(4 downto 3) & bg_graphx2_do(7 downto 6) & bg_graphx1_do(7 downto 6); + when "01" => bg_palette_addr <= bg_attr(4 downto 3) & bg_graphx2_do(5 downto 4) & bg_graphx1_do(5 downto 4); + when "10" => bg_palette_addr <= bg_attr(4 downto 3) & bg_graphx2_do(3 downto 2) & bg_graphx1_do(3 downto 2); + when others => bg_palette_addr <= bg_attr(4 downto 3) & bg_graphx2_do(1 downto 0) & bg_graphx1_do(1 downto 0); + end case; + end if; + end if; + end if; +end process; + +--------------------------- +-- mux char/sprite video -- +--------------------------- +palette_we <= '1' when cpu_mreq_n = '0' and cpu_wr_n = '0' and cpu_addr(15 downto 7) = X"FF"&'1' else '0'; -- 0xFF80-FFFF + +palette_addr <= cpu_addr(6 downto 1) when palette_we = '1' else bg_palette_addr when sp_vid(2 downto 0) = "000" else bg_attr(7 downto 6) & sp_vid; + +process (clock_vid) +begin + if rising_edge(clock_vid) then + video_g <= palette_do(2 downto 0); + video_b <= palette_do(5 downto 3); + video_r <= palette_do(8 downto 6); + end if; +end process; + +------------------------------ +-- components & sound board -- +------------------------------ + +-- microprocessor Z80 +cpu : entity work.T80se +generic map(Mode => 0, T2Write => 1, IOWait => 1) +port map( + RESET_n => reset_n, + CLK_n => clock_vid, + CLKEN => cpu_ena, + WAIT_n => '1', + INT_n => cpu_irq_n, + NMI_n => '1', --cpu_nmi_n, + BUSRQ_n => '1', + M1_n => cpu_m1_n, + MREQ_n => cpu_mreq_n, + IORQ_n => cpu_ioreq_n, + RD_n => cpu_rd_n, + WR_n => cpu_wr_n, + RFSH_n => open, + HALT_n => open, + BUSAK_n => open, + A => cpu_addr, + DI => cpu_di, + DO => cpu_do +); + +-- CTC interrupt controler Z80-CTC (MK3882) +ctc_controler : entity work.ctc_controler +port map( + clock => clock_vid, + clock_ena => cpu_ena, + reset => reset, + + d_in => cpu_do, + load_data => ctc_controler_we, + int_ack => ctc_int_ack, + + int_pulse_0 => ctc_counter_0_int, + int_pulse_1 => ctc_counter_1_int, + int_pulse_2 => ctc_counter_2_int, + int_pulse_3 => ctc_counter_3_int, + + d_out => ctc_controler_do, + int_n => cpu_irq_n +); + +ctc_counter_0 : entity work.ctc_counter +port map( + clock => clock_vid, + clock_ena => cpu_ena, + reset => reset, + + d_in => cpu_do, + load_data => ctc_counter_0_we, + + clk_trg => '0', + + d_out => ctc_counter_0_do, + zc_to => open, -- zc/to #0 (pin 7) connected to clk_trg #1 (pin 22) on schematics (seems to be not used) + int_pulse => ctc_counter_0_int + +); + +ctc_counter_1 : entity work.ctc_counter +port map( + clock => clock_vid, + clock_ena => cpu_ena, + reset => reset, + + d_in => cpu_do, + load_data => ctc_counter_1_we, + + clk_trg => '0', + + d_out => ctc_counter_1_do, + zc_to => open, + int_pulse => ctc_counter_1_int + +); + +ctc_counter_2 : entity work.ctc_counter +port map( + clock => clock_vid, + clock_ena => cpu_ena, + reset => reset, + + d_in => cpu_do, + load_data => ctc_counter_2_we, + + clk_trg => '0', + + d_out => ctc_counter_2_do, + zc_to => open, + int_pulse => ctc_counter_2_int + +); + +ctc_counter_3 : entity work.ctc_counter +port map( + clock => clock_vid, + clock_ena => cpu_ena, + reset => reset, + + d_in => cpu_do, + load_data => ctc_counter_3_we, + + clk_trg => ctc_counter_3_trg, + + d_out => ctc_counter_3_do, + zc_to => open, + int_pulse => ctc_counter_3_int + +); + +cpu_rom_addr <= cpu_addr(14 downto 0); +cpu_rom_rd <= '1' when cpu_mreq_n = '0' and cpu_rd_n = '0' and cpu_addr(15 downto 12) < X"8" else '0'; + +-- working RAM 0xC000-0xC7FF + mirroring adresses +wram : entity work.cmos_ram +generic map( dWidth => 8, aWidth => 11) +port map( + clk => clock_vidn, + we => wram_we, + addr => cpu_addr(10 downto 0), + d => cpu_do, + q => wram_do +); + +-- video RAM 0xE800-0xEFFF + mirroring adresses +video_ram : entity work.gen_ram +generic map( dWidth => 8, aWidth => 11) +port map( + clk => clock_vidn, + we => bg_ram_we, + addr => bg_ram_addr, + d => cpu_do, + q => bg_ram_do +); + +-- sprite RAM (no cpu access) +sprite_ram : entity work.gen_ram +generic map( dWidth => 8, aWidth => 9) +port map( + clk => clock_vidn, + we => sp_ram_we, + addr => sp_ram_addr, + d => sp_ram_cache_do, + q => sp_ram_do +); + +-- sprite RAM 0xE000-0xE1FF + mirroring adresses +sprites_ram_cache : entity work.gen_ram +generic map( dWidth => 8, aWidth => 9) +port map( + clk => clock_vidn, + we => sp_ram_cache_we, + addr => sp_ram_cache_addr, + d => cpu_do, + q => sp_ram_cache_do +); + +-- sprite line buffer 1 +sprlinebuf1 : entity work.gen_ram +generic map( dWidth => 8, aWidth => 8) +port map( + clk => clock_vidn, + we => sp_buffer_ram1_we, + addr => sp_buffer_ram1_addr, + d => sp_buffer_ram1_di, + q => sp_buffer_ram1_do +); + +-- sprite line buffer 2 +sprlinebuf2 : entity work.gen_ram +generic map( dWidth => 8, aWidth => 8) +port map( + clk => clock_vidn, + we => sp_buffer_ram2_we, + addr => sp_buffer_ram2_addr, + d => sp_buffer_ram2_di, + q => sp_buffer_ram2_do +); + +-- background graphics ROM G3 +bg_graphics_1 : entity work.domino_bg_bits_1 +port map( + clk => clock_vidn, + addr => bg_code_line, + data => bg_graphx1_do +); + +-- background graphics ROM G4 +bg_graphics_2 : entity work.domino_bg_bits_2 +port map( + clk => clock_vidn, + addr => bg_code_line, + data => bg_graphx2_do +); + +--sprite graphics ROM 1E +sprite_graphics_1 : entity work.domino_sp_bits_1 +port map( + clk => clock_vidn, + addr => sp_code_line, + data => sp_graphx1_do +); + +-- sprite graphics ROM 1D +sprite_graphics_2 : entity work.domino_sp_bits_2 +port map( + clk => clock_vidn, + addr => sp_code_line, + data => sp_graphx2_do +); + +-- sprite graphics ROM 1B +sprite_graphics_3 : entity work.domino_sp_bits_3 +port map( + clk => clock_vidn, + addr => sp_code_line, + data => sp_graphx3_do +); + +-- sprite graphics ROM 1A +sprite_graphics_4 : entity work.domino_sp_bits_4 +port map( + clk => clock_vidn, + addr => sp_code_line, + data => sp_graphx4_do +); + +--satans_hollow_sound_board +sound_board : entity work.satans_hollow_sound_board +port map( + clock_40 => clock_40, + reset => reset, + + main_cpu_addr => cpu_addr(7 downto 0), + + ssio_iowe => ssio_iowe, + ssio_di => cpu_do, + ssio_do => ssio_do, + + input_0 => input_0, + input_1 => input_1, + input_2 => input_2, + input_3 => input_3, + + separate_audio => separate_audio, + audio_out_l => audio_out_l, + audio_out_r => audio_out_r, + cpu_rom_addr => snd_rom_addr, + cpu_rom_do => snd_rom_do, + cpu_rom_rd => snd_rom_rd, + dbg_cpu_addr => open --dbg_cpu_addr +); + +-- background & sprite palette +palette : entity work.gen_ram +generic map( dWidth => 9, aWidth => 6) +port map( + clk => clock_vidn, + we => palette_we, + addr => palette_addr, + d => cpu_addr(0) & cpu_do, + q => palette_do +); + +end struct; \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow_sound_board.vhd b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow_sound_board.vhd new file mode 100644 index 00000000..acc35c67 --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/satans_hollow_sound_board.vhd @@ -0,0 +1,553 @@ +--------------------------------------------------------------------------------- +-- Kick_sound_board by Dar (darfpga@aol.fr) (19/10/2019) +-- http://darfpga.blogspot.fr +--------------------------------------------------------------------------------- +-- gen_ram.vhd & io_ps2_keyboard +-------------------------------- +-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com) +-- http://www.syntiac.com/fpga64.html +--------------------------------------------------------------------------------- +-- T80/T80se - Version : 304 +----------------------------- +-- Z80 compatible microprocessor core +-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org) +--------------------------------------------------------------------------------- +-- YM2149 (AY-3-8910) +-- Copyright (c) MikeJ - Jan 2005 +--------------------------------------------------------------------------------- +-- Educational use only +-- Do not redistribute synthetized file with roms +-- Do not redistribute roms whatever the form +-- Use at your own risk +--------------------------------------------------------------------------------- +-- +-- SOUND : 1xZ80 @ 2.0MHz CPU accessing its program rom, working ram, 2x-AY3-8910 +-- 8Kx8bits program rom +-- 1Kx8bits working ram +-- +-- 1xAY-3-8910 +-- 3 sound channels +-- +-- 1xAY-3-8910 +-- 3 sound channels +-- +-- 6 sound modulation (required 8MHz signal => 40MHz/5) +-- 2 global volume control (not activated - not sure it was used for kick ) +-- +-- I/O : +-- 4x8bits command registers from main cpu board (IRAM) +-- 1x8bits status registers to main cpu board (STAT) +-- 5x8bits input buffers to main cpu board (IP0-IP5) +-- 2x8bits output registers from main cpu board (OP0/OP4) +-- +--------------------------------------------------------------------------------- +-- Schematics remarks : +-- Not sure global volume are used => both deactivated +-- Not sure if global channels are mixed together or not => allow for +-- external control mixed/separated +--------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +entity satans_hollow_sound_board is +port( + clock_40 : in std_logic; + reset : in std_logic; + + main_cpu_addr : in std_logic_vector(7 downto 0); + + ssio_iowe : in std_logic; + ssio_di : in std_logic_vector(7 downto 0); + ssio_do : out std_logic_vector(7 downto 0); + + input_0 : in std_logic_vector(7 downto 0); + input_1 : in std_logic_vector(7 downto 0); + input_2 : in std_logic_vector(7 downto 0); + input_3 : in std_logic_vector(7 downto 0); + + separate_audio : in std_logic; + + audio_out_l : out std_logic_vector(15 downto 0); + audio_out_r : out std_logic_vector(15 downto 0); + cpu_rom_addr : out std_logic_vector(13 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + cpu_rom_rd : out std_logic; + dbg_cpu_addr : out std_logic_vector(15 downto 0) + ); +end satans_hollow_sound_board; + +architecture struct of satans_hollow_sound_board is + + signal reset_n : std_logic; + signal clock_snd : std_logic; + signal clock_sndn: std_logic; + + signal clock_cnt1 : std_logic_vector(4 downto 0) := "00000"; + + signal cpu_ena : std_logic; + signal ena_4Mhz : std_logic; + signal clk_8Mhz : std_logic; + + signal cpu_addr : std_logic_vector(15 downto 0); + signal cpu_di : std_logic_vector( 7 downto 0); + signal cpu_do : std_logic_vector( 7 downto 0); + signal cpu_wr_n : std_logic; + signal cpu_rd_n : std_logic; + signal cpu_mreq_n : std_logic; + signal cpu_ioreq_n : std_logic; + signal cpu_irq_n : std_logic; + signal cpu_m1_n : std_logic; + + + signal wram_we : std_logic; + signal wram_do : std_logic_vector( 7 downto 0); + + signal iram_0_do : std_logic_vector( 7 downto 0); + signal iram_1_do : std_logic_vector( 7 downto 0); + signal iram_2_do : std_logic_vector( 7 downto 0); + signal iram_3_do : std_logic_vector( 7 downto 0); + + signal ssio_status : std_logic_vector( 7 downto 0); + + signal div_E11 : std_logic_vector(2 downto 0); -- binary counter 3msb of E11 - 74161 + signal div_D11 : std_logic_vector(3 downto 0); -- decade counter - D11 - 74160 + signal div_C12 : std_logic_vector(6 downto 0); -- stage ripple counter - C12 - MC140247 + signal clr_int : std_logic; + + signal ay1_audio_chan : std_logic_vector( 1 downto 0); + signal ay1_audio_muxed: std_logic_vector( 7 downto 0); + signal ay1_bc1 : std_logic; + signal ay1_bdir : std_logic; + signal ay1_do : std_logic_vector( 7 downto 0); + signal ay1_cs : std_logic; + signal ay1_port_a : std_logic_vector( 7 downto 0); + signal ay1_port_b : std_logic_vector( 7 downto 0); + + signal ay2_audio_chan : std_logic_vector( 1 downto 0); + signal ay2_audio_muxed: std_logic_vector( 7 downto 0); + signal ay2_bc1 : std_logic; + signal ay2_bdir : std_logic; + signal ay2_do : std_logic_vector( 7 downto 0); + signal ay2_cs : std_logic; + signal ay2_port_a : std_logic_vector( 7 downto 0); + signal ay2_port_b : std_logic_vector( 7 downto 0); + + signal ssio_82s123_addr : std_logic_vector(4 downto 0); + signal ssio_82s123_do : std_logic_vector(7 downto 0); + signal ssio_modulation_clock : std_logic; + signal ssio_modulation_clock_r : std_logic; + signal ssio_modulation_load : std_logic; + signal modulation_counter_a1 : std_logic_vector(3 downto 0); + signal modulation_counter_b1 : std_logic_vector(3 downto 0); + signal modulation_counter_c1 : std_logic_vector(3 downto 0); + signal modulation_counter_a2 : std_logic_vector(3 downto 0); + signal modulation_counter_b2 : std_logic_vector(3 downto 0); + signal modulation_counter_c2 : std_logic_vector(3 downto 0); + + signal ch_a1 : std_logic_vector(7 downto 0); + signal ch_b1 : std_logic_vector(7 downto 0); + signal ch_c1 : std_logic_vector(7 downto 0); + signal ch_a2 : std_logic_vector(7 downto 0); + signal ch_b2 : std_logic_vector(7 downto 0); + signal ch_c2 : std_logic_vector(7 downto 0); + + -- K volume data : 148 138 127 112 95 72 42 0 + type bytes_array is array(0 to 7) of std_logic_vector(7 downto 0); + signal K_volume : bytes_array := (X"94",X"8A",X"7F",X"70",X"5F",X"48",X"2A",X"00"); + + signal volume_ch1 : std_logic_vector(7 downto 0); + signal volume_ch2 : std_logic_vector(7 downto 0); + + signal snd_1 : std_logic_vector(17 downto 0); + signal snd_2 : std_logic_vector(17 downto 0); + signal snd_mono : std_logic_vector(18 downto 0); + +begin + +clock_snd <= clock_40; +clock_sndn <= not clock_40; +reset_n <= not reset; + +-- debug +process (reset, clock_snd) +begin + if rising_edge(clock_snd) and cpu_ena ='1' and cpu_mreq_n ='0' then + dbg_cpu_addr <= cpu_addr; + end if; +end process; + +-- make enables clock from clock_snd +process (clock_snd, reset) +begin + if reset='1' then + clock_cnt1 <= (others=>'0'); + clk_8Mhz <= '0'; + else + if rising_edge(clock_snd) then + if clock_cnt1 = "10011" then -- divide by 20 + clock_cnt1 <= (others=>'0'); + else + clock_cnt1 <= clock_cnt1 + 1; + end if; + + if clock_cnt1 = "10011" or + clock_cnt1 = "00100" or + clock_cnt1 = "01001" or + clock_cnt1 = "01110" then + + clk_8Mhz <= not clk_8Mhz; -- (50% duty cycle) + end if; + + end if; + end if; +end process; +-- +cpu_ena <= '1' when clock_cnt1 = "00000" else '0'; -- (2.0MHz) + +ena_4Mhz <= '1' when clock_cnt1 = "00000" or + clock_cnt1 = "01010" else '0'; -- (4.0MHz) + +------------------------------------------ +-- cpu data input with address decoding -- +------------------------------------------ +cpu_di <= cpu_rom_do when cpu_mreq_n = '0' and cpu_addr(15 downto 14) = "00" else -- 0x0000-0x3FFF + wram_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12) = X"8" else -- 0x8000-0x83FF + iram_0_do when cpu_mreq_n = '0' and cpu_addr(15 downto 0)= X"9000" else + iram_1_do when cpu_mreq_n = '0' and cpu_addr(15 downto 0)= X"9001" else + iram_2_do when cpu_mreq_n = '0' and cpu_addr(15 downto 0)= X"9002" else + iram_3_do when cpu_mreq_n = '0' and cpu_addr(15 downto 0)= X"9003" else + ay1_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12)= X"A" else + ay2_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12)= X"B" else + x"FF" when cpu_mreq_n = '0' and cpu_addr(15 downto 12)= X"F" else -- 0xF000 (sw3 dip - D14) + X"FF"; + +------------------------------------------ +-- write enable to working ram from CPU -- +------------------------------------------ +wram_we <= '1' when cpu_mreq_n = '0' and cpu_wr_n = '0' and cpu_addr(15 downto 12) = X"8" else '0'; -- 0x8000-0x83FF +clr_int <= '1' when cpu_mreq_n = '0' and cpu_rd_n = '0' and cpu_addr(15 downto 12) = X"E" else '0'; -- 0xE000-0xEFFF + +ay1_cs <= '1' when cpu_mreq_n = '0' and (cpu_rd_n = '0' or cpu_wr_n = '0') and cpu_addr(15 downto 12) = X"A" else '0'; -- 0xA000-0xAFFF +ay2_cs <= '1' when cpu_mreq_n = '0' and (cpu_rd_n = '0' or cpu_wr_n = '0') and cpu_addr(15 downto 12) = X"B" else '0'; -- 0xB000-0xBFFF + +ay1_bdir <= not (not ay1_cs or cpu_addr(0) ); +ay1_bc1 <= not (not ay1_cs or cpu_addr(1) ); +ay2_bdir <= not (not ay2_cs or cpu_addr(0) ); +ay2_bc1 <= not (not ay2_cs or cpu_addr(1) ); + +ssio_do <= input_0 when main_cpu_addr = X"00" else -- Input 0 -- players, coins, ... + input_1 when main_cpu_addr = X"01" else -- Input 1 + input_2 when main_cpu_addr = X"02" else -- Input 2 + input_3 when main_cpu_addr = X"03" else -- Input 3 -- sw1 dip + x"FF" when main_cpu_addr = X"04" else -- Input 4 -- sw2 dip + ssio_status when main_cpu_addr = X"07" else -- ssio status + x"FF"; + +process (clock_snd) +begin + if rising_edge(clock_snd) then + if cpu_wr_n = '0' and cpu_addr(15 downto 12) = X"C" then ssio_status <= cpu_do; end if; -- 0xC000-0xCFFF + end if; +end process; + +------------------------------------------------------------------------ +-- Misc registers : interrupt, counters E11/D11/C12 +------------------------------------------------------------------------ +process (clock_snd, reset, clr_int, ena_4Mhz) +begin + if reset = '1' then + div_E11 <= (others => '0'); -- 3msb of E11 + div_D11 <= (others => '0'); -- decade counter + div_C12 <= (others => '0'); -- MC14024 + else + if rising_edge(clock_snd) then + + if ena_4Mhz = '1' then + + div_E11 <= div_E11 + 1; + + if div_E11 = "111" then + if div_D11 = "1001" then + div_D11 <= (others => '0'); + else + div_D11 <= div_D11 + 1; + end if; + + if div_D11 = "0100" then + div_C12 <= div_C12 + 1; + end if; + + end if; + + end if; + + if clr_int = '1' then + div_C12 <= (others => '0'); + end if; + + end if; + end if; +end process; + +cpu_irq_n <= not div_C12(6); + +------------------------------- +-- sound modulation / volume -- +------------------------------- + +ssio_82s123_addr <= div_D11 & div_E11(2); + +--74166 8 bits shift register (D13) +ssio_modulation_clock <= ssio_82s123_do(7-to_integer(unsigned(div_E11(1 downto 0) & clk_8Mhz))); +ssio_modulation_load <= '1' when div_D11 = "1001" else '0'; + +-- AY-3-8910 #1 +-- ch A (pin 4) modulated by counter controled by port A3-0 (pin 18->21) +-- ch B (pin 3) modulated by counter controled by port A7-4 (pin 14->17) +-- ch C (pin 38) modulated by counter controled by port B3-0 (pin 10->13) +-- mute left and right port B7 (pin 6) +-- volume#1 contoled by port B6-4 (pin 7->9) + +-- AY-3-8910 #2 +-- ch A (pin 4) modulated by counter controled by port A3-0 (pin 18->21) +-- ch B (pin 3) modulated by counter controled by port A7-4 (pin 14->17) +-- ch C (pin 38) modulated by counter controled by port B3-0 (pin 10->13) +-- mute global port B7 (pin 6) +-- volume#2 contoled by port B6-4 (pin 7->9) + +-- 4051 cmos mux (D5 and E3) +-- CBA +-- 000 => switch X0 (pin 13) ON others OFF +-- 001 => switch X1 (pin 14) ON others OFF +-- ... +-- 111 => switch X7 (pin 4) ON others OFF + +-- Assuming R179 to R187 equivalent to +-- +-- -------- +-- --------| R2 |-------- -- with R1 = 24k + n*4.7k +-- ^ | -------- | ^ -- R2 = 24k +-- | --- --- | -- R3 = (7-n)*4.7 +-- | | | | | | -- +-- Vin | | | R1 R3 | | | Vout -- n being 4051 CBA value +-- | | | | | | -- +-- | --- --- | -- which gives +-- | | | | -- Vout = Vin * (7-n)*4.7/(24+(7-n)*4.7) +-- ------------------------ +-- +-- let : Vout = Vin * K(n) = Vin * (7-n)*4.7/(24+(7-n)*4.7) * 256 +-- +-- with K(n) = [148 138 127 112 95 72 42 0] +-- + +process (clock_snd, ssio_modulation_clock, ssio_modulation_load) +begin + if rising_edge(clock_snd) then + ssio_modulation_clock_r <= ssio_modulation_clock; + + if ssio_modulation_load = '1' then + modulation_counter_a1 <= ay1_port_a(3 downto 0); + modulation_counter_b1 <= ay1_port_a(7 downto 4); + modulation_counter_c1 <= ay1_port_b(3 downto 0); + modulation_counter_a2 <= ay2_port_a(3 downto 0); + modulation_counter_b2 <= ay2_port_a(7 downto 4); + modulation_counter_c2 <= ay2_port_b(3 downto 0); + else + if ssio_modulation_clock = '1' and ssio_modulation_clock_r = '0' then + if modulation_counter_a1 > X"0" then modulation_counter_a1 <= modulation_counter_a1 - 1; end if; + if modulation_counter_b1 > X"0" then modulation_counter_b1 <= modulation_counter_b1 - 1; end if; + if modulation_counter_c1 > X"0" then modulation_counter_c1 <= modulation_counter_c1 - 1; end if; + if modulation_counter_a2 > X"0" then modulation_counter_a2 <= modulation_counter_a2 - 1; end if; + if modulation_counter_b2 > X"0" then modulation_counter_b2 <= modulation_counter_b2 - 1; end if; + if modulation_counter_c2 > X"0" then modulation_counter_c2 <= modulation_counter_c2 - 1; end if; + end if; + end if; + + case ay1_audio_chan is + when "00" => if modulation_counter_a1 = x"0" then ch_a1 <= ay1_audio_muxed; else ch_a1 <= (others => '0'); end if; + when "01" => if modulation_counter_b1 = x"0" then ch_b1 <= ay1_audio_muxed; else ch_b1 <= (others => '0'); end if; + when "10" => if modulation_counter_c1 = x"0" then ch_c1 <= ay1_audio_muxed; else ch_c1 <= (others => '0'); end if; + when others => null; + end case; + + case ay2_audio_chan is + when "00" => if modulation_counter_a2 = x"0" then ch_a2 <= ay2_audio_muxed; else ch_a2 <= (others => '0'); end if; + when "01" => if modulation_counter_b2 = x"0" then ch_b2 <= ay2_audio_muxed; else ch_b2 <= (others => '0'); end if; + when "10" => if modulation_counter_c2 = x"0" then ch_c2 <= ay2_audio_muxed; else ch_c2 <= (others => '0'); end if; + when others => null; + end case; + +-- volume_ch1 <= K_volume(to_integer(unsigned(ay1_port_b(6 downto 4)))); +---- volume_ch2 <= K_volume(to_integer(unsigned(ay2_port_b(6 downto 4)))); +-- volume_ch2 <= K_volume(to_integer(unsigned(ay1_port_b(6 downto 4)))); -- use ch1 control otherwise ch2 is always OFF! + + volume_ch1 <= X"FF"; -- finaly don't use volume controls + volume_ch2 <= X"FF"; + + if ay1_audio_chan = "00" then + snd_1 <= (("00"&ch_a1) + ("00"&ch_b1) + ("00"&ch_c1)) * volume_ch1; + end if; + + if ay2_audio_chan = "00" then + snd_2 <= (("00"&ch_a2) + ("00"&ch_b2) + ("00"&ch_c2)) * volume_ch2; + end if; + + end if; +end process; + +snd_mono <= ('0'&snd_1) + ('0'&snd_2); + +audio_out_l <= snd_1(17 downto 2) when separate_audio = '1' else snd_mono(18 downto 3); +audio_out_r <= snd_2(17 downto 2) when separate_audio = '1' else snd_mono(18 downto 3); + +------------------------------ +-- components & sound board -- +------------------------------ + +-- microprocessor Z80 +cpu : entity work.T80se +generic map(Mode => 0, T2Write => 1, IOWait => 1) +port map( + RESET_n => reset_n, + CLK_n => clock_snd, + CLKEN => cpu_ena, + WAIT_n => '1', + INT_n => cpu_irq_n, + NMI_n => '1', --cpu_nmi_n, + BUSRQ_n => '1', + M1_n => cpu_m1_n, + MREQ_n => cpu_mreq_n, + IORQ_n => cpu_ioreq_n, + RD_n => cpu_rd_n, + WR_n => cpu_wr_n, + RFSH_n => open, + HALT_n => open, + BUSAK_n => open, + A => cpu_addr, + DI => cpu_di, + DO => cpu_do +); + +-- cpu program ROM 0x0000-0x2FFF +--rom_cpu : entity work.satans_hollow_sound_cpu +--port map( +-- clk => clock_sndn, +-- addr => cpu_addr(13 downto 0), +-- data => cpu_rom_do +--); + +cpu_rom_addr <= cpu_addr(13 downto 0); +cpu_rom_rd <= '1' when cpu_mreq_n = '0' and cpu_rd_n = '0' and cpu_addr(15 downto 14) = "00" else '0'; -- 0x0000-0x2FFF + + +-- working RAM 0x8000-0x83FF +wram : entity work.gen_ram +generic map( dWidth => 8, aWidth => 10) +port map( + clk => clock_sndn, + we => wram_we, + addr => cpu_addr(9 downto 0), + d => cpu_do, + q => wram_do +); + +-- iram (command from main cpu to sound cpu) +process (clock_snd, reset, ssio_iowe) +begin + if reset = '1' then + iram_0_do <= (others => '0'); + iram_1_do <= (others => '0'); + iram_2_do <= (others => '0'); + iram_3_do <= (others => '0'); + else + if rising_edge(clock_snd) then + if ssio_iowe = '1' and main_cpu_addr(7 downto 2) = "000111" then -- 0x1C - 0x1F + case main_cpu_addr(1 downto 0) is + when "00" => iram_0_do <= ssio_di; + when "01" => iram_1_do <= ssio_di; + when "10" => iram_2_do <= ssio_di; + when "11" => iram_3_do <= ssio_di; + when others => null; + end case; + end if; + end if; + end if; +end process; + +-- 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); -- pin 37 to 30 + O_DA => ay1_do, -- out std_logic_vector(7 downto 0); -- pin 37 to 30 + O_DA_OE_L => open, -- out std_logic; + -- control + I_A9_L => '0', -- in std_logic; -- pin 24 + I_A8 => '1', -- in std_logic; -- pin 25 + I_BDIR => ay1_bdir, -- in std_logic; -- pin 27 + I_BC2 => '1', -- in std_logic; -- pin 28 + I_BC1 => ay1_bc1, -- in std_logic; -- pin 29 + I_SEL_L => '0', -- 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 => (others => '0'), -- in std_logic_vector(7 downto 0); -- pin 21 to 14 + O_IOA => ay1_port_a, -- out std_logic_vector(7 downto 0); -- pin 21 to 14 + O_IOA_OE_L => open, -- out std_logic; + -- port b + I_IOB => (others => '0'), -- in std_logic_vector(7 downto 0); -- pin 13 to 6 + O_IOB => ay1_port_b, -- out std_logic_vector(7 downto 0); -- pin 13 to 6 + O_IOB_OE_L => open, -- out std_logic; + + ENA => cpu_ena, -- in std_logic; -- clock enable for higher speed operation + RESET_L => reset_n, -- in std_logic; + CLK => clock_snd -- 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); -- pin 37 to 30 + O_DA => ay2_do, -- out std_logic_vector(7 downto 0); -- pin 37 to 30 + O_DA_OE_L => open, -- out std_logic; + -- control + I_A9_L => '0', -- in std_logic; -- pin 24 + I_A8 => '1', -- in std_logic; -- pin 25 + I_BDIR => ay2_bdir, -- in std_logic; -- pin 27 + I_BC2 => '1', -- in std_logic; -- pin 28 + I_BC1 => ay2_bc1, -- in std_logic; -- pin 29 + I_SEL_L => '0', -- 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); -- pin 21 to 14 + O_IOA => ay2_port_a, -- out std_logic_vector(7 downto 0); -- pin 21 to 14 + O_IOA_OE_L => open, -- out std_logic; + -- port b + I_IOB => (others => '0'), -- in std_logic_vector(7 downto 0); -- pin 13 to 6 + O_IOB => ay2_port_b, -- out std_logic_vector(7 downto 0); -- pin 13 to 6 + O_IOB_OE_L => open, -- out std_logic; + + ENA => cpu_ena, -- in std_logic; -- clock enable for higher speed operation + RESET_L => reset_n, -- in std_logic; + CLK => clock_snd -- in std_logic -- note 6 Mhz +); + +-- midway ssio sound modulation prom +midssio : entity work.midssio_82s123 +port map( + clk => clock_sndn, + addr => ssio_82s123_addr, + data => ssio_82s123_do +); + +end struct; \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/sdram.sv b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/sdram.sv new file mode 100644 index 00000000..24cfd9ee --- /dev/null +++ b/Arcade_MiST/Midway MCR 2/DominoMan_MiST/rtl/sdram.sv @@ -0,0 +1,279 @@ +// +// sdram.v +// +// sdram controller implementation for the MiST board +// https://github.com/mist-devel/mist-board +// +// Copyright (c) 2013 Till Harbaum +// Copyright (c) 2019 Gyorgy Szombathelyi +// +// This source file is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This source file is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// + +module sdram ( + + // interface to the MT48LC16M16 chip + inout reg [15:0] SDRAM_DQ, // 16 bit bidirectional data bus + output reg [12:0] SDRAM_A, // 13 bit multiplexed address bus + output reg SDRAM_DQML, // two byte masks + output reg SDRAM_DQMH, // two byte masks + output reg [1:0] SDRAM_BA, // two banks + output SDRAM_nCS, // a single chip select + output SDRAM_nWE, // write enable + output SDRAM_nRAS, // row address select + output SDRAM_nCAS, // columns address select + + // cpu/chipset interface + input init_n, // init signal after FPGA config to initialize RAM + input clk, // sdram clock + + input port1_req, + output reg port1_ack, + input port1_we, + input [23:1] port1_a, + input [1:0] port1_ds, + input [15:0] port1_d, + output [15:0] port1_q, + + input port2_req, + output reg port2_ack, + input port2_we, + input [23:1] port2_a, + input [1:0] port2_ds, + input [15:0] port2_d, + output [15:0] port2_q +); + +localparam RASCAS_DELAY = 3'd2; // tRCD=20ns -> 2 cycles@<100MHz +localparam BURST_LENGTH = 3'b000; // 000=1, 001=2, 010=4, 011=8 +localparam ACCESS_TYPE = 1'b0; // 0=sequential, 1=interleaved +localparam CAS_LATENCY = 3'd2; // 2/3 allowed +localparam OP_MODE = 2'b00; // only 00 (standard operation) allowed +localparam NO_WRITE_BURST = 1'b1; // 0= write burst enabled, 1=only single access write + +localparam MODE = { 3'b000, NO_WRITE_BURST, OP_MODE, CAS_LATENCY, ACCESS_TYPE, BURST_LENGTH}; + +// 64ms/8192 rows = 7.8us -> 842 cycles@108MHz +localparam RFRSH_CYCLES = 10'd842; + +// --------------------------------------------------------------------- +// ------------------------ cycle state machine ------------------------ +// --------------------------------------------------------------------- + +/* + SDRAM state machine for 2 bank interleaved access + 1 word burst, CL2 +cmd issued registered + 0 RAS0 cas1 + 1 ras0 + 2 CAS0 data1 returned + 3 RAS1 cas0 + 4 ras1 + 5 CAS1 data0 returned +*/ + +localparam STATE_RAS0 = 3'd0; // first state in cycle +localparam STATE_RAS1 = 3'd3; // Second ACTIVE command after RAS0 + tRRD (15ns) +localparam STATE_CAS0 = STATE_RAS0 + RASCAS_DELAY; // CAS phase - 3 +localparam STATE_CAS1 = STATE_RAS1 + RASCAS_DELAY; // CAS phase - 5 +localparam STATE_READ0 = STATE_CAS0 + CAS_LATENCY + 1'd1; // 7 +localparam STATE_READ1 = 3'd2; +localparam STATE_LAST = 3'd5; + +reg [2:0] t; + +always @(posedge clk) begin + t <= t + 1'd1; + if (t == STATE_LAST) t <= STATE_RAS0; +end + +// --------------------------------------------------------------------- +// --------------------------- startup/reset --------------------------- +// --------------------------------------------------------------------- + +// wait 1ms (32 8Mhz cycles) after FPGA config is done before going +// into normal operation. Initialize the ram in the last 16 reset cycles (cycles 15-0) +reg [4:0] reset; +reg init = 1'b1; +always @(posedge clk, negedge init_n) begin + if(!init_n) begin + reset <= 5'h1f; + init <= 1'b1; + end else begin + if((t == STATE_LAST) && (reset != 0)) reset <= reset - 5'd1; + init <= !(reset == 0); + end +end + +// --------------------------------------------------------------------- +// ------------------ generate ram control signals --------------------- +// --------------------------------------------------------------------- + +// all possible commands +localparam CMD_INHIBIT = 4'b1111; +localparam CMD_NOP = 4'b0111; +localparam CMD_ACTIVE = 4'b0011; +localparam CMD_READ = 4'b0101; +localparam CMD_WRITE = 4'b0100; +localparam CMD_BURST_TERMINATE = 4'b0110; +localparam CMD_PRECHARGE = 4'b0010; +localparam CMD_AUTO_REFRESH = 4'b0001; +localparam CMD_LOAD_MODE = 4'b0000; + +reg [3:0] sd_cmd; // current command sent to sd ram + +// drive control signals according to current command +assign SDRAM_nCS = sd_cmd[3]; +assign SDRAM_nRAS = sd_cmd[2]; +assign SDRAM_nCAS = sd_cmd[1]; +assign SDRAM_nWE = sd_cmd[0]; + +reg [24:1] addr_latch[2]; +reg [24:1] addr_latch_next[2]; +reg [15:0] din_latch[2]; +reg [1:0] oe_latch; +reg [1:0] we_latch; +reg [1:0] ds[2]; + +localparam PORT_NONE = 1'b0; +localparam PORT_REQ = 1'b1; + +reg next_port[2]; + +reg refresh; +reg [10:0] refresh_cnt; +wire need_refresh = (refresh_cnt >= RFRSH_CYCLES); + +// PORT1: bank 0,1 +always @(*) begin + if (port1_req ^ port1_ack) begin + next_port[0] = PORT_REQ; + addr_latch_next[0] = { 1'b0, port1_a }; + end else begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end +end + +// PORT1: bank 2,3 +always @(*) begin + if ((port2_req ^ port2_ack) && !refresh) begin + next_port[1] = PORT_REQ; + addr_latch_next[1] = { 1'b1, port2_a }; + end else begin + next_port[1] = PORT_NONE; + addr_latch_next[1] = addr_latch[1]; + end +end + +always @(posedge clk) begin + + // permanently latch ram data to reduce delays + SDRAM_DQ <= 16'bZZZZZZZZZZZZZZZZ; + { SDRAM_DQMH, SDRAM_DQML } <= 2'b11; + sd_cmd <= CMD_NOP; // default: idle + refresh_cnt <= refresh_cnt + 1'd1; + + if(init) begin + // initialization takes place at the end of the reset phase + if(t == STATE_RAS0) begin + + if(reset == 15) begin + sd_cmd <= CMD_PRECHARGE; + SDRAM_A[10] <= 1'b1; // precharge all banks + end + + if(reset == 10 || reset == 8) begin + sd_cmd <= CMD_AUTO_REFRESH; + end + + if(reset == 2) begin + sd_cmd <= CMD_LOAD_MODE; + SDRAM_A <= MODE; + SDRAM_BA <= 2'b00; + end + end + end else begin + // RAS phase + // bank 0,1 + if(t == STATE_RAS0) begin + addr_latch[0] <= addr_latch_next[0]; + { oe_latch[0], we_latch[0] } <= 2'b00; + if (next_port[0] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[0][22:10]; + SDRAM_BA <= addr_latch_next[0][24:23]; + { oe_latch[0], we_latch[0] } <= { ~port1_we, port1_we }; + ds[0] <= port1_ds; + din_latch[0] <= port1_d; + end + end + + // bank 2,3 + if(t == STATE_RAS1) begin + refresh <= 1'b0; + addr_latch[1] <= addr_latch_next[1]; + { oe_latch[1], we_latch[1] } <= 2'b00; + if (next_port[1] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[1][22:10]; + SDRAM_BA <= addr_latch_next[1][24:23]; + { oe_latch[1], we_latch[1] } <= { ~port1_we, port1_we }; + ds[1] <= port2_ds; + din_latch[1] <= port2_d; + end + + if (next_port[1] == PORT_NONE && need_refresh && !we_latch[0] && !oe_latch[0]) begin + refresh <= 1'b1; + refresh_cnt <= 0; + sd_cmd <= CMD_AUTO_REFRESH; + end + end + + // CAS phase + if(t == STATE_CAS0 && (we_latch[0] || oe_latch[0])) begin + sd_cmd <= we_latch[0]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[0]; + if (we_latch[0]) begin + SDRAM_DQ <= din_latch[0]; + port1_ack <= port1_req; + end + SDRAM_A <= { 4'b0010, addr_latch[0][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[0][24:23]; + end + + if(t == STATE_CAS1 && (we_latch[1] || oe_latch[1])) begin + sd_cmd <= we_latch[1]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + if (we_latch[1]) begin + SDRAM_DQ <= din_latch[1]; + port2_ack <= port2_req; + end + SDRAM_A <= { 4'b0010, addr_latch[1][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[1][24:23]; + end + + // Data returned + if(t == STATE_READ0 && oe_latch[0]) begin + port1_q <= SDRAM_DQ; + port1_ack <= port1_req; + end + if(t == STATE_READ1 && oe_latch[1]) begin + port2_q <= SDRAM_DQ; + port2_ack <= port2_req; + end + end +end + +endmodule diff --git a/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/README.txt b/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/README.txt index 12cf3cb4..a5edb831 100644 --- a/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/README.txt +++ b/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/README.txt @@ -1,6 +1,6 @@ --------------------------------------------------------------------------------- -- --- Arcade: Two Tiger port to MiST by Gehstock +-- Arcade: Two Tigers port to MiST by Gehstock -- 11 November 2019 -- -- VGA Only diff --git a/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/TwoTigers.qsf b/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/TwoTigers.qsf index 34189dee..6abd7590 100644 --- a/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/TwoTigers.qsf +++ b/Arcade_MiST/Midway MCR 2/TwoTigers_MiST/TwoTigers.qsf @@ -67,7 +67,6 @@ set_global_assignment -name VHDL_FILE rtl/T80/T80.vhd set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip -set_global_assignment -name QIP_FILE ../../../../common/mist/mist.qip # Pin & Location Assignments # ========================== diff --git a/Arcade_MiST/README.txt b/Arcade_MiST/README.txt index c8c79a44..891f98b2 100644 --- a/Arcade_MiST/README.txt +++ b/Arcade_MiST/README.txt @@ -104,6 +104,7 @@ Aviable Arcade Cores Solar fox #Midway MCR 2 + Domino Man Two Tigers(Tron Conversation) #Namco Rally X Hardware

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