From 36e390aa9a5c5707a32687868fd892af2a0232b5 Mon Sep 17 00:00:00 2001 From: Gehstock Date: Sun, 8 Mar 2020 22:45:59 +0100 Subject: [PATCH] add SonSon Project Files --- .../DigDug_MiST/DigDug_MiST.srf | 14 - .../Kung_MiST/LodeRunner_MiST.qpf | 30 + .../Kung_MiST/LodeRunner_MiST.qsf | 275 + .../IremM62 Hardware/Kung_MiST/clean.bat | 15 + .../Kung_MiST/rtl/Graphics.VHD | 272 + .../IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD | 51 + .../Kung_MiST/rtl/LodeRunner_MiST.sv | 285 + .../Kung_MiST/rtl/Sound_Board.vhd | 423 ++ .../IremM62 Hardware/Kung_MiST/rtl/YM2149.sv | 329 + .../Kung_MiST/rtl/bitmapctl_e.vhd | 30 + .../Kung_MiST/rtl/build_id.tcl | 35 + .../Kung_MiST/rtl/clk_div.vhd | 39 + .../IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd | 3963 ++++++++++++ .../IremM62 Hardware/Kung_MiST/rtl/dpram.vhd | 131 + .../Kung_MiST/rtl/dprom_2r.vhd | 135 + .../Kung_MiST/rtl/input_mapper.vhd | 99 + .../IremM62 Hardware/Kung_MiST/rtl/pace.vhd | 146 + .../Kung_MiST/rtl/pace_pkg.vhd | 280 + .../Kung_MiST/rtl/pace_pkg_body.vhd | 50 + .../Kung_MiST/rtl/platform.vhd | 477 ++ .../Kung_MiST/rtl/platform_pkg.vhd | 55 + .../Kung_MiST/rtl/platform_variant_pkg.vhd | 524 ++ .../Kung_MiST/rtl/pll_mist.qip | 4 + .../Kung_MiST/rtl/pll_mist.vhd | 461 ++ .../Kung_MiST/rtl/roms/Roms.txt | 37 + .../Kung_MiST/rtl/roms/a-3e-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/a-3f-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/a-3h-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/a-4d-c.bin.hex | 1025 +++ .../Kung_MiST/rtl/roms/a-4e-c.bin.hex | 1025 +++ .../Kung_MiST/rtl/roms/b-3m-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-3n-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4a-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4c-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4d-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4e-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4f-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4h-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4k-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4l-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4m-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/b-4n-.bin.hex | 513 ++ .../Kung_MiST/rtl/roms/battroad.zip | Bin 0 -> 68780 bytes .../Kung_MiST/rtl/roms/g-4c-a.hex | 258 + .../Kung_MiST/rtl/roms/g-4d-a.hex | 258 + .../Kung_MiST/rtl/roms/g-4e-a.hex | 258 + .../Kung_MiST/rtl/roms/kungfum.zip | Bin 0 -> 92575 bytes .../Kung_MiST/rtl/roms/kungfum/a-3e-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/a-3f-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/a-3h-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/a-4d-c.bin | Bin 0 -> 16384 bytes .../Kung_MiST/rtl/roms/kungfum/a-4e-c.bin | Bin 0 -> 16384 bytes .../Kung_MiST/rtl/roms/kungfum/b-1l-.bin | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/kungfum/b-1m-.bin | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/kungfum/b-1n-.bin | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/kungfum/b-3m-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-3n-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4a-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4c-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4d-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4e-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4f-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4h-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4k-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4l-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4m-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-4n-.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/b-5f-.bin | Bin 0 -> 32 bytes .../Kung_MiST/rtl/roms/kungfum/b-6f-.bin | 1 + .../Kung_MiST/rtl/roms/kungfum/g-1f-.bin | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/kungfum/g-1h-.bin | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/kungfum/g-1j-.bin | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/kungfum/g-4c-a.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/g-4d-a.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/g-4e-a.bin | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/kungfum/make_proms.bat | 15 + .../rtl/roms/kungfum/make_vhdl_prom.exe | Bin 0 -> 119861 bytes .../Kung_MiST/rtl/roms/kungfum/prog.bin | Bin 0 -> 32768 bytes .../Kung_MiST/rtl/roms/kungfum/prog.vhd | 2070 ++++++ .../Kung_MiST/rtl/roms/kungfum/snd.bin | Bin 0 -> 24576 bytes .../Kung_MiST/rtl/roms/kungfum/snd_prg.vhd | 1558 +++++ .../Kung_MiST/rtl/roms/kungfum/spr1.bin | Bin 0 -> 32768 bytes .../Kung_MiST/rtl/roms/kungfum/spr2.bin | Bin 0 -> 32768 bytes .../Kung_MiST/rtl/roms/kungfum/spr3.bin | Bin 0 -> 32768 bytes .../Kung_MiST/rtl/roms/ldrun.zip | Bin 0 -> 47197 bytes .../Kung_MiST/rtl/roms/ldrun/lr-a-3f | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-a-3h | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-a-4a | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-a-4b | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-a-4d | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-a-4e | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-1l | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-1m | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-1n | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-3n | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-4c | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-4k | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-5p | Bin 0 -> 32 bytes .../Kung_MiST/rtl/roms/ldrun/lr-b-6f | 1 + .../Kung_MiST/rtl/roms/ldrun/lr-e-2d | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-e-2f | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-e-2j | Bin 0 -> 8192 bytes .../Kung_MiST/rtl/roms/ldrun/lr-e-3l | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/ldrun/lr-e-3m | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/ldrun/lr-e-3n | Bin 0 -> 256 bytes .../Kung_MiST/rtl/roms/ldrun/make_proms.bat | 11 + .../rtl/roms/ldrun/make_vhdl_prom.exe | Bin 0 -> 119861 bytes .../Kung_MiST/rtl/roms/ldrun/prog.bin | Bin 0 -> 32768 bytes .../Kung_MiST/rtl/roms/ldrun/prog.vhd | 2070 ++++++ .../rtl/roms/ldrun/rom_sprite_high.vhd | 24 + .../rtl/roms/ldrun/rom_sprite_high_new.vhd | 24 + .../Kung_MiST/rtl/roms/ldrun/snd.bin | Bin 0 -> 16384 bytes .../Kung_MiST/rtl/roms/ldrun/snd_prg.vhd | 1046 +++ .../Kung_MiST/rtl/roms/lotlot.zip | Bin 0 -> 38811 bytes .../Kung_MiST/rtl/roms/nu/lr-a-4a.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-a-4b.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-a-4d.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-a-4e.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-b-3n.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-b-4c.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-b-4k.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-e-2d.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-e-2f.hex | 513 ++ .../Kung_MiST/rtl/roms/nu/lr-e-2j.hex | 513 ++ .../IremM62 Hardware/Kung_MiST/rtl/sdram.sv | 348 + .../IremM62 Hardware/Kung_MiST/rtl/spram.vhd | 91 + .../Kung_MiST/rtl/sprite_array.vhd | 164 + .../Kung_MiST/rtl/sprite_pkg.vhd | 97 + .../Kung_MiST/rtl/sprite_pkg_body.vhd | 62 + .../Kung_MiST/rtl/spritectl.vhd | 202 + .../Kung_MiST/rtl/spritereg.vhd | 68 + .../IremM62 Hardware/Kung_MiST/rtl/sprom.vhd | 83 + .../Kung_MiST/rtl/target_top.vhd | 145 + .../Kung_MiST/rtl/tilemapctl.vhd | 106 + .../Kung_MiST/rtl/tilemapctl_e.vhd | 29 + .../Kung_MiST/rtl/video_controller.vhd | 465 ++ .../Kung_MiST/rtl/video_controller_pkg.vhd | 230 + .../rtl/video_controller_pkg_body.vhd | 29 + .../Kung_MiST/rtl/video_mixer.vhd | 66 + .../LodeRunner_MiST/LodeRunner_MiST.qsf | 4 +- .../LodeRunner_MiST/rtl/Graphics.VHD | 1 - .../LodeRunner_MiST/rtl/LodeRunner_MiST.sv | 94 +- .../LodeRunner_MiST/rtl/Sound_Board.vhd | 11 +- .../LodeRunner_MiST/rtl/platform_pkg.vhd | 77 +- .../LodeRunner_MiST/rtl/pll_mist.vhd | 58 +- .../LodeRunner_MiST/rtl/target_top.vhd | 66 +- .../LodeRunner_MiST/rtl/video_controller.vhd | 10 + .../rtl/video_controller_pkg.vhd | 3 +- .../Sonson_MiST/Sonson_MiST.qpf | 30 + .../Sonson_MiST/Sonson_MiST.qsf | 269 + .../SonSon Hardware/Sonson_MiST/clean.bat | 15 + .../Sonson_MiST/rtl/Graphics.VHD | 270 + .../Sonson_MiST/rtl/SonSon_MiST.sv | 281 + .../SonSon Hardware/Sonson_MiST/rtl/YM2149.sv | 329 + .../Sonson_MiST/rtl/bitmapctl_e.vhd | 29 + .../Sonson_MiST/rtl/build_id.tcl | 35 + .../Sonson_MiST/rtl/cpu09s.vhd | 5679 +++++++++++++++++ .../SonSon Hardware/Sonson_MiST/rtl/dpram.vhd | 131 + .../Sonson_MiST/rtl/dprom_2r.vhd | 135 + .../Sonson_MiST/rtl/mc6809-master/README.md | 109 + .../Sonson_MiST/rtl/mc6809-master/mc6809.v | 80 + .../Sonson_MiST/rtl/mc6809-master/mc6809e.v | 48 + .../Sonson_MiST/rtl/mc6809-master/mc6809i.v | 4156 ++++++++++++ .../Sonson_MiST/rtl/mc6809-master/mc6809s.v | 82 + .../SonSon Hardware/Sonson_MiST/rtl/pace.vhd | 160 + .../Sonson_MiST/rtl/pace_pkg.vhd | 147 + .../Sonson_MiST/rtl/pace_pkg_body.vhd | 17 + .../Sonson_MiST/rtl/platform.vhd | 567 ++ .../Sonson_MiST/rtl/platform_pkg.vhd | 212 + .../Sonson_MiST/rtl/pll_mist.qip | 4 + .../Sonson_MiST/rtl/pll_mist.vhd | 429 ++ .../Sonson_MiST/rtl/roms/cram.hex | 65 + .../Sonson_MiST/rtl/roms/sonson.zip | Bin 0 -> 64728 bytes .../Sonson_MiST/rtl/roms/sonson/make.bat | 7 + .../Sonson_MiST/rtl/roms/sonson/ss.01e | Bin 0 -> 16384 bytes .../Sonson_MiST/rtl/roms/sonson/ss.02e | Bin 0 -> 16384 bytes .../Sonson_MiST/rtl/roms/sonson/ss.03e | Bin 0 -> 16384 bytes .../Sonson_MiST/rtl/roms/sonson/ss_10.m6 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_11.m3 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_12.m4 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_13.m1 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_14.m2 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_6.c11 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_7.b6 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_8.b5 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ss_9.m5 | Bin 0 -> 8192 bytes .../Sonson_MiST/rtl/roms/sonson/ssb1.k11 | Bin 0 -> 256 bytes .../Sonson_MiST/rtl/roms/sonson/ssb2.c4 | Bin 0 -> 256 bytes .../Sonson_MiST/rtl/roms/sonson/ssb3.h7 | Bin 0 -> 256 bytes .../Sonson_MiST/rtl/roms/sonson/ssb4.b2 | Bin 0 -> 32 bytes .../Sonson_MiST/rtl/roms/sonson/ssb5.b1 | Bin 0 -> 32 bytes .../Sonson_MiST/rtl/roms/ss_01e.hex | 1025 +++ .../Sonson_MiST/rtl/roms/ss_02e.hex | 1025 +++ .../Sonson_MiST/rtl/roms/ss_03e.hex | 1025 +++ .../Sonson_MiST/rtl/roms/ss_10_m6.hex | 513 ++ .../Sonson_MiST/rtl/roms/ss_11_m3.hex | 513 ++ .../Sonson_MiST/rtl/roms/ss_12_m4.hex | 513 ++ .../Sonson_MiST/rtl/roms/ss_13_m1.hex | 513 ++ .../Sonson_MiST/rtl/roms/ss_14_m2.hex | 513 ++ .../Sonson_MiST/rtl/roms/ss_7_b6.hex | 513 ++ .../Sonson_MiST/rtl/roms/ss_8_b5.hex | 513 ++ .../Sonson_MiST/rtl/roms/ss_9_m5.hex | 513 ++ .../Sonson_MiST/rtl/roms/vram.hex | 65 + .../SonSon Hardware/Sonson_MiST/rtl/sdram.sv | 348 + .../SonSon Hardware/Sonson_MiST/rtl/sound.vhd | 46 + .../SonSon Hardware/Sonson_MiST/rtl/spram.vhd | 91 + .../Sonson_MiST/rtl/sprite_array.vhd | 164 + .../Sonson_MiST/rtl/sprite_pkg.vhd | 97 + .../Sonson_MiST/rtl/sprite_pkg_body.vhd | 62 + .../Sonson_MiST/rtl/spritectl.vhd | 160 + .../Sonson_MiST/rtl/spritereg.vhd | 62 + .../SonSon Hardware/Sonson_MiST/rtl/sprom.vhd | 83 + .../Sonson_MiST/rtl/target_top.vhd | 107 + .../Sonson_MiST/rtl/tilemapctl.vhd | 111 + .../Sonson_MiST/rtl/tilemapctl_e.vhd | 28 + .../Sonson_MiST/rtl/video_controller.vhd | 455 ++ .../Sonson_MiST/rtl/video_controller_pkg.vhd | 229 + .../rtl/video_controller_pkg_body.vhd | 29 + .../Sonson_MiST/rtl/video_mixer.vhd | 66 + 219 files changed, 55624 insertions(+), 182 deletions(-) delete mode 100644 Arcade_MiST/Galaga Hardware/DigDug_MiST/DigDug_MiST.srf create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qpf create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qsf create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/clean.bat create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Graphics.VHD create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/LodeRunner_MiST.sv create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Sound_Board.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/YM2149.sv create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/bitmapctl_e.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/build_id.tcl create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/clk_div.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dpram.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dprom_2r.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/input_mapper.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg_body.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_pkg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_variant_pkg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.qip create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/Roms.txt create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3e-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3f-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3h-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4d-c.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4e-c.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3m-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3n-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4a-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4c-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4d-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4e-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4f-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4h-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4k-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4l-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4m-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4n-.bin.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/battroad.zip create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4c-a.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4d-a.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4e-a.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum.zip create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3e-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3f-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3h-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4d-c.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4e-c.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1l-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1m-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1n-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3m-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3n-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4a-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4c-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4d-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4e-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4f-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4h-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4k-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4l-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4m-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4n-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-5f-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-6f-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1f-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1h-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1j-.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4c-a.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4d-a.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4e-a.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_proms.bat create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_vhdl_prom.exe create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd_prg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr1.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr2.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr3.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun.zip create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3f create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3h create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4a create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4b create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4d create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4e create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1l create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1m create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1n create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-3n create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4c create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4k create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-5p create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-6f create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2d create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2f create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2j create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3l create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3m create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3n create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_proms.bat create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_vhdl_prom.exe create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high_new.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd.bin create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd_prg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/lotlot.zip create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4a.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4b.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4d.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4e.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-3n.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4c.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4k.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2d.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2f.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2j.hex create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sdram.sv create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spram.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_array.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg_body.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritectl.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritereg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprom.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/target_top.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl_e.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg_body.vhd create mode 100644 Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_mixer.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qpf create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qsf create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/clean.bat create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/Graphics.VHD create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/SonSon_MiST.sv create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/YM2149.sv create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/bitmapctl_e.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/build_id.tcl create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/cpu09s.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dpram.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dprom_2r.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/README.md create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809.v create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809e.v create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809i.v create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809s.v create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg_body.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform_pkg.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.qip create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/cram.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson.zip create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/make.bat create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.01e create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.02e create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.03e create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_10.m6 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_11.m3 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_12.m4 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_13.m1 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_14.m2 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_6.c11 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_7.b6 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_8.b5 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_9.m5 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb1.k11 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb2.c4 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb3.h7 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb4.b2 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb5.b1 create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_01e.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_02e.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_03e.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_10_m6.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_11_m3.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_12_m4.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_13_m1.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_14_m2.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_7_b6.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_8_b5.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_9_m5.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/vram.hex create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sdram.sv create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sound.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spram.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_array.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg_body.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritectl.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritereg.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprom.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/target_top.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl_e.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg_body.vhd create mode 100644 Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_mixer.vhd diff --git a/Arcade_MiST/Galaga Hardware/DigDug_MiST/DigDug_MiST.srf b/Arcade_MiST/Galaga Hardware/DigDug_MiST/DigDug_MiST.srf deleted file mode 100644 index 9dc57685..00000000 --- a/Arcade_MiST/Galaga Hardware/DigDug_MiST/DigDug_MiST.srf +++ /dev/null @@ -1,14 +0,0 @@ -{ "" "" "" "Verilog HDL Declaration warning at tv80s.v(55): \"do\" is SystemVerilog-2005 keyword" { } { } 0 10463 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Unrecognized synthesis attribute \"dc_script_begin\" at rtl/TV80/tv80_reg.v(67)" { } { } 0 10335 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Net \"R\" at tv80_core.v(97) has no driver or initial value, using a default initial value '0'" { } { } 0 10030 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Verilog HDL warning at tv80_core.v(97): object R used but never assigned" { } { } 0 10858 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Output port \"rfsh_n\" at tv80_core.v(59) has no driver" { } { } 0 10034 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10335 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10463 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10230 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 276027 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10268 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10036 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10273 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10270 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 14284 "" 0 0 "Quartus II" 0 -1 0 ""} diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qpf b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qpf new file mode 100644 index 00000000..dbbbab92 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2011 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 +# Version 10.1 Build 197 01/19/2011 Service Pack 1 SJ Full Version +# Date created = 23:49:02 July 13, 2012 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "10.1" +DATE = "23:49:02 July 13, 2012" + +# Revisions + +PROJECT_REVISION = "LodeRunner_MiST" diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qsf b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qsf new file mode 100644 index 00000000..7e0b14c7 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qsf @@ -0,0 +1,275 @@ +# -------------------------------------------------------------------------- # +# +# 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 = 21:06:00 February 29, 2020 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# LodeRunner_MiST_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + + +# Project-Wide Assignments +# ======================== +set_global_assignment -name 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" +set_global_assignment -name SMART_RECOMPILE ON +set_global_assignment -name SYSTEMVERILOG_FILE rtl/LodeRunner_MiST.sv +set_global_assignment -name VHDL_FILE rtl/target_top.vhd +set_global_assignment -name VHDL_FILE rtl/platform_variant_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/platform_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/platform.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/pace.vhd +set_global_assignment -name VHDL_FILE rtl/Graphics.VHD +set_global_assignment -name VHDL_FILE rtl/video_mixer.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl.vhd +set_global_assignment -name VHDL_FILE rtl/bitmapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/spritereg.vhd +set_global_assignment -name VHDL_FILE rtl/spritectl.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_array.vhd +set_global_assignment -name VHDL_FILE rtl/Inputs.VHD +set_global_assignment -name VHDL_FILE rtl/input_mapper.vhd +set_global_assignment -name VHDL_FILE rtl/dprom_2r.vhd +set_global_assignment -name VHDL_FILE rtl/dpram.vhd +set_global_assignment -name VHDL_FILE rtl/sprom.vhd +set_global_assignment -name VHDL_FILE rtl/spram.vhd +set_global_assignment -name VHDL_FILE rtl/clk_div.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv +set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd +set_global_assignment -name VHDL_FILE rtl/cpu68.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/YM2149.sv +set_global_assignment -name VHDL_FILE rtl/Sound_Board.vhd +set_global_assignment -name VHDL_FILE rtl/roms/ldrun/snd_prg.vhd +set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip +set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip +set_global_assignment -name VHDL_FILE ../../../common/CPU/T80/Z80.vhd + +# 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 +set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON + +# Analysis & Synthesis Assignments +# ================================ +set_global_assignment -name FAMILY "Cyclone III" +set_global_assignment -name TOP_LEVEL_ENTITY LodeRunner_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 +set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED +set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON +set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE ON +set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 +set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF +set_global_assignment -name SEARCH_PATH common/CPU/T80/ -tag from_archive +set_global_assignment -name SEARCH_PATH common/mist/ -tag from_archive +set_global_assignment -name SEARCH_PATH rtl/ -tag from_archive + +# 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" +set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" +set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON +set_global_assignment -name FITTER_EFFORT "STANDARD FIT" + +# Assembler Assignments +# ===================== +set_global_assignment -name GENERATE_RBF_FILE ON +set_global_assignment -name USE_CONFIGURATION_DEVICE OFF + +# SignalTap II Assignments +# ======================== +set_global_assignment -name ENABLE_SIGNALTAP OFF +set_global_assignment -name USE_SIGNALTAP_FILE output_files/mcr3.stp + +# Power Estimation Assignments +# ============================ +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR" +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(LodeRunner_MiST) + + # Pin & Location Assignments + # ========================== + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQ[*] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_A[*] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[0] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[1] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQMH + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQML + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nRAS + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCAS + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nWE + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCS + set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] + set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] + + # Fitter Assignments + # ================== + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_A[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQ[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_BA[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQML + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQMH + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nRAS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCAS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nWE + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CKE + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CLK + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_HS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_VS + set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_L + set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_R + set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to SPI_DO + + # start DESIGN_PARTITION(Top) + # --------------------------- + + # Incremental Compilation Assignments + # =================================== + 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 + + # end DESIGN_PARTITION(Top) + # ------------------------- + +# end ENTITY(LodeRunner_MiST) +# --------------------------- +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/clean.bat b/Arcade_MiST/IremM62 Hardware/Kung_MiST/clean.bat new file mode 100644 index 00000000..c9a2cb06 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/clean.bat @@ -0,0 +1,15 @@ +@echo off +del /s *.bak +del /s *.orig +del /s *.rej +rmdir /s /q db +rmdir /s /q incremental_db +rmdir /s /q output +rmdir /s /q simulation +rmdir /s /q greybox_tmp +del PLLJ_PLLSPE_INFO.txt +del *.qws +del *.ppf +del *.qip +del *.ddb +pause diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Graphics.VHD b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Graphics.VHD new file mode 100644 index 00000000..dc3fb666 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Graphics.VHD @@ -0,0 +1,272 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.std_logic_arith.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; + +entity Graphics is + port + ( + bitmap_ctl_i : in to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_ctl_o : out from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_i : in to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_ctl_o : out from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_i : in to_SPRITE_REG_t; + sprite_ctl_i : in to_SPRITE_CTL_t; + sprite_ctl_o : out from_SPRITE_CTL_t; + spr0_hit : out std_logic; + + graphics_i : in to_GRAPHICS_t; + graphics_o : out from_GRAPHICS_t; + + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t + ); + +end Graphics; + +architecture SYN of Graphics is + + alias clk : std_logic is video_i.clk; + + signal from_video_ctl : from_VIDEO_CTL_t; + signal bitmap_ctl_o_s : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal tilemap_ctl_o_s : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal sprite_ctl_o_s : from_SPRITE_CTL_t; + signal sprite_pri : std_logic; + + + signal rgb_data : RGB_t; + -- before OSD is mixed in + signal video_o_s : to_VIDEO_t; + +begin + + -- dodgy OSD transparency... + video_o.clk <= video_o_s.clk; + video_o.rgb.r <= video_o_s.rgb.r; + video_o.rgb.g <= video_o_s.rgb.g; + video_o.rgb.b <= video_o_s.rgb.b; + video_o.hsync <= video_o_s.hsync; + video_o.vsync <= video_o_s.vsync; + video_o.hblank <= video_o_s.hblank; + video_o.vblank <= video_o_s.vblank; + + graphics_o.y <= from_video_ctl.y; + -- should this be the 'real' vblank or the 'active' vblank? + -- - use the real for now + graphics_o.hblank <= video_o_s.hblank; + graphics_o.vblank <= video_o_s.vblank; + --graphics_o.vblank <= from_video_ctl.vblank; + + pace_video_controller_inst : entity work.pace_video_controller + generic map + ( + CONFIG => PACE_VIDEO_CONTROLLER_TYPE, + DELAY => PACE_VIDEO_PIPELINE_DELAY, + H_SIZE => PACE_VIDEO_H_SIZE, + V_SIZE => PACE_VIDEO_V_SIZE, + L_CROP => PACE_VIDEO_L_CROP, + R_CROP => PACE_VIDEO_R_CROP, + H_SCALE => PACE_VIDEO_H_SCALE, + V_SCALE => PACE_VIDEO_V_SCALE, + H_SYNC_POL => PACE_VIDEO_H_SYNC_POLARITY, + V_SYNC_POL => PACE_VIDEO_V_SYNC_POLARITY, + BORDER_RGB => PACE_VIDEO_BORDER_RGB + ) + port map + ( + -- clocking etc + video_i => video_i, + + -- register interface + reg_i.h_scale => "000", + reg_i.v_scale => "000", + -- video data signals (in) + rgb_i => rgb_data, + + -- video control signals (out) + video_ctl_o => from_video_ctl, + + -- VGA signals (out) + video_o => video_o_s + ); + + pace_video_mixer_inst : entity work.pace_video_mixer + port map + ( + bitmap_ctl_o => bitmap_ctl_o_s, + tilemap_ctl_o => tilemap_ctl_o_s, + sprite_rgb => sprite_ctl_o_s.rgb, + sprite_set => sprite_ctl_o_s.set, + sprite_pri => sprite_pri, + + video_ctl_i => from_video_ctl, + graphics_i => graphics_i, + rgb_o => rgb_data + ); + + GEN_NO_BITMAPS : if PACE_VIDEO_NUM_BITMAPS = 0 generate + --bitmap_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + end generate GEN_NO_BITMAPS; + + GEN_BITMAP_1 : if PACE_VIDEO_NUM_BITMAPS > 0 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(1), + ctl_o => bitmap_ctl_o_s(1), + + graphics_i => graphics_i + ); + end generate GEN_BITMAP_1; + + GEN_BITMAP_2 : if PACE_VIDEO_NUM_BITMAPS > 1 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(2), + ctl_o => bitmap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_2; + + GEN_BITMAP_3 : if PACE_VIDEO_NUM_BITMAPS > 2 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_3) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(3), + ctl_o => bitmap_ctl_o_s(3), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_3; + + bitmap_ctl_o <= bitmap_ctl_o_s; + + GEN_NO_TILEMAPS : if PACE_VIDEO_NUM_TILEMAPS = 0 generate + --tilemap_ctl_o_s(1) <= ((others => '0'), (others => '0'), (others => '0'), + -- (others => (others => '0')), '0'); + end generate GEN_NO_TILEMAPS; + + GEN_TILEMAP_1 : if PACE_VIDEO_NUM_TILEMAPS > 0 generate + + foreground_mapctl_inst : entity work.tilemapCtl(TILEMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(1), + ctl_o => tilemap_ctl_o_s(1), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_1; + + GEN_TILEMAP_2 : if PACE_VIDEO_NUM_TILEMAPS > 1 generate + + background_mapctl_inst : entity work.tilemapCtl(TILEMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(2), + ctl_o => tilemap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_2; + + tilemap_ctl_o <= tilemap_ctl_o_s; + + GEN_NO_SPRITES : if PACE_VIDEO_NUM_SPRITES = 0 generate + sprite_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + sprite_pri <= '0'; + spr0_hit <= '0'; + end generate GEN_NO_SPRITES; + + GEN_SPRITES : if PACE_VIDEO_NUM_SPRITES > 0 generate + + sprites_inst : sprite_array + generic map + ( + N_SPRITES => PACE_VIDEO_NUM_SPRITES, + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + -- register interface + reg_i => sprite_reg_i, + + -- video control signals + video_ctl => from_video_ctl, + + graphics_i => graphics_i, + + row_a => sprite_ctl_o_s.a, + row_d => sprite_ctl_i.d, + + rgb => sprite_ctl_o_s.rgb, + set => sprite_ctl_o_s.set, + pri => sprite_pri, + spr0_set => spr0_hit + ); + + end generate GEN_SPRITES; + + sprite_ctl_o <= sprite_ctl_o_s; + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD new file mode 100644 index 00000000..6551aeaf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD @@ -0,0 +1,51 @@ +Library IEEE; +Use IEEE.std_logic_1164.all; + +library work; +use work.pace_pkg.all; + +entity inputs is + generic + ( + NUM_DIPS : integer := 8; + NUM_INPUTS : integer := 2; + CLK_1US_DIV : natural := 30 + ); + port + ( + clk : in std_logic; + reset : in std_logic; + jamma : in from_JAMMA_t; + + dips : in std_logic_vector(NUM_DIPS-1 downto 0); + inputs : out from_MAPPED_INPUTS_t(0 to NUM_INPUTS-1) + ); +end entity inputs; + +architecture SYN of inputs is + + signal reset_n : std_logic; + + +begin + + reset_n <= not reset; + + + inputmapper_inst : entity work.inputmapper + generic map + ( + NUM_DIPS => NUM_DIPS, + NUM_INPUTS => NUM_INPUTS + ) + port map + ( + clk => clk, + rst_n => reset_n, + jamma => jamma, + dips => dips, + inputs => inputs + ); + + +end architecture SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/LodeRunner_MiST.sv b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/LodeRunner_MiST.sv new file mode 100644 index 00000000..d5564488 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/LodeRunner_MiST.sv @@ -0,0 +1,285 @@ +module LodeRunner_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 = { + "KUNGFUM;ROM;", + "O2,Rotate Controls,Off,On;", + "O34,Scanlines,Off,25%,50%,75%;", + "O5,Blending,Off,On;", + "O6,Service,Off,On;", + "T0,Reset;", + "V,v1.0.",`BUILD_DATE +}; + +wire rotate = status[2]; +wire [1:0] scanlines = status[4:3]; +wire blend = status[5]; +wire service = status[6]; + +assign LED = ~ioctl_downl; +assign SDRAM_CLK = clk_sd; +assign SDRAM_CKE = 1; + +wire clk_sys, clk_aud, clk_sd, clk_vid; +wire pll_locked; +pll_mist pll( + .inclk0(CLOCK_27), + .areset(0), + .c0(clk_sys), + .c1(clk_vid), + .c2(clk_sd), + .c3(clk_aud), + .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 no_csync; +wire key_pressed; +wire [7:0] key_code; +wire key_strobe; + +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 ), + .no_csync (no_csync ), + .key_strobe (key_strobe ), + .key_pressed (key_pressed ), + .key_code (key_code ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), + .status (status ) + ); + +wire [14:0] rom_addr; +wire [15:0] rom_do; + +wire [13:0] snd_addr; +wire [15:0] snd_do; + +wire [14:0] sp_addr; +wire [31:0] sp_do; + +wire ioctl_downl; +wire [7:0] ioctl_index; +wire ioctl_wr; +wire [24:0] ioctl_addr; +wire [7:0] ioctl_dout; + +data_io data_io( + .clk_sys ( clk_sd ), + .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 ) +); + +wire [24:0] sp_ioctl_addr = ioctl_addr - 17'h10000; //todo + +reg port1_req, port2_req; +sdram sdram( + .*, + .init_n ( pll_locked ), + .clk ( clk_sd ), + + // port1 used for main + sound CPU + .port1_req ( port1_req ), + .port1_ack ( ), + .port1_a ( ioctl_addr[23:1] ), + .port1_ds ( {ioctl_addr[0], ~ioctl_addr[0]} ), + .port1_we ( ioctl_downl ), + .port1_d ( {ioctl_dout, ioctl_dout} ), + .port1_q ( ), + + .cpu1_addr ( ioctl_downl ? 16'hffff : {2'b00, rom_addr[14:1]} ), + .cpu1_q ( rom_do ), + .cpu2_addr ( ioctl_downl ? 16'hffff : (16'h4000 + snd_addr[13:1]) ), + .cpu2_q ( snd_do ), + + // port2 for sprite graphics + .port2_req ( port2_req ), + .port2_ack ( ), + .port2_a ( {sp_ioctl_addr[23:16], sp_ioctl_addr[13:0], sp_ioctl_addr[15]} ), // merge sprite roms to 32-bit wide words + .port2_ds ( {sp_ioctl_addr[14], ~sp_ioctl_addr[14]} ), + .port2_we ( ioctl_downl ), + .port2_d ( {ioctl_dout, ioctl_dout} ), + .port2_q ( ), + + .sp_addr ( ioctl_downl ? 15'h7fff : sp_addr ), + .sp_q ( sp_do ) +); + +// ROM download controller +always @(posedge clk_sd) begin + reg ioctl_wr_last = 0; + + ioctl_wr_last <= ioctl_wr; + if (ioctl_downl) begin + if (~ioctl_wr_last && ioctl_wr) begin + port1_req <= ~port1_req; + port2_req <= ~port2_req; + end + end +end + +// reset signal generation +reg reset = 1; +reg rom_loaded = 0; +always @(posedge clk_sys) begin + reg ioctl_downlD; + reg [15:0] reset_count; + ioctl_downlD <= ioctl_downl; + + if (status[0] | buttons[1] | ~rom_loaded) reset_count <= 16'hffff; + else if (reset_count != 0) reset_count <= reset_count - 1'd1; + + if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1; + reset <= reset_count != 16'h0000; + +end + +wire [11:0] audio; +wire hs, vs; +wire blankn = 1'b1;//todo +wire [3:0] g,b,r; + +target_top target_top( + .clock_sys(clk_sys),//4xclk_vid + .clock_vid(clk_vid),//11MHz + .clk_aud(clk_aud),//0.895MHz + .reset_in(reset), + .audio_out(audio), + .usr_coin1(m_coin1), + .usr_coin2(m_coin2), + .usr_service(service), + .usr_start1(m_one_player), + .usr_start2(m_two_players), + .p1_up(m_up), + .p1_dw(m_down), + .p1_lt(m_left), + .p1_rt(m_right), + .p1_f1(m_fireA), + .p1_f2(m_fireB), + .p2_up(m_up2), + .p2_dw(m_down2), + .p2_lt(m_left2), + .p2_rt(m_right2), + .p2_f1(m_fire2A), + .p2_f2(m_fire2B), + .VGA_VS(vs), + .VGA_HS(hs), + .VGA_R(r), + .VGA_G(g), + .VGA_B(b), + .cpu_rom_addr(rom_addr), + .cpu_rom_do( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ), + .snd_rom_addr(snd_addr), + .snd_rom_do(snd_addr[0] ? snd_do[15:8] : snd_do[7:0]) + ); + +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 ), + .rotate ( { 1'b1, rotate } ), + .ce_divider ( 1'b0 ), + .scandoubler_disable( scandoublerD ), + .scanlines ( scanlines ), + .blend ( blend ), + .ypbpr ( ypbpr ), + .no_csync ( no_csync ) + ); + +wire dac_o; +assign AUDIO_L = dac_o; +assign AUDIO_R = dac_o; + +dac #( + .C_bits(12)) +dac( + .clk_i(clk_aud), + .res_n_i(1), + .dac_i(audio), + .dac_o(dac_o) + ); + +wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF; +wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F; +wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players; + +arcade_inputs inputs ( + .clk ( clk_sys ), + .key_strobe ( key_strobe ), + .key_pressed ( key_pressed ), + .key_code ( key_code ), + .joystick_0 ( joystick_0 ), + .joystick_1 ( joystick_1 ), + .rotate ( rotate ), + .orientation ( 2'b10 ), + .joyswap ( 1'b0 ), + .oneplayer ( 1'b1 ), + .controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ), + .player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ), + .player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} ) +); + +endmodule diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Sound_Board.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Sound_Board.vhd new file mode 100644 index 00000000..abcb4631 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Sound_Board.vhd @@ -0,0 +1,423 @@ +--------------------------------------------------------------------------------- +-- Moon patrol sound board by Dar (darfpga@aol.fr) +-- http://darfpga.blogspot.fr +--------------------------------------------------------------------------------- +-- gen_ram.vhd +-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com) +-- http://www.syntiac.com/fpga64.html +--------------------------------------------------------------------------------- +-- cpu68 - Version 9th Jan 2004 0.8 +-- 6800/01 compatible CPU core +-- GNU public license - December 2002 : John E. Kent +--------------------------------------------------------------------------------- +-- Educational use only +-- Do not redistribute synthetized file with roms +-- Do not redistribute roms whatever the form +-- Use at your own risk +--------------------------------------------------------------------------------- +-- Version 0.0 -- 24/11/2017 -- +-- initial version +--------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +entity Sound_Board is +port( + clock_E : in std_logic; -- 3.58 Mhz/4 + areset : in std_logic; + + select_sound : in std_logic_vector(7 downto 0); + audio_out : out std_logic_vector(11 downto 0); + snd_rom_addr : out std_logic_vector(13 downto 0); + snd_rom_do : in std_logic_vector(7 downto 0); + + dbg_cpu_addr : out std_logic_vector(15 downto 0) +); +end Sound_Board; + +architecture struct of Sound_Board is + component YM2149 + port ( + CLK : in std_logic; + CE : in std_logic; + RESET : in std_logic; + A8 : in std_logic := '1'; + A9_L : in std_logic := '0'; + BDIR : in std_logic; -- Bus Direction (0 - read , 1 - write) + BC : in std_logic; -- Bus control + DI : in std_logic_vector(7 downto 0); + DO : out std_logic_vector(7 downto 0); + CHANNEL_A : out std_logic_vector(7 downto 0); + CHANNEL_B : out std_logic_vector(7 downto 0); + CHANNEL_C : out std_logic_vector(7 downto 0); + + SEL : in std_logic; + MODE : in std_logic; + + ACTIVE : out std_logic_vector(5 downto 0); + + IOA_in : in std_logic_vector(7 downto 0); + IOA_out : out std_logic_vector(7 downto 0); + + IOB_in : in std_logic_vector(7 downto 0); + IOB_out : out std_logic_vector(7 downto 0) + ); + end component; + + signal reset : std_logic := '1'; + signal reset_cnt : integer range 0 to 1000000 := 1000000; + + 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_rw : std_logic; + signal cpu_irq : std_logic; + signal cpu_nmi : std_logic; + + signal irqraz_cs : std_logic; + signal irqraz_we : std_logic; + + signal wram_cs : std_logic; + signal wram_we : std_logic; + signal wram_do : std_logic_vector( 7 downto 0); + + signal rom_cs : std_logic; + signal rom_do : std_logic_vector( 7 downto 0); + + signal ay1_chan_a : std_logic_vector(7 downto 0); + signal ay1_chan_b : std_logic_vector(7 downto 0); + signal ay1_chan_c : std_logic_vector(7 downto 0); + signal ay1_do : std_logic_vector(7 downto 0); + signal ay1_audio : std_logic_vector(9 downto 0); + signal ay1_port_b_do : std_logic_vector(7 downto 0); + + signal ay2_chan_a : std_logic_vector(7 downto 0); + signal ay2_chan_b : std_logic_vector(7 downto 0); + signal ay2_chan_c : std_logic_vector(7 downto 0); + signal ay2_do : std_logic_vector(7 downto 0); + signal ay2_audio : std_logic_vector(9 downto 0); + + signal ports_cs : std_logic; + signal ports_we : std_logic; + + signal port1_bus : std_logic_vector(7 downto 0); + signal port1_data : std_logic_vector(7 downto 0); + signal port1_ddr : std_logic_vector(7 downto 0); + signal port1_in : std_logic_vector(7 downto 0); + + signal port2_bus : std_logic_vector(7 downto 0); + signal port2_data : std_logic_vector(7 downto 0); + signal port2_ddr : std_logic_vector(7 downto 0); + signal port2_in : std_logic_vector(7 downto 0); + + signal adpcm_cs : std_logic; + signal adpcm_we : std_logic; + signal adpcm_0_di : std_logic_vector(3 downto 0); + + signal select_sound_r : std_logic_vector(7 downto 0); + + signal audio : std_logic_vector(12 downto 0); + + type t_step_size is array(0 to 48) of integer range 0 to 1552; + constant step_size : t_step_size := ( + 16, 17, 19, 21, 23, 25, 28, 31, + 34, 37, 41, 45, 50, 55, 60, 66, + 73, 80, 88, 97, 107, 118, 130, 143, + 157, 173, 190, 209, 230, 253, 279, 307, + 337, 371, 408, 449, 494, 544, 598, 658, + 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552); + + type t_delta_step is array(0 to 7) of integer range -1 to 8; + constant delta_step : t_delta_step := (-1,-1,-1,-1,2,4,6,8); + + signal adpcm_vclk : std_logic := '0'; + signal adpcm_signal : integer range -16384 to 16383 := 0; + +-- adpcm algorithm (4bits) [no pcm here] +-- +-- val : input value 3bits (0 - 7 : b2b1b0) +-- sign : input value sign (4th bit : 0=>sign=1 ,1=>sign=-1) +-- +-- step : internal data, init = 0 +-- signal : output value, init = 0; +-- +-- for each new val (and sign) : +-- | +-- | step_size = 16*1.1^(step) +-- | delta = sign * (step_size/8 + step_size/4*b0 + step_size/2*b1 + step_size*b2) +-- | signal = signal + delta +-- | step = step + delta_step(val) +-- | +-- | signal is then limited between -2048..2047 +-- | step is then limited between 0..48 + +begin + +dbg_cpu_addr <= cpu_addr; + +-- cs +wram_cs <= '1' when cpu_addr(15 downto 7) = X"00"&'1' else '0'; -- 0080-00FF +ports_cs <= '1' when cpu_addr(15 downto 4) = X"000" else '0'; -- 0000-000F +adpcm_cs <= '1' when cpu_addr(14 downto 11) = "0001" else '0'; -- 0800-0FFF / 8800-8FFF +irqraz_cs <= '1' when cpu_addr(14 downto 12) = "001" else '0'; -- 1000-1FFF / 9000-9FFF +rom_cs <= '1' when cpu_addr(14 downto 12) = "111" else '0'; -- 7000-7FFF / F000-FFFF + +-- write enables +wram_we <= '1' when cpu_rw = '0' and wram_cs = '1' else '0'; +ports_we <= '1' when cpu_rw = '0' and ports_cs = '1' else '0'; +adpcm_we <= '1' when cpu_rw = '0' and adpcm_cs = '1' else '0'; +irqraz_we <= '1' when cpu_rw = '0' and irqraz_cs = '1' else '0'; + +-- mux cpu in data between roms/io/wram +cpu_di <= + wram_do when wram_cs = '1' else + port1_ddr when ports_cs = '1' and cpu_addr(3 downto 0) = X"0" else + port2_ddr when ports_cs = '1' and cpu_addr(3 downto 0) = X"1" else + port1_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"2" else + port2_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"3" else + snd_rom_do when rom_cs = '1' else X"55"; + +process (clock_E) +begin + if rising_edge(clock_E) then + reset <= '0'; + if reset_cnt /= 0 then + reset_cnt <= reset_cnt - 1; + reset <= '1'; + end if; + if areset = '1' then + reset_cnt <= 1000000; + end if; + end if; +end process; + +-- irq to cpu +process (reset, clock_E) +begin + if reset='1' then + cpu_irq <= '0'; + select_sound_r(7) <= '1'; + elsif rising_edge(clock_E) then + select_sound_r <= select_sound; + if select_sound_r(7) = '0' then + cpu_irq <= '1'; + end if; + if irqraz_we = '1' then + cpu_irq <= '0'; + end if; + end if; +end process; + +-- cpu nmi +cpu_nmi <= adpcm_vclk; + +-- 6803 ports 1 and 2 (only) +process (reset, clock_E) +begin + if reset='1' then + port1_ddr <= (others=>'0'); -- port1 set as input + port1_data <= (others=>'0'); -- port1 data set to 0 + port2_ddr <= ("11100000"); -- port2 bit 7 to 5 should always remain output to simulate mode data + port2_data <= ("01000000"); -- port2 data bit 7 to 5 set to 2 (for mode 2 at start up) + elsif rising_edge(clock_E) then + if ports_cs = '1' and ports_we = '1' then + if cpu_addr(3 downto 0) = X"0" then port1_ddr <= cpu_do; end if; + if cpu_addr(3 downto 0) = X"1" then port2_ddr <= cpu_do and "11100000"; end if; + if cpu_addr(3 downto 0) = X"2" then port1_data <= cpu_do; end if; + if cpu_addr(3 downto 0) = X"3" then port2_data <= cpu_do; end if; + end if; + end if; +end process; + +port1_in <= (port1_bus and not(port1_ddr)) or (port1_data and port1_ddr); +port2_in <= (port2_bus and not(port2_ddr)) or (port2_data and port2_ddr); + +-- port1 bus mux +port1_bus <= ay1_do when port2_data(4) = '0' else + ay2_do when port2_data(3) = '0' else X"FF"; + +-- port2 bus +port2_bus <= X"FF"; + + +-- latch adpcm (msm5205) data in +process (reset, clock_E) +begin + if reset='1' then + adpcm_0_di <= (others=>'0'); + elsif rising_edge(clock_E) then + if adpcm_cs = '1' and adpcm_we = '1' then + if cpu_addr(1) = '0' then adpcm_0_di <= cpu_do(3 downto 0); end if; + end if; + end if; +end process; + +-- adcpm clocks and computation -- make 24kHz and vclk 8/6/4kHz +adpcm_clocks : process(clock_E, ay1_port_b_do) + variable clock_div_a : integer range 0 to 148 := 0; + variable clock_div_b : integer range 0 to 5 := 0; + variable step : integer range 0 to 48; + variable step_n : integer range -1 to 48+8; + variable sz : integer range 0 to 1552; + variable dn : integer range -32768 to 32767; + variable adpcm_signal_n : integer range -32768 to 32767; +begin + if rising_edge(clock_E) then + if clock_div_a = 37 then -- 24kHz + clock_div_a := 0; + + case ay1_port_b_do(3 downto 2) is + when "00" => if clock_div_b = 5 then clock_div_b := 0; else clock_div_b := clock_div_b +1; end if; -- 4kHz + when "01" => if clock_div_b = 2 then clock_div_b := 0; else clock_div_b := clock_div_b +1; end if; -- 8kHz + when "10" => if clock_div_b = 3 then clock_div_b := 0; else clock_div_b := clock_div_b +1; end if; -- 6kHz + when others => null; + end case; + + if clock_div_b = 0 then adpcm_vclk <= '1'; else adpcm_vclk <= '0'; end if; + else + clock_div_a := clock_div_a + 1; + end if; + + if ay1_port_b_do(0) = '1' then + step := 0; + adpcm_signal <= 0; + else + + if clock_div_b = 0 then + case clock_div_a is + + when 0 => -- it's time to get new nibble (adpcm_0_di) + + sz := step_size(step); + dn := sz/8; + if adpcm_0_di(0) = '1' then dn := dn + sz/4; end if; + if adpcm_0_di(1) = '1' then dn := dn + sz/2; end if; + if adpcm_0_di(2) = '1' then dn := dn + sz ; end if; + + if adpcm_0_di(3) = '1' then + dn := -dn; + end if; + + step_n := step + delta_step(to_integer(unsigned(adpcm_0_di(2 downto 0)))); + + when 4 => + + adpcm_signal_n := adpcm_signal + dn; + + if step_n > 48 then step := 48; else step := step_n; end if; + if step_n < 0 then step := 0; else step := step_n; end if; + + when 8 => + + if adpcm_signal_n > 2040 then adpcm_signal <= 2040; else adpcm_signal <= adpcm_signal_n; end if; + if adpcm_signal_n < -2040 then adpcm_signal <= -2040; else adpcm_signal <= adpcm_signal_n; end if; + + when others => null; + + end case; + end if; + + end if; + end if; +end process; + +-- audio mux +audio <= ("000"&ay1_audio) + ("000"&ay2_audio) + ('0'&std_logic_vector(to_unsigned((adpcm_signal)+2048,12))); +audio_out <= audio(12 downto 1); + +-- microprocessor 6800/01/03 +main_cpu : entity work.cpu68 +port map( + clk => clock_E, -- E clock input (falling edge) + rst => reset, -- reset input (active high) + rw => cpu_rw, -- read not write output + vma => open, -- valid memory address (active high) + address => cpu_addr, -- address bus output + data_in => cpu_di, -- data bus input + data_out => cpu_do, -- data bus output + hold => '0', -- hold input (active high) extend bus cycle + halt => '0', -- halt input (active high) grants DMA + irq => cpu_irq, -- interrupt request input (active high) + nmi => cpu_nmi, -- non maskable interrupt request input (active high) + test_alu => open, + test_cc => open +); + + + + snd_rom_addr <= cpu_addr(13 downto 0); + + +-- cpu wram +cpu_ram : entity work.spram +generic map( widthad_a => 7) +port map( + clock => clock_E, + wren => wram_we, + address => cpu_addr(6 downto 0), + data => cpu_do, + q => wram_do +); + + ay83910_inst1: YM2149 + port map ( + CLK => clock_E, + CE => '1', + RESET => reset, + A8 => '1', + A9_L => port2_data(4), + BDIR => port2_data(0), + BC => port2_data(2), + DI => port1_data, + DO => ay1_do, + CHANNEL_A => ay1_chan_a, + CHANNEL_B => ay1_chan_b, + CHANNEL_C => ay1_chan_c, + + SEL => '0', + MODE => '1', + + ACTIVE => open, + + IOA_in => select_sound_r, + IOA_out => open, + + IOB_in => (others => '0'), + IOB_out => ay1_port_b_do + ); + + ay1_audio <= "0000000000" + ay1_chan_a + ay1_chan_b + ay1_chan_c; + + ay83910_inst2: YM2149 + port map ( + CLK => clock_E, + CE => '1', + RESET => reset, + A8 => '1', + A9_L => port2_data(3), + BDIR => port2_data(0), + BC => port2_data(2), + DI => port1_data, + DO => ay2_do, + CHANNEL_A => ay2_chan_a, + CHANNEL_B => ay2_chan_b, + CHANNEL_C => ay2_chan_c, + + SEL => '0', + MODE => '1', + + ACTIVE => open, + + IOA_in => (others => '0'), + IOA_out => open, + + IOB_in => (others => '0'), + IOB_out => open + ); + + ay2_audio <= "0000000000" + ay2_chan_a + ay2_chan_b + ay2_chan_c; + +end struct; \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/YM2149.sv b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/YM2149.sv new file mode 100644 index 00000000..eae73bb3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/YM2149.sv @@ -0,0 +1,329 @@ +// +// Copyright (c) MikeJ - Jan 2005 +// Copyright (c) 2016-2018 Sorgelig +// +// 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. +// + + +// BDIR BC MODE +// 0 0 inactive +// 0 1 read value +// 1 0 write value +// 1 1 set address +// + +module YM2149 +( + input CLK, // Global clock + input CE, // PSG Clock enable + input RESET, // Chip RESET (set all Registers to '0', active hi) + input BDIR, // Bus Direction (0 - read , 1 - write) + input BC, // Bus control + input A8, + input A9_L, + input [7:0] DI, // Data In + output [7:0] DO, // Data Out + output [7:0] CHANNEL_A, // PSG Output channel A + output [7:0] CHANNEL_B, // PSG Output channel B + output [7:0] CHANNEL_C, // PSG Output channel C + + input SEL, + input MODE, + + output [5:0] ACTIVE, + + input [7:0] IOA_in, + output [7:0] IOA_out, + + input [7:0] IOB_in, + output [7:0] IOB_out +); + +assign ACTIVE = ~ymreg[7][5:0]; +assign IOA_out = ymreg[7][6] ? ymreg[14] : 8'hff; +assign IOB_out = ymreg[7][7] ? ymreg[15] : 8'hff; + +reg [7:0] addr; +reg [7:0] ymreg[16]; +wire cs = !A9_L & A8; + +// Write to PSG +reg env_reset; +always @(posedge CLK) begin + if(RESET) begin + ymreg <= '{default:0}; + ymreg[7] <= '1; + addr <= '0; + env_reset <= 0; + end else begin + env_reset <= 0; + if(cs & BDIR) begin + if(BC) addr <= DI; + else if(!addr[7:4]) begin + ymreg[addr[3:0]] <= DI; + env_reset <= (addr == 13); + end + end + end +end + +// Read from PSG +assign DO = dout; +reg [7:0] dout; +always_comb begin + dout = 8'hFF; + if(cs & ~BDIR & BC & !addr[7:4]) begin + case(addr[3:0]) + 0: dout = ymreg[0]; + 1: dout = ymreg[1][3:0]; + 2: dout = ymreg[2]; + 3: dout = ymreg[3][3:0]; + 4: dout = ymreg[4]; + 5: dout = ymreg[5][3:0]; + 6: dout = ymreg[6][4:0]; + 7: dout = ymreg[7]; + 8: dout = ymreg[8][4:0]; + 9: dout = ymreg[9][4:0]; + 10: dout = ymreg[10][4:0]; + 11: dout = ymreg[11]; + 12: dout = ymreg[12]; + 13: dout = ymreg[13][3:0]; + 14: dout = ymreg[7][6] ? ymreg[14] : IOA_in; + 15: dout = ymreg[7][7] ? ymreg[15] : IOB_in; + endcase + end +end + +reg ena_div; +reg ena_div_noise; + +// p_divider +always @(posedge CLK) begin + reg [3:0] cnt_div; + reg noise_div; + + if(CE) begin + ena_div <= 0; + ena_div_noise <= 0; + if(!cnt_div) begin + cnt_div <= {SEL, 3'b111}; + ena_div <= 1; + + noise_div <= (~noise_div); + if (noise_div) ena_div_noise <= 1; + end else begin + cnt_div <= cnt_div - 1'b1; + end + end +end + + +reg [2:0] noise_gen_op; + +// p_noise_gen +always @(posedge CLK) begin + reg [16:0] poly17; + reg [4:0] noise_gen_cnt; + + if(CE) begin + if (ena_div_noise) begin + if (!ymreg[6][4:0] || noise_gen_cnt >= ymreg[6][4:0] - 1'd1) begin + noise_gen_cnt <= 0; + poly17 <= {(poly17[0] ^ poly17[2] ^ !poly17), poly17[16:1]}; + end else begin + noise_gen_cnt <= noise_gen_cnt + 1'd1; + end + noise_gen_op <= {3{poly17[0]}}; + end + end +end + +wire [11:0] tone_gen_freq[1:3]; +assign tone_gen_freq[1] = {ymreg[1][3:0], ymreg[0]}; +assign tone_gen_freq[2] = {ymreg[3][3:0], ymreg[2]}; +assign tone_gen_freq[3] = {ymreg[5][3:0], ymreg[4]}; + +reg [3:1] tone_gen_op; + +//p_tone_gens +always @(posedge CLK) begin + integer i; + reg [11:0] tone_gen_cnt[1:3]; + + if(CE) begin + // looks like real chips count up - we need to get the Exact behaviour .. + + for (i = 1; i <= 3; i = i + 1) begin + if(ena_div) begin + if (tone_gen_freq[i]) begin + if (tone_gen_cnt[i] >= (tone_gen_freq[i] - 1'd1)) begin + tone_gen_cnt[i] <= 0; + tone_gen_op[i] <= ~tone_gen_op[i]; + end else begin + tone_gen_cnt[i] <= tone_gen_cnt[i] + 1'd1; + end + end else begin + tone_gen_op[i] <= ymreg[7][i]; + tone_gen_cnt[i] <= 0; + end + end + end + end +end + +reg env_ena; +wire [15:0] env_gen_comp = {ymreg[12], ymreg[11]} ? {ymreg[12], ymreg[11]} - 1'd1 : 16'd0; + +//p_envelope_freq +always @(posedge CLK) begin + reg [15:0] env_gen_cnt; + + if(CE) begin + env_ena <= 0; + if(ena_div) begin + if (env_gen_cnt >= env_gen_comp) begin + env_gen_cnt <= 0; + env_ena <= 1; + end else begin + env_gen_cnt <= (env_gen_cnt + 1'd1); + end + end + end +end + +reg [4:0] env_vol; + +wire is_bot = (env_vol == 5'b00000); +wire is_bot_p1 = (env_vol == 5'b00001); +wire is_top_m1 = (env_vol == 5'b11110); +wire is_top = (env_vol == 5'b11111); + +always @(posedge CLK) begin + reg env_hold; + reg env_inc; + + // 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 | RESET) begin + // load initial state + if(!ymreg[13][2]) begin // attack + env_vol <= 5'b11111; + env_inc <= 0; // -1 + end else begin + env_vol <= 5'b00000; + env_inc <= 1; // +1 + end + env_hold <= 0; + end + else if(CE) begin + if (env_ena) begin + if (!env_hold) begin + if (env_inc) env_vol <= (env_vol + 5'b00001); + else env_vol <= (env_vol + 5'b11111); + end + + // envelope shape control. + if(!ymreg[13][3]) begin + if(!env_inc) begin // down + if(is_bot_p1) env_hold <= 1; + end else if (is_top) env_hold <= 1; + end else if(ymreg[13][0]) begin // hold = 1 + if(!env_inc) begin // down + if(ymreg[13][1]) begin // alt + if(is_bot) env_hold <= 1; + end else if(is_bot_p1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alt + if(is_top) env_hold <= 1; + end else if(is_top_m1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alternate + if(env_inc == 1'b0) begin // down + if(is_bot_p1) env_hold <= 1; + if(is_bot) begin + env_hold <= 0; + env_inc <= 1; + end + end else begin + if(is_top_m1) env_hold <= 1; + if(is_top) begin + env_hold <= 0; + env_inc <= 0; + end + end + end + end + end +end + +reg [5:0] A,B,C; +always @(posedge CLK) begin + A <= {MODE, ~((ymreg[7][0] | tone_gen_op[1]) & (ymreg[7][3] | noise_gen_op[0])) ? 5'd0 : ymreg[8][4] ? env_vol[4:0] : { ymreg[8][3:0], ymreg[8][3]}}; + B <= {MODE, ~((ymreg[7][1] | tone_gen_op[2]) & (ymreg[7][4] | noise_gen_op[1])) ? 5'd0 : ymreg[9][4] ? env_vol[4:0] : { ymreg[9][3:0], ymreg[9][3]}}; + C <= {MODE, ~((ymreg[7][2] | tone_gen_op[3]) & (ymreg[7][5] | noise_gen_op[2])) ? 5'd0 : ymreg[10][4] ? env_vol[4:0] : {ymreg[10][3:0], ymreg[10][3]}}; +end + +wire [7:0] volTable[64] = '{ + //YM2149 + 8'h00, 8'h01, 8'h01, 8'h02, 8'h02, 8'h03, 8'h03, 8'h04, + 8'h06, 8'h07, 8'h09, 8'h0a, 8'h0c, 8'h0e, 8'h11, 8'h13, + 8'h17, 8'h1b, 8'h20, 8'h25, 8'h2c, 8'h35, 8'h3e, 8'h47, + 8'h54, 8'h66, 8'h77, 8'h88, 8'ha1, 8'hc0, 8'he0, 8'hff, + + //AY8910 + 8'h00, 8'h00, 8'h03, 8'h03, 8'h04, 8'h04, 8'h06, 8'h06, + 8'h0a, 8'h0a, 8'h0f, 8'h0f, 8'h15, 8'h15, 8'h22, 8'h22, + 8'h28, 8'h28, 8'h41, 8'h41, 8'h5b, 8'h5b, 8'h72, 8'h72, + 8'h90, 8'h90, 8'hb5, 8'hb5, 8'hd7, 8'hd7, 8'hff, 8'hff +}; + +assign CHANNEL_A = volTable[A]; +assign CHANNEL_B = volTable[B]; +assign CHANNEL_C = volTable[C]; + +endmodule diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/bitmapctl_e.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/bitmapctl_e.vhd new file mode 100644 index 00000000..be8471e3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/bitmapctl_e.vhd @@ -0,0 +1,30 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; +--use work.project_pkg.all; + +entity bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity bitmapCtl; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/build_id.tcl b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/build_id.tcl new file mode 100644 index 00000000..938515d8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_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/IremM62 Hardware/Kung_MiST/rtl/clk_div.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/clk_div.vhd new file mode 100644 index 00000000..020d6ae6 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/clk_div.vhd @@ -0,0 +1,39 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity clk_div is + generic + ( + DIVISOR : natural + ); + port + ( + clk : in std_logic; + reset : in std_logic; + + clk_en : out std_logic + ); +end clk_div; + +architecture SYN of clk_div is + +begin + + process (clk, reset) + variable count : integer range 0 to DIVISOR-1; + begin + if reset = '1' then + count := 0; + clk_en <= '0'; + elsif rising_edge(clk) then + clk_en <= '0'; + if count = DIVISOR-1 then + clk_en <= '1'; + count := 0; + else + count := count + 1; + end if; + end if; + end process; + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd new file mode 100644 index 00000000..016bd9a9 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd @@ -0,0 +1,3963 @@ +--===========================================================================-- +-- +-- S Y N T H E Z I A B L E CPU68 C O R E +-- +-- www.OpenCores.Org - December 2002 +-- This core adheres to the GNU public license +-- +-- File name : cpu68.vhd +-- +-- Purpose : Implements a 6800 compatible CPU core with some +-- additional instructions found in the 6801 +-- +-- Dependencies : ieee.Std_Logic_1164 +-- ieee.std_logic_unsigned +-- +-- Author : John E. Kent +-- +--===========================================================================---- +-- +-- Revision History: +-- +-- Date: Revision Author +-- 22 Sep 2002 0.1 John Kent +-- +-- 30 Oct 2002 0.2 John Kent +-- made NMI edge triggered +-- +-- 30 Oct 2002 0.3 John Kent +-- more corrections to NMI +-- added wai_wait_state to prevent stack overflow on wai. +-- +-- 1 Nov 2002 0.4 John Kent +-- removed WAI states and integrated WAI with the interrupt service routine +-- replace Data out (do) and Data in (di) register with a single Memory Data (md) reg. +-- Added Multiply instruction states. +-- run ALU and CC out of CPU module for timing measurements. +-- +-- 3 Nov 2002 0.5 John Kent +-- Memory Data Register was not loaded on Store instructions +-- SEV and CLV were not defined in the ALU +-- Overflow Flag on NEG was incorrect +-- +-- 16th Feb 2003 0.6 John Kent +-- Rearranged the execution cycle for dual operand instructions +-- so that occurs during the following fetch cycle. +-- This allows the reduction of one clock cycle from dual operand +-- instruction. Note that this also necessitated re-arranging the +-- program counter so that it is no longer incremented in the ALU. +-- The effective address has also been re-arranged to include a +-- separate added. The STD (store accd) now sets the condition codes. +-- +-- 28th Jun 2003 0.7 John Kent +-- Added Hold and Halt signals. Hold is used to steal cycles from the +-- CPU or add wait states. Halt puts the CPU in the inactive state +-- and is only honoured in the fetch cycle. Both signals are active high. +-- +-- 9th Jan 2004 0.8 John Kent +-- Clear instruction did an alu_ld8 rather than an alu_clr, so +-- the carry bit was not cleared correctly. +-- This error was picked up by Michael Hassenfratz. +-- + +library ieee; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; + +entity cpu68 is + port ( + clk: in std_logic; + rst: in std_logic; + rw: out std_logic; + vma: out std_logic; + address: out std_logic_vector(15 downto 0); + data_in: in std_logic_vector(7 downto 0); + data_out: out std_logic_vector(7 downto 0); + hold: in std_logic; + halt: in std_logic; + irq: in std_logic; + nmi: in std_logic; + test_alu: out std_logic_vector(15 downto 0); + test_cc: out std_logic_vector(7 downto 0) + ); +end; + +architecture CPU_ARCH of cpu68 is + + constant SBIT : integer := 7; + constant XBIT : integer := 6; + constant HBIT : integer := 5; + constant IBIT : integer := 4; + constant NBIT : integer := 3; + constant ZBIT : integer := 2; + constant VBIT : integer := 1; + constant CBIT : integer := 0; + + type state_type is (reset_state, fetch_state, decode_state, + extended_state, indexed_state, read8_state, read16_state, immediate16_state, + write8_state, write16_state, + execute_state, halt_state, error_state, + mul_state, mulea_state, muld_state, + mul0_state, mul1_state, mul2_state, mul3_state, + mul4_state, mul5_state, mul6_state, mul7_state, + jmp_state, jsr_state, jsr1_state, + branch_state, bsr_state, bsr1_state, + rts_hi_state, rts_lo_state, + int_pcl_state, int_pch_state, + int_ixl_state, int_ixh_state, + int_cc_state, int_acca_state, int_accb_state, + int_wai_state, int_mask_state, + rti_state, rti_cc_state, rti_acca_state, rti_accb_state, + rti_ixl_state, rti_ixh_state, + rti_pcl_state, rti_pch_state, + pula_state, psha_state, pulb_state, pshb_state, + pulx_lo_state, pulx_hi_state, pshx_lo_state, pshx_hi_state, + vect_lo_state, vect_hi_state ); + type addr_type is (idle_ad, fetch_ad, read_ad, write_ad, push_ad, pull_ad, int_hi_ad, int_lo_ad ); + type dout_type is (md_lo_dout, md_hi_dout, acca_dout, accb_dout, ix_lo_dout, ix_hi_dout, cc_dout, pc_lo_dout, pc_hi_dout ); + type op_type is (reset_op, fetch_op, latch_op ); + type acca_type is (reset_acca, load_acca, load_hi_acca, pull_acca, latch_acca ); + type accb_type is (reset_accb, load_accb, pull_accb, latch_accb ); + type cc_type is (reset_cc, load_cc, pull_cc, latch_cc ); + type ix_type is (reset_ix, load_ix, pull_lo_ix, pull_hi_ix, latch_ix ); + type sp_type is (reset_sp, latch_sp, load_sp ); + type pc_type is (reset_pc, latch_pc, load_ea_pc, add_ea_pc, pull_lo_pc, pull_hi_pc, inc_pc ); + type md_type is (reset_md, latch_md, load_md, fetch_first_md, fetch_next_md, shiftl_md ); + type ea_type is (reset_ea, latch_ea, add_ix_ea, load_accb_ea, inc_ea, fetch_first_ea, fetch_next_ea ); + type iv_type is (reset_iv, latch_iv, swi_iv, nmi_iv, irq_iv ); + type nmi_type is (reset_nmi, set_nmi, latch_nmi ); + type left_type is (acca_left, accb_left, accd_left, md_left, ix_left, sp_left ); + type right_type is (md_right, zero_right, plus_one_right, accb_right ); + type alu_type is (alu_add8, alu_sub8, alu_add16, alu_sub16, alu_adc, alu_sbc, + alu_and, alu_ora, alu_eor, + alu_tst, alu_inc, alu_dec, alu_clr, alu_neg, alu_com, + alu_inx, alu_dex, alu_cpx, + alu_lsr16, alu_lsl16, + alu_ror8, alu_rol8, + alu_asr8, alu_asl8, alu_lsr8, + alu_sei, alu_cli, alu_sec, alu_clc, alu_sev, alu_clv, alu_tpa, alu_tap, + alu_ld8, alu_st8, alu_ld16, alu_st16, alu_nop, alu_daa ); + + signal op_code: std_logic_vector(7 downto 0); + signal acca: std_logic_vector(7 downto 0); + signal accb: std_logic_vector(7 downto 0); + signal cc: std_logic_vector(7 downto 0); + signal cc_out: std_logic_vector(7 downto 0); + signal xreg: std_logic_vector(15 downto 0); + signal sp: std_logic_vector(15 downto 0); + signal ea: std_logic_vector(15 downto 0); + signal pc: std_logic_vector(15 downto 0); + signal md: std_logic_vector(15 downto 0); + signal left: std_logic_vector(15 downto 0); + signal right: std_logic_vector(15 downto 0); + signal out_alu: std_logic_vector(15 downto 0); + signal iv: std_logic_vector(1 downto 0); + signal nmi_req: std_logic; + signal nmi_ack: std_logic; + + signal state: state_type; + signal next_state: state_type; + signal pc_ctrl: pc_type; + signal ea_ctrl: ea_type; + signal op_ctrl: op_type; + signal md_ctrl: md_type; + signal acca_ctrl: acca_type; + signal accb_ctrl: accb_type; + signal ix_ctrl: ix_type; + signal cc_ctrl: cc_type; + signal sp_ctrl: sp_type; + signal iv_ctrl: iv_type; + signal left_ctrl: left_type; + signal right_ctrl: right_type; + signal alu_ctrl: alu_type; + signal addr_ctrl: addr_type; + signal dout_ctrl: dout_type; + signal nmi_ctrl: nmi_type; + + +begin + +---------------------------------- +-- +-- Address bus multiplexer +-- +---------------------------------- + +addr_mux: process( clk, addr_ctrl, pc, ea, sp, iv ) +begin + case addr_ctrl is + when idle_ad => + address <= "1111111111111111"; + vma <= '0'; + rw <= '1'; + when fetch_ad => + address <= pc; + vma <= '1'; + rw <= '1'; + when read_ad => + address <= ea; + vma <= '1'; + rw <= '1'; + when write_ad => + address <= ea; + vma <= '1'; + rw <= '0'; + when push_ad => + address <= sp; + vma <= '1'; + rw <= '0'; + when pull_ad => + address <= sp; + vma <= '1'; + rw <= '1'; + when int_hi_ad => + address <= "1111111111111" & iv & "0"; + vma <= '1'; + rw <= '1'; + when int_lo_ad => + address <= "1111111111111" & iv & "1"; + vma <= '1'; + rw <= '1'; + when others => + address <= "1111111111111111"; + vma <= '0'; + rw <= '1'; + end case; +end process; + +-------------------------------- +-- +-- Data Bus output +-- +-------------------------------- +dout_mux : process( clk, dout_ctrl, md, acca, accb, xreg, pc, cc ) +begin + case dout_ctrl is + when md_hi_dout => -- alu output + data_out <= md(15 downto 8); + when md_lo_dout => + data_out <= md(7 downto 0); + when acca_dout => -- accumulator a + data_out <= acca; + when accb_dout => -- accumulator b + data_out <= accb; + when ix_lo_dout => -- index reg + data_out <= xreg(7 downto 0); + when ix_hi_dout => -- index reg + data_out <= xreg(15 downto 8); + when cc_dout => -- condition codes + data_out <= cc; + when pc_lo_dout => -- low order pc + data_out <= pc(7 downto 0); + when pc_hi_dout => -- high order pc + data_out <= pc(15 downto 8); + when others => + data_out <= "00000000"; + end case; +end process; + + +---------------------------------- +-- +-- Program Counter Control +-- +---------------------------------- + +pc_mux: process( clk, pc_ctrl, pc, out_alu, data_in, ea, hold ) +variable tempof : std_logic_vector(15 downto 0); +variable temppc : std_logic_vector(15 downto 0); +begin + case pc_ctrl is + when add_ea_pc => + if ea(7) = '0' then + tempof := "00000000" & ea(7 downto 0); + else + tempof := "11111111" & ea(7 downto 0); + end if; + when inc_pc => + tempof := "0000000000000001"; + when others => + tempof := "0000000000000000"; + end case; + + case pc_ctrl is + when reset_pc => + temppc := "1111111111111110"; + when load_ea_pc => + temppc := ea; + when pull_lo_pc => + temppc(7 downto 0) := data_in; + temppc(15 downto 8) := pc(15 downto 8); + when pull_hi_pc => + temppc(7 downto 0) := pc(7 downto 0); + temppc(15 downto 8) := data_in; + when others => + temppc := pc; + end case; + + if clk'event and clk = '0' then + if hold = '1' then + pc <= pc; + else + pc <= temppc + tempof; + end if; + end if; +end process; + +---------------------------------- +-- +-- Effective Address Control +-- +---------------------------------- + +ea_mux: process( clk, ea_ctrl, ea, out_alu, data_in, accb, xreg, hold ) +variable tempind : std_logic_vector(15 downto 0); +variable tempea : std_logic_vector(15 downto 0); +begin + case ea_ctrl is + when add_ix_ea => + tempind := "00000000" & ea(7 downto 0); + when inc_ea => + tempind := "0000000000000001"; + when others => + tempind := "0000000000000000"; + end case; + + case ea_ctrl is + when reset_ea => + tempea := "0000000000000000"; + when load_accb_ea => + tempea := "00000000" & accb(7 downto 0); + when add_ix_ea => + tempea := xreg; + when fetch_first_ea => + tempea(7 downto 0) := data_in; + tempea(15 downto 8) := "00000000"; + when fetch_next_ea => + tempea(7 downto 0) := data_in; + tempea(15 downto 8) := ea(7 downto 0); + when others => + tempea := ea; + end case; + + if clk'event and clk = '0' then + if hold = '1' then + ea <= ea; + else + ea <= tempea + tempind; + end if; + end if; +end process; + +-------------------------------- +-- +-- Accumulator A +-- +-------------------------------- +acca_mux : process( clk, acca_ctrl, out_alu, acca, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + acca <= acca; + else + case acca_ctrl is + when reset_acca => + acca <= "00000000"; + when load_acca => + acca <= out_alu(7 downto 0); + when load_hi_acca => + acca <= out_alu(15 downto 8); + when pull_acca => + acca <= data_in; + when others => +-- when latch_acca => + acca <= acca; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- Accumulator B +-- +-------------------------------- +accb_mux : process( clk, accb_ctrl, out_alu, accb, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + accb <= accb; + else + case accb_ctrl is + when reset_accb => + accb <= "00000000"; + when load_accb => + accb <= out_alu(7 downto 0); + when pull_accb => + accb <= data_in; + when others => +-- when latch_accb => + accb <= accb; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- X Index register +-- +-------------------------------- +ix_mux : process( clk, ix_ctrl, out_alu, xreg, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + xreg <= xreg; + else + case ix_ctrl is + when reset_ix => + xreg <= "0000000000000000"; + when load_ix => + xreg <= out_alu(15 downto 0); + when pull_hi_ix => + xreg(15 downto 8) <= data_in; + when pull_lo_ix => + xreg(7 downto 0) <= data_in; + when others => +-- when latch_ix => + xreg <= xreg; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- stack pointer +-- +-------------------------------- +sp_mux : process( clk, sp_ctrl, out_alu, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + sp <= sp; + else + case sp_ctrl is + when reset_sp => + sp <= "0000000000000000"; + when load_sp => + sp <= out_alu(15 downto 0); + when others => +-- when latch_sp => + sp <= sp; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- Memory Data +-- +-------------------------------- +md_mux : process( clk, md_ctrl, out_alu, data_in, md, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + md <= md; + else + case md_ctrl is + when reset_md => + md <= "0000000000000000"; + when load_md => + md <= out_alu(15 downto 0); + when fetch_first_md => + md(15 downto 8) <= "00000000"; + md(7 downto 0) <= data_in; + when fetch_next_md => + md(15 downto 8) <= md(7 downto 0); + md(7 downto 0) <= data_in; + when shiftl_md => + md(15 downto 1) <= md(14 downto 0); + md(0) <= '0'; + when others => +-- when latch_md => + md <= md; + end case; + end if; + end if; +end process; + + +---------------------------------- +-- +-- Condition Codes +-- +---------------------------------- + +cc_mux: process( clk, cc_ctrl, cc_out, cc, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + cc <= cc; + else + case cc_ctrl is + when reset_cc => + cc <= "11000000"; + when load_cc => + cc <= cc_out; + when pull_cc => + cc <= data_in; + when others => +-- when latch_cc => + cc <= cc; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- interrupt vector +-- +---------------------------------- + +iv_mux: process( clk, iv_ctrl, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + iv <= iv; + else + case iv_ctrl is + when reset_iv => + iv <= "11"; + when nmi_iv => + iv <= "10"; + when swi_iv => + iv <= "01"; + when irq_iv => + iv <= "00"; + when others => + iv <= iv; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- op code fetch +-- +---------------------------------- + +op_fetch: process( clk, data_in, op_ctrl, op_code, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + op_code <= op_code; + else + case op_ctrl is + when reset_op => + op_code <= "00000001"; -- nop + when fetch_op => + op_code <= data_in; + when others => +-- when latch_op => + op_code <= op_code; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- Left Mux +-- +---------------------------------- + +left_mux: process( left_ctrl, acca, accb, xreg, sp, pc, ea, md ) +begin + case left_ctrl is + when acca_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= acca; + when accb_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= accb; + when accd_left => + left(15 downto 8) <= acca; + left(7 downto 0) <= accb; + when ix_left => + left <= xreg; + when sp_left => + left <= sp; + when others => +-- when md_left => + left <= md; + end case; +end process; +---------------------------------- +-- +-- Right Mux +-- +---------------------------------- + +right_mux: process( right_ctrl, data_in, md, accb, ea ) +begin + case right_ctrl is + when zero_right => + right <= "0000000000000000"; + when plus_one_right => + right <= "0000000000000001"; + when accb_right => + right <= "00000000" & accb; + when others => +-- when md_right => + right <= md; + end case; +end process; + +---------------------------------- +-- +-- Arithmetic Logic Unit +-- +---------------------------------- + +mux_alu: process( alu_ctrl, cc, left, right, out_alu, cc_out ) +variable valid_lo, valid_hi : boolean; +variable carry_in : std_logic; +variable daa_reg : std_logic_vector(7 downto 0); +begin + + case alu_ctrl is + when alu_adc | alu_sbc | + alu_rol8 | alu_ror8 => + carry_in := cc(CBIT); + when others => + carry_in := '0'; + end case; + + valid_lo := left(3 downto 0) <= 9; + valid_hi := left(7 downto 4) <= 9; + + if (cc(CBIT) = '0') then + if( cc(HBIT) = '1' ) then + if valid_hi then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + else + if valid_lo then + if valid_hi then + daa_reg := "00000000"; + else + daa_reg := "01100000"; + end if; + else + if( left(7 downto 4) <= 8 ) then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + else + if ( cc(HBIT) = '1' )then + daa_reg := "01100110"; + else + if valid_lo then + daa_reg := "01100000"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + + case alu_ctrl is + when alu_add8 | alu_inc | + alu_add16 | alu_inx | + alu_adc => + out_alu <= left + right + ("000000000000000" & carry_in); + when alu_sub8 | alu_dec | + alu_sub16 | alu_dex | + alu_sbc | alu_cpx => + out_alu <= left - right - ("000000000000000" & carry_in); + when alu_and => + out_alu <= left and right; -- and/bit + when alu_ora => + out_alu <= left or right; -- or + when alu_eor => + out_alu <= left xor right; -- eor/xor + when alu_lsl16 | alu_asl8 | alu_rol8 => + out_alu <= left(14 downto 0) & carry_in; -- rol8/asl8/lsl16 + when alu_lsr16 | alu_lsr8 => + out_alu <= carry_in & left(15 downto 1); -- lsr + when alu_ror8 => + out_alu <= "00000000" & carry_in & left(7 downto 1); -- ror + when alu_asr8 => + out_alu <= "00000000" & left(7) & left(7 downto 1); -- asr + when alu_neg => + out_alu <= right - left; -- neg (right=0) + when alu_com => + out_alu <= not left; + when alu_clr | alu_ld8 | alu_ld16 => + out_alu <= right; -- clr, ld + when alu_st8 | alu_st16 => + out_alu <= left; + when alu_daa => + out_alu <= left + ("00000000" & daa_reg); + when alu_tpa => + out_alu <= "00000000" & cc; + when others => + out_alu <= left; -- nop + end case; + + -- + -- carry bit + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(CBIT) <= (left(7) and right(7)) or + (left(7) and not out_alu(7)) or + (right(7) and not out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(CBIT) <= ((not left(7)) and right(7)) or + ((not left(7)) and out_alu(7)) or + (right(7) and out_alu(7)); + when alu_add16 => + cc_out(CBIT) <= (left(15) and right(15)) or + (left(15) and not out_alu(15)) or + (right(15) and not out_alu(15)); + when alu_sub16 => + cc_out(CBIT) <= ((not left(15)) and right(15)) or + ((not left(15)) and out_alu(15)) or + (right(15) and out_alu(15)); + when alu_ror8 | alu_lsr16 | alu_lsr8 | alu_asr8 => + cc_out(CBIT) <= left(0); + when alu_rol8 | alu_asl8 => + cc_out(CBIT) <= left(7); + when alu_lsl16 => + cc_out(CBIT) <= left(15); + when alu_com => + cc_out(CBIT) <= '1'; + when alu_neg | alu_clr => + cc_out(CBIT) <= out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0); + when alu_daa => + if ( daa_reg(7 downto 4) = "0110" ) then + cc_out(CBIT) <= '1'; + else + cc_out(CBIT) <= '0'; + end if; + when alu_sec => + cc_out(CBIT) <= '1'; + when alu_clc => + cc_out(CBIT) <= '0'; + when alu_tap => + cc_out(CBIT) <= left(CBIT); + when others => -- carry is not affected by cpx + cc_out(CBIT) <= cc(CBIT); + end case; + -- + -- Zero flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_inc | alu_dec | + alu_neg | alu_com | alu_clr | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_ld8 | alu_st8 => + cc_out(ZBIT) <= not( out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_inx | alu_dex | + alu_ld16 | alu_st16 | alu_cpx => + cc_out(ZBIT) <= not( out_alu(15) or out_alu(14) or out_alu(13) or out_alu(12) or + out_alu(11) or out_alu(10) or out_alu(9) or out_alu(8) or + out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_tap => + cc_out(ZBIT) <= left(ZBIT); + when others => + cc_out(ZBIT) <= cc(ZBIT); + end case; + + -- + -- negative flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_inc | alu_dec | alu_neg | alu_com | alu_clr | + alu_ld8 | alu_st8 => + cc_out(NBIT) <= out_alu(7); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_ld16 | alu_st16 | alu_cpx => + cc_out(NBIT) <= out_alu(15); + when alu_tap => + cc_out(NBIT) <= left(NBIT); + when others => + cc_out(NBIT) <= cc(NBIT); + end case; + + -- + -- Interrupt mask flag + -- + case alu_ctrl is + when alu_sei => + cc_out(IBIT) <= '1'; -- set interrupt mask + when alu_cli => + cc_out(IBIT) <= '0'; -- clear interrupt mask + when alu_tap => + cc_out(IBIT) <= left(IBIT); + when others => + cc_out(IBIT) <= cc(IBIT); -- interrupt mask + end case; + + -- + -- Half Carry flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(HBIT) <= (left(3) and right(3)) or + (right(3) and not out_alu(3)) or + (left(3) and not out_alu(3)); + when alu_tap => + cc_out(HBIT) <= left(HBIT); + when others => + cc_out(HBIT) <= cc(HBIT); + end case; + + -- + -- Overflow flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(VBIT) <= (left(7) and right(7) and (not out_alu(7))) or + ((not left(7)) and (not right(7)) and out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(VBIT) <= (left(7) and (not right(7)) and (not out_alu(7))) or + ((not left(7)) and right(7) and out_alu(7)); + when alu_add16 => + cc_out(VBIT) <= (left(15) and right(15) and (not out_alu(15))) or + ((not left(15)) and (not right(15)) and out_alu(15)); + when alu_sub16 | alu_cpx => + cc_out(VBIT) <= (left(15) and (not right(15)) and (not out_alu(15))) or + ((not left(15)) and right(15) and out_alu(15)); + when alu_inc => + cc_out(VBIT) <= ((not left(7)) and left(6) and left(5) and left(4) and + left(3) and left(2) and left(1) and left(0)); + when alu_dec | alu_neg => + cc_out(VBIT) <= (left(7) and (not left(6)) and (not left(5)) and (not left(4)) and + (not left(3)) and (not left(2)) and (not left(1)) and (not left(0))); + when alu_asr8 => + cc_out(VBIT) <= left(0) xor left(7); + when alu_lsr8 | alu_lsr16 => + cc_out(VBIT) <= left(0); + when alu_ror8 => + cc_out(VBIT) <= left(0) xor cc(CBIT); + when alu_lsl16 => + cc_out(VBIT) <= left(15) xor left(14); + when alu_rol8 | alu_asl8 => + cc_out(VBIT) <= left(7) xor left(6); + when alu_tap => + cc_out(VBIT) <= left(VBIT); + when alu_and | alu_ora | alu_eor | alu_com | + alu_st8 | alu_st16 | alu_ld8 | alu_ld16 | + alu_clv => + cc_out(VBIT) <= '0'; + when alu_sev => + cc_out(VBIT) <= '1'; + when others => + cc_out(VBIT) <= cc(VBIT); + end case; + + case alu_ctrl is + when alu_tap => + cc_out(XBIT) <= cc(XBIT) and left(XBIT); + cc_out(SBIT) <= left(SBIT); + when others => + cc_out(XBIT) <= cc(XBIT) and left(XBIT); + cc_out(SBIT) <= cc(SBIT); + end case; + + test_alu <= out_alu; + test_cc <= cc_out; +end process; + +------------------------------------ +-- +-- Detect Edge of NMI interrupt +-- +------------------------------------ + +nmi_handler : process( clk, rst, nmi, nmi_ack ) +begin + if clk'event and clk='0' then + if hold = '1' then + nmi_req <= nmi_req; + else + if rst='1' then + nmi_req <= '0'; + else + if (nmi='1') and (nmi_ack='0') then + nmi_req <= '1'; + else + if (nmi='0') and (nmi_ack='1') then + nmi_req <= '0'; + else + nmi_req <= nmi_req; + end if; + end if; + end if; + end if; + end if; +end process; + +------------------------------------ +-- +-- Nmi mux +-- +------------------------------------ + +nmi_mux: process( clk, nmi_ctrl, nmi_ack, hold ) +begin + if clk'event and clk='0' then + if hold = '1' then + nmi_ack <= nmi_ack; + else + case nmi_ctrl is + when set_nmi => + nmi_ack <= '1'; + when reset_nmi => + nmi_ack <= '0'; + when others => +-- when latch_nmi => + nmi_ack <= nmi_ack; + end case; + end if; + end if; +end process; + +------------------------------------ +-- +-- state sequencer +-- +------------------------------------ +process( state, op_code, cc, ea, irq, nmi_req, nmi_ack, hold, halt ) + begin + case state is + when reset_state => -- released from reset + -- reset the registers + op_ctrl <= reset_op; + acca_ctrl <= reset_acca; + accb_ctrl <= reset_accb; + ix_ctrl <= reset_ix; + sp_ctrl <= reset_sp; + pc_ctrl <= reset_pc; + ea_ctrl <= reset_ea; + md_ctrl <= reset_md; + iv_ctrl <= reset_iv; + nmi_ctrl <= reset_nmi; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= reset_cc; + -- idle the bus + dout_ctrl <= md_lo_dout; + addr_ctrl <= idle_ad; + next_state <= vect_hi_state; + + -- + -- Jump via interrupt vector + -- iv holds interrupt type + -- fetch PC hi from vector location + -- + when vect_hi_state => + -- default the registers + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- fetch pc low interrupt vector + pc_ctrl <= pull_hi_pc; + addr_ctrl <= int_hi_ad; + dout_ctrl <= pc_hi_dout; + next_state <= vect_lo_state; + -- + -- jump via interrupt vector + -- iv holds vector type + -- fetch PC lo from vector location + -- + when vect_lo_state => + -- default the registers + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- fetch the vector low byte + pc_ctrl <= pull_lo_pc; + addr_ctrl <= int_lo_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + -- + -- Here to fetch an instruction + -- PC points to opcode + -- Should service interrupt requests at this point + -- either from the timer + -- or from the external input. + -- + when fetch_state => + case op_code(7 downto 4) is + when "0000" | + "0001" | + "0010" | -- branch conditional + "0011" | + "0100" | -- acca single op + "0101" | -- accb single op + "0110" | -- indexed single op + "0111" => -- extended single op + -- idle ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + + when "1000" | -- acca immediate + "1001" | -- acca direct + "1010" | -- acca indexed + "1011" => -- acca extended + case op_code(3 downto 0) is + when "0000" => -- suba + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0001" => -- cmpa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0010" => -- sbca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0011" => -- subd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0100" => -- anda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0101" => -- bita + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0110" => -- ldaa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1000" => -- eora + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1001" => -- adca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1010" => -- oraa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1011" => -- adda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1100" => -- cpx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_cpx; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1101" => -- bsr / jsr + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1110" => -- lds + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when others => + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + when "1100" | -- accb immediate + "1101" | -- accb direct + "1110" | -- accb indexed + "1111" => -- accb extended + case op_code(3 downto 0) is + when "0000" => -- subb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0001" => -- cmpb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0010" => -- sbcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0011" => -- addd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0100" => -- andb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0101" => -- bitb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0110" => -- ldab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1000" => -- eorb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1001" => -- adcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1010" => -- orab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1011" => -- addb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1100" => -- ldd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1110" => -- ldx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + when "1111" => -- stx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when others => + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + when others => + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + md_ctrl <= latch_md; + -- fetch the op code + op_ctrl <= fetch_op; + ea_ctrl <= reset_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + iv_ctrl <= latch_iv; + if halt = '1' then + pc_ctrl <= latch_pc; + nmi_ctrl <= latch_nmi; + next_state <= halt_state; + -- service non maskable interrupts + elsif (nmi_req = '1') and (nmi_ack = '0') then + pc_ctrl <= latch_pc; + nmi_ctrl <= set_nmi; + next_state <= int_pcl_state; + -- service maskable interrupts + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if(nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + else + nmi_ctrl <= latch_nmi; + end if; + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + pc_ctrl <= latch_pc; + next_state <= int_pcl_state; + else + -- Advance the PC to fetch next instruction byte + pc_ctrl <= inc_pc; + next_state <= decode_state; + end if; + end if; + -- + -- Here to decode instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode_state => + -- fetch first byte of address or immediate data + ea_ctrl <= fetch_first_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + iv_ctrl <= latch_iv; + case op_code(7 downto 4) is + when "0000" => + md_ctrl <= fetch_first_md; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + case op_code(3 downto 0) is + when "0001" => -- nop + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "0100" => -- lsrd + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + when "0101" => -- lsld + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsl16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + when "0110" => -- tap + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tap; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "0111" => -- tpa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tpa; + cc_ctrl <= latch_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1000" => -- inx + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inx; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + when "1001" => -- dex + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dex; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + when "1010" => -- clv + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clv; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1011" => -- sev + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sev; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1100" => -- clc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1101" => -- sec + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sec; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1110" => -- cli + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_cli; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1111" => -- sei + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + end case; + next_state <= fetch_state; + -- acca / accb inherent instructions + when "0001" => + md_ctrl <= fetch_first_md; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + left_ctrl <= acca_left; + right_ctrl <= accb_right; + case op_code(3 downto 0) is + when "0000" => -- sba + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "0001" => -- cba + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + when "0110" => -- tab + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + when "0111" => -- tba + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "1001" => -- daa + alu_ctrl <= alu_daa; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "1011" => -- aba + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when others => + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end case; + next_state <= fetch_state; + when "0010" => -- branch conditional + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0000" => -- bra + next_state <= branch_state; + when "0001" => -- brn + next_state <= fetch_state; + when "0010" => -- bhi + if (cc(CBIT) or cc(ZBIT)) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0011" => -- bls + if (cc(CBIT) or cc(ZBIT)) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0100" => -- bcc/bhs + if cc(CBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0101" => -- bcs/blo + if cc(CBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0110" => -- bne + if cc(ZBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0111" => -- beq + if cc(ZBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1000" => -- bvc + if cc(VBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1001" => -- bvs + if cc(VBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1010" => -- bpl + if cc(NBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1011" => -- bmi + if cc(NBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1100" => -- bge + if (cc(NBIT) xor cc(VBIT)) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1101" => -- blt + if (cc(NBIT) xor cc(VBIT)) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1110" => -- bgt + if (cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1111" => -- ble + if (cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when others => + next_state <= fetch_state; + end case; + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + case op_code(3 downto 0) is + when "0000" => -- tsx + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + when "0001" => -- ins + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0010" => -- pula + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pula_state; + when "0011" => -- pulb + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pulb_state; + when "0100" => -- des + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0101" => -- txs + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0110" => -- psha + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= psha_state; + when "0111" => -- pshb + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= pshb_state; + when "1000" => -- pulx + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pulx_hi_state; + when "1001" => -- rts + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= rts_hi_state; + when "1010" => -- abx + left_ctrl <= ix_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + when "1011" => -- rti + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= rti_cc_state; + when "1100" => -- pshx + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= pshx_lo_state; + when "1101" => -- mul + left_ctrl <= acca_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= mul_state; + when "1110" => -- wai + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= int_pcl_state; + when "1111" => -- swi + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= int_pcl_state; + when others => + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + end case; + -- + -- Accumulator A Single operand + -- source = Acc A dest = Acc A + -- Do not advance PC + -- + when "0100" => -- acca single op + md_ctrl <= fetch_first_md; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= acca_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + acca_ctrl <= latch_acca; + cc_ctrl <= load_cc; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- single operand acc b + -- Do not advance PC + -- + when "0101" => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + pc_ctrl <= latch_pc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= accb_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + accb_ctrl <= latch_accb; + cc_ctrl <= load_cc; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- Single operand indexed + -- Two byte instruction so advance PC + -- EA should hold index offset + -- + when "0110" => -- indexed single op + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + -- + -- Single operand extended addressing + -- three byte instruction so advance the PC + -- Low order EA holds high order address + -- + when "0111" => -- extended single op + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when "1000" => -- acca immediate + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0011" | -- subdd # + "1100" | -- cpx # + "1110" => -- lds # + next_state <= immediate16_state; + when "1101" => -- bsr + next_state <= bsr_state; + when others => + next_state <= fetch_state; + end case; + + when "1001" => -- acca direct + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0111" => -- staa direct + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1111" => -- sts direct + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1101" => -- jsr direct + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= jsr_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= read8_state; + end case; + + when "1010" => -- acca indexed + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + + when "1011" => -- acca extended + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when "1100" => -- accb immediate + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0011" | -- addd # + "1100" | -- ldd # + "1110" => -- ldx # + next_state <= immediate16_state; + when others => + next_state <= fetch_state; + end case; + + when "1101" => -- accb direct + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0111" => -- stab direct + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std direct + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx direct + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= read8_state; + end case; + + when "1110" => -- accb indexed + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + + when "1111" => -- accb extended + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when others => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- idle the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= latch_pc; + next_state <= fetch_state; + end case; + + when immediate16_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + op_ctrl <= latch_op; + iv_ctrl <= latch_iv; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + -- fetch next immediate byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + -- + -- ea holds 8 bit index offet + -- calculate the effective memory address + -- using the alu + -- + when indexed_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- calculate effective address from index reg + -- index offest is not sign extended + ea_ctrl <= add_ix_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + -- work out next state + case op_code(7 downto 4) is + when "0110" => -- single op indexed + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + case op_code(3 downto 0) is + when "1011" => -- undefined + next_state <= fetch_state; + when "1110" => -- jmp + next_state <= jmp_state; + when others => + next_state <= read8_state; + end case; + when "1010" => -- acca indexed + case op_code(3 downto 0) is + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- jsr + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= jsr_state; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when "1110" => -- accb indexed + case op_code(3 downto 0) is + when "0111" => -- stab direct + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std direct + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx direct + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when others => + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + next_state <= fetch_state; + end case; + -- + -- ea holds the low byte of the absolute address + -- Move ea low byte into ea high byte + -- load new ea low byte to for absolute 16 bit address + -- advance the program counter + -- + when extended_state => -- fetch ea low byte + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- increment pc + pc_ctrl <= inc_pc; + -- fetch next effective address bytes + ea_ctrl <= fetch_next_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + -- work out the next state + case op_code(7 downto 4) is + when "0111" => -- single op extended + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + case op_code(3 downto 0) is + when "1011" => -- undefined + next_state <= fetch_state; + when "1110" => -- jmp + next_state <= jmp_state; + when others => + next_state <= read8_state; + end case; + when "1011" => -- acca extended + case op_code(3 downto 0) is + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- jsr + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= jsr_state; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when "1111" => -- accb extended + case op_code(3 downto 0) is + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when others => + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + next_state <= fetch_state; + end case; + -- + -- here if ea holds low byte (direct page) + -- can enter here from extended addressing + -- read memory location + -- note that reads may be 8 or 16 bits + -- + when read8_state => -- read data + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + case op_code(7 downto 4) is + when "0110" | "0111" => -- single operand + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= execute_state; + + when "1001" | "1010" | "1011" => -- acca + case op_code(3 downto 0) is + when "0011" | -- subd + "1110" | -- lds + "1100" => -- cpx + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + -- increment the effective address in case of 16 bit load + ea_ctrl <= inc_ea; + next_state <= read16_state; +-- when "0111" => -- staa +-- left_ctrl <= acca_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st8; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write8_state; +-- when "1101" => -- jsr +-- left_ctrl <= acca_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_nop; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= latch_md; +-- ea_ctrl <= latch_ea; +-- next_state <= jsr_state; +-- when "1111" => -- sts +-- left_ctrl <= sp_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= fetch_state; + end case; + + when "1101" | "1110" | "1111" => -- accb + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldx + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + -- increment the effective address in case of 16 bit load + ea_ctrl <= inc_ea; + next_state <= read16_state; +-- when "0111" => -- stab +-- left_ctrl <= accb_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st8; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write8_state; +-- when "1101" => -- std +-- left_ctrl <= accd_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; +-- when "1111" => -- stx +-- left_ctrl <= ix_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= execute_state; + end case; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= fetch_state; + end case; + + when read16_state => -- read second data byte from ea + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle the effective address + ea_ctrl <= latch_ea; + -- read the low byte of the 16 bit data + md_ctrl <= fetch_next_md; + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + -- + -- 16 bit Write state + -- write high byte of ALU output. + -- EA hold address of memory to write to + -- Advance the effective address in ALU + -- + when write16_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- increment the effective address + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ea_ctrl <= inc_ea; + -- write the ALU hi byte to ea + addr_ctrl <= write_ad; + dout_ctrl <= md_hi_dout; + next_state <= write8_state; + -- + -- 8 bit write + -- Write low 8 bits of ALU output + -- + when write8_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- write ALU low byte output + addr_ctrl <= write_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when jmp_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- load PC with effective address + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= load_ea_pc; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when jsr_state => -- JSR + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= jsr1_state; + + when jsr1_state => -- JSR + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= jmp_state; + + when branch_state => -- Bcc + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- calculate signed branch + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= add_ea_pc; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when bsr_state => -- BSR + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= bsr1_state; + + when bsr1_state => -- BSR + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= branch_state; + + when rts_hi_state => -- RTS + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment the sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_hi_dout; + next_state <= rts_lo_state; + + when rts_lo_state => -- RTS1 + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + when mul_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- move acca to md + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mulea_state; + + when mulea_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + md_ctrl <= latch_md; + -- idle ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- move accb to ea + ea_ctrl <= load_accb_ea; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= muld_state; + + when muld_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + md_ctrl <= latch_md; + -- clear accd + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= latch_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul0_state; + + when mul0_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 0 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(0) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul1_state; + + when mul1_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 1 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(1) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul2_state; + + when mul2_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 2 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(2) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul3_state; + + when mul3_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 3 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(3) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul4_state; + + when mul4_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 4 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(4) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul5_state; + + when mul5_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 5 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(5) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul6_state; + + when mul6_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 6 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(6) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul7_state; + + when mul7_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 7 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(7) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when execute_state => -- execute single operand instruction + -- default + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + case op_code(7 downto 4) is + when "0110" | -- indexed single op + "0111" => -- extended single op + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + ea_ctrl <= latch_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + left_ctrl <= md_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + end case; + + when others => + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + ea_ctrl <= latch_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + end case; + + when psha_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= push_ad; + dout_ctrl <= acca_dout; + next_state <= fetch_state; + + when pula_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pull_ad; + dout_ctrl <= acca_dout; + next_state <= fetch_state; + + when pshb_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= push_ad; + dout_ctrl <= accb_dout; + next_state <= fetch_state; + + when pulb_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pull_ad; + dout_ctrl <= accb_dout; + next_state <= fetch_state; + + when pshx_lo_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= push_ad; + dout_ctrl <= ix_lo_dout; + next_state <= pshx_hi_state; + + when pshx_hi_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= push_ad; + dout_ctrl <= ix_hi_dout; + next_state <= fetch_state; + + when pulx_hi_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- pull ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_hi_dout; + next_state <= pulx_lo_state; + + when pulx_lo_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_lo_dout; + next_state <= fetch_state; + + -- + -- return from interrupt + -- enter here from bogus interrupts + -- + when rti_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- idle address bus + cc_ctrl <= latch_cc; + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + next_state <= rti_cc_state; + + when rti_cc_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pull_ad; + dout_ctrl <= cc_dout; + next_state <= rti_accb_state; + + when rti_accb_state => + -- default registers + acca_ctrl <= latch_acca; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pull_ad; + dout_ctrl <= accb_dout; + next_state <= rti_acca_state; + + when rti_acca_state => + -- default registers + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pull_ad; + dout_ctrl <= acca_dout; + next_state <= rti_ixh_state; + + when rti_ixh_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_hi_dout; + next_state <= rti_ixl_state; + + when rti_ixl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_lo_dout; + next_state <= rti_pch_state; + + when rti_pch_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_hi_dout; + next_state <= rti_pcl_state; + + when rti_pcl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- pull pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + -- + -- here on interrupt + -- iv register hold interrupt type + -- + when int_pcl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= int_pch_state; + + when int_pch_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= int_ixl_state; + + when int_ixl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= push_ad; + dout_ctrl <= ix_lo_dout; + next_state <= int_ixh_state; + + when int_ixh_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= push_ad; + dout_ctrl <= ix_hi_dout; + next_state <= int_acca_state; + + when int_acca_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= push_ad; + dout_ctrl <= acca_dout; + next_state <= int_accb_state; + + + when int_accb_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= push_ad; + dout_ctrl <= accb_dout; + next_state <= int_cc_state; + + when int_cc_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write cc + addr_ctrl <= push_ad; + dout_ctrl <= cc_dout; + nmi_ctrl <= latch_nmi; + -- + -- nmi is edge triggered + -- nmi_req is cleared when nmi goes low. + -- + if nmi_req = '1' then + iv_ctrl <= nmi_iv; + next_state <= vect_hi_state; + else + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_mask_state; + else + case op_code is + when "00111110" => -- WAI (wait for interrupt) + iv_ctrl <= latch_iv; + next_state <= int_wai_state; + when "00111111" => -- SWI (Software interrupt) + iv_ctrl <= swi_iv; + next_state <= vect_hi_state; + when others => -- bogus interrupt (return) + iv_ctrl <= latch_iv; + next_state <= rti_state; + end case; + end if; + end if; + + when int_wai_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + op_ctrl <= latch_op; + ea_ctrl <= latch_ea; + -- enable interrupts + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_cli; + cc_ctrl <= load_cc; + sp_ctrl <= latch_sp; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + if (nmi_req = '1') and (nmi_ack='0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= vect_hi_state; + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if (nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + else + nmi_ctrl <= latch_nmi; + end if; + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_mask_state; + else + iv_ctrl <= latch_iv; + next_state <= int_wai_state; + end if; + end if; + + when int_mask_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- Mask IRQ + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + sp_ctrl <= latch_sp; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= vect_hi_state; + + when halt_state => -- halt CPU. + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- do nothing in ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + if halt = '1' then + next_state <= halt_state; + else + next_state <= fetch_state; + end if; + + when others => -- error state halt on undefine states + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- do nothing in ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= error_state; + end case; +end process; + +-------------------------------- +-- +-- state machine +-- +-------------------------------- + +change_state: process( clk, rst, state, hold ) +begin + if clk'event and clk = '0' then + if rst = '1' then + state <= reset_state; + elsif hold = '1' then + state <= state; + else + state <= next_state; + end if; + end if; +end process; + -- output + +end CPU_ARCH; + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dpram.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dpram.vhd new file mode 100644 index 00000000..672d33d3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dpram.vhd @@ -0,0 +1,131 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dpram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock_a : IN STD_LOGIC ; + clock_b : IN STD_LOGIC ; + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren_a : IN STD_LOGIC := '1'; + wren_b : IN STD_LOGIC := '1'; + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END dpram; + + +ARCHITECTURE SYN OF dpram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + read_during_write_mode_port_b : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock1 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q_a <= sub_wire0(width_a-1 DOWNTO 0); + q_b <= sub_wire1(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK1", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK1", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + numwords_b => 2**widthad_a, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + read_during_write_mode_port_b => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + widthad_b => widthad_a, + width_a => width_a, + width_b => width_a, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK1" + ) + PORT MAP ( + wren_a => wren_a, + clock0 => clock_a, + wren_b => wren_b, + clock1 => clock_b, + address_a => address_a, + address_b => address_b, + data_a => data_a, + data_b => data_b, + q_a => sub_wire0, + q_b => sub_wire1 + ); + + + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dprom_2r.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dprom_2r.vhd new file mode 100644 index 00000000..a17e0e58 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dprom_2r.vhd @@ -0,0 +1,135 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dprom_2r IS + GENERIC + ( + INIT_FILE : string := ""; + --NUMWORDS_A : natural; + WIDTHAD_A : natural; + WIDTH_A : natural := 8; + --NUMWORDS_B : natural; + WIDTHAD_B : natural; + WIDTH_B : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : in std_logic_vector (WIDTHAD_A-1 downto 0); + address_b : in std_logic_vector (WIDTHAD_B-1 downto 0); + clock : in std_logic ; + q_a : out std_logic_vector (WIDTH_A-1 downto 0); + q_b : out std_logic_vector (WIDTH_B-1 downto 0) + ); +END dprom_2r; + + +ARCHITECTURE SYN OF dprom_2r IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire2 : STD_LOGIC ; + SIGNAL sub_wire3_bv : BIT_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire3 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire4_bv : BIT_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire4 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + init_file_layout : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + ram_block_type : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (WIDTHAD_A-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (WIDTHAD_B-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + sub_wire2 <= '0'; + sub_wire3_bv(WIDTH_A-1 DOWNTO 0) <= (others => '0'); + sub_wire3 <= To_stdlogicvector(sub_wire3_bv); + sub_wire4_bv(WIDTH_B-1 DOWNTO 0) <= (others => '0'); + sub_wire4 <= To_stdlogicvector(sub_wire4_bv); + q_a <= sub_wire0(WIDTH_A-1 DOWNTO 0); + q_b <= sub_wire1(WIDTH_B-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK0", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK0", + init_file => INIT_FILE, + init_file_layout => "PORT_A", + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**WIDTHAD_A, + numwords_b => 2**WIDTHAD_B, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_b, + power_up_uninitialized => "FALSE", + ram_block_type => "M9K", + widthad_a => WIDTHAD_A, + widthad_b => WIDTHAD_B, + width_a => WIDTH_A, + width_b => WIDTH_B, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK0" + ) + PORT MAP ( + wren_a => sub_wire2, + wren_b => sub_wire2, + clock0 => clock, + address_a => address_a, + address_b => address_b, + data_a => sub_wire3, + data_b => sub_wire4, + q_a => sub_wire0, + q_b => sub_wire1 + ); + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/input_mapper.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/input_mapper.vhd new file mode 100644 index 00000000..8fc031ba --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/input_mapper.vhd @@ -0,0 +1,99 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; + +entity inputmapper is + generic + ( + NUM_DIPS : integer := 8; + NUM_INPUTS : integer := 2 + ); + port + ( + clk : in std_logic; + rst_n : in std_logic; + jamma : in from_JAMMA_t; + + -- user outputs + dips : in std_logic_vector(NUM_DIPS-1 downto 0); + inputs : out from_MAPPED_INPUTS_t(0 to NUM_INPUTS-1) + ); +end inputmapper; + +architecture SYN of inputmapper is + +begin + + process (clk, rst_n) + variable jamma_v : from_MAPPED_INPUTS_t(0 to NUM_INPUTS-1); + begin + + -- note: all inputs are active LOW + + if rst_n = '0' then + for i in 0 to NUM_INPUTS-1 loop + jamma_v(i).d := (others =>'1'); + end loop; + + elsif rising_edge (clk) then + + -- handle JAMMA inputs + jamma_v(0).d(0) := jamma.p(1).start; + jamma_v(0).d(1) := jamma.p(2).start; + jamma_v(0).d(2) := '1';--jamma.service; + jamma_v(0).d(3) := jamma.coin(1); + --unused + --unused + --unused + --unused + + jamma_v(1).d(0) := jamma.p(1).right; + jamma_v(1).d(1) := jamma.p(1).left; + jamma_v(1).d(2) := jamma.p(1).down; + jamma_v(1).d(3) := jamma.p(1).up; + --unused + jamma_v(1).d(5) := jamma.p(1).button(2); + --unused + jamma_v(1).d(7) := jamma.p(1).button(1); + + jamma_v(2).d(0) := jamma.p(2).right; + jamma_v(2).d(1) := jamma.p(2).left; + jamma_v(2).d(2) := jamma.p(2).down; + jamma_v(2).d(3) := jamma.p(2).up; + jamma_v(2).d(4) := jamma.coin(2); + jamma_v(2).d(5) := jamma.p(2).button(2); + --unused + jamma_v(2).d(7) := jamma.p(2).button(1); + end if; -- rising_edge (clk) + + -- assign outputs + inputs(0).d <= jamma_v(0).d; + inputs(1).d <= jamma_v(1).d; + inputs(2).d <= jamma_v(2).d; + inputs(3).d <= "11111110"; -- 1C/1C, 10/30/50K, 3 lives + inputs(4).d <= jamma.service & "1111100"; +-- PORT_START("DSW2") +-- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1") +-- PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) +-- PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +-- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:2") +-- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) +-- PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) +-- PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) PORT_DIPLOCATION("SW2:3") +-- PORT_DIPSETTING( 0x04, "Mode 1" ) +-- PORT_DIPSETTING( 0x00, "Mode 2" ) +-- /* Bits 4,5,6 are different in each game, see below */ +-- PORT_DIPUNUSED_DIPLOC( 0x38, 0x38, "SW2:4,5,6" ) +-- PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)" ) PORT_DIPLOCATION("SW2:7") +-- PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) +-- PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +-- PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) + + end process; + +end architecture SYN; + + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace.vhd new file mode 100644 index 00000000..112c724a --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace.vhd @@ -0,0 +1,146 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; +--use work.project_pkg.all; + +entity PACE is + port + ( + -- clocks and resets + clkrst_i : in from_CLKRST_t; + + -- misc I/O + buttons_i : in from_BUTTONS_t; + switches_i : in from_SWITCHES_t; + leds_o : out to_LEDS_t; + + -- controller inputs + inputs_i : in from_INPUTS_t; + + -- video + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t; + sound_data_o : out std_logic_vector(7 downto 0); + + -- custom i/o + -- project_i : in from_PROJECT_IO_t; + -- project_o : out to_PROJECT_IO_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0) + ); +end entity PACE; + +architecture SYN of PACE is + + constant CLK_1US_COUNTS : integer := + integer(27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY); + + signal mapped_inputs : from_MAPPED_INPUTS_t(0 to PACE_INPUTS_NUM_BYTES-1); + + signal to_tilemap_ctl : to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal from_tilemap_ctl : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + signal to_bitmap_ctl : to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal from_bitmap_ctl : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + signal to_sprite_reg : to_SPRITE_REG_t; + signal to_sprite_ctl : to_SPRITE_CTL_t; + signal from_sprite_ctl : from_SPRITE_CTL_t; + signal spr0_hit : std_logic; + + signal to_graphics : to_GRAPHICS_t; + signal from_graphics : from_GRAPHICS_t; + +begin + + inputs_inst : entity work.inputs + generic map + ( + NUM_DIPS => PACE_NUM_SWITCHES, + NUM_INPUTS => PACE_INPUTS_NUM_BYTES, + CLK_1US_DIV => CLK_1US_COUNTS + ) + port map + ( + clk => clkrst_i.clk(0), + reset => clkrst_i.rst(0), + jamma => inputs_i.jamma_n, + + dips => switches_i, + inputs => mapped_inputs + ); + + platform_inst : entity work.platform + generic map + ( + NUM_INPUT_BYTES => PACE_INPUTS_NUM_BYTES + ) + port map + ( + -- clocking and reset + clkrst_i => clkrst_i, + + -- misc inputs and outputs + buttons_i => buttons_i, + switches_i => switches_i, + leds_o => leds_o, + sound_data_o => sound_data_o, + -- controller inputs + inputs_i => mapped_inputs, + + -- graphics + bitmap_i => from_bitmap_ctl, + bitmap_o => to_bitmap_ctl, + + tilemap_i => from_tilemap_ctl, + tilemap_o => to_tilemap_ctl, + + sprite_reg_o => to_sprite_reg, + sprite_i => from_sprite_ctl, + sprite_o => to_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => from_graphics, + graphics_o => to_graphics, + + -- custom i/o +-- project_i => project_i, +-- project_o => project_o, + platform_i => platform_i, + platform_o => platform_o, + + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do + ); + + graphics_inst : entity work.Graphics + Port Map + ( + bitmap_ctl_i => to_bitmap_ctl, + bitmap_ctl_o => from_bitmap_ctl, + + tilemap_ctl_i => to_tilemap_ctl, + tilemap_ctl_o => from_tilemap_ctl, + + sprite_reg_i => to_sprite_reg, + sprite_ctl_i => to_sprite_ctl, + sprite_ctl_o => from_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => to_graphics, + graphics_o => from_graphics, + + -- video (incl. clk) + video_i => video_i, + video_o => video_o + ); + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg.vhd new file mode 100644 index 00000000..d2dd0c07 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg.vhd @@ -0,0 +1,280 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; + +package pace_pkg is + + -- + -- PACE constants which *MUST* be defined + -- + + type PACETargetType is + ( + PACE_TARGET_NANOBOARD_NB1, + PACE_TARGET_DE0, + PACE_TARGET_DE0_CV, -- 5CEBA4 + PACE_TARGET_DE0_NANO, -- EP4CE22 + PACE_TARGET_DE1, + PACE_TARGET_DE2, + PACE_TARGET_DE2_70, -- EP2C70 + PACE_TARGET_DE2_115, -- EP4CE115 + PACE_TARGET_P2, -- A02 build + PACE_TARGET_P2A, -- A04/A build (SRAM byte selects) + PACE_TARGET_P3M, + PACE_TARGET_S3A_700, -- Spartan 3A/N Starter Kit + PACE_TARGET_RC10, + PACE_TARGET_NX2_12, + PACE_TARGET_NEXYS_3, -- Digilent S6 board + PACE_TARGET_CYC3DEV, + PACE_TARGET_CYC5GXDEV, + PACE_TARGET_COCO3PLUS, + PACE_TARGET_S5A, + PACE_TARGET_CARTEBLANCHE_250, + PACE_TARGET_CARTEBLANCHE_500, + PACE_TARGET_BEMICRO, + PACE_TARGET_OPENEP3C16, + PACE_TARGET_MIST, + PACE_TARGET_CHAMELEON64, + PACE_TARGET_RETRORAMBLINGS_CYC3, -- Generic EP3C25 board with custom io boards + PACE_TARGET_S5A_R2_EP4C, + PACE_TARGET_S5A_R2_EP3SL, + PACE_TARGET_S5A_R2B0_EP4C, + PACE_TARGET_S5A_R2B0_EP3SL, + PACE_TARGET_S5A_R2C0_EP4C, + PACE_TARGET_S5A_R2C0_EP3SL, + PACE_TARGET_S5L_A0_EP4C, + PACE_TARGET_S5L_A0_EP3SL, + PACE_TARGET_NAVICO_ROCKY, + PACE_TARGET_NGPACE, + PACE_TARGET_S6M_A0 + ); + + type PACEFpgaVendor_t is + ( + PACE_FPGA_VENDOR_ALTERA, + PACE_FPGA_VENDOR_XILINX, + PACE_FPGA_VENDOR_LATTICE + ); + + type PACEFpgaFamily_t is + ( + PACE_FPGA_FAMILY_CYCLONE1, + PACE_FPGA_FAMILY_CYCLONE2, + PACE_FPGA_FAMILY_CYCLONE3, + PACE_FPGA_FAMILY_CYCLONE4, + PACE_FPGA_FAMILY_CYCLONE5, + PACE_FPGA_FAMILY_CYCLONE6, + PACE_FPGA_FAMILY_STRATIX_III, + PACE_FPGA_FAMILY_SPARTAN3, + PACE_FPGA_FAMILY_SPARTAN3A, + PACE_FPGA_FAMILY_SPARTAN3E + ); + + type PACEJamma_t is + ( + PACE_JAMMA_NONE, + PACE_JAMMA_MAPLE, + PACE_JAMMA_NGC, + PACE_JAMMA_PS2 + ); + + -- Types + + type ByteArrayType is array (natural range <>) of std_logic_vector(7 downto 0); + + type from_CLKRST_t is record + arst : std_logic; + arst_n : std_logic; + rst : std_logic_vector(0 to 3); + clk_ref : std_logic; --reference clock + clk : std_logic_vector(0 to 3); + end record; + + -- maximums from the DE2 target + + constant PACE_NUM_SWITCHES : natural := 18; + subtype from_SWITCHES_t is std_logic_vector(PACE_NUM_SWITCHES-1 downto 0); + + constant PACE_NUM_BUTTONS : natural := 4; + subtype from_BUTTONS_t is std_logic_vector(PACE_NUM_BUTTONS-1 downto 0); + + constant PACE_NUM_LEDS : natural := 18; + subtype to_LEDS_t is std_logic_vector(PACE_NUM_LEDS-1 downto 0); + + -- + -- JAMMA interface data structures + -- - note: all signals are active LOW + -- + + type from_JAMMA_player_t is record + start : std_logic; + up : std_logic; + down : std_logic; + left : std_logic; + right : std_logic; + button : std_logic_vector(1 to 5); + end record; + + type from_JAMMA_player_a is array (natural range <>) of from_JAMMA_player_t; + + type from_JAMMA_t is record + coin_cnt : std_logic_vector(1 to 2); + service : std_logic; + tilt : std_logic; + test : std_logic; + coin : std_logic_vector(1 to 2); + p : from_JAMMA_player_a(1 to 2); + end record; + + -- + -- INPUTS + -- + subtype analogue_in_t is std_logic_vector(9 downto 0); + type analogue_in_a is array (natural range <>) of analogue_in_t; + + type from_INPUTS_t is record + ps2_kclk : std_logic; + ps2_kdat : std_logic; + ps2_mclk : std_logic; + ps2_mdat : std_logic; + jamma_n : from_JAMMA_t; + -- up to 4 10-bit analgue inputs + analogue : analogue_in_a(1 to 4); + end record; + + type in8_t is record + d : std_logic_vector(7 downto 0); + end record; + + type from_MAPPED_INPUTS_t is array (natural range <>) of in8_t; + + -- + -- SRAM interface data structure + -- + type from_SRAM_t is record + d : std_logic_vector(31 downto 0); + end record; + + type to_SRAM_t is record + a : std_logic_vector(23 downto 0); + d : std_logic_vector(31 downto 0); + be : std_logic_vector(3 downto 0); + cs : std_logic; + oe : std_logic; + we : std_logic; + end record; + + function NULL_TO_SRAM return to_SRAM_t; + + -- + -- FLASH interface data structure + -- + type from_FLASH_t is record + d : std_logic_vector(15 downto 0); + end record; + + type to_FLASH_t is record + a : std_logic_vector(21 downto 0); + d : std_logic_vector(15 downto 0); + we : std_logic; + cs : std_logic; + oe : std_logic; + end record; + + function NULL_TO_FLASH return to_FLASH_t; + + type from_AUDIO_t is record + clk : std_logic; + end record; + + type to_AUDIO_t is record + clk : std_logic; + ldata : std_logic_vector(15 downto 0); + rdata : std_logic_vector(15 downto 0); + end record; + + function NULL_TO_AUDIO return to_AUDIO_t; + + type from_SPI_t is record + din : std_logic; + end record; + + type to_SPI_t is record + clk : std_logic; + mode : std_logic; + sel : std_logic; + ena : std_logic; + dout : std_logic; + end record; + + function NULL_TO_SPI return to_SPI_t; + + type to_SERIAL_t is record + txd : std_logic; + rts : std_logic; + end record; + + function NULL_TO_SERIAL return to_SERIAL_t; + + type from_SERIAL_t is record + dcd : std_logic; + rxd : std_logic; + cts : std_logic; + end record; + + constant PACE_NUM_GPI : natural := 72; + subtype from_GP_t is std_logic_vector(PACE_NUM_GPI-1 downto 0); + constant PACE_NUM_GPO : natural := PACE_NUM_GPI; + type to_GP_t is record + d : std_logic_vector(PACE_NUM_GPO-1 downto 0); + oe : std_logic_vector(PACE_NUM_GPO-1 downto 0); + end record; + + function NULL_TO_GP return to_GP_t; + + subtype SND_A_t is std_logic_vector(7 downto 0); + subtype SND_D_t is std_logic_vector(7 downto 0); + + type to_SOUND_t is record + a : SND_A_t; + d : SND_D_t; + rd : std_logic; + wr : std_logic; + end record; + + type from_SOUND_t is record + d : SND_D_t; + end record; + + function NULL_TO_SOUND return to_SOUND_t; + + -- + -- OSD interface data structure + -- + type from_OSD_t is record + d : std_logic_vector(7 downto 0); + end record; + + function NULL_FROM_OSD return from_OSD_t; + + type to_OSD_t is record + en : std_logic; + a : std_logic_vector(7 downto 0); + d : std_logic_vector(7 downto 0); + we : std_logic; + end record; + + function NULL_TO_OSD return to_OSD_t; + + -- create a constant that automatically determines + -- whether this is simulation or synthesis + constant IN_SIMULATION : BOOLEAN := false + -- synthesis translate_off + or true + -- synthesis translate_on + ; + constant IN_SYNTHESIS : boolean := not IN_SIMULATION; + +end; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg_body.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg_body.vhd new file mode 100644 index 00000000..e1cedf87 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg_body.vhd @@ -0,0 +1,50 @@ +library work; + +package body pace_pkg is + + function NULL_TO_FLASH return to_FLASH_t is + begin + return ((others => '0'), (others => '0'), '0', '0', '0'); + end NULL_TO_FLASH; + + function NULL_TO_SRAM return to_SRAM_t is + begin + return ((others => '0'), (others => '0'), (others => '0'), '0', '0', '0'); + end NULL_TO_SRAM; + + function NULL_TO_AUDIO return to_AUDIO_t is + begin + return ('0', (others => '0'), (others => '0')); + end NULL_TO_AUDIO; + + function NULL_TO_SPI return to_SPI_t is + begin + return (others => '0'); + end NULL_TO_SPI; + + function NULL_TO_SERIAL return to_SERIAL_t is + begin + return (others => '0'); + end NULL_TO_SERIAL; + + function NULL_TO_SOUND return to_SOUND_t is + begin + return ((others => '0'), (others => '0'), '0', '0'); + end NULL_TO_SOUND; + + function NULL_FROM_OSD return from_OSD_t is + begin + return (others => (others => '0')); + end NULL_FROM_OSD; + + function NULL_TO_OSD return to_OSD_t is + begin + return ('0', (others => '0'), (others => '0'), '0'); + end NULL_TO_OSD; + + function NULL_TO_GP return to_GP_t is + begin + return ((others => '0'), (others => '0')); + end NULL_TO_GP; + +end package body pace_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform.vhd new file mode 100644 index 00000000..2ad4f64f --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform.vhd @@ -0,0 +1,477 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; +use work.platform_variant_pkg.all; +--use work.project_pkg.all; + +entity platform is + generic + ( + NUM_INPUT_BYTES : integer + ); + port + ( + -- clocking and reset + clkrst_i : in from_CLKRST_t; + + -- misc I/O + buttons_i : in from_BUTTONS_t; + switches_i : in from_SWITCHES_t; + leds_o : out to_LEDS_t; + + -- controller inputs + inputs_i : in from_MAPPED_INPUTS_t(0 to NUM_INPUT_BYTES-1); + + -- graphics + + bitmap_i : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_o : out to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + tilemap_i : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_o : out to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_o : out to_SPRITE_REG_t; + sprite_i : in from_SPRITE_CTL_t; + sprite_o : out to_SPRITE_CTL_t; + spr0_hit : in std_logic; + + -- various graphics information + graphics_i : in from_GRAPHICS_t; + graphics_o : out to_GRAPHICS_t; + sound_data_o : out std_logic_vector(7 downto 0); + + -- custom i/o +-- project_i : in from_PROJECT_IO_t; +-- project_o : out to_PROJECT_IO_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0) + ); + +end platform; + +architecture SYN of platform is + + alias clk_sys : std_logic is clkrst_i.clk(0); + alias rst_sys : std_logic is clkrst_i.rst(0); + alias clk_video : std_logic is clkrst_i.clk(1); + + -- cpu signals + signal clk_3M072_en : std_logic; + signal cpu_clk_en : std_logic; + signal cpu_a : std_logic_vector(15 downto 0); + signal cpu_d_i : std_logic_vector(7 downto 0); + signal cpu_d_o : std_logic_vector(7 downto 0); + signal cpu_mem_wr : std_logic; + signal cpu_io_rd : std_logic; + signal cpu_io_wr : std_logic; + signal cpu_irq : std_logic; + + -- ROM signals + signal rom_cs : std_logic; +-- signal rom_d_o : std_logic_vector(7 downto 0); + + -- keyboard signals + + -- VRAM signals + signal vram_cs : std_logic; + signal vram_wr : std_logic; + signal vram_d_o : std_logic_vector(7 downto 0); + + signal snd_cs : std_logic; + + + -- RAM signals + signal wram_cs : std_logic; + signal wram_wr : std_logic; + signal wram_d_o : std_logic_vector(7 downto 0); + + -- CRAM/SPRITE signals + signal cram_cs : std_logic; + signal cram_wr : std_logic; + signal cram_d_o : std_logic_vector(7 downto 0); + signal sprite_cs : std_logic; + + -- misc signals + signal in_cs : std_logic; + signal in_d_o : std_logic_vector(7 downto 0); + + -- other signals + signal rst_platform : std_logic; + signal pause : std_logic; + signal rot_en : std_logic; + +begin + + -- handle special keys + process (clk_sys, rst_sys) + variable spec_keys_r : std_logic_vector(7 downto 0); + alias spec_keys : std_logic_vector(7 downto 0) is inputs_i(PACE_INPUTS_NUM_BYTES-1).d; + variable layer_en : std_logic_vector(4 downto 0); + begin + if rst_sys = '1' then + rst_platform <= '0'; + pause <= '0'; + rot_en <= '0'; -- to default later + spec_keys_r := (others => '0'); + layer_en := "11111"; + elsif rising_edge(clk_sys) then + rst_platform <= spec_keys(0); + if spec_keys_r(1) = '0' and spec_keys(1) = '1' then + pause <= not pause; + end if; + if spec_keys_r(2) = '0' and spec_keys(2) = '1' then + rot_en <= not rot_en; + if layer_en = "11111" then + layer_en := "00001"; + elsif layer_en = "10000" then + layer_en := "11111"; + else + layer_en := layer_en(3 downto 0) & layer_en(4); + end if; + end if; + spec_keys_r := spec_keys; + end if; + graphics_o.bit8(0)(4 downto 0) <= layer_en; + end process; + + --graphics_o.bit8(0)(0) <= rot_en; + + -- chip select logic + -- ROM $0000-$7FFF + rom_cs <= '1' when STD_MATCH(cpu_a, "0---------------") else '0'; + -- SPRITE $C000-$C0FF + sprite_cs <= '1' when STD_MATCH(cpu_a, X"C0"& "--------") else '0'; + -- VRAM/CRAM $D000-$DFFF + vram_cs <= '1' when PLATFORM_VARIANT = "kungfum" and + STD_MATCH(cpu_a, X"D"&"0-----------") else + '1' when PLATFORM_VARIANT /= "kungfum" and + STD_MATCH(cpu_a, X"D"&"-----------0") else + '0'; + cram_cs <= '1' when PLATFORM_VARIANT = "kungfum" and + STD_MATCH(cpu_a, X"D"&"1-----------") else + '1' when PLATFORM_VARIANT /= "kungfum" and + STD_MATCH(cpu_a, X"D"&"-----------1") else + '0'; + -- RAM $E000-$EFFF + wram_cs <= '1' when STD_MATCH(cpu_a, X"E"&"------------") else '0'; + + -- OUTPUT $DXX0 + snd_cs <= '1' when STD_MATCH(cpu_a(7 downto 0), X"D") else '0'; + + -- INPUTS (I/O) $00-$04 + in_cs <= '1' when STD_MATCH(cpu_a(7 downto 0), X"0"&"00--") else + '1' when STD_MATCH(cpu_a(7 downto 0), X"04") else + '0'; + +process (clk_sys, rst_sys) begin + if rst_sys = '1' then + sound_data_o <= X"00"; + elsif rising_edge(clk_sys) then + if cpu_clk_en = '1' and cpu_mem_wr = '1' and snd_cs = '1' then + sound_data_o <= cpu_d_o; + end if; + end if; + end process; + + + -- memory read mux + cpu_d_i <= in_d_o when (cpu_io_rd = '1' and in_cs = '1') else + cpu_rom_do when rom_cs = '1' else + vram_d_o when vram_cs = '1' else + cram_d_o when cram_cs = '1' else + wram_d_o when wram_cs = '1' else + (others => '1'); + + -- memory block write signals + vram_wr <= vram_cs and cpu_mem_wr; + cram_wr <= cram_cs and cpu_mem_wr; + wram_wr <= wram_cs and cpu_mem_wr; + + -- sprite registers + sprite_reg_o.clk <= clk_sys; + sprite_reg_o.clk_ena <= clk_3M072_en; + sprite_reg_o.a <= cpu_a(7 downto 0); + sprite_reg_o.d <= cpu_d_o; + sprite_reg_o.wr <= sprite_cs and cpu_mem_wr; + + -- + -- COMPONENT INSTANTIATION + -- + + BLK_CPU : block + signal cpu_rst : std_logic; + begin + -- generate CPU enable clock (3MHz from 27/30MHz) + clk_en_inst : entity work.clk_div + generic map + ( + DIVISOR => M62_CPU_CLK_ENA_DIVIDE_BY + ) + port map + ( + clk => clk_sys, + reset => rst_sys, + clk_en => clk_3M072_en + ); + + -- gated CPU signals + cpu_clk_en <= clk_3M072_en and not pause; + cpu_rst <= rst_sys or rst_platform; + + cpu_inst : entity work.Z80 + port map + ( + clk => clk_sys, + clk_en => cpu_clk_en, + reset => cpu_rst, + + addr => cpu_a, + datai => cpu_d_i, + datao => cpu_d_o, + + mem_rd => open, + mem_wr => cpu_mem_wr, + io_rd => cpu_io_rd, + io_wr => cpu_io_wr, + + intreq => cpu_irq, + intvec => cpu_d_i, + intack => open, + nmi => '0' + ); + + end block BLK_CPU; + + BLK_INTERRUPTS : block + + signal vblank_int : std_logic; + + begin + + process (clk_sys, rst_sys) + variable vblank_r : std_logic_vector(3 downto 0); + alias vblank_prev : std_logic is vblank_r(vblank_r'left); + alias vblank_um : std_logic is vblank_r(vblank_r'left-1); + -- 1us duty for VBLANK_INT + variable count : integer range 0 to CLK0_FREQ_MHz * 100; + begin + if rst_sys = '1' then + vblank_int <= '0'; + vblank_r := (others => '0'); + count := count'high; + elsif rising_edge(clk_sys) then + -- rising edge vblank only + if vblank_prev = '0' and vblank_um = '1' then + count := 0; + end if; + if count /= count'high then + vblank_int <= '1'; + count := count + 1; + else + vblank_int <= '0'; + end if; + vblank_r := vblank_r(vblank_r'left-1 downto 0) & graphics_i.vblank; + end if; -- rising_edge(clk_sys) + end process; + + -- generate INT + cpu_irq <= vblank_int; + + end block BLK_INTERRUPTS; + + BLK_INPUTS : block + begin + in_d_o <= inputs_i(0).d when cpu_a(2 downto 0) = "000" else + inputs_i(1).d when cpu_a(2 downto 0) = "001" else + inputs_i(2).d when cpu_a(2 downto 0) = "010" else + inputs_i(3).d when cpu_a(2 downto 0) = "011" else + inputs_i(4).d; + end block BLK_INPUTS; + + BLK_SCROLL : block + signal m62_hscroll : std_logic_vector(15 downto 0); + begin + process (clk_sys, rst_sys) + begin + if rst_sys = '1' then + m62_hscroll <= (others => '0'); + elsif rising_edge(clk_sys) then + if cpu_clk_en = '1' and cpu_mem_wr = '1' then + case cpu_a is + when X"A000" => + if PLATFORM_VARIANT = "kungfum" then + m62_hscroll(7 downto 0) <= cpu_d_o; + end if; + when X"B000" => + if PLATFORM_VARIANT = "kungfum" then + m62_hscroll(15 downto 8) <= cpu_d_o; + end if; + when others => + null; + end case; + end if; -- cpu_wr + end if; -- rising_edge(clk_sys) + end process; + graphics_o.bit16(0) <= m62_hscroll; + end block BLK_SCROLL; + +cpu_rom_addr <= cpu_a(14 downto 0); + + BLK_GFX_ROMS : block + + type gfx_rom_d_a is array(M62_CHAR_ROM'range) of std_logic_vector(7 downto 0); + signal chr_rom_d : gfx_rom_d_a; + type spr_rom_d_a is array(0 to 11) of std_logic_vector(7 downto 0); + signal spr_rom_left : spr_rom_d_a; + signal spr_rom_right : spr_rom_d_a; + + begin + + GEN_CHAR_ROMS : for i in M62_CHAR_ROM'range generate + char_rom_inst : entity work.sprom + generic map + ( + init_file => "./roms/" & + M62_CHAR_ROM(i) & ".hex", + widthad_a => 13 + ) + port map + ( + clock => clk_video, + address => tilemap_i(1).tile_a(12 downto 0), + q => chr_rom_d(i) + ); + end generate GEN_CHAR_ROMS; + + tilemap_o(1).tile_d(23 downto 0) <= chr_rom_d(0) & chr_rom_d(1) & chr_rom_d(2); + + GEN_SPRITE_ROMS : for i in M62_SPRITE_ROM'range generate + sprite_rom_inst : entity work.dprom_2r + generic map + ( + init_file => "./roms/" & + M62_SPRITE_ROM(i) & ".hex", + widthad_a => 13, + widthad_b => 13 + ) + port map + ( + clock => clk_video, + address_a(12 downto 5) => sprite_i.a(12 downto 5), + address_a(4) => '0', + address_a(3 downto 0) => sprite_i.a(3 downto 0), + q_a => spr_rom_left(i), + address_b(12 downto 5) => sprite_i.a(12 downto 5), + address_b(4) => '1', + address_b(3 downto 0) => sprite_i.a(3 downto 0), + q_b => spr_rom_right(i) + ); + end generate GEN_SPRITE_ROMS; + + sprite_o.d(sprite_o.d'left downto 48) <= (others => '0'); + sprite_o.d(47 downto 0) <= spr_rom_left(0) & spr_rom_right(0) & + spr_rom_left(1) & spr_rom_right(1) & + spr_rom_left(2) & spr_rom_right(2) + when sprite_i.a(14 downto 13) = "00" else + spr_rom_left(3) & spr_rom_right(3) & + spr_rom_left(4) & spr_rom_right(4) & + spr_rom_left(5) & spr_rom_right(5) + when sprite_i.a(14 downto 13) = "01" else + spr_rom_left(6) & spr_rom_right(6) & + spr_rom_left(7) & spr_rom_right(7) & + spr_rom_left(8) & spr_rom_right(8) + when sprite_i.a(14 downto 13) = "10" else + spr_rom_left(9) & spr_rom_right(9) & + spr_rom_left(10) & spr_rom_right(10) & + spr_rom_left(11) & spr_rom_right(11); + + end block BLK_GFX_ROMS; + + + + BLK_VRAM : block + signal vram_a : std_logic_vector(10 downto 0); + alias cram_a : std_logic_vector(10 downto 0) is vram_a; + begin + + vram_a <= cpu_a(10 downto 0) when PLATFORM_VARIANT = "kungfum" else + cpu_a(11 downto 1); + + vram_inst : entity work.dpram + generic map + ( + init_file => "", + widthad_a => 11 + ) + port map + ( + clock_b => clk_sys, + address_b => vram_a, + wren_b => vram_wr, + data_b => cpu_d_o, + q_b => vram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).map_a(10 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).map_d(7 downto 0) + ); + tilemap_o(1).map_d(15 downto 8) <= (others => '0'); + + cram_inst : entity work.dpram + generic map + ( + init_file => "", + widthad_a => 11 + ) + port map + ( + clock_b => clk_sys, + address_b => cram_a, + wren_b => cram_wr, + data_b => cpu_d_o, + q_b => cram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).attr_a(10 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).attr_d(7 downto 0) + ); + tilemap_o(1).attr_d(15 downto 8) <= (others => '0'); + + end block BLK_VRAM; + + + wram_inst : entity work.spram + generic map + ( + widthad_a => 12 + ) + port map + ( + clock => clk_sys, + address => cpu_a(11 downto 0), + data => cpu_d_o, + wren => wram_wr, + q => wram_d_o + ); + + + -- unused outputs + + sprite_o.ld <= '0'; + --graphics_o <= NULL_TO_GRAPHICS; + leds_o <= (others => '0'); + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_pkg.vhd new file mode 100644 index 00000000..355d009a --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_pkg.vhd @@ -0,0 +1,55 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +library work; + +use work.platform_variant_pkg.all; +use work.video_controller_pkg.all; +package platform_pkg is + + + constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_PAL_576x288_50Hz; + constant PACE_CLK0_DIVIDE_BY : natural := 27; + constant PACE_CLK0_MULTIPLY_BY : natural := 44; -- 27*44/27 = 44MHz + constant PACE_CLK1_DIVIDE_BY : natural := 27; + constant PACE_CLK1_MULTIPLY_BY : natural := 11; -- 27*11/27 = 11MHz + constant PACE_VIDEO_H_SCALE : integer := 1; + constant PACE_VIDEO_V_SCALE : integer := 1; + constant PACE_ENABLE_ADV724 : std_logic := '1'; + constant USE_VIDEO_VBLANK_INTERRUPT : boolean := false; + constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '1'; + constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '1'; + + constant PACE_VIDEO_BORDER_RGB : RGB_t := RGB_BLACK; + + constant M62_VIDEO_H_SIZE : integer := 256; + constant M62_VIDEO_H_OFFSET : integer := (512-M62_VIDEO_H_SIZE)/2; + constant M62_VIDEO_V_SIZE : integer := 256; + + constant PACE_VIDEO_NUM_BITMAPS : natural := 0; + constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; + constant PACE_VIDEO_NUM_SPRITES : natural := 32; + constant PACE_VIDEO_H_SIZE : integer := M62_VIDEO_H_SIZE; + constant PACE_VIDEO_V_SIZE : integer := M62_VIDEO_V_SIZE; + constant PACE_VIDEO_L_CROP : integer := 0; + constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; + constant PACE_VIDEO_PIPELINE_DELAY : integer := 5; + + constant PACE_INPUTS_NUM_BYTES : integer := 6; + + constant CLK0_FREQ_MHz : natural := + 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; + constant CPU_FREQ_MHz : natural := 3; + + constant M62_CPU_CLK_ENA_DIVIDE_BY : natural := CLK0_FREQ_MHz / CPU_FREQ_MHz; + + type from_PLATFORM_IO_t is record + not_used : std_logic; + end record; + + type to_PLATFORM_IO_t is record + not_used : std_logic; + end record; + +end; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_variant_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_variant_pkg.vhd new file mode 100644 index 00000000..c4995415 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_variant_pkg.vhd @@ -0,0 +1,524 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +library work; + +use work.platform_pkg.all; + +package platform_variant_pkg is + + + constant PLATFORM_VARIANT : string := "kungfum"; + + type rom_a is array (natural range <>) of string; + +-- constant M62_ROM : rom_a(0 to 3) := +-- ( +-- 0 => "lr-a-4e", +-- 1 => "lr-a-4d", + -- 2 => "lr-a-4b", + -- 3 => "lr-a-4a" + -- ); + -- constant M62_ROM_WIDTHAD : natural := 13; + + constant M62_CHAR_ROM : rom_a(0 to 2) := + ( + 0 => "g-4c-a", + 1 => "g-4d-a", + 2 => "g-4e-a" + ); + + constant M62_SPRITE_ROM : rom_a(0 to 11) := + ( + 0 => "b-4k-.bin", + 3 => "b-4f-.bin", + 6 => "b-4l-.bin", + 9 => "b-4h-.bin", + 1 => "b-3n-.bin", + 4 => "b-4n-.bin", + 7 => "b-4m-.bin", + 10 => "b-3m-.bin", + 2 => "b-4c-.bin", + 5 => "b-4e-.bin", + 8 => "b-4d-.bin", + 11 => "b-4a-.bin" + ); + + +type pal_rgb_t is array (0 to 2) of std_logic_vector(7 downto 0); + type pal_a is array (natural range <>) of pal_rgb_t; + + constant tile_pal : pal_a(0 to 255) := + ( + 0 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 1 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 2 => (0=>"00000011", 1=>"11111111", 2=>"00000011"), -- 03FF03 + 3 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 4 => (0=>"00000011", 1=>"00000011", 2=>"11111111"), -- 0303FF + 5 => (0=>"11111111", 1=>"00000011", 2=>"11111111"), -- FF03FF + 6 => (0=>"00000011", 1=>"11111111", 2=>"11111111"), -- 03FFFF + 8 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 9 => (0=>"11110000", 1=>"10110111", 2=>"10000100"), -- F0B784 + 10 => (0=>"11011100", 1=>"10100110", 2=>"01110000"), -- DCA670 + 11 => (0=>"11111111", 1=>"00000011", 2=>"00110001"), -- FF0331 + 12 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 13 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 14 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 15 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 16 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 18 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 19 => (0=>"11001100", 1=>"11110000", 2=>"11001100"), -- CCF0CC + 20 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 21 => (0=>"11011100", 1=>"10010100", 2=>"01010000"), -- DC9450 + 22 => (0=>"10110111", 1=>"10010100", 2=>"01010000"), -- B79450 + 23 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 24 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 25 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 26 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 27 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 29 => (0=>"11001100", 1=>"10010100", 2=>"10000100"), -- CC9484 + 30 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 31 => (0=>"11111111", 1=>"11110000", 2=>"11001100"), -- FFF0CC + 32 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 33 => (0=>"11001100", 1=>"00110001", 2=>"01000001"), -- CC3141 + 34 => (0=>"11111111", 1=>"10000100", 2=>"10000100"), -- FF8484 + 35 => (0=>"11111111", 1=>"10110111", 2=>"10110111"), -- FFB7B7 + 36 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 37 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 38 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 39 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 40 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 41 => (0=>"00000011", 1=>"11001100", 2=>"11001100"), -- 03CCCC + 42 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 43 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 44 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 45 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 46 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 47 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 48 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 49 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 50 => (0=>"00000011", 1=>"11110000", 2=>"11110000"), -- 03F0F0 + 51 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 52 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 53 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 54 => (0=>"01110000", 1=>"01110000", 2=>"01110000"), -- 707070 + 55 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 56 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 57 => (0=>"00000011", 1=>"11111111", 2=>"00000011"), -- 03FF03 + 58 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 59 => (0=>"11111111", 1=>"11011100", 2=>"00000011"), -- FFDC03 + 60 => (0=>"00000011", 1=>"11111111", 2=>"11111111"), -- 03FFFF + 61 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 62 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 63 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 64 => (0=>"11111111", 1=>"00000011", 2=>"00110001"), -- FF0331 + 65 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 66 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 67 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 68 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 69 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 70 => (0=>"00000011", 1=>"11110000", 2=>"11110000"), -- 03F0F0 + 71 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 72 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 73 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 74 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 75 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 76 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 77 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 78 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 80 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 81 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 82 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 83 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 84 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 85 => (0=>"00000011", 1=>"11110000", 2=>"11110000"), -- 03F0F0 + 86 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 87 => (0=>"01110000", 1=>"01110000", 2=>"01110000"), -- 707070 + 88 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 91 => (0=>"11111111", 1=>"00000011", 2=>"00110001"), -- FF0331 + 92 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 93 => (0=>"11001100", 1=>"00000011", 2=>"10000100"), -- CC0384 + 94 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 96 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 97 => (0=>"00000011", 1=>"10110111", 2=>"11001100"), -- 03B7CC + 98 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 99 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 100 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 101 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 102 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 103 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 105 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 106 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 107 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 108 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 109 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 110 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 111 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 112 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 113 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 114 => (0=>"00000011", 1=>"11110000", 2=>"10100110"), -- 03F0A6 + 115 => (0=>"11111111", 1=>"11011100", 2=>"10010100"), -- FFDC94 + 116 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 117 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 118 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 119 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 120 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 121 => (0=>"11111111", 1=>"10110111", 2=>"10110111"), -- FFB7B7 + 122 => (0=>"00000011", 1=>"11110000", 2=>"10100110"), -- 03F0A6 + 123 => (0=>"11111111", 1=>"11011100", 2=>"10010100"), -- FFDC94 + 125 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 126 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 127 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 128 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 129 => (0=>"11111111", 1=>"10110111", 2=>"10110111"), -- FFB7B7 + 130 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 131 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 132 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 133 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 134 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 135 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 136 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 137 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 138 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 139 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 140 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 141 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 142 => (0=>"00000011", 1=>"11011100", 2=>"11011100"), -- 03DCDC + 143 => (0=>"10110111", 1=>"10100110", 2=>"10000100"), -- B7A684 + 144 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 145 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 146 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 147 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 148 => (0=>"11001100", 1=>"10010100", 2=>"10000100"), -- CC9484 + 149 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 150 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 151 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 152 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 153 => (0=>"10100110", 1=>"10000100", 2=>"00000011"), -- A68403 + 154 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 155 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 156 => (0=>"11001100", 1=>"10010100", 2=>"10000100"), -- CC9484 + 157 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 158 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 159 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 160 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 162 => (0=>"11111111", 1=>"10010100", 2=>"01110000"), -- FF9470 + 163 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 164 => (0=>"11111111", 1=>"11111111", 2=>"11001100"), -- FFFFCC + 165 => (0=>"11111111", 1=>"11111111", 2=>"10110111"), -- FFFFB7 + 166 => (0=>"11001100", 1=>"11001100", 2=>"00000011"), -- CCCC03 + 167 => (0=>"11110000", 1=>"11110000", 2=>"00000011"), -- F0F003 + 168 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 169 => (0=>"00000011", 1=>"11111111", 2=>"11111111"), -- 03FFFF + 170 => (0=>"11111111", 1=>"00000011", 2=>"11111111"), -- FF03FF + 171 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 173 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 174 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 175 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 176 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 177 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 178 => (0=>"11001100", 1=>"11111111", 2=>"11001100"), -- CCFFCC + 179 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 180 => (0=>"00000011", 1=>"00000011", 2=>"11111111"), -- 0303FF + 181 => (0=>"11110000", 1=>"10110111", 2=>"10010100"), -- F0B794 + 182 => (0=>"10110111", 1=>"11110000", 2=>"11110000"), -- B7F0F0 + 183 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 186 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 188 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 194 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 196 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 200 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 201 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 202 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 203 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 204 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 205 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 206 => (0=>"00000011", 1=>"00000011", 2=>"10100110"), -- 0303A6 + 208 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 209 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 210 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 212 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 213 => (0=>"11111111", 1=>"10010100", 2=>"10010100"), -- FF9494 + 214 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 216 => (0=>"11111111", 1=>"11110000", 2=>"11011100"), -- FFF0DC + 217 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 218 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 219 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 220 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 221 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 222 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 223 => (0=>"11110000", 1=>"11001100", 2=>"10100110"), -- F0CCA6 + 224 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 225 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 226 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 227 => (0=>"11011100", 1=>"00100010", 2=>"11001100"), -- DC22CC + 228 => (0=>"11001100", 1=>"11110000", 2=>"11001100"), -- CCF0CC + 229 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 231 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 232 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 233 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 234 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 235 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 236 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 237 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 238 => (0=>"11011100", 1=>"00100010", 2=>"11001100"), -- DC22CC + 239 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 240 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 241 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 242 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 243 => (0=>"11011100", 1=>"00100010", 2=>"11001100"), -- DC22CC + 244 => (0=>"00000011", 1=>"10110111", 2=>"00000011"), -- 03B703 + 245 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 246 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 248 => (0=>"11111111", 1=>"11110000", 2=>"11011100"), -- FFF0DC + 249 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 250 => (0=>"10010100", 1=>"10000100", 2=>"10110111"), -- 9484B7 + 251 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 252 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 253 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 254 => (0=>"11011100", 1=>"11001100", 2=>"10110111"), -- DCCCB7 + 255 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + others => (others => (others => '1')) + ); + + constant sprite_pal : pal_a(0 to 255) := + ( + 0 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 1 => (0=>"10100110", 1=>"01110000", 2=>"00000011"), -- A67003 + 2 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 3 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 4 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 5 => (0=>"11001100", 1=>"11111111", 2=>"11111111"), -- CCFFFF + 6 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 8 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 9 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 10 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 11 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 12 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 13 => (0=>"10100110", 1=>"11011100", 2=>"11110000"), -- A6DCF0 + 14 => (0=>"11001100", 1=>"11111111", 2=>"11111111"), -- CCFFFF + 16 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 17 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 18 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 19 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 20 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 21 => (0=>"10100110", 1=>"11011100", 2=>"11110000"), -- A6DCF0 + 22 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 24 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 25 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 26 => (0=>"11001100", 1=>"11111111", 2=>"11111111"), -- CCFFFF + 27 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 28 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 29 => (0=>"10100110", 1=>"01110000", 2=>"00000011"), -- A67003 + 30 => (0=>"10110111", 1=>"10010100", 2=>"01110000"), -- B79470 + 31 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 32 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 33 => (0=>"10010100", 1=>"10010100", 2=>"11001100"), -- 9494CC + 34 => (0=>"10110111", 1=>"10110111", 2=>"11011100"), -- B7B7DC + 35 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 36 => (0=>"11011100", 1=>"00000011", 2=>"11011100"), -- DC03DC + 37 => (0=>"11110000", 1=>"10100110", 2=>"11011100"), -- F0A6DC + 38 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 39 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 40 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 41 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 42 => (0=>"10110111", 1=>"10110111", 2=>"11011100"), -- B7B7DC + 43 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 44 => (0=>"11011100", 1=>"00000011", 2=>"11011100"), -- DC03DC + 45 => (0=>"11110000", 1=>"10100110", 2=>"11011100"), -- F0A6DC + 46 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 47 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 48 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 49 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 50 => (0=>"10100110", 1=>"10110111", 2=>"11001100"), -- A6B7CC + 51 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 52 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 53 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 54 => (0=>"11111111", 1=>"11011100", 2=>"10110111"), -- FFDCB7 + 56 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 57 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 59 => (0=>"11110000", 1=>"10100110", 2=>"00000011"), -- F0A603 + 60 => (0=>"11111111", 1=>"11011100", 2=>"10110111"), -- FFDCB7 + 61 => (0=>"11110000", 1=>"11001100", 2=>"10100110"), -- F0CCA6 + 62 => (0=>"10100110", 1=>"10000100", 2=>"00000011"), -- A68403 + 63 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 64 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 65 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 66 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 67 => (0=>"11011100", 1=>"11110000", 2=>"11110000"), -- DCF0F0 + 68 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 69 => (0=>"10100110", 1=>"10010100", 2=>"01110000"), -- A69470 + 70 => (0=>"10000100", 1=>"10000100", 2=>"10000100"), -- 848484 + 71 => (0=>"10110111", 1=>"10110111", 2=>"11011100"), -- B7B7DC + 72 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 73 => (0=>"11110000", 1=>"11110000", 2=>"10000100"), -- F0F084 + 74 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 75 => (0=>"11011100", 1=>"11110000", 2=>"11110000"), -- DCF0F0 + 76 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 77 => (0=>"10100110", 1=>"10010100", 2=>"01110000"), -- A69470 + 78 => (0=>"10000100", 1=>"10000100", 2=>"10000100"), -- 848484 + 80 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 81 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 82 => (0=>"01110000", 1=>"10110111", 2=>"01110000"), -- 70B770 + 83 => (0=>"11110000", 1=>"11011100", 2=>"10010100"), -- F0DC94 + 84 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 86 => (0=>"01110000", 1=>"10010100", 2=>"01110000"), -- 709470 + 88 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 89 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 90 => (0=>"10000100", 1=>"11111111", 2=>"10000100"), -- 84FF84 + 91 => (0=>"11111111", 1=>"10110111", 2=>"01110000"), -- FFB770 + 92 => (0=>"01110000", 1=>"01110000", 2=>"10110111"), -- 7070B7 + 94 => (0=>"11001100", 1=>"10100110", 2=>"11111111"), -- CCA6FF + 96 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 97 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 98 => (0=>"01110000", 1=>"11001100", 2=>"01110000"), -- 70CC70 + 99 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 100 => (0=>"01110000", 1=>"10100110", 2=>"01110000"), -- 70A670 + 101 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 102 => (0=>"10110111", 1=>"11110000", 2=>"11110000"), -- B7F0F0 + 104 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 105 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 107 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 108 => (0=>"00000011", 1=>"00000011", 2=>"10110111"), -- 0303B7 + 109 => (0=>"11110000", 1=>"10100110", 2=>"01110000"), -- F0A670 + 110 => (0=>"10000100", 1=>"10000100", 2=>"11111111"), -- 8484FF + 111 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 112 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 113 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 114 => (0=>"10110111", 1=>"10010100", 2=>"10000100"), -- B79484 + 115 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 116 => (0=>"10000100", 1=>"10000100", 2=>"10110111"), -- 8484B7 + 117 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 118 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 120 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 121 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 122 => (0=>"10110111", 1=>"10010100", 2=>"10000100"), -- B79484 + 123 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 124 => (0=>"11111111", 1=>"10100110", 2=>"00000011"), -- FFA603 + 125 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 126 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 128 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 129 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 130 => (0=>"10110111", 1=>"10010100", 2=>"10000100"), -- B79484 + 131 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 132 => (0=>"10000100", 1=>"10000100", 2=>"10110111"), -- 8484B7 + 133 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 134 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 136 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 137 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 138 => (0=>"10010100", 1=>"11111111", 2=>"10010100"), -- 94FF94 + 139 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 140 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 141 => (0=>"11110000", 1=>"10010100", 2=>"10010100"), -- F09494 + 142 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 143 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 144 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 145 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 146 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 148 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 149 => (0=>"11110000", 1=>"10010100", 2=>"10010100"), -- F09494 + 150 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 151 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 152 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 153 => (0=>"11011100", 1=>"10000100", 2=>"00000011"), -- DC8403 + 154 => (0=>"11111111", 1=>"11011100", 2=>"10110111"), -- FFDCB7 + 155 => (0=>"11110000", 1=>"11110000", 2=>"00000011"), -- F0F003 + 156 => (0=>"10100110", 1=>"11110000", 2=>"10100110"), -- A6F0A6 + 157 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 158 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 159 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 160 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 161 => (0=>"11011100", 1=>"10000100", 2=>"00000011"), -- DC8403 + 162 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 163 => (0=>"11001100", 1=>"01110000", 2=>"00000011"), -- CC7003 + 164 => (0=>"10100110", 1=>"11110000", 2=>"10100110"), -- A6F0A6 + 165 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 166 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 167 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 168 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 169 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 170 => (0=>"01110000", 1=>"01110000", 2=>"01110000"), -- 707070 + 171 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 172 => (0=>"00000011", 1=>"00000011", 2=>"11110000"), -- 0303F0 + 174 => (0=>"11001100", 1=>"10010100", 2=>"11001100"), -- CC94CC + 176 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 177 => (0=>"10100110", 1=>"10010100", 2=>"01110000"), -- A69470 + 178 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 179 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 180 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 182 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 183 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 184 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 185 => (0=>"11011100", 1=>"10110111", 2=>"11001100"), -- DCB7CC + 186 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 188 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 189 => (0=>"11111111", 1=>"11011100", 2=>"11011100"), -- FFDCDC + 190 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 191 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 192 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 193 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 194 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 195 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 196 => (0=>"10110111", 1=>"10100110", 2=>"10000100"), -- B7A684 + 198 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 199 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 200 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 201 => (0=>"11111111", 1=>"10000100", 2=>"10000100"), -- FF8484 + 202 => (0=>"11001100", 1=>"10110111", 2=>"10000100"), -- CCB784 + 203 => (0=>"11111111", 1=>"11111111", 2=>"10010100"), -- FFFF94 + 204 => (0=>"10110111", 1=>"01110000", 2=>"10000100"), -- B77084 + 205 => (0=>"11110000", 1=>"10110111", 2=>"10010100"), -- F0B794 + 206 => (0=>"11110000", 1=>"11011100", 2=>"10110111"), -- F0DCB7 + 207 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 208 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 209 => (0=>"11111111", 1=>"10000100", 2=>"10000100"), -- FF8484 + 210 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 211 => (0=>"11111111", 1=>"11111111", 2=>"10010100"), -- FFFF94 + 212 => (0=>"10110111", 1=>"01110000", 2=>"10000100"), -- B77084 + 213 => (0=>"11110000", 1=>"10110111", 2=>"10010100"), -- F0B794 + 214 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 215 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 216 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 217 => (0=>"11111111", 1=>"00000011", 2=>"10010100"), -- FF0394 + 218 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 219 => (0=>"11110000", 1=>"11011100", 2=>"10110111"), -- F0DCB7 + 220 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 221 => (0=>"11111111", 1=>"10010100", 2=>"00000011"), -- FF9403 + 222 => (0=>"10100110", 1=>"01110000", 2=>"10000100"), -- A67084 + 224 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 225 => (0=>"11111111", 1=>"00000011", 2=>"10010100"), -- FF0394 + 226 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 227 => (0=>"11110000", 1=>"11011100", 2=>"10110111"), -- F0DCB7 + 228 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 229 => (0=>"11111111", 1=>"10010100", 2=>"00000011"), -- FF9403 + 230 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 232 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 234 => (0=>"11001100", 1=>"11001100", 2=>"00000011"), -- CCCC03 + 235 => (0=>"11011100", 1=>"11111111", 2=>"00000011"), -- DCFF03 + 236 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 240 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 248 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + others => (others => (others => '1')) + ); + + -- table of sprite heights + type prom_a is array (natural range <>) of integer range 0 to 3; + constant sprite_prom : prom_a(0 to 31) := + ( + 0 => 0, + 1 => 0, + 8 => 0, + 9 => 0, + 12 => 2, + 13 => 2, + 14 => 2, + 15 => 2, + 16 => 0, + 23 => 0, + 24 => 0, + 27 => 0, + others => 1 + ); + +end package platform_variant_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.qip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.qip new file mode 100644 index 00000000..d4720390 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_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/IremM62 Hardware/Kung_MiST/rtl/pll_mist.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.vhd new file mode 100644 index 00000000..ebe4c7e7 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.vhd @@ -0,0 +1,461 @@ +-- 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.4 Build 182 03/12/2014 Patches 4.26 SJ Web Edition +-- ************************************************************ + + +--Copyright (C) 1991-2014 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + + +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 ; + c2 : OUT STD_LOGIC ; + c3 : 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 ; + SIGNAL sub_wire6 : STD_LOGIC ; + SIGNAL sub_wire7 : STD_LOGIC_VECTOR (1 DOWNTO 0); + SIGNAL sub_wire8_bv : BIT_VECTOR (0 DOWNTO 0); + SIGNAL sub_wire8 : 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; + clk2_divide_by : NATURAL; + clk2_duty_cycle : NATURAL; + clk2_multiply_by : NATURAL; + clk2_phase_shift : STRING; + clk3_divide_by : NATURAL; + clk3_duty_cycle : NATURAL; + clk3_multiply_by : NATURAL; + clk3_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_wire8_bv(0 DOWNTO 0) <= "0"; + sub_wire8 <= To_stdlogicvector(sub_wire8_bv); + sub_wire5 <= sub_wire0(2); + sub_wire4 <= sub_wire0(0); + sub_wire2 <= sub_wire0(3); + sub_wire1 <= sub_wire0(1); + c1 <= sub_wire1; + c3 <= sub_wire2; + locked <= sub_wire3; + c0 <= sub_wire4; + c2 <= sub_wire5; + sub_wire6 <= inclk0; + sub_wire7 <= sub_wire8(0 DOWNTO 0) & sub_wire6; + + altpll_component : altpll + GENERIC MAP ( + bandwidth_type => "AUTO", + clk0_divide_by => 27, + clk0_duty_cycle => 50, + clk0_multiply_by => 44, + clk0_phase_shift => "0", + clk1_divide_by => 27, + clk1_duty_cycle => 50, + clk1_multiply_by => 11, + clk1_phase_shift => "0", + clk2_divide_by => 27, + clk2_duty_cycle => 50, + clk2_multiply_by => 88, + clk2_phase_shift => "0", + clk3_divide_by => 9000, + clk3_duty_cycle => 50, + clk3_multiply_by => 299, + clk3_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_USED", + port_clk3 => "PORT_USED", + 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_wire7, + clk => sub_wire0, + locked => sub_wire3 + ); + + + +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: DIV_FACTOR2 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR3 NUMERIC "27" +-- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE3 STRING "50.00000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "44.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "11.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "88.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "0.897000" +-- 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 "deg" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT2 STRING "ps" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT3 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: MIRROR_CLK2 STRING "0" +-- Retrieval info: PRIVATE: MIRROR_CLK3 STRING "0" +-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "44" +-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "11" +-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "88" +-- Retrieval info: PRIVATE: MULT_FACTOR3 NUMERIC "1" +-- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "44.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "11.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "88.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "0.89700000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE3 STRING "1" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT2 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT3 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_SHIFT2 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT3 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: PHASE_SHIFT_UNIT2 STRING "ps" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT3 STRING "ps" +-- 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: STICKY_CLK2 STRING "1" +-- Retrieval info: PRIVATE: STICKY_CLK3 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_CLK2 STRING "1" +-- Retrieval info: PRIVATE: USE_CLK3 STRING "1" +-- Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA1 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA2 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA3 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 "44" +-- 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 "11" +-- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "27" +-- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "88" +-- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "9000" +-- Retrieval info: CONSTANT: CLK3_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "299" +-- Retrieval info: CONSTANT: CLK3_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_USED" +-- Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_USED" +-- 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: c2 0 0 0 0 OUTPUT_CLK_EXT VCC "c2" +-- Retrieval info: USED_PORT: c3 0 0 0 0 OUTPUT_CLK_EXT VCC "c3" +-- 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: c2 0 0 0 0 @clk 0 0 1 2 +-- Retrieval info: CONNECT: c3 0 0 0 0 @clk 0 0 1 3 +-- 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/IremM62 Hardware/Kung_MiST/rtl/roms/Roms.txt b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/Roms.txt new file mode 100644 index 00000000..c6db1e07 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/Roms.txt @@ -0,0 +1,37 @@ +ROM_START( ldrun ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lr-a-4e", 0x0000, 0x2000, CRC(5d7e2a4d) SHA1(fe8aeff360f6c3a8606d67a8b95148c3c2ef7267) ) + ROM_LOAD( "lr-a-4d", 0x2000, 0x2000, CRC(96f20473) SHA1(e400c43f3f32e12f68ca204c60bcebdb2b3da55d) ) + ROM_LOAD( "lr-a-4b", 0x4000, 0x2000, CRC(b041c4a9) SHA1(77768b03ea2497e25c3e47b68a0eb2fe3e9aea35) ) + ROM_LOAD( "lr-a-4a", 0x6000, 0x2000, CRC(645e42aa) SHA1(c806ffce7ece418bad86854c987f78c70c13e492) ) + + ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */ + ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) ) + ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, CRC(3f7f3939) SHA1(7ee25a21e74995bfb36ac11b45d384b33a6d8515) ) + + ROM_REGION( 0x6000, "gfx1", 0 ) + ROM_LOAD( "lr-e-2d", 0x0000, 0x2000, CRC(24f9b58d) SHA1(e33224b910d37aaa85713b954c8dd50996245a8c) ) /* characters */ + ROM_LOAD( "lr-e-2j", 0x2000, 0x2000, CRC(43175e08) SHA1(9dbafb27d46cf7df35f343a8753e8d91ea706993) ) + ROM_LOAD( "lr-e-2f", 0x4000, 0x2000, CRC(e0317124) SHA1(b766bd21e2da1673d2054148f62d61c33c95d38e) ) + + ROM_REGION( 0x6000, "gfx2", 0 ) + ROM_LOAD( "lr-b-4k", 0x0000, 0x2000, CRC(8141403e) SHA1(65fa6bc872fb07c71aacbbcc35cee766b2877896) ) /* sprites */ + ROM_LOAD( "lr-b-3n", 0x2000, 0x2000, CRC(55154154) SHA1(35304676e1ab55adccdabdc766a4e0e0901d3cd0) ) + ROM_LOAD( "lr-b-4c", 0x4000, 0x2000, CRC(924e34d0) SHA1(6a841419797a129235fc7d0405a5be55e8d703da) ) + + ROM_REGION( 0x20, "spr_height_prom", 0 ) + ROM_LOAD( "lr-b-5p", 0x00, 0x20, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */ + + ROM_REGION( 0x300, "spr_color_proms", 0 ) + ROM_LOAD( "lr-b-1m", 0x0000, 0x0100, CRC(4bae1c25) SHA1(17a9e2567d9d648dca69510bb201f8af0738b068) ) /* sprite palette red component */ + ROM_LOAD( "lr-b-1n", 0x0100, 0x0100, CRC(9cd3db94) SHA1(bff95965f946df0e4af1f99db5b2468bf1d4403f) ) /* sprite palette green component */ + ROM_LOAD( "lr-b-1l", 0x0200, 0x0100, CRC(08d8cf9a) SHA1(a46213e0dc04e44b0544401eb341fd49eef331dd) ) /* sprite palette blue component */ + + ROM_REGION( 0x300, "chr_color_proms", 0 ) + ROM_LOAD( "lr-e-3m", 0x0000, 0x0100, CRC(53040416) SHA1(2c6915164d1c31afc60a21b557abdf023d5b3f46) ) /* character palette red component */ + ROM_LOAD( "lr-e-3l", 0x0100, 0x0100, CRC(67786037) SHA1(cd40dfd94295afe57139733752643cf48b8566b1) ) /* character palette green component */ + ROM_LOAD( "lr-e-3n", 0x0200, 0x0100, CRC(5b716837) SHA1(e3ea250891fec43a97e92ac1c3a4fbb5ee2d4a4d) ) /* character palette blue component */ + + ROM_REGION( 0x100, "timing", 0 ) + ROM_LOAD( "lr-b-6f", 0x000, 0x100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */ +ROM_END \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3e-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3e-.bin.hex new file mode 100644 index 00000000..2f175a44 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3e-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000001804002B082F001B084A00150E5 +:1000100085F0100095F01880AE7003A0B2100800B3 +:1000200000000001000000010000000100000001CC +:1000300000000001000000010000000100000001BC +:10004000AA98261080288BBA100A8BAA2271191040 +:1000500010ACB100CBE9253180010AC800ADDA044B +:1000600042180008D9889EA8172198110BC8ABE93F +:100070001471898119B99BE9255199820BBCAB2573 +:100080005309980ACBAD05538AA019CABB376199A9 +:10009000A109ABC27308AA8889CA4720AA8998AA6D +:1000A0003778998980A84619A98988A2739A99A155 +:1000B0002E0629999911D0719989810C170A88986F +:1000C00049B369A00B14C850A80A848B62C918A34D +:1000D0001E25AA10B23E058C10A12B878B11B03CB7 +:1000E000068B10A11C35C939A3AB72D02A03F05876 +:1000F000C28A48D42D03C03E059B4996CB51C3A963 +:100100007BC41B3C968D1112DB51B80200F048B045 +:10011000185BB68B03A39F31B84A11E12A81094DC0 +:1001200003A984809B58A85981D21AA7A00A209CB1 +:100130007A82B292D5A83C192B31C5C2A2902C5C10 +:100140003C3A3A83D4C293B11B3B3C2A31C1A6C28C +:10015000A389894A814C1B86983C2C01399C3B26FB +:10016000A1D19588A81182A0E1A791B2A89791D3B7 +:100170009087C0A18841BA182C7B3D39097D18822F +:10018000B588D4A2C5B1992C7A1E4A3C5B91A4C211 +:100190002AA201C23BB122F4B3D3A2D5B1A208A7CF +:1001A0009B3A4E492D4B3E5A2C20996B8004C959DD +:1001B0009913C830C2A4D128B392F030C101D20142 +:1001C000C281BA78A012C815BA6B1D339C281E15BF +:1001D000AA012D8589C488B07A9A51D006D806BB69 +:1001E000216D940D843CC35BD225DA34CB485D820B +:1001F0003F85B5D128F25D4D5A0C40C110A0A7B87B +:1002000097AA05AA04B5D281981C7A9839B20A7DBA +:100210004A2B3A129D229C13D5B002B812AE7C0133 +:1002200019A20995B3A8813FA79911A83BA07E32D6 +:100230008D15D02A5D48A821D11900B380A22CA524 +:100240009D7B0290B7A801B22F390912F20984D31D +:1002500088913E1089102E12C101A95A08084C95A8 +:10026000A0828C3890839F5A9390A20A03AA23F20B +:100270000B208A25E0298097D21B108883C85A92C8 +:1002800083F13E12A082B03B02C12A939A4A1881A0 +:100290009949A3A1992B7F32E028A29009181A89C5 +:1002A0007BB7A11B4981A29000A1800A42F6AA4A0D +:1002B00000910892A1809193D3B97F41F20A1088EE +:1002C000009109818882A86B97B839902A00091893 +:1002D00000B391997B8187F40E38A108882992890F +:1002E000109938C4908916F13E11A10918808080B8 +:1002F000E7F079F31B1883AA398293F05B93919A04 +:1003000048987AD58A1810B12A97AB68A1818A4992 +:10031000A34F03B0802C11B58E3880A3992A59F4CD +:10032000891A28A382F0288A22D14E1191C30B2268 +:10033000E1000C38929B408A97A84D2800B4919C0C +:10034000591A0182E292993A8812D1010E293B8210 +:100350002C8182E202E19399119893A01B3A4B956C +:100360000D9588A22A8A22AA24B903B0917A92898B +:10037000D419A0498C228C228B8108A127BC34CAB5 +:1003800015989020BD418B13AB2829182BA15E082E +:1003900078A914BA385D0180A103BE588D591B108D +:1003A0002B010BA17900A9A57C2B2B178A901A7021 +:1003B000B903B36E094A21E002B22C883A05B98527 +:1003C000A85C1A39839C859939B138AC7B196B02CA +:1003D000C280A07CA41B97C084A923F038E5A1A00B +:1003E0002A5BB78B06AB05AA6D208A25D958A830A1 +:1003F000E389968D31AB44D95A948D300D5BA69A22 +:1004000032F38A017D95AB69D59897AD42CA50D138 +:1004100039E51D389B7AB43DA52D95A95D5D296907 +:10042000D25DB50C858D598939A7D381F53DA58D50 +:1004300041D118B42F120E5A800897BA33DA5A0AEB +:100440007BB68A940B4D4A3E42D823F31C813E135F +:10045000C002D49A038E59A820C7B984A959A119FA +:10046000A7A9839A7B082A87B092985C001A03B1E7 +:10047000A2A14E280A11A289959B308C5993999676 +:10048000A938994B848B05A911A03D020AA48808BC +:10049000019D318D12A180A40C183B8B63CC41C10E +:1004A00081918091918000818081908080818008FD +:1004B000A92A57CD5A94922F00B2284C93D03921B3 +:1004C000F2AA5083F01B13A48E29A3006AB3BB5871 +:1004D00016AA2BA28378A0A9982540B8AC981551EC +:1004E000999D8993435A88DA8903443B88EA90911D +:1004F0006220A0BDA8883622898CBAA01274000A96 +:10050000ABC9910372008BABBA822572010BBBCAD7 +:100510009122651809CAB998243530A9ADBA991441 +:100520003435899ACBA890333648909AC9891432C9 +:10053000468989BCB9981333738889CBA9B13346EE +:100540004008ABBCC98122443188BCBCA99142346B +:1005500041889CC8BB08134343309ACCCAA80925DC +:1005600021441808BD99BA000442242899BDB99ABB +:10057000020A4319439B89FB18D22A14014212181C +:100580009CBCB9BA89B99AA2515534224111199C1F +:10059000CBCBAA990111121B989A82262342201ACA +:1005A000CACBB1135343109ABBBA922334119ACCDD +:1005B000BBAA03314318189A9A8A980808081900A8 +:1005C0001008188A088908081080088A8800111104 +:1005D00008099A8900003020180A8A8A0802103017 +:1005E00019899A898000111808098809088918084A +:1005F000989191881008809000010100B8A990A0FE +:1006000089808172488D0C882950080C8988402285 +:100610003D1BB91B10E99976120BABC92034291C7C +:10062000BB8B444129CCBC8A167038AB9C801151DD +:10063000888D98815281ADAAB1273409B9E8811417 +:100640001098C99832310FBB9973311D8BAA204382 +:10065000288BE9001489BCB42372A99CA18125814F +:100660009AB3C021E0BB71221D0AA929341919D0FF +:100670008892D9C42262C89AB282269089A0990928 +:10068000EA70232E0A9A39232A28E889B3DA7103FB +:100690002E09A939140929D08A91C52115C989B310 +:1006A0000123980D989D0A71212D8AA81116888022 +:1006B000C88A8A61234F098A20020090E089A970C4 +:1006C000213F0A09281390A0E1999870200C0B9300 +:1006D0008206A09A899C170130F0A811823C08AAD2 +:1006E0001AB071238F89931023E80B81AB47821EC8 +:1006F00080A84083A988C11C878029B09C51920A98 +:10070000A1B81AB7482BB80C53A10AB2BB3D701060 +:100710001DA19221880F0098969301E90931000AE2 +:10072000D2998A7110C890952A3CA189B17010BAEB +:100730000987191BB38C961028F81922A18BB3AD29 +:1007400054911F93A139A1AB38E70918D02924C9C6 +:1007500019809348A2EA4002AB00A887290D8101C5 +:1007600028C88A0973C19A11122F9090870A1C8297 +:100770000129E00A034980F84811D929A071C3D999 +:100780005802BC10B873D4DA4182AE11B872D4D911 +:1007900042A3BE11B279B4D852C4DA29973D2AC017 +:1007A0005801F94B169C3D854C3DB10973D09B54C3 +:1007B000B0AC02B73D09B17908E01A73C8AA27089E +:1007C000AE109178C4CA54D2CA10973D19C44D19BD +:1007D000C10844B90B15990C831818D25A92A93044 +:1007E000C19C21072E80A23C30D12999C8372AB953 +:1007F00092488C93393CC88158B05818A80A83C9CC +:100800003C149011C288A95A8201B0F48B108A72EC +:1008100008B08D1090058C10C1593AC28912D008C9 +:1008200038B4AD32D2189181B948B983A97903821D +:10083000A0AAAA868B2508A0B8934D4A23C20A0A0B +:100840000B88B4B149551D20B090AD948868090358 +:10085000B919983A1EB78A78900880809E28B60801 +:1008600020908919D29A098A4423996E02A1A90875 +:10087000B15B84108109B13D81C8906A959292095B +:100880009919899AD128872A3091929F901C02C188 +:100890009340F31D21989188911C12B94B40B31ECF +:1008A00028929820D59B4992992994994B0182A826 +:1008B0001B102A2AF2805A91B429A8D21A48A8817A +:1008C0003091F32B2D885A01C20912F83B59A39A93 +:1008D00048B0195A11B182A00A897898808204D848 +:1008E000895A00D02291AAA3282C2AB3010C2A30BD +:1008F000984B91091892882A93895C92A389A389BD +:1009000030A3B94B20D11A93884B21D13B4AE298AE +:100910003888AA48118A0B35BB48B02299001018B4 +:10092000BB6981809D79929A6B119A3095F109206B +:100930008B399032E1D21A101C8300A6AB14929925 +:10094000B9270B0A815C4B84C03B02919997C13F48 +:1009500021A83B000889023E883911D18184E191A8 +:100960002D22E30B94C40C29958990830E3A0289B9 +:100970008A17B08108B851B08D68B6A829900208CE +:10098000E1191008AB7A11A083BB7A11B39AA79131 +:1009900008A828F7A83D291882C3980A5C3891D482 +:1009A000A28B49882A39D4918D4890109A832AA025 +:1009B00049B843A9F42E1A48B121D0931B194AC251 +:1009C00031F01009A13D04B3AA283B2B9492E48A8C +:1009D00081859BA789805D02A3AA15A98208A8200A +:1009E0009A5893B499180A003FE9309A372141C0C8 +:1009F000CA0A9DDB27639C980209ABA08377A8985D +:100A000022999D9A877A9AB46999C88073C0C9451A +:100A1000B0AD08073D0C844A1DA81973D0B955B371 +:100A2000DC03C150D5D95813FA3AA170A3F9582361 +:100A3000FA2B855C00E05930F93C854D1AB53B4AEC +:100A4000D02C052D3D95195CC39A170B4D95885DEB +:100A5000B4A937C01E05A14DB5B963D00D34C31E6E +:100A6000A4B964D2BB52A49D01C053D2D95195AD53 +:100A700000A071D2BA6194AD10A070B19B25A38F74 +:100A800001A0179A1C95822F91900169A3C84098E4 +:100A9000B9288071B0B86189AA008872C19A349966 +:100AA0008C1098972C28B22B28E10819932A38C16A +:100AB0008A48A1B14C82F01184019C08900A8A17DF +:100AC0003C10B81A01922A72B088A88B9925AB11F4 +:100AD00022759999811A9D92810290131E40A29BC2 +:100AE00019A68A1A909371A89A24C0090AA62A10F6 +:100AF000B01029C182E82B72D08038B1BE51908CE1 +:100B000040A08978989840B2AC60919A31A09D60DD +:100B1000A08921909B4082C83A10D85880C0598142 +:100B2000B03B10984C14D12B01B15C83C24C819125 +:100B30003D82A13BC2005AB2B259A98178B1A34A01 +:100B4000B9955AB1915998B36999B278A0B2799090 +:100B5000A14990B07981C04980A030A99050A8B334 +:100B6000388AB06910F2093BB5810BA50A3C96A002 +:100B70002C12C02983D03C12C20C30C21C40D29827 +:100B80005A91912B94A13E82920B88148C8017AAC3 +:100B90001A51D19049A19978B2984990A239B88256 +:100BA0005AA0C52B8A060A0A04890BB61B3AB73924 +:100BB0000AB92ACDB167188B021989E88BA9877207 +:100BC0009AC2111AD88A0876A88A1300AD81B9751D +:100BD000B08B26980C829A37A92D85892CA48986FA +:100BE0009A2AA33A28F0190A17982C94893BA389CA +:100BF000907892C94882AB4989B72A2BC31949C159 +:100C000009987092CA4883AC20A833B02F84902DE5 +:100C10008299841A08C15902E8299878A1AA3491C6 +:100C20000F8298970A0AA3302AF8190A71A89A2500 +:100C3000009D8180934A90B07090D8180870C009C8 +:100C400023AA0C01A963B11C83993E910148B90004 +:100C50002899A06309BB050999A0D36C24B11B8214 +:100C6000D83C04A039B28A39B22083AA4C089789AB +:100C70008901B10A40B850249C09A02999A96111A1 +:100C8000BA1025991A91B9691AD8252BB825A9093E +:100C900015AA9171D9013A90039D01848B8B63AAA7 +:100CA0000B51D0814A99850A01D31D10B68A2A8436 +:100CB0000A90960D1803A898139C2A97992B0499CB +:100CC0001C05099A971A89951A898228C09078B2CA +:100CD0009A6890A02189908259C88860B88A62A9D0 +:100CE0008A338ABB16189C84288AC24909B0221903 +:100CF000AC4298AA33C188941C09119029901B20FA +:100D0000A11C33F829018A09418A9840C4998902B3 +:100D10002981A83B010A1081994A90A22B839A4904 +:100D200080A03A88808299010B049B119829801930 +:100D30003BA49811990939190892928A19820A29B3 +:100D4000921B91905A8180881A008A5AA38929009F +:100D5000092A92802D20902D03A938B48A1182C0CF +:100D60000911A4AC15A81B1290A68A890330B0AF54 +:100D700000A9E274189980BA9FC9A37788A922298B +:100D8000BC0019DD9758A8A0429AA9220AFB4788FF +:100D90008B84180C91201DC17880C83083DA2182A1 +:100DA000AF85080BB3311BF83018DA16009D83109D +:100DB0001CB3102DC05001E93003CB2183BF139227 +:100DC0000F83812DA3883DA78A4BB32A48D11A18D7 +:100DD000D43C18D14882D82880E24A01D84092C930 +:100DE0002080E23A01D84882C92880C61B3BC3193B +:100DF00039D1080C15983CA5091BA3088D70B3AB1D +:100E000032B39E21A0C44A92BA70B2AA28B73C82DB +:100E1000B03992C82A04A968B21B01928B11B11B88 +:100E200001094200823DE10A909B4AA4154191BD0F +:100E300000A989048039A4280AF82080828B03C283 +:100E40003C81AA34B92C902410980BE2319F911266 +:100E50000999143F92820DA1861D01A23C92082B94 +:100E6000B3885C8390889138A29C19B61B5AA4B3AE +:100E70001A10F02A12A91C40A5981A891A25B92E11 +:100E8000138910C8950B31BD50C13B84AA3A22BBCF +:100E900001B70A19819A69949A81A0319B03810A4A +:100EA00090813CA4981E13081C82098B03080C1225 +:100EB000389B11080C02801C21818091A9193A8865 +:100EC0002B58A3AD40A39C30B48C58A20C03A88827 +:100ED000219889831A081908911888A1290099294D +:100EE000208A29808A39810B31A20D20B12A83B84A +:100EF0004A82981901892891191B00801C139009B6 +:100F000009000908198288888108099209180920AE +:100F1000C20A000811A0801A918818929911A101A3 +:100F20009091881A03988818A39000A08109929143 +:100F300008808090982893AA3A84993AB6991882A2 +:100F4000801A180819A18A68901B81028A31C16829 +:100F5000C9BFC99673C0BA638ABA129AFA74B2BB8F +:100F600052919D12809CB074A0C93380BC1381AF94 +:100F7000A7191BB24019F02801DA5192BC22820F46 +:100F800082801D96893CB40839D11900D14983D992 +:100F90003884BB40919E33B10E04902D94892CA6C9 +:100FA0001B3BD22820F03A82F05893DA5894AB30A9 +:100FB000A3CB72C29D23911F12A01F05894D9409D6 +:100FC0003BB40A3CB62B28F14902D82901CA71B4B6 +:100FD000BB32949E11908C61B18C23A10D82988BB1 +:100FE00073B08C14890B83890C17088A92100AC17C +:100FF0000820C02031BA0A22B909B31B63A30E012D +:10100000B19A21951BA5298AA81188C94028F941C0 +:10101000028D82903C92A99C270929A28B13B38C44 +:10102000BB073808A818B1203AFC037891AA319977 +:101030002B31F80A45B11D02991A23B89D16893B38 +:10104000B68A18938A1BB72B00A43DA3A23C90A399 +:101050007AB29169B1803991D859A18858A189296A +:10106000B40D31C03B22BA4994BA5A949D30A30BB7 +:1010700010C22C21C13AA3C850800B18928D23A214 +:101080000E11930AA0921C94A12800AA58A199209D +:10109000A18921A20A02B808019910019800939A27 +:1010A00001920A92A20891911998010880009180FA +:1010B0008901A00883B081908298910800A39A20AA +:1010C000909208808189918001980109919288808D +:1010D0000880919108888191A001809800009090EB +:1010E0001888029090801888810080800990801173 +:1010F000909088089810009092009908029A109198 +:10110000818088819008819008009018089192A1B0 +:10111000993892A83A938880828908A10A119190FF +:10112000089180818882800880AAAE91E778A8A182 +:101130005099BB0AD472C2D84091BA4288BD987502 +:10114000A98A06098A94119D98072B8A93488AC117 +:10115000320BF8052A9B92608AB0323CD90528AB45 +:10116000A2510BB8242BD905399D92220CB0250B26 +:10117000BA3618AC83218E91138CA96108C912125A +:10118000AD8121ACA26189C82210E91128BC971851 +:101190000BB2313BF82018BC07188C92211CB128E7 +:1011A00028F88439AAB26189C82010CA0270A989B6 +:1011B00042999A1100BB974889A82209C91000AA30 +:1011C0000731AA89028C9901111A26891990A90A56 +:1011D00085800821098BA71A8C9110089203388BFF +:1011E000A222DF81119899144099CA129B984182DA +:1011F0008A23182D9BA028111A1102918A100D9A8A +:1012000023059A2A118A3E049B9935829BA2938AD0 +:1012100089840C9926019D01820C19149B88248ACB +:101220008C96190988800929219B1B0408980919A3 +:10123000882128B989419A00039E00042C09913025 +:10124000AB80408A985188BB03000C820199A204AC +:101250000A99A23899B41198B83388BA04808C835B +:101260000289B02208AA951999A32009A90489998D +:1012700082390AA30008B00289A08201889001A0E7 +:1012800080948908902992A11890980181988001F2 +:1012900089808298088000888000908080019881F1 +:1012A000A288800000908081908881900910008041 +:1012B000A081908000819088818918088190808029 +:1012C0000800900800A28008888192890091088017 +:1012D00092809088018890819191A100889081806E +:1012E0009081189188008880000098000199000181 +:1012F000A88000088902A1981092A800819080819E +:10130000809080800080088880828090009091800A +:1013100008A289188198109188818809818090821B +:1013200001898882980810A28988A0BCF277A999BF +:101330003589BA88B077B1AA4390AE13008D02A860 +:10134000AA74A0AC4280AC03119BA9BA77A1BA528F +:10135000909C03001C90AA74C1A941919C03801C1D +:1013600080A972C2BA51919C13901C809971B2BB32 +:1013700061908C13881C92AA72C19A42A08C048836 +:101380001BA29B73D18A24A80C04881BA39B64B85E +:101390001C05992B95892AA28A151999A2419BC1EE +:1013A0002129E918021A48B31C21C02D82A02C82E1 +:1013B000995382AC28839E980209B9112531AB1844 +:1013C000379CA983089C830221A8984319E92B1311 +:1013D0008E80914080D82020B939B41D81A0390178 +:1013E000893088D86088B904081CA1212809C9332C +:1013F000198AA3182AA9182118AC12802BB318290E +:10140000901989120D019229C12019D0120A801950 +:10141000110B00901889192109A829080911808940 +:10142000090018098118A18A2091000988180889E3 +:101430001008080808081909000918000A081919ED +:101440000800891009081008B81020998820898997 +:101450001028199080189829180890880000890988 +:101460001009190800880818109098190928188977 +:1014700000088829080009088019880008800809E0 +:1014800008190808188088000888180009881008BA +:10149000880919800810090980081809191889187D +:1014A0000080090009280A00191A08108809000894 +:1014B000080819088808091818880008088800080A +:1014C00019080809008808081918080919000818D7 +:1014D00088880800080919188800081888881008E2 +:1014E00089000888081009880939080819808810B7 +:1014F00009080919080800808808000808880800F9 +:101500008091080808088008091808881808808849 +:1015100008000008880808891818880818080808AA +:101520000900800808881900081908881808881810 +:10153000808819000929080880080918080918086E +:101540008899B9B771B0BB72908D8289E97290ACFD +:1015500014008C92103BD10039CAD975A1BB3492CA +:101560009E82012CA2884AF40A20C02903CA389519 +:101570008B11B21E933819F01011C918149B080270 +:101580009EA37088C93102CB11040C80910D971A6B +:1015900018C13901D93804BA2A83AF27981C83802F +:1015A0001AB21921D81902D937888B82110BB010C1 +:1015B00031CB8822A9857080AA1001BC08830C90C9 +:1015C000833A061951A88B92899F929838930951B2 +:1015D000910038CBA040A9988928209A2119080A9F +:1015E00008A1499A192A3090091089000988803881 +:1015F0008A2C4A3A8885B22E8011B6C19088489AC2 +:10160000118D322F10820C108A01880C942D1992A2 +:1016100012B4A93B31C1A3A5E119109193BCA279E1 +:1016200091D4A20891B4039E1A11839B3E3B20598A +:10163000B097B3C021B1C5D11A3A118B202C58D123 +:10164000A490A4D1922888A9303C9A590895B091C9 +:101650002D5F1108A82A2038CA10A7829D28120AD7 +:10166000CC032808F9223B2F2A2E489292191D20DC +:10167000008EA90612AAA35689EB901390D084126B +:101680008880123A1B057393808088FFF808080849 +:101690000073AA991790B903788088E292AA08018A +:1016A00007B1A31199E132908080F388F8080860AF +:1016B0008C800690C1803808A9A280B1880730A02C +:1016C000F5880808BB7080D0083188F180490C0883 +:1016D0000480C80803B8007088080808BF1319AB55 +:1016E000806291F80824D8080480C80812A1D24862 +:1016F0000808E81490E1821880F180498B18159948 +:10170000B1807B808329080DA133AE9124908F0096 +:101710008480C80831F18012D10290808F10390A7C +:10172000C50808D008480C08081908035900808823 +:101730008F897808C48089B180418F008080804182 +:10174000D218088AE114908E1390AB180708C800CD +:10175000801A01970080809F01490880808F08804F +:1017600007B808080883591880808DD150880881EF +:10177000AF080080808459E00823908088080D48D5 +:10178000808080FB190080808047E0080688080878 +:1017900008080F4880808F0080808080807B808454 +:1017A00083908080808088080808FFA080808080E7 +:1017B00080087B70184A180880808088080AFFA477 +:1017C000C008080808080827780F03808808080858 +:1017D000080808F2F598B290080808080297B69829 +:1017E00002900880F488A9159080F3A3C1B29008F4 +:1017F0000808080865B9203A18A1F14908BA7D49D6 +:101800000088A88482E08808190808033E1282E252 +:1018100028089019D1B78B3C14990F11290E182B59 +:1018200019010A3C6A183B2C391B79009C202A1AA2 +:101830003E1A591C094910AA5810CA183909799931 +:1018400080320DA82518AA0028098089413A1F9DD9 +:10185000113A0804B9BC328B0B61149C8A480840C9 +:101860004999988390C8320EAA1941A0A81421BBA7 +:101870009B8700A5878AB01791A0B3C28A0B218EDF +:1018800002610BA91113B092688E0002B29180B26E +:10189000DB96B8D11700A0A4A2B29304AA0B282FFC +:1018A0002808A4B2A1988F1B4A682B0B0158098203 +:1018B000124DAC28691B1C2A8293C1B1100A4A2917 +:1018C000E216008A8C4849A908690A88A983800819 +:1018D00032C26C1F9122280A0B8097A12B2C493D04 +:1018E0000B892183D492A2B2E5881C291119C1A2C7 +:1018F0008482DA81F7B4B1994B5A8801280AAA5038 +:10190000289B88710BA92020B8A0110C8C501B9328 +:1019100004A04A29BF3C7A5B0A2110D9006899804B +:101920001869BC10590080BB2511BB088411D8B3BD +:101930000483AA977920888FC913199C9080080086 +:1019400062184E0C71900CA78808009B910818B281 +:101950002302FA8418E0078088D1219080808F804C +:10196000813E5A1A092A2B1852908F004900808014 +:10197000F08048A1C19185B1B187808AA132908061 +:1019800008AF88780D1880102F1884808AA10690DF +:101990000808D801490E18805B3D1885908C1813F3 +:1019A0009080BD185090C0808680D1885900B803BF +:1019B00018088E9016D000919329B98027808E0840 +:1019C0006908089B184A3C9181798B19179009C1C5 +:1019D0000490809D18149B9180780AB1878089B10A +:1019E0005880089E18409C1880580C80059008E18B +:1019F000118088BA18780D1880588B80878808B8AD +:101A00000408089F183199C1883590F00219080818 +:101A1000F3080808F00848C18080308C881790804F +:101A20008091080880FA08188080800728D81688D6 +:101A30000808080808080FD087999188017A98004B +:101A400022889288080892909FF881900808007078 +:101A5000A8B72080C4900808808091F6F18080901B +:101A6000080806C1938490A1A4A280880808A84F02 +:101A70002F09158C08082A08034F2A201999058078 +:101A800089C690089AA70B8002B91802C3994033FF +:101A9000E2092B86908E12808AA309F0851BB08004 +:101AA0000131E2913D20B294208AAE98700A0A3C3E +:101AB00002928008D0AB7390D229BA807828B0996E +:101AC000958392B90380FA22419AC9C202529CAC12 +:101AD0001311B09780B1A9833708BBE1050199B90B +:101AE00082418AB12300CF985138BAC820519998C1 +:101AF000A09421C0A183089D94519BA290A8712C11 +:101B0000BA02500C90318AA920124A3FA08206A046 +:101B1000D0010190991051BA9C044008D981528A91 +:101B2000F801280A89A15389C8A40518CBA85338FD +:101B30008EAA124089AB81500C9843299CB934700D +:101B40008999C88610B9A208928A39351C0D0027D8 +:101B500001C8A091410E800A8813A0A225A9C946F8 +:101B600010A9A2982080B21DF0139AA359A992132C +:101B7000410F99306B01C81019981C1A702E090278 +:101B8000283E2C88320AAC1181388D2F3C591A1806 +:101B900088311DBA5218AB98339C0932BCF420BC72 +:101BA00095319A9D40009A404B991313C9C988EB0F +:101BB0001921C8A809F7309D8263908ED259008000 +:101BC0009E181A080259A8A0804A927008F08588C9 +:101BD00008080AD105B902280D90080804590AE13D +:101BE0000590808089E1840A8020D90808008378E4 +:101BF00009F1039081900BF184089882F00009802C +:101C000085290BD1249882900FA187899218D080C2 +:101C1000808007808D00488928808F0831BA788AB3 +:101C2000918808007800F18308088080F0881917EF +:101C300090C008819007918D1838080808CB1807C4 +:101C4000B4089B0887B083290BD10790800D0859F1 +:101C50000A881A788C2A2A1858088D10490809E130 +:101C600085909A08068992C19015900D8059008040 +:101C7000D0804809C18841A2F008149089D12290EF +:101C800080BE18339AE18086809B082690808E045F +:101C900088080BB29619C08080780AA1103900809C +:101CA00088E300880FB18078C008083499E1831870 +:101CB000818808089F821299EA0080808008434F3B +:101CC0000841098A4080808AAF78808E008059B0B0 +:101CD00008081029D28428899A780808080DC17943 +:101CE0001D0088080091010B84120948A21B2EB226 +:101CF0002590AF00209E1A591A0A08222A2E011296 +:101D00003D09048E00129AA92401D91A3B483F08C4 +:101D100000183D88821A38A1A02A72E0892123E99F +:101D20009120A4A0AE14A28BA887800891B1C332E1 +:101D300002DA9A3613BFA10408A9A2010121CCA896 +:101D400050408BA984148ACC11592C0A08304B1BA3 +:101D50004B8B1452BBA05100FA813480D9A283204E +:101D600089A3C89052B9105199DAC83720D9902167 +:101D70000098200DA8430BB2071AABB914720CC916 +:101D80000131919208BC0369B9327A9A898A337118 +:101D90009E9802100010BBA444AE004089AB8102A3 +:101DA000239CD90383A313CAD1420CC31491F0918D +:101DB000819301DC984100818CA84519C91338CC66 +:101DC000984309909AE0141B1838E891590A023890 +:101DD0001E9B9611890BA907819011ABA071A8A237 +:101DE000202AFA93501B1B0A93791D81481D889263 +:101DF0001020B01F0B30780B882931BAF22290E303 +:101E0000C0A116B8A111A0109EDA52739009FC036C +:101E100048080AF88083188AB0080472808F9050AE +:101E2000808808DA1885028808F8807909819A087C +:101E3000429019189DC033A3D2029F908060B89041 +:101E40008008087280BF1840A38808F08808349082 +:101E50008F08048808A8A187080C806A2E48008D86 +:101E600000219C3008F1002AB29027908E10119921 +:101E70005908AB185191892F90023F0803080CA113 +:101E8000058D31900F1885981808E1820D180139D9 +:101E900008F1914B84908AA1860A0288D8001B1809 +:101EA000817008F00039A59089C1869A05909C1828 +:101EB0000088007808D00219B79089C1858C1490E9 +:101EC000AA1831F1914908D18498A5900B9086C346 +:101ED0001908D182B19007808D18380D5A188D18C5 +:101EE0008013808F083C4C185908C18590808088E9 +:101EF000F18831900F08049B0015908C80329080FF +:101F00009F480D008038198D080808053908CD1440 +:101F100019188DA1078C00803008AE1819508080E8 +:101F20009F3190080F08488C18082390D9022A592D +:101F300008080F4900808E08119A1808379AA006E1 +:101F4000088818080808EC518809E1880808080082 +:101F5000580C15819A810490808080BB78BF080856 +:101F600001A8080875AAA18351888A04900888D41A +:101F70009188FA918598B18008129218739829185F +:101F80004A9E80798B10398B9F08359AAA203B8313 +:101F9000582E1192910C814219BEAA16488B892A9B +:101FA0008B523B8F0A22109F001329C9B014608AFC +:101FB000C002811998999144A9BB88532A8DAB140A +:101FC000708B80218990808AB723B9B9E005159973 +:101FD000CA83600B09288E0032ABB1130A8A781BC2 +:101FE0000B49293819B2520CFC30698B90430CAA6A +:101FF00052A8A128399CA1302329FF012098A829A3 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3f-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3f-.bin.hex new file mode 100644 index 00000000..5ef7e119 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3f-.bin.hex @@ -0,0 +1,513 @@ +:10000000288479ABB3261AA88080122DCA3139C949 +:10001000B02270200F8B325988008CA9212208ACA5 +:10002000C99194870498D9923803302DAF888342C0 +:1000300009E9A82082334E9B013988441ABBA0925B +:1000400015429BE8A291B6138CA80900221133D364 +:10005000F8CA15112D0B894939398C1290F93229BA +:1000600090280F9986118AB9A20700A19029BCB7E0 +:1000700003B2E2801A9B35180BB09327B9A23599C9 +:10008000D802891A1207AC9A42908929878A0B24D0 +:100090000011C3D98304881B0F801D89B3C508993B +:1000A000A28329FF51170808EE105919188E080865 +:1000B00030093ABC185289902A8A83408C8322CE18 +:1000C0009810081898C84208A22110815A1E8888E2 +:1000D0002B99294C199CB007329A9085C1025888F7 +:1000E000947E9D113B242918FD00481A490AF1808D +:1000F00022B928B88154F83190AC1868B59008D06E +:100100000020080BC00852B9A16088C2B827900E21 +:1001100000200B59009E180821081E80012E08019E +:100120005908C8023980080DD1825A8028BD18426A +:10013000AD008007808AB1842880808F9081680814 +:1001400009F18128D0080807900AB1878808080FAC +:1001500018823A188BC08068C1880870808E181386 +:10016000908080F8080688080D80013E0808006924 +:1001700008B80860808808F080319188F08048C015 +:10018000080816908D00021808088F090790808AC9 +:10019000B2927D0080138088F0805880808C90809F +:1001A00060808AC1849A8008170080F084808080F3 +:1001B00089F1880130B498A9B180807490080F88C3 +:1001C0004190808F0918190068190AB91882718046 +:1001D0008080CF10590808E00800888036909C8005 +:1001E000826880808080F92490800F8082A8080136 +:1001F000708AB0007088008808088F9508088F0002 +:100200008018A0080428E800608808918008008011 +:100210008D1F3B4D09008009008082718D21280CC3 +:10022000930290B4F28299C1281F98007C190800AB +:100230000003A8906189892881B0182BF19304925A +:10024000FB9128887BA884198882581A1888A323D0 +:100250003FA835B1D982019698B8B2A48030F9B5DB +:100260008194B1A1112006C89B6801892C94B39C8C +:100270002195B19C1281C91020D27A0AA01851018F +:10028000C89A5080A8203AD280B1B4B41401DAC020 +:100290000493C39A0289E0012911A8059A9068ABDA +:1002A0004539BE8020092800F88318E88219A21376 +:1002B000E891823103ADBA60598A88491C091A292C +:1002C0002E01429D98211C1050A9A9131A6A2B2AAD +:1002D0003C0F2A120A295C0B582B902952C8B111E5 +:1002E000E38309A0B0A90928348CB823B223B395BD +:1002F0002C7A2E0900701A9AB93400A9098C860349 +:100300000F0A220189800CA236A598AD18102B1C6B +:10031000492D292AA89622C990588AA21851A2A923 +:10032000BCB87319AD2211DB0132229FC803B3B2EE +:10033000A391B1C3B1E31789B3300B0474188DBA1C +:10034000981A4AC899AB22439DE8732C87118BF900 +:1003500087009190E80803188189F8005009880AFD +:10036000A914219A008ABA3630AB081AB92358ABBF +:10037000013E094309AD084088080AAC30690C28E1 +:100380002B183991400AAD0309D1135AA9E0038013 +:100390008690A08A8D24A20320FAB5118BA70F9C0A +:1003A0007189981002C69ABA1470088BE1815808B6 +:1003B0000ABA037C1B124A0E10098806080D803009 +:1003C0001D49080E18011B5908C008588A0A2A003E +:1003D00007808E1821A84908AC181301080F9887C8 +:1003E000088D188040809E1831900880F8080329F5 +:1003F00018CD180780C800832908F0804808080C29 +:10040000B290178089D180690C188005900BA18269 +:100410006908080F08005908C0800690C0080868DD +:10042000809B1824908080F88050888B9080708EFC +:100430001808112908F0805880808C8087880AA2CB +:10044000A10799A18012D6900C0084880808C808DA +:100450005080C919519B9188170918089F0858089E +:1004600008E18020B91907808D1800490A8488089E +:10047000D80408080E80879A08083299D1885089D4 +:1004800091390800FA060880AC1833CC1808780CAB +:100490000082291AB851808080DD230808F8800383 +:1004A000C080800798A8250808B013908808080E17 +:1004B000BF16808F008081890080680C8113190825 +:1004C000E3893889F10391E1A4A3D1A0800598A91B +:1004D00018131C193889232CA8619AA7A2A2C9B3A2 +:1004E0003211A0FD815088C8002098B1690912100E +:1004F0008D193A802401F9918393D2B3A182C0F17E +:100500000000B5020F9903091231CCAA2530AB11B6 +:1005100028A98B328E9535AAB9A29404A1A1BB88D3 +:1005200033B8DC38760B9B10B4345A9BC02208A336 +:10053000828AF2B2A014BAE1440AD891121329DED9 +:1005400080303B89112F0900111CAB36209E98206A +:1005500029202C99095800390E89200D9020006A15 +:100560001C091021B2051BE9B3133688F89302B0B9 +:10057000C1C18602B9C11109A4319E0A19203028CF +:100580008E898A1349DC8340A093BAC31748C99265 +:1005900081901202C9BA3906098D285C2982D901D5 +:1005A00060899819098258810C8E91428AC8241852 +:1005B000C1A1B59111BB93804D5B1919384BB4B8EB +:1005C000D303B699890A049308839F0931691F0AE6 +:1005D000491A82909A01397A082B286A8D395B8AE8 +:1005E0003139AF98701B9298A812599B840191B42D +:1005F000B14111B1718DD9822A9A089CB21709991B +:10060000CD471078080FB0369080ABA1904791A1EC +:10061000C891870808A09A805380AC090802510B42 +:10062000C90010202AAD902110201BEA8402018904 +:100630009F90140A88100B8B712D09310B0A081A30 +:100640003150CA9A4D4811A9818390E021AA278090 +:100650008CA201B6B3B3B7A9FA4481B071FA0853BA +:10066000A1880CE1825909A9900817000D90801605 +:10067000809C0812B97190C9184191808AF0850850 +:100680009291BD180790C181A18807880D18038831 +:100690000808E8086880080E0084880D18808040EB +:1006A00080AD1816908088E1805908088E18049053 +:1006B0009B18080061908F1905880809D1804808A7 +:1006C00008C9084390F808019827909C184080803A +:1006D0008AE180690089C180790A918821C0878870 +:1006E0000D1838800808F08059008D1803090F187C +:1006F0000129D184880D183880800D90807808D128 +:10070000801291E0803088E1830808F2828808082E +:10071000F08022D2B0802599C1811108BA04A04F7F +:100720006908B1038808F080589B1800690C0082A2 +:10073000390AB97080800888F0491880F00810B133 +:10074000808240E8083490899A24080D859009F148 +:100750002080BB080017B90800308D836188D00263 +:10076000081089F913108A8F192111A9F88031AC6A +:1007700000412E880121398AF812490BD1398A9714 +:10078000009899A0503AA898C3189CA7289E1111C8 +:10079000982A18C00153C2E0A00581A90098191A2F +:1007A0002598AE1913949B1A8B97481C09902068C2 +:1007B00000BA093809792CAA8162809B0D81041244 +:1007C0008DAB83250198D8A21302F3A2BAE10520CC +:1007D0000BCAA242390ABD9934418ABA803A3872AA +:1007E0008CBD8223108ACB82311043AEEA83630B27 +:1007F000D98238090210FAA2340AB912A3A309B5A2 +:10080000A2BCA4370ACB024009329DD91422CBB036 +:100810004393F08001918A0305A9D80111881088BB +:10082000FA8372ABB93212A28C98A10731C99A0827 +:100830004849B241AFA83600B9C202A01588C99193 +:1008400015108ACA93230A2F29818B0373B0F0886D +:10085000A397189C981330AA918B0001593C1B1E3A +:1008600088612AA890E20501AABB13539A8B49AC70 +:1008700002400D90193B4321D8D1900540ABCA02EC +:10088000448A1B1A2C98710A9B8A305490C1D2A5B5 +:100890009588A89082A38288E8B204400D89B2208E +:1008A0005191BCAC6181A199A886829A9184C002C1 +:1008B000392AEA3968292C8E0311990BC80149019C +:1008C00090FB04010088990B247723FAB08682906C +:1008D000BAC004110890AA1144099A029A0B232560 +:1008E000BBF90311A6A0DA12483C0A99204A19A2C2 +:1008F000B07199F8123989B2920219CAA44499B90F +:10090000C2320AF2E11130CA801191E238BA887914 +:100910001B16999023899C0107B9087980A00A4089 +:1009200079ABC3230C9C8142F5E388D40390DD109E +:100930003288999D0806290E8080419A9A18086489 +:10094000909F1958080888E18059089B4B11490D60 +:100950008004890C180887808C0005908080D80856 +:10096000249089A99087290E808008087080AC188F +:100970006808080CA1817900B18C292590AB190673 +:100980009A087808AA187880808C80834A18BB0857 +:1009900003780BC18279A9087880C0012808808F6C +:1009A00008858088D1803080F0083080F1884880C8 +:1009B000D1821888E110B186880B9186880D0003DA +:1009C000880E00490088BA151900E8021080AF1897 +:1009D0000588AA18259B8203D80112AC069009F15C +:1009E00003908C9184A980806089B0807180C92334 +:1009F0000888CA0708089F0120808F00822D808008 +:100A0000181A3800083B28839F2110F9081086081F +:100A10008F91112B2CA8000911A0037B3C001843D7 +:100A200008EA0132B3F1B004099D8584AA98309890 +:100A3000B24A2C1C0B404900B3E11120A0A22A1F8E +:100A40008250BC0012BAA052688E9920228989BBBC +:100A5000B15501A1A9C82702B9A18499C11718AC41 +:100A6000891302298CE99244099999893371BAC88A +:100A70002100900510DA98312248DBD812529A9A58 +:100A80000910414C8B003D882501BAAA8423411FDF +:100A9000D9832509BC003180891A08A88B02571018 +:100AA000EA90338120ADE9232399F9011890222D92 +:100AB000B0920189269A9A209013748FB813319DB1 +:100AC00098229BA2631DBA151A99242BD98220184B +:100AD000391FAA26289D90221AB9332D9001CA8663 +:100AE000429DB9133808888BD93719B895109D9055 +:100AF0002329CA118A1A730BE9113108B1ABD04608 +:100B00000AB9141A9B1332FA2019B2151BAE9213AC +:100B100059A9938C0117B0A9124A0D3B38A9239308 +:100B200096C993BAA6231EC903100833DC904288E5 +:100B3000C121ACA92443ABD0119AB532CD8028890C +:100B400008403D8921081A70510CB831DBA4509F30 +:100B50009812080018B9340598A81280922B8FB00B +:100B600022ABF094999B8435A81303E0A231288925 +:100B7000ABAE4129EBBA3529B81090097430CB02DD +:100B80005099D820328BF9B08413BBE812209152CF +:100B900028B9B98373B046AEF884129AA389AF011D +:100BA000510C0B2821281DA7009F0823989B08990A +:100BB00030718AA928828718ABC227AB902788D0CA +:100BC000010093009F03088D8221AC9031A98378A6 +:100BD000AE18220B99005D19023180DE1879008071 +:100BE0008C80087900A90808179080D00021888B94 +:100BF000B18448998409C10380F93289F8005A8880 +:100C000083889A84828A1809AA7819D88017100EC6 +:100C1000A107900808E00814909B080807808E1828 +:100C2000590899008809070809D185880808AC186F +:100C300007880B8808223908F905080A9A090082F2 +:100C400071080F9015900809F1883180BC190037A0 +:100C5000908F1821909B08040B953A1BF186900801 +:100C600008C80807908B18841909E183180BD1056F +:100C700080C805908D182290AC1004D03800E18116 +:100C800029A2C1092391EB2221E980410808F884B7 +:100C90001900CA18140AAA186398D900400990804C +:100CA000300EAA224390C1390FD023190EA18058CB +:100CB000AA000618B9A10618A8882129E90331AAB3 +:100CC000C9204981A0C113CBBA0783CA084199A1A1 +:100CD0004308B8589AB4711CB9124898A8A5820D57 +:100CE00089182189A91994DA03158D9A628AB85353 +:100CF00018D91120B2920D901220BFB84119A83115 +:100D0000CAD04338FA8220A9834BA8060A89591908 +:100D10000099383B1B0D1A13532FD9824008B0910C +:100D2000A8A715AAB8140109E81100B110691B9E03 +:100D300081334A9F912100B0110ACD03332ABF9914 +:100D4000132418DAB12339B9C090848381BA090019 +:100D5000416A8DA196918380E90023004CBC033841 +:100D60002E9A8430BBB0452AAE11219BA05299B077 +:100D70003090B224D89121AA9608AE81589A0822C0 +:100D80008C083820D90528BF00318C80219A8041F9 +:100D90001D09102D1130EA9334ABAB1528BB22810D +:100DA000B8C5180A0219AA1421AC0D4A3A09202B19 +:100DB000D01492C1A0388B12080C8033A99128A0BE +:100DC000C32398C931809821AE101011AC1A384055 +:100DD0008A808B194392BAA88112290AC1832B02F7 +:100DE000A4A98B02289191A991518AD90060808889 +:100DF000B982302B2A18C81201B200B89101828141 +:100E0000C8B31490F1A380A1300CB93332AB8891F0 +:100E10002AA84139CBA12580A888B3120AAA2108A3 +:100E20001D2019A90300A289092A2980308C80027B +:100E30000A1882D81211B8A0139891299AA313A85E +:100E4000B1001909A30298992000A1818A9132A0CA +:100E5000B2A192D302A99912090198A3888010889F +:100E6000B09581A1A0B2813888D3A38891809019D0 +:100E70008080918080808001D812345213772011B5 +:100E80004750CEDB0113438B998900448DB9011281 +:100E90002210998449DCBAA81333420A9A37618A2E +:100EA000ABBA981121B1760889AAC91429C823338D +:100EB000218A838FFE80132199ABABC9276209A8D1 +:100EC0009080100089999A8980015719EB81180048 +:100ED00008010BD84733329EC908AB033090235822 +:100EE000DA998002120008999890027750BEB011EA +:100EF0000108CB1642109AABBB99B8730361889E68 +:100F0000A981339BA9002432200AAB05AFD8800207 +:100F1000222110898082BFAEB05409CB9013435474 +:100F2000289CDCA821180125318ADDA8003521097B +:100F3000BBAA9981123232120088999999A8989087 +:100F40009888899FF132DC80235322099BDABBAA5F +:100F5000880022222313111101077519ACBCAA883D +:100F60002243332AB32BB15344218ABDDABBBAA83A +:100F700088111323324676089ABC9AABA2644423A4 +:100F80001880BDBAB9988001124220BECCAA98033D +:100F90002092754351018ADB8999898880800011EC +:100FA000202011000CFC16221189ADCCA026421184 +:100FB00099BBCAAA8808AA25535321188ABBCBBA61 +:100FC000B9A880102121202111282010001132768B +:100FD00019BDBAEA98137321189AABBAA9008A36D8 +:100FE0004119ABB937221220829FBBABAA912917B6 +:100FF0006109ABCABDBA452045218A999880101075 +:1010000008A042AFBDCABA99B855332311008998D8 +:1010100098808BFD911364309ABBCA9A8802340D74 +:10102000DB9990234343222315309AFEBA9811444A +:1010300021331BBABFA989988BE90264222089ABAE +:10104000BBA99801213088A80271352189BCCABD8D +:10105000CA982343433110899BCBABAAA8988081BF +:1010600001810101100181818373089BFABABA9151 +:10107000144341218A8301819899A999999090807C +:1010800090A90013230180AAFB033333AEBA801367 +:10109000534341ABCABBB9988081808180818181F3 +:1010A00082460ABA88AB80213232211088898A9917 +:1010B0008A8A8988090808001362089BFCB9813173 +:1010C00024332331381238ACCCCBABB99910313240 +:1010D000399A1234623353199BCDBACBA800119BB5 +:1010E000012353441211000300BBDCBCAA999811E0 +:1010F00022322222112010000888890989898989D1 +:1011000089BD992323131235129DBCBBA80235104B +:101110001329BB9A0041091132288A9ABBAA8A086E +:1011200009A9025442109AA9A9182018180129AE39 +:10113000A88999BB9109911224334432189A9AAA2A +:101140009A00290A99BA9A890810180001102251A8 +:10115000001081808890A899A8A8A8989080808184 +:1011600081018101010001800081138AA881989981 +:1011700098AABA821121010188B991022533110A76 +:10118000AABB9B9A98888818101018101018181865 +:10119000000808880908880908880908880980184B +:1011A0008A0910212120100889898899098988884D +:1011B000080808000008100008181808080810108F +:1011C00008099CBB9A023231180BA80010180A9A21 +:1011D0000910212110180889898889988909080926 +:1011E0000008180221189AAA890111202010080865 +:1011F0000909881009899B99998989012131101061 +:101200000810080808880809080908090888080853 +:1012100081A80081A2B009280081803AA2B3B01849 +:101220009801A2899292A2892894A8899109119083 +:101230008489800A10B1888002881A1903A91809C4 +:1012400029A1A19388A1188019928930A8A1898128 +:101250003A824C920C27DA68C149808898151F039E +:10126000BC52BC41C858C129B42D838C24BB41D089 +:1012700049B22B968C13B940D12A948C22B969B308 +:101280002D04AB58B23D849A30E13B849D32D13C71 +:10129000959B40D23C84AC41C22C949930C008113B +:1012A00098A04902F85A02BC41B31D931A39D822BA +:1012B000088DB62A00D05992BC51A18E05880BA189 +:1012C00061AA09871D00B45CA1A872D90937BC19AD +:1012D000872DB39871DB4803BE21010E82942EA5A1 +:1012E000A868D0118A28D33CB179B2800F35DA5979 +:1012F00081E35D94A02F35D85D13E850A3E05D95A0 +:101300009C5A84BB63D81928987D85C14D950B18CC +:101310008188E62DA5992E15AC5A85CA42B91008C8 +:101320000F15BA3883B807D95983CA321DA33B8A2F +:10133000C74DB5818F053DB3209CA600BB62AA892D +:10134000342F840C089126D112F00949A3B15BA473 +:101350000C840C12A03AE853D5D3A8B97892C9608E +:10136000C8289869D34BA219B9712E4C82B05B95ED +:10137000A949A21A9835CA31A18B8873F958B29835 +:1013800039C41C11B13BA0873FA51B8000A23F853B +:101390009B20A48D14AB30911C01C44DA50C119160 +:1013A000A830A08849C23D924BA40A0806AD130C90 +:1013B0008120BA33B8D070C029828A1B878B31B0A4 +:1013C0008960C8138E03A930B29F35BA2080802C63 +:1013D00090972F02903BB40E25CB40939E21908195 +:1013E0000D03080E84099008840BA83319FB45A847 +:1013F0000AA70B11D04A01B951A89823AC20B32BEE +:1014000012F978988814AD2288C04898820C11A1EE +:10141000181E858B1834F95A93B979B48C59D42D88 +:1014200012D22B12D969B2193CD51D11A14BC32A76 +:1014300081A07BA58B30D31E22C12B03AC34C938CD +:10144000A30F22C10A06AD42C10A14AB120B10A5AC +:101450003FA58A19049C841B80011C8023DA034A5F +:10146000C0843F921880AD62DA5880A84988922BD8 +:10147000109904AB33F051EB53CA2010B93810C99E +:101480003109A2C17AD32A9219F16BB40918A30DBC +:1014900020B128A031DB51A8081189D27AA20919FC +:1014A000830D02A969C2499A971C93098839D40C03 +:1014B00012A82B15AC31989010881BC71D029939C2 +:1014C000920B11900928E40C12B95892BB71AA84AE +:1014D0001C82801B832BE050C11C05A83B949A38CA +:1014E00092BA70B1883A82AC6895AE23B83C83A0BA +:1014F000398D860A81A059B58E23B92A049A18918C +:10150000010BA1071D9218808D04088AA252BF11F9 +:10151000812E930B40C10922CA2101BD25A939B2F0 +:101520008868D028009C34B90951D01809948A10D1 +:101530008A060D0280AC61D11A12F13B83C04AA425 +:101540009A49910911C039A1A37D828819A33C91C0 +:101550000818E33E839A4AA79A38A28912AC32B897 +:101560002C07AA30A20F15B938929B239A93091C15 +:10157000C72E029089031D930909A4199B439BC29E +:10158000591CB71A918814DB61B81810A0001AA46E +:1015900099218C13AA40F844CB33B88932C08941D1 +:1015A000B9002A21F06AA12A9078E13A92983B95F5 +:1015B000A948A010AA35BB40919A1149F13A9191DE +:1015C0002C940A11C879B0302FA51A9010A85AA5EA +:1015D0008B21B21E059A10088881804D958A02B031 +:1015E0003B838A10819A7AB50B13AB3887BC320BD8 +:1015F000B43B90932DA170C930B33F01A13D03AA24 +:101600003A13E83880B12A06BA4D078C11901A10A7 +:10161000B1041E930A30E84A978C11910B03A0196C +:101620008902298DB7199008840D80112BBC378A47 +:1016300008B62C82AA68919A33B99835AD22C1298F +:1016400091B970A80813AF1281C940A0812C839969 +:10165000020E968A0014DA68A29A68D21A20D21B67 +:1016600012B03B82AA60C11808E32C01903BC32A48 +:1016700081A86AC41C12B13F03B83A83AB35BB40A2 +:10168000A30F13B93A859E22B01904AB121B82A393 +:101690004FA78A18018B951B80101BA214CB233BEC +:1016A000E1834EA32A089D53E93090983898922BF5 +:1016B00002B9059B23C971DB45BA2181B93801CA3A +:1016C0004189919879C149A208D079B31A00A22E14 +:1016D00011B128A831CB52B91821A9C179B22A1861 +:1016E000B41D838A40E139AA972D93199820D23EE0 +:1016F000029929959C139980028A19C71D028A2094 +:10170000B21C02981911D23D839B23C00C53CA838B +:101710003CA3081B933AF960A82AA78A3AB68A2004 +:10172000A19941C08029A38D32B6AF149A2993980C +:10173000398CA72C819840C21F049A18849A109162 +:10174000000AA1142F9129800B86089A9341BF03A8 +:10175000904DA41A11D01922CA2101BC259B30C179 +:101760001931F820888B179A1933F82809930B023E +:101770008B052F83980C36D83A03E859A3A959A3AF +:101780008B48A10912C958A0805BB50A18A24BA2C8 +:101790000818C26C839A4AA79A38A28A22BC34B924 +:1017A0003B879B31B20E16AA38918C239A820A1A73 +:1017B000B73F83980A131E9319989419AA43ACA3B0 +:1017C000590CA71B928013FA50B01810B0110B944B +:1017D00099219C13BA58C873EA32A90830B08941DC +:1017E000C9020928F15AB31A8069F22A92902B95FE +:1017F000A949A118A834D9309099213AF14AA29068 +:101800002B960B02C859C2201F950A9101A85AB6FF +:101810008A10910C15AA11089801813F958B12B07E +:101820003AA48A1881A969B50B13BA3885DB5189A6 +:10183000B42B80820AB270D930B40D12B22D03B924 +:101840003A13F83808A02B14C93D279D12A11B019B +:10185000A0232FB50918C04A979C21918B13A0197A +:1018600098032B9E971AA119038F00110AB8549C54 +:1018700008A61B93B878909A42AA0933BE21A04AC1 +:1018800081B870B80003AF2180BA70A0811B849921 +:10189000010C978A1002BF58A28B58D22B20D22C51 +:1018A00002B13A919A50B03909F41B82A13BD32A74 +:1018B00081894AF40B12B12F13B83A93AA25BB4180 +:1018C000B20F23B93A849F23C01A03AB131B939121 +:1018D0004FA70B01928B951B91281BA313DC231A96 +:1018E000E1834EA329889B64D93090993898823C33 +:1018F00083B8138D12BB71EA44BB2208A93081BAA8 +:10190000359B829978E23AA118E159D21900A12CAD +:1019100012B038A821BF23C928019A9078C31A1899 +:10192000B40C948922F128B0952E9319A011C14DC1 +:10193000839A39958D139980000A08C62D848A28C8 +:10194000A02B83981001B24D940D12A88B62D882FF +:1019500019B2100C032AE852C819A68B28B58921A0 +:10196000B18B42E80838A38A41B39F069B28B599FA +:101970003A9A872C819840D12E14AA29039B109162 +:101980003899B3234FC229918B0709988231EC050E +:10199000893CA41A11E02911BB4101BD24AA38C217 +:1019A0000813F931898A17AA1823F82088948B0222 +:1019B0009A058D02888A37C83A03E979918939C333 +:1019C0001C30C11901A948A8186BC40918A24BA260 +:1019D0000910B07AB58B30C58C21B11A129C24B98C +:1019E00029A79C30910B17AB40A18B249B831A0035 +:1019F000A72F839919832F821A9082199A36BA01D8 +:101A00004A99C62BB30112ED51B81810B8102B9497 +:101A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:101A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:101A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:101A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:101A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:101A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:101A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:101AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:101AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:101AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:101AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:101AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:101AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:101B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:101B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:101B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:101B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:101B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:101B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:101B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:101BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:101BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:101BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:101BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:101BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:101BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:101C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:101C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:101C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:101C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:101C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:101C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:101C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:101C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:101C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:101C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:101CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:101CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:101CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:101CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:101CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:101CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:101D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:101D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:101D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:101D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:101D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:101D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:101D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:101D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:101DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:101DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:101DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:101DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:101DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:101E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:101E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:101E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:101E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:101E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:101E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:101E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:101E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:101E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:101E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:101EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:101EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:101EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:101ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:101EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:101EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:101F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:101F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:101F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:101F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:101F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:101F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:101F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:101F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:101F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:101F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:101FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:101FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:101FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:101FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:101FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:101FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3h-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3h-.bin.hex new file mode 100644 index 00000000..e5840791 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3h-.bin.hex @@ -0,0 +1,513 @@ +:10000000C387E000000000000000000000000000C6 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:100050000000000000000000000000000005E004B7 +:10006000ED007CBAC07DBBC9A7ED5223C9237CB586 +:100070002BC97D02037C0203C91A6F131A67C9DBFF +:1000800004E68032FDFEC93100F6CD60F0CD23EBF1 +:100090003100F62103E0065FAF772310FCCDCAE004 +:1000A000AF32FDFE32FEFE3A04E0A7CC84F2060138 +:1000B000CD43F3CDB8F20601CD43F3CDB8F20E0037 +:1000C000CD86F30E00CD86F318C6AF3203E032FDC5 +:1000D000FE3201F62105E0225DE02104ED225FE021 +:1000E000064D36202310FB213DEBCD50F2CD1EF105 +:1000F000FE01CA36E1FE02CA96E1FE03CA36E2FEFE +:1001000004CA47E2FE06CAD0F0FE0720BD2185EBF7 +:10011000CD50F2CD1EF1FE01CAC3EEFE02CA00F7B9 +:10012000FE03CA00F4FE04CA94EDFE05CA00FBFEFD +:1001300007C20DE11894213FEB0E05CDFEEACD7507 +:10014000E2CD84F22120ECCD50F2CD45F1CDD3EAC1 +:1001500020F82122EC0E04CDFEEACD12EB212DEC8D +:10016000CD50F2CD45F1CDDDEA20F83826212FEC37 +:100170000E04CDFEEACD12EB2147ECCD50F2CD4579 +:10018000F1CDDDEA20F8380B214FEC0E02CDFEEA6E +:10019000CD12EBC319E92149EB0E04CDFEEACD7572 +:1001A000E2CD84F2215CECCD50F2CD45F1CDD3EA25 +:1001B00020EF215EEC0E04CDFEEACD12EB2169ECBE +:1001C000CD50F2CD1EF1FE01285FFE0320F5217D0A +:1001D000EC0E0CCDFEEACD84F2218AECCD50F2CDAE +:1001E00045F1CDD3EA20F8CD12EBCD84F22193EC8A +:1001F000CD50F2CD45F13A04F8CDDDEA20F53826B0 +:100200002122EC0E04CDFEEACD12EB21A9ECCD505B +:10021000F2CD45F1CDDDEA20F8380B212FEC0E04AC +:10022000CDFEEACD12EBC399E8216BEC0E0ACDFEB0 +:10023000EACD04E318B42152EB0E0ACDFEEACD75E7 +:10024000E2CD04E3C319E9215DEB0E07CDFEEACD53 +:1002500075E2CD04E3CD84F2218AECCD50F2CD4598 +:10026000F1CDD3EA20F8217DEC010C00CDFEEACDE2 +:1002700012EBC3EAE121CDEBCD50F2CD1EF1FE072A +:10028000281AFE062823FE05282CFE042835FE0326 +:10029000283EFE022847FE01285018D93E000109D9 +:1002A00000110BEC210008184C3E3201060011022F +:1002B000EC212000183F3E3401060011F8EB21002C +:1002C0000218323E5401040011EEEB2100101825F3 +:1002D0003E5401041011E4EB21002018183E49019E +:1002E000040011DAEB210010180B3E490104101133 +:1002F000D0EB2100203241E02245E02140E070EBCC +:10030000CDFEEAC911FFFF2A5DE073237223225D4F +:10031000E02103E034C9210000224DE07D323FE0BE +:100320002A05E02249E0224FE03A03E0C9CD33E359 +:10033000C3B8E3CD16E3FE0120232A49E01100E013 +:10034000CD62E0380721FFFF2249E023EB2A45E098 +:100350002247E02B19224BE03E01D8AFC9FE022014 +:1003600021EB2A07E0224BE0CD68E038EB2247E0A2 +:10037000EB2A45E01BCD62E03E0030013C323FE01D +:10038000AFC9EB2A07E0224BE0CD68E038CA22472C +:10039000E02A09E0224DE0EB2A45E02BCD62E03E69 +:1003A0000138DA2A47E019EB2A45E0CD62E03E0049 +:1003B00030CB3C18C8CD92E4A7C02105E0063A3600 +:1003C000002310FB3A3FE0A7282E2A45E011001039 +:1003D000CD62E03E003061ED5B45E02A47E02BCD89 +:1003E00062E0D2F9E4444D2A4DE009DA58E3CD62E7 +:1003F000E03E01D0AF323FE0D52A45E0110010CDFC +:1004000062E0D12156E03E0138023E07770105E067 +:100410002A47E0CD72E02A4DE0CD72E0EB2A45E0BC +:1004200019224DE02A49E0CD72E02A4FE0CD72E07A +:100430002156E03520DAAFC90105E0ED5B45E02A41 +:100440004DE0A7ED5230FC7D2F5F7C2F57132A47DC +:10045000E0CD62E0F528083806ED522247E0EBCD0A +:1004600072E0EB2A4DE0CD72E019224DE02A49E01E +:10047000CD72E0CD6DE02801192249E02A4FE0CD90 +:1004800072E0CD6DE0280119224FE0F13E00C83046 +:10049000AAC9CD16E311FFFFED534FE0FE01200C7A +:1004A0001100E0CD62E0DA4CE33E01C9471100E003 +:1004B000CD62E0380721FFFF2249E02378FE02EBFE +:1004C0002A07E0224FE0CA4DE32A09E0224DE03E30 +:1004D00001323FE078FE03CA4DE3EB2A0BE0CD6822 +:1004E000E0DA58E32247E0EB2A49E0CD6DE0C81995 +:1004F000224BE01100E0CD62E03E01D0AFC93A41AD +:10050000E0FE322804FE342003AF1810A720043E7A +:100510001018090630FE4928020620783243E0C947 +:100520003A3FE0A728142107E07E23666FED5B4584 +:10053000E006FFA7ED520430FA783251E0C9CD5EF3 +:10054000E5D51110271B7AB320FBD1C911C0C03AE1 +:1005500043E0E630FE20300350180158B2C9F532AE +:1005600044E00682FE002002068078D303F1E6C054 +:1005700047D5CD4CE5D3023A3FE0A73E0E2801AF68 +:10058000473A40E0E610B03240E0B3D305D1C93A73 +:1005900044E0E6C047D5CD4CE5477CE60FB0D3023A +:1005A0007DD3003A40E0E60EFE0E7C2817E6F047C9 +:1005B0003A43E0E620280A3A40E0E61020037817A4 +:1005C00047781804E610F6E00F0F0F0F473A40E0A7 +:1005D000E610B0E61F3240E0B3D1D305C9D5C50659 +:1005E00080CD4CE5477CE60FB0D302473A40E0B3FC +:1005F000D3054FED5B58E01B7AB320FB78CD0BE6BB +:10060000D30279CD0BE6D305C1D1C9CB77C0E67F44 +:10061000C92105E04E2346235E2356237E23666FC1 +:10062000EBC93A03E0FE033E00C8D5E52A45E011D8 +:100630000010CD62E0E1D101010138020E07C53E94 +:1006400040CD3EE53A40E0E6103240E0110000C106 +:100650003E00F5C5D5CD8BE6D1C12801C5040D28D6 +:10066000072A45E019EB18EB3EC0CD3EE5F1A7C8DF +:10067000CDDBE721C5ECCD54F2F1A7280BCDDBE7AC +:1006800021C5ECCD54F218F13E80C9ED4B45E0EBAD +:100690005059CD8FE5233A43E0E63006FF200104B0 +:1006A000DB01B8C01B7AB320E9C93EC0CD3EE53EB0 +:1006B00040CD3EE53A40E0E6103240E0AF325BE04C +:1006C0002100002256E02252E02151E0342A4BE082 +:1006D0007E4F23B6F53EC0CC3EE5F1C84623EBCDB8 +:1006E00079E0224DE013CD79E02249E013CD79E0A5 +:1006F000224FE013EB224BE0C52A4DE0CD8FE5EB16 +:100700002A49E0CD6DE0DB01280D473A54E0A77897 +:10071000280577232249E0215BE0FEFF28053528E4 +:10072000013434F52A52E0856F7CCE00672252E016 +:10073000F12A4FE0BEC419E8C12804AF3255E02ABF +:100740004DE023224DE02A4FE0CD6DE02804232226 +:100750004FE00B78B120A13EC0CD3EE53A5CE0A76A +:1007600020053A5BE0A7C0F5F5CDD8E7F121BFEC55 +:10077000CC54F2F1C83A61E0A7282B0602CD43F32E +:10078000CDB8F20602CD43F3CDB8F20602CD43F365 +:10079000CDB8F2AF3261E00E80CD86F30E80CD860B +:1007A000F30E80CD86F3CDD8E7CD0EF22A4FE0CD03 +:1007B0006DE028122A56E07CB5280B21CEECCD57EF +:1007C000F22A56E0180921D3ECCD57F22A52E0CD97 +:1007D000E6E72A56E07CB5C93A51E0473EF8C60A3A +:1007E00010FC571E11C97CF50F0F0F0FCD0DE8CD72 +:1007F0002CF2F1CD0DE8CD2CF27DF50F0F0F0FCDC2 +:100800000DE8CD2CF2F1CD0DE8CD2CF2C9E60FFEAE +:100810000A3003F630C9C637C94F2A4FE0CD6DE024 +:10082000C82A56E0232256E03A55E0A7C8C53E0143 +:100830003261E03AFEFEFE123823CD45F1C13A04A2 +:10084000F8FE0D2852C5AF32FEFE21D8ECCD74F172 +:100850003A51E0F630CDBAF2CDB8F2180A2B7CB599 +:100860002005CDB8F218E30602CD43F32A4DE0CDC2 +:1008700026F30602CD43F3C179CD2BF30603CD4316 +:10088000F32A4FE07EF5CD26F30602CD43F3F1CDFA +:100890002BF3CDB8F2AFC9A7C9CDB5E3A7C0CDFE44 +:1008A000E4111101CD87F2111201CD87F23E013220 +:1008B0005CE03254E03255E02105E0224BE0CD20EF +:1008C000E53A3FE0A7280C2A4BE07E23B6C8CDAA24 +:1008D000E618F40607D5E52A45E0110010CD62E0E0 +:1008E000E1D130020601C5AF325CE03254E032554E +:1008F000E0CDAAE63A5BE0A7281A325CE03254E089 +:1009000000000001A04002B0A2F001B0A4A001507C +:10091000A5F01000B5F01880CE7003A0D21008002A +:1009200000000001000000010000000100000001C3 +:1009300000000001000000010000000100000001B3 +:1009400000000001000000010000000100000001A3 +:1009500000000001F0E5F10AF1AFF1DDF26DF2C83F +:10096000F3FEF41CF436F363F181E9D9E9D9E9D94E +:10097000E9D9E9D9E97EEA2FEAF2EBCBED2640008E +:100980004100420043004400480049004A0045003D +:100990004B004C004D006C006D006E0066BC6C148A +:1009A0006D14FEE9DAFEEA1BFEE9DAFEEA1BFEE957 +:1009B000DA408E480D690D027A40690D027A2048AE +:1009C00000409F680D690D021C40408E680D690D46 +:1009D000021C206C006D006703FF42384302490D82 +:1009E000680D004720680D004F204900680D690D13 +:1009F000005E2042DD4301490D680D006A20680D4C +:100A00000077204900680D690D008E204077480D61 +:100A1000690D02A940690D02A920FD408E480D69AB +:100A20000D027A20690D023E20690D021C20FD6630 +:100A3000BC6C106D1041004301406A680D690D02E5 +:100A40007A20405E680D690D027A20404F480D699A +:100A50000D02C120690D02C1204800405E680D6989 +:100A60000D02A920406A680D690D02A920407E4848 +:100A70000D690D029020690D029020406A480D69B1 +:100A80000D027A20690D027A20407E480D690D0220 +:100A9000C120690D02C120408E480D690D02A920B8 +:100AA000690D02A920409F480D690D029020690D33 +:100AB000029020427A490D680D008E20680D009F3B +:100AC00020490040BD680D690D02C14040D443017A +:100AD000680D690D021C2040C8680D690D020C20CC +:100AE00040BD4300680D690D02FD8067036C006D19 +:100AF00000FF66BC6C106D1040384102480D430089 +:100B0000690D02EE20690D02E120480040C141015B +:100B1000680D690D028E40407A680D690D029F4094 +:100B20004051680D690D02A840403E480D690D0214 +:100B3000BD20690D02D42048004051680D690D02A6 +:100B4000EE40407A480D690D02EE20690D02E12069 +:100B5000480040C1680D690D02D44040A7410268B9 +:100B60000D690D02E12040514101680D690D028EB1 +:100B700020407D4102680D690D02D420403E4101B4 +:100B8000680D690D027E2040584102680D690D0212 +:100B9000C820402C4101680D690D02772040384182 +:100BA00002680D690D02BD20401C4101680D690DF0 +:100BB00002702040384102680D690D0270406703E1 +:100BC0006C006D00480049004A00FF66B86C146D67 +:100BD000146E14FEEC62FEEC62FEEC62403F425486 +:100BE0004501680D690D6A0D047A2D680D690D6A5D +:100BF0000D047A2D680D690D6A0D047A2D680D6952 +:100C00000D6A0D047A2D680D690D6A0D047A2D6840 +:100C10000D690D6A0D047A2D680D690D6A0D047A4F +:100C20002D680D690D6A0D047A2D403C424F680D08 +:100C3000690D6A0D04A95A403F4254680D690D6A56 +:100C40000D04C12D4047425E4502680D690D6A0DD5 +:100C500004385A67076C006D006E00480049004A6E +:100C600000FF4A00410043004502408E42BD480D4E +:100C7000490D6A0D04382D45016A0D04C12D480047 +:100C800049004070428E680D690D6A0D047A2D404E +:100C90005E443845024A0D680D690D02702D406AA8 +:100CA000680D690D028E2D4A004054426A45016864 +:100CB0000D690D6A0D04C12D6A0D047A2D404F4255 +:100CC0006A680D690D6A0D04A95A4054426A680D9C +:100CD000690D6A0D04512D405E4270680D690D6A00 +:100CE0000D041C2D407744EE45004A0D680D690D3A +:100CF000029F2D4070680D690D028E2D4A00409FA5 +:100D000042D4680D690D6A0D04FD2D409F441C45B9 +:100D1000014A0D680D690D02D42D408E680D690DD4 +:100D200002BD2D4A00FD66B56D144B034C024D0902 +:100D300046014302FEEF27FEEF27FEEF27FEEF27D7 +:100D40004300FEF009FEF0094301FEEF27FEEF2706 +:100D50004B034C024D0943014810690E027A304B97 +:100D6000034C024D094810690E027A164300020036 +:100D7000024B034C024D0948104301690E02A916AB +:100D800043000200024B034C024D09430148106925 +:100D90000E027A304B034C024D094810690E027A5C +:100DA0001643000200024B034C024D094810430158 +:100DB000690E02A91643000200024B034C024D09C2 +:100DC00043014810690E027A304B034C024D09482A +:100DD00010690E027A1643000200024B034C024DCA +:100DE0000948104301690E02A91643000200024B94 +:100DF000034C024D094810690E4301027A16430064 +:100E00000200024301690E023E1643000200024B3B +:100E1000034C024D0943014810690E027A16430043 +:100E20000200024B034C024D0943014810690E02B7 +:100E3000A91643000200024B034C024D094810431F +:100E400001690E02A9304B034C024D0948104301C1 +:100E5000690E02A91643000200024B034C024D0921 +:100E600043014810690E02DD1643000200024B03E5 +:100E70004C024D0948104301690E02A9304B034C46 +:100E8000024D0948104301690E02A91643000200F1 +:100E9000024B034C024D0943014810690E02DD1656 +:100EA00043000200024B034C024D09481043016904 +:100EB0000E02A9304B034C024D0948104301690E44 +:100EC00002A91643000200024B034C024D094301E4 +:100ED0004810690E02DD1643000200024B034C026B +:100EE0004D0943014810690E02A916430002000291 +:100EF0004301690E02651643000200024B034C02D7 +:100F00004D0948104301690E02A916430002000270 +:100F10004B034C024D0948104301690E02DD164394 +:100F200000020002FEED264B034C024D094302482D +:100F300010690E0238304B034C024D094810690EFF +:100F400002381643000200024B034C024D094302D3 +:100F50004810690E027D1643000200024B034C024A +:100F60004D0943024810690E0238304810690E02DC +:100F7000381643000200024B034C024D094302485D +:100F800010690E027D1643000200024B034C024D15 +:100F90000943024810690E0238304B034C024D09D8 +:100FA0004810690E02381643000200024B034C023F +:100FB0004D0943024810690E027D164300020002EB +:100FC0004B034C024D0943024810690E0238164388 +:100FD000000200024301690E02DD16430002000216 +:100FE0004B034C024D0943024810690E0238164368 +:100FF000000200024B034C024D0943024810690EE7 +:10100000027D164300020002FD4B034C024D0943D2 +:10101000014810690E02A9304810690E02A9164352 +:10102000000200024B034C024D0943014810690EB7 +:1010300002DD1643000200024B034C024D0943013E +:101040004810690E02A9304B034C024D0948106943 +:101050000E02A91643000200024B034C024D094345 +:10106000014810690E02DD1643000200024B034CDA +:10107000024D0943014810690E02A9304810690E5B +:1010800002A91643000200024B034C024D09430122 +:101090004810690E02DD1643000200024B034C02A9 +:1010A0004D0943014810690E02A9164300020002CF +:1010B0004301690E02651643000200024B034C0215 +:1010C0004D0943014810690E02A9164300020002AF +:1010D0004B034C024D0943014810690E02DD1643D3 +:1010E00000020002FD76AE5000510052005300583D +:1010F0001059105B005C025D00700008160C10585F +:101100000059005B005C007711FF76A7580F590F5C +:1011100051015301161605580559003000000458B6 +:101120000F590F160805580E590E160705580D5978 +:101130000D160905580C590C160A05580B590B16B3 +:101140000805580A590A16090558095909160605C5 +:101150005808590916070558075907160A05580669 +:101160005906160805580559051606055804590468 +:1011700016080558025902160A0558005900771832 +:10118000FF66AF4609892001090A0B0D0D0E0F0FEE +:101190000F0F0F0F0F0F0F0F0F0E0D0C0B0A09087B +:1011A0000706050403020100490067104600FF66B8 +:1011B0009746098A2001090A0B0D0D0E0F0F0F0F1C +:1011C0000F0F0F0F0F0F0F0E0D0C0B0A090807065C +:1011D0000504030201004A0067204601FF76A45877 +:1011E0000F590F5618701200312501027018003186 +:1011F000280002701A0031220203702C00312A01EB +:1012000003702D0031220002702F0031250001599A +:101210000318030276AC580F590F56025BF05C0AB4 +:10122000FEF23458105910FEF234FEF234580059D0 +:1012300000771BFF70180031100005701D0031137E +:101240000004701C00310E0005700A00311000040B +:1012500070080031100004700E0031130005701585 +:1012600000310E0004701A00310A0004FD76BB66DE +:10127000B34A0F5A0FFEF28F0A0008FEF28F4400A5 +:1012800045005500540048A05A0077046704FF62E7 +:10129000200032180002622500321A000162230089 +:1012A00032150002620B0032120001620900321690 +:1012B0000001620E00321A0002622000320E0001AC +:1012C000622900320D0001FD669746004A055A0565 +:1012D00076BB1460014A075A06145C014A085A0793 +:1012E0001458014A095A081454014A0A5A09145058 +:1012F000014A0B5A0A144C014A0C5A0B1448014A71 +:101300000D5A0C1444014A0E5A0D1440014A0F5A4A +:101310000E143C014A0F5A0E1438014A0E5A0E148C +:1013200034014A0D5A0E1430014A0B5A0D14400173 +:101330005A0B1445015A09144A015A08144F015A0C +:10134000061453015A051457015A04145B015A0339 +:101350001460015A021464014A005A007720672081 +:101360004601FF669F46004A055A0576BB14600198 +:101370004A075A06145C014A085A071458014A09D8 +:101380005A081454014A0A5A091450014A0B5A0ABD +:10139000144C014A0C5A0B1448014A0D5A0C1444BF +:1013A000014A0E5A0D1440014A0F5A0E143C014ACC +:1013B0000F5A0E1438014A0E5A0E1434014A0D5AAF +:1013C0000E1430014A0B5A0D1440015A0B144501FA +:1013D0005A09144A015A08144F015A061453015A63 +:1013E000051457015A04145B015A031460015A0290 +:1013F0001464014A005A00770467204600FF76BC57 +:10140000581059105B805C025D0070300031600044 +:101410000C30300004580059007703FF66BE4100CD +:101420006C09680F007722680F007722680F007739 +:10143000226C006701FF66B345006E146A0F044317 +:10144000306A0F0453E067046E00FF47BF57BF4088 +:101450000041004200430044004500460048004966 +:10146000004A004B004C004D005100500052005308 +:1014700000540055005600580059005A005B005CAB +:10148000005D00FF73F42A07E0ED5B05E0092BEB3C +:10149000092BEBEDB8C92146FFCD74F1C900FF005F +:1014A00000FF00FF00FF00FF00FF00FF00FF00FF44 +:1014B000F700FF00FF00FF00FF00FF00FF00FF003C +:1014C00000FF00FF00FF00FF00FF00FF00FF00FF24 +:1014D000FF00FF00FF00FF00FF00FF00FF00FF0014 +:1014E00000FF00FF00FF00FF08FF00FF00FF00FFFC +:1014F000FF00FF00FF00FF00FF00FF00FF00FF00F4 +:1015000000FF00FF00FF00FF00FF00FF00FF00FFE3 +:10151000FF00FF00FF00FD00FF00FF00FF00FF00D5 +:1015200000FF00FF00FF00FF00FF00FF00FE00FFC4 +:10153000FF00FF00FF00FF00FF00FF00FD00FF00B5 +:1015400000FF00FF00FF00FF00FF00FF00FF00FFA3 +:10155000FF00FF00FF00FF00FF00FF00FE00FF0094 +:1015600000FF00FF00FF00FF00FF00FF00FF00FF83 +:10157000FF00FF00FF00FF00FF00FF00FF00FF0073 +:1015800000FF00FF00FF00FF00FF00FF00FF00FF63 +:10159000FF00FF00FF00FF00FF00FF00FF00FF0053 +:1015A00000FF00FF00FF00FF00FF00FF00FF00FF43 +:1015B000FF00FE00FF00FF00FF00FF00FF00FF0034 +:1015C00000FF00FF00FF00FF00FF00FF00FF00FF23 +:1015D000FF00FF00FF00FF00FF00FF00FE00FD0016 +:1015E00000FF00FF00FF99E5010075E575E505E8DE +:1015F0000CE8D2E780EA000100200000F0E0A0E063 +:10160000004577726974652020202020726561642E +:1016100020202020206572617365636865636B20FC +:10162000636F6D70617265202020202020202020B3 +:1016300020202020656E64202020202020202D2DB9 +:101640002D4554432D2D2D202020202020202020EA +:10165000202020200D0AFF00FF00FF00FF400100B6 +:1016600000FE00FE00FE00FE00FE00FF00FF00FF87 +:10167000FE00FE00FE00FF00FE00FF00FE00FF0077 +:1016800000FF00FF00FF02FF00FF00FF00FF00FF60 +:10169000FF00FF00FF00FF00FF00FF00FF00FF0052 +:1016A00000FF00FF00FF00FF00FF00FF00FF00FF42 +:1016B000FF00FF00FF00FF00FF00FF00FF00FF0032 +:1016C00000FF00FF00FF00FF00FF00FF00FF00FF22 +:1016D000FF00FF00F700FF00BF00FF00FF00FF005A +:1016E00001FF00FF00FF00FF00FF00FF00FF00FF01 +:1016F000FF01FF00FF00FF00FF00FF00FF00FF00F1 +:101700003E0132FDFE2191EB0E05CDFEEACD5FF7E5 +:10171000CDCEEEC34BF3D9014B001189FF2188FFD9 +:101720003E2077EDB03E0D77233E0077D9C913797F +:101730001F1F1F1FCD38F779E60FFE0A3802C607B4 +:10174000C6301213C913CD4EF73E2D1213C94CCD1E +:101750002FF74DC32FF77EE67FFE20D03E20C9CD68 +:1017600084F22120ECCD50F2CD45F1CDD3EA20F822 +:101770002122EC0E04CDFEEACD12EB212DECCD5052 +:10178000F2CD45F1CDDDEA20F8D8212FEC0E04CDC5 +:10179000FEEACD12EB213AECCD50F2CD45F1CDDD94 +:1017A000EA20F8D8213CEC0E04CDFEEACD12EBC9BC +:1017B000FF00FF00FF00FF00FF00FF00FF00FF0031 +:1017C00000FF00FF00FF00FF00FF00FF00FF00FF21 +:1017D000FF00FF00FF00FF00FF00FF00FF00FF0011 +:1017E00000FF00FF00FF00FF00FF00FF00FF00FF01 +:1017F000FF00FF00FF00FF00FF00FF00FF00FF00F1 +:10180000000620000D4646460DFF00FF00FF00FFCA +:10181000FF00FF00FF00FF00BF00FF00FF00FF0010 +:1018200000FF00FF00FF00FF00FF00FF00FF00FFC0 +:10183000FF00FF00FF00FF00FF00FF00EF00FF00C0 +:1018400000FF00FF00FF00FF00FF00FF00FF00FFA0 +:10185000FF00FF00EF00FF00FF00FF00BF00FF00E0 +:1018600000FF00FF00FD00FF00FF00FF00FF00FF82 +:10187000FF00FF00FD00FF00BF00FD00FF00FF00B4 +:1018800000FF00FF00FF00FF00FF00FF00FF00FF60 +:10189000FE00FF00EE00FF00FF00FF00FF00FF0062 +:1018A00000FF00FF00FD00FF00FF00FF00FF00FF42 +:1018B000FF00FF00FF00FF00FF00FF00FF00FF0030 +:1018C00000FF00FF00FF00FF00FF00FF00FE00FF21 +:1018D000EF00FF00EF00FF00FF00FF00FF00FF0030 +:1018E00000FF00FF00FF00FF00FF00FF00FF00FF00 +:1018F000FF00FF00FF00FF00FF00FF00FF007F0070 +:101900000F8E00FFBDFA9386BFC607BDFAD58613BA +:10191000C60FBDFAD5863FC617BDFAD5BDFAA87F5A +:1019200008000FBDFA4396BC2B07BDFCC786FF9786 +:10193000BC0ECE0000DFD19680260BDE84D68CBD97 +:10194000FBDBDF8497807C00D29681260BDE86D677 +:101950008DBDFBDBDF8697817C00D29682260BDE75 +:1019600088D68EBDFBDBDF8897827C00D2968326EB +:101970000BDE8AD68FBDFBDBDF8A978396A827080C +:101980007F00A8C608BDFB3796A927087F00A9C617 +:1019900009BDFB3796AA27087F00AAC60ABDFB37F8 +:1019A00096AB27087F00ABC618BDFB5096AC270846 +:1019B0007F00ACC619BDFB5096AD27087F00ADC6B1 +:1019C0001ABDFB5096BE169AD80F97D8C60FBDFA0F +:1019D000DB7EF92296C1B7080196C2B708027C00E7 +:1019E000BD96BF4C97BF442432DEC309271EDFC318 +:1019F000DEC7A6004444444497C1DEC5092715DF6D +:101A0000C5DEC9A6004444444497C23B86019ABE41 +:101A100097BE20E686029ABE97BE3B96C7812025D8 +:101A200009DEC7A60097C108DFC796C9812025092E +:101A3000DEC9A60097C208DFC996BF840E26CC7CFB +:101A400000C03B96C0273E7A00C0968027064C27F0 +:101A5000037A0080968127064C27037A00819682BC +:101A600027064C27037A0082968327064C27037AA1 +:101A70000083CE0006A6AD27094A26046CA7A6B3AC +:101A8000A7AD0926F039B70800C60EBDFB1D843F7F +:101A900097BC3BCEFFFFDF00C64F088600A780083B +:101AA0005A26FA861397D839BDFAC086BF97BBC6A7 +:101AB000FFD782D783D7B1D7B2D7B3C6177EFADBA9 +:101AC00086BF97BAC6FFD780D781D7AED7AFD7B07A +:101AD000C6077EFADB7C00BD20040F7F00BD3736D1 +:101AE000C1102A19860D9703D702C608D7035C32A6 +:101AF000970296BD27FCD7035AD70333398615972B +:101B000003C40FD702C61020E33720E437861597A9 +:101B100003C40FD702C614200DC1102AEF37860D5B +:101B20009703D702C60C4F97039700D70396025F1F +:101B3000D7035AD70033390FBDFB1DC6097F00BD3F +:101B4000841F81102A084A81072B03BDFB090E3927 +:101B50000FBDFB0CC61120E517840F810D2A08A6C6 +:101B600094AB98A79420695A58C417DECDA60536C1 +:101B7000DED1AB94A794322B0C24026C98BDFADA18 +:101B80005CA694204B25F66A9820F26F8CDECDC1BE +:101B9000A02B020808080808C1C02B0817840F8171 +:101BA000082B0108860039DFCDDED16A9027DCC121 +:101BB000A02A10C41FA69436DECDA603BDFADA0E05 +:101BC000320839C1C02A91A69044A6942502A6984D +:101BD000C41FBDFADA0EDECDA6043926CADFCDE673 +:101BE000002A037EFC79C43FC1202A11A601BDFA58 +:101BF000DA0EE6000808582BE4A6000839C41F17BF +:101C0000840F81062A1648C4101B16A60197CEA67B +:101C10000297CDBDFCBA0EE6000820D880082B291B +:101C2000DDCF8403C1102B028B0316A601CE00006A +:101C30003AD6CFC1042A0BA6B4A7AEDECDD6D07E4D +:101C4000FBECA7B4DECD7EFBF24C27175CC1102A5B +:101C50000996BAA40197BA7EFBEE96BBA40197BB86 +:101C60007EFBEEC1102A0996BAAA0197BA7EFBEE56 +:101C700096BBAA0197BB7EFBEEC1F02A17A601EE28 +:101C8000023CDED1E78C4CA79032A79432A798DEB5 +:101C9000CD8600395C2712DED15C2610DCCDA79CF6 +:101CA000E7A0DECDEE0186003986FF39A69CE6A0CE +:101CB000DDCDDECD08080886003996CEBDFADA5CA7 +:101CC00096CDBDFADB5C3926037EFDBD81102B036A +:101CD0007EFD4181032A3597CB96D88A0116C4FE32 +:101CE000D7D8C60FBDFADB86057F00BDD6BD27FC61 +:101CF0004A26F6D6CB5858CEE9003A3CEE00DFC76C +:101D000038EE02DFC396BE840297BE3997CC96D8D0 +:101D10008A0216C4FDD7D8C60FBDFADB86057F0040 +:101D2000BDD6BD27FC4A26F6D6CC5858CEE9003A97 +:101D30003CEE00DFC938EE02DFC596BE840197BED7 +:101D4000391658CEE9343AEE0081202B1F81242722 +:101D50000A3C36BDFA93BDFAA8323897A4DF847FD7 +:101D600000807F008CC6B8DABAD7BA3981122A113E +:101D7000DF8897A67F00827F008E86789ABB97BB0C +:101D800039811327EB811627E781172A17DF8A97F6 +:101D9000A77F00837F008F86B89ABB97BB86B89ACF +:101DA000BA97BA39811727B3811927E1DF8697A53A +:101DB0007F00817F008D86789ABA97BA39CEF44B2E +:101DC0004F3C36BDFA93BDFAA8323897A4DF847F22 +:101DD00000807F008CC6B8DABAD7BAC6B8DABBD7EB +:101DE000BB3900FF00FF00FF00FF00FF00FF00FF06 +:101DF000FF00FF00FF00FF00FF00FF00FF00FF00EB +:101E0000001D4E0000FF00FF00FF00FF00FF00FF6D +:101E1000FF00FF00FF00FF00FF00FF00FF00FF00CA +:101E200000FF00FF00FF00FF00FF00FF00FF00FFBA +:101E3000FF00FF00FF00FF00FF00FF00FF00FF00AA +:101E400000FF00FF00FF00FF00FF00FF00FF00FF9A +:101E5000FF00FF00FF00FF00FF00FF00FF00FF008A +:101E600000FF00FF00FF00FF00FF00FF00FF00FF7A +:101E7000FF00FF00FF00FF00FF00FF00FF00FF006A +:101E800000FE00FF00FF00FF00FF00FF00FF00FF5B +:101E9000FF00FF00FF00FF00FF00FF00FF00FF004A +:101EA00000FF00FF00FF00FF00FF00FF00FE00FE3C +:101EB000FF00FF00FF00FF00FF00FF00FF00FF002A +:101EC00000FF00FF40FF00FF00FF00FF00FF00FFDA +:101ED000FF40FF00FF00FF00FF00BF00FF00FF000A +:101EE00000FF00FF00FF00FF00FF00FF00FF00FFFA +:101EF000FF00FF00FF00FF00FF00FF00FF000200E7 +:101F0000090A0C0D0F101213151618191B1C1E1F91 +:101F100023242627292A2C2D2F30323335363839E1 +:101F2000225A3830223B3B2020646574612069735B +:101F300020202D2D2D2D4820746F202D2D2D2D4846 +:101F4000454E444845583E3E20506172616D74656F +:101F500072206572726F72203C3C0D0044554D50EA +:101F6000204C4953542050414745203D20FF000D4F +:101F70000D00FF00FF00FE00FF00FF00FF00FF005C +:101F800000FF00FF00FF00FF00FF00FF00FF00FF59 +:101F9000FF00FF00FF00FF00FF00FF00FF00FF0049 +:101FA00000FF00FF00FF00FF00FF00FF00FF00FF39 +:101FB000FF00FF00FF00FF00FF00FF00FF00FF0029 +:101FC00000FF00FF00FF00FF00FF00FF00FF00FF19 +:101FD000FF00D1AE02004D00FF00FF000000FF0037 +:101FE000FEFF000000003500FEFF082EE4410C005B +:101FF000F900F900F900F900FA86F900F9D4F900BE +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4d-c.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4d-c.bin.hex new file mode 100644 index 00000000..3d9223bc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4d-c.bin.hex @@ -0,0 +1,1025 @@ +:100000002A12E7ED5B07E73A80E0E6012801EBED15 +:10001000523E0130023E003202E738102103E77EF3 +:1000200035A72008CD3F433E90CDFE0D2A12E73A7A +:100030001AE7A7C2AD403A00E0FE0328703A02E793 +:10004000FE0B2869303AFE09300BFE01205F3A06AC +:10005000E7FE0428583A00E7CB6F3A01E711290080 +:100060002827E6202047191100DBED52193801EB53 +:10007000E57CD60F2114E7BE202F347EC61F18263C +:100080003A00E7E620201118E7E6102020ED521193 +:100090000004ED52193001EBE53E10842114E7BE57 +:1000A0002007357EC6E0CD6557E12212E7AF29175C +:1000B000291729176C67118000ED5238111911802A +:1000C00006ED523009192200E92100011808ED530C +:1000D00000E9110001192215E7AF2A10E729176C72 +:1000E000672217E7C92A17E72207E83A06E78721B8 +:1000F000FF6506004F097E23666F3A01E7E640ED93 +:100100005B15E7CD200E3A00E0FE05C8FE07C8FEED +:10011000032A00E9201EEB2A02E93A01E10102006C +:10012000A72008ED42ED523007180809ED523003C0 +:10013000191801EB2202E93A3FE3A7CCC12EC9CD41 +:100140000812200C2A03E07CB52005211FE7CBCE46 +:10015000CD74412100E7CB66280ECB6E2805CB7607 +:10016000200EC9CB762805C9CB6E200423CBB6C997 +:1001700023CBF6C92119E735C29A413A80E0E61847 +:10018000FE081600380C16A92808FE101670280262 +:100190001638722101E77EEE80773A00E0FE03CA4E +:1001A000A046CD04472102E77EFE0DCAF645FE04B7 +:1001B000DA8942FE0BCADE44D20245FE08D206446A +:1001C0003A1FE7E601C251453A09E9577EFE06307B +:1001D00005CB52C28743CB5AC2B5432100E7CB4A75 +:1001E0002802CBAECB422802CBEE2103E7352039E3 +:1001F0003A04E73C284A3D20193C3204E72A0AE742 +:100200007E3203E7233A01E7A63201E7237E320676 +:10021000E7C92102E77EFE06010004380301030559 +:1002200071783206E7233605C93A04E73DC02A0A49 +:10023000E723CB4E2805CB6A200AC9CB622005C92B +:10024000AF3205E7AF3204E7573A02E7D604875FDB +:1002500087835F218D65197E3203E7233A01E7B674 +:100260003201E723CB4F7E23220AE72105E7280549 +:10027000CB4628013C3206E7343A84E8A7C03E0B5F +:100280003284E83E82CDFE0DC93A1FE7CB4FC2361D +:1002900046CB47C25A453A03E73DFAA0423203E74C +:1002A0003A09E9CB6FC26543CB67C25243CB5FC209 +:1002B000BD43CB57C28743CB4F204CCB4720202197 +:1002C00002E77EFE023600D24743FE003A05E728E9 +:1002D000023E053D3205E7C02A12E72207E7C92A98 +:1002E00012E71100DBED5228D62101E7CB6E2B205F +:1002F00008CB6E203CCBEE1826CBEE1802CBAE2AF4 +:1003000012E72207E718B82A12E7110004ED522875 +:10031000AE2101E7CB662B20E4CB6E2814CBAE3A9E +:1003200002E7FE0420053E053203E72A12E7220712 +:10033000E72102E73E01BE77380D3A03E7A7C03A4E +:1003400006E73CFE0438023E003206E73E05320373 +:10035000E7C97EFE033E0520023E07772A12E72208 +:1003600007E7C340423E013203E77EFE030E043E30 +:100370000620040E063E0B713206E73EFF3204E70C +:100380002A12E72207E7C97EFE022819FE03C836B3 +:10039000022A12E72207E73E023203E73A01E7E6C4 +:1003A000FC3201E7C93A03E7A7C03E033202E73E49 +:1003B000053206E7C93A01E7E6FC3201E72A12E70F +:1003C000ED5B07E73A00E7E6202001EBED523E083F +:1003D000110004ED5238013C3202E7D608870600CE +:1003E0004F1103E721A565097E23666FEDA0032267 +:1003F0000CE721A965097E23666FEDA0220EE7AF09 +:10040000127E3206E7C9211FE7CB46C24B463A1A95 +:10041000E7A7C256462A0CE75E2356E52A10E719DD +:100420002210E7E13A03E73D2006237E23220CE772 +:100430003203E72A0EE73A04E73D2009237EA72886 +:100440002D23220EE73204E74E3A05E7A728582A63 +:100450000AE73A05E73D202ECB7E2804CB792029F8 +:10046000237E3205E723A72821220AE7181B210053 +:10047000052202E73E043206E72100502210E72A57 +:1004800012E72207E7C93205E74E3A01E7CBCFCBA7 +:1004900071200ACB8FCBC7CB692002CB873201E713 +:1004A00079E61F3206E7C9CB7928F53A09E9E63043 +:1004B00028EE06F8CB67200906FB3E81CDFE0D181D +:1004C00003CD79423A02E7808716005F21AD6519B6 +:1004D0007E23666F7E3205E723220AE718AB3A1FB8 +:1004E000E7E60120752103E735C02102E73A06E778 +:1004F000FE053603C836003E003206E73E053203ED +:10050000E7C92103E73520192A0AE77EFEFF283BC9 +:100510003206E7237E233203E7220AE72100E7CBF6 +:10052000CEED5B0EE72A07E719220EE72A10E7ED6A +:10053000522210E72A12E7ED5B0CE73A00E7E620CB +:100540002804ED521801192212E7C93E0B3200E0CF +:10055000C97EFE063E05300C18073A06E7FE052860 +:1005600006CD8E463206E7CD912E2A12E72207E706 +:100570003A01E7E6FC3201E7211FE7CB863E08326D +:1005800003E72121E73A09E7A737FA9145963209AF +:10059000E72102E7360BD0CD0812C0343A20E7A796 +:1005A000F53E00CDFE0D3E87CDFE0DF121EC45114F +:1005B0000C0001120020232A12E7ED5BDAE2ED5273 +:1005C0002101E73807CBB62BCBAE1805CBF62BCBEA +:1005D000EE21F145113900011B00220AE7ED530C11 +:1005E000E7ED4307E7210000220EE7C9220A23189E +:1005F000FF24082516FF211FE7CB46280CCD912E9E +:10060000CD7546CD8E463206E7ED5B0EE721120032 +:1006100019220EE72A10E7ED52EB2100B019300540 +:10062000ED5310E7C9210050211FE7CB4E2814CB12 +:100630008ECD0812200D3E0C3202E73E053203E754 +:10064000C39F452102E73600C34743CD912ECD75A8 +:1006500046CD8E4618023E103206E73E0D3202E7C6 +:10066000218000220EE72A12E72207E73A01E7E697 +:10067000FC3201E7C92121E73A09E7A7FA84469647 +:100680000E0030020E023209E7211FE771C92A105D +:10069000E711001819ED5B22E7ED523E20D83CC966 +:1006A000CD0359FE04284D2103E735C03608210546 +:1006B000E735202436022B3528342A12E7110001B1 +:1006C0003A01E1A72803191802ED522212E72A1075 +:1006D000E7110006192210E73A06E73CFE20200247 +:1006E0003E1C3206E7E601C03E90CDFE0DC93E0C31 +:1006F0003200E0C93A06E7FE26C03E0C3200E0AF09 +:100700003240E3C92A02E1ED5B12E7CD0359FE0452 +:1007100028723A01E1FE01FD2100503806C0FD219A +:100720000052EBA7ED52D8E52A10E7110050ED5228 +:100730003850297CE1060CD60C380E110001ED5220 +:10074000D8110006FD190518EEFD2210E73E00CD78 +:10075000FE0D3E033200E0EB2A12E73A01E1A72842 +:1007600005ED52110001192212E72100E7CBCE3E20 +:100770001C3206E73E083203E73E013205E77832D5 +:1007800004E7F1C9ED52D83A02E7FE02D02141E375 +:10079000343E053246E33E053247E33E032101E79E +:1007A000CBB62BCBAECBCE3200E03E00CDFE0DF172 +:1007B0003E033206E7C9DD214CE3DDCB0066C421F0 +:1007C00048DD2140E3DD4E00CB61C8DD7E01FE0146 +:1007D00038392813111B00CDEA1B1120FF193841AD +:1007E0003E263206E7183ADD35072035DD36070BA1 +:1007F000DD3406DD7E06FE073827DD360707DD34EB +:1008000001DD360601DDCB0CE61816DD35072011BB +:10081000DD360708DD7E063CFE0528023E04DD7756 +:1008200006CDE21B1100EE19D821F073C37D1A3AF0 +:1008300000E0FE0620172122E035C0EB2A23E07EEF +:10084000FEFF283423127E232223E018273A06E9EC +:10085000E6042100E7CB46201B3A06E9E6074F3ABB +:100860001AE7A779200E3A08E92F472F070707A0B4 +:10087000E63847B13209E9C93E0B3200E0C9F3312D +:1008800000F0AF3201E03220E03221E03280E0FBC4 +:10089000CD0057CD4A06216D4BCD1C1121014F22B1 +:1008A0000EE73E9C3205E721A0302212E721005CD2 +:1008B0002210E72244E321A0342242E33E103240DA +:1008C000E33E053247E3DD2162E201500721000FDC +:1008D0000607DD360400DD36055CDD360707DD364C +:1008E0000E38DD700FDD7100DD7502DD740378FEFA +:1008F000072808FE043804DD36060AFE0530052107 +:1009000000310E10111000DD1910C73E053200E055 +:100910001152D10E0B21864BCD34113A20E0FE0846 +:1009200020F9CD1C113A20E0FE0B20F9CDAE492173 +:100930000E4CCD34113EE1CD0F57CDAE4921714C57 +:10094000CD1C11CDC0493A00E0FE0B20F6AF2100CE +:10095000003281E02282E03C3284E03222E0212534 +:10096000E07E360911554AA72805110A4B36003298 +:1009700080E0ED5323E0CD57113E01CD4904F33E15 +:10098000063200E02100002281E02282E02210E015 +:100990002212E0FBCDB80F3A00E0FE0B20F63E3805 +:1009A000CD0F57CD20563EE1CD0F57C37E48115095 +:1009B000D10604D5CD2A57E111800019EB10F4C9F6 +:1009C0001116D3010B193A80E8E630CA1F572A0ADC +:1009D000E97DAC201413CDF749CB5DC01197D37DD1 +:1009E0008727CD104A3E0218213E41CDF4496C11B3 +:1009F00096D33E42CD2C4ACB5D3E0120017DCD10E9 +:100A00004ACB5D3E0128037DE607E521394A1804FB +:100A1000E521344AF5C548CDF756C113CD1C11F177 +:100A2000D5FE013E53C41011D113E1C9CD10113EC2 +:100A30002DC31011434F494EFF504C41594552FFB1 +:100A400020202020202020202020202020202020A6 +:100A500020202020FF420201202802021018020359 +:100A60001018020210240202203802100402201E74 +:100A700002100802202C010420280208010210287C +:100A80000110081820080140020808082048020345 +:100A90000103020301030603050306030103020326 +:100AA0000103010302030103060305030603010317 +:100AB00002030103020301030603050306030118F1 +:100AC000020208480202101800021018000A010A67 +:100AD0000402101804022018040210100428010354 +:100AE0002020010320180103200800280208040325 +:100AF0002010103402040810202802050105020508 +:100B0000010506050505068000FF1C010400011013 +:100B100044011000280102201002200102085001A7 +:100B2000020836010A023000101020001B020208E1 +:100B30001010480202081020280402202004680136 +:100B40000A0004201002100028010102600438018C +:100B5000020810103000500120020208102020006E +:100B600018021008102010004001A004FFFE1DFD17 +:100B7000D8D640203139383420FEDA4952454D204C +:100B8000434F52502EFF41204B554E472D46552086 +:100B90004D41535445522CFE1A54484F4D4153FE7B +:100BA0000B20414E4420FDD2D1FE1A53494C5649E8 +:100BB00041FE0B20574552452053554444454E4C69 +:100BC000592041545441434B454420FD52D242598F +:100BD000205345564552414C20554E4B4E4F574E93 +:100BE00020475559532EFFFDD0D228FE1A53494CA9 +:100BF000564941FE0B20574153204B49444E41502A +:100C0000504544204259205448454D2E29FFFD535C +:100C1000D14C4154455220FE1A54484F4D4153FE89 +:100C20000B20464F554E442041204C4554544552CC +:100C300020FDD3D146524F4D20FE1A58FE0B2E20D8 +:100C4000FD53D2484520495320414E20494E48414A +:100C5000424954414E54204F462054484520FDD32C +:100C6000D2444556494C27532054454D504C452EAF +:100C7000FFFEDAFDDAD080818283848586878889C9 +:100C80008AFD1AD18B8C8D8E8F909192939495FDC5 +:100C900057D1969798999A9B9C9D9E9FA0A1A2A39D +:100CA000A4A5A4A6FD96D1A7A8A9AAABACADAEAF4A +:100CB000B0B1B2B3B4B5B6B7B3B8B9FDD6D1BABB5B +:100CC000BCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBEC +:100CD000CCCDFD15D2CECFD0D1D2D3D4D5D6D7D886 +:100CE000D906DADBDCDDDEDFE0E1FD55D2E2E3E46C +:100CF000E5E6E7E8E9EAEBECED06EEEFF0F106F207 +:100D0000F3F4F5FD95D2F6F7F8F9FAFB707172730A +:100D1000747506767778797A7B7C7D7EFF3E0B3220 +:100D200000E018302103E77EA72801352105E735CB +:100D3000204DED5B0EE71AA7FA1D4DCB7728042155 +:100D400020E034CB6F280DF521B7657E23220CE718 +:100D50003203E7F16FCB6528053E023203E7CB5D36 +:100D600028083A01E7EE403201E77DE6033221E050 +:100D7000131A3205E7131A3206E713ED530EE73A5A +:100D800021E021BC4DCD261F3A20E0DD2140E3DDEE +:100D90004E00FE0A280A3011A7200BCDD4471809AF +:100DA000113600CD7A1CCD21483A20E0DD2162E2E7 +:100DB000DD4E0021C24DCD261FC3722DFA4D124EBD +:100DC000DA4D244E254E3A4E714EAF4EA84EA14EEE +:100DD0009A4E934E8C4E7F4E244E2A0CE75E23563D +:100DE000E52A10E7192210E7E13A03E7A7202323B9 +:100DF0007E23220CE73203E71818CD1F432A12E79F +:100E000011E5FF3A01E7E6402003191802ED5222EE +:100E100012E72A12E7AF2917291729176C67CDD6D1 +:100E200040CDE540C9CDE71B2A64E21100E7193047 +:100E30003A2120E03421E54E18092169E2352028C5 +:100E40002A6EE27EFEFF282E3268E2237E3269E2BD +:100E5000237EA7280FE5212BE33601237723364095 +:100E600023361AE123226EE2CDE21BCB61C2721A55 +:100E7000C9CDDF4E18F52120E034CDDF1718E92168 +:100E8000A2E21110000603CBF61910FBDD21C2E22D +:100E9000CDD74EDD21B2E2CDD74EDD21A2E2CDD7B6 +:100EA0004EDD2182E2CDB34EDD2192E2CDB34EDDA7 +:100EB0002172E2DD4E0021D14EE5DD7E01FE0128EA +:100EC0001ECDA815DD350EC0DD7E0FDD7706C3DF34 +:100ED00017CB61C8C32F16DD4E00CDE71B18F2CB30 +:100EE00061C2AA1BC90B0B000C3852000B00090B86 +:100EF000000A3850002B00060A0000180006010006 +:100F0000FF411600013204011C05012D04220410CA +:100F1000020612021013020614020410102100012E +:100F20000B04220410020612021018020614020416 +:100F300010010806010807010806011304412104F5 +:100F4000410E040108080108090102084105084191 +:100F5000080541080B41080C01080B0108050108B0 +:100F60000D01080E01090D410805011C04091000BE +:100F700010270041E10301A903011604010806013D +:100F8000080701080601080401080801080901080A +:100F900008090804010806010807010806010804F9 +:100FA00001080501080B01080C01080B01080501E7 +:100FB00008040108080108090108080908050108D2 +:100FC0000B01080C01080B0108052204100206128F +:100FD0000210180206140204100908040108060190 +:100FE000080701080601A904FF3E23CDFE0DAF321C +:100FF00002E73220E03283E83E083200E0CD95502F +:101000000ED9213251CD1C11214751CD1C11215730 +:1010100051CD1C11216251CD1C11216D51CD1C11DE +:1010200021A750CD79503EF8CD3850CD915021FFB9 +:10103000500ED9CD79503EF8E5C5D53282E80ED9AB +:101040002183E87EA7201A360B2120E03535F253A4 +:101050005036085E1600216B50197E23666FCD1C3A +:10106000113A82E8A720D9D1C1E1C95D5168514D3B +:10107000512D513D515E2356237E233CC83C3C28D4 +:10108000F4D603CD1011FE2020EF3E0BCD385018C2 +:10109000E80608180206190E0B119FD1CD1A572128 +:1010A0001F0019EB10F6C9FD63D241204B554E4786 +:1010B0002D4655204D41535445522C54484F4D41D7 +:1010C0005320414E4420FDE3D253494C5649412020 +:1010D000454E4A4F5945442048415050494E45538A +:1010E0005320FD63D3414741494E20464F52204192 +:1010F000204C4954544C45205748494C452EFFFD3F +:10110000A6D2425554205448454952204841505097 +:1011100059204441595320FD28D3444944204E4F7F +:1011200054204C415354204C4F4E472EFFFD2ED49B +:101130000000FDACD46061FDECD46263FFFDACD473 +:101140000000FDECD40000FD6DD46465FFFDB0D45B +:101150000000FDF0D40000FD2ED46667FFFD6DD4C5 +:101160000000FD6FD46869FFFD6FD40000FDB0D4AE +:101170006A6BFDF0D46C6DFF2105E0CBFECD5711FD +:10118000CD0357115AD20E143A80E8E618280821E8 +:10119000D851CD1C111803CD25571119D33A13E995 +:1011A000F5FE0121E551280321F351CD1C11210247 +:1011B00052CD1C11F1CDFF103A04E9E60328C4E634 +:1011C000023202E006012801042113E97E9038B3BF +:1011D00027772105E0CBBEC9505553482020425502 +:1011E00054544F4EFF4F4E4C59203120504C4159D2 +:1011F0004552FF31204F52203220504C4159455228 +:1012000053FFFDE1D543524544495420FFCD5711CA +:10121000CD03573E20CDFE0D0E1B1153D10617CD29 +:10122000255721260019EB10F6213252CD3957C32C +:101230001C11FD55D1CCFD60D1CCFD67D1CCFD9208 +:10124000D3E3FDD1D3D9D800D0D1CDFD10D4E0DB8C +:10125000DA00D2D3CFFD50D4E207DCDDD4D5FD9047 +:10126000D4E407DEDFD6D7FDD0D4E6070707E5FDD7 +:1012700010D5E107E8E9E7FD50D50707EAEBFD9057 +:10128000D50707ECEDFDD0D507EFEEFD10D607F141 +:10129000FD50D6F0F3FD90D6F2FDD0D6F4FDD6D6B3 +:1012A000CEFDE4D6CEFEFDADD3E3FDE9D3CDD1D066 +:1012B00000D8D9FD29D4CFD3D200DADBE0FD6AD43F +:1012C000D5D4DDDC07E2FDAAD4D7D6DFDE07E4FD06 +:1012D000EBD4E5070707E6FD2BD5E7E9E807E1FDD5 +:1012E0006CD5EBEA0707FDACD5EDEC0707FDEDD5B6 +:1012F000EEEF07FD2ED6F107FD6ED6F3F0FDAFD66B +:10130000F2FDEFD6F4FFFE1BFD17D2594F555220C8 +:101310004C4F564520FE1F53494C564941FE1BFD7C +:1013200097D2495320494E20435553544F44592096 +:101330004E4F572EFD16D3494620594F5520574141 +:101340004E5420544F2053415645FD97D3594F5585 +:1013500052204445415220FE1F53494C56494127D3 +:1013600053FD19D4FE1F4C494645FE1B2C20434F0C +:101370004D4520544FFD97D4544845204445564987 +:101380004C27532054454D504C45FD17D541542012 +:101390004F4E43452EFD96D53520534F4E53204F8B +:1013A000462054484520444556494CFD17D65749D8 +:1013B0004C4C20454E5445525441494E20594F55AE +:1013C0002EFFCD00573E05CDFE0D3A80E0F53E04E0 +:1013D0003280E0CD4A062100542210E72244E32166 +:1013E00000272212E721001A2242E3F13280E02195 +:1013F0004754CD1C113E073200E03E70CD165421FB +:10140000AB54CD1C113E05CDFE0D3E70CD16543EA5 +:1014100005CDFE0D3EC03282E83A80E81195D20E2D +:10142000D9218554E6182003219854CD1C1121821E +:10143000E87EA720E4C92103E77EA7280135CD1F58 +:1014400043CD124EC3B647FE96FD18D5B7FD57D50E +:10145000AAABFD97D5ACADFDD7D5F6F5FCFD17D6FB +:10146000F8F9F7FD57D6FAFBFED618FD56D1FED790 +:101470004C4554275320545259204E455854204629 +:101480004C4F4F52FF48454C50204D452CFD15D335 +:1014900054484F4D415321FF202020202020202060 +:1014A000FD15D320202020202020FFFEDAFDA3D22E +:1014B00049274D20434F4D494E47FD23D3524947BD +:1014C000485420415741592CFDA5D353494C564906 +:1014D0004121FF20202020202020202020202047E4 +:1014E000414D45204F5645522020202020202020CD +:1014F000202020203E21CDFE0D1140D30EDBDD212A +:10150000D354CDC3563EE1CD0F573E38CD0F57AF24 +:101510003200E7321AE71183E02100EA06031A7766 +:10152000231B10FA060336202310FB0E141100EAC9 +:1015300006031ABE381C2006132310F6181478C6AA +:1015400003477EF51A77F112231310F60D20E113ED +:10155000131379FE14C8040528031310FDD5F53EB6 +:1015600024CDFE0DCD2056218A56CD1C11F111112E +:10157000DAFE0A3805D60A1121DA2E00CB3FCB1D40 +:101580006719D1060D36002310FB01FDF70906038C +:101590003E4177123E203226E0D51160D10E00CDBB +:1015A000FF10D13E383281E8CD0D573A04E9E60309 +:1015B00020693A06E9E60328253A83E8A720233E76 +:1015C0000B3283E83A06E9CB477E20093DFE4130E5 +:1015D000243E5C18203CFE5D381B3E411817AF329C +:1015E00083E83A09E9E630280E7EFE5C282D1323B5 +:1015F00005281A3E4177123A81E8A720AB3A26E047 +:10160000D6012720911160D10E00CDFF10CD2C56B0 +:101610003E1CCD0F573E00CDFE0DC93E201218EDE9 +:10162000CD5711CD0357217556CD1C112106EA1156 +:10163000A1D63E20F50ED8CDF7560E15137E23A762 +:10164000D5C40811D11306027E23CDFF1010F93E38 +:1016500030CD10110E001306037E23CD101110F9AA +:10166000F1D60127C8E52173FF19EBE1FE1020C474 +:101670001191D618BFFEDBFDD8D04245535420321D +:101680003020504C4159455253FFFD5AD1FE14545D +:10169000494D45FF202020202020202020202020F0 +:1016A00054494D45204F56455220202020202020CF +:1016B00020202020200ED8DD219456CDC3563E7028 +:1016C000C30F572A02E91104001929292929297C65 +:1016D000C61A1140D36F2603E5060BD57D2CE63FD5 +:1016E000B35FDD7E00DD23CD1011D110EE2140006F +:1016F00019EBE12520E2C9FE10D2FF1013C3081137 +:10170000CD5311AF3200E02100002202E93E01E595 +:101710002182E8777EA720FCE1C9C50621180ECDFD +:1017200025571196D3C5061A1803C50620AFCD104C +:101730001110FBC1C95E2356237E233CC83C200404 +:10174000CBE918F53C28EED603CBB9FE083802CB1E +:10175000F9CD101118E32A17E87CE5CD6557E1248F +:101760007CBD20F6C9FEE0D03202E8C620E63F216B +:1017700080D1B56F3A02E8CD00583A80E0E601200A +:1017800005CD5F581803CD3558CD03592005CDD36D +:10179000581803CDF158CDD457CD0359FE03C03AA4 +:1017A00002E801080021305AEDB9C0CB01CB013A63 +:1017B00080E0FE1021315A380321515A095E235628 +:1017C00023EB0E111A1377CBDC711A1140F819773D +:1017D000CBDC71C93A80E0E601217C5A20032188E4 +:1017E0005A3A02E8010C00EDB9C021895A09093AB8 +:1017F00002E8EBC620E63F2180D3B56F0E8B18C4FC +:1018000011E761FEDAD21859D6D5380CE521DB593B +:101810005F1600197EE11804E601C6520E5CCD0980 +:10182000593A02E8E607E521E1594F097EE177CB15 +:10183000DC365E19C93A02E8FEDDD0FE0D380AFE3C +:10184000CF382A11835FC3C558473A15E9FE01789E +:1018500011485D287011185E306B118E5C18663A65 +:1018600002E8FEDDD0FE133836FED33019E61FF550 +:10187000E5874F21E959097E234EE177CBDC7119C9 +:10188000F1116A5B183F4711CB61CD0359280D3A1E +:1018900015E9FE01117661300311F5607818265FB5 +:1018A000CD0359FE047B11B360281A11A95ECD182F +:1018B00059CD03593A02E82005FE03300BC9FE0258 +:1018C0003006115465CD18593605CBDC3601114070 +:1018D000F819C90E4F3A02E8FEC03010FE20380752 +:1018E000E61F110C651831110264182C11F86218EA +:1018F000273A02E811A763FEDC301DE601C6240E7C +:101900004218063A80E0E607C906031140F877CB93 +:10191000DC7119C60210F7C9EBC506004F0909C1F1 +:101920007E23666FEB06011A133C28133C2817C66A +:10193000FE77CBDC713E40856F3EF88C6718E8057A +:10194000C8D1131318E11A13FEFC380C2802D50471 +:10195000EB7E23666FEB18CF4F18CCFE15FDD8D267 +:1019600053454C4543542047414D4520464C4F4F2D +:1019700052FD9AD3484F555345204E554D4245523E +:101980002DFD1AD4464C4F4F52204E554D424552D4 +:101990002DFD98D450554E43482D5550204B49436A +:1019A0004B2D444F574EFFFE15FD11D031502DFDEC +:1019B00026D032502DFE00FD1BD0544F502DFE146A +:1019C000FDAAD054494D45FE94FD91D098999A9B1B +:1019D0009CFE95FD11D19D9E9FA0FF5859606168A6 +:1019E00069676E5E5E5E5E5F66F10806010601066F +:1019F00001060114411541EE08EF08060106011821 +:101A000041194106010601EE08EF0806010601141E +:101A100041154106010601EE08EF0818411941067B +:101A200001060106010601F00822233C3D5A5B70C5 +:101A30007102D37C7E03D3017F1CD47C7E1DD40134 +:101A40007FFAD57C7EFBD5017F10D37C7E11D3013C +:101A50007F02D37C7E03D3017F1CD47C7E1DD40106 +:101A60007F3AD47C7E3BD4017F10D37C7E11D3019E +:101A70007F1F203F405F607F809FA0BFC0BFC09F8F +:101A8000A07F805F603F401F200406057D7E969505 +:101A900097BCBEBDBFC0C2C1C3C4C6C5C7C8CAC942 +:101AA000CBFDFBD4FE4122FD3AD580FE911F94FD73 +:101AB00079D526FE11000000FDB8D5FE9127282912 +:101AC000FE110000FDF8D5FE91302AFE1103FE91B3 +:101AD0002021FD38D6312C2DFE1103FE9123FD79F6 +:101AE000D62E2F22FE1103FDBAD6FE912B2425FF00 +:101AF000FDFCD4FE4122FD3BD58080FD79D580FDE3 +:101B0000B8D5808080FDF8D58080808080FD38D673 +:101B10008686868686FD77D6FE9136373232323318 +:101B2000FDB6D638393434343435FFFE0106FEFDB7 +:101B3000395B808086FFFE0106FE01FEFD525BFEE2 +:101B400041228080FFFE09FEFD535BFEFC535BFEDD +:101B50000106F900000000000000FFFE010303037E +:101B6000030303030303030303FFAA5BB35BC45B29 +:101B7000CE5BC45BD55BE85BFB5B105C255C3A5CD1 +:101B80004F5C625CCE5BC45BCE5BC45BCE5BC45B14 +:101B9000D55BE85BFB5B105C255C3A5C4F5C625C90 +:101BA000CE5BC45BCE5B755C835CFEFD5B5BF2F47D +:101BB000F604FFFEFD395BFE01F7F3F5FE41847C80 +:101BC000FFFE0106FEFD2E5B7C84FFFE0106FEFD8E +:101BD0002E5B847CFFFE4116808080808080801E8A +:101BE0008080808014847CFFFE4117881C88888850 +:101BF00088881F88888888157C84FFFE01F9FE414B +:101C000080890002040610228080808086847CFF08 +:101C1000FE01F9FE418089010305071122808080C1 +:101C200080867C84FFFE01F9FE418089080A0C0E43 +:101C300012228080808086847CFFFE01F9FE418034 +:101C400089090B0D0F132280808080867C84FFFE23 +:101C5000411A231D232323232320232323231884F2 +:101C60007CFFFE411B80808080808080218080807E +:101C700080197C84FFFEFD395BFE01F8FAFCFE4111 +:101C80007C84FFFEFD5B5BFBFDFE417B7CFFA85C73 +:101C9000C25CDD5CF35C085D205D335D3C5D0A5E2B +:101CA000CB5BC15BCB5BC15BFE03EFFE09000000B9 +:101CB00000FE923A3C3E8EFE09FEFD545BCCFE01D6 +:101CC000EDFFFE09FEFD555BFE923B3D464446FEA0 +:101CD0000900000000FE9249FE934B4DFFFE4115A6 +:101CE0001788888888FE933F40424745484A4C4EB3 +:101CF0005C5EFFFE0106F9FEFD555BFE934143521B +:101D00005456585A865D5FFFFE0106F9FEFD545B8E +:101D1000FE9351535557595BFE0106FE93635FFFD7 +:101D2000FEFD4F5BFE934F50FE1300000006FE9336 +:101D3000635FFFFEFD2B5BFE93635FFFFE08EEFE1D +:101D4000FD2E5BFE936062FF625D7D5D985DB25D1E +:101D5000CA5DD65DE25DF75D0A5ECB5BC15BCB5BC6 +:101D6000C15BFE03EFFE0900000000FE92878A8C33 +:101D70008EFE09FEFD555B00CCFE01EDFFFE09FE67 +:101D8000FD555BFE92888B8D8F92FE09000000004E +:101D9000CDFE01EDFE9274FFFE41151788888888FC +:101DA00088FE9389909365FE4188888815FE937319 +:101DB00075FFFE0106F9FEFD545BFE939164FE4142 +:101DC00080808080FE936E7072FFFEFD365B80FE29 +:101DD000936D6F715FFFFEFD365BFE93686A6C6307 +:101DE0005FFFFEFD4F5BFE412280FE9366696BFE46 +:101DF0001302FE93635FFFFE08EEFEFD395BFE9368 +:101E000067FE418086FE936062FFFE08EFFEFD2EB6 +:101E10005BFE9361FE4184FF325E4C5E745E7D5ECC +:101E20007D5E7D5E865E8F5E9B5ECB5BC15BCB5BCA +:101E3000C15BFE03EFFE0900000000FE92763C79D4 +:101E4000FE09FEFD545B00CCFE01EDFFFE09FEFD28 +:101E5000555BFE927778FE09FEFD535BCDFE927ACC +:101E60007CFFFE411517888888888888881F8888A5 +:101E7000888815FFFEFD625EFE927B34FFFEFD2B1F +:101E80005BFE913234FFFEFD2B5BFE918082FFFEF4 +:101E900008EEFEFD2E5BFE918183FFFE08EFFEFD46 +:101EA0002E5BFE917FFE4184FFCF5EE25EF45E0C0E +:101EB0005F215F395F535F6D5F8B5FA75FC35FDF3C +:101EC0005FFD5F18602B604760656083609B60FE0C +:101ED00003EFFE09000000C4C6C8C8C8C9CB000093 +:101EE00000FFFE0900000000C5C7C7C7C7CA000041 +:101EF0000000CDFFFE09C3FE4117888888888888C6 +:101F0000881F8888888815FE078082FFFE06A7A89C +:101F1000FEFD535BFE41228080808086FE07818328 +:101F2000FFFE458AFE0604A9AAABABABABABBDABCB +:101F3000ABABABC0FE0AD6D4FFFE06A1A2FE058C59 +:101F4000FE06ACADAEAEAEAEBEAEAEAEAEC1FE4AFD +:101F50007D7EFFFE069EA3A6FE058FFE0604AFB0A3 +:101F6000B1B1BFB1B1B1B1C2FE4A7F83FFFE08EC8F +:101F7000FE06A4949699FE058CFE06B2B300FE41BF +:101F800022808080FE048486888AFFFE08EFFE0699 +:101F9000A595979A93FE058EFE0604B4B500000041 +:101FA000FE048587898BFFFE0106F900FE06989BDB +:101FB000949699FE058CFE06B6B7ABABABC0FE0A95 +:101FC000D4D6FFFE0106F90000FE069C95979A9371 +:101FD000FE058EFE0604B8B9AEC1FE0AD5D7FFFED7 +:101FE0000106F900000000FE06989B949DA0FE05E6 +:101FF0008CFE06BABBC2FE0AD8FE417CFFFE01067B +:10200000F9FEFD555BFE069C959E9A93FE058EFE9D +:102010000604BCFE0AD303FFFEFD4F5BFE069F9B3A +:10202000949699FE058CFE0AD1D2FFFE0106F9FEB8 +:102030000BD9DCDCDCDCDEFE418022FE069C9597C1 +:102040009A90FE058D07FFFE08EEFE01F9FE0BDA01 +:1020500007DBDDDFE9FE4180228080FE06989B9150 +:10206000FE0ACFD0FFFE08EFFE01F9FE0BDAE0E238 +:10207000E4E6E9FE418022808080FE069C92FE0A12 +:10208000CE03FFFE0106F9FE0BDAE1E3E5E7E9FE28 +:102090004180228080808086847CFFFE0106F9FEDC +:1020A0000BEBE8E8E8E8EAFE418022808080808649 +:1020B0007C84FF156109610261F660E560D96037D3 +:1020C00063856390633063376330633763306337AE +:1020D000638563906330633763FEFD365B8080FE0B +:1020E00096B4B6B5FFFEFD4F5BFE412280FE96B76B +:1020F000ABADAFB1B3FFFEFD365BFE96AAACAEB0A2 +:10210000B2FFFEFD625E8484FFFEFD455BFE9249E8 +:10211000FE01ED04FFFE03EFFEFD455BCCFE01ED8D +:10212000FF3D6159617B619B61BB61D561EB6103DF +:10213000621B623762536269627D629162FE08EEE1 +:10214000FE01F9FE0BD9DCDCDCDCDE04FE41228082 +:1021500080808086FE4A4E81FFFE08EFFE01F9FE78 +:102160000BDAFE4B878D90FE0B07E904FE412280BF +:10217000808080FE464BFE4C9BA9FFFE0106F9FEC7 +:102180000BDAFE4B878E91FE0B07E904FE4122809D +:1021900080FE464CFE4C839FA787FFFE0106F9FE9A +:1021A0000BDAFE4B8C8F92FE0B07E904FE41228076 +:1021B000FE464BFE4C9B9C49A887FFFE0106F9FE9C +:1021C0000BEBE8E8E8E8EA04FE464DFE4C839FA0EE +:1021D000A1858787FFFE0106F9FEFD545BFE464B95 +:1021E000FE4C9BA5A69A9A424344FFFE0106F900C5 +:1021F000000000FE464CFE4C839FA3A43E3E3E459D +:102200004887FFFE0106F9000000FE464BFE4C9B8E +:102210009CA2403D3D3D3D464787FFFE08EEFE0146 +:10222000F900FE464CFE4C839FA0A180FE41228017 +:10223000808080868484FFFE08EFFE01F9FE464B15 +:10224000FE4C9B9C9D9E8080FE41228080808086EB +:102250008484FFFE464AFE4C8398999A9A9A9A9AE9 +:10226000419A9A9A9A424344FFFE4C9B9596973E18 +:102270003E3E3E3E3F3E3E3E3E454887FFFE4C933F +:10228000943D3D3D3D3D3D3D403D3D3D3D464787C7 +:10229000FFFE4C3CFEFD2E5B8484FF3063376330D1 +:1022A00063AF62B862C462D062E562F6620963FE3F +:1022B000FD2B5B7CFE911CFFFE08EEFEFD2E5BFEFF +:1022C00091181EFFFE08EFFEFD2E5BFE911416FF17 +:1022D000FEFD4F5BFE412280FE911AFE418080860A +:1022E000FE911416FFFEFD4F5BFE4122FE91191B6D +:1022F0001D10121416FFFEFD4F5BFE91080A0CFE26 +:102300001103FE9111131517FFFEFD4F5BFE91099E +:102310000B0D0FFE110303FE91070EFF30633763B1 +:1023200030633E63476353635F635F635F63686308 +:10233000FEFD2B5B847CFFFEFD2B5B7C84FFFEFDA2 +:102340002B5B7CFE9138FFFE08EEFEFD2E5BFE91BE +:102350003639FFFE08EFFEFD2E5BFE913734FFFE9F +:10236000FD2B5BFE913234FFFEFD2B5BFE9133357E +:10237000FF3063376330633763856390633063375F +:102380006330633763FE08EEFEFD2E5BFEFC3463B4 +:10239000FE08EFFEFD2E5BFEFC3B63A763B063B956 +:1023A00063C263CF63E963FE5C696B6DFE5E8BFFA6 +:1023B000FE5C7072FE5E7884FFFE5C7173FE5E7977 +:1023C00084FFFE5C7476FE5D4F8787FEFCD863FE5B +:1023D0005C7577FE5D50FE5F878787878787878775 +:1023E0008787878787878787FFFE5C6F7AFE5D51C7 +:1023F000FE5F8787878787373839393A3B878787F2 +:1024000087FF42644E645D64BC64C0646464686455 +:10241000D864E86474646C647064D864E864D864F4 +:10242000E864D864DC64E064E464E864D864DC6490 +:10243000E064E464E864D864E864C864CC64D064AC +:10244000D464FE4DFAFCFE70AFB1B3B5B7FFFE4DDC +:10245000FDFE8D85FE8E84FE50B2B4B6FFFE8E006A +:10246000010203FFF4F6D8FFF5F780FFF0F2D8FF82 +:10247000F1F380FFF8D5D7FFD864E864B864BC6492 +:10248000C064C464D864E864C864CC64D064D464B0 +:10249000D864E864D864E864D864E864D864DC6428 +:1024A000E064E464E864D864DC64E064E464E86400 +:1024B000EC64F264F9640265C6C280FFC7C280FFA3 +:1024C000CED5D7FFCFD6D8FFC8CA80FFC9CBCDFFA6 +:1024D000D0D2D4FFD1D380FFAAC280FFB8C2C4FF3C +:1024E000C1C3C5FFAAC0CCFFB8C280FFBABCFE50B2 +:1024F000BEFFFE50B9BBBDBFFFFE50ACAEB0B2B424 +:10250000B6FFFE50ABADAFB1B3B5B7FF4C65D86405 +:10251000E8645065E064E464E864D864DC64E06422 +:10252000E464E864D864E864D864E864D864DC648B +:10253000E064E464E864D864DC64E064E464E8646F +:10254000D864E864C864CC64D064D464E3E580FFF4 +:10255000E4E6C4FF465E5865FE01EDFE417CFF6780 +:10256000656D6576658165FE42242630FFFE5D87D8 +:10257000FE422A2C2EFFFE5F878735FE422B2D2F31 +:10258000FFFE5F878736FE4231323334FF05010795 +:102590000BFE060502090BFD0805010C0BFE0B05E1 +:1025A000020E0BFD0DB765B765D565E065EB65F10E +:1025B000650000F765FB65020000020003051901D4 +:1025C00005B300050000054DFF05E7FE0200FD0212 +:1025D0000000FF00000410061210930614041000FF +:1025E000041106121093061404100005550188000A +:1025F0000005560188000005B8000005B900009BE1 +:1026000066BF66D966FD661D6745679368BD684706 +:10261000686B681F687769A1692B694F6903699FB7 +:1026200067C969B967D967FF676B686B686B68E5ED +:1026300068E568000000006367746781679267F36C +:1026400069076A276A3C6A516A666A6674AC66CC36 +:1026500066EA660A6732675667A468D26858688077 +:102660006834688869B6693C6964691869AC67DA76 +:1026700069C667E6670C68806880688068F668F6F7 +:102680006800000000BE66BE66BE66BE66006A14D4 +:102690006ABE66BE66BE66BE66BE66271002802D36 +:1026A000100282232C008428300102FF3D4AA0FF43 +:1026B00020FF0F3F400040FF0F38A0000000FF291F +:1026C0001002862830010328400004FF424BC0FF5F +:1026D00040FF0F42600060FFFF2610028E2D1002A7 +:1026E00090222C0092282F010BFF3049C0FF40FFA1 +:1026F0000F3EA000C0FF0F28000000FFFF273F0093 +:1027000004281002942830010DFF404BC0FF20FF29 +:102710000F41400060FF0F1CA0000000FF2A3B009B +:102720002A221002882A10028A22300105292D014E +:1027300006FF0F454000E0FF0F3AE000A0FF0F2624 +:10274000000040FFFF2510028C2E100208282001F7 +:1027500009272D000AFF0F35A0FF20FF0F2C800056 +:10276000A0FFFF1F1D029A2412029C25320117258B +:10277000420016FF2A10029E2A3001192840001C30 +:10278000FF201D02A0251202A22532011B244200B7 +:102790001AFF2A1002A42A30011D2840001CFF2A1B +:1027A0003C0021281002A6282E011FFF0F46000022 +:1027B00080FF0F37A0000000FF29490021281002E8 +:1027C000A8282B01AAFF4650E0FF60FF39466000B1 +:1027D000A0FF14396000C0FFFF281702AC293101A7 +:1027E0002228410021FF364AC0FF40FF2B3FC00096 +:1027F000E0FF1E2C200040FF1A1E40000000FF28B2 +:10280000490021281002A8292B01AEFF4853C0FF20 +:1028100040FF2F486000A0FF142F4000C0FFFF259D +:102820001002B02A1002B21C3801242A3001252CD3 +:10283000400026FF0F4B4001C0FF0F29800100FF21 +:102840000F2F8001A0FFFF251002B02A1002B2292D +:1028500030012829400027FF0F4B4000C0FF0F2AFE +:10286000800000FF3240A0002000FF251002B02AA7 +:102870001002B21C3801292830012B2840002AFF01 +:102880000F4A4000A0FF0F29800000FF293F800071 +:10289000C0FFFF1D2402B42D1002B82D3001B62D4B +:1028A00040002CFF274B800000000F27C000400095 +:1028B000303FE000A0002F37000040FFFF0E38023D +:1028C0002D1E300232281002C42E3001342E40005A +:1028D00033FF374AA0002000353F200120FF133886 +:1028E0004000A0FFFF27460027281002C628280125 +:1028F000CA183702C8FF1351000080FF314780001B +:102900000000FF25100296351002981E2801112E96 +:1029100023010F2D33000EFF0F3A6000E0FF0F314F +:10292000C00000000F22400020FFFF251002963556 +:102930001002982A2301132A330012FF0F3A600075 +:10294000E0FF0F32C00020000F22200020FFFF25F3 +:10295000100296351002981F28011028230115280F +:10296000330014FF0F3A4000C0FF0F30C000E0FFFB +:102970000F22E0FF00FFFF201002CC282000CE3005 +:1029800010023730200136FF1D38800000000F2C68 +:102990004001A0001F2B000040FF0F1F40FFC0FEA2 +:1029A000FF0F10023B1F1002D4261A00D83010026D +:1029B000D62D23013CFF1A382000A0FF192D00015D +:1029C000E0FE0F1FC001E000FF18390021121B02BA +:1029D0002E221002C21B2B0131FF3942C0FD40FDE7 +:1029E0002A39A0FEC0FD1F2F40FF40FE0F20A0FF90 +:1029F00000FFFF2940003E2930013F29100242FF1D +:102A00000F4B2000A0FFFF253F00072B2F01352C87 +:102A1000100244FF4048A0FF20FF343F6000C0FF89 +:102A20000F3AC0002000FF2A40003D2030412B30EB +:102A300030413E2010024630100248FF2633413F0D +:102A4000363180EA1C14024A2C13024C3C19004E09 +:102A5000FF2E4080EB1E3081EC2E3081ED1E1002E7 +:102A6000502E100252FF273681EE372C80EF1710C0 +:102A700002542716015637100158FF976AA46AB10D +:102A80006AA46AD86ACB6ABE6AE56AF26AFF6A22F9 +:102A90006B196B0C6B196B2D404500271044802D72 +:102AA000104440FF2D404500293044012910444284 +:102AB000FF2D4045002810448431104444FF273C3A +:102AC0004502212044462C104448FF2428444A282B +:102AD0002B454C2810444EFF2C0C4598252044567D +:102AE00025104404FF190D45881F1A44502F0D442A +:102AF0008CFF1C0D45902C174452350D4454FF2873 +:102B00003F45002610449436304403FF2940850099 +:102B1000261044F6361084DAFF2A4085002A104435 +:102B2000FCFF2A408500261044FA3610C4F2FF51FB +:102B30006B5E6B6B6B5E6B856B786B0000926B9B57 +:102B40006BA46BB16BB16BBA6BC36BCC6BD56BDE2B +:102B50006B283091102820911128109282FF283084 +:102B600091102820911228109284FF27309110286C +:102B700020911328109286FF282091882810928A8D +:102B80002B2E470CFF28209192281092942C0C4752 +:102B90000CFF221891962D109298FF1E12918C2EE8 +:102BA00012928EFF272D9110291092902C209114B3 +:102BB000FF2A18D1F42A10D2F6FF2C1ED1F82A0AC7 +:102BC000D2FAFF290DD1FC261292FBFF270DD1FE70 +:102BD000201692FCFF270DD1FC241892FBFF280A37 +:102BE000D1FE211192FCFF016C0E6C176C0E6C2D46 +:102BF0006C3A6C246C476C546C776C846C616C6AB6 +:102C00006C253006BE251006C02A104658FF253018 +:102C100006BA251006BCFF253006D0251006D22B9B +:102C200010465AFF271046A02D3E4705FF20294693 +:102C300006260C46AC300C4707FF201046D02A2D44 +:102C4000470C301046D4FF1725465C270E46B03798 +:102C500010465EFF170A46B4270A46B8370A466090 +:102C6000FF271046BC27484708FF261046C03637C6 +:102C700046093610460AFF1730460B1710466227E2 +:102C80001046C4FF1F1046C82F1046CCFFC56CD697 +:102C90006CE76CD66C266D506D936D506D266D0D86 +:102CA0006D3B6D7E6D3B6D0D6DF86C3B6D656D3BE9 +:102CB0006DF86CDA6DC56DAC6D0C6EF36D256E360E +:102CC0006E436E586E2010486430104966243049B7 +:102CD000683430490DFF2610480E2620496A2640E8 +:102CE000490F36284910FF2010496C2730496E30B3 +:102CF00010487038294910FF21104872311048746B +:102D0000182D4976282049D8184C4811FF254049EC +:102D10000F0830497818364912211048723010488F +:102D200074282B497AFF2010482530104926142892 +:102D300009FC1A2049272A20497CFF293C490F1DFC +:102D400010487E2D1008DA1D404913252A09DCFFA2 +:102D50002B2B490F1C1048142C1049151C2C4916FC +:102D6000282009DEFF2740490F231008E03310090F +:102D7000E2253009E43538491745384918FF1C0861 +:102D800008E61C2849192C1049DC3C30491A4B3004 +:102D9000491BFF2A2B490F1F10481C2F1009E8263A +:102DA00020491D3E20491E4E20491FFF183809EAC0 +:102DB00018304820251008EC282809EE2848492119 +:102DC0002B3C470CFF0F4809F01738492227100801 +:102DD000F2272E09F42D2B4707FF123F09F616386C +:102DE0004923263009F828284924251008FA2C0EF2 +:102DF000470CFF2010482530104926142809FC1ADA +:102E0000204927282009FE2D2B470CFF201048259C +:102E100030104926142809FC1A2049272A20096065 +:102E2000330D470CFF261009623018096420300862 +:102E3000662C380968FF1728096A1F1849E02F1007 +:102E400049E4FF2011086C1F314928224149292FEC +:102E500015096E2F35492AFF1722096A1F1249E00A +:102E60002F0A49E4FF7D6E926EA36E926EB86ECD0E +:102E70006E7D6EEA6EFF6E7D6E186F316F28488E24 +:102E80002029308F222B388E0121108F2431108F72 +:102E900026FF28488E282830902A28108F2C1810BA +:102EA0008F02FF28488E2E28388E032B308F042166 +:102EB000108F3031108F32FF2C408E3426308E36FA +:102EC00028308F051D108F382D108F3AFF2B508E14 +:102ED0000623308E3C32408E073F408E0829308FCB +:102EE0000A1B108F3E2B108F40FF29408E4224304A +:102EF0008E4427308F091C108F462C108F48FF29D5 +:102F0000408E4A23308E4C21108F4E29208F50390D +:102F1000308F0B49318F0CFF2B458E522333905449 +:102F20002C2E9056252D8F0D2C0E8F583C158F5A18 +:102F3000FF2B3C8E5C291D8F5E1B1C4EA6390C4F4F +:102F4000AA471C8F802B4C8F0F292D8E0EFF686F88 +:102F50007D6F926F7D6FFB6F0C70EE6F1D70327026 +:102F6000C06FD96F926FAB6F1D4883E828408715FB +:102F70002110539C3120939A3110949CFF1D48835B +:102F8000E8284087151F30939E2F2093A027109488 +:102F9000A2FF1D4883E828408715213093A43120E3 +:102FA00093A6261094A836109416FF293F8715245F +:102FB00030931833319317241094AA341094ACFF33 +:102FC000132883E92A37871520299319301993AEDE +:102FD000251094B03510941AFF2A378715242893AA +:102FE0001B341893B2231094B4331094B6FF282BDB +:102FF00093B82828931C281094BAFF283E871D24D4 +:103000001E93BC281094BE310B931EFF2B3B871FD1 +:10301000212893C0312B93C2241094C4FF263587F6 +:10302000E0201993C6302993E12B1394C83B1094E8 +:10303000CAFF182A87E2201493CC2C3193CE2C138C +:1030400094D03C1094D2FFBB70AA709570AA70D037 +:1030500070E97002711B71BB71D071E5718B717079 +:1030600071797182710D7512751B752D758271796B +:103070007170718B719471A171AE71347149715617 +:103080007163710D7512751B752D756371567149DC +:10309000713471BE662638D6001E20D7202E20D768 +:1030A000221E10D6022E10D603FF2638D6001D2071 +:1030B000D7242D20D7262110D601FF2638D6001E72 +:1030C00020D7202E20D7221E10D6282E10D62AFF39 +:1030D0002C38D6002420D72C2B30D62E3420D605E1 +:1030E0001C10D60A2C10D607FF2E38D6002320D766 +:1030F000302F20D7323F30D6091C10D60A2C10D6DC +:1031000007FF2E38D6002320D7302F20D7343F2872 +:10311000D6091C10D60A2C10D607FF2E38D600234D +:1031200020D7302F20D7363F20D60C1C10D60A2CA3 +:1031300010D607FF2838D6002220D7382E32D614D2 +:103140002E22D7152610D613FF1E28D83A2E28D89F +:103150003C2410D83EFF1E28D8402E28D8422410E8 +:10316000D844FF1E28D8462E28D8482410D84AFF15 +:103170002230D8162210D84CFF2230D8172210D86F +:103180004EFF2230D8182210D850FF2220D75222CA +:1031900010D619FF2531D61A2220D7522210D6195F +:1031A000FF2734D6002220D7522210D619FF283804 +:1031B000D6002220D7522210D619FF2738D61B233B +:1031C00020D7543320D71C2910D61D2A27D81EFFFC +:1031D0002330D61F1C18D7562915D7583910D65A60 +:1031E0003928D660FF1E27D6612016D75C3013D74A +:1031F0005E3E10D6802E30D662FF38724D725A7203 +:103200004D726B7280726B72C372D872C3726B72C2 +:103210006B729572AA7295726B72ED72FE72137375 +:10322000FE72ED72467357732C7339738A73687329 +:1032300075739B73AC73BD732647D9682430D982EC +:103240002C27D9692010DA843010DA86FF2648D975 +:10325000042628D9882610DA8AFF2647D90426278B +:10326000D98C1D10DA8E2D10DA90FF2545D9062451 +:1032700026D9923430D9942110DA963110DA98FF99 +:103280002547D9062428D99A2410DA9E3410DA0B5F +:10329000343AD99CFF2347D9042227D9A03236D902 +:1032A000671C10DAA22C1EDAA4FF1D48D9061C28C0 +:1032B000D9A62C28D9A83A3CDA6A4A3CDA6B1F1006 +:1032C000DAAAFF2546D9042426D9AC3438D96C258E +:1032D00010DAAE3510DA6DFF2847D9042627D9B0A9 +:1032E0003638D96E2110DAB23110DAB4FF1C20D989 +:1032F000B62C20D9B81C10DA6F2C10DA70FF2A30E7 +:10330000D971201CD9BA301AD9BC1F10DA72331007 +:10331000DA73FF252CD9741F10D9BE2F10D9C01D08 +:1033200010DA753D10DA764D10DA6DFF2950D96844 +:103330002530D9C22510DAC4FF2844D9772224D9F0 +:10334000C62414DAC8FF2630D9CA2D33D9CC1F10B1 +:10335000DACE2F10DAD0FF2631D9D22528D9781D20 +:1033600010DA792710DAD4FF2930D9D61927D9D81D +:103370002610DADAFF2333D9DC2323D97A2710DAAF +:10338000DE3710DA7C333EDA7BFF2B30D9E02028A1 +:10339000D9E22510DAE4310CDA7DFF2829D9E623B9 +:1033A00023D9E82E10DAEA3E10DA7EFF1D1BD9EC95 +:1033B0001810D97F2810D9EE3811DAF0FF243A9985 +:1033C0006622289968260F9A6A322F9A6E422F9A9F +:1033D00070FFDC73E173E673EB73DC732810D66364 +:1033E000FF2810D664FF2810D665FF2810D666FF88 +:1033F00000740D741A740D74277438744D747F74CE +:10340000283B1B39272B1C3A28109C60FF283C1BAB +:1034100039282C9CFA28109C62FF283C9BFD292C03 +:103420009CFE27109C64FF1F321B2F1E1A1C5E255A +:103430000E9CDC1E261D20FF23321B381F1A9CDE2B +:10344000250E1C5A232E9DF91C231D1EFF23321B03 +:10345000381F1A9CDE250E1C5A17201D0C27201D14 +:1034600018292B9DFFFF23381B2325301C301E10ED +:103470009C7425408076253081782B10827AFF2835 +:10348000049D6CFF2B0A470CFF2B0A4B0CFFCC74DE +:10349000D174D674DB74CC74E074E974F274FF7484 +:1034A000047561756A7573750D7512751B752075D8 +:1034B00043754C75437578757D75327520752D751E +:1034C000827587758C75917596759B7528100A7035 +:1034D000FF28104D35FF28104B3AFF28104B3CFFBA +:1034E00020104A2C30104A2DFF20104A2E30104A4E +:1034F0002FFF28104B3220104A3030104A31FF285D +:10350000104B32FF21104B3331104B34FF28100C7D +:1035100072FF28100C7428304C36FF28104CECFF3A +:1035200026174CF0362F0C76280F4CE8FF280F4C4E +:10353000E8FF26174CF0362F0C7621350C78313504 +:103540000C7AFF26174CF0362F0C76FF26174CF01E +:10355000362F0C76383F4C37483F4C38583F4C3963 +:10356000FF20080C7830080C7AFF20080C7C30080B +:103570000C7EFF28080C40FF2B0D4B3BFF2B0D4B07 +:103580003DFF2C0ED80DFF2C0ED80EFF2C0DD80FA2 +:10359000FF2C0DD810FF2810D811FF2810D812FFCB +:1035A00024090101FFB175B675BB75B675B175BB60 +:1035B00075281083E3FF281083E4FF281083E5FFBC +:1035C000D475D975DE75E375E875ED75F2756175BD +:1035D0006A757375281095D4FF281095E6FF28109A +:1035E00095D6FF281095D8FF280395D6FF28039578 +:1035F000D8FF281095E7FF117616761B76207625E2 +:10360000762A762F7634763D7646764F76587661F2 +:103610007628108CF0FF28108CF1FF27108CF2FF19 +:1036200028108CF3FF28108CF4FF28108CF5FF284D +:10363000108CF6FF24108CF82A108CF7FF25108CC4 +:10364000F02A108CF7FF25108CF12A108CF7FF253B +:10365000108CF32A108CF7FF21108CF82C108CF7AB +:10366000FF28108CF8FF3EFF3200E0FBCD0D57CD58 +:103670005711F3DD21000006003E005F160D0E100D +:103680002100E077233C152003160D3C10F50D209A +:10369000F27B2100E0160D0E10BEC2F677233C151A +:1036A0002003160D3C10F20D20EF7B3CFE1420CBC6 +:1036B0003E005F160D0E102100D077233C1520032D +:1036C000160D3C10F50D20F27B2100D0160D0E10CA +:1036D000BEC2BD77233C152003160D3C10F20D2011 +:1036E000EF7B3CFE1420CBCD57112100E01101E00F +:1036F00001FF0F3600EDB02125EB2203EB3EFF3238 +:1037000000E0110000CD107CED4B6A00AFED4228C7 +:10371000013CCD107CED4B6C00ED422802CBCFF587 +:10372000470E1411D5D13E31CDF77B1155D23E3223 +:10373000CDF77BDDE5E17DB41155D12189782003FA +:10374000219178CD1C11FB3E70CD0F5778A7C4E8AE +:103750007BCD571121F77CCD1C11AF3282E83A1D89 +:10376000E8321DE80E00CDD77B3A06E9E603218258 +:10377000E82825477EA7202236100E143A1DE8F5CA +:10378000CDD77BF1CB4820083DF261773E0518D1BB +:103790003CFE0638CCAF18C936003A04E9CB4728BE +:1037A000C8CD5711215177E53A1DE821B177C326DD +:1037B0001F99783E79BA798B7A107B787B08D9117A +:1037C00000E02155D1012000EDB01120E02155D9B4 +:1037D000012000EDB0DD21DB771821D92100E011B7 +:1037E00055D1012000EDB02120E01155D901200074 +:1037F000EDB0D9C3D476DD219D7608D92155D111FC +:10380000897806071A13FD210C78187310F63E3AD2 +:10381000FD2116781869D97CD9FD211F781842D965 +:103820007DD9FD21287818393E3AFD213078184F8E +:10383000085F087BFD213A78182723D97ED9FD211E +:103840004478181DDB00CB47CAE776CB4F20F50143 +:1038500000100B79B020FBDB00CB4F28FAD908DD34 +:10386000E95F0F0F0F0FE60FC69027CE402777CBEB +:10387000DC3614CB9C237BE60FC69027CE402777FF +:10388000CBDC3614CB9C23FDE952414D20204E4722 +:10389000FF52414D20204F4BFF21307CCD1C11CDDC +:1038A000C17BCD1C111199D1DB03CDB27B11D9D1D4 +:1038B000DB04CDB27BDB04CB4F21967C2003219E21 +:1038C0007C115DD3CD1C11DB03E60121A67C200316 +:1038D00021B07C119ED3CD1C11DB03E60221BA7C02 +:1038E000200321BF7C11DED3CD1C11CD6F05111F2C +:1038F000D4CD0811CD8F0541119AD22A0AE97DA7AE +:103900002828BCF53E2028023E41CD1011CDF749B4 +:10391000F111D0D2281DE5218C7CCD1C11133E4223 +:10392000CD1011E16CCDF749180C21C47CCD1C11D0 +:1039300011D0D2CD1A57DB00CB4FC2A578C90114E4 +:10394000031155D4C521D87CCD1C11E51378CD08C1 +:1039500011CDC17B212C0019EBE1CD1C1121B6FE4C +:1039600019EBC110DF21EC7CCD1C112199992203A8 +:10397000E03E383282E82103E07EC6012777237ECD +:10398000CE0027771162D5CDFD10CDFD10DB0011E3 +:10399000A2D2CDB27BDB0111A2D3CDB27BDB02116F +:1039A000A2D4CDB27B3A82E8A728C63A04E9CB4F2D +:1039B00028DB3A06E9CB4F28D4C9AF3282E8F5219B +:1039C000617A5F160019193A04E9CB4720F97E3273 +:1039D00083E8321FE8233E00CDFE0D7ECDFE0D2193 +:1039E000567DCD1C11F1321EE80E00CDCE7B3A067D +:1039F000E9E6032182E8282E477EA720F13E00CD8C +:103A0000FE0DAF321FE836100E143A1EE8F5CDCE8B +:103A10007BF1CB4820083DF2E6793E1418C83CFE05 +:103A20001538C3AF18C036003A1FE8A72812473A26 +:103A300083E8A728113A04E9E60328B2CB4F201BFC +:103A40003A1EE8C3BE7978FEBA3283E83E01321FDF +:103A5000E8309B3A1EE83CFE1538E83E00CDFE0DEE +:103A6000C92D012D022D03B4059E042D062D072D11 +:103A7000102D112D122D132D142D152D16BA20FFDA +:103A800024BA22FF23BA212D172D18CD531121005E +:103A9000E036FE3A06E9E603280ACB4F280436FD55 +:103AA000180236FE3A04E9CB4F28E836FFC90E006B +:103AB0003C203221100111E0003E00CDDC7A2110C3 +:103AC000011120013E40CDDC7A21D00011E0003E02 +:103AD00080CDDC7A21D0001120013EC02207E821F0 +:103AE000DE75C3200E21C0002207E811D000219B03 +:103AF00066CD0C7B11F000216A6CCD0C7B1110019E +:103B0000217D6ECD0C7B113001216B72AFC3200E75 +:103B100011D0D10E143E41061ACDC77B1110D23EF2 +:103B200030060ACDC77BCDE87B3E04110400CD5B97 +:103B300011CDE87B1E01CD5B11CDE87B1E02CD5B74 +:103B400011CDE87B0100021E06CD5E110100041EAE +:103B500000CD65110100021E07CD65112110D40EA4 +:103B6000083E000604772310FC3CE60720F51120F0 +:103B700000190D20ECC3E87B0E001110D03E0B2E77 +:103B800020E50610CD10113DCD10113C10F621207E +:103B90000019EBFE0B3E0B20023E09E12D20E22135 +:103BA000DFD3360C23360D211FD4360E23360FC338 +:103BB000E87B2F6F0608AFCB0DCB17CD081110F6A1 +:103BC000C913133E310608CD10113C10FAC9FE0688 +:103BD00038013CA728013C6F2600292929292929D9 +:103BE0001150D919712371C93A04E9CB4F28F93A18 +:103BF00004E9CB4F20F9C9F5212C7CCD1C11F1CD66 +:103C000010111321297CCB08380321267CC31C11F9 +:103C1000F50100402100001A856F3E008C67130BF0 +:103C200079B020F3F1C94F4BFF4E47FF524F4DFF84 +:103C3000FE14FD50D144495020535720FFFD94D12C +:103C400044535731FDD4D144535732FDA3D1312EC3 +:103C50004F4EFDE3D1302E4F4646FD50D3424F44E8 +:103C6000592054595045FD90D3444946464943553F +:103C70004C5459FDD0D34445435245415345FD1062 +:103C8000D44649474854455253FD90D2434F494E7C +:103C9000204D4F4445FF5441424C452020FF555094 +:103CA0005249474854FF454153592020202020FFC6 +:103CB000444946464943554C54FF534C4F57FF46E1 +:103CC000415354FF202020202046524545202020EB +:103CD000504C4159202020FF494E54455246414303 +:103CE00045FF524541442044415441FFFD57D554BE +:103CF000494D4D494E47FFFE14FD50D1303120440F +:103D0000495020535749544348FD90D130322049FF +:103D10002F4F20504F5254FDD0D1303320534F55A8 +:103D20004E44FD10D2303420434841524143544563 +:103D300052FD50D2303520434F4C4F52FD90D2307F +:103D4000362043524F53532048415443482050415A +:103D5000545445524EFFFE14FD15D1534F554E4459 +:103D6000FD50D130312059454C4C204F4620504C0D +:103D700041594552284A554D502D4B49434B5329E3 +:103D8000FD93D143524544495420414444494E4750 +:103D900020534F554E44FDD0D130322059454C4C24 +:103DA000204F4620504C415945522850554E4348CB +:103DB00045532C4B49434B5329FD10D230332047F8 +:103DC000524F414E204F4620504C41594552204FB2 +:103DD0005220454E454D59FD50D23034204C41556E +:103DE0004748494E4720564F494345204F462045B6 +:103DF0004E454D4945532D31FD90D23035204C4133 +:103E0000554748494E4720564F494345204F462085 +:103E1000454E454D4945532D32FDD0D230362042D6 +:103E200055525354494E47204F4620504150455219 +:103E30002042414C4CFD13D34255525354494E47F6 +:103E4000204F4620445241474F4E27532045474775 +:103E5000FD50D330372053485249454B204F462020 +:103E6000504C41594552FD90D3303820504C415967 +:103E700045522052554E4E494E47FDD0D330392041 +:103E800048495454494E4720534F554E44FD10D491 +:103E90003130205357495348494E4720534F554ED0 +:103EA00044FD50D43131204255525354494E47209D +:103EB0004F4620534E414B4520504F54FD90D43136 +:103EC0003220424954494E4720534F554E44FDD06D +:103ED000D4313320534F554E44204F46204B4E494A +:103EE0005645532C424F4F4D4552414E4753FD10BE +:103EF000D5313420434F554E54494E4720504F49F9 +:103F00004E5453FD50D531352047414D4520535433 +:103F1000415254FD90D531362042474DFDD0D53128 +:103F20003720434F4D504C4554494F4E204F46206B +:103F300045414348205041545445524EFD10D6311E +:103F40003820434F4D504C4554494F4E204F46204A +:103F500047414D45FD50D631392047414D45204F11 +:103F6000564552FD90D632302054494D452055508B +:103F7000205741524E494E47FDD0D6323120414460 +:103F8000444954494F4E414C2046494748544552B4 +:103F9000FD16D74D5553494320454E44FFC7C7C76B +:103FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:103FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:103FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:103FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C771 +:103FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C761 +:103FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C751 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4e-c.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4e-c.bin.hex new file mode 100644 index 00000000..c97273bc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4e-c.bin.hex @@ -0,0 +1,1025 @@ +:10000000F3ED563100F02100E01101E001FF0F3661 +:1000100000EDB02125EB2203EBDB04CB7FCA667633 +:10002000CD8F0521CC051106EA017800EDB02A3FFD +:10003000067D6C67184CC7C708D92A03EB1120C08E +:1000400001C000EDB03A02E93200A03A03E9320003 +:10005000B0FDE5DDE5C38D00C7C7C7C7C7C7C7C7C4 +:10006000C7C7C7C7C7C7ED4563AD9C5272CF8741AD +:100070005437A7439151A74391519FB8E5D6855670 +:1000800035232280E92117E934FBC37E483A00E09A +:10009000A7FAF801DB04CB67201D2105E0CB7E2009 +:1000A00016CB46DB002009E602200CCBC6C3F001CC +:1000B000E601C2F001CB86DB04CB5F20102104E90E +:1000C000CB4E2809210EE835F2F00136083A00E05F +:1000D000FE063E472802ED5F2110E08677238677F3 +:1000E0002114E0347EE60316005F3A00E0217E0032 +:1000F000FE062813216E003A80E0E638FE20380222 +:100100003E180F4F060009197E2115E086772386D9 +:1001100077238677CD050DCD480DCD2F48CDE50D44 +:100120003A01E0A720073A13E9A7C21702CDF80366 +:100130003A00E0FE0BD2DD013E183200EB2125EB48 +:100140002203EB2201EB3A00E0875F160021560103 +:10015000195E2356EBE9C401C401BE0168016801C0 +:10016000B4016801B901BE01CD3F41CD2C403A80B8 +:10017000E0E607FE042808CDE540CDB31C1806CD07 +:10018000B31CCDE540CDB6473A00E1A7280EFE0AE4 +:100190003805CDDE371808CD95351803CDAC12CD16 +:1001A000C72F3A3FE3A7C4C12ECDC039CD722DCDA4 +:1001B000062F1810CD244D180BCD36541806CD003F +:1001C00040CDE5403A00EBA7281347FD2A01EBAFED +:1001D000110800FD7704FD7705FD1910F63A00E0DF +:1001E000FE063E372802ED5F2112E08677238677F0 +:1001F000DDE1FDE1D908FBC9F53E183200EB212510 +:10020000EB2203EB2201EBF13CC4AE7ACDF803CD37 +:10021000050DCDE50D18AD3100F03E013201E0AF26 +:100220003200E0FBCD78513EFF3206E02180E01144 +:1002300081E0011F003600EDB0DB03E60120083E3F +:10024000083280E03290E0CD6F053284E03294E0F5 +:100250002105E0CBBEAF3200E0DB04E6022110E96D +:10026000280B3A02E0E6012804CBC61802CB86210F +:1002700085E0CB4E200FCBCECD0D523EE1CD0F57BA +:100280003E70CD0F57CD5711AF3207E03208E0CDA9 +:1002900049043E043200E03E24CDFE0DDB04CB6772 +:1002A000280CCB6F20082104E9CB46C29C033A00FE +:1002B000E0FE0BCA3A03FE0CCAC002CDB80F18DC30 +:1002C0003E00CDFE0D3E22CDFE0D3EE1CD82053E2F +:1002D00038CD82053E01CD82052109E77EA7FAEAE5 +:1002E0000235CD972FCD5F0518EA110000D53E03EA +:1002F000CD8205D12A03E07DB428227BC601275F89 +:10030000ED521930025D547D93276F7C9A27672246 +:1003100003E0D5CD9A2F3E16CDFE0D18D13E38CD37 +:1003200082053A80E0E601C4C2533A80E0E607FE67 +:1003300004CCE94FCD3204CD50023E2DCD0F572ACB +:1003400003E07DB4CCB5562184E03528103A07E0AF +:10035000A7280DCDFE0D3EA9CD0F571803CDF4549F +:100360002102E0CB4E281B3A94E0A728157EEE012F +:100370007706102180E01190E04E1AEB71122313E2 +:1003800010F73A84E0A7C250022110E9CB86AF32C1 +:1003900006E03A13E9A7C21702C37E482105E0CB65 +:1003A000FE3E00CDFE0DAF3200E0CD571121000022 +:1003B0002202E9CD0D57215B59CD1C110E1411A756 +:1003C000D33A80E0E6F80F0F0FCD5B051127D4CDAF +:1003D00056053A06E9E6A020F92104E9CB4EC250C1 +:1003E000022106E9CB7E2006CB6E200718EBCD1B41 +:1003F0000418C9CD320418C42180E835237EA7280B +:100400000135237EA7280135237EA7280135237EC9 +:10041000A7280135237EA7280135C92180E0357E34 +:10042000E607FE07C07EE6F8FEF820023E28F60446 +:1004300077C92180E0347EE607FE05C07EE6F8C677 +:1004400008FE3020023E2877C9321CE83E01320007 +:10045000E0CD44063A80E0E601212100200321E0BE +:10046000BFE52217E8CD9B0EAF3215E9CD56573ABE +:100470001CE8A7CCE5043E023200E03E27CD0F5732 +:100480002107002217E82115E93421A15ACDBF0424 +:100490003E0BCD0F572115E93421F05ACDBF043A58 +:1004A0001CE8A7213F05CC1C113E54CD0F57E1227B +:1004B00017E8CD56572100002214E02216E0C93A71 +:1004C00080E0E607C8E601CA1C11CD56573A15E987 +:1004D000FE02C021D904C31C11FD67D6FE92817FA4 +:1004E000FDA7D683FF21FD04CD1C113A02E0E601F1 +:1004F0003CCD0811CD1C11CD5605C31C11FD67D391 +:10050000FEDB202020202020202020202020202052 +:1005100020202020FDA7D320FF2D504C41594552CB +:1005200020FF2D464C4F4F5220FDE7D320202020A6 +:100530002020202020202020202020202020FFFEFE +:10054000DBFD2CD420524541445920FD6CD42020A1 +:100550002020202020FF3A80E0E6073CC308113A23 +:1005600083E8A7C03E033283E83E16CDFE0DC9DB0B +:10057000032FE60C0F0FC602FE04D03CFE03C83E5C +:1005800002C93282E8CDE30F3A82E8A720F7C9DB3F +:10059000032F1F1F1F1F47210AE9DB04CB57201120 +:1005A000783CE6037723781F1FE603FE02DEF5772B +:1005B000C9783CE60FFE07380AFE093804FE0E38FB +:1005C000023E01CB5F28013C772377C90014955484 +:1005D000412E0015384141410015724E4E4900161A +:1005E00052414141001821494B4F00198541492E84 +:1005F000002007414E4F0021014D2E4B002551494F +:100600004941002570484154002635412E540028A8 +:100610001159452E00302153414900355049484D6C +:10062000003810414E490039185453490039754279 +:100630004148004010542E4B004315535549004883 +:10064000524E2E412180002202E92125EB1126EB9A +:1006500001BF003600EDB0CD4D07CDBE062180E3D1 +:100660001181E30131013600EDB0CD6608218A0821 +:10067000097E3200E1A7281121B0081160E30118BA +:1006800000CDB2063E013280E32120E51121E501D3 +:1006900043013600EDB0CD6608219E08097EA7C84B +:1006A0003200E12120091100E5011100CDB206C39D +:1006B000533D87C54F09C17E23666FEDB0C9210048 +:1006C000E71101E70123003600EDB03A80E0E607CC +:1006D000874F218008097E23666F2203E03E3F3268 +:1006E00009E72100502210E73A80E0E6013201E1FB +:1006F000282B2100E736202336402140CE2202E17C +:100700002100092212E72100102207E72100CD2253 +:1007100006E121C0022204E13E01C349073A80E01C +:10072000E60721E010FE0420032100102202E1214F +:1007300060D52212E72100D02207E72140DC220603 +:10074000E121C0112204E13EDF3214E7C92100E2B9 +:100750001101E20152013600EDB03A80E0E607FEF9 +:1007600004202E2100062242E3218007224EE321AD +:1007700000502244E32250E33E043246E33E073277 +:1007800052E33E40324CE33E503240E33E053247B6 +:10079000E3DD21D8E2DD360A3FDD360707210050D0 +:1007A00022DCE23A80E0E601210015110031280642 +:1007B0002100CC1100B022DAE2ED53D3E2CD66087D +:1007C000C5CB21C5C521B009097E23666F119CE107 +:1007D000011D00EDB0218009C1097E23666FB42898 +:1007E00005010800EDB0C121E00B091196E1EDA073 +:1007F000EDA0AF12C121180B097E32C1E121080C16 +:10080000097E3299E1329AE1329BE1FD210000211B +:100810002E0C09095E2356FD19DD210AE1111C0C7D +:100820000623CD4508FD2310F921FFE12208E1CD83 +:1008300066085059212C0B19EB2929291911F0E1CF +:100840000E09EDB0C9FD7E00F50F0F0F0FCD510859 +:10085000F1E60F8726006F197EDD7700237EDD77B6 +:1008600001DD23DD23C93A80E06FE607677DE638C6 +:10087000FE2038023E180F6F0F0F85844F0600C907 +:1008800000200020002000200020000100020000C5 +:100890000300020000040002000005000200000046 +:1008A000000A000000000B000000000C0000000027 +:1008B0000D00BC081C09D408EC08040900007000F5 +:1008C0000D54A8435A7066CC0000360016A9B60134 +:1008D0004B017C00000070000D54A82D435A66CCDB +:1008E0000000360016A9B6014B017C000000700024 +:1008F0000D54A81C384366CC0000360016A9B6017A +:100900004B017C00000070000D54A81C2D3866CCF3 +:100910000000360016A9B6014B017C00000000362D +:100920000030490000006100A400360016005200AB +:1009300049002D003C094D095E096F092000320075 +:100940002800330023006B077F3F3F387032003BA5 +:10095000003F00500038006B07B23F66387032002D +:100960003B003F005000380038047F66661C383B6F +:100970000044004A005F0044003804B2667F1C381F +:100980000000A8090000000000000000A809000005 +:10099000000000000000A8090000000000000000A6 +:1009A000A809000000000000B3FF07002E00D700D8 +:1009B000D809E109EF09FD090B0A280A310A3F0AA3 +:1009C0004D0A5B0A780A810A8F0A9D0AAB0AC80A97 +:1009D000D10ADF0AED0AFB0A99E5669954A82116A7 +:1009E0000B667FCC0354A82D5A7054A81C2D38CC0C +:1009F000E5A8FC54A82D5A70000000001654A899D0 +:100A0000B77FFC70A9A954543870A966CC54A85477 +:100A1000A80B162154A805080B038000997F667F58 +:100A2000CC664C7F997F7F4C7FBF336654A81F15DF +:100A30000B4C66B20354A82D5A7054A81C2D38B222 +:100A4000E5A8FC54A821385A000000001054A87FE3 +:100A5000B27FFC70A9A954541C387066CC54A854B9 +:100A6000A80B162154A805080B038000997F7F7FEF +:100A7000CC7F667F997F7F7F4CB2336654A81C136E +:100A80000B337FCC0354A82D5A7054A8101C2D99F9 +:100A9000E57FFC54A8162D43000000000B54A86607 +:100AA000B27FFC70A9A954541C387066CC54A85469 +:100AB000A80B162154A805080B038000CCCC7FCCD2 +:100AC000CC7F4C7FCCCCCC4C4C99336654A81913BA +:100AD0000B197FE50354A82D5A7054A8101C2D7FC4 +:100AE000CC54FC54A8162D43000000000B54A8540D +:100AF000A87FFC70A9A954541C1C7066CC54A8543F +:100B0000A80B162154A805080B038000E5CC7FCC68 +:100B1000E5997F7FE5CCCC7F000026334C00192679 +:100B2000334C0019334C6600194C667F043F5AB4AD +:100B3000E11A014900043F5AB4E11A014900045581 +:100B40005AB4E11A01490004555AB4E11A014900A6 +:100B500004665AB4E11A01490004665AB4E1E1009E +:100B6000520004665AB4E1E100520004665AB4E14E +:100B7000E100520004665AB4E1E100520004665AF2 +:100B8000B4E1E1005200047F5AB4E1A9005B000423 +:100B90007F5AB4E1A9005B00047F5AB4E1A9005B6D +:100BA00000047F5AB4E1A9005B00047F5AB4E1A9B4 +:100BB000005B00047F5AB4E1A9005B00047F5AB4D3 +:100BC000E1A9005B00047F5AB4E1A9005B00047F47 +:100BD0005AB4E1A9005B00047F5AB4E1A9005B00AC +:100BE00003030403050305030503050305030503C8 +:100BF00005030503050305030503050405040503B3 +:100C000005030503050505050D0C0B0A090B0A096B +:100C100008080A0909080709080807078000001CD6 +:100C20000038007000E1041C0438047004E1560C24 +:100C3000790C9C0CBF0CE20C560C790C9C0CBF0C74 +:100C4000E20C560C790C9C0CBF0CE20C560C790C87 +:100C50009C0CBF0CE20C0000000000000000000033 +:100C600000030004424343424423344343433334A8 +:100C700034434333433443300000610322003032B5 +:100C8000402723002312733203272073327103029B +:100C900052327521630000000000000000000000D7 +:100CA00000000000000000000034451317177321F6 +:100CB0003727326337343243223242232320000164 +:100CC0002303250070163106310025135423000735 +:100CD0001263616127125672162152000000000053 +:100CE00000000000000000000000000000060003FB +:100CF00031212317636132257253273215310621C2 +:100D000073161350003A10E9E601DB012802DB02FA +:100D10002A06E9CD3B0D2206E92108E917CB161773 +:100D200017CB161717CB16DB00E60F47DB02E610D2 +:100D3000B02A04E9CD3B0D2204E9C92F47AC4FA5E9 +:100D40006F792FA4B56F60C90F0F0F473A11E917DC +:100D50004FE649FE49200A2114E9347EE60FCCD63D +:100D60000D210CE9110AE9CDB10D210EE913CDB128 +:100D70000D2111E9712B4E2B0604CDA20D210DE999 +:100D80000602CDA20D793210E9D301DB042FA9E6CA +:100D90000128013C3216E93A0AE9A7C03E023213A3 +:100DA000E9C935F0360C2B7EA7C878A94FA0C0350D +:100DB000C9CB08CB1179E649FE01C0343A06E0A759 +:100DC0003E01CCFE0D1AFE012810FE08300A211249 +:100DD000E934BEC036003E09D6082113E986273023 +:100DE000023E9977C92117E97EA7C835237ED30033 +:100DF000F680D300231118E9010F00EDB0C9E5D545 +:100E000057CB7A28083A06E0A72812CBBA2117E96F +:100E10007EFE10300834235F7A16001977D1E1C9BD +:100E2000E54F3A00EB47FD2A01EBCB712120002072 +:100E30000321D0FF192205E8E10504C87E3C2852B1 +:100E40003A05E8CB71200B86FD77063A06E8CE001E +:100E5000180996FD77063A06E8DE00FD7707233A83 +:100E600016E95F7E935F3A07E883FD77023A08E868 +:100E7000CE00FD7703237EE61FFD77007E0707E6A1 +:100E800003B1FD7705237EFD7704110800FD1923CA +:100E900010AAFD2201EB783200EBC921A759CD1C25 +:100EA00011CDA510CDAB10CDCF10CDD910CDE61002 +:100EB0003A1CE8A7CC1A0F3E033281E83A09E73220 +:100EC0001AE83AE2E23219E8CD780FCD6B0F11A0A3 +:100ED000D00194053EA1CD10113C1310F93A80E0E9 +:100EE000E6073C673EA611E0D0CD0A0F3C1120D1A9 +:100EF000CD0A0F11E1D00E943EA8CD010F1121D1E2 +:100F00003C0604CD10111310FAC96C06050E94CDE1 +:100F10001011132D20010C10F6C93A80E0E6F80FED +:100F20000F0F47DB03E60120010578A7C8FE033851 +:100F3000023E03470E801129D1CD3F0F10FBC93E61 +:100F4000B8CD4F0FD5213E0019EBCD4F0FD1C9CDF4 +:100F500010113CCD10113CC91129D1AF4FCD630FF9 +:100F60001169D10606CD101110FBC91116D1211936 +:100F7000E83AE2E20E15180B1196D0211AE83A0968 +:100F8000E70E1496FA8F0FFE03380A3E031806FE8A +:100F9000FD30023EFD86770608D6086F3805FAADAB +:100FA0000F3E8AC678FE7720083E0218042EFF3EC8 +:100FB00003CD10117D10E2C93A00E0FE0328242A77 +:100FC00003E011CDFC19381B2108E07EA720063E66 +:100FD00000CDFE0D342185E87EA7200736383E97E8 +:100FE000CDFE0D211BE83A80E8BE284E77CD780F64 +:100FF000CD6B0F21E0D03A80E0E607875F1600193D +:101000003A80E8CBDC3A80E8E6183E9528013D7747 +:1010100011400019773A1CE8A7203F47DB03E6019F +:101020003A80E02002D608FE20380F3A80E8E61821 +:101030002805CD1A0F1803CD580F3A85E0E6012098 +:10104000192A81E0110050ED52380F2185E0CBC6FE +:101050002B343E98CDFE0DCDE6103A00E0FE03287D +:101060001FFE0C281B2181E87EA7201436032A03CB +:10107000E07DD601276F7CDE00276738032203E07E +:10108000CDD9103A83E04FED5B81E03A82E92A80C6 +:10109000E9913806200FED52300B793282E9ED5399 +:1010A00080E9CDCF10AF1183E018053E011193E028 +:1010B0002102E0AEEBE6011129D020031114D00E7D +:1010C000157E2BCD0811CDFD10CDFD10AF183921A7 +:1010D00082E9111FD00E0018E80E142104E011EA75 +:1010E000D0CDFD1018173A84E01162D16F06070EBB +:1010F000033EFE2D2001AFCD101110F7C97E2BF558 +:101100000F0F0F0FCD0811F1E60FC69027CE402725 +:10111000EB77CBDC71CB9C23EBC94E237E233CC801 +:101120003C28F73C2807D603CD101118EF5E235654 +:1011300018E94E237E233CC83C28F73C2810D603F0 +:10114000CD1011FE2020ED3E0BCD0F5718E65E238B +:101150005618E01601180216DB1E200100082100B7 +:10116000D0FD2100D873FD720023FD230B78B12040 +:10117000F4C9AF29176C67D511100019D12215E8F1 +:10118000192213E83A06E7875F1600214D66195EBB +:101190002356FD210000FD192A17E7FD7E00FEFF02 +:1011A000C85F160019ED5B13E8ED5230542A17E7BB +:1011B000FD5E01160019ED5B15E8ED5238432A1269 +:1011C000E73A01E7E640280AFD5E04FD5605ED52C8 +:1011D0001807FD5E02FD560319A7ED5B0FE8ED52FF +:1011E000381F2A12E7A7280AFD5E02FD5603ED52BA +:1011F0001807FD5E04FD560519A7ED5B11E8ED52D9 +:10120000D8110600FD1918903A00E0FE06C8DB046C +:101210002FCB77C9BE380523BE38012323237EC9CF +:101220002205E83A06E7216E1216005F197EA7C86C +:10123000FD21901287875FFD192A10E7FD5E02FDF0 +:10124000560319E5FD5E00FD56012A12E73A01E753 +:10125000E6402803191802ED52DD5E02DD5603ED6B +:1012600052ED5B05E83804ED52180119D1C90000B0 +:101270000000000000040001010003000202000061 +:10128000000000010101050500060000000000004B +:101290000000000000028018000280138003000498 +:1012A00080038018A00200182003800F2100E7CBE4 +:1012B0004E20122100E2CDCB12CDFE12CD8F13CDE8 +:1012C000EE13CD3F14CD3D15C923237EA7C835C2EB +:1012D000C912234E0600EB210AE10909CBBE2A08F8 +:1012E000E1EDA8EDA82208E1233600EBC3CA120005 +:1012F00000000101010202020303030404043A0195 +:10130000E7E6800EE428020E1C3A13E781FEE0D0E7 +:101310003209E85FE60F3DF821EF1206004F094E53 +:101320007BE6F00F0F5F0F0F83814FDD210AE1DDB8 +:1013300009DD09DDCB007EC02A08E11113E2ED5280 +:10134000C8473A01E7E6802135E2119AE1280421F5 +:1013500015E2137EA7C0237EFE0AD0E5D534235FB5 +:10136000878316005F1972233A09E87723DD7E0030 +:1013700077DD7E012A08E1237723712208E1DDCBA6 +:1013800000FEE1D135C03A99E177EB2B3601C92156 +:1013900036E27EA7C8471600237EC63677237E8AAC +:1013A000D2A4133D77232310F02A37E27CFEBE300F +:1013B0000B01001209ED4B12E7ED42D82155E27EF8 +:1013C000FE0AD0345F2156E2193A39E2F65877EB3B +:1013D0002136E23528107E1137E2213AE24F87812B +:1013E0004F0600EDB0C92B7EA7C8EBCBC6C92116AE +:1013F000E27EA7C8471600237ED63677237E9AD290 +:1014000003143C77232310F02A17E27CFE22380CC9 +:10141000010012ED42ED4B12E7ED42D02155E27E84 +:10142000FE0AD0345F2156E2193A19E2F63077EB22 +:101430002116E23528B07E1117E2211AE2189E3AF1 +:1014400060E247EE28C83AD8E2E6103A96E128036F +:101450003A97E1A728064F3A61E2B9D02155E27EDA +:10146000A7C84F23CB76200DCB6828530DC823CBBC +:101470007628F91804CB58203FCD2415F52A12E719 +:10148000110012ED521100BEED52300219EB3AD8A4 +:10149000E26FCB65281B3A97E1A7280BCB75281183 +:1014A0002ADAE2ED52380A2135E2F1E601C83600C7 +:1014B000C92160E2CBDE183E0DC823CB7620F9CDE2 +:1014C0002415F52A12E711001219110022ED5238E5 +:1014D0000219EB3AD8E26FCB6528163A97E1A728B4 +:1014E0000BCB75200C2ADAE2ED5230052115E218FB +:1014F000B92160E2CBEE2161E234230110007EA726 +:1015000028030918F9F177AF2336002373237223D8 +:101510003600233650237723360723772377233665 +:10152000022377C97E0D2807545D230600EDB02104 +:1015300055E235C9C1111000DD19101AC93A01E789 +:10154000E603200332D2E2210101221BE7221DE73C +:10155000DD2162E20605C5213415E5DD4E00CB61D3 +:10156000C8CB69C4261CCB59C43D1CCB41DD7E01D0 +:10157000C26E18CB51C28A16212F16E52100E7CB87 +:101580004EC2E21BFE01CAAA1B3847FE09CADD157E +:101590003016CDEF1B1100EF19D0CD7A1B79E6285C +:1015A0002F2160E2A677E1C9CDE71BDD7E06FE0AAA +:1015B0003004DD36060DCD3E16D81100FF2A0CE8AA +:1015C00019D2201BC93E0ADD8606DD7706DD36010D +:1015D0000AC9CDE71B1100F819D2C515C9CD541B96 +:1015E000CD611CDDBE0F280ADD350B2839DD770FF4 +:1015F0001809DD350E2008DD360B06DD360E05DD5B +:101600003507C03A1CE8A73E02200ADB03E6023E8B +:101610000420023E03DD77072109E77EA7F835F0B5 +:10162000211FE7CBCEC9211AE7353E09C3901B2104 +:101630007B6ADD7E01FE05C27D1A79C3801A1180A6 +:1016400016CDD21AD0F53E91CDFE0DF1FA53163ECD +:1016500080182421D2E234CDC91A7E200EFE023E2B +:101660008038143E8228103E85180CFE023E8C38CD +:10167000063E8028023E8221D200EBCD602F37C982 +:10168000F2F0F2F2F20201FFFFFF212218E5210041 +:10169000E7CB4EC2E21BFE09CADD15D20B17FE01D5 +:1016A000CAAA1BD29215CDE71BCD2818D82A0CE860 +:1016B0001100E119DA7A1BDDCB0B4620262A0CE853 +:1016C0001100FA19381DDDCB0BC63A02E7FE0328DC +:1016D00008FE062804FE07200A3A13E021C1E1BEF5 +:1016E000DAE5172A10E71180A119D82A0AE811C0F3 +:1016F00000CB712803191802ED52DA201BC9DD3620 +:101700000100DD360600DD360707C9DD5E0EDD5659 +:101710000FDD7E06FE0AF5C4701CCDE21BF1281D0C +:1017200011D6FFCDAC1C19CDA51CEBCD9E1C1911FB +:101730000050ED52193001EBCD971C38C1DDCB0BB9 +:101740004E201CCD8A1C1160FF19220FE8114001A8 +:10175000192211E8CD9E1C111400CD72113828DD1C +:1017600035072018DD7E0A3CDD770A875F160021E9 +:10177000FC17197EDD7707237EDD7706DD7E06FE0A +:101780000FD879EEC04FC93A02E7FE032808FE06DB +:101790002804FE072024CD9E1C110C013E91CDFE95 +:1017A0000DCDE22E3E07F5CDAC1CEB210000ED5235 +:1017B000CDA51CDDCB0BCEF118AEDD360609CD9ED6 +:1017C0001C11000A19AF29076C67EBCD8A1CCDC923 +:1017D0001A3E8020023E82CD602F3E91CDFE0D212B +:1017E0005B1CC3961BDD36010A21A003CDA51C217D +:1017F0002800DD750EDD740FAFC36817030A070CF0 +:10180000070D070E070F0710FF0B030A070D070E42 +:10181000070F0710FF0B030A0710070F070E070D2E +:10182000FF0B212F6BC33216116418CDD21AD0F5DD +:101830003A0BE8E680CBB12802CBF1DD71003E9196 +:10184000CDFE0DF1FA4B183E81181321D2E2347E01 +:10185000FE023E80DA77163E81CA77163E8421BEAC +:1018600000C37A16FFF0FFFFFFFF01FFFFFF2172A9 +:101870001AE52100E7CB4E202ADD6E08DD66092B34 +:10188000CB7C2006DD7508DD74098716005F219783 +:1018900018197E23666FE9281AAA1B6C19C219AEA3 +:1018A000189919F5CDE21BF1FE05CABD19C9CDE2A3 +:1018B0001BCD491A3020DD350AF53E91CDFE0DF1E4 +:1018C0002804DD3401C9CD77162115E2CB71280338 +:1018D0002135E23600C91100FF2A0CE819380B3E09 +:1018E00005215A00DD3606021865DD7E08A7CAFD0F +:1018F00019DD7E06FE022865DD3507C0DD7E0EA7F8 +:10190000C24219212BE37EFE03DD3407D0878634E3 +:101910002316005F19E5CD8A1C11C00079E6402826 +:1019200003191802ED52EBE147DD7E06D609B077C8 +:1019300023732372CDBF1DDD350EDD360710DD3478 +:1019400006C9DD360602DD350BC02AF5E13E03DDB2 +:101950007508DD7409DD7701DD360702C92A0CE858 +:1019600011A0F519215A003E0038E4C9CDE21B3E12 +:1019700002DDBE06280CDD3507C0DD7706DD360743 +:1019800003C9CD491ADAB618DD3507C0DD360804BB +:10199000DD360900DD360103C9CDEF1BCD491ADA6A +:1019A000B618DD7E08A72006DD7E09A728451100B0 +:1019B000F62A0CE819DA3C1ACDB81A387F79EE40CD +:1019C0004FC9CDE21BCD491ADAB618DD7E08A72033 +:1019D00006DD7E09A7281C1100F72A0CE819300A39 +:1019E0001100FE19D0DD360100C9CDB81AD8DD3698 +:1019F0000105C9DD3601043AF0E1DD770B21F1E1A3 +:101A00003A10E0BE3E0938023E0BDD7706233A115C +:101A1000E0FE55380623FEAA3801237EDD7708DD77 +:101A2000360E00DD36070BC9CDE71B1100F619D8BD +:101A3000DD7E08A72006DD7E09A728B7DD36010375 +:101A4000DD360602DD360702C93A01E7E603200467 +:101A5000DDCB0096DDCB0056C0118016CDD21AD05A +:101A6000DDCB00D63E85F0CDC91A3E8320023E87ED +:101A700037C92A0CE81100E419D821E76B79EE4048 +:101A8000E6C0DDCB0066C8EBCD9E1C296C2600CBE2 +:101A9000142207E82A0AE8DD4E06D5060016FF29BB +:101AA00038015029295C2A15E7192203E8EBE109DE +:101AB000094E236669C3200ECD911C2A06E1CB7125 +:101AC00028042A04E1EBED52C93A02E7FE08C8FEF9 +:101AD00009C9D5CDE71AE1D0CD181BD0F5E60FCD59 +:101AE0008E1BCD911CF1C93A0BE8473A01E707A8D4 +:101AF000E680C83A01E7E603C8E60211C00206051F +:101B0000200411000447ED52D03A02E7FE06D80443 +:101B1000D608D804804737C9581600197EFEFFC979 +:101B2000CD081220553A1CE8A73E02200ADB03E646 +:101B3000023E0420023E03DD7707DD360609DD366E +:101B40000109211AE734CD611CDD770FDD360B0664 +:101B5000DD360E05DDCB0056211BE728022323DDF1 +:101B6000CB00761180FF20042311800034462A1216 +:101B7000E71910FDCD831CC3E21BDDCB004E20090D +:101B8000DD3600002161E235C9DDCB00A6C9C604FF +:101B9000DD770621551CDD3601017E23DD7707CD7B +:101BA000A51CAFDD770EDD770FC9DD3507C2C41B7D +:101BB000CDAC1C7EA7FA7A1B23DD77067E23DD776A +:101BC00007CDA51CDD5E0EDD560F21160019DD7553 +:101BD0000EDD740FCD9E1CED52CD971C113900CD3A +:101BE0007A1CCD8A1C1821113600CD701C180611E4 +:101BF0003600CD7A1CDD3507200EDD360707DD35D2 +:101C000006F2081CDD360603ED5B12E77BE6E05FBB +:101C10007DE6E06FED52220AE83006110100EBED9F +:101C200052220CE8A7C92A12E711001019CD911C05 +:101C3000ED52D8DDCB00AE2160E2CBAEC9CD8A1C1F +:101C400011001019ED5B12E7ED52D8DDCB009E219B +:101C500060E2CB9EC90507070811FF05070A0817B0 +:101C6000FF3A00E0FE063A09E9C83A07E9E60FC97B +:101C7000CD8A1CCB71280A191809CD8A1CCB712872 +:101C8000F6ED52DD7502DD7403C9DD6E02DD66031B +:101C9000C9EBCD8A1CEBC9DD7504DD7405C9DD6EA9 +:101CA00004DD6605C9DD750CDD740DC9DD6E0CDD66 +:101CB000660DC9CD4A1ECDFD1DDD21FBE2CDC41C44 +:101CC000DD210BE3DD7E004FE610C83A00E7E602B7 +:101CD000C2A71DDD7E01FE01DA4B1D2826CDE91DC0 +:101CE0003AD9E2FE0128073AD8E2E610206DED5B12 +:101CF00012E7ED52DA5B1D1100EC19305EDD3600A3 +:101D0000001858DD7E0BDD6E04DD6605CB47280C20 +:101D1000ED5BBFE1FE032808ED521805ED5BBDE168 +:101D200019DD7504DD7405DD6E0CDD660DED5BBB44 +:101D3000E119DD750CDD740DCDEF1DDD5E0EDD5698 +:101D40000FED523816DDCB00AE180DCDE91DDD5E6E +:101D50000EDD560FED523003DD3401DDCB006E2079 +:101D60002EDD6E02DD66031140FF19220FE811809F +:101D700001192211E8DD6E04DD6605110800E5CDCC +:101D80007211E1300A111801CD9A2CDDCB00EEDD85 +:101D900035072013DD360702DD7E063CFE063804DB +:101DA000CDBF1DAFDD7706CDE21B1100E819D8DDF0 +:101DB0007E06FE033E403801AF21A575C37E1AE5BD +:101DC000D52A03E011CDFC193E9538023E99CDFE8F +:101DD0000DD1E1C9E5D52A03E011CDFC193E9238B9 +:101DE000023E9ACDFE0DD1E1C9DD6E0CDD660DDD42 +:101DF0005E02DD560319DD7502DD7403C9DD211BAA +:101E0000E3DD4E00CB61C8DD35072014DD36070564 +:101E1000DD34063A21E3FE0438062029DDCB00FE3E +:101E2000117200CD7A1CCDE21B2A27E3111B001989 +:101E30002227E3EB2A1FE3ED52221FE321D2733A5C +:101E40001BE3C37E1ADD360000C93AD8E24FA7284B +:101E50003DE610C82AE0E22BCB7C200322E0E2DD45 +:101E600021D8E23AE2E221FAE2A7FA771EFE3F2801 +:101E700006352005DD340A36703A80E0E607218415 +:101E80001EC3261F191F98223E21F024F2283A80F3 +:101E9000E0E6072AD3E2ED5B12E7ED52CB472801DB +:101EA0003FD8FE032006214F0322F8E2CB474F3EE6 +:101EB0001220023E5232D8E23E7032FAE23A61E239 +:101EC0002197E196D8C80605DD2162E2DDCB004608 +:101ED00020312A12E7DD5E02DD5603CB41280CDDFE +:101EE000CB0076281EED52381A180ADDCB0076207A +:101EF00012ED52300E6FDD7E01A77D2006DD36012A +:101F0000053DC8111000DD1910C2C9301FF91F119D +:101F100020451F591F64201B20CD6F2C219620E5E2 +:101F2000210B1FDD7E018716005F197E23666FE996 +:101F3000CD0D2D1100FA19D2CF1F1100C02ADAE2FF +:101F400019DA501FC9CDE21B1100FA19D2CF1FC9EF +:101F5000DD360103DD360600C9CDE21BCDE320DA14 +:101F60003620DD3507C0DD350EFA85202854DD34F6 +:101F700006DD3607053AE6E2FE02C0CDD41DED5B74 +:101F80000CE82160FA19D82100FE19D02ADAE211F2 +:101F9000000219220FE811C002192211E83ADEE20C +:101FA000FE0B380C280521006918082180611803F0 +:101FB000218059110500E5CD7211E1D0111001C346 +:101FC000952CDD350B200BDD3406DD360705C9CD3C +:101FD000E82C3A11E0219EE10604BE3808230609E8 +:101FE000BE3802060EDD7006DD360E043A12E02120 +:101FF000A0E1CD141232DFE2C9CDAA1BDDCB006611 +:10200000C0E121D8E2CBA621E8E2CBA6C9DD3601AA +:1020100002CDE21BDD3507CACF1FC9ED5B04E1DD50 +:102020006E02DD6603ED5238E4115500CD7A1C18BE +:10203000E0DD360106C9C61332DEE2FE1621262196 +:102040003803212C21CD961B21672D11D800CD19E5 +:102050002D3E08DA7A24DD7EFEDD36FE1CA720D177 +:10206000DD3401C9CD132DCDE320DA3620ED5B043C +:10207000E1DD6E02DD6603ED523805DD7E08A7C0A6 +:10208000DD360100C9DD360600DD360707DD360125 +:1020900005DD360825C9CDB92CCD782C218D6C11E4 +:1020A000A0FE3A01E7E6032004DDCB00AEE5DD7ECD +:1020B00001FE01281D2A0CE8192101E7DDCB00767D +:1020C000280A3804CBE61811CBA6180D3809CBEE38 +:1020D00018072101E7CBA6CBAEE1CD012DDD7E00B7 +:1020E000C37E1ACD0921D02A0CE81160FE19D03A1E +:1020F000DEE2FE043807FE092112213803211C21EB +:10210000CD181BD0DDCB00EEC9DD7E00E620C0C3BC +:10211000E71A0403FFFFFFFF04FFFFFF02000202B4 +:10212000020201FFFFFF0618081911FF061A081B1B +:1021300011FF4821F91F00225D2167211722213953 +:1021400022E5213221C3231FCD0D2D1100FB19D211 +:10215000DC211100C02ADAE219DA501FC9CDE21BD6 +:102160001100FB193076C9CDE21BCD4B22DA0A22D1 +:10217000DD3507C0DD350E285BDD3406DD36070BA7 +:102180003AE6E2FE02C0CDD41D2ADAE23ADEE2FEF1 +:1021900007381611E00119220FE811200219221147 +:1021A000E821005E111100181411400219220FE8F5 +:1021B00011E001192211E821006A110A00CD721103 +:1021C000D03ADEE2FE0721806C38032180601118CE +:1021D00000C3952CDD350B2006C32022CDE82C3A18 +:1021E00011E0219EE10604BE38020607DD70063AC2 +:1021F00012E021A5E1CD141232DFE2DD360E03C973 +:10220000CDE21BDD3507CA501FC9DD360600DD36BD +:10221000070BDD360102C9CD132DCD4B22C36D2036 +:10222000DD360600DD360707DD3601053A13E0210D +:10223000A0E1CD1412DD7708C9CDB92CCD782C21C1 +:10224000656E1120FECDA220C3702E3AD8E2E620A2 +:10225000C021E000CD2012D0DDCB00EED52105005D +:10226000CD5C2E216A2DCD192DD138052100901974 +:10227000C9F111EE003E09CD7A24DD360600218435 +:1022800022C3961B060A080B13FFA522F91F092477 +:10229000C722D22280243224CD6F2C219F24E52115 +:1022A0008A22C3231FCD0D2D1100F619D2C623118A +:1022B000005F2ADAE219D2501FC9DD360100DD368F +:1022C0000600DD360702C9CDE21B1100F619D2C6A1 +:1022D00023C9CDE21BCDB024DA4824DD3507C0DDAB +:1022E000350E2860FAB423DD3406DD36070BFD21F8 +:1022F000FBE2FDCB00662804FD210BE33AE7E2FE9A +:10230000022100693803218056FD7504FD7405FD26 +:10231000770B2ADAE21100FF19FD7502FD74031133 +:1023200000ED19FD750EFD740F2AB9E1FD750CFD68 +:10233000740D3E50FD7700AFFD7701FD77063E023C +:10234000FD7707C9DD340EDD3407FD21FBE2FDCB4F +:1023500000662814FDCB0D7EC0DDCBFF462812FDA4 +:10236000CB1066200CC3D323FD210BE3FDCB0D7EE8 +:10237000C0FD7E0BA72808FE0328043E0A18023E73 +:102380000CDD77062ADAE211C0FE19FD5E02FD5669 +:1023900003ED52D0FD360000DD35063A0BE3E610C2 +:1023A0003E0B200CDD350E3A11E021A5E1CD1412D3 +:1023B00032DFE2C92A0CE81100F519DABA22DD355C +:1023C0000B2009C320223A9FE132E3E2ED5FE601F0 +:1023D000DD77FFDD3601043A10E0219CE10600BE06 +:1023E000380B2304BE38062304BE380104DD700F09 +:1023F000780609FE023002060BDD7006DD36070B9B +:10240000DD360E02C9DD360102CDE21BDD3507C027 +:10241000DD34073A0BE3E610200D3AFBE2E6102824 +:10242000A5DDCBFF4620AC3AE4E232DEE2DD360148 +:1024300004C9ED5B06E1DD6E02DD6603ED5230C5D9 +:10244000115500CD7A1C18C1DD4606C60432DEE205 +:10245000216D2DCD192D3817DD700CDD360706DD09 +:102460007EFEDD36FE1CA7C23120DD360102C92109 +:10247000CC24CD961B11DC003E092ADAE2C3602F82 +:10248000CD132DCDB02438C0ED5B06E1DD6E02DD4D +:102490006603ED52D28020DD7E08A7CA8020C921C4 +:1024A00000E7CBF6CDB92CCD782C214E6FC39F2001 +:1024B000CD0921D02A0CE81160FE19D021C224C315 +:1024C000002102000202020201FFFFFF06070808C6 +:1024D00011FF1825F91FC325352540251B277F2609 +:1024E000D626E21B0328BA2737278427E3252F2681 +:1024F0002AF8E27DB428042B22F8E221D6E27EA756 +:10250000280135CD0F25DD21E8E2DDCB0066C821AD +:10251000D224CD231FC39328CD0D2D1100F819D23D +:102520008925DDCB0076C011005FDD6E02DD66031C +:1025300019D2501FC9CDE21B1100F819D28925C943 +:10254000CDE21BCDBA28DA4B26DD7E0EA7FCAF25E7 +:10255000DD3507C0A72815FA8C25DD8606DD770650 +:10256000CDDD34DD36070BDD360E00C9DD350BCA97 +:102570002022CDAF25DD360600DD350E3A11E021F3 +:10258000A5E1CD1412DD7707C9CDE82CCDD42CCA36 +:10259000DF273A12E0219EE10601BE38060423BE81 +:1025A000380104DD700EDD360604DD36070BC92A5E +:1025B0000CE81180F319D0F1DD360600DD3607078F +:1025C000C38020CDE21BDD3507C03AD7E2A7CA5051 +:1025D0001FDD36010DDD36061ADD3607082100E75E +:1025E000CBC6C9CDE21BDD3507C0DD360708DD34BB +:1025F00006DD7E06FE22C0DD3401DD36061EDD6E00 +:1026000002DD6603DDCB0076280E1100A1ED521924 +:1026100038141180FD19180E11800219ED5B06E1C6 +:10262000ED52193801EBDD7502DD7403C3E21BCDF9 +:10263000E21BDD3507C0DD360708DD3406DD7E062A +:10264000FE26C02100E7CB86C3501FA7284ADD36EF +:10265000060821702DCD192D21D62838117EDD7761 +:1026600007DD36010221D6E27E361C2377C9CD96DE +:102670001BDD6E02DD660311D7003E0AC3602FCD5D +:10268000E21BDD3507C0DD7E063CFE133840205DD1 +:10269000DD36071C3E26183A3E91CDFE0DDD6E025A +:1026A000DD6603221DE3DD7E00E650321BE32100E0 +:1026B00065221FE3215B002227E33E053222E3AFC0 +:1026C0003221E32100E7CBC6DD3601063E0BDD36C5 +:1026D0000708DD7706C9CDE21BDD3507C0DD7E06C4 +:1026E0003CFE1A38E92100E7CB86C38925DD340199 +:1026F000DD6E02DD6603118002DDCB0076200D1950 +:10270000EB2A06E1ED52193805EB1802ED52DD75A2 +:1027100002DD7403CDE21B3E0F18B3CD132DCDBAED +:1027200028DA4B26CDD42CCA8020DDCB0076CA888F +:10273000241100A1C37120DD35072016DD3407CD3B +:102740008728206CDD360707DD3506F25227DD3697 +:1027500006032A12E7DD5E0CDD560DED52EBDDCBF4 +:102760000076200D2A06E1ED523004ED5B06E118FB +:102770000A218085ED523803118085DD7302DD72F8 +:1027800003C3E21BCDE21BCD87282817DD3507C028 +:10279000DD7E0EA7CA7525FA9225DD8606DD770651 +:1027A000C36325DD360600DD360702DD36010BC9C1 +:1027B000DD36010CCD9225C3E21BCDE21BDD3507D2 +:1027C000C0DD360708DD3406DD7E06FE22C0218B23 +:1027D0000122F8E2DD3600002101E7CBA6185E21D8 +:1027E00000E7CBC63AE8E2E6102864DDE5DD21D853 +:1027F000E2CD7E28DD361708DD36161ADD36110AE1 +:10280000DDE1C9CDE21BDD3507C0DD360708DD346B +:1028100006DD7E06FE26C0211A0122F8E2CDA3279E +:10282000CD3D28ED5FE601C8DD36F10BDD36010058 +:10283000210000ED5BF4E2ED5222E4E2C9DD36F660 +:1028400000DD36F702DD36F1002100E7CB86C9ED69 +:102850005B0AE82160FD19380311A0022A12E7ED96 +:1028600053F4E2ED5222EAE221005022ECE2DD369E +:102870001050DD361708DD36161EDD361109DD363F +:102880000108DD36061AC93A02E7FE01C8FE09C88A +:10289000FE0AC92A0CE81100E8192197E11198E114 +:1028A00030083AE8E2E6102001EB7EA72803123652 +:1028B000002147701100FEC3AD20CDE71AD02A0CCD +:1028C000E81160FE19D021CC28C3181B00FF0000BE +:1028D000000001FFFFFF0609080A13FFFC28F91F8B +:1028E000EE2A5629CC298C2A14298F29C82A282B6C +:1028F000322B215A2CE521DC28C3231FCD0D2D11AD +:1029000060F719302A181CDD360707DD360100DDB7 +:10291000360600C9CD3C29CD701CCDE21B1160F7F5 +:102920001938E41100C02ADAE219DA501F1836DD2E +:10293000360709DD360604DD360106C9DD35072018 +:1029400011DD360709DD7E063CFE0528023E04DD6A +:102950007706111200C9CDE21B1160F7193E043051 +:1029600001AFDD7706CDA02B2A0CE81180FB19D82A +:10297000DD7E08A7C2E92ADD3606042A0CE811002C +:10298000FD19301C3AAAE1DD7707DD360107C9EDF4 +:102990005BABE1CD701CCDE21BCDA02BDD3507C0BC +:1029A000CDE82C2A0CE81180FC19DA552A3A11E0FE +:1029B000219EE10606BE380823060BBE380206102B +:1029C000DD7006DD360705DD360E05C9CDE21BCD0F +:1029D000A02BDD3507C0DD350E2862FAA329DD7E88 +:1029E0000EFE032047DD7E06FE0C21732A380821E7 +:1029F0007A2A280321812ADD7E0286235FDD7E0379 +:102A00008E2357ED530FE87B86235F7A8E2357ED95 +:102A10005311E85E2356236E2600EBE5CD7211E1DB +:102A2000300A11000419111800CD952CDD3406DD93 +:102A30005E0E160021872A197EDD7707C9DD350B6A +:102A400028133A12E021A5E1CD1412DD7707C92140 +:102A5000005022DCE2DD3606042ADAE21100FE191B +:102A6000ED5B04E1ED523871DD3601083AAAE1DD93 +:102A70007707C920016001806707400120020066D6 +:102A80000E8001000200500A01100B10CD3C29CD30 +:102A90007A1CCDB62ACDA02BDD7E08A7CA77292ABD +:102AA0000CE81100FB19DA37292ADAE2ED5B04E1C0 +:102AB000ED52DA7729C92ADAE2ED5B04E1ED523012 +:102AC00004ED53DAE2C3E21BED5BABE1CD7A1CCD42 +:102AD000B62ACDA02BDD3507C03A12E021A0E1CD0A +:102AE0001412DD7708DD360709DD360105C9CDE2B0 +:102AF0001BDD3507CA4F2AC9E178FE023E1B3804A8 +:102B000028013D3DDD770678FE032804AF32D6E28A +:102B100021692CCD961B21672D11DE00CD192D3E8C +:102B20000BDA7A24DD3401C9CDE21BDD3507CA5545 +:102B30002AC9CDE21B21D7E27EA720123ADEE2FEAF +:102B40001E200B3601210060111800CD952C2AE4BF +:102B5000E2DD3507201423237EFEFFCA4F2ADD77EE +:102B600006237EDD77072322E4E27EDD8604DD771F +:102B700004237EDD8E05DD7705C920011803AA0038 +:102B800018020000180356FF1704E0FEFF20011E84 +:102B900003AA001E0200001E0356FF1704E0FEFFFA +:102BA000CDE71AD021362CCD181BD047DD5E061696 +:102BB0000021402C197EFEFFC821D6E234FEFE28FB +:102BC0001CFE08380B5F78FE0238627BFE09280D78 +:102BD000805F21ADE1193A13E0BED2F82AE178FE18 +:102BE0000228383832DD360705DD36010ADD3606C3 +:102BF000173A80E00F0F0FE6035F160021322C1901 +:102C00003AD6E2BE217A2B380A218D2BAF32D7E299 +:102C100032D6E222E4E2C93E1518023E16DD7706FE +:102C2000DD360109DD36070B3E91CDFE0DAF32D604 +:102C3000E2C90403020200030000000102FFFFFFDB +:102C4000FFFFFFFFFEFEFE000000FEFE040404FE88 +:102C50000908080809FFFFFFFFFFCDB92CCD7E2C26 +:102C60001100FE21FA71C3AD200B1C081D13FFDDFE +:102C70007EFEA7C8DD35FEC93A80E0E6FCC02A0C1E +:102C8000E81100E8192198E11197E13801EB7EA7DE +:102C9000C8123600C93E91CDFE0D3A09E793F2B64F +:102CA0002CCD081220103A80E0E607FE023E0420F8 +:102CB000023E053207E0C3E22E2A0CE81160F71944 +:102CC0002100E7CBA6D8DD7E01FE01C83A61E2A76C +:102CD000C0CBE6C92AF8E27DB4C03A02E7FE092873 +:102CE00005FE0A28017CA7C93A10E0219CE10601F3 +:102CF000BE38062304BE380104DD700BDD36010446 +:102D0000C9E52A0CE81100EE19E1D0F1C9111B0048 +:102D1000C3EA1B111B00C3F21B3E83CDFE0D3E9187 +:102D2000CDFE0DD53A06E7E521422D5F1600195E6E +:102D3000E1193AE2E29632E2E2D1D03E87CDFE0DD1 +:102D400037C900000000000000020001010002007D +:102D50000101000000000001010003030000000069 +:102D60000000000000000000100C200C08181010DB +:102D70002010212BE37EA7C84723C54E11B400CBFA +:102D800049280311D200CB612807E521180019EB6F +:102D9000E1ED5307E8235EE523563A00E72AF7E121 +:102DA000CB71281AEBCB4F200119E5ED5B12E7ED53 +:102DB00052220AE838261100F019385E181BEBCBB6 +:102DC0004F2002ED52E53852ED5B12E7ED52220A38 +:102DD000E830091100101930412A0AE8CB4F2010C1 +:102DE000CB61200C1160001911C000ED52DC312EB6 +:102DF0002A0AE816FF293802160029295C2A15E755 +:102E000019EB21A07579EE40E640CD200ED1E1739B +:102E1000237223C105C27A2DC9E1212BE37E3587B8 +:102E2000862316005F19D1D113010300EDB8EB180A +:102E3000E1CB49200D2A10E71100A619D821005A2C +:102E400018123A02E7FE06C8FE07C83A06E7FE0572 +:102E5000C8210069111801CDE22E18BD2238E3EB1C +:102E6000296C26003001242236E33E073235E3C9BF +:102E70002135E37EA7C835C82A36E3C52207E82AEC +:102E800038E3ED5B03E819EBAF218474CD200EC16C +:102E9000C93A20E7FE033E012801AF323FE33A0181 +:102EA000E7CB7721FEFF2803210200223DE32A22FF +:102EB000E7296C2600300124223BE33E0E323AE340 +:102EC000C9213AE37EA7C835C82A3BE3C52207E8F3 +:102ED0002A3DE3ED5B15E719EBAF218974CD200E98 +:102EE000C1C93A1FE7E60120122222E7211FE7CBE2 +:102EF000C6237223733E83CDFE0DC93A09E7933092 +:102F000001AF3209E7C9214CE606047EA7C835287F +:102F100035C5235E2356ED5307E8235E2356234E23 +:102F200023E52A12E77DE6E06FEBED52E511001C88 +:102F30003804ED52180119E1300711F775AFCD9A39 +:102F40001AE1C110C6C9052814C5E5EB2106001910 +:102F5000788780874F0600EDB0AF1218E43600C9BD +:102F6000C5D5E51163E6215DE6011200EDB857E62F +:102F70007F5F3251E6E1224FE6E1224DE63EA9CBEA +:102F80007A28023E0B324CE6160021AD2F19195E4D +:102F90002356CD9A2FC1C91110002181E07E8327CD +:102FA00077237E8A2777237ECE002777C9200030BB +:102FB000004000500060008000900000010002000E +:102FC000030005001010003A81E3A7C8DD2182E369 +:102FD0000610C5DD4E00CB61C4E42FC1111300DD26 +:102FE0001910EFC921E736E521F72FDD5E01160044 +:102FF00019197E23666FE97F33D43119309833D4A1 +:1030000033C8324930EE3125328B3254315D31666E +:10301000314434783484343735CDE21B210070CD0F +:103020001D37DACD30CD7337DA1E33CD46373E91BA +:10303000DA2733DD3507C0DD360703DD7E063CFECB +:103040000420023E02DD7706C9CDE21BDD3508CA49 +:103050000631DD6E0EDD660F112000DDCB00562837 +:103060000DED523016DDCB0096210000180D19E54C +:103070001180FF19E13004DDCB00D6DD750EDD7463 +:103080000FDD5E0ADD560B19DD7502DD7403DD6EA2 +:1030900010DD6611114900DDCB0046280DED5230E0 +:1030A00016DDCB0086210000180D19E51100FE1970 +:1030B000E13004DDCB00C6DD7510DD7411DD5E0C82 +:1030C000DD560D19DD7504DD7405C32530DD3601CF +:1030D000063A71E3DD7708114000DD6E02DD66031C +:1030E000ED52DD750ADD740BDD730EDD720F11001C +:1030F00001DD6E04DD6605ED52DD750CDD740DDD60 +:103100007310DD7211C9CD3A333E86CDFE0DFD211F +:1031100082E306100E0ADD6E02DD6603FDCB00665B +:10312000202AFDCB00E6FD360707FD360614FD75A7 +:1031300002FD7403110074FD7304FD7205FD71013D +:103140003A81E33C3281E3790CFE0CC8111300FD97 +:103150001910C9C9ED5B76E3CD701C1810CDE21BC8 +:10316000ED5B72E3180EED5B76E3CD7A1CCDE21BCE +:10317000ED5B74E3210050CD3237DA13372A0CE8C7 +:10318000110003ED523023DD5E02DD560321E0FF26 +:1031900019220FE8212000192211E8DD6E04DD66F6 +:1031A00005110100CD7211DAC031DD3507C0DD3601 +:1031B0000703DD7E063CFE1620023E14DD7706C9BD +:1031C000DD6E04DD66051120013E91CDFE0DCDE2E0 +:1031D0002EC31337CDE21BCD7337DAED32CD463730 +:1031E0003E91DA2733210050CD1D373826C9CDE274 +:1031F0001BDD3507C0DD3406DD7E06FE102021DD37 +:1032000034013A0BE8CB7FDDCB00F62013DDCB0099 +:10321000B6180D3E86CDFE0DDD360107DD36060DF6 +:10322000DD360707C9CDE21B214001CD20123A024D +:10323000E7300AFE04CAA832FE05CAA832FE0628F4 +:1032400034FE0728303A06E7FE052829CB692025F9 +:10325000DD7E06FE12201E2A0AE8118006CB7120B0 +:1032600004ED52180119300D21006B112001CDCA57 +:1032700036DDCB00EEDD3507C0DD7E06FE13CAA2CB +:1032800032DD34063A70E3DD7707C9CDE21BDD3568 +:1032900007C0DD7E06FE18CA1337DD3406DD3607AB +:1032A00007C9DD36061718173E86CDFE0DDD6E0206 +:1032B000DD660311DC003E88CD602FDD360616DDAD +:1032C000360109DD360707C9CDE21BDD3507C0DD54 +:1032D0007E06DD3406DD360707FE0CC0DD7E0EA758 +:1032E000FCBA3CC313373E93CDFE0D18053E86CD88 +:1032F000FE0D3A01E7E601200706841181801805DA +:10330000068211808CED5FE67FFE2A382F43FE5542 +:10331000382A42182706883E86CDFE0D181E0687DD +:103320003E86CDFE0D1815CDFE0DDD6E04DD660565 +:1033300011800219112001CDCA360600DD700EDDA4 +:10334000360707DD360105DD36060AC93E86CDFEA5 +:103350000D18E7CDF636DD7E02FD7702DD7E03FD3A +:103360007703DD7E04FD7704DD7E05FD7705FDCB6B +:1033700000E6FD360707FD360105FD36060AC9CD14 +:10338000E21BCD7337DAE632CD46373E93389821CB +:103390000050CD1D37382BC9CDE21BCD7337DAF283 +:1033A00032DD3507C0DD360705DD3406DD7E06FE7D +:1033B00007207F3A0BE8CB7FDDCB00F6C8DDCB00E2 +:1033C000B6C9DD360103DD360705DD3606043E935A +:1033D000CDFE0DC9ED5B6EE3CD7A1CCDE21B110075 +:1033E000E419DA1337CB6920333A02E7FE0C282CB4 +:1033F0002A0AE811E000CB712804ED5218011930B7 +:103400001B2A10E71100AD193812210056112003B4 +:103410003E94CDFE0DCDCA36DDCB00EEDD3507C0C6 +:10342000DD360709DD7E063CFE0A20023E08DD7718 +:1034300006C9FE08C0DD360104DD360608DD3607A4 +:1034400009C3B333ED5B72E3CD7A1CCDE21BCDBF74 +:1034500037DA1533CD92373E91DA2733DD3508CA96 +:103460006B35DD3507C8DD36070BDD7E063CFE1B00 +:1034700038023E19DD7706C9ED5B74E3CD7A1C2A6C +:103480006AE3180AED5B76E3CD7A1C2A6CE322002E +:10349000E8CDE21BCDBF37DA1533CD92373E91DA56 +:1034A0002733ED5B00E8210050CD32373816DD358B +:1034B00007C8DD36070BDD7E063CFE1D38023E1BCD +:1034C000DD7706C93E86CDFE0DED5FE603CA1832F4 +:1034D000F5CD5333F1FE01CA3534C31337CDF6367B +:1034E000DD6E02DD6603110002DD7E00E64028038A +:1034F000191802ED52FD7502FD7403EE50FD7700C0 +:10350000DD7E0EC60CFD7701875F16002117351989 +:103510005EFD7304235EFD7305FD36070BFE1A2066 +:103520000BFD3606193A65E3FD7708C9FD36061B23 +:10353000C90066005F005AED5B63E3CD7A1CCDE203 +:103540001BCD7337DA1533CD46373E94DA2733DD9A +:103550003508CA4C33DD3507C0DD36070BDD7E0686 +:103560003CFE1F38023E1DDD7706C9CD53333E8633 +:10357000CDFE0DED5FE601CA13373E40DDAE00DD46 +:103580007700DD360110DD36061DDD36070B3A66A5 +:10359000E3DD7708C93A60E3ED5B12E72A61E3ED0A +:1035A00052380B2A63E3ED52380BFE011801A7C015 +:1035B000AF3200E1C92180E335C034237EFE10D054 +:1035C0003A17E0216AE31E00BE381D231CBE3818DE +:1035D0001C3A16E0FE7F3EF838023E062101E7CB9A +:1035E000762002ED445718233A16E016F7FE2A38E3 +:1035F0001A16FAFE55381416FDFE7F380E1603FE15 +:10360000AA38081606FED4380216093A02E7FE0167 +:103610002806FE093E0320023E062101E7CB76285C +:1036200002ED44BA200216003A02E7FE012806FE27 +:10363000093E0320023E09CB762002ED4482573A30 +:1036400013E78257CBC2EBDD216FE31113000610A5 +:10365000DD19DDCB00662814DD7E01FE033808FE8F +:10366000063809FE093005DD7E12BCC810E2EB3ACF +:1036700015E02165E3CD14122180E3772334DD21A9 +:103680006FE3011300DD09DDCB006620F8ED5FE696 +:1036900040F610DD7700DD7301DD7306DD7212DDAB +:1036A0007203DD360200210090DD7504DD7405DD56 +:1036B000360703210A00117D00DD750ADD740B2A2F +:1036C0006CE319DD750CDD740DC93A80E0E607FE88 +:1036D0000320113A09E793F2E436CD081220053EA3 +:1036E000053207E0C3E22E2A0CE81100E419D821C4 +:1036F0008E7479C37E1A3A81E3FE1030143C328115 +:10370000E3FD216FE3111300FD19FDCB006620F8E6 +:10371000C9F1C9DD3600002181E335F1C9E5DD6E6F +:103720000ADD660BDD5E0CDD560D19DD750CDD74F2 +:103730000DE1E5A7DD6E04DD6605ED52DD7504DD06 +:103740007405D1ED52C92A0CE8110003ED52D0DD09 +:103750005E02DD56032180FF19220FE82180001947 +:103760002211E8DD6E04DD660511800019110800E4 +:10377000C37211214001CD2012D0A7DD6E04DD6699 +:1037800005ED52D02100F819DD5E04DD5605A7EDE8 +:1037900052C92A0CE8110003ED52D0DD5E02DD565D +:1037A0000321C0FF19220FE8214000192211E8DD92 +:1037B0006E04DD660511800019110400C372112129 +:1037C000E000CD2012D0A7DD6E04DD6605ED52D0FD +:1037D0002180FB19DD5E04DD5605A7ED52C92A12D2 +:1037E000E711008019380ACDF637CDFF38CD6039A2 +:1037F000C9AF3200E1C906042172E57EA72805356C +:103800002310F8C9C5E53A80E0FE1021DB38380303 +:1038100021EB38160058CB03CB03195E2356E5ED98 +:103820004B12E721400F09ED52DAD93821C0F009D7 +:10383000ED52D2D9382176E53A0BE5BEDAD93834E3 +:10384000FD2162E5011500FD09FDCB006620F8FDB4 +:103850007302FD72032A12E73E10ED5238023E5009 +:10386000FD7700CDC53DD53A12E0210DE5BE300F04 +:10387000FDCB14CEE6023E3828023EA9FD77133A6E +:1038800013E0210EE5BE300EFDCB14C6E602232860 +:1038900001237EFD7712D1E1237E23666FFD75043F +:1038A000FD7405ED52FD750CFD740DF5FD7E01C630 +:1038B00004FD7701FE042809F1ED5FCB47280518C8 +:1038C00007F13804FDCB00DEFD360606FD36071095 +:1038D0003A0AE5E177C1C30038E1E1C1C30038002D +:1038E000710080005B0054003D00700023008000E8 +:1038F000710080005B0070003D0070002300803A82 +:1039000020E5A7C847DD2121E5DD6E00DD66011158 +:103910002900ED52EB210008ED523805CD0E3D187F +:1039200024DD7300DD72012A12E7ED52380A11001E +:10393000F01938250EFF180811001019301B0E0061 +:10394000C5CD553DC12120E535C805C87E230716E4 +:10395000005F197E23666F18B6DD23DD2310AAC928 +:103960003A49E5A7C847DD214AE5DD6E00DD66017D +:1039700011290019EB210080ED523005CD093D18C9 +:1039800024DD7300DD72012A12E7ED52380A1100BE +:10399000F01938250EFF180811001019301B0E0001 +:1039A000C5CD593DC12149E535C805C87E23071657 +:1039B000005F197E23666F18B7DD23DD2310ABC9C6 +:1039C0003A76E5A7C8DD2177E53A0BE547C5DD4E38 +:1039D00000CB61C4DF39C1111500DD1910EFC9DD5D +:1039E0007E01FE04380BFE07DA3B3CCAE93BC31FED +:1039F0003BDD3507200DDD360705DD35062804DD06 +:103A0000360601DDCB144E281DDD35132018DDCB25 +:103A10001456200ADDCB14D6DD3613A91808DDCBE9 +:103A20001496DDCB148EDDCB14462806DD3512CA84 +:103A3000923BDD6E02DD6603DD5E10DD5611DDCBEF +:103A400014562803110000CB712013ED52EB210016 +:103A5000F419381CDDCB00F621AB3EC3AA3B19EBB1 +:103A600021008419300ADDCB00B6217F3EC3AA3B7A +:103A7000DD7302DD7203D52A12E7ED521100113811 +:103A800008ED52D1380EC3FB3C19D138072100DFB5 +:103A900019DAFB3CFE03285CCD223D3DFAE43AD521 +:103AA000DD6E0CDD660D2806ED5B04E51804ED5BAC +:103AB00006E5CB59280DED52EBCB7A281EDDCB0065 +:103AC0009E181819EBCB7A2012A728052100EC18B4 +:103AD000032100F0193004DDCB00DEDD730CDD7254 +:103AE0000DE119EBDD6E08DD660919DD7504DD7485 +:103AF00005C37A3CCD223DD5ED5B04E5DD6E0CDDE2 +:103B0000660DCB592804ED521801193007DD360136 +:103B100000210000DD750CDD740DD119EB18C5DD39 +:103B20006E0EDD660FDD3507200911050019CDD5B4 +:103B30003B28247EDD8602DD7702237EDD8E03DDD9 +:103B40007703237EDD8604DD7704237EDD8E05DDAD +:103B50007705234EC37A3CDD360A00DD360600DDEC +:103B6000360705DD6E04DD6605DD5E08DD5609ED10 +:103B700052DD750CDD740DDD7E01D608200E3E038E +:103B8000DDCB009ECB7C2004DDCB00DEDD7701C3E6 +:103B90007A3CDDCB1486DDCB0076217F3EDDCB0089 +:103BA000B62007DDCB00F621AB3EE5DD6E04DD6619 +:103BB0000511009819E1300411160019CDD53B11FB +:103BC0000400194EDD7E01C608FE0B20023E08DD12 +:103BD0007701C37A3C7EFEFFC8DD7707237EDD7761 +:103BE0000623DD750EDD740FC9DD3507C2A93CDD86 +:103BF0007E06FE09280ADD360705DD3406C3A93C2A +:103C0000DD7E0EA7CAF23CCDBA3CC3F23C3E86CD67 +:103C1000FE0D3A01E7E6013E83200F3C180C11151A +:103C200001CDE22E3E94CDFE0DAFDD770EDD3607E1 +:103C300005DD360607DD360107186EDD3507282657 +:103C40003A00EBF53E013200EB2A01EBE52A03EBEB +:103C500011F8FF192201EB2203EBCDA93CE122016F +:103C6000EBF13200EBC9DD360600DD360705DD7EFF +:103C700001D60420023E03DD7701CDCF3CDA0D3CB6 +:103C8000DD5E02DD560321C0FF19220FE82180000E +:103C9000192211E8DD6E04DD660511000219110616 +:103CA00000E5CD7211E1DA1E3CCDE21B1100E419F2 +:103CB000D821C07579EE40C3801ADD6E04DD66053B +:103CC000291600CB125CDD6E02DD6603C3602F2176 +:103CD0004001CD2012D021800119EBDD6E04DD669C +:103CE00005ED52D02180F319DD5E04DD5605A7ED08 +:103CF00052C92176E535DD360000C92176E535DD8E +:103D0000CB0076DD36000020052120E5180321498F +:103D1000E57EFE14C83423C50706004F09732372DD +:103D2000C1C9DD6E0ADD660BED5B08E5DDCB005633 +:103D3000280EED52EB3015DDCB0096110000180C6B +:103D400019EB2100FC193004DDCB00D6DD730ADD50 +:103D5000720BC90E000610180206502176E53A0BC8 +:103D6000E5BED834FD2162E5111500FD19FDCB003B +:103D70006620F8ED5FE60CB0FD77002A12E71180AF +:103D800010CB412804ED52180A19118020ED521968 +:103D90003001EBFD7502FD7403FD360705FD3606A7 +:103DA00000CDC53DFD7E01FE01D8215F3E280321E7 +:103DB0006F3E3A10E0E60E16005F197EFD770C2389 +:103DC0007EFD770DC92149E67EA7200F3603ED5F02 +:103DD000E61C211F3E16005F191804352A4AE67EAC +:103DE00023224AE6FD7701FD361400213F3EA72835 +:103DF00003214F3EED5FE60E16005F195E2356FD70 +:103E00007308FD7209FD360B023A11E0210CE5BE84 +:103E10002A00E538032A02E5FD7510FD7411C90278 +:103E20000001000102000000000201000100020286 +:103E30000000010002010000010200010000020078 +:103E40005080540059805D00628066006B806F0076 +:103E50004E805100558058005C805F006380660092 +:103E6000008002000500078009800B000E00100092 +:103E700000000300068008800B000E000C001412E6 +:103E8000022A00470040120300008E00401202D6B2 +:103E9000FF470000FF12042A00B9FFC0120500000E +:103EA00072FFC01204D6FFB9FF80FF1202D6FF478F +:103EB0000000120300008E000012022A004700409A +:103EC000FF1204D6FFB9FF801205000072FF8012B6 +:103ED000042A00B9FFC0FFC7C7C7C7C7C7C7C7C73E +:103EE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C762 +:103EF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C752 +:103F0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C741 +:103F1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C731 +:103F2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C721 +:103F3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C711 +:103F4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C701 +:103F5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F1 +:103F6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E1 +:103F7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D1 +:103F8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C1 +:103F9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B1 +:103FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:103FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:103FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:103FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C771 +:103FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C761 +:103FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C751 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3m-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3m-.bin.hex new file mode 100644 index 00000000..e1058caf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3m-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000206070701030301000000D2 +:1000100000000060F090E0C0E0F0F8F8D0C0000010 +:1000200003010103030307070307070F1F1F0F0740 +:10003000FCFCFCFCF8F8F8F8E0E0C0C0E0E0F8FCFC +:10004000030307070F1F3F0F070E0E1C1E3F7F7F86 +:10005000FEFCFCF8F8F0F0E0000000000000C0E05A +:100060000000000000000000E0E0E070707C7F7F96 +:100070000000000000000000000000000000008000 +:100080000000000000000000000206070303010F4B +:100090000000000000000060F0C0F0F8E0E0E08048 +:1000A000000000000000011F1F060000000000000B +:1000B00000000000000080C0E038000000000000E8 +:1000C000000000000000000000020707030307070C +:1000D0000000000000000060F0C0F0F8E0E0E0C0C8 +:1000E000FF7F7FFFFEFEFEFE3838387C7CFFFFFF7F +:1000F0000000000000000000000000000000C0E060 +:100100000000071FFFFEFE000000000000000000CE +:100110000000E000000000000000000000000000FF +:100120000000000080C0FEFFFF9C080000000000EF +:10013000000000000000000080C00000000000007F +:10014000000000000000000000000001010307079C +:10015000000000000000000070E0E0C0E0F0FCFEE5 +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:1001800000000000E0F8FCFE770100000000000025 +:1001900000000000000000000080000000000000DF +:1001A000000000003C7EE7C3C3C3E77E3C000000C4 +:1001B00000000000000010C0E88000800000000087 +:1001C000000000003C7FE7C3C3C3E77E3C000000A3 +:1001D000000000000000E8C0FBE08000000000001C +:1001E00000000000383F7F63E3E3E3677F3C0000EB +:1001F0000000002000A8C080800000000000000077 +:1002000000000000383F7F63E3E3E3677F3C0000CA +:1002100000000102A8F0C4E080800000000000009F +:10022000004020202079FFA7B353D182041C150180 +:10023000387C7EFEFFFBE1C1F8FCFE6E8381C1428B +:10024000004020213B7FFFA7B351D2841C15010041 +:100250000060F0F8F8FCFCFCFCFC6C8585C14102F8 +:100260001F0F0F1F1F3F3F3F0E0E1C1C1E3F7F7FA7 +:10027000E0E0E0E0C0C0C0C0000000000000C0E05E +:1002800000000000000000000000000001010B0F52 +:1002900020202030387C7C7838707878F0E0C0C03E +:1002A0000F0F0F0F0F0E08000000000000000000ED +:1002B000C0C0E0E08000000000000000000000007E +:1002C000010F1F3F3F3F7F7F7F7F7F7F3F3F7F7FCC +:1002D000C0E0F0F0F8FCFEFFFFFFFFFFFFFFFFFFB5 +:1002E000010F1F00003F7F7F00007F7F3F00007FE6 +:1002F000C0E0F00000FCFEFF0000FFFFFF0000FC7C +:1003000001000000003F000000007F000000007FAF +:10031000C000000000FC00000000FF00000000FC26 +:1003200001010001010303030000010101030303B4 +:10033000FEFEFEFCFCFCFCFCE0E0C0C0E0E0FCFEDD +:1003400000000000000000000000000000000000AD +:1003500000000030780808000000000000000000E5 +:10036000000000000001050406070701030100006A +:10037000000000C0E0A0C0B8FCFCD880B0E0E00005 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000FFFF7FFFFFFFFFF939393F3F7FFFFFF777 +:1003B000000000000000C0C0C0C0E0F0DCFEF08023 +:1003C000000021211B1F1F0F0F3FDF070604080835 +:1003D0008080800008B0E0E0C080C0C0C020200065 +:1003E000000000000101040D0F07070303010000D6 +:1003F000000080C080C080F0F8F8B81040C0C00095 +:1004000000000000000000000000000000000000EC +:1004100000000000000000060F1F3F3F3F7F7F7F6E +:1004200000000000030300000000000103030101BD +:100430003F3F1F1FFFFF070100000092FFFFFFFE6D +:100440000000000000000000008080808080C0C0AC +:10045000000000000000000000000000000000009C +:10046000E0F0F8FCFEFEFFFBF0E000000000000002 +:10047000000000000030F8FCC67000000000000022 +:10048000000000000000000000000000000000006C +:100490000000000000000003070F1F1F1F3F3F3F29 +:1004A0000000000003030000000000000000000046 +:1004B0001F1F0F0FFFFF0300000000C97F7F7F3F5A +:1004C000000000000000000080C0C0C0C0C0E0E02C +:1004D000000000000000000000000000000000001C +:1004E000F0F8FCFEFFFFFFFD78700000808080C008 +:1004F000000000000018FCFE63780000000000000F +:1005000000000000000000000000000000000000EB +:10051000000000000000000000000092FF7F7F3F0D +:100520000000000000000000070E0E1C1E3F7F7F31 +:100530001F0F0F0F07070707000000000000C0E0B3 +:1005400000000000000000000000000080C0C0C0EB +:10055000000000000000000000000000000000009B +:10056000E0E0E0F0F0F0F0F0E0E0F070707C7F7F31 +:1005700000000000000000000000000000000080FB +:10058000000000000000000000000000000000006B +:100590000000000001070F1F3F7F7F7F7F3F1F008C +:1005A000000000000F0F0000000000080F07070305 +:1005B00000000000F8F8000000000088FCFCFEFECF +:1005C000000000000000000000000000000000012A +:1005D00000000103060C0D0F1E1C3C38387060E053 +:1005E00003070F1F1F1F1F1F1F1F1E1C18100000B7 +:1005F000C0C0E0E0C0C0C08080000000000000007B +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000070700000000000607030301A8 +:1006300000000000FCFC000000000022FEFEFFFFA6 +:1006400000000000041E3F7FFFFFFFFF7F3F1C00F4 +:1006500000000000033FFFFFFFFFFFFFFEE0000080 +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000C3F7FFFFFFFFFFF7F26 +:10069000000000000000000000C0FCFFFFFFFFFFA3 +:1006A0003F03000000000000000000000000000008 +:1006B000FFFF070000000000000000000000000035 +:1006C00000000000000000041E7FFFFFFFFFFF7F0F +:1006D00000000000000000000000008080C0F0F872 +:1006E0003F1F0F0301000000000000000000000099 +:1006F000FCFEFFFFFF7F1D00000000000000000067 +:1007000000000000000000000000000000000000E9 +:1007100000000000000000003C7EFEFFFFFFFF7FA6 +:10072000000000000F0F00000000000203030101A1 +:100730007F3F3F0FFFFF000000000048FCFEFEFE71 +:100740000000000000000000000001030303070791 +:1007500000010103030307071FFFFFFFFFFFFFFF68 +:1007600007070707030307070F0F07010000000033 +:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:1007800078FCFCFCFCFCFCF8F8FCFEFEF4F0E0F06D +:1007900000000000000020202030387C7C78387079 +:1007A000F0F8FDFFFFFFFFFFFFFFFFFEF8C0C0E016 +:1007B0007878F0E0C0C0C0C0E0E080000000000039 +:1007C00000000000000000007F7FFFEF0F0F070711 +:1007D0000000000000000000FCFCFCFEF0F8F8F84F +:1007E00007030307070F0F0F03030707070F0F0F79 +:1007F000F8F8F8F8F0F0F0F08080000080C0F8F829 +:1008000000000000000000000000010303000007DA +:1008100000010100000307070000FFFFFF0000FFC9 +:100820000707000003030700000F07010000000096 +:10083000FFFF0000FFFFFF0000FFFFFF0000FFFFC2 +:1008400078FCFC0000FCFCF80000FEFEF40000F068 +:1008500000000000000020200000387C7C000070B8 +:10086000F0F80000FFFFFF0000FFFFFE0000C0E007 +:1008700078780000C0C0C00000E0800000000000E8 +:1008800000000000000000007F0000EF0F0F0000DC +:100890000000000000000000FC0000FEF0F8000076 +:1008A00007030300000F0F0F0000070707000000F9 +:1008B000F8F8F80000F0F0F0000000008000000000 +:1008C0000000000000000000000001000000000720 +:1008D00000000000000300000000FF00000000FF17 +:1008E0000000000003000000000F000000000000F6 +:1008F00000000000FF00000000FF00000000FF00FB +:100900007800000000FC00000000FE00000000F085 +:10091000000000000000000000003800000000702F +:1009200000000000FF00000000FF00000000C00009 +:1009300000000000C000000000E000000000000017 +:100940000000000000000000000000EF00000000B8 +:100950000000000000000000000000FE0000000099 +:1009600007000000000F000000000700000000006A +:10097000F800000000F0000000000000000000008F +:10098000FFFF7F1F0F0F0F0F1F1F3F3F03030301C9 +:10099000FEFEFEFCFEFEFEFFFFFEFEFEFFFFFFFE74 +:1009A000010100010103030300000101010303032E +:1009B000FEFEFEFCFCFCFCFCE0E0C0C0E0E0FEFE55 +:1009C000FFFF00000F0F0F00001F3F3F000003015B +:1009D000FCF80000FEFEFE0000FEFEFE0000FFFE32 +:1009E00001000001010300000000010000030303F7 +:1009F000FE0000FCFCFC0000E0E0C00000E0FEFEA9 +:100A0000000000000F000000001F000000000300B5 +:100A100000000000FE00000000FE00000000FF00DB +:100A200000000001000000000000000000030000C2 +:100A3000000000FC00000000E000000000E00000FA +:100A400000000000000000000000000000010101A3 +:100A500000000000000000387C7EFEFEFEFEFCFC74 +:100A6000010101010F0F0000000000060303030154 +:100A7000FCF8FCFCFEFEFEFFFF7E3E7EFFFFFFFE5D +:100A80000000000000000000030F1F1F3F3F7F7F9A +:100A90000000000000000000E0F0F0B0B0C0C0C0F6 +:100AA0007F7F7FFEFFFFFFFFFF7F7F3F0F0F070767 +:100AB0008000000000F2F0C08080E0F8F8F8F8FC58 +:100AC000000000000000010307070F0F0F0F1F1F9A +:100AD0000000000161F0F8F8F8F8F0F0F0E0E0C094 +:100AE0001F3F3F3F3F3F1F07010000000000000085 +:100AF000C0E0E1F3F7FEFEFAFA786C404020000017 +:100B000000000000001F0F03030100000000071F8A +:100B100000303C3F3FFFFBF8F8F878180000000079 +:100B20001C00000000000103070F0F0F1F1800003A +:100B300000001C1E3FFFFFFFFFFFFFFFFF7F0F03B3 +:100B40000000000000000000000000000000008025 +:100B50000000000000000000000000000000000095 +:100B6000E0FCFCF9FFFFFFFFFFFFFFDE1E1C0C0097 +:100B700040C0A0E0E0E08080000000000000000035 +:100B80000000000000000000000000000000010163 +:100B90000000000000000103070101000060F0F800 +:100BA0000303070707030101000000000000000025 +:100BB000F8F8F8F8FCFDFFFFFFFF7F7F3F3F1F0FB6 +:100BC0003F7FFFFFFFFEFCF8F0E0C0000000207058 +:100BD000C0C0808000000000000000000000000095 +:100BE00070E3C7EFFFFFFFFFFFFFFFF8700000009B +:100BF0000080E0F8FCFEFEFCFCFEFFFFFF7F772399 +:100C000000000000E080F09010C000000000000034 +:100C100000000000000000000000000000000000D4 +:100C200000001D1B150F0B01171C00000000000029 +:100C300040E0E0C080A0B030F0E0C0000000000064 +:100C40000000000000000000000303070700000090 +:100C500000001010185A7E7C3870E0E0F0000000B0 +:100C60000000000000010002070705010101010367 +:100C700000000040E080E0C0F0F8F8F8E0E0C0805C +:100C80000000010306020300070303000000000048 +:100C900000008010B8F8F8F0F8F87C3C183010002C +:100CA000000000020505070300030100000000002A +:100CB0000000607060F8F8FCFCBC8C0C04000000C4 +:100CC00000000307030305171B1E0C0100000000B2 +:100CD00000001070F8F8FEF080C0C0C000000000F6 +:100CE000000000000C1E1E1E1E0E0080C0F8FCFE40 +:100CF00000000000000000000000000000000000F4 +:100D00000000000000000000000206070303070FB8 +:100D10000000000000000060F0C0F0F8E0E0E080BB +:100D200000000000000000FCFCFCF87878F8F8F007 +:100D3000000000002060F0F0F06000000000000003 +:100D4000000000000001071F3FFEFCF8F0F0E0C0CB +:100D500000000020F0F0F8C080000000000000005B +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000C0E0E0E0E0C0000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC000000000000CB8F8FCFCC0000000000000AF +:100DD0000000387C7C7C381000000000000000001F +:100DE00000000000000000000101030202000000FA +:100DF00006000000000000E0F8F8F8FC7C3C0C0065 +:100E000000000103030303030303010000000000CB +:100E100070E0E0E0E0C0C0C0C08080C00000000022 +:100E2000000000000001050D0707070F1F0F1FBF7F +:100E300000000000C0E080E0F0C0C0C080C0E0F86A +:100E4000801C7F7F3F3F1F0F0F070703000000003C +:100E50000000000000000000808000000000000092 +:100E60000103070F0F07070703010101000000003E +:100E7000808080C0C0C0C0C0C0C0C0F020000000E2 +:100E8000000000000000000000010100060F5F7F6D +:100E9000000000000000183CB0BCFEF8F8FEFFFFA8 +:100EA0000F0F070703030303010101010000000006 +:100EB0000000008080C0C0C0C0C0C0800000000032 +:100EC000E0F0F8FCFEFFFF7F1F0F030000000000B2 +:100ED00000000000000080C0E0F0F87C5800000036 +:100EE0000000000000000001050D0707071F077F35 +:100EF000000000000000C0E080E0F0C0C0C00000C2 +:100F000000000000000000030000000000000000DE +:100F100000000000000000FC0000000000000000D5 +:100F200000000000000000000000000000000000C1 +:100F300000000040404040C0404000000000000071 +:100F4000070F0F1F1515040000010101000000002C +:100F5000FCFCFEFEF6F777FBFBFBF3F7F7F3717093 +:100F60000000000000000000000000000000808081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA00000000002040C0C080C0F0E0C68488402B0 +:100FB00000000000000000000000800000000000B1 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000007C7C3C18080100000000009C +:1010000000000000000000000206060E0E2E3E3E0C +:1010100000000000000000000000000000000000D0 +:101020003C1C1C0A060E1E3C3C38383030F0706008 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:10105000000000000000000000E03078FCFCFEFE14 +:10106000012121317171F9F9F87078383C181811A3 +:10107000FEFEFEFEFEFEFEFCFCFC3E1C3878F8FC8C +:101080000000000000000000000000000000000060 +:101090001010000000000000100F1F3E3E1E1CE05C +:1010A0000101030303030707070301000000000019 +:1010B000F0F0E0E0C0C0C0808080000000000000D0 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E000787878787C7C7C3C3C3E0E0700000000E1 +:1010F00000000000000000000000000000000000F0 +:101100000300010303070707070F0F0F0F0F0F0F50 +:1011100080C0E0F0F0F8F8F8F8F8F8F8F8F8F0F037 +:101120000F07070707030002030301010100000086 +:10113000F00080F0B018181C0C9EFEFCF8F8F8F8CF +:10114000000000000000000000000000000000039C +:101150000000000000000000F878F8F0F07070E087 +:101160000307070F0F1F1F0F0707030301000000EE +:10117000E0E0C0C0C080808000000000800000006F +:1011800003010707070F0F1F1F3F3F7F7F7FFFFFF1 +:1011900080C0E0F0F0F8F8F8F8F8F8F8F8F8F0F0B7 +:1011A000FF7F3C381101010101030303000000002F +:1011B000F0F00000E0E0F0F0F0F0F8F8F87C7C7E71 +:1011C000000000000000000000000000000000001F +:1011D00000000000000000000000000000000010FF +:1011E00000000000000000000000000000000000FF +:1011F0003F3E7E7C7C7878787030301000000000B4 +:101200000000000000000000003F1F1F0F07070F35 +:1012100000000000000000000000000080808080CE +:101220000E0F0F0F0F0F0F0F07030100000000003C +:10123000000000000080808080808080000000002E +:10124000000177FFFFFFFFFFFF7F7F7F3F3F1F1FF3 +:1012500000FCFEFFFFFFFFFFFFFFFFC7C7C1E0F875 +:101260000F07000003070703030101030707070F28 +:10127000F8E00008FCFEFEFFFFFFDFCFC7C3818060 +:101280000000000000000000000000000000C0F0AE +:10129000000000000000101038B8B8F87870602026 +:1012A000F6FFFFFFFFDCC080000000000000000030 +:1012B00000008000000000000000000000000000AE +:1012C0000000000000000000000000000001050711 +:1012D00000000000000000000000F0F0F0E0E0C0BE +:1012E0000F0F1F1F1F1E1E1C1C18180800000000D7 +:1012F000C08080000000000000000000000000002E +:101300000000101818181C1C1C1E1E3E1E3E3E3EDF +:1013100000000000000000000000000000000000CD +:101320003E3C1C1C1C1C1C1C1C0C0600000000006D +:1013300000000000000000000000000000000000AD +:101340000001737FFFFFFFFFFF7F7F7F3F3F1F1F76 +:1013500000FCFEFFFFFFFFFFFFFFFFE7E7E1F4FCFC +:101360000F070003070F0F07070703030303070710 +:10137000F80000808080800080808080C0C0C080B5 +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000103D +:1013A000000000000000C0F0F6FEFFFFFFDCC08080 +:1013B00038B8B8F8787060000000800000000000C5 +:1013C0000000000000000000070F070703131F3F85 +:1013D00000000000000000008080C0C0839F1F1F2D +:1013E0003E3E3E3E3C3C3C3838381C040000000089 +:1013F0001F1F1F1E0E0E0E0E0E060703000000001C +:10140000030307777FFFFFFFFFFF7F7F3F3F3F1F04 +:10141000F0FCFCBEFEDFDFDFDF8F1FFFFF1F1F0FB3 +:101420001F1F03010307070F070707030707070F1E +:101430008F9FFFF7FBF8F8F0E0E0E0E0E0E0C0C0ED +:10144000000000000000000000000000000000009C +:101450000000000000000000003E3C1E3EFCFCF8C6 +:101460000101010101010101010101010000000070 +:10147000F8F8F0F0F0E0E0E0C0C0C0C0000000000C +:101480000000000000000000030302000000000054 +:101490000000000000000000F87CFCFC7C783C7C34 +:1014A0000000000101010000010101000000000036 +:1014B0007C38F8F8F0F0E0E0E0E0F8F80000000038 +:1014C000070F01737FFFFFFFFFFF7F7F3F0F0301C8 +:1014D000F0FCFFFFFFFFFDF8F0F1F9FFFFFFFFFE5B +:1014E00000000000000000000000000000000000FC +:1014F000FC181103070F1D3F3F1F1F3F3E3E3C3EA0 +:101500000000E0E0F0F0E0E0F0F1FBFBDF9F0F3FD8 +:101510000000000000081C7CFCFCFCF8F0B0C0C01F +:101520007FFFFCA8CBC70F8F8700000000000000E2 +:10153000800000000080800000000000000000002B +:101540000000000000000000010303010101000091 +:101550000000000000000000F0F0F8F0F0E0F8F803 +:101560000000000000000000010101000000000078 +:10157000F8F0F0F0F0E0E0E0E0C0C0800000000033 +:101580000103030F1F3F7FFFFFFF3F07070103001A +:10159000C0F0F0F9FDFFE3E3E1F4FCFCFCFC78F8BB +:1015A000000000010307070703010000000000001E +:1015B0000000F0F0F0F8F8FCFE7E3F1F0F0F070F61 +:1015C000000000000000000000000000080F0F0FE6 +:1015D000000000000000000000011F0FCEBEBEBED4 +:1015E0001F1F1F1F1E1E1E3C3C1C0C000000000085 +:1015F000BEBE3E1E1C1C1C1C1C1C1E0E000000003F +:101600000000000001133333737171F0F078393842 +:10161000E03078F8FFFFFFFFFFFFFEFEFE7EFCFCE0 +:1016200010000000010303010100000000000000A1 +:10163000FC0000F8F8FCFCFCFEFE7E1F3F1F0B07C1 +:10164000000000000000000000000000000000009A +:101650000000000000000000000000004060F1F900 +:101660000001010303070303030200000000000060 +:10167000F9F1F1E1E0C0808001000000000000000D +:101680000000000000000404047CFC7C78F8F8F8FA +:10169000000000000000000000000000000000004A +:1016A000F0F0F0E0E0E0E0E0E0E0E040000000002A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D0000000000000000000000000000000010306 +:1016E00000000000000000000000000000000000FA +:1016F00007070F1F1F1F0F0E0400010F0F070F0F0B +:1017000000000000000000000000011B7FFFFFFF41 +:1017100000000000000C1E58FE7F7CFCFCC0C0C016 +:10172000FFFFF7CF1F3F3F7F7E80FEFFFFFFFFF5EC +:10173000E0E0E0E0C0C0800000000080C0E0E070B9 +:1017400000000000000000000000000007070F1F5D +:101750000000000000000000000000007F7FFFFF8D +:101760001F3F3F7F7F7EFCF0FBFF7DF8F9C101004A +:10177000FFFFFEF8A6FE7D3FC0FFFFFDF9E0E0C0E1 +:1017800000000000000000000000FFFF7F7F7F7F5F +:10179000000000000000000000000080C0C0E0E089 +:1017A0007F1FF3F1E09E7FFFFEFCFCBC3C7E7E3C95 +:1017B000F0F0F0F070F8F8F8F0F0C0000000000071 +:1017C00000000000010303030F1F3F7FFFFF7F7F27 +:1017D00000000000FFFFFFFEFCF7FBFCFFE9C0C0BC +:1017E00003030301010000000000000000000000EE +:1017F00080C0E0E0E0F0C0000000183E3E2B292948 +:10180000000000037F7F7F3F0F73EF1FBF0F0700B4 +:1018100000000000C0C0E0E0E0F0F0F0F8FCFCFFE9 +:1018200000387CFCFCF8781000000000000000800C +:10183000FCFC2C040400000000000000000000007C +:10184000000001071F3F7FFFFFFFF8F1F8797B6180 +:1018500070F8FCFCFEFEFEFEFEFEFCFCFCF8F8F060 +:1018600001030E1F1F1F1F0F0307070201030303BE +:10187000F0F000F0F0F0F0F0F0F0F0E0E0E0E0E0A8 +:101880000101010301010303070707070707070712 +:10189000E0E0E0F0F0E0C0C0C0C0C0C0C0C0C0C068 +:1018A0000707070707070301010000000000000009 +:1018B000C0808080000000808000000000000000E8 +:1018C000030F3F3F7FFFFF7E707879792703010C7C +:1018D000FEFEFFFFFFFFFF3F7FFEFCF8F8F0E07029 +:1018E0003F3F3F1F1B0700000000000000000000FA +:1018F00000C8F8F8FCFEFE7F170703070201030388 +:1019000000000000000000000000000000000000D7 +:101910000000000000000000000202030303E3F2E5 +:10192000010307071F0F0600000000000000000071 +:10193000FEFEFCF0E080000000000000000000005F +:101940000000000001030301010303317B7FFFFF5F +:10195000000030787078FCFDFDFDFDF5F1F1F8F840 +:10196000FFFFFFFF7F3F0F1F0F0707000000070F5C +:10197000F8F8FDFFFFFFFFFDFCF8E0000070F0F05D +:101980000000000000000000000000000000000057 +:1019900000000000000000103038383070706060C7 +:1019A0000000000000000000000000000000000037 +:1019B0004000004040406060606040000000000067 +:1019C0000000000000000000000000000000010313 +:1019D0000F161E1E1E1E1E1E3C1C3C7C3C3878F042 +:1019E0000307070707070F0F0E0606000000000099 +:1019F000E0E0C0C0808000000000000000000000A7 +:101A0000F8FCFC7E7E3F1F0F0F070703030F0F0F2D +:101A1000000000000000008080C0C08080808080C6 +:101A20000F0F0F0F0F0F0F07070703010000000034 +:101A30008080808080000000000080800000000026 +:101A40000000000000000103030101030303777F8E +:101A50000000000030786078FCF0F0F0C0F0FEFE8E +:101A6000FFFFFFFFFFFF7F7F7F7F7F7F7F3F0301C0 +:101A7000FFFFFFFED8981999FFFFFFFFFFFFC78EFA +:101A80003F3E3F1F1F0F0F070301070F073F7E7EDB +:101A9000F0F878B8BCBCBCBEBEDEDEBC7C7C7CF89A +:101AA000FCF8F8F0F0E0E0C0C0C0800000000000EA +:101AB000F8F8F8F0F0F0F0F0E0E06030000000003E +:101AC000000000000001010707C3E3F7FFFFFFFF6D +:101AD00000000000809838FCF4B898C04000808076 +:101AE000FFFF7F7FEEF4F0F060800000E4ECDEFFAB +:101AF00080800000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B10000103070F0F1F3F3F7FFFFEFCF1F87878AE +:101B200000000000000000000000000000000000B5 +:101B3000782000000E0F1E3E2A2B08000000000037 +:101B40000F0F0F0F0707070301030303010F0F0F09 +:101B5000A0A0D0D0D8D8E8E8ECECDCDCD8F8F8F8D5 +:101B60000F0F0F0F0F1F1F1F1F1F0F0F060000006B +:101B7000F0F0F0F0F0E0E0E0E0E0F0E00000000085 +:101B80000000000000000001030101000000001F30 +:101B9000000000003870285CDCC84080C060C0C015 +:101BA0001F3F3F3F3F7E7CFCF9F17B7931200003F2 +:101BB000DABB7B3B3B3F7FFFFFFEFEFCFC0000FCF3 +:101BC00000000000000000000000000000071F3EB1 +:101BD00000000000000008080C0C0E0E0E0E3E3E29 +:101BE0003E3E3E3E3C3C3C3C3838781C0C000000FD +:101BF0003C3C3C3C3C3C3C383838380C0000000055 +:101C0000000000000001010707C3E3F3F7F7E7CF87 +:101C100000000000809838FCF4B898C04000808034 +:101C2000DF9F3F7FFFFFFEFEFCF80000F0F8F8F8B2 +:101C300080800000000000000000000000000000A4 +:101C40000000000001010307070F1F1F1F1E1F0FC9 +:101C5000002060E0E0E0E0E0E0E0E0C00000202004 +:101C60000D08000001030303070505010000000043 +:101C70002020000000C0E0C0CFCF6F07070703039C +:101C800000000000000000000000000000050F0F31 +:101C90001010181818181C1C3C7C787838F8F8F8C4 +:101CA0000F0F0F1F1F1F3F3F3F3F1D190800000070 +:101CB000F8F0F0F0E0E0E0E0E4C2C2C3E71F0F0795 +:101CC00000000000010101050F07C3EFFFFFFFFF48 +:101CD0000000000010B8BCF0F8DCCC600080C0C090 +:101CE000FFFFFFFF7E7C7C1C0060F8FCFEFFFFFF17 +:101CF000C0C0808000000000000000000000808064 +:101D0000000000000008183838787878F8F8F8F003 +:101D100000000000000000000000000000000000C3 +:101D2000E0F0F0706040000008181E1F3D39282CBC +:101D3000000000000000000000007E7F3F3F0F0712 +:101D4000000000000000000000000107073F7FFFC7 +:101D50000000000000000000000080808080808083 +:101D6000FFFFFB7B7B7B797978380C0C000000004F +:101D700080C0C0C0C0C0E0E0F0B0000000000000C3 +:101D800000000000070E070717141D0F070F0F03B1 +:101D900000000000000080C080008000E0F0F0F84B +:101DA000030307070F0F1F1F1F1F1F3F3E3C3E1F50 +:101DB000FCFEFFFEFEFEFCFC958000000000000023 +:101DC00000000000000000000307070707070703E3 +:101DD00000000000000000009CFFFFFFFFFDE0008E +:101DE0000000000000000000E0F0D0C0E080C06013 +:101DF00000000000000000000000000000000000E3 +:101E00000000C0F8FC7E7F7F7F0F81C0E0E0F0F033 +:101E100000000000000030F0E0E0E04000000000C2 +:101E2000F8F8FCFC7E7E3E1F1F0F0700000000003C +:101E3000000000000000000080E0C0800000000002 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E800003010F070F1F0F0F0703030000010103DA +:101E90000080C0E0C0C0C0E0C0C000000000008002 +:101EA000030301010000000000000000000000002A +:101EB0008080C4FFFF2F060000000000000000002B +:101EC000000000000000000000000000000060FEB4 +:101ED0000000000000000000000000000000000002 +:101EE000FEFF7F0F070307070F1F070F0600000005 +:101EF000000080C0E0E0E0C0C08080800000000002 +:101F00000000000001000703070F0707030101009D +:101F10000000000080C0E0F0E0E0E0F0E0E08000E1 +:101F200000010101010000000000000000000000AD +:101F3000008080C0C0C0E0603A3F1F0F0600000074 +:101F4000000000000000001C1F1F0F0F0707070FF5 +:101F50000000000000000000C0C0C0C08080800001 +:101F60000F0F1E3E3C7CFC78383010000000000053 +:101F700000000060301000000000000000000000C1 +:101F80000000000000000000000002020607070732 +:101F90000004347D7F7FFFFEFE3A30100000000019 +:101FA0000303010100000101000000000000000027 +:101FB0000080C0C0C0E0E0E0C00000000000000001 +:101FC0000000000003070F00000000000000006791 +:101FD000000000000080800000000000000080C0C1 +:101FE000FFFE38200000000000000000000000009C +:101FF000F0F01000003C3C7E3E7E3F3E7C3E1000F8 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3n-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3n-.bin.hex new file mode 100644 index 00000000..425c676a --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3n-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000FCFEFC000000000000CA +:10004000073C387B7F7F7F3F3F7F7F3F3F3361C0EF +:10005000C040200000B0B81C04C6F6E4ECCE9EDF21 +:100060001C1C1E1E1F1C080C0505010303267E7F99 +:10007000787838383878F0F0F0F0F8E0C0003CFCE0 +:1000800000000000000020402000000800010F1FB9 +:10009000000000000000000000000000C0E0F0F0E0 +:1000A000004040E0E8D8F07030180E060200000072 +:1000B0000000000000000000000000000000000040 +:1000C0000001030F0E08183CFDFBC30100000000F7 +:1000D000001CFCBE3E3F7FFFFFFFFFFFFC700107DF +:1000E000000000000000000000000004000000000C +:1000F00000000000000000000000000000083E704A +:10010000C7070706060E7E7F7F7F7F3F3F3F1E1C8F +:100110008080000000000C04040C8C9C9C1838703B +:10012000000000030F0F0F070703197CFEFFFFFFFE +:1001300000000088CCECFC9C8CCCECC607EFEFCF29 +:100140000000000000000000000020402000000827 +:100150000000000000000000000000006070488403 +:100160001F1F373331313919030F0F1F17334081E8 +:10017000E0F0F0F0F0F0F0F8F8F8F8F0E0800C1EA5 +:100180000000000704080804030008080403000036 +:10019000000000000000000080790000008067007F +:1001A0003D383C3F3F3F3F3E1F0F0F070704000312 +:1001B000E060703030F070303090B0A020409CFC97 +:1001C0000000000000000000204020000008031F85 +:1001D000000000000000000000000000000080801F +:1001E0003F3F3B238387CFFFFFFF7F7F7F300000B0 +:1001F00080C0C0C0C0C0C8D8F0F0808080000000BF +:1002000000101010001E1701000000000000000088 +:1002100000000000000080800000000000000000DE +:1002200000000000001003000000000000000000BB +:1002300000000000000080F01F0700000000000028 +:10024000000000000000000004080400000100039A +:10025000000000000000000000000000000010B0DE +:1002600000070F0F2F000E0F0F0F070707030000E7 +:10027000783C9CBE1F1FFEFCFCFCF8F8F800000058 +:100280000000000000000000020402000000000066 +:1002900000000000000000000000000000800038A6 +:1002A0000707EFF313000100000003030100000043 +:1002B000F8FC9E8A83C17D600047FEFEFEC0000000 +:1002C0000000000000000020402000000800011F86 +:1002D0000000000000000000000000000000C0E07E +:1002E0001F3733393939110B0F1F1F377340800EF9 +:1002F000F0F0F0F0F0F0F8F8F8F8F0E0800C1EFE06 +:1003000000000000000000000FF800000003F800EB +:1003100000006010080810E080080810E08000006D +:100320003F7371787C7E7E3F1C1C0C06030200002C +:10033000C0E0E0E0E070F0F0F0707020604C5CFC39 +:100340000000000000000000204020000008000322 +:10035000000000000000000000000000000040E07D +:100360003C387B7F7F7F3F3F7F7F3F3F3361C006CD +:1003700040202000B0B81C04C6F6E4ECCE1E1F1FBF +:1003800000000000000000002040200000080003E2 +:100390000000000000000000000000000000C0E0BD +:1003A0003160687C7E7F7D3C1C1C0E0706000103CB +:1003B000C0C0E06060F0F0F07070602878FCFCFC79 +:1003C0000000000002020904020101000000000018 +:1003D0000000000000000080806010C030000000BD +:1003E000000000030707060F0F0F0F0707030100A8 +:1003F000003070F8B81848CCCCDCFC9C8CCCE8C839 +:1004000000000000000000000040308867100F006E +:1004100000000000000000000000000080008000DC +:100420000000000000000000002040200000080143 +:10043000000000000000000000000000000000803C +:10044000071F3F3D7070383F3F1F1F070300000329 +:1004500080C0F0FC0E030B7BFAF8F0C4840422F297 +:100460000000060C1C180E070E0F0F010000000004 +:10047000000000000000C080C0C080C0000000007C +:100480000000000000000004010000000000000067 +:100490000000000000000000C0780F030000000012 +:1004A00007073B3010191F1F1F0F0F0F0707000012 +:1004B000F8F87878F8F8F8F8F8F0F0F0F000006064 +:1004C00000000000000000204020000008031F037F +:1004D000000000000000000000000000008080C05C +:1004E00000000000000000040804000001000300F8 +:1004F0000000000000000000000000000010B078C4 +:100500000608080C00260F0F0F070707030300005B +:10051000FCFC7C3C1C7CFCFCFCF8F8F8F88000300F +:1005200000000000000000080001000000000000C2 +:10053000000000000000000000C07010000000007B +:10054000000000000000000004080400000100009A +:10055000000000000000000000000000000000702B +:100560000F0F1FE72701000000000707030100002D +:10057000F0B89C040682FAC1018EFCF8F8800018DD +:1005800000000000000000102010000004001838D7 +:1005900000000000000000000000008080C06040FB +:1005A00000000003070E0E1C1C00000000000000ED +:1005B0000000000080000C1F3F3F3F7F7F1F0C00AA +:1005C000000000000000000000000000000000002B +:1005D0000000000000010101000000000000000018 +:1005E0000000000307073B7B73793F5F230703018C +:1005F00000000080E0E0F0F0E0A0F0E0E0C00000EB +:1006000000000018383C3C3C1800000F07030100B4 +:1006100000000000000000000003030EFEF8E000F0 +:10062000410008BCFEFFFFFE7E3F3F0E04090306AB +:100630000080C060307078783C9C3C79F1F3670FA3 +:10064000C0E0F0FCFEFF3F070301000000000000D7 +:100650000000000000C0F8FEFFFFFD7D770F0301E2 +:10066000000000000000000008100800000218F060 +:10067000000000000000000000000000000080C03A +:10068000383C1F1F8F46E67270388DC7E2E0F0F8E5 +:100690004000903870F0E0400040C0800000000052 +:1006A0001F3E707070787C3F3F1F0F0F07030200E2 +:1006B000C0E070381C0C06C2E6E4E4EC88080C0CC0 +:1006C000C1E3F7FFFFFFFFFFFFFF3F8FE1FFFFFFEA +:1006D00080C0E0F0F03818080C86860203E7C6CC2C +:1006E000AF840200000004070F07030000020707A1 +:1006F00098B030707060E0E0E0E0C0000020F8FCEE +:10070000000000000307073B7B73793D5723070375 +:100710000000000080E0E0F0F0E0A0F0E0A0C00009 +:1007200000000307173B7B73793D57270303000045 +:10073000000080E0E0F0F0E0A0F0E0A0C0000000E9 +:10074000060F0F0E1E1E3C383830300000808080AF +:100750000000000000000018181C0C000000000041 +:1007600000000000000000010100002072FEFE7F7A +:10077000000000011F7FFFFFFFFEF4C0000000002B +:1007800000000020C1E3F7FFFFFFFFFFFFFF10C3E2 +:1007900000000080C0C0C0E0F0F0F8E888CC04E4BD +:1007A00000000000000000000000000E0E1E1F1FD1 +:1007B00000000000000000000000000080100002A7 +:1007C0000000000000000008000000000000030F0F +:1007D000000000000000000000000000008080C059 +:1007E0001F3F3A3838383C3E1F1F0F0F07060000E6 +:1007F000E0E0F0707030301818881830206040D079 +:100800000000070F0F06000060F0F87912200000CA +:10081000000000B8FCBC78E0F67F1FBEF830000096 +:100820000410000800201070E2F0600000000000DA +:1008300060F0F06000004030702000000000000018 +:100840000000041C1C303D7E7CFDF9D3E3F3F979F4 +:10085000C0E06060C0802040C0808080008080C098 +:10086000797D7C7C78787C3E3C380001030F3F7FAB +:10087000C0C0E0E0F07070600000002070F8F8E0A8 +:10088000000706070F0F1F1F1F3F3E3C38363E3F35 +:10089000001030E0C0C080800000000000404060D8 +:1008A0001F1F1E1E1F1F1E0F0F0E000000070F3FF1 +:1008B0002030303818181C1C800000487CFCFCF8E4 +:1008C00001030707070F0F0E1F1F1F3F3F3E3F1E6D +:1008D000FFFFFEF1C3C307878F8F0F0F0F0F0707AF +:1008E0000C000000070F1F7E000000000000000049 +:1008F0000707078787870300000000010303070F2E +:10090000FFFFFFFEFCF8F0F0E0E0E0E0C0E0E0F028 +:1009100098081010103020000000000000000000B7 +:10092000F0F0F0F8F8F0E00000203070F0E0800027 +:1009300000000000000000000000000000000000B7 +:1009400000000000000001010100000038F87D3FB8 +:100950000003071F7FFFFFFDFEFCE84000000003CF +:100960000F03000000000000000000063F1F0F03FF +:1009700003070F1F3F7F7F7F3F1F0E0640C0C00051 +:10098000FCFFFFFFFFFFD783010000073FFFFFFFD2 +:10099000386C68486FBFBBBFBDBF3DBFDFDEECED4D +:1009A000FFFFFFFEE0C0800000000000000000002C +:1009B000F8F0E70606060303067ED80000000000F4 +:1009C00000000000000000800010F0F0F0F0F0F0F7 +:1009D0000000000000000000000000000000000017 +:1009E000F0F8880000000000000000000000000097 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A10000000000001030707060F0F0E0F1F1F1F26 +:100A200000000000007C3F1F0703010107000000D9 +:100A30003F7F7F7E3C9E86808080E6FCFCFC1C0025 +:100A40003F7F7FFEFCF8F0E0C0C0008080800000A7 +:100A500006840404080808000000000000000000EC +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A8000000000000000000000004060383E1E0E24 +:100A900000000000000000000000000001030387C8 +:100AA0000F07030200000000000000000000010327 +:100AB000878F0F0F1F3F3E3E1F0C000020E4FEFEFD +:100AC00000000000000000000070FCFEFFFFFFFFC0 +:100AD000203010380C070601010103030787F7F3E4 +:100AE000FFFFFFFFFFFFFFFCF0E0E0E0C0C0C080C1 +:100AF000F3F1F9F8FCFE7E3C180000000000000055 +:100B0000F8F8FCFEFFFFE7EFCFC7CFC7E3F03C06E6 +:100B100000000000000000808080808080000000D5 +:100B200006030103020204040400000000000000A8 +:100B300000000000000000000000000000000000B5 +:100B40008080000000000000000000003C0E060352 +:100B5000000000000000000000000000202060E015 +:100B60000303070703030101000001000000000068 +:100B7000E0F0F0F0F0F8F8D8DCCCC0E06000000065 +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC00000000000000000001038387878384070CD +:100BD0000000000000000000000000000000000015 +:100BE00090E0E04000000000000000000000000075 +:100BF00000000000000000000000000000000000F5 +:100C00000000000000000000000000010001077F5C +:100C10000000000000000000303C24BAFEFC9CC82C +:100C2000FFFFFFFFFFFFFF7FFF977FFFFFFE7E7F3E +:100C3000E0C0E0E0F0F0E0E0E0F0F0F0F0F878FCA8 +:100C40000F1F3F1E0F0F03010000000000000000F7 +:100C5000C0C0C0C0408040C0C0C0C0400000000054 +:100C60000000000000000000000000000000000084 +:100C700040404000000000003E3E1E0C000000000E +:100C8000000000000080E0F8FEFFDFBF1F0781804A +:100C9000C040404000000000000080C0C0E060E0B4 +:100CA000C1E0E0E0F071F0F0E0E0F0F0F0707878B2 +:100CB000E0F0F070F0F0F8787C3C300000000000CC +:100CC000000000000000000001010101000000011F +:100CD000000000000000C040406060C0C080B0F074 +:100CE0000301070301030F0F0707070300010000BB +:100CF000F0F0F0F0F0F0F0F0F8F8F47FFFFFFFFF15 +:100D000000000000000006060202030301010101C9 +:100D10000000000000000000000000000000888AC1 +:100D200000000000000000C1E7FFFFFFE6C00080F8 +:100D3000AAAEFC7D7FE8E0C0D0D090101008080873 +:100D40000000000303000203000000000000000098 +:100D50000000000000000000000000000000000093 +:100D60000100000202030303010101000000000072 +:100D70000000000000000000000000000000000073 +:100D80001F3F0B073F1F1F3F0F3F3F7D7E7E7E3D76 +:100D9000C0C080C0C0C28EFEFEFEFEFEFC7AB0C0A7 +:100DA0001F07030103030303030103010000000005 +:100DB000E2E0F0F0F0F0F0F0F0E0E08000000000A1 +:100DC000180808080C040404C6E2E2E2E2F0F0F0BD +:100DD0000000000000000000000000000000000013 +:100DE000F0E060E0F0F078F878200000000000000B +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000080406D0 +:100E1000000000000000000000000000000000F0E2 +:100E200047C78F8F976300111F1F1F17070300000D +:100E3000F8FCFEFEFEFFFFFFFFFFFFFEAE0480009A +:100E4000070F0F3F7FFFFFFFFFFF7F7F3F0F013B3C +:100E5000BCFEFFFFFFFFFEFCF0FCFEFFFFFFFFFEFE +:100E60007F7F7F3F1F0F0F0701030707030F1F7FC0 +:100E7000F8E0F8FCFEFEFEFEFCF8E08080C0E0FE3C +:100E80007FFFFFFFFFFF7F1F3F7FFFFFFFFF7F1FF2 +:100E9000FFFFFFFFFEFCF8F8F8F8F0E0C0F0F8FC08 +:100EA0000F3F7F7F7F3F0F070F1F1F0F070F1F3F52 +:100EB000FEFFFFFFFFFEFEFCE0E0C080C0C0E0F0F0 +:100EC00000008040E0C080000000000000C0E04062 +:100ED0000000000000000000000000000000000012 +:100EE0000000000040A0602070D09880000000004A +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000060F0F07193C3C1D7FFF7A +:100F200000000000000000000000000000000000C1 +:100F3000FBF761070F3F7C783000000000000000E5 +:100F400000000000000000808090185CBC9E0FBF75 +:100F50000000000000000000000000000000000091 +:100F6000FFFEFCF8E07038787830000000000000E8 +:100F70000000000000000000000000000000000071 +:100F80000000000000200000080001010000010333 +:100F9000004400000307070300C0E8E1F170E2C06D +:100FA000230100000000000010000000000002000B +:100FB000D080012302076EF8FC7C3800000100009D +:100FC0000020000080C0C086EF7FFEBC3E1F0F37B0 +:100FD000000080000000000000000024C0E0E0C02D +:100FE0007D7E3E3C1840180C1E1E0C0000000800C0 +:100FF00080000040000800000000000040000000E9 +:101000000000000004041C1C3C3C3C3C78747C7CCC +:1010100000000000000000000000000000000000D0 +:101020007C7C7C7C7C3C3C1C0C000000083C7CFCF8 +:1010300000000000000000000000000000000000B0 +:10104000032377FFFFFAF8E3F7C79F1F1F1F9F8F48 +:10105000C0C0C0800040C0808080808080C0C0F060 +:101060008FCFC3C3C3C381810000000020E0C00054 +:10107000F0F8F8FCFCFCFCF8F0C0000003377EFC44 +:101080000000000000020402000000000000000058 +:1010900000000000000000000000800C00000000C4 +:1010A0000000000000000000000000000020200000 +:1010B0000000000000000000000000000000000030 +:1010C000E76F0F0F1F1E1F3F3E7E7C7D79343E3E33 +:1010D000E0C0C0903030706060E0E0C0C0C0C0E0F0 +:1010E0003E3E7F7F7F7B7E3C1C00000000093F7FEF +:1010F000E0F0787878707070000003071F9EB87079 +:1011000000000000000000000000010101010101D9 +:1011100000000000000000000000000000000000CF +:101120000103030707070301000000000103070F85 +:1011300000000000000000000000000000000000AF +:101140000000000001071F3FFFFFFFFCE0A1C3E319 +:10115000000000F0FCF8F8E0C0C20E3CFCF8F8F02B +:10116000F3F3E3E1E1C1E1E1000000B0F0E0C080B1 +:10117000E0F0F8F8FCFCFCF8F0C000060E1E3E7C27 +:10118000000000000000000000000000000000203F +:10119000000000000000000000000000000000004F +:1011A0003B3C3E3C7A7F7E7E3F0E000000317BFF61 +:1011B000000000000000000000000000000000002F +:1011C0000000000002060E1E1E3E3E7E7E7E7E7EDB +:1011D000000000000000000000000000000000000F +:1011E000FEFEFEFEFE7E7E3E30000000021E3E7CC5 +:1011F00000000000000000000000000000000000EF +:10120000007FFFFFFEFEFCFAFEFEFCFEBE3E3D3F01 +:10121000000000000000000000000000000000804E +:101220009F9F9F8F0F0F070301008080C0C0800029 +:1012300080C0E0E0E0D8F8F080030303071E3C78AC +:10124000000000000000010000000000000000009D +:101250000000000000800080000020000700000067 +:101260000000000000000000000000000C00000072 +:10127000000000000000000000000000000000006E +:101280000303010303030303070707070707030318 +:10129000F8F8F0F0E0E0C0C0C080C0C08040C0E01E +:1012A000030301010101010000000000091F3F7E4E +:1012B000F0F0E0E0D8F8F0F02001038F8F9E3C784A +:1012C00000000000000000000000030F1F1F1E3F71 +:1012D000000000000000000000000080C0FFFF5F71 +:1012E0003F3E3E3E7E7F7F7E3C08000000317BFF1C +:1012F0003F3E08213F3F3F3F3F3F3F1F1F1F0F0E15 +:10130000000000000000000000000000000000805D +:1013100000000000000000000000000000000000CD +:1013200000000000000006828286CECECE8C1C38E3 +:1013300000000000000000000000000000000000AD +:101340000000000000000000000C00000008181859 +:101350000000000000000000000004000000000089 +:1013600018181818181818080000000000000818AD +:10137000000000000000000000000000000000006D +:101380003FFFFFFFFFFFFDF1F9FDFFFFEB03030B45 +:10139000FCFEFCF8F0F0E0F0E0E0E0E0C0C0A0E02F +:1013A0000B5BF9F1F10100000000000000000000FB +:1013B000F0F0F0F8F8FCFCF8F0F06000133F7EFC71 +:1013C00001010307070F0F0F1F1F1F0E0F0F070746 +:1013D000F8F0F0E0C0C0808000000080808040E035 +:1013E00007070303010100000101030F1F3E7C00FA +:1013F000E0F0F0F0E0F0F04203838E1E1C1818308D +:1014000000000000000000000000000000080818B4 +:1014100000000000000000000000000000000000CC +:101420001818181818080800000000000000081814 +:1014300000000000000000000000000000000000AC +:101440007FFFFFFFFFB8D0E1B1F1FBFFEB03030B20 +:101450001EBEFCE0063EFCFCF8F8F0F0F0E0F0F810 +:101460000B5BF9F0F000000000000000000000003D +:10147000F8FCFCFEFFFFFEFE7C702001133F7EFCAB +:1014800003070F1F3F7F7E7EFCEDF1F9ECFCFE7E33 +:10149000F8F8F0C090903060E0E0C0C0C0E0F0F834 +:1014A0007C7C7C3E3E3E3C3C100001031F3F7C00A8 +:1014B000787C7E7E7C78F878600183879E1C38700B +:1014C0000000000000000101070F3F7F7E6C79746F +:1014D000000058107078FCF8F8F0C4183060C0E0D4 +:1014E0003E3E3F1F1E3E3E3F3F18000002071F3F8B +:1014F0006070707038383870000000044CFCF8F0F0 +:101500000303030707070703010203030303070796 +:10151000E0E0E0C0C0C0A0E0E0E0F0F0F0F0F0F803 +:1015200007070102030100000000000000000101A4 +:10153000F8F0F0E0E0E000080C5C7878F0E0C080C3 +:1015400000000103060E0F0F0F0F0706040107032B +:101550000040E0B01098D898B8B83878F0F0F0C0F3 +:101560000300000103030301030303000000000064 +:101570008018FCFCFCFCFCFCF8F8F000000000000B +:1015800000000000000003071F3F3F7E6870787670 +:10159000000000000000F0F8F8E08000000000000B +:1015A0007E7F3F3E3E3C1E1C0000000101030307FE +:1015B00000000000000000101030F0E0C0C080000B +:1015C0000001070F1F313030383F1F1F1F1F1F0F33 +:1015D000000080C0C0C0707C7664E4E4CCCCD81835 +:1015E0000E0003070F0F0F070F0F0F000000000082 +:1015F0003C6CF0F0F0F0F0F0E0E0C0000000000023 +:101600000000000000081818183838383038787092 +:1016100000000000000000000000000000000000CA +:10162000707878783838381818080000003878F85A +:1016300000000000000000000000000000000000AA +:101640000F1F3F7FFFF8F8F1F7C7CF0F87C7C7C756 +:10165000C0E0E0C00000E0C0C0C0C0C0E0E0E0E02A +:101660008787C3C3E3C38381810000002060E080DB +:10167000F0F0F8F8FCFEFEFCFC787803071F7FFC16 +:101680000000000000000000000000000000010158 +:101690000000000000001000080C0434FEFFFFFFF3 +:1016A0000101020203030303030100061C787F7F8C +:1016B000FDFEDFEEE0D0B0F0F8F8F00040C08000B2 +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E0003C3F3F3F3F3F3F1FCFFFE9F8FFFFFFFF7A +:1016F00080983870606080989898D818D0F0E0C0D2 +:101700001B070307070F070707030307070707035D +:10171000C0C0C0C08080808080C0C0C0C0C0C0C009 +:101720000303030707030101000000000101030395 +:10173000E0E0E0E0E0E0F0F0F06000000090F8F8B9 +:101740000000000000000000070C0800000000007E +:101750000000000000000000FC7C3C78F0FC7CF8FD +:10176000010307060F0F0F0F1F1F1F1F1F1F3F3FF4 +:10177000C0800000C0E0E0E0E0C0C0C0C0C0E0E069 +:101780003F3F0C0C0C0F0F07020303030101010084 +:10179000C0080878E0F8F87830008080C0C0E050D9 +:1017A000010103030307070F070303000000000004 +:1017B000C08000008000000080C0C0000000000069 +:1017C0000000000000000000070C080000000000FE +:1017D0000000000000000000FC7C3C78F0FC7CF87D +:1017E0000103070E0F0F0F1F3F3F3F3E7C3E1E1FA2 +:1017F000C0800000C0E0E0F0F0F0F8FCFCFE7C7877 +:101800003F7FFFFF7F1E0C060E0C0C0C0E070E0C0C +:1018100030C2E6FF070303010000001010389018E3 +:1018200008080C1C18181038383C3C080000000050 +:1018300018181C0E04040606020203030000000030 +:1018400000000000001F3F7F7FFFFEFCF4F9FC74E6 +:101850000000004040800000000060F0F0E0E4473D +:101860003E3F1F0E0F0F0F0707070703000001077A +:10187000430303030686C682808080000898F8F040 +:101880000B0F0F07070703070303010102070703F5 +:10189000E0E0C0C0C0C080808080C0E0E0E0E0E068 +:1018A000030303030707070703000000000000000D +:1018B000F0F0F0F0F0F0F8F8F8D0000040647E7F2F +:1018C0000F0F1F1F1F1F1F1F3F3F3F3F1F1F1F1FC8 +:1018D000E0E0E0C0C0C08000808080C0C0C0C0E048 +:1018E0001F1F1F0F0F07000000010303030706045B +:1018F000E0E0E0E0800020206040C0808000000048 +:1019000000000000000003060E1E1C3C7870301022 +:1019100000000000000000000000000000000000C7 +:101920000000010103070F0F03000000000000008A +:10193000C0E0E0F0F4FEFFFF3FFF3E0101000000C9 +:10194000000F0F0F0F0F0F0F87C7E3F1F8FEFFFF18 +:10195000F01808C4E4E4ECFCCEC6E2F3F903860414 +:10196000FEFE7E3F1F0F070F00000000000000007A +:101970004C0C0C1CFCFCF8F0000000000000000007 +:101980000000000000000000000000000000020352 +:10199000030F0F0F0F07070303217CFD7F7F3F3FDE +:1019A0000707070F0F0F1D1E0E000000081D3F7FC9 +:1019B000398088C0C0C0C0C0800000008080C0C026 +:1019C0000000000000000000000000010000000016 +:1019D00000000000000000000000800080000020E7 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A00000000000000000000070C080000000000BB +:101A10000000000000000000FC7C3870FCFC78F83E +:101A2000010307070F0F0F1F3F3F7F7F3F0F074740 +:101A3000C0800080C0E0E0C0840404A4C08000C076 +:101A40007F7FEFFFFEFF660703010000000000003C +:101A5000E0FFFF7F01010180C0C0E070380C181862 +:101A60000000000000000000080E0E04000000004E +:101A70000C06060707030203030301000000000031 +:101A80000000000000000000000000000000000254 +:101A90000000000000000000000000000000000046 +:101AA0000E1E7EFEFEF8F0E02000000000000000A8 +:101AB0000000000000000000000000000000000026 +:101AC00000000000000000000000000000BC100347 +:101AD0000000000000000000000000000060F8FEB0 +:101AE0000F100000000000000000000000010101D4 +:101AF000DFBF7F2F7F7FFE7E3C2C0000888CFEFFA7 +:101B000000000000000102010000000E0E0E0E0E8B +:101B100000000000000000000000000000000000C5 +:101B20000606060E5E5E7E7F3F3F9FC3E5E1E0E076 +:101B300000000000000000C0C08080808000000025 +:101B4000000000000000FFFF7F3F1F8F8F878B8FFB +:101B50000000000060E0E0E0800000808080000085 +:101B60001F1F3F1E3E1E0E1E3C3C1C1C00000000A2 +:101B70000000000000000000000000000000000065 +:101B8000000000000000000000003F3F1F0F0700A2 +:101B900000000000000000000000008086870F1F8A +:101BA0000001000301000703010C00000000000019 +:101BB0003FFEFEFE3CFCF8F8F8FCFCFEFEFFFFFFDB +:101BC0000000000000000000000000000000000114 +:101BD0000000000000000000000000000000008085 +:101BE00000080C0E7E3E1C000001030F020F073F91 +:101BF000C060301C1E1E3E7EFCF8F8F0F0E0FCFFDA +:101C000000000000000001010100000000000001D0 +:101C10007E1E3E7F3F1F8F8FC7EFE773F3F9FAF306 +:101C2000030307070F1F3F7F7FFF7F7EFCFE7E1EA3 +:101C3000F7F3E3E7C3C3CF879F8F070700000000D8 +:101C4000000000000000808080C0C0E0E0E0E0C054 +:101C50000000000000000000000000000000000084 +:101C6000C0C0C0C080808000808080000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C900000000000000000000000000000007C7F49 +:101CA0000000010000202167E2C1C361613010061D +:101CB000FFFFFF6C0004FCFCFCBCF8F8F8F0F060DF +:101CC00000000000000000000000000000030F1FE3 +:101CD00000000000000607070707033FFFFFFFFFA4 +:101CE0001F0F0703010000000000000000000000BB +:101CF000FFFFFCF0C000000000000000000000003A +:101D000000000000000101010101000000000000CE +:101D100000000000000080C0E0FA5E3E0600000007 +:101D2000FFFFFFFF3F170F1F1F1F0F0F07060000CA +:101D300000000080808080808080808080000000A3 +:101D40000000000080C0C0C04040606020203030F3 +:101D50000000000000000000000000000000000083 +:101D60001010181808080C0C0000000000000000FB +:101D7000000000000000000003077F7F7A200000C1 +:101D80000700000100000404060202030307070F16 +:101D9000F8F8F8F8FCFC7CFC7C7C3E3E1EAE3E3C39 +:101DA0000F0F1E1E1E3C3D7C7CF8F878F8FCFE7E72 +:101DB0001C7C7C783878F8F87070F0707000000047 +:101DC0002E3E1C04083C7EFCFCFBD79F0F070F0F28 +:101DD00080800000000000000020A0A0F0F0F0F0E3 +:101DE0000601070E0F1F070700000000000000009B +:101DF000E0E0E060F0F0F8F8383C3F1D1C0E0F0406 +:101E000000000000000000000000000080C04060F2 +:101E100000000000000000000000000000000000C2 +:101E200020301018080C0406020301010000000015 +:101E300000000000000000000000008080C0406042 +:101E4000030703030109080C04060607070E0E1E0C +:101E5000C0D1F3FFFFFCF0F0F8787C3C5C78787838 +:101E60001C3C3C7D78F8F9F8387CF8F070380000BC +:101E7000F8F8F0F0F0F0F0F0606000000000000012 +:101E800000000000000001000101030F3FFFFFFF01 +:101E9000000000303C24BAFEFC9CC8E0C0E0E0F04A +:101EA000DF1B0F1F0F0B070F0F1E0F0707330E014E +:101EB000F0F0F06060A0A080000000800000C88CFE +:101EC0000080C0C0406060203030101818080C0C32 +:101ED0000000000000000000000000000000000002 +:101EE00004060602030303030301010000000000CF +:101EF0000000000000C0C0E0E0D0D0C8686C6637C9 +:101F0000000000000000000001000101030F3FFF7E +:101F10000000000000303C24BAFEFC9CC8E0C0E099 +:101F2000FFFFEF470F0703050E1F0F070F1F0F3FA0 +:101F3000E0F0F0F0F0E0E0E0E0C0C0E0E0E0E0C0C1 +:101F4000030103070301000404060203030303075C +:101F5000C0E0E0E0F0F0F8F878787C3C3E9EAE3CE3 +:101F6000070F1E1E1E3E7CFCFCFC3C7EFCF8783CF1 +:101F70003C7C7C7C18186868200000000000000091 +:101F800000C0C0C040606020203030101018180819 +:101F90000000000000000000000000000000000041 +:101FA000080C0C0404060603040C0C0404000000D6 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000203010100050700011FDE +:101FD000000000000000C07020B0B0900000008041 +:101FE0003F3F3E3D3F3F1F0F3F1F093F1F3F0F1F1A +:101FF0000000C0E0E0F0F0F8F8FCFCFCFCBE9EFF46 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4a-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4a-.bin.hex new file mode 100644 index 00000000..91d24ab9 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4a-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000206070701030301000000D2 +:1000100000000060F090E0E0E0B078B8D0C00000F0 +:10002000000206040C0C1808000001010103030380 +:100030007C3C5C7CF8F87878E0E0C0C0E0E0F8FC5C +:100040000000000001030103070E0E1C1E3F7F7F0E +:100050007F3F7FFFFFF7F7E7000000000000C0E0F0 +:10006000F0F0F0F0F8F8F8F80000000000000000F0 +:100070000000000000000000000000000000000080 +:1000800000000000030F070F1F0F0F1F0F07060FC1 +:1000900000000060F0F8F8F0F0E0F0F8E0E0E000D8 +:1000A000000080C0E0F0F1FFDF86000000000000EB +:1000B00000000000000080C0E038000000000000E8 +:1000C00000000000030F070F1F0F0F1F0F07060789 +:1000D00000000060F0F8F8F0F0E0F0F8E0E0E00098 +:1000E0002F9FBF3F1E1E1E0E3838387C7CFFFFFF3F +:1000F0000000000000000000000000000000C0E060 +:100100000000071FFFFEFE000000000000000000CE +:100110000000E000000000000000000000000000FF +:100120000000000080C0FE3F7F1C080000000000AF +:10013000000000000000000080C00000000000007F +:1001400000000000000001010000000000000000AD +:100150003F3F7F7FFFFFFEFE000000000000000029 +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:1001800000000000E0F8FCFE770100000000000025 +:1001900000000000000000000080000000000000DF +:1001A0000000000000182442424224180000000011 +:1001B000000000000000000000000000000000003F +:1001C00000000000001824424242241800000000F1 +:1001D000000000000000000000000000000000001F +:1001E0000000000000101C2222222224180000001F +:1001F00000000000000000000000000000000000FF +:100200000000000000101C222222222418000000FE +:10021000000000000000800000000000000000005E +:1002200004462F2F2F7FFFA7B353D1800000140166 +:10023000387C7EFEFFFBE1C1F8FCE642030101428F +:100240000044262F3F7FFFA7B351D0800014010048 +:100250000060F0F8F8FCFCFCFCFE6E0705014102B2 +:1002600003020103070F07030E0E1C1C1E3F7F7FB6 +:10027000E0E0E0E0C0C0C0C0000000000000C0E05E +:100280000000000000000000000000080D0F0F0F2C +:10029000202020302040404020607878F0E0C0C02E +:1002A0000F0F0C0800000000000000000008000014 +:1002B00080000000000000000000000000000000BE +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000010101030303C1 +:10033000FE2E1E3C7CFC7C3CE0E0C0C0E0E0FCFE0D +:1003400000000000000000000000000000000000AD +:1003500000000030780818000000000000000000D5 +:10036000000000000001050406070701030100006A +:10037000000000C0E0A0C0F8FCDCC880B0E0E000F5 +:1003800000000000000000000080C00000000080AD +:10039000000000000000000000000000000000005D +:1003A0001F1B0F1F3F1F0F0038383C3E7FFFFFF021 +:1003B000E0F0F0F0F0E0000000000000C0E000001D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000101040D0F07070303010000D6 +:1003F000000080C080C0C0F0F8B8981040C0C000B5 +:1004000000000000000003030703030703010207C5 +:100410000000000012B7EFF9F3E7C7CFC78F878757 +:1004200003010000000000010000000000000000C7 +:10043000CDC3E3E30100F8FEFFFF7F7F3F7F7FFF37 +:1004400000000000000080C0C0C0C0C08080C0C0EC +:10045000000000000000000000000000000000009C +:10046000E0F0F8FCFEFE3F1B0000C0E0C0C0C0E0B2 +:10047000000000000030F8FCC67000000000000022 +:10048000000000000000010103010103010001035D +:1004900000000000095BF7FCF9F3E3E7E3C743C39F +:1004A000010000000000000100000000000000004A +:1004B000E6E171710000FCFFFFFF7F3F0F0F1F0F90 +:1004C000000000000080C0E0E0E0E0E0C0C0E0E04C +:1004D000000000000000000000000000000000001C +:1004E000F0F8FCFEFF7F1F0D8080E0F0808080C070 +:1004F000000000000018FCFE63780000000000000F +:1005000000000000000000000000000103030103E0 +:100510000000000000000000000000020F8F87C7ED +:10052000030307070F0F1F1F00000000000000005B +:10053000E3F1F3F3F1F0E0E0000000000000000060 +:1005400000000000000000000000000080C0C0C0EB +:10055000000000000000000000000000000000009B +:10056000E0E060F0F0F0F070E0E0F070707C7F7F31 +:1005700000000000000000000000000000000080FB +:100580000000000000000001070703070D07030734 +:10059000000000001137FFFFFFFFFFBF89C0E0FF31 +:1005A0000301010000000103070301103039183C6A +:1005B000FEFFFFFF0707FFFFFFFFFFFFFCFC7E3E84 +:1005C000000000000000000000000000000000012A +:1005D00000000103060C0D0F1E1C3C38387060E053 +:1005E00003070F1F1F1F1E1E1C101000000000001D +:1005F000C0C080800000000000000000000000007B +:100600000000000000041C387870F1E0E16043470E +:1006100000000000001030703070F0F0F070B0F0AA +:10062000030100000000000000010101181C0C1E65 +:10063000F0F0F0700000FC7CFEFFFFFF3E7E3F1FED +:1006400000000000247EDF9F3F3F1F1F86C0E0FCAC +:1006500000000000033FFFFFFFFFF3000000000069 +:10066000F8F0F0E0000000000000000000000000D2 +:10067000000000000000000000000000000000007A +:10068000000000002466EFDFCF9F3F3F1F1F0C805C +:10069000000000000000008080C0FCFFFF7FFF6CB6 +:1006A000C0F8F0E0000000000000000000000000C2 +:1006B000000000000000000000000000000000003A +:1006C00000000020246EDFFFEF8F1F3F3F1F0F85CC +:1006D00000000000000000808080008080C0F07872 +:1006E000C0E0F0E00000000000000000000000009A +:1006F000FCFE7F5F07030100000000000000000017 +:100700000000000005060F0F070F0F07070B0F1F54 +:100710000000000048DCBEFFCF9F3F3F1F1F1F8E21 +:100720000F0F07030000030307030101000000008F +:1007300087C2C0F00000FCFEFFFFFFFFFC7E7E7E54 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A40000000000005070F0F070F0F07070A0E1E13 +:100A50000000004078FCFEC78F9F3F3F3F1F3F3F95 +:100A60000E0E060200000303070301010000000050 +:100A70001E1E3E3C3E1E1E1F0F86C2FEFF7F7F7E57 +:100A8000000000000000000300000103070F0F0F2B +:100A9000000000000000B0BEFFFEFEBCBCC8C0C02D +:100AA0001F0F070A1F0F0F0F0F0707030303010094 +:100AB000E0E08040F080C6EFEFFFFFFFFFFFFFFFA9 +:100AC000000000000000000000000101030303011A +:100AD00000000019191C3E7FFFFFFFFFFFFFFFFF13 +:100AE00003070F05030000000000000000000000E5 +:100AF000FFFFFEFCF8F17F7B7B796D414321000015 +:100B000000000000001E191C1C1E1E1E1E1E1800C8 +:100B100000303C3F3FFFFBB8200000000000008099 +:100B2000031F1F1F1F1F1F1F1F17070000000000AC +:100B3000E0F0FFFFFFFFFFFFFFBF7F3B1100000062 +:100B40000000000000000000000000000080E0F84D +:100B50000000000000000000000000000000000095 +:100B6000F0FCFCF8F8F1FBFFFF3F3F1E1E1C0C00E1 +:100B700000002060E0E08080000000000000000035 +:100B8000000000000000000000000100021A161E14 +:100B9000000000000000010377FFFFFFFFFF7F3F21 +:100BA0003C1C1818080000000000000000000000B5 +:100BB000FF7F7FFF7F3E2F1F1F0F190000000000E7 +:100BC0003F79FCF8E8E0C0800000008187CFCF8F3C +:100BD000000000000000000000000000803CFFFF5B +:100BE0008F1FFFFFFFFFFFDFDE0C00000000000093 +:100BF000FFFFFFFFFFFFFEBC6C2E0707070F070379 +:100C000000000000E080F09010C000000000000034 +:100C100000000000000000000000000000000000D4 +:100C200000001D1B170F0B01171C00000000000027 +:100C300040E0C08000A0B030F0E0C0000000000044 +:100C40000000000000000000000303070700000090 +:100C500000001010185A7E7C3870E0E0E0000000C0 +:100C6000000000000001000207070501010000006C +:100C700000000040E080E0E0F0F8B8D8E0E040009C +:100C80000000010306020300070303000000000048 +:100C900000008010F8F8D8E0F8F8700000000000BC +:100CA000000000020505070300030100000000002A +:100CB00000006070E0D8F8F8F0A0800000000000AC +:100CC00000000307020307171B1E0C0100000000B1 +:100CD00000000060E0E0E0E080C0C0C00000000074 +:100CE000000000000C141C1C1C080080C0800000C8 +:100CF00000000000000000000000000000000000F4 +:100D000000000000030F070F1F0F0F1F0F07060E35 +:100D100000000060F0F8F8F0F0E0F0F8E0E0E0004B +:100D200000000000000000000000008080000000C3 +:100D3000000000002060F0F0F06000000000000003 +:100D4000000000000001071F3FFEFCF8F0F0E0C0CB +:100D500000000020F0F0F8C080000000000000005B +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000C0E0E0E0C000000000000043 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC00000000000000898FCC000000000000000C7 +:100DD00000000078785C381000000000000000007F +:100DE0000000000000000000000000000000000003 +:100DF000190F0700000000000000000000000000C4 +:100E0000FFDB0103030303030303010000000000F1 +:100E1000F0E0E0E0E0C0C0C0C08080C000000000A2 +:100E200000071F0F1F3F1F1F3F1F0F0D1EFFE0403A +:100E3000C0E0F0F0E0E0C0E0F0C0C0C000000000A2 +:100E4000001C7F7F3F3F1F0F0F07070300000000BC +:100E50000000000000000000808000000000000092 +:100E60000103070F0F07070703010101000000003E +:100E7000808080C0C0C0C0C0C0C0C0F020000000E2 +:100E8000000000000301030703030F3F7B732000F2 +:100E9000000018FCFEFEFCFCF8FCFEFEBFD9800042 +:100EA0000F0F070703030303010101010000000006 +:100EB0000000008080C0C0C0C0C0C0800000000032 +:100EC0000010183C7E7FFF7F1F0F03000000000012 +:100ED00000000000000080C0E0F0F87C5800000036 +:100EE000000000071F0F1F3F1F1F3F1F0F1D3E0069 +:100EF0000000C0E0F0F0E0E0C0E0F0C0C0C00000E2 +:100F0000000000000000003C4040400000000000E5 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000040404040C0404000000000000071 +:100F40000407070507070707070202020303030157 +:100F500000C040400888880404040C08080C8E87F0 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000080C0C061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC00000000000000000000080000000000000A1 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF0000000000000383C1C080000000000000059 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000002060E1E3C3C38383030F0706084 +:1010300000000000000000000000000000000000B0 +:10104000000000000000000000030707070F0F1F4B +:1010500000000000000000000000C08000002060D0 +:101060001E1E1E0E6E6EE6F6D76F7333331F1F1EE5 +:1010700070F0F0B0707030301818DCECC8800000F0 +:10108000000000000000000000000000000100005F +:10109000E0E0707030303030607060C0C0E0E0E0A0 +:1010A0000101030303030707070301000000000019 +:1010B000F0F0E0E0C0C0C0808080000000000000D0 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:101100000E1F1E1C3C393B3B39333737351617163B +:1011100000000000000080808080808000000000CF +:10112000320A0B0B191C1E1C1C1C0E0606030303A3 +:1011300000E0608080000000041E1E0C0000000023 +:101140000000000000000000010103030307070383 +:10115000000000000000000000800000008080E02F +:1011600003070707070707173F377373311000009E +:10117000E0E0C0C0C080808000000000800000006F +:101180000E1E1818393377676F4F5A183C3030608D +:10119000000000000000808000000000000000004F +:1011A00030301B1B0010303839393D1C1F0703013C +:1011B0000000E0E000000080C0C08000008080806F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:10120000000000000000000000C06060303838308E +:1012100000000000000000000000000000000000CE +:10122000100F0F0F0F0F0F0F07030100000000003A +:10123000000000000080808080808080000000002E +:101240000C1F083070707878383C381C544E6F672B +:1012500000C00000010101000103030705C0C080B8 +:1012600032181F3F3C38383C1C0E1E1C18383830D2 +:101270000018F8F00000000000002030381C0E07B5 +:10128000000000000000000000000000000000C09E +:10129000000000000000000010B0B0D070706020AE +:1012A000E0776FBFBF9C000000000000000000005E +:1012B00000008000000000000000000000000000AE +:1012C00000000000000000000000070F0F0E0607DE +:1012D000000000000000000000000000000000C04E +:1012E0000F0F1F1F1F1E1E1C1C18180800000000D7 +:1012F000C08080000000000000000000000000002E +:1013000000000000000000000000E0426E3E3E3E93 +:1013100000000000000000000000000000000000CD +:101320003E3C1C1C1C1C1C1C1C0C0600000000006D +:1013300000000000000000000000000000000000AD +:101340000C1F0C30307078787C3C28345C5C6B6F00 +:1013500000C00000010101000103030321E0C0807F +:10136000371A3F3C7870707878383C3C1C1C383811 +:1013700000F8F840404040800000000000000000FD +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A00000000000000000C0E0766F3FBF9C80009E +:1013B0001090B0D07070600000008000000000004D +:1013C0000000000000000000383018381C1F1F3FCC +:1013D000000000000000000000000000008000008D +:1013E0003E3E3E3E3C3C3C3838381C040000000089 +:1013F00000000000000000000000000000000000ED +:101400000F1C3808103038787868343C1C181C0FD2 +:1014100080000040002020202173E002060E1E0CF8 +:1014200003020C0E1C1838303818180C1818183015 +:10143000808000080407060C101010000000000057 +:10144000000000000000000000000001000000009B +:10145000000000000000000000C0C0E0C0FCFCF87C +:101460000101010101010101010101010000000070 +:10147000F8F8F0F0F0E0E0E0C0C0C0C0000000000C +:101480000000000000000000000001030301000153 +:101490000000000000000000008000008080C0808C +:1014A0000100000101010000010101000000000035 +:1014B00080D0F8F8F0F0E0E0E0E0F8F8000000009C +:1014C000070F1F0C30387C7C7E2E333F0F03050640 +:1014D00080C0000000000100001018B8B0E0C0C1DA +:1014E00003030100000000000000000000000000F5 +:1014F00003E7EEFC581002000000000001010301A8 +:10150000000000E0E0A08020301008082060F0C05B +:101510000000000000000404040400040E4F3F3CDF +:1015200080000357343DF76660C0C0C0808080C033 +:1015300060C080000000000000000000000000000B +:10154000000000000000000000000000000000009B +:1015500000000000000000000E0E040C0C1CF8F847 +:101560000000000000000000010101000000000078 +:10157000F8F0F0F0F0E0E0E0E0C0C0800000000033 +:10158000070C0C030E1D3B7F3F070018181E1C1F85 +:10159000000000810083C3E3C10000000000800060 +:1015A0000707070E1C1818180C0E07000000000093 +:1015B000F0F00000000000000080C0E030101810C3 +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000006070323E3E3E4F +:1015E00000000000000000000060707CFCFF3F1F56 +:1015F0003E3E3E1E1C1C1C1C1C1C1E0E000080C0FF +:10160000030707070E0D0D1D3C2E6ECFEF77362713 +:1016100080C08040F8FFFFFEFE3000000080000028 +:101620000F030303060C0C0E0E070300000000005E +:1016300000F8F80000000000000080E0406034186E +:10164000000000000000000000000000000000009A +:10165000000000000000000000010103030101017F +:10166000000000000000000000000000000000007A +:101670000101010100000000010000000000000065 +:10168000000000000000000000800080800000C01A +:10169000000000000000000000000000000000004A +:1016A000F0F0F0E0E0E0E0E0E0E0E040000000002A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F0000103070F0C0E07060C181D3030381010B0 +:1017000000000001000103010103070511387CFC02 +:10171000000C7EFFFFFFFEFCFEFFFCFC9C80000037 +:10172000F8B0C830E0C0C00000F880B0E0E0404A47 +:101730000000000000000000000000000000008029 +:101740000000000000000000000000010103070F7E +:1017500000000000000000000000C0C08080000009 +:101760000F1E1E3E3438604060783C1801010000B6 +:1017700000000107590102403F004062E6DFDF3B05 +:10178000000000000000000000000203838281814D +:101790000000000000000000000000008080C0C0C9 +:1017A00081E100001060800000000058FCBC9C003B +:1017B000E0F0B03030707070E0D0800000000000C9 +:1017C00000000000000101010101010103030263A7 +:1017D000000000008080C0E1E3E88443C0963F370A +:1017E00001010100000000000000000000000000F6 +:1017F000000080C0C06040000000181E0E0B0909E8 +:1018000002030300808080C0F08D10E040F0B81C1F +:10181000000080C00080C0C0C0E0A060301070E058 +:1018200008305C5978701000000000000000008053 +:10183000C00050F8783C1C0C0000000000000000C4 +:1018400001030601071F3F7B6D60776E6736342604 +:10185000800000C0C0E0C080000000000000000068 +:1018600006040D1C1E1C18101C18080D0E04040480 +:101870000000E00000000000000000000000000088 +:101880000602060C0E0603030707070707070707EC +:10189000000000000000C0C0C0C0C0C0C0C0C0C0C8 +:1018A0000707070707070301010000000000000009 +:1018B000C0808080000000808000000000000000E8 +:1018C00001030F1E3E7F7C212F3736362804060B7E +:1018D000C0E0F0E0C00000C0800000000000008018 +:1018E00038141C2824381F0F0600000000000000D8 +:1018F000F030000000000080E8F87C380D0E040095 +:1019000000000000000000000000000000000000D7 +:101910000000000000000000000000000000E0F0F7 +:10192000010307071F0F0600000000000000000071 +:10193000F0F8FCF0E0800000000000000000000073 +:101940000703070F07070F0703031F0F3430787CC7 +:10195000FCFCF8F890B0B4B5DDDDE5ED0F0D04004A +:101960007E7F7B7C1F4771607078383F3F7F787047 +:10197000000001CDEDDBFB31000018F0F08000002D +:101980000018FC0000000000000000000000000043 +:101990000000000000000000101010101070404007 +:1019A0000000000000000000000000000000000037 +:1019B0000000004040404040404000000000000067 +:1019C000000000000000000000000101030301030B +:1019D00070E9E1616160E0E0C0E0C080C0C080E02B +:1019E0000307070707070F0F0E0606000000000099 +:1019F000E0E0C0C0808000000000000000000000A7 +:101A00000000008080C060303018080C1F0F0F0FDE +:101A100000000000000000000000000080808080C6 +:101A20000F0F0F0F0F0F0F07070703010000000034 +:101A30008080808080000000000080800000000026 +:101A400000010703070F07070F070303071D0830EF +:101A500030F8FCFCF8F8F0F8FCF070B080000004FE +:101A600070787878783838141C0C0E0507013D7EA4 +:101A700086C6EE6E4000010167E7C6C6C686BC702A +:101A8000C0C1C0E0603030381C1E1830183F7E7E68 +:101A9000000080404040404040202040187C7CF8BE +:101AA000FCF8F8F0F0E0E0C0C0C0800000000000EA +:101AB000F8F8F8F0F0F0F0F0E0E06030000000003E +:101AC000000101050707031F7F3DDDE8E0C08080BE +:101AD00070F8FEFFFFFFFFFFFCB898C04000000059 +:101AE00000008080000000000000C0E00000000056 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B1000000103070F0F1D3D3E7E79636E77373757 +:101B200000000000000000000000000000000000B5 +:101B300037070707090E1F0B0F0B0B0101000000F1 +:101B4000101010101818180C0E1C1C0C070F0F0F7B +:101B5000404020202020101010102020E0C0C0C0E5 +:101B60000F0F0F0F0F1F1F1F1E1E0E0F060000006E +:101B70008080800000000000000000187C3E0F0FF5 +:101B8000000001030F07070F070707030103070EF4 +:101B900060F0F8F8F8F0B8DCDCC84080C0E0000085 +:101BA0000E1E1E1E14313B73666E3436160703007C +:101BB000000000C0C0C080000000000000F8F80075 +:101BC000000000000000000000000000001B1F3E9D +:101BD000000000000000000000000000063E0E0EA5 +:101BE0003E3E3E3E3C3C3C3C3838781C0C000000FD +:101BF0001C1C1C1C0C0C0C081818187C7F7F3F1F29 +:101C0000000101050707031F7D7DFCCCE8C898B0E3 +:101C100070F8FEFFFFFFFFFFFCB898C04000000017 +:101C20002060C080000000000000F0F00000000014 +:101C300000000000000000000000000000000000A4 +:101C4000000000000001010307050F0F0E0D0E0636 +:101C500000002060E0E0606080E08020E0E0C0C044 +:101C60000400000001030101010101010000000066 +:101C7000C0C0E0E0E0A080E0B030107838381C0C44 +:101C80000000000000000000010303010001010149 +:101C90000000000000000000C0808080F8F8F8F824 +:101CA000010101010103030303036161F0F8783CC2 +:101CB000F8F0F0F0E0E0E0E0E0C0C0C0C0000000FC +:101CC00000010103070303071F7E3CD0E0F0E0E0C2 +:101CD00060FCFEFFFFFFFEF8F8DCCC6000000000B7 +:101CE000C0800000808080E0F898000000000000C4 +:101CF00000000000000000000000000000000000E4 +:101D0000000000000000081818383830787060486B +:101D100000000000000000000000000000000000C3 +:101D2000786878382800000008180F0C1A08080C8A +:101D3000000000000000000000008080C0C070387B +:101D400000000000000000000000000000C4FCF8DB +:101D50000000000000000000000000000000000083 +:101D6000F8F8F8787878787878380C0C000000006B +:101D700000000000000000000C4F7F7C706000003D +:101D80000E1F1F7F7FFF7FFFFFFC3D7F3C0E0E0E6F +:101D900000008080000080C0800080000000000003 +:101DA0000C1C181B17170F0F0F0B0C1E14181C0EF2 +:101DB00000000001818183836A7FFF1F090000000A +:101DC000000000000000000000000000000000040F +:101DD00000000000000000000000000000021FFFE3 +:101DE0000707070300000000E0B0D04060000000DB +:101DF000FBC08000000000000000000000000000A8 +:101E00000000000000000000000000000020307012 +:101E100000000000000000000000000000000000C2 +:101E2000F8F8FCFC7E7E3E1F1F0F0700000000003C +:101E3000000000000000000080E0C0800000000002 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E800003010F070F1F0F0F070303010302060CC7 +:101E90000080C0E0C0C0C0E0C0C0008080C0C040C2 +:101EA0000C1C1E1E0F0F07000000000000000000A9 +:101EB0004040040F0FDFF6000000000000000000AB +:101EC0000000000000000000000000000000001EF4 +:101ED0000000000000000000000000000000000002 +:101EE0003E1F0703010100010303030F0E1F1F1F05 +:101EF000000080C0E0E0E0C0C0808080000080C0C2 +:101F00000000000001000703070F0707030101009D +:101F10000000000080C0E0F0E0E0E0F0E0E0808061 +:101F20000100000202070F0F0F0707030000000067 +:101F3000C060602020000080C2C7EFBF1600000014 +:101F4000000000000000000001030303030101037F +:101F50000000000000000000E0E0F8FCFCFCBC3CDD +:101F6000030706060C0C1C1878F0F0707038180087 +:101F70003C78787870F0F83C000000000000000029 +:101F80000000000000000F3F3F7FFDFCF8F8F8F86C +:101F90000004347D7F7FFFFEFE3A30100000000019 +:101FA000EC040606030301011038783838180808D5 +:101FB0000000000040E0E0E0C00000000000000081 +:101FC000000000000000C0C0C0E0C00101071F7891 +:101FD00000000040406060F0FCFCFCFEFEFE7F3F25 +:101FE000F0F03020000000000000000000000000C1 +:101FF0000F0F0F07023C3C7E3E7E3F3E7C3E1000B2 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4c-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4c-.bin.hex new file mode 100644 index 00000000..cdee4044 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4c-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000FCFEFC000000000000CA +:100040001F3F3F7F7F7F7F3F3F7F7F7FDFC38100F9 +:10005000C0C0E0E0E0C0C0E0F8F8F8F8F4F66E2FB9 +:100060001F1F1F1F1F1F0F0F060602040408000397 +:10007000E0E0E0F0F0E06060606070E0C00020E090 +:10008000000000000020707078787D37070F0F1F88 +:10009000000000000000000000000080000080E080 +:1000A0000000000000200000080600000000000022 +:1000B0000000000000000000000000000000000040 +:1000C0000001030F1F3F67C303073F7F7B30000022 +:1000D000F0E0E0E0F8F8FCFCFCF8F8F8F0F00000E4 +:1000E0000000000000000000081C160E0F0D0103A8 +:1000F0000000000000000000008080C0E0F0C04E62 +:10010000CB0B2B78787C7C78726B7F3B3F3F1E1C3F +:100110008080000000005CFCFCDC9C9C9C1838701B +:10012000000000070F0F0F070703197CFEFFFFFFFA +:10013000000000F0F0F0E0E0F0F0F0DA1BF3F7F789 +:1001400000000000000000000020707078797D370A +:100150000000000000000000000000000080B0F877 +:100160001E1F3F3F3F3F3F3F3F737767E7C380011D +:1001700010088C8C8ECECFE7E6C6C4E4E080001079 +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A0003F3F3F3F3F3F3F3F1F0F0F07071F3F3C72 +:1001B000C0C0E0E0F09090D0C0E0C0C0C08000F0CF +:1001C0000000000000000020707078787C370E1E60 +:1001D000000000000000000000000000000000001F +:1001E000FEFEFFFF7FFFFFFFFEFE7E7C7C300000F7 +:1001F0000000002030B0B02000000000000000002F +:100200000060E8E8FF61200000000000000000003E +:1002100000000000808000000000000000000000DE +:100220000000387C7F6F38100000000000000000E4 +:1002300000000000E0FB7F0F000000000000000055 +:1002400000000000000000040E0E0F0F0F06010357 +:1002500000000000000000000000000080C0E0C0BE +:1002600003070F6FDFFFF1EC0F0F07070703000015 +:1002700080C0E0C0E0E00030E0E0F0E0E00000003E +:1002800000000000000000020707070707030080C6 +:10029000000000000000000000008080C060F0E06E +:1002A000FFFF1F0F0F0306070703030301000000F2 +:1002B000F8FCFCFCFCFEF2FFFFB8FEFEFEC00000F6 +:1002C00000000000000020707078783C37070E1E98 +:1002D000000000000000000000000000008000108E +:1002E0001F3F3F3F3F3F3F37736767C78380000E25 +:1002F000088CCCCECEEFC7C6C6C48480800010F870 +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:100320003F7F7F7F7F7F7F3E1F1F0F0703030D0FE0 +:10033000008080C0C0C0606030B090C08080907885 +:100340000000000000000020707078787C37070FF4 +:10035000000000000000000000000000000080001D +:100360003F3F7F7F7F7F3F3F7F7F7FDFC3810007EE +:1003700080C0C0E0C0C0E0F8F8F8F8F0F0E8E8FCB1 +:100380000000000000000020707078787C37070FB4 +:10039000000000000000000000000000000000C09D +:1003A0003F7F7F7F7F7E7E3F1F1F0F07173B3E3DB6 +:1003B0008080C0C0C0602020A08080C09030F8F84D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000103030707070F0F0F0F0707030100A3 +:1003F00020C0E0E0F0F8F8F8F8E8C8E0F0F0F0F03D +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:10042000000000000000000020707078787D370622 +:1004300000000000000000000000000000000000BC +:100440001E1F3F3F7F7F3F3F3F1F1F0703000003EB +:1004500000C0C0C0F0FCF48484C6EEC898183CEC20 +:10046000040E0F0F1F1F7FFCFDF47038502000009A +:10047000000000C0E0E0204000004000000000005C +:10048000000000001C3E3F3B1C0800000000000074 +:10049000000000000000F0FD3F0700000000000029 +:1004A0003F3F070F1F1F1F1F1F0F0F0F07070000E2 +:1004B000E0E0F4F6E6E7C7C686C0800080000000F2 +:1004C00000000000000020707078787C370E1EFF5E +:1004D000000000000000000000000000000000001C +:1004E000000000000000040E0E0F0F0F06010303B2 +:1004F000000000000000000000000080C0E0C0809C +:10050000070F6FFFFFD9EC0F0F070707030300006A +:10051000C0E082C3E38A38F0C0E0E0C0C0800000E1 +:10052000000000001C3E3E371F0C000000000000D1 +:1005300000000000000000F0F030000000000000AB +:1005400000000000000000040E0E0F0F0F06010156 +:1005500000000000000000000000000080C0E080FB +:10056000FFFFFF1F1F070F0F0F0707070301000003 +:10057000F0F8FCF8F8FCE4FEFE70FCF8F8800000EF +:100580000000000000001038383C3C3E1B031F3FB9 +:10059000000000000000000000000000000080805B +:1005A00000000003070F0F1F1C00000000000000E8 +:1005B0000000000080C0FCFFFF3F3F7F7F1F0C005A +:1005C000000000000000000000000000000000002B +:1005D00038180000000000000000000000000000CB +:1005E0000000000B1F1F3F7F7F7E3F5F2D00040E2A +:1005F00000000080E0E0F0B0004000E0E00000809B +:1006000000000018383C3C3C38000010183C3E7E8E +:1006100000000000000000000000000000000000DA +:10062000BE3F7FFFFFFFFFFF7F3F3F0F1F367C383E +:1006300000000080C0808080C0E0C0903073670FF1 +:10064000C0E0F0FCFEFF3F070301000000000000D7 +:1006500003070F0F1FFFF8FEFFFFFD7D77CFE3F1CC +:1006600000000000000000081C1C1E1E1F0D1FFFC4 +:10067000000000000000000000000000000000007A +:10068000FFFFFFFF7FFFDF6F6F2782C0E0E030F8E2 +:10069000A0F0F0F8FCFCFCF8F8B00000000000004E +:1006A0001F3F7F7F7F7F7F3F3F1F0F0F07030200AA +:1006B000C0E0C0C0E0F0F8FCF8F8F8F0F0F0B030BE +:1006C0003F9FCFFFDFFFDFDF3DE33E8EE1FFFF77A0 +:1006D0000000A0F0F0F8F8F8F078381C0CF8F8F00A +:1006E000AF870507070707070F070303030307077C +:1006F000E0C0D0B0F0E0E0E0E0E0C00080E0F8FC76 +:10070000000000000B1F1F3F7F7F7E3A582C000C1B +:100710000000000080E0E0F0B00040000040000079 +:1007200000000B1F1F3F7F7F7E3A58280400010303 +:10073000000080E0E0F0B000400000400000808059 +:10074000070F0F0E1E020000000000000000000056 +:10075000E0707878E860000060E0E00000000000F1 +:10076000000000000000000101070F3F7FFEFE7F38 +:10077000000000011F7FFFFFFFFEF4C0000000002B +:10078000000000DF3F9FCFFFEFEFEF33FFFF10C30D +:1007900000000080C0C0C0E0F0F0F0F0F0F038F8E9 +:1007A00000000000000000000000010F3F7FFFFF7D +:1007B0000000000000000000000000D0F8BCB8FEFF +:1007C00000000000000E020E1E1C05121E070C0C7D +:1007D0000000000000000000008080000000000019 +:1007E0001F3F3F3F3F3F3F3F1F1F0F0F07070103C3 +:1007F00080C0C0E0E0C0C0E0E0F0E0C0C0808000A9 +:100800000000070F0F06000060F0F87912200000CA +:10081000000000B8FCBC78E0F67F1FBEF830000096 +:100820000410000800201070E2F0600000000000DA +:1008300060F0F06000004030702000000000000018 +:10084000030F0F1F1F3F3F7E7CFCF8D0E0F0F878CD +:1008500040E0E0E0C0800000000000000000000078 +:10086000787C7C7C78787C3E3C3F0F06040000005E +:100870000000000000000000C0E0E0E0F0F8786058 +:10088000000707070F0F1F1F1F3F3E3C38363E3F34 +:1008900000F0F0E0C0C08080000000000000000018 +:1008A0001F1F1E1E1F1F1E0F0F0F0103030000003E +:1008B0000000000000000000B0F0B8B89C1C1C381C +:1008C00041030707070F0F0E1F1F1F3F3F3E3F1E2D +:1008D000FFFFFEF1C3C307878F8F0F0F0F0F0607B0 +:1008E0000D070703070F1F7E000000000000000037 +:1008F0000707878787870300000000010303070FAE +:10090000FFFEFEECF0F0E0E1C1C08081800080C01D +:1009100006060E0C0C0C58F06060E0E04000000091 +:10092000C0C0E0E0C0C080C0E0E0F0F0F0E08000D7 +:1009300000000000000000000000000000000000B7 +:100940000000000000000101010001033FFF7F3FA4 +:100950000003071F7FFFFFFDFEFCE8C080000003CF +:100960000F03000000000000000000073F1F0F03FE +:1009700003070F1F3F7F7F7E3E78F0F0C0C0C000AE +:10098000FCFFFFFFFFFFD783010000073FFFFFFFD2 +:100990003F6F6D4F6FBFBBBFBDBF3DBFDFDFEFEF31 +:1009A000FEFCA8C00000000000060F0303070F1A9A +:1009B000E343010101010000010127FEFC8000006A +:1009C0000000808080C0C0E0C08080F0F0F0F0F0D7 +:1009D0000000000000000000000000000000000017 +:1009E000F0F8F8F8F8F8F0F0F0E0E0E0C0C080804F +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A10000000000001030707060F0F0E0F1F1F1F26 +:100A200000000101030300000000000107000000B6 +:100A30003F7F7FFEFC5E0E0C0E1E7EFCFCFC1C004D +:100A40003F7F7FFEFCF8F0E0C0C0008080800000A7 +:100A500018981818103070FCBC9414300000000076 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A8000000000000000000000004060383F1F0F21 +:100A90000000000000000000000000000183C3C748 +:100AA0000F07030200000000000000000000010327 +:100AB000878F0F0F1F3F3E3E1F0E0E1E3CFCFEFE9B +:100AC0000000000000000000000000000000000323 +:100AD0004040604070793E1F1F0F0303070737F344 +:100AE0007FFFFFEFBEDCC0E080C000000000000020 +:100AF000F3F1F9F8BC3E1400000000000000000013 +:100B0000FFFFFFFDFCFEFFFFFFFFFFBFDF8F0301C5 +:100B1000C08000000000008080808080808000C055 +:100B20000100000001010303023E6C4C1C34040C64 +:100B3000C0C0E0E0C0C08000000000000000000075 +:100B4000BEFC7C762C08C0C0BFDF31FEC3C10101F2 +:100B5000000000000000000080C0E0E0E0E0E0C035 +:100B6000010004040000000000000000000000007C +:100B7000800000000000000020303C1E101808001B +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC00000000000000000001F3F3D7D7A3A000059 +:100BD0000000000000000000E0E0E0F00000000085 +:100BE00000000000060E06001E0E000000000000BF +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000103030203020000D6 +:100C10000000000000387CFECFC3DB440800000069 +:100C2000008080000000008000688000000080E2FA +:100C30000000000000000020207070F0F0F80800B4 +:100C4000F3FC602130301C1E030303010000000090 +:100C5000000000008040800000000080C040C0C054 +:100C6000000000000001010101010100000000007E +:100C7000808080C0C0C0C0C0C0C0E0F0787CFEFFF3 +:100C8000010101010080000000002040E0380E0753 +:100C9000C0C0C0C0000000000000000000008000D4 +:100CA000020303030382030301010101008080802A +:100CB000000000800000008080C0C0FC7F7E7C308F +:100CC00000000000071F1F3F3E3E3E3E1F1F0F0655 +:100CD000000000008080008080808038306040000C +:100CE0000C1E181C3E3C30301818180C0F06070359 +:100CF000000000000000000006040A80000001025D +:100D00000000000000000E0E0E0E07070707030389 +:100D100000000000000000000000000000008080D3 +:100D2000030301010101004167FFFFFF6600C0608E +:100D30008080C0C0E0E0E0C0D0D09030303838389B +:100D400000061E3C3C7F7D7C3F3F1F0F01010103DD +:100D50000000000000000000000000000000000093 +:100D60000203030303030303010101000000000069 +:100D70000000000000000000000000000000000073 +:100D800060C0F4F8C0E0E0C0773800024161713221 +:100D900030207030302060E00000000002844E36C9 +:100DA0001C0403010302030303010301000000000C +:100DB0000406068606020280C28292F8787CFEFE55 +:100DC0001C0E0E0E0E0707070703030303000000A7 +:100DD0000000000000000000008080808000000013 +:100DE000000080000000800080C0F0F8FCFEF8E009 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000018CA +:100E100000000000000000000000000000000000D2 +:100E200038387070706000111F1F1F170703000013 +:100E300040202000000000000080C0E0A0008000F2 +:100E4000070F0F3F7FFFFFFFFFFF7F7F3F0F013B3C +:100E5000BCFEFFFFFFFFFEFCF0FCFEFFFFFFFFFEFE +:100E60007F7F7F3F1F0F0F0701030707030F1F7FC0 +:100E7000F8E0F8FCFEFEFEFEFCF8E08080C0E0FE3C +:100E80007FFFFFFFFFFF7F1F3F7FFFFFFFFF7F1FF2 +:100E9000FFFFFFFFFEFCF8F8F8F8F0E0C0F0F8FC08 +:100EA0000F3F7F7F7F3F0F070F1F1F0F070F1F3F52 +:100EB000FEFFFFFFFFFEFEFCE0E0C080C0C0E0F0F0 +:100EC0000000008000408000000000000040008022 +:100ED0000000000000000000000000000000000012 +:100EE000000000004080000000000800000000003A +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000060F0F07193C3C1870F895 +:100F200000000000000000000000000000000000C1 +:100F3000F8F060060F3F7C783000000000000000F1 +:100F400000000000000000808090181C3C1E0F3F35 +:100F50000000000000000000000000000000000091 +:100F6000FFFE7CF8E0703878783000000000000068 +:100F70000000000000000000000000000000000071 +:100F8000000000000000000000000101000001035B +:100F9000000000000307070300C0E0E1F170E0C0BB +:100FA000030100000000000000000000000000003D +:100FB000C080010302076EF8FC7C380000000000CE +:100FC0000000000080C0C086EF7FFEAC3E1F0F37E0 +:100FD000000000000000000000000000C0E0E0C0D1 +:100FE0007D7E3E3C1800180C1E1E0C000000000008 +:100FF0008000000000000000000000000000000071 +:101000000000000004041C1C3C3C3C3C78747C7CCC +:1010100000000000000000000000000000000000D0 +:101020007C7C7C7C7C3C3C1C0C0404040C3C7CFCE8 +:1010300000000000000000000000000000000000B0 +:101040003F3F7FFFFFFAF8E0F0C09C1C1E1F9E8E02 +:10105000C0C0C08000000000000000000000008050 +:101060008DCFC3C3C3C381818080C0C0E0E0C00016 +:1010700080A0E0F0F0F8F0E0C8DC1C0E1F3F7EFC22 +:101080000000000002070707070703000000000038 +:10109000000000000000008080D0707C0000000094 +:1010A0000000000000000000000008E8F8504000C8 +:1010B0000000000000000000000000000000000030 +:1010C000070F0F0F1F1E1F3F3E7E7C7C78343E3E75 +:1010D000E0C0C08000000000000000000000000030 +:1010E0003E3E7F7F7F7B7E3C1E0E0E07070F3F7FBD +:1010F00000000000000000081C1E0F0F1F9EB870AB +:1011000000000000000000000000010101010101D9 +:1011100000000000000000000000000000000000CF +:101120000103030707070301000000000103070F85 +:1011300000000000000000000000000000000000AF +:101140000000000001071F3FFFFFFFFCE0A1C3E319 +:10115000000000F0FCF8F8E0C0C00000E0C0C0C033 +:10116000F3F3E3E1E1C1E1E1C0C0E0F0F0E0C08011 +:101170008040E0F0F0F0F0E0E8F81C1E1E1E3E7C1F +:10118000000000000000000000000000000000203F +:10119000000000000000000000000000000000004F +:1011A0003B3C3E3C7A7F7E7E3F0E06060E3F7FFF35 +:1011B000000000000000000000000000000000002F +:1011C0000000000002060E1E1E3E3E7C7C787078F9 +:1011D000000000000000000000000000000000000F +:1011E000ECFCFEFCFC7878383C1C0E0E0E1E3E7C9F +:1011F00000000000000000000000000000000000EF +:10120000005FBFBFBEBEBC7A7E7E7C3E3E3E3D3FA1 +:10121000000000000000000000000000000000804E +:101220001F1F1F0F0F0F070301008080C0C0800029 +:1012300080C0E0E0E0D8F8FC9E0F0F0F0F1E3C7856 +:101240000000000000010101010100000000000099 +:101250000000000080C0C0E0E0F0DC1E38000000AC +:101260000000000000000000000064FCF07020009E +:10127000000000000000000000000000000000006E +:101280001F1F0103030303030707070707070303E0 +:10129000F8F8F0F0E0E0C0C0C080C0C08040C0E01E +:1012A0000303010101010100030606070F1F3F7E32 +:1012B000F0F0E0E0D8F8F0F42E0F078F8F9E3C7826 +:1012C00000000000000000000000030F1F1F1E3F71 +:1012D000000000000000000000000080C0FFFF5F71 +:1012E0003F3E3E3E7E7F7F7E3C0806060E3F7FFFF0 +:1012F0003F3E0820383C3E3C3A363D1F1F1F0F0E34 +:10130000000000000000000000000000000000805D +:1013100000000000000000000000000000000000CD +:101320000000000000002E7E7EEECECECE8C1C385B +:1013300000000000000000000000000000000000AD +:101340000000000000000064FCF070200008181885 +:10135000000000000000000000000000000000008D +:1013600018181818181818080000000000000818AD +:10137000000000000000000000000000000000006D +:101380003EFEFEFCF8F1E1A1D1F1FBF3F373733BF8 +:101390007CFEFCF8F0F0E0F0E0E0E0E0C0C0A0E0AF +:1013A0003B7BF9F1F10100000000000000000000AB +:1013B000F0F0F0F8F8FCFCF8F0FE6E061F3F7EFC43 +:1013C0001E1F0F07070F0F0F1F1F1F0E0F0F0707FF +:1013D000F8F0F0E0C0C0808000000080808040E035 +:1013E000070703030101060E07070F0F1F3E7C00CE +:1013F000E0F0F0F0E0F0FC5E0F8F8E1E1C1818304D +:10140000000000000000000008E8F87060080818FC +:1014100000000000000000000000000000000000CC +:101420001818181818080800000000000000081814 +:1014300000000000000000000000000000000000AC +:101440007FFFFFFFFFB8D0E1B1F1FBFFFB73733B00 +:10145000FEFEFCE00020E0F0F0E0E0E0C0C0C0A054 +:101460003B7BF9F0F00000000000000000000000ED +:10147000E0F0F8F8F8FCF8F8787C2E071F3F7EFCC7 +:101480003F3F0F1F3F7F7E7EFCECF0F8ECFCFE7EC2 +:10149000F8F8F0C0808000000000000000000000AC +:1014A0007C7C7C3E3E3E3E3E1607070F1F3F7C0085 +:1014B00000000000000004040E0F8F8F9E1C387087 +:1014C0000000060F0F0F0601070F3F7F7E6C787438 +:1014D0000000606090F8FCF8F8F0C0000000000028 +:1014E0003E3E3F1F1E3E3E3F3F1B030303071F3F81 +:1014F00000000000000000006070B8B8F0C080007C +:101500000303030707070703010203030303070796 +:10151000E0E0E0C0C0C0A0E0E0E0F0F0F0F0F0F803 +:1015200007070102030100000000000000000101A4 +:10153000F8F0F0E0E0F070383C7C7878F0E0C080C3 +:1015400000030707070F0F0F0F0F07071B3E393B5D +:10155000408000C0E0E0E0E0C0C0C0802060E0C0AB +:101560000300000103030301030303000000000064 +:101570008000E0F0F8F8F0F0F0E0C00000000000BB +:1015800000000000000003071F3F3F7E6870787670 +:10159000000000000000F0F8F8E08000000000000B +:1015A0007E7F3F3E3E3C1F1D0000000101030307FC +:1015B000000000000080C0F0F0F0F0E0C0C080004B +:1015C000010E1E1F1F3F3F3F3F3E1E1F1F1F1F0FCD +:1015D000000000C0F0FC8E838183020282808404BC +:1015E0000E0003070F0F0F070F0F0F000000000082 +:1015F000000080C0E0E0C0C0C0800000000000002B +:101600000000000000081818183838383038787092 +:1016100000000000000000000000000000000000CA +:10162000707878783838381818080800083878F84A +:1016300000000000000000000000000000000000AA +:101640000F1F3F7FFFF8F8F0F4C6CF0F87C7C7C75B +:10165000C0E0E0C00000000000000080800080C00A +:101660008787C3C3E3C3838181C0C0C0E0E0E0805B +:1016700040E0E0E0C0A0E0F0F87C7E0F0F1F7FFCB0 +:101680000000000000000000000000000000010158 +:1016900000000030787868703011193CFEFFFFFFC1 +:1016A0000101020203030303030100071F7F7F7F81 +:1016B000FDFEDFEEE0D0B0F0F8F8F0C0C0C0800072 +:1016C000000000000000000000000000000000001A +:1016D00000000000000000000000000000000030DA +:1016E0003F7FFFFFFFFFFFFF0F8F918180804C3F07 +:1016F000F0F8FCFCFCFCFCE4606020E020000080D2 +:101700001B070307070F070707030307070707035D +:10171000C0C0C0C08080808080C0C0C0C0C0C0C009 +:101720000303030707030101000000000101030395 +:10173000E0E0E0E0E0E0F0F0F060C0E0F0F0F8F8C9 +:10174000000000000000000101010303070B030576 +:10175000000000000058FCFCFCFCFCF8F8FCFCF865 +:101760000800000000000000010000010001003836 +:10177000C0000000C060E0E0E0C0C0C0C0C0E060E9 +:101780003C3C0F03030000000000000000000000CC +:1017900060F8F8F8E0787878300000000000008009 +:1017A0000000000000000000030F1F1F0F0F0707BD +:1017B000000000000000000080C0C08080C0F0F881 +:1017C000000000000000000101010303070B0305F6 +:1017D000000000000058FCFCFCFCFCF8F8FCFCF8E5 +:1017E0000800000000000010303030206060E0FC95 +:1017F000C00000000060E0707070381C3C1E1F0FBD +:101800007F7FF7E0600000000000000000000000A3 +:101810000EFEFEFF07030B090C0E0E0F0F070F073E +:101820000000000000000000303C3C78F8FC7E1F07 +:101830000707030103030101010103030303070772 +:1018400000000000000F0F1F3F3F3E7C74787C7447 +:1018500000000040408000000000000000001C3F2D +:101860003E3F1F0E0F0F0F0707070703000001077A +:101870001F0F0F070686C68280A0E07078F8F8F088 +:101880008B0F0F0707070307030301010207070375 +:10189000E0E0C0C0C0C080808080C0E0E0E0E0E068 +:1018A000030303030707070703000000000000000D +:1018B000F0F0F0F0F0F0F8F8F8F06070787C7E7FEF +:1018C0000E0F1F1F1F1F1D1E3D3F3F3F1F1F1D1FD0 +:1018D0000000008080000000000000808080808088 +:1018E0001F1F1F0F0F070101010103030307060458 +:1018F000C0C0800000C0E0E0E0C0C0808000000008 +:1019000000000000000003060E1E1C3C7C7C3C1EF8 +:1019100000000000000000000000000000000000C7 +:101920000F07070303070F0F03000000000000006C +:10193000C0E0E0F0F4FEFFFF3FFF3E0101000000C9 +:10194000070F0F0F0F0F0F0F87C7E3E1F87EFFFFA1 +:1019500000E0F0F8F8F8F0E0F0F8FCFCFE0C88D8B5 +:101960007F7F7F1F0701040F0000000000000000C0 +:10197000B4F4FCF8F8F040000000000000000000A3 +:10198000000000000000000000010101010103034C +:10199000030F0F0F0F0F0F9FDBD19C3D9F9FDFDFCA +:1019A0000707070F0F0F1D1E0F0303070F1F3F7FB2 +:1019B000D9F8F4FCFCF8C0C0808080008080C0C0F2 +:1019C0000000000000000000000001010101010012 +:1019D00000000000000000000080C0C0E0E0F0DC7B +:1019E0000000103030707060200000000000000027 +:1019F00000000000000000000000000000000000E7 +:101A0000000000000000000101010303070B0305B3 +:101A1000000000000058FCFCFCFCF8F8FCFCF8F8A6 +:101A20000800000000000107070F0E1C5CF8F87C9E +:101A3000C000000000A0E0C084040404000203030E +:101A40007F7FF3F0F0F0600004060707030203064F +:101A500082FFFF7F01010100000000800000000004 +:101A60000706060404040E0E0E0E1E3C3C3E1F0F1D +:101A700000000000000000000303010101030383D4 +:101A80000000000000000000020202060602000240 +:101A90000000000000003030706000000000000016 +:101AA0000E1E7EFEFEF8F0E02000000000000000A8 +:101AB00000000000000030000000000000000000F6 +:101AC00000010101000000000000000000FFFFFC19 +:101AD00000000080C0404000000000000080387E10 +:101AE000F1E0C00000000000000000000001010162 +:101AF000DFBF7F2F7F7FFE7E3CEC60E0F8FCFEFFC7 +:101B000000000000010303030303000E1E3E3E7E9F +:101B100000000000008080C0C0E000000000000065 +:101B2000E6E2C6C6A2A0828FDFCEEFFEFADE1E1C62 +:101B300000000000000000C0C0C0404040000000A5 +:101B4000000000000000000080C0E0703018343059 +:101B50000000000000000000000000000000000085 +:101B600060604060C0E0F0E0C0C0E0E0F0F8FEFF80 +:101B70000000000000000000000000000000000065 +:101B8000000000000000000000003F3F1F0F07049E +:101B900000000000000000000000008080800000C5 +:101BA0000F0E0F1C3E3F383C1E0F000000000000CF +:101BB00000000000C0000008080C9C7E1E0F0E04F0 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000080C0E7E3E1C103C3E3C70FDF0783E22 +:101BF000000000000000000000000000000000E005 +:101C000003030303030101010100000000000001C0 +:101C1000F0E0C080C0E0F0F0F8F0F86CCCE6C58CE5 +:101C2000030307070E1C387C78E07078FCFE7F1FEA +:101C3000088C9C183C3C30786070F8F878FEFFFF08 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C600000000000000000000000000000000080F4 +:101C70000000000000000000000000000000000064 +:101C8000000000000000000000000000000103064A +:101C900000000000000000000000000080C0F07F95 +:101CA0000E0C0D0C1E3F3E78FDFEFC7E7E3F1F0796 +:101CB000FFFFFF6C0000000000400000000000A0DB +:101CC00000000000000000000000000000030F1EE4 +:101CD0000F0F0F07030707060707033EFDE9C8803C +:101CE0001E3C7C7C7E3E0F070000000000000000D0 +:101CF00080000000000000800000000000000000E4 +:101D000000000000000101010101000000000000CE +:101D100000000000000080C0E0FA5E3E0600000007 +:101D200060800000C0E8B0206060703038191F1F6C +:101D30000000000000000000000000000080E0F053 +:101D400000000060E0E0E0E0707070703838383813 +:101D50000000000000000000000000000000000083 +:101D60001C1C1C1C0E0E0E0E0000000000000000CB +:101D7000000000000000000003077F7F7A200000C1 +:101D8000070F0F0E07070707070303030307070FD4 +:101D900038000000000080008080C0C0E0D0C0C0DB +:101DA0000F0F1F1F1F3F3E7F7FFFFF7FFFFFFF7F44 +:101DB000E0808080C08000008080008080F8FEFF8E +:101DC000D0406000002070F0F0F0C080101810309B +:101DD0000000000000000000000000000000000003 +:101DE000393E78717060383E00000000000000004D +:101DF000000020A010101818383830000000000033 +:101E0000000000000000000000000060E0F07078BA +:101E100000000000000000000000000000000000C2 +:101E2000383C1C1E0E0F07070303010100000000D1 +:101E3000000000000000008080C0C0E0E0F070788A +:101E40007C383C1C0E0E0F0F07070707070F0F1FEC +:101E50000000000000000000008080C0A0808080A2 +:101E60001F3F3F7E7FFFFEFF3F7FFFFF7F3F000062 +:101E70000000000000000000808080C0F0F800003A +:101E800000000001030302030200000030F8F8F034 +:101E9000387CFECFC3DB44080000000000000000D7 +:101EA000C0043020303438707060F0F8783C7E7CAC +:101EB0000000000000000000000000000000080C0E +:101EC00060E0E0F070707838383C1C1C1E0E0E0F7D +:101ED0000000000000000000000000000000000002 +:101EE00007070703030300000000000000000000D4 +:101EF000000080808000000000707078787C7E3F59 +:101F0000000000000001030302030200000038F893 +:101F10000000387CFECFC3DB440800000000000056 +:101F2000F8F0E04010383C3A31607078F0E07038FA +:101F300000000000000000000000000000000000A1 +:101F40003F3E3C181C0E0707070703030303030764 +:101F5000C000000000000000808080C0C0E0D0C051 +:101F6000070F1F1F1F3F7FFFFFFF3F7FFFFF7F3FC9 +:101F7000C0808080C0C08080C0C080C0E0C0C08001 +:101F800060E0E0F0707070383838381C1C1C1C0E93 +:101F90000000000000000000000000000000000041 +:101FA0000E0E0E07070707000000000000000000EB +:101FB00000000000000000800000000000000000A1 +:101FC0000000000307070D0C0E0E1F1A080E02007A +:101FD000000000E0F0E020004000000000000000F1 +:101FE0000020200000002030002036002000303883 +:101FF0000000000000000008081C1C3C3C3E028061 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4d-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4d-.bin.hex new file mode 100644 index 00000000..d5f6935c --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4d-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000002030103E7 +:1000100000000000000000000040E0E080E000E0A0 +:10002000FB73C7E7FBFD7E7F3F1F07030101000055 +:10003000E0E0E0E0E0E0C040400000A8F8F7FF7E2C +:1000400000000000000000000000000000000000B0 +:100050000000000101000000000001030301000096 +:10006000DFDFAEB8BC5F7F2F2F0703010000000069 +:100070003C7C7CFCFC7CBCD8E8E8E8F03D1F1E0F13 +:100080000000000000000000000000000000000070 +:1000900000000000000007077E7C081010181818E8 +:1000A0000000000000000000000000000000000050 +:1000B000010300000000000000000000000000003C +:1000C0000001030307030D0F1B1F0F030F0E1F3F3C +:1000D000E0F0F8FCFCFCFCE8FCFCFCF8F8F838C0AC +:1000E000F8FCFEC01C7FFFFFFFFF7F1E80FCFCF8BA +:1000F00000000000002078F8F8B8000000000000C0 +:1001000000000000000E7FFFFE8C000000000000D9 +:1001100000000000032EFFBF1C1E1800000000009E +:1001200000000000000000000000000000000000CF +:1001300007060604080000000000000808080C0C70 +:100140000000000000000000000000000000E0F0DF +:100150007C78787060000000000000000000000063 +:10016000000000000000000000000000000000008F +:10017000000000000000010F0F0F1F1F0100000012 +:100180000307070F1E3E7EFCFCFCF8F8F8F87838F1 +:10019000000000000000000000000000000000005F +:1001A0000000000000000000003633311808000095 +:1001B0000000000000000000000080C0C0600000DF +:1001C00000000000030F1F3F7C70000000000000D3 +:1001D000000070F8F8F0C00000000000000000000F +:1001E000000000000000000000000000047CF80097 +:1001F00000000000000000000000000000000000FF +:10020000000000000001000703070F0707030103B8 +:10021000000000000080C0E0F0E0E0E0F0E0E080FE +:1002200007070C0811172327274F4F6F73783030BB +:10023000808080C0C0C0C0D090D8D89C1E1F0E0641 +:10024000070F0E0C1C1C1D19193D3D3C1C0603011B +:1002500000008080C0C0C080008080808080C0E0BE +:10026000070F1F1E3C3C7E7E7EFFFF7FF7F0600085 +:1002700000808080C0C0C0C04060188CDE7E3C0C16 +:10028000000000F8FCF6E1F0FEF3F0F8F0F060009A +:10029000000000000C09BF5E1CA0E0000000000090 +:1002A000000000000000010307070F0F070303070A +:1002B000000000000000C0E0E060F0F0E0E0C0807E +:1002C000C0C0C0C0C0C0000000808080C00000006E +:1002D000000000000000000000000000000000001E +:1002E000000080C0FEFEFEFEFEFEC0C0C08080009A +:1002F00000000000000000000000000000000000FE +:100300000000000103070F0F1F1F0F0F0F0F07073C +:100310003C7EFEFEFEFEFEFEFEFEFEFEFEFEFEFE3F +:1003200000000000030303010100000000000000C2 +:10033000031F7FFFFFFFFFFFFFFFFFFFFF1F000007 +:10034000000000000000000000E0E060300000005D +:10035000000000000000000000000000000000009D +:10036000000003070F1F1F0F070F0F0F03000000F0 +:100370003C7FFFFFFFFFFFFFFFFFFFFFFE3E000090 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A0000000000000000000020303010103070336 +:1003B0000000000000002078F8FCECE8FC9CC8E09D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E0000000000000010B0F0F07073E3F1D00003B +:1003F0000000000080E0E0B0B0E0F070208000007D +:100400000001030307030D0F1B1F0F030F0E0F0F38 +:10041000E0F0F8FCFCFCFCE8FCFCFCF8F8F87800E8 +:100420001F3F3E7C7973F7F7E7EFE7E7E7E7C3DFC6 +:10043000C0D87C1ECEE7F7F7F7E7EFCF0F9E9E3CC4 +:10044000000000000000000080404040000000006C +:10045000000000000000000000000000000000009C +:1004600000000000000000004040707070783838D4 +:10047000000000000000000000000000000000007C +:100480000000000000000000000000010101030363 +:100490003C3C7E7E7F7F7FFFFFFFFFFFFFFFFFFE75 +:1004A0000307070F0F1F1F0000040F0F1F1F3F3F01 +:1004B000FEFEFEFEFCFCFCFC000000E0F0F8FCFE92 +:1004C000000000000080808080000000000000002C +:1004D000000000000000000000000000000000001C +:1004E00000000000000000000000081F1F1F3F3F29 +:1004F0000000000000000000000000C0F0F8FCFE5A +:100500000001030307030D0F1B1F0F030F0E0F0F37 +:10051000E0F0F8FCFCFCFCE8FCFCFCF8F8F87800E7 +:100520001F3F3F7C797377E7EFCFDFCF8F973C3E5C +:10053000C0D8FC7E3E9FCFEFEFEFCFDF9F3E3E7CEB +:1005400000000000000000007E7C7D3B1D0C1E1E94 +:100550000000000000000000FCFCFCFCFCFCF810AB +:100560000F0F07070301000000000000000000005B +:100570000000008090F0E8FE7E3C180000000000C3 +:1005800004040404060E0E0C0C1C1C1838383870B9 +:10059000000000000000000000000000000000005B +:1005A00070F0E0E0E0200000C0C0E2FFFFFFFF0FBE +:1005B000000000000000000000000010F8FCFEFF3A +:1005C0000001030307030D0F1B1F0F070F0E0F0F73 +:1005D000E0F0F8FCFCFCFCE8FCFCFCF8F8F8780027 +:1005E0001F3F3F7E7C7973F3F7E7EFE7E7E7C35FF1 +:1005F000C0C0DC7C1ECFE7F7F7F7E7EFCF0E9E9E7B +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:10062000000000000000000004070F0F1F1F3F3FE5 +:1006300000000000000000000000C0E0F0F8FCFE38 +:100640000F0F0F0F0F0F0F1F1F1F3F3F3F3F3F1F8A +:100650000000008080C0C0C0C0C0C0E0E0E0E0E0BA +:100660001F1F1F1F3F3F3F3F00000C0F1F1F3F3F3B +:10067000F0F0F0F0F0F0F0F0000000C0E0F0FCFE70 +:100680000001030307030D0F1B1F0F030F0E1F3F76 +:10069000E0F0F8FCFCFCFCF0FCFCFCF8F8F838801E +:1006A0007F4713F9FCFEDF0FE2FC9FE3FFFFF3033C +:1006B00000E0F0F0F8787C7C7CE0F3FFFFFFFFFEC9 +:1006C000000000000C1C1C3C78FCFCFC7C3C103C3A +:1006D000000000000000000000000000000000001A +:1006E0003F7F3F3F1F0701000000000000000000A7 +:1006F000FFFFFFFEFEF8F000000000000000000019 +:1007000000000000000000000000000000000000E9 +:100710000C0707030303010001030307070F0F0F73 +:1007200000000000000000000000000103030707B4 +:100730001F3F3F7FFF0F000000C0F0FCFEFEFFFFE9 +:10074000000000C0E0E0F0F0F8F8F8F0F0F0F0F0B1 +:100750000000000000000000000000000000000099 +:10076000E0E0E0E0C0C000000000181E3F3FFFFFD7 +:10077000000000000000000000000040F0F8FCFC59 +:100780000000000103070F1F1F0F3F1B0F07070784 +:100790003F7F7FFFFFFFFEFEFEFEFEFFFFFFE7FF46 +:1007A0000303030000000000000000000000000040 +:1007B000FFFFFFFF3F0F00000000000000000000EF +:1007C0000000000000000000000000000000000029 +:1007D00003030303010101000101030307070F0FD6 +:1007E00000000000000001000000000101030707F5 +:1007F0001F3F3F7F7FFFFFFF0000C0E0FEFFFFFFC6 +:10080000C0E0F0F8FCFEFEFEFCFCFCFCFCFCFCFC8A +:1008100000000000000000000000000000000000D8 +:10082000FCF8F0F0E0E0E0C0000000070F0F9FDFF1 +:10083000000000000000000000000000F8FCFEFFC7 +:1008400000000101030106070D0F07030707070F4B +:1008500070F8FCFEFEFEFEF4FEFEFEFCFC7C9CE05E +:100860001F3F2701387EFFFFFEFFFEFC5183BFBF05 +:10087000F0F8FCFEFE7E3F3F3F3F7FFFFFFFFFFEA5 +:100880000000000000000000103858783838183890 +:100890000000000000000000000000000000000058 +:1008A0003E1E1E1C1D0D0D06070707070303000053 +:1008B000FFFFFFFFFFFFFCFC00800080C080000006 +:1008C000000000000000000000000000001078F0B0 +:1008D0000000000000000000000000000000000018 +:1008E000F0F8F87C3C3C3C181C1C0C0C040000008C +:1008F00000000000000000000000000000000000F8 +:1009000001010000000000000000000101070F0FBE +:10091000C0E0F0F0F0F070787878F8F8F8F8F8F8CF +:100920000F0F0F1F1F1F3F3F0000181C1F1F3F7F8F +:10093000F8F0F0F0F8F8F8F800000080E0F0F8FCCB +:10094000000000000100030306070300030307077C +:10095000387CFEFFFFFF7FFAFFFFFFFEFEBEDEC01A +:100960000F0301187EFEFFFEFEFCF97387FF7FFF79 +:10097000F0F0FCFE7E7E7F7F7FFFFFFEFEFCFCF83A +:1009800000000000000004747C7C787838783C3CDF +:100990000000000000000000000000000000000057 +:1009A0003D1D1D0D090D070706070707030300007E +:1009B000FFFFFFFFFFFF3F0FA0E0E0C0800000004F +:1009C0000000000000000000000000000001030320 +:1009D0000000000000000000000000000000000017 +:1009E0000307070F0F1F0F0F0F1F1F3F7F7FFFFF13 +:1009F000FFFFFFFEFCFCFC9C80000080C0F0F8FCC8 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A2000000060787F7F3F3F3F7F7F7FFFFFFFFFBA +:100A3000000000C0C0C0C0C0C08080808080800036 +:100A400000000001010207050707070F0F1F1D7EA9 +:100A5000387CFEFEFFFF7FFFF6F4FC3C1CC8E02064 +:100A60007FFFFF7F1F8FCFE7E7E7C7CFCF9F3F3FD6 +:100A700000E0F0F8FCFCFEFEFEFEFCFCF8F8F0F0F6 +:100A8000010000010307070F0F0F1F0F1F3A3C7DE6 +:100A90000000000000000000000000000000FFFF58 +:100AA0007B373B183C3C1E1E0E0606030303070F54 +:100AB000FFFFFFFF0F00000000000000C0E02080EB +:100AC000000000000000000000010101010101011F +:100AD000000000000000000000C080808080000056 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B0000383810181C0F060C0C08080C0C0C0E0CB6 +:100B100000000000000000000000000000000000D5 +:100B20000C1E1C1C181C0E00000101030303030310 +:100B30000000000000000000000898FCFEFFFEE03E +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000004070707070362 +:100B70000000000000000000337FFEFCF0E0800079 +:100B8000E0F0F8F8FCFCF8707CFCB4CFFB8307FFC6 +:100B9000000000000000000000000080E0F0F0F025 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000F4FEFFFFFFF7F7F3E0E0E0C0C0C0E0E0C5 +:100BC000C0FFFFFFFFFCF0E040000030306060F04D +:100BD00000F8F880000000000000000000000000A5 +:100BE000F0303C0C8F878000000000000000000007 +:100BF000000000000080E0F01C080C070301010168 +:100C000000070F0F0F07030A090D0406020307036D +:100C10008080808080C0C0E0607070301858D898A4 +:100C200000000000000000000000004060703C0E6A +:100C300098800000000000000000000000647F7F3A +:100C40000006070703020909080406060000050755 +:100C50004040008080C0C0C0E060607030302060E4 +:100C6000060200000000000010181C0C0404070716 +:100C700040C0400000000000000000000040E0E034 +:100C800003050C070701030301010000000206042D +:100C9000C080800080808080C0C0C0404040E0F0C4 +:100CA00000010000000000000000004060603C0EF9 +:100CB000F0F0C000000000000000000000447E7F53 +:100CC0000000010001030101030100000100070F02 +:100CD0000C7EFFFFFEFEFCFEFFFCFCFCF01080C063 +:100CE0003F77FBEC80DCDEDEDC48480C080F185E4A +:100CF000C0C08000000000000000000000C0000034 +:100D000000404040000000000000000000001B1BED +:100D100000000000000000000000000000000000D3 +:100D20001B0C0E0F07030301010000000000000070 +:100D30000000000040C080C0C000000000000000B3 +:100D40001C0C0C1E1E0E070707070F0F0F0F0F07B7 +:100D5000000000000000C0C0C0C0C0C08080808013 +:100D60000707070707030301010000000000000058 +:100D700080808080808080C0C06000000000000013 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E8000010101010101000000000000000000005C +:100E9000FCF8E8F0F0F8F87C2C2C343414163637D3 +:100EA000000000000000000000000101010100003E +:100EB00077474400000000000000000080E0F07070 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE00000000000000001010101010000000000FD +:100EF000000000000080C0C0E0E0F0DC180000004E +:100F000000000000000000000000000000000000E1 +:100F1000000000000000000000000000607078FC8D +:100F20000000000000014141C7FEE0E06000000059 +:100F3000FCFCFCF8E4CCCCD81C7CFCF000061EFCCD +:100F40003E3E3E3E3C7C7C787E3C3E3E3E1F1F1F2C +:100F50000000000000000000000000000000000091 +:100F60001F1F3F3E3E3E3E3E1F0707070E06000086 +:100F700000000000000000008080C0C0C0C0C000B1 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000107030101B3 +:101030000000000003071E3E7C7CF8F8F0F0C0C002 +:10104000000000000000000000000000000103019B +:1010500000000000000000000000000000C0E0E010 +:101060000006070703070F1F1F3F7E3E7CF0F07C42 +:10107000F03838BC948C9C161E1E1E0E38383E3F2D +:1010800000000000000000000000000000000C064E +:101090000000000000000000000000000000000050 +:1010A0000303010300050A0B1B13371B0F0E1F1F41 +:1010B000E0C080C0C0C0C0C0808080808000008050 +:1010C000000000000000000000000000080E0F07F4 +:1010D000000000000000000000000000000000A070 +:1010E0000707070F0F0E1E1E3C7C7870E0F0F87C9F +:1010F000A0B030387878787C3E3E3E3E183C3E3F8B +:10110000000000000000283E1E34783C7E3C1C0895 +:1011100000000000000000000000000000000000CF +:10112000060F1F1919191B1A1B38040402030100AA +:101130000000008000000000008080404060F0E07F +:101140000000000000000000000000000404040390 +:10115000000000000000000000000000000000008F +:1011600001010002030307060E0E060E060301002E +:10117000E0E0A06070307070F0F0F060F0F0F8FC2B +:101180000000000000000000000000000007010750 +:10119000000000000000000000000000000080C00F +:1011A00001030010387CFE7E7CFD7F3F1D010000A6 +:1011B000E09090C84828284D9FDFFFFFFFFFFF7E8B +:1011C000000000000000000303010103070F1F3FA0 +:1011D00000000000000000000080C0C0E0E000004F +:1011E0003C7C78F0E2CB1D3FB9F0F0F0F0E08000FD +:1011F0000000000206BEFCFCD80000000000000059 +:101200000000000000202020206060606060303C12 +:1012100000000000000000000000000000000000CE +:101220003C1E1E0F0F060D0C1E3C7C7C3870F8FE19 +:1012300000000000808000000000000000000000AE +:101240000000000000000000030107030703030380 +:1012500000000000000000A0F0F0F0F0E0F080C01E +:10126000071F23634F1F3A3C9E9F5F5F3E38380045 +:10127000000080800000000000000000000000006E +:10128000000000000000000000000000000707034D +:1012900000000000000000000000000000000080CE +:1012A000030103010000010B0B1A1C0E00060E0CBB +:1012B00080808080C0C0404000000000000000002E +:1012C000000000000000107C3C7CFC7EFC787E3935 +:1012D0000000000004151F0F0E141424244848D0E9 +:1012E0001F0C1F1F1F1F1F1F1F1F0F0F00000000BD +:1012F0000020C080E0F0F0F0F0E0E0C0C08000002E +:101300000000000000000000000000000000004796 +:1013100000000000000000000000000000000000CD +:101320007FFF6F4B01030301070303010303030165 +:10133000C0E0F0F8F9FDBF9E9C888080F0E0C0001E +:1013400080C0E0E0E0E0F0F0F0F0F0F0F0F8FCFE5B +:10135000000000000000000000000000000000008D +:10136000FC08080000000000000000000000000071 +:10137000000000000000000000000000000000006D +:1013800000000000C0C0C0C0C0808080808080009D +:10139000000000000000000000000000000000004D +:1013A00000000000000000000030301808000000BD +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000011C +:1013D000000000000000000000000000000000808D +:1013E0001F0F0F07030000000000000000000000B6 +:1013F000EFFFFFFFFFFF3F0F0F0F0F1F1F1F1F0309 +:10140000E0F0F0F8F8F8F8F8F8F0F8F8FCFEFFFF74 +:10141000000000000000000000000000000000804C +:10142000030202F0F0F8F8F8F8FCFCFCFCFCFCF815 +:1014300000000000000000000000000000000000AC +:1014400000000F0F0F0F0303010101000000010155 +:10145000000000000000000000000000000000008C +:101460000303030300000007070703010000000057 +:10147000F8F8F8F0F030000080808080C0000000B4 +:101480000000000000000000000000000000000656 +:10149000000000000000000000000000000000004C +:1014A0007F3F3F1F0F03000000000000000000000E +:1014B000BFFFFFFFFFFFFF3F3F3F3F3F1F3F7F7FDC +:1014C00080C0C0E0E0E0E0E0E0E0C0E0F0F8FCFE7A +:1014D000000000000000000000000000000000000C +:1014E000FC080800E0F0F0F0F8F8F8FCFCFC7C7C6C +:1014F00000000000000000000000000000000000EC +:1015000001000407070707030100000000000000B6 +:10151000E0000080E0E0E0E0E0E0602000000000AB +:1015200000000000000000183C3C381800000000DB +:101530000F070F0F0F1F030000030301000000003F +:10154000000000020301000101010101000101018D +:101550007E000000FEFEFEFEFCFCFCFCFCF8F8F841 +:1015600001030703010000040F0E0606030000003C +:10157000F8F0F0F0F0E000000001010000000000D1 +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000C0C040300000004B +:1015B000000000000000000000000000000000002B +:1015C00080C0E0F0F8F8F8F0F0F0F0F0F8F070001B +:1015D000000000000000000000000000000000000B +:1015E0000008FCFEFFFFFF7F1F0F070F0F0F070014 +:1015F00000000000008080C0C0C080C0C0E080004B +:1016000000000000000000080F1F1F0F070300006C +:101610000000000000000000E0E0E0E0E0E0E000AA +:101620000000000000000000181C1808080000005E +:1016300000000000000000000000000000000000AA +:10164000000080808080C0C0F8FCFCF8F8F87030A2 +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:101680000000000000000000070707030100000041 +:101690000000000000000000E0FCFCFFFFFF7F3FB7 +:1016A000000000010000000203070706020000001E +:1016B0007F7FFFFEFE7C38180080000000000000E5 +:1016C000000000000000000000000000008080809A +:1016D000000000000000000000000000000000000A +:1016E0008080000000000000003838180C00000066 +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000103071F3F70 +:10171000000000000000000000000080C0C0E0E009 +:101720003F7F7FFFFFFFFFFFFBE3430100000A0B4A +:10173000E0F0F0F0F0F0F0F0E0F0F0F0300000C099 +:1017400000000000000F070707030303010100006A +:101750000000000000E0F0F0F0F8F8F8F87CFCFC85 +:10176000010103030301000000181C1D0C00000010 +:10177000FCFCF8F8F8F878000080E0E0F060000089 +:10178000010303070F0F1F1F1F3F3F3F7F7F040011 +:10179000FCFEFEFFFFFFFFFFFFFEFEFEFCFE000063 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C000070000101F1F1F0F0F0F07070303030160 +:1017D000E0E0000000C0E0E0F0F0F0F0F0F8F8F831 +:1017E00000010103030707070000000705040000CC +:1017F000F8F0F0F0F0E0E000000000C0E0C0000011 +:101800000000000000000000000000000103070FBE +:101810000000000000000000000040FFFBFBFDFD99 +:101820001F1F3F3F3E3E0C00000000000000000074 +:10183000FCE8F0F8FCF8F8F60F030040F8FEFE7F35 +:101840000000000000000000000000000080C0C098 +:101850000000000000000000000000000000000088 +:10186000C0C08080000000000000000000000000F8 +:101870000000000000000000000000000000000068 +:101880000000000000000000030100000000000054 +:101890000000000000000404FEFEFEFF7F7F3F3FCB +:1018A000000000000101010302002078F96100003E +:1018B0007F7EFEFEFEFCFCFC080000C0E0C00000D5 +:1018C000070F1F3F7F7FFBF9F9FDFDFC7000000053 +:1018D000F9FFFFFFFFFFFFFFFFFFFFFFFFFE786045 +:1018E00000000000000000000000000000000000F8 +:1018F000071F3F3F1F1F0F030000000000000000F4 +:1019000000000000000000000000070707070707AD +:10191000000000000000000000000080C0F0FCFE9D +:1019200007070701000000000000000000000000A1 +:10193000FFFFFFFF5F1F1F0F0F0F070302000000D5 +:101940000000000000000000000000000000008017 +:101950000000000000000000000000000000000087 +:1019600080C0C0C0E0E0C0800010383C180000001B +:101970000000000000F8F02000000000000000005F +:1019800000000000000101031F1F1F3F3F3F7F7F3A +:101990000F1F3F7FFEFCF8F8FDFFFFFFFFFFFFFE7C +:1019A000FFFBF9FD7C7E7C38300000000000000069 +:1019B000FEFEFCFC78783100000000000000000012 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E000000000000000000010387C7EFE0C08089B +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000080E0C0808000003079A +:101A10000000000000000000000100000000E0FFE6 +:101A200007070F0F0F0F0F0000000000000000005D +:101A3000FFFFFFFFFFFD800000000000000000002E +:101A40000000000000C000000001030381C0E0F0BE +:101A500000000000000000000080F0E0E040000016 +:101A6000F8FCFCFEFEFCFC782001030301000000F2 +:101A700000000000000000000000E0C08000000046 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA000000002000000020000000603104C6070FD +:101AB000000000000000060E06000000000000000C +:101AC0000000000000000000000000000000000412 +:101AD0000000000000000000000000000000000006 +:101AE0000000040000010301000E020000000000DD +:101AF00008081870D0C08020080000000000000016 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B20000000210109000001010000030300000082 +:101B30008080C062480080C0C0400080808000007B +:101B40000000C0E0E0C080000000000000000000D5 +:101B50000000000000000000000000000000000085 +:101B600000000000000000000000808080C0000035 +:101B70000000000000000000000000000000000065 +:101B8000F8D0D00000000000BFDF31FEC30101012A +:101B9000000000000000000080C0E0E0E0E0E0C0E5 +:101BA000010404000000000000000000000000002C +:101BB000800000000000000020301C2E10180800DB +:101BC00000000000000000000D0F1F1F1C1C0C0077 +:101BD000000000000000000080C0D0F800000000FD +:101BE000000404000C1C0C003C1C00000000000061 +:101BF00000000000000000000000000000000000E5 +:101C00000000000000010B0F0F07073EFF0100005E +:101C10000000000080E0E0B0B0E0F0702080000044 +:101C200040E0F0F8FEFFBF9FCEE6E0E0E0C000003D +:101C300000000000008080000000000000000000A4 +:101C40000000000000000000010100000000000092 +:101C5000000000000070F6CECEFCFAF2767CE000C8 +:101C600000000000000000001F0701000001071F26 +:101C7000000000000000000000F0F83878F0C0001C +:101C8000000000000000000001070F1C306000038E +:101C90000000000000000000E0F8FC3C1C78F08030 +:101CA0000000000000000000071F3F787060201057 +:101CB0000000000000000000C0F0F83C1C0C081000 +:101CC00000000000000001000200000C06001800E7 +:101CD000000000000000060E0600000000000000EA +:101CE00000000000000000010108020300000000E5 +:101CF000000000000080804040080080800000005C +:101D000000070E1C18383838381C0E04000000007C +:101D10000080000000000000000000000000000043 +:101D200000000000010101010101000000000000AD +:101D30000070F8FCDC8E820202000000000000004F +:101D400080C0E0F8F8FCFEFEFCFCFEFEBEF3FFBF28 +:101D50000000000000000000000000000000008003 +:101D60000000000000000205030707070300030F3F +:101D70000000000000000000000040C04060E0F0F3 +:101D800000000C063F0F07020E00000000000000DC +:101D9000000080808183E77F1F0A000000000000B0 +:101DA0001F3F7FFFFFFFFFFF7F5F0F0F0700183E02 +:101DB000F0F0F8F8FCFCF8F8F87CBC989C0C0C0CE3 +:101DC000000000000000000001010101000000000F +:101DD000000000000000C0406060F0F0C0404040E3 +:101DE00000000000000000010103E1FB0707030100 +:101DF00000000000004060A0D0E0C000C0800000F3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000070F010000000000009A +:101F30000000000000000000E0E0000000000000E1 +:101F4000030307070000000000000000000000007D +:101F5000C0E0E0F0E0408000008080C000000000B1 +:101F600020206060E0E2EF0F1F1C0103030100006E +:101F70000000181C1E1E0E06048080C0C0E0C0C0F9 +:101F8000021E1E060101000000000000000000000B +:101F90000E0E2E6EF4F4F0C00000020E3F1F0F066E +:101FA0000000000B1F1F3F7F7F7E3A58280400006F +:101FB00000000080E0E0F0B0004000004000008041 +:101FC00023232363230200020203070F0000000003 +:101FD0000080C0C0C0000000000000000000000041 +:101FE0000000000000000000030B0E0600000000CF +:101FF00000000040203010F0E080000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4e-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4e-.bin.hex new file mode 100644 index 00000000..577402e3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4e-.bin.hex @@ -0,0 +1,513 @@ +:10000000000000000000000000010B1B1A0F070F8A +:100010000000000000000000000080800080000060 +:1000200001030707060E0E0C0C0C18181818080808 +:10003000C0C0E030181818181838303070703838D0 +:10004000000404020203171F3F3F1F0F0D1C1E6711 +:10005000000020204040C0ECF0E0C0E090888040EC +:100060000000000030247C707C301800000000008C +:100070000000000000000000000000000000000080 +:10008000000000000000000000000000030100006C +:1000900000000000000000000000000080000000E0 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C00000000000000000000C0C040C1C1C1414A8 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:100100000000000000060707070F0E0701000000AF +:10011000000000000000000000000000C08000009F +:10012000000000000000030207FFFFFDF8F8780C54 +:100130000000000000000060E0C0C080000000007F +:100140000000000000000000000000000080C0E08F +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:100170000000000000000000000000071F3F7FFF9C +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A0000000000000000000000000008080C0C0CF +:1001B000000000000000000000000000000000003F +:1001C000010307070F0F1F3F7E7E7CFEFE7F1F1F70 +:1001D000D080000080800000000000000080E0F07F +:1001E0000000010303070704060202000003020CDB +:1001F00070F8FCBE86B08898000000000080800087 +:10020000000000000000000000000000FFFFFF00F1 +:10021000000000000000000000000000E0E0E0003E +:1002200000000000000000000000040F0F0C0000A0 +:10023000000000000001071F0E0800000000000081 +:100240000000000000000030783D1F1F0300000088 +:1002500000000000000103036FFFFFFEF8D0000064 +:10026000000000080C1C3E1F0F07030000000000E8 +:10027000000000000000000000800000103C7E7EB6 +:10028000000000010107070D0C0C0C0C0F07030305 +:1002900007070E8FCFE7F7BF8F020201000080C073 +:1002A000900000022FFDFBE3060707030301010195 +:1002B0000000000040800000000000008098FEFF69 +:1002C00000000203070F0703010000000000000008 +:1002D000000000000080C0E0E0C000040F1F0F0F0E +:1002E0000000000000001F7FFFF8800000000000F9 +:1002F00000000000070703808000000000000000ED +:100300000000077FFFFCC0000000000000000000AC +:10031000077FFFFCC000000000000000000000009C +:1003200000000000000000000000000000000000CD +:1003300000000303070F1F3F3F3F3F3F1F1F1F0FDB +:1003400000000000000000000000F0F0C00000000D +:100350000000000000000000007F7F3F0000000060 +:1003600000000000000000007FFFFFC00000000050 +:100370000000000000000000F0F0F00000000000AD +:10038000000000181C7E7FF7E1C0C0C0F070383C50 +:100390003E67E0C0E07B7FFEF86040200000000088 +:1003A00001030307071F3F7EFCFEFF7C783C1C0E09 +:1003B000E0E0A00001038707030100C00000000C7B +:1003C000000000000000000000C1E1E0B0000000FB +:1003D000000000000000000000FFFFFF0000000020 +:1003E00000000000000000007FFFFFC000000000D0 +:1003F000000000000000000080808000000000007D +:1004000007070707010000000001010100000000CC +:100410000000000000000080C0C0C0E0E0E0C000BC +:1004200000000000000000000F3F3F69407670F8B8 +:10043000000000000000000000800000000000003C +:100440000000000707070303000000000000000091 +:10045000000000000080C0E0F8FD7F1F0A000000DF +:100460000000000000000000000300000000000089 +:10047000000000000000000008FD3F3F14000000E5 +:10048000000000000000000001000000000000006B +:1004900000000000004040E0E0F0E0C0000000008C +:1004A000000000181C7E7FF7E1C0C0C0F070383C2F +:1004B0007770E0F0F07B7FFEF860402000000000E5 +:1004C00000000000C0E8B0206060703038191F1FC5 +:1004D0000000000000000000000000000080E0F0CC +:1004E000200000387C3E3F3F393000000000000013 +:1004F000030F1F1F3FFEF8F1230707070F0F070326 +:100500001F1F1E1E1F0F0706387C70E0E0F070787A +:10051000808080000080808E1F3F3F1E18100018D2 +:100520000000000000000000000000003C7EFFFE14 +:100530000000000000000000000E0E0E0E0706076F +:1005400000000000A020000030303070E0E4ECCC6F +:10055000000000000000000000000000000000009B +:100560000001030307070E0E0C0C183878FCEC444E +:10057000FFFFFFFFBF1301000102060E1F3F7FFFB9 +:10058000000000000000000000000000000000006B +:100590000000183838707060000001060F03074132 +:1005A0000000402020004042AC9208080C0868B8C7 +:1005B000000000000000000000000000000000003B +:1005C0000000000000000000010302000103010020 +:1005D00000000000000000008C3C1C3C3A3181030C +:1005E0000000000000002040C0E04203A122406063 +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000020103D4 +:10062000000000000000000000000000000000309A +:1006300000000000000000000000000000000000BA +:1006400000000018181C0E061C3870717371381CDD +:10065000000000000000000000000080402020108A +:100660000000000000000200000000030000000085 +:1006700000000000000080000000C0686D213018FC +:1006800000000000000000000000000080D8800092 +:10069000000000000000000000000000000000005A +:1006A0000000183F0F070F1C183830310F0F0F07CD +:1006B0000000F0F0888CDCDCFC7CFCF8F8F0E0C09A +:1006C0001C3E7F7FFFFFFF7F7F3F0F1F3F3F3F1F8E +:1006D00038FCFEFEFEFCF8FEFFFFFFF6F8FCFEFE17 +:1006E000000000000000010A1377FF1F0F03000045 +:1006F000000000000123373F7FFFFFFFFF9EC9205E +:1007000004030183CFFFFFFFFFFFFF8B0102000007 +:100710000000881090F1FBFFFDC6BD7800000000CE +:10072000006040A0C0A00084C8FA3C201000000077 +:1007300000000000000000000000000000000000B9 +:10074000000001032170702000060F060000000069 +:10075000000080C080001038381000000060E040C9 +:100760000000000000000000081C1C080000000041 +:100770000000000000000000000000000000000079 +:100780000000183C180001032371702000060F06BA +:1007900040E06000000C8CC4C080001838100000DD +:1007A0000000000000000000000002070702000037 +:1007B0000000000000000000000000000000000039 +:1007C000FFFFFFEFDFDF9F5FEFF7DF3F1F8CC0E131 +:1007D000C0E0F0F0F0F8F8FCFCFCFCFEDE4E8E8E83 +:1007E000000000010377FE9C3C7C481800000001DB +:1007F0000C3F7FFFEF83030703030101000000C0EC +:10080000F8FCFCFE1E0000000000000000000000DC +:1008100000003078F8F060000000000000000000E8 +:1008200000000000000000000000000100000000C7 +:100830000000000000000000000000C0C0400000F8 +:100840000C0C0C060000000000000000000000007E +:100850001818080830F8F8F06000000000000000E8 +:10086000000000000000000000040701000000007C +:100870000000000000000000000080E06020000098 +:100880000000010101010100000000000000000063 +:10089000000080C0C08000000000000000000000D8 +:1008A0000000000000000000000001010101000044 +:1008B00000000000000000000000000000800000B8 +:1008C0000000000001020000000000000000000025 +:1008D000000000000C0E0E0E1E3E7EFE7C7C7E7E16 +:1008E0000000000000010101010000000000000004 +:1008F0007E3F3F3CF0E0F0D0E0C000000000000090 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000040F03000000B1 +:100930000000000000000000000040F8300000004F +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:1009600000000000000000000060F0F0E0603010C7 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000050F0F07033A +:100990000000000000000000A0B8E8F0B080C080B7 +:1009A00003071F3F3F3F3F3F7F7F7F7F3F3FBFBFEB +:1009B000C0C8E8F0F0F0FBFCF8F0F8E4E2E0D0D0DA +:1009C0000000000000070000000000000000000020 +:1009D0000000000000C00000000000000000000057 +:1009E0000000000000000000000000000F000000F8 +:1009F000000000000000000000000080E030000067 +:100A0000F0F8FCFEFEFF7F3F3F3F7F7FFFFFFF7F51 +:100A100000000000000000008080808080C1C0F0E5 +:100A20007F7F3F3F3F1E1800C0E0F0C0E0E0E040A5 +:100A3000F8E0C0800000000000000000000000009E +:100A4000000101030303010000000080C0E0F0F09A +:100A5000808020E0C0800000000000000000000056 +:100A6000C080000000000000000000000000000046 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000006070E04066 +:100AA000000000000000000000000103030100003E +:100AB0000000000000000000000080C08000000076 +:100AC000000000000000000002020202020606060A +:100AD0000000000000000000000000000000000016 +:100AE0000662F2FAE860301000000000000000002A +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B1000000010181818100000000000000010104D +:100B200000000000000000000000000000000000C5 +:100B300010100010101010101010101010181E1FA0 +:100B400000000000000000000000000000000000A5 +:100B5000000030383838300000000000000000008D +:100B60000000000000000000000000000000000085 +:100B7000000000000000000020202030303C3E3FFC +:100B80000000000000000000000000000000000065 +:100B90000000000101030703070300000000061E18 +:100BA000000000010101030F1F070F1E14140000B5 +:100BB0003EFCF8E080C0C0C080008080870707004E +:100BC00000800080800000000000000000000000A5 +:100BD0000000000000000000000000000000000015 +:100BE000000000000303003070F0F83E3F3F1E1885 +:100BF000000000C1EFFEFC7C78300000C0800000E7 +:100C000000000000000000000002060F1F0F03019B +:100C1000000000000000000000000006FEFCF8F0EC +:100C20000000000000000000060F1F0F030301007A +:100C3000E0C00000000000000002FEFCF8F0E0C090 +:100C4000030707070F1C38707080000000000000C9 +:100C5000FE868480000707070000000000020301F1 +:100C60000000000000000000000000000000000084 +:100C70000100000000010307060F3F7C7E3F1F0FAD +:100C80000000F8F8F800000000000000000000007C +:100C90007B383F3F7F787C7E3E3F3B13193139786C +:100CA00000000001010303060E0C1838303E7F7F60 +:100CB00060C8C0C08000800000000000000080C04C +:100CC000B810FFFFFF000000000080008080C0809F +:100CD0000000E0E0E0000000000000000000000074 +:100CE000C0C0506060604060E0E0C060710F0F0FF6 +:100CF00000000000000000000000000080C0F0F0D4 +:100D000000000001010303020301010000010001D2 +:100D1000387CFEDFC3D8C44C0000000000C0600077 +:100D200001030F0F0F1F0F1F3F1F1F3E1F1F1F0F1E +:100D3000C0C0C08080808202A7C70303030383C7AB +:100D400009030307070307070F0707030307030345 +:100D500040C0C0C080808080A0C080C0C0C080E093 +:100D6000030100003C3E3E030301010100000000BE +:100D7000808000001F1F1F00C080C08080C0C0E0B6 +:100D80000000000000000000000000000000000063 +:100D90001E7F7F7F7F7F3C38181010383830343802 +:100DA00000000000010103030706070F0F1F1F1FAC +:100DB000707060C0C08080800000000080C0F0F8CB +:100DC00000010307070F0F090C04040000070F1CA4 +:100DD000E0F0F87C0C6010300000000000000080A3 +:100DE00019193B3333777773F1F3F97D7D3C3C1E62 +:100DF000C0C0C0C080808000808080C0C0E0E07043 +:100E00006000000F0F0F00000040404060E0607481 +:100E100000000000000000000000000000000000D2 +:100E200038301818180C0C0C0E0E0C0607030303B0 +:100E300000000000000000000000000000E0FCFED8 +:100E4000000001010100000000000000000000009F +:100E5000FCF0E0C0E0F0F8F87C7C7E3E3B7363F190 +:100E60000001010303070E0E1F1C3870787CFFFF82 +:100E7000E1C1D1808000000000010100000080C0BD +:100E800000000000000000000000000000008000E2 +:100E90000000000000000000000000000000000052 +:100EA000008080A0C0C0C0C080C0C0E0E01F1F1F85 +:100EB0000000000000000000000000000000C0E092 +:100EC0000000000000000000000000000000000022 +:100ED00020207070F070707038783C3F1F07010060 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000010100000000000000F0 +:100F000060F0783C1E0F07030100000000000000A5 +:100F100000000000000080C0E0F0783C1E0F0702D7 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F40003D3C24301010000000C0C0E0E0C0800034 +:100F50008040C00000000000000000000000000011 +:100F600060687063E0C0E0E0F078387760C0E0F07F +:100F70000020207070303038383C9C0E0E07020084 +:100F8000000000000000010307070F0F090C040414 +:100F90000000000000E0F0F87C0C60103000000061 +:100FA00000808080000000800030C088000080E267 +:100FB0000000000000000020207070F0F0F8080031 +:100FC0000000000000000000000000000000000021 +:100FD0001F3C3830393E1E1F1F1F1C080C1A3830AA +:100FE000000000000101010303070703070F0F0FB3 +:100FF0007870E0E0F0C080C0C101818080C0F1F96C +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:101020000001010303030303070707070303030783 +:1010300070F0F8CC8686060606868480C0C0C0E0C4 +:1010400004347C78781800000000000000000000E4 +:101050000000000000000000000000000000000090 +:101060000000000000000000003038100000000008 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000001030706060400000000000001010320 +:1010B000E0E0F0381C0C0C0C1C3C7C78F8F8F8F8DC +:1010C000030373F3F8F87000000000000000000054 +:1010D000FCFCFCFDFF3901000000000000000000E6 +:1010E000000000000000000000183C38080000006C +:1010F00000000000000000000000030301000000E9 +:1011000000000000000000000000000000000002DD +:101110000000000000000000000000000040E0802F +:10112000060301000000000C0800000000000000A1 +:10113000E0C000000000000000000000000000000F +:10114000000000000000000000000000040404048F +:10115000000000000000000000000000000000008F +:10116000040000000000000000000000000000007B +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A0000000000000000000000000006040F8F0B7 +:1011B000000000000000000000000000000000002F +:1011C000F0E000000000000000000000000000004F +:1011D000000000000000000000000000000000000F +:1011E0000000000000000000020E0F0400000000DC +:1011F0000000000078E060400000000000000000F7 +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000060C0F07161C0D070707070F1F030109 +:10123000000000000000000080C0F0F8FCFEFEFF8F +:101240000101010103030100000000000000000093 +:10125000FFFFFFFFFFFFFFFF7F3F3E0C080010383E +:10126000000000000000000000000000000000007E +:101270007C707C3C3C080000000000000000000086 +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000E1E3F3930707078787CFFFFFFFFFF23 +:1012B0000000000080C040000000000080C0C0C0EE +:1012C000FFFFFFFF1F000000000000000000000003 +:1012D000808080808000000000000000000000008E +:1012E00000000000000000000000000E06000000EA +:1012F00000000000000000000000000000000000EE +:101300000000000000000000000505072F7D7C3E66 +:1013100000000000000000000000C04080800000CD +:101320001C1E3FFFFFFFFFFEFEFEFCFEFEFEFEFE5C +:1013300000000000000000000000000000000000AD +:101340001E0000000000000000000000000000007F +:10135000000000000000000000000000000000008D +:1013600001010000000D03013C0F01020400000018 +:1013700000088890D0F0FBFCF8F0F86422201010F0 +:101380000000000000000000000000000000000657 +:10139000000000000000000000000000000000004D +:1013A0007F3F3F1F0F03000000000000000000000F +:1013B000BFFFFFFFFFFFFF3F3F3F3F3F1F3F7F7FDD +:1013C000000000000000000000000000000000001D +:1013D0000F0000203F3F1F1F1F3F3F3F3F1F3F3F6A +:1013E00000000000000000000101010000000000FA +:1013F0007FFEFE7E3C1C0880C0C0C0800000000054 +:1014000000000000000003070F0F1D1E0F0F1F1F1D +:1014100000000000000000808080000000800000CC +:101420002E05000103070F1E0C1C0808183C1C1C8D +:10143000C0800000C08080000000000000000000AC +:101440007C7F1F3E3A282C000004040402020303A0 +:1014500000C0F8F80000000000000000000000805C +:1014600001010103030707070F0F0F0E0E1F1F1FB8 +:10147000C080808080808080F8787070F8FCFEFFEB +:10148000000000000000000000000000000000005C +:101490000103070707070F1F17171F0F070F0F1F5E +:1014A000000001030000000103070707070F0F07F3 +:1014B0007FFFFFBF1F0FAFE7F7F7E7EFEFCFDF9C2F +:1014C00007030707070703030303010000000000E9 +:1014D000BC3C3C0C84C0E0E0E0F0F0B0B0B8FC7480 +:1014E00000000000000000000000000000000000FC +:1014F0003838382C341018080000000000000000B4 +:101500000000000020303038280C0C0E0E1E1C1C71 +:1015100000000000000000000000000000000000CB +:101520000C0406060000000000000000000000009F +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000008080C0DB +:10155000000000000000000000000000000000008B +:10156000C0C0F0E0607038381003010101010101D2 +:1015700000000000000000387FFEFCF8F0E0C0C072 +:101580000000000000000001000102040000000053 +:1015900000143F7F7FFFFFFEFCFEF6F078000000A6 +:1015A00002070F1E1C383070F06060ECFFFF87E010 +:1015B00000000000000000000000000080F0F8784B +:1015C000E020A00000000000000000000000010179 +:1015D000000000000000000000000000000000000B +:1015E00003020206010003070F0F1F1F0000000087 +:1015F00000000000E0C0E0E0E0F0F0E000000000EB +:101600000000000000000000000068FCFEFEFEFE7E +:1016100000000000000000000000000000000000CA +:10162000FCF8FCECE070060703010000000000007D +:101630000000000000000080C0E0F0783C1E1E3F6B +:101640000000010FFFF8C0000000000000000000D3 +:101650003607C4C6000000000000000000000000C3 +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000004061F3F3F3F3F3FD6 +:1016B00000000000000000000000000000C0C0802A +:1016C0001F1F1F0F0F15100000000101010303036E +:1016D000A3E7CF830000000000C0C0C0C08080002E +:1016E00001030703030101010707020000000000D6 +:1016F00000008080C0E1C1C0D8F0F87C48603000B4 +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200002020A0F0707071E3C3C3E7FFEF0F0E076 +:1017300000000040C0800000000000000000000029 +:10174000C0808000000000000206060C1C18183043 +:101750000000000000000000000000000000000089 +:10176000302060E0C0C08080000000000000000069 +:101770000000000000000000000000000000000069 +:10178000000000000001030707070F0F1F2F0F17AE +:10179000000000000060F0F0F0F0F0F8F8F8F8F861 +:1017A00023000000040E1E1C1C3C381C0E1F3E7F34 +:1017B000F870303010100000000000000000000041 +:1017C000DFFF1F03000000000010181C1C0E0C0C93 +:1017D00060E0F0F060000000000000000000000089 +:1017E0001C1A18103020203070707070F8FCFE7FCA +:1017F0000000000000000040707070F0F8FC7E3FB8 +:101800000000000000000103030307070F17070B88 +:101810000000000000B0F8F8F8F8F0F0F8F8F0F088 +:1018200011000000030F0F0E1E0E1C3C38381C0E5A +:1018300080001C1F0F0F02000000000000000000CD +:101840007F7F3F3C1E1E1E0C080C0C0E0F07060669 +:1018500000F8FCFC00000000000000000000000098 +:101860000C0E0D0C18181010383838387C7E7F3F5D +:10187000000000000000000000000C1C1F1F1F9F44 +:10188000000000000000000000000000000103074D +:101890000000000000000000000000000060F0F008 +:1018A00007070F0F1F2F0F170330E0C080830F0FA4 +:1018B000F0F0F0E0E0F0F0E00000000000000000D8 +:1018C0000E1C0E070F07E3F17B030100000080E010 +:1018D0000000000080C0E0F6FF3F1E0C000000008A +:1018E000C0C06060D0C0800000000000000080C068 +:1018F0000000000000000020383838387C7EFFFFF0 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000010307BC +:1019200000000000000000000000000000081D3F53 +:1019300007070F0F1F2F0F1703001C3EBEFCF0C040 +:101940003F7BF1E0F0F1E303000000000000000045 +:101950008000000038FFFFE30000000080C07070CE +:101960000000000000000103071F1F3E3F1F0F077C +:101970006060303060C0C080000000000080C0E0C7 +:101980000000000000000000000000000060F0F017 +:101990000000000000000000000000000000000047 +:1019A000F0F0F0E0E0F0F0E00000000000000010D7 +:1019B0000000000000000000000000000000000027 +:1019C000101C3E3F7F3FDFCE6C0400000000000093 +:1019D0000000008080D8F07C3F3E1800000000002E +:1019E000000000000000000000101C383E3F3F3F98 +:1019F000000000000000000000000000000080C0A7 +:101A000000000000000000000000000000000000D6 +:101A1000000000000000000000010303070F070F93 +:101A2000000000000000000102070F0E0C1C7C7C6F +:101A3000170101000030F8F8E0C0000000000000CD +:101A40003C3179F8FCA4B400000000000000000064 +:101A500000E8FF3F07000000004060603030383C85 +:101A600000000000000001030307070F1E1F3F3F97 +:101A70001810103070E0E0E0E0F8BE1C3C3E7FFF44 +:101A80000000000000000000D0F8FCFCFCFCF8F0B6 +:101A90000000000000000000000000000000000046 +:101AA000F8D8C0E0000000000000000000000000C6 +:101AB0000000000000000000000000000000000026 +:101AC000000000C0C0000000000000000000000096 +:101AD0000000000000000000000000000000000006 +:101AE0000000000000000000000000000000008076 +:101AF00000000000000000000000000000000000E6 +:101B00000000000001071F7EF8E0800000000000D8 +:101B100000000060F0E08000000000000000000015 +:101B200003070F1D1C3D3C24301010000040E0E076 +:101B300080C0E0F0308040C00000000000000000E5 +:101B4000E08000C0C0C0E060F0DAC080E0F0F8796A +:101B500000000000000020207070303018181C8C2D +:101B60000000000000000000000000000000000075 +:101B70000E0E070200000000000000000000000040 +:101B800000000000000000000103070E0E1E1E12E0 +:101B90000000000000000000C0E0F0F818C0206065 +:101BA00018080800183C7EFCFFEFDF9F8FC7E0C0DD +:101BB000000000000000000000E0FDFFFFBE00008C +:101BC000E0F0C80080C0FCE0800090F8FCFE070157 +:101BD000000000000000000000000000008090C035 +:101BE000010001010303030707060F0F0F0F1F1F5B +:101BF000B080C0C0800080800000000000C0F0F015 +:101C000000000000000000000000000000000000D4 +:101C10000000000000000000000000C0C0E0F07004 +:101C2000000000000000800D8FCFC7C78381000037 +:101C3000707038387070F0E0C08000000080C1C162 +:101C40000000408090E2F6FEFCFFFFF3430000003E +:101C500061030302040408081010A9C6C28282C4EA +:101C60000000000000000000000000000000000074 +:101C7000701C0603010000000000000000000000CE +:101C8000000000000707070E0E0E1C1C1C38383819 +:101C90000000000000000000000000000000000044 +:101CA000707070E0E0E0C0C0C08080000000000004 +:101CB0000000000000000000000000000000000024 +:101CC000A0FA8C060303030301010181C19080C0C7 +:101CD00000000000000080000080C0C080DC7E7F2B +:101CE000606070603030381D1D1F0707030300005F +:101CF0007E380000000000C0F8F0E0C08000000066 +:101D0000183D7D7830030F7FFFF6600604193F3FD2 +:101D1000D8FCFEDF1E1ECCE0E0C00000C6E7E2C03B +:101D20003F1F0703307C7E7E2C0000011B3F3F3F9E +:101D30008080983C3C7E7F3F1F0EC0E0F0F0F0E0DA +:101D40001F0F1F1E0C000000060F0F67FFFF6F061E +:101D5000C000003C7E7F3F7F3E0C00D8FCFC7E3FF5 +:101D600060F1F1600000030F1D1F0D010001000074 +:101D7000FFFEECC00000C0E0E0C00080C00000003A +:101D8000387D7D7D3C1F3F7FFFFFFF7F1F0F3F7F23 +:101D9000DCFEFFFFFFFEFEFCF0FCFEFFFFFFFFFE90 +:101DA0007F7F3F1F7FFFFFFFFF7F1F0F3F3F3F3FB3 +:101DB000F8F0FCFEFEFFFFFFFFFFFEFCF0F8F8F876 +:101DC0003F7F7F7F3F1F0301070F6FFFFFFF7F7F75 +:101DD000F0E0F8FCFEFFFFFFFFFFFEFCFEFEFFFF52 +:101DE0003F7F7F7F7F070F1F1F1F1F0F0703070FF7 +:101DF000FFFFFEFEFCE0F0F8F8F8F0E0000080C025 +:101E000000000000000000000000000000000307C8 +:101E1000000000000000000000000000010204A11A +:101E2000CD3800030401000402000000000000009F +:101E30002244C022613060A02130180C0C060E0232 +:101E4000000000000000000000010101020000018C +:101E50000000080C1C3870E0C0828100000040E4E3 +:101E60000000000000000000000000000000000072 +:101E7000703018080C04040404040408081020003E +:101E8000000001010101000000000000000000004E +:101E900000E0F0F0F0E06000000000000000000052 +:101EA00000000000000000040406060F0F0F0F0FD3 +:101EB000E06070381C0C0C0C0C1C7CF8F8F8F8F87E +:101EC0000F0F0F0F000000000000000000000000D6 +:101ED000FCFCFCFDFF3901000000000000000000D8 +:101EE000000000000000000000183C38080000005E +:101EF00000000000000000000000030301000000DB +:101F000000000000000000000000000000000000D1 +:101F10000070F8F8F8F03000000000000000000049 +:101F20000000000000000002060707070303030784 +:101F30007030381C0E0E0E0E0E1EFCFCFCFCFCFC61 +:101F400007377F7B781800000000000000000000C9 +:101F5000FEFEFEFE7C00000000000000000000000D +:101F600000000000000000000030381800000000F1 +:101F70000000000000000000000000070301000056 +:101F800000070F0F0F0F030000000000000000000B +:101F900000008080800000000000000000000000C1 +:101FA00007030301004040606071FFFFFFFF7F7F78 +:101FB000000000C0C0C0C0C0C0C080808080C0C061 +:101FC0007F7F7F7F00000000000000000000000015 +:101FD000C0C0C0C000000000000000000000000001 +:101FE000000000000000000000203C0F0301000082 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4f-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4f-.bin.hex new file mode 100644 index 00000000..1cc6cd57 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4f-.bin.hex @@ -0,0 +1,513 @@ +:100000000000000000000D1F3F3E746465301810B2 +:100010000000000000000080808000000000000060 +:1000200000030707060E0E0C0D0D191B1B190909FD +:100030000000E03078F8F8F8F8F8F0F0F0F0F8F8B0 +:1000400000041C3E7EFFFFEFC7C36737391002076D +:10005000000020204040C0ECF0E0C0E090888040EC +:100060000000000000000080800000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000101030303010303060652 +:10009000206060C0C0C080808000008080000000C0 +:1000A0000000202111121ABE7F3F1F3E3F4C8402E8 +:1000B0000000000000000000608000000000000060 +:1000C000000000000404040C0C0C00000000000000 +:1000D0000000000000000000000000000000000020 +:1000E000202111121ABE7F7F7F3E3F4C8404020202 +:1000F0000000000000006080000000804000000060 +:1001000000000000000607070703010000000000D0 +:1001100000000000000000000080C080000000001F +:10012000000000000000000000F0F0F8F8F8F8EC23 +:1001300000000000000000000000000000000000BF +:100140000000000000000000000000000080C0E08F +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:100170000000000000000000000000071F1F0F0F1C +:100180000000101008090DDF3F1F0F1F1F2642023D +:100190000000008080000000B0C08000804020008F +:1001A0000000000000000000000000008080C0C0CF +:1001B000000000000000000000000000000000003F +:1001C000000206040C0C1C3879791301010F1F1F63 +:1001D0002878F8F87878F8F0F0F0E0E0E080E0F0E7 +:1001E00000000103030707040602020000000103E8 +:1001F00070F8FCBE86B0889000000000000070F02F +:1002000000000000000000000000000000FFFF00F0 +:1002100000000000000000000000000000E0E0001E +:1002200000000000000000000000040C00010000BD +:10023000000000000001071C0000000020E0E0E0DA +:10024000000000000000000060311B1F1F0F0701AD +:1002500000000000000103036FFFFFFFFFFEF8F046 +:10026000001038787C6C06030301000000000000D9 +:10027000000000000000000000800000101C4E6F15 +:10028000000000010107070F0F0F0F0F0F070303F7 +:1002900000000180C0E0F4FEFFFFFFFFFF3F8FC3BF +:1002A0006FFFFFFDD0000010F1F0E0E0E0C0C18181 +:1002B000F0F0F0F8B878F8F8F8F8F8F87878FEFF89 +:1002C000040E1E1F1B0100000000000000000000C3 +:1002D000000000000080C0602000000407030B0F36 +:1002E0000000000000001F7FFFFFFCC000000000B6 +:1002F00000000000070700808000000000000000F0 +:100300000000077FF0000000000000000000000077 +:10031000077FF00000000000000000000000000067 +:1003200000000000000000000000000000000000CD +:1003300000000202060C1C3C38383838181818081F +:1003400000000000000000000000F0F0F8F0C080A5 +:100350000000000000000000007F7F00000000009F +:1003600000000000000000007FFF8000000000008F +:100370000000000000000000F0F00000000000009D +:10038000000000181C7E7FFFFFFFFFFFFF73383C5B +:1003900001181F3F1F0440E1FFFFFEFEFEFCFC387A +:1003A0000000000000103071E3E1E0434703030167 +:1003B00000005AFFFFFF7FFFFFFFFF3EFEFCF8F348 +:1003C000000000000000000000C1E1E0F0C00000FB +:1003D000000000000000000000FFFF00000000001F +:1003E00000000000000000007FFF8000000000000F +:1003F00000000000000000008080000000000000FD +:1004000003030101010303000000000000000000DD +:10041000000000008080C0C0C0C0406020200000FC +:1004200000000000000000000F3F3F69407670F8B8 +:10043000000000000000000000800000000000003C +:100440000000000303010505030301000000000094 +:10045000000000000080C0E0F8FDFFFF7F7F3E0C41 +:10046000000000000000000000000100000000008B +:10047000000000000000000008FDFFFF7F7F3E0C31 +:10048000000000000000000001000000000000006B +:1004900000000000004040E0E0FCECC8000000006C +:1004A000000000181C7E7FFFFFFFFFFFFF73383C3A +:1004B000080F1F0F0F0440E0FFFFFEFEFEFCFC389C +:1004C000FFFFFFFF3F170F1F1F1F0F0F07071F1F04 +:1004D0000000008080808080808080808080E0F0CC +:1004E000200000381C1E1F0F0F0703000000000033 +:1004F000030F1F1F3FFFFFFEF8F0C00000000000C9 +:100500001F1F1E1E1F0F070707030F1F1F0F0F07B9 +:1005100080808000008080EEFFFFFFFFFFFEFCE098 +:100520000000000000000000000000003C7EFFFE14 +:10053000000000000000000000060606020302039F +:10054000000000002020000030383878F8FCFCFC67 +:10055000000000000000000000000000000000009B +:100560000000000000000101030204000000000080 +:1005700007070F1F7FF3C1000103070F1F3F7FFF16 +:10058000000000000000000000000000000000006B +:1005900010386242C387878F1F3F0E00000000366D +:1005A00000124824228A8E85030D0717331416057E +:1005B0000010004000000010004060400010C080AB +:1005C000000000000000000000000000000000002B +:1005D000000000000000081C3101614341440E1C72 +:1005E0000040001001000000010080C040C0808079 +:1005F0004100000008400200C0E4367460E2D830D8 +:1006000000000000000000000000000001010000E8 +:10061000000000000000000000000080C7F1E000C2 +:1006200000000000000000000000000010B0B880D2 +:10063000000000000000000000000000C0687CB85E +:1006400000614118181C0E061C3870707070381C40 +:10065000008080000000000000000000402020100A +:1006600000000C0803030317090303030000000044 +:1006700000003030000080C0C080C06060203018B2 +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000070F0701337F7E7F7F7F7F3F3F1F0F074D +:1006B000C0E0F0F8F87C3C3C1C9C9C88C8C0C0C0E2 +:1006C000183C7D79FFEFEE446005071B3E3B370782 +:1006D00038F8BCDCD8400008CCE6E4E040009CBE22 +:1006E000000000000000010A1377FF1F0F03000045 +:1006F00000011128717B373F7FFFFFFFFF9FCB2356 +:10070000A473A9C3CFFFFFFFFFFFFF9F0F538F0607 +:10071000C6ADDC9AF0F9FFFFFFFFFFFF7C8F5608A4 +:100720003B7E7DF6E0A78ECEFFFFFF7F3D785D2606 +:1007300000800000802040E4F8B08040800000008D +:10074000060F1E3C1800091F3F79702103070F0692 +:1007500040E0600060FCECC4C48C0C98F890000091 +:100760000000000000000000000022777722000057 +:100770000000000000000000000000000000000079 +:1007800001000103277F766040060F1E3C18000120 +:10079000800090F8980010383870F0600060E0C079 +:1007A0000000000000000000081C1C08081C1C08B9 +:1007B0000000000000000000000000000000000039 +:1007C000EDF9FFEFDFDF9E5FEFF7DFFFFFFFFFFFDA +:1007D000C0E0F09000000000008080C0E0F0B09029 +:1007E0000000000000000102000000000000000105 +:1007F00000000000107EEF0703030101000000C0AD +:10080000F9FDFCFE3E7E7E7C3C3C7C7C78FCBC7E24 +:10081000E0E0C00000000000000000000000000058 +:10082000FEF3F1F1E2C2C2C3C3C3C380010181C3BD +:1008300080000000000000000000800000B0F8FC14 +:100840000C0C0C0601010301000000000000000177 +:10085000F8F87838000000001878783C3C7C3CAC14 +:10086000010303030706060C0C0407070E1E0C0009 +:100870001C3C3C7878383878F87878000000000024 +:100880000000000000000000000000000001010165 +:100890000000000000000000000000000000000058 +:1008A000010101010101010101010000000001013C +:1008B0008080808080808080808000000040E0F028 +:1008C0000000000000000000010303010303010118 +:1008D000000000003C7EFEFEFEFEFE168C9CBEBEAE +:1008E0000100000000000000000000000000000007 +:1008F0009EDFCFC60E1F0F0F0F070713190D0C0633 +:1009000000000000000000040404060707070307B6 +:100910000000000000000000000000000080808057 +:1009200033331919191B1918181C1C0E0F0F1F1C13 +:100930008080C0C0C0E0E0F0F0E0000000000000F7 +:100940000000000000000000000000000000001097 +:100950000000000000000000000000000000000097 +:1009600010301030303070303000000000000000D7 +:100970000000000000000000000000000000000077 +:10098000000000000001030301030302080C061F1E +:1009900000000020F0F8FCFC58401000000000802F +:1009A0007FFFE7CF9F9F9F0F070F1F1F0F0F0707A7 +:1009B000C0C8E8F0F0F0FBFCF8F0F8E4E2E0D0D0DA +:1009C0000000000000070307070301000203030300 +:1009D0000000000000C0E0E0F0F0F8F8783CBC9EB9 +:1009E00001010303030707070E0E1C0F0C1E3E3CFC +:1009F000CE9EBCBCBC18387870303030000000008F +:100A00000038FC7E0E1F1FDFCFDF9F8D1B070E07F8 +:100A100000000000000000008080808080C0C0F0E6 +:100A20000F0F07038081C1C100000000000000001B +:100A3000F8FEFFE7FBFCFEFFFFBF0F010000000018 +:100A4000000000040CDCFCF040000080C0E0F1FF7E +:100A50000000000000000000000000000000808096 +:100A6000FFE7F9FCFFFFFF6F4300000000000000FC +:100A70008080800000808080808000000000000076 +:100A8000000000F0FCFEF7EF0F070381C0E0F0F874 +:100A90000000000000000080C0E0E0C38F0E1E3C9C +:100AA000B87C3C3E1E0F0F07070300000000010149 +:100AB00078300000000080C0C080002E7CF8F0C0BC +:100AC0000000000002061E1E3C38183830707030DE +:100AD0000000000000000000000000000000000016 +:100AE00030000000000000000000000000000000D6 +:100AF000000000000000000000000080C0404040F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000101010181E1F30 +:100B400000000000000000000000000000000000A5 +:100B500000000000000000000000002020203030D5 +:100B60000000000000000000000000000000000085 +:100B7000303020303030303020202030303C3E3F8C +:100B80000000000000000000000000000000000164 +:100B90000000060D0103070307020000003C7EFE73 +:100BA0000303030707070F0F1F00000000000000EA +:100BB000FEFCF9E180C0C0C180000000070707000B +:100BC00000000000000000000000C0E0F0787C3E63 +:100BD0000000000000000000000000000000000015 +:100BE0009FC7C3C1E3E3E07070F0F83E3F3F1E18BB +:100BF000000080C1EFFEFC7C78300000C080000067 +:100C000000000080E0F0F8783C1E1E0F1F0F0381EB +:100C1000000000000000000000000006FEFCF8F0EC +:100C2000C0E0E0F0F8783C3C0E0F1F0F030301001A +:100C3000E0C00000000000000002FEFCF8F0E0C090 +:100C4000000000060E1C38707080000000000000DC +:100C50000E06040000070707000000000000000067 +:100C60000000000000000000000000000000000084 +:100C70000000000000000004070F3F7C7E3F1F0FB4 +:100C8000000000F8F8000000000000000000000074 +:100C90000407003F7F47436139383C1C1E3E3E7FBE +:100CA00000000001010303070F0F1F3F3F3E7F7F3E +:100CB0007FFFFEFEFEFCFCF8F8F0F0E0C00080C014 +:100CC00038D000FFFFE0E0E0F0F078F8787C3C7C82 +:100CD000000000E0E0000000000000000000000054 +:100CE0003C3C2C1E1E1E3E1F1F1F3F1F0F0F0F0FD1 +:100CF00000000000000000000000000080C0F0F0D4 +:100D00000000000101030302030101000000030FC2 +:100D1000387CFEDFC3D8C44800000000000098F80B +:100D20001F1F1F3F3F7F7E7CF8F8F8FD7C7C7C789E +:100D3000FCFCFEFE7E7E7EFE5F3FFFFFFFFF7F3FEF +:100D4000070F0F0F1F1F1F1F1F1E1E1F1F0F0F0F2D +:100D5000F8F8FCFCFCFCFC7C5C3878383838708097 +:100D600007070200003E3E000000000000000000F7 +:100D7000F0F03018001F1F1838783C7C7C3C3C1C7D +:100D80000000000000000000000000000000000063 +:100D9000010000001F1F0307070F0F07070F0B07B6 +:100DA0000000000000000000000100000F1F1F1FD6 +:100DB0000F0F1E3E3C7C7878F8F0F0F080C0F0F821 +:100DC00000010307070F0F090C04040000000003D3 +:100DD000E0F0F87C0C601020000000000000E0E073 +:100DE0000707070F0F4F4F4FCFCFC7436323230191 +:100DF000F0F0F8F8F8F0F0F0E0E0F0F0F0F0F0F0FB +:100E0000E08000000F0F80F0F8F8FCFCFEFE7F7F12 +:100E100000000000000000000000000000000000D2 +:100E20003F3F1F1F1F0F0F0F0F0F0F070703030376 +:100E300080808080C0C0C0C0E0E0E0F0F0E0FCFE58 +:100E400000000000000000000000000000000000A2 +:100E5000030F1F3F1F0F87C7737379393C7C7CFEDC +:100E60000001010303070F0F1F1F3F7F7F7CFFFF60 +:100E7000FCFCF8F8F8F0F0E0E0C0C080000080C0B2 +:100E80000000018181C0C0C0E0E0F0F0F0F878F827 +:100E90000000808000000000000000000000000052 +:100EA000F878785C3C3C3C3E7E3E3E1E1C1F1F1F7B +:100EB0000000000000000000000000000000C0E092 +:100EC000000001010101010100010100000000001A +:100ED000E0E0F0F0F0F0F0F0F8F8FCFF7F7F3F0F7B +:100EE0000000000000000000000000000000000002 +:100EF00003000000000000000000000000000000EF +:100F000000C06030180C0603010000000000000063 +:100F1000000000000000000080C06030180C0602D5 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F40003D3C2430101000307CFFFFFFFFFFFFFF0F +:100F50008040800000000000008080C0C0E0E0E031 +:100F60009F170F1C1F3F1F1F0F0707081F3F1F0F53 +:100F7000E0E0E0F0F0F0F0F8F8FC7CBEBE9FDECCE4 +:100F8000000000000000010307070F0F090C047C9C +:100F90000000000000E0F0F87C0C60102000000071 +:100FA000FCFCFFFFFFFFFF7FFFCF3F77FFFE7E1DB3 +:100FB000000060F0F0F0E0E0E0F0F0F0F0F878FC35 +:100FC0000000000000000000000000000000000021 +:100FD0000003070F060101101C1E1F0F0F1F3F3FCC +:100FE000000000000101010303070703070F0F0FB3 +:100FF0007F7FFEFEFCFCFCF8F8F8F8F080C0F1F909 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:101020000001010303030303070707070303030783 +:1010300000C0F8DCBEBE3E7E3EBE9C9CCCCCCEE763 +:1010400004040C1800000000000000000000000074 +:101050000000000000000000000000000000000090 +:1010600000000004040C0C1C0C0C0460F8FC7C3C1C +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A000000103070606040101030507070F0F1FD0 +:1010B0000080F0381C7CFCFCFCFCFCF8F8F8F8F82C +:1010C0001F1F0F03000001000002030303010303BD +:1010D000FCFCFCFCFCF8F8F8FC7E3F9FCFE7E5E366 +:1010E00007070F0F1F3F3F7F1F07030070FC3E0FD6 +:1010F000E7E7E3C3C387878301010000020707070F +:101100000000000000000000000002070F0F0F0D9C +:101110000000000000000000000080C0C08000400F +:10112000191C0E04000000000000040C040C1C1C20 +:1011300000000000000000000000000000000000AF +:101140001C0C08181C0C0C0C0C041C1C00000000CF +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C0000000000000E0F0F8FC3C9ECFE7F7F7736A +:1011D000000000000000000000000000008080C04F +:1011E0007B39393C1C1E0E0F040000030707060064 +:1011F000C0F0E0C3871E1C382010F0E0C080000063 +:1012000000000000000000000000000000000030AE +:1012100000000000000000000000000000000000CE +:101220003C78F2F07868E070782800000F1F030720 +:101230000000000000000000001C7FFFFFFEFEFF1A +:101240000F0F1E1E0C0C1C0C040E0F0707010000D4 +:10125000FFFFED5B1F3F1F0707030181C0E0E04078 +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A0000000180F0103071319091C0F0F37191F2E +:1012B0000000000080C0C0C7FFFF580080C0C0C051 +:1012C0003F1F1F0F0F070F0F070F0703010100003C +:1012D0008080808080008080C0C0E0E0F0F0F0B0CE +:1012E000000000010101030303070301181F3F3F32 +:1012F00070F0E0E0E0E0C0C0C0C080800080C0E0EE +:101300000000000001070F1F1F0A1A18104060F0AC +:10131000000000000080C0E0E0C00080000000008D +:10132000FCFEFF3F7F7FDF3E7EFEFC7E7E3E3E1E5C +:1013300000000000000000000000000000000000AD +:101340003E3C7E7E3E3E1F4F6F2F2725133737676B +:10135000000000000000000000808080808000000D +:101360006F6FCFCFC78F87CF00010102040000004D +:1013700000088890D0F0FBFCF8F0F86422201010F0 +:101380000000000000000000000000000CFCFE7ED9 +:10139000000000000000000000000000000000004D +:1013A0007F3F3F1F0F03000000000000000000000F +:1013B000B8FCFCFCF8F0E0000000000000000000B9 +:1013C000000000000000000000000000000000001D +:1013D000F0FFFF1F00000000000000000000000000 +:1013E00000000001030100000101030307070701DA +:1013F00000000080C0E0F0F9F0D0C08080C0F0F8BC +:1014000000000000000003070F0F1D1E6E4C1C1E85 +:10141000000000000000008080800000000000004C +:101420002E04030F1F1F3F3E7C7C7878797C7C7CE8 +:101430000060F0F0F8F8F878F8F878B8F0F0F8789C +:101440007C770300000001000000000000000000A5 +:1014500038F8F8F870F0F8F8F87C7CFC7C3E3E1622 +:1014600000000000000000000C0F0700000000005A +:101470000E1C3C1C1C3C1C1878787070F8FCFEFF9D +:10148000000000000000000000000000000000005C +:101490000000000000000000010000000008081C1F +:1014A0000000010300000000000000000000000038 +:1014B0007CFEFFBF1F0F0F070707070F0F0F1F1C33 +:1014C000000000000000000000000000000000001C +:1014D0003C3C3C0C04000000000000000000000048 +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:10152000000000F8FFFFFFFFFFFFFFFFFFFFE701E5 +:101530000000000080E0F0F8FCFCFCFCFCFCFCFC83 +:1015400080C0C0E0F0F0F8F8FCFCFEFEFE7F7F3FBC +:101550007C3C3C1C1C0C0C0C00000000000080803B +:101560003F3F0F1F1F0F060400030101010101018E +:10157000C0F0F0E0C08000387FFEFCF8F0E0C0C0B2 +:101580000000010302000001000102040000030F3B +:1015900000143FFF7FFFE3C88CC08000002070F084 +:1015A0001F3F7F7EFCF9F1F0F1E3E1ECFF7F0700E4 +:1015B000F8F8F8F8F8F8F0B070F0E0F0F0F0F8F8BB +:1015C0000101030100000000000000000000000015 +:1015D000F0F0F0F8F8F878783C1C1C3C3838787853 +:1015E00000000000070700010103030300000000E2 +:1015F000707070E0E0C0E0E0E0F0F0E000000000BB +:101600000000000000000000000068FCFEFEDE8616 +:1016100000000000000000000000000000000000CA +:10162000901800000000FEFF7FFFFFFDFC5E37FF0B +:101630000000000000000080C0E0F0F8FC7E7C3874 +:10164000FFFF7F3FFFFFCF1F1F0F0F0200000000B3 +:101650003080C0C0B0D8EEF7FBFDFE5E0B070F0771 +:10166000000000000000000000000000000000007A +:10167000070301000000000000000000000000005F +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000004061F3F3E3D3B38E4 +:1016B000000000000000000000000000000000002A +:1016C0005CD8DA8E0C14100001030707070F0F0F08 +:1016D00003070F1FFFFFFF7FFFFFFFF7EE8481036C +:1016E0000F0F0F0F07070707070702000000000092 +:1016F00001008080C0E1C180800000000000000087 +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:10172000000000000000001030383E7FFEFCFCF896 +:1017300000000000000000000000000000000000A9 +:10174000F0E0E0C0800000B0FEFFFF7FFCFFFFBFC5 +:1017500000000003070F3E7FFEFCF8F020C0FFFFF3 +:101760003F3F7FFFDDC880800000000000000000D8 +:10177000FFFFF3A1000000000000000000000000D7 +:1017800000000000000103071F372F0E1C2C0E1451 +:10179000000000000060F0F0F0F010780808181861 +:1017A00020010F1F3F3F3F7F7FFFFFFFFF7F7970CB +:1017B000F8F0F0F0F0F0E0E0E0E0C0C0E0E0F0F0E1 +:1017C000D8FC1E03070F07070301010000000203F6 +:1017D0009010000080E0E0F0F0F0F8F8F8583C7C61 +:1017E0000305070F0F1F1E0C6C787070F8FCFE7F4E +:1017F0007C3C3C3818181848707070F0F8FC7E3F3C +:1018000000000000000001030F1B17070E16070A57 +:101810000000000000B0F8F8F8F880300000000088 +:1018200010000F0F1F1F1F3F3F7F7D7DF8F8FC7ECC +:1018300000C0FCFFFFFFFFFFF1F0F0F0B87878F890 +:101840007F7F070000000000000000000000010191 +:10185000F8F8FCFCF0F8787CFC7C7C3E3E3E9FB7C0 +:101860000301020307070F0E063438387C7E7F3FE2 +:10187000BF9F9E8E8E9E1E0C0C0C0C1C1F1F1F9F4C +:10188000000000000000000000000000000103074D +:101890000000000000000000000000000060F0F008 +:1018A0001F372F0E1C2C0E140031E3C78F9F1F1FF4 +:1018B000F0F0000060000000008080C0C0C0C0C028 +:1018C0003F3F3F3F3F1FFFFF7F7FFF7F2F0701000D +:1018D0008080800080C0E0C080C0E0F0FCFC7E3EE4 +:1018E0003C3C1C18283878F0E0C08000000080C024 +:1018F0000E1E1E0E1E1C1C3C383838387C7EFFFF26 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000010307BC +:10192000000000000000000000000103070F1F0F6F +:101930001F372F0E1C2C0E14047FFFFFFFFFF7C76D +:101940000703010000010303000000000000000085 +:101950008C030D1F3FFFFFFF3F3F3F3F0702000883 +:101960000000000000000002061F1F3E3F1F0F077F +:101970001E1E0E0E1C3C3C78F8E000000080C0E00B +:101980000000000000000000000000000060F0F017 +:101990000000000000000000000000000000000047 +:1019A000F0F00000600000000080C0C0E0E0E0F067 +:1019B0000000000000000000000000000000000027 +:1019C000E0FCFEFFFFFFFEFEFCFCFCFEFF5F0F05E0 +:1019D0000000008000000000000000000000808087 +:1019E0000307070F0F07070E0E1C1C383E3F3F3F33 +:1019F000808000000000000000000000000080C0A7 +:101A000000000000000000000000000000000000D6 +:101A10000000000000000000000D1B03070F070E70 +:101A2000000000000003070F1F1F3F3E3C7C7C7C32 +:101A30001400003BFFFBFBFDE5CC0800081C381838 +:101A40003C01010000000000000000000000000058 +:101A500006EFFF3F0F1F0F0F0F07070303010101E1 +:101A6000000000000000000003070100000000006B +:101A7000000303030303070706BEBE1C3C3E7F7F33 +:101A80000000000000000000D0F8FCFCBC0C20307E +:101A90000000000000000000000000000000000046 +:101AA000000000000080C0C0808000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC000000000C0C080808080C0C0C0C0C0C0C056 +:101AD0000000000000000000000000000000000006 +:101AE000C080808000000000000000000000008036 +:101AF00000000000000000000000000000000000E6 +:101B00000000000001071C70C00000000000000081 +:101B100000000060C00000000000000000000000A5 +:101B200003070F1D1C3D3C2430101000007CFFFFFC +:101B300080C0E0F030804080000000000000808025 +:101B4000FFFFFF3F3F3F1F1F0F253F7F1F0F070670 +:101B5000C0C0E0E0E0E0E0E0F0F0F0F0F8F8FC7C9D +:101B60000000000000000000000000000000000075 +:101B70003E3E1F1E0C0000000000000000000000A0 +:101B800000000000000000000103070E0E1E1E12E0 +:101B90000000000000000000C0E0F0F818C0204085 +:101BA00018080800000000030F1F3F7F7F3F1F3F02 +:101BB00000000000000000C0C0E0FDFFFFFFFFF3D9 +:101BC0001F0F37FE7F3F021C7FFF6F070301F0F0FE +:101BD000800000000000000080E0F8F8FC7E6E3E0F +:101BE000F0E0E0E0C0C0C080800100000F0F1F1FC8 +:101BF0004C7C3C3878F87870F0F0F8F800C0F0F0E1 +:101C000000000000000000000000000000000000D4 +:101C10000000000000000000000020E0F0F8F8786C +:101C2000000000000000800D9FDFFFBF7F7EFFFFF0 +:101C3000787C3C3C7C7CF8F8F0E0E0C0800001015E +:101C4000FFFFBF7F6F1D0981C3E0F8F04000000077 +:101C500081FBFBFDFBFBF7F7EFEF56383D7D7D3B4E +:101C60000000000000000000000000000000000074 +:101C70000F03010000000000000000000000000051 +:101C8000000000000404040C0C0818181030302068 +:101C90000000000000000000000000000000000044 +:101CA000606040C0C0808080000070FEFFFFFFFFCA +:101CB0000000000000000000000000000080C0C024 +:101CC0005F050301000080C0E0F0F07838687C3CDC +:101CD000E0E0E0E0F0F070F0F8783C3C703C7E7FB3 +:101CE0001C1E0E1F0F0F0703030707070303000047 +:101CF0007E380000808000C0F8F0E0C08000000066 +:101D00001039796000030D5CE9C0000000193D3E08 +:101D100098D0881C1C0880C08000000086C4800009 +:101D200017070500306C6C4800000001133B393385 +:101D30000080103838506206000080C0C080C0802B +:101D40001F0F1A1000000000060F0F46ECCE0C000B +:101D5000000000387C78327A200000D87C183C3EA5 +:101D600040E1C1000000030F1D180000000000004A +:101D7000ECC0C080000080C08000000000000000B7 +:101D80003079796130070F5FFFFE6C0001013D7E05 +:101D900098D0E8ECCC98C0E0E0C000CCE6F4F0E0ED +:101DA0007F6F071D79FEFFFE6C0001073F3D391E66 +:101DB00080C0D0B8F8F872060600E0F0F0F06000DD +:101DC0001F7F7D3D19000000070F6FF7F66F3F1F63 +:101DD0000000B0F8FCFC78FCF86080ECFE3C7E7EF5 +:101DE0003E787D3902070F1F1D1E1E0C00000202E7 +:101DF0006CC0E0E0C000C0E0E0C0000000000000F7 +:101E000000000000000000000000000000000307C8 +:101E1000000000000000000000000000000018D1D9 +:101E2000CD3903170D03170F020001000000000059 +:101E3000C2C4A0C291FCB3252330988C0C66260244 +:101E4000000000010206000C0801090900084CA06E +:101E50006040888C1C3870E0C0828100000040E443 +:101E600066B2781C563A1A0000000000000000001C +:101E7000703098C80C0404140414042848902000FE +:101E80000000000000000000000001010303020741 +:101E90000000000000002060E0C0C0C08000000022 +:101EA000070303010101010000000001010103011A +:101EB0000080F0F8FCFCFCEC4C1C7CFCFEFEFFFF00 +:101EC00001010000000000000002030303010303FE +:101ED000FFFFFFFEFC78F8F87C7E3F9FCFE7E3E54D +:101EE00007070F0F1F3F3F7F1F07000070FC3E0FCB +:101EF000E7E3E3C3C1818183030300000000000026 +:101F000000000000000000000000010101010303C7 +:101F1000000000000000107070E0E0E0C0C08080B1 +:101F2000030101010100040C080818191C3C3C398C +:101F300080C0F8FCFEFEFEFE7E1E7CFCFCFCFCFC71 +:101F4000390801010000000000000000000101014B +:101F5000FEFEFEFE7C78F8FCFCFEFF7FFFFFFFFF2D +:101F6000010303030307070F0F0F06020000000021 +:101F7000FFCFC7C7870F0F0F0F0F0F000406070F04 +:101F80000000000000000107070E0E0E1C1C1818B0 +:101F90000000000000000000000000000000000041 +:101FA000381C1F1F1F0F0F0707030F1F3F1F1F1F87 +:101FB000000000C0C0C0C0C0C0C080808080C0C061 +:101FC0000F0F07070F070707070303030101000DA2 +:101FD000C0C0C0C080808080C0C0C0E0E0E0E060E1 +:101FE0000919191B3333336767233B3870F06000DE +:101FF000E0E0E0C0C0C0C0C0C0C0C0000000000041 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4h-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4h-.bin.hex new file mode 100644 index 00000000..d3010c60 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4h-.bin.hex @@ -0,0 +1,513 @@ +:100000000107070F0F0F1F1F1F1F1F3F3D58387895 +:10001000E0F0F0F0F0F0F0C0E0F0F8F8D0C0000050 +:1000200000000000000000000307070F1F1F0F075C +:100030000000000000000000E0E0C0C0E0E0FCFCC8 +:100040000000000000000000070E0E1C1E3F7F7F16 +:100050000000000000000000000000000000E0E0E0 +:100060000000000000000000E0E0E070707C7F7F96 +:100070000000000000000000000000000000808080 +:100080000000000000000000000000000000000070 +:100090000000000000000000004000000000000020 +:1000A000000000000000011F1F060000000000000B +:1000B00000000000000080C0E038000000000000E8 +:1000C0000000000000000000000000000000000030 +:1000D00000000000000000000040000000000000E0 +:1000E00000000000000000003838387C7CFFFFFF73 +:1000F0000000000000000000000000000000E0E040 +:100100000000071FFFFEFE000000000000000000CE +:100110000000E000000000000000000000000000FF +:100120000000000000003E3F7F1C080000000000AF +:10013000000000000000000080C00000000000007F +:10014000000000000000000000000001010307079C +:10015000000000000000000070E0E0C0E0F0FEFEE3 +:1001600000000000000000000000000080C0E0F07F +:10017000000000000000000000000000000000007F +:1001800000000000E0F8FCFE770100000000000025 +:1001900000000000000000000080000000000000DF +:1001A000000000003C7EFFFFFFFFFF7E3C000000E0 +:1001B00000000000000010C0E88000800000000087 +:1001C000000000003C7FFFFFFFFFFF7E3C000000BF +:1001D000000000000000E8C0FBE08000000000001C +:1001E00000000000383F7F7FFFFFFF7F7F3C000063 +:1001F0000000002000A8C080800000000000000077 +:1002000000000000383F7F7FFFFFFF7F7F3C000042 +:1002100000000102A8F0C4E080800000000000009F +:10022000000000000000004040000002041C150116 +:10023000000010143C3860C0400000008080C040C6 +:100240000000000000000040400002041C150100F6 +:100250000000000060F0B0980808088080C04000EE +:1002600000000000000000000E0E1C1C1E3F7F7FDF +:100270000000000000000000000000000000E0E0BE +:10028000000000000000000000000000000000006E +:1002900020202030387C7C7838707878F0E040403E +:1002A0000000000000000000000000000008000046 +:1002B000000000000000000000000000000000003E +:1002C000010F1F3F3F3F7F7F7F7F7F7F3F3F7F7FCC +:1002D000C0E0F0F0F8FCFEFFFFFFFFFFFFFFFFFFB5 +:1002E000010F1F00003F7F7F00007F7F3F00007FE6 +:1002F000C0E0F00000FCFEFF0000FFFFFF0000FC7C +:1003000001000000003F000000007F000000007FAF +:10031000C000000000FC00000000FF00000000FC26 +:1003200000000000000000000000010101030303C1 +:100330000202000000000000E0E0C0C0E0E0FEFEBD +:1003400000010000000000000000000000000000AC +:10035000F0F8F8787838080000000000000000008D +:1003600003070F0F1F1F1F1F1F0F0F0F1F1F3444E7 +:1003700080C0E0E0E0E0E0B8FCFCD880B0E0E00065 +:1003800000000000000000000080C000000000002D +:10039000000000000000000000000000000000005D +:1003A000000000000000000139393F3F7FFFFFF7E8 +:1003B000000000000000C0C0C0C0E0F0FEFEF08001 +:1003C000000021211B1F1F0F0F3FDF070604080835 +:1003D0008080800008B0E0E0C080C0C0C020200065 +:1003E00003070F0F1F1F3F3F5F1727030301000085 +:1003F000C0E0E0E0C0E080F0F8F8B81040C0C00015 +:100400000003070F0F0F1F1F1F1F1F1F0F0F1F1F9F +:1004100060E0E0C0D2B7EFF9F0E0C0C0C0808080FB +:100420003F3F1F070303030307070F0E00000000F1 +:10043000C0C0E0E0F0F0F8FEFFFFFF6D000000003C +:1004400000000000000080C0C040404000000000EC +:10045000000000000000000000000000000000009C +:1004600000000000000003030000C0E000000000E6 +:10047000000000000030F8FCC67000000000000022 +:100480000001030707070F0F0F0F0F0F07070F0FCD +:1004900030F0F0E0E9DBF7FCF8F0E0E0E0C0C0C0ED +:1004A0001F1F0F030303030307070F0F00000000C4 +:1004B000E0E0F0F0F8F8FCFFFFFFFF36000000007E +:1004C000000000000080C0E060202020000000004C +:1004D000000000000000000000000000000000001C +:1004E00000000000000001018080E0F0000000003A +:1004F000000000000018FCFE63780000000000000F +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:100520000000000000000000070E0E1C1E3F7F7F31 +:100530000000000000000000000000000000E0E0FB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:100560000000000000000000E0E0F070707C7F7F81 +:10057000000000000000000000000000000080807B +:100580000003070F0F0F1F1F3F3F7F7F7FFFFFFFFE +:1005900060E0E0C0D0B0F0E0C080808080C0E0FFCC +:1005A000FF7F3F1F0F0F1F3F7F7FFFE7000000000F +:1005B000FEFCFCF8F8F8F8F8FCFCFE770000000000 +:1005C000000000000000000000000000000000002B +:1005D00000000103060C0D0F1E1C3C38387060E053 +:1005E000000000000000000000000000000000000B +:1005F00040000000000000000000000000000000BB +:100600000000000103030307070F0F1F1F1F3F3FD9 +:100610001070F0F0F0F0F0F0F0F0F0F0F0F0F0F03A +:100620003F3F1F0F0707070F1F3F7F7900000000A4 +:10063000F0F0F0F0FCFCFCFCFEFFFFDD0000000031 +:10064000C0C0C080A060C0800000000080C0E0FC8E +:10065000000000000000000000000000000000009A +:10066000F8F0F0E0000000000000000000000000D2 +:10067000000000000000000000000000000000007A +:10068000C0C0C080A466EFD3C0800000000000801E +:10069000000000000000008080000000000000005A +:1006A000C0F8F0E0000000000000000000000000C2 +:1006B000000000000000000000000000000000003A +:1006C000C0C0C0A0A46EDFFBE1800000000000807D +:1006D000000000000000008080800000000000009A +:1006E000C0E0F0E00000000000000000000000009A +:1006F00000000000010301000000000000000000F5 +:10070000010F1F3F3F3E7F7F7F7F7F7F3F3F7F7F88 +:100710008080800048DCBEFFC381010000000080B3 +:10072000FFFF7F1F0F0F0F0F1F1F3F39000000003B +:1007300080C0C0F0FCFCFCFEFFFFFFB70000000023 +:100740000000000000000000000001030303070791 +:1007500000010103030307071FFFFFFFFFFFFFFF68 +:1007600007070707030307070F0F07010000000033 +:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:1007800078FCFCFCFCFCFCF8F8FCFEFEF4F0E0F06D +:1007900000000000000020202030387C7C78387079 +:1007A000F0F8FDFFFFFFFFFFFFFFFFFEF8C0C0E016 +:1007B0007878F0E0C0C0C0C0E0E080000000000039 +:1007C00000000000000000007F7FFFEF0F0F070711 +:1007D0000000000000000000FCFCFCFEF0F8F8F84F +:1007E00007030307070F0F0F03030707070F0F0F79 +:1007F000F8F8F8F8F0F0F0F08080000080C0F8F829 +:1008000000000000000000000000010303000007DA +:1008100000010100000307070000FFFFFF0000FFC9 +:100820000707000003030700000F07010000000096 +:10083000FFFF0000FFFFFF0000FFFFFF0000FFFFC2 +:1008400078FCFC0000FCFCF80000FEFEF40000F068 +:1008500000000000000020200000387C7C000070B8 +:10086000F0F80000FFFFFF0000FFFFFE0000C0E007 +:1008700078780000C0C0C00000E0800000000000E8 +:1008800000000000000000007F0000EF0F0F0000DC +:100890000000000000000000FC0000FEF0F8000076 +:1008A00007030300000F0F0F0000070707000000F9 +:1008B000F8F8F80000F0F0F0000000008000000000 +:1008C0000000000000000000000001000000000720 +:1008D00000000000000300000000FF00000000FF17 +:1008E0000000000003000000000F000000000000F6 +:1008F00000000000FF00000000FF00000000FF00FB +:100900007800000000FC00000000FE00000000F085 +:10091000000000000000000000003800000000702F +:1009200000000000FF00000000FF00000000C00009 +:1009300000000000C000000000E000000000000017 +:100940000000000000000000000000EF00000000B8 +:100950000000000000000000000000FE0000000099 +:1009600007000000000F000000000700000000006A +:10097000F800000000F0000000000000000000008F +:10098000FFFF7F1F0F0F0F0F1F1F3F3F03030301C9 +:10099000FEFEFEFCFEFEFEFFFFFEFEFEFFFFFFFE74 +:1009A000010100010103030300000101010303032E +:1009B000FEFEFEFCFCFCFCFCE0E0C0C0E0E0FEFE55 +:1009C000FFFF00000F0F0F00001F3F3F000003015B +:1009D000FCF80000FEFEFE0000FEFEFE0000FFFE32 +:1009E00001000001010300000000010000030303F7 +:1009F000FE0000FCFCFC0000E0E0C00000E0FEFEA9 +:100A0000000000000F000000001F000000000300B5 +:100A100000000000FE00000000FE00000000FF00DB +:100A200000000001000000000000000000030000C2 +:100A3000000000FC00000000E000000000E00000FA +:100A4000010F1F3F3F3F7F7F7F7F7F7F3F3E7E7E47 +:100A5000C0E0F0F0F8FCFEC783810101010103034F +:100A6000FEFE7E1E0E0E0F0F1F1F3F3900000000FE +:100A700002060200000000000080C28E0F0B0B0275 +:100A80000000030F1E1E3C7B7C7060604000000075 +:100A9000000000000000B0BE1F0E0E0C0C0800008D +:100AA000000000000000000000000103030301003B +:100AB00060E08040F072362F6FFFF8A0200080E0E9 +:100AC000000303070F3F3E7C78F8F0F070702020A1 +:100AD00040D0B0F8980C060707070F0F0F1F1F3FF5 +:100AE0000000000000000000000000000000000006 +:100AF0003F1F1F0F0F0F1F3F7F7F7F5F4F2F0F077E +:100B0000000000000000101C1C1E1E1E1E1E1F1FC9 +:100B10000000000303030300000000000000008049 +:100B20001F1F1F1F1F1F1E1C1810101000E0400069 +:100B3000E0F0E0E0C0000000000000000000000065 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B600000000001070F1F1F3F3F3F1E1E1C0C000F +:100B7000C0C0E0E0E0E08080000000000000000075 +:100B8000000000000000000000000110327AF6FEB4 +:100B9000000000000000000070FEFEFFFF9F0F0736 +:100BA000FCFCF8F8787C3E0E03000000000000001A +:100BB0000707070703030000000000000000000013 +:100BC00000000000000000000000008187CFEEFC64 +:100BD0000000000000000000000000008000000095 +:100BE000FCFC381C18181B1E1E0C00000000000026 +:100BF000000000000080000000020707070F070345 +:100C000000000000E080F09010C000000000000034 +:100C100000000000000000000000000000000000D4 +:100C200000387DFFFDFFFFFF7F7F7F3F0303010251 +:100C300040E0E0C080A0B030F0E0C080C0404000A4 +:100C400000000000000000000000000000000000A4 +:100C500000001010185A7E7C3870602000000000E0 +:100C60000007070F0F0F1F0F0F1F1F1F0F0F1F175B +:100C700080C0E0E0E0E0E0C0F0F8F8F8E0E0C0803C +:100C8000061F1F1F3F3F1F3F1F1F0F0707010000C9 +:100C900000008090B8F8F8F0F8F8FCFCF8F090400C +:100CA0000000001F3F3F3F3F3F1F1F07070100009D +:100CB0000000607060F8F8FCFCFCFCFCFCF4100820 +:100CC0000000030703030D1F3F3F7F7F3F1F0F02FD +:100CD00000001070F8F8FEFCF8F9FEF4E0E0800087 +:100CE0000000000000000000003078783078FCFE42 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D10000000000000000000004000000000000093 +:100D200000000000000000FCFCFCFEFEFFFFFFFFD7 +:100D30000000000080800000000000000000008033 +:100D4000000000000001071E3CF8F0E0C080000039 +:100D500000001E3FFFEF87070100000000000000B9 +:100D60000000000080808080800000000000000003 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000080E0E003 +:100DB0000000000000000000000000000000000033 +:100DC000000000000307070300000000000000000F +:100DD0000000000080808000000000000000000093 +:100DE0000000000000000E1F1E1E1C1C1C1C0E0715 +:100DF0001F0F0F0F0707070303070703030303036F +:100E0000FFFBF0F0E0E1E1E1E0E0C2C3C387870768 +:100E1000F0E0E0E0E0C0C0C0C08080C0C0E0F8FC0E +:100E200000000000000000000000000000F0FFFFD4 +:100E30000000000000008000000000000040E0F022 +:100E40008018787C3C3C1E0C0E0606060F1F3F7F68 +:100E5000000000000000000000008080C0C0C0C092 +:100E60000103030101010100000000000001030370 +:100E7000808080C0C0C0C0C0C0C0C070F8FCFEFF91 +:100E800000000000000000000000083C7C7C3F3FA8 +:100E900000000000000000001000000607070FFF20 +:100EA0000E0E06060303030301010103070F1F3F94 +:100EB0000000000000000080808080C0E0E0E0E0F2 +:100EC000E0F0F8FCFEBF0F0701000000000000008A +:100ED00000000000000080C0E0F0381C3E3F7F7F33 +:100EE0000000000000000000000000000000380CBE +:100EF0000000000000000000800000000000000072 +:100F0000000000000000003F4040400000000000E2 +:100F100000000000000000FC0000000000000000D5 +:100F200000000000000000000001010303000000B9 +:100F30000000000000000000C0C0C0C0C0C04000F1 +:100F40000800000002020307070303030303030171 +:100F5000FC3CBEBEFE7FFFFFFFFFFFFFFFFFFFF772 +:100F60008000000000B0C08080C0200080808080B1 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA00000000002040C0C080C0F0E0C68488402B0 +:100FB00000000000000000000000800000000000B1 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000002020707020000000000DD +:1010000000000000000000000606060E0E2E3E3E08 +:1010100000000000000000000000000000000000D0 +:101020003C1C1C0E060E1E3C3C38383030F0706004 +:1010300000000000000000000000000000000000B0 +:10104000000000000000000000030707070F0F1F4B +:1010500000000000000000000020F0F8FC9C0E0ED4 +:101060001E1E1E0E0E0F0707070F00000307070FB7 +:101070000E0606060606068480C00003E7F7FFFF9B +:10108000000000000000000000000000000100005F +:10109000F0F0707030303030707F7FFFFFFEFC204A +:1010A00000000000000001010107070F0F07070300 +:1010B000707060E0C0C0C08080800080C0C0F0F868 +:1010C000000000000000000000F8F8FCFCFCFCF848 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000010181F1F0F0F7C +:1010F0000000000000000000000000000080E0F0A0 +:101100000C1F1F1F3C38383838303030301010106A +:1011100080C0E0F07038383838383838387870F0B7 +:1011200030000008181C1F1F1F1F0F0707030303B1 +:10113000F000003070F8F8F8F0E0C0C0E0F8F8F81F +:101140000000000000000000010103030307070086 +:101150000000000000000000F8F8F8F0F0F0F06087 +:10116000000001010103030301090D0D0F0F070327 +:10117000E0E0C0C0C08080800000000080C0F0F8C7 +:101180000C1F1F1C38307060604040000103070FC7 +:1011900080C0E0F0703838387878F8F8F8F8F0F077 +:1011A000070700040F1F3F3E3E3C3C1C1F1F1F1F34 +:1011B000F0F00000E0E0703030303878F8FCFCFEF1 +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000070F1F1F3F3F0F2E +:1011E00000000000000000000000000001000000FE +:1011F0000000000000000000000080E0F8FCFEFF9E +:10120000000000000000000000FFFFFFFFFFBFBF65 +:1012100000000000000000000000000080808080CE +:101220001E03030303070303010103030303030373 +:101230000000000000808080808080C0E0F8FCFE1C +:101240000C1E0F0707030303010101014140606009 +:10125000001CBEFEFEFEFEFEFCF8F8F8383C181836 +:10126000300000303F3F3F3F1F0F1F1F1F3F3F3FDA +:1012700038E00008FCFEFEFFFFFFFFFFFFDF8F8767 +:10128000000000000000000000000000000000015D +:10129000000000000000000000000000000080C00E +:1012A000010000000000000000000000000000003D +:1012B000C0C00000000000000000000000000000AE +:1012C00000000000000000000000070F0F0F0301E6 +:1012D00000000000000000000000F0F0F0E0E0C0BE +:1012E00001030307070E0E0C2C28787CFCFE7F1FE1 +:1012F000C0808000000000000000000000000080AE +:101300000000101818181C1C1C1EFE7E7E1E1E0ECF +:1013100000000000000000000000000000000000CD +:101320000E0C0404040C0C0C0C1C3E3E3F1F0F075B +:101330000000000000000000000000000080C0E08D +:101340000C1E0F0707030303010101014140606008 +:10135000001CBEFEFEFEFEFEFCF8F8D8181C0C1C9D +:101360003000383F7F7F7F7F7F3F3F3F1F1F3F3FE2 +:10137000380000F0F0F0F8F8F8F8FCFCFCFEFEFF96 +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000101010000000000003A +:1013B00000000000000080E0E0C00000000000002D +:1013C00000000000000000003F3F1F3F1F0F030709 +:1013D0000000000000000000FFFFFFFE9C800000F6 +:1013E000060E0E0E0C0C1C1818787C7CFEFF7F0F6E +:1013F00000000000000000000008181C1F1F8F8361 +:101400000C1F3F0F07070303030301010101000045 +:1014100030FCFCFEFEFEFEFEFCFCF8F0F0E0E0F12D +:1014200010180C0F1F1F3F3F3F1F1F0F1F1F1F3F95 +:10143000737FFFFFFFFFFEFCF0F0F0E0E0E0C0C0D4 +:10144000000000000000000000000001000000009B +:10145000000000000000000000FEFCFEFE3C3C38E6 +:10146000000000000000000000000303030303036A +:10147000787870F0706060604040C0C0E0E0F0F0EC +:10148000000000000000000003030303030100014B +:101490000000000000000000F8FCFCFCFCF8FCFC74 +:1014A0000100000000000000010101010303000031 +:1014B000FCF838383070E0E0E0E0F8FCFEFF7F0C2C +:1014C00000001E0F070301010000000000000406D9 +:1014D000001C3FFEFEFEFEFFEFCF4703070F1F1E5F +:1014E00003030100000000000000000000000000F5 +:1014F0003CF8F1E3470F1F3F3F1F1F3F3F3F3F3F78 +:101500000000000000000040C0C1E3E3DF9F0F3F88 +:101510000000000000081C7CFCFCFCFCFEFFFFFC43 +:101520007FFFFFFFFCF8F0E0E0C0C0C0808080C01B +:10153000E0C080000000000000000000000000008B +:101540000000000000000000010303010101000091 +:101550000000000000000000FEFEFCFCFCFCE0E0DF +:10156000000000000000000001010303070F1F1F1F +:10157000E0E0E0C0C0C0C08080E0E0E0E0E0E0C0CB +:10158000060F0C00000000000000001F1F1F1F1F9F +:1015900000F070783C3C1C1C1E0C3CFCFCFCF8F879 +:1015A0000000070F1F1F1F1F0F0F0F0F0707030755 +:1015B0000000F0F0F0F8F8FCFEFEFFFFFFFFFFFF79 +:1015C000000000000000000000001F1F07000000D6 +:1015D00000000000000000000001FFFF3E0E0E0EA4 +:1015E00000000000000000000000000000000000FB +:1015F0001E1E0E0E0C0C0C04040C0E1E3F3F3F3F33 +:10160000030707070E0C0C0C0C0E0F0F0F07070734 +:1016100000F0F80000000000000086FEFEFEFCFC6A +:101620000F000003070F0F0F0F0707070703030340 +:10163000FC0000F8F8FCFCFCFEFEFEFFFFFFFFFFD5 +:10164000000000000000000000000000000000009A +:101650000000000000000000003F7F7F3F1F0E06DB +:10166000000000000000040C1C1D1F1F0F070301D9 +:1016700000000000000000000001018183C3E1F0D0 +:10168000000000000000040404FCFCFCF8F8F8F87A +:10169000000000000000000000000000000000004A +:1016A000F070F0606060606060E0E0F0F8FCFEFF09 +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000010B1F1E3E3E3E1E1FAA +:1017000000000000000000000000060602030101C6 +:10171000000000000000000800000000000080C081 +:1017200001030F3FFFFFFFFFFE001E0F0F0F1F3FC4 +:10173000E0E0E0E0C0C0800000000080C0E0E0F039 +:101740000000000000000000000000010000000098 +:1017500000000000000000000000C0C0FFFF7F7F0D +:101760000000000000000000030303C7E6C60000FD +:101770007F7FFFFFFFFF7F3FC0BF1F0F0F1F1F3B7C +:1017800000000000000000000000FCFCFCFCFCFC71 +:101790000000000000000000000000000000000049 +:1017A000F8F8F0F0E09E7FFFFFFFE7C3C380800002 +:1017B0000000000000000000001000800000000099 +:1017C00000000000000000000C1C3C7CF8F8787859 +:1017D000000000007F7F3F1F1F070B1C1F1F3F37AC +:1017E00000000000000000000000000000000000F9 +:1017F0000000000000003070703020000000000089 +:1018000002030303FFFFFFFEFEF0EC1EFFFFBE1FFF +:10181000000080C080000000000000000084040F71 +:101820000F0703030000000000000000000000009C +:101830001C3CFCFC7C3C1C0C000000000000000078 +:1018400001030600000000000000070F0707071F44 +:10185000C0F83C1C1E0E0E1E3E7EFCFCFCF8F8F090 +:101860003F3F1000000001131F1F0F0F0F07070756 +:10187000F0F000F0F0F0F0F0F0F0F0E0E0E0E0E0A8 +:101880000703070F0F07010101000000000101031A +:10189000E0E0E0F0F0E0C0C0C0C0C0C0C0C0C0C068 +:1018A00001010101030105070F0F0F0703010000EC +:1018B000C0808080000000808080C0C0C0E0F070E8 +:1018C00000000000000000010F0707071F3F3F3026 +:1018D0001E0E07070F1F3FFFFFFEFCF8F8F0E07039 +:1018E00001010121273F1F0F06000000000000003A +:1018F00000C8F8F8FCFEFEFFFFFF7F3F0F0F070355 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000002020303030302B5 +:101920000000000103377EFC7C7C3C1E0E07030197 +:101930003EFEFCF0E080000000000000000000001F +:10194000000000000000000000001C0E070703015B +:10195000000000000000000000000010F0F2FBFF9B +:10196000000000000040707C7F7F0F00207C7F7FA4 +:10197000FF773210000000048CF8E0000070F0F0F7 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C000000000000000000000000101030300000F +:1019D0007FFFFF7F7F7EFEFEFCFCFCFCFCF8F8F046 +:1019E0000001010103030103020E1E1F1F3F7F7F41 +:1019F000E0E0C0C080800000000000000080808027 +:101A0000F8FCFCFEFEFF7F3F3F1F0F0F1F03030785 +:101A1000000000000000008080C0C08080808080C6 +:101A200007030307030303030303070F0F0F1F1F1E +:101A3000808080808000000000008080C0E0F0F89E +:101A4000000000000000000000000000041E0F065F +:101A50000000000000002000000000000030F8300E +:101A6000060202030303030141406060703000601E +:101A700010101010BEFEFE7E18101010103000085E +:101A8000FFFFFFFF7F3F3F3F1F1F1F3F1F070E0E40 +:101A9000F0F8F8F8FCFCFCFEFEFEFEFC6400000022 +:101AA0001C38787070E0E0C0C0C080C1E1F1F9F886 +:101AB0000000000000000000000080C0F8FCFE3FB5 +:101AC0000000000000000018783C1C0C0E0F1F3FA7 +:101AD00000000000000000100000000000008080F6 +:101AE0003F7FFFFFFFFFFEFEFFFF3F1FFEFE7F7FEA +:101AF000808000800000000000C0A0000000008086 +:101B000000000000000000000000000000000000D5 +:101B10000000000000000000000001030F0707079D +:101B200000000000000000000000000000000000B5 +:101B300001183E3F311001010500030101000000C2 +:101B40001F1F1F1F1F1F1F0F0F1F1F0F0701030343 +:101B5000E0E0F0F0F8F8F8F8FCFCFCFCE0C0C0C0F5 +:101B600003030303030707070E0E1E3F3F3F3F1FFC +:101B700080808000000000000000000080C0F0F0C5 +:101B8000000000000000000000000000000307014A +:101B900000000000000041212337BF7F3F9FFFFF6F +:101BA0000101000000010303070F07070F181C1FA6 +:101BB000FFFFFFFFFFFFFFFFFFFEFEFCFC0000FC3E +:101BC000000000000000000000000000001F0706E9 +:101BD00000000000000008080C0C0E0E0E3E0E0E59 +:101BE0000E0E0E0E1C1C1C1C1818187C7EFFFF7F8E +:101BF0001C1C1C1C0C0C0C081818180C0080C0C0F5 +:101C00000000000000000018783C1C0C0E0F1F3F65 +:101C100000000000000000100000000000008080B4 +:101C20003F7FFFFFFFFFFEFEFCF80000F0F8787832 +:101C300080800000000000000000000000000000A4 +:101C40000000000000000000000000000001000093 +:101C5000000000000000000000000020E0E0E0E0E4 +:101C60000207070706040000000000000000000053 +:101C7000E02000C0E02000203F3F1F7F3F3F3F3F6C +:101C80000000000000000000070F0F07070200001F +:101C90001010181818181C1CFCFCF8F8F8383878C4 +:101CA0000000000000000000000103070707070311 +:101CB000787070706060E0E0E4C2C2C3E7FFFFFFCD +:101CC000000000000000000010783C1C0E0F0F0FF9 +:101CD0000000000000001000000000000080C0C0F4 +:101CE0001F3F3F7FFEFCFC1C00E0F8FFFFFF7F3F33 +:101CF000C0C08080000000000000000080C0F0F83C +:101D000000000000000000000000000000000008CB +:101D100000000000000000000000000000000000C3 +:101D200018000008183838383000010002000000A0 +:101D300000000000000000000000FFFFFFFF7F3FE9 +:101D400000000000000000070707060404FCBC3880 +:101D50000000000000000000808000000000000083 +:101D6000787838383838381818183C7C7E7F3F3FF0 +:101D70000000000000000000000000000080C0C063 +:101D80000000000000000200000000000000000D44 +:101D9000000000000000000000000000E07070F88B +:101DA0000F1F1918101000000000000000000000B4 +:101DB000FCFEFFFE7E3E3C3C7D79FB1B09000000E3 +:101DC00000000000000000010307070707070707DE +:101DD00003071F1F3F7FFFFFFFFFFFFFFFFFFFFF07 +:101DE00007070703000000000000000000000000DB +:101DF000FBC08000000000000000000000000000A8 +:101E00000000000000808080000080C0E0E0F0F072 +:101E100000000103060E0E0E1C1C1C3838000000CA +:101E200078383C3C1E0E0E0707010003010101003B +:101E3000000000000000000082FEFCF8F0E0C0801E +:101E40000000000000000000000000000080808012 +:101E50000000000000000000000000000000000082 +:101E60008080C0C0C0C0C0C0C0C0C00000C0E0F022 +:101E70000000000000000000000000000000000062 +:101E800000000000000207030303070F0F1C1838AF +:101E90000000000080C080E0C0C0008080C0C04062 +:101EA000383878787CFE1F00000000000000000039 +:101EB0004040040F0F0F060000000000000000006B +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000C0E1F1F1F7B +:101EF000000000000000000000000000000080C0A2 +:101F000000000000000000000001030101010307C0 +:101F100000000000000000004060C0F0E0E08080B1 +:101F2000070E0E1C1C1C3E3E3F7F3F0F00000000B2 +:101F3000C06060202000000002078F8F06000000B4 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F6000000000000000000060F0F0707038180001 +:101F70000000006070F0F83C00000000000000006D +:101F80000000000000000F3F3F7FF9F1F1F0F0F09A +:101F9000000000002030E4FCF8B0B0900000000029 +:101FA000E0000000000001011038783838180808F7 +:101FB0000000000040E0E0E0C00000000000000081 +:101FC000000000000307CFC0C0E0C00101000060B6 +:101FD0000000004040E0E0F0FCFCFCFEFE1E0F07AD +:101FE000F0F03020000000000000000000000000C1 +:101FF0000303E73F0E3C3C78186C2800000000000B +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4k-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4k-.bin.hex new file mode 100644 index 00000000..8d5ee2a8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4k-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:10002000000000000001011F1F1F0101000000006F +:1000300000000000000000FCFEFC000000000000CA +:10004000073F3F7C7070783E3F3F1F1F273361C0E2 +:10005000C0C0E0E0E070381C04C6F6E4ECCE9EDFE1 +:100060001F1B19191818080C0505010303277F7FAA +:10007000E0E0E0F0F0E0E0E0E0E0F0F8F8F8E0E008 +:10008000003C7EFFFFDF0F0F0706020800010F1F75 +:10009000000000000000000000000000000080E000 +:1000A000004040E0E8D8F07030180E060200000072 +:1000B0000000000000000000000000000000000040 +:1000C0000000000001071F3FFFFBC301000000000C +:1000D00000006060F8F8FCFCFCF8F8F8F37E3E38AD +:1000E000000000000E1F3F3F776369110000000011 +:1000F00000000000008080C0C04000000000004EF2 +:10010000F7F7D700000C7C78726B7F3B3F3F1E1CDB +:1001100080800000000050F8F8D09080800000003F +:10012000000000020E0E0F070703197CFEFFFFFF01 +:10013000000000703010181888C8ECE667EFEFCFA9 +:1001400000000000003C7EFFFFDF0F0F07060208E3 +:10015000000000000000000000000000000030F877 +:100160001E1F3F2F0F0F0707070F0F1F1733418168 +:1001700010088C8C8ECECCE0E0C0C0E8F8F8F0F02F +:100180000000000600080800030000080401000049 +:100190000000000000000000006900000080230053 +:1001A0003F3F333030383C3E1F0F0F07070400033A +:1001B000C0C0E0E0F07070303090B0B03078E0F067 +:1001C0000000003C7EFFFFDF0F0F07060208021E43 +:1001D000000000000000000000000000000000001F +:1001E0000602071FFFFFFFFFFEFE7E7C7C3F3E3CBA +:1001F00000000000008088183030000000800000FF +:1002000000101010001E1701000000000000000088 +:1002100000000000000080800000000000000000DE +:1002200000000000001003000000000000000000BB +:1002300000000000000080F01F0700000000000028 +:10024000000000070F1F1F1B010100000001000339 +:1002500000000080C0E0E0E0E0E0E0C0400000809E +:10026000030008082C000E0F0F0F070707030303F6 +:1002700080C060321B1BF2F0E0E0F0E0E0F8E0C08C +:1002800000000003070F0F0D000000000000000039 +:10029000000000C0E0F0F0F0F0F07060208000207E +:1002A0000103E3FF1F000100000003030100000041 +:1002B000E0C0E2F2F3F171600047FEFEFEFEF8F0EE +:1002C00000003C7EFFFFDF0F0F0706020800001E44 +:1002D000000000000000000000000000000000100E +:1002E0001F3F2F0707070F0F0F1F1F377341810E87 +:1002F000088CCCCECEECC0C0C0C08898F8F0F0F826 +:1003000000000000000000000DB0000000016800C7 +:1003100000004010080010A080000800A08000002D +:100320003F7F6F6763616131181C0C060302000098 +:10033000008080C0C0C0E0E0F0707038787070F865 +:100340000000003C7EFFFFDF0F0F070602080003DE +:10035000000000000000000000000000000000009D +:100360003F3F7C7070783E3F3F1F0F273361C006D0 +:1003700080C0C0E070381C04C6F6E4E8C818181C39 +:100380000000003C7EFFFFDF0F0F0706020800039E +:10039000000000000000000000000000000000C09D +:1003A0003F7F7743416171301C1C0E07060001033B +:1003B0008080C0C0C0E0E0E06060703070F0F8F8AD +:1003C000000000000002090400010100000000001C +:1003D00000000000000000008040104020000000ED +:1003E000000000030707070E0E0E0E0707030100AB +:1003F000000060E0F0F8B8383838381888C8ECCC1D +:1004000000000000000000000000300066000D0049 +:1004100000000000000000000000000080008000DC +:10042000000000003C7EFFFFDF0F0F070602080000 +:1004300000000000000000000000000000000000BC +:10044000061C38327F7F3F3F3F1F1F070301010318 +:100450000000303C8E838B8B8AC8E0F4E4E4E0E05B +:10046000000000000000100B120B0F010000000044 +:10047000000000000000C080C0C0C0C0000000003C +:100480000000000000000004010000000000000067 +:100490000000000000000000C0780F030000000012 +:1004A00000003C3F1F1F1F1F1F0F0F0F07070707ED +:1004B0006060F4F6E6E6C4C080C0800080E0E080C2 +:1004C00000003C7EFFFFDF0F0F07060208021E1F21 +:1004D000000000000000000000000000000000001C +:1004E0000000070F1F1F1B01010000000100030394 +:1004F000000080C0E0E0E0E0E0E0C040000080807C +:10050000010F0F0F00260F0F0F0707070303030349 +:100510000000F0381878F8F0C0E0E0C0C0F0F0C09B +:1005200000000000000000080001000000000000C2 +:10053000000000000000000000C07010000000007B +:10054000000000070F1F1F1B010100000001000039 +:1005500000000080C0E0E0E0E0E0E0C0400000001B +:10056000030707FF3F010000000007070301010127 +:10057000C0C0E0F4E6E2FAC1018EFCF8F8F8F8E059 +:1005800000001E3F7F7F6F07070303010400183838 +:1005900000000000808080808080008080C06040FB +:1005A0000000000000010103000000000000000046 +:1005B0000000000000C0FCFFFF3F3F7F7F3F1F00A7 +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E00000000000000804040001070F01000C1EB9 +:1005F0000000000000000040E0A0F0E0E0400080CB +:100600000000000027323A3A3800001F1F3F3F7FAA +:1006100000000000000000000003030EFEF8E000F0 +:10062000460F17A3E1E0F0F87E3F3F0E04090306F2 +:1006300000000080C0C0606030923376FEFF7F1FF4 +:10064000C0F0F8FEFFFFFFFF0F07030100000000EE +:1006500003060E0E02C0FFFFFFFFFFFF7F3F1F07D5 +:100660000000000F1F3F3F3703030101000218F095 +:100670000000000080C0C0C0C0C0C080800080C03A +:10068000F83C1F1F8F47E7F2F0F8FDFFFEFC38F83B +:100690006070E0C08C0C1C387870C08000000000D6 +:1006A00018317F7F7F7F7F3F3F1F0F0F07030303BB +:1006B0000000B0B89C8C06C2E6E4E4EC880040C0C0 +:1006C000C1E3F7FFDFFFDFDF3DE3FEFEFFFFFF7764 +:1006D0000000808080C0E0F0FC66060203E7C6CC24 +:1006E000FFFCDA0808081C1F1F1F1F0F0301000072 +:1006F00098B030707060E0E0E0E0C00080C00000C2 +:100700000000000000000804040001050702063C88 +:10071000000000000000000040E0A0F0E0E0400029 +:100720000000000008040400010507050202070795 +:1007300000000000000040E0A0F0E0E0C000808089 +:10074000070C0C09191D3F3B3B33370000808080AC +:10075000E0F0F8F8F8F8F0E0E0E0E0000000000079 +:10076000000000000000000101070F1F0D00000045 +:10077000000000011F7FFFFFFFFFFFFF7F7E1C00C7 +:1007800000000020C1E3F6FEEEEEEF33FFFFFFFFB7 +:1007900000000080800000000000088888CCC4E4CD +:1007A00000000000000000010100000E3E7EFFFF7F +:1007B000000000000030F8FCFEFEFF2F074246025A +:1007C0000000070F1F110D01010302010100000CC1 +:1007D00000000080C0E0E0C0E06040C00000000019 +:1007E0001E3C3D3F3F3F3F3F1F1F0F0F07060200CC +:1007F0000000008080F0B01818881830307070E069 +:100800000000060F0D00000060E0C00102000000C3 +:1008100000000030F8B060E0741E1CB8F00000006A +:100820000410000800201070E2C00000000000006A +:1008300040E0C00000004030600000000000000008 +:100840000000041C1C303D7F7FFEFEFCFCFCFE7E95 +:10085000F8F87878F0E0C0800000000000000000A8 +:100860007E7E7F7F7F7F7F3F3F3F0F06040000003B +:100870000000000000808080C0E0E0C08000000038 +:10088000000706070F0F1F1F1F3F3F3F3F3F3F3F20 +:10089000001838F8F8E0E0C0C0C080008080808098 +:1008A0001F1F1F1F1F1F1F0F0F0F0103030000003B +:1008B000C0C0C0C0E0E0E0E0F0F0B8B080000000F0 +:1008C00001030707070F0F0F1F1F1F3F3F3F3F1F6A +:1008D000FFFFFFFFFBF3E7E7CFCFCFCFCFCF868779 +:1008E0000F070703000000000000000000000000E8 +:1008F000070787070707030000000000000000004B +:10090000FFFEFEECF0F0E0E0C0C08080800080C020 +:100910001808101010302000000000000000000037 +:10092000C0C0E0E0C0C080C0E0C0C08000000000E7 +:1009300000000000000000000000000000000000B7 +:100940000000000000000101010001030707020090 +:100950000003071F7FFFFFFFFFFEFEFCF8300003D0 +:100960000000000000000000000000010000000086 +:1009700003070F1F3F7F7F7E3E78F0F0800000006E +:10098000FCFFFFFFFFFFFFFFFF0701073FFFFFFF28 +:10099000387CFAF8FFFFFFFFFFFFFFFFFFFFFFFEBE +:1009A000FEFCA8C0000000000000000000000000E5 +:1009B000E343060606060303067ED8000000000097 +:1009C000F8F87C7C7C3C3C1C3870F0F0F0F0F0F0E7 +:1009D0000000000000000000000000000000000017 +:1009E000F0F8F8F8F8F8F0F0F0600000000000000F +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000010103030707D0 +:100A1000000001070F3F3F7FFFFFFFFFFFFFFFFFCA +:100A200007030101030300000000000000000000B4 +:100A3000FFFFFFFFFF5F0F0F0E1E180000000000FA +:100A40003FFFFFFFFFFFFCF8F8F0E0E0E0C0C0C0B0 +:100A5000C6C4C4C4880808000000000000000000EC +:100A60008080C0C0C0C0C080000000000000000046 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000001010163 +:100A90000000000001070F3F7F7F7F7F7FFFFF5F28 +:100AA0000000000000000000000000000000000046 +:100AB0001F0F0F0F1F3F3F3F1F0F0E1E1C18000080 +:100AC0000000000000000000000000000000000323 +:100AD000203010380C06000303070303070F3FFF05 +:100AE0007FFFFFEFBEDCC0E080C000000000000020 +:100AF000FFFFFFFFBF3F15000000000000000000E7 +:100B0000F8F8FCFCFCF8F8F0F0F8F0B8DC8CCC86D7 +:100B100000000000000000000000000000000000D5 +:100B200006030103020204040400000000000000A8 +:100B300000000000000000000000000000000000B5 +:100B40007E7CFCFEFCF8E0C0FFFFFFFFFFFFFFCF55 +:100B5000000000000000000080C0E0E0E0E0E0C035 +:100B60000707030303030101000001010100000066 +:100B7000808080C0C0C0C0C0C0C2E3F1F0F83800BF +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC00000000000000000001F3F3F7766264E76C1 +:100BD0000000000000000000E0E0E0F00000000085 +:100BE00098EEF07E3E3E7E7E7E7E7E3E1E000000C3 +:100BF00000000000000000000000000000000000F5 +:100C00000000000000000000010303020302067E52 +:100C10000000000000387CFECFC3DB440000000071 +:100C2000FFFFFFFFFFFFFF7FFF977FFFFFFE7E1DA0 +:100C30000080E0E0F0F0E0E0E0F0F0F0F0F878FCC8 +:100C40000C031F1E0F0F0301000000000000000036 +:100C5000C0C0C0C0408040C0C0C0C0400000000054 +:100C60000000000000000000000000000000000084 +:100C700040404000000000003E3E1E0C787CFEFF1D +:100C8000010101010000E0F8FEFFDFBF1F078180C6 +:100C90000080808000000000000080C0C0E060E0B4 +:100CA000C1E0E0E0F071F0F0E0E0F0F0F0707878B2 +:100CB000E0F0F070F0F0F8787C3C301C7F7E7C3007 +:100CC00000000000071F1F3F3E3E3E3E1F1F0F0655 +:100CD00000000000B0AC28BABE9890000000307050 +:100CE0000001070301030F0F0707070300010000BE +:100CF000F0F0F0F0F0F0F0F0F8F8F47FFFFFFEFD18 +:100D000000000000000008080C0C040406060202A3 +:100D100000000000000000000000000000000000D3 +:100D200003030101010100C1E7FFFFFFFFFF27806F +:100D300000000080A0F0F0F0E0E0E0E0E0B0303053 +:100D400000061E3C3C7F7D7C3F3F1F0F01000000E2 +:100D50000000000000000000000000000000000093 +:100D60000100000202030303010101000000000072 +:100D70000000000000000000000000000000000073 +:100D80001F3F0B073F1F1F3F08073F7D7E7E7E3DB5 +:100D9000C0C080C0C0C28E1EFEFEFEFEFC7AB0C087 +:100DA0001F07030103030303030103010000000005 +:100DB000E2E0F0F0F0F0F0F0F2E2F2F8787CFEFE23 +:100DC000E4C6060602030303C1E1E1E1E1F0F0F04D +:100DD0000000000000000000008080808000000013 +:100DE000F0E060E0F0F078F8782070F8FCFEF8E0D1 +:100DF00000000000000000000000000000000000F3 +:100E00000000000000000000000000000010386238 +:100E100000000000000000000000000000000010C2 +:100E200042C387878F1F3F0E00000008080C070091 +:100E30004824A28A8E07030D0717331C5EFC78F046 +:100E4000070F0E2473AFFDFA5F3F3F1B0100002028 +:100E500018BCF2BADCDC980080C0488C8C180040CA +:100E600072777F1B0002000000030606030E1B734F +:100E7000C00080101830F8308000000000000080B2 +:100E800073F8FBEF4F0F06000161F7F3A000070FA7 +:100E90007E76A49860F0F8F8B0C0C080000000C072 +:100EA0000F3F7E7E6C0006070F1E1B00060E1B33D5 +:100EB000E0E4C60C0E1CC0C08000000000000080F2 +:100EC00000000000004080000000000000400080A2 +:100ED0000000000000000000000000000000000012 +:100EE000000000004080000000000800000000003A +:100EF00000000000000000000000000000000000F2 +:100F000000080002010000000000004E0100000087 +:100F1000000010100888C46E7F3E163BFB777FC729 +:100F20000001070C30000001010204040010000061 +:100F3000E7CF972F7E78F3E3020206040408080047 +:100F400000044448481810303070F0F9FFFEFEF8F5 +:100F50000000000000000010004080800000000041 +:100F6000FCF9F0C4EE733170600000000000808076 +:100F700080E03C03000080402010000200000000E0 +:100F80000000000000200000080001010000010333 +:100F900000440000030707030080C8C1E160C2806D +:100FA000230000000000000010000000000002000C +:100FB0001000012302066CF8F83000000001000068 +:100FC0000020000000800084EE7CB83C3E1F0F35FE +:100FD00000008000000000000000002480C08000AD +:100FE00078703810004018081C1800000000080035 +:100FF0000000004000080000000000004000000069 +:101000000000000004041C1C3C3C3C3C7C7C7C7CC0 +:1010100000000000000000000000000000000000D0 +:101020007C7C7C7C7C3C3C1C0C04040404000000A4 +:1010300000000000000000000000000000000000B0 +:10104000032377FFFFFFFFFCF8F8FCDC9EDFDECE1A +:10105000E0E0E0E0C0800000000000000000008050 +:10106000CDEFE3E3E3E3E1C18080C0C0C000000056 +:1010700080A0E0F0F0F8F0E0C8DC1C0E1C080000D6 +:1010800003070F0F0D00000000000000000000002B +:10109000C0E0F0F0F0F0F0706020800C0000000084 +:1010A0000000000000000000000000000020200000 +:1010B0000000000000000000000000000000000030 +:1010C000E76F0F0F1F1F1F3F3F7F7F7E7E3F3F3F1A +:1010D000F8F0F0E0C0C08080800000000000000058 +:1010E0003F3F7F7F7F7F7F3F1E0E0E07070600007A +:1010F00000008080808080081C1E0C08000000001A +:1011000000000000000000000000010101010101D9 +:1011100000000000000000000000000000000000CF +:10112000010303070707030100000000000000009F +:1011300000000000000000000000000000000000AF +:101140000000000001071F3FFFFFFFFFFFF1FBFB57 +:10115000000001FFFFFFFFFFFEFCF0C0E0C0C0C0C9 +:10116000FBFBFBF9F9F9F1E1C0C0E0400000000031 +:101170008040E0F0F0F0F0E0E8F81C18100000000B +:10118000000000000000000000000000000000203F +:10119000000000000000000000000000000000004F +:1011A0003F3F3F3F7F7F7F7F3F0F07060E0E0400CC +:1011B000808000008080808080800000000000002F +:1011C0000000000002060E1E1E3E3E7C7C787078F9 +:1011D000000000000000000000000000000000000F +:1011E000ECFCFEFCFC7878383C1C0E0E0C00000079 +:1011F00000000000000000000000000000000000EF +:10120000005FBFBFBFBFBF7F7F7F7F3F3F3F3F3F8D +:1012100000C0C0C080000080808000008080C0C00E +:101220001F1F1F0F0F0F0703010000000000000029 +:10123000E0F0F8F8F0F8F8FC9E0C0C0C0800000048 +:101240000001030303000000000000000000000094 +:10125000F0F8FCFC7C3C3C1C18082000000000005E +:101260000000000000000000000000000C00000072 +:10127000000000000000000000000000000000006E +:1012800003030103070F0F1F1F1F3F3F3F3F1F1F98 +:10129000FCFCFCF8F8F8F0F0F0E0E0E0E0E0F0F85A +:1012A0001F3F3F3F3F3F1F1F0F060607060000007E +:1012B000F8FCFCFEFEFCFCFC2E0E0400000000000E +:1012C00000000000000000000000030F1F1F1F3F70 +:1012D000000000000000000000000080C1FFFFFFD0 +:1012E0003F3F3F3F7F7F7F7F3F0E06060E0E04008D +:1012F000FFFF7F3EB8BCBEBC3A363D1F1F1F0F0E1E +:101300000000000000000000000000C0E0E0E0E09D +:1013100000000000000000000000000000000000CD +:10132000C0C080000000287C7CE8C0C0C0800000F5 +:1013300000000000000000000000000000000000AD +:101340000000000000000000000C00000008181859 +:10135000000000000000000000000000000000008D +:1013600018181818181818080000000000000000CD +:10137000000000000000000000000000000000006D +:101380003EFEFEFCF8F1E1A1D1F1FBF3F373733300 +:101390007FFFFFFFFEFEFCF8F8F0F0F0E0F0F8F859 +:1013A00033230101010100000000000000000000E3 +:1013B000F8FCFCFEFEFFFFFEFCFE6E060C000000CB +:1013C0000101030F1F3F3F7FFFFFFFFFFF7F7F7F75 +:1013D000FCFCF8F0F0E0E0C0C080C0E0E0F0F0F825 +:1013E0007F7F3F3F3F3F3E0E06060C00000000009F +:1013F000F8F8FCFCF8F8FC5C0C0C000000000000A5 +:1014000000000000000000000000000000080818B4 +:1014100000000000000000000000000000000000CC +:101420001818181818080800000000000000000034 +:1014300000000000000000000000000000000000AC +:101440007FFFFFFFFFFFFCF9FDFDFFFFFB73733321 +:101450001FBFFFFEF8E0E0F0F0E0E0E0C0C0C0A099 +:101460003323010000000000000000000000000025 +:10147000E0F0F8F8F8FCF8F8787C2E060C00000094 +:1014800003070F1F3F7F7F7FFFFEFEFEFFFFFF7FF3 +:10149000FCFCFCF8E0E0C080000000000000000060 +:1014A0007F7F7F3F3F3F3E3E1607060C0000000057 +:1014B00080808080808004040E0E0C0800000000F4 +:1014C0000000000000000101070F3F7F7F7F7E7F4B +:1014D00000005C1E7F7FFFFFFEFCF8E0C080000084 +:1014E0003F3F3F1F1F3F3F3F3F1B030301000000E3 +:1014F00080808080C0C0C0806070B8B8B00000003C +:101500000303030707070703030303030303070793 +:10151000F0F0F0F0E0F0F0F0F0F8F8F8F8FCFCFC97 +:1015200007070303030100000000000000000000A3 +:10153000FCFCFCF8F8F070303020000000000000E7 +:1015400000000103070F0C0C0E0F07060401070330 +:10155000000000C0E060206060303060E0E0E0F05B +:101560000301010103030301030303000000000062 +:10157000F0E0E0F0F8F8F0F0F0E0C000000000006B +:1015800000000000000003071F3F3F7F7F7E7F7F3A +:10159000000000000000FFFEFEFCF8E080000000FC +:1015A0007F7F3F3F3F3F1F1D000000000000000005 +:1015B00080C0C0800080C0E0E0C0000000000000EB +:1015C0000000060C183E3F3F3F3E1E1F1F1F1F0F0F +:1015D000000000000000F0FCF68404048C8C98D815 +:1015E0000F0707070F0F0F070F0F0F000000000076 +:1015F000FC8C80C0E0E0C0C0C080000000000000A3 +:101600000000000000081818183838383838787882 +:1016100000000000000000000000000000000000CA +:1016200078787878383838181808080008000000EA +:1016300000000000000000000000000000000000AA +:101640000F1F3F7FFFFFFFFEFCFEFFEFE7E7E7E72F +:10165000F0F0F0F0F0E0000000000080800080C0BA +:10166000F7F7F3F3F3F3F3E1E1C0C0C0C08000008B +:1016700040E0E0E0C0A0E0F0F87C7E0C0800000054 +:101680000000000000000000000000000000010158 +:101690000000000000001000080C0477FFFFFFFFAF +:1016A0000101030303030303030100010307000017 +:1016B000FFFFFFFFFCFCF8F8F8F8F0C08000000026 +:1016C000000000000000000000000000000000001A +:1016D00000000000000000000000000000000030DA +:1016E0003C7FFFFFFF7F7F7F0FBFEFFEFFFF7F3F4E +:1016F000F0E0C48C9C9C9C9C18181818D0F0E080DA +:101700007F3F1F1F1F1F1F0F0F0F0F0F1F1F1F1FB9 +:10171000C0C0C0C08080808080C0C0C0C0C0C0C009 +:101720000F0F0F0F0F0F0F0F070100000000000039 +:10173000E0E0E0E0E0E0F0F0F0E0C0E0F0600000C9 +:101740000000000000000001070D0B03070B03055C +:10175000000000000058FCFCFCFCC0801800800069 +:101760000800000100010103030303070707073B0B +:101770000060F0F0F8F8F8F8F8F8F8F8F0F0F8F899 +:101780003F3F0F03030000000100000000000000C5 +:10179000F8F8F89800000080C8F878783C3C1C2CD9 +:1017A000000000000004060C0703030303070707FB +:1017B0003878F8F870F0E0E0E0C0C08080C0F0F861 +:1017C0000000000000000001070D0B03070B0305DC +:1017D000000000000058FCFCFCFCC08018008000E9 +:1017E0000800000100010111313030216361E1FC8A +:1017F0000060F0F8F8F8F8F8F8F8F8FCFCFEFFFFE5 +:101800007F3F0700000103010103030301000103FF +:10181000FEFCF8F8F0F0F0F0F0F0F0E0E0C060E08E +:101820000707030307070F07363C3C78F8FC7E1FC9 +:10183000C0C0C080808000000000030303030707CE +:1018400000000000000F0F1F3F3F3F7F7F7E7F7F24 +:101850004060606060E0C08080808000000018B858 +:101860003F3F1F0F0F0F0F07070707030000000080 +:101870009C8C8C84C0F0F0F0E0E0E07070600000C0 +:101880001F1F0F0F0F0F0F07070707070F0F0F0F70 +:10189000E0E0E0E0C0C0C0C0C0E0E0E0E0E0E0E0E8 +:1018A00007070707070707070300000000000000FD +:1018B000F0F0F0F0F0F0F8F8F8F060703818000090 +:1018C0000E0F1F1F1F1F1D1E3D3F3F3F1F1F1D1FD0 +:1018D0000000008080000000000000808080808088 +:1018E0001F1F1F0F0F070101010000000000000073 +:1018F000C0C0800000C0C0C08080000000000000A8 +:10190000000000000000000000000000040C0C0EAD +:1019100000000000000000000000000000000000C7 +:101920000F07070303070F0F03000000000000006C +:10193000C0E0E0F0FCFEFFFFFFFF3F0F03030101EB +:10194000000F0E0E0E0E0E0F87C7E3E1F87EFFFFAD +:1019500000E0F0381818181C8EC6E2F3F9F3F624EC +:101960007E7E7E1F0701040F0000000000000000C3 +:101970004C0C0C18F8F040000000000000000000C3 +:101980000000000000000000000000000000020352 +:10199000030F0F0F0F0F0F1F1B317CFF7F7F3F3F88 +:1019A0000707070F0F0F1F1F0F0303070702000092 +:1019B0003F8789C0C0C0F0F0F0E080000000000068 +:1019C000000000000000010303030000000000000D +:1019D0000000000000F0F8FCFC7C3C3C1C180820D7 +:1019E0000000103030707060200000000000000027 +:1019F00000000000000000000000000000000000E7 +:101A00000000000000000001070D0B03070B030599 +:101A1000000000000058FCFCFCFCC09800008000A6 +:101A20000800000103070F1F3F3F7E7C7CF8F83C55 +:101A30000060F0F0F8F8F8F8FCFCFC5C3C7EFF3F3E +:101A40000F0F130001000100000000000001000161 +:101A50009EFCFCFCF8FCFC7C3E3F1F0FC7E3E7E765 +:101A60000001010303030101090E1E3C3C3E1F0F50 +:101A7000E3E1E1C0C08081000303010101030383AE +:101A80000000000000000000000000000000000254 +:101A90000000000000003030706000000000000016 +:101AA0000E1E7EFEFEFEFFFEF0F0C0800000000075 +:101AB0000000000000000000000000000000000026 +:101AC00000010101000000000000000000BC100344 +:101AD00000000080C0404000000000000060F8FEF0 +:101AE0000F1F0700010103030300000000000000B6 +:101AF000FFFFFFFFFFFFFEFEFCEC60E070700000E8 +:101B000001030707060000000000000E1E3E3E7E97 +:101B1000E0F0F8F8F87878383010000000000000A5 +:101B2000E6E2C6466260426F3F3E9FC2E4C00000EC +:101B300000000000000000C0C080000000000000A5 +:101B4000000000000000FCFC7E3F1F8F8F878B8F02 +:101B5000000000C0800000000000008080800000C5 +:101B60001F1F3F1E3E1E0E1E3C3C1C1CF0F8FEFFBD +:101B70000000000000000000000000000000000065 +:101B8000000000000000000000003F3F1F0F07039F +:101B9000000000000000000000C0F0F8FEFFFFFFA2 +:101BA0000001000301000703010000000000000025 +:101BB000FFFEFEFE3CFCF8F8F8FC7CBEFEFFFEFCDF +:101BC0000000000000000000000000000000000114 +:101BD0000000000000000000000000000000008085 +:101BE000030F0F0F7F3F1F0F0301030F020F0701AA +:101BF000C0E0F0FCFEFEFEFEFCF8F8F0F0E0FC1F9A +:101C000000000000000001010100000000000001D0 +:101C10000E1E3E7F3F1F8F8FC7EFE773F3F9FAF376 +:101C2000030307070F1F3F7F7FFF7F1E0000010197 +:101C3000F7F3E3E7C3C3CF879F8F070778FEFFFF64 +:101C4000000000000000808080C0C0E0E0E0E0C054 +:101C50000000000000000000000000000000000084 +:101C6000C0C0C0C0808080008080800000000080F4 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000153 +:101C900000000000000000000000000000007CFFC9 +:101CA0000103030301202167E2C1C3616130100019 +:101CB000FFFFFFFFFFFCFCFCFCBCF8F8F8F0F04075 +:101CC00000000000000000000000000000030F1FE3 +:101CD00000000000000607070707033FFFFFFFFFA4 +:101CE0001F3F7F7F7F3E0F070000000000000000C5 +:101CF000FFFFFCF0C00000800000000000000000BA +:101D000000000000000101010101010100000000CC +:101D100000000000000080C0E0FAFEFE7E0E000021 +:101D20009F7FFFFF3F170F1F1F1F0F0F07071F1F6B +:101D30000000008080808080808080808080E0F053 +:101D400000000060602020203030101018180808B3 +:101D50000000000000000000000000000000000083 +:101D60000C0C040406060202000000000000000043 +:101D7000000000000000000003077F7F7F3F383035 +:101D80000000000100000404060202030307070F1D +:101D9000C0F8F8F8FCFC7CFC7C7C3E3E1EAE3E3C71 +:101DA0000F0F1E1E1E3C3D7C7CF8F838000301011D +:101DB0001C7C7C783878F8F87070F07070F8FEFF52 +:101DC000D0406000083C7EFCFCFBF7FFEFC70F0F24 +:101DD00000000000000000000020A0A0F0F0F0F0E3 +:101DE0000601070E0F1F07010000000000000000A1 +:101DF000E0E0E060F0F0F8F8383830200000000053 +:101E0000000000000000000000000060603030189A +:101E100000000000000000000000000000000000C2 +:101E2000180C0C060603030101000000000000006E +:101E3000000000000000008080C0C06060303018EA +:101E4000030703030109080C04060607070E0E1E0C +:101E5000CEC6E4E0E0F0F0F0F8787C3C5C7878788E +:101E60001C3C3C7D78F8F9F81803070F0F070000B9 +:101E7000F8F8F0F0F0F0F0F0606080C0F0F80000EA +:101E800000000001030302030200020F3FFFFFFFF7 +:101E9000387CFECFC3DB44000000000080E0E0F0AF +:101EA000FFFBCF9F0F0B070F0F1E0F07070300014C +:101EB000F0F0F06060A0A080000000800000C88CFE +:101EC0006060203030101818080C0C04060602035D +:101ED0000000000000000000000000000000000002 +:101EE00003010101000000000000000000000000EC +:101EF000000080808000000000303038181C1E0F69 +:101F0000000000000001030302030200020F3FFF74 +:101F10000000387CFECFC3DB44000000000080E0FE +:101F2000FFFFFFFFEF8703050E1F0F070F1F0F07B0 +:101F3000E0F0F0F0F0E0E0E0E0C0C0E0E0E0E0C0C1 +:101F4000000103070301000404060203030303075F +:101F500000E0E0E0F0F0F8F878787C3C3E9EAE3CA3 +:101F6000070F1E1E1E3E7CFCFCFC0C010307070332 +:101F70003C7C7C7C18186868200000C0E0C0C080F1 +:101F800060202030301010181808080C0C040406CB +:101F90000000000000000000000000000000000041 +:101FA000060202030301010000000000000000001F +:101FB00000000000000000800000000000000000A1 +:101FC0000000000307070D0C0E0E1F1A080E031F5A +:101FD000000000E0F0E02000400000000000008071 +:101FE0003F3F3E3D3F3F1F0F3F1F093F1F3F0F0732 +:101FF0000000C0E0E0F0F0F8F8FCFCFCFCBE9E7FC6 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4l-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4l-.bin.hex new file mode 100644 index 00000000..1119f163 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4l-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000001010101000604E2 +:1000100000000000000040E0E0A000004000000000 +:1000200003030707030100000000000000000000B8 +:10003000E0E0E0E0E0E00000000000000000000080 +:1000400000000000000000000000000000000000B0 +:100050000000000000000000000001030301000098 +:10006000C0C0808080404000007078787070301888 +:100070003C7C7CFCFC7C3C0000000000000000009C +:1000800000000020707C7E3FFFFF7F7F7F7F7F7FAF +:1000900000000000000000008080E0E0E0E0E0E020 +:1000A0000000000080E0F8FFFFFFFFFFFFFFFFFF01 +:1000B00001030000000000C0C0E0F0F0F8FCFEFF0B +:1000C00000000001010000000000000000001038E6 +:1000D0000040000000002030000000007800000018 +:1000E00008FCFEC0000000000000000080FCFCF8DE +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:100120000000000000000000010101010103070FB1 +:100130000706060408000000E0E0F0F0F0F0F0F040 +:1001400000000080E0F8FFFFFFFFFFFFFFFF1F0F31 +:100150007C787870600080C0C0E0F0F8FCFEFEFFA4 +:100160000000000000F3FFFFFFFFFFFFFFFFFF3F66 +:100170000000000000F0F0F0F0F0E0E0E0C0C0802F +:100180000307070F1E3E3E1C1C1C18181818383891 +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000010301010103E4 +:100210000000000000000000004060C0F0E0E0804E +:1002200007040000000101030307076F73783030F3 +:10023000C0C06060E0E0E0E0E0E0E0E0E60F0E0675 +:10024000070C080818181010103038381800010171 +:1002500080C040606060E0E0C0C040404040C0E01E +:10026000070F0C181818181C1C1C1E5FF7F06000F4 +:1002700080C0C060606020202000000C9E1E1C0C0E +:10028000000000E0E0C0C0E0F0FCFCFCFCF87C0CEE +:10029000000000000C091F1E1C00000000000000F0 +:1002A0000000000107070E0C1818101008040007C2 +:1002B000000000C0E0F0301000000000000000006E +:1002C000000000000000E0E0C0808080C0E0F0F8A6 +:1002D000000000000000000000000000000000001E +:1002E000000080C1FFFFFFFFFFFF000000000000D3 +:1002F000000000808080808080800000000000007E +:100300000000000103070F0E1E1C0C0C0C0800005F +:100310000C1E1E1E1E0E0E06020000000000000035 +:100320000000000003070F0F0F0703030200000087 +:10033000001E7FFFFFFFFFFFEFE0808000E0FFFF78 +:1003400000000000000000F8F0E0E0E0F0F8FCFE43 +:10035000000000000000000000000000000000009D +:10036000000003060E1C3C78783000001C1F1F3F65 +:10037000000F3F3F3F7F7F3F3F0F070300C0FCFE62 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000010301040406020207032C +:1003B0000000000078FCDE860602000000000080DD +:1003C000202111121ABE7F3F1F3E3F4C84040202BF +:1003D000000000000000608000000000000000003D +:1003E00000000103070E0410101808383C1C000020 +:1003F0000000E0F07818180800000000000000007D +:1004000000000001010000000000000000000008E2 +:100410000040000000002030000000201800000014 +:100420001E3F3E7C7870F0F0E0E0E0E0E0E0C0C02D +:1004300000D87C1E0E07070707070F0F0F1E1E3C74 +:10044000000000000000000080000000000000002C +:10045000000000000000000000000000000000009C +:1004600060F0F8FCFF7F7F7F3F3F0F0F0F0707070C +:10047000001010000080C0E0E0F0F8FCFCFEFEFE82 +:10048000000000000000000000000000000000006C +:100490000303010100000000000000000000000054 +:1004A000000000000000000000040F0F1F1F3F3F6E +:1004B0000000000000000000000000E0F0F8FCFE7A +:1004C000FFFFFFFFFF7F7F3F1F3F3F3F3F3F3F7FDC +:1004D000000000808080C0C0C0C0E0E0E0E0E0E05C +:1004E0007F7F7F7F7F7F7F7F3F00081F1F1F3F3FF2 +:1004F000E0E0E0E0E0E0E0E0E00000C0F0F8FCFE7A +:1005000000000001010000000000000000000008E1 +:100510000040000000002030000000201800000013 +:100520001E3F3F7C787070E0E0C0C0C0808000005B +:1005300000D8FC7E3E1F0F0F0F0F0F1F1F3E3E7C8B +:1005400000000000000000000000010300000000A7 +:100550000000000000000000FCFCFCFC7C1C00E033 +:1005600020607070783C3E3E1F1F0F0F0707070783 +:100570007070783820000000008084CCFCFCFCFC0B +:100580000303030301010103030303070707070F25 +:10059000FEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFC87 +:1005A0000F0F1F1F1F1F1F00C0C0E2FFFFFFFF0F25 +:1005B000FCF8F8F8F8F8F87800000010F8FCFEFFF6 +:1005C0000000000101000000000000000000000029 +:1005D0000040000000002030000000201800000053 +:1005E000183E3F7E7C7870F0F0E0E0E0E0E0C04054 +:1005F0000000DC7C1E0F07070707070F0F0E1E1EEB +:1006000000000000000000000000000101010303E1 +:100610000F1F1F1F3F3F3F7F7FFFFFFFFFFFFFFFBA +:1006200007070F0F1F07000004070F0F1F1F3F3F93 +:10063000FFFFFEFEFEFEFC1C0000C0E0F0F8FCFE2A +:10064000F0F0F0F0F0F0F0E0E0E0C0C080808080FA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000C0F1F1F3F3FB3 +:100670000000000000000000000000C0E0F0FCFEF0 +:100680000000000101000000000000000000003830 +:1006900000400000000010180000000018000000DA +:1006A0007F4703010000000000000000000000037D +:1006B00000E0F0F0F8787C7C7CE04000000000C0B6 +:1006C0000000000000000000000000000000103CDE +:1006D000000000000000000000000000000000001A +:1006E0003F7F0100404040C0C0C0C0C0404000004B +:1006F000FFFFFF7E1E000000000000000000000061 +:1007000000000000000000000000000000000000E9 +:1007100003000000000000000000000000000000D6 +:1007200000000000000000000000000103030707B4 +:10073000000000000000000000C0F0FCFEFEFFFF13 +:10074000FFFFFF3F1F1F0F0F0707070F0F0F0F0FB1 +:10075000E0F0F0F0F8F8F8F8F8F8F8F8F8FCFCFC3D +:100760001F1F1F1F3F3F3F000000181E3F3FFFFF9E +:10077000FCFCF8F8F8F8E00000000040F0F8FCFCA1 +:100780000000000000010101030303030307070742 +:100790003F7F7FFFFFFFFEFEFEFEFEFFFFFFE7FF46 +:1007A00001000006060E0E0E0E0E0E0602000000E0 +:1007B000FF3F0701000000000000000000000000F3 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E00000000000000000000000000101030707F6 +:1007F00000000000000000000000C0E0FEFFFFFF5E +:100800003F1F0F0703010101030303030303030356 +:10081000FCFCFEFEFEFEFCFCFEFEFEFEFEFEFEFE00 +:100820000307070707070707000000070F0F9FDFF1 +:10083000FEFEFEFFFFFFFEFE00000000F8FCFEFFD4 +:100840000000000000000000000000000000000C9C +:100850000020008080001018000000000C00000044 +:100860001E3F2701000000000000000001033F3F81 +:100870000018FCFEFE7E3F3F3F3F7FFFFFFFFFFE75 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A00000000000000000001030303010080F067B +:1008B000FFFFFFFF7F0F00000000000000000000AE +:1008C00000000000000000000001070707137BF193 +:1008D000070703030301071F7FFFFFFFFFFFFFFF62 +:1008E000F1F9F97C3C3C3C181C1C0C0C0400000089 +:1008F000FFFEFEF8F0606000000000000000000055 +:10090000FEFEFFFFFFFFFFFFFFFFFFFEFEF8E0E040 +:1009100000000000000080808080000000000000D7 +:1009200080000000000000000000181C1F1F3F7F17 +:10093000000000000000000000000080E0F0F8FC73 +:1009400000000000000000000000000000000004A3 +:100950000010004040080C04000000000E000000E1 +:100960000F030100000000000000010387FF7FFF6C +:1009700000F0FCFE7E7E7F7F7FFFFFFEFEFCFCF82A +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000101010000000000000000000000000044 +:1009B000FFFFFF1F03000000000000000000000018 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E00000000000000000000010183C7F7FFFFFA7 +:1009F000000000000000000000000080C0F0F8FCD3 +:100A0000000000000000100C0707070F1F3FFF7FCA +:100A1000000000000000031FFFFFFFFFFFFFFFFFBC +:100A20007F7F1F07000000000000000000000000A2 +:100A3000FEF8E000000000000000000000000000E0 +:100A40000000000000000000000000000000004066 +:100A500000100040400000101808000000000000D6 +:100A600060F0FC7F1F0F0F070707070F0F1F3F3FA7 +:100A7000000070F8FCFCFEFEFEFEFCFCF8F8F0F056 +:100A80000100000000000000000000000000000164 +:100A90000000000000000000000000000000FFFF58 +:100AA0000000000301010000000000000000000041 +:100AB0007F1F0100F0FFFFFFFFFFFFFF3F1FDF7FF2 +:100AC0000000000000000000000101010101000021 +:100AD000000000000000000000C080808080000056 +:100AE0000101010101010101010101FF3F1F1F0F70 +:100AF00000C0C0E0E0F8F8FCFEFFFFFFFFFFFFFFD3 +:100B000007070F070300010303070703030301039C +:100B1000FFFFFFFFFFFFFFFFFFFBFBFBF9F9FDFD01 +:100B2000030103030703010000010103030303039F +:100B3000FDFCFCFCFCF88000000898FCFEFFFEE0D9 +:100B400000008080C0E0E0E0F0F0F8F8FCFCFEFE81 +:100B50000000000000000000000000000000000095 +:100B6000FFFFFFFFFFFEF8F0E08004070707070321 +:100B70000000808000000000337FFEFCF0E0800079 +:100B80000000000000000098800000030303010340 +:100B9000000000000000000000000080E0F0F0F025 +:100BA0000F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:100BB000F0F0F0F0F0F0F0F0E0E0E0C0C0C0E0E015 +:100BC000C0FFFFFFFFFCF0E040030F0F0F1F1F0FE0 +:100BD00000F8F88000070F3FFFFFFFFFFFFFFFFF58 +:100BE0000F0F0303000000000000000000000000E1 +:100BF000FFFFFFFFFF7F1F0F030703000000000040 +:100C00007FFFFFFF7FBF1F070703030101000004F1 +:100C10008080808080C0C0E0E0F0F0F0F8B83878E4 +:100C20000F0E0E1E1C1C181818183030100800006B +:100C3000787070707070707030303030307C7F7FC2 +:100C40001F1F1F1F1F0F07070703010103030200D8 +:100C5000C0F0F8E8C0C0C0C0E0E0E0F0F0F0E0E0D4 +:100C6000010103030303030303030303030707074C +:100C7000C0C0C080808080800000000000C0E0E034 +:100C80007FFFFFBF5F1F1F0F070707030303070750 +:100C9000CC8783C3C1C0E0E0F0F0F0F8F8F8D8C02A +:100CA0000F0F0E1E1E1C1C181838307070783C0E6A +:100CB0008080F070707070707030303030380000AC +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000800000000000060301C60 +:100CE00000000000011F1F1F1F0F3F7F7F70216149 +:100CF0001C1C1C3CFCFCF8F8F8F0E0E0E000F8FFFD +:100D000000000000000000000000000000001818B3 +:100D100000000000000000000000000000007F7FD5 +:100D2000180C0F0F07030301010000000000000072 +:100D30007FFFFFFFFFFEF8F8F80000000000000052 +:100D40001F0F0F1F1F0F0001030101030303030304 +:100D5000C0C0E0E0E0C0C0C0C0C0C0C08080808033 +:100D6000030301010100010307070703000000005E +:100D700080808080808080C0C0E0E0F0F83C0C0083 +:100D80000000000000000000000000000000000063 +:100D9000000000000000000010080018C000C000A3 +:100DA00000000000061020200018030000000000D2 +:100DB0001800184080000000204C020000000000D5 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000FEFEFEFCFCFCBC0C0000004D +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000001030307070E0E0C0C1C3C180009 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E8000010101010101000000000000000000005C +:100E9000FEFEFEFEFEFCFC7C3C3E3E3E1E1F3F3E38 +:100EA000000000000000000000000101010100003E +:100EB0007E7E7C38787070706060E0C0C8EEF07044 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE00000000103030300000000000000000000F8 +:100EF00000F0F8FCFC7C3C3C1C18082000000000C2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000000000000000607068CCCD +:100F2000000000000000000000011F0000000000A1 +:100F30008C848C981C3C3C38FCFCFCF000061EFCAD +:100F40003F3F3F3F3F7F7E7F7F3F3F3F3F1F1F1F12 +:100F50008000000000000000000000808080808091 +:100F60001F1F3F3F3F3F3F3F1F0707070E06000081 +:100F70008080808080800000808080800000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:101000000000000000000000000080C0C0E0F0F020 +:1010100000000000000000000000000000000000D0 +:10102000F8FCFEFFFFFFFEFCF8F8F02127030101AA +:101030000000008083071E3E7C7CF8F8F0F0C0C002 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:1010600000000000000000000000000070F0F07CB4 +:1010700000000000000000000000000038383E3F83 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000100000000000000000000003E7E7F3FC5 +:1010B000E0C0000000000000000000000000008010 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E000000000000000000000000060E0F0F87C5C +:1010F000000000000000000000000000183C3E3F1F +:101100000000000000000000000000040E0C0403BA +:1011100000000000000000000000000000000000CF +:10112000070F1C18181010111038000000000000E4 +:101130008080C0C0C08080C0C06060000060F0E0FF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:1011600000000000000000000000000E1E1F1F0F06 +:10117000E00000000000000000000060F0F0F8FC5B +:101180000000000000000000000000000007010750 +:10119000000000000000000000000000000080C00F +:1011A0000103000000040A1E0C1D070F01010000CE +:1011B00080800000000307070F0FDFFFFFFFFF7EA7 +:1011C0000000000000000003030101030101000012 +:1011D00000000000000000000080C0C0E0E000004F +:1011E0000000000000000000808080C0E0E080007F +:1011F00000000002063E3C3C180000000000000019 +:10120000000000000020202020606060606000007E +:1012100000000000000000000000000000000000CE +:101220000000000000000000000000003070F8FE28 +:1012300000000000000000000000000000000000AE +:101240000000000000000000000000000100010399 +:101250000000000000000000000020E0C0F080C09E +:1012600007030101030F1F0F0F1F0F1F3F38380027 +:1012700080C0C0C0C08080008080C0C0C0000000AE +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A0000000000000000000000000081C1E3E3C82 +:1012B000000000000000000000000000000000002E +:1012C0000000000000000000000C081E1C381E0872 +:1012D0000000000004151F0F0E04000000000000B5 +:1012E0000C0C1E1F1F0F0F07070303010000000057 +:1012F000000020F0F8FCF8F0F0E0E0E0E0A00000F2 +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000103030301B2 +:1013300000000000091D3F1E1C080080F0E0C000F6 +:1013400000000000000000000000000010181C1E3B +:10135000000000000000000000000000000000008D +:101360000FFFFEFE1C08000000000000000000004F +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000004FEFEFC383038787CFFFFAF +:1013B00000000000000000000000000000000080AD +:1013C000000000000000000000000000033F3F1F7D +:1013D000000000000000000000000000000080800D +:1013E0001F0F0F07030000000000000000000000B6 +:1013F000EEFFFFFFFFFE3C00000000000000003C8D +:1014000000000000000000000000000004060707C4 +:10141000000000000000000000000000000000804C +:10142000FFFFFF0F070200000000000000000000A7 +:10143000C0C080800000000000000000000000002C +:101440003F1F00000000000000000000000000003E +:10145000000000000000000000000000000000008C +:101460000000001C1F1F0F070F0F1F3F3F1F0F0320 +:101470000000000000C0F0F0E0808080C0E0F0F8E4 +:101480000000000000000000000000000CFCFE7ED8 +:10149000000000000000000000000000000000004C +:1014A0007F3F3F1F0F03000000000000000000000E +:1014B000B8FCFCFCFCF8F00000000000000000009C +:1014C00000000000000000000000000010181C1EBA +:1014D000000000000000000000000000000000000C +:1014E0000FFFFEFE1C0800000000000000000000CE +:1014F00000000000000000000000000000000000EC +:101500001E1F03000000000000000000000000009B +:1015100000E0E060000000000000000000000000AB +:1015200000000020383C1E1F3F3D7878FCFE7F3FC6 +:101530000000000000001C1F0F03030303070787C0 +:10154000070F0F0100000000000000000000000075 +:1015500080FFFFFF0000000000000000000000000E +:10156000000000040E0F07070F0E1E1E3F3F1F0F47 +:10157000000000000000E3E7E30101010183C3E391 +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000010F0F0E0C0C0C0F0F8FCFE49 +:1015B000000000000000000000000000000000002B +:1015C000000080C0E0E0E0C000000010181C9CF8A3 +:1015D000000000000000000000000000000000000B +:1015E000F8F0000000000000000000000000181FDC +:1015F000000000000000000000000000000060E0AB +:1016000000000000000000070000000000000000D3 +:1016100000000000000000E00000000000000000EA +:101620000000000010383E1F1F3D78F8F8FC7E1FB8 +:101630000000000000000083C180000101030303DB +:10164000000080808080C0C0F8FFFFFFFEFE7E3C6F +:10165000000000000000000000000000000000008A +:101660000C0000000000000000000000000000006E +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:1016900000000000000000001F000000000000002B +:1016A000000000000307070303070F1E3E3F1F0F44 +:1016B000000000000080C0E0F0F02000000080E0AA +:1016C000000000000000000080000000000000009A +:1016D000000000000000000000000000000000000A +:1016E0000000000000C3FFFE7C3838387C7EFFFF1E +:1016F000000000000000000000000000000000806A +:1017000001070F1F1F3F3F3D30391D1E0C071F3FB4 +:1017100000088890D0F0FBFCF8F0F86422201090CC +:101720003F7F7EF8F0F8F8F8FCFC7CFEEF03010048 +:10173000000000000000000000000000C0F8F838C1 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000063F3F1F1E1C1D1F3F3F3FA3 +:1017700000000000000080F0F0F0E0E0F0F8FCFE77 +:10178000010303070F0F1F1F1F3F3E3E7C7CFCFE23 +:10179000E0E0F0F0E0E080800000000000000000E9 +:1017A0004C000000000000000000000000000000ED +:1017B0000000000000000000000000000000000029 +:1017C000381F3F0F00000000000000000000000074 +:1017D0000000F0F0F0300000000000000000000009 +:1017E00000000000000000003F3F3F07070F0F0F01 +:1017F00000000000000000F0F0F0A0C0E0F0E0E029 +:101800000000000000000000000000000103070FBE +:101810000000000000000000000040FCFCFCFAE2B8 +:101820001F1F3F3F3E7E7C7C3D0101000000000009 +:10183000C3970F0703070709F0FCFF3F07010000EC +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:1018600020204040C0ECF0E0C0E0908880C0C0C0C4 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000040000000000000000000044 +:1018A0000000000000000000717F3F7FF9F3FFFFA0 +:1018B0000000000000000000F0F8F8F8E0F0F8FC8C +:1018C000070F1F3F7F7CF8F8F8FCFCFC7EFEFC4015 +:1018D00080C0C0C080000000000000000001071FA1 +:1018E00000000000000000000000000000000000F8 +:1018F000F8E0000000000000000000000000000010 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:101930000000000000000000000000000107070296 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000107073278F0F0F8BE3F3F1E1874 +:101970000020F1E3CFFEFC7C78300000C080000046 +:101980000000000000000000001C1E3E3E3E7E7C69 +:101990000F1F3F7F1E0C0000000000000000000130 +:1019A000F8F8F8FC7C7E7F3F3F7E3C18000000008A +:1019B0000101030307070E8E040000000000000071 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E0000000000000081C1E1F3F7F7EFE0C080840 +:1019F0000000000000000000008000000000000067 +:101A00000000000000000000010307060E0C0C0897 +:101A10000000000000000000008000000000000046 +:101A200008080000000000000000000000000000A6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000307070F0F1F1D0C00001F +:101A500000000000000000808083FFFEFCF8F060C2 +:101A600000000000000303071F7F3F1F0901000063 +:101A700000000000000000800202FEFCF8F0E060C0 +:101A80000000000000000000000000000000000650 +:101A90000000000000000000000000000000000046 +:101AA0000F3F7D7FFFFFFD1F070301002630180059 +:101AB00080C0C0C0808C9CDFFFFFC280000000009F +:101AC000000000000000000000000000000E1F1BCE +:101AD00000000000000000000000000000000030D6 +:101AE0007F7FFAFFFF7E0C0E07000C0E0C04000037 +:101AF0007074640C080070DCF67E783830000000EA +:101B000000000000000000000000000000000001D4 +:101B10000000000000000000000000000000004085 +:101B20003B7BDEFC767FFFFEFC7931000003030285 +:101B300060662F9D97FE7F3F1E9E0C0000000000F8 +:101B40008080000000000000000000000080808015 +:101B50000000000000000000000000000000000085 +:101B6000C0C0C0C0C0C0C0C0C0C0000000000000F5 +:101B70000000000000000000000000000000000065 +:101B8000F8F0F0E000800080FFFFFFFFFFFFFFCFD5 +:101B9000000000000000000080C0E0E0E0E0E0C0E5 +:101BA000070303030303010100000101010000001A +:101BB000808080C0C0C0C0C0C0C2C3E1F0F838009F +:101BC00000000000000000000F0D1D193070F0FC37 +:101BD000000000000000000080C0D0F800000000FD +:101BE000FC7C3C3C7C7CFCFCFCFCFC7C3C00000069 +:101BF00000000000000000000000000000000000E5 +:101C000000000103070E041010180838FC00000043 +:101C10000000E0F078181808000000000000000044 +:101C200040E070787E7F3F1F0F0701000038F8E02A +:101C3000000000000080C0E0C08080800000000044 +:101C40000000000001030307060607070303010065 +:101C5000000000C0E080000000000000808000E084 +:101C600000000000000000001F0100000000011F34 +:101C7000000000000000000000F038183870C000BC +:101C8000000000000000000001070C1C3060000391 +:101C90000000000000000000E0F83C1C0C18F08080 +:101CA0000000000000000000071F38706060201076 +:101CB0000000000000000000C0F0381C0C0C0810F0 +:101CC0000000000001030A1F3D7F7F33000C60709D +:101CD00000000000C0ECDCDFFFFFC280000000005D +:101CE000000000000103030E1E357D787B73320077 +:101CF00000000000406060B8BCD6DF4F0F870300D3 +:101D000000070C181030303030180C0400000000B0 +:101D10000080000000000000000000000000000043 +:101D200000000000010101010101000000000000AD +:101D30000070F8DC8C0602020200000000000000C7 +:101D400000C0E0F8F8FCFEFFFFFBF1F1A1ECE0B011 +:101D50000000000000000080E0E0F0F0F0F0F07023 +:101D600000000003070F0D0A040000000000000F30 +:101D7000000000C0E0E0F0F0F0F0B0202000003003 +:101D80000000000000000001000000000000000052 +:101D9000000000000000008060351F060000000009 +:101DA0001F1F3E3E3E3F3F7FFFDF0F0F0F0F1F3FC6 +:101DB000F0000040E0F0F4F6E6628387E3E3C282DD +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000002020202083 +:101DE00000000000000000000000E0F8000000001B +:101DF00000000000303C1C5C2E1E3EFC3C7CF88049 +:101E0000314A0A0A12224279000000000000000054 +:101E10008C5252525252528C0000000000000000BE +:101E2000314A4A120A0A4A3100000000000000004C +:101E30008C5252525252528C00000000000000009E +:101E400020214949497D09080000000000000000E8 +:101E5000C6292929292929C6000000000000000000 +:101E6000794242720A0A0A71000000000000000074 +:101E70008C5252525252528C00000000000000005E +:101E8000192222427A4A4A3900000000000000006C +:101E90008C5252525252528C00000000000000003E +:101EA000314A4A324A4A4A3100000000000000002C +:101EB0008C5252525252528C00000000000000001E +:101EC000314A4A4A3A0A126100000000000000004C +:101ED0008C5252525252528C0000000000000000FE +:101EE000314A4A4A4A4A4A310000000000000000D4 +:101EF0008C5252525252528C0000000000000000DE +:101F0000081909090909091C000000000000000067 +:101F1000C6292929292929C600000000000000003F +:101F200000000000000000070F010000000000009A +:101F30000000000000000000E0E0000000000000E1 +:101F40000C0C09090F0F0F0F0F0F0F1F00000000DF +:101F5000C0E0E0F0F0E0C0C0808080C00000000081 +:101F600020206060E0E0E0000000000000000000D1 +:101F70000000000000000000000000000000000061 +:101F8000021E1E060000000000000000000000000D +:101F90000000000000000000000000000000000041 +:101FA0000000000000080404000105070502060700 +:101FB0000000000000000040E0A0F0E0E0C0008071 +:101FC0001F1E1C1C5D7DFFFFDFDFDF3F00000000E8 +:101FD0000080C0C0C0C0C0C0C0E0E0700000000011 +:101FE00000000000000000000202060600000000E1 +:101FF00000000040203010F0E080000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4m-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4m-.bin.hex new file mode 100644 index 00000000..b9e915b4 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4m-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000002030103E7 +:1000100000000000000000000040E0E080E000E0A0 +:10002000FFFFFFFFFFFFFFFF7F3F1F0F03010000E8 +:10003000800080C0C08000808080B8FCFEFFFF7E12 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:10006000FFFFFFFFFF7F7F1F1F0F0703010000003F +:10007000F8F8F0F8F8F0F0E0F0F0F0FFFF7F3F1F45 +:1000800000000020707C7E3F7F3F3F3F1F1F0F0F0F +:100090000000000004060707FEFCE8E0E0E0E0E006 +:1000A000000000000000383F7F7FFF7F3F1D0B03F3 +:1000B00000000000000000C0C0E0F0F0F8FCFEFF0F +:1000C0000001030307070F0F1F1F0F070F0F1F3F2D +:1000D000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E0BC +:1000E000F8FCFEFFFFFFFFFFFFFFFFFFFFC0E00088 +:1000F00000000080F0F8F8F8F8F8F8E000000000E0 +:10010000000000001FFFFFFFFFFFDE0000000000F7 +:10011000000000003FFFFFFFFE3E1C00000000004B +:100120000000000000000000010101010103070FB1 +:100130000404000000000000E0E0F0F0F0F0F0F057 +:100140000000000060F8FFFFFFFFFFFF6F0F0703D5 +:1001500000004040000080C0C0E0F0F8FCFEFEFF60 +:100160000000000000F3FFFFFFFFDFFFFF7F0C0038 +:100170000000000000F0F1FFFFFFFFFF8100000022 +:100180000307070F1E3E7EFCFCFCF8F8F8F87838F1 +:10019000000000000000000000000000000000005F +:1001A0000000000000000000003E3331180800008D +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:10020000000000000001000703070F0707030101BA +:10021000000000000080C0E0F0E0E0E0F0E0E080FE +:10022000000003070E081C1818303060707830305A +:10023000000000000000000000000000060F0E0695 +:100240000000010303030206060202030301010189 +:100250000000000000000000000000000000C0E0FE +:10026000000000010303010101000040F0F0600004 +:1002700000000000000000008080E07C3E1E1C0C9E +:100280000000000000081E0F010000000000000038 +:10029000000000000C091FBEFC4000000000000030 +:1002A0000000000107070E0C181C121008040007BC +:1002B000000000C0E0F0301000C0000000000000AE +:1002C000000000000000000000808080C0000000EE +:1002D000000000000000000000000000000000001E +:1002E0000000000181A1F9FFFFFF000000000000F5 +:1002F00018133FFEFEEC80808080000000000000AC +:1003000000000000000000010103030303070707CA +:100310003878FEFEFEFEFEFEFEFEFEFCF8FCFCF85B +:100320000000000003070F0F3EBFFFF3F260600004 +:10033000031F7FFFFFF7E180101F7F7FFF1F00007B +:10034000000000000000000000E0E060300000005D +:10035000000000000000000000000000000000009D +:1003600000000001010323777F3F3F7FE3E0E0408F +:100370003C71F8FCFEFFFFFFFFFFF7E3C000000049 +:10038000000000000000000000103C3474505800D1 +:10039000000000000000000000000000000000005D +:1003A0000000000000000103010404060202070F20 +:1003B0000000000078FCDE860682501800000080F5 +:1003C000202111121ABE7F3F1F3E3F4C84040202BF +:1003D000000000000000608000000000000000003D +:1003E00000000103070E041211180838FCFC00007D +:1003F0000000E0F0781818486000000000000000DD +:100400000001030307070F0F1F1F0F070F0F0F0F29 +:10041000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E078 +:100420001F3F3F7F7F7FFFFFFFFFFFFFFFFFFFFFBC +:10043000F0F8F8FCFCFEFEFEFEFEFEFEFCFCF8F80A +:100440000000000000000000C0C0C0C0404000002C +:10045000000000000000000000000000000000009C +:100460000000181C3F3F0F0F0703010301010100AB +:10047000001010000080C0E0E0F0F8FCFCFEFEFE82 +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000707070F0F1F1F3F3F5D +:1004B0000000000000000000808080E0F0F8FCFEFA +:1004C0007FFF7F7F3F1F1B070F0F0F1F1F0F0707A8 +:1004D000000000808080C0C0C0C0E0E0E0E0E0E05C +:1004E0000F0F1F1F0F0F0F07030F0F1F1F1F3F3F80 +:1004F000E0E0E0E0E0E0E0E0E00000C0F0F8FCFE7A +:100500000001030307070F0F1F1F0F070F0F0F0F28 +:10051000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E077 +:100520001F3F3F7F7F7F7FFFFFFFFFFFFFFF7FFFBB +:10053000F0E0F0F8F8FCFCFCFEFEFEFCFCF8F8F83D +:100540000000000000000000FFFFFFFF7E7F7F3FF4 +:100550000000000000000000E0F0F0F8781000E07B +:100560001F1F0F0F07030307070703030100010005 +:10057000F0F0F8F8F8FCFCFEFEFCFCFCFCFCFCFCDB +:100580000000000000000000000000000103030163 +:10059000FEFEFE7E3E5EFEFE7EFEFCFCFCFCFCFCE7 +:1005A000010301010303617B3B331307070F0F0FA7 +:1005B000FCF8F8F8F8F8F8F8C0C0C0F0F8FCFEFF56 +:1005C0000001030307070F0F1F1F0F070F0F0F0F68 +:1005D000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E0B7 +:1005E0001F3F3F7F7F7F7FFFFFFFFFFFFFFFFF7FFB +:1005F000F0F8F8F8FCFEFEFEFEFEFEFEFCFCFCF849 +:1006000000000000000000000000000000000000EA +:100610000103060F0F070F0F1F1F1F3F3F7F7F3F75 +:10062000000101000000030307070F0F1F1F3F3FDA +:100630007FFFFEFEFEFEFCDCC080C0E0F0F8FCFEAA +:10064000F0F0F0F0F0F0F0E0E0E0C0C080808080FA +:10065000000000000000000000000000000000009A +:10066000000000000000000007070F0F1F1F3F3FA2 +:100670000000000000000000808080C0E0F0FCFE70 +:100680000001030307070F0F1F1F0F070F0F1F3F67 +:10069000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E0F6 +:1006A0007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:1006B000E0C0C0E0E0F0F0F8F8FEFFFFFFFFFFFE53 +:1006C0000000040C1C3C3C7C7CFCFCFC7C3C1C3C8A +:1006D000000000000000000000000000000000001A +:1006E0003F7F01000000000000000000000000004B +:1006F000FEFCF87C18000000000000000000000074 +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:100730000000000000303C7C7C3C0C00000000000D +:100740007F1F0F0F070503030301030303070707B9 +:10075000E0F0F0F0F8F8F878F8F8F8F8F8FCFCFCBD +:10076000030303070301010F0F1F1F1F3F3F7F7F7D +:10077000FCFCF8F8F8F8E080000080C0F0F8FCFC21 +:1007800000000103070F3F3F7FFFFF7F3F1F0F0761 +:100790003F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:1007A0000100000000000000000000000000000048 +:1007B000F83F0701000000000000000000000000FA +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E00000000000000000000000000101030707F6 +:1007F000000000000000000078F8F8FCFEFFFFFF9A +:100800000F070300000000000000000001010100CC +:10081000FCFCFEFE7E3E5C7CFEFEFEFEFEFEFEFE60 +:100820000000000000000000030707070F0F9FDF14 +:10083000FE7E3E3F7F3F1E1EC0C0C0E0F8FCFEFFB4 +:1008400000000101030307070F0F07030707070F46 +:1008500070F8FCFEFEFEFEFCFEFEFEFCFCFCFCF066 +:100860001F3F3F7FFFFFFFFFFFFFFFFFFFFFFFFF78 +:10087000F0F0F8F8F8FCFCFCFCFEFEFCFCFCF86078 +:10088000000000000008383878F8F8F8F8F8F87830 +:100890000000000000000000000000000000000058 +:1008A0007F3F3F3F3E1E1E1F0F0F0F0F0F07000021 +:1008B000FFFFFFFF7F0E0000C0C0C0C0C08000006F +:1008C000000000000000000000000000081C7CFE8A +:1008D00000000000000000000103070F2F377F7F9A +:1008E000FEFEFC7C3C3C3C181C1C0C0C0400000074 +:1008F000FFFEFEF8F0606000000000000000000055 +:10090000FEFE7F7FFF7F3F7FBFFF7FFEFEF8E0E0C0 +:1009100000000000000080808080000000000000D7 +:1009200080000000000000000F0F1F1F1F1F3F7FEF +:10093000000000000000000080008080E0F0F8FC73 +:100940000000000001010303070703010303070779 +:10095000387CFEFFFFFFFFFEFFFFFFFEFEFEFEFCFA +:100960000F0F3FFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10097000FCF8F8F8FCFCFCFEFCFCFCF8F8F0E0806D +:10098000000000000C1C3C7CFCFCFCFCFCFC7C7CA7 +:100990000000000000000000000000000000000057 +:1009A0007F7F3F3E1E1E1F0F0F0F07070303000030 +:1009B000F3FFFF1E020080C0E0E0E0C08000000006 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000C0F0F0F070300000000C4 +:1009F00000000000000000808000000000000000F7 +:100A0000000000000000100C0707070F1F1F1F1F2A +:100A1000000000000000031FFFFFFFFFFEEFFEF8D5 +:100A20000E000000000000000000000000000000B8 +:100A300000000000000000000000000000000000B6 +:100A400000000001010307070707070F0F1F1F7FA3 +:100A5000387CFEFEFFFFFFFFFEFCFC3C1CC8E0E014 +:100A60007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD18 +:100A7000C0E0C0C0E0F0F8F8F8FCF8F0F0E000C02A +:100A8000010303070F0F1F1F1F3F3F7F7F7FFFFFE4 +:100A90000000000000000000000000000000FFFF58 +:100AA000FCF8FC7F7F7F3F3F1F1F0F0F0707070FDB +:100AB0007F1F0100F0FFFFFFFDFEFEFEFFFFFFFFB7 +:100AC0000000000000000000000101010000000023 +:100AD0000000000000000000000000000000000016 +:100AE0000101010101010001010101FF3F1F1F0F71 +:100AF00000C0C0E0E0F8F87C7EBF9FCFCFE7E7F70B +:100B000007070F070300010303070703030301039C +:100B1000F3F2F1F3FBFBF9F9F8F8F8F8F8F8FCFC5C +:100B2000030103030703010101010103030303039D +:100B3000FCFCFCFCFCF8E0F0F0F8F8FCFEFFFEE04A +:100B400000008080C0E0E0E0F0F0F8F8FCFCFEFE81 +:100B50000000000000000000000000000000000095 +:100B6000FF7F3F7F7F3E1F0F1F0F0707070707030A +:100B70000000808000000080F3FFFEFCF0E08000B9 +:100B8000E0F0F8F8FCFCFCFEFEFEFEFFFB8307FF36 +:100B9000000000000000000000000080E0FCFFFFFB +:100BA000FFFFEFFFEFF7F7F7F7F7F3E0E1C1CB9BBC +:100BB000FFFFFFFFFFFFFFFFEFE761C0C0C0E0E006 +:100BC000C0DF7FFFFFFCF0E040030F0F0F1F1FCFC0 +:100BD00000F8F80000070F3FFFFFCFF7FBF8FCFE1F +:100BE000EF2F030380808000000000000000000061 +:100BF000FFFFFFFFFF7F1F0F030703000000000040 +:100C000060E0C0C040800001000000000002070753 +:100C10000E0E0F0500000000808080406070F8F824 +:100C20000F0E0E1E1C1C181818183030100800006B +:100C3000F8F0707070707070303030303018000024 +:100C4000030100000000000000000000000001039C +:100C500080B0F8684000000000808080C0C0C08084 +:100C6000030303070707070F0F070303030300002E +:100C7000C0C0C08080808080000000000080000034 +:100C800060E0E0A040000000000001010103070750 +:100C90000C07030301000000000000808080A0F02A +:100CA0000F0F0E1E1E1C1C181838303010180000B4 +:100CB000F0F0F070707070707030303030380000CC +:100CC00000000000000000000000000001070F3FCE +:100CD000000000000C5ED87E7F7C7CFCF0F0F0FC15 +:100CE0007FFFFFFFFFE3E1E1E3F7C783070C1F1F6F +:100CF000FCFCFCFCFCFCF8F8F8F0E0E0E000C0E0F4 +:100D000040C0C0C040404000000000000000070795 +:100D10000000000000000000000000000000F8F8E3 +:100D200007030100000000000000000000000000B8 +:100D3000F8F8F0F8B8387838380000000000000003 +:100D4000030303010101070707070F0F0F0F0F0729 +:100D5000C0C0E0E0E0C0C0C0C0C0C0C08080808033 +:100D60000707070707030301010000000000000058 +:100D700080808080808080C0C06000000000000013 +:100D80000000000000000000000000000001000062 +:100D9000000000000000000030080418E000C0203F +:100DA0000000000007182020201C030000000000A5 +:100DB000180818608000000030CE0200000000001B +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE00000000000000001010303030300000000F5 +:100DF00000000000000080E0FCFFFFFF3F0000005B +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E2000000000000000000010F0F0F0E000000002 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000101008080808080901 +:100EA0000000000000000000000000000000000042 +:100EB0000F3F3E3E7E7E76766666E6C647000000C1 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000001000000000000000001 +:100EF00000000000000080008000002000000000D2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000000000000000667E77F383 +:100F2000000000000000000000011F0000000000A1 +:100F3000F3FB93871F3F3F3FFEFCFCF001071FFFC1 +:100F40003E3E3E3E3C7C7C787E3C3E3E3E1F1F1F2C +:100F50000000000000000000008080404040404051 +:100F60001F1F3F3E3E3E3E3E1E00000011397FFFE8 +:100F7000404040404040C08000004040C0C0C000F1 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:10100000000000000000000000000040C0E0F0F020 +:1010100000000000000000000000000000000000D0 +:10102000F8FCFEFFFFFF7E1E1F0F0F0F07030101DD +:101030000000008083071E3EFCFCF8F8F0F0C0C002 +:10104000000000000000000000000000000707078B +:1010500000000000000000000000000000C0E0E010 +:1010600007010000000000000000000070300000D8 +:10107000F0F8F87C7C3C3C3E3E3E3E3E38080000AA +:1010800000000000000000000000000000181C1E0E +:101090000000000000000000000000000000000050 +:1010A0000F07070707030707070F0F070F020000C7 +:1010B000E0C080C0C0C0C0C08080808080000000D0 +:1010C000000000000000000000000000080F0F07F3 +:1010D0000000000000000000000000000080C0C010 +:1010E0000707070F0F0F1F1F3F7E7E7C20000000A9 +:1010F000C0C0C0C08080800000000000180C00004C +:10110000000000000000283E1E34783C7E3C1C0895 +:1011100000000000000000000000000000000000CF +:101120000000000606060404040703030100000093 +:1011300000000000000000000000008080E0F0E0FF +:101140000000000000000000000008080C0C0C0764 +:10115000000000000000000000000000000000008F +:1011600003010101000000010101010E060301005D +:10117000E0E0E0E0F0F0F0F0F0F0F06030000000CF +:101180000000000000000000000000000007010750 +:10119000000000000000000000000000000080C00F +:1011A00001030010387CFE7E7CFD7F3E1C000000A9 +:1011B00080E060303010103060200000000000003F +:1011C0000000000000000000000001030101000019 +:1011D000000000000000000000000080000000008F +:1011E0000000000F1F3FFFFF7970703010000000FB +:1011F00000000000E0E0E0C0C000000000000000CF +:101200000000000000000000000000000000303E70 +:1012100000000000000000000000000000000000CE +:101220003F1F1F0F0F070F0F1F3F7F7F3E30000034 +:1012300000008080C0C0C08080000000000000006E +:101240000000000000000000030107030703030182 +:1012500000000000000000A0F0F0F0F0E0F080C01E +:1012600000001C1C30E0C0C0606020383C383800F2 +:10127000000000000000000000000000000000006E +:101280000000000000000000000000000007070F41 +:1012900000000000000000000000000000000080CE +:1012A00007070707020607070702040E00000000F1 +:1012B00080808080C0C0404000000000000000002E +:1012C000000000000000107C3C7CFC7EFC787E3836 +:1012D0000000000004151F0F0E0C081818303020F5 +:1012E00010030000000000000000000000000000EB +:1012F000E0C00000000000000000002020200000EE +:10130000000000000000000000000000000000409D +:1013100000000000000000000000000000000000CD +:101320007CFEFFFFFFCF070F0F0F0F0F0C00000019 +:1013300000000000081CB8808080808080000000D1 +:1013400000008080C0C0C08080C08000808080C0DD +:10135000000000000000000000000000000000008D +:101360008307070F1D0900000000000000000000B7 +:101370000060F0F0F0E0000000000000000000005D +:10138000000000000000A02030707878787C7EFE9D +:10139000000000000000000000000000000000004D +:1013A0007E3C7C7CFCF80000003030180800000017 +:1013B000000000000000000000000000000000002D +:1013C0000000060F0F1F1F0F06070707073F3F1EEE +:1013D000000000008080800000000000000080000D +:1013E0001E0F0F07030000000000000000000000B7 +:1013F0000180D9FFFFFF3F0F0F0F0F1F1F1F1F039C +:1014000080C0C0E0E0F0E0E0C0C0C0A0E0F0E0C01C +:1014100000000000000000000000000000000000CC +:10142000000101C3C7E2E0E0F0F0F0F0E0D0F0E04E +:10143000C0D8FCFC7C7838000000000000000000F0 +:1014400000000F0F0F0F0303010101000000030351 +:10145000000000000000000000000000000000008C +:10146000070F0F1B18180C0109091F3D3818080039 +:10147000E0E0C0C08000000080808080C0000000EC +:101480000000183C3E7E7E3C181C1C1C1CFCFE7898 +:10149000000000000000000000000000000000004C +:1014A000783E3F1E0F030000000000000000000017 +:1014B000060357FFFFFFFF3F3F3F3F3F1F3F7F7F39 +:1014C0000000808080C0C080800000008080C080DC +:1014D000000000000000000000000000000000000C +:1014E0000307070F1D8980C0E0E0F0E0F0F07868A6 +:1014F0000060F0F0F0E0E0000000000000000000FC +:101500000100040707070703030303030103070799 +:10151000E0000080E0E0E0E0E0E0E0E0E0E0E0E0EB +:101520000F1F1F1F070301183C3C38180000000064 +:10153000EEE6CFCFCF9E82800003030100000000C3 +:10154000000000020301000101010101000101018D +:1015500070000000F0F1F9F9F3F3FBF3F3E7A7C72C +:1015600001030703010000040F0E0606030000003C +:10157000E3C1C183830300000001010000000000FB +:1015800000000000000000008080C0E0E0F0F0F00B +:10159000000000000000000000000000000000004B +:1015A000F0E0E0E0F0E0000000C0C04030000000EB +:1015B000000000000000000000000000000000002B +:1015C00080C0C0C0E0C0000080C08040C00C0D0FD3 +:1015D000000000000000000000000000000080C0CB +:1015E0000F0783C1F0FCFE7F1E0D070F0E0E0600D5 +:1015F000C0C0C0800000000000000000000000002B +:1016000000000000000000080F1F1F0F0F0F07034E +:101610000000000000000000E0E0E0E0E0E0F0F0AA +:10162000030301070F070100181C18080800000039 +:10163000F0F0F8F8F0E0E0400000000000000000EA +:1016400000008000000000008043E3F7FEFE7F3FC3 +:10165000000000000000000000000000000060C06A +:101660000D0000000000000000000000000000006D +:10167000F0FCE0600000000000000000000000003E +:101680000000000000000000070707030100000041 +:10169000000000000000000080C3E3F8FCFC7E3C7A +:1016A000000000010000000203070706020000001E +:1016B0007A7EFCF8F060000000800000000000006E +:1016C000000000000000000000C0E0F0F87C7C7E1C +:1016D000000000000000000000000000000000000A +:1016E0007E7E3F7F7F3C0000003838180C000000F1 +:1016F00000000000000000000000000000000000EA +:1017000001010000000503030F07030307041E3E49 +:1017100000088890D0F0FBFCF8F0F8E4E2E0D0504C +:101720003C7871E7CFE7E7F7E7FF7FF9E0000A0BC6 +:10173000C0C0E0E0E0C080C080C0E08000000000E9 +:1017400000000000000F070707070707070703034C +:1017500000000000008080C0C0E080C0E0E0F0F049 +:101760000307070F0F0938381E1E1C1D1E3E3E3E84 +:10177000E0E0E0F0E0C040000080E0E0F060000069 +:10178000010303070F0F1F1E1A3C3D397373F8FE48 +:10179000FCF8E8CCDE1A7078FCE0D8F8F0F800002D +:1017A0007C7078FCA4B40000000000000000000081 +:1017B0000000000000000000000000000000000029 +:1017C000070000101F1F1F0F0F0F0707070707074E +:1017D000C0C0000000000080C0C0C0E0E0E0F0E059 +:1017E0000307070F0F1F1F1F3030300101080C0CBB +:1017F000E0E0C0C0C0008000000000C0E0C0000009 +:101800000000000000000000000000000103070FBE +:101810000000000000000000000040FFFFE7C71FBD +:101820001E1C3C383870707C3C3078FCA4A4B0009E +:101830003F7FFFFFFFFFFFFF1F030040F8FEFE7F1B +:101840000000000000000000000000000000008018 +:101850000000000000000000000000000000000088 +:10186000A0A0C0C0C0ECF0E0C0E090888040404044 +:101870000000000000000000000000000000000068 +:101880000000000000000000030303030101010148 +:101890000000000000000000F8F8F8FCFCFEEEDCA0 +:1018A0000103070F0F1F1F3F7E7818000191FCFCFA +:1018B000FCFCFCF8F8F0F0E0000000C0E0C0000024 +:1018C000060F1F3E7C6BF3F1E1F1F9F87EFEFC7828 +:1018D000783CBEBC7AFFFCFAFFFFFFFFFEFE78609B +:1018E0003C74E4A040000000000000000000000084 +:1018F000061F3F3F1F1F0F030000000000000000F5 +:1019000000000000000000000000000006070707BC +:10191000000000000000000000F0FE7F3F8FE3C1E8 +:1019200007070701000000000000000000000000A1 +:10193000F0F8F0FE5F1E1D0F0F0F070302000000FE +:10194000000000000000000080C0E0F0F8FCFF7F15 +:101950000000000000000000000000000000000087 +:101960007F3F1F0E800000000010383C1800000070 +:1019700080C0000000F8F02000000000000000001F +:1019800000000000000101031F1B19393D3D797360 +:101990000F1A3C7C1880C0E0C0E0F4F6EC9EFEFE1E +:1019A000F7F3E1D170787B3F3F7F3F1F03030300D4 +:1019B000FEFEFCFC7878318000E0C0E0F02080C0C2 +:1019C0000000000000000000000000000000010115 +:1019D0000000000000000000000000000000000007 +:1019E00005070703030F1F1E1F3F7F68E00000006D +:1019F00000A0E0C0800000000080000000000000A7 +:101A000000000000000000000000000101030000D1 +:101A10000000000103071F3F7F7EFEFEFEFC10005A +:101A200006070F0F0F0F0F0000000000000000005E +:101A300022F7FFFFFFFD8000000000000000000013 +:101A4000C0F0F8FCFC3EFCF878713303010000C0E4 +:101A500000000000000000000080F0E0E040000016 +:101A600080E0E8F8F0F8F0702001030301000000C6 +:101A700000000000000000000000E0C08000000046 +:101A80000000000000000000000000000000000056 +:101A9000000000000000000000000000000030789E +:101AA000000000103810000060F1FF7F3E7C78706D +:101AB00078303031624C5CDFFFFFC0A050508000B6 +:101AC0000000000000000000000000000000000016 +:101AD00000000000000000000000000000100830BE +:101AE000000020702001033F7FFEEECF0D050100B6 +:101AF000787E7D7CD8C080000020100080808080AF +:101B000000000000000000000000000000020101D1 +:101B10000000000000000000000000000020404025 +:101B200003030301010020712101070F1F1B0302A2 +:101B3000E0E0E0E0C08088DCC8C0C0E0F0B01000A9 +:101B40000000C0E0E0C08000000000000080808055 +:101B50000000000000000000000000000000000085 +:101B6000C0C0C0C0C0C0C0C0C0C0808080E0F0F8AD +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000003CCE060342 +:101B9000000000000000000000000000202060E0C5 +:101BA0000307070303030101000001000000000018 +:101BB000E0F0F0F0F0F8F8D8DCCCC0C06000000035 +:101BC00000000000000000000C0E1E1E3C7CFCF813 +:101BD0000000000000000000602020000000000065 +:101BE000F0400000000000000000000000000000C5 +:101BF00000000000000000000000000000000000E5 +:101C000000000103070E041211180838FC00000040 +:101C10000000E0F0781818486000000000000000A4 +:101C200040E070783E0F1B07030181800000000038 +:101C3000000000000080C0F0F8F4DCC8486000003C +:101C40000000000001030307060607070303010065 +:101C5000000000C0E080103030000060808000E0B4 +:101C600000000000000000001F0701000001071F26 +:101C7000000000000000000000F0F83878F0C0001C +:101C8000000000000000000001070F1C306000038E +:101C90000000000000000000E0F8FC3C1C78F08030 +:101CA0000000000000000000071F3F787060201057 +:101CB0000000000000000000C0F0F83C1C0C081000 +:101CC00000000000000000000818030F7EFC787080 +:101CD00000000001020C1C5F7FFFC0A0505080007C +:101CE0000000040201030303010103332303020084 +:101CF0000000102040E0E0E0C0C0C0C682800000CC +:101D000000070E1C18383838381C0E04000000007C +:101D10000080000000000000000000000000000043 +:101D200000000000010101010101000000000000AD +:101D30000070F8FCDC8E820202000000000000004F +:101D400000000000187C7EFEFCF8F0F4E0E0E0F219 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000200000000000F62 +:101D70000000000000000000000000000000003033 +:101D80000000000000000001000000000000000052 +:101D9000000000000101008060351F060000000007 +:101DA0001F3F7FFFFFFEDE9F9F9F0F0F0700183E24 +:101DB000F0F8F8B81C0C0C060682C3E78303024255 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000002020202083 +:101DE00000000000000000000000003800000000BB +:101DF0000000000000000000800000000000000063 +:101E0000314A0A0A12224279000000000000000054 +:101E10008C5252525252528C0000000000000000BE +:101E2000314A4A120A0A4A3100000000000000004C +:101E30008C5252525252528C00000000000000009E +:101E400020214949497D09080000000000000000E8 +:101E5000C6292929292929C6000000000000000000 +:101E6000794242720A0A0A71000000000000000074 +:101E70008C5252525252528C00000000000000005E +:101E8000192222427A4A4A3900000000000000006C +:101E90008C5252525252528C00000000000000003E +:101EA000314A4A324A4A4A3100000000000000002C +:101EB0008C5252525252528C00000000000000001E +:101EC000314A4A4A3A0A126100000000000000004C +:101ED0008C5252525252528C0000000000000000FE +:101EE000314A4A4A4A4A4A310000000000000000D4 +:101EF0008C5252525252528C0000000000000000DE +:101F0000081909090909091C000000000000000067 +:101F1000C6292929292929C600000000000000003F +:101F200000000000000000070F010000000000009A +:101F30000000000000000000E0E0000000000000E1 +:101F4000030307070707070F0E0E07030000000033 +:101F500080C0C0C0808000000000000000000000C1 +:101F60000000000000021F7F7F7F3F1F0301000071 +:101F70000000181C1E1E0E06048080C0C0E0C0C0F9 +:101F8000000000000101000000000000000000004F +:101F90001E1E3E7EFCFCF0C00000020E3F1F0F061E +:101FA0000000000307173B7B73793D5727030300AD +:101FB00000000080E0E0F0F0E0A0F0E0A0C0000051 +:101FC000202123636363E1E1C1C0C0C000000000C1 +:101FD0000080C0C0C0C0C0C0C0E0E0700000000011 +:101FE0000000000000000000030B0E0600000000CF +:101FF00000000040203010F0E080000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4n-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4n-.bin.hex new file mode 100644 index 00000000..4b8f2dec --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4n-.bin.hex @@ -0,0 +1,513 @@ +:10000000000000000000000000010B1B1A0F070F8A +:100010000000000000000000000080800080000060 +:10002000000000000101010303030707070707079A +:10003000000000C0E0E0E0E0E0C0C0C08080C0C0E0 +:10004000000404020203171F3F3F1F0F0D1000188A +:10005000000020204040C0ECF0E0C0E090888040EC +:100060000000000030247CF0FCF0D8C0000000004C +:100070000000000000000000000000000000000080 +:10008000000000000000000000000000030100006C +:1000900000000000000000000000000080000000E0 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C000000000000404040C0000040C1C1C1414A8 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:100100000000806070381808000001000000000046 +:1001100000000000000000000080C080000000001F +:10012000000000000000030207CFCFC5C0E0E0E000 +:100130000000000000000060E0C0C080000000007F +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000007072773F3E4 +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A0000000000000000000000000008080C0C0CF +:1001B000000000000000000000000000000000003F +:1001C000000206040C0C1C38797973F1E170000010 +:1001D0002878F8F87878F8F0F0F0E0E0E000000037 +:1001E0000000000000000003010101010100000007 +:1001F00000000040784C7478FCFCF8F0E06070700F +:10020000000000000000000000000000FF000000EF +:10021000000000000000000000000000E0000000FE +:100220000000000000000000010303030F0C0000A9 +:100230000000000000000063FEF8F0E0C0000000D5 +:1002400000000000C0E0E0F098CD67070300000068 +:1002500000000000000103036FFFFFFEF8D0000064 +:10026000000000000010381C0C0607070301000006 +:1002700000000000000000000040E0E0E0E4767EC6 +:100280000000000101010303030303030000000059 +:1002900000000180C0E0F4FEFFFFFFFFFF3F0F03FF +:1002A0007FFFFFFDD0000010F1F0E0E0E0C0C08073 +:1002B000F0F0F0F8B878F8F8F8F8F8F8786000009E +:1002C00000000000040E070301010100000000000F +:1002D0000000000000000090D8F8F8F8791D0F0F1A +:1002E0000000000000001F7FFFF8800000000000F9 +:1002F0000000001078F8FFFEBC10000000000000B5 +:10030000000000000FFCC000000000000000000022 +:1003100000000FFCC0000000000000000000000012 +:1003200000000000000000000000000000000000CD +:1003300000000202060C1C3C38383838181E190818 +:1003400000000000000000000107FFFFC7030100DC +:100350000000000000000000008080FFE0C00000FE +:10036000000000000000000000007FC0000000004E +:1003700000000000000000000000F000000000008D +:10038000000000181C1E3F3F3F3F3F3F0F0300008F +:10039000191F1F3F1F0440E1FFFFFEFEFEFCFC385B +:1003A0000000000000103071E3E1E0434703030167 +:1003B0001F1E5EFFF9F367E7E3F1FC3EFEFCF8FF6A +:1003C000000000000000000004DEFEFFBF0F04007C +:1003D0000000000000000000000000FF800000009E +:1003E000000000000000000000007FC000000000CE +:1003F000000000000000000000008000000000007D +:10040000040406060E0C0C070701010100000000A1 +:10041000000000000000000000008080C0C0C0009C +:100420000000000000000000000000163F090D055C +:100430000000000000000000000000008000C0C0BC +:100440003C3E3E1C1C0E02030000000000000000A9 +:1004500000000000000040E0F8FD7F1F0A000000DF +:100460000000000000000000000300000000000089 +:100470000000000000000000087D3F3F1400000065 +:10048000000000000000000001000000000000006B +:1004900000000000004040E0E0F0F0F63E3E1800B2 +:1004A000000000181C1E3F3F3F3F3F3F0F0300006E +:1004B0006F0F1F0F0F0440E0FFFFFEFEFEFCFC3835 +:1004C000FFFFFFFF3F170F1F1F1F0F0F0706000043 +:1004D000000000808080808080808080800000001C +:1004E000C0E0E0C8ECEE273731300000000000002B +:1004F000030F1F1F3FFEF8F0200000000000000067 +:10050000000001010000000107030F1F1F0F0F076C +:10051000604060E0C040006EFFFFFFFEF8F0F0E0DA +:1005200000000000000000000000000000000001CA +:100530000000000000000000000808080C0405048A +:1005400000001010D85C7C7C38303070E0E0E0C0F7 +:10055000000000000000000000000000000000009B +:100560000000000000000101030204000000000080 +:100570007F7F372743E3C1010102060E1F3F7FFF44 +:100580000002000008000000060702080002000048 +:1005900008040747C78F8F97630040E1C0943888ED +:1005A00000F2F8FCFEFEBEBD536DF7F7F3F090408D +:1005B00000100040000000100040604000100000EB +:1005C0001000800008000020000400C0E04818125D +:1005D0000080120602800402030363434548300092 +:1005E000004000100170C0B81D0088DC4EDCBC98D3 +:1005F0004100000008400200C0E0F07060E0C00070 +:10060000000000000000000000000000000006588C +:1006100000000000000000000000000FC0E81CF80F +:10062000000000000000000000000038E0425F0E03 +:10063000000000000000000000000000C0604080DA +:10064000377F7F3F3F1F0F071F3E7C787C7E3F1F19 +:100650000080C0C0C08080000000C060E0B0B4185E +:1006600000060F0F04040200000000030000000059 +:1006700000E0F0F8F8F8F0302060F070723E3F1FB4 +:1006800000000000000000000000000000227CD8F4 +:10069000000000000000000000000000000000005A +:1006A000070F1F3E3C78716367474F0F0F0F0F070F +:1006B000C0E0000078FCFCFCDC9C9C88C8C0C0C08A +:1006C0001C3E7F7FFFFFFF7F7F3F0F1F3F3F3F1F8E +:1006D00038FCFEFEFEFCF8FEFFFFFFF6F8FCFEFE17 +:1006E00000000000000000081076FF0D020000006E +:1006F00000000000000003163F7EFCDA8C000000C2 +:100700000000000000822DFFFD960A00000000009E +:10071000000000000000E09000801438000000009D +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:100740000100193F3F7F776363777F3E3C1E0F07B1 +:10075000C0E0F0F8980C9CFCF8F0F0783870E0C03D +:100760000000000000000000081C1E0F0F1E1C08E7 +:100770000000000000000000000000000000000079 +:10078000060F1F3F3970793F3F7F7F2703070F0612 +:1007900040E0E0C0E0FCFCFCFC9C0C98F8F0E04081 +:1007A0000000000000000000081C3E7F77220000CF +:1007B0000000000000000000000000000000000039 +:1007C000EDF9FFFFFFFFFFFEFEFEFE3F1F8CC0E1C5 +:1007D000C0E0F0F0F0F8F8FCF87870202030B0902D +:1007E0000000000000000102000000000000000105 +:1007F00000000000117DEC0000000000000000C0BF +:1008000007030301E1FEFEFFFFFFFFFFFFFBFBF914 +:10081000E0E0F0F8F8F06000008080C0C0C0E0E0E8 +:10082000F9F0F0F0E1C1C1C0C0C0C081000000001B +:1008300060E0F0F0F0F0F0F0F0F070C0C0400000C8 +:10084000030303010707070703010000000000007E +:10085000E0E0F0F0F0F8F8F0F8F8F8FCFCFCFC7CD4 +:100860000000000000010103030707010101030369 +:10087000FCFCFCF8F8F8F8F8F8F8F8E0E0F0F8FC20 +:10088000010101010101010000000000000101015E +:10089000000080C0C08000000000000000000000D8 +:1008A000010101010101010101010101010100003A +:1008B00080808080808080808080000000800000B8 +:1008C000000000000001030307070F0F0F070707D1 +:1008D00000000000F0F0F0F0E0C080008080808038 +:1008E00007030303030101010100000000000000F1 +:1008F00080C0C0C2CEFFFFFFFFFF3F0F0703030111 +:1009000000000000000000040404060707070707B2 +:100910000000000000000000000000000080808057 +:100920000F0F0707070707070703070F030000005C +:100930008080C0C0C0E0E0F0F0E0C0F8FFFEF0C092 +:1009400000000000000000000000000010303070C7 +:100950000000000000000000000000000000000097 +:100960007070F0F0F0F0F0F0F060F0F0E060301057 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000010130F8FC41 +:100990000000000000000000A0B8E8F0B080C00037 +:1009A000FDF9E0C0808D8301000101020400808018 +:1009B00000088890D0F0FBFCF8F0F86422201010BA +:1009C0000000000000181F1F1F1F0F030100000080 +:1009D000000000000000E0E0F0F0F8F8F8FC7C7E99 +:1009E0000000000000000000010103000F010103EE +:1009F0003E7E7C7C7CF8F8F8F0F0F0F0E0F0F8FE59 +:100A0000F0F8F070000080C0C0C0808000000000DE +:100A1000000000000000C0C060787F7F7F1F0600DC +:100A2000000000008081C7C7C7E3F3C1E0E0E040F9 +:100A3000001E3F7FFFFFFFFFFFFFFF9F030100003E +:100A4000000101070FDFFFFEFCF000000000010FB6 +:100A5000808020E0C0800000000000000000808056 +:100A60003F7FFFFFFFFFFFFFFFEF6100000000007F +:100A70008080808080808080808080800000000076 +:100A8000000000F0FCFEFFFFFFDF0F87C7E3F1F877 +:100A90000000000000000080C0E0E0C0E0F0E040A6 +:100AA000F8FCFC7E7E3F3F3F1F1F0F0F030100003D +:100AB00000000000000080C0C08080C080000000F6 +:100AC0000000020E1E3E3E7E7C78F8F8F0F0F0F05A +:100AD0000000000000000000000000000000000016 +:100AE000F060F0F8E8603212020000000000000040 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B1000000010181818100000000000000000006D +:100B200000000000000000000000000000000000C5 +:100B30000000000000000000000010100000000095 +:100B400000000000000000000000000000000000A5 +:100B5000000030383838300000000000000000008D +:100B60000000000000000000000000000000000085 +:100B70000000000000000000202020000000000015 +:100B80000000000000000000000000000000000164 +:100B90000000060D0000000000010101073F7FFF7B +:100BA0000303030707070F0000070F1E14140000BC +:100BB000FFFFFEEE8FC78F0E0F0F87878707070196 +:100BC000008000808000000000000000008080C0E5 +:100BD0000000000000000000000000000000000015 +:100BE00060380C06030300B0F0E0C0000000000015 +:100BF000000000C0C0000000000000000000000075 +:100C00000000000000000080C062663E3C0800005A +:100C100000000000000000000000000000000000D4 +:100C2000000000000080C0C0763E1C0800000000EC +:100C300000000000000000000000000000000000B4 +:100C4000030707070F1C38707080000000000000C9 +:100C5000F3818383030707070307070303010000EA +:100C60000000000000000000000000000000000084 +:100C70000000000000000004060F07000000000054 +:100C80000303FF070703000000000000000000004E +:100C9000F7C7FFC080C7436139383C1C1E3E3E7F0A +:100CA00000000001010303070F0F1F3F3F0000007A +:100CB0007FFFFEFEFEFCFCF8F8F0F0E0C000000054 +:100CC000BCDFFF0000E7E0E0F0F078F8787C3C7CE7 +:100CD0000000E00000000000000000000000000034 +:100CE0003C3C2C1E1E1E3E1F1F1F3F1F0E000000FF +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000010000000000000001E1 +:100D1000000000203C263ABCFEFEFCF8F0301838FB +:100D200001030F0F0F1F0E1C3818183D1C1C1C0848 +:100D3000FCFCFEFE7E7E7EFE5F3FFFFFFFFF7FFF2F +:100D400001030307070307070F060603030703034F +:100D500078F8FCFCFCFCFC7C5C387838383870E0B7 +:100D6000030101033F01010000000000000000003A +:100D7000F0F0F0F8FFE0E0F838783C7C7C3C3C1C7C +:100D80000000000000000000000000000000000063 +:100D90001C03001F00000307070F0F07070F0B07B7 +:100DA0000000000000000000000100000000000042 +:100DB0000F0F1E3E3C7C7878F8F0F0F00000000049 +:100DC000000000000000000603030303030000000E +:100DD00000000080F098E8F0F8F8F0E0C0C0E0E033 +:100DE0000101030303474743C1C3C1416120200000 +:100DF000F0F0F8F8F8F0F0F0E0E0F0F0F0F0F0707B +:100E00006060F0FFF0F0F0F0F8F8FCFCFEFE7F7F91 +:100E100000000000000000000000000000000000D2 +:100E20003F3F1F1F1F0F0F0F0F0F0F07070000007F +:100E300080808080C0C0C0C0E0E0E0F0F000000032 +:100E400000000000000000000000000000000000A2 +:100E50001F0F1F3F1F0F87C7737379393C7C7CFEC0 +:100E60000001010303070F0F1F1F3F7F7F000000DA +:100E7000FCFCF8F8F8F0F0E0E0C0C08000000000F2 +:100E80000000008286C7C7C3E0E0F0F0F0F878F811 +:100E900000000040C0C0C0000000000000000000D2 +:100EA000F878785C3C3C3C3E7E3E3E1E1C000000D8 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED00020207070F070707038783C3F1F07010060 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F00006030180C06030100000000000000000023 +:100F100000000000000080C06030180C06030101D2 +:100F200000000000000000000000000000000000C1 +:100F300003030100000000000000000000000000AA +:100F400002031B0F0F0F0F3F7FFFFFFFFFDFBF3FAE +:100F500060A0C0E0E0C08000008080C0C0E0E0E0B1 +:100F60001F170F1C1F3F1F1F0F073F0F1F3F1F0F94 +:100F7000E0E0E0F0F0F0F0F8F8FC9C8E8E87C2C064 +:100F80000000000000000000000000000603037BDA +:100F9000000000000000000080F098E8F0F8F8F091 +:100FA000FFFFFFFFFFFFFF7FFFCF3F77FFFE7E7F4B +:100FB000E0C0E0F0F0F0E0E0E0F0F0F0F0F878FC15 +:100FC0000000000000000000000000000000000021 +:100FD0000303070F060101101C1E1F0F0F1F3F3FC9 +:100FE00000000000010101030307070100000000E9 +:100FF0007F7FFEFEFCFCFCF8F8F8F8F00000000033 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:10102000000000000000040C080818181C3C3C38A4 +:10103000000000307878F8F8F878787C3C3C3E1F67 +:101040003838787C7C1C040000000004040404048C +:101050000000000000000000000000000000000090 +:10106000040C0C1C1C3C3C7C3C3C3C100000000074 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A00000000000010103070F0F0F1F1F3E3E3C11 +:1010B000000000C0E0F0F0F0E0C080840606070702 +:1010C0007C7C7CF0FBFF7707030100000000000040 +:1010D0000303030303C1F9F8FCFEFF7F7FFFFF6FEB +:1010E0000001030307070F0F071F3F380800000028 +:1010F000EFEFEFC7CF8F8F8F0F0F030301000000BB +:1011000000000000000000000000000000000002DD +:101110000000000000000000000000000040E0802F +:101120000603010000000000040C1C1C3C3C3C3C7D +:10113000E0C000000000000000000000000000000F +:101140003C7C78783C3C3C3C3C1C1C1C0404040467 +:10115000000000000000000000000000000000008F +:10116000040000000000000000000000000000007B +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A0000000000000000000000000006040F8F0B7 +:1011B000000000000000000000000000000000002F +:1011C000F0E0000000E0F0F8FCFCFEFFFFFFFFFF96 +:1011D000000000000000000000000000008080C04F +:1011E000FFFFFFFF7F7F7E3F3E3E2F040000000099 +:1011F000C0F0E0C0F8E06040000000000000000027 +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000060C0F07161C0D0706000000001C1E10 +:101230000000000000000000001C0F070301010077 +:101240003E3E3E3E3C3C3C3C3C1E1F1F0F0F0703F6 +:10125000000000000000000000000183C7E3F1F976 +:10126000010000000000000000000000000000007D +:10127000FC707C3C3C080000000000000000000006 +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A00000000000060F0F0F0707030000000000FA +:1012B00000000000000080C7FFFFFFFF7800000073 +:1012C00000000000207F7F7F3F3F1F1F0F070303A9 +:1012D0000000000000008080C0C0E0E0F0F0F0F00E +:1012E0000103030707070F0F1F1F1F0F0600000052 +:1012F000F0F0E0E0E0E0C0C0C0C08080000000008E +:101300000000000000000000000505070F0D84C666 +:1013100000000000000000000000C04080800000CD +:10132000E0E0C0000000000000000000000000003D +:1013300000000000000000000000000000000000AD +:10134000E0FCFEFEFEFE7F3F1F1F1F1F0F0F0F1F43 +:10135000000000000000000000808080808000000D +:101360001F1F3F3F3F7F7F3F3C7FFFFF0400000088 +:1013700000088890D0F0FBFCF8F0F8E42220101070 +:101380000000183C3E7E7E3C181C1C1C1CFCFE7899 +:10139000000000000000000000000000000000004D +:1013A0007C3C3F1F0F030000000000000000000015 +:1013B000070F7FBFFFFFFF3F3F3F3F3F1F3F7F7F45 +:1013C000000000000000000000000000000000001D +:1013D0000F0000203F3F1F1F1F3F3E3E3F1E3E3C71 +:1013E00000000000000000000101010000000000FA +:1013F0007CFCF87830000080C0C0C0800000000095 +:1014000000000000000000000103051E6943030105 +:10141000000000000000000080800000008000004C +:101420000001030F1F1F3F3F7F7F7F7F7E7F7F6312 +:10143000C08080C0C08080800000804000000080AC +:10144000030F1F3F3F2F2E07070303030101000077 +:10145000C0C0F8F8800000000080800080C0C06834 +:1014600000000000000000000C0F0700000000005A +:1014700030604060604060607878000000000000EC +:10148000000000000000000000000000000000005C +:101490000103070707070F1F1F1F1F0F070F0F1F4E +:1014A00000000103030307070F0F0F1F1F1F1F1F5C +:1014B0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBF +:1014C0001F1F1F1F0F0F0F07070703030100000057 +:1014D000FCFCBC0C84C0E0E0E0F0F0F0F0F8FC7C38 +:1014E00000000000000000000000000000000000FC +:1014F0003C3C383C3C101808000000000000000094 +:10150000002030303038383C3C3E3F1F1F3F3F3FCB +:1015100000000000000000000000000000000000CB +:101520001F1E0EFEFFFFFFFFFFFFFFE58000000014 +:101530000000000080E0F0F8FCFCFCFCDCFC7C3CE3 +:1015400080C0C0E0F0D0D878FCFCFEFEFE7F7F3F7C +:101550000C0C0C0400000000000000000000808063 +:101560003F3F0F1F1F0F0707030301010101010187 +:10157000C0F0F0E0C0C0C0F8FFFEFCF8F0E0C0C072 +:101580000000010302000000000000000001030F42 +:10159000000000807C3F1F3E783E76F0F8C08080DF +:1015A0001F3F7F7FFFFEFEFFFEFCFE7F1F9F8FEF32 +:1015B00080800000000000408000000080F0F8788B +:1015C000EE2EA40607030301010100000000000045 +:1015D0000000000000008080C0E0A040C0C080800B +:1015E00000010101070700000000000000000000EA +:1015F00080808000E0C000000000000000000000CB +:10160000000000000000000000000000C0787E7EA6 +:1016100000000000000000000000000000000000CA +:101620007CF0FCECE0F006078303030100A0C80097 +:101630000000000000000080C0E0F0F8F8706207D1 +:10164000000081CFFFF8F0E0E0F0F0FD7F17000030 +:101650000607C4C640201008040201A1F4F850187F +:10166000000000000000000000000000000000007A +:10167000180C060303010100000000000000000038 +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A0000000000000000000000001070F0E1F37BF +:1016B00000000000000000000000000000C0C0802A +:1016C00043C7C5810303030307070707070F0F0F6E +:1016D000A3E7CF830100008080C0C0C8D1FBFEFC1F +:1016E0000F0F0F0F070707060000000000000000A3 +:1016F0007E3F8F8FC783014058F0F87C48603000F0 +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200002020A0F0707070E0C042070F8FCFCF8F1 +:1017300000000040C0800000000000000000000029 +:10174000F0E0E0C0800000000206068C1F18187050 +:1017500000000000000001000103060CDC3800005E +:10176000F0E0E0E0E2F7BF9F0000000000000000B2 +:1017700000000C5EFFFBE100000000000000000024 +:1017800000000000000000001F31210103030103DD +:101790000000000000000000F0F0F0D8F8F8F8F8C1 +:1017A000070E0C1E3E3E3E7C7CFCF8FCF060460FB3 +:1017B000F870303010100000000000000000000041 +:1017C000DFFF3F7F787038181C0E0603030101000D +:1017D00060E0F0F0600000000000000000A0C080A9 +:1017E00000000000000000006070301000000000E9 +:1017F00080C0C0C0E0606070707030000000000009 +:1018000000000000000000000F181000010100019E +:101810000000000000000000F8F870E0F8F8F0F0B8 +:1018200003070E0F1F1F1F3E3E7E7E7EFFFFFF71D0 +:1018300080001C1F0F0F0F0F010000004080800070 +:1018400001073F3F1F1F1F0F070303010000000098 +:1018500000F8FCFC00008080008080C0C0C06048B0 +:1018600000000000000000000030381800000000F8 +:10187000406060703020203030301C1C18000000A8 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0001F31200103030103073EFCFEFFFFFFFF82 +:1018B000F0F0F0E0C0F0F0E00000000000000000F8 +:1018C000FEFCFEFFFFFFFFFEFC800080D0F87E1FC5 +:1018D00000000000800000367F3F1E0C000080C02A +:1018E00000000000000000000000000000000000F8 +:1018F000F020207060606020383838100000000050 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:101920000000000000000000000001030707033171 +:101930001F312001030301030378FCFEFEFCF8F8CD +:101940003878F0E0F1F1E30300010101000000004C +:10195000F3FCF2E0F8FFFFE3C0C0C0C0783D0F0722 +:101960000000000000000002060703000000000065 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A000F0F0F0E0C0F0F0E00000000000000010F7 +:1019B0000000000000000000000000000000000027 +:1019C000001C3E3E7C7CF9F87000000000A0F0BADC +:1019D0000000000080D8F07C3F3E180000000000AE +:1019E0001C0818101018181010101C180000000007 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A10000000000000000000000C1B00000000019E +:101A2000000000000003070F1F1F3F3E3C7C1C000E +:101A300003031F3CFCF8F8F8F8F04070F0E0C0E059 +:101A4000013179F8FCA4B40000000000000000009F +:101A5000F0E8FF7FF7E0F0707038181C0C0E0602FB +:101A6000000000000000000003070100000000006B +:101A7000070C0C0C0C1C181818B8BE000000000055 +:101A80000000000000000000000080F0FCFCF8E016 +:101A90000000000000000000000000000000000046 +:101AA000F8D8C0E0000000000000000000000000C6 +:101AB0000000000000000000000000000000000026 +:101AC000000000C0C0000000000000000000000096 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B0000000000000000030E38E08000000000002C +:101B10000000000030E08000000000000000000035 +:101B2000000000020302031B0F0F0F0F0F7FFFFFC8 +:101B300000000000C060A0C0E0E0C0800000808025 +:101B4000FFBF7F3F3F3F1F1F0F253F7F1F0F0777BF +:101B5000C0C0E0E0E0E0E0E0F0F0F0F0D8D8DC8CED +:101B60000000000000000000000000000000000075 +:101B70000E0E070200000000000000000000000040 +:101B80000000000000000000000000010101010D44 +:101B9000000000000000000000000000E030D0E085 +:101BA00007070707070301030F0F1F1F0F07003F5A +:101BB000F0F0E0C0808080C0C0E0FDFFFFBE00000C +:101BC0001F0F37FE7F3F1EFC7FFF6F070301F0F002 +:101BD000800000000000000080E0F8F8FC7E6E3E0F +:101BE000F0E0E0E0C0C0C080800100000000000024 +:101BF0004C7C3C3878F87870F0F0F8F80000000081 +:101C000000000000010406030105070100000000B8 +:101C10000000000080A0A0E0C0C0C0C0C0E0F07024 +:101C20000000000080C040CD7F3F3F3F7F7EFFFF30 +:101C3000707038387070F0E0C08000000000000064 +:101C4000FFFFBF7F6F1D0981C3E0F8F04000000077 +:101C500080F8F8FFFFFFFFFFFFFF7678FD7D7D3BFB +:101C60000000000000000000000000000000000074 +:101C70000F03010000000000000000000000000051 +:101C80000000000003030302020604040C08081805 +:101C90000000000000000000000000000000000044 +:101CA0001010302020604040C080F0FEFFFFFFFF9A +:101CB0000000000000000000000000000080C0C024 +:101CC0005F050301000080C0E0F0F07838687C3CDC +:101CD000E0E0E0E0F0F070F0F8783C3C70200000CC +:101CE0001C1E0E1F0F0F0702020000000000000064 +:101CF00000000000808000000000000000000000E4 +:101D0000183D7D7830030F7FFFF6600604193F3FD2 +:101D1000D8FCFEDF1E1ECCE0E0C00000C6E7E2C03B +:101D20003F1F0703307C7E7E2C0000011B3F3F3F9E +:101D30008080983C3C7E7F3F1F0EC0E0F0F0F0E0DA +:101D40001F0F1F1E0C000000060F0F67FFFF6F061E +:101D5000C000003C7E7F3F7F3E0C00D8FCFC7E3FF5 +:101D600060F1F1600000030F1D1F0D010001000074 +:101D7000FFFEECC00000C0E0E0C00080C00000003A +:101D8000387D7D7D3C1F3F7FFFFFFF7F1F0F3F7F23 +:101D9000DCFEFFFFFFFEFEFCF0FCFEFFFFFFFFFE90 +:101DA0007F7F3F1F7FFFFFFFFF7F1F0F3F3F3F3FB3 +:101DB000F8F0FCFEFEFFFFFFFFFFFEFCF0F8F8F876 +:101DC0003F7F7F7F3F1F0301070F6FFFFFFF7F7F75 +:101DD000F0E0F8FCFEFFFFFFFFFFFEFCFEFEFFFF52 +:101DE0003F7F7F7F7F070F1F1F1F1F0F0703070FF7 +:101DF000FFFFFEFEFCE0F0F8F8F8F0E0000080C025 +:101E000000000000000000000000000000000307C8 +:101E1000000000000000000000000101023563CF57 +:101E2000CC3903140902170B000001000000000068 +:101E3000DEBC30DA9FDFB365E2F0F8FC3C7E361E94 +:101E4000000000010207030F0F070F0F050F4FA23D +:101E50007E7EBFFFFDF8F0E0C082C5F6DC88C8E4F6 +:101E600067B2781C5E3E1E020206040404060300EC +:101E7000F0F0F8F81C1C0C1C0C1C1C3878F0E0006E +:101E80000000010101010303070707070F0F0E1FE1 +:101E900000E0F0F0F0E0E0E0E0C0C0C08000000052 +:101EA0001F1F0F0F070707030301010000000000B9 +:101EB000008080C0E0F0F0F0F0E080000000000062 +:101EC00000000000070707070301000000000000F2 +:101ED0000000000103C1F9F8FCFEFF7F3F1F1F0F48 +:101EE000000000000000000000183C38080000005E +:101EF0000F0F0F070F0F0F0F0F0F03030307070736 +:101F00000000000000000101030303030707070F9F +:101F10000070F8F8F8F0F0F0F0E0E0E0C0C0808089 +:101F20000F0F07070303030101000000000000007A +:101F300080C0C0E0F0F0F0F0F0E000000000000031 +:101F40000030787C7F1F0703030303070707070799 +:101F50000000000080F8F8F0F0F0F0F0E0E0E0E0E1 +:101F6000070F0F0F1F3F3F7F3F3F3E7AF8FC7E3F3A +:101F7000E0C0C0C0800000000000000703010000B6 +:101F800000070F0F0F0F1F1F3F3E3E3E7C7C78F86F +:101F900000008080800000000000000000000000C1 +:101FA000F8FC7C7E3F3F3F1F1F0E0000000000003A +:101FB0000000000000000000000000000000000021 +:101FC000000000003F3F3F3F1F0F0F0707070703B9 +:101FD0000000000080808080C0C0C0E0E0E0E0E061 +:101FE000070707070F0F0F1F1F3F3F0F0F0F1F1F81 +:101FF000E0E0E0C0C0C0C0C0C0C0C0000080C0E021 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/battroad.zip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/battroad.zip new file mode 100644 index 0000000000000000000000000000000000000000..297a78eacdb438df6fb45d2fedc191a6803aca5f GIT binary patch literal 68780 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4c-a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4c-a.hex new file mode 100644 index 00000000..e25956f5 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4c-a.hex @@ -0,0 +1,258 @@ +:020000040000FA +:200000000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFF0 +:200020000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFD0 +:20004000FF80808080808080FF0101010101010180808080808080FF01010101010101FF96 +:20006000FF80808080808081FF0101010101018181808080808080FF81010101010101FF74 +:20008000000000000000000000000000000000000000000000000000000000000000000060 +:2000A000000000000000000000000000000000000000000000000000000000000000000040 +:2000C000000000000000000000000000000000000000000000000000000000000000000020 +:2000E000000000000000000000000000000000000000000000000000000000000000000000 +:2001000000000000000000001010101000001000282828000000000028287C287C28280057 +:20012000103C50381478100060640810204C0C0030485020544834003010200000000000E3 +:200140000810202020100800201008080810200000105438541000000010107C10100000DB +:2001600000000000301020000000007C0000000000000000003030000004081020400000C7 +:20018000384CC6C6C6643800307030303030FC007CC60E3C78E0FE007E0C183C06C67C0089 +:2001A0001C3C6CCCFE0C0C00F8C0F80C0CCC78003C60C0FCC6C67C00FEC60C1830303000B5 +:2001C00078C4E4789E867C007CC6C67E060C78000030300030300000003030003010200057 +:2001E000FCF8F0F0F0F0F8FC00007E007E0000003F1F0F0F0F0F1F3F3844040810001000BB +:200200003C4299A1A199423C386CC6C6FEC6C600FCC6C6FCC6C6FC003C66C0C0C0663C0024 +:20022000F8CCC6C6C6CCF800FCC0C0F8C0C0FE00FEC0C0FCC0C0C0003E60C0CEC6663E00A2 +:20024000C6C6C6FEC6C6C600FC3030303030FC000606060606C67800C6CCD8F0F8DCCE00BC +:20026000C0C0C0C0C0C0FE00C6EEFEFED6C6C600C6E6F6FEDECEC6007CC6C6C6C6C67C0006 +:20028000FCC6C6C6FCC0C0007CC6C6C6DECC7A00FCC6C6CEF8DCCE0078CCC07C06C67C00E2 +:2002A000FC30303030303000C6C6C6C6C6C67C00C6C6C6EE7C381000C6C6D6FEFEEEC600EC +:2002C000C6EE7C387CEEC600CCCCCC7830303000FCFC183060FCFC00000000000030300022 +:2002E000C080D895D50305073808080808083800FFFF0000FFFF00FFFF00FFFF0000FFFFDF +:200300000000000000000000000000000000000000000000000000000000000000000000DD +:200320000000000000000000000000000000000000000000000000000000000000000000BD +:2003400000000000000000000000000000000000000000000000000000000000000000009D +:2003600000000000000000000000000000000000000000000000000000000000000000007D +:200380007F7F7F7F7F7F7F7F3F3F3F3F3F3F3F3F1F1F1F1F1F1F1F1F0F0F0F0F0F0F0F0FFD +:2003A0000707070707070707030303030303030301010101010101010000000000000000E5 +:2003C00000000000000000000000000000000000000000000000000000000000000000001D +:2003E000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFC08000FFFFFFFFFF000000CF +:2004000001000000000001110000103070E0C08001FEFEFE000000000103060C10204080F8 +:2004200000081C1F0F070302001030E0C0800000FFFFFFFFFFFFFFFF1F9F8F0F0787C3E376 +:20044000FFFFFFFFFFFFFFFFE3E3C7C7E7E7CFCFFFFFFEF7EFDFBF7F9F1F3FFFFFFFFFFFED +:20046000FFFFFFFFFFFFFFFFC0C08000FFFFFFFFE0C08000FFFFFFFFC0C08000FFFFFFFF70 +:200480001F3F7FFFFFFFFFFF9FFFFFFFFEFCF8F0E1C3870707070707000040C0C1C3C7CF9E +:2004A0001F3F7FFFFEFCF8F0E0C2860606060606E0C08000000040C00707070F1F3F7FFF18 +:2004C000FEFCF8F0E0C28606C1C3C7CFDFFFFFFFFEFCF8F0E0C08000060606060707070FD8 +:2004E00000000000FEFCF8F0E0C08009193979F90707070F9FFFFFFFFEFCF8F1E1C3870758 +:20050000F9FBFFFFFFFFFFFFE0C2870F1F3F7FFFFFC3C7CFDFFFFFFFFEFCF8F0E0C080089B +:20052000070606060707070FFF000000FEFCF8F0183878F8F9FBFFFF00000000008080C02B +:20054000E0000000000000000000000000001018181C1E1E1F1F1F1F1F1F1F1F1F1F1F1FAF +:20056000000000000000000000000000000000000000000000000000000000406060707893 +:200580007878787878787878787878787878787800000000000000000000000000000000DB +:2005A0000000000000000000000000FEFFFFFFFF00000000008080C000001018181C1E1EE9 +:2005C000000000000000000000000000000000000000000000000040606070787878787853 +:2005E000008080C0E0E0F0F81F1F1FFFFFFFFFFF0000003F3F3F3F3F787878F9F9F9F9F9BB +:20060000FFFFFFFFFFFFFFFF3F3F3F3F3F3F3F3FF9F9F9F9F9F9F9F90707050404040404FB +:20062000000000000000000000000000000000000103070F0F0F0F0F000000000000000064 +:200640000F0F0F0F0F0F0F0F00000000000000000000000000000000000000000000000022 +:2006600000000000000000000101010101010101F8F9FBF7EFDFBF7F1F3F7FFFFFFFBF3FAB +:200680003E3D3B372F1F3F7FFFFFFFFFFFFFFFFFFFFFFFF7EFDFBF7FFFFFFBF7EFDFBF7F6D +:2006A000E0E0E0E0E0E0E0E0FEFDFBF7EFDFFFFFE0E0E0E0E0C0A060FFFFFFFFFFFFFFFF69 +:2006C0008787FFFFFFFFFFFF0000000000000F0F000000000000FFFFFFFEFFFFFBF7F2F81F +:2006E0000F0F0F0F0F0F0F0FFCFFFFFFFDFCFCFE0F0F000000000000FEF0E0E1F3FFFFFFD9 +:20070000FFFFFFFFF9F8FCE4FFFFFFFFDF8FCFFF0C3EFEF8E0861E3FFF9F0F1FFFFF7F7F09 +:200720007FFB73A79F9F9F917F7F7F373B3B3B9B071F7FFFFFFFFFFF9981C1E3F3FFFFFF69 +:20074000F8F8F8F8F8F8F8F8FFFF000000000000F8F8000000000000000000000000F8F8FB +:20076000FBF9F8F0E1C181090000000000000000FBF9FCFEFFFFFFFFEFCF9F3F7FFFFFFF6F +:200780000301000000000000E0C0800000000000FFFFFFFEF10FFFFF808000008080C0C0BC +:2007A000FFFFFFFFFFFEFDE3C0C0C080800080801FFEFCE8102040800000000000000080AF +:2007C000000000000000000100000000000000000101000001010303FFFFFF7F8FF0FFFF15 +:2007E0000303030101000101FFFFFFFFFF7FBFC73C7E7E1E3E3C1C00FFFFFFFFFFFFFFFF08 +:2008000000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:20082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:2008400000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:20086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:2008A00001010101010101010404040404040404010000000000000004000000000000000B +:2008C000202020202020202080808080808080802000000000000000800000000000000078 +:2008E00000040404040400000020202020200000000000010101010100000004040404042B +:200900000000002020202020000000808080808000000000000000000000000000000000B7 +:20092000000000000000000000000000000E1E3E00F1FFFFFFFFFFFF7CFCFCF8F9F9F1F320 +:20094000FEFFFFFFFFE71FFF13E3E7E7C7C8CF8F0000071F3F3F1F1FFFFF1F0F0783C1C1CD +:200960004FEFFFFBF9F9F1F1E0E0F0F0F8F8FCFCF0F0E2E7C7C7CF8FF0EE5F5F3FBF9FDF36 +:20098000FFFFFFFFFFE71FFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFE3DFBFBF3F3F3F3F1F1EED +:2009A0000D0B07078383C1C1FEFCF8F0E0C08000FEFCF8F0E0C08107FFFEFCF8F0E0C0807C +:2009C0000000000000000000000000000000000000000103070E1C38302103070F1F3F7F63 +:2009E000BF3F7FFFFFFFFFFF00000000000000000000000000000000000000FCFCFCFCFC93 +:200A00000000000F0F0F0F0F00000001010101010101010101010101010101010101010176 +:200A20000101010101010307FCFCFCFCFCFCFCFC0F0F0F0F0F0F0F0F1F3FFFFFFFFFFFFFF6 +:200A4000FCFCFFFFFFFFFFFF393173E7C7CF9F1FFFFFFFFF00000000000000000000000090 +:200A60000000000000000000000000FF00000000FFFFFFFFFFFFFFFF0300FFFFFF00FFFF81 +:200A800080FFFFFFFE00FFFF01FFFFFF00FFFFFF010103010506060EC0C08080000000003D +:200AA0000E1C1C3C387830100000000000000000101F1F1F0F03FFFF01F0F0F0E080FFFF18 +:200AC000010103010506060EC0C08080000000000E1C1C3C387830100000000000000001FE +:200AE000111F1F1F0301FFFFF0F0F8C080FFFFFFFF00000000000000FF0000000000000073 +:200B00000103010506070E0EC0808000000000001E1C3C3C7838101100000000000001F06E +:200B20001F1F1F0301FFFFFFF0F8C080FFFFFFFFFF02020203030303FFA0A02060E0E0E0C3 +:200B400003010506060E0E1C80800000000000001C3C38783010111F000000000001F0F0EF +:200B60001F1F0301FFFFFFFFF8C080FFFFFFFFFFFF0000000000000006060E0E1C1C3C3831 +:200B8000010506060E0E1C1C80000000000000003C38783010111F1F0000000001F0F0F81B +:200BA0000106060E0E1C1C3C000000000000000038783010111F1F1F00000001F0F0F8C0A1 +:200BC000010000FFFFFFFF000000FFFFFFFFFF00783010111F1F1F03F87F3F070000000037 +:200BE0000102040810204080FFFFFFFFFFFFFFFFFEFDFBF7EFDFBF7F8685FBF7EFDFBF7FFC +:200C00000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFE4 +:200C20000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFC4 +:200C400000000000000000000000000000000000C0C08000FFFFFFFF800000000000000018 +:200C6000FFFFFFFFFFC78341FFFFFEFCFCF4E6E2F8E1C1C060301D0FE0F1FFFF7F3F1F8FED +:200C8000E3C3C1C1E1F3F3FF0F0180C0E0F0F8FF8FC70301010307FFF3E7CE9C393173E7E3 +:200CA000C0C0800000000000F8F9F3E3E7CE8C9C383070E0C0C080000000000000000000D8 +:200CC000FFFEFEFCF8F9F1E1E1C08080000000000000000000000000FFFFFFFFFFFEFEFCC6 +:200CE000F9F9F3E3E7CE8C9C383070E0C0C080000000000000000000FFFEFEFCF8F9F3E3D9 +:200D0000E7CE8C9C383070E0C0C0800000000000383070E0C0C08000E7CE8C9C383070E4ED +:200D2000C0C0800000000000F8F9F1E1E1C080800000000000000000E6CE8F9F3F3F7FFF71 +:200D40003F7FFFFFFFFFFFFFF8F9F3E3E7CF9FBF7F7F7F7F7F7F7F7FFFFFFFFFFFFFF3E13A +:200D6000FFFFFFFFFFFFFEF9C0E0E0800080C080F0F0FCF4E0F0F0D0000000000000000062 +:200D800080C0F0200000000000000000000000000000000000000000000000000000000003 +:200DA000000000000000000000000000000000000000000000000000000000000000000033 +:200DC000FFFFFFFFFFFFFFFF00000000000000000000000000000000FCF8F0F5FFFEFAF05B +:200DE00000C0C00000000000F8FCFEF4E0B0C0E00103030707070707F0E0C0E0C0C0808043 +:200E000000FFFF0000000000FEFEFEFEFEFEFEFE00FFFF0000000000FEFFFFFEFEFEFEFCF6 +:200E20000000010307060606F898980C0E0606060F0F0F0F0F0F0F0FFFFFFFFFFFFFFFFFD1 +:200E40000000000000000000030303030303030300FCF8000000000003030303030303036E +:200E600000000000000000000302060C1C181818FFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0FF +:200E8000F8F8F8F8F8F8F8F80000000000000000F8F8F8F8F8F8F8F00000000000000000DA +:200EA000E0606030381818181FFFFF1F1F1F1F1FC0C0C1C0C0C0C0801F133361E1C0C0C082 +:200EC00000000080C0C0C0C000000000000000000000000000000000000000000000000092 +:200EE0000000000000000000000000000000000000000000000000000000000000000000F2 +:200F00000000000000000000000000000000000000000000000000000000000000000000D1 +:200F2000000000000000000000F9F3000000000000C1E30000000000000000000000000021 +:200F4000000000000000000000000000000000000000000000000000000000000000000091 +:200F6000000000000000000000000000000000000000000000000000000000000000000071 +:200F8000C0C0C0C0C0C0C0C00000000000000000C0C0C0C0C0C0C08000FF7F000000000013 +:200FA000C0C0C0C0C0C0C0C00000000000000000C0C0C1C0C0C0C08000FF7F0000000000F2 +:200FC0001F1F1F1F1F1F1F1FC0C0C0C0C0C0C0C0FFFFFFFFFFFFFFF7C0CFC7C0C0C0C08053 +:200FE000EECC009EBBFE5C0C0103070F1F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:20100000FFFFFFFFFFFFFFFFCFAF7F5F0F8FAFFFE0FF7F1038F0D8F0B0B81CB81C3C761EAA +:20102000FFFFFFFFFFFFFFFEFFFFFFFFFFFF8F07F8E0FFFFFFFFFFFFFFFFFFFFFFFFFF7FDF +:20104000000000040C1E3E7F00000103060C1830FFFBF1F3FFFCF8FD60C080808080C0C0D9 +:201060007FFFFF3F3F7FFFFFC0E0E0E0F0F0F0F87F7F3F3F3FFFFFFFF8F8FCFCFCFEFEFE3A +:2010800000000000000000007F7F3F3F3F1F1F1F00000000000000000F0F0F0707070303F0 +:2010A000FFFFFFFFFFFFFFFF03818181C0C0C0E0FFFF000000FFFFFFE0E0000000FFFFFFDA +:2010C000FFFFFFFBF3E3C383000103070F1F1F1E00000000000000000C0C0E060707030346 +:2010E000FFFEFCF8F0FFFFFF03010101000000000303000000FFFFFF00000103060C1810CB +:20110000C0E0F0F8FCFEFFFF00000000000080C0FFFFFF7F3F1F0F03E0F0F8FCFFFFFFFF63 +:201120000100000000FFFFFFFFFF7F3F3FFFFFFF0000000000000C1E0000000103070F1F56 +:201140003F7DF8FCFFFFFFFF00C0603078FCFEFFFF3F1FBFFF7F3F1FF8FC000000FFFFFF39 +:201160000F07030000000000FFFFFFFF7F3F1F0FE0F8FCFEFFFFFFFF070100000080C0F068 +:201180001E0C0603010000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:2011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF870FFFFFB7 +:2011C000FFFFFFFFFFFFFFFFFFF0E1FFFFFFFFFF00000001010101012060E0E0E0E0E0E087 +:2011E0000141C1C1C1C1C1C1E0E0F0F8ECC68301C0C0E0F0D8CC860300000000000000804C +:20120000C06030180C06030100000000000000800000000000000000C06030180C06030152 +:2012200080C06030180C06030100000000000000010000000000000080C060341C0C0607A6 +:201240000000000000000000010101010101000000000000000000000000040C183878F0C0 +:201260000000000000000000F0F0E0E0E0FFFFFF010101030303070700003070E0E0E0C0D7 +:20128000C0C080808000000000000000000000800000000000000000C060000000010307A3 +:2012A00080C06020000000000F1F3F7F7FFFFFFF0101010303030707FEFEFCFCFCF8F8F814 +:2012C000070F0F0F1F1F1F3FF0F0F0E0E0E0C0C03F3F7F7F7FFFFFFEC08080800000000017 +:2012E000070F0F0F1F1F1F3FFFFFFFFFFFFFFFFF3F3F7F4000FFFFFFFFFFFF0000FFFFFFF2 +:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFF6D +:20132000603010180800000018080C040000000000000000000000000000000000000000BD +:2013400000000000000000000000000000000000000000000000000000000000000000008D +:2013600000000000000000000000000000000000000000000000000000000000000000006D +:20138000800000000103070F0F1F7FFFFFFFFFFF3F7FFF0000FFFFFFFFFEFCF8F0E0C000D0 +:2013A000FEFCF8F0E0FFFFFF0000000000FFFFFF00000001010101012060E0E0E0E0E0E0AC +:2013C000E0E0E0E0E0C08000C0C0C0C0C0C080000103070F1F3F7FFFFFFFFFFFFFFFFFFF7F +:2013E000FFFFFFFFFFFFFFFF0777FFFFFFFFFFFFFFFFFFFFFFF8F0FFFFFFFFFFFFFFFFFFA3 +:20140000FFFFFFFFFEFCFFFFFFFFFFFF1F3FFFFFFFC387FFFFFFFFFFFFFFFFFFFFFFFFFF44 +:201420007FDF8F9F3F7DEF72BFFFFF7FFFBFFF5FFEFEFCFCFCF8F8F80000000101010101CE +:201440002060E0E0E0E0E0E000000080C06020300141C1C1C1C1C1C1E0E0E0E0F0D8880C38 +:20146000E0E0F0D8CCC4C683060301010000000001000000000000008080C0603010180C7B +:2014800030180C040603010000000000000080800C060203010000000000000484C44464DE +:2014A00060C0800000000000FFFFFFFF1F0F4FFFFFFFF8E0E0FFFFFFFF0F070777FFFFFFD1 +:2014C00000000000000000000000000000000000000000000000000000000000000000000C +:2014E0000000000000000000000000000000000000000000000000000000000000000000EC +:201500000000000000000000000000000000000000000000000000000000000000000000CB +:2015200000000000000000000000000000000000001C3E3E3E3E3E3E3E22000000000000BB +:201540000000000008007A04080000000000000000000103070E1C1C70E0C080103070E08C +:201560001D1F1F1E1C1C0C0CC080000000000000FCFCFCFCF8F8FFFF0F0000000000FFFF77 +:20158000FCF8F8FCFFFFFFFF03010103FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:2015A000FF07030303030383FFFFFFFFFFFFFFFF878F9FBFFFFFFFFF0000000000000038F3 +:2015C00000000000000303070018204080C080C00F5EFBF3470C1800C08080000000000080 +:2015E000FFFFFFFFFCF0F9FFFFFFFF1F0F5FFF3FFCFEFFFEF4F9FFFF3FFF9F0F0FEFFFFF79 +:20160000FFFFFFFFEFF6F0F5FFFFFFFF9F0F6F6FF5F5F5F4F8FFFFFF6F6F2F8F1FFFFFFFFC +:20162000FFFFFFFFFCF8FEFEFFFFFF1F0FFF1F0FFCF8FCFCF8F1FFFF4FDF9F0F07EFFFFFC3 +:20164000FFFFFFFCF8FEFCF8FFFFFFFF5F0F2FFFE3FFFDF9F9FBFFFFBF4FE7E7C7EFFFFFB5 +:2016600000000000000000000080C0E0E0E0E0C00000000000000000C0C0808080000000EA +:2016800000000000000001010F3F3F7FFFFFFFFF03030707070F0D1EFFFFFFFFFFFFFEFEF5 +:2016A000173B7D7EFFFFFFFF7CB8F8F060C0C0C0FFFFFFFEFEFCFCF88000000000000000BC +:2016C000070F1F3FFFFFFFFF0000000000010307FFCFF7FBFAFC3EDE1F3FFFFFFFFFFFFF65 +:2016E000EFF7FBDD9EE7FBFD0000000000010307FEF0EFFFFFFFFFFF0F7FFFFFFFFFFFFF44 +:2017000000000001010303033F3F3F7F7F7F7FFF03070707070707070000000000010307C7 +:201720000707070F0F0F0F0FF0F0E0E0E0E0C0C00F0F0F1F1F1F1F3FC0C000808000000001 +:20174000FFFFFFFFFFFFFCFFFFFFFFFEFDE31FFEFFFFFFFFFFFFF8FFFEFCF8FCD838F0E0DD +:20176000FFFFFFFEFC7983FFE0C0800000000000FFFFFFFFFEFCE000FFFFFFFFFFFFFFFE8A +:20178000FFFFFFFFFFFFFEFEFEFCF8F8F0F0E0E0FCFCFCF8F8F8F0F0C0C08080000000008D +:2017A000F0E0E0E0C0808000000000000000FFFF0C0C1C1C18181F1F848C8C8C8E8E8480D5 +:2017C0001C18181C1E0E0E0E030101033B3323030E1C1C1800000000030301010000000057 +:2017E0000000000000000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:201800000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFD8 +:201820000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFB8 +:2018400000000000000302020000007CC683000006041D09090909090000D1555555554AF9 +:201860000902020301000000CA000001C77C38000000000000808080000000000000000091 +:20188000C040304848784848488080800000000000000000000000000000000000000000B8 +:2018A000000000000000000000000000000000000000000000000000000000000000000028 +:2018C000C0C0C0800000000000000000000000000000000000000000000000000000000048 +:2018E0000000000000000000000000000000000000000000000000000000000000000000E8 +:2019000000000000000000000C0C18100060600000000000000000000000000000000000C7 +:20192000000000000000000000000000000000000000000000000000606020400000000087 +:20194000000000000000000000000000000000000000000000000000000000000000000087 +:2019600000000030301020000000007C7C000000000000000030300000000000000000007F +:20198000384CC6C6C6643800307030303030FC007CC60E3C78E0FE007E0C183C06C67C0071 +:2019A0001C3C6CCCFE0C0C00F8C0F80C0CCC78003C60C0FCC6C67C00FEC60C18303030009D +:2019C00078C4E4789E867C007CC6C67E060C780000000000000000000000000000000000BF +:2019E0000000000000000000000000000000000000000000000000000000000000000000E7 +:201A00000000000000000000386CC6C6FEC6C600FCC6C6FCC6C6FC003C66C0C0C0663C007C +:201A2000F8CCC6C6C6CCF800FCC0C0F8C0C0FE00FEC0C0FCC0C0C0003E60C0CEC6663E008A +:201A4000C6C6C6FEC6C6C600FC3030303030FC000606060606C67C00C6CCD8F0D8CCC600D8 +:201A6000C0C0C0C0C0C0FE00C6EEFEFED6C6C600C6E6F6FEDECEC6007CC6C6C6C6C67C00EE +:201A8000FCC6C6C6FCC0C0007CC6C6C6DECC7A00FCC6C6CEF8DCCE0078CCC07C06C67C00CA +:201AA000FC30303030303000C6C6C6C6C6C67C00C6C6C6EE7C381000C6C6D6FEFEEEC600D4 +:201AC000C6EE7C387CEEC600CCCCCC7830303000FE0E1C3870E0FE00000000000000000054 +:201AE0000000000000000000000000000000000000000000000000000000000000000000E6 +:201B00000000000000000000000000000000000000000000000000000000000000000000C5 +:201B20000000000000000000000000000000000000000000000000000000000000000000A5 +:201B4000000000000000000000000000000000000000000000000000000000000000000085 +:201B6000000000000000000000000000000000000000000000000000000000000000000065 +:201B8000E0E0C0C0C08080800303030303030101FFFFFFFFFFFFFEFEFFFFFFFFFFFFFF3F83 +:201BA000FFFFFFFFFFFFFFFFFFFEFEFEFCF8F0C07F3F3F3F3F3F3F3FC0C0C0C0C0C0C0C058 +:201BC0001F1F1F1F1F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:201BE000F0F0F0F8F8F8F8F83F1F1F0F07030301F0F8FCFCFEFFFFFF0000000000000000C8 +:201C0000000000000101010300000000C0C1C3C700000000EEEECE8E000000003B3B3B3B8F +:201C20000000000083838383000000008F9FBFBC00000000F8F8F8000000000007070707EB +:201C400000000000FEFEFE0000000000E3E3E3E300000000808080800303030303030707DE +:201C6000878E9EBCF8F0F8F81E1C1C1C1C1C1C1C3B3B3B3B7B73777783C3C3E3E3F7F77F37 +:201C8000B8B8B8B8B8B8387800000000F8F9F9390707070707E7E3E300000000FCFCFC80DD +:201CA000E3E1E1E1F1717171C0C0C0C0C0C0C0C0000000000000FFFF000000000000F0F07C +:201CC0000000000000003F3F07070707070FFEFEBC1C1E0F070707033C38383C3FBFFFFF57 +:201CE000777777F7F7F7E7C73F3F1F1F0F0F071F70707070797FFFFF383878F8F8F8F9FD70 +:201D0000030303030303FFFF808080808080FFFF71717070797FFFFFC0E0E0E0E0E0FFFFDF +:201D2000000000000000FFFF000000000000F3F3000000000000FCFF0001010103030707AD +:201D4000FFFFFFFFFFFFFFFFF0F0F0F0E0E1E1E17F7F7FFFFFFFFFFFFCFCFCFCF8F8F8F800 +:201D60000307070F0F0F1F1FFFFFFFFFFFFFFFFF8080C0C0C0C0C0C03F3F7F7F7F7F7F7FF7 +:201D8000FFFFFFFFFFFFC180FFFFFFFFFFFFFFFFFFFFFFFFFFFF0101FFFFFFFFFFFFFEFE1E +:201DA000FFFFFFFFFFFF0101FFFFFFFFFFFFFEFFFFFFFFFFFFFF0000F3F3FBFBFBF9010164 +:201DC000FFFFFFFFFFFF1F0F80C0E0E0F0F0F0F8070F0F0F1F1F3F3FFFFFFFFFFFFFFFFF2B +:201DE000E3E3C7C7C7CFCFDFFFFFFFFFFFFFFFFFF8F8F0F0F0F0F0F03F3F3F7F7FFFFFFF0B +:201E0000FFFFFFDFDF9F9F9FC0E0E0E0E0E0E0E0FFFFFFFFFFFFFFFF8080000080C0FFFF14 +:201E2000FFFF00000000E0F80101010000000000FEFEFFFFFFFFFFFF0100000000000000D2 +:201E4000FFFFFFFFFFFFFFFF000000000000FFFF010101000000E0E0FEFEFFFFFFFFFFFFD3 +:201E600007070303070FFFFFF8F8FCFCFCFCFCFC00000000000001013F7F7F7FFFFFFFFFA8 +:201E8000FFBFBFBFBF3F7F7F9FBFBFBFFFFFFFFFFFFFDFDFBFBFBF3FE1E1E3E3E3E7C7CF12 +:201EA000FFFFFFFEFEFEFCFF1F1F0F0F0F0F0FFFF0F0F0F0F0F0F0F87F7F7F3F1F0700003E +:201EC000FFFFFFFFFFFF0701FCFEFEFFFFFFFFFFFFFFFFFFFFFF7F7F000000008080808015 +:201EE0007F7F7F7F7F7F7F3FFFFFFFFFFFFFC0C0E0F0F0F0F0F00000FF7F7F7F7F7F7F3FE8 +:201F0000FFFFFFFFFFFFDFDFF8F8F8F0E0E0F0F80103030307070F0FFEFEFEFCFCFCFCF871 +:201F20007F7F7F7F7F7F7FFFFFFEFEFEFCFCF8F83F7F7F7F7F7FFFFFCFCFDFDFBFBFBFFFF8 +:201F4000FFFFFFFFFFFFFFE0FFFFFFFFFFFFFF07F8F8F8FFFFFFFFFF000000F8F8F8F8FCE9 +:201F60000000000000010103FFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F808080808080C0C0EC +:201F80003F3F3F3F3F3F1F1FC0C0C0C0E0E0E0E03F3F3F3F3F1F1F1FCFE7E7E3E1E0F0F050 +:201FA000FCFCFEFFFFFFFF7F0000000080C0C0E00F1F1F1F3F3F3F3FF8F8F0F0F0F0E0E0F8 +:201FC000FFFFFFFFFFFFFFFFF8F0F0E1E1E1C1C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:201FE0000000000000000000000000000000000000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4d-a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4d-a.hex new file mode 100644 index 00000000..c57078fd --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4d-a.hex @@ -0,0 +1,258 @@ +:020000040000FA +:2000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:2000200000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:20004000FF80808080808080FF0101010101010180808080808080FF01010101010101FF96 +:20006000FF80808080808081FF0101010101018181808080808080FF81010101010101FF74 +:20008000000000000000000000000000000000000000000000000000000000000000000060 +:2000A000000000000000000000000000000000000000000000000000000000000000000040 +:2000C000000000000000000000000000000000000000000000000000000000000000000020 +:2000E000000000000000000000000000000000000000000000000000000000000000000000 +:200100000000000000000000000000000000000000000000000000000000000000000000DF +:200120000000000000000000000000000000000000000000000000000000000000000000BF +:2001400000000000000000000000000000000000000000000000000000000000000000009F +:2001600000000000000000000000000000000000000000000000000000000000000000007F +:2001800000000000000000000000000000000000000000000000000000000000000000005F +:2001A00000000000000000000000000000000000000000000000000000000000000000003F +:2001C00000000000000000000000000000000000000000000000000000000000000000001F +:2001E0000000000000000000000000000000000000000000000000000000000000000000FF +:200200000000000000000000000000000000000000000000000000000000000000000000DE +:200220000000000000000000000000000000000000000000000000000000000000000000BE +:2002400000000000000000000000000000000000000000000000000000000000000000009E +:2002600000000000000000000000000000000000000000000000000000000000000000007E +:2002800000000000000000000000000000000000000000000000000000000000000000005E +:2002A00000000000000000000000000000000000000000000000000000000000000000003E +:2002C00000000000000000000000000000000000000000000000000000000000000000001E +:2002E00000000000000000000000000000000000FFFF00000000FFFFFF000000FFFFFFFF07 +:200300000000000000000000000000000000000000000000000000000000000000000000DD +:200320000000000000000000000000000000000000000000000000000000000000000000BD +:2003400000000000000000000000000000000000000000000000000000000000000000009D +:2003600000000000000000000000000000000000000000000000000000000000000000007D +:20038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:2003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000055 +:2003C00000000000000000000000000000000000000000000000000000000000000000001D +:2003E000E0E0E0E0E0E0E0E00000000000000000E0E0E0E0E0C0800000000000000000005D +:2004000000070F1F3F7FFFEF00F0F0F0F0E0C080FF00000000000000010302040000000012 +:2004200000081C1F0F070303001038F8F0E0C0C0FFFFFFFFFFFFFFFFFFFFFFF7FBF9FCFCF5 +:20044000FFFFFFFF7F7F7F3FFCFCF8F8F8F8F0F01F0F070810204080E0E0C000000000007F +:20046000000000FFFFFFFFFFDFFFFFFF000000FFDFFFFFFF000000FFFFFFFFFF000000FFD0 +:20048000FFFFFFFFFEFCF8F080C080000103070F1F3F7FF7E7C78707E0C0C0C0C0C0C0C074 +:2004A000000000000103070F1E3E7EF6E6C686061E3C78F0E0C0C0C006040000000000002E +:2004C0000002060E1E3E7EF6C0C0C0C0C0C080000103070F1E3C78F0E6C686060604000018 +:2004E000000000000002060E1E3E7EF7E7C7C7C70604000080C080000002060F1F3F7FF724 +:20050000C6C4C0C0C0C080001E3E7FFFFFFFFFFFFEC0C0C0C0C080000103070F1E3E7EF6D3 +:20052000E7C6860606040000FF0000000002060EE6C6C6C6C6C4C0C000000000008080C061 +:20054000E000000000000000000000000000000000000000000000000000000000000000BB +:2005600000000000008080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00000000000000000BB +:20058000000406060606060606060606060606060000000000000000000000000000000003 +:2005A0000000000000000000000000FEFFFFFFFF00000000008080C0000000000000000081 +:2005C000008080C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000000406064B +:2005E000008080C0E0E0F0F8000000E0E0E0E0E0C0C0C0FFFFFFFFFF060606878787878743 +:20060000E0E0E0E0E0E0E0E0FFFFFFFFFFFFFFFF8787878787878787F8FCFEFFFFFFFFFFBD +:20062000000000000103070F000040C0C0C0C0C01E3C78F0F0F0F0F0C0C0C0C0C0C0C0C01E +:20064000F0F0F0F0F0F0F0F0E1C3870F1E3C78F0C0C0800000000000E0C0800000000000FE +:200660000103070F1F3F7FFF0103070F1F3F7FFF060503F7EFDFBF7F0000040F1F3F7FFF8E +:20068000FEFDFBF7EFDFBF7F00000000008080C0E0E0F0F0E8DCBE7EF8FCFAF6EFDFBF7F11 +:2006A000FFFFFFFFFFFFFFFFFEFDFBF7EFDFFFFFFFFFFFFFFFDFBF7FFFFFFFFFFFFFFFFF79 +:2006C000FFFFFFFFFFFFFFFF00000000000000000000000000000000FFFFFFFFFFFFFFFF2A +:2006E0000303030303030303FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFF2 +:20070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:20072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:20074000E0E0E0E0E0E0E0E000000000000000000000000000000000000000000000000099 +:20076000FCFEFFFFFFFDF9F1FEFCF8F0E0C08000FCFEFFFFFFFFFFFF1F3F7FFFFFFFFFFFCD +:200780000406030100000000103060C080000000FEFCE0010FFFFFFF000000008080C0C004 +:2007A000FFFFFFFFFFFFFEFCFFFFFFFFFFFF7F7FE00000000000000000000000000000006D +:2007C0000000000000000000FF0000000000000000000000010103037F3F0780F0FFFFFFE0 +:2007E000FFFFFFFFFFFFFEFEFFFFFFFFFFFF7F3F00002030343C1C00FFFFFFFFFFFFFFFF77 +:2008000000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:20082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:2008400000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:20086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:2008A000FEFEFEFEFEFEFEFEFBFBFBFBFBFBFBFBFE00000000000000FBF8F8F8F8F8F8F8AF +:2008C000DFDFDFDFDFDFDFDF7F7F7F7F7F7F7F7FDF1F1F1F1F1F1F1F7F00000000000000F1 +:2008E000F8FBFBFBFBFBF8F81FDFDFDFDFDF1F1F000000FEFEFEFEFEF8F8F8FBFBFBFBFBAC +:200900001F1F1FDFDFDFDFDF0000007F7F7F7F7F000000FFFFFFFFFF1F1F1F1F1F1F1F1FB1 +:200920000000000000000080000000000000010180F1FFFFFFFFFEFE0383830707070F0F90 +:20094000FEFCFCFCF8E018F00F0F171F3F383F7F0000000000006060FFFFFFFFFF7F3F3F84 +:200960003090C08406060E0E1F1F0F0F070703030F0F1D1C3E3E3F7F00018080C0406020C9 +:20098000FEFCFCFCF8E018F0F9F0F0F0F0FCFFFFFFFFFFFF3F0F030000008080F0FCFFFE9C +:2009A000FD1BE7FF7F7F3F3FFEFCF8F0E0C08000FEFCF8F0E0C08000FFFFFFFFFFFFFFFFC1 +:2009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:2009E00040C0800000000000C0C0C0C0C0C0C0C00303030303030303030303030303030347 +:200A0000C0C0C0C0C0C0C0C0F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F98E +:200A2000F9F9F9F9F9F9FBFF0303030303030303C0C0C0C0C0C0C0C0DFFFFFFFFFFFFFFFF6 +:200A4000FFFFFFFFFFFFFFFFC6CE8C18383060E0FFFFFFFFFFFFFF00FFFFFF0000000000C8 +:200A600000000000FFFFFF00000000FFFFFFFF00FFFFFFFF000000008000000000FFFFFF04 +:200A80000000000001FFFFFF00000000FFFFFFFF1E3E201C787878F000000000000000006C +:200AA000F0E0E0C0C080C0E0000101030307070FE0E0EEC78100FEFF0E0FEFC70300FFFFFA +:200AC0001E3E201C387878F00000000000000000F0E0E0C0C080C0E00001010307070F0EE6 +:200AE000E0E0EFC18000FFFF0FEF870301FFFFFFFF00000000000000FF7D370403000000C9 +:200B00001E201C38787870F00000000000000001E0E0C0C080C0E0E001030307070F0E0F71 +:200B2000E0EFC18000FFFFFFEF870301FFFFFFFFFF75DD95F43C0C00FF575DD4971E1800BC +:200B4000201C38787870F0E00000000000000101E0C0C080C0E0E0E0030307070F0E0FEF80 +:200B6000EFC18000FFFFFFFF870301FFFFFFFFFFFF5FF690C00000007878F0F0E0E0C0C00F +:200B80001C38787870F0E0E00000000000010103C0C080C0E0E0E0EF0307070F0E0FEF87EA +:200BA0007C7878F0F0E0E0C00000000001010303C080C0E0E0E0EFC107070F0E0FEF87035E +:200BC000DF8301000000FF00C38100000001FF0080C0E0E0E0EFC180070000000000000058 +:200BE0000000000000000000FFFFFFFFFFFFFFFFFEFDFBF7EFDFBF7FFEFDFBF7EFDFBF7F0B +:200C000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:200C200000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:200C4000F8F8F8F8F8F8F8F800FFFFFFFFFF0000DFFFFFFF000000FF80000000000000007E +:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F1E3C6CE8C186C +:200CA000383040C0C0C0C0C0FFFEFCFCF8F1F3E3C7CF8F1B3B3363E3C3838303030303034C +:200CC000FFFFFFFFFFFEF8F8F8F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8FFFFFFFFFFFFFFFFB0 +:200CE000FEFEFCFCF8F1F3E3C6CE8C18383060E0C080800000000000FFFFFFFFFFFEFCFCB0 +:200D0000F8F1F3E3C6CE8C18383060E0C0808000C6CE8C18380040C0F8F1F3E3C7CF8F1B05 +:200D20003B3373E3C3C38303FFFEF8F8F8F9F9F9F9F8F8F8F8F8F8F8FFFFFFFFFFFFFFFF5A +:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0D7DCC7FDC1FFFFFFFFFFFFFFFFEFB5 +:200D6000FFFFFFFFFFFFFEFFF7F3E0F9DDFFFAB0FDFFFFFEFFFDFFFA80C080A070F95F56C7 +:200D8000FEFBF1F9FCBEF74EBBDF73ED5B010000970F070E2EFBEFDD00000000000000006B +:200DA00065AED8600000808382C60F1F7EFDDF8A0FDDEFF6EC7927BF86C00000E1F173DF05 +:200DC000FF41DF711DF505FFFFFFFFFFFFFFFFFFFFFFFFFDE8C0D0F803050E0A0001050FD6 +:200DE0009000000000000000070300081C0F3BDF0103030707070707CD9DB89D383C6E78C9 +:200E0000FF000000000000800707070707070707FF000000000000000704040606060707ED +:200E2000000001030707070707FFFFFFFFFFFFFEFFFAFAFBF8FFF8FFFF08FB8EE3BE20FF67 +:200E4000FFF3F9F8FDFBFFFFFCFCF0E0F0D00080FE00000000000000800000000000000033 +:200E6000C0C0C0C0C08000000003070F1F1F1F1FE020E020A0A0A0E0FFFFFFF7D7C3C5C1C9 +:200E80001F1F1F1D18181818FFDF8F773F7BF1381818181818181C1E3908000000000000A6 +:200EA0001FFFFFFFFFFEFCF8E000000000000000C1C0C0C0C0C0E0F0001F3F7FFFFFFFFF1B +:200EC000F8F8F8F8F8F0E0C0000000000000000000000000000000000000000000000000AA +:200EE0000000000000000000000000000000000000000000000000000000000000000000F2 +:200F0000000000000000000000000000000000000000000000000000FFFFFFFDF7E3D1C06C +:200F2000FFFFFFFFFAF8F4C0E00000000000000080000000000000000000000000000000AF +:200F4000000000000000000000000000000000000000000000000000000000000000000091 +:200F6000000000000000000000000000000000000000000000000000000000000000000071 +:200F8000FFFFDFDFCBC7C3C5FFFFFFFFDFFFB727C0C0C0C0C0C0E0F07F00000000000000F4 +:200FA000FFFFFFDFDBD1C3D7FFFFBF1783C5EFFFCBC0C0C0C0C0E0F07F000000000000002B +:200FC000E0E0E0E0E0E0E0E0FFF8FCF6E3C1C3C30000000000003078C7C0C0C0C0C0E0F0FF +:200FE000FDFBE7DFBBFF5F2DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:201000000000000080C0E0C0FFFAFAFBF8FFF8FFFFC00050F8F4F8F0F0F8BCF8BCFCFEFEE1 +:20102000BF87808080808081FDE10101010171F9879F80808080C0F8FFFFFFFFFFFFFF7FC7 +:20104000000000FFFFFFFFFF000000FCF9F3E7CFFFFFFEFCF9F3E7CF000000808080C0C05D +:201060009F3F7FFFFFFFFFFFC0E0E0E0F0F0F0F87D7B372F1FFFFFFFF8F8FCFCFCFEFEFE98 +:2010800000000000000000007F7F3F3F3F1F1F1FFCFCFCFEFEFEFFFF0F0F0F070707030304 +:2010A000FFFFFFFFFFFFFFFF03818181C0C0C0E0FFFF000000FFFFFFE0E0000000FFFFFFDA +:2010C000FFFFFFFBF3E3C383000103070F1F1F1F00000000000000000F0F0F07070703033D +:2010E000FFFEFCF8F0FFFFFF03010101000000000303000000FFFFFF000000000000000009 +:20110000C0E0F0F8FCFEFFFF00000000000080C0FFFFFF7F3F1F0F03FFFFFFFFFFFFFFFF2B +:201120000100000000FFFFFFFDFB772F1FFFFFFF0000000000000C1E0000000103070F1F94 +:201140003F7FFFFFFFFFFFFF00C0E0F0F8FCFEFFFFFFFFFFFF7F3F1FF8FC000000FFFFFF8D +:201160000F07030000000000FFFFFFFF7F3F1F0FE0F8FCFEFFFFFFFF070100000080C0F068 +:201180001F0F07030100000080C0E0F0FCFEFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFE1D +:2011A000FFFFFFFF00FFFFFFFDFBF7EF1FFFFFFFFFFFFCFBF7EFDFBFFFFF00FFFFFFFFFFCA +:2011C000FFFEFDFBF0FFFFFF7FFFFFFF00FFFFFFFFFFFFFEFEFEFEFEDF9F1F1F1F1F1F1F89 +:2011E000FEBE3E3E3E3E3E3E1F1F0F0713397CFE3F3F1F0F273379FCF8F8F8F8F8F8F878EA +:201200003898C8E0F0F8F8F80000000000000000F8F8F8F8F8F8F8F80000000000000000BE +:201220007F3F9FCFE7F3F9FCF8F8F8F8F8F8F8F8FEFFFFFFFFFFFFFF783898CFE7F3F9FC16 +:20124000F8F8F8F8F8F8F8F8FFFFFFFFFFFFFEFEF8F8F8F8F8F8F8F0FEFCFCFCF8F8F8F056 +:20126000F0F0E0E0E0C0C0C0F0F0E0E0E0FFFFFF808080000000000080E0C08F1F1F1F3F66 +:2012800000000000000000000000000000000006000000FFFFFFFFFF0F1F3FFFFFFEFCF8F0 +:2012A0000F03000000000000F0E0C00000000000000000000000000000000000000000008C +:2012C00000000000000000000000000000000000000000000000000000000000000000000E +:2012E0000000000000000103070F1F3F7FFFFFFF070F1F0000FFFFFFFFFFFF0000FFFFFFCE +:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFF6D +:20132000000000E7F7FFFFFFE0F0F0F8F8F8F8F80000000000000008000000808000000032 +:20134000000000000103070F1C3E7FFFFFFFFEFC1F3F1F0F07030000F8F0E0C08000000005 +:20136000070F1F3FFFFFFFFF0000000000000000FFFFFFFCF8F0E0C0C08000000001030731 +:20138000800000000103070F0F1F7FFFFFFFFFFF3F7FFF0000FFFFFFFFFEFCF8F0E0C000D0 +:2013A000FEFCF8F0E0FFFFFF0000000000FFFFFFFFFFFFFEFEFEFEFEDF9F1F1F1F1F1F1F46 +:2013C0001F1F1F1F1F3F7FFF3F3F3F3F3F3F7FFFFFFFFFFFFFFFFEFDFFFFE0DFBF7FFFFFCF +:2013E000FBF7EFDF80FFFFFFF98901010101031FBF87808080878F80FFFF3F7FFFFFFFFFF4 +:20140000FFFF00FFFFFFFFFFFFFF00FFFEFDFBF7FFFFFFFF00FFFFFFEFDFBF7FFFFFFFFFE8 +:20142000FEDC80FBFFFFFFFFFEFDFBF7FFFFFF7F0101030303070707FFFFFFFEFEFEFEFEDF +:20144000DF9F1F1F1F1F1F1FF8F8F8783898D8C8FEBE3E3E3E3E3E3E1F1F1F1F0F2777F338 +:201460001F1F0F27333B397CF9FCFEFEFFFFFFFFFEFFFFFFFFFFFFFF7F7F3F9FCFEFE7F37D +:20148000C8E0F0F8F8F8F8F80000000000000000F3F9FDFCFEFFFFFFF8F8F8FF7F3FBF9FF9 +:2014A0000000000000000000FDE10101E1F1B1018080879F9F80C0F801F1F9F98901031F3B +:2014C000007945454579414100020508080F08E8002222A29488888800F78484E78584F4BE +:2014E0000080404080008040007A42437242427A002F2828AE68282F00456D55544444442A +:2015000000101010A04040400000000000000000000000000000000000000000000000003B +:20152000000000000000000000000000000000000004060606060606061E3E000000000021 +:2015400000000008047E04080000000000000000000000000001030308183870E0C08818E6 +:2015600002000001030303033878F8F8F8F8F0E0F3F3E3E2E0E1E0E0CF9F3F7FFFFF0000A6 +:20158000E3E5E6E3E1F1F1F1FC56AAFCC4CCDCFCF1E3E3E7FFFFFFFFFCFCFEFEFFFFFFFF1C +:2015A000FFFFF7EFDFBF7F7F3F3F3F7FFFFFFFFF7B73737371717B7F0000000000000000C3 +:2015C000000000000000030200182040603C7220000002020100000030786CE278241000B9 +:2015E000BF878080838F8680FDE101E1F1A101C1838180818B86C0F8C10161F1F111031F73 +:20160000BF87808090898F8AFDE1010161F191918A8A8A8B8780C0F89191D171E101031FAE +:20162000BF87808083878181FDE101E1F101E1F183878383878EC0F8B12161F1F911031FA7 +:20164000BF87808387818387FDE10101A1F1D1019C8082868684C0F841B119193911031F75 +:2016600078787030303030200080C0E060606040040C0C0C0C0E1E1EC0C08080800000002C +:2016800000000000000001010F3F2160C080800003030707070F0F1F80E0F0F9FDFFFEFE20 +:2016A0001F3F7F7FFFFFFFFFFCF8F8F0E0C0C0C0FFFFFFFEFEFCFCF880000000000000006D +:2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:2016E000FFFFFFFFFFFFFFFF0000000000010307FFFFFFFFFFFFFFFF0F7FFFFFFFFFFFFF67 +:20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:20172000FFFFFFFFFFFFFFFFF0F0E0E0E0E0C0C0FFFFFFFFFFFFFFFFC0C0808080000000D9 +:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFCFCFCF8F8F0E0F0 +:20176000FFFFFFFFFFFFFFFFE0C0800000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:2017A000FFFFFFFFFFFFFFFFC09F3F7FFFFF00000303030200010000787060400000000082 +:2017C0000305060300000000FC56AAFC000000000000000000000000000000000000000000 +:2017E00000F8F4ECDCBC7C7CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:2018000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:2018200000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:20184000000000010100050D387CFE83397CFFFF191B3F7FFF7F3F1FFFFFFFFFFFFFFFFFC6 +:201860001F0D050000000000FFFFFFFE3882C67C0000000000004060381010000000000048 +:2018800030B0F8FCFEFCF8F8F86040000000000000000000000010100000000000000000D2 +:2018A000000000000000000000000000000000000000000000000000000000000000000028 +:2018C000000000000000000000000000000000000000000000000000000000000000000008 +:2018E0000000000000000000000000000000000000000000000000000000000000000000E8 +:20190000FFFFFFFFFFFFFFFFFFFDF9F3F7FFEFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFCFDFFFFFFF37 +:20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:20196000FFFFFFFFF7F7E7EFFFFFFFFFFDC1FFFFFFFFFFFFFFFFF7E7FFFFFFFFFFFFFFFF1F +:20198000FFCFDFDEDEFCF9E3FFF7F7F7F7F7FF81FFC79EFCF9E3FF80FFCCF9FFFFFEFCC17C +:2019A000FFFDEDCDFF8CFDF9FFC3FF8FFDFDF9C3FFE1CFFFC7DEFCC1FEC69CF9F3F7F7E7B9 +:2019C000FFC5FDF99FBEFCC1FFC7DEFEC6FCF9C30000000000000000000000000000000013 +:2019E0000000000000000000000000000000000000000000000000000000000000000000E7 +:201A0000FFFFFFFFFFFFFFFFFFEFCFDEFEC6DE9CFFC7DEFCC7DEFC81FFE7CCDFDFFFFCE1E7 +:201A2000FFCFDFDEDEDCF983FFC1DFFFC3DFFF80FFC0DFFFC1DFDF9FFFE0CFDFDEFEFEE024 +:201A4000FFDEDEFEC6DEDE9CFFB1F7F7F7F7FF81FFFEFEFEFEFEFCC1FFDCD9F3DFDFDF9C11 +:201A6000FFDFDFDFDFDFFF80FFFEFEFED6D6DE9CFFFEFEFEDEDEDE9CFFC7DEDEDEDEFCC144 +:201A8000FFC7DEDEFCC1DF9FFFC7DEDEDEDCFBC2FFC7DEDEF8DFDF98FFCFD9FFC7FEFCC198 +:201AA000FFB1F7F7F7F7F7E7FFDEDEDEDEDEFCC1FFDEDEFEFCF9F3F7FFDEDEFEFEEECE9C03 +:201AC000FFFEFCF9FFEFCF9CFFDDDDF9F3F7F7E7FF8EFCF9F3E7FF80FFFFFFFFFFFFFFFF6E +:201AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:201B00000000000000000000000000000000000000000000000000000000000000000000C5 +:201B20000000000000000000000000000000000000000000000000000000000000000000A5 +:201B4000000000000000000000000000000000000000000000000000000000000000000085 +:201B6000000000000000000000000000000000000000000000000000000000000000000065 +:201B80003F7F7F7FFFFFFFFFFEFEFEFEFEFFFFFF04040606070303FF070000000080E0FF14 +:201BA000FE000000000000FF030303070F1F7FFFE0E0E0E0E0E0E0FF7F7F7F7F7F7F7FFFD5 +:201BC000F0F0F0F0F8F8F8FF3F000000000000FFFF000000000000FFF0101808080808FFEB +:201BE0001F1F1F1F0F0F0FFFF0F0F8FCFEFEFFFF30180C04060301FF00000000000000000E +:201C0000000000000101010300000000C0E1F3F700000000EEFFFFFF000000003B3F3FBFD0 +:201C20000000000083C3C3C3000000008FDFFFFC00000000F8F8F8F800000000070F0F0F5B +:201C400000000000FEFFFFFF00000000E3E3E7EF00000000808080800303030303030707CD +:201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFE3E3F3F3F3FFFFFF20 +:201C8000FFFFFFFFFFFFFFFFF8F8F0F0F8F9FBFB1F1F1F1F3FFFFFFFFFFFFFFFFFFFFFFFE5 +:201CA000EFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0000000000000FF80000000000000F018B5 +:201CC0000000000000003F2007070707070FFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FE5 +:201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFBFBFBFFFFFFBF3FF0 +:201D0000FFFFFFFFFFFFFF03FFFFFFFFFFFFFF80FFFFFFFFFFFFFF1FC0E0E0E0E0E0FF8097 +:201D2000000000000000FF00000000000000F316000000000000FC07000101010302060486 +:201D400080800000000000101E1F1F3F3F3F3F3F6040C0C0808000040707070F0F0F0F0F58 +:201D6000FEFEFCFCF8F8F8F00000000000000020FFFFFF7F7F7F7F7FF0E0E0C0C0C0C0C08F +:201D800000000000007FFFFF07030301010181810000000000FFFFFF0000000000030303AE +:201DA0000203010101FFFFFF00000000000303030000000000FFFFFF1E1E1E0E0FFFFFFFA4 +:201DC0000100000000F0F8FC80C0602030101018040C08081810302010303030307060605E +:201DE0003F7E7E7C7C7C78F8040C0C08181838380F1F1F1F1F1F1F3FF0E0E0E0C0C08080E8 +:201E000020607070F0F0F0F07F7F3F3F3F3F3F3FC0818181818080C0FFFFFFFFFFFF7F002D +:201E200081FFFFFFFFFFFF3FFFFFFFFFFFFFFFFF0303838181818181FFFFFFFFFFFFFFFFEA +:201E400081818181818181C0FFFFFFFFFFFFFF00FFFFFFFFFFFFFF3F0303838181818180FD +:201E6000FCFEFEFEFEFCF80008080C040404040C000000000000010120604040C18181037A +:201E8000E0E0E0E0E0E1E1C1F0F0F0E0E0C0C1C1307070F0F0E0E0E03F3F3F3E3E7E7C7C4E +:201EA0008101030303070707F0F8F8F8F8F8F8F83F1F1F1F1F1F1F1FC0C0E0F0FCFFFFFF69 +:201EC0000000000000FCFFFF0F070303010101818181818181C0C0C0FFFFFFFFFFFFFFFFAB +:201EE000C0C0C0C0C0C0E0E00000000000FF7F7F3F3F1F1F1FFFFFFFC0C0C0C0C0C0E0E08D +:201F0000000000000070707808081830602030180103020206040C080303070707070F0FE3 +:201F2000C1C1C1C3C3C2C2C083830307070F0F0FE0E0C0C0C0C0C080787878F0F0E0E0E068 +:201F40000000000000003F3F000000000000FCFE0F0F0F0F08080C04FFFFFFFF0F0F0F0F75 +:201F6000FFFFFFFFFFFFFFFF8181818181810101C0C0C0C0C0C0C0C0FFFFFFFFFFFFFF7FE9 +:201F8000E0E0E0E0E0F0F0F07F7F7F7F7F3F3F3FE0E0E0E0F0F0F0F07C7C3E3F3F3F3F1F48 +:201FA0000C0406038180C0E00000000080C04060081810103020203F0F1F1F1F1F3F3FFF90 +:201FC00080808080808080FF1F1F3F3F3F7F7FFF80818181010101FFC0C08080800000FF86 +:201FE0000000000000000000000000000000000000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4e-a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4e-a.hex new file mode 100644 index 00000000..19086346 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4e-a.hex @@ -0,0 +1,258 @@ +:020000040000FA +:200000000000000000000000000000000000000000000000000000000000000000000000E0 +:20002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:20004000FF80808080808080FF0101010101010180808080808080FF01010101010101FF96 +:20006000FF80808080808081FF0101010101018181808080808080FF81010101010101FF74 +:20008000000000000000000000000000000000000000000000000000000000000000000060 +:2000A000000000000000000000000000000000000000000000000000000000000000000040 +:2000C000000000000000000000000000000000000000000000000000000000000000000020 +:2000E000000000000000000000000000000000000000000000000000000000000000000000 +:200100000000000000000000000000000000000000000000000000000000000000000000DF +:200120000000000000000000000000000000000000000000000000000000000000000000BF +:2001400000000000000000000000000000000000000000000000000000000000000000009F +:2001600000000000000000000000000000000000000000000000000000000000000000007F +:2001800000000000000000000000000000000000000000000000000000000000000000005F +:2001A00000000000000000000000000000000000000000000000000000000000000000003F +:2001C00000000000000000000000000000000000000000000000000000000000000000001F +:2001E0000000000000000000000000000000000000000000000000000000000000000000FF +:200200000000000000000000000000000000000000000000000000000000000000000000DE +:200220000000000000000000000000000000000000000000000000000000000000000000BE +:2002400000000000000000000000000000000000000000000000000000000000000000009E +:2002600000000000000000000000000000000000000000000000000000000000000000007E +:2002800000000000000000000000000000000000000000000000000000000000000000005E +:2002A00000000000000000000000000000000000000000000000000000000000000000003E +:2002C00000000000000000000000000000000000000000000000000000000000000000001E +:2002E000000000000000000000000000000000000000FFFFFFFFFFFF00FFFFFFFFFFFFFF0B +:200300000000000000000000000000000000000000000000000000000000000000000000DD +:200320000000000000000000000000000000000000000000000000000000000000000000BD +:2003400000000000000000000000000000000000000000000000000000000000000000009D +:2003600000000000000000000000000000000000000000000000000000000000000000007D +:2003800000000000000000000000000000000000000000000000000000000000000000005D +:2003A00000000000000000000000000000000000000000000000000000000000000000003D +:2003C00000000000000000000000000000000000000000000000000000000000000000001D +:2003E000E0E0E0E0E0E0E0E00000000000000000E0E0E0E0E0FFFFFF0000000000FFFFFFA3 +:2004000001070F1F3F7F001000F0E0C0801030700001110100000000E1C3860C10204080DF +:200420000707030000000000E0E0C00000000000F8F0E0C0800000001F1F0F0703010000CB +:2004400000000000808080C00000000001010103E0F0F8FFFFFFFFFF070F1FFFFFFFFFFF63 +:20046000000000FFFFFFFFFF20000000000000FF20000000000000FF20000000000000FF24 +:200480001F3F3F3F3E3C3830E0C080000000000001010109193979F90000000000000000AE +:2004A000600000000000000000000008183878F80101000000000000F8F8F8F060000000DA +:2004C000000000000000000800000000000000000000000001010000183878F8F8F8F8F07A +:2004E00000000000000000000103060F1F3F3F3FF8F8F8F0E0C08000000000010101010902 +:200500003E3C3830200000000103070F1F3F3F3F3E00000000000000000000000103060E8D +:20052000193878F8F8F8F8F0FF000000000000001E3E3E3E3E3C3830FFFFFFFFFFFFFFFF71 +:20054000FF1F0F0707030101FF7F7F3F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FB3 +:20056000FFFFFFFFFFFFFFFFDFDFCFC7C7C3C1C1C0C0C0C0C0C0C0C0FF7F7F7F7F7F7F7FAB +:200580007F7F7F7F7E7E7E7E7E7E7E7E7E7E7E7EFFFFFFFFFF7F7F3F1F1F0F0707030101DF +:2005A000FF7F7F3F1F1F0F07070301FFFFFFFFFFFFFFFFFFFFFFFFFF1F1F1F1F1F1F1F1FB5 +:2005C000FFFFFFFFDFDFCFC7C7C3C1C1C0C0C0C0FFFFFFFFFF7F7F7F7F7F7F7F7F7F7F7F4F +:2005E000FFFFFFFFFFFFFFFF1F1F1FFFFFFFFFFFC0C0C0FFFFFFFFFF7E7E7EFFFFFFFFFFFB +:20060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000F2 +:20062000000000000000000000000000000000000103070F1F3F7FFF0000000000000000C4 +:20064000FFFFFFFFFFFFFFFFFEFCF8F0E0C0800000000000000000000000000000000000A0 +:20066000000000000000000000000000000000000000000000000000FEFCF8F0E0C0800078 +:2006800000000000000000000000000000000000000000000000000000000000000000005A +:2006A0001F1F1F1F1F1F1F1FC0C0C0C0C0C0C0C01F1F1F1F1F1F1F1FC0C0C0C0C0C080004A +:2006C0007C78000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:2006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:20070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:20072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:20074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:20076000F8F8FCFEFEFEFEFEFFFFFFFFFFFFFFFF000000000000000000000000000000009F +:20078000000000000000000000000000000000000000000000000000000000000000000059 +:2007A00000000000000000003F3F3F7F7FFF7F7F0001031FFFFFFFFF000000000000000062 +:2007C0000000000000000000FF00000000000000000000000000000000000000000000001A +:2007E000FCFCFCFEFEFFFEFE00000000000000003C7E7E3E3E3C1C00FFFFFFFFFFFFFFFF0A +:2008000000007777777077770000F7F7F7007F7F77777707777777707F00777777707777AF +:200820007777777707777777777777770777777777777077777707777777777077777700AD +:200840000000EFEFEF007E7E0000EEEEEE0EEEEE7E00EEEEEE0EEEEEEEEEEEE0EEEEEE0E67 +:20086000EEEEEEEEE0EEEEEEEEEEEEEEE0EEEEEEEEEEEE0EEEEEEE00EEEE0EEEEEEEE0EE90 +:2008800077777770777777007E7E7E00F7F7F700FEFEFE00EFEFEF00EEEEEE0EEEEEEE0056 +:2008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFF8F8F8F8F8F8F882 +:2008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F1F1F1F1F1F1FFF0000000000000051 +:2008E000F8FFFFFFFFFFF8F81FFFFFFFFFFF1F1F000000FFFFFFFFFFF8F8F8FFFFFFFFFFDF +:200900001F1F1FFFFFFFFFFF000000FFFFFFFFFF000000FFFFFFFFFF1F1F1F1F1F1F1F1F91 +:200920000000000000000000000000000000000000000000000000000000000000000000B7 +:20094000010000000018E000E0100800000700000000000000006060FFFF1F0F07030101A7 +:200960007070000000000002000000000000000003030303010100000F10A0A0C0C0E0E0E8 +:20098000000000000018E000F8F0F0F0F0F0E0E0C080000000001C2040404040000000017A +:2009A00002E4180000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF8F06B +:2009C000E0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C1C3C7CFDFFFFFFFFFFFFF44 +:2009E0003F3F7FFFFFFFFFFFF0F0F0F0F0F0F0F00303030303030303030303FFFFFFFFFF63 +:200A0000F0F0F0FFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:200A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:200A4000FFFFFFFFFFFFFFFF01010307070F1F1FFFFFFFFF000000FF000000FFFFFFFFFF48 +:200A600000000000000000FF000000FF000000FF00000000FFFFFF007CFFFFFFFFFFFFFF07 +:200A80007FFFFFFFFFFF0000FEFFFFFFFF000000FFFFE3DD7DFEFFFFFFFFFFFFFCFB679FB2 +:200AA000FFFFFFFFFF7F3F9FFFFFFFFFFFFCF9F25F4080000000FEFFF40502010000FFFFE6 +:200AC000FFFFE3DD3DFEFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9FFFFFFFFFFCF9F2F4F7 +:200AE0005E4080000000FFFF0502010000FFFFFF00FFFFFFFFFFFFFF0082C8FBFCFFFFFF9E +:200B0000FFE3DDFD7EFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9F5EFFFFFFFCF9F2F40511 +:200B20004080000000FFFFFF02010000FFFFFFFF0088206808C0F0FC0008020B0801071FF1 +:200B4000E3DDFD7EFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9F5E40FFFFFCF9F2F405028D +:200B600080000000FFFFFFFF010000FFFFFFFE0000A0096F3FFFFFFF7EFFFFFFFFFFFFFF32 +:200B8000DDFD7EFFFFFFFFFFF8F7CF3FFFFFFFFFFFFF7F3F9F5E4080FFFCF9F2F4050201AE +:200BA0007DFEFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9F5E408000FCF9F2F4050201006A +:200BC000C08000FFFFFF00FF0301FFFFFFFE00FF7F3F9F5E408000000080C0F8FFFFFFFF2C +:200BE000FFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C080007C7800000000000009 +:200C00000000000000000000000000000000000000000000000000000000000000000000D4 +:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:200C4000F8F8F8F8F8F8F8F800FFFFFFFFFF000000000000000000FF7FFFFFFFFFFFFFFF62 +:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000101030760 +:200CA000000070F0F0F0F0F0000000000001030303030303030303030303030303030303DD +:200CC0000000000000000E1E1E3E7E7EFEFEFEFEFEFEFEFEFEFEFEFE0000000000000000A8 +:200CE0000000000000000000000000000000000000000000000000000000000000000000F4 +:200D00000000000000000000000000000000000000000000003070F000010303030303072C +:200D2000030303030303030300000E1E1E3E7E7EFEFEFEFEFEFEFEFE060E0F1F3F3F7FFFE9 +:200D40003F7FFFFFFFFFFFFF00010303070F1F3F002F282338023E000000000000000C1E44 +:200D600000000000000001063F1F077BDD7F3A340F0F030B1F0F0F2EC8E8F1FBFFFF7F7F93 +:200D80007F3B01DFFFFFFFFFFFFFFFFF7BA58992FFFFE7CF2EFFFFFDC9C2908AE041733F31 +:200DA000FDFEF8660490C3C79FCF1F7FFFFFDFDFFFFFFFFFFFFFFFFFCFE6E491F3FBFFFFE6 +:200DC00000BE208EE20AFA000000000001030703000000000000000003070F0A0001050F7B +:200DE00000C0C000000000000703000A1F4F3FFF0103030707070707FFFFFDFFFDFFFFFF95 +:200E000000FFFF0000000080000000000000000000FFFF000000000000030300000001034C +:200E2000000001030707070707FFFFFFFFFFFFFE000505040700070000F704711C41DF00CF +:200E40000000000000000000000000000000000000FCF8000000000000000000000000009E +:200E6000C0C0C0C0C08000000003070F1F1F1F1F00C000C04040400000000000000000005D +:200E800000000000000000000000000000000000000000000000040E000000000000000040 +:200EA0001FFFFFFFFFFEFCF800E0E000000000000000010000002070001F3F7FFFFFFFFFFB +:200EC000F8F8F8F8F8F0E0C0000000000000000000000000000000000000000000000000AA +:200EE0000000000000000000000000000000000000000000000000000000000000000000F2 +:200F00000000000000000000000000000000000000000000000000000000000000000000D1 +:200F2000000000000000000000F9F3000000000000C1E30000000000000000000000000021 +:200F4000000000000000000000000000000000000000000000000000000000000000000091 +:200F6000000000000000000000000000000000000000000000000000000000000000000071 +:200F800000000000000000000000000000000000000000000000207000FF7F000000000043 +:200FA00000000000000000000000000000000000000001000000207000FF7F000000000022 +:200FC00000000000000000000000000000000000FFFFFFFFFFFFFFFF000F07000000207073 +:200FE000FEFCF8FEFFFEFCFE00000000000080E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:201000000000000080C0E0C0C0E5F5540780A7F0E0FFFFD0F8F4F8F0F0F8FCF8FCFCFEFE92 +:20102000000000000000000100000000000070F8071F0000000000000000000000000080A1 +:20104000000000000000000000000103060C183000040F0F060F1F3260C08000000000000A +:20106000E0C080C0C080000000000000000000008080C0C0C0000000000000000000000010 +:201080001F1F0F0F0F0707078080C0C0C0E0E0E00303030101010000F0F0F0F8F8F8FCFC34 +:2010A0000000FFFFFFFFFFFFFC7EFEFEFFFFFFFFFFFF000000000000FFFF0F0F0F0000009B +:2010C000000003070F1F3F7F00000000000060E10001030101010000F3F3F1F9F8F8FCFC1A +:2010E000000103070F000000FC7E7E7E3F3F3F1FFFFFFCF8F000000000000103060C181064 +:201100000000000000000000000000000000000000000080C0E0F0FC0000000000000000C3 +:20112000FEFFFF7F3F000000000080C0C000000000000000000000000000000000000000F5 +:201140000002070300000000000080C08000000000C0E0400080C0E0FFFF010000000000C4 +:20116000F0F8FCFFFFFFFFFF0000000080C0E0F01F07FFFFFFFFFFFFF8FEFFFFFFFFFFFF70 +:201180002133797C7EFFFFFF7F3F1F0F03010000000000000000000000000000000000009B +:2011A0000000000000000000000000000000000000000000000000000000000078F00000C7 +:2011C0000000000000000000000F1E0000000000FFFFFFFEFEFEFFFFDF9F1F1F1F1F1F9F35 +:2011E000FEBE3E3E3E3E3E3EDF7F3F1F1F3F7FFFBFFF7F3F3F3F7FFF00000000000000802F +:20120000C06030180C06030100000000000000800000000000000000C06030180C06030152 +:20122000FFFFFFFFFFFFFFFF0100000000000000FFFFFFFFFFFFFFFF80C060341C0C0607B4 +:201240000000000000000101FFFDF9F1E1C18101010303030707070F010303030707070F26 +:201260000F0F1F1F1F3F3F3F0F0F1F1F1F000000FEFEFEFCFCFCF8F880E0C080000000003D +:20128000000000000000000000000000000000860000000000010307CF7F3F7FFFFEFCF8C0 +:2012A0008FCF7F3F1F3F3F3FF0E0C080800000007E7E7EFCFCFCF8F8000000000000000048 +:2012C000F8F0F0F0E0E0E0C00000000000000000C0C08080800000000000000000000000E6 +:2012E000F8F0F0F0E0E0E1C300001F3F7FFFFFFFC7CF9F8080000000FFFFFF0000000000B6 +:201300000000FFFFFFFEFCF80000C08000000000F0E0C000000000000000FFFFFFFFFFFF14 +:20132000603010180800000018080C040000000000000000000000080000008080000000B5 +:20134000000000000103070F1C3E7FFFFFFFFEFC1F3F7FFFFFFFFEFCF8F0E0C080000000C7 +:20136000FFFFFFFFFFFFFFFF0000000001070F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:201380007FFFFFFFFFFFFFFFF0E0FFFFFFFFFFFFFFFFFF0000000000000103070F1F3FFF97 +:2013A0000103070F1F000000FFFFFFFEFC000000FFFFFFFEFEFEFEFEDF9F1F1F1F1F1F1FD2 +:2013C0001F1F1F1F1F3F7FFF3F3F3F3F3F3F7FFF00000000000000000000000000000000BD +:2013E0000000000000000000F8880000000000000000000000070F00000000000000000057 +:20140000000000000103000000000000E0C00000003C780000000000000000000000000074 +:20142000FEFCF0FBFFFFFFFFF0F0C0D0F8F0F0F40101030303070707FFFFFFFEFEFEFEFF7B +:20144000DF9F1F1F1F1F1F1F00000080C0602030FFBE3E3E3E3EBEFE9FDF5F7F3F3F7FFF9B +:201460007F3F3F3F3F3F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:2014800030180C04060301000000000000008080FFFFFFFFFFFFFFFF0000000484C44464FE +:2014A00060C080000000000000000000E0F0B0000000071F1F00000000F0F8F8880000005F +:2014C00000000000000000000000000000000000000000000000000000000000000000000C +:2014E0000000000000000000000000000000000000000000000000000000000000000000EC +:2015000000000000000000000027642624247400006794162444F4000067942614946400C4 +:20152000006784A6A4F4240000E784E61414E400001C3E3E3E3E3E3E3E3E3E0000000000B7 +:20154000000000000000000000000000000000000000000000001C1C000000000000081833 +:201560001C1818191F1F0F0F3878F8F8F8F8F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:201580001C18181C1C0C0C0C03010103333323030C1C1818000000000303010100000000AF +:2015A000FFFFFFFFFFFFFFFF0182848810204080F8F8E8C8880C040000000000000000007C +:2015C00000000000000000000000000000000000000000000000000000000000000000000B +:2015E00000000000030F0600000000E0F0A000C0030100010B060000C00060F0F01000007D +:201600000000000010090F0A0000000060F090900A0A0A0B070000009090D070E0000000B8 +:201620000000000003070101000000E0F000E0F003070303070E0000B02060F0F8100000B1 +:20164000000000030701030700000000A0F0D0001C0002060604000040B01818381000007F +:2016600000000000000000000080C0E0E0E0E0C00000000000000000C0C0808080000000EA +:2016800000000000000001010F3F3F7FFFFFFFFF03030707070F0F1FFFFFFFFFFFFFFEFEF2 +:2016A0001F3F7F7FFFFFFFFFFCF8F8F0E0C0C0C0FFFFFFFEFEFCFCF880000000000000006D +:2016C000070F1F3FFFFFFFFF0000000000010307FFFFFFFFFFFFFFFF1F3FFFFFFFFFFFFF3F +:2016E000FFFFFFFFFFFFFFFF0000000000010307FFFFFFFFFFFFFFFF0F7FFFFFFFFFFFFF67 +:2017000000000001010303033F3F3F7F7F7F7FFF03070707070707070000000000010307C7 +:201720000707070F0F0F0F0FF0F0E0E0E0E0C0C00F0F0F1F1F1F1F3FC0C080808000000081 +:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFCFCFCF8F8F0E0F0 +:20176000FFFFFFFFFFFFFFFFE0C0800000000000FFFFFFFFFEFCE000FFFFFFFFFFFFFFFE84 +:20178000FFFFFFFFFFFFFEFEFEFCF8F8F0F0E0E0FCFCFCF8F8F8F0F0C0C08080000000008D +:2017A000F0E0E0E0C0808000F0FFFFFFFFFFFFFF0F0F1F1F1F1F1F1FF8F8E8C8880C0400E0 +:2017C0001C18181C1C0C0C0C03010103333323030C1C18180000000003030101000000006D +:2017E00000F8FCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:201800000000000000000000000000000000000000000000000000000000000000000000C8 +:20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:20184000000000010103070F387CFEFFFFFFFFFF1F1F3F7FFF7F3F1FFFFFFFFFFFFFFFFFF0 +:201860001F0F070301000000FFFFFFFFFFFEFE7C000000000080C0E0381010000000000044 +:20188000F0F0F8FCFEFCF8F8F8E0C080000000000000000000001010000000000000000052 +:2018A000000000000000000000000000000000000000000000000000000000000000000028 +:2018C000008080800000000000000000000000000000000000000000000000000000000088 +:2018E0000000000000000000000000000000000000000000000000000000000000000000E8 +:2019000000000000000000000002060C08001030000000000000000000000000000000006B +:20192000000000000000000000000000000000000000000000000000001010302000000037 +:20194000000000000000000000000000000000000000000000000000000000000000000087 +:20196000000000000808181000000000023E000000000000000008180000000000000000CF +:20198000003020212103061C000808080808007E00386103061C007F003306000001033E32 +:2019A0000002123200730206003C00700202063C001E30003821033E013963060C080818B5 +:2019C000003A02066041033E003821013903063C000000000000000000000000000000000B +:2019E0000000000000000000000000000000000000000000000000000000000000000000E7 +:201A000000000000000000000010302101392163003821033821037E001833202000031EC5 +:201A2000003020212123067C003E20003C20007F003F20003E202060001F30202101011F48 +:201A40000021210139212163004E08080808007E000101010101033E0023260C202020631B +:201A6000002020202020007F00010101292921630001010121212163003821212121033EA8 +:201A800000382121033E2060003821212123043D0038212107202067003026003801033E14 +:201AA000004E080808080818002121212121033E0021210103060C08002121010111316369 +:201AC0000001030600103063002222060C080818007103060C18007F0000000000000000BE +:201AE0000000000000000000000000000000000000000000000000000000000000000000E6 +:201B000000000000040E1F1F0000000040E0F0F00F07030100000000E0C08000000000003B +:201B2000113B7F7F3F1F0E040080C0C080000000040E1F1F0F07030140E0F0F0E0C08000E1 +:201B4000000103030100000088DCFEFEFCF870200000000002070F0F000000002070F8F8F2 +:201B60000703010000000000F0E0C08000000000000000000000000000000000000000004A +:201B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:201BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:201BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:201BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F8FCFCFEFFFFFF00000000000000001A +:201C0000000000000101010300000000C0E1F3F700000000EEFFFFFF000000003B3F3FBFD0 +:201C20000000000083C3C3C3000000008FDFFFFC00000000F8F8F8F800000000070F0F0F5B +:201C400000000000FEFFFFFF00000000E3E3E7EF00000000808080800303030303030707CD +:201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFE3E3F3F3F3FFFFFF20 +:201C8000FFFFFFFFFFFFFFFFF8F8F0F0F8F9FBFB1F1F1F1F3FFFFFFFFFFFFFFFFFFFFFFFE5 +:201CA000EFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0000000000000FFFF000000000000F0F856 +:201CC0000000000000003F3F07070707070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFFFFFFFFFF10 +:201D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0E0E0E0E0E0FFFFBD +:201D2000000000000000FFFF000000000000F3F7000000000000FCFF0001010103030707A9 +:201D4000FFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:201D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:201D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:201DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:201DC000FFFFFFFFFFFFFFFF80C0E0E0F0F0F0F8070F0F0F1F1F3F3FFFFFFFFFFFFFFFFF5B +:201DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:201E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:201E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:201E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:201E6000FFFFFFFFFFFFFFFFF8F8FCFCFCFCFCFC00000000000001013F7F7F7FFFFFFFFFD8 +:201E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:201EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:201EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:201EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:201F0000FFFFFFFFFFFFFFFFF8F8F8F0E0E0F0F80103030307070F0FFFFFFFFFFFFFFFFF1B +:201F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:201F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:201F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:201F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:201FA000FCFCFEFFFFFFFFFF0000000080C0C0E00F1F1F1F3F3F3F3FFFFFFFFFFFFFFFFFF0 +:201FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:201FE0000000000000000000000000000000000000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum.zip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum.zip new file mode 100644 index 0000000000000000000000000000000000000000..278f6ac12787cd03fe955bd37860151a7e4d0cc9 GIT binary patch literal 92575 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3e-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3e-.bin new file mode 100644 index 0000000000000000000000000000000000000000..83d7dbcd768fca70b3f657a4b0170a28ccb1b1c0 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3h-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3h-.bin new file mode 100644 index 0000000000000000000000000000000000000000..c0dfcdfad8f223fd6553d059b7450c569ec90289 GIT binary patch literal 8192 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 dIm7RDM&(CN(5b>SR($j%2&83FH<+Ad>I*%*X_` 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1l-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1l-.bin new file mode 100644 index 0000000000000000000000000000000000000000..922551d251f217082012a03bdc020edcecd4e0ef GIT binary patch literal 256 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 C6; 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 OI4C3nK~a8rdHBC-JY5_B literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4a-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4a-.bin new file mode 100644 index 0000000000000000000000000000000000000000..a79651cccacfe4b1d8d23b10c7124cdb0b93e8a6 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4c-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4c-.bin new file mode 100644 index 0000000000000000000000000000000000000000..d0a3cbfcdb6c57fb28ff0ed047aa0a7bfe8e01e5 GIT binary patch literal 8192 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 Bp<4g| literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4f-.bin new file mode 100644 index 0000000000000000000000000000000000000000..a646cd88bb814f9df36e11e13ef9bd602f10e044 GIT binary patch literal 8192 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 WjvRUO%|l1UPYPmN)X8w}ejIs0p literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4h-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4h-.bin new file mode 100644 index 0000000000000000000000000000000000000000..04d425c52816eaad57a8af381c66efbef97bb584 GIT binary patch literal 8192 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 BKO_JE literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4k-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4k-.bin new file mode 100644 index 0000000000000000000000000000000000000000..02b59b348b85055cdb0dae46f192d327fb2ee532 GIT binary patch literal 8192 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 ZIZ43*kR)V#6?D4;wa?t0nAO$ee*s-EJcj@P literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4m-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4m-.bin new file mode 100644 index 0000000000000000000000000000000000000000..440f1b5b142479050929b35bf1a132e4d2551b61 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-5f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-5f-.bin new file mode 100644 index 0000000000000000000000000000000000000000..9998b1851c2f799d68b021d47c31d6a79d23e96a GIT binary patch literal 32 UcmZQzU<3mOAk72>NL(-z00HIz9RL6T literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-6f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-6f-.bin new file mode 100644 index 00000000..9b9dcba0 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-6f-.bin @@ -0,0 +1 @@ +   \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1f-.bin new file mode 100644 index 0000000000000000000000000000000000000000..06590b345d51c0998eb700e9106141e564e4b943 GIT binary patch literal 256 zcmW+w0geMf2r|87i;D37-yYjZ90RCOWmgJ2C5+b8(>(>#J;ERM6(&d^VKw<3nP+4b zo@NjSI2mkN{32(O!`Ws}26DTz($Mv!ug-JZ8{)jEc=6`#F#vw^feGPcD%Y5^XscG? jV(#}v$&Vk7UjkK^HQ~8@Tp!UFR?mI#z@NS76$euP8bAsS literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1h-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1h-.bin new file mode 100644 index 0000000000000000000000000000000000000000..39abc7d50b857bce1589dc3c0df506792f786cfa GIT binary patch literal 256 zcmXAk0ggl=2t%9vouNRn_rLAp9}|4RVyyt+UBh?;o;LOUeCj=BY5v$)fpTaR;}fBv z?!eXqFyh!jppLPs&zq^$$9U2xyg{ElH=lGb*AWg7=R%rp(;BmIG#@$tXbyVb=w-*ytmpeI{YF z!FHIm3)c&Mrql=-AV(@8pQ;`{xVf&~Y^JfS;p2@r*M&2(s@bVZ)vi*#hjUu@o~K=| d?-zUNTmN&7i`Q3!?zpTkFRva5KYNFBufJ+L3kv`M literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4c-a.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4c-a.bin new file mode 100644 index 0000000000000000000000000000000000000000..e46a2f0a73d3794c32c8af35ebb9c8a92f3be0a3 GIT binary patch literal 8192 zcmc&(Pi$kw86U?XFRMOcBP!LEj9=Pb_J%8vFp8VEAf!eW(sH1;s_ROK6VmP$scWcN zzbJIm!)l`*DuIgDaOx3`D;3Gl1ld((#qFVJ4=s7d2=`EBU+P`*j9=dL_kAx||^c2XHf+J0-`&V`U>Z&GRRpip>`=-k*K!~h3 zdGaKia`I#iKPN@D{7mWF)vTyIH=kX6+7`u?XBMAbc~lg$i%bXX;$n7Q;BOvvhOG;K|_2vHPb7SyMNC_UY7x1TGC;<+Lq7Pa<5xf&$mqMa+xwQC|@exaM# zwut=5w!2kPuJ~~q_@r&;z#yvce_XwKsRq9G#W}mmvPnGYAiZ%E0-{)mi}(@3bus|Q zEjra+TFSOf9yDcD`ent6t-}j#{i>M3xx{-)|Kl1%VB)*TTFP1C* zR{Qy7fnKnIkIaYta|G?GXm_uN(Lc5XXaR|6?kY>> zU0nKFCkY{hX*+J6`y2QsaMu3jI*(Y0Q+{i+)1!XE2k%{)BVZ%Y2O@a!K_Ag>YZ*jC zv_wN=VSe8`@!iK?8WT?I+U;+yTjL3s0Kt3fEKlApXWr6sXs$?3u2hYPhvW*+^8>D! zPd1m!7Yb$#sWd%zC{I-?=c-5H4s-^Uke%FsUaS}EGMz`tscg0}2qTz6?8MKW2EAhf zM&iRrd>Dz3W!*PRa6~Tr!eYNPcy8ch+Fw)}zs2OSf6&@V*>snGwDj1+s$opwekm1Q zpds0(Hr9#2f3sqU*Vk1|={0r$huNC!{U-gI*aCMTch~iY8;(zhJR02W8FpUQ()KaN* z8hrJQP)dXipi(K8Q*U<47cUl;%lYX(HWgDc-CcYPpDFKx^;o3FZ`c{}F#|P@iPM+C z)3B%~#M7lLSGU?joik_LW@DSBfuH3l(fAIwn@!r0PT~G< zS=Jil=oqGB*{Y?2qVIj)PVCTye5v?7Y*g&4CVQFj&fBPC0$|L3HdB3vGHo$2K4w3e z@E+5~0zCf17l)l*!=d_ZS`HeFr+$JoISl?h6bVXlP(s0XQ}@lyEwH+C`vuQdw#D&2ydq=uKp?c znT=Ic`K=~6TJ+wopUG^zEdyE4mcr}dJJ<5p^5tI@G@U-4HmoSPjgyR=wF}EA>Bf*N z%E|6X#?gKSzJ)Z^uTyG?5Bwi)A4c^$jx~s&voMB(nQ=27<1lUb8N8J97*ON9SY2Jk zc%U5=Xa|8RQJstin`@kyI!?jx+wfNAr-PIDajH>YI<5G$y;%x6l#wYu&j%^OQYKAk z)Fm@f1!xyvMQ4*9HKng8I)SKGB|)y!BnfomCOdI=Vir_caKPH6v`8>Ef5DzJDd3cj zXpaNy$P=d!s!#(Ve17xcggH+=(PF^tNB?fGr7(rz_3kBQ6j@Ly<_?+Qu@U$f{80j) z5A*~7Xx^UVGlqCn(m*u>vo`KZ(|wH7I>6%5GY~?91wI7wARre-5SqfY>Q{in3`5T% zYJ!}%euy8T2^m-v(QO27<5D_6;^1sVml(08AFK@MKSk>T;Pp|}+rIU~tx7SQn}`0~ zygf^H+-vY4kQ^!FD7Dxt$}W}gseBIxv0hc)w!RoNhV2PVB*4>7sbqnC3f6^b6`PNC z!~rBahvS@XQ(vfbcYPb@+$%SJ*@XMbraWWjoy;aMeug$JRq?>z;BnV~Yty&;etQjG z&aN}{A9Ad0&W88R9_#?mv*%{aewcmr{imKo95F*jMtvGqMeIk|SUe=|{5n7RWd+|q zP&zMOo+TeqfYn4kM{gB_STmUQ zjYgB|T3LxpY$%b#V~y|mnV(NaKelrM{;xGaM>r-HCv!%+2vNyRH0gqyxj|?tZ+wbe z0no^tJ$vict(!1Uo;~~UhC@g|93>S0oeX|s#O(;V+v)8_#!~#~j)_H{$vi9va(_IY z;AVds_aXFaJIOoPQ%&198SALUj9&FF}A(QKd%la`=&n$mC>0xaWNl9B%DeJ9CfL(BTL0KEG2+b z9u6;o@2ha*xHz$ShLsfFK)9tlG*5ttu4nP}Qb-{$iC535(`!kA!M5{Aqa5ee%a<=-x$>%qM!vAHut5H^^vDm=aJ?My@wJ~S z3Ov$#Colx2?<=*_Gc(|;wbz80n|K~CLSx%GJn~n*gzBKXQlZ!TV?oip|JMvTKhUejJ%9fN3t6yU% zRf!J|YLAmlYpCQP7J7qzzrTC_{CP88qN6yd%24N*uFHIxBzZSq;EO}KR4ThoDKA{O zu(!82?6@=m8Ou2bc&RRBsZ_-<#{0@n^KVKi&!1QQd|CxYk10p`5*SOKG#n3Rx-rjq zQSSFS`vg**^HBs6J~9lQ=c$pX;|2!~L+eOmNKB@5oC zc&rrelB&wzdY$x;AA*j+Rh@MEApjqv4SstY&VZv9?`?1hS~5}!AUy=i3Y^idZemKw zP9+xCQC+bhhpSMJD&GQWgH3ZgX2*wYBVSOvncg*E8-Ux6+J+7MMZ zWXZk8X&eG#6R8zEgl_0#9}szJB~bPnH)|w*mPi#p>SpgXR#_eZ+j1IT$JclIoij80 zi?$y zO$5Hq2nfzNWHF3TE`Oc2cBA`-{j^KMZgdlmuR!y2*L8H)FcN0gvPH{i1AN!f0g1); zj4@MkI%_84aU(SwVBFp2UT@G3L+abMZG~X~Xt%+fOy%;9@4MOti+K2gAT%Z-^$DUd zXglyJ7H4OA8}&*8rWi;G(KB<$uYI_3aw2n}NN%_j(mTW0GciSDl3VH^9^xJ0f!=zZ zXk-g=H1XcbKS|OtGIO@{g%v41(7U1Za9m*P!xaEz$S=cjT%Q}C^8w!|Y)Xtx?0`-B zjg5#LWHR(^4v*;Gq*DXB*+;(}peL7JEg_6n2$+ZuPaYp8;uC~yj_pzW4I|G}px6@V z`EUoHMy+Df7{!vnS6Hp7(0F1z-fMZwHk{+ci-rT$hY-cnZ?`{MyLdbZuU{iR?U&?J zy=`|e_5>Kr}d6v4&$)jp&X}}sIUs!bOd7)@fgXZW(pj!DD-0{ z=tQHXWhU$piEZ1bfzJS$7;+#Mi^pv%;k2a?zL8u^VOxfgoB82^X}R$*q8l1-itMtX zcv#NcHmAi)>{mJ5O`^JTLjvPMYr2)KC!be0EZ-;^5S zCvf;{#9~f|hNCE6E+-NR(~Lr#e15uZnzv@HSxcEM6j+IESubKr|%b@PRsmhaO>Qmbs4aWd(k9}REc5I9~foj)40{#|_XY9H$Ts`rD&ny$jR ziTXQWAV&GU5!)+oJ)NGNDfo&^L6jlGSG8$~+C1RUsA|U)rm@UiZn{`3wrQB4jf=#k zW0sN{0r&k+>m?%+Q)a6khXUfCy$L_qr+mLvb--t~Dsi%-y%LY#H%3v;u=u>T7gOeZ zX>H0>;zEmyKV13q)dQ1;`1vpY^=u|>C~=>B#Z48H-ugZ}3n!&@oU78h5D#5Dz>{)_((j``xwru&T)| z*@#51>-VpS>n{zl1Y#(zJFatnzW>mJ(V){0FZO=?vUlW@UtlSpH4{@m7__da@EN~; z@x21hg7On9X7>2dJ8fQRUHkax-sO|7VKh2NJaN!Fe8+#swLQYakKDI|`1sVfjM%t& zMkz|fjpVes-{ZW-$@S**|9F1(!0(G{KR6&U=>3rxqrxPCG{VhIpeJ(u`XCSpZ*uTV z^I}ejZa)|fgb2g7-+tS0^!e;4yS#YRq1q1M=ltCH^XGl2>%CjMR0ZjdG(dQZk6On% zv(!$fr!)JKQbCsN;?VPD*Ql~Wzip@sl-C?Ls~Y~w5UdV+&C4#CzaCu00VKgu_^U!f zc;4&v+9k5%iNEjV>A8N}RtAXt@5{A!g;>6|e5oZ~SM%57y8aMBc&%Bj)uh-=v99=r zgAMOx@zD24|7QX56CMY=@3|BL@yl)Tt);>#q%0tj*wPIjdpiZDH+mo-d3j>WQ#zg0Ok^TV z^ZPLhvxqM(xvci(^P2Q2IWmcaL_{1=;FdzBnYD>cV7o}aWT9s;0-fcV13?Dp_2or| z5Oxp1mK?a{;W59GC|Mj(`%lvTjc0j3R~A9i%sL7N*9N43DEjRctvLgtQM~|UQyE4V z0+F`+f#4t|-g|8;-;i;8AMMij-u?R)`q=EOhdu!8_oda=MptIvR{nMSL*53^hi$aH z#Pi07&Ywo-0;=Z9(h|;}Sf`IE#k0oILx&C>J$TUAGoDPE$&ZY??)vMWPMtbs^iG`E z_~VJIhLg`b_!y7f|D#9lzyC4gp1bdU@i%whV;uV3&wl#A0}mLfRO);_pVxLi7wh+W zW=^vv$BvJw+e(oTqhxw^-gi%>_s}W>W{Z?QZNJ-Xe&9EJf0YkL!)X5J!)Bw?>4Xpd zE&S&jYhkC^+@Sc-;Yb+QBrS!l7x&naBS#J&K4xp<636!#>0G{W;E^1D*w{ly%S`dN z9~8frGHAWaizgk#uhDrSRxOvD(o-khpc;F))A_c{hcizuo~HOd+&O#p^y$-2RS@5^ zXD=UasC+3`N_74=I`~(vl*^T8+~C5U4|n=f9>e7d$-mIK96RScaq{E|H#m6Vw%hh$ z9M$a%AV-%>p-{+=O#-Ge8Ek;f{euw2OzX}9NI0L7T-Xhc-|i2QVp+?!DGE4%XxF%C za!KdNiR=P>sQeVC>n@VwW<|SN+bi2suD06C1^}bG|{S?D~w$t z)~dHl)?ROe-vL|Cf*$X27GL$&*Ta5O^aw;r)c-;~N4(KT#KNi=e)6Vxde|2=u{a#| zYof6#>g!=OS~&-Yq36=DzjP6N_4Q~a?AN|%tTw06T7`o3bEF*qN@C*;&l6!okbi6a zvZ#8Z=D{!5L(^LlJ_e%57waSjxeLmFz7^ol+WTGnuyPLNEdX+$zw-|GfY*t?jxXjx zIIKb+_16Zk5)M4?IkEb_s7DxQy_hGl6F=;s!0Zu@K79-N!akPmoVapD#^V_(KVff| z@I~YGRrBL`v&mHs8!$b)sO;tUyW#kCr4RNsL4=aKux#N?GgSIeh}VoS<8gWHTkYsL_$!XZZg6+ zr}4Wmeo#~VxVl=@$I0%{okwRmhIYWR>NT6)Zg<-Vm5M=sFd%=eZFKd37C8DDNIy`+enWD+kU2kA*9k-C1Nu|RSjUeqEG!fQ+`GwidUlo{;qXQyE$Yeym@cl zyqS6PW@g_b(cX|f3ql2%rQoq)mMOwTJ%90{X1}P|v%R%{H~XCjzG)ArfF>Q+-?a2^ zo4iRr3I?lS4;?_}2^wP8_x<) zOw%+Oog1>T3?k-b9z(Z^Wo*>_F&gko z7wQE=rQk`;h#SVb%1?oDhe@Ms(9iuk#y@GWUw*SsnKVUF+ zO!CLG=m$myn|1H|}4F{G(0^RA2K(lblJE@MMC*uc-9Dnzzn>vW_r zpe}T~LMxb=B7p0YQ@e5{isD%4Sf3^gsInnb8s0nr9jkD!&V>BD#8};^95R_Pf^V$c zTwPO42pj2$cr>hEgP{u^2~in8Z-dfrqk_7;j?FbDv+aPKCIhf6Y6XE{B1sTt%+~Mx zT4zgt_x!R<2fo7noiE>=55YCawhk2FMV?*1^VS4@uy4I1{8?t$jU(yfTf2R={85i_ zmW`@=hsRicKrhdXHoENnvJxeIsuT`YEZbeb^VH?@dU=7ZW#P(Lq~Vo=zw$BGIy198 z-Ckuf0Gox;N_)Y2nlE@yVjPT$LKaV1(E=KfUJa#Tq(YxX0!E?(-C^AX=boTePi`d% z(I~&>qOxG}l6}pvB#tSfu7s{gwoK>_vC=p_Gt=(%5W_hr`qylm-2`=(!8V$R#&wjZ z`MMBfI=wRH=Nkn5=!eHz1#^q2&L|74vhUg--3i`&!*Pm-T*rCs))xavCrjF}?qfJ0FvbC{WOf9hv!CIeL9k0XaulR{zQMvWnWMOkP#v1I|P9?*dU zC7TP~cImywnYDab-sz`#mpc-7Av)|G07Vq3(#Erspfqh}T+s@lx>Uj*OnF^$mFFe? zaHBK)FAVQ&D$zIAUzm!aVC*johQqO*-v5Mob{7LVI3xH8-w1sE`zSmNVXS6{tx%&l zivIndpV{GG6ENIPx9~Me`zc=?WSMe0y4}=vHASItIKmCPT5nRxad6Xqy@MLVfDam% zn;h^|&=ILfct<$6-P%IO;{^GJYdH~;9!J~ntLlkr+B0`3wJyuBPP&qI+F6~u2v=FZ zx%qHM)+2nGua64`?ociy=|_RsTT{};+AxYy-!%-lAWI*H8{#M~n4AmMHluhRwHI#W zbHYAS`O0M6XTdHqj{&D5FnjXDMgA7x_28KI6!Y!}F66Hpa678hKon{qD#fzgV3r5h z_`%X{ukrH)DRUi~xNd3rVbp2XtL0pCX!IJoveN9voCbc@i8^mIs$~u`0Ny{3b{^in zaSN$w1us@97&lj!Wgh#|EbK8ZTFRbbDN#G`G;4L-?5JL;mW)hbCgplK z#2W2D1Su`*W)^};Nm0u9t!>5z2fD+Frva+~EY#(C4TK@)1{{=(8T9$eA+t`n2#}vE zOBjRn^2ks!VmRh1&mdl$(+?^|qCr2|WxJ9jx(#1$nFH2#m^fn-5fWZAyT;LWZLqxd zZou}SVF*~p(*V&|8VSG9@IYSa(%;`c*HOnJ*2KwGU|TNnNUX6f3B&)={NUV)^{a5d-s3GAV*(NL3>dZS)H$~8{^jF6c9 z8I1Wxqgt(^Y86kOJXWlNz-!ejVHiKw$Cobi?=flm#jVR@p}2<`daCG@xfdr_C_<)N zhcJw&lO($O)ehpW0O%x3OH)%*hd8O1mTq@rCIX7K{OS@X5WzPh8(-(EUMES_dQ9^@ z4OiRbHZ`bFE|-Yruh#1=EuZJO_)X4J%W`y#sOn+zWH4~~*$Y6)Kx)d57hFNoP=q2H zI7t99gdN;xP*m0D_VIZqP;;P5NOOz=GIiOpRb7KT06sL1BUJ_lpvyVun>wSUX=D0NS^ zV$>eZlPkt4SPK8yPHRzZ1+L+wcMX^MnNY@q!J?=_EVODWIQXK$drysngh5a4VOKsi zUhZ@9b9V~mYK3aeeXpz4~J);d+h{MUtA69Q(>vT*$O zsD9G(s5nDx-?8!{wLO~iV3+Tq>vhP*gk`xj%geCtC)$48z7P;?I(DM!dEQw<13~!R z%CcU46@0+6%-=$beK0PzA&X9@T|)hm3}#;DVP4_EMTc*Cm;cEr z-1S&(0VRX6*G*INBe`N`>NuD@d080g*5^zewSo_f$I;!*ZN?jV{>Q(XPho!wn2t|RmZx{uN? z!1DR4sBj{75cxhAYTFrE_>AuE?(Uu(^0kVM9)p#C@S4DTA5O#P!3fcXJX2pQLw$Le zKd<~|;xj=F_Ftan{b}O27=t=D%kueS`z->5G(NRSs@^Tmb41dM-Gs_k6@OtA#riqr L?^mnx_vH2~ALP;s literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_proms.bat b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_proms.bat new file mode 100644 index 00000000..d22c0b3d --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_proms.bat @@ -0,0 +1,15 @@ +copy /b a-4e-c.bin + a-4d-c.bin prog.bin +make_vhdl_prom.exe prog.bin prog.vhd + + +copy /b a-3e-.bin + a-3f-.bin + a-3h-.bin snd.bin +make_vhdl_prom.exe snd.bin snd_prg.vhd + +copy /b prog.bin + snd.bin KUNGFUM.ROM + + + +copy /b b-4k-.bin + b-4f-.bin + b-4l-.bin + b-4h-.bin spr1.bin +copy /b b-3n-.bin + b-4n-.bin + b-4m-.bin + b-3m-.bin spr2.bin +copy /b b-4c-.bin + b-4e-.bin + b-4d-.bin + b-4a-.bin spr3.bin +pause \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_vhdl_prom.exe b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_vhdl_prom.exe new file mode 100644 index 0000000000000000000000000000000000000000..1e5618bf9417eaeb90556e3021a78e9860a815e8 GIT binary patch literal 119861 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 D7nvmt literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.vhd new file mode 100644 index 00000000..f95fd9cf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.vhd @@ -0,0 +1,2070 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity prog is +port ( + clk : in std_logic; + addr : in std_logic_vector(14 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of prog is + type rom is array(0 to 32767) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"F3",X"ED",X"56",X"31",X"00",X"F0",X"21",X"00",X"E0",X"11",X"01",X"E0",X"01",X"FF",X"0F",X"36", + X"00",X"ED",X"B0",X"21",X"25",X"EB",X"22",X"03",X"EB",X"DB",X"04",X"CB",X"7F",X"CA",X"66",X"76", + X"CD",X"8F",X"05",X"21",X"CC",X"05",X"11",X"06",X"EA",X"01",X"78",X"00",X"ED",X"B0",X"2A",X"3F", + X"06",X"7D",X"6C",X"67",X"18",X"4C",X"C7",X"C7",X"08",X"D9",X"2A",X"03",X"EB",X"11",X"20",X"C0", + X"01",X"C0",X"00",X"ED",X"B0",X"3A",X"02",X"E9",X"32",X"00",X"A0",X"3A",X"03",X"E9",X"32",X"00", + X"B0",X"FD",X"E5",X"DD",X"E5",X"C3",X"8D",X"00",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"ED",X"45",X"63",X"AD",X"9C",X"52",X"72",X"CF",X"87",X"41", + X"54",X"37",X"A7",X"43",X"91",X"51",X"A7",X"43",X"91",X"51",X"9F",X"B8",X"E5",X"D6",X"85",X"56", + X"35",X"23",X"22",X"80",X"E9",X"21",X"17",X"E9",X"34",X"FB",X"C3",X"7E",X"48",X"3A",X"00",X"E0", + X"A7",X"FA",X"F8",X"01",X"DB",X"04",X"CB",X"67",X"20",X"1D",X"21",X"05",X"E0",X"CB",X"7E",X"20", + X"16",X"CB",X"46",X"DB",X"00",X"20",X"09",X"E6",X"02",X"20",X"0C",X"CB",X"C6",X"C3",X"F0",X"01", + X"E6",X"01",X"C2",X"F0",X"01",X"CB",X"86",X"DB",X"04",X"CB",X"5F",X"20",X"10",X"21",X"04",X"E9", + X"CB",X"4E",X"28",X"09",X"21",X"0E",X"E8",X"35",X"F2",X"F0",X"01",X"36",X"08",X"3A",X"00",X"E0", + X"FE",X"06",X"3E",X"47",X"28",X"02",X"ED",X"5F",X"21",X"10",X"E0",X"86",X"77",X"23",X"86",X"77", + X"21",X"14",X"E0",X"34",X"7E",X"E6",X"03",X"16",X"00",X"5F",X"3A",X"00",X"E0",X"21",X"7E",X"00", + X"FE",X"06",X"28",X"13",X"21",X"6E",X"00",X"3A",X"80",X"E0",X"E6",X"38",X"FE",X"20",X"38",X"02", + X"3E",X"18",X"0F",X"4F",X"06",X"00",X"09",X"19",X"7E",X"21",X"15",X"E0",X"86",X"77",X"23",X"86", + X"77",X"23",X"86",X"77",X"CD",X"05",X"0D",X"CD",X"48",X"0D",X"CD",X"2F",X"48",X"CD",X"E5",X"0D", + X"3A",X"01",X"E0",X"A7",X"20",X"07",X"3A",X"13",X"E9",X"A7",X"C2",X"17",X"02",X"CD",X"F8",X"03", + X"3A",X"00",X"E0",X"FE",X"0B",X"D2",X"DD",X"01",X"3E",X"18",X"32",X"00",X"EB",X"21",X"25",X"EB", + X"22",X"03",X"EB",X"22",X"01",X"EB",X"3A",X"00",X"E0",X"87",X"5F",X"16",X"00",X"21",X"56",X"01", + X"19",X"5E",X"23",X"56",X"EB",X"E9",X"C4",X"01",X"C4",X"01",X"BE",X"01",X"68",X"01",X"68",X"01", + X"B4",X"01",X"68",X"01",X"B9",X"01",X"BE",X"01",X"CD",X"3F",X"41",X"CD",X"2C",X"40",X"3A",X"80", + X"E0",X"E6",X"07",X"FE",X"04",X"28",X"08",X"CD",X"E5",X"40",X"CD",X"B3",X"1C",X"18",X"06",X"CD", + X"B3",X"1C",X"CD",X"E5",X"40",X"CD",X"B6",X"47",X"3A",X"00",X"E1",X"A7",X"28",X"0E",X"FE",X"0A", + X"38",X"05",X"CD",X"DE",X"37",X"18",X"08",X"CD",X"95",X"35",X"18",X"03",X"CD",X"AC",X"12",X"CD", + X"C7",X"2F",X"3A",X"3F",X"E3",X"A7",X"C4",X"C1",X"2E",X"CD",X"C0",X"39",X"CD",X"72",X"2D",X"CD", + X"06",X"2F",X"18",X"10",X"CD",X"24",X"4D",X"18",X"0B",X"CD",X"36",X"54",X"18",X"06",X"CD",X"00", + X"40",X"CD",X"E5",X"40",X"3A",X"00",X"EB",X"A7",X"28",X"13",X"47",X"FD",X"2A",X"01",X"EB",X"AF", + X"11",X"08",X"00",X"FD",X"77",X"04",X"FD",X"77",X"05",X"FD",X"19",X"10",X"F6",X"3A",X"00",X"E0", + X"FE",X"06",X"3E",X"37",X"28",X"02",X"ED",X"5F",X"21",X"12",X"E0",X"86",X"77",X"23",X"86",X"77", + X"DD",X"E1",X"FD",X"E1",X"D9",X"08",X"FB",X"C9",X"F5",X"3E",X"18",X"32",X"00",X"EB",X"21",X"25", + X"EB",X"22",X"03",X"EB",X"22",X"01",X"EB",X"F1",X"3C",X"C4",X"AE",X"7A",X"CD",X"F8",X"03",X"CD", + X"05",X"0D",X"CD",X"E5",X"0D",X"18",X"AD",X"31",X"00",X"F0",X"3E",X"01",X"32",X"01",X"E0",X"AF", + X"32",X"00",X"E0",X"FB",X"CD",X"78",X"51",X"3E",X"FF",X"32",X"06",X"E0",X"21",X"80",X"E0",X"11", + X"81",X"E0",X"01",X"1F",X"00",X"36",X"00",X"ED",X"B0",X"DB",X"03",X"E6",X"01",X"20",X"08",X"3E", + X"08",X"32",X"80",X"E0",X"32",X"90",X"E0",X"CD",X"6F",X"05",X"32",X"84",X"E0",X"32",X"94",X"E0", + X"21",X"05",X"E0",X"CB",X"BE",X"AF",X"32",X"00",X"E0",X"DB",X"04",X"E6",X"02",X"21",X"10",X"E9", + X"28",X"0B",X"3A",X"02",X"E0",X"E6",X"01",X"28",X"04",X"CB",X"C6",X"18",X"02",X"CB",X"86",X"21", + X"85",X"E0",X"CB",X"4E",X"20",X"0F",X"CB",X"CE",X"CD",X"0D",X"52",X"3E",X"E1",X"CD",X"0F",X"57", + X"3E",X"70",X"CD",X"0F",X"57",X"CD",X"57",X"11",X"AF",X"32",X"07",X"E0",X"32",X"08",X"E0",X"CD", + X"49",X"04",X"3E",X"04",X"32",X"00",X"E0",X"3E",X"24",X"CD",X"FE",X"0D",X"DB",X"04",X"CB",X"67", + X"28",X"0C",X"CB",X"6F",X"20",X"08",X"21",X"04",X"E9",X"CB",X"46",X"C2",X"9C",X"03",X"3A",X"00", + X"E0",X"FE",X"0B",X"CA",X"3A",X"03",X"FE",X"0C",X"CA",X"C0",X"02",X"CD",X"B8",X"0F",X"18",X"DC", + X"3E",X"00",X"CD",X"FE",X"0D",X"3E",X"22",X"CD",X"FE",X"0D",X"3E",X"E1",X"CD",X"82",X"05",X"3E", + X"38",X"CD",X"82",X"05",X"3E",X"01",X"CD",X"82",X"05",X"21",X"09",X"E7",X"7E",X"A7",X"FA",X"EA", + X"02",X"35",X"CD",X"97",X"2F",X"CD",X"5F",X"05",X"18",X"EA",X"11",X"00",X"00",X"D5",X"3E",X"03", + X"CD",X"82",X"05",X"D1",X"2A",X"03",X"E0",X"7D",X"B4",X"28",X"22",X"7B",X"C6",X"01",X"27",X"5F", + X"ED",X"52",X"19",X"30",X"02",X"5D",X"54",X"7D",X"93",X"27",X"6F",X"7C",X"9A",X"27",X"67",X"22", + X"03",X"E0",X"D5",X"CD",X"9A",X"2F",X"3E",X"16",X"CD",X"FE",X"0D",X"18",X"D1",X"3E",X"38",X"CD", + X"82",X"05",X"3A",X"80",X"E0",X"E6",X"01",X"C4",X"C2",X"53",X"3A",X"80",X"E0",X"E6",X"07",X"FE", + X"04",X"CC",X"E9",X"4F",X"CD",X"32",X"04",X"CD",X"50",X"02",X"3E",X"2D",X"CD",X"0F",X"57",X"2A", + X"03",X"E0",X"7D",X"B4",X"CC",X"B5",X"56",X"21",X"84",X"E0",X"35",X"28",X"10",X"3A",X"07",X"E0", + X"A7",X"28",X"0D",X"CD",X"FE",X"0D",X"3E",X"A9",X"CD",X"0F",X"57",X"18",X"03",X"CD",X"F4",X"54", + X"21",X"02",X"E0",X"CB",X"4E",X"28",X"1B",X"3A",X"94",X"E0",X"A7",X"28",X"15",X"7E",X"EE",X"01", + X"77",X"06",X"10",X"21",X"80",X"E0",X"11",X"90",X"E0",X"4E",X"1A",X"EB",X"71",X"12",X"23",X"13", + X"10",X"F7",X"3A",X"84",X"E0",X"A7",X"C2",X"50",X"02",X"21",X"10",X"E9",X"CB",X"86",X"AF",X"32", + X"06",X"E0",X"3A",X"13",X"E9",X"A7",X"C2",X"17",X"02",X"C3",X"7E",X"48",X"21",X"05",X"E0",X"CB", + X"FE",X"3E",X"00",X"CD",X"FE",X"0D",X"AF",X"32",X"00",X"E0",X"CD",X"57",X"11",X"21",X"00",X"00", + X"22",X"02",X"E9",X"CD",X"0D",X"57",X"21",X"5B",X"59",X"CD",X"1C",X"11",X"0E",X"14",X"11",X"A7", + X"D3",X"3A",X"80",X"E0",X"E6",X"F8",X"0F",X"0F",X"0F",X"CD",X"5B",X"05",X"11",X"27",X"D4",X"CD", + X"56",X"05",X"3A",X"06",X"E9",X"E6",X"A0",X"20",X"F9",X"21",X"04",X"E9",X"CB",X"4E",X"C2",X"50", + X"02",X"21",X"06",X"E9",X"CB",X"7E",X"20",X"06",X"CB",X"6E",X"20",X"07",X"18",X"EB",X"CD",X"1B", + X"04",X"18",X"C9",X"CD",X"32",X"04",X"18",X"C4",X"21",X"80",X"E8",X"35",X"23",X"7E",X"A7",X"28", + X"01",X"35",X"23",X"7E",X"A7",X"28",X"01",X"35",X"23",X"7E",X"A7",X"28",X"01",X"35",X"23",X"7E", + X"A7",X"28",X"01",X"35",X"23",X"7E",X"A7",X"28",X"01",X"35",X"C9",X"21",X"80",X"E0",X"35",X"7E", + X"E6",X"07",X"FE",X"07",X"C0",X"7E",X"E6",X"F8",X"FE",X"F8",X"20",X"02",X"3E",X"28",X"F6",X"04", + X"77",X"C9",X"21",X"80",X"E0",X"34",X"7E",X"E6",X"07",X"FE",X"05",X"C0",X"7E",X"E6",X"F8",X"C6", + X"08",X"FE",X"30",X"20",X"02",X"3E",X"28",X"77",X"C9",X"32",X"1C",X"E8",X"3E",X"01",X"32",X"00", + X"E0",X"CD",X"44",X"06",X"3A",X"80",X"E0",X"E6",X"01",X"21",X"21",X"00",X"20",X"03",X"21",X"E0", + X"BF",X"E5",X"22",X"17",X"E8",X"CD",X"9B",X"0E",X"AF",X"32",X"15",X"E9",X"CD",X"56",X"57",X"3A", + X"1C",X"E8",X"A7",X"CC",X"E5",X"04",X"3E",X"02",X"32",X"00",X"E0",X"3E",X"27",X"CD",X"0F",X"57", + X"21",X"07",X"00",X"22",X"17",X"E8",X"21",X"15",X"E9",X"34",X"21",X"A1",X"5A",X"CD",X"BF",X"04", + X"3E",X"0B",X"CD",X"0F",X"57",X"21",X"15",X"E9",X"34",X"21",X"F0",X"5A",X"CD",X"BF",X"04",X"3A", + X"1C",X"E8",X"A7",X"21",X"3F",X"05",X"CC",X"1C",X"11",X"3E",X"54",X"CD",X"0F",X"57",X"E1",X"22", + X"17",X"E8",X"CD",X"56",X"57",X"21",X"00",X"00",X"22",X"14",X"E0",X"22",X"16",X"E0",X"C9",X"3A", + X"80",X"E0",X"E6",X"07",X"C8",X"E6",X"01",X"CA",X"1C",X"11",X"CD",X"56",X"57",X"3A",X"15",X"E9", + X"FE",X"02",X"C0",X"21",X"D9",X"04",X"C3",X"1C",X"11",X"FD",X"67",X"D6",X"FE",X"92",X"81",X"7F", + X"FD",X"A7",X"D6",X"83",X"FF",X"21",X"FD",X"04",X"CD",X"1C",X"11",X"3A",X"02",X"E0",X"E6",X"01", + X"3C",X"CD",X"08",X"11",X"CD",X"1C",X"11",X"CD",X"56",X"05",X"C3",X"1C",X"11",X"FD",X"67",X"D3", + X"FE",X"DB",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"FD",X"A7",X"D3",X"20",X"FF",X"2D",X"50",X"4C",X"41",X"59",X"45",X"52", + X"20",X"FF",X"2D",X"46",X"4C",X"4F",X"4F",X"52",X"20",X"FD",X"E7",X"D3",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"FF",X"FE", + X"DB",X"FD",X"2C",X"D4",X"20",X"52",X"45",X"41",X"44",X"59",X"20",X"FD",X"6C",X"D4",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"FF",X"3A",X"80",X"E0",X"E6",X"07",X"3C",X"C3",X"08",X"11",X"3A", + X"83",X"E8",X"A7",X"C0",X"3E",X"03",X"32",X"83",X"E8",X"3E",X"16",X"CD",X"FE",X"0D",X"C9",X"DB", + X"03",X"2F",X"E6",X"0C",X"0F",X"0F",X"C6",X"02",X"FE",X"04",X"D0",X"3C",X"FE",X"03",X"C8",X"3E", + X"02",X"C9",X"32",X"82",X"E8",X"CD",X"E3",X"0F",X"3A",X"82",X"E8",X"A7",X"20",X"F7",X"C9",X"DB", + X"03",X"2F",X"1F",X"1F",X"1F",X"1F",X"47",X"21",X"0A",X"E9",X"DB",X"04",X"CB",X"57",X"20",X"11", + X"78",X"3C",X"E6",X"03",X"77",X"23",X"78",X"1F",X"1F",X"E6",X"03",X"FE",X"02",X"DE",X"F5",X"77", + X"C9",X"78",X"3C",X"E6",X"0F",X"FE",X"07",X"38",X"0A",X"FE",X"09",X"38",X"04",X"FE",X"0E",X"38", + X"02",X"3E",X"01",X"CB",X"5F",X"28",X"01",X"3C",X"77",X"23",X"77",X"C9",X"00",X"14",X"95",X"54", + X"41",X"2E",X"00",X"15",X"38",X"41",X"41",X"41",X"00",X"15",X"72",X"4E",X"4E",X"49",X"00",X"16", + X"52",X"41",X"41",X"41",X"00",X"18",X"21",X"49",X"4B",X"4F",X"00",X"19",X"85",X"41",X"49",X"2E", + X"00",X"20",X"07",X"41",X"4E",X"4F",X"00",X"21",X"01",X"4D",X"2E",X"4B",X"00",X"25",X"51",X"49", + X"49",X"41",X"00",X"25",X"70",X"48",X"41",X"54",X"00",X"26",X"35",X"41",X"2E",X"54",X"00",X"28", + X"11",X"59",X"45",X"2E",X"00",X"30",X"21",X"53",X"41",X"49",X"00",X"35",X"50",X"49",X"48",X"4D", + X"00",X"38",X"10",X"41",X"4E",X"49",X"00",X"39",X"18",X"54",X"53",X"49",X"00",X"39",X"75",X"42", + X"41",X"48",X"00",X"40",X"10",X"54",X"2E",X"4B",X"00",X"43",X"15",X"53",X"55",X"49",X"00",X"48", + X"52",X"4E",X"2E",X"41",X"21",X"80",X"00",X"22",X"02",X"E9",X"21",X"25",X"EB",X"11",X"26",X"EB", + X"01",X"BF",X"00",X"36",X"00",X"ED",X"B0",X"CD",X"4D",X"07",X"CD",X"BE",X"06",X"21",X"80",X"E3", + X"11",X"81",X"E3",X"01",X"31",X"01",X"36",X"00",X"ED",X"B0",X"CD",X"66",X"08",X"21",X"8A",X"08", + X"09",X"7E",X"32",X"00",X"E1",X"A7",X"28",X"11",X"21",X"B0",X"08",X"11",X"60",X"E3",X"01",X"18", + X"00",X"CD",X"B2",X"06",X"3E",X"01",X"32",X"80",X"E3",X"21",X"20",X"E5",X"11",X"21",X"E5",X"01", + X"43",X"01",X"36",X"00",X"ED",X"B0",X"CD",X"66",X"08",X"21",X"9E",X"08",X"09",X"7E",X"A7",X"C8", + X"32",X"00",X"E1",X"21",X"20",X"09",X"11",X"00",X"E5",X"01",X"11",X"00",X"CD",X"B2",X"06",X"C3", + X"53",X"3D",X"87",X"C5",X"4F",X"09",X"C1",X"7E",X"23",X"66",X"6F",X"ED",X"B0",X"C9",X"21",X"00", + X"E7",X"11",X"01",X"E7",X"01",X"23",X"00",X"36",X"00",X"ED",X"B0",X"3A",X"80",X"E0",X"E6",X"07", + X"87",X"4F",X"21",X"80",X"08",X"09",X"7E",X"23",X"66",X"6F",X"22",X"03",X"E0",X"3E",X"3F",X"32", + X"09",X"E7",X"21",X"00",X"50",X"22",X"10",X"E7",X"3A",X"80",X"E0",X"E6",X"01",X"32",X"01",X"E1", + X"28",X"2B",X"21",X"00",X"E7",X"36",X"20",X"23",X"36",X"40",X"21",X"40",X"CE",X"22",X"02",X"E1", + X"21",X"00",X"09",X"22",X"12",X"E7",X"21",X"00",X"10",X"22",X"07",X"E7",X"21",X"00",X"CD",X"22", + X"06",X"E1",X"21",X"C0",X"02",X"22",X"04",X"E1",X"3E",X"01",X"C3",X"49",X"07",X"3A",X"80",X"E0", + X"E6",X"07",X"21",X"E0",X"10",X"FE",X"04",X"20",X"03",X"21",X"00",X"10",X"22",X"02",X"E1",X"21", + X"60",X"D5",X"22",X"12",X"E7",X"21",X"00",X"D0",X"22",X"07",X"E7",X"21",X"40",X"DC",X"22",X"06", + X"E1",X"21",X"C0",X"11",X"22",X"04",X"E1",X"3E",X"DF",X"32",X"14",X"E7",X"C9",X"21",X"00",X"E2", + X"11",X"01",X"E2",X"01",X"52",X"01",X"36",X"00",X"ED",X"B0",X"3A",X"80",X"E0",X"E6",X"07",X"FE", + X"04",X"20",X"2E",X"21",X"00",X"06",X"22",X"42",X"E3",X"21",X"80",X"07",X"22",X"4E",X"E3",X"21", + X"00",X"50",X"22",X"44",X"E3",X"22",X"50",X"E3",X"3E",X"04",X"32",X"46",X"E3",X"3E",X"07",X"32", + X"52",X"E3",X"3E",X"40",X"32",X"4C",X"E3",X"3E",X"50",X"32",X"40",X"E3",X"3E",X"05",X"32",X"47", + X"E3",X"DD",X"21",X"D8",X"E2",X"DD",X"36",X"0A",X"3F",X"DD",X"36",X"07",X"07",X"21",X"00",X"50", + X"22",X"DC",X"E2",X"3A",X"80",X"E0",X"E6",X"01",X"21",X"00",X"15",X"11",X"00",X"31",X"28",X"06", + X"21",X"00",X"CC",X"11",X"00",X"B0",X"22",X"DA",X"E2",X"ED",X"53",X"D3",X"E2",X"CD",X"66",X"08", + X"C5",X"CB",X"21",X"C5",X"C5",X"21",X"B0",X"09",X"09",X"7E",X"23",X"66",X"6F",X"11",X"9C",X"E1", + X"01",X"1D",X"00",X"ED",X"B0",X"21",X"80",X"09",X"C1",X"09",X"7E",X"23",X"66",X"6F",X"B4",X"28", + X"05",X"01",X"08",X"00",X"ED",X"B0",X"C1",X"21",X"E0",X"0B",X"09",X"11",X"96",X"E1",X"ED",X"A0", + X"ED",X"A0",X"AF",X"12",X"C1",X"21",X"18",X"0B",X"09",X"7E",X"32",X"C1",X"E1",X"21",X"08",X"0C", + X"09",X"7E",X"32",X"99",X"E1",X"32",X"9A",X"E1",X"32",X"9B",X"E1",X"FD",X"21",X"00",X"00",X"21", + X"2E",X"0C",X"09",X"09",X"5E",X"23",X"56",X"FD",X"19",X"DD",X"21",X"0A",X"E1",X"11",X"1C",X"0C", + X"06",X"23",X"CD",X"45",X"08",X"FD",X"23",X"10",X"F9",X"21",X"FF",X"E1",X"22",X"08",X"E1",X"CD", + X"66",X"08",X"50",X"59",X"21",X"2C",X"0B",X"19",X"EB",X"29",X"29",X"29",X"19",X"11",X"F0",X"E1", + X"0E",X"09",X"ED",X"B0",X"C9",X"FD",X"7E",X"00",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD",X"51",X"08", + X"F1",X"E6",X"0F",X"87",X"26",X"00",X"6F",X"19",X"7E",X"DD",X"77",X"00",X"23",X"7E",X"DD",X"77", + X"01",X"DD",X"23",X"DD",X"23",X"C9",X"3A",X"80",X"E0",X"6F",X"E6",X"07",X"67",X"7D",X"E6",X"38", + X"FE",X"20",X"38",X"02",X"3E",X"18",X"0F",X"6F",X"0F",X"0F",X"85",X"84",X"4F",X"06",X"00",X"C9", + X"00",X"20",X"00",X"20",X"00",X"20",X"00",X"20",X"00",X"20",X"00",X"01",X"00",X"02",X"00",X"00", + X"03",X"00",X"02",X"00",X"00",X"04",X"00",X"02",X"00",X"00",X"05",X"00",X"02",X"00",X"00",X"00", + X"00",X"0A",X"00",X"00",X"00",X"00",X"0B",X"00",X"00",X"00",X"00",X"0C",X"00",X"00",X"00",X"00", + X"0D",X"00",X"BC",X"08",X"1C",X"09",X"D4",X"08",X"EC",X"08",X"04",X"09",X"00",X"00",X"70",X"00", + X"0D",X"54",X"A8",X"43",X"5A",X"70",X"66",X"CC",X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01", + X"4B",X"01",X"7C",X"00",X"00",X"00",X"70",X"00",X"0D",X"54",X"A8",X"2D",X"43",X"5A",X"66",X"CC", + X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01",X"4B",X"01",X"7C",X"00",X"00",X"00",X"70",X"00", + X"0D",X"54",X"A8",X"1C",X"38",X"43",X"66",X"CC",X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01", + X"4B",X"01",X"7C",X"00",X"00",X"00",X"70",X"00",X"0D",X"54",X"A8",X"1C",X"2D",X"38",X"66",X"CC", + X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01",X"4B",X"01",X"7C",X"00",X"00",X"00",X"00",X"36", + X"00",X"30",X"49",X"00",X"00",X"00",X"61",X"00",X"A4",X"00",X"36",X"00",X"16",X"00",X"52",X"00", + X"49",X"00",X"2D",X"00",X"3C",X"09",X"4D",X"09",X"5E",X"09",X"6F",X"09",X"20",X"00",X"32",X"00", + X"28",X"00",X"33",X"00",X"23",X"00",X"6B",X"07",X"7F",X"3F",X"3F",X"38",X"70",X"32",X"00",X"3B", + X"00",X"3F",X"00",X"50",X"00",X"38",X"00",X"6B",X"07",X"B2",X"3F",X"66",X"38",X"70",X"32",X"00", + X"3B",X"00",X"3F",X"00",X"50",X"00",X"38",X"00",X"38",X"04",X"7F",X"66",X"66",X"1C",X"38",X"3B", + X"00",X"44",X"00",X"4A",X"00",X"5F",X"00",X"44",X"00",X"38",X"04",X"B2",X"66",X"7F",X"1C",X"38", + X"00",X"00",X"A8",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"A8",X"09",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"A8",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"A8",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"B3",X"FF",X"07",X"00",X"2E",X"00",X"D7",X"00", + X"D8",X"09",X"E1",X"09",X"EF",X"09",X"FD",X"09",X"0B",X"0A",X"28",X"0A",X"31",X"0A",X"3F",X"0A", + X"4D",X"0A",X"5B",X"0A",X"78",X"0A",X"81",X"0A",X"8F",X"0A",X"9D",X"0A",X"AB",X"0A",X"C8",X"0A", + X"D1",X"0A",X"DF",X"0A",X"ED",X"0A",X"FB",X"0A",X"99",X"E5",X"66",X"99",X"54",X"A8",X"21",X"16", + X"0B",X"66",X"7F",X"CC",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"1C",X"2D",X"38",X"CC", + X"E5",X"A8",X"FC",X"54",X"A8",X"2D",X"5A",X"70",X"00",X"00",X"00",X"00",X"16",X"54",X"A8",X"99", + X"B7",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"38",X"70",X"A9",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"99",X"7F",X"66",X"7F", + X"CC",X"66",X"4C",X"7F",X"99",X"7F",X"7F",X"4C",X"7F",X"BF",X"33",X"66",X"54",X"A8",X"1F",X"15", + X"0B",X"4C",X"66",X"B2",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"1C",X"2D",X"38",X"B2", + X"E5",X"A8",X"FC",X"54",X"A8",X"21",X"38",X"5A",X"00",X"00",X"00",X"00",X"10",X"54",X"A8",X"7F", + X"B2",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"1C",X"38",X"70",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"99",X"7F",X"7F",X"7F", + X"CC",X"7F",X"66",X"7F",X"99",X"7F",X"7F",X"7F",X"4C",X"B2",X"33",X"66",X"54",X"A8",X"1C",X"13", + X"0B",X"33",X"7F",X"CC",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"10",X"1C",X"2D",X"99", + X"E5",X"7F",X"FC",X"54",X"A8",X"16",X"2D",X"43",X"00",X"00",X"00",X"00",X"0B",X"54",X"A8",X"66", + X"B2",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"1C",X"38",X"70",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"CC",X"CC",X"7F",X"CC", + X"CC",X"7F",X"4C",X"7F",X"CC",X"CC",X"CC",X"4C",X"4C",X"99",X"33",X"66",X"54",X"A8",X"19",X"13", + X"0B",X"19",X"7F",X"E5",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"10",X"1C",X"2D",X"7F", + X"CC",X"54",X"FC",X"54",X"A8",X"16",X"2D",X"43",X"00",X"00",X"00",X"00",X"0B",X"54",X"A8",X"54", + X"A8",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"1C",X"1C",X"70",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"E5",X"CC",X"7F",X"CC", + X"E5",X"99",X"7F",X"7F",X"E5",X"CC",X"CC",X"7F",X"00",X"00",X"26",X"33",X"4C",X"00",X"19",X"26", + X"33",X"4C",X"00",X"19",X"33",X"4C",X"66",X"00",X"19",X"4C",X"66",X"7F",X"04",X"3F",X"5A",X"B4", + X"E1",X"1A",X"01",X"49",X"00",X"04",X"3F",X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00",X"04",X"55", + X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00",X"04",X"55",X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00", + X"04",X"66",X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00",X"04",X"66",X"5A",X"B4",X"E1",X"E1",X"00", + X"52",X"00",X"04",X"66",X"5A",X"B4",X"E1",X"E1",X"00",X"52",X"00",X"04",X"66",X"5A",X"B4",X"E1", + X"E1",X"00",X"52",X"00",X"04",X"66",X"5A",X"B4",X"E1",X"E1",X"00",X"52",X"00",X"04",X"66",X"5A", + X"B4",X"E1",X"E1",X"00",X"52",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04", + X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B", + X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9", + X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4", + X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F", + X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00", + X"03",X"03",X"04",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03", + X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"04",X"05",X"04",X"05",X"03", + X"05",X"03",X"05",X"03",X"05",X"05",X"05",X"05",X"0D",X"0C",X"0B",X"0A",X"09",X"0B",X"0A",X"09", + X"08",X"08",X"0A",X"09",X"09",X"08",X"07",X"09",X"08",X"08",X"07",X"07",X"80",X"00",X"00",X"1C", + X"00",X"38",X"00",X"70",X"00",X"E1",X"04",X"1C",X"04",X"38",X"04",X"70",X"04",X"E1",X"56",X"0C", + X"79",X"0C",X"9C",X"0C",X"BF",X"0C",X"E2",X"0C",X"56",X"0C",X"79",X"0C",X"9C",X"0C",X"BF",X"0C", + X"E2",X"0C",X"56",X"0C",X"79",X"0C",X"9C",X"0C",X"BF",X"0C",X"E2",X"0C",X"56",X"0C",X"79",X"0C", + X"9C",X"0C",X"BF",X"0C",X"E2",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"03",X"00",X"04",X"42",X"43",X"43",X"42",X"44",X"23",X"34",X"43",X"43",X"43",X"33",X"34", + X"34",X"43",X"43",X"33",X"43",X"34",X"43",X"30",X"00",X"00",X"61",X"03",X"22",X"00",X"30",X"32", + X"40",X"27",X"23",X"00",X"23",X"12",X"73",X"32",X"03",X"27",X"20",X"73",X"32",X"71",X"03",X"02", + X"52",X"32",X"75",X"21",X"63",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"34",X"45",X"13",X"17",X"17",X"73",X"21", + X"37",X"27",X"32",X"63",X"37",X"34",X"32",X"43",X"22",X"32",X"42",X"23",X"23",X"20",X"00",X"01", + X"23",X"03",X"25",X"00",X"70",X"16",X"31",X"06",X"31",X"00",X"25",X"13",X"54",X"23",X"00",X"07", + X"12",X"63",X"61",X"61",X"27",X"12",X"56",X"72",X"16",X"21",X"52",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"06",X"00",X"03", + X"31",X"21",X"23",X"17",X"63",X"61",X"32",X"25",X"72",X"53",X"27",X"32",X"15",X"31",X"06",X"21", + X"73",X"16",X"13",X"50",X"00",X"3A",X"10",X"E9",X"E6",X"01",X"DB",X"01",X"28",X"02",X"DB",X"02", + X"2A",X"06",X"E9",X"CD",X"3B",X"0D",X"22",X"06",X"E9",X"21",X"08",X"E9",X"17",X"CB",X"16",X"17", + X"17",X"CB",X"16",X"17",X"17",X"CB",X"16",X"DB",X"00",X"E6",X"0F",X"47",X"DB",X"02",X"E6",X"10", + X"B0",X"2A",X"04",X"E9",X"CD",X"3B",X"0D",X"22",X"04",X"E9",X"C9",X"2F",X"47",X"AC",X"4F",X"A5", + X"6F",X"79",X"2F",X"A4",X"B5",X"6F",X"60",X"C9",X"0F",X"0F",X"0F",X"47",X"3A",X"11",X"E9",X"17", + X"4F",X"E6",X"49",X"FE",X"49",X"20",X"0A",X"21",X"14",X"E9",X"34",X"7E",X"E6",X"0F",X"CC",X"D6", + X"0D",X"21",X"0C",X"E9",X"11",X"0A",X"E9",X"CD",X"B1",X"0D",X"21",X"0E",X"E9",X"13",X"CD",X"B1", + X"0D",X"21",X"11",X"E9",X"71",X"2B",X"4E",X"2B",X"06",X"04",X"CD",X"A2",X"0D",X"21",X"0D",X"E9", + X"06",X"02",X"CD",X"A2",X"0D",X"79",X"32",X"10",X"E9",X"D3",X"01",X"DB",X"04",X"2F",X"A9",X"E6", + X"01",X"28",X"01",X"3C",X"32",X"16",X"E9",X"3A",X"0A",X"E9",X"A7",X"C0",X"3E",X"02",X"32",X"13", + X"E9",X"C9",X"35",X"F0",X"36",X"0C",X"2B",X"7E",X"A7",X"C8",X"78",X"A9",X"4F",X"A0",X"C0",X"35", + X"C9",X"CB",X"08",X"CB",X"11",X"79",X"E6",X"49",X"FE",X"01",X"C0",X"34",X"3A",X"06",X"E0",X"A7", + X"3E",X"01",X"CC",X"FE",X"0D",X"1A",X"FE",X"01",X"28",X"10",X"FE",X"08",X"30",X"0A",X"21",X"12", + X"E9",X"34",X"BE",X"C0",X"36",X"00",X"3E",X"09",X"D6",X"08",X"21",X"13",X"E9",X"86",X"27",X"30", + X"02",X"3E",X"99",X"77",X"C9",X"21",X"17",X"E9",X"7E",X"A7",X"C8",X"35",X"23",X"7E",X"D3",X"00", + X"F6",X"80",X"D3",X"00",X"23",X"11",X"18",X"E9",X"01",X"0F",X"00",X"ED",X"B0",X"C9",X"E5",X"D5", + X"57",X"CB",X"7A",X"28",X"08",X"3A",X"06",X"E0",X"A7",X"28",X"12",X"CB",X"BA",X"21",X"17",X"E9", + X"7E",X"FE",X"10",X"30",X"08",X"34",X"23",X"5F",X"7A",X"16",X"00",X"19",X"77",X"D1",X"E1",X"C9", + X"E5",X"4F",X"3A",X"00",X"EB",X"47",X"FD",X"2A",X"01",X"EB",X"CB",X"71",X"21",X"20",X"00",X"20", + X"03",X"21",X"D0",X"FF",X"19",X"22",X"05",X"E8",X"E1",X"05",X"04",X"C8",X"7E",X"3C",X"28",X"52", + X"3A",X"05",X"E8",X"CB",X"71",X"20",X"0B",X"86",X"FD",X"77",X"06",X"3A",X"06",X"E8",X"CE",X"00", + X"18",X"09",X"96",X"FD",X"77",X"06",X"3A",X"06",X"E8",X"DE",X"00",X"FD",X"77",X"07",X"23",X"3A", + X"16",X"E9",X"5F",X"7E",X"93",X"5F",X"3A",X"07",X"E8",X"83",X"FD",X"77",X"02",X"3A",X"08",X"E8", + X"CE",X"00",X"FD",X"77",X"03",X"23",X"7E",X"E6",X"1F",X"FD",X"77",X"00",X"7E",X"07",X"07",X"E6", + X"03",X"B1",X"FD",X"77",X"05",X"23",X"7E",X"FD",X"77",X"04",X"11",X"08",X"00",X"FD",X"19",X"23", + X"10",X"AA",X"FD",X"22",X"01",X"EB",X"78",X"32",X"00",X"EB",X"C9",X"21",X"A7",X"59",X"CD",X"1C", + X"11",X"CD",X"A5",X"10",X"CD",X"AB",X"10",X"CD",X"CF",X"10",X"CD",X"D9",X"10",X"CD",X"E6",X"10", + X"3A",X"1C",X"E8",X"A7",X"CC",X"1A",X"0F",X"3E",X"03",X"32",X"81",X"E8",X"3A",X"09",X"E7",X"32", + X"1A",X"E8",X"3A",X"E2",X"E2",X"32",X"19",X"E8",X"CD",X"78",X"0F",X"CD",X"6B",X"0F",X"11",X"A0", + X"D0",X"01",X"94",X"05",X"3E",X"A1",X"CD",X"10",X"11",X"3C",X"13",X"10",X"F9",X"3A",X"80",X"E0", + X"E6",X"07",X"3C",X"67",X"3E",X"A6",X"11",X"E0",X"D0",X"CD",X"0A",X"0F",X"3C",X"11",X"20",X"D1", + X"CD",X"0A",X"0F",X"11",X"E1",X"D0",X"0E",X"94",X"3E",X"A8",X"CD",X"01",X"0F",X"11",X"21",X"D1", + X"3C",X"06",X"04",X"CD",X"10",X"11",X"13",X"10",X"FA",X"C9",X"6C",X"06",X"05",X"0E",X"94",X"CD", + X"10",X"11",X"13",X"2D",X"20",X"01",X"0C",X"10",X"F6",X"C9",X"3A",X"80",X"E0",X"E6",X"F8",X"0F", + X"0F",X"0F",X"47",X"DB",X"03",X"E6",X"01",X"20",X"01",X"05",X"78",X"A7",X"C8",X"FE",X"03",X"38", + X"02",X"3E",X"03",X"47",X"0E",X"80",X"11",X"29",X"D1",X"CD",X"3F",X"0F",X"10",X"FB",X"C9",X"3E", + X"B8",X"CD",X"4F",X"0F",X"D5",X"21",X"3E",X"00",X"19",X"EB",X"CD",X"4F",X"0F",X"D1",X"C9",X"CD", + X"10",X"11",X"3C",X"CD",X"10",X"11",X"3C",X"C9",X"11",X"29",X"D1",X"AF",X"4F",X"CD",X"63",X"0F", + X"11",X"69",X"D1",X"06",X"06",X"CD",X"10",X"11",X"10",X"FB",X"C9",X"11",X"16",X"D1",X"21",X"19", + X"E8",X"3A",X"E2",X"E2",X"0E",X"15",X"18",X"0B",X"11",X"96",X"D0",X"21",X"1A",X"E8",X"3A",X"09", + X"E7",X"0E",X"14",X"96",X"FA",X"8F",X"0F",X"FE",X"03",X"38",X"0A",X"3E",X"03",X"18",X"06",X"FE", + X"FD",X"30",X"02",X"3E",X"FD",X"86",X"77",X"06",X"08",X"D6",X"08",X"6F",X"38",X"05",X"FA",X"AD", + X"0F",X"3E",X"8A",X"C6",X"78",X"FE",X"77",X"20",X"08",X"3E",X"02",X"18",X"04",X"2E",X"FF",X"3E", + X"03",X"CD",X"10",X"11",X"7D",X"10",X"E2",X"C9",X"3A",X"00",X"E0",X"FE",X"03",X"28",X"24",X"2A", + X"03",X"E0",X"11",X"CD",X"FC",X"19",X"38",X"1B",X"21",X"08",X"E0",X"7E",X"A7",X"20",X"06",X"3E", + X"00",X"CD",X"FE",X"0D",X"34",X"21",X"85",X"E8",X"7E",X"A7",X"20",X"07",X"36",X"38",X"3E",X"97", + X"CD",X"FE",X"0D",X"21",X"1B",X"E8",X"3A",X"80",X"E8",X"BE",X"28",X"4E",X"77",X"CD",X"78",X"0F", + X"CD",X"6B",X"0F",X"21",X"E0",X"D0",X"3A",X"80",X"E0",X"E6",X"07",X"87",X"5F",X"16",X"00",X"19", + X"3A",X"80",X"E8",X"CB",X"DC",X"3A",X"80",X"E8",X"E6",X"18",X"3E",X"95",X"28",X"01",X"3D",X"77", + X"11",X"40",X"00",X"19",X"77",X"3A",X"1C",X"E8",X"A7",X"20",X"3F",X"47",X"DB",X"03",X"E6",X"01", + X"3A",X"80",X"E0",X"20",X"02",X"D6",X"08",X"FE",X"20",X"38",X"0F",X"3A",X"80",X"E8",X"E6",X"18", + X"28",X"05",X"CD",X"1A",X"0F",X"18",X"03",X"CD",X"58",X"0F",X"3A",X"85",X"E0",X"E6",X"01",X"20", + X"19",X"2A",X"81",X"E0",X"11",X"00",X"50",X"ED",X"52",X"38",X"0F",X"21",X"85",X"E0",X"CB",X"C6", + X"2B",X"34",X"3E",X"98",X"CD",X"FE",X"0D",X"CD",X"E6",X"10",X"3A",X"00",X"E0",X"FE",X"03",X"28", + X"1F",X"FE",X"0C",X"28",X"1B",X"21",X"81",X"E8",X"7E",X"A7",X"20",X"14",X"36",X"03",X"2A",X"03", + X"E0",X"7D",X"D6",X"01",X"27",X"6F",X"7C",X"DE",X"00",X"27",X"67",X"38",X"03",X"22",X"03",X"E0", + X"CD",X"D9",X"10",X"3A",X"83",X"E0",X"4F",X"ED",X"5B",X"81",X"E0",X"3A",X"82",X"E9",X"2A",X"80", + X"E9",X"91",X"38",X"06",X"20",X"0F",X"ED",X"52",X"30",X"0B",X"79",X"32",X"82",X"E9",X"ED",X"53", + X"80",X"E9",X"CD",X"CF",X"10",X"AF",X"11",X"83",X"E0",X"18",X"05",X"3E",X"01",X"11",X"93",X"E0", + X"21",X"02",X"E0",X"AE",X"EB",X"E6",X"01",X"11",X"29",X"D0",X"20",X"03",X"11",X"14",X"D0",X"0E", + X"15",X"7E",X"2B",X"CD",X"08",X"11",X"CD",X"FD",X"10",X"CD",X"FD",X"10",X"AF",X"18",X"39",X"21", + X"82",X"E9",X"11",X"1F",X"D0",X"0E",X"00",X"18",X"E8",X"0E",X"14",X"21",X"04",X"E0",X"11",X"EA", + X"D0",X"CD",X"FD",X"10",X"18",X"17",X"3A",X"84",X"E0",X"11",X"62",X"D1",X"6F",X"06",X"07",X"0E", + X"03",X"3E",X"FE",X"2D",X"20",X"01",X"AF",X"CD",X"10",X"11",X"10",X"F7",X"C9",X"7E",X"2B",X"F5", + X"0F",X"0F",X"0F",X"0F",X"CD",X"08",X"11",X"F1",X"E6",X"0F",X"C6",X"90",X"27",X"CE",X"40",X"27", + X"EB",X"77",X"CB",X"DC",X"71",X"CB",X"9C",X"23",X"EB",X"C9",X"4E",X"23",X"7E",X"23",X"3C",X"C8", + X"3C",X"28",X"F7",X"3C",X"28",X"07",X"D6",X"03",X"CD",X"10",X"11",X"18",X"EF",X"5E",X"23",X"56", + X"18",X"E9",X"4E",X"23",X"7E",X"23",X"3C",X"C8",X"3C",X"28",X"F7",X"3C",X"28",X"10",X"D6",X"03", + X"CD",X"10",X"11",X"FE",X"20",X"20",X"ED",X"3E",X"0B",X"CD",X"0F",X"57",X"18",X"E6",X"5E",X"23", + X"56",X"18",X"E0",X"16",X"01",X"18",X"02",X"16",X"DB",X"1E",X"20",X"01",X"00",X"08",X"21",X"00", + X"D0",X"FD",X"21",X"00",X"D8",X"73",X"FD",X"72",X"00",X"23",X"FD",X"23",X"0B",X"78",X"B1",X"20", + X"F4",X"C9",X"AF",X"29",X"17",X"6C",X"67",X"D5",X"11",X"10",X"00",X"19",X"D1",X"22",X"15",X"E8", + X"19",X"22",X"13",X"E8",X"3A",X"06",X"E7",X"87",X"5F",X"16",X"00",X"21",X"4D",X"66",X"19",X"5E", + X"23",X"56",X"FD",X"21",X"00",X"00",X"FD",X"19",X"2A",X"17",X"E7",X"FD",X"7E",X"00",X"FE",X"FF", + X"C8",X"5F",X"16",X"00",X"19",X"ED",X"5B",X"13",X"E8",X"ED",X"52",X"30",X"54",X"2A",X"17",X"E7", + X"FD",X"5E",X"01",X"16",X"00",X"19",X"ED",X"5B",X"15",X"E8",X"ED",X"52",X"38",X"43",X"2A",X"12", + X"E7",X"3A",X"01",X"E7",X"E6",X"40",X"28",X"0A",X"FD",X"5E",X"04",X"FD",X"56",X"05",X"ED",X"52", + X"18",X"07",X"FD",X"5E",X"02",X"FD",X"56",X"03",X"19",X"A7",X"ED",X"5B",X"0F",X"E8",X"ED",X"52", + X"38",X"1F",X"2A",X"12",X"E7",X"A7",X"28",X"0A",X"FD",X"5E",X"02",X"FD",X"56",X"03",X"ED",X"52", + X"18",X"07",X"FD",X"5E",X"04",X"FD",X"56",X"05",X"19",X"A7",X"ED",X"5B",X"11",X"E8",X"ED",X"52", + X"D8",X"11",X"06",X"00",X"FD",X"19",X"18",X"90",X"3A",X"00",X"E0",X"FE",X"06",X"C8",X"DB",X"04", + X"2F",X"CB",X"77",X"C9",X"BE",X"38",X"05",X"23",X"BE",X"38",X"01",X"23",X"23",X"23",X"7E",X"C9", + X"22",X"05",X"E8",X"3A",X"06",X"E7",X"21",X"6E",X"12",X"16",X"00",X"5F",X"19",X"7E",X"A7",X"C8", + X"FD",X"21",X"90",X"12",X"87",X"87",X"5F",X"FD",X"19",X"2A",X"10",X"E7",X"FD",X"5E",X"02",X"FD", + X"56",X"03",X"19",X"E5",X"FD",X"5E",X"00",X"FD",X"56",X"01",X"2A",X"12",X"E7",X"3A",X"01",X"E7", + X"E6",X"40",X"28",X"03",X"19",X"18",X"02",X"ED",X"52",X"DD",X"5E",X"02",X"DD",X"56",X"03",X"ED", + X"52",X"ED",X"5B",X"05",X"E8",X"38",X"04",X"ED",X"52",X"18",X"01",X"19",X"D1",X"C9",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"01",X"01",X"00",X"03",X"00",X"02",X"02",X"00",X"00", + X"00",X"00",X"00",X"01",X"01",X"01",X"05",X"05",X"00",X"06",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"02",X"80",X"18",X"00",X"02",X"80",X"13",X"80",X"03",X"00",X"04", + X"80",X"03",X"80",X"18",X"A0",X"02",X"00",X"18",X"20",X"03",X"80",X"0F",X"21",X"00",X"E7",X"CB", + X"4E",X"20",X"12",X"21",X"00",X"E2",X"CD",X"CB",X"12",X"CD",X"FE",X"12",X"CD",X"8F",X"13",X"CD", + X"EE",X"13",X"CD",X"3F",X"14",X"CD",X"3D",X"15",X"C9",X"23",X"23",X"7E",X"A7",X"C8",X"35",X"C2", + X"C9",X"12",X"23",X"4E",X"06",X"00",X"EB",X"21",X"0A",X"E1",X"09",X"09",X"CB",X"BE",X"2A",X"08", + X"E1",X"ED",X"A8",X"ED",X"A8",X"22",X"08",X"E1",X"23",X"36",X"00",X"EB",X"C3",X"CA",X"12",X"00", + X"00",X"00",X"01",X"01",X"01",X"02",X"02",X"02",X"03",X"03",X"03",X"04",X"04",X"04",X"3A",X"01", + X"E7",X"E6",X"80",X"0E",X"E4",X"28",X"02",X"0E",X"1C",X"3A",X"13",X"E7",X"81",X"FE",X"E0",X"D0", + X"32",X"09",X"E8",X"5F",X"E6",X"0F",X"3D",X"F8",X"21",X"EF",X"12",X"06",X"00",X"4F",X"09",X"4E", + X"7B",X"E6",X"F0",X"0F",X"0F",X"5F",X"0F",X"0F",X"83",X"81",X"4F",X"DD",X"21",X"0A",X"E1",X"DD", + X"09",X"DD",X"09",X"DD",X"CB",X"00",X"7E",X"C0",X"2A",X"08",X"E1",X"11",X"13",X"E2",X"ED",X"52", + X"C8",X"47",X"3A",X"01",X"E7",X"E6",X"80",X"21",X"35",X"E2",X"11",X"9A",X"E1",X"28",X"04",X"21", + X"15",X"E2",X"13",X"7E",X"A7",X"C0",X"23",X"7E",X"FE",X"0A",X"D0",X"E5",X"D5",X"34",X"23",X"5F", + X"87",X"83",X"16",X"00",X"5F",X"19",X"72",X"23",X"3A",X"09",X"E8",X"77",X"23",X"DD",X"7E",X"00", + X"77",X"DD",X"7E",X"01",X"2A",X"08",X"E1",X"23",X"77",X"23",X"71",X"22",X"08",X"E1",X"DD",X"CB", + X"00",X"FE",X"E1",X"D1",X"35",X"C0",X"3A",X"99",X"E1",X"77",X"EB",X"2B",X"36",X"01",X"C9",X"21", + X"36",X"E2",X"7E",X"A7",X"C8",X"47",X"16",X"00",X"23",X"7E",X"C6",X"36",X"77",X"23",X"7E",X"8A", + X"D2",X"A4",X"13",X"3D",X"77",X"23",X"23",X"10",X"F0",X"2A",X"37",X"E2",X"7C",X"FE",X"BE",X"30", + X"0B",X"01",X"00",X"12",X"09",X"ED",X"4B",X"12",X"E7",X"ED",X"42",X"D8",X"21",X"55",X"E2",X"7E", + X"FE",X"0A",X"D0",X"34",X"5F",X"21",X"56",X"E2",X"19",X"3A",X"39",X"E2",X"F6",X"58",X"77",X"EB", + X"21",X"36",X"E2",X"35",X"28",X"10",X"7E",X"11",X"37",X"E2",X"21",X"3A",X"E2",X"4F",X"87",X"81", + X"4F",X"06",X"00",X"ED",X"B0",X"C9",X"2B",X"7E",X"A7",X"C8",X"EB",X"CB",X"C6",X"C9",X"21",X"16", + X"E2",X"7E",X"A7",X"C8",X"47",X"16",X"00",X"23",X"7E",X"D6",X"36",X"77",X"23",X"7E",X"9A",X"D2", + X"03",X"14",X"3C",X"77",X"23",X"23",X"10",X"F0",X"2A",X"17",X"E2",X"7C",X"FE",X"22",X"38",X"0C", + X"01",X"00",X"12",X"ED",X"42",X"ED",X"4B",X"12",X"E7",X"ED",X"42",X"D0",X"21",X"55",X"E2",X"7E", + X"FE",X"0A",X"D0",X"34",X"5F",X"21",X"56",X"E2",X"19",X"3A",X"19",X"E2",X"F6",X"30",X"77",X"EB", + X"21",X"16",X"E2",X"35",X"28",X"B0",X"7E",X"11",X"17",X"E2",X"21",X"1A",X"E2",X"18",X"9E",X"3A", + X"60",X"E2",X"47",X"EE",X"28",X"C8",X"3A",X"D8",X"E2",X"E6",X"10",X"3A",X"96",X"E1",X"28",X"03", + X"3A",X"97",X"E1",X"A7",X"28",X"06",X"4F",X"3A",X"61",X"E2",X"B9",X"D0",X"21",X"55",X"E2",X"7E", + X"A7",X"C8",X"4F",X"23",X"CB",X"76",X"20",X"0D",X"CB",X"68",X"28",X"53",X"0D",X"C8",X"23",X"CB", + X"76",X"28",X"F9",X"18",X"04",X"CB",X"58",X"20",X"3F",X"CD",X"24",X"15",X"F5",X"2A",X"12",X"E7", + X"11",X"00",X"12",X"ED",X"52",X"11",X"00",X"BE",X"ED",X"52",X"30",X"02",X"19",X"EB",X"3A",X"D8", + X"E2",X"6F",X"CB",X"65",X"28",X"1B",X"3A",X"97",X"E1",X"A7",X"28",X"0B",X"CB",X"75",X"28",X"11", + X"2A",X"DA",X"E2",X"ED",X"52",X"38",X"0A",X"21",X"35",X"E2",X"F1",X"E6",X"01",X"C8",X"36",X"00", + X"C9",X"21",X"60",X"E2",X"CB",X"DE",X"18",X"3E",X"0D",X"C8",X"23",X"CB",X"76",X"20",X"F9",X"CD", + X"24",X"15",X"F5",X"2A",X"12",X"E7",X"11",X"00",X"12",X"19",X"11",X"00",X"22",X"ED",X"52",X"38", + X"02",X"19",X"EB",X"3A",X"D8",X"E2",X"6F",X"CB",X"65",X"28",X"16",X"3A",X"97",X"E1",X"A7",X"28", + X"0B",X"CB",X"75",X"20",X"0C",X"2A",X"DA",X"E2",X"ED",X"52",X"30",X"05",X"21",X"15",X"E2",X"18", + X"B9",X"21",X"60",X"E2",X"CB",X"EE",X"21",X"61",X"E2",X"34",X"23",X"01",X"10",X"00",X"7E",X"A7", + X"28",X"03",X"09",X"18",X"F9",X"F1",X"77",X"AF",X"23",X"36",X"00",X"23",X"73",X"23",X"72",X"23", + X"36",X"00",X"23",X"36",X"50",X"23",X"77",X"23",X"36",X"07",X"23",X"77",X"23",X"77",X"23",X"36", + X"02",X"23",X"77",X"C9",X"7E",X"0D",X"28",X"07",X"54",X"5D",X"23",X"06",X"00",X"ED",X"B0",X"21", + X"55",X"E2",X"35",X"C9",X"C1",X"11",X"10",X"00",X"DD",X"19",X"10",X"1A",X"C9",X"3A",X"01",X"E7", + X"E6",X"03",X"20",X"03",X"32",X"D2",X"E2",X"21",X"01",X"01",X"22",X"1B",X"E7",X"22",X"1D",X"E7", + X"DD",X"21",X"62",X"E2",X"06",X"05",X"C5",X"21",X"34",X"15",X"E5",X"DD",X"4E",X"00",X"CB",X"61", + X"C8",X"CB",X"69",X"C4",X"26",X"1C",X"CB",X"59",X"C4",X"3D",X"1C",X"CB",X"41",X"DD",X"7E",X"01", + X"C2",X"6E",X"18",X"CB",X"51",X"C2",X"8A",X"16",X"21",X"2F",X"16",X"E5",X"21",X"00",X"E7",X"CB", + X"4E",X"C2",X"E2",X"1B",X"FE",X"01",X"CA",X"AA",X"1B",X"38",X"47",X"FE",X"09",X"CA",X"DD",X"15", + X"30",X"16",X"CD",X"EF",X"1B",X"11",X"00",X"EF",X"19",X"D0",X"CD",X"7A",X"1B",X"79",X"E6",X"28", + X"2F",X"21",X"60",X"E2",X"A6",X"77",X"E1",X"C9",X"CD",X"E7",X"1B",X"DD",X"7E",X"06",X"FE",X"0A", + X"30",X"04",X"DD",X"36",X"06",X"0D",X"CD",X"3E",X"16",X"D8",X"11",X"00",X"FF",X"2A",X"0C",X"E8", + X"19",X"D2",X"20",X"1B",X"C9",X"3E",X"0A",X"DD",X"86",X"06",X"DD",X"77",X"06",X"DD",X"36",X"01", + X"0A",X"C9",X"CD",X"E7",X"1B",X"11",X"00",X"F8",X"19",X"D2",X"C5",X"15",X"C9",X"CD",X"54",X"1B", + X"CD",X"61",X"1C",X"DD",X"BE",X"0F",X"28",X"0A",X"DD",X"35",X"0B",X"28",X"39",X"DD",X"77",X"0F", + X"18",X"09",X"DD",X"35",X"0E",X"20",X"08",X"DD",X"36",X"0B",X"06",X"DD",X"36",X"0E",X"05",X"DD", + X"35",X"07",X"C0",X"3A",X"1C",X"E8",X"A7",X"3E",X"02",X"20",X"0A",X"DB",X"03",X"E6",X"02",X"3E", + X"04",X"20",X"02",X"3E",X"03",X"DD",X"77",X"07",X"21",X"09",X"E7",X"7E",X"A7",X"F8",X"35",X"F0", + X"21",X"1F",X"E7",X"CB",X"CE",X"C9",X"21",X"1A",X"E7",X"35",X"3E",X"09",X"C3",X"90",X"1B",X"21", + X"7B",X"6A",X"DD",X"7E",X"01",X"FE",X"05",X"C2",X"7D",X"1A",X"79",X"C3",X"80",X"1A",X"11",X"80", + X"16",X"CD",X"D2",X"1A",X"D0",X"F5",X"3E",X"91",X"CD",X"FE",X"0D",X"F1",X"FA",X"53",X"16",X"3E", + X"80",X"18",X"24",X"21",X"D2",X"E2",X"34",X"CD",X"C9",X"1A",X"7E",X"20",X"0E",X"FE",X"02",X"3E", + X"80",X"38",X"14",X"3E",X"82",X"28",X"10",X"3E",X"85",X"18",X"0C",X"FE",X"02",X"3E",X"8C",X"38", + X"06",X"3E",X"80",X"28",X"02",X"3E",X"82",X"21",X"D2",X"00",X"EB",X"CD",X"60",X"2F",X"37",X"C9", + X"F2",X"F0",X"F2",X"F2",X"F2",X"02",X"01",X"FF",X"FF",X"FF",X"21",X"22",X"18",X"E5",X"21",X"00", + X"E7",X"CB",X"4E",X"C2",X"E2",X"1B",X"FE",X"09",X"CA",X"DD",X"15",X"D2",X"0B",X"17",X"FE",X"01", + X"CA",X"AA",X"1B",X"D2",X"92",X"15",X"CD",X"E7",X"1B",X"CD",X"28",X"18",X"D8",X"2A",X"0C",X"E8", + X"11",X"00",X"E1",X"19",X"DA",X"7A",X"1B",X"DD",X"CB",X"0B",X"46",X"20",X"26",X"2A",X"0C",X"E8", + X"11",X"00",X"FA",X"19",X"38",X"1D",X"DD",X"CB",X"0B",X"C6",X"3A",X"02",X"E7",X"FE",X"03",X"28", + X"08",X"FE",X"06",X"28",X"04",X"FE",X"07",X"20",X"0A",X"3A",X"13",X"E0",X"21",X"C1",X"E1",X"BE", + X"DA",X"E5",X"17",X"2A",X"10",X"E7",X"11",X"80",X"A1",X"19",X"D8",X"2A",X"0A",X"E8",X"11",X"C0", + X"00",X"CB",X"71",X"28",X"03",X"19",X"18",X"02",X"ED",X"52",X"DA",X"20",X"1B",X"C9",X"DD",X"36", + X"01",X"00",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07",X"C9",X"DD",X"5E",X"0E",X"DD",X"56", + X"0F",X"DD",X"7E",X"06",X"FE",X"0A",X"F5",X"C4",X"70",X"1C",X"CD",X"E2",X"1B",X"F1",X"28",X"1D", + X"11",X"D6",X"FF",X"CD",X"AC",X"1C",X"19",X"CD",X"A5",X"1C",X"EB",X"CD",X"9E",X"1C",X"19",X"11", + X"00",X"50",X"ED",X"52",X"19",X"30",X"01",X"EB",X"CD",X"97",X"1C",X"38",X"C1",X"DD",X"CB",X"0B", + X"4E",X"20",X"1C",X"CD",X"8A",X"1C",X"11",X"60",X"FF",X"19",X"22",X"0F",X"E8",X"11",X"40",X"01", + X"19",X"22",X"11",X"E8",X"CD",X"9E",X"1C",X"11",X"14",X"00",X"CD",X"72",X"11",X"38",X"28",X"DD", + X"35",X"07",X"20",X"18",X"DD",X"7E",X"0A",X"3C",X"DD",X"77",X"0A",X"87",X"5F",X"16",X"00",X"21", + X"FC",X"17",X"19",X"7E",X"DD",X"77",X"07",X"23",X"7E",X"DD",X"77",X"06",X"DD",X"7E",X"06",X"FE", + X"0F",X"D8",X"79",X"EE",X"C0",X"4F",X"C9",X"3A",X"02",X"E7",X"FE",X"03",X"28",X"08",X"FE",X"06", + X"28",X"04",X"FE",X"07",X"20",X"24",X"CD",X"9E",X"1C",X"11",X"0C",X"01",X"3E",X"91",X"CD",X"FE", + X"0D",X"CD",X"E2",X"2E",X"3E",X"07",X"F5",X"CD",X"AC",X"1C",X"EB",X"21",X"00",X"00",X"ED",X"52", + X"CD",X"A5",X"1C",X"DD",X"CB",X"0B",X"CE",X"F1",X"18",X"AE",X"DD",X"36",X"06",X"09",X"CD",X"9E", + X"1C",X"11",X"00",X"0A",X"19",X"AF",X"29",X"07",X"6C",X"67",X"EB",X"CD",X"8A",X"1C",X"CD",X"C9", + X"1A",X"3E",X"80",X"20",X"02",X"3E",X"82",X"CD",X"60",X"2F",X"3E",X"91",X"CD",X"FE",X"0D",X"21", + X"5B",X"1C",X"C3",X"96",X"1B",X"DD",X"36",X"01",X"0A",X"21",X"A0",X"03",X"CD",X"A5",X"1C",X"21", + X"28",X"00",X"DD",X"75",X"0E",X"DD",X"74",X"0F",X"AF",X"C3",X"68",X"17",X"03",X"0A",X"07",X"0C", + X"07",X"0D",X"07",X"0E",X"07",X"0F",X"07",X"10",X"FF",X"0B",X"03",X"0A",X"07",X"0D",X"07",X"0E", + X"07",X"0F",X"07",X"10",X"FF",X"0B",X"03",X"0A",X"07",X"10",X"07",X"0F",X"07",X"0E",X"07",X"0D", + X"FF",X"0B",X"21",X"2F",X"6B",X"C3",X"32",X"16",X"11",X"64",X"18",X"CD",X"D2",X"1A",X"D0",X"F5", + X"3A",X"0B",X"E8",X"E6",X"80",X"CB",X"B1",X"28",X"02",X"CB",X"F1",X"DD",X"71",X"00",X"3E",X"91", + X"CD",X"FE",X"0D",X"F1",X"FA",X"4B",X"18",X"3E",X"81",X"18",X"13",X"21",X"D2",X"E2",X"34",X"7E", + X"FE",X"02",X"3E",X"80",X"DA",X"77",X"16",X"3E",X"81",X"CA",X"77",X"16",X"3E",X"84",X"21",X"BE", + X"00",X"C3",X"7A",X"16",X"FF",X"F0",X"FF",X"FF",X"FF",X"FF",X"01",X"FF",X"FF",X"FF",X"21",X"72", + X"1A",X"E5",X"21",X"00",X"E7",X"CB",X"4E",X"20",X"2A",X"DD",X"6E",X"08",X"DD",X"66",X"09",X"2B", + X"CB",X"7C",X"20",X"06",X"DD",X"75",X"08",X"DD",X"74",X"09",X"87",X"16",X"00",X"5F",X"21",X"97", + X"18",X"19",X"7E",X"23",X"66",X"6F",X"E9",X"28",X"1A",X"AA",X"1B",X"6C",X"19",X"C2",X"19",X"AE", + X"18",X"99",X"19",X"F5",X"CD",X"E2",X"1B",X"F1",X"FE",X"05",X"CA",X"BD",X"19",X"C9",X"CD",X"E2", + X"1B",X"CD",X"49",X"1A",X"30",X"20",X"DD",X"35",X"0A",X"F5",X"3E",X"91",X"CD",X"FE",X"0D",X"F1", + X"28",X"04",X"DD",X"34",X"01",X"C9",X"CD",X"77",X"16",X"21",X"15",X"E2",X"CB",X"71",X"28",X"03", + X"21",X"35",X"E2",X"36",X"00",X"C9",X"11",X"00",X"FF",X"2A",X"0C",X"E8",X"19",X"38",X"0B",X"3E", + X"05",X"21",X"5A",X"00",X"DD",X"36",X"06",X"02",X"18",X"65",X"DD",X"7E",X"08",X"A7",X"CA",X"FD", + X"19",X"DD",X"7E",X"06",X"FE",X"02",X"28",X"65",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"0E",X"A7", + X"C2",X"42",X"19",X"21",X"2B",X"E3",X"7E",X"FE",X"03",X"DD",X"34",X"07",X"D0",X"87",X"86",X"34", + X"23",X"16",X"00",X"5F",X"19",X"E5",X"CD",X"8A",X"1C",X"11",X"C0",X"00",X"79",X"E6",X"40",X"28", + X"03",X"19",X"18",X"02",X"ED",X"52",X"EB",X"E1",X"47",X"DD",X"7E",X"06",X"D6",X"09",X"B0",X"77", + X"23",X"73",X"23",X"72",X"CD",X"BF",X"1D",X"DD",X"35",X"0E",X"DD",X"36",X"07",X"10",X"DD",X"34", + X"06",X"C9",X"DD",X"36",X"06",X"02",X"DD",X"35",X"0B",X"C0",X"2A",X"F5",X"E1",X"3E",X"03",X"DD", + X"75",X"08",X"DD",X"74",X"09",X"DD",X"77",X"01",X"DD",X"36",X"07",X"02",X"C9",X"2A",X"0C",X"E8", + X"11",X"A0",X"F5",X"19",X"21",X"5A",X"00",X"3E",X"00",X"38",X"E4",X"C9",X"CD",X"E2",X"1B",X"3E", + X"02",X"DD",X"BE",X"06",X"28",X"0C",X"DD",X"35",X"07",X"C0",X"DD",X"77",X"06",X"DD",X"36",X"07", + X"03",X"C9",X"CD",X"49",X"1A",X"DA",X"B6",X"18",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"08",X"04", + X"DD",X"36",X"09",X"00",X"DD",X"36",X"01",X"03",X"C9",X"CD",X"EF",X"1B",X"CD",X"49",X"1A",X"DA", + X"B6",X"18",X"DD",X"7E",X"08",X"A7",X"20",X"06",X"DD",X"7E",X"09",X"A7",X"28",X"45",X"11",X"00", + X"F6",X"2A",X"0C",X"E8",X"19",X"DA",X"3C",X"1A",X"CD",X"B8",X"1A",X"38",X"7F",X"79",X"EE",X"40", + X"4F",X"C9",X"CD",X"E2",X"1B",X"CD",X"49",X"1A",X"DA",X"B6",X"18",X"DD",X"7E",X"08",X"A7",X"20", + X"06",X"DD",X"7E",X"09",X"A7",X"28",X"1C",X"11",X"00",X"F7",X"2A",X"0C",X"E8",X"19",X"30",X"0A", + X"11",X"00",X"FE",X"19",X"D0",X"DD",X"36",X"01",X"00",X"C9",X"CD",X"B8",X"1A",X"D8",X"DD",X"36", + X"01",X"05",X"C9",X"DD",X"36",X"01",X"04",X"3A",X"F0",X"E1",X"DD",X"77",X"0B",X"21",X"F1",X"E1", + X"3A",X"10",X"E0",X"BE",X"3E",X"09",X"38",X"02",X"3E",X"0B",X"DD",X"77",X"06",X"23",X"3A",X"11", + X"E0",X"FE",X"55",X"38",X"06",X"23",X"FE",X"AA",X"38",X"01",X"23",X"7E",X"DD",X"77",X"08",X"DD", + X"36",X"0E",X"00",X"DD",X"36",X"07",X"0B",X"C9",X"CD",X"E7",X"1B",X"11",X"00",X"F6",X"19",X"D8", + X"DD",X"7E",X"08",X"A7",X"20",X"06",X"DD",X"7E",X"09",X"A7",X"28",X"B7",X"DD",X"36",X"01",X"03", + X"DD",X"36",X"06",X"02",X"DD",X"36",X"07",X"02",X"C9",X"3A",X"01",X"E7",X"E6",X"03",X"20",X"04", + X"DD",X"CB",X"00",X"96",X"DD",X"CB",X"00",X"56",X"C0",X"11",X"80",X"16",X"CD",X"D2",X"1A",X"D0", + X"DD",X"CB",X"00",X"D6",X"3E",X"85",X"F0",X"CD",X"C9",X"1A",X"3E",X"83",X"20",X"02",X"3E",X"87", + X"37",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"E4",X"19",X"D8",X"21",X"E7",X"6B",X"79",X"EE",X"40", + X"E6",X"C0",X"DD",X"CB",X"00",X"66",X"C8",X"EB",X"CD",X"9E",X"1C",X"29",X"6C",X"26",X"00",X"CB", + X"14",X"22",X"07",X"E8",X"2A",X"0A",X"E8",X"DD",X"4E",X"06",X"D5",X"06",X"00",X"16",X"FF",X"29", + X"38",X"01",X"50",X"29",X"29",X"5C",X"2A",X"15",X"E7",X"19",X"22",X"03",X"E8",X"EB",X"E1",X"09", + X"09",X"4E",X"23",X"66",X"69",X"C3",X"20",X"0E",X"CD",X"91",X"1C",X"2A",X"06",X"E1",X"CB",X"71", + X"28",X"04",X"2A",X"04",X"E1",X"EB",X"ED",X"52",X"C9",X"3A",X"02",X"E7",X"FE",X"08",X"C8",X"FE", + X"09",X"C9",X"D5",X"CD",X"E7",X"1A",X"E1",X"D0",X"CD",X"18",X"1B",X"D0",X"F5",X"E6",X"0F",X"CD", + X"8E",X"1B",X"CD",X"91",X"1C",X"F1",X"C9",X"3A",X"0B",X"E8",X"47",X"3A",X"01",X"E7",X"07",X"A8", + X"E6",X"80",X"C8",X"3A",X"01",X"E7",X"E6",X"03",X"C8",X"E6",X"02",X"11",X"C0",X"02",X"06",X"05", + X"20",X"04",X"11",X"00",X"04",X"47",X"ED",X"52",X"D0",X"3A",X"02",X"E7",X"FE",X"06",X"D8",X"04", + X"D6",X"08",X"D8",X"04",X"80",X"47",X"37",X"C9",X"58",X"16",X"00",X"19",X"7E",X"FE",X"FF",X"C9", + X"CD",X"08",X"12",X"20",X"55",X"3A",X"1C",X"E8",X"A7",X"3E",X"02",X"20",X"0A",X"DB",X"03",X"E6", + X"02",X"3E",X"04",X"20",X"02",X"3E",X"03",X"DD",X"77",X"07",X"DD",X"36",X"06",X"09",X"DD",X"36", + X"01",X"09",X"21",X"1A",X"E7",X"34",X"CD",X"61",X"1C",X"DD",X"77",X"0F",X"DD",X"36",X"0B",X"06", + X"DD",X"36",X"0E",X"05",X"DD",X"CB",X"00",X"56",X"21",X"1B",X"E7",X"28",X"02",X"23",X"23",X"DD", + X"CB",X"00",X"76",X"11",X"80",X"FF",X"20",X"04",X"23",X"11",X"80",X"00",X"34",X"46",X"2A",X"12", + X"E7",X"19",X"10",X"FD",X"CD",X"83",X"1C",X"C3",X"E2",X"1B",X"DD",X"CB",X"00",X"4E",X"20",X"09", + X"DD",X"36",X"00",X"00",X"21",X"61",X"E2",X"35",X"C9",X"DD",X"CB",X"00",X"A6",X"C9",X"C6",X"04", + X"DD",X"77",X"06",X"21",X"55",X"1C",X"DD",X"36",X"01",X"01",X"7E",X"23",X"DD",X"77",X"07",X"CD", + X"A5",X"1C",X"AF",X"DD",X"77",X"0E",X"DD",X"77",X"0F",X"C9",X"DD",X"35",X"07",X"C2",X"C4",X"1B", + X"CD",X"AC",X"1C",X"7E",X"A7",X"FA",X"7A",X"1B",X"23",X"DD",X"77",X"06",X"7E",X"23",X"DD",X"77", + X"07",X"CD",X"A5",X"1C",X"DD",X"5E",X"0E",X"DD",X"56",X"0F",X"21",X"16",X"00",X"19",X"DD",X"75", + X"0E",X"DD",X"74",X"0F",X"CD",X"9E",X"1C",X"ED",X"52",X"CD",X"97",X"1C",X"11",X"39",X"00",X"CD", + X"7A",X"1C",X"CD",X"8A",X"1C",X"18",X"21",X"11",X"36",X"00",X"CD",X"70",X"1C",X"18",X"06",X"11", + X"36",X"00",X"CD",X"7A",X"1C",X"DD",X"35",X"07",X"20",X"0E",X"DD",X"36",X"07",X"07",X"DD",X"35", + X"06",X"F2",X"08",X"1C",X"DD",X"36",X"06",X"03",X"ED",X"5B",X"12",X"E7",X"7B",X"E6",X"E0",X"5F", + X"7D",X"E6",X"E0",X"6F",X"ED",X"52",X"22",X"0A",X"E8",X"30",X"06",X"11",X"01",X"00",X"EB",X"ED", + X"52",X"22",X"0C",X"E8",X"A7",X"C9",X"2A",X"12",X"E7",X"11",X"00",X"10",X"19",X"CD",X"91",X"1C", + X"ED",X"52",X"D8",X"DD",X"CB",X"00",X"AE",X"21",X"60",X"E2",X"CB",X"AE",X"C9",X"CD",X"8A",X"1C", + X"11",X"00",X"10",X"19",X"ED",X"5B",X"12",X"E7",X"ED",X"52",X"D8",X"DD",X"CB",X"00",X"9E",X"21", + X"60",X"E2",X"CB",X"9E",X"C9",X"05",X"07",X"07",X"08",X"11",X"FF",X"05",X"07",X"0A",X"08",X"17", + X"FF",X"3A",X"00",X"E0",X"FE",X"06",X"3A",X"09",X"E9",X"C8",X"3A",X"07",X"E9",X"E6",X"0F",X"C9", + X"CD",X"8A",X"1C",X"CB",X"71",X"28",X"0A",X"19",X"18",X"09",X"CD",X"8A",X"1C",X"CB",X"71",X"28", + X"F6",X"ED",X"52",X"DD",X"75",X"02",X"DD",X"74",X"03",X"C9",X"DD",X"6E",X"02",X"DD",X"66",X"03", + X"C9",X"EB",X"CD",X"8A",X"1C",X"EB",X"C9",X"DD",X"75",X"04",X"DD",X"74",X"05",X"C9",X"DD",X"6E", + X"04",X"DD",X"66",X"05",X"C9",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"C9",X"DD",X"6E",X"0C",X"DD", + X"66",X"0D",X"C9",X"CD",X"4A",X"1E",X"CD",X"FD",X"1D",X"DD",X"21",X"FB",X"E2",X"CD",X"C4",X"1C", + X"DD",X"21",X"0B",X"E3",X"DD",X"7E",X"00",X"4F",X"E6",X"10",X"C8",X"3A",X"00",X"E7",X"E6",X"02", + X"C2",X"A7",X"1D",X"DD",X"7E",X"01",X"FE",X"01",X"DA",X"4B",X"1D",X"28",X"26",X"CD",X"E9",X"1D", + X"3A",X"D9",X"E2",X"FE",X"01",X"28",X"07",X"3A",X"D8",X"E2",X"E6",X"10",X"20",X"6D",X"ED",X"5B", + X"12",X"E7",X"ED",X"52",X"DA",X"5B",X"1D",X"11",X"00",X"EC",X"19",X"30",X"5E",X"DD",X"36",X"00", + X"00",X"18",X"58",X"DD",X"7E",X"0B",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"CB",X"47",X"28",X"0C", + X"ED",X"5B",X"BF",X"E1",X"FE",X"03",X"28",X"08",X"ED",X"52",X"18",X"05",X"ED",X"5B",X"BD",X"E1", + X"19",X"DD",X"75",X"04",X"DD",X"74",X"05",X"DD",X"6E",X"0C",X"DD",X"66",X"0D",X"ED",X"5B",X"BB", + X"E1",X"19",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"CD",X"EF",X"1D",X"DD",X"5E",X"0E",X"DD",X"56", + X"0F",X"ED",X"52",X"38",X"16",X"DD",X"CB",X"00",X"AE",X"18",X"0D",X"CD",X"E9",X"1D",X"DD",X"5E", + X"0E",X"DD",X"56",X"0F",X"ED",X"52",X"30",X"03",X"DD",X"34",X"01",X"DD",X"CB",X"00",X"6E",X"20", + X"2E",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"40",X"FF",X"19",X"22",X"0F",X"E8",X"11",X"80", + X"01",X"19",X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"08",X"00",X"E5",X"CD", + X"72",X"11",X"E1",X"30",X"0A",X"11",X"18",X"01",X"CD",X"9A",X"2C",X"DD",X"CB",X"00",X"EE",X"DD", + X"35",X"07",X"20",X"13",X"DD",X"36",X"07",X"02",X"DD",X"7E",X"06",X"3C",X"FE",X"06",X"38",X"04", + X"CD",X"BF",X"1D",X"AF",X"DD",X"77",X"06",X"CD",X"E2",X"1B",X"11",X"00",X"E8",X"19",X"D8",X"DD", + X"7E",X"06",X"FE",X"03",X"3E",X"40",X"38",X"01",X"AF",X"21",X"A5",X"75",X"C3",X"7E",X"1A",X"E5", + X"D5",X"2A",X"03",X"E0",X"11",X"CD",X"FC",X"19",X"3E",X"95",X"38",X"02",X"3E",X"99",X"CD",X"FE", + X"0D",X"D1",X"E1",X"C9",X"E5",X"D5",X"2A",X"03",X"E0",X"11",X"CD",X"FC",X"19",X"3E",X"92",X"38", + X"02",X"3E",X"9A",X"CD",X"FE",X"0D",X"D1",X"E1",X"C9",X"DD",X"6E",X"0C",X"DD",X"66",X"0D",X"DD", + X"5E",X"02",X"DD",X"56",X"03",X"19",X"DD",X"75",X"02",X"DD",X"74",X"03",X"C9",X"DD",X"21",X"1B", + X"E3",X"DD",X"4E",X"00",X"CB",X"61",X"C8",X"DD",X"35",X"07",X"20",X"14",X"DD",X"36",X"07",X"05", + X"DD",X"34",X"06",X"3A",X"21",X"E3",X"FE",X"04",X"38",X"06",X"20",X"29",X"DD",X"CB",X"00",X"FE", + X"11",X"72",X"00",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B",X"2A",X"27",X"E3",X"11",X"1B",X"00",X"19", + X"22",X"27",X"E3",X"EB",X"2A",X"1F",X"E3",X"ED",X"52",X"22",X"1F",X"E3",X"21",X"D2",X"73",X"3A", + X"1B",X"E3",X"C3",X"7E",X"1A",X"DD",X"36",X"00",X"00",X"C9",X"3A",X"D8",X"E2",X"4F",X"A7",X"28", + X"3D",X"E6",X"10",X"C8",X"2A",X"E0",X"E2",X"2B",X"CB",X"7C",X"20",X"03",X"22",X"E0",X"E2",X"DD", + X"21",X"D8",X"E2",X"3A",X"E2",X"E2",X"21",X"FA",X"E2",X"A7",X"FA",X"77",X"1E",X"FE",X"3F",X"28", + X"06",X"35",X"20",X"05",X"DD",X"34",X"0A",X"36",X"70",X"3A",X"80",X"E0",X"E6",X"07",X"21",X"84", + X"1E",X"C3",X"26",X"1F",X"19",X"1F",X"98",X"22",X"3E",X"21",X"F0",X"24",X"F2",X"28",X"3A",X"80", + X"E0",X"E6",X"07",X"2A",X"D3",X"E2",X"ED",X"5B",X"12",X"E7",X"ED",X"52",X"CB",X"47",X"28",X"01", + X"3F",X"D8",X"FE",X"03",X"20",X"06",X"21",X"4F",X"03",X"22",X"F8",X"E2",X"CB",X"47",X"4F",X"3E", + X"12",X"20",X"02",X"3E",X"52",X"32",X"D8",X"E2",X"3E",X"70",X"32",X"FA",X"E2",X"3A",X"61",X"E2", + X"21",X"97",X"E1",X"96",X"D8",X"C8",X"06",X"05",X"DD",X"21",X"62",X"E2",X"DD",X"CB",X"00",X"46", + X"20",X"31",X"2A",X"12",X"E7",X"DD",X"5E",X"02",X"DD",X"56",X"03",X"CB",X"41",X"28",X"0C",X"DD", + X"CB",X"00",X"76",X"28",X"1E",X"ED",X"52",X"38",X"1A",X"18",X"0A",X"DD",X"CB",X"00",X"76",X"20", + X"12",X"ED",X"52",X"30",X"0E",X"6F",X"DD",X"7E",X"01",X"A7",X"7D",X"20",X"06",X"DD",X"36",X"01", + X"05",X"3D",X"C8",X"11",X"10",X"00",X"DD",X"19",X"10",X"C2",X"C9",X"30",X"1F",X"F9",X"1F",X"11", + X"20",X"45",X"1F",X"59",X"1F",X"64",X"20",X"1B",X"20",X"CD",X"6F",X"2C",X"21",X"96",X"20",X"E5", + X"21",X"0B",X"1F",X"DD",X"7E",X"01",X"87",X"16",X"00",X"5F",X"19",X"7E",X"23",X"66",X"6F",X"E9", + X"CD",X"0D",X"2D",X"11",X"00",X"FA",X"19",X"D2",X"CF",X"1F",X"11",X"00",X"C0",X"2A",X"DA",X"E2", + X"19",X"DA",X"50",X"1F",X"C9",X"CD",X"E2",X"1B",X"11",X"00",X"FA",X"19",X"D2",X"CF",X"1F",X"C9", + X"DD",X"36",X"01",X"03",X"DD",X"36",X"06",X"00",X"C9",X"CD",X"E2",X"1B",X"CD",X"E3",X"20",X"DA", + X"36",X"20",X"DD",X"35",X"07",X"C0",X"DD",X"35",X"0E",X"FA",X"85",X"20",X"28",X"54",X"DD",X"34", + X"06",X"DD",X"36",X"07",X"05",X"3A",X"E6",X"E2",X"FE",X"02",X"C0",X"CD",X"D4",X"1D",X"ED",X"5B", + X"0C",X"E8",X"21",X"60",X"FA",X"19",X"D8",X"21",X"00",X"FE",X"19",X"D0",X"2A",X"DA",X"E2",X"11", + X"00",X"02",X"19",X"22",X"0F",X"E8",X"11",X"C0",X"02",X"19",X"22",X"11",X"E8",X"3A",X"DE",X"E2", + X"FE",X"0B",X"38",X"0C",X"28",X"05",X"21",X"00",X"69",X"18",X"08",X"21",X"80",X"61",X"18",X"03", + X"21",X"80",X"59",X"11",X"05",X"00",X"E5",X"CD",X"72",X"11",X"E1",X"D0",X"11",X"10",X"01",X"C3", + X"95",X"2C",X"DD",X"35",X"0B",X"20",X"0B",X"DD",X"34",X"06",X"DD",X"36",X"07",X"05",X"C9",X"CD", + X"E8",X"2C",X"3A",X"11",X"E0",X"21",X"9E",X"E1",X"06",X"04",X"BE",X"38",X"08",X"23",X"06",X"09", + X"BE",X"38",X"02",X"06",X"0E",X"DD",X"70",X"06",X"DD",X"36",X"0E",X"04",X"3A",X"12",X"E0",X"21", + X"A0",X"E1",X"CD",X"14",X"12",X"32",X"DF",X"E2",X"C9",X"CD",X"AA",X"1B",X"DD",X"CB",X"00",X"66", + X"C0",X"E1",X"21",X"D8",X"E2",X"CB",X"A6",X"21",X"E8",X"E2",X"CB",X"A6",X"C9",X"DD",X"36",X"01", + X"02",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"CA",X"CF",X"1F",X"C9",X"ED",X"5B",X"04",X"E1",X"DD", + X"6E",X"02",X"DD",X"66",X"03",X"ED",X"52",X"38",X"E4",X"11",X"55",X"00",X"CD",X"7A",X"1C",X"18", + X"E0",X"DD",X"36",X"01",X"06",X"C9",X"C6",X"13",X"32",X"DE",X"E2",X"FE",X"16",X"21",X"26",X"21", + X"38",X"03",X"21",X"2C",X"21",X"CD",X"96",X"1B",X"21",X"67",X"2D",X"11",X"D8",X"00",X"CD",X"19", + X"2D",X"3E",X"08",X"DA",X"7A",X"24",X"DD",X"7E",X"FE",X"DD",X"36",X"FE",X"1C",X"A7",X"20",X"D1", + X"DD",X"34",X"01",X"C9",X"CD",X"13",X"2D",X"CD",X"E3",X"20",X"DA",X"36",X"20",X"ED",X"5B",X"04", + X"E1",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"ED",X"52",X"38",X"05",X"DD",X"7E",X"08",X"A7",X"C0", + X"DD",X"36",X"01",X"00",X"C9",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07",X"DD",X"36",X"01", + X"05",X"DD",X"36",X"08",X"25",X"C9",X"CD",X"B9",X"2C",X"CD",X"78",X"2C",X"21",X"8D",X"6C",X"11", + X"A0",X"FE",X"3A",X"01",X"E7",X"E6",X"03",X"20",X"04",X"DD",X"CB",X"00",X"AE",X"E5",X"DD",X"7E", + X"01",X"FE",X"01",X"28",X"1D",X"2A",X"0C",X"E8",X"19",X"21",X"01",X"E7",X"DD",X"CB",X"00",X"76", + X"28",X"0A",X"38",X"04",X"CB",X"E6",X"18",X"11",X"CB",X"A6",X"18",X"0D",X"38",X"09",X"CB",X"EE", + X"18",X"07",X"21",X"01",X"E7",X"CB",X"A6",X"CB",X"AE",X"E1",X"CD",X"01",X"2D",X"DD",X"7E",X"00", + X"C3",X"7E",X"1A",X"CD",X"09",X"21",X"D0",X"2A",X"0C",X"E8",X"11",X"60",X"FE",X"19",X"D0",X"3A", + X"DE",X"E2",X"FE",X"04",X"38",X"07",X"FE",X"09",X"21",X"12",X"21",X"38",X"03",X"21",X"1C",X"21", + X"CD",X"18",X"1B",X"D0",X"DD",X"CB",X"00",X"EE",X"C9",X"DD",X"7E",X"00",X"E6",X"20",X"C0",X"C3", + X"E7",X"1A",X"04",X"03",X"FF",X"FF",X"FF",X"FF",X"04",X"FF",X"FF",X"FF",X"02",X"00",X"02",X"02", + X"02",X"02",X"01",X"FF",X"FF",X"FF",X"06",X"18",X"08",X"19",X"11",X"FF",X"06",X"1A",X"08",X"1B", + X"11",X"FF",X"48",X"21",X"F9",X"1F",X"00",X"22",X"5D",X"21",X"67",X"21",X"17",X"22",X"21",X"39", + X"22",X"E5",X"21",X"32",X"21",X"C3",X"23",X"1F",X"CD",X"0D",X"2D",X"11",X"00",X"FB",X"19",X"D2", + X"DC",X"21",X"11",X"00",X"C0",X"2A",X"DA",X"E2",X"19",X"DA",X"50",X"1F",X"C9",X"CD",X"E2",X"1B", + X"11",X"00",X"FB",X"19",X"30",X"76",X"C9",X"CD",X"E2",X"1B",X"CD",X"4B",X"22",X"DA",X"0A",X"22", + X"DD",X"35",X"07",X"C0",X"DD",X"35",X"0E",X"28",X"5B",X"DD",X"34",X"06",X"DD",X"36",X"07",X"0B", + X"3A",X"E6",X"E2",X"FE",X"02",X"C0",X"CD",X"D4",X"1D",X"2A",X"DA",X"E2",X"3A",X"DE",X"E2",X"FE", + X"07",X"38",X"16",X"11",X"E0",X"01",X"19",X"22",X"0F",X"E8",X"11",X"20",X"02",X"19",X"22",X"11", + X"E8",X"21",X"00",X"5E",X"11",X"11",X"00",X"18",X"14",X"11",X"40",X"02",X"19",X"22",X"0F",X"E8", + X"11",X"E0",X"01",X"19",X"22",X"11",X"E8",X"21",X"00",X"6A",X"11",X"0A",X"00",X"CD",X"72",X"11", + X"D0",X"3A",X"DE",X"E2",X"FE",X"07",X"21",X"80",X"6C",X"38",X"03",X"21",X"80",X"60",X"11",X"18", + X"00",X"C3",X"95",X"2C",X"DD",X"35",X"0B",X"20",X"06",X"C3",X"20",X"22",X"CD",X"E8",X"2C",X"3A", + X"11",X"E0",X"21",X"9E",X"E1",X"06",X"04",X"BE",X"38",X"02",X"06",X"07",X"DD",X"70",X"06",X"3A", + X"12",X"E0",X"21",X"A5",X"E1",X"CD",X"14",X"12",X"32",X"DF",X"E2",X"DD",X"36",X"0E",X"03",X"C9", + X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"CA",X"50",X"1F",X"C9",X"DD",X"36",X"06",X"00",X"DD",X"36", + X"07",X"0B",X"DD",X"36",X"01",X"02",X"C9",X"CD",X"13",X"2D",X"CD",X"4B",X"22",X"C3",X"6D",X"20", + X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07",X"DD",X"36",X"01",X"05",X"3A",X"13",X"E0",X"21", + X"A0",X"E1",X"CD",X"14",X"12",X"DD",X"77",X"08",X"C9",X"CD",X"B9",X"2C",X"CD",X"78",X"2C",X"21", + X"65",X"6E",X"11",X"20",X"FE",X"CD",X"A2",X"20",X"C3",X"70",X"2E",X"3A",X"D8",X"E2",X"E6",X"20", + X"C0",X"21",X"E0",X"00",X"CD",X"20",X"12",X"D0",X"DD",X"CB",X"00",X"EE",X"D5",X"21",X"05",X"00", + X"CD",X"5C",X"2E",X"21",X"6A",X"2D",X"CD",X"19",X"2D",X"D1",X"38",X"05",X"21",X"00",X"90",X"19", + X"C9",X"F1",X"11",X"EE",X"00",X"3E",X"09",X"CD",X"7A",X"24",X"DD",X"36",X"06",X"00",X"21",X"84", + X"22",X"C3",X"96",X"1B",X"06",X"0A",X"08",X"0B",X"13",X"FF",X"A5",X"22",X"F9",X"1F",X"09",X"24", + X"C7",X"22",X"D2",X"22",X"80",X"24",X"32",X"24",X"CD",X"6F",X"2C",X"21",X"9F",X"24",X"E5",X"21", + X"8A",X"22",X"C3",X"23",X"1F",X"CD",X"0D",X"2D",X"11",X"00",X"F6",X"19",X"D2",X"C6",X"23",X"11", + X"00",X"5F",X"2A",X"DA",X"E2",X"19",X"D2",X"50",X"1F",X"C9",X"DD",X"36",X"01",X"00",X"DD",X"36", + X"06",X"00",X"DD",X"36",X"07",X"02",X"C9",X"CD",X"E2",X"1B",X"11",X"00",X"F6",X"19",X"D2",X"C6", + X"23",X"C9",X"CD",X"E2",X"1B",X"CD",X"B0",X"24",X"DA",X"48",X"24",X"DD",X"35",X"07",X"C0",X"DD", + X"35",X"0E",X"28",X"60",X"FA",X"B4",X"23",X"DD",X"34",X"06",X"DD",X"36",X"07",X"0B",X"FD",X"21", + X"FB",X"E2",X"FD",X"CB",X"00",X"66",X"28",X"04",X"FD",X"21",X"0B",X"E3",X"3A",X"E7",X"E2",X"FE", + X"02",X"21",X"00",X"69",X"38",X"03",X"21",X"80",X"56",X"FD",X"75",X"04",X"FD",X"74",X"05",X"FD", + X"77",X"0B",X"2A",X"DA",X"E2",X"11",X"00",X"FF",X"19",X"FD",X"75",X"02",X"FD",X"74",X"03",X"11", + X"00",X"ED",X"19",X"FD",X"75",X"0E",X"FD",X"74",X"0F",X"2A",X"B9",X"E1",X"FD",X"75",X"0C",X"FD", + X"74",X"0D",X"3E",X"50",X"FD",X"77",X"00",X"AF",X"FD",X"77",X"01",X"FD",X"77",X"06",X"3E",X"02", + X"FD",X"77",X"07",X"C9",X"DD",X"34",X"0E",X"DD",X"34",X"07",X"FD",X"21",X"FB",X"E2",X"FD",X"CB", + X"00",X"66",X"28",X"14",X"FD",X"CB",X"0D",X"7E",X"C0",X"DD",X"CB",X"FF",X"46",X"28",X"12",X"FD", + X"CB",X"10",X"66",X"20",X"0C",X"C3",X"D3",X"23",X"FD",X"21",X"0B",X"E3",X"FD",X"CB",X"0D",X"7E", + X"C0",X"FD",X"7E",X"0B",X"A7",X"28",X"08",X"FE",X"03",X"28",X"04",X"3E",X"0A",X"18",X"02",X"3E", + X"0C",X"DD",X"77",X"06",X"2A",X"DA",X"E2",X"11",X"C0",X"FE",X"19",X"FD",X"5E",X"02",X"FD",X"56", + X"03",X"ED",X"52",X"D0",X"FD",X"36",X"00",X"00",X"DD",X"35",X"06",X"3A",X"0B",X"E3",X"E6",X"10", + X"3E",X"0B",X"20",X"0C",X"DD",X"35",X"0E",X"3A",X"11",X"E0",X"21",X"A5",X"E1",X"CD",X"14",X"12", + X"32",X"DF",X"E2",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"F5",X"19",X"DA",X"BA",X"22",X"DD",X"35", + X"0B",X"20",X"09",X"C3",X"20",X"22",X"3A",X"9F",X"E1",X"32",X"E3",X"E2",X"ED",X"5F",X"E6",X"01", + X"DD",X"77",X"FF",X"DD",X"36",X"01",X"04",X"3A",X"10",X"E0",X"21",X"9C",X"E1",X"06",X"00",X"BE", + X"38",X"0B",X"23",X"04",X"BE",X"38",X"06",X"23",X"04",X"BE",X"38",X"01",X"04",X"DD",X"70",X"0F", + X"78",X"06",X"09",X"FE",X"02",X"30",X"02",X"06",X"0B",X"DD",X"70",X"06",X"DD",X"36",X"07",X"0B", + X"DD",X"36",X"0E",X"02",X"C9",X"DD",X"36",X"01",X"02",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0", + X"DD",X"34",X"07",X"3A",X"0B",X"E3",X"E6",X"10",X"20",X"0D",X"3A",X"FB",X"E2",X"E6",X"10",X"28", + X"A5",X"DD",X"CB",X"FF",X"46",X"20",X"AC",X"3A",X"E4",X"E2",X"32",X"DE",X"E2",X"DD",X"36",X"01", + X"04",X"C9",X"ED",X"5B",X"06",X"E1",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"ED",X"52",X"30",X"C5", + X"11",X"55",X"00",X"CD",X"7A",X"1C",X"18",X"C1",X"DD",X"46",X"06",X"C6",X"04",X"32",X"DE",X"E2", + X"21",X"6D",X"2D",X"CD",X"19",X"2D",X"38",X"17",X"DD",X"70",X"0C",X"DD",X"36",X"07",X"06",X"DD", + X"7E",X"FE",X"DD",X"36",X"FE",X"1C",X"A7",X"C2",X"31",X"20",X"DD",X"36",X"01",X"02",X"C9",X"21", + X"CC",X"24",X"CD",X"96",X"1B",X"11",X"DC",X"00",X"3E",X"09",X"2A",X"DA",X"E2",X"C3",X"60",X"2F", + X"CD",X"13",X"2D",X"CD",X"B0",X"24",X"38",X"C0",X"ED",X"5B",X"06",X"E1",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"ED",X"52",X"D2",X"80",X"20",X"DD",X"7E",X"08",X"A7",X"CA",X"80",X"20",X"C9",X"21", + X"00",X"E7",X"CB",X"F6",X"CD",X"B9",X"2C",X"CD",X"78",X"2C",X"21",X"4E",X"6F",X"C3",X"9F",X"20", + X"CD",X"09",X"21",X"D0",X"2A",X"0C",X"E8",X"11",X"60",X"FE",X"19",X"D0",X"21",X"C2",X"24",X"C3", + X"00",X"21",X"02",X"00",X"02",X"02",X"02",X"02",X"01",X"FF",X"FF",X"FF",X"06",X"07",X"08",X"08", + X"11",X"FF",X"18",X"25",X"F9",X"1F",X"C3",X"25",X"35",X"25",X"40",X"25",X"1B",X"27",X"7F",X"26", + X"D6",X"26",X"E2",X"1B",X"03",X"28",X"BA",X"27",X"37",X"27",X"84",X"27",X"E3",X"25",X"2F",X"26", + X"2A",X"F8",X"E2",X"7D",X"B4",X"28",X"04",X"2B",X"22",X"F8",X"E2",X"21",X"D6",X"E2",X"7E",X"A7", + X"28",X"01",X"35",X"CD",X"0F",X"25",X"DD",X"21",X"E8",X"E2",X"DD",X"CB",X"00",X"66",X"C8",X"21", + X"D2",X"24",X"CD",X"23",X"1F",X"C3",X"93",X"28",X"CD",X"0D",X"2D",X"11",X"00",X"F8",X"19",X"D2", + X"89",X"25",X"DD",X"CB",X"00",X"76",X"C0",X"11",X"00",X"5F",X"DD",X"6E",X"02",X"DD",X"66",X"03", + X"19",X"D2",X"50",X"1F",X"C9",X"CD",X"E2",X"1B",X"11",X"00",X"F8",X"19",X"D2",X"89",X"25",X"C9", + X"CD",X"E2",X"1B",X"CD",X"BA",X"28",X"DA",X"4B",X"26",X"DD",X"7E",X"0E",X"A7",X"FC",X"AF",X"25", + X"DD",X"35",X"07",X"C0",X"A7",X"28",X"15",X"FA",X"8C",X"25",X"DD",X"86",X"06",X"DD",X"77",X"06", + X"CD",X"DD",X"34",X"DD",X"36",X"07",X"0B",X"DD",X"36",X"0E",X"00",X"C9",X"DD",X"35",X"0B",X"CA", + X"20",X"22",X"CD",X"AF",X"25",X"DD",X"36",X"06",X"00",X"DD",X"35",X"0E",X"3A",X"11",X"E0",X"21", + X"A5",X"E1",X"CD",X"14",X"12",X"DD",X"77",X"07",X"C9",X"CD",X"E8",X"2C",X"CD",X"D4",X"2C",X"CA", + X"DF",X"27",X"3A",X"12",X"E0",X"21",X"9E",X"E1",X"06",X"01",X"BE",X"38",X"06",X"04",X"23",X"BE", + X"38",X"01",X"04",X"DD",X"70",X"0E",X"DD",X"36",X"06",X"04",X"DD",X"36",X"07",X"0B",X"C9",X"2A", + X"0C",X"E8",X"11",X"80",X"F3",X"19",X"D0",X"F1",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07", + X"C3",X"80",X"20",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"3A",X"D7",X"E2",X"A7",X"CA",X"50", + X"1F",X"DD",X"36",X"01",X"0D",X"DD",X"36",X"06",X"1A",X"DD",X"36",X"07",X"08",X"21",X"00",X"E7", + X"CB",X"C6",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34", + X"06",X"DD",X"7E",X"06",X"FE",X"22",X"C0",X"DD",X"34",X"01",X"DD",X"36",X"06",X"1E",X"DD",X"6E", + X"02",X"DD",X"66",X"03",X"DD",X"CB",X"00",X"76",X"28",X"0E",X"11",X"00",X"A1",X"ED",X"52",X"19", + X"38",X"14",X"11",X"80",X"FD",X"19",X"18",X"0E",X"11",X"80",X"02",X"19",X"ED",X"5B",X"06",X"E1", + X"ED",X"52",X"19",X"38",X"01",X"EB",X"DD",X"75",X"02",X"DD",X"74",X"03",X"C3",X"E2",X"1B",X"CD", + X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34",X"06",X"DD",X"7E",X"06", + X"FE",X"26",X"C0",X"21",X"00",X"E7",X"CB",X"86",X"C3",X"50",X"1F",X"A7",X"28",X"4A",X"DD",X"36", + X"06",X"08",X"21",X"70",X"2D",X"CD",X"19",X"2D",X"21",X"D6",X"28",X"38",X"11",X"7E",X"DD",X"77", + X"07",X"DD",X"36",X"01",X"02",X"21",X"D6",X"E2",X"7E",X"36",X"1C",X"23",X"77",X"C9",X"CD",X"96", + X"1B",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"D7",X"00",X"3E",X"0A",X"C3",X"60",X"2F",X"CD", + X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"06",X"3C",X"FE",X"13",X"38",X"40",X"20",X"5D", + X"DD",X"36",X"07",X"1C",X"3E",X"26",X"18",X"3A",X"3E",X"91",X"CD",X"FE",X"0D",X"DD",X"6E",X"02", + X"DD",X"66",X"03",X"22",X"1D",X"E3",X"DD",X"7E",X"00",X"E6",X"50",X"32",X"1B",X"E3",X"21",X"00", + X"65",X"22",X"1F",X"E3",X"21",X"5B",X"00",X"22",X"27",X"E3",X"3E",X"05",X"32",X"22",X"E3",X"AF", + X"32",X"21",X"E3",X"21",X"00",X"E7",X"CB",X"C6",X"DD",X"36",X"01",X"06",X"3E",X"0B",X"DD",X"36", + X"07",X"08",X"DD",X"77",X"06",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"06", + X"3C",X"FE",X"1A",X"38",X"E9",X"21",X"00",X"E7",X"CB",X"86",X"C3",X"89",X"25",X"DD",X"34",X"01", + X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"80",X"02",X"DD",X"CB",X"00",X"76",X"20",X"0D",X"19", + X"EB",X"2A",X"06",X"E1",X"ED",X"52",X"19",X"38",X"05",X"EB",X"18",X"02",X"ED",X"52",X"DD",X"75", + X"02",X"DD",X"74",X"03",X"CD",X"E2",X"1B",X"3E",X"0F",X"18",X"B3",X"CD",X"13",X"2D",X"CD",X"BA", + X"28",X"DA",X"4B",X"26",X"CD",X"D4",X"2C",X"CA",X"80",X"20",X"DD",X"CB",X"00",X"76",X"CA",X"88", + X"24",X"11",X"00",X"A1",X"C3",X"71",X"20",X"DD",X"35",X"07",X"20",X"16",X"DD",X"34",X"07",X"CD", + X"87",X"28",X"20",X"6C",X"DD",X"36",X"07",X"07",X"DD",X"35",X"06",X"F2",X"52",X"27",X"DD",X"36", + X"06",X"03",X"2A",X"12",X"E7",X"DD",X"5E",X"0C",X"DD",X"56",X"0D",X"ED",X"52",X"EB",X"DD",X"CB", + X"00",X"76",X"20",X"0D",X"2A",X"06",X"E1",X"ED",X"52",X"30",X"04",X"ED",X"5B",X"06",X"E1",X"18", + X"0A",X"21",X"80",X"85",X"ED",X"52",X"38",X"03",X"11",X"80",X"85",X"DD",X"73",X"02",X"DD",X"72", + X"03",X"C3",X"E2",X"1B",X"CD",X"E2",X"1B",X"CD",X"87",X"28",X"28",X"17",X"DD",X"35",X"07",X"C0", + X"DD",X"7E",X"0E",X"A7",X"CA",X"75",X"25",X"FA",X"92",X"25",X"DD",X"86",X"06",X"DD",X"77",X"06", + X"C3",X"63",X"25",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"02",X"DD",X"36",X"01",X"0B",X"C9", + X"DD",X"36",X"01",X"0C",X"CD",X"92",X"25",X"C3",X"E2",X"1B",X"CD",X"E2",X"1B",X"DD",X"35",X"07", + X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE",X"22",X"C0",X"21",X"8B", + X"01",X"22",X"F8",X"E2",X"DD",X"36",X"00",X"00",X"21",X"01",X"E7",X"CB",X"A6",X"18",X"5E",X"21", + X"00",X"E7",X"CB",X"C6",X"3A",X"E8",X"E2",X"E6",X"10",X"28",X"64",X"DD",X"E5",X"DD",X"21",X"D8", + X"E2",X"CD",X"7E",X"28",X"DD",X"36",X"17",X"08",X"DD",X"36",X"16",X"1A",X"DD",X"36",X"11",X"0A", + X"DD",X"E1",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34", + X"06",X"DD",X"7E",X"06",X"FE",X"26",X"C0",X"21",X"1A",X"01",X"22",X"F8",X"E2",X"CD",X"A3",X"27", + X"CD",X"3D",X"28",X"ED",X"5F",X"E6",X"01",X"C8",X"DD",X"36",X"F1",X"0B",X"DD",X"36",X"01",X"00", + X"21",X"00",X"00",X"ED",X"5B",X"F4",X"E2",X"ED",X"52",X"22",X"E4",X"E2",X"C9",X"DD",X"36",X"F6", + X"00",X"DD",X"36",X"F7",X"02",X"DD",X"36",X"F1",X"00",X"21",X"00",X"E7",X"CB",X"86",X"C9",X"ED", + X"5B",X"0A",X"E8",X"21",X"60",X"FD",X"19",X"38",X"03",X"11",X"A0",X"02",X"2A",X"12",X"E7",X"ED", + X"53",X"F4",X"E2",X"ED",X"52",X"22",X"EA",X"E2",X"21",X"00",X"50",X"22",X"EC",X"E2",X"DD",X"36", + X"10",X"50",X"DD",X"36",X"17",X"08",X"DD",X"36",X"16",X"1E",X"DD",X"36",X"11",X"09",X"DD",X"36", + X"01",X"08",X"DD",X"36",X"06",X"1A",X"C9",X"3A",X"02",X"E7",X"FE",X"01",X"C8",X"FE",X"09",X"C8", + X"FE",X"0A",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"E8",X"19",X"21",X"97",X"E1",X"11",X"98",X"E1", + X"30",X"08",X"3A",X"E8",X"E2",X"E6",X"10",X"20",X"01",X"EB",X"7E",X"A7",X"28",X"03",X"12",X"36", + X"00",X"21",X"47",X"70",X"11",X"00",X"FE",X"C3",X"AD",X"20",X"CD",X"E7",X"1A",X"D0",X"2A",X"0C", + X"E8",X"11",X"60",X"FE",X"19",X"D0",X"21",X"CC",X"28",X"C3",X"18",X"1B",X"00",X"FF",X"00",X"00", + X"00",X"00",X"01",X"FF",X"FF",X"FF",X"06",X"09",X"08",X"0A",X"13",X"FF",X"FC",X"28",X"F9",X"1F", + X"EE",X"2A",X"56",X"29",X"CC",X"29",X"8C",X"2A",X"14",X"29",X"8F",X"29",X"C8",X"2A",X"28",X"2B", + X"32",X"2B",X"21",X"5A",X"2C",X"E5",X"21",X"DC",X"28",X"C3",X"23",X"1F",X"CD",X"0D",X"2D",X"11", + X"60",X"F7",X"19",X"30",X"2A",X"18",X"1C",X"DD",X"36",X"07",X"07",X"DD",X"36",X"01",X"00",X"DD", + X"36",X"06",X"00",X"C9",X"CD",X"3C",X"29",X"CD",X"70",X"1C",X"CD",X"E2",X"1B",X"11",X"60",X"F7", + X"19",X"38",X"E4",X"11",X"00",X"C0",X"2A",X"DA",X"E2",X"19",X"DA",X"50",X"1F",X"18",X"36",X"DD", + X"36",X"07",X"09",X"DD",X"36",X"06",X"04",X"DD",X"36",X"01",X"06",X"C9",X"DD",X"35",X"07",X"20", + X"11",X"DD",X"36",X"07",X"09",X"DD",X"7E",X"06",X"3C",X"FE",X"05",X"28",X"02",X"3E",X"04",X"DD", + X"77",X"06",X"11",X"12",X"00",X"C9",X"CD",X"E2",X"1B",X"11",X"60",X"F7",X"19",X"3E",X"04",X"30", + X"01",X"AF",X"DD",X"77",X"06",X"CD",X"A0",X"2B",X"2A",X"0C",X"E8",X"11",X"80",X"FB",X"19",X"D8", + X"DD",X"7E",X"08",X"A7",X"C2",X"E9",X"2A",X"DD",X"36",X"06",X"04",X"2A",X"0C",X"E8",X"11",X"00", + X"FD",X"19",X"30",X"1C",X"3A",X"AA",X"E1",X"DD",X"77",X"07",X"DD",X"36",X"01",X"07",X"C9",X"ED", + X"5B",X"AB",X"E1",X"CD",X"70",X"1C",X"CD",X"E2",X"1B",X"CD",X"A0",X"2B",X"DD",X"35",X"07",X"C0", + X"CD",X"E8",X"2C",X"2A",X"0C",X"E8",X"11",X"80",X"FC",X"19",X"DA",X"55",X"2A",X"3A",X"11",X"E0", + X"21",X"9E",X"E1",X"06",X"06",X"BE",X"38",X"08",X"23",X"06",X"0B",X"BE",X"38",X"02",X"06",X"10", + X"DD",X"70",X"06",X"DD",X"36",X"07",X"05",X"DD",X"36",X"0E",X"05",X"C9",X"CD",X"E2",X"1B",X"CD", + X"A0",X"2B",X"DD",X"35",X"07",X"C0",X"DD",X"35",X"0E",X"28",X"62",X"FA",X"A3",X"29",X"DD",X"7E", + X"0E",X"FE",X"03",X"20",X"47",X"DD",X"7E",X"06",X"FE",X"0C",X"21",X"73",X"2A",X"38",X"08",X"21", + X"7A",X"2A",X"28",X"03",X"21",X"81",X"2A",X"DD",X"7E",X"02",X"86",X"23",X"5F",X"DD",X"7E",X"03", + X"8E",X"23",X"57",X"ED",X"53",X"0F",X"E8",X"7B",X"86",X"23",X"5F",X"7A",X"8E",X"23",X"57",X"ED", + X"53",X"11",X"E8",X"5E",X"23",X"56",X"23",X"6E",X"26",X"00",X"EB",X"E5",X"CD",X"72",X"11",X"E1", + X"30",X"0A",X"11",X"00",X"04",X"19",X"11",X"18",X"00",X"CD",X"95",X"2C",X"DD",X"34",X"06",X"DD", + X"5E",X"0E",X"16",X"00",X"21",X"87",X"2A",X"19",X"7E",X"DD",X"77",X"07",X"C9",X"DD",X"35",X"0B", + X"28",X"13",X"3A",X"12",X"E0",X"21",X"A5",X"E1",X"CD",X"14",X"12",X"DD",X"77",X"07",X"C9",X"21", + X"00",X"50",X"22",X"DC",X"E2",X"DD",X"36",X"06",X"04",X"2A",X"DA",X"E2",X"11",X"00",X"FE",X"19", + X"ED",X"5B",X"04",X"E1",X"ED",X"52",X"38",X"71",X"DD",X"36",X"01",X"08",X"3A",X"AA",X"E1",X"DD", + X"77",X"07",X"C9",X"20",X"01",X"60",X"01",X"80",X"67",X"07",X"40",X"01",X"20",X"02",X"00",X"66", + X"0E",X"80",X"01",X"00",X"02",X"00",X"50",X"0A",X"01",X"10",X"0B",X"10",X"CD",X"3C",X"29",X"CD", + X"7A",X"1C",X"CD",X"B6",X"2A",X"CD",X"A0",X"2B",X"DD",X"7E",X"08",X"A7",X"CA",X"77",X"29",X"2A", + X"0C",X"E8",X"11",X"00",X"FB",X"19",X"DA",X"37",X"29",X"2A",X"DA",X"E2",X"ED",X"5B",X"04",X"E1", + X"ED",X"52",X"DA",X"77",X"29",X"C9",X"2A",X"DA",X"E2",X"ED",X"5B",X"04",X"E1",X"ED",X"52",X"30", + X"04",X"ED",X"53",X"DA",X"E2",X"C3",X"E2",X"1B",X"ED",X"5B",X"AB",X"E1",X"CD",X"7A",X"1C",X"CD", + X"B6",X"2A",X"CD",X"A0",X"2B",X"DD",X"35",X"07",X"C0",X"3A",X"12",X"E0",X"21",X"A0",X"E1",X"CD", + X"14",X"12",X"DD",X"77",X"08",X"DD",X"36",X"07",X"09",X"DD",X"36",X"01",X"05",X"C9",X"CD",X"E2", + X"1B",X"DD",X"35",X"07",X"CA",X"4F",X"2A",X"C9",X"E1",X"78",X"FE",X"02",X"3E",X"1B",X"38",X"04", + X"28",X"01",X"3D",X"3D",X"DD",X"77",X"06",X"78",X"FE",X"03",X"28",X"04",X"AF",X"32",X"D6",X"E2", + X"21",X"69",X"2C",X"CD",X"96",X"1B",X"21",X"67",X"2D",X"11",X"DE",X"00",X"CD",X"19",X"2D",X"3E", + X"0B",X"DA",X"7A",X"24",X"DD",X"34",X"01",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"CA",X"55", + X"2A",X"C9",X"CD",X"E2",X"1B",X"21",X"D7",X"E2",X"7E",X"A7",X"20",X"12",X"3A",X"DE",X"E2",X"FE", + X"1E",X"20",X"0B",X"36",X"01",X"21",X"00",X"60",X"11",X"18",X"00",X"CD",X"95",X"2C",X"2A",X"E4", + X"E2",X"DD",X"35",X"07",X"20",X"14",X"23",X"23",X"7E",X"FE",X"FF",X"CA",X"4F",X"2A",X"DD",X"77", + X"06",X"23",X"7E",X"DD",X"77",X"07",X"23",X"22",X"E4",X"E2",X"7E",X"DD",X"86",X"04",X"DD",X"77", + X"04",X"23",X"7E",X"DD",X"8E",X"05",X"DD",X"77",X"05",X"C9",X"20",X"01",X"18",X"03",X"AA",X"00", + X"18",X"02",X"00",X"00",X"18",X"03",X"56",X"FF",X"17",X"04",X"E0",X"FE",X"FF",X"20",X"01",X"1E", + X"03",X"AA",X"00",X"1E",X"02",X"00",X"00",X"1E",X"03",X"56",X"FF",X"17",X"04",X"E0",X"FE",X"FF", + X"CD",X"E7",X"1A",X"D0",X"21",X"36",X"2C",X"CD",X"18",X"1B",X"D0",X"47",X"DD",X"5E",X"06",X"16", + X"00",X"21",X"40",X"2C",X"19",X"7E",X"FE",X"FF",X"C8",X"21",X"D6",X"E2",X"34",X"FE",X"FE",X"28", + X"1C",X"FE",X"08",X"38",X"0B",X"5F",X"78",X"FE",X"02",X"38",X"62",X"7B",X"FE",X"09",X"28",X"0D", + X"80",X"5F",X"21",X"AD",X"E1",X"19",X"3A",X"13",X"E0",X"BE",X"D2",X"F8",X"2A",X"E1",X"78",X"FE", + X"02",X"28",X"38",X"38",X"32",X"DD",X"36",X"07",X"05",X"DD",X"36",X"01",X"0A",X"DD",X"36",X"06", + X"17",X"3A",X"80",X"E0",X"0F",X"0F",X"0F",X"E6",X"03",X"5F",X"16",X"00",X"21",X"32",X"2C",X"19", + X"3A",X"D6",X"E2",X"BE",X"21",X"7A",X"2B",X"38",X"0A",X"21",X"8D",X"2B",X"AF",X"32",X"D7",X"E2", + X"32",X"D6",X"E2",X"22",X"E4",X"E2",X"C9",X"3E",X"15",X"18",X"02",X"3E",X"16",X"DD",X"77",X"06", + X"DD",X"36",X"01",X"09",X"DD",X"36",X"07",X"0B",X"3E",X"91",X"CD",X"FE",X"0D",X"AF",X"32",X"D6", + X"E2",X"C9",X"04",X"03",X"02",X"02",X"00",X"03",X"00",X"00",X"00",X"01",X"02",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FE",X"FE",X"FE",X"00",X"00",X"00",X"FE",X"FE",X"04",X"04",X"04",X"FE", + X"09",X"08",X"08",X"08",X"09",X"FF",X"FF",X"FF",X"FF",X"FF",X"CD",X"B9",X"2C",X"CD",X"7E",X"2C", + X"11",X"00",X"FE",X"21",X"FA",X"71",X"C3",X"AD",X"20",X"0B",X"1C",X"08",X"1D",X"13",X"FF",X"DD", + X"7E",X"FE",X"A7",X"C8",X"DD",X"35",X"FE",X"C9",X"3A",X"80",X"E0",X"E6",X"FC",X"C0",X"2A",X"0C", + X"E8",X"11",X"00",X"E8",X"19",X"21",X"98",X"E1",X"11",X"97",X"E1",X"38",X"01",X"EB",X"7E",X"A7", + X"C8",X"12",X"36",X"00",X"C9",X"3E",X"91",X"CD",X"FE",X"0D",X"3A",X"09",X"E7",X"93",X"F2",X"B6", + X"2C",X"CD",X"08",X"12",X"20",X"10",X"3A",X"80",X"E0",X"E6",X"07",X"FE",X"02",X"3E",X"04",X"20", + X"02",X"3E",X"05",X"32",X"07",X"E0",X"C3",X"E2",X"2E",X"2A",X"0C",X"E8",X"11",X"60",X"F7",X"19", + X"21",X"00",X"E7",X"CB",X"A6",X"D8",X"DD",X"7E",X"01",X"FE",X"01",X"C8",X"3A",X"61",X"E2",X"A7", + X"C0",X"CB",X"E6",X"C9",X"2A",X"F8",X"E2",X"7D",X"B4",X"C0",X"3A",X"02",X"E7",X"FE",X"09",X"28", + X"05",X"FE",X"0A",X"28",X"01",X"7C",X"A7",X"C9",X"3A",X"10",X"E0",X"21",X"9C",X"E1",X"06",X"01", + X"BE",X"38",X"06",X"23",X"04",X"BE",X"38",X"01",X"04",X"DD",X"70",X"0B",X"DD",X"36",X"01",X"04", + X"C9",X"E5",X"2A",X"0C",X"E8",X"11",X"00",X"EE",X"19",X"E1",X"D0",X"F1",X"C9",X"11",X"1B",X"00", + X"C3",X"EA",X"1B",X"11",X"1B",X"00",X"C3",X"F2",X"1B",X"3E",X"83",X"CD",X"FE",X"0D",X"3E",X"91", + X"CD",X"FE",X"0D",X"D5",X"3A",X"06",X"E7",X"E5",X"21",X"42",X"2D",X"5F",X"16",X"00",X"19",X"5E", + X"E1",X"19",X"3A",X"E2",X"E2",X"96",X"32",X"E2",X"E2",X"D1",X"D0",X"3E",X"87",X"CD",X"FE",X"0D", + X"37",X"C9",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"00",X"01",X"01",X"00",X"02",X"00", + X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00",X"03",X"03",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"0C",X"20",X"0C",X"08",X"18",X"10",X"10", + X"20",X"10",X"21",X"2B",X"E3",X"7E",X"A7",X"C8",X"47",X"23",X"C5",X"4E",X"11",X"B4",X"00",X"CB", + X"49",X"28",X"03",X"11",X"D2",X"00",X"CB",X"61",X"28",X"07",X"E5",X"21",X"18",X"00",X"19",X"EB", + X"E1",X"ED",X"53",X"07",X"E8",X"23",X"5E",X"E5",X"23",X"56",X"3A",X"00",X"E7",X"2A",X"F7",X"E1", + X"CB",X"71",X"28",X"1A",X"EB",X"CB",X"4F",X"20",X"01",X"19",X"E5",X"ED",X"5B",X"12",X"E7",X"ED", + X"52",X"22",X"0A",X"E8",X"38",X"26",X"11",X"00",X"F0",X"19",X"38",X"5E",X"18",X"1B",X"EB",X"CB", + X"4F",X"20",X"02",X"ED",X"52",X"E5",X"38",X"52",X"ED",X"5B",X"12",X"E7",X"ED",X"52",X"22",X"0A", + X"E8",X"30",X"09",X"11",X"00",X"10",X"19",X"30",X"41",X"2A",X"0A",X"E8",X"CB",X"4F",X"20",X"10", + X"CB",X"61",X"20",X"0C",X"11",X"60",X"00",X"19",X"11",X"C0",X"00",X"ED",X"52",X"DC",X"31",X"2E", + X"2A",X"0A",X"E8",X"16",X"FF",X"29",X"38",X"02",X"16",X"00",X"29",X"29",X"5C",X"2A",X"15",X"E7", + X"19",X"EB",X"21",X"A0",X"75",X"79",X"EE",X"40",X"E6",X"40",X"CD",X"20",X"0E",X"D1",X"E1",X"73", + X"23",X"72",X"23",X"C1",X"05",X"C2",X"7A",X"2D",X"C9",X"E1",X"21",X"2B",X"E3",X"7E",X"35",X"87", + X"86",X"23",X"16",X"00",X"5F",X"19",X"D1",X"D1",X"13",X"01",X"03",X"00",X"ED",X"B8",X"EB",X"18", + X"E1",X"CB",X"49",X"20",X"0D",X"2A",X"10",X"E7",X"11",X"00",X"A6",X"19",X"D8",X"21",X"00",X"5A", + X"18",X"12",X"3A",X"02",X"E7",X"FE",X"06",X"C8",X"FE",X"07",X"C8",X"3A",X"06",X"E7",X"FE",X"05", + X"C8",X"21",X"00",X"69",X"11",X"18",X"01",X"CD",X"E2",X"2E",X"18",X"BD",X"22",X"38",X"E3",X"EB", + X"29",X"6C",X"26",X"00",X"30",X"01",X"24",X"22",X"36",X"E3",X"3E",X"07",X"32",X"35",X"E3",X"C9", + X"21",X"35",X"E3",X"7E",X"A7",X"C8",X"35",X"C8",X"2A",X"36",X"E3",X"C5",X"22",X"07",X"E8",X"2A", + X"38",X"E3",X"ED",X"5B",X"03",X"E8",X"19",X"EB",X"AF",X"21",X"84",X"74",X"CD",X"20",X"0E",X"C1", + X"C9",X"3A",X"20",X"E7",X"FE",X"03",X"3E",X"01",X"28",X"01",X"AF",X"32",X"3F",X"E3",X"3A",X"01", + X"E7",X"CB",X"77",X"21",X"FE",X"FF",X"28",X"03",X"21",X"02",X"00",X"22",X"3D",X"E3",X"2A",X"22", + X"E7",X"29",X"6C",X"26",X"00",X"30",X"01",X"24",X"22",X"3B",X"E3",X"3E",X"0E",X"32",X"3A",X"E3", + X"C9",X"21",X"3A",X"E3",X"7E",X"A7",X"C8",X"35",X"C8",X"2A",X"3B",X"E3",X"C5",X"22",X"07",X"E8", + X"2A",X"3D",X"E3",X"ED",X"5B",X"15",X"E7",X"19",X"EB",X"AF",X"21",X"89",X"74",X"CD",X"20",X"0E", + X"C1",X"C9",X"3A",X"1F",X"E7",X"E6",X"01",X"20",X"12",X"22",X"22",X"E7",X"21",X"1F",X"E7",X"CB", + X"C6",X"23",X"72",X"23",X"73",X"3E",X"83",X"CD",X"FE",X"0D",X"C9",X"3A",X"09",X"E7",X"93",X"30", + X"01",X"AF",X"32",X"09",X"E7",X"C9",X"21",X"4C",X"E6",X"06",X"04",X"7E",X"A7",X"C8",X"35",X"28", + X"35",X"C5",X"23",X"5E",X"23",X"56",X"ED",X"53",X"07",X"E8",X"23",X"5E",X"23",X"56",X"23",X"4E", + X"23",X"E5",X"2A",X"12",X"E7",X"7D",X"E6",X"E0",X"6F",X"EB",X"ED",X"52",X"E5",X"11",X"00",X"1C", + X"38",X"04",X"ED",X"52",X"18",X"01",X"19",X"E1",X"30",X"07",X"11",X"F7",X"75",X"AF",X"CD",X"9A", + X"1A",X"E1",X"C1",X"10",X"C6",X"C9",X"05",X"28",X"14",X"C5",X"E5",X"EB",X"21",X"06",X"00",X"19", + X"78",X"87",X"80",X"87",X"4F",X"06",X"00",X"ED",X"B0",X"AF",X"12",X"18",X"E4",X"36",X"00",X"C9", + X"C5",X"D5",X"E5",X"11",X"63",X"E6",X"21",X"5D",X"E6",X"01",X"12",X"00",X"ED",X"B8",X"57",X"E6", + X"7F",X"5F",X"32",X"51",X"E6",X"E1",X"22",X"4F",X"E6",X"E1",X"22",X"4D",X"E6",X"3E",X"A9",X"CB", + X"7A",X"28",X"02",X"3E",X"0B",X"32",X"4C",X"E6",X"16",X"00",X"21",X"AD",X"2F",X"19",X"19",X"5E", + X"23",X"56",X"CD",X"9A",X"2F",X"C1",X"C9",X"11",X"10",X"00",X"21",X"81",X"E0",X"7E",X"83",X"27", + X"77",X"23",X"7E",X"8A",X"27",X"77",X"23",X"7E",X"CE",X"00",X"27",X"77",X"C9",X"20",X"00",X"30", + X"00",X"40",X"00",X"50",X"00",X"60",X"00",X"80",X"00",X"90",X"00",X"00",X"01",X"00",X"02",X"00", + X"03",X"00",X"05",X"00",X"10",X"10",X"00",X"3A",X"81",X"E3",X"A7",X"C8",X"DD",X"21",X"82",X"E3", + X"06",X"10",X"C5",X"DD",X"4E",X"00",X"CB",X"61",X"C4",X"E4",X"2F",X"C1",X"11",X"13",X"00",X"DD", + X"19",X"10",X"EF",X"C9",X"21",X"E7",X"36",X"E5",X"21",X"F7",X"2F",X"DD",X"5E",X"01",X"16",X"00", + X"19",X"19",X"7E",X"23",X"66",X"6F",X"E9",X"7F",X"33",X"D4",X"31",X"19",X"30",X"98",X"33",X"D4", + X"33",X"C8",X"32",X"49",X"30",X"EE",X"31",X"25",X"32",X"8B",X"32",X"54",X"31",X"5D",X"31",X"66", + X"31",X"44",X"34",X"78",X"34",X"84",X"34",X"37",X"35",X"CD",X"E2",X"1B",X"21",X"00",X"70",X"CD", + X"1D",X"37",X"DA",X"CD",X"30",X"CD",X"73",X"37",X"DA",X"1E",X"33",X"CD",X"46",X"37",X"3E",X"91", + X"DA",X"27",X"33",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"03",X"DD",X"7E",X"06",X"3C",X"FE", + X"04",X"20",X"02",X"3E",X"02",X"DD",X"77",X"06",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"08",X"CA", + X"06",X"31",X"DD",X"6E",X"0E",X"DD",X"66",X"0F",X"11",X"20",X"00",X"DD",X"CB",X"00",X"56",X"28", + X"0D",X"ED",X"52",X"30",X"16",X"DD",X"CB",X"00",X"96",X"21",X"00",X"00",X"18",X"0D",X"19",X"E5", + X"11",X"80",X"FF",X"19",X"E1",X"30",X"04",X"DD",X"CB",X"00",X"D6",X"DD",X"75",X"0E",X"DD",X"74", + X"0F",X"DD",X"5E",X"0A",X"DD",X"56",X"0B",X"19",X"DD",X"75",X"02",X"DD",X"74",X"03",X"DD",X"6E", + X"10",X"DD",X"66",X"11",X"11",X"49",X"00",X"DD",X"CB",X"00",X"46",X"28",X"0D",X"ED",X"52",X"30", + X"16",X"DD",X"CB",X"00",X"86",X"21",X"00",X"00",X"18",X"0D",X"19",X"E5",X"11",X"00",X"FE",X"19", + X"E1",X"30",X"04",X"DD",X"CB",X"00",X"C6",X"DD",X"75",X"10",X"DD",X"74",X"11",X"DD",X"5E",X"0C", + X"DD",X"56",X"0D",X"19",X"DD",X"75",X"04",X"DD",X"74",X"05",X"C3",X"25",X"30",X"DD",X"36",X"01", + X"06",X"3A",X"71",X"E3",X"DD",X"77",X"08",X"11",X"40",X"00",X"DD",X"6E",X"02",X"DD",X"66",X"03", + X"ED",X"52",X"DD",X"75",X"0A",X"DD",X"74",X"0B",X"DD",X"73",X"0E",X"DD",X"72",X"0F",X"11",X"00", + X"01",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"ED",X"52",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"DD", + X"73",X"10",X"DD",X"72",X"11",X"C9",X"CD",X"3A",X"33",X"3E",X"86",X"CD",X"FE",X"0D",X"FD",X"21", + X"82",X"E3",X"06",X"10",X"0E",X"0A",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"FD",X"CB",X"00",X"66", + X"20",X"2A",X"FD",X"CB",X"00",X"E6",X"FD",X"36",X"07",X"07",X"FD",X"36",X"06",X"14",X"FD",X"75", + X"02",X"FD",X"74",X"03",X"11",X"00",X"74",X"FD",X"73",X"04",X"FD",X"72",X"05",X"FD",X"71",X"01", + X"3A",X"81",X"E3",X"3C",X"32",X"81",X"E3",X"79",X"0C",X"FE",X"0C",X"C8",X"11",X"13",X"00",X"FD", + X"19",X"10",X"C9",X"C9",X"ED",X"5B",X"76",X"E3",X"CD",X"70",X"1C",X"18",X"10",X"CD",X"E2",X"1B", + X"ED",X"5B",X"72",X"E3",X"18",X"0E",X"ED",X"5B",X"76",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B", + X"ED",X"5B",X"74",X"E3",X"21",X"00",X"50",X"CD",X"32",X"37",X"DA",X"13",X"37",X"2A",X"0C",X"E8", + X"11",X"00",X"03",X"ED",X"52",X"30",X"23",X"DD",X"5E",X"02",X"DD",X"56",X"03",X"21",X"E0",X"FF", + X"19",X"22",X"0F",X"E8",X"21",X"20",X"00",X"19",X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"11",X"01",X"00",X"CD",X"72",X"11",X"DA",X"C0",X"31",X"DD",X"35",X"07",X"C0",X"DD",X"36", + X"07",X"03",X"DD",X"7E",X"06",X"3C",X"FE",X"16",X"20",X"02",X"3E",X"14",X"DD",X"77",X"06",X"C9", + X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"20",X"01",X"3E",X"91",X"CD",X"FE",X"0D",X"CD",X"E2", + X"2E",X"C3",X"13",X"37",X"CD",X"E2",X"1B",X"CD",X"73",X"37",X"DA",X"ED",X"32",X"CD",X"46",X"37", + X"3E",X"91",X"DA",X"27",X"33",X"21",X"00",X"50",X"CD",X"1D",X"37",X"38",X"26",X"C9",X"CD",X"E2", + X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE",X"10",X"20",X"21",X"DD", + X"34",X"01",X"3A",X"0B",X"E8",X"CB",X"7F",X"DD",X"CB",X"00",X"F6",X"20",X"13",X"DD",X"CB",X"00", + X"B6",X"18",X"0D",X"3E",X"86",X"CD",X"FE",X"0D",X"DD",X"36",X"01",X"07",X"DD",X"36",X"06",X"0D", + X"DD",X"36",X"07",X"07",X"C9",X"CD",X"E2",X"1B",X"21",X"40",X"01",X"CD",X"20",X"12",X"3A",X"02", + X"E7",X"30",X"0A",X"FE",X"04",X"CA",X"A8",X"32",X"FE",X"05",X"CA",X"A8",X"32",X"FE",X"06",X"28", + X"34",X"FE",X"07",X"28",X"30",X"3A",X"06",X"E7",X"FE",X"05",X"28",X"29",X"CB",X"69",X"20",X"25", + X"DD",X"7E",X"06",X"FE",X"12",X"20",X"1E",X"2A",X"0A",X"E8",X"11",X"80",X"06",X"CB",X"71",X"20", + X"04",X"ED",X"52",X"18",X"01",X"19",X"30",X"0D",X"21",X"00",X"6B",X"11",X"20",X"01",X"CD",X"CA", + X"36",X"DD",X"CB",X"00",X"EE",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"06",X"FE",X"13",X"CA",X"A2", + X"32",X"DD",X"34",X"06",X"3A",X"70",X"E3",X"DD",X"77",X"07",X"C9",X"CD",X"E2",X"1B",X"DD",X"35", + X"07",X"C0",X"DD",X"7E",X"06",X"FE",X"18",X"CA",X"13",X"37",X"DD",X"34",X"06",X"DD",X"36",X"07", + X"07",X"C9",X"DD",X"36",X"06",X"17",X"18",X"17",X"3E",X"86",X"CD",X"FE",X"0D",X"DD",X"6E",X"02", + X"DD",X"66",X"03",X"11",X"DC",X"00",X"3E",X"88",X"CD",X"60",X"2F",X"DD",X"36",X"06",X"16",X"DD", + X"36",X"01",X"09",X"DD",X"36",X"07",X"07",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD", + X"7E",X"06",X"DD",X"34",X"06",X"DD",X"36",X"07",X"07",X"FE",X"0C",X"C0",X"DD",X"7E",X"0E",X"A7", + X"FC",X"BA",X"3C",X"C3",X"13",X"37",X"3E",X"93",X"CD",X"FE",X"0D",X"18",X"05",X"3E",X"86",X"CD", + X"FE",X"0D",X"3A",X"01",X"E7",X"E6",X"01",X"20",X"07",X"06",X"84",X"11",X"81",X"80",X"18",X"05", + X"06",X"82",X"11",X"80",X"8C",X"ED",X"5F",X"E6",X"7F",X"FE",X"2A",X"38",X"2F",X"43",X"FE",X"55", + X"38",X"2A",X"42",X"18",X"27",X"06",X"88",X"3E",X"86",X"CD",X"FE",X"0D",X"18",X"1E",X"06",X"87", + X"3E",X"86",X"CD",X"FE",X"0D",X"18",X"15",X"CD",X"FE",X"0D",X"DD",X"6E",X"04",X"DD",X"66",X"05", + X"11",X"80",X"02",X"19",X"11",X"20",X"01",X"CD",X"CA",X"36",X"06",X"00",X"DD",X"70",X"0E",X"DD", + X"36",X"07",X"07",X"DD",X"36",X"01",X"05",X"DD",X"36",X"06",X"0A",X"C9",X"3E",X"86",X"CD",X"FE", + X"0D",X"18",X"E7",X"CD",X"F6",X"36",X"DD",X"7E",X"02",X"FD",X"77",X"02",X"DD",X"7E",X"03",X"FD", + X"77",X"03",X"DD",X"7E",X"04",X"FD",X"77",X"04",X"DD",X"7E",X"05",X"FD",X"77",X"05",X"FD",X"CB", + X"00",X"E6",X"FD",X"36",X"07",X"07",X"FD",X"36",X"01",X"05",X"FD",X"36",X"06",X"0A",X"C9",X"CD", + X"E2",X"1B",X"CD",X"73",X"37",X"DA",X"E6",X"32",X"CD",X"46",X"37",X"3E",X"93",X"38",X"98",X"21", + X"00",X"50",X"CD",X"1D",X"37",X"38",X"2B",X"C9",X"CD",X"E2",X"1B",X"CD",X"73",X"37",X"DA",X"F2", + X"32",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"05",X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE", + X"07",X"20",X"7F",X"3A",X"0B",X"E8",X"CB",X"7F",X"DD",X"CB",X"00",X"F6",X"C8",X"DD",X"CB",X"00", + X"B6",X"C9",X"DD",X"36",X"01",X"03",X"DD",X"36",X"07",X"05",X"DD",X"36",X"06",X"04",X"3E",X"93", + X"CD",X"FE",X"0D",X"C9",X"ED",X"5B",X"6E",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B",X"11",X"00", + X"E4",X"19",X"DA",X"13",X"37",X"CB",X"69",X"20",X"33",X"3A",X"02",X"E7",X"FE",X"0C",X"28",X"2C", + X"2A",X"0A",X"E8",X"11",X"E0",X"00",X"CB",X"71",X"28",X"04",X"ED",X"52",X"18",X"01",X"19",X"30", + X"1B",X"2A",X"10",X"E7",X"11",X"00",X"AD",X"19",X"38",X"12",X"21",X"00",X"56",X"11",X"20",X"03", + X"3E",X"94",X"CD",X"FE",X"0D",X"CD",X"CA",X"36",X"DD",X"CB",X"00",X"EE",X"DD",X"35",X"07",X"C0", + X"DD",X"36",X"07",X"09",X"DD",X"7E",X"06",X"3C",X"FE",X"0A",X"20",X"02",X"3E",X"08",X"DD",X"77", + X"06",X"C9",X"FE",X"08",X"C0",X"DD",X"36",X"01",X"04",X"DD",X"36",X"06",X"08",X"DD",X"36",X"07", + X"09",X"C3",X"B3",X"33",X"ED",X"5B",X"72",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B",X"CD",X"BF", + X"37",X"DA",X"15",X"33",X"CD",X"92",X"37",X"3E",X"91",X"DA",X"27",X"33",X"DD",X"35",X"08",X"CA", + X"6B",X"35",X"DD",X"35",X"07",X"C8",X"DD",X"36",X"07",X"0B",X"DD",X"7E",X"06",X"3C",X"FE",X"1B", + X"38",X"02",X"3E",X"19",X"DD",X"77",X"06",X"C9",X"ED",X"5B",X"74",X"E3",X"CD",X"7A",X"1C",X"2A", + X"6A",X"E3",X"18",X"0A",X"ED",X"5B",X"76",X"E3",X"CD",X"7A",X"1C",X"2A",X"6C",X"E3",X"22",X"00", + X"E8",X"CD",X"E2",X"1B",X"CD",X"BF",X"37",X"DA",X"15",X"33",X"CD",X"92",X"37",X"3E",X"91",X"DA", + X"27",X"33",X"ED",X"5B",X"00",X"E8",X"21",X"00",X"50",X"CD",X"32",X"37",X"38",X"16",X"DD",X"35", + X"07",X"C8",X"DD",X"36",X"07",X"0B",X"DD",X"7E",X"06",X"3C",X"FE",X"1D",X"38",X"02",X"3E",X"1B", + X"DD",X"77",X"06",X"C9",X"3E",X"86",X"CD",X"FE",X"0D",X"ED",X"5F",X"E6",X"03",X"CA",X"18",X"32", + X"F5",X"CD",X"53",X"33",X"F1",X"FE",X"01",X"CA",X"35",X"34",X"C3",X"13",X"37",X"CD",X"F6",X"36", + X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"00",X"02",X"DD",X"7E",X"00",X"E6",X"40",X"28",X"03", + X"19",X"18",X"02",X"ED",X"52",X"FD",X"75",X"02",X"FD",X"74",X"03",X"EE",X"50",X"FD",X"77",X"00", + X"DD",X"7E",X"0E",X"C6",X"0C",X"FD",X"77",X"01",X"87",X"5F",X"16",X"00",X"21",X"17",X"35",X"19", + X"5E",X"FD",X"73",X"04",X"23",X"5E",X"FD",X"73",X"05",X"FD",X"36",X"07",X"0B",X"FE",X"1A",X"20", + X"0B",X"FD",X"36",X"06",X"19",X"3A",X"65",X"E3",X"FD",X"77",X"08",X"C9",X"FD",X"36",X"06",X"1B", + X"C9",X"00",X"66",X"00",X"5F",X"00",X"5A",X"ED",X"5B",X"63",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2", + X"1B",X"CD",X"73",X"37",X"DA",X"15",X"33",X"CD",X"46",X"37",X"3E",X"94",X"DA",X"27",X"33",X"DD", + X"35",X"08",X"CA",X"4C",X"33",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"0B",X"DD",X"7E",X"06", + X"3C",X"FE",X"1F",X"38",X"02",X"3E",X"1D",X"DD",X"77",X"06",X"C9",X"CD",X"53",X"33",X"3E",X"86", + X"CD",X"FE",X"0D",X"ED",X"5F",X"E6",X"01",X"CA",X"13",X"37",X"3E",X"40",X"DD",X"AE",X"00",X"DD", + X"77",X"00",X"DD",X"36",X"01",X"10",X"DD",X"36",X"06",X"1D",X"DD",X"36",X"07",X"0B",X"3A",X"66", + X"E3",X"DD",X"77",X"08",X"C9",X"3A",X"60",X"E3",X"ED",X"5B",X"12",X"E7",X"2A",X"61",X"E3",X"ED", + X"52",X"38",X"0B",X"2A",X"63",X"E3",X"ED",X"52",X"38",X"0B",X"FE",X"01",X"18",X"01",X"A7",X"C0", + X"AF",X"32",X"00",X"E1",X"C9",X"21",X"80",X"E3",X"35",X"C0",X"34",X"23",X"7E",X"FE",X"10",X"D0", + X"3A",X"17",X"E0",X"21",X"6A",X"E3",X"1E",X"00",X"BE",X"38",X"1D",X"23",X"1C",X"BE",X"38",X"18", + X"1C",X"3A",X"16",X"E0",X"FE",X"7F",X"3E",X"F8",X"38",X"02",X"3E",X"06",X"21",X"01",X"E7",X"CB", + X"76",X"20",X"02",X"ED",X"44",X"57",X"18",X"23",X"3A",X"16",X"E0",X"16",X"F7",X"FE",X"2A",X"38", + X"1A",X"16",X"FA",X"FE",X"55",X"38",X"14",X"16",X"FD",X"FE",X"7F",X"38",X"0E",X"16",X"03",X"FE", + X"AA",X"38",X"08",X"16",X"06",X"FE",X"D4",X"38",X"02",X"16",X"09",X"3A",X"02",X"E7",X"FE",X"01", + X"28",X"06",X"FE",X"09",X"3E",X"03",X"20",X"02",X"3E",X"06",X"21",X"01",X"E7",X"CB",X"76",X"28", + X"02",X"ED",X"44",X"BA",X"20",X"02",X"16",X"00",X"3A",X"02",X"E7",X"FE",X"01",X"28",X"06",X"FE", + X"09",X"3E",X"03",X"20",X"02",X"3E",X"09",X"CB",X"76",X"20",X"02",X"ED",X"44",X"82",X"57",X"3A", + X"13",X"E7",X"82",X"57",X"CB",X"C2",X"EB",X"DD",X"21",X"6F",X"E3",X"11",X"13",X"00",X"06",X"10", + X"DD",X"19",X"DD",X"CB",X"00",X"66",X"28",X"14",X"DD",X"7E",X"01",X"FE",X"03",X"38",X"08",X"FE", + X"06",X"38",X"09",X"FE",X"09",X"30",X"05",X"DD",X"7E",X"12",X"BC",X"C8",X"10",X"E2",X"EB",X"3A", + X"15",X"E0",X"21",X"65",X"E3",X"CD",X"14",X"12",X"21",X"80",X"E3",X"77",X"23",X"34",X"DD",X"21", + X"6F",X"E3",X"01",X"13",X"00",X"DD",X"09",X"DD",X"CB",X"00",X"66",X"20",X"F8",X"ED",X"5F",X"E6", + X"40",X"F6",X"10",X"DD",X"77",X"00",X"DD",X"73",X"01",X"DD",X"73",X"06",X"DD",X"72",X"12",X"DD", + X"72",X"03",X"DD",X"36",X"02",X"00",X"21",X"00",X"90",X"DD",X"75",X"04",X"DD",X"74",X"05",X"DD", + X"36",X"07",X"03",X"21",X"0A",X"00",X"11",X"7D",X"00",X"DD",X"75",X"0A",X"DD",X"74",X"0B",X"2A", + X"6C",X"E3",X"19",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"C9",X"3A",X"80",X"E0",X"E6",X"07",X"FE", + X"03",X"20",X"11",X"3A",X"09",X"E7",X"93",X"F2",X"E4",X"36",X"CD",X"08",X"12",X"20",X"05",X"3E", + X"05",X"32",X"07",X"E0",X"C3",X"E2",X"2E",X"2A",X"0C",X"E8",X"11",X"00",X"E4",X"19",X"D8",X"21", + X"8E",X"74",X"79",X"C3",X"7E",X"1A",X"3A",X"81",X"E3",X"FE",X"10",X"30",X"14",X"3C",X"32",X"81", + X"E3",X"FD",X"21",X"6F",X"E3",X"11",X"13",X"00",X"FD",X"19",X"FD",X"CB",X"00",X"66",X"20",X"F8", + X"C9",X"F1",X"C9",X"DD",X"36",X"00",X"00",X"21",X"81",X"E3",X"35",X"F1",X"C9",X"E5",X"DD",X"6E", + X"0A",X"DD",X"66",X"0B",X"DD",X"5E",X"0C",X"DD",X"56",X"0D",X"19",X"DD",X"75",X"0C",X"DD",X"74", + X"0D",X"E1",X"E5",X"A7",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"ED",X"52",X"DD",X"75",X"04",X"DD", + X"74",X"05",X"D1",X"ED",X"52",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"03",X"ED",X"52",X"D0",X"DD", + X"5E",X"02",X"DD",X"56",X"03",X"21",X"80",X"FF",X"19",X"22",X"0F",X"E8",X"21",X"80",X"00",X"19", + X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"80",X"00",X"19",X"11",X"08",X"00", + X"C3",X"72",X"11",X"21",X"40",X"01",X"CD",X"20",X"12",X"D0",X"A7",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"ED",X"52",X"D0",X"21",X"00",X"F8",X"19",X"DD",X"5E",X"04",X"DD",X"56",X"05",X"A7",X"ED", + X"52",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"03",X"ED",X"52",X"D0",X"DD",X"5E",X"02",X"DD",X"56", + X"03",X"21",X"C0",X"FF",X"19",X"22",X"0F",X"E8",X"21",X"40",X"00",X"19",X"22",X"11",X"E8",X"DD", + X"6E",X"04",X"DD",X"66",X"05",X"11",X"80",X"00",X"19",X"11",X"04",X"00",X"C3",X"72",X"11",X"21", + X"E0",X"00",X"CD",X"20",X"12",X"D0",X"A7",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"ED",X"52",X"D0", + X"21",X"80",X"FB",X"19",X"DD",X"5E",X"04",X"DD",X"56",X"05",X"A7",X"ED",X"52",X"C9",X"2A",X"12", + X"E7",X"11",X"00",X"80",X"19",X"38",X"0A",X"CD",X"F6",X"37",X"CD",X"FF",X"38",X"CD",X"60",X"39", + X"C9",X"AF",X"32",X"00",X"E1",X"C9",X"06",X"04",X"21",X"72",X"E5",X"7E",X"A7",X"28",X"05",X"35", + X"23",X"10",X"F8",X"C9",X"C5",X"E5",X"3A",X"80",X"E0",X"FE",X"10",X"21",X"DB",X"38",X"38",X"03", + X"21",X"EB",X"38",X"16",X"00",X"58",X"CB",X"03",X"CB",X"03",X"19",X"5E",X"23",X"56",X"E5",X"ED", + X"4B",X"12",X"E7",X"21",X"40",X"0F",X"09",X"ED",X"52",X"DA",X"D9",X"38",X"21",X"C0",X"F0",X"09", + X"ED",X"52",X"D2",X"D9",X"38",X"21",X"76",X"E5",X"3A",X"0B",X"E5",X"BE",X"DA",X"D9",X"38",X"34", + X"FD",X"21",X"62",X"E5",X"01",X"15",X"00",X"FD",X"09",X"FD",X"CB",X"00",X"66",X"20",X"F8",X"FD", + X"73",X"02",X"FD",X"72",X"03",X"2A",X"12",X"E7",X"3E",X"10",X"ED",X"52",X"38",X"02",X"3E",X"50", + X"FD",X"77",X"00",X"CD",X"C5",X"3D",X"D5",X"3A",X"12",X"E0",X"21",X"0D",X"E5",X"BE",X"30",X"0F", + X"FD",X"CB",X"14",X"CE",X"E6",X"02",X"3E",X"38",X"28",X"02",X"3E",X"A9",X"FD",X"77",X"13",X"3A", + X"13",X"E0",X"21",X"0E",X"E5",X"BE",X"30",X"0E",X"FD",X"CB",X"14",X"C6",X"E6",X"02",X"23",X"28", + X"01",X"23",X"7E",X"FD",X"77",X"12",X"D1",X"E1",X"23",X"7E",X"23",X"66",X"6F",X"FD",X"75",X"04", + X"FD",X"74",X"05",X"ED",X"52",X"FD",X"75",X"0C",X"FD",X"74",X"0D",X"F5",X"FD",X"7E",X"01",X"C6", + X"04",X"FD",X"77",X"01",X"FE",X"04",X"28",X"09",X"F1",X"ED",X"5F",X"CB",X"47",X"28",X"05",X"18", + X"07",X"F1",X"38",X"04",X"FD",X"CB",X"00",X"DE",X"FD",X"36",X"06",X"06",X"FD",X"36",X"07",X"10", + X"3A",X"0A",X"E5",X"E1",X"77",X"C1",X"C3",X"00",X"38",X"E1",X"E1",X"C1",X"C3",X"00",X"38",X"00", + X"71",X"00",X"80",X"00",X"5B",X"00",X"54",X"00",X"3D",X"00",X"70",X"00",X"23",X"00",X"80",X"00", + X"71",X"00",X"80",X"00",X"5B",X"00",X"70",X"00",X"3D",X"00",X"70",X"00",X"23",X"00",X"80",X"3A", + X"20",X"E5",X"A7",X"C8",X"47",X"DD",X"21",X"21",X"E5",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"11", + X"29",X"00",X"ED",X"52",X"EB",X"21",X"00",X"08",X"ED",X"52",X"38",X"05",X"CD",X"0E",X"3D",X"18", + X"24",X"DD",X"73",X"00",X"DD",X"72",X"01",X"2A",X"12",X"E7",X"ED",X"52",X"38",X"0A",X"11",X"00", + X"F0",X"19",X"38",X"25",X"0E",X"FF",X"18",X"08",X"11",X"00",X"10",X"19",X"30",X"1B",X"0E",X"00", + X"C5",X"CD",X"55",X"3D",X"C1",X"21",X"20",X"E5",X"35",X"C8",X"05",X"C8",X"7E",X"23",X"07",X"16", + X"00",X"5F",X"19",X"7E",X"23",X"66",X"6F",X"18",X"B6",X"DD",X"23",X"DD",X"23",X"10",X"AA",X"C9", + X"3A",X"49",X"E5",X"A7",X"C8",X"47",X"DD",X"21",X"4A",X"E5",X"DD",X"6E",X"00",X"DD",X"66",X"01", + X"11",X"29",X"00",X"19",X"EB",X"21",X"00",X"80",X"ED",X"52",X"30",X"05",X"CD",X"09",X"3D",X"18", + X"24",X"DD",X"73",X"00",X"DD",X"72",X"01",X"2A",X"12",X"E7",X"ED",X"52",X"38",X"0A",X"11",X"00", + X"F0",X"19",X"38",X"25",X"0E",X"FF",X"18",X"08",X"11",X"00",X"10",X"19",X"30",X"1B",X"0E",X"00", + X"C5",X"CD",X"59",X"3D",X"C1",X"21",X"49",X"E5",X"35",X"C8",X"05",X"C8",X"7E",X"23",X"07",X"16", + X"00",X"5F",X"19",X"7E",X"23",X"66",X"6F",X"18",X"B7",X"DD",X"23",X"DD",X"23",X"10",X"AB",X"C9", + X"3A",X"76",X"E5",X"A7",X"C8",X"DD",X"21",X"77",X"E5",X"3A",X"0B",X"E5",X"47",X"C5",X"DD",X"4E", + X"00",X"CB",X"61",X"C4",X"DF",X"39",X"C1",X"11",X"15",X"00",X"DD",X"19",X"10",X"EF",X"C9",X"DD", + X"7E",X"01",X"FE",X"04",X"38",X"0B",X"FE",X"07",X"DA",X"3B",X"3C",X"CA",X"E9",X"3B",X"C3",X"1F", + X"3B",X"DD",X"35",X"07",X"20",X"0D",X"DD",X"36",X"07",X"05",X"DD",X"35",X"06",X"28",X"04",X"DD", + X"36",X"06",X"01",X"DD",X"CB",X"14",X"4E",X"28",X"1D",X"DD",X"35",X"13",X"20",X"18",X"DD",X"CB", + X"14",X"56",X"20",X"0A",X"DD",X"CB",X"14",X"D6",X"DD",X"36",X"13",X"A9",X"18",X"08",X"DD",X"CB", + X"14",X"96",X"DD",X"CB",X"14",X"8E",X"DD",X"CB",X"14",X"46",X"28",X"06",X"DD",X"35",X"12",X"CA", + X"92",X"3B",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"DD",X"5E",X"10",X"DD",X"56",X"11",X"DD",X"CB", + X"14",X"56",X"28",X"03",X"11",X"00",X"00",X"CB",X"71",X"20",X"13",X"ED",X"52",X"EB",X"21",X"00", + X"F4",X"19",X"38",X"1C",X"DD",X"CB",X"00",X"F6",X"21",X"AB",X"3E",X"C3",X"AA",X"3B",X"19",X"EB", + X"21",X"00",X"84",X"19",X"30",X"0A",X"DD",X"CB",X"00",X"B6",X"21",X"7F",X"3E",X"C3",X"AA",X"3B", + X"DD",X"73",X"02",X"DD",X"72",X"03",X"D5",X"2A",X"12",X"E7",X"ED",X"52",X"11",X"00",X"11",X"38", + X"08",X"ED",X"52",X"D1",X"38",X"0E",X"C3",X"FB",X"3C",X"19",X"D1",X"38",X"07",X"21",X"00",X"DF", + X"19",X"DA",X"FB",X"3C",X"FE",X"03",X"28",X"5C",X"CD",X"22",X"3D",X"3D",X"FA",X"E4",X"3A",X"D5", + X"DD",X"6E",X"0C",X"DD",X"66",X"0D",X"28",X"06",X"ED",X"5B",X"04",X"E5",X"18",X"04",X"ED",X"5B", + X"06",X"E5",X"CB",X"59",X"28",X"0D",X"ED",X"52",X"EB",X"CB",X"7A",X"28",X"1E",X"DD",X"CB",X"00", + X"9E",X"18",X"18",X"19",X"EB",X"CB",X"7A",X"20",X"12",X"A7",X"28",X"05",X"21",X"00",X"EC",X"18", + X"03",X"21",X"00",X"F0",X"19",X"30",X"04",X"DD",X"CB",X"00",X"DE",X"DD",X"73",X"0C",X"DD",X"72", + X"0D",X"E1",X"19",X"EB",X"DD",X"6E",X"08",X"DD",X"66",X"09",X"19",X"DD",X"75",X"04",X"DD",X"74", + X"05",X"C3",X"7A",X"3C",X"CD",X"22",X"3D",X"D5",X"ED",X"5B",X"04",X"E5",X"DD",X"6E",X"0C",X"DD", + X"66",X"0D",X"CB",X"59",X"28",X"04",X"ED",X"52",X"18",X"01",X"19",X"30",X"07",X"DD",X"36",X"01", + X"00",X"21",X"00",X"00",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"D1",X"19",X"EB",X"18",X"C5",X"DD", + X"6E",X"0E",X"DD",X"66",X"0F",X"DD",X"35",X"07",X"20",X"09",X"11",X"05",X"00",X"19",X"CD",X"D5", + X"3B",X"28",X"24",X"7E",X"DD",X"86",X"02",X"DD",X"77",X"02",X"23",X"7E",X"DD",X"8E",X"03",X"DD", + X"77",X"03",X"23",X"7E",X"DD",X"86",X"04",X"DD",X"77",X"04",X"23",X"7E",X"DD",X"8E",X"05",X"DD", + X"77",X"05",X"23",X"4E",X"C3",X"7A",X"3C",X"DD",X"36",X"0A",X"00",X"DD",X"36",X"06",X"00",X"DD", + X"36",X"07",X"05",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"DD",X"5E",X"08",X"DD",X"56",X"09",X"ED", + X"52",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"DD",X"7E",X"01",X"D6",X"08",X"20",X"0E",X"3E",X"03", + X"DD",X"CB",X"00",X"9E",X"CB",X"7C",X"20",X"04",X"DD",X"CB",X"00",X"DE",X"DD",X"77",X"01",X"C3", + X"7A",X"3C",X"DD",X"CB",X"14",X"86",X"DD",X"CB",X"00",X"76",X"21",X"7F",X"3E",X"DD",X"CB",X"00", + X"B6",X"20",X"07",X"DD",X"CB",X"00",X"F6",X"21",X"AB",X"3E",X"E5",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"11",X"00",X"98",X"19",X"E1",X"30",X"04",X"11",X"16",X"00",X"19",X"CD",X"D5",X"3B",X"11", + X"04",X"00",X"19",X"4E",X"DD",X"7E",X"01",X"C6",X"08",X"FE",X"0B",X"20",X"02",X"3E",X"08",X"DD", + X"77",X"01",X"C3",X"7A",X"3C",X"7E",X"FE",X"FF",X"C8",X"DD",X"77",X"07",X"23",X"7E",X"DD",X"77", + X"06",X"23",X"DD",X"75",X"0E",X"DD",X"74",X"0F",X"C9",X"DD",X"35",X"07",X"C2",X"A9",X"3C",X"DD", + X"7E",X"06",X"FE",X"09",X"28",X"0A",X"DD",X"36",X"07",X"05",X"DD",X"34",X"06",X"C3",X"A9",X"3C", + X"DD",X"7E",X"0E",X"A7",X"CA",X"F2",X"3C",X"CD",X"BA",X"3C",X"C3",X"F2",X"3C",X"3E",X"86",X"CD", + X"FE",X"0D",X"3A",X"01",X"E7",X"E6",X"01",X"3E",X"83",X"20",X"0F",X"3C",X"18",X"0C",X"11",X"15", + X"01",X"CD",X"E2",X"2E",X"3E",X"94",X"CD",X"FE",X"0D",X"AF",X"DD",X"77",X"0E",X"DD",X"36",X"07", + X"05",X"DD",X"36",X"06",X"07",X"DD",X"36",X"01",X"07",X"18",X"6E",X"DD",X"35",X"07",X"28",X"26", + X"3A",X"00",X"EB",X"F5",X"3E",X"01",X"32",X"00",X"EB",X"2A",X"01",X"EB",X"E5",X"2A",X"03",X"EB", + X"11",X"F8",X"FF",X"19",X"22",X"01",X"EB",X"22",X"03",X"EB",X"CD",X"A9",X"3C",X"E1",X"22",X"01", + X"EB",X"F1",X"32",X"00",X"EB",X"C9",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"05",X"DD",X"7E", + X"01",X"D6",X"04",X"20",X"02",X"3E",X"03",X"DD",X"77",X"01",X"CD",X"CF",X"3C",X"DA",X"0D",X"3C", + X"DD",X"5E",X"02",X"DD",X"56",X"03",X"21",X"C0",X"FF",X"19",X"22",X"0F",X"E8",X"21",X"80",X"00", + X"19",X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"00",X"02",X"19",X"11",X"06", + X"00",X"E5",X"CD",X"72",X"11",X"E1",X"DA",X"1E",X"3C",X"CD",X"E2",X"1B",X"11",X"00",X"E4",X"19", + X"D8",X"21",X"C0",X"75",X"79",X"EE",X"40",X"C3",X"80",X"1A",X"DD",X"6E",X"04",X"DD",X"66",X"05", + X"29",X"16",X"00",X"CB",X"12",X"5C",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"C3",X"60",X"2F",X"21", + X"40",X"01",X"CD",X"20",X"12",X"D0",X"21",X"80",X"01",X"19",X"EB",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"ED",X"52",X"D0",X"21",X"80",X"F3",X"19",X"DD",X"5E",X"04",X"DD",X"56",X"05",X"A7",X"ED", + X"52",X"C9",X"21",X"76",X"E5",X"35",X"DD",X"36",X"00",X"00",X"C9",X"21",X"76",X"E5",X"35",X"DD", + X"CB",X"00",X"76",X"DD",X"36",X"00",X"00",X"20",X"05",X"21",X"20",X"E5",X"18",X"03",X"21",X"49", + X"E5",X"7E",X"FE",X"14",X"C8",X"34",X"23",X"C5",X"07",X"06",X"00",X"4F",X"09",X"73",X"23",X"72", + X"C1",X"C9",X"DD",X"6E",X"0A",X"DD",X"66",X"0B",X"ED",X"5B",X"08",X"E5",X"DD",X"CB",X"00",X"56", + X"28",X"0E",X"ED",X"52",X"EB",X"30",X"15",X"DD",X"CB",X"00",X"96",X"11",X"00",X"00",X"18",X"0C", + X"19",X"EB",X"21",X"00",X"FC",X"19",X"30",X"04",X"DD",X"CB",X"00",X"D6",X"DD",X"73",X"0A",X"DD", + X"72",X"0B",X"C9",X"0E",X"00",X"06",X"10",X"18",X"02",X"06",X"50",X"21",X"76",X"E5",X"3A",X"0B", + X"E5",X"BE",X"D8",X"34",X"FD",X"21",X"62",X"E5",X"11",X"15",X"00",X"FD",X"19",X"FD",X"CB",X"00", + X"66",X"20",X"F8",X"ED",X"5F",X"E6",X"0C",X"B0",X"FD",X"77",X"00",X"2A",X"12",X"E7",X"11",X"80", + X"10",X"CB",X"41",X"28",X"04",X"ED",X"52",X"18",X"0A",X"19",X"11",X"80",X"20",X"ED",X"52",X"19", + X"30",X"01",X"EB",X"FD",X"75",X"02",X"FD",X"74",X"03",X"FD",X"36",X"07",X"05",X"FD",X"36",X"06", + X"00",X"CD",X"C5",X"3D",X"FD",X"7E",X"01",X"FE",X"01",X"D8",X"21",X"5F",X"3E",X"28",X"03",X"21", + X"6F",X"3E",X"3A",X"10",X"E0",X"E6",X"0E",X"16",X"00",X"5F",X"19",X"7E",X"FD",X"77",X"0C",X"23", + X"7E",X"FD",X"77",X"0D",X"C9",X"21",X"49",X"E6",X"7E",X"A7",X"20",X"0F",X"36",X"03",X"ED",X"5F", + X"E6",X"1C",X"21",X"1F",X"3E",X"16",X"00",X"5F",X"19",X"18",X"04",X"35",X"2A",X"4A",X"E6",X"7E", + X"23",X"22",X"4A",X"E6",X"FD",X"77",X"01",X"FD",X"36",X"14",X"00",X"21",X"3F",X"3E",X"A7",X"28", + X"03",X"21",X"4F",X"3E",X"ED",X"5F",X"E6",X"0E",X"16",X"00",X"5F",X"19",X"5E",X"23",X"56",X"FD", + X"73",X"08",X"FD",X"72",X"09",X"FD",X"36",X"0B",X"02",X"3A",X"11",X"E0",X"21",X"0C",X"E5",X"BE", + X"2A",X"00",X"E5",X"38",X"03",X"2A",X"02",X"E5",X"FD",X"75",X"10",X"FD",X"74",X"11",X"C9",X"02", + X"00",X"01",X"00",X"01",X"02",X"00",X"00",X"00",X"00",X"02",X"01",X"00",X"01",X"00",X"02",X"02", + X"00",X"00",X"01",X"00",X"02",X"01",X"00",X"00",X"01",X"02",X"00",X"01",X"00",X"00",X"02",X"00", + X"50",X"80",X"54",X"00",X"59",X"80",X"5D",X"00",X"62",X"80",X"66",X"00",X"6B",X"80",X"6F",X"00", + X"4E",X"80",X"51",X"00",X"55",X"80",X"58",X"00",X"5C",X"80",X"5F",X"00",X"63",X"80",X"66",X"00", + X"00",X"80",X"02",X"00",X"05",X"00",X"07",X"80",X"09",X"80",X"0B",X"00",X"0E",X"00",X"10",X"00", + X"00",X"00",X"03",X"00",X"06",X"80",X"08",X"80",X"0B",X"00",X"0E",X"00",X"0C",X"00",X"14",X"12", + X"02",X"2A",X"00",X"47",X"00",X"40",X"12",X"03",X"00",X"00",X"8E",X"00",X"40",X"12",X"02",X"D6", + X"FF",X"47",X"00",X"00",X"FF",X"12",X"04",X"2A",X"00",X"B9",X"FF",X"C0",X"12",X"05",X"00",X"00", + X"72",X"FF",X"C0",X"12",X"04",X"D6",X"FF",X"B9",X"FF",X"80",X"FF",X"12",X"02",X"D6",X"FF",X"47", + X"00",X"00",X"12",X"03",X"00",X"00",X"8E",X"00",X"00",X"12",X"02",X"2A",X"00",X"47",X"00",X"40", + X"FF",X"12",X"04",X"D6",X"FF",X"B9",X"FF",X"80",X"12",X"05",X"00",X"00",X"72",X"FF",X"80",X"12", + X"04",X"2A",X"00",X"B9",X"FF",X"C0",X"FF",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"2A",X"12",X"E7",X"ED",X"5B",X"07",X"E7",X"3A",X"80",X"E0",X"E6",X"01",X"28",X"01",X"EB",X"ED", + X"52",X"3E",X"01",X"30",X"02",X"3E",X"00",X"32",X"02",X"E7",X"38",X"10",X"21",X"03",X"E7",X"7E", + X"35",X"A7",X"20",X"08",X"CD",X"3F",X"43",X"3E",X"90",X"CD",X"FE",X"0D",X"2A",X"12",X"E7",X"3A", + X"1A",X"E7",X"A7",X"C2",X"AD",X"40",X"3A",X"00",X"E0",X"FE",X"03",X"28",X"70",X"3A",X"02",X"E7", + X"FE",X"0B",X"28",X"69",X"30",X"3A",X"FE",X"09",X"30",X"0B",X"FE",X"01",X"20",X"5F",X"3A",X"06", + X"E7",X"FE",X"04",X"28",X"58",X"3A",X"00",X"E7",X"CB",X"6F",X"3A",X"01",X"E7",X"11",X"29",X"00", + X"28",X"27",X"E6",X"20",X"20",X"47",X"19",X"11",X"00",X"DB",X"ED",X"52",X"19",X"38",X"01",X"EB", + X"E5",X"7C",X"D6",X"0F",X"21",X"14",X"E7",X"BE",X"20",X"2F",X"34",X"7E",X"C6",X"1F",X"18",X"26", + X"3A",X"00",X"E7",X"E6",X"20",X"20",X"11",X"18",X"E7",X"E6",X"10",X"20",X"20",X"ED",X"52",X"11", + X"00",X"04",X"ED",X"52",X"19",X"30",X"01",X"EB",X"E5",X"3E",X"10",X"84",X"21",X"14",X"E7",X"BE", + X"20",X"07",X"35",X"7E",X"C6",X"E0",X"CD",X"65",X"57",X"E1",X"22",X"12",X"E7",X"AF",X"29",X"17", + X"29",X"17",X"29",X"17",X"6C",X"67",X"11",X"80",X"00",X"ED",X"52",X"38",X"11",X"19",X"11",X"80", + X"06",X"ED",X"52",X"30",X"09",X"19",X"22",X"00",X"E9",X"21",X"00",X"01",X"18",X"08",X"ED",X"53", + X"00",X"E9",X"11",X"00",X"01",X"19",X"22",X"15",X"E7",X"AF",X"2A",X"10",X"E7",X"29",X"17",X"6C", + X"67",X"22",X"17",X"E7",X"C9",X"2A",X"17",X"E7",X"22",X"07",X"E8",X"3A",X"06",X"E7",X"87",X"21", + X"FF",X"65",X"06",X"00",X"4F",X"09",X"7E",X"23",X"66",X"6F",X"3A",X"01",X"E7",X"E6",X"40",X"ED", + X"5B",X"15",X"E7",X"CD",X"20",X"0E",X"3A",X"00",X"E0",X"FE",X"05",X"C8",X"FE",X"07",X"C8",X"FE", + X"03",X"2A",X"00",X"E9",X"20",X"1E",X"EB",X"2A",X"02",X"E9",X"3A",X"01",X"E1",X"01",X"02",X"00", + X"A7",X"20",X"08",X"ED",X"42",X"ED",X"52",X"30",X"07",X"18",X"08",X"09",X"ED",X"52",X"30",X"03", + X"19",X"18",X"01",X"EB",X"22",X"02",X"E9",X"3A",X"3F",X"E3",X"A7",X"CC",X"C1",X"2E",X"C9",X"CD", + X"08",X"12",X"20",X"0C",X"2A",X"03",X"E0",X"7C",X"B5",X"20",X"05",X"21",X"1F",X"E7",X"CB",X"CE", + X"CD",X"74",X"41",X"21",X"00",X"E7",X"CB",X"66",X"28",X"0E",X"CB",X"6E",X"28",X"05",X"CB",X"76", + X"20",X"0E",X"C9",X"CB",X"76",X"28",X"05",X"C9",X"CB",X"6E",X"20",X"04",X"23",X"CB",X"B6",X"C9", + X"23",X"CB",X"F6",X"C9",X"21",X"19",X"E7",X"35",X"C2",X"9A",X"41",X"3A",X"80",X"E0",X"E6",X"18", + X"FE",X"08",X"16",X"00",X"38",X"0C",X"16",X"A9",X"28",X"08",X"FE",X"10",X"16",X"70",X"28",X"02", + X"16",X"38",X"72",X"21",X"01",X"E7",X"7E",X"EE",X"80",X"77",X"3A",X"00",X"E0",X"FE",X"03",X"CA", + X"A0",X"46",X"CD",X"04",X"47",X"21",X"02",X"E7",X"7E",X"FE",X"0D",X"CA",X"F6",X"45",X"FE",X"04", + X"DA",X"89",X"42",X"FE",X"0B",X"CA",X"DE",X"44",X"D2",X"02",X"45",X"FE",X"08",X"D2",X"06",X"44", + X"3A",X"1F",X"E7",X"E6",X"01",X"C2",X"51",X"45",X"3A",X"09",X"E9",X"57",X"7E",X"FE",X"06",X"30", + X"05",X"CB",X"52",X"C2",X"87",X"43",X"CB",X"5A",X"C2",X"B5",X"43",X"21",X"00",X"E7",X"CB",X"4A", + X"28",X"02",X"CB",X"AE",X"CB",X"42",X"28",X"02",X"CB",X"EE",X"21",X"03",X"E7",X"35",X"20",X"39", + X"3A",X"04",X"E7",X"3C",X"28",X"4A",X"3D",X"20",X"19",X"3C",X"32",X"04",X"E7",X"2A",X"0A",X"E7", + X"7E",X"32",X"03",X"E7",X"23",X"3A",X"01",X"E7",X"A6",X"32",X"01",X"E7",X"23",X"7E",X"32",X"06", + X"E7",X"C9",X"21",X"02",X"E7",X"7E",X"FE",X"06",X"01",X"00",X"04",X"38",X"03",X"01",X"03",X"05", + X"71",X"78",X"32",X"06",X"E7",X"23",X"36",X"05",X"C9",X"3A",X"04",X"E7",X"3D",X"C0",X"2A",X"0A", + X"E7",X"23",X"CB",X"4E",X"28",X"05",X"CB",X"6A",X"20",X"0A",X"C9",X"CB",X"62",X"20",X"05",X"C9", + X"AF",X"32",X"05",X"E7",X"AF",X"32",X"04",X"E7",X"57",X"3A",X"02",X"E7",X"D6",X"04",X"87",X"5F", + X"87",X"83",X"5F",X"21",X"8D",X"65",X"19",X"7E",X"32",X"03",X"E7",X"23",X"3A",X"01",X"E7",X"B6", + X"32",X"01",X"E7",X"23",X"CB",X"4F",X"7E",X"23",X"22",X"0A",X"E7",X"21",X"05",X"E7",X"28",X"05", + X"CB",X"46",X"28",X"01",X"3C",X"32",X"06",X"E7",X"34",X"3A",X"84",X"E8",X"A7",X"C0",X"3E",X"0B", + X"32",X"84",X"E8",X"3E",X"82",X"CD",X"FE",X"0D",X"C9",X"3A",X"1F",X"E7",X"CB",X"4F",X"C2",X"36", + X"46",X"CB",X"47",X"C2",X"5A",X"45",X"3A",X"03",X"E7",X"3D",X"FA",X"A0",X"42",X"32",X"03",X"E7", + X"3A",X"09",X"E9",X"CB",X"6F",X"C2",X"65",X"43",X"CB",X"67",X"C2",X"52",X"43",X"CB",X"5F",X"C2", + X"BD",X"43",X"CB",X"57",X"C2",X"87",X"43",X"CB",X"4F",X"20",X"4C",X"CB",X"47",X"20",X"20",X"21", + X"02",X"E7",X"7E",X"FE",X"02",X"36",X"00",X"D2",X"47",X"43",X"FE",X"00",X"3A",X"05",X"E7",X"28", + X"02",X"3E",X"05",X"3D",X"32",X"05",X"E7",X"C0",X"2A",X"12",X"E7",X"22",X"07",X"E7",X"C9",X"2A", + X"12",X"E7",X"11",X"00",X"DB",X"ED",X"52",X"28",X"D6",X"21",X"01",X"E7",X"CB",X"6E",X"2B",X"20", + X"08",X"CB",X"6E",X"20",X"3C",X"CB",X"EE",X"18",X"26",X"CB",X"EE",X"18",X"02",X"CB",X"AE",X"2A", + X"12",X"E7",X"22",X"07",X"E7",X"18",X"B8",X"2A",X"12",X"E7",X"11",X"00",X"04",X"ED",X"52",X"28", + X"AE",X"21",X"01",X"E7",X"CB",X"66",X"2B",X"20",X"E4",X"CB",X"6E",X"28",X"14",X"CB",X"AE",X"3A", + X"02",X"E7",X"FE",X"04",X"20",X"05",X"3E",X"05",X"32",X"03",X"E7",X"2A",X"12",X"E7",X"22",X"07", + X"E7",X"21",X"02",X"E7",X"3E",X"01",X"BE",X"77",X"38",X"0D",X"3A",X"03",X"E7",X"A7",X"C0",X"3A", + X"06",X"E7",X"3C",X"FE",X"04",X"38",X"02",X"3E",X"00",X"32",X"06",X"E7",X"3E",X"05",X"32",X"03", + X"E7",X"C9",X"7E",X"FE",X"03",X"3E",X"05",X"20",X"02",X"3E",X"07",X"77",X"2A",X"12",X"E7",X"22", + X"07",X"E7",X"C3",X"40",X"42",X"3E",X"01",X"32",X"03",X"E7",X"7E",X"FE",X"03",X"0E",X"04",X"3E", + X"06",X"20",X"04",X"0E",X"06",X"3E",X"0B",X"71",X"32",X"06",X"E7",X"3E",X"FF",X"32",X"04",X"E7", + X"2A",X"12",X"E7",X"22",X"07",X"E7",X"C9",X"7E",X"FE",X"02",X"28",X"19",X"FE",X"03",X"C8",X"36", + X"02",X"2A",X"12",X"E7",X"22",X"07",X"E7",X"3E",X"02",X"32",X"03",X"E7",X"3A",X"01",X"E7",X"E6", + X"FC",X"32",X"01",X"E7",X"C9",X"3A",X"03",X"E7",X"A7",X"C0",X"3E",X"03",X"32",X"02",X"E7",X"3E", + X"05",X"32",X"06",X"E7",X"C9",X"3A",X"01",X"E7",X"E6",X"FC",X"32",X"01",X"E7",X"2A",X"12",X"E7", + X"ED",X"5B",X"07",X"E7",X"3A",X"00",X"E7",X"E6",X"20",X"20",X"01",X"EB",X"ED",X"52",X"3E",X"08", + X"11",X"00",X"04",X"ED",X"52",X"38",X"01",X"3C",X"32",X"02",X"E7",X"D6",X"08",X"87",X"06",X"00", + X"4F",X"11",X"03",X"E7",X"21",X"A5",X"65",X"09",X"7E",X"23",X"66",X"6F",X"ED",X"A0",X"03",X"22", + X"0C",X"E7",X"21",X"A9",X"65",X"09",X"7E",X"23",X"66",X"6F",X"ED",X"A0",X"22",X"0E",X"E7",X"AF", + X"12",X"7E",X"32",X"06",X"E7",X"C9",X"21",X"1F",X"E7",X"CB",X"46",X"C2",X"4B",X"46",X"3A",X"1A", + X"E7",X"A7",X"C2",X"56",X"46",X"2A",X"0C",X"E7",X"5E",X"23",X"56",X"E5",X"2A",X"10",X"E7",X"19", + X"22",X"10",X"E7",X"E1",X"3A",X"03",X"E7",X"3D",X"20",X"06",X"23",X"7E",X"23",X"22",X"0C",X"E7", + X"32",X"03",X"E7",X"2A",X"0E",X"E7",X"3A",X"04",X"E7",X"3D",X"20",X"09",X"23",X"7E",X"A7",X"28", + X"2D",X"23",X"22",X"0E",X"E7",X"32",X"04",X"E7",X"4E",X"3A",X"05",X"E7",X"A7",X"28",X"58",X"2A", + X"0A",X"E7",X"3A",X"05",X"E7",X"3D",X"20",X"2E",X"CB",X"7E",X"28",X"04",X"CB",X"79",X"20",X"29", + X"23",X"7E",X"32",X"05",X"E7",X"23",X"A7",X"28",X"21",X"22",X"0A",X"E7",X"18",X"1B",X"21",X"00", + X"05",X"22",X"02",X"E7",X"3E",X"04",X"32",X"06",X"E7",X"21",X"00",X"50",X"22",X"10",X"E7",X"2A", + X"12",X"E7",X"22",X"07",X"E7",X"C9",X"32",X"05",X"E7",X"4E",X"3A",X"01",X"E7",X"CB",X"CF",X"CB", + X"71",X"20",X"0A",X"CB",X"8F",X"CB",X"C7",X"CB",X"69",X"20",X"02",X"CB",X"87",X"32",X"01",X"E7", + X"79",X"E6",X"1F",X"32",X"06",X"E7",X"C9",X"CB",X"79",X"28",X"F5",X"3A",X"09",X"E9",X"E6",X"30", + X"28",X"EE",X"06",X"F8",X"CB",X"67",X"20",X"09",X"06",X"FB",X"3E",X"81",X"CD",X"FE",X"0D",X"18", + X"03",X"CD",X"79",X"42",X"3A",X"02",X"E7",X"80",X"87",X"16",X"00",X"5F",X"21",X"AD",X"65",X"19", + X"7E",X"23",X"66",X"6F",X"7E",X"32",X"05",X"E7",X"23",X"22",X"0A",X"E7",X"18",X"AB",X"3A",X"1F", + X"E7",X"E6",X"01",X"20",X"75",X"21",X"03",X"E7",X"35",X"C0",X"21",X"02",X"E7",X"3A",X"06",X"E7", + X"FE",X"05",X"36",X"03",X"C8",X"36",X"00",X"3E",X"00",X"32",X"06",X"E7",X"3E",X"05",X"32",X"03", + X"E7",X"C9",X"21",X"03",X"E7",X"35",X"20",X"19",X"2A",X"0A",X"E7",X"7E",X"FE",X"FF",X"28",X"3B", + X"32",X"06",X"E7",X"23",X"7E",X"23",X"32",X"03",X"E7",X"22",X"0A",X"E7",X"21",X"00",X"E7",X"CB", + X"CE",X"ED",X"5B",X"0E",X"E7",X"2A",X"07",X"E7",X"19",X"22",X"0E",X"E7",X"2A",X"10",X"E7",X"ED", + X"52",X"22",X"10",X"E7",X"2A",X"12",X"E7",X"ED",X"5B",X"0C",X"E7",X"3A",X"00",X"E7",X"E6",X"20", + X"28",X"04",X"ED",X"52",X"18",X"01",X"19",X"22",X"12",X"E7",X"C9",X"3E",X"0B",X"32",X"00",X"E0", + X"C9",X"7E",X"FE",X"06",X"3E",X"05",X"30",X"0C",X"18",X"07",X"3A",X"06",X"E7",X"FE",X"05",X"28", + X"06",X"CD",X"8E",X"46",X"32",X"06",X"E7",X"CD",X"91",X"2E",X"2A",X"12",X"E7",X"22",X"07",X"E7", + X"3A",X"01",X"E7",X"E6",X"FC",X"32",X"01",X"E7",X"21",X"1F",X"E7",X"CB",X"86",X"3E",X"08",X"32", + X"03",X"E7",X"21",X"21",X"E7",X"3A",X"09",X"E7",X"A7",X"37",X"FA",X"91",X"45",X"96",X"32",X"09", + X"E7",X"21",X"02",X"E7",X"36",X"0B",X"D0",X"CD",X"08",X"12",X"C0",X"34",X"3A",X"20",X"E7",X"A7", + X"F5",X"3E",X"00",X"CD",X"FE",X"0D",X"3E",X"87",X"CD",X"FE",X"0D",X"F1",X"21",X"EC",X"45",X"11", + X"0C",X"00",X"01",X"12",X"00",X"20",X"23",X"2A",X"12",X"E7",X"ED",X"5B",X"DA",X"E2",X"ED",X"52", + X"21",X"01",X"E7",X"38",X"07",X"CB",X"B6",X"2B",X"CB",X"AE",X"18",X"05",X"CB",X"F6",X"2B",X"CB", + X"EE",X"21",X"F1",X"45",X"11",X"39",X"00",X"01",X"1B",X"00",X"22",X"0A",X"E7",X"ED",X"53",X"0C", + X"E7",X"ED",X"43",X"07",X"E7",X"21",X"00",X"00",X"22",X"0E",X"E7",X"C9",X"22",X"0A",X"23",X"18", + X"FF",X"24",X"08",X"25",X"16",X"FF",X"21",X"1F",X"E7",X"CB",X"46",X"28",X"0C",X"CD",X"91",X"2E", + X"CD",X"75",X"46",X"CD",X"8E",X"46",X"32",X"06",X"E7",X"ED",X"5B",X"0E",X"E7",X"21",X"12",X"00", + X"19",X"22",X"0E",X"E7",X"2A",X"10",X"E7",X"ED",X"52",X"EB",X"21",X"00",X"B0",X"19",X"30",X"05", + X"ED",X"53",X"10",X"E7",X"C9",X"21",X"00",X"50",X"21",X"1F",X"E7",X"CB",X"4E",X"28",X"14",X"CB", + X"8E",X"CD",X"08",X"12",X"20",X"0D",X"3E",X"0C",X"32",X"02",X"E7",X"3E",X"05",X"32",X"03",X"E7", + X"C3",X"9F",X"45",X"21",X"02",X"E7",X"36",X"00",X"C3",X"47",X"43",X"CD",X"91",X"2E",X"CD",X"75", + X"46",X"CD",X"8E",X"46",X"18",X"02",X"3E",X"10",X"32",X"06",X"E7",X"3E",X"0D",X"32",X"02",X"E7", + X"21",X"80",X"00",X"22",X"0E",X"E7",X"2A",X"12",X"E7",X"22",X"07",X"E7",X"3A",X"01",X"E7",X"E6", + X"FC",X"32",X"01",X"E7",X"C9",X"21",X"21",X"E7",X"3A",X"09",X"E7",X"A7",X"FA",X"84",X"46",X"96", + X"0E",X"00",X"30",X"02",X"0E",X"02",X"32",X"09",X"E7",X"21",X"1F",X"E7",X"71",X"C9",X"2A",X"10", + X"E7",X"11",X"00",X"18",X"19",X"ED",X"5B",X"22",X"E7",X"ED",X"52",X"3E",X"20",X"D8",X"3C",X"C9", + X"CD",X"03",X"59",X"FE",X"04",X"28",X"4D",X"21",X"03",X"E7",X"35",X"C0",X"36",X"08",X"21",X"05", + X"E7",X"35",X"20",X"24",X"36",X"02",X"2B",X"35",X"28",X"34",X"2A",X"12",X"E7",X"11",X"00",X"01", + X"3A",X"01",X"E1",X"A7",X"28",X"03",X"19",X"18",X"02",X"ED",X"52",X"22",X"12",X"E7",X"2A",X"10", + X"E7",X"11",X"00",X"06",X"19",X"22",X"10",X"E7",X"3A",X"06",X"E7",X"3C",X"FE",X"20",X"20",X"02", + X"3E",X"1C",X"32",X"06",X"E7",X"E6",X"01",X"C0",X"3E",X"90",X"CD",X"FE",X"0D",X"C9",X"3E",X"0C", + X"32",X"00",X"E0",X"C9",X"3A",X"06",X"E7",X"FE",X"26",X"C0",X"3E",X"0C",X"32",X"00",X"E0",X"AF", + X"32",X"40",X"E3",X"C9",X"2A",X"02",X"E1",X"ED",X"5B",X"12",X"E7",X"CD",X"03",X"59",X"FE",X"04", + X"28",X"72",X"3A",X"01",X"E1",X"FE",X"01",X"FD",X"21",X"00",X"50",X"38",X"06",X"C0",X"FD",X"21", + X"00",X"52",X"EB",X"A7",X"ED",X"52",X"D8",X"E5",X"2A",X"10",X"E7",X"11",X"00",X"50",X"ED",X"52", + X"38",X"50",X"29",X"7C",X"E1",X"06",X"0C",X"D6",X"0C",X"38",X"0E",X"11",X"00",X"01",X"ED",X"52", + X"D8",X"11",X"00",X"06",X"FD",X"19",X"05",X"18",X"EE",X"FD",X"22",X"10",X"E7",X"3E",X"00",X"CD", + X"FE",X"0D",X"3E",X"03",X"32",X"00",X"E0",X"EB",X"2A",X"12",X"E7",X"3A",X"01",X"E1",X"A7",X"28", + X"05",X"ED",X"52",X"11",X"00",X"01",X"19",X"22",X"12",X"E7",X"21",X"00",X"E7",X"CB",X"CE",X"3E", + X"1C",X"32",X"06",X"E7",X"3E",X"08",X"32",X"03",X"E7",X"3E",X"01",X"32",X"05",X"E7",X"78",X"32", + X"04",X"E7",X"F1",X"C9",X"ED",X"52",X"D8",X"3A",X"02",X"E7",X"FE",X"02",X"D0",X"21",X"41",X"E3", + X"34",X"3E",X"05",X"32",X"46",X"E3",X"3E",X"05",X"32",X"47",X"E3",X"3E",X"03",X"21",X"01",X"E7", + X"CB",X"B6",X"2B",X"CB",X"AE",X"CB",X"CE",X"32",X"00",X"E0",X"3E",X"00",X"CD",X"FE",X"0D",X"F1", + X"3E",X"03",X"32",X"06",X"E7",X"C9",X"DD",X"21",X"4C",X"E3",X"DD",X"CB",X"00",X"66",X"C4",X"21", + X"48",X"DD",X"21",X"40",X"E3",X"DD",X"4E",X"00",X"CB",X"61",X"C8",X"DD",X"7E",X"01",X"FE",X"01", + X"38",X"39",X"28",X"13",X"11",X"1B",X"00",X"CD",X"EA",X"1B",X"11",X"20",X"FF",X"19",X"38",X"41", + X"3E",X"26",X"32",X"06",X"E7",X"18",X"3A",X"DD",X"35",X"07",X"20",X"35",X"DD",X"36",X"07",X"0B", + X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE",X"07",X"38",X"27",X"DD",X"36",X"07",X"07",X"DD",X"34", + X"01",X"DD",X"36",X"06",X"01",X"DD",X"CB",X"0C",X"E6",X"18",X"16",X"DD",X"35",X"07",X"20",X"11", + X"DD",X"36",X"07",X"08",X"DD",X"7E",X"06",X"3C",X"FE",X"05",X"28",X"02",X"3E",X"04",X"DD",X"77", + X"06",X"CD",X"E2",X"1B",X"11",X"00",X"EE",X"19",X"D8",X"21",X"F0",X"73",X"C3",X"7D",X"1A",X"3A", + X"00",X"E0",X"FE",X"06",X"20",X"17",X"21",X"22",X"E0",X"35",X"C0",X"EB",X"2A",X"23",X"E0",X"7E", + X"FE",X"FF",X"28",X"34",X"23",X"12",X"7E",X"23",X"22",X"23",X"E0",X"18",X"27",X"3A",X"06",X"E9", + X"E6",X"04",X"21",X"00",X"E7",X"CB",X"46",X"20",X"1B",X"3A",X"06",X"E9",X"E6",X"07",X"4F",X"3A", + X"1A",X"E7",X"A7",X"79",X"20",X"0E",X"3A",X"08",X"E9",X"2F",X"47",X"2F",X"07",X"07",X"07",X"A0", + X"E6",X"38",X"47",X"B1",X"32",X"09",X"E9",X"C9",X"3E",X"0B",X"32",X"00",X"E0",X"C9",X"F3",X"31", + X"00",X"F0",X"AF",X"32",X"01",X"E0",X"32",X"20",X"E0",X"32",X"21",X"E0",X"32",X"80",X"E0",X"FB", + X"CD",X"00",X"57",X"CD",X"4A",X"06",X"21",X"6D",X"4B",X"CD",X"1C",X"11",X"21",X"01",X"4F",X"22", + X"0E",X"E7",X"3E",X"9C",X"32",X"05",X"E7",X"21",X"A0",X"30",X"22",X"12",X"E7",X"21",X"00",X"5C", + X"22",X"10",X"E7",X"22",X"44",X"E3",X"21",X"A0",X"34",X"22",X"42",X"E3",X"3E",X"10",X"32",X"40", + X"E3",X"3E",X"05",X"32",X"47",X"E3",X"DD",X"21",X"62",X"E2",X"01",X"50",X"07",X"21",X"00",X"0F", + X"06",X"07",X"DD",X"36",X"04",X"00",X"DD",X"36",X"05",X"5C",X"DD",X"36",X"07",X"07",X"DD",X"36", + X"0E",X"38",X"DD",X"70",X"0F",X"DD",X"71",X"00",X"DD",X"75",X"02",X"DD",X"74",X"03",X"78",X"FE", + X"07",X"28",X"08",X"FE",X"04",X"38",X"04",X"DD",X"36",X"06",X"0A",X"FE",X"05",X"30",X"05",X"21", + X"00",X"31",X"0E",X"10",X"11",X"10",X"00",X"DD",X"19",X"10",X"C7",X"3E",X"05",X"32",X"00",X"E0", + X"11",X"52",X"D1",X"0E",X"0B",X"21",X"86",X"4B",X"CD",X"34",X"11",X"3A",X"20",X"E0",X"FE",X"08", + X"20",X"F9",X"CD",X"1C",X"11",X"3A",X"20",X"E0",X"FE",X"0B",X"20",X"F9",X"CD",X"AE",X"49",X"21", + X"0E",X"4C",X"CD",X"34",X"11",X"3E",X"E1",X"CD",X"0F",X"57",X"CD",X"AE",X"49",X"21",X"71",X"4C", + X"CD",X"1C",X"11",X"CD",X"C0",X"49",X"3A",X"00",X"E0",X"FE",X"0B",X"20",X"F6",X"AF",X"21",X"00", + X"00",X"32",X"81",X"E0",X"22",X"82",X"E0",X"3C",X"32",X"84",X"E0",X"32",X"22",X"E0",X"21",X"25", + X"E0",X"7E",X"36",X"09",X"11",X"55",X"4A",X"A7",X"28",X"05",X"11",X"0A",X"4B",X"36",X"00",X"32", + X"80",X"E0",X"ED",X"53",X"23",X"E0",X"CD",X"57",X"11",X"3E",X"01",X"CD",X"49",X"04",X"F3",X"3E", + X"06",X"32",X"00",X"E0",X"21",X"00",X"00",X"22",X"81",X"E0",X"22",X"82",X"E0",X"22",X"10",X"E0", + X"22",X"12",X"E0",X"FB",X"CD",X"B8",X"0F",X"3A",X"00",X"E0",X"FE",X"0B",X"20",X"F6",X"3E",X"38", + X"CD",X"0F",X"57",X"CD",X"20",X"56",X"3E",X"E1",X"CD",X"0F",X"57",X"C3",X"7E",X"48",X"11",X"50", + X"D1",X"06",X"04",X"D5",X"CD",X"2A",X"57",X"E1",X"11",X"80",X"00",X"19",X"EB",X"10",X"F4",X"C9", + X"11",X"16",X"D3",X"01",X"0B",X"19",X"3A",X"80",X"E8",X"E6",X"30",X"CA",X"1F",X"57",X"2A",X"0A", + X"E9",X"7D",X"AC",X"20",X"14",X"13",X"CD",X"F7",X"49",X"CB",X"5D",X"C0",X"11",X"97",X"D3",X"7D", + X"87",X"27",X"CD",X"10",X"4A",X"3E",X"02",X"18",X"21",X"3E",X"41",X"CD",X"F4",X"49",X"6C",X"11", + X"96",X"D3",X"3E",X"42",X"CD",X"2C",X"4A",X"CB",X"5D",X"3E",X"01",X"20",X"01",X"7D",X"CD",X"10", + X"4A",X"CB",X"5D",X"3E",X"01",X"28",X"03",X"7D",X"E6",X"07",X"E5",X"21",X"39",X"4A",X"18",X"04", + X"E5",X"21",X"34",X"4A",X"F5",X"C5",X"48",X"CD",X"F7",X"56",X"C1",X"13",X"CD",X"1C",X"11",X"F1", + X"D5",X"FE",X"01",X"3E",X"53",X"C4",X"10",X"11",X"D1",X"13",X"E1",X"C9",X"CD",X"10",X"11",X"3E", + X"2D",X"C3",X"10",X"11",X"43",X"4F",X"49",X"4E",X"FF",X"50",X"4C",X"41",X"59",X"45",X"52",X"FF", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"FF",X"42",X"02",X"01",X"20",X"28",X"02",X"02",X"10",X"18",X"02",X"03", + X"10",X"18",X"02",X"02",X"10",X"24",X"02",X"02",X"20",X"38",X"02",X"10",X"04",X"02",X"20",X"1E", + X"02",X"10",X"08",X"02",X"20",X"2C",X"01",X"04",X"20",X"28",X"02",X"08",X"01",X"02",X"10",X"28", + X"01",X"10",X"08",X"18",X"20",X"08",X"01",X"40",X"02",X"08",X"08",X"08",X"20",X"48",X"02",X"03", + X"01",X"03",X"02",X"03",X"01",X"03",X"06",X"03",X"05",X"03",X"06",X"03",X"01",X"03",X"02",X"03", + X"01",X"03",X"01",X"03",X"02",X"03",X"01",X"03",X"06",X"03",X"05",X"03",X"06",X"03",X"01",X"03", + X"02",X"03",X"01",X"03",X"02",X"03",X"01",X"03",X"06",X"03",X"05",X"03",X"06",X"03",X"01",X"18", + X"02",X"02",X"08",X"48",X"02",X"02",X"10",X"18",X"00",X"02",X"10",X"18",X"00",X"0A",X"01",X"0A", + X"04",X"02",X"10",X"18",X"04",X"02",X"20",X"18",X"04",X"02",X"10",X"10",X"04",X"28",X"01",X"03", + X"20",X"20",X"01",X"03",X"20",X"18",X"01",X"03",X"20",X"08",X"00",X"28",X"02",X"08",X"04",X"03", + X"20",X"10",X"10",X"34",X"02",X"04",X"08",X"10",X"20",X"28",X"02",X"05",X"01",X"05",X"02",X"05", + X"01",X"05",X"06",X"05",X"05",X"05",X"06",X"80",X"00",X"FF",X"1C",X"01",X"04",X"00",X"01",X"10", + X"44",X"01",X"10",X"00",X"28",X"01",X"02",X"20",X"10",X"02",X"20",X"01",X"02",X"08",X"50",X"01", + X"02",X"08",X"36",X"01",X"0A",X"02",X"30",X"00",X"10",X"10",X"20",X"00",X"1B",X"02",X"02",X"08", + X"10",X"10",X"48",X"02",X"02",X"08",X"10",X"20",X"28",X"04",X"02",X"20",X"20",X"04",X"68",X"01", + X"0A",X"00",X"04",X"20",X"10",X"02",X"10",X"00",X"28",X"01",X"01",X"02",X"60",X"04",X"38",X"01", + X"02",X"08",X"10",X"10",X"30",X"00",X"50",X"01",X"20",X"02",X"02",X"08",X"10",X"20",X"20",X"00", + X"18",X"02",X"10",X"08",X"10",X"20",X"10",X"00",X"40",X"01",X"A0",X"04",X"FF",X"FE",X"1D",X"FD", + X"D8",X"D6",X"40",X"20",X"31",X"39",X"38",X"34",X"20",X"FE",X"DA",X"49",X"52",X"45",X"4D",X"20", + X"43",X"4F",X"52",X"50",X"2E",X"FF",X"41",X"20",X"4B",X"55",X"4E",X"47",X"2D",X"46",X"55",X"20", + X"4D",X"41",X"53",X"54",X"45",X"52",X"2C",X"FE",X"1A",X"54",X"48",X"4F",X"4D",X"41",X"53",X"FE", + X"0B",X"20",X"41",X"4E",X"44",X"20",X"FD",X"D2",X"D1",X"FE",X"1A",X"53",X"49",X"4C",X"56",X"49", + X"41",X"FE",X"0B",X"20",X"57",X"45",X"52",X"45",X"20",X"53",X"55",X"44",X"44",X"45",X"4E",X"4C", + X"59",X"20",X"41",X"54",X"54",X"41",X"43",X"4B",X"45",X"44",X"20",X"FD",X"52",X"D2",X"42",X"59", + X"20",X"53",X"45",X"56",X"45",X"52",X"41",X"4C",X"20",X"55",X"4E",X"4B",X"4E",X"4F",X"57",X"4E", + X"20",X"47",X"55",X"59",X"53",X"2E",X"FF",X"FD",X"D0",X"D2",X"28",X"FE",X"1A",X"53",X"49",X"4C", + X"56",X"49",X"41",X"FE",X"0B",X"20",X"57",X"41",X"53",X"20",X"4B",X"49",X"44",X"4E",X"41",X"50", + X"50",X"45",X"44",X"20",X"42",X"59",X"20",X"54",X"48",X"45",X"4D",X"2E",X"29",X"FF",X"FD",X"53", + X"D1",X"4C",X"41",X"54",X"45",X"52",X"20",X"FE",X"1A",X"54",X"48",X"4F",X"4D",X"41",X"53",X"FE", + X"0B",X"20",X"46",X"4F",X"55",X"4E",X"44",X"20",X"41",X"20",X"4C",X"45",X"54",X"54",X"45",X"52", + X"20",X"FD",X"D3",X"D1",X"46",X"52",X"4F",X"4D",X"20",X"FE",X"1A",X"58",X"FE",X"0B",X"2E",X"20", + X"FD",X"53",X"D2",X"48",X"45",X"20",X"49",X"53",X"20",X"41",X"4E",X"20",X"49",X"4E",X"48",X"41", + X"42",X"49",X"54",X"41",X"4E",X"54",X"20",X"4F",X"46",X"20",X"54",X"48",X"45",X"20",X"FD",X"D3", + X"D2",X"44",X"45",X"56",X"49",X"4C",X"27",X"53",X"20",X"54",X"45",X"4D",X"50",X"4C",X"45",X"2E", + X"FF",X"FE",X"DA",X"FD",X"DA",X"D0",X"80",X"81",X"82",X"83",X"84",X"85",X"86",X"87",X"88",X"89", + X"8A",X"FD",X"1A",X"D1",X"8B",X"8C",X"8D",X"8E",X"8F",X"90",X"91",X"92",X"93",X"94",X"95",X"FD", + X"57",X"D1",X"96",X"97",X"98",X"99",X"9A",X"9B",X"9C",X"9D",X"9E",X"9F",X"A0",X"A1",X"A2",X"A3", + X"A4",X"A5",X"A4",X"A6",X"FD",X"96",X"D1",X"A7",X"A8",X"A9",X"AA",X"AB",X"AC",X"AD",X"AE",X"AF", + X"B0",X"B1",X"B2",X"B3",X"B4",X"B5",X"B6",X"B7",X"B3",X"B8",X"B9",X"FD",X"D6",X"D1",X"BA",X"BB", + X"BC",X"BD",X"BE",X"BF",X"C0",X"C1",X"C2",X"C3",X"C4",X"C5",X"C6",X"C7",X"C8",X"C9",X"CA",X"CB", + X"CC",X"CD",X"FD",X"15",X"D2",X"CE",X"CF",X"D0",X"D1",X"D2",X"D3",X"D4",X"D5",X"D6",X"D7",X"D8", + X"D9",X"06",X"DA",X"DB",X"DC",X"DD",X"DE",X"DF",X"E0",X"E1",X"FD",X"55",X"D2",X"E2",X"E3",X"E4", + X"E5",X"E6",X"E7",X"E8",X"E9",X"EA",X"EB",X"EC",X"ED",X"06",X"EE",X"EF",X"F0",X"F1",X"06",X"F2", + X"F3",X"F4",X"F5",X"FD",X"95",X"D2",X"F6",X"F7",X"F8",X"F9",X"FA",X"FB",X"70",X"71",X"72",X"73", + X"74",X"75",X"06",X"76",X"77",X"78",X"79",X"7A",X"7B",X"7C",X"7D",X"7E",X"FF",X"3E",X"0B",X"32", + X"00",X"E0",X"18",X"30",X"21",X"03",X"E7",X"7E",X"A7",X"28",X"01",X"35",X"21",X"05",X"E7",X"35", + X"20",X"4D",X"ED",X"5B",X"0E",X"E7",X"1A",X"A7",X"FA",X"1D",X"4D",X"CB",X"77",X"28",X"04",X"21", + X"20",X"E0",X"34",X"CB",X"6F",X"28",X"0D",X"F5",X"21",X"B7",X"65",X"7E",X"23",X"22",X"0C",X"E7", + X"32",X"03",X"E7",X"F1",X"6F",X"CB",X"65",X"28",X"05",X"3E",X"02",X"32",X"03",X"E7",X"CB",X"5D", + X"28",X"08",X"3A",X"01",X"E7",X"EE",X"40",X"32",X"01",X"E7",X"7D",X"E6",X"03",X"32",X"21",X"E0", + X"13",X"1A",X"32",X"05",X"E7",X"13",X"1A",X"32",X"06",X"E7",X"13",X"ED",X"53",X"0E",X"E7",X"3A", + X"21",X"E0",X"21",X"BC",X"4D",X"CD",X"26",X"1F",X"3A",X"20",X"E0",X"DD",X"21",X"40",X"E3",X"DD", + X"4E",X"00",X"FE",X"0A",X"28",X"0A",X"30",X"11",X"A7",X"20",X"0B",X"CD",X"D4",X"47",X"18",X"09", + X"11",X"36",X"00",X"CD",X"7A",X"1C",X"CD",X"21",X"48",X"3A",X"20",X"E0",X"DD",X"21",X"62",X"E2", + X"DD",X"4E",X"00",X"21",X"C2",X"4D",X"CD",X"26",X"1F",X"C3",X"72",X"2D",X"FA",X"4D",X"12",X"4E", + X"DA",X"4D",X"24",X"4E",X"25",X"4E",X"3A",X"4E",X"71",X"4E",X"AF",X"4E",X"A8",X"4E",X"A1",X"4E", + X"9A",X"4E",X"93",X"4E",X"8C",X"4E",X"7F",X"4E",X"24",X"4E",X"2A",X"0C",X"E7",X"5E",X"23",X"56", + X"E5",X"2A",X"10",X"E7",X"19",X"22",X"10",X"E7",X"E1",X"3A",X"03",X"E7",X"A7",X"20",X"23",X"23", + X"7E",X"23",X"22",X"0C",X"E7",X"32",X"03",X"E7",X"18",X"18",X"CD",X"1F",X"43",X"2A",X"12",X"E7", + X"11",X"E5",X"FF",X"3A",X"01",X"E7",X"E6",X"40",X"20",X"03",X"19",X"18",X"02",X"ED",X"52",X"22", + X"12",X"E7",X"2A",X"12",X"E7",X"AF",X"29",X"17",X"29",X"17",X"29",X"17",X"6C",X"67",X"CD",X"D6", + X"40",X"CD",X"E5",X"40",X"C9",X"CD",X"E7",X"1B",X"2A",X"64",X"E2",X"11",X"00",X"E7",X"19",X"30", + X"3A",X"21",X"20",X"E0",X"34",X"21",X"E5",X"4E",X"18",X"09",X"21",X"69",X"E2",X"35",X"20",X"28", + X"2A",X"6E",X"E2",X"7E",X"FE",X"FF",X"28",X"2E",X"32",X"68",X"E2",X"23",X"7E",X"32",X"69",X"E2", + X"23",X"7E",X"A7",X"28",X"0F",X"E5",X"21",X"2B",X"E3",X"36",X"01",X"23",X"77",X"23",X"36",X"40", + X"23",X"36",X"1A",X"E1",X"23",X"22",X"6E",X"E2",X"CD",X"E2",X"1B",X"CB",X"61",X"C2",X"72",X"1A", + X"C9",X"CD",X"DF",X"4E",X"18",X"F5",X"21",X"20",X"E0",X"34",X"CD",X"DF",X"17",X"18",X"E9",X"21", + X"A2",X"E2",X"11",X"10",X"00",X"06",X"03",X"CB",X"F6",X"19",X"10",X"FB",X"DD",X"21",X"C2",X"E2", + X"CD",X"D7",X"4E",X"DD",X"21",X"B2",X"E2",X"CD",X"D7",X"4E",X"DD",X"21",X"A2",X"E2",X"CD",X"D7", + X"4E",X"DD",X"21",X"82",X"E2",X"CD",X"B3",X"4E",X"DD",X"21",X"92",X"E2",X"CD",X"B3",X"4E",X"DD", + X"21",X"72",X"E2",X"DD",X"4E",X"00",X"21",X"D1",X"4E",X"E5",X"DD",X"7E",X"01",X"FE",X"01",X"28", + X"1E",X"CD",X"A8",X"15",X"DD",X"35",X"0E",X"C0",X"DD",X"7E",X"0F",X"DD",X"77",X"06",X"C3",X"DF", + X"17",X"CB",X"61",X"C8",X"C3",X"2F",X"16",X"DD",X"4E",X"00",X"CD",X"E7",X"1B",X"18",X"F2",X"CB", + X"61",X"C2",X"AA",X"1B",X"C9",X"0B",X"0B",X"00",X"0C",X"38",X"52",X"00",X"0B",X"00",X"09",X"0B", + X"00",X"0A",X"38",X"50",X"00",X"2B",X"00",X"06",X"0A",X"00",X"00",X"18",X"00",X"06",X"01",X"00", + X"FF",X"41",X"16",X"00",X"01",X"32",X"04",X"01",X"1C",X"05",X"01",X"2D",X"04",X"22",X"04",X"10", + X"02",X"06",X"12",X"02",X"10",X"13",X"02",X"06",X"14",X"02",X"04",X"10",X"10",X"21",X"00",X"01", + X"0B",X"04",X"22",X"04",X"10",X"02",X"06",X"12",X"02",X"10",X"18",X"02",X"06",X"14",X"02",X"04", + X"10",X"01",X"08",X"06",X"01",X"08",X"07",X"01",X"08",X"06",X"01",X"13",X"04",X"41",X"21",X"04", + X"41",X"0E",X"04",X"01",X"08",X"08",X"01",X"08",X"09",X"01",X"02",X"08",X"41",X"05",X"08",X"41", + X"08",X"05",X"41",X"08",X"0B",X"41",X"08",X"0C",X"01",X"08",X"0B",X"01",X"08",X"05",X"01",X"08", + X"0D",X"01",X"08",X"0E",X"01",X"09",X"0D",X"41",X"08",X"05",X"01",X"1C",X"04",X"09",X"10",X"00", + X"10",X"27",X"00",X"41",X"E1",X"03",X"01",X"A9",X"03",X"01",X"16",X"04",X"01",X"08",X"06",X"01", + X"08",X"07",X"01",X"08",X"06",X"01",X"08",X"04",X"01",X"08",X"08",X"01",X"08",X"09",X"01",X"08", + X"08",X"09",X"08",X"04",X"01",X"08",X"06",X"01",X"08",X"07",X"01",X"08",X"06",X"01",X"08",X"04", + X"01",X"08",X"05",X"01",X"08",X"0B",X"01",X"08",X"0C",X"01",X"08",X"0B",X"01",X"08",X"05",X"01", + X"08",X"04",X"01",X"08",X"08",X"01",X"08",X"09",X"01",X"08",X"08",X"09",X"08",X"05",X"01",X"08", + X"0B",X"01",X"08",X"0C",X"01",X"08",X"0B",X"01",X"08",X"05",X"22",X"04",X"10",X"02",X"06",X"12", + X"02",X"10",X"18",X"02",X"06",X"14",X"02",X"04",X"10",X"09",X"08",X"04",X"01",X"08",X"06",X"01", + X"08",X"07",X"01",X"08",X"06",X"01",X"A9",X"04",X"FF",X"3E",X"23",X"CD",X"FE",X"0D",X"AF",X"32", + X"02",X"E7",X"32",X"20",X"E0",X"32",X"83",X"E8",X"3E",X"08",X"32",X"00",X"E0",X"CD",X"95",X"50", + X"0E",X"D9",X"21",X"32",X"51",X"CD",X"1C",X"11",X"21",X"47",X"51",X"CD",X"1C",X"11",X"21",X"57", + X"51",X"CD",X"1C",X"11",X"21",X"62",X"51",X"CD",X"1C",X"11",X"21",X"6D",X"51",X"CD",X"1C",X"11", + X"21",X"A7",X"50",X"CD",X"79",X"50",X"3E",X"F8",X"CD",X"38",X"50",X"CD",X"91",X"50",X"21",X"FF", + X"50",X"0E",X"D9",X"CD",X"79",X"50",X"3E",X"F8",X"E5",X"C5",X"D5",X"32",X"82",X"E8",X"0E",X"D9", + X"21",X"83",X"E8",X"7E",X"A7",X"20",X"1A",X"36",X"0B",X"21",X"20",X"E0",X"35",X"35",X"F2",X"53", + X"50",X"36",X"08",X"5E",X"16",X"00",X"21",X"6B",X"50",X"19",X"7E",X"23",X"66",X"6F",X"CD",X"1C", + X"11",X"3A",X"82",X"E8",X"A7",X"20",X"D9",X"D1",X"C1",X"E1",X"C9",X"5D",X"51",X"68",X"51",X"4D", + X"51",X"2D",X"51",X"3D",X"51",X"5E",X"23",X"56",X"23",X"7E",X"23",X"3C",X"C8",X"3C",X"3C",X"28", + X"F4",X"D6",X"03",X"CD",X"10",X"11",X"FE",X"20",X"20",X"EF",X"3E",X"0B",X"CD",X"38",X"50",X"18", + X"E8",X"06",X"08",X"18",X"02",X"06",X"19",X"0E",X"0B",X"11",X"9F",X"D1",X"CD",X"1A",X"57",X"21", + X"1F",X"00",X"19",X"EB",X"10",X"F6",X"C9",X"FD",X"63",X"D2",X"41",X"20",X"4B",X"55",X"4E",X"47", + X"2D",X"46",X"55",X"20",X"4D",X"41",X"53",X"54",X"45",X"52",X"2C",X"54",X"48",X"4F",X"4D",X"41", + X"53",X"20",X"41",X"4E",X"44",X"20",X"FD",X"E3",X"D2",X"53",X"49",X"4C",X"56",X"49",X"41",X"20", + X"45",X"4E",X"4A",X"4F",X"59",X"45",X"44",X"20",X"48",X"41",X"50",X"50",X"49",X"4E",X"45",X"53", + X"53",X"20",X"FD",X"63",X"D3",X"41",X"47",X"41",X"49",X"4E",X"20",X"46",X"4F",X"52",X"20",X"41", + X"20",X"4C",X"49",X"54",X"54",X"4C",X"45",X"20",X"57",X"48",X"49",X"4C",X"45",X"2E",X"FF",X"FD", + X"A6",X"D2",X"42",X"55",X"54",X"20",X"54",X"48",X"45",X"49",X"52",X"20",X"48",X"41",X"50",X"50", + X"59",X"20",X"44",X"41",X"59",X"53",X"20",X"FD",X"28",X"D3",X"44",X"49",X"44",X"20",X"4E",X"4F", + X"54",X"20",X"4C",X"41",X"53",X"54",X"20",X"4C",X"4F",X"4E",X"47",X"2E",X"FF",X"FD",X"2E",X"D4", + X"00",X"00",X"FD",X"AC",X"D4",X"60",X"61",X"FD",X"EC",X"D4",X"62",X"63",X"FF",X"FD",X"AC",X"D4", + X"00",X"00",X"FD",X"EC",X"D4",X"00",X"00",X"FD",X"6D",X"D4",X"64",X"65",X"FF",X"FD",X"B0",X"D4", + X"00",X"00",X"FD",X"F0",X"D4",X"00",X"00",X"FD",X"2E",X"D4",X"66",X"67",X"FF",X"FD",X"6D",X"D4", + X"00",X"00",X"FD",X"6F",X"D4",X"68",X"69",X"FF",X"FD",X"6F",X"D4",X"00",X"00",X"FD",X"B0",X"D4", + X"6A",X"6B",X"FD",X"F0",X"D4",X"6C",X"6D",X"FF",X"21",X"05",X"E0",X"CB",X"FE",X"CD",X"57",X"11", + X"CD",X"03",X"57",X"11",X"5A",X"D2",X"0E",X"14",X"3A",X"80",X"E8",X"E6",X"18",X"28",X"08",X"21", + X"D8",X"51",X"CD",X"1C",X"11",X"18",X"03",X"CD",X"25",X"57",X"11",X"19",X"D3",X"3A",X"13",X"E9", + X"F5",X"FE",X"01",X"21",X"E5",X"51",X"28",X"03",X"21",X"F3",X"51",X"CD",X"1C",X"11",X"21",X"02", + X"52",X"CD",X"1C",X"11",X"F1",X"CD",X"FF",X"10",X"3A",X"04",X"E9",X"E6",X"03",X"28",X"C4",X"E6", + X"02",X"32",X"02",X"E0",X"06",X"01",X"28",X"01",X"04",X"21",X"13",X"E9",X"7E",X"90",X"38",X"B3", + X"27",X"77",X"21",X"05",X"E0",X"CB",X"BE",X"C9",X"50",X"55",X"53",X"48",X"20",X"20",X"42",X"55", + X"54",X"54",X"4F",X"4E",X"FF",X"4F",X"4E",X"4C",X"59",X"20",X"31",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"FF",X"31",X"20",X"4F",X"52",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"53",X"FF",X"FD",X"E1",X"D5",X"43",X"52",X"45",X"44",X"49",X"54",X"20",X"FF",X"CD",X"57",X"11", + X"CD",X"03",X"57",X"3E",X"20",X"CD",X"FE",X"0D",X"0E",X"1B",X"11",X"53",X"D1",X"06",X"17",X"CD", + X"25",X"57",X"21",X"26",X"00",X"19",X"EB",X"10",X"F6",X"21",X"32",X"52",X"CD",X"39",X"57",X"C3", + X"1C",X"11",X"FD",X"55",X"D1",X"CC",X"FD",X"60",X"D1",X"CC",X"FD",X"67",X"D1",X"CC",X"FD",X"92", + X"D3",X"E3",X"FD",X"D1",X"D3",X"D9",X"D8",X"00",X"D0",X"D1",X"CD",X"FD",X"10",X"D4",X"E0",X"DB", + X"DA",X"00",X"D2",X"D3",X"CF",X"FD",X"50",X"D4",X"E2",X"07",X"DC",X"DD",X"D4",X"D5",X"FD",X"90", + X"D4",X"E4",X"07",X"DE",X"DF",X"D6",X"D7",X"FD",X"D0",X"D4",X"E6",X"07",X"07",X"07",X"E5",X"FD", + X"10",X"D5",X"E1",X"07",X"E8",X"E9",X"E7",X"FD",X"50",X"D5",X"07",X"07",X"EA",X"EB",X"FD",X"90", + X"D5",X"07",X"07",X"EC",X"ED",X"FD",X"D0",X"D5",X"07",X"EF",X"EE",X"FD",X"10",X"D6",X"07",X"F1", + X"FD",X"50",X"D6",X"F0",X"F3",X"FD",X"90",X"D6",X"F2",X"FD",X"D0",X"D6",X"F4",X"FD",X"D6",X"D6", + X"CE",X"FD",X"E4",X"D6",X"CE",X"FE",X"FD",X"AD",X"D3",X"E3",X"FD",X"E9",X"D3",X"CD",X"D1",X"D0", + X"00",X"D8",X"D9",X"FD",X"29",X"D4",X"CF",X"D3",X"D2",X"00",X"DA",X"DB",X"E0",X"FD",X"6A",X"D4", + X"D5",X"D4",X"DD",X"DC",X"07",X"E2",X"FD",X"AA",X"D4",X"D7",X"D6",X"DF",X"DE",X"07",X"E4",X"FD", + X"EB",X"D4",X"E5",X"07",X"07",X"07",X"E6",X"FD",X"2B",X"D5",X"E7",X"E9",X"E8",X"07",X"E1",X"FD", + X"6C",X"D5",X"EB",X"EA",X"07",X"07",X"FD",X"AC",X"D5",X"ED",X"EC",X"07",X"07",X"FD",X"ED",X"D5", + X"EE",X"EF",X"07",X"FD",X"2E",X"D6",X"F1",X"07",X"FD",X"6E",X"D6",X"F3",X"F0",X"FD",X"AF",X"D6", + X"F2",X"FD",X"EF",X"D6",X"F4",X"FF",X"FE",X"1B",X"FD",X"17",X"D2",X"59",X"4F",X"55",X"52",X"20", + X"4C",X"4F",X"56",X"45",X"20",X"FE",X"1F",X"53",X"49",X"4C",X"56",X"49",X"41",X"FE",X"1B",X"FD", + X"97",X"D2",X"49",X"53",X"20",X"49",X"4E",X"20",X"43",X"55",X"53",X"54",X"4F",X"44",X"59",X"20", + X"4E",X"4F",X"57",X"2E",X"FD",X"16",X"D3",X"49",X"46",X"20",X"59",X"4F",X"55",X"20",X"57",X"41", + X"4E",X"54",X"20",X"54",X"4F",X"20",X"53",X"41",X"56",X"45",X"FD",X"97",X"D3",X"59",X"4F",X"55", + X"52",X"20",X"44",X"45",X"41",X"52",X"20",X"FE",X"1F",X"53",X"49",X"4C",X"56",X"49",X"41",X"27", + X"53",X"FD",X"19",X"D4",X"FE",X"1F",X"4C",X"49",X"46",X"45",X"FE",X"1B",X"2C",X"20",X"43",X"4F", + X"4D",X"45",X"20",X"54",X"4F",X"FD",X"97",X"D4",X"54",X"48",X"45",X"20",X"44",X"45",X"56",X"49", + X"4C",X"27",X"53",X"20",X"54",X"45",X"4D",X"50",X"4C",X"45",X"FD",X"17",X"D5",X"41",X"54",X"20", + X"4F",X"4E",X"43",X"45",X"2E",X"FD",X"96",X"D5",X"35",X"20",X"53",X"4F",X"4E",X"53",X"20",X"4F", + X"46",X"20",X"54",X"48",X"45",X"20",X"44",X"45",X"56",X"49",X"4C",X"FD",X"17",X"D6",X"57",X"49", + X"4C",X"4C",X"20",X"45",X"4E",X"54",X"45",X"52",X"54",X"41",X"49",X"4E",X"20",X"59",X"4F",X"55", + X"2E",X"FF",X"CD",X"00",X"57",X"3E",X"05",X"CD",X"FE",X"0D",X"3A",X"80",X"E0",X"F5",X"3E",X"04", + X"32",X"80",X"E0",X"CD",X"4A",X"06",X"21",X"00",X"54",X"22",X"10",X"E7",X"22",X"44",X"E3",X"21", + X"00",X"27",X"22",X"12",X"E7",X"21",X"00",X"1A",X"22",X"42",X"E3",X"F1",X"32",X"80",X"E0",X"21", + X"47",X"54",X"CD",X"1C",X"11",X"3E",X"07",X"32",X"00",X"E0",X"3E",X"70",X"CD",X"16",X"54",X"21", + X"AB",X"54",X"CD",X"1C",X"11",X"3E",X"05",X"CD",X"FE",X"0D",X"3E",X"70",X"CD",X"16",X"54",X"3E", + X"05",X"CD",X"FE",X"0D",X"3E",X"C0",X"32",X"82",X"E8",X"3A",X"80",X"E8",X"11",X"95",X"D2",X"0E", + X"D9",X"21",X"85",X"54",X"E6",X"18",X"20",X"03",X"21",X"98",X"54",X"CD",X"1C",X"11",X"21",X"82", + X"E8",X"7E",X"A7",X"20",X"E4",X"C9",X"21",X"03",X"E7",X"7E",X"A7",X"28",X"01",X"35",X"CD",X"1F", + X"43",X"CD",X"12",X"4E",X"C3",X"B6",X"47",X"FE",X"96",X"FD",X"18",X"D5",X"B7",X"FD",X"57",X"D5", + X"AA",X"AB",X"FD",X"97",X"D5",X"AC",X"AD",X"FD",X"D7",X"D5",X"F6",X"F5",X"FC",X"FD",X"17",X"D6", + X"F8",X"F9",X"F7",X"FD",X"57",X"D6",X"FA",X"FB",X"FE",X"D6",X"18",X"FD",X"56",X"D1",X"FE",X"D7", + X"4C",X"45",X"54",X"27",X"53",X"20",X"54",X"52",X"59",X"20",X"4E",X"45",X"58",X"54",X"20",X"46", + X"4C",X"4F",X"4F",X"52",X"FF",X"48",X"45",X"4C",X"50",X"20",X"4D",X"45",X"2C",X"FD",X"15",X"D3", + X"54",X"48",X"4F",X"4D",X"41",X"53",X"21",X"FF",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"FD",X"15",X"D3",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"FF",X"FE",X"DA",X"FD",X"A3",X"D2", + X"49",X"27",X"4D",X"20",X"43",X"4F",X"4D",X"49",X"4E",X"47",X"FD",X"23",X"D3",X"52",X"49",X"47", + X"48",X"54",X"20",X"41",X"57",X"41",X"59",X"2C",X"FD",X"A5",X"D3",X"53",X"49",X"4C",X"56",X"49", + X"41",X"21",X"FF",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"47", + X"41",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"3E",X"21",X"CD",X"FE",X"0D",X"11",X"40",X"D3",X"0E",X"DB",X"DD",X"21", + X"D3",X"54",X"CD",X"C3",X"56",X"3E",X"E1",X"CD",X"0F",X"57",X"3E",X"38",X"CD",X"0F",X"57",X"AF", + X"32",X"00",X"E7",X"32",X"1A",X"E7",X"11",X"83",X"E0",X"21",X"00",X"EA",X"06",X"03",X"1A",X"77", + X"23",X"1B",X"10",X"FA",X"06",X"03",X"36",X"20",X"23",X"10",X"FB",X"0E",X"14",X"11",X"00",X"EA", + X"06",X"03",X"1A",X"BE",X"38",X"1C",X"20",X"06",X"13",X"23",X"10",X"F6",X"18",X"14",X"78",X"C6", + X"03",X"47",X"7E",X"F5",X"1A",X"77",X"F1",X"12",X"23",X"13",X"10",X"F6",X"0D",X"20",X"E1",X"13", + X"13",X"13",X"79",X"FE",X"14",X"C8",X"04",X"05",X"28",X"03",X"13",X"10",X"FD",X"D5",X"F5",X"3E", + X"24",X"CD",X"FE",X"0D",X"CD",X"20",X"56",X"21",X"8A",X"56",X"CD",X"1C",X"11",X"F1",X"11",X"11", + X"DA",X"FE",X"0A",X"38",X"05",X"D6",X"0A",X"11",X"21",X"DA",X"2E",X"00",X"CB",X"3F",X"CB",X"1D", + X"67",X"19",X"D1",X"06",X"0D",X"36",X"00",X"23",X"10",X"FB",X"01",X"FD",X"F7",X"09",X"06",X"03", + X"3E",X"41",X"77",X"12",X"3E",X"20",X"32",X"26",X"E0",X"D5",X"11",X"60",X"D1",X"0E",X"00",X"CD", + X"FF",X"10",X"D1",X"3E",X"38",X"32",X"81",X"E8",X"CD",X"0D",X"57",X"3A",X"04",X"E9",X"E6",X"03", + X"20",X"69",X"3A",X"06",X"E9",X"E6",X"03",X"28",X"25",X"3A",X"83",X"E8",X"A7",X"20",X"23",X"3E", + X"0B",X"32",X"83",X"E8",X"3A",X"06",X"E9",X"CB",X"47",X"7E",X"20",X"09",X"3D",X"FE",X"41",X"30", + X"24",X"3E",X"5C",X"18",X"20",X"3C",X"FE",X"5D",X"38",X"1B",X"3E",X"41",X"18",X"17",X"AF",X"32", + X"83",X"E8",X"3A",X"09",X"E9",X"E6",X"30",X"28",X"0E",X"7E",X"FE",X"5C",X"28",X"2D",X"13",X"23", + X"05",X"28",X"1A",X"3E",X"41",X"77",X"12",X"3A",X"81",X"E8",X"A7",X"20",X"AB",X"3A",X"26",X"E0", + X"D6",X"01",X"27",X"20",X"91",X"11",X"60",X"D1",X"0E",X"00",X"CD",X"FF",X"10",X"CD",X"2C",X"56", + X"3E",X"1C",X"CD",X"0F",X"57",X"3E",X"00",X"CD",X"FE",X"0D",X"C9",X"3E",X"20",X"12",X"18",X"ED", + X"CD",X"57",X"11",X"CD",X"03",X"57",X"21",X"75",X"56",X"CD",X"1C",X"11",X"21",X"06",X"EA",X"11", + X"A1",X"D6",X"3E",X"20",X"F5",X"0E",X"D8",X"CD",X"F7",X"56",X"0E",X"15",X"13",X"7E",X"23",X"A7", + X"D5",X"C4",X"08",X"11",X"D1",X"13",X"06",X"02",X"7E",X"23",X"CD",X"FF",X"10",X"10",X"F9",X"3E", + X"30",X"CD",X"10",X"11",X"0E",X"00",X"13",X"06",X"03",X"7E",X"23",X"CD",X"10",X"11",X"10",X"F9", + X"F1",X"D6",X"01",X"27",X"C8",X"E5",X"21",X"73",X"FF",X"19",X"EB",X"E1",X"FE",X"10",X"20",X"C4", + X"11",X"91",X"D6",X"18",X"BF",X"FE",X"DB",X"FD",X"D8",X"D0",X"42",X"45",X"53",X"54",X"20",X"32", + X"30",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"FF",X"FD",X"5A",X"D1",X"FE",X"14",X"54", + X"49",X"4D",X"45",X"FF",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"54",X"49",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"0E",X"D8",X"DD",X"21",X"94",X"56",X"CD",X"C3",X"56",X"3E",X"70", + X"C3",X"0F",X"57",X"2A",X"02",X"E9",X"11",X"04",X"00",X"19",X"29",X"29",X"29",X"29",X"29",X"7C", + X"C6",X"1A",X"11",X"40",X"D3",X"6F",X"26",X"03",X"E5",X"06",X"0B",X"D5",X"7D",X"2C",X"E6",X"3F", + X"B3",X"5F",X"DD",X"7E",X"00",X"DD",X"23",X"CD",X"10",X"11",X"D1",X"10",X"EE",X"21",X"40",X"00", + X"19",X"EB",X"E1",X"25",X"20",X"E2",X"C9",X"FE",X"10",X"D2",X"FF",X"10",X"13",X"C3",X"08",X"11", + X"CD",X"53",X"11",X"AF",X"32",X"00",X"E0",X"21",X"00",X"00",X"22",X"02",X"E9",X"3E",X"01",X"E5", + X"21",X"82",X"E8",X"77",X"7E",X"A7",X"20",X"FC",X"E1",X"C9",X"C5",X"06",X"21",X"18",X"0E",X"CD", + X"25",X"57",X"11",X"96",X"D3",X"C5",X"06",X"1A",X"18",X"03",X"C5",X"06",X"20",X"AF",X"CD",X"10", + X"11",X"10",X"FB",X"C1",X"C9",X"5E",X"23",X"56",X"23",X"7E",X"23",X"3C",X"C8",X"3C",X"20",X"04", + X"CB",X"E9",X"18",X"F5",X"3C",X"28",X"EE",X"D6",X"03",X"CB",X"B9",X"FE",X"08",X"38",X"02",X"CB", + X"F9",X"CD",X"10",X"11",X"18",X"E3",X"2A",X"17",X"E8",X"7C",X"E5",X"CD",X"65",X"57",X"E1",X"24", + X"7C",X"BD",X"20",X"F6",X"C9",X"FE",X"E0",X"D0",X"32",X"02",X"E8",X"C6",X"20",X"E6",X"3F",X"21", + X"80",X"D1",X"B5",X"6F",X"3A",X"02",X"E8",X"CD",X"00",X"58",X"3A",X"80",X"E0",X"E6",X"01",X"20", + X"05",X"CD",X"5F",X"58",X"18",X"03",X"CD",X"35",X"58",X"CD",X"03",X"59",X"20",X"05",X"CD",X"D3", + X"58",X"18",X"03",X"CD",X"F1",X"58",X"CD",X"D4",X"57",X"CD",X"03",X"59",X"FE",X"03",X"C0",X"3A", + X"02",X"E8",X"01",X"08",X"00",X"21",X"30",X"5A",X"ED",X"B9",X"C0",X"CB",X"01",X"CB",X"01",X"3A", + X"80",X"E0",X"FE",X"10",X"21",X"31",X"5A",X"38",X"03",X"21",X"51",X"5A",X"09",X"5E",X"23",X"56", + X"23",X"EB",X"0E",X"11",X"1A",X"13",X"77",X"CB",X"DC",X"71",X"1A",X"11",X"40",X"F8",X"19",X"77", + X"CB",X"DC",X"71",X"C9",X"3A",X"80",X"E0",X"E6",X"01",X"21",X"7C",X"5A",X"20",X"03",X"21",X"88", + X"5A",X"3A",X"02",X"E8",X"01",X"0C",X"00",X"ED",X"B9",X"C0",X"21",X"89",X"5A",X"09",X"09",X"3A", + X"02",X"E8",X"EB",X"C6",X"20",X"E6",X"3F",X"21",X"80",X"D3",X"B5",X"6F",X"0E",X"8B",X"18",X"C4", + X"11",X"E7",X"61",X"FE",X"DA",X"D2",X"18",X"59",X"D6",X"D5",X"38",X"0C",X"E5",X"21",X"DB",X"59", + X"5F",X"16",X"00",X"19",X"7E",X"E1",X"18",X"04",X"E6",X"01",X"C6",X"52",X"0E",X"5C",X"CD",X"09", + X"59",X"3A",X"02",X"E8",X"E6",X"07",X"E5",X"21",X"E1",X"59",X"4F",X"09",X"7E",X"E1",X"77",X"CB", + X"DC",X"36",X"5E",X"19",X"C9",X"3A",X"02",X"E8",X"FE",X"DD",X"D0",X"FE",X"0D",X"38",X"0A",X"FE", + X"CF",X"38",X"2A",X"11",X"83",X"5F",X"C3",X"C5",X"58",X"47",X"3A",X"15",X"E9",X"FE",X"01",X"78", + X"11",X"48",X"5D",X"28",X"70",X"11",X"18",X"5E",X"30",X"6B",X"11",X"8E",X"5C",X"18",X"66",X"3A", + X"02",X"E8",X"FE",X"DD",X"D0",X"FE",X"13",X"38",X"36",X"FE",X"D3",X"30",X"19",X"E6",X"1F",X"F5", + X"E5",X"87",X"4F",X"21",X"E9",X"59",X"09",X"7E",X"23",X"4E",X"E1",X"77",X"CB",X"DC",X"71",X"19", + X"F1",X"11",X"6A",X"5B",X"18",X"3F",X"47",X"11",X"CB",X"61",X"CD",X"03",X"59",X"28",X"0D",X"3A", + X"15",X"E9",X"FE",X"01",X"11",X"76",X"61",X"30",X"03",X"11",X"F5",X"60",X"78",X"18",X"26",X"5F", + X"CD",X"03",X"59",X"FE",X"04",X"7B",X"11",X"B3",X"60",X"28",X"1A",X"11",X"A9",X"5E",X"CD",X"18", + X"59",X"CD",X"03",X"59",X"3A",X"02",X"E8",X"20",X"05",X"FE",X"03",X"30",X"0B",X"C9",X"FE",X"02", + X"30",X"06",X"11",X"54",X"65",X"CD",X"18",X"59",X"36",X"05",X"CB",X"DC",X"36",X"01",X"11",X"40", + X"F8",X"19",X"C9",X"0E",X"4F",X"3A",X"02",X"E8",X"FE",X"C0",X"30",X"10",X"FE",X"20",X"38",X"07", + X"E6",X"1F",X"11",X"0C",X"65",X"18",X"31",X"11",X"02",X"64",X"18",X"2C",X"11",X"F8",X"62",X"18", + X"27",X"3A",X"02",X"E8",X"11",X"A7",X"63",X"FE",X"DC",X"30",X"1D",X"E6",X"01",X"C6",X"24",X"0E", + X"42",X"18",X"06",X"3A",X"80",X"E0",X"E6",X"07",X"C9",X"06",X"03",X"11",X"40",X"F8",X"77",X"CB", + X"DC",X"71",X"19",X"C6",X"02",X"10",X"F7",X"C9",X"EB",X"C5",X"06",X"00",X"4F",X"09",X"09",X"C1", + X"7E",X"23",X"66",X"6F",X"EB",X"06",X"01",X"1A",X"13",X"3C",X"28",X"13",X"3C",X"28",X"17",X"C6", + X"FE",X"77",X"CB",X"DC",X"71",X"3E",X"40",X"85",X"6F",X"3E",X"F8",X"8C",X"67",X"18",X"E8",X"05", + X"C8",X"D1",X"13",X"13",X"18",X"E1",X"1A",X"13",X"FE",X"FC",X"38",X"0C",X"28",X"02",X"D5",X"04", + X"EB",X"7E",X"23",X"66",X"6F",X"EB",X"18",X"CF",X"4F",X"18",X"CC",X"FE",X"15",X"FD",X"D8",X"D2", + X"53",X"45",X"4C",X"45",X"43",X"54",X"20",X"47",X"41",X"4D",X"45",X"20",X"46",X"4C",X"4F",X"4F", + X"52",X"FD",X"9A",X"D3",X"48",X"4F",X"55",X"53",X"45",X"20",X"4E",X"55",X"4D",X"42",X"45",X"52", + X"2D",X"FD",X"1A",X"D4",X"46",X"4C",X"4F",X"4F",X"52",X"20",X"4E",X"55",X"4D",X"42",X"45",X"52", + X"2D",X"FD",X"98",X"D4",X"50",X"55",X"4E",X"43",X"48",X"2D",X"55",X"50",X"20",X"4B",X"49",X"43", + X"4B",X"2D",X"44",X"4F",X"57",X"4E",X"FF",X"FE",X"15",X"FD",X"11",X"D0",X"31",X"50",X"2D",X"FD", + X"26",X"D0",X"32",X"50",X"2D",X"FE",X"00",X"FD",X"1B",X"D0",X"54",X"4F",X"50",X"2D",X"FE",X"14", + X"FD",X"AA",X"D0",X"54",X"49",X"4D",X"45",X"FE",X"94",X"FD",X"91",X"D0",X"98",X"99",X"9A",X"9B", + X"9C",X"FE",X"95",X"FD",X"11",X"D1",X"9D",X"9E",X"9F",X"A0",X"FF",X"58",X"59",X"60",X"61",X"68", + X"69",X"67",X"6E",X"5E",X"5E",X"5E",X"5E",X"5F",X"66",X"F1",X"08",X"06",X"01",X"06",X"01",X"06", + X"01",X"06",X"01",X"14",X"41",X"15",X"41",X"EE",X"08",X"EF",X"08",X"06",X"01",X"06",X"01",X"18", + X"41",X"19",X"41",X"06",X"01",X"06",X"01",X"EE",X"08",X"EF",X"08",X"06",X"01",X"06",X"01",X"14", + X"41",X"15",X"41",X"06",X"01",X"06",X"01",X"EE",X"08",X"EF",X"08",X"18",X"41",X"19",X"41",X"06", + X"01",X"06",X"01",X"06",X"01",X"06",X"01",X"F0",X"08",X"22",X"23",X"3C",X"3D",X"5A",X"5B",X"70", + X"71",X"02",X"D3",X"7C",X"7E",X"03",X"D3",X"01",X"7F",X"1C",X"D4",X"7C",X"7E",X"1D",X"D4",X"01", + X"7F",X"FA",X"D5",X"7C",X"7E",X"FB",X"D5",X"01",X"7F",X"10",X"D3",X"7C",X"7E",X"11",X"D3",X"01", + X"7F",X"02",X"D3",X"7C",X"7E",X"03",X"D3",X"01",X"7F",X"1C",X"D4",X"7C",X"7E",X"1D",X"D4",X"01", + X"7F",X"3A",X"D4",X"7C",X"7E",X"3B",X"D4",X"01",X"7F",X"10",X"D3",X"7C",X"7E",X"11",X"D3",X"01", + X"7F",X"1F",X"20",X"3F",X"40",X"5F",X"60",X"7F",X"80",X"9F",X"A0",X"BF",X"C0",X"BF",X"C0",X"9F", + X"A0",X"7F",X"80",X"5F",X"60",X"3F",X"40",X"1F",X"20",X"04",X"06",X"05",X"7D",X"7E",X"96",X"95", + X"97",X"BC",X"BE",X"BD",X"BF",X"C0",X"C2",X"C1",X"C3",X"C4",X"C6",X"C5",X"C7",X"C8",X"CA",X"C9", + X"CB",X"FD",X"FB",X"D4",X"FE",X"41",X"22",X"FD",X"3A",X"D5",X"80",X"FE",X"91",X"1F",X"94",X"FD", + X"79",X"D5",X"26",X"FE",X"11",X"00",X"00",X"00",X"FD",X"B8",X"D5",X"FE",X"91",X"27",X"28",X"29", + X"FE",X"11",X"00",X"00",X"FD",X"F8",X"D5",X"FE",X"91",X"30",X"2A",X"FE",X"11",X"03",X"FE",X"91", + X"20",X"21",X"FD",X"38",X"D6",X"31",X"2C",X"2D",X"FE",X"11",X"03",X"FE",X"91",X"23",X"FD",X"79", + X"D6",X"2E",X"2F",X"22",X"FE",X"11",X"03",X"FD",X"BA",X"D6",X"FE",X"91",X"2B",X"24",X"25",X"FF", + X"FD",X"FC",X"D4",X"FE",X"41",X"22",X"FD",X"3B",X"D5",X"80",X"80",X"FD",X"79",X"D5",X"80",X"FD", + X"B8",X"D5",X"80",X"80",X"80",X"FD",X"F8",X"D5",X"80",X"80",X"80",X"80",X"80",X"FD",X"38",X"D6", + X"86",X"86",X"86",X"86",X"86",X"FD",X"77",X"D6",X"FE",X"91",X"36",X"37",X"32",X"32",X"32",X"33", + X"FD",X"B6",X"D6",X"38",X"39",X"34",X"34",X"34",X"34",X"35",X"FF",X"FE",X"01",X"06",X"FE",X"FD", + X"39",X"5B",X"80",X"80",X"86",X"FF",X"FE",X"01",X"06",X"FE",X"01",X"FE",X"FD",X"52",X"5B",X"FE", + X"41",X"22",X"80",X"80",X"FF",X"FE",X"09",X"FE",X"FD",X"53",X"5B",X"FE",X"FC",X"53",X"5B",X"FE", + X"01",X"06",X"F9",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FE",X"01",X"03",X"03",X"03", + X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"FF",X"AA",X"5B",X"B3",X"5B",X"C4",X"5B", + X"CE",X"5B",X"C4",X"5B",X"D5",X"5B",X"E8",X"5B",X"FB",X"5B",X"10",X"5C",X"25",X"5C",X"3A",X"5C", + X"4F",X"5C",X"62",X"5C",X"CE",X"5B",X"C4",X"5B",X"CE",X"5B",X"C4",X"5B",X"CE",X"5B",X"C4",X"5B", + X"D5",X"5B",X"E8",X"5B",X"FB",X"5B",X"10",X"5C",X"25",X"5C",X"3A",X"5C",X"4F",X"5C",X"62",X"5C", + X"CE",X"5B",X"C4",X"5B",X"CE",X"5B",X"75",X"5C",X"83",X"5C",X"FE",X"FD",X"5B",X"5B",X"F2",X"F4", + X"F6",X"04",X"FF",X"FE",X"FD",X"39",X"5B",X"FE",X"01",X"F7",X"F3",X"F5",X"FE",X"41",X"84",X"7C", + X"FF",X"FE",X"01",X"06",X"FE",X"FD",X"2E",X"5B",X"7C",X"84",X"FF",X"FE",X"01",X"06",X"FE",X"FD", + X"2E",X"5B",X"84",X"7C",X"FF",X"FE",X"41",X"16",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"1E", + X"80",X"80",X"80",X"80",X"14",X"84",X"7C",X"FF",X"FE",X"41",X"17",X"88",X"1C",X"88",X"88",X"88", + X"88",X"88",X"1F",X"88",X"88",X"88",X"88",X"15",X"7C",X"84",X"FF",X"FE",X"01",X"F9",X"FE",X"41", + X"80",X"89",X"00",X"02",X"04",X"06",X"10",X"22",X"80",X"80",X"80",X"80",X"86",X"84",X"7C",X"FF", + X"FE",X"01",X"F9",X"FE",X"41",X"80",X"89",X"01",X"03",X"05",X"07",X"11",X"22",X"80",X"80",X"80", + X"80",X"86",X"7C",X"84",X"FF",X"FE",X"01",X"F9",X"FE",X"41",X"80",X"89",X"08",X"0A",X"0C",X"0E", + X"12",X"22",X"80",X"80",X"80",X"80",X"86",X"84",X"7C",X"FF",X"FE",X"01",X"F9",X"FE",X"41",X"80", + X"89",X"09",X"0B",X"0D",X"0F",X"13",X"22",X"80",X"80",X"80",X"80",X"86",X"7C",X"84",X"FF",X"FE", + X"41",X"1A",X"23",X"1D",X"23",X"23",X"23",X"23",X"23",X"20",X"23",X"23",X"23",X"23",X"18",X"84", + X"7C",X"FF",X"FE",X"41",X"1B",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"21",X"80",X"80",X"80", + X"80",X"19",X"7C",X"84",X"FF",X"FE",X"FD",X"39",X"5B",X"FE",X"01",X"F8",X"FA",X"FC",X"FE",X"41", + X"7C",X"84",X"FF",X"FE",X"FD",X"5B",X"5B",X"FB",X"FD",X"FE",X"41",X"7B",X"7C",X"FF",X"A8",X"5C", + X"C2",X"5C",X"DD",X"5C",X"F3",X"5C",X"08",X"5D",X"20",X"5D",X"33",X"5D",X"3C",X"5D",X"0A",X"5E", + X"CB",X"5B",X"C1",X"5B",X"CB",X"5B",X"C1",X"5B",X"FE",X"03",X"EF",X"FE",X"09",X"00",X"00",X"00", + X"00",X"FE",X"92",X"3A",X"3C",X"3E",X"8E",X"FE",X"09",X"FE",X"FD",X"54",X"5B",X"CC",X"FE",X"01", + X"ED",X"FF",X"FE",X"09",X"FE",X"FD",X"55",X"5B",X"FE",X"92",X"3B",X"3D",X"46",X"44",X"46",X"FE", + X"09",X"00",X"00",X"00",X"00",X"FE",X"92",X"49",X"FE",X"93",X"4B",X"4D",X"FF",X"FE",X"41",X"15", + X"17",X"88",X"88",X"88",X"88",X"FE",X"93",X"3F",X"40",X"42",X"47",X"45",X"48",X"4A",X"4C",X"4E", + X"5C",X"5E",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"55",X"5B",X"FE",X"93",X"41",X"43",X"52", + X"54",X"56",X"58",X"5A",X"86",X"5D",X"5F",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"54",X"5B", + X"FE",X"93",X"51",X"53",X"55",X"57",X"59",X"5B",X"FE",X"01",X"06",X"FE",X"93",X"63",X"5F",X"FF", + X"FE",X"FD",X"4F",X"5B",X"FE",X"93",X"4F",X"50",X"FE",X"13",X"00",X"00",X"00",X"06",X"FE",X"93", + X"63",X"5F",X"FF",X"FE",X"FD",X"2B",X"5B",X"FE",X"93",X"63",X"5F",X"FF",X"FE",X"08",X"EE",X"FE", + X"FD",X"2E",X"5B",X"FE",X"93",X"60",X"62",X"FF",X"62",X"5D",X"7D",X"5D",X"98",X"5D",X"B2",X"5D", + X"CA",X"5D",X"D6",X"5D",X"E2",X"5D",X"F7",X"5D",X"0A",X"5E",X"CB",X"5B",X"C1",X"5B",X"CB",X"5B", + X"C1",X"5B",X"FE",X"03",X"EF",X"FE",X"09",X"00",X"00",X"00",X"00",X"FE",X"92",X"87",X"8A",X"8C", + X"8E",X"FE",X"09",X"FE",X"FD",X"55",X"5B",X"00",X"CC",X"FE",X"01",X"ED",X"FF",X"FE",X"09",X"FE", + X"FD",X"55",X"5B",X"FE",X"92",X"88",X"8B",X"8D",X"8F",X"92",X"FE",X"09",X"00",X"00",X"00",X"00", + X"CD",X"FE",X"01",X"ED",X"FE",X"92",X"74",X"FF",X"FE",X"41",X"15",X"17",X"88",X"88",X"88",X"88", + X"88",X"FE",X"93",X"89",X"90",X"93",X"65",X"FE",X"41",X"88",X"88",X"88",X"15",X"FE",X"93",X"73", + X"75",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"54",X"5B",X"FE",X"93",X"91",X"64",X"FE",X"41", + X"80",X"80",X"80",X"80",X"FE",X"93",X"6E",X"70",X"72",X"FF",X"FE",X"FD",X"36",X"5B",X"80",X"FE", + X"93",X"6D",X"6F",X"71",X"5F",X"FF",X"FE",X"FD",X"36",X"5B",X"FE",X"93",X"68",X"6A",X"6C",X"63", + X"5F",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"80",X"FE",X"93",X"66",X"69",X"6B",X"FE", + X"13",X"02",X"FE",X"93",X"63",X"5F",X"FF",X"FE",X"08",X"EE",X"FE",X"FD",X"39",X"5B",X"FE",X"93", + X"67",X"FE",X"41",X"80",X"86",X"FE",X"93",X"60",X"62",X"FF",X"FE",X"08",X"EF",X"FE",X"FD",X"2E", + X"5B",X"FE",X"93",X"61",X"FE",X"41",X"84",X"FF",X"32",X"5E",X"4C",X"5E",X"74",X"5E",X"7D",X"5E", + X"7D",X"5E",X"7D",X"5E",X"86",X"5E",X"8F",X"5E",X"9B",X"5E",X"CB",X"5B",X"C1",X"5B",X"CB",X"5B", + X"C1",X"5B",X"FE",X"03",X"EF",X"FE",X"09",X"00",X"00",X"00",X"00",X"FE",X"92",X"76",X"3C",X"79", + X"FE",X"09",X"FE",X"FD",X"54",X"5B",X"00",X"CC",X"FE",X"01",X"ED",X"FF",X"FE",X"09",X"FE",X"FD", + X"55",X"5B",X"FE",X"92",X"77",X"78",X"FE",X"09",X"FE",X"FD",X"53",X"5B",X"CD",X"FE",X"92",X"7A", + X"7C",X"FF",X"FE",X"41",X"15",X"17",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"1F",X"88",X"88", + X"88",X"88",X"15",X"FF",X"FE",X"FD",X"62",X"5E",X"FE",X"92",X"7B",X"34",X"FF",X"FE",X"FD",X"2B", + X"5B",X"FE",X"91",X"32",X"34",X"FF",X"FE",X"FD",X"2B",X"5B",X"FE",X"91",X"80",X"82",X"FF",X"FE", + X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE",X"91",X"81",X"83",X"FF",X"FE",X"08",X"EF",X"FE",X"FD", + X"2E",X"5B",X"FE",X"91",X"7F",X"FE",X"41",X"84",X"FF",X"CF",X"5E",X"E2",X"5E",X"F4",X"5E",X"0C", + X"5F",X"21",X"5F",X"39",X"5F",X"53",X"5F",X"6D",X"5F",X"8B",X"5F",X"A7",X"5F",X"C3",X"5F",X"DF", + X"5F",X"FD",X"5F",X"18",X"60",X"2B",X"60",X"47",X"60",X"65",X"60",X"83",X"60",X"9B",X"60",X"FE", + X"03",X"EF",X"FE",X"09",X"00",X"00",X"00",X"C4",X"C6",X"C8",X"C8",X"C8",X"C9",X"CB",X"00",X"00", + X"00",X"FF",X"FE",X"09",X"00",X"00",X"00",X"00",X"C5",X"C7",X"C7",X"C7",X"C7",X"CA",X"00",X"00", + X"00",X"00",X"CD",X"FF",X"FE",X"09",X"C3",X"FE",X"41",X"17",X"88",X"88",X"88",X"88",X"88",X"88", + X"88",X"1F",X"88",X"88",X"88",X"88",X"15",X"FE",X"07",X"80",X"82",X"FF",X"FE",X"06",X"A7",X"A8", + X"FE",X"FD",X"53",X"5B",X"FE",X"41",X"22",X"80",X"80",X"80",X"80",X"86",X"FE",X"07",X"81",X"83", + X"FF",X"FE",X"45",X"8A",X"FE",X"06",X"04",X"A9",X"AA",X"AB",X"AB",X"AB",X"AB",X"AB",X"BD",X"AB", + X"AB",X"AB",X"AB",X"C0",X"FE",X"0A",X"D6",X"D4",X"FF",X"FE",X"06",X"A1",X"A2",X"FE",X"05",X"8C", + X"FE",X"06",X"AC",X"AD",X"AE",X"AE",X"AE",X"AE",X"BE",X"AE",X"AE",X"AE",X"AE",X"C1",X"FE",X"4A", + X"7D",X"7E",X"FF",X"FE",X"06",X"9E",X"A3",X"A6",X"FE",X"05",X"8F",X"FE",X"06",X"04",X"AF",X"B0", + X"B1",X"B1",X"BF",X"B1",X"B1",X"B1",X"B1",X"C2",X"FE",X"4A",X"7F",X"83",X"FF",X"FE",X"08",X"EC", + X"FE",X"06",X"A4",X"94",X"96",X"99",X"FE",X"05",X"8C",X"FE",X"06",X"B2",X"B3",X"00",X"FE",X"41", + X"22",X"80",X"80",X"80",X"FE",X"04",X"84",X"86",X"88",X"8A",X"FF",X"FE",X"08",X"EF",X"FE",X"06", + X"A5",X"95",X"97",X"9A",X"93",X"FE",X"05",X"8E",X"FE",X"06",X"04",X"B4",X"B5",X"00",X"00",X"00", + X"FE",X"04",X"85",X"87",X"89",X"8B",X"FF",X"FE",X"01",X"06",X"F9",X"00",X"FE",X"06",X"98",X"9B", + X"94",X"96",X"99",X"FE",X"05",X"8C",X"FE",X"06",X"B6",X"B7",X"AB",X"AB",X"AB",X"C0",X"FE",X"0A", + X"D4",X"D6",X"FF",X"FE",X"01",X"06",X"F9",X"00",X"00",X"FE",X"06",X"9C",X"95",X"97",X"9A",X"93", + X"FE",X"05",X"8E",X"FE",X"06",X"04",X"B8",X"B9",X"AE",X"C1",X"FE",X"0A",X"D5",X"D7",X"FF",X"FE", + X"01",X"06",X"F9",X"00",X"00",X"00",X"00",X"FE",X"06",X"98",X"9B",X"94",X"9D",X"A0",X"FE",X"05", + X"8C",X"FE",X"06",X"BA",X"BB",X"C2",X"FE",X"0A",X"D8",X"FE",X"41",X"7C",X"FF",X"FE",X"01",X"06", + X"F9",X"FE",X"FD",X"55",X"5B",X"FE",X"06",X"9C",X"95",X"9E",X"9A",X"93",X"FE",X"05",X"8E",X"FE", + X"06",X"04",X"BC",X"FE",X"0A",X"D3",X"03",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"06",X"9F",X"9B", + X"94",X"96",X"99",X"FE",X"05",X"8C",X"FE",X"0A",X"D1",X"D2",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"D9",X"DC",X"DC",X"DC",X"DC",X"DE",X"FE",X"41",X"80",X"22",X"FE",X"06",X"9C",X"95",X"97", + X"9A",X"90",X"FE",X"05",X"8D",X"07",X"FF",X"FE",X"08",X"EE",X"FE",X"01",X"F9",X"FE",X"0B",X"DA", + X"07",X"DB",X"DD",X"DF",X"E9",X"FE",X"41",X"80",X"22",X"80",X"80",X"FE",X"06",X"98",X"9B",X"91", + X"FE",X"0A",X"CF",X"D0",X"FF",X"FE",X"08",X"EF",X"FE",X"01",X"F9",X"FE",X"0B",X"DA",X"E0",X"E2", + X"E4",X"E6",X"E9",X"FE",X"41",X"80",X"22",X"80",X"80",X"80",X"FE",X"06",X"9C",X"92",X"FE",X"0A", + X"CE",X"03",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"0B",X"DA",X"E1",X"E3",X"E5",X"E7",X"E9",X"FE", + X"41",X"80",X"22",X"80",X"80",X"80",X"80",X"86",X"84",X"7C",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"EB",X"E8",X"E8",X"E8",X"E8",X"EA",X"FE",X"41",X"80",X"22",X"80",X"80",X"80",X"80",X"86", + X"7C",X"84",X"FF",X"15",X"61",X"09",X"61",X"02",X"61",X"F6",X"60",X"E5",X"60",X"D9",X"60",X"37", + X"63",X"85",X"63",X"90",X"63",X"30",X"63",X"37",X"63",X"30",X"63",X"37",X"63",X"30",X"63",X"37", + X"63",X"85",X"63",X"90",X"63",X"30",X"63",X"37",X"63",X"FE",X"FD",X"36",X"5B",X"80",X"80",X"FE", + X"96",X"B4",X"B6",X"B5",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"80",X"FE",X"96",X"B7", + X"AB",X"AD",X"AF",X"B1",X"B3",X"FF",X"FE",X"FD",X"36",X"5B",X"FE",X"96",X"AA",X"AC",X"AE",X"B0", + X"B2",X"FF",X"FE",X"FD",X"62",X"5E",X"84",X"84",X"FF",X"FE",X"FD",X"45",X"5B",X"FE",X"92",X"49", + X"FE",X"01",X"ED",X"04",X"FF",X"FE",X"03",X"EF",X"FE",X"FD",X"45",X"5B",X"CC",X"FE",X"01",X"ED", + X"FF",X"3D",X"61",X"59",X"61",X"7B",X"61",X"9B",X"61",X"BB",X"61",X"D5",X"61",X"EB",X"61",X"03", + X"62",X"1B",X"62",X"37",X"62",X"53",X"62",X"69",X"62",X"7D",X"62",X"91",X"62",X"FE",X"08",X"EE", + X"FE",X"01",X"F9",X"FE",X"0B",X"D9",X"DC",X"DC",X"DC",X"DC",X"DE",X"04",X"FE",X"41",X"22",X"80", + X"80",X"80",X"80",X"86",X"FE",X"4A",X"4E",X"81",X"FF",X"FE",X"08",X"EF",X"FE",X"01",X"F9",X"FE", + X"0B",X"DA",X"FE",X"4B",X"87",X"8D",X"90",X"FE",X"0B",X"07",X"E9",X"04",X"FE",X"41",X"22",X"80", + X"80",X"80",X"80",X"FE",X"46",X"4B",X"FE",X"4C",X"9B",X"A9",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"DA",X"FE",X"4B",X"87",X"8E",X"91",X"FE",X"0B",X"07",X"E9",X"04",X"FE",X"41",X"22",X"80", + X"80",X"FE",X"46",X"4C",X"FE",X"4C",X"83",X"9F",X"A7",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"DA",X"FE",X"4B",X"8C",X"8F",X"92",X"FE",X"0B",X"07",X"E9",X"04",X"FE",X"41",X"22",X"80", + X"FE",X"46",X"4B",X"FE",X"4C",X"9B",X"9C",X"49",X"A8",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"EB",X"E8",X"E8",X"E8",X"E8",X"EA",X"04",X"FE",X"46",X"4D",X"FE",X"4C",X"83",X"9F",X"A0", + X"A1",X"85",X"87",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"54",X"5B",X"FE",X"46",X"4B", + X"FE",X"4C",X"9B",X"A5",X"A6",X"9A",X"9A",X"42",X"43",X"44",X"FF",X"FE",X"01",X"06",X"F9",X"00", + X"00",X"00",X"00",X"FE",X"46",X"4C",X"FE",X"4C",X"83",X"9F",X"A3",X"A4",X"3E",X"3E",X"3E",X"45", + X"48",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"00",X"00",X"00",X"FE",X"46",X"4B",X"FE",X"4C",X"9B", + X"9C",X"A2",X"40",X"3D",X"3D",X"3D",X"3D",X"46",X"47",X"87",X"FF",X"FE",X"08",X"EE",X"FE",X"01", + X"F9",X"00",X"FE",X"46",X"4C",X"FE",X"4C",X"83",X"9F",X"A0",X"A1",X"80",X"FE",X"41",X"22",X"80", + X"80",X"80",X"80",X"86",X"84",X"84",X"FF",X"FE",X"08",X"EF",X"FE",X"01",X"F9",X"FE",X"46",X"4B", + X"FE",X"4C",X"9B",X"9C",X"9D",X"9E",X"80",X"80",X"FE",X"41",X"22",X"80",X"80",X"80",X"80",X"86", + X"84",X"84",X"FF",X"FE",X"46",X"4A",X"FE",X"4C",X"83",X"98",X"99",X"9A",X"9A",X"9A",X"9A",X"9A", + X"41",X"9A",X"9A",X"9A",X"9A",X"42",X"43",X"44",X"FF",X"FE",X"4C",X"9B",X"95",X"96",X"97",X"3E", + X"3E",X"3E",X"3E",X"3E",X"3F",X"3E",X"3E",X"3E",X"3E",X"45",X"48",X"87",X"FF",X"FE",X"4C",X"93", + X"94",X"3D",X"3D",X"3D",X"3D",X"3D",X"3D",X"3D",X"40",X"3D",X"3D",X"3D",X"3D",X"46",X"47",X"87", + X"FF",X"FE",X"4C",X"3C",X"FE",X"FD",X"2E",X"5B",X"84",X"84",X"FF",X"30",X"63",X"37",X"63",X"30", + X"63",X"AF",X"62",X"B8",X"62",X"C4",X"62",X"D0",X"62",X"E5",X"62",X"F6",X"62",X"09",X"63",X"FE", + X"FD",X"2B",X"5B",X"7C",X"FE",X"91",X"1C",X"FF",X"FE",X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE", + X"91",X"18",X"1E",X"FF",X"FE",X"08",X"EF",X"FE",X"FD",X"2E",X"5B",X"FE",X"91",X"14",X"16",X"FF", + X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"80",X"FE",X"91",X"1A",X"FE",X"41",X"80",X"80",X"86", + X"FE",X"91",X"14",X"16",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"FE",X"91",X"19",X"1B", + X"1D",X"10",X"12",X"14",X"16",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"91",X"08",X"0A",X"0C",X"FE", + X"11",X"03",X"FE",X"91",X"11",X"13",X"15",X"17",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"91",X"09", + X"0B",X"0D",X"0F",X"FE",X"11",X"03",X"03",X"FE",X"91",X"07",X"0E",X"FF",X"30",X"63",X"37",X"63", + X"30",X"63",X"3E",X"63",X"47",X"63",X"53",X"63",X"5F",X"63",X"5F",X"63",X"5F",X"63",X"68",X"63", + X"FE",X"FD",X"2B",X"5B",X"84",X"7C",X"FF",X"FE",X"FD",X"2B",X"5B",X"7C",X"84",X"FF",X"FE",X"FD", + X"2B",X"5B",X"7C",X"FE",X"91",X"38",X"FF",X"FE",X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE",X"91", + X"36",X"39",X"FF",X"FE",X"08",X"EF",X"FE",X"FD",X"2E",X"5B",X"FE",X"91",X"37",X"34",X"FF",X"FE", + X"FD",X"2B",X"5B",X"FE",X"91",X"32",X"34",X"FF",X"FE",X"FD",X"2B",X"5B",X"FE",X"91",X"33",X"35", + X"FF",X"30",X"63",X"37",X"63",X"30",X"63",X"37",X"63",X"85",X"63",X"90",X"63",X"30",X"63",X"37", + X"63",X"30",X"63",X"37",X"63",X"FE",X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE",X"FC",X"34",X"63", + X"FE",X"08",X"EF",X"FE",X"FD",X"2E",X"5B",X"FE",X"FC",X"3B",X"63",X"A7",X"63",X"B0",X"63",X"B9", + X"63",X"C2",X"63",X"CF",X"63",X"E9",X"63",X"FE",X"5C",X"69",X"6B",X"6D",X"FE",X"5E",X"8B",X"FF", + X"FE",X"5C",X"70",X"72",X"FE",X"5E",X"78",X"84",X"FF",X"FE",X"5C",X"71",X"73",X"FE",X"5E",X"79", + X"84",X"FF",X"FE",X"5C",X"74",X"76",X"FE",X"5D",X"4F",X"87",X"87",X"FE",X"FC",X"D8",X"63",X"FE", + X"5C",X"75",X"77",X"FE",X"5D",X"50",X"FE",X"5F",X"87",X"87",X"87",X"87",X"87",X"87",X"87",X"87", + X"87",X"87",X"87",X"87",X"87",X"87",X"87",X"87",X"FF",X"FE",X"5C",X"6F",X"7A",X"FE",X"5D",X"51", + X"FE",X"5F",X"87",X"87",X"87",X"87",X"87",X"37",X"38",X"39",X"39",X"3A",X"3B",X"87",X"87",X"87", + X"87",X"FF",X"42",X"64",X"4E",X"64",X"5D",X"64",X"BC",X"64",X"C0",X"64",X"64",X"64",X"68",X"64", + X"D8",X"64",X"E8",X"64",X"74",X"64",X"6C",X"64",X"70",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64", + X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64", + X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"C8",X"64",X"CC",X"64",X"D0",X"64", + X"D4",X"64",X"FE",X"4D",X"FA",X"FC",X"FE",X"70",X"AF",X"B1",X"B3",X"B5",X"B7",X"FF",X"FE",X"4D", + X"FD",X"FE",X"8D",X"85",X"FE",X"8E",X"84",X"FE",X"50",X"B2",X"B4",X"B6",X"FF",X"FE",X"8E",X"00", + X"01",X"02",X"03",X"FF",X"F4",X"F6",X"D8",X"FF",X"F5",X"F7",X"80",X"FF",X"F0",X"F2",X"D8",X"FF", + X"F1",X"F3",X"80",X"FF",X"F8",X"D5",X"D7",X"FF",X"D8",X"64",X"E8",X"64",X"B8",X"64",X"BC",X"64", + X"C0",X"64",X"C4",X"64",X"D8",X"64",X"E8",X"64",X"C8",X"64",X"CC",X"64",X"D0",X"64",X"D4",X"64", + X"D8",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64", + X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64",X"E4",X"64",X"E8",X"64", + X"EC",X"64",X"F2",X"64",X"F9",X"64",X"02",X"65",X"C6",X"C2",X"80",X"FF",X"C7",X"C2",X"80",X"FF", + X"CE",X"D5",X"D7",X"FF",X"CF",X"D6",X"D8",X"FF",X"C8",X"CA",X"80",X"FF",X"C9",X"CB",X"CD",X"FF", + X"D0",X"D2",X"D4",X"FF",X"D1",X"D3",X"80",X"FF",X"AA",X"C2",X"80",X"FF",X"B8",X"C2",X"C4",X"FF", + X"C1",X"C3",X"C5",X"FF",X"AA",X"C0",X"CC",X"FF",X"B8",X"C2",X"80",X"FF",X"BA",X"BC",X"FE",X"50", + X"BE",X"FF",X"FE",X"50",X"B9",X"BB",X"BD",X"BF",X"FF",X"FE",X"50",X"AC",X"AE",X"B0",X"B2",X"B4", + X"B6",X"FF",X"FE",X"50",X"AB",X"AD",X"AF",X"B1",X"B3",X"B5",X"B7",X"FF",X"4C",X"65",X"D8",X"64", + X"E8",X"64",X"50",X"65",X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64", + X"E4",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64", + X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64",X"E4",X"64",X"E8",X"64", + X"D8",X"64",X"E8",X"64",X"C8",X"64",X"CC",X"64",X"D0",X"64",X"D4",X"64",X"E3",X"E5",X"80",X"FF", + X"E4",X"E6",X"C4",X"FF",X"46",X"5E",X"58",X"65",X"FE",X"01",X"ED",X"FE",X"41",X"7C",X"FF",X"67", + X"65",X"6D",X"65",X"76",X"65",X"81",X"65",X"FE",X"42",X"24",X"26",X"30",X"FF",X"FE",X"5D",X"87", + X"FE",X"42",X"2A",X"2C",X"2E",X"FF",X"FE",X"5F",X"87",X"87",X"35",X"FE",X"42",X"2B",X"2D",X"2F", + X"FF",X"FE",X"5F",X"87",X"87",X"36",X"FE",X"42",X"31",X"32",X"33",X"34",X"FF",X"05",X"01",X"07", + X"0B",X"FE",X"06",X"05",X"02",X"09",X"0B",X"FD",X"08",X"05",X"01",X"0C",X"0B",X"FE",X"0B",X"05", + X"02",X"0E",X"0B",X"FD",X"0D",X"B7",X"65",X"B7",X"65",X"D5",X"65",X"E0",X"65",X"EB",X"65",X"F1", + X"65",X"00",X"00",X"F7",X"65",X"FB",X"65",X"02",X"00",X"00",X"02",X"00",X"03",X"05",X"19",X"01", + X"05",X"B3",X"00",X"05",X"00",X"00",X"05",X"4D",X"FF",X"05",X"E7",X"FE",X"02",X"00",X"FD",X"02", + X"00",X"00",X"FF",X"00",X"00",X"04",X"10",X"06",X"12",X"10",X"93",X"06",X"14",X"04",X"10",X"00", + X"04",X"11",X"06",X"12",X"10",X"93",X"06",X"14",X"04",X"10",X"00",X"05",X"55",X"01",X"88",X"00", + X"00",X"05",X"56",X"01",X"88",X"00",X"00",X"05",X"B8",X"00",X"00",X"05",X"B9",X"00",X"00",X"9B", + X"66",X"BF",X"66",X"D9",X"66",X"FD",X"66",X"1D",X"67",X"45",X"67",X"93",X"68",X"BD",X"68",X"47", + X"68",X"6B",X"68",X"1F",X"68",X"77",X"69",X"A1",X"69",X"2B",X"69",X"4F",X"69",X"03",X"69",X"9F", + X"67",X"C9",X"69",X"B9",X"67",X"D9",X"67",X"FF",X"67",X"6B",X"68",X"6B",X"68",X"6B",X"68",X"E5", + X"68",X"E5",X"68",X"00",X"00",X"00",X"00",X"63",X"67",X"74",X"67",X"81",X"67",X"92",X"67",X"F3", + X"69",X"07",X"6A",X"27",X"6A",X"3C",X"6A",X"51",X"6A",X"66",X"6A",X"66",X"74",X"AC",X"66",X"CC", + X"66",X"EA",X"66",X"0A",X"67",X"32",X"67",X"56",X"67",X"A4",X"68",X"D2",X"68",X"58",X"68",X"80", + X"68",X"34",X"68",X"88",X"69",X"B6",X"69",X"3C",X"69",X"64",X"69",X"18",X"69",X"AC",X"67",X"DA", + X"69",X"C6",X"67",X"E6",X"67",X"0C",X"68",X"80",X"68",X"80",X"68",X"80",X"68",X"F6",X"68",X"F6", + X"68",X"00",X"00",X"00",X"00",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"00",X"6A",X"14", + X"6A",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"27",X"10",X"02",X"80",X"2D", + X"10",X"02",X"82",X"23",X"2C",X"00",X"84",X"28",X"30",X"01",X"02",X"FF",X"3D",X"4A",X"A0",X"FF", + X"20",X"FF",X"0F",X"3F",X"40",X"00",X"40",X"FF",X"0F",X"38",X"A0",X"00",X"00",X"00",X"FF",X"29", + X"10",X"02",X"86",X"28",X"30",X"01",X"03",X"28",X"40",X"00",X"04",X"FF",X"42",X"4B",X"C0",X"FF", + X"40",X"FF",X"0F",X"42",X"60",X"00",X"60",X"FF",X"FF",X"26",X"10",X"02",X"8E",X"2D",X"10",X"02", + X"90",X"22",X"2C",X"00",X"92",X"28",X"2F",X"01",X"0B",X"FF",X"30",X"49",X"C0",X"FF",X"40",X"FF", + X"0F",X"3E",X"A0",X"00",X"C0",X"FF",X"0F",X"28",X"00",X"00",X"00",X"FF",X"FF",X"27",X"3F",X"00", + X"04",X"28",X"10",X"02",X"94",X"28",X"30",X"01",X"0D",X"FF",X"40",X"4B",X"C0",X"FF",X"20",X"FF", + X"0F",X"41",X"40",X"00",X"60",X"FF",X"0F",X"1C",X"A0",X"00",X"00",X"00",X"FF",X"2A",X"3B",X"00", + X"2A",X"22",X"10",X"02",X"88",X"2A",X"10",X"02",X"8A",X"22",X"30",X"01",X"05",X"29",X"2D",X"01", + X"06",X"FF",X"0F",X"45",X"40",X"00",X"E0",X"FF",X"0F",X"3A",X"E0",X"00",X"A0",X"FF",X"0F",X"26", + X"00",X"00",X"40",X"FF",X"FF",X"25",X"10",X"02",X"8C",X"2E",X"10",X"02",X"08",X"28",X"20",X"01", + X"09",X"27",X"2D",X"00",X"0A",X"FF",X"0F",X"35",X"A0",X"FF",X"20",X"FF",X"0F",X"2C",X"80",X"00", + X"A0",X"FF",X"FF",X"1F",X"1D",X"02",X"9A",X"24",X"12",X"02",X"9C",X"25",X"32",X"01",X"17",X"25", + X"42",X"00",X"16",X"FF",X"2A",X"10",X"02",X"9E",X"2A",X"30",X"01",X"19",X"28",X"40",X"00",X"1C", + X"FF",X"20",X"1D",X"02",X"A0",X"25",X"12",X"02",X"A2",X"25",X"32",X"01",X"1B",X"24",X"42",X"00", + X"1A",X"FF",X"2A",X"10",X"02",X"A4",X"2A",X"30",X"01",X"1D",X"28",X"40",X"00",X"1C",X"FF",X"2A", + X"3C",X"00",X"21",X"28",X"10",X"02",X"A6",X"28",X"2E",X"01",X"1F",X"FF",X"0F",X"46",X"00",X"00", + X"80",X"FF",X"0F",X"37",X"A0",X"00",X"00",X"00",X"FF",X"29",X"49",X"00",X"21",X"28",X"10",X"02", + X"A8",X"28",X"2B",X"01",X"AA",X"FF",X"46",X"50",X"E0",X"FF",X"60",X"FF",X"39",X"46",X"60",X"00", + X"A0",X"FF",X"14",X"39",X"60",X"00",X"C0",X"FF",X"FF",X"28",X"17",X"02",X"AC",X"29",X"31",X"01", + X"22",X"28",X"41",X"00",X"21",X"FF",X"36",X"4A",X"C0",X"FF",X"40",X"FF",X"2B",X"3F",X"C0",X"00", + X"E0",X"FF",X"1E",X"2C",X"20",X"00",X"40",X"FF",X"1A",X"1E",X"40",X"00",X"00",X"00",X"FF",X"28", + X"49",X"00",X"21",X"28",X"10",X"02",X"A8",X"29",X"2B",X"01",X"AE",X"FF",X"48",X"53",X"C0",X"FF", + X"40",X"FF",X"2F",X"48",X"60",X"00",X"A0",X"FF",X"14",X"2F",X"40",X"00",X"C0",X"FF",X"FF",X"25", + X"10",X"02",X"B0",X"2A",X"10",X"02",X"B2",X"1C",X"38",X"01",X"24",X"2A",X"30",X"01",X"25",X"2C", + X"40",X"00",X"26",X"FF",X"0F",X"4B",X"40",X"01",X"C0",X"FF",X"0F",X"29",X"80",X"01",X"00",X"FF", + X"0F",X"2F",X"80",X"01",X"A0",X"FF",X"FF",X"25",X"10",X"02",X"B0",X"2A",X"10",X"02",X"B2",X"29", + X"30",X"01",X"28",X"29",X"40",X"00",X"27",X"FF",X"0F",X"4B",X"40",X"00",X"C0",X"FF",X"0F",X"2A", + X"80",X"00",X"00",X"FF",X"32",X"40",X"A0",X"00",X"20",X"00",X"FF",X"25",X"10",X"02",X"B0",X"2A", + X"10",X"02",X"B2",X"1C",X"38",X"01",X"29",X"28",X"30",X"01",X"2B",X"28",X"40",X"00",X"2A",X"FF", + X"0F",X"4A",X"40",X"00",X"A0",X"FF",X"0F",X"29",X"80",X"00",X"00",X"FF",X"29",X"3F",X"80",X"00", + X"C0",X"FF",X"FF",X"1D",X"24",X"02",X"B4",X"2D",X"10",X"02",X"B8",X"2D",X"30",X"01",X"B6",X"2D", + X"40",X"00",X"2C",X"FF",X"27",X"4B",X"80",X"00",X"00",X"00",X"0F",X"27",X"C0",X"00",X"40",X"00", + X"30",X"3F",X"E0",X"00",X"A0",X"00",X"2F",X"37",X"00",X"00",X"40",X"FF",X"FF",X"0E",X"38",X"02", + X"2D",X"1E",X"30",X"02",X"32",X"28",X"10",X"02",X"C4",X"2E",X"30",X"01",X"34",X"2E",X"40",X"00", + X"33",X"FF",X"37",X"4A",X"A0",X"00",X"20",X"00",X"35",X"3F",X"20",X"01",X"20",X"FF",X"13",X"38", + X"40",X"00",X"A0",X"FF",X"FF",X"27",X"46",X"00",X"27",X"28",X"10",X"02",X"C6",X"28",X"28",X"01", + X"CA",X"18",X"37",X"02",X"C8",X"FF",X"13",X"51",X"00",X"00",X"80",X"FF",X"31",X"47",X"80",X"00", + X"00",X"00",X"FF",X"25",X"10",X"02",X"96",X"35",X"10",X"02",X"98",X"1E",X"28",X"01",X"11",X"2E", + X"23",X"01",X"0F",X"2D",X"33",X"00",X"0E",X"FF",X"0F",X"3A",X"60",X"00",X"E0",X"FF",X"0F",X"31", + X"C0",X"00",X"00",X"00",X"0F",X"22",X"40",X"00",X"20",X"FF",X"FF",X"25",X"10",X"02",X"96",X"35", + X"10",X"02",X"98",X"2A",X"23",X"01",X"13",X"2A",X"33",X"00",X"12",X"FF",X"0F",X"3A",X"60",X"00", + X"E0",X"FF",X"0F",X"32",X"C0",X"00",X"20",X"00",X"0F",X"22",X"20",X"00",X"20",X"FF",X"FF",X"25", + X"10",X"02",X"96",X"35",X"10",X"02",X"98",X"1F",X"28",X"01",X"10",X"28",X"23",X"01",X"15",X"28", + X"33",X"00",X"14",X"FF",X"0F",X"3A",X"40",X"00",X"C0",X"FF",X"0F",X"30",X"C0",X"00",X"E0",X"FF", + X"0F",X"22",X"E0",X"FF",X"00",X"FF",X"FF",X"20",X"10",X"02",X"CC",X"28",X"20",X"00",X"CE",X"30", + X"10",X"02",X"37",X"30",X"20",X"01",X"36",X"FF",X"1D",X"38",X"80",X"00",X"00",X"00",X"0F",X"2C", + X"40",X"01",X"A0",X"00",X"1F",X"2B",X"00",X"00",X"40",X"FF",X"0F",X"1F",X"40",X"FF",X"C0",X"FE", + X"FF",X"0F",X"10",X"02",X"3B",X"1F",X"10",X"02",X"D4",X"26",X"1A",X"00",X"D8",X"30",X"10",X"02", + X"D6",X"2D",X"23",X"01",X"3C",X"FF",X"1A",X"38",X"20",X"00",X"A0",X"FF",X"19",X"2D",X"00",X"01", + X"E0",X"FE",X"0F",X"1F",X"C0",X"01",X"E0",X"00",X"FF",X"18",X"39",X"00",X"21",X"12",X"1B",X"02", + X"2E",X"22",X"10",X"02",X"C2",X"1B",X"2B",X"01",X"31",X"FF",X"39",X"42",X"C0",X"FD",X"40",X"FD", + X"2A",X"39",X"A0",X"FE",X"C0",X"FD",X"1F",X"2F",X"40",X"FF",X"40",X"FE",X"0F",X"20",X"A0",X"FF", + X"00",X"FF",X"FF",X"29",X"40",X"00",X"3E",X"29",X"30",X"01",X"3F",X"29",X"10",X"02",X"42",X"FF", + X"0F",X"4B",X"20",X"00",X"A0",X"FF",X"FF",X"25",X"3F",X"00",X"07",X"2B",X"2F",X"01",X"35",X"2C", + X"10",X"02",X"44",X"FF",X"40",X"48",X"A0",X"FF",X"20",X"FF",X"34",X"3F",X"60",X"00",X"C0",X"FF", + X"0F",X"3A",X"C0",X"00",X"20",X"00",X"FF",X"2A",X"40",X"00",X"3D",X"20",X"30",X"41",X"2B",X"30", + X"30",X"41",X"3E",X"20",X"10",X"02",X"46",X"30",X"10",X"02",X"48",X"FF",X"26",X"33",X"41",X"3F", + X"36",X"31",X"80",X"EA",X"1C",X"14",X"02",X"4A",X"2C",X"13",X"02",X"4C",X"3C",X"19",X"00",X"4E", + X"FF",X"2E",X"40",X"80",X"EB",X"1E",X"30",X"81",X"EC",X"2E",X"30",X"81",X"ED",X"1E",X"10",X"02", + X"50",X"2E",X"10",X"02",X"52",X"FF",X"27",X"36",X"81",X"EE",X"37",X"2C",X"80",X"EF",X"17",X"10", + X"02",X"54",X"27",X"16",X"01",X"56",X"37",X"10",X"01",X"58",X"FF",X"97",X"6A",X"A4",X"6A",X"B1", + X"6A",X"A4",X"6A",X"D8",X"6A",X"CB",X"6A",X"BE",X"6A",X"E5",X"6A",X"F2",X"6A",X"FF",X"6A",X"22", + X"6B",X"19",X"6B",X"0C",X"6B",X"19",X"6B",X"2D",X"40",X"45",X"00",X"27",X"10",X"44",X"80",X"2D", + X"10",X"44",X"40",X"FF",X"2D",X"40",X"45",X"00",X"29",X"30",X"44",X"01",X"29",X"10",X"44",X"42", + X"FF",X"2D",X"40",X"45",X"00",X"28",X"10",X"44",X"84",X"31",X"10",X"44",X"44",X"FF",X"27",X"3C", + X"45",X"02",X"21",X"20",X"44",X"46",X"2C",X"10",X"44",X"48",X"FF",X"24",X"28",X"44",X"4A",X"28", + X"2B",X"45",X"4C",X"28",X"10",X"44",X"4E",X"FF",X"2C",X"0C",X"45",X"98",X"25",X"20",X"44",X"56", + X"25",X"10",X"44",X"04",X"FF",X"19",X"0D",X"45",X"88",X"1F",X"1A",X"44",X"50",X"2F",X"0D",X"44", + X"8C",X"FF",X"1C",X"0D",X"45",X"90",X"2C",X"17",X"44",X"52",X"35",X"0D",X"44",X"54",X"FF",X"28", + X"3F",X"45",X"00",X"26",X"10",X"44",X"94",X"36",X"30",X"44",X"03",X"FF",X"29",X"40",X"85",X"00", + X"26",X"10",X"44",X"F6",X"36",X"10",X"84",X"DA",X"FF",X"2A",X"40",X"85",X"00",X"2A",X"10",X"44", + X"FC",X"FF",X"2A",X"40",X"85",X"00",X"26",X"10",X"44",X"FA",X"36",X"10",X"C4",X"F2",X"FF",X"51", + X"6B",X"5E",X"6B",X"6B",X"6B",X"5E",X"6B",X"85",X"6B",X"78",X"6B",X"00",X"00",X"92",X"6B",X"9B", + X"6B",X"A4",X"6B",X"B1",X"6B",X"B1",X"6B",X"BA",X"6B",X"C3",X"6B",X"CC",X"6B",X"D5",X"6B",X"DE", + X"6B",X"28",X"30",X"91",X"10",X"28",X"20",X"91",X"11",X"28",X"10",X"92",X"82",X"FF",X"28",X"30", + X"91",X"10",X"28",X"20",X"91",X"12",X"28",X"10",X"92",X"84",X"FF",X"27",X"30",X"91",X"10",X"28", + X"20",X"91",X"13",X"28",X"10",X"92",X"86",X"FF",X"28",X"20",X"91",X"88",X"28",X"10",X"92",X"8A", + X"2B",X"2E",X"47",X"0C",X"FF",X"28",X"20",X"91",X"92",X"28",X"10",X"92",X"94",X"2C",X"0C",X"47", + X"0C",X"FF",X"22",X"18",X"91",X"96",X"2D",X"10",X"92",X"98",X"FF",X"1E",X"12",X"91",X"8C",X"2E", + X"12",X"92",X"8E",X"FF",X"27",X"2D",X"91",X"10",X"29",X"10",X"92",X"90",X"2C",X"20",X"91",X"14", + X"FF",X"2A",X"18",X"D1",X"F4",X"2A",X"10",X"D2",X"F6",X"FF",X"2C",X"1E",X"D1",X"F8",X"2A",X"0A", + X"D2",X"FA",X"FF",X"29",X"0D",X"D1",X"FC",X"26",X"12",X"92",X"FB",X"FF",X"27",X"0D",X"D1",X"FE", + X"20",X"16",X"92",X"FC",X"FF",X"27",X"0D",X"D1",X"FC",X"24",X"18",X"92",X"FB",X"FF",X"28",X"0A", + X"D1",X"FE",X"21",X"11",X"92",X"FC",X"FF",X"01",X"6C",X"0E",X"6C",X"17",X"6C",X"0E",X"6C",X"2D", + X"6C",X"3A",X"6C",X"24",X"6C",X"47",X"6C",X"54",X"6C",X"77",X"6C",X"84",X"6C",X"61",X"6C",X"6A", + X"6C",X"25",X"30",X"06",X"BE",X"25",X"10",X"06",X"C0",X"2A",X"10",X"46",X"58",X"FF",X"25",X"30", + X"06",X"BA",X"25",X"10",X"06",X"BC",X"FF",X"25",X"30",X"06",X"D0",X"25",X"10",X"06",X"D2",X"2B", + X"10",X"46",X"5A",X"FF",X"27",X"10",X"46",X"A0",X"2D",X"3E",X"47",X"05",X"FF",X"20",X"29",X"46", + X"06",X"26",X"0C",X"46",X"AC",X"30",X"0C",X"47",X"07",X"FF",X"20",X"10",X"46",X"D0",X"2A",X"2D", + X"47",X"0C",X"30",X"10",X"46",X"D4",X"FF",X"17",X"25",X"46",X"5C",X"27",X"0E",X"46",X"B0",X"37", + X"10",X"46",X"5E",X"FF",X"17",X"0A",X"46",X"B4",X"27",X"0A",X"46",X"B8",X"37",X"0A",X"46",X"60", + X"FF",X"27",X"10",X"46",X"BC",X"27",X"48",X"47",X"08",X"FF",X"26",X"10",X"46",X"C0",X"36",X"37", + X"46",X"09",X"36",X"10",X"46",X"0A",X"FF",X"17",X"30",X"46",X"0B",X"17",X"10",X"46",X"62",X"27", + X"10",X"46",X"C4",X"FF",X"1F",X"10",X"46",X"C8",X"2F",X"10",X"46",X"CC",X"FF",X"C5",X"6C",X"D6", + X"6C",X"E7",X"6C",X"D6",X"6C",X"26",X"6D",X"50",X"6D",X"93",X"6D",X"50",X"6D",X"26",X"6D",X"0D", + X"6D",X"3B",X"6D",X"7E",X"6D",X"3B",X"6D",X"0D",X"6D",X"F8",X"6C",X"3B",X"6D",X"65",X"6D",X"3B", + X"6D",X"F8",X"6C",X"DA",X"6D",X"C5",X"6D",X"AC",X"6D",X"0C",X"6E",X"F3",X"6D",X"25",X"6E",X"36", + X"6E",X"43",X"6E",X"58",X"6E",X"20",X"10",X"48",X"64",X"30",X"10",X"49",X"66",X"24",X"30",X"49", + X"68",X"34",X"30",X"49",X"0D",X"FF",X"26",X"10",X"48",X"0E",X"26",X"20",X"49",X"6A",X"26",X"40", + X"49",X"0F",X"36",X"28",X"49",X"10",X"FF",X"20",X"10",X"49",X"6C",X"27",X"30",X"49",X"6E",X"30", + X"10",X"48",X"70",X"38",X"29",X"49",X"10",X"FF",X"21",X"10",X"48",X"72",X"31",X"10",X"48",X"74", + X"18",X"2D",X"49",X"76",X"28",X"20",X"49",X"D8",X"18",X"4C",X"48",X"11",X"FF",X"25",X"40",X"49", + X"0F",X"08",X"30",X"49",X"78",X"18",X"36",X"49",X"12",X"21",X"10",X"48",X"72",X"30",X"10",X"48", + X"74",X"28",X"2B",X"49",X"7A",X"FF",X"20",X"10",X"48",X"25",X"30",X"10",X"49",X"26",X"14",X"28", + X"09",X"FC",X"1A",X"20",X"49",X"27",X"2A",X"20",X"49",X"7C",X"FF",X"29",X"3C",X"49",X"0F",X"1D", + X"10",X"48",X"7E",X"2D",X"10",X"08",X"DA",X"1D",X"40",X"49",X"13",X"25",X"2A",X"09",X"DC",X"FF", + X"2B",X"2B",X"49",X"0F",X"1C",X"10",X"48",X"14",X"2C",X"10",X"49",X"15",X"1C",X"2C",X"49",X"16", + X"28",X"20",X"09",X"DE",X"FF",X"27",X"40",X"49",X"0F",X"23",X"10",X"08",X"E0",X"33",X"10",X"09", + X"E2",X"25",X"30",X"09",X"E4",X"35",X"38",X"49",X"17",X"45",X"38",X"49",X"18",X"FF",X"1C",X"08", + X"08",X"E6",X"1C",X"28",X"49",X"19",X"2C",X"10",X"49",X"DC",X"3C",X"30",X"49",X"1A",X"4B",X"30", + X"49",X"1B",X"FF",X"2A",X"2B",X"49",X"0F",X"1F",X"10",X"48",X"1C",X"2F",X"10",X"09",X"E8",X"26", + X"20",X"49",X"1D",X"3E",X"20",X"49",X"1E",X"4E",X"20",X"49",X"1F",X"FF",X"18",X"38",X"09",X"EA", + X"18",X"30",X"48",X"20",X"25",X"10",X"08",X"EC",X"28",X"28",X"09",X"EE",X"28",X"48",X"49",X"21", + X"2B",X"3C",X"47",X"0C",X"FF",X"0F",X"48",X"09",X"F0",X"17",X"38",X"49",X"22",X"27",X"10",X"08", + X"F2",X"27",X"2E",X"09",X"F4",X"2D",X"2B",X"47",X"07",X"FF",X"12",X"3F",X"09",X"F6",X"16",X"38", + X"49",X"23",X"26",X"30",X"09",X"F8",X"28",X"28",X"49",X"24",X"25",X"10",X"08",X"FA",X"2C",X"0E", + X"47",X"0C",X"FF",X"20",X"10",X"48",X"25",X"30",X"10",X"49",X"26",X"14",X"28",X"09",X"FC",X"1A", + X"20",X"49",X"27",X"28",X"20",X"09",X"FE",X"2D",X"2B",X"47",X"0C",X"FF",X"20",X"10",X"48",X"25", + X"30",X"10",X"49",X"26",X"14",X"28",X"09",X"FC",X"1A",X"20",X"49",X"27",X"2A",X"20",X"09",X"60", + X"33",X"0D",X"47",X"0C",X"FF",X"26",X"10",X"09",X"62",X"30",X"18",X"09",X"64",X"20",X"30",X"08", + X"66",X"2C",X"38",X"09",X"68",X"FF",X"17",X"28",X"09",X"6A",X"1F",X"18",X"49",X"E0",X"2F",X"10", + X"49",X"E4",X"FF",X"20",X"11",X"08",X"6C",X"1F",X"31",X"49",X"28",X"22",X"41",X"49",X"29",X"2F", + X"15",X"09",X"6E",X"2F",X"35",X"49",X"2A",X"FF",X"17",X"22",X"09",X"6A",X"1F",X"12",X"49",X"E0", + X"2F",X"0A",X"49",X"E4",X"FF",X"7D",X"6E",X"92",X"6E",X"A3",X"6E",X"92",X"6E",X"B8",X"6E",X"CD", + X"6E",X"7D",X"6E",X"EA",X"6E",X"FF",X"6E",X"7D",X"6E",X"18",X"6F",X"31",X"6F",X"28",X"48",X"8E", + X"20",X"29",X"30",X"8F",X"22",X"2B",X"38",X"8E",X"01",X"21",X"10",X"8F",X"24",X"31",X"10",X"8F", + X"26",X"FF",X"28",X"48",X"8E",X"28",X"28",X"30",X"90",X"2A",X"28",X"10",X"8F",X"2C",X"18",X"10", + X"8F",X"02",X"FF",X"28",X"48",X"8E",X"2E",X"28",X"38",X"8E",X"03",X"2B",X"30",X"8F",X"04",X"21", + X"10",X"8F",X"30",X"31",X"10",X"8F",X"32",X"FF",X"2C",X"40",X"8E",X"34",X"26",X"30",X"8E",X"36", + X"28",X"30",X"8F",X"05",X"1D",X"10",X"8F",X"38",X"2D",X"10",X"8F",X"3A",X"FF",X"2B",X"50",X"8E", + X"06",X"23",X"30",X"8E",X"3C",X"32",X"40",X"8E",X"07",X"3F",X"40",X"8E",X"08",X"29",X"30",X"8F", + X"0A",X"1B",X"10",X"8F",X"3E",X"2B",X"10",X"8F",X"40",X"FF",X"29",X"40",X"8E",X"42",X"24",X"30", + X"8E",X"44",X"27",X"30",X"8F",X"09",X"1C",X"10",X"8F",X"46",X"2C",X"10",X"8F",X"48",X"FF",X"29", + X"40",X"8E",X"4A",X"23",X"30",X"8E",X"4C",X"21",X"10",X"8F",X"4E",X"29",X"20",X"8F",X"50",X"39", + X"30",X"8F",X"0B",X"49",X"31",X"8F",X"0C",X"FF",X"2B",X"45",X"8E",X"52",X"23",X"33",X"90",X"54", + X"2C",X"2E",X"90",X"56",X"25",X"2D",X"8F",X"0D",X"2C",X"0E",X"8F",X"58",X"3C",X"15",X"8F",X"5A", + X"FF",X"2B",X"3C",X"8E",X"5C",X"29",X"1D",X"8F",X"5E",X"1B",X"1C",X"4E",X"A6",X"39",X"0C",X"4F", + X"AA",X"47",X"1C",X"8F",X"80",X"2B",X"4C",X"8F",X"0F",X"29",X"2D",X"8E",X"0E",X"FF",X"68",X"6F", + X"7D",X"6F",X"92",X"6F",X"7D",X"6F",X"FB",X"6F",X"0C",X"70",X"EE",X"6F",X"1D",X"70",X"32",X"70", + X"C0",X"6F",X"D9",X"6F",X"92",X"6F",X"AB",X"6F",X"1D",X"48",X"83",X"E8",X"28",X"40",X"87",X"15", + X"21",X"10",X"53",X"9C",X"31",X"20",X"93",X"9A",X"31",X"10",X"94",X"9C",X"FF",X"1D",X"48",X"83", + X"E8",X"28",X"40",X"87",X"15",X"1F",X"30",X"93",X"9E",X"2F",X"20",X"93",X"A0",X"27",X"10",X"94", + X"A2",X"FF",X"1D",X"48",X"83",X"E8",X"28",X"40",X"87",X"15",X"21",X"30",X"93",X"A4",X"31",X"20", + X"93",X"A6",X"26",X"10",X"94",X"A8",X"36",X"10",X"94",X"16",X"FF",X"29",X"3F",X"87",X"15",X"24", + X"30",X"93",X"18",X"33",X"31",X"93",X"17",X"24",X"10",X"94",X"AA",X"34",X"10",X"94",X"AC",X"FF", + X"13",X"28",X"83",X"E9",X"2A",X"37",X"87",X"15",X"20",X"29",X"93",X"19",X"30",X"19",X"93",X"AE", + X"25",X"10",X"94",X"B0",X"35",X"10",X"94",X"1A",X"FF",X"2A",X"37",X"87",X"15",X"24",X"28",X"93", + X"1B",X"34",X"18",X"93",X"B2",X"23",X"10",X"94",X"B4",X"33",X"10",X"94",X"B6",X"FF",X"28",X"2B", + X"93",X"B8",X"28",X"28",X"93",X"1C",X"28",X"10",X"94",X"BA",X"FF",X"28",X"3E",X"87",X"1D",X"24", + X"1E",X"93",X"BC",X"28",X"10",X"94",X"BE",X"31",X"0B",X"93",X"1E",X"FF",X"2B",X"3B",X"87",X"1F", + X"21",X"28",X"93",X"C0",X"31",X"2B",X"93",X"C2",X"24",X"10",X"94",X"C4",X"FF",X"26",X"35",X"87", + X"E0",X"20",X"19",X"93",X"C6",X"30",X"29",X"93",X"E1",X"2B",X"13",X"94",X"C8",X"3B",X"10",X"94", + X"CA",X"FF",X"18",X"2A",X"87",X"E2",X"20",X"14",X"93",X"CC",X"2C",X"31",X"93",X"CE",X"2C",X"13", + X"94",X"D0",X"3C",X"10",X"94",X"D2",X"FF",X"BB",X"70",X"AA",X"70",X"95",X"70",X"AA",X"70",X"D0", + X"70",X"E9",X"70",X"02",X"71",X"1B",X"71",X"BB",X"71",X"D0",X"71",X"E5",X"71",X"8B",X"71",X"70", + X"71",X"79",X"71",X"82",X"71",X"0D",X"75",X"12",X"75",X"1B",X"75",X"2D",X"75",X"82",X"71",X"79", + X"71",X"70",X"71",X"8B",X"71",X"94",X"71",X"A1",X"71",X"AE",X"71",X"34",X"71",X"49",X"71",X"56", + X"71",X"63",X"71",X"0D",X"75",X"12",X"75",X"1B",X"75",X"2D",X"75",X"63",X"71",X"56",X"71",X"49", + X"71",X"34",X"71",X"BE",X"66",X"26",X"38",X"D6",X"00",X"1E",X"20",X"D7",X"20",X"2E",X"20",X"D7", + X"22",X"1E",X"10",X"D6",X"02",X"2E",X"10",X"D6",X"03",X"FF",X"26",X"38",X"D6",X"00",X"1D",X"20", + X"D7",X"24",X"2D",X"20",X"D7",X"26",X"21",X"10",X"D6",X"01",X"FF",X"26",X"38",X"D6",X"00",X"1E", + X"20",X"D7",X"20",X"2E",X"20",X"D7",X"22",X"1E",X"10",X"D6",X"28",X"2E",X"10",X"D6",X"2A",X"FF", + X"2C",X"38",X"D6",X"00",X"24",X"20",X"D7",X"2C",X"2B",X"30",X"D6",X"2E",X"34",X"20",X"D6",X"05", + X"1C",X"10",X"D6",X"0A",X"2C",X"10",X"D6",X"07",X"FF",X"2E",X"38",X"D6",X"00",X"23",X"20",X"D7", + X"30",X"2F",X"20",X"D7",X"32",X"3F",X"30",X"D6",X"09",X"1C",X"10",X"D6",X"0A",X"2C",X"10",X"D6", + X"07",X"FF",X"2E",X"38",X"D6",X"00",X"23",X"20",X"D7",X"30",X"2F",X"20",X"D7",X"34",X"3F",X"28", + X"D6",X"09",X"1C",X"10",X"D6",X"0A",X"2C",X"10",X"D6",X"07",X"FF",X"2E",X"38",X"D6",X"00",X"23", + X"20",X"D7",X"30",X"2F",X"20",X"D7",X"36",X"3F",X"20",X"D6",X"0C",X"1C",X"10",X"D6",X"0A",X"2C", + X"10",X"D6",X"07",X"FF",X"28",X"38",X"D6",X"00",X"22",X"20",X"D7",X"38",X"2E",X"32",X"D6",X"14", + X"2E",X"22",X"D7",X"15",X"26",X"10",X"D6",X"13",X"FF",X"1E",X"28",X"D8",X"3A",X"2E",X"28",X"D8", + X"3C",X"24",X"10",X"D8",X"3E",X"FF",X"1E",X"28",X"D8",X"40",X"2E",X"28",X"D8",X"42",X"24",X"10", + X"D8",X"44",X"FF",X"1E",X"28",X"D8",X"46",X"2E",X"28",X"D8",X"48",X"24",X"10",X"D8",X"4A",X"FF", + X"22",X"30",X"D8",X"16",X"22",X"10",X"D8",X"4C",X"FF",X"22",X"30",X"D8",X"17",X"22",X"10",X"D8", + X"4E",X"FF",X"22",X"30",X"D8",X"18",X"22",X"10",X"D8",X"50",X"FF",X"22",X"20",X"D7",X"52",X"22", + X"10",X"D6",X"19",X"FF",X"25",X"31",X"D6",X"1A",X"22",X"20",X"D7",X"52",X"22",X"10",X"D6",X"19", + X"FF",X"27",X"34",X"D6",X"00",X"22",X"20",X"D7",X"52",X"22",X"10",X"D6",X"19",X"FF",X"28",X"38", + X"D6",X"00",X"22",X"20",X"D7",X"52",X"22",X"10",X"D6",X"19",X"FF",X"27",X"38",X"D6",X"1B",X"23", + X"20",X"D7",X"54",X"33",X"20",X"D7",X"1C",X"29",X"10",X"D6",X"1D",X"2A",X"27",X"D8",X"1E",X"FF", + X"23",X"30",X"D6",X"1F",X"1C",X"18",X"D7",X"56",X"29",X"15",X"D7",X"58",X"39",X"10",X"D6",X"5A", + X"39",X"28",X"D6",X"60",X"FF",X"1E",X"27",X"D6",X"61",X"20",X"16",X"D7",X"5C",X"30",X"13",X"D7", + X"5E",X"3E",X"10",X"D6",X"80",X"2E",X"30",X"D6",X"62",X"FF",X"38",X"72",X"4D",X"72",X"5A",X"72", + X"4D",X"72",X"6B",X"72",X"80",X"72",X"6B",X"72",X"C3",X"72",X"D8",X"72",X"C3",X"72",X"6B",X"72", + X"6B",X"72",X"95",X"72",X"AA",X"72",X"95",X"72",X"6B",X"72",X"ED",X"72",X"FE",X"72",X"13",X"73", + X"FE",X"72",X"ED",X"72",X"46",X"73",X"57",X"73",X"2C",X"73",X"39",X"73",X"8A",X"73",X"68",X"73", + X"75",X"73",X"9B",X"73",X"AC",X"73",X"BD",X"73",X"26",X"47",X"D9",X"68",X"24",X"30",X"D9",X"82", + X"2C",X"27",X"D9",X"69",X"20",X"10",X"DA",X"84",X"30",X"10",X"DA",X"86",X"FF",X"26",X"48",X"D9", + X"04",X"26",X"28",X"D9",X"88",X"26",X"10",X"DA",X"8A",X"FF",X"26",X"47",X"D9",X"04",X"26",X"27", + X"D9",X"8C",X"1D",X"10",X"DA",X"8E",X"2D",X"10",X"DA",X"90",X"FF",X"25",X"45",X"D9",X"06",X"24", + X"26",X"D9",X"92",X"34",X"30",X"D9",X"94",X"21",X"10",X"DA",X"96",X"31",X"10",X"DA",X"98",X"FF", + X"25",X"47",X"D9",X"06",X"24",X"28",X"D9",X"9A",X"24",X"10",X"DA",X"9E",X"34",X"10",X"DA",X"0B", + X"34",X"3A",X"D9",X"9C",X"FF",X"23",X"47",X"D9",X"04",X"22",X"27",X"D9",X"A0",X"32",X"36",X"D9", + X"67",X"1C",X"10",X"DA",X"A2",X"2C",X"1E",X"DA",X"A4",X"FF",X"1D",X"48",X"D9",X"06",X"1C",X"28", + X"D9",X"A6",X"2C",X"28",X"D9",X"A8",X"3A",X"3C",X"DA",X"6A",X"4A",X"3C",X"DA",X"6B",X"1F",X"10", + X"DA",X"AA",X"FF",X"25",X"46",X"D9",X"04",X"24",X"26",X"D9",X"AC",X"34",X"38",X"D9",X"6C",X"25", + X"10",X"DA",X"AE",X"35",X"10",X"DA",X"6D",X"FF",X"28",X"47",X"D9",X"04",X"26",X"27",X"D9",X"B0", + X"36",X"38",X"D9",X"6E",X"21",X"10",X"DA",X"B2",X"31",X"10",X"DA",X"B4",X"FF",X"1C",X"20",X"D9", + X"B6",X"2C",X"20",X"D9",X"B8",X"1C",X"10",X"DA",X"6F",X"2C",X"10",X"DA",X"70",X"FF",X"2A",X"30", + X"D9",X"71",X"20",X"1C",X"D9",X"BA",X"30",X"1A",X"D9",X"BC",X"1F",X"10",X"DA",X"72",X"33",X"10", + X"DA",X"73",X"FF",X"25",X"2C",X"D9",X"74",X"1F",X"10",X"D9",X"BE",X"2F",X"10",X"D9",X"C0",X"1D", + X"10",X"DA",X"75",X"3D",X"10",X"DA",X"76",X"4D",X"10",X"DA",X"6D",X"FF",X"29",X"50",X"D9",X"68", + X"25",X"30",X"D9",X"C2",X"25",X"10",X"DA",X"C4",X"FF",X"28",X"44",X"D9",X"77",X"22",X"24",X"D9", + X"C6",X"24",X"14",X"DA",X"C8",X"FF",X"26",X"30",X"D9",X"CA",X"2D",X"33",X"D9",X"CC",X"1F",X"10", + X"DA",X"CE",X"2F",X"10",X"DA",X"D0",X"FF",X"26",X"31",X"D9",X"D2",X"25",X"28",X"D9",X"78",X"1D", + X"10",X"DA",X"79",X"27",X"10",X"DA",X"D4",X"FF",X"29",X"30",X"D9",X"D6",X"19",X"27",X"D9",X"D8", + X"26",X"10",X"DA",X"DA",X"FF",X"23",X"33",X"D9",X"DC",X"23",X"23",X"D9",X"7A",X"27",X"10",X"DA", + X"DE",X"37",X"10",X"DA",X"7C",X"33",X"3E",X"DA",X"7B",X"FF",X"2B",X"30",X"D9",X"E0",X"20",X"28", + X"D9",X"E2",X"25",X"10",X"DA",X"E4",X"31",X"0C",X"DA",X"7D",X"FF",X"28",X"29",X"D9",X"E6",X"23", + X"23",X"D9",X"E8",X"2E",X"10",X"DA",X"EA",X"3E",X"10",X"DA",X"7E",X"FF",X"1D",X"1B",X"D9",X"EC", + X"18",X"10",X"D9",X"7F",X"28",X"10",X"D9",X"EE",X"38",X"11",X"DA",X"F0",X"FF",X"24",X"3A",X"99", + X"66",X"22",X"28",X"99",X"68",X"26",X"0F",X"9A",X"6A",X"32",X"2F",X"9A",X"6E",X"42",X"2F",X"9A", + X"70",X"FF",X"DC",X"73",X"E1",X"73",X"E6",X"73",X"EB",X"73",X"DC",X"73",X"28",X"10",X"D6",X"63", + X"FF",X"28",X"10",X"D6",X"64",X"FF",X"28",X"10",X"D6",X"65",X"FF",X"28",X"10",X"D6",X"66",X"FF", + X"00",X"74",X"0D",X"74",X"1A",X"74",X"0D",X"74",X"27",X"74",X"38",X"74",X"4D",X"74",X"7F",X"74", + X"28",X"3B",X"1B",X"39",X"27",X"2B",X"1C",X"3A",X"28",X"10",X"9C",X"60",X"FF",X"28",X"3C",X"1B", + X"39",X"28",X"2C",X"9C",X"FA",X"28",X"10",X"9C",X"62",X"FF",X"28",X"3C",X"9B",X"FD",X"29",X"2C", + X"9C",X"FE",X"27",X"10",X"9C",X"64",X"FF",X"1F",X"32",X"1B",X"2F",X"1E",X"1A",X"1C",X"5E",X"25", + X"0E",X"9C",X"DC",X"1E",X"26",X"1D",X"20",X"FF",X"23",X"32",X"1B",X"38",X"1F",X"1A",X"9C",X"DE", + X"25",X"0E",X"1C",X"5A",X"23",X"2E",X"9D",X"F9",X"1C",X"23",X"1D",X"1E",X"FF",X"23",X"32",X"1B", + X"38",X"1F",X"1A",X"9C",X"DE",X"25",X"0E",X"1C",X"5A",X"17",X"20",X"1D",X"0C",X"27",X"20",X"1D", + X"18",X"29",X"2B",X"9D",X"FF",X"FF",X"23",X"38",X"1B",X"23",X"25",X"30",X"1C",X"30",X"1E",X"10", + X"9C",X"74",X"25",X"40",X"80",X"76",X"25",X"30",X"81",X"78",X"2B",X"10",X"82",X"7A",X"FF",X"28", + X"04",X"9D",X"6C",X"FF",X"2B",X"0A",X"47",X"0C",X"FF",X"2B",X"0A",X"4B",X"0C",X"FF",X"CC",X"74", + X"D1",X"74",X"D6",X"74",X"DB",X"74",X"CC",X"74",X"E0",X"74",X"E9",X"74",X"F2",X"74",X"FF",X"74", + X"04",X"75",X"61",X"75",X"6A",X"75",X"73",X"75",X"0D",X"75",X"12",X"75",X"1B",X"75",X"20",X"75", + X"43",X"75",X"4C",X"75",X"43",X"75",X"78",X"75",X"7D",X"75",X"32",X"75",X"20",X"75",X"2D",X"75", + X"82",X"75",X"87",X"75",X"8C",X"75",X"91",X"75",X"96",X"75",X"9B",X"75",X"28",X"10",X"0A",X"70", + X"FF",X"28",X"10",X"4D",X"35",X"FF",X"28",X"10",X"4B",X"3A",X"FF",X"28",X"10",X"4B",X"3C",X"FF", + X"20",X"10",X"4A",X"2C",X"30",X"10",X"4A",X"2D",X"FF",X"20",X"10",X"4A",X"2E",X"30",X"10",X"4A", + X"2F",X"FF",X"28",X"10",X"4B",X"32",X"20",X"10",X"4A",X"30",X"30",X"10",X"4A",X"31",X"FF",X"28", + X"10",X"4B",X"32",X"FF",X"21",X"10",X"4B",X"33",X"31",X"10",X"4B",X"34",X"FF",X"28",X"10",X"0C", + X"72",X"FF",X"28",X"10",X"0C",X"74",X"28",X"30",X"4C",X"36",X"FF",X"28",X"10",X"4C",X"EC",X"FF", + X"26",X"17",X"4C",X"F0",X"36",X"2F",X"0C",X"76",X"28",X"0F",X"4C",X"E8",X"FF",X"28",X"0F",X"4C", + X"E8",X"FF",X"26",X"17",X"4C",X"F0",X"36",X"2F",X"0C",X"76",X"21",X"35",X"0C",X"78",X"31",X"35", + X"0C",X"7A",X"FF",X"26",X"17",X"4C",X"F0",X"36",X"2F",X"0C",X"76",X"FF",X"26",X"17",X"4C",X"F0", + X"36",X"2F",X"0C",X"76",X"38",X"3F",X"4C",X"37",X"48",X"3F",X"4C",X"38",X"58",X"3F",X"4C",X"39", + X"FF",X"20",X"08",X"0C",X"78",X"30",X"08",X"0C",X"7A",X"FF",X"20",X"08",X"0C",X"7C",X"30",X"08", + X"0C",X"7E",X"FF",X"28",X"08",X"0C",X"40",X"FF",X"2B",X"0D",X"4B",X"3B",X"FF",X"2B",X"0D",X"4B", + X"3D",X"FF",X"2C",X"0E",X"D8",X"0D",X"FF",X"2C",X"0E",X"D8",X"0E",X"FF",X"2C",X"0D",X"D8",X"0F", + X"FF",X"2C",X"0D",X"D8",X"10",X"FF",X"28",X"10",X"D8",X"11",X"FF",X"28",X"10",X"D8",X"12",X"FF", + X"24",X"09",X"01",X"01",X"FF",X"B1",X"75",X"B6",X"75",X"BB",X"75",X"B6",X"75",X"B1",X"75",X"BB", + X"75",X"28",X"10",X"83",X"E3",X"FF",X"28",X"10",X"83",X"E4",X"FF",X"28",X"10",X"83",X"E5",X"FF", + X"D4",X"75",X"D9",X"75",X"DE",X"75",X"E3",X"75",X"E8",X"75",X"ED",X"75",X"F2",X"75",X"61",X"75", + X"6A",X"75",X"73",X"75",X"28",X"10",X"95",X"D4",X"FF",X"28",X"10",X"95",X"E6",X"FF",X"28",X"10", + X"95",X"D6",X"FF",X"28",X"10",X"95",X"D8",X"FF",X"28",X"03",X"95",X"D6",X"FF",X"28",X"03",X"95", + X"D8",X"FF",X"28",X"10",X"95",X"E7",X"FF",X"11",X"76",X"16",X"76",X"1B",X"76",X"20",X"76",X"25", + X"76",X"2A",X"76",X"2F",X"76",X"34",X"76",X"3D",X"76",X"46",X"76",X"4F",X"76",X"58",X"76",X"61", + X"76",X"28",X"10",X"8C",X"F0",X"FF",X"28",X"10",X"8C",X"F1",X"FF",X"27",X"10",X"8C",X"F2",X"FF", + X"28",X"10",X"8C",X"F3",X"FF",X"28",X"10",X"8C",X"F4",X"FF",X"28",X"10",X"8C",X"F5",X"FF",X"28", + X"10",X"8C",X"F6",X"FF",X"24",X"10",X"8C",X"F8",X"2A",X"10",X"8C",X"F7",X"FF",X"25",X"10",X"8C", + X"F0",X"2A",X"10",X"8C",X"F7",X"FF",X"25",X"10",X"8C",X"F1",X"2A",X"10",X"8C",X"F7",X"FF",X"25", + X"10",X"8C",X"F3",X"2A",X"10",X"8C",X"F7",X"FF",X"21",X"10",X"8C",X"F8",X"2C",X"10",X"8C",X"F7", + X"FF",X"28",X"10",X"8C",X"F8",X"FF",X"3E",X"FF",X"32",X"00",X"E0",X"FB",X"CD",X"0D",X"57",X"CD", + X"57",X"11",X"F3",X"DD",X"21",X"00",X"00",X"06",X"00",X"3E",X"00",X"5F",X"16",X"0D",X"0E",X"10", + X"21",X"00",X"E0",X"77",X"23",X"3C",X"15",X"20",X"03",X"16",X"0D",X"3C",X"10",X"F5",X"0D",X"20", + X"F2",X"7B",X"21",X"00",X"E0",X"16",X"0D",X"0E",X"10",X"BE",X"C2",X"F6",X"77",X"23",X"3C",X"15", + X"20",X"03",X"16",X"0D",X"3C",X"10",X"F2",X"0D",X"20",X"EF",X"7B",X"3C",X"FE",X"14",X"20",X"CB", + X"3E",X"00",X"5F",X"16",X"0D",X"0E",X"10",X"21",X"00",X"D0",X"77",X"23",X"3C",X"15",X"20",X"03", + X"16",X"0D",X"3C",X"10",X"F5",X"0D",X"20",X"F2",X"7B",X"21",X"00",X"D0",X"16",X"0D",X"0E",X"10", + X"BE",X"C2",X"BD",X"77",X"23",X"3C",X"15",X"20",X"03",X"16",X"0D",X"3C",X"10",X"F2",X"0D",X"20", + X"EF",X"7B",X"3C",X"FE",X"14",X"20",X"CB",X"CD",X"57",X"11",X"21",X"00",X"E0",X"11",X"01",X"E0", + X"01",X"FF",X"0F",X"36",X"00",X"ED",X"B0",X"21",X"25",X"EB",X"22",X"03",X"EB",X"3E",X"FF",X"32", + X"00",X"E0",X"11",X"00",X"00",X"CD",X"10",X"7C",X"ED",X"4B",X"6A",X"00",X"AF",X"ED",X"42",X"28", + X"01",X"3C",X"CD",X"10",X"7C",X"ED",X"4B",X"6C",X"00",X"ED",X"42",X"28",X"02",X"CB",X"CF",X"F5", + X"47",X"0E",X"14",X"11",X"D5",X"D1",X"3E",X"31",X"CD",X"F7",X"7B",X"11",X"55",X"D2",X"3E",X"32", + X"CD",X"F7",X"7B",X"DD",X"E5",X"E1",X"7D",X"B4",X"11",X"55",X"D1",X"21",X"89",X"78",X"20",X"03", + X"21",X"91",X"78",X"CD",X"1C",X"11",X"FB",X"3E",X"70",X"CD",X"0F",X"57",X"78",X"A7",X"C4",X"E8", + X"7B",X"CD",X"57",X"11",X"21",X"F7",X"7C",X"CD",X"1C",X"11",X"AF",X"32",X"82",X"E8",X"3A",X"1D", + X"E8",X"32",X"1D",X"E8",X"0E",X"00",X"CD",X"D7",X"7B",X"3A",X"06",X"E9",X"E6",X"03",X"21",X"82", + X"E8",X"28",X"25",X"47",X"7E",X"A7",X"20",X"22",X"36",X"10",X"0E",X"14",X"3A",X"1D",X"E8",X"F5", + X"CD",X"D7",X"7B",X"F1",X"CB",X"48",X"20",X"08",X"3D",X"F2",X"61",X"77",X"3E",X"05",X"18",X"D1", + X"3C",X"FE",X"06",X"38",X"CC",X"AF",X"18",X"C9",X"36",X"00",X"3A",X"04",X"E9",X"CB",X"47",X"28", + X"C8",X"CD",X"57",X"11",X"21",X"51",X"77",X"E5",X"3A",X"1D",X"E8",X"21",X"B1",X"77",X"C3",X"26", + X"1F",X"99",X"78",X"3E",X"79",X"BA",X"79",X"8B",X"7A",X"10",X"7B",X"78",X"7B",X"08",X"D9",X"11", + X"00",X"E0",X"21",X"55",X"D1",X"01",X"20",X"00",X"ED",X"B0",X"11",X"20",X"E0",X"21",X"55",X"D9", + X"01",X"20",X"00",X"ED",X"B0",X"DD",X"21",X"DB",X"77",X"18",X"21",X"D9",X"21",X"00",X"E0",X"11", + X"55",X"D1",X"01",X"20",X"00",X"ED",X"B0",X"21",X"20",X"E0",X"11",X"55",X"D9",X"01",X"20",X"00", + X"ED",X"B0",X"D9",X"C3",X"D4",X"76",X"DD",X"21",X"9D",X"76",X"08",X"D9",X"21",X"55",X"D1",X"11", + X"89",X"78",X"06",X"07",X"1A",X"13",X"FD",X"21",X"0C",X"78",X"18",X"73",X"10",X"F6",X"3E",X"3A", + X"FD",X"21",X"16",X"78",X"18",X"69",X"D9",X"7C",X"D9",X"FD",X"21",X"1F",X"78",X"18",X"42",X"D9", + X"7D",X"D9",X"FD",X"21",X"28",X"78",X"18",X"39",X"3E",X"3A",X"FD",X"21",X"30",X"78",X"18",X"4F", + X"08",X"5F",X"08",X"7B",X"FD",X"21",X"3A",X"78",X"18",X"27",X"23",X"D9",X"7E",X"D9",X"FD",X"21", + X"44",X"78",X"18",X"1D",X"DB",X"00",X"CB",X"47",X"CA",X"E7",X"76",X"CB",X"4F",X"20",X"F5",X"01", + X"00",X"10",X"0B",X"79",X"B0",X"20",X"FB",X"DB",X"00",X"CB",X"4F",X"28",X"FA",X"D9",X"08",X"DD", + X"E9",X"5F",X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"C6",X"90",X"27",X"CE",X"40",X"27",X"77",X"CB", + X"DC",X"36",X"14",X"CB",X"9C",X"23",X"7B",X"E6",X"0F",X"C6",X"90",X"27",X"CE",X"40",X"27",X"77", + X"CB",X"DC",X"36",X"14",X"CB",X"9C",X"23",X"FD",X"E9",X"52",X"41",X"4D",X"20",X"20",X"4E",X"47", + X"FF",X"52",X"41",X"4D",X"20",X"20",X"4F",X"4B",X"FF",X"21",X"30",X"7C",X"CD",X"1C",X"11",X"CD", + X"C1",X"7B",X"CD",X"1C",X"11",X"11",X"99",X"D1",X"DB",X"03",X"CD",X"B2",X"7B",X"11",X"D9",X"D1", + X"DB",X"04",X"CD",X"B2",X"7B",X"DB",X"04",X"CB",X"4F",X"21",X"96",X"7C",X"20",X"03",X"21",X"9E", + X"7C",X"11",X"5D",X"D3",X"CD",X"1C",X"11",X"DB",X"03",X"E6",X"01",X"21",X"A6",X"7C",X"20",X"03", + X"21",X"B0",X"7C",X"11",X"9E",X"D3",X"CD",X"1C",X"11",X"DB",X"03",X"E6",X"02",X"21",X"BA",X"7C", + X"20",X"03",X"21",X"BF",X"7C",X"11",X"DE",X"D3",X"CD",X"1C",X"11",X"CD",X"6F",X"05",X"11",X"1F", + X"D4",X"CD",X"08",X"11",X"CD",X"8F",X"05",X"41",X"11",X"9A",X"D2",X"2A",X"0A",X"E9",X"7D",X"A7", + X"28",X"28",X"BC",X"F5",X"3E",X"20",X"28",X"02",X"3E",X"41",X"CD",X"10",X"11",X"CD",X"F7",X"49", + X"F1",X"11",X"D0",X"D2",X"28",X"1D",X"E5",X"21",X"8C",X"7C",X"CD",X"1C",X"11",X"13",X"3E",X"42", + X"CD",X"10",X"11",X"E1",X"6C",X"CD",X"F7",X"49",X"18",X"0C",X"21",X"C4",X"7C",X"CD",X"1C",X"11", + X"11",X"D0",X"D2",X"CD",X"1A",X"57",X"DB",X"00",X"CB",X"4F",X"C2",X"A5",X"78",X"C9",X"01",X"14", + X"03",X"11",X"55",X"D4",X"C5",X"21",X"D8",X"7C",X"CD",X"1C",X"11",X"E5",X"13",X"78",X"CD",X"08", + X"11",X"CD",X"C1",X"7B",X"21",X"2C",X"00",X"19",X"EB",X"E1",X"CD",X"1C",X"11",X"21",X"B6",X"FE", + X"19",X"EB",X"C1",X"10",X"DF",X"21",X"EC",X"7C",X"CD",X"1C",X"11",X"21",X"99",X"99",X"22",X"03", + X"E0",X"3E",X"38",X"32",X"82",X"E8",X"21",X"03",X"E0",X"7E",X"C6",X"01",X"27",X"77",X"23",X"7E", + X"CE",X"00",X"27",X"77",X"11",X"62",X"D5",X"CD",X"FD",X"10",X"CD",X"FD",X"10",X"DB",X"00",X"11", + X"A2",X"D2",X"CD",X"B2",X"7B",X"DB",X"01",X"11",X"A2",X"D3",X"CD",X"B2",X"7B",X"DB",X"02",X"11", + X"A2",X"D4",X"CD",X"B2",X"7B",X"3A",X"82",X"E8",X"A7",X"28",X"C6",X"3A",X"04",X"E9",X"CB",X"4F", + X"28",X"DB",X"3A",X"06",X"E9",X"CB",X"4F",X"28",X"D4",X"C9",X"AF",X"32",X"82",X"E8",X"F5",X"21", + X"61",X"7A",X"5F",X"16",X"00",X"19",X"19",X"3A",X"04",X"E9",X"CB",X"47",X"20",X"F9",X"7E",X"32", + X"83",X"E8",X"32",X"1F",X"E8",X"23",X"3E",X"00",X"CD",X"FE",X"0D",X"7E",X"CD",X"FE",X"0D",X"21", + X"56",X"7D",X"CD",X"1C",X"11",X"F1",X"32",X"1E",X"E8",X"0E",X"00",X"CD",X"CE",X"7B",X"3A",X"06", + X"E9",X"E6",X"03",X"21",X"82",X"E8",X"28",X"2E",X"47",X"7E",X"A7",X"20",X"F1",X"3E",X"00",X"CD", + X"FE",X"0D",X"AF",X"32",X"1F",X"E8",X"36",X"10",X"0E",X"14",X"3A",X"1E",X"E8",X"F5",X"CD",X"CE", + X"7B",X"F1",X"CB",X"48",X"20",X"08",X"3D",X"F2",X"E6",X"79",X"3E",X"14",X"18",X"C8",X"3C",X"FE", + X"15",X"38",X"C3",X"AF",X"18",X"C0",X"36",X"00",X"3A",X"1F",X"E8",X"A7",X"28",X"12",X"47",X"3A", + X"83",X"E8",X"A7",X"28",X"11",X"3A",X"04",X"E9",X"E6",X"03",X"28",X"B2",X"CB",X"4F",X"20",X"1B", + X"3A",X"1E",X"E8",X"C3",X"BE",X"79",X"78",X"FE",X"BA",X"32",X"83",X"E8",X"3E",X"01",X"32",X"1F", + X"E8",X"30",X"9B",X"3A",X"1E",X"E8",X"3C",X"FE",X"15",X"38",X"E8",X"3E",X"00",X"CD",X"FE",X"0D", + X"C9",X"2D",X"01",X"2D",X"02",X"2D",X"03",X"B4",X"05",X"9E",X"04",X"2D",X"06",X"2D",X"07",X"2D", + X"10",X"2D",X"11",X"2D",X"12",X"2D",X"13",X"2D",X"14",X"2D",X"15",X"2D",X"16",X"BA",X"20",X"FF", + X"24",X"BA",X"22",X"FF",X"23",X"BA",X"21",X"2D",X"17",X"2D",X"18",X"CD",X"53",X"11",X"21",X"00", + X"E0",X"36",X"FE",X"3A",X"06",X"E9",X"E6",X"03",X"28",X"0A",X"CB",X"4F",X"28",X"04",X"36",X"FD", + X"18",X"02",X"36",X"FE",X"3A",X"04",X"E9",X"CB",X"4F",X"28",X"E8",X"36",X"FF",X"C9",X"0E",X"00", + X"3C",X"20",X"32",X"21",X"10",X"01",X"11",X"E0",X"00",X"3E",X"00",X"CD",X"DC",X"7A",X"21",X"10", + X"01",X"11",X"20",X"01",X"3E",X"40",X"CD",X"DC",X"7A",X"21",X"D0",X"00",X"11",X"E0",X"00",X"3E", + X"80",X"CD",X"DC",X"7A",X"21",X"D0",X"00",X"11",X"20",X"01",X"3E",X"C0",X"22",X"07",X"E8",X"21", + X"DE",X"75",X"C3",X"20",X"0E",X"21",X"C0",X"00",X"22",X"07",X"E8",X"11",X"D0",X"00",X"21",X"9B", + X"66",X"CD",X"0C",X"7B",X"11",X"F0",X"00",X"21",X"6A",X"6C",X"CD",X"0C",X"7B",X"11",X"10",X"01", + X"21",X"7D",X"6E",X"CD",X"0C",X"7B",X"11",X"30",X"01",X"21",X"6B",X"72",X"AF",X"C3",X"20",X"0E", + X"11",X"D0",X"D1",X"0E",X"14",X"3E",X"41",X"06",X"1A",X"CD",X"C7",X"7B",X"11",X"10",X"D2",X"3E", + X"30",X"06",X"0A",X"CD",X"C7",X"7B",X"CD",X"E8",X"7B",X"3E",X"04",X"11",X"04",X"00",X"CD",X"5B", + X"11",X"CD",X"E8",X"7B",X"1E",X"01",X"CD",X"5B",X"11",X"CD",X"E8",X"7B",X"1E",X"02",X"CD",X"5B", + X"11",X"CD",X"E8",X"7B",X"01",X"00",X"02",X"1E",X"06",X"CD",X"5E",X"11",X"01",X"00",X"04",X"1E", + X"00",X"CD",X"65",X"11",X"01",X"00",X"02",X"1E",X"07",X"CD",X"65",X"11",X"21",X"10",X"D4",X"0E", + X"08",X"3E",X"00",X"06",X"04",X"77",X"23",X"10",X"FC",X"3C",X"E6",X"07",X"20",X"F5",X"11",X"20", + X"00",X"19",X"0D",X"20",X"EC",X"C3",X"E8",X"7B",X"0E",X"00",X"11",X"10",X"D0",X"3E",X"0B",X"2E", + X"20",X"E5",X"06",X"10",X"CD",X"10",X"11",X"3D",X"CD",X"10",X"11",X"3C",X"10",X"F6",X"21",X"20", + X"00",X"19",X"EB",X"FE",X"0B",X"3E",X"0B",X"20",X"02",X"3E",X"09",X"E1",X"2D",X"20",X"E2",X"21", + X"DF",X"D3",X"36",X"0C",X"23",X"36",X"0D",X"21",X"1F",X"D4",X"36",X"0E",X"23",X"36",X"0F",X"C3", + X"E8",X"7B",X"2F",X"6F",X"06",X"08",X"AF",X"CB",X"0D",X"CB",X"17",X"CD",X"08",X"11",X"10",X"F6", + X"C9",X"13",X"13",X"3E",X"31",X"06",X"08",X"CD",X"10",X"11",X"3C",X"10",X"FA",X"C9",X"FE",X"06", + X"38",X"01",X"3C",X"A7",X"28",X"01",X"3C",X"6F",X"26",X"00",X"29",X"29",X"29",X"29",X"29",X"29", + X"11",X"50",X"D9",X"19",X"71",X"23",X"71",X"C9",X"3A",X"04",X"E9",X"CB",X"4F",X"28",X"F9",X"3A", + X"04",X"E9",X"CB",X"4F",X"20",X"F9",X"C9",X"F5",X"21",X"2C",X"7C",X"CD",X"1C",X"11",X"F1",X"CD", + X"10",X"11",X"13",X"21",X"29",X"7C",X"CB",X"08",X"38",X"03",X"21",X"26",X"7C",X"C3",X"1C",X"11", + X"F5",X"01",X"00",X"40",X"21",X"00",X"00",X"1A",X"85",X"6F",X"3E",X"00",X"8C",X"67",X"13",X"0B", + X"79",X"B0",X"20",X"F3",X"F1",X"C9",X"4F",X"4B",X"FF",X"4E",X"47",X"FF",X"52",X"4F",X"4D",X"FF", + X"FE",X"14",X"FD",X"50",X"D1",X"44",X"49",X"50",X"20",X"53",X"57",X"20",X"FF",X"FD",X"94",X"D1", + X"44",X"53",X"57",X"31",X"FD",X"D4",X"D1",X"44",X"53",X"57",X"32",X"FD",X"A3",X"D1",X"31",X"2E", + X"4F",X"4E",X"FD",X"E3",X"D1",X"30",X"2E",X"4F",X"46",X"46",X"FD",X"50",X"D3",X"42",X"4F",X"44", + X"59",X"20",X"54",X"59",X"50",X"45",X"FD",X"90",X"D3",X"44",X"49",X"46",X"46",X"49",X"43",X"55", + X"4C",X"54",X"59",X"FD",X"D0",X"D3",X"44",X"45",X"43",X"52",X"45",X"41",X"53",X"45",X"FD",X"10", + X"D4",X"46",X"49",X"47",X"48",X"54",X"45",X"52",X"53",X"FD",X"90",X"D2",X"43",X"4F",X"49",X"4E", + X"20",X"4D",X"4F",X"44",X"45",X"FF",X"54",X"41",X"42",X"4C",X"45",X"20",X"20",X"FF",X"55",X"50", + X"52",X"49",X"47",X"48",X"54",X"FF",X"45",X"41",X"53",X"59",X"20",X"20",X"20",X"20",X"20",X"FF", + X"44",X"49",X"46",X"46",X"49",X"43",X"55",X"4C",X"54",X"FF",X"53",X"4C",X"4F",X"57",X"FF",X"46", + X"41",X"53",X"54",X"FF",X"20",X"20",X"20",X"20",X"20",X"46",X"52",X"45",X"45",X"20",X"20",X"20", + X"50",X"4C",X"41",X"59",X"20",X"20",X"20",X"FF",X"49",X"4E",X"54",X"45",X"52",X"46",X"41",X"43", + X"45",X"FF",X"52",X"45",X"41",X"44",X"20",X"44",X"41",X"54",X"41",X"FF",X"FD",X"57",X"D5",X"54", + X"49",X"4D",X"4D",X"49",X"4E",X"47",X"FF",X"FE",X"14",X"FD",X"50",X"D1",X"30",X"31",X"20",X"44", + X"49",X"50",X"20",X"53",X"57",X"49",X"54",X"43",X"48",X"FD",X"90",X"D1",X"30",X"32",X"20",X"49", + X"2F",X"4F",X"20",X"50",X"4F",X"52",X"54",X"FD",X"D0",X"D1",X"30",X"33",X"20",X"53",X"4F",X"55", + X"4E",X"44",X"FD",X"10",X"D2",X"30",X"34",X"20",X"43",X"48",X"41",X"52",X"41",X"43",X"54",X"45", + X"52",X"FD",X"50",X"D2",X"30",X"35",X"20",X"43",X"4F",X"4C",X"4F",X"52",X"FD",X"90",X"D2",X"30", + X"36",X"20",X"43",X"52",X"4F",X"53",X"53",X"20",X"48",X"41",X"54",X"43",X"48",X"20",X"50",X"41", + X"54",X"54",X"45",X"52",X"4E",X"FF",X"FE",X"14",X"FD",X"15",X"D1",X"53",X"4F",X"55",X"4E",X"44", + X"FD",X"50",X"D1",X"30",X"31",X"20",X"59",X"45",X"4C",X"4C",X"20",X"4F",X"46",X"20",X"50",X"4C", + X"41",X"59",X"45",X"52",X"28",X"4A",X"55",X"4D",X"50",X"2D",X"4B",X"49",X"43",X"4B",X"53",X"29", + X"FD",X"93",X"D1",X"43",X"52",X"45",X"44",X"49",X"54",X"20",X"41",X"44",X"44",X"49",X"4E",X"47", + X"20",X"53",X"4F",X"55",X"4E",X"44",X"FD",X"D0",X"D1",X"30",X"32",X"20",X"59",X"45",X"4C",X"4C", + X"20",X"4F",X"46",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"28",X"50",X"55",X"4E",X"43",X"48", + X"45",X"53",X"2C",X"4B",X"49",X"43",X"4B",X"53",X"29",X"FD",X"10",X"D2",X"30",X"33",X"20",X"47", + X"52",X"4F",X"41",X"4E",X"20",X"4F",X"46",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"20",X"4F", + X"52",X"20",X"45",X"4E",X"45",X"4D",X"59",X"FD",X"50",X"D2",X"30",X"34",X"20",X"4C",X"41",X"55", + X"47",X"48",X"49",X"4E",X"47",X"20",X"56",X"4F",X"49",X"43",X"45",X"20",X"4F",X"46",X"20",X"45", + X"4E",X"45",X"4D",X"49",X"45",X"53",X"2D",X"31",X"FD",X"90",X"D2",X"30",X"35",X"20",X"4C",X"41", + X"55",X"47",X"48",X"49",X"4E",X"47",X"20",X"56",X"4F",X"49",X"43",X"45",X"20",X"4F",X"46",X"20", + X"45",X"4E",X"45",X"4D",X"49",X"45",X"53",X"2D",X"32",X"FD",X"D0",X"D2",X"30",X"36",X"20",X"42", + X"55",X"52",X"53",X"54",X"49",X"4E",X"47",X"20",X"4F",X"46",X"20",X"50",X"41",X"50",X"45",X"52", + X"20",X"42",X"41",X"4C",X"4C",X"FD",X"13",X"D3",X"42",X"55",X"52",X"53",X"54",X"49",X"4E",X"47", + X"20",X"4F",X"46",X"20",X"44",X"52",X"41",X"47",X"4F",X"4E",X"27",X"53",X"20",X"45",X"47",X"47", + X"FD",X"50",X"D3",X"30",X"37",X"20",X"53",X"48",X"52",X"49",X"45",X"4B",X"20",X"4F",X"46",X"20", + X"50",X"4C",X"41",X"59",X"45",X"52",X"FD",X"90",X"D3",X"30",X"38",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"20",X"52",X"55",X"4E",X"4E",X"49",X"4E",X"47",X"FD",X"D0",X"D3",X"30",X"39",X"20", + X"48",X"49",X"54",X"54",X"49",X"4E",X"47",X"20",X"53",X"4F",X"55",X"4E",X"44",X"FD",X"10",X"D4", + X"31",X"30",X"20",X"53",X"57",X"49",X"53",X"48",X"49",X"4E",X"47",X"20",X"53",X"4F",X"55",X"4E", + X"44",X"FD",X"50",X"D4",X"31",X"31",X"20",X"42",X"55",X"52",X"53",X"54",X"49",X"4E",X"47",X"20", + X"4F",X"46",X"20",X"53",X"4E",X"41",X"4B",X"45",X"20",X"50",X"4F",X"54",X"FD",X"90",X"D4",X"31", + X"32",X"20",X"42",X"49",X"54",X"49",X"4E",X"47",X"20",X"53",X"4F",X"55",X"4E",X"44",X"FD",X"D0", + X"D4",X"31",X"33",X"20",X"53",X"4F",X"55",X"4E",X"44",X"20",X"4F",X"46",X"20",X"4B",X"4E",X"49", + X"56",X"45",X"53",X"2C",X"42",X"4F",X"4F",X"4D",X"45",X"52",X"41",X"4E",X"47",X"53",X"FD",X"10", + X"D5",X"31",X"34",X"20",X"43",X"4F",X"55",X"4E",X"54",X"49",X"4E",X"47",X"20",X"50",X"4F",X"49", + X"4E",X"54",X"53",X"FD",X"50",X"D5",X"31",X"35",X"20",X"47",X"41",X"4D",X"45",X"20",X"53",X"54", + X"41",X"52",X"54",X"FD",X"90",X"D5",X"31",X"36",X"20",X"42",X"47",X"4D",X"FD",X"D0",X"D5",X"31", + X"37",X"20",X"43",X"4F",X"4D",X"50",X"4C",X"45",X"54",X"49",X"4F",X"4E",X"20",X"4F",X"46",X"20", + X"45",X"41",X"43",X"48",X"20",X"50",X"41",X"54",X"54",X"45",X"52",X"4E",X"FD",X"10",X"D6",X"31", + X"38",X"20",X"43",X"4F",X"4D",X"50",X"4C",X"45",X"54",X"49",X"4F",X"4E",X"20",X"4F",X"46",X"20", + X"47",X"41",X"4D",X"45",X"FD",X"50",X"D6",X"31",X"39",X"20",X"47",X"41",X"4D",X"45",X"20",X"4F", + X"56",X"45",X"52",X"FD",X"90",X"D6",X"32",X"30",X"20",X"54",X"49",X"4D",X"45",X"20",X"55",X"50", + X"20",X"57",X"41",X"52",X"4E",X"49",X"4E",X"47",X"FD",X"D0",X"D6",X"32",X"31",X"20",X"41",X"44", + X"44",X"49",X"54",X"49",X"4F",X"4E",X"41",X"4C",X"20",X"46",X"49",X"47",X"48",X"54",X"45",X"52", + X"FD",X"16",X"D7",X"4D",X"55",X"53",X"49",X"43",X"20",X"45",X"4E",X"44",X"FF",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7"); +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/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd.bin new file mode 100644 index 0000000000000000000000000000000000000000..2bca293054d2562f68ae1940847100f0227edfdc GIT binary patch literal 24576 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 Q)fwnU{2b=M`tk<)8&ZX3p#T5? literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd_prg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd_prg.vhd new file mode 100644 index 00000000..c3748bca --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd_prg.vhd @@ -0,0 +1,1558 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity snd_prg is +port ( + clk : in std_logic; + addr : in std_logic_vector(14 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of snd_prg is + type rom is array(0 to 24575) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"00",X"00",X"00",X"01",X"80",X"40",X"02",X"B0",X"82",X"F0",X"01",X"B0",X"84",X"A0",X"01",X"50", + X"85",X"F0",X"10",X"00",X"95",X"F0",X"18",X"80",X"AE",X"70",X"03",X"A0",X"B2",X"10",X"08",X"00", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"AA",X"98",X"26",X"10",X"80",X"28",X"8B",X"BA",X"10",X"0A",X"8B",X"AA",X"22",X"71",X"19",X"10", + X"10",X"AC",X"B1",X"00",X"CB",X"E9",X"25",X"31",X"80",X"01",X"0A",X"C8",X"00",X"AD",X"DA",X"04", + X"42",X"18",X"00",X"08",X"D9",X"88",X"9E",X"A8",X"17",X"21",X"98",X"11",X"0B",X"C8",X"AB",X"E9", + X"14",X"71",X"89",X"81",X"19",X"B9",X"9B",X"E9",X"25",X"51",X"99",X"82",X"0B",X"BC",X"AB",X"25", + X"53",X"09",X"98",X"0A",X"CB",X"AD",X"05",X"53",X"8A",X"A0",X"19",X"CA",X"BB",X"37",X"61",X"99", + X"A1",X"09",X"AB",X"C2",X"73",X"08",X"AA",X"88",X"89",X"CA",X"47",X"20",X"AA",X"89",X"98",X"AA", + X"37",X"78",X"99",X"89",X"80",X"A8",X"46",X"19",X"A9",X"89",X"88",X"A2",X"73",X"9A",X"99",X"A1", + X"2E",X"06",X"29",X"99",X"99",X"11",X"D0",X"71",X"99",X"89",X"81",X"0C",X"17",X"0A",X"88",X"98", + X"49",X"B3",X"69",X"A0",X"0B",X"14",X"C8",X"50",X"A8",X"0A",X"84",X"8B",X"62",X"C9",X"18",X"A3", + X"1E",X"25",X"AA",X"10",X"B2",X"3E",X"05",X"8C",X"10",X"A1",X"2B",X"87",X"8B",X"11",X"B0",X"3C", + X"06",X"8B",X"10",X"A1",X"1C",X"35",X"C9",X"39",X"A3",X"AB",X"72",X"D0",X"2A",X"03",X"F0",X"58", + X"C2",X"8A",X"48",X"D4",X"2D",X"03",X"C0",X"3E",X"05",X"9B",X"49",X"96",X"CB",X"51",X"C3",X"A9", + X"7B",X"C4",X"1B",X"3C",X"96",X"8D",X"11",X"12",X"DB",X"51",X"B8",X"02",X"00",X"F0",X"48",X"B0", + X"18",X"5B",X"B6",X"8B",X"03",X"A3",X"9F",X"31",X"B8",X"4A",X"11",X"E1",X"2A",X"81",X"09",X"4D", + X"03",X"A9",X"84",X"80",X"9B",X"58",X"A8",X"59",X"81",X"D2",X"1A",X"A7",X"A0",X"0A",X"20",X"9C", + X"7A",X"82",X"B2",X"92",X"D5",X"A8",X"3C",X"19",X"2B",X"31",X"C5",X"C2",X"A2",X"90",X"2C",X"5C", + X"3C",X"3A",X"3A",X"83",X"D4",X"C2",X"93",X"B1",X"1B",X"3B",X"3C",X"2A",X"31",X"C1",X"A6",X"C2", + X"A3",X"89",X"89",X"4A",X"81",X"4C",X"1B",X"86",X"98",X"3C",X"2C",X"01",X"39",X"9C",X"3B",X"26", + X"A1",X"D1",X"95",X"88",X"A8",X"11",X"82",X"A0",X"E1",X"A7",X"91",X"B2",X"A8",X"97",X"91",X"D3", + X"90",X"87",X"C0",X"A1",X"88",X"41",X"BA",X"18",X"2C",X"7B",X"3D",X"39",X"09",X"7D",X"18",X"82", + X"B5",X"88",X"D4",X"A2",X"C5",X"B1",X"99",X"2C",X"7A",X"1E",X"4A",X"3C",X"5B",X"91",X"A4",X"C2", + X"2A",X"A2",X"01",X"C2",X"3B",X"B1",X"22",X"F4",X"B3",X"D3",X"A2",X"D5",X"B1",X"A2",X"08",X"A7", + X"9B",X"3A",X"4E",X"49",X"2D",X"4B",X"3E",X"5A",X"2C",X"20",X"99",X"6B",X"80",X"04",X"C9",X"59", + X"99",X"13",X"C8",X"30",X"C2",X"A4",X"D1",X"28",X"B3",X"92",X"F0",X"30",X"C1",X"01",X"D2",X"01", + X"C2",X"81",X"BA",X"78",X"A0",X"12",X"C8",X"15",X"BA",X"6B",X"1D",X"33",X"9C",X"28",X"1E",X"15", + X"AA",X"01",X"2D",X"85",X"89",X"C4",X"88",X"B0",X"7A",X"9A",X"51",X"D0",X"06",X"D8",X"06",X"BB", + X"21",X"6D",X"94",X"0D",X"84",X"3C",X"C3",X"5B",X"D2",X"25",X"DA",X"34",X"CB",X"48",X"5D",X"82", + X"3F",X"85",X"B5",X"D1",X"28",X"F2",X"5D",X"4D",X"5A",X"0C",X"40",X"C1",X"10",X"A0",X"A7",X"B8", + X"97",X"AA",X"05",X"AA",X"04",X"B5",X"D2",X"81",X"98",X"1C",X"7A",X"98",X"39",X"B2",X"0A",X"7D", + X"4A",X"2B",X"3A",X"12",X"9D",X"22",X"9C",X"13",X"D5",X"B0",X"02",X"B8",X"12",X"AE",X"7C",X"01", + X"19",X"A2",X"09",X"95",X"B3",X"A8",X"81",X"3F",X"A7",X"99",X"11",X"A8",X"3B",X"A0",X"7E",X"32", + X"8D",X"15",X"D0",X"2A",X"5D",X"48",X"A8",X"21",X"D1",X"19",X"00",X"B3",X"80",X"A2",X"2C",X"A5", + X"9D",X"7B",X"02",X"90",X"B7",X"A8",X"01",X"B2",X"2F",X"39",X"09",X"12",X"F2",X"09",X"84",X"D3", + X"88",X"91",X"3E",X"10",X"89",X"10",X"2E",X"12",X"C1",X"01",X"A9",X"5A",X"08",X"08",X"4C",X"95", + X"A0",X"82",X"8C",X"38",X"90",X"83",X"9F",X"5A",X"93",X"90",X"A2",X"0A",X"03",X"AA",X"23",X"F2", + X"0B",X"20",X"8A",X"25",X"E0",X"29",X"80",X"97",X"D2",X"1B",X"10",X"88",X"83",X"C8",X"5A",X"92", + X"83",X"F1",X"3E",X"12",X"A0",X"82",X"B0",X"3B",X"02",X"C1",X"2A",X"93",X"9A",X"4A",X"18",X"81", + X"99",X"49",X"A3",X"A1",X"99",X"2B",X"7F",X"32",X"E0",X"28",X"A2",X"90",X"09",X"18",X"1A",X"89", + X"7B",X"B7",X"A1",X"1B",X"49",X"81",X"A2",X"90",X"00",X"A1",X"80",X"0A",X"42",X"F6",X"AA",X"4A", + X"00",X"91",X"08",X"92",X"A1",X"80",X"91",X"93",X"D3",X"B9",X"7F",X"41",X"F2",X"0A",X"10",X"88", + X"00",X"91",X"09",X"81",X"88",X"82",X"A8",X"6B",X"97",X"B8",X"39",X"90",X"2A",X"00",X"09",X"18", + X"00",X"B3",X"91",X"99",X"7B",X"81",X"87",X"F4",X"0E",X"38",X"A1",X"08",X"88",X"29",X"92",X"89", + X"10",X"99",X"38",X"C4",X"90",X"89",X"16",X"F1",X"3E",X"11",X"A1",X"09",X"18",X"80",X"80",X"80", + X"E7",X"F0",X"79",X"F3",X"1B",X"18",X"83",X"AA",X"39",X"82",X"93",X"F0",X"5B",X"93",X"91",X"9A", + X"48",X"98",X"7A",X"D5",X"8A",X"18",X"10",X"B1",X"2A",X"97",X"AB",X"68",X"A1",X"81",X"8A",X"49", + X"A3",X"4F",X"03",X"B0",X"80",X"2C",X"11",X"B5",X"8E",X"38",X"80",X"A3",X"99",X"2A",X"59",X"F4", + X"89",X"1A",X"28",X"A3",X"82",X"F0",X"28",X"8A",X"22",X"D1",X"4E",X"11",X"91",X"C3",X"0B",X"22", + X"E1",X"00",X"0C",X"38",X"92",X"9B",X"40",X"8A",X"97",X"A8",X"4D",X"28",X"00",X"B4",X"91",X"9C", + X"59",X"1A",X"01",X"82",X"E2",X"92",X"99",X"3A",X"88",X"12",X"D1",X"01",X"0E",X"29",X"3B",X"82", + X"2C",X"81",X"82",X"E2",X"02",X"E1",X"93",X"99",X"11",X"98",X"93",X"A0",X"1B",X"3A",X"4B",X"95", + X"0D",X"95",X"88",X"A2",X"2A",X"8A",X"22",X"AA",X"24",X"B9",X"03",X"B0",X"91",X"7A",X"92",X"89", + X"D4",X"19",X"A0",X"49",X"8C",X"22",X"8C",X"22",X"8B",X"81",X"08",X"A1",X"27",X"BC",X"34",X"CA", + X"15",X"98",X"90",X"20",X"BD",X"41",X"8B",X"13",X"AB",X"28",X"29",X"18",X"2B",X"A1",X"5E",X"08", + X"78",X"A9",X"14",X"BA",X"38",X"5D",X"01",X"80",X"A1",X"03",X"BE",X"58",X"8D",X"59",X"1B",X"10", + X"2B",X"01",X"0B",X"A1",X"79",X"00",X"A9",X"A5",X"7C",X"2B",X"2B",X"17",X"8A",X"90",X"1A",X"70", + X"B9",X"03",X"B3",X"6E",X"09",X"4A",X"21",X"E0",X"02",X"B2",X"2C",X"88",X"3A",X"05",X"B9",X"85", + X"A8",X"5C",X"1A",X"39",X"83",X"9C",X"85",X"99",X"39",X"B1",X"38",X"AC",X"7B",X"19",X"6B",X"02", + X"C2",X"80",X"A0",X"7C",X"A4",X"1B",X"97",X"C0",X"84",X"A9",X"23",X"F0",X"38",X"E5",X"A1",X"A0", + X"2A",X"5B",X"B7",X"8B",X"06",X"AB",X"05",X"AA",X"6D",X"20",X"8A",X"25",X"D9",X"58",X"A8",X"30", + X"E3",X"89",X"96",X"8D",X"31",X"AB",X"44",X"D9",X"5A",X"94",X"8D",X"30",X"0D",X"5B",X"A6",X"9A", + X"32",X"F3",X"8A",X"01",X"7D",X"95",X"AB",X"69",X"D5",X"98",X"97",X"AD",X"42",X"CA",X"50",X"D1", + X"39",X"E5",X"1D",X"38",X"9B",X"7A",X"B4",X"3D",X"A5",X"2D",X"95",X"A9",X"5D",X"5D",X"29",X"69", + X"D2",X"5D",X"B5",X"0C",X"85",X"8D",X"59",X"89",X"39",X"A7",X"D3",X"81",X"F5",X"3D",X"A5",X"8D", + X"41",X"D1",X"18",X"B4",X"2F",X"12",X"0E",X"5A",X"80",X"08",X"97",X"BA",X"33",X"DA",X"5A",X"0A", + X"7B",X"B6",X"8A",X"94",X"0B",X"4D",X"4A",X"3E",X"42",X"D8",X"23",X"F3",X"1C",X"81",X"3E",X"13", + X"C0",X"02",X"D4",X"9A",X"03",X"8E",X"59",X"A8",X"20",X"C7",X"B9",X"84",X"A9",X"59",X"A1",X"19", + X"A7",X"A9",X"83",X"9A",X"7B",X"08",X"2A",X"87",X"B0",X"92",X"98",X"5C",X"00",X"1A",X"03",X"B1", + X"A2",X"A1",X"4E",X"28",X"0A",X"11",X"A2",X"89",X"95",X"9B",X"30",X"8C",X"59",X"93",X"99",X"96", + X"A9",X"38",X"99",X"4B",X"84",X"8B",X"05",X"A9",X"11",X"A0",X"3D",X"02",X"0A",X"A4",X"88",X"08", + X"01",X"9D",X"31",X"8D",X"12",X"A1",X"80",X"A4",X"0C",X"18",X"3B",X"8B",X"63",X"CC",X"41",X"C1", + X"81",X"91",X"80",X"91",X"91",X"80",X"00",X"81",X"80",X"81",X"90",X"80",X"80",X"81",X"80",X"08", + X"A9",X"2A",X"57",X"CD",X"5A",X"94",X"92",X"2F",X"00",X"B2",X"28",X"4C",X"93",X"D0",X"39",X"21", + X"F2",X"AA",X"50",X"83",X"F0",X"1B",X"13",X"A4",X"8E",X"29",X"A3",X"00",X"6A",X"B3",X"BB",X"58", + X"16",X"AA",X"2B",X"A2",X"83",X"78",X"A0",X"A9",X"98",X"25",X"40",X"B8",X"AC",X"98",X"15",X"51", + X"99",X"9D",X"89",X"93",X"43",X"5A",X"88",X"DA",X"89",X"03",X"44",X"3B",X"88",X"EA",X"90",X"91", + X"62",X"20",X"A0",X"BD",X"A8",X"88",X"36",X"22",X"89",X"8C",X"BA",X"A0",X"12",X"74",X"00",X"0A", + X"AB",X"C9",X"91",X"03",X"72",X"00",X"8B",X"AB",X"BA",X"82",X"25",X"72",X"01",X"0B",X"BB",X"CA", + X"91",X"22",X"65",X"18",X"09",X"CA",X"B9",X"98",X"24",X"35",X"30",X"A9",X"AD",X"BA",X"99",X"14", + X"34",X"35",X"89",X"9A",X"CB",X"A8",X"90",X"33",X"36",X"48",X"90",X"9A",X"C9",X"89",X"14",X"32", + X"46",X"89",X"89",X"BC",X"B9",X"98",X"13",X"33",X"73",X"88",X"89",X"CB",X"A9",X"B1",X"33",X"46", + X"40",X"08",X"AB",X"BC",X"C9",X"81",X"22",X"44",X"31",X"88",X"BC",X"BC",X"A9",X"91",X"42",X"34", + X"41",X"88",X"9C",X"C8",X"BB",X"08",X"13",X"43",X"43",X"30",X"9A",X"CC",X"CA",X"A8",X"09",X"25", + X"21",X"44",X"18",X"08",X"BD",X"99",X"BA",X"00",X"04",X"42",X"24",X"28",X"99",X"BD",X"B9",X"9A", + X"02",X"0A",X"43",X"19",X"43",X"9B",X"89",X"FB",X"18",X"D2",X"2A",X"14",X"01",X"42",X"12",X"18", + X"9C",X"BC",X"B9",X"BA",X"89",X"B9",X"9A",X"A2",X"51",X"55",X"34",X"22",X"41",X"11",X"19",X"9C", + X"CB",X"CB",X"AA",X"99",X"01",X"11",X"12",X"1B",X"98",X"9A",X"82",X"26",X"23",X"42",X"20",X"1A", + X"CA",X"CB",X"B1",X"13",X"53",X"43",X"10",X"9A",X"BB",X"BA",X"92",X"23",X"34",X"11",X"9A",X"CC", + X"BB",X"AA",X"03",X"31",X"43",X"18",X"18",X"9A",X"9A",X"8A",X"98",X"08",X"08",X"08",X"19",X"00", + X"10",X"08",X"18",X"8A",X"08",X"89",X"08",X"08",X"10",X"80",X"08",X"8A",X"88",X"00",X"11",X"11", + X"08",X"09",X"9A",X"89",X"00",X"00",X"30",X"20",X"18",X"0A",X"8A",X"8A",X"08",X"02",X"10",X"30", + X"19",X"89",X"9A",X"89",X"80",X"00",X"11",X"18",X"08",X"09",X"88",X"09",X"08",X"89",X"18",X"08", + X"98",X"91",X"91",X"88",X"10",X"08",X"80",X"90",X"00",X"01",X"01",X"00",X"B8",X"A9",X"90",X"A0", + X"89",X"80",X"81",X"72",X"48",X"8D",X"0C",X"88",X"29",X"50",X"08",X"0C",X"89",X"88",X"40",X"22", + X"3D",X"1B",X"B9",X"1B",X"10",X"E9",X"99",X"76",X"12",X"0B",X"AB",X"C9",X"20",X"34",X"29",X"1C", + X"BB",X"8B",X"44",X"41",X"29",X"CC",X"BC",X"8A",X"16",X"70",X"38",X"AB",X"9C",X"80",X"11",X"51", + X"88",X"8D",X"98",X"81",X"52",X"81",X"AD",X"AA",X"B1",X"27",X"34",X"09",X"B9",X"E8",X"81",X"14", + X"10",X"98",X"C9",X"98",X"32",X"31",X"0F",X"BB",X"99",X"73",X"31",X"1D",X"8B",X"AA",X"20",X"43", + X"28",X"8B",X"E9",X"00",X"14",X"89",X"BC",X"B4",X"23",X"72",X"A9",X"9C",X"A1",X"81",X"25",X"81", + X"9A",X"B3",X"C0",X"21",X"E0",X"BB",X"71",X"22",X"1D",X"0A",X"A9",X"29",X"34",X"19",X"19",X"D0", + X"88",X"92",X"D9",X"C4",X"22",X"62",X"C8",X"9A",X"B2",X"82",X"26",X"90",X"89",X"A0",X"99",X"09", + X"EA",X"70",X"23",X"2E",X"0A",X"9A",X"39",X"23",X"2A",X"28",X"E8",X"89",X"B3",X"DA",X"71",X"03", + X"2E",X"09",X"A9",X"39",X"14",X"09",X"29",X"D0",X"8A",X"91",X"C5",X"21",X"15",X"C9",X"89",X"B3", + X"01",X"23",X"98",X"0D",X"98",X"9D",X"0A",X"71",X"21",X"2D",X"8A",X"A8",X"11",X"16",X"88",X"80", + X"C8",X"8A",X"8A",X"61",X"23",X"4F",X"09",X"8A",X"20",X"02",X"00",X"90",X"E0",X"89",X"A9",X"70", + X"21",X"3F",X"0A",X"09",X"28",X"13",X"90",X"A0",X"E1",X"99",X"98",X"70",X"20",X"0C",X"0B",X"93", + X"82",X"06",X"A0",X"9A",X"89",X"9C",X"17",X"01",X"30",X"F0",X"A8",X"11",X"82",X"3C",X"08",X"AA", + X"1A",X"B0",X"71",X"23",X"8F",X"89",X"93",X"10",X"23",X"E8",X"0B",X"81",X"AB",X"47",X"82",X"1E", + X"80",X"A8",X"40",X"83",X"A9",X"88",X"C1",X"1C",X"87",X"80",X"29",X"B0",X"9C",X"51",X"92",X"0A", + X"A1",X"B8",X"1A",X"B7",X"48",X"2B",X"B8",X"0C",X"53",X"A1",X"0A",X"B2",X"BB",X"3D",X"70",X"10", + X"1D",X"A1",X"92",X"21",X"88",X"0F",X"00",X"98",X"96",X"93",X"01",X"E9",X"09",X"31",X"00",X"0A", + X"D2",X"99",X"8A",X"71",X"10",X"C8",X"90",X"95",X"2A",X"3C",X"A1",X"89",X"B1",X"70",X"10",X"BA", + X"09",X"87",X"19",X"1B",X"B3",X"8C",X"96",X"10",X"28",X"F8",X"19",X"22",X"A1",X"8B",X"B3",X"AD", + X"54",X"91",X"1F",X"93",X"A1",X"39",X"A1",X"AB",X"38",X"E7",X"09",X"18",X"D0",X"29",X"24",X"C9", + X"19",X"80",X"93",X"48",X"A2",X"EA",X"40",X"02",X"AB",X"00",X"A8",X"87",X"29",X"0D",X"81",X"01", + X"28",X"C8",X"8A",X"09",X"73",X"C1",X"9A",X"11",X"12",X"2F",X"90",X"90",X"87",X"0A",X"1C",X"82", + X"01",X"29",X"E0",X"0A",X"03",X"49",X"80",X"F8",X"48",X"11",X"D9",X"29",X"A0",X"71",X"C3",X"D9", + X"58",X"02",X"BC",X"10",X"B8",X"73",X"D4",X"DA",X"41",X"82",X"AE",X"11",X"B8",X"72",X"D4",X"D9", + X"42",X"A3",X"BE",X"11",X"B2",X"79",X"B4",X"D8",X"52",X"C4",X"DA",X"29",X"97",X"3D",X"2A",X"C0", + X"58",X"01",X"F9",X"4B",X"16",X"9C",X"3D",X"85",X"4C",X"3D",X"B1",X"09",X"73",X"D0",X"9B",X"54", + X"B0",X"AC",X"02",X"B7",X"3D",X"09",X"B1",X"79",X"08",X"E0",X"1A",X"73",X"C8",X"AA",X"27",X"08", + X"AE",X"10",X"91",X"78",X"C4",X"CA",X"54",X"D2",X"CA",X"10",X"97",X"3D",X"19",X"C4",X"4D",X"19", + X"C1",X"08",X"44",X"B9",X"0B",X"15",X"99",X"0C",X"83",X"18",X"18",X"D2",X"5A",X"92",X"A9",X"30", + X"C1",X"9C",X"21",X"07",X"2E",X"80",X"A2",X"3C",X"30",X"D1",X"29",X"99",X"C8",X"37",X"2A",X"B9", + X"92",X"48",X"8C",X"93",X"39",X"3C",X"C8",X"81",X"58",X"B0",X"58",X"18",X"A8",X"0A",X"83",X"C9", + X"3C",X"14",X"90",X"11",X"C2",X"88",X"A9",X"5A",X"82",X"01",X"B0",X"F4",X"8B",X"10",X"8A",X"72", + X"08",X"B0",X"8D",X"10",X"90",X"05",X"8C",X"10",X"C1",X"59",X"3A",X"C2",X"89",X"12",X"D0",X"08", + X"38",X"B4",X"AD",X"32",X"D2",X"18",X"91",X"81",X"B9",X"48",X"B9",X"83",X"A9",X"79",X"03",X"82", + X"A0",X"AA",X"AA",X"86",X"8B",X"25",X"08",X"A0",X"B8",X"93",X"4D",X"4A",X"23",X"C2",X"0A",X"0A", + X"0B",X"88",X"B4",X"B1",X"49",X"55",X"1D",X"20",X"B0",X"90",X"AD",X"94",X"88",X"68",X"09",X"03", + X"B9",X"19",X"98",X"3A",X"1E",X"B7",X"8A",X"78",X"90",X"08",X"80",X"80",X"9E",X"28",X"B6",X"08", + X"20",X"90",X"89",X"19",X"D2",X"9A",X"09",X"8A",X"44",X"23",X"99",X"6E",X"02",X"A1",X"A9",X"08", + X"B1",X"5B",X"84",X"10",X"81",X"09",X"B1",X"3D",X"81",X"C8",X"90",X"6A",X"95",X"92",X"92",X"09", + X"99",X"19",X"89",X"9A",X"D1",X"28",X"87",X"2A",X"30",X"91",X"92",X"9F",X"90",X"1C",X"02",X"C1", + X"93",X"40",X"F3",X"1D",X"21",X"98",X"91",X"88",X"91",X"1C",X"12",X"B9",X"4B",X"40",X"B3",X"1E", + X"28",X"92",X"98",X"20",X"D5",X"9B",X"49",X"92",X"99",X"29",X"94",X"99",X"4B",X"01",X"82",X"A8", + X"1B",X"10",X"2A",X"2A",X"F2",X"80",X"5A",X"91",X"B4",X"29",X"A8",X"D2",X"1A",X"48",X"A8",X"81", + X"30",X"91",X"F3",X"2B",X"2D",X"88",X"5A",X"01",X"C2",X"09",X"12",X"F8",X"3B",X"59",X"A3",X"9A", + X"48",X"B0",X"19",X"5A",X"11",X"B1",X"82",X"A0",X"0A",X"89",X"78",X"98",X"80",X"82",X"04",X"D8", + X"89",X"5A",X"00",X"D0",X"22",X"91",X"AA",X"A3",X"28",X"2C",X"2A",X"B3",X"01",X"0C",X"2A",X"30", + X"98",X"4B",X"91",X"09",X"18",X"92",X"88",X"2A",X"93",X"89",X"5C",X"92",X"A3",X"89",X"A3",X"89", + X"30",X"A3",X"B9",X"4B",X"20",X"D1",X"1A",X"93",X"88",X"4B",X"21",X"D1",X"3B",X"4A",X"E2",X"98", + X"38",X"88",X"AA",X"48",X"11",X"8A",X"0B",X"35",X"BB",X"48",X"B0",X"22",X"99",X"00",X"10",X"18", + X"BB",X"69",X"81",X"80",X"9D",X"79",X"92",X"9A",X"6B",X"11",X"9A",X"30",X"95",X"F1",X"09",X"20", + X"8B",X"39",X"90",X"32",X"E1",X"D2",X"1A",X"10",X"1C",X"83",X"00",X"A6",X"AB",X"14",X"92",X"99", + X"B9",X"27",X"0B",X"0A",X"81",X"5C",X"4B",X"84",X"C0",X"3B",X"02",X"91",X"99",X"97",X"C1",X"3F", + X"21",X"A8",X"3B",X"00",X"08",X"89",X"02",X"3E",X"88",X"39",X"11",X"D1",X"81",X"84",X"E1",X"91", + X"2D",X"22",X"E3",X"0B",X"94",X"C4",X"0C",X"29",X"95",X"89",X"90",X"83",X"0E",X"3A",X"02",X"89", + X"8A",X"17",X"B0",X"81",X"08",X"B8",X"51",X"B0",X"8D",X"68",X"B6",X"A8",X"29",X"90",X"02",X"08", + X"E1",X"19",X"10",X"08",X"AB",X"7A",X"11",X"A0",X"83",X"BB",X"7A",X"11",X"B3",X"9A",X"A7",X"91", + X"08",X"A8",X"28",X"F7",X"A8",X"3D",X"29",X"18",X"82",X"C3",X"98",X"0A",X"5C",X"38",X"91",X"D4", + X"A2",X"8B",X"49",X"88",X"2A",X"39",X"D4",X"91",X"8D",X"48",X"90",X"10",X"9A",X"83",X"2A",X"A0", + X"49",X"B8",X"43",X"A9",X"F4",X"2E",X"1A",X"48",X"B1",X"21",X"D0",X"93",X"1B",X"19",X"4A",X"C2", + X"31",X"F0",X"10",X"09",X"A1",X"3D",X"04",X"B3",X"AA",X"28",X"3B",X"2B",X"94",X"92",X"E4",X"8A", + X"81",X"85",X"9B",X"A7",X"89",X"80",X"5D",X"02",X"A3",X"AA",X"15",X"A9",X"82",X"08",X"A8",X"20", + X"9A",X"58",X"93",X"B4",X"99",X"18",X"0A",X"00",X"3F",X"E9",X"30",X"9A",X"37",X"21",X"41",X"C0", + X"CA",X"0A",X"9D",X"DB",X"27",X"63",X"9C",X"98",X"02",X"09",X"AB",X"A0",X"83",X"77",X"A8",X"98", + X"22",X"99",X"9D",X"9A",X"87",X"7A",X"9A",X"B4",X"69",X"99",X"C8",X"80",X"73",X"C0",X"C9",X"45", + X"B0",X"AD",X"08",X"07",X"3D",X"0C",X"84",X"4A",X"1D",X"A8",X"19",X"73",X"D0",X"B9",X"55",X"B3", + X"DC",X"03",X"C1",X"50",X"D5",X"D9",X"58",X"13",X"FA",X"3A",X"A1",X"70",X"A3",X"F9",X"58",X"23", + X"FA",X"2B",X"85",X"5C",X"00",X"E0",X"59",X"30",X"F9",X"3C",X"85",X"4D",X"1A",X"B5",X"3B",X"4A", + X"D0",X"2C",X"05",X"2D",X"3D",X"95",X"19",X"5C",X"C3",X"9A",X"17",X"0B",X"4D",X"95",X"88",X"5D", + X"B4",X"A9",X"37",X"C0",X"1E",X"05",X"A1",X"4D",X"B5",X"B9",X"63",X"D0",X"0D",X"34",X"C3",X"1E", + X"A4",X"B9",X"64",X"D2",X"BB",X"52",X"A4",X"9D",X"01",X"C0",X"53",X"D2",X"D9",X"51",X"95",X"AD", + X"00",X"A0",X"71",X"D2",X"BA",X"61",X"94",X"AD",X"10",X"A0",X"70",X"B1",X"9B",X"25",X"A3",X"8F", + X"01",X"A0",X"17",X"9A",X"1C",X"95",X"82",X"2F",X"91",X"90",X"01",X"69",X"A3",X"C8",X"40",X"98", + X"B9",X"28",X"80",X"71",X"B0",X"B8",X"61",X"89",X"AA",X"00",X"88",X"72",X"C1",X"9A",X"34",X"99", + X"8C",X"10",X"98",X"97",X"2C",X"28",X"B2",X"2B",X"28",X"E1",X"08",X"19",X"93",X"2A",X"38",X"C1", + X"8A",X"48",X"A1",X"B1",X"4C",X"82",X"F0",X"11",X"84",X"01",X"9C",X"08",X"90",X"0A",X"8A",X"17", + X"3C",X"10",X"B8",X"1A",X"01",X"92",X"2A",X"72",X"B0",X"88",X"A8",X"8B",X"99",X"25",X"AB",X"11", + X"22",X"75",X"99",X"99",X"81",X"1A",X"9D",X"92",X"81",X"02",X"90",X"13",X"1E",X"40",X"A2",X"9B", + X"19",X"A6",X"8A",X"1A",X"90",X"93",X"71",X"A8",X"9A",X"24",X"C0",X"09",X"0A",X"A6",X"2A",X"10", + X"B0",X"10",X"29",X"C1",X"82",X"E8",X"2B",X"72",X"D0",X"80",X"38",X"B1",X"BE",X"51",X"90",X"8C", + X"40",X"A0",X"89",X"78",X"98",X"98",X"40",X"B2",X"AC",X"60",X"91",X"9A",X"31",X"A0",X"9D",X"60", + X"A0",X"89",X"21",X"90",X"9B",X"40",X"82",X"C8",X"3A",X"10",X"D8",X"58",X"80",X"C0",X"59",X"81", + X"B0",X"3B",X"10",X"98",X"4C",X"14",X"D1",X"2B",X"01",X"B1",X"5C",X"83",X"C2",X"4C",X"81",X"91", + X"3D",X"82",X"A1",X"3B",X"C2",X"00",X"5A",X"B2",X"B2",X"59",X"A9",X"81",X"78",X"B1",X"A3",X"4A", + X"B9",X"95",X"5A",X"B1",X"91",X"59",X"98",X"B3",X"69",X"99",X"B2",X"78",X"A0",X"B2",X"79",X"90", + X"A1",X"49",X"90",X"B0",X"79",X"81",X"C0",X"49",X"80",X"A0",X"30",X"A9",X"90",X"50",X"A8",X"B3", + X"38",X"8A",X"B0",X"69",X"10",X"F2",X"09",X"3B",X"B5",X"81",X"0B",X"A5",X"0A",X"3C",X"96",X"A0", + X"2C",X"12",X"C0",X"29",X"83",X"D0",X"3C",X"12",X"C2",X"0C",X"30",X"C2",X"1C",X"40",X"D2",X"98", + X"5A",X"91",X"91",X"2B",X"94",X"A1",X"3E",X"82",X"92",X"0B",X"88",X"14",X"8C",X"80",X"17",X"AA", + X"1A",X"51",X"D1",X"90",X"49",X"A1",X"99",X"78",X"B2",X"98",X"49",X"90",X"A2",X"39",X"B8",X"82", + X"5A",X"A0",X"C5",X"2B",X"8A",X"06",X"0A",X"0A",X"04",X"89",X"0B",X"B6",X"1B",X"3A",X"B7",X"39", + X"0A",X"B9",X"2A",X"CD",X"B1",X"67",X"18",X"8B",X"02",X"19",X"89",X"E8",X"8B",X"A9",X"87",X"72", + X"9A",X"C2",X"11",X"1A",X"D8",X"8A",X"08",X"76",X"A8",X"8A",X"13",X"00",X"AD",X"81",X"B9",X"75", + X"B0",X"8B",X"26",X"98",X"0C",X"82",X"9A",X"37",X"A9",X"2D",X"85",X"89",X"2C",X"A4",X"89",X"86", + X"9A",X"2A",X"A3",X"3A",X"28",X"F0",X"19",X"0A",X"17",X"98",X"2C",X"94",X"89",X"3B",X"A3",X"89", + X"90",X"78",X"92",X"C9",X"48",X"82",X"AB",X"49",X"89",X"B7",X"2A",X"2B",X"C3",X"19",X"49",X"C1", + X"09",X"98",X"70",X"92",X"CA",X"48",X"83",X"AC",X"20",X"A8",X"33",X"B0",X"2F",X"84",X"90",X"2D", + X"82",X"99",X"84",X"1A",X"08",X"C1",X"59",X"02",X"E8",X"29",X"98",X"78",X"A1",X"AA",X"34",X"91", + X"0F",X"82",X"98",X"97",X"0A",X"0A",X"A3",X"30",X"2A",X"F8",X"19",X"0A",X"71",X"A8",X"9A",X"25", + X"00",X"9D",X"81",X"80",X"93",X"4A",X"90",X"B0",X"70",X"90",X"D8",X"18",X"08",X"70",X"C0",X"09", + X"23",X"AA",X"0C",X"01",X"A9",X"63",X"B1",X"1C",X"83",X"99",X"3E",X"91",X"01",X"48",X"B9",X"00", + X"28",X"99",X"A0",X"63",X"09",X"BB",X"05",X"09",X"99",X"A0",X"D3",X"6C",X"24",X"B1",X"1B",X"82", + X"D8",X"3C",X"04",X"A0",X"39",X"B2",X"8A",X"39",X"B2",X"20",X"83",X"AA",X"4C",X"08",X"97",X"89", + X"89",X"01",X"B1",X"0A",X"40",X"B8",X"50",X"24",X"9C",X"09",X"A0",X"29",X"99",X"A9",X"61",X"11", + X"BA",X"10",X"25",X"99",X"1A",X"91",X"B9",X"69",X"1A",X"D8",X"25",X"2B",X"B8",X"25",X"A9",X"09", + X"15",X"AA",X"91",X"71",X"D9",X"01",X"3A",X"90",X"03",X"9D",X"01",X"84",X"8B",X"8B",X"63",X"AA", + X"0B",X"51",X"D0",X"81",X"4A",X"99",X"85",X"0A",X"01",X"D3",X"1D",X"10",X"B6",X"8A",X"2A",X"84", + X"0A",X"90",X"96",X"0D",X"18",X"03",X"A8",X"98",X"13",X"9C",X"2A",X"97",X"99",X"2B",X"04",X"99", + X"1C",X"05",X"09",X"9A",X"97",X"1A",X"89",X"95",X"1A",X"89",X"82",X"28",X"C0",X"90",X"78",X"B2", + X"9A",X"68",X"90",X"A0",X"21",X"89",X"90",X"82",X"59",X"C8",X"88",X"60",X"B8",X"8A",X"62",X"A9", + X"8A",X"33",X"8A",X"BB",X"16",X"18",X"9C",X"84",X"28",X"8A",X"C2",X"49",X"09",X"B0",X"22",X"19", + X"AC",X"42",X"98",X"AA",X"33",X"C1",X"88",X"94",X"1C",X"09",X"11",X"90",X"29",X"90",X"1B",X"20", + X"A1",X"1C",X"33",X"F8",X"29",X"01",X"8A",X"09",X"41",X"8A",X"98",X"40",X"C4",X"99",X"89",X"02", + X"29",X"81",X"A8",X"3B",X"01",X"0A",X"10",X"81",X"99",X"4A",X"90",X"A2",X"2B",X"83",X"9A",X"49", + X"80",X"A0",X"3A",X"88",X"80",X"82",X"99",X"01",X"0B",X"04",X"9B",X"11",X"98",X"29",X"80",X"19", + X"3B",X"A4",X"98",X"11",X"99",X"09",X"39",X"19",X"08",X"92",X"92",X"8A",X"19",X"82",X"0A",X"29", + X"92",X"1B",X"91",X"90",X"5A",X"81",X"80",X"88",X"1A",X"00",X"8A",X"5A",X"A3",X"89",X"29",X"00", + X"09",X"2A",X"92",X"80",X"2D",X"20",X"90",X"2D",X"03",X"A9",X"38",X"B4",X"8A",X"11",X"82",X"C0", + X"09",X"11",X"A4",X"AC",X"15",X"A8",X"1B",X"12",X"90",X"A6",X"8A",X"89",X"03",X"30",X"B0",X"AF", + X"00",X"A9",X"E2",X"74",X"18",X"99",X"80",X"BA",X"9F",X"C9",X"A3",X"77",X"88",X"A9",X"22",X"29", + X"BC",X"00",X"19",X"DD",X"97",X"58",X"A8",X"A0",X"42",X"9A",X"A9",X"22",X"0A",X"FB",X"47",X"88", + X"8B",X"84",X"18",X"0C",X"91",X"20",X"1D",X"C1",X"78",X"80",X"C8",X"30",X"83",X"DA",X"21",X"82", + X"AF",X"85",X"08",X"0B",X"B3",X"31",X"1B",X"F8",X"30",X"18",X"DA",X"16",X"00",X"9D",X"83",X"10", + X"1C",X"B3",X"10",X"2D",X"C0",X"50",X"01",X"E9",X"30",X"03",X"CB",X"21",X"83",X"BF",X"13",X"92", + X"0F",X"83",X"81",X"2D",X"A3",X"88",X"3D",X"A7",X"8A",X"4B",X"B3",X"2A",X"48",X"D1",X"1A",X"18", + X"D4",X"3C",X"18",X"D1",X"48",X"82",X"D8",X"28",X"80",X"E2",X"4A",X"01",X"D8",X"40",X"92",X"C9", + X"20",X"80",X"E2",X"3A",X"01",X"D8",X"48",X"82",X"C9",X"28",X"80",X"C6",X"1B",X"3B",X"C3",X"19", + X"39",X"D1",X"08",X"0C",X"15",X"98",X"3C",X"A5",X"09",X"1B",X"A3",X"08",X"8D",X"70",X"B3",X"AB", + X"32",X"B3",X"9E",X"21",X"A0",X"C4",X"4A",X"92",X"BA",X"70",X"B2",X"AA",X"28",X"B7",X"3C",X"82", + X"B0",X"39",X"92",X"C8",X"2A",X"04",X"A9",X"68",X"B2",X"1B",X"01",X"92",X"8B",X"11",X"B1",X"1B", + X"01",X"09",X"42",X"00",X"82",X"3D",X"E1",X"0A",X"90",X"9B",X"4A",X"A4",X"15",X"41",X"91",X"BD", + X"00",X"A9",X"89",X"04",X"80",X"39",X"A4",X"28",X"0A",X"F8",X"20",X"80",X"82",X"8B",X"03",X"C2", + X"3C",X"81",X"AA",X"34",X"B9",X"2C",X"90",X"24",X"10",X"98",X"0B",X"E2",X"31",X"9F",X"91",X"12", + X"09",X"99",X"14",X"3F",X"92",X"82",X"0D",X"A1",X"86",X"1D",X"01",X"A2",X"3C",X"92",X"08",X"2B", + X"B3",X"88",X"5C",X"83",X"90",X"88",X"91",X"38",X"A2",X"9C",X"19",X"B6",X"1B",X"5A",X"A4",X"B3", + X"1A",X"10",X"F0",X"2A",X"12",X"A9",X"1C",X"40",X"A5",X"98",X"1A",X"89",X"1A",X"25",X"B9",X"2E", + X"13",X"89",X"10",X"C8",X"95",X"0B",X"31",X"BD",X"50",X"C1",X"3B",X"84",X"AA",X"3A",X"22",X"BB", + X"01",X"B7",X"0A",X"19",X"81",X"9A",X"69",X"94",X"9A",X"81",X"A0",X"31",X"9B",X"03",X"81",X"0A", + X"90",X"81",X"3C",X"A4",X"98",X"1E",X"13",X"08",X"1C",X"82",X"09",X"8B",X"03",X"08",X"0C",X"12", + X"38",X"9B",X"11",X"08",X"0C",X"02",X"80",X"1C",X"21",X"81",X"80",X"91",X"A9",X"19",X"3A",X"88", + X"2B",X"58",X"A3",X"AD",X"40",X"A3",X"9C",X"30",X"B4",X"8C",X"58",X"A2",X"0C",X"03",X"A8",X"88", + X"21",X"98",X"89",X"83",X"1A",X"08",X"19",X"08",X"91",X"18",X"88",X"A1",X"29",X"00",X"99",X"29", + X"20",X"8A",X"29",X"80",X"8A",X"39",X"81",X"0B",X"31",X"A2",X"0D",X"20",X"B1",X"2A",X"83",X"B8", + X"4A",X"82",X"98",X"19",X"01",X"89",X"28",X"91",X"19",X"1B",X"00",X"80",X"1C",X"13",X"90",X"09", + X"09",X"00",X"09",X"08",X"19",X"82",X"88",X"88",X"81",X"08",X"09",X"92",X"09",X"18",X"09",X"20", + X"C2",X"0A",X"00",X"08",X"11",X"A0",X"80",X"1A",X"91",X"88",X"18",X"92",X"99",X"11",X"A1",X"01", + X"90",X"91",X"88",X"1A",X"03",X"98",X"88",X"18",X"A3",X"90",X"00",X"A0",X"81",X"09",X"92",X"91", + X"08",X"80",X"80",X"90",X"98",X"28",X"93",X"AA",X"3A",X"84",X"99",X"3A",X"B6",X"99",X"18",X"82", + X"80",X"1A",X"18",X"08",X"19",X"A1",X"8A",X"68",X"90",X"1B",X"81",X"02",X"8A",X"31",X"C1",X"68", + X"C9",X"BF",X"C9",X"96",X"73",X"C0",X"BA",X"63",X"8A",X"BA",X"12",X"9A",X"FA",X"74",X"B2",X"BB", + X"52",X"91",X"9D",X"12",X"80",X"9C",X"B0",X"74",X"A0",X"C9",X"33",X"80",X"BC",X"13",X"81",X"AF", + X"A7",X"19",X"1B",X"B2",X"40",X"19",X"F0",X"28",X"01",X"DA",X"51",X"92",X"BC",X"22",X"82",X"0F", + X"82",X"80",X"1D",X"96",X"89",X"3C",X"B4",X"08",X"39",X"D1",X"19",X"00",X"D1",X"49",X"83",X"D9", + X"38",X"84",X"BB",X"40",X"91",X"9E",X"33",X"B1",X"0E",X"04",X"90",X"2D",X"94",X"89",X"2C",X"A6", + X"1B",X"3B",X"D2",X"28",X"20",X"F0",X"3A",X"82",X"F0",X"58",X"93",X"DA",X"58",X"94",X"AB",X"30", + X"A3",X"CB",X"72",X"C2",X"9D",X"23",X"91",X"1F",X"12",X"A0",X"1F",X"05",X"89",X"4D",X"94",X"09", + X"3B",X"B4",X"0A",X"3C",X"B6",X"2B",X"28",X"F1",X"49",X"02",X"D8",X"29",X"01",X"CA",X"71",X"B4", + X"BB",X"32",X"94",X"9E",X"11",X"90",X"8C",X"61",X"B1",X"8C",X"23",X"A1",X"0D",X"82",X"98",X"8B", + X"73",X"B0",X"8C",X"14",X"89",X"0B",X"83",X"89",X"0C",X"17",X"08",X"8A",X"92",X"10",X"0A",X"C1", + X"08",X"20",X"C0",X"20",X"31",X"BA",X"0A",X"22",X"B9",X"09",X"B3",X"1B",X"63",X"A3",X"0E",X"01", + X"B1",X"9A",X"21",X"95",X"1B",X"A5",X"29",X"8A",X"A8",X"11",X"88",X"C9",X"40",X"28",X"F9",X"41", + X"02",X"8D",X"82",X"90",X"3C",X"92",X"A9",X"9C",X"27",X"09",X"29",X"A2",X"8B",X"13",X"B3",X"8C", + X"BB",X"07",X"38",X"08",X"A8",X"18",X"B1",X"20",X"3A",X"FC",X"03",X"78",X"91",X"AA",X"31",X"99", + X"2B",X"31",X"F8",X"0A",X"45",X"B1",X"1D",X"02",X"99",X"1A",X"23",X"B8",X"9D",X"16",X"89",X"3B", + X"B6",X"8A",X"18",X"93",X"8A",X"1B",X"B7",X"2B",X"00",X"A4",X"3D",X"A3",X"A2",X"3C",X"90",X"A3", + X"7A",X"B2",X"91",X"69",X"B1",X"80",X"39",X"91",X"D8",X"59",X"A1",X"88",X"58",X"A1",X"89",X"29", + X"B4",X"0D",X"31",X"C0",X"3B",X"22",X"BA",X"49",X"94",X"BA",X"5A",X"94",X"9D",X"30",X"A3",X"0B", + X"10",X"C2",X"2C",X"21",X"C1",X"3A",X"A3",X"C8",X"50",X"80",X"0B",X"18",X"92",X"8D",X"23",X"A2", + X"0E",X"11",X"93",X"0A",X"A0",X"92",X"1C",X"94",X"A1",X"28",X"00",X"AA",X"58",X"A1",X"99",X"20", + X"A1",X"89",X"21",X"A2",X"0A",X"02",X"B8",X"08",X"01",X"99",X"10",X"01",X"98",X"00",X"93",X"9A", + X"01",X"92",X"0A",X"92",X"A2",X"08",X"91",X"91",X"19",X"98",X"01",X"08",X"80",X"00",X"91",X"80", + X"89",X"01",X"A0",X"08",X"83",X"B0",X"81",X"90",X"82",X"98",X"91",X"08",X"00",X"A3",X"9A",X"20", + X"90",X"92",X"08",X"80",X"81",X"89",X"91",X"80",X"01",X"98",X"01",X"09",X"91",X"92",X"88",X"80", + X"08",X"80",X"91",X"91",X"08",X"88",X"81",X"91",X"A0",X"01",X"80",X"98",X"00",X"00",X"90",X"90", + X"18",X"88",X"02",X"90",X"90",X"80",X"18",X"88",X"81",X"00",X"80",X"80",X"09",X"90",X"80",X"11", + X"90",X"90",X"88",X"08",X"98",X"10",X"00",X"90",X"92",X"00",X"99",X"08",X"02",X"9A",X"10",X"91", + X"81",X"80",X"88",X"81",X"90",X"08",X"81",X"90",X"08",X"00",X"90",X"18",X"08",X"91",X"92",X"A1", + X"99",X"38",X"92",X"A8",X"3A",X"93",X"88",X"80",X"82",X"89",X"08",X"A1",X"0A",X"11",X"91",X"90", + X"08",X"91",X"80",X"81",X"88",X"82",X"80",X"08",X"80",X"AA",X"AE",X"91",X"E7",X"78",X"A8",X"A1", + X"50",X"99",X"BB",X"0A",X"D4",X"72",X"C2",X"D8",X"40",X"91",X"BA",X"42",X"88",X"BD",X"98",X"75", + X"A9",X"8A",X"06",X"09",X"8A",X"94",X"11",X"9D",X"98",X"07",X"2B",X"8A",X"93",X"48",X"8A",X"C1", + X"32",X"0B",X"F8",X"05",X"2A",X"9B",X"92",X"60",X"8A",X"B0",X"32",X"3C",X"D9",X"05",X"28",X"AB", + X"A2",X"51",X"0B",X"B8",X"24",X"2B",X"D9",X"05",X"39",X"9D",X"92",X"22",X"0C",X"B0",X"25",X"0B", + X"BA",X"36",X"18",X"AC",X"83",X"21",X"8E",X"91",X"13",X"8C",X"A9",X"61",X"08",X"C9",X"12",X"12", + X"AD",X"81",X"21",X"AC",X"A2",X"61",X"89",X"C8",X"22",X"10",X"E9",X"11",X"28",X"BC",X"97",X"18", + X"0B",X"B2",X"31",X"3B",X"F8",X"20",X"18",X"BC",X"07",X"18",X"8C",X"92",X"21",X"1C",X"B1",X"28", + X"28",X"F8",X"84",X"39",X"AA",X"B2",X"61",X"89",X"C8",X"20",X"10",X"CA",X"02",X"70",X"A9",X"89", + X"42",X"99",X"9A",X"11",X"00",X"BB",X"97",X"48",X"89",X"A8",X"22",X"09",X"C9",X"10",X"00",X"AA", + X"07",X"31",X"AA",X"89",X"02",X"8C",X"99",X"01",X"11",X"1A",X"26",X"89",X"19",X"90",X"A9",X"0A", + X"85",X"80",X"08",X"21",X"09",X"8B",X"A7",X"1A",X"8C",X"91",X"10",X"08",X"92",X"03",X"38",X"8B", + X"A2",X"22",X"DF",X"81",X"11",X"98",X"99",X"14",X"40",X"99",X"CA",X"12",X"9B",X"98",X"41",X"82", + X"8A",X"23",X"18",X"2D",X"9B",X"A0",X"28",X"11",X"1A",X"11",X"02",X"91",X"8A",X"10",X"0D",X"9A", + X"23",X"05",X"9A",X"2A",X"11",X"8A",X"3E",X"04",X"9B",X"99",X"35",X"82",X"9B",X"A2",X"93",X"8A", + X"89",X"84",X"0C",X"99",X"26",X"01",X"9D",X"01",X"82",X"0C",X"19",X"14",X"9B",X"88",X"24",X"8A", + X"8C",X"96",X"19",X"09",X"88",X"80",X"09",X"29",X"21",X"9B",X"1B",X"04",X"08",X"98",X"09",X"19", + X"88",X"21",X"28",X"B9",X"89",X"41",X"9A",X"00",X"03",X"9E",X"00",X"04",X"2C",X"09",X"91",X"30", + X"AB",X"80",X"40",X"8A",X"98",X"51",X"88",X"BB",X"03",X"00",X"0C",X"82",X"01",X"99",X"A2",X"04", + X"0A",X"99",X"A2",X"38",X"99",X"B4",X"11",X"98",X"B8",X"33",X"88",X"BA",X"04",X"80",X"8C",X"83", + X"02",X"89",X"B0",X"22",X"08",X"AA",X"95",X"19",X"99",X"A3",X"20",X"09",X"A9",X"04",X"89",X"99", + X"82",X"39",X"0A",X"A3",X"00",X"08",X"B0",X"02",X"89",X"A0",X"82",X"01",X"88",X"90",X"01",X"A0", + X"80",X"94",X"89",X"08",X"90",X"29",X"92",X"A1",X"18",X"90",X"98",X"01",X"81",X"98",X"80",X"01", + X"89",X"80",X"82",X"98",X"08",X"80",X"00",X"88",X"80",X"00",X"90",X"80",X"80",X"01",X"98",X"81", + X"A2",X"88",X"80",X"00",X"00",X"90",X"80",X"81",X"90",X"88",X"81",X"90",X"09",X"10",X"00",X"80", + X"A0",X"81",X"90",X"80",X"00",X"81",X"90",X"88",X"81",X"89",X"18",X"08",X"81",X"90",X"80",X"80", + X"08",X"00",X"90",X"08",X"00",X"A2",X"80",X"08",X"88",X"81",X"92",X"89",X"00",X"91",X"08",X"80", + X"92",X"80",X"90",X"88",X"01",X"88",X"90",X"81",X"91",X"91",X"A1",X"00",X"88",X"90",X"81",X"80", + X"90",X"81",X"18",X"91",X"88",X"00",X"88",X"80",X"00",X"00",X"98",X"00",X"01",X"99",X"00",X"01", + X"A8",X"80",X"00",X"08",X"89",X"02",X"A1",X"98",X"10",X"92",X"A8",X"00",X"81",X"90",X"80",X"81", + X"80",X"90",X"80",X"80",X"00",X"80",X"08",X"88",X"80",X"82",X"80",X"90",X"00",X"90",X"91",X"80", + X"08",X"A2",X"89",X"18",X"81",X"98",X"10",X"91",X"88",X"81",X"88",X"09",X"81",X"80",X"90",X"82", + X"01",X"89",X"88",X"82",X"98",X"08",X"10",X"A2",X"89",X"88",X"A0",X"BC",X"F2",X"77",X"A9",X"99", + X"35",X"89",X"BA",X"88",X"B0",X"77",X"B1",X"AA",X"43",X"90",X"AE",X"13",X"00",X"8D",X"02",X"A8", + X"AA",X"74",X"A0",X"AC",X"42",X"80",X"AC",X"03",X"11",X"9B",X"A9",X"BA",X"77",X"A1",X"BA",X"52", + X"90",X"9C",X"03",X"00",X"1C",X"90",X"AA",X"74",X"C1",X"A9",X"41",X"91",X"9C",X"03",X"80",X"1C", + X"80",X"A9",X"72",X"C2",X"BA",X"51",X"91",X"9C",X"13",X"90",X"1C",X"80",X"99",X"71",X"B2",X"BB", + X"61",X"90",X"8C",X"13",X"88",X"1C",X"92",X"AA",X"72",X"C1",X"9A",X"42",X"A0",X"8C",X"04",X"88", + X"1B",X"A2",X"9B",X"73",X"D1",X"8A",X"24",X"A8",X"0C",X"04",X"88",X"1B",X"A3",X"9B",X"64",X"B8", + X"1C",X"05",X"99",X"2B",X"95",X"89",X"2A",X"A2",X"8A",X"15",X"19",X"99",X"A2",X"41",X"9B",X"C1", + X"21",X"29",X"E9",X"18",X"02",X"1A",X"48",X"B3",X"1C",X"21",X"C0",X"2D",X"82",X"A0",X"2C",X"82", + X"99",X"53",X"82",X"AC",X"28",X"83",X"9E",X"98",X"02",X"09",X"B9",X"11",X"25",X"31",X"AB",X"18", + X"37",X"9C",X"A9",X"83",X"08",X"9C",X"83",X"02",X"21",X"A8",X"98",X"43",X"19",X"E9",X"2B",X"13", + X"8E",X"80",X"91",X"40",X"80",X"D8",X"20",X"20",X"B9",X"39",X"B4",X"1D",X"81",X"A0",X"39",X"01", + X"89",X"30",X"88",X"D8",X"60",X"88",X"B9",X"04",X"08",X"1C",X"A1",X"21",X"28",X"09",X"C9",X"33", + X"19",X"8A",X"A3",X"18",X"2A",X"A9",X"18",X"21",X"18",X"AC",X"12",X"80",X"2B",X"B3",X"18",X"29", + X"90",X"19",X"89",X"12",X"0D",X"01",X"92",X"29",X"C1",X"20",X"19",X"D0",X"12",X"0A",X"80",X"19", + X"11",X"0B",X"00",X"90",X"18",X"89",X"19",X"21",X"09",X"A8",X"29",X"08",X"09",X"11",X"80",X"89", + X"09",X"00",X"18",X"09",X"81",X"18",X"A1",X"8A",X"20",X"91",X"00",X"09",X"88",X"18",X"08",X"89", + X"10",X"08",X"08",X"08",X"08",X"08",X"19",X"09",X"00",X"09",X"18",X"00",X"0A",X"08",X"19",X"19", + X"08",X"00",X"89",X"10",X"09",X"08",X"10",X"08",X"B8",X"10",X"20",X"99",X"88",X"20",X"89",X"89", + X"10",X"28",X"19",X"90",X"80",X"18",X"98",X"29",X"18",X"08",X"90",X"88",X"00",X"00",X"89",X"09", + X"10",X"09",X"19",X"08",X"00",X"88",X"08",X"18",X"10",X"90",X"98",X"19",X"09",X"28",X"18",X"89", + X"00",X"08",X"88",X"29",X"08",X"00",X"09",X"08",X"80",X"19",X"88",X"00",X"08",X"80",X"08",X"09", + X"08",X"19",X"08",X"08",X"18",X"80",X"88",X"00",X"08",X"88",X"18",X"00",X"09",X"88",X"10",X"08", + X"88",X"09",X"19",X"80",X"08",X"10",X"09",X"09",X"80",X"08",X"18",X"09",X"19",X"18",X"89",X"18", + X"00",X"80",X"09",X"00",X"09",X"28",X"0A",X"00",X"19",X"1A",X"08",X"10",X"88",X"09",X"00",X"08", + X"08",X"08",X"19",X"08",X"88",X"08",X"09",X"18",X"18",X"88",X"00",X"08",X"08",X"88",X"00",X"08", + X"19",X"08",X"08",X"09",X"00",X"88",X"08",X"08",X"19",X"18",X"08",X"09",X"19",X"00",X"08",X"18", + X"88",X"88",X"08",X"00",X"08",X"09",X"19",X"18",X"88",X"00",X"08",X"18",X"88",X"88",X"10",X"08", + X"89",X"00",X"08",X"88",X"08",X"10",X"09",X"88",X"09",X"39",X"08",X"08",X"19",X"80",X"88",X"10", + X"09",X"08",X"09",X"19",X"08",X"08",X"00",X"80",X"88",X"08",X"00",X"08",X"08",X"88",X"08",X"00", + X"80",X"91",X"08",X"08",X"08",X"08",X"80",X"08",X"09",X"18",X"08",X"88",X"18",X"08",X"80",X"88", + X"08",X"00",X"00",X"08",X"88",X"08",X"08",X"89",X"18",X"18",X"88",X"08",X"18",X"08",X"08",X"08", + X"09",X"00",X"80",X"08",X"08",X"88",X"19",X"00",X"08",X"19",X"08",X"88",X"18",X"08",X"88",X"18", + X"80",X"88",X"19",X"00",X"09",X"29",X"08",X"08",X"80",X"08",X"09",X"18",X"08",X"09",X"18",X"08", + X"88",X"99",X"B9",X"B7",X"71",X"B0",X"BB",X"72",X"90",X"8D",X"82",X"89",X"E9",X"72",X"90",X"AC", + X"14",X"00",X"8C",X"92",X"10",X"3B",X"D1",X"00",X"39",X"CA",X"D9",X"75",X"A1",X"BB",X"34",X"92", + X"9E",X"82",X"01",X"2C",X"A2",X"88",X"4A",X"F4",X"0A",X"20",X"C0",X"29",X"03",X"CA",X"38",X"95", + X"8B",X"11",X"B2",X"1E",X"93",X"38",X"19",X"F0",X"10",X"11",X"C9",X"18",X"14",X"9B",X"08",X"02", + X"9E",X"A3",X"70",X"88",X"C9",X"31",X"02",X"CB",X"11",X"04",X"0C",X"80",X"91",X"0D",X"97",X"1A", + X"18",X"C1",X"39",X"01",X"D9",X"38",X"04",X"BA",X"2A",X"83",X"AF",X"27",X"98",X"1C",X"83",X"80", + X"1A",X"B2",X"19",X"21",X"D8",X"19",X"02",X"D9",X"37",X"88",X"8B",X"82",X"11",X"0B",X"B0",X"10", + X"31",X"CB",X"88",X"22",X"A9",X"85",X"70",X"80",X"AA",X"10",X"01",X"BC",X"08",X"83",X"0C",X"90", + X"83",X"3A",X"06",X"19",X"51",X"A8",X"8B",X"92",X"89",X"9F",X"92",X"98",X"38",X"93",X"09",X"51", + X"91",X"00",X"38",X"CB",X"A0",X"40",X"A9",X"98",X"89",X"28",X"20",X"9A",X"21",X"19",X"08",X"0A", + X"08",X"A1",X"49",X"9A",X"19",X"2A",X"30",X"90",X"09",X"10",X"89",X"00",X"09",X"88",X"80",X"38", + X"8A",X"2C",X"4A",X"3A",X"88",X"85",X"B2",X"2E",X"80",X"11",X"B6",X"C1",X"90",X"88",X"48",X"9A", + X"11",X"8D",X"32",X"2F",X"10",X"82",X"0C",X"10",X"8A",X"01",X"88",X"0C",X"94",X"2D",X"19",X"92", + X"12",X"B4",X"A9",X"3B",X"31",X"C1",X"A3",X"A5",X"E1",X"19",X"10",X"91",X"93",X"BC",X"A2",X"79", + X"91",X"D4",X"A2",X"08",X"91",X"B4",X"03",X"9E",X"1A",X"11",X"83",X"9B",X"3E",X"3B",X"20",X"59", + X"B0",X"97",X"B3",X"C0",X"21",X"B1",X"C5",X"D1",X"1A",X"3A",X"11",X"8B",X"20",X"2C",X"58",X"D1", + X"A4",X"90",X"A4",X"D1",X"92",X"28",X"88",X"A9",X"30",X"3C",X"9A",X"59",X"08",X"95",X"B0",X"91", + X"2D",X"5F",X"11",X"08",X"A8",X"2A",X"20",X"38",X"CA",X"10",X"A7",X"82",X"9D",X"28",X"12",X"0A", + X"CC",X"03",X"28",X"08",X"F9",X"22",X"3B",X"2F",X"2A",X"2E",X"48",X"92",X"92",X"19",X"1D",X"20", + X"00",X"8E",X"A9",X"06",X"12",X"AA",X"A3",X"56",X"89",X"EB",X"90",X"13",X"90",X"D0",X"84",X"12", + X"88",X"80",X"12",X"3A",X"1B",X"05",X"73",X"93",X"80",X"80",X"88",X"FF",X"F8",X"08",X"08",X"08", + X"00",X"73",X"AA",X"99",X"17",X"90",X"B9",X"03",X"78",X"80",X"88",X"E2",X"92",X"AA",X"08",X"01", + X"07",X"B1",X"A3",X"11",X"99",X"E1",X"32",X"90",X"80",X"80",X"F3",X"88",X"F8",X"08",X"08",X"60", + X"8C",X"80",X"06",X"90",X"C1",X"80",X"38",X"08",X"A9",X"A2",X"80",X"B1",X"88",X"07",X"30",X"A0", + X"F5",X"88",X"08",X"08",X"BB",X"70",X"80",X"D0",X"08",X"31",X"88",X"F1",X"80",X"49",X"0C",X"08", + X"04",X"80",X"C8",X"08",X"03",X"B8",X"00",X"70",X"88",X"08",X"08",X"08",X"BF",X"13",X"19",X"AB", + X"80",X"62",X"91",X"F8",X"08",X"24",X"D8",X"08",X"04",X"80",X"C8",X"08",X"12",X"A1",X"D2",X"48", + X"08",X"08",X"E8",X"14",X"90",X"E1",X"82",X"18",X"80",X"F1",X"80",X"49",X"8B",X"18",X"15",X"99", + X"B1",X"80",X"7B",X"80",X"83",X"29",X"08",X"0D",X"A1",X"33",X"AE",X"91",X"24",X"90",X"8F",X"00", + X"84",X"80",X"C8",X"08",X"31",X"F1",X"80",X"12",X"D1",X"02",X"90",X"80",X"8F",X"10",X"39",X"0A", + X"C5",X"08",X"08",X"D0",X"08",X"48",X"0C",X"08",X"08",X"19",X"08",X"03",X"59",X"00",X"80",X"88", + X"8F",X"89",X"78",X"08",X"C4",X"80",X"89",X"B1",X"80",X"41",X"8F",X"00",X"80",X"80",X"80",X"41", + X"D2",X"18",X"08",X"8A",X"E1",X"14",X"90",X"8E",X"13",X"90",X"AB",X"18",X"07",X"08",X"C8",X"00", + X"80",X"1A",X"01",X"97",X"00",X"80",X"80",X"9F",X"01",X"49",X"08",X"80",X"80",X"8F",X"08",X"80", + X"07",X"B8",X"08",X"08",X"08",X"83",X"59",X"18",X"80",X"80",X"8D",X"D1",X"50",X"88",X"08",X"81", + X"AF",X"08",X"00",X"80",X"80",X"84",X"59",X"E0",X"08",X"23",X"90",X"80",X"88",X"08",X"0D",X"48", + X"80",X"80",X"80",X"FB",X"19",X"00",X"80",X"80",X"80",X"47",X"E0",X"08",X"06",X"88",X"08",X"08", + X"08",X"08",X"0F",X"48",X"80",X"80",X"8F",X"00",X"80",X"80",X"80",X"80",X"80",X"7B",X"80",X"84", + X"83",X"90",X"80",X"80",X"80",X"80",X"88",X"08",X"08",X"08",X"FF",X"A0",X"80",X"80",X"80",X"80", + X"80",X"08",X"7B",X"70",X"18",X"4A",X"18",X"08",X"80",X"80",X"80",X"88",X"08",X"0A",X"FF",X"A4", + X"C0",X"08",X"08",X"08",X"08",X"08",X"08",X"27",X"78",X"0F",X"03",X"80",X"88",X"08",X"08",X"08", + X"08",X"08",X"08",X"F2",X"F5",X"98",X"B2",X"90",X"08",X"08",X"08",X"08",X"02",X"97",X"B6",X"98", + X"02",X"90",X"08",X"80",X"F4",X"88",X"A9",X"15",X"90",X"80",X"F3",X"A3",X"C1",X"B2",X"90",X"08", + X"08",X"08",X"08",X"08",X"65",X"B9",X"20",X"3A",X"18",X"A1",X"F1",X"49",X"08",X"BA",X"7D",X"49", + X"00",X"88",X"A8",X"84",X"82",X"E0",X"88",X"08",X"19",X"08",X"08",X"03",X"3E",X"12",X"82",X"E2", + X"28",X"08",X"90",X"19",X"D1",X"B7",X"8B",X"3C",X"14",X"99",X"0F",X"11",X"29",X"0E",X"18",X"2B", + X"19",X"01",X"0A",X"3C",X"6A",X"18",X"3B",X"2C",X"39",X"1B",X"79",X"00",X"9C",X"20",X"2A",X"1A", + X"3E",X"1A",X"59",X"1C",X"09",X"49",X"10",X"AA",X"58",X"10",X"CA",X"18",X"39",X"09",X"79",X"99", + X"80",X"32",X"0D",X"A8",X"25",X"18",X"AA",X"00",X"28",X"09",X"80",X"89",X"41",X"3A",X"1F",X"9D", + X"11",X"3A",X"08",X"04",X"B9",X"BC",X"32",X"8B",X"0B",X"61",X"14",X"9C",X"8A",X"48",X"08",X"40", + X"49",X"99",X"98",X"83",X"90",X"C8",X"32",X"0E",X"AA",X"19",X"41",X"A0",X"A8",X"14",X"21",X"BB", + X"9B",X"87",X"00",X"A5",X"87",X"8A",X"B0",X"17",X"91",X"A0",X"B3",X"C2",X"8A",X"0B",X"21",X"8E", + X"02",X"61",X"0B",X"A9",X"11",X"13",X"B0",X"92",X"68",X"8E",X"00",X"02",X"B2",X"91",X"80",X"B2", + X"DB",X"96",X"B8",X"D1",X"17",X"00",X"A0",X"A4",X"A2",X"B2",X"93",X"04",X"AA",X"0B",X"28",X"2F", + X"28",X"08",X"A4",X"B2",X"A1",X"98",X"8F",X"1B",X"4A",X"68",X"2B",X"0B",X"01",X"58",X"09",X"82", + X"12",X"4D",X"AC",X"28",X"69",X"1B",X"1C",X"2A",X"82",X"93",X"C1",X"B1",X"10",X"0A",X"4A",X"29", + X"E2",X"16",X"00",X"8A",X"8C",X"48",X"49",X"A9",X"08",X"69",X"0A",X"88",X"A9",X"83",X"80",X"08", + X"32",X"C2",X"6C",X"1F",X"91",X"22",X"28",X"0A",X"0B",X"80",X"97",X"A1",X"2B",X"2C",X"49",X"3D", + X"0B",X"89",X"21",X"83",X"D4",X"92",X"A2",X"B2",X"E5",X"88",X"1C",X"29",X"11",X"19",X"C1",X"A2", + X"84",X"82",X"DA",X"81",X"F7",X"B4",X"B1",X"99",X"4B",X"5A",X"88",X"01",X"28",X"0A",X"AA",X"50", + X"28",X"9B",X"88",X"71",X"0B",X"A9",X"20",X"20",X"B8",X"A0",X"11",X"0C",X"8C",X"50",X"1B",X"93", + X"04",X"A0",X"4A",X"29",X"BF",X"3C",X"7A",X"5B",X"0A",X"21",X"10",X"D9",X"00",X"68",X"99",X"80", + X"18",X"69",X"BC",X"10",X"59",X"00",X"80",X"BB",X"25",X"11",X"BB",X"08",X"84",X"11",X"D8",X"B3", + X"04",X"83",X"AA",X"97",X"79",X"20",X"88",X"8F",X"C9",X"13",X"19",X"9C",X"90",X"80",X"08",X"00", + X"62",X"18",X"4E",X"0C",X"71",X"90",X"0C",X"A7",X"88",X"08",X"00",X"9B",X"91",X"08",X"18",X"B2", + X"23",X"02",X"FA",X"84",X"18",X"E0",X"07",X"80",X"88",X"D1",X"21",X"90",X"80",X"80",X"8F",X"80", + X"81",X"3E",X"5A",X"1A",X"09",X"2A",X"2B",X"18",X"52",X"90",X"8F",X"00",X"49",X"00",X"80",X"80", + X"F0",X"80",X"48",X"A1",X"C1",X"91",X"85",X"B1",X"B1",X"87",X"80",X"8A",X"A1",X"32",X"90",X"80", + X"08",X"AF",X"88",X"78",X"0D",X"18",X"80",X"10",X"2F",X"18",X"84",X"80",X"8A",X"A1",X"06",X"90", + X"08",X"08",X"D8",X"01",X"49",X"0E",X"18",X"80",X"5B",X"3D",X"18",X"85",X"90",X"8C",X"18",X"13", + X"90",X"80",X"BD",X"18",X"50",X"90",X"C0",X"80",X"86",X"80",X"D1",X"88",X"59",X"00",X"B8",X"03", + X"18",X"08",X"8E",X"90",X"16",X"D0",X"00",X"91",X"93",X"29",X"B9",X"80",X"27",X"80",X"8E",X"08", + X"69",X"08",X"08",X"9B",X"18",X"4A",X"3C",X"91",X"81",X"79",X"8B",X"19",X"17",X"90",X"09",X"C1", + X"04",X"90",X"80",X"9D",X"18",X"14",X"9B",X"91",X"80",X"78",X"0A",X"B1",X"87",X"80",X"89",X"B1", + X"58",X"80",X"08",X"9E",X"18",X"40",X"9C",X"18",X"80",X"58",X"0C",X"80",X"05",X"90",X"08",X"E1", + X"11",X"80",X"88",X"BA",X"18",X"78",X"0D",X"18",X"80",X"58",X"8B",X"80",X"87",X"88",X"08",X"B8", + X"04",X"08",X"08",X"9F",X"18",X"31",X"99",X"C1",X"88",X"35",X"90",X"F0",X"02",X"19",X"08",X"08", + X"F3",X"08",X"08",X"08",X"F0",X"08",X"48",X"C1",X"80",X"80",X"30",X"8C",X"88",X"17",X"90",X"80", + X"80",X"91",X"08",X"08",X"80",X"FA",X"08",X"18",X"80",X"80",X"80",X"07",X"28",X"D8",X"16",X"88", + X"08",X"08",X"08",X"08",X"08",X"08",X"0F",X"D0",X"87",X"99",X"91",X"88",X"01",X"7A",X"98",X"00", + X"22",X"88",X"92",X"88",X"08",X"08",X"92",X"90",X"9F",X"F8",X"81",X"90",X"08",X"08",X"00",X"70", + X"A8",X"B7",X"20",X"80",X"C4",X"90",X"08",X"08",X"80",X"80",X"91",X"F6",X"F1",X"80",X"80",X"90", + X"08",X"08",X"06",X"C1",X"93",X"84",X"90",X"A1",X"A4",X"A2",X"80",X"88",X"08",X"08",X"A8",X"4F", + X"2F",X"09",X"15",X"8C",X"08",X"08",X"2A",X"08",X"03",X"4F",X"2A",X"20",X"19",X"99",X"05",X"80", + X"89",X"C6",X"90",X"08",X"9A",X"A7",X"0B",X"80",X"02",X"B9",X"18",X"02",X"C3",X"99",X"40",X"33", + X"E2",X"09",X"2B",X"86",X"90",X"8E",X"12",X"80",X"8A",X"A3",X"09",X"F0",X"85",X"1B",X"B0",X"80", + X"01",X"31",X"E2",X"91",X"3D",X"20",X"B2",X"94",X"20",X"8A",X"AE",X"98",X"70",X"0A",X"0A",X"3C", + X"02",X"92",X"80",X"08",X"D0",X"AB",X"73",X"90",X"D2",X"29",X"BA",X"80",X"78",X"28",X"B0",X"99", + X"95",X"83",X"92",X"B9",X"03",X"80",X"FA",X"22",X"41",X"9A",X"C9",X"C2",X"02",X"52",X"9C",X"AC", + X"13",X"11",X"B0",X"97",X"80",X"B1",X"A9",X"83",X"37",X"08",X"BB",X"E1",X"05",X"01",X"99",X"B9", + X"82",X"41",X"8A",X"B1",X"23",X"00",X"CF",X"98",X"51",X"38",X"BA",X"C8",X"20",X"51",X"99",X"98", + X"A0",X"94",X"21",X"C0",X"A1",X"83",X"08",X"9D",X"94",X"51",X"9B",X"A2",X"90",X"A8",X"71",X"2C", + X"BA",X"02",X"50",X"0C",X"90",X"31",X"8A",X"A9",X"20",X"12",X"4A",X"3F",X"A0",X"82",X"06",X"A0", + X"D0",X"01",X"01",X"90",X"99",X"10",X"51",X"BA",X"9C",X"04",X"40",X"08",X"D9",X"81",X"52",X"8A", + X"F8",X"01",X"28",X"0A",X"89",X"A1",X"53",X"89",X"C8",X"A4",X"05",X"18",X"CB",X"A8",X"53",X"38", + X"8E",X"AA",X"12",X"40",X"89",X"AB",X"81",X"50",X"0C",X"98",X"43",X"29",X"9C",X"B9",X"34",X"70", + X"89",X"99",X"C8",X"86",X"10",X"B9",X"A2",X"08",X"92",X"8A",X"39",X"35",X"1C",X"0D",X"00",X"27", + X"01",X"C8",X"A0",X"91",X"41",X"0E",X"80",X"0A",X"88",X"13",X"A0",X"A2",X"25",X"A9",X"C9",X"46", + X"10",X"A9",X"A2",X"98",X"20",X"80",X"B2",X"1D",X"F0",X"13",X"9A",X"A3",X"59",X"A9",X"92",X"13", + X"41",X"0F",X"99",X"30",X"6B",X"01",X"C8",X"10",X"19",X"98",X"1C",X"1A",X"70",X"2E",X"09",X"02", + X"28",X"3E",X"2C",X"88",X"32",X"0A",X"AC",X"11",X"81",X"38",X"8D",X"2F",X"3C",X"59",X"1A",X"18", + X"88",X"31",X"1D",X"BA",X"52",X"18",X"AB",X"98",X"33",X"9C",X"09",X"32",X"BC",X"F4",X"20",X"BC", + X"95",X"31",X"9A",X"9D",X"40",X"00",X"9A",X"40",X"4B",X"99",X"13",X"13",X"C9",X"C9",X"88",X"EB", + X"19",X"21",X"C8",X"A8",X"09",X"F7",X"30",X"9D",X"82",X"63",X"90",X"8E",X"D2",X"59",X"00",X"80", + X"9E",X"18",X"1A",X"08",X"02",X"59",X"A8",X"A0",X"80",X"4A",X"92",X"70",X"08",X"F0",X"85",X"88", + X"08",X"08",X"0A",X"D1",X"05",X"B9",X"02",X"28",X"0D",X"90",X"08",X"08",X"04",X"59",X"0A",X"E1", + X"05",X"90",X"80",X"80",X"89",X"E1",X"84",X"0A",X"80",X"20",X"D9",X"08",X"08",X"00",X"83",X"78", + X"09",X"F1",X"03",X"90",X"81",X"90",X"0B",X"F1",X"84",X"08",X"98",X"82",X"F0",X"00",X"09",X"80", + X"85",X"29",X"0B",X"D1",X"24",X"98",X"82",X"90",X"0F",X"A1",X"87",X"89",X"92",X"18",X"D0",X"80", + X"80",X"80",X"07",X"80",X"8D",X"00",X"48",X"89",X"28",X"80",X"8F",X"08",X"31",X"BA",X"78",X"8A", + X"91",X"88",X"08",X"00",X"78",X"00",X"F1",X"83",X"08",X"08",X"80",X"80",X"F0",X"88",X"19",X"17", + X"90",X"C0",X"08",X"81",X"90",X"07",X"91",X"8D",X"18",X"38",X"08",X"08",X"08",X"CB",X"18",X"07", + X"B4",X"08",X"9B",X"08",X"87",X"B0",X"83",X"29",X"0B",X"D1",X"07",X"90",X"80",X"0D",X"08",X"59", + X"0A",X"88",X"1A",X"78",X"8C",X"2A",X"2A",X"18",X"58",X"08",X"8D",X"10",X"49",X"08",X"09",X"E1", + X"85",X"90",X"9A",X"08",X"06",X"89",X"92",X"C1",X"90",X"15",X"90",X"0D",X"80",X"59",X"00",X"80", + X"D0",X"80",X"48",X"09",X"C1",X"88",X"41",X"A2",X"F0",X"08",X"14",X"90",X"89",X"D1",X"22",X"90", + X"80",X"BE",X"18",X"33",X"9A",X"E1",X"80",X"86",X"80",X"9B",X"08",X"26",X"90",X"80",X"8E",X"04", + X"88",X"08",X"0B",X"B2",X"96",X"19",X"C0",X"80",X"80",X"78",X"0A",X"A1",X"10",X"39",X"00",X"80", + X"88",X"E3",X"00",X"88",X"0F",X"B1",X"80",X"78",X"C0",X"08",X"08",X"34",X"99",X"E1",X"83",X"18", + X"81",X"88",X"08",X"08",X"9F",X"82",X"12",X"99",X"EA",X"00",X"80",X"80",X"80",X"08",X"43",X"4F", + X"08",X"41",X"09",X"8A",X"40",X"80",X"80",X"8A",X"AF",X"78",X"80",X"8E",X"00",X"80",X"59",X"B0", + X"08",X"08",X"10",X"29",X"D2",X"84",X"28",X"89",X"9A",X"78",X"08",X"08",X"08",X"0D",X"C1",X"79", + X"1D",X"00",X"88",X"08",X"00",X"91",X"01",X"0B",X"84",X"12",X"09",X"48",X"A2",X"1B",X"2E",X"B2", + X"25",X"90",X"AF",X"00",X"20",X"9E",X"1A",X"59",X"1A",X"0A",X"08",X"22",X"2A",X"2E",X"01",X"12", + X"3D",X"09",X"04",X"8E",X"00",X"12",X"9A",X"A9",X"24",X"01",X"D9",X"1A",X"3B",X"48",X"3F",X"08", + X"00",X"18",X"3D",X"88",X"82",X"1A",X"38",X"A1",X"A0",X"2A",X"72",X"E0",X"89",X"21",X"23",X"E9", + X"91",X"20",X"A4",X"A0",X"AE",X"14",X"A2",X"8B",X"A8",X"87",X"80",X"08",X"91",X"B1",X"C3",X"32", + X"02",X"DA",X"9A",X"36",X"13",X"BF",X"A1",X"04",X"08",X"A9",X"A2",X"01",X"01",X"21",X"CC",X"A8", + X"50",X"40",X"8B",X"A9",X"84",X"14",X"8A",X"CC",X"11",X"59",X"2C",X"0A",X"08",X"30",X"4B",X"1B", + X"4B",X"8B",X"14",X"52",X"BB",X"A0",X"51",X"00",X"FA",X"81",X"34",X"80",X"D9",X"A2",X"83",X"20", + X"89",X"A3",X"C8",X"90",X"52",X"B9",X"10",X"51",X"99",X"DA",X"C8",X"37",X"20",X"D9",X"90",X"21", + X"00",X"98",X"20",X"0D",X"A8",X"43",X"0B",X"B2",X"07",X"1A",X"AB",X"B9",X"14",X"72",X"0C",X"C9", + X"01",X"31",X"91",X"92",X"08",X"BC",X"03",X"69",X"B9",X"32",X"7A",X"9A",X"89",X"8A",X"33",X"71", + X"9E",X"98",X"02",X"10",X"00",X"10",X"BB",X"A4",X"44",X"AE",X"00",X"40",X"89",X"AB",X"81",X"02", + X"23",X"9C",X"D9",X"03",X"83",X"A3",X"13",X"CA",X"D1",X"42",X"0C",X"C3",X"14",X"91",X"F0",X"91", + X"81",X"93",X"01",X"DC",X"98",X"41",X"00",X"81",X"8C",X"A8",X"45",X"19",X"C9",X"13",X"38",X"CC", + X"98",X"43",X"09",X"90",X"9A",X"E0",X"14",X"1B",X"18",X"38",X"E8",X"91",X"59",X"0A",X"02",X"38", + X"1E",X"9B",X"96",X"11",X"89",X"0B",X"A9",X"07",X"81",X"90",X"11",X"AB",X"A0",X"71",X"A8",X"A2", + X"20",X"2A",X"FA",X"93",X"50",X"1B",X"1B",X"0A",X"93",X"79",X"1D",X"81",X"48",X"1D",X"88",X"92", + X"10",X"20",X"B0",X"1F",X"0B",X"30",X"78",X"0B",X"88",X"29",X"31",X"BA",X"F2",X"22",X"90",X"E3", + X"C0",X"A1",X"16",X"B8",X"A1",X"11",X"A0",X"10",X"9E",X"DA",X"52",X"73",X"90",X"09",X"FC",X"03", + X"48",X"08",X"0A",X"F8",X"80",X"83",X"18",X"8A",X"B0",X"08",X"04",X"72",X"80",X"8F",X"90",X"50", + X"80",X"88",X"08",X"DA",X"18",X"85",X"02",X"88",X"08",X"F8",X"80",X"79",X"09",X"81",X"9A",X"08", + X"42",X"90",X"19",X"18",X"9D",X"C0",X"33",X"A3",X"D2",X"02",X"9F",X"90",X"80",X"60",X"B8",X"90", + X"80",X"08",X"08",X"72",X"80",X"BF",X"18",X"40",X"A3",X"88",X"08",X"F0",X"88",X"08",X"34",X"90", + X"8F",X"08",X"04",X"88",X"08",X"A8",X"A1",X"87",X"08",X"0C",X"80",X"6A",X"2E",X"48",X"00",X"8D", + X"00",X"21",X"9C",X"30",X"08",X"F1",X"00",X"2A",X"B2",X"90",X"27",X"90",X"8E",X"10",X"11",X"99", + X"59",X"08",X"AB",X"18",X"51",X"91",X"89",X"2F",X"90",X"02",X"3F",X"08",X"03",X"08",X"0C",X"A1", + X"05",X"8D",X"31",X"90",X"0F",X"18",X"85",X"98",X"18",X"08",X"E1",X"82",X"0D",X"18",X"01",X"39", + X"08",X"F1",X"91",X"4B",X"84",X"90",X"8A",X"A1",X"86",X"0A",X"02",X"88",X"D8",X"00",X"1B",X"18", + X"81",X"70",X"08",X"F0",X"00",X"39",X"A5",X"90",X"89",X"C1",X"86",X"9A",X"05",X"90",X"9C",X"18", + X"00",X"88",X"00",X"78",X"08",X"D0",X"02",X"19",X"B7",X"90",X"89",X"C1",X"85",X"8C",X"14",X"90", + X"AA",X"18",X"31",X"F1",X"91",X"49",X"08",X"D1",X"84",X"98",X"A5",X"90",X"0B",X"90",X"86",X"C3", + X"19",X"08",X"D1",X"82",X"B1",X"90",X"07",X"80",X"8D",X"18",X"38",X"0D",X"5A",X"18",X"8D",X"18", + X"80",X"13",X"80",X"8F",X"08",X"3C",X"4C",X"18",X"59",X"08",X"C1",X"85",X"90",X"80",X"80",X"88", + X"F1",X"88",X"31",X"90",X"0F",X"08",X"04",X"9B",X"00",X"15",X"90",X"8C",X"80",X"32",X"90",X"80", + X"9F",X"48",X"0D",X"00",X"80",X"38",X"19",X"8D",X"08",X"08",X"08",X"05",X"39",X"08",X"CD",X"14", + X"19",X"18",X"8D",X"A1",X"07",X"8C",X"00",X"80",X"30",X"08",X"AE",X"18",X"19",X"50",X"80",X"80", + X"9F",X"31",X"90",X"08",X"0F",X"08",X"48",X"8C",X"18",X"08",X"23",X"90",X"D9",X"02",X"2A",X"59", + X"08",X"08",X"0F",X"49",X"00",X"80",X"8E",X"08",X"11",X"9A",X"18",X"08",X"37",X"9A",X"A0",X"06", + X"08",X"88",X"18",X"08",X"08",X"08",X"EC",X"51",X"88",X"09",X"E1",X"88",X"08",X"08",X"08",X"00", + X"58",X"0C",X"15",X"81",X"9A",X"81",X"04",X"90",X"80",X"80",X"80",X"BB",X"78",X"BF",X"08",X"08", + X"01",X"A8",X"08",X"08",X"75",X"AA",X"A1",X"83",X"51",X"88",X"8A",X"04",X"90",X"08",X"88",X"D4", + X"91",X"88",X"FA",X"91",X"85",X"98",X"B1",X"80",X"08",X"12",X"92",X"18",X"73",X"98",X"29",X"18", + X"4A",X"9E",X"80",X"79",X"8B",X"10",X"39",X"8B",X"9F",X"08",X"35",X"9A",X"AA",X"20",X"3B",X"83", + X"58",X"2E",X"11",X"92",X"91",X"0C",X"81",X"42",X"19",X"BE",X"AA",X"16",X"48",X"8B",X"89",X"2A", + X"8B",X"52",X"3B",X"8F",X"0A",X"22",X"10",X"9F",X"00",X"13",X"29",X"C9",X"B0",X"14",X"60",X"8A", + X"C0",X"02",X"81",X"19",X"98",X"99",X"91",X"44",X"A9",X"BB",X"88",X"53",X"2A",X"8D",X"AB",X"14", + X"70",X"8B",X"80",X"21",X"89",X"90",X"80",X"8A",X"B7",X"23",X"B9",X"B9",X"E0",X"05",X"15",X"99", + X"CA",X"83",X"60",X"0B",X"09",X"28",X"8E",X"00",X"32",X"AB",X"B1",X"13",X"0A",X"8A",X"78",X"1B", + X"0B",X"49",X"29",X"38",X"19",X"B2",X"52",X"0C",X"FC",X"30",X"69",X"8B",X"90",X"43",X"0C",X"AA", + X"52",X"A8",X"A1",X"28",X"39",X"9C",X"A1",X"30",X"23",X"29",X"FF",X"01",X"20",X"98",X"A8",X"29", + X"28",X"84",X"79",X"AB",X"B3",X"26",X"1A",X"A8",X"80",X"80",X"12",X"2D",X"CA",X"31",X"39",X"C9", + X"B0",X"22",X"70",X"20",X"0F",X"8B",X"32",X"59",X"88",X"00",X"8C",X"A9",X"21",X"22",X"08",X"AC", + X"C9",X"91",X"94",X"87",X"04",X"98",X"D9",X"92",X"38",X"03",X"30",X"2D",X"AF",X"88",X"83",X"42", + X"09",X"E9",X"A8",X"20",X"82",X"33",X"4E",X"9B",X"01",X"39",X"88",X"44",X"1A",X"BB",X"A0",X"92", + X"15",X"42",X"9B",X"E8",X"A2",X"91",X"B6",X"13",X"8C",X"A8",X"09",X"00",X"22",X"11",X"33",X"D3", + X"F8",X"CA",X"15",X"11",X"2D",X"0B",X"89",X"49",X"39",X"39",X"8C",X"12",X"90",X"F9",X"32",X"29", + X"90",X"28",X"0F",X"99",X"86",X"11",X"8A",X"B9",X"A2",X"07",X"00",X"A1",X"90",X"29",X"BC",X"B7", + X"03",X"B2",X"E2",X"80",X"1A",X"9B",X"35",X"18",X"0B",X"B0",X"93",X"27",X"B9",X"A2",X"35",X"99", + X"D8",X"02",X"89",X"1A",X"12",X"07",X"AC",X"9A",X"42",X"90",X"89",X"29",X"87",X"8A",X"0B",X"24", + X"00",X"11",X"C3",X"D9",X"83",X"04",X"88",X"1B",X"0F",X"80",X"1D",X"89",X"B3",X"C5",X"08",X"99", + X"A2",X"83",X"29",X"FF",X"51",X"17",X"08",X"08",X"EE",X"10",X"59",X"19",X"18",X"8E",X"08",X"08", + X"30",X"09",X"3A",X"BC",X"18",X"52",X"89",X"90",X"2A",X"8A",X"83",X"40",X"8C",X"83",X"22",X"CE", + X"98",X"10",X"08",X"18",X"98",X"C8",X"42",X"08",X"A2",X"21",X"10",X"81",X"5A",X"1E",X"88",X"88", + X"2B",X"99",X"29",X"4C",X"19",X"9C",X"B0",X"07",X"32",X"9A",X"90",X"85",X"C1",X"02",X"58",X"88", + X"94",X"7E",X"9D",X"11",X"3B",X"24",X"29",X"18",X"FD",X"00",X"48",X"1A",X"49",X"0A",X"F1",X"80", + X"22",X"B9",X"28",X"B8",X"81",X"54",X"F8",X"31",X"90",X"AC",X"18",X"68",X"B5",X"90",X"08",X"D0", + X"00",X"20",X"08",X"0B",X"C0",X"08",X"52",X"B9",X"A1",X"60",X"88",X"C2",X"B8",X"27",X"90",X"0E", + X"00",X"20",X"0B",X"59",X"00",X"9E",X"18",X"08",X"21",X"08",X"1E",X"80",X"01",X"2E",X"08",X"01", + X"59",X"08",X"C8",X"02",X"39",X"80",X"08",X"0D",X"D1",X"82",X"5A",X"80",X"28",X"BD",X"18",X"42", + X"AD",X"00",X"80",X"07",X"80",X"8A",X"B1",X"84",X"28",X"80",X"80",X"8F",X"90",X"81",X"68",X"08", + X"09",X"F1",X"81",X"28",X"D0",X"08",X"08",X"07",X"90",X"0A",X"B1",X"87",X"88",X"08",X"08",X"0F", + X"18",X"82",X"3A",X"18",X"8B",X"C0",X"80",X"68",X"C1",X"88",X"08",X"70",X"80",X"8E",X"18",X"13", + X"90",X"80",X"80",X"F8",X"08",X"06",X"88",X"08",X"0D",X"80",X"01",X"3E",X"08",X"08",X"00",X"69", + X"08",X"B8",X"08",X"60",X"80",X"88",X"08",X"F0",X"80",X"31",X"91",X"88",X"F0",X"80",X"48",X"C0", + X"08",X"08",X"16",X"90",X"8D",X"00",X"02",X"18",X"08",X"08",X"8F",X"09",X"07",X"90",X"80",X"8A", + X"B2",X"92",X"7D",X"00",X"80",X"13",X"80",X"88",X"F0",X"80",X"58",X"80",X"80",X"8C",X"90",X"80", + X"60",X"80",X"8A",X"C1",X"84",X"9A",X"80",X"08",X"17",X"00",X"80",X"F0",X"84",X"80",X"80",X"80", + X"89",X"F1",X"88",X"01",X"30",X"B4",X"98",X"A9",X"B1",X"80",X"80",X"74",X"90",X"08",X"0F",X"88", + X"41",X"90",X"80",X"8F",X"09",X"18",X"19",X"00",X"68",X"19",X"0A",X"B9",X"18",X"82",X"71",X"80", + X"80",X"80",X"CF",X"10",X"59",X"08",X"08",X"E0",X"08",X"00",X"88",X"80",X"36",X"90",X"9C",X"80", + X"82",X"68",X"80",X"80",X"80",X"80",X"F9",X"24",X"90",X"80",X"0F",X"80",X"82",X"A8",X"08",X"01", + X"70",X"8A",X"B0",X"00",X"70",X"88",X"00",X"88",X"08",X"08",X"8F",X"95",X"08",X"08",X"8F",X"00", + X"80",X"18",X"A0",X"08",X"04",X"28",X"E8",X"00",X"60",X"88",X"08",X"91",X"80",X"08",X"00",X"80", + X"8D",X"1F",X"3B",X"4D",X"09",X"00",X"80",X"09",X"00",X"80",X"82",X"71",X"8D",X"21",X"28",X"0C", + X"93",X"02",X"90",X"B4",X"F2",X"82",X"99",X"C1",X"28",X"1F",X"98",X"00",X"7C",X"19",X"08",X"00", + X"00",X"03",X"A8",X"90",X"61",X"89",X"89",X"28",X"81",X"B0",X"18",X"2B",X"F1",X"93",X"04",X"92", + X"FB",X"91",X"28",X"88",X"7B",X"A8",X"84",X"19",X"88",X"82",X"58",X"1A",X"18",X"88",X"A3",X"23", + X"3F",X"A8",X"35",X"B1",X"D9",X"82",X"01",X"96",X"98",X"B8",X"B2",X"A4",X"80",X"30",X"F9",X"B5", + X"81",X"94",X"B1",X"A1",X"11",X"20",X"06",X"C8",X"9B",X"68",X"01",X"89",X"2C",X"94",X"B3",X"9C", + X"21",X"95",X"B1",X"9C",X"12",X"81",X"C9",X"10",X"20",X"D2",X"7A",X"0A",X"A0",X"18",X"51",X"01", + X"C8",X"9A",X"50",X"80",X"A8",X"20",X"3A",X"D2",X"80",X"B1",X"B4",X"B4",X"14",X"01",X"DA",X"C0", + X"04",X"93",X"C3",X"9A",X"02",X"89",X"E0",X"01",X"29",X"11",X"A8",X"05",X"9A",X"90",X"68",X"AB", + X"45",X"39",X"BE",X"80",X"20",X"09",X"28",X"00",X"F8",X"83",X"18",X"E8",X"82",X"19",X"A2",X"13", + X"E8",X"91",X"82",X"31",X"03",X"AD",X"BA",X"60",X"59",X"8A",X"88",X"49",X"1C",X"09",X"1A",X"29", + X"2E",X"01",X"42",X"9D",X"98",X"21",X"1C",X"10",X"50",X"A9",X"A9",X"13",X"1A",X"6A",X"2B",X"2A", + X"3C",X"0F",X"2A",X"12",X"0A",X"29",X"5C",X"0B",X"58",X"2B",X"90",X"29",X"52",X"C8",X"B1",X"11", + X"E3",X"83",X"09",X"A0",X"B0",X"A9",X"09",X"28",X"34",X"8C",X"B8",X"23",X"B2",X"23",X"B3",X"95", + X"2C",X"7A",X"2E",X"09",X"00",X"70",X"1A",X"9A",X"B9",X"34",X"00",X"A9",X"09",X"8C",X"86",X"03", + X"0F",X"0A",X"22",X"01",X"89",X"80",X"0C",X"A2",X"36",X"A5",X"98",X"AD",X"18",X"10",X"2B",X"1C", + X"49",X"2D",X"29",X"2A",X"A8",X"96",X"22",X"C9",X"90",X"58",X"8A",X"A2",X"18",X"51",X"A2",X"A9", + X"BC",X"B8",X"73",X"19",X"AD",X"22",X"11",X"DB",X"01",X"32",X"22",X"9F",X"C8",X"03",X"B3",X"B2", + X"A3",X"91",X"B1",X"C3",X"B1",X"E3",X"17",X"89",X"B3",X"30",X"0B",X"04",X"74",X"18",X"8D",X"BA", + X"98",X"1A",X"4A",X"C8",X"99",X"AB",X"22",X"43",X"9D",X"E8",X"73",X"2C",X"87",X"11",X"8B",X"F9", + X"87",X"00",X"91",X"90",X"E8",X"08",X"03",X"18",X"81",X"89",X"F8",X"00",X"50",X"09",X"88",X"0A", + X"A9",X"14",X"21",X"9A",X"00",X"8A",X"BA",X"36",X"30",X"AB",X"08",X"1A",X"B9",X"23",X"58",X"AB", + X"01",X"3E",X"09",X"43",X"09",X"AD",X"08",X"40",X"88",X"08",X"0A",X"AC",X"30",X"69",X"0C",X"28", + X"2B",X"18",X"39",X"91",X"40",X"0A",X"AD",X"03",X"09",X"D1",X"13",X"5A",X"A9",X"E0",X"03",X"80", + X"86",X"90",X"A0",X"8A",X"8D",X"24",X"A2",X"03",X"20",X"FA",X"B5",X"11",X"8B",X"A7",X"0F",X"9C", + X"71",X"89",X"98",X"10",X"02",X"C6",X"9A",X"BA",X"14",X"70",X"08",X"8B",X"E1",X"81",X"58",X"08", + X"0A",X"BA",X"03",X"7C",X"1B",X"12",X"4A",X"0E",X"10",X"09",X"88",X"06",X"08",X"0D",X"80",X"30", + X"1D",X"49",X"08",X"0E",X"18",X"01",X"1B",X"59",X"08",X"C0",X"08",X"58",X"8A",X"0A",X"2A",X"00", + X"07",X"80",X"8E",X"18",X"21",X"A8",X"49",X"08",X"AC",X"18",X"13",X"01",X"08",X"0F",X"98",X"87", + X"08",X"8D",X"18",X"80",X"40",X"80",X"9E",X"18",X"31",X"90",X"08",X"80",X"F8",X"08",X"03",X"29", + X"18",X"CD",X"18",X"07",X"80",X"C8",X"00",X"83",X"29",X"08",X"F0",X"80",X"48",X"08",X"08",X"0C", + X"B2",X"90",X"17",X"80",X"89",X"D1",X"80",X"69",X"0C",X"18",X"80",X"05",X"90",X"0B",X"A1",X"82", + X"69",X"08",X"08",X"0F",X"08",X"00",X"59",X"08",X"C0",X"80",X"06",X"90",X"C0",X"08",X"08",X"68", + X"80",X"9B",X"18",X"24",X"90",X"80",X"80",X"F8",X"80",X"50",X"88",X"8B",X"90",X"80",X"70",X"8E", + X"18",X"08",X"11",X"29",X"08",X"F0",X"80",X"58",X"80",X"80",X"8C",X"80",X"87",X"88",X"0A",X"A2", + X"A1",X"07",X"99",X"A1",X"80",X"12",X"D6",X"90",X"0C",X"00",X"84",X"88",X"08",X"08",X"C8",X"08", + X"50",X"80",X"C9",X"19",X"51",X"9B",X"91",X"88",X"17",X"09",X"18",X"08",X"9F",X"08",X"58",X"08", + X"08",X"E1",X"80",X"20",X"B9",X"19",X"07",X"80",X"8D",X"18",X"00",X"49",X"0A",X"84",X"88",X"08", + X"D8",X"04",X"08",X"08",X"0E",X"80",X"87",X"9A",X"08",X"08",X"32",X"99",X"D1",X"88",X"50",X"89", + X"91",X"39",X"08",X"00",X"FA",X"06",X"08",X"80",X"AC",X"18",X"33",X"CC",X"18",X"08",X"78",X"0C", + X"00",X"82",X"29",X"1A",X"B8",X"51",X"80",X"80",X"80",X"DD",X"23",X"08",X"08",X"F8",X"80",X"03", + X"C0",X"80",X"80",X"07",X"98",X"A8",X"25",X"08",X"08",X"B0",X"13",X"90",X"88",X"08",X"08",X"0E", + X"BF",X"16",X"80",X"8F",X"00",X"80",X"81",X"89",X"00",X"80",X"68",X"0C",X"81",X"13",X"19",X"08", + X"E3",X"89",X"38",X"89",X"F1",X"03",X"91",X"E1",X"A4",X"A3",X"D1",X"A0",X"80",X"05",X"98",X"A9", + X"18",X"13",X"1C",X"19",X"38",X"89",X"23",X"2C",X"A8",X"61",X"9A",X"A7",X"A2",X"A2",X"C9",X"B3", + X"32",X"11",X"A0",X"FD",X"81",X"50",X"88",X"C8",X"00",X"20",X"98",X"B1",X"69",X"09",X"12",X"10", + X"8D",X"19",X"3A",X"80",X"24",X"01",X"F9",X"91",X"83",X"93",X"D2",X"B3",X"A1",X"82",X"C0",X"F1", + X"00",X"00",X"B5",X"02",X"0F",X"99",X"03",X"09",X"12",X"31",X"CC",X"AA",X"25",X"30",X"AB",X"11", + X"28",X"A9",X"8B",X"32",X"8E",X"95",X"35",X"AA",X"B9",X"A2",X"94",X"04",X"A1",X"A1",X"BB",X"88", + X"33",X"B8",X"DC",X"38",X"76",X"0B",X"9B",X"10",X"B4",X"34",X"5A",X"9B",X"C0",X"22",X"08",X"A3", + X"82",X"8A",X"F2",X"B2",X"A0",X"14",X"BA",X"E1",X"44",X"0A",X"D8",X"91",X"12",X"13",X"29",X"DE", + X"80",X"30",X"3B",X"89",X"11",X"2F",X"09",X"00",X"11",X"1C",X"AB",X"36",X"20",X"9E",X"98",X"20", + X"29",X"20",X"2C",X"99",X"09",X"58",X"00",X"39",X"0E",X"89",X"20",X"0D",X"90",X"20",X"00",X"6A", + X"1C",X"09",X"10",X"21",X"B2",X"05",X"1B",X"E9",X"B3",X"13",X"36",X"88",X"F8",X"93",X"02",X"B0", + X"C1",X"C1",X"86",X"02",X"B9",X"C1",X"11",X"09",X"A4",X"31",X"9E",X"0A",X"19",X"20",X"30",X"28", + X"8E",X"89",X"8A",X"13",X"49",X"DC",X"83",X"40",X"A0",X"93",X"BA",X"C3",X"17",X"48",X"C9",X"92", + X"81",X"90",X"12",X"02",X"C9",X"BA",X"39",X"06",X"09",X"8D",X"28",X"5C",X"29",X"82",X"D9",X"01", + X"60",X"89",X"98",X"19",X"09",X"82",X"58",X"81",X"0C",X"8E",X"91",X"42",X"8A",X"C8",X"24",X"18", + X"C1",X"A1",X"B5",X"91",X"11",X"BB",X"93",X"80",X"4D",X"5B",X"19",X"19",X"38",X"4B",X"B4",X"B8", + X"D3",X"03",X"B6",X"99",X"89",X"0A",X"04",X"93",X"08",X"83",X"9F",X"09",X"31",X"69",X"1F",X"0A", + X"49",X"1A",X"82",X"90",X"9A",X"01",X"39",X"7A",X"08",X"2B",X"28",X"6A",X"8D",X"39",X"5B",X"8A", + X"31",X"39",X"AF",X"98",X"70",X"1B",X"92",X"98",X"A8",X"12",X"59",X"9B",X"84",X"01",X"91",X"B4", + X"B1",X"41",X"11",X"B1",X"71",X"8D",X"D9",X"82",X"2A",X"9A",X"08",X"9C",X"B2",X"17",X"09",X"99", + X"CD",X"47",X"10",X"78",X"08",X"0F",X"B0",X"36",X"90",X"80",X"AB",X"A1",X"90",X"47",X"91",X"A1", + X"C8",X"91",X"87",X"08",X"08",X"A0",X"9A",X"80",X"53",X"80",X"AC",X"09",X"08",X"02",X"51",X"0B", + X"C9",X"00",X"10",X"20",X"2A",X"AD",X"90",X"21",X"10",X"20",X"1B",X"EA",X"84",X"02",X"01",X"89", + X"9F",X"90",X"14",X"0A",X"88",X"10",X"0B",X"8B",X"71",X"2D",X"09",X"31",X"0B",X"0A",X"08",X"1A", + X"31",X"50",X"CA",X"9A",X"4D",X"48",X"11",X"A9",X"81",X"83",X"90",X"E0",X"21",X"AA",X"27",X"80", + X"8C",X"A2",X"01",X"B6",X"B3",X"B3",X"B7",X"A9",X"FA",X"44",X"81",X"B0",X"71",X"FA",X"08",X"53", + X"A1",X"88",X"0C",X"E1",X"82",X"59",X"09",X"A9",X"90",X"08",X"17",X"00",X"0D",X"90",X"80",X"16", + X"80",X"9C",X"08",X"12",X"B9",X"71",X"90",X"C9",X"18",X"41",X"91",X"80",X"8A",X"F0",X"85",X"08", + X"92",X"91",X"BD",X"18",X"07",X"90",X"C1",X"81",X"A1",X"88",X"07",X"88",X"0D",X"18",X"03",X"88", + X"08",X"08",X"E8",X"08",X"68",X"80",X"08",X"0E",X"00",X"84",X"88",X"0D",X"18",X"80",X"80",X"40", + X"80",X"AD",X"18",X"16",X"90",X"80",X"88",X"E1",X"80",X"59",X"08",X"08",X"8E",X"18",X"04",X"90", + X"9B",X"18",X"08",X"00",X"61",X"90",X"8F",X"19",X"05",X"88",X"08",X"09",X"D1",X"80",X"48",X"08", + X"08",X"C9",X"08",X"43",X"90",X"F8",X"08",X"01",X"98",X"27",X"90",X"9C",X"18",X"40",X"80",X"80", + X"8A",X"E1",X"80",X"69",X"00",X"89",X"C1",X"80",X"79",X"0A",X"91",X"88",X"21",X"C0",X"87",X"88", + X"0D",X"18",X"38",X"80",X"08",X"08",X"F0",X"80",X"59",X"00",X"8D",X"18",X"03",X"09",X"0F",X"18", + X"01",X"29",X"D1",X"84",X"88",X"0D",X"18",X"38",X"80",X"80",X"0D",X"90",X"80",X"78",X"08",X"D1", + X"80",X"12",X"91",X"E0",X"80",X"30",X"88",X"E1",X"83",X"08",X"08",X"F2",X"82",X"88",X"08",X"08", + X"F0",X"80",X"22",X"D2",X"B0",X"80",X"25",X"99",X"C1",X"81",X"11",X"08",X"BA",X"04",X"A0",X"4F", + X"69",X"08",X"B1",X"03",X"88",X"08",X"F0",X"80",X"58",X"9B",X"18",X"00",X"69",X"0C",X"00",X"82", + X"39",X"0A",X"B9",X"70",X"80",X"80",X"08",X"88",X"F0",X"49",X"18",X"80",X"F0",X"08",X"10",X"B1", + X"80",X"82",X"40",X"E8",X"08",X"34",X"90",X"89",X"9A",X"24",X"08",X"0D",X"85",X"90",X"09",X"F1", + X"20",X"80",X"BB",X"08",X"00",X"17",X"B9",X"08",X"00",X"30",X"8D",X"83",X"61",X"88",X"D0",X"02", + X"08",X"10",X"89",X"F9",X"13",X"10",X"8A",X"8F",X"19",X"21",X"11",X"A9",X"F8",X"80",X"31",X"AC", + X"00",X"41",X"2E",X"88",X"01",X"21",X"39",X"8A",X"F8",X"12",X"49",X"0B",X"D1",X"39",X"8A",X"97", + X"00",X"98",X"99",X"A0",X"50",X"3A",X"A8",X"98",X"C3",X"18",X"9C",X"A7",X"28",X"9E",X"11",X"11", + X"98",X"2A",X"18",X"C0",X"01",X"53",X"C2",X"E0",X"A0",X"05",X"81",X"A9",X"00",X"98",X"19",X"1A", + X"25",X"98",X"AE",X"19",X"13",X"94",X"9B",X"1A",X"8B",X"97",X"48",X"1C",X"09",X"90",X"20",X"68", + X"00",X"BA",X"09",X"38",X"09",X"79",X"2C",X"AA",X"81",X"62",X"80",X"9B",X"0D",X"81",X"04",X"12", + X"8D",X"AB",X"83",X"25",X"01",X"98",X"D8",X"A2",X"13",X"02",X"F3",X"A2",X"BA",X"E1",X"05",X"20", + X"0B",X"CA",X"A2",X"42",X"39",X"0A",X"BD",X"99",X"34",X"41",X"8A",X"BA",X"80",X"3A",X"38",X"72", + X"8C",X"BD",X"82",X"23",X"10",X"8A",X"CB",X"82",X"31",X"10",X"43",X"AE",X"EA",X"83",X"63",X"0B", + X"D9",X"82",X"38",X"09",X"02",X"10",X"FA",X"A2",X"34",X"0A",X"B9",X"12",X"A3",X"A3",X"09",X"B5", + X"A2",X"BC",X"A4",X"37",X"0A",X"CB",X"02",X"40",X"09",X"32",X"9D",X"D9",X"14",X"22",X"CB",X"B0", + X"43",X"93",X"F0",X"80",X"01",X"91",X"8A",X"03",X"05",X"A9",X"D8",X"01",X"11",X"88",X"10",X"88", + X"FA",X"83",X"72",X"AB",X"B9",X"32",X"12",X"A2",X"8C",X"98",X"A1",X"07",X"31",X"C9",X"9A",X"08", + X"48",X"49",X"B2",X"41",X"AF",X"A8",X"36",X"00",X"B9",X"C2",X"02",X"A0",X"15",X"88",X"C9",X"91", + X"15",X"10",X"8A",X"CA",X"93",X"23",X"0A",X"2F",X"29",X"81",X"8B",X"03",X"73",X"B0",X"F0",X"88", + X"A3",X"97",X"18",X"9C",X"98",X"13",X"30",X"AA",X"91",X"8B",X"00",X"01",X"59",X"3C",X"1B",X"1E", + X"88",X"61",X"2A",X"A8",X"90",X"E2",X"05",X"01",X"AA",X"BB",X"13",X"53",X"9A",X"8B",X"49",X"AC", + X"02",X"40",X"0D",X"90",X"19",X"3B",X"43",X"21",X"D8",X"D1",X"90",X"05",X"40",X"AB",X"CA",X"02", + X"44",X"8A",X"1B",X"1A",X"2C",X"98",X"71",X"0A",X"9B",X"8A",X"30",X"54",X"90",X"C1",X"D2",X"A5", + X"95",X"88",X"A8",X"90",X"82",X"A3",X"82",X"88",X"E8",X"B2",X"04",X"40",X"0D",X"89",X"B2",X"20", + X"51",X"91",X"BC",X"AC",X"61",X"81",X"A1",X"99",X"A8",X"86",X"82",X"9A",X"91",X"84",X"C0",X"02", + X"39",X"2A",X"EA",X"39",X"68",X"29",X"2C",X"8E",X"03",X"11",X"99",X"0B",X"C8",X"01",X"49",X"01", + X"90",X"FB",X"04",X"01",X"00",X"88",X"99",X"0B",X"24",X"77",X"23",X"FA",X"B0",X"86",X"82",X"90", + X"BA",X"C0",X"04",X"11",X"08",X"90",X"AA",X"11",X"44",X"09",X"9A",X"02",X"9A",X"0B",X"23",X"25", + X"BB",X"F9",X"03",X"11",X"A6",X"A0",X"DA",X"12",X"48",X"3C",X"0A",X"99",X"20",X"4A",X"19",X"A2", + X"B0",X"71",X"99",X"F8",X"12",X"39",X"89",X"B2",X"92",X"02",X"19",X"CA",X"A4",X"44",X"99",X"B9", + X"C2",X"32",X"0A",X"F2",X"E1",X"11",X"30",X"CA",X"80",X"11",X"91",X"E2",X"38",X"BA",X"88",X"79", + X"1B",X"16",X"99",X"90",X"23",X"89",X"9C",X"01",X"07",X"B9",X"08",X"79",X"80",X"A0",X"0A",X"40", + X"79",X"AB",X"C3",X"23",X"0C",X"9C",X"81",X"42",X"F5",X"E3",X"88",X"D4",X"03",X"90",X"DD",X"10", + X"32",X"88",X"99",X"9D",X"08",X"06",X"29",X"0E",X"80",X"80",X"41",X"9A",X"9A",X"18",X"08",X"64", + X"90",X"9F",X"19",X"58",X"08",X"08",X"88",X"E1",X"80",X"59",X"08",X"9B",X"4B",X"11",X"49",X"0D", + X"80",X"04",X"89",X"0C",X"18",X"08",X"87",X"80",X"8C",X"00",X"05",X"90",X"80",X"80",X"D8",X"08", + X"24",X"90",X"89",X"A9",X"90",X"87",X"29",X"0E",X"80",X"80",X"08",X"08",X"70",X"80",X"AC",X"18", + X"68",X"08",X"08",X"0C",X"A1",X"81",X"79",X"00",X"B1",X"8C",X"29",X"25",X"90",X"AB",X"19",X"06", + X"9A",X"08",X"78",X"08",X"AA",X"18",X"78",X"80",X"80",X"8C",X"80",X"83",X"4A",X"18",X"BB",X"08", + X"03",X"78",X"0B",X"C1",X"82",X"79",X"A9",X"08",X"78",X"80",X"C0",X"01",X"28",X"08",X"80",X"8F", + X"08",X"85",X"80",X"88",X"D1",X"80",X"30",X"80",X"F0",X"08",X"30",X"80",X"F1",X"88",X"48",X"80", + X"D1",X"82",X"18",X"88",X"E1",X"10",X"B1",X"86",X"88",X"0B",X"91",X"86",X"88",X"0D",X"00",X"03", + X"88",X"0E",X"00",X"49",X"00",X"88",X"BA",X"15",X"19",X"00",X"E8",X"02",X"10",X"80",X"AF",X"18", + X"05",X"88",X"AA",X"18",X"25",X"9B",X"82",X"03",X"D8",X"01",X"12",X"AC",X"06",X"90",X"09",X"F1", + X"03",X"90",X"8C",X"91",X"84",X"A9",X"80",X"80",X"60",X"89",X"B0",X"80",X"71",X"80",X"C9",X"23", + X"08",X"88",X"CA",X"07",X"08",X"08",X"9F",X"01",X"20",X"80",X"8F",X"00",X"82",X"2D",X"80",X"80", + X"18",X"1A",X"38",X"00",X"08",X"3B",X"28",X"83",X"9F",X"21",X"10",X"F9",X"08",X"10",X"86",X"08", + X"8F",X"91",X"11",X"2B",X"2C",X"A8",X"00",X"09",X"11",X"A0",X"03",X"7B",X"3C",X"00",X"18",X"43", + X"08",X"EA",X"01",X"32",X"B3",X"F1",X"B0",X"04",X"09",X"9D",X"85",X"84",X"AA",X"98",X"30",X"98", + X"B2",X"4A",X"2C",X"1C",X"0B",X"40",X"49",X"00",X"B3",X"E1",X"11",X"20",X"A0",X"A2",X"2A",X"1F", + X"82",X"50",X"BC",X"00",X"12",X"BA",X"A0",X"52",X"68",X"8E",X"99",X"20",X"22",X"89",X"89",X"BB", + X"B1",X"55",X"01",X"A1",X"A9",X"C8",X"27",X"02",X"B9",X"A1",X"84",X"99",X"C1",X"17",X"18",X"AC", + X"89",X"13",X"02",X"29",X"8C",X"E9",X"92",X"44",X"09",X"99",X"99",X"89",X"33",X"71",X"BA",X"C8", + X"21",X"00",X"90",X"05",X"10",X"DA",X"98",X"31",X"22",X"48",X"DB",X"D8",X"12",X"52",X"9A",X"9A", + X"09",X"10",X"41",X"4C",X"8B",X"00",X"3D",X"88",X"25",X"01",X"BA",X"AA",X"84",X"23",X"41",X"1F", + X"D9",X"83",X"25",X"09",X"BC",X"00",X"31",X"80",X"89",X"1A",X"08",X"A8",X"8B",X"02",X"57",X"10", + X"EA",X"90",X"33",X"81",X"20",X"AD",X"E9",X"23",X"23",X"99",X"F9",X"01",X"18",X"90",X"22",X"2D", + X"B0",X"92",X"01",X"89",X"26",X"9A",X"9A",X"20",X"90",X"13",X"74",X"8F",X"B8",X"13",X"31",X"9D", + X"98",X"22",X"9B",X"A2",X"63",X"1D",X"BA",X"15",X"1A",X"99",X"24",X"2B",X"D9",X"82",X"20",X"18", + X"39",X"1F",X"AA",X"26",X"28",X"9D",X"90",X"22",X"1A",X"B9",X"33",X"2D",X"90",X"01",X"CA",X"86", + X"42",X"9D",X"B9",X"13",X"38",X"08",X"88",X"8B",X"D9",X"37",X"19",X"B8",X"95",X"10",X"9D",X"90", + X"23",X"29",X"CA",X"11",X"8A",X"1A",X"73",X"0B",X"E9",X"11",X"31",X"08",X"B1",X"AB",X"D0",X"46", + X"0A",X"B9",X"14",X"1A",X"9B",X"13",X"32",X"FA",X"20",X"19",X"B2",X"15",X"1B",X"AE",X"92",X"13", + X"59",X"A9",X"93",X"8C",X"01",X"17",X"B0",X"A9",X"12",X"4A",X"0D",X"3B",X"38",X"A9",X"23",X"93", + X"96",X"C9",X"93",X"BA",X"A6",X"23",X"1E",X"C9",X"03",X"10",X"08",X"33",X"DC",X"90",X"42",X"88", + X"C1",X"21",X"AC",X"A9",X"24",X"43",X"AB",X"D0",X"11",X"9A",X"B5",X"32",X"CD",X"80",X"28",X"89", + X"08",X"40",X"3D",X"89",X"21",X"08",X"1A",X"70",X"51",X"0C",X"B8",X"31",X"DB",X"A4",X"50",X"9F", + X"98",X"12",X"08",X"00",X"18",X"B9",X"34",X"05",X"98",X"A8",X"12",X"80",X"92",X"2B",X"8F",X"B0", + X"22",X"AB",X"F0",X"94",X"99",X"9B",X"84",X"35",X"A8",X"13",X"03",X"E0",X"A2",X"31",X"28",X"89", + X"AB",X"AE",X"41",X"29",X"EB",X"BA",X"35",X"29",X"B8",X"10",X"90",X"09",X"74",X"30",X"CB",X"02", + X"50",X"99",X"D8",X"20",X"32",X"8B",X"F9",X"B0",X"84",X"13",X"BB",X"E8",X"12",X"20",X"91",X"52", + X"28",X"B9",X"B9",X"83",X"73",X"B0",X"46",X"AE",X"F8",X"84",X"12",X"9A",X"A3",X"89",X"AF",X"01", + X"51",X"0C",X"0B",X"28",X"21",X"28",X"1D",X"A7",X"00",X"9F",X"08",X"23",X"98",X"9B",X"08",X"99", + X"30",X"71",X"8A",X"A9",X"28",X"82",X"87",X"18",X"AB",X"C2",X"27",X"AB",X"90",X"27",X"88",X"D0", + X"01",X"00",X"93",X"00",X"9F",X"03",X"08",X"8D",X"82",X"21",X"AC",X"90",X"31",X"A9",X"83",X"78", + X"AE",X"18",X"22",X"0B",X"99",X"00",X"5D",X"19",X"02",X"31",X"80",X"DE",X"18",X"79",X"00",X"80", + X"8C",X"80",X"08",X"79",X"00",X"A9",X"08",X"08",X"17",X"90",X"80",X"D0",X"00",X"21",X"88",X"8B", + X"B1",X"84",X"48",X"99",X"84",X"09",X"C1",X"03",X"80",X"F9",X"32",X"89",X"F8",X"00",X"5A",X"88", + X"83",X"88",X"9A",X"84",X"82",X"8A",X"18",X"09",X"AA",X"78",X"19",X"D8",X"80",X"17",X"10",X"0E", + X"A1",X"07",X"90",X"08",X"08",X"E0",X"08",X"14",X"90",X"9B",X"08",X"08",X"07",X"80",X"8E",X"18", + X"59",X"08",X"99",X"00",X"88",X"09",X"07",X"08",X"09",X"D1",X"85",X"88",X"08",X"08",X"AC",X"18", + X"07",X"88",X"0B",X"88",X"08",X"22",X"39",X"08",X"F9",X"05",X"08",X"0A",X"9A",X"09",X"00",X"82", + X"71",X"08",X"0F",X"90",X"15",X"90",X"08",X"09",X"F1",X"88",X"31",X"80",X"BC",X"19",X"00",X"37", + X"90",X"8F",X"18",X"21",X"90",X"9B",X"08",X"04",X"0B",X"95",X"3A",X"1B",X"F1",X"86",X"90",X"08", + X"08",X"C8",X"08",X"07",X"90",X"8B",X"18",X"84",X"19",X"09",X"E1",X"83",X"18",X"0B",X"D1",X"05", + X"80",X"C8",X"05",X"90",X"8D",X"18",X"22",X"90",X"AC",X"10",X"04",X"D0",X"38",X"00",X"E1",X"81", + X"29",X"A2",X"C1",X"09",X"23",X"91",X"EB",X"22",X"21",X"E9",X"80",X"41",X"08",X"08",X"F8",X"84", + X"19",X"00",X"CA",X"18",X"14",X"0A",X"AA",X"18",X"63",X"98",X"D9",X"00",X"40",X"09",X"90",X"80", + X"30",X"0E",X"AA",X"22",X"43",X"90",X"C1",X"39",X"0F",X"D0",X"23",X"19",X"0E",X"A1",X"80",X"58", + X"AA",X"00",X"06",X"18",X"B9",X"A1",X"06",X"18",X"A8",X"88",X"21",X"29",X"E9",X"03",X"31",X"AA", + X"C9",X"20",X"49",X"81",X"A0",X"C1",X"13",X"CB",X"BA",X"07",X"83",X"CA",X"08",X"41",X"99",X"A1", + X"43",X"08",X"B8",X"58",X"9A",X"B4",X"71",X"1C",X"B9",X"12",X"48",X"98",X"A8",X"A5",X"82",X"0D", + X"89",X"18",X"21",X"89",X"A9",X"19",X"94",X"DA",X"03",X"15",X"8D",X"9A",X"62",X"8A",X"B8",X"53", + X"18",X"D9",X"11",X"20",X"B2",X"92",X"0D",X"90",X"12",X"20",X"BF",X"B8",X"41",X"19",X"A8",X"31", + X"CA",X"D0",X"43",X"38",X"FA",X"82",X"20",X"A9",X"83",X"4B",X"A8",X"06",X"0A",X"89",X"59",X"19", + X"00",X"99",X"38",X"3B",X"1B",X"0D",X"1A",X"13",X"53",X"2F",X"D9",X"82",X"40",X"08",X"B0",X"91", + X"A8",X"A7",X"15",X"AA",X"B8",X"14",X"01",X"09",X"E8",X"11",X"00",X"B1",X"10",X"69",X"1B",X"9E", + X"81",X"33",X"4A",X"9F",X"91",X"21",X"00",X"B0",X"11",X"0A",X"CD",X"03",X"33",X"2A",X"BF",X"99", + X"13",X"24",X"18",X"DA",X"B1",X"23",X"39",X"B9",X"C0",X"90",X"84",X"83",X"81",X"BA",X"09",X"00", + X"41",X"6A",X"8D",X"A1",X"96",X"91",X"83",X"80",X"E9",X"00",X"23",X"00",X"4C",X"BC",X"03",X"38", + X"2E",X"9A",X"84",X"30",X"BB",X"B0",X"45",X"2A",X"AE",X"11",X"21",X"9B",X"A0",X"52",X"99",X"B0", + X"30",X"90",X"B2",X"24",X"D8",X"91",X"21",X"AA",X"96",X"08",X"AE",X"81",X"58",X"9A",X"08",X"22", + X"8C",X"08",X"38",X"20",X"D9",X"05",X"28",X"BF",X"00",X"31",X"8C",X"80",X"21",X"9A",X"80",X"41", + X"1D",X"09",X"10",X"2D",X"11",X"30",X"EA",X"93",X"34",X"AB",X"AB",X"15",X"28",X"BB",X"22",X"81", + X"B8",X"C5",X"18",X"0A",X"02",X"19",X"AA",X"14",X"21",X"AC",X"0D",X"4A",X"3A",X"09",X"20",X"2B", + X"D0",X"14",X"92",X"C1",X"A0",X"38",X"8B",X"12",X"08",X"0C",X"80",X"33",X"A9",X"91",X"28",X"A0", + X"C3",X"23",X"98",X"C9",X"31",X"80",X"98",X"21",X"AE",X"10",X"10",X"11",X"AC",X"1A",X"38",X"40", + X"8A",X"80",X"8B",X"19",X"43",X"92",X"BA",X"A8",X"81",X"12",X"29",X"0A",X"C1",X"83",X"2B",X"02", + X"A4",X"A9",X"8B",X"02",X"28",X"91",X"91",X"A9",X"91",X"51",X"8A",X"D9",X"00",X"60",X"80",X"88", + X"B9",X"82",X"30",X"2B",X"2A",X"18",X"C8",X"12",X"01",X"B2",X"00",X"B8",X"91",X"01",X"82",X"81", + X"C8",X"B3",X"14",X"90",X"F1",X"A3",X"80",X"A1",X"30",X"0C",X"B9",X"33",X"32",X"AB",X"88",X"91", + X"2A",X"A8",X"41",X"39",X"CB",X"A1",X"25",X"80",X"A8",X"88",X"B3",X"12",X"0A",X"AA",X"21",X"08", + X"1D",X"20",X"19",X"A9",X"03",X"00",X"A2",X"89",X"09",X"2A",X"29",X"80",X"30",X"8C",X"80",X"02", + X"0A",X"18",X"82",X"D8",X"12",X"11",X"B8",X"A0",X"13",X"98",X"91",X"29",X"9A",X"A3",X"13",X"A8", + X"B1",X"00",X"19",X"09",X"A3",X"02",X"98",X"99",X"20",X"00",X"A1",X"81",X"8A",X"91",X"32",X"A0", + X"B2",X"A1",X"92",X"D3",X"02",X"A9",X"99",X"12",X"09",X"01",X"98",X"A3",X"88",X"80",X"10",X"88", + X"B0",X"95",X"81",X"A1",X"A0",X"B2",X"81",X"38",X"88",X"D3",X"A3",X"88",X"91",X"80",X"90",X"19", + X"80",X"80",X"91",X"80",X"80",X"80",X"80",X"01",X"D8",X"12",X"34",X"52",X"13",X"77",X"20",X"11", + X"47",X"50",X"CE",X"DB",X"01",X"13",X"43",X"8B",X"99",X"89",X"00",X"44",X"8D",X"B9",X"01",X"12", + X"22",X"10",X"99",X"84",X"49",X"DC",X"BA",X"A8",X"13",X"33",X"42",X"0A",X"9A",X"37",X"61",X"8A", + X"AB",X"BA",X"98",X"11",X"21",X"B1",X"76",X"08",X"89",X"AA",X"C9",X"14",X"29",X"C8",X"23",X"33", + X"21",X"8A",X"83",X"8F",X"FE",X"80",X"13",X"21",X"99",X"AB",X"AB",X"C9",X"27",X"62",X"09",X"A8", + X"90",X"80",X"10",X"00",X"89",X"99",X"9A",X"89",X"80",X"01",X"57",X"19",X"EB",X"81",X"18",X"00", + X"08",X"01",X"0B",X"D8",X"47",X"33",X"32",X"9E",X"C9",X"08",X"AB",X"03",X"30",X"90",X"23",X"58", + X"DA",X"99",X"80",X"02",X"12",X"00",X"08",X"99",X"98",X"90",X"02",X"77",X"50",X"BE",X"B0",X"11", + X"01",X"08",X"CB",X"16",X"42",X"10",X"9A",X"AB",X"BB",X"99",X"B8",X"73",X"03",X"61",X"88",X"9E", + X"A9",X"81",X"33",X"9B",X"A9",X"00",X"24",X"32",X"20",X"0A",X"AB",X"05",X"AF",X"D8",X"80",X"02", + X"22",X"21",X"10",X"89",X"80",X"82",X"BF",X"AE",X"B0",X"54",X"09",X"CB",X"90",X"13",X"43",X"54", + X"28",X"9C",X"DC",X"A8",X"21",X"18",X"01",X"25",X"31",X"8A",X"DD",X"A8",X"00",X"35",X"21",X"09", + X"BB",X"AA",X"99",X"81",X"12",X"32",X"32",X"12",X"00",X"88",X"99",X"99",X"99",X"A8",X"98",X"90", + X"98",X"88",X"89",X"9F",X"F1",X"32",X"DC",X"80",X"23",X"53",X"22",X"09",X"9B",X"DA",X"BB",X"AA", + X"88",X"00",X"22",X"22",X"23",X"13",X"11",X"11",X"01",X"07",X"75",X"19",X"AC",X"BC",X"AA",X"88", + X"22",X"43",X"33",X"2A",X"B3",X"2B",X"B1",X"53",X"44",X"21",X"8A",X"BD",X"DA",X"BB",X"BA",X"A8", + X"88",X"11",X"13",X"23",X"32",X"46",X"76",X"08",X"9A",X"BC",X"9A",X"AB",X"A2",X"64",X"44",X"23", + X"18",X"80",X"BD",X"BA",X"B9",X"98",X"80",X"01",X"12",X"42",X"20",X"BE",X"CC",X"AA",X"98",X"03", + X"20",X"92",X"75",X"43",X"51",X"01",X"8A",X"DB",X"89",X"99",X"89",X"88",X"80",X"80",X"00",X"11", + X"20",X"20",X"11",X"00",X"0C",X"FC",X"16",X"22",X"11",X"89",X"AD",X"CC",X"A0",X"26",X"42",X"11", + X"99",X"BB",X"CA",X"AA",X"88",X"08",X"AA",X"25",X"53",X"53",X"21",X"18",X"8A",X"BB",X"CB",X"BA", + X"B9",X"A8",X"80",X"10",X"21",X"21",X"20",X"21",X"11",X"28",X"20",X"10",X"00",X"11",X"32",X"76", + X"19",X"BD",X"BA",X"EA",X"98",X"13",X"73",X"21",X"18",X"9A",X"AB",X"BA",X"A9",X"00",X"8A",X"36", + X"41",X"19",X"AB",X"B9",X"37",X"22",X"12",X"20",X"82",X"9F",X"BB",X"AB",X"AA",X"91",X"29",X"17", + X"61",X"09",X"AB",X"CA",X"BD",X"BA",X"45",X"20",X"45",X"21",X"8A",X"99",X"98",X"80",X"10",X"10", + X"08",X"A0",X"42",X"AF",X"BD",X"CA",X"BA",X"99",X"B8",X"55",X"33",X"23",X"11",X"00",X"89",X"98", + X"98",X"80",X"8B",X"FD",X"91",X"13",X"64",X"30",X"9A",X"BB",X"CA",X"9A",X"88",X"02",X"34",X"0D", + X"DB",X"99",X"90",X"23",X"43",X"43",X"22",X"23",X"15",X"30",X"9A",X"FE",X"BA",X"98",X"11",X"44", + X"21",X"33",X"1B",X"BA",X"BF",X"A9",X"89",X"98",X"8B",X"E9",X"02",X"64",X"22",X"20",X"89",X"AB", + X"BB",X"A9",X"98",X"01",X"21",X"30",X"88",X"A8",X"02",X"71",X"35",X"21",X"89",X"BC",X"CA",X"BD", + X"CA",X"98",X"23",X"43",X"43",X"31",X"10",X"89",X"9B",X"CB",X"AB",X"AA",X"A8",X"98",X"80",X"81", + X"01",X"81",X"01",X"01",X"10",X"01",X"81",X"81",X"83",X"73",X"08",X"9B",X"FA",X"BA",X"BA",X"91", + X"14",X"43",X"41",X"21",X"8A",X"83",X"01",X"81",X"98",X"99",X"A9",X"99",X"99",X"90",X"90",X"80", + X"90",X"A9",X"00",X"13",X"23",X"01",X"80",X"AA",X"FB",X"03",X"33",X"33",X"AE",X"BA",X"80",X"13", + X"53",X"43",X"41",X"AB",X"CA",X"BB",X"B9",X"98",X"80",X"81",X"80",X"81",X"80",X"81",X"81",X"81", + X"82",X"46",X"0A",X"BA",X"88",X"AB",X"80",X"21",X"32",X"32",X"21",X"10",X"88",X"89",X"8A",X"99", + X"8A",X"8A",X"89",X"88",X"09",X"08",X"08",X"00",X"13",X"62",X"08",X"9B",X"FC",X"B9",X"81",X"31", + X"24",X"33",X"23",X"31",X"38",X"12",X"38",X"AC",X"CC",X"CB",X"AB",X"B9",X"99",X"10",X"31",X"32", + X"39",X"9A",X"12",X"34",X"62",X"33",X"53",X"19",X"9B",X"CD",X"BA",X"CB",X"A8",X"00",X"11",X"9B", + X"01",X"23",X"53",X"44",X"12",X"11",X"00",X"03",X"00",X"BB",X"DC",X"BC",X"AA",X"99",X"98",X"11", + X"22",X"32",X"22",X"22",X"11",X"20",X"10",X"00",X"08",X"88",X"89",X"09",X"89",X"89",X"89",X"89", + X"89",X"BD",X"99",X"23",X"23",X"13",X"12",X"35",X"12",X"9D",X"BC",X"BB",X"A8",X"02",X"35",X"10", + X"13",X"29",X"BB",X"9A",X"00",X"41",X"09",X"11",X"32",X"28",X"8A",X"9A",X"BB",X"AA",X"8A",X"08", + X"09",X"A9",X"02",X"54",X"42",X"10",X"9A",X"A9",X"A9",X"18",X"20",X"18",X"18",X"01",X"29",X"AE", + X"A8",X"89",X"99",X"BB",X"91",X"09",X"91",X"12",X"24",X"33",X"44",X"32",X"18",X"9A",X"9A",X"AA", + X"9A",X"00",X"29",X"0A",X"99",X"BA",X"9A",X"89",X"08",X"10",X"18",X"00",X"01",X"10",X"22",X"51", + X"00",X"10",X"81",X"80",X"88",X"90",X"A8",X"99",X"A8",X"A8",X"A8",X"98",X"90",X"80",X"80",X"81", + X"81",X"01",X"81",X"01",X"01",X"00",X"01",X"80",X"00",X"81",X"13",X"8A",X"A8",X"81",X"98",X"99", + X"98",X"AA",X"BA",X"82",X"11",X"21",X"01",X"01",X"88",X"B9",X"91",X"02",X"25",X"33",X"11",X"0A", + X"AA",X"BB",X"9B",X"9A",X"98",X"88",X"88",X"18",X"10",X"10",X"18",X"10",X"10",X"18",X"18",X"18", + X"00",X"08",X"08",X"88",X"09",X"08",X"88",X"09",X"08",X"88",X"09",X"08",X"88",X"09",X"80",X"18", + X"8A",X"09",X"10",X"21",X"21",X"20",X"10",X"08",X"89",X"89",X"88",X"99",X"09",X"89",X"88",X"88", + X"08",X"08",X"08",X"00",X"00",X"08",X"10",X"00",X"08",X"18",X"18",X"08",X"08",X"08",X"10",X"10", + X"08",X"09",X"9C",X"BB",X"9A",X"02",X"32",X"31",X"18",X"0B",X"A8",X"00",X"10",X"18",X"0A",X"9A", + X"09",X"10",X"21",X"21",X"10",X"18",X"08",X"89",X"89",X"88",X"89",X"98",X"89",X"09",X"08",X"09", + X"00",X"08",X"18",X"02",X"21",X"18",X"9A",X"AA",X"89",X"01",X"11",X"20",X"20",X"10",X"08",X"08", + X"09",X"09",X"88",X"10",X"09",X"89",X"9B",X"99",X"99",X"89",X"89",X"01",X"21",X"31",X"10",X"10", + X"08",X"10",X"08",X"08",X"08",X"88",X"08",X"09",X"08",X"09",X"08",X"09",X"08",X"88",X"08",X"08", + X"81",X"A8",X"00",X"81",X"A2",X"B0",X"09",X"28",X"00",X"81",X"80",X"3A",X"A2",X"B3",X"B0",X"18", + X"98",X"01",X"A2",X"89",X"92",X"92",X"A2",X"89",X"28",X"94",X"A8",X"89",X"91",X"09",X"11",X"90", + X"84",X"89",X"80",X"0A",X"10",X"B1",X"88",X"80",X"02",X"88",X"1A",X"19",X"03",X"A9",X"18",X"09", + X"29",X"A1",X"A1",X"93",X"88",X"A1",X"18",X"80",X"19",X"92",X"89",X"30",X"A8",X"A1",X"89",X"81", + X"3A",X"82",X"4C",X"92",X"0C",X"27",X"DA",X"68",X"C1",X"49",X"80",X"88",X"98",X"15",X"1F",X"03", + X"BC",X"52",X"BC",X"41",X"C8",X"58",X"C1",X"29",X"B4",X"2D",X"83",X"8C",X"24",X"BB",X"41",X"D0", + X"49",X"B2",X"2B",X"96",X"8C",X"13",X"B9",X"40",X"D1",X"2A",X"94",X"8C",X"22",X"B9",X"69",X"B3", + X"2D",X"04",X"AB",X"58",X"B2",X"3D",X"84",X"9A",X"30",X"E1",X"3B",X"84",X"9D",X"32",X"D1",X"3C", + X"95",X"9B",X"40",X"D2",X"3C",X"84",X"AC",X"41",X"C2",X"2C",X"94",X"99",X"30",X"C0",X"08",X"11", + X"98",X"A0",X"49",X"02",X"F8",X"5A",X"02",X"BC",X"41",X"B3",X"1D",X"93",X"1A",X"39",X"D8",X"22", + X"08",X"8D",X"B6",X"2A",X"00",X"D0",X"59",X"92",X"BC",X"51",X"A1",X"8E",X"05",X"88",X"0B",X"A1", + X"61",X"AA",X"09",X"87",X"1D",X"00",X"B4",X"5C",X"A1",X"A8",X"72",X"D9",X"09",X"37",X"BC",X"19", + X"87",X"2D",X"B3",X"98",X"71",X"DB",X"48",X"03",X"BE",X"21",X"01",X"0E",X"82",X"94",X"2E",X"A5", + X"A8",X"68",X"D0",X"11",X"8A",X"28",X"D3",X"3C",X"B1",X"79",X"B2",X"80",X"0F",X"35",X"DA",X"59", + X"81",X"E3",X"5D",X"94",X"A0",X"2F",X"35",X"D8",X"5D",X"13",X"E8",X"50",X"A3",X"E0",X"5D",X"95", + X"9C",X"5A",X"84",X"BB",X"63",X"D8",X"19",X"28",X"98",X"7D",X"85",X"C1",X"4D",X"95",X"0B",X"18", + X"81",X"88",X"E6",X"2D",X"A5",X"99",X"2E",X"15",X"AC",X"5A",X"85",X"CA",X"42",X"B9",X"10",X"08", + X"0F",X"15",X"BA",X"38",X"83",X"B8",X"07",X"D9",X"59",X"83",X"CA",X"32",X"1D",X"A3",X"3B",X"8A", + X"C7",X"4D",X"B5",X"81",X"8F",X"05",X"3D",X"B3",X"20",X"9C",X"A6",X"00",X"BB",X"62",X"AA",X"89", + X"34",X"2F",X"84",X"0C",X"08",X"91",X"26",X"D1",X"12",X"F0",X"09",X"49",X"A3",X"B1",X"5B",X"A4", + X"0C",X"84",X"0C",X"12",X"A0",X"3A",X"E8",X"53",X"D5",X"D3",X"A8",X"B9",X"78",X"92",X"C9",X"60", + X"C8",X"28",X"98",X"69",X"D3",X"4B",X"A2",X"19",X"B9",X"71",X"2E",X"4C",X"82",X"B0",X"5B",X"95", + X"A9",X"49",X"A2",X"1A",X"98",X"35",X"CA",X"31",X"A1",X"8B",X"88",X"73",X"F9",X"58",X"B2",X"98", + X"39",X"C4",X"1C",X"11",X"B1",X"3B",X"A0",X"87",X"3F",X"A5",X"1B",X"80",X"00",X"A2",X"3F",X"85", + X"9B",X"20",X"A4",X"8D",X"14",X"AB",X"30",X"91",X"1C",X"01",X"C4",X"4D",X"A5",X"0C",X"11",X"91", + X"A8",X"30",X"A0",X"88",X"49",X"C2",X"3D",X"92",X"4B",X"A4",X"0A",X"08",X"06",X"AD",X"13",X"0C", + X"81",X"20",X"BA",X"33",X"B8",X"D0",X"70",X"C0",X"29",X"82",X"8A",X"1B",X"87",X"8B",X"31",X"B0", + X"89",X"60",X"C8",X"13",X"8E",X"03",X"A9",X"30",X"B2",X"9F",X"35",X"BA",X"20",X"80",X"80",X"2C", + X"90",X"97",X"2F",X"02",X"90",X"3B",X"B4",X"0E",X"25",X"CB",X"40",X"93",X"9E",X"21",X"90",X"81", + X"0D",X"03",X"08",X"0E",X"84",X"09",X"90",X"08",X"84",X"0B",X"A8",X"33",X"19",X"FB",X"45",X"A8", + X"0A",X"A7",X"0B",X"11",X"D0",X"4A",X"01",X"B9",X"51",X"A8",X"98",X"23",X"AC",X"20",X"B3",X"2B", + X"12",X"F9",X"78",X"98",X"88",X"14",X"AD",X"22",X"88",X"C0",X"48",X"98",X"82",X"0C",X"11",X"A1", + X"18",X"1E",X"85",X"8B",X"18",X"34",X"F9",X"5A",X"93",X"B9",X"79",X"B4",X"8C",X"59",X"D4",X"2D", + X"12",X"D2",X"2B",X"12",X"D9",X"69",X"B2",X"19",X"3C",X"D5",X"1D",X"11",X"A1",X"4B",X"C3",X"2A", + X"81",X"A0",X"7B",X"A5",X"8B",X"30",X"D3",X"1E",X"22",X"C1",X"2B",X"03",X"AC",X"34",X"C9",X"38", + X"A3",X"0F",X"22",X"C1",X"0A",X"06",X"AD",X"42",X"C1",X"0A",X"14",X"AB",X"12",X"0B",X"10",X"A5", + X"3F",X"A5",X"8A",X"19",X"04",X"9C",X"84",X"1B",X"80",X"01",X"1C",X"80",X"23",X"DA",X"03",X"4A", + X"C0",X"84",X"3F",X"92",X"18",X"80",X"AD",X"62",X"DA",X"58",X"80",X"A8",X"49",X"88",X"92",X"2B", + X"10",X"99",X"04",X"AB",X"33",X"F0",X"51",X"EB",X"53",X"CA",X"20",X"10",X"B9",X"38",X"10",X"C9", + X"31",X"09",X"A2",X"C1",X"7A",X"D3",X"2A",X"92",X"19",X"F1",X"6B",X"B4",X"09",X"18",X"A3",X"0D", + X"20",X"B1",X"28",X"A0",X"31",X"DB",X"51",X"A8",X"08",X"11",X"89",X"D2",X"7A",X"A2",X"09",X"19", + X"83",X"0D",X"02",X"A9",X"69",X"C2",X"49",X"9A",X"97",X"1C",X"93",X"09",X"88",X"39",X"D4",X"0C", + X"12",X"A8",X"2B",X"15",X"AC",X"31",X"98",X"90",X"10",X"88",X"1B",X"C7",X"1D",X"02",X"99",X"39", + X"92",X"0B",X"11",X"90",X"09",X"28",X"E4",X"0C",X"12",X"B9",X"58",X"92",X"BB",X"71",X"AA",X"84", + X"1C",X"82",X"80",X"1B",X"83",X"2B",X"E0",X"50",X"C1",X"1C",X"05",X"A8",X"3B",X"94",X"9A",X"38", + X"92",X"BA",X"70",X"B1",X"88",X"3A",X"82",X"AC",X"68",X"95",X"AE",X"23",X"B8",X"3C",X"83",X"A0", + X"39",X"8D",X"86",X"0A",X"81",X"A0",X"59",X"B5",X"8E",X"23",X"B9",X"2A",X"04",X"9A",X"18",X"91", + X"01",X"0B",X"A1",X"07",X"1D",X"92",X"18",X"80",X"8D",X"04",X"08",X"8A",X"A2",X"52",X"BF",X"11", + X"81",X"2E",X"93",X"0B",X"40",X"C1",X"09",X"22",X"CA",X"21",X"01",X"BD",X"25",X"A9",X"39",X"B2", + X"88",X"68",X"D0",X"28",X"00",X"9C",X"34",X"B9",X"09",X"51",X"D0",X"18",X"09",X"94",X"8A",X"10", + X"8A",X"06",X"0D",X"02",X"80",X"AC",X"61",X"D1",X"1A",X"12",X"F1",X"3B",X"83",X"C0",X"4A",X"A4", + X"9A",X"49",X"91",X"09",X"11",X"C0",X"39",X"A1",X"A3",X"7D",X"82",X"88",X"19",X"A3",X"3C",X"91", + X"08",X"18",X"E3",X"3E",X"83",X"9A",X"4A",X"A7",X"9A",X"38",X"A2",X"89",X"12",X"AC",X"32",X"B8", + X"2C",X"07",X"AA",X"30",X"A2",X"0F",X"15",X"B9",X"38",X"92",X"9B",X"23",X"9A",X"93",X"09",X"1C", + X"C7",X"2E",X"02",X"90",X"89",X"03",X"1D",X"93",X"09",X"09",X"A4",X"19",X"9B",X"43",X"9B",X"C2", + X"59",X"1C",X"B7",X"1A",X"91",X"88",X"14",X"DB",X"61",X"B8",X"18",X"10",X"A0",X"00",X"1A",X"A4", + X"99",X"21",X"8C",X"13",X"AA",X"40",X"F8",X"44",X"CB",X"33",X"B8",X"89",X"32",X"C0",X"89",X"41", + X"B9",X"00",X"2A",X"21",X"F0",X"6A",X"A1",X"2A",X"90",X"78",X"E1",X"3A",X"92",X"98",X"3B",X"95", + X"A9",X"48",X"A0",X"10",X"AA",X"35",X"BB",X"40",X"91",X"9A",X"11",X"49",X"F1",X"3A",X"91",X"91", + X"2C",X"94",X"0A",X"11",X"C8",X"79",X"B0",X"30",X"2F",X"A5",X"1A",X"90",X"10",X"A8",X"5A",X"A5", + X"8B",X"21",X"B2",X"1E",X"05",X"9A",X"10",X"08",X"88",X"81",X"80",X"4D",X"95",X"8A",X"02",X"B0", + X"3B",X"83",X"8A",X"10",X"81",X"9A",X"7A",X"B5",X"0B",X"13",X"AB",X"38",X"87",X"BC",X"32",X"0B", + X"B4",X"3B",X"90",X"93",X"2D",X"A1",X"70",X"C9",X"30",X"B3",X"3F",X"01",X"A1",X"3D",X"03",X"AA", + X"3A",X"13",X"E8",X"38",X"80",X"B1",X"2A",X"06",X"BA",X"4D",X"07",X"8C",X"11",X"90",X"1A",X"10", + X"B1",X"04",X"1E",X"93",X"0A",X"30",X"E8",X"4A",X"97",X"8C",X"11",X"91",X"0B",X"03",X"A0",X"19", + X"89",X"02",X"29",X"8D",X"B7",X"19",X"90",X"08",X"84",X"0D",X"80",X"11",X"2B",X"BC",X"37",X"8A", + X"08",X"B6",X"2C",X"82",X"AA",X"68",X"91",X"9A",X"33",X"B9",X"98",X"35",X"AD",X"22",X"C1",X"29", + X"91",X"B9",X"70",X"A8",X"08",X"13",X"AF",X"12",X"81",X"C9",X"40",X"A0",X"81",X"2C",X"83",X"99", + X"02",X"0E",X"96",X"8A",X"00",X"14",X"DA",X"68",X"A2",X"9A",X"68",X"D2",X"1A",X"20",X"D2",X"1B", + X"12",X"B0",X"3B",X"82",X"AA",X"60",X"C1",X"18",X"08",X"E3",X"2C",X"01",X"90",X"3B",X"C3",X"2A", + X"81",X"A8",X"6A",X"C4",X"1C",X"12",X"B1",X"3F",X"03",X"B8",X"3A",X"83",X"AB",X"35",X"BB",X"40", + X"A3",X"0F",X"13",X"B9",X"3A",X"85",X"9E",X"22",X"B0",X"19",X"04",X"AB",X"12",X"1B",X"82",X"A3", + X"4F",X"A7",X"8A",X"18",X"01",X"8B",X"95",X"1B",X"80",X"10",X"1B",X"A2",X"14",X"CB",X"23",X"3B", + X"E1",X"83",X"4E",X"A3",X"2A",X"08",X"9D",X"53",X"E9",X"30",X"90",X"98",X"38",X"98",X"92",X"2B", + X"02",X"B9",X"05",X"9B",X"23",X"C9",X"71",X"DB",X"45",X"BA",X"21",X"81",X"B9",X"38",X"01",X"CA", + X"41",X"89",X"91",X"98",X"79",X"C1",X"49",X"A2",X"08",X"D0",X"79",X"B3",X"1A",X"00",X"A2",X"2E", + X"11",X"B1",X"28",X"A8",X"31",X"CB",X"52",X"B9",X"18",X"21",X"A9",X"C1",X"79",X"B2",X"2A",X"18", + X"B4",X"1D",X"83",X"8A",X"40",X"E1",X"39",X"AA",X"97",X"2D",X"93",X"19",X"98",X"20",X"D2",X"3E", + X"02",X"99",X"29",X"95",X"9C",X"13",X"99",X"80",X"02",X"8A",X"19",X"C7",X"1D",X"02",X"8A",X"20", + X"B2",X"1C",X"02",X"98",X"19",X"11",X"D2",X"3D",X"83",X"9B",X"23",X"C0",X"0C",X"53",X"CA",X"83", + X"3C",X"A3",X"08",X"1B",X"93",X"3A",X"F9",X"60",X"A8",X"2A",X"A7",X"8A",X"3A",X"B6",X"8A",X"20", + X"A1",X"99",X"41",X"C0",X"80",X"29",X"A3",X"8D",X"32",X"B6",X"AF",X"14",X"9A",X"29",X"93",X"98", + X"39",X"8C",X"A7",X"2C",X"81",X"98",X"40",X"C2",X"1F",X"04",X"9A",X"18",X"84",X"9A",X"10",X"91", + X"00",X"0A",X"A1",X"14",X"2F",X"91",X"29",X"80",X"0B",X"86",X"08",X"9A",X"93",X"41",X"BF",X"03", + X"90",X"4D",X"A4",X"1A",X"11",X"D0",X"19",X"22",X"CA",X"21",X"01",X"BC",X"25",X"9B",X"30",X"C1", + X"19",X"31",X"F8",X"20",X"88",X"8B",X"17",X"9A",X"19",X"33",X"F8",X"28",X"09",X"93",X"0B",X"02", + X"8B",X"05",X"2F",X"83",X"98",X"0C",X"36",X"D8",X"3A",X"03",X"E8",X"59",X"A3",X"A9",X"59",X"A3", + X"8B",X"48",X"A1",X"09",X"12",X"C9",X"58",X"A0",X"80",X"5B",X"B5",X"0A",X"18",X"A2",X"4B",X"A2", + X"08",X"18",X"C2",X"6C",X"83",X"9A",X"4A",X"A7",X"9A",X"38",X"A2",X"8A",X"22",X"BC",X"34",X"B9", + X"3B",X"87",X"9B",X"31",X"B2",X"0E",X"16",X"AA",X"38",X"91",X"8C",X"23",X"9A",X"82",X"0A",X"1A", + X"B7",X"3F",X"83",X"98",X"0A",X"13",X"1E",X"93",X"19",X"98",X"94",X"19",X"AA",X"43",X"AC",X"A3", + X"59",X"0C",X"A7",X"1B",X"92",X"80",X"13",X"FA",X"50",X"B0",X"18",X"10",X"B0",X"11",X"0B",X"94", + X"99",X"21",X"9C",X"13",X"BA",X"58",X"C8",X"73",X"EA",X"32",X"A9",X"08",X"30",X"B0",X"89",X"41", + X"C9",X"02",X"09",X"28",X"F1",X"5A",X"B3",X"1A",X"80",X"69",X"F2",X"2A",X"92",X"90",X"2B",X"95", + X"A9",X"49",X"A1",X"18",X"A8",X"34",X"D9",X"30",X"90",X"99",X"21",X"3A",X"F1",X"4A",X"A2",X"90", + X"2B",X"96",X"0B",X"02",X"C8",X"59",X"C2",X"20",X"1F",X"95",X"0A",X"91",X"01",X"A8",X"5A",X"B6", + X"8A",X"10",X"91",X"0C",X"15",X"AA",X"11",X"08",X"98",X"01",X"81",X"3F",X"95",X"8B",X"12",X"B0", + X"3A",X"A4",X"8A",X"18",X"81",X"A9",X"69",X"B5",X"0B",X"13",X"BA",X"38",X"85",X"DB",X"51",X"89", + X"B4",X"2B",X"80",X"82",X"0A",X"B2",X"70",X"D9",X"30",X"B4",X"0D",X"12",X"B2",X"2D",X"03",X"B9", + X"3A",X"13",X"F8",X"38",X"08",X"A0",X"2B",X"14",X"C9",X"3D",X"27",X"9D",X"12",X"A1",X"1B",X"01", + X"A0",X"23",X"2F",X"B5",X"09",X"18",X"C0",X"4A",X"97",X"9C",X"21",X"91",X"8B",X"13",X"A0",X"19", + X"98",X"03",X"2B",X"9E",X"97",X"1A",X"A1",X"19",X"03",X"8F",X"00",X"11",X"0A",X"B8",X"54",X"9C", + X"08",X"A6",X"1B",X"93",X"B8",X"78",X"90",X"9A",X"42",X"AA",X"09",X"33",X"BE",X"21",X"A0",X"4A", + X"81",X"B8",X"70",X"B8",X"00",X"03",X"AF",X"21",X"80",X"BA",X"70",X"A0",X"81",X"1B",X"84",X"99", + X"01",X"0C",X"97",X"8A",X"10",X"02",X"BF",X"58",X"A2",X"8B",X"58",X"D2",X"2B",X"20",X"D2",X"2C", + X"02",X"B1",X"3A",X"91",X"9A",X"50",X"B0",X"39",X"09",X"F4",X"1B",X"82",X"A1",X"3B",X"D3",X"2A", + X"81",X"89",X"4A",X"F4",X"0B",X"12",X"B1",X"2F",X"13",X"B8",X"3A",X"93",X"AA",X"25",X"BB",X"41", + X"B2",X"0F",X"23",X"B9",X"3A",X"84",X"9F",X"23",X"C0",X"1A",X"03",X"AB",X"13",X"1B",X"93",X"91", + X"4F",X"A7",X"0B",X"01",X"92",X"8B",X"95",X"1B",X"91",X"28",X"1B",X"A3",X"13",X"DC",X"23",X"1A", + X"E1",X"83",X"4E",X"A3",X"29",X"88",X"9B",X"64",X"D9",X"30",X"90",X"99",X"38",X"98",X"82",X"3C", + X"83",X"B8",X"13",X"8D",X"12",X"BB",X"71",X"EA",X"44",X"BB",X"22",X"08",X"A9",X"30",X"81",X"BA", + X"35",X"9B",X"82",X"99",X"78",X"E2",X"3A",X"A1",X"18",X"E1",X"59",X"D2",X"19",X"00",X"A1",X"2C", + X"12",X"B0",X"38",X"A8",X"21",X"BF",X"23",X"C9",X"28",X"01",X"9A",X"90",X"78",X"C3",X"1A",X"18", + X"B4",X"0C",X"94",X"89",X"22",X"F1",X"28",X"B0",X"95",X"2E",X"93",X"19",X"A0",X"11",X"C1",X"4D", + X"83",X"9A",X"39",X"95",X"8D",X"13",X"99",X"80",X"00",X"0A",X"08",X"C6",X"2D",X"84",X"8A",X"28", + X"A0",X"2B",X"83",X"98",X"10",X"01",X"B2",X"4D",X"94",X"0D",X"12",X"A8",X"8B",X"62",X"D8",X"82", + X"19",X"B2",X"10",X"0C",X"03",X"2A",X"E8",X"52",X"C8",X"19",X"A6",X"8B",X"28",X"B5",X"89",X"21", + X"B1",X"8B",X"42",X"E8",X"08",X"38",X"A3",X"8A",X"41",X"B3",X"9F",X"06",X"9B",X"28",X"B5",X"99", + X"3A",X"9A",X"87",X"2C",X"81",X"98",X"40",X"D1",X"2E",X"14",X"AA",X"29",X"03",X"9B",X"10",X"91", + X"38",X"99",X"B3",X"23",X"4F",X"C2",X"29",X"91",X"8B",X"07",X"09",X"98",X"82",X"31",X"EC",X"05", + X"89",X"3C",X"A4",X"1A",X"11",X"E0",X"29",X"11",X"BB",X"41",X"01",X"BD",X"24",X"AA",X"38",X"C2", + X"08",X"13",X"F9",X"31",X"89",X"8A",X"17",X"AA",X"18",X"23",X"F8",X"20",X"88",X"94",X"8B",X"02", + X"9A",X"05",X"8D",X"02",X"88",X"8A",X"37",X"C8",X"3A",X"03",X"E9",X"79",X"91",X"89",X"39",X"C3", + X"1C",X"30",X"C1",X"19",X"01",X"A9",X"48",X"A8",X"18",X"6B",X"C4",X"09",X"18",X"A2",X"4B",X"A2", + X"09",X"10",X"B0",X"7A",X"B5",X"8B",X"30",X"C5",X"8C",X"21",X"B1",X"1A",X"12",X"9C",X"24",X"B9", + X"29",X"A7",X"9C",X"30",X"91",X"0B",X"17",X"AB",X"40",X"A1",X"8B",X"24",X"9B",X"83",X"1A",X"00", + X"A7",X"2F",X"83",X"99",X"19",X"83",X"2F",X"82",X"1A",X"90",X"82",X"19",X"9A",X"36",X"BA",X"01", + X"4A",X"99",X"C6",X"2B",X"B3",X"01",X"12",X"ED",X"51",X"B8",X"18",X"10",X"B8",X"10",X"2B",X"94", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"C3",X"87",X"E0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"E0",X"04", + X"ED",X"00",X"7C",X"BA",X"C0",X"7D",X"BB",X"C9",X"A7",X"ED",X"52",X"23",X"C9",X"23",X"7C",X"B5", + X"2B",X"C9",X"7D",X"02",X"03",X"7C",X"02",X"03",X"C9",X"1A",X"6F",X"13",X"1A",X"67",X"C9",X"DB", + X"04",X"E6",X"80",X"32",X"FD",X"FE",X"C9",X"31",X"00",X"F6",X"CD",X"60",X"F0",X"CD",X"23",X"EB", + X"31",X"00",X"F6",X"21",X"03",X"E0",X"06",X"5F",X"AF",X"77",X"23",X"10",X"FC",X"CD",X"CA",X"E0", + X"AF",X"32",X"FD",X"FE",X"32",X"FE",X"FE",X"3A",X"04",X"E0",X"A7",X"CC",X"84",X"F2",X"06",X"01", + X"CD",X"43",X"F3",X"CD",X"B8",X"F2",X"06",X"01",X"CD",X"43",X"F3",X"CD",X"B8",X"F2",X"0E",X"00", + X"CD",X"86",X"F3",X"0E",X"00",X"CD",X"86",X"F3",X"18",X"C6",X"AF",X"32",X"03",X"E0",X"32",X"FD", + X"FE",X"32",X"01",X"F6",X"21",X"05",X"E0",X"22",X"5D",X"E0",X"21",X"04",X"ED",X"22",X"5F",X"E0", + X"06",X"4D",X"36",X"20",X"23",X"10",X"FB",X"21",X"3D",X"EB",X"CD",X"50",X"F2",X"CD",X"1E",X"F1", + X"FE",X"01",X"CA",X"36",X"E1",X"FE",X"02",X"CA",X"96",X"E1",X"FE",X"03",X"CA",X"36",X"E2",X"FE", + X"04",X"CA",X"47",X"E2",X"FE",X"06",X"CA",X"D0",X"F0",X"FE",X"07",X"20",X"BD",X"21",X"85",X"EB", + X"CD",X"50",X"F2",X"CD",X"1E",X"F1",X"FE",X"01",X"CA",X"C3",X"EE",X"FE",X"02",X"CA",X"00",X"F7", + X"FE",X"03",X"CA",X"00",X"F4",X"FE",X"04",X"CA",X"94",X"ED",X"FE",X"05",X"CA",X"00",X"FB",X"FE", + X"07",X"C2",X"0D",X"E1",X"18",X"94",X"21",X"3F",X"EB",X"0E",X"05",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"84",X"F2",X"21",X"20",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"D3",X"EA", + X"20",X"F8",X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"2D",X"EC", + X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"26",X"21",X"2F",X"EC", + X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"47",X"EC",X"CD",X"50",X"F2",X"CD",X"45", + X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"0B",X"21",X"4F",X"EC",X"0E",X"02",X"CD",X"FE",X"EA", + X"CD",X"12",X"EB",X"C3",X"19",X"E9",X"21",X"49",X"EB",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"84",X"F2",X"21",X"5C",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"D3",X"EA", + X"20",X"EF",X"21",X"5E",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"69",X"EC", + X"CD",X"50",X"F2",X"CD",X"1E",X"F1",X"FE",X"01",X"28",X"5F",X"FE",X"03",X"20",X"F5",X"21",X"7D", + X"EC",X"0E",X"0C",X"CD",X"FE",X"EA",X"CD",X"84",X"F2",X"21",X"8A",X"EC",X"CD",X"50",X"F2",X"CD", + X"45",X"F1",X"CD",X"D3",X"EA",X"20",X"F8",X"CD",X"12",X"EB",X"CD",X"84",X"F2",X"21",X"93",X"EC", + X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"3A",X"04",X"F8",X"CD",X"DD",X"EA",X"20",X"F5",X"38",X"26", + X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"A9",X"EC",X"CD",X"50", + X"F2",X"CD",X"45",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"0B",X"21",X"2F",X"EC",X"0E",X"04", + X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"C3",X"99",X"E8",X"21",X"6B",X"EC",X"0E",X"0A",X"CD",X"FE", + X"EA",X"CD",X"04",X"E3",X"18",X"B4",X"21",X"52",X"EB",X"0E",X"0A",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"04",X"E3",X"C3",X"19",X"E9",X"21",X"5D",X"EB",X"0E",X"07",X"CD",X"FE",X"EA",X"CD", + X"75",X"E2",X"CD",X"04",X"E3",X"CD",X"84",X"F2",X"21",X"8A",X"EC",X"CD",X"50",X"F2",X"CD",X"45", + X"F1",X"CD",X"D3",X"EA",X"20",X"F8",X"21",X"7D",X"EC",X"01",X"0C",X"00",X"CD",X"FE",X"EA",X"CD", + X"12",X"EB",X"C3",X"EA",X"E1",X"21",X"CD",X"EB",X"CD",X"50",X"F2",X"CD",X"1E",X"F1",X"FE",X"07", + X"28",X"1A",X"FE",X"06",X"28",X"23",X"FE",X"05",X"28",X"2C",X"FE",X"04",X"28",X"35",X"FE",X"03", + X"28",X"3E",X"FE",X"02",X"28",X"47",X"FE",X"01",X"28",X"50",X"18",X"D9",X"3E",X"00",X"01",X"09", + X"00",X"11",X"0B",X"EC",X"21",X"00",X"08",X"18",X"4C",X"3E",X"32",X"01",X"06",X"00",X"11",X"02", + X"EC",X"21",X"20",X"00",X"18",X"3F",X"3E",X"34",X"01",X"06",X"00",X"11",X"F8",X"EB",X"21",X"00", + X"02",X"18",X"32",X"3E",X"54",X"01",X"04",X"00",X"11",X"EE",X"EB",X"21",X"00",X"10",X"18",X"25", + X"3E",X"54",X"01",X"04",X"10",X"11",X"E4",X"EB",X"21",X"00",X"20",X"18",X"18",X"3E",X"49",X"01", + X"04",X"00",X"11",X"DA",X"EB",X"21",X"00",X"10",X"18",X"0B",X"3E",X"49",X"01",X"04",X"10",X"11", + X"D0",X"EB",X"21",X"00",X"20",X"32",X"41",X"E0",X"22",X"45",X"E0",X"21",X"40",X"E0",X"70",X"EB", + X"CD",X"FE",X"EA",X"C9",X"11",X"FF",X"FF",X"2A",X"5D",X"E0",X"73",X"23",X"72",X"23",X"22",X"5D", + X"E0",X"21",X"03",X"E0",X"34",X"C9",X"21",X"00",X"00",X"22",X"4D",X"E0",X"7D",X"32",X"3F",X"E0", + X"2A",X"05",X"E0",X"22",X"49",X"E0",X"22",X"4F",X"E0",X"3A",X"03",X"E0",X"C9",X"CD",X"33",X"E3", + X"C3",X"B8",X"E3",X"CD",X"16",X"E3",X"FE",X"01",X"20",X"23",X"2A",X"49",X"E0",X"11",X"00",X"E0", + X"CD",X"62",X"E0",X"38",X"07",X"21",X"FF",X"FF",X"22",X"49",X"E0",X"23",X"EB",X"2A",X"45",X"E0", + X"22",X"47",X"E0",X"2B",X"19",X"22",X"4B",X"E0",X"3E",X"01",X"D8",X"AF",X"C9",X"FE",X"02",X"20", + X"21",X"EB",X"2A",X"07",X"E0",X"22",X"4B",X"E0",X"CD",X"68",X"E0",X"38",X"EB",X"22",X"47",X"E0", + X"EB",X"2A",X"45",X"E0",X"1B",X"CD",X"62",X"E0",X"3E",X"00",X"30",X"01",X"3C",X"32",X"3F",X"E0", + X"AF",X"C9",X"EB",X"2A",X"07",X"E0",X"22",X"4B",X"E0",X"CD",X"68",X"E0",X"38",X"CA",X"22",X"47", + X"E0",X"2A",X"09",X"E0",X"22",X"4D",X"E0",X"EB",X"2A",X"45",X"E0",X"2B",X"CD",X"62",X"E0",X"3E", + X"01",X"38",X"DA",X"2A",X"47",X"E0",X"19",X"EB",X"2A",X"45",X"E0",X"CD",X"62",X"E0",X"3E",X"00", + X"30",X"CB",X"3C",X"18",X"C8",X"CD",X"92",X"E4",X"A7",X"C0",X"21",X"05",X"E0",X"06",X"3A",X"36", + X"00",X"23",X"10",X"FB",X"3A",X"3F",X"E0",X"A7",X"28",X"2E",X"2A",X"45",X"E0",X"11",X"00",X"10", + X"CD",X"62",X"E0",X"3E",X"00",X"30",X"61",X"ED",X"5B",X"45",X"E0",X"2A",X"47",X"E0",X"2B",X"CD", + X"62",X"E0",X"D2",X"F9",X"E4",X"44",X"4D",X"2A",X"4D",X"E0",X"09",X"DA",X"58",X"E3",X"CD",X"62", + X"E0",X"3E",X"01",X"D0",X"AF",X"32",X"3F",X"E0",X"D5",X"2A",X"45",X"E0",X"11",X"00",X"10",X"CD", + X"62",X"E0",X"D1",X"21",X"56",X"E0",X"3E",X"01",X"38",X"02",X"3E",X"07",X"77",X"01",X"05",X"E0", + X"2A",X"47",X"E0",X"CD",X"72",X"E0",X"2A",X"4D",X"E0",X"CD",X"72",X"E0",X"EB",X"2A",X"45",X"E0", + X"19",X"22",X"4D",X"E0",X"2A",X"49",X"E0",X"CD",X"72",X"E0",X"2A",X"4F",X"E0",X"CD",X"72",X"E0", + X"21",X"56",X"E0",X"35",X"20",X"DA",X"AF",X"C9",X"01",X"05",X"E0",X"ED",X"5B",X"45",X"E0",X"2A", + X"4D",X"E0",X"A7",X"ED",X"52",X"30",X"FC",X"7D",X"2F",X"5F",X"7C",X"2F",X"57",X"13",X"2A",X"47", + X"E0",X"CD",X"62",X"E0",X"F5",X"28",X"08",X"38",X"06",X"ED",X"52",X"22",X"47",X"E0",X"EB",X"CD", + X"72",X"E0",X"EB",X"2A",X"4D",X"E0",X"CD",X"72",X"E0",X"19",X"22",X"4D",X"E0",X"2A",X"49",X"E0", + X"CD",X"72",X"E0",X"CD",X"6D",X"E0",X"28",X"01",X"19",X"22",X"49",X"E0",X"2A",X"4F",X"E0",X"CD", + X"72",X"E0",X"CD",X"6D",X"E0",X"28",X"01",X"19",X"22",X"4F",X"E0",X"F1",X"3E",X"00",X"C8",X"30", + X"AA",X"C9",X"CD",X"16",X"E3",X"11",X"FF",X"FF",X"ED",X"53",X"4F",X"E0",X"FE",X"01",X"20",X"0C", + X"11",X"00",X"E0",X"CD",X"62",X"E0",X"DA",X"4C",X"E3",X"3E",X"01",X"C9",X"47",X"11",X"00",X"E0", + X"CD",X"62",X"E0",X"38",X"07",X"21",X"FF",X"FF",X"22",X"49",X"E0",X"23",X"78",X"FE",X"02",X"EB", + X"2A",X"07",X"E0",X"22",X"4F",X"E0",X"CA",X"4D",X"E3",X"2A",X"09",X"E0",X"22",X"4D",X"E0",X"3E", + X"01",X"32",X"3F",X"E0",X"78",X"FE",X"03",X"CA",X"4D",X"E3",X"EB",X"2A",X"0B",X"E0",X"CD",X"68", + X"E0",X"DA",X"58",X"E3",X"22",X"47",X"E0",X"EB",X"2A",X"49",X"E0",X"CD",X"6D",X"E0",X"C8",X"19", + X"22",X"4B",X"E0",X"11",X"00",X"E0",X"CD",X"62",X"E0",X"3E",X"01",X"D0",X"AF",X"C9",X"3A",X"41", + X"E0",X"FE",X"32",X"28",X"04",X"FE",X"34",X"20",X"03",X"AF",X"18",X"10",X"A7",X"20",X"04",X"3E", + X"10",X"18",X"09",X"06",X"30",X"FE",X"49",X"28",X"02",X"06",X"20",X"78",X"32",X"43",X"E0",X"C9", + X"3A",X"3F",X"E0",X"A7",X"28",X"14",X"21",X"07",X"E0",X"7E",X"23",X"66",X"6F",X"ED",X"5B",X"45", + X"E0",X"06",X"FF",X"A7",X"ED",X"52",X"04",X"30",X"FA",X"78",X"32",X"51",X"E0",X"C9",X"CD",X"5E", + X"E5",X"D5",X"11",X"10",X"27",X"1B",X"7A",X"B3",X"20",X"FB",X"D1",X"C9",X"11",X"C0",X"C0",X"3A", + X"43",X"E0",X"E6",X"30",X"FE",X"20",X"30",X"03",X"50",X"18",X"01",X"58",X"B2",X"C9",X"F5",X"32", + X"44",X"E0",X"06",X"82",X"FE",X"00",X"20",X"02",X"06",X"80",X"78",X"D3",X"03",X"F1",X"E6",X"C0", + X"47",X"D5",X"CD",X"4C",X"E5",X"D3",X"02",X"3A",X"3F",X"E0",X"A7",X"3E",X"0E",X"28",X"01",X"AF", + X"47",X"3A",X"40",X"E0",X"E6",X"10",X"B0",X"32",X"40",X"E0",X"B3",X"D3",X"05",X"D1",X"C9",X"3A", + X"44",X"E0",X"E6",X"C0",X"47",X"D5",X"CD",X"4C",X"E5",X"47",X"7C",X"E6",X"0F",X"B0",X"D3",X"02", + X"7D",X"D3",X"00",X"3A",X"40",X"E0",X"E6",X"0E",X"FE",X"0E",X"7C",X"28",X"17",X"E6",X"F0",X"47", + X"3A",X"43",X"E0",X"E6",X"20",X"28",X"0A",X"3A",X"40",X"E0",X"E6",X"10",X"20",X"03",X"78",X"17", + X"47",X"78",X"18",X"04",X"E6",X"10",X"F6",X"E0",X"0F",X"0F",X"0F",X"0F",X"47",X"3A",X"40",X"E0", + X"E6",X"10",X"B0",X"E6",X"1F",X"32",X"40",X"E0",X"B3",X"D1",X"D3",X"05",X"C9",X"D5",X"C5",X"06", + X"80",X"CD",X"4C",X"E5",X"47",X"7C",X"E6",X"0F",X"B0",X"D3",X"02",X"47",X"3A",X"40",X"E0",X"B3", + X"D3",X"05",X"4F",X"ED",X"5B",X"58",X"E0",X"1B",X"7A",X"B3",X"20",X"FB",X"78",X"CD",X"0B",X"E6", + X"D3",X"02",X"79",X"CD",X"0B",X"E6",X"D3",X"05",X"C1",X"D1",X"C9",X"CB",X"77",X"C0",X"E6",X"7F", + X"C9",X"21",X"05",X"E0",X"4E",X"23",X"46",X"23",X"5E",X"23",X"56",X"23",X"7E",X"23",X"66",X"6F", + X"EB",X"C9",X"3A",X"03",X"E0",X"FE",X"03",X"3E",X"00",X"C8",X"D5",X"E5",X"2A",X"45",X"E0",X"11", + X"00",X"10",X"CD",X"62",X"E0",X"E1",X"D1",X"01",X"01",X"01",X"38",X"02",X"0E",X"07",X"C5",X"3E", + X"40",X"CD",X"3E",X"E5",X"3A",X"40",X"E0",X"E6",X"10",X"32",X"40",X"E0",X"11",X"00",X"00",X"C1", + X"3E",X"00",X"F5",X"C5",X"D5",X"CD",X"8B",X"E6",X"D1",X"C1",X"28",X"01",X"C5",X"04",X"0D",X"28", + X"07",X"2A",X"45",X"E0",X"19",X"EB",X"18",X"EB",X"3E",X"C0",X"CD",X"3E",X"E5",X"F1",X"A7",X"C8", + X"CD",X"DB",X"E7",X"21",X"C5",X"EC",X"CD",X"54",X"F2",X"F1",X"A7",X"28",X"0B",X"CD",X"DB",X"E7", + X"21",X"C5",X"EC",X"CD",X"54",X"F2",X"18",X"F1",X"3E",X"80",X"C9",X"ED",X"4B",X"45",X"E0",X"EB", + X"50",X"59",X"CD",X"8F",X"E5",X"23",X"3A",X"43",X"E0",X"E6",X"30",X"06",X"FF",X"20",X"01",X"04", + X"DB",X"01",X"B8",X"C0",X"1B",X"7A",X"B3",X"20",X"E9",X"C9",X"3E",X"C0",X"CD",X"3E",X"E5",X"3E", + X"40",X"CD",X"3E",X"E5",X"3A",X"40",X"E0",X"E6",X"10",X"32",X"40",X"E0",X"AF",X"32",X"5B",X"E0", + X"21",X"00",X"00",X"22",X"56",X"E0",X"22",X"52",X"E0",X"21",X"51",X"E0",X"34",X"2A",X"4B",X"E0", + X"7E",X"4F",X"23",X"B6",X"F5",X"3E",X"C0",X"CC",X"3E",X"E5",X"F1",X"C8",X"46",X"23",X"EB",X"CD", + X"79",X"E0",X"22",X"4D",X"E0",X"13",X"CD",X"79",X"E0",X"22",X"49",X"E0",X"13",X"CD",X"79",X"E0", + X"22",X"4F",X"E0",X"13",X"EB",X"22",X"4B",X"E0",X"C5",X"2A",X"4D",X"E0",X"CD",X"8F",X"E5",X"EB", + X"2A",X"49",X"E0",X"CD",X"6D",X"E0",X"DB",X"01",X"28",X"0D",X"47",X"3A",X"54",X"E0",X"A7",X"78", + X"28",X"05",X"77",X"23",X"22",X"49",X"E0",X"21",X"5B",X"E0",X"FE",X"FF",X"28",X"05",X"35",X"28", + X"01",X"34",X"34",X"F5",X"2A",X"52",X"E0",X"85",X"6F",X"7C",X"CE",X"00",X"67",X"22",X"52",X"E0", + X"F1",X"2A",X"4F",X"E0",X"BE",X"C4",X"19",X"E8",X"C1",X"28",X"04",X"AF",X"32",X"55",X"E0",X"2A", + X"4D",X"E0",X"23",X"22",X"4D",X"E0",X"2A",X"4F",X"E0",X"CD",X"6D",X"E0",X"28",X"04",X"23",X"22", + X"4F",X"E0",X"0B",X"78",X"B1",X"20",X"A1",X"3E",X"C0",X"CD",X"3E",X"E5",X"3A",X"5C",X"E0",X"A7", + X"20",X"05",X"3A",X"5B",X"E0",X"A7",X"C0",X"F5",X"F5",X"CD",X"D8",X"E7",X"F1",X"21",X"BF",X"EC", + X"CC",X"54",X"F2",X"F1",X"C8",X"3A",X"61",X"E0",X"A7",X"28",X"2B",X"06",X"02",X"CD",X"43",X"F3", + X"CD",X"B8",X"F2",X"06",X"02",X"CD",X"43",X"F3",X"CD",X"B8",X"F2",X"06",X"02",X"CD",X"43",X"F3", + X"CD",X"B8",X"F2",X"AF",X"32",X"61",X"E0",X"0E",X"80",X"CD",X"86",X"F3",X"0E",X"80",X"CD",X"86", + X"F3",X"0E",X"80",X"CD",X"86",X"F3",X"CD",X"D8",X"E7",X"CD",X"0E",X"F2",X"2A",X"4F",X"E0",X"CD", + X"6D",X"E0",X"28",X"12",X"2A",X"56",X"E0",X"7C",X"B5",X"28",X"0B",X"21",X"CE",X"EC",X"CD",X"57", + X"F2",X"2A",X"56",X"E0",X"18",X"09",X"21",X"D3",X"EC",X"CD",X"57",X"F2",X"2A",X"52",X"E0",X"CD", + X"E6",X"E7",X"2A",X"56",X"E0",X"7C",X"B5",X"C9",X"3A",X"51",X"E0",X"47",X"3E",X"F8",X"C6",X"0A", + X"10",X"FC",X"57",X"1E",X"11",X"C9",X"7C",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD",X"0D",X"E8",X"CD", + X"2C",X"F2",X"F1",X"CD",X"0D",X"E8",X"CD",X"2C",X"F2",X"7D",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD", + X"0D",X"E8",X"CD",X"2C",X"F2",X"F1",X"CD",X"0D",X"E8",X"CD",X"2C",X"F2",X"C9",X"E6",X"0F",X"FE", + X"0A",X"30",X"03",X"F6",X"30",X"C9",X"C6",X"37",X"C9",X"4F",X"2A",X"4F",X"E0",X"CD",X"6D",X"E0", + X"C8",X"2A",X"56",X"E0",X"23",X"22",X"56",X"E0",X"3A",X"55",X"E0",X"A7",X"C8",X"C5",X"3E",X"01", + X"32",X"61",X"E0",X"3A",X"FE",X"FE",X"FE",X"12",X"38",X"23",X"CD",X"45",X"F1",X"C1",X"3A",X"04", + X"F8",X"FE",X"0D",X"28",X"52",X"C5",X"AF",X"32",X"FE",X"FE",X"21",X"D8",X"EC",X"CD",X"74",X"F1", + X"3A",X"51",X"E0",X"F6",X"30",X"CD",X"BA",X"F2",X"CD",X"B8",X"F2",X"18",X"0A",X"2B",X"7C",X"B5", + X"20",X"05",X"CD",X"B8",X"F2",X"18",X"E3",X"06",X"02",X"CD",X"43",X"F3",X"2A",X"4D",X"E0",X"CD", + X"26",X"F3",X"06",X"02",X"CD",X"43",X"F3",X"C1",X"79",X"CD",X"2B",X"F3",X"06",X"03",X"CD",X"43", + X"F3",X"2A",X"4F",X"E0",X"7E",X"F5",X"CD",X"26",X"F3",X"06",X"02",X"CD",X"43",X"F3",X"F1",X"CD", + X"2B",X"F3",X"CD",X"B8",X"F2",X"AF",X"C9",X"A7",X"C9",X"CD",X"B5",X"E3",X"A7",X"C0",X"CD",X"FE", + X"E4",X"11",X"11",X"01",X"CD",X"87",X"F2",X"11",X"12",X"01",X"CD",X"87",X"F2",X"3E",X"01",X"32", + X"5C",X"E0",X"32",X"54",X"E0",X"32",X"55",X"E0",X"21",X"05",X"E0",X"22",X"4B",X"E0",X"CD",X"20", + X"E5",X"3A",X"3F",X"E0",X"A7",X"28",X"0C",X"2A",X"4B",X"E0",X"7E",X"23",X"B6",X"C8",X"CD",X"AA", + X"E6",X"18",X"F4",X"06",X"07",X"D5",X"E5",X"2A",X"45",X"E0",X"11",X"00",X"10",X"CD",X"62",X"E0", + X"E1",X"D1",X"30",X"02",X"06",X"01",X"C5",X"AF",X"32",X"5C",X"E0",X"32",X"54",X"E0",X"32",X"55", + X"E0",X"CD",X"AA",X"E6",X"3A",X"5B",X"E0",X"A7",X"28",X"1A",X"32",X"5C",X"E0",X"32",X"54",X"E0", + X"00",X"00",X"00",X"01",X"A0",X"40",X"02",X"B0",X"A2",X"F0",X"01",X"B0",X"A4",X"A0",X"01",X"50", + X"A5",X"F0",X"10",X"00",X"B5",X"F0",X"18",X"80",X"CE",X"70",X"03",X"A0",X"D2",X"10",X"08",X"00", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"F0",X"E5",X"F1",X"0A",X"F1",X"AF",X"F1",X"DD",X"F2",X"6D",X"F2",X"C8", + X"F3",X"FE",X"F4",X"1C",X"F4",X"36",X"F3",X"63",X"F1",X"81",X"E9",X"D9",X"E9",X"D9",X"E9",X"D9", + X"E9",X"D9",X"E9",X"D9",X"E9",X"7E",X"EA",X"2F",X"EA",X"F2",X"EB",X"CB",X"ED",X"26",X"40",X"00", + X"41",X"00",X"42",X"00",X"43",X"00",X"44",X"00",X"48",X"00",X"49",X"00",X"4A",X"00",X"45",X"00", + X"4B",X"00",X"4C",X"00",X"4D",X"00",X"6C",X"00",X"6D",X"00",X"6E",X"00",X"66",X"BC",X"6C",X"14", + X"6D",X"14",X"FE",X"E9",X"DA",X"FE",X"EA",X"1B",X"FE",X"E9",X"DA",X"FE",X"EA",X"1B",X"FE",X"E9", + X"DA",X"40",X"8E",X"48",X"0D",X"69",X"0D",X"02",X"7A",X"40",X"69",X"0D",X"02",X"7A",X"20",X"48", + X"00",X"40",X"9F",X"68",X"0D",X"69",X"0D",X"02",X"1C",X"40",X"40",X"8E",X"68",X"0D",X"69",X"0D", + X"02",X"1C",X"20",X"6C",X"00",X"6D",X"00",X"67",X"03",X"FF",X"42",X"38",X"43",X"02",X"49",X"0D", + X"68",X"0D",X"00",X"47",X"20",X"68",X"0D",X"00",X"4F",X"20",X"49",X"00",X"68",X"0D",X"69",X"0D", + X"00",X"5E",X"20",X"42",X"DD",X"43",X"01",X"49",X"0D",X"68",X"0D",X"00",X"6A",X"20",X"68",X"0D", + X"00",X"77",X"20",X"49",X"00",X"68",X"0D",X"69",X"0D",X"00",X"8E",X"20",X"40",X"77",X"48",X"0D", + X"69",X"0D",X"02",X"A9",X"40",X"69",X"0D",X"02",X"A9",X"20",X"FD",X"40",X"8E",X"48",X"0D",X"69", + X"0D",X"02",X"7A",X"20",X"69",X"0D",X"02",X"3E",X"20",X"69",X"0D",X"02",X"1C",X"20",X"FD",X"66", + X"BC",X"6C",X"10",X"6D",X"10",X"41",X"00",X"43",X"01",X"40",X"6A",X"68",X"0D",X"69",X"0D",X"02", + X"7A",X"20",X"40",X"5E",X"68",X"0D",X"69",X"0D",X"02",X"7A",X"20",X"40",X"4F",X"48",X"0D",X"69", + X"0D",X"02",X"C1",X"20",X"69",X"0D",X"02",X"C1",X"20",X"48",X"00",X"40",X"5E",X"68",X"0D",X"69", + X"0D",X"02",X"A9",X"20",X"40",X"6A",X"68",X"0D",X"69",X"0D",X"02",X"A9",X"20",X"40",X"7E",X"48", + X"0D",X"69",X"0D",X"02",X"90",X"20",X"69",X"0D",X"02",X"90",X"20",X"40",X"6A",X"48",X"0D",X"69", + X"0D",X"02",X"7A",X"20",X"69",X"0D",X"02",X"7A",X"20",X"40",X"7E",X"48",X"0D",X"69",X"0D",X"02", + X"C1",X"20",X"69",X"0D",X"02",X"C1",X"20",X"40",X"8E",X"48",X"0D",X"69",X"0D",X"02",X"A9",X"20", + X"69",X"0D",X"02",X"A9",X"20",X"40",X"9F",X"48",X"0D",X"69",X"0D",X"02",X"90",X"20",X"69",X"0D", + X"02",X"90",X"20",X"42",X"7A",X"49",X"0D",X"68",X"0D",X"00",X"8E",X"20",X"68",X"0D",X"00",X"9F", + X"20",X"49",X"00",X"40",X"BD",X"68",X"0D",X"69",X"0D",X"02",X"C1",X"40",X"40",X"D4",X"43",X"01", + X"68",X"0D",X"69",X"0D",X"02",X"1C",X"20",X"40",X"C8",X"68",X"0D",X"69",X"0D",X"02",X"0C",X"20", + X"40",X"BD",X"43",X"00",X"68",X"0D",X"69",X"0D",X"02",X"FD",X"80",X"67",X"03",X"6C",X"00",X"6D", + X"00",X"FF",X"66",X"BC",X"6C",X"10",X"6D",X"10",X"40",X"38",X"41",X"02",X"48",X"0D",X"43",X"00", + X"69",X"0D",X"02",X"EE",X"20",X"69",X"0D",X"02",X"E1",X"20",X"48",X"00",X"40",X"C1",X"41",X"01", + X"68",X"0D",X"69",X"0D",X"02",X"8E",X"40",X"40",X"7A",X"68",X"0D",X"69",X"0D",X"02",X"9F",X"40", + X"40",X"51",X"68",X"0D",X"69",X"0D",X"02",X"A8",X"40",X"40",X"3E",X"48",X"0D",X"69",X"0D",X"02", + X"BD",X"20",X"69",X"0D",X"02",X"D4",X"20",X"48",X"00",X"40",X"51",X"68",X"0D",X"69",X"0D",X"02", + X"EE",X"40",X"40",X"7A",X"48",X"0D",X"69",X"0D",X"02",X"EE",X"20",X"69",X"0D",X"02",X"E1",X"20", + X"48",X"00",X"40",X"C1",X"68",X"0D",X"69",X"0D",X"02",X"D4",X"40",X"40",X"A7",X"41",X"02",X"68", + X"0D",X"69",X"0D",X"02",X"E1",X"20",X"40",X"51",X"41",X"01",X"68",X"0D",X"69",X"0D",X"02",X"8E", + X"20",X"40",X"7D",X"41",X"02",X"68",X"0D",X"69",X"0D",X"02",X"D4",X"20",X"40",X"3E",X"41",X"01", + X"68",X"0D",X"69",X"0D",X"02",X"7E",X"20",X"40",X"58",X"41",X"02",X"68",X"0D",X"69",X"0D",X"02", + X"C8",X"20",X"40",X"2C",X"41",X"01",X"68",X"0D",X"69",X"0D",X"02",X"77",X"20",X"40",X"38",X"41", + X"02",X"68",X"0D",X"69",X"0D",X"02",X"BD",X"20",X"40",X"1C",X"41",X"01",X"68",X"0D",X"69",X"0D", + X"02",X"70",X"20",X"40",X"38",X"41",X"02",X"68",X"0D",X"69",X"0D",X"02",X"70",X"40",X"67",X"03", + X"6C",X"00",X"6D",X"00",X"48",X"00",X"49",X"00",X"4A",X"00",X"FF",X"66",X"B8",X"6C",X"14",X"6D", + X"14",X"6E",X"14",X"FE",X"EC",X"62",X"FE",X"EC",X"62",X"FE",X"EC",X"62",X"40",X"3F",X"42",X"54", + X"45",X"01",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A", + X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69", + X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68", + X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A", + X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"40",X"3C",X"42",X"4F",X"68",X"0D", + X"69",X"0D",X"6A",X"0D",X"04",X"A9",X"5A",X"40",X"3F",X"42",X"54",X"68",X"0D",X"69",X"0D",X"6A", + X"0D",X"04",X"C1",X"2D",X"40",X"47",X"42",X"5E",X"45",X"02",X"68",X"0D",X"69",X"0D",X"6A",X"0D", + X"04",X"38",X"5A",X"67",X"07",X"6C",X"00",X"6D",X"00",X"6E",X"00",X"48",X"00",X"49",X"00",X"4A", + X"00",X"FF",X"4A",X"00",X"41",X"00",X"43",X"00",X"45",X"02",X"40",X"8E",X"42",X"BD",X"48",X"0D", + X"49",X"0D",X"6A",X"0D",X"04",X"38",X"2D",X"45",X"01",X"6A",X"0D",X"04",X"C1",X"2D",X"48",X"00", + X"49",X"00",X"40",X"70",X"42",X"8E",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"40", + X"5E",X"44",X"38",X"45",X"02",X"4A",X"0D",X"68",X"0D",X"69",X"0D",X"02",X"70",X"2D",X"40",X"6A", + X"68",X"0D",X"69",X"0D",X"02",X"8E",X"2D",X"4A",X"00",X"40",X"54",X"42",X"6A",X"45",X"01",X"68", + X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"C1",X"2D",X"6A",X"0D",X"04",X"7A",X"2D",X"40",X"4F",X"42", + X"6A",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"A9",X"5A",X"40",X"54",X"42",X"6A",X"68",X"0D", + X"69",X"0D",X"6A",X"0D",X"04",X"51",X"2D",X"40",X"5E",X"42",X"70",X"68",X"0D",X"69",X"0D",X"6A", + X"0D",X"04",X"1C",X"2D",X"40",X"77",X"44",X"EE",X"45",X"00",X"4A",X"0D",X"68",X"0D",X"69",X"0D", + X"02",X"9F",X"2D",X"40",X"70",X"68",X"0D",X"69",X"0D",X"02",X"8E",X"2D",X"4A",X"00",X"40",X"9F", + X"42",X"D4",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"FD",X"2D",X"40",X"9F",X"44",X"1C",X"45", + X"01",X"4A",X"0D",X"68",X"0D",X"69",X"0D",X"02",X"D4",X"2D",X"40",X"8E",X"68",X"0D",X"69",X"0D", + X"02",X"BD",X"2D",X"4A",X"00",X"FD",X"66",X"B5",X"6D",X"14",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"46",X"01",X"43",X"02",X"FE",X"EF",X"27",X"FE",X"EF",X"27",X"FE",X"EF",X"27",X"FE",X"EF",X"27", + X"43",X"00",X"FE",X"F0",X"09",X"FE",X"F0",X"09",X"43",X"01",X"FE",X"EF",X"27",X"FE",X"EF",X"27", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"7A",X"30",X"4B", + X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E",X"02",X"7A",X"16",X"43",X"00",X"02",X"00", + X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16", + X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69", + X"0E",X"02",X"7A",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E",X"02",X"7A", + X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01", + X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"7A",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48", + X"10",X"69",X"0E",X"02",X"7A",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D", + X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B", + X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E",X"43",X"01",X"02",X"7A",X"16",X"43",X"00", + X"02",X"00",X"02",X"43",X"01",X"69",X"0E",X"02",X"3E",X"16",X"43",X"00",X"02",X"00",X"02",X"4B", + X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"7A",X"16",X"43",X"00", + X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02", + X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43", + X"01",X"69",X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01", + X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03", + X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C", + X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00", + X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16", + X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69", + X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E", + X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01", + X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"43",X"01",X"69",X"0E",X"02",X"65",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"DD",X"16",X"43", + X"00",X"02",X"00",X"02",X"FE",X"ED",X"26",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48", + X"10",X"69",X"0E",X"02",X"38",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E", + X"02",X"38",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02", + X"48",X"10",X"69",X"0E",X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"30",X"48",X"10",X"69",X"0E",X"02", + X"38",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48", + X"10",X"69",X"0E",X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D", + X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"48",X"10",X"69",X"0E",X"02",X"38",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"16",X"43", + X"00",X"02",X"00",X"02",X"43",X"01",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"16",X"43", + X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E", + X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02",X"FD",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43", + X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"30",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43", + X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E", + X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01", + X"48",X"10",X"69",X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69", + X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43", + X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C", + X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"30",X"48",X"10",X"69",X"0E", + X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01", + X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"43",X"01",X"69",X"0E",X"02",X"65",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43", + X"00",X"02",X"00",X"02",X"FD",X"76",X"AE",X"50",X"00",X"51",X"00",X"52",X"00",X"53",X"00",X"58", + X"10",X"59",X"10",X"5B",X"00",X"5C",X"02",X"5D",X"00",X"70",X"00",X"08",X"16",X"0C",X"10",X"58", + X"00",X"59",X"00",X"5B",X"00",X"5C",X"00",X"77",X"11",X"FF",X"76",X"A7",X"58",X"0F",X"59",X"0F", + X"51",X"01",X"53",X"01",X"16",X"16",X"05",X"58",X"05",X"59",X"00",X"30",X"00",X"00",X"04",X"58", + X"0F",X"59",X"0F",X"16",X"08",X"05",X"58",X"0E",X"59",X"0E",X"16",X"07",X"05",X"58",X"0D",X"59", + X"0D",X"16",X"09",X"05",X"58",X"0C",X"59",X"0C",X"16",X"0A",X"05",X"58",X"0B",X"59",X"0B",X"16", + X"08",X"05",X"58",X"0A",X"59",X"0A",X"16",X"09",X"05",X"58",X"09",X"59",X"09",X"16",X"06",X"05", + X"58",X"08",X"59",X"09",X"16",X"07",X"05",X"58",X"07",X"59",X"07",X"16",X"0A",X"05",X"58",X"06", + X"59",X"06",X"16",X"08",X"05",X"58",X"05",X"59",X"05",X"16",X"06",X"05",X"58",X"04",X"59",X"04", + X"16",X"08",X"05",X"58",X"02",X"59",X"02",X"16",X"0A",X"05",X"58",X"00",X"59",X"00",X"77",X"18", + X"FF",X"66",X"AF",X"46",X"09",X"89",X"20",X"01",X"09",X"0A",X"0B",X"0D",X"0D",X"0E",X"0F",X"0F", + X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0E",X"0D",X"0C",X"0B",X"0A",X"09",X"08", + X"07",X"06",X"05",X"04",X"03",X"02",X"01",X"00",X"49",X"00",X"67",X"10",X"46",X"00",X"FF",X"66", + X"97",X"46",X"09",X"8A",X"20",X"01",X"09",X"0A",X"0B",X"0D",X"0D",X"0E",X"0F",X"0F",X"0F",X"0F", + X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0E",X"0D",X"0C",X"0B",X"0A",X"09",X"08",X"07",X"06", + X"05",X"04",X"03",X"02",X"01",X"00",X"4A",X"00",X"67",X"20",X"46",X"01",X"FF",X"76",X"A4",X"58", + X"0F",X"59",X"0F",X"56",X"18",X"70",X"12",X"00",X"31",X"25",X"01",X"02",X"70",X"18",X"00",X"31", + X"28",X"00",X"02",X"70",X"1A",X"00",X"31",X"22",X"02",X"03",X"70",X"2C",X"00",X"31",X"2A",X"01", + X"03",X"70",X"2D",X"00",X"31",X"22",X"00",X"02",X"70",X"2F",X"00",X"31",X"25",X"00",X"01",X"59", + X"03",X"18",X"03",X"02",X"76",X"AC",X"58",X"0F",X"59",X"0F",X"56",X"02",X"5B",X"F0",X"5C",X"0A", + X"FE",X"F2",X"34",X"58",X"10",X"59",X"10",X"FE",X"F2",X"34",X"FE",X"F2",X"34",X"58",X"00",X"59", + X"00",X"77",X"1B",X"FF",X"70",X"18",X"00",X"31",X"10",X"00",X"05",X"70",X"1D",X"00",X"31",X"13", + X"00",X"04",X"70",X"1C",X"00",X"31",X"0E",X"00",X"05",X"70",X"0A",X"00",X"31",X"10",X"00",X"04", + X"70",X"08",X"00",X"31",X"10",X"00",X"04",X"70",X"0E",X"00",X"31",X"13",X"00",X"05",X"70",X"15", + X"00",X"31",X"0E",X"00",X"04",X"70",X"1A",X"00",X"31",X"0A",X"00",X"04",X"FD",X"76",X"BB",X"66", + X"B3",X"4A",X"0F",X"5A",X"0F",X"FE",X"F2",X"8F",X"0A",X"00",X"08",X"FE",X"F2",X"8F",X"44",X"00", + X"45",X"00",X"55",X"00",X"54",X"00",X"48",X"A0",X"5A",X"00",X"77",X"04",X"67",X"04",X"FF",X"62", + X"20",X"00",X"32",X"18",X"00",X"02",X"62",X"25",X"00",X"32",X"1A",X"00",X"01",X"62",X"23",X"00", + X"32",X"15",X"00",X"02",X"62",X"0B",X"00",X"32",X"12",X"00",X"01",X"62",X"09",X"00",X"32",X"16", + X"00",X"01",X"62",X"0E",X"00",X"32",X"1A",X"00",X"02",X"62",X"20",X"00",X"32",X"0E",X"00",X"01", + X"62",X"29",X"00",X"32",X"0D",X"00",X"01",X"FD",X"66",X"97",X"46",X"00",X"4A",X"05",X"5A",X"05", + X"76",X"BB",X"14",X"60",X"01",X"4A",X"07",X"5A",X"06",X"14",X"5C",X"01",X"4A",X"08",X"5A",X"07", + X"14",X"58",X"01",X"4A",X"09",X"5A",X"08",X"14",X"54",X"01",X"4A",X"0A",X"5A",X"09",X"14",X"50", + X"01",X"4A",X"0B",X"5A",X"0A",X"14",X"4C",X"01",X"4A",X"0C",X"5A",X"0B",X"14",X"48",X"01",X"4A", + X"0D",X"5A",X"0C",X"14",X"44",X"01",X"4A",X"0E",X"5A",X"0D",X"14",X"40",X"01",X"4A",X"0F",X"5A", + X"0E",X"14",X"3C",X"01",X"4A",X"0F",X"5A",X"0E",X"14",X"38",X"01",X"4A",X"0E",X"5A",X"0E",X"14", + X"34",X"01",X"4A",X"0D",X"5A",X"0E",X"14",X"30",X"01",X"4A",X"0B",X"5A",X"0D",X"14",X"40",X"01", + X"5A",X"0B",X"14",X"45",X"01",X"5A",X"09",X"14",X"4A",X"01",X"5A",X"08",X"14",X"4F",X"01",X"5A", + X"06",X"14",X"53",X"01",X"5A",X"05",X"14",X"57",X"01",X"5A",X"04",X"14",X"5B",X"01",X"5A",X"03", + X"14",X"60",X"01",X"5A",X"02",X"14",X"64",X"01",X"4A",X"00",X"5A",X"00",X"77",X"20",X"67",X"20", + X"46",X"01",X"FF",X"66",X"9F",X"46",X"00",X"4A",X"05",X"5A",X"05",X"76",X"BB",X"14",X"60",X"01", + X"4A",X"07",X"5A",X"06",X"14",X"5C",X"01",X"4A",X"08",X"5A",X"07",X"14",X"58",X"01",X"4A",X"09", + X"5A",X"08",X"14",X"54",X"01",X"4A",X"0A",X"5A",X"09",X"14",X"50",X"01",X"4A",X"0B",X"5A",X"0A", + X"14",X"4C",X"01",X"4A",X"0C",X"5A",X"0B",X"14",X"48",X"01",X"4A",X"0D",X"5A",X"0C",X"14",X"44", + X"01",X"4A",X"0E",X"5A",X"0D",X"14",X"40",X"01",X"4A",X"0F",X"5A",X"0E",X"14",X"3C",X"01",X"4A", + X"0F",X"5A",X"0E",X"14",X"38",X"01",X"4A",X"0E",X"5A",X"0E",X"14",X"34",X"01",X"4A",X"0D",X"5A", + X"0E",X"14",X"30",X"01",X"4A",X"0B",X"5A",X"0D",X"14",X"40",X"01",X"5A",X"0B",X"14",X"45",X"01", + X"5A",X"09",X"14",X"4A",X"01",X"5A",X"08",X"14",X"4F",X"01",X"5A",X"06",X"14",X"53",X"01",X"5A", + X"05",X"14",X"57",X"01",X"5A",X"04",X"14",X"5B",X"01",X"5A",X"03",X"14",X"60",X"01",X"5A",X"02", + X"14",X"64",X"01",X"4A",X"00",X"5A",X"00",X"77",X"04",X"67",X"20",X"46",X"00",X"FF",X"76",X"BC", + X"58",X"10",X"59",X"10",X"5B",X"80",X"5C",X"02",X"5D",X"00",X"70",X"30",X"00",X"31",X"60",X"00", + X"0C",X"30",X"30",X"00",X"04",X"58",X"00",X"59",X"00",X"77",X"03",X"FF",X"66",X"BE",X"41",X"00", + X"6C",X"09",X"68",X"0F",X"00",X"77",X"22",X"68",X"0F",X"00",X"77",X"22",X"68",X"0F",X"00",X"77", + X"22",X"6C",X"00",X"67",X"01",X"FF",X"66",X"B3",X"45",X"00",X"6E",X"14",X"6A",X"0F",X"04",X"43", + X"30",X"6A",X"0F",X"04",X"53",X"E0",X"67",X"04",X"6E",X"00",X"FF",X"47",X"BF",X"57",X"BF",X"40", + X"00",X"41",X"00",X"42",X"00",X"43",X"00",X"44",X"00",X"45",X"00",X"46",X"00",X"48",X"00",X"49", + X"00",X"4A",X"00",X"4B",X"00",X"4C",X"00",X"4D",X"00",X"51",X"00",X"50",X"00",X"52",X"00",X"53", + X"00",X"54",X"00",X"55",X"00",X"56",X"00",X"58",X"00",X"59",X"00",X"5A",X"00",X"5B",X"00",X"5C", + X"00",X"5D",X"00",X"FF",X"73",X"F4",X"2A",X"07",X"E0",X"ED",X"5B",X"05",X"E0",X"09",X"2B",X"EB", + X"09",X"2B",X"EB",X"ED",X"B8",X"C9",X"21",X"46",X"FF",X"CD",X"74",X"F1",X"C9",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"F7",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"08",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FD",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"99",X"E5",X"01",X"00",X"75",X"E5",X"75",X"E5",X"05",X"E8", + X"0C",X"E8",X"D2",X"E7",X"80",X"EA",X"00",X"01",X"00",X"20",X"00",X"00",X"F0",X"E0",X"A0",X"E0", + X"00",X"45",X"77",X"72",X"69",X"74",X"65",X"20",X"20",X"20",X"20",X"20",X"72",X"65",X"61",X"64", + X"20",X"20",X"20",X"20",X"20",X"65",X"72",X"61",X"73",X"65",X"63",X"68",X"65",X"63",X"6B",X"20", + X"63",X"6F",X"6D",X"70",X"61",X"72",X"65",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"65",X"6E",X"64",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"2D",X"2D", + X"2D",X"45",X"54",X"43",X"2D",X"2D",X"2D",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"0D",X"0A",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"40",X"01",X"00", + X"00",X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"02",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"F7",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"01",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"01",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"3E",X"01",X"32",X"FD",X"FE",X"21",X"91",X"EB",X"0E",X"05",X"CD",X"FE",X"EA",X"CD",X"5F",X"F7", + X"CD",X"CE",X"EE",X"C3",X"4B",X"F3",X"D9",X"01",X"4B",X"00",X"11",X"89",X"FF",X"21",X"88",X"FF", + X"3E",X"20",X"77",X"ED",X"B0",X"3E",X"0D",X"77",X"23",X"3E",X"00",X"77",X"D9",X"C9",X"13",X"79", + X"1F",X"1F",X"1F",X"1F",X"CD",X"38",X"F7",X"79",X"E6",X"0F",X"FE",X"0A",X"38",X"02",X"C6",X"07", + X"C6",X"30",X"12",X"13",X"C9",X"13",X"CD",X"4E",X"F7",X"3E",X"2D",X"12",X"13",X"C9",X"4C",X"CD", + X"2F",X"F7",X"4D",X"C3",X"2F",X"F7",X"7E",X"E6",X"7F",X"FE",X"20",X"D0",X"3E",X"20",X"C9",X"CD", + X"84",X"F2",X"21",X"20",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"D3",X"EA",X"20",X"F8", + X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"2D",X"EC",X"CD",X"50", + X"F2",X"CD",X"45",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"D8",X"21",X"2F",X"EC",X"0E",X"04",X"CD", + X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"3A",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"DD", + X"EA",X"20",X"F8",X"D8",X"21",X"3C",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"C9", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"06",X"20",X"00",X"0D",X"46",X"46",X"46",X"0D",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"EF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"EF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"BF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FE",X"00",X"FF",X"00",X"EE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF", + X"EF",X"00",X"FF",X"00",X"EF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"7F",X"00", + X"0F",X"8E",X"00",X"FF",X"BD",X"FA",X"93",X"86",X"BF",X"C6",X"07",X"BD",X"FA",X"D5",X"86",X"13", + X"C6",X"0F",X"BD",X"FA",X"D5",X"86",X"3F",X"C6",X"17",X"BD",X"FA",X"D5",X"BD",X"FA",X"A8",X"7F", + X"08",X"00",X"0F",X"BD",X"FA",X"43",X"96",X"BC",X"2B",X"07",X"BD",X"FC",X"C7",X"86",X"FF",X"97", + X"BC",X"0E",X"CE",X"00",X"00",X"DF",X"D1",X"96",X"80",X"26",X"0B",X"DE",X"84",X"D6",X"8C",X"BD", + X"FB",X"DB",X"DF",X"84",X"97",X"80",X"7C",X"00",X"D2",X"96",X"81",X"26",X"0B",X"DE",X"86",X"D6", + X"8D",X"BD",X"FB",X"DB",X"DF",X"86",X"97",X"81",X"7C",X"00",X"D2",X"96",X"82",X"26",X"0B",X"DE", + X"88",X"D6",X"8E",X"BD",X"FB",X"DB",X"DF",X"88",X"97",X"82",X"7C",X"00",X"D2",X"96",X"83",X"26", + X"0B",X"DE",X"8A",X"D6",X"8F",X"BD",X"FB",X"DB",X"DF",X"8A",X"97",X"83",X"96",X"A8",X"27",X"08", + X"7F",X"00",X"A8",X"C6",X"08",X"BD",X"FB",X"37",X"96",X"A9",X"27",X"08",X"7F",X"00",X"A9",X"C6", + X"09",X"BD",X"FB",X"37",X"96",X"AA",X"27",X"08",X"7F",X"00",X"AA",X"C6",X"0A",X"BD",X"FB",X"37", + X"96",X"AB",X"27",X"08",X"7F",X"00",X"AB",X"C6",X"18",X"BD",X"FB",X"50",X"96",X"AC",X"27",X"08", + X"7F",X"00",X"AC",X"C6",X"19",X"BD",X"FB",X"50",X"96",X"AD",X"27",X"08",X"7F",X"00",X"AD",X"C6", + X"1A",X"BD",X"FB",X"50",X"96",X"BE",X"16",X"9A",X"D8",X"0F",X"97",X"D8",X"C6",X"0F",X"BD",X"FA", + X"DB",X"7E",X"F9",X"22",X"96",X"C1",X"B7",X"08",X"01",X"96",X"C2",X"B7",X"08",X"02",X"7C",X"00", + X"BD",X"96",X"BF",X"4C",X"97",X"BF",X"44",X"24",X"32",X"DE",X"C3",X"09",X"27",X"1E",X"DF",X"C3", + X"DE",X"C7",X"A6",X"00",X"44",X"44",X"44",X"44",X"97",X"C1",X"DE",X"C5",X"09",X"27",X"15",X"DF", + X"C5",X"DE",X"C9",X"A6",X"00",X"44",X"44",X"44",X"44",X"97",X"C2",X"3B",X"86",X"01",X"9A",X"BE", + X"97",X"BE",X"20",X"E6",X"86",X"02",X"9A",X"BE",X"97",X"BE",X"3B",X"96",X"C7",X"81",X"20",X"25", + X"09",X"DE",X"C7",X"A6",X"00",X"97",X"C1",X"08",X"DF",X"C7",X"96",X"C9",X"81",X"20",X"25",X"09", + X"DE",X"C9",X"A6",X"00",X"97",X"C2",X"08",X"DF",X"C9",X"96",X"BF",X"84",X"0E",X"26",X"CC",X"7C", + X"00",X"C0",X"3B",X"96",X"C0",X"27",X"3E",X"7A",X"00",X"C0",X"96",X"80",X"27",X"06",X"4C",X"27", + X"03",X"7A",X"00",X"80",X"96",X"81",X"27",X"06",X"4C",X"27",X"03",X"7A",X"00",X"81",X"96",X"82", + X"27",X"06",X"4C",X"27",X"03",X"7A",X"00",X"82",X"96",X"83",X"27",X"06",X"4C",X"27",X"03",X"7A", + X"00",X"83",X"CE",X"00",X"06",X"A6",X"AD",X"27",X"09",X"4A",X"26",X"04",X"6C",X"A7",X"A6",X"B3", + X"A7",X"AD",X"09",X"26",X"F0",X"39",X"B7",X"08",X"00",X"C6",X"0E",X"BD",X"FB",X"1D",X"84",X"3F", + X"97",X"BC",X"3B",X"CE",X"FF",X"FF",X"DF",X"00",X"C6",X"4F",X"08",X"86",X"00",X"A7",X"80",X"08", + X"5A",X"26",X"FA",X"86",X"13",X"97",X"D8",X"39",X"BD",X"FA",X"C0",X"86",X"BF",X"97",X"BB",X"C6", + X"FF",X"D7",X"82",X"D7",X"83",X"D7",X"B1",X"D7",X"B2",X"D7",X"B3",X"C6",X"17",X"7E",X"FA",X"DB", + X"86",X"BF",X"97",X"BA",X"C6",X"FF",X"D7",X"80",X"D7",X"81",X"D7",X"AE",X"D7",X"AF",X"D7",X"B0", + X"C6",X"07",X"7E",X"FA",X"DB",X"7C",X"00",X"BD",X"20",X"04",X"0F",X"7F",X"00",X"BD",X"37",X"36", + X"C1",X"10",X"2A",X"19",X"86",X"0D",X"97",X"03",X"D7",X"02",X"C6",X"08",X"D7",X"03",X"5C",X"32", + X"97",X"02",X"96",X"BD",X"27",X"FC",X"D7",X"03",X"5A",X"D7",X"03",X"33",X"39",X"86",X"15",X"97", + X"03",X"C4",X"0F",X"D7",X"02",X"C6",X"10",X"20",X"E3",X"37",X"20",X"E4",X"37",X"86",X"15",X"97", + X"03",X"C4",X"0F",X"D7",X"02",X"C6",X"14",X"20",X"0D",X"C1",X"10",X"2A",X"EF",X"37",X"86",X"0D", + X"97",X"03",X"D7",X"02",X"C6",X"0C",X"4F",X"97",X"03",X"97",X"00",X"D7",X"03",X"96",X"02",X"5F", + X"D7",X"03",X"5A",X"D7",X"00",X"33",X"39",X"0F",X"BD",X"FB",X"1D",X"C6",X"09",X"7F",X"00",X"BD", + X"84",X"1F",X"81",X"10",X"2A",X"08",X"4A",X"81",X"07",X"2B",X"03",X"BD",X"FB",X"09",X"0E",X"39", + X"0F",X"BD",X"FB",X"0C",X"C6",X"11",X"20",X"E5",X"17",X"84",X"0F",X"81",X"0D",X"2A",X"08",X"A6", + X"94",X"AB",X"98",X"A7",X"94",X"20",X"69",X"5A",X"58",X"C4",X"17",X"DE",X"CD",X"A6",X"05",X"36", + X"DE",X"D1",X"AB",X"94",X"A7",X"94",X"32",X"2B",X"0C",X"24",X"02",X"6C",X"98",X"BD",X"FA",X"DA", + X"5C",X"A6",X"94",X"20",X"4B",X"25",X"F6",X"6A",X"98",X"20",X"F2",X"6F",X"8C",X"DE",X"CD",X"C1", + X"A0",X"2B",X"02",X"08",X"08",X"08",X"08",X"08",X"C1",X"C0",X"2B",X"08",X"17",X"84",X"0F",X"81", + X"08",X"2B",X"01",X"08",X"86",X"00",X"39",X"DF",X"CD",X"DE",X"D1",X"6A",X"90",X"27",X"DC",X"C1", + X"A0",X"2A",X"10",X"C4",X"1F",X"A6",X"94",X"36",X"DE",X"CD",X"A6",X"03",X"BD",X"FA",X"DA",X"0E", + X"32",X"08",X"39",X"C1",X"C0",X"2A",X"91",X"A6",X"90",X"44",X"A6",X"94",X"25",X"02",X"A6",X"98", + X"C4",X"1F",X"BD",X"FA",X"DA",X"0E",X"DE",X"CD",X"A6",X"04",X"39",X"26",X"CA",X"DF",X"CD",X"E6", + X"00",X"2A",X"03",X"7E",X"FC",X"79",X"C4",X"3F",X"C1",X"20",X"2A",X"11",X"A6",X"01",X"BD",X"FA", + X"DA",X"0E",X"E6",X"00",X"08",X"08",X"58",X"2B",X"E4",X"A6",X"00",X"08",X"39",X"C4",X"1F",X"17", + X"84",X"0F",X"81",X"06",X"2A",X"16",X"48",X"C4",X"10",X"1B",X"16",X"A6",X"01",X"97",X"CE",X"A6", + X"02",X"97",X"CD",X"BD",X"FC",X"BA",X"0E",X"E6",X"00",X"08",X"20",X"D8",X"80",X"08",X"2B",X"29", + X"DD",X"CF",X"84",X"03",X"C1",X"10",X"2B",X"02",X"8B",X"03",X"16",X"A6",X"01",X"CE",X"00",X"00", + X"3A",X"D6",X"CF",X"C1",X"04",X"2A",X"0B",X"A6",X"B4",X"A7",X"AE",X"DE",X"CD",X"D6",X"D0",X"7E", + X"FB",X"EC",X"A7",X"B4",X"DE",X"CD",X"7E",X"FB",X"F2",X"4C",X"27",X"17",X"5C",X"C1",X"10",X"2A", + X"09",X"96",X"BA",X"A4",X"01",X"97",X"BA",X"7E",X"FB",X"EE",X"96",X"BB",X"A4",X"01",X"97",X"BB", + X"7E",X"FB",X"EE",X"C1",X"10",X"2A",X"09",X"96",X"BA",X"AA",X"01",X"97",X"BA",X"7E",X"FB",X"EE", + X"96",X"BB",X"AA",X"01",X"97",X"BB",X"7E",X"FB",X"EE",X"C1",X"F0",X"2A",X"17",X"A6",X"01",X"EE", + X"02",X"3C",X"DE",X"D1",X"E7",X"8C",X"4C",X"A7",X"90",X"32",X"A7",X"94",X"32",X"A7",X"98",X"DE", + X"CD",X"86",X"00",X"39",X"5C",X"27",X"12",X"DE",X"D1",X"5C",X"26",X"10",X"DC",X"CD",X"A7",X"9C", + X"E7",X"A0",X"DE",X"CD",X"EE",X"01",X"86",X"00",X"39",X"86",X"FF",X"39",X"A6",X"9C",X"E6",X"A0", + X"DD",X"CD",X"DE",X"CD",X"08",X"08",X"08",X"86",X"00",X"39",X"96",X"CE",X"BD",X"FA",X"DA",X"5C", + X"96",X"CD",X"BD",X"FA",X"DB",X"5C",X"39",X"26",X"03",X"7E",X"FD",X"BD",X"81",X"10",X"2B",X"03", + X"7E",X"FD",X"41",X"81",X"03",X"2A",X"35",X"97",X"CB",X"96",X"D8",X"8A",X"01",X"16",X"C4",X"FE", + X"D7",X"D8",X"C6",X"0F",X"BD",X"FA",X"DB",X"86",X"05",X"7F",X"00",X"BD",X"D6",X"BD",X"27",X"FC", + X"4A",X"26",X"F6",X"D6",X"CB",X"58",X"58",X"CE",X"E9",X"00",X"3A",X"3C",X"EE",X"00",X"DF",X"C7", + X"38",X"EE",X"02",X"DF",X"C3",X"96",X"BE",X"84",X"02",X"97",X"BE",X"39",X"97",X"CC",X"96",X"D8", + X"8A",X"02",X"16",X"C4",X"FD",X"D7",X"D8",X"C6",X"0F",X"BD",X"FA",X"DB",X"86",X"05",X"7F",X"00", + X"BD",X"D6",X"BD",X"27",X"FC",X"4A",X"26",X"F6",X"D6",X"CC",X"58",X"58",X"CE",X"E9",X"00",X"3A", + X"3C",X"EE",X"00",X"DF",X"C9",X"38",X"EE",X"02",X"DF",X"C5",X"96",X"BE",X"84",X"01",X"97",X"BE", + X"39",X"16",X"58",X"CE",X"E9",X"34",X"3A",X"EE",X"00",X"81",X"20",X"2B",X"1F",X"81",X"24",X"27", + X"0A",X"3C",X"36",X"BD",X"FA",X"93",X"BD",X"FA",X"A8",X"32",X"38",X"97",X"A4",X"DF",X"84",X"7F", + X"00",X"80",X"7F",X"00",X"8C",X"C6",X"B8",X"DA",X"BA",X"D7",X"BA",X"39",X"81",X"12",X"2A",X"11", + X"DF",X"88",X"97",X"A6",X"7F",X"00",X"82",X"7F",X"00",X"8E",X"86",X"78",X"9A",X"BB",X"97",X"BB", + X"39",X"81",X"13",X"27",X"EB",X"81",X"16",X"27",X"E7",X"81",X"17",X"2A",X"17",X"DF",X"8A",X"97", + X"A7",X"7F",X"00",X"83",X"7F",X"00",X"8F",X"86",X"B8",X"9A",X"BB",X"97",X"BB",X"86",X"B8",X"9A", + X"BA",X"97",X"BA",X"39",X"81",X"17",X"27",X"B3",X"81",X"19",X"27",X"E1",X"DF",X"86",X"97",X"A5", + X"7F",X"00",X"81",X"7F",X"00",X"8D",X"86",X"78",X"9A",X"BA",X"97",X"BA",X"39",X"CE",X"F4",X"4B", + X"4F",X"3C",X"36",X"BD",X"FA",X"93",X"BD",X"FA",X"A8",X"32",X"38",X"97",X"A4",X"DF",X"84",X"7F", + X"00",X"80",X"7F",X"00",X"8C",X"C6",X"B8",X"DA",X"BA",X"D7",X"BA",X"C6",X"B8",X"DA",X"BB",X"D7", + X"BB",X"39",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"1D",X"4E",X"00",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FE", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"40",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"40",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"02",X"00", + X"09",X"0A",X"0C",X"0D",X"0F",X"10",X"12",X"13",X"15",X"16",X"18",X"19",X"1B",X"1C",X"1E",X"1F", + X"23",X"24",X"26",X"27",X"29",X"2A",X"2C",X"2D",X"2F",X"30",X"32",X"33",X"35",X"36",X"38",X"39", + X"22",X"5A",X"38",X"30",X"22",X"3B",X"3B",X"20",X"20",X"64",X"65",X"74",X"61",X"20",X"69",X"73", + X"20",X"20",X"2D",X"2D",X"2D",X"2D",X"48",X"20",X"74",X"6F",X"20",X"2D",X"2D",X"2D",X"2D",X"48", + X"45",X"4E",X"44",X"48",X"45",X"58",X"3E",X"3E",X"20",X"50",X"61",X"72",X"61",X"6D",X"74",X"65", + X"72",X"20",X"65",X"72",X"72",X"6F",X"72",X"20",X"3C",X"3C",X"0D",X"00",X"44",X"55",X"4D",X"50", + X"20",X"4C",X"49",X"53",X"54",X"20",X"50",X"41",X"47",X"45",X"20",X"3D",X"20",X"FF",X"00",X"0D", + X"0D",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"D1",X"AE",X"02",X"00",X"4D",X"00",X"FF",X"00",X"FF",X"00",X"00",X"00",X"FF",X"00", + X"FE",X"FF",X"00",X"00",X"00",X"00",X"35",X"00",X"FE",X"FF",X"08",X"2E",X"E4",X"41",X"0C",X"00", + X"F9",X"00",X"F9",X"00",X"F9",X"00",X"F9",X"00",X"FA",X"86",X"F9",X"00",X"F9",X"D4",X"F9",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/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr1.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr1.bin new file mode 100644 index 0000000000000000000000000000000000000000..bbf5c1fb4c461f4a35c9be01e990f1da62249db2 GIT binary patch literal 32768 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 E0E{#=RR910 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr3.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr3.bin new file mode 100644 index 0000000000000000000000000000000000000000..d923e88ed03ab88b62d133b8326025736a3b93b7 GIT binary patch literal 32768 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 BUatTE literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3f b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3f new file mode 100644 index 0000000000000000000000000000000000000000..8f5b8c12399699267a12e832990e9d941f833dd6 GIT binary patch literal 8192 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 i@GtIP_Yt^{z~me$=pa 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 W$J_A{_Xty_#WS2J>T=|IH}OA+!~A*x literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4e b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4e new file mode 100644 index 0000000000000000000000000000000000000000..735ef31f3f86ff1c1de4dc63f9642732f1f23af5 GIT binary patch literal 8192 zcmds6e{dVsoqwy}lJ(P(?6vd5yKw?*Cvg;=B+O2tixVq~!PpQS4Aau|egV^iBtSR? z2n#ozHgJ@dJ7zj_odJ5Z$F3Gz*7p$mTLeeGm z@D^N|7YzAdjLM|^0)8gGew+Maqayj$EB8=1j&KQ570KD@{WZ1WR!Nge7N}%d%{1h< z^vuJCDc-0jc%msjbKEBgn&LOV>QB3-`z=qp*;FDGDQqeME0}gg&zomzW}Eo1krR%h z2@YaYaPtT5j3%zvO>zHObS;d}g&(!aixRkctrQPBN4XwA|+V+n47O6~cnf}ySqs_d>W$tpnUf&>Hv&g(VY~C3# zxSdyFX;ATz>HgvRy%Og=6EyD$nY)_UMiDMvV)OO8B#2?yM;MHGi{ISt17OtL72`dW zVTt$8n{6Cq7Zl&rvpB~1u@^Zefk_z2S-I8NyLYeHYz|W^nN&=K+x^p&~wI_=p0D=7gBB8_2e`5b^tG+w$a0r)Ren=sjB#|ISc4U+OF= zjraEpO=IN(m-(Tgx-+#X5ub0!j~e3w7oPsq8AE)`P@cHFyh8cfAjQfE=Gxtd!s>EaF2}9Ph=vtFT1futquIy}VqLKhY~y@g+m{z=mA;^NRIQuPe_h zqQ`)$M-+>bd#6KRNwpoW3~a%uliTXi0qL zWa1;Ax+-1h0Jf-0eQh;AD4*9WhyKzlE_YU6c9QF**#6n+KkM|DJJ>FpV)MZE?8(G` z&SB$#4a@~?nMVxu5ubRwL0Q~8svgXU-+0|7<(sc_S&F>#nB8A?%3`Gi1NpLJ zi5(Pq_oK$rml}ohnF9^5$ZM#&xBI2W(no1S{IW5WRjfY)+XwDd-(6EVL~g#f;Xjg< zCZ;cwzd{KqB;lBVV^8D#15!r(lA)Z4Q%O@1b8(`crZh7@^oIBqLw*Dj@fH%4*B&+P z5c-1lo4A~3!(G7=e%U4pYWV%^g;hbyb>zoVc;)7!M>xsXnbjt?}iwL!v@5T(- zP#hc{6*l(`ZW2ZYt|hUwz{DxTs<&2SnL;uhK1r#@tT3+ z^*w~nUDMZJ6b43w(Sec8!&^r%IkKhi+G_`fN)w!w_JUW)SRtGNFo7m+b=|0JI zQvrS3>F;y;T@I%1DK-!Cp?PtpMUXEOU9auU^*CeX6)WTG0NQcU60Op3?E zM-UVbvDFs>P}7G>SE?{4CgZ*>MPbA6)}el3WLW4QDE5%k?$xD+JM&-0?v9Rz8;(_c zKM+(hKQ(GD&h5c$2cD8RW`I|tLSpyYhP&L!U@g~AepRkvAXeWdacj$+<(l|!MgovT zy)h{MyRqQ3tK<+Q>#q;&aF>ByX7Hw6;`ZRkq^r+ zG%7-%&}`>5?eK=pRv;Y~pEt7ORqB&@*NFfhQ5yTI;)_OBX~e2)#TSe(UY>Rp{;^yG zsXMCmTPIJGdZ~I2@^$n}j5`_B&lf-*OHU@cLR6>PPbD_fMuL#2NB*)Qe)g2QISoH? znyWu3MG-p#Ed*Y;m&@_477n93q+orcbrV1Gx~?w{7B`Lv z8@7&&3=dIGZ`|BBR4NKvDCdc*f1os2+%&RkRsZnlkN`21whWXuqrdf9K^QFFP#jzZ zdvdbCKc1Iu#cK1Xkx#-XJyg}Z`}GHIU%68K@t-TO04v(-?&RG_otAFZX-XyrsL;8b z=%a5wCx;Aeyh(_OO@`dBk4wICA*|k=mWTApZ@&{ev@tFY>HtjSs`-F;l@7svVkIZ@ z$(lT(Bd?427O79iVPhk@dPOrG=$kipJH)dX79D z9?R@CFiY|A!UA}ly@tF2XvRCfMcrDQjGvf`4Tz5+sI2F`lujiCpX$1KVu4LLf7! z*BDKbKTirRAZjeLMMtV%fAG+TSbfK#*Qky9)WPT!AE=K?9<>skqSK{ApNZ6m4~dak z3hbjd6`F0&JfPPcE((zpor_no-Bo(cW~Hy-ryT}eqfDN~!zhlX7UBVdfO=<-5VrZb zUSDTDcoglcsT9>8MH26x=ht1j7)Okz7T}p#9i3TiJ(PA;u-WYLB2p#`iZMDMMfg@e$apT{z)%#2Z+i`>*es(daN=j@t@sgtOoWPC?nC}q zuCNGlQJ=#R8Dp7tJ8B&TCYy(hqYkc()L`0ERKo30U4dto&`dE_gr;mkn88PN+g9uZ z<8{+4qvzFcUjU3|rb$VO8T5>cj#BNIM03Yscczsp&ALpBK`r(ZsLF#q)#>XO7%A|D z&`u$ay_1XZFy)k5SK?v%C;1ghCe6M8f_!gC7uR!369&_+jNg!Bh7~<_Q@neV{=nhD zjy)%Q>d#lb@elEdo8lJ{W3?W=keapsD>c+89cotLnU5N7mKv(7pvWO79h;%%uuomn z(|e`pr@n()E(gnnJg9R6;mKp}gcvvSzd)y>Bkjt6(48<6Rk)ReA;yes4Ovp$7{fL| zU4#DSsGd;eg+gDXwH3jS{Ri|bYT~zsf;TK7_3rw@nJ)xN<$0-Z0w!Rr=6#Meyga!R z0>oZnV_l}nP&M3w78uBQ$5%5ta8L6k={Y*_#6PU%zuwu2OI~?fCoY2J(e679+)1lT z@1(ME8RA>ILa+X~KAORG!pB*&Ow6*&yqm-2Hf7%BHt+J@4>QBv`9AjYnfV}xTjzde zvjQ)#hZ6VFIzjR%Q)t#+LN&{F{;-Qrtj`L9`uWw<+pIt7^%MfQibe1a;wlzG*eSTc z?wYl;Dt@Bp)K9ODl4QH(5nNG^7%}7kGG!x2M^}LOaQ&ahF)SrUlI-g{l^pTe}@uUuR%!#LQ~ro(2`9X zuKhXTgPM4UkteK{(T3s%Vsdjop~cF!w7&F}IdQIVN0@GFmRo zAl~Ri{lbq5korLn9oTFuopQ*m+i5a+TLNIrnFR~z*=qGn_k36sD4p6t=z)f z=>^szy};r;E|%W|xa)9AE4$JWE$em?2XvkK4sr*r>_zUNm3cIt(bYAo?KQqbz5^m^qk>`yk=vMsa;v%3;DW1CO@ZDj zrD9Ucw-Cq?Qir?K$lJmQL$+*Rpi^R%BVTA;cccs7n_Jc$`P!V$ zunQ!TFOG@p zIZP5-#=V83u3Ia6n0=vuO(n(lYpUQpl2<+0!@Jc3kd@;U*lhv@-xM+=ElWkP%oah) z?ep+B1{F@zMZ!rDADQTBrT%cW6A3LY=9$(S?4Dk?jz5( ztvm8|+dAnc=DlNc1mmuB#iUk`Z5QCJnHoQ{YD(J_tM8`ueAfwq`m^6-5B7rk&L14_ zsnjmQ@zjMl4m&uq^V!sVIA+ykmJV__PE`uwhnq**wqAjb19NoDs_`6-6Aq5t|A^xt z#bJjqpB=)W2hI5JfR>wYZf~PEMHm}c3xU2oNt=Xl9KM8HDA$({MHaHSFelf_k;p>v zBiuzs8*ahRM9L+#yJEJyr8E^dJT(=yd%8ch%|2?Ib`Q~Z%||oM2SLv2OL9Wnb77fF z+ch7{alDWnMbG0BMI%W7$7}f4@@~9KdmjQB+80AC31#!}y0Au;qeYK0KgQZAv>jt& z`PxpvMUW`mX8$>$l_SW@z^4c`keKBHc*yefx~;&}+(IY1Rkd6M%VQS7UV;zlR*3gt zPZspFYy@aP0&=h@&A|ePqiGLxfm;8LOKpGRN*ah6aLNWwQD8Uq>;QJ#j=~AV0REj^ z>Hp&Z&HvtJ`JXAiqiagMA}!Lkd$e1;OMi~8Kl6dEnu|+p!maI$*(u`NND+_EEw!a) zSBx4FDZ+`NL0y&h?Ru!O zm=;XgKN!w`4hW;{F9(!H3zs38LH+efqt-V#I8*r+XtDJAVjt?^Jp{KybKHCA;1Y9_ z$5i}cNgwa^3L}N{HC#Ae7Tg6=^XxWRsz{@P^cKq{q@N)dV;AXDCJX7u=x{)~gQXe) z>91IDmcENLORBJ$=lSa#gj~)0ha+6%AWY7KklElTI2XEw^vDOYCE`+S|k_-A#;cFH|B|qdy9N zuqMAtOH}=9|F5{-)w4AbKMMbH4OFY$0+>IU`Gsx{dDL~H_?|v~v VpR{#5UZ=UH8lFY<>-B#9e*-=327v$o literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1m b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1m new file mode 100644 index 0000000000000000000000000000000000000000..413cad4dfe09660d3ab17a1b5909008d50386b0c GIT binary patch literal 256 zcmchQQ4WA03`5_S;*|CNw}l2xkOPo?ymnbv#4^X?2_#W{H_=*=Z~9Ld-Xyzz#2J;i RZc_f&cf~zlZtC3I-v9@e2oV4P literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1n b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1n new file mode 100644 index 0000000000000000000000000000000000000000..23910f5ada4e8f5614d155d52c90927089733079 GIT binary patch literal 256 zcmc)DQ3}8?2m{bSMcTBO``>n%bZ6K{ct$@2BoM-DC%>74z00fE9anMc6i^Dm!j`21 XukJ1PIwiy;(izI2d_Oz1?7#mX-(?5I literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-3n b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-3n new file mode 100644 index 0000000000000000000000000000000000000000..7fecdcdb6c2678eca76b201d10ad3b904a0c5399 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4k b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4k new file mode 100644 index 0000000000000000000000000000000000000000..dc4d1e4ed847f5bba46ad728bd756e7b9c0f4d75 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2f b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2f new file mode 100644 index 0000000000000000000000000000000000000000..e1a71a237a21fdf7d55471b88b492e5b9ec13352 GIT binary patch literal 8192 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 I_{E)n0^9rYdH?_b literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2j b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2j new file mode 100644 index 0000000000000000000000000000000000000000..1db58d196ab3fd479f347ef6a5bf19048c332025 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3l b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3l new file mode 100644 index 0000000000000000000000000000000000000000..00fe489fdf8f3de35c017a53cec6efc968f2d559 GIT binary patch literal 256 zcmZ8bTMol84B}%Ve$My5?MS+HQXR!$96^9b&3AqvIh{c*N1GY`_V@ES#r84pziEl? zi#q*c;`g)_z?{kIL77#h6i-EtDQiNwqG6o{53cIwMnk_WK#LIeMkqV$eN5Fz^wt^+ Np;_M!9a;KX50WHwWxHIGUF{%9WlxD~2=0dvbPe^VIFk#&!k{ysT~ zp0ls>R_nO@~ literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3n b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3n new file mode 100644 index 0000000000000000000000000000000000000000..3abc5d5eb82998a0df6e1060215978584613ab2d GIT binary patch literal 256 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.vhd new file mode 100644 index 00000000..fb5ff9f0 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.vhd @@ -0,0 +1,2070 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity prog is +port ( + clk : in std_logic; + addr : in std_logic_vector(14 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of prog is + type rom is array(0 to 32767) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"F3",X"31",X"00",X"E8",X"01",X"00",X"00",X"FD",X"21",X"00",X"00",X"10",X"FA",X"0D",X"20",X"F7", + X"ED",X"56",X"21",X"B3",X"E6",X"36",X"01",X"DB",X"04",X"CB",X"7F",X"CA",X"41",X"6F",X"35",X"CD", + X"7A",X"00",X"00",X"00",X"00",X"FB",X"C3",X"CF",X"25",X"CD",X"00",X"1D",X"CD",X"4C",X"04",X"CD", + X"2C",X"07",X"18",X"F5",X"C7",X"C7",X"C7",X"C7",X"08",X"D9",X"DD",X"E5",X"FD",X"E5",X"CD",X"28", + X"01",X"CD",X"A2",X"00",X"CD",X"68",X"31",X"3A",X"6A",X"E5",X"B7",X"C4",X"4B",X"2A",X"3A",X"9D", + X"E5",X"FE",X"02",X"CC",X"41",X"01",X"CD",X"90",X"01",X"FD",X"E1",X"DD",X"E1",X"D9",X"08",X"FB", + X"C9",X"C7",X"C7",X"C7",X"C7",X"C7",X"FB",X"ED",X"45",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"93",X"24",X"6C",X"DB",X"7A",X"FB",X"85",X"91",X"A3",X"80",X"AF",X"32",X"9D",X"E5",X"D3",X"01", + X"21",X"00",X"D0",X"36",X"00",X"54",X"5D",X"13",X"01",X"F0",X"17",X"ED",X"B0",X"CD",X"28",X"01", + X"CD",X"F4",X"08",X"CD",X"D6",X"08",X"CD",X"A6",X"6D",X"3E",X"00",X"D3",X"00",X"F6",X"80",X"D3", + X"00",X"C9",X"21",X"B5",X"E5",X"35",X"23",X"35",X"21",X"B5",X"E6",X"35",X"3A",X"B9",X"E5",X"B7", + X"20",X"04",X"DB",X"01",X"18",X"02",X"DB",X"02",X"2F",X"32",X"4D",X"E4",X"21",X"CF",X"E5",X"07", + X"CB",X"16",X"07",X"07",X"CB",X"16",X"3A",X"4D",X"E4",X"21",X"D0",X"E5",X"0F",X"CB",X"16",X"0F", + X"CB",X"16",X"DB",X"00",X"2F",X"21",X"AA",X"E5",X"1F",X"CB",X"16",X"1F",X"CB",X"16",X"DB",X"04", + X"CB",X"67",X"20",X"29",X"21",X"B4",X"E5",X"7E",X"B7",X"20",X"11",X"3A",X"AA",X"E5",X"E6",X"05", + X"FE",X"05",X"20",X"06",X"36",X"01",X"F1",X"C3",X"59",X"00",X"18",X"11",X"3A",X"AA",X"E5",X"E6", + X"0A",X"FE",X"0A",X"20",X"04",X"36",X"00",X"18",X"04",X"F1",X"C3",X"59",X"00",X"CD",X"23",X"09", + X"3A",X"AF",X"E5",X"B7",X"20",X"05",X"3E",X"02",X"32",X"B2",X"E5",X"3A",X"A7",X"E5",X"B7",X"C8", + X"3A",X"B2",X"E5",X"B7",X"C8",X"C3",X"A0",X"68",X"3A",X"B3",X"E6",X"B7",X"28",X"07",X"CD",X"39", + X"7C",X"F1",X"C3",X"59",X"00",X"01",X"00",X"01",X"11",X"00",X"C0",X"21",X"00",X"E3",X"ED",X"B0", + X"C9",X"CD",X"E6",X"03",X"CD",X"00",X"0B",X"CD",X"00",X"13",X"CD",X"00",X"24",X"C9",X"FD",X"E5", + X"3A",X"E9",X"E4",X"32",X"88",X"E5",X"FD",X"21",X"58",X"E4",X"11",X"18",X"00",X"DD",X"7E",X"06", + X"FD",X"BE",X"06",X"20",X"20",X"DD",X"7E",X"07",X"FD",X"96",X"07",X"30",X"02",X"ED",X"44",X"FE", + X"04",X"30",X"12",X"FD",X"7E",X"0D",X"B7",X"28",X"0C",X"FD",X"7E",X"08",X"FE",X"09",X"30",X"02", + X"0E",X"FF",X"FD",X"E1",X"C9",X"FD",X"19",X"21",X"88",X"E5",X"35",X"20",X"D0",X"FD",X"E1",X"C9", + X"3A",X"9D",X"E5",X"B7",X"C8",X"3A",X"6A",X"E5",X"B7",X"CC",X"03",X"32",X"DD",X"21",X"40",X"E4", + X"FD",X"21",X"B0",X"E3",X"3A",X"6A",X"E5",X"FE",X"02",X"20",X"04",X"FD",X"21",X"F0",X"E3",X"AF", + X"32",X"E8",X"E4",X"DD",X"4E",X"0A",X"3A",X"E8",X"E4",X"B7",X"28",X"17",X"DD",X"7E",X"0D",X"B7", + X"28",X"0E",X"DD",X"34",X"08",X"DD",X"7E",X"08",X"FE",X"18",X"38",X"04",X"DD",X"36",X"08",X"00", + X"CD",X"4E",X"01",X"79",X"FE",X"FF",X"20",X"0B",X"FD",X"36",X"04",X"00",X"FD",X"36",X"0C",X"00", + X"C3",X"11",X"03",X"06",X"00",X"2A",X"F6",X"E4",X"3A",X"E8",X"E4",X"B7",X"20",X"05",X"21",X"00", + X"00",X"18",X"19",X"57",X"3A",X"02",X"E5",X"B7",X"28",X"12",X"3A",X"E9",X"E4",X"BA",X"20",X"0C", + X"11",X"30",X"00",X"19",X"3A",X"CD",X"E5",X"FE",X"08",X"20",X"01",X"EB",X"09",X"22",X"F9",X"E4", + X"01",X"60",X"45",X"09",X"46",X"DD",X"6E",X"00",X"DD",X"7E",X"01",X"C6",X"04",X"67",X"29",X"29", + X"29",X"0E",X"00",X"CB",X"28",X"CB",X"19",X"DD",X"7E",X"0B",X"B7",X"20",X"04",X"ED",X"42",X"18", + X"01",X"09",X"29",X"FD",X"74",X"06",X"3E",X"00",X"17",X"FD",X"77",X"07",X"3A",X"F8",X"E4",X"4F", + X"DD",X"CB",X"17",X"66",X"28",X"01",X"0C",X"3A",X"E8",X"E4",X"B7",X"20",X"04",X"0E",X"03",X"18", + X"11",X"47",X"3A",X"02",X"E5",X"B7",X"28",X"0A",X"3A",X"E9",X"E4",X"B8",X"20",X"04",X"3A",X"6E", + X"E5",X"4F",X"CB",X"E1",X"FD",X"71",X"00",X"11",X"B0",X"43",X"2A",X"F9",X"E4",X"19",X"56",X"DD", + X"7E",X"0B",X"B7",X"20",X"04",X"3E",X"40",X"AA",X"57",X"7A",X"E6",X"C0",X"FD",X"77",X"05",X"2A", + X"F9",X"E4",X"7A",X"11",X"00",X"42",X"19",X"57",X"5E",X"D5",X"FD",X"73",X"04",X"11",X"C0",X"48", + X"2A",X"F9",X"E4",X"19",X"AF",X"57",X"5E",X"CB",X"7B",X"28",X"01",X"15",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"29",X"29",X"29",X"17",X"6C",X"67",X"19",X"EB",X"21",X"E9",X"00",X"B7",X"ED",X"52", + X"ED",X"5B",X"E3",X"E5",X"19",X"FD",X"75",X"02",X"FD",X"74",X"03",X"D1",X"CB",X"42",X"28",X"4D", + X"1C",X"FD",X"73",X"0C",X"FD",X"71",X"08",X"E5",X"01",X"70",X"4A",X"2A",X"F9",X"E4",X"09",X"7E", + X"06",X"00",X"ED",X"44",X"4F",X"CB",X"79",X"28",X"01",X"05",X"E1",X"09",X"FD",X"75",X"0A",X"FD", + X"74",X"0B",X"7A",X"E6",X"C0",X"FD",X"77",X"0D",X"01",X"10",X"47",X"2A",X"F9",X"E4",X"09",X"7E", + X"CB",X"72",X"28",X"02",X"ED",X"44",X"4F",X"06",X"00",X"CB",X"79",X"28",X"01",X"05",X"FD",X"66", + X"07",X"FD",X"6E",X"06",X"09",X"FD",X"75",X"0E",X"FD",X"74",X"0F",X"18",X"04",X"FD",X"36",X"0C", + X"00",X"11",X"F0",X"FF",X"FD",X"19",X"01",X"18",X"00",X"DD",X"09",X"21",X"E8",X"E4",X"34",X"3A", + X"E9",X"E4",X"BE",X"D2",X"B3",X"01",X"3A",X"6A",X"E5",X"FE",X"02",X"C8",X"FD",X"21",X"00",X"E3", + X"3A",X"17",X"E5",X"87",X"87",X"87",X"21",X"12",X"E5",X"86",X"ED",X"44",X"3C",X"4F",X"06",X"00", + X"2A",X"E3",X"E5",X"09",X"FD",X"75",X"02",X"FD",X"74",X"03",X"FD",X"36",X"00",X"12",X"3A",X"16", + X"E5",X"C6",X"04",X"87",X"87",X"87",X"6F",X"26",X"00",X"29",X"FD",X"75",X"06",X"FD",X"74",X"07", + X"3A",X"10",X"E5",X"FD",X"77",X"04",X"FD",X"21",X"08",X"E3",X"FD",X"36",X"04",X"00",X"FD",X"36", + X"0C",X"00",X"16",X"14",X"1E",X"02",X"DD",X"21",X"18",X"E5",X"DD",X"7E",X"01",X"FE",X"00",X"28", + X"3A",X"DD",X"7E",X"03",X"87",X"87",X"87",X"47",X"3E",X"F1",X"90",X"4F",X"06",X"00",X"2A",X"E3", + X"E5",X"09",X"FD",X"75",X"02",X"FD",X"74",X"03",X"DD",X"7E",X"02",X"C6",X"04",X"87",X"87",X"87", + X"6F",X"26",X"00",X"29",X"FD",X"75",X"06",X"FD",X"74",X"07",X"FD",X"36",X"00",X"12",X"DD",X"7E", + X"01",X"FD",X"77",X"04",X"01",X"08",X"00",X"FD",X"09",X"1D",X"C8",X"01",X"04",X"00",X"DD",X"09", + X"15",X"20",X"B7",X"21",X"9E",X"E5",X"06",X"00",X"7E",X"B7",X"28",X"12",X"35",X"20",X"0F",X"E5", + X"78",X"87",X"87",X"87",X"5F",X"16",X"00",X"21",X"C4",X"E3",X"19",X"36",X"00",X"E1",X"23",X"04", + X"78",X"FE",X"08",X"38",X"E3",X"C9",X"21",X"8A",X"E5",X"7E",X"23",X"B6",X"23",X"47",X"7E",X"E6", + X"F0",X"B0",X"20",X"0B",X"AF",X"77",X"3E",X"01",X"32",X"CE",X"E5",X"CD",X"03",X"32",X"C9",X"0E", + X"00",X"21",X"B1",X"E6",X"3A",X"8B",X"E5",X"BE",X"20",X"01",X"0C",X"ED",X"5B",X"E1",X"E5",X"21", + X"8D",X"E5",X"7E",X"93",X"27",X"77",X"2B",X"7E",X"9A",X"27",X"77",X"06",X"02",X"2B",X"7E",X"DE", + X"00",X"27",X"77",X"10",X"F8",X"CB",X"41",X"C8",X"3A",X"8B",X"E5",X"21",X"B1",X"E6",X"BE",X"C8", + X"7E",X"FE",X"15",X"20",X"04",X"3E",X"1C",X"18",X"0A",X"FE",X"10",X"20",X"04",X"3E",X"1D",X"18", + X"02",X"3E",X"1E",X"CD",X"42",X"31",X"7E",X"D6",X"05",X"27",X"77",X"C9",X"3A",X"FC",X"E4",X"B7", + X"C0",X"21",X"B6",X"E5",X"3A",X"04",X"E5",X"B7",X"20",X"02",X"36",X"FF",X"7E",X"FE",X"80",X"38", + X"02",X"36",X"18",X"7E",X"21",X"04",X"E5",X"FE",X"09",X"30",X"0D",X"7E",X"FE",X"01",X"28",X"06", + X"3E",X"01",X"77",X"CD",X"89",X"63",X"18",X"0B",X"7E",X"FE",X"02",X"28",X"06",X"3E",X"02",X"77", + X"CD",X"89",X"63",X"3A",X"41",X"E4",X"21",X"7B",X"E5",X"BE",X"20",X"0C",X"3A",X"43",X"E4",X"23", + X"BE",X"20",X"05",X"3E",X"01",X"32",X"AF",X"E6",X"3A",X"AF",X"E6",X"B7",X"C8",X"3A",X"46",X"E4", + X"FE",X"08",X"C0",X"AF",X"CD",X"89",X"63",X"F1",X"3E",X"00",X"32",X"9D",X"E5",X"3E",X"00",X"CD", + X"42",X"31",X"3E",X"23",X"CD",X"42",X"31",X"3E",X"54",X"CD",X"3E",X"30",X"CD",X"8D",X"32",X"3A", + X"00",X"E5",X"B7",X"20",X"47",X"21",X"21",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"22",X"D7", + X"01",X"3E",X"00",X"ED",X"B0",X"21",X"A1",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"A2",X"D7", + X"01",X"3E",X"00",X"ED",X"B0",X"21",X"21",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"22",X"D8", + X"01",X"3E",X"00",X"ED",X"B0",X"0E",X"47",X"21",X"A2",X"D7",X"11",X"F8",X"06",X"CD",X"2D",X"30", + X"3E",X"1F",X"CD",X"42",X"31",X"0E",X"02",X"CD",X"CF",X"2F",X"18",X"4C",X"3A",X"FF",X"E4",X"B7", + X"C2",X"64",X"05",X"21",X"25",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"26",X"D7",X"01",X"38", + X"00",X"ED",X"B0",X"21",X"A5",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"A6",X"D7",X"01",X"38", + X"00",X"ED",X"B0",X"21",X"25",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"26",X"D8",X"01",X"38", + X"00",X"ED",X"B0",X"0E",X"47",X"21",X"A6",X"D7",X"11",X"DC",X"06",X"CD",X"2D",X"30",X"3E",X"1F", + X"CD",X"42",X"31",X"0E",X"01",X"CD",X"CF",X"2F",X"CD",X"03",X"32",X"3A",X"00",X"E5",X"32",X"89", + X"E5",X"CD",X"89",X"06",X"21",X"6C",X"E5",X"3A",X"8B",X"E5",X"BE",X"38",X"57",X"CD",X"B9",X"32", + X"21",X"A3",X"D1",X"36",X"05",X"2B",X"36",X"00",X"11",X"A4",X"D1",X"01",X"34",X"00",X"ED",X"B0", + X"21",X"23",X"D2",X"36",X"05",X"2B",X"36",X"00",X"11",X"24",X"D2",X"01",X"34",X"00",X"ED",X"B0", + X"21",X"A3",X"D2",X"36",X"05",X"2B",X"36",X"00",X"11",X"A4",X"D2",X"01",X"34",X"00",X"ED",X"B0", + X"0E",X"47",X"21",X"24",X"D2",X"11",X"6F",X"06",X"CD",X"2D",X"30",X"2A",X"8B",X"E5",X"22",X"B6", + X"E6",X"3E",X"FF",X"32",X"B5",X"E6",X"3E",X"01",X"32",X"05",X"E5",X"CD",X"E4",X"05",X"2A",X"B6", + X"E6",X"22",X"8B",X"E5",X"CD",X"E4",X"05",X"21",X"8E",X"E5",X"4E",X"34",X"7E",X"FE",X"61",X"20", + X"02",X"36",X"49",X"79",X"CD",X"EC",X"31",X"B7",X"C2",X"00",X"5D",X"79",X"E6",X"07",X"CA",X"34", + X"28",X"C3",X"ED",X"26",X"3A",X"8F",X"E5",X"32",X"89",X"E5",X"3E",X"14",X"32",X"88",X"E5",X"2A", + X"8B",X"E5",X"7C",X"E6",X"F0",X"B5",X"28",X"32",X"21",X"8C",X"E5",X"7E",X"D6",X"10",X"27",X"77", + X"2B",X"7E",X"DE",X"00",X"27",X"77",X"01",X"10",X"00",X"CD",X"DB",X"2F",X"CD",X"03",X"32",X"21", + X"88",X"E5",X"35",X"20",X"DA",X"21",X"8F",X"E5",X"3A",X"89",X"E5",X"BE",X"20",X"05",X"3E",X"11", + X"CD",X"42",X"31",X"3E",X"04",X"CD",X"30",X"06",X"18",X"C0",X"3E",X"1C",X"CD",X"30",X"06",X"C9", + X"32",X"B5",X"E5",X"3A",X"05",X"E5",X"B7",X"28",X"2A",X"21",X"B5",X"E6",X"7E",X"FE",X"80",X"38", + X"02",X"36",X"28",X"7E",X"FE",X"14",X"30",X"12",X"21",X"2B",X"D1",X"36",X"05",X"2B",X"36",X"00", + X"11",X"2C",X"D1",X"01",X"02",X"00",X"ED",X"B0",X"18",X"09",X"21",X"2A",X"D1",X"11",X"6B",X"06", + X"CD",X"2D",X"30",X"3A",X"B5",X"E5",X"FE",X"00",X"20",X"C9",X"C9",X"06",X"58",X"32",X"00",X"42", + X"45",X"4C",X"4F",X"57",X"20",X"48",X"41",X"4C",X"46",X"20",X"54",X"49",X"4D",X"45",X"20",X"43", + X"4C",X"45",X"41",X"52",X"41",X"4E",X"43",X"45",X"00",X"3E",X"09",X"32",X"88",X"E5",X"21",X"B9", + X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"BA",X"D8",X"01",X"0C",X"00",X"ED",X"B0",X"21",X"39", + X"D9",X"36",X"05",X"2B",X"36",X"00",X"11",X"3A",X"D9",X"01",X"0C",X"00",X"ED",X"B0",X"0E",X"47", + X"11",X"26",X"07",X"3A",X"88",X"E5",X"1F",X"30",X"0C",X"11",X"18",X"07",X"3A",X"89",X"E5",X"B7", + X"20",X"03",X"11",X"1F",X"07",X"21",X"BA",X"D8",X"CD",X"2D",X"30",X"3E",X"0E",X"CD",X"3E",X"30", + X"21",X"88",X"E5",X"35",X"20",X"D8",X"3E",X"70",X"CD",X"3E",X"30",X"C9",X"59",X"4F",X"55",X"20", + X"48",X"41",X"56",X"45",X"20",X"4B",X"49",X"4C",X"4C",X"45",X"44",X"20",X"4E",X"4F",X"20",X"45", + X"4E",X"45",X"4D",X"49",X"45",X"53",X"2E",X"00",X"59",X"4F",X"55",X"20",X"4D",X"41",X"44",X"45", + X"20",X"49",X"54",X"20",X"57",X"49",X"54",X"48",X"4F",X"55",X"54",X"20",X"45",X"4E",X"54",X"52", + X"41",X"50",X"50",X"49",X"4E",X"47",X"2E",X"00",X"04",X"31",X"30",X"30",X"30",X"30",X"00",X"04", + X"32",X"30",X"30",X"30",X"30",X"00",X"20",X"20",X"20",X"20",X"20",X"00",X"CD",X"CE",X"07",X"CD", + X"1D",X"08",X"CD",X"AA",X"09",X"3A",X"50",X"E4",X"B7",X"C0",X"3A",X"A7",X"E5",X"B7",X"28",X"0E", + X"3E",X"00",X"32",X"9D",X"E5",X"3E",X"38",X"CD",X"3E",X"30",X"F1",X"C3",X"85",X"68",X"DB",X"04", + X"CB",X"77",X"C8",X"3E",X"0C",X"32",X"4A",X"E4",X"3E",X"01",X"32",X"9D",X"E5",X"3E",X"00",X"CD", + X"42",X"31",X"3E",X"06",X"CD",X"42",X"31",X"3E",X"38",X"CD",X"3E",X"30",X"3E",X"00",X"32",X"9D", + X"E5",X"F1",X"21",X"8F",X"E5",X"35",X"7E",X"FE",X"FF",X"20",X"2A",X"21",X"34",X"D7",X"11",X"A8", + X"07",X"CD",X"2D",X"30",X"21",X"B4",X"D7",X"11",X"B5",X"07",X"CD",X"2D",X"30",X"21",X"34",X"D8", + X"11",X"A8",X"07",X"CD",X"2D",X"30",X"3E",X"21",X"CD",X"42",X"31",X"3E",X"8C",X"CD",X"3E",X"30", + X"3E",X"02",X"32",X"90",X"E5",X"C3",X"E3",X"6A",X"06",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"00",X"06",X"20",X"47",X"41",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52", + X"20",X"00",X"20",X"54",X"49",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52",X"20",X"00",X"3A",X"CE", + X"E5",X"B7",X"C8",X"DB",X"04",X"CB",X"77",X"C8",X"F1",X"AF",X"32",X"CE",X"E5",X"32",X"9D",X"E5", + X"3E",X"00",X"CD",X"42",X"31",X"3E",X"25",X"CD",X"42",X"31",X"21",X"35",X"D7",X"36",X"05",X"2B", + X"36",X"00",X"11",X"36",X"D7",X"01",X"14",X"00",X"ED",X"B0",X"0E",X"47",X"21",X"B4",X"D7",X"11", + X"C2",X"07",X"CD",X"2D",X"30",X"21",X"35",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"36",X"D8", + X"01",X"14",X"00",X"ED",X"B0",X"3E",X"8C",X"CD",X"3E",X"30",X"C3",X"67",X"07",X"2A",X"55",X"E4", + X"01",X"C0",X"FE",X"09",X"D0",X"AF",X"32",X"50",X"E4",X"32",X"9D",X"E5",X"CD",X"8D",X"32",X"21", + X"29",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"2A",X"D7",X"01",X"2A",X"00",X"ED",X"B0",X"21", + X"A9",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"AA",X"D7",X"01",X"2A",X"00",X"ED",X"B0",X"21", + X"29",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"2A",X"D8",X"01",X"2A",X"00",X"ED",X"B0",X"3E", + X"02",X"32",X"89",X"E5",X"3E",X"10",X"CD",X"42",X"31",X"3E",X"04",X"32",X"88",X"E5",X"3A",X"88", + X"E5",X"1F",X"30",X"12",X"21",X"AB",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"AC",X"D7",X"01", + X"28",X"00",X"ED",X"B0",X"18",X"0B",X"0E",X"47",X"21",X"AA",X"D7",X"11",X"C0",X"08",X"CD",X"2D", + X"30",X"3E",X"15",X"CD",X"3E",X"30",X"21",X"88",X"E5",X"35",X"20",X"D2",X"21",X"89",X"E5",X"35", + X"20",X"C2",X"3E",X"10",X"CD",X"42",X"31",X"0E",X"47",X"21",X"AA",X"D7",X"11",X"C0",X"08",X"CD", + X"2D",X"30",X"3E",X"54",X"CD",X"3E",X"30",X"3A",X"8F",X"E5",X"B7",X"C0",X"CD",X"B9",X"32",X"C9", + X"59",X"4F",X"55",X"20",X"41",X"52",X"45",X"20",X"42",X"4F",X"55",X"4E",X"44",X"20",X"54",X"4F", + X"20",X"44",X"49",X"45",X"2E",X"00",X"DB",X"03",X"2F",X"47",X"E6",X"03",X"32",X"DF",X"E5",X"78", + X"1F",X"1F",X"E6",X"03",X"4F",X"06",X"00",X"21",X"F0",X"08",X"09",X"7E",X"32",X"E0",X"E5",X"C9", + X"02",X"01",X"03",X"04",X"DB",X"03",X"2F",X"1F",X"1F",X"1F",X"1F",X"47",X"21",X"AF",X"E5",X"DB", + X"04",X"CB",X"57",X"20",X"11",X"78",X"3C",X"E6",X"03",X"77",X"23",X"78",X"1F",X"1F",X"E6",X"03", + X"FE",X"02",X"DE",X"F5",X"77",X"C9",X"78",X"3C",X"E6",X"0F",X"CB",X"5F",X"28",X"01",X"3C",X"77", + X"23",X"77",X"C9",X"21",X"AD",X"E5",X"11",X"AF",X"E5",X"DB",X"00",X"CD",X"58",X"09",X"21",X"AE", + X"E5",X"13",X"DB",X"02",X"1F",X"F6",X"04",X"CD",X"58",X"09",X"3A",X"B9",X"E5",X"47",X"21",X"AB", + X"E5",X"7E",X"B7",X"28",X"05",X"35",X"3E",X"02",X"B0",X"47",X"23",X"7E",X"B7",X"28",X"05",X"35", + X"3E",X"04",X"B0",X"47",X"78",X"D3",X"01",X"C9",X"1F",X"1F",X"1F",X"CB",X"16",X"1F",X"CB",X"16", + X"7E",X"E6",X"55",X"FE",X"50",X"20",X"2B",X"2B",X"2B",X"36",X"0C",X"3A",X"B2",X"E6",X"B7",X"20", + X"08",X"3E",X"12",X"D3",X"00",X"F6",X"80",X"D3",X"00",X"1A",X"FE",X"01",X"28",X"12",X"FE",X"08", + X"30",X"0C",X"21",X"B1",X"E5",X"34",X"BE",X"C0",X"AF",X"77",X"3E",X"01",X"18",X"02",X"D6",X"08", + X"18",X"0D",X"7E",X"E6",X"AA",X"C0",X"21",X"B3",X"E5",X"34",X"7E",X"E6",X"0F",X"C0",X"3C",X"21", + X"B2",X"E5",X"86",X"27",X"30",X"02",X"3E",X"99",X"77",X"C9",X"DB",X"04",X"CB",X"6F",X"C0",X"CB", + X"67",X"C8",X"DB",X"00",X"CB",X"47",X"C0",X"F1",X"F1",X"AF",X"32",X"9D",X"E5",X"3E",X"00",X"CD", + X"42",X"31",X"21",X"10",X"D0",X"36",X"00",X"54",X"5D",X"13",X"01",X"EF",X"13",X"ED",X"B0",X"21", + X"22",X"D7",X"11",X"29",X"0A",X"CD",X"2D",X"30",X"21",X"1A",X"D9",X"11",X"48",X"0A",X"CD",X"2D", + X"30",X"11",X"00",X"00",X"0E",X"04",X"3A",X"8E",X"E5",X"21",X"60",X"D9",X"CD",X"48",X"30",X"21", + X"8E",X"E5",X"DB",X"01",X"CB",X"7F",X"28",X"0E",X"CB",X"42",X"28",X"08",X"16",X"00",X"7E",X"FE", + X"02",X"38",X"01",X"35",X"18",X"02",X"16",X"01",X"DB",X"01",X"CB",X"6F",X"28",X"09",X"CB",X"43", + X"28",X"03",X"1E",X"00",X"34",X"18",X"02",X"1E",X"01",X"3E",X"01",X"CD",X"3E",X"30",X"DB",X"00", + X"CB",X"4F",X"20",X"C0",X"7E",X"3D",X"C3",X"D4",X"05",X"02",X"53",X"45",X"4C",X"45",X"43",X"54", + X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"20",X"54",X"4F",X"20",X"43",X"48",X"41",X"4E",X"47", + X"45",X"20",X"52",X"4F",X"55",X"4E",X"44",X"00",X"02",X"44",X"49",X"47",X"4C",X"45",X"46",X"54", + X"2D",X"2D",X"44",X"4F",X"57",X"4E",X"20",X"20",X"44",X"49",X"47",X"52",X"49",X"47",X"48",X"54", + X"2D",X"2D",X"55",X"50",X"20",X"20",X"4C",X"45",X"56",X"45",X"4C",X"2D",X"30",X"30",X"00",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3A",X"A7",X"E5",X"B7",X"28",X"0E",X"CD",X"12",X"5C",X"32",X"4D",X"E4",X"FE",X"FF",X"20",X"04", + X"AF",X"32",X"50",X"E4",X"2A",X"44",X"E4",X"7D",X"6C",X"2C",X"2C",X"CD",X"D5",X"62",X"7E",X"2A", + X"55",X"E4",X"FE",X"0E",X"38",X"03",X"23",X"18",X"03",X"21",X"00",X"00",X"22",X"55",X"E4",X"DD", + X"21",X"40",X"E4",X"21",X"08",X"E5",X"7E",X"B7",X"28",X"01",X"35",X"21",X"06",X"E5",X"7E",X"B7", + X"28",X"18",X"35",X"3A",X"0A",X"E5",X"DD",X"BE",X"0B",X"20",X"0F",X"21",X"0B",X"E5",X"3A",X"44", + X"E4",X"BE",X"28",X"06",X"77",X"3E",X"0C",X"CD",X"73",X"30",X"3A",X"4E",X"E4",X"B7",X"FA",X"B4", + X"0F",X"C2",X"43",X"10",X"21",X"4C",X"E4",X"7E",X"B7",X"28",X"11",X"35",X"C0",X"36",X"08",X"21", + X"4A",X"E4",X"34",X"7E",X"E6",X"FC",X"FE",X"14",X"C8",X"36",X"14",X"C9",X"3A",X"54",X"E4",X"FE", + X"02",X"20",X"0D",X"06",X"1C",X"CD",X"9F",X"10",X"D0",X"AF",X"32",X"54",X"E4",X"CD",X"37",X"12", + X"3A",X"54",X"E4",X"FE",X"01",X"20",X"0E",X"CD",X"0E",X"12",X"06",X"20",X"CD",X"9F",X"10",X"D0", + X"3E",X"03",X"32",X"54",X"E4",X"AF",X"32",X"51",X"E4",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD", + X"00",X"2D",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"CA",X"9F",X"0C",X"AF",X"32",X"87",X"E5", + X"32",X"54",X"E4",X"7E",X"E6",X"FC",X"FE",X"18",X"20",X"13",X"3E",X"01",X"32",X"87",X"E5",X"3A", + X"42",X"E4",X"B7",X"20",X"08",X"3E",X"01",X"32",X"51",X"E4",X"CA",X"9F",X"0C",X"3A",X"45",X"E4", + X"FE",X"1D",X"30",X"0E",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"07",X"1A",X"E6",X"F8",X"FE",X"08", + X"20",X"0D",X"3E",X"01",X"32",X"87",X"E5",X"3A",X"42",X"E4",X"FE",X"80",X"DA",X"9F",X"0C",X"2A", + X"47",X"E4",X"3A",X"46",X"E4",X"CD",X"15",X"2D",X"DA",X"B1",X"0C",X"21",X"4F",X"E4",X"7E",X"B7", + X"20",X"06",X"34",X"3E",X"15",X"CD",X"42",X"31",X"3E",X"0C",X"32",X"4A",X"E4",X"21",X"09",X"E5", + X"7E",X"B7",X"28",X"04",X"35",X"C3",X"B1",X"0C",X"CD",X"0E",X"12",X"2A",X"42",X"E4",X"7C",X"11", + X"1E",X"00",X"19",X"22",X"42",X"E4",X"BC",X"28",X"0A",X"3A",X"87",X"E5",X"B7",X"28",X"04",X"AF", + X"32",X"42",X"E4",X"2A",X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C", + X"32",X"46",X"E4",X"CD",X"88",X"11",X"3A",X"42",X"E4",X"B7",X"C0",X"3A",X"44",X"E4",X"2A",X"45", + X"E4",X"CD",X"00",X"2D",X"3A",X"45",X"E4",X"FE",X"1D",X"30",X"06",X"1A",X"E6",X"F8",X"FE",X"08", + X"C0",X"15",X"0E",X"04",X"CD",X"A9",X"2E",X"C0",X"1D",X"1D",X"1D",X"1D",X"3A",X"44",X"E4",X"B7", + X"28",X"06",X"1A",X"E6",X"F8",X"FE",X"08",X"C0",X"3A",X"44",X"E4",X"FE",X"17",X"30",X"0A",X"7B", + X"C6",X"08",X"5F",X"1A",X"E6",X"F8",X"FE",X"08",X"C0",X"3E",X"08",X"32",X"4C",X"E4",X"C9",X"21", + X"4F",X"E4",X"7E",X"B7",X"28",X"07",X"36",X"00",X"3E",X"16",X"CD",X"42",X"31",X"AF",X"32",X"52", + X"E4",X"3A",X"4D",X"E4",X"CB",X"7F",X"C2",X"42",X"0F",X"CB",X"6F",X"C2",X"CF",X"0F",X"CB",X"5F", + X"28",X"06",X"CD",X"4C",X"0E",X"D8",X"18",X"08",X"CB",X"57",X"28",X"04",X"CD",X"B7",X"0E",X"D8", + X"3A",X"4D",X"E4",X"CB",X"47",X"C2",X"5E",X"0D",X"CB",X"4F",X"C2",X"21",X"0D",X"3A",X"44",X"E4", + X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"1A",X"E6",X"F8",X"FE",X"08",X"20",X"0B",X"3E",X"12",X"32", + X"4A",X"E4",X"3E",X"01",X"32",X"49",X"E4",X"C9",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"20", + X"0D",X"15",X"1A",X"E6",X"F8",X"FE",X"10",X"C0",X"3E",X"08",X"32",X"4A",X"E4",X"C9",X"7E",X"E6", + X"FC",X"FE",X"18",X"20",X"06",X"3E",X"07",X"32",X"4A",X"E4",X"C9",X"3E",X"12",X"32",X"4A",X"E4", + X"C9",X"AF",X"32",X"87",X"E5",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"3A",X"44", + X"E4",X"B7",X"28",X"0E",X"15",X"1B",X"1B",X"1B",X"1B",X"06",X"F8",X"0E",X"08",X"CD",X"71",X"2E", + X"20",X"0C",X"3E",X"01",X"32",X"87",X"E5",X"3A",X"40",X"E4",X"3D",X"FE",X"7F",X"D0",X"3E",X"01", + X"32",X"4B",X"E4",X"CD",X"37",X"12",X"CD",X"D4",X"0D",X"11",X"EC",X"FF",X"18",X"3D",X"AF",X"32", + X"87",X"E5",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"3A",X"44",X"E4",X"FE",X"17", + X"30",X"0E",X"15",X"13",X"13",X"13",X"13",X"06",X"F8",X"0E",X"08",X"CD",X"71",X"2E",X"20",X"0E", + X"3E",X"01",X"32",X"87",X"E5",X"3A",X"40",X"E4",X"FE",X"80",X"30",X"02",X"B7",X"C9",X"AF",X"32", + X"4B",X"E4",X"CD",X"37",X"12",X"CD",X"D4",X"0D",X"11",X"14",X"00",X"2A",X"40",X"E4",X"7C",X"19", + X"22",X"40",X"E4",X"BC",X"28",X"14",X"3A",X"87",X"E5",X"B7",X"28",X"0E",X"2A",X"40",X"E4",X"7D", + X"FE",X"80",X"38",X"01",X"24",X"2E",X"00",X"22",X"40",X"E4",X"2A",X"40",X"E4",X"29",X"7C",X"3C", + X"1F",X"32",X"44",X"E4",X"29",X"29",X"7C",X"32",X"47",X"E4",X"CD",X"88",X"11",X"06",X"00",X"CD", + X"F1",X"10",X"37",X"C9",X"3A",X"51",X"E4",X"B7",X"C8",X"F1",X"3A",X"4A",X"E4",X"E6",X"FC",X"21", + X"49",X"E4",X"FE",X"2C",X"28",X"02",X"36",X"01",X"35",X"C0",X"21",X"4A",X"E4",X"34",X"7E",X"E6", + X"FC",X"FE",X"2C",X"28",X"02",X"36",X"2C",X"7E",X"D6",X"18",X"4F",X"06",X"00",X"21",X"20",X"4C", + X"09",X"7E",X"32",X"49",X"E4",X"21",X"D0",X"4D",X"09",X"7E",X"87",X"87",X"87",X"87",X"5F",X"3A", + X"87",X"E5",X"57",X"2A",X"40",X"E4",X"3A",X"4B",X"E4",X"B7",X"7D",X"28",X"0D",X"93",X"30",X"08", + X"CB",X"42",X"28",X"03",X"AF",X"18",X"01",X"25",X"18",X"09",X"83",X"30",X"06",X"24",X"CB",X"42", + X"28",X"01",X"AF",X"6F",X"22",X"40",X"E4",X"2A",X"40",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"44", + X"E4",X"29",X"29",X"7C",X"32",X"47",X"E4",X"CD",X"88",X"11",X"37",X"C9",X"AF",X"32",X"87",X"E5", + X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E", + X"20",X"14",X"3A",X"45",X"E4",X"FE",X"01",X"28",X"16",X"15",X"15",X"1A",X"E6",X"F8",X"FE",X"08", + X"28",X"0D",X"18",X"17",X"18",X"09",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"02",X"B7",X"C9",X"3A", + X"42",X"E4",X"3D",X"FE",X"7F",X"D0",X"3E",X"01",X"32",X"87",X"E5",X"CD",X"0E",X"12",X"3A",X"44", + X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"15",X"1A",X"E6",X"F8",X"11",X"E2",X"FF",X"FE",X"10", + X"CA",X"07",X"0F",X"21",X"54",X"E4",X"7E",X"FE",X"03",X"C2",X"07",X"0F",X"35",X"3E",X"1C",X"32", + X"4A",X"E4",X"CD",X"AB",X"10",X"37",X"C9",X"AF",X"32",X"87",X"E5",X"3A",X"45",X"E4",X"FE",X"1D", + X"30",X"07",X"1A",X"E6",X"F8",X"FE",X"08",X"20",X"0E",X"3A",X"42",X"E4",X"FE",X"80",X"30",X"02", + X"B7",X"C9",X"3E",X"01",X"32",X"87",X"E5",X"CD",X"0E",X"12",X"3A",X"44",X"E4",X"2A",X"43",X"E4", + X"CD",X"00",X"2D",X"1A",X"15",X"E6",X"F8",X"FE",X"10",X"1A",X"11",X"1E",X"00",X"20",X"18",X"E6", + X"F8",X"FE",X"10",X"28",X"12",X"21",X"54",X"E4",X"7E",X"B7",X"20",X"0B",X"34",X"3E",X"20",X"32", + X"4A",X"E4",X"CD",X"AB",X"10",X"37",X"C9",X"2A",X"42",X"E4",X"7C",X"19",X"22",X"42",X"E4",X"BC", + X"28",X"11",X"3A",X"87",X"E5",X"B7",X"28",X"0B",X"7D",X"FE",X"80",X"38",X"01",X"24",X"2E",X"00", + X"22",X"42",X"E4",X"2A",X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C", + X"32",X"46",X"E4",X"CD",X"88",X"11",X"06",X"08",X"CD",X"F1",X"10",X"3E",X"03",X"32",X"54",X"E4", + X"37",X"C9",X"AF",X"32",X"0F",X"E5",X"3A",X"45",X"E4",X"FE",X"1C",X"D0",X"3A",X"44",X"E4",X"B7", + X"C8",X"3A",X"45",X"E4",X"6F",X"C6",X"03",X"32",X"17",X"E5",X"3A",X"44",X"E4",X"3D",X"32",X"16", + X"E5",X"CD",X"00",X"2D",X"06",X"FC",X"0E",X"08",X"CD",X"7F",X"2E",X"C0",X"ED",X"53",X"13",X"E5", + X"15",X"06",X"F8",X"0E",X"00",X"CD",X"7F",X"2E",X"C0",X"3E",X"10",X"32",X"4A",X"E4",X"14",X"1C", + X"1C",X"1C",X"1C",X"1A",X"E6",X"F8",X"FE",X"08",X"28",X"17",X"2C",X"2C",X"2C",X"2C",X"7E",X"E6", + X"FC",X"FE",X"18",X"28",X"07",X"7E",X"E6",X"F8",X"FE",X"10",X"20",X"05",X"3E",X"11",X"32",X"4A", + X"E4",X"3E",X"FF",X"32",X"4E",X"E4",X"21",X"40",X"01",X"22",X"11",X"E5",X"3E",X"01",X"32",X"4B", + X"E4",X"32",X"07",X"E5",X"3A",X"0F",X"E5",X"FE",X"0E",X"D2",X"59",X"10",X"2A",X"46",X"E4",X"7D", + X"C6",X"08",X"6F",X"7C",X"D6",X"06",X"CD",X"EF",X"2D",X"DA",X"92",X"10",X"C3",X"59",X"10",X"AF", + X"32",X"0F",X"E5",X"3A",X"45",X"E4",X"FE",X"1C",X"D0",X"3A",X"44",X"E4",X"FE",X"17",X"D0",X"3A", + X"45",X"E4",X"6F",X"C6",X"03",X"32",X"17",X"E5",X"3A",X"44",X"E4",X"3C",X"32",X"16",X"E5",X"CD", + X"00",X"2D",X"06",X"FC",X"0E",X"08",X"CD",X"7F",X"2E",X"C0",X"ED",X"53",X"13",X"E5",X"15",X"06", + X"F8",X"0E",X"00",X"CD",X"7F",X"2E",X"C0",X"3E",X"10",X"32",X"4A",X"E4",X"14",X"1D",X"1D",X"1D", + X"1D",X"1A",X"E6",X"F8",X"FE",X"08",X"28",X"17",X"2D",X"2D",X"2D",X"2D",X"7E",X"E6",X"FC",X"FE", + X"18",X"28",X"07",X"7E",X"E6",X"F8",X"FE",X"10",X"20",X"05",X"3E",X"11",X"32",X"4A",X"E4",X"3E", + X"01",X"32",X"4E",X"E4",X"21",X"40",X"01",X"22",X"11",X"E5",X"AF",X"32",X"4B",X"E4",X"3E",X"01", + X"32",X"07",X"E5",X"3A",X"0F",X"E5",X"FE",X"0E",X"30",X"0F",X"2A",X"46",X"E4",X"7D",X"C6",X"08", + X"6F",X"7C",X"C6",X"06",X"CD",X"31",X"2E",X"38",X"39",X"21",X"07",X"E5",X"7E",X"B7",X"28",X"07", + X"36",X"00",X"3E",X"01",X"CD",X"42",X"31",X"CD",X"0E",X"12",X"CD",X"37",X"12",X"3A",X"0F",X"E5", + X"FE",X"14",X"D2",X"03",X"11",X"21",X"10",X"E5",X"36",X"F3",X"3A",X"0F",X"E5",X"1F",X"1F",X"30", + X"02",X"36",X"F2",X"2A",X"11",X"E5",X"11",X"C0",X"00",X"19",X"22",X"11",X"E5",X"21",X"0F",X"E5", + X"34",X"C9",X"3E",X"00",X"32",X"10",X"E5",X"AF",X"32",X"4E",X"E4",X"32",X"07",X"E5",X"C9",X"21", + X"49",X"E4",X"35",X"28",X"02",X"B7",X"C9",X"21",X"4A",X"E4",X"34",X"3A",X"4A",X"E4",X"D6",X"18", + X"4F",X"06",X"00",X"21",X"20",X"4C",X"09",X"7E",X"32",X"49",X"E4",X"B7",X"20",X"07",X"3E",X"01", + X"32",X"49",X"E4",X"37",X"C9",X"21",X"A8",X"4E",X"09",X"56",X"1E",X"00",X"CB",X"2A",X"CB",X"1B", + X"CB",X"2A",X"CB",X"1B",X"CB",X"2A",X"CB",X"1B",X"2A",X"42",X"E4",X"19",X"22",X"42",X"E4",X"2A", + X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C",X"32",X"46",X"E4",X"B7", + X"C9",X"21",X"49",X"E4",X"35",X"C0",X"36",X"06",X"21",X"4A",X"E4",X"34",X"7E",X"E6",X"FC",X"B8", + X"C8",X"70",X"C9",X"AF",X"32",X"4E",X"E4",X"32",X"0C",X"E5",X"3D",X"32",X"0B",X"E5",X"CD",X"DD", + X"0C",X"ED",X"5B",X"13",X"E5",X"3E",X"04",X"CD",X"BE",X"2F",X"3E",X"00",X"32",X"10",X"E5",X"21", + X"18",X"E5",X"06",X"14",X"7E",X"B7",X"28",X"07",X"23",X"23",X"23",X"23",X"10",X"F6",X"C9",X"36", + X"A0",X"23",X"23",X"3A",X"16",X"E5",X"77",X"5F",X"23",X"3A",X"17",X"E5",X"77",X"57",X"2A",X"71", + X"E5",X"B7",X"ED",X"52",X"C0",X"22",X"71",X"E5",X"3E",X"01",X"32",X"02",X"E5",X"21",X"E9",X"E4", + X"7E",X"FD",X"21",X"58",X"E4",X"01",X"18",X"00",X"FD",X"09",X"3D",X"20",X"FB",X"34",X"FD",X"77", + X"00",X"FD",X"77",X"02",X"FD",X"73",X"01",X"FD",X"73",X"04",X"15",X"FD",X"72",X"03",X"FD",X"72", + X"05",X"7B",X"87",X"87",X"87",X"FD",X"77",X"07",X"7A",X"87",X"87",X"87",X"FD",X"77",X"06",X"FD", + X"36",X"09",X"01",X"FD",X"36",X"0C",X"B0",X"C9",X"3A",X"51",X"E4",X"B7",X"20",X"18",X"3A",X"40", + X"E4",X"FE",X"80",X"38",X"02",X"ED",X"44",X"FE",X"14",X"D0",X"3A",X"42",X"E4",X"FE",X"80",X"38", + X"02",X"ED",X"44",X"FE",X"1E",X"D0",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"15", + X"1A",X"E6",X"FC",X"FE",X"60",X"20",X"20",X"CD",X"83",X"2F",X"ED",X"5F",X"FE",X"33",X"38",X"04", + X"3E",X"08",X"18",X"0A",X"FE",X"0D",X"38",X"04",X"3E",X"09",X"18",X"02",X"3E",X"0A",X"CD",X"73", + X"30",X"3E",X"02",X"CD",X"42",X"31",X"C9",X"FE",X"70",X"C0",X"21",X"FC",X"E4",X"35",X"CD",X"5C", + X"2F",X"0E",X"00",X"14",X"1A",X"FE",X"04",X"20",X"02",X"0E",X"04",X"21",X"0D",X"E5",X"3A",X"08", + X"E5",X"B7",X"20",X"04",X"36",X"00",X"18",X"06",X"7E",X"FE",X"03",X"30",X"01",X"34",X"7E",X"81", + X"CD",X"73",X"30",X"3E",X"13",X"32",X"08",X"E5",X"3E",X"02",X"CD",X"42",X"31",X"C9",X"2A",X"40", + X"E4",X"7D",X"FE",X"80",X"30",X"07",X"D6",X"14",X"30",X"01",X"AF",X"18",X"06",X"C6",X"14",X"30", + X"02",X"24",X"AF",X"6F",X"22",X"40",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"44",X"E4",X"29",X"29", + X"7C",X"32",X"47",X"E4",X"C3",X"88",X"11",X"3A",X"52",X"E4",X"B7",X"C0",X"2A",X"42",X"E4",X"7D", + X"FE",X"80",X"30",X"07",X"D6",X"1E",X"30",X"01",X"AF",X"18",X"06",X"C6",X"1E",X"30",X"02",X"24", + X"AF",X"6F",X"22",X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C",X"32", + X"46",X"E4",X"C3",X"88",X"11",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3A",X"E9",X"E4",X"32",X"E8",X"E4",X"DD",X"21",X"58",X"E4",X"CD",X"19",X"13",X"11",X"18",X"00", + X"DD",X"19",X"21",X"E8",X"E4",X"35",X"20",X"F2",X"C9",X"21",X"6D",X"E5",X"36",X"00",X"3A",X"02", + X"E5",X"B7",X"28",X"19",X"3A",X"E8",X"E4",X"FE",X"01",X"20",X"12",X"34",X"3A",X"03",X"E5",X"B7", + X"28",X"0B",X"DD",X"7E",X"0C",X"FE",X"20",X"20",X"04",X"DD",X"36",X"0C",X"40",X"DD",X"7E",X"0E", + X"B7",X"C0",X"3A",X"F5",X"E4",X"B7",X"28",X"03",X"DD",X"34",X"17",X"DD",X"7E",X"0C",X"B7",X"28", + X"32",X"DD",X"35",X"0C",X"DD",X"7E",X"0C",X"FE",X"20",X"DA",X"23",X"15",X"DD",X"6E",X"07",X"DD", + X"7E",X"06",X"CD",X"F2",X"2E",X"DD",X"7E",X"0C",X"FE",X"B0",X"D0",X"DD",X"35",X"09",X"C0",X"DD", + X"36",X"09",X"08",X"DD",X"34",X"0A",X"DD",X"7E",X"0A",X"E6",X"FC",X"FE",X"14",X"C8",X"DD",X"36", + X"0A",X"14",X"C9",X"DD",X"7E",X"14",X"FE",X"14",X"20",X"0F",X"CD",X"F7",X"18",X"D8",X"06",X"1C", + X"CD",X"66",X"1A",X"D0",X"DD",X"36",X"14",X"00",X"C9",X"DD",X"7E",X"14",X"FE",X"01",X"20",X"12", + X"CD",X"C1",X"1B",X"CD",X"F7",X"18",X"D8",X"06",X"20",X"CD",X"66",X"1A",X"D0",X"DD",X"36",X"14", + X"15",X"C9",X"DD",X"7E",X"15",X"FE",X"02",X"20",X"19",X"CD",X"C1",X"1B",X"CD",X"F7",X"18",X"D8", + X"06",X"28",X"CD",X"66",X"1A",X"D0",X"DD",X"36",X"15",X"00",X"DD",X"34",X"09",X"DD",X"36",X"0F", + X"02",X"C9",X"DD",X"7E",X"15",X"FE",X"01",X"20",X"0F",X"CD",X"F7",X"18",X"D8",X"06",X"24",X"CD", + X"66",X"1A",X"D0",X"DD",X"36",X"15",X"03",X"C9",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"9E", + X"2D",X"DA",X"75",X"15",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8",X"0E", + X"10",X"CD",X"8D",X"2E",X"CA",X"75",X"15",X"AF",X"32",X"87",X"E5",X"DD",X"77",X"14",X"7E",X"E6", + X"FC",X"FE",X"18",X"20",X"0C",X"3E",X"01",X"32",X"87",X"E5",X"DD",X"7E",X"02",X"B7",X"CA",X"75", + X"15",X"DD",X"7E",X"05",X"FE",X"1D",X"30",X"29",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"22",X"1A", + X"E6",X"F8",X"FE",X"08",X"28",X"1B",X"DD",X"7E",X"16",X"B7",X"28",X"08",X"3C",X"DD",X"BE",X"05", + X"30",X"1C",X"18",X"0D",X"1A",X"FE",X"04",X"20",X"15",X"DD",X"7E",X"05",X"DD",X"77",X"16",X"18", + X"0D",X"3E",X"01",X"32",X"87",X"E5",X"DD",X"7E",X"02",X"FE",X"80",X"DA",X"75",X"15",X"DD",X"36", + X"10",X"00",X"CD",X"C1",X"1B",X"DD",X"7E",X"02",X"C6",X"15",X"DD",X"77",X"02",X"30",X"0D",X"DD", + X"34",X"03",X"3A",X"87",X"E5",X"B7",X"28",X"04",X"AF",X"DD",X"77",X"02",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"DD", + X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"D3",X"2E",X"CD",X"39",X"1B",X"06",X"0C",X"CD",X"2E",X"1A", + X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"24",X"7E",X"25",X"FE",X"04",X"20",X"3E", + X"DD",X"7E",X"0D",X"B7",X"28",X"19",X"DD",X"36",X"0D",X"00",X"EB",X"06",X"FC",X"0E",X"00",X"CD", + X"7F",X"2E",X"20",X"04",X"CD",X"0E",X"2F",X"C9",X"21",X"FC",X"E4",X"35",X"C9",X"18",X"1F",X"3A", + X"6D",X"E5",X"B7",X"28",X"19",X"3A",X"03",X"E5",X"B7",X"20",X"13",X"3E",X"01",X"32",X"03",X"E5", + X"EB",X"06",X"FC",X"0E",X"00",X"CD",X"7F",X"2E",X"20",X"03",X"CD",X"35",X"2F",X"C9",X"DD",X"7E", + X"02",X"B7",X"C0",X"15",X"1A",X"FE",X"04",X"C0",X"3A",X"87",X"E5",X"B7",X"C8",X"DD",X"36",X"16", + X"00",X"DD",X"36",X"0C",X"C0",X"DD",X"36",X"10",X"00",X"DD",X"36",X"0A",X"10",X"3E",X"05",X"CD", + X"42",X"31",X"3A",X"6D",X"E5",X"B7",X"C0",X"01",X"00",X"01",X"CD",X"DB",X"2F",X"3E",X"01",X"32", + X"00",X"E5",X"C9",X"B7",X"28",X"3C",X"FE",X"1F",X"20",X"0F",X"DD",X"36",X"10",X"01",X"DD",X"36", + X"0F",X"FE",X"DD",X"35",X"05",X"DD",X"35",X"05",X"C9",X"FE",X"18",X"38",X"06",X"DD",X"7E",X"0F", + X"FE",X"FE",X"C8",X"DD",X"36",X"10",X"00",X"DD",X"34",X"05",X"DD",X"34",X"05",X"DD",X"7E",X"0F", + X"DD",X"77",X"0B",X"FE",X"FE",X"38",X"04",X"DD",X"77",X"0C",X"C9",X"DD",X"36",X"0A",X"18",X"CD", + X"76",X"1A",X"DD",X"36",X"0C",X"01",X"CD",X"F7",X"18",X"D8",X"06",X"18",X"CD",X"66",X"1A",X"D0", + X"DD",X"36",X"0C",X"00",X"C9",X"DD",X"36",X"16",X"00",X"DD",X"36",X"10",X"01",X"DD",X"7E",X"0F", + X"B7",X"CA",X"85",X"17",X"3D",X"CA",X"29",X"17",X"3D",X"CA",X"5D",X"16",X"3D",X"CA",X"9A",X"15", + X"DD",X"6E",X"07",X"DD",X"7E",X"06",X"CD",X"F2",X"2E",X"C9",X"AF",X"32",X"87",X"E5",X"DD",X"7E", + X"05",X"FE",X"01",X"28",X"23",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8", + X"0E",X"10",X"CD",X"8D",X"2E",X"20",X"0B",X"15",X"15",X"1A",X"E6",X"F8",X"FE",X"08",X"20",X"14", + X"18",X"06",X"1A",X"E6",X"F8",X"FE",X"10",X"C0",X"DD",X"7E",X"02",X"3D",X"FE",X"7F",X"D0",X"3E", + X"01",X"32",X"87",X"E5",X"CD",X"C1",X"1B",X"DD",X"7E",X"04",X"DD",X"6E",X"03",X"CD",X"00",X"2D", + X"24",X"24",X"7E",X"E6",X"F8",X"FE",X"10",X"20",X"30",X"1A",X"E6",X"F8",X"FE",X"10",X"20",X"29", + X"15",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"21",X"DD",X"7E",X"14",X"FE",X"15",X"20",X"1A",X"DD", + X"35",X"14",X"DD",X"46",X"0A",X"DD",X"4E",X"09",X"C5",X"DD",X"36",X"0A",X"1C",X"CD",X"76",X"1A", + X"C1",X"30",X"41",X"DD",X"70",X"0A",X"DD",X"71",X"09",X"DD",X"7E",X"02",X"D6",X"15",X"DD",X"77", + X"02",X"30",X"0F",X"3A",X"87",X"E5",X"B7",X"28",X"06",X"AF",X"DD",X"77",X"02",X"18",X"03",X"DD", + X"35",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29", + X"29",X"7C",X"DD",X"77",X"06",X"CD",X"39",X"1B",X"CD",X"7A",X"1B",X"06",X"08",X"CD",X"2E",X"1A", + X"DD",X"36",X"14",X"15",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"C3",X"D3",X"2E",X"DD",X"7E",X"06", + X"DD",X"6E",X"07",X"CD",X"9E",X"2D",X"D8",X"AF",X"32",X"87",X"E5",X"DD",X"7E",X"05",X"FE",X"1D", + X"30",X"10",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"1A",X"E6",X"F8",X"FE",X"08", + X"20",X"0B",X"DD",X"7E",X"02",X"FE",X"80",X"D8",X"3E",X"01",X"32",X"87",X"E5",X"7E",X"E6",X"FC", + X"FE",X"18",X"20",X"17",X"DD",X"7E",X"15",X"FE",X"03",X"20",X"10",X"DD",X"35",X"15",X"DD",X"36", + X"0A",X"28",X"CD",X"76",X"1A",X"D0",X"DD",X"36",X"0A",X"0C",X"C9",X"CD",X"C1",X"1B",X"DD",X"7E", + X"04",X"DD",X"6E",X"03",X"CD",X"00",X"2D",X"1A",X"E6",X"F8",X"FE",X"10",X"20",X"29",X"15",X"1A", + X"E6",X"F8",X"FE",X"10",X"28",X"21",X"DD",X"7E",X"14",X"FE",X"15",X"28",X"1A",X"DD",X"34",X"14", + X"DD",X"46",X"0A",X"DD",X"4E",X"09",X"C5",X"DD",X"36",X"0A",X"20",X"CD",X"76",X"1A",X"C1",X"30", + X"3F",X"DD",X"70",X"0A",X"DD",X"71",X"09",X"DD",X"7E",X"02",X"C6",X"15",X"DD",X"77",X"02",X"30", + X"0D",X"DD",X"34",X"03",X"3A",X"87",X"E5",X"B7",X"28",X"04",X"AF",X"DD",X"77",X"02",X"DD",X"6E", + X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77", + X"06",X"CD",X"39",X"1B",X"CD",X"7A",X"1B",X"06",X"08",X"CD",X"2E",X"1A",X"DD",X"36",X"14",X"15", + X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"C3",X"D3",X"2E",X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CD", + X"EF",X"2D",X"D8",X"AF",X"32",X"87",X"E5",X"DD",X"7E",X"04",X"B7",X"28",X"16",X"DD",X"7E",X"04", + X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"2B",X"2B",X"2B",X"2B",X"06",X"F8",X"0E",X"08",X"CD",X"8D", + X"2E",X"20",X"0C",X"DD",X"7E",X"00",X"3D",X"FE",X"7F",X"D0",X"3E",X"01",X"32",X"87",X"E5",X"3E", + X"01",X"DD",X"77",X"0B",X"CD",X"EE",X"1B",X"CD",X"4C",X"18",X"DD",X"7E",X"00",X"D6",X"0E",X"DD", + X"77",X"00",X"30",X"0F",X"3A",X"87",X"E5",X"B7",X"28",X"06",X"AF",X"DD",X"77",X"00",X"18",X"03", + X"DD",X"35",X"01",X"18",X"57",X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CD",X"31",X"2E",X"D8",X"AF", + X"32",X"87",X"E5",X"DD",X"7E",X"04",X"FE",X"17",X"30",X"16",X"DD",X"7E",X"04",X"DD",X"6E",X"05", + X"CD",X"00",X"2D",X"23",X"23",X"23",X"23",X"06",X"F8",X"0E",X"08",X"CD",X"8D",X"2E",X"20",X"0B", + X"DD",X"7E",X"00",X"FE",X"80",X"D8",X"3E",X"01",X"32",X"87",X"E5",X"AF",X"DD",X"77",X"0B",X"CD", + X"EE",X"1B",X"CD",X"4C",X"18",X"DD",X"7E",X"00",X"C6",X"0E",X"DD",X"77",X"00",X"30",X"0D",X"DD", + X"34",X"01",X"3A",X"87",X"E5",X"B7",X"28",X"AB",X"AF",X"DD",X"77",X"00",X"DD",X"6E",X"00",X"DD", + X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77",X"07",X"CD", + X"39",X"1B",X"CD",X"7A",X"1B",X"DD",X"6E",X"06",X"DD",X"7E",X"0B",X"B7",X"DD",X"7E",X"07",X"28", + X"05",X"CD",X"B9",X"2E",X"18",X"03",X"CD",X"B5",X"2E",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD", + X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"20",X"19",X"DD",X"7E",X"15",X"B7",X"20",X"0B",X"DD",X"34", + X"15",X"DD",X"36",X"0A",X"24",X"CD",X"76",X"1A",X"D0",X"DD",X"36",X"15",X"03",X"06",X"04",X"18", + X"18",X"DD",X"7E",X"15",X"FE",X"03",X"20",X"0B",X"DD",X"35",X"15",X"DD",X"36",X"0A",X"28",X"CD", + X"76",X"1A",X"D0",X"DD",X"36",X"15",X"00",X"06",X"00",X"C3",X"2E",X"1A",X"3A",X"6D",X"E5",X"B7", + X"20",X"07",X"3A",X"FB",X"E4",X"B7",X"C8",X"18",X"05",X"3A",X"6F",X"E5",X"B7",X"C8",X"DD",X"7E", + X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"C0",X"F1",X"DD",X"6E",X"06", + X"DD",X"7E",X"0B",X"B7",X"DD",X"7E",X"07",X"28",X"05",X"CD",X"B9",X"2E",X"18",X"03",X"CD",X"B5", + X"2E",X"DD",X"7E",X"0A",X"E6",X"FC",X"FE",X"2C",X"28",X"04",X"DD",X"36",X"09",X"01",X"DD",X"35", + X"09",X"C0",X"DD",X"34",X"0A",X"DD",X"7E",X"0A",X"E6",X"FC",X"FE",X"2C",X"28",X"04",X"DD",X"36", + X"0A",X"2C",X"CD",X"19",X"1B",X"21",X"20",X"4C",X"09",X"7E",X"DD",X"77",X"09",X"21",X"D0",X"4D", + X"09",X"7E",X"B7",X"C8",X"87",X"87",X"87",X"87",X"5F",X"3A",X"87",X"E5",X"57",X"DD",X"7E",X"00", + X"DD",X"CB",X"0B",X"46",X"28",X"0F",X"93",X"30",X"0A",X"CB",X"42",X"28",X"03",X"AF",X"18",X"03", + X"DD",X"35",X"01",X"18",X"0B",X"83",X"30",X"08",X"DD",X"34",X"01",X"CB",X"42",X"28",X"01",X"AF", + X"DD",X"77",X"00",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04", + X"29",X"29",X"7C",X"DD",X"77",X"07",X"C9",X"DD",X"7E",X"0F",X"FE",X"FF",X"C8",X"E6",X"03",X"CA", + X"A6",X"19",X"3D",X"CA",X"EA",X"19",X"3D",X"28",X"59",X"DD",X"7E",X"0C",X"B7",X"28",X"0F",X"DD", + X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"F8",X"FE",X"08",X"37",X"C8",X"DD",X"CB", + X"0F",X"6E",X"20",X"0A",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"A2",X"2D",X"D8",X"DD",X"46", + X"0F",X"CB",X"78",X"20",X"20",X"DD",X"7E",X"02",X"D6",X"20",X"DD",X"77",X"02",X"30",X"03",X"DD", + X"35",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29", + X"29",X"7C",X"DD",X"77",X"06",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CB",X"70",X"CC",X"D3",X"2E", + X"B7",X"C9",X"DD",X"CB",X"0F",X"6E",X"20",X"0A",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"9E", + X"2D",X"D8",X"DD",X"46",X"0F",X"CB",X"78",X"20",X"20",X"DD",X"7E",X"02",X"C6",X"20",X"DD",X"77", + X"02",X"30",X"03",X"DD",X"34",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F", + X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CB", + X"70",X"CC",X"D3",X"2E",X"B7",X"C9",X"DD",X"CB",X"0F",X"6E",X"20",X"0A",X"DD",X"6E",X"06",X"DD", + X"7E",X"07",X"CD",X"31",X"2E",X"D8",X"DD",X"46",X"0F",X"CB",X"78",X"20",X"20",X"DD",X"7E",X"00", + X"C6",X"10",X"DD",X"77",X"00",X"30",X"03",X"DD",X"34",X"01",X"DD",X"6E",X"00",X"DD",X"66",X"01", + X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77",X"07",X"DD",X"6E",X"06", + X"DD",X"7E",X"07",X"CB",X"70",X"CC",X"B5",X"2E",X"B7",X"C9",X"DD",X"CB",X"0F",X"6E",X"20",X"0A", + X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CD",X"EF",X"2D",X"D8",X"DD",X"46",X"0F",X"CB",X"78",X"20", + X"20",X"DD",X"7E",X"00",X"D6",X"10",X"DD",X"77",X"00",X"30",X"03",X"DD",X"35",X"01",X"DD",X"6E", + X"00",X"DD",X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77", + X"07",X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CB",X"70",X"CC",X"B9",X"2E",X"B7",X"C9",X"DD",X"35", + X"09",X"C0",X"DD",X"36",X"09",X"06",X"DD",X"34",X"0A",X"DD",X"7E",X"0A",X"FE",X"03",X"20",X"12", + X"3A",X"CD",X"E5",X"5F",X"16",X"00",X"21",X"5D",X"1A",X"19",X"7E",X"B7",X"28",X"04",X"DD",X"70", + X"0A",X"C9",X"DD",X"7E",X"0A",X"E6",X"FC",X"B8",X"C8",X"DD",X"70",X"0A",X"C9",X"00",X"00",X"01", + X"01",X"00",X"00",X"01",X"00",X"00",X"DD",X"35",X"09",X"C0",X"DD",X"34",X"0A",X"DD",X"7E",X"0A", + X"E6",X"FC",X"B8",X"C2",X"0D",X"1B",X"DD",X"36",X"10",X"00",X"CD",X"19",X"1B",X"21",X"20",X"4C", + X"09",X"7E",X"DD",X"77",X"09",X"B7",X"CA",X"0D",X"1B",X"21",X"F8",X"4C",X"09",X"7E",X"57",X"E6", + X"03",X"20",X"07",X"DD",X"CB",X"0B",X"46",X"28",X"01",X"14",X"DD",X"72",X"0F",X"21",X"D0",X"4D", + X"09",X"7E",X"B7",X"28",X"30",X"87",X"87",X"87",X"87",X"16",X"00",X"DD",X"CB",X"0B",X"46",X"28", + X"03",X"ED",X"44",X"15",X"5F",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"19",X"DD",X"75",X"00",X"DD", + X"74",X"01",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29", + X"29",X"7C",X"DD",X"77",X"07",X"21",X"A8",X"4E",X"09",X"7E",X"B7",X"28",X"2F",X"56",X"1E",X"00", + X"CB",X"2A",X"CB",X"1B",X"CB",X"2A",X"CB",X"1B",X"CB",X"2A",X"CB",X"1B",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"19",X"DD",X"75",X"02",X"DD",X"74",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29", + X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"C9",X"DD",X"35",X"0A", + X"DD",X"34",X"09",X"DD",X"36",X"0F",X"FF",X"37",X"C9",X"3A",X"6D",X"E5",X"B7",X"28",X"08",X"3A", + X"CD",X"E5",X"E6",X"07",X"3C",X"18",X"03",X"3A",X"CD",X"E5",X"47",X"87",X"80",X"87",X"87",X"87", + X"DD",X"86",X"0A",X"D6",X"18",X"4F",X"06",X"00",X"C9",X"3A",X"6D",X"E5",X"B7",X"C0",X"DD",X"7E", + X"00",X"FE",X"80",X"38",X"02",X"ED",X"44",X"FE",X"0E",X"D0",X"DD",X"7E",X"02",X"FE",X"80",X"38", + X"02",X"ED",X"44",X"FE",X"15",X"D0",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"15", + X"1A",X"E6",X"FC",X"FE",X"70",X"C0",X"DD",X"7E",X"0D",X"B7",X"C0",X"3A",X"68",X"E5",X"C6",X"04", + X"87",X"87",X"87",X"DD",X"77",X"0D",X"CD",X"5C",X"2F",X"C9",X"DD",X"7E",X"0D",X"B7",X"C8",X"DD", + X"7E",X"0F",X"FE",X"02",X"D0",X"DD",X"7E",X"0A",X"FE",X"04",X"38",X"03",X"FE",X"08",X"D8",X"DD", + X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"15",X"06",X"FC",X"0E",X"00",X"CD",X"7F",X"2E", + X"C0",X"DD",X"35",X"0D",X"C0",X"DD",X"7E",X"0F",X"FE",X"00",X"DD",X"7E",X"00",X"20",X"06",X"FE", + X"80",X"30",X"0A",X"18",X"04",X"FE",X"80",X"38",X"04",X"CD",X"0E",X"2F",X"C9",X"DD",X"34",X"0D", + X"C9",X"DD",X"7E",X"00",X"FE",X"80",X"30",X"07",X"D6",X"0E",X"30",X"01",X"AF",X"18",X"08",X"C6", + X"0E",X"30",X"04",X"DD",X"34",X"01",X"AF",X"DD",X"77",X"00",X"6F",X"DD",X"66",X"01",X"29",X"7C", + X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77",X"07",X"C3",X"39",X"1B",X"DD",X"7E", + X"02",X"FE",X"80",X"30",X"07",X"D6",X"15",X"30",X"01",X"AF",X"18",X"08",X"C6",X"15",X"30",X"04", + X"DD",X"34",X"03",X"AF",X"DD",X"77",X"02",X"6F",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD", + X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"C3",X"39",X"1B",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3A",X"E9",X"E4",X"32",X"EA",X"E4",X"DD",X"21",X"58",X"E4",X"FD",X"21",X"EB",X"E4",X"DD",X"7E", + X"10",X"B7",X"28",X"1C",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"22",X"EF",X"E4",X"DD",X"7E",X"07", + X"32",X"F2",X"E4",X"CD",X"FD",X"1D",X"47",X"DD",X"7E",X"10",X"B7",X"28",X"03",X"DD",X"70",X"0F", + X"11",X"18",X"00",X"DD",X"19",X"21",X"EA",X"E4",X"35",X"20",X"D3",X"3A",X"E9",X"E4",X"32",X"EA", + X"E4",X"DD",X"21",X"58",X"E4",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"2C",X"2C",X"CD",X"D5",X"62", + X"7E",X"E6",X"0D",X"FE",X"0D",X"28",X"0A",X"21",X"01",X"E5",X"7E",X"FE",X"39",X"D0",X"36",X"00", + X"C9",X"11",X"18",X"00",X"DD",X"19",X"21",X"EA",X"E4",X"35",X"20",X"D9",X"21",X"01",X"E5",X"7E", + X"FE",X"38",X"30",X"02",X"34",X"C9",X"C0",X"34",X"3E",X"00",X"32",X"9D",X"E5",X"21",X"B5",X"E5", + X"7E",X"BE",X"28",X"FD",X"CD",X"8D",X"32",X"21",X"29",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11", + X"2A",X"D7",X"01",X"2E",X"00",X"ED",X"B0",X"21",X"A9",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11", + X"AA",X"D7",X"01",X"2E",X"00",X"ED",X"B0",X"21",X"29",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11", + X"2A",X"D8",X"01",X"2E",X"00",X"ED",X"B0",X"0E",X"47",X"21",X"AA",X"D7",X"11",X"E5",X"1D",X"CD", + X"2D",X"30",X"3E",X"1F",X"CD",X"42",X"31",X"0E",X"01",X"CD",X"CF",X"2F",X"CD",X"03",X"32",X"3E", + X"01",X"32",X"89",X"E5",X"CD",X"89",X"06",X"CD",X"B9",X"32",X"3E",X"26",X"CD",X"42",X"31",X"3E", + X"02",X"32",X"9D",X"E5",X"C9",X"41",X"4C",X"4C",X"20",X"45",X"4E",X"45",X"4D",X"49",X"45",X"53", + X"20",X"41",X"52",X"45",X"20",X"53",X"45",X"41",X"4C",X"45",X"44",X"2E",X"00",X"3A",X"45",X"E4", + X"FD",X"BE",X"05",X"C2",X"B9",X"1E",X"FD",X"46",X"04",X"FD",X"7E",X"07",X"21",X"47",X"E4",X"BE", + X"38",X"05",X"20",X"54",X"3E",X"FF",X"C9",X"3A",X"44",X"E4",X"B8",X"20",X"03",X"3E",X"00",X"C9", + X"04",X"78",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"28",X"E9",X"7E",X"E6", + X"F8",X"FE",X"10",X"28",X"E2",X"24",X"7E",X"25",X"E6",X"F8",X"FE",X"10",X"28",X"D9",X"FD",X"7E", + X"05",X"FE",X"1D",X"30",X"D2",X"7E",X"E6",X"F8",X"FE",X"08",X"28",X"6D",X"24",X"7E",X"E6",X"F8", + X"FE",X"08",X"28",X"65",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"BC",X"1A",X"FE",X"04",X"28",X"B7", + X"E6",X"F8",X"FE",X"08",X"28",X"B1",X"18",X"51",X"3A",X"44",X"E4",X"B8",X"20",X"03",X"3E",X"01", + X"C9",X"05",X"78",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"28",X"E9",X"7E", + X"E6",X"F8",X"FE",X"10",X"28",X"E2",X"24",X"7E",X"25",X"E6",X"F8",X"FE",X"10",X"28",X"D9",X"FD", + X"7E",X"05",X"FE",X"1D",X"30",X"D2",X"7E",X"E6",X"F8",X"FE",X"08",X"28",X"1C",X"24",X"7E",X"E6", + X"F8",X"FE",X"08",X"28",X"14",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"BC",X"1A",X"FE",X"04",X"28", + X"B7",X"E6",X"F8",X"FE",X"08",X"28",X"B1",X"18",X"00",X"3E",X"FF",X"32",X"ED",X"E4",X"32",X"EE", + X"E4",X"FD",X"7E",X"04",X"32",X"EB",X"E4",X"32",X"EC",X"E4",X"CD",X"E0",X"1E",X"CD",X"2B",X"1F", + X"CD",X"77",X"1F",X"CD",X"96",X"1F",X"CD",X"B9",X"1F",X"CD",X"F1",X"1F",X"3A",X"ED",X"E4",X"C9", + X"3A",X"EB",X"E4",X"B7",X"28",X"44",X"3D",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8",X"0E", + X"08",X"CD",X"8D",X"2E",X"C8",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"28",X"25",X"7E",X"E6", + X"FC",X"FE",X"18",X"28",X"1E",X"FD",X"7E",X"05",X"FE",X"1D",X"30",X"17",X"1A",X"E6",X"F8",X"FE", + X"10",X"28",X"10",X"1A",X"FE",X"04",X"28",X"0B",X"E6",X"F8",X"FE",X"08",X"28",X"05",X"21",X"EB", + X"E4",X"35",X"C9",X"21",X"EB",X"E4",X"35",X"7E",X"18",X"B9",X"C9",X"3A",X"EC",X"E4",X"FE",X"17", + X"30",X"44",X"3C",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8",X"0E",X"08",X"CD",X"8D",X"2E", + X"C8",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"28",X"25",X"7E",X"E6",X"FC",X"FE",X"18",X"28", + X"1E",X"FD",X"7E",X"05",X"FE",X"1D",X"30",X"17",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"10",X"1A", + X"FE",X"04",X"28",X"0B",X"E6",X"F8",X"FE",X"08",X"28",X"05",X"21",X"EC",X"E4",X"34",X"C9",X"21", + X"EC",X"E4",X"34",X"7E",X"18",X"B8",X"C9",X"FD",X"7E",X"04",X"CD",X"2A",X"20",X"FD",X"BE",X"05", + X"C8",X"32",X"F3",X"E4",X"FD",X"4E",X"04",X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"BE",X"D0",X"77", + X"3E",X"02",X"32",X"ED",X"E4",X"C9",X"FD",X"7E",X"04",X"CD",X"B6",X"20",X"FD",X"BE",X"05",X"C8", + X"FD",X"4E",X"04",X"32",X"F4",X"E4",X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"47",X"78",X"18",X"00", + X"BE",X"D0",X"77",X"3E",X"03",X"32",X"ED",X"E4",X"C9",X"21",X"EB",X"E4",X"7E",X"FD",X"BE",X"04", + X"30",X"15",X"CD",X"2A",X"20",X"CD",X"D8",X"1F",X"3A",X"EB",X"E4",X"CD",X"B6",X"20",X"CD",X"D8", + X"1F",X"21",X"EB",X"E4",X"34",X"18",X"E5",X"C9",X"FD",X"BE",X"05",X"C8",X"21",X"EB",X"E4",X"4E", + X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"BE",X"D0",X"32",X"EE",X"E4",X"3E",X"01",X"32",X"ED",X"E4", + X"C9",X"21",X"EC",X"E4",X"FD",X"7E",X"04",X"BE",X"30",X"16",X"7E",X"CD",X"2A",X"20",X"CD",X"11", + X"20",X"3A",X"EC",X"E4",X"CD",X"B6",X"20",X"CD",X"11",X"20",X"21",X"EC",X"E4",X"35",X"18",X"E4", + X"C9",X"FD",X"BE",X"05",X"C8",X"21",X"EC",X"E4",X"4E",X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"BE", + X"D0",X"32",X"EE",X"E4",X"3E",X"00",X"32",X"ED",X"E4",X"C9",X"47",X"FD",X"4E",X"05",X"79",X"FE", + X"1D",X"30",X"52",X"61",X"78",X"07",X"07",X"07",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19", + X"E5",X"11",X"80",X"01",X"19",X"D1",X"EB",X"1A",X"FE",X"04",X"28",X"3A",X"E6",X"F8",X"FE",X"08", + X"28",X"34",X"0C",X"1A",X"24",X"24",X"15",X"EB",X"E6",X"FC",X"FE",X"00",X"28",X"25",X"3A",X"44", + X"E4",X"B8",X"30",X"0D",X"2D",X"2D",X"2D",X"2D",X"1D",X"1D",X"1D",X"1D",X"CD",X"88",X"20",X"18", + X"12",X"20",X"05",X"CD",X"AD",X"20",X"18",X"0B",X"2C",X"2C",X"2C",X"2C",X"1C",X"1C",X"1C",X"1C", + X"CD",X"88",X"20",X"18",X"A9",X"C9",X"79",X"C9",X"7E",X"E6",X"FC",X"FE",X"18",X"28",X"1E",X"7E", + X"E6",X"F8",X"FE",X"08",X"C8",X"24",X"7E",X"E6",X"F8",X"FE",X"08",X"C8",X"1A",X"E6",X"F8",X"FE", + X"10",X"28",X"0A",X"1A",X"FE",X"04",X"28",X"05",X"E6",X"F8",X"FE",X"08",X"C0",X"21",X"45",X"E4", + X"79",X"BE",X"D8",X"F1",X"79",X"C9",X"47",X"FD",X"4E",X"05",X"79",X"FE",X"01",X"28",X"50",X"61", + X"78",X"07",X"07",X"07",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19",X"E5",X"11",X"80",X"01", + X"19",X"D1",X"EB",X"7E",X"E6",X"F8",X"FE",X"10",X"28",X"09",X"24",X"7E",X"25",X"E6",X"F8",X"FE", + X"10",X"79",X"C0",X"0D",X"15",X"15",X"24",X"EB",X"3A",X"44",X"E4",X"B8",X"30",X"0D",X"2D",X"2D", + X"2D",X"2D",X"1D",X"1D",X"1D",X"1D",X"CD",X"10",X"21",X"18",X"12",X"20",X"05",X"CD",X"35",X"21", + X"18",X"0B",X"2C",X"2C",X"2C",X"2C",X"1C",X"1C",X"1C",X"1C",X"CD",X"10",X"21",X"18",X"AB",X"C9", + X"7E",X"E6",X"FC",X"FE",X"18",X"28",X"1E",X"7E",X"E6",X"F8",X"FE",X"08",X"C8",X"24",X"7E",X"E6", + X"F8",X"FE",X"08",X"C8",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"0A",X"1A",X"FE",X"04",X"28",X"05", + X"E6",X"F8",X"FE",X"08",X"C0",X"3A",X"45",X"E4",X"B9",X"D8",X"F1",X"79",X"C9",X"47",X"78",X"18", + X"14",X"2A",X"44",X"E4",X"94",X"30",X"02",X"ED",X"44",X"87",X"87",X"87",X"47",X"79",X"95",X"30", + X"02",X"ED",X"44",X"80",X"C9",X"21",X"45",X"E4",X"BE",X"20",X"08",X"79",X"FD",X"96",X"04",X"D0", + X"ED",X"44",X"C9",X"78",X"96",X"30",X"05",X"ED",X"44",X"C6",X"64",X"C9",X"C6",X"C8",X"C9",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"21",X"0E",X"E5",X"7E",X"B7",X"28",X"02",X"35",X"C9",X"34",X"CD",X"BE",X"24",X"21",X"68",X"E5", + X"35",X"20",X"02",X"36",X"17",X"DD",X"21",X"18",X"E5",X"3E",X"14",X"32",X"88",X"E5",X"DD",X"7E", + X"00",X"B7",X"28",X"39",X"DD",X"35",X"00",X"20",X"06",X"DD",X"36",X"01",X"00",X"18",X"2E",X"DD", + X"7E",X"00",X"FE",X"10",X"20",X"04",X"DD",X"36",X"01",X"F4",X"30",X"21",X"FE",X"0F",X"20",X"12", + X"DD",X"7E",X"02",X"DD",X"6E",X"03",X"CD",X"00",X"2D",X"EB",X"CD",X"19",X"30",X"CD",X"69",X"24", + X"18",X"0B",X"CB",X"3F",X"CB",X"3F",X"47",X"3E",X"F7",X"90",X"DD",X"77",X"01",X"01",X"04",X"00", + X"DD",X"09",X"21",X"88",X"E5",X"35",X"20",X"B6",X"C9",X"3A",X"44",X"E4",X"DD",X"BE",X"02",X"20", + X"17",X"DD",X"7E",X"03",X"21",X"45",X"E4",X"96",X"38",X"0E",X"FE",X"03",X"30",X"0A",X"3E",X"00", + X"32",X"48",X"E4",X"AF",X"32",X"50",X"E4",X"C9",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"32", + X"89",X"E5",X"FD",X"7E",X"04",X"DD",X"BE",X"02",X"20",X"18",X"DD",X"7E",X"03",X"FD",X"96",X"05", + X"38",X"10",X"FE",X"03",X"30",X"0C",X"FD",X"36",X"0C",X"FF",X"FD",X"36",X"09",X"2A",X"FD",X"36", + X"0E",X"3C",X"11",X"18",X"00",X"FD",X"19",X"21",X"89",X"E5",X"35",X"20",X"D5",X"C9",X"3A",X"E9", + X"E4",X"32",X"E8",X"E4",X"DD",X"21",X"58",X"E4",X"21",X"6D",X"E5",X"36",X"00",X"3A",X"02",X"E5", + X"B7",X"28",X"08",X"3A",X"E8",X"E4",X"FE",X"01",X"20",X"01",X"34",X"DD",X"7E",X"0E",X"B7",X"28", + X"5B",X"DD",X"35",X"09",X"20",X"25",X"3A",X"6D",X"E5",X"B7",X"28",X"0A",X"AF",X"32",X"02",X"E5", + X"21",X"E9",X"E4",X"35",X"18",X"15",X"DD",X"36",X"09",X"03",X"DD",X"7E",X"0A",X"FE",X"FF",X"20", + X"06",X"DD",X"36",X"0A",X"0C",X"18",X"04",X"DD",X"36",X"0A",X"FF",X"DD",X"35",X"0E",X"20",X"24", + X"FD",X"21",X"40",X"E4",X"FD",X"7E",X"04",X"DD",X"BE",X"04",X"20",X"10",X"FD",X"7E",X"05",X"FE", + X"01",X"38",X"09",X"FE",X"04",X"30",X"05",X"DD",X"34",X"0E",X"18",X"10",X"DD",X"36",X"0C",X"00", + X"DD",X"36",X"0A",X"0C",X"DD",X"7E",X"0E",X"FE",X"30",X"CC",X"48",X"25",X"11",X"18",X"00",X"DD", + X"19",X"21",X"E8",X"E4",X"35",X"20",X"81",X"C9",X"3A",X"6D",X"E5",X"B7",X"20",X"0D",X"3E",X"01", + X"32",X"FF",X"E4",X"01",X"00",X"01",X"CD",X"DB",X"2F",X"18",X"13",X"DD",X"7E",X"04",X"DD",X"6E", + X"05",X"CD",X"00",X"2D",X"15",X"15",X"1A",X"E6",X"FC",X"FE",X"60",X"CC",X"83",X"2F",X"3E",X"04", + X"CD",X"42",X"31",X"DD",X"7E",X"0D",X"B7",X"28",X"04",X"21",X"FC",X"E4",X"35",X"DD",X"36",X"0A", + X"FF",X"11",X"10",X"D1",X"3A",X"68",X"E5",X"87",X"87",X"6F",X"26",X"00",X"19",X"EB",X"06",X"F8", + X"0E",X"08",X"CD",X"71",X"2E",X"EB",X"20",X"0A",X"21",X"68",X"E5",X"35",X"20",X"02",X"36",X"17", + X"18",X"E2",X"3A",X"68",X"E5",X"DD",X"77",X"01",X"DD",X"77",X"04",X"87",X"87",X"87",X"DD",X"77", + X"07",X"AF",X"DD",X"77",X"00",X"DD",X"77",X"02",X"DD",X"77",X"0D",X"3C",X"DD",X"77",X"03",X"DD", + X"77",X"05",X"DD",X"36",X"06",X"08",X"21",X"68",X"E5",X"35",X"20",X"02",X"36",X"17",X"C9",X"3E", + X"01",X"32",X"A7",X"E5",X"21",X"22",X"D2",X"CD",X"A1",X"29",X"3E",X"0E",X"CD",X"3E",X"30",X"21", + X"DE",X"D3",X"11",X"E9",X"26",X"CD",X"2D",X"30",X"21",X"23",X"D2",X"16",X"CB",X"CD",X"DF",X"29", + X"3E",X"1C",X"CD",X"3E",X"30",X"21",X"23",X"D2",X"16",X"CC",X"CD",X"DF",X"29",X"3E",X"1C",X"CD", + X"3E",X"30",X"21",X"23",X"D2",X"16",X"CD",X"CD",X"DF",X"29",X"3E",X"1C",X"CD",X"3E",X"30",X"7A", + X"32",X"6B",X"E5",X"21",X"40",X"E4",X"11",X"41",X"E4",X"01",X"28",X"01",X"36",X"00",X"ED",X"B0", + X"3E",X"01",X"32",X"CD",X"E5",X"32",X"4B",X"E4",X"32",X"49",X"E4",X"3E",X"16",X"32",X"41",X"E4", + X"3E",X"0C",X"32",X"43",X"E4",X"3E",X"00",X"32",X"4A",X"E4",X"32",X"46",X"E4",X"3E",X"1E",X"32", + X"53",X"E4",X"16",X"18",X"1E",X"0C",X"3E",X"01",X"DD",X"21",X"58",X"E4",X"06",X"05",X"DD",X"77", + X"0B",X"DD",X"77",X"09",X"DD",X"72",X"01",X"DD",X"73",X"03",X"DD",X"36",X"0A",X"00",X"DD",X"36", + X"06",X"00",X"C5",X"01",X"18",X"00",X"DD",X"09",X"C1",X"14",X"10",X"E2",X"21",X"80",X"00",X"DB", + X"04",X"CB",X"47",X"20",X"02",X"2D",X"2D",X"22",X"E3",X"E5",X"CD",X"D7",X"63",X"3E",X"05",X"32", + X"E9",X"E4",X"3E",X"03",X"32",X"6A",X"E5",X"3E",X"01",X"32",X"9D",X"E5",X"3E",X"30",X"32",X"89", + X"E5",X"21",X"6B",X"E5",X"34",X"7E",X"FE",X"D0",X"38",X"02",X"36",X"CD",X"56",X"21",X"23",X"D2", + X"CD",X"DF",X"29",X"3E",X"08",X"CD",X"3E",X"30",X"21",X"89",X"E5",X"35",X"20",X"E3",X"3E",X"00", + X"32",X"9D",X"E5",X"3E",X"00",X"32",X"6A",X"E5",X"CD",X"00",X"65",X"3A",X"DE",X"E5",X"CD",X"00", + X"5C",X"06",X"03",X"21",X"DE",X"E5",X"7E",X"B7",X"28",X"05",X"36",X"00",X"04",X"18",X"01",X"34", + X"78",X"32",X"8E",X"E5",X"AF",X"32",X"B8",X"E5",X"32",X"8F",X"E5",X"67",X"6F",X"22",X"91",X"E5", + X"22",X"92",X"E5",X"CD",X"5E",X"5F",X"C3",X"97",X"5D",X"06",X"54",X"4D",X"00",X"3E",X"13",X"CD", + X"42",X"31",X"3E",X"01",X"32",X"A9",X"E5",X"CD",X"5E",X"5F",X"21",X"00",X"52",X"CD",X"51",X"64", + X"21",X"C0",X"D0",X"DD",X"21",X"BE",X"D0",X"0E",X"1F",X"06",X"18",X"7E",X"DD",X"77",X"00",X"2C", + X"7E",X"EE",X"20",X"DD",X"77",X"01",X"2C",X"DD",X"2B",X"DD",X"2B",X"10",X"EE",X"11",X"50",X"00", + X"19",X"11",X"B0",X"00",X"DD",X"19",X"0D",X"20",X"E0",X"21",X"24",X"E0",X"11",X"23",X"E0",X"0E", + X"1F",X"06",X"0C",X"7E",X"07",X"07",X"07",X"07",X"12",X"23",X"1B",X"10",X"F6",X"C5",X"01",X"0C", + X"00",X"09",X"EB",X"01",X"24",X"00",X"09",X"EB",X"C1",X"0D",X"20",X"E5",X"FD",X"21",X"39",X"54", + X"CD",X"F0",X"29",X"3E",X"14",X"CD",X"42",X"31",X"3E",X"01",X"32",X"A6",X"E5",X"CD",X"43",X"5F", + X"3E",X"24",X"CD",X"42",X"31",X"21",X"40",X"E4",X"11",X"41",X"E4",X"01",X"28",X"01",X"36",X"00", + X"ED",X"B0",X"21",X"CD",X"E5",X"34",X"3E",X"01",X"32",X"4B",X"E4",X"32",X"49",X"E4",X"3E",X"06", + X"32",X"44",X"E4",X"3E",X"10",X"32",X"41",X"E4",X"3E",X"1D",X"32",X"43",X"E4",X"3E",X"00",X"32", + X"4A",X"E4",X"32",X"46",X"E4",X"16",X"12",X"1E",X"1F",X"3E",X"01",X"0E",X"05",X"DD",X"21",X"58", + X"E4",X"06",X"04",X"DD",X"77",X"0B",X"DD",X"77",X"09",X"DD",X"71",X"04",X"DD",X"72",X"01",X"DD", + X"73",X"03",X"DD",X"36",X"0A",X"00",X"DD",X"36",X"06",X"00",X"C5",X"01",X"18",X"00",X"DD",X"09", + X"C1",X"14",X"1C",X"10",X"DE",X"CD",X"D7",X"63",X"3E",X"04",X"32",X"E9",X"E4",X"3E",X"02",X"32", + X"6A",X"E5",X"3E",X"01",X"32",X"9D",X"E5",X"3E",X"A8",X"CD",X"3E",X"30",X"3E",X"03",X"CD",X"42", + X"31",X"0E",X"30",X"DD",X"21",X"00",X"E3",X"06",X"0B",X"DD",X"34",X"06",X"DD",X"35",X"0E",X"11", + X"10",X"00",X"DD",X"19",X"10",X"F3",X"3E",X"01",X"CD",X"3E",X"30",X"0D",X"20",X"E5",X"21",X"B6", + X"D5",X"CD",X"9A",X"31",X"21",X"B8",X"D6",X"CD",X"85",X"31",X"21",X"3C",X"D8",X"11",X"2D",X"28", + X"CD",X"2D",X"30",X"3E",X"70",X"CD",X"3E",X"30",X"3E",X"00",X"32",X"9D",X"E5",X"3E",X"00",X"32", + X"6A",X"E5",X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"C3",X"97",X"5D",X"06",X"52",X"45", + X"41",X"44",X"59",X"00",X"3E",X"13",X"CD",X"42",X"31",X"3E",X"01",X"32",X"A9",X"E5",X"CD",X"5E", + X"5F",X"21",X"00",X"E3",X"11",X"01",X"E3",X"01",X"68",X"02",X"36",X"00",X"ED",X"B0",X"21",X"00", + X"E0",X"11",X"01",X"E0",X"01",X"9F",X"02",X"36",X"00",X"ED",X"B0",X"23",X"13",X"01",X"5F",X"00", + X"36",X"01",X"ED",X"B0",X"3E",X"0A",X"32",X"D8",X"E5",X"3E",X"00",X"32",X"A6",X"E5",X"3E",X"14", + X"CD",X"42",X"31",X"CD",X"43",X"5F",X"3E",X"27",X"CD",X"42",X"31",X"06",X"00",X"0E",X"47",X"11", + X"EF",X"28",X"3E",X"01",X"CD",X"3E",X"30",X"3E",X"2E",X"80",X"47",X"30",X"F5",X"1A",X"FE",X"01", + X"20",X"07",X"13",X"1A",X"6F",X"13",X"1A",X"67",X"13",X"1A",X"77",X"FE",X"20",X"28",X"2E",X"3E", + X"17",X"CD",X"42",X"31",X"1A",X"FE",X"32",X"20",X"24",X"AF",X"32",X"CD",X"E5",X"32",X"57",X"E4", + X"3E",X"0B",X"32",X"41",X"E4",X"3E",X"0C",X"32",X"53",X"E4",X"32",X"4A",X"E4",X"3E",X"01",X"32", + X"4B",X"E4",X"32",X"49",X"E4",X"32",X"6A",X"E5",X"3E",X"01",X"32",X"9D",X"E5",X"13",X"23",X"71", + X"23",X"1A",X"B7",X"20",X"AD",X"3E",X"FF",X"CD",X"3E",X"30",X"3E",X"00",X"32",X"9D",X"E5",X"3E", + X"00",X"32",X"6A",X"E5",X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"C3",X"FA",X"26",X"01", + X"30",X"D3",X"43",X"4F",X"4E",X"47",X"52",X"41",X"54",X"55",X"4C",X"41",X"54",X"49",X"4F",X"4E", + X"53",X"21",X"20",X"20",X"20",X"20",X"01",X"1E",X"D5",X"59",X"4F",X"55",X"20",X"20",X"48",X"41", + X"56",X"45",X"20",X"20",X"44",X"4F",X"4E",X"45",X"20",X"20",X"49",X"54",X"20",X"20",X"56",X"45", + X"52",X"59",X"20",X"20",X"57",X"45",X"4C",X"4C",X"2C",X"20",X"20",X"01",X"A8",X"D6",X"48",X"41", + X"56",X"49",X"4E",X"47",X"20",X"20",X"50",X"41",X"53",X"53",X"45",X"44",X"20",X"20",X"54",X"48", + X"52",X"4F",X"55",X"47",X"48",X"20",X"20",X"01",X"2A",X"D8",X"32",X"34",X"20",X"20",X"44",X"41", + X"4E",X"47",X"45",X"52",X"4F",X"55",X"53",X"20",X"20",X"50",X"4C",X"41",X"43",X"45",X"53",X"2E", + X"20",X"20",X"20",X"20",X"01",X"A0",X"D9",X"42",X"55",X"54",X"20",X"20",X"54",X"48",X"45",X"52", + X"45",X"20",X"20",X"41",X"52",X"45",X"20",X"20",X"53",X"54",X"49",X"4C",X"4C",X"20",X"20",X"4F", + X"54",X"48",X"45",X"52",X"20",X"20",X"01",X"28",X"DB",X"45",X"4E",X"45",X"4D",X"49",X"45",X"53", + X"20",X"20",X"4F",X"4E",X"20",X"20",X"59",X"4F",X"55",X"52",X"20",X"20",X"57",X"41",X"59",X"2E", + X"00",X"16",X"88",X"1E",X"04",X"06",X"1E",X"72",X"2C",X"2C",X"14",X"14",X"14",X"14",X"10",X"F7", + X"7A",X"C6",X"89",X"57",X"01",X"44",X"00",X"09",X"1D",X"20",X"EA",X"C9",X"1E",X"04",X"7E",X"E6", + X"F0",X"47",X"7A",X"E6",X"0F",X"B0",X"77",X"23",X"06",X"0E",X"72",X"23",X"10",X"FC",X"7E",X"E6", + X"0F",X"47",X"7A",X"E6",X"F0",X"B0",X"77",X"01",X"09",X"00",X"09",X"1D",X"20",X"E0",X"C9",X"1E", + X"04",X"06",X"1E",X"72",X"2C",X"2C",X"10",X"FB",X"01",X"44",X"00",X"09",X"1D",X"20",X"F2",X"C9", + X"DD",X"21",X"00",X"E3",X"FD",X"7E",X"00",X"B7",X"C8",X"DD",X"77",X"04",X"DD",X"77",X"0C",X"FD", + X"7E",X"01",X"47",X"E6",X"1F",X"DD",X"77",X"00",X"DD",X"77",X"08",X"78",X"E6",X"C0",X"DD",X"77", + X"05",X"EE",X"40",X"DD",X"77",X"0D",X"FD",X"5E",X"02",X"16",X"00",X"2A",X"E3",X"E5",X"19",X"DD", + X"75",X"02",X"DD",X"75",X"0A",X"DD",X"74",X"03",X"DD",X"74",X"0B",X"FD",X"5E",X"03",X"DD",X"73", + X"06",X"DD",X"36",X"07",X"01",X"3E",X"F0",X"93",X"DD",X"77",X"0E",X"DD",X"36",X"0F",X"00",X"11", + X"04",X"00",X"FD",X"19",X"11",X"10",X"00",X"DD",X"19",X"18",X"A9",X"3A",X"6A",X"E5",X"FE",X"01", + X"20",X"05",X"CD",X"5B",X"2A",X"18",X"03",X"CD",X"D4",X"2A",X"C9",X"3A",X"53",X"E4",X"FE",X"0C", + X"20",X"2E",X"11",X"15",X"00",X"2A",X"42",X"E4",X"19",X"22",X"42",X"E4",X"7C",X"2A",X"57",X"E4", + X"26",X"00",X"01",X"9B",X"2B",X"09",X"BE",X"20",X"15",X"23",X"7E",X"32",X"4B",X"E4",X"3E",X"00", + X"32",X"53",X"E4",X"32",X"4A",X"E4",X"3A",X"57",X"E4",X"C6",X"02",X"32",X"57",X"E4",X"18",X"43", + X"3A",X"4B",X"E4",X"FE",X"01",X"20",X"05",X"11",X"F2",X"FF",X"18",X"03",X"11",X"0E",X"00",X"2A", + X"40",X"E4",X"19",X"22",X"40",X"E4",X"7C",X"2A",X"57",X"E4",X"26",X"00",X"01",X"9B",X"2B",X"09", + X"BE",X"20",X"15",X"23",X"7E",X"32",X"4B",X"E4",X"3E",X"0C",X"32",X"53",X"E4",X"32",X"4A",X"E4", + X"3A",X"57",X"E4",X"C6",X"02",X"32",X"57",X"E4",X"3A",X"53",X"E4",X"FE",X"0C",X"28",X"04",X"47", + X"CD",X"F1",X"10",X"C9",X"3A",X"6A",X"E5",X"FE",X"02",X"20",X"65",X"DD",X"21",X"40",X"E4",X"0E", + X"05",X"DD",X"7E",X"0B",X"FE",X"01",X"20",X"1C",X"11",X"F4",X"FF",X"DD",X"6E",X"00",X"DD",X"66", + X"01",X"19",X"DD",X"75",X"00",X"DD",X"74",X"01",X"7C",X"DD",X"BE",X"04",X"20",X"04",X"DD",X"36", + X"0B",X"00",X"18",X"10",X"11",X"0C",X"00",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"19",X"DD",X"75", + X"00",X"DD",X"74",X"01",X"11",X"F9",X"FF",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"19",X"DD",X"75", + X"02",X"DD",X"74",X"03",X"C5",X"DD",X"46",X"06",X"79",X"FE",X"05",X"20",X"05",X"CD",X"F1",X"10", + X"18",X"03",X"CD",X"2E",X"1A",X"C1",X"11",X"18",X"00",X"DD",X"19",X"0D",X"20",X"A3",X"18",X"5A", + X"3A",X"6A",X"E5",X"FE",X"03",X"20",X"53",X"DD",X"21",X"40",X"E4",X"0E",X"06",X"11",X"EC",X"FF", + X"DD",X"6E",X"00",X"DD",X"66",X"01",X"19",X"DD",X"75",X"00",X"DD",X"74",X"01",X"7C",X"FE",X"FE", + X"20",X"04",X"DD",X"36",X"0A",X"FF",X"C5",X"DD",X"46",X"06",X"79",X"FE",X"06",X"20",X"05",X"CD", + X"F1",X"10",X"18",X"03",X"CD",X"2E",X"1A",X"C1",X"11",X"18",X"00",X"DD",X"19",X"0D",X"20",X"CD", + X"3A",X"53",X"E4",X"3C",X"32",X"53",X"E4",X"FE",X"24",X"20",X"0F",X"3E",X"00",X"32",X"53",X"E4", + X"3A",X"57",X"E4",X"3C",X"32",X"57",X"E4",X"CD",X"9D",X"65",X"C9",X"03",X"01",X"06",X"00",X"07", + X"00",X"08",X"00",X"0A",X"00",X"09",X"00",X"0D",X"00",X"0D",X"00",X"10",X"00",X"0F",X"00",X"13", + X"00",X"11",X"00",X"19",X"00",X"32",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"65",X"07",X"07",X"07",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19",X"E5",X"11",X"80",X"01", + X"19",X"D1",X"EB",X"7E",X"C9",X"67",X"FD",X"21",X"58",X"E4",X"11",X"18",X"00",X"3A",X"E9",X"E4", + X"47",X"FD",X"7E",X"06",X"94",X"FE",X"12",X"30",X"6D",X"FE",X"08",X"38",X"69",X"FD",X"7E",X"07", + X"95",X"30",X"02",X"ED",X"44",X"FE",X"06",X"30",X"5D",X"FD",X"7E",X"0C",X"B7",X"20",X"28",X"FD", + X"7E",X"16",X"B7",X"20",X"22",X"3A",X"4F",X"E4",X"B7",X"28",X"15",X"FD",X"7E",X"0F",X"FE",X"FF", + X"28",X"0E",X"21",X"52",X"E4",X"7E",X"B7",X"20",X"07",X"36",X"01",X"3E",X"0B",X"CD",X"73",X"30", + X"3E",X"06",X"32",X"09",X"E5",X"18",X"2D",X"21",X"0B",X"E5",X"3A",X"44",X"E4",X"BE",X"28",X"24", + X"7F",X"77",X"21",X"0A",X"E5",X"3A",X"4B",X"E4",X"BE",X"20",X"10",X"21",X"0C",X"E5",X"34",X"7E", + X"FE",X"03",X"38",X"05",X"3E",X"13",X"32",X"06",X"E5",X"18",X"09",X"3A",X"4B",X"E4",X"77",X"3E", + X"01",X"32",X"0C",X"E5",X"37",X"C9",X"11",X"18",X"00",X"FD",X"19",X"10",X"84",X"C9",X"C6",X"13", + X"18",X"00",X"67",X"DD",X"E5",X"C1",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"47",X"FD",X"E5", + X"D1",X"7B",X"B9",X"28",X"32",X"FD",X"7E",X"0E",X"B7",X"20",X"2C",X"FD",X"7E",X"06",X"BC",X"30", + X"26",X"C6",X"12",X"BC",X"38",X"21",X"FD",X"7E",X"07",X"95",X"30",X"02",X"ED",X"44",X"FE",X"06", + X"30",X"15",X"DD",X"7E",X"0F",X"FD",X"BE",X"0F",X"20",X"04",X"37",X"C9",X"18",X"09",X"AF",X"FD", + X"96",X"0C",X"D8",X"DD",X"96",X"0C",X"D8",X"11",X"18",X"00",X"FD",X"19",X"10",X"C0",X"C9",X"67", + X"DD",X"E5",X"C1",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"47",X"FD",X"E5",X"D1",X"7B",X"91", + X"5F",X"28",X"26",X"FD",X"7E",X"0E",X"B7",X"20",X"20",X"FD",X"7E",X"07",X"C6",X"07",X"BC",X"38", + X"18",X"D6",X"08",X"BC",X"30",X"13",X"3C",X"BC",X"20",X"04",X"CB",X"7B",X"20",X"0B",X"FD",X"7E", + X"06",X"95",X"30",X"02",X"ED",X"44",X"FE",X"0F",X"D8",X"11",X"18",X"00",X"FD",X"19",X"10",X"CB", + X"C9",X"C6",X"08",X"67",X"DD",X"E5",X"C1",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"47",X"FD", + X"E5",X"D1",X"7B",X"91",X"5F",X"28",X"22",X"FD",X"7E",X"0E",X"B7",X"20",X"1C",X"FD",X"7E",X"07", + X"BC",X"30",X"16",X"C6",X"08",X"BC",X"38",X"11",X"20",X"04",X"CB",X"7B",X"20",X"0B",X"FD",X"7E", + X"06",X"95",X"30",X"02",X"ED",X"44",X"FE",X"0F",X"D8",X"11",X"18",X"00",X"FD",X"19",X"10",X"CF", + X"C9",X"1A",X"A0",X"B9",X"C8",X"E5",X"21",X"80",X"00",X"19",X"7E",X"E1",X"A0",X"B9",X"C9",X"1A", + X"A0",X"B9",X"C0",X"E5",X"21",X"80",X"00",X"19",X"7E",X"E1",X"A0",X"B9",X"C9",X"7E",X"A0",X"B9", + X"C8",X"24",X"7E",X"25",X"A0",X"B9",X"C9",X"7E",X"A0",X"B9",X"C0",X"24",X"7E",X"25",X"A0",X"B9", + X"C9",X"7E",X"B9",X"C8",X"24",X"7E",X"25",X"B9",X"C9",X"1A",X"B9",X"C0",X"E5",X"21",X"80",X"00", + X"19",X"7E",X"E1",X"B9",X"C9",X"C6",X"05",X"18",X"00",X"4F",X"3A",X"47",X"E4",X"B9",X"D0",X"C6", + X"04",X"B9",X"D8",X"3A",X"46",X"E4",X"95",X"30",X"02",X"ED",X"44",X"FE",X"0A",X"D0",X"AF",X"32", + X"50",X"E4",X"C9",X"4F",X"3A",X"46",X"E4",X"C6",X"0E",X"B9",X"D8",X"D6",X"1D",X"30",X"01",X"AF", + X"B9",X"D0",X"3A",X"47",X"E4",X"95",X"30",X"02",X"ED",X"44",X"FE",X"03",X"D0",X"AF",X"32",X"50", + X"E4",X"C9",X"4F",X"3A",X"46",X"E4",X"91",X"30",X"02",X"ED",X"44",X"FE",X"0E",X"D0",X"3A",X"47", + X"E4",X"95",X"30",X"02",X"ED",X"44",X"FE",X"03",X"D0",X"AF",X"32",X"50",X"E4",X"C9",X"EB",X"7E", + X"C6",X"70",X"77",X"2C",X"36",X"0A",X"2C",X"7E",X"C6",X"74",X"77",X"2C",X"36",X"0A",X"01",X"80", + X"00",X"09",X"36",X"0A",X"2D",X"7E",X"C6",X"7C",X"77",X"2D",X"36",X"0A",X"2D",X"7E",X"C6",X"78", + X"77",X"ED",X"42",X"EB",X"C9",X"EB",X"7E",X"C6",X"60",X"77",X"2C",X"36",X"0A",X"2C",X"7E",X"C6", + X"64",X"77",X"2C",X"36",X"0A",X"01",X"80",X"00",X"09",X"36",X"0A",X"2D",X"7E",X"C6",X"6C",X"77", + X"2D",X"36",X"0A",X"2D",X"7E",X"C6",X"68",X"77",X"ED",X"42",X"EB",X"C9",X"EB",X"7E",X"D6",X"70", + X"77",X"2C",X"36",X"05",X"2C",X"7E",X"D6",X"74",X"77",X"2C",X"36",X"05",X"01",X"80",X"00",X"09", + X"36",X"05",X"2D",X"7E",X"D6",X"7C",X"77",X"2D",X"36",X"05",X"2D",X"7E",X"D6",X"78",X"77",X"ED", + X"42",X"EB",X"C9",X"EB",X"7E",X"D6",X"60",X"77",X"2C",X"36",X"05",X"2C",X"7E",X"D6",X"64",X"77", + X"2C",X"36",X"05",X"01",X"80",X"00",X"09",X"36",X"05",X"2D",X"7E",X"D6",X"6C",X"77",X"2D",X"36", + X"05",X"2D",X"7E",X"D6",X"68",X"77",X"ED",X"42",X"EB",X"C9",X"D5",X"07",X"07",X"07",X"CB",X"3C", + X"1F",X"6F",X"11",X"10",X"D0",X"19",X"EB",X"C5",X"CD",X"0E",X"2F",X"C1",X"D1",X"C9",X"EB",X"77", + X"23",X"23",X"77",X"01",X"80",X"00",X"09",X"77",X"2B",X"2B",X"77",X"ED",X"42",X"EB",X"C9",X"21", + X"91",X"E5",X"7E",X"47",X"81",X"27",X"77",X"38",X"36",X"18",X"17",X"21",X"93",X"E5",X"7E",X"81", + X"27",X"77",X"2B",X"7E",X"88",X"27",X"77",X"2B",X"7E",X"47",X"CE",X"00",X"27",X"77",X"38",X"1F", + X"B8",X"C8",X"4F",X"78",X"C6",X"01",X"27",X"47",X"C5",X"FE",X"05",X"20",X"0C",X"21",X"8F",X"E5", + X"34",X"3E",X"12",X"CD",X"42",X"31",X"CD",X"F7",X"31",X"C1",X"78",X"B9",X"38",X"E5",X"C9",X"21", + X"99",X"99",X"22",X"91",X"E5",X"22",X"92",X"E5",X"C9",X"D5",X"EB",X"3A",X"D8",X"E5",X"77",X"2C", + X"2C",X"77",X"01",X"80",X"00",X"09",X"77",X"2D",X"2D",X"77",X"EB",X"D1",X"C9",X"1A",X"B7",X"C8", + X"FE",X"20",X"30",X"03",X"4F",X"18",X"04",X"77",X"2C",X"71",X"2C",X"13",X"18",X"EF",X"32",X"B5", + X"E5",X"3A",X"B5",X"E5",X"A7",X"20",X"FA",X"C9",X"06",X"00",X"D6",X"0A",X"04",X"30",X"FB",X"C6", + X"0A",X"05",X"F5",X"78",X"CD",X"58",X"30",X"F1",X"C6",X"30",X"77",X"23",X"71",X"23",X"C9",X"1A", + X"F5",X"0F",X"0F",X"0F",X"0F",X"CD",X"6A",X"30",X"F1",X"13",X"E6",X"0F",X"C6",X"30",X"77",X"23", + X"71",X"23",X"C9",X"4F",X"06",X"00",X"21",X"28",X"31",X"09",X"56",X"21",X"FE",X"E4",X"5E",X"34", + X"7A",X"32",X"88",X"E5",X"B7",X"28",X"09",X"34",X"7B",X"FE",X"07",X"20",X"03",X"1E",X"00",X"34", + X"CB",X"9E",X"7B",X"32",X"89",X"E5",X"87",X"87",X"87",X"FD",X"21",X"C0",X"E3",X"5F",X"16",X"00", + X"FD",X"19",X"FD",X"36",X"00",X"11",X"FD",X"36",X"08",X"11",X"16",X"15",X"79",X"FE",X"0B",X"38", + X"02",X"16",X"03",X"3A",X"46",X"E4",X"82",X"ED",X"44",X"5F",X"16",X"00",X"2A",X"E3",X"E5",X"19", + X"FD",X"75",X"02",X"FD",X"74",X"03",X"1E",X"00",X"3A",X"88",X"E5",X"B7",X"28",X"0A",X"1C",X"FD", + X"77",X"0C",X"FD",X"75",X"0A",X"FD",X"74",X"0B",X"21",X"1B",X"31",X"09",X"7E",X"FD",X"77",X"04", + X"21",X"35",X"31",X"09",X"46",X"0E",X"00",X"CD",X"DB",X"2F",X"3A",X"47",X"E4",X"C6",X"20",X"6F", + X"26",X"00",X"29",X"FD",X"75",X"06",X"FD",X"74",X"07",X"CB",X"43",X"28",X"0A",X"01",X"F0",X"FF", + X"09",X"FD",X"75",X"0E",X"FD",X"74",X"0F",X"3A",X"89",X"E5",X"4F",X"06",X"00",X"21",X"9E",X"E5", + X"09",X"36",X"70",X"CB",X"43",X"28",X"03",X"23",X"36",X"70",X"C9",X"F8",X"F9",X"FB",X"FC",X"FA", + X"FD",X"FA",X"FD",X"E1",X"E1",X"E1",X"E1",X"E1",X"00",X"00",X"00",X"00",X"00",X"FE",X"FE",X"FF", + X"F0",X"AA",X"AB",X"F1",X"F0",X"02",X"04",X"06",X"08",X"05",X"10",X"15",X"20",X"30",X"50",X"80", + X"10",X"30",X"D5",X"57",X"FE",X"12",X"28",X"08",X"3A",X"A7",X"E5",X"B7",X"28",X"02",X"D1",X"C9", + X"7A",X"E5",X"21",X"BB",X"E5",X"5E",X"16",X"00",X"21",X"BC",X"E5",X"19",X"57",X"1C",X"7B",X"E6", + X"0F",X"32",X"BB",X"E5",X"72",X"E1",X"D1",X"C9",X"3A",X"BA",X"E5",X"21",X"BB",X"E5",X"BE",X"C8", + X"5F",X"16",X"00",X"21",X"BC",X"E5",X"19",X"3C",X"E6",X"0F",X"32",X"BA",X"E5",X"7E",X"D3",X"00", + X"F6",X"80",X"D3",X"00",X"C9",X"11",X"92",X"31",X"CD",X"2D",X"30",X"3A",X"8E",X"E5",X"CD",X"48", + X"30",X"C9",X"06",X"52",X"4F",X"55",X"4E",X"44",X"2D",X"00",X"3A",X"8E",X"E5",X"3D",X"CD",X"EC", + X"31",X"79",X"3C",X"32",X"CC",X"E5",X"0E",X"06",X"FE",X"0A",X"38",X"05",X"CD",X"48",X"30",X"18", + X"05",X"2C",X"2C",X"CD",X"6A",X"30",X"3A",X"CC",X"E5",X"FE",X"04",X"38",X"01",X"AF",X"87",X"87", + X"5F",X"16",X"00",X"E5",X"21",X"D4",X"31",X"19",X"EB",X"E1",X"CD",X"2D",X"30",X"11",X"E4",X"31", + X"CD",X"2D",X"30",X"C9",X"06",X"54",X"48",X"00",X"06",X"53",X"54",X"00",X"06",X"4E",X"44",X"00", + X"06",X"52",X"44",X"00",X"06",X"20",X"42",X"4C",X"4F",X"43",X"4B",X"00",X"0E",X"00",X"0C",X"D6", + X"03",X"30",X"FB",X"0D",X"C6",X"03",X"C9",X"0E",X"1E",X"21",X"56",X"D0",X"3A",X"8F",X"E5",X"CD", + X"6A",X"30",X"C9",X"21",X"26",X"D0",X"11",X"8A",X"E5",X"0E",X"1E",X"1A",X"E6",X"0F",X"CD",X"6A", + X"30",X"13",X"CD",X"5F",X"30",X"1A",X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"CD",X"6A",X"30",X"0E", + X"04",X"21",X"18",X"D0",X"3A",X"B8",X"E5",X"B7",X"28",X"03",X"21",X"60",X"D0",X"3A",X"AD",X"E6", + X"B7",X"28",X"26",X"E5",X"21",X"B6",X"E5",X"7E",X"B7",X"20",X"06",X"36",X"16",X"21",X"AD",X"E6", + X"35",X"3A",X"AD",X"E6",X"E1",X"1F",X"30",X"0C",X"36",X"00",X"54",X"5D",X"13",X"01",X"0B",X"00", + X"ED",X"B0",X"18",X"03",X"CD",X"82",X"32",X"18",X"03",X"CD",X"82",X"32",X"11",X"9A",X"E5",X"21", + X"91",X"E5",X"06",X"03",X"1A",X"BE",X"13",X"23",X"20",X"02",X"10",X"F8",X"D0",X"3A",X"A7",X"E5", + X"B7",X"C0",X"01",X"03",X"00",X"11",X"9A",X"E5",X"21",X"91",X"E5",X"ED",X"B0",X"0E",X"06",X"21", + X"38",X"D0",X"11",X"91",X"E5",X"06",X"03",X"CD",X"5F",X"30",X"10",X"FB",X"C9",X"11",X"B8",X"E6", + X"21",X"20",X"D7",X"01",X"40",X"00",X"ED",X"B0",X"21",X"A0",X"D7",X"01",X"40",X"00",X"ED",X"B0", + X"21",X"20",X"D8",X"01",X"40",X"00",X"ED",X"B0",X"21",X"B8",X"D8",X"01",X"0E",X"00",X"ED",X"B0", + X"21",X"38",X"D9",X"01",X"0E",X"00",X"ED",X"B0",X"C9",X"21",X"B8",X"E6",X"11",X"20",X"D7",X"01", + X"40",X"00",X"ED",X"B0",X"11",X"A0",X"D7",X"01",X"40",X"00",X"ED",X"B0",X"11",X"20",X"D8",X"01", + X"40",X"00",X"ED",X"B0",X"11",X"B8",X"D8",X"01",X"0E",X"00",X"ED",X"B0",X"11",X"38",X"D9",X"01", + X"0E",X"00",X"ED",X"B0",X"C9",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"00",X"00",X"32",X"34",X"01",X"35",X"72",X"35",X"4B",X"3C",X"62",X"36",X"CE",X"36",X"45",X"37", + X"89",X"34",X"CA",X"3C",X"A8",X"3B",X"04",X"3E",X"E2",X"35",X"59",X"3D",X"8C",X"3F",X"9B",X"39", + X"A9",X"3E",X"F9",X"38",X"CC",X"3A",X"1E",X"3F",X"2F",X"3A",X"C5",X"37",X"71",X"38",X"7D",X"40", + X"F7",X"3F",X"00",X"01",X"AE",X"E5",X"A4",X"EB",X"A9",X"CF",X"F7",X"A9",X"8D",X"CA",X"AE",X"CA", + X"F7",X"B3",X"F1",X"B9",X"C5",X"E8",X"D2",X"F7",X"BE",X"F7",X"03",X"84",X"8D",X"C5",X"8E",X"92", + X"C2",X"89",X"8D",X"D5",X"CB",X"8E",X"98",X"D2",X"99",X"9D",X"C4",X"D7",X"93",X"98",X"C7",X"04", + X"A6",X"C6",X"EE",X"04",X"B6",X"C8",X"F1",X"04",X"06",X"81",X"88",X"CF",X"07",X"A2",X"C3",X"A7", + X"D3",X"AC",X"D1",X"B7",X"C6",X"D5",X"BC",X"CF",X"0A",X"A4",X"CB",X"A9",X"CA",X"BE",X"C0",X"09", + X"BB",X"CC",X"08",X"AB",X"C3",X"D3",X"B0",X"CC",X"1F",X"00",X"01",X"A4",X"C2",X"A9",X"C1",X"E3", + X"A5",X"CA",X"F1",X"A7",X"D3",X"F6",X"AC",X"CF",X"F6",X"B0",X"95",X"C1",X"E3",X"B4",X"D3",X"F7", + X"B0",X"C6",X"E7",X"CA",X"ED",X"B9",X"EC",X"D4",X"F7",X"BE",X"F7",X"02",X"A4",X"C1",X"C3",X"90", + X"98",X"C0",X"C4",X"B0",X"C5",X"C8",X"04",X"A9",X"C5",X"ED",X"B6",X"CD",X"F1",X"03",X"84",X"8F", + X"C0",X"C4",X"85",X"8B",X"D2",X"8C",X"91",X"CE",X"87",X"93",X"D7",X"85",X"98",X"C9",X"94",X"98", + X"D5",X"94",X"9D",X"D2",X"99",X"9D",X"C7",X"06",X"A1",X"86",X"D7",X"07",X"A2",X"C2",X"A3",X"CF", + X"A5",X"D4",X"A7",X"C1",X"AB",X"C2",X"AE",X"C6",X"CB",X"B7",X"C1",X"C5",X"D7",X"BC",X"C0",X"D7", + X"09",X"BB",X"CA",X"08",X"A6",X"C3",X"A9",X"D1",X"AD",X"C3",X"0A",X"B9",X"D4",X"BE",X"C0",X"D7", + X"1F",X"00",X"01",X"A5",X"CA",X"F2",X"A6",X"E3",X"A8",X"D4",X"F7",X"AB",X"C5",X"F3",X"AF",X"E4", + X"B0",X"CA",X"F1",X"B3",X"D7",X"B5",X"CC",X"F3",X"B7",X"CC",X"D3",X"B9",X"EC",X"D3",X"F7",X"BA", + X"9D",X"CF",X"F0",X"BE",X"F7",X"04",X"AE",X"D4",X"AF",X"D5",X"B0",X"D6",X"B2",X"C4",X"E8",X"03", + X"99",X"9D",X"C2",X"D6",X"9A",X"9D",X"CE",X"D1",X"95",X"98",X"CB",X"D4",X"90",X"94",X"C9",X"CF", + X"8F",X"98",X"C3",X"8B",X"8F",X"CC",X"D1",X"86",X"8E",X"C4",X"85",X"8A",X"C9",X"D3",X"06",X"A1", + X"87",X"D7",X"07",X"A3",X"CE",X"A4",X"C2",X"A9",X"CF",X"AD",X"C1",X"B1",X"D7",X"B8",X"D0",X"BC", + X"D4",X"08",X"A8",X"C6",X"AD",X"CE",X"B2",X"D2",X"09",X"B6",X"C9",X"0A",X"B3",X"D7",X"BE",X"C0", + X"D7",X"1F",X"00",X"01",X"A4",X"C0",X"D0",X"F7",X"A6",X"E1",X"CF",X"F0",X"A8",X"C1",X"C2",X"CE", + X"CF",X"A9",X"D2",X"F6",X"AA",X"C2",X"C3",X"CD",X"CE",X"AC",X"C3",X"C4",X"CC",X"CD",X"AE",X"C3", + X"E5",X"CB",X"ED",X"AF",X"E5",X"CB",X"F7",X"B0",X"C6",X"CA",X"B2",X"C6",X"EA",X"B4",X"C1",X"E3", + X"CD",X"F3",X"B9",X"C5",X"F7",X"BE",X"F7",X"03",X"A4",X"8E",X"D3",X"AF",X"93",X"C2",X"AF",X"95", + X"CE",X"B2",X"95",X"C8",X"B4",X"9A",X"C4",X"D1",X"B4",X"9D",X"C0",X"B9",X"9D",X"CB",X"D5",X"06", + X"A1",X"91",X"C8",X"07",X"A2",X"D1",X"A7",X"D6",X"AC",X"CB",X"AD",X"C0",X"B2",X"C3",X"D3",X"B7", + X"C8",X"08",X"AC",X"C1",X"B1",X"C4",X"B6",X"CE",X"09",X"BB",X"CE",X"0A",X"A9",X"D2",X"D6",X"BE", + X"D7",X"1F",X"01",X"01",X"A6",X"98",X"C9",X"CE",X"A8",X"9A",X"C1",X"C4",X"D3",X"D6",X"A8",X"C2", + X"C3",X"D4",X"D5",X"AF",X"C2",X"C3",X"D4",X"D5",X"B2",X"CB",X"CC",X"B9",X"C1",X"E5",X"C9",X"CA", + X"CD",X"CE",X"D2",X"F6",X"BB",X"9D",X"C6",X"D1",X"BE",X"F7",X"02",X"B9",X"CB",X"CC",X"04",X"A8", + X"C6",X"C7",X"D0",X"D1",X"B3",X"C6",X"E8",X"CF",X"F1",X"03",X"A6",X"8A",X"C8",X"CF",X"A8",X"94", + X"C5",X"D2",X"B2",X"98",X"CA",X"CD",X"B6",X"9D",X"C8",X"CF",X"A8",X"9D",X"C0",X"D7",X"06",X"A1", + X"91",X"CA",X"CD",X"07",X"A6",X"C2",X"D5",X"AD",X"C3",X"D4",X"B7",X"C2",X"CB",X"D5",X"08",X"A5", + X"C4",X"D3",X"B6",X"CC",X"BB",X"C7",X"09",X"BB",X"CC",X"0A",X"A6",X"CE",X"BE",X"C5",X"BE",X"D2", + X"0D",X"8E",X"C2",X"C3",X"D4",X"D5",X"98",X"C2",X"C3",X"D4",X"D5",X"98",X"CB",X"CC",X"91",X"CA", + X"ED",X"1F",X"00",X"01",X"A4",X"C0",X"C2",X"C4",X"C6",X"C8",X"CA",X"CC",X"CE",X"D0",X"D2",X"D4", + X"A9",X"8B",X"C0",X"C2",X"C4",X"C6",X"C8",X"CA",X"CC",X"CE",X"D0",X"D2",X"D4",X"AF",X"C0",X"C2", + X"C4",X"C6",X"C8",X"CA",X"CC",X"CE",X"D0",X"D2",X"D4",X"A4",X"93",X"D6",X"B4",X"C1",X"F6",X"BE", + X"F7",X"02",X"B9",X"C1",X"F6",X"03",X"A4",X"93",X"C1",X"C3",X"C5",X"C7",X"C9",X"CB",X"CD",X"CF", + X"D1",X"D3",X"D5",X"B4",X"9D",X"C0",X"06",X"A1",X"9D",X"D7",X"07",X"A7",X"C0",X"C8",X"D0",X"AD", + X"C4",X"CC",X"D4",X"B2",X"C0",X"B7",X"C6",X"CA",X"CE",X"BC",X"C1",X"D6",X"08",X"A1",X"CA",X"D3", + X"B6",X"C8",X"D0",X"09",X"BB",X"C8",X"0A",X"A4",X"C0",X"A9",X"C0",X"AF",X"C0",X"1F",X"00",X"01", + X"A5",X"C0",X"E2",X"C6",X"EB",X"CE",X"F0",X"AD",X"91",X"D3",X"D6",X"AD",X"D7",X"AF",X"C1",X"EA", + X"B0",X"D4",X"B0",X"94",X"D5",X"B4",X"C0",X"E3",X"CA",X"EC",X"B5",X"D3",X"F6",X"B9",X"C0",X"E6", + X"BE",X"F7",X"04",X"A2",X"C4",X"C5",X"A5",X"D2",X"F7",X"A9",X"C4",X"E8",X"B6",X"CE",X"F0",X"03", + X"A5",X"8A",X"C3",X"A5",X"9D",X"D1",X"A7",X"95",X"C9",X"AF",X"93",X"C0",X"B2",X"9D",X"D7",X"B4", + X"98",X"C4",X"CD",X"B9",X"9D",X"C7",X"06",X"A1",X"86",X"CC",X"07",X"A3",X"C0",X"C6",X"D0",X"AD", + X"C6",X"CA",X"AE",X"D4",X"B1",X"CF",X"B3",X"D3",X"D6",X"B7",X"C1",X"BC",X"C1",X"CD",X"D6",X"08", + X"A2",X"C1",X"C9",X"CF",X"AC",X"C3",X"09",X"BB",X"CB",X"0A",X"A5",X"CA",X"B5",X"D4",X"BE",X"C0", + X"0D",X"8F",X"D4",X"D5",X"1F",X"00",X"01",X"A4",X"C1",X"E8",X"A6",X"CA",X"EE",X"D2",X"F7",X"A8", + X"8A",X"CE",X"A9",X"C2",X"E7",X"AB",X"CE",X"F7",X"AD",X"92",X"D6",X"B1",X"D2",X"F4",X"B0",X"95", + X"C2",X"E4",X"C7",X"B2",X"C6",X"B4",X"C5",X"C6",X"B7",X"CE",X"F2",X"B6",X"D6",X"D7",X"B9",X"C5", + X"BE",X"F7",X"02",X"AB",X"9A",X"CB",X"AB",X"CC",X"B1",X"9A",X"CC",X"B9",X"C1",X"E4",X"C6",X"EA", + X"04",X"AE",X"CC",X"F1",X"03",X"A4",X"9D",X"C0",X"A4",X"98",X"C9",X"A6",X"8A",X"CF",X"D4",X"B0", + X"95",X"D7",X"B1",X"9D",X"D5",X"06",X"A1",X"85",X"D2",X"07",X"A4",X"CF",X"D3",X"D7",X"A6",X"D1", + X"A7",X"C2",X"C7",X"A9",X"CB",X"CC",X"D7",X"AE",X"D7",X"AF",X"CC",X"D3",X"B2",X"C5",X"B5",X"D0", + X"08",X"A1",X"C4",X"A3",X"CC",X"A8",X"D2",X"09",X"BB",X"CC",X"0A",X"A9",X"C6",X"B1",X"D3",X"BE", + X"D7",X"0E",X"93",X"C5",X"1F",X"01",X"01",X"A5",X"C0",X"E2",X"C4",X"A8",X"D3",X"F6",X"AA",X"C6", + X"F1",X"AA",X"8C",X"D5",X"AB",X"C1",X"E3",X"AA",X"9D",X"C6",X"AA",X"9A",X"D1",X"AD",X"D3",X"F7", + X"AF",X"C7",X"E9",X"CD",X"EF",X"AF",X"94",X"D3",X"B0",X"92",X"C3",X"B2",X"C0",X"E2",X"B3",X"D3", + X"F7",X"B4",X"96",X"C5",X"C9",X"CD",X"B6",X"98",X"C4",X"B7",X"C7",X"F0",X"B8",X"9A",X"C3",X"B9", + X"D2",X"B8",X"D5",X"F7",X"BC",X"C2",X"D3",X"BE",X"C0",X"F7",X"04",X"A7",X"C4",X"C5",X"A5",X"D1", + X"F3",X"AC",X"C8",X"EF",X"B1",X"C7",X"EF",X"AA",X"D2",X"03",X"A1",X"84",X"C0",X"A8",X"8C",X"D7", + X"A9",X"C3",X"AA",X"8D",X"CB",X"AB",X"91",X"C0",X"AC",X"96",X"D0",X"AD",X"92",X"D6",X"B1",X"96", + X"CB",X"B2",X"9D",X"C1",X"B3",X"97",X"D5",X"B4",X"96",X"C7",X"CE",X"B8",X"9D",X"D4",X"06",X"A5", + X"89",X"C3",X"07",X"AB",X"D4",X"AD",X"C7",X"CF",X"B1",X"D4",X"B5",X"C8",X"CA",X"CC",X"CF",X"B6", + X"C3",X"D7",X"B7",X"D2",X"BC",X"C0",X"C4",X"CA",X"CC",X"D7",X"08",X"A5",X"D4",X"A7",X"C8",X"BB", + X"C5",X"09",X"A8",X"C2",X"0A",X"A5",X"C2",X"BE",X"C0",X"D7",X"0F",X"9D",X"C3",X"E5",X"C7",X"F2", + X"1F",X"00",X"01",X"A4",X"C1",X"C2",X"A9",X"C1",X"E6",X"CA",X"F6",X"A9",X"9B",X"CA",X"AE",X"C0", + X"E7",X"CD",X"F5",X"B0",X"92",X"CD",X"D5",X"B3",X"C4",X"E6",X"CB",X"ED",X"D0",X"F5",X"B5",X"97", + X"C6",X"D5",X"B8",X"C2",X"E6",X"CB",X"F5",X"BA",X"C0",X"E2",X"BD",X"C4",X"C8",X"C9",X"CF",X"F7", + X"02",X"9F",X"C0",X"F7",X"04",X"A3",X"C7",X"F6",X"BA",X"C4",X"E7",X"03",X"A4",X"8D",X"C0",X"A6", + X"88",X"C6",X"A9",X"97",X"C3",X"A9",X"9C",X"D7",X"AE",X"9C",X"C8",X"B3",X"97",X"CF",X"D4",X"BA", + X"9E",X"C3",X"BD",X"CE",X"06",X"A1",X"85",X"C3",X"07",X"A2",X"C1",X"A7",X"D3",X"AC",X"C1",X"C4", + X"CE",X"B1",X"C6",X"CB",X"D1",X"B6",X"C5",X"D0",X"D3",X"B8",X"C0",X"C1",X"BD",X"C0",X"C5",X"CA", + X"08",X"A6",X"CD",X"B0",X"C4",X"BC",X"C6",X"09",X"A1",X"C2",X"0A",X"B3",X"D1",X"AE",X"CD",X"D5", + X"0D",X"99",X"C0",X"C1",X"0F",X"9E",X"C5",X"E7",X"1F",X"00",X"01",X"AA",X"C2",X"CE",X"AC",X"C0", + X"E2",X"AE",X"90",X"C2",X"B1",X"C0",X"E3",X"D3",X"F6",X"B3",X"9D",X"C0",X"B6",X"C1",X"E4",X"CD", + X"B7",X"D0",X"F6",X"B8",X"C7",X"ED",X"B9",X"CD",X"D0",X"D4",X"9B",X"C5",X"D4",X"BC",X"C4",X"C5", + X"D1",X"F7",X"BE",X"C0",X"F7",X"02",X"A5",X"C0",X"E2",X"C4",X"ED",X"AA",X"95",X"CD",X"AC",X"90", + X"CE",X"AF",X"CF",X"D0",X"04",X"A4",X"CE",X"F4",X"A7",X"CA",X"EC",X"AB",X"D0",X"F5",X"AE",X"C4", + X"EC",X"B1",X"CE",X"F1",X"B8",X"C2",X"E4",X"03",X"A1",X"84",X"D5",X"A7",X"90",X"C3",X"A7",X"C9", + X"AA",X"8E",X"CF",X"AB",X"90",X"D6",X"AC",X"97",X"C9",X"B1",X"97",X"CC",X"B4",X"9D",X"CE",X"AE", + X"9B",X"D7",X"B8",X"9D",X"C1",X"C6",X"BA",X"9D",X"CC",X"06",X"A5",X"C3",X"07",X"AA",X"C1",X"CC", + X"AD",X"D0",X"AF",X"C5",X"C8",X"CB",X"C0",X"B4",X"C1",X"B5",X"D2",X"BA",X"D1",X"D3",X"D6",X"BC", + X"C3",X"C7",X"CB",X"08",X"A7",X"CE",X"B3",X"C3",X"B4",X"D1",X"BB",X"C9",X"09",X"B5",X"C7",X"0A", + X"AA",X"CE",X"BC",X"D3",X"BC",X"D5",X"0D",X"8B",X"C0",X"C1",X"1F",X"00",X"01",X"A4",X"CC",X"F7", + X"A5",X"C7",X"E9",X"A9",X"CD",X"F6",X"AA",X"C1",X"E4",X"AF",X"C5",X"C7",X"E9",X"B4",X"C4",X"B9", + X"C2",X"C3",X"C7",X"E9",X"CD",X"F7",X"BE",X"C0",X"F7",X"02",X"AA",X"C8",X"EA",X"8B",X"CD",X"F6", + X"AC",X"98",X"CD",X"AC",X"95",X"D6",X"AF",X"CF",X"F4",X"B1",X"93",X"CF",X"B4",X"C8",X"EA",X"CF", + X"F6",X"04",X"A2",X"C1",X"E5",X"03",X"A4",X"88",X"D1",X"A5",X"89",X"CA",X"A5",X"9D",X"C0",X"A9", + X"9D",X"CC",X"A9",X"98",X"D7",X"AA",X"8E",X"C5",X"C7",X"AF",X"93",X"C4",X"CA",X"D5",X"AF",X"98", + X"CE",X"B4",X"98",X"C3",X"C7",X"B9",X"9D",X"C1",X"B9",X"CA",X"06",X"A1",X"86",X"C6",X"BB",X"9D", + X"CA",X"07",X"A2",X"CC",X"D6",X"A3",X"C9",X"A8",X"C2",X"C4",X"C9",X"AD",X"C9",X"D0",X"D3",X"B2", + X"C9",X"D1",X"D3",X"B7",X"C4",X"C9",X"D1",X"BC",X"C2",X"CE",X"D6",X"08",X"A1",X"D4",X"A7",X"C3", + X"A6",X"D4",X"AC",X"CB",X"09",X"A6",X"CB",X"0A",X"A5",X"C9",X"AF",X"C9",X"BE",X"D7",X"1F",X"00", + X"01",X"A7",X"C1",X"C5",X"EA",X"CD",X"F3",X"D5",X"F7",X"A9",X"D6",X"AF",X"C5",X"E8",X"D2",X"F7", + X"B6",X"C0",X"E6",X"B8",X"C6",X"EA",X"CF",X"F1",X"D3",X"D5",X"F7",X"BA",X"D3",X"F7",X"BC",X"D4", + X"F7",X"BD",X"C0",X"EA",X"CF",X"F7",X"02",X"A5",X"D5",X"AF",X"CA",X"F1",X"B8",X"CC",X"ED",X"9F", + X"C0",X"F7",X"04",X"A2",X"C3",X"CB",X"CC",X"D4",X"F7",X"A9",X"C6",X"F3",X"AB",X"D6",X"B0",X"C1", + X"C2",X"B1",X"D2",X"F4",X"B5",X"D2",X"03",X"A1",X"92",X"C0",X"A2",X"86",X"D3",X"A5",X"89",X"C4", + X"A5",X"CA",X"A7",X"8A",X"D4",X"A9",X"8B",X"D5",X"A9",X"8E",X"C5",X"D7",X"AF",X"97",X"C9",X"B4", + X"97",X"D1",X"B6",X"C7",X"B8",X"9E",X"CB",X"CE",X"06",X"A1",X"84",X"CA",X"07",X"A5",X"C1",X"C5", + X"C9",X"CE",X"D1",X"D7",X"AA",X"C7",X"CB",X"D0",X"B4",X"C0",X"C3",X"B6",X"D7",X"B8",X"D4",X"BB", + X"C0",X"C2",X"BD",X"CC",X"08",X"A4",X"C7",X"D0",X"AC",X"D4",X"09",X"B5",X"CC",X"0A",X"A7",X"C1", + X"B8",X"D7",X"BD",X"C0",X"0D",X"86",X"D6",X"D7",X"0E",X"99",X"D4",X"1F",X"01",X"01",X"A2",X"C8", + X"CF",X"D5",X"A3",X"C8",X"D0",X"D4",X"A4",X"C7",X"D4",X"A5",X"C1",X"E6",X"CD",X"D1",X"F3",X"85", + X"CD",X"F0",X"A7",X"C6",X"CD",X"D1",X"A9",X"C6",X"F6",X"AA",X"C0",X"E4",X"AE",X"C6",X"F7",X"AF", + X"C1",X"E4",X"B0",X"93",X"C4",X"C6",X"D1",X"D3",X"B3",X"D4",X"B3",X"95",X"C7",X"D5",X"94",X"C4", + X"B4",X"96",X"C3",X"D1",X"B5",X"97",X"C8",X"B6",X"98",X"C2",X"B6",X"D0",X"D1",X"D5",X"F7",X"B7", + X"9A",X"C9",X"B8",X"9A",X"C1",X"B8",X"CE",X"F1",X"B9",X"C6",X"BA",X"C4",X"CA",X"EE",X"BC",X"C3", + X"C4",X"C7",X"BB",X"9D",X"D5",X"D7",X"BD",X"CF",X"F1",X"BE",X"C0",X"E8",X"CF",X"F7",X"02",X"A5", + X"C0",X"C2",X"C3",X"9F",X"C9",X"EE",X"04",X"A6",X"C7",X"F0",X"B0",X"C7",X"F0",X"B1",X"C1",X"E3", + X"03",X"A5",X"9D",X"C5",X"D2",X"A9",X"8D",X"D7",X"AA",X"8E",X"C3",X"AF",X"9D",X"C0",X"B8",X"CD", + X"BA",X"9E",X"CC",X"BB",X"9D",X"C8",X"BB",X"9E",X"C9",X"06",X"A1",X"88",X"CB",X"BB",X"9D",X"D6", + X"07",X"A3",X"C0",X"C6",X"D3",X"A7",X"C8",X"CE",X"D0",X"D4",X"A8",X"C0",X"B1",X"C8",X"B3",X"CA", + X"CE",X"B2",X"C3",X"B4",X"D6",X"B9",X"D7",X"BA",X"C3",X"BB",X"D1",X"BC",X"C1",X"C6",X"D3",X"BD", + X"CA",X"CE",X"08",X"A2",X"C3",X"BB",X"C2",X"D4",X"09",X"AB",X"CA",X"0A",X"B3",X"D4",X"B8",X"CE", + X"BC",X"C3",X"0D",X"88",X"C7",X"EC",X"CE",X"F0",X"92",X"D4",X"D5",X"95",X"D6",X"D7",X"97",X"CD", + X"EF",X"99",X"CA",X"EC",X"0E",X"9D",X"D6",X"1F",X"00",X"01",X"A4",X"C9",X"F6",X"A6",X"C7",X"E9", + X"A6",X"9B",X"D6",X"A6",X"99",X"C7",X"A9",X"CB",X"F4",X"A9",X"9B",X"D4",X"AB",X"C9",X"EB",X"D4", + X"AD",X"9B",X"C9",X"AC",X"C2",X"C3",X"AE",X"C3",X"E5",X"AE",X"CD",X"F2",X"B0",X"CB",X"ED",X"B0", + X"9B",X"CB",X"D2",X"B1",X"C2",X"C3",X"B3",X"C5",X"CF",X"D0",X"B5",X"CD",X"F0",X"B7",X"99",X"CD", + X"D0",X"B8",X"C2",X"C4",X"C5",X"BA",X"CD",X"F0",X"BD",X"C0",X"E7",X"02",X"9F",X"C0",X"F7",X"04", + X"A1",X"C7",X"E9",X"A4",X"C4",X"C5",X"A7",X"C1",X"C2",X"03",X"A1",X"85",X"C6",X"A4",X"88",X"C3", + X"A7",X"9C",X"C0",X"A4",X"9E",X"D7",X"A9",X"9E",X"D5",X"AE",X"9E",X"D3",X"B3",X"9E",X"D1",X"06", + X"A1",X"86",X"C0",X"07",X"A2",X"CC",X"D2",X"A7",X"CC",X"D1",X"A9",X"C9",X"AA",X"C2",X"AC",X"C5", + X"AC",X"D0",X"AE",X"CC",X"AF",X"C2",X"B1",X"C5",X"CF",X"B3",X"CD",X"B6",X"C2",X"C5",X"B8",X"CE", + X"BB",X"C2",X"C5",X"08",X"A3",X"C8",X"A8",X"CA",X"AD",X"CB",X"B2",X"CE",X"09",X"BA",X"C3",X"0A", + X"A6",X"C7",X"AB",X"C9",X"B0",X"CB",X"0D",X"99",X"CE",X"CF",X"1F",X"00",X"01",X"A5",X"CB",X"ED", + X"D4",X"D5",X"A7",X"C0",X"C1",X"C6",X"E8",X"D5",X"AA",X"D1",X"F5",X"AC",X"C8",X"EE",X"AE",X"90", + X"C8",X"AF",X"CE",X"B1",X"C3",X"EE",X"B9",X"C3",X"E6",X"BE",X"C0",X"F7",X"02",X"A5",X"D1",X"F3", + X"A7",X"89",X"D1",X"B3",X"98",X"C3",X"C6",X"BE",X"C2",X"E5",X"C9",X"ED",X"D0",X"F3",X"D6",X"D7", + X"04",X"A2",X"C0",X"E4",X"C9",X"F1",X"A9",X"CF",X"D0",X"AC",X"CF",X"D0",X"03",X"A5",X"C0",X"A5", + X"9D",X"D6",X"A7",X"92",X"C2",X"B1",X"9D",X"C7",X"06",X"A1",X"84",X"D6",X"07",X"A3",X"D4",X"A5", + X"C1",X"C6",X"C8",X"A8",X"D2",X"D4",X"AF",X"C9",X"CB",X"CD",X"B7",X"C4",X"C5",X"BC",X"C0",X"C5", + X"CE",X"D4",X"08",X"A2",X"CC",X"D2",X"A9",X"CB",X"09",X"BB",X"CB",X"0A",X"A5",X"CB",X"AC",X"C8", + X"BE",X"C0",X"0D",X"89",X"D2",X"F4",X"98",X"C4",X"C5",X"1F",X"00",X"01",X"A5",X"C3",X"F0",X"A7", + X"C9",X"CD",X"AA",X"C0",X"F7",X"AC",X"C9",X"CF",X"AF",X"C6",X"F7",X"B1",X"C9",X"CD",X"C6",X"B2", + X"C0",X"E5",X"B4",X"CA",X"F6",X"B6",X"CD",X"B7",X"C1",X"E6",X"B9",X"C6",X"F7",X"BB",X"CD",X"BE", + X"C0",X"F7",X"02",X"89",X"C9",X"CD",X"8E",X"C9",X"CF",X"93",X"CD",X"B3",X"96",X"C6",X"B3",X"95", + X"C9",X"B8",X"CD",X"BD",X"CD",X"04",X"A2",X"C1",X"C2",X"D2",X"F7",X"03",X"A2",X"89",X"C0",X"A5", + X"89",X"D1",X"AA",X"91",X"C1",X"AA",X"8E",X"D4",X"AF",X"93",X"D1",X"B2",X"96",X"C3",X"B4",X"98", + X"D7",X"B7",X"9D",X"C0",X"B9",X"9D",X"D2",X"06",X"A1",X"84",X"C3",X"07",X"A3",X"C5",X"C9",X"A8", + X"C4",X"CB",X"CF",X"D7",X"AD",X"CB",X"D2",X"D7",X"B0",X"C2",X"B2",X"CB",X"CF",X"B5",X"C1",X"B7", + X"C8",X"CB",X"D5",X"BC",X"C2",X"CB",X"CF",X"08",X"A2",X"CB",X"A7",X"D2",X"B1",X"D3",X"BB",X"C7", + X"09",X"BB",X"C3",X"0A",X"BE",X"CC",X"CE",X"D7",X"1F",X"00",X"01",X"A4",X"C5",X"F2",X"A6",X"88", + X"C5",X"CB",X"D2",X"D3",X"A9",X"C3",X"E7",X"CB",X"CF",X"F3",X"A6",X"D4",X"F6",X"AB",X"8F",X"C3", + X"C7",X"CF",X"A6",X"94",X"D7",X"AB",X"C7",X"EF",X"D3",X"F7",X"AE",X"C1",X"E7",X"B0",X"97",X"C1", + X"C7",X"B0",X"CD",X"F4",X"B2",X"94",X"CD",X"B3",X"9A",X"C4",X"B3",X"C5",X"C6",X"B5",X"CA",X"EE", + X"D1",X"D5",X"F7",X"B6",X"C2",X"C3",X"B7",X"C7",X"EA",X"CE",X"D1",X"F5",X"B9",X"C4",X"E7",X"CA", + X"CE",X"F1",X"BE",X"C0",X"F7",X"02",X"BE",X"C1",X"C3",X"C5",X"C7",X"C9",X"CB",X"CD",X"CF",X"D1", + X"D3",X"D5",X"D7",X"04",X"AD",X"D5",X"03",X"A4",X"88",X"D1",X"A9",X"8F",X"D0",X"B0",X"94",X"CC", + X"D6",X"B5",X"9D",X"CB",X"B5",X"98",X"D0",X"B5",X"D2",X"D4",X"06",X"A1",X"9D",X"C0",X"07",X"A7", + X"C7",X"A9",X"C9",X"CD",X"D5",X"AC",X"C5",X"AE",X"CD",X"D4",X"B3",X"CE",X"B4",X"C2",X"B5",X"C8", + X"D3",X"B7",X"C5",X"CF",X"BC",X"C2",X"D3",X"D7",X"08",X"A1",X"CA",X"A3",X"D4",X"AD",X"D2",X"09", + X"BB",X"C9",X"0A",X"A4",X"C5",X"A4",X"CB",X"AE",X"C1",X"0D",X"85",X"D3",X"F7",X"8A",X"CC",X"EE", + X"96",X"C8",X"C9",X"1F",X"00",X"01",X"A7",X"99",X"D6",X"A7",X"8E",X"D4",X"A7",X"D0",X"F3",X"A9", + X"91",X"D0",X"AA",X"CC",X"EF",X"AC",X"94",X"CC",X"AD",X"C8",X"EB",X"D1",X"F3",X"AF",X"97",X"C8", + X"B0",X"C4",X"E7",X"CD",X"EF",X"B2",X"9B",X"C4",X"B3",X"C0",X"E3",X"C9",X"EB",X"B5",X"9B",X"C0", + X"B6",X"C5",X"E7",X"BA",X"C1",X"E3",X"B2",X"99",X"D3",X"B2",X"D4",X"D5",X"B8",X"D4",X"D5",X"B5", + X"CF",X"F2",X"B7",X"CF",X"B9",X"CC",X"EF",X"BB",X"CC",X"F2",X"BD",X"C7",X"F7",X"02",X"9F",X"C0", + X"F7",X"03",X"A7",X"9C",X"D7",X"A7",X"91",X"D5",X"A7",X"89",X"CF",X"AA",X"8C",X"CB",X"AD",X"8F", + X"C7",X"B0",X"92",X"C3",X"B2",X"94",X"D2",X"B5",X"98",X"CE",X"B9",X"9C",X"CB",X"06",X"A1",X"86", + X"D7",X"BD",X"C6",X"07",X"AB",X"D1",X"D3",X"AE",X"CD",X"CF",X"B1",X"C9",X"CB",X"B0",X"D4",X"B3", + X"D0",X"B4",X"C5",X"C7",X"B7",X"CC",X"B8",X"C1",X"C3",X"B9",X"D0",X"D2",X"BB",X"D3",X"D5",X"C8", + X"CA",X"08",X"A4",X"D2",X"A7",X"CD",X"AA",X"C9",X"BC",X"C0",X"09",X"B5",X"D4",X"0A",X"B3",X"C0", + X"BD",X"D3",X"BA",X"C1",X"0D",X"8C",X"D1",X"F3",X"1F",X"00",X"02",X"9F",X"C0",X"F7",X"04",X"A4", + X"C4",X"CA",X"D2",X"D6",X"A7",X"C1",X"C2",X"C5",X"C8",X"CB",X"D0",X"D3",X"D5",X"AA",X"C6",X"CC", + X"D4",X"AD",X"C2",X"C7",X"CD",X"D0",X"D5",X"B0",X"C1",X"C6",X"C8",X"CB",X"CE",X"D4",X"D6",X"B3", + X"C5",X"C8",X"CA",X"CD",X"CF",X"D3",X"D5",X"B6",X"C1",X"C4",X"C9",X"CC",X"D0",X"D2",X"B9",X"C2", + X"C5",X"CB",X"D4",X"D6",X"03",X"A4",X"87",X"C3",X"D1",X"A4",X"90",X"C9",X"D7",X"A7",X"90",X"C0", + X"A7",X"8D",X"CF",X"AD",X"99",X"C3",X"AD",X"9E",X"D1",X"B6",X"9E",X"C0",X"06",X"A1",X"86",X"C0", + X"07",X"A5",X"CA",X"CF",X"A9",X"C2",X"D2",X"D6",X"AD",X"C6",X"B1",X"D4",X"B4",X"CF",X"BA",X"C5", + X"D4",X"AC",X"CB",X"08",X"AA",X"CC",X"B6",X"C9",X"CC",X"D2",X"09",X"BC",X"CB",X"1F",X"00",X"01", + X"A5",X"87",X"C2",X"C6",X"D1",X"A8",X"98",X"C2",X"F7",X"00",X"A8",X"8D",X"C8",X"AB",X"8D",X"C6", + X"C7",X"AB",X"98",X"C5",X"AE",X"90",X"CB",X"F0",X"AE",X"D3",X"AC",X"D6",X"B5",X"97",X"CD",X"EF", + X"B7",X"CC",X"01",X"AE",X"CD",X"EE",X"B9",X"CD",X"EE",X"BA",X"CC",X"ED",X"BC",X"9E",X"CB",X"ED", + X"02",X"9F",X"C0",X"F7",X"04",X"A2",X"C1",X"F7",X"B9",X"D0",X"F5",X"03",X"A5",X"9E",X"C0",X"AE", + X"9A",X"D6",X"B8",X"9A",X"CF",X"06",X"A1",X"84",X"C0",X"07",X"AF",X"CB",X"D0",X"AE",X"D3",X"08", + X"A5",X"C9",X"CC",X"AB",X"C7",X"BC",X"D2",X"09",X"B5",X"CE",X"0A",X"A8",X"D0",X"AE",X"C6",X"BC", + X"CB",X"0E",X"90",X"CB",X"CC",X"CF",X"D0",X"8F",X"D3",X"99",X"CC",X"1F",X"00",X"01",X"A8",X"95", + X"C0",X"EA",X"A8",X"CC",X"EF",X"AD",X"CB",X"F6",X"B4",X"D1",X"F6",X"B9",X"C0",X"ED",X"BB",X"C5", + X"BC",X"CE",X"BE",X"C0",X"F7",X"00",X"B0",X"93",X"C2",X"E4",X"B3",X"95",X"C9",X"AF",X"95",X"CA", + X"04",X"A3",X"C1",X"EE",X"A5",X"D0",X"F6",X"B1",X"CA",X"F0",X"03",X"A2",X"87",X"C0",X"CF",X"A8", + X"8A",X"CB",X"AA",X"8E",X"CA",X"AE",X"92",X"C9",X"B2",X"95",X"C8",X"B9",X"9D",X"C6",X"CC",X"A5", + X"9D",X"D7",X"06",X"A1",X"84",X"D7",X"07",X"A8",X"D0",X"D2",X"D4",X"B2",X"C2",X"C4",X"B7",X"C2", + X"08",X"AA",X"CE",X"D3",X"B1",X"D3",X"BB",X"D3",X"09",X"BB",X"C9",X"0A",X"B9",X"C0",X"BE",X"C4", + X"BE",X"CD",X"0F",X"9D",X"C0",X"E4",X"1F",X"00",X"01",X"A8",X"C9",X"EC",X"D1",X"F4",X"AC",X"C1", + X"E7",X"AD",X"CE",X"F6",X"B6",X"C1",X"E7",X"B9",X"C9",X"F4",X"A5",X"8A",X"C1",X"AE",X"92",X"C1", + X"B8",X"9D",X"C1",X"B8",X"C7",X"A5",X"87",X"C9",X"CC",X"B1",X"98",X"C9",X"AF",X"9C",X"D6",X"02", + X"B1",X"C2",X"E8",X"BE",X"C0",X"F7",X"BA",X"9D",X"C7",X"04",X"A2",X"C1",X"E8",X"CF",X"F6",X"A5", + X"C2",X"E8",X"AA",X"C9",X"ED",X"B2",X"CB",X"F5",X"03",X"A5",X"9D",X"C0",X"AC",X"90",X"C2",X"A9", + X"8D",X"C8",X"B1",X"98",X"CA",X"B9",X"9D",X"D5",X"A5",X"9A",X"D7",X"06",X"A1",X"84",X"D7",X"07", + X"A4",X"D0",X"D5",X"A6",X"CA",X"D2",X"A8",X"C3",X"C5",X"B5",X"CD",X"D2",X"B8",X"C6",X"BC",X"CD", + X"08",X"A5",X"D4",X"AA",X"D3",X"AE",X"C5",X"BB",X"D0",X"09",X"B3",X"C5",X"0A",X"A8",X"D1",X"B6", + X"C4",X"B6",X"C7",X"0D",X"87",X"CA",X"CB",X"0F",X"9D",X"C2",X"E6",X"D7",X"1F",X"01",X"01",X"A8", + X"95",X"C0",X"E5",X"D1",X"F7",X"AA",X"95",X"C8",X"EE",X"A5",X"C8",X"EE",X"B9",X"C1",X"E5",X"C8", + X"EE",X"D1",X"F6",X"BE",X"C0",X"F7",X"A2",X"84",X"CB",X"00",X"AE",X"91",X"C1",X"C2",X"D6",X"D7", + X"B4",X"C4",X"D2",X"D3",X"CB",X"04",X"A2",X"C0",X"E5",X"D1",X"F7",X"A7",X"C8",X"EE",X"03",X"A5", + X"9A",X"C6",X"D0",X"B9",X"9D",X"C0",X"D7",X"06",X"A1",X"84",X"C6",X"D0",X"07",X"A3",X"C0",X"D7", + X"B0",X"C2",X"D6",X"B4",X"C4",X"CB",X"D2",X"D3",X"BC",X"C4",X"D3",X"08",X"A7",X"CB",X"B6",X"CA", + X"CC",X"09",X"BB",X"CB",X"0A",X"B9",X"C9",X"CB",X"CD",X"0E",X"91",X"C1",X"C2",X"D6",X"D7",X"1F", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"02",X"C0",X"02",X"C1",X"C4",X"06",X"C2",X"04",X"08",X"08",X"08",X"08",X"0C",X"00",X"00",X"00", + X"C8",X"C6",X"10",X"00",X"0C",X"0E",X"0C",X"0E",X"00",X"00",X"00",X"00",X"0A",X"CA",X"CA",X"02", + X"CA",X"0A",X"08",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"C4",X"06",X"C2",X"04", + X"20",X"AC",X"20",X"AE",X"00",X"00",X"00",X"00",X"16",X"16",X"16",X"16",X"1C",X"1E",X"1C",X"1E", + X"B4",X"00",X"00",X"00",X"B4",X"B5",X"B4",X"B5",X"16",X"18",X"1A",X"20",X"18",X"1A",X"20",X"20", + X"1A",X"18",X"16",X"16",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"14",X"12",X"B0",X"B2", + X"A0",X"9C",X"9E",X"A0",X"00",X"00",X"00",X"00",X"A6",X"A6",X"A6",X"A6",X"A1",X"A0",X"A1",X"A0", + X"A0",X"00",X"00",X"00",X"A0",X"A1",X"A0",X"A1",X"A6",X"A6",X"A0",X"A0",X"A6",X"A6",X"A6",X"A0", + X"A6",X"A6",X"A6",X"A6",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"A2",X"38",X"A4",X"36", + X"92",X"90",X"8E",X"00",X"00",X"00",X"00",X"00",X"3A",X"3A",X"3A",X"3A",X"98",X"99",X"98",X"99", + X"99",X"00",X"00",X"00",X"98",X"99",X"98",X"99",X"98",X"99",X"92",X"92",X"3C",X"3C",X"3C",X"3C", + X"3C",X"3C",X"3C",X"3A",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"94",X"96",X"94",X"96", + X"B6",X"BA",X"B6",X"BA",X"E6",X"E8",X"EA",X"EC",X"22",X"22",X"22",X"22",X"24",X"24",X"24",X"24", + X"EE",X"00",X"00",X"00",X"EE",X"EF",X"EE",X"EF",X"E4",X"E2",X"B6",X"B6",X"E2",X"E4",X"B6",X"B6", + X"E4",X"E2",X"22",X"22",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"DD",X"DE",X"DF",X"DE",X"00",X"00",X"00",X"00",X"DE",X"A7",X"DE",X"A7",X"40",X"40",X"40",X"40", + X"BF",X"00",X"00",X"00",X"DD",X"BF",X"DD",X"BF",X"DD",X"3E",X"BC",X"DF",X"A7",X"DE",X"A7",X"DE", + X"DE",X"A7",X"DE",X"A7",X"DD",X"34",X"DD",X"00",X"DD",X"34",X"DD",X"DD",X"DE",X"DF",X"DE",X"DD", + X"80",X"84",X"82",X"00",X"00",X"00",X"00",X"00",X"8A",X"8A",X"8A",X"8A",X"2A",X"2A",X"2A",X"2A", + X"8C",X"00",X"00",X"00",X"8C",X"8D",X"8C",X"8D",X"8C",X"84",X"82",X"80",X"8A",X"8A",X"8A",X"8A", + X"8A",X"8A",X"8A",X"8A",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"86",X"28",X"88",X"26", + X"CE",X"CC",X"CE",X"CC",X"30",X"32",X"30",X"32",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF", + X"CF",X"00",X"00",X"00",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF", + X"CE",X"CF",X"CE",X"CF",X"2C",X"2E",X"30",X"00",X"2E",X"2C",X"CE",X"00",X"00",X"00",X"00",X"00", + X"D0",X"D1",X"D0",X"D1",X"00",X"00",X"00",X"00",X"D4",X"D4",X"D4",X"D4",X"D4",X"D4",X"D4",X"D4", + X"D8",X"00",X"00",X"00",X"D4",X"D4",X"D4",X"D4",X"D8",X"D0",X"D1",X"00",X"D4",X"D4",X"D4",X"D4", + X"D4",X"D4",X"D4",X"D4",X"D1",X"DB",X"D9",X"D5",X"D5",X"D9",X"DB",X"D1",X"D5",X"D7",X"D5",X"D7", + X"00",X"00",X"00",X"00",X"41",X"40",X"41",X"40",X"00",X"40",X"00",X"40",X"00",X"00",X"00",X"00", + X"01",X"01",X"00",X"00",X"00",X"00",X"40",X"40",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00", + X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"41",X"40",X"41",X"40", + X"00",X"01",X"00",X"01",X"00",X"00",X"00",X"00",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"40",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"40",X"41",X"41", + X"00",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"40",X"40", + X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"40",X"40",X"40",X"00",X"00",X"00",X"40",X"00",X"00", + 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"41",X"40",X"41",X"40", + X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",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"01",X"01",X"00",X"40",X"00",X"00", + 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"41",X"41",X"41",X"41", + X"01",X"01",X"01",X"01",X"41",X"41",X"41",X"41",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"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01", + X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"40",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"40",X"00",X"00",X"40",X"00",X"40", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"00",X"01",X"01",X"00",X"00",X"40",X"40", + X"00",X"00",X"40",X"40",X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"81",X"80",X"80", + X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"01",X"41",X"01",X"41",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"41",X"01",X"01", + X"01",X"41",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"41",X"40",X"41",X"40", + X"40",X"41",X"40",X"41",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"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"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"40",X"40", + X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"01",X"00",X"00",X"40",X"00",X"40", + X"00",X"40",X"00",X"40",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"01",X"00", + X"FE",X"00",X"FE",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",X"FE",X"00", + X"FE",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F5",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"FA",X"FC",X"F5",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F8",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"FC",X"FC",X"FC", + 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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"01",X"01",X"FF",X"FF", + X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"FE",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"00",X"FE",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FD",X"FD",X"FD",X"00",X"00",X"00",X"00",X"00",X"F8",X"08",X"F8",X"08",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FD",X"FD",X"FD",X"F8",X"08",X"F8",X"F8", + X"F8",X"08",X"F8",X"F8",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FC",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"FC",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"FC",X"F8",X"F8",X"FC",X"FC",X"F8",X"F8",X"FC",X"FC",X"00",X"FC",X"00", + X"00",X"00",X"00",X"00",X"FD",X"00",X"FD",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"F0",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"10",X"10",X"00", + X"10",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"FD",X"00",X"FD",X"00", + X"00",X"FF",X"00",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",X"FE", + X"00",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",X"00",X"01",X"00", + X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"04",X"04",X"04", + X"02",X"02",X"02",X"02",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"02",X"02",X"02",X"02",X"02",X"02",X"00", + X"02",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"10",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"00",X"00", + X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"10",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"10",X"10",X"10",X"10",X"10",X"10",X"10", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"04",X"00", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10", + X"00",X"FF",X"00",X"FF",X"F8",X"00",X"F8",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F8",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"00", + X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"F8",X"00", + X"00",X"FC",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"08",X"08",X"00",X"08",X"09",X"00",X"00", + X"08",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F8", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"F8",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"04",X"04",X"07",X"07", + X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F8",X"F8",X"F8", + X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",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"F9",X"FD",X"FC",X"FC",X"FD",X"FD",X"FC",X"00", + X"FD",X"FD",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"F8",X"00",X"00",X"00",X"F9",X"F9",X"F9",X"F9", + X"00",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"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"FF",X"00",X"00",X"00",X"03",X"03", + X"00",X"00",X"FD",X"FD",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"08",X"F8",X"08", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"F8",X"F8",X"FC",X"00",X"00",X"F8",X"F9",X"F8",X"F9", + X"00",X"00",X"00",X"00",X"08",X"00",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"00",X"08",X"00", + X"00",X"04",X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"08", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"00",X"08",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"05",X"05",X"05", + X"04",X"04",X"04",X"04",X"FC",X"FC",X"FC",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"07",X"07",X"04",X"04",X"07",X"07",X"04",X"00", + X"07",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"00",X"10",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"04",X"0C",X"07",X"01",X"08",X"07",X"01",X"00",X"08",X"07",X"01",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"06",X"06",X"06",X"06",X"08",X"08",X"08",X"01",X"0A",X"06",X"00",X"00", + X"0A",X"06",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"08",X"09",X"07", + X"08",X"08",X"01",X"00",X"06",X"06",X"06",X"01",X"06",X"06",X"06",X"01",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"05",X"04",X"03",X"03",X"08",X"08",X"01",X"00",X"06",X"06",X"06",X"00", + X"06",X"06",X"06",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"04",X"03",X"04", + X"08",X"08",X"01",X"00",X"0A",X"06",X"00",X"00",X"0A",X"06",X"01",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"06",X"06",X"04",X"05",X"05",X"05",X"05", + X"05",X"05",X"05",X"05",X"06",X"08",X"04",X"00",X"06",X"08",X"04",X"00",X"04",X"03",X"04",X"04", + X"08",X"08",X"04",X"00",X"06",X"06",X"06",X"00",X"06",X"06",X"06",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"05",X"05",X"05",X"05",X"08",X"08",X"08",X"02",X"05",X"05",X"05",X"00", + X"05",X"05",X"05",X"00",X"04",X"04",X"04",X"00",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00", + X"08",X"0C",X"08",X"00",X"05",X"05",X"05",X"00",X"05",X"05",X"05",X"00",X"04",X"04",X"04",X"04", + X"04",X"04",X"04",X"04",X"05",X"05",X"05",X"05",X"43",X"03",X"20",X"FF",X"A3",X"FF",X"A3",X"FF", + X"A2",X"FF",X"A2",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"83",X"83",X"A3",X"FF",X"A3",X"A3",X"FF",X"FF",X"A2",X"A2",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"43",X"A0",X"FF",X"FF",X"A3",X"A3",X"A3",X"FF", + X"A2",X"A2",X"A2",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"43",X"A0",X"FF",X"FF",X"A3",X"A3",X"A3",X"FF",X"A2",X"A2",X"A2",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"43",X"A0",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"A2",X"A2",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"83",X"20",X"20",X"A3",X"A3",X"A3",X"A3",X"A2",X"A2",X"A2",X"A2",X"FF",X"FF",X"FF",X"00", + X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"43",X"A0",X"A0",X"FF",X"A3",X"A3",X"A3",X"FF", + X"A2",X"A2",X"A2",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"03",X"23",X"20",X"20",X"23",X"23",X"23",X"FF",X"22",X"22",X"22",X"FF",X"FF",X"FF",X"FF",X"00", + X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"03",X"20",X"FF",X"23",X"23",X"23",X"FF", + X"22",X"22",X"22",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"07",X"06",X"07",X"06",X"00",X"04",X"04",X"02",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"06",X"07",X"08", + X"00",X"05",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"01",X"05",X"04",X"02",X"00",X"05",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"03",X"03",X"03",X"03", + X"00",X"08",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"02",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"04",X"00",X"00",X"04",X"04",X"00",X"04", + X"00",X"05",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"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"03",X"03",X"00",X"00",X"03",X"03",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"04", + X"00",X"04",X"00",X"04",X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"FC",X"FA",X"00",X"00", + X"02",X"06",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F8",X"F8",X"00",X"FA",X"F7",X"00",X"00",X"01",X"07",X"07",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"FC",X"FC",X"FC",X"FC", + X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F8",X"00",X"00",X"FC",X"FC",X"F9",X"00",X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"F8",X"F9",X"00",X"00", + X"00",X"08",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"F8",X"F8",X"FC",X"FC",X"FC",X"FC",X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"FC",X"FC",X"F9",X"00", + X"04",X"04",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + 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"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"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"02",X"51",X"01",X"01",X"00",X"03",X"92",X"D4",X"01",X"01",X"18",X"03",X"0F",X"D0",X"D5",X"CF", + X"D2",X"01",X"02",X"18",X"03",X"0E",X"D0",X"D1",X"D5",X"D3",X"01",X"03",X"18",X"03",X"0C",X"D0", + X"D1",X"D2",X"D4",X"D5",X"D3",X"01",X"04",X"18",X"03",X"0A",X"D0",X"D1",X"D2",X"D4",X"D4",X"D4", + X"D5",X"D3",X"01",X"05",X"27",X"D5",X"D3",X"01",X"06",X"27",X"D5",X"D3",X"01",X"07",X"28",X"D3", + X"01",X"08",X"28",X"D3",X"01",X"09",X"27",X"D5",X"D3",X"01",X"0A",X"27",X"D5",X"D3",X"01",X"0B", + X"27",X"D5",X"D3",X"01",X"0C",X"27",X"D5",X"D3",X"01",X"0D",X"27",X"D5",X"D3",X"01",X"0E",X"27", + X"D5",X"D3",X"01",X"0F",X"27",X"D5",X"D3",X"01",X"10",X"27",X"D5",X"D3",X"01",X"11",X"27",X"D5", + X"D3",X"01",X"12",X"27",X"D5",X"D3",X"02",X"53",X"01",X"07",X"26",X"CA",X"01",X"08",X"25",X"CB", + X"CC",X"02",X"54",X"01",X"07",X"27",X"CD",X"01",X"08",X"27",X"CE",X"02",X"52",X"01",X"05",X"18", + X"03",X"0A",X"EB",X"01",X"06",X"18",X"03",X"0A",X"EB",X"01",X"07",X"18",X"03",X"08",X"EC",X"ED", + X"EB",X"01",X"08",X"18",X"03",X"08",X"5C",X"EE",X"EB",X"01",X"09",X"1E",X"5C",X"5C",X"EE",X"EB", + X"01",X"0A",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0B",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0C", + X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0D",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0E",X"1E",X"5C", + X"5C",X"EE",X"EB",X"01",X"0F",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"10",X"1E",X"5C",X"5C",X"EE", + X"EB",X"01",X"11",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"12",X"1E",X"5C",X"5C",X"EE",X"EB",X"01", + X"13",X"1C",X"FD",X"EF",X"F0",X"F1",X"F2",X"F3",X"01",X"14",X"18",X"03",X"04",X"F8",X"F7",X"F6", + X"F4",X"F5",X"01",X"15",X"18",X"03",X"05",X"F8",X"F7",X"F6",X"F6",X"EF",X"FC",X"01",X"16",X"18", + X"03",X"06",X"F8",X"F7",X"F6",X"F6",X"F4",X"F5",X"01",X"17",X"18",X"03",X"07",X"F8",X"F7",X"F6", + X"F6",X"F6",X"EF",X"FC",X"01",X"18",X"18",X"03",X"08",X"F8",X"F7",X"F6",X"F6",X"F6",X"F4",X"F5", + X"01",X"19",X"18",X"03",X"09",X"F8",X"F7",X"03",X"04",X"F6",X"EF",X"F9",X"01",X"1A",X"18",X"03", + X"0A",X"F8",X"F7",X"03",X"04",X"F6",X"F4",X"F5",X"01",X"1B",X"18",X"03",X"0B",X"F8",X"F7",X"03", + X"05",X"F6",X"EF",X"FC",X"01",X"1C",X"18",X"03",X"0C",X"F8",X"F7",X"03",X"05",X"F6",X"F4",X"F5", + X"01",X"1D",X"18",X"03",X"0D",X"F8",X"F7",X"03",X"06",X"F6",X"EF",X"FC",X"01",X"1E",X"18",X"03", + X"0E",X"F8",X"F7",X"03",X"06",X"F6",X"F4",X"F5",X"01",X"1F",X"18",X"03",X"0F",X"F8",X"F7",X"03", + X"07",X"F6",X"EF",X"02",X"10",X"01",X"09",X"18",X"03",X"06",X"04",X"01",X"0A",X"18",X"03",X"06", + X"04",X"01",X"0B",X"18",X"03",X"06",X"04",X"01",X"0C",X"18",X"03",X"06",X"04",X"01",X"0D",X"18", + X"03",X"06",X"04",X"01",X"0E",X"18",X"03",X"06",X"04",X"01",X"0F",X"18",X"03",X"06",X"04",X"01", + X"10",X"18",X"03",X"06",X"04",X"01",X"11",X"18",X"03",X"06",X"04",X"01",X"12",X"18",X"03",X"06", + X"04",X"01",X"13",X"18",X"03",X"04",X"04",X"02",X"55",X"01",X"13",X"22",X"03",X"05",X"94",X"D5", + X"FA",X"03",X"07",X"94",X"01",X"14",X"20",X"03",X"07",X"94",X"D5",X"FA",X"03",X"07",X"94",X"01", + X"15",X"22",X"03",X"05",X"94",X"D5",X"FA",X"03",X"07",X"94",X"01",X"16",X"23",X"03",X"04",X"94", + X"D5",X"FA",X"03",X"07",X"94",X"01",X"17",X"25",X"94",X"D6",X"D7",X"D8",X"D9",X"03",X"06",X"94", + X"01",X"18",X"26",X"DA",X"DB",X"DC",X"DD",X"DE",X"03",X"05",X"94",X"01",X"19",X"28",X"E0",X"E1", + X"E2",X"E3",X"E4",X"94",X"94",X"94",X"01",X"1A",X"29",X"94",X"94",X"E5",X"E6",X"E3",X"E4",X"94", + X"01",X"1B",X"2B",X"94",X"94",X"E5",X"E6",X"E3",X"01",X"1C",X"2C",X"94",X"94",X"94",X"E5",X"01", + X"1D",X"2E",X"94",X"94",X"01",X"1E",X"2F",X"94",X"00",X"4C",X"0C",X"99",X"00",X"4E",X"0C",X"99", + X"10",X"50",X"0C",X"99",X"20",X"52",X"0C",X"79",X"00",X"54",X"0C",X"79",X"10",X"A8",X"0C",X"79", + X"20",X"A8",X"0C",X"89",X"20",X"70",X"0C",X"59",X"00",X"72",X"0C",X"59",X"10",X"74",X"0C",X"59", + X"20",X"76",X"4C",X"7D",X"00",X"00",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"21",X"2A",X"5C",X"A7",X"28",X"03",X"21",X"5C",X"5C",X"7E",X"32",X"DB",X"E5",X"23",X"22",X"DC", + X"E5",X"C9",X"21",X"DB",X"E5",X"35",X"2A",X"DC",X"E5",X"20",X"0D",X"7E",X"3C",X"28",X"09",X"23", + X"7E",X"32",X"DB",X"E5",X"23",X"22",X"DC",X"E5",X"7E",X"C9",X"0C",X"02",X"78",X"80",X"14",X"02", + X"32",X"80",X"24",X"08",X"32",X"02",X"23",X"20",X"32",X"01",X"5A",X"02",X"1E",X"20",X"0C",X"02", + X"1E",X"20",X"0C",X"02",X"5A",X"20",X"73",X"01",X"24",X"08",X"5A",X"01",X"24",X"08",X"64",X"01", + X"32",X"04",X"5F",X"02",X"23",X"20",X"14",X"80",X"1E",X"08",X"FF",X"FF",X"8C",X"01",X"DC",X"08", + X"19",X"02",X"19",X"01",X"14",X"80",X"14",X"04",X"14",X"80",X"4A",X"02",X"C8",X"01",X"EB",X"02", + X"6E",X"80",X"37",X"02",X"50",X"01",X"14",X"80",X"0A",X"01",X"0A",X"02",X"0F",X"01",X"0A",X"02", + X"05",X"01",X"0A",X"02",X"28",X"08",X"FF",X"FF",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"3E",X"01",X"32",X"AE",X"E6",X"18",X"04",X"AF", + X"32",X"AE",X"E6",X"3A",X"90",X"E5",X"FE",X"00",X"20",X"05",X"3E",X"20",X"CD",X"42",X"31",X"CD", + X"C9",X"5E",X"3A",X"B7",X"E5",X"B7",X"28",X"35",X"3A",X"AE",X"E6",X"B7",X"20",X"2F",X"CD",X"D6", + X"5E",X"3E",X"02",X"32",X"88",X"E5",X"3E",X"0E",X"CD",X"3E",X"30",X"21",X"2E",X"D6",X"36",X"00", + X"54",X"5D",X"13",X"01",X"27",X"00",X"ED",X"B0",X"3E",X"0E",X"CD",X"3E",X"30",X"CD",X"D6",X"5E", + X"21",X"88",X"E5",X"35",X"20",X"E0",X"3E",X"70",X"CD",X"3E",X"30",X"18",X"35",X"3A",X"90",X"E5", + X"FE",X"00",X"21",X"36",X"D6",X"CC",X"9A",X"31",X"3E",X"02",X"32",X"88",X"E5",X"3E",X"0E",X"CD", + X"3E",X"30",X"21",X"32",X"D7",X"36",X"00",X"54",X"5D",X"13",X"01",X"1B",X"00",X"ED",X"B0",X"3E", + X"0E",X"CD",X"3E",X"30",X"CD",X"C9",X"5E",X"21",X"88",X"E5",X"35",X"20",X"E0",X"3E",X"38",X"CD", + X"3E",X"30",X"3E",X"01",X"32",X"90",X"E5",X"3A",X"8E",X"E5",X"3D",X"CD",X"EC",X"31",X"79",X"3C", + X"32",X"CC",X"E5",X"79",X"E6",X"07",X"3C",X"32",X"CD",X"E5",X"21",X"00",X"00",X"22",X"8A",X"E5", + X"22",X"8B",X"E5",X"21",X"6C",X"E5",X"FE",X"01",X"20",X"09",X"36",X"30",X"3E",X"60",X"32",X"8B", + X"E5",X"18",X"14",X"FE",X"02",X"20",X"09",X"36",X"40",X"3E",X"80",X"32",X"8B",X"E5",X"18",X"07", + X"36",X"50",X"3E",X"01",X"32",X"8A",X"E5",X"79",X"CB",X"3F",X"CB",X"3F",X"CB",X"3F",X"21",X"DF", + X"E5",X"86",X"87",X"5F",X"16",X"00",X"21",X"35",X"5F",X"19",X"5E",X"23",X"56",X"ED",X"53",X"E1", + X"E5",X"3E",X"14",X"CD",X"42",X"31",X"CD",X"80",X"61",X"CD",X"D7",X"63",X"AF",X"32",X"A6",X"E5", + X"CD",X"43",X"5F",X"CD",X"E7",X"62",X"21",X"10",X"D0",X"11",X"ED",X"5E",X"CD",X"2D",X"30",X"CD", + X"03",X"32",X"0E",X"1E",X"21",X"4A",X"D0",X"3A",X"8E",X"E5",X"CD",X"48",X"30",X"CD",X"F7",X"31", + X"0E",X"04",X"11",X"97",X"E5",X"21",X"60",X"D0",X"3A",X"B8",X"E5",X"B7",X"28",X"03",X"21",X"18", + X"D0",X"06",X"03",X"CD",X"5F",X"30",X"10",X"FB",X"0E",X"06",X"11",X"9A",X"E5",X"21",X"38",X"D0", + X"06",X"03",X"CD",X"5F",X"30",X"10",X"FB",X"3A",X"B4",X"E6",X"FE",X"0C",X"20",X"14",X"21",X"BA", + X"E1",X"06",X"07",X"36",X"0D",X"23",X"23",X"23",X"36",X"0D",X"11",X"15",X"00",X"19",X"10",X"F3", + X"18",X"0C",X"FE",X"10",X"20",X"08",X"3E",X"01",X"32",X"FF",X"E4",X"32",X"00",X"E5",X"3A",X"A7", + X"E5",X"B7",X"20",X"43",X"3A",X"AE",X"E6",X"B7",X"20",X"10",X"3A",X"B7",X"E5",X"B7",X"28",X"0A", + X"3E",X"16",X"32",X"B6",X"E5",X"3E",X"18",X"32",X"AD",X"E6",X"3E",X"01",X"32",X"9D",X"E5",X"21", + X"4A",X"E4",X"06",X"0A",X"78",X"C6",X"02",X"E6",X"03",X"20",X"05",X"3E",X"17",X"CD",X"42",X"31", + X"7E",X"FE",X"FF",X"20",X"04",X"36",X"12",X"18",X"02",X"36",X"FF",X"3E",X"09",X"CD",X"3E",X"30", + X"10",X"E2",X"3E",X"26",X"CD",X"42",X"31",X"3E",X"02",X"32",X"9D",X"E5",X"3E",X"15",X"32",X"B1", + X"E6",X"3E",X"01",X"32",X"68",X"E5",X"C3",X"29",X"00",X"21",X"32",X"D7",X"CD",X"85",X"31",X"11", + X"23",X"5F",X"CD",X"2D",X"30",X"C9",X"0E",X"06",X"3A",X"B8",X"E5",X"C6",X"31",X"21",X"2E",X"D6", + X"CD",X"6A",X"30",X"11",X"2B",X"5F",X"CD",X"2D",X"30",X"CD",X"9A",X"31",X"C9",X"06",X"20",X"31", + X"50",X"2D",X"20",X"20",X"20",X"20",X"20",X"20",X"1E",X"3C",X"31",X"30",X"30",X"30",X"30",X"3E", + X"06",X"48",X"49",X"2D",X"20",X"20",X"20",X"20",X"20",X"20",X"1E",X"3C",X"52",X"2D",X"20",X"20", + X"20",X"5E",X"5F",X"2D",X"20",X"3E",X"06",X"32",X"50",X"2D",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"00",X"06",X"20",X"52",X"45",X"41",X"44",X"59",X"00",X"06",X"2D",X"50",X"4C",X"41", + X"59",X"45",X"52",X"20",X"00",X"98",X"00",X"04",X"01",X"10",X"01",X"14",X"01",X"17",X"01",X"21", + X"01",X"26",X"01",X"3E",X"01",X"32",X"74",X"E5",X"AF",X"32",X"73",X"E5",X"CD",X"91",X"5F",X"3E", + X"02",X"CD",X"3E",X"30",X"21",X"73",X"E5",X"34",X"7E",X"FE",X"1E",X"38",X"EF",X"C9",X"DD",X"21", + X"00",X"E3",X"06",X"10",X"DD",X"36",X"04",X"00",X"DD",X"36",X"0C",X"00",X"11",X"10",X"00",X"DD", + X"19",X"10",X"F1",X"AF",X"32",X"74",X"E5",X"32",X"A6",X"E5",X"3E",X"1C",X"32",X"73",X"E5",X"CD", + X"91",X"5F",X"3E",X"02",X"CD",X"3E",X"30",X"21",X"73",X"E5",X"35",X"7E",X"FE",X"FF",X"20",X"EF", + X"C9",X"87",X"4F",X"AF",X"47",X"91",X"57",X"CB",X"21",X"78",X"E6",X"03",X"CC",X"AD",X"5F",X"7A", + X"CB",X"7F",X"20",X"02",X"0D",X"91",X"04",X"80",X"57",X"79",X"B8",X"30",X"EC",X"C5",X"D5",X"CB", + X"38",X"CB",X"38",X"30",X"01",X"04",X"CB",X"39",X"CB",X"39",X"30",X"01",X"0C",X"2E",X"10",X"CD", + X"D2",X"5F",X"3A",X"74",X"E5",X"B7",X"28",X"03",X"0D",X"18",X"01",X"0C",X"CD",X"D2",X"5F",X"D1", + X"C1",X"C9",X"51",X"3E",X"18",X"80",X"FE",X"30",X"DC",X"F1",X"5F",X"3E",X"18",X"90",X"D4",X"F1", + X"5F",X"50",X"3E",X"18",X"81",X"FE",X"30",X"DC",X"F1",X"5F",X"3E",X"18",X"91",X"D4",X"F1",X"5F", + X"C9",X"67",X"7D",X"82",X"FE",X"20",X"DC",X"00",X"60",X"7D",X"92",X"D8",X"CD",X"00",X"60",X"C9", + X"C5",X"D5",X"E5",X"6F",X"3A",X"A6",X"E5",X"B7",X"C2",X"3C",X"61",X"7C",X"CB",X"3F",X"CB",X"12", + X"67",X"22",X"D6",X"E5",X"CD",X"D5",X"62",X"7E",X"FE",X"01",X"20",X"08",X"3A",X"D8",X"E5",X"47", + X"0E",X"1F",X"18",X"11",X"FE",X"02",X"20",X"08",X"3A",X"D9",X"E5",X"47",X"0E",X"1D",X"18",X"05", + X"CD",X"55",X"60",X"0E",X"05",X"2A",X"D6",X"E5",X"7C",X"D5",X"CD",X"00",X"2D",X"D1",X"CB",X"42", + X"28",X"02",X"2C",X"2C",X"3A",X"74",X"E5",X"B7",X"20",X"04",X"06",X"04",X"0E",X"00",X"70",X"2C", + X"71",X"E1",X"D1",X"C1",X"C9",X"FE",X"07",X"38",X"01",X"AF",X"FE",X"03",X"38",X"02",X"3D",X"3D", + X"47",X"3A",X"D6",X"E5",X"B7",X"C8",X"3A",X"D7",X"E5",X"B7",X"28",X"0C",X"2B",X"7E",X"FE",X"07", + X"38",X"01",X"AF",X"FE",X"02",X"38",X"01",X"3D",X"4F",X"2A",X"D6",X"E5",X"2D",X"7C",X"C5",X"CD", + X"D5",X"62",X"C1",X"7E",X"FE",X"04",X"38",X"01",X"AF",X"FE",X"02",X"38",X"01",X"3D",X"5F",X"3A", + X"D7",X"E5",X"B7",X"28",X"0C",X"2B",X"7E",X"FE",X"04",X"38",X"01",X"AF",X"FE",X"02",X"38",X"01", + X"3D",X"6F",X"CB",X"42",X"28",X"0D",X"78",X"87",X"80",X"83",X"4F",X"06",X"00",X"21",X"C7",X"60", + X"09",X"46",X"C9",X"78",X"87",X"80",X"83",X"5F",X"87",X"83",X"85",X"87",X"87",X"81",X"4F",X"06", + X"00",X"21",X"D0",X"60",X"09",X"46",X"C9",X"00",X"03",X"00",X"14",X"15",X"14",X"18",X"1B",X"18", + X"00",X"02",X"00",X"00",X"03",X"03",X"03",X"03",X"00",X"02",X"00",X"00",X"01",X"03",X"01",X"01", + X"03",X"03",X"03",X"03",X"01",X"03",X"01",X"01",X"00",X"02",X"00",X"00",X"03",X"03",X"03",X"03", + X"00",X"02",X"00",X"00",X"10",X"12",X"10",X"10",X"13",X"13",X"13",X"13",X"10",X"12",X"10",X"10", + X"11",X"13",X"11",X"11",X"13",X"13",X"13",X"13",X"11",X"13",X"11",X"11",X"10",X"12",X"10",X"10", + X"13",X"13",X"13",X"13",X"10",X"12",X"10",X"10",X"18",X"1A",X"18",X"18",X"1B",X"1B",X"1B",X"1B", + X"18",X"1A",X"18",X"18",X"19",X"1B",X"19",X"19",X"1B",X"1B",X"1B",X"1B",X"19",X"1B",X"19",X"19", + X"18",X"1A",X"18",X"18",X"1B",X"1B",X"1B",X"1B",X"18",X"1A",X"18",X"18",X"7C",X"CB",X"3F",X"CB", + X"12",X"67",X"E5",X"CD",X"D5",X"62",X"7E",X"E1",X"CB",X"42",X"20",X"04",X"0F",X"0F",X"0F",X"0F", + X"E6",X"0F",X"4F",X"42",X"7C",X"CD",X"00",X"2D",X"2C",X"CB",X"40",X"28",X"02",X"2C",X"2C",X"7E", + X"B1",X"77",X"E6",X"C0",X"20",X"0A",X"2D",X"7E",X"FE",X"04",X"20",X"02",X"36",X"00",X"18",X"0C", + X"FE",X"40",X"20",X"08",X"2D",X"7E",X"FE",X"FD",X"20",X"02",X"36",X"FB",X"E1",X"D1",X"C1",X"C9", + X"21",X"00",X"E0",X"54",X"5D",X"13",X"36",X"00",X"01",X"68",X"05",X"ED",X"B0",X"ED",X"5F",X"CD", + X"EC",X"31",X"32",X"70",X"E5",X"FD",X"21",X"58",X"E4",X"3A",X"8E",X"E5",X"FE",X"19",X"38",X"04", + X"D6",X"18",X"18",X"F8",X"32",X"B4",X"E6",X"6F",X"26",X"00",X"29",X"EB",X"21",X"00",X"34",X"19", + X"5E",X"23",X"56",X"1A",X"32",X"AF",X"E6",X"13",X"AF",X"32",X"7A",X"E5",X"1A",X"CB",X"7F",X"20", + X"07",X"FE",X"1F",X"C8",X"32",X"7A",X"E5",X"13",X"1A",X"CB",X"7F",X"28",X"EF",X"CB",X"77",X"28", + X"03",X"13",X"18",X"F4",X"3E",X"01",X"32",X"79",X"E5",X"1A",X"E6",X"1F",X"32",X"78",X"E5",X"32", + X"77",X"E5",X"1A",X"CB",X"6F",X"28",X"09",X"3E",X"02",X"32",X"79",X"E5",X"21",X"77",X"E5",X"34", + X"AF",X"32",X"75",X"E5",X"13",X"1A",X"E6",X"C0",X"FE",X"80",X"20",X"10",X"1A",X"E6",X"1F",X"32", + X"77",X"E5",X"21",X"78",X"E5",X"96",X"3C",X"32",X"79",X"E5",X"18",X"E8",X"1A",X"E6",X"C0",X"FE", + X"C0",X"20",X"B5",X"1A",X"CB",X"6F",X"20",X"06",X"E6",X"1F",X"32",X"75",X"E5",X"13",X"1A",X"E6", + X"E0",X"FE",X"E0",X"20",X"15",X"1A",X"E6",X"1F",X"32",X"76",X"E5",X"13",X"3A",X"76",X"E5",X"21", + X"75",X"E5",X"BE",X"38",X"D7",X"CD",X"3F",X"62",X"18",X"F2",X"CD",X"3F",X"62",X"18",X"CD",X"3A", + X"7A",X"E5",X"FE",X"04",X"28",X"7F",X"FE",X"0B",X"30",X"04",X"FE",X"07",X"30",X"42",X"FE",X"06", + X"28",X"1D",X"3A",X"79",X"E5",X"B7",X"28",X"78",X"21",X"77",X"E5",X"4E",X"47",X"C5",X"3A",X"75", + X"E5",X"69",X"CD",X"D5",X"62",X"C1",X"3A",X"7A",X"E5",X"77",X"0D",X"10",X"F0",X"18",X"61",X"21", + X"FD",X"E4",X"7E",X"FE",X"04",X"30",X"59",X"34",X"47",X"87",X"80",X"4F",X"06",X"00",X"21",X"7B", + X"E5",X"09",X"3A",X"75",X"E5",X"77",X"23",X"ED",X"4B",X"77",X"E5",X"70",X"23",X"71",X"18",X"40", + X"FE",X"08",X"20",X"0E",X"CD",X"0B",X"63",X"01",X"18",X"00",X"FD",X"09",X"21",X"E9",X"E4",X"34", + X"18",X"21",X"FE",X"09",X"20",X"0D",X"FD",X"E5",X"FD",X"21",X"40",X"E4",X"CD",X"0B",X"63",X"FD", + X"E1",X"18",X"10",X"FE",X"07",X"20",X"05",X"CD",X"5A",X"63",X"18",X"07",X"FE",X"0A",X"20",X"03", + X"CD",X"74",X"63",X"18",X"0B",X"3A",X"75",X"E5",X"2A",X"78",X"E5",X"CD",X"D5",X"62",X"36",X"04", + X"21",X"75",X"E5",X"34",X"C9",X"26",X"00",X"29",X"29",X"29",X"44",X"4D",X"29",X"09",X"4F",X"06", + X"00",X"09",X"01",X"00",X"E0",X"09",X"C9",X"11",X"00",X"E4",X"3A",X"FC",X"E4",X"B7",X"28",X"0D", + X"47",X"1A",X"6F",X"13",X"1A",X"67",X"13",X"7D",X"CD",X"AA",X"2F",X"10",X"F4",X"C9",X"00",X"08", + X"0D",X"10",X"18",X"00",X"08",X"08",X"09",X"0B",X"0B",X"0A",X"08",X"FD",X"36",X"0A",X"00",X"FE", + X"09",X"20",X"08",X"AF",X"32",X"0C",X"E5",X"3D",X"32",X"0B",X"E5",X"3E",X"01",X"FD",X"77",X"0F", + X"FD",X"77",X"10",X"3A",X"75",X"E5",X"FD",X"77",X"01",X"FD",X"77",X"04",X"87",X"87",X"87",X"FD", + X"77",X"07",X"3A",X"78",X"E5",X"FD",X"77",X"03",X"FD",X"77",X"05",X"87",X"87",X"87",X"FD",X"77", + X"06",X"3E",X"06",X"FD",X"77",X"09",X"AF",X"FD",X"77",X"00",X"FD",X"77",X"02",X"FD",X"77",X"0A", + X"FD",X"77",X"0C",X"FD",X"77",X"0D",X"FD",X"77",X"0E",X"C9",X"21",X"FC",X"E4",X"7E",X"FE",X"20", + X"D0",X"34",X"87",X"4F",X"06",X"00",X"21",X"00",X"E4",X"09",X"3A",X"75",X"E5",X"77",X"23",X"3A", + X"78",X"E5",X"77",X"C9",X"21",X"70",X"E5",X"7E",X"B7",X"20",X"0C",X"3A",X"78",X"E5",X"32",X"72", + X"E5",X"3A",X"75",X"E5",X"32",X"71",X"E5",X"35",X"C9",X"1F",X"CB",X"11",X"3A",X"FD",X"E4",X"32", + X"69",X"E5",X"DD",X"21",X"7B",X"E5",X"21",X"69",X"E5",X"7E",X"B7",X"C8",X"35",X"DD",X"7E",X"00", + X"DD",X"66",X"01",X"87",X"87",X"87",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19",X"DD",X"7E", + X"02",X"DD",X"96",X"01",X"3C",X"47",X"CB",X"41",X"28",X"08",X"36",X"17",X"2C",X"2C",X"36",X"17", + X"18",X"06",X"36",X"10",X"2C",X"2C",X"36",X"14",X"2D",X"2D",X"11",X"80",X"00",X"19",X"10",X"E6", + X"11",X"03",X"00",X"DD",X"19",X"18",X"BF",X"3A",X"CD",X"E5",X"4F",X"87",X"81",X"6F",X"26",X"00", + X"29",X"29",X"29",X"29",X"22",X"F6",X"E4",X"21",X"30",X"64",X"06",X"00",X"09",X"7E",X"32",X"F8", + X"E4",X"21",X"39",X"64",X"09",X"7E",X"32",X"F5",X"E4",X"21",X"42",X"64",X"09",X"7E",X"32",X"FB", + X"E4",X"79",X"E6",X"07",X"3C",X"4F",X"21",X"30",X"64",X"09",X"7E",X"32",X"6E",X"E5",X"21",X"42", + X"64",X"09",X"7E",X"32",X"6F",X"E5",X"3A",X"8E",X"E5",X"CD",X"EC",X"31",X"4F",X"06",X"00",X"21", + X"4B",X"64",X"09",X"7E",X"32",X"D8",X"E5",X"21",X"4E",X"64",X"09",X"7E",X"32",X"D9",X"E5",X"C9", + X"00",X"04",X"08",X"0E",X"0A",X"07",X"0F",X"05",X"00",X"00",X"00",X"01",X"00",X"01",X"00",X"00", + X"01",X"00",X"00",X"01",X"01",X"01",X"00",X"01",X"01",X"00",X"01",X"09",X"0A",X"08",X"0D",X"0E", + X"0C",X"AF",X"32",X"89",X"E5",X"7E",X"B7",X"C8",X"3D",X"20",X"24",X"23",X"EB",X"1A",X"6F",X"13", + X"1A",X"13",X"D5",X"CB",X"3F",X"CB",X"10",X"5D",X"57",X"D5",X"CD",X"00",X"2D",X"D1",X"CB",X"40", + X"28",X"02",X"2C",X"2C",X"EB",X"7C",X"CD",X"D5",X"62",X"E5",X"DD",X"E1",X"E1",X"18",X"D6",X"3D", + X"20",X"08",X"23",X"7E",X"32",X"88",X"E5",X"23",X"18",X"CB",X"06",X"01",X"3D",X"20",X"14",X"23", + X"46",X"23",X"CB",X"78",X"28",X"0D",X"78",X"06",X"30",X"E6",X"7F",X"FE",X"02",X"38",X"04",X"3D", + X"32",X"89",X"E5",X"3A",X"88",X"E5",X"E6",X"0F",X"CB",X"4B",X"28",X"0E",X"4F",X"DD",X"7E",X"00", + X"E6",X"F0",X"B1",X"DD",X"77",X"00",X"DD",X"23",X"18",X"0E",X"0F",X"0F",X"0F",X"0F",X"4F",X"DD", + X"7E",X"00",X"E6",X"0F",X"B1",X"DD",X"77",X"00",X"7E",X"12",X"13",X"3A",X"88",X"E5",X"E6",X"F0", + X"12",X"13",X"7B",X"FE",X"70",X"20",X"02",X"1E",X"90",X"FE",X"F0",X"20",X"03",X"1E",X"10",X"14", + X"10",X"C1",X"3A",X"89",X"E5",X"B7",X"28",X"08",X"3D",X"32",X"89",X"E5",X"06",X"30",X"18",X"B3", + X"23",X"C3",X"55",X"64",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"21",X"36",X"D5",X"11",X"1F",X"68",X"CD",X"2D",X"30",X"3E",X"24",X"CD",X"3E",X"30",X"DB",X"04", + X"CB",X"57",X"28",X"2D",X"DB",X"03",X"0F",X"0F",X"E6",X"3C",X"C6",X"10",X"21",X"FA",X"65",X"5F", + X"16",X"00",X"19",X"5E",X"23",X"56",X"23",X"D5",X"7E",X"23",X"66",X"6F",X"11",X"B0",X"D6",X"EB", + X"CD",X"2D",X"30",X"3E",X"24",X"CD",X"3E",X"30",X"D1",X"21",X"B0",X"D7",X"CD",X"2D",X"30",X"18", + X"39",X"DB",X"03",X"07",X"07",X"07",X"F5",X"E6",X"06",X"5F",X"16",X"00",X"21",X"FA",X"65",X"19", + X"5E",X"23",X"56",X"23",X"F1",X"D5",X"07",X"07",X"E6",X"06",X"C6",X"08",X"5F",X"16",X"00",X"21", + X"FA",X"65",X"19",X"7E",X"23",X"66",X"6F",X"11",X"AC",X"D6",X"EB",X"CD",X"2D",X"30",X"3E",X"24", + X"CD",X"3E",X"30",X"D1",X"21",X"AC",X"D7",X"CD",X"2D",X"30",X"06",X"06",X"C5",X"21",X"36",X"D5", + X"11",X"2D",X"68",X"CD",X"2D",X"30",X"3E",X"0C",X"CD",X"3E",X"30",X"21",X"36",X"D5",X"11",X"1F", + X"68",X"CD",X"2D",X"30",X"3E",X"18",X"CD",X"3E",X"30",X"C1",X"10",X"E0",X"C9",X"3A",X"57",X"E4", + X"FE",X"01",X"20",X"0B",X"21",X"28",X"DA",X"11",X"3B",X"68",X"CD",X"2D",X"30",X"18",X"4A",X"3A", + X"57",X"E4",X"FE",X"02",X"20",X"16",X"0E",X"C6",X"21",X"3C",X"DB",X"11",X"55",X"68",X"CD",X"2D", + X"30",X"21",X"BC",X"DB",X"11",X"5A",X"68",X"CD",X"2D",X"30",X"18",X"2D",X"3A",X"57",X"E4",X"FE", + X"03",X"20",X"0B",X"21",X"B2",X"DC",X"11",X"5F",X"68",X"CD",X"2D",X"30",X"18",X"1B",X"3A",X"57", + X"E4",X"FE",X"04",X"20",X"14",X"0E",X"C6",X"21",X"B6",X"DD",X"11",X"6F",X"68",X"CD",X"2D",X"30", + X"21",X"36",X"DE",X"11",X"7A",X"68",X"CD",X"2D",X"30",X"C9",X"C6",X"67",X"DC",X"67",X"F2",X"67", + X"08",X"68",X"1E",X"68",X"87",X"67",X"9C",X"67",X"B1",X"67",X"1E",X"68",X"1E",X"68",X"1E",X"68", + X"1E",X"68",X"1E",X"68",X"1E",X"68",X"1E",X"68",X"28",X"67",X"1E",X"68",X"3B",X"67",X"1E",X"68", + X"4E",X"67",X"1E",X"68",X"61",X"67",X"1E",X"68",X"74",X"67",X"1E",X"68",X"1E",X"68",X"1E",X"68", + X"1E",X"68",X"5C",X"66",X"4A",X"66",X"81",X"66",X"6F",X"66",X"A6",X"66",X"94",X"66",X"CB",X"66", + X"B9",X"66",X"F0",X"66",X"DE",X"66",X"15",X"67",X"03",X"67",X"20",X"36",X"20",X"43",X"4F",X"49", + X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00",X"31",X"32",X"20",X"43", + X"4F",X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20", + X"35",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"00",X"31",X"30",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"53",X"00",X"20",X"34",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"00",X"20",X"38",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32", + X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"33",X"20",X"43",X"4F",X"49",X"4E", + X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00",X"20",X"36",X"20",X"43",X"4F", + X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"32", + X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00", + X"20",X"34",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45", + X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"31",X"20",X"50",X"4C", + X"41",X"59",X"45",X"52",X"00",X"20",X"32",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32",X"20", + X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20", + X"20",X"36",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F", + X"49",X"4E",X"20",X"20",X"35",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"31", + X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"34",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53", + X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"33",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"32",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"41",X"20",X"2D",X"20",X"33",X"20",X"43",X"4F",X"49", + X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00",X"41",X"20",X"2D",X"20", + X"32",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"00",X"41",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"31",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"00",X"42",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E", + X"20",X"20",X"36",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"42",X"20",X"2D",X"20", + X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"35",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"53",X"00",X"42",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"33",X"20", + X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"42",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F", + X"49",X"4E",X"20",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"00",X"02", + X"49",X"4E",X"53",X"45",X"52",X"54",X"20",X"20",X"43",X"4F",X"49",X"4E",X"00",X"02",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"00",X"06",X"40",X"31",X"39",X"38", + X"34",X"20",X"20",X"20",X"49",X"52",X"45",X"4D",X"20",X"43",X"4F",X"52",X"50",X"4F",X"52",X"41", + X"54",X"49",X"4F",X"4E",X"00",X"80",X"82",X"84",X"86",X"00",X"81",X"83",X"85",X"87",X"00",X"02", + X"4C",X"49",X"43",X"45",X"4E",X"53",X"45",X"44",X"20",X"20",X"46",X"52",X"4F",X"4D",X"00",X"68", + X"6A",X"6C",X"6E",X"70",X"72",X"74",X"76",X"78",X"7A",X"00",X"69",X"6B",X"6D",X"6F",X"71",X"73", + X"75",X"77",X"79",X"7B",X"00",X"CD",X"5E",X"5F",X"3E",X"FF",X"32",X"D1",X"E5",X"CD",X"28",X"6D", + X"3E",X"A8",X"CD",X"3E",X"30",X"3E",X"01",X"32",X"A9",X"E5",X"CD",X"5E",X"5F",X"C3",X"CF",X"25", + X"31",X"00",X"E8",X"21",X"10",X"D0",X"36",X"00",X"54",X"5D",X"13",X"01",X"57",X"15",X"ED",X"B0", + X"AF",X"32",X"A7",X"E5",X"32",X"9D",X"E5",X"32",X"6A",X"E5",X"FB",X"3E",X"50",X"32",X"B5",X"E5", + X"21",X"B5",X"E5",X"7E",X"FE",X"14",X"38",X"0B",X"21",X"36",X"D5",X"11",X"91",X"69",X"CD",X"2D", + X"30",X"18",X"12",X"B7",X"20",X"02",X"36",X"28",X"21",X"26",X"D5",X"36",X"00",X"54",X"5D",X"13", + X"01",X"35",X"00",X"ED",X"B0",X"11",X"A0",X"69",X"3A",X"B2",X"E5",X"FE",X"02",X"38",X"03",X"11", + X"B2",X"69",X"21",X"34",X"D7",X"CD",X"2D",X"30",X"CD",X"7F",X"69",X"21",X"AA",X"E5",X"7E",X"E6", + X"0A",X"FE",X"0A",X"20",X"0E",X"3A",X"B2",X"E5",X"3D",X"27",X"32",X"B2",X"E5",X"AF",X"32",X"B7", + X"E5",X"18",X"1B",X"7E",X"E6",X"05",X"FE",X"05",X"C2",X"C0",X"68",X"3A",X"B2",X"E5",X"FE",X"02", + X"DA",X"C0",X"68",X"D6",X"02",X"27",X"32",X"B2",X"E5",X"3E",X"01",X"32",X"B7",X"E5",X"AF",X"32", + X"B9",X"E5",X"32",X"B8",X"E5",X"32",X"90",X"E5",X"32",X"96",X"E5",X"3C",X"32",X"B2",X"E6",X"CB", + X"41",X"20",X"06",X"32",X"8E",X"E5",X"32",X"94",X"E5",X"3A",X"E0",X"E5",X"32",X"8F",X"E5",X"32", + X"95",X"E5",X"21",X"00",X"00",X"22",X"91",X"E5",X"22",X"92",X"E5",X"22",X"97",X"E5",X"22",X"98", + X"E5",X"21",X"80",X"00",X"DB",X"04",X"CB",X"47",X"20",X"02",X"2D",X"2D",X"22",X"E3",X"E5",X"21", + X"10",X"D3",X"36",X"00",X"54",X"5D",X"13",X"01",X"7F",X"09",X"ED",X"B0",X"C3",X"0F",X"5D",X"21", + X"42",X"DC",X"11",X"C6",X"69",X"CD",X"2D",X"30",X"0E",X"02",X"11",X"B2",X"E5",X"CD",X"5F",X"30", + X"C9",X"04",X"50",X"55",X"53",X"48",X"20",X"20",X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"00", + X"04",X"4F",X"4E",X"4C",X"59",X"20",X"20",X"02",X"31",X"20",X"04",X"50",X"4C",X"41",X"59",X"45", + X"52",X"00",X"02",X"31",X"20",X"04",X"4F",X"52",X"20",X"02",X"32",X"20",X"20",X"04",X"50",X"4C", + X"41",X"59",X"45",X"52",X"53",X"00",X"04",X"43",X"52",X"45",X"44",X"49",X"54",X"20",X"00",X"06", + X"31",X"53",X"54",X"20",X"20",X"42",X"4C",X"4F",X"43",X"4B",X"00",X"21",X"30",X"D3",X"11",X"8F", + X"6A",X"CD",X"2D",X"30",X"3E",X"22",X"CD",X"42",X"31",X"3E",X"0A",X"32",X"88",X"E5",X"3E",X"38", + X"32",X"B6",X"E5",X"3E",X"50",X"32",X"B5",X"E5",X"21",X"B6",X"E5",X"7E",X"B7",X"20",X"09",X"36", + X"38",X"21",X"88",X"E5",X"35",X"CA",X"89",X"6A",X"21",X"B5",X"E5",X"7E",X"FE",X"14",X"38",X"1C", + X"3A",X"B2",X"E5",X"B7",X"20",X"0B",X"21",X"24",X"D5",X"11",X"A1",X"6A",X"CD",X"2D",X"30",X"18", + X"09",X"21",X"24",X"D5",X"11",X"C6",X"6A",X"CD",X"2D",X"30",X"18",X"12",X"B7",X"20",X"02",X"36", + X"27",X"21",X"24",X"D5",X"36",X"00",X"54",X"5D",X"13",X"01",X"35",X"00",X"ED",X"B0",X"CD",X"7F", + X"69",X"21",X"3A",X"D9",X"11",X"BE",X"6A",X"CD",X"2D",X"30",X"0E",X"06",X"3A",X"88",X"E5",X"3D", + X"CD",X"6A",X"30",X"21",X"AA",X"E5",X"7E",X"E6",X"0A",X"FE",X"0A",X"28",X"07",X"7E",X"E6",X"05", + X"FE",X"05",X"20",X"22",X"3A",X"B2",X"E5",X"B7",X"CA",X"F8",X"69",X"D6",X"01",X"27",X"32",X"B2", + X"E5",X"AF",X"32",X"90",X"E5",X"3A",X"E0",X"E5",X"32",X"8F",X"E5",X"21",X"00",X"00",X"22",X"91", + X"E5",X"22",X"92",X"E5",X"18",X"03",X"C3",X"F8",X"69",X"3E",X"00",X"CD",X"42",X"31",X"C9",X"03", + X"54",X"4F",X"20",X"43",X"4F",X"4E",X"54",X"49",X"4E",X"55",X"45",X"20",X"47",X"41",X"4D",X"45", + X"00",X"04",X"49",X"4E",X"53",X"45",X"52",X"54",X"20",X"43",X"4F",X"49",X"4E",X"20",X"41",X"4E", + X"44",X"20",X"50",X"55",X"53",X"48",X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"00",X"03",X"54", + X"49",X"4D",X"45",X"20",X"20",X"00",X"04",X"20",X"20",X"20",X"20",X"20",X"50",X"55",X"53",X"48", + X"20",X"53",X"54",X"41",X"52",X"54",X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"20",X"20",X"20", + X"20",X"20",X"00",X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"3A",X"90",X"E5",X"FE",X"02", + X"20",X"26",X"AF",X"32",X"B2",X"E6",X"CD",X"A8",X"6B",X"CD",X"DB",X"69",X"3E",X"01",X"32",X"B2", + X"E6",X"3A",X"90",X"E5",X"FE",X"00",X"20",X"10",X"21",X"10",X"D3",X"36",X"00",X"54",X"5D",X"13", + X"01",X"7F",X"09",X"ED",X"B0",X"C3",X"0F",X"5D",X"3A",X"B7",X"E5",X"FE",X"00",X"28",X"07",X"3A", + X"96",X"E5",X"FE",X"02",X"20",X"2E",X"3A",X"90",X"E5",X"FE",X"02",X"28",X"10",X"21",X"10",X"D3", + X"36",X"00",X"54",X"5D",X"13",X"01",X"7F",X"09",X"ED",X"B0",X"C3",X"0F",X"5D",X"CD",X"5E",X"5F", + X"AF",X"32",X"B2",X"E6",X"32",X"B9",X"E5",X"3E",X"01",X"CD",X"3E",X"30",X"3E",X"01",X"32",X"A7", + X"E5",X"C3",X"CF",X"25",X"21",X"10",X"D3",X"36",X"00",X"54",X"5D",X"13",X"01",X"7F",X"09",X"ED", + X"B0",X"21",X"B8",X"E5",X"7E",X"B7",X"20",X"03",X"34",X"18",X"02",X"36",X"00",X"CD",X"96",X"6B", + X"DB",X"04",X"CB",X"4F",X"28",X"1D",X"21",X"B9",X"E5",X"CB",X"46",X"20",X"03",X"34",X"18",X"01", + X"35",X"E6",X"01",X"AE",X"21",X"80",X"00",X"20",X"02",X"2D",X"2D",X"22",X"E3",X"E5",X"3E",X"01", + X"CD",X"3E",X"30",X"C3",X"0F",X"5D",X"21",X"8E",X"E5",X"11",X"94",X"E5",X"06",X"06",X"1A",X"4E", + X"77",X"79",X"12",X"23",X"13",X"10",X"F7",X"C9",X"0E",X"00",X"16",X"15",X"21",X"E5",X"E5",X"06", + X"00",X"09",X"DD",X"21",X"91",X"E5",X"06",X"03",X"DD",X"7E",X"00",X"BE",X"38",X"12",X"28",X"0B", + X"15",X"3E",X"0A",X"81",X"4F",X"FE",X"C8",X"28",X"07",X"18",X"E1",X"DD",X"23",X"23",X"10",X"E8", + X"7A",X"32",X"D1",X"E5",X"79",X"B7",X"C8",X"D6",X"0A",X"11",X"E5",X"E5",X"28",X"08",X"4F",X"06", + X"00",X"21",X"EF",X"E5",X"ED",X"B0",X"21",X"91",X"E5",X"01",X"03",X"00",X"ED",X"B0",X"62",X"6B", + X"36",X"00",X"13",X"01",X"05",X"00",X"ED",X"B0",X"3A",X"8E",X"E5",X"12",X"CD",X"28",X"6D",X"21", + X"B8",X"D2",X"11",X"22",X"6D",X"CD",X"2D",X"30",X"DD",X"2A",X"D2",X"E5",X"11",X"16",X"00",X"DD", + X"19",X"FD",X"2A",X"D4",X"E5",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"0E",X"41",X"1E",X"03",X"3E", + X"14",X"32",X"88",X"E5",X"21",X"C2",X"D2",X"C5",X"0E",X"06",X"3A",X"88",X"E5",X"CD",X"48",X"30", + X"C1",X"06",X"04",X"3E",X"0E",X"32",X"B6",X"E5",X"AF",X"32",X"89",X"E5",X"3A",X"D0",X"E5",X"B7", + X"20",X"03",X"57",X"18",X"44",X"7A",X"B7",X"20",X"13",X"3A",X"D0",X"E5",X"FE",X"0A",X"20",X"04", + X"14",X"0C",X"18",X"06",X"FE",X"05",X"20",X"02",X"15",X"0D",X"18",X"1F",X"3A",X"D0",X"E5",X"FE", + X"AA",X"20",X"0B",X"14",X"7A",X"FE",X"18",X"20",X"03",X"0C",X"16",X"0C",X"18",X"0D",X"FE",X"55", + X"20",X"09",X"15",X"7A",X"FE",X"E8",X"20",X"03",X"0D",X"16",X"F4",X"79",X"FE",X"5D",X"38",X"02", + X"0E",X"41",X"79",X"FE",X"41",X"30",X"02",X"0E",X"5C",X"3A",X"CF",X"E5",X"FE",X"05",X"28",X"04", + X"FE",X"0A",X"20",X"21",X"21",X"89",X"E5",X"3A",X"B6",X"E5",X"BE",X"38",X"18",X"3C",X"77",X"79", + X"FE",X"5C",X"28",X"3D",X"FD",X"71",X"00",X"FD",X"23",X"DD",X"71",X"00",X"0E",X"41",X"DD",X"23", + X"DD",X"23",X"1D",X"28",X"2C",X"CB",X"40",X"28",X"05",X"DD",X"71",X"00",X"18",X"03",X"DD",X"71", + X"00",X"3A",X"AA",X"E5",X"B7",X"20",X"1A",X"3E",X"01",X"CD",X"3E",X"30",X"3A",X"B6",X"E5",X"B7", + X"C2",X"3C",X"6C",X"05",X"C2",X"33",X"6C",X"21",X"88",X"E5",X"35",X"7E",X"FE",X"FF",X"C2",X"24", + X"6C",X"DD",X"36",X"00",X"00",X"3E",X"38",X"CD",X"3E",X"30",X"3E",X"13",X"CD",X"42",X"31",X"CD", + X"5E",X"5F",X"C9",X"03",X"42",X"45",X"53",X"54",X"20",X"20",X"06",X"32",X"30",X"20",X"20",X"03", + X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"02",X"20",X"4E",X"4F",X"2E",X"53",X"43",X"4F", + X"52",X"45",X"53",X"20",X"20",X"4E",X"41",X"4D",X"45",X"20",X"52",X"4F",X"55",X"4E",X"44",X"20", + X"20",X"00",X"02",X"54",X"49",X"4D",X"45",X"00",X"21",X"B0",X"D1",X"11",X"F3",X"6C",X"CD",X"2D", + X"30",X"21",X"90",X"D3",X"11",X"08",X"6D",X"CD",X"2D",X"30",X"11",X"08",X"6D",X"CD",X"2D",X"30", + X"11",X"E5",X"E5",X"21",X"C2",X"DD",X"3A",X"D1",X"E5",X"4F",X"06",X"14",X"78",X"FE",X"0A",X"20", + X"03",X"21",X"92",X"DD",X"B9",X"20",X"07",X"22",X"D2",X"E5",X"ED",X"53",X"D4",X"E5",X"C5",X"E5", + X"41",X"0E",X"02",X"B8",X"20",X"02",X"0E",X"06",X"FE",X"0A",X"30",X"07",X"2C",X"2C",X"CD",X"6A", + X"30",X"18",X"03",X"CD",X"48",X"30",X"2C",X"2C",X"79",X"FE",X"02",X"20",X"02",X"0E",X"04",X"06", + X"03",X"CD",X"5F",X"30",X"10",X"FB",X"2C",X"2C",X"2C",X"2C",X"06",X"03",X"1A",X"77",X"2C",X"71", + X"2C",X"13",X"10",X"F8",X"7D",X"C6",X"06",X"6F",X"13",X"13",X"13",X"1A",X"CD",X"48",X"30",X"13", + X"E1",X"C1",X"25",X"10",X"A7",X"C9",X"01",X"03",X"00",X"11",X"9A",X"E5",X"21",X"7B",X"6E",X"ED", + X"B0",X"01",X"C8",X"00",X"11",X"E5",X"E5",X"21",X"BD",X"6D",X"ED",X"B0",X"C9",X"01",X"01",X"00", + X"53",X"54",X"45",X"20",X"20",X"20",X"01",X"01",X"03",X"50",X"4F",X"49",X"4E",X"20",X"20",X"20", + X"01",X"01",X"08",X"80",X"45",X"48",X"45",X"20",X"20",X"20",X"02",X"01",X"10",X"30",X"4D",X"49", + X"54",X"20",X"20",X"20",X"01",X"01",X"21",X"50",X"41",X"41",X"54",X"20",X"20",X"20",X"01",X"01", + X"23",X"50",X"47",X"4E",X"41",X"20",X"20",X"20",X"02",X"01",X"28",X"00",X"4F",X"41",X"59",X"20", + X"20",X"20",X"02",X"01",X"38",X"70",X"4E",X"52",X"41",X"20",X"20",X"20",X"02",X"01",X"60",X"10", + X"4F",X"49",X"57",X"20",X"20",X"20",X"02",X"01",X"89",X"90",X"4B",X"48",X"4F",X"20",X"20",X"20", + X"02",X"02",X"66",X"00",X"48",X"4E",X"49",X"20",X"20",X"20",X"02",X"02",X"77",X"50",X"53",X"41", + X"4F",X"20",X"20",X"20",X"02",X"03",X"12",X"50",X"55",X"48",X"59",X"20",X"20",X"20",X"02",X"03", + X"33",X"00",X"42",X"53",X"41",X"20",X"20",X"20",X"03",X"03",X"65",X"00",X"41",X"49",X"57",X"20", + X"20",X"20",X"03",X"03",X"70",X"50",X"4B",X"41",X"45",X"20",X"20",X"20",X"04",X"03",X"88",X"00", + X"4D",X"4B",X"4D",X"20",X"20",X"20",X"03",X"04",X"01",X"50",X"45",X"49",X"41",X"20",X"20",X"20", + X"03",X"04",X"32",X"00",X"52",X"4B",X"47",X"20",X"20",X"20",X"03",X"04",X"85",X"40",X"49",X"49", + X"4F",X"20",X"20",X"20",X"04",X"F9",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"31",X"00",X"E8",X"11",X"00",X"20",X"CD",X"2D",X"6F",X"22",X"74",X"00",X"CD",X"2D",X"6F",X"22", + X"76",X"00",X"CD",X"2D",X"6F",X"22",X"78",X"00",X"11",X"00",X"00",X"CD",X"2D",X"6F",X"22",X"72", + X"00",X"11",X"FF",X"FF",X"EB",X"A7",X"ED",X"52",X"22",X"70",X"00",X"18",X"FE",X"01",X"00",X"20", + X"21",X"00",X"00",X"1A",X"85",X"6F",X"3E",X"00",X"8C",X"67",X"13",X"0B",X"78",X"B1",X"20",X"F3", + X"C9",X"F3",X"ED",X"46",X"31",X"00",X"E8",X"DD",X"21",X"4E",X"6F",X"C3",X"90",X"72",X"0E",X"05", + X"3E",X"FF",X"ED",X"79",X"0C",X"ED",X"79",X"0C",X"ED",X"79",X"21",X"00",X"E1",X"36",X"00",X"54", + X"5D",X"13",X"01",X"FF",X"01",X"ED",X"B0",X"FB",X"01",X"00",X"80",X"0B",X"79",X"B0",X"20",X"FB", + X"F3",X"AF",X"5F",X"16",X"20",X"21",X"00",X"E0",X"0E",X"10",X"06",X"00",X"77",X"23",X"3C",X"15", + X"28",X"07",X"10",X"F8",X"0D",X"20",X"F3",X"18",X"05",X"16",X"20",X"3C",X"18",X"F4",X"7B",X"16", + X"20",X"21",X"00",X"E0",X"0E",X"10",X"06",X"00",X"BE",X"C2",X"95",X"71",X"23",X"3C",X"15",X"28", + X"07",X"10",X"F5",X"0D",X"20",X"F0",X"18",X"05",X"3C",X"16",X"20",X"18",X"F4",X"7B",X"3C",X"FE", + X"0F",X"20",X"BF",X"31",X"00",X"E8",X"CD",X"F2",X"77",X"AF",X"32",X"01",X"E0",X"16",X"20",X"0E", + X"10",X"21",X"00",X"D0",X"06",X"00",X"77",X"23",X"3C",X"15",X"28",X"07",X"10",X"F8",X"0D",X"20", + X"F3",X"18",X"05",X"3C",X"16",X"20",X"18",X"F4",X"3A",X"01",X"E0",X"16",X"20",X"21",X"00",X"D0", + X"0E",X"10",X"06",X"00",X"CD",X"35",X"72",X"23",X"3C",X"15",X"28",X"07",X"10",X"F6",X"0D",X"20", + X"F1",X"18",X"05",X"3C",X"16",X"20",X"18",X"F4",X"3A",X"01",X"E0",X"3C",X"FE",X"0F",X"20",X"BA", + X"DD",X"21",X"BF",X"70",X"CD",X"90",X"72",X"21",X"0F",X"7A",X"DD",X"21",X"BF",X"70",X"CD",X"28", + X"71",X"CD",X"AF",X"70",X"CD",X"F2",X"77",X"3E",X"03",X"32",X"01",X"E7",X"CD",X"9E",X"79",X"3E", + X"01",X"32",X"00",X"E3",X"32",X"02",X"E3",X"DB",X"00",X"2F",X"0F",X"0F",X"30",X"F9",X"3E",X"03", + X"32",X"01",X"E7",X"CD",X"B6",X"77",X"21",X"AA",X"7B",X"CD",X"D5",X"77",X"3A",X"01",X"E7",X"06", + X"06",X"CD",X"4A",X"7D",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"30",X"14", + X"3A",X"01",X"E7",X"07",X"4F",X"06",X"00",X"DD",X"21",X"98",X"7B",X"DD",X"09",X"DD",X"66",X"01", + X"DD",X"6E",X"00",X"E9",X"CD",X"9E",X"79",X"CD",X"9E",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79", + X"DB",X"01",X"2F",X"0F",X"38",X"05",X"0F",X"38",X"1C",X"18",X"C9",X"3A",X"01",X"E7",X"FE",X"08", + X"CA",X"44",X"70",X"06",X"04",X"CD",X"4A",X"7D",X"C6",X"01",X"32",X"01",X"E7",X"06",X"06",X"CD", + X"4A",X"7D",X"C3",X"44",X"70",X"3A",X"01",X"E7",X"FE",X"03",X"CA",X"44",X"70",X"06",X"04",X"CD", + X"4A",X"7D",X"C6",X"FF",X"32",X"01",X"E7",X"06",X"06",X"CD",X"4A",X"7D",X"C3",X"44",X"70",X"11", + X"00",X"00",X"AF",X"32",X"00",X"E7",X"06",X"04",X"C5",X"CD",X"C0",X"70",X"C1",X"10",X"F9",X"C9", + X"21",X"00",X"00",X"06",X"20",X"1A",X"85",X"30",X"01",X"24",X"6F",X"1C",X"20",X"F7",X"14",X"10", + X"F4",X"D5",X"E5",X"3A",X"00",X"E7",X"21",X"72",X"00",X"87",X"85",X"6F",X"5E",X"23",X"56",X"E1", + X"7A",X"BC",X"20",X"09",X"7B",X"BD",X"20",X"05",X"21",X"2F",X"7A",X"18",X"03",X"21",X"38",X"7A", + X"11",X"83",X"E7",X"01",X"09",X"00",X"ED",X"B0",X"11",X"00",X"01",X"21",X"A0",X"D1",X"3A",X"00", + X"E7",X"A7",X"28",X"04",X"47",X"19",X"10",X"FD",X"22",X"81",X"E7",X"3E",X"08",X"32",X"80",X"E7", + X"3A",X"00",X"E7",X"C6",X"30",X"32",X"86",X"E7",X"21",X"00",X"E7",X"34",X"21",X"80",X"E7",X"DD", + X"21",X"BF",X"70",X"CD",X"28",X"71",X"D1",X"C9",X"7E",X"23",X"FE",X"00",X"28",X"12",X"5E",X"23", + X"56",X"23",X"4F",X"7E",X"12",X"13",X"3E",X"04",X"12",X"23",X"13",X"0D",X"20",X"F5",X"18",X"E8", + X"DD",X"E9",X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38",X"02",X"C6",X"07", + X"FD",X"77",X"00",X"FD",X"36",X"01",X"04",X"DD",X"E9",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38", + X"02",X"C6",X"07",X"FD",X"77",X"00",X"FD",X"36",X"01",X"04",X"DD",X"E9",X"F5",X"0F",X"0F",X"0F", + X"0F",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38",X"02",X"C6",X"07",X"FD",X"77",X"00",X"FD",X"36", + X"01",X"04",X"F1",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38",X"02",X"C6",X"07",X"FD",X"77",X"02", + X"FD",X"36",X"03",X"04",X"C9",X"08",X"D9",X"DD",X"21",X"9E",X"71",X"C3",X"15",X"72",X"21",X"1B", + X"7A",X"DD",X"21",X"A8",X"71",X"C3",X"28",X"71",X"D9",X"FD",X"21",X"B8",X"D0",X"DD",X"21",X"B5", + X"71",X"7C",X"C3",X"42",X"71",X"FD",X"23",X"FD",X"23",X"DD",X"21",X"C1",X"71",X"7C",X"C3",X"59", + X"71",X"DD",X"21",X"CD",X"71",X"7D",X"FD",X"23",X"FD",X"23",X"C3",X"42",X"71",X"DD",X"21",X"D9", + X"71",X"7D",X"FD",X"23",X"FD",X"23",X"C3",X"59",X"71",X"08",X"D9",X"FD",X"23",X"FD",X"23",X"FD", + X"23",X"FD",X"23",X"DD",X"21",X"EB",X"71",X"5F",X"C3",X"42",X"71",X"FD",X"23",X"FD",X"23",X"DD", + X"21",X"F7",X"71",X"7B",X"C3",X"59",X"71",X"08",X"D9",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"FD", + X"23",X"DD",X"21",X"09",X"72",X"7E",X"C3",X"42",X"71",X"FD",X"23",X"FD",X"23",X"7E",X"DD",X"21", + X"23",X"72",X"C3",X"59",X"71",X"21",X"01",X"D0",X"01",X"FF",X"0F",X"36",X"00",X"54",X"5D",X"ED", + X"B0",X"DD",X"E9",X"CD",X"9E",X"79",X"DB",X"00",X"0F",X"38",X"06",X"0F",X"DA",X"B3",X"6F",X"18", + X"F2",X"08",X"C3",X"9C",X"6F",X"BE",X"C8",X"F5",X"E5",X"DD",X"21",X"40",X"72",X"C3",X"90",X"72", + X"21",X"1B",X"7A",X"DD",X"21",X"4A",X"72",X"C3",X"28",X"71",X"E1",X"FD",X"21",X"B8",X"D0",X"7C", + X"CD",X"6C",X"71",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"7D",X"CD",X"6C",X"71",X"F1", + X"F5",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"CD",X"6C",X"71",X"FD",X"23",X"FD",X"23", + X"FD",X"23",X"FD",X"23",X"7E",X"CD",X"6C",X"71",X"CD",X"9E",X"79",X"CD",X"9E",X"79",X"DB",X"00", + X"0F",X"DA",X"89",X"72",X"0F",X"38",X"04",X"18",X"EF",X"F1",X"C9",X"F1",X"C1",X"C3",X"00",X"70", + X"21",X"01",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D",X"13",X"13",X"CD",X"A7",X"79",X"21", + X"00",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D",X"13",X"13",X"CD",X"A7",X"79",X"DD",X"E9", + X"3E",X"FF",X"D3",X"05",X"CD",X"B6",X"77",X"21",X"41",X"7A",X"CD",X"D5",X"77",X"DB",X"03",X"21", + X"AE",X"D1",X"CD",X"33",X"76",X"DB",X"04",X"21",X"AE",X"D2",X"CD",X"33",X"76",X"CD",X"E4",X"72", + X"CD",X"72",X"73",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"EE",X"FF",X"0F",X"0F",X"DA", + X"33",X"70",X"18",X"D9",X"21",X"87",X"74",X"CD",X"D5",X"77",X"CD",X"B0",X"73",X"DB",X"04",X"EE", + X"FF",X"CB",X"57",X"28",X"4B",X"21",X"FC",X"73",X"CD",X"D5",X"77",X"DB",X"03",X"EE",X"FF",X"0F", + X"0F",X"0F",X"0F",X"11",X"00",X"00",X"21",X"90",X"73",X"01",X"00",X"05",X"E6",X"0F",X"20",X"0A", + X"19",X"5E",X"23",X"66",X"6B",X"CD",X"D5",X"77",X"18",X"25",X"0C",X"1C",X"1C",X"B9",X"20",X"02", + X"18",X"EE",X"10",X"F6",X"01",X"08",X"05",X"1C",X"1C",X"B9",X"20",X"02",X"18",X"09",X"0C",X"10", + X"F6",X"FE",X"0F",X"20",X"0A",X"1C",X"1C",X"19",X"5E",X"23",X"66",X"6B",X"CD",X"D5",X"77",X"C9", + X"21",X"2A",X"74",X"CD",X"D5",X"77",X"DB",X"03",X"EE",X"FF",X"21",X"A8",X"73",X"11",X"00",X"00", + X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"28",X"11",X"1C",X"1C",X"FE",X"08",X"28",X"0B",X"1C",X"1C", + X"FE",X"0A",X"28",X"05",X"1C",X"1C",X"FE",X"0F",X"C0",X"19",X"5E",X"23",X"66",X"6B",X"CD",X"D5", + X"77",X"C9",X"DB",X"04",X"2F",X"0F",X"0F",X"38",X"13",X"AF",X"87",X"21",X"AE",X"74",X"85",X"6F", + X"3E",X"00",X"8C",X"67",X"5E",X"23",X"66",X"6B",X"CD",X"D5",X"77",X"C9",X"3E",X"01",X"18",X"EA", + X"D2",X"74",X"E3",X"74",X"F5",X"74",X"07",X"75",X"19",X"75",X"2B",X"75",X"3D",X"75",X"4F",X"75", + X"61",X"75",X"73",X"75",X"85",X"75",X"97",X"75",X"A8",X"75",X"CB",X"75",X"EE",X"75",X"11",X"76", + X"DB",X"03",X"EE",X"FF",X"47",X"E6",X"03",X"28",X"25",X"FE",X"01",X"28",X"26",X"FE",X"02",X"28", + X"27",X"21",X"47",X"74",X"CD",X"D5",X"77",X"78",X"0F",X"0F",X"47",X"E6",X"03",X"28",X"1E",X"FE", + X"01",X"28",X"1F",X"FE",X"02",X"28",X"20",X"21",X"52",X"74",X"CD",X"D5",X"77",X"C9",X"21",X"57", + X"74",X"18",X"E1",X"21",X"67",X"74",X"18",X"DC",X"21",X"77",X"74",X"18",X"D7",X"21",X"62",X"74", + X"18",X"E8",X"21",X"72",X"74",X"18",X"E3",X"21",X"82",X"74",X"18",X"DE",X"0B",X"92",X"D3",X"43", + X"4F",X"49",X"4E",X"20",X"4D",X"4F",X"44",X"45",X"20",X"20",X"0B",X"12",X"D4",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"0E",X"30",X"D4",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"00",X"0B",X"92",X"D3",X"43",X"4F",X"49", + X"4E",X"20",X"4D",X"4F",X"44",X"45",X"20",X"41",X"0B",X"12",X"D4",X"43",X"4F",X"49",X"4E",X"20", + X"4D",X"4F",X"44",X"45",X"20",X"42",X"00",X"07",X"30",X"D6",X"31",X"35",X"35",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"35",X"00",X"07",X"30",X"D6",X"31",X"38",X"30",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"33",X"00",X"07",X"30",X"D6",X"31",X"37",X"30",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"32",X"00",X"07",X"30",X"D6",X"31",X"36",X"30",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"34",X"00",X"09",X"12",X"D5",X"42",X"4F",X"44",X"59",X"20",X"54", + X"59",X"50",X"45",X"09",X"12",X"D6",X"50",X"4C",X"41",X"59",X"20",X"54",X"49",X"4D",X"45",X"0B", + X"92",X"D6",X"43",X"4F",X"4D",X"4D",X"41",X"4E",X"44",X"4F",X"4D",X"45",X"4E",X"00",X"B2",X"74", + X"C2",X"74",X"0C",X"30",X"D5",X"54",X"41",X"42",X"4C",X"45",X"20",X"54",X"59",X"50",X"45",X"20", + X"20",X"00",X"0C",X"30",X"D5",X"55",X"50",X"52",X"49",X"47",X"48",X"54",X"20",X"54",X"59",X"50", + X"45",X"00",X"0D",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"31",X"20",X"50",X"4C", + X"41",X"59",X"00",X"0E",X"B0",X"D3",X"32",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20", + X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"33",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20", + X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"34",X"20",X"43",X"4F",X"49",X"4E", + X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"35",X"20",X"43",X"4F", + X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"36",X"20", + X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3", + X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E", + X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"33",X"20",X"50",X"4C",X"41",X"59",X"53", + X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"34",X"20",X"50",X"4C",X"41", + X"59",X"53",X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"35",X"20",X"50", + X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"36", + X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0",X"D3",X"20",X"20",X"20",X"20",X"46",X"52", + X"45",X"45",X"20",X"20",X"20",X"20",X"20",X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49", + X"4E",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"20",X"0E",X"30",X"D4",X"31",X"20",X"43",X"4F", + X"49",X"4E",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0",X"D3",X"32",X"20", + X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"0E",X"30",X"D4",X"31", + X"20",X"43",X"4F",X"49",X"4E",X"20",X"33",X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0", + X"D3",X"33",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"0E", + X"30",X"D4",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"35",X"20",X"50",X"4C",X"41",X"59",X"53", + X"00",X"0E",X"B0",X"D3",X"20",X"20",X"20",X"20",X"46",X"52",X"45",X"45",X"20",X"20",X"20",X"20", + X"20",X"0E",X"30",X"D4",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"36",X"20",X"50",X"4C",X"41", + X"59",X"53",X"00",X"EE",X"FF",X"06",X"08",X"23",X"36",X"04",X"2B",X"0F",X"38",X"04",X"36",X"30", + X"18",X"02",X"36",X"31",X"23",X"23",X"23",X"23",X"10",X"ED",X"C9",X"CD",X"B6",X"77",X"21",X"00", + X"D0",X"11",X"05",X"08",X"01",X"00",X"08",X"72",X"23",X"73",X"23",X"0B",X"78",X"B1",X"20",X"F7", + X"21",X"00",X"E1",X"11",X"01",X"E1",X"36",X"00",X"01",X"00",X"01",X"ED",X"B0",X"FB",X"21",X"A3", + X"76",X"11",X"00",X"E1",X"01",X"20",X"00",X"ED",X"B0",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD", + X"95",X"79",X"DB",X"00",X"2F",X"0F",X"0F",X"30",X"F0",X"21",X"00",X"E1",X"11",X"01",X"E1",X"36", + X"00",X"01",X"00",X"01",X"ED",X"B0",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"F3", + X"C3",X"33",X"70",X"13",X"00",X"C0",X"00",X"10",X"80",X"A0",X"00",X"13",X"00",X"40",X"01",X"10", + X"00",X"A0",X"00",X"13",X"00",X"C0",X"00",X"10",X"C0",X"60",X"01",X"13",X"00",X"40",X"01",X"10", + X"40",X"60",X"01",X"00",X"03",X"00",X"80",X"00",X"10",X"00",X"80",X"00",X"03",X"00",X"80",X"00", + X"10",X"01",X"80",X"00",X"03",X"01",X"80",X"00",X"10",X"00",X"80",X"00",X"03",X"01",X"80",X"00", + X"10",X"01",X"80",X"11",X"00",X"C0",X"01",X"00",X"01",X"ED",X"B0",X"C9",X"21",X"00",X"E1",X"11", + X"01",X"E1",X"36",X"00",X"01",X"00",X"01",X"ED",X"B0",X"AF",X"32",X"06",X"E3",X"67",X"6F",X"22", + X"0D",X"E7",X"CD",X"B6",X"77",X"21",X"DF",X"7A",X"CD",X"D5",X"77",X"FB",X"06",X"08",X"DB",X"00", + X"2F",X"21",X"C0",X"D2",X"CD",X"38",X"77",X"06",X"08",X"DB",X"01",X"2F",X"21",X"C0",X"D4",X"CD", + X"38",X"77",X"06",X"08",X"DB",X"02",X"2F",X"21",X"C0",X"D6",X"CD",X"38",X"77",X"06",X"08",X"21", + X"40",X"D1",X"7B",X"CD",X"38",X"77",X"18",X"14",X"23",X"36",X"04",X"2B",X"0F",X"38",X"04",X"36", + X"30",X"18",X"02",X"36",X"31",X"23",X"23",X"23",X"23",X"10",X"ED",X"C9",X"CD",X"95",X"77",X"3A", + X"0D",X"E7",X"21",X"C0",X"D7",X"CD",X"78",X"77",X"3A",X"0E",X"E7",X"CD",X"78",X"77",X"CD",X"9E", + X"79",X"CD",X"9E",X"79",X"DB",X"01",X"2F",X"0F",X"0F",X"38",X"02",X"18",X"9E",X"DB",X"00",X"2F", + X"0F",X"0F",X"30",X"97",X"F3",X"C3",X"33",X"70",X"23",X"36",X"04",X"2B",X"F5",X"0F",X"0F",X"0F", + X"0F",X"E6",X"0F",X"C6",X"30",X"77",X"23",X"23",X"23",X"36",X"04",X"2B",X"F1",X"E6",X"0F",X"C6", + X"30",X"77",X"23",X"23",X"C9",X"21",X"0F",X"E7",X"3A",X"09",X"E0",X"E6",X"C0",X"BE",X"C8",X"32", + X"0F",X"E7",X"3A",X"0E",X"E7",X"C6",X"01",X"27",X"32",X"0E",X"E7",X"D0",X"3A",X"0D",X"E7",X"C6", + X"01",X"27",X"32",X"0D",X"E7",X"C9",X"21",X"00",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D", + X"13",X"13",X"CD",X"A7",X"79",X"21",X"01",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D",X"13", + X"13",X"CD",X"A7",X"79",X"C9",X"7E",X"FE",X"00",X"C8",X"CD",X"DE",X"77",X"18",X"F7",X"4E",X"06", + X"00",X"23",X"5E",X"23",X"56",X"23",X"7E",X"12",X"3E",X"04",X"13",X"12",X"13",X"23",X"0D",X"20", + X"F5",X"C9",X"21",X"00",X"E0",X"0E",X"06",X"AF",X"06",X"00",X"77",X"10",X"FD",X"0D",X"20",X"F8", + X"C9",X"0E",X"00",X"06",X"00",X"10",X"FE",X"0D",X"20",X"F9",X"3D",X"20",X"F4",X"C9",X"C5",X"E5", + X"77",X"23",X"10",X"FC",X"E1",X"0E",X"20",X"09",X"C1",X"0D",X"20",X"F2",X"C9",X"CD",X"B6",X"77", + X"CD",X"36",X"78",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F", + X"0F",X"DA",X"33",X"70",X"18",X"ED",X"21",X"00",X"D0",X"01",X"FF",X"0F",X"3E",X"86",X"77",X"23", + X"0B",X"78",X"B1",X"20",X"F7",X"21",X"0C",X"D0",X"06",X"10",X"E5",X"C5",X"CD",X"71",X"78",X"C1", + X"E1",X"11",X"00",X"01",X"19",X"10",X"F3",X"06",X"40",X"21",X"BF",X"D7",X"7E",X"B0",X"77",X"23", + X"23",X"7E",X"B0",X"77",X"11",X"80",X"00",X"19",X"7E",X"B0",X"77",X"2B",X"2B",X"7E",X"B0",X"77", + X"C9",X"06",X"19",X"CD",X"7D",X"78",X"23",X"23",X"23",X"23",X"10",X"F7",X"C9",X"E5",X"3E",X"03", + X"77",X"23",X"23",X"3E",X"02",X"77",X"E1",X"E5",X"11",X"80",X"00",X"19",X"3E",X"01",X"77",X"23", + X"23",X"3E",X"00",X"77",X"E1",X"C9",X"F3",X"CD",X"B6",X"77",X"21",X"B3",X"79",X"CD",X"D5",X"77", + X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02",X"18", + X"EC",X"11",X"01",X"46",X"CD",X"85",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79", + X"DB",X"00",X"2F",X"0F",X"38",X"02",X"18",X"E9",X"13",X"CD",X"85",X"79",X"CD",X"95",X"79",X"CD", + X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02",X"18",X"EF",X"13",X"CD",X"85", + X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02", + X"18",X"EC",X"3E",X"10",X"21",X"10",X"D0",X"0E",X"03",X"11",X"01",X"46",X"06",X"10",X"73",X"23", + X"72",X"23",X"10",X"FA",X"13",X"0D",X"20",X"F4",X"11",X"20",X"00",X"19",X"3D",X"20",X"E8",X"3E", + X"03",X"11",X"01",X"52",X"0E",X"04",X"06",X"30",X"73",X"23",X"72",X"23",X"10",X"FA",X"D5",X"11", + X"20",X"00",X"19",X"D1",X"0D",X"20",X"EF",X"13",X"3D",X"20",X"E9",X"11",X"01",X"49",X"0E",X"04", + X"06",X"30",X"73",X"23",X"72",X"23",X"10",X"FA",X"D5",X"11",X"20",X"00",X"19",X"D1",X"0D",X"20", + X"EF",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02", + X"18",X"A0",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"3E",X"01",X"D3",X"01",X"CD", + X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"30",X"F1",X"AF",X"D3", + X"01",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"0F",X"DA", + X"33",X"70",X"C3",X"71",X"79",X"21",X"00",X"D0",X"01",X"00",X"08",X"73",X"23",X"72",X"23",X"0B", + X"78",X"B1",X"20",X"F7",X"C9",X"01",X"00",X"40",X"0B",X"78",X"B1",X"20",X"FB",X"C9",X"01",X"00", + X"90",X"0B",X"78",X"B1",X"20",X"FB",X"C9",X"7E",X"12",X"23",X"23",X"13",X"13",X"0B",X"78",X"B1", + X"20",X"F5",X"C9",X"0E",X"A0",X"D1",X"41",X"20",X"42",X"20",X"43",X"20",X"44",X"20",X"45",X"20", + X"46",X"20",X"47",X"20",X"0E",X"20",X"D2",X"48",X"20",X"49",X"20",X"4A",X"20",X"4B",X"20",X"4C", + X"20",X"4D",X"20",X"4E",X"20",X"0E",X"A0",X"D2",X"4F",X"20",X"50",X"20",X"51",X"20",X"52",X"20", + X"53",X"20",X"54",X"20",X"55",X"20",X"0E",X"20",X"D3",X"56",X"20",X"57",X"20",X"58",X"20",X"59", + X"20",X"5A",X"20",X"20",X"20",X"20",X"20",X"14",X"A0",X"D3",X"31",X"20",X"32",X"20",X"33",X"20", + X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"20",X"38",X"20",X"39",X"20",X"30",X"20",X"00",X"08", + X"A0",X"D0",X"52",X"41",X"4D",X"20",X"20",X"20",X"4F",X"4B",X"00",X"10",X"A0",X"D0",X"52",X"41", + X"4D",X"20",X"20",X"20",X"4E",X"47",X"20",X"20",X"28",X"20",X"20",X"20",X"20",X"29",X"00",X"52", + X"4F",X"4D",X"20",X"20",X"20",X"4F",X"4B",X"00",X"52",X"4F",X"4D",X"20",X"20",X"20",X"4E",X"47", + X"00",X"16",X"A0",X"D0",X"44",X"49",X"50",X"20",X"53",X"57",X"20",X"31",X"20",X"32",X"20",X"33", + X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"20",X"38",X"03",X"A0",X"D1",X"53",X"57",X"31", + X"03",X"A0",X"D2",X"53",X"57",X"32",X"00",X"01",X"98",X"D2",X"20",X"1B",X"C4",X"D2",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"00",X"0C",X"A0",X"D0",X"49",X"4E",X"54", + X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"4F",X"4B",X"00",X"A0",X"7A",X"B5",X"7A",X"CA",X"7A", + X"11",X"A0",X"D0",X"43",X"48",X"45",X"43",X"4B",X"20",X"49",X"4E",X"54",X"45",X"52",X"46",X"41", + X"43",X"45",X"20",X"31",X"00",X"11",X"A0",X"D0",X"43",X"48",X"45",X"43",X"4B",X"20",X"49",X"4E", + X"54",X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"32",X"00",X"11",X"A0",X"D0",X"43",X"48",X"45", + X"43",X"4B",X"20",X"49",X"4E",X"54",X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"33",X"00",X"0A", + X"20",X"D1",X"57",X"52",X"49",X"54",X"45",X"20",X"44",X"41",X"54",X"41",X"0C",X"20",X"D2",X"49", + X"4E",X"54",X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"31",X"20",X"0C",X"A0",X"D2",X"20",X"20", + X"20",X"52",X"45",X"41",X"44",X"20",X"44",X"41",X"54",X"41",X"0C",X"20",X"D4",X"49",X"4E",X"54", + X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"32",X"20",X"0C",X"A0",X"D4",X"20",X"20",X"20",X"52", + X"45",X"41",X"44",X"20",X"44",X"41",X"54",X"41",X"0C",X"20",X"D6",X"49",X"4E",X"54",X"45",X"52", + X"46",X"41",X"43",X"45",X"20",X"33",X"20",X"0C",X"A0",X"D6",X"20",X"20",X"20",X"52",X"45",X"41", + X"44",X"20",X"44",X"41",X"54",X"41",X"0F",X"40",X"D2",X"30",X"20",X"31",X"20",X"32",X"20",X"33", + X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"0F",X"40",X"D4",X"30",X"20",X"31",X"20",X"32", + X"20",X"33",X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"0F",X"40",X"D6",X"30",X"20",X"31", + X"20",X"32",X"20",X"33",X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"0F",X"40",X"D1",X"30", + X"20",X"31",X"20",X"32",X"20",X"33",X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"06",X"A0", + X"D7",X"54",X"49",X"4D",X"49",X"4E",X"47",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"B0",X"72", + X"EC",X"76",X"5E",X"7C",X"4B",X"76",X"96",X"78",X"1D",X"78",X"0D",X"20",X"D1",X"30",X"31",X"20", + X"44",X"49",X"50",X"20",X"53",X"57",X"49",X"54",X"43",X"48",X"0B",X"A0",X"D1",X"30",X"32",X"20", + X"49",X"2F",X"4F",X"20",X"50",X"4F",X"52",X"54",X"08",X"20",X"D2",X"30",X"33",X"20",X"53",X"4F", + X"55",X"4E",X"44",X"0C",X"A0",X"D2",X"30",X"34",X"20",X"43",X"48",X"41",X"52",X"41",X"43",X"54", + X"45",X"52",X"08",X"20",X"D3",X"30",X"35",X"20",X"43",X"4F",X"4C",X"4F",X"52",X"16",X"A0",X"D3", + X"30",X"36",X"20",X"43",X"52",X"4F",X"53",X"53",X"20",X"48",X"41",X"54",X"43",X"48",X"20",X"50", + X"41",X"54",X"54",X"45",X"52",X"4E",X"00",X"7C",X"B8",X"C0",X"7D",X"B9",X"C9",X"21",X"00",X"80", + X"01",X"00",X"08",X"AF",X"77",X"23",X"0B",X"78",X"B1",X"20",X"F8",X"C9",X"72",X"23",X"0B",X"78", + X"B1",X"20",X"F9",X"C9",X"72",X"23",X"23",X"0B",X"78",X"B1",X"20",X"F8",X"C9",X"08",X"D9",X"C3", + X"39",X"7C",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"21",X"09",X"E0",X"34",X"CD",X"52",X"7C", + X"3A",X"02",X"E3",X"0F",X"38",X"07",X"21",X"06",X"E3",X"3E",X"80",X"86",X"77",X"C9",X"D9",X"08", + X"FB",X"C9",X"21",X"00",X"E1",X"11",X"00",X"C0",X"01",X"00",X"01",X"ED",X"B0",X"C9",X"CD",X"B6", + X"77",X"21",X"B9",X"7D",X"CD",X"D5",X"77",X"2A",X"9C",X"7D",X"22",X"06",X"E7",X"DD",X"21",X"08", + X"E7",X"FD",X"21",X"A0",X"7D",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"8B", + X"7C",X"DB",X"00",X"2F",X"0F",X"0F",X"DA",X"33",X"70",X"18",X"D3",X"FD",X"22",X"0B",X"E7",X"3E", + X"01",X"32",X"05",X"E7",X"06",X"06",X"CD",X"50",X"7D",X"CD",X"E5",X"7C",X"CD",X"CF",X"7C",X"01", + X"00",X"00",X"ED",X"43",X"13",X"E3",X"DB",X"00",X"2F",X"0F",X"0F",X"30",X"04",X"C1",X"C3",X"33", + X"70",X"DB",X"00",X"2F",X"0F",X"DC",X"CF",X"7C",X"DB",X"01",X"2F",X"0F",X"38",X"34",X"0F",X"38", + X"5D",X"ED",X"4B",X"13",X"E3",X"0B",X"78",X"B1",X"20",X"D8",X"CD",X"E5",X"7C",X"18",X"4F",X"3A", + X"05",X"E7",X"4F",X"06",X"00",X"FD",X"2A",X"0B",X"E7",X"FD",X"09",X"FD",X"7E",X"00",X"D3",X"00", + X"F6",X"80",X"D3",X"00",X"C9",X"3E",X"00",X"D3",X"00",X"3E",X"80",X"D3",X"00",X"06",X"00",X"10", + X"FE",X"C9",X"CD",X"E5",X"7C",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"3A",X"07", + X"E7",X"5F",X"3A",X"05",X"E7",X"BB",X"C8",X"06",X"04",X"CD",X"50",X"7D",X"3D",X"32",X"05",X"E7", + X"06",X"06",X"CD",X"50",X"7D",X"CD",X"CF",X"7C",X"01",X"00",X"00",X"C3",X"A2",X"7C",X"CD",X"E5", + X"7C",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"3A",X"06",X"E7",X"5F",X"3A",X"05", + X"E7",X"BB",X"C8",X"06",X"04",X"CD",X"50",X"7D",X"3C",X"32",X"05",X"E7",X"06",X"06",X"CD",X"50", + X"7D",X"CD",X"CF",X"7C",X"01",X"00",X"00",X"C3",X"A2",X"7C",X"4F",X"D6",X"03",X"3C",X"18",X"17", + X"4F",X"C5",X"21",X"20",X"D1",X"11",X"80",X"00",X"47",X"05",X"28",X"03",X"19",X"18",X"FA",X"C1", + X"23",X"70",X"23",X"23",X"70",X"79",X"C9",X"C5",X"21",X"20",X"D1",X"11",X"80",X"00",X"47",X"FE", + X"01",X"28",X"04",X"05",X"19",X"10",X"FD",X"C1",X"23",X"70",X"23",X"23",X"70",X"79",X"C9",X"C5", + X"0E",X"00",X"06",X"00",X"10",X"FE",X"F5",X"3A",X"00",X"D0",X"CB",X"4F",X"28",X"09",X"F1",X"0D", + X"20",X"F0",X"3D",X"20",X"EB",X"C1",X"C9",X"F1",X"C1",X"06",X"01",X"C9",X"15",X"01",X"00",X"00", + X"00",X"01",X"02",X"03",X"04",X"05",X"06",X"1C",X"11",X"12",X"13",X"14",X"15",X"20",X"21",X"22", + X"23",X"24",X"25",X"26",X"27",X"00",X"00",X"00",X"00",X"0B",X"A0",X"D0",X"53",X"20",X"4F",X"20", + X"55",X"20",X"4E",X"20",X"44",X"20",X"53",X"0F",X"20",X"D1",X"30",X"31",X"20",X"48",X"4F",X"4C", + X"45",X"20",X"44",X"49",X"47",X"47",X"49",X"4E",X"47",X"15",X"A0",X"D1",X"30",X"32",X"20",X"50", + X"49",X"43",X"4B",X"49",X"4E",X"47",X"20",X"55",X"50",X"20",X"46",X"4F",X"52",X"54",X"49",X"4E", + X"45",X"0F",X"20",X"D2",X"30",X"33",X"20",X"44",X"4F",X"4F",X"52",X"20",X"4F",X"50",X"45",X"4E", + X"49",X"4E",X"47",X"13",X"A0",X"D2",X"30",X"34",X"20",X"42",X"55",X"52",X"49",X"45",X"44",X"20", + X"49",X"4E",X"54",X"4F",X"20",X"48",X"4F",X"4C",X"45",X"14",X"20",X"D3",X"30",X"35",X"20",X"46", + X"41",X"4C",X"4C",X"49",X"4E",X"47",X"20",X"49",X"4E",X"54",X"4F",X"20",X"48",X"4F",X"4C",X"45", + X"10",X"A0",X"D3",X"30",X"36",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"20",X"4B",X"49",X"4C", + X"4C",X"45",X"44",X"12",X"20",X"D4",X"30",X"37",X"20",X"54",X"49",X"4D",X"45",X"20",X"55",X"50", + X"20",X"57",X"41",X"52",X"4E",X"49",X"4E",X"47",X"16",X"A0",X"D4",X"30",X"38",X"20",X"54",X"49", + X"4D",X"45",X"20",X"53",X"43",X"4F",X"52",X"45",X"20",X"43",X"4F",X"55",X"4E",X"54",X"49",X"4E", + X"47",X"11",X"20",X"D5",X"30",X"39",X"20",X"43",X"4F",X"49",X"4E",X"20",X"49",X"4E",X"53",X"45", + X"52",X"54",X"49",X"4E",X"47",X"0F",X"A0",X"D5",X"31",X"30",X"20",X"5A",X"4F",X"4F",X"4D",X"20", + X"49",X"4E",X"20",X"20",X"20",X"20",X"20",X"0F",X"20",X"D6",X"31",X"31",X"20",X"5A",X"4F",X"4F", + X"4D",X"20",X"4F",X"55",X"54",X"20",X"20",X"20",X"20",X"16",X"A0",X"D6",X"31",X"32",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"20",X"46",X"41",X"4C",X"4C",X"49",X"4E",X"47",X"20",X"20",X"20", + X"20",X"20",X"0D",X"20",X"D7",X"31",X"33",X"20",X"47",X"41",X"4D",X"45",X"20",X"53",X"54",X"41", + X"52",X"54",X"0C",X"A0",X"D7",X"31",X"34",X"20",X"47",X"41",X"4D",X"45",X"20",X"4F",X"56",X"45", + X"52",X"1B",X"20",X"D8",X"31",X"35",X"20",X"42",X"47",X"4D",X"20",X"28",X"43",X"4F",X"4E",X"54", + X"49",X"4E",X"55",X"49",X"54",X"59",X"20",X"44",X"49",X"53",X"50",X"4C",X"41",X"59",X"29",X"0E", + X"A0",X"D8",X"31",X"36",X"20",X"52",X"4F",X"55",X"4E",X"44",X"20",X"43",X"4C",X"45",X"41",X"52", + X"0E",X"20",X"D9",X"31",X"37",X"20",X"42",X"4C",X"4F",X"43",X"4B",X"20",X"43",X"4C",X"45",X"41", + X"52",X"0D",X"A0",X"D9",X"31",X"38",X"20",X"54",X"49",X"4D",X"45",X"20",X"55",X"50",X"20",X"20", + X"20",X"12",X"20",X"DA",X"31",X"39",X"20",X"42",X"47",X"4D",X"20",X"28",X"47",X"41",X"4D",X"45", + X"20",X"50",X"4C",X"41",X"59",X"29",X"12",X"A0",X"DA",X"32",X"30",X"20",X"47",X"41",X"4D",X"45", + X"20",X"43",X"4F",X"4D",X"50",X"4C",X"45",X"54",X"49",X"4E",X"47",X"0C",X"20",X"DB",X"20",X"20", + X"4D",X"55",X"53",X"49",X"43",X"20",X"45",X"4E",X"44",X"20",X"00",X"00",X"00",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7"); +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/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high.vhd new file mode 100644 index 00000000..8c30be36 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high.vhd @@ -0,0 +1,24 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity rom_sprite_high is +port ( + clk : in std_logic; + addr : in std_logic_vector(4 downto 0); + data : out std_logic_vector(3 downto 0) +); +end entity; + +architecture prom of rom_sprite_high is + type rom is array(0 to 31) of std_logic_vector(3 downto 0); + signal rom_data: rom := ( + "0001","0001","0001","0001","0000","0000","0000","0000","0001","0001","0001","0001","0000","0000","0000","0000", + "0001","0001","0001","0001","0000","0000","0000","0000","0001","0001","0001","0001","0000","0000","0000","0000"); +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/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high_new.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high_new.vhd new file mode 100644 index 00000000..bf9564e1 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high_new.vhd @@ -0,0 +1,24 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity rom_sprite_high_new 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 rom_sprite_high_new is + type rom is array(0 to 31) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00", + X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd.bin new file mode 100644 index 0000000000000000000000000000000000000000..e483d90d58718fbd8906218ad44752532abd0822 GIT binary patch literal 16384 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

>z;@#TPHF^;j1yc3VR9m8QN}QbVS#O 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4a.hex new file mode 100644 index 00000000..0e16cf8b --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4a.hex @@ -0,0 +1,513 @@ +:10000000C5D5E56F3AA6E5B7C23C617CCB3FCB12C4 +:100010006722D6E5CDD5627EFE0120083AD8E547B5 +:100020000E1F1811FE0220083AD9E5470E1D1805CB +:10003000CD55600E052AD6E57CD5CD002DD1CB421D +:1000400028022C2C3A74E5B7200406040E00702C0C +:1000500071E1D1C1C9FE073801AFFE0338023D3D51 +:10006000473AD6E5B7C83AD7E5B7280C2B7EFE0746 +:100070003801AFFE0238013D4F2AD6E52D7CC5CDB3 +:10008000D562C17EFE043801AFFE0238013D5F3A01 +:10009000D7E5B7280C2B7EFE043801AFFE023801ED +:1000A0003D6FCB42280D788780834F060021C760C3 +:1000B0000946C9788780835F8783858787814F0654 +:1000C0000021D0600946C9000300141514181B183C +:1000D000000200000303030300020000010301010A +:1000E00003030303010301010002000003030303F0 +:1000F000000200001012101013131313101210102E +:1001000011131111131313131113111110121010D5 +:100110001313131310121010181A18181B1B1B1B83 +:10012000181A1818191B19191B1B1B1B191B191935 +:10013000181A18181B1B1B1B181A18187CCB3FCB3E +:100140001267E5CDD5627EE1CB4220040F0F0F0F81 +:10015000E60F4F427CCD002D2CCB4028022C2C7E6C +:10016000B177E6C0200A2D7EFE0420023600180C6E +:10017000FE4020082D7EFEFD200236FBE1D1C1C9E4 +:100180002100E0545D133600016805EDB0ED5FCD50 +:10019000EC313270E5FD2158E43A8EE5FE19380461 +:1001A000D61818F832B4E66F260029EB210034196E +:1001B0005E23561A32AFE613AF327AE51ACB7F20B0 +:1001C00007FE1FC8327AE5131ACB7F28EFCB7728BA +:1001D000031318F43E013279E51AE61F3278E5324E +:1001E00077E51ACB6F28093E023279E52177E534AD +:1001F000AF3275E5131AE6C0FE8020101AE61F32F2 +:1002000077E52178E5963C3279E518E81AE6C0FEF4 +:10021000C020B51ACB6F2006E61F3275E5131AE62B +:10022000E0FEE020151AE61F3276E5133A76E52166 +:1002300075E5BE38D7CD3F6218F2CD3F6218CD3A92 +:100240007AE5FE04287FFE0B3004FE073042FE06EE +:10025000281D3A79E5B728782177E54E47C53A75E4 +:10026000E569CDD562C13A7AE5770D10F0186121C4 +:10027000FDE47EFE043059344787804F0600217B21 +:10028000E5093A75E57723ED4B77E5702371184062 +:10029000FE08200ECD0B63011800FD0921E9E434AE +:1002A0001821FE09200DFDE5FD2140E4CD0B63FD85 +:1002B000E11810FE072005CD5A631807FE0A200337 +:1002C000CD7463180B3A75E52A78E5CDD56236040E +:1002D0002175E534C92600292929444D29094F06ED +:1002E00000090100E009C91100E43AFCE4B7280D57 +:1002F000471A6F131A67137DCDAA2F10F4C900088F +:100300000D1018000808090B0B0A08FD360A00FE3C +:10031000092008AF320CE53D320BE53E01FD770FB9 +:10032000FD77103A75E5FD7701FD7704878787FD36 +:1003300077073A78E5FD7703FD7705878787FD77AF +:10034000063E06FD7709AFFD7700FD7702FD770ACF +:10035000FD770CFD770DFD770EC921FCE47EFE20B4 +:10036000D034874F06002100E4093A75E577233A37 +:1003700078E577C92170E57EB7200C3A78E53272CE +:10038000E53A75E53271E535C91FCB113AFDE43226 +:1003900069E5DD217BE52169E57EB7C835DD7E00B5 +:1003A000DD6601878787CB3C1F6F1110D019DD7E7A +:1003B00002DD96013C47CB41280836172C2C361716 +:1003C000180636102C2C36142D2D1180001910E62D +:1003D000110300DD1918BF3ACDE54F87816F260064 +:1003E0002929292922F6E42130640600097E32F801 +:1003F000E4213964097E32F5E4214264097E32FB4E +:10040000E479E6073C4F213064097E326EE52142F3 +:1004100064097E326FE53A8EE5CDEC314F0600215E +:100420004B64097E32D8E5214E64097E32D9E5C994 +:100430000004080E0A070F0500000001000100007B +:100440000100000101010001010001090A080D0E6F +:100450000CAF3289E57EB7C83D202423EB1A6F1319 +:100460001A13D5CB3FCB105D57D5CD002DD1CB4046 +:1004700028022C2CEB7CCDD562E5DDE1E118D63DE0 +:100480002008237E3288E52318CB06013D20142363 +:100490004623CB78280D780630E67FFE0238043DEF +:1004A0003289E53A88E5E60FCB4B280E4FDD7E001A +:1004B000E6F0B1DD7700DD23180E0F0F0F0F4FDDD3 +:1004C0007E00E60FB1DD77007E12133A88E5E6F094 +:1004D00012137BFE7020021E90FEF020031E1014EB +:1004E00010C13A89E5B728083D3289E5063018B3CE +:1004F00023C35564C7C7C7C7C7C7C7C7C7C7C7C709 +:100500002136D5111F68CD2D303E24CD3E30DB0481 +:10051000CB57282DDB030F0FE63CC61021FA655F91 +:100520001600195E235623D57E23666F11B0D6EBD5 +:10053000CD2D303E24CD3E30D121B0D7CD2D301839 +:1005400039DB03070707F5E6065F160021FA651990 +:100550005E235623F1D50707E606C6085F1600217D +:10056000FA65197E23666F11ACD6EBCD2D303E2493 +:10057000CD3E30D121ACD7CD2D300606C52136D5A4 +:10058000112D68CD2D303E0CCD3E302136D5111FBA +:1005900068CD2D303E18CD3E30C110E0C93A57E449 +:1005A000FE01200B2128DA113B68CD2D30184A3A84 +:1005B00057E4FE0220160EC6213CDB115568CD2DF6 +:1005C0003021BCDB115A68CD2D30182D3A57E4FE8E +:1005D00003200B21B2DC115F68CD2D30181B3A5778 +:1005E000E4FE0420140EC621B6DD116F68CD2D3057 +:1005F0002136DE117A68CD2D30C9C667DC67F26717 +:1006000008681E6887679C67B1671E681E681E6859 +:100610001E681E681E681E6828671E683B671E6885 +:100620004E671E6861671E6874671E681E681E68D4 +:100630001E685C664A6681666F66A6669466CB66CF +:10064000B966F066DE6615670367203620434F49BA +:100650004E53203120504C415945520031322043F5 +:100660004F494E53203220504C415945525300209F +:100670003520434F494E53203120504C415945526B +:1006800000313020434F494E53203220504C4159C5 +:1006900045525300203420434F494E5320312050BF +:1006A0004C4159455200203820434F494E53203287 +:1006B00020504C415945525300203320434F494E5E +:1006C00053203120504C4159455200203620434F91 +:1006D000494E53203220504C41594552530020324C +:1006E00020434F494E53203120504C415945520030 +:1006F000203420434F494E53203220504C4159451D +:10070000525300203120434F494E20203120504C7D +:100710004159455200203220434F494E5320322048 +:10072000504C415945525300203120434F494E20EF +:10073000203620504C415945525300203120434F20 +:10074000494E20203520504C41594552530020310C +:1007500020434F494E20203420504C41594552539C +:1007600000203120434F494E20203320504C415926 +:1007700045525300203120434F494E202032205013 +:100780004C41594552530041202D203320434F49BD +:100790004E53203120504C415945520041202D20CC +:1007A0003220434F494E53203120504C415945523D +:1007B0000041202D203120434F494E202031205030 +:1007C0004C415945520042202D203120434F494E83 +:1007D00020203620504C41594552530042202D20B4 +:1007E0003120434F494E20203520504C415945522D +:1007F000530042202D203120434F494E20203320EA +:10080000504C41594552530042202D203120434F36 +:10081000494E20203220504C41594552530000028D +:10082000494E534552542020434F494E0002202048 +:100830002020202020202020202000064031393890 +:10084000342020204952454D20434F52504F5241B1 +:1008500054494F4E00808284860081838587000240 +:100860004C4943454E534544202046524F4D006865 +:100870006A6C6E70727476787A00696B6D6F7173E2 +:100880007577797B00CD5E5F3EFF32D1E5CD286D77 +:100890003EA8CD3E303E0132A9E5CD5E5FC3CF25F7 +:1008A0003100E82110D03600545D13015715EDB02A +:1008B000AF32A7E5329DE5326AE5FB3E5032B5E541 +:1008C00021B5E57EFE14380B2136D5119169CD2D69 +:1008D000301812B7200236282126D53600545D1371 +:1008E000013500EDB011A0693AB2E5FE02380311FE +:1008F000B2692134D7CD2D30CD7F6921AAE57EE6BE +:100900000AFE0A200E3AB2E53D2732B2E5AF32B711 +:10091000E5181B7EE605FE05C2C0683AB2E5FE0298 +:10092000DAC068D6022732B2E53E0132B7E5AF320F +:10093000B9E532B8E53290E53296E53C32B2E6CB25 +:10094000412006328EE53294E53AE0E5328FE53219 +:1009500095E52100002291E52292E52297E5229873 +:10096000E5218000DB04CB4720022D2D22E3E52189 +:1009700010D33600545D13017F09EDB0C30F5D2124 +:1009800042DC11C669CD2D300E0211B2E5CD5F30CB +:10099000C90450555348202020425554544F4E000E +:1009A000044F4E4C59202002312004504C415945EF +:1009B0005200023120044F52200232202004504CB9 +:1009C00041594552530004435245444954200006BE +:1009D0003153542020424C4F434B002130D3118FD0 +:1009E0006ACD2D303E22CD42313E0A3288E53E3876 +:1009F00032B6E53E5032B5E521B6E57EB720093680 +:100A0000382188E535CA896A21B5E57EFE14381C8F +:100A10003AB2E5B7200B2124D511A16ACD2D3018AB +:100A2000092124D511C66ACD2D301812B7200236FF +:100A3000272124D53600545D13013500EDB0CD7F5C +:100A400069213AD911BE6ACD2D300E063A88E53DAE +:100A5000CD6A3021AAE57EE60AFE0A28077EE60571 +:100A6000FE0520223AB2E5B7CAF869D6012732B2AC +:100A7000E5AF3290E53AE0E5328FE52100002291C2 +:100A8000E52292E51803C3F8693E00CD4231C9035F +:100A9000544F20434F4E54494E55452047414D45F4 +:100AA0000004494E5345525420434F494E20414E75 +:100AB00044205055534820425554544F4E0003543F +:100AC000494D452020000420202020205055534827 +:100AD00020535441525420425554544F4E2020200C +:100AE0002020003E13CD4231CD5E5F3A90E5FE02FC +:100AF0002026AF32B2E6CDA86BCDDB693E0132B223 +:100B0000E63A90E5FE0020102110D33600545D1324 +:100B1000017F09EDB0C30F5D3AB7E5FE0028073A43 +:100B200096E5FE02202E3A90E5FE0228102110D311 +:100B30003600545D13017F09EDB0C30F5DCD5E5FDC +:100B4000AF32B2E632B9E53E01CD3E303E0132A7CA +:100B5000E5C3CF252110D33600545D13017F09ED85 +:100B6000B021B8E57EB720033418023600CD966B6D +:100B7000DB04CB4F281D21B9E5CB462003341801F7 +:100B800035E601AE21800020022D2D22E3E53E0155 +:100B9000CD3E30C30F5D218EE51194E506061A4E59 +:100BA000777912231310F7C90E00161521E5E50613 +:100BB0000009DD2191E50603DD7E00BE3812280B19 +:100BC000153E0A814FFEC8280718E1DD232310E8EF +:100BD0007A32D1E579B7C8D60A11E5E528084F067B +:100BE0000021EFE5EDB02191E5010300EDB0626B6E +:100BF000360013010500EDB03A8EE512CD286D21C7 +:100C0000B8D211226DCD2D30DD2AD2E5111600DDCE +:100C100019FD2AD4E5FD23FD23FD230E411E033ECD +:100C2000143288E521C2D2C50E063A88E5CD483097 +:100C3000C106043E0E32B6E5AF3289E53AD0E5B7DB +:100C400020035718447AB720133AD0E5FE0A20044F +:100C5000140C1806FE052002150D181F3AD0E5FEEB +:100C6000AA200B147AFE1820030C160C180DFE5542 +:100C70002009157AFEE820030D16F479FE5D38028E +:100C80000E4179FE4130020E5C3ACFE5FE052804A4 +:100C9000FE0A20212189E53AB6E5BE38183C77796D +:100CA000FE5C283DFD7100FD23DD71000E41DD235A +:100CB000DD231D282CCB402805DD71001803DD71D4 +:100CC000003AAAE5B7201A3E01CD3E303AB6E5B764 +:100CD000C23C6C05C2336C2188E5357EFEFFC22420 +:100CE0006CDD3600003E38CD3E303E13CD4231CD76 +:100CF0005E5FC90342455354202006323020200352 +:100D0000504C41594552530002204E4F2E53434FF1 +:100D100052455320204E414D4520524F554E4420C0 +:100D200020000254494D450021B0D111F36CCD2D66 +:100D3000302190D311086DCD2D3011086DCD2D309F +:100D400011E5E521C2DD3AD1E54F061478FE0A200F +:100D5000032192DDB9200722D2E5ED53D4E5C5E5A4 +:100D6000410E02B820020E06FE0A30072C2CCD6A76 +:100D7000301803CD48302C2C79FE0220020E0406D8 +:100D800003CD5F3010FB2C2C2C2C06031A772C7112 +:100D90002C1310F87DC6066F1313131ACD483013A9 +:100DA000E1C12510A7C9010300119AE5217B6EED71 +:100DB000B001C80011E5E521BD6DEDB0C90101002C +:100DC000535445202020010103504F494E2020203C +:100DD00001010880454845202020020110304D497E +:100DE00054202020010121504141542020200101A4 +:100DF0002350474E41202020020128004F41592016 +:100E00002020020138704E52412020200201601043 +:100E10004F4957202020020189904B484F20202025 +:100E200002026600484E49202020020277505341BA +:100E30004F20202002031250554859202020020341 +:100E400033004253412020200303650041495720CD +:100E50002020030370504B414520202004038800CC +:100E60004D4B4D20202003040150454941202020B6 +:100E700003043200524B4720202003048540494997 +:100E80004F20202004F9FFFFFFFFFFFFFFFFFFFFC0 +:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:100EA000FFFFC7C7C7C7C7C7C7C7C7C7C7C7C7C762 +:100EB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C2 +:100EC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B2 +:100ED000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A2 +:100EE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C792 +:100EF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C782 +:100F00003100E8110020CD2D6F227400CD2D6F220D +:100F10007600CD2D6F227800110000CD2D6F22724A +:100F20000011FFFFEBA7ED5222700018FE01002018 +:100F30002100001A856F3E008C67130B78B120F3F7 +:100F4000C9F3ED463100E8DD214E6FC390720E0506 +:100F50003EFFED790CED790CED792100E13600547E +:100F60005D1301FF01EDB0FB0100800B79B020FBA8 +:100F7000F3AF5F16202100E00E10060077233C152A +:100F8000280710F80D20F3180516203C18F47B16DE +:100F9000202100E00E100600BEC29571233C1528EA +:100FA0000710F50D20F018053C162018F47B3CFEC8 +:100FB0000F20BF3100E8CDF277AF3201E016200EEE +:100FC000102100D0060077233C15280710F80D20CB +:100FD000F318053C162018F43A01E016202100D041 +:100FE0000E100600CD3572233C15280710F60D2093 +:100FF000F118053C162018F43A01E03CFE0F20BA27 +:10100000DD21BF70CD9072210F7ADD21BF70CD2818 +:1010100071CDAF70CDF2773E033201E7CD9E793EC0 +:10102000013200E33202E3DB002F0F0F30F93E0301 +:101030003201E7CDB67721AA7BCDD5773A01E70615 +:1010400006CD4A7DCD9579CD9579DB002F0F3014F3 +:101050003A01E7074F0600DD21987BDD09DD6601D7 +:10106000DD6E00E9CD9E79CD9E79CD9579CD9579CE +:10107000DB012F0F38050F381C18C93A01E7FE08AD +:10108000CA44700604CD4A7DC6013201E70606CD8A +:101090004A7DC344703A01E7FE03CA44700604CD9A +:1010A0004A7DC6FF3201E70606CD4A7DC344701172 +:1010B0000000AF3200E70604C5CDC070C110F9C909 +:1010C00021000006201A853001246F1C20F714101F +:1010D000F4D5E53A00E721720087856F5E2356E17B +:1010E0007ABC20097BBD2005212F7A180321387A8C +:1010F0001183E7010900EDB011000121A0D13A00F0 +:10110000E7A72804471910FD2281E73E083280E74F +:101110003A00E7C6303286E72100E7342180E7DD78 +:1011200021BF70CD2871D1C97E23FE0028125E2315 +:1011300056234F7E12133E041223130D20F518E898 +:10114000DDE90F0F0F0FE60FC630FE3A3802C60773 +:10115000FD7700FD360104DDE9E60FC630FE3A38C2 +:1011600002C607FD7700FD360104DDE9F50F0F0F1C +:101170000FE60FC630FE3A3802C607FD7700FD368F +:101180000104F1E60FC630FE3A3802C607FD7702C9 +:10119000FD360304C908D9DD219E71C31572211BD8 +:1011A0007ADD21A871C32871D9FD21B8D0DD21B520 +:1011B000717CC34271FD23FD23DD21C1717CC359C4 +:1011C00071DD21CD717DFD23FD23C34271DD21D968 +:1011D000717DFD23FD23C3597108D9FD23FD23FD36 +:1011E00023FD23DD21EB715FC34271FD23FD23DD70 +:1011F00021F7717BC3597108D9FD23FD23FD23FD20 +:1012000023DD2109727EC34271FD23FD237EDD2192 +:101210002372C359712101D001FF0F3600545DEDD7 +:10122000B0DDE9CD9E79DB000F38060FDAB36F1819 +:10123000F208C39C6FBEC8F5E5DD214072C3907211 +:10124000211B7ADD214A72C32871E1FD21B8D07CCF +:10125000CD6C71FD23FD23FD23FD237DCD6C71F14C +:10126000F5FD23FD23FD23FD23CD6C71FD23FD231F +:10127000FD23FD237ECD6C71CD9E79CD9E79DB0063 +:101280000FDA89720F380418EFF1C9F1C1C3007089 +:101290002101D001FF073600545D1313CDA779213A +:1012A00000D001FF073600545D1313CDA779DDE9A7 +:1012B0003EFFD305CDB67721417ACDD577DB03212B +:1012C000AED1CD3376DB0421AED2CD3376CDE47210 +:1012D000CD7273CD9579CD9579DB00EEFF0F0FDAE6 +:1012E000337018D9218774CDD577CDB073DB04EE78 +:1012F000FFCB57284B21FC73CDD577DB03EEFF0FD7 +:101300000F0F0F110000219073010005E60F200A56 +:10131000195E23666BCDD57718250C1C1CB92002ED +:1013200018EE10F60108051C1CB9200218090C1053 +:10133000F6FE0F200A1C1C195E23666BCDD577C9FB +:10134000212A74CDD577DB03EEFF21A873110000AD +:101350000F0F0F0FE60F28111C1CFE08280B1C1C7A +:10136000FE0A28051C1CFE0FC0195E23666BCDD536 +:1013700077C9DB042F0F0F3813AF8721AE74856F49 +:101380003E008C675E23666BCDD577C93E0118EAB7 +:10139000D274E374F574077519752B753D754F7527 +:1013A0006175737585759775A875CB75EE75117632 +:1013B000DB03EEFF47E6032825FE012826FE022870 +:1013C00027214774CDD577780F0F47E603281EFEF7 +:1013D00001281FFE022820215274CDD577C921573C +:1013E0007418E121677418DC21777418D7216274AE +:1013F00018E821727418E321827418DE0B92D3432B +:101400004F494E204D4F444520200B12D420202020 +:1014100020202020202020200E30D420202020201A +:10142000202020202020202020000B92D3434F4951 +:101430004E204D4F444520410B12D4434F494E207E +:101440004D4F44452042000730D6313535205345B5 +:10145000430001B0D635000730D63138302053452F +:10146000430001B0D633000730D631373020534522 +:10147000430001B0D632000730D631363020534514 +:10148000430001B0D634000912D5424F44592054CC +:101490005950450912D6504C41592054494D450BDD +:1014A00092D6434F4D4D414E444F4D454E00B27480 +:1014B000C2740C30D55441424C45205459504520FB +:1014C00020000C30D55550524947485420545950AB +:1014D00045000DB0D33120434F494E203120504CB0 +:1014E0004159000EB0D33220434F494E5320312092 +:1014F000504C4159000EB0D33320434F494E532036 +:101500003120504C4159000EB0D33420434F494E46 +:1015100053203120504C4159000EB0D33520434F59 +:10152000494E53203120504C4159000EB0D3362043 +:10153000434F494E53203120504C4159000EB0D3F7 +:101540003120434F494E203220504C415953000E18 +:10155000B0D33120434F494E203320504C41595392 +:10156000000EB0D33120434F494E203420504C411F +:101570005953000EB0D33120434F494E20352050EF +:101580004C415953000EB0D33120434F494E2036C1 +:1015900020504C415953000EB0D3202020204652F9 +:1015A00045452020202020000EB0D33120434F4954 +:1015B0004E203120504C4159200E30D43120434F21 +:1015C000494E203220504C415953000EB0D33220A6 +:1015D000434F494E53203120504C41590E30D431A5 +:1015E00020434F494E203320504C415953000EB0F8 +:1015F000D33320434F494E53203120504C41590E94 +:1016000030D43120434F494E203520504C4159535E +:10161000000EB0D320202020465245452020202017 +:10162000200E30D43120434F494E203620504C41BB +:10163000595300EEFF06082336042B0F38043630CA +:10164000180236312323232310EDC9CDB6772100AC +:10165000D0110508010008722373230B78B120F71D +:101660002100E11101E13600010001EDB0FB21A3F1 +:10167000761100E1012000EDB0CD9579CD9579CDC1 +:101680009579DB002F0F0F30F02100E11101E136D9 +:1016900000010001EDB0CD9579CD9579CD9579F327 +:1016A000C333701300C0001080A00013004001106D +:1016B00000A0001300C00010C06001130040011022 +:1016C00040600100030080001000800003008000E3 +:1016D00010018000030180001000800003018000E1 +:1016E0001001801100C0010001EDB0C92100E1111D +:1016F00001E13600010001EDB0AF3206E3676F2271 +:101700000DE7CDB67721DF7ACDD577FB0608DB0074 +:101710002F21C0D2CD38770608DB012F21C0D4CDD0 +:1017200038770608DB022F21C0D6CD38770608218E +:1017300040D17BCD387718142336042B0F3804366C +:1017400030180236312323232310EDC9CD95773A83 +:101750000DE721C0D7CD78773A0EE7CD7877CD9ECB +:1017600079CD9E79DB012F0F0F3802189EDB002FF9 +:101770000F0F3097F3C333702336042BF50F0F0F81 +:101780000FE60FC6307723232336042BF1E60FC66E +:1017900030772323C9210FE73A09E0E6C0BEC832FB +:1017A0000FE73A0EE7C60127320EE7D03A0DE7C63B +:1017B0000127320DE7C92100D001FF073600545D33 +:1017C0001313CDA7792101D001FF073600545D1313 +:1017D00013CDA779C97EFE00C8CDDE7718F74E0677 +:1017E00000235E2356237E123E04131213230D2082 +:1017F000F5C92100E00E06AF06007710FD0D20F8B8 +:10180000C90E00060010FE0D20F93D20F4C9C5E503 +:10181000772310FCE10E2009C10D20F2C9CDB67767 +:10182000CD3678CD9579CD9579CD9579DB002F0F93 +:101830000FDA337018ED2100D001FF0F3E867723B9 +:101840000B78B120F7210CD00610E5C5CD7178C119 +:10185000E11100011910F3064021BFD77EB07723B4 +:10186000237EB077118000197EB0772B2B7EB07766 +:10187000C90619CD7D782323232310F7C9E53E033C +:101880007723233E0277E1E5118000193E0177239B +:10189000233E0077E1C9F3CDB67721B379CDD57773 +:1018A000CD9579CD9579CD9579DB002F0F3802183C +:1018B000EC110146CD8579CD9579CD9579CD957988 +:1018C000DB002F0F380218E913CD8579CD9579CD3E +:1018D0009579CD9579DB002F0F380218EF13CD8560 +:1018E00079CD9579CD9579CD9579DB002F0F38029B +:1018F00018EC3E102110D00E031101460610732380 +:10190000722310FA130D20F4112000193D20E83E37 +:10191000031101520E0406307323722310FAD511FD +:10192000200019D10D20EF133D20E91101490E04CB +:1019300006307323722310FAD511200019D10D201F +:10194000EFCD9579CD9579CD9579DB002F0F3802C4 +:1019500018A0CD9579CD9579CD95793E01D301CD5E +:101960009579CD9579CD9579DB002F0F30F1AFD3F7 +:1019700001CD9579CD9579CD9579DB002F0F0FDAD3 +:101980003370C371792100D0010008732372230BD7 +:1019900078B120F7C90100400B78B120FBC90100E4 +:1019A000900B78B120FBC97E12232313130B78B15F +:1019B00020F5C90EA0D141204220432044204520DB +:1019C000462047200E20D2482049204A204B204C58 +:1019D000204D204E200EA0D24F20502051205220CA +:1019E0005320542055200E20D356205720582059DC +:1019F000205A202020202014A0D331203220332050 +:101A00003420352036203720382039203020000877 +:101A1000A0D052414D2020204F4B0010A0D0524169 +:101A20004D2020204E472020282020202029005211 +:101A30004F4D2020204F4B00524F4D2020204E472D +:101A40000016A0D044495020535720312032203373 +:101A50002034203520362037203803A0D153573189 +:101A600003A0D2535732000198D2201BC4D22020A9 +:101A70002020202020202020202020202020202066 +:101A8000202020202020202020000CA0D0494E54CF +:101A9000455246414345204F4B00A07AB57ACA7A59 +:101AA00011A0D0434845434B20494E54455246412E +:101AB000434520310011A0D0434845434B20494EB7 +:101AC0005445524641434520320011A0D043484579 +:101AD000434B20494E544552464143452033000A6A +:101AE00020D1575249544520444154410C20D249F9 +:101AF0004E544552464143452031200CA0D220206F +:101B0000205245414420444154410C20D4494E5474 +:101B10004552464143452032200CA0D4202020527B +:101B200045414420444154410C20D6494E5445522D +:101B3000464143452033200CA0D620202052454169 +:101B40004420444154410F40D230203120322033D0 +:101B500020342035203620370F40D4302031203239 +:101B6000203320342035203620370F40D630203126 +:101B70002032203320342035203620370F40D1301A +:101B8000203120322033203420352036203706A063 +:101B9000D754494D494E4700000000000000B07284 +:101BA000EC765E7C4B7696781D780D20D130312016 +:101BB000444950205357495443480BA0D130322058 +:101BC000492F4F20504F52540820D2303320534FCA +:101BD000554E440CA0D23034204348415241435426 +:101BE00045520820D3303520434F4C4F5216A0D3D6 +:101BF00030362043524F53532048415443482050DD +:101C000041545445524E007CB8C07DB9C921008072 +:101C1000010008AF77230B78B120F8C972230B7845 +:101C2000B120F9C97223230B78B120F8C908D9C3B0 +:101C3000397CC7C7C7C7C7C7C72109E034CD527CA5 +:101C40003A02E30F38072106E33E808677C9D908B8 +:101C5000FBC92100E11100C0010001EDB0C9CDB602 +:101C60007721B97DCDD5772A9C7D2206E7DD210835 +:101C7000E7FD21A07DCD9579CD9579CD9579CD8B59 +:101C80007CDB002F0F0FDA337018D3FD220BE73EF9 +:101C9000013205E70606CD507DCDE57CCDCF7C0138 +:101CA0000000ED4313E3DB002F0F0F3004C1C333FB +:101CB00070DB002F0FDCCF7CDB012F0F38340F38A7 +:101CC0005DED4B13E30B78B120D8CDE57C184F3A8E +:101CD00005E74F0600FD2A0BE7FD09FD7E00D30056 +:101CE000F680D300C93E00D3003E80D3000600102A +:101CF000FEC9CDE57CCD9579CD9579CD95793A071D +:101D0000E75F3A05E7BBC80604CD507D3D3205E7E5 +:101D10000606CD507DCDCF7C010000C3A27CCDE571 +:101D20007CCD9579CD9579CD95793A06E75F3A05E1 +:101D3000E7BBC80604CD507D3C3205E70606CD5012 +:101D40007DCDCF7C010000C3A27C4FD6033C181789 +:101D50004FC52120D1118000470528031918FAC169 +:101D6000237023237079C9C52120D111800047FE3B +:101D7000012804051910FDC1237023237079C9C5FA +:101D80000E00060010FEF53A00D0CB4F2809F10DE9 +:101D900020F03D20EBC1C9F1C10601C915010000C9 +:101DA000000102030405061C111213141520212240 +:101DB0002324252627000000000BA0D053204F200D +:101DC00055204E204420530F20D1303120484F4C15 +:101DD000452044494747494E4715A0D1303220504D +:101DE00049434B494E4720555020464F5254494E87 +:101DF000450F20D2303320444F4F52204F50454E94 +:101E0000494E4713A0D23034204255524945442010 +:101E1000494E544F20484F4C451420D3303520466E +:101E2000414C4C494E4720494E544F20484F4C4559 +:101E300010A0D3303620504C41594552204B494CCC +:101E40004C45441220D430372054494D452055503C +:101E5000205741524E494E4716A0D430382054499D +:101E60004D452053434F524520434F554E54494E04 +:101E7000471120D5303920434F494E20494E534514 +:101E80005254494E470FA0D53130205A4F4F4D2064 +:101E9000494E20202020200F20D63131205A4F4F8C +:101EA0004D204F55542020202016A0D631322050EE +:101EB0004C415945522046414C4C494E4720202028 +:101EC00020200D20D731332047414D452053544128 +:101ED00052540CA0D731342047414D45204F564530 +:101EE000521B20D831352042474D2028434F4E54B5 +:101EF000494E5549545920444953504C4159290E93 +:101F0000A0D8313620524F554E4420434C454152C3 +:101F10000E20D9313720424C4F434B20434C454192 +:101F2000520DA0D931382054494D4520555020201C +:101F3000201220DA31392042474D202847414D45B3 +:101F400020504C41592912A0DA32302047414D45EA +:101F500020434F4D504C4554494E470C20DB202028 +:101F60004D5553494320454E4420000000C7C7C784 +:101F7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F1 +:101F8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E1 +:101F9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D1 +:101FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C1 +:101FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B1 +:101FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:101FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:101FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:101FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C771 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4b.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4b.hex new file mode 100644 index 00000000..534377e2 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4b.hex @@ -0,0 +1,513 @@ +:10000000E7ADCEF6B6C1E7B9C9F4A58AC1AE92C1D3 +:10001000B89DC1B8C7A587C9CCB198C9AF9CD60255 +:10002000B1C2E8BEC0F7BA9DC704A2C1E8CFF6A529 +:10003000C2E8AAC9EDB2CBF503A59DC0AC90C2A998 +:100040008DC8B198CAB99DD5A59AD706A184D707FE +:10005000A4D0D5A6CAD2A8C3C5B5CDD2B8C6BCCD8A +:1000600008A5D4AAD3AEC5BBD009B3C50AA8D1B6DA +:10007000C4B6C70D87CACB0F9DC2E6D71F0101A822 +:1000800095C0E5D1F7AA95C8EEA5C8EEB9C1E5C8F7 +:10009000EED1F6BEC0F7A284CB00AE91C1C2D6D7D6 +:1000A000B4C4D2D3CB04A2C0E5D1F7A7C8EE03A550 +:1000B0009AC6D0B99DC0D706A184C6D007A3C0D721 +:1000C000B0C2D6B4C4CBD2D3BCC4D308A7CBB6CAB3 +:1000D000CC09BBCB0AB9C9CBCD0E91C1C2D6D71FB3 +:1000E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A0 +:1000F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C790 +:10010000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77F +:10011000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76F +:10012000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75F +:10013000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74F +:10014000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73F +:10015000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72F +:10016000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71F +:10017000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70F +:10018000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FF +:10019000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EF +:1001A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DF +:1001B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CF +:1001C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BF +:1001D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AF +:1001E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79F +:1001F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78F +:1002000002C002C1C406C204080808080C000000AD +:10021000C8C610000C0E0C0E000000000ACACA026C +:10022000CA0A08080000000000000000C406C2045A +:1002300020AC20AE00000000161616161C1E1C1E58 +:10024000B4000000B4B5B4B516181A20181A20204E +:100250001A18161600000000000000001412B0B2B8 +:10026000A09C9EA000000000A6A6A6A6A1A0A1A0FA +:10027000A0000000A0A1A0A1A6A6A0A0A6A6A6A03E +:10028000A6A6A6A60000000000000000A238A43622 +:1002900092908E00000000003A3A3A3A9899989964 +:1002A0009900000098999899989992923C3C3C3C0E +:1002B0003C3C3C3A000000000000000094969496FC +:1002C000B6BAB6BAE6E8EAEC222222222424242492 +:1002D000EE000000EEEFEEEFE4E2B6B6E2E4B6B612 +:1002E000E4E2222200000000000000000000000004 +:1002F000DDDEDFDE00000000DEA7DEA7404040407C +:10030000BF000000DDBFDDBFDD3EBCDFA7DEA7DE36 +:10031000DEA7DEA7DD34DD00DD34DDDDDEDFDEDDA2 +:1003200080848200000000008A8A8A8A2A2A2A2A77 +:100330008C0000008C8D8C8D8C8482808A8A8A8AC5 +:100340008A8A8A8A00000000000000008628882629 +:10035000CECCCECC30323032CECFCECFCECFCECF31 +:10036000CF000000CECFCECFCECFCECFCECFCECF10 +:10037000CECFCECF2C2E30002E2CCE000000000091 +:10038000D0D1D0D100000000D4D4D4D4D4D4D4D48B +:10039000D8000000D4D4D4D4D8D0D100D4D4D4D46C +:1003A000D4D4D4D4D1DBD9D5D5D9DBD1D5D7D5D7F1 +:1003B00000000000414041400040004000000000BB +:1003C00001010000000040400000000000010100A9 +:1003D000010000000000000000000000414041401A +:1003E000000100010000000000400040000000008B +:1003F00000000000000000000040000000000000BD +:1004000000000000000000000000000040404141EA +:1004100000010100000000000040004000004040DA +:10042000000000000000404040400000004000008C +:10043000004000000000000000000000414041407A +:100440000101010000000000004000400000000029 +:10045000000000000000000000000101004000005A +:100460000040000000000000000000004141414148 +:1004700001010101414141410040004000000000F4 +:100480000000000000000000010101010101010164 +:10049000010100000000000000000000000000005A +:1004A000004001000000000000404000004000400B +:1004B000000000000000004000000101000040407A +:1004C000000040400040000000000000C08180802B +:1004D0000101010000000000014101410000000095 +:1004E00000000000000000000001010101410101C5 +:1004F00001410101000000000000000041404140B6 +:1005000040414041000000000000000000000000E9 +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000010001000000000040004000004040B9 +:1005400000000000004000400000010000400040AA +:100550000040004001010101010101010100010011 +:10056000FE00FE000000000000000000000000008F +:1005700000000000000000000000000000FEFE007F +:10058000FE0000000000000000000000000000006D +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C00000F5FC000000000000000000000000003A +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F000FAFCF50000000000000000000000000010 +:1006000000000000000000000000F8F800000000FA +:10061000000000000000000000000000FCFCFCFCEA +:10062000FFFFFFFF000000000000000000000000CE +:1006300000000000000000000000FFFF0101FFFFBC +:1006400001010000000000000000000000000000A8 +:100650000000FE000000000000000000000000009C +:10066000000000000000000000FC00FE0000000090 +:10067000000000000000000000000000000000007A +:10068000FDFDFD0000000000F808F8080000000073 +:10069000000000000000000000FDFDFDF808F8F873 +:1006A000F808F8F800000000000000000300030054 +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E00000FC00FC00000000000000000000000012 +:1006F00000000000000000000000FC0000000000FE +:1007000000000000FCF8F8FCFCF8F8FCFC00FC0021 +:1007100000000000FD00FD000000000000000000DF +:10072000F0FF0000000000000000000000101000BA +:10073000100000001010101010101010FD00FD002F +:1007400000FF00FF000000000000000000000000AB +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000FEFE8D +:100770000010100000000000000000000000000059 +:100780000000000000000000000000000000000069 +:10079000000000000000000000000000FE0001005A +:1007A0001010100000000000000000000000000019 +:1007B0000000000000000000000010100000000019 +:1007C0000000000000000000000000000404040419 +:1007D000020202020101010100000000000000000D +:1007E00000000000000000000202020202020200FB +:1007F00002020000000000000000000000000000F5 +:1008000010101010000000000000000000000000A8 +:1008100000000000000000000000081000000000C0 +:1008200000000000000000000000000000100000B8 +:100830001010100000000000101010100000000048 +:100840000000000000000000001010101010101038 +:100850001010101000000000000000000400040050 +:100860001010101000000000000000000000000048 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890001010101000000000000000000000000018 +:1008A0000000000000000000101010100000000008 +:1008B0000000000010101010101010101010101078 +:1008C00000FF00FFF800F80000000000000000003A +:1008D00000F800000000000000000000040000001C +:1008E000000400000000000000000000F800F80014 +:1008F00000FC00FC00000000000000000000000000 +:1009000000000000000000000008080008090000C6 +:100910000808000000000000000000000000F8F8D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000004000000000000B3 +:10094000000000000000000000000000F800F800B7 +:100950000000000000000000000000000000000097 +:10096000000000000000000000040000040407076D +:10097000040404000000000000000000F8F8F8F88B +:10098000FCFCFCFCFCFCFCFC000000000000000087 +:100990000000000000000000F9FDFCFCFDFDFC0073 +:1009A000FDFD00000000000000000000000000004D +:1009B0000000000000000000000000000000000037 +:1009C00000000000000000000000F800000000002F +:1009D000000000000000F800F8000000F9F9F9F943 +:1009E00000FFFF0000000000000000000000000009 +:1009F00000000000000000000004FF0000000303EE +:100A00000000FDFD0000000000000000F808F808EC +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A6000000000000000FCF8F8FC0000F8F9F8F9BC +:100A70000000000008000800000000000000000066 +:100A8000000800000000000000000000000000005E +:100A90000000000000000000000000000800080046 +:100AA000000400040000000000000000000000003E +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000080816 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000008000800E6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000005050505B1 +:100B300004040404FCFCFCFC0000000000000000B5 +:100B4000000000000000000007070404070704007D +:100B50000707000000000000000000000000000087 +:100B60000000000000000000000000000000000085 +:100B7000000000000000000000000800000000006D +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000001000100015 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C2000040C07010807010008070100000000008C +:100C30000000000006060606080808010A06000073 +:100C40000A06010000000000000000000708090774 +:100C5000080801000606060106060601000000005D +:100C60000000000005040303080801000606060052 +:100C70000606060100000000000000000304030453 +:100C8000080801000A0600000A0601000000000032 +:100C90000000000000000000080606040505050528 +:100CA00005050505060804000608040004030404FD +:100CB00008080400060606000606060000000000FC +:100CC00000000000050505050808080205050500E7 +:100CD00005050500040404000404040000000000ED +:100CE000080C0800050505000505050004040404BA +:100CF0000404040405050505430320FFA3FFA3FF27 +:100D0000A2FFA2FF000000000000000000000000A1 +:100D10008383A3FFA3A3FFFFA2A2FFFF00000000A5 +:100D2000000000000000000043A0FFFFA3A3A3FFFA +:100D3000A2A2A2FF000000000000000000000000CE +:100D400043A0FFFFA3A3A3FFA2A2A2FF00000000F5 +:100D5000000000000000000043A0FFFFFFFFFFFFB6 +:100D6000A2A2FFFF00000000000000000000000041 +:100D7000FF832020A3A3A3A3A2A2A2A2FFFFFF00A0 +:100D8000FFFFFFFF0000000043A0A0FFA3A3A3FFFD +:100D9000A2A2A2FF0000000000000000000000006E +:100DA00003232020232323FF222222FFFFFFFF0013 +:100DB000FFFFFF0000000000FF0320FF232323FFAD +:100DC000222222FFFFFFFFFFFFFFFFFF00000000C6 +:100DD0000000000000000000000000000000000013 +:100DE00000000000070607060004040200000000DF +:100DF00000000000000000000000000005060708D9 +:100E000000050500000000000000000000000000D8 +:100E100000000000010504020005050000000000BC +:100E200000000000000000000000000003030303B6 +:100E300000080200000000000000000000000000A8 +:100E40000000000000000000000008020000000098 +:100E5000000000000000040000040000040400047E +:100E60000005050000000000000000000000000078 +:100E70000000000004040404000000000000000062 +:100E80000000000000030300000303000000000056 +:100E90000000020000000000000000000004000448 +:100EA000000400040404040400000000FCFA000034 +:100EB0000206040000000000000000000000000026 +:100EC00000F8F800FAF70000010707000000000032 +:100ED000000000000000000000F80000FCFCFCFC2A +:100EE00004040404000000000000000000000000F2 +:100EF00000F80000FCFCF9000404040400000000F9 +:100F0000000000000000000000F80000F8F90000F8 +:100F100000080700000000000000000000000000C2 +:100F20000000F8F8FCFCFCFC0404040400000000D1 +:100F3000000000000000000000F80000FCFCF900C8 +:100F40000404070000000000000000000000000092 +:100F500000FC000000000000000000000000000095 +:100F600000000000000000000000FC000000000085 +:100F70000000000000000000000000000000000071 +:100F8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F1 +:100F9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E1 +:100FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D1 +:100FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C1 +:100FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B1 +:100FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:100FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:100FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:10100000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C770 +:10101000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C760 +:10102000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C750 +:10103000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C740 +:10104000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C730 +:10105000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C720 +:10106000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C710 +:10107000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C700 +:10108000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F0 +:10109000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E0 +:1010A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D0 +:1010B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C0 +:1010C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B0 +:1010D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A0 +:1010E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C790 +:1010F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C780 +:10110000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76F +:10111000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75F +:10112000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74F +:10113000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73F +:10114000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72F +:10115000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71F +:10116000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70F +:10117000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FF +:10118000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EF +:10119000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DF +:1011A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CF +:1011B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BF +:1011C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AF +:1011D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79F +:1011E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78F +:1011F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77F +:1012000002510101000392D4010118030FD0D5CF80 +:10121000D2010218030ED0D1D5D3010318030CD08C +:10122000D1D2D4D5D3010418030AD0D1D2D4D4D486 +:10123000D5D3010527D5D3010627D5D3010728D358 +:10124000010828D3010927D5D3010A27D5D3010BDB +:1012500027D5D3010C27D5D3010D27D5D3010E27D0 +:10126000D5D3010F27D5D3011027D5D3011127D509 +:10127000D3011227D5D30253010726CA010825CB73 +:10128000CC0254010727CD010827CE0252010518D0 +:10129000030AEB010618030AEB0107180308ECED3B +:1012A000EB01081803085CEEEB01091E5C5CEEEB39 +:1012B000010A1E5C5CEEEB010B1E5C5CEEEB010CAC +:1012C0001E5C5CEEEB010D1E5C5CEEEB010E1E5C29 +:1012D0005CEEEB010F1E5C5CEEEB01101E5C5CEE45 +:1012E000EB01111E5C5CEEEB01121E5C5CEEEB018F +:1012F000131CFDEFF0F1F2F30114180304F8F7F6F4 +:10130000F4F50115180305F8F7F6F6EFFC011618C9 +:101310000306F8F7F6F6F4F50117180307F8F7F6E1 +:10132000F6F6EFFC0118180308F8F7F6F6F6F4F5F0 +:101330000119180309F8F70304F6EFF9011A180365 +:101340000AF8F70304F6F4F5011B18030BF8F7038A +:1013500005F6EFFC011C18030CF8F70305F6F4F58D +:10136000011D18030DF8F70306F6EFFC011E180324 +:101370000EF8F70306F6F4F5011F18030FF8F7034C +:1013800007F6EF0210010918030604010A18030604 +:1013900004010B18030604010C18030604010D18C0 +:1013A000030604010E18030604010F1803060401C6 +:1013B000101803060401111803060401121803068D +:1013C000040113180304040255011322030594D5E4 +:1013D000FA030794011420030794D5FA0307940134 +:1013E0001522030594D5FA030794011623030494E8 +:1013F000D5FA03079401172594D6D7D8D9030694B4 +:10140000011826DADBDCDDDE030594011928E0E1B2 +:10141000E2E3E4949494011A299494E5E6E3E494D5 +:10142000011B2B9494E5E6E3011C2C949494E501B4 +:101430001D2E9494011E2F94004C0C99004E0C9973 +:1014400010500C9920520C7900540C7910A80C798A +:1014500020A80C8920700C5900720C5910740C597A +:1014600020764C7D0000C7C7C7C7C7C7C7C7C7C757 +:10147000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FC +:10148000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EC +:10149000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DC +:1014A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CC +:1014B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BC +:1014C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AC +:1014D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79C +:1014E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78C +:1014F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77C +:10150000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76B +:10151000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75B +:10152000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74B +:10153000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73B +:10154000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72B +:10155000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71B +:10156000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70B +:10157000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FB +:10158000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EB +:10159000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DB +:1015A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CB +:1015B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BB +:1015C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AB +:1015D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79B +:1015E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78B +:1015F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77B +:10160000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76A +:10161000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75A +:10162000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74A +:10163000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73A +:10164000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72A +:10165000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71A +:10166000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70A +:10167000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FA +:10168000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EA +:10169000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DA +:1016A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CA +:1016B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BA +:1016C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AA +:1016D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79A +:1016E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78A +:1016F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77A +:10170000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C769 +:10171000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C759 +:10172000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C749 +:10173000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C739 +:10174000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C729 +:10175000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C719 +:10176000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C709 +:10177000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F9 +:10178000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E9 +:10179000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D9 +:1017A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C9 +:1017B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B9 +:1017C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A9 +:1017D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C799 +:1017E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C789 +:1017F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C779 +:10180000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C768 +:10181000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C758 +:10182000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C748 +:10183000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C738 +:10184000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C728 +:10185000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C718 +:10186000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C708 +:10187000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F8 +:10188000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E8 +:10189000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D8 +:1018A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C8 +:1018B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B8 +:1018C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A8 +:1018D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C798 +:1018E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C788 +:1018F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C778 +:10190000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C767 +:10191000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C757 +:10192000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C747 +:10193000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C737 +:10194000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C727 +:10195000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C717 +:10196000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C707 +:10197000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F7 +:10198000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E7 +:10199000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D7 +:1019A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7 +:1019B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B7 +:1019C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A7 +:1019D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C797 +:1019E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C787 +:1019F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C777 +:101A0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C766 +:101A1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C756 +:101A2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C746 +:101A3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C736 +:101A4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C726 +:101A5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C716 +:101A6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C706 +:101A7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F6 +:101A8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E6 +:101A9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D6 +:101AA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C6 +:101AB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B6 +:101AC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A6 +:101AD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C796 +:101AE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C786 +:101AF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C776 +:101B0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C765 +:101B1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C755 +:101B2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C745 +:101B3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C735 +:101B4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C725 +:101B5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C715 +:101B6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C705 +:101B7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F5 +:101B8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E5 +:101B9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D5 +:101BA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C5 +:101BB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B5 +:101BC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A5 +:101BD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C795 +:101BE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C785 +:101BF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C775 +:101C0000212A5CA72803215C5C7E32DBE52322DCF1 +:101C1000E5C921DBE5352ADCE5200D7E3C280923DA +:101C20007E32DBE52322DCE57EC90C0278801402DB +:101C3000328024083202232032015A021E200C0274 +:101C40001E200C025A20730124085A012408640142 +:101C500032045F02232014801E08FFFF8C01DC0881 +:101C6000190219011480140414804A02C801EB02FD +:101C70006E803702500114800A010A020F010A0225 +:101C800005010A022808FFFFC7C7C7C7C7C7C7C7DC +:101C9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D4 +:101CA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C4 +:101CB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B4 +:101CC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A4 +:101CD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C794 +:101CE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C784 +:101CF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C774 +:101D00003E13CD4231CD5E5F3E0132AEE61804AFE8 +:101D100032AEE63A90E5FE0020053E20CD4231CDC0 +:101D2000C95E3AB7E5B728353AAEE6B7202FCDD62B +:101D30005E3E023288E53E0ECD3E30212ED6360084 +:101D4000545D13012700EDB03E0ECD3E30CDD65E82 +:101D50002188E53520E03E70CD3E3018353A90E5DB +:101D6000FE002136D6CC9A313E023288E53E0ECDB9 +:101D70003E302132D73600545D13011B00EDB03EDA +:101D80000ECD3E30CDC95E2188E53520E03E38CD10 +:101D90003E303E013290E53A8EE53DCDEC31793C66 +:101DA00032CCE579E6073C32CDE5210000228AE518 +:101DB000228BE5216CE5FE01200936303E60328B36 +:101DC000E51814FE02200936403E80328BE51807E4 +:101DD00036503E01328AE579CB3FCB3FCB3F21DF06 +:101DE000E586875F160021355F195E2356ED53E1C6 +:101DF000E53E14CD4231CD8061CDD763AF32A6E54B +:101E0000CD435FCDE7622110D011ED5ECD2D30CDF9 +:101E100003320E1E214AD03A8EE5CD4830CDF7313F +:101E20000E041197E52160D03AB8E5B728032118D0 +:101E3000D00603CD5F3010FB0E06119AE52138D095 +:101E40000603CD5F3010FB3AB4E6FE0C201421BA35 +:101E5000E10607360D232323360D1115001910F363 +:101E6000180CFE1020083E0132FFE43200E53AA7CC +:101E7000E5B720433AAEE6B720103AB7E5B7280AEF +:101E80003E1632B6E53E1832ADE63E01329DE52102 +:101E90004AE4060A78C602E60320053E17CD423121 +:101EA0007EFEFF20043612180236FF3E09CD3E307A +:101EB00010E23E26CD42313E02329DE53E1532B162 +:101EC000E63E013268E5C329002132D7CD853111C4 +:101ED000235FCD2D30C90E063AB8E5C631212ED686 +:101EE000CD6A30112B5FCD2D30CD9A31C90620310E +:101EF000502D2020202020201E3C31303030303E1C +:101F00000648492D2020202020201E3C522D202034 +:101F1000205E5F2D203E0632502D202020202020E4 +:101F20002020000620524541445900062D504C41C6 +:101F30005945522000980004011001140117012195 +:101F40000126013E013274E5AF3273E5CD915F3E6B +:101F500002CD3E302173E5347EFE1E38EFC9DD210F +:101F600000E30610DD360400DD360C00111000DD44 +:101F70001910F1AF3274E532A6E53E1C3273E5CD9F +:101F8000915F3E02CD3E302173E5357EFEFF20EFAE +:101F9000C9874FAF479157CB2178E603CCAD5F7A25 +:101FA000CB7F20020D9104805779B830ECC5D5CB9A +:101FB00038CB38300104CB39CB3930010C2E10CD61 +:101FC000D25F3A74E5B728030D18010CCDD25FD16A +:101FD000C1C9513E1880FE30DCF15F3E1890D4F14B +:101FE0005F503E1881FE30DCF15F3E1891D4F15F06 +:101FF000C9677D82FE20DC00607D92D8CD0060C97B +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4d.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4d.hex new file mode 100644 index 00000000..89abed9d --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4d.hex @@ -0,0 +1,513 @@ +:10000000203AECE4CDB620CD112021ECE43518E403 +:10001000C9FDBE05C821ECE44ECD3D2121EEE4BE74 +:10002000D032EEE43E0032EDE4C947FD4E0579FEE4 +:100030001D30526178070707CB3C1F6F1110D01994 +:10004000E511800119D1EB1AFE04283AE6F8FE0802 +:1000500028340C1A242415EBE6FCFE0028253A442B +:10006000E4B8300D2D2D2D2D1D1D1D1DCD88201802 +:10007000122005CDAD20180B2C2C2C2C1C1C1C1C6C +:10008000CD882018A9C979C97EE6FCFE18281E7EF5 +:10009000E6F8FE08C8247EE6F8FE08C81AE6F8FE70 +:1000A00010280A1AFE042805E6F8FE08C02145E4D7 +:1000B00079BED8F179C947FD4E0579FE0128506116 +:1000C00078070707CB3C1F6F1110D019E51180018D +:1000D00019D1EB7EE6F8FE102809247E25E6F8FE0D +:1000E0001079C00D151524EB3A44E4B8300D2D2DD0 +:1000F0002D2D1D1D1D1DCD102118122005CD3521C2 +:10010000180B2C2C2C2C1C1C1C1CCD102118ABC922 +:100110007EE6FCFE18281E7EE6F8FE08C8247EE671 +:10012000F8FE08C81AE6F8FE10280A1AFE04280588 +:10013000E6F8FE08C03A45E4B9D8F179C94778181D +:10014000142A44E4943002ED448787874779953038 +:1001500002ED4480C92145E4BE200879FD9604D013 +:10016000ED44C978963005ED44C664C9C6C8C9C710 +:10017000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70F +:10018000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FF +:10019000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EF +:1001A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DF +:1001B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CF +:1001C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BF +:1001D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AF +:1001E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79F +:1001F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78F +:10020000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77E +:10021000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76E +:10022000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75E +:10023000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74E +:10024000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73E +:10025000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72E +:10026000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71E +:10027000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70E +:10028000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FE +:10029000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EE +:1002A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DE +:1002B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CE +:1002C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BE +:1002D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AE +:1002E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79E +:1002F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78E +:10030000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77D +:10031000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76D +:10032000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75D +:10033000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74D +:10034000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73D +:10035000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72D +:10036000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71D +:10037000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70D +:10038000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FD +:10039000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7ED +:1003A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DD +:1003B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CD +:1003C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BD +:1003D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AD +:1003E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79D +:1003F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78D +:10040000210EE57EB7280235C934CDBE242168E52A +:100410003520023617DD2118E53E143288E5DD7EF1 +:1004200000B72839DD35002006DD360100182EDD45 +:100430007E00FE102004DD3601F43021FE0F201274 +:10044000DD7E02DD6E03CD002DEBCD1930CD6924AC +:10045000180BCB3FCB3F473EF790DD7701010400FF +:10046000DD092188E53520B6C93A44E4DDBE022025 +:1004700017DD7E032145E496380EFE03300A3E0068 +:100480003248E4AF3250E4C9FD2158E43AE9E4329D +:1004900089E5FD7E04DDBE022018DD7E03FD9605A4 +:1004A0003810FE03300CFD360CFFFD36092AFD36F0 +:1004B0000E3C111800FD192189E53520D5C93AE90E +:1004C000E432E8E4DD2158E4216DE536003A02E546 +:1004D000B728083AE8E4FE01200134DD7E0EB72893 +:1004E0005BDD350920253A6DE5B7280AAF3202E514 +:1004F00021E9E4351815DD360903DD7E0AFEFF200B +:1005000006DD360A0C1804DD360AFFDD350E202420 +:10051000FD2140E4FD7E04DDBE042010FD7E05FECD +:10052000013809FE043005DD340E1810DD360C00EC +:10053000DD360A0CDD7E0EFE30CC4825111800DDBC +:100540001921E8E4352081C93A6DE5B7200D3E0157 +:1005500032FFE4010001CDDB2F1813DD7E04DD6ED8 +:1005600005CD002D15151AE6FCFE60CC832F3E0448 +:10057000CD4231DD7E0DB7280421FCE435DD360A9D +:10058000FF1110D13A68E587876F260019EB06F84E +:100590000E08CD712EEB200A2168E53520023617B2 +:1005A00018E23A68E5DD7701DD7704878787DD7734 +:1005B00007AFDD7700DD7702DD770D3CDD7703DD0A +:1005C0007705DD3606082168E53520023617C93E75 +:1005D0000132A7E52122D2CDA1293E0ECD3E302108 +:1005E000DED311E926CD2D302123D216CBCDDF2944 +:1005F0003E1CCD3E302123D216CCCDDF293E1CCD72 +:100600003E302123D216CDCDDF293E1CCD3E307A9F +:10061000326BE52140E41141E40128013600EDB0E0 +:100620003E0132CDE5324BE43249E43E163241E43C +:100630003E0C3243E43E00324AE43246E43E1E328F +:1006400053E416181E0C3E01DD2158E40605DD7743 +:100650000BDD7709DD7201DD7303DD360A00DD365F +:100660000600C5011800DD09C11410E2218000DB7D +:1006700004CB4720022D2D22E3E5CDD7633E053282 +:10068000E9E43E03326AE53E01329DE53E303289BF +:10069000E5216BE5347EFED0380236CD562123D2DB +:1006A000CDDF293E08CD3E302189E53520E33E00EF +:1006B000329DE53E00326AE5CD00653ADEE5CD00CB +:1006C0005C060321DEE57EB72805360004180134F8 +:1006D00078328EE5AF32B8E5328FE5676F2291E56B +:1006E0002292E5CD5E5FC3975D06544D003E13CD6B +:1006F00042313E0132A9E5CD5E5F210052CD516409 +:1007000021C0D0DD21BED00E1F06187EDD77002C63 +:100710007EEE20DD77012CDD2BDD2B10EE1150005D +:100720001911B000DD190D20E02124E01123E00EA5 +:100730001F060C7E0707070712231B10F6C5010CC6 +:100740000009EB01240009EBC10D20E5FD2139541E +:10075000CDF0293E14CD42313E0132A6E5CD435FB6 +:100760003E24CD42312140E41141E401280136000C +:10077000EDB021CDE5343E01324BE43249E43E0692 +:100780003244E43E103241E43E1D3243E43E003246 +:100790004AE43246E416121E1F3E010E05DD2158C2 +:1007A000E40604DD770BDD7709DD7104DD7201DD20 +:1007B0007303DD360A00DD360600C5011800DD09C9 +:1007C000C1141C10DECDD7633E0432E9E43E023290 +:1007D0006AE53E01329DE53EA8CD3E303E03CD4266 +:1007E000310E30DD2100E3060BDD3406DD350E1160 +:1007F0001000DD1910F33E01CD3E300D20E521B68D +:10080000D5CD9A3121B8D6CD8531213CD8112D28AE +:10081000CD2D303E70CD3E303E00329DE53E003263 +:100820006AE53E13CD4231CD5E5FC3975D0652450A +:10083000414459003E13CD42313E0132A9E5CD5E1F +:100840005F2100E31101E30168023600EDB02100F1 +:10085000E01101E0019F023600EDB02313015F00BB +:100860003601EDB03E0A32D8E53E0032A6E53E1430 +:10087000CD4231CD435F3E27CD423106000E4711B8 +:10088000EF283E01CD3E303E2E804730F51AFE0166 +:100890002007131A6F131A67131A77FE20282E3EAB +:1008A00017CD42311AFE322024AF32CDE53257E463 +:1008B0003E0B3241E43E0C3253E4324AE43E013214 +:1008C0004BE43249E4326AE53E01329DE51323717F +:1008D000231AB720AD3EFFCD3E303E00329DE53EAF +:1008E00000326AE53E13CD4231CD5E5FC3FA260188 +:1008F00030D3434F4E47524154554C4154494F4ECB +:10090000532120202020011ED5594F552020484139 +:1009100056452020444F4E4520204954202056451E +:100920005259202057454C4C2C202001A8D6484134 +:1009300056494E47202050415353454420205448A7 +:10094000524F5547482020012AD8323420204441B4 +:100950004E4745524F55532020504C414345532E4E +:100960002020202001A0D94255542020544845522F +:1009700045202041524520205354494C4C20204FC3 +:100980005448455220200128DB454E454D494553EA +:1009900020204F4E2020594F555220205741592E8C +:1009A0000016881E04061E722C2C1414141410F742 +:1009B0007AC68957014400091D20EAC91E047EE653 +:1009C000F0477AE60FB07723060E722310FC7EE61E +:1009D0000F477AE6F0B077010900091D20E0C91E33 +:1009E00004061E722C2C10FB014400091D20F2C9C4 +:1009F000DD2100E3FD7E00B7C8DD7704DD770CFD67 +:100A00007E0147E61FDD7700DD770878E6C0DD77F9 +:100A100005EE40DD770DFD5E0216002AE3E519DDE7 +:100A20007502DD750ADD7403DD740BFD5E03DD7395 +:100A300006DD3607013EF093DD770EDD360F00113F +:100A40000400FD19111000DD1918A93A6AE5FE012C +:100A50002005CD5B2A1803CDD42AC93A53E4FE0CF5 +:100A6000202E1115002A42E4192242E47C2A57E480 +:100A70002600019B2B09BE2015237E324BE43E004D +:100A80003253E4324AE43A57E4C6023257E4184398 +:100A90003A4BE4FE01200511F2FF1803110E002A63 +:100AA00040E4192240E47C2A57E42600019B2B09EC +:100AB000BE2015237E324BE43E0C3253E4324AE42E +:100AC0003A57E4C6023257E43A53E4FE0C2804478E +:100AD000CDF110C93A6AE5FE022065DD2140E40E41 +:100AE00005DD7E0BFE01201C11F4FFDD6E00DD66CE +:100AF0000119DD7500DD74017CDDBE042004DD36E6 +:100B00000B001810110C00DD6E00DD660119DD759B +:100B100000DD740111F9FFDD6E02DD660319DD757C +:100B200002DD7403C5DD460679FE052005CDF11012 +:100B30001803CD2E1AC1111800DD190D20A3185A63 +:100B40003A6AE5FE032053DD2140E40E0611ECFF76 +:100B5000DD6E00DD660119DD7500DD74017CFEFED1 +:100B60002004DD360AFFC5DD460679FE062005CDE8 +:100B7000F1101803CD2E1AC1111800DD190D20CD6A +:100B80003A53E43C3253E4FE24200F3E003253E457 +:100B90003A57E43C3257E4CD9D65C903010600078E +:100BA0000008000A0009000D000D0010000F0013DE +:100BB000001100190032C7C7C7C7C7C7C7C7C7C713 +:100BC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B5 +:100BD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A5 +:100BE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C795 +:100BF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C785 +:100C0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C774 +:100C1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C764 +:100C2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C754 +:100C3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C744 +:100C4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C734 +:100C5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C724 +:100C6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C714 +:100C7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C704 +:100C8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F4 +:100C9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E4 +:100CA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D4 +:100CB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C4 +:100CC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B4 +:100CD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A4 +:100CE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C794 +:100CF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C784 +:100D000065070707CB3C1F6F1110D019E511800153 +:100D100019D1EB7EC967FD2158E41118003AE9E4C6 +:100D200047FD7E0694FE12306DFE083869FD7E0791 +:100D3000953002ED44FE06305DFD7E0CB72028FDA7 +:100D40007E16B720223A4FE4B72815FD7E0FFEFF2E +:100D5000280E2152E47EB7200736013E0BCD7330BA +:100D60003E063209E5182D210BE53A44E4BE28245D +:100D70007F77210AE53A4BE4BE2010210CE5347E52 +:100D8000FE0338053E133206E518093A4BE4773E78 +:100D900001320CE537C9111800FD191084C9C613BA +:100DA000180067DDE5C1FD2158E43AE9E447FDE5B7 +:100DB000D17BB92832FD7E0EB7202CFD7E06BC30DB +:100DC00026C612BC3821FD7E07953002ED44FE0692 +:100DD0003015DD7E0FFDBE0F200437C91809AFFDA9 +:100DE000960CD8DD960CD8111800FD1910C0C967F3 +:100DF000DDE5C1FD2158E43AE9E447FDE5D17B9109 +:100E00005F2826FD7E0EB72020FD7E07C607BC3872 +:100E100018D608BC30133CBC2004CB7B200BFD7ED5 +:100E200006953002ED44FE0FD8111800FD1910CBC5 +:100E3000C9C60867DDE5C1FD2158E43AE9E447FD8C +:100E4000E5D17B915F2822FD7E0EB7201CFD7E0739 +:100E5000BC3016C608BC38112004CB7B200BFD7EAD +:100E600006953002ED44FE0FD8111800FD1910CF81 +:100E7000C91AA0B9C8E5218000197EE1A0B9C91A34 +:100E8000A0B9C0E5218000197EE1A0B9C97EA0B952 +:100E9000C8247E25A0B9C97EA0B9C0247E25A0B9EA +:100EA000C97EB9C8247E25B9C91AB9C0E521800018 +:100EB000197EE1B9C9C60518004F3A47E4B9D0C652 +:100EC00004B9D83A46E4953002ED44FE0AD0AF3278 +:100ED00050E4C94F3A46E4C60EB9D8D61D3001AF2A +:100EE000B9D03A47E4953002ED44FE03D0AF32501A +:100EF000E4C94F3A46E4913002ED44FE0ED03A4741 +:100F0000E4953002ED44FE03D0AF3250E4C9EB7EED +:100F1000C670772C360A2C7EC674772C360A018070 +:100F20000009360A2D7EC67C772D360A2D7EC678BE +:100F300077ED42EBC9EB7EC660772C360A2C7EC675 +:100F400064772C360A01800009360A2D7EC66C773C +:100F50002D360A2D7EC66877ED42EBC9EB7ED67042 +:100F6000772C36052C7ED674772C36050180000947 +:100F700036052D7ED67C772D36052D7ED67877EDFD +:100F800042EBC9EB7ED660772C36052C7ED6647793 +:100F90002C36050180000936052D7ED66C772D365E +:100FA000052D7ED66877ED42EBC9D5070707CB3C08 +:100FB0001F6F1110D019EBC5CD0E2FC1D1C9EB7722 +:100FC00023237701800009772B2B77ED42EBC92192 +:100FD00091E57E47812777383618172193E57E8182 +:100FE00027772B7E8827772B7E47CE002777381FE1 +:100FF000B8C84F78C6012747C5FE05200C218FE5EC +:10100000343E12CD4231CDF731C178B938E5C9212E +:1010100099992291E52292E5C9D5EB3AD8E5772C4A +:101020002C7701800009772D2D77EBD1C91AB7C82D +:10103000FE2030034F1804772C712C1318EF32B5B3 +:10104000E53AB5E5A720FAC90600D60A0430FBC682 +:101050000A05F578CD5830F1C63077237123C91AC7 +:10106000F50F0F0F0FCD6A30F113E60FC63077235F +:101070007123C94F0600212831095621FEE45E3450 +:101080007A3288E5B72809347BFE0720031E003436 +:10109000CB9E7B3289E5878787FD21C0E35F160001 +:1010A000FD19FD360011FD360811161579FE0B38B5 +:1010B0000216033A46E482ED445F16002AE3E5197E +:1010C000FD7502FD74031E003A88E5B7280A1CFD71 +:1010D000770CFD750AFD740B211B31097EFD770429 +:1010E00021353109460E00CDDB2F3A47E4C6206F8B +:1010F000260029FD7506FD7407CB43280A01F0FF81 +:1011000009FD750EFD740F3A89E54F0600219EE535 +:10111000093670CB432803233670C9F8F9FBFCFA73 +:10112000FDFAFDE1E1E1E1E10000000000FEFEFF6B +:10113000F0AAABF1F002040608051015203050802B +:101140001030D557FE1228083AA7E5B72802D1C9B2 +:101150007AE521BBE55E160021BCE519571C7BE64C +:101160000F32BBE572E1D1C93ABAE521BBE5BEC891 +:101170005F160021BCE5193CE60F32BAE57ED300CC +:10118000F680D300C9119231CD2D303A8EE5CD488D +:1011900030C906524F554E442D003A8EE53DCDECF8 +:1011A00031793C32CCE50E06FE0A3805CD483018C0 +:1011B000052C2CCD6A303ACCE5FE043801AF878788 +:1011C0005F1600E521D43119EBE1CD2D3011E4316A +:1011D000CD2D30C90654480006535400064E440035 +:1011E000065244000620424C4F434B000E000CD6E2 +:1011F0000330FB0DC603C90E1E2156D03A8FE5CD34 +:101200006A30C92126D0118AE50E1E1AE60FCD6A72 +:101210003013CD5F301A0F0F0F0FE60FCD6A300E6F +:10122000042118D03AB8E5B728032160D03AADE6DA +:10123000B72826E521B6E57EB72006361621ADE6AD +:10124000353AADE6E11F300C3600545D13010B005A +:10125000EDB01803CD82321803CD8232119AE52108 +:1012600091E506031ABE1323200210F8D03AA7E531 +:10127000B7C0010300119AE52191E5EDB00E0621FA +:1012800038D01191E50603CD5F3010FBC911B8E6E7 +:101290002120D7014000EDB021A0D7014000EDB0E2 +:1012A0002120D8014000EDB021B8D8010E00EDB0EA +:1012B0002138D9010E00EDB0C921B8E61120D701BF +:1012C0004000EDB011A0D7014000EDB01120D801D1 +:1012D0004000EDB011B8D8010E00EDB01138D901C1 +:1012E0000E00EDB0C9C7C7C7C7C7C7C7C7C7C7C7FD +:1012F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77E +:10130000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76D +:10131000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75D +:10132000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74D +:10133000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73D +:10134000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72D +:10135000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71D +:10136000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70D +:10137000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FD +:10138000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7ED +:10139000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DD +:1013A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CD +:1013B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BD +:1013C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AD +:1013D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79D +:1013E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78D +:1013F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77D +:1014000000003234013572354B3C6236CE364537FA +:101410008934CA3CA83B043EE235593D8C3F9B3998 +:10142000A93EF938CC3A1E3F2F3AC53771387D4076 +:10143000F73F0001AEE5A4EBA9CFF7A98DCAAECA6C +:10144000F7B3F1B9C5E8D2F7BEF703848DC58E9224 +:10145000C2898DD5CB8E98D2999DC4D79398C70455 +:10146000A6C6EE04B6C8F104068188CF07A2C3A7BA +:10147000D3ACD1B7C6D5BCCF0AA4CBA9CABEC009CC +:10148000BBCC08ABC3D3B0CC1F0001A4C2A9C1E33D +:10149000A5CAF1A7D3F6ACCFF6B095C1E3B4D3F7A4 +:1014A000B0C6E7CAEDB9ECD4F7BEF702A4C1C39049 +:1014B00098C0C4B0C5C804A9C5EDB6CDF103848FEA +:1014C000C0C4858BD28C91CE8793D78598C99498C8 +:1014D000D5949DD2999DC706A186D707A2C2A3CF56 +:1014E000A5D4A7C1ABC2AEC6CBB7C1C5D7BCC0D708 +:1014F00009BBCA08A6C3A9D1ADC30AB9D4BEC0D717 +:101500001F0001A5CAF2A6E3A8D4F7ABC5F3AFE468 +:10151000B0CAF1B3D7B5CCF3B7CCD3B9ECD3F7BAE3 +:101520009DCFF0BEF704AED4AFD5B0D6B2C4E803B9 +:10153000999DC2D69A9DCED19598CBD49094C9CF7F +:101540008F98C38B8FCCD1868EC4858AC9D306A1D0 +:1015500087D707A3CEA4C2A9CFADC1B1D7B8D0BC9D +:10156000D408A8C6ADCEB2D209B6C90AB3D7BEC098 +:10157000D71F0001A4C0D0F7A6E1CFF0A8C1C2CE0A +:10158000CFA9D2F6AAC2C3CDCEACC3C4CCCDAEC314 +:10159000E5CBEDAFE5CBF7B0C6CAB2C6EAB4C1E35E +:1015A000CDF3B9C5F7BEF703A48ED3AF93C2AF9501 +:1015B000CEB295C8B49AC4D1B49DC0B99DCBD5065E +:1015C000A191C807A2D1A7D6ACCBADC0B2C3D3B747 +:1015D000C808ACC1B1C4B6CE09BBCE0AA9D2D6BE2A +:1015E000D71F0101A698C9CEA89AC1C4D3D6A8C254 +:1015F000C3D4D5AFC2C3D4D5B2CBCCB9C1E5C9CA67 +:10160000CDCED2F6BB9DC6D1BEF702B9CBCC04A8D5 +:10161000C6C7D0D1B3C6E8CFF103A68AC8CFA89475 +:10162000C5D2B298CACDB69DC8CFA89DC0D706A1D5 +:1016300091CACD07A6C2D5ADC3D4B7C2CBD508A534 +:10164000C4D3B6CCBBC709BBCC0AA6CEBEC5BED2DE +:101650000D8EC2C3D4D598C2C3D4D598CBCC91CA71 +:10166000ED1F0001A4C0C2C4C6C8CACCCED0D2D41B +:10167000A98BC0C2C4C6C8CACCCED0D2D4AFC0C257 +:10168000C4C6C8CACCCED0D2D4A493D6B4C1F6BEF8 +:10169000F702B9C1F603A493C1C3C5C7C9CBCDCF67 +:1016A000D1D3D5B49DC006A19DD707A7C0C8D0ADE2 +:1016B000C4CCD4B2C0B7C6CACEBCC1D608A1CAD3A6 +:1016C000B6C8D009BBC80AA4C0A9C0AFC01F0001DA +:1016D000A5C0E2C6EBCEF0AD91D3D6ADD7AFC1EA8F +:1016E000B0D4B094D5B4C0E3CAECB5D3F6B9C0E673 +:1016F000BEF704A2C4C5A5D2F7A9C4E8B6CEF003CC +:10170000A58AC3A59DD1A795C9AF93C0B29DD7B4F3 +:1017100098C4CDB99DC706A186CC07A3C0C6D0ADDD +:10172000C6CAAED4B1CFB3D3D6B7C1BCC1CDD6082B +:10173000A2C1C9CFACC309BBCB0AA5CAB5D4BEC030 +:101740000D8FD4D51F0001A4C1E8A6CAEED2F7A818 +:101750008ACEA9C2E7ABCEF7AD92D6B1D2F4B0959E +:10176000C2E4C7B2C6B4C5C6B7CEF2B6D6D7B9C5FD +:10177000BEF702AB9ACBABCCB19ACCB9C1E4C6EA06 +:1017800004AECCF103A49DC0A498C9A68ACFD4B05E +:1017900095D7B19DD506A185D207A4CFD3D7A6D121 +:1017A000A7C2C7A9CBCCD7AED7AFCCD3B2C5B5D023 +:1017B00008A1C4A3CCA8D209BBCC0AA9C6B1D3BE88 +:1017C000D70E93C51F0101A5C0E2C4A8D3F6AAC6CF +:1017D000F1AA8CD5ABC1E3AA9DC6AA9AD1ADD3F725 +:1017E000AFC7E9CDEFAF94D3B092C3B2C0E2B3D3E9 +:1017F000F7B496C5C9CDB698C4B7C7F0B89AC3B9FF +:10180000D2B8D5F7BCC2D3BEC0F704A7C4C5A5D112 +:10181000F3ACC8EFB1C7EFAAD203A184C0A88CD79C +:10182000A9C3AA8DCBAB91C0AC96D0AD92D6B196E0 +:10183000CBB29DC1B397D5B496C7CEB89DD406A5FB +:1018400089C307ABD4ADC7CFB1D4B5C8CACCCFB666 +:10185000C3D7B7D2BCC0C4CACCD708A5D4A7C8BB0D +:10186000C509A8C20AA5C2BEC0D70F9DC3E5C7F26D +:101870001F0001A4C1C2A9C1E6CAF6A99BCAAEC095 +:10188000E7CDF5B092CDD5B3C4E6CBEDD0F5B597A5 +:10189000C6D5B8C2E6CBF5BAC0E2BDC4C8C9CFF759 +:1018A000029FC0F704A3C7F6BAC4E703A48DC0A67D +:1018B00088C6A997C3A99CD7AE9CC8B397CFD4BA02 +:1018C0009EC3BDCE06A185C307A2C1A7D3ACC1C428 +:1018D000CEB1C6CBD1B6C5D0D3B8C0C1BDC0C5CAC4 +:1018E00008A6CDB0C4BCC609A1C20AB3D1AECDD53D +:1018F0000D99C0C10F9EC5E71F0001AAC2CEACC0A2 +:10190000E2AE90C2B1C0E3D3F6B39DC0B6C1E4CDA0 +:10191000B7D0F6B8C7EDB9CDD0D49BC5D4BCC4C53B +:10192000D1F7BEC0F702A5C0E2C4EDAA95CDAC9038 +:10193000CEAFCFD004A4CEF4A7CAECABD0F5AEC4E2 +:10194000ECB1CEF1B8C2E403A184D5A790C3A7C976 +:10195000AA8ECFAB90D6AC97C9B197CCB49DCEAE82 +:101960009BD7B89DC1C6BA9DCC06A5C307AAC1CC5A +:10197000ADD0AFC5C8CBC0B4C1B5D2BAD1D3D6BC37 +:10198000C3C7CB08A7CEB3C3B4D1BBC909B5C70A77 +:10199000AACEBCD3BCD50D8BC0C11F0001A4CCF70F +:1019A000A5C7E9A9CDF6AAC1E4AFC5C7E9B4C4B9D2 +:1019B000C2C3C7E9CDF7BEC0F702AAC8EA8BCDF60D +:1019C000AC98CDAC95D6AFCFF4B193CFB4C8EACF35 +:1019D000F604A2C1E503A488D1A589CAA59DC0A922 +:1019E0009DCCA998D7AA8EC5C7AF93C4CAD5AF98C6 +:1019F000CEB498C3C7B99DC1B9CA06A186C6BB9D5E +:101A0000CA07A2CCD6A3C9A8C2C4C9ADC9D0D3B293 +:101A1000C9D1D3B7C4C9D1BCC2CED608A1D4A7C33B +:101A2000A6D4ACCB09A6CB0AA5C9AFC9BED71F00A7 +:101A300001A7C1C5EACDF3D5F7A9D6AFC5E8D2F75E +:101A4000B6C0E6B8C6EACFF1D3D5F7BAD3F7BCD45F +:101A5000F7BDC0EACFF702A5D5AFCAF1B8CCED9F6C +:101A6000C0F704A2C3CBCCD4F7A9C6F3ABD6B0C1A0 +:101A7000C2B1D2F4B5D203A192C0A286D3A589C4C3 +:101A8000A5CAA78AD4A98BD5A98EC5D7AF97C9B443 +:101A900097D1B6C7B89ECBCE06A184CA07A5C1C54B +:101AA000C9CED1D7AAC7CBD0B4C0C3B6D7B8D4BBE0 +:101AB000C0C2BDCC08A4C7D0ACD409B5CC0AA7C15C +:101AC000B8D7BDC00D86D6D70E99D41F0101A2C8C4 +:101AD000CFD5A3C8D0D4A4C7D4A5C1E6CDD1F385B2 +:101AE000CDF0A7C6CDD1A9C6F6AAC0E4AEC6F7AF61 +:101AF000C1E4B093C4C6D1D3B3D4B395C7D594C40D +:101B0000B496C3D1B597C8B698C2B6D0D1D5F7B7F9 +:101B10009AC9B89AC1B8CEF1B9C6BAC4CAEEBCC3A4 +:101B2000C4C7BB9DD5D7BDCFF1BEC0E8CFF702A5D6 +:101B3000C0C2C39FC9EE04A6C7F0B0C7F0B1C1E3ED +:101B400003A59DC5D2A98DD7AA8EC3AF9DC0B8CD20 +:101B5000BA9ECCBB9DC8BB9EC906A188CBBB9DD6F7 +:101B600007A3C0C6D3A7C8CED0D4A8C0B1C8B3CA33 +:101B7000CEB2C3B4D6B9D7BAC3BBD1BCC1C6D3BD2C +:101B8000CACE08A2C3BBC2D409ABCA0AB3D4B8CE6A +:101B9000BCC30D88C7ECCEF092D4D595D6D797CDDF +:101BA000EF99CAEC0E9DD61F0001A4C9F6A6C7E99D +:101BB000A69BD6A699C7A9CBF4A99BD4ABC9EBD455 +:101BC000AD9BC9ACC2C3AEC3E5AECDF2B0CBEDB0F8 +:101BD0009BCBD2B1C2C3B3C5CFD0B5CDF0B799CDF1 +:101BE000D0B8C2C4C5BACDF0BDC0E7029FC0F704EB +:101BF000A1C7E9A4C4C5A7C1C203A185C6A488C35F +:101C0000A79CC0A49ED7A99ED5AE9ED3B39ED10655 +:101C1000A186C007A2CCD2A7CCD1A9C9AAC2ACC503 +:101C2000ACD0AECCAFC2B1C5CFB3CDB6C2C5B8CEC5 +:101C3000BBC2C508A3C8A8CAADCBB2CE09BAC30AF5 +:101C4000A6C7ABC9B0CB0D99CECF1F0001A5CBED78 +:101C5000D4D5A7C0C1C6E8D5AAD1F5ACC8EEAE9020 +:101C6000C8AFCEB1C3EEB9C3E6BEC0F702A5D1F38B +:101C7000A789D1B398C3C6BEC2E5C9EDD0F3D6D704 +:101C800004A2C0E4C9F1A9CFD0ACCFD003A5C0A5B0 +:101C90009DD6A792C2B19DC706A184D607A3D4A59D +:101CA000C1C6C8A8D2D4AFC9CBCDB7C4C5BCC0C506 +:101CB000CED408A2CCD2A9CB09BBCB0AA5CBACC849 +:101CC000BEC00D89D2F498C4C51F0001A5C3F0A7FA +:101CD000C9CDAAC0F7ACC9CFAFC6F7B1C9CDC6B29E +:101CE000C0E5B4CAF6B6CDB7C1E6B9C6F7BBCDBE3E +:101CF000C0F70289C9CD8EC9CF93CDB396C6B3952F +:101D0000C9B8CDBDCD04A2C1C2D2F703A289C0A576 +:101D100089D1AA91C1AA8ED4AF93D1B296C3B498F7 +:101D2000D7B79DC0B99DD206A184C307A3C5C9A8D2 +:101D3000C4CBCFD7ADCBD2D7B0C2B2CBCFB5C1B762 +:101D4000C8CBD5BCC2CBCF08A2CBA7D2B1D3BBC71F +:101D500009BBC30ABECCCED71F0001A4C5F2A6881A +:101D6000C5CBD2D3A9C3E7CBCFF3A6D4F6AB8FC3F1 +:101D7000C7CFA694D7ABC7EFD3F7AEC1E7B097C133 +:101D8000C7B0CDF4B294CDB39AC4B3C5C6B5CAEE4C +:101D9000D1D5F7B6C2C3B7C7EACED1F5B9C4E7CA41 +:101DA000CEF1BEC0F702BEC1C3C5C7C9CBCDCFD12E +:101DB000D3D5D704ADD503A488D1A98FD0B094CC06 +:101DC000D6B59DCBB598D0B5D2D406A19DC007A7F6 +:101DD000C7A9C9CDD5ACC5AECDD4B3CEB4C2B5C8F4 +:101DE000D3B7C5CFBCC2D3D708A1CAA3D4ADD2093B +:101DF000BBC90AA4C5A4CBAEC10D85D3F78ACCEE6E +:101E000096C8C91F0001A799D6A78ED4A7D0F3A959 +:101E100091D0AACCEFAC94CCADC8EBD1F3AF97C8BE +:101E2000B0C4E7CDEFB29BC4B3C0E3C9EBB59BC070 +:101E3000B6C5E7BAC1E3B299D3B2D4D5B8D4D5B553 +:101E4000CFF2B7CFB9CCEFBBCCF2BDC7F7029FC082 +:101E5000F703A79CD7A791D5A789CFAA8CCBAD8F25 +:101E6000C7B092C3B294D2B598CEB99CCB06A18626 +:101E7000D7BDC607ABD1D3AECDCFB1C9CBB0D4B3EC +:101E8000D0B4C5C7B7CCB8C1C3B9D0D2BBD3D5C8FD +:101E9000CA08A4D2A7CDAAC9BCC009B5D40AB3C088 +:101EA000BDD3BAC10D8CD1F31F00029FC0F704A4AB +:101EB000C4CAD2D6A7C1C2C5C8CBD0D3D5AAC6CCB6 +:101EC000D4ADC2C7CDD0D5B0C1C6C8CBCED4D6B3A1 +:101ED000C5C8CACDCFD3D5B6C1C4C9CCD0D2B9C27A +:101EE000C5CBD4D603A487C3D1A490C9D7A790C02B +:101EF000A78DCFAD99C3AD9ED1B69EC006A186C0B9 +:101F000007A5CACFA9C2D2D6ADC6B1D4B4CFBAC57F +:101F1000D4ACCB08AACCB6C9CCD209BCCB1F00012B +:101F2000A587C2C6D1A898C2F700A88DC8AB8DC638 +:101F3000C7AB98C5AE90CBF0AED3ACD6B597CDEFCE +:101F4000B7CC01AECDEEB9CDEEBACCEDBC9ECBEDAB +:101F5000029FC0F704A2C1F7B9D0F503A59EC0AE99 +:101F60009AD6B89ACF06A184C007AFCBD0AED3081B +:101F7000A5C9CCABC7BCD209B5CE0AA8D0AEC6BCE9 +:101F8000CB0E90CBCCCFD08FD399CC1F0001A8958E +:101F9000C0EAA8CCEFADCBF6B4D1F6B9C0EDBBC565 +:101FA000BCCEBEC0F700B093C2E4B395C9AF95CA2A +:101FB00004A3C1EEA5D0F6B1CAF003A287C0CFA892 +:101FC0008ACBAA8ECAAE92C9B295C8B99DC6CCA515 +:101FD0009DD706A184D707A8D0D2D4B2C2C4B7C2B5 +:101FE00008AACED3B1D3BBD309BBC90AB9C0BEC4FA +:101FF000BECD0F9DC0E41F0001A8C9ECD1F4ACC157 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4e.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4e.hex new file mode 100644 index 00000000..d12ef3bf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4e.hex @@ -0,0 +1,513 @@ +:10000000F33100E8010000FD21000010FA0D20F797 +:10001000ED5621B3E63601DB04CB7FCA416F35CD07 +:100020007A00000000FBC3CF25CD001DCD4C04CDD0 +:100030002C0718F5C7C7C7C708D9DDE5FDE5CD28EA +:1000400001CDA200CD68313A6AE5B7C44B2A3A9D8A +:10005000E5FE02CC4101CD9001FDE1DDE1D908FBD7 +:10006000C9C7C7C7C7C7FBED45C7C7C7C7C7C7C746 +:1000700093246CDB7AFB8591A380AF329DE5D3019D +:100080002100D03600545D1301F017EDB0CD2801EA +:10009000CDF408CDD608CDA66D3E00D300F680D3B2 +:1000A00000C921B5E535233521B5E6353AB9E5B7BF +:1000B0002004DB011802DB022F324DE421CFE507DB +:1000C000CB160707CB163A4DE421D0E50FCB160F20 +:1000D000CB16DB002F21AAE51FCB161FCB16DB04A6 +:1000E000CB67202921B4E57EB720113AAAE5E605C1 +:1000F000FE0520063601F1C3590018113AAAE5E6BB +:100100000AFE0A200436001804F1C35900CD230961 +:100110003AAFE5B720053E0232B2E53AA7E5B7C8E7 +:100120003AB2E5B7C8C3A0683AB3E6B72807CD39F5 +:100130007CF1C359000100011100C02100E3EDB0C2 +:10014000C9CDE603CD000BCD0013CD0024C9FDE5DC +:100150003AE9E43288E5FD2158E4111800DD7E0615 +:10016000FDBE062020DD7E07FD96073002ED44FE31 +:10017000043012FD7E0DB7280CFD7E08FE0930020A +:100180000EFFFDE1C9FD192188E53520D0FDE1C94B +:100190003A9DE5B7C83A6AE5B7CC0332DD2140E4C1 +:1001A000FD21B0E33A6AE5FE022004FD21F0E3AF51 +:1001B00032E8E4DD4E0A3AE8E4B72817DD7E0DB7F1 +:1001C000280EDD3408DD7E08FE183804DD36080010 +:1001D000CD4E0179FEFF200BFD360400FD360C00EC +:1001E000C3110306002AF6E43AE8E4B7200521002B +:1001F000001819573A02E5B728123AE9E4BA200C78 +:10020000113000193ACDE5FE082001EB0922F9E48E +:100210000160450946DD6E00DD7E01C604672929BF +:10022000290E00CB28CB19DD7E0BB72004ED421838 +:10023000010929FD74063E0017FD77073AF8E44FDF +:10024000DDCB176628010C3AE8E4B720040E03184A +:1002500011473A02E5B7280A3AE9E4B820043A6EB1 +:10026000E54FCBE1FD710011B0432AF9E41956DDE9 +:100270007E0BB720043E40AA577AE6C0FD77052AD8 +:10028000F9E47A11004219575ED5FD730411C04894 +:100290002AF9E419AF575ECB7B280115DD6E02DD2C +:1002A0006603292929176C6719EB21E900B7ED527C +:1002B000ED5BE3E519FD7502FD7403D1CB42284DDA +:1002C0001CFD730CFD7108E501704A2AF9E4097EF2 +:1002D0000600ED444FCB79280105E109FD750AFDC3 +:1002E000740B7AE6C0FD770D0110472AF9E4097E08 +:1002F000CB722802ED444F0600CB79280105FD663C +:1003000007FD6E0609FD750EFD740F1804FD360C11 +:100310000011F0FFFD19011800DD0921E8E4343A6D +:10032000E9E4BED2B3013A6AE5FE02C8FD2100E36A +:100330003A17E58787872112E586ED443C4F060092 +:100340002AE3E509FD7502FD7403FD3600123A1635 +:10035000E5C6048787876F260029FD7506FD7407AB +:100360003A10E5FD7704FD2108E3FD360400FD3673 +:100370000C0016141E02DD2118E5DD7E01FE0028AA +:100380003ADD7E03878787473EF1904F06002AE3D8 +:10039000E509FD7502FD7403DD7E02C604878787CB +:1003A0006F260029FD7506FD7407FD360012DD7EFF +:1003B00001FD7704010800FD091DC8010400DD09E5 +:1003C0001520B7219EE506007EB7281235200FE5DF +:1003D000788787875F160021C4E3193600E123047C +:1003E00078FE0838E3C9218AE57E23B623477EE6F6 +:1003F000F0B0200BAF773E0132CEE5CD0332C90E0F +:100400000021B1E63A8BE5BE20010CED5BE1E52170 +:100410008DE57E9327772B7E9A277706022B7EDE4B +:1004200000277710F8CB41C83A8BE521B1E6BEC86A +:100430007EFE1520043E1C180AFE1020043E1D18E6 +:10044000023E1ECD42317ED6052777C93AFCE4B77D +:10045000C021B6E53A04E5B7200236FF7EFE8038BB +:100460000236187E2104E5FE09300D7EFE012806C5 +:100470003E0177CD8963180B7EFE0228063E027787 +:10048000CD89633A41E4217BE5BE200C3A43E42365 +:10049000BE20053E0132AFE63AAFE6B7C83A46E4C1 +:1004A000FE08C0AFCD8963F13E00329DE53E00CD30 +:1004B00042313E23CD42313E54CD3E30CD8D323A95 +:1004C00000E5B720472121D736052B36001122D76A +:1004D000013E00EDB021A1D736052B360011A2D781 +:1004E000013E00EDB02121D836052B36001122D86F +:1004F000013E00EDB00E4721A2D711F806CD2D30F8 +:100500003E1FCD42310E02CDCF2F184C3AFFE4B73B +:10051000C264052125D736052B36001126D70138B0 +:1005200000EDB021A5D736052B360011A6D701382E +:1005300000EDB02125D836052B36001126D801381C +:1005400000EDB00E4721A6D711DC06CD2D303E1FA1 +:10055000CD42310E01CDCF2FCD03323A00E53289A5 +:10056000E5CD8906216CE53A8BE5BE3857CDB93229 +:1005700021A3D136052B360011A4D1013400EDB0F2 +:100580002123D236052B36001124D2013400EDB0E0 +:1005900021A3D236052B360011A4D2013400EDB0D0 +:1005A0000E472124D2116F06CD2D302A8BE522B6BD +:1005B000E63EFF32B5E63E013205E5CDE4052AB65A +:1005C000E6228BE5CDE405218EE54E347EFE6120EA +:1005D00002364979CDEC31B7C2005D79E607CA34FD +:1005E00028C3ED263A8FE53289E53E143288E52AA4 +:1005F0008BE57CE6F0B52832218CE57ED610277796 +:100600002B7EDE002777011000CDDB2FCD033221BA +:1006100088E53520DA218FE53A89E5BE20053E11CF +:10062000CD42313E04CD300618C03E1CCD3006C947 +:1006300032B5E53A05E5B7282A21B5E67EFE8038D1 +:100640000236287EFE143012212BD136052B3600BF +:10065000112CD1010200EDB01809212AD1116B062D +:10066000CD2D303AB5E5FE0020C9C906583200420A +:10067000454C4F572048414C462054494D45204356 +:100680004C454152414E4345003E093288E521B96F +:10069000D836052B360011BAD8010C00EDB021393F +:1006A000D936052B3600113AD9010C00EDB00E47B2 +:1006B0001126073A88E51F300C1118073A89E5B76B +:1006C0002003111F0721BAD8CD2D303E0ECD3E306C +:1006D0002188E53520D83E70CD3E30C9594F552090 +:1006E00048415645204B494C4C4544204E4F2045EF +:1006F0004E454D4945532E00594F55204D414445D7 +:1007000020495420574954484F555420454E54527F +:10071000415050494E472E000431303030300004F3 +:10072000323030303000202020202000CDCE07CDC8 +:100730001D08CDAA093A50E4B7C03AA7E5B7280E7C +:100740003E00329DE53E38CD3E30F1C38568DB0486 +:10075000CB77C83E0C324AE43E01329DE53E00CDE7 +:1007600042313E06CD42313E38CD3E303E00329DD4 +:10077000E5F1218FE5357EFEFF202A2134D711A82F +:1007800007CD2D3021B4D711B507CD2D302134D868 +:1007900011A807CD2D303E21CD42313E8CCD3E30CB +:1007A0003E023290E5C3E36A06202020202020206C +:1007B0002020202000062047414D45204F5645521D +:1007C00020002054494D45204F56455220003ACE36 +:1007D000E5B7C8DB04CB77C8F1AF32CEE5329DE593 +:1007E0003E00CD42313E25CD42312135D736052B55 +:1007F00036001136D7011400EDB00E4721B4D711E1 +:10080000C207CD2D302135D836052B36001136D80C +:10081000011400EDB03E8CCD3E30C367072A55E48D +:1008200001C0FE09D0AF3250E4329DE5CD8D3221BA +:1008300029D736052B3600112AD7012A00EDB02121 +:10084000A9D736052B360011AAD7012A00EDB02111 +:1008500029D836052B3600112AD8012A00EDB03EE2 +:10086000023289E53E10CD42313E043288E53A88B5 +:10087000E51F301221ABD736052B360011ACD7015E +:100880002800EDB0180B0E4721AAD711C008CD2DB6 +:10089000303E15CD3E302188E53520D22189E53521 +:1008A00020C23E10CD42310E4721AAD711C008CD3B +:1008B0002D303E54CD3E303A8FE5B7C0CDB932C968 +:1008C000594F552041524520424F554E4420544FD8 +:1008D000204449452E00DB032F47E60332DFE5784D +:1008E0001F1FE6034F060021F008097E32E0E5C92C +:1008F00002010304DB032F1F1F1F1F4721AFE5DB8E +:1009000004CB572011783CE6037723781F1FE603BA +:10091000FE02DEF577C9783CE60FCB5F28013C7715 +:100920002377C921ADE511AFE5DB00CD580921AE34 +:10093000E513DB021FF604CD58093AB9E54721ABB0 +:10094000E57EB72805353E02B047237EB72805353A +:100950003E04B04778D301C91F1F1FCB161FCB160B +:100960007EE655FE50202B2B2B360C3AB2E6B720F4 +:10097000083E12D300F680D3001AFE012812FE08AA +:10098000300C21B1E534BEC0AF773E011802D60865 +:10099000180D7EE6AAC021B3E5347EE60FC03C21E7 +:1009A000B2E5862730023E9977C9DB04CB6FC0CB16 +:1009B00067C8DB00CB47C0F1F1AF329DE53E00CD0B +:1009C00042312110D03600545D1301EF13EDB021F8 +:1009D00022D711290ACD2D30211AD911480ACD2D3F +:1009E000301100000E043A8EE52160D9CD48302147 +:1009F0008EE5DB01CB7F280ECB42280816007EFE59 +:100A00000238013518021601DB01CB6F2809CB43F0 +:100A100028031E003418021E013E01CD3E30DB00CB +:100A2000CB4F20C07E3DC3D4050253454C454354B3 +:100A300020425554544F4E20544F204348414E4776 +:100A40004520524F554E4400024449474C454654B8 +:100A50002D2D444F574E2020444947524947485472 +:100A60002D2D555020204C4556454C2D303000C77B +:100A7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C706 +:100A8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F6 +:100A9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E6 +:100AA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D6 +:100AB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C6 +:100AC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B6 +:100AD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A6 +:100AE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C796 +:100AF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C786 +:100B00003AA7E5B7280ECD125C324DE4FEFF200473 +:100B1000AF3250E42A44E47D6C2C2CCDD5627E2A81 +:100B200055E4FE0E38032318032100002255E4DDAE +:100B30002140E42108E57EB72801352106E57EB78E +:100B40002818353A0AE5DDBE0B200F210BE53A44A3 +:100B5000E4BE2806773E0CCD73303A4EE4B7FAB4C3 +:100B60000FC24310214CE47EB7281135C03608214E +:100B70004AE4347EE6FCFE14C83614C93A54E4FE56 +:100B800002200D061CCD9F10D0AF3254E4CD371299 +:100B90003A54E4FE01200ECD0E120620CD9F10D057 +:100BA0003E033254E4AF3251E43A44E42A45E4CD02 +:100BB000002D06F80E10CD8D2ECA9F0CAF3287E5A2 +:100BC0003254E47EE6FCFE1820133E013287E53AFB +:100BD00042E4B720083E013251E4CA9F0C3A45E492 +:100BE000FE1D300E1AE6F8FE1028071AE6F8FE0879 +:100BF000200D3E013287E53A42E4FE80DA9F0C2A5E +:100C000047E43A46E4CD152DDAB10C214FE47EB726 +:100C10002006343E15CD42313E0C324AE42109E52E +:100C20007EB7280435C3B10CCD0E122A42E47C11E4 +:100C30001E00192242E4BC280A3A87E5B72804AF0F +:100C40003242E42A42E4297C3C1F3245E429297CD3 +:100C50003246E4CD88113A42E4B7C03A44E42A452A +:100C6000E4CD002D3A45E4FE1D30061AE6F8FE08F4 +:100C7000C0150E04CDA92EC01D1D1D1D3A44E4B79C +:100C800028061AE6F8FE08C03A44E4FE17300A7B4C +:100C9000C6085F1AE6F8FE08C03E08324CE4C921D7 +:100CA0004FE47EB7280736003E16CD4231AF3252B0 +:100CB000E43A4DE4CB7FC2420FCB6FC2CF0FCB5F84 +:100CC0002806CD4C0ED81808CB572804CDB70ED81F +:100CD0003A4DE4CB47C25E0DCB4FC2210D3A44E4FE +:100CE0002A45E4CD002D1AE6F8FE08200B3E12320C +:100CF0004AE43E013249E4C906F80E10CD8D2E209B +:100D00000D151AE6F8FE10C03E08324AE4C97EE628 +:100D1000FCFE1820063E07324AE4C93E12324AE47D +:100D2000C9AF3287E53A44E42A45E4CD002D3A4480 +:100D3000E4B7280E151B1B1B1B06F80E08CD712EE1 +:100D4000200C3E013287E53A40E43DFE7FD03E0173 +:100D5000324BE4CD3712CDD40D11ECFF183DAF323C +:100D600087E53A44E42A45E4CD002D3A44E4FE17F1 +:100D7000300E151313131306F80E08CD712E200E26 +:100D80003E013287E53A40E4FE803002B7C9AF3217 +:100D90004BE4CD3712CDD40D1114002A40E47C1958 +:100DA0002240E4BC28143A87E5B7280E2A40E47DA7 +:100DB000FE803801242E002240E42A40E4297C3CB5 +:100DC0001F3244E429297C3247E4CD88110600CD46 +:100DD000F11037C93A51E4B7C8F13A4AE4E6FC21C8 +:100DE00049E4FE2C2802360135C0214AE4347EE66F +:100DF000FCFE2C2802362C7ED6184F060021204CF3 +:100E0000097E3249E421D04D097E878787875F3A82 +:100E100087E5572A40E43A4BE4B77D280D93300824 +:100E2000CB422803AF180125180983300624CB4292 +:100E30002801AF6F2240E42A40E4297C3C1F324461 +:100E4000E429297C3247E4CD881137C9AF3287E5E0 +:100E50003A44E42A45E4CD002D06F80E10CD8D2E3F +:100E600020143A45E4FE01281615151AE6F8FE0886 +:100E7000280D181718091AE6F8FE102802B7C93A03 +:100E800042E43DFE7FD03E013287E5CD0E123A446A +:100E9000E42A45E4CD002D151AE6F811E2FFFE1014 +:100EA000CA070F2154E47EFE03C2070F353E1C32F1 +:100EB0004AE4CDAB1037C9AF3287E53A45E4FE1DB1 +:100EC00030071AE6F8FE08200E3A42E4FE803002AF +:100ED000B7C93E013287E5CD0E123A44E42A43E415 +:100EE000CD002D1A15E6F8FE101A111E002018E686 +:100EF000F8FE1028122154E47EB7200B343E203235 +:100F00004AE4CDAB1037C92A42E47C192242E4BC42 +:100F100028113A87E5B7280B7DFE803801242E0082 +:100F20002242E42A42E4297C3C1F3245E429297C00 +:100F30003246E4CD88110608CDF1103E033254E468 +:100F400037C9AF320FE53A45E4FE1CD03A44E4B766 +:100F5000C83A45E46FC6033217E53A44E43D321619 +:100F6000E5CD002D06FC0E08CD7F2EC0ED5313E518 +:100F70001506F80E00CD7F2EC03E10324AE4141C38 +:100F80001C1C1C1AE6F8FE0828172C2C2C2C7EE6BC +:100F9000FCFE1828077EE6F8FE1020053E11324AB6 +:100FA000E43EFF324EE42140012211E53E01324B86 +:100FB000E43207E53A0FE5FE0ED259102A46E47DE9 +:100FC000C6086F7CD606CDEF2DDA9210C35910AF4C +:100FD000320FE53A45E4FE1CD03A44E4FE17D03A1D +:100FE00045E46FC6033217E53A44E43C3216E5CDDA +:100FF000002D06FC0E08CD7F2EC0ED5313E515061F +:10100000F80E00CD7F2EC03E10324AE4141D1D1D87 +:101010001D1AE6F8FE0828172D2D2D2D7EE6FCFE64 +:101020001828077EE6F8FE1020053E11324AE43EFD +:1010300001324EE42140012211E5AF324BE43E0182 +:101040003207E53A0FE5FE0E300F2A46E47DC6086A +:101050006F7CC606CD312E38392107E57EB72807CB +:1010600036003E01CD4231CD0E12CD37123A0FE59A +:10107000FE14D203112110E536F33A0FE51F1F309D +:101080000236F22A11E511C000192211E5210FE5FF +:1010900034C93E003210E5AF324EE43207E5C921D3 +:1010A00049E4352802B7C9214AE4343A4AE4D6185B +:1010B0004F060021204C097E3249E4B720073E014B +:1010C0003249E437C921A84E09561E00CB2ACB1B52 +:1010D000CB2ACB1BCB2ACB1B2A42E4192242E42A7F +:1010E00042E4297C3C1F3245E429297C3246E4B79E +:1010F000C92149E435C03606214AE4347EE6FCB80D +:10110000C870C9AF324EE4320CE53D320BE5CDDD9F +:101110000CED5B13E53E04CDBE2F3E003210E52101 +:1011200018E506147EB728072323232310F6C936B3 +:10113000A023233A16E5775F233A17E577572A71FC +:10114000E5B7ED52C02271E53E013202E521E9E446 +:101150007EFD2158E4011800FD093D20FB34FD7798 +:1011600000FD7702FD7301FD730415FD7203FD722E +:10117000057B878787FD77077A878787FD7706FD59 +:10118000360901FD360CB0C93A51E4B720183A408F +:10119000E4FE803802ED44FE14D03A42E4FE80388A +:1011A00002ED44FE1ED03A44E42A45E4CD002D155C +:1011B0001AE6FCFE602020CD832FED5FFE3338045D +:1011C0003E08180AFE0D38043E0918023E0ACD7387 +:1011D000303E02CD4231C9FE70C021FCE435CD5C09 +:1011E0002F0E00141AFE0420020E04210DE53A0809 +:1011F000E5B72004360018067EFE033001347E81F8 +:10120000CD73303E133208E53E02CD4231C92A404B +:10121000E47DFE803007D6143001AF1806C61430C6 +:101220000224AF6F2240E4297C3C1F3244E4292988 +:101230007C3247E4C388113A52E4B7C02A42E47DC5 +:10124000FE803007D61E3001AF1806C61E300224BD +:10125000AF6F2242E4297C3C1F3245E429297C32CD +:1012600046E4C38811C7C7C7C7C7C7C7C7C7C7C76B +:10127000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FE +:10128000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EE +:10129000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DE +:1012A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CE +:1012B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BE +:1012C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AE +:1012D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79E +:1012E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78E +:1012F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77E +:101300003AE9E432E8E4DD2158E4CD19131118007C +:10131000DD1921E8E43520F2C9216DE536003A02F5 +:10132000E5B728193AE8E4FE012012343A03E5B79C +:10133000280BDD7E0CFE202004DD360C40DD7E0E09 +:10134000B7C03AF5E4B72803DD3417DD7E0CB728C3 +:1013500032DD350CDD7E0CFE20DA2315DD6E07DD77 +:101360007E06CDF22EDD7E0CFEB0D0DD3509C0DD6F +:10137000360908DD340ADD7E0AE6FCFE14C8DD36D7 +:101380000A14C9DD7E14FE14200FCDF718D8061CF0 +:10139000CD661AD0DD361400C9DD7E14FE012012A0 +:1013A000CDC11BCDF718D80620CD661AD0DD361476 +:1013B00015C9DD7E15FE022019CDC11BCDF718D849 +:1013C0000628CD661AD0DD361500DD3409DD360F6E +:1013D00002C9DD7E15FE01200FCDF718D80624CDF9 +:1013E000661AD0DD361503C9DD7E06DD6E07CD9E9B +:1013F0002DDA7515DD7E04DD6E05CD002D06F80EA7 +:1014000010CD8D2ECA7515AF3287E5DD77147EE6D7 +:10141000FCFE18200C3E013287E5DD7E02B7CA755E +:1014200015DD7E05FE1D30291AE6F8FE1028221A69 +:10143000E6F8FE08281BDD7E16B728083CDDBE0551 +:10144000301C180D1AFE042015DD7E05DD771618F8 +:101450000D3E013287E5DD7E02FE80DA7515DD3650 +:101460001000CDC11BDD7E02C615DD7702300DDD1B +:1014700034033A87E5B72804AFDD7702DD6E02DD7D +:101480006603297C3C1FDD770529297CDD7706DD95 +:101490007E06DD6E07CDD32ECD391B060CCD2E1A60 +:1014A000DD7E04DD6E05CD002D247E25FE04203E6C +:1014B000DD7E0DB72819DD360D00EB06FC0E00CDE4 +:1014C0007F2E2004CD0E2FC921FCE435C9181F3A08 +:1014D0006DE5B728193A03E5B720133E013203E55D +:1014E000EB06FC0E00CD7F2E2003CD352FC9DD7E0F +:1014F00002B7C0151AFE04C03A87E5B7C8DD361634 +:1015000000DD360CC0DD361000DD360A103E05CD9C +:1015100042313A6DE5B7C0010001CDDB2F3E01320B +:1015200000E5C9B7283CFE1F200FDD361001DD366F +:101530000FFEDD3505DD3505C9FE183806DD7E0FE9 +:10154000FEFEC8DD361000DD3405DD3405DD7E0F1E +:10155000DD770BFEFE3804DD770CC9DD360A18CDC9 +:10156000761ADD360C01CDF718D80618CD661AD0DC +:10157000DD360C00C9DD361600DD361001DD7E0FCC +:10158000B7CA85173DCA29173DCA5D163DCA9A15C7 +:10159000DD6E07DD7E06CDF22EC9AF3287E5DD7E3A +:1015A00005FE012823DD7E04DD6E05CD002D06F845 +:1015B0000E10CD8D2E200B15151AE6F8FE082014FE +:1015C00018061AE6F8FE10C0DD7E023DFE7FD03E12 +:1015D000013287E5CDC11BDD7E04DD6E03CD002D1C +:1015E00024247EE6F8FE1020301AE6F8FE102029AA +:1015F000151AE6F8FE102821DD7E14FE15201ADDEE +:101600003514DD460ADD4E09C5DD360A1CCD761AD5 +:10161000C13041DD700ADD7109DD7E02D615DD774E +:1016200002300F3A87E5B72806AFDD77021803DDF1 +:101630003503DD6E02DD6603297C3C1FDD7705295D +:10164000297CDD7706CD391BCD7A1B0608CD2E1AF5 +:10165000DD361415DD7E06DD6E07C3D32EDD7E0676 +:10166000DD6E07CD9E2DD8AF3287E5DD7E05FE1DF0 +:101670003010DD7E04DD6E05CD002D1AE6F8FE0883 +:10168000200BDD7E02FE80D83E013287E57EE6FC3F +:10169000FE182017DD7E15FE032010DD3515DD3622 +:1016A0000A28CD761AD0DD360A0CC9CDC11BDD7EE5 +:1016B00004DD6E03CD002D1AE6F8FE102029151A60 +:1016C000E6F8FE102821DD7E14FE15281ADD3414FC +:1016D000DD460ADD4E09C5DD360A20CD761AC13059 +:1016E0003FDD700ADD7109DD7E02C615DD7702304F +:1016F0000DDD34033A87E5B72804AFDD7702DD6EF0 +:1017000002DD6603297C3C1FDD770529297CDD7716 +:1017100006CD391BCD7A1B0608CD2E1ADD361415E1 +:10172000DD7E06DD6E07C3D32EDD6E06DD7E07CDC2 +:10173000EF2DD8AF3287E5DD7E04B72816DD7E04B5 +:10174000DD6E05CD002D2B2B2B2B06F80E08CD8D35 +:101750002E200CDD7E003DFE7FD03E013287E53E2F +:1017600001DD770BCDEE1BCD4C18DD7E00D60EDDF6 +:101770007700300F3A87E5B72806AFDD770018030A +:10178000DD35011857DD6E06DD7E07CD312ED8AF71 +:101790003287E5DD7E04FE173016DD7E04DD6E0542 +:1017A000CD002D2323232306F80E08CD8D2E200BEC +:1017B000DD7E00FE80D83E013287E5AFDD770BCDC0 +:1017C000EE1BCD4C18DD7E00C60EDD7700300DDD42 +:1017D00034013A87E5B728ABAFDD7700DD6E00DD79 +:1017E0006601297C3C1FDD770429297CDD7707CD44 +:1017F000391BCD7A1BDD6E06DD7E0BB7DD7E07283B +:1018000005CDB92E1803CDB52EDD7E04DD6E05CDD8 +:10181000002DE6FCFE182019DD7E15B7200BDD3407 +:1018200015DD360A24CD761AD0DD361503060418E8 +:1018300018DD7E15FE03200BDD3515DD360A28CDBB +:10184000761AD0DD3615000600C32E1A3A6DE5B7BC +:1018500020073AFBE4B7C818053A6FE5B7C8DD7E44 +:1018600004DD6E05CD002DE6FCFE18C0F1DD6E0630 +:10187000DD7E0BB7DD7E072805CDB92E1803CDB56B +:101880002EDD7E0AE6FCFE2C2804DD360901DD355E +:1018900009C0DD340ADD7E0AE6FCFE2C2804DD36B4 +:1018A0000A2CCD191B21204C097EDD770921D04D52 +:1018B000097EB7C8878787875F3A87E557DD7E004F +:1018C000DDCB0B46280F93300ACB422803AF180319 +:1018D000DD3501180B833008DD3401CB422801AF20 +:1018E000DD7700DD6E00DD6601297C3C1FDD7704BD +:1018F00029297CDD7707C9DD7E0FFEFFC8E603CA14 +:10190000A6193DCAEA193D2859DD7E0CB7280FDD1E +:101910007E04DD6E05CD002DE6F8FE0837C8DDCB70 +:101920000F6E200ADD7E06DD6E07CDA22DD8DD46C6 +:101930000FCB782020DD7E02D620DD77023003DD5C +:101940003503DD6E02DD6603297C3C1FDD7705294A +:10195000297CDD7706DD7E06DD6E07CB70CCD32ECD +:10196000B7C9DDCB0F6E200ADD7E06DD6E07CD9E8A +:101970002DD8DD460FCB782020DD7E02C620DD7716 +:10198000023003DD3403DD6E02DD6603297C3C1F7B +:10199000DD770529297CDD7706DD7E06DD6E07CB48 +:1019A00070CCD32EB7C9DDCB0F6E200ADD6E06DDFD +:1019B0007E07CD312ED8DD460FCB782020DD7E008E +:1019C000C610DD77003003DD3401DD6E00DD660119 +:1019D000297C3C1FDD770429297CDD7707DD6E0635 +:1019E000DD7E07CB70CCB52EB7C9DDCB0F6E200ADC +:1019F000DD6E06DD7E07CDEF2DD8DD460FCB7820DE +:101A000020DD7E00D610DD77003003DD3501DD6E90 +:101A100000DD6601297C3C1FDD770429297CDD7708 +:101A200007DD6E06DD7E07CB70CCB92EB7C9DD357C +:101A300009C0DD360906DD340ADD7E0AFE03201208 +:101A40003ACDE55F1600215D1A197EB72804DD70D6 +:101A50000AC9DD7E0AE6FCB8C8DD700AC9000001CB +:101A6000010000010000DD3509C0DD340ADD7E0A19 +:101A7000E6FCB8C20D1BDD361000CD191B21204C31 +:101A8000097EDD7709B7CA0D1B21F84C097E57E6A0 +:101A9000032007DDCB0B46280114DD720F21D04D4A +:101AA000097EB72830878787871600DDCB0B46284D +:101AB00003ED44155FDD6E00DD660119DD7500DDA7 +:101AC0007401DD6E00DD6601297C3C1FDD77042991 +:101AD000297CDD770721A84E097EB7282F561E00E6 +:101AE000CB2ACB1BCB2ACB1BCB2ACB1BDD6E02DD3B +:101AF000660319DD7502DD7403DD6E02DD66032900 +:101B00007C3C1FDD770529297CDD7706C9DD350A98 +:101B1000DD3409DD360FFF37C93A6DE5B728083ADD +:101B2000CDE5E6073C18033ACDE5478780878787F0 +:101B3000DD860AD6184F0600C93A6DE5B7C0DD7ECE +:101B400000FE803802ED44FE0ED0DD7E02FE8038BD +:101B500002ED44FE15D0DD7E04DD6E05CD002D15B1 +:101B60001AE6FCFE70C0DD7E0DB7C03A68E5C6041B +:101B7000878787DD770DCD5C2FC9DD7E0DB7C8DD8A +:101B80007E0FFE02D0DD7E0AFE043803FE08D8DD9B +:101B90007E04DD6E05CD002D1506FC0E00CD7F2EDA +:101BA000C0DD350DC0DD7E0FFE00DD7E002006FEAF +:101BB00080300A1804FE803804CD0E2FC9DD340DA4 +:101BC000C9DD7E00FE803007D60E3001AF1808C692 +:101BD0000E3004DD3401AFDD77006FDD6601297C56 +:101BE0003C1FDD770429297CDD7707C3391BDD7EA7 +:101BF00002FE803007D6153001AF1808C615300434 +:101C0000DD3403AFDD77026FDD6603297C3C1FDD29 +:101C1000770529297CDD7706C3391BC7C7C7C7C726 +:101C2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C744 +:101C3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C734 +:101C4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C724 +:101C5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C714 +:101C6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C704 +:101C7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F4 +:101C8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E4 +:101C9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D4 +:101CA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C4 +:101CB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B4 +:101CC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A4 +:101CD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C794 +:101CE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C784 +:101CF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C774 +:101D00003AE9E432EAE4DD2158E4FD21EBE4DD7E4A +:101D100010B7281CDD6E04DD660522EFE4DD7E07CA +:101D200032F2E4CDFD1D47DD7E10B72803DD700FD4 +:101D3000111800DD1921EAE43520D33AE9E432EA4A +:101D4000E4DD2158E4DD7E04DD6E052C2CCDD5626A +:101D50007EE60DFE0D280A2101E57EFE39D0360013 +:101D6000C9111800DD1921EAE43520D92101E57EE9 +:101D7000FE38300234C9C0343E00329DE521B5E55D +:101D80007EBE28FDCD8D322129D736052B36001198 +:101D90002AD7012E00EDB021A9D736052B36001128 +:101DA000AAD7012E00EDB02129D836052B36001117 +:101DB0002AD8012E00EDB00E4721AAD711E51DCD7E +:101DC0002D303E1FCD42310E01CDCF2FCD03323EFF +:101DD000013289E5CD8906CDB9323E26CD42313E6C +:101DE00002329DE5C9414C4C20454E454D49455375 +:101DF00020415245205345414C45442E003A45E48C +:101E0000FDBE05C2B91EFD4604FD7E072147E4BEA6 +:101E1000380520543EFFC93A44E4B820033E00C9C7 +:101E20000478FD6E05CD002DE6FCFE1828E97EE65F +:101E3000F8FE1028E2247E25E6F8FE1028D9FD7E63 +:101E400005FE1D30D27EE6F8FE08286D247EE6F8F9 +:101E5000FE0828651AE6F8FE1028BC1AFE0428B70A +:101E6000E6F8FE0828B118513A44E4B820033E01D0 +:101E7000C90578FD6E05CD002DE6FCFE1828E97E2B +:101E8000E6F8FE1028E2247E25E6F8FE1028D9FDAB +:101E90007E05FE1D30D27EE6F8FE08281C247EE674 +:101EA000F8FE0828141AE6F8FE1028BC1AFE0428CA +:101EB000B7E6F8FE0828B118003EFF32EDE432EE36 +:101EC000E4FD7E0432EBE432ECE4CDE01ECD2B1FCA +:101ED000CD771FCD961FCDB91FCDF11F3AEDE4C9C7 +:101EE0003AEBE4B728443DFD6E05CD002D06F80E13 +:101EF00008CD8D2EC806F80E10CD8D2E28257EE635 +:101F0000FCFE18281EFD7E05FE1D30171AE6F8FEA1 +:101F10001028101AFE04280BE6F8FE08280521EB0D +:101F2000E435C921EBE4357E18B9C93AECE4FE1773 +:101F300030443CFD6E05CD002D06F80E08CD8D2EEB +:101F4000C806F80E10CD8D2E28257EE6FCFE18283A +:101F50001EFD7E05FE1D30171AE6F8FE1028101A29 +:101F6000FE04280BE6F8FE08280521ECE434C9211C +:101F7000ECE4347E18B8C9FD7E04CD2A20FDBE05F0 +:101F8000C832F3E4FD4E04CD3D2121EEE4BED0770E +:101F90003E0232EDE4C9FD7E04CDB620FDBE05C88B +:101FA000FD4E0432F4E4CD3D2121EEE447781800E3 +:101FB000BED0773E0332EDE4C921EBE47EFDBE04E2 +:101FC0003015CD2A20CDD81F3AEBE4CDB620CDD8A0 +:101FD0001F21EBE43418E5C9FDBE05C821EBE44E32 +:101FE000CD3D2121EEE4BED032EEE43E0132EDE4FF +:101FF000C921ECE4FD7E04BE30167ECD2A20CD1131 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-3n.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-3n.hex new file mode 100644 index 00000000..b7ef7de1 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-3n.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000003AD +:10005000000000000000000000000000000000F0B0 +:100060000300070503000001010203020100000074 +:10007000FC3E1EB63E1C60F0F0E0E02000E0000018 +:100080000000000000000000000001030F0E0B0F35 +:1000900000000000000000000000FCFC003C683490 +:1000A0003E7F6F07020307070E0F060000000000E7 +:1000B0000000C0E050FCFE0F07060000000000003A +:1000C00000000000000000000000000307070677A2 +:1000D000000000000000000000003C3CE0FEFAFCD4 +:1000E000FBDF0F0F010F0F1E383C1800000000004F +:1000F000F0E0E0C020F0F83C1C38000000000000F8 +:10010000000000000000000000000000070F1F1C9E +:10011000000000000000000000000000C0E0F6F653 +:100120001F1FC8DCFF771B3E2F13000000000000DC +:10013000FEFC3C78F0F0E040F0F838183818000089 +:10014000000000000000000000001F7FF8F1DBF954 +:1001500000000000000000000000808000C040801F +:10016000770F7FF9EF7F1E1C38381C180000000045 +:1001700018F8F0F8D880000000000000000000002F +:10018000000000000000000000000000001F1F0031 +:1001900000000000000000000000000000C0E07847 +:1001A0001E0B1620700F07010F1F1C1E0F060000EC +:1001B0003868783CFEF6E070F8A00000000000000F +:1001C000000000000000000000000000000F0F0011 +:1001D00000000000000000000000000000E0F03C13 +:1001E0000F050B103837030E1F050000000000003C +:1001F0001CB43C187CFEF783F0F83878F0600000FF +:100200000000000000000000000000000000001FCF +:10021000000000000000000000000000000000C01E +:100220001F001E0B1600307F67040F1F3C180000D4 +:10023000E07838687830F8FCEE90F0E0F078000074 +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:100260000000030103010000000000000000000086 +:1002700000000090F0F8FC78300000000000000062 +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A0000000010301030604040000000000000038 +:1002B0000000A0F0F0E0C0400000000000000000DE +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E0000000040603070F070600000000000000DE +:1002F00000002070E0E0F0E0C0000000000000001E +:1003000000000000000000000000133F1E3878705D +:1003100000000000000000000000C080000000009D +:10032000381C000000000000000000000000000079 +:1003300000000000000000000000000000000000BD +:100340000000000000000000000000000C07030790 +:10035000000000000000000000000000E0C0C0E05D +:100360000703010000000000000000000000000082 +:10037000C084C00000000000000000000000000079 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A0000000020203010301010000000000000040 +:1003B00000002060F0E0F0C08000000000000000BD +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E0000000020203010301000000000000000001 +:1003F00000002060F0E0F0E0C0000000000000001D +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000020100000100000000C8 +:100430000000000000C0602020709000000000005C +:10044000000000000000000000000000070F1F1F58 +:10045000000000000000000000000002E2F0FCFECE +:100460005E0C47CF8F67000707033038300000006D +:100470007A30E0F0F0E000E0E4CC1800000000008A +:100480000000000000000000000000007FFF7F7FF0 +:10049000000000000000000000000000F0F8FCFC7C +:1004A0003F1F0001030311DC09C10C0E0600000010 +:1004B000FC980038F0E0F105F7E2F0003038180061 +:1004C0001E3F7F7E3C3063773F1F1F07030F1F1FB8 +:1004D0003C4600231E0CC6EEFCF8F8E0C0F0F8FC29 +:1004E0003F3F1F070D06020204000000000000004D +:1004F000FEFAFCF0F0604040200000000000000028 +:100500001E2300463C0C1B1F0F1F1F07030F1F1F3E +:100510003C7E7F3F1E06C3F7FEFCF8E0C0F0F8FC0F +:100520001F1D0F070502020204000000000000006A +:10053000FCFCFCF8F0C080804000000000000000DF +:10054000000000000000000804040C1F1F7FBFFF14 +:1005500000000000000000408080C060C0F0D8F8BB +:100560007F3F1F070F1F3F3F1F3F3C180C060F3FE9 +:10057000F0E0C0B0F0F0F8FEF1E1623C0000008075 +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A00001070F0F1F1F1F0E0C0000C1E363214046 +:1005B000C0F0F8F8FCFCFC7830000083870602816C +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000008000000000009B +:1005E00001070F0F1F1F1F0E0C0000C1E363214006 +:1005F000C0F0F8F8FCFCFC7830000083870602812C +:1006000000000000000000000300020000000000E5 +:1006100000000000000000000080800000000000DA +:1006200001070F0F1F1F1F1301000030381C0408A3 +:10063000C0F0F8F8FCFCFCCC840000181830201046 +:1006400000000000000000000300020000000000A5 +:10065000000000000000000000808000000000009A +:1006600001070F0F1F1F1F0E0C0000C1E363214085 +:10067000C0F0F8F8FCFCFC783000008387060281AB +:10068000000000000000000000000000000000006A +:1006900000000000000000000000183C3C7C7E7E52 +:1006A000000000010103030307070707030301001C +:1006B0007EFCFCFCB8F8F0F0E0E0E0E0C0C08000B8 +:1006C0000000000000000000000000000003070719 +:1006D00000000000000000000000000000E0F0F05A +:1006E0000F1F1F1F0F03000000000000000000008C +:1006F000F8FCFCFCF82000000000000000000000F6 +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:10072000061F3F3F3F3F0F0707000000000000008B +:1007300040F0F8F8F8F8F0E0C00000000000000019 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:1007600008102060000000000000000000000000F1 +:100770000000000600000000000000000000000073 +:100780000000000000000000000000000000006009 +:100790000000000000000000000000001008040637 +:1007A0000000000000000000000000000000000049 +:1007B0000100000000000000000000000000000038 +:1007C000000000000000000000030F1F1F0F0701C2 +:1007D00000000000000000000080E0F0F8F8FCFCE1 +:1007E0000000000000000000000000000000000009 +:1007F000FCFE767E7E7E7E7E7E7E7E7E3C3C18008B +:1008000000000000000000000000000000000003E5 +:1008100000000000000000000000000000000000D8 +:1008200007070F0F0F0F070607030303030100005D +:1008300080C0C0C0C0E0E0E0F0F0F0F0E0E0C00058 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000FFFFFFFFFFFFFF000000000000006E +:100990000000FFFFFFFFFFFFFF000000000000005E +:1009A000000000000080C0E0F0783C1E0F0703014B +:1009B0000000000000000000000000000080C0E017 +:1009C0000000FFFFFFFFFFFFFF7F3F1F0F07030137 +:1009D00000FF7FBFDFEFF7FBFDFEFFFFFFFFFFFF25 +:1009E0000000000000000000000000000000000007 +:1009F000FF7F3F1F0F070301000000000000000001 +:100A000000FFFFFFFFFFFFFFFFFF7FBFDFEFF7FBF1 +:100A100000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF4 +:100A2000FDFEFFFFFFFFFFFFFF7F3F1F0F070301DB +:100A3000FEFE7EBEDEEEF6FAFCFCFCFCFCFCFCFCE2 +:100A400000000000000000000000000000000000A6 +:100A5000F0783C1E0F0703010000000000000000BA +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A8000000000000080C0E0E0E0E0E0E0E0E0E046 +:100A90000000000000000000000000000000000056 +:100AA000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E046 +:100AB0000000000000000000000000000000000036 +:100AC000000000000000FFFFFFFFFFFFFFFFFFFF30 +:100AD00000000000000000F0FFFFFFFFFDFFE3EF5C +:100AE000FFFFFFFFFEFEFFFFFFFFFFFCF000000027 +:100AF000DFDFBF7F7F79E7FFFFFF1F0703010100F3 +:100B00000000000000000000C0FFFFFFFFFFFEF834 +:100B100000000000000000007FFFFFFFF0800000E9 +:100B20000080C0F0FEFFFFFFFFFFF00000000000AC +:100B3000000000000080E3FFF9000000000000005A +:100B400000000000000018F8FCFDFFE000000000BD +:100B500000000000003E7FFFFCF0E00000071F3FA8 +:100B60000001010F3F7FFFFFBF07000000000000F2 +:100B7000FFFFFFFFFFFFFFFFFFFC0C000000030F64 +:100B8000000000000000C0FF1F030000FFFFFFFF88 +:100B900000000000000000F8FFFFCF00FFFFFFFF94 +:100BA000FFFFFFFFFFFEF8E0000103071F7FFFFFCD +:100BB000FFFFFFF8C00000017BFFFFFFFFFFFFFF0B +:100BC000000000000000000FFFFFFF00FFFFFFFF1D +:100BD000000000000000C0FFFFFFFF3F00E0E0E377 +:100BE000FFFF1F3F7F7FFFFFFFFFFFFFFFFFFFFFB5 +:100BF000FFDFCFCFE7F3F0E0CFFFFFFFFFFFFFFF07 +:100C0000000000000000FFFFFFFEFFFF001F7FFF4E +:100C100000000000001FFFFFFF01C0E000FFFFFF1A +:100C2000FFFFFFFFFF00033FFFFFFFFEF9E7FFFFAE +:100C3000FFFFFCE00000FEFFFFFFFF3EFCF3FFFFB5 +:100C4000000000033FFFFFFFFFFCF80000FEFFFF76 +:100C5000000000F0FFFFFFFFFFFF0000000080FF2B +:100C6000FF3F03030100000387C0C0000000000035 +:100C7000FFFFFFFFFFF0C080000000000000000049 +:100C8000000000FFF9FEFFFFF0000000000000F38D +:100C90000000FFFFFF0FF1000000000F3F7FFFFF8C +:100CA000FFFFFFF000000000000000000000000057 +:100CB000FFFC000000000103030F1F1F3F7F7F7F29 +:100CC0000001FFFFFFFFFF1F00007FFFFFFFFFFF8F +:100CD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE15 +:100CE000E1030F1F7FFFFFFFFFFFFFFFFFFFFFFF7E +:100CF000FEFCF8F8F0F0F0F0F0F0FEFFFFFFFFFF71 +:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FF3 +:100D1000FFFFFFFFFFFFFFFDB93141E0F0F0F8F802 +:100D20005F1F0F0F07010000031F3FFFFFFFFFFFC3 +:100D3000FCFCFDF9F1830371FCFCFEFFFFFFFFFFEC +:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:100D5000FFFFFFFFBFFFFFFFFDF1F8FCFEFFFEC03E +:100D6000FFFFFFFFFFFFFFFFFF3F0F8080E0F8FF67 +:100D700000FCFFFFFFFFFFFFFFFFFF3F7F0F030FA1 +:100D8000C0C0C0C0E0E0E1E7FFFFFFFFFFFF3F1D85 +:100D9000FF7F3F3F1F1FCFEFFFFFFFFFFFF1F3C7B5 +:100DA000000000C0C0E0F0FCFEFEFEFCFCFCF8C051 +:100DB0000F0F0F07070703030301000000000000E7 +:100DC00000000000000000000000000103070F1FEA +:100DD00000000000000000000F1F7FFFFFFFFFFF6B +:100DE0001F3F7FFFFFFFFFFFFFFFFFFF1F0FC7C377 +:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:100E000000FFFFFFFFFFFFFFFFFEFDFBF7EFDF30FF +:100E100000FEFDFBF7EFDFBF7FFFFFFFFFFFFF00DF +:100E2000FFFFFFFFFFFFFF000000000000000000C9 +:100E3000FFFFFFFFFFFFFF000000000000000000B9 +:100E4000E0FFFFFFFFFFFFFFFFFFFFFFFFFFFF00D0 +:100E5000000080E0F8FEFFFFFFFFFFFFFFFFFF0045 +:100E6000FFFFFFFFFFFFFF00000000000000000089 +:100E7000FFFFFFFFFFFFFF00000000000000000079 +:100E800001010101010181E1F9FDFBF7EFDFBF7F06 +:100E9000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFC008E +:100EA000FEFCF8F0E0C08000000000000000000040 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED00000000000000000000103070C18337777C2 +:100EE0000000000000000000000000000000000002 +:100EF000773B3F1F1F0F0F0F1F1F3C3C387878F0C8 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000307C7 +:100F200000000000000000000000000000000000C1 +:100F300004040E1F3F3F7F7F3F0F07070707071F70 +:100F400000000000000000000000000000000000A1 +:100F5000000000000000000000000001070E1C3926 +:100F60000000000000000000000000000000000081 +:100F7000333331180F070F1E3C3E0F0301010000F1 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000030747 +:100FA0000000000000000000000000000000000041 +:100FB00007060E1C38716363676773323038183F59 +:100FC0000000000000000000000000000000000021 +:100FD00000000000000000000F3E7C78F8F1E3E61E +:100FE0000000000000000000000000000000000001 +:100FF000FCFC7E3F3F1F0F3F7FF0F0F0F8FC3CFC15 +:1010000038050F1F0F1D0F07030001010000010726 +:1010100007EEFCFCEEFCFFFFFFFFFF9FC160E1F766 +:10102000E0100000000080C0E0E0C08080C0E0F080 +:1010300000000000000000000000000000000000B0 +:1010400038053F1F0F1F0F07070D3C6643231E0087 +:1010500007EEFCFCEEFCFFFFFFFFFF6743231E00D3 +:10106000E0100000000080C0E0E0C0800000000050 +:101070000000000000000000000000000000000070 +:10108000700B183F1F3F1F0F0700000000000000FB +:101090000FDC78F8DCF8FFFFFFFF7F6F3F3F3F1E5C +:1010A000C020000000000080C0C080DEFFFF7E3C4A +:1010B0000000000000000000000000000000000030 +:1010C00000000000003C46868C7D190D07030001DE +:1010D000788C00463C180C7CFEFFFFFEFC78FEFF7F +:1010E0003F7F6F3F0F1B0C0404080000000000004E +:1010F000F8FCF4F8E0E0C080804000000000000050 +:101100000000000000003C7EFEFD7D07060001039C +:1011100078FCFE7E3C06027BFFFEFEFCFC78FEFFB8 +:101120003F3F3B1F0F0B05050508000000000000B6 +:10113000F8F8F8F8F0E080000080000000000000FF +:10114000000103000000000000000000000000009B +:1011500073FFFFDF1F0F03070F3F7F6330183CFE55 +:10116000CEFFFFFBF8F0C0F6FEFCFEFF7F3E000066 +:101170000080C0000000000000000000000000002F +:10118000601F7FFF7FFF7F3F1F0F1F190C061E7F11 +:101190001E71E0E060C0F8FCFEFEF8F0180C1E7F47 +:1011A000601F7FFF7FEF4703010103151C061E7FB1 +:1011B0001E71E0E060C0F8FCFEFEF8F0180C1E7F27 +:1011C000000000000000000000000000000000001F +:1011D000000000387D75302A00000000000000008B +:1011E000000000E0F070E0000000000000000000DF +:1011F00000000000000000000000000000000000EF +:1012000000000307070300000000000000000000CA +:1012100000008EDF570EA00000000000000000005C +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000010100000100010000000000009A +:101250000000E3F7D5C3A800800080400000000034 +:10126000000080C0C08000000000000000000000FE +:10127000000000000000000000000000000000006E +:10128000000000000000000201000000000000005B +:10129000000000000304387D7538020000000000E3 +:1012A000000000000000000000000000000000003E +:1012B000000E0F07060800000000000000000000FC +:1012C000000000000000000201000000000000001B +:1012D000200020000204387D753802000000000064 +:1012E00000000000000000000000000000000000FE +:1012F000000E0F07060800000000000000000000BC +:101300000071FBEA611400000040200000000000B2 +:1013100000C0E0E0C000000000000000000000008D +:101320000071FBCA611400000040200000000000B2 +:1013300000C0E060C00000000000000000000000ED +:101340000000000001010001010000000000000099 +:10135000000036FFFFFFFFFFF1E00000000000008B +:1013600000000080C0C080C0C080000000000000FD +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:101390000000000103010307070200000000000035 +:1013A000000000FEFFFFFFFF1F0F0E000000000007 +:1013B00000000000008080800000000000000000AD +:1013C0000000000101000101000000000000000019 +:1013D0000036FFFFFFFFFFF1E0000000000000000B +:1013E000000080C0C080C0C080000000000000007D +:1013F00000000000000000000000000000000000ED +:101400000000061F3F3F1F3F3C1800000000000087 +:101410000000C0F0F8F8F0F8F870000000000000DC +:10142000061F3F3F1F1F1F3F3C0C00000000000035 +:10143000C0F0F8F8F0F0F0F8F83800000000000014 +:1014400000000000000000030F07070F1F1F0F031D +:1014500000000000000000E0F0FCFCFCFCFCE0C030 +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:1014800000000000000000070F7F7F7F7F7F0F07B5 +:101490000000000000000080E0F0F0E0C0C0E0804C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000001F3F7F7F7F3E3C0C00000000000000BB +:1014D00000E0F0E0F0F878302000000000000000AC +:1014E00000071F3F3F7F7F7E3E3C1800000000004A +:1014F00000C0F0F8DCFCFEFE7E7E7E7E7E3C1800A6 +:1015000001010101010101010101010101010101CB +:10151000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0B +:1015200000000000000000000000000000000000BB +:101530000003377FF9F9FDF7717038381838707C7F +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:101580000000000000000000000004070701000147 +:1015900000000000000000000060C0E0C080C0C08B +:1015A000000000000000000000000000010000003A +:1015B000000000000000000000000000C00000006B +:1015C0000000000000000000000006030F070706EF +:1015D0000000000000000000000040C080C060204B +:1015E00000000000000000000000000001000000FA +:1015F00000000000000000000000000000000000EB +:101600000000000000000000000507030F130103A5 +:1016100000000000101020008080C0E0C08080002A +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:101640000000000000000004060F1F1F0F1F1E0CEB +:1016500000000000000000008080000080C040000A +:101660000000000000000000010000000000000079 +:1016700000000000000000008000000000000000EA +:10168000000000000000000000000106010004034B +:1016900000000000000000001830F0F8E0301000FA +:1016A000000000000000000000000D1100040C0606 +:1016B0000000000000000000001830F8F03020406A +:1016C000003F7F3F3F1F0F00000101000ACE04C012 +:1016D00000F8FCFEFEFECC009CF8F0F902F3E1708D +:1016E0000000000000000000000000000C0E0C00D4 +:1016F0000000000000000000020200000C0E0600C6 +:101700000000000000000000000000000103FFFFD7 +:10171000000000000101010307031D7EFFFFFFFF22 +:101720000000000000000000000000000000003F7A +:10173000000000000000000000000000000007FFA3 +:1017400000003F7F3F3F1F0F000101000A0EC40051 +:101750000000F8FCFEFEFECC9CF8F0F802E3F1601D +:101760000000000000000000000000000000000079 +:10177000000000000000000002020000C0E0600065 +:10178000000000000000071F3F7F7F7F3E3C1800E5 +:10179000000000000000F8FEFFFBFF1F0F0F07070F +:1017A0000000000000000000070707070303010016 +:1017B0000080C0C0C0E0E0E0E0E0E0E0C0C0800049 +:1017C0000000000000000000010307000703010003 +:1017D000000000000000000080C0E000E0C08000C9 +:1017E00000000103070F1F1F1F1F1F0F070301002A +:1017F000000080C0C0E0C0808080C0E0C0C0800029 +:101800001F1F001E0B1600001F3F700F1F1C08003B +:10181000C0E07838687830F8FCEC90F0E0F07800C0 +:101820000F0F03111B130103073F3A0F1F1C080082 +:10183000E0F0FCE47CFCC898FCEC90F0E0F0780070 +:101840000003071E3C3E1E1C0F07070A1F5F2E0EDB +:1018500000F8F8017BD66E0408F0E040C0C08000BC +:10186000000000000000000007030000000000006E +:1018700000000000000000008000000000000000E8 +:1018800000030F3F3E3B1F1E0C070F143F5FFE7807 +:1018900000F0F80C3C7C3838F0E0E0C0800000003C +:1018A000000000000000000007030000000000002E +:1018B00000000000000000008000000000000000A8 +:1018C00000000000030300030102000000010707FD +:1018D00000000000F8FC0FC76DCF0670FCFCA8F0FC +:1018E0000000000000000000030C000000000000E9 +:1018F0000000000000000000FCDC387078300000C0 +:101900001F1F001E0B1660F0DF070303020E00000E +:10191000C0E07838687830E0F0E0D8F8F0707838D7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000F0F001C160F1F3D330307070300000095 +:10195000C0F0F878CB7FFFFFCE87078E0000000035 +:101960000000000000C0C0000000000000000000F7 +:101970000000000000000000000000000000000067 +:101980000001030307070703030000607131608152 +:1019900070FCFEFEFFFFFF9E0C0000C1C1808102B3 +:1019A000000000000000000000000080C0C08000B7 +:1019B0000000000000000000000000000000000027 +:1019C00001070F0F1F1F1F1301000030381C0408F0 +:1019D000C0F0F8F8FCFCFCCC840000181830201093 +:1019E00001070F0F1F1F1F0E0C0000C1E3632140F2 +:1019F000C0F0F8F8FCFCFC78300000838706028118 +:101A00001C78F0F03913110303C6E2606000643CF7 +:101A1000381E0F0F9CC888C0C06347060600263CCE +:101A2000000001070F0F03010160706060004C7837 +:101A30000000C3810000993C183C3C662400000073 +:101A4000000080E0F0F0C08080060E060600321E26 +:101A50000000000000000000000000000000000086 +:101A60001C78F0F03913110303C7E3616301643C90 +:101A7000381E0F0F9CC888C0C0E3C786C680263CAE +:101A80001C78F0F03913110303C6E2606000643C77 +:101A9000381E0F0F9CCB8FC6C660663C000000004E +:101AA00000784C006061774F0F03010100000000D7 +:101AB0000000000000C3810000993C183C3C6624F3 +:101AC000001E32000686EEF2F0C0808000000000AA +:101AD0000000000000000000000000000000000006 +:101AE0003C64006060FCF8F0F03913110303060257 +:101AF0003C260006063F1F0F0F9CC888C0C06040F0 +:101B0000000000001C78F0F039D3F1636306663CF6 +:101B100000000000381E0F0F9CCB8FC6C660663CCD +:101B2000003C64003030381000000000000000006D +:101B3000000000001C78F0F03913110303060200C6 +:101B400000000000381E0F0F9CC888C0C060400015 +:101B5000003C26000C0C1C080000000000000000E7 +:101B600000000000000C1C3810004C780000000041 +:101B70001C78F0F039131103030602000000000086 +:101B8000381E0F0F9CC888C0C060400000000000D5 +:101B9000000000000030381C0800321E0000000069 +:101BA00000010307070707070607070707030100E8 +:101BB0000080C0E0E0E0E0E0E0E0E0E0E0C08000E5 +:101BC00000000000030F1F3B3F7F7E7E7E3C18001D +:101BD000000000E0F8FCFCF8F0000000000000004D +:101BE0000000000000030F1F3F7F7F7E3E3C180077 +:101BF0000000000000FCFFBFFFFF0F07070301000C +:101C00000000000000000080C0E0E0E0C0C08000F4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C400000007FFF7F7F3F3F280018301900010907 +:101C50000000F0F8FCFCFC9800F87CFCFA03F9F8B2 +:101C60000000000000000000003318000000000029 +:101C7000000000000002020000C00C1C0C0000006C +:101C800000007FFF7F7F3F1F000000000BCE05C0DC +:101C90000000F0F8FCFCFC9800C87CFCF800F8F9A7 +:101CA000000000000000000000013038300000009B +:101CB000000000000000000000CC18000000000040 +:101CC0000080800000000000000000003038180094 +:101CD0000000000000000000000000003070300034 +:101CE000A0A00F1FBFFF7F190C1F3F1F001F0F0772 +:101CF0005050FEFFFEFEFCF880C0C08000808000D7 +:101D0000008080000000000000000000181D04009A +:101D100000000000000000000000000040C0400083 +:101D2000A0A0071FBFFF7F190C1F3F1F001F070345 +:101D30005050FEFFFEFEFCF880C0C0800080800096 +:101D40000080800000000000000000000307020087 +:101D50000000000000000000000000000080000003 +:101D6000A0A00F1FBFFF7F190C1F3F1F001F1900EE +:101D70005050FEFFFEFEFCF880C0C0800080800056 +:101D8000008080000000000000000000101C08001F +:101D900000000000000000000000000060E0800083 +:101DA000A0A00F1FBFFF7F190C1F3F1F001F1F0E9A +:101DB0005050FEFFFEFEFCF880C0C0800080000096 +:101DC0003F7F3A351F0F000001010001001111088B +:101DD000F8FCFE7EFECC009CF8F0F805FFDAC09817 +:101DE0003F7F353A1F0F000001010001001111086B +:101DF000F8FC7EFEFECC009CF8F0F805FFC2D8800F +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E4000FFFFF7FFFFFFFFFFEFDFFFFFFFFF99F14E +:101E5000FFFFFFFFFFFBFFFFFFBFEFFFFFBF180705 +:101E6000FFFFFFFFFFBFFFFFFFFDFFFFDFFD1801CB +:101E7000FFFDFFFFFFEFFFFFFFFFDFFFFFFF999871 +:101E8000FFFFFFFFFFFFFFFFFFFF3F1F1F0F0F07BA +:101E9000FFFFFFFFFFFFFFFFFEF8E0E0E0E0E0F004 +:101EA000FFFFFFFFFFFFFF3F0F07070303030101D2 +:101EB000FFFFFFFFFFFDF8F8F0C0808080C0C0C0CA +:101EC000FF9F0F0F07070200000000000000000046 +:101ED000FFFFFFF4E0C0C080000000000000000031 +:101EE000FF7F230000000000000000000000000051 +:101EF000FFFFFEE000000000000000000000000006 +:101F0000000000000000000000718A0A122242F95D +:101F10000000000000000000008C52525252528C0F +:101F200000000000000000000011325292FA12116D +:101F30000000000000000000008C52525252528CEF +:101F40000000000000000000007942720A0A4A31D5 +:101F50000000000000000000008C52525252528CCF +:101F6000000000000000000000314282F28A8A7105 +:101F70000000000000000000008C52525252528CAF +:101F8000000000000000000000718A8A728A8A71D5 +:101F90000000000000000000008C52525252528C8F +:101FA000000000000000000000314A4A4A4A4A315D +:101FB0000000000000000000008C52525252528C6F +:101FC0000000000000000000000000000000000011 +:101FD00000000000000000000002060202020207EA +:101FE00000000000000000000000000000000000F1 +:101FF0000000000000000000000E11010204081F94 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4c.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4c.hex new file mode 100644 index 00000000..1c61bb52 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4c.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:100050000000000000000000000000000000007030 +:10006000000007070F070301010303030100010359 +:100070007C3E1EFEFEFCA010900020E0C0E0E0E010 +:100080000000000000000000000001030F0E0F0F31 +:10009000000000000000000000C08080003CFCFC6C +:1000A00007030177630307070E0F0703070000002C +:1000B000FCF8C0E0F0FCFE0F070E9C8E060000006E +:1000C0000000000000000000000001030707070710 +:1000D000000000000000000000C0E0C0808ECECF15 +:1000E0000307EFCF070F0F1E383C1E0E1C00000049 +:1000F0008E1CA0C0E0F0F83C1C387078380000007E +:10010000000000000000000000000000070F1F1F9B +:10011000000000000000000000000000CCFCF8F02F +:100120003F7F2F0F07071F3F2F131E3E00000000C9 +:10013000F0F0E0C0E0F0E0E0F0F83818387870381F +:10014000000000000000000000001C7CF8F1FFFF30 +:1001500000000000000000000000000000C0C0E03F +:100160007E3E7F7F3F1F1E1C38381C1E0E1C180051 +:10017000C0067FFFDE8C00000000000000000000D1 +:10018000000000000000000000000000000000006F +:1001900000000000000000000000000000C0E07847 +:1001A0001E1F1F1F0FE7C7070F1F1C1E0F07030788 +:1001B00038F8F8E0C080E7F3F8BC3C3800808000F5 +:1001C000000000000000000000000000000000002F +:1001D0000000000000000000000000000060703C13 +:1001E0000F0F0F0F0703736F1F3D3C1C0001010031 +:1001F0001CFCFCF8E0C0F0E0F7FB3878F0E0C0E071 +:1002000000000000000000000000000000000000EE +:10021000000000000000000000000000000000C01E +:1002200000001E1F1F1F0F0707E7CF1F3C183C7C55 +:10023000E07838F8F8F0C080E0F7F3E0F0783C7C44 +:100240000000000000000000000100050F071F0C67 +:100250000000000000000000C0C0D4FEFFFEFBF163 +:100260001C0E1C3E346070210307060303070600C2 +:10027000F8FFFE6A00000086CE8703068E8F03001B +:10028000000000000000000060E06B3F3F3F1F3FA8 +:10029000000000000000000003AFFFFEFCF6E2F0EB +:1002A0001F0F0200006071FBCB073E381C0C0000E2 +:1002B000FEFC5400000000808000000000000000F0 +:1002C00000000000000000000000051F3F7F3F7F8E +:1002D0000000000000000000000040FCFEFEFEECFC +:1002E0003F7FDBF960183038180C1E3E000000001C +:1002F000FCF8D0800000001038383C1C3870781CA6 +:1003000000050F3F7F3F79397C1F0C0061C7870FC5 +:100310000040F0F8F0F0E0F0F8FC3870FBDF8E0CF5 +:1003200046603838180C0E070F0C00000000000063 +:1003300000000000000000000000000000000000BD +:1003400000000000000A3F7F3F3F1E3E70F87C70B7 +:10035000000000000080C0F0F8F07870183C1F0327 +:10036000C0C46EEE5C180C0C07070E0C00000000F9 +:10037000367A3C1C1830787C000000000000000039 +:100380000000000000000000000A1F3F1F37230785 +:1003900000000000000000000080E8FCF8FECCCE69 +:1003A0003F3F7D6DC0E04C1EDEF870300000000065 +:1003B000DCEEDF9B070E0638783C1C38F0E070302E +:1003C0000000000000000000000A1F3F1F37230745 +:1003D00000000000000000000080E8FCF8FECCCE29 +:1003E0003F3F7D6DC0E0441E3F381C0E3E3800008C +:1003F000DCEEDF9B070E06183C3E0E1C383E0E005E +:10040000000000000000000000000000020F1F0FAD +:10041000000000000000000000000000A0F0FCFE52 +:100420000F070F1F3F1F0B01000B1F0C01000003E4 +:10043000FC9E9C3EF81080C0C08060C080C0E0E0A0 +:10044000000000000000000000000000070F1F1F58 +:10045000000000000000000000000000E0F0F8F8DC +:100460001F0F1F3F1F0703070F1F0C000000000096 +:10047000F8F8FCF8F0E0C0F8F8F000000000000028 +:100480000000000000000000000000007FFF60602E +:10049000000000000000000000000000F0F8FCFC7C +:1004A0003F1F0001070F07000307030000000000C3 +:1004B000FCF8F0F8FCFEFCF0C0E0C41E0C000000EC +:1004C0000000000000000307030301030103010013 +:1004D000000000000000C0E0F0F0F0E0C0F0F0F834 +:1004E0000000001834383C1C080000000000000028 +:1004F000F87020083C5C3C38100000000000000050 +:1005000000000000000003070000000000000000E1 +:10051000000000000000C0F06000000040F0383C27 +:10052000000000183D3C3C1C0800000000000000DA +:100530001C1C080000E060400000000000000000FB +:1005400000000000000000103878747820081C3E7D +:1005500000000000000000207078385830000000D3 +:100560003E1F1F070F1E3F3F1F0F0000000000002F +:100570000000800000202000C0800000000000007B +:10058000000000000000000000000000000000006B +:1005900000000000000000000000000000800000DB +:1005A00001000000111F1F0E0C657D380C040408AB +:1005B000C0808080C4FCFC7830B3FF746060201081 +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000080808000009B +:1005E00001000000111F1F0E0C657D380C0404086B +:1005F000C0808080C4FCFC7830B3FF746060201041 +:1006000000000000000000000000000000000000EA +:10061000000000000000000000000080808000005A +:10062000010204040E1F1F1321397F4F0361402173 +:10063000C020101038FCFCCC86B6FC600486820119 +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000080808000001A +:1006600001000000111F1F0E0C657D380C040408EA +:10067000C0808080C4FCFC7830B3FF7460602010C0 +:10068000000000000000000000000000000000006A +:10069000000000000000000000FF7E3C3C0C707E6B +:1006A0000000000000000303070707000303070F13 +:1006B0007EFC1C00000000C0E0E0E000C0C0E0F0F4 +:1006C000000000000000000090900060F043070769 +:1006D0000000000000000000090900060FE4F0F02F +:1006E0000F1F1F1F0F030000010300000404000080 +:1006F000F8FCFCFCF820000080C080008080000036 +:1007000000000000000000000202000307030000D8 +:1007100000000000000000004040000080000000D9 +:10072000061F3F3F3F3F0F070760F040004848006B +:1007300040F0F8F8F8F8F0E0C0020F0600242400BA +:100740000000000000000000000000000000001C8D +:100750000000000000000000000000381C3C0C0EEF +:10076000302F1F1F67F0E0400000183E000000001F +:1007700006F7FBF9E70F0E0400000000387C7C3818 +:100780000000000000000054383C387060EFDF9F2C +:100790000000000000000000002A1C3C0CF6FAF8E3 +:1007A000E7F07020000000001C3E3E1C000000002E +:1007B000E60F07020000187C0000000000000000A7 +:1007C000000000000000000020313D3D3B3B332194 +:1007D00000000000000000000080E0F0F8F8FCF0ED +:1007E0000000000000000000000000000000000009 +:1007F000C000000000007E7E7E7E7E003C3C7EFFCE +:1008000000000000000000000000000000001F0FBA +:100810000000000000000000000000000000E0C038 +:100820000706010F0F0E000000030303000103077A +:100830008000C0C0C000000070F0F08060E0F0F800 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:1009800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:1009900000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:1009C00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:1009D000000080C0E0F0F8FCFEFFFFFFFFFFFFFF1C +:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:100A00000000000000000000000080C0E0F0F8FCE2 +:100A100000000000000000000000000000000000D6 +:100A2000FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:100A3000000080C0E0F0F8FCFEFEFEFEFEFEFEFEC2 +:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:100A5000FFFFFFFFFFFFFFFFFFFDFFFFFFFFFDFFAA +:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:100A7000FFFDFFFFFFFFFDFFFFFDFFFFFFFFFDFF8E +:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:100AC000000000000000FFFFFFFFFFFFFFFFFFF03F +:100AD00000000000000000F0FFFFFFFFFDFFE30F3C +:100AE0000000000000000100000000000000000005 +:100AF0001F1F3F7F7F78E000000000000000000023 +:100B00000000000000000000C0FEF8F0C1C70F7F29 +:100B100000000000000000007E78077FFFFFFFFF5D +:100B20000F8FCFFFFF7F3F1F00000FFFFFFFFFFF73 +:100B3000FFFFFFFFFFFFFF0301F0F0E1C3C7CFCFCF +:100B400000000000000018E00001FFFFEFEFEFEFF2 +:100B500000000000003E7FFFFFFFE0FFFFFFFFFF00 +:100B6000F7FEFCF0C080F0FFFFFFFFFFFFFFFFFF7D +:100B7000FF7F1F00000000FFFFFFFFFFFFFFFCF0F3 +:100B8000000000000000C0FFFFFF3FFFFFFFFCFF71 +:100B900000000000000000F8FFFCF0F0DF3FFFFF66 +:100BA000FFFFFFFF1F1D7FFFFFFEFCF8E08000003E +:100BB000FFFFFFFCFCF0F0E0800000000000000000 +:100BC000000000000000000FC0000000FFFFFFFC5D +:100BD000000000000000C0FF0000000000800003D3 +:100BE00010E7080000000000000000000000000006 +:100BF0003FDF0F0F070300010000000000000000AE +:100C0000000000000000FFFE00000000001F7FFF4A +:100C100000000000001FFC000000000003FFFFFFB9 +:100C2000FFFFFFFFFFFFFCC00000000106180000EF +:100C3000FFFFFCE000000000000000C1030C00000A +:100C4000000000033CC00000000307FFFFFFFFFFA0 +:100C5000000000F0000000000000FFFFFFFFFFFFAA +:100C6000FF3F00000000000000070F1F7FFFFFFF95 +:100C7000FC800000000F3F7FFFFFFFFFFFFFFFFF33 +:100C8000000000FF010000000FFFFFFFFFFFFFFF5C +:100C90000000FFFFFF0F01FEFFFFFFFFFFFFFFFF51 +:100CA0000F0F1F3FFFFFFFFFFFFFFFFFFFFFFFFFD4 +:100CB000FFFFFFFFFFFFFEFCFCF0E0E0C080808054 +:100CC0000000F0E18FFFFF008080FFFFFFFFFFFECD +:100CD0006F3F7FFFFFFEE00000FFFFFFFFFE800190 +:100CE000FEFCF0E0800000000000000000000000BA +:100CF0000103070707070F0F0F0F01000000000097 +:100D0000FFFFFFFCE000000000FFFFFFFF7FFFFF91 +:100D1000F081070F0F1F1F3D393141E0F0F0F8F867 +:100D2000FFFFFFFFFFFFFFFFFCE0C0000103070024 +:100D3000FDFDFEFEFEFCF0801C3C7EFFFFFEC000C1 +:100D4000FFFFFFFFFFFFFDF9FFFFFF78000000003E +:100D5000DFEEECE0A0E0E0E0E0E0C000000000003A +:100D60000000000000000000000000808000000083 +:100D70000000000000000000000000000000000073 +:100D800007030100000000000000000000004060B8 +:100D90000080C0C0E0200000000000000001030748 +:100DA0007F7F3F3F3F1F0F03010101030303073F05 +:100DB0000F8FEFF7F7F7FBFBFBFFFFFFFFFFFFFFD7 +:100DC00000000000000000000000000103070F1FEA +:100DD00000000000000000000F1F7FFFFEFEFCFC73 +:100DE0001F3F7FFFFFF9FFFFE0C000006070888CAD +:100DF000F8F0E0C0C08080000000000000000000AB +:100E0000FF00000000000000000103070E1C38FF77 +:100E1000FF0103070E1C3870E0C08000000000FFD7 +:100E2000FFFFFFFFFFFFFFFF0000000000000000CA +:100E3000FFFFFFFFFFFFFFFF0000000000000000BA +:100E4000FFC080000000000000000000000000FF64 +:100E5000FFFF7F1F0701000000000000000000FFEF +:100E6000FFFFFFFFFFFFFFFF00000000000000008A +:100E7000FFFFFFFFFFFFFFFF00000000000000007A +:100E8000FFFBFFFFFFFF7B1F0703070F1F3F7FFFD6 +:100E9000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE72 +:100EA000FFFEFCF8F0E0C080000000000000000041 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:101000000018302000000707030000000000000067 +:10101000000103030100048FFE3C3C1C00000000A3 +:1010200000E0F0C0800000000000408000000000F0 +:1010300000000000000000000000000000000000B0 +:101040000018002000020707030000000000000055 +:10105000000103030100048EF87203010000000088 +:1010600000E0F0C0800000000000008000000000F0 +:101070000000000000000000000000000000000070 +:101080000030674000040E0F070000000000000061 +:10109000000387070300081EFC7C3E0000000000E0 +:1010A00000C0E08000000000000000000000000020 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000078FC7E3E1E3C387E3E92 +:1010E000010100003070707838100000000000002E +:1010F000F0F0E0401078B8787020000000000000A8 +:1011000000000000000000000000000000000000DF +:101110000000000000000078F808000000081E072A +:1011200000000000307A79783810000000000000DC +:10113000783838100000C0C08000000000000000B7 +:10114000000000000000000000000000000000009F +:101150000000000000000000000004030000000088 +:101160000000000000000000000870C00000000047 +:10117000000000000000000000000000000000006F +:10118000007080000010383C1F07030100000000C1 +:10119000000E1E1C1C302070E0C0C0C0000000000B +:1011A0000070800000000004070103151800000013 +:1011B000000E1E1C1C302070E0C0C0C000000000EB +:1011C000000000000000000101010100000000001B +:1011D00000000E3F7FFFFFD5BFC0BFDD0000070F3F +:1011E000000070FCFEFCF9F8FC1CF8F000009EBE4C +:1011F0000000000030F8FCDC0C1E0E1C000000009B +:1012000000000307070301030003070703010000B1 +:1012100000E7FFFFFFFF5FFF01FFDF8FDF8F3C7EF7 +:101220000000C0E0E0CCDEEEEEC7870E8E0C3C7E08 +:1012300000000000000000000000000000000000AE +:101240000000000101000102030001010100000093 +:101250000039FFFFFFFF57FF00FF778080C0070FB7 +:1012600000C0F0F8F0E3E7F371E0C00100019EBEBA +:10127000000000000000C0E0E0C0C0E0E0C00000EE +:101280000E1C1E0C1C38391D1E1E0C010100000016 +:101290000E000C060473FFFFFFFFFDFFC0FF7D780B +:1012A00000000000000000000000000F060007071B +:1012B000080E0F0F0E040E000E0C0000000080C080 +:1012C000010303070E1C191D1E0E0C010100000076 +:1012D000D080D81C0C73FFFFFFFFFDFFC0FF63072A +:1012E0000000000000000000000000000000787C0A +:1012F000080E0F0F0E040E000E0C08F06000000028 +:101300001C7FFFFF7F2B7F007F3B41F0E0700103DC +:10131000E0F8FCFCF2F6FB3BF7E7E3F76306E0E0FE +:101320001C7FFFFF7F2B7F007F3C5EFFE67000008D +:10133000E0F8FCFCF2F7FB3BF767030703061E3EF1 +:1013400000000000010100010100000C1E04006605 +:10135000000000FDFFFFBFFFF1E000183C0800CCDB +:1013600000000080C0C080C0C08000183C1800335E +:10137000000000000000000000000000000000006D +:10138000000000000000000000000100000C000050 +:10139000000000010301030707C2E3C701C01900F1 +:1013A000000000F8FD7FFFFF1F0F0E80000080008F +:1013B00000000000008080800000003078300033A2 +:1013C0000000000101000101000000060F04000CF4 +:1013D0000000FDFFFFBFFFF1E000000C1E0C00CC81 +:1013E000000080C0C080C0C080060F06000600C09C +:1013F000000000000000000000000000006000008D +:101400000000001F3F3F173F3C180060F34100CB36 +:10141000000000B0F8F8F0F8F8700082C7830033DD +:10142000001F3F3F1F171F3F3C0C0060F34100CBE4 +:1014300000B0F8F8F0F0F0F8F8380082C783003315 +:1014400000000000000000030F0787CF9F1F2F231D +:10145000121200060F0200E0F0FCFCFCFCFCE0FCB9 +:10146000000040C0400040400000000000000000BC +:10147000000000000000000000060F060024240009 +:1014800024240060F06000070F7F7F7F7F7F0F07BD +:101490000000000000000989E0F3F7E3C0C0E0802D +:1014A0000000000000000000003078300012120040 +:1014B000000001000000000000000000000000002B +:1014C00000072F7F7F7F3E3C0C00003078230066B2 +:1014D00000E0F0E0F0F87E3F2660F62000300000EB +:1014E00000041C3E3E7F7F0E303C7EFF000000006B +:1014F0000000000000000E3E7E7E7E7E003C7EFFEF +:10150000FFFBFFFFFFFFFBFFFFFBFFFFFFFFFBFFFB +:10151000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:101580000A1F3F1F3723073F5FFFDB7830061FBE70 +:1015900080E8FCF8FECCCEDCE89C3E1603071A1C63 +:1015A000000000000000000000000080F870300023 +:1015B0000000000000000000000000003F73000079 +:1015C000000A1F3F1F1F3D797BFFF9BCF06008191F +:1015D00000A0F0FCF8FCF8FCF8F8BC2E030782CC65 +:1015E000000000000000808000000000DEF8703085 +:1015F000000000000000000000000000EE7F33004B +:101600006AFF7F3F7F3F7F3F1F0A0000008CDEFCA8 +:10161000A3F7FBF6EE6C1CBC7C7820000000008079 +:1016200000000000004040C0CE010F0E0703000084 +:101630000000000000000000E0C08000000000008A +:1016400003070F1F7F3F7F3BF9F0A00080000133AD +:101650000000A0F0F8F0F0F87C7C7C28000080C04E +:10166000004040C0C04000000E1C180C0E1E1800A8 +:10167000000000000000000070381830707818007A +:1016800002070F070D08010FDFFF76B1CEFFFBC089 +:10169000A0FAFFFEFFF3F3F7E6CE0E0703C7E6DE80 +:1016A00002070F070D0881CFF7FDD00EDFFB733166 +:1016B000A0FAFFFEFFF3F3F7FAE6CF0703C7CE9ECB +:1016C000003F7F30301F0F0000070F0700000101AF +:1016D00000F8FC7E7EFEFC78FCFEFFFE78C0E0C3D6 +:1016E00000000000000000000000000003000000F7 +:1016F00000000000000000000000000010000000DA +:1017000000000000000000000000000001030F3F87 +:10171000000000000101010307031C7EFFFFFFDF43 +:101720000000000000000000000000000000003F7A +:10173000000000000000000000000000000006FCA7 +:1017400000003F7F30301F0F00030703000001013E +:101750000000F8FC7E7EFEFCFCFEFFFE78E0C0E2AE +:101760000000000000000000000000000300000076 +:101770000000000000000000000000003000000039 +:10178000000000000000071F3F7F7F0F303C7EFFFE +:10179000000000000000C0C0808080000003070738 +:1017A0000000000000000000070707000303070F08 +:1017B00000000000C0E0E0E0E0E0E000C0C0E0F0D9 +:1017C000000000000000000F070300000003070FE7 +:1017D00000000000000000F0E0C0000000C0E0F0E9 +:1017E000000F0703000F1F0300031F0F0003070F65 +:1017F00000F0E0C0C000C0800080C000C0C0E0F0C9 +:101800000000001E1F1F1F4FC7C7030FDFFC7830EB +:10181000C0E07838F8F8F0C083E3F2F0ECFE7F0324 +:10182000070703111F1F1F4FE1C1030FDFFC7830B3 +:10183000E0F0FCFCFCFCF8F0F3E3F2F0ECFE7F03DC +:101840000063E76E0C070703010307CFDFDF2E0EEF +:101850000307030078F8F8F8F0E0E0C0C0C08000AB +:1018600000000000206060001F1F0E060000000046 +:1018700000000000000000008000000000000000E8 +:101880000063EF7F1E1F1F0F07070F1FBFDFFE78CC +:101890000687860030E0E0C080C0E0C08000000025 +:1018A000000000002060E0C01F1F0E0600000000C6 +:1018B00000000000000000008000000000000000A8 +:1018C000000000000000000303030301001038784B +:1018D00000000000181C0FC7FFFFFEB81C3C78F08A +:1018E00000000000000000005F8C0F1F00000000DF +:1018F0000000000000000000FCDC3870783C1C3860 +:101900000000001E1F1F1F0F07879C7C9E0E0F1FCD +:10191000C0E07838F8F8F0C080003878FC7E7F3B73 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000303000001000000A0 +:101940000101001C1F38010343E3270703010303C0 +:10195000C0F0F878FCFEFFFFCE87078EDEDF800048 +:1019600000000000000020704000000000000000A7 +:101970000000000000000000000000000000000067 +:10198000000000000407070303393E180C04040894 +:101990007020202071FFFF9E0C6C7E3C0C181008FC +:1019A000000000000000000000E0E0400000000037 +:1019B0000000000000000000000000000000000027 +:1019C000010204040E1F1F1321397F4F03614021C0 +:1019D000C020101038FCFCCC86B6FC600486820166 +:1019E00001000000111F1F0E0C657D380C04040857 +:1019F000C0808080C4FCFC7830B3FF74606020102D +:101A00000006030346ECEEEE66060200103818C22C +:101A10000060C0C06237777766604000081C1843DA +:101A2000000000000000041E3C1800001038308642 +:101A3000000000663C3C66C3E7E7666624000000E1 +:101A400000000000000020783C180000081C0C6119 +:101A50000000000000000000000000000000000086 +:101A60000006030347EFEFEF67060200103818C2C5 +:101A70000060C0C0E2F7F7F7E6604000081C1843BA +:101A80000006030346ECEEEE66060200103818C2AC +:101A90000060C0C062347070687C58430000000071 +:101AA0000086303810000030303810000000000090 +:101AB000000000000000663C3C66C3E7E766662461 +:101AC00000610C1C0800000C0C1C08000000000049 +:101AD0000000000000000000000000000000000006 +:101AE000C21838100000060303060C0E0E0606028C +:101AF00043181C08000060C0C06030707060604017 +:101B00000000000000060303462C0E0E163E1AC20B +:101B1000000000000060C0C062347070687C5843F0 +:101B200000C218380800060F07010000000000007E +:101B30000000000000060303860C0E0E06060200DD +:101B4000000000000060C0C0613070706060400044 +:101B50000043181C100060F0E0800000000000004E +:101B6000000000000703000020383086000000005D +:101B700000060303C6CC8E0E06060200000000001D +:101B80000060C0C0633371706060400000000000FE +:101B900000000000E0C00000041C0C610000000018 +:101BA0000F07030007070700000007070003070FE0 +:101BB000F0E0C000E0E0E0000000E0E000C0E0F0A5 +:101BC000000000000301010020787E7E003C7EFFC3 +:101BD000000002C6DEDEEEEEE602000000000000BD +:101BE0000000000000000C1E3E7F7F0E303C7EFF98 +:101BF0000000000000000307070F0F070003070F96 +:101C00000000000000000080C0E0E000C0C0E0F084 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C400000007FFF60603F170003070301000707E4 +:101C50000000F0F8FCFCFCF8F0FEFFFEF8F0F8FCE9 +:101C60000000000000000000000F00000000000065 +:101C7000000000000000000000F83000000000003C +:101C800000007FFF60603F1F0003070301000103A6 +:101C90000000F0F8FCFCFCF8F0F8FCFCF8F0FEFEAC +:101CA0000000000000000000001F0C000000000009 +:101CB000000000000000000000F000000000000034 +:101CC0000000000000000000000000000C00000008 +:101CD000000000000000000000000000C000000044 +:101CE00000000F1F3F3F3F7FFF7F3F1F0F1F3F7FC2 +:101CF0000000FEFF0606FCF8F0E0C0800080C0C0D7 +:101D000000000000000000000000000007000000CC +:101D10000000000000000000000000008000000043 +:101D20000000071F3F3F3F7FFF7F3F1F0F1F1F3FE9 +:101D30000000FEFF0606FCF8F0E0C0800080808016 +:101D4000000000000000000000000000040000008F +:101D50000000000000000000000000008000000003 +:101D600000000F1F3F3F3F7FFF7F3F1F0F1F1F0FD1 +:101D70000000FEFF0606FCF8F0E0C0800080800056 +:101D80000000000000000000000000000E00000045 +:101D900000000000000000000000000090000000B3 +:101DA00000000F1F3F3F3F7FFF7F3F1F0F1F3F3F41 +:101DB0000000FEFF0606FCF8F0E0C0800080C0E0F6 +:101DC0003F7F30301F0F00000307070000000000B6 +:101DD000F8FC7E7EFEFC78FCFEFFFD78F86030604B +:101DE0003F7F30301F0F0000030707000000000096 +:101DF000F8FC7E7EFEFC78FCFEFFFD78F87020701B +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000080000000000100000040000003046 +:101E50000000000000000000000010000000000072 +:101E6000000000000000000000020004000000006C +:101E700000028000001000000000000000000000D0 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F0000000000000000000000718A0A122242F95D +:101F10000000000000000000008C52525252528C0F +:101F200000000000000000000011325292FA12116D +:101F30000000000000000000008C52525252528CEF +:101F40000000000000000000007942720A0A4A31D5 +:101F50000000000000000000008C52525252528CCF +:101F6000000000000000000000314282F28A8A7105 +:101F70000000000000000000008C52525252528CAF +:101F8000000000000000000000718A8A728A8A71D5 +:101F90000000000000000000008C52525252528C8F +:101FA000000000000000000000314A4A4A4A4A315D +:101FB0000000000000000000008C52525252528C6F +:101FC0000000000000000000000000000000000011 +:101FD00000000000000000000002060202020207EA +:101FE00000000000000000000000000000000000F1 +:101FF0000000000000000000000E11010204081F94 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4k.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4k.hex new file mode 100644 index 00000000..02cf2779 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4k.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000003AD +:10005000000000000000000000000000000000F0B0 +:10006000030F00000C07030101020303010000005D +:10007000F8C6FE76FEFCA010900020E0C0E0000074 +:10008000000000000000000000000103080F0B0F3B +:10009000000000000000000000C0FCFCFFC280C89F +:1000A00007030177620307070E0F06000000000038 +:1000B000FCF8C0E050FCFE0F070600000000000046 +:1000C0000000000000000000000001010607060615 +:1000D000000000000000000000C0FCDC1F80C043E6 +:1000E0000107EFCF010F0F1E383C18000000000081 +:1000F0008E1CA0C020F0F83C1C380000000000005E +:1001000000000000000000000000000007000F1CBD +:10011000000000000000000000000000CC3CD8F00F +:100120003F78270F07071B3E2F1300000000000039 +:10013000F070E0C0E0F0E040F0F838183818000047 +:10014000000000000000000000001F3FC7FEDCFEB2 +:10015000000000000000000000008080E00000605F +:100160007E3E7F792F1F1E1C38381C1800000000AF +:10017000C0067CF8D88000000000000000000000ED +:10018000000000000000000000000000001F1F7FB2 +:1001900000000000000000000000000000C0E08837 +:1001A0002100091F0FE7C7010F1F1C1E0F060000CB +:1001B000F8E8F8E0C080E773F8A000000000000055 +:1001C000000000000000000000000000000F0F3FD2 +:1001D00000000000000000000000000000E0F0C48B +:1001E0001000040F0703736E1F05000000000000DD +:1001F000FC74FCF8E0C0F080F7FB3878F060000099 +:100200000000000000000000000000000000001FCF +:10021000000000000000000000000000000000C01E +:100220001F7F2100091F0F0707E4CF1F3C180000A4 +:100230006088F8E8F8F0C080E097F3E0F07800001C +:1002400000000000000000000001000000000003AA +:100250000000000000000000C0C08000003E6D7F74 +:1002600003011C3E346070210307060303070600E8 +:100270003600804000000086CE8703068E8F030084 +:10028000000000000000000060E0603038180C0E34 +:100290000000000000000000030703007CDAFE6C91 +:1002A0000F070200006071FBCF073E381C0C0000F6 +:1002B000000000000000008080000000000000003E +:1002C000000000000000000000000000000000002E +:1002D00000000000000000000000000C1E0E060CD4 +:1002E0000060D0F960183038180C1E3E0000000085 +:1002F0000C1850800000001038383C1C3870781CF6 +:10030000000000000000060603060C0061C7870F0E +:100310000000000070D8FC6C000040F0FBDF8E0C89 +:1003200046603838180C0E070F0C00000000000063 +:1003300000000000000000000000000000000000BD +:100340000000000000000000386CFDD903183C706C +:10035000000000000000000000008080183C1F0327 +:10036000C0C46EEE5C180C0C07070E0C00000000F9 +:10037000367E3C1C1830787C000000000000000035 +:100380000000000000000000000000001F2D3F1BC7 +:100390000000000000000000000000000080B030FD +:1003A0000020686DC0E04C1EDEF8703000000000D8 +:1003B000204EDF9B070E0638783C1C38F0E070308A +:1003C0000000000000000000000000001F2D3F1B87 +:1003D0000000000000000000000000000080B030BD +:1003E0000020686DC0E0441E3F381C0E3E380000FF +:1003F000204EDF9B070E06183C3E0E1C383E0E00BA +:100400000000000000000000000000000000000EDE +:1004100000000000000000000000000000000000DC +:100420001B3F360000010301000B1F0D01000003FC +:10043000006060C0800080C0C0C0E0C080C0E0E05C +:10044000000000000000000000000000070F1F1F58 +:10045000000000000000000000000002E7F7FEFEC0 +:100460005CE8E7CFEF670007070330383C1E3C30FD +:100470003E14E0F0F0E000E0E4CC7C7E0000000000 +:100480000000000000000000000000007F010000EC +:10049000000000000000000000000000F0F8FCD4A4 +:1004A0003F000001030319FC79E10C0E1F3F00001F +:1004B0005C880038F0E0F307FFFEF80030387CFC81 +:1004C0001E2763662C000307030301030103011CBD +:1004D0003C7E003F1E00C0E0F0F0F0E0C0F0F0F81D +:1004E0003E361C000000000000000000000000007C +:1004F000FA76240000000000000000000000000068 +:100500001E3F007E3C0003070000000000000007C3 +:100510003C7263331A00C0F06000000040F0383CC9 +:100520000F0F0700000000000000000000000000A6 +:100530009C9C08000000000000000000000000007B +:100540000000000000000000000000000048DCBEC9 +:100550000000000000000000000000000070F8F83B +:100560003E1F1F070F1E3F3F1F0F00000000003FF0 +:10057000700080000000001EFFFF7E3C0000008035 +:10058000000000000000000000000000000000006B +:1005900000000000000000000000000000808080DB +:1005A00001000000111F1F3F7F7B71F1E3632140B9 +:1005B000C0808080C4FCFCFEFFCFC7C787060281D5 +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000008080808080801B +:1005E00001000000111F1F3F7F7B71F1E363214079 +:1005F000C0808080C4FCFCFEFFCFC7C78706028195 +:1006000000000000000000000300020000000000E5 +:10061000000000000000000000808080808080805A +:10062000010204040E1F1F1F1F1E1C3C381C04085F +:10063000C020101038FCFCFCFC78707818302010BA +:1006400000000000000000000300020000000000A5 +:10065000000000000000000000808080808080801A +:1006600001000000111F1F3F7F7B71F1E3632140F8 +:10067000C0808080C4FCFCFEFFCFC7C78706028114 +:10068000000000000000000000000000000000006A +:1006900000000000000000000000000000707E7EEE +:1006A0000000000101030303070707070000000023 +:1006B0007EFCFCFCF8F8F0F0E0E0E0E00000000078 +:1006C00000000000000000000060F00000337F7FA9 +:1006D000000000000000000000060F0000E3FFFF24 +:1006E0003F1F1F1F0F03010000000307030000004E +:1006F000FEFCFCFCF8E0E0E04000008000000000B0 +:1007000000000000000000000001030000000303DF +:1007100000000000000000000080C0800080C0C019 +:10072000071F3F3F3F3F3F7F7F1000307830000082 +:10073000C0F0F8F8F8F8FCFEDE0C00183C180000D9 +:100740000000000000000000000000000000001C8D +:100750000000000000000000000000381C3C0C0EEF +:10076000383F3F7F7FFFFF7F3F3F070000000000D3 +:1007700006F7FBFFFFFFFEFCFCFCFCF8400000005E +:100780000000000000000054383C387060EFDFFFCC +:100790000000000000000000002A1C3C1CFEFEFEC1 +:1007A000FFFF7F3F3F3F3F1F0200000000000000AF +:1007B000FFFFFFFEFCFCE000000000000000000066 +:1007C000000000000000000000030303070707010A +:1007D00000000000000000000080E0F0F8F8FCFCE1 +:1007E0000000000000000000000000000000000009 +:1007F000FCFE7E7E7E7E7E7E7E7E7E7E0000000013 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000010F0F0F0F070707030303030000006A +:1008300000C0C0C0C0E0E0E0F0F0F0F080000000D8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:10098000FF00000000000000FFFFFFFFFFFFFFFF70 +:10099000FF00000000000000FFFFFFFFFFFFFFFF60 +:1009A000FFFFFFFFFF7F3F1F8FC7E3F1F8FCFEFF54 +:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFF7F3F1F67 +:1009C000FF0000000000000080C0E0F0F8FCFEFF27 +:1009D000FF00000000000000000000000000000018 +:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1009F00080C0E0F0F8FCFEFFFFFFFFFFFFFFFFFFFE +:100A0000FF000000000000000000000000000000E7 +:100A1000FF010101010101010101010101010101C8 +:100A2000000000000000000080C0E0F0F8FCFEFFC5 +:100A300001010101010101010101010101010101A6 +:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:100A50008FC7E3F1F8FCFEFFFFFFFFFFFFFFFFFF83 +:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:100A8000FFFFFFFFFF7F3F1F9F9F9F9F9F9F9F9F96 +:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:100AA0009F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F56 +:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:100AC0000000000000000000000000000000000F17 +:100AD00000000000000000000000000002011FFFF5 +:100AE000FFFFFFFFFFFF3F07030000030FFFFFFFB4 +:100AF000FFFEFCFCFEFEF8C08000E0F8FFFFFFFFF9 +:100B000000000000000000000001070F3EF8F18720 +:100B100000000000000000000080F8800F7FFFFF51 +:100B2000FF7F3F0F010000003F7FFFFFFFFFFFFF40 +:100B3000FFFFFFFFFF7F1CFCFEFFFFFFFFFFFFFF2C +:100B400000000000000000000001001FFFFFFFFF89 +:100B500000000000003E7FFFFFFF1FFFFFF8E0C026 +:100B6000FFFEFEFFFFFF0F0040F8FFFFFFFFFFFF4C +:100B700000000080FFFFFF000003F3FFFFFFFCF019 +:100B8000000000000000C080E0FCFFFF000000004B +:100B90000000000000000000000030FF0000000026 +:100BA000000000000001871FFFFFFFFFE080000042 +:100BB000000000073FFFFFFEFCF8FFFF00030000FE +:100BC000000000000000000F000000FF0000000314 +:100BD000000000000000C0F0000000C0FF7FFFFF29 +:100BE0000F18F0C0808000000000FFFFFFFE000033 +:100BF000FF3F3F3F1F0F0F1E3FFFF8F8F0000000C0 +:100C0000000000000000000000010000FFFFFFFFE7 +:100C1000000000000000000000FE3F1FFFFFFFFF7C +:100C2000FFFFFFFFFF00033FFFFF3F01061800002B +:100C3000FFFFFFFFFFFFFFFFFCF8C0C1030C000038 +:100C40000000000000000000000307FFFF0100009B +:100C500000000000000000000000FFFFFFFF7F0019 +:100C600000C0FCFCFEFFFFFC783F3FFFFFFFFFFFE3 +:100C700000000000000F3F7FFFFFFFFFFFFFFFFFAF +:100C800000000000060100000FFFFFFFFFFFFF0C48 +:100C90000000000000F00EFFFFFFFFF0C08000002A +:100CA0000000000FFFFFFFFFFFFFFFFFFFFFFFFF41 +:100CB0000003FFFFFFFFFEFCFCF0E0E0C08080804F +:100CC00000010F1E700000E0FFFF80000000000028 +:100CD00010C08000000000000000000000000001C3 +:100CE0001EFCF0E080000001070F1F1F3F7FFFFF89 +:100CF000010307071F3F7FFFFFFFFFFFFFFFFFFF0E +:100D000000000000000000000001070F3F7FFFFF10 +:100D10000001070F0F1F1F3F7FFFFFFFFFFFFFFFB8 +:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFEFCF8FFDE +:100D3000FEFEFFFFFFFFFFFFE3C3810000013FFF57 +:100D4000FFFFFFFFFFFFFFFFFFFFFF780000000036 +:100D5000DFEEECE0E0E0E0E0E2EEC7030100013F9F +:100D6000001FFFFFFFFFFFFFFFFFFF7F7FFFFFFF72 +:100D7000FFE3C0F8FCFFFFFFFFFFFFFFFFFFFCF0FA +:100D80003F3F3F3F1F1F1F1F1F1F3F3F7F7FFFFF33 +:100D90000080C0C0E0E0F0F0FCFEFEFEFEFFFFFFC2 +:100DA000FFFFFF3F3F1F0FE3FDF9F9FBF383073F11 +:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:100DC00000000000000000000000000103070F1FEA +:100DD00000000000000000000F1F7FFFFEFEFCFC73 +:100DE0001F3F7FFFFFF9FFFFE0C00000A090B8BCED +:100DF000F8F0E0C0C08080000000000000000000AB +:100E0000FFFFFFFFFFFFFFFFFFFEFCF8F1E3C7005E +:100E1000FFFEFCF8F1E3C78F1F3F7FFFFFFFFF00DE +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E40009F3F7FFFFFFFFFFFFFFFFFFFFFFFFF0051 +:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00A1 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E8000FFFFFFFFFFFFFFFFFFFCF8F0E0C0800067 +:100E90000101010101010101010101010101010142 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000C181810070703000000000000077C +:101010000000387C7C38048FFE3C3C1C000000F74C +:10102000000000000000000000004080000000F010 +:1010300000000000000000000000000000000000B0 +:1010400000000C181812070703003C7E7F3F1E00AB +:101050000000387C7C38048EF8723F7F7F3F1E0092 +:101060000000000000000000000000800000000000 +:101070000000000000000000000000000000000070 +:101080000000183030240E0F0700000000000000A0 +:10109000000070F8F870081EFC7C3E0E0331331E11 +:1010A00000000000000000000000001E87E3663C16 +:1010B0000000000000000000000000000000000030 +:1010C00000000000003C7EFEFC78000000000000F4 +:1010D00078FC007E3C000078FC7E3E1E3C387E3E64 +:1010E000397D7C3800000000000000000000000096 +:1010F000F0F4EC48000000000000000000000000D8 +:101100000000000000003C66C6E470000000000023 +:1011100078E4C66238000078F808000000081E076E +:101120000E1F1F0E00000000000000000000000065 +:1011300078383810000000000000000000000000B7 +:10114000000000000000000000000000000000009F +:10115000000000000000000000000403000000FE8A +:101160000000000000000000000066C3673E0000B1 +:10117000000000000000000000000000000000006F +:10118000000061C3C391383C1F0703010000007FCA +:101190000000C0E0E0C02070E0C0C0C00000007FE0 +:1011A000000061C3C391383C1F1F3F3D1800007F02 +:1011B0000000C0E0E0C02070E0C0C0C00000007FC0 +:1011C000000000000000000101010100000000001B +:1011D00000000E3F7FF7FFF5BFDFBFDF0F0F0000FE +:1011E000000070FCFE7FFFFFFFFFFFFFFF3C0000E1 +:1011F0000000000030F8FCDC8C1E8E9C000000001B +:1012000000000307070301030103000000000000C2 +:1012100000E7FFFF77FF5FFFFFFFF170380C3C7EB8 +:101220000000C0E0F8FCFEFEFEFFFFFE4E0C3C7E20 +:1012300000000000000000000000000000000000AE +:101240000000000101000103030101010100000091 +:101250000039FFFFDDFFD7FFFFFFFFDF9FCF00005B +:1012600000C0F0F8FEFFFFFFF9F8FCFDF83D0000BC +:10127000000000000000C0E0E0C0C0E0E0C00000EE +:101280000E1C1E0C1C38391F1F1F0F0F070F0F07D6 +:101290000E000C060777FFFFF7FFFDFFFFFFC58677 +:1012A000000000000000000000000010010300002A +:1012B000080E0F070E040E0C0E0C00E0C08000009C +:1012C000010303070E1C191F1F0F0F0F07070F0F36 +:1012D000F080F81C0E77FFFFF7FFFDFFFFFFFCF823 +:1012E00000000000000000000000007D78F0000019 +:1012F000080E0F070E040E0C0E0400000000000084 +:101300001C7FFFEE7F2B7F3F7F7A66F7E371000043 +:10131000E0F8FCFCFEFEFFFFFF3F1F0F83C600004E +:101320001C7FFFCE7F2B7F3F7F6361F0E07000006A +:10133000E0F8FC7CFEFFFFFFFFFFFFBF1F0E000079 +:1013400000000000010100010307070300183C181A +:10135000000000FDFF3F003FFFFF9F060030783098 +:1013600000000080C0C000C0E0F0706000041E0CEF +:10137000000000000000000000000000000000006D +:101380000000000000000000000000030703000050 +:1013900000000001030002073F3F1C00860F06000B +:1013A000000000F83D0F61FCFFFFFF63010000003B +:1013B00000000000008080800080C0C0800C1E0CF7 +:1013C00000000001010001010307070000030703FB +:1013D0000000FDFF3F003FFFFFDF9E00000387038B +:1013E000000080C0C000C0F0F87830010301800028 +:1013F000000000000000000000000080C08000002D +:101400000000001F3F2700277FFFF783003079305F +:10141000000000B0F8F800F8FCFC9E0C004CEECC8C +:10142000001F3F27000000277FFFF783003079303F +:1014300000B0F8F8000000F8FCFE9E0C004CEECC6A +:1014400000000000000000030FFF7F3F5FFFCF039D +:10145000000C1E08000C1EFEFCFCFCFCFCFCF8C092 +:10146000000000000040000000000000000000003C +:1014700000000000000000000F0000183C180000F1 +:1014800000183C180010787F3F7F7F7F7F7F3F7F71 +:101490000000000000000086EFF4F0FCFEFCE0809D +:1014A0000000000000000000F040000C1E0C0000D6 +:1014B000000000000000000000000000000000002C +:1014C00000072F7C614F3F3F1F3D3C0801183C182F +:1014D00000E0F000F6FFF8F0F89C08C0E0C0000063 +:1014E00000071F3F3F7F7F7E0E00000000000000CE +:1014F00000C0F0F8FCFCFEFE7E7E7E7E7E000000DA +:10150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:1015100001010101010101010101010101010101BB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:101550000000000000000000000F080E0101090655 +:10156000000000000000000000000000000000007B +:101570000000000000000000000E11110E11110EFD +:101580000000001F2D3F1B0040EADB7830061FBE25 +:101590000000000080B03020409C3E1603071A1C5B +:1015A000000000000000000000000080F870300023 +:1015B0000000000000000000000000003F73000079 +:1015C000000000001078FAB60683D9BCF060081954 +:1015D00000000000000000000028BC2E030782CCA1 +:1015E000000000000000808000000000DEF8703085 +:1015F000000000000000000000000000EE7F33004B +:1016000060E0000000000000090A0000008CDEFC21 +:10161000030703163EBEFAF8787020000000008031 +:1016200000000000004040C0CE010F0E0703000084 +:101630000000000000000000E0C08000000000008A +:10164000030703010001030381C0A00080000133F0 +:1016500000008080C0D0BCBE1A000000000080C026 +:10166000004040C0C04000000E1C180C0E1E1800A8 +:10167000000000000000000070381830707818007A +:10168000000000070B0F0600D8FA76B7CFFFFFC2A5 +:10169000000000C060ECCC08048E0E0703C7E6DE35 +:1016A000000000070B0F86C0F0F8DC1EDFFB7B3567 +:1016B000000000C060ECCC0810A6CF0703C7CE9E88 +:1016C000003F0000001F0000000101080EFE7CF03A +:1016D00000F8FC7E6AAE44009CF8F0F903FFFF7C42 +:1016E0000000000000000000000000000C0E1F3F82 +:1016F0000000000000000000020200000C0E1F3F6E +:1017000000000000000000000000000001030F3F87 +:10171000000000000101010307071E7FFFFFFFDF3C +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:1017400000003F0000001F00000101040E7EFC703D +:101750000000F8FC7E6AAE449CF8F0F903FFFF7CC1 +:101760000000000000000000000000000000010375 +:10177000000000000000000002020000C0E0F0F0E5 +:10178000000000000000071F3F7F7F7F0E00000069 +:10179000000000000000F8FEFFFFFF1F0F0F07070B +:1017A000000000000000000007070707000000001D +:1017B0000080C0C0C0E0E0E0E0E0E0E00000000049 +:1017C00000000000000000000000070F07000000FC +:1017D00000000000000000000000E0F0E000000059 +:1017E00000000000070F1F1F1F1F1F0F0700000032 +:1017F0000000000000E0C0808080C0E00000000029 +:101800001F1F7F2100091F4FC7C7000F1F1C0800A3 +:10181000C0E088F8E8F8F0C083E392F0E0F07800E8 +:101820000F0F3C0F070F1F4FE1C1020F1F1C0800D5 +:10183000E0807CE47CFCF8F0F3E392F0E0F07800E8 +:101840000063E7610F0707030103070A1F5F2E0EFE +:1018500003FFFBFE840090F8F0E0E040C0C0800091 +:10186000000000000000000007030000000000006E +:1018700000000000000000008000000000000000E8 +:101880000063E7581F1B1F0F07070F143F5FFE7809 +:1018900006F7F6F0C080C0C080C0E0C08000000045 +:1018A000000000000000000007030000000000002E +:1018B00000000000000000008000000000000000A8 +:1018C0000000000003030F040001030100000838BA +:1018D00000000000F8FCF13F1D3FFEB81C3C28F062 +:1018E00000000000000000000F0C000000000000DD +:1018F0000000000000000000FCDC387078300000C0 +:101900001F1F7F2100091F0F0787841C0E0E000078 +:10191000C0E088F8E8F8F0C080001878F0707838F7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000303000000000000A1 +:101940000F0F3F030130010343E3270703000000AB +:10195000C0E018F8C87EFFFFCE87078E00000000A9 +:1019600000000000000020704000000000000000A7 +:101970000000000000000000000000000000000067 +:10198000000000000407070F1F3E387071316081AE +:101990007020202071FFFFFFFFF370F1C1808102F2 +:1019A0000000000000000080C0E0E0C0C0C0800077 +:1019B0000000000000000000000000000000000027 +:1019C000010204040E1F1F1F1F1E1C3C381C0408AC +:1019D000C020101038FCFCFCFC7870781830201007 +:1019E00001000000111F1F3F7F7B71F1E363214065 +:1019F000C0808080C4FCFCFEFFCFC7C78706028181 +:101A00001C7EFFFF3F1F1F0F0706020000000000A3 +:101A1000387EFFFFFCF8F8F0E060400000000000B6 +:101A2000000001070F0F030101000000000000008B +:101A30000000C3E7FFFFFFFFFFFF7E6624000000FA +:101A4000000080E0F0F0C080800000000000000096 +:101A50000000000000000000000000000000000086 +:101A60001C7EFFFF3E1C1E0E060703010301000043 +:101A7000387EFFFF7C38787060E0C080C080000056 +:101A80001C7EFFFF3F1F1F0F070602000000000023 +:101A9000387EFFFFFCF8F8F0E06040000000000036 +:101AA000000000000001070F0F030101000000000B +:101AB0000000000000C3E7FFFFFFFFFFFF7E66247A +:101AC000000000000080E0F0F0C080800000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000001C7EFFFF3F1F1F0F070602C3 +:101AF0000000000000387EFFFFFCF8F8F0E06040D6 +:101B0000000000001C7EFFFF3F1F1F0F07060200A2 +:101B100000000000387EFFFFFCF8F8F0E0604000B5 +:101B200000000000000000000000000000000000B5 +:101B3000000000001C7EFFFF3F1F1F0F0706020072 +:101B400000000000387EFFFFFCF8F8F0E060400085 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70001C7EFFFF3F1F1F0F070602000000000032 +:101B8000387EFFFFFCF8F8F0E06040000000000045 +:101B90000000000000000000000000000000000045 +:101BA00000000007070707070707070707000000EF +:101BB000000000E0E0E0E0E0E0E0E0E0E000000065 +:101BC00000000000030F1F3F3F7F7E7E7E0000006D +:101BD000000000E0E0E0F0F0F00000000000000095 +:101BE0000000000000030F1F3F7F7F7E0E000000FB +:101BF0000000000000FCFFFFFFFF0F0707000000D0 +:101C00000000000000000080C0E0E0E000000000F4 +:101C100000000000000000000000000000000000C4 +:101C2000000000000000000000314A4A4A4A4A31E0 +:101C30000000000000000000008C52525252528CF2 +:101C400000007F0100003F283838383C19000109A6 +:101C50000000F0F8FCD45C8800F87CFDFF0FFFF872 +:101C6000000000000000000000333E7E0000000085 +:101C7000000000000002020000C00C1C3C783C0C7C +:101C800000007F0100003F00000000040FFE7DF017 +:101C90000000F0F8FCD45C8800C87CFCF800F8F97F +:101CA0000000000000000000000130383C1E3C3005 +:101CB000000000000000000000CC7C7E000000005E +:101CC00000808000000000000000000030387CFC34 +:101CD0000000000000000000000000003070F8FC70 +:101CE000A0E0EFFFFFEBFA910C1F3F1F001F0F0753 +:101CF0005070FE800000FC0080C0C080008080002A +:101D0000008080000000000000000000181D1F3F40 +:101D100000000000000000000000000040C0E0F0F3 +:101D2000A0E0F7FFFFEBFA910C1F3F1F001F070316 +:101D30005070FE800000FC0080C0C08000808000E9 +:101D40000080800000000000000000000307070F73 +:101D5000000000000000000000000000008080C0C3 +:101D6000A0E0EFFFFFEBFA910C1F3F1F001F1900CF +:101D70005070FE800000FC0080C0C08000808000A9 +:101D8000008080000000000000000000101C1F3FC9 +:101D900000000000000000000000000060E0E0F033 +:101DA000A0E0EFFFFFEBFA910C1F3F1F001F1F0E7B +:101DB0005070FE800000FC0080C0C08000800000E9 +:101DC0003F00050A1F000000010100EFEFFFFF7F49 +:101DD000F8FC7EEAAE44009CF8F0FA07FFDECE9CE9 +:101DE0003F000A051F000000010100EFEFFFFF7F29 +:101DF000F8FCFE6AAE44009CF8F0FA07FFCEDE8CD9 +:101E000000000000000000000000000000000000D2 +:101E10000000000000000000001F02040201110E7B +:101E200000000000000000000000000000000000B2 +:101E3000000000000000000000020602020202078B +:101E4000000000000000000000200004100060FD01 +:101E50000000000000040000004000000440E7FF14 +:101E60000000000400400000001000042002E71FF2 +:101E700000008000000008000000200400006699B7 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2d.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2d.hex new file mode 100644 index 00000000..4814deca --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2d.hex @@ -0,0 +1,513 @@ +:100000000000000000000000FF7F3F1F0F070301FA +:100010000080C0E0F0F8FCFEFFFFFFFFFFFFFFFFE6 +:10002000FFFFFFFFFFFFFFFF0000000000000000D8 +:1000300000000000000000000000000000000000C0 +:10004000010101FF101010FF010101FF101010FF4E +:10005000010101FF101010FF010101FF101010FF3E +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:10008000C0FFFFC0C0FFFFC0FFFFFFDFCFFFFFC10A +:10009000C0FFFFE0F0FFFFFEFFFFFFFFFFFFFFFFDE +:1000A00003FFFF0303FFFF03FFFFFFFFFFFFFFFF50 +:1000B0000000000000000000000000000000000040 +:1000C00000FFFF0000000000FFFFFF1F0F070301FC +:1000D00000FFFFE0F0F8FCFEFFFFFFFFFFFFFFFF68 +:1000E000000000000001003F00000000008000FC54 +:1000F000103F243F3F223F1F08FC24FCFC44FCF837 +:10010000000000000000000010101010000010009F +:10011000282828000000000028287C287C282800A7 +:10012000103C50381478100060640810204C0C000B +:1001300030485020544834003010200000000000A7 +:1001400008102020201008002010080808102000A7 +:1001500000105438541000000010107C10100000E3 +:1001600000000000301020000000007C00000000B3 +:1001700000000000003030000004081020400000A3 +:10018000384CC6C6C6643800307030303030FC00A1 +:100190007CC60E3C78E0FE007E0C183C06C67C0057 +:1001A0001C3C6CCCFE0C0C00F8C0F80C0CCC78009D +:1001B0003C60C0FCC6C67C00FEC60C183030300067 +:1001C00078C4E4789E867C007CC6C67E060C7800E7 +:1001D000003030003030000000303000301020009F +:1001E000FCF8F0F0F0F0F8FC00007E007E0000006B +:1001F0003F1F0F0F0F0F1F3F38440408100010005F +:100200003C4299A1A199423C386CC6C6FEC6C600C4 +:10021000FCC6C6FCC6C6FC003C66C0C0C0663C004E +:10022000F8CCC6C6C6CCF800FCC0C0F8C0C0FE0002 +:10023000FEC0C0FCC0C0C0003E60C0CEC6663E006E +:10024000C6C6C6FEC6C6C600FC3030303030FC0024 +:100250000606060606C67800C6CCD8F0F8DCCE0046 +:10026000C0C0C0C0C0C0FE00C6EEFEFED6C6C600FE +:10027000C6E6F6FEDECEC6007CC6C6C6C6C67C0096 +:10028000FCC6C6C6FCC0C0007CC6C6C6DECC7A00B2 +:10029000FCC6C6CEF8DCCE0078CCC07C06C67C009E +:1002A000FC30303030303000C6C6C6C6C6C67C0012 +:1002B000C6C6C6EE7C381000C6C6D6FEFEEEC60028 +:1002C000C6EE7C387CEEC600CCCCCC78303030002A +:1002D000FCFC183060FCFC00000000000030300026 +:1002E000C080D895D50305073808080808083800E5 +:1002F0003F3F000029133F1E80C0F070D0F0E000A7 +:100300000000000101010303FF7F3F1F0F070303EC +:100310000080C0E1F1F9FFE3FFFFFFFFFFFFFFE314 +:100320000000000000000080FF7F3F1F0F070381D7 +:100330000080C0E070783C82FFFFFFFF7F7F3F833B +:100340000700000F1F1F3F7FC700001F1F1F3F7FB9 +:10035000078000EFFFFFFFFFC78000FFFFFFFFFFE9 +:10036000800000C0C0E0E0F0810100CFC7E3E3F10E +:10037000800000C0C0E0E0F0810100CFC7E3E3F1FE +:100380000000000103070107FF7F3F1F0F07010760 +:100390000080C0E1F3FFF9FFFFFFFFFFFFFFF9FF60 +:1003A000000000E0F0F888F8000000E0F0F888F8BD +:1003B000000000E0F0F888F8FFFFFFFFFFFF8FFF6D +:1003C0000E0E0D0D1F1F1F1F0E0E0D0D1F1F1F1FC9 +:1003D0000E0E0D0D1F1F1F1FFEFEFDFDFFFFFFFF79 +:1003E000F8F8F8FCFCFCFCFCF8F8F8FCFCFCFCFC65 +:1003F000F8F8F8FCFCFCFCFCF8F8F8FCFCFCFCFC55 +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000030F010003071F7FFFFFB3 +:100490000000030F3FFFFFFFFFFFFFFFFFFFFFFF16 +:1004A000000000000001071F3F7FFFFFFFFFFFFF6D +:1004B000FFFFFFFFFFFFFFFF00000000FFFFFFFF48 +:1004C000FFFFFFFFFFFFFFFF00000007FFFEFCF83C +:1004D000F8F8F8F8F1F0E3E79FFFFFFFFFFFFFFFF9 +:1004E000000000000001070F1E188107070F0F1FF3 +:1004F0003F3F3FFFFFFFFFFF0000000F3FFFFFFFF9 +:1005000000030F3FFFFFFFFF000000000001071F77 +:100510003F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10052000FFFFFFFFFFFFFFFF0000000000FFFFFFD6 +:1005300000000000000000000000001FFFFFFFFFA0 +:100540000000030F3FFFFFFF000000000001071F36 +:100550003F7FFFFFFFFFFFFF0000030F1FFEFEFEB8 +:10056000F0F8FCF8F8F0F181079801071F1F3F7FB2 +:100570001F0F3FFFFFFFFFFF000000000000030F01 +:100580007FFFFFFFFFFFFFFF0000030F3FFFFFFFA5 +:1005900000017FFFFFFFFFFF7FFFFFFFFFFFFFFF68 +:1005A000FFFFFFFFFFFFFFFF00000000000000FF54 +:1005B000F8FFFFFFFFFFFFFF60F0FCFEFFFFFFFF04 +:1005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1005F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10061000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10063000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10065000F7F7EFEFCFDF9F9FFFFFFEFCFCF8F0E026 +:100660003F3F3F3F1F1F1F1FFFFFFFFEFCFCFCFC27 +:10067000C0800000000101017FFFFFFFFFFFFFFFBF +:10068000F8F2E6DFFFFFFFFF030307070F1F3F7FBF +:10069000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:1006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:1006B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:1006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:1006D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1006E000FFFFFFFFFFFFFFFFFEFCFCFCFEFFFFFF25 +:1006F0003F9FCFE0E3C70107070F0F0F0783C1F844 +:10070000FFF38F3F7F7F3F1FFFFFFFFFFFFEFCF8E0 +:10071000FFFFFFFFFFFFFFFFFFFFFFFFFF7F3F1F09 +:10072000070F1F1F3F1F0F0F070F8F9FCFFFF3F9FB +:10073000FCFCFEFEFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:100790000000000000000000FFFFFFFFFFFFFFFF61 +:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:1007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:1007D000FFFFFFFFFF600000FFFFFFFFFFFF7F073E +:1007E000FFFFFFFFFFFEFEFCFFFBF7CF1F3F7F7FFA +:1007F000F0F0F0F0F0F0F0FC7FFFFFFFFF60000092 +:100800000000000000000000FFFFFFFFFFFFFFFFF0 +:1008100000000000000000000000000000000000D8 +:10082000009CFCFEFEFFFFFF00000000000080F8BF +:10083000FF7F1F0F03010000FFFFFFFFFFFFFF7F90 +:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:1008600000FCFFFFFFFFFFFF1F0FC7E7F3FBFBFCD1 +:10087000FFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFF48 +:10088000FFFFFFFFFFFF7F07FFFFFFFFFFFFFFFFF0 +:10089000FFFFFFFFFFFFFFFF009CFCFEFEFFFFFFCF +:1008A00000000000000080F8FF7F1F0F0301000020 +:1008B000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFC8 +:1008C000FFFFFFFFFFFFFFFF071FFFFFFFFFFFFF10 +:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1009000000000000000000000C0E1E1C086070308B +:100910001F0FC7E7F3FBFBFFFFFFFFFFFFFFFFFF1B +:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF8B2 +:1009600000000030381838108F1F1F1F1F1F0F8FF7 +:100970000000000000303818FFFFFFFFFFFFFFFFFF +:10098000FFFFFFFFFFFBFBF7F7EFEFEFE7F3F9F8F0 +:100990007CFE6F3F7EFCFE7FFFFFFFFFFFFFFFFF40 +:1009A0001C3E7EFEFE7F0E06FFFFFFFFFFFFFFFFE8 +:1009B000FFFFFFFFFFFFFFFF00000000000000003F +:1009C000000000000000009F00000000010FFFFF7A +:1009D0000001073FFFFFFFFFF8FFFFFFFFFFFFFFE3 +:1009E0000000E0FFFFFFFFFF0000001FFFFFFFFF11 +:1009F000000000FFFFFFFFFF0000FFFFFFFFFFFF02 +:100A00000000000000000000387CF6E7FFFFE7630D +:100A1000FCFEE7FFFEE7FF7E3C7EF3E0E0663F1E64 +:100A2000F8FCE6E7E7EFFE7CFCFEE0F8FCE0FE7F8A +:100A3000FEFFE0FCFEE0E0603E7FF0EEE7673F1F78 +:100A4000C6E7E7FFFFE7E763FC7E38383838FC7E0F +:100A50000607070707C77F3EC6EFFEFCF8ECE66314 +:100A6000C0E0E0E0E0E0FE7FC6EFFFFFFFEFE763FE +:100A7000C6E7F7FFFFEFE7637CFEE7E7E7E77F3EC8 +:100A8000FCFEE7E7FFFEE0607CFEE7E7FFEF7E3D70 +:100A9000FCFEE7EFFFFCEE6778FCE67C3EC77F3E9E +:100AA000FC7E383838383818C6E7E7E7E7E77F3E96 +:100AB000C6E7E7EF7F3E1C08C6E7F7FFFFFFF763D7 +:100AC000C6EF7F3E7CFEF663CCEEEE7E3C383818F7 +:100AD000FE7F1F3E7CF8FE7F00000000000000004B +:100AE000FFFFFFFFFFFFFFFF00000000000000000E +:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:100BD000FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF29 +:100BE000FFFFFFFFFFFFFFFFF8FCFEFFFFFFFFFF20 +:100BF000FF630301F1FCFFFFFFFFFFFFFFFFFFFFAC +:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:100C1000FFFFFFFFFFFFFFFFF7F7E7E7C3C3E3E1D6 +:100C2000E1F1F9FDFDFFFFFFFFFFFFFFFFFC783063 +:100C3000FFFFFFFFFF3F1F1FFFFFFFFFFFFFFFFE45 +:100C4000FCFBF7EFDFBF7FFFFFEFE7FFFFFFFFFFDB +:100C5000F0F0F8FCFEFEFFFF30000000010103038E +:100C60003F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:100C7000FFFFFFFFFFFFFFFFFDFBFBFBFBFBFBF7A6 +:100C80000303030303030303FFBF9FFFFFFFFFFFF4 +:100C9000FFBF9FFFFFFFFFFFF7F7EFDFDFBFBFBF24 +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:100CB000FFFF00000000FFFF03030000000003032C +:100CC000FFFF0F0F0F0FFFFFFEFCFDFEFEFEFEFEFF +:100CD000FFDF9FFFFFFFFFFF7F7F7F7F7F7F7F7FA4 +:100CE000FFFFFFFFFFFFFFFF7F6F677F7F7F00003A +:100CF000FFEFE7FFFFFF0000FFEFE7FFFCF0000062 +:100D00000303030300000000FFBF9FFFFF3F00003D +:100D1000FFBF9FFFFFFF0000FFDF9FFFFFFFFFFF01 +:100D20007F3F9FFFFFFFFEFCFFFFF9E0C080000058 +:100D3000FFFFFF0000000000FCE08000000000005A +:100D400000000000000000007F7F000000007F7FA7 +:100D5000FF7F7F1F01030100FFFFFFFFFFFFFF7FFA +:100D60001F03010001030100FFFFFFFFFFFFFFFF63 +:100D70001F033108051301040000000000000000FB +:100D8000FFFFFFFFFFFFF8E0FFFFFFFFFFFF030391 +:100D9000C08000000080E0FC0100000000000000B6 +:100DA000FF7F3F1F07010100C0C0FFFFFFFFFFFFE4 +:100DB0001FFFFFFFFFFFFFFF00000000000000001B +:100DC0000F030100000F3FFFFFFFFF1F07C3E3F109 +:100DD00003070F0F0F0360F8F3C387FFFEF800004F +:100DE000F0E0C0000001077FFFFF7F61FEFFFFFF13 +:100DF000FFFFFFFF3F87FBFDFFFFFFFFFFFFFFFF41 +:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:100E1000FFFFFFFFFFFFFFFFFEFFBFDFEFF3FCFF62 +:100E2000FF7FBFDFEFF7FB01FAFEFFFFFFFFFFFFD2 +:100E3000FF7FFFFFFFFFFFFFFFFFFFFFFFFFFC0143 +:100E4000FFFFFFFFFCC000E000000000000000000A +:100E5000010101FF0F0F1F07020000FF171311FF11 +:100E6000030000C0E0F8FDFD000000000080C0C0ED +:100E700080C0E0F07038383800003F3F3E3C383FDB +:100E80000000FFFFFFFFFFFF0000FFFFFEFCF8FF79 +:100E90000719E1FF080808FF0101013F0808083FA2 +:100EA000010101FF080808FF000000000000000029 +:100EB000FFFFFFCFE3F8F8F80000C0F3FF7F00FF6B +:100EC0003F3FFFFEF8823EFEFFFFFF7F7F7F7F7F79 +:100ED000F8F8F8F8F8F8FCFFFFFFFFFFFFFFFF004E +:100EE000FFFFFFFFFFFCF0000F0300000000000009 +:100EF000FFFFFF1F0701030F0000000000000000BC +:100F00000000E0FFFFFFFFFF000000FFFFFFFFFF0B +:100F100003010000C0F8FEFFFFFF7F1F07010080F4 +:100F2000FFFFFFFFFFFF7F1FC0F0FCFFFFFFFFFF82 +:100F300007010000C0F0FCFF070307393EFFFFFF79 +:100F4000FFFFFFFF1FE0FFFFFFFFFFFFFFFFFFFFB0 +:100F5000FFFFFFFFFFFFFFFF000000000000000099 +:100F60000000FFFFFFFFFFFF0000FCFCFCFCFCFC9F +:100F7000FCFCFCFCFCFCFCFC0080E0F0FCFFFFFF48 +:100F8000FF000000000080C0FF0000000000000023 +:100F9000FC00000000000000000000000000000055 +:100FA000F0F8FEFFFFFFFFFF00000080C0E0F8FC4C +:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:100FC000FFFFFFFFFFFFFFFF0F010000000080C0D9 +:100FD0003F3F3F3F3F3F3F3F000103070F1F3F7F22 +:100FE000000000000000C0E0FFFFFFFFFFFFFFFF69 +:100FF00000000000000000000000000000000000F1 +:10100000FF80808080808080FF010101010101015B +:1010100080808080808080FF01010101010101FF4B +:1010200000000000000000000000000000000103BC +:1010300000000F1F7FFFFFFF0000F8FFFFFFFFFF13 +:1010400000000000C0F8FFFF00000000000000C02A +:101050000000000000000000000000000000000090 +:1010600000000000000000000000000000073F003A +:101070000F0F3F7FFFFFC300FFFFFFFFFFFFFFFFDB +:10108000FFFFFFFFFFFFFFFFF0FCFFFFFFFFFFFF82 +:10109000000000C0F0FEFFFF000000000000FDFFA8 +:1010A00000000E3F3FFFFFFF00000080F8FFFFFF42 +:1010B0000000000000FFFFFF000000000000F0FF44 +:1010C000000000000000030F000100000000FFFF0F +:1010D00000FF00003F0300FFFFFFFF07FFFF1FC3EC +:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1010F000000000000003073F0000001FFFFFFFFF8C +:1011000000000000F8FFFFFF0000000000E0FFFF0C +:1011100000000000000000FC000000010F1FFFFFA6 +:10112000011F7FFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10113000FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFCE +:101140000000FFFFFFFFFFFE00000000000001079E +:101150000103070F1F3FFFFF000000000301000015 +:101160000000000080FE7F3F000000000000C08003 +:1011700000000000000000000F1F3F7F7FFF6F1F77 +:10118000FFFFFFFFFFFFFFFF04070000000000005C +:1011900080808080000000000000F8F0E0C0C00304 +:1011A000000000000038FFFF3F07000000008FFF35 +:1011B000FFFF1F0003FFFFFFFFFFFF3FFFFFFFFFDA +:1011C0000000000000000000F8FEFFFFFFFFFFFF2F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000070000E8 +:101200000000000003C07C0F0000000000FC000094 +:1012100000000000000000000000000000000000CE +:101220000000000000000000000000000000013F7E +:1012300000000000073FFFFF00031FFFFFFFFFFF4D +:101240000000000000071F3F000000000000000039 +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:1012900000000000000000000000000000083860AE +:1012A0002367031F38000000F8F8F000000000007A +:1012B00000000107070E00193F7FF0C31F7FFEFCEF +:1012C000F870F0E0C08000000000000000000000A6 +:1012D0000100000000000000C0000008081010001D +:1012E00000000000000000000000000103000000FA +:1012F00000000000000000000001010301010303E1 +:1013000000808080C0C0C08000000000000000009D +:1013100000000000000000000000000001070E3C7B +:10132000070F4F9FBF0F02028000800000000000E7 +:101330000000000000000000000000030F0000009B +:101340000023C08000000000E80000000000000052 +:101350000000000000000000FF7F0F0300000000FD +:10136000FFFFFFFFFF1F0707FFFFFFFFFFFFFFFF5D +:10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10138000FFFFFFFFFFFFFFFFFFFFFFFEF0E0C000DA +:10139000F8E08000000000000000000000000000F5 +:1013A000000000000000000000000000000000003D +:1013B0000000000000000000030100000000000029 +:1013C000FFFFFF0000000000FFFFFFFE0000000025 +:1013D000FCE080000100000000084CE6EF74320CD5 +:1013E000000000C00000000000000000000000003D +:1013F00000000000000000000400000000000000E9 +:10140000000000000100000000204080C4EE6633B0 +:10141000000000000000C0E000000000000000002C +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:101450000000000000000000C020000000000000AC +:10146000000000000000000000000000000000007C +:10147000000000000000000100000000001060C03B +:101480000000000000000000000000003000030029 +:10149000000000000000000000000000000830E034 +:1014A0000000000001010207000109880C1C07016F +:1014B000000080E0701F06C3000000000000004034 +:1014C0000000000000007F80000000030001F00029 +:1014D000000000807080000000000000E0000000BC +:1014E00000000000000000000000000000000000FC +:1014F000000600000000000003071E0000000000BE +:101500008000000038E00000000000000000000043 +:101510000000000000000000070F1F3F3F0F0703FF +:10152000C060483C391F0100300C01070E07C100A4 +:10153000F0380018300880000000077E0F00010717 +:101540000E70800000F0FFFF00000000000000F0BF +:10155000000000000000031F00000000013FFFFF2B +:10156000071F3FFFFFFFFFFF00000000000000001B +:1015700080F8FFFFFFFFFFFF000000E0F8FEF8E04B +:101580000003070300000000FFFFFFFFFF1F07012C +:10159000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:1015A000FFFFFFF0E0FFFFFFFFFE000000E0F0F8AC +:1015B000F800000000000000FF7F1F0F0700000080 +:1015C000FFFFFFFFFFFF3F0FFCFFFFFFFFFFFFFFDE +:1015D0000000E0F8FFFFFFFF0000000000C0F0FF88 +:1015E0000000007F3F0F070300000000F0FFFFFF37 +:1015F00000000000030FFFFF00000000FFFFFFFFDF +:101600000000000000FFFFFF0000000000C0FCFF22 +:1016100000000000000000000000000000000000CA +:101620000000000000000000FF7F3F1F07010000D6 +:10163000FFFFFFFFFFFFFF3FC0F0FCFCFFFFFFFFCE +:101640000000000000C0E0FC1F0F0F0701000000B9 +:10165000FFFFFFFFFFFF7F00FFFFFFFFFFFFFCF02B +:10166000FFFFFFFFF8800000FEF8E0000000000030 +:101670000000000000000000000000000000030166 +:10168000FFFF0F1E700000E090C08000000000000F +:10169000FFFF8000000000000000000000000001CB +:1016A0001EFCF0E080000001010307071F3F7FFFE1 +:1016B000070F1F1F3F7FFFFFFFFFFFFFFFFFFFFF22 +:1016C0003F7F000000F00EFF00000000000000005F +:1016D00000000000000000000001070F0F1F1F3F67 +:1016E0000001070F3F7FFFFF7FFFFFFFFFFFFFFFAF +:1016F000FFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFC +:10170000FFFFFFFFFEFCF8FFE3C3810000013FFF86 +:101710000000000001030F3F07071E3FFFFFFFDF30 +:10172000FFFFFFFFFFFFFFFFDFEEECE0E0E0E0E0A8 +:10173000FFFFFF7800000000E2EEC7030100013F59 +:10174000001FFFFFFFFFFFFFFFE3C0F8FCFFFFFFED +:10175000FFFFFF7F7FFFFFFFFFFFFFFFFFFFFCF0AB +:1017600000000000010101030000000103070F1F3A +:101770000F1FFFFFFEFEFCFC1F3F7FFFFFF9FFFF77 +:10178000F8F0E0C0C0808000E0C00000A090B8BCCD +:1017900000000000000000003F3F3F3F1F1F1F1FD1 +:1017A0000080C0C0E0E0F0F01F1F3F3F7F7FFFFFE1 +:1017B000FCFEFEFEFEFFFFFFFFFFFF3F3F1F0FE3AC +:1017C000FFFFFFFFFFFFFFFFFDF9F9FBF383073F7B +:1017D000FFFFFFFFFFFFFFFF000000000000000011 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:10180000FF80808080808081FF01010101010181D2 +:1018100081808080808080FF81010101010101FFC2 +:101820000000387FFFFFFFFF000006F8C0B8BFBF11 +:10183000000000000003FFC007071F3FFFFFF80084 +:10184000FF87FFFFFFFF0F3FFFFFFEFFFFFFFFDFF1 +:101850000000000000000000000000000000000088 +:101860001F1F3F3F3F7F7FFFFFFFFFFFFFFFFFFF88 +:10187000FFFFFFFFFFFFFFFFFFBFFFFFFFF9FFFFBE +:1018800000000000000000000001010303070F0F2B +:10189000FFFFFFFFFFFFFFFFFFFFFFFFFEF8FCFF63 +:1018A000E0C0800103070F1F0F1FFFFFFEFEFCFCBF +:1018B0000003070F0F1E3C78FFFFFF9F1F3F7FFFB6 +:1018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1018D000E0E0C0C0E0E0F0F00000000103071F3FBF +:1018E0001F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:1018F000E0E0E0C080E0F0F0000000000101030340 +:101900007FFFFFFFFFFFFFFFFFFFFFFFFBF9F0F08F +:1019100001070F1F3F3F3B7FFFFFFFFFFFFFFFFF61 +:1019200001070F1F3F3F3F7F000000000103070F2B +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000F88 +:1019500000000000000000000000000002011FFF66 +:10196000FFFFFFFFFFFF3F07030000030FFFFFFF25 +:10197000FFFEFCFCFEFEF8C08000E0F8FFFFFFFF6A +:1019800000000000000000000001070F3EF8F18792 +:1019900000000000000000000080F8800F7FFFFFC3 +:1019A000FF7F3F0F010000003F7FFFFFFFFFFFFFB2 +:1019B000FFFFFFFFFF7F1CFCFEFFFFFFFFFFFFFF9E +:1019C00000000000000000000001001FFFFFFFFFFB +:1019D00000000000003E7FFFFFFF1FFFFFF8E0C098 +:1019E000FFFEFEFFFFFF0F0040F8FFFFFFFFFFFFBE +:1019F00000000080FFFFFF000003F3FFFFFFFCF08B +:101A0000000000000000C080E0FCFFFF00000000BC +:101A10000000000000000000000030FF0000000097 +:101A2000000000000001871FFFFFFFFFE0800000B3 +:101A3000000000073FFFFFFEFCF8FFFF000300006F +:101A4000000000000000000F000000FF0000000385 +:101A5000000000000000C0F0000000C0FF7FFFFF9A +:101A60000F18F0C0808000000000FFFFFFFE0000A4 +:101A7000FF3F3F3F1F0F0F1E3FFFF8F8F000000031 +:101A8000000000000000000000010000FFFFFFFF59 +:101A9000000000000000000000FE3F1FFFFFFFFFEE +:101AA000FFFFFFFFFF00033FFFFF3F01061800009D +:101AB000FFFFFFFFFFFFFFFFFCF8C0C1030C0000AA +:101AC0000000000000000000000307FFFF0100000D +:101AD00000000000000000000000FFFFFFFF7F008B +:101AE00000C0FCFCFEFFFFFC783F3FFFFFFFFFFF55 +:101AF00000000000000F3F7FFFFFFFFFFFFFFFFF21 +:101B000000000000060100000FFFFFFFFFFFFF0CB9 +:101B10000000000000F00EFFFFFFFFF0C08000009B +:101B20000000000FFFFFFFFFFFFFFFFFFFFFFFFFB2 +:101B30000003FFFFFFFFFEFCFCF0E0E0C0808080C0 +:101B4000003C7EE7C3C7FEFCC6C7C3C3C3C7FEFCD9 +:101B500000000000001C3D736363636363626061A7 +:101B60000000000000F0E18B1B1B1B1B1B3BF1E086 +:101B70000018181818F8F9BB1B1B1B1B1BBBF1E046 +:101B80000000000000E0F1BB1B3BF3E303BBF3E309 +:101B90000018181818FFFF9D18181818181D0F079F +:101BA00000000000001898D8D8D8D8D8D8DD8F0702 +:101BB0000000000000C7CFDDD8D8D8D8D8D89818F2 +:101BC0000000000000078FDDD8D8D8D8D8DDCFC7F7 +:101BD00000C0C0C0C0C0C0C0C0C0C0C0C0C08000C5 +:101BE000000041E3E3E3777F000082C7C7C7DEFE62 +:101BF0007F3F3F3F1F1F1F19FEFCFCFCFCF8F898BD +:101C0000000103394721201010080F0000000000D8 +:101C100000008038C40809131907E1201010080FCC +:101C2000000103394721209030C00F08101020E038 +:101C300000008038C40808101020E00000000000F8 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000307010101030303030358 +:101C700007070707070F0F0F0F1F1F1F3F3F00002A +:101C8000000000000000FFFFFFFFFFFFFFFFFFFF5E +:101C9000FFFFFFFEFEFEFCFFFFFFFFFFFFFF000058 +:101CA00000000000000080C0C0C0C0C080808080F4 +:101CB00000000000000005FDFDF9F9F9F1E0000069 +:101CC00000000000000000000000000F1F3F7F7FA9 +:101CD0007FFFFFFFFFFFFFFFFFFFFFFFFF7F000012 +:101CE0000000000000000000000000FFFFFFFFCF29 +:101CF000CF8F9F9F9F3F3F3FFFFFFFFFFEF80000FA +:101D00000000000000000000000000F0F8F9F9F306 +:101D1000F3F3F7F7E7E7EFEFCFCFCF8F070300003D +:101D200000000000000000000000003FFFFFFFFE79 +:101D3000FEFEFCFCFCF8F8F9FFFFFFFBF1C0000021 +:101D40000000000000007F1F1F3F7FFFFFFFFF7F9D +:101D50007F7F7FFFFFFFFFFFFFFFFFFFFFFF000011 +:101D6000000000000000E0F0F0F0F0F0E1E3E7CF69 +:101D7000CFDFDFDF9F9FBFBF3F3F3F3F9FC70000D9 +:101D800000000000000000000000007FFFFFFFF9DE +:101D9000F9F3FFFFFFFFF0E0FFFFFFFFFFFF000091 +:101DA0000000000000000000000000FCFEFFFFFF3C +:101DB000FFFEFEFCFCE0000EFCFCF8F8F0800000EA +:101DC0000000000000000000000000000000000013 +:101DD00000000101010101030303030707030000E1 +:101DE0000000000000007FFF1F1F1F7F7F7FFFFF9D +:101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000F1 +:101E0000000000000000FFFFFFFFFFFFF3E1E3E73A +:101E1000EFFFFFFFFFFFBFBF9F9F8F0F87C7000030 +:101E2000000000000000F0FCFFFFFFFFFFFFFFFFCE +:101E3000FFFEFCF0C0E0F0F8FEFEFCFCF8F0000055 +:101E400000000000000000000000809FBF9F9F3F37 +:101E50003F3F3F7F7F7F7F7FFFFFFFFFFF7F0000D0 +:101E60000000000000000000000000E3F7F3F3F3BF +:101E7000E3E7E7E7E7CFCFCFFFFFFFFFDF0F00008C +:101E80000000000000000000000000FCFEFFFFFF5B +:101E9000FEFEFEFCFCFCFCF8F9F9F9F9FEFC000082 +:101EA00000000000000000000000003F7F3F3F3FB7 +:101EB0007F7F7F7FFFFFFFFFFFFFFFFFFF7F0000B0 +:101EC0000000000000000000000000E1F7EFFFFF4D +:101ED000E7C7C7CFCFCF8F9F9F1F1F3FBFDF000038 +:101EE0000000000000000000000000FCFFFEFEFCFF +:101EF000FDFDFDF9FBFBFBF3F7F7F7E7E3F9000066 +:101F00000000000000000000000000FFFFFFFFFFD6 +:101F1000FFFFFFFFFFFFFEFEFEFCFCFCFEFF0000DC +:101F2000000000000000000000000087DFBFFFFF8E +:101F30009F1F1F3F3F3F3F7F7F7F7FFFFF7F00004F +:101F40000000000000000000000000F0F8F8F9F3C5 +:101F5000F3F7F7E7E7E7EFCFCFCFCF8F87E10000C9 +:101F600000000000000000000000000F7FFFFFFEE7 +:101F7000FEFCFFFFFFFFFCF8FFFFFFFFFFFF00007D +:101F80000000000000000000000000FFFFFFFF7FD6 +:101F90007FFFFFFFFFF80003FFFFFEFEFCC0000015 +:101FA00000000000000000000000000F9FC7C7C72E +:101FB000CF8F8F1F1F1F1F9F3F3F3F3F7F7F00001F +:101FC0000000000000000000000000F8FDFDFFFF21 +:101FD000FFFEFCF8F8F8F0F0F0F0E0E0F8F00000B8 +:101FE00000000000000000000000007CFCF8F8F891 +:101FF000F0000000000000000000000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2f.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2f.hex new file mode 100644 index 00000000..105c8ccc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2f.hex @@ -0,0 +1,513 @@ +:100000000000000000000000FF7F3F1F0F070301FA +:100010000080C0E0F0F8FCFEFFFFFFFFFFFFFFFFE6 +:10002000FFFFFFFFFFFFFFFF0000000000000000D8 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:100060000000000000000000000000000000000090 +:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:1000800000000000000000003F00001F0F00000102 +:10009000000000203000003E3F00003F3F00003FD6 +:1000A0000000000000000000FC0000FCFC0000FC60 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000FF00001F0F070301F8 +:1000D000000000E0F0F8FCFEFF0000FFFFFFFFFF64 +:1000E0000000000000000000000000000000000010 +:1000F0000F001B00001D0000F000D80000B8000039 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F0000101003C173F3F1E80C0F070F0F0E000AD +:10030000000000000000001CFF7F3F1E0E06001CC6 +:100310000080C0E0F0F8FCFCFFFFFFFEFEFEFCFCEE +:10032000000000000000003CFF7F3F1F0F07033D5F +:100330000080C0E070783C3EFFFFFFFF7F7F3F3FC3 +:10034000387FFF0000000000F87FFF100000000071 +:1003500038FFFFE0E0E0C080F8FFFFF0E0E0C080A1 +:100360007EFEFF00000000007FFFFF0F0703030178 +:100370007EFEFF00000000007FFFFF0F0703030168 +:100380000000000000000000FF7F3F1E0C00000086 +:100390000080C0E0F0F8F8F8FFFFFFFEFCF8F8F886 +:1003A000000000000000000000000000000000004D +:1003B0000000000000000000FFFFFF1F0F070707FD +:1003C000000000001018181C000000001018181C75 +:1003D000000000001018181CF0F0F0F0F0F8F8FC25 +:1003E000000000040C0C1C3C000000040C0C1C3C25 +:1003F000000000040C0C1C3C000000040C0C1C3C15 +:10040000FFFFFFFFFFFFFFFFFFFFFF0000000000F7 +:10041000FEF80000000000007F1F01000000000047 +:10042000FFFFF80000000000FFF8000000000000DF +:10043000FFFF7F3F0F030000FFFFFFFFFFFEF8C03D +:10044000FFFFFFFFFFFFE000FFFFFFFCC000000019 +:10045000FCF0800000000000FFFFFFFFFFFFFFC077 +:10046000FFFFFEFCF8E0000080000000000000003C +:10047000FFFF7F0F00000000FFFFFFFFFF0F0100E5 +:10048000FFFFFFFFFFFFFCF0FEFFFCF8E080000035 +:10049000FFFFFCFCF8F0F8FC7F0700000000000004 +:1004A000FFFFFFFFFFFEF8E0C0800000000000003B +:1004B0000080E00000000000FFFFFFFF00000000E0 +:1004C0000000000000000000FFFFFFF8000103072C +:1004D000070707070E0F1C1860000000000000004F +:1004E000FFFFFFFFFFFEF8F0E1E77EF8F8F0F0E035 +:1004F000C0C0C00000000000FFFFFFF0C00000000F +:10050000FFFCF0C000000000FFFFFFFFFFFEF8E06F +:10051000C08000000000000000000000000000009B +:100520000000000000000000FFFFFFFFFF000000D0 +:100530000000000000000000FFFFFFE000000000DE +:10054000FFFFFCF0C0000000FFFFFFFFFFFEF8E030 +:10055000C080000000000000FFFFFCF0E00101018E +:100560000F070307070F0E7EF867FEF8E0E0C08074 +:10057000E0F0C00000000000FFFFFFFFFFFFFCF005 +:100580008000000000000000FFFFFCF0C000000041 +:10059000FFFE80000000000080000000000000005E +:1005A0000000000000000000FFFFFFFFFFFFFF0052 +:1005B00007000000000000009F0F03010000000082 +:1005C00000808080808080C0C0C0C0406060E0E06B +:1005D0000000000000010101E0E0F0F0F8FCFFFF86 +:1005E00000000000000000C080406060303030300B +:1005F0007F3F3F1F01000000C0E0F8C08000000006 +:10060000000000000001020C0000010103030F1FA5 +:10061000F0F0F0F0E0E0E0C00000000000000101B8 +:100620001818397FFFFFFFE03FFFFFFEFCF080005E +:10063000C080000000000000030200000000000075 +:1006400000000000000000000000000000000000AA +:1006500008081010302060600000010303070F1F1E +:10066000C0C0C0C0E0E0E0E00000000103030303FD +:100670003F7FFFFFFFFEFEFE800000000000000045 +:10068000070D192000000000FCFCF8F8F0E0C08025 +:1006900080808080808080C0C0C0C0406060E0E01A +:1006A0000000000001030303FCFEFFFFFFFFFFFF4C +:1006B0000000008080C0E0F8FF7F3F0300000000E2 +:1006C000FCFEFFFF3F0301000000000000000000EF +:1006D000000000000000000000000000000000001A +:1006E00000000000000000000103030301000000FF +:1006F000C060301F1C38FEF8F8F0F0F0F87C3E07C0 +:10070000000C70C08080C0E0000000000001030702 +:100710000000000000000000000000000080C0E0B9 +:10072000F8F0E0E0C0E0F0F0F8F0706030000C06A7 +:100730000303010100000000080810103020606071 +:10074000C0C0C0C0E0E0E0E0000000010103070F0E +:100750003F7FFFFFFFFEFEFE800000000000000064 +:1007600000000000000101001F3F7FFFFFFFFFFFAF +:10077000FCFCFCFCF8F8F8F0FF7F7F7F3F1F1F1F99 +:10078000F0E0E0E0E0C0C0C00000000000000000B9 +:10079000000000000000000018189CFFFFFFFF078A +:1007A000000000C0F8FFFFFF0000000000C0FE8056 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D00000000000009FFFFF00000000000080F804 +:1007E000000000000001010300040830E0C0808028 +:1007F0000F0F0F0F0F0F0F0380000000009FFFFF70 +:1008000000000000000000000000000000000000E8 +:100810000000000000000000FFFFFFFFFFFFFFFFE0 +:10082000FF63030101000000FFFFFFFFFFFF7F07E1 +:10083000F8FFFFFFFFFFFFFF01E1FFFEFCFCF8F800 +:10084000C0400000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:10086000FF03000000000000F8FC3E1E0F07070316 +:1008700000000000000000C00000000000000000B8 +:1008800000000000000080F80000000000000000F0 +:100890000000000000000003FF6303010100FEFFF1 +:1008A000FFFFFFFFFFFF7F070080E0F0FCFEFFFF80 +:1008B00000000000000000800000000000000000B8 +:1008C0000000000000000000F8E000000000000050 +:1008D000000007FFFFFFFFFF0001FFFFFFFFFFFF1B +:1008E00003FFFFFFFFFFFFFF7F7F7F7F7F7F3F3F94 +:1008F000F0FEFFFFFFFFFFFF000387FFFFFFFFFF8B +:1009000000000000000000000002060C080010308B +:10091000E0F038F8FCFCFCFF000000000000F0F8FC +:10092000000080F0FFFFFFFF00000000F8FFFFFF66 +:10093000000000000000C0FE0000000000000000F9 +:10094000000000000000000000000000000000C0E7 +:1009500000000000000000007F3F3F1F010103076F +:10096000000000000808181070E0E0F0F8F8F87CCB +:100970000000000000000818C0E0E0C0C0C0C08057 +:10098000000000000004040808101010180C0607EE +:1009900000386103061C007F01030F1F1F3F3F7FCC +:1009A00000021232007302067FFFFF7F3F3F1F0FDE +:1009B000C0E0F0F8F8FEFFFF0000000000000000BB +:1009C0000000000000000000000000000000000324 +:1009D0000001073F3F7EFCF8F8FFFFFF1F3F7FFF4E +:1009E0000000E0FFFFFFFFFF0000001FFFFFFFFF11 +:1009F000000000FFFFFFFFFF0000FFFFFFFFFFFF02 +:100A000000000000000000000010302101392163C7 +:100A1000003821033821037E001833202000031EF4 +:100A2000003020212123067C003E20003C20007F56 +:100A3000003F20003E202060001F30202101011FC8 +:100A40000021210139212163004E08080808007E99 +:100A5000000101010101033E0023260C2020206338 +:100A6000002020202020007F00010101292921638E +:100A70000001010121212163003821212121033EB0 +:100A800000382121033E2060003821212123043D2C +:100A90000038212107202067003026003801033E5E +:100AA000004E080808080818002121212121033ED2 +:100AB0000021210103060C080021210101113163ED +:100AC0000001030600103063002222060C080818FB +:100AD000007103060C18007F0000000000000000F9 +:100AE0000000000000000000000000000000000006 +:100AF000010103070F0F0703000000307CFCF8F82A +:100B0000030303030101010700808080C0E0F1F1CD +:100B1000FF3F7F7FFFFFFFFFF8F0F3FFFFFFFFFFC7 +:100B20007FFFFFFFFFFFFFFFF9FBFFFFFFFFFFFF5F +:100B3000FFFFFFFFFFFEFCF8FCF0E080000000007C +:100B4000E0C08080800C1C38FFFFFFFFFFFFFFFF2D +:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:100B7000FFFFFFFEFEFEFEFC000000000000000084 +:100B8000FCFCFCFCFEFEFEFC00000000000000007F +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFEFCFCFC6F +:100BA0000301000000000000FFFFFF7F7F3F1F07E1 +:100BB0000080C0FCFFFFFFFF03010000C0FCFEFF40 +:100BC000FFFFFFFFFFFEFEFCFFFBF7CF1F3F7F7F16 +:100BD000F0F0F0F0F0F0F0F87FFFFFFFFF600000B2 +:100BE000FFFFFFFFFFFF7F0FF8FCFEFFFFFFFFFF90 +:100BF00000000000F0FCFFFF00030F1F3F7FFFFF1E +:100C0000C0FEFFFFFFFFFFFF0007FFFFFFFFFFFF2B +:100C1000FFFFFFFFFFFFFFFF080818183C3C1C1EEA +:100C20001E0E06020200000000000000F0FEFC782C +:100C30000000000001033F3FC0E0E0C0C0C0C08032 +:100C40000003070F1F3F7FFFFFE7E7FFFFFFFFFFE7 +:100C5000F8F8FCFEFFFFFFFF7830000103038787F1 +:100C60007F7FFFFFFFFFFFFFF0FFFFFFFFFFFFFFA3 +:100C70008FFFFFFFFFFFFFFF0103030303030307D2 +:100C80008787878787878787FF9F9FFFFFFFFFFFF4 +:100C9000FF9F9FFFFFFFFFFF07070F1F1F3F3F3F04 +:100CA000FFFFFFFFFFFFFFFFFEFCFCFCFCFCFCFE68 +:100CB000FFFFFF000000FFFF878787000000878796 +:100CC000FEFCFC0C0C0CFEFE00000100000000000D +:100CD000FE9F9FFFFFFFFFFB7F7F7F7F7F7F7F7FE9 +:100CE000F8FCFEFFFFFFFCF87F67677F7F7FFF0058 +:100CF000FFE7E7FFFFFFFF00FFE7E7FFFFFCF00074 +:100D00008787878703000000FF9F9FFFFFFF3F004B +:100D1000FF9F9FFFFFFFFF00F09080E0C08000007A +:100D200080C0E0F0FFFFFEFC03030100C080000074 +:100D3000E0F0FC00000000000000000000000000E7 +:100D400000000000000000007F7FFF0000007F7FA8 +:100D50000000601F01030100000000FFFFFFFF7F94 +:100D60001F03010001030100FFFFFFFFFFFFFFFF63 +:100D70001F033108051301040000000000000000FB +:100D8000FFFFFFFFFFFFF8E0FFFFFFFFFFFF030391 +:100D9000E0F0F8FEFFFFFFFF01000000E0FCFCFFB9 +:100DA000FF7F3F1F07010130FFFFFFFFFFFFFFFF36 +:100DB000FFFFFFFFFFFFFFFF000000010303000034 +:100DC000FFFFFFF8C0000000FFFFFF1F0703030144 +:100DD00000000000000060F80000000000000003B8 +:100DE0000103070F1F3EF880FFFFFFBF1F07010031 +:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:100E0000F8FCFEFFFFFFFFFF00000080F0FFFFFF88 +:100E1000000000017FFFFFFF7F7F7FFFFFFFFFFFDD +:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:100E3000FFFFFFFFFFFFFFFF0000000000000000BA +:100E400000000000010110F00000000000000000A0 +:100E5000FEFEFE00F0F0C0E0FDFFFF07EFEFEF0049 +:100E6000F8FCFCF8F0F8FDFCFDFDFDFDFD7D3D3DD1 +:100E70007D7DFDFDFDFDFDFD000000003D332700F3 +:100E800000000000FFFFFFFF00000000FDF3E7800F +:100E900000061E00F7F7F7003E3E3E0037373700EA +:100EA000FEFEFE00F7F7F700FDFDFDFDFDFDFDFD7B +:100EB000FFF0C0F0DCC7C0C0FDFD3D0C0080FFFFAF +:100EC0000F010001077DC1C1FFFF7FFFFFFFFFFF93 +:100ED000808080C0E0F0FCFFFFFFFFFFFFFFFF000E +:100EE000C0C0C0C0C0C0C000CFC3C08000000000F0 +:100EF000FFFFFF1F0701030F0000000000000000BC +:100F00000000E0FFFFFFFFFF000000FFFFFFFFFF0B +:100F100003010000C0F8FEFFFFFF7F1F07010080F4 +:100F2000FFFFFFFFFFFF7F1FC0F0FCFFFFFFFFFF82 +:100F300007010000C0F0FCFF0700180601C0C080D8 +:100F4000FF000000E01F3F3F80808080C0E0F8FF8E +:100F50003F3F3F3F3F3F3FBFFFFFFFFFFFFFFFFF21 +:100F6000FF00000000000000FF0000000000000083 +:100F70000000000000000000FF7F1F0F03000000C2 +:100F800000FFFFFFFFFF7F3F00FFFFFFFFFFFFFFAF +:100F900000FEFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:100FA0000F07010000000000FFFFFF7F3F1F070346 +:100FB00000000000000000000080C0E0F0F8FCFE2F +:100FC000FFFFFFFFFFFFFFFFF0FEFFFFFFFF7F3F81 +:100FD0003F3F3F3F3F3F3F3F000000000000000019 +:100FE000FFFFFFFFFFFF3F1FFFFEFCF8F0E0C080A8 +:100FF00000000000000000000000000000000000F1 +:10100000FF80808080808080FF010101010101015B +:1010100080808080808080FF01010101010101FF4B +:10102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF867 +:1010A000FFFFFFFFFFFFF103FFFFFFFFFFFFFFFF5A +:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1010D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1010F000FFFFFFFFFFFFFFFEFFFFFFF8FCE08000A8 +:10110000FFFFFFFF07000000FFFFFFFFFF1F0000C2 +:10111000FFFFFFFFFFFFFF03FFFFFFFFFFFFFFFFDB +:10112000FFFFFFFFFFFFFFFFF8E106F8803060C020 +:1011300000000000000000000F00000000000000A0 +:10114000FFFF000000000000FFFFFFFFFEFCF1C7F3 +:10115000FFF3C78F1F3FFFFF7F1F0F070300000034 +:10116000FFFFFFFFFF01003FFFFFFFFFFFFF3FFF0C +:10117000FFFFFCF8F0C080008F1F3F7F7FFF6F1FD5 +:10118000FFFF3939FFFFFFFF1F07010000000000CC +:10119000FFFFFFFF7F3F1F0FFCF800000000000370 +:1011A000000000000038FFFF3F07000000008FFF35 +:1011B000FFFF1F0003FFFFFFFFFFFF3FFFFFFFFFDA +:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1011D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1011E000FFFFFFFFFFFFFFFEFFFFFFF8C0FFFF0055 +:1011F000C08000003CFF000000000000000700006D +:101200000000000003C07C0F0000000000FC000094 +:10121000FF3F0F0100000000FFFFFFFF0000000084 +:10122000FFFFFFFFFF000000FFFFFFFFFFFF013F89 +:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10125000FFFFFFFFFEFCF0F0F0E080000000000068 +:101260000700000000000000FFFF3F070000000033 +:10127000FFFFFFFFFF3F0F03000000000000000022 +:1012800000000000000000000000000000E0FF3F40 +:10129000000000000000FFFF0000000000E0F0F090 +:1012A0002060001F2000000000000000000000007F +:1012B0000000000000000018000000000000000016 +:1012C00000000000000000001F03030100000000F8 +:1012D0008FC3F3870F1F0307F8F0E0C08000C0E062 +:1012E00000000000000000001E14000103000000C8 +:1012F000C000000000000000000101030101030321 +:1013000000808080C0C0C08000000000000000009D +:1013100000000000000000000000000001070E3C7B +:10132000070F4F9FBF0F02028000800000000000E7 +:1013300000000000000000000000000000000000AD +:101340000003000000000000E800000000000000B2 +:101350000000000000000000FE7F0F0300000000FE +:10136000000080C0E010000000000000000000004D +:10137000000000000000000000000000000000006D +:101380000000000000000000000000010F1F3CF002 +:10139000001870E0C0000000000000000000000025 +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C0000000000000000000000000010700000015 +:1013D000031F70E0E000000080000000000000003B +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:101410000000000007070F0F000010E1DFFFFFFFD3 +:10142000000000C38CF1FFFF000001011FFFFFFF60 +:10143000073EC0B8FCFFFFFFC0000000C0800020D6 +:1014400000000000000007380000001E70C000000F +:101450000000000000000000070F03000000000073 +:10146000FFFF070000000000FFFFFF3F0F03000029 +:10147000FFFFFFFFFFFF7FFFFFFFFEFFFFFFFFFFFD +:10148000C00030E0C1C3CFFF0000000030C71FFF25 +:10149000000000008000861C00000000000830E012 +:1014A00000000000010103010C3F7FFFFFFFFFFF71 +:1014B00070F8FEFFFFFFFFFF000000C0E0F0F0F853 +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F0000106000000000000C3071F0707030000EB +:10150000FFFFFFFFFFFEF000FFFCFCF8E000000023 +:10151000F8C0000000000000000000000000000013 +:10152000FFFFFFFFFFFFFFE0FFFFFEF8F1F8FE0007 +:10153000F8F8FCE4CCFC7E00000000000000000095 +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000001020C0000000000E07806000000DE +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E000FFFFFF0000000000FFFFFFFF0F000000F3 +:1015F000FFFFFFFFFCF00000FFFFFFFF0000000007 +:10160000FFFFC0FCFF00000000F80000E03C00000D +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:1016700080C0E0F0FCFFFFFF0000000000C0E3FFBF +:10168000FFFEF0E18FFFFF00EF3F7FFFFFFEE00076 +:101690008080FFFFFFFFFFFE00FFFFFFFFFE8001D6 +:1016A000FEFCF0E0800000000103070707070F0FB2 +:1016B00000000000000000000F0F0100000000000B +:1016C0003F7FFFFFFF0F01FE00000000000006FC4F +:1016D000FFFFFFFCE0000000F081070F0F1F1F3D20 +:1016E00000FFFFFFFF7FFFFF393141E0F0F0F8F826 +:1016F000FFFFFFFFFFFFFFFFFDFDFEFEFEFCF08092 +:10170000FCE0C000010307001C3C7EFFFFFEC000A0 +:101710000000000001030F3F07031C3EFFFFFFDF37 +:10172000FFFFFFFFFFFFFDF9DFEEECE0A0E0E0E0F0 +:10173000FFFFFF7800000000E0E0C00000000000B4 +:101740000000000000000000000000000000000099 +:101750000000008080000000000000000000000089 +:1017600000000000010101030000000103070F1F3A +:101770000F1FFFFFFEFEFCFC1F3F7FFFFFF9FFFF77 +:10178000F8F0E0C0C0808000E0C000006070888C8D +:10179000000000000000000007030100000000003E +:1017A0000080C0C0E0200000000000000000406099 +:1017B00000000000000103077F7F3F3F3F1F0F0332 +:1017C0000F8FEFF7F7F7FBFB010101030303073F5F +:1017D000FBFFFFFFFFFFFFFF1F0100000000FFFFF7 +:1017E000FFFF3F070100FFFFFFFFFFFFFF7F1FF726 +:1017F00000000000000000000000000000000000E9 +:10180000FF80808080808081FF01010101010181D2 +:1018100081808080808080FF81010101010101FFC2 +:10182000030F3F7FFFFFFFFFFFFFF987FFC7C0C028 +:10183000FFFFFFFFFFFC003FF8FFFFFF3F7FFEFCC5 +:1018400000F8F8FCFFFF0F3F07031C3EFFFFFFDF20 +:101850000000000000000000000000000000000088 +:101860001F1F3F3F3C784000FFFFE080000000006A +:10187000F0000000010101031F3F7FFFFFF9FFFFA0 +:1018800000000000000000000001010303070F0F2B +:10189000F1FFFFFFFFFFFFFFF8F0F0F0F0F8FCFFB3 +:1018A0000000000103070F1F0F1FFFFFFEFEFCFCDF +:1018B0000003070F0F1E3C78FCF8F080000000E0EA +:1018C00001020E0C1C1C3878000000010103070EF9 +:1018D00060E0C0C0E0E0E0000000000103071F3F3F +:1018E0001F3EF8F0E0800000000000000000000053 +:1018F0000000000000203070000000000101030320 +:101900007FFFFFFFFFF8E0C0FFFFFFFF9B09000024 +:1019100001070F1F3F3F3F7F0000E0F9F9FFFFFF86 +:101920000000000000000000000000000103070F9D +:1019300000000000000000000000000000000000A7 +:10194000000000000000FFFFFFFFFFFFFFFFFFF0B0 +:1019500000000000000000F0FFFFFFFFFDFFE30FAD +:101960000000000000000100000000000000000076 +:101970001F1F3F7F7F78E000000000000000000094 +:101980000000000000000000C0FEF8F0C1C70F7F9B +:1019900000000000000000007E78077FFFFFFFFFCF +:1019A0000F8FCFFFFF7F3F1F00000FFFFFFFFFFFE5 +:1019B000FFFFFFFFFFFFFF0301F0F0E1C3C7CFCF41 +:1019C00000000000000018E00001FFFFEFEFEFEF64 +:1019D00000000000003E7FFFFFFFE0FFFFFFFFFF72 +:1019E000F7FEFCF0C080F0FFFFFFFFFFFFFFFFFFEF +:1019F000FF7F1F00000000FFFFFFFFFFFFFFFCF065 +:101A0000000000000000C0FFFFFF3FFFFFFFFCFFE2 +:101A100000000000000000F8FFFCF0F0DF3FFFFFD7 +:101A2000FFFFFFFF1F1D7FFFFFFEFCF8E0800000AF +:101A3000FFFFFFFCFCF0F0E0800000000000000071 +:101A4000000000000000000FC0000000FFFFFFFCCE +:101A5000000000000000C0FF000000000080000344 +:101A600010E7080000000000000000000000000077 +:101A70003FDF0F0F0703000100000000000000001F +:101A8000000000000000FFFE00000000001F7FFFBC +:101A900000000000001FFC000000000003FFFFFF2B +:101AA000FFFFFFFFFFFFFCC0000000010618000061 +:101AB000FFFFFCE000000000000000C1030C00007C +:101AC000000000033CC00000000307FFFFFFFFFF12 +:101AD000000000F0000000000000FFFFFFFFFFFF1C +:101AE000FF3F00000000000000070F1F7FFFFFFF07 +:101AF000FC800000000F3F7FFFFFFFFFFFFFFFFFA5 +:101B0000000000FF010000000FFFFFFFFFFFFFFFCD +:101B10000000FFFFFF0F01FEFFFFFFFFFFFFFFFFC2 +:101B20000F0F1F3FFFFFFFFFFFFFFFFFFFFFFFFF45 +:101B3000FFFFFFFFFFFFFEFCFCF0E0E0C0808080C5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE000000000081C1C080000000010383820000D +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000F1F0707070F0F0F0F0F1F1F1F1F1F3F2C +:101C50003F3F3F7F7F7FFFFF00000000000000004C +:101C6000FEFFFFFFFFFFFEFEFEFEFCFCFCF8F8F8A7 +:101C7000F0FFFFFFFFFFFFFF00000000000000007B +:101C80000000000000000000010101030303030342 +:101C900017F7F7E7E7E7C781000000000000000042 +:101CA00000000000003F7FFFFFFFFFFEFEFEFEFC86 +:101CB000FCFCFFFFFFFFFFFF000000000000000032 +:101CC0000000000000FFFFFFFF3F3F3F7F7F7FFFDF +:101CD000FFFFFFFFFFFEF8E0000000000000000033 +:101CE0000000000000C0E3E7E7CFCFCFDFDF9F9F1A +:101CF000BFBF3F3F3F3F1F0F00000000000000003C +:101D00000100000001FFFFFFFFF9F9F9F1F3F3E330 +:101D1000E3E7FFFFFFEFC703000000000000000043 +:101D2000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFEFEC5 +:101D3000FEFEFCFCFCFCFEFF0000000000000000BA +:101D400080C0C0C0C0C1878F9F3F3F7F7F7F7F7FA4 +:101D5000FFFFFFFFFFFF7F1F0000000000000000EB +:101D60000000000000FFFFFFFFE7E7CFFFFFFFFFDE +:101D7000C080FFFFFFFFFFFE00000000000000002A +:101D80000000000000F0F8FCFCFCFCF8F8F0F0802B +:101D90000038F0F0E0E0C0000000000000000000AB +:101DA0000103000000010101030303030707070704 +:101DB000070F0F0F0F1F1F0F000000000000000093 +:101DC000FFFF7F7F7FFFFFFFFFFFFFFFFFFFFFFFA3 +:101DD000FEFEFEFEFEFCFEFF000000000000000014 +:101DE000FFFFFFFFFFFFCF878F9FBFFFFFFFFFFFBB +:101DF000FFFF7F7F3F3F1F1F00000000000000002B +:101E0000C0F0FCFCFEFEFEFEFEFCFCF8F0C1018111 +:101E1000C1E1FBFBF3F3E3C10000000000000000A0 +:101E200000000000007FFF7F7FFFFFFFFFFFFFFF3D +:101E3000FFFFFFFFFFFFFFFC0000000000000000AD +:101E400000000000008FDFCFCFCF8F9F9F9F9F3F6D +:101E50003F3FFFFFFFFF7F3F00000000000000004A +:101E60000000000000F0F9FCFCFCF9F9F9F1F3F3D3 +:101E7000F3E3E7E7E7E7FBF1000000000000000004 +:101E80000000000000FFFFFFFFFFFFFFFFFFFFFF5D +:101E9000FEFEFEFCFCFCFEFF000000000000000057 +:101EA000000000000087DFBFFFFF9F1F1F3F3F3F75 +:101EB0003F7F7F7F7FFFFF7F00000000000000006A +:101EC0000000000000F3FFFBFBF3F7F7F7E7EFEF8D +:101ED000EFCFDFDFDF9F8FE7000000000000000092 +:101EE0000000000000FEFFFEFFFFFEFCFCFCFCFC0F +:101EF000F8F9F9F1F1F3FBFD00000000000000002B +:101F000000000000001F7FFFFFFF7F7F7FFFFFFFBC +:101F1000FFFFFFFFFFFEFEFF0000000000000000CB +:101F20000000000000C0E1E3E7CFCFDFDF9F9F9F0D +:101F3000BF3F3F3F3F3F1F87000000000000000001 +:101F400000000000003FFFFFFFF9F9F3FFFFFFFF74 +:101F5000F0E0FFFFFFFFFFFF0000000000000000B7 +:101F60000000000000FCFEFFFFFFFFFEFEFCFCE0A7 +:101F7000000EFCFCF8F8F101000000000000000079 +:101F800000000000003F7F1F1F1F3F3F3F7F7F7FFC +:101F90007F7FFFFFFFFFFFFF000000000000000049 +:101FA0000000000000E1F7F7FFFFFFF8F0E0E0E0DD +:101FB000C0C0C0C08080E0C0000000000000000081 +:101FC0000000000000F0F0E0E0E0C00000000000D1 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2j.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2j.hex new file mode 100644 index 00000000..a06e2825 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2j.hex @@ -0,0 +1,513 @@ +:100000000000000000000000FF7F3F1F0F070301FA +:100010000080C0E0F0F8FCFEFFFFFFFFFFFFFFFFE6 +:10002000FFFFFFFFFFFFFFFF0000000000000000D8 +:1000300000000000000000000000000000000000C0 +:100040000000000000000000FFFFFFFFFFFFFFFFB8 +:100050000000000000000000FFFFFFFFFFFFFFFFA8 +:100060000000000000000000FFFFFFFFFFFFFFFF98 +:100070000000000000000000FFFFFFFFFFFFFFFF88 +:1000800080FF808080FF8080BFFF809F8FFF808106 +:1000900080FF80A0B0FF80BEBFFF80BFBFFF80BFDA +:1000A00002FE020202FE0202FEFE02FEFEFE02FE50 +:1000B0000000000000000000000000000000000040 +:1000C00000FF000000000000FFFF001F0F070301FA +:1000D00000FF00E0F0F8FCFEFFFF00FFFFFFFFFF66 +:1000E0000000000000000F3F000000000000F0FCD6 +:1000F0001F3F3F223F3F241FF8FCFC44FCFC24F838 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F0003F3FFF430000000080C0F0F0D0F06000FE +:10030000000000010101031FFF7F3F1F0F07031FB4 +:100310000080C0E1F1F9FFFFFFFFFFFFFFFFFFFFDC +:10032000000000008080C0F8FF7F3F1F8F87C3F967 +:100330000080C0E0F0F8FCFAFFFFFFFFFFFFFFFBCB +:100340003F7FFF0F1F1F3F7FFF7FFF1F1F1F3F7F4D +:100350003FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10036000F0E0C0F0F8FCFCFEF1E1C0FFFFFFFFFF92 +:10037000F0E0C0F0F8FCFCFEF1E1C0FFFFFFFFFF82 +:100380000000000103070707FF7F3F1F0F07070754 +:100390000080C0E1F3FFFFFFFFFFFFFFFFFFFFFF54 +:1003A00000000080C0C0F0C000000080C0C0F0C0ED +:1003B00000000080C0C0F0C0FFFFFF9FCFC7F7C79D +:1003C0000F0F0F0F0F0707030F0F0F0F0F07070375 +:1003D0000F0F0F0F0F070703FFFFFFFFEFE7E7E325 +:1003E000E0E0E0C0C0808000E0E0E0C0C0808000CD +:1003F000E0E0E0C0C0808000E0E0E0C0C0808000BD +:10040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10041000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10043000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10045000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10047000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10049000FFFFFFF3C70F070380F8FFFFFFFFFFFF1A +:1004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:1004B000FF7F1FFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:1004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF847 +:1004D000F8F8F8F8F1F0E3E79FFFFFFFFFFFFFFFF9 +:1004E000FFFFFFFFFFFFFFFFFED88107070F0F1F72 +:1004F0003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10050000FFFFFFFFFEF8FCFEFFFFFFFFFFFFFFFB0B +:10051000F1E3C3870703010300808080C0E0F0F1AE +:10052000F9FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:100530000000000000000000FFFFFFFFFFFFFFFFC3 +:10054000FFFFFFFFFEF8FCFEFFFFFFFFFFFFFFFDC9 +:10055000F8F1E1C303010003FFFFFFFFFFFEFEFE12 +:10056000F0F8FCF8F8F0F181879801071F1F3F7F32 +:100570001F0F3FFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10059000FFFFFFFFFFFFFFFF879801071F1F3F7F40 +:1005A0001F8F3FFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:1005B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:1005C000FF7F7F7F7F7F7F3F3F3F3FBF9F9F1F1FFB +:1005D000FFFFFFFFFFFEFEFE1F1F0F0F07030000C0 +:1005E000FFFFFFFFFFFFFF3F7FBF9F9FCFCFCFCF1B +:1005F00080C0C0E0FEFFFFFF3F1F073F7FFFFFFF00 +:10060000FFFFFFFFFFFEFDF3FFFFFEFEFCFCF0E03F +:100610000F0F0F0F1F1F1F3FFFFFFFFFFFFFFEFE0C +:10062000E7E7C68000000003C0000001030F7FFF62 +:100630003F7FFFFFFFFFFFFFFCFCF8FFFFFFFFFF17 +:100640000F3F1F1F0FCFE7F7FBFFFFFFFFFFFFFF6E +:10065000F7F7EFEFCFDF9F9FFFFFFEFCFCF8F0E026 +:100660003F3F3F3F1F1F1F1FFFFFFFFEFCFCFCFC27 +:10067000C0800000000101017FFFFFFFFFFFFFFFBF +:10068000F8F2E6DFFFFFFFFF030307070F1F3F7FBF +:100690007F7F7F7F7F7F7F3F3F3F3FBF9F9F1F1FAA +:1006A000FFFFFFFFFEFCFCFC030100000000000058 +:1006B000FFFFFF7F7F3F1F070080C0FCFFFFFFFFA2 +:1006C00003010000C0FCFEFFFF7F7F7F7F7F7F3F35 +:1006D0003F3F3FBF9F9F1F1FFFFFFFFFFFFEFEFF2C +:1006E0001F1F0F0F07030000FEFCFCFCFEFFFF3F77 +:1006F0003F9FCFE0E3C70107070F0F0F0783C1F844 +:10070000FFF38F3F7F7F3F1F80C0C0E0FEFEFCF8FD +:100710001F1F3F3F3F3F3F7F7FFFFFFFFF7F3F1F89 +:10072000070F1F1F3F1F0F0F070F8F9FCFFFF3F9FB +:10073000FCFCFEFEFFFFFFFFF7F7EFEFCFDF9F9F11 +:100740003F3F3F3F1F1F1F1FFFFFFFFEFEFCF8F054 +:10075000C0800000000101017FFFFFFFFFFFFFFFDE +:10076000FFFFFFFFFFFEFEFFE0C080000000000073 +:10077000030303030707070F00808080C0E0E0E069 +:100780000F1F1F1F1F3F3F3FFFFFFFFBFBF3E383D5 +:100790000000000000000000E7E76300000000C068 +:1007A000FFFFFF3F07000000FFFFFFFFFF3F0100CB +:1007B000F0FFFFFFFFFFFFFF0080F0FFFFFFFFFFE5 +:1007C00000000000F8FFFFFF3F1F3F1F0FFFFFFF6C +:1007D000FFFFFFFFFF600000FFFFFFFFFFFF7F073E +:1007E000FFFFFFFFFFFEFEFCFFFBF7CF1F3F7F7FFA +:1007F000F0F0F0F0F0F0F0F87FFFFFFFFF60000096 +:1008000000000000000000000000000000000000E8 +:10081000FFFFFFFFFFFFFFFF0000000000000000E0 +:10082000000000000000FE7F00000000000000004B +:100830000700000000000000FE1E00000000000095 +:100840003F3F00000000000007070707070F7F7FFA +:10085000FFFF7F01FFFFFFFFFFFFFFF3E7F7FFFF52 +:100860000000FCFFFFFFFFFE000000E0F0F8F87C56 +:1008700000000000000000003F1F0F0707010000FC +:10088000FFFFFFFFFFFF7F07FFFDF3E7EFCFCF8FF6 +:10089000F8FCFEFFFFFFFFFF000000000080FEFFEE +:1008A00000000000000000000F0000000000000039 +:1008B000FF1F000103030707FFFFFFFFFFFFFFFF0D +:1008C000FEFCF0E0E0C0C080071FFFFFFFFFFFFF5E +:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1008E0003FFFFFFFFFFFFFFF0000000000000000D0 +:1008F000F0FEFFFFFFFFFFFF7F3F9FFFFFFFFFFFB8 +:1009000000000000000000000002060C080010308B +:10091000070301E1F0F8F8FF80000080C0E0F0F884 +:100920007F3F9FFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10093000FFFFFFFFFFFFFFFFFFFEF8F0E0C0010732 +:100940000707070F1F7FFFFFFEFCFCFCFEFFFF3FBA +:10095000070F0F0F0783C1F880C0C0E0FEFEFCF850 +:1009600000000000080818108F1F1F0F07070783DB +:1009700000000000000008183F1F1F3F3F3F3F7F5F +:10098000FFFFFFFFFFFBFBF7F7EFEFEFE7F3F1E010 +:1009900000386103061C007FFEFCF0E0E0C0C08070 +:1009A000000212320073020680000080C0C0E0F036 +:1009B0003F1F0F0707010000FFFFFFFFFFFFFFFFC3 +:1009C000FFFFFFFFFFFFFF60FFFFFFFFFEF00000E4 +:1009D000FFFEF8C00000000007000000000000005B +:1009E000FFFF1F0000000000FFFFFFE0000000000D +:1009F000FFFFFF0000000000FFFF000000000000FC +:100A000000000000000000000010302101392163C7 +:100A1000003821033821037E001833202000031EF4 +:100A2000003020212123067C003E20003C20007F56 +:100A3000003F20003E202060001F30202101011FC8 +:100A40000021210139212163004E08080808007E99 +:100A5000000101010101033E0023260C2020206338 +:100A6000002020202020007F00010101292921638E +:100A70000001010121212163003821212121033EB0 +:100A800000382121033E2060003821212123043D2C +:100A90000038212107202067003026003801033E5E +:100AA000004E080808080818002121212121033ED2 +:100AB0000021210103060C080021210101113163ED +:100AC0000001030600103063002222060C080818FB +:100AD000007103060C18007F0000000000000000F9 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000FFFFFFA8 +:100B5000000000000000FFFF00000000000000FF98 +:100B600000000000000000000000000000031FFF64 +:100B700000000000000000FC1F3F3F3F7F18030FF4 +:100B8000FCFCFCFCFEFEFEFC7FFF3F3F3F1F0F0016 +:100B9000FFFFFFFFFFFFFFFF00000000000000005D +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C0000C0FEFFFFFFFFFFFF3F1FFFFFFFFFFFFFD4 +:100C1000F0FEFFFFFFFFFFFFF7F7E7E7C3C3E3E1E6 +:100C2000E1F1F9FDFDFFFFFF1F7F1F01F0FD7BB725 +:100C3000FFFFFFFF3EFCD8DE3F1F1F3F3F3F3F7ED1 +:100C4000FCFBF7EFDFBF7FFFFFE7E7FFFFFFFFFFE3 +:100C5000F7F7FBFDFEFEFFFFB7CFFFFEFDFD7B7B41 +:100C6000BFBF7FFFFFFFFFFF0F80F0FEFFFFFFFF13 +:100C700070000000000080C0FDFBFBFBFBFBFBF7EE +:100C80007B7B7B7B7B7B7B7BFF9F9FFFFFFFFFFF54 +:100C9000E09098F8FCFCFCFEF7F7EFDFDFBFBFBF8A +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFBFBF3F176 +:100CB000FFFFFFFFFFFFFFFF7B7BFFFFFFFF7B7B54 +:100CC000F9FBF3F3F3F3F1F1FEFCFDFEFEFEFEFE95 +:100CD000F19090F0F0F0F0F87F7F7F7F7F7F7F7F53 +:100CE000F8FCFEFFFFFFFCF87F67677F7F7FFFFF59 +:100CF000FFE7E7FFFFFFFFFFFFE7E7FFFCF30FFF63 +:100D00007B7B7B7BFCFFFFFFFF9F9FFFFF3FFFFF86 +:100D1000FF9F9FFFFFFFFFFFF19080E0C183070768 +:100D2000FFFFFFFEFFFFFEFCC0800000C08040F020 +:100D30001F0F030000000000FCE080000000000026 +:100D400018060000000000007F7FFFFFFFFF7F7F8D +:100D50000F0F7F1F01030100FFFFFFFFFFFFFF7F5A +:100D60001F03010001030100FFFFFFFFFFFFFFFF63 +:100D70001F0331080513010400000080A04080001B +:100D8000FFFFFFFFFFFFF8E0FFFFFFFFFFFF030391 +:100D9000C08000000080E0FC0100000000000000B6 +:100DA000FF7F3F1F07010100C0C0FFFFFFFFFFFFE4 +:100DB0001FFFFFFFFFFFFFFFFFFFFFFEFCFCFCF834 +:100DC00000000000000F3FFF0000000000C0E0F046 +:100DD000F3E7CFCFCFC38000F3C387FFFEF8000057 +:100DE000F0E0C0000000000080C07E1F0100000095 +:100DF000000000C0FC7E070300000000000000802F +:100E000000000000000000000000000000000000E2 +:100E10000000000000000000016070381E0F030099 +:100E2000C0E070381C8EFFFF0501000000000000CC +:100E30008080000000000000FFFFFFFFFFFFFC01BB +:100E4000FEF8E0FCFEC20FEF000000000000000012 +:100E5000010101FD080000E0030307F9111010FF74 +:100E6000F8FCFFFFFFFF3203FDFDFDFDFD7D3D3D75 +:100E70007D3DDDEDEDF5F5F53F3F0001020C383F1E +:100E8000FFFF00000000FFFFFFFF0001020CF8FF62 +:100E9000FFF961FF080808FF0101013F0808083F4A +:100EA000010101FF080808FFFDFDFDFDFDFDFDFD41 +:100EB000FFFFFFCFE3F8FFFFFDFDFDFFFF7F000019 +:100EC0003F3FFFFEF8800000FFFFFF7F7F7F7F7FB7 +:100ED000FFFFFFFFFFFFFFFF00000000000000001A +:100EE00000000000000000000F03000000000000F0 +:100EF000FFFFFF1F0701030F0000000000000000BC +:100F00000000E0FFFFFFFFFF000000FFFFFFFFFF0B +:100F100003010000C0F8FEFFFFFF7F1F07010080F4 +:100F2000FFFFFFFFFFFF7F1FC0F0FCFFFFFFFFFF82 +:100F300007010000C0F0FCFF070307393EFFFFFF79 +:100F4000FFFFFFFF1FE0C0C0FFFFFFFFFFFFFFFF2E +:100F5000C0C0C0C0C0C0C0C0000000000000000091 +:100F6000FFFF000000000000FFFF03030303030373 +:100F70000303030303030303FFFFFFFFFFFFFFFF61 +:100F800000FFFFFFFFFFFFFF00FFFFFFFFFFFFFF6F +:100F900003FFFFFFFFFFFFFF0000FFFFFFFFFFFF5B +:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:100FB000FFFFFFFFFFFFFFFFFF7F3F1F0F07030143 +:100FC0000000000000000000FFFFFFFFFFFFFFFF29 +:100FD0003F3F3F3F3F3F3F3F000103070F1F3F7F22 +:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:100FF00000000000000000000000000000000000F1 +:10100000FF80808080808080FF010101010101015B +:1010100080808080808080FF01010101010101FF4B +:10102000FFFFFFFFFFFFFFFCFFFFFFFFF8E0810373 +:10103000FFFFCF1F7FFFFFFFFFFFFFFFFFFFFFFF50 +:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10105000FFFFFFFFFFFFFFF8FFFFFFFFFFE0800044 +:10106000FFFFFCE0C0000000F080000000073F0030 +:101070000F0F3F7FFFFFC300FFFFFFFFFFFFFFF8E2 +:10108000FFFFFFFFFFFFFC3FFFFFFFFFFFFFFF032F +:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:1010B000FFFC000000FFFFFFC00000000000F0FF89 +:1010C000000000000000030F000100000000FFFF0F +:1010D00000FF00003F0300FFFFFFFF07FFFF1FC3EC +:1010E000FFFFFFFFFFFFFFFF83F1FFFFFFFFFFFF9A +:1010F000FFFFFFFFFFFCF8C1FFFFFFE7031F7FFFBC +:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10111000FFFFFFFFFFFFFFFFFFFFFFFEF0E0E0F834 +:10112000FEE0800000000000071EF9077FCF9F3F10 +:10113000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10115000FFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFA0 +:10116000FFFFFFFFFF0180C0FFFFFFFFFFFF3F7F8B +:10117000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10118000FFFFFFDE9CFFFFFFE0F8FEFFFFFFFFFF1A +:101190007F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFF5F +:1011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:1011B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1011D000FFFFFFFFFFF8C000FFFFFFE080000000FF +:1011E000FCE0C00000000001000000073F0000FF1D +:1011F0003F7FFFFFC300FFFFFFFFFFFFFFF8FFFF81 +:10120000FFFFFFFFFC3F83F0FFFFFFFFFF03FFFF38 +:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFCF0803F +:10125000FFFFF8E081030F0FCF1F7FFFFFFFFFFFAE +:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10127000FFFFFFFFFFFFFFFF000000000000000076 +:10128000000000000000000000000000000000005E +:101290000000000000000000000103070F17070F07 +:1012A000DC99FFE0C7E0C08078F8F00000000000A3 +:1012B00000000107070F3F663F7FFFFCE1871E3CF0 +:1012C000F8F0F0E0C0800000000000000000000026 +:1012D000703C0C7880000000060E1E3474E828185C +:1012E0000000061820C0C080000101020403071E90 +:1012F00030F0E0C0C080800701060E0C1E7EFCFCB2 +:101300008000000000000000000001030E1060805B +:101310001C70E0071F7FFFFF0F1FFFFFFEF8F1C3E8 +:10132000F8F0B06040F0FCFC00000000000000009D +:10133000030C100000000000030F1F7C00000000E1 +:10134000FFDC3F7F4F03000017FCF8F0F8F07E1E33 +:101350000300000000000000010000000000000089 +:10136000FFFF7F3F1F0F0700FFFFFFFFFFFFFFF89B +:10137000FFFFFFFFFCF00000FFFFC73FFF3F07013B +:10138000FFFFFFFFFFFFF880FFFFFFFEF0E0C30F4E +:10139000FFE78F1F3FFEFEFEF8F0C0800000000058 +:1013A000000000000000000300000000030CF0C07B +:1013B000000F30C00000000000000000000000002E +:1013C0000000000000000000000000000007010015 +:1013D00000000F1F1FFF871F7FFFFFFFFFFFFFFFA3 +:1013E000FCF8F8F0E0C1C73F0000071F7FFFFFFFD8 +:1013F0001FFFFEFFFEFFFEFFFF1F000000000000BA +:10140000FFFFFFEF4F070000FFFFFFFFFFFF7F3FE2 +:10141000FFFEFCFCF8F8F0F0000000000000000007 +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:101450000F03010000000000F8F0FC3F0300000350 +:10146000000000F8FC7EFFFF00000000000000808C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A00000000000000001000C3E7677F3E3F8FE38 +:1014B00070F87E1F8FE0F93C000000C0E0F0F0B84B +:1014C0000000000000007F80000000030001F00029 +:1014D00000007F8C70800000001FFF1CE0000000F7 +:1014E0003FFEC00000000000F0000000000000000F +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:101520003F9FB7C3C6E0FEE0CFF3FEF8F1F83E0000 +:1015300008C0FCE4CCF47E000000077E0F00010729 +:101540000E70800000F0FFFF00000000000000F0BF +:10155000000000000000031F00000000013FFFFF2B +:10156000071F3FFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:1015700080F8FFFFFFFFFFFF000000E0F8FEF8E04B +:101580000003070300000000FFFFFFFFFF1F07012C +:10159000FFFFFEFDF3FFFFFFFFFF1F87F9FFFFFFC8 +:1015A000FFFFFFF0E0FFFFFFFFFE000000E0F0F8AC +:1015B000F800000000000000FF7F1F0F0700000080 +:1015C000FFFFFFFFFFFF3F0FFCFFFFFFFFFFFFFFDE +:1015D0000000E0F8FFFFFFFF0000000000C0F0FF88 +:1015E0000000007F3F0F070300000000F0FFFFFF37 +:1015F00000000000030FFFFF00000000FFFFFFFFDF +:1016000000003F0300FFFFFFFF07FFFF1FC3FFFFB7 +:10161000FFFFFFFFFFFEE000FFFFFEF08000000085 +:10162000FCC0000000000000FF7F3F1F070100001A +:10163000FFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFF7A +:10164000FFFFFFFFFFFFFFFF1F0F0F07010000005D +:10165000FFFFFFFFFFFF7F00FFFFFFFFFFFFFCF02B +:10166000FFFFFFFFF8800000FEF8E0000000000030 +:10167000000000000000001F00000000000003FF49 +:101680000001FFFFFFFFFF1F0FFFFFFFFFFFFFFF37 +:1016900000007FFFFFFFFFFFFFFFFFFFFFFFFFFED9 +:1016A000E1030F1F7FFFFFFFFEFCF8F8F0F0F0F002 +:1016B000FFFFFFFFFFFFFFFFF0F0FEFFFFFFFFFF59 +:1016C0000000FFFFFF0FF10000000000000007FF17 +:1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1C +:1016E000FFFFFFFFFFFF7F7FB93141E0F0F0F8F827 +:1016F0005F1F0F0F07010000FCFCFDF9F183037170 +:10170000031F3FFFFFFFFFFFFCFCFEFFFFFFFFFF8C +:10171000000000000103FFFF07031D3EFFFFFFFF66 +:10172000FFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFF09 +:10173000FFFFFFFFFFFFFFFFFDF1F8FCFEFFFEC014 +:10174000FFFFFFFFFFFFFFFF00FCFFFFFFFFFFFFAB +:10175000FF3F0F8080E0F8FFFFFFFF3F7F0F030F89 +:1017600000000000010101030000000103070F1F3A +:101770000F1FFFFFFFFFFFFF1F3F7FFFFFFFFFFF69 +:10178000FFFFFFFFFFFFFFFFFFFFFFFF1F0FC7C3AD +:10179000FFFFFFFFFFFFFFFFC0C0C0C0E0E0E1E7C9 +:1017A000FF7F3F3F1F1FCFEFFFFFFFFFFFFF3F1DEB +:1017B000FFFFFFFFFFF1F3C7000000C0C0E0F0FC37 +:1017C0000F0F0F0707070303FEFEFEFCFCFCF8C02B +:1017D0000301000000000000000000000000FFFF07 +:1017E000000000000000FFFF00000000000000F00B +:1017F00000000000000000000000000000000000E9 +:10180000FF80808080808081FF01010101010181D2 +:1018100081808080808080FF81010101010101FFC2 +:10182000030F070000000000FFFFF9070707000093 +:10183000FFFFFFFFFFFC003F80F8E0C0000007FF54 +:10184000070707030103FFFFFFFBFDFEFFFFFFFF8D +:1018500000000000010103037FFFFFFFFFFFFFFF08 +:10186000E0E0C0C0C0808000000000000000000177 +:10187000000001070F7F7FFF1F7FFFFFFFFFFFFFBC +:101880000003070F1F3F3F3FFFFEFEFCFCF8F0F098 +:101890000E0000000000000000000000010703002F +:1018A0001F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:1018B0000003070F0F1F3F7FFBF7EFFFFFFFFF1F27 +:1018C000FEFCF0F0E0E0C08000000000000000003E +:1018D0001F1F3F3F1F1F0F0F0000000103071F3C8A +:1018E0001F3FFFFFFFFFFFFFF0F0E0E0C0808080C0 +:1018F0001F1F1F3F7F1F0F0F000000000101030388 +:101900007FFEFCF8F0E7DC380000000004860F0FD3 +:1019100001070F1F3F3F3B7FFC80E0F8F8E0E080CD +:1019200001070F1F3F3F3F7F000000000000000045 +:1019300000000000000000000000000000000000A7 +:10194000000000000000FFFFFFFFFFFFFFFFFFFFA1 +:1019500000000000000000F0FFFFFFFFFDFFE3EFCD +:10196000FFFFFFFFFEFEFFFFFFFFFFFCF000000098 +:10197000DFDFBF7F7F79E7FFFFFF1F070301010064 +:101980000000000000000000C0FFFFFFFFFFFEF8A6 +:1019900000000000000000007FFFFFFFF08000005B +:1019A0000080C0F0FEFFFFFFFFFFF000000000001E +:1019B000000000000080E3FFF900000000000000CC +:1019C00000000000000018F8FCFDFFE0000000002F +:1019D00000000000003E7FFFFCF0E00000071F3F1A +:1019E0000001010F3F7FFFFFBF0700000000000064 +:1019F000FFFFFFFFFFFFFFFFFFFC0C000000030FD6 +:101A0000000000000000C0FF1F030000FFFFFFFFF9 +:101A100000000000000000F8FFFFCF00FFFFFFFF05 +:101A2000FFFFFFFFFFFEF8E0000103071F7FFFFF3E +:101A3000FFFFFFF8C00000017BFFFFFFFFFFFFFF7C +:101A4000000000000000000FFFFFFF00FFFFFFFF8E +:101A5000000000000000C0FFFFFFFF3F00E0E0E3E8 +:101A6000FFFF1F3F7F7FFFFFFFFFFFFFFFFFFFFF26 +:101A7000FFDFCFCFE7F3F0E0CFFFFFFFFFFFFFFF78 +:101A8000000000000000FFFFFFFEFFFF001F7FFFC0 +:101A900000000000001FFFFFFF01C0E000FFFFFF8C +:101AA000FFFFFFFFFF00033FFFFFFFFEF9E7FFFF20 +:101AB000FFFFFCE00000FEFFFFFFFF3EFCF3FFFF27 +:101AC000000000033FFFFFFFFFFCF80000FEFFFFE8 +:101AD000000000F0FFFFFFFFFFFF0000000080FF9D +:101AE000FF3F03030100000387C0C00000000000A7 +:101AF000FFFFFFFFFFF0C0800000000000000000BB +:101B0000000000FFF9FEFFFFF0000000000000F3FE +:101B10000000FFFFFF0FF1000000000F3F7FFFFFFD +:101B2000FFFFFFF0000000000000000000000000C8 +:101B3000FFFC000000000103030F1F1F3F7F7F7F9A +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE000000041EBFFFF4836000082D7FFFF26DAF6 +:101BF0005A1A222E16161F19DAECB4B4B4C8F89883 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000010101010303030707000000000069 +:101C60000000007FFF3F3F3F7F7F7F7F7FFFFFFFC1 +:101C7000FFFFFFFFFFFFFFFFFFFFFF00000000006F +:101C8000000000F0F8F8F8F8F8F0F0F0F0E0E0E02C +:101C9000C0C0C080FFFFFFFFFFFEFC00000000008F +:101CA00000000000000000000103070F0F0F1F1FBE +:101CB0001F1F1FBFBFBF3F3F3F3F0F00000000007F +:101CC0000000000000000000FFFFFFFFF9F9F1F342 +:101CD000F3F3E7E7E7FFFFFFFFFFFF00000000006F +:101CE0000000000000000000FEFFFFFFFEFEFEFE01 +:101CF000FEFCFCFDFDF9F9F9F1C000000000000058 +:101D00000000000000000000071F3F3F7F7F7FFFB3 +:101D1000FFFFFFFFFFFFFFFFFFFE78000000000056 +:101D20000000000F0303070FFFFFFFFFCFCFCF8F90 +:101D30009F9F1F1F3FFFFFFF7F3F1F00000000000E +:101D4000000000FCFEFEFEFEFEFCFCFCF9F9FBFBC5 +:101D5000FBF3F3F7F7E7E7E7E7F3F800000000002D +:101D600000000000000000000F3F7FFFFFFFFEFFAC +:101D7000FFFFFFFEFCFFFFFFFFFFFF000000000072 +:101D80000000000000000000FFFFFFFF3F3F7FFF5B +:101D9000FFFFFC0001FFFFFFFFFEF000000000005E +:101DA000000000000000000080C0E0E0E0E0C0C0F3 +:101DB00080800000C0808000000000000000000063 +:101DC0000000000F1F0303030F0F0F1F1F1F1F3FF4 +:101DD0003F3F3F3F7F7F7F7FFFFF7F00000000008E +:101DE000000000FFFFFFFFFFFFFEFCFCFCFDFFFF0C +:101DF000FFFFFFF7F7F3F3F1E1F0F8000000000058 +:101E0000000000FEFFFFFFFFFF7F3F7FFFFFFFFFA0 +:101E1000FEF8FCFEFFFFFFFFFFFFFE0000000000DA +:101E20000000000080E0E0F0F3F7F3F3E7E7C78796 +:101E30000F0F0F0F0FDFDF9F9F1F0F00000000002D +:101E40000000000000000000FCFEFEFEFEFCFCFCAA +:101E5000FCFCF9F9F9FFFFFFFFFBE10000000000C7 +:101E600000000000000000007FFF7F7F7F7FFFFFFA +:101E7000FFFFFFFFFFFFFFFFFFFFFF00000000006D +:101E8000000000000000000087CFE7E7E7CFCFCFDA +:101E90008F9F9F9F1F3F3F3F3FDF8F00000000004D +:101EA0000000000000000000FCFEFDFFFFFCF8F851 +:101EB000F9F9F9F1F3F3E3E3E7F7FB0000000000C1 +:101EC00000000000000000003FFFFFFFFFFFFFFFDA +:101ED000FFFFFFFFFEFEFEFEFCFCFF000000000017 +:101EE00000000000000000009FFFDFDF9FBFBFBFBA +:101EF0003F7F7F7F7FFFFFFFFF7F3F0000000000ED +:101F00000000000000000000F0FBF7FFFFF3E3E338 +:101F1000E7E7E7C7CFCF8F8F9FDFEF00000000001C +:101F20000000000000000000FEFFFFFFFEFEFEFEBE +:101F3000FCFCFCFDF9F9F9F9F1F0FC0000000000EF +:101F40000000000000000000010F1F3F7F7FFFFF27 +:101F5000FFFFFFFFFFFFFFFFFFFF3F00000000004C +:101F60000000000000000000FFFFFFFFCFCF9FFF39 +:101F7000FFFFFF8000FFFFFFFFFFF80000000000F1 +:101F80000000000000000000E1F3F8F8F8F9F1F1BA +:101F9000E3E3030373E7E7C7C78F0F000000000008 +:101FA0000000000000000000FFFFFFFFFFFFFFFF39 +:101FB000FFFFFFFEFEFEFEFCFCFFFE000000000037 +:101FC00000000000000000000FBFBFFFFFFEC08048 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000008080000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sdram.sv b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sdram.sv new file mode 100644 index 00000000..41f5b7a8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sdram.sv @@ -0,0 +1,348 @@ +// +// 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 reg [15:0] port1_q, + + input [16:1] cpu1_addr, + output reg [15:0] cpu1_q, + input [16:1] cpu2_addr, + output reg [15:0] cpu2_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 reg [31:0] port2_q, + + input [16:2] sp_addr, + output reg [31:0] sp_q +); + +localparam RASCAS_DELAY = 3'd2; // tRCD=20ns -> 2 cycles@<100MHz +localparam BURST_LENGTH = 3'b001; // 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 - data0 read burst terminated + 1 ras0 + 2 data1 returned + 3 CAS0 data1 returned + 4 RAS1 cas0 + 5 ras1 + 6 CAS1 data0 returned +*/ + +localparam STATE_RAS0 = 3'd0; // first state in cycle +localparam STATE_RAS1 = 3'd4; // Second ACTIVE command after RAS0 + tRRD (15ns) +localparam STATE_CAS0 = STATE_RAS0 + RASCAS_DELAY + 1'd1; // CAS phase - 3 +localparam STATE_CAS1 = STATE_RAS1 + RASCAS_DELAY; // CAS phase - 6 +localparam STATE_READ0 = 3'd0;// STATE_CAS0 + CAS_LATENCY + 2'd2; // 7 +localparam STATE_READ1 = 3'd3; +localparam STATE_DS1b = 3'd0; +localparam STATE_READ1b = 3'd4; +localparam STATE_LAST = 3'd6; + +reg [2:0] t; + +always @(posedge clk) begin + t <= t + 1'd1; + if (t == STATE_LAST) t <= STATE_RAS0; +end + +// --------------------------------------------------------------------- +// --------------------------- startup/reset --------------------------- +// --------------------------------------------------------------------- + +// wait 1ms (32 8Mhz cycles) after FPGA config is done before going +// into normal operation. Initialize the ram in the last 16 reset cycles (cycles 15-0) +reg [4:0] reset; +reg init = 1'b1; +always @(posedge clk, negedge init_n) begin + if(!init_n) begin + reset <= 5'h1f; + init <= 1'b1; + end else begin + if((t == STATE_LAST) && (reset != 0)) reset <= reset - 5'd1; + init <= !(reset == 0); + end +end + +// --------------------------------------------------------------------- +// ------------------ generate ram control signals --------------------- +// --------------------------------------------------------------------- + +// all possible commands +localparam CMD_INHIBIT = 4'b1111; +localparam CMD_NOP = 4'b0111; +localparam CMD_ACTIVE = 4'b0011; +localparam CMD_READ = 4'b0101; +localparam CMD_WRITE = 4'b0100; +localparam CMD_BURST_TERMINATE = 4'b0110; +localparam CMD_PRECHARGE = 4'b0010; +localparam CMD_AUTO_REFRESH = 4'b0001; +localparam CMD_LOAD_MODE = 4'b0000; + +reg [3:0] sd_cmd; // current command sent to sd ram +reg [15:0] sd_din; +// drive control signals according to current command +assign SDRAM_nCS = sd_cmd[3]; +assign SDRAM_nRAS = sd_cmd[2]; +assign SDRAM_nCAS = sd_cmd[1]; +assign SDRAM_nWE = sd_cmd[0]; + +reg [24:1] addr_latch[2]; +reg [24:1] addr_latch_next[2]; +reg [16:1] addr_last[2]; +reg [16:2] addr_last2[2]; +reg [15:0] din_latch[2]; +reg [1:0] oe_latch; +reg [1:0] we_latch; +reg [1:0] ds[2]; + +reg port1_state; +reg port2_state; + +localparam PORT_NONE = 2'd0; +localparam PORT_CPU1 = 2'd1; +localparam PORT_CPU2 = 2'd2; +localparam PORT_SP = 2'd1; +localparam PORT_REQ = 2'd3; + +reg [1:0] next_port[2]; +reg [1:0] port[2]; + +reg refresh; +reg [10:0] refresh_cnt; +wire need_refresh = (refresh_cnt >= RFRSH_CYCLES); + +// PORT1: bank 0,1 +always @(*) begin + if (refresh) begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end else if (port1_req ^ port1_state) begin + next_port[0] = PORT_REQ; + addr_latch_next[0] = { 1'b0, port1_a }; + end else if (cpu1_addr != addr_last[PORT_CPU1]) begin + next_port[0] = PORT_CPU1; + addr_latch_next[0] = { 8'd0, cpu1_addr }; + end else if (cpu2_addr != addr_last[PORT_CPU2]) begin + next_port[0] = PORT_CPU2; + addr_latch_next[0] = { 8'd0, cpu2_addr }; + 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_state) begin + next_port[1] = PORT_REQ; + addr_latch_next[1] = { 1'b1, port2_a }; + end else if (sp_addr != addr_last2[PORT_SP]) begin + next_port[1] = PORT_SP; + addr_latch_next[1] = { 1'b1, 7'd0, sp_addr, 1'b0 }; + end else begin + next_port[1] = PORT_NONE; + addr_latch_next[1] = addr_latch[1]; + end +end + +always @(posedge clk) begin + + // permanently latch ram data to reduce delays + sd_din <= SDRAM_DQ; + SDRAM_DQ <= 16'bZZZZZZZZZZZZZZZZ; + { SDRAM_DQMH, SDRAM_DQML } <= 2'b11; + sd_cmd <= CMD_NOP; // default: idle + refresh_cnt <= refresh_cnt + 1'd1; + + if(init) begin + // initialization takes place at the end of the reset phase + if(t == STATE_RAS0) begin + + if(reset == 15) begin + sd_cmd <= CMD_PRECHARGE; + SDRAM_A[10] <= 1'b1; // precharge all banks + end + + if(reset == 10 || reset == 8) begin + sd_cmd <= CMD_AUTO_REFRESH; + end + + if(reset == 2) begin + sd_cmd <= CMD_LOAD_MODE; + SDRAM_A <= MODE; + SDRAM_BA <= 2'b00; + end + end + end else begin + // RAS phase + // bank 0,1 + if(t == STATE_RAS0) begin + addr_latch[0] <= addr_latch_next[0]; + port[0] <= next_port[0]; + { oe_latch[0], we_latch[0] } <= 2'b00; + + if (next_port[0] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[0][22:10]; + SDRAM_BA <= addr_latch_next[0][24:23]; + addr_last[next_port[0]] <= addr_latch_next[0][16:1]; + if (next_port[0] == PORT_REQ) begin + { oe_latch[0], we_latch[0] } <= { ~port1_we, port1_we }; + ds[0] <= port1_ds; + din_latch[0] <= port1_d; + port1_state <= port1_req; + end else begin + { oe_latch[0], we_latch[0] } <= 2'b10; + ds[0] <= 2'b11; + end + end + end + + // bank 2,3 + if(t == STATE_RAS1) begin + refresh <= 1'b0; + addr_latch[1] <= addr_latch_next[1]; + { oe_latch[1], we_latch[1] } <= 2'b00; + port[1] <= next_port[1]; + + if (next_port[1] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[1][22:10]; + SDRAM_BA <= addr_latch_next[1][24:23]; + addr_last2[next_port[1]] <= addr_latch_next[1][16:2]; + if (next_port[1] == PORT_REQ) begin + { oe_latch[1], we_latch[1] } <= { ~port1_we, port1_we }; + ds[1] <= port2_ds; + din_latch[1] <= port2_d; + port2_state <= port2_req; + end else begin + { oe_latch[1], we_latch[1] } <= 2'b10; + ds[1] <= 2'b11; + end + end + + if (next_port[1] == PORT_NONE && need_refresh && !we_latch[0] && !oe_latch[0]) begin + refresh <= 1'b1; + refresh_cnt <= 0; + sd_cmd <= CMD_AUTO_REFRESH; + end + end + + // CAS phase + if(t == STATE_CAS0 && (we_latch[0] || oe_latch[0])) begin + sd_cmd <= we_latch[0]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[0]; + if (we_latch[0]) begin + SDRAM_DQ <= din_latch[0]; + port1_ack <= port1_req; + end + SDRAM_A <= { 4'b0010, addr_latch[0][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[0][24:23]; + end + + if(t == STATE_CAS1 && (we_latch[1] || oe_latch[1])) begin + sd_cmd <= we_latch[1]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + if (we_latch[1]) begin + SDRAM_DQ <= din_latch[1]; + port2_ack <= port2_req; + end + SDRAM_A <= { 4'b0010, addr_latch[1][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[1][24:23]; + end + + // Data returned + if(t == STATE_READ0 && oe_latch[0]) begin + case(port[0]) + PORT_REQ: begin port1_q <= sd_din; port1_ack <= port1_req; end + PORT_CPU1: begin cpu1_q <= sd_din; end + PORT_CPU2: begin cpu2_q <= sd_din; end + default: ; + endcase; + end + + if(t == STATE_READ1 && oe_latch[1]) begin + case(port[1]) + PORT_REQ: port2_q[15:0] <= sd_din; + PORT_SP : sp_q[15:0] <= sd_din; + default: ; + endcase; + end + + if(t == STATE_DS1b && oe_latch[1]) { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + + if(t == STATE_READ1b && oe_latch[1]) begin + case(port[1]) + PORT_REQ: begin port2_q[31:16] <= sd_din; port2_ack <= port2_req; end + PORT_SP : begin sp_q[31:16] <= sd_din; end + default: ; + endcase; + end + end +end + +endmodule diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spram.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spram.vhd new file mode 100644 index 00000000..d86010fc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spram.vhd @@ -0,0 +1,91 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY spram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + data : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END spram; + + +ARCHITECTURE SYN OF spram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "SINGLE_PORT", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + wren_a => wren, + clock0 => clock, + address_a => address, + data_a => data, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_array.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_array.vhd new file mode 100644 index 00000000..880f09f2 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_array.vhd @@ -0,0 +1,164 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.numeric_std.all; +--use ieee.std_logic_arith.all; +--use IEEE.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); +end entity sprite_array; + +architecture SYN of sprite_array is + + type reg_a_t is array (natural range <>) of from_SPRITE_REG_t; + type ctl_i_a_t is array (natural range <>) of to_SPRITE_CTL_t; + type ctl_o_a_t is array (natural range <>) of from_SPRITE_CTL_t; + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal reg_o : reg_a_t(0 to N_SPRITES-1); + signal ctl_i : ctl_i_a_t(0 to N_SPRITES-1); + signal ctl_o : ctl_o_a_t(0 to N_SPRITES-1); + + signal ld_r : std_logic_vector(N_SPRITES-1 downto 0); + +begin + + -- Sprite Data Load Arbiter + -- - enables each sprite controller during hblank + -- to allow loading of sprite row data into row buffer + process (clk, clk_ena, reset) + variable i : integer range 0 to N_SPRITES-1; + begin + if reset = '1' then + -- enable must be 1 clock behind address to latch data after fetch + --ld_r <= (N_SPRITES-1 => '1', others => '0'); + -- make ISE 9.2.03i happy... + ld_r(ld_r'left) <= '1'; + ld_r(ld_r'left-1 downto 0) <= (others => '0'); + i := 0; + elsif rising_edge(clk) and clk_ena = '1' then + ld_r <= ld_r(ld_r'left-1 downto 0) & ld_r(ld_r'left); + if i = N_SPRITES-1 then + i := 0; + else + i := i + 1; + end if; + row_a <= ctl_o(i).a; + end if; + end process; + + -- sprite row data fan-out + GEN_ROW_D : for i in 0 to N_SPRITES-1 generate + ctl_i(i).ld <= ld_r(i); + ctl_i(i).d <= row_d; + end generate GEN_ROW_D; + + -- Sprite Priority Encoder + -- - determines which sprite pixel (if any) is to be displayed + -- We can use a clocked process here because the tilemap + -- output is 1 clock behind at this point + process (clk, clk_ena) + variable spr_on_v : std_logic := '0'; + variable spr_pri_v : std_logic := '0'; + begin + if rising_edge(clk) and clk_ena = '1' then + spr_on_v := '0'; + spr_pri_v := '0'; + for i in 0 to N_SPRITES-1 loop + -- if highest priority = 0 and pixel on + if spr_pri_v = '0' and ctl_o(i).set = '1' then + -- if no sprite on or this priority = 1 + if spr_on_v = '0' or reg_o(i).pri = '1' then + rgb <= ctl_o(i).rgb; + spr_on_v := '1'; -- flag as sprite on + spr_pri_v := reg_o(i).pri; -- store priority + end if; + end if; + end loop; + end if; + set <= spr_on_v; + pri <= spr_pri_v; + end process; + + -- for NES, and perhaps others + -- it's actually more complicated than this + -- but it'll do for now... + spr0_set <= ctl_o(0).set; + + -- + -- Component Instantiation + -- + + GEN_REGS : for i in 0 to N_SPRITES-1 generate + + sptReg_inst : entity work.sptReg + generic map + ( + INDEX => i + ) + port map + ( + reg_i => reg_i, + reg_o => reg_o(i) + ); + + sptCtl_inst : entity work.spritectl + generic map + ( + INDEX => i, + DELAY => DELAY + ) + port map + ( + -- sprite registers + reg_i => reg_o(i), + + -- video control signals + video_ctl => video_ctl, + + -- sprite control signals + ctl_i => ctl_i(i), + ctl_o => ctl_o(i), + + graphics_i => graphics_i + ); + + end generate GEN_REGS; + +end SYN; + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg.vhd new file mode 100644 index 00000000..ee5cf179 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg.vhd @@ -0,0 +1,97 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +library work; +use work.video_controller_pkg.all; + +package sprite_pkg is + + subtype SPRITE_N_t is std_logic_vector(11 downto 0); + subtype SPRITE_A_t is std_logic_vector(7 downto 0); + subtype SPRITE_D_t is std_logic_vector(7 downto 0); + + type from_SPRITE_REG_t is record + n : SPRITE_N_t; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + xflip : std_logic; + yflip : std_logic; + colour : std_logic_vector(7 downto 0); + pri : std_logic; + end record; + + type to_SPRITE_REG_t is record + clk : std_logic; + clk_ena : std_logic; + wr : std_logic; + a : SPRITE_A_t; + d : SPRITE_D_t; + end record; + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t; + + subtype SPRITE_ROW_D_t is std_logic_vector(63 downto 0); + subtype SPRITE_ROW_A_t is std_logic_vector(15 downto 0); + + type to_SPRITE_CTL_t is record + ld : std_logic; + d : SPRITE_ROW_D_t; + end record; + + type from_SPRITE_CTL_t is record + a : SPRITE_ROW_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t; + + component sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); + end component sprite_array; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return SPRITE_ROW_D_t; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector; + +end package sprite_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg_body.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg_body.vhd new file mode 100644 index 00000000..551261b2 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg_body.vhd @@ -0,0 +1,62 @@ +library work; +use work.pace_pkg.all; +--use work.sprite_pkg.all; + +package body sprite_pkg is + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t is + begin + return ('0', '0', '0', (others => '0'), (others => '0')); + end function NULL_TO_SPRITE_REG; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t is + begin + return ('0', (others => '0')); + end function NULL_TO_SPRITE_CTL; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + + constant HALF : natural := (row_in'length / 2) - 1; + + alias row_in_0 : std_logic_vector(row_in'length-1 downto 0) + is row_in; + variable row_out : std_logic_vector(row_in_0'range); + + begin + + if flip = '0' then + return row_in; + else + for i in 0 to HALF loop + row_out ((HALF-i)*2+1 downto (HALF-i)*2) := row_in_0(i*2+1 downto i*2); + end loop; + return row_out; + end if; + + end flip_row; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + alias d_i_0 : std_logic_vector(d_i'length-1 downto 0) is d_i; + variable d_o : std_logic_vector(d_i_0'range); + begin + if flip = '0' then + return d_i; + else + for i in d_i_0'range loop + d_o(i) := d_i_0(d_i_0'high-i); + end loop; + return d_o; + end if; + end function flip_1; + +end package body sprite_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritectl.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritectl.vhd new file mode 100644 index 00000000..dc91db61 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritectl.vhd @@ -0,0 +1,202 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; +use work.platform_variant_pkg.all; + +entity spritectl is + generic + ( + INDEX : natural; + DELAY : integer + ); + port + ( + -- sprite registers + reg_i : in from_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- sprite control signals + ctl_i : in to_SPRITE_CTL_t; + ctl_o : out from_SPRITE_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity spritectl; + +architecture SYN of spritectl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal flipData : std_logic_vector(47 downto 0); -- flipped row data + + alias rgb : RGB_t is ctl_o.rgb; + +begin + + flipData(47 downto 32) <= flip_1 (ctl_i.d(47 downto 32), reg_i.xflip); + flipData(31 downto 16) <= flip_1 (ctl_i.d(31 downto 16), reg_i.xflip); + flipData(15 downto 0) <= flip_1 (ctl_i.d(15 downto 0), reg_i.xflip); + + process (clk, clk_ena) + + variable rowStore : std_logic_vector(47 downto 0); -- saved row of spt to show during visibile period + variable pel : std_logic_vector(2 downto 0); + variable x : unsigned(video_ctl.x'range); + variable y : unsigned(video_ctl.y'range); + variable yMat : boolean; -- raster is between first and last line of sprite + variable xMat : boolean; -- raster in between left edge and end of line + + variable height : unsigned(6 downto 0); + -- the width of rowCount determines the scanline multipler + -- - eg. (4 downto 0) is 1:1 + -- (5 downto 0) is 2:1 (scan-doubling) +-- variable rowCount : unsigned(3+PACE_VIDEO_V_SCALE downto 0); +-- alias row : unsigned(4 downto 0) is +-- rowCount(rowCount'left downto rowCount'left-4); + variable rowCount : unsigned(height'range); + alias row : unsigned(rowCount'range) is rowCount; + -- which part of the sprite is being drawn + alias segment : unsigned(1 downto 0) is rowCount(5 downto 4); + + variable prom_i : integer range sprite_prom'range; + variable code : std_logic_vector(9 downto 0); + variable pal_i : std_logic_vector(7 downto 0); + variable pal_rgb : pal_rgb_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + if video_ctl.hblank = '1' then + + x := unsigned(reg_i.x) - M62_VIDEO_H_OFFSET + PACE_VIDEO_PIPELINE_DELAY - 3; + y := 256 + 128 - 15 - unsigned(reg_i.y); + + -- hande sprite height, placement + prom_i := to_integer(unsigned(reg_i.n(9 downto 5))); + code := reg_i.n(9 downto 0); -- default + case sprite_prom(prom_i) is + when 1 => + -- double height + height := to_unsigned(2*16,height'length); + y := y - 16; + when 2 => + -- quadruple height + height := to_unsigned(4*16,height'length); + y := y - 3*16; + when others => + height := to_unsigned(16,height'length); + end case; + + -- do this 1st because we don't have many clocks + if y = unsigned(video_ctl.y) then + -- start counting sprite row + rowCount := (others => '0'); + yMat := true; + elsif row = height then + yMat := false; + end if; + + case sprite_prom(prom_i) is + when 1 => + -- double height + if reg_i.yflip = '1' then + code(0) := not segment(0); + else + code(0) := segment(0); + end if; + when 2 => + -- quadruple height + if reg_i.yflip = '1' then + code(1 downto 0) := not std_logic_vector(segment); + else + code(1 downto 0) := std_logic_vector(segment); + end if; + when others => + null; + end case; + + xMat := false; + -- stop sprites wrapping from bottom of screen + if y = 0 then + yMat := false; + end if; + + -- sprites not visible before row 16 + if ctl_i.ld = '1' then + if yMat then + rowStore := flipData; -- load sprite data + else + rowStore := (others => '0'); + end if; + end if; + + end if; -- hblank='1' + + if video_ctl.stb = '1' then + + if x = unsigned(video_ctl.x) then + -- count up at left edge of sprite + rowCount := rowCount + 1; + -- start of sprite + --if unsigned(x) /= 0 and unsigned(x) < 240 then + xMat := true; + --end if; + end if; + + if xMat then + -- shift in next pixel + pel := rowStore(rowStore'left-32) & rowStore(rowStore'left-16) & rowStore(rowStore'left); + rowStore(47 downto 32) := rowStore(46 downto 32) & '0'; + rowStore(31 downto 16) := rowStore(30 downto 16) & '0'; + rowStore(15 downto 0) := rowStore(14 downto 0) & '0'; + end if; + + end if; + + if PLATFORM_VARIANT = "ldrun" or + PLATFORM_VARIANT = "battroad" then + pal_i := '0' & reg_i.colour(3 downto 0) & pel; + else + pal_i := reg_i.colour(4 downto 0) & pel; + end if; + --pal_i := "000" & std_logic_vector(to_unsigned(INDEX,5)); + pal_rgb := sprite_pal(to_integer(unsigned(pal_i))); + rgb.r <= pal_rgb(0) & "00"; + rgb.g <= pal_rgb(1) & "00"; + rgb.b <= pal_rgb(2) & "00"; + + -- set pixel transparency based on match + ctl_o.set <= '0'; + if xMat and pel /= "000" then + if graphics_i.bit8(0)(4) = '1' then + ctl_o.set <= '1'; + end if; + end if; + + end if; -- clk_ena='1' + end if; -- rising_edge(clk) + + -- generate sprite data address + ctl_o.a(15) <= '0'; -- unused + ctl_o.a(14 downto 5) <= code; + ctl_o.a(4) <= '0'; -- dual-port RAM + if reg_i.yflip = '0' then + ctl_o.a(3 downto 0) <= std_logic_vector(row(3 downto 0)); + else + ctl_o.a(3 downto 0) <= not std_logic_vector(row(3 downto 0)); + end if; + + end process; + +end architecture SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritereg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritereg.vhd new file mode 100644 index 00000000..107edb1c --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritereg.vhd @@ -0,0 +1,68 @@ +Library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.sprite_pkg.all; + +entity sptReg is + + generic + ( + INDEX : natural + ); + port + ( + reg_i : in to_SPRITE_REG_t; + reg_o : out from_SPRITE_REG_t + ); + +end sptReg; + +architecture SYN of sptReg is + + alias clk : std_logic is reg_i.clk; + alias clk_ena : std_logic is reg_i.clk_ena; + +begin + + process (clk, clk_ena) + begin + if rising_edge(clk) then + if clk_ena = '1' then + if reg_i.a(7 downto 3) = std_logic_vector(to_unsigned(INDEX, 5)) then + if reg_i.wr = '1' then + case reg_i.a(2 downto 0) is + when "000" => + reg_o.colour(4 downto 0) <= reg_i.d(4 downto 0); + when "010" => + reg_o.y(7 downto 0) <= reg_i.d; + when "011" => + reg_o.y(8) <= reg_i.d(0); + when "100" => + reg_o.n(7 downto 0) <= reg_i.d(7 downto 0); + when "101" => + reg_o.yflip <= reg_i.d(7); + reg_o.xflip <= reg_i.d(6); + reg_o.n(10 downto 8) <= reg_i.d(2 downto 0); + when "110" => + reg_o.x(7 downto 0) <= reg_i.d; + when "111" => + reg_o.x(8) <= reg_i.d(0); + when others => + null; + end case; + end if; -- reg_i.wr='1' + end if; -- reg_i.a()=INDEX + end if; -- clk_ena='1' + end if; -- rising_edge(clk) + end process; + + reg_o.x(reg_o.x'left downto 9) <= (others => '0'); + reg_o.y(reg_o.y'left downto 9) <= (others => '0'); + reg_o.n(reg_o.n'left downto 11) <= (others => '0'); + reg_o.colour(reg_o.colour'left downto 5) <= (others => '0'); + reg_o.pri <= '1'; + +end SYN; + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprom.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprom.vhd new file mode 100644 index 00000000..292a214f --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprom.vhd @@ -0,0 +1,83 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY sprom IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END sprom; + + +ARCHITECTURE SYN OF sprom IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_aclr_a : STRING; + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_aclr_a => "NONE", + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "ROM", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + clock0 => clock, + address_a => address, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/target_top.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/target_top.vhd new file mode 100644 index 00000000..4064a09c --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/target_top.vhd @@ -0,0 +1,145 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; + +entity target_top is port( + clock_sys : in std_logic; + clock_vid : in std_logic; + clk_aud : in std_logic; + reset_in : in std_logic; + audio_out : out std_logic_vector(11 downto 0); + usr_coin1 : in std_logic; + usr_coin2 : in std_logic; + usr_service : in std_logic; + usr_start1 : in std_logic; + usr_start2 : in std_logic; + p1_up : in std_logic; + p1_dw : in std_logic; + p1_lt : in std_logic; + p1_rt : in std_logic; + p1_f1 : in std_logic; + p1_f2 : in std_logic; + + p2_up : in std_logic; + p2_dw : in std_logic; + p2_lt : in std_logic; + p2_rt : in std_logic; + p2_f1 : in std_logic; + p2_f2 : in std_logic; + + VGA_VS : out std_logic; + VGA_HS : out std_logic; + VGA_R : out std_logic_vector(3 downto 0); + VGA_G : out std_logic_vector(3 downto 0); + VGA_B : out std_logic_vector(3 downto 0); + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + snd_rom_addr : out std_logic_vector(13 downto 0); + snd_rom_do : in std_logic_vector(7 downto 0) + ); +end target_top; + +architecture SYN of target_top is + + signal clkrst_i : from_CLKRST_t; + signal buttons_i : from_BUTTONS_t; + signal switches_i : from_SWITCHES_t; + signal leds_o : to_LEDS_t; + signal inputs_i : from_INPUTS_t; + signal video_i : from_VIDEO_t; + signal video_o : to_VIDEO_t; + signal platform_i : from_PLATFORM_IO_t; + signal platform_o : to_PLATFORM_IO_t; + signal sound_data : std_logic_vector(7 downto 0); + +begin + clkrst_i.clk(0) <= clock_sys; + clkrst_i.clk(1) <= clock_vid; + clkrst_i.arst <= reset_in; + clkrst_i.arst_n <= not clkrst_i.arst; + +GEN_RESETS : for i in 0 to 3 generate + process (clkrst_i.clk(i), clkrst_i.arst) + variable rst_r : std_logic_vector(2 downto 0) := (others => '0'); + begin + if clkrst_i.arst = '1' then + rst_r := (others => '1'); + elsif rising_edge(clkrst_i.clk(i)) then + rst_r := rst_r(rst_r'left-1 downto 0) & '0'; + end if; + clkrst_i.rst(i) <= rst_r(rst_r'left); + end process; +end generate GEN_RESETS; + + video_i.clk <= clkrst_i.clk(1); + video_i.clk_ena <= '1'; + video_i.reset <= clkrst_i.rst(1); + VGA_R <= video_o.rgb.r(9 downto 6); + VGA_G <= video_o.rgb.g(9 downto 6); + VGA_B <= video_o.rgb.b(9 downto 6); + VGA_HS <= video_o.hsync; + VGA_VS <= video_o.vsync; + +--Sound_Board : entity work.Sound_Board +-- port map( +-- clock_E => clk_aud, +-- areset => clkrst_i.rst(1), +-- select_sound => sound_data, +-- audio_out => audio_out, +-- snd_rom_addr => snd_rom_addr, + -- snd_rom_do => snd_rom_do, +-- dbg_cpu_addr => open +-- ); + +pace_inst : entity work.pace + port map( + clkrst_i => clkrst_i, + buttons_i => buttons_i, + switches_i => switches_i, + inputs_i => inputs_i, + video_i => video_i, + video_o => video_o, + sound_data_o => sound_data, + platform_i => platform_i, + platform_o => platform_o, + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do + ); + + inputs_i.jamma_n.coin(1) <= not usr_coin1; + inputs_i.jamma_n.coin(2) <= not usr_coin2; + inputs_i.jamma_n.service <= not usr_service; + inputs_i.jamma_n.p(1).start <= not usr_start1; + inputs_i.jamma_n.p(2).start <= not usr_start2; + + inputs_i.jamma_n.p(1).up <= not p1_up; + inputs_i.jamma_n.p(1).down <= not p1_dw; + inputs_i.jamma_n.p(1).left <= not p1_lt; + inputs_i.jamma_n.p(1).right <= not p1_rt; + inputs_i.jamma_n.p(1).button(1) <= not p1_f1; + inputs_i.jamma_n.p(1).button(2) <= not p1_f2; + inputs_i.jamma_n.p(1).button(3) <= '1'; + inputs_i.jamma_n.p(1).button(4) <= '1'; + inputs_i.jamma_n.p(1).button(5) <= '1'; + + inputs_i.jamma_n.p(2).up <= not p2_up; + inputs_i.jamma_n.p(2).down <= not p2_dw; + inputs_i.jamma_n.p(2).left <= not p2_lt; + inputs_i.jamma_n.p(2).right <= not p2_rt; + inputs_i.jamma_n.p(2).button(1) <= not p2_f1; + inputs_i.jamma_n.p(2).button(2) <= not p2_f2; + inputs_i.jamma_n.p(2).button(3) <= '1'; + inputs_i.jamma_n.p(2).button(4) <= '1'; + inputs_i.jamma_n.p(2).button(5) <= '1'; + + -- not currently wired to any inputs + inputs_i.jamma_n.coin_cnt <= (others => '1'); + inputs_i.jamma_n.tilt <= '1'; + inputs_i.jamma_n.test <= '1'; +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl.vhd new file mode 100644 index 00000000..9ccad9f8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl.vhd @@ -0,0 +1,106 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; +use work.platform_variant_pkg.all; +use work.video_controller_pkg.all; + +-- +-- Irem M62 Tilemap Controller +-- +-- Tile data is 2 BPP. +-- + +architecture TILEMAP_1 of tilemapCtl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + alias stb : std_logic is video_ctl.stb; + alias hblank : std_logic is video_ctl.hblank; + alias vblank : std_logic is video_ctl.vblank; + + signal x : std_logic_vector(video_ctl.x'range); + signal y : std_logic_vector(video_ctl.y'range); + + alias rot_en : std_logic is graphics_i.bit8(0)(0); + alias hscroll : std_logic_vector(15 downto 0) is graphics_i.bit16(0); + +begin + + -- not used + ctl_o.map_a(ctl_o.map_a'left downto 11) <= (others => '0'); + ctl_o.attr_a(ctl_o.attr_a'left downto 11) <= (others => '0'); + ctl_o.tile_a(ctl_o.tile_a'left downto 13) <= (others => '0'); + + -- screen rotation + x <= std_logic_vector(M62_VIDEO_H_OFFSET + unsigned(video_ctl.x)) when unsigned(y) < 6*8 else + std_logic_vector(M62_VIDEO_H_OFFSET + unsigned(video_ctl.x) + unsigned(hscroll(8 downto 0))); + -- when rot_en = '0' else not video_ctl.y; + --y <= not video_ctl.y when rot_en = '0' else 32 + video_ctl.x; + y <= video_ctl.y; -- when rot_en = '0' else video_ctl.x; + + -- generate pixel + process (clk, clk_ena) + + variable tile_d_r : std_logic_vector(23 downto 0); + variable attr_d_r : std_logic_vector(7 downto 0); + variable pel : std_logic_vector(2 downto 0); + variable pal_i : std_logic_vector(7 downto 0); + variable pal_rgb : pal_rgb_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + + -- 1st stage of pipeline + -- - set tilemap, attribute address + ctl_o.map_a(10 downto 6) <= y(7 downto 3); + ctl_o.map_a(5 downto 0) <= x(8 downto 3); + ctl_o.attr_a(10 downto 6) <= y(7 downto 3); + ctl_o.attr_a(5 downto 0) <= x(8 downto 3); + + -- 2nd stage of pipeline + -- - set tile address + if x(2 downto 0) = "010" then + ctl_o.tile_a(12 downto 11) <= ctl_i.attr_d(7 downto 6); + ctl_o.tile_a(10 downto 3) <= ctl_i.map_d(7 downto 0); + ctl_o.tile_a(2 downto 0) <= y(2 downto 0); + end if; + + -- 3rd stage of pipeline + -- - read tile, attribute data from ROM + if x(2 downto 0) = "100" then + tile_d_r := ctl_i.tile_d(tile_d_r'range); + attr_d_r := ctl_i.attr_d(7 downto 0); + elsif stb = '1' then + tile_d_r := tile_d_r(tile_d_r'left-1 downto 0) & '0'; + end if; + + -- extract R,G,B from colour palette + pel := tile_d_r(tile_d_r'left-16) & tile_d_r(tile_d_r'left-8) & tile_d_r(tile_d_r'left); + pal_i := attr_d_r(4 downto 0) & pel; + pal_rgb := tile_pal(to_integer(unsigned(pal_i))); + ctl_o.rgb.r <= pal_rgb(0) & "00"; + ctl_o.rgb.g <= pal_rgb(1) & "00"; + ctl_o.rgb.b <= pal_rgb(2) & "00"; + ctl_o.set <= '0'; -- default +-- if pel /= "000" then +-- pal_rgb(0)(7 downto 5) /= "000" or +-- pal_rgb(1)(7 downto 5) /= "000" or +-- pal_rgb(2)(7 downto 5) /= "000" then + if graphics_i.bit8(0)(3) = '1' then + ctl_o.set <= '1'; + end if; +-- end if; + + end if; -- clk_ena + end if; -- rising_edge_clk + + end process; + +end architecture TILEMAP_1; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl_e.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl_e.vhd new file mode 100644 index 00000000..8d93334b --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl_e.vhd @@ -0,0 +1,29 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; +use work.video_controller_pkg.all; + +entity tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity tilemapCtl; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller.vhd new file mode 100644 index 00000000..9372578d --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller.vhd @@ -0,0 +1,465 @@ +library IEEE; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.video_controller_pkg.all; + +entity pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + L_CROP : integer range 0 to 255; + R_CROP : integer range 0 to 255; + H_SCALE : integer; + V_SCALE : integer; + H_SYNC_POL : std_logic := '1'; + V_SYNC_POL : std_logic := '1'; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : out from_VIDEO_CTL_t; + + -- video output control & data + video_o : out to_VIDEO_t + ); +end pace_video_controller; + +architecture SYN of pace_video_controller is + + constant SIM_DELAY : time := 2 ns; + + constant VIDEO_H_SIZE : integer := H_SIZE * H_SCALE; + constant VIDEO_V_SIZE : integer := V_SIZE * V_SCALE; + + subtype reg_t is integer range 0 to 2047; + + alias clk : std_logic is video_i.clk; + alias clk_ena : std_logic is video_i.clk_ena; + alias reset : std_logic is video_i.reset; + + -- registers + signal h_front_porch_r : reg_t := 0; + signal h_sync_r : reg_t := 0; + signal h_back_porch_r : reg_t := 0; + signal h_border_r : reg_t := 0; + signal h_video_r : reg_t := 0; + signal v_front_porch_r : reg_t := 0; + signal v_sync_r : reg_t := 0; + signal v_back_porch_r : reg_t := 0; + signal v_border_r : reg_t := 0; + signal v_video_r : reg_t := 0; + + signal border_rgb_r : RGB_t := ((others=>'0'), (others=>'0'), (others=>'0')); + + -- derived values + signal h_sync_start : reg_t := 0; + signal h_back_porch_start : reg_t := 0; + signal h_left_border_start : reg_t := 0; + signal h_video_start : reg_t := 0; + signal h_right_border_start : reg_t := 0; + signal h_line_end : reg_t := 0; + signal v_sync_start : reg_t := 0; + signal v_back_porch_start : reg_t := 0; + signal v_top_border_start : reg_t := 0; + signal v_video_start : reg_t := 0; + signal v_bottom_border_start : reg_t := 0; + signal v_screen_end : reg_t := 0; + + signal hsync_s : std_logic := '0'; + signal vsync_s : std_logic := '0'; + signal hactive_s : std_logic := '0'; + signal vactive_s : std_logic := '0'; + signal hblank_s : std_logic := '0'; + signal vblank_s : std_logic := '0'; + + subtype count_t is integer range 0 to 2047; + signal x_count : count_t := 0; + signal y_count : count_t := 0; + + signal x_s : unsigned(10 downto 0) := (others => '0'); + signal y_s : unsigned(10 downto 0) := (others => '0'); + + --signal extended_reset : std_logic := '1'; + alias extended_reset : std_logic is video_i.reset; + +begin + + -- registers + reg_proc: process (reset, clk) + + begin + --if reset = '1' then + case CONFIG is + + when PACE_VIDEO_VGA_240x320_60Hz => + -- P3M, clk=11.136MHz, clk_ena=5.568MHz + h_front_porch_r <= 272-240; + h_sync_r <= 5; + h_back_porch_r <= 22; + h_border_r <= (240-VIDEO_H_SIZE)/2; + v_front_porch_r <= 326-320; + v_sync_r <= 1; + v_back_porch_r <= 5; + v_border_r <= (320-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_320x480_60Hz => + -- VGA, clk=12.588MHz + --# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio + --Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan + h_front_porch_r <= 16; + h_sync_r <= 48; + h_back_porch_r <= 16; + h_border_r <= (320-VIDEO_H_SIZE)/2; + v_front_porch_r <= (5*2); + v_sync_r <= (1*2); + v_back_porch_r <= (16*2); + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_640x480_60Hz => + -- VGA, clk=25.175MHz + h_front_porch_r <= 16; + h_sync_r <= 96; + h_back_porch_r <= 48; + h_border_r <= (640-VIDEO_H_SIZE)/2; + v_front_porch_r <= 10; + v_sync_r <= 2; + v_back_porch_r <= 33; + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_800x600_60Hz => + -- SVGA, clk=40MHz + h_front_porch_r <= 40; + h_sync_r <= 128; + h_back_porch_r <= 88; + h_border_r <= (800-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 4; + v_back_porch_r <= 23; + v_border_r <= (600-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1024x768_60Hz => + -- XVGA, clk=65MHz + h_front_porch_r <= 24; + h_sync_r <= 136; + h_back_porch_r <= 160; + h_border_r <= (1024-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 6; + v_back_porch_r <= 29; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1366x768_60Hz => + -- XVGA(NAVICO ROCKY), clk=72MHz + h_front_porch_r <= 88; --64; + h_sync_r <= 44; --112; + h_back_porch_r <= 148; --248; + h_border_r <= (1366-VIDEO_H_SIZE)/2; + v_front_porch_r <= 4; --3; + v_sync_r <= 5; --6; + v_back_porch_r <= 36; --18; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x800_60Hz => + -- Sentinel Mode 36, clk=103.2MHz + h_front_porch_r <= 64; + h_sync_r <= 32; + h_back_porch_r <= 362-32-64; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 4; + v_back_porch_r <= 38-4-3; + v_border_r <= (800-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x1024_60Hz => + -- SXGA, clk=108MHz + h_front_porch_r <= 48; + h_sync_r <= 112; + h_back_porch_r <= 248; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 38; + v_border_r <= (1024-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1680x1050_60Hz => + -- WSXGA+, clk=147.14MHz + h_front_porch_r <= 104; + h_sync_r <= 184; + h_back_porch_r <= 288; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 33; + -- WSXGA+, clk=118MHz + --h_front_porch_r <= 48; + --h_sync_r <= 32; + --h_back_porch_r <= 80; + --v_front_porch_r <= 3; + --v_sync_r <= 6; + --v_back_porch_r <= 21; + h_border_r <= (1680-VIDEO_H_SIZE)/2; + v_border_r <= (1050-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz => + -- arcade standard resolution, clk=7.16MHz + h_front_porch_r <= 34; + h_sync_r <= 34; + h_back_porch_r <= 51; + h_border_r <= (336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64 => + -- arcade standard resolution, clk=28.64MHz + h_front_porch_r <= 4*34; + h_sync_r <= 4*34; + h_back_porch_r <= 4*51; + h_border_r <= 4*(336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_CVBS_720x288p_50Hz => + -- generic composite, clk=13.5MHz + h_front_porch_r <= (8+12); + h_sync_r <= 64; + h_back_porch_r <= (144-64-(8+12)); + h_border_r <= (720-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 20; + v_border_r <= (288-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_LCM_320x240_60Hz => + -- DE1/2, clk=18MHz + h_front_porch_r <= 59; + h_sync_r <= 1; + h_back_porch_r <= 151; + h_border_r <= (320-VIDEO_H_SIZE)*3/2; + v_front_porch_r <= 8; + v_sync_r <= 1; + v_back_porch_r <= 13; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_PAL_576x288_50Hz => + -- pixclk=11 MHz + h_front_porch_r <= 2*6; + h_sync_r <= 2*28; + h_back_porch_r <= 2*30; + h_border_r <= (576-VIDEO_H_SIZE)/2; + v_front_porch_r <= 8; + v_sync_r <= 3; + v_back_porch_r <= 13; + v_border_r <= (288-VIDEO_V_SIZE)/2; + when others => + null; + end case; + + h_video_r <= VIDEO_H_SIZE; + v_video_r <= VIDEO_V_SIZE; + border_rgb_r <= BORDER_RGB; + + --end if; + end process reg_proc; + + -- register some arithmetic + init_proc: process (reset, clk, clk_ena) + begin + if reset = '1' then + null; + elsif rising_edge(clk) then + h_sync_start <= h_front_porch_r - 1; + h_back_porch_start <= h_sync_start + h_sync_r; + h_left_border_start <= h_back_porch_start + h_back_porch_r; + h_video_start <= h_left_border_start + h_border_r; + h_right_border_start <= h_video_start + h_video_r; + h_line_end <= h_right_border_start + h_border_r; + v_sync_start <= v_front_porch_r - 1; + v_back_porch_start <= v_sync_start + v_sync_r; + v_top_border_start <= v_back_porch_start + v_back_porch_r; + v_video_start <= v_top_border_start + v_border_r; + v_bottom_border_start <= v_video_start + v_video_r; + v_screen_end <= v_bottom_border_start + v_border_r; + end if; + end process init_proc; + + reset_proc: process (reset, clk) + variable count_v : integer; + begin + if reset = '1' then + --extended_reset <= '1'; + count_v := 7; + elsif rising_edge(clk) then + if count_v = 0 then + --extended_reset <= '0'; + else + count_v := count_v - 1; + end if; + end if; + end process reset_proc; + + -- video control outputs + timer_proc: process (extended_reset, clk, clk_ena) + begin + if extended_reset = '1' then + hblank_s <= '1'; + vblank_s <= '1'; + hactive_s <= '0'; + vactive_s <= '0'; + hsync_s <= not H_SYNC_POL; + x_count <= 0; + y_count <= 0; + elsif rising_edge(clk) and clk_ena = '1' then + if x_count = h_line_end then + hblank_s <= '1'; + hactive_s <= '0'; -- for 0 borders + if y_count = v_screen_end then + vblank_s <= '1'; + vactive_s <= '0'; -- for 0 borders + y_count <= 0; + else + y_s <= y_s + 1; + if y_count = v_sync_start then + vsync_s <= V_SYNC_POL; + elsif y_count = v_back_porch_start then + vsync_s <= not V_SYNC_POL; + elsif y_count = v_video_start then + vblank_s <= '0'; -- for 0 borders + vactive_s <= '1'; + y_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif y_count = v_top_border_start then + vblank_s <= '0'; + elsif y_count = v_bottom_border_start then + vactive_s <= '0'; + end if; + y_count <= y_count + 1; + end if; + x_count <= 0; + else + x_s <= x_s + 1; + if x_count = h_sync_start then + hsync_s <= H_SYNC_POL; + elsif x_count = h_back_porch_start then + hsync_s <= not H_SYNC_POL; + elsif x_count = h_video_start then + hblank_s <= '0'; -- for 0 borders + hactive_s <= '1'; + x_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif x_count = h_left_border_start then + hblank_s <= '0'; + elsif x_count = h_right_border_start then + hactive_s <= '0'; + end if; + x_count <= x_count + 1; + end if; + end if; -- rising_edge(clk) and clk_ena = '1' + end process timer_proc; + + -- pass-through for tile/bitmap & sprite controllers + video_ctl_o.clk <= clk; + video_ctl_o.clk_ena <= clk_ena; + + -- for video DACs and TFT output + video_o.clk <= clk; + + BLK_VIDEO_O : block + + constant PIPELINE_DELAY : natural := DELAY+1; + + -- won't synthesize correctly under ISE if these are variables + signal hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + signal vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + + begin + + video_o_proc: process (extended_reset, clk, clk_ena) + variable hsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable hblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + alias hsync_v : std_logic is hsync_v_r(hsync_v_r'left); + alias vsync_v : std_logic is vsync_v_r(vsync_v_r'left); + alias hactive_v : std_logic is hactive_v_r(hactive_v_r'left); + alias vactive_v : std_logic is vactive_v_r(vactive_v_r'left); + alias hblank_v : std_logic is hblank_v_r(hblank_v_r'left); + alias vblank_v : std_logic is vblank_v_r(vblank_v_r'left); + variable stb_cnt_v : unsigned(3 downto 0); -- up to 16x scaling + begin + if extended_reset = '1' then + hsync_v_r := (others => not H_SYNC_POL); + vsync_v_r := (others => not V_SYNC_POL); + hactive_v_r <= (others => '0'); + vactive_v_r <= (others => '0'); + hblank_v_r := (others => '0'); + vblank_v_r := (others => '0'); + stb_cnt_v := (others => '1'); + elsif rising_edge(clk) and clk_ena = '1' then + + -- register control signals and handle scaling + video_ctl_o.hblank <= not hactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + video_ctl_o.vblank <= not vactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + -- handle scaling + video_ctl_o.stb <= stb_cnt_v(H_SCALE-1) after SIM_DELAY; + if hactive_s = '1' and vactive_s = '1' then + stb_cnt_v := stb_cnt_v + 2; + elsif hblank_s = '0' and vblank_s = '0' then + stb_cnt_v := (others => '1'); + end if; + video_ctl_o.x <= std_logic_vector(resize(x_s(x_s'left downto H_SCALE-1), video_ctl_o.x'length)) after SIM_DELAY; + video_ctl_o.y <= std_logic_vector(resize(y_s(y_s'left downto V_SCALE-1), video_ctl_o.y'length)) after SIM_DELAY; + + -- register video outputs + if hactive_v = '1' and vactive_v = '1' then + -- active video + if x_s(x_s'left downto H_SCALE-1) < (L_CROP + PIPELINE_DELAY) or + x_s(x_s'left downto H_SCALE-1) >= (H_SIZE - R_CROP + PIPELINE_DELAY) then + video_o.rgb <= RGB_BLACK after SIM_DELAY; + else + video_o.rgb <= rgb_i after SIM_DELAY; + end if; + elsif hblank_v = '0' and vblank_v = '0' then + -- border + video_o.rgb <= border_rgb_r after SIM_DELAY; + else + video_o.rgb.r <= (others => '0') after SIM_DELAY; + video_o.rgb.g <= (others => '0') after SIM_DELAY; + video_o.rgb.b <= (others => '0') after SIM_DELAY; + end if; + video_o.hsync <= hsync_v after SIM_DELAY; + video_o.vsync <= vsync_v after SIM_DELAY; + video_o.hblank <= hblank_v after SIM_DELAY; + video_o.vblank <= vblank_v after SIM_DELAY; + -- pipelined signals + hsync_v_r := hsync_v_r(hsync_v_r'left-1 downto 0) & hsync_s; + vsync_v_r := vsync_v_r(vsync_v_r'left-1 downto 0) & vsync_s; + hactive_v_r <= hactive_v_r(hactive_v_r'left-1 downto 0) & hactive_s; + vactive_v_r <= vactive_v_r(vactive_v_r'left-1 downto 0) & vactive_s; + hblank_v_r := hblank_v_r(hblank_v_r'left-1 downto 0) & hblank_s; + vblank_v_r := vblank_v_r(vblank_v_r'left-1 downto 0) & vblank_s; + end if; + end process video_o_proc; + + end block BLK_VIDEO_O; + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg.vhd new file mode 100644 index 00000000..526be3c8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg.vhd @@ -0,0 +1,230 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +package video_controller_pkg is + + type PACEVideoController_t is + ( + PACE_VIDEO_NONE, -- PACE video controller not used + PACE_VIDEO_VGA_240x320_60Hz, -- P3M video + PACE_VIDEO_VGA_320x480_60Hz, -- for 320x200 (12.588MHz) + PACE_VIDEO_VGA_640x480_60Hz, -- generic VGA (25.175MHz) + PACE_VIDEO_VGA_800x600_60Hz, -- generic VGA (40MHz) + PACE_VIDEO_VGA_1024x768_60Hz, -- XVGA (65MHz) + PACE_VIDEO_VGA_1366x768_60Hz, -- (NAVICO ROCKY) (72MHz) + PACE_VIDEO_VGA_1280x800_60Hz, -- Sentinel Mode 36 + PACE_VIDEO_VGA_1280x1024_60Hz, -- SXGA (108MHz) + PACE_VIDEO_VGA_1680x1050_60Hz, -- WSXGA+ (147MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz, -- arcade std resolution (7.16MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64, -- arcade std resolution (28.64MHz) + PACE_VIDEO_CVBS_720x288p_50Hz, -- generic composite + PACE_VIDEO_LCM_320x240_60Hz, -- DE2 LCD + PACE_VIDEO_PAL_576x288_50Hz + ); + + type PACEVideoDisplay_t is + ( + PACE_DISPLAY_NONE, + PACE_DISPLAY_VGA, + PACE_DISPLAY_CVBS, + PACE_DISPLAY_TFT + ); + + type RGB_t is record + r : std_logic_vector(9 downto 0); + g : std_logic_vector(9 downto 0); + b : std_logic_vector(9 downto 0); + end record; + + type RGB_a is array (natural range <>) of RGB_t; + + function NULL_RGB return RGB_t; + + constant RGB_BLACK : RGB_t := ((others=>'0'),(others=>'0'),(others=>'0')); + constant RGB_RED : RGB_t := ((others=>'1'),(others=>'0'),(others=>'0')); + constant RGB_GREEN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'0')); + constant RGB_YELLOW : RGB_t := ((others=>'1'),(others=>'1'),(others=>'0')); + constant RGB_BLUE : RGB_t := ((others=>'0'),(others=>'0'),(others=>'1')); + constant RGB_MAGENTA : RGB_t := ((others=>'1'),(others=>'0'),(others=>'1')); + constant RGB_CYAN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'1')); + constant RGB_WHITE : RGB_t := ((others=>'1'),(others=>'1'),(others=>'1')); + + type VIDEO_REG_t is record + h_scale : std_logic_vector(2 downto 0); + v_scale : std_logic_vector(2 downto 0); + end record; + + type from_VIDEO_t is record + clk : std_logic; + clk_ena : std_logic; + reset : std_logic; + end record; + + type to_VIDEO_t is record + clk : std_logic; + rgb : rgb_t; + hsync : std_logic; + vsync : std_logic; + hblank : std_logic; + vblank : std_logic; + de : std_logic; + end record; + + type from_VIDEO_CTL_t is record + clk : std_logic; + clk_ena : std_logic; + stb : std_logic; + hblank : std_logic; + vblank : std_logic; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + end record; + + subtype BITMAP_D_t is std_logic_vector(23 downto 0); + subtype BITMAP_A_t is std_logic_vector(15 downto 0); + + type to_BITMAP_CTL_t is record + d : BITMAP_D_t; + end record; + + type to_BITMAP_CTL_a is array (natural range <>) of to_BITMAP_CTL_t; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t; + + type from_BITMAP_CTL_t is record + a : BITMAP_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_BITMAP_CTL_a is array (natural range <>) of from_BITMAP_CTL_t; + + subtype TILEMAP_D_t is std_logic_vector(15 downto 0); + subtype TILEMAP_A_t is std_logic_vector(15 downto 0); + subtype TILE_A_t is std_logic_vector(16 downto 0); + subtype TILE_D_t is std_logic_vector(23 downto 0); + subtype ATTR_A_t is std_logic_vector(15 downto 0); + subtype ATTR_D_t is std_logic_vector(15 downto 0); + + type to_TILEMAP_CTL_t is record + map_d : TILEMAP_D_t; + tile_d : TILE_D_t; + attr_d : ATTR_D_t; + end record; + + type to_TILEMAP_CTL_a is array (natural range <>) of to_TILEMAP_CTL_t; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t; + + type from_TILEMAP_CTL_t is record + map_a : TILEMAP_A_t; + tile_a : TILE_A_t; + attr_a : ATTR_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_TILEMAP_CTL_a is array (natural range <>) of from_TILEMAP_CTL_t; + + subtype PAL_ENTRY_t is std_logic_vector(15 downto 0); + type PAL_A_t is array (natural range <>) of PAL_ENTRY_t; + + subtype BYTE_t is std_logic_vector(7 downto 0); + type BYTE_A_t is array (natural range <>) of BYTE_t; + + subtype WORD_t is std_logic_vector(15 downto 0); + type WORD_A_t is array (natural range <>) of WORD_t; + + type to_GRAPHICS_t is record + pal : PAL_A_t(0 to 15); + -- for various uses + bit8 : BYTE_A_t(0 to 7); + bit16 : WORD_A_t(0 to 3); + -- 'native' graphics stream + hsync : std_logic; + vsync : std_logic; + rgb : RGB_t; + end record; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t; + + type from_GRAPHICS_t is record + y : std_logic_vector(10 downto 0); + hblank : std_logic; + vblank : std_logic; + end record; + + component pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + --H_SCALE : integer; + --V_SCALE : integer; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : from_VIDEO_CTL_t; + + -- Outputs to video + video_o : out to_VIDEO_t + ); + end component pace_video_controller; + + component tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component tilemapCtl; + + component bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component bitmapCtl; + +end package video_controller_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg_body.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg_body.vhd new file mode 100644 index 00000000..996e5867 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg_body.vhd @@ -0,0 +1,29 @@ +library work; +--use work.pace_pkg.all; + +package body video_controller_pkg is + + function NULL_RGB return RGB_t is + begin + return (others => (others => '0')); + end NULL_RGB; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t is + begin + return (others => (others => '0')); + end NULL_TO_BITMAP_CTL; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t is + begin + return ((others => '0'), (others => '0'), (others => '0')); + end NULL_TO_TILEMAP_CTL; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t is + begin + return ((others => (others => '0')), + (others => (others => '0')), + (others => (others => '0')), + '0', '0', NULL_RGB); + end NULL_TO_GRAPHICS; + +end package body video_controller_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_mixer.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_mixer.vhd new file mode 100644 index 00000000..fb4b4aa4 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_mixer.vhd @@ -0,0 +1,66 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity pace_video_mixer is + port + ( + --bitmap_rgb : in RGB_t; + --bitmap_set : in std_logic; + bitmap_ctl_o : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_o : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + sprite_rgb : in RGB_t; + sprite_set : in std_logic; + sprite_pri : in std_logic; + + video_ctl_i : in from_VIDEO_CTL_t; + graphics_i : in to_GRAPHICS_t; + rgb_o : out RGB_t + ); +end entity pace_video_mixer; + +architecture SYN of pace_video_mixer is + signal bg_rgb : RGB_t; +begin + + GEN_BITMAPS : + if PACE_VIDEO_NUM_BITMAPS = 1 generate + bg_rgb <= bitmap_ctl_o(1).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 2 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 3 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb when bitmap_ctl_o(2).set = '1' else + bitmap_ctl_o(3).rgb when bitmap_ctl_o(3).set = '1' else + (others => (others => '0')); + else generate + bg_rgb <= (others => (others => '0')); + end generate GEN_BITMAPS; + + GEN_TILEMAPS : + if PACE_VIDEO_NUM_TILEMAPS = 1 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + elsif PACE_VIDEO_NUM_TILEMAPS = 2 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + tilemap_ctl_o(2).rgb when tilemap_ctl_o(2).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + else generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + end generate GEN_TILEMAPS; + +end architecture SYN; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf index 317e418d..7e0b14c7 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf @@ -266,10 +266,10 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - 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_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top # end DESIGN_PARTITION(Top) # ------------------------- # end ENTITY(LodeRunner_MiST) -# --------------------------- \ No newline at end of file +# --------------------------- +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD index 8dc75400..dc3fb666 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD @@ -269,5 +269,4 @@ begin sprite_ctl_o <= sprite_ctl_o_s; - end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv index bbc4ef58..a244cfc1 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv @@ -40,7 +40,10 @@ localparam CONF_STR = { "V,v1.0.",`BUILD_DATE }; - +wire rotate = status[2]; +wire [1:0] scanlines = status[4:3]; +wire blend = status[5]; +wire service = status[6]; assign LED = ~ioctl_downl; assign SDRAM_CLK = clk_sd; @@ -65,21 +68,39 @@ wire [7:0] joystick_0; wire [7:0] joystick_1; wire scandoublerD; wire ypbpr; -wire [11:0] audio; -wire hs, vs; -wire blankn = 1'b1;//todo -wire [3:0] g,b,r; +wire no_csync; wire key_pressed; wire [7:0] key_code; wire key_strobe; +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 ), + .no_csync (no_csync ), + .key_strobe (key_strobe ), + .key_pressed (key_pressed ), + .key_code (key_code ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), + .status (status ) + ); + wire [14:0] rom_addr; wire [15:0] rom_do; wire [13:0] snd_addr; wire [15:0] snd_do; - wire [14:0] sp_addr; wire [31:0] sp_do; @@ -165,15 +186,20 @@ always @(posedge clk_sys) begin end +wire [11:0] audio; +wire hs, vs; +wire blankn = 1'b1;//todo +wire [3:0] g,b,r; + target_top target_top( - .clock_50(clk_sys),//40MHz - .clock_vid(clk_vid),//25.263158MHz + .clock_sys(clk_sys),//4xclk_vid + .clock_vid(clk_vid),//11MHz .clk_aud(clk_aud),//0.895MHz .reset_in(reset), .audio_out(audio), .usr_coin1(m_coin1), .usr_coin2(m_coin2), - .usr_service(status[6]), + .usr_service(service), .usr_start1(m_one_player), .usr_start2(m_two_players), .p1_up(m_up), @@ -188,18 +214,18 @@ target_top target_top( .p2_rt(m_right2), .p2_f1(m_fire2A), .p2_f2(m_fire2B), - .VGA_VS(hs), - .VGA_HS(vs), - .VGA_R(r), - .VGA_G(g), - .VGA_B(b), + .VGA_VS(vs), + .VGA_HS(hs), + .VGA_R(r), + .VGA_G(g), + .VGA_B(b), .cpu_rom_addr(rom_addr), .cpu_rom_do( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ), .snd_rom_addr(snd_addr), - .snd_rom_do(snd_addr[0] ? snd_do[15:8] : snd_do[7:0]) + .snd_rom_do(snd_addr[0] ? snd_do[15:8] : snd_do[7:0]) ); -mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(9)) mist_video( +mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video( .clk_sys ( clk_sys ), .SPI_SCK ( SPI_SCK ), .SPI_SS3 ( SPI_SS3 ), @@ -214,33 +240,13 @@ mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(9)) mist_video( .VGA_B ( VGA_B ), .VGA_VS ( VGA_VS ), .VGA_HS ( VGA_HS ), - .rotate ( { 1'b1, status[2] } ), - .ce_divider ( 1'b1 ), - .scandoubler_disable( 1),//scandoublerD ), - .scanlines ( status[4:3] ), - .blend ( status[5] ), - .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 ), - .status (status ) + .rotate ( { 1'b1, rotate } ), + .ce_divider ( 1'b0 ), + .scandoubler_disable( scandoublerD ), + .scanlines ( scanlines ), + .blend ( blend ), + .ypbpr ( ypbpr ), + .no_csync ( no_csync ) ); wire dac_o; @@ -267,7 +273,7 @@ arcade_inputs inputs ( .key_code ( key_code ), .joystick_0 ( joystick_0 ), .joystick_1 ( joystick_1 ), - .rotate ( status[2] ), + .rotate ( rotate ), .orientation ( 2'b10 ), .joyswap ( 1'b0 ), .oneplayer ( 1'b1 ), diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd index 2ba93794..abcb4631 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd @@ -178,7 +178,7 @@ cpu_di <= port2_ddr when ports_cs = '1' and cpu_addr(3 downto 0) = X"1" else port1_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"2" else port2_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"3" else - rom_do when rom_cs = '1' else X"55"; + snd_rom_do when rom_cs = '1' else X"55"; process (clock_E) begin @@ -346,14 +346,9 @@ port map( test_cc => open ); -rom_cpu : entity work.snd_prg -port map( - clk => clock_E, -- E clock input (falling edge) - addr => cpu_addr(13 downto 0), - data => rom_do -); --- snd_rom_addr <= cpu_addr(13 downto 0); + + snd_rom_addr <= cpu_addr(13 downto 0); -- cpu wram diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd index cc47e1a0..7e2c8831 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd @@ -8,62 +8,41 @@ use work.platform_variant_pkg.all; use work.video_controller_pkg.all; package platform_pkg is - constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_VGA_640x480_60Hz; - constant PACE_CLK0_DIVIDE_BY : natural := 3; - constant PACE_CLK0_MULTIPLY_BY : natural := 5; -- 24*5/3 = 40MHz - constant PACE_CLK1_DIVIDE_BY : natural := 19; - constant PACE_CLK1_MULTIPLY_BY : natural := 20; -- 24*20/19 = 25.263158MHz - constant PACE_VIDEO_H_SCALE : integer := 1; - constant PACE_VIDEO_V_SCALE : integer := 1; - constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '0'; - constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '0'; --- constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_ARCADE_STD_336x240_60Hz; --- constant PACE_CLK0_DIVIDE_BY : natural := 1; --- constant PACE_CLK0_MULTIPLY_BY : natural := 1; -- 24*1/1 = 24MHz --- constant PACE_CLK1_DIVIDE_BY : natural := 57; --- constant PACE_CLK1_MULTIPLY_BY : natural := 17; -- 24*17/57 = 7.157895MHz --- constant PACE_VIDEO_H_SCALE : integer := 1; --- constant PACE_VIDEO_V_SCALE : integer := 1; --- constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '0'; --- constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '0'; - - --constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_CVBS_720x288p_50Hz; - --constant PACE_CLK0_DIVIDE_BY : natural := 8; - --constant PACE_CLK0_MULTIPLY_BY : natural := 9; -- 24*9/8 = 27MHz - --constant PACE_CLK1_DIVIDE_BY : natural := 16; - --constant PACE_CLK1_MULTIPLY_BY : natural := 9; -- 24*9/16 = 13.5MHz - --constant PACE_VIDEO_H_SCALE : integer := 2; - --constant PACE_VIDEO_V_SCALE : integer := 1; - --constant PACE_ENABLE_ADV724 : std_logic := '1'; - --constant USE_VIDEO_VBLANK_INTERRUPT : boolean := false; + constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_PAL_576x288_50Hz; + constant PACE_CLK0_DIVIDE_BY : natural := 27; + constant PACE_CLK0_MULTIPLY_BY : natural := 44; -- 27*44/27 = 44MHz + constant PACE_CLK1_DIVIDE_BY : natural := 27; + constant PACE_CLK1_MULTIPLY_BY : natural := 11; -- 27*11/27 = 11MHz + constant PACE_VIDEO_H_SCALE : integer := 1; + constant PACE_VIDEO_V_SCALE : integer := 1; + constant PACE_ENABLE_ADV724 : std_logic := '1'; + constant USE_VIDEO_VBLANK_INTERRUPT : boolean := false; + constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '1'; + constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '1'; constant PACE_VIDEO_BORDER_RGB : RGB_t := RGB_BLACK; constant M62_VIDEO_H_SIZE : integer := 384; - constant M62_VIDEO_H_OFFSET : integer := (512-M62_VIDEO_H_SIZE)/2; + constant M62_VIDEO_H_OFFSET : integer := (512-M62_VIDEO_H_SIZE)/2; constant M62_VIDEO_V_SIZE : integer := 256; - - constant PACE_VIDEO_NUM_BITMAPS : natural := 0; - constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; - constant PACE_VIDEO_NUM_SPRITES : natural := 32; - constant PACE_VIDEO_H_SIZE : integer := M62_VIDEO_H_SIZE; - constant PACE_VIDEO_V_SIZE : integer := M62_VIDEO_V_SIZE; - constant PACE_VIDEO_L_CROP : integer := 0; - constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; - constant PACE_VIDEO_PIPELINE_DELAY : integer := 5; - - constant PACE_INPUTS_NUM_BYTES : integer := 6; - - constant CLK0_FREQ_MHz : natural := - 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; - constant CPU_FREQ_MHz : natural := 3; - - constant M62_CPU_CLK_ENA_DIVIDE_BY : natural := CLK0_FREQ_MHz / CPU_FREQ_MHz; - - - + constant PACE_VIDEO_NUM_BITMAPS : natural := 0; + constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; + constant PACE_VIDEO_NUM_SPRITES : natural := 32; + constant PACE_VIDEO_H_SIZE : integer := M62_VIDEO_H_SIZE; + constant PACE_VIDEO_V_SIZE : integer := M62_VIDEO_V_SIZE; + constant PACE_VIDEO_L_CROP : integer := 0; + constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; + constant PACE_VIDEO_PIPELINE_DELAY : integer := 5; + + constant PACE_INPUTS_NUM_BYTES : integer := 6; + + constant CLK0_FREQ_MHz : natural := + 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; + constant CPU_FREQ_MHz : natural := 3; + + constant M62_CPU_CLK_ENA_DIVIDE_BY : natural := CLK0_FREQ_MHz / CPU_FREQ_MHz; type from_PLATFORM_IO_t is record not_used : std_logic; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd index 8e360627..ebe4c7e7 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd @@ -14,11 +14,11 @@ -- ************************************************************ -- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! -- --- 13.1.0 Build 162 10/23/2013 SJ Web Edition +-- 13.1.4 Build 182 03/12/2014 Patches 4.26 SJ Web Edition -- ************************************************************ ---Copyright (C) 1991-2013 Altera Corporation +--Copyright (C) 1991-2014 Altera Corporation --Your use of Altera Corporation's design tools, logic functions --and other software and tools, and its AMPP partner logic --functions, and any output files from any of the foregoing @@ -166,19 +166,19 @@ BEGIN bandwidth_type => "AUTO", clk0_divide_by => 27, clk0_duty_cycle => 50, - clk0_multiply_by => 40, + clk0_multiply_by => 44, clk0_phase_shift => "0", - clk1_divide_by => 43, + clk1_divide_by => 27, clk1_duty_cycle => 50, - clk1_multiply_by => 40, + clk1_multiply_by => 11, clk1_phase_shift => "0", - clk2_divide_by => 3, + clk2_divide_by => 27, clk2_duty_cycle => 50, - clk2_multiply_by => 8, + clk2_multiply_by => 88, clk2_phase_shift => "0", - clk3_divide_by => 5400, + clk3_divide_by => 9000, clk3_duty_cycle => 50, - clk3_multiply_by => 179, + clk3_multiply_by => 299, clk3_phase_shift => "0", compensate_clock => "CLK0", inclk0_input_frequency => 37037, @@ -262,17 +262,17 @@ END SYN; -- 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 "43" --- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "3" +-- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "27" -- Retrieval info: PRIVATE: DIV_FACTOR3 NUMERIC "27" -- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE3 STRING "50.00000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "40.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "25.116280" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "72.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "0.895000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "44.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "11.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "88.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "0.897000" -- 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" @@ -301,15 +301,15 @@ END SYN; -- Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" -- Retrieval info: PRIVATE: MIRROR_CLK2 STRING "0" -- Retrieval info: PRIVATE: MIRROR_CLK3 STRING "0" --- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "40" --- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "40" --- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "8" +-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "44" +-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "11" +-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "88" -- Retrieval info: PRIVATE: MULT_FACTOR3 NUMERIC "1" -- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" --- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "40.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "25.26315800" --- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "72.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "0.89500000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "44.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "11.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "88.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "0.89700000" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" @@ -371,19 +371,19 @@ END SYN; -- 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_MULTIPLY_BY NUMERIC "44" -- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "43" +-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "27" -- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "40" +-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "11" -- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "3" +-- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "27" -- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "8" +-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "88" -- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "5400" +-- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "9000" -- Retrieval info: CONSTANT: CLK3_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "179" +-- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "299" -- Retrieval info: CONSTANT: CLK3_PHASE_SHIFT STRING "0" -- Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" -- Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037" diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd index a4bbbccb..4064a09c 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd @@ -9,40 +9,40 @@ use work.video_controller_pkg.all; use work.platform_pkg.all; entity target_top is port( - clock_50 : in std_logic; + clock_sys : in std_logic; clock_vid : in std_logic; clk_aud : in std_logic; - reset_in : in std_logic; - audio_out : out std_logic_vector(11 downto 0); + reset_in : in std_logic; + audio_out : out std_logic_vector(11 downto 0); usr_coin1 : in std_logic; - usr_coin2 : in std_logic; - usr_service : in std_logic; - usr_start1 : in std_logic; - usr_start2 : in std_logic; - p1_up : in std_logic; - p1_dw : in std_logic; - p1_lt : in std_logic; - p1_rt : in std_logic; - p1_f1 : in std_logic; - p1_f2 : in std_logic; + usr_coin2 : in std_logic; + usr_service : in std_logic; + usr_start1 : in std_logic; + usr_start2 : in std_logic; + p1_up : in std_logic; + p1_dw : in std_logic; + p1_lt : in std_logic; + p1_rt : in std_logic; + p1_f1 : in std_logic; + p1_f2 : in std_logic; - p2_up : in std_logic; - p2_dw : in std_logic; - p2_lt : in std_logic; - p2_rt : in std_logic; - p2_f1 : in std_logic; - p2_f2 : in std_logic; - - VGA_VS : out std_logic; - VGA_HS : out std_logic; - VGA_R : out std_logic_vector(3 downto 0); - VGA_G : out std_logic_vector(3 downto 0); - VGA_B : out std_logic_vector(3 downto 0); - cpu_rom_addr : out std_logic_vector(14 downto 0); - cpu_rom_do : in std_logic_vector(7 downto 0); - snd_rom_addr : out std_logic_vector(13 downto 0); - snd_rom_do : in std_logic_vector(7 downto 0) - ); + p2_up : in std_logic; + p2_dw : in std_logic; + p2_lt : in std_logic; + p2_rt : in std_logic; + p2_f1 : in std_logic; + p2_f2 : in std_logic; + + VGA_VS : out std_logic; + VGA_HS : out std_logic; + VGA_R : out std_logic_vector(3 downto 0); + VGA_G : out std_logic_vector(3 downto 0); + VGA_B : out std_logic_vector(3 downto 0); + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + snd_rom_addr : out std_logic_vector(13 downto 0); + snd_rom_do : in std_logic_vector(7 downto 0) + ); end target_top; architecture SYN of target_top is @@ -59,7 +59,7 @@ architecture SYN of target_top is signal sound_data : std_logic_vector(7 downto 0); begin - clkrst_i.clk(0) <= clock_50; + clkrst_i.clk(0) <= clock_sys; clkrst_i.clk(1) <= clock_vid; clkrst_i.arst <= reset_in; clkrst_i.arst_n <= not clkrst_i.arst; @@ -93,7 +93,7 @@ end generate GEN_RESETS; -- select_sound => sound_data, -- audio_out => audio_out, -- snd_rom_addr => snd_rom_addr, --- snd_rom_do => snd_rom_do, + -- snd_rom_do => snd_rom_do, -- dbg_cpu_addr => open -- ); @@ -140,8 +140,6 @@ pace_inst : entity work.pace -- not currently wired to any inputs inputs_i.jamma_n.coin_cnt <= (others => '1'); --- inputs_i.jamma_n.coin(2) <= '1'; --- inputs_i.jamma_n.service <= '1'; inputs_i.jamma_n.tilt <= '1'; inputs_i.jamma_n.test <= '1'; end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd index 14da0c20..9372578d 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd @@ -258,6 +258,16 @@ begin v_back_porch_r <= 13; v_border_r <= (240-VIDEO_V_SIZE)/2; + when PACE_VIDEO_PAL_576x288_50Hz => + -- pixclk=11 MHz + h_front_porch_r <= 2*6; + h_sync_r <= 2*28; + h_back_porch_r <= 2*30; + h_border_r <= (576-VIDEO_H_SIZE)/2; + v_front_porch_r <= 8; + v_sync_r <= 3; + v_back_porch_r <= 13; + v_border_r <= (288-VIDEO_V_SIZE)/2; when others => null; end case; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd index 183bfe23..526be3c8 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd @@ -21,7 +21,8 @@ package video_controller_pkg is PACE_VIDEO_ARCADE_STD_336x240_60Hz, -- arcade std resolution (7.16MHz) PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64, -- arcade std resolution (28.64MHz) PACE_VIDEO_CVBS_720x288p_50Hz, -- generic composite - PACE_VIDEO_LCM_320x240_60Hz -- DE2 LCD + PACE_VIDEO_LCM_320x240_60Hz, -- DE2 LCD + PACE_VIDEO_PAL_576x288_50Hz ); type PACEVideoDisplay_t is diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qpf b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qpf new file mode 100644 index 00000000..bd3ad814 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2011 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 +# Version 10.1 Build 197 01/19/2011 Service Pack 1 SJ Full Version +# Date created = 11:47:13 October 18, 2011 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "10.1" +DATE = "11:47:13 October 18, 2011" + +# Revisions + +PROJECT_REVISION = "Sonson_MiST" diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qsf b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qsf new file mode 100644 index 00000000..7c7f9830 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qsf @@ -0,0 +1,269 @@ +# -------------------------------------------------------------------------- # +# +# 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 = 21:06:00 February 29, 2020 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# Sonson_MiST_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + + +# Project-Wide Assignments +# ======================== +set_global_assignment -name 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" +set_global_assignment -name SMART_RECOMPILE ON + +# 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 +set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON + +# Analysis & Synthesis Assignments +# ================================ +set_global_assignment -name FAMILY "Cyclone III" +set_global_assignment -name TOP_LEVEL_ENTITY SonSon_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 +set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED +set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON +set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE ON +set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 +set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF +set_global_assignment -name SEARCH_PATH common/CPU/T80/ -tag from_archive +set_global_assignment -name SEARCH_PATH common/mist/ -tag from_archive +set_global_assignment -name SEARCH_PATH rtl/ -tag from_archive + +# 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" +set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" +set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON +set_global_assignment -name FITTER_EFFORT "STANDARD FIT" + +# Assembler Assignments +# ===================== +set_global_assignment -name GENERATE_RBF_FILE ON +set_global_assignment -name USE_CONFIGURATION_DEVICE OFF + +# SignalTap II Assignments +# ======================== +set_global_assignment -name ENABLE_SIGNALTAP OFF +set_global_assignment -name USE_SIGNALTAP_FILE output_files/mcr3.stp + +# Power Estimation Assignments +# ============================ +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR" +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(LodeRunner_MiST) + + # Pin & Location Assignments + # ========================== + + # Fitter Assignments + # ================== + + # start DESIGN_PARTITION(Top) + # --------------------------- + + # Incremental Compilation Assignments + # =================================== + + # end DESIGN_PARTITION(Top) + # ------------------------- + +# end ENTITY(LodeRunner_MiST) +# --------------------------- +set_global_assignment -name SYSTEMVERILOG_FILE rtl/SonSon_MiST.sv +set_global_assignment -name VHDL_FILE rtl/target_top.vhd +set_global_assignment -name VHDL_FILE rtl/platform_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/platform.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/pace.vhd +set_global_assignment -name VHDL_FILE rtl/Graphics.VHD +set_global_assignment -name VHDL_FILE rtl/video_mixer.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl.vhd +set_global_assignment -name VHDL_FILE rtl/spritereg.vhd +set_global_assignment -name VHDL_FILE rtl/spritectl.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_array.vhd +set_global_assignment -name VHDL_FILE rtl/bitmapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/cpu09s.vhd +set_global_assignment -name VHDL_FILE rtl/sound.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/YM2149.sv +set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv +set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd +set_global_assignment -name VHDL_FILE rtl/dprom_2r.vhd +set_global_assignment -name VHDL_FILE rtl/dpram.vhd +set_global_assignment -name VHDL_FILE rtl/spram.vhd +set_global_assignment -name VHDL_FILE rtl/sprom.vhd +set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip +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_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_A[*] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[0] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[1] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQMH +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQML +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nRAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nWE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCS +set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_A[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQ[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_BA[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQML +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQMH +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nRAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nWE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CKE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CLK +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_HS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_VS +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_L +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_R +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to SPI_DO +set_global_assignment -name VERILOG_FILE "rtl/mc6809-master/mc6809i.v" +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/clean.bat b/Arcade_MiST/SonSon Hardware/Sonson_MiST/clean.bat new file mode 100644 index 00000000..c9a2cb06 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/clean.bat @@ -0,0 +1,15 @@ +@echo off +del /s *.bak +del /s *.orig +del /s *.rej +rmdir /s /q db +rmdir /s /q incremental_db +rmdir /s /q output +rmdir /s /q simulation +rmdir /s /q greybox_tmp +del PLLJ_PLLSPE_INFO.txt +del *.qws +del *.ppf +del *.qip +del *.ddb +pause diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/Graphics.VHD b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/Graphics.VHD new file mode 100644 index 00000000..9b3d355e --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/Graphics.VHD @@ -0,0 +1,270 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.std_logic_arith.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity Graphics is + port + ( + bitmap_ctl_i : in to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_ctl_o : out from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_i : in to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_ctl_o : out from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_i : in to_SPRITE_REG_t; + sprite_ctl_i : in to_SPRITE_CTL_t; + sprite_ctl_o : out from_SPRITE_CTL_t; + spr0_hit : out std_logic; + + graphics_i : in to_GRAPHICS_t; + graphics_o : out from_GRAPHICS_t; + + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t + ); + +end Graphics; + +architecture SYN of Graphics is + + alias clk : std_logic is video_i.clk; + + signal from_video_ctl : from_VIDEO_CTL_t; + signal bitmap_ctl_o_s : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal tilemap_ctl_o_s : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal sprite_ctl_o_s : from_SPRITE_CTL_t; + signal sprite_pri : std_logic; + + signal rgb_data : RGB_t; + -- before OSD is mixed in + signal video_o_s : to_VIDEO_t; + +begin + + -- dodgy OSD transparency... + video_o.clk <= video_o_s.clk; + video_o.rgb.r <= video_o_s.rgb.r; + video_o.rgb.g <= video_o_s.rgb.g; + video_o.rgb.b <= video_o_s.rgb.b; + video_o.hsync <= video_o_s.hsync; + video_o.vsync <= video_o_s.vsync; + video_o.hblank <= video_o_s.hblank; + video_o.vblank <= video_o_s.vblank; + + graphics_o.y <= from_video_ctl.y; + -- should this be the 'real' vblank or the 'active' vblank? + -- - use the real for now + graphics_o.hblank <= video_o_s.hblank; + graphics_o.vblank <= video_o_s.vblank; + --graphics_o.vblank <= from_video_ctl.vblank; + + pace_video_controller_inst : entity work.pace_video_controller + generic map + ( + CONFIG => PACE_VIDEO_CONTROLLER_TYPE, + DELAY => PACE_VIDEO_PIPELINE_DELAY, + H_SIZE => PACE_VIDEO_H_SIZE, + V_SIZE => PACE_VIDEO_V_SIZE, + L_CROP => PACE_VIDEO_L_CROP, + R_CROP => PACE_VIDEO_R_CROP, + H_SCALE => PACE_VIDEO_H_SCALE, + V_SCALE => PACE_VIDEO_V_SCALE, + H_SYNC_POL => PACE_VIDEO_H_SYNC_POLARITY, + V_SYNC_POL => PACE_VIDEO_V_SYNC_POLARITY, + BORDER_RGB => PACE_VIDEO_BORDER_RGB + ) + port map + ( + -- clocking etc + video_i => video_i, + + -- register interface + reg_i.h_scale => "000", + reg_i.v_scale => "000", + -- video data signals (in) + rgb_i => rgb_data, + + -- video control signals (out) + video_ctl_o => from_video_ctl, + + -- VGA signals (out) + video_o => video_o_s + ); + + pace_video_mixer_inst : entity work.pace_video_mixer + port map + ( + bitmap_ctl_o => bitmap_ctl_o_s, + tilemap_ctl_o => tilemap_ctl_o_s, + sprite_rgb => sprite_ctl_o_s.rgb, + sprite_set => sprite_ctl_o_s.set, + sprite_pri => sprite_pri, + + video_ctl_i => from_video_ctl, + graphics_i => graphics_i, + rgb_o => rgb_data + ); + + GEN_NO_BITMAPS : if PACE_VIDEO_NUM_BITMAPS = 0 generate + --bitmap_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + end generate GEN_NO_BITMAPS; + + GEN_BITMAP_1 : if PACE_VIDEO_NUM_BITMAPS > 0 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(1), + ctl_o => bitmap_ctl_o_s(1), + + graphics_i => graphics_i + ); + end generate GEN_BITMAP_1; + + GEN_BITMAP_2 : if PACE_VIDEO_NUM_BITMAPS > 1 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(2), + ctl_o => bitmap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_2; + + GEN_BITMAP_3 : if PACE_VIDEO_NUM_BITMAPS > 2 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_3) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(3), + ctl_o => bitmap_ctl_o_s(3), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_3; + + bitmap_ctl_o <= bitmap_ctl_o_s; + + GEN_NO_TILEMAPS : if PACE_VIDEO_NUM_TILEMAPS = 0 generate + --tilemap_ctl_o_s(1) <= ((others => '0'), (others => '0'), (others => '0'), + -- (others => (others => '0')), '0'); + end generate GEN_NO_TILEMAPS; + + GEN_TILEMAP_1 : if PACE_VIDEO_NUM_TILEMAPS > 0 generate + + foreground_mapctl_inst : entity work.tilemapCtl(TILEMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(1), + ctl_o => tilemap_ctl_o_s(1), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_1; + + GEN_TILEMAP_2 : if PACE_VIDEO_NUM_TILEMAPS > 1 generate + + background_mapctl_inst : entity work.tilemapCtl(TILEMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(2), + ctl_o => tilemap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_2; + + tilemap_ctl_o <= tilemap_ctl_o_s; + + GEN_NO_SPRITES : if PACE_VIDEO_NUM_SPRITES = 0 generate + sprite_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + sprite_pri <= '0'; + spr0_hit <= '0'; + end generate GEN_NO_SPRITES; + + GEN_SPRITES : if PACE_VIDEO_NUM_SPRITES > 0 generate + + sprites_inst : sprite_array + generic map + ( + N_SPRITES => PACE_VIDEO_NUM_SPRITES, + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + -- register interface + reg_i => sprite_reg_i, + + -- video control signals + video_ctl => from_video_ctl, + + graphics_i => graphics_i, + + row_a => sprite_ctl_o_s.a, + row_d => sprite_ctl_i.d, + + rgb => sprite_ctl_o_s.rgb, + set => sprite_ctl_o_s.set, + pri => sprite_pri, + spr0_set => spr0_hit + ); + + end generate GEN_SPRITES; + + sprite_ctl_o <= sprite_ctl_o_s; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/SonSon_MiST.sv b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/SonSon_MiST.sv new file mode 100644 index 00000000..51c1cb8f --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/SonSon_MiST.sv @@ -0,0 +1,281 @@ +module SonSon_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 = { + "SONSON;ROM;", + "O2,Rotate Controls,Off,On;", + "O34,Scanlines,Off,25%,50%,75%;", + "O5,Blending,Off,On;", + "O6,Freeze,Off,On;", + "O7,Flip,Off,On;", + "O8,Test,Off,On;", + "T0,Reset;", + "V,v1.0.",`BUILD_DATE +}; + +wire rotate = status[2]; +wire [1:0] scanlines = status[4:3]; +wire blend = status[5]; +wire freeze = status[6]; +wire flip = status[7]; +wire test = status[8]; + +assign LED = ~ioctl_downl; +assign SDRAM_CKE = 1; + +wire clk_sys, clk_vid; +wire pll_locked; +pll_mist pll( + .inclk0(CLOCK_27), + .areset(0), + .c0(clk_sys),//20 + .c1(clk_vid),//40 + .c2(SDRAM_CLK), + .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 no_csync; +wire key_pressed; +wire [7:0] key_code; +wire key_strobe; + +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 ), + .no_csync (no_csync ), + .key_strobe (key_strobe ), + .key_pressed (key_pressed ), + .key_code (key_code ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), + .status (status ) + ); + +wire [15:0] cpu_rom_addr; +//wire [15:0] rom_addr; +wire [15:0] rom_do; + +wire [12:0] tile_rom_addr; +//wire [12:0] tile_addr; +wire [15:0] tile_do; + +wire [14:0] sp_addr; //todo +wire [31:0] sp_do; //todo + +wire ioctl_downl; +wire [7:0] ioctl_index; +wire ioctl_wr; +wire [24:0] ioctl_addr; +wire [7:0] ioctl_dout; + +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 ) +); + +wire [24:0] sp_ioctl_addr = ioctl_addr - 17'h10000; //todo + +reg port1_req, port2_req; +sdram sdram( + .*, + .init_n ( pll_locked ), + .clk ( SDRAM_CLK ), + + // port1 used for main + sound CPU + .port1_req ( port1_req ), + .port1_ack ( ), + .port1_a ( ioctl_addr[23:1] ), + .port1_ds ( {ioctl_addr[0], ~ioctl_addr[0]} ), + .port1_we ( ioctl_downl ), + .port1_d ( {ioctl_dout, ioctl_dout} ), + .port1_q ( ), + + .cpu1_addr ( ioctl_downl ? 16'hffff : {1'b0, cpu_rom_addr[15:1]} ), + .cpu1_q ( rom_do ), + .cpu2_addr ( ioctl_downl ? 16'hffff : (16'h6000 + tile_rom_addr[12:1]) ), + .cpu2_q ( tile_do ), + + // port2 for sprite graphics + .port2_req ( port2_req ), + .port2_ack ( ), + .port2_a ( {sp_ioctl_addr[23:1]} ), + .port2_ds ( {sp_ioctl_addr[0], ~sp_ioctl_addr[0]} ), + .port2_we ( ioctl_downl ), + .port2_d ( {ioctl_dout, ioctl_dout} ), + .port2_q ( ), + + .sp_addr ( ioctl_downl ? 15'h7fff : sp_addr ), + .sp_q ( sp_do ) +); + +// ROM download controller +always @(posedge clk_sys) begin + reg ioctl_wr_last = 0; + ioctl_wr_last <= ioctl_wr; + if (ioctl_downl) begin + if (~ioctl_wr_last && ioctl_wr) begin + port1_req <= ~port1_req; + port2_req <= ~port2_req; + end + end + // async clock domain crossing here (clk_snd -> clk_sys) +end + +// reset signal generation +reg reset = 1; +reg rom_loaded = 0; +always @(posedge clk_sys) begin + reg ioctl_downlD; + reg [15:0] reset_count; + ioctl_downlD <= ioctl_downl; + + if (status[0] | buttons[1] | ~rom_loaded) reset_count <= 16'hffff; + else if (reset_count != 0) reset_count <= reset_count - 1'd1; + + if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1; + reset <= reset_count != 16'h0000; + +end + +wire [11:0] audio; +wire hs, vs, hb, vb; +wire blankn = ~(hb | vb); +wire [3:0] g,b,r; +wire vma; +target_top target_top( + .clk_sys(clk_sys), + .clk_vid(clk_vid), + .reset_in(reset), + .vma(vma), + .snd_l(), + .snd_r(), + .vid_hs(hs), + .vid_vs(vs), + .vid_hb(hb), + .vid_vb(vb), + .vid_r(r), + .vid_g(g), + .vid_b(b), + + .inputs_p1(~{2'b00,m_down,m_up,m_right,m_left,1'b0,m_fireC}), + .inputs_p2(~{2'b00,m_down2,m_up2,m_right2,m_left2,1'b0,m_fire2C}), + .inputs_sys(~{2'b00,m_coin2,m_coin1,2'b00,m_two_players,m_one_player}), + .inputs_dip1(~{flip,test,"011111"}), + .inputs_dip2(~{freeze,"1111111"}), + .cpu_rom_addr(cpu_rom_addr), + .cpu_rom_do(cpu_rom_addr[0] ? rom_do[15:8] : rom_do[7:0]), + .tile_rom_addr(tile_rom_addr), + .tile_rom_do(tile_do) + ); + +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 ), + .rotate ( { 1'b1, rotate } ), + .ce_divider ( 1'b0 ), + .scandoubler_disable( 1),// scandoublerD ), + .scanlines ( scanlines ), + .blend ( blend ), + .ypbpr ( ypbpr ), + .no_csync ( no_csync ) + ); + +wire dac_o; +assign AUDIO_L = dac_o; +assign AUDIO_R = dac_o; + +dac #( + .C_bits(12)) +dac( + .clk_i(clk_sys), + .res_n_i(1), + .dac_i(audio), + .dac_o(dac_o) + ); + +wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF; +wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F; +wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players; + +arcade_inputs inputs ( + .clk ( clk_sys ), + .key_strobe ( key_strobe ), + .key_pressed ( key_pressed ), + .key_code ( key_code ), + .joystick_0 ( joystick_0 ), + .joystick_1 ( joystick_1 ), + .rotate ( rotate ), + .orientation ( 2'b10 ), + .joyswap ( 1'b0 ), + .oneplayer ( 1'b1 ), + .controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ), + .player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ), + .player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} ) +); + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/YM2149.sv b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/YM2149.sv new file mode 100644 index 00000000..eae73bb3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/YM2149.sv @@ -0,0 +1,329 @@ +// +// Copyright (c) MikeJ - Jan 2005 +// Copyright (c) 2016-2018 Sorgelig +// +// 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. +// + + +// BDIR BC MODE +// 0 0 inactive +// 0 1 read value +// 1 0 write value +// 1 1 set address +// + +module YM2149 +( + input CLK, // Global clock + input CE, // PSG Clock enable + input RESET, // Chip RESET (set all Registers to '0', active hi) + input BDIR, // Bus Direction (0 - read , 1 - write) + input BC, // Bus control + input A8, + input A9_L, + input [7:0] DI, // Data In + output [7:0] DO, // Data Out + output [7:0] CHANNEL_A, // PSG Output channel A + output [7:0] CHANNEL_B, // PSG Output channel B + output [7:0] CHANNEL_C, // PSG Output channel C + + input SEL, + input MODE, + + output [5:0] ACTIVE, + + input [7:0] IOA_in, + output [7:0] IOA_out, + + input [7:0] IOB_in, + output [7:0] IOB_out +); + +assign ACTIVE = ~ymreg[7][5:0]; +assign IOA_out = ymreg[7][6] ? ymreg[14] : 8'hff; +assign IOB_out = ymreg[7][7] ? ymreg[15] : 8'hff; + +reg [7:0] addr; +reg [7:0] ymreg[16]; +wire cs = !A9_L & A8; + +// Write to PSG +reg env_reset; +always @(posedge CLK) begin + if(RESET) begin + ymreg <= '{default:0}; + ymreg[7] <= '1; + addr <= '0; + env_reset <= 0; + end else begin + env_reset <= 0; + if(cs & BDIR) begin + if(BC) addr <= DI; + else if(!addr[7:4]) begin + ymreg[addr[3:0]] <= DI; + env_reset <= (addr == 13); + end + end + end +end + +// Read from PSG +assign DO = dout; +reg [7:0] dout; +always_comb begin + dout = 8'hFF; + if(cs & ~BDIR & BC & !addr[7:4]) begin + case(addr[3:0]) + 0: dout = ymreg[0]; + 1: dout = ymreg[1][3:0]; + 2: dout = ymreg[2]; + 3: dout = ymreg[3][3:0]; + 4: dout = ymreg[4]; + 5: dout = ymreg[5][3:0]; + 6: dout = ymreg[6][4:0]; + 7: dout = ymreg[7]; + 8: dout = ymreg[8][4:0]; + 9: dout = ymreg[9][4:0]; + 10: dout = ymreg[10][4:0]; + 11: dout = ymreg[11]; + 12: dout = ymreg[12]; + 13: dout = ymreg[13][3:0]; + 14: dout = ymreg[7][6] ? ymreg[14] : IOA_in; + 15: dout = ymreg[7][7] ? ymreg[15] : IOB_in; + endcase + end +end + +reg ena_div; +reg ena_div_noise; + +// p_divider +always @(posedge CLK) begin + reg [3:0] cnt_div; + reg noise_div; + + if(CE) begin + ena_div <= 0; + ena_div_noise <= 0; + if(!cnt_div) begin + cnt_div <= {SEL, 3'b111}; + ena_div <= 1; + + noise_div <= (~noise_div); + if (noise_div) ena_div_noise <= 1; + end else begin + cnt_div <= cnt_div - 1'b1; + end + end +end + + +reg [2:0] noise_gen_op; + +// p_noise_gen +always @(posedge CLK) begin + reg [16:0] poly17; + reg [4:0] noise_gen_cnt; + + if(CE) begin + if (ena_div_noise) begin + if (!ymreg[6][4:0] || noise_gen_cnt >= ymreg[6][4:0] - 1'd1) begin + noise_gen_cnt <= 0; + poly17 <= {(poly17[0] ^ poly17[2] ^ !poly17), poly17[16:1]}; + end else begin + noise_gen_cnt <= noise_gen_cnt + 1'd1; + end + noise_gen_op <= {3{poly17[0]}}; + end + end +end + +wire [11:0] tone_gen_freq[1:3]; +assign tone_gen_freq[1] = {ymreg[1][3:0], ymreg[0]}; +assign tone_gen_freq[2] = {ymreg[3][3:0], ymreg[2]}; +assign tone_gen_freq[3] = {ymreg[5][3:0], ymreg[4]}; + +reg [3:1] tone_gen_op; + +//p_tone_gens +always @(posedge CLK) begin + integer i; + reg [11:0] tone_gen_cnt[1:3]; + + if(CE) begin + // looks like real chips count up - we need to get the Exact behaviour .. + + for (i = 1; i <= 3; i = i + 1) begin + if(ena_div) begin + if (tone_gen_freq[i]) begin + if (tone_gen_cnt[i] >= (tone_gen_freq[i] - 1'd1)) begin + tone_gen_cnt[i] <= 0; + tone_gen_op[i] <= ~tone_gen_op[i]; + end else begin + tone_gen_cnt[i] <= tone_gen_cnt[i] + 1'd1; + end + end else begin + tone_gen_op[i] <= ymreg[7][i]; + tone_gen_cnt[i] <= 0; + end + end + end + end +end + +reg env_ena; +wire [15:0] env_gen_comp = {ymreg[12], ymreg[11]} ? {ymreg[12], ymreg[11]} - 1'd1 : 16'd0; + +//p_envelope_freq +always @(posedge CLK) begin + reg [15:0] env_gen_cnt; + + if(CE) begin + env_ena <= 0; + if(ena_div) begin + if (env_gen_cnt >= env_gen_comp) begin + env_gen_cnt <= 0; + env_ena <= 1; + end else begin + env_gen_cnt <= (env_gen_cnt + 1'd1); + end + end + end +end + +reg [4:0] env_vol; + +wire is_bot = (env_vol == 5'b00000); +wire is_bot_p1 = (env_vol == 5'b00001); +wire is_top_m1 = (env_vol == 5'b11110); +wire is_top = (env_vol == 5'b11111); + +always @(posedge CLK) begin + reg env_hold; + reg env_inc; + + // 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 | RESET) begin + // load initial state + if(!ymreg[13][2]) begin // attack + env_vol <= 5'b11111; + env_inc <= 0; // -1 + end else begin + env_vol <= 5'b00000; + env_inc <= 1; // +1 + end + env_hold <= 0; + end + else if(CE) begin + if (env_ena) begin + if (!env_hold) begin + if (env_inc) env_vol <= (env_vol + 5'b00001); + else env_vol <= (env_vol + 5'b11111); + end + + // envelope shape control. + if(!ymreg[13][3]) begin + if(!env_inc) begin // down + if(is_bot_p1) env_hold <= 1; + end else if (is_top) env_hold <= 1; + end else if(ymreg[13][0]) begin // hold = 1 + if(!env_inc) begin // down + if(ymreg[13][1]) begin // alt + if(is_bot) env_hold <= 1; + end else if(is_bot_p1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alt + if(is_top) env_hold <= 1; + end else if(is_top_m1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alternate + if(env_inc == 1'b0) begin // down + if(is_bot_p1) env_hold <= 1; + if(is_bot) begin + env_hold <= 0; + env_inc <= 1; + end + end else begin + if(is_top_m1) env_hold <= 1; + if(is_top) begin + env_hold <= 0; + env_inc <= 0; + end + end + end + end + end +end + +reg [5:0] A,B,C; +always @(posedge CLK) begin + A <= {MODE, ~((ymreg[7][0] | tone_gen_op[1]) & (ymreg[7][3] | noise_gen_op[0])) ? 5'd0 : ymreg[8][4] ? env_vol[4:0] : { ymreg[8][3:0], ymreg[8][3]}}; + B <= {MODE, ~((ymreg[7][1] | tone_gen_op[2]) & (ymreg[7][4] | noise_gen_op[1])) ? 5'd0 : ymreg[9][4] ? env_vol[4:0] : { ymreg[9][3:0], ymreg[9][3]}}; + C <= {MODE, ~((ymreg[7][2] | tone_gen_op[3]) & (ymreg[7][5] | noise_gen_op[2])) ? 5'd0 : ymreg[10][4] ? env_vol[4:0] : {ymreg[10][3:0], ymreg[10][3]}}; +end + +wire [7:0] volTable[64] = '{ + //YM2149 + 8'h00, 8'h01, 8'h01, 8'h02, 8'h02, 8'h03, 8'h03, 8'h04, + 8'h06, 8'h07, 8'h09, 8'h0a, 8'h0c, 8'h0e, 8'h11, 8'h13, + 8'h17, 8'h1b, 8'h20, 8'h25, 8'h2c, 8'h35, 8'h3e, 8'h47, + 8'h54, 8'h66, 8'h77, 8'h88, 8'ha1, 8'hc0, 8'he0, 8'hff, + + //AY8910 + 8'h00, 8'h00, 8'h03, 8'h03, 8'h04, 8'h04, 8'h06, 8'h06, + 8'h0a, 8'h0a, 8'h0f, 8'h0f, 8'h15, 8'h15, 8'h22, 8'h22, + 8'h28, 8'h28, 8'h41, 8'h41, 8'h5b, 8'h5b, 8'h72, 8'h72, + 8'h90, 8'h90, 8'hb5, 8'hb5, 8'hd7, 8'hd7, 8'hff, 8'hff +}; + +assign CHANNEL_A = volTable[A]; +assign CHANNEL_B = volTable[B]; +assign CHANNEL_C = volTable[C]; + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/bitmapctl_e.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/bitmapctl_e.vhd new file mode 100644 index 00000000..8d309476 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/bitmapctl_e.vhd @@ -0,0 +1,29 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; + +entity bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity bitmapCtl; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/build_id.tcl b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/build_id.tcl new file mode 100644 index 00000000..938515d8 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_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/SonSon Hardware/Sonson_MiST/rtl/cpu09s.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/cpu09s.vhd new file mode 100644 index 00000000..e404bbdf --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/cpu09s.vhd @@ -0,0 +1,5679 @@ +--===========================================================================-- +-- -- +-- Synthesizable 6809 instruction compatible VHDL CPU core -- +-- -- +--===========================================================================-- +-- +-- File name : cpu09.vhd +-- +-- Entity name : cpu09 +-- +-- Purpose : 6809 instruction compatible CPU core written in VHDL +-- Not cycle compatible with the original 6809 CPU +-- +-- Dependencies : ieee.std_logic_1164 +-- ieee.std_logic_unsigned +-- +-- Author : John E. Kent +-- +-- Email : dilbert57@opencores.org +-- +-- Web : http://opencores.org/project,system09 +-- +-- +-- Copyright (C) 2003 - 2010 John Kent +-- +-- 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 3 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, see . +-- +--===========================================================================-- +-- -- +-- Revision History -- +-- -- +--===========================================================================-- +-- +-- Version 0.1 - 26 June 2003 - John Kent +-- Added extra level in state stack +-- fixed some calls to the extended addressing state +-- +-- Version 0.2 - 5 Sept 2003 - John Kent +-- Fixed 16 bit indexed offset (was doing read rather than fetch) +-- Added/Fixed STY and STS instructions. +-- ORCC_STATE ANDed CC state rather than ORed it - Now fixed +-- CMPX Loaded ACCA and ACCB - Now fixed +-- +-- Version 1.0 - 6 Sep 2003 - John Kent +-- Initial release to Open Cores +-- reversed clock edge +-- +-- Version 1.1 - 29 November 2003 John kent +-- ACCA and ACCB indexed offsets are 2's complement. +-- ALU Right Mux now sign extends ACCA & ACCB offsets +-- Absolute Indirect addressing performed a read on the +-- second byte of the address rather than a fetch +-- so it formed an incorrect address. Now fixed. +-- +-- Version 1.2 - 29 November 2003 John Kent +-- LEAX and LEAY affect the Z bit only +-- LEAS and LEAU do not affect any condition codes +-- added an extra ALU control for LEA. +-- +-- Version 1.3 - 12 December 2003 John Kent +-- CWAI did not work, was missed a PUSH_ST on calling +-- the ANDCC_STATE. Thanks go to Ghassan Kraidy for +-- finding this fault. +-- +-- Version 1.4 - 12 December 2003 John Kent +-- Missing cc_ctrl assignment in otherwise case of +-- lea_state resulted in cc_ctrl being latched in +-- that state. +-- The otherwise statement should never be reached, +-- and has been fixed simply to resolve synthesis warnings. +-- +-- Version 1.5 - 17 january 2004 John kent +-- The clear instruction used "alu_ld8" to control the ALU +-- rather than "alu_clr". This mean the Carry was not being +-- cleared correctly. +-- +-- Version 1.6 - 24 January 2004 John Kent +-- Fixed problems in PSHU instruction +-- +-- Version 1.7 - 25 January 2004 John Kent +-- removed redundant "alu_inx" and "alu_dex' +-- Removed "test_alu" and "test_cc" +-- STD instruction did not set condition codes +-- JMP direct was not decoded properly +-- CLR direct performed an unwanted read cycle +-- Bogus "latch_md" in Page2 indexed addressing +-- +-- Version 1.8 - 27 January 2004 John Kent +-- CWAI in decode1_state should increment the PC. +-- ABX is supposed to be an unsigned addition. +-- Added extra ALU function +-- ASR8 slightly changed in the ALU. +-- +-- Version 1.9 - 20 August 2005 +-- LSR8 is now handled in ASR8 and ROR8 case in the ALU, +-- rather than LSR16. There was a problem with single +-- operand instructions using the MD register which is +-- sign extended on the first 8 bit fetch. +-- +-- Version 1.10 - 13 September 2005 +-- TFR & EXG instructions did not work for the Condition Code Register +-- An extra case has been added to the ALU for the alu_tfr control +-- to assign the left ALU input (alu_left) to the condition code +-- outputs (cc_out). +-- +-- Version 1.11 - 16 September 2005 +-- JSR ,X should not predecrement S before calculating the jump address. +-- The reason is that JSR [0,S] needs S to point to the top of the stack +-- to fetch a valid vector address. The solution is to have the addressing +-- mode microcode called before decrementing S and then decrementing S in +-- JSR_STATE. JSR_STATE in turn calls PUSH_RETURN_LO_STATE rather than +-- PUSH_RETURN_HI_STATE so that both the High & Low halves of the PC are +-- pushed on the stack. This adds one extra bus cycle, but resolves the +-- addressing conflict. I've also removed the pre-decement S in +-- JSR EXTENDED as it also calls JSR_STATE. +-- +-- Version 1.12 - 6th June 2006 +-- 6809 Programming reference manual says V is not affected by ASR, LSR and ROR +-- This is different to the 6800. CLR should reset the V bit. +-- +-- Version 1.13 - 7th July 2006 +-- Disable NMI on reset until S Stack pointer has been loaded. +-- Added nmi_enable signal in sp_reg process and nmi_handler process. +-- +-- Version 1.14 - 11th July 2006 +-- 1. Added new state to RTI called rti_entire_state. +-- This state tests the CC register after it has been loaded +-- from the stack. Previously the current CC was tested which +-- was incorrect. The Entire Flag should be set before the +-- interrupt stacks the CC. +-- 2. On bogus Interrupts, int_cc_state went to rti_state, +-- which was an enumerated state, but not defined anywhere. +-- rti_state has been changed to rti_cc_state so that bogus interrupt +-- will perform an RTI after entering that state. +-- 3. Sync should generate an interrupt if the interrupt masks +-- are cleared. If the interrupt masks are set, then an interrupt +-- will cause the the PC to advance to the next instruction. +-- Note that I don't wait for an interrupt to be asserted for +-- three clock cycles. +-- 4. Added new ALU control state "alu_mul". "alu_mul" is used in +-- the Multiply instruction replacing "alu_add16". This is similar +-- to "alu_add16" except it sets the Carry bit to B7 of the result +-- in ACCB, sets the Zero bit if the 16 bit result is zero, but +-- does not affect The Half carry (H), Negative (N) or Overflow (V) +-- flags. The logic was re-arranged so that it adds md or zero so +-- that the Carry condition code is set on zero multiplicands. +-- 5. DAA (Decimal Adjust Accumulator) should set the Negative (N) +-- and Zero Flags. It will also affect the Overflow (V) flag although +-- the operation is undefined. It's anyones guess what DAA does to V. +-- +-- Version 1.15 - 25th Feb 2007 - John Kent +-- line 9672 changed "if Halt <= '1' then" to "if Halt = '1' then" +-- Changed sensitivity lists. +-- +-- Version 1.16 - 5th February 2008 - John Kent +-- FIRQ interrupts should take priority over IRQ Interrupts. +-- This presumably means they should be tested for before IRQ +-- when they happen concurrently. +-- +-- Version 1.17 - 18th February 2008 - John Kent +-- NMI in CWAI should mask IRQ and FIRQ interrupts +-- +-- Version 1.18 - 21st February 2008 - John Kent +-- Removed default register settings in each case statement +-- and placed them at the beginning of the state sequencer. +-- Modified the SYNC instruction so that the interrupt vector(iv) +-- is not set unless an unmasked FIRQ or IRQ is received. +-- +-- Version 1.19 - 25th February 2008 - John Kent +-- Enumerated separate states for FIRQ/FAST and NMIIRQ/ENTIRE +-- Enumerated separate states for MASKI and MASKIF states +-- Removed code on BSR/JSR in fetch cycle +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +entity cpu09 is + generic ( + CLK_POL : std_logic := '0' + ); + port ( + clk : in std_logic; + clk_en : in std_logic := '1'; + rst : in std_logic; + vma : out std_logic; + addr : out std_logic_vector(15 downto 0); + rw : out std_logic; + data_out : out std_logic_vector(7 downto 0); + data_in : in std_logic_vector(7 downto 0); + irq : in std_logic; + firq : in std_logic; + nmi : in std_logic; + halt : in std_logic; + hold : in std_logic + ); +end cpu09; + +architecture rtl of cpu09 is + + constant EBIT : integer := 7; + constant FBIT : integer := 6; + constant HBIT : integer := 5; + constant IBIT : integer := 4; + constant NBIT : integer := 3; + constant ZBIT : integer := 2; + constant VBIT : integer := 1; + constant CBIT : integer := 0; + + -- + -- Interrupt vector modifiers + -- + constant RST_VEC : std_logic_vector(2 downto 0) := "111"; + constant NMI_VEC : std_logic_vector(2 downto 0) := "110"; + constant SWI_VEC : std_logic_vector(2 downto 0) := "101"; + constant IRQ_VEC : std_logic_vector(2 downto 0) := "100"; + constant FIRQ_VEC : std_logic_vector(2 downto 0) := "011"; + constant SWI2_VEC : std_logic_vector(2 downto 0) := "010"; + constant SWI3_VEC : std_logic_vector(2 downto 0) := "001"; + constant RESV_VEC : std_logic_vector(2 downto 0) := "000"; + + type state_type is (-- Start off in Reset + reset_state, + -- Fetch Interrupt Vectors (including reset) + vect_lo_state, vect_hi_state, + -- Fetch Instruction Cycle + fetch_state, + -- Decode Instruction Cycles + decode1_state, decode2_state, decode3_state, + -- Calculate Effective Address + imm16_state, + indexed_state, index8_state, index16_state, index16_2_state, + pcrel8_state, pcrel16_state, pcrel16_2_state, + indexaddr_state, indexaddr2_state, + postincr1_state, postincr2_state, + indirect_state, indirect2_state, indirect3_state, + extended_state, + -- single ops + single_op_read_state, + single_op_exec_state, + single_op_write_state, + -- Dual op states + dual_op_read8_state, dual_op_read16_state, dual_op_read16_2_state, + dual_op_write8_state, dual_op_write16_state, + -- + sync_state, halt_state, error_state, + -- + andcc_state, orcc_state, + tfr_state, exg_state, exg1_state, + lea_state, + -- Multiplication + mul_state, mulea_state, muld_state, + mul0_state, mul1_state, mul2_state, mul3_state, + mul4_state, mul5_state, mul6_state, mul7_state, + -- Branches + lbranch_state, sbranch_state, + -- Jumps, Subroutine Calls and Returns + jsr_state, jmp_state, + push_return_hi_state, push_return_lo_state, + pull_return_hi_state, pull_return_lo_state, + -- Interrupt cycles + int_nmiirq_state, int_firq_state, + int_entire_state, int_fast_state, + int_pcl_state, int_pch_state, + int_upl_state, int_uph_state, + int_iyl_state, int_iyh_state, + int_ixl_state, int_ixh_state, + int_dp_state, + int_accb_state, int_acca_state, + int_cc_state, + int_cwai_state, + int_maski_state, int_maskif_state, + -- Return From Interrupt + rti_cc_state, rti_entire_state, + rti_acca_state, rti_accb_state, + rti_dp_state, + rti_ixl_state, rti_ixh_state, + rti_iyl_state, rti_iyh_state, + rti_upl_state, rti_uph_state, + rti_pcl_state, rti_pch_state, + -- Push Registers using SP + pshs_state, + pshs_pcl_state, pshs_pch_state, + pshs_upl_state, pshs_uph_state, + pshs_iyl_state, pshs_iyh_state, + pshs_ixl_state, pshs_ixh_state, + pshs_dp_state, + pshs_acca_state, pshs_accb_state, + pshs_cc_state, + -- Pull Registers using SP + puls_state, + puls_cc_state, + puls_acca_state, puls_accb_state, + puls_dp_state, + puls_ixl_state, puls_ixh_state, + puls_iyl_state, puls_iyh_state, + puls_upl_state, puls_uph_state, + puls_pcl_state, puls_pch_state, + -- Push Registers using UP + pshu_state, + pshu_pcl_state, pshu_pch_state, + pshu_spl_state, pshu_sph_state, + pshu_iyl_state, pshu_iyh_state, + pshu_ixl_state, pshu_ixh_state, + pshu_dp_state, + pshu_acca_state, pshu_accb_state, + pshu_cc_state, + -- Pull Registers using UP + pulu_state, + pulu_cc_state, + pulu_acca_state, pulu_accb_state, + pulu_dp_state, + pulu_ixl_state, pulu_ixh_state, + pulu_iyl_state, pulu_iyh_state, + pulu_spl_state, pulu_sph_state, + pulu_pcl_state, pulu_pch_state ); + + type stack_type is array(2 downto 0) of state_type; + type st_type is (idle_st, push_st, pull_st ); + type addr_type is (idle_ad, fetch_ad, read_ad, write_ad, pushu_ad, pullu_ad, pushs_ad, pulls_ad, int_hi_ad, int_lo_ad ); + type dout_type is (cc_dout, acca_dout, accb_dout, dp_dout, + ix_lo_dout, ix_hi_dout, iy_lo_dout, iy_hi_dout, + up_lo_dout, up_hi_dout, sp_lo_dout, sp_hi_dout, + pc_lo_dout, pc_hi_dout, md_lo_dout, md_hi_dout ); + type op_type is (reset_op, fetch_op, latch_op ); + type pre_type is (reset_pre, fetch_pre, latch_pre ); + type cc_type is (reset_cc, load_cc, pull_cc, latch_cc ); + type acca_type is (reset_acca, load_acca, load_hi_acca, pull_acca, latch_acca ); + type accb_type is (reset_accb, load_accb, pull_accb, latch_accb ); + type dp_type is (reset_dp, load_dp, pull_dp, latch_dp ); + type ix_type is (reset_ix, load_ix, pull_lo_ix, pull_hi_ix, latch_ix ); + type iy_type is (reset_iy, load_iy, pull_lo_iy, pull_hi_iy, latch_iy ); + type sp_type is (reset_sp, latch_sp, load_sp, pull_hi_sp, pull_lo_sp ); + type up_type is (reset_up, latch_up, load_up, pull_hi_up, pull_lo_up ); + type pc_type is (reset_pc, latch_pc, load_pc, pull_lo_pc, pull_hi_pc, incr_pc ); + type md_type is (reset_md, latch_md, load_md, fetch_first_md, fetch_next_md, shiftl_md ); + type ea_type is (reset_ea, latch_ea, load_ea, fetch_first_ea, fetch_next_ea ); + type iv_type is (latch_iv, reset_iv, nmi_iv, irq_iv, firq_iv, swi_iv, swi2_iv, swi3_iv, resv_iv); + type nmi_type is (reset_nmi, set_nmi, latch_nmi ); + type left_type is (cc_left, acca_left, accb_left, dp_left, + ix_left, iy_left, up_left, sp_left, + accd_left, md_left, pc_left, ea_left ); + type right_type is (ea_right, zero_right, one_right, two_right, + acca_right, accb_right, accd_right, + md_right, md_sign5_right, md_sign8_right ); + type alu_type is (alu_add8, alu_sub8, alu_add16, alu_sub16, alu_adc, alu_sbc, + alu_and, alu_ora, alu_eor, + alu_tst, alu_inc, alu_dec, alu_clr, alu_neg, alu_com, + alu_lsr16, alu_lsl16, + alu_ror8, alu_rol8, alu_mul, + alu_asr8, alu_asl8, alu_lsr8, + alu_andcc, alu_orcc, alu_sex, alu_tfr, alu_abx, + alu_seif, alu_sei, alu_see, alu_cle, + alu_ld8, alu_st8, alu_ld16, alu_st16, alu_lea, alu_nop, alu_daa ); + + signal op_code: std_logic_vector(7 downto 0); + signal pre_code: std_logic_vector(7 downto 0); + signal acca: std_logic_vector(7 downto 0); + signal accb: std_logic_vector(7 downto 0); + signal cc: std_logic_vector(7 downto 0); + signal cc_out: std_logic_vector(7 downto 0); + signal dp: std_logic_vector(7 downto 0); + signal xreg: std_logic_vector(15 downto 0); + signal yreg: std_logic_vector(15 downto 0); + signal sp: std_logic_vector(15 downto 0); + signal up: std_logic_vector(15 downto 0); + signal ea: std_logic_vector(15 downto 0); + signal pc: std_logic_vector(15 downto 0); + signal md: std_logic_vector(15 downto 0); + signal left: std_logic_vector(15 downto 0); + signal right: std_logic_vector(15 downto 0); + signal out_alu: std_logic_vector(15 downto 0); + signal iv: std_logic_vector(2 downto 0); + signal nmi_req: std_logic; + signal nmi_ack: std_logic; + signal nmi_enable: std_logic; + + signal state: state_type; + signal next_state: state_type; + signal saved_state: state_type; + signal return_state: state_type; + signal state_stack: stack_type; + signal st_ctrl: st_type; + signal pc_ctrl: pc_type; + signal ea_ctrl: ea_type; + signal op_ctrl: op_type; + signal pre_ctrl: pre_type; + signal md_ctrl: md_type; + signal acca_ctrl: acca_type; + signal accb_ctrl: accb_type; + signal ix_ctrl: ix_type; + signal iy_ctrl: iy_type; + signal cc_ctrl: cc_type; + signal dp_ctrl: dp_type; + signal sp_ctrl: sp_type; + signal up_ctrl: up_type; + signal iv_ctrl: iv_type; + signal left_ctrl: left_type; + signal right_ctrl: right_type; + signal alu_ctrl: alu_type; + signal addr_ctrl: addr_type; + signal dout_ctrl: dout_type; + signal nmi_ctrl: nmi_type; + + +begin + +---------------------------------- +-- +-- State machine stack +-- +---------------------------------- +--state_stack_proc: process( clk, hold, state_stack, st_ctrl, +-- return_state, fetch_state ) +state_stack_proc: process( clk, state_stack ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + state_stack(0) <= state_stack(0); + state_stack(1) <= state_stack(1); + state_stack(2) <= state_stack(2); + else + case st_ctrl is + when idle_st => + state_stack(0) <= state_stack(0); + state_stack(1) <= state_stack(1); + state_stack(2) <= state_stack(2); + when push_st => + state_stack(0) <= return_state; + state_stack(1) <= state_stack(0); + state_stack(2) <= state_stack(1); + when pull_st => + state_stack(0) <= state_stack(1); + state_stack(1) <= state_stack(2); + state_stack(2) <= fetch_state; + when others => + state_stack(0) <= state_stack(0); + state_stack(1) <= state_stack(1); + state_stack(2) <= state_stack(2); + end case; + end if; + end if; -- clk_en + end if; -- clk'event + saved_state <= state_stack(0); +end process; + +---------------------------------- +-- +-- Program Counter Control +-- +---------------------------------- + +--pc_reg: process( clk, pc_ctrl, hold, pc, out_alu, data_in ) +pc_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + pc <= pc; + else + case pc_ctrl is + when reset_pc => + pc <= "0000000000000000"; + when load_pc => + pc <= out_alu(15 downto 0); + when pull_lo_pc => + pc(7 downto 0) <= data_in; + when pull_hi_pc => + pc(15 downto 8) <= data_in; + when incr_pc => + pc <= pc + 1; + when others => + -- when latch_pc => + pc <= pc; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +---------------------------------- +-- +-- Effective Address Control +-- +---------------------------------- + +--ea_reg: process( clk, ea_ctrl, hold, ea, out_alu, data_in, dp ) +ea_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + ea <= ea; + else + case ea_ctrl is + when reset_ea => + ea <= "0000000000000000"; + when fetch_first_ea => + ea(7 downto 0) <= data_in; + ea(15 downto 8) <= dp; + when fetch_next_ea => + ea(15 downto 8) <= ea(7 downto 0); + ea(7 downto 0) <= data_in; + when load_ea => + ea <= out_alu(15 downto 0); + when others => + -- when latch_ea => + ea <= ea; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Accumulator A +-- +-------------------------------- +--acca_reg : process( clk, acca_ctrl, hold, out_alu, acca, data_in ) +acca_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + acca <= acca; + else + case acca_ctrl is + when reset_acca => + acca <= "00000000"; + when load_acca => + acca <= out_alu(7 downto 0); + when load_hi_acca => + acca <= out_alu(15 downto 8); + when pull_acca => + acca <= data_in; + when others => + -- when latch_acca => + acca <= acca; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Accumulator B +-- +-------------------------------- +--accb_reg : process( clk, accb_ctrl, hold, out_alu, accb, data_in ) +accb_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + accb <= accb; + else + case accb_ctrl is + when reset_accb => + accb <= "00000000"; + when load_accb => + accb <= out_alu(7 downto 0); + when pull_accb => + accb <= data_in; + when others => + -- when latch_accb => + accb <= accb; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- X Index register +-- +-------------------------------- +--ix_reg : process( clk, ix_ctrl, hold, out_alu, xreg, data_in ) +ix_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + xreg <= xreg; + else + case ix_ctrl is + when reset_ix => + xreg <= "0000000000000000"; + when load_ix => + xreg <= out_alu(15 downto 0); + when pull_hi_ix => + xreg(15 downto 8) <= data_in; + when pull_lo_ix => + xreg(7 downto 0) <= data_in; + when others => + -- when latch_ix => + xreg <= xreg; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Y Index register +-- +-------------------------------- +--iy_reg : process( clk, iy_ctrl, hold, out_alu, yreg, data_in ) +iy_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + yreg <= yreg; + else + case iy_ctrl is + when reset_iy => + yreg <= "0000000000000000"; + when load_iy => + yreg <= out_alu(15 downto 0); + when pull_hi_iy => + yreg(15 downto 8) <= data_in; + when pull_lo_iy => + yreg(7 downto 0) <= data_in; + when others => + -- when latch_iy => + yreg <= yreg; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- S stack pointer +-- +-------------------------------- +--sp_reg : process( clk, sp_ctrl, hold, sp, out_alu, data_in, nmi_enable ) +sp_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + sp <= sp; + nmi_enable <= nmi_enable; + else + case sp_ctrl is + when reset_sp => + sp <= "0000000000000000"; + nmi_enable <= '0'; + when load_sp => + sp <= out_alu(15 downto 0); + nmi_enable <= '1'; + when pull_hi_sp => + sp(15 downto 8) <= data_in; + nmi_enable <= nmi_enable; + when pull_lo_sp => + sp(7 downto 0) <= data_in; + nmi_enable <= '1'; + when others => + -- when latch_sp => + sp <= sp; + nmi_enable <= nmi_enable; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- U stack pointer +-- +-------------------------------- +--up_reg : process( clk, up_ctrl, hold, up, out_alu, data_in ) +up_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + up <= up; + else + case up_ctrl is + when reset_up => + up <= "0000000000000000"; + when load_up => + up <= out_alu(15 downto 0); + when pull_hi_up => + up(15 downto 8) <= data_in; + when pull_lo_up => + up(7 downto 0) <= data_in; + when others => + -- when latch_up => + up <= up; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Memory Data +-- +-------------------------------- +--md_reg : process( clk, md_ctrl, hold, out_alu, data_in, md ) +md_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + md <= md; + else + case md_ctrl is + when reset_md => + md <= "0000000000000000"; + when load_md => + md <= out_alu(15 downto 0); + when fetch_first_md => -- sign extend md for branches + md(15 downto 8) <= data_in(7) & data_in(7) & data_in(7) & data_in(7) & + data_in(7) & data_in(7) & data_in(7) & data_in(7) ; + md(7 downto 0) <= data_in; + when fetch_next_md => + md(15 downto 8) <= md(7 downto 0); + md(7 downto 0) <= data_in; + when shiftl_md => + md(15 downto 1) <= md(14 downto 0); + md(0) <= '0'; + when others => + -- when latch_md => + md <= md; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- Condition Codes +-- +---------------------------------- + +--cc_reg: process( clk, cc_ctrl, hold, cc_out, cc, data_in ) +cc_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + cc <= cc; + else + case cc_ctrl is + when reset_cc => + cc <= "11010000"; -- set EBIT, FBIT & IBIT + when load_cc => + cc <= cc_out; + when pull_cc => + cc <= data_in; + when others => + -- when latch_cc => + cc <= cc; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +---------------------------------- +-- +-- Direct Page register +-- +---------------------------------- + +--dp_reg: process( clk, dp_ctrl, hold, out_alu, dp, data_in ) +dp_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + dp <= dp; + else + case dp_ctrl is + when reset_dp => + dp <= "00000000"; + when load_dp => + dp <= out_alu(7 downto 0); + when pull_dp => + dp <= data_in; + when others => + -- when latch_dp => + dp <= dp; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +---------------------------------- +-- +-- interrupt vector +-- +---------------------------------- + +--iv_mux: process( clk, iv_ctrl, hold, iv ) +iv_mux: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + iv <= iv; + else + case iv_ctrl is + when reset_iv => + iv <= RST_VEC; + when nmi_iv => + iv <= NMI_VEC; + when swi_iv => + iv <= SWI_VEC; + when irq_iv => + iv <= IRQ_VEC; + when firq_iv => + iv <= FIRQ_VEC; + when swi2_iv => + iv <= SWI2_VEC; + when swi3_iv => + iv <= SWI3_VEC; + when resv_iv => + iv <= RESV_VEC; + when others => + iv <= iv; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- op code register +-- +---------------------------------- + +--op_reg: process( clk, op_ctrl, hold, op_code, data_in ) +op_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + op_code <= op_code; + else + case op_ctrl is + when reset_op => + op_code <= "00010010"; + when fetch_op => + op_code <= data_in; + when others => + -- when latch_op => + op_code <= op_code; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- pre byte op code register +-- +---------------------------------- + +--pre_reg: process( clk, pre_ctrl, hold, pre_code, data_in ) +pre_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + pre_code <= pre_code; + else + case pre_ctrl is + when reset_pre => + pre_code <= "00000000"; + when fetch_pre => + pre_code <= data_in; + when others => + -- when latch_pre => + pre_code <= pre_code; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- state machine +-- +-------------------------------- + +--change_state: process( clk, rst, state, hold, next_state ) +change_state: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if rst = '1' then + state <= reset_state; + else + if hold = '1' then + state <= state; + else + state <= next_state; + end if; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + -- output + +------------------------------------ +-- +-- Nmi register +-- +------------------------------------ + +--nmi_reg: process( clk, nmi_ctrl, hold, nmi_ack ) +nmi_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold = '1' then + nmi_ack <= nmi_ack; + else + case nmi_ctrl is + when set_nmi => + nmi_ack <= '1'; + when reset_nmi => + nmi_ack <= '0'; + when others => + -- when latch_nmi => + nmi_ack <= nmi_ack; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +------------------------------------ +-- +-- Detect Edge of NMI interrupt +-- +------------------------------------ + +--nmi_handler : process( clk, rst, nmi, nmi_ack, nmi_req, nmi_enable ) +nmi_handler : process( rst, clk ) +begin + if rst='1' then + nmi_req <= '0'; + elsif clk'event and clk = CLK_POL then + if clk_en = '1' then + if (nmi='1') and (nmi_ack='0') and (nmi_enable='1') then + nmi_req <= '1'; + else + if (nmi='0') and (nmi_ack='1') then + nmi_req <= '0'; + end if; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- Address output multiplexer +-- +---------------------------------- + +addr_mux: process( addr_ctrl, pc, ea, up, sp, iv ) +begin + case addr_ctrl is + when idle_ad => + vma <= '0'; + addr <= "1111111111111111"; + rw <= '1'; + when fetch_ad => + vma <= '1'; + addr <= pc; + rw <= '1'; + when read_ad => + vma <= '1'; + addr <= ea; + rw <= '1'; + when write_ad => + vma <= '1'; + addr <= ea; + rw <= '0'; + when pushs_ad => + vma <= '1'; + addr <= sp; + rw <= '0'; + when pulls_ad => + vma <= '1'; + addr <= sp; + rw <= '1'; + when pushu_ad => + vma <= '1'; + addr <= up; + rw <= '0'; + when pullu_ad => + vma <= '1'; + addr <= up; + rw <= '1'; + when int_hi_ad => + vma <= '1'; + addr <= "111111111111" & iv & "0"; + rw <= '1'; + when int_lo_ad => + vma <= '1'; + addr <= "111111111111" & iv & "1"; + rw <= '1'; + when others => + vma <= '0'; + addr <= "1111111111111111"; + rw <= '1'; + end case; +end process; + +-------------------------------- +-- +-- Data Bus output +-- +-------------------------------- +dout_mux : process( dout_ctrl, md, acca, accb, dp, xreg, yreg, sp, up, pc, cc ) +begin + case dout_ctrl is + when cc_dout => -- condition code register + data_out <= cc; + when acca_dout => -- accumulator a + data_out <= acca; + when accb_dout => -- accumulator b + data_out <= accb; + when dp_dout => -- direct page register + data_out <= dp; + when ix_lo_dout => -- X index reg + data_out <= xreg(7 downto 0); + when ix_hi_dout => -- X index reg + data_out <= xreg(15 downto 8); + when iy_lo_dout => -- Y index reg + data_out <= yreg(7 downto 0); + when iy_hi_dout => -- Y index reg + data_out <= yreg(15 downto 8); + when up_lo_dout => -- U stack pointer + data_out <= up(7 downto 0); + when up_hi_dout => -- U stack pointer + data_out <= up(15 downto 8); + when sp_lo_dout => -- S stack pointer + data_out <= sp(7 downto 0); + when sp_hi_dout => -- S stack pointer + data_out <= sp(15 downto 8); + when md_lo_dout => -- alu output + data_out <= md(7 downto 0); + when md_hi_dout => -- alu output + data_out <= md(15 downto 8); + when pc_lo_dout => -- low order pc + data_out <= pc(7 downto 0); + when pc_hi_dout => -- high order pc + data_out <= pc(15 downto 8); + when others => + data_out <= "00000000"; + end case; +end process; + +---------------------------------- +-- +-- Left Mux +-- +---------------------------------- + +left_mux: process( left_ctrl, acca, accb, cc, dp, xreg, yreg, up, sp, pc, ea, md ) +begin + case left_ctrl is + when cc_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= cc; + when acca_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= acca; + when accb_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= accb; + when dp_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= dp; + when accd_left => + left(15 downto 8) <= acca; + left(7 downto 0) <= accb; + when md_left => + left <= md; + when ix_left => + left <= xreg; + when iy_left => + left <= yreg; + when sp_left => + left <= sp; + when up_left => + left <= up; + when pc_left => + left <= pc; + when others => +-- when ea_left => + left <= ea; + end case; +end process; + +---------------------------------- +-- +-- Right Mux +-- +---------------------------------- + +right_mux: process( right_ctrl, md, acca, accb, ea ) +begin + case right_ctrl is + when ea_right => + right <= ea; + when zero_right => + right <= "0000000000000000"; + when one_right => + right <= "0000000000000001"; + when two_right => + right <= "0000000000000010"; + when acca_right => + if acca(7) = '0' then + right <= "00000000" & acca(7 downto 0); + else + right <= "11111111" & acca(7 downto 0); + end if; + when accb_right => + if accb(7) = '0' then + right <= "00000000" & accb(7 downto 0); + else + right <= "11111111" & accb(7 downto 0); + end if; + when accd_right => + right <= acca & accb; + when md_sign5_right => + if md(4) = '0' then + right <= "00000000000" & md(4 downto 0); + else + right <= "11111111111" & md(4 downto 0); + end if; + when md_sign8_right => + if md(7) = '0' then + right <= "00000000" & md(7 downto 0); + else + right <= "11111111" & md(7 downto 0); + end if; + when others => +-- when md_right => + right <= md; + end case; +end process; + +---------------------------------- +-- +-- Arithmetic Logic Unit +-- +---------------------------------- + +alu: process( alu_ctrl, cc, left, right, out_alu, cc_out ) +variable valid_lo, valid_hi : boolean; +variable carry_in : std_logic; +variable daa_reg : std_logic_vector(7 downto 0); +begin + + case alu_ctrl is + when alu_adc | alu_sbc | + alu_rol8 | alu_ror8 => + carry_in := cc(CBIT); + when alu_asr8 => + carry_in := left(7); + when others => + carry_in := '0'; + end case; + + valid_lo := left(3 downto 0) <= 9; + valid_hi := left(7 downto 4) <= 9; + + if (cc(CBIT) = '0') then + if( cc(HBIT) = '1' ) then + if valid_hi then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + else + if valid_lo then + if valid_hi then + daa_reg := "00000000"; + else + daa_reg := "01100000"; + end if; + else + if( left(7 downto 4) <= 8 ) then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + else + if ( cc(HBIT) = '1' )then + daa_reg := "01100110"; + else + if valid_lo then + daa_reg := "01100000"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + + case alu_ctrl is + when alu_add8 | alu_inc | + alu_add16 | alu_adc | alu_mul => + out_alu <= left + right + ("000000000000000" & carry_in); + when alu_sub8 | alu_dec | + alu_sub16 | alu_sbc => + out_alu <= left - right - ("000000000000000" & carry_in); + when alu_abx => + out_alu <= left + ("00000000" & right(7 downto 0)) ; + when alu_and => + out_alu <= left and right; -- and/bit + when alu_ora => + out_alu <= left or right; -- or + when alu_eor => + out_alu <= left xor right; -- eor/xor + when alu_lsl16 | alu_asl8 | alu_rol8 => + out_alu <= left(14 downto 0) & carry_in; -- rol8/asl8/lsl16 + when alu_lsr16 => + out_alu <= carry_in & left(15 downto 1); -- lsr16 + when alu_lsr8 | alu_asr8 | alu_ror8 => + out_alu <= "00000000" & carry_in & left(7 downto 1); -- ror8/asr8/lsr8 + when alu_neg => + out_alu <= right - left; -- neg (right=0) + when alu_com => + out_alu <= not left; + when alu_clr | alu_ld8 | alu_ld16 | alu_lea => + out_alu <= right; -- clr, ld + when alu_st8 | alu_st16 | alu_andcc | alu_orcc | alu_tfr => + out_alu <= left; + when alu_daa => + out_alu <= left + ("00000000" & daa_reg); + when alu_sex => + if left(7) = '0' then + out_alu <= "00000000" & left(7 downto 0); + else + out_alu <= "11111111" & left(7 downto 0); + end if; + when others => + out_alu <= left; -- nop + end case; + + -- + -- carry bit + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(CBIT) <= (left(7) and right(7)) or + (left(7) and not out_alu(7)) or + (right(7) and not out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(CBIT) <= ((not left(7)) and right(7)) or + ((not left(7)) and out_alu(7)) or + (right(7) and out_alu(7)); + when alu_add16 => + cc_out(CBIT) <= (left(15) and right(15)) or + (left(15) and not out_alu(15)) or + (right(15) and not out_alu(15)); + when alu_sub16 => + cc_out(CBIT) <= ((not left(15)) and right(15)) or + ((not left(15)) and out_alu(15)) or + (right(15) and out_alu(15)); + when alu_ror8 | alu_lsr16 | alu_lsr8 | alu_asr8 => + cc_out(CBIT) <= left(0); + when alu_rol8 | alu_asl8 => + cc_out(CBIT) <= left(7); + when alu_lsl16 => + cc_out(CBIT) <= left(15); + when alu_com => + cc_out(CBIT) <= '1'; + when alu_neg | alu_clr => + cc_out(CBIT) <= out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0); + when alu_mul => + cc_out(CBIT) <= out_alu(7); + when alu_daa => + if ( daa_reg(7 downto 4) = "0110" ) then + cc_out(CBIT) <= '1'; + else + cc_out(CBIT) <= '0'; + end if; + when alu_andcc => + cc_out(CBIT) <= left(CBIT) and cc(CBIT); + when alu_orcc => + cc_out(CBIT) <= left(CBIT) or cc(CBIT); + when alu_tfr => + cc_out(CBIT) <= left(CBIT); + when others => + cc_out(CBIT) <= cc(CBIT); + end case; + -- + -- Zero flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_inc | alu_dec | + alu_neg | alu_com | alu_clr | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_ld8 | alu_st8 | alu_sex | alu_daa => + cc_out(ZBIT) <= not( out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_add16 | alu_sub16 | alu_mul | + alu_lsl16 | alu_lsr16 | + alu_ld16 | alu_st16 | alu_lea => + cc_out(ZBIT) <= not( out_alu(15) or out_alu(14) or out_alu(13) or out_alu(12) or + out_alu(11) or out_alu(10) or out_alu(9) or out_alu(8) or + out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_andcc => + cc_out(ZBIT) <= left(ZBIT) and cc(ZBIT); + when alu_orcc => + cc_out(ZBIT) <= left(ZBIT) or cc(ZBIT); + when alu_tfr => + cc_out(ZBIT) <= left(ZBIT); + when others => + cc_out(ZBIT) <= cc(ZBIT); + end case; + + -- + -- negative flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_inc | alu_dec | alu_neg | alu_com | alu_clr | + alu_ld8 | alu_st8 | alu_sex | alu_daa => + cc_out(NBIT) <= out_alu(7); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_ld16 | alu_st16 => + cc_out(NBIT) <= out_alu(15); + when alu_andcc => + cc_out(NBIT) <= left(NBIT) and cc(NBIT); + when alu_orcc => + cc_out(NBIT) <= left(NBIT) or cc(NBIT); + when alu_tfr => + cc_out(NBIT) <= left(NBIT); + when others => + cc_out(NBIT) <= cc(NBIT); + end case; + + -- + -- Interrupt mask flag + -- + case alu_ctrl is + when alu_andcc => + cc_out(IBIT) <= left(IBIT) and cc(IBIT); + when alu_orcc => + cc_out(IBIT) <= left(IBIT) or cc(IBIT); + when alu_tfr => + cc_out(IBIT) <= left(IBIT); + when alu_seif | alu_sei => + cc_out(IBIT) <= '1'; + when others => + cc_out(IBIT) <= cc(IBIT); -- interrupt mask + end case; + + -- + -- Half Carry flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(HBIT) <= (left(3) and right(3)) or + (right(3) and not out_alu(3)) or + (left(3) and not out_alu(3)); + when alu_andcc => + cc_out(HBIT) <= left(HBIT) and cc(HBIT); + when alu_orcc => + cc_out(HBIT) <= left(HBIT) or cc(HBIT); + when alu_tfr => + cc_out(HBIT) <= left(HBIT); + when others => + cc_out(HBIT) <= cc(HBIT); + end case; + + -- + -- Overflow flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(VBIT) <= (left(7) and right(7) and (not out_alu(7))) or + ((not left(7)) and (not right(7)) and out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(VBIT) <= (left(7) and (not right(7)) and (not out_alu(7))) or + ((not left(7)) and right(7) and out_alu(7)); + when alu_add16 => + cc_out(VBIT) <= (left(15) and right(15) and (not out_alu(15))) or + ((not left(15)) and (not right(15)) and out_alu(15)); + when alu_sub16 => + cc_out(VBIT) <= (left(15) and (not right(15)) and (not out_alu(15))) or + ((not left(15)) and right(15) and out_alu(15)); + when alu_inc => + cc_out(VBIT) <= ((not left(7)) and left(6) and left(5) and left(4) and + left(3) and left(2) and left(1) and left(0)); + when alu_dec | alu_neg => + cc_out(VBIT) <= (left(7) and (not left(6)) and (not left(5)) and (not left(4)) and + (not left(3)) and (not left(2)) and (not left(1)) and (not left(0))); +-- 6809 Programming reference manual says +-- V not affected by ASR, LSR and ROR +-- This is different to the 6800 +-- John Kent 6th June 2006 +-- when alu_asr8 => +-- cc_out(VBIT) <= left(0) xor left(7); +-- when alu_lsr8 | alu_lsr16 => +-- cc_out(VBIT) <= left(0); +-- when alu_ror8 => +-- cc_out(VBIT) <= left(0) xor cc(CBIT); + when alu_lsl16 => + cc_out(VBIT) <= left(15) xor left(14); + when alu_rol8 | alu_asl8 => + cc_out(VBIT) <= left(7) xor left(6); +-- +-- 11th July 2006 - John Kent +-- What DAA does with V is anyones guess +-- It is undefined in the 6809 programming manual +-- + when alu_daa => + cc_out(VBIT) <= left(7) xor out_alu(7) xor cc(CBIT); +-- CLR resets V Bit +-- John Kent 6th June 2006 + when alu_and | alu_ora | alu_eor | alu_com | alu_clr | + alu_st8 | alu_st16 | alu_ld8 | alu_ld16 | alu_sex => + cc_out(VBIT) <= '0'; + when alu_andcc => + cc_out(VBIT) <= left(VBIT) and cc(VBIT); + when alu_orcc => + cc_out(VBIT) <= left(VBIT) or cc(VBIT); + when alu_tfr => + cc_out(VBIT) <= left(VBIT); + when others => + cc_out(VBIT) <= cc(VBIT); + end case; + + case alu_ctrl is + when alu_andcc => + cc_out(FBIT) <= left(FBIT) and cc(FBIT); + when alu_orcc => + cc_out(FBIT) <= left(FBIT) or cc(FBIT); + when alu_tfr => + cc_out(FBIT) <= left(FBIT); + when alu_seif => + cc_out(FBIT) <= '1'; + when others => + cc_out(FBIT) <= cc(FBIT); + end case; + + case alu_ctrl is + when alu_andcc => + cc_out(EBIT) <= left(EBIT) and cc(EBIT); + when alu_orcc => + cc_out(EBIT) <= left(EBIT) or cc(EBIT); + when alu_tfr => + cc_out(EBIT) <= left(EBIT); + when alu_see => + cc_out(EBIT) <= '1'; + when alu_cle => + cc_out(EBIT) <= '0'; + when others => + cc_out(EBIT) <= cc(EBIT); + end case; +end process; + +------------------------------------ +-- +-- state sequencer +-- +------------------------------------ +process( state, saved_state, + op_code, pre_code, + cc, ea, md, iv, + irq, firq, nmi_req, nmi_ack, halt ) +variable cond_true : boolean; -- variable used to evaluate coditional branches +begin + -- Registers preserved + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + dp_ctrl <= latch_dp; + ix_ctrl <= latch_ix; + iy_ctrl <= latch_iy; + up_ctrl <= latch_up; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + pre_ctrl <= latch_pre; + nmi_ctrl <= latch_nmi; + -- ALU Idle + left_ctrl <= pc_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + -- Bus idle + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + -- Next State Fetch + st_ctrl <= idle_st; + return_state <= fetch_state; + next_state <= fetch_state; + + case state is + when reset_state => -- released from reset + -- reset the registers + op_ctrl <= reset_op; + pre_ctrl <= reset_pre; + cc_ctrl <= reset_cc; + acca_ctrl <= reset_acca; + accb_ctrl <= reset_accb; + dp_ctrl <= reset_dp; + ix_ctrl <= reset_ix; + iy_ctrl <= reset_iy; + up_ctrl <= reset_up; + sp_ctrl <= reset_sp; + pc_ctrl <= reset_pc; + ea_ctrl <= reset_ea; + md_ctrl <= reset_md; + iv_ctrl <= reset_iv; + nmi_ctrl <= reset_nmi; + next_state <= vect_hi_state; + + -- + -- Jump via interrupt vector + -- iv holds interrupt type + -- fetch PC hi from vector location + -- + when vect_hi_state => + -- fetch pc low interrupt vector + pc_ctrl <= pull_hi_pc; + addr_ctrl <= int_hi_ad; + next_state <= vect_lo_state; + -- + -- jump via interrupt vector + -- iv holds vector type + -- fetch PC lo from vector location + -- + when vect_lo_state => + -- fetch the vector low byte + pc_ctrl <= pull_lo_pc; + addr_ctrl <= int_lo_ad; + next_state <= fetch_state; + -- + -- Here to fetch an instruction + -- PC points to opcode + -- Should service interrupt requests at this point + -- either from the timer + -- or from the external input. + -- + when fetch_state => + -- fetch the op code + op_ctrl <= fetch_op; + pre_ctrl <= fetch_pre; + ea_ctrl <= reset_ea; + -- Fetch op code + addr_ctrl <= fetch_ad; + -- + case op_code(7 downto 6) is + when "10" => -- acca + case op_code(3 downto 0) is + when "0000" => -- suba + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0001" => -- cmpa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + when "0010" => -- sbca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0011" => + case pre_code is + when "00010000" => -- page 2 -- cmpd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when "00010001" => -- page 3 -- cmpu + left_ctrl <= up_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when others => -- page 1 -- subd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + end case; + when "0100" => -- anda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0101" => -- bita + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + when "0110" => -- ldaa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + when "1000" => -- eora + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1001" => -- adca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1010" => -- oraa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1011" => -- adda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1100" => + case pre_code is + when "00010000" => -- page 2 -- cmpy + left_ctrl <= iy_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when "00010001" => -- page 3 -- cmps + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when others => -- page 1 -- cmpx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + end case; + when "1101" => -- bsr / jsr + null; + when "1110" => -- ldx + case pre_code is + when "00010000" => -- page 2 -- ldy + left_ctrl <= iy_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + iy_ctrl <= load_iy; + when others => -- page 1 -- ldx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + ix_ctrl <= load_ix; + end case; + when "1111" => -- stx + case pre_code is + when "00010000" => -- page 2 -- sty + left_ctrl <= iy_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + when others => -- page 1 -- stx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + end case; + when others => + null; + end case; + when "11" => -- accb dual op + case op_code(3 downto 0) is + when "0000" => -- subb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0001" => -- cmpb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + when "0010" => -- sbcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0011" => -- addd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "0100" => -- andb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0101" => -- bitb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + when "0110" => -- ldab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + when "1000" => -- eorb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1001" => -- adcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1010" => -- orab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1011" => -- addb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1100" => -- ldd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + when "1110" => -- ldu + case pre_code is + when "00010000" => -- page 2 -- lds + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + sp_ctrl <= load_sp; + when others => -- page 1 -- ldu + left_ctrl <= up_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + up_ctrl <= load_up; + end case; + when "1111" => + case pre_code is + when "00010000" => -- page 2 -- sts + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + when others => -- page 1 -- stu + left_ctrl <= up_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + end case; + when others => + null; + end case; + when others => + null; + end case; + if halt = '1' then + iv_ctrl <= reset_iv; + next_state <= halt_state; + -- service non maskable interrupts + elsif (nmi_req = '1') and (nmi_ack = '0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= int_nmiirq_state; + -- service maskable interrupts + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if(nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + end if; + -- + -- FIRQ & IRQ are level sensitive + -- + if (firq = '1') and (cc(FBIT) = '0') then + iv_ctrl <= firq_iv; + next_state <= int_firq_state; + elsif (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_nmiirq_state; + else + -- Advance the PC to fetch next instruction byte + iv_ctrl <= reset_iv; -- default to reset + pc_ctrl <= incr_pc; + next_state <= decode1_state; + end if; + end if; + -- + -- Here to decode instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode1_state => + -- fetch first byte of address or immediate data + ea_ctrl <= fetch_first_ea; + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + case op_code(7 downto 4) is + -- + -- direct single op (2 bytes) + -- 6809 => 6 cycles + -- cpu09 => 5 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_hi=dp / ea_lo=(pc) / pc=pc+1 + -- 3 md_lo=(ea) / pc=pc + -- 4 alu_left=md / md=alu_out / pc=pc + -- 5 (ea)=md_lo / pc=pc + -- + -- Exception is JMP + -- 6809 => 3 cycles + -- cpu09 => 3 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_hi=dp / ea_lo=(pc) / pc=pc+1 + -- 3 pc=ea + -- + when "0000" => + -- advance the PC + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "1110" => -- jmp + next_state <= jmp_state; + when "1111" => -- clr + next_state <= single_op_exec_state; + when others => + next_state <= single_op_read_state; + end case; + + -- acca / accb inherent instructions + when "0001" => + case op_code(3 downto 0) is + -- + -- Page2 pre byte + -- pre=(pc) / pc=pc+1 + -- op=(pc) / pc=pc+1 + -- + when "0000" => -- page2 + op_ctrl <= fetch_op; + -- advance pc + pc_ctrl <= incr_pc; + next_state <= decode2_state; + + -- + -- Page3 pre byte + -- pre=(pc) / pc=pc+1 + -- op=(pc) / pc=pc+1 + -- + when "0001" => -- page3 + op_ctrl <= fetch_op; + -- advance pc + pc_ctrl <= incr_pc; + next_state <= decode3_state; + + -- + -- nop - No operation ( 1 byte ) + -- 6809 => 2 cycles + -- cpu09 => 2 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 decode + -- + when "0010" => -- nop + next_state <= fetch_state; + + -- + -- sync - halt execution until an interrupt is received + -- interrupt may be NMI, IRQ or FIRQ + -- program execution continues if the + -- interrupt is asserted for 3 clock cycles + -- note that registers are not pushed onto the stack + -- CPU09 => Interrupts need only be asserted for one clock cycle + -- + when "0011" => -- sync + next_state <= sync_state; + + -- + -- lbra -- long branch (3 bytes) + -- 6809 => 5 cycles + -- cpu09 => 4 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 + -- 3 md_hi=md_lo / md_lo=(pc) / pc=pc+1 + -- 4 pc=pc+md + -- + when "0110" => + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= lbranch_state; + + -- + -- lbsr - long branch to subroutine (3 bytes) + -- 6809 => 9 cycles + -- cpu09 => 6 cycles + -- 1 op=(pc) /pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 / sp=sp-1 + -- 3 md_hi=md_lo / md_lo=(pc) / pc=pc+1 + -- 4 (sp)= pc_lo / sp=sp-1 / pc=pc + -- 5 (sp)=pc_hi / pc=pc + -- 6 pc=pc+md + -- + when "0111" => + -- pre decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= lbranch_state; + + when "1001" => -- daa + left_ctrl <= acca_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_daa; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + next_state <= fetch_state; + + when "1010" => -- orcc + -- increment the pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= orcc_state; + + when "1100" => -- andcc + -- increment the pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= andcc_state; + + when "1101" => -- sex + -- have sex + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sex; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + next_state <= fetch_state; + + when "1110" => -- exg + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= exg_state; + + when "1111" => -- tfr + -- increment the pc + pc_ctrl <= incr_pc; + -- call transfer as a subroutine + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= tfr_state; + + when others => + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= fetch_state; + end case; + -- + -- Short branch conditional + -- 6809 => always 3 cycles + -- cpu09 => always = 3 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 / test cc + -- 3 if cc tru pc=pc+md else pc=pc + -- + when "0010" => -- branch conditional + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= sbranch_state; + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + -- + -- lea - load effective address (2+ bytes) + -- 6809 => 4 cycles + addressing mode + -- cpu09 => 4 cycles + addressing mode + -- 1 op=(pc) / pc=pc+1 + -- 2 md_lo=(pc) / pc=pc+1 + -- 3 calculate ea + -- 4 ix/iy/sp/up = ea + -- + case op_code(3 downto 0) is + when "0000" | -- leax + "0001" | -- leay + "0010" | -- leas + "0011" => -- leau + -- advance PC + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= lea_state; + next_state <= indexed_state; + + -- + -- pshs - push registers onto sp stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_lo=(pc) / pc=pc+1 + -- 3 if ea(7 downto 0) != "00000000" then sp=sp-1 + -- 4 if ea(7) = 1 (sp)=pcl, sp=sp-1 + -- 5 if ea(7) = 1 (sp)=pch + -- if ea(6 downto 0) != "0000000" then sp=sp-1 + -- 6 if ea(6) = 1 (sp)=upl, sp=sp-1 + -- 7 if ea(6) = 1 (sp)=uph + -- if ea(5 downto 0) != "000000" then sp=sp-1 + -- 8 if ea(5) = 1 (sp)=iyl, sp=sp-1 + -- 9 if ea(5) = 1 (sp)=iyh + -- if ea(4 downto 0) != "00000" then sp=sp-1 + -- 10 if ea(4) = 1 (sp)=ixl, sp=sp-1 + -- 11 if ea(4) = 1 (sp)=ixh + -- if ea(3 downto 0) != "0000" then sp=sp-1 + -- 12 if ea(3) = 1 (sp)=dp + -- if ea(2 downto 0) != "000" then sp=sp-1 + -- 13 if ea(2) = 1 (sp)=accb + -- if ea(1 downto 0) != "00" then sp=sp-1 + -- 14 if ea(1) = 1 (sp)=acca + -- if ea(0 downto 0) != "0" then sp=sp-1 + -- 15 if ea(0) = 1 (sp)=cc + -- + when "0100" => -- pshs + -- advance PC + pc_ctrl <= incr_pc; + next_state <= pshs_state; + + -- + -- puls - pull registers of sp stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- + when "0101" => -- puls + -- advance PC + pc_ctrl <= incr_pc; + next_state <= puls_state; + + -- + -- pshu - push registers onto up stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- + when "0110" => -- pshu + -- advance PC + pc_ctrl <= incr_pc; + next_state <= pshu_state; + + -- + -- pulu - pull registers of up stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- + when "0111" => -- pulu + -- advance PC + pc_ctrl <= incr_pc; + next_state <= pulu_state; + + -- + -- rts - return from subroutine + -- 6809 => 5 cycles + -- cpu09 => 4 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 decode op + -- 3 pc_hi = (sp) / sp=sp+1 + -- 4 pc_lo = (sp) / sp=sp+1 + -- + when "1001" => + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= pull_return_hi_state; + + -- + -- add accb to index register + -- *** Note: this is an unsigned addition. + -- does not affect any condition codes + -- 6809 => 3 cycles + -- cpu09 => 2 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 alu_left=ix / alu_right=accb / ix=alu_out / pc=pc + -- + when "1010" => -- abx + left_ctrl <= ix_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_abx; + ix_ctrl <= load_ix; + next_state <= fetch_state; + + when "1011" => -- rti + next_state <= rti_cc_state; + + when "1100" => -- cwai #$ + -- pre decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= reset_iv; + -- increment pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= int_entire_state; -- set entire flag + next_state <= andcc_state; + + when "1101" => -- mul + next_state <= mul_state; + + when "1111" => -- swi + -- predecrement SP + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= swi_iv; + next_state <= int_entire_state; + + when others => + next_state <= fetch_state; + + end case; + -- + -- Accumulator A Single operand + -- source = acca, dest = acca + -- Do not advance PC + -- Typically 2 cycles 1 bytes + -- 1 opcode fetch + -- 2 post byte fetch / instruction decode + -- Note that there is no post byte + -- so do not advance PC in decode cycle + -- Re-run opcode fetch cycle after decode + -- + when "0100" => -- acca single op + left_ctrl <= acca_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= one_right; + alu_ctrl <= alu_dec; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= one_right; + alu_ctrl <= alu_inc; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + acca_ctrl <= latch_acca; + cc_ctrl <= load_cc; + when "1110" => -- jmp (not defined) + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- Single Operand accb + -- source = accb, dest = accb + -- Typically 2 cycles 1 bytes + -- 1 opcode fetch + -- 2 post byte fetch / instruction decode + -- Note that there is no post byte + -- so do not advance PC in decode cycle + -- Re-run opcode fetch cycle after decode + -- + when "0101" => + left_ctrl <= accb_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= one_right; + alu_ctrl <= alu_dec; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= one_right; + alu_ctrl <= alu_inc; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + accb_ctrl <= latch_accb; + cc_ctrl <= load_cc; + when "1110" => -- jmp (undefined) + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- Single operand indexed + -- Two byte instruction so advance PC + -- EA should hold index offset + -- + when "0110" => -- indexed single op + -- increment the pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + case op_code(3 downto 0) is + when "1110" => -- jmp + return_state <= jmp_state; + when "1111" => -- clr + return_state <= single_op_exec_state; + when others => + return_state <= single_op_read_state; + end case; + next_state <= indexed_state; + -- + -- Single operand extended addressing + -- three byte instruction so advance the PC + -- Low order EA holds high order address + -- + when "0111" => -- extended single op + -- increment PC + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + case op_code(3 downto 0) is + when "1110" => -- jmp + return_state <= jmp_state; + when "1111" => -- clr + return_state <= single_op_exec_state; + when others => + return_state <= single_op_read_state; + end case; + next_state <= extended_state; + + when "1000" => -- acca immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd # + "1100" | -- cmpx # + "1110" => -- ldx # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + -- + -- bsr offset - Branch to subroutine (2 bytes) + -- 6809 => 7 cycles + -- cpu09 => 5 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / sp=sp-1 / pc=pc+1 + -- 3 (sp)=pc_lo / sp=sp-1 + -- 4 (sp)=pc_hi + -- 5 pc=pc+md + -- + when "1101" => -- bsr + -- pre decrement SP + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- + st_ctrl <= push_st; + return_state <= sbranch_state; + next_state <= push_return_lo_state; + + when others => + next_state <= fetch_state; + end case; + + when "1001" => -- acca direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd + "1100" | -- cmpx + "1110" => -- ldx + next_state <= dual_op_read16_state; + + when "0111" => -- sta direct + next_state <= dual_op_write8_state; + + when "1111" => -- stx direct + -- idle ALU + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + next_state <= dual_op_write16_state; + + -- + -- jsr direct - Jump to subroutine in direct page (2 bytes) + -- 6809 => 7 cycles + -- cpu09 => 5 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_hi=0 / ea_lo=(pc) / sp=sp-1 / pc=pc+1 + -- 3 (sp)=pc_lo / sp=sp-1 + -- 4 (sp)=pc_hi + -- 5 pc=ea + -- + when "1101" => -- jsr direct + -- pre decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- + st_ctrl <= push_st; + return_state <= jmp_state; + next_state <= push_return_lo_state; + + when others => + next_state <= dual_op_read8_state; + end case; + + when "1010" => -- acca indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd + "1100" | -- cmpx + "1110" => -- ldx + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "0111" => -- staa ,x + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= indexed_state; + + when "1111" => -- stx ,x + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when "1101" => -- jsr ,x + -- DO NOT pre decrement SP + st_ctrl <= push_st; + return_state <= jsr_state; + next_state <= indexed_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= indexed_state; + end case; + + when "1011" => -- acca extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd + "1100" | -- cmpx + "1110" => -- ldx + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "0111" => -- staa > + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= extended_state; + + when "1111" => -- stx > + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when "1101" => -- jsr >extended + -- DO NOT pre decrement sp + st_ctrl <= push_st; + return_state <= jsr_state; + next_state <= extended_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= extended_state; + end case; + + when "1100" => -- accb immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd # + "1100" | -- ldd # + "1110" => -- ldu # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + when others => + next_state <= fetch_state; + + end case; + + + when "1101" => -- accb direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldu + next_state <= dual_op_read16_state; + + when "0111" => -- stab direct + next_state <= dual_op_write8_state; + + when "1101" => -- std direct + next_state <= dual_op_write16_state; + + when "1111" => -- stu direct + next_state <= dual_op_write16_state; + + when others => + next_state <= dual_op_read8_state; + end case; + + when "1110" => -- accb indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldu + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "0111" => -- stab indexed + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= indexed_state; + + when "1101" => -- std indexed + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when "1111" => -- stu indexed + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= indexed_state; + end case; + + when "1111" => -- accb extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldu + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "0111" => -- stab extended + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= extended_state; + + when "1101" => -- std extended + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when "1111" => -- stu extended + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= extended_state; + end case; + + when others => + null; + end case; + + -- + -- Here to decode prefix 2 instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode2_state => + -- fetch first byte of address or immediate data + ea_ctrl <= fetch_first_ea; + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + case op_code(7 downto 4) is + -- + -- lbcc -- long branch conditional + -- 6809 => branch 6 cycles, no branch 5 cycles + -- cpu09 => always 5 cycles + -- 1 pre=(pc) / pc=pc+1 + -- 2 op=(pc) / pc=pc+1 + -- 3 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 + -- 4 md_hi=md_lo / md_lo=(pc) / pc=pc+1 + -- 5 if cond pc=pc+md else pc=pc + -- + when "0010" => + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= lbranch_state; + + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + case op_code(3 downto 0) is + when "1111" => -- swi 2 + -- predecrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= swi2_iv; + next_state <= int_entire_state; + + when others => + next_state <= fetch_state; + end case; + + when "1000" => -- acca immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd # + "1100" | -- cmpy # + "1110" => -- ldy # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1001" => -- acca direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd < + "1100" | -- cmpy < + "1110" => -- ldy < + next_state <= dual_op_read16_state; + + when "1111" => -- sty < + next_state <= dual_op_write16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1010" => -- acca indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd ,ind + "1100" | -- cmpy ,ind + "1110" => -- ldy ,ind + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "1111" => -- sty ,ind + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when others => + next_state <= fetch_state; + end case; + + when "1011" => -- acca extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd < + "1100" | -- cmpy < + "1110" => -- ldy < + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "1111" => -- sty > + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1100" => -- accb immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef # + "1100" | -- undef # + "1110" => -- lds # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1101" => -- accb direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef < + "1100" | -- undef < + "1110" => -- lds < + next_state <= dual_op_read16_state; + + when "1111" => -- sts < + next_state <= dual_op_write16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1110" => -- accb indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef ,ind + "1100" | -- undef ,ind + "1110" => -- lds ,ind + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "1111" => -- sts ,ind + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1111" => -- accb extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef > + "1100" | -- undef > + "1110" => -- lds > + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "1111" => -- sts > + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when others => + next_state <= fetch_state; + end case; + + when others => + next_state <= fetch_state; + end case; + -- + -- Here to decode instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode3_state => + ea_ctrl <= fetch_first_ea; + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + case op_code(7 downto 4) is + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + case op_code(3 downto 0) is + when "1111" => -- swi3 + -- predecrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= swi3_iv; + next_state <= int_entire_state; + when others => + next_state <= fetch_state; + end case; + + when "1000" => -- acca immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu # + "1100" | -- cmps # + "1110" => -- undef # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + when others => + next_state <= fetch_state; + end case; + + when "1001" => -- acca direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu < + "1100" | -- cmps < + "1110" => -- undef < + st_ctrl <= idle_st; + return_state <= fetch_state; + next_state <= dual_op_read16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1010" => -- acca indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu ,X + "1100" | -- cmps ,X + "1110" => -- undef ,X + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1011" => -- acca extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu > + "1100" | -- cmps > + "1110" => -- undef > + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + when others => + next_state <= fetch_state; + end case; + + when others => + next_state <= fetch_state; + end case; + + -- + -- here if ea holds low byte + -- Direct + -- Extended + -- Indexed + -- read memory location + -- + when single_op_read_state => + -- read memory into md + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + next_state <= single_op_exec_state; + + when single_op_exec_state => + case op_code(3 downto 0) is + when "0000" => -- neg + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0011" => -- com + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0100" => -- lsr + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0110" => -- ror + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0111" => -- asr + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1000" => -- asl + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1001" => -- rol + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1010" => -- dec + left_ctrl <= md_left; + right_ctrl <= one_right; + alu_ctrl <= alu_dec; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1011" => -- undefined + next_state <= fetch_state; + when "1100" => -- inc + left_ctrl <= md_left; + right_ctrl <= one_right; + alu_ctrl <= alu_inc; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1101" => -- tst + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + next_state <= fetch_state; + when "1110" => -- jmp + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ld16; + pc_ctrl <= load_pc; + next_state <= fetch_state; + when "1111" => -- clr + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when others => + next_state <= fetch_state; + end case; + -- + -- single operand 8 bit write + -- Write low 8 bits of ALU output + -- EA holds address + -- MD holds data + -- + when single_op_write_state => + -- write ALU low byte output + addr_ctrl <= write_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + -- + -- here if ea holds address of low byte + -- read memory location + -- + when dual_op_read8_state => + -- read first data byte from ea + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + next_state <= fetch_state; + + -- + -- Here to read a 16 bit value into MD + -- pointed to by the EA register + -- The first byte is read + -- and the EA is incremented + -- + when dual_op_read16_state => + -- increment the effective address + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- read the high byte of the 16 bit data + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + next_state <= dual_op_read16_2_state; + + -- + -- here to read the second byte + -- pointed to by EA into MD + -- + when dual_op_read16_2_state => + -- read the low byte of the 16 bit data + md_ctrl <= fetch_next_md; + addr_ctrl <= read_ad; + next_state <= fetch_state; + + -- + -- 16 bit Write state + -- EA hold address of memory to write to + -- Advance the effective address in ALU + -- decode op_code to determine which + -- register to write + -- + when dual_op_write16_state => + -- increment the effective address + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- write the ALU hi byte at ea + addr_ctrl <= write_ad; + if op_code(6) = '0' then + case op_code(3 downto 0) is + when "1111" => -- stx / sty + case pre_code is + when "00010000" => -- page 2 -- sty + dout_ctrl <= iy_hi_dout; + when others => -- page 1 -- stx + dout_ctrl <= ix_hi_dout; + end case; + when others => + dout_ctrl <= md_hi_dout; + end case; + else + case op_code(3 downto 0) is + when "1101" => -- std + dout_ctrl <= acca_dout; -- acca is high byte of ACCD + when "1111" => -- stu / sts + case pre_code is + when "00010000" => -- page 2 -- sts + dout_ctrl <= sp_hi_dout; + when others => -- page 1 -- stu + dout_ctrl <= up_hi_dout; + end case; + when others => + dout_ctrl <= md_hi_dout; + end case; + end if; + next_state <= dual_op_write8_state; + + -- + -- Dual operand 8 bit write + -- Write 8 bit accumulator + -- or low byte of 16 bit register + -- EA holds address + -- decode opcode to determine + -- which register to apply to the bus + -- Also set the condition codes here + -- + when dual_op_write8_state => + if op_code(6) = '0' then + case op_code(3 downto 0) is + when "0111" => -- sta + dout_ctrl <= acca_dout; + when "1111" => -- stx / sty + case pre_code is + when "00010000" => -- page 2 -- sty + dout_ctrl <= iy_lo_dout; + when others => -- page 1 -- stx + dout_ctrl <= ix_lo_dout; + end case; + when others => + dout_ctrl <= md_lo_dout; + end case; + else + case op_code(3 downto 0) is + when "0111" => -- stb + dout_ctrl <= accb_dout; + when "1101" => -- std + dout_ctrl <= accb_dout; -- accb is low byte of accd + when "1111" => -- stu / sts + case pre_code is + when "00010000" => -- page 2 -- sts + dout_ctrl <= sp_lo_dout; + when others => -- page 1 -- stu + dout_ctrl <= up_lo_dout; + end case; + when others => + dout_ctrl <= md_lo_dout; + end case; + end if; + -- write ALU low byte output + addr_ctrl <= write_ad; + next_state <= fetch_state; + + -- + -- 16 bit immediate addressing mode + -- + when imm16_state => + -- increment pc + pc_ctrl <= incr_pc; + -- fetch next immediate byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + st_ctrl <= pull_st; + next_state <= saved_state; + + -- + -- md & ea holds 8 bit index offset + -- calculate the effective memory address + -- using the alu + -- + when indexed_state => + -- + -- decode indexing mode + -- + if md(7) = '0' then + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= md_sign5_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + st_ctrl <= pull_st; + next_state <= saved_state; + + else + case md(3 downto 0) is + when "0000" => -- ,R+ + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + left_ctrl <= sp_left; + end case; + -- + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + next_state <= postincr1_state; + + when "0001" => -- ,R++ + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + next_state <= postincr2_state; + + when "0010" => -- ,-R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + ix_ctrl <= load_ix; + when "01" => + left_ctrl <= iy_left; + iy_ctrl <= load_iy; + when "10" => + left_ctrl <= up_left; + up_ctrl <= load_up; + when others => + -- when "11" => + left_ctrl <= sp_left; + sp_ctrl <= load_sp; + end case; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + ea_ctrl <= load_ea; + st_ctrl <= pull_st; + next_state <= saved_state; + + when "0011" => -- ,--R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + ix_ctrl <= load_ix; + when "01" => + left_ctrl <= iy_left; + iy_ctrl <= load_iy; + when "10" => + left_ctrl <= up_left; + up_ctrl <= load_up; + when others => + -- when "11" => + left_ctrl <= sp_left; + sp_ctrl <= load_sp; + end case; + right_ctrl <= two_right; + alu_ctrl <= alu_sub16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0100" => -- ,R (zero offset) + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0101" => -- ACCB,R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0110" => -- ACCA,R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= acca_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0111" => -- undefined + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "1000" => -- offset8,R + md_ctrl <= fetch_first_md; -- pick up 8 bit offset + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= index8_state; + + when "1001" => -- offset16,R + md_ctrl <= fetch_first_md; -- pick up first byte of 16 bit offset + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= index16_state; + + when "1010" => -- undefined + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "1011" => -- ACCD,R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= accd_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "1100" => -- offset8,PC + -- fetch 8 bit offset + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= pcrel8_state; + + when "1101" => -- offset16,PC + -- fetch offset + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= pcrel16_state; + + when "1110" => -- undefined + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when others => +-- when "1111" => -- [,address] + -- advance PC to pick up address + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= indexaddr_state; + end case; + end if; + + -- load index register with ea plus one + when postincr1_state => + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + case md(6 downto 5) is + when "00" => + ix_ctrl <= load_ix; + when "01" => + iy_ctrl <= load_iy; + when "10" => + up_ctrl <= load_up; + when others => + -- when "11" => + sp_ctrl <= load_sp; + end case; + -- return to previous state + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- load index register with ea plus two + when postincr2_state => + -- increment register by two (address) + left_ctrl <= ea_left; + right_ctrl <= two_right; + alu_ctrl <= alu_add16; + case md(6 downto 5) is + when "00" => + ix_ctrl <= load_ix; + when "01" => + iy_ctrl <= load_iy; + when "10" => + up_ctrl <= load_up; + when others => + -- when "11" => + sp_ctrl <= load_sp; + end case; + -- return to previous state + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + -- + -- ea = index register + md (8 bit signed offset) + -- ea holds post byte + -- + when index8_state => + case ea(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + -- ea = index reg + md + right_ctrl <= md_sign8_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- fetch low byte of 16 bit indexed offset + when index16_state => + -- advance pc + pc_ctrl <= incr_pc; + -- fetch low byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + next_state <= index16_2_state; + + -- ea = index register + md (16 bit offset) + -- ea holds post byte + when index16_2_state => + case ea(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + -- ea = index reg + md + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + -- + -- pc relative with 8 bit signed offest + -- md holds signed offset + -- + when pcrel8_state => + -- ea = pc + signed md + left_ctrl <= pc_left; + right_ctrl <= md_sign8_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- pc relative addressing with 16 bit offset + -- pick up the low byte of the offset in md + -- advance the pc + when pcrel16_state => + -- advance pc + pc_ctrl <= incr_pc; + -- fetch low byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + next_state <= pcrel16_2_state; + + -- pc relative with16 bit signed offest + -- md holds signed offset + when pcrel16_2_state => + -- ea = pc + md + left_ctrl <= pc_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- indexed to address + -- pick up the low byte of the address + -- advance the pc + when indexaddr_state => + -- advance pc + pc_ctrl <= incr_pc; + -- fetch low byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + next_state <= indexaddr2_state; + + -- indexed to absolute address + -- md holds address + -- ea hold indexing mode byte + when indexaddr2_state => + -- ea = md + left_ctrl <= pc_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- + -- load md with high byte of indirect address + -- pointed to by ea + -- increment ea + -- + when indirect_state => + -- increment ea + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- fetch high byte + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + next_state <= indirect2_state; + -- + -- load md with low byte of indirect address + -- pointed to by ea + -- ea has previously been incremented + -- + when indirect2_state => + -- fetch high byte + md_ctrl <= fetch_next_md; + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + next_state <= indirect3_state; + -- + -- complete idirect addressing + -- by loading ea with md + -- + when indirect3_state => + -- load ea with md + left_ctrl <= ea_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + ea_ctrl <= load_ea; + -- return to previous state + st_ctrl <= pull_st; + next_state <= saved_state; + + -- + -- ea holds the low byte of the absolute address + -- Move ea low byte into ea high byte + -- load new ea low byte to for absolute 16 bit address + -- advance the program counter + -- + when extended_state => -- fetch ea low byte + -- increment pc + pc_ctrl <= incr_pc; + -- fetch next effective address bytes + ea_ctrl <= fetch_next_ea; + addr_ctrl <= fetch_ad; + -- return to previous state + st_ctrl <= pull_st; + next_state <= saved_state; + + when lea_state => -- here on load effective address + -- load index register with effective address + left_ctrl <= pc_left; + right_ctrl <= ea_right; + alu_ctrl <= alu_lea; + case op_code(3 downto 0) is + when "0000" => -- leax + cc_ctrl <= load_cc; + ix_ctrl <= load_ix; + when "0001" => -- leay + cc_ctrl <= load_cc; + iy_ctrl <= load_iy; + when "0010" => -- leas + sp_ctrl <= load_sp; + when "0011" => -- leau + up_ctrl <= load_up; + when others => + null; + end case; + next_state <= fetch_state; + + -- + -- jump to subroutine + -- sp=sp-1 + -- call push_return_lo_state to save pc + -- return to jmp_state + -- + when jsr_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- call push_return_state + st_ctrl <= push_st; + return_state <= jmp_state; + next_state <= push_return_lo_state; + + -- + -- Load pc with ea + -- (JMP) + -- + when jmp_state => + -- load PC with effective address + left_ctrl <= pc_left; + right_ctrl <= ea_right; + alu_ctrl <= alu_ld16; + pc_ctrl <= load_pc; + next_state <= fetch_state; + + -- + -- long branch or branch to subroutine + -- pick up next md byte + -- md_hi = md_lo + -- md_lo = (pc) + -- pc=pc+1 + -- if a lbsr push return address + -- continue to sbranch_state + -- to evaluate conditional branches + -- + when lbranch_state => + pc_ctrl <= incr_pc; + -- fetch the next byte into md_lo + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + -- if lbsr - push return address + -- then continue on to short branch + if op_code = "00010111" then + st_ctrl <= push_st; + return_state <= sbranch_state; + next_state <= push_return_lo_state; + else + next_state <= sbranch_state; + end if; + + -- + -- here to execute conditional branch + -- short conditional branch md = signed 8 bit offset + -- long branch md = 16 bit offset + -- + when sbranch_state => + left_ctrl <= pc_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + -- Test condition for branch + if op_code(7 downto 4) = "0010" then -- conditional branch + case op_code(3 downto 0) is + when "0000" => -- bra + cond_true := (1 = 1); + when "0001" => -- brn + cond_true := (1 = 0); + when "0010" => -- bhi + cond_true := ((cc(CBIT) or cc(ZBIT)) = '0'); + when "0011" => -- bls + cond_true := ((cc(CBIT) or cc(ZBIT)) = '1'); + when "0100" => -- bcc/bhs + cond_true := (cc(CBIT) = '0'); + when "0101" => -- bcs/blo + cond_true := (cc(CBIT) = '1'); + when "0110" => -- bne + cond_true := (cc(ZBIT) = '0'); + when "0111" => -- beq + cond_true := (cc(ZBIT) = '1'); + when "1000" => -- bvc + cond_true := (cc(VBIT) = '0'); + when "1001" => -- bvs + cond_true := (cc(VBIT) = '1'); + when "1010" => -- bpl + cond_true := (cc(NBIT) = '0'); + when "1011" => -- bmi + cond_true := (cc(NBIT) = '1'); + when "1100" => -- bge + cond_true := ((cc(NBIT) xor cc(VBIT)) = '0'); + when "1101" => -- blt + cond_true := ((cc(NBIT) xor cc(VBIT)) = '1'); + when "1110" => -- bgt + cond_true := ((cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '0'); + when "1111" => -- ble + cond_true := ((cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '1'); + when others => + null; + end case; + else + cond_true := (1 = 1); -- lbra, lbsr, bsr + end if; + if cond_true then + pc_ctrl <= load_pc; + end if; + next_state <= fetch_state; + + -- + -- push return address onto the S stack + -- + -- (sp) = pc_lo + -- sp = sp - 1 + -- + when push_return_lo_state => + -- decrement the sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write PC low + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_lo_dout; + next_state <= push_return_hi_state; + + -- + -- push program counter hi byte onto the stack + -- (sp) = pc_hi + -- sp = sp + -- return to originating state + -- + when push_return_hi_state => + -- write pc hi bytes + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_hi_dout; + st_ctrl <= pull_st; + next_state <= saved_state; + + when pull_return_hi_state => + -- increment the sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pulls_ad; + next_state <= pull_return_lo_state; + + when pull_return_lo_state => + -- increment the SP + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pulls_ad; + dout_ctrl <= pc_lo_dout; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when andcc_state => + -- AND CC with md + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_andcc; + cc_ctrl <= load_cc; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when orcc_state => + -- OR CC with md + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_orcc; + cc_ctrl <= load_cc; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when tfr_state => + -- select source register + case md(7 downto 4) is + when "0000" => + left_ctrl <= accd_left; + when "0001" => + left_ctrl <= ix_left; + when "0010" => + left_ctrl <= iy_left; + when "0011" => + left_ctrl <= up_left; + when "0100" => + left_ctrl <= sp_left; + when "0101" => + left_ctrl <= pc_left; + when "1000" => + left_ctrl <= acca_left; + when "1001" => + left_ctrl <= accb_left; + when "1010" => + left_ctrl <= cc_left; + when "1011" => + left_ctrl <= dp_left; + when others => + left_ctrl <= md_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_tfr; + -- select destination register + case md(3 downto 0) is + when "0000" => -- accd + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "0001" => -- ix + ix_ctrl <= load_ix; + when "0010" => -- iy + iy_ctrl <= load_iy; + when "0011" => -- up + up_ctrl <= load_up; + when "0100" => -- sp + sp_ctrl <= load_sp; + when "0101" => -- pc + pc_ctrl <= load_pc; + when "1000" => -- acca + acca_ctrl <= load_acca; + when "1001" => -- accb + accb_ctrl <= load_accb; + when "1010" => -- cc + cc_ctrl <= load_cc; + when "1011" => --dp + dp_ctrl <= load_dp; + when others => + null; + end case; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when exg_state => + -- save destination register + case md(3 downto 0) is + when "0000" => + left_ctrl <= accd_left; + when "0001" => + left_ctrl <= ix_left; + when "0010" => + left_ctrl <= iy_left; + when "0011" => + left_ctrl <= up_left; + when "0100" => + left_ctrl <= sp_left; + when "0101" => + left_ctrl <= pc_left; + when "1000" => + left_ctrl <= acca_left; + when "1001" => + left_ctrl <= accb_left; + when "1010" => + left_ctrl <= cc_left; + when "1011" => + left_ctrl <= dp_left; + when others => + left_ctrl <= md_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_tfr; + ea_ctrl <= load_ea; + -- call tranfer microcode + st_ctrl <= push_st; + return_state <= exg1_state; + next_state <= tfr_state; + + when exg1_state => + -- restore destination + left_ctrl <= ea_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tfr; + -- save as source register + case md(7 downto 4) is + when "0000" => -- accd + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "0001" => -- ix + ix_ctrl <= load_ix; + when "0010" => -- iy + iy_ctrl <= load_iy; + when "0011" => -- up + up_ctrl <= load_up; + when "0100" => -- sp + sp_ctrl <= load_sp; + when "0101" => -- pc + pc_ctrl <= load_pc; + when "1000" => -- acca + acca_ctrl <= load_acca; + when "1001" => -- accb + accb_ctrl <= load_accb; + when "1010" => -- cc + cc_ctrl <= load_cc; + when "1011" => --dp + dp_ctrl <= load_dp; + when others => + null; + end case; + next_state <= fetch_state; + + when mul_state => + -- move acca to md + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + md_ctrl <= load_md; + next_state <= mulea_state; + + when mulea_state => + -- move accb to ea + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + ea_ctrl <= load_ea; + next_state <= muld_state; + + when muld_state => + -- clear accd + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ld8; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + next_state <= mul0_state; + + when mul0_state => + -- if bit 0 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(0) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul1_state; + + when mul1_state => + -- if bit 1 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(1) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul2_state; + + when mul2_state => + -- if bit 2 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(2) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul3_state; + + when mul3_state => + -- if bit 3 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(3) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul4_state; + + when mul4_state => + -- if bit 4 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(4) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul5_state; + + when mul5_state => + -- if bit 5 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(5) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul6_state; + + when mul6_state => + -- if bit 6 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(6) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul7_state; + + when mul7_state => + -- if bit 7 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(7) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= fetch_state; + + -- + -- Enter here on pushs + -- ea holds post byte + -- + when pshs_state => + -- decrement sp if any registers to be pushed + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + -- idle address + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + if ea(7 downto 0) = "00000000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + if ea(7) = '1' then + next_state <= pshs_pcl_state; + elsif ea(6) = '1' then + next_state <= pshs_upl_state; + elsif ea(5) = '1' then + next_state <= pshs_iyl_state; + elsif ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_pcl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_lo_dout; + next_state <= pshs_pch_state; + + when pshs_pch_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(6 downto 0) = "0000000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write pc hi + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_hi_dout; + if ea(6) = '1' then + next_state <= pshs_upl_state; + elsif ea(5) = '1' then + next_state <= pshs_iyl_state; + elsif ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + + when pshs_upl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= pushs_ad; + dout_ctrl <= up_lo_dout; + next_state <= pshs_uph_state; + + when pshs_uph_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(5 downto 0) = "000000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write pc hi + addr_ctrl <= pushs_ad; + dout_ctrl <= up_hi_dout; + if ea(5) = '1' then + next_state <= pshs_iyl_state; + elsif ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_iyl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write iy low + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_lo_dout; + next_state <= pshs_iyh_state; + + when pshs_iyh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(4 downto 0) = "00000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write iy hi + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_hi_dout; + if ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_ixl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_lo_dout; + next_state <= pshs_ixh_state; + + when pshs_ixh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(3 downto 0) = "0000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_hi_dout; + if ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_dp_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(2 downto 0) = "000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write dp + addr_ctrl <= pushs_ad; + dout_ctrl <= dp_dout; + if ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_accb_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(1 downto 0) = "00" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write accb + addr_ctrl <= pushs_ad; + dout_ctrl <= accb_dout; + if ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_acca_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(0) = '1' then + sp_ctrl <= load_sp; + else + sp_ctrl <= latch_sp; + end if; + -- write acca + addr_ctrl <= pushs_ad; + dout_ctrl <= acca_dout; + if ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_cc_state => + -- idle sp + -- write cc + addr_ctrl <= pushs_ad; + dout_ctrl <= cc_dout; + next_state <= fetch_state; + + -- + -- enter here on PULS + -- ea hold register mask + -- + when puls_state => + if ea(0) = '1' then + next_state <= puls_cc_state; + elsif ea(1) = '1' then + next_state <= puls_acca_state; + elsif ea(2) = '1' then + next_state <= puls_accb_state; + elsif ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_cc_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pulls_ad; + if ea(1) = '1' then + next_state <= puls_acca_state; + elsif ea(2) = '1' then + next_state <= puls_accb_state; + elsif ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_acca_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pulls_ad; + if ea(2) = '1' then + next_state <= puls_accb_state; + elsif ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_accb_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pulls_ad; + if ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_dp_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read dp + dp_ctrl <= pull_dp; + addr_ctrl <= pulls_ad; + if ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_ixh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pulls_ad; + next_state <= puls_ixl_state; + + when puls_ixl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pulls_ad; + if ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_iyh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull iy hi + iy_ctrl <= pull_hi_iy; + addr_ctrl <= pulls_ad; + next_state <= puls_iyl_state; + + when puls_iyl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read iy low + iy_ctrl <= pull_lo_iy; + addr_ctrl <= pulls_ad; + if ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_uph_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull up hi + up_ctrl <= pull_hi_up; + addr_ctrl <= pulls_ad; + next_state <= puls_upl_state; + + when puls_upl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read up low + up_ctrl <= pull_lo_up; + addr_ctrl <= pulls_ad; + if ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_pch_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pulls_ad; + next_state <= puls_pcl_state; + + when puls_pcl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pulls_ad; + next_state <= fetch_state; + + -- + -- Enter here on pshu + -- ea holds post byte + -- + when pshu_state => + -- decrement up if any registers to be pushed + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(7 downto 0) = "00000000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write idle bus + if ea(7) = '1' then + next_state <= pshu_pcl_state; + elsif ea(6) = '1' then + next_state <= pshu_spl_state; + elsif ea(5) = '1' then + next_state <= pshu_iyl_state; + elsif ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + -- + -- push PC onto U stack + -- + when pshu_pcl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write pc low + addr_ctrl <= pushu_ad; + dout_ctrl <= pc_lo_dout; + next_state <= pshu_pch_state; + + when pshu_pch_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(6 downto 0) = "0000000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write pc hi + addr_ctrl <= pushu_ad; + dout_ctrl <= pc_hi_dout; + if ea(6) = '1' then + next_state <= pshu_spl_state; + elsif ea(5) = '1' then + next_state <= pshu_iyl_state; + elsif ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_spl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write sp low + addr_ctrl <= pushu_ad; + dout_ctrl <= sp_lo_dout; + next_state <= pshu_sph_state; + + when pshu_sph_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(5 downto 0) = "000000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write sp hi + addr_ctrl <= pushu_ad; + dout_ctrl <= sp_hi_dout; + if ea(5) = '1' then + next_state <= pshu_iyl_state; + elsif ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_iyl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write iy low + addr_ctrl <= pushu_ad; + dout_ctrl <= iy_lo_dout; + next_state <= pshu_iyh_state; + + when pshu_iyh_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(4 downto 0) = "00000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write iy hi + addr_ctrl <= pushu_ad; + dout_ctrl <= iy_hi_dout; + if ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_ixl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write ix low + addr_ctrl <= pushu_ad; + dout_ctrl <= ix_lo_dout; + next_state <= pshu_ixh_state; + + when pshu_ixh_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(3 downto 0) = "0000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write ix hi + addr_ctrl <= pushu_ad; + dout_ctrl <= ix_hi_dout; + if ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_dp_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(2 downto 0) = "000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write dp + addr_ctrl <= pushu_ad; + dout_ctrl <= dp_dout; + if ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_accb_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(1 downto 0) = "00" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write accb + addr_ctrl <= pushu_ad; + dout_ctrl <= accb_dout; + if ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_acca_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(0) = '0' then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write acca + addr_ctrl <= pushu_ad; + dout_ctrl <= acca_dout; + if ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_cc_state => + -- idle up + -- write cc + addr_ctrl <= pushu_ad; + dout_ctrl <= cc_dout; + next_state <= fetch_state; + + -- + -- enter here on PULU + -- ea hold register mask + -- + when pulu_state => + -- idle UP + -- idle bus + if ea(0) = '1' then + next_state <= pulu_cc_state; + elsif ea(1) = '1' then + next_state <= pulu_acca_state; + elsif ea(2) = '1' then + next_state <= pulu_accb_state; + elsif ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_cc_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pullu_ad; + if ea(1) = '1' then + next_state <= pulu_acca_state; + elsif ea(2) = '1' then + next_state <= pulu_accb_state; + elsif ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_acca_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pullu_ad; + if ea(2) = '1' then + next_state <= pulu_accb_state; + elsif ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_accb_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pullu_ad; + if ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_dp_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read dp + dp_ctrl <= pull_dp; + addr_ctrl <= pullu_ad; + if ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_ixh_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pullu_ad; + next_state <= pulu_ixl_state; + + when pulu_ixl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pullu_ad; + if ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_iyh_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read iy hi + iy_ctrl <= pull_hi_iy; + addr_ctrl <= pullu_ad; + next_state <= pulu_iyl_state; + + when pulu_iyl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read iy low + iy_ctrl <= pull_lo_iy; + addr_ctrl <= pullu_ad; + if ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_sph_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read sp hi + sp_ctrl <= pull_hi_sp; + addr_ctrl <= pullu_ad; + next_state <= pulu_spl_state; + + when pulu_spl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read sp low + sp_ctrl <= pull_lo_sp; + addr_ctrl <= pullu_ad; + if ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_pch_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pullu_ad; + next_state <= pulu_pcl_state; + + when pulu_pcl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pullu_ad; + next_state <= fetch_state; + + -- + -- pop the Condition codes + -- + when rti_cc_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pulls_ad; + next_state <= rti_entire_state; + + -- + -- Added RTI cycle 11th July 2006 John Kent. + -- test the "Entire" Flag + -- that has just been popped off the stack + -- + when rti_entire_state => + -- + -- The Entire flag must be recovered from the stack + -- before testing. + -- + if cc(EBIT) = '1' then + next_state <= rti_acca_state; + else + next_state <= rti_pch_state; + end if; + + when rti_acca_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pulls_ad; + next_state <= rti_accb_state; + + when rti_accb_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pulls_ad; + next_state <= rti_dp_state; + + when rti_dp_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read dp + dp_ctrl <= pull_dp; + addr_ctrl <= pulls_ad; + next_state <= rti_ixh_state; + + when rti_ixh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pulls_ad; + next_state <= rti_ixl_state; + + when rti_ixl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pulls_ad; + next_state <= rti_iyh_state; + + when rti_iyh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read iy hi + iy_ctrl <= pull_hi_iy; + addr_ctrl <= pulls_ad; + next_state <= rti_iyl_state; + + when rti_iyl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read iy low + iy_ctrl <= pull_lo_iy; + addr_ctrl <= pulls_ad; + next_state <= rti_uph_state; + + + when rti_uph_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read up hi + up_ctrl <= pull_hi_up; + addr_ctrl <= pulls_ad; + next_state <= rti_upl_state; + + when rti_upl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read up low + up_ctrl <= pull_lo_up; + addr_ctrl <= pulls_ad; + next_state <= rti_pch_state; + + when rti_pch_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pulls_ad; + next_state <= rti_pcl_state; + + when rti_pcl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pulls_ad; + next_state <= fetch_state; + + -- + -- here on IRQ or NMI interrupt + -- pre decrement the sp + -- Idle bus cycle + -- + when int_nmiirq_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + next_state <= int_entire_state; + + -- + -- set Entire Flag on SWI, SWI2, SWI3 and CWAI, IRQ and NMI + -- clear Entire Flag on FIRQ + -- before stacking all registers + -- + when int_entire_state => + -- set entire flag + alu_ctrl <= alu_see; + cc_ctrl <= load_cc; + next_state <= int_pcl_state; + + -- + -- here on FIRQ interrupt + -- pre decrement the sp + -- Idle bus cycle + -- + when int_firq_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + next_state <= int_fast_state; + -- + -- clear Entire Flag on FIRQ + -- before stacking all registers + -- + when int_fast_state => + -- clear entire flag + alu_ctrl <= alu_cle; + cc_ctrl <= load_cc; + next_state <= int_pcl_state; + + when int_pcl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_lo_dout; + next_state <= int_pch_state; + + when int_pch_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_hi_dout; + if cc(EBIT) = '1' then + next_state <= int_upl_state; + else + next_state <= int_cc_state; + end if; + + when int_upl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write up low + addr_ctrl <= pushs_ad; + dout_ctrl <= up_lo_dout; + next_state <= int_uph_state; + + when int_uph_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= up_hi_dout; + next_state <= int_iyl_state; + + when int_iyl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_lo_dout; + next_state <= int_iyh_state; + + when int_iyh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_hi_dout; + next_state <= int_ixl_state; + + when int_ixl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_lo_dout; + next_state <= int_ixh_state; + + when int_ixh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_hi_dout; + next_state <= int_dp_state; + + when int_dp_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= pushs_ad; + dout_ctrl <= dp_dout; + next_state <= int_accb_state; + + when int_accb_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= pushs_ad; + dout_ctrl <= accb_dout; + next_state <= int_acca_state; + + when int_acca_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= pushs_ad; + dout_ctrl <= acca_dout; + next_state <= int_cc_state; + + when int_cc_state => + -- write cc + addr_ctrl <= pushs_ad; + dout_ctrl <= cc_dout; + case iv is + when NMI_VEC => + next_state <= int_maskif_state; + when SWI_VEC => + next_state <= int_maskif_state; + when FIRQ_VEC => + next_state <= int_maskif_state; + when IRQ_VEC => + next_state <= int_maski_state; + when SWI2_VEC => + next_state <= vect_hi_state; + when SWI3_VEC => + next_state <= vect_hi_state; + when others => + if op_code = "00111100" then -- CWAI + next_state <= int_cwai_state; + else + next_state <= rti_cc_state; -- spurious interrupt, do a RTI + end if; + end case; + + -- + -- wait here for an inteerupt + -- + when int_cwai_state => + if (nmi_req = '1') and (nmi_ack='0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= int_maskif_state; + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if (nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + end if; + -- + -- FIRQ is level sensitive + -- + if (firq = '1') and (cc(FBIT) = '0') then + iv_ctrl <= firq_iv; + next_state <= int_maskif_state; + -- + -- IRQ is level sensitive + -- + elsif (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_maski_state; + else + iv_ctrl <= reset_iv; + next_state <= int_cwai_state; + end if; + end if; + + when int_maski_state => + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + next_state <= vect_hi_state; + + when int_maskif_state => + alu_ctrl <= alu_seif; + cc_ctrl <= load_cc; + next_state <= vect_hi_state; + + -- + -- According to the 6809 programming manual: + -- If an interrupt is received and is masked + -- or lasts for less than three cycles, the PC + -- will advance to the next instruction. + -- If an interrupt is unmasked and lasts + -- for more than three cycles, an interrupt + -- will be generated. + -- Note that I don't wait 3 clock cycles. + -- John Kent 11th July 2006 + -- + when sync_state => + if (nmi_req = '1') and (nmi_ack='0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= int_nmiirq_state; + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if (nmi_req = '0') and (nmi_ack='1') then + iv_ctrl <= reset_iv; + nmi_ctrl <= reset_nmi; + end if; + -- + -- FIRQ is level sensitive + -- + if (firq = '1') then + if (cc(FBIT) = '0') then + iv_ctrl <= firq_iv; + next_state <= int_firq_state; + else + iv_ctrl <= reset_iv; + next_state <= fetch_state; + end if; + -- + -- IRQ is level sensitive + -- + elsif (irq = '1') then + if (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_nmiirq_state; + else + iv_ctrl <= reset_iv; + next_state <= fetch_state; + end if; + else + iv_ctrl <= reset_iv; + next_state <= sync_state; + end if; + end if; + + + when halt_state => + if halt = '1' then + next_state <= halt_state; + else + next_state <= fetch_state; + end if; + + when others => -- halt on undefine states + next_state <= error_state; + end case; +end process; + +end rtl; + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dpram.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dpram.vhd new file mode 100644 index 00000000..672d33d3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dpram.vhd @@ -0,0 +1,131 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dpram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock_a : IN STD_LOGIC ; + clock_b : IN STD_LOGIC ; + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren_a : IN STD_LOGIC := '1'; + wren_b : IN STD_LOGIC := '1'; + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END dpram; + + +ARCHITECTURE SYN OF dpram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + read_during_write_mode_port_b : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock1 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q_a <= sub_wire0(width_a-1 DOWNTO 0); + q_b <= sub_wire1(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK1", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK1", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + numwords_b => 2**widthad_a, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + read_during_write_mode_port_b => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + widthad_b => widthad_a, + width_a => width_a, + width_b => width_a, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK1" + ) + PORT MAP ( + wren_a => wren_a, + clock0 => clock_a, + wren_b => wren_b, + clock1 => clock_b, + address_a => address_a, + address_b => address_b, + data_a => data_a, + data_b => data_b, + q_a => sub_wire0, + q_b => sub_wire1 + ); + + + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dprom_2r.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dprom_2r.vhd new file mode 100644 index 00000000..a17e0e58 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dprom_2r.vhd @@ -0,0 +1,135 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dprom_2r IS + GENERIC + ( + INIT_FILE : string := ""; + --NUMWORDS_A : natural; + WIDTHAD_A : natural; + WIDTH_A : natural := 8; + --NUMWORDS_B : natural; + WIDTHAD_B : natural; + WIDTH_B : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : in std_logic_vector (WIDTHAD_A-1 downto 0); + address_b : in std_logic_vector (WIDTHAD_B-1 downto 0); + clock : in std_logic ; + q_a : out std_logic_vector (WIDTH_A-1 downto 0); + q_b : out std_logic_vector (WIDTH_B-1 downto 0) + ); +END dprom_2r; + + +ARCHITECTURE SYN OF dprom_2r IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire2 : STD_LOGIC ; + SIGNAL sub_wire3_bv : BIT_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire3 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire4_bv : BIT_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire4 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + init_file_layout : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + ram_block_type : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (WIDTHAD_A-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (WIDTHAD_B-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + sub_wire2 <= '0'; + sub_wire3_bv(WIDTH_A-1 DOWNTO 0) <= (others => '0'); + sub_wire3 <= To_stdlogicvector(sub_wire3_bv); + sub_wire4_bv(WIDTH_B-1 DOWNTO 0) <= (others => '0'); + sub_wire4 <= To_stdlogicvector(sub_wire4_bv); + q_a <= sub_wire0(WIDTH_A-1 DOWNTO 0); + q_b <= sub_wire1(WIDTH_B-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK0", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK0", + init_file => INIT_FILE, + init_file_layout => "PORT_A", + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**WIDTHAD_A, + numwords_b => 2**WIDTHAD_B, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_b, + power_up_uninitialized => "FALSE", + ram_block_type => "M9K", + widthad_a => WIDTHAD_A, + widthad_b => WIDTHAD_B, + width_a => WIDTH_A, + width_b => WIDTH_B, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK0" + ) + PORT MAP ( + wren_a => sub_wire2, + wren_b => sub_wire2, + clock0 => clock, + address_a => address_a, + address_b => address_b, + data_a => sub_wire3, + data_b => sub_wire4, + q_a => sub_wire0, + q_b => sub_wire1 + ); + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/README.md b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/README.md new file mode 100644 index 00000000..64469dad --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/README.md @@ -0,0 +1,109 @@ +# Cycle Accurate MC6809 Core + +## Details + +This is a Verilog implementation of the Motorola MC6809 and MC6809E microprocessors from late 1970s. It is intentionally implemented in a manner to make it as similar as possible to the original microprocessors. + +When this was implemented, other 6809 cores already had been written. These other cores were in use and had been verified. Although I've never used any of these cores, I'm confident that they're excellent replications of the instruction set. However, none (as far as I know) was verified to be cycle-accurate. Encouragement from several sources (particularly one very generous source) convinced me to invest the time. + +Beyond merely cycle-accurate, the goal was to attempt to preserve as much of the actual bus signals and protocols as possible. Signals such as DMABREQ, TSC, MRDY, and LIC, while infrequently used were still implemented. Bus traffic was identified with a Logic Analyzer and matched to the 6809's specs (and, truthfully, when the specs were vague, details captured from hard MC6809/MC6809E part behavior). The particulars in the Motorola specifications were replicated. + +The goal was cycle accuracy and that dictated much of the design. This was never intended to be a supercharged superset of a MC6809. If you're looking to mega-power your existing system, this might not be the best choice. (Read the section on What This Is Not for explanation.) + +## Purpose, License + +I invested the time in the desire that *people use it*. I haven't given away hardware designs or software since the 1980s. However, this seems like a worthwhile exception. + +While the source is completely available, this is *not* an "open-source *group* project". You may modify it as you see fit. If you find errors, notifying me would be appreciated. Still, this is **not** a group project. I don't intend that to come off as rude quite so much as frank. I may choose to modify the core in the future; many "open-source group projects" seem to me to become interesting social studies in design-by-commitee, and how much time is required just to manage multiple people with multiple inclinations becomes significant. I confess that this scenario is not something that appeals to me. [Outside of a day job, I prefer to work with a very small and fairly private group.] If you're enthusiastic or appreciative, use the core in a design and I'll be thrilled - tell me about it, and I'll explain to you how thrilled I am. + +Refer to the [licensing](./documentation/LICENSE.md) requirements if you choose to leverage this work. + +This isn't an attempt to deal with part scarcity. Any variant of 6809 is still quite easy to obtain (at darned cheap prices, too). In truth, *far cheaper* than an FPGA. + +The actual target are people who are reimplementing retro-devices (Arcade games, Computers) that have incorporated entire designs into an FPGA, but require cycle accuracy. The core's required space on an FPGA isn't overwhelming once you hit a certain range of parts and integration. (If you're looking at CPLDs, you might want to scale up a bit.) + +## Implementation + +The core was implemented using Motorola's original documentation. Particularly, **Figure 18** in the MC6809 and MC6809E datasheets. There is a very close mapping between those five pages of diagrams and the bus and cycle activity of the CPU. + +I have noticed that some repositories of HDL tend to be only slightly more organized than *people tossing HDL files "over the wall"*. Explanations of how they work, how you as a consumer of the HDL should deal with it, etc. tend to be lacking or totally non-existent. + +I do have an interest (outside of this project) in HDL education; not quite in tutorials, but in implementations of HDMI, USB, SATA, etc. and explaining clearly how an implementation works - along with the hardware standard at the same time. + +Please - if you're not experienced in an HDL already, this cpu core isn't likely very useful to you as a learning mechanism. There are wonderful tutorials out there already; I highly recommend learning, experimenting, and so forth *first*, before attempting to absorb this design. + +## Validation + +The design was validated in multiple fashions, including against a Vectrex from 1982, a TRS-80 Color Computer 3, A slew of Williams Arcade games, and another wave of Taito Arcade games. + +Literal bus compatibility was achieved using a [GODIL-40](http://www.oho-elektronik.de/) against the above scenarios. I can't say enough nice things about the [GODIL](http://www.oho-elektronik.de/) design. Slick, compact. It's darned nice work. The only bad thing is that they're in short supply. (Oh, and they're 10x-20x the price of a hard CPU. I wouldn't recommend replacing your daily-use CPUs with a soft CPU in a GODIL unless you have a strong reason for doing so.) + +Functional testing was against the list of platforms above. They all work. + +Actual instruction cycle testing was done with the frequent help of Erik Gavriluk, who donated his time, consideration, and even hardware to the project. In this case, MAME sports a cycle-accurate 6809 emulator; Erik generated code that ran (nearly) every instruction in every addressing mode, and then ran that through MAME and kept an absolute cycle count. I captured the soft core's bus on a GODIL running the exact same code and matched the cycle counts. To improve things, Erik provided me with the register contents after every instruction. I wrote a testbench to run the same code and validated that the registers changed after each instruction identically in each scenario and in the exact same number of cycles. The result was gratifying. (Ahem, once it worked. Believe me, the CoCo, the cycle testing, the GODIL - they *all* pointed me at problems. I won't claim that the design is flawless - nothing I've ever written truly is - but effort *has* been made to actually verify the thing, and I'll list each of the platforms and experiences. [I'll even grumpily point out that Stargate has illegal instructions in it that they're darned lucky the 6809 happened to walk over.] + +Precise control signal testing (Interrupts, /HALT) were primarily done on JROK's Williams board. The Williams arcade games had a blitter, and it used /HALT to gain the bus and take action. JROK had done some extensive timing validation to prove that his implementation of the Williams design was **accurate**. I contacted him and being as he's an incredibly nice person, he gave me some advice and access to his source + prebuilt binaries. I was quite thankful - I found bus timing errors (related to /HALT and related to /IRQ latency) in the same vein (how many cycles before the next-new-instruction does each have to be asserted in order to be serviced at the beginning of the next instruction?) as a result. A very worthwhile endeavor, as I'd been convinced that I was correct; however, his code led me to swap hard CPUs with my soft core on analyzer captures and to realize that despite my intention to match the documentation perfectly there were cases where the documentation left details unclear, requiring comparison between a hard CPU and my existing timing. + +## What This Is Not + +This isn't an attempt to deal with parts scarcity, nor prepare for it. I can't imagine that 6809s will become *hard to get* in the next decade or so. There isn't a ton of volume required and there are lots of warehouses from companies that make their entire businesses on out-of-production parts. + +This isn't an attempt to make a faster MC6809. The implementation would have been different had that been a goal. It has extensive 'dead' cycles on the bus to fit MC6809 specifications. If I conditionally remove them, it would be significantly more efficient than a real MC6809 (but once again, not cycle-accurate). + +This core does not include HD6309 instructions. I did check, and without the 'dead' cycles mentioned above (the things that make it cycle-accurate), every instruction is at least as efficient as the HD6309, and most are more efficient. (I do have advantages of 40 years of technology over the original MC6809 design team, and at least 30 years over the HD6309 design team.) New registers and instructions from the HD6309 aren't there. Once again, that wasn't the goal. [I may still enable a dynamic mechanism to switch between cycle-accurate and minimum-cycles-required as an instantiation parameter.] + +If your goal really is "a super 6809", I have [strong opinions](./documentation/super6809.md) on the topic. + +## Perfection? + +While I'd love to say that this is a perfect replica, logic-level details of the implementation of the CPU aren't available. The Motorola documentation is *excellent*, but still not complete. + +I know of inconsistencies - but inconsistencies that I expect are trivial. Anything deemed as serious has been dealt with as soon as I've been made aware of it. + +The instructions have been heavily validated, and I'm confident in their accuracy - but not quite so arrogant as to insist that there could not be an oversight. (I'm not a young man any longer; I've been wrong too many times to be as remotely as confident as I was when I was 16.) + +Should issues be discovered, expect transparency and fixes - even if it's an incredibly rare edge case. [If you're actively using `/DMABREQ`, please contact me. You're the first.] + +## How does it work? + +This isn't quite the same question as the next, but if you really want to dig in and grasp the implementation, I've written a summary of the design [here](./documentation/CoreDesign.md). + +## How Do I Use It? + +### Samples + +Application of the core in a GODIL is provided. With this, you can - although for what reason, I'm not sure - plug-replace a MC6809 or MC6809E in nearly any design (*note the oscillator in the Vectrex instead of the crystal*). This is intended to demonstrate compatibility. + +A sample implementation is provided against a cheap Xilinx Spartan 6 LX9 board from eBay (China), a cheap Altera Cyclone IV EP4CE6 board (also from eBay, China), and two Cyclone V boards from terasic. These aren't attempting to run at original speeds, so I set them to 25Mhz for no reason other than "I can". These are intended to demonstrate use of the core entirely internal to an FPGA. + +### General Guidelines + +A list of general guidelines is provided. They are likely worth reading if you consider using this core. + +## Documentation + +1. [Explanation of the CPU Core design.](./documentation/CoreDesign.md) +2. [Validation Efforts.](./documentation/Validation.md) +3. [Implementation Examples](./documentation/samples.md). + +## Who Am I? + +Despite a certain degree of desire to remain anonymous, that seems pointless in today's world. + +My name is Greg Miller; I learned assembly in 1981 on a 6809 in a TRS-80 Color Computer, leaving me *fond* of this CPU architecture. + +Not surprisingly, I work in the tech industry (although quite definitely not implementing legacy hardware in FPGAs), do not represent my employer in any capacity whatsoever here, and have a family and a mortgage. + +You can contact me via: + + gregmiller6809@gmail.com + + +## Final Thoughts + +I'll keep track of my [Final Thoughts](./documentation/FinalThoughts.md) on the project. + +## Acknowledgements + +[I do want to thank a few people](documentation/Acknowledgements.md). + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809.v new file mode 100644 index 00000000..b19d1552 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809.v @@ -0,0 +1,80 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 08:11:34 09/23/2016 +// Design Name: +// Module Name: mc6809e +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module mc6809( + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + output E, + output Q, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + input EXTAL, + input XTAL, + input nHALT, + input nRESET, + input MRDY, + input nDMABREQ + + , output [111:0] RegData + + ); + +reg [1:0] clk_phase=2'b00; + +wire CLK; +assign CLK=EXTAL; + +wire LIC; +wire BUSY; +wire AVMA; +reg rE; +reg rQ; +assign E = rE; +assign Q = rQ; + +mc6809i cpucore(.D(D), .DOut(DOut), .ADDR(ADDR), .RnW(RnW), .E(E), .Q(Q), .BS(BS), .BA(BA), .nIRQ(nIRQ), .nFIRQ(nFIRQ), + .nNMI(nNMI), .AVMA(AVMA), .BUSY(BUSY), .LIC(LIC), .nHALT(nHALT), .nRESET(nRESET), .nDMABREQ(nDMABREQ) + ,.RegData(RegData) + ); + +always @(negedge CLK) +begin + case (clk_phase) + 2'b00: + rE <= 0; + 2'b01: + rQ <= 1; + 2'b10: + rE <= 1; + 2'b11: + rQ <= 0; + endcase + + if (MRDY == 1'b1) + clk_phase <= clk_phase + 2'b01; +end + + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809e.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809e.v new file mode 100644 index 00000000..396a9fa3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809e.v @@ -0,0 +1,48 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 08:11:34 09/23/2016 +// Design Name: +// Module Name: mc6809e +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module mc6809e( + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + input E, + input Q, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + output AVMA, + output BUSY, + output LIC, + input nHALT, + input nRESET + + ); + + + +mc6809i cpucore (.D(D), .DOut(DOut), .ADDR(ADDR), .RnW(RnW), .E(E), .Q(Q), .BS(BS), .BA(BA), .nIRQ(nIRQ), .nFIRQ(nFIRQ), + .nNMI(nNMI), .AVMA(AVMA), .BUSY(BUSY), .LIC(LIC), .nHALT(nHALT), .nRESET(nRESET), .nDMABREQ(1) + ); + + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809i.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809i.v new file mode 100644 index 00000000..5725aab4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809i.v @@ -0,0 +1,4156 @@ +`timescale 1ns / 1ns +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: Greg Miller +// Copyright (c) 2016, Greg Miller +// +// Create Date: 14:26:59 08/13/2016 +// Design Name: +// Module Name: mc6809 +// Project Name: Cycle-Accurate 6809 Core +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: Intended to be standalone Vanilla Verilog. +// +// Revision: +// Revision 1.0 - Initial Release +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +// +// The 6809 has incomplete instruction decoding. A collection of instructions, if met, end up actually behaving like +// a binary-adjacent neighbor. +// +// The soft core permits three different behaviors for this situation, controlled by the instantiation parameter +// ILLEGAL_INSTRUCTIONS +// +// "GHOST" - Mimic the 6809's incomplete decoding. This is as similar to a hard 6809 as is practical. [DEFAULT] +// +// "STOP" - Cause the soft core to cease execution, placing $DEAD on the address bus and R/W to 'read'. Interrupts, +// bus control (/HALT, /DMABREQ), etc. are ignored. The core intentionally seizes in this instance. +// (Frankly, this is useful when making changes to the core and you have a logic analyzer connected.) +// +// "IGNORE"- Cause the soft core to merely ignore illegal instructions. It will consider them 1-byte instructions and +// attempt to fetch and run an exception 1 byte later. +// + +module mc6809i +#( + parameter ILLEGAL_INSTRUCTIONS="GHOST" +) +( + + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + input E, + input Q, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + output AVMA, + output BUSY, + output LIC, + input nHALT, + input nRESET, + input nDMABREQ, + output [111:0] RegData +); + +reg [7:0] DOutput; + +assign DOut = DOutput; + +reg RnWOut; // Combinatorial + +reg rLIC; +assign LIC = rLIC; + +reg rAVMA; +assign AVMA = rAVMA; + +reg rBUSY; +assign BUSY = rBUSY; + +// Bus control +// BS BA +// 0 0 normal (CPU running, CPU is master) +// 0 1 Interrupt Ack +// 1 0 Sync Ack +// 1 1 CPU has gone high-Z on A, D, R/W +// + +assign RnW = RnWOut; + + +///////////////////////////////////////////////// +// Vectors +`define RESET_VECTOR 16'HFFFE +`define NMI_VECTOR 16'HFFFC +`define SWI_VECTOR 16'HFFFA +`define IRQ_VECTOR 16'HFFF8 +`define FIRQ_VECTOR 16'HFFF6 +`define SWI2_VECTOR 16'HFFF4 +`define SWI3_VECTOR 16'HFFF2 +`define Reserved_VECTOR 16'HFFF0 + +////////////////////////////////////////////////////// +// Latched registers +// + +// The last-latched copy. +reg [7:0] a; +reg [7:0] b; +reg [15:0] x; +reg [15:0] y; +reg [15:0] u; +reg [15:0] s; +reg [15:0] pc; +reg [7:0] dp; +reg [7:0] cc; +reg [15:0] tmp; +reg [15:0] addr; +reg [15:0] ea; + + +// Debug ability to export register contents +assign RegData[7:0] = a; +assign RegData[15:8] = b; +assign RegData[31:16] = x; +assign RegData[47:32] = y; +assign RegData[63:48] = s; +assign RegData[79:64] = u; +assign RegData[87:80] = cc; +assign RegData[95:88] = dp; +assign RegData[111:96] = pc; + + + +// The values as being calculated +reg [7:0] a_nxt; +reg [7:0] b_nxt; +reg [15:0] x_nxt; +reg [15:0] y_nxt; +reg [15:0] u_nxt; +reg [15:0] s_nxt; +reg [15:0] pc_nxt; +reg [7:0] dp_nxt; +reg [7:0] cc_nxt; +reg [15:0] addr_nxt; +reg [15:0] ea_nxt; +reg [15:0] tmp_nxt; + +reg BS_nxt; +reg BA_nxt; + +// for ADDR, BS/BA, assign them to the flops +assign BS = BS_nxt; +assign BA = BA_nxt; +assign ADDR=addr_nxt; + +localparam CC_E= 8'H80; +localparam CC_F= 8'H40; +localparam CC_H= 8'H20; +localparam CC_I= 8'H10; +localparam CC_N= 8'H08; +localparam CC_Z= 8'H04; +localparam CC_V= 8'H02; +localparam CC_C= 8'H01; + +localparam CC_E_BIT= 3'd7; +localparam CC_F_BIT= 3'd6; +localparam CC_H_BIT= 3'd5; +localparam CC_I_BIT= 3'd4; +localparam CC_N_BIT= 3'd3; +localparam CC_Z_BIT= 3'd2; +localparam CC_V_BIT= 3'd1; +localparam CC_C_BIT= 3'd0; + +// Convenience calculations +reg [15:0] pc_p1; +reg [15:0] pc_p2; +reg [15:0] pc_p3; +reg [15:0] s_p1; +reg [15:0] s_m1; +reg [15:0] u_p1; +reg [15:0] u_m1; +reg [15:0] addr_p1; +reg [15:0] ea_p1; + +////////////////////////////////////////////////////// +// NMI Mask +// +// NMI is supposed to be masked - despite the name - until the 6809 loads a value into S. +// Frankly, I'm cheating slightly. If someone does a LDS #$0, it won't disable the mask. Pretty much anything else +// that changes the value of S from the default (which is currently $0) will clear the mask. A reset will set the mask again. +reg NMIMask; + +reg NMILatched; +reg NMISample; +reg NMISample2; +reg NMIClear; +reg NMIClear_nxt; +wire wNMIClear = NMIClear; + +reg IRQLatched; + +reg IRQSample; +reg IRQSample2; +reg FIRQLatched; +reg FIRQSample; +reg FIRQSample2; +reg HALTLatched; +reg HALTSample; +reg HALTSample2; +reg DMABREQLatched; +reg DMABREQSample; +reg DMABREQSample2; + +// Interrupt types +localparam INTTYPE_NMI = 3'H0 ; +localparam INTTYPE_IRQ = 3'H1 ; +localparam INTTYPE_FIRQ = 3'H2 ; +localparam INTTYPE_SWI = 3'H3 ; +localparam INTTYPE_SWI2 = 3'H4 ; +localparam INTTYPE_SWI3 = 3'H5 ; + +reg [2:0] IntType; +reg [2:0] IntType_nxt; + +////////////////////////////////////////////////////// +// Instruction Fetch Details +// +reg InstPage2; +reg InstPage3; +reg InstPage2_nxt; +reg InstPage3_nxt; + +reg [7:0] Inst1; +reg [7:0] Inst2; +reg [7:0] Inst3; +reg [7:0] Inst1_nxt; +reg [7:0] Inst2_nxt; +reg [7:0] Inst3_nxt; + + +localparam CPUSTATE_RESET = 7'd0; +localparam CPUSTATE_RESET0 = 7'd1; + +localparam CPUSTATE_RESET2 = 7'd3; +localparam CPUSTATE_FETCH_I1 = 7'd4; +localparam CPUSTATE_FETCH_I1V2 = 7'd5; +localparam CPUSTATE_FETCH_I2 = 7'd8; + +localparam CPUSTATE_LBRA_OFFSETLOW = 7'd17; +localparam CPUSTATE_LBRA_DONTCARE = 7'd18; +localparam CPUSTATE_LBRA_DONTCARE2 = 7'd19; + + + +localparam CPUSTATE_BRA_DONTCARE = 7'd20; + +localparam CPUSTATE_BSR_DONTCARE1 = 7'd21; +localparam CPUSTATE_BSR_DONTCARE2 = 7'd22; +localparam CPUSTATE_BSR_RETURNLOW = 7'd23; +localparam CPUSTATE_BSR_RETURNHIGH = 7'd24; + +localparam CPUSTATE_TFR_DONTCARE1 = 7'd26; +localparam CPUSTATE_TFR_DONTCARE2 = 7'd27; +localparam CPUSTATE_TFR_DONTCARE3 = 7'd28; +localparam CPUSTATE_TFR_DONTCARE4 = 7'd29; + +localparam CPUSTATE_EXG_DONTCARE1 = 7'd30; +localparam CPUSTATE_EXG_DONTCARE2 = 7'd31; +localparam CPUSTATE_EXG_DONTCARE3 = 7'd32; +localparam CPUSTATE_EXG_DONTCARE4 = 7'd33; +localparam CPUSTATE_EXG_DONTCARE5 = 7'd34; +localparam CPUSTATE_EXG_DONTCARE6 = 7'd35; + +localparam CPUSTATE_ABX_DONTCARE = 7'd36; + +localparam CPUSTATE_RTS_HI = 7'd38; +localparam CPUSTATE_RTS_LO = 7'd39; +localparam CPUSTATE_RTS_DONTCARE2 = 7'd40; + +localparam CPUSTATE_16IMM_LO = 7'd41; +localparam CPUSTATE_ALU16_DONTCARE = 7'd42; +localparam CPUSTATE_DIRECT_DONTCARE = 7'd43; + +localparam CPUSTATE_ALU_EA = 7'd44; + +localparam CPUSTATE_ALU_DONTCARE = 7'd46; +localparam CPUSTATE_ALU_WRITEBACK = 7'd47; + +localparam CPUSTATE_LD16_LO = 7'd48; + +localparam CPUSTATE_ST16_LO = 7'd49; +localparam CPUSTATE_ALU16_LO = 7'd50; + + + + +localparam CPUSTATE_JSR_DONTCARE = 7'd53; +localparam CPUSTATE_JSR_RETLO = 7'd54; +localparam CPUSTATE_JSR_RETHI = 7'd55; +localparam CPUSTATE_EXTENDED_ADDRLO = 7'd56; +localparam CPUSTATE_EXTENDED_DONTCARE = 7'd57; +localparam CPUSTATE_INDEXED_BASE = 7'd58; + + +localparam CPUSTATE_IDX_DONTCARE3 = 7'd60; + +localparam CPUSTATE_IDX_OFFSET_LO = 7'd61; +localparam CPUSTATE_IDX_16OFFSET_LO = 7'd62; + +localparam CPUSTATE_IDX_16OFF_DONTCARE0= 7'd63; +localparam CPUSTATE_IDX_16OFF_DONTCARE1= 7'd64; +localparam CPUSTATE_IDX_16OFF_DONTCARE2= 7'd65; +localparam CPUSTATE_IDX_16OFF_DONTCARE3= 7'd66; + +localparam CPUSTATE_IDX_DOFF_DONTCARE1 = 7'd68; +localparam CPUSTATE_IDX_DOFF_DONTCARE2 = 7'd69; +localparam CPUSTATE_IDX_DOFF_DONTCARE3 = 7'd70; +localparam CPUSTATE_IDX_PC16OFF_DONTCARE = 7'd71; + +localparam CPUSTATE_IDX_EXTIND_LO = 7'd72; +localparam CPUSTATE_IDX_EXTIND_DONTCARE = 7'd73; + +localparam CPUSTATE_INDIRECT_HI = 7'd74; +localparam CPUSTATE_INDIRECT_LO = 7'd75; +localparam CPUSTATE_INDIRECT_DONTCARE = 7'd76; +localparam CPUSTATE_MUL_ACTION = 7'd77; + +localparam CPUSTATE_PSH_DONTCARE1 = 7'd80; +localparam CPUSTATE_PSH_DONTCARE2 = 7'd81; +localparam CPUSTATE_PSH_DONTCARE3 = 7'd82; +localparam CPUSTATE_PSH_ACTION = 7'd83; + +localparam CPUSTATE_PUL_DONTCARE1 = 7'd84; +localparam CPUSTATE_PUL_DONTCARE2 = 7'd85; +localparam CPUSTATE_PUL_ACTION = 7'd86; + +localparam CPUSTATE_NMI_START = 7'd87; +localparam CPUSTATE_IRQ_DONTCARE = 7'd88; +localparam CPUSTATE_IRQ_START = 7'd89; +localparam CPUSTATE_IRQ_DONTCARE2 = 7'd90; +localparam CPUSTATE_IRQ_VECTOR_HI = 7'd91; +localparam CPUSTATE_IRQ_VECTOR_LO = 7'd92; +localparam CPUSTATE_FIRQ_START = 7'd93; +localparam CPUSTATE_CC_DONTCARE = 7'd94; +localparam CPUSTATE_SWI_START = 7'd95; + +localparam CPUSTATE_TST_DONTCARE1 = 7'd96; +localparam CPUSTATE_TST_DONTCARE2 = 7'd97; + +localparam CPUSTATE_DEBUG = 7'd98; + +localparam CPUSTATE_16IMM_DONTCARE = 7'd99; + +localparam CPUSTATE_HALTED = 7'd100; + +localparam CPUSTATE_HALT_EXIT2 = 7'd102; +localparam CPUSTATE_STOP = 7'd105; +localparam CPUSTATE_STOP2 = 7'd106; +localparam CPUSTATE_STOP3 = 7'd107; + + +localparam CPUSTATE_CWAI = 7'd108; +localparam CPUSTATE_CWAI_DONTCARE1 = 7'd109; +localparam CPUSTATE_CWAI_POST = 7'd110; + +localparam CPUSTATE_DMABREQ = 7'd111; +localparam CPUSTATE_DMABREQ_EXIT = 7'd112; +localparam CPUSTATE_SYNC = 7'd113; +localparam CPUSTATE_SYNC_EXIT = 7'd114; + +localparam CPUSTATE_INT_DONTCARE = 7'd115; + + +reg [6:0] CpuState = CPUSTATE_RESET; +reg [6:0] CpuState_nxt = CPUSTATE_RESET; + +reg [6:0] NextState = CPUSTATE_RESET; +reg [6:0] NextState_nxt = CPUSTATE_RESET; + +wire [6:0] PostIllegalState; + +// If we encounter something like an illegal addressing mode (an index mode that's illegal for instance) +// What state should we go to? +generate +if (ILLEGAL_INSTRUCTIONS=="STOP") +begin : postillegal + assign PostIllegalState = CPUSTATE_STOP; +end +else +begin + assign PostIllegalState = CPUSTATE_FETCH_I1; +end +endgenerate + + + +/////////////////////////////////////////////////////////////////////// + +// +// MapInstruction - Considering how the core was instantiated, this +// will either directly return D[7:0] *or* remap values from D[7:0] +// that relate to undefined instructions in the 6809 to the instructions +// that the 6809 actually executed when these were encountered, due to +// incomplete decoding. +// +// NEG, COM, LSR, DEC - these four instructions, in Direct, Inherent (A or B) +// Indexed, or Extended addressing do not actually decode bit 0 on the instruction. +// Thus, for instance, a $51 encountered will be executed as a $50, which is a NEGB. +// + +// Specifically, the input is an instruction; if it matches an unknown instruction that the +// 6809 is known to ghost to another instruction, the output of the function +// is the the instruction that actually gets executed. Otherwise, the output is the +// input. + +function [7:0] MapInstruction(input [7:0] i); +reg [3:0] topnyb; +reg [3:0] btmnyb; +reg [7:0] newinst; +begin + newinst = i; + + topnyb = i[7:4]; + btmnyb = i[3:0]; + + if ( (topnyb == 4'H0) || + (topnyb == 4'H4) || + (topnyb == 4'H5) || + (topnyb == 4'H6) || + (topnyb == 4'H7) + ) + begin + if (btmnyb == 4'H1) + newinst = {topnyb, 4'H0}; + if (btmnyb == 4'H2) + newinst = {topnyb, 4'H3}; + if (btmnyb == 4'H5) + newinst = {topnyb, 4'H4}; + if (btmnyb == 4'HB) + newinst = {topnyb, 4'HA}; + end + MapInstruction = newinst; +end +endfunction + + +wire [7:0] MappedInstruction; +generate +if (ILLEGAL_INSTRUCTIONS=="GHOST") +begin : ghost + assign MappedInstruction = MapInstruction(D); +end +else +begin + assign MappedInstruction = D; +end +endgenerate + + + +/////////////////////////////////////////////////////////////////////// + +function IllegalInstruction(input [7:0] i); +reg [3:0] hi; +reg [3:0] lo; +reg illegal; +begin + illegal = 1'b0; + hi = i[7:4]; + lo = i[3:0]; + if ( (hi == 4'H0) || (hi == 4'H4) || (hi == 4'H5) || (hi == 4'H6) || (hi == 4'H7) ) + begin + if ( (lo == 4'H1) || (lo == 4'H2) || (lo == 4'H5) || (lo == 4'HB) ) + illegal = 1'b1; + if (lo == 4'HE) + if ( (hi == 4'H4) || (hi == 4'H5) ) + illegal = 1'b1; + end + if (hi == 4'H3) + begin + if ( (lo == 4'H8) || (lo == 4'HE) ) + illegal = 1'b1; + end + if (hi == 4'H1) + begin + if ( (lo == 4'H4) || (lo == 4'H5) || (lo == 4'H8) || (lo == 4'HB) ) + illegal = 1'b1; + end + if ( (hi == 4'H8) || (hi == 4'HC) ) + begin + if ( (lo == 4'H7) || (lo == 4'HF) ) + illegal = 1'b1; + if ( lo == 4'HD ) + if (hi == 4'HC) + illegal = 1'b1; + end + IllegalInstruction = illegal; +end +endfunction + +wire IsIllegalInstruction; + +generate +if (ILLEGAL_INSTRUCTIONS=="GHOST") +begin : never_illegal + assign IsIllegalInstruction = 1'b0; +end +else +begin + assign IsIllegalInstruction = IllegalInstruction(Inst1); +end +endgenerate + +wire [6:0] IllegalInstructionState; +generate +if (ILLEGAL_INSTRUCTIONS=="IGNORE") +begin : illegal_state + assign IllegalInstructionState = CPUSTATE_FETCH_I1; +end +else if (ILLEGAL_INSTRUCTIONS=="STOP") +begin + assign IllegalInstructionState = CPUSTATE_STOP; +end +else +begin + assign IllegalInstructionState = 7'd0; +end +endgenerate + + +/////////////////////////////////////////////////////////////////////// + + +always @(negedge NMISample2 or posedge wNMIClear) +begin + if (wNMIClear == 1) + NMILatched <= 1; + else if (NMIMask == 0) + NMILatched <= 0; + else + NMILatched <= 1; +end + +// +// The 6809 specs say that the CPU control signals are sampled on the falling edge of Q. +// It also says that the interrupts require 1 cycle of synchronization time. +// That's vague, as it doesn't say where "1 cycle" starts or ends. Starting from the +// falling edge of Q, the next cycle notices an assertion. From checking a hard 6809 on +// an analyzer, what they really mean is that it's sampled on the falling edge of Q, +// but there's a one cycle delay from the falling edge of E (0.25 clocks from the falling edge of Q +// where the signals were sampled) before it can be noticed. +// So, SIGNALSample is the latched value at the falling edge of Q +// SIGNALSample2 is the latched value at the falling edge of E (0.25 clocks after the line above) +// SIGNALLatched is the latched value at the falling edge of E (1 cycle after the line above) +// +// /HALT and /DMABREQ are delayed one cycle less than interrupts. The 6809 specs infer these details, +// but don't list the point-of-reference they're written from (for instance, they say that an interrupt requires +// a cycle for synchronization; however, it isn't clear whether that's from the falling Q to the next falling Q, +// a complete intermediate cycle, the falling E to the next falling E, etc.) - which, in the end, required an +// analyzer on the 6809 to determine how many cycles before a new instruction an interrupt (or /HALT & /DMABREQ) +// had to be asserted to be noted instead of the next instruction running start to finish. +// +always @(negedge Q) +begin + NMISample <= nNMI; + + IRQSample <= nIRQ; + + FIRQSample <= nFIRQ; + + HALTSample <= nHALT; + + DMABREQSample <= nDMABREQ; + + +end + + +reg rnRESET=0; // The latched version of /RESET, useful 1 clock after it's latched +always @(negedge E) +begin + rnRESET <= nRESET; + + NMISample2 <= NMISample; + + IRQSample2 <= IRQSample; + IRQLatched <= IRQSample2; + + FIRQSample2 <= FIRQSample; + FIRQLatched <= FIRQSample2; + + HALTSample2 <= HALTSample; + HALTLatched <= HALTSample2; + + DMABREQSample2 <= DMABREQSample; + DMABREQLatched <= DMABREQSample2; + + + if (rnRESET == 1) + begin + CpuState <= CpuState_nxt; + + // Don't interpret this next item as "The Next State"; it's a special case 'after this + // generic state, go to this programmable state', so that a single state + // can be shared for many tasks. [Specifically, the stack push/pull code, which is used + // for PSH, PUL, Interrupts, RTI, etc. + NextState <= NextState_nxt; + + // CPU registers latch from the combinatorial circuit + a <= a_nxt; + b <= b_nxt; + x <= x_nxt; + y <= y_nxt; + s <= s_nxt; + u <= u_nxt; + cc <= cc_nxt; + dp <= dp_nxt; + pc <= pc_nxt; + tmp <= tmp_nxt; + addr <= addr_nxt; + ea <= ea_nxt; + + InstPage2 <= InstPage2_nxt; + InstPage3 <= InstPage3_nxt; + Inst1 <= Inst1_nxt; + Inst2 <= Inst2_nxt; + Inst3 <= Inst3_nxt; + NMIClear <= NMIClear_nxt; + + IntType <= IntType_nxt; + + if (s != s_nxt) // Once S changes at all (default is '0'), release the NMI Mask. + NMIMask <= 1'b0; + end + else + begin + CpuState <= CPUSTATE_RESET; + NMIMask <= 1'b1; // Mask NMI until S is loaded. + NMIClear <= 1'b0; // Mark us as not having serviced NMI + end +end + + +///////////////////////////////////////////////////////////////// +// Decode the Index byte + +localparam IDX_REG_X = 3'd0; +localparam IDX_REG_Y = 3'd1; +localparam IDX_REG_U = 3'd2; +localparam IDX_REG_S = 3'd3; +localparam IDX_REG_PC = 3'd4; + +localparam IDX_MODE_POSTINC1 = 4'd0; +localparam IDX_MODE_POSTINC2 = 4'd1; +localparam IDX_MODE_PREDEC1 = 4'd2; +localparam IDX_MODE_PREDEC2 = 4'd3; +localparam IDX_MODE_NOOFFSET = 4'd4; +localparam IDX_MODE_B_OFFSET = 4'd5; +localparam IDX_MODE_A_OFFSET = 4'd6; +localparam IDX_MODE_5BIT_OFFSET= 4'd7; // Special case, not bit pattern 7; the offset sits in the bit pattern +localparam IDX_MODE_8BIT_OFFSET= 4'd8; +localparam IDX_MODE_16BIT_OFFSET = 4'd9; +localparam IDX_MODE_D_OFFSET = 4'd11; +localparam IDX_MODE_8BIT_OFFSET_PC = 4'd12; +localparam IDX_MODE_16BIT_OFFSET_PC= 4'd13; +localparam IDX_MODE_EXTENDED_INDIRECT = 4'd15; + +// Return: +// Register base [3 bits] +// Indirect [1 bit] +// Mode [4 bits] + +function [7:0] IndexDecode(input [7:0] postbyte); +reg [2:0] regnum; +reg indirect; +reg [3:0] mode; +begin + indirect = 0; + mode = 0; + + if (postbyte[7] == 0) // 5-bit + begin + mode = IDX_MODE_5BIT_OFFSET; + end + else + begin + mode = postbyte[3:0]; + indirect = postbyte[4]; + end + if ((mode != IDX_MODE_8BIT_OFFSET_PC) && (mode != IDX_MODE_16BIT_OFFSET_PC)) + regnum[2:0] = postbyte[6:5]; + else + regnum[2:0] = IDX_REG_PC; + + IndexDecode = {indirect, mode, regnum}; +end +endfunction + +wire [3:0] IndexedMode; +wire IndexedIndirect; +wire [2:0] IndexedRegister; + +assign {IndexedIndirect, IndexedMode, IndexedRegister} = IndexDecode(Inst2); + +///////////////////////////////////////////////////////////////// +// Is this a JMP instruction? (irrespective of addressing mode) +function IsJMP(input [7:0] inst); +reg [3:0] hi; +reg [3:0] lo; +begin + hi = inst[7:4]; + lo = inst[3:0]; + + IsJMP = 0; + if ((hi == 4'H0) || (hi == 4'H6) || (hi == 4'H7)) + if (lo == 4'HE) + IsJMP = 1; +end +endfunction + +/////////////////////////////////////////////////////////////////// +// Is this an 8-bit Store? + +localparam ST8_REG_A = 1'b0; +localparam ST8_REG_B = 1'b1; + +function [1:0] IsST8(input [7:0] inst); +reg regnum; +reg IsStore; +begin + + IsStore = 1'b0; + regnum = 1'b1; + + if ( (Inst1 == 8'H97) || (Inst1 == 8'HA7) || (Inst1 == 8'HB7) ) + begin + IsStore = 1'b1; + regnum = 1'b0; + end + else if ( (Inst1 == 8'HD7) || (Inst1 == 8'HE7) || (Inst1 == 8'HF7) ) + begin + IsStore = 1'b1; + regnum = 1'b1; + end + IsST8 = {IsStore, regnum}; +end +endfunction + +wire IsStore8; +wire Store8RegisterNum; + +assign {IsStore8, Store8RegisterNum} = IsST8(Inst1); + + +///////////////////////////////////////////////////////////////// +// Is this a 16-bit Store? + +localparam ST16_REG_X = 3'd0; +localparam ST16_REG_Y = 3'd1; +localparam ST16_REG_U = 3'd2; +localparam ST16_REG_S = 3'd3; +localparam ST16_REG_D = 3'd4; + + +function [3:0] IsST16(input [7:0] inst); +reg [3:0] hi; +reg [3:0] lo; +reg [2:0] regnum; +reg IsStore; +begin + hi = inst[7:4]; + lo = inst[3:0]; + IsStore = 1'b0; + regnum = 3'b111; + + if ((inst == 8'H9F) || (inst == 8'HAF) || (inst == 8'HBF)) + begin + IsStore = 1; + if (~InstPage2) + regnum = ST16_REG_X; + else + regnum = ST16_REG_Y; + end + else if ((inst == 8'HDF) || (inst == 8'HEF) || (inst == 8'HFF)) + begin + IsStore = 1; + if (~InstPage2) + regnum = ST16_REG_U; + else + regnum = ST16_REG_S; + end + else if ((inst == 8'HDD) || (inst == 8'HED) || (inst == 8'HFD)) + begin + IsStore = 1; + regnum = ST16_REG_D; + end + + IsST16 = {IsStore, regnum}; +end +endfunction + +wire IsStore16; +wire [2:0] StoreRegisterNum; + +assign {IsStore16, StoreRegisterNum} = IsST16(Inst1); + +///////////////////////////////////////////////////////////////// +// Is this a special Immediate mode instruction, ala +// PSH, PUL, EXG, TFR, ANDCC, ORCC +function IsSpecialImm(input [7:0] inst); +reg is; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = inst[7:4]; + lo = inst[3:0]; + is = 0; + + if (hi == 4'H1) + begin + if ( (lo == 4'HA) || (lo == 4'HC) || (lo == 4'HE) || (lo == 4'HF) ) // ORCC, ANDCC, EXG, TFR + is = 1; + end + else if (hi == 4'H3) + begin + if ( (lo >= 4'H3) && (lo <= 4'H7) ) // PSHS, PULS, PSHU, PULU + is = 1; + end + else + is = 0; + + IsSpecialImm = is; +end +endfunction +wire IsSpecialImmediate = IsSpecialImm(Inst1); + +///////////////////////////////////////////////////////////////// +// Is this a one-byte instruction? [The 6809 reads 2 bytes for every instruction, minimum (it can read more). On a one-byte, we have to ensure that we haven't skipped the PC ahead. +function IsOneByteInstruction(input [7:0] inst); +reg is; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = inst[7:4]; + lo = inst[3:0]; + is = 1'b0; + + if ( (hi == 4'H4) || (hi == 4'H5) ) + is = 1'b1; + else if ( hi == 4'H1) + begin + if ( (lo == 4'H2) || (lo == 4'H3) || (lo == 4'H9) || (lo == 4'HD) ) + is = 1'b1; + end + else if (hi == 4'H3) + begin + if ( (lo >= 4'H9) && (lo != 4'HC) ) + is = 1'b1; + end + else + is = 1'b0; + + IsOneByteInstruction = is; +end +endfunction + +///////////////////////////////////////////////////////////////// +// ALU16 - Simpler than the 8 bit ALU + +localparam ALU16_REG_X = 3'd0; +localparam ALU16_REG_Y = 3'd1; +localparam ALU16_REG_U = 3'd2; +localparam ALU16_REG_S = 3'd3; +localparam ALU16_REG_D = 3'd4; + +function [2:0] ALU16RegFromInst(input Page2, input Page3, input [7:0] inst); +reg [2:0] srcreg; +begin + srcreg = 3'b111; // default + casex ({Page2, Page3, inst}) // Note pattern for the matching below + 10'b1010xx0011: // 1083, 1093, 10A3, 10B3 CMPD + srcreg = ALU16_REG_D; + 10'b1010xx1100: // 108C, 109C, 10AC, 10BC CMPY + srcreg = ALU16_REG_Y; + 10'b0110xx0011: // 1183, 1193, 11A3, 11B3 CMPU + srcreg = ALU16_REG_U; + 10'b0110xx1100: // 118C, 119C, 11AC, 11BC CMPS + srcreg = ALU16_REG_S; + 10'b0010xx1100: // 8C,9C,AC,BC CMPX + srcreg = ALU16_REG_X; + + 10'b0011xx0011: // C3, D3, E3, F3 ADDD + srcreg = ALU16_REG_D; + + 10'b0011xx1100: // CC, DC, EC, FC LDD + srcreg = ALU16_REG_D; + 10'b0010xx1110: // 8E LDX, 9E LDX, AE LDX, BE LDX + srcreg = ALU16_REG_X; + 10'b0011xx1110: // CE LDU, DE LDU, EE LDU, FE LDU + srcreg = ALU16_REG_U; + 10'b1010xx1110: // 108E LDY, 109E LDY, 10AE LDY, 10BE LDY + srcreg = ALU16_REG_Y; + 10'b1011xx1110: // 10CE LDS, 10DE LDS, 10EE LDS, 10FE LDS + srcreg = ALU16_REG_S; + 10'b0010xx0011: // 83, 93, A3, B3 SUBD + srcreg = ALU16_REG_D; + + 10'H03A: // 3A ABX + srcreg = ALU16_REG_X; + 10'H030: // 30 LEAX + srcreg = ALU16_REG_X; + 10'H031: // 31 LEAY + srcreg = ALU16_REG_Y; + 10'H032: // 32 LEAS + srcreg = ALU16_REG_S; + 10'H033: // 32 LEAU + srcreg = ALU16_REG_U; + default: + srcreg = 3'b111; + endcase + ALU16RegFromInst = srcreg; +end +endfunction + +wire [2:0] ALU16Reg = ALU16RegFromInst(InstPage2, InstPage3, Inst1); + +localparam ALUOP16_SUB = 3'H0; +localparam ALUOP16_ADD = 3'H1; +localparam ALUOP16_LD = 3'H2; +localparam ALUOP16_CMP = 3'H3; +localparam ALUOP16_LEA = 3'H4; +localparam ALUOP16_INVALID = 3'H7; + +function [3:0] ALU16OpFromInst(input Page2, input Page3, input [7:0] inst); +reg [2:0] aluop; +reg writeback; +begin + aluop = 3'b111; + writeback = 1'b1; + casex ({Page2, Page3, inst}) + 10'b1010xx0011: // 1083, 1093, 10A3, 10B3 CMPD + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b1010xx1100: // 108C, 109C, 10AC, 10BC CMPY + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b0110xx0011: // 1183, 1193, 11A3, 11B3 CMPU + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b0110xx1100: // 118C, 119C, 11AC, 11BC CMPS + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b0010xx1100: // 8C,9C,AC,BC CMPX + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + + 10'b0011xx0011: // C3, D3, E3, F3 ADDD + aluop = ALUOP16_ADD; + + 10'b0011xx1100: // CC, DC, EC, FC LDD + aluop = ALUOP16_LD; + 10'b001xxx1110: // 8E LDX, 9E LDX, AE LDX, BE LDX, CE LDU, DE LDU, EE LDU, FE LDU + aluop = ALUOP16_LD; + 10'b101xxx1110: // 108E LDY, 109E LDY, 10AE LDY, 10BE LDY, 10CE LDS, 10DE LDS, 10EE LDS, 10FE LDS + aluop = ALUOP16_LD; + + 10'b0010xx0011: // 83, 93, A3, B3 SUBD + aluop = ALUOP16_SUB; + + 10'H03A: // 3A ABX + aluop = ALUOP16_ADD; + + 10'b00001100xx: // $30-$33, LEAX, LEAY, LEAS, LEAU + aluop = ALUOP16_LEA; + + default: + aluop = ALUOP16_INVALID; + endcase + ALU16OpFromInst = {writeback, aluop}; +end +endfunction + +wire ALU16OpWriteback; +wire [2:0] ALU16Opcode; + +assign {ALU16OpWriteback, ALU16Opcode} = ALU16OpFromInst(InstPage2, InstPage3, Inst1); + +wire IsALU16Opcode = (ALU16Opcode != 3'b111); + +function [23:0] ALU16Inst(input [2:0] operation16, input [15:0] a_arg, input [15:0] b_arg, input [7:0] cc_arg); +reg [7:0] cc_out; +reg [15:0] ALUFn; +reg carry; +reg borrow; +begin + cc_out = cc_arg; + case (operation16) + ALUOP16_ADD: + begin + {cc_out[CC_C_BIT], ALUFn} = {1'b0, a_arg} + b_arg; + cc_out[CC_V_BIT] = (a_arg[15] & b_arg[15] & ~ALUFn[15]) | (~a_arg[15] & ~b_arg[15] & ALUFn[15]); + end + + ALUOP16_SUB: + begin + {cc_out[CC_C_BIT], ALUFn} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[15] & ~b_arg[15] & ~ALUFn[15]) | (~a_arg[15] & b_arg[15] & ALUFn[15]); + end + + ALUOP16_LD: + begin + ALUFn = b_arg; + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP16_CMP: + begin + {cc_out[CC_C_BIT], ALUFn} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[15] & ~b_arg[15] & ~ALUFn[15]) | (~a_arg[15] & b_arg[15] & ALUFn[15]); + end + + ALUOP16_LEA: + begin + ALUFn = a_arg; + end + + default: + ALUFn = 16'H0000; + + endcase + cc_out[CC_Z_BIT] = (ALUFn[15:0] == 16'H0000); + if (operation16 != ALUOP16_LEA) + cc_out[CC_N_BIT] = ALUFn[15]; + ALU16Inst = {cc_out, ALUFn}; +end +endfunction + +reg [2:0] ALU16_OP; +reg [15:0] ALU16_A; +reg [15:0] ALU16_B; +reg [7:0] ALU16_CC; + +// Top 8 bits == CC, bottom 8 bits = output value +wire [23:0] ALU16 = ALU16Inst(ALU16_OP, ALU16_A, ALU16_B, ALU16_CC); + + +///////////////////////////////////////////////////////////////// +// ALU + +// The ops are organized from the 4 low-order bits of the instructions for the first set of ops, then 16-31 are the second set - even though bit 4 isn't representative. +localparam ALUOP_NEG = 5'd0; +localparam ALUOP_COM = 5'd3; +localparam ALUOP_LSR = 5'd4; +localparam ALUOP_ROR = 5'd6; +localparam ALUOP_ASR = 5'd7; +localparam ALUOP_ASL = 5'd8; +localparam ALUOP_LSL = 5'd8; +localparam ALUOP_ROL = 5'd9; +localparam ALUOP_DEC = 5'd10; +localparam ALUOP_INC = 5'd12; +localparam ALUOP_TST = 5'd13; +localparam ALUOP_CLR = 5'd15; + +localparam ALUOP_SUB = 5'd16; +localparam ALUOP_CMP = 5'd17; +localparam ALUOP_SBC = 5'd18; +localparam ALUOP_AND = 5'd20; +localparam ALUOP_BIT = 5'd21; +localparam ALUOP_LD = 5'd22; +localparam ALUOP_EOR = 5'd24; +localparam ALUOP_ADC = 5'd25; +localparam ALUOP_OR = 5'd26; +localparam ALUOP_ADD = 5'd27; + +function [5:0] ALUOpFromInst(input [7:0] inst); +reg [4:0] op; +reg writeback; +begin + // Okay, this turned out to be simpler than I expected ... + op = {inst[7], inst[3:0]}; + case (op) + ALUOP_CMP: + writeback = 0; + ALUOP_TST: + writeback = 0; + ALUOP_BIT: + writeback = 0; + default: + writeback = 1; + endcase + ALUOpFromInst = {writeback, op}; +end +endfunction + +wire [4:0] ALU8Op; +wire ALU8Writeback; + +assign {ALU8Writeback, ALU8Op} = ALUOpFromInst(Inst1); + +reg [7:0] ALU_A; +reg [7:0] ALU_B; +reg [7:0] ALU_CC; +reg [4:0] ALU_OP; + + +function [15:0] ALUInst(input [4:0] operation, input [7:0] a_arg, input [7:0] b_arg, input [7:0] cc_arg); +reg [7:0] cc_out; +reg [7:0] ALUFn; +reg carry; +reg borrow; +begin + cc_out = cc_arg; + case (operation) + ALUOP_NEG: + begin + ALUFn[7:0] = ~a_arg + 1'b1; + cc_out[CC_C_BIT] = (ALUFn[7:0] != 8'H00); + cc_out[CC_V_BIT] = (a_arg == 8'H80); + end + + ALUOP_LSL: + begin + {cc_out[CC_C_BIT], ALUFn} = {a_arg, 1'b0}; + cc_out[CC_V_BIT] = a_arg[7] ^ a_arg[6]; + end + + ALUOP_LSR: + begin + {ALUFn, cc_out[CC_C_BIT]} = {1'b0, a_arg}; + end + + ALUOP_ASR: + begin + {ALUFn, cc_out[CC_C_BIT]} = {a_arg[7], a_arg}; + end + + ALUOP_ROL: + begin + {cc_out[CC_C_BIT], ALUFn} = {a_arg, cc_arg[CC_C_BIT]}; + cc_out[CC_V_BIT] = a_arg[7] ^ a_arg[6]; + end + + ALUOP_ROR: + begin + {ALUFn, cc_out[CC_C_BIT]} = {cc_arg[CC_C_BIT], a_arg}; + end + + ALUOP_OR: + begin + ALUFn[7:0] = (a_arg | b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_ADD: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} + {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[7] & b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & ~b_arg[7] & ALUFn[7]); + cc_out[CC_H_BIT] = a_arg[4] ^ b_arg[4] ^ ALUFn[4]; + end + + ALUOP_SUB: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[7] & ~b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & b_arg[7] & ALUFn[7]); + end + + ALUOP_AND: + begin + ALUFn[7:0] = (a_arg & b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_BIT: + begin + ALUFn[7:0] = (a_arg & b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_EOR: + begin + ALUFn[7:0] = (a_arg ^ b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_CMP: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[7] & ~b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & b_arg[7] & ALUFn[7]); + end + + ALUOP_COM: + begin + ALUFn[7:0] = ~a_arg; + cc_out[CC_V_BIT] = 1'b0; + cc_out[CC_C_BIT] = 1'b1; + end + + ALUOP_ADC: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} + {1'b0, b_arg} + cc_arg[CC_C_BIT]; + cc_out[CC_V_BIT] = (a_arg[7] & b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & ~b_arg[7] & ALUFn[7]); + cc_out[CC_H_BIT] = a_arg[4] ^ b_arg[4] ^ ALUFn[4]; + end + + ALUOP_LD: + begin + ALUFn[7:0] = b_arg; + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_INC: + begin + {carry, ALUFn} = {1'b0, a_arg} + 1'b1; + cc_out[CC_V_BIT] = (~a_arg[7] & ALUFn[7]); + end + + ALUOP_DEC: + begin + {carry, ALUFn[7:0]} = {1'b0, a_arg} - 1'b1; + cc_out[CC_V_BIT] = (a_arg[7] & ~ALUFn[7]); + end + + ALUOP_CLR: + begin + ALUFn[7:0] = 8'H00; + cc_out[CC_V_BIT] = 1'b0; + cc_out[CC_C_BIT] = 1'b0; + end + + ALUOP_TST: + begin + ALUFn[7:0] = a_arg; + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_SBC: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} - {1'b0, b_arg} - cc_arg[CC_C_BIT]; + cc_out[CC_V_BIT] = (a_arg[7] & ~b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & b_arg[7] & ALUFn[7]); + end + + default: + ALUFn = 8'H00; + + endcase + + cc_out[CC_N_BIT] = ALUFn[7]; + cc_out[CC_Z_BIT] = (ALUFn == 8'H00); + ALUInst = {cc_out[7:0], ALUFn[7:0]}; +end +endfunction + + +// Top 8 bits == CC, bottom 8 bits = output value +wire [15:0] ALU = ALUInst(ALU_OP, ALU_A, ALU_B, ALU_CC); + +//////////////////////////////////////////////////////////// + +localparam TYPE_INHERENT = 3'd0; +localparam TYPE_IMMEDIATE = 3'd1; +localparam TYPE_DIRECT = 3'd2; +localparam TYPE_RELATIVE = 3'd3; +localparam TYPE_INDEXED = 3'd4; +localparam TYPE_EXTENDED = 3'd5; + +localparam TYPE_INVALID = 3'd7; + +// Function to decode the addressing mode the instruction uses +function [2:0] addressing_mode_type(input [7:0] inst); +begin + casex (inst) + 8'b0000???? : addressing_mode_type = TYPE_DIRECT; + 8'b0001???? : + begin + casex (inst[3:0]) + 4'b0010: + addressing_mode_type = TYPE_INHERENT; + + 4'b0011: + addressing_mode_type = TYPE_INHERENT; + + 4'b1001: + addressing_mode_type = TYPE_INHERENT; + + 4'b1101: + addressing_mode_type = TYPE_INHERENT; + + 4'b0110: + addressing_mode_type = TYPE_RELATIVE; + + 4'b0111: + addressing_mode_type = TYPE_RELATIVE; + + 4'b1010: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1100: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1110: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1111: + addressing_mode_type = TYPE_IMMEDIATE; + + default: + addressing_mode_type = TYPE_INVALID; + endcase + end + + 8'b0010????: addressing_mode_type = TYPE_RELATIVE; + 8'b0011????: + begin + casex(inst[3:0]) + 4'b00??: + addressing_mode_type = TYPE_INDEXED; + + 4'b01??: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1001: + addressing_mode_type = TYPE_INHERENT; + + 4'b101?: + addressing_mode_type = TYPE_INHERENT; + + 4'b1100: + addressing_mode_type = TYPE_INHERENT; + + 4'b1101: + addressing_mode_type = TYPE_INHERENT; + + 4'b1111: + addressing_mode_type = TYPE_INHERENT; + + default: + addressing_mode_type = TYPE_INVALID; + endcase + end + + 8'b010?????: addressing_mode_type = TYPE_INHERENT; + + 8'b0110????: addressing_mode_type = TYPE_INDEXED; + + 8'b0111????: addressing_mode_type = TYPE_EXTENDED; + + 8'b1000????: + begin + casex (inst[3:0]) + 4'b0111: addressing_mode_type = TYPE_INVALID; + 4'b1111: addressing_mode_type = TYPE_INVALID; + 4'b1101: addressing_mode_type = TYPE_RELATIVE; + default: addressing_mode_type = TYPE_IMMEDIATE; + endcase + end + + 8'b1001????: addressing_mode_type = TYPE_DIRECT; + 8'b1010????: addressing_mode_type = TYPE_INDEXED; + 8'b1011????: addressing_mode_type = TYPE_EXTENDED; + 8'b1100????: addressing_mode_type = TYPE_IMMEDIATE; + 8'b1101????: addressing_mode_type = TYPE_DIRECT; + 8'b1110????: addressing_mode_type = TYPE_INDEXED; + 8'b1111????: addressing_mode_type = TYPE_EXTENDED; + + endcase +end +endfunction + +wire [2:0] AddrModeType = addressing_mode_type(Inst1); + +////////////////////////////////////////////////// + +// Individual opcodes that are the top of a column of states. + +localparam OPCODE_INH_ABX = 8'H3A; +localparam OPCODE_INH_RTS = 8'H39; +localparam OPCODE_INH_RTI = 8'H3B; +localparam OPCODE_INH_CWAI = 8'H3C; +localparam OPCODE_INH_MUL = 8'H3D; +localparam OPCODE_INH_SWI = 8'H3F; +localparam OPCODE_INH_SEX = 8'H1D; +localparam OPCODE_INH_NOP = 8'H12; +localparam OPCODE_INH_SYNC = 8'H13; +localparam OPCODE_INH_DAA = 8'H19; + +localparam OPCODE_IMM_ORCC = 8'H1A; +localparam OPCODE_IMM_ANDCC = 8'H1C; +localparam OPCODE_IMM_EXG = 8'H1E; +localparam OPCODE_IMM_TFR = 8'H1F; +localparam OPCODE_IMM_PSHS = 8'H34; +localparam OPCODE_IMM_PULS = 8'H35; +localparam OPCODE_IMM_PSHU = 8'H36; +localparam OPCODE_IMM_PULU = 8'H37; + +localparam OPCODE_IMM_SUBD = 8'H83; +localparam OPCODE_IMM_CMPX = 8'H8C; +localparam OPCODE_IMM_LDX = 8'H8E; +localparam OPCODE_IMM_ADDD = 8'HC3; +localparam OPCODE_IMM_LDD = 8'HCC; +localparam OPCODE_IMM_LDU = 8'HCE; +localparam OPCODE_IMM_CMPD = 8'H83; // Page2 +localparam OPCODE_IMM_CMPY = 8'H8C; // Page2 +localparam OPCODE_IMM_LDY = 8'H8E; // Page2 +localparam OPCODE_IMM_LDS = 8'HCE; // Page2 +localparam OPCODE_IMM_CMPU = 8'H83; // Page3 +localparam OPCODE_IMM_CMPS = 8'H8C; // Page3 + +localparam EXGTFR_REG_D = 4'H0; +localparam EXGTFR_REG_X = 4'H1; +localparam EXGTFR_REG_Y = 4'H2; +localparam EXGTFR_REG_U = 4'H3; +localparam EXGTFR_REG_S = 4'H4; +localparam EXGTFR_REG_PC = 4'H5; +localparam EXGTFR_REG_A = 4'H8; +localparam EXGTFR_REG_B = 4'H9; +localparam EXGTFR_REG_CC = 4'HA; +localparam EXGTFR_REG_DP = 4'HB; + +function IsALU8Set0(input [7:0] instr); +reg result; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = instr[7:4]; + lo = instr[3:0]; + if ( (hi == 4'H0) || (hi == 4'H4) || (hi == 4'H5) || (hi == 4'H6) || (hi == 4'H7) ) + begin + if ( (lo != 4'H1) && (lo != 4'H2) && (lo != 4'H5) && (lo != 4'HB) && (lo != 4'HE) ) // permit NEG, COM, LSR, ROR, ASR, ASL/LSL, ROL, DEC, INC, TST, CLR + result = 1; + else + result = 0; + end + else + result = 0; + IsALU8Set0 = result; +end +endfunction + +function IsALU8Set1(input [7:0] instr); +reg result; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = instr[7:4]; + lo = instr[3:0]; + if ( (hi >= 4'H8) ) + begin + if ( (lo <= 4'HB) && (lo != 4'H3) && (lo != 4'H7) ) // 8-bit SUB, CMP, SBC, AND, BIT, LD, EOR, ADC, OR, ADD + result = 1; + else + result = 0; + end + else + result = 0; + IsALU8Set1 = result; +end +endfunction + +// Determine if the instruction is performing an 8-bit op (ALU only) +function ALU8BitOp(input [7:0] instr); +begin + ALU8BitOp = IsALU8Set0(instr) | IsALU8Set1(instr); +end +endfunction + +wire Is8BitInst = ALU8BitOp(Inst1); + +function IsRegA(input [7:0] instr); +reg result; +reg [3:0] hi; +begin + hi = instr[7:4]; + if ((hi == 4'H4) || (hi == 4'H8) || (hi == 4'H9) || (hi == 4'HA) || (hi == 4'HB) ) + result = 1; + else + result = 0; + IsRegA = result; +end +endfunction + +wire IsTargetRegA = IsRegA(Inst1); + +// +// +// Decode +// 00-0F = DIRECT +// 10-1F = INHERENT, RELATIVE, IMMEDIATE +// 20-2F = RELATIVE +// 30-3F = INDEXED, IMMEDIATE (pus, pul), INHERENT +// 40-4F = INHERENT +// 50-5F = INHERENT +// 60-6F = INDEXED +// 70-7F = EXTENDED +// 80-8F = IMMEDIATE, RELATIVE (BSR) +// 90-9F = DIRECT +// A0-AF = INDEXED +// B0-BF = EXTENDED +// C0-CF = IMMEDIATE +// D0-DF = DIRECT +// E0-EF = INDEXED +// F0-FF = EXTENDED + +// DIRECT; 00-0F, 90-9F, D0-DF +// INHERENT; 10-1F (12, 13, 19, 1D), 30-3F (39-3F), 40-4F, 50-5F, +// RELATIVE: 10-1F (16, 17), 20-2F, 80-8F (8D) +// IMMEDIATE: 10-1F (1A, 1C, 1E, 1F), 30-3F (34-37), 80-8F (80-8C, 8E), C0-CF +// INDEXED: 60-6F, A0-AF, E0-EF +// EXTENDED: 70-7F, B0-Bf, F0-FF + +localparam INST_LBRA = 8'H16; // always -- shitty numbering, damnit +localparam INST_LBSR = 8'H17; // + +localparam INST_BRA = 8'H20; // always +localparam INST_BRN = 8'H21; // never +localparam INST_BHI = 8'H22; // CC.Z = 0 && CC.C = 0 +localparam INST_BLS = 8'H23; // CC.Z != 0 && CC.C != 0 +localparam INST_BCC = 8'H24; // CC.C = 0 +localparam INST_BHS = 8'H24; // same as BCC +localparam INST_BCS = 8'H25; // CC.C = 1 +localparam INST_BLO = 8'H25; // same as BCS +localparam INST_BNE = 8'H26; // CC.Z = 0 +localparam INST_BEQ = 8'H27; // CC.Z = 1 +localparam INST_BVC = 8'H28; // V = 1 +localparam INST_BVS = 8'H29; // V = 0 +localparam INST_BPL = 8'H2A; // CC.N = 0 +localparam INST_BMI = 8'H2B; // CC.N = 1 +localparam INST_BGE = 8'H2C; // CC.N = CC.V +localparam INST_BLT = 8'H2D; // CC.N != CC.V +localparam INST_BGT = 8'H2E; // CC.N = CC.V && CC.Z = 0 +localparam INST_BLE = 8'H2F; // CC.N != CC.V && CC.Z = 1 +localparam INST_BSR = 8'H8D; // always + +localparam NYB_BRA = 4'H0; // always +localparam NYB_BRN = 4'H1; // never +localparam NYB_BHI = 4'H2; // CC.Z = 0 && CC.C = 0 +localparam NYB_BLS = 4'H3; // CC.Z != 0 && CC.C != 0 +localparam NYB_BCC = 4'H4; // CC.C = 0 +localparam NYB_BHS = 4'H4; // same as BCC +localparam NYB_BCS = 4'H5; // CC.C = 1 +localparam NYB_BLO = 4'H5; // same as BCS +localparam NYB_BNE = 4'H6; // CC.Z = 0 +localparam NYB_BEQ = 4'H7; // CC.Z = 1 +localparam NYB_BVC = 4'H8; // V = 0 +localparam NYB_BVS = 4'H9; // V = 1 +localparam NYB_BPL = 4'HA; // CC.N = 0 +localparam NYB_BMI = 4'HB; // CC.N = 1 +localparam NYB_BGE = 4'HC; // CC.N = CC.V +localparam NYB_BLT = 4'HD; // CC.N != CC.V +localparam NYB_BGT = 4'HE; // CC.N = CC.V && CC.Z = 0 +localparam NYB_BLE = 4'HF; // CC.N != CC.V && CC.Z = 1 + + + +function take_branch(input [7:0] Inst1, input [7:0] cc); +begin + take_branch = 0; //default + if ( (Inst1 == INST_BSR) || (Inst1 == INST_LBSR) || (Inst1 == INST_LBRA) ) + take_branch = 1; + else + case (Inst1[3:0]) + NYB_BRA: + take_branch = 1; + NYB_BRN: + take_branch = 0; + NYB_BHI: + if ( ( cc[CC_Z_BIT] | cc[CC_C_BIT] ) == 0) + take_branch = 1; + NYB_BLS: + if ( cc[CC_Z_BIT] | cc[CC_C_BIT] ) + take_branch = 1; + NYB_BCC: + if ( cc[CC_C_BIT] == 0 ) + take_branch = 1; + NYB_BCS: + if ( cc[CC_C_BIT] == 1 ) + take_branch = 1; + NYB_BNE: + if ( cc[CC_Z_BIT] == 0 ) + take_branch = 1; + NYB_BEQ: + if ( cc[CC_Z_BIT] == 1 ) + take_branch = 1; + NYB_BVC: + if ( cc[CC_V_BIT] == 0) + take_branch = 1; + NYB_BVS: + if ( cc[CC_V_BIT] == 1) + take_branch = 1; + NYB_BPL: + if ( cc[CC_N_BIT] == 0 ) + take_branch = 1; + NYB_BMI: + if (cc[CC_N_BIT] == 1) + take_branch = 1; + NYB_BGE: + if ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 0) + take_branch = 1; + NYB_BLT: + if ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 1) + take_branch = 1; + NYB_BGT: + if ( ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 0) & (cc[CC_Z_BIT] == 0) ) + take_branch = 1; + NYB_BLE: + if ( ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 1) | (cc[CC_Z_BIT] == 1) ) + take_branch = 1; + endcase +end +endfunction + +wire TakeBranch = take_branch(Inst1, cc); + +///////////////////////////////////////////////////////////////////// +// Convenience function for knowing the contents for TFR, EXG +function [15:0] EXGTFRRegister(input [3:0] regid); +begin + case (regid) + EXGTFR_REG_D: + EXGTFRRegister = {a, b}; + EXGTFR_REG_X: + EXGTFRRegister = x; + EXGTFR_REG_Y: + EXGTFRRegister = y; + EXGTFR_REG_U: + EXGTFRRegister = u; + EXGTFR_REG_S: + EXGTFRRegister = s; + EXGTFR_REG_PC: + EXGTFRRegister = pc_p1; // For both EXG and TFR, this is used on the 2nd byte in the instruction's cycle. The PC intended to transfer is actually the next byte. + EXGTFR_REG_DP: + EXGTFRRegister = {8'HFF, dp}; + EXGTFR_REG_A: + EXGTFRRegister = {8'HFF, a}; + EXGTFR_REG_B: + EXGTFRRegister = {8'HFF, b}; + EXGTFR_REG_CC: + EXGTFRRegister = {8'HFF, cc}; + default: + EXGTFRRegister = 16'H0; + endcase +end +endfunction +wire [15:0] EXGTFRRegA = EXGTFRRegister(D[7:4]); +wire [15:0] EXGTFRRegB = EXGTFRRegister(D[3:0]); + +// CPU state machine +always @(*) +begin + rLIC = 1'b0; + rAVMA = 1'b1; + rBUSY = 1'b0; + + addr_nxt = 16'HFFFF; + pc_p1 = (pc+16'H1); + pc_p2 = (pc+16'H2); + pc_p3 = (pc+16'H3); + s_p1 = (s+16'H1); + s_m1 = (s-16'H1); + u_p1 = (u+16'H1); + u_m1 = (u-16'H1); + addr_p1 = (addr+16'H1); + ea_p1 = (ea+16'H1); + BS_nxt = 1'b0; + BA_nxt = 1'b0; + + // These may be overridden below, but the "next" version by default should be + // the last latched version. + IntType_nxt = IntType; + NMIClear_nxt = NMIClear; + NextState_nxt = NextState; + a_nxt = a; + b_nxt = b; + x_nxt = x; + y_nxt = y; + s_nxt = s; + u_nxt = u; + cc_nxt = cc; + dp_nxt = dp; + pc_nxt = pc; + tmp_nxt = tmp; + ea_nxt = ea; + + ALU_A = 8'H00; + ALU_B = 8'H00; + ALU_CC = 8'H00; + ALU_OP = 5'H00; + + ALU16_OP = 3'H0; + ALU16_A = 16'H0000; + ALU16_B = 16'H0000; + ALU16_CC = 8'H00; + + DOutput = 8'H00; + RnWOut = 1'b1; // read + + Inst1_nxt = Inst1; + Inst2_nxt = Inst2; + Inst3_nxt = Inst3; + InstPage2_nxt = InstPage2; + InstPage3_nxt = InstPage3; + + CpuState_nxt = CpuState; + + case (CpuState) + CPUSTATE_RESET: + begin + addr_nxt = 16'HFFFF; + a_nxt = 0; + b_nxt = 0; + x_nxt = 0; + y_nxt = 0; + s_nxt = 16'HFFFD; // Take care about removing the reset of S. There's logic depending on the delta between s and s_nxt to clear NMIMask. + u_nxt = 0; + cc_nxt = CC_F | CC_I; // reset disables interrupts + dp_nxt = 0; + ea_nxt = 16'HFFFF; + + RnWOut = 1; // read + rLIC = 1'b0; // Instruction incomplete + NMIClear_nxt= 1'b0; + IntType_nxt = 3'b111; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_RESET0; + end + + CPUSTATE_RESET0: + begin + addr_nxt = `RESET_VECTOR; + rBUSY = 1'b1; + pc_nxt[15:8] = D[7:0]; + BS_nxt = 1'b1; // ACK RESET + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_RESET2; + end + + CPUSTATE_RESET2: + begin + addr_nxt = addr_p1; + BS_nxt = 1'b1; // ACK RESET + pc_nxt[7:0] = D[7:0]; + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_FETCH_I1: + begin + if (~DMABREQLatched) + begin + addr_nxt = pc; + RnWOut = 1'b1; + rAVMA = 1'b0; + tmp_nxt = {tmp[15:4], 4'b1111}; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_DMABREQ; + end + else if (~HALTLatched) + begin + addr_nxt = pc; + RnWOut = 1'b1; + rAVMA = 1'b0; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_HALTED; + end + else // not halting, run the inst byte fetch + begin + addr_nxt = pc; // Set the address bus for the next instruction, first byte + pc_nxt = pc_p1; + RnWOut = 1; // Set for a READ + Inst1_nxt = MappedInstruction; + InstPage2_nxt = 0; + InstPage3_nxt = 0; + + // New instruction fetch; service interrupts pending + if (NMILatched == 0) + begin + pc_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_NMI_START; + end + else if ((FIRQLatched == 0) && (cc[CC_F_BIT] == 0)) + begin + pc_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FIRQ_START; + end + else if ((IRQLatched == 0) && (cc[CC_I_BIT] == 0)) + begin + pc_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_START; + end + + // The actual 1st byte checks + else if (Inst1_nxt == 8'H10) // Page 2 Note, like the 6809, $10 $10 $10 $10 has the same effect as a single $10. + begin + InstPage2_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else if (Inst1_nxt == 8'H11) // Page 3 + begin + InstPage3_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I2; + end + end // if not halting + end + + CPUSTATE_FETCH_I1V2: + begin + addr_nxt = pc; // Set the address bus for the next instruction, first byte + pc_nxt = pc_p1; + RnWOut = 1; // Set for a READ + Inst1_nxt = MappedInstruction; + + if (Inst1_nxt == 8'H10) // Page 2 Note, like the 6809, $10 $10 $10 $10 has the same effect as a single $10. + begin + if (InstPage3 == 0) // $11 $11 $11 $11 ... $11 $10 still = Page 3 + InstPage2_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else if (Inst1_nxt == 8'H11) // Page 3 + begin + if (InstPage2 == 0) // $10 $10 ... $10 $11 still = Page 2 + InstPage3_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I2; + end + end + + + CPUSTATE_FETCH_I2: // We've fetched the first byte. If a $10 or $11 (page select), mark those flags and fetch the next byte as instruction byte 1. + begin + addr_nxt = addr_p1; // Address bus++ + pc_nxt = pc_p1; + Inst2_nxt = D[7:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + + if (IsIllegalInstruction) // Skip illegal instructions + begin + + rAVMA = 1'b1; + CpuState_nxt = IllegalInstructionState; + rLIC = 1'b1; + end + else + begin + // First byte Decode for this stage + case (AddrModeType) + TYPE_INDEXED: + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDEXED_BASE; + end + + + TYPE_EXTENDED: + begin + ea_nxt[15:8] = Inst2_nxt; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_EXTENDED_ADDRLO; + end + TYPE_DIRECT: + begin + ea_nxt = {dp, Inst2_nxt}; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_DIRECT_DONTCARE; + end + + TYPE_INHERENT: + begin + if (Inst1 == OPCODE_INH_NOP) + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_DAA) // Bcd lunacy + begin + if ( ((cc[CC_C_BIT]) || (a[7:4] > 4'H9)) || + ((a[7:4] > 4'H8) && (a[3:0] > 4'H9)) ) + tmp_nxt[7:4] = 4'H6; + else + tmp_nxt[7:4] = 4'H0; + + if ((cc[CC_H_BIT]) || (a[3:0] > 4'H9)) + tmp_nxt[3:0] = 4'H6; + else + tmp_nxt[3:0] = 4'H0; + + // DAA handles carry in the weirdest way. + // If it's already set, it remains set, even if carry-out is 0. + // If it wasn't set, but the output of the operation is set, carry-out gets set. + {tmp_nxt[8], a_nxt} = {1'b0, a} + tmp_nxt[7:0]; + + cc_nxt[CC_C_BIT] = cc_nxt[CC_C_BIT] | tmp_nxt[8]; + + cc_nxt[CC_N_BIT] = a_nxt[7]; + cc_nxt[CC_Z_BIT] = (a_nxt == 8'H00); + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_SYNC) + begin + CpuState_nxt = CPUSTATE_SYNC; + rLIC = 1'b1; + rAVMA = 1'b0; + end + else if (Inst1 == OPCODE_INH_MUL) + begin + tmp_nxt = 16'H0000; + ea_nxt[15:8] = 8'H00; + ea_nxt[7:0] = a; + a_nxt = 8; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_MUL_ACTION; + end + else if (Inst1 == OPCODE_INH_RTS) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_RTS_HI; + end + else if (Inst1 == OPCODE_INH_RTI) + begin + rAVMA = 1'b1; + tmp_nxt = 16'H1001; // Set tmp[12] to indicate an RTI being processed, and at least pull CC. + CpuState_nxt = CPUSTATE_PUL_ACTION; + NextState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_SWI) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_SWI_START; + end + else if (Inst1 == OPCODE_INH_CWAI) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_CWAI; + end + else if (Inst1 == OPCODE_INH_SEX) + begin + a_nxt = {8{b[7]}}; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_ABX) + begin + x_nxt = x + b; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_ABX_DONTCARE; + end + else + begin + ALU_OP = ALU8Op; + if (IsTargetRegA) + ALU_A = a; + else + ALU_A = b; + + ALU_B = 0; + ALU_CC = cc; + cc_nxt = ALU[15:8]; + + if (ALU8Writeback) + begin + if (IsTargetRegA) + a_nxt = ALU[7:0]; + else + b_nxt = ALU[7:0]; + end + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + if (IsOneByteInstruction(Inst1)) // This check is probably superfluous. Every inherent instruction is 1 byte on the 6809. + pc_nxt = pc; // The 6809 auto-reads 2 bytes for every instruction. :( Adjust by not incrementing PC on the 2nd byte read. + end + + TYPE_IMMEDIATE: + begin + if (IsSpecialImmediate) + begin + if (Inst1 == OPCODE_IMM_ANDCC) + begin + pc_nxt = pc_p1; + cc_nxt = cc & D; //cc_nxt & Inst2_nxt; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_CC_DONTCARE; + end + else if (Inst1 == OPCODE_IMM_ORCC) + begin + pc_nxt = pc_p1; + cc_nxt = cc | D; //cc_nxt | Inst2_nxt; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_CC_DONTCARE; + end + else if ( (Inst1 == OPCODE_IMM_PSHS) | (Inst1 == OPCODE_IMM_PSHU) ) + begin + pc_nxt = pc_p1; + tmp_nxt[15] = 1'b0; + tmp_nxt[14] = Inst1[1]; // Mark whether to save to U or S. + tmp_nxt[13] = 1'b0; // Not pushing due to an interrupt. + tmp_nxt[13:8] = 6'H00; + tmp_nxt[7:0] = Inst2_nxt; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PSH_DONTCARE1; + NextState_nxt = CPUSTATE_FETCH_I1; + end + else if ( (Inst1 == OPCODE_IMM_PULS) | (Inst1 == OPCODE_IMM_PULU) ) + begin + pc_nxt = pc_p1; + tmp_nxt[15] = 1'b0; + tmp_nxt[14] = Inst1[1]; // S (0) or U (1) stack in use. + tmp_nxt[13:8] = 6'H00; + tmp_nxt[7:0] = Inst2_nxt; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PUL_DONTCARE1; + NextState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_IMM_TFR) + begin + // The second byte lists the registers; Top nybble is reg #1, bottom is reg #2. + + case (Inst2_nxt[3:0]) + EXGTFR_REG_D: + {a_nxt,b_nxt} = EXGTFRRegA; + EXGTFR_REG_X: + x_nxt = EXGTFRRegA; + EXGTFR_REG_Y: + y_nxt = EXGTFRRegA; + EXGTFR_REG_U: + u_nxt = EXGTFRRegA; + EXGTFR_REG_S: + s_nxt = EXGTFRRegA; + EXGTFR_REG_PC: + pc_nxt = EXGTFRRegA; + EXGTFR_REG_DP: + dp_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_A: + a_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_B: + b_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_CC: + cc_nxt = EXGTFRRegA[7:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE1; + + end + else if (Inst1 == OPCODE_IMM_EXG) + begin + // The second byte lists the registers; Top nybble is reg #1, bottom is reg #2. + + case (Inst2_nxt[7:4]) + EXGTFR_REG_D: + {a_nxt,b_nxt} = EXGTFRRegB; + EXGTFR_REG_X: + x_nxt = EXGTFRRegB; + EXGTFR_REG_Y: + y_nxt = EXGTFRRegB; + EXGTFR_REG_U: + u_nxt = EXGTFRRegB; + EXGTFR_REG_S: + s_nxt = EXGTFRRegB; + EXGTFR_REG_PC: + pc_nxt = EXGTFRRegB; + EXGTFR_REG_DP: + dp_nxt = EXGTFRRegB[7:0]; + EXGTFR_REG_A: + a_nxt = EXGTFRRegB[7:0]; + EXGTFR_REG_B: + b_nxt = EXGTFRRegB[7:0]; + EXGTFR_REG_CC: + cc_nxt = EXGTFRRegB[7:0]; + default: + begin + end + endcase + case (Inst2_nxt[3:0]) + EXGTFR_REG_D: + {a_nxt,b_nxt} = EXGTFRRegA; + EXGTFR_REG_X: + x_nxt = EXGTFRRegA; + EXGTFR_REG_Y: + y_nxt = EXGTFRRegA; + EXGTFR_REG_U: + u_nxt = EXGTFRRegA; + EXGTFR_REG_S: + s_nxt = EXGTFRRegA; + EXGTFR_REG_PC: + pc_nxt = EXGTFRRegA; + EXGTFR_REG_DP: + dp_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_A: + a_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_B: + b_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_CC: + cc_nxt = EXGTFRRegA[7:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE1; + end + end + // Determine if this is an 8-bit ALU operation. + else if (Is8BitInst) + begin + ALU_OP = ALU8Op; + if (IsTargetRegA) + ALU_A = a; + else + ALU_A = b; + + ALU_B = Inst2_nxt; + ALU_CC = cc; + cc_nxt = ALU[15:8]; + + if (ALU8Writeback) + begin + if (IsTargetRegA) + a_nxt = ALU[7:0]; + else + b_nxt = ALU[7:0]; + end + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else // Then it must be a 16 bit instruction + begin + // 83 SUBD + // 8C CMPX + // 8E LDX + // C3 ADDD + // CC LDD + // CE LDU + // 108E CMPD + // 108C CMPY + // 108E LDY + // 10CE LDS + // 1183 CMPU + // 118C CMPS + // Wow, they were just stuffing them in willy-nilly ... + + // LD* 16 bit immediate + if (IsALU16Opcode) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_16IMM_LO; + end + // there's a dead zone here; I need an else to take us back to CPUSTATE_FETCHI1 if we want to ignore illegal instructions, to CPUSTATE_DEAD if we want to catch them. + + end + + end + + TYPE_RELATIVE: + begin + // Is this a LB** or a B**? + // If InstPage2 is set, it's a long branch; if clear, a normal branch. + if ( (InstPage2) || (Inst1 == INST_LBRA) || (Inst1 == INST_LBSR) ) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_LBRA_OFFSETLOW; + end + else + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_BRA_DONTCARE; + end + + end + default: + begin + CpuState_nxt = CPUSTATE_FETCH_I1; + end + endcase + end + end + + + CPUSTATE_LBRA_OFFSETLOW: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + Inst3_nxt = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_LBRA_DONTCARE; + end + + CPUSTATE_LBRA_DONTCARE: + begin + addr_nxt = 16'HFFFF; + if ( TakeBranch ) + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_LBRA_DONTCARE2; + end + else + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + + CPUSTATE_BRA_DONTCARE: + begin + addr_nxt = 16'HFFFF; + tmp_nxt = pc; + if (TakeBranch) + begin + pc_nxt = pc + { {8{Inst2[7]}}, Inst2[7:0]}; // Sign-extend the 8 bit offset to 16. + + if (Inst1 == INST_BSR) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_DONTCARE1; + end + else + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + else + begin + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + end + + CPUSTATE_LBRA_DONTCARE2: + begin + tmp_nxt= pc; + addr_nxt = 16'HFFFF; + + // Take branch + pc_nxt = pc + {Inst2[7:0], Inst3[7:0]}; + if (Inst1 == INST_LBSR) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_DONTCARE1; + end + else + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + + CPUSTATE_BSR_DONTCARE1: + begin + addr_nxt = pc; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_BSR_DONTCARE2; + end + + CPUSTATE_BSR_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_RETURNLOW; + end + + CPUSTATE_BSR_RETURNLOW: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + DOutput[7:0] = tmp[7:0]; + RnWOut = 0; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_RETURNHIGH; + end + + CPUSTATE_BSR_RETURNHIGH: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + DOutput[7:0] = tmp[15:8]; + RnWOut = 0; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; // after this, RnWOut must go to 1, and the bus needs the PC placed on it. + end + + CPUSTATE_TFR_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE2; + end + + CPUSTATE_TFR_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE3; + end + + CPUSTATE_TFR_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE4; + end + + CPUSTATE_TFR_DONTCARE4: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; // Instruction done! + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_EXG_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE2; + end + + CPUSTATE_EXG_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE3; + end + + CPUSTATE_EXG_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE4; + end + + CPUSTATE_EXG_DONTCARE4: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE5; + end + + CPUSTATE_EXG_DONTCARE5: + begin + rAVMA = 1'b0; + addr_nxt = 16'HFFFF; + CpuState_nxt = CPUSTATE_EXG_DONTCARE6; + end + + CPUSTATE_EXG_DONTCARE6: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; // Instruction done! + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_ABX_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; // Instruction done! + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_RTS_HI: + begin + addr_nxt = s; + s_nxt = s_p1; + pc_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_RTS_LO; + end + + CPUSTATE_RTS_LO: + begin + addr_nxt = s; + s_nxt = s_p1; + pc_nxt[7:0] = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_RTS_DONTCARE2; + end + + CPUSTATE_RTS_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_16IMM_LO: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + ALU16_B = {Inst2, D[7:0]}; + + case (ALU16Reg) + ALU16_REG_X: + ALU16_A = x; + ALU16_REG_D: + ALU16_A = {a, b}; + ALU16_REG_Y: + ALU16_A = y; + ALU16_REG_U: + ALU16_A = u; + ALU16_REG_S: + ALU16_A = s; + default: + ALU16_A = 16'H0; + endcase + + if (ALU16OpWriteback) + begin + case (ALU16Reg) + ALU16_REG_X: + {cc_nxt, x_nxt} = ALU16; + ALU16_REG_D: + {cc_nxt, a_nxt, b_nxt} = ALU16; + ALU16_REG_Y: + {cc_nxt, y_nxt} = ALU16; + ALU16_REG_U: + {cc_nxt, u_nxt} = ALU16; + ALU16_REG_S: + {cc_nxt, s_nxt} = ALU16; + default: + begin + end + endcase + end + else + cc_nxt = ALU16[23:16]; + + if (ALU16_OP == ALUOP16_LD) + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_16IMM_DONTCARE; + end + end + + CPUSTATE_DIRECT_DONTCARE: + begin + addr_nxt = 16'HFFFF; + + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + CPUSTATE_ALU_EA: + begin + + // Is Figure 18/5 Column 2? JMP (not Immediate Mode) + // This actually isn't done here. All checks passing in to ALU_EA should check for a JMP; FIXME EVERYWHERE + + // Is Figure 18/5 Column 8? TST (not immediate mode) + // THIS IS BURIED IN THE COLUMN 3 section with comparisons to ALUOP_TST. + + // Is Figure 18/5 Column 3? + if (IsALU8Set1(Inst1)) + begin + addr_nxt = ea; + + ALU_OP = ALU8Op; + ALU_B = D[7:0]; + ALU_CC = cc; + + if (IsTargetRegA) + ALU_A = a; + else + ALU_A = b; + + cc_nxt = ALU[15:8]; + + if ( (ALU8Writeback) ) + begin + if (IsTargetRegA) + a_nxt = ALU[7:0]; + else + b_nxt = ALU[7:0]; + end + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + // Is Figure 18/5 Column 4? (Store, 8 bits) + else if (IsStore8) + begin + addr_nxt = ea; + RnWOut = 0; // write + + ALU_OP = ALUOP_LD; // load has the same CC characteristics as store + ALU_A = 8'H00; + ALU_CC = cc; + + case (Store8RegisterNum) + ST8_REG_A: + begin + DOutput = a; + ALU_B = a; + end + ST8_REG_B: + begin + DOutput = b; + ALU_B = b; + end + + + endcase + + cc_nxt = ALU[15:8]; + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + // Is Figure 18/5 Column 5? (Load, 16 bits) + else if (IsALU16Opcode & (ALU16Opcode == ALUOP16_LD)) + begin + addr_nxt = ea; + ea_nxt = ea_p1; + + case (ALU16Reg) + ALU16_REG_X: + x_nxt[15:8] = D[7:0]; + ALU16_REG_D: + a_nxt = D[7:0]; + ALU16_REG_Y: + y_nxt[15:8] = D[7:0]; + ALU16_REG_S: + s_nxt[15:8] = D[7:0]; + ALU16_REG_U: + u_nxt[15:8] = D[7:0]; + default: + begin + end + endcase + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_LD16_LO; + + end + + // Is Figure 18/5 Column 6? (Store, 16 bits) + else if (IsStore16) + begin + addr_nxt = ea; + ea_nxt = ea_p1; + + ALU16_OP = ALUOP16_LD; // LD and ST have the same CC characteristics + ALU16_CC = cc; + ALU16_A = 8'H00; + + case (StoreRegisterNum) + ST16_REG_X: + begin + DOutput[7:0] = x[15:8]; + ALU16_B = x; + end + ST16_REG_Y: + begin + DOutput[7:0] = y[15:8]; + ALU16_B = y; + end + ST16_REG_U: + begin + DOutput[7:0] = u[15:8]; + ALU16_B = u; + end + ST16_REG_S: + begin + DOutput[7:0] = s[15:8]; + ALU16_B = s; + end + ST16_REG_D: + begin + DOutput[7:0] = a[7:0]; + ALU16_B = {a,b}; + end + default: + begin + end + endcase + + cc_nxt = ALU16[23:16]; + + RnWOut = 0; // Write + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_ST16_LO; + end + + // Is Figure 18/5 Column 7? + else if (IsALU8Set0(Inst1)) + begin + // These are registerless instructions, ala + // ASL, ASR, CLR, COM, DEC, INC, (LSL), LSR, NEG, ROL, ROR + // and TST (special!) + // They require READ, Modify (the operation above), WRITE. Between the Read and the Write cycles, there's actually a /VMA + // cycle where the 6809 likely did the operation. We'll include a /VMA cycle for accuracy, but we'll do the work primarily in the first cycle. + addr_nxt = ea; + + ALU_OP = ALU8Op; + ALU_A = D[7:0]; + ALU_CC = cc; + tmp_nxt[15:8] = cc; // for debug only + tmp_nxt[7:0] = ALU[7:0]; + cc_nxt = ALU[15:8]; + if (ALU8Op == ALUOP_TST) + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TST_DONTCARE1; + end + else + begin + rAVMA = 1'b0; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_ALU_DONTCARE; + end + + end + + // Is Figure 18/5 Column 8? TST + // NOTE: + // THIS IS BURIED IN THE COLUMN 3 section with comparisons to ALUOP_TST. [Directly above.] + + + // Is Figure 18/5 Column 9? (16-bit ALU ops, non-load) + else if (IsALU16Opcode && (ALU16Opcode != ALUOP16_LD) && ((Inst1 < 8'H30) || (Inst1 > 8'H33)) ) // 30-33 = LEAX, LEAY, LEAS, LEAU; don't include them here. + begin + addr_nxt = ea; + ea_nxt = ea_p1; + + tmp_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_ALU16_LO; + + end + + // Is Figure 18/5 Column 10? JSR (not Immediate Mode) + else if ((Inst1 == 8'H9D) || (Inst1 == 8'HAD) || (Inst1 == 8'HBD)) // JSR + begin + pc_nxt = ea; + addr_nxt = ea; + tmp_nxt = pc; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_JSR_DONTCARE; + end + // Is Figure 18/5 Column 11? LEA(X,Y,S,U) + else if ((Inst1 >= 8'H30) && (Inst1<= 8'H33)) + begin + addr_nxt = 16'HFFFF; // Ack, actually a valid cycle, this isn't a dontcare (/VMA) cycle! + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + ALU16_A = ea; + + case (ALU16Reg) + ALU16_REG_X: + {cc_nxt, x_nxt} = ALU16; + ALU16_REG_Y: + {cc_nxt, y_nxt} = ALU16; + ALU16_REG_U: + u_nxt = ALU16[15:0]; + ALU16_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + + end + + end + + + CPUSTATE_ALU_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rBUSY = 1'b1; // We do nothing here, but on the real 6809, they did the modify phase here. :| + CpuState_nxt = CPUSTATE_ALU_WRITEBACK; + end + + CPUSTATE_ALU_WRITEBACK: + begin + addr_nxt = ea; + RnWOut = 0; // Write + DOutput = tmp[7:0]; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_LD16_LO: + begin + addr_nxt = ea; + + case (ALU16Reg) + ALU16_REG_X: + begin + x_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = x[15:8]; + end + ALU16_REG_D: + begin + b_nxt = D[7:0]; + ALU16_B[15:8] = a; + end + ALU16_REG_Y: + begin + y_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = y[15:8]; + end + ALU16_REG_S: + begin + s_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = s[15:8]; + end + ALU16_REG_U: + begin + u_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = u[15:8]; + end + default: + begin + end + + endcase + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + ALU16_A = 8'H00; + ALU16_B[7:0] = D[7:0]; + cc_nxt = ALU16[23:16]; + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_ST16_LO: + begin + addr_nxt = ea; + ea_nxt = ea_p1; + case (StoreRegisterNum) + ST16_REG_X: + DOutput[7:0] = x[7:0]; + ST16_REG_Y: + DOutput[7:0] = y[7:0]; + ST16_REG_U: + DOutput[7:0] = u[7:0]; + ST16_REG_S: + DOutput[7:0] = s[7:0]; + ST16_REG_D: + DOutput[7:0] = b[7:0]; + default: + begin + end + endcase + RnWOut = 0; // write + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_ALU16_LO: + begin + addr_nxt = ea; + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + + ALU16_B = {tmp[15:8], D[7:0]}; + + case (ALU16Reg) + ALU16_REG_X: + ALU16_A = x; + ALU16_REG_D: + ALU16_A = {a, b}; + ALU16_REG_Y: + ALU16_A = y; + ALU16_REG_S: + ALU16_A = s; + ALU16_REG_U: + ALU16_A = u; + default: + ALU16_A = 16'H0; + + endcase + + if (ALU16OpWriteback) + begin + case (ALU16Reg) + ALU16_REG_X: + {cc_nxt, x_nxt} = ALU16; + ALU16_REG_D: + {cc_nxt, a_nxt, b_nxt} = ALU16; + ALU16_REG_Y: + {cc_nxt, y_nxt} = ALU16; + ALU16_REG_U: + {cc_nxt, u_nxt} = ALU16; + ALU16_REG_S: + {cc_nxt, s_nxt} = ALU16; + default: + begin + end + endcase + end + else + cc_nxt = ALU16[23:16]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_ALU16_DONTCARE; + end + + CPUSTATE_ALU16_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + + CPUSTATE_JSR_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_JSR_RETLO; + end + + CPUSTATE_JSR_RETLO: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + RnWOut = 0; + DOutput = tmp[7:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_JSR_RETHI; + end + + CPUSTATE_JSR_RETHI: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + RnWOut = 0; + DOutput = tmp[15:8]; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_EXTENDED_ADDRLO: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + ea_nxt[7:0] = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXTENDED_DONTCARE; + end + + CPUSTATE_EXTENDED_DONTCARE: + begin + addr_nxt = 16'HFFFF; + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + CPUSTATE_INDEXED_BASE: + begin + addr_nxt = pc; + + Inst3_nxt = D[7:0]; + + case (IndexedRegister) + IDX_REG_X: + ALU16_A = x; + IDX_REG_Y: + ALU16_A = y; + IDX_REG_U: + ALU16_A = u; + IDX_REG_S: + ALU16_A = s; + IDX_REG_PC: + ALU16_A = pc_p1; + default: + ALU16_A = 16'H0; + endcase + ALU16_OP = ALUOP16_ADD; + + case (IndexedMode) + IDX_MODE_NOOFFSET: + begin + case (IndexedRegister) + IDX_REG_X: + ea_nxt = x; + IDX_REG_Y: + ea_nxt = y; + IDX_REG_U: + ea_nxt = u; + IDX_REG_S: + ea_nxt = s; + default: + ea_nxt = 16'H0; + endcase + + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea_nxt; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + end + + IDX_MODE_5BIT_OFFSET: + begin + // The offset is the bottom 5 bits of the Index Postbyte, which is Inst2 here. + // We'll sign-extend it to 16 bits. + ALU16_B = { {11{Inst2[4]}}, Inst2[4:0] }; + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + end + + + IDX_MODE_8BIT_OFFSET_PC: + begin + ALU16_B = { {8{D[7]}}, D[7:0] }; + pc_nxt = pc_p1; + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + end + + IDX_MODE_8BIT_OFFSET: + begin + ALU16_B = { {8{D[7]}}, D[7:0] }; + pc_nxt = pc_p1; + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + end + + IDX_MODE_A_OFFSET: + begin + ALU16_B = { {8{a[7]}}, a[7:0] }; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + ea_nxt = ALU16[15:0]; + end + + IDX_MODE_B_OFFSET: + begin + ALU16_B = { {8{b[7]}}, b[7:0] }; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + ea_nxt = ALU16[15:0]; + end + + IDX_MODE_D_OFFSET: + begin + ALU16_B = {a, b}; + + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_DOFF_DONTCARE1; + end + + IDX_MODE_POSTINC1: + begin + ALU16_B = 16'H1; + ea_nxt = ALU16_A; + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + IDX_MODE_POSTINC2: + begin + ALU16_B = 16'H2; + ea_nxt = ALU16_A; + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE0; + end + + IDX_MODE_PREDEC1: + begin + ALU16_B = 16'HFFFF; // -1 + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + IDX_MODE_PREDEC2: + begin + ALU16_B = 16'HFFFE; // -2 + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE0; + end + + IDX_MODE_16BIT_OFFSET_PC: + begin + tmp_nxt[15:8] = D[7:0]; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFFSET_LO; + end + + IDX_MODE_16BIT_OFFSET: + begin + tmp_nxt[15:8] = D[7:0]; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFFSET_LO; + end + + IDX_MODE_EXTENDED_INDIRECT: + begin + ea_nxt[15:8] = D[7:0]; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_EXTIND_LO; + end + + default: + begin + rLIC = 1'b1; + CpuState_nxt = PostIllegalState; + end + + endcase + end + + CPUSTATE_IDX_OFFSET_LO: + begin + tmp_nxt[7:0] = D[7:0]; + addr_nxt = pc; + pc_nxt = pc_p1; + ALU16_B = tmp_nxt; + + case (IndexedRegister) + IDX_REG_X: + ALU16_A = x; + IDX_REG_Y: + ALU16_A = y; + IDX_REG_U: + ALU16_A = u; + IDX_REG_S: + ALU16_A = s; + IDX_REG_PC: + ALU16_A = pc; + default: + ALU16_A = 16'H0; + endcase + ALU16_OP = ALUOP16_ADD; + + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE1; + end + + + CPUSTATE_IDX_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + end + + CPUSTATE_IDX_16OFFSET_LO: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + + case (IndexedRegister) + IDX_REG_X: + ALU16_A = x; + IDX_REG_Y: + ALU16_A = y; + IDX_REG_U: + ALU16_A = u; + IDX_REG_S: + ALU16_A = s; + IDX_REG_PC: + ALU16_A = pc_nxt; // Whups; tricky; not part of the actual pattern + default: + ALU16_A = x; // Default to something + endcase + + ALU16_OP = ALUOP16_ADD; + + ALU16_B = {tmp[15:8], D[7:0]}; + + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE1; + end + + CPUSTATE_IDX_16OFF_DONTCARE1: + begin + addr_nxt = pc; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + CPUSTATE_IDX_16OFF_DONTCARE0: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + CPUSTATE_IDX_16OFF_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + if (IndexedRegister == IDX_REG_PC) + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_PC16OFF_DONTCARE; + end + else + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE3; + end + end + + CPUSTATE_IDX_PC16OFF_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE3; + end + + + CPUSTATE_IDX_16OFF_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + end + + CPUSTATE_IDX_DOFF_DONTCARE1: + begin + addr_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_DOFF_DONTCARE2; + end + + CPUSTATE_IDX_DOFF_DONTCARE2: + begin + addr_nxt = pc_p2; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + CPUSTATE_IDX_DOFF_DONTCARE3: + begin + addr_nxt = pc_p3; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_DOFF_DONTCARE2; + end + + CPUSTATE_IDX_EXTIND_LO: + begin + ea_nxt[7:0] = D[7:0]; + addr_nxt = pc; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_EXTIND_DONTCARE; + end + + CPUSTATE_IDX_EXTIND_DONTCARE: + begin + addr_nxt = pc; + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + end + + CPUSTATE_INDIRECT_HI: + begin + addr_nxt = ea; + tmp_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_LO; + end + + CPUSTATE_INDIRECT_LO: + begin + addr_nxt = ea_p1; + ea_nxt[15:8] = tmp_nxt[15:8]; + ea_nxt[7:0] = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_INDIRECT_DONTCARE; + end + + CPUSTATE_INDIRECT_DONTCARE: + begin + addr_nxt = 16'HFFFF; + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + CPUSTATE_MUL_ACTION: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + // tmp = result + // ea = additor (the shifted multiplicand) + // a = counter + // b is the multiplier (which gets shifted right) + if (a != 8'H00) + begin + if (b[0]) + begin + tmp_nxt = tmp + ea; + end + ea_nxt = {ea[14:0], 1'b0}; + b_nxt = {1'b0, b[7:1]}; + a_nxt = a - 8'H1; + end + else + begin + {a_nxt, b_nxt} = tmp; + + cc_nxt[CC_Z_BIT] = (tmp == 0); + cc_nxt[CC_C_BIT] = tmp[7]; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + + CPUSTATE_PSH_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PSH_DONTCARE2; + end + + CPUSTATE_PSH_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PSH_DONTCARE3; + end + + CPUSTATE_PSH_DONTCARE3: + begin + addr_nxt = (Inst1[1]) ? u : s; + + CpuState_nxt = CPUSTATE_PSH_ACTION; + end + + CPUSTATE_PSH_ACTION: + begin + rAVMA = 1'b1; + if (tmp[7] & ~(tmp[15])) // PC_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = pc[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[7] & (tmp[15])) // PC_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = pc[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[7] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[6] & ~(tmp[15])) // U/S_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = (tmp[14]) ? s[7:0] : u[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[6] & (tmp[15])) // U/S_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = (tmp[14]) ? s[15:8] : u[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[6] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[5] & ~(tmp[15])) // Y_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = y[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[5] & (tmp[15])) // Y_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = y[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[5] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[4] & ~(tmp[15])) // X_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = x[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[4] & (tmp[15])) // X_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = x[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[4] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[3]) // DP + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = dp; + RnWOut = 1'b0; // write + tmp_nxt[3] = 1'b0; + end + else if (tmp[2]) // B + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = b; + RnWOut = 1'b0; // write + tmp_nxt[2] = 1'b0; + end + else if (tmp[1]) // A + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = a; + RnWOut = 1'b0; // write + tmp_nxt[1] = 1'b0; + end + else if (tmp[0]) // CC + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = cc; + RnWOut = 1'b0; // write + tmp_nxt[0] = 1'b0; + end + if (tmp[13]) // Then we're pushing for an IRQ, and LIC is supposed to be set. + rLIC = 1'b1; + if (tmp_nxt[7:0] == 8'H00) + begin + if (NextState == CPUSTATE_FETCH_I1) + begin + rAVMA = 1'b1; + rLIC = 1'b1; + end + else + rAVMA = 1'b0; + CpuState_nxt = NextState; + end + end + + CPUSTATE_PUL_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PUL_DONTCARE2; + end + + CPUSTATE_PUL_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PUL_ACTION; + end + + CPUSTATE_PUL_ACTION: + begin + rAVMA = 1'b1; + if (tmp[0]) // CC + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + cc_nxt = D[7:0]; + if (tmp[12] == 1'b1) // This pull is from an RTI, the E flag comes from the retrieved CC, and set the tmp_nxt accordingly, indicating what other registers to retrieve + begin + if (D[CC_E_BIT]) + tmp_nxt[7:0] = 8'HFE; // Retrieve all registers (ENTIRE) [CC is already retrieved] + else + tmp_nxt[7:0] = 8'H80; // Retrieve PC and CC [CC is already retrieved] + end + else + tmp_nxt[0] = 1'b0; + end + else if (tmp[1]) // A + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + a_nxt = D[7:0]; + tmp_nxt[1] = 1'b0; + end + else if (tmp[2]) // B + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + b_nxt = D[7:0]; + tmp_nxt[2] = 1'b0; + end + else if (tmp[3]) // DP + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + dp_nxt = D[7:0]; + tmp_nxt[3] = 1'b0; + end + else if (tmp[4] & (~tmp[15])) // X_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + x_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[4] & tmp[15]) // X_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + x_nxt[7:0] = D[7:0]; + tmp_nxt[4] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[5] & (~tmp[15])) // Y_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + y_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[5] & tmp[15]) // Y_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + y_nxt[7:0] = D[7:0]; + tmp_nxt[5] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[6] & (~tmp[15])) // U/S_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + if (tmp[14]) + s_nxt[15:8] = D[7:0]; + else + u_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[6] & tmp[15]) // U/S_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + if (tmp[14]) + s_nxt[7:0] = D[7:0]; + else + u_nxt[7:0] = D[7:0]; + tmp_nxt[6] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[7] & (~tmp[15])) // PC_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + pc_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[7] & tmp[15]) // PC_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + pc_nxt[7:0] = D[7:0]; + tmp_nxt[7] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else + begin + addr_nxt = (tmp[14]) ? u : s; + if (NextState == CPUSTATE_FETCH_I1) + begin + rAVMA = 1'b1; + rLIC = 1'b1; + end + else + rAVMA = 1'b0; + CpuState_nxt = NextState; + end + end + + CPUSTATE_NMI_START: + begin + NMIClear_nxt = 1'b1; + addr_nxt = pc; + // tmp stands as the bits to push to the stack + tmp_nxt = 16'H20FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC; set LIC on every push + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + IntType_nxt = INTTYPE_NMI; + cc_nxt[CC_E_BIT] = 1'b1; + end + + CPUSTATE_IRQ_START: + begin + addr_nxt = pc; + tmp_nxt = 16'H20FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC; set LIC on every push + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + IntType_nxt = INTTYPE_IRQ; + cc_nxt[CC_E_BIT] = 1'b1; + end + + CPUSTATE_FIRQ_START: + begin + addr_nxt = pc; + tmp_nxt = 16'H2081; // Save to the S stack, PC, CC; set LIC on every push + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + IntType_nxt = INTTYPE_FIRQ; + cc_nxt[CC_E_BIT] = 1'b0; + end + + CPUSTATE_SWI_START: + begin + addr_nxt = pc; + tmp_nxt = 16'H00FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC + + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + if (InstPage3) + IntType_nxt = INTTYPE_SWI3; + if (InstPage2) + IntType_nxt = INTTYPE_SWI2; + else + IntType_nxt = INTTYPE_SWI; + + cc_nxt[CC_E_BIT] = 1'b1; + end + + CPUSTATE_IRQ_DONTCARE: + begin + NMIClear_nxt = 1'b0; + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PSH_ACTION; + end + + + CPUSTATE_IRQ_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + rLIC = 1'b1; + end + + CPUSTATE_IRQ_VECTOR_HI: + begin + case (IntType) + INTTYPE_NMI: + begin + addr_nxt = `NMI_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_IRQ: + begin + addr_nxt = `IRQ_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI: + begin + addr_nxt = `SWI_VECTOR; + end + INTTYPE_FIRQ: + begin + addr_nxt = `FIRQ_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI2: + begin + addr_nxt = `SWI2_VECTOR; + end + INTTYPE_SWI3: + begin + addr_nxt = `SWI3_VECTOR; + end + default: // make the default an IRQ, even though it really should never happen + begin + addr_nxt = `IRQ_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + endcase + + pc_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + rBUSY = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_LO; + + + end + + CPUSTATE_IRQ_VECTOR_LO: + begin + case (IntType) + INTTYPE_NMI: + begin + addr_nxt = `NMI_VECTOR+16'H1; + cc_nxt[CC_I_BIT] = 1'b1; + cc_nxt[CC_F_BIT] = 1'b1; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_IRQ: + begin + addr_nxt = `IRQ_VECTOR+16'H1; + cc_nxt[CC_I_BIT] = 1'b1; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI: + begin + addr_nxt = `SWI_VECTOR+16'H1; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + rLIC = 1'b1; + end + INTTYPE_FIRQ: + begin + addr_nxt = `FIRQ_VECTOR+16'H1; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI2: + begin + addr_nxt = `SWI2_VECTOR+16'H1; + rLIC = 1'b1; + end + INTTYPE_SWI3: + begin + addr_nxt = `SWI3_VECTOR+16'H1; + rLIC = 1'b1; + end + default: + begin + end + endcase + + pc_nxt[7:0] = D[7:0]; + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_INT_DONTCARE; + end + + CPUSTATE_INT_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_CC_DONTCARE: + begin + addr_nxt = pc; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_TST_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TST_DONTCARE2; + end + + CPUSTATE_TST_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_DEBUG: + begin + addr_nxt = tmp; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_16IMM_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_SYNC: + begin + addr_nxt = 16'HFFFF; + BA_nxt = 1'b1; + rLIC = 1'b1; + rAVMA = 1'b0; + + if (~(NMILatched & FIRQLatched & IRQLatched)) + begin + CpuState_nxt = CPUSTATE_SYNC_EXIT; + end + end + + CPUSTATE_SYNC_EXIT: + begin + addr_nxt = 16'HFFFF; + BA_nxt = 1'b1; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + + CPUSTATE_DMABREQ: + begin + rAVMA = 1'b0; + addr_nxt = 16'HFFFF; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + tmp_nxt[3:0] = tmp[3:0] - 1'b1; + if ( (tmp[3:0] == 4'H0) | (DMABREQSample2) ) + begin + CpuState_nxt = CPUSTATE_DMABREQ_EXIT; + end + end + + CPUSTATE_DMABREQ_EXIT: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_HALTED: + begin + rAVMA = 1'b0; + addr_nxt = 16'HFFFF; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + if (HALTSample2) + begin + CpuState_nxt = CPUSTATE_HALT_EXIT2; + end + end + + + CPUSTATE_HALT_EXIT2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_STOP: + begin + addr_nxt = 16'HDEAD; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_STOP2; + end + + CPUSTATE_STOP2: + begin + addr_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_STOP3; + end + + CPUSTATE_STOP3: + begin + addr_nxt = 16'H0000; //{Inst1, Inst2}; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_STOP; + end + + // The otherwise critically useful Figure 18 in the 6809 datasheet contains an error; + // it lists that CWAI has a tri-stated bus while it waits for an interrupt. + // That is not true. SYNC tristates the bus, as do things like /HALT and /DMABREQ. + // CWAI does not. It waits with /VMA cycles on the bus until an interrupt occurs. + // The implementation here fits with the 6809 Programming Manual and other Motorola + // sources, not with that typo in Figure 18. + CPUSTATE_CWAI: + begin + addr_nxt = pc; + cc_nxt = {1'b1, (cc[6:0] & Inst2[6:0])}; // Set E flag, AND CC with CWAI argument + tmp_nxt = 16'H00FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC + + NextState_nxt = CPUSTATE_CWAI_POST; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_CWAI_DONTCARE1; + end + + CPUSTATE_CWAI_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PSH_ACTION; + end + + CPUSTATE_CWAI_POST: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + + CpuState_nxt = CPUSTATE_CWAI_POST; + + // Wait for an interrupt + if (NMILatched == 0) + begin + rAVMA = 1'b1; + IntType_nxt = INTTYPE_NMI; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + end + else if ((FIRQLatched == 0) && (cc[CC_F_BIT] == 0)) + begin + rAVMA = 1'b1; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + IntType_nxt = INTTYPE_FIRQ; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + end + else if ((IRQLatched == 0) && (cc[CC_I_BIT] == 0)) + begin + rAVMA = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + IntType_nxt = INTTYPE_IRQ; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + end + end + + default: // Picky darned Verilog. + begin + CpuState_nxt = PostIllegalState; + end + + endcase +end + +endmodule + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809s.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809s.v new file mode 100644 index 00000000..9c49239a --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809s.v @@ -0,0 +1,82 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 09/18/2016 09:25:01 PM +// Design Name: +// Module Name: 6809 Superset module of MC6809 and MC6809E signals +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module mc6809s( + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + input CLK4, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + output AVMA, + output BUSY, + output LIC, + input nRESET, + input nHALT, + input nDMABREQ, + output E, + output Q, + output reg [1:0] clk4_cnt, + output [111:0] RegData +); + + reg rE; + reg rQ; + assign E = rE; + assign Q = rQ; + reg nCoreRESET; + + mc6809i corecpu(.D(D), .DOut(DOut), .ADDR(ADDR), .RnW(RnW), .E(rE), .Q(rQ), .BS(BS), .BA(BA), .nIRQ(nIRQ), .nFIRQ(nFIRQ), .nNMI(nNMI), .AVMA(AVMA), .BUSY(BUSY), .LIC(LIC), .nRESET(nCoreRESET), + .nDMABREQ(nDMABREQ), .nHALT(nHALT), .RegData(RegData) ); + + always @(posedge CLK4) + begin + clk4_cnt <= clk4_cnt+2'b01; + + if (nRESET == 0) + begin + clk4_cnt <= 0; + nCoreRESET <= 0; + end + + if ( clk4_cnt == 2'b00 ) // RISING EDGE OF E + rE <= 1; + + if (clk4_cnt == 2'b01) // RISING EDGE OF Q + rQ <= 1; + + if (clk4_cnt == 2'b10) // FALLING EDGE OF E + rE <= 0; + + if (clk4_cnt == 2'b11) // FALLING EDGE OF Q + begin + rQ <= 0; + nCoreRESET <= 1; + end + end + + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace.vhd new file mode 100644 index 00000000..9693c4e4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace.vhd @@ -0,0 +1,160 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity PACE is + port + ( + -- clocks and resets + clkrst_i : in from_CLKRST_t; + vma : out std_logic; + -- controller inputs + inputs_p1 : in std_logic_vector(7 downto 0); + inputs_p2 : in std_logic_vector(7 downto 0); + inputs_sys : in std_logic_vector(7 downto 0); + inputs_dip1 : in std_logic_vector(7 downto 0); + inputs_dip2 : in std_logic_vector(7 downto 0); + -- video + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t; + + -- audio + audio_i : in from_AUDIO_t; + audio_o : out to_AUDIO_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + cpu_rom_addr : out std_logic_vector(15 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + tile_rom_addr : out std_logic_vector(12 downto 0); + tile_rom_do : in std_logic_vector(15 downto 0) + ); +end entity PACE; + +architecture SYN of PACE is + + constant CLK_1US_COUNTS : integer := + integer(27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY); + + signal to_tilemap_ctl : to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal from_tilemap_ctl : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + signal to_bitmap_ctl : to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal from_bitmap_ctl : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + signal to_sprite_reg : to_SPRITE_REG_t; + signal to_sprite_ctl : to_SPRITE_CTL_t; + signal from_sprite_ctl : from_SPRITE_CTL_t; + signal spr0_hit : std_logic; + + signal to_graphics : to_GRAPHICS_t; + signal from_graphics : from_GRAPHICS_t; + + signal to_sound : to_SOUND_t; + signal from_sound : from_sound_t; + +begin + + + platform_inst : entity work.platform + port map + ( + -- clocking and reset + clkrst_i => clkrst_i, + vma => vma, + -- controller inputs + inputs_p1 => inputs_p1, + inputs_p2 => inputs_p2, + inputs_sys => inputs_sys, + inputs_dip1 => inputs_dip1, + inputs_dip2 => inputs_dip2, + + -- graphics + bitmap_i => from_bitmap_ctl, + bitmap_o => to_bitmap_ctl, + + tilemap_i => from_tilemap_ctl, + tilemap_o => to_tilemap_ctl, + + sprite_reg_o => to_sprite_reg, + sprite_i => from_sprite_ctl, + sprite_o => to_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => from_graphics, + graphics_o => to_graphics, + + -- sound + snd_i => from_sound, + snd_o => to_sound, + platform_i => platform_i, + platform_o => platform_o, + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do, + tile_rom_addr => tile_rom_addr, + tile_rom_do => tile_rom_do + ); + + graphics_inst : entity work.Graphics + Port Map + ( + bitmap_ctl_i => to_bitmap_ctl, + bitmap_ctl_o => from_bitmap_ctl, + + tilemap_ctl_i => to_tilemap_ctl, + tilemap_ctl_o => from_tilemap_ctl, + + sprite_reg_i => to_sprite_reg, + sprite_ctl_i => to_sprite_ctl, + sprite_ctl_o => from_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => to_graphics, + graphics_o => from_graphics, + + -- video (incl. clk) + video_i => video_i, + video_o => video_o + ); + + SOUND_BLOCK : block + signal snd_data_l : std_logic_vector(7 downto 0); + signal snd_data_r : std_logic_vector(7 downto 0); + signal snd_a : std_logic_vector(15 downto 0); + begin + + snd_a <= std_logic_vector(resize(unsigned(to_sound.a), snd_a'length)); + + sound_inst : entity work.Sound + generic map + ( + CLK_MHz => CLK0_FREQ_MHz + ) + port map + ( + sysclk => clkrst_i.clk(0), -- fudge for now + reset => clkrst_i.rst(0), + + sndif_rd => to_sound.rd, + sndif_wr => to_sound.wr, + sndif_addr => snd_a, + sndif_datai => to_sound.d, + + snd_clk => audio_o.clk, + snd_data_l => snd_data_l, + snd_data_r => snd_data_r, + sndif_datao => from_sound.d + ); + + -- route audio to both channels + audio_o.ldata <= snd_data_l & "00000000"; + audio_o.rdata <= snd_data_r & "00000000"; + + end block SOUND_BLOCK; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg.vhd new file mode 100644 index 00000000..0a6944d6 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg.vhd @@ -0,0 +1,147 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; + +package pace_pkg is + + -- + -- PACE constants which *MUST* be defined + -- + + type PACETargetType is + ( + PACE_TARGET_NANOBOARD_NB1, + PACE_TARGET_DE0, + PACE_TARGET_DE0_CV, -- 5CEBA4 + PACE_TARGET_DE0_NANO, -- EP4CE22 + PACE_TARGET_DE1, + PACE_TARGET_DE2, + PACE_TARGET_DE2_70, -- EP2C70 + PACE_TARGET_DE2_115, -- EP4CE115 + PACE_TARGET_P2, -- A02 build + PACE_TARGET_P2A, -- A04/A build (SRAM byte selects) + PACE_TARGET_P3M, + PACE_TARGET_S3A_700, -- Spartan 3A/N Starter Kit + PACE_TARGET_RC10, + PACE_TARGET_NX2_12, + PACE_TARGET_NEXYS_3, -- Digilent S6 board + PACE_TARGET_CYC3DEV, + PACE_TARGET_CYC5GXDEV, + PACE_TARGET_COCO3PLUS, + PACE_TARGET_S5A, + PACE_TARGET_CARTEBLANCHE_250, + PACE_TARGET_CARTEBLANCHE_500, + PACE_TARGET_BEMICRO, + PACE_TARGET_OPENEP3C16, + PACE_TARGET_MIST, + PACE_TARGET_CHAMELEON64, + PACE_TARGET_RETRORAMBLINGS_CYC3, -- Generic EP3C25 board with custom io boards + PACE_TARGET_S5A_R2_EP4C, + PACE_TARGET_S5A_R2_EP3SL, + PACE_TARGET_S5A_R2B0_EP4C, + PACE_TARGET_S5A_R2B0_EP3SL, + PACE_TARGET_S5A_R2C0_EP4C, + PACE_TARGET_S5A_R2C0_EP3SL, + PACE_TARGET_S5L_A0_EP4C, + PACE_TARGET_S5L_A0_EP3SL, + PACE_TARGET_NAVICO_ROCKY, + PACE_TARGET_NGPACE, + PACE_TARGET_S6M_A0 + ); + + type PACEFpgaVendor_t is + ( + PACE_FPGA_VENDOR_ALTERA, + PACE_FPGA_VENDOR_XILINX, + PACE_FPGA_VENDOR_LATTICE + ); + + type PACEFpgaFamily_t is + ( + PACE_FPGA_FAMILY_CYCLONE1, + PACE_FPGA_FAMILY_CYCLONE2, + PACE_FPGA_FAMILY_CYCLONE3, + PACE_FPGA_FAMILY_CYCLONE4, + PACE_FPGA_FAMILY_CYCLONE5, + PACE_FPGA_FAMILY_CYCLONE6, + PACE_FPGA_FAMILY_STRATIX_III, + PACE_FPGA_FAMILY_SPARTAN3, + PACE_FPGA_FAMILY_SPARTAN3A, + PACE_FPGA_FAMILY_SPARTAN3E + ); + + type PACEJamma_t is + ( + PACE_JAMMA_NONE, + PACE_JAMMA_MAPLE, + PACE_JAMMA_NGC, + PACE_JAMMA_PS2 + ); + + -- Types + + type ByteArrayType is array (natural range <>) of std_logic_vector(7 downto 0); + + type from_CLKRST_t is record + arst : std_logic; + arst_n : std_logic; + rst : std_logic_vector(0 to 3); + clk_ref : std_logic; --reference clock + clk : std_logic_vector(0 to 3); + end record; + + + + + type from_AUDIO_t is record + clk : std_logic; + end record; + + type to_AUDIO_t is record + clk : std_logic; + ldata : std_logic_vector(15 downto 0); + rdata : std_logic_vector(15 downto 0); + end record; + + function NULL_TO_AUDIO return to_AUDIO_t; + + type from_SPI_t is record + din : std_logic; + end record; + + type to_SPI_t is record + clk : std_logic; + mode : std_logic; + sel : std_logic; + ena : std_logic; + dout : std_logic; + end record; + + subtype SND_A_t is std_logic_vector(7 downto 0); + subtype SND_D_t is std_logic_vector(7 downto 0); + + type to_SOUND_t is record + a : SND_A_t; + d : SND_D_t; + rd : std_logic; + wr : std_logic; + end record; + + type from_SOUND_t is record + d : SND_D_t; + end record; + + function NULL_TO_SOUND return to_SOUND_t; + + -- create a constant that automatically determines + -- whether this is simulation or synthesis + constant IN_SIMULATION : BOOLEAN := false + -- synthesis translate_off + or true + -- synthesis translate_on + ; + constant IN_SYNTHESIS : boolean := not IN_SIMULATION; + +end; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg_body.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg_body.vhd new file mode 100644 index 00000000..552d7946 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg_body.vhd @@ -0,0 +1,17 @@ +library work; + +package body pace_pkg is + + + function NULL_TO_AUDIO return to_AUDIO_t is + begin + return ('0', (others => '0'), (others => '0')); + end NULL_TO_AUDIO; + + function NULL_TO_SOUND return to_SOUND_t is + begin + return ((others => '0'), (others => '0'), '0', '0'); + end NULL_TO_SOUND; + + +end package body pace_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform.vhd new file mode 100644 index 00000000..bef11d3c --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform.vhd @@ -0,0 +1,567 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity platform is + port + ( + -- clocking and reset + clkrst_i : in from_CLKRST_t; + vma : out std_logic; + -- controller inputs + inputs_p1 : in std_logic_vector(7 downto 0); + inputs_p2 : in std_logic_vector(7 downto 0); + inputs_sys : in std_logic_vector(7 downto 0); + inputs_dip1 : in std_logic_vector(7 downto 0); + inputs_dip2 : in std_logic_vector(7 downto 0); + + bitmap_i : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_o : out to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + tilemap_i : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_o : out to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_o : out to_SPRITE_REG_t; + sprite_i : in from_SPRITE_CTL_t; + sprite_o : out to_SPRITE_CTL_t; + spr0_hit : in std_logic; + + -- various graphics information + graphics_i : in from_GRAPHICS_t; + graphics_o : out to_GRAPHICS_t; + + snd_i : in from_SOUND_t; + snd_o : out to_SOUND_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + + cpu_rom_addr : out std_logic_vector(15 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + tile_rom_addr : out std_logic_vector(12 downto 0); + tile_rom_do : in std_logic_vector(15 downto 0) + ); + +end platform; + +architecture SYN of platform is + + alias clk_20M : std_logic is clkrst_i.clk(0); + alias rst_20M : std_logic is clkrst_i.rst(0); + alias clk_video : std_logic is clkrst_i.clk(1); + signal cpu_reset : std_logic; + + -- uP signals + signal clk_2M_en : std_logic; + signal cpu_clk_en : std_logic; + signal cpu_r_wn : std_logic; + signal cpu_a : std_logic_vector(15 downto 0); + signal cpu_d_i : std_logic_vector(7 downto 0); + signal cpu_d_o : std_logic_vector(7 downto 0); + signal cpu_irq : std_logic; + + -- ROM signals + signal rom_cs : std_logic; + + -- RAM signals + signal wram_cs : std_logic; + signal wram_wr : std_logic; + signal wram_d_o : std_logic_vector(7 downto 0); + signal vram_cs : std_logic; + signal vram_d_o : std_logic_vector(7 downto 0); + signal vram_wr : std_logic; + signal cram_cs : std_logic; + signal cram_d_o : std_logic_vector(7 downto 0); + signal cram_wr : std_logic; + signal sprite_cs : std_logic; + + -- I/O signals + signal scroll_cs : std_logic; + signal in0_cs : std_logic; + signal in1_cs : std_logic; + signal in2_cs : std_logic; + signal dsw1_cs : std_logic; + signal dsw2_cs : std_logic; + + signal rom4_d_o : std_logic_vector(7 downto 0); + signal rom8_d_o : std_logic_vector(7 downto 0); + signal romC_d_o : std_logic_vector(7 downto 0); + signal rom_d_o : std_logic_vector(7 downto 0); + + signal cpu_rn_w : std_logic; + + COMPONENT mc6809i + GENERIC ( ILLEGAL_INSTRUCTIONS : STRING := "GHOST" ); + PORT + ( + D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); + DOut : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); + ADDR : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); + RnW : OUT STD_LOGIC; + E : IN STD_LOGIC; + Q : IN STD_LOGIC; + BS : OUT STD_LOGIC; + BA : OUT STD_LOGIC; + nIRQ : IN STD_LOGIC; + nFIRQ : IN STD_LOGIC; + nNMI : IN STD_LOGIC; + AVMA : OUT STD_LOGIC; + BUSY : OUT STD_LOGIC; + LIC : OUT STD_LOGIC; + nHALT : IN STD_LOGIC; + nRESET : IN STD_LOGIC; + nDMABREQ : IN STD_LOGIC; + RegData : OUT STD_LOGIC_VECTOR(111 DOWNTO 0) + ); +END COMPONENT; + +begin + + wram_cs <= '1' when STD_MATCH(cpu_a, "0000------------") else '0';-- RAM $0000-$0FFF + vram_cs <= '1' when STD_MATCH(cpu_a, "000100----------") else '0';-- video ram $1000-$13FF + cram_cs <= '1' when STD_MATCH(cpu_a, "000101----------") else '0';-- colour ram $1400-$17FF + sprite_cs <= '1' when STD_MATCH(cpu_a, X"20"&"001-----") else + '1' when STD_MATCH(cpu_a, X"20"&"01------") else + '0';-- sprite 'ram' $2020-$207F + -- I/O + scroll_cs <= '1' when STD_MATCH(cpu_a, X"3000") else '0'; + in0_cs <= '1' when STD_MATCH(cpu_a, X"3002") else '0'; + in1_cs <= '1' when STD_MATCH(cpu_a, X"3003") else '0'; + in2_cs <= '1' when STD_MATCH(cpu_a, X"3004") else '0'; + dsw1_cs <= '1' when STD_MATCH(cpu_a, X"3005") else '0'; + dsw2_cs <= '1' when STD_MATCH(cpu_a, X"3006") else '0'; + rom_cs <= '1' when (cpu_a > X"3FFF") else '0'; + + -- memory block write enables + wram_wr <= wram_cs and clk_2M_en and not cpu_r_wn; + vram_wr <= vram_cs and clk_2M_en and not cpu_r_wn; + cram_wr <= cram_cs and clk_2M_en and not cpu_r_wn; + + -- memory read mux + cpu_d_i <= wram_d_o when wram_cs = '1' else + vram_d_o when vram_cs = '1' else + cram_d_o when cram_cs = '1' else + inputs_p1 when in0_cs = '1' else + inputs_p2 when in1_cs = '1' else + inputs_sys when in2_cs = '1' else + inputs_dip1 when dsw1_cs = '1' else + inputs_dip2 when dsw2_cs = '1' else + -- flip off, service off, coin A, 1C1C +-- (X"80" or X"40" or X"10" or X"0F") when dsw1_cs = '1' else + -- freeze off, easy, 20K/80K/100K, 3 lives +-- (X"80" or X"60" or X"08" or X"03") when dsw2_cs = '1' else + rom_d_o when rom_cs = '1' else +-- cpu_rom_do when rom_cs = '1' else + (others => 'Z'); + + + -- system timing + process (clk_20M, rst_20M) + variable count : integer range 0 to 10-1; + begin + if rst_20M = '1' then + count := 0; + elsif rising_edge(clk_20M) then + clk_2M_en <= '0'; -- default + case count is + when 0 => + clk_2M_en <= '1'; + when others => + null; + end case; + if count = count'high then + count := 0; + else + count := count + 1; + end if; + end if; + end process; + + -- cpu09 core uses negative clock edge + --cpu_clk_en <= not (clk_2M_en and not platform_pause); + cpu_clk_en <= clk_2M_en; + + -- add game reset later + cpu_reset <= rst_20M; + +-- cpu_inst : entity work.cpu09 + -- generic map + -- ( + -- CLK_POL => '1' + -- ) +-- port map +-- ( +-- clk => clk_20M, + -- clk_en => cpu_clk_en, +-- rst => cpu_reset, +-- rw => cpu_r_wn, + -- vma => vma, + --ba => open, + --bs => open, + -- addr => cpu_a, +-- data_in => cpu_d_i, +-- data_out => cpu_d_o, +-- halt => '0', +-- hold => '0', +-- irq => cpu_irq, +-- firq => '0', +--- nmi => '0' +-- ); + +--changed for test + cpu_inst : mc6809i + port map + ( + D => cpu_d_i, + DOut => cpu_d_o, + ADDR => cpu_a, + RnW => cpu_r_wn, + E => cpu_clk_en, + Q => clk_20M, + BS => open, + BA => open, + nIRQ => not cpu_irq, + nFIRQ => '1', + nNMI => '1', + AVMA => open, + BUSY => open, + LIC => open, + nHALT => '1', + nRESET => not cpu_reset, + nDMABREQ => '1', + RegData => open + ); + + + +--WRAm_cs + wram_inst : entity work.spram + generic map + ( + widthad_a => 12, + width_a => 8 + ) + port map + ( + address => cpu_a(11 downto 0), + clock => clk_20M, + data => cpu_d_o, + wren => wram_wr, + q => wram_d_o + ); + + -- irq vblank interrupt + process (clk_20M, rst_20M) + variable vblank_r : std_logic_vector(3 downto 0); + alias vblank_prev : std_logic is vblank_r(vblank_r'left); + alias vblank_um : std_logic is vblank_r(vblank_r'left-1); + begin + if rst_20M = '1' then + vblank_r := (others => '0'); + cpu_irq <= '0'; + elsif rising_edge(clk_20M) then + if vblank_um = '1' and vblank_prev = '0' then + cpu_irq <= '1'; + elsif vblank_um = '0' then + cpu_irq <= '0'; + end if; + -- numeta the vblank + vblank_r := vblank_r(vblank_r'left-1 downto 0) & graphics_i.vblank; + end if; + end process; + + -- scroll register + process (clk_20M, rst_20M) + begin + if rst_20M = '1' then + graphics_o.bit8(0) <= (others => '0'); + elsif rising_edge(clk_20M) then + if scroll_cs and clk_2M_en and not cpu_r_wn then + graphics_o.bit8(0) <= cpu_d_o; + end if; + end if; + end process; + + + rom_4000_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_01e.hex", + widthad_a => 14 + ) + port map + ( + clock => clk_20M, + address => cpu_a(13 downto 0), + q => rom4_d_o + ); + + rom_8000_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_02e.hex", + widthad_a => 14 + ) + port map + ( + clock => clk_20M, + address => cpu_a(13 downto 0), + q => rom8_d_o + ); + + rom_C000_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_03e.hex", + widthad_a => 14 + ) + port map + ( + clock => clk_20M, + address => cpu_a(13 downto 0), + q => romC_d_o + ); + + rom_d_o <= rom4_d_o when STD_MATCH(cpu_a, "01--------------") else + rom8_d_o when STD_MATCH(cpu_a, "10--------------") else + romC_d_o; + +--cpu_rom_addr <= cpu_a(15 downto 0); +--rom_d_o <= cpu_rom_do; + + -- wren_a *MUST* be GND for CYCLONEII_SAFE_WRITE=VERIFIED_SAFE + vram_inst : entity work.dpram + generic map + ( + init_file => "./roms/vram.hex", + widthad_a => 10 + ) + port map + ( + clock_b => clk_20M, + address_b => cpu_a(9 downto 0), + wren_b => vram_wr, + data_b => cpu_d_o, + q_b => vram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).map_a(9 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).map_d(7 downto 0) + ); + tilemap_o(1).map_d(tilemap_o(1).map_d'left downto 8) <= (others => 'Z'); + + -- wren_a *MUST* be GND for CYCLONEII_SAFE_WRITE=VERIFIED_SAFE + cram_inst : entity work.dpram + generic map + ( + init_file => "./roms/cram.hex", + widthad_a => 10 + ) + port map + ( + clock_b => clk_20M, + address_b => cpu_a(9 downto 0), + wren_b => cram_wr, + data_b => cpu_d_o, + q_b => cram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).attr_a(9 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).attr_d(7 downto 0) + ); + tilemap_o(1).attr_d(tilemap_o(1).attr_d'left downto 8) <= (others => 'Z'); + + --tile rom (bit 0) + ss_7_b6_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_7_b6.hex", + widthad_a => 13 + ) + port map + ( + clock => clk_video, + address => tilemap_i(1).tile_a(12 downto 0), + q => tilemap_o(1).tile_d(7 downto 0) + ); + + -- tile rom (bit 1)---will not fit in FPGA Block Ram + -- ss_8_b5_inst : entity work.sprom + -- generic map + -- ( + -- init_file => "./roms/ss_8_b5.hex", + -- widthad_a => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address => tilemap_i(1).tile_a(12 downto 0), + -- q => tilemap_o(1).tile_d(15 downto 8) + -- ); + +--tile_rom_addr <= tilemap_i(1).tile_a(12 downto 0); +--tilemap_o(1).tile_d(15 downto 0) <= tile_rom_do(15 downto 0); + + BLK_SPRITES : block---will not fit in FPGA Block Ram + signal bit0_1 : std_logic_vector(7 downto 0); -- offset 0 + signal bit0_2 : std_logic_vector(7 downto 0); -- offset 0 + signal bit0_3 : std_logic_vector(7 downto 0); -- offset 16 + signal bit0_4 : std_logic_vector(7 downto 0); -- offset 16 + signal bit1_1 : std_logic_vector(7 downto 0); + signal bit1_2 : std_logic_vector(7 downto 0); + signal bit1_3 : std_logic_vector(7 downto 0); + signal bit1_4 : std_logic_vector(7 downto 0); + signal bit2_1 : std_logic_vector(7 downto 0); + signal bit2_2 : std_logic_vector(7 downto 0); + signal bit2_3 : std_logic_vector(7 downto 0); + signal bit2_4 : std_logic_vector(7 downto 0); + + signal sprite_a_00 : std_logic_vector(12 downto 0); + signal sprite_a_16 : std_logic_vector(12 downto 0); + + begin + + -- registers + sprite_reg_o.clk <= clk_20M; + sprite_reg_o.clk_ena <= clk_2M_en; + sprite_reg_o.a <= cpu_a(sprite_reg_o.a'range); + sprite_reg_o.d <= cpu_d_o; + sprite_reg_o.wr <= sprite_cs and clk_2M_en and not cpu_r_wn; + + -- - sprite data consists of: + -- 16 consecutive bytes for the 1st half + -- then the next 16 bytes for the 2nd half + -- - because we need to fetch an entire row at once + -- use dual-port memory to access both halves of each row + + -- generate address for each port + -- sprite_a_00 <= sprite_i.a(12 downto 5) & '0' & sprite_i.a(3 downto 0); + -- sprite_a_16 <= sprite_i.a(12 downto 5) & '1' & sprite_i.a(3 downto 0); + + -- sprite rom (bit 0, part 1/2) + -- ss_9_m5_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_9_m5.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit0_1, + -- address_b => sprite_a_16, + -- q_b => bit0_3 + -- ); + + -- sprite rom (bit 0, part 2/2) + -- ss_10_m6_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_10_m6.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + --- q_a => bit0_2, + -- address_b => sprite_a_16, + -- q_b => bit0_4 + -- ); + +-- sprite_o.d(15 downto 0) <= (bit0_1 & bit0_3) when sprite_i.a(13) = '0' else +-- (bit0_2 & bit0_4); + + -- sprite rom (bit 1, part 1/2) + -- ss_11_m3_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_11_m3.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit1_1, + -- address_b => sprite_a_16, + -- q_b => bit1_3 +-- ); + + -- sprite rom (bit 0, part 2/2) + -- ss_12_m4_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_12_m4.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, +-- address_a => sprite_a_00, + -- q_a => bit1_2, + -- address_b => sprite_a_16, +--- q_b => bit1_4 + --- ); + + -- sprite_o.d(31 downto 16) <= (bit1_1 & bit1_3) when sprite_i.a(13) = '0' else +-- (bit1_2 & bit1_4); + + -- sprite rom (bit 2, part 1/2) + -- ss_13_m1_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_13_m1.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit2_1, + -- address_b => sprite_a_16, + -- q_b => bit2_3 + -- ); + + -- sprite rom (bit 2, part 2/2) +-- ss_14_m2_inst : entity work.dprom_2r +-- generic map +-- ( +-- init_file => "./roms/ss_14_m2.hex", + -- widthad_a => 13, +-- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit2_2, + -- address_b => sprite_a_16, + -- q_b => bit2_4 + -- ); + + -- sprite_o.d(47 downto 32) <= (bit2_1 & bit2_3) when sprite_i.a(13) = '0' else + -- (bit2_2 & bit2_4); + + end block BLK_SPRITES; + + -- unused outputs + + graphics_o.bit16(0) <= (others => '0'); + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform_pkg.vhd new file mode 100644 index 00000000..83d03cdc --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform_pkg.vhd @@ -0,0 +1,212 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; + +package platform_pkg is + + constant PACE_HAS_PLL : boolean := true; + + constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_VGA_800x600_60Hz; --40 + constant PACE_CLK0_DIVIDE_BY : natural := 27; + constant PACE_CLK0_MULTIPLY_BY : natural := 20; -- 20MHz + constant PACE_CLK1_DIVIDE_BY : natural := 27; + constant PACE_CLK1_MULTIPLY_BY : natural := 40; -- 40MHz + constant PACE_VIDEO_H_SCALE : integer := 2; + constant PACE_VIDEO_V_SCALE : integer := 2; + constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '1'; + constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '1'; + + + constant PACE_VIDEO_BORDER_RGB : RGB_t := RGB_BLACK; + + constant PACE_VIDEO_NUM_BITMAPS : natural := 0; + constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; + constant PACE_VIDEO_NUM_SPRITES : natural := 24; + constant PACE_VIDEO_H_SIZE : integer := 256; -- 240 + constant PACE_VIDEO_V_SIZE : integer := 256; -- 240 + constant PACE_VIDEO_L_CROP : integer := (256-240)/2; + constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; + constant PACE_VIDEO_PIPELINE_DELAY : integer := 3; + + constant PACE_INPUTS_NUM_BYTES : integer := 4; + + -- + -- Platform-specific constants (optional) + -- + + constant CLK0_FREQ_MHz : natural := + 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; + + constant WILLIAMS_CPU_CLK_ENA_DIVIDE_BY : natural := + CLK0_FREQ_MHz / 3; + + type palette_entry_t is array (0 to 2) of std_logic_vector(5 downto 0); + type palette_entry_a is array (0 to 255) of palette_entry_t; + + constant pal : palette_entry_a := + ( + 1 => (0=>"100111", 1=>"100111", 2=>"100111"), + 2 => (0=>"000000", 1=>"100011", 2=>"000000"), + 3 => (0=>"011100", 1=>"001011", 2=>"000111"), + 4 => (0=>"100111", 1=>"001011", 2=>"000111"), + 5 => (0=>"101111", 1=>"011000", 2=>"000000"), + 6 => (0=>"101111", 1=>"101111", 2=>"101111"), + 7 => (0=>"011100", 1=>"011100", 2=>"011100"), + 8 => (0=>"000000", 1=>"010000", 2=>"011000"), + 9 => (0=>"010000", 1=>"011000", 2=>"100111"), + 10 => (0=>"011000", 1=>"010000", 2=>"011000"), + 11 => (0=>"100011", 1=>"011000", 2=>"100011"), + 12 => (0=>"101011", 1=>"101011", 2=>"000000"), + 13 => (0=>"101011", 1=>"100111", 2=>"101011"), + 14 => (0=>"011100", 1=>"011100", 2=>"110100"), + 15 => (0=>"110100", 1=>"000000", 2=>"000000"), + 17 => (0=>"110100", 1=>"110100", 2=>"110100"), + 18 => (0=>"100111", 1=>"100111", 2=>"100111"), + 19 => (0=>"110100", 1=>"100111", 2=>"011100"), + 20 => (0=>"101011", 1=>"000000", 2=>"000000"), + 21 => (0=>"011100", 1=>"000000", 2=>"000000"), + 22 => (0=>"101011", 1=>"011100", 2=>"000000"), + 23 => (0=>"111000", 1=>"101111", 2=>"000000"), + 24 => (0=>"111100", 1=>"000000", 2=>"000000"), + 25 => (0=>"100011", 1=>"000000", 2=>"100111"), + 26 => (0=>"011000", 1=>"000000", 2=>"101011"), + 27 => (0=>"011100", 1=>"011100", 2=>"111000"), + 28 => (0=>"111100", 1=>"011100", 2=>"000000"), + 29 => (0=>"000000", 1=>"100011", 2=>"000000"), + 30 => (0=>"000000", 1=>"101011", 2=>"000000"), + 31 => (0=>"000011", 1=>"000011", 2=>"000011"), + others => (others => (others => '0')) + ); + + -- Colour Look-up Table (CLUT) : Table of palette entries + -- - each row has four (4) palette indexes + -- decoded from 2 bits of tile data + + type tile_clut_entry_t is array (0 to 3) of std_logic_vector(3 downto 0); + type tile_clut_entry_a is array (0 to 63) of tile_clut_entry_t; + + constant tile_clut : tile_clut_entry_a := + ( + 0 => (0=>X"0", 1=>X"B", 2=>X"0", 3=>X"0"), + 1 => (0=>X"0", 1=>X"C", 2=>X"0", 3=>X"0"), + 2 => (0=>X"0", 1=>X"D", 2=>X"0", 3=>X"0"), + 3 => (0=>X"0", 1=>X"E", 2=>X"0", 3=>X"0"), + 4 => (0=>X"0", 1=>X"F", 2=>X"0", 3=>X"0"), + 6 => (0=>X"0", 1=>X"1", 2=>X"0", 3=>X"0"), + 7 => (0=>X"0", 1=>X"2", 2=>X"0", 3=>X"0"), + 8 => (0=>X"0", 1=>X"3", 2=>X"0", 3=>X"0"), + 9 => (0=>X"0", 1=>X"4", 2=>X"0", 3=>X"0"), + 10 => (0=>X"0", 1=>X"5", 2=>X"0", 3=>X"0"), + 11 => (0=>X"0", 1=>X"6", 2=>X"0", 3=>X"0"), + 12 => (0=>X"0", 1=>X"7", 2=>X"0", 3=>X"0"), + 13 => (0=>X"0", 1=>X"8", 2=>X"0", 3=>X"0"), + 14 => (0=>X"0", 1=>X"9", 2=>X"0", 3=>X"0"), + 15 => (0=>X"0", 1=>X"A", 2=>X"0", 3=>X"0"), + 16 => (0=>X"0", 1=>X"8", 2=>X"9", 3=>X"E"), + 17 => (0=>X"0", 1=>X"A", 2=>X"B", 3=>X"D"), + 18 => (0=>X"0", 1=>X"3", 2=>X"4", 3=>X"5"), + 19 => (0=>X"0", 1=>X"7", 2=>X"1", 3=>X"6"), + 20 => (0=>X"0", 1=>X"3", 2=>X"4", 3=>X"2"), + 21 => (0=>X"0", 1=>X"7", 2=>X"0", 3=>X"6"), + 22 => (0=>X"0", 1=>X"2", 2=>X"3", 3=>X"4"), + 23 => (0=>X"0", 1=>X"2", 2=>X"A", 3=>X"B"), + 24 => (0=>X"0", 1=>X"9", 2=>X"6", 3=>X"E"), + 25 => (0=>X"0", 1=>X"1", 2=>X"6", 3=>X"7"), + 26 => (0=>X"0", 1=>X"7", 2=>X"1", 3=>X"6"), + 27 => (0=>X"0", 1=>X"2", 2=>X"C", 3=>X"6"), + 28 => (0=>X"0", 1=>X"C", 2=>X"F", 3=>X"2"), + 29 => (0=>X"0", 1=>X"2", 2=>X"B", 3=>X"6"), + 30 => (0=>X"0", 1=>X"2", 2=>X"F", 3=>X"6"), + 31 => (0=>X"0", 1=>X"2", 2=>X"B", 3=>X"D"), + 32 => (0=>X"0", 1=>X"2", 2=>X"1", 3=>X"6"), + 33 => (0=>X"0", 1=>X"2", 2=>X"9", 3=>X"E"), + 34 => (0=>X"0", 1=>X"2", 2=>X"4", 3=>X"F"), + 35 => (0=>X"0", 1=>X"2", 2=>X"9", 3=>X"6"), + 36 => (0=>X"0", 1=>X"2", 2=>X"F", 3=>X"6"), + 37 => (0=>X"0", 1=>X"C", 2=>X"3", 3=>X"5"), + 38 => (0=>X"0", 1=>X"1", 2=>X"3", 3=>X"5"), + 39 => (0=>X"0", 1=>X"4", 2=>X"5", 3=>X"6"), + 40 => (0=>X"0", 1=>X"7", 2=>X"1", 3=>X"5"), + 41 => (0=>X"0", 1=>X"9", 2=>X"E", 3=>X"C"), + 42 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"3"), + 43 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"6"), + 44 => (0=>X"0", 1=>X"1", 2=>X"5", 3=>X"6"), + 45 => (0=>X"0", 1=>X"4", 2=>X"5", 3=>X"2"), + 46 => (0=>X"0", 1=>X"4", 2=>X"5", 3=>X"C"), + 47 => (0=>X"0", 1=>X"E", 2=>X"9", 3=>X"6"), + 48 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"2"), + 49 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"6"), + 50 => (0=>X"0", 1=>X"B", 2=>X"D", 3=>X"6"), + 51 => (0=>X"C", 1=>X"D", 2=>X"E", 3=>X"0"), + 52 => (0=>X"1", 1=>X"2", 2=>X"3", 3=>X"4"), + 53 => (0=>X"5", 1=>X"6", 2=>X"7", 3=>X"8"), + 54 => (0=>X"9", 1=>X"A", 2=>X"B", 3=>X"C"), + 55 => (0=>X"D", 1=>X"E", 2=>X"0", 3=>X"F"), + 56 => (0=>X"2", 1=>X"3", 2=>X"4", 3=>X"5"), + 57 => (0=>X"6", 1=>X"7", 2=>X"8", 3=>X"9"), + 58 => (0=>X"A", 1=>X"B", 2=>X"C", 3=>X"D"), + 59 => (0=>X"E", 1=>X"0", 2=>X"F", 3=>X"1"), + 60 => (0=>X"3", 1=>X"4", 2=>X"5", 3=>X"6"), + 61 => (0=>X"7", 1=>X"8", 2=>X"9", 3=>X"A"), + 62 => (0=>X"B", 1=>X"C", 2=>X"D", 3=>X"E"), + 63 => (0=>X"0", 1=>X"F", 2=>X"1", 3=>X"2"), + others => (others => X"0") + ); + + -- Colour Look-up Table (CLUT) : Table of palette entries + -- - each row has four (8) palette indexes + -- decoded from 8 bits of sprite data + + type sprite_clut_entry_t is array (0 to 7) of std_logic_vector(3 downto 0); + type sprite_clut_entry_a is array (0 to 31) of sprite_clut_entry_t; + + constant sprite_clut : sprite_clut_entry_a := + ( + 0 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"7", 5=>X"8", 6=>X"B", 7=>X"0"), + 1 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"C", 5=>X"6", 6=>X"B", 7=>X"0"), + 2 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"4", 4=>X"C", 5=>X"8", 6=>X"B", 7=>X"0"), + 3 => (0=>X"F", 1=>X"C", 2=>X"4", 3=>X"F", 4=>X"F", 5=>X"F", 6=>X"F", 7=>X"0"), + 4 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"6", 4=>X"7", 5=>X"E", 6=>X"B", 7=>X"0"), + 5 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"8", 4=>X"7", 5=>X"B", 6=>X"F", 7=>X"0"), + 6 => (0=>X"F", 1=>X"3", 2=>X"6", 3=>X"A", 4=>X"D", 5=>X"E", 6=>X"B", 7=>X"0"), + 7 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"8", 4=>X"7", 5=>X"B", 6=>X"E", 7=>X"C"), + 8 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"5", 4=>X"8", 5=>X"D", 6=>X"E", 7=>X"0"), + 9 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"F", 4=>X"7", 5=>X"E", 6=>X"D", 7=>X"0"), + 10 => (0=>X"F", 1=>X"1", 2=>X"4", 3=>X"7", 4=>X"8", 5=>X"2", 6=>X"C", 7=>X"0"), + 11 => (0=>X"F", 1=>X"1", 2=>X"4", 3=>X"7", 4=>X"5", 5=>X"2", 6=>X"C", 7=>X"0"), + 12 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"8", 5=>X"9", 6=>X"6", 7=>X"0"), + 13 => (0=>X"F", 1=>X"F", 2=>X"F", 3=>X"4", 4=>X"8", 5=>X"5", 6=>X"F", 7=>X"0"), + 14 => (0=>X"F", 1=>X"5", 2=>X"6", 3=>X"7", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"F"), + 15 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"C", 5=>X"F", 6=>X"B", 7=>X"0"), + 16 => (0=>X"F", 1=>X"F", 2=>X"8", 3=>X"4", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"C"), + 17 => (0=>X"F", 1=>X"F", 2=>X"8", 3=>X"4", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"C"), + 18 => (0=>X"F", 1=>X"1", 2=>X"6", 3=>X"7", 4=>X"8", 5=>X"D", 6=>X"C", 7=>X"E"), + 19 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"5", 4=>X"D", 5=>X"8", 6=>X"E", 7=>X"0"), + 20 => (0=>X"F", 1=>X"1", 2=>X"6", 3=>X"4", 4=>X"D", 5=>X"2", 6=>X"0", 7=>X"C"), + 21 => (0=>X"F", 1=>X"1", 2=>X"8", 3=>X"7", 4=>X"A", 5=>X"B", 6=>X"0", 7=>X"C"), + 22 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"B", 4=>X"2", 5=>X"8", 6=>X"6", 7=>X"0"), + 23 => (0=>X"F", 1=>X"1", 2=>X"4", 3=>X"C", 4=>X"7", 5=>X"8", 6=>X"6", 7=>X"0"), + 24 => (0=>X"F", 1=>X"1", 2=>X"D", 3=>X"E", 4=>X"6", 5=>X"7", 6=>X"8", 7=>X"0"), + 25 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"4", 4=>X"7", 5=>X"8", 6=>X"C", 7=>X"0"), + 26 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"3", 4=>X"A", 5=>X"B", 6=>X"0", 7=>X"6"), + 27 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"3", 4=>X"4", 5=>X"5", 6=>X"0", 7=>X"6"), + 28 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"3", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"6"), + 29 => (0=>X"F", 1=>X"1", 2=>X"F", 3=>X"E", 4=>X"7", 5=>X"A", 6=>X"B", 7=>X"0"), + 30 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"4", 4=>X"6", 5=>X"7", 6=>X"8", 7=>X"0"), + 31 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"7", 4=>X"A", 5=>X"6", 6=>X"9", 7=>X"0"), + others => (others => X"0") + ); + + type from_PLATFORM_IO_t is record + not_used : std_logic; + end record; + + type to_PLATFORM_IO_t is record + not_used : std_logic; + end record; + +end; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.qip b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.qip new file mode 100644 index 00000000..d4720390 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_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/SonSon Hardware/Sonson_MiST/rtl/pll_mist.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.vhd new file mode 100644 index 00000000..faf66714 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.vhd @@ -0,0 +1,429 @@ +-- 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 ; + c2 : 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 ; + SIGNAL sub_wire6 : STD_LOGIC_VECTOR (1 DOWNTO 0); + SIGNAL sub_wire7_bv : BIT_VECTOR (0 DOWNTO 0); + SIGNAL sub_wire7 : 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; + clk2_divide_by : NATURAL; + clk2_duty_cycle : NATURAL; + clk2_multiply_by : NATURAL; + clk2_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_wire7_bv(0 DOWNTO 0) <= "0"; + sub_wire7 <= To_stdlogicvector(sub_wire7_bv); + sub_wire4 <= sub_wire0(2); + sub_wire3 <= sub_wire0(0); + sub_wire1 <= sub_wire0(1); + c1 <= sub_wire1; + locked <= sub_wire2; + c0 <= sub_wire3; + c2 <= sub_wire4; + sub_wire5 <= inclk0; + sub_wire6 <= sub_wire7(0 DOWNTO 0) & sub_wire5; + + altpll_component : altpll + GENERIC MAP ( + bandwidth_type => "AUTO", + clk0_divide_by => 27, + clk0_duty_cycle => 50, + clk0_multiply_by => 20, + clk0_phase_shift => "0", + clk1_divide_by => 27, + clk1_duty_cycle => 50, + clk1_multiply_by => 40, + clk1_phase_shift => "0", + clk2_divide_by => 50, + clk2_duty_cycle => 50, + clk2_multiply_by => 163, + clk2_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_USED", + 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_wire6, + 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: DIV_FACTOR2 NUMERIC "50" +-- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "20.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "40.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "88.019997" +-- 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 "deg" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT2 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: MIRROR_CLK2 STRING "0" +-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "20" +-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "40" +-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "163" +-- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "20.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "13.50000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "88.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT2 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_SHIFT2 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: PHASE_SHIFT_UNIT2 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: STICKY_CLK2 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_CLK2 STRING "1" +-- Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA1 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA2 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 "20" +-- 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 "40" +-- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "50" +-- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "163" +-- Retrieval info: CONSTANT: CLK2_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_USED" +-- 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: c2 0 0 0 0 OUTPUT_CLK_EXT VCC "c2" +-- 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: c2 0 0 0 0 @clk 0 0 1 2 +-- 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/SonSon Hardware/Sonson_MiST/rtl/roms/cram.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/cram.hex new file mode 100644 index 00000000..43e8f186 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/cram.hex @@ -0,0 +1,65 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:10002000000C0C0C0C0C0C00000000000000282838 +:100030002828000000000000000000000000000070 +:1000400000002C2C2C2C2C2C2C2C0000002C2C2CCC +:100050002C2C2C2C2C0000000000000000000000C4 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000A3A2A34F00000000007A000000009F +:1000B0000000000000000000000000006E6E000064 +:1000C0000000A3A2A34F000000007A7A0000000005 +:1000D0000000000000000000000000006E6E000044 +:1000E0005959595959595959595959595959595980 +:1000F0000000595959595959595959595959595922 +:10010000595959595959595959595959595959595F +:100110000000595959595959595959595959595901 +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:1001600059595959595959595959595959594A4A1D +:100170004A4A4A4A4A4A5959595959595959595949 +:1001800059595959595959595959595959594A0047 +:1001900000000000004A595959595959595959599B +:1001A000000000000000000000000000000000004F +:1001B0000000C3000000000000000000000000007C +:1001C000000000000000000000000000000000002F +:1001D0000000C7C300000000000000000000000095 +:1001E000595959595959595959595959595959597F +:1001F000595959595959595959595959595959596F +:10020000595959595959595959595959595959595E +:10021000595959595959595959595959595959594E +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:1002600059595959595959595959595959595959FE +:1002700059595959595959595959595959595959EE +:1002800059595959595959595959595959595959DE +:1002900059595959595959595959595959595959CE +:1002A00000000000000000000000000000006E6E72 +:1002B000000000000000000000000000000000003E +:1002C00000000000000000000000000000006E6E52 +:1002D000000000000000000000000000000000001E +:1002E000595959595959595959595959595959597E +:1002F0005959595900005959595959595959595920 +:10030000595959595959595959595959595959595D +:1003100059595959000059595959595959595959FF +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:1003600059595959595959595959595959595959FD +:1003700059595959595959595959595959595959ED +:1003800059595959595959595959595959595959DD +:1003900059595959595959595959595959595959CD +:1003A000616161616161616161616161616161613D +:1003B000616161616161616161616161616161612D +:1003C000616161616161616161616161616161611D +:1003D000616161616161616161616161616161610D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson.zip b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson.zip new file mode 100644 index 0000000000000000000000000000000000000000..d5b6fc4012603342668293441d19c712aae3d7a4 GIT binary patch literal 64728 zcmZ6xV~{XB&?P#adB(PF+qP}nwr$(CZQHhOoAF=AWr10ssKu2LJ&3Z*g*>rDrhd@q*G;UTb;dWf~I7H8YJ5d*UpF zEh>bjJMy2r$AzDZrpHH&5k`&>EkQ_PwV2V5*H5O9z`8k7jVKjdTwPTA>?|%KQ7ZIJ z*5o2A93T$irf;Y)G*s?wdF2Hr_1XUVx=r(Pef_QLdDXP~500{V5;0(RWfYff1@2YZ z{I(A&8GSReO}^)+c9_R%yDUiAW(IT(-)$YKBDPbW+~>q>tX})vZm;Jh_9WQkx*NK= zBALPCIypDrs>n=ty47kp=4HY+^t*MevBi*HUF7>V+xZ*~SINBdvY#ikZD*a>KkbvV zoN!cePUobhwQWEEXPK@{GgoNrJD&V(PMh&WlkQ6Y?baLJtS^vV+|;E5JHnZE8^TWWq+4(dIk<^m z;xxMN1VopPkBSquoqkJZagiOlH_;uj?4sXuB~p(2iJ^WmdIq2Fmw-#rfHP(t-(G8t zWx{c;;*4(>(NE@=G3uGhRWDu4_Ii2GF{}+d4x!+y=7hy@l|dTkpziW84E&)RF^b6! z9nbo{h=IdajAmLl?IGHtRzmfuv8z9BC8~{Zy*iFzj=_$lq_~=`O#+^oS5#3qTPHcS zJ(2~-*z*IRl4#8sy4-uCFzbUMtmZMTyUr(Yx{b~`@@IY6$}rD`l}WS9ArI-+GjOK& z_QE;$0+tKQ{lZz1j>GL-S<;i%^2YZ>drUWFH`%8$uX!IyhYtO0?ZtcNdW$jM z?!Lz%B>o0Cf}ui~+&kTvyPg&KS+5^u=PFmMusW$>Kk*}@kO%+on@JmMQZzp_3lD>= zqAtGqw)?IlWz?bZ9mUXM=R|e&@wQuRRJVPTeUW!_J*{m?P1B=+`K6@+ss94Q#*yku zK);Snev{I4_Kg3QVc&NL3*Uik%>~>{VK&z!JeKv`L)RueC{b-pE-n(d6!&*YmQ8j| zbWAR97E1GE`#xnf!=h0EZQXMa>-tV0f%eKg`x?Gge3z|fsW_9ZI-|@i2s9|k?Z5eE zyL;pP!84F>kw2W@ZIleyo+6po;u5NraXn?B(v>pz$*4KBJ(>5;s0F+|$@h`UOjZiY z3SL*`b??Hs$^6Jl3(BNs{f*y)!8JkGFZ(Dm4!64%k?UgkrlEI)*q*4D3FE34D}0&7 zv4@y%GIPAIS5fuxRgq$M+L!&;M27P6hRG=H358#*>Ahic)?do-!V==}X*D1^``BLS ztF6FC=h{6Auta&USK{IpV?RPK1-q&rEPpq9Lemd?xt^=T(!2(Q@u~?Aq;VtzvU4ha z4xQ?T<-Cr$u2cWJAHJM7$PV)v8Q^QC)jw=85<$|`?xJk61_)};9qGY%hsYS_##9-$NiAg4M^=*tpH~>}!&hSlrZJ@|2Te`$clcif2}SNqlj;>y|#+x~&l>((`*He`lrx zKS4Dn7`o;6*>ep*jVv!u+RZ8vlx0_f>R;>jRQ3HlWXl`2m~f}QI=hzBcW}D(H;@vK zHTqW2b2fn#`hIR|aB=5hxKB!Qui`zFXj+ra)O04%W^)Se6`RL?it#|a&6|)?zb~vf z$P(89Of04|=#^&|+iz<9{J5Td+hEhiV`|mfve9egwcxt#y6ReFF0znw7=Fkxk}lr!aq=iLrAMWq-q?Non|MPam+D<~>_x(NjFxFF z64FZT8#Q6!W}2ox<#j7nM&?d_PsB;kU0XP-(^VJSmlsGE4nfK-E{ zRGcb!lLo1YwNT1oBT<>9SzQrha3Qa>hX%%iE^1iYGpuXLLiVtMn2|lqN1i|-;awzL zO8P)2ZmfyuCrG%I^iGA?K`t>NaqJ@@*|#(DALvLWF50niNnEsLB^5t!&B!Qz-kg$9 z{J1_PDf@PTYFwHjGF5kM#A<&*S~Z$DXr?v>xg{T)rJZO!J>tAFLO9j-h=aJM7cuu$ zPivk|)4FInP3Ev;OePF_o!V0-H>s1;P$#ocC+is$a8C+;SfNg~sgv^=6l9MGS{M{q zDym{fE_o{wZ2p-l~3dyH18_~ZHR8b!0s zBulS}_*SgYrdFFmXJbY{5r!Ci6e4Y^ZB0qlh!`d`k#~Wt=X5t?s_>osP(AB}7ptph z-cZv`xS|?tO+}P!P*uO4_)0cwLEXG|Q~xR(CY+PIY36*uW0eptBt%m+SgRy3t)&)c z=bVdowCyIRs~y*q%B|`Zza&q1$`Q^+>EYIFP37b<>6tb)=?IEA-JCcpPbixGb+eF2 zWQe(3a2E;HZ#{}wQHXX?<8e^}FLY1%s?)6HronYp(k6gveV7x1X?buXkWxx`&@ik( z$EC>n>xqsSD@%*MU}TsfO5IS0M?Zoqv}C9@*r}Uqob81$-STti@#jh@^%Hcu=3>XH z?DiB^B=Y_K7Pv% z+5-(qM1wPOo%Q9wFJwZPvEuF|H@Ud)LbJC$yqCVLhI?r(@z{qDy!f2Me=xE;G1eYI zIRC}P-x3T_@oF;k925B-Xgk1%^WfnYI)0Y!*t*_UiDd%+JM|427`!~nvV>~(=Ign70q#|kAfXIy%J|NdfmvS zeG6d56jm04?39QMu)Vr`9|yG^);Nzmv}K`y*R_c*VBVc%1+}tb0E_C3jAo@8(KXV2 z8QsVvT=Q7`i<1jK+<84e)jzxLZ|=wY;pU;|=v{wL7_n`hYsc!tytO_n`E1NHn6xmRf=w@;wvShM*v7t*!)wbrks2!B4?w-N{OQs1%~am8eL~`vBznI^$05@>hFGI z4XAs-HL|yKO?faCOFBsp^T`-G^9p8z=k*LdZC|N#bLW-i zGlp%1Zp`M}b>em-25+l*agWm&z?-uR)fL-{ipeWR6;$iFh;*(Jk#$!|w9MsRFW#)( zq&`Eb#H-Rx9kW!ytK3b3GPopu;XbGFZfw*0e%i$c=Z6i(2H|+md%>0VvQr-3lg{<1 zBjPiRO?Ovmq!h?CRrHZ)k+4-M_bt4PPcv8XQ;M0S8d{#X47TS+>uY8mP&U~{>|JAT z!r(pM{vKGp>0SA!K!)68tUIz9JpZ&7FxDkSrDYb@hVGO;f4gd^cd{AG+_&tVya}Ti z`(GMAsJ`g#GywE zSVd2jh~jhHnuBvf=AfcAa6RU0fP&(S_MAnm>UJRp&lFD9bA6TSTtxY z4)G{@kml*H7Ss01d_{o)>td>>A$f&uH~fL+V-ls=;$wnQ!*D{*!kvD5pcjbMpp5{J4uXz}I{PGg zsJ`Vjqm?F*6S0=BekD+;~<7G)K<%S8<&y(6fuG$p7vQm=@kKyA)kYJxyQOE8-jmD6{5lu>OO~;RXP#NKzXQ1P zeb6v;r!kpVTVEHc@giy>f09%MRYh1et0uGkx1L$uB4G8`{(1_$wYJk{TlfjLg2&r_ zF;G_rrYxFaN85DS57GC6rEoZ8NSJ9>;Ch3vd+_KFdiAOlp6Mc3v9bHDbKkZ_l z53DlTva+D+g0g1UDWN4d>5kP>#!ceXJg?d-r@A-gOl5*wT0ou3#hJ04->uiEO>$?J zx&k*|$KW-|E8+u{q*a7|YuqUmd4Nh;)?M9Bs*npXNdBwr&rIkd!QT>LSuP2@dC6PA zZH3R!uxlNlI(jq*)+$ki4Sj8A@be0$QQ|8Vw8?3wpkpTARs6+2&ticMI&dmG%7t=W z-+&Gc_O_L-W)(=1r(#yBvSnL;E^B4vpa3JAbiAyx^eHp#Wfz{|QOAv>xbw)6;uPB4 z)J|R{_*t?m8~Vt4s^U;C6uGi7--^mw7$7fqXEVu#F)F1h8^WP(SLtMMvnUN0>`|<6 z8UmGQ!qBaoxe|F#yF^C)dN7oex47C3Q4srb8bjZ-o7@UvRfhZpAx3vq#J33AGtnPO zv}jUj=coJWfX1AiaFf%l;z8Tk6QW4Dzv3f$8&zcAZCUUHi=$AtY5A4zQDSRmrKnPJ zTW7Q|6LBbmL`|#k;-aj!f_IWgsDZh18aL|Pglx9uT*a(aR?4M$PF+q_=Cv-VtXUM% zOeibDRh;9<+F5ggn$>15M;B!wB8`>>cfubnrg@~o@RMU5QWJrZ`guPrd8KO-L$cTl zlH2_IX{0j^Y@(YzPw|0fR&%uOezeJTr}(!z43lNs@WL3BrYigZ9d>N-2c1R}{=qo3 zM0n!_V+W<*C9Py*XjLS*L~>IO7*nP;>)evmu-Gcmg+<=Fsbbc0vj{uB@IcB6rJK_s zGV7XKEAyxyW7|#}ulag8(=)A<xTJKNEyc<)R}zQUwrZg5qiU;6ibm1B|8O_xh?L5cHF zD;ryDmVe3K3Vf(TDoHUn+SXF9nr|KLINDaU{kPc3XK`HO)VOATQ_@uDjINWz=*o-5 zzsYL6;u`JYOSGvZ4I>(fqa|83y#QCLh2N?N1x|1gZhzn_@B*TW(qLs0W*vpDB zj0^r2FJ7v($C|9Z`j5h7DsflrJEQtiw>1>3=~HXn_PPPm8jcc26)h@Y z)50cAbvWK7{RU$<%O+L!InnyBw|e~6@TYRk7_Nz@=SG-@+ri`EAe=JfTg5#i)m;!4+Ms!5V;D5KkwLa?{HR@dV1^vN2$ z{PRg?akFOnZCT=Bs&CZ!V;86jIj8{Wf=cm)e}LsLtI3|RGepr@g(oEN8H|cN*|74O zrkPQv#k?wPqwH!|)vhQR(LE>HadQ)+gwxE*tj2Pm0j6Ybb!AYK%324WVB_!4r4Ci< zQs(-rvaUGSCxIe>%*TgAs`!q6r6bYx!VAVdQB*`i4JYX-#knP(Zj>*~S+x8Ud$FSc zM7PY@mYsACCd}EkJb=tXnf<&Y;FsfE;}P^d?dZ6qZGfUoNYg;ptm`=y+xfMrrIcIa zR?n|&5@#_@LBu1?4=?3wZYK$)JLV?i5Hc*{CV4Tkm6McBT|h2Co$%<~hTC1!TwL8< zm{@zPXxSa-ty5Dav_}vmf4ZKnd$}AUPEP(ItWb38lMyFSapw4D(3yY>pwv z9&onOdF@-@dhSErZHC0@>7ZT6fuMn?cF2Kk=DRcNw4EiMCamy}h?2l@I7IdMSg@M05bCtlfk2xaZ8XFQL7RBYNm6#CqJ!L)6K!V1z5)B7l*0JYf}p@4AYott zf&1Yvbza(a#h7g>A0qB72I(uSLx&~Rl!FmP9Yh}?Tm&95IG8-daxd1j4&`m zB7NL0c9=6R1Q7}a)snifKK&MLnN`e)2P{gR9RFR5$!!m=p2qo2BsfZLXU;)k%kO?! zgkAYE&wQ|zj>c}VRgBrI{&oDzi#BjPc8_%rju7T6v%%)vna1MKV?j| zEkA|M&yB9t$7D*^+Kc-MqnZcd6I#>b@Q}CpaRu*sXmc%hJ+4J(>dojzLWXKJ*Sqh9 zklJd^Zs*OZaeUP0Hfk}Bw0P#ln&?++!l|q80r`+ED|au*J^y2WDSXfJ<5hR~j{9lH zC%g{(%LM$ej??c4@z759_XZBWuFvPFF8qjyO$>q0_bkZ`!LH}+;w!vu>{eT(`)go0 zESx?^8-bfLLo*h=Bpufu9S0pL7#$0n4aPw4*&Ogd@h#o_j^Ro8xP?qD*Ryw0&W!TfzNOKhiF(W?(cRi{3n+$ zho9T)agGdO?&bT0ML6&68xP(A_y0Fohk~B`!~Ywh z5RdS(kT6f*-v6=p4>Rchn*BcyV0D*=LwNa5`~QHOjh7?W>`-Hf1{6XXF|Ca7bb1;G z9>N>UD9#xa!WkUG84|)78p5^pR4Dj0F+pGsXt+5z!p(7ikSqKGEa9erFjx3FTrE{| zQ275AQ22x2;1}Wu|BoP7>i<>$--0W^|9kSg%bSS6$et|HY zhx79h72fy$OEm`XxA9OVE1Y{5_BLqoScYUKXZSPM$F~;rp0?(#JN)E_elF4ta2L1q z9y6qe1@^Jz*Y&u7a{TvGb7e=g`+oHfaX7OOw9os*R^U_7V_&#za^PJ{$p; zXT$BeY}>~(dOxcY%Kf)(D;SIW5(l-0FpE^3$A;k0M{wvXH2f19{sn_@;=pU)Lr};~ zI7#%s!1O-jo9GxJ@aYAD`#pCZ46c_9{(&dp4#ZndA7>8jFlVj?B!5xy@Gjo3f4#h;uklgGrrp*vr`gXtp%{=`TkqaPR zbPWjj=SaAaS-!44PFg4+Ui{r59H$R73d@hfO4J5OIukFhbt*6-9PH6Q5bFjsM4w0R zRbG}QC1I-j=HJk%LSezB%@kuw3&{!P#S{dxisA{5T9-sf@soI}ziK*gAdD(}40u(g zg%#l@NC+UBssVp_iAey}fGQN>C`|G_0O=pfcrYn>2SgcA6+M_*RYV;UbLGGYMRPXx zf;^SvhDeBJyGk|LX7N-6Qza$QA3;RuYEmVMu7v75=}t{WAy&a%VarjNtZ^{S9ezu) zXDokyQ5xeJQU4g`6+{Ezdn*DXAYgKTVuDQ>#DF<9+#Jc{2s*hEKP?Y$MxWM`syG>v z!mc;%mAW!u{y76~mSr60W>fFQg%^6<8PUPY^~#!%_qsBp5CZGKc)NH}%XNSh%*vL8 zb5_Cc3L5w|qPEn~Vn7({!q7D#k#%Cw2C!k6@hyI@3K6&YYfnrbgCb-><^nM@%VJ}F z0ps3(3m`}ZC9Gh#u?+GNL<~or>LB~0iR)dS#AfrW=!WS69}dj_xX9U3No|1b4ga-{ zA?N^ym}|0JCkx+uR>qaO*3*PSFern|3?tZ3tHhO13uQ0EwO*pfwOnR!TCL3BD@nk; ziBTXBj)!C4j=V2Hu-W!w`2r{hIEV=WRs!M|nBkWVaw03uBa1_eJI+Ibh35kRicW^> zg3U~KW4qkbc>!6-g#y6K_ahtXW%5tj>*bWXO>qV*I!`=|tO$sXub&v~ZHNA^{0-hM+TrKIm3_i3}K(ME_nu8RMov z512mW#Iil5a$x3N&0&jWN`QD8N`q4Zk(PRzS;-(hVy{zTZ*{WmGWm>N}XKkTq}2%ALT;db*4A7R)wB5H;^Z32a|1ogLRnr5WPJ& zdnVXs>DYt52^8^;DI`~c2^K>>qvl`&Br|P%8-ImII#^_ka+?t0LTN#O=9XYrC``MG z;-2U;S3qCJDb4xT>4dz*!H(pXvzEnri8^=!KDsKrOsD>L5LKYbeY-!rFcsX+BHwU3 zGX}ZbBoJ_FGjyo{Bq`?To&e2d5Jg>p=CT1DoPbDUC=i#0h`tV(!jY$GOa{Zdmxp;J zUMlm_xboutGdM>o2njM}X7Ujxd3^sP63&T)jpp$~@&FPK-M@oBKH_r!qT<$MX=`vM zerNLeercmJ?wb5^K!dX7hJCeBVJ?&3if~<-VJBsYm}f)2RIA zLWSx=i~<06^BVZZR(R$}h^tNgqREhED;gT}&QGn>Uy!?0)&|KcQqVKvOgS7;q7+eCB<4 zdwrPxW#|L}%#57=dEIoF(02r{SY}feA5p)IMpk?aU61>7xT15kzNM?DYeJsoC z;?aRk&`VfRm-ur!MJw}npaqj8Y{QUjsEzvILBw$>pUe_tjCc)@`?*0z{KkOkz~U)D zM{r}RW~(&7Hoy>nKrs8X{GJlwAWW`-Lq+}bR76uaF8FEy4gP!w9?X_N@&Hx(p6FKr ze}ZGd1`y%-Ouz{f{P5Lg)ybLCUje>z;8t3qPIyGoK?(AI0g70Vpoj>>i)C=Yc|_(` z!@&gD+rkV$8c6?A#LbEDsfGRL3gkruXeh%Jhzf)ufDxGeZ9eV&#rFx7qJ-I1;D`jt z?c@26G9fmhFvE#M?JFmPTdKn#C?R?gDyHbMfifXVYCf3<6>*FSa;O8H@gV3PF%|>V zp($dhd#ffu4tWg;GU8h-ES9673#al+X_S@oV6(r<=M4?{e+e)1Le3fg3l@3=X%i^o zc0iDJi3X2g@pcJp-kVd&Z>YxyT%iW|^`BtjmiZW!L&{LjwfrU&=mpb@*gmn2dej^Dx(H>#6U+uG~^a#b_>s>OBkgd=tWPc=srQCDsCB=J<=g8 zL-FB6yhFb5cF&-%eJ5+>J7Jy~L)WS_^T6s1ur2^tcUIQ~t=D0y zQSJ0$lyh}&SB3J^QMGFt$iGinp*|$=>UF-EWqp zbqKK1VY}>Zjoai|;ab)&z&80zdA#y;^Y4&`Kp8(oU;YI>g9_{k=3UY*uJwz2s;~7@4nAJtO*boIm*Z&-MQuekuRK-7P^aT1n20GClhN%Kv}(JY*(fLz4eLJ`bbG zjVF}4^4iL4$BexxdiszI0=#H2lc)_7vIKXGsIqXgD1D~4l2ws}bdn-3eT2k}j6wq9 zj5PhE2obqs&E$v_K_J=eIK4o+v@|r6Zu&6usWdH9dX!2M>vY>I2QazJX6et@pIqJ@ z-_v!^tFBj#+uoY47qBbBmD{j(|EvM+HQ~3m->P;p;(eEY%-z^$f%NA{2R>&U&%Xn1 z)FryeYLpP8Jdg&ccmc%BmiX(j+(2VK)EE%?Lqd9^JVX_R3aF)gNxI1Ir*hl~FI;p6 zT7;YKax^zU_A?O$G*q93IguDlKL40+!@mCB{@&nwl-CrZQz?9M?^vA=QKsZ>Nat@A zaqj>fz!-%4Pouk0(a)d)&(KdMfS2uMyzA3n=s> zzq=5vHz$Q(KJ;EWU*_GK7n53NouXhW%Nc5K3`VPFI(sT0*Lm?I9If-h(eu zDUCZv+OzkSr>_FA7b?+>N@**1p8(m8?4QjCa|3*G4TrO_kme%=@y8Lanr0`lQ^_;c zGgflgbPMesk+vD3PFGK3+9E11Oe6KILH1XUH^HJ;56J8ksHsVf)rWIPr)6RD?Qlr} zjgBToWK306HTG04DYkJkjFTm`&ZoXFv*AldHBUB4J~u$<8Cx?JH4EctcGDI1E*`8N z6>{>fjjHSf#uEls=(kV~SBoTUx<SyV5gYLQ!UeUXjKId`L{ z(Jf<4y9NIg`zmY^>&OJkR)x|m7kaz(_(LP1$S`4%%S63|CZvixuKdF$BpoCerH`A9 z?^mO5Yns1%q3>5--&bbe*P;?Pn+Y=u@B%j5yd8DNwe2(Ag+4`1Pw*#SHX|~+4VDj8 zkH}ltof!j;E0f);Q*1n)HIY{+8_w&_SXb*M**b5E3lYesq_1j$S=$0FC9_I8`?d2( zS`rp*%#;uV54-dcjD`-0c9wiwr61q)J5?N(HfzzU*mSMb%}S!P)EPj)933<>h}DVf zPIV!Fg53?9_kU>=@R}!%YzDC=8J;pi!4Js~EO{PSfr5P8VHneOyz8OR_nl z4^<7xKw@raMJa&k1el4K$w#BDBP z|1pZXi+s$MXTyScP3^*Tnh;sxuCdptydR)co68*1a5dFIwh%GD5Q5`u-q`_E7qHLk zS;1BeiIT~CD|QKd^NAthM*!3SrE&srf>b-T!d5%kCTbkzS_~K#aT^TGx+&t*ZM|An zTIOFXM_R;l3UujZ#{PV*B4=BbE@EDHLEYI!_0dJs?V){yD;fM{DHo3sJRaDDv@G1x zRSsmqUWU2^{>!vZH33y{f-3RTjE5o%dX41qN}VSF)Ax8#DuEn!Z}xZYo`UQiddYX$ zlHMq=|D|eJ%a>@QwW-ZcD$`eEQ}3?#5IfVtv@EuBx!nmKRULSt38=AD7C4+qEs3mH zr4W}V{>LX`YoXWHmSh^uxidL#z5RASTO)ZOnINIk*H>=@EA=zV{(*|VokZG^+4Jm96qgTlTgX`AyRoV+TVg$ z5yw%iS+vAQlE;$ z>^a03;T&U{HRC8vd{AYeJ17-~ymsJiN;?RCuqIwYzN!EU3WE9~ok}mooC14uFXc#` z!lk>NTkLX@dUH!D?faA+p#-mCOQoHqp;$>?gj>HCKIJ+S(|WTCVW#0eN(Bn@8BwWKtfL`~*V zYfbU{2&Rl@T1-MG8dYcU-iU>HybvXsoE(u3Rrp{qCTA#O1LFn55S->Vg|EG%R|j|LRgbRoy#kFpq6yW7R* zYZFLq5hxYI95@SQ!H4=Om3Qly_7rU+u|V|-5(-jR&C*hIt)JF>h20cu@jL!=Pws0B z#^XLC_k0sUJySmPRrjIm`&8SuJAA+DWh+5XF}m`$RDv5gwd0?)+5i+;u|10%m+fFV-6_4Kxud z1&_6%r~8WcSn!WzIPNo8|HR3=kJ58nwk(=v=K^aco=}dT7E46>o|*R-kOM{|T(Ki0 zsaFvv#tjIG1tJm+C?TAPKtzX@YV%nWsz0ti&bSram@d|pLvbX)kA=4st_wVn8oP{S zw%6ASb|QpmcIAmhv2x`JGO=*A8D2G4ZBOoVM!EC!e#&pOuXkT#s^C4b)_bUp`L3n) zUBh+AKAFUKs2)%pgum}Cns-G8H|CGV1f=m#R-S2j;RQ{k#EB}#2dh|Y5KL$KThzZs#YCQHN;-roCWuB_T<On zIw*h-Y-nH)0u|Do2-Ziske-$vF#_?yQWh|=K+iOCPL>`bPlsQ|fJ1rK$L79T;G>+QmNzit@GFA8a`fV(?hnwe_rRh(T+3~35 zIMa5Fw3lerN0QeoTN{Kl6n;W4ig@&9Egju-xHiEO(s+2w`Y2)2mU{e_{NSZ&1C0&4 zOBn-=Vh4m0Ci+E0)M_ej!+pp{TTuhbGDyExKUrrCp}K$xibx-5Q`lj3oTL|TwZYF+ zQj$xScgz}Z#lB9m^PQXYRv%d`G5!@d*pV(^n>j0PnI9>UJF|P41sv|Ks5yKk7|<5^ zgiOD}5)tWM5~g2ygfuPhT>0~_!b1)N6|?hOMu@M1sbFoKWiLL? zPl$KGyw9P+!v0hkc5-us+On_!q~*VI&RSaOdN|Bbkk`!H8v;Tr9l48P|dgE^j zYVBbg3e1I+ZQ)(@rocza+?0iVHvJp<{h2z=_o{XHNqoOItBx&*Q|T4}COc z@b)kys1DP*LpkWLv;5!iY(BKQ{an%&^D&qs&RbhZM$z#SH4P*m)L=fqibRcXB?WFR z{V`Z2D5ui9o+?t`o0aV4wY>sww7|j7s;n}I&Jv~m490|`uN~oK>Y(^-hiEN|lUzUK z9u*S!8|H^{fhB49fVZp+C%ZES4rI1&oN11XkvU$~k5d!_F0J2y>rOgK$7S+W31c3fB!0J$eIdyERA*ZRzF%^k zGXU!$LiN$C%w7aj_yH7%=Yjw;`=uqY#Q7ns%1Uh_d&??%^6V|Rsj8BcVyQ_VDrxo1 zj&L7}D`V^3@^0s31$iN!LVeIZn4UDxp$>lM{i0RYm?kiQIZMc@X?k{=v%V?YK3v+c zygw5`*h@ZK*&YSb=t#4|^hW6o(#PzikrAeb=?~J>NMq*d{~o4=NdqK|)kUYI4Q-7` zji6`Yp(o^}@sWn5O-v`yIgtA2?R~+Rl+shANg4IO@aAYX{-%F%zNp^*0`z{coVyTW za{j=5G0qARGn@qLxXf6pT6(>qQ}O z0>_yoeG2yQ^CXL5o5T!-=(Y>KWX%ti1wLo{1mo$z`VO7o5Gjgl5b5JU+m4tl_$sID zh9$ae3d^R>W77c>alk_WcHai`{4sq%sHL6ghJ_2K47{_}e<>4*Fqr8&4dL}^PJrU1 z!Tsdwi*#*xnHv4mU@?u(6Q7sj=7|7r2%KB|;MZ|GFOeGsS`LR z@ia~1Ce;{+cusWD8tEu*AX{aw{y<< zPPEq(Snt2at_(_Hb5j13=1%fUiP6ieCTClnstOieaMn15rI$<`?kKD%ME6;?{H(0p z<8~WHkq%FJcYKCNEBL6Qoni-(fEI+AieRyYCmrA~kwL!zH}LAP1wmDmzJ@_YhBUPB z9HCToFqah40J;^3LB_7qRg1dNPTzDFctcVb%jD8^7PhYR`T3Z>zLnl!<305>Sz3@0 z`Iz!M?=bZcd2)V$1b!(j1Dt`yJEnuAhw>XgP< zWvUyFmF6e*2Mw&4L)213-AT65O6F56ixn;VU*HM%ytQ)V*S3~@+~iSR?~nn&jv82ce3)1)-A&g8nZRujBSnC zGOpBYW5naC>}gz5BWsVtS$b1ADYK9lBi`p0J$>sh<8D0tPK!e6j&xP>YU}pbS}tH~ zdfnqIM#(jepntQePO{Fpqms zy#QdyMis}PZaHGnrXA6z(b$E8)m7+~OO)3L>$E-fCC(L_2wp?k*%QRQf>Ie6)jnEl zvR58O*9hO?ePDRUR!=;AOvz$L5K=}7?9A&Do`jtZpJNYArc!l+0T-`s*i*MjgavtP zu?e9vwpCWu;QP_BTK~D=X*5T}TPS2fIN5h^6Hg^_Uw$jMyDEU#Dx2}!ok6wl?$-0Q z)fLnh{IhOL8y_gh=rKl{kQGox!!WU*^2M8DUV$Wjr+f|NBXtufS};C|-vE&c_@UjO zP2Xju3%$!xGUGz88jC2-UFPpe_CU{(Y*4>;Y{$58?$XSf2 z;HPIa7&Mh;;n2Tbl!cCi$suhssJxtdx_i_8r60sPkf`|W&kE$1T*AK4-Gqm9d&1XA zsCCXY;x(3-(RFtI)_@4=_(%~7!PkSbU}gA>IhNyO+q?0%0vLA9Cr(4` z-vR%$?s*oq>UVwl*Ve&RoWOk(aVGHGr{Lqo(QWno_9^}BPfaklYXR;r1@&>ECMwBm zs(B;%?!nU+1+g91!W;#c9|O#La8X5((Z}G0xS44pEg)lISfXQKR?1-*`sKx=VQE6z9jh#faOBi~yC1X(4LWEU1!83(#Ga(p{QOVRXJChX zH~R%9GKTrXyYYZd!FM5MeeX?pqHh9}nY+QKU{$dTVMQPkY)xdzvH#;$xVO0z{Qw_j zz-C;`{|?jt=2IaI(^AZ27Wisd6oc>(^xGJ0OZwT3LP@1IB?SH|5?iy0UP{n66Ora7 zv*P+I0S|C|W{+EwNC5;6kFO3X56S!RD#lJrhO4yw_H%iD6?hEQ@H)>Gl!W1OJx4G5 zYwaI%6c{Rr;{Ukt?=A8qtgyY+XkKawMmJ&2z}{a3=!?CXdA9i$8#0@e$v3du2-#dr z+;AE5Et|b`VD!&wUzpBwS8uXTLc3IlbB*e(N)47 zUMg>Pm52meDV1Klul%Fv3@8lfq^9{d#%!HJO;0HmT;54f1K4qr3vuT|ui@Fes6Hv& z^$C_lww|W99L8K zWVbM)t4N;Xe4U{O9+qpp5NDH3_}*;1q}52I96*@H!+;eM<-??jCWKPpx$`6(s{i$L z(cs$GSX%6t94d;0o{X3-d1)(ami6^tfHnO(dqC^-yeIVI3;6CN>~U|E%Xnx=LEmGj zy$o6wuX*PtwJl&p-#XpR44lWb+VP7*_y}9s0AVzGJX`~6gR^e33hgZ}IWtID-}`JL!Ctlk~7Q zQi3VrX$C9HpGiT+dq#%3G3hOXouxvg-)w#)%uzod5)$+$QISF^1Bf^_Qs)c=fv4Bh z_b6}eNkD3uW~C-<(e8x8@fX<0hLVBbe5+}kU!^ro#_oAGeD4S|JdDt*8WF03jGJLq zKWj$%a9nN>3-ndh2c=@GB0U#@{^5eRZ!@JCWoK3g#=>SMpImW?^{lcpYAA+@#{O6L zo{jvaxmSPjTh{;sP+FiUt;kf%Ht#LH1N-599NeB8``i5;Hp`~|)VJZQe zQ5LIq{KkZjgigIU^)9AdXqx~L%5WU=bU>m@@JQ(KaCchxDE)E=CQf+LQ9QNGs_T@Sn;pmD@3FRq zJauoe-A48XbhCg>+O38> zAeB7Ms2y16>rq^5pu+s@#S7pSE>53(ce66MBS8iE?_tD%}IEw?(2m-nEK`x?02{_cg12%fp_`@K2CIo>P|D!UVf_f?+P>AINv zo?Yig4=QgfHNKberhA@`<;}9UK{0*i-G$ZF*I^+!-spF}9Pc&c;J4>G-!Jk)w?FsQ z8@VC3$P43DeXIJH4y;FbzC_%zb&x%DQ)_C_bAOe7d12&mM1GlJblG7{;fgI}ytOC_)yM@-P;Jst zZ>I(YMP$;9_Mt_pkNZYrfDOx}8Q&r4fgf9sCfD!Khy5_&9$m9Xvo(}OH~JPiVc>jX zyAG8Ba6O@KA`(-40{VF^(5UqeS7~s|&aSG}+I(y@v#R8_vF6xIZESTy6YswzDbK8~ zZ21;EYo3%ZMyhjr2C{!Q)cv^BD^Vyy8m3it?wANf-nvE+YvBaVw zb%8kG%ydWu7fV40@TU+IML;29_1u0)?}9`Dt3iQ+D~AOYi9;M2J=7lv?%|-xCTZOC zzYDG8N>!yF9f}6VEw{>~!LhL>A@#dAb>(cltRJsDcQ3!KmyVdM^LsPgHXW|`3MKv$ zPlSV!jxGR`ic}VY2}D5o_G(Icv(09+k%WZw* zXFmwC^HN6j>#SlQT@-%PINVu=UlZCvkBXT)X5yFB(FRh1Lldz^Ku{^z&Os{aNqoI< zC=@R2-##G|pAGQDvF=EK$(O1|UC2CIC`sL_#u{VW!3z;1_m}Z^uHwVqa$XB@ZpH?5 z3Id~xgC(C?Io8AI;C6ok`4sa za0yuO7noLB0yj49*I0_L7lBm$?5)i^g;>7@z~+~+ml$yF*)HF~fc?4J&hPp(@c=v4 zjJPMSrNyMp=PEemHQ9kxJtOP31GyRLF?jPXyl_JpE0HPw>%l-RjKGN$1A|L3d#zg- z##qWeLqbo{(E31=j3@knXa2LMuPNBj3&3W$1v#yBqS?pP9>o-NzBm_g+Bcum~ zHNX!S3PV*@PASdy)5wTb8|DZLgC?&o6rBfMWE17NMRXBJpIuxtu37Te(fGt z@agvXN>-x%3IJP{B+(`(45||k#TqT$ggp;F7M+d&_XI|a4)a@ZQw1i4mmHiX#tINm zUB5PdLR8LN@i4y)@-?q;cof?3UK5kpb6t6}MyELz>+})VsxB2~2~-L;((CUw1c@8y z<^!lftf~V*J-&jK!!s{yZAjLY0&G?MtWbnHApdSCWOF%u4Hl#4uD*r!nDo#ZP z;(;p7Ao(_4IjhGdVNG3gVMoQzByd3VZAThVd} zq$EE`1!wnwr#-kaJMybBoSZ;TyoCrk@~cpuq(P3q<HD>QS};b*{q*m=??{ zXomccgJP7@TYU=Nni6%R?Y|~1_hV|zhgyJTiesy`CD$7Vp@#O~dM3RPO!0dlGZFn; z&bP&}81@H$j!cd?CAJT6uVYg}8aABaK#6@N07Fge>0mr%;Q{R(>Iv}%H?;tGe66gd zN|A-OesbYrflerrtV-`U$p2K^(4Nc^D^vYXdJgOFsekkwbdBX#Su++`Qp3Z1R0CRJ z;U!n0BANCkHJOdYYBehxmE{`M>f+>rYDNs~y8NHb!3`IwO?Gf_s})U6P0Oy@WKu8` z(aKUFn4*gjDG=W9WMgjEhomGnFW;Zfz|XI?!^s?{n{2OZz8Np-Iw&ti&+vO=C$-;7 zW|7hzj0}?h04-C=-el5@@nN%GSkm1vC6&*!?MgaDm}QO6HVpZQ>J7?z3eL45hg=eL zDY3UUV)kAGPL*aASmv6Q>Z&#so{bfG=X&BA#U!cM$P+KkrHQ)Zh_}@L@aheI9Cp1QBH~hpjnkGhef(1 z=^?df+EeR$^WdzJJ2kZ%MXY3sJBV91y;)WZC*AUpEkiScY?fJhh@iW9MEs_mgWZ6N zWsH#q`9%X-W2UyIqPxJXqMUE}^4tlCP0-ybaCQ4zF!;A-W%1Hoo*i0L{sdR*vLE?6 z>GtpB)uCaK4xGhgMCEu3Ar{~F(G){!;xTZ-!V2bUCshnaK7wC8@3?ulE9d*?_vc$g z^!-PUahPICSVU0ALKi1sYYf7sau&vID5&iBm!yBcY}?;;U0vW=`hVRp=xr4Q&nc~t za9IrI>D>K6=I`*NiZ&0vJFkcXO@PVEj3rut@~BF(BaP?sjA>kOf{uIaC%5%!^#wCw z`iwMU-@Ml;au55H)?ih2MedRo5TjVhL%xp~t7LA*B~icEb9%Lhbe0j8qs)X>$07cW zecCW$8K-#OGv70i!mxdBXZM!X(s=-rmP{!cmm>B~ho^p#CtGmT8#RVUb_8jmiOu8Y31L))y}vvUwU; z12n_(hU?6_0HcfO_$Z4w+pA^N4UdCV|6&z9d5D@3)q@Jf>>aRq46gGU6aE`@y>cJE z@({lCFIE@=mdFJPqfs5g9a^aR!0&_a{Lk;SsUAfFlOkK4`a7VIx^)#B5r=-6R7IQh zd#Ad(PJvmpKoG;q=nEqg(Ppk0?;mFDpr>U%`Y!}rI(#s~pJtjd8dl;BLXMyfc134G zB8cfVQ6k3$eZgpm%S2+1>ep-}-66tIq8j{Ia$1t6V>!wls^!J=MeFbl2bLvfb3~Qw z>RJzJnU9%G+bDDi50k@hM8J@D1*Y?Hl=hN+=ioqOES;CCM8p(@Q#iAwD`nPlbn(#D zNSApU(1r-Hq~5?ePVr7&)t>@_mPiS}BXr(vigzORIiMtpxnL3udB7w%?hFO#NM1te z-`lwqRmb2w%+|{TtZ@v}Ow;z2N4Euu;~2&JsW)o~lYOtQfRQ7Tg+NT9>=n0?uvJ$Y z;eZWPS^Ed9#GG0jRJ+8f1cNXsO?OUX^hQSKU>@vx%E?+0Db~_}8ADmFmQNIp)wlM1x$GwzKOUZ9-NDR_4nUmIl>&&_VqlgMa{3SQ!yd7zAUyD`HCS^pxf(7Zw!a zQYt|AxHGYgMOhNXcmpBxgV#Ztxu(_25}@2=QNO%vXfd9uvAX@v1!x``0lCIjH-o zeaSW3VoLc2)2z~pO^sJ+P0=;sL(;9D?u)z>=$!?qQe<9 zIH+SD(K3SuY0f4a^ZY}}J=Oi>hmv#Z>xdSI$y1F(q+g5-QyP*{wZV0kP_Fc?5?cV%F2`uO#iys%FyOxw2`hE`mp{MG5#%q0}!qbK)( zr>KwVmE8#rV&?Y=fr!5&!j(h(YC@1#)i}8T5tn1pTCVYKSoDJT9?Z^#6m#rq*MG*( zOD2cWh0YKMbC3BY3)q(r%mG`)IJqBAI}2svx*b))*FYEBUA`{W7Y^+U-sZn8(cOY|jR_rcJ>uW%p(z|pZvo%{D6n;Tc;-ct4i06K48FX=+XQvU!WBI`l-X(B?ECb(^jPxzrgkOdTMEJW3C8qwDt&UUcCy~iBBPY9$-+KMo=y`?-r~_|d zUS~xCh1PZl%c-dno9j02zr1#tv*9?LO8*!d4%OZLt?VPKkoEd?iuODHViQ%|0F1n# z5n2#PxY<_^PZTHFeUh0;*F>ak#zxn(9Nw_JOVm>TV(!GtJTbkYyisOc+g#qdHf9o80G3hl~?76Z#_|7|j}`KrN0+Q+Jnq)X#Mfi^4!2 zS$J=HUw5YT*r9=55Xo`8SJ85-K#tKFp_B3lnukexz2Fgf419jj(T-^NSmw|#6(dn> zeWWnhzIuK-vOCu{CQ9D$K_alq8)!s6(~S~itHIM>SL8=z4`+w^>2%>zO%Uu zQ1O*-Cj8;Ql5+q-=;InUWmzX!{ML|6RJ&W6fEQHeQlGD2WCp_?5(d$+zds6fu$ZUl zYWa~?b9WjFlVm988HB@QaA8TvAbM97K@R#sqLHDQjFLOFip?@L%r&!CIKFeZ?)E^g zz%8_>gMJmh{jG)$wwRDmw#`hk;aTynf75Qn@8-|}%d}(f(D|pbY!24iU_`*?ha;%)KsF&k@avARAsXqNj}5q;@FeFX_XMty||a6_dL-#v)P zm33~3wo1qenZbQchNc;=MljU=nvO)^YDXbwnm=&lXkbWYsv}Jftai;t6XcoPf3St?||M{P}pmSh9`{4dq$tbJFHx?-l)+ppXSO-3dq z$Ah2LSlN<1`F8}h#=2DbE;G&@agJg=E0%m*{~_ z;A|j_rzJRSLFhjRkiasbW4k|$7)3~%_t^+|$xGP?0<;1d+wZDYC7E1YppKc#e?Q^n zBcDriFhKW_3HD7t#)b@U5>rr9o8{{A2Yh+eAu@z6EbLCPZuZF1!@ZOOHwWBy>~X=R zBYW*~bT9JnTav!H+d7_Mcrcb)hC$)T8xoqt+TU0EL58~wQD zFe2)~5B~Tm{Z*+{YMVg5`bKdHZTd`7^0eNYO_+X5=mX^*%il*Bq$1AB_Xp~_PopAZ z`H)XNqv)x&8u;NfZo73dHFbU06>KpzUDs@D@#$tIWff9~9Anmw4P^aFRQT}Pp%UC9F85n40EdzIZc6=H-90Z%qUC_0eSYvQDB?gS;`Y~d=moJ=*?C%IK&3*mU z^wIVW{k!Yo8BfPMx)!f&YOY)@98MabEzm3;&^%`|NqbhFQrfM^Y9p>#rgHoVzuvu` zyZnqvg2!5AGiAe<`urlqw_(mrZEqL*n)+<9jj4}I5{k%jIU}~o!+$NgKh4md$;C!G z;7ND97*tBc^K@8lp7BiWM_I^ce~H9=rN(k)6*~1N;8L5UV^1}fI@nS|uz;cA?+QpG z;KzQ;5&VoF_>7-h1zrOI+%H{-U;TyL;ZX4n`>#M{y`brh5g*pAUzCm(6M;1EkMjb`axQm`6Cu|A+22BXA*x!z zAPT@Mp4UFN+Z&Y4P5!G5^4C7{S2q}2+uXG;RbT_DUH*D5-aS@@kCvAiaGCU`VuLlT zv(k2ldzTOMC35`1HPVZDsI61VJ@Z8l!xJ{dQ_S!ST;RphkFYRMctkc?AqVTha6bEO z=7)af`}sNInuiX2OV^8o#n3fl&)fCLz%X}7-@5m`>IfGQ()^{Ee#Q22^Ri><#?ecl z=1a$i!^>8;!?AqBqtCbIU~$aM3S7mU_v65A$Gfeg;PK$48Pj%ZV!Q5rX|XseH$#B> ztZ&dlWB;DwS*djUiwP+CW-={t*+>{SZO?x$nK}1%sy_J^Zo;nW%D3-* z$i-)?;CO28%-=vimVuF5WNN+xjXQ{NVlA;0J*_pXf$SBHQx^%Hu^7%1edi6}RE9JZjfv;%ax>asUB3&VIy?<_K08gjd#Bxx%(258-f46ByD~{xp_jldHKVw?#Xe$+C^P# zn|6Y-$o9|@3r327WB;bo?ESWhs{THS_Ffgt@8#b-Q_REm*M#nKLhjw0@^b=g{j8t^ zP&&hq&-geOYiBW{w2mvoLtL6O@#n;B{SDTpWe$7%6khEyguNXf?Y;WmV|bG)FGD<+ zP$qY2&XsLTOOoeH(qMPtR-0uT25bjn{986LN} zXO+j0u182#pFQmMEaiUwJUx5@4ca6~Nw_x_2GAv8BLw`cA8}^rQ>rS};IrY%bAevyQAhx{%E$9mBSDy=t1PfL6QVf5EvYMsrvlP zr0g-JFs2@3_p~I{idw(m7B|mwrnvc$Yhkj8tVl}Ht8%XQWH+MZ;2)ikUQZY$vd&JUUp8+@3L(AnbL_1ah*C zW!ZkSJtX@lc=uoQ)1$=TL?a7mh;Y&U7p;Jz+w80@kNuz$Wb2!YvQuE{uPy@w4)I9- zk39lH)EI%jI)$|cL_RoxQXY0MR_W#|!%`YKjOpux);J)Tg|917Z@i@OVpaE<;o0DF z#F{en!LU#PHW>7D{KOIll(;M(>k$bu{ zye2^Utrw*@`+SL~))o!iMde(rOBDVYB6EqK@(*EfglPr{EkLy19~GuaSW>eI0>ss~ z;e%9tz2-PuI*`26T8T~EUL^wb{$Y&?xNzA|>*PYlRUVUc_cvd%4t_ApI?K8L&sVsd z^G*lT(gSe=Pl9jX>;mQEz5Puhme2(CmM;NzGNtLUktDHY@zK*UHwB{()J0XMhF4uZUuD zjRH~13@wQAY6soOgNs@8b)yRWB8`@RW<*JACV>vqjJc(K+4UZxUsYqt*QlY#F^X0q z!#}WbU*2I#Lk(aVWiqtuHm(YwCf57Opwz>#N)Wy6NwzXVsge}$1wj-?zxEcI5s5mA zS|V`d5VCfH-m;6Czq>E-&Ni;FGZsFLFQpaHl0UUGJDO*Z|E{J==0^N%LAr>{6hOrA z*m8|C+nyst&DOF6#1&Yg#<@Y}gOU$j|M4sr8Wk!+g?^fYkO{->qse5*ezi`5f)p=t zAB=~0!2FFfc3*!PNb6Rm34(yOk6$DDScrQTbxQw9HC{OSJ5Sb#NgJVbG$>IoydBg+_>C{S{T9l!tunpF$~v!|6{XAU zR-Dw1sBXNF&tyanheMy;SNJhF!ZA4yb$bXg#T{3KcSwy4P(zD40CxzxUThX2kHwX$ zV(-jC2|8?=a5@Xnkwdm=_d?&gDq`%BHBeg6ATFr|6xqR@Uf9iY)Xa9_pJj2Jb^mtG zjp=4nvj8fh_I8QwM)0d*DKjGhBG0}wLaV*JUS66D7Ca&yo_T$ydD)yQizhB;xyo(l zg(4_KZjt8uvTG@=z8B7*Vu%~6MVwF?1#2#;+xmW z&8sAK@yumS0@Ra~HdUdqH1w78OLn>{uvbsO;NwNOu&ZU+k3IFBNuJ7*a%HKL`RVQi zi@Br~TyWcIZP8}`iX^D&cH=(()u9kXS=8R;(hNFN5*aJ3hmIwA3k=N2H^4v}kLuCw zXN+mXa67w`Vboo>KO;_a)tlF|Y;!(y>^PX9T)f{y0t~6S(|MbK93N1%X5LC)>qBawyG@;3^SMJj zgq;cS@NYNI>5S;KVsS+|TvML9^b`dA#vr zGKQwXX`t((iVp$p_TXtTPq%a9ul1%U>-4srJ=`2Zyy2WY;34KF?DW2{@eza^1ARof z6WE1`A}uXic~SPqyD43Txa}xG&pqDgPl0Ui&bfI1&WMTq6MW5OrE{finvAPt0MwVZ zg9SLY)9BtW2<5RpI1i`_-rtz&l+}^d|G=cGzf%n<=Mz`a)TE@P%zmcQPsL2B9hDrK zl^D{_C$D0tNlQyph3i;GvX#rymdK)n{AFoYR?AS%$cQ_Vc`$iUd!v2JDA%m`#m26d zl9`yPC0XvX&~>jIdNoe3!B0~Ye5S7jztGjN7kR8vBE#BT$%h_5Y__K}B`Q6)P9s2;pB6>~jRYiUnV7*Sr$KZjvBmjHh2_Nd` zK<#F&m!N3V^tHyM$}*7r4Q8^yIm{hUe{EG5`7%y!bf}Nh_KnBv&&mnbg`lZKr$!m?=EkH*o4}NV z-&KrNSnWg2%(KOU&}H7E;ib@$t96I7*QINU!jBBil3%Rs3yef;C8-rAOLX>P%4${8 zYOphE{Z9N2Henatt7Iv0wy@1Jh1LAkT@Q4XvQ?_!gf~sf&0Aj8vXdt@8Jj+ID>ctA z8gK7T2RkJ#IUUEq8`jT*;`b3XCk@O^Y~>9hX<>@ui|@%g+FEP_4h%o4+$yu0G*ivm zG=m+lPiS_{+#u0^nCGfonv)-p#?YGI8u|`;93m^8xvjRcpbmZN-&>WiEPTv@rlLt1 zhyY$m!(Ac64tt$7sK|+K`@CM;!5vLklZ_Zl1yji*QkMWGR`f`>Oh@ogzqY4NJ zDw&wQcS)7v?XN^{ExK?9ahpUTLOzCoQHlv@80TFrl#WFS^!0p!aP5M`077Y5mO6Q< zXloRoSft0aA<521E~31jA>3tB(FpG(nJi@{A*$VWeO@q{w?sk;#&;+8Ol%9RECcJT z?Gnom&^v+jHcDnhKi&{E@96=QJ2!gw0O1Y8s|t|` zf!_PD`gec`AGRmC=SgpWbh`+`JWjb^n-X7Y7W=7I^!azoSBPq{0z#Kv0FEcTSIkgH z0*+^kxu%!Eb@eHqB2jjl${r>-vmioU$Q6~5h7_C6Rf>2mB!J5k-Gnxz0REr;_t{Kl zn5ZMu3mr}dc4AeoB!3Zp?ob^ah77DZ4#Ov8QONL=&iK?!H1z5?I4i~S*i1F_>G&`! zg2N!Pu(>q`<6TIHn3q6;d9!(S@Ep@*b;O0&g9i9V4FNl7+)ciuIT$m8&UJVu0HZxc z=D}Ijxz;8wHnKCYIr5g%nn0!`x^ZTUEK_Mp!GYhS!j-I#e_h>5138)dlChJuvkjY* z%l@G>i;W`-g*1c)cx?J^M&`ILjrCGIZ_zqmSV{%k!jS@94;_RloQE4VeQF2|_G<=w zNO(MWIrj{`FWTr67ziXY+@hh%T679+EODrVI9tyl2nJJx<#;MrQt|oFJVUeRC{|3Hw5f5w zA?S9gC%+pD?1AXwX+C@7ohg0NI$A~sS=K8m}jnW0{L9P}fJQHM5r}-Ki6DwnHdomns z>0HT6B zG|_pr$gU-w@#?=O#jYu_&4EuUfUe)m{Dehe5T-+y|Vz9EvIzZySJfH|Mo zK*kq?o12RpH=~~bnO(FFaeK;1wqdqqwmwQHv9@d1t%JyhwW>$Y=OgqqE8Jz6(R6eis61odxW1igB?#D04M z`h69gh=bcODVj$UHQ12yF+u+4GEtQ9F-kCgcIYK0>s*wwDj1Yo@cP0s?SASy8iJ9+ z+bPaC;GWeOJ|}yQMEt2nZTO-}IFdidoZtlHtN@!P$-X`YNO+)7;VmzLgRpvnH-Zl3 zK75_CE)0PJHmsy7$r}yfhEfPreDKAPDV7p# zfYpXtg~g`2lEucREu&dQ%=S?yMSwly&kMoK-keLZo1J{e0`CYU%s`F`!YMf|#d^$q z38C~A+d7{Jk3{7n(JWpQyH1feSXqtiPX_0s#8S>*(;^8T$i)og!ZEV8!bAtAXxCrdV=zKtR6-%AnuL42)YOsnD#N|L z?7Dx0QXCg29N1^xXgyOb8HEI(<-j;3#RdLsD2cIq059uCK%yHI7^w4a^p3o-+{DvV ze$05dwfR$Kzt}4%G|*3?0WpBY`*f7yv+1;jb3OZrxZ#A51FheUGXjD9T$*t+gJ019 zQ+1{v0QMS>^iOq00`i|KZvSew889>bv|+!>@KeOs@a^5P#J;LXZL%7`poICmN+jYP zs}*)eiWj11J(52)wA*Hs&F+fgP&+NhdN(W|=#9G0<_dPw8v5}^#Kiirh*ho@5L{l{ z8XHCA9o}RiiEm_R}qAdXsp{O&pVpoPQGSE6~)!qB1#p^;ic(`5;f;RQpKW*t*UGc<}2x_dRj z>4H&c;V@vi`pkuGFu>43O5zj-DcXcbyyG2ui2MPnpOVkT3lAD{p~Waq{;FBH2MbLY z;49s5T}6#8k?GY`Co$MHVpr^96CJX1-Ny?^9|u?9b-RlONh^#CcS1A~bq zv&VCp115bRq?A<+?q_0Y*aaNL%6fI1OPB}=&%o zdtG^c4;LgDTW1TIHJ3I!{>v@MhAs{f;Qx^`A$QbV#0Li*ywaqymeW+nhXBe>V1s-_ zYH%~N&vG);Z!F^5l0za*mOS()PbT$9P*5+uJy%)nX};Kgs41F1=Ihd9&;Ir8=j`rq z%ZFI89n4u2;d^&u=96`0NCT7tewA5q22_4$_8MeL%oOBj_$c~2JhA^pbRQvfsS0v6 z1Srk=tJ?w;O2A$)^W_1embtmw_K4>$xAs9H2xg(6yu;pj3VqzMhG?yVfU+pLIE}iR z)>l?Hu6+O~*WYPk;Kc#)ho%*Vt34L+_l93Cs3^YqxxmMM*2uf-l8uL!?EOlms=uD0 z%V!L9Z1;C(cv;K#`Df;>%8=V{20@=j@A=6246J$nAXV`hsC<3~%%+76bcsfz(0_>oN z6gbrD9^Ptgrv@PfqEUus;H|0Bc-qZP?%Yiv54(4IwMLz2&XHHDD=mQegf=xMut>H! zAT!{XyGfB1y(ZM9B~#bj^UveC*7{n5u8zOtP`Cxk9=)^@P!4r z+-E~EmUI8KdxVqCbA?iR9EA}h_e7$GelpnDAo2XVIrg_89?*6l=)B%(X(6yEBw*wl zY_J`Fyjg=N6@~i%P;zzelg(d9BpsAm>2v*R3V81VzHEe3RJI%)=m$sEY-rL*e6HQWzF*sAMk#?8 ze;e>4S8$4rNqEm#YqQONGJQZ=W;!nfI1T|d^g}c|{mZO`g6Sa|triEQxjQZhK4^$m zC9%>l@m8xN1YzoLQ9y33$k)*F_*0T#0_OOk15HifZDq1u&QOLbKWFQ4Dr?G0(F34% zFH7HGA!U5Tic?%_FBD}X3#4iJ(62k+87+f1-xAM0%$R8-lvEpe-%)qwI52+}{0okh zpk@>+Jx7=E?2dcq)M+24(n49ZL?b#67$BF--*<9y0iIA964D^?m$G%@m>VtbZCCUi z`#{coroB-!HT{`R&1f@lE6g?dAM^E}}h5y72XJ5Q57l7#+7;pujYh zK`~mFP%jbwn=I6KWOiug{by{9H>m{cMS$pcn7{>3_Nf83vHx}RSlV>vbRLOXNh7tAsM6jG z1}%+h4GQ;2--m!6^cSS_izJqB5|c012Ol(0+=tqp!`~ejySMjKcUFjnjfH0i2D*~G zUEg1omItvH&!*q`@r)R@Fk3C@KFJ}!Ap&bmCU7~V4KR4mdcq z8-CVid#KXuL}q?8LY&N$*tc-JfRd&tj073`?74L`**5E7v{hn?_3@yU?Qg%|X&D*6 zyNBthFaG)xMksnP{Gqo)tZ?)f5B!O`;C;5vSfsE*3`?mFh z-e6&=LrlIR>^Q(Vz-#}hajPTWljj%md~2CZ8$N*x}A|!CH+9R%v_im6WcH1YUEa7*(dJds8tT)|z3B1=pp5kK zJX#f-MlS`okB93}CK@#afpWW?PkW$=n72>*6{|tTv2hp57AD?MHRPM}9a?e7!w2hw zvn7()=(y%+2NIZUOMYrkZ>nm+4pe77nf&}Yxk?P*4n7}gehxZE3_fbewM>&#C6xwN z*4B$uo0_c>aBQVE-yOShXiiJaEZ z-!o}qeP|*B+cu<+D5D@+e#ivYhi``DZgUejF%FY7fYpGuQi4(O z4+xU$Po2fl60Oxw)!hnVHM^Dth&^<;P0pDzR!TTMPQ z{KH;KSMM;%Ub^deJnoP9m9Nwe`P~IYzc25C*LB-0UWgdD8;JWv5GHf$2f2$IA_BAw z@Vs?v8RY<40_PtXy244+!GPKI?LRS{D;6<_@jvBG_SHEjC?hU6vk&q0U9`MD2B&VMnYar=R?0iM zU2kX2Hch@VeiO4%-_H{UFd9|AzB&maMB!?+A41r+J?=_lv|_Z!AKL1=n9ZL2Zd#VT zzuvMs#IdCCPtV({tzB$vENF>8w7&7DpxLi~tbgiP>g!*4=*S{76&|2@2g!Ie^vge!@{aynt?$NMnrF#$x zcw$ojwmmJ}?g^^!>@3Q9^5og$pQQW)t0;s+W(X5Z{3*Wqr`L7huqvyXo(m=#%JMRG zP7pRdz53dk(g>|Z`d58LdJ89L|Dyt>d$+FSJ9UU;OZxea<|wqzrOdx_ocxy20_8hT z-OcgceIpP7wHENx4x9o6nklEbH#a#btLEpp!&hd?Cme=P0wu5^_*wJ{ov8(kV6%eELWzwcT zvyW)(Fk+uy+~lw8uWg13?`T&Im)DuJ-mLXptWE&Qm0QR)Y*P-ckc}(L5c9q}s5|#a zGoSrQL}!wu2c={TK~{tNQjF@dsQcNp#$Puin&VfY+FkY6bW^=o=DvNm;P0e_X~)(t z%T5EAvkq)+;R^Yy6QE;-4Ca(#CD{(y6pM`?354=oWNJ zi6$z{m3nIxg}*9_+1)f==nL=-E(g}I2zl7?nGeOOtecoDsSv@~%m;;aFuuqIebNL= zt-!sKuo}+aO`F23oXb#ajR#Os)XaWXbS9i`Wvw0kOlv4VwD-eog;tu_yXoS1*zWXr zFvD8)7Xkx;@J;kgnkD|W%4S+`-tjtYby_mLgt@RgbnOgV!b00~eoosdf zL>(_$<*S^XJzzkg(i3}*k)GAV8)2lG2aY|Q|NA3#@8E7m50KrcZQhr^{CzZ*jxpMp zJJaZ=UUYwT@{p-VZ`gZ+IKwD^c)0>bRZdgCnS5uMH8;Fi&x2;?W+kc404{35rC-fK zla}SW{*-@~18PL`qqvZ?`pCX*OTILxZjDdPcQ_*+BmTy~bsrqkY7n@dtx_ zRnz52TRPxL#nh5E~rjhRpVnK}M1~a)g3_w$q z)oLtbAK3hxoBz^DVD;3{NmCs#pap+-R#fOb;P_9$Rw1M<+&9knoJ!mO@H+d%J)3=J zm>!_>NvEoNOGbsvjFH&g;P`U9w0F|Notmef{<;_$r;hUTIB}ae&kI~M zwW)|6p=n)OMVBySRjL5+egt=sQqtMJ>cCL~0?}8#O@NH=GgO{mRimgLdyC~N2M;~1 zp7T=lGWY*>TrqZyrrP5jA=RVS#+|_0t!&k$;ELvvrDBEa?N2*;kwCGwwf;O))8r7K z+EKXfu=`rGGsV3cPOKxeEtePITqTvi)fb2qE{blO$eW_nv*2#8^!X~wo9fZf^{#qF zbHbmL(eaGzmiqGSFmvTj)#>IW?ywR1CzGGttNaFthkot|e_Qjr5-cBl?AY)Wb$X?H z$+zSCw6RCI%?yUTBJSr~w0dG&yBvKnPG@BB$J=*{d*B0I>X}$5zv0u&8eoPM>)~d5 zipB=y(GY0meffFSaxSseWq3-R@YO=<4vI-!@`V91Qhl8x^g+{IL-Ede%^g`A2h|!A zfq4h{6HZ;a7hY709HGv?7b4l~)<7v;7wX#B0$L6nC(k0m*C7Mm>`;@Y)%|t2c*DU( zXzXzBh@f&WAM7;>)|T?i0$pXQ-lqD<$Ihd}%T{vdN($oe|8R9q(Uo*v7w(R2cASo# zbZm5N+qR7p+qTiMZL4G3wtddu7yr%sjT-y5YTs1tT5Hbr%*Wf{^tH=Pr?c}uXCcVF zJRhGnM%K+O6~>-leI%btmFi1VqFJ>vKKA)vKT-kvi0oK7onIJL(gr@S6NfqU5`HW{ zRE=OjBY4#j>AWlY$QP@e12Zyu!>_NuS!r4qnkFZ0Y~k3yHGEgWC<^>Z053aJsAU2t zsN#ad`8SnKO~?4w&K9Z34&e=4p?0U(g_~IFkI7k~Ljm|D-p8>1jqiJSZ(@PNSHL+1 zF-u?E?=YsI2z6rotKSrI=Xa4^+FwO?ceETLSvtX8c$>R{19jae{auDFbbog(TFZsNROq_t7GWi!vDnw>luY|2z4rSa2 zLBaf}z^+l;7UYiE=CIIdL8`H1BEBx zWM?HcS~eXcm?JdEhNBK}(i&X2uL6qvlm+Cjf0ZmdW$}|c>m$~t) z6CYifqnn&3LzHs;e6pZRjbKr%L*9$+{g@9u&WvDk-$NnT!6{K(A`v55D|uLOUUZM!KAP1X$`?42 zw_FhF0P)mRJDKKf2}S_kHoeeygr;o+J8uzK6I>s|3Q#w;Ak2 z80;935)W+wn~~Ejvz&x$_$AK`POXy$D8weEU>3IUVy;?ye*pQB#4b7}N+KUhudif3 z+9pTeBd?yTy2zvwl3B?mQ?F)(l#buDFn%K7jKd`%T;h8j^+UB?KkmAP#~J=P@U`$T zo`=cR4J@WIn}X^E6qR))lfrg&-Hzqw%jUMk#3xrmTu~Rd6jg0{l(Rqy^LmcagbKeW z%-pHNG=8nPBUxt7npk{AeJ_SX9kzHM-$(mfC3*3Mci%PFo6>+A+xmE8=}!>ndhfah zL}d-UOmcbAyae^5f8Xp~X(EEcsr<6u(gK~xe!MaLZQbb^@WT&Y{2{Na3%xU^sC{wQ zhVY?`fWJ5Rvkg?8GhR%P@;xXh2iX(xBZ-VFAa@lwlj6bKT-VZ4RaHFHL^S!rlKJHp z_2ecjUlaNzoco2jvXw_^v@fHo$D(u@oo<%7XEXGSls%=Er&gy5y%&k_P09? z8J{!{sH%93nM3y)ggg+|*v7<5HYRd1jYyrx08#)IMK*k%yan-meUMS(WBgX>H)Ubj z1y89lfcT{|k8|wqc2`#qn~w0VH90;reLQ~f4@ID#BS95uC9t`;;;tZN?x;D`t~rPb zP6K1_bFx3&Bkp;6AoFEO-!5Utp0KN;`sDycPh6W7WEo6d@qP`f(=Wv`i^KW!9`;Lu zDgFD8psG#J7qagX_BvthLt#WEltRDO zUl)h4hUynsdYbYvu@k8QzCg8HpWLr7r01ud?X1BB0E8uPrM|I+&;595X*1WCqVJo@ z6Tl@tYSNM1I3Y~W*T?^T{Y^eT=$ZjJ8Efwru57{5=j(Z7--zN+RDe_ZY`Hhj^PsSh z42_>}0Y>1oYQgp2Ff~4$?lS9i!?}z`-$dxzFJBAVp36r%N}a zIDElp!M20mCY*rb4hP;D=ADntFlJ!~Sg%NRPdUu(FGAnn?dIM)2nfWKXIujDxtSfV z(z+A2dgmouK8=~-!EBs`{TW;j??{}Q3<(McY98aOAFuFKeLhz)WdeVYFV|rkEs@Dl z_`f}BtIj3tRx$DWX&UGV36jvmMTm`b?FbTW!OHYqcue!057Eqx$I{V|Gz zvgTJeVRTxJxljm@oV0*dYBL~JRHXe=;m;qDJ*o1k7!XxcUU7BUJK-*TS|GvmGp1l@ zHH2j~{s>GZz3pwQ#j0$JoADRKYYYOuIOrK3c}2#IG`+A4S#mzbS~>L{s`@?VDTgwS zGHH}@K9TMw|E$b|Q^;~6r-yi?l@gWVlYt(#9^oec#g4-PWs3N7?f@t6RRe9_2?dk) zi|>h4)YOr;(+%w_U^GEQ_;s53@8DWQRhJ)h1e6_R`7&KBXUAvZ2nyRZRRWlaj%8oU z)QjPEZTXlk>Q4eWA609GHh5bhE@WIC+I7RWgL+wdRXa*UPvn6hjHTOoeZ8@LD&K8dBA<)E zSiHSHrmD1kFfoV@*2ufiFPP%W?hEPzB+~k_J#n`W#|45OgZ$=ZS9oK(_di3OMmbxh zU2ulp#IA-WWE)~1;y6hO5Q{q?AfBo~&H2?-OW8^-;Av@ZufE2{n|6L%tEYJlN8e(h zH1&AdIJUT62z+*K?)%?6A;SF!O4ip9Y^Eb0rf_UraHtq}qzxECRl)p09OT6@Uc(jTU%Swd-!zs_oO!N1nN#t5>!TCDErnDl z!r7LpsR(mH+BVc%>BzU}54k*hA)B1qh^5Y%MTbSI3*OA|Dk;;e2Tc=cVj9^$t|z?2 z_PD#eyEgT!^6pxe{~k6DnbgvO`g?ih%DcL+4e7qr?6F)OsO+lZKR02$59}eOq98Ko zhvYaJ$_x95i2S&qMD#C}7(a4gGq~sN-LMH8+E+vxx#ybk_VW^I? zW+0NVp>&T4qffz2VEX!nGSYhYT|?ZhXQ-%;gl8hukucClk}*-9JFx8A5h+1(RK;q@ z4(wiBMa&6Of>ds?f5NV0`j%)Sxyd5(;esY-+RCCzrc{NW5^0sXg=MkoN3mKIXd-Y&?L^V zV+X9^jU~Ex&_2Ntt{ERerDtm)GKtfhGM2&t^V#&^Y`Ll5ImVynk%B^|{C_!^;g)&W zPImfke>IT(O^^e%W$_2GdA)VdtbE-0bP2;){1Jl4RB8CdJ0A{pUVK*H#=YOhI=fWm zVXiic8{@@d5xZ~n@5c(nfKwbNnV-;j_^8S%aCFg`cf61$9rE78OrF%mvW6c;DgQ6) zktGuC{1X4-vUsashVtl5WkO=1!Rbkf`zN9|xqD}!NgoUoStb^ay3AjgBI87SJF7nVX(SX6YuS*WRX}Us**3w?hL?E!om`YWR$?AM%W$RKSP)GhHN}Da}QN>B3h| z8tboe#}H@3DiQ{PGKO>EuoRCV$xMUKj>U5Y@uJ#t?9r|U0?Y$fPEQ3&XY6?K>0;Bs zwt4Tc5v?1i^yzHW)k;#;gW)sptix9B&Mxj-4AyQIde}VfaexI}gwo0I_`pIrK$FCW zCQjy)bcdK?knN8?VZ`;GNVWSs)zpk5(g@zf8EYXfz@lhoFAEjY(Zi}ce?!rCN!bW9 zj0_WGT~_2RJjQg%t@n=>q%Ku8*2m#y{du`=LI~)MepGVE zb}ibAa|pum(v|Tb$)TciX~6;#R3lM99Q#TtEWIMS>cGk4S8&meLSzK{FD#7*+OpN% zhd$-YOGa-(Y+%o!(&u5IS5n)Z?ZKa@zs=kyCbaU?KW^LlD2oC!Xvg{Ex42rS2{XX@ z`MvKbqq_Dw3is2k_M~NchN5w0MnAdrI$|`_<@1)j)11ExHxCJYlxo#}pMHIf`St=w zl&a2oC-WSxjrw@bIWJbc7NgeVWLDZR50hSF|G|^DdctJI`C_dk?%iMi96z}ZbhK6* z)&TG0?~OijxP#{*_->)#<@WK42PoZNE+K5#A5Lf?%I?y*s;3hb5pnTFnWN0?eNue0 zJ%;BI?W8N2DVh#_VJr|OlWX}y67J=d3%nEm$7t)jsK#S|yT61FDa1}IW}!<-4!Y_)R6}`DC_>Ar`J(eSXx>yzlZ*d zQJw2GovIWHx-tFylze0e ziULj;Xmj(h3LRv0SyM_|`{E0)vNw(bXdXM4uol(Sutg8SK6XmWMeWA8sjuTuA8-m$ zltj^sD?81xNhUSM$ghz}W2@mO$gnlw3g7jrcy#+))@wd}9#-AVb zWAg4LGG>Kqd0e=c9e6{C;S^3+r@DQXh#2l)*;T8pdT2_6${L-#0o;Ulh_t_|^`b7g zb?vJ+eOB$PIX7AaA_~oU$KhW{)#6(5b6UTD=df+iV`0nj)jvboL#Tzx9q zf@4@zxaY8B_<}-o3-YD2V9A9z6p(mPv#ru3TvZH|sMRT23<9f%!da4C;+S4~0(aeX zvvfK%JG@WaVRCk(N1272?L|wp5VKp>wzXUBw>MBVhx?Ohpau_8Z2P~X9Q+WV6C&V! zxz49b(LZl!Wze`W?9ucIQw2Hj&bv|5Qf$w*Eq|nD$QX@cE@ra4G-J)Cf&4qet)bzq z1ai*%?Xh0!m2#qkmQP(=qdKqNPHooeQeq*-@`c=vswQE}D`9u_p1b)CJ8EixjnCy} z(Cu$sUBViw_O|<-2=iQA05N}o3Ty1Xw?jOQ)&`3E9uRQKs;Bg>Wo{eD#Sc^G{me7o@v)fNgjZqZsV32h2Jg zRv+?;o12E1%f9hW(h?CaI*L;dcE8*K0&8?O>vo*Z<;@$F9X=_q2RtJzb1R<|DPrE% zU?$n!f_n1-(}22fhuXKm!>Zox@Qe$6jhm>|ovtTJn4SBwIv4(ZiV{^m)+0b)(3&Py&pp=X$;nE```kO=*WEkR z_~)U@d=4$Tgn|R9XlTJ}_ zXhH+C6~_==)mbtDG_GAKIi8ArV-&80t=UF;Uiaw{J6*NJmOXtg3EaQ( zE0`j^nO_%8Jl9ZG)06Aos`AEm4yqm#jXHjq8JM3}!nXazGbrG>A3C_*K_C!`j!3#%GBrI~EGTW)OAU}J!MyPgQU#YL-)mXD^3tY30z=ENT%h5_ zQlFK^Nj}kEzm*TlVK8y8WiveE4b>Ie0z{$wZ4>|}_`%PUXb9^6aHQ%(_@KT7Xj0Ev zswE}*p+p~je4dr%xj{0V_BiVBeL9|L0G-~ajM{Z|8Em-*1fRz`-Obw`&`P@g8C|GF>qJC(X!tt5Y7dq-y z^S>hwdt{{1d^|Nx-D;x#`#yV~n>(nFNgngk@eRb5H2JnT47HpfT5tX6kwze+)PFkw9Z zQz%?>%}FUvTa-(`Kk$wUJH`S9<{)_pU?A)=jO9_9^SIvoH_sF;uNNwZGd&MWLQW@{F>ureF=wW zXbB?*tJ-uH%3)VJb>As7BirfaQnoPFWc5Q9LlO4ldo`m8IIRoksB6}WNcK6MKHI6eI8=dBbCdQBEc$QD~ zE9F;LCS&bb-@pk5SR^!>9Z7pXV zpPij+#mUKyT%Xa}jmUF5eEg8`tUL=!I>85~Dz(}I?e2_~Bj2>^8;?t@^B#r1roEqb z5Mpy^pM|D?fo_5}!*PJJYcqYuL#DPz}3r5?aC%Uf$3LBDo8Y;<@`-wA^B&ozg{6Rh&DWbd^iEik7H+` zAubRh8#J@?>S1#Dc@b28ssro=etOCKk#>j`KA;uq*~3%`woLkv&P_b%wz;08%pyuo zffT;=RRet9QiDEtxS!pTg!t}EA`T#9aq(2_p^wa%^j5yN-D34+_i0MIE#q=dyCO8Y z3XJdw%)s=^g^Db%w9wBW%yZWO$wc}E9&_>)`J9|TN8;GWgy-0fIkku+PGtL7`r3^| zAPA1Yftqyn}6SPn(e}pCcy6(xG=BUkYkCZ)&^# zIqYxNcZ_|+U6iA6GGZv4G@lUMFkoyr_Y;c{*%d3Jeln&&sllFajRX2;WeQ>ZJvL?f zo<}L#rM`PO&iOB=(4_)reksTIH|@{vJH9V6-qrkeo&_z%#bk=stLQ40j7tfitQ<|N zrA0cQV5cs1!?E7_DZP95PPc9}rYG@gRFE+rweO}FaU1T}F$LAt)q**Pd@CNLKf-~t z>o408&kD^>v#HA3p5-~9e>zTtsQa(_9G))__ z`np%@h0gQq`Nj9fcPHz{_r}}!cQ{OD^d&{&av3}cAwQG*Z0%te?FY7@^HA4*rGbra z%t2w~{ny8ZGZlw_b>3(Mq!3+ySYzKliwpiGNMw>0{#0rY+2hG{L1#!jrc3HP zFXK*Xpi|Q_lvrSu?AW|KKfd&TiuqMe-R0**ORCd`Dt3&XF}Fzg!MkiXGVn!U06arn zuIHZ(=5-$z-=P}&7*K^lKkCS*JswyNf#ZazL2XCDvSjEKY&tD81gEnSTZY>6HXUj< z$P-m2ljtB-ube5`4KUSNrR5!Md)2!L_lzU0g?>?=heO~9l7dM+da;+&VK z_lrJcLpMa7;N7%(e;TS&U49Z=!fUj@9vHLv@F2-6b^72GCl8kp@z}N5T=%OMRC3pT zCG;p|rFZQrDa6X!+hZPq;lgL|8KPqzPMDdo!@qM4ectIqzyzXu|78&+g&KkU7~AZd z#i+kr)T58F``c%$jk3=5dJ@qS3`2;dtdCpnC1p0sK~3HDYrAJ(>D<(*17g0bk{JK% z;4PW7@w=h(LUO75FyRwvAnhe?JUpN1P$pO+8C;YXEGN-sRhs0!3f6WXh{o&TYojPY zkooAGt1Hs`LwoZcCd`AsT{2bzzuqIV$a@@HUq>C)036zG_JRRB65w7h2JP9 zi^<*ad%dj$%{re&S+8SPp~RIbmwS(FeaZLgjD1ed%#`u3_4t|{4{RXTMK<50)qe$? zga?ko8hv>cr?fqJGsU8E@+b6&>vc6i&AqA^Krt>ZdGe}$cgO6f)O&Z-?!&gr16Q2ZGXF+^r9s4cwGvs6?eNwQX!=uW2cog84@ssW<)3hJtm;ICh-F_Rp+ zD{L{|y3n`|v${*{G(+xJ74Rx`$#^89A*JNsF5btAlhVBT>_|tIm)8~P@NftTG2ND6 zsx~&;BMTAPau-zp+^C$Y_wB;a+asSPZQ2a?CDt=+{|Tfs^?^yHI7XJ^5rZ%TW+O^ zl=6|T{X~2pX8~HBzMKRcuX>5Il9a{@V`0XNa`a0WB@s=5lTR1}1$rtt#PUn()mv$jyIdq3 zf3r?7{D4zIT7|x0E>l-}@Yv>^++t_W=nRoFYW1J|(~urI%EK%3qQ}??y3u#LhPJVC zMj=G7uHChhm8wiV-vY!|-H~GnGOag@kCVDVR(eUpKImBjp&n-^o_sI`J=UO+Ct>&)F7h{JtUZ!3#0}dUcN;K z`!C;z=_&aUmAV<-wz~5@q;_xlKlPgzq$WdQUq>;_g*Sr&h`}j3q}t7qfGSdSK@so< z{@eEp@HIGO;q1aqE=^G>iluA@Nbl?tjfs(lLMutp`byAhXCUVi=Z@bfqxM-^2xRqd(;b^LRvf4tUmeX0{( z_C}xRx0qb5$4)({HGj!F_$VbOI)B<{9{_xNK$rL+@#~A;%Uk{Fhu$vync8*W zAUWg!o>3nC*YvG9^m7BJ1g2~F+TB+|k*_l4D8{NknQWB}?Uw-#pY8|t@%KdtyPjFS;b0vip@cG?D-OA`tBI32D|*KyETl&Aq1|*|VgY9w+_OmdWjw+;ZX6F@ z{)3&lzm%TS8@&ZuR3(NdDg&8GtoXB;u@6bqeUw~`OZwf_aP#O`-(aN$o0u30J2z+i zRE8(9LPh-EGu_lNEf@GTmwzVI+D@*873wSlCixSfBevu|3Q-pT+5&g;xA?xRqj#w75oFPn{@!9^eT@rG%L>Q#DTlb3&0c5$CM?YSZqz7AyA@3uj%VG+GoZ4jzj2(Aua&&5Cvo>kylQ? zbJyDAyy!RK6LMu2=jt$Xt2tgy@j_O~VR5Jv0! za%{79O|8dLY@^6e9bRK`N)Cth(sDI7o~YyNdxI4@V53zayM$KzGAl9{pILHUXz_;K z-It542N=G^?(*c-7w|ufIPbGXr|{y}#^ME{i(sjo%n^Cpu1Z`;*;$@U*Ot}$vw?n@ z>wS$6h0^FJjEZ8mU2QNUv1%6az22H>!u&G`tTfp4K&jEKFis83{()#{bYSY?Kx&OM zjR&DQD0aS{3CPRq`#92(nCcWu!Nm$Dh?<3kJG9kMurtqj`;b1F6%t)(sNQ$mhw$T-)#{7O6iplZIrtO;90oj`CA^hV zX`=LAr&nq~w8l=FP=uh?JK({=h&C*nPj;He{hK)vFs{B3H!6&?rpZtlZ@6jLSXXgX zfcM;H=Ij8^X;uG=N%Jqv9RngyU)X0(bph>P*CpkIJA2eAC>o;Djs11{#v5c;JGhuM z8F}TRu~dh!ml%SX9`Tn4CED^1foVWo&z}nqy`A3sumXa5SAG3xeg6%{8_r&``-s^y zb0Sy|1>cwc(dA@MYH0Z;=}b^U9>Es50bx|NH);H+kp3QeZC)&VDiB>ZfbpW&^IayC z$O^4zh*G4N*LnKzd2U!J18I$m)}&<<-p!vibu8Di+NcD%H@=mFa|Sv{D0kA%OA$*b zr{yVYuYb2cX&Rf;=s4fsP0G)+KM)cka@C%gYZI+H!w-c+-@$Xa2Sp!OhmcIszEq%p zw$uFvD8JD&Lbc<5y(q8_q`JwR%Kf?y$wjA>%RUW(R~)$|J}n%yfnAtEb?!<| z7@3L^E7Y&zf`=3Bde!>*-2VLS#}{jl^s3K9kz$(d>S@V>e@{s!P-SirRVYKFuHxFO zFrgK7wu2x!=>O3kNt#y@-Go|sd z315{sncx5Ci^$|A@*zeK2;$gj>i7~A10W5%=VZ&{{|ox9EPDJN;>pTVEMA2By)+0; zX3;=TWcLdzHRX2g*};V@)LsxGD0QXzOZ96l=~{R3z>Z7+^Eze4##SG@rrqN#7%oj+ zel(C8B7>98vy)fiTHD7B1(StPUh=KNi4$ChKNssxI{-!>B~TS*2c(4N@{UfXi7)j)&z8UDO_yA{J?!8;>C!Ja_w43<39)eGX{f3%j>xxz-Mv)Bug_V@sEe+ z&Xbc|_no)tc3~J)nLolXmIQd-w*<)?1E|k(Pw>biQK?4x@n6;n?e)o;I%Dy%&G}bS?;# z6{@5<%I3^WIkSDp<$7G9vpuaB1f9%O#I0XWmlrNDaOM=Ax~!sD_1-q-RYwi~FrU$L zr%&-qbzskJbYP}y4_`IqgU5_O^+j3$d%%t(j z5D4)o5C|!n&11x43OiW4+*eZh$z_{NA%ax=zS-j<6&CZ|T>-;}Dmv)JUTt3cBX$%o z!p*xOGrg5?jtz0L;Kyg=41K>_=AnQ+`tLGr4D;r-_lV0+7J%J(+ulsI+K6-Sq+I?) zHDOI%1={aIL=G{&vqxg?Cjq-rY>xG`XOCk@mEM9k2OrWTbH=}JY$s8*LgXM{tHW-Q zyZ9q77lby|iH;<7}d4bFq^t`OkItt6zz3zL(bLC*tAAZm0W!7Q71t>L|rF+sw zhzsAh=n6ZCua|-_HRxgq zCE1Q2Ci1@da;eH2t&h#n*yHI}>8RXL<#x$oTQLcg;oswWJgeeLuXVd~)7w0vGm3ww z>GOFV-o8%M+$vh_6*=70qZ!?!iWX?sv{va6U9%ru6&j5}4~k<-DOUs5ggRtDA;#nf zesX6He-Ftq-@AyYuXo{kHc1Sj3^}8?=~F*W+_=P=;|>O-bA#QmmCVd8SJc1?xmZ-FLYH9?OwIQQx~FRvsLj zQ_4RD{|F3%s4P$JtX^vNJuUd>ZcZj^-H3^dM4_pDgfh)IQ7TWSf??4ARPcFwB$WI+ z3P}?6(&X1Hj>7gasan_T9&t$$zLqwjD>}0+pW%6&*YyszJ3|jYK`8l9ThjdJbRR*&{c_Vf_JJYo)>-R~^jfh{AI^=@op{@aOy(fo zUb(7zm2i;L?YajaX>o zyT-36Q+uxO^;QUcim8F45{rBo96$Rlp-XtXI(9fuV4cYs6n_{!r3Ny3K(h9*b-CE} z{giay`ei@Y8!af743Vo8$k$5b=_-mD_bE*K7fJ-J7WZr^ZKmOyHlzS}4f$>M+RAB% z{$h9*F1=PNCK5wh-PJ2OOdy&8N&qm&2k^+NpgY*7xBx8zO&~B_ z|IGL3iY1|~?yL{O3p*~S*RLm*LLL#Jr#2@wS^XEgFigMa=QHWNY$fHh=qynY`l=Ps z3$}6j;;9FP>Fz1Xj{vx80nvnj-du)0<0;v0EZ`lZ9%z5Po^G0NlgPX7p@a^&e4(#1 z({GDxAET@HJU>bCukTJ-V;-B+e0%I(W9M~q9vmXl&y%1wEtlS=9P%&ooXcu={CvPG z$;@YS&x5L_L2obtulM2P#V?Vlx0q1CYJ~A{DrP6PNWMLz>mmbN&$rC0oFj$1|C|TX z`U~#TZ(tr~wEeeYRSiQPn{~%V>3C}aZo=vaR9f}EiJ`!3-cqml%8X;z2FJ;rIB9}K z(2VUry@W0BBI2(cqWDsQ$LHxbcx|w0CM7^NO`JiWDwnI{MSLn)Zobw9O91iW#Z^_m z!w1a@IQEUVs|=@6;-_TD_{=Ddfa@{lpOLO>{5N;qDf#xKu(;#lyu!~{?Bx&qbsZEy zY$Xz(pP30+1M}g+G9v;4JUl7$La#RR9KR%BCk}L(SppiX|Az_Qh!qcF+*$1bp9e!i zM?((r8E%b`uw89lIe|B2K|fmrrYP{Adt~p~e?}~n9^ir_FX(i6L@p#m^)}E*W&K#m z-7e`PJ`8IVfk0CwJMM12v^syYSg}Mb-OBW2YiXjwh%6JB|69b1&w;rwCObZ?$XkZ}Tifkc z8)b*6nR}>#wEuLQ$~40LQYBF7ixzK-R)K?*ZAr~4XO}V>B4?v01rt6zQ)B@wrAvVw zb8VvRo}DaXYu|vAcOcUr#&~?4WiFTL(jlBn|#jkC0$nl@74mytmI_H zxdLZO4agFRf=7U+4g7LL7|sU6m`>YimwnMpcER6<*kh-24i5)&l4P6HkVgpfK|($W zd1XVeb?o%Li%>z+YR})UcwR|MNrUJ4_oO(F`~rv-RcmZ{T6%g&^(pJF({1k?Td!^F zmX477M6!mo%;8DrJEjpM2t)W2?;D1ob-xWS+Ia|0++kuY)i%$@4)KT~-|W#5j(ii9 znwlEBY>7%ZIBvsoh6s_l;k{kiW%Itd__)R>7Q>ktB!6$g?{o>L7p;n1Ga#~&@T;8U zGtlz52aa9$UT@#BzS;z$MwxL3F`InU5a{yqG8t?%rWth}iLvna{ovV4=1R9#+oMA; zriErve?=m73$@z=ZvYhw#(M=#Lk@{WaYDgur1tl}CabhT+1C}3nOO6ZT1*T<9b!_~ zWu&y@xBjjU;rM`;fjDnv2l z49uTIa}9W%#U__~fWRJRHc7?GjqX5$<$S9X)AYTmFaHIOZxqR^TXAezoRh;itxwE8 zmrjWj;C<51t}inR`P@avZ^45UeMIld4^PzH| z&v5AXK@W*R_zw|XfyXeYX_gPNw_R&!*Ue2sg=lHg5wqT(R^Sx9S;QQ!8U+JZnLfPa2|l zT+93gzpDj^(f6-dyTz7aWh0psSXB?qSG^8xp0Y79o}El3E7+zu@FJ04^~#a~)Un5x z?8yAiK9a}f!L55239ywA&IC*KEnFjFMSkEEL%>h7HQi0L@Y7i7hWDJ_lm}`>Z)}Jb zyik~eo7MlMr}vZ5q9)jU2!bZeUOB?M?$ZMHMUN!QGg4hbMA#I7Ga0S~;q8-XiY-Hs zk5?2`eKrn4-k+p*E!L+aJ(f!57ad&mp1FIe zvF|~o>S%A6h1r?&RAJ#rp!}4SAdN?Ugyke@$JaJ@p9($>m-WYehbSCOzvS#$`r4L} zamArB`SgAAN(|2gB$sk?1KVgXh?t_={kHxwt4A_*K%@lg@APl|y|@hVGc|dI!#VJ0 ziTK%kzneq-*aLi?0?ag@Wm+FaJ`?wsruYZerJ}`} zs|v+hxgeQIEZ?*rTl-{x;3J@G_%Bz?+_di#-CTj3E3SO|BQ^?*2xJthZEj3u_X*IQ zN4-O~%noeQtTYv+AEmxg{QFK+ID(&OP_{48hE1I$u%+(~2Ocd0m6tvdan^{Bbk~!U~FcSZzKh$qOrpvS)m9`L3rwH;V2? z_85fe+7RLTZ0y_wKTwGLShHz!SceY!B1v{gb_ZrJ?OTk$+7*h0D*i0$Xz{{ZH&s_~ zF$LE$4vJ~_Iq2Zx2UANC;^z^}1k>Sg;+c^Fc;2)(^t}vj1oCXMG}UZQ2$cU)(L%fm zaR0gMoicN7wE6XTlWg@_dnzsP%=||zdraPb69>TC!;Dek#ABntA}%iQdiMHynq(Yw z+*^rHuKb=^Cq8xnu$Y9{1=YAdV42kD_T%u31Vs1%U466*XKgqapt+chqqpm)EUs620w^n=>Bb| zukrJSZWnOxy$cF_uukPJ_V@H7(7?>&Xy?a)W#?@@(Eb4$wbLTP`2>P0k^k~hNb<+w zBu~3OJfl;)CWo=D=ewZvY=;%N(f-#YN`IKnN_b>>5B4iT( zdyGN09E*bdclQr&2VuNgV}cAf?i{js9kemVYUN1Pnw^(tCmg0|KojU_%kRZ^=jG$y z^4$6AX|A9yZ*tb77`GvoclT@bm5>8qm2(vEwV2(J;ggUd&E=; z#wyB+_s1#-vH0FWh?(C`MKmSkNrkN&wmBA(eFs#%10pJc2k9`RNmim>b?V*$)s1S1 zJ6FfEj7syR|0)KXMmnfjF?pivRhN#<8we{LN!{IvN6;wS;sG9|0yx%chhY1`w=|tJryN95_9) z$i)x7d}itN@-F4ABTRM-#w~=+L+keE2+&45AMU}}(AxSE^HyGoX|c%E5V!(0njZ5> zji{dTvn&zaGBdRwb@MXCtCltiRRl5kBxYqrY>?k0bAOqr#ZS{RY!x_gmle_4$&(V&AcF-AmURjdzto7{P9LE zGMx^{zFCVqx2&asqjXuiAn=N;;Ob&BPql8g0s`dHVK(lJhJn7z z=1y4fhqO&Zb7^V2xu&mjJo4Zk87Q#d=?0ScrBlpVaO6I((l_#W8LA0; zSa;`NO@?x~hoWvrgcHQmXvB^nagvX?j?h#|llPO$qNH-f?!+@}D>G@pdW@U+ zXLUd%y^+r*3O@z5Qo73k_V+^{M6YdGZ!@!h&7~?e_`eA?9D3PF_&(sv8wUTT8t$Ny zL2Fne>3@~U=EPY!rHD}B(@&MyqomQKtsGI4+H7H<@iR_Dl(x>CxGa0n`*dROG!)ju z53g8DAYk&6id9I)e}-p8RSDel`d~?*Ve>+1gyYL3pGOG^qtiA=1Zrp`Ue5GpE0NuV z;-l@$;O9{s6!ZU+tSuH44nKoL0RB7rp<@_Hdn{X=Q(U; zds#o0F3{k;3a=}jE2%5ZlihjuB6N9g36O+3o0tmAu)qit4kL?6ydK^z1lwbnL<6JD zKuHHIa7s=6;7^cp zh7e@mFu?-|gZ}^O$TJe0@z4E^3(kUNLN~T*bg$+wTPxOHypit);Smp0_rORzPw0Y- zh@`k~P)62y3^x`JRf^*#tx(I}vMlbR4A-K@_;2(SaU_F)D*u>f(uEC~yGbSnZ5Mn< z$Q`*O@10^FU_R{YqQNe!iiMMifH)|HNEdjby>O6x7C&u1=2x0N#yRnAmD81{e;RHP zj-K5gQ?XJWk;vfcTb^7U4ZGP34Z(;N0{X5HERM#F=^rvOv~a5TZ%9mO=6!C;jq+vd zr8cd(d-5Z%%+3CPw;^g1p^~yyW2$c>xz0Ph6kPh^k z+uJWJRoKeP6(bSfgs-%~P@06a_SVSjVC>MJjIu6QeGkN5v zY&R*K`j=7_#8=QrG2z%Cwp3Jj3G$&Jg>4L86)0Hfhf|d^VH93zDXm*!sum=kCm?CS zuUX{qIEpp}Pgc-^OA?je*UAvjY<-CaR6TrD&TM5dG$)9;yT5E>ak&U1Emd^80v(RA zp3C=IT3VUIS88~u!8-##ZBvIX6T~EJTaa%WsU}dt?2If7DadOo z!B3##LvOT(Z3s8#4g_66Z(Q(7i_Fdr%71uulrf=bwc1^2#dR-2@mI{`$cZ!zpn(k8 z(@y|=#sj&4gG^X&;G(Ld8K1QF-r0?{EngOUrtNJsn=IZmE3zP1Q!5d^G{Eow+Byr^ zxRzyIJ7&imGcz+Y#W7QiF*7qWGdpHx=9t-IX2zJAnc4H4v#+%8$$cZuEX_z?Pirl8 zOI6kN|KpMLsmMKtUWWE?+Y){`cVv3EtEM7X||O03KC zwQ}bxHsTnSRVAXiwN)s%Ya@)#=f68Pz{mvfGn3phEwbgtc->JSW)%P8xYV`Tt0E9_ z=P){ss;{~h-Ai)3I}Frw0+G}>o7GnSDB8O0%Xg6}A9T(m~y_-2?RTn%vk z>FAT~oZZya$*&G{Q$TI@RceqY1Gnzk5`Vlw{oDS>Z*8) zuv1(SW7>c+18a;Jck3Ics)VDWo)gcnOEaRX>(ZNu&OI>eAW`k*8?tAG?-(#T6y~ud zu%XY8!j*PZPTl-YxfAfEuwBCZTp4U)p_*Vx)F&f_nw|DZd!ahFv;$GO;5E1tC zUygDe+-mfUb0O)sRDEGK6SyCWzefiM$k}hNEW>DxkHd*%K+Qp<9aBljR$$9Smco+3 zQC#~Qty?412)#nFf*jO-d5nDJw}Gb`c50bg5{FWe+$=& z*U6iC6{a&Tym(M2p2J`d69tvZ~~E zjrC{R%vcvCl`mxvD!6XbFPe)Y!u%H;P%DUm9XJS!9@$T8gR?4^A&6t4r@b>Yu`-#; z1zCvMEucwfvgO6LI0)J8Mvh1mQ}y{^(zRndmL=|zSA^|F`dM_gNv6M8;uP7{(M z{fgL_{R0y8?&|sSaO;?Q)X)I1h1VFNHg9~u_or7Eyul7U4uO&$=?Fe zA`1AGP8omnqVhwAFm~RTp=0$ z8SmWRw$E6Y&D;soKnK$sq_T!flkt<>An?Op3B0=caj(Nehd%i3GA9rT8x0czh{V7- zJJX>(MiJ`jd&PjsCnHk2PYoSJoQqTj6LcxCi&$EQeQki-!j^k!IC7AuaxxLI?1iI8XA}4PuO&seoNTsrz65^O+k!`W~B@D@;OQRW(CGZ& z-dWMBPfrj}Pc%rMaYUmKHFuL=jS3No3bxT`V!=2$C;T*r7{ogjNS_9tMn{TB+7uK) z;2$9XInPMY@@Nu*jkct48o{6$@C(p{M7ldl^ES&-cMT$|5D?Y`)Rdv9l;Jpg7)nq| zDU&zIfO5i>&nHXL?>-93zs1Utt`d`9$||5AVNshBuQd|Qiaco&ZA89xq9H%2pz6vz zVX9PU_>~o!>Cx(Z0XKWP-qQs%@s1IpeuBh|v8b`yC@SRoslX;9pI|0l7Q2djAXXB* z!^v@}$Kl_(sS__bKih+U$x{Z>J0gWV@*r?|%QE{j4q*IT?~@w*lc0c>VOMhad6kiaBqZhK;n^4au=4g%>6tl?AOYpf;kOG@j7PQC^p+1booW(Kq~0 z1q3Ti`$v0-#D(gm!BhTTQeSs{U$4Zc!c|mpWG!U}2!K zi1gep}_GSzi1}1A6>1X(}#0P`kj>nyJ^SZUX|4mP{+b3I>0% zY!nDpjn`l{n+$~zEU!sLsi}f2nmF#UaBi*^HP`5}fDTEY@+QSOF8$NOj_R;Bvy2$PownqY1Ge5s9 zBZ)H&`r3`z)L&X85WJ5h)lx75x z0-(QQ3qk7{mS(5s6Xgj>W;OCrlc*(4%c-K*(5BDWc$ySTobYfXG&B($uYR|2S6p*% z7G7N8;T~9}nf$>9&xXr2^R%_=>=jUIhqUUFCpYKhH37 zm*xJR%EPWVjjQ?E$Go5fm4`=#@Qnv9>XbLyW}wd$6Q4Ue4u{=RoZBrvXMJ@`DgU{s zhh37VqFy*35AJL#GWXT=_v_ZlRr_o~OG`&nA*CL*eca(r`!`d|FY_-7l5+kAwae^I z?n}cbwgS?0>E5<58H)sfhpbpG*Dqb~R&)UOy#~(78+bBa#NStA3F(iA5e#Xn$ryY3 z8R;IwvbU+IB)4%6l;rLs%v|AimG3dLU&4@Qdty`3EdNrO}a*nQb^YF7&cEd;_LD z&Zn96k;8OuZm{dxwh#U@W4EIZZ6a4Sqkuzc4$UPI5s@Xi`S$x= zuZ+#+e6O*hm+`k4dh;`N>QNbdeWwYL=PWPb!}Qx#fp0sm^ie08&z<8fl7|MjZ!3rS zSL=)Ah9ju;EzIMFj1PWPwfpbRgyr{aIfzGRa2%uqjnUAdmExnj&b+G|C>kk1u9>)BaGUu+6k_0_4w~YB!*ZwUlzwuD!Wek= zvWq=tnO11QJZ%=g%XkbfY&}lbIAc0`ggt-(g#Xx!$b4tnS2uGSajR;Gp=$nZv*;06<_JEVYIL3FceMOsBx$hcG2w9CPZ?Exj=eq|qNHkir%bIjn88*vUL;nyA#*1-O{J~T zD$^j=O(@u|q^2{%D@R<#Zgz3|)A-T+4y@VE@_?2j#NrLuJEfl|t0|R~5NLZ7f<{N} zU)y}*Z^nwxCpb+*VTTD7H{5{NMx*@C9pio{7Vhq@QupJpjH(J)a($TOiP~#xTKu z2}i+>J;uUCL|7c05|=7Ofs`;X4{;_TNj%TlR`>1vB|&zPrx9II5pMpvz@o{lbGLqP zyOBqb7|$%4Z*LC294yBMSljf#^Jyc(uiaqMdqUltqv9&s5Jm5_8w{Y|TSS?sUti^o z#*tuGQrgw9##x^s3im%*_jvR74V2Hb7{mM|J%-KWtceb1<8@l&pdl}dYUR>Y8sQ*? z)G{(db|9cKvV7lop@&-2* zRU&!(!i$(NvbVtlyeC`Fsh*kZAVGmYOU>Ayeg;c=Bh=31P%cSy=og;z2c5uo8@r^H za%VK>PQ)jt^_??X-Hn&yoNJAfh0~{x2d(C?zvF^S@-UM3S5(BY=(_!+<)Y6j#>id)+Llecl9YW})&tu=28R0&t6Py>z_`M|h1B(+l?6$;sx6 zGZ%@Qq}SxpjiT@gU@2nH-jNKsp`x~JVHyu)>`1(k0t*rY`Bd)&V{{*~Kyh(jNXHnK z{WgAm=L4W6bNj2_9>UYo;|)ItCpLTR|1iuz$ZyJ8F|PG-=3Y77 z5IflLN%NeQ+*&JsNXH{1tGua+PwiKKPLd34EZEz7qla&rKH`YCd4A7%Y#SoKY}X}N zwRRun4Dn{Oo%z9qesNq~rli>2XS*NQy1><+TP6z zAAWu&t4vJ4p1Y5=HGM)auIm1^N*Plo{~>Za?!@o!fYeSb+6V%l%)^bjIXK1gvd^%v zVA?|itd;C~Od6nDtVq{V1-;i{h6?C*PF6LXnX(mbcxW5zayVIi5!^E?D^6NJXq;A$ zoNSBaKgmh?z%f*t?M`Bpt*^FwJY?~CsMpr&o^*A!wzjHQBnM-7EzqP48xhNUl|=WB z8|PLwHfqK6Z`&!l$|J|eWnZ^#-wClx-T#Q8h@+4qY6}WfEax*P9qS;~0o73FH3my` zY|l|Y3W5)HT+x&JC0Fj%HmRII{h4<`+3qr_AJmRi2o${b%ZCZVAlyhuM(ImBy0Yq-|{iB}}KEX0O@oN|X`2f4%dZzI1ltfW2+# z4{oR$42mpt2dt?hPT_cYjS(FJXA|$6kE;Fr60*XHw*i>c^g_c37#M2-oY7}P6ZKa^ zigoK&liU%{200AXA`N5+$%Lc|Pm{l1RyoGrLGE4(_1=^dxMeEcIaY5OD9|{K#jx6p z#>mT^cJ@9+x7}}?)x=u6mTwZeIPTMqTYZ=_yE?wF78eeezKqu&Wcc{9M6{fvR|?pj zk1Q_kJoY;^51`pvp!`r5%}{IbSqCVer?;UU8$Kyn7(YvK++4?=9!@98zeLwm>eN(D zlhkRa4|l4U_gCpW_C?p@w{;vG6hF2_!X9WCaVF^BOADo~&Qd9UI=9`cW-i|4tT**5uk(mNV6pY&Ug*otb;N(5sH3EYbGZ z3>vh$C*UU-(b%tm9l1C^IzNlUYFo2wXJ^TG^IS3@SPUZaoDZ(o(ru;oDC`Yz-sB#_ zXe>OW;L8r|bn|-K!Qr`YUwpCkURJcCq%%km8A<)^NM)iocK6!Z_`%%MjzF<60batuET9=z!Q*$K_z@N|K ztj!HZ>7c){S!|wYh;1!loZPFo=WKq6S(vBaAR6_5o5t#CKwKJIRjiFBr+ulvkTaSr z95gt?yK9g=2um(5&nCd(Y1rGHo|-oY3|93&M+L~OdxY!Nc5?Z=Mq&e;uaGA-1hki_ z4sk5++qehz<#2CaD;8rI)@x4ml9n%QF;eP9D~r6L5%a0BnqZ=&l3lfImvKRN@7xDT z78n38XgqOr%buZr9xU%qnUglhSKLhl)lS~di82GHJ6us)?cRgnCxOFIpOJZXrgN}E z6fGRWo);iXpe%-#;1yrI>iPS8(g*9gl^LkRpUAd+K>j;dTmd69}RhxD6d<*7ktIQM1M)b%DluTEVKYMH(!QN7eE7ajxps5p3a1X=JMIsJ`T6Nz92ih~-F$I&oq<*3wxkAWOjKc<#aF!x)P>YvSN$ zmNVqevN8W`cmC*5uyfacb^HUDGyZRm;hrS7{nucyonWGNa z*X{K~+bbUdE0zr{y>Tx0`QB&UdlyPB@7vG1EEnMop ze5Z(m^m<0;p2;5$QR?a$I#_^>EmgS-cWUQk-?F%I_SY(s=yN&VZ|T)W#whL z5~(CX2E{?!s4%F5Xu<9L;oBM_1R_iSnrABw;&BcIZ!VROuU~gDI~iyG^=2uYTw7$ez^Yv8>C#XHOlV|3F#OEP7CVR zJe6Wno79?9(;GiD$cI`kLmU z?KOFHU{R;|6F5$`0e)&wP^uF~$A_%bvyn@+13_MF0JIxGO}tQl>JGA*Tfak8i=r3_ zkT8itUl}lju=+w0hb`zMLMzgIZ8>oyMx*e1t1V>*WyBHF_-Q02}s&e+NxsVF$Ajw4Em4k+zX)lRhXd{%%P_HRB>`W3_v-# zG;*r6i!WbaGxe5Zbw@Y6Gx|;gUz25V5iy^X3t8KWoG9XVvH-QXA3T>O{j4$hz;5T{ z{tUew-|J_9qW&7{g{S86a4wpi%Hj5S$)4b5cQT)>?T%UcP;HymKfNals5O5&Dg?H` zhk1==-j7|s9JXWVINnh{yiZ;?2QPnYeGHC^8xiOB9>Nb!R{Rd)(~fXHalOA9%X--{|0pXJTR(_>>R|AO8XQ# zLH`V7&m%uTO(${1bo+^+r6w&qOTtDoai$bkc27TRBjsA9{jxUZZ&&ml`Mw+}@|BXP zE4P;qM1>$S7r!2Bn145nSmrU)TNqjX3yk_KLZ1$y8pLN3V6gGj=!IV~Xt+o3(2gc` z42~7AsW+93SgX2%YD5SbAP3Mfbb(ma(x?+nu0-}ewb@oaS|DzuwPT>8vjhKlAt8%@ z34;sF!7P^}{c=@ewg|m_)@hYnmYL2`4fJf#dVnr_zAw5v6r=nF(|uF^wFhE~4Tky^ zPa(*_^s|WPp_!YNNGWZ^5byFbs4NPd?voXR2S*M2bJwJRu-!O^s;a@&td~yGmU_e* z$-Qu7zxasyJP(}2cR7u8OewMxE~3WjN?y{^U@D%q(&PQDF+VUUP$HeM7^GIVjr=Df z7=^Tf8>TpGWnuCoq)B0VIHB+Iv?1XyYeAAJ{8Z@87au(_V|>ImVHk8vE#PK$s0o`) z5w*DGvL6cfv&k|G(SBbo?TGsaeDSt?BVHozUiu)E=B-n-F`XZ8Z>t47kp^XjtdRX3G&N-D5A0|VMenTMD4hBCa7x3 zC!k{oa@lmvGa#wA)N&&U`tcNeS5pIl$cM$CQ*Zy-{8H^@^$RW2Ohs~cc!xqs=gWk>x%V60?KYJEh_HOC3ee|vl`a=@TFrXQ$h7}QVzi1WwcgPCQcHy`{H2o zne39(uFHEqq5#6A)I?s3!yShw8`cr{DRuokV49etV2p2)(?OVbl$ni%RDvj*A#gu9mQh^CRI&4)(EpUE|Jq2{w;TKNwsd z6(UOvI~C-ucE~OxB$6Wv5kTa3ZSS5IOZwaDXoiQ^kR|Rm`YO zy}TSCKd#Q?pRUay-Y^HE;vweseF$s6k=@8=zz^MefxkCjRjfJj z_P^)+-ZDMb#DH*n&Jg+zN!5fPIjFD4ES_4rAxI2oA0mBVkIy`$HJFMR5We`dk+=O8 zC}7;a4r_i(WW3BoJWR-ovrf$kH$*s{qOpd3<#rIAudd9!I zKS1my6SB9&MY`+kvC1H=``BKTtjRC~e}5w~9u!bvgyxS?vok`)tu+J3iM zx+0*II!$9@aBB4=nfkie6k(r}cBr5=g^Vd5Mdg>}_1P!kZo!iL-kb!NI7InA=5!;~ z3C05+yr-&Mvp&Vv4XvDT!*43c5Vb6ETVo?6H`qAw5|31uxKCN^D<}by^ittD8YNxO z-s+IN)SH`K5JHm&M5Gv>i}uXZ6q|-MUd-Vr9o~ zqF!a!HC9}wrUm6ul%k~zbi+GM95;0Lh}gT)%;6;r+9CA`Kt+9+2(=Hbl;RiLLf$S7 zZ87zRA|vUOUMyf5aFWE%G$vH&jT>E9S@SYR)ORkDh;DPSVa1ZSr6!N7j#A=uGYP(b ziDS%i0El&Q!8+m(Hz?o57g`f=;O;(3N@jR1ZY-a6wrvRT^sQUWAzieVQ)4G?8D&>| z4w4>%92%!+h}_2ny?#^TuFq0I`#dVgb3@=RaNjXKqrx2T24mUt!kN+tkSBbBj7crE5Ceu1E=Td)s%ocwtMH| zP3-OvTo&!~#(iiNUyd_~g4_Fj5bUBd#2f#Gr|f(}GEyV#-fJQ{XX;uSF(Jfi>Ou4l z@6ER&aT($|(Bii6dA{>jWa=&1c`k)t44~EQwlI3M#1%K0(N006>jn@2c}F|AmSGGO#!uc%LqH0TGJa z@eZM_cjd5>MK>SlZFDCLc$C!*MU~R(?ow?!@gtI;WuSSn)bWwh0lIik^Rd=vZRD4E zCGiy=j3v+(?ILS6R%T_@nJ8PozY27Cb=QUn%M1IFeh;5(92qkxL30EMC8buWUQLk* z@Y-*S+YWEEzoJaG2J7AwHcbx3ASB_fw?Ar|y4)orktUTVUEwaSBvq}iJ)TZ_+`BDQ zuTPYRJ)0`K;S96AA@|-2&ug?kpDz<`JIfxBqvT$*zkxaJ-_TWteC~zPd|wSCp?H7J zMWex9a8m)i1~7<5EB8+Vyh^zqJ5a>Vwc2kcM^v9_SMd-+cI=eT^16Lj_~on3F@T=q z@8pF(u3}2;O6NZW-1rTx&(GGRs!cy^(}LfCm%GMon~Dy+H2$ z_&kQNBjTBGe^CeOx02CBzQ#0p5)`?qp|j@6f!KdJ?T37z4;9FlhP5Maar=3@o4}i- zsU@U+MMTH-W?V7`s^ivtQHZ%JQ{=auN48AH?Ip+>fKB?Ox5>St)OwJsVZ6ss!wITprlh0ZNI^7 zkwnZ;(g!eia|fbpwg~Y!dybriFj)=YXXa8%<0wO$Qx|3(1+lo9=rQS>AeX2_)5v{F zg2N`10$5Sh)EUuXY1`g9*IsIh?SH@J1MA-=%pB#iA384%9tJ(WLPuOwA0#~+25PEE z7%he7eM8!grMs@R@j98RWkm#UYqG>Tmvv~ubvMorK(tw7#)XD6Sq5_4y`VeVn6-M& zOnXCSuguTA+TiJA`V2q9_zTKVDO1j2d=8S+6p|%Ms|{!JVHcGNtV8X@L>N9Q3angz zj}qik0j8tqy%sW5ZWJ|M@)c6xFv0H~cDY;`=7Sl-6T}F3ZXZMJ;tB@uEa|P!_48P~ zPL30_P{vfDSTXTRgA=I9Z`(PNCS{!oO)$_KK(}+TCM5E+p@!QHYWSnyGg|wTuYm{O z|D3;a@N?j!SWs3aaX9ekAU(482xA)_PhzvuzSN{dJv{&I3yp!kJvh8k0wKlv8$VKg z1E25HvzXdR#1CGJ*36TKNtHbe6=ey>okc=~_V;8`)m%~Tt5(>xVY}s2NDMC^D zDQm5I&-&ui``h55iDd7GR)qK1>-CAt#qu5I+tZzgwpV|*$pr92!*JvMcY9hy%!!>t z!D4e(M2yTCX4`Un8(+o6?}4~g&yi3ppW|%D-=_U1* z?2$vU{<~`YxMRga-RArQ&1`S_-pU)6RQ9Bq$36ksLv{LdJ#S8L_c2y`2ea#2lhkWz zS*RUF6Hz!mjN%kLgJKH%rU%B5feGooeK?GCUOqGFUCV4A)8k|x&kS#~&(GQR%`q)V zz?njE>i67=$3*(V9Yu4GpGF%;_RF0P^&yXomP;=5ojGl0qZD`x51#J)%HNv9j$^(7 zNbALlvRPcJ+VU(AFT^x{9Jza`KtN)1QnOa59Q8narHdVe>cJgkgB0#Vls-QlYB1tZ zKdJYK(nI!~(3U`wlzU`{!Q}|K!#4xWxLGy=wz4PR%awQl**#nSJN_7pFIfWh5-jk} z-p$Ih^^6B@FP8=H7#AY=o!9EGE(8EuqH8&Z^U73#u^GJ9DjiSz3vC$=IYUqSEoYM! z+fZhEXK0dI;Ur6gk)2%Xr$BRrq0ijUyg>FN;?V7Dwq$y~H*le`&a;ZCFCc>_6@rjC z!0YQ;7O?sG#CGCps+YPX#j}x0g7ugAtzLRLJ1mc%RqBWa7AspxPy6)CF83I6T7(;& zOt~?*udnwyacBUJPwlQ)g1H z_~$VDZ5?ZAxnpde0#z8?PZ@fWNlL9mFu~wx##JZ1JGUj={DDg1z!KW%!+bmx6!kO` z?4-(H&MVVZ=*vV`6KQx zaPW2&dK=q$pKw@whHm$j{CcGRq9^qd1iNtEqU9E}VQ|gF0O3+W`c2;0Z&a%|yI~>T zHnuRGjz3$v6)$4+EYFFbazJNZC*we!b5izE9<7ZiS97gVSyBDx;ngH{h8%49`Y+Dd zeFFZbt0KHlTDlYO$~4im8BJ5I!a3C7n%XqxjS&xt!8rSmLCS-l(Z{Yg$29kkPB4N8 zNvOGl0<5&=T{^W-^;9Z7ExKt(_N%&^__3nMzt$!a&X!n4XH#jby?3CBNwzVsXPCxT zg15VN_iTS5SM8ygG?|S%kwKZx3L{DKBD~%1lo=i2(t)A=^)#CZ>^v8(@c4?~z{QkI z_!;vH?fAZa5OK6<8!MJ9=k+P@d)~$mJ=yCltDWV+h~mu3R0Sd{*C~BLHx~rl~raKcZG>uf}#C=%_c6GN&@s1 zhWpk*#5zO_^hEx5PRuPt1VLrI1ou(+E2hKvHISkfeo83ih2a{Xdj-Q4#>3${PKTYFh;H;&w}GDDnUe3^xBm}jPfxjXw+!N;|CD>y(Mo$ z`cXgCF@eXLKtohQ2!YnHerK-8+IwYP>0N$Xi8~@l&Uk}md0EVS#!z3~F6R9BkaAYT)0(ZNfrgLWT@*gepj8On-D>qMn=T!08`@WF zhXm(i!c7+$xTz}K*c1tYkwYN+i?vVvaB@W^bwm3|7es5r^$}O0l&@*Ot;~eC}G~bj~s(5S?lsG2htSxL!Uzt zIu)_-prGK;>bpOcOf~N8@y$zJ`hM6`Qf=rfiu zlEvS-e_+G4OatTLIRr4dO!NQ%5-mfeOtJ8uJB_f6hv zA}fphIW%NlnWncqZG8G!PM}@$!5nvpN?fHm`X1amHY$yRbSr7ZYlhBRxN}H(wnwno zLT4#58k}ImH~^USJ9)s>Gc5GDOZV2QXl{uiOh>MhqHHs5?prnr;7N1Oxs*G~iXll* zr}S;-Wy8JZVQlkxq~!@8Bk@31E6YuMGk>j>;0w8J8Cx9HDEX`SFnG7`8ncYWtSM`g zyyUaXDe&jx=ZP5jU(>tbSQ0A_h7SuOWCfM{xe#x2AiY@bs=~W2-?GH|pwc<4%$Hy7 zDLVVQ2UhEEaGZMP|5TUP>h?41Y#N=+mzVY4&d1HB#+}WM16OIo(XDNitj==5a--N#QKE?somgl2 zgJX!5m6UWeq*icqa|6v&W~o>5$@1=T$l(0~Xv*OCV28!XmC%KEa63!b z<7De~z1V~ijf<&Rod{nj5jWthR(@Yn+;kXnw+QXZ7Zw}4>I2`bA|m)o%uP;4()5Ez z_HCko^AtaHK0DwmVMHu)*s5hDc)Y9NWu*k$!t#2TKNUSeY+5(kZp ziVLvGbL$iD@9T3YvoN%&(18IQAv-oB=F$$k0ga7_3NVJHgma6F!eYbrN*uNpBuUeV zbkZz)WQ1U$x-dqM!bl`{Q;i9FbC9||rj`=ArTCBI>kmp+*Wf{H-h*_REcd$;g zJ%OKH#m_P6gIC!KHisb$-A+7LN5$a|dA5qwM z11&*4CCi)y3H*t`qM$3TB&X(0tb~V~!&uJIh29m`;*k0BqRwJ2>az7yBqfZ|Q+JjA;1>8njI`w>4ou=OIBQ?* zeSULGJvXxT{)tCwMX^a;eaRO*Ys&PbI)Rd?n{mJMElt=y__ha z$R`jG=>PN(=rhq4(Ganp`I;*ElWH;MQBOtXhH6KjzeiM} z-ualYu*M8S9)Rti?ziiC|K9N2&jV-Z)|6jS^k)7VHWs00K6}yba#N#E-?_c<<<87& z_1bgfmg?*;CvHh*S}(8vo*WCkDF2czq1-r zc$lagcZPG!+-ct$$L%;BsQHP0Qs259JQv5V8KL+wA478+_97Yk#6+iemVW5!pmHB8 z=p|9MS`uMmZCz%9PxAU|s2ZfK!$SV-zG|#uATHtK{;Q6nf4c6=9A(D?7 z5`Mh@=k~GE>oXgqEa@61{AydJo24`8uE2&2W??C2VMMjm-P|psGgT#o{_8QUNeUzU z8RLJA!$z;q1kvpW55foy%9un;JoE}&Z9po)+E!VC%S-WI>4%v3xLuz>K|oMJK>s}K z_7ozeF~RYQKl2d;0fGFu{P)Yjfu51c=x>I?NUT@#|I18${Q8Gs{yz-W!4!c4`N!yj zfBz4^*gp)*|6#QKKp%hpFI)A0=T>j^pJo>(MtUpuzi0Qi8T-GKx#vIBA8Yo%slVOp z{-tap{-OSO+5JuZExi9Pb)5DO^+$&PZ|ZM-!G9^PvVW*QYJ-1Mf6Em7OHsD|hx(6b z!Qa&1EkgfN+XMfh{xl5z4gGyq<6kIx=|9k)lN*0Se<#TPg=7!^1N}*t{SE!S`}_-$ zKm39I*^B{q z3$6bH{aL8rr6B&Z-jG3%LBha5KuDfIK+r*y; literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/make.bat b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/make.bat new file mode 100644 index 00000000..1f1c106b --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/make.bat @@ -0,0 +1,7 @@ +copy /b ss.01e + ss.02e + ss.03e cpu.rom + +copy /b ss_7.b6 + ss_8.b5 tile.rom + +copy /b ss_9.m5 + ss_10.m6 + ss_11.m3 + ss_12.m4 + ss_13.m1 + ss_14.m2 sprite.rom + +copy /b cpu.rom + tile.rom + sprite.rom SONSON.ROM diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.01e b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.01e new file mode 100644 index 0000000000000000000000000000000000000000..0efa9b568111bf8961b8a412103e6f2283e193f7 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.02e b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.02e new file mode 100644 index 0000000000000000000000000000000000000000..255605a9b247570ff05c57259fcac77fda53bdb7 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.03e b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.03e new file mode 100644 index 0000000000000000000000000000000000000000..10c09cc9063e0debe8ac10af7f84e38898331643 GIT binary patch literal 16384 zcmd6O3s_S}_V`Wi&4chT^3aHiDMCWkc0r_Ty0ukHZR*ylwc3=mD^+VLrC_Tlii_A# z7h6Kvb<5f}f&#W`ZEdZ!y)BU>1QM>IB!CJc)f+2`_!dEu-M>+PPbL9sM=8Vc2z;u`;5Mn z4b?b}u854Wbn!@&+#v=$sbZ*&KDH`SY{O@hdvq)q%Nzog>2#DCOB@sgStRe88Fh|%9aTkSLhjs`O9k zpVu$ezocKGe@(wqpQ&H3->A>iZ_yX(x9Yd)KaqYw4*!4*Mo_DNYQ!jy{`s&`TK(cs z0563ASP}YyR{vTUfR!TvWR3)|eng8_zcCCzUMPSqApiCHwa{YJV zHRR|Ta!d_5wuU5XJo@s11tb)Fr?=``2NuQ|JbLS(f@+VxRe$C1lLVn72!fBn3eO`1 z@20z$;LUd{p~6jgJhg76$D?!?d)(i69`U%L9pngu$1|Rn3bnizXvZhu3CQto@=^)@ z3c>&w5mE$rEeL5UASDb4DS?na0!ZD(2&obwg;K}?Qg<;z`UpabpEe+*selx&hAEUu zJcU}Ke&Okkm!inooiC-HRa}|8R5e9tl1`!KE=ig3s^NvF(q?olEqy79N}cfwYH(rl zGF72}iizK3W~EAh=WsQ1`1&3@z3ai)e7VG|xS%@RR~=M6uez%Gs)nf+?y==mpW8qG z@Rj|khp#|EXu7RhRvi!gCbb$bx<=E6ZzVedcA2D(0F$310N9ibR8pydazWbg43Lvg z6#mW;)r8J9B8s0DrUDF$0K;Fai>u44cXLw2Qz$qoiV|A+1V{^Qm;-1xi;*;?1}MY` zv5D^prVaPg)#q}mTaXZ@dT;6K78Uf4ng%K;69LVNM?y0w gc{h6S@y6WSABpk4& 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_10.m6 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_10.m6 new file mode 100644 index 0000000000000000000000000000000000000000..a9d439accef81319589513e48aac4b76f3a4ee3d GIT binary patch literal 8192 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 M`+EKVf3p7n55?VGjQ{`u literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_11.m3 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_11.m3 new file mode 100644 index 0000000000000000000000000000000000000000..8354826a1330d1a3b27267d6d6f3285c3cfbc0b3 GIT binary patch literal 8192 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 KTw?R)$bSKLJ-J^1 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_13.m1 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_13.m1 new file mode 100644 index 0000000000000000000000000000000000000000..919a8121585074ce35c671d2e77febfcb2792baa GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_14.m2 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_14.m2 new file mode 100644 index 0000000000000000000000000000000000000000..23704afe581d89125625da48e496ca3ad0a0c4c1 GIT binary patch literal 8192 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 N99191(bcO1{|gGMJzD?( literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_6.c11 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_6.c11 new file mode 100644 index 0000000000000000000000000000000000000000..f06add7bd64fb40b5264b5a51d45aa0058cd17f4 GIT binary patch literal 8192 zcmeGgZEzFEb?;8n>ErYf8-u|FiJ0-FGzF5tBsXCiB~Ztq`5;Y85<o zrubCb$02MP8AaeQ1Uujpb=^=i4#r7TOa>Ha9d*)7n07iH%V5hk_zRM0N}8a)y^{@c zo0r?|eK#Iu&#FAZ)#7HDMqB;Dz2cxU=ZgQrj#zRKZ@Vfq*eiMCz7U*fZcXZEa zztFy=eOgOsIyBofOQ@SvC*`AFpjh%N@=s)#^pdZTkB~XU*F>B+Pc#uh;+I4b@jT%q z77%w6W^@aUq08tJ`UCnsYD3Kk%%fVg8rf$Djedq!qNmUkXc=;%rHDgI z&;w`@`T?4c?nQZM9=ZoP&>S=y<)E1;8%;-9Xd22y8R#x#Lsn#o^yEi+HgSFuS*=!$ zT*;aaStC7fg{)p`o`unbG+ryK6CI00#}&@6aYbEnWuD%zK~QCIk&%}%D^=|pd3iFy z73+~h8i;bwxy$tBg_rxTd~hYwJFjO%L1b^Tfqg&ENr zHj8wa7KyM$w1urA71jeT*`OiaC7QzqE^@gda=9^b`3xsBl?2PUY0wF7tn@IPhnDF^ z)gw-}C|o_}TGV77D@o8ggcoW~#=8li!Gv~k#LGfTP6 zxHAyEHg;~p+Ha0s(cy4~_27&WEyiRt=xLo+Ly-h8*>Knj3Sw8J2cz;iZ<1Xd#)C4b z67pk_E6?Mx%a3COMlUbJ2#lYz`L7ff+%L<=5_36(zDovziyA_!C!sfq>v5oTMum2} zW^kL)>di?gcw7tIX4%4;y(F6@o4pPe;Q&GSyh`{WKs0L%p-KwJhvqom5?zD`7VFKH zqcEtff_Y?g9|R+QIF%JT$RO}1`#|=aSpiG6p^8k(W{)}6`;;P(?Y)πstiy?QQ8 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 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_7.b6 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_7.b6 new file mode 100644 index 0000000000000000000000000000000000000000..ef2b104d384a9cc56849bf79d38c3f9fc769e98c GIT binary patch literal 8192 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 D{^WlC literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_8.b5 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_8.b5 new file mode 100644 index 0000000000000000000000000000000000000000..61a170a2dac06d7c6fe0f19ea076dcb45d5cd90d GIT binary patch literal 8192 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 B-+}-D literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb1.k11 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb1.k11 new file mode 100644 index 0000000000000000000000000000000000000000..48de6994e0cb5c17a386a0bf286d4a89b921b2c4 GIT binary patch literal 256 RcmZQzfB;4U0IF=*Q2-tg03iSX literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb2.c4 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb2.c4 new file mode 100644 index 0000000000000000000000000000000000000000..34c3eda62e2ec20168735fc0cedbd718f1588657 GIT binary patch literal 256 zcmZ9_Sq=js3_s&N zx6u=_?6N-8Vk<@c)NF?4G1;Jgz??B-{9%5$zxkPq61)U+MQu;{$p|HKUJO&4e&@fN WA1mf!6?;q6r}c5e^B1PyYO)vIw*N$)yK2 a-~)&2?wH7Nk=94_!!xR&a$kPR=BK^ifCqU1 literal 0 HcmV?d00001 diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb4.b2 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb4.b2 new file mode 100644 index 0000000000000000000000000000000000000000..86660493089a1037ca33b3601f2e320dfcce4945 GIT binary patch literal 32 ocmZRW* +// 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 reg [15:0] port1_q, + + input [16:1] cpu1_addr, + output reg [15:0] cpu1_q, + input [16:1] cpu2_addr, + output reg [15:0] cpu2_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 reg [31:0] port2_q, + + input [16:2] sp_addr, + output reg [31:0] sp_q +); + +localparam RASCAS_DELAY = 3'd2; // tRCD=20ns -> 2 cycles@<100MHz +localparam BURST_LENGTH = 3'b001; // 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 - data0 read burst terminated + 1 ras0 + 2 data1 returned + 3 CAS0 data1 returned + 4 RAS1 cas0 + 5 ras1 + 6 CAS1 data0 returned +*/ + +localparam STATE_RAS0 = 3'd0; // first state in cycle +localparam STATE_RAS1 = 3'd4; // Second ACTIVE command after RAS0 + tRRD (15ns) +localparam STATE_CAS0 = STATE_RAS0 + RASCAS_DELAY + 1'd1; // CAS phase - 3 +localparam STATE_CAS1 = STATE_RAS1 + RASCAS_DELAY; // CAS phase - 6 +localparam STATE_READ0 = 3'd0;// STATE_CAS0 + CAS_LATENCY + 2'd2; // 7 +localparam STATE_READ1 = 3'd3; +localparam STATE_DS1b = 3'd0; +localparam STATE_READ1b = 3'd4; +localparam STATE_LAST = 3'd6; + +reg [2:0] t; + +always @(posedge clk) begin + t <= t + 1'd1; + if (t == STATE_LAST) t <= STATE_RAS0; +end + +// --------------------------------------------------------------------- +// --------------------------- startup/reset --------------------------- +// --------------------------------------------------------------------- + +// wait 1ms (32 8Mhz cycles) after FPGA config is done before going +// into normal operation. Initialize the ram in the last 16 reset cycles (cycles 15-0) +reg [4:0] reset; +reg init = 1'b1; +always @(posedge clk, negedge init_n) begin + if(!init_n) begin + reset <= 5'h1f; + init <= 1'b1; + end else begin + if((t == STATE_LAST) && (reset != 0)) reset <= reset - 5'd1; + init <= !(reset == 0); + end +end + +// --------------------------------------------------------------------- +// ------------------ generate ram control signals --------------------- +// --------------------------------------------------------------------- + +// all possible commands +localparam CMD_INHIBIT = 4'b1111; +localparam CMD_NOP = 4'b0111; +localparam CMD_ACTIVE = 4'b0011; +localparam CMD_READ = 4'b0101; +localparam CMD_WRITE = 4'b0100; +localparam CMD_BURST_TERMINATE = 4'b0110; +localparam CMD_PRECHARGE = 4'b0010; +localparam CMD_AUTO_REFRESH = 4'b0001; +localparam CMD_LOAD_MODE = 4'b0000; + +reg [3:0] sd_cmd; // current command sent to sd ram +reg [15:0] sd_din; +// drive control signals according to current command +assign SDRAM_nCS = sd_cmd[3]; +assign SDRAM_nRAS = sd_cmd[2]; +assign SDRAM_nCAS = sd_cmd[1]; +assign SDRAM_nWE = sd_cmd[0]; + +reg [24:1] addr_latch[2]; +reg [24:1] addr_latch_next[2]; +reg [16:1] addr_last[2]; +reg [16:2] addr_last2[2]; +reg [15:0] din_latch[2]; +reg [1:0] oe_latch; +reg [1:0] we_latch; +reg [1:0] ds[2]; + +reg port1_state; +reg port2_state; + +localparam PORT_NONE = 2'd0; +localparam PORT_CPU1 = 2'd1; +localparam PORT_CPU2 = 2'd2; +localparam PORT_SP = 2'd1; +localparam PORT_REQ = 2'd3; + +reg [1:0] next_port[2]; +reg [1:0] port[2]; + +reg refresh; +reg [10:0] refresh_cnt; +wire need_refresh = (refresh_cnt >= RFRSH_CYCLES); + +// PORT1: bank 0,1 +always @(*) begin + if (refresh) begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end else if (port1_req ^ port1_state) begin + next_port[0] = PORT_REQ; + addr_latch_next[0] = { 1'b0, port1_a }; + end else if (cpu1_addr != addr_last[PORT_CPU1]) begin + next_port[0] = PORT_CPU1; + addr_latch_next[0] = { 8'd0, cpu1_addr }; + end else if (cpu2_addr != addr_last[PORT_CPU2]) begin + next_port[0] = PORT_CPU2; + addr_latch_next[0] = { 8'd0, cpu2_addr }; + 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_state) begin + next_port[1] = PORT_REQ; + addr_latch_next[1] = { 1'b1, port2_a }; + end else if (sp_addr != addr_last2[PORT_SP]) begin + next_port[1] = PORT_SP; + addr_latch_next[1] = { 1'b1, 7'd0, sp_addr, 1'b0 }; + end else begin + next_port[1] = PORT_NONE; + addr_latch_next[1] = addr_latch[1]; + end +end + +always @(posedge clk) begin + + // permanently latch ram data to reduce delays + sd_din <= SDRAM_DQ; + SDRAM_DQ <= 16'bZZZZZZZZZZZZZZZZ; + { SDRAM_DQMH, SDRAM_DQML } <= 2'b11; + sd_cmd <= CMD_NOP; // default: idle + refresh_cnt <= refresh_cnt + 1'd1; + + if(init) begin + // initialization takes place at the end of the reset phase + if(t == STATE_RAS0) begin + + if(reset == 15) begin + sd_cmd <= CMD_PRECHARGE; + SDRAM_A[10] <= 1'b1; // precharge all banks + end + + if(reset == 10 || reset == 8) begin + sd_cmd <= CMD_AUTO_REFRESH; + end + + if(reset == 2) begin + sd_cmd <= CMD_LOAD_MODE; + SDRAM_A <= MODE; + SDRAM_BA <= 2'b00; + end + end + end else begin + // RAS phase + // bank 0,1 + if(t == STATE_RAS0) begin + addr_latch[0] <= addr_latch_next[0]; + port[0] <= next_port[0]; + { oe_latch[0], we_latch[0] } <= 2'b00; + + if (next_port[0] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[0][22:10]; + SDRAM_BA <= addr_latch_next[0][24:23]; + addr_last[next_port[0]] <= addr_latch_next[0][16:1]; + if (next_port[0] == PORT_REQ) begin + { oe_latch[0], we_latch[0] } <= { ~port1_we, port1_we }; + ds[0] <= port1_ds; + din_latch[0] <= port1_d; + port1_state <= port1_req; + end else begin + { oe_latch[0], we_latch[0] } <= 2'b10; + ds[0] <= 2'b11; + end + end + end + + // bank 2,3 + if(t == STATE_RAS1) begin + refresh <= 1'b0; + addr_latch[1] <= addr_latch_next[1]; + { oe_latch[1], we_latch[1] } <= 2'b00; + port[1] <= next_port[1]; + + if (next_port[1] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[1][22:10]; + SDRAM_BA <= addr_latch_next[1][24:23]; + addr_last2[next_port[1]] <= addr_latch_next[1][16:2]; + if (next_port[1] == PORT_REQ) begin + { oe_latch[1], we_latch[1] } <= { ~port1_we, port1_we }; + ds[1] <= port2_ds; + din_latch[1] <= port2_d; + port2_state <= port2_req; + end else begin + { oe_latch[1], we_latch[1] } <= 2'b10; + ds[1] <= 2'b11; + end + end + + if (next_port[1] == PORT_NONE && need_refresh && !we_latch[0] && !oe_latch[0]) begin + refresh <= 1'b1; + refresh_cnt <= 0; + sd_cmd <= CMD_AUTO_REFRESH; + end + end + + // CAS phase + if(t == STATE_CAS0 && (we_latch[0] || oe_latch[0])) begin + sd_cmd <= we_latch[0]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[0]; + if (we_latch[0]) begin + SDRAM_DQ <= din_latch[0]; + port1_ack <= port1_req; + end + SDRAM_A <= { 4'b0010, addr_latch[0][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[0][24:23]; + end + + if(t == STATE_CAS1 && (we_latch[1] || oe_latch[1])) begin + sd_cmd <= we_latch[1]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + if (we_latch[1]) begin + SDRAM_DQ <= din_latch[1]; + port2_ack <= port2_req; + end + SDRAM_A <= { 4'b0010, addr_latch[1][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[1][24:23]; + end + + // Data returned + if(t == STATE_READ0 && oe_latch[0]) begin + case(port[0]) + PORT_REQ: begin port1_q <= sd_din; port1_ack <= port1_req; end + PORT_CPU1: begin cpu1_q <= sd_din; end + PORT_CPU2: begin cpu2_q <= sd_din; end + default: ; + endcase; + end + + if(t == STATE_READ1 && oe_latch[1]) begin + case(port[1]) + PORT_REQ: port2_q[15:0] <= sd_din; + PORT_SP : sp_q[15:0] <= sd_din; + default: ; + endcase; + end + + if(t == STATE_DS1b && oe_latch[1]) { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + + if(t == STATE_READ1b && oe_latch[1]) begin + case(port[1]) + PORT_REQ: begin port2_q[31:16] <= sd_din; port2_ack <= port2_req; end + PORT_SP : begin sp_q[31:16] <= sd_din; end + default: ; + endcase; + end + end +end + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sound.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sound.vhd new file mode 100644 index 00000000..7ffaf8f4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sound.vhd @@ -0,0 +1,46 @@ +-------------------------------------------------------------------------------- +-- SubModule Sound +-- Created 18/08/2005 6:39:14 PM +-------------------------------------------------------------------------------- +Library IEEE; +Use IEEE.Std_Logic_1164.all; + +entity Sound is + generic + ( + CLK_MHz : natural := 0 + ); + port + ( + sysClk : in std_logic; + reset : in std_logic; + + sndif_rd : in std_logic; + sndif_wr : in std_logic; + sndif_datai : in std_logic_vector(7 downto 0); + sndif_addr : in std_logic_vector(15 downto 0); + + snd_clk : out std_logic; + snd_data_l : out std_logic_vector(7 downto 0); + snd_data_r : out std_logic_vector(7 downto 0); + sndif_datao : out std_logic_vector(7 downto 0) + ); + end entity Sound; +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +architecture Structure of Sound is + +-- Component Declarations + +-- Signal Declarations + +begin + + snd_clk <= '0'; + snd_data_l <= X"00"; + snd_data_r <= X"00"; + sndif_datao <= X"00"; + +end Structure; +-------------------------------------------------------------------------------- diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spram.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spram.vhd new file mode 100644 index 00000000..d86010fc --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spram.vhd @@ -0,0 +1,91 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY spram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + data : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END spram; + + +ARCHITECTURE SYN OF spram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "SINGLE_PORT", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + wren_a => wren, + clock0 => clock, + address_a => address, + data_a => data, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_array.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_array.vhd new file mode 100644 index 00000000..880f09f2 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_array.vhd @@ -0,0 +1,164 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.numeric_std.all; +--use ieee.std_logic_arith.all; +--use IEEE.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); +end entity sprite_array; + +architecture SYN of sprite_array is + + type reg_a_t is array (natural range <>) of from_SPRITE_REG_t; + type ctl_i_a_t is array (natural range <>) of to_SPRITE_CTL_t; + type ctl_o_a_t is array (natural range <>) of from_SPRITE_CTL_t; + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal reg_o : reg_a_t(0 to N_SPRITES-1); + signal ctl_i : ctl_i_a_t(0 to N_SPRITES-1); + signal ctl_o : ctl_o_a_t(0 to N_SPRITES-1); + + signal ld_r : std_logic_vector(N_SPRITES-1 downto 0); + +begin + + -- Sprite Data Load Arbiter + -- - enables each sprite controller during hblank + -- to allow loading of sprite row data into row buffer + process (clk, clk_ena, reset) + variable i : integer range 0 to N_SPRITES-1; + begin + if reset = '1' then + -- enable must be 1 clock behind address to latch data after fetch + --ld_r <= (N_SPRITES-1 => '1', others => '0'); + -- make ISE 9.2.03i happy... + ld_r(ld_r'left) <= '1'; + ld_r(ld_r'left-1 downto 0) <= (others => '0'); + i := 0; + elsif rising_edge(clk) and clk_ena = '1' then + ld_r <= ld_r(ld_r'left-1 downto 0) & ld_r(ld_r'left); + if i = N_SPRITES-1 then + i := 0; + else + i := i + 1; + end if; + row_a <= ctl_o(i).a; + end if; + end process; + + -- sprite row data fan-out + GEN_ROW_D : for i in 0 to N_SPRITES-1 generate + ctl_i(i).ld <= ld_r(i); + ctl_i(i).d <= row_d; + end generate GEN_ROW_D; + + -- Sprite Priority Encoder + -- - determines which sprite pixel (if any) is to be displayed + -- We can use a clocked process here because the tilemap + -- output is 1 clock behind at this point + process (clk, clk_ena) + variable spr_on_v : std_logic := '0'; + variable spr_pri_v : std_logic := '0'; + begin + if rising_edge(clk) and clk_ena = '1' then + spr_on_v := '0'; + spr_pri_v := '0'; + for i in 0 to N_SPRITES-1 loop + -- if highest priority = 0 and pixel on + if spr_pri_v = '0' and ctl_o(i).set = '1' then + -- if no sprite on or this priority = 1 + if spr_on_v = '0' or reg_o(i).pri = '1' then + rgb <= ctl_o(i).rgb; + spr_on_v := '1'; -- flag as sprite on + spr_pri_v := reg_o(i).pri; -- store priority + end if; + end if; + end loop; + end if; + set <= spr_on_v; + pri <= spr_pri_v; + end process; + + -- for NES, and perhaps others + -- it's actually more complicated than this + -- but it'll do for now... + spr0_set <= ctl_o(0).set; + + -- + -- Component Instantiation + -- + + GEN_REGS : for i in 0 to N_SPRITES-1 generate + + sptReg_inst : entity work.sptReg + generic map + ( + INDEX => i + ) + port map + ( + reg_i => reg_i, + reg_o => reg_o(i) + ); + + sptCtl_inst : entity work.spritectl + generic map + ( + INDEX => i, + DELAY => DELAY + ) + port map + ( + -- sprite registers + reg_i => reg_o(i), + + -- video control signals + video_ctl => video_ctl, + + -- sprite control signals + ctl_i => ctl_i(i), + ctl_o => ctl_o(i), + + graphics_i => graphics_i + ); + + end generate GEN_REGS; + +end SYN; + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg.vhd new file mode 100644 index 00000000..ee5cf179 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg.vhd @@ -0,0 +1,97 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +library work; +use work.video_controller_pkg.all; + +package sprite_pkg is + + subtype SPRITE_N_t is std_logic_vector(11 downto 0); + subtype SPRITE_A_t is std_logic_vector(7 downto 0); + subtype SPRITE_D_t is std_logic_vector(7 downto 0); + + type from_SPRITE_REG_t is record + n : SPRITE_N_t; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + xflip : std_logic; + yflip : std_logic; + colour : std_logic_vector(7 downto 0); + pri : std_logic; + end record; + + type to_SPRITE_REG_t is record + clk : std_logic; + clk_ena : std_logic; + wr : std_logic; + a : SPRITE_A_t; + d : SPRITE_D_t; + end record; + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t; + + subtype SPRITE_ROW_D_t is std_logic_vector(63 downto 0); + subtype SPRITE_ROW_A_t is std_logic_vector(15 downto 0); + + type to_SPRITE_CTL_t is record + ld : std_logic; + d : SPRITE_ROW_D_t; + end record; + + type from_SPRITE_CTL_t is record + a : SPRITE_ROW_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t; + + component sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); + end component sprite_array; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return SPRITE_ROW_D_t; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector; + +end package sprite_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg_body.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg_body.vhd new file mode 100644 index 00000000..551261b2 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg_body.vhd @@ -0,0 +1,62 @@ +library work; +use work.pace_pkg.all; +--use work.sprite_pkg.all; + +package body sprite_pkg is + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t is + begin + return ('0', '0', '0', (others => '0'), (others => '0')); + end function NULL_TO_SPRITE_REG; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t is + begin + return ('0', (others => '0')); + end function NULL_TO_SPRITE_CTL; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + + constant HALF : natural := (row_in'length / 2) - 1; + + alias row_in_0 : std_logic_vector(row_in'length-1 downto 0) + is row_in; + variable row_out : std_logic_vector(row_in_0'range); + + begin + + if flip = '0' then + return row_in; + else + for i in 0 to HALF loop + row_out ((HALF-i)*2+1 downto (HALF-i)*2) := row_in_0(i*2+1 downto i*2); + end loop; + return row_out; + end if; + + end flip_row; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + alias d_i_0 : std_logic_vector(d_i'length-1 downto 0) is d_i; + variable d_o : std_logic_vector(d_i_0'range); + begin + if flip = '0' then + return d_i; + else + for i in d_i_0'range loop + d_o(i) := d_i_0(d_i_0'high-i); + end loop; + return d_o; + end if; + end function flip_1; + +end package body sprite_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritectl.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritectl.vhd new file mode 100644 index 00000000..d4758aa3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritectl.vhd @@ -0,0 +1,160 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +-- +-- SonSon Sprite Controller +-- +-- Sprite data is 48 bits wide: +-- +-- < 16 bits >< 16 bits >< 16 bits > +-- + +entity spritectl is + generic + ( + INDEX : natural; + DELAY : integer + ); + port + ( + -- sprite registers + reg_i : in from_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- sprite control signals + ctl_i : in to_SPRITE_CTL_t; + ctl_o : out from_SPRITE_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity spritectl; + +architecture SYN of spritectl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal flipData : std_logic_vector(47 downto 0); -- flipped row data + +begin + + -- handle xflip + flipData(47 downto 32) <= flip_row (ctl_i.d(47 downto 32), reg_i.xflip); + flipData(31 downto 16) <= flip_row (ctl_i.d(31 downto 16), reg_i.xflip); + flipData(15 downto 0) <= flip_row (ctl_i.d(15 downto 0), reg_i.xflip); + + process (clk) + + variable rowStore : std_logic_vector(47 downto 0); -- saved row of spt to show during visibile period + variable pel : std_logic_vector(2 downto 0); + variable x : unsigned(video_ctl.x'range); + variable y : unsigned(video_ctl.y'range); + variable yMat : boolean; -- raster is between first and last line of sprite + variable xMat : boolean; -- raster in between left edge and end of line + + -- the width of rowCount determines the scanline multipler + -- - eg. (4 downto 0) is 1:1 + -- (5 downto 0) is 2:1 (scan-doubling) + variable rowCount : std_logic_vector(3+PACE_VIDEO_V_SCALE downto 0); + + variable clut_i : integer range 0 to 31; + variable clut_entry : sprite_clut_entry_t; + variable pel_i : integer range 0 to 7; + variable pal_i : integer range 0 to 15; + variable pal_entry : palette_entry_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + + x := unsigned(reg_i.x); + y := unsigned(reg_i.y); + + if video_ctl.hblank = '1' then + + xMat := false; + -- stop sprites wrapping from bottom of screen + if unsigned(video_ctl.y) = 0 then + yMat := false; + end if; + + if y = unsigned(video_ctl.y) then + -- start counting sprite row + rowCount := (others => '0'); + yMat := true; + elsif rowCount(rowCount'left downto rowCount'left-4) = "10000" then + yMat := false; + end if; + + if ctl_i.ld = '1' then + if yMat then + rowStore := flipData; -- load sprite data + else + rowStore := (others => '0'); + end if; + end if; + + elsif video_ctl.stb = '1' then + + if unsigned(video_ctl.x) = x then + -- count up at left edge of sprite + rowCount := std_logic_vector(unsigned(rowCount) + 1); + xMat := true; + end if; + + if xMat then + -- shift in next pixel + pel := rowStore(32) & rowStore(16) & rowStore(0); + rowStore(47 downto 32) := '0' & rowStore(47 downto 33); + rowStore(31 downto 16) := '0' & rowStore(31 downto 17); + rowStore(15 downto 0) := '0' & rowStore(15 downto 1); + end if; + + end if; + + -- extract R,G,B from colour palette + clut_i := to_integer(unsigned(reg_i.colour(4 downto 0))); + clut_entry := sprite_clut(clut_i); + pel_i := to_integer(unsigned(pel)); + pal_i := to_integer(unsigned(clut_entry(pel_i))); + pal_entry := pal(16 + pal_i); + ctl_o.rgb.r <= pal_entry(0) & "0000"; + ctl_o.rgb.g <= pal_entry(1) & "0000"; + ctl_o.rgb.b <= pal_entry(2) & "0000"; + + -- set pixel transparency based on match + ctl_o.set <= '0'; + if xMat and yMat and (pel_i /= 0) then + ctl_o.set <= '1'; + end if; + + end if; -- clk_ena='1' + + -- generate sprite data address + ctl_o.a(ctl_o.a'left downto 14) <= (others => '0'); + ctl_o.a(13 downto 5) <= reg_i.n(8 downto 0); + -- - sprite data consists of 16 consecutive bytes for the 1st half + -- then the next 16 bytes for the 2nd half + -- - because we need to fetch an entire row at once + -- use dual-port memory to access both halves of each row + ctl_o.a(4) <= '0'; -- used for 1st/2nd port of dual-port memory + if reg_i.yflip = '1' then + ctl_o.a(3 downto 0) <= not rowCount(rowCount'left-1 downto rowCount'left-4); + else + ctl_o.a(3 downto 0) <= rowCount(rowCount'left-1 downto rowCount'left-4); + end if; + + end if; -- rising_edge(clk) + end process; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritereg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritereg.vhd new file mode 100644 index 00000000..0635ea3e --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritereg.vhd @@ -0,0 +1,62 @@ +Library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.sprite_pkg.all; + +entity sptReg is + + generic + ( + INDEX : natural + ); + port + ( + reg_i : in to_SPRITE_REG_t; + reg_o : out from_SPRITE_REG_t + ); + +end sptReg; + +architecture SYN of sptReg is + + alias clk : std_logic is reg_i.clk; + alias clk_ena : std_logic is reg_i.clk_ena; + +begin + + process (clk) + variable i : integer range 0 to 31; + begin + -- sprite registers $2020-$207F, 4 bytes per sprite + i := to_integer(unsigned(reg_i.a(6 downto 2))) - 32/4; + if rising_edge(clk) then + if i = INDEX then + if reg_i.wr = '1' then + case reg_i.a(1 downto 0) is + when "00" => + reg_o.y <= std_logic_vector(RESIZE(unsigned(reg_i.d), reg_o.y'length)); + when "01" => + reg_o.yflip <= not reg_i.d(7); + reg_o.xflip <= not reg_i.d(6); + reg_o.n(8) <= reg_i.d(5); + reg_o.colour <= std_logic_vector(RESIZE(unsigned(reg_i.d(4 downto 0)), + reg_o.colour'length)); + when "10" => + reg_o.n(7 downto 0) <= reg_i.d; + when others => + reg_o.x <= std_logic_vector(RESIZE(unsigned(reg_i.d), reg_o.x'length)); + end case; + end if; + end if; + end if; + end process; + + -- usused bits + reg_o.n(reg_o.n'left downto 9) <= (others => '0'); + + reg_o.pri <= '1'; + +end SYN; + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprom.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprom.vhd new file mode 100644 index 00000000..292a214f --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprom.vhd @@ -0,0 +1,83 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY sprom IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END sprom; + + +ARCHITECTURE SYN OF sprom IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_aclr_a : STRING; + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_aclr_a => "NONE", + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "ROM", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + clock0 => clock, + address_a => address, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/target_top.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/target_top.vhd new file mode 100644 index 00000000..cfd9a682 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/target_top.vhd @@ -0,0 +1,107 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; + +entity target_top is + port( + vma : out std_logic; + clk_sys : in std_logic; + clk_vid : in std_logic; + reset_in : in std_logic; + snd_l : out std_logic_vector(7 downto 0); + snd_r : out std_logic_vector(7 downto 0); + vid_hs : out std_logic; + vid_vs : out std_logic; + vid_hb : out std_logic; + vid_vb : out std_logic; + vid_r : out std_logic_vector(3 downto 0); + vid_g : out std_logic_vector(3 downto 0); + vid_b : out std_logic_vector(3 downto 0); + inputs_p1 : in std_logic_vector(7 downto 0); + inputs_p2 : in std_logic_vector(7 downto 0); + inputs_sys : in std_logic_vector(7 downto 0); + inputs_dip1 : in std_logic_vector(7 downto 0); + inputs_dip2 : in std_logic_vector(7 downto 0); + cpu_rom_addr : out std_logic_vector(15 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + tile_rom_addr : out std_logic_vector(12 downto 0); + tile_rom_do : in std_logic_vector(15 downto 0) + ); + +end target_top; + +architecture SYN of target_top is + + signal clkrst_i : from_CLKRST_t; + signal video_i : from_VIDEO_t; + signal video_o : to_VIDEO_t; + signal audio_i : from_AUDIO_t; + signal audio_o : to_AUDIO_t; + signal platform_i : from_PLATFORM_IO_t; + signal platform_o : to_PLATFORM_IO_t; + + +begin + +clkrst_i.clk(0) <=clk_sys; +clkrst_i.clk(1) <= clk_vid; +clkrst_i.arst <= reset_in; +clkrst_i.arst_n <= not clkrst_i.arst; + +video_i.clk <= clk_vid; +video_i.clk_ena <= '1'; +video_i.reset <= reset_in; + + GEN_RESETS : for i in 0 to 3 generate + + process (clkrst_i.clk(i), clkrst_i.arst) + variable rst_r : std_logic_vector(2 downto 0) := (others => '0'); + begin + if clkrst_i.arst = '1' then + rst_r := (others => '1'); + elsif rising_edge(clkrst_i.clk(i)) then + rst_r := rst_r(rst_r'left-1 downto 0) & '0'; + end if; + clkrst_i.rst(i) <= rst_r(rst_r'left); + end process; + + end generate GEN_RESETS; + +vid_r <= video_o.rgb.r(9 downto 6); +vid_g <= video_o.rgb.g(9 downto 6); +vid_b <= video_o.rgb.b(9 downto 6); +vid_hs <= video_o.hsync; +vid_vs <= video_o.vsync; +vid_hb <= video_o.hblank; +vid_vb <= video_o.vblank; +snd_l <= audio_o.ldata(15 downto 8); +snd_r <= audio_o.rdata(15 downto 8); + + pace_inst : entity work.pace + port map( + clkrst_i => clkrst_i, + vma => vma, + inputs_p1 => inputs_p1, + inputs_p2 => inputs_p2, + inputs_sys => inputs_sys, + inputs_dip1 => inputs_dip1, + inputs_dip2 => inputs_dip2, + video_i => video_i, + video_o => video_o, + audio_i => audio_i, + audio_o => audio_o, + platform_i => platform_i, + platform_o => platform_o, + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do, + tile_rom_addr => tile_rom_addr, + tile_rom_do => tile_rom_do + ); + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl.vhd new file mode 100644 index 00000000..1b541124 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl.vhd @@ -0,0 +1,111 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.platform_pkg.all; +use work.video_controller_pkg.all; + +-- +-- SonSon Tilemap Controller +-- + +architecture TILEMAP_1 of tilemapCtl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + alias stb : std_logic is video_ctl.stb; + alias hblank : std_logic is video_ctl.hblank; + alias vblank : std_logic is video_ctl.vblank; + alias x : std_logic_vector(video_ctl.x'range) is video_ctl.x; + alias y : std_logic_vector(video_ctl.y'range) is video_ctl.y; + + alias scroll : std_logic_vector(7 downto 0) is graphics_i.bit8(0); + +begin + + -- these are constant for a whole line + ctl_o.map_a(ctl_o.map_a'left downto 10) <= (others => '0'); + ctl_o.map_a(9 downto 5) <= y(7 downto 3); + ctl_o.tile_a(ctl_o.tile_a'left downto 13) <= (others => '0'); + ctl_o.tile_a(2 downto 0) <= y(2 downto 0); + + -- generate attribute RAM address (same, different memory bank) + ctl_o.attr_a(ctl_o.map_a'left downto 10) <= (others => '0'); + ctl_o.attr_a(9 downto 5) <= y(7 downto 3); + + -- generate pixel + process (clk, clk_ena) + + variable x_adj : unsigned(x'range); + variable tile_d_r : std_logic_vector(15 downto 0); + variable attr_d_r : std_logic_vector(7 downto 0); + variable map_d_r : std_logic_vector(7 downto 0); + variable pel : std_logic_vector(1 downto 0); + + variable clut_i : integer range 0 to 63; + variable clut_entry : tile_clut_entry_t; + variable pel_i : integer range 0 to 3; + variable pal_i : integer range 0 to 255; + variable pal_entry : palette_entry_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + + -- video is clipped left and right (only 224 wide) + if unsigned(y) < 40 then + x_adj := unsigned(x); + else + x_adj := unsigned(x) + unsigned(scroll); + end if; + + -- 1st stage of pipeline + -- - read tile from tilemap + -- - read attribute data + if stb = '1' then + ctl_o.map_a(4 downto 0) <= std_logic_vector(x_adj(7 downto 3)); + ctl_o.attr_a(4 downto 0) <= std_logic_vector(x_adj(7 downto 3)); + end if; + + -- 2nd stage of pipeline + -- - read tile data from tile ROM + if stb = '1' then + if x_adj(2 downto 0) = "001" then + attr_d_r := ctl_i.attr_d(attr_d_r'range); + --map_d_r := ctl_i.map_d(map_d_r'range); + end if; + end if; + ctl_o.tile_a(12 downto 11) <= attr_d_r(1 downto 0); + ctl_o.tile_a(10 downto 3) <= ctl_i.map_d(7 downto 0); + + if stb = '1' then + if x_adj(2 downto 0) = "010" then + tile_d_r := ctl_i.tile_d(tile_d_r'range); + else + tile_d_r(15 downto 8) := tile_d_r(14 downto 8) & '0'; + tile_d_r(7 downto 0) := tile_d_r(6 downto 0) & '0'; + end if; + end if; + -- 1 bit from each byte + pel := tile_d_r(15) & tile_d_r(7); + + -- extract R,G,B from colour palette + clut_i := to_integer(unsigned(attr_d_r(7 downto 2))); + clut_entry := tile_clut(clut_i); + pel_i := to_integer(unsigned(pel)); + pal_i := to_integer(unsigned(clut_entry(pel_i))); + pal_entry := pal(pal_i); + ctl_o.rgb.r <= pal_entry(0) & "0000"; + ctl_o.rgb.g <= pal_entry(1) & "0000"; + ctl_o.rgb.b <= pal_entry(2) & "0000"; + + ctl_o.set <= '1'; + + end if; -- clk_ena + end if; + end process; + +end TILEMAP_1; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl_e.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl_e.vhd new file mode 100644 index 00000000..ddb64495 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl_e.vhd @@ -0,0 +1,28 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.platform_pkg.all; +use work.video_controller_pkg.all; + +entity tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity tilemapCtl; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller.vhd new file mode 100644 index 00000000..14da0c20 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller.vhd @@ -0,0 +1,455 @@ +library IEEE; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.video_controller_pkg.all; + +entity pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + L_CROP : integer range 0 to 255; + R_CROP : integer range 0 to 255; + H_SCALE : integer; + V_SCALE : integer; + H_SYNC_POL : std_logic := '1'; + V_SYNC_POL : std_logic := '1'; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : out from_VIDEO_CTL_t; + + -- video output control & data + video_o : out to_VIDEO_t + ); +end pace_video_controller; + +architecture SYN of pace_video_controller is + + constant SIM_DELAY : time := 2 ns; + + constant VIDEO_H_SIZE : integer := H_SIZE * H_SCALE; + constant VIDEO_V_SIZE : integer := V_SIZE * V_SCALE; + + subtype reg_t is integer range 0 to 2047; + + alias clk : std_logic is video_i.clk; + alias clk_ena : std_logic is video_i.clk_ena; + alias reset : std_logic is video_i.reset; + + -- registers + signal h_front_porch_r : reg_t := 0; + signal h_sync_r : reg_t := 0; + signal h_back_porch_r : reg_t := 0; + signal h_border_r : reg_t := 0; + signal h_video_r : reg_t := 0; + signal v_front_porch_r : reg_t := 0; + signal v_sync_r : reg_t := 0; + signal v_back_porch_r : reg_t := 0; + signal v_border_r : reg_t := 0; + signal v_video_r : reg_t := 0; + + signal border_rgb_r : RGB_t := ((others=>'0'), (others=>'0'), (others=>'0')); + + -- derived values + signal h_sync_start : reg_t := 0; + signal h_back_porch_start : reg_t := 0; + signal h_left_border_start : reg_t := 0; + signal h_video_start : reg_t := 0; + signal h_right_border_start : reg_t := 0; + signal h_line_end : reg_t := 0; + signal v_sync_start : reg_t := 0; + signal v_back_porch_start : reg_t := 0; + signal v_top_border_start : reg_t := 0; + signal v_video_start : reg_t := 0; + signal v_bottom_border_start : reg_t := 0; + signal v_screen_end : reg_t := 0; + + signal hsync_s : std_logic := '0'; + signal vsync_s : std_logic := '0'; + signal hactive_s : std_logic := '0'; + signal vactive_s : std_logic := '0'; + signal hblank_s : std_logic := '0'; + signal vblank_s : std_logic := '0'; + + subtype count_t is integer range 0 to 2047; + signal x_count : count_t := 0; + signal y_count : count_t := 0; + + signal x_s : unsigned(10 downto 0) := (others => '0'); + signal y_s : unsigned(10 downto 0) := (others => '0'); + + --signal extended_reset : std_logic := '1'; + alias extended_reset : std_logic is video_i.reset; + +begin + + -- registers + reg_proc: process (reset, clk) + + begin + --if reset = '1' then + case CONFIG is + + when PACE_VIDEO_VGA_240x320_60Hz => + -- P3M, clk=11.136MHz, clk_ena=5.568MHz + h_front_porch_r <= 272-240; + h_sync_r <= 5; + h_back_porch_r <= 22; + h_border_r <= (240-VIDEO_H_SIZE)/2; + v_front_porch_r <= 326-320; + v_sync_r <= 1; + v_back_porch_r <= 5; + v_border_r <= (320-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_320x480_60Hz => + -- VGA, clk=12.588MHz + --# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio + --Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan + h_front_porch_r <= 16; + h_sync_r <= 48; + h_back_porch_r <= 16; + h_border_r <= (320-VIDEO_H_SIZE)/2; + v_front_porch_r <= (5*2); + v_sync_r <= (1*2); + v_back_porch_r <= (16*2); + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_640x480_60Hz => + -- VGA, clk=25.175MHz + h_front_porch_r <= 16; + h_sync_r <= 96; + h_back_porch_r <= 48; + h_border_r <= (640-VIDEO_H_SIZE)/2; + v_front_porch_r <= 10; + v_sync_r <= 2; + v_back_porch_r <= 33; + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_800x600_60Hz => + -- SVGA, clk=40MHz + h_front_porch_r <= 40; + h_sync_r <= 128; + h_back_porch_r <= 88; + h_border_r <= (800-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 4; + v_back_porch_r <= 23; + v_border_r <= (600-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1024x768_60Hz => + -- XVGA, clk=65MHz + h_front_porch_r <= 24; + h_sync_r <= 136; + h_back_porch_r <= 160; + h_border_r <= (1024-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 6; + v_back_porch_r <= 29; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1366x768_60Hz => + -- XVGA(NAVICO ROCKY), clk=72MHz + h_front_porch_r <= 88; --64; + h_sync_r <= 44; --112; + h_back_porch_r <= 148; --248; + h_border_r <= (1366-VIDEO_H_SIZE)/2; + v_front_porch_r <= 4; --3; + v_sync_r <= 5; --6; + v_back_porch_r <= 36; --18; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x800_60Hz => + -- Sentinel Mode 36, clk=103.2MHz + h_front_porch_r <= 64; + h_sync_r <= 32; + h_back_porch_r <= 362-32-64; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 4; + v_back_porch_r <= 38-4-3; + v_border_r <= (800-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x1024_60Hz => + -- SXGA, clk=108MHz + h_front_porch_r <= 48; + h_sync_r <= 112; + h_back_porch_r <= 248; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 38; + v_border_r <= (1024-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1680x1050_60Hz => + -- WSXGA+, clk=147.14MHz + h_front_porch_r <= 104; + h_sync_r <= 184; + h_back_porch_r <= 288; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 33; + -- WSXGA+, clk=118MHz + --h_front_porch_r <= 48; + --h_sync_r <= 32; + --h_back_porch_r <= 80; + --v_front_porch_r <= 3; + --v_sync_r <= 6; + --v_back_porch_r <= 21; + h_border_r <= (1680-VIDEO_H_SIZE)/2; + v_border_r <= (1050-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz => + -- arcade standard resolution, clk=7.16MHz + h_front_porch_r <= 34; + h_sync_r <= 34; + h_back_porch_r <= 51; + h_border_r <= (336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64 => + -- arcade standard resolution, clk=28.64MHz + h_front_porch_r <= 4*34; + h_sync_r <= 4*34; + h_back_porch_r <= 4*51; + h_border_r <= 4*(336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_CVBS_720x288p_50Hz => + -- generic composite, clk=13.5MHz + h_front_porch_r <= (8+12); + h_sync_r <= 64; + h_back_porch_r <= (144-64-(8+12)); + h_border_r <= (720-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 20; + v_border_r <= (288-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_LCM_320x240_60Hz => + -- DE1/2, clk=18MHz + h_front_porch_r <= 59; + h_sync_r <= 1; + h_back_porch_r <= 151; + h_border_r <= (320-VIDEO_H_SIZE)*3/2; + v_front_porch_r <= 8; + v_sync_r <= 1; + v_back_porch_r <= 13; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when others => + null; + end case; + + h_video_r <= VIDEO_H_SIZE; + v_video_r <= VIDEO_V_SIZE; + border_rgb_r <= BORDER_RGB; + + --end if; + end process reg_proc; + + -- register some arithmetic + init_proc: process (reset, clk, clk_ena) + begin + if reset = '1' then + null; + elsif rising_edge(clk) then + h_sync_start <= h_front_porch_r - 1; + h_back_porch_start <= h_sync_start + h_sync_r; + h_left_border_start <= h_back_porch_start + h_back_porch_r; + h_video_start <= h_left_border_start + h_border_r; + h_right_border_start <= h_video_start + h_video_r; + h_line_end <= h_right_border_start + h_border_r; + v_sync_start <= v_front_porch_r - 1; + v_back_porch_start <= v_sync_start + v_sync_r; + v_top_border_start <= v_back_porch_start + v_back_porch_r; + v_video_start <= v_top_border_start + v_border_r; + v_bottom_border_start <= v_video_start + v_video_r; + v_screen_end <= v_bottom_border_start + v_border_r; + end if; + end process init_proc; + + reset_proc: process (reset, clk) + variable count_v : integer; + begin + if reset = '1' then + --extended_reset <= '1'; + count_v := 7; + elsif rising_edge(clk) then + if count_v = 0 then + --extended_reset <= '0'; + else + count_v := count_v - 1; + end if; + end if; + end process reset_proc; + + -- video control outputs + timer_proc: process (extended_reset, clk, clk_ena) + begin + if extended_reset = '1' then + hblank_s <= '1'; + vblank_s <= '1'; + hactive_s <= '0'; + vactive_s <= '0'; + hsync_s <= not H_SYNC_POL; + x_count <= 0; + y_count <= 0; + elsif rising_edge(clk) and clk_ena = '1' then + if x_count = h_line_end then + hblank_s <= '1'; + hactive_s <= '0'; -- for 0 borders + if y_count = v_screen_end then + vblank_s <= '1'; + vactive_s <= '0'; -- for 0 borders + y_count <= 0; + else + y_s <= y_s + 1; + if y_count = v_sync_start then + vsync_s <= V_SYNC_POL; + elsif y_count = v_back_porch_start then + vsync_s <= not V_SYNC_POL; + elsif y_count = v_video_start then + vblank_s <= '0'; -- for 0 borders + vactive_s <= '1'; + y_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif y_count = v_top_border_start then + vblank_s <= '0'; + elsif y_count = v_bottom_border_start then + vactive_s <= '0'; + end if; + y_count <= y_count + 1; + end if; + x_count <= 0; + else + x_s <= x_s + 1; + if x_count = h_sync_start then + hsync_s <= H_SYNC_POL; + elsif x_count = h_back_porch_start then + hsync_s <= not H_SYNC_POL; + elsif x_count = h_video_start then + hblank_s <= '0'; -- for 0 borders + hactive_s <= '1'; + x_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif x_count = h_left_border_start then + hblank_s <= '0'; + elsif x_count = h_right_border_start then + hactive_s <= '0'; + end if; + x_count <= x_count + 1; + end if; + end if; -- rising_edge(clk) and clk_ena = '1' + end process timer_proc; + + -- pass-through for tile/bitmap & sprite controllers + video_ctl_o.clk <= clk; + video_ctl_o.clk_ena <= clk_ena; + + -- for video DACs and TFT output + video_o.clk <= clk; + + BLK_VIDEO_O : block + + constant PIPELINE_DELAY : natural := DELAY+1; + + -- won't synthesize correctly under ISE if these are variables + signal hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + signal vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + + begin + + video_o_proc: process (extended_reset, clk, clk_ena) + variable hsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable hblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + alias hsync_v : std_logic is hsync_v_r(hsync_v_r'left); + alias vsync_v : std_logic is vsync_v_r(vsync_v_r'left); + alias hactive_v : std_logic is hactive_v_r(hactive_v_r'left); + alias vactive_v : std_logic is vactive_v_r(vactive_v_r'left); + alias hblank_v : std_logic is hblank_v_r(hblank_v_r'left); + alias vblank_v : std_logic is vblank_v_r(vblank_v_r'left); + variable stb_cnt_v : unsigned(3 downto 0); -- up to 16x scaling + begin + if extended_reset = '1' then + hsync_v_r := (others => not H_SYNC_POL); + vsync_v_r := (others => not V_SYNC_POL); + hactive_v_r <= (others => '0'); + vactive_v_r <= (others => '0'); + hblank_v_r := (others => '0'); + vblank_v_r := (others => '0'); + stb_cnt_v := (others => '1'); + elsif rising_edge(clk) and clk_ena = '1' then + + -- register control signals and handle scaling + video_ctl_o.hblank <= not hactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + video_ctl_o.vblank <= not vactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + -- handle scaling + video_ctl_o.stb <= stb_cnt_v(H_SCALE-1) after SIM_DELAY; + if hactive_s = '1' and vactive_s = '1' then + stb_cnt_v := stb_cnt_v + 2; + elsif hblank_s = '0' and vblank_s = '0' then + stb_cnt_v := (others => '1'); + end if; + video_ctl_o.x <= std_logic_vector(resize(x_s(x_s'left downto H_SCALE-1), video_ctl_o.x'length)) after SIM_DELAY; + video_ctl_o.y <= std_logic_vector(resize(y_s(y_s'left downto V_SCALE-1), video_ctl_o.y'length)) after SIM_DELAY; + + -- register video outputs + if hactive_v = '1' and vactive_v = '1' then + -- active video + if x_s(x_s'left downto H_SCALE-1) < (L_CROP + PIPELINE_DELAY) or + x_s(x_s'left downto H_SCALE-1) >= (H_SIZE - R_CROP + PIPELINE_DELAY) then + video_o.rgb <= RGB_BLACK after SIM_DELAY; + else + video_o.rgb <= rgb_i after SIM_DELAY; + end if; + elsif hblank_v = '0' and vblank_v = '0' then + -- border + video_o.rgb <= border_rgb_r after SIM_DELAY; + else + video_o.rgb.r <= (others => '0') after SIM_DELAY; + video_o.rgb.g <= (others => '0') after SIM_DELAY; + video_o.rgb.b <= (others => '0') after SIM_DELAY; + end if; + video_o.hsync <= hsync_v after SIM_DELAY; + video_o.vsync <= vsync_v after SIM_DELAY; + video_o.hblank <= hblank_v after SIM_DELAY; + video_o.vblank <= vblank_v after SIM_DELAY; + -- pipelined signals + hsync_v_r := hsync_v_r(hsync_v_r'left-1 downto 0) & hsync_s; + vsync_v_r := vsync_v_r(vsync_v_r'left-1 downto 0) & vsync_s; + hactive_v_r <= hactive_v_r(hactive_v_r'left-1 downto 0) & hactive_s; + vactive_v_r <= vactive_v_r(vactive_v_r'left-1 downto 0) & vactive_s; + hblank_v_r := hblank_v_r(hblank_v_r'left-1 downto 0) & hblank_s; + vblank_v_r := vblank_v_r(vblank_v_r'left-1 downto 0) & vblank_s; + end if; + end process video_o_proc; + + end block BLK_VIDEO_O; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg.vhd new file mode 100644 index 00000000..183bfe23 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg.vhd @@ -0,0 +1,229 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +package video_controller_pkg is + + type PACEVideoController_t is + ( + PACE_VIDEO_NONE, -- PACE video controller not used + PACE_VIDEO_VGA_240x320_60Hz, -- P3M video + PACE_VIDEO_VGA_320x480_60Hz, -- for 320x200 (12.588MHz) + PACE_VIDEO_VGA_640x480_60Hz, -- generic VGA (25.175MHz) + PACE_VIDEO_VGA_800x600_60Hz, -- generic VGA (40MHz) + PACE_VIDEO_VGA_1024x768_60Hz, -- XVGA (65MHz) + PACE_VIDEO_VGA_1366x768_60Hz, -- (NAVICO ROCKY) (72MHz) + PACE_VIDEO_VGA_1280x800_60Hz, -- Sentinel Mode 36 + PACE_VIDEO_VGA_1280x1024_60Hz, -- SXGA (108MHz) + PACE_VIDEO_VGA_1680x1050_60Hz, -- WSXGA+ (147MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz, -- arcade std resolution (7.16MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64, -- arcade std resolution (28.64MHz) + PACE_VIDEO_CVBS_720x288p_50Hz, -- generic composite + PACE_VIDEO_LCM_320x240_60Hz -- DE2 LCD + ); + + type PACEVideoDisplay_t is + ( + PACE_DISPLAY_NONE, + PACE_DISPLAY_VGA, + PACE_DISPLAY_CVBS, + PACE_DISPLAY_TFT + ); + + type RGB_t is record + r : std_logic_vector(9 downto 0); + g : std_logic_vector(9 downto 0); + b : std_logic_vector(9 downto 0); + end record; + + type RGB_a is array (natural range <>) of RGB_t; + + function NULL_RGB return RGB_t; + + constant RGB_BLACK : RGB_t := ((others=>'0'),(others=>'0'),(others=>'0')); + constant RGB_RED : RGB_t := ((others=>'1'),(others=>'0'),(others=>'0')); + constant RGB_GREEN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'0')); + constant RGB_YELLOW : RGB_t := ((others=>'1'),(others=>'1'),(others=>'0')); + constant RGB_BLUE : RGB_t := ((others=>'0'),(others=>'0'),(others=>'1')); + constant RGB_MAGENTA : RGB_t := ((others=>'1'),(others=>'0'),(others=>'1')); + constant RGB_CYAN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'1')); + constant RGB_WHITE : RGB_t := ((others=>'1'),(others=>'1'),(others=>'1')); + + type VIDEO_REG_t is record + h_scale : std_logic_vector(2 downto 0); + v_scale : std_logic_vector(2 downto 0); + end record; + + type from_VIDEO_t is record + clk : std_logic; + clk_ena : std_logic; + reset : std_logic; + end record; + + type to_VIDEO_t is record + clk : std_logic; + rgb : rgb_t; + hsync : std_logic; + vsync : std_logic; + hblank : std_logic; + vblank : std_logic; + de : std_logic; + end record; + + type from_VIDEO_CTL_t is record + clk : std_logic; + clk_ena : std_logic; + stb : std_logic; + hblank : std_logic; + vblank : std_logic; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + end record; + + subtype BITMAP_D_t is std_logic_vector(23 downto 0); + subtype BITMAP_A_t is std_logic_vector(15 downto 0); + + type to_BITMAP_CTL_t is record + d : BITMAP_D_t; + end record; + + type to_BITMAP_CTL_a is array (natural range <>) of to_BITMAP_CTL_t; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t; + + type from_BITMAP_CTL_t is record + a : BITMAP_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_BITMAP_CTL_a is array (natural range <>) of from_BITMAP_CTL_t; + + subtype TILEMAP_D_t is std_logic_vector(15 downto 0); + subtype TILEMAP_A_t is std_logic_vector(15 downto 0); + subtype TILE_A_t is std_logic_vector(16 downto 0); + subtype TILE_D_t is std_logic_vector(23 downto 0); + subtype ATTR_A_t is std_logic_vector(15 downto 0); + subtype ATTR_D_t is std_logic_vector(15 downto 0); + + type to_TILEMAP_CTL_t is record + map_d : TILEMAP_D_t; + tile_d : TILE_D_t; + attr_d : ATTR_D_t; + end record; + + type to_TILEMAP_CTL_a is array (natural range <>) of to_TILEMAP_CTL_t; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t; + + type from_TILEMAP_CTL_t is record + map_a : TILEMAP_A_t; + tile_a : TILE_A_t; + attr_a : ATTR_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_TILEMAP_CTL_a is array (natural range <>) of from_TILEMAP_CTL_t; + + subtype PAL_ENTRY_t is std_logic_vector(15 downto 0); + type PAL_A_t is array (natural range <>) of PAL_ENTRY_t; + + subtype BYTE_t is std_logic_vector(7 downto 0); + type BYTE_A_t is array (natural range <>) of BYTE_t; + + subtype WORD_t is std_logic_vector(15 downto 0); + type WORD_A_t is array (natural range <>) of WORD_t; + + type to_GRAPHICS_t is record + pal : PAL_A_t(0 to 15); + -- for various uses + bit8 : BYTE_A_t(0 to 7); + bit16 : WORD_A_t(0 to 3); + -- 'native' graphics stream + hsync : std_logic; + vsync : std_logic; + rgb : RGB_t; + end record; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t; + + type from_GRAPHICS_t is record + y : std_logic_vector(10 downto 0); + hblank : std_logic; + vblank : std_logic; + end record; + + component pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + --H_SCALE : integer; + --V_SCALE : integer; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : from_VIDEO_CTL_t; + + -- Outputs to video + video_o : out to_VIDEO_t + ); + end component pace_video_controller; + + component tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component tilemapCtl; + + component bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component bitmapCtl; + +end package video_controller_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg_body.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg_body.vhd new file mode 100644 index 00000000..996e5867 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg_body.vhd @@ -0,0 +1,29 @@ +library work; +--use work.pace_pkg.all; + +package body video_controller_pkg is + + function NULL_RGB return RGB_t is + begin + return (others => (others => '0')); + end NULL_RGB; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t is + begin + return (others => (others => '0')); + end NULL_TO_BITMAP_CTL; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t is + begin + return ((others => '0'), (others => '0'), (others => '0')); + end NULL_TO_TILEMAP_CTL; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t is + begin + return ((others => (others => '0')), + (others => (others => '0')), + (others => (others => '0')), + '0', '0', NULL_RGB); + end NULL_TO_GRAPHICS; + +end package body video_controller_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_mixer.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_mixer.vhd new file mode 100644 index 00000000..fb4b4aa4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_mixer.vhd @@ -0,0 +1,66 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity pace_video_mixer is + port + ( + --bitmap_rgb : in RGB_t; + --bitmap_set : in std_logic; + bitmap_ctl_o : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_o : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + sprite_rgb : in RGB_t; + sprite_set : in std_logic; + sprite_pri : in std_logic; + + video_ctl_i : in from_VIDEO_CTL_t; + graphics_i : in to_GRAPHICS_t; + rgb_o : out RGB_t + ); +end entity pace_video_mixer; + +architecture SYN of pace_video_mixer is + signal bg_rgb : RGB_t; +begin + + GEN_BITMAPS : + if PACE_VIDEO_NUM_BITMAPS = 1 generate + bg_rgb <= bitmap_ctl_o(1).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 2 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 3 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb when bitmap_ctl_o(2).set = '1' else + bitmap_ctl_o(3).rgb when bitmap_ctl_o(3).set = '1' else + (others => (others => '0')); + else generate + bg_rgb <= (others => (others => '0')); + end generate GEN_BITMAPS; + + GEN_TILEMAPS : + if PACE_VIDEO_NUM_TILEMAPS = 1 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + elsif PACE_VIDEO_NUM_TILEMAPS = 2 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + tilemap_ctl_o(2).rgb when tilemap_ctl_o(2).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + else generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + end generate GEN_TILEMAPS; + +end architecture SYN;