mirror of
https://github.com/Gehstock/Mist_FPGA.git
synced 2026-03-27 18:20:29 +00:00
Add Star Jacker Project Files
This commit is contained in:
@@ -43,28 +43,6 @@ 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 SYSTEMVERILOG_FILE rtl/Flicky_MiST.sv
|
||||
set_global_assignment -name VERILOG_FILE rtl/FPGA_FLICKY.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickyMAIN.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickyVIDEO.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickySND.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/z80ip.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickySPRITE.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/parts.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/hvgen.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/SN76496.v
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv
|
||||
set_global_assignment -name VERILOG_FILE rtl/pll_mist.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_1B.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_11B.v
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/dec_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/prg_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/snd_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/clut.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/spr_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/tile1.vhd
|
||||
set_global_assignment -name QIP_FILE ../../common/mist/mist.qip
|
||||
set_global_assignment -name QIP_FILE ../../common/CPU/T80/T80.qip
|
||||
|
||||
# Pin & Location Assignments
|
||||
# ==========================
|
||||
@@ -244,4 +222,26 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -
|
||||
|
||||
# end ENTITY(Flicky_MiST)
|
||||
# -----------------------
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE rtl/Flicky_MiST.sv
|
||||
set_global_assignment -name VERILOG_FILE rtl/FPGA_FLICKY.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickyMAIN.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickyVIDEO.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickySND.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/z80ip.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickySPRITE.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/parts.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/hvgen.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/SN76496.v
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv
|
||||
set_global_assignment -name VERILOG_FILE rtl/pll_mist.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_1B.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_11B.v
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/dec_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/prg_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/snd_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/clut.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/spr_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/tile1.vhd
|
||||
set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip
|
||||
set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
||||
@@ -46,11 +46,20 @@ wire SNDRQ;
|
||||
|
||||
FlickyMAIN Main (
|
||||
.RESET(reset),
|
||||
.INP0(INP0),.INP1(INP1),.INP2(INP2),
|
||||
.DSW0(DSW0),.DSW1(DSW1),
|
||||
.CLK48M(clk48M),.CLK3M(clk3M),
|
||||
.CPUCLn(CPUCLn),.CPUAD(CPUAD),.CPUDO(CPUDO),.CPUWR(CPUWR),
|
||||
.VBLK(VBLK),.VIDCS(VIDCS),.VIDDO(VIDDO),
|
||||
.INP0(INP0),
|
||||
.INP1(INP1),
|
||||
.INP2(INP2),
|
||||
.DSW0(DSW0),
|
||||
.DSW1(DSW1),
|
||||
.CLK48M(clk48M),
|
||||
.CLK3M(clk3M),
|
||||
.CPUCLn(CPUCLn),
|
||||
.CPUAD(CPUAD),
|
||||
.CPUDO(CPUDO),
|
||||
.CPUWR(CPUWR),
|
||||
.VBLK(VBLK),
|
||||
.VIDCS(VIDCS),
|
||||
.VIDDO(VIDDO),
|
||||
.SNDRQ(SNDRQ),
|
||||
.cpu_rom_addr(cpu_rom_addr),
|
||||
.cpu_rom_do(cpu_rom_do)
|
||||
@@ -67,7 +76,6 @@ FlickyVIDEO Video (
|
||||
.VBLK(VBLK),
|
||||
.RGB8(POUT),
|
||||
.PALDSW(1'b0),
|
||||
|
||||
.cpu_cl(CPUCLn),
|
||||
.cpu_ad(CPUAD),
|
||||
.cpu_wr(CPUWR),
|
||||
@@ -83,8 +91,13 @@ assign PCLK = clk6M;
|
||||
|
||||
// Sound
|
||||
FlickySND Sound(
|
||||
clk8M, reset, CPUDO, SNDRQ, SOUT,
|
||||
snd_rom_addr, snd_rom_do
|
||||
.clk8M(clk8M),
|
||||
.reset(reset),
|
||||
.sndno(CPUDO),
|
||||
.sndstart(SNDRQ),
|
||||
.sndout(SOUT),
|
||||
.snd_rom_addr(snd_rom_addr),
|
||||
.snd_rom_do(snd_rom_do)
|
||||
);
|
||||
|
||||
wire [8:0] HPOS;
|
||||
@@ -1,534 +0,0 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all,ieee.numeric_std.all;
|
||||
|
||||
entity tile1 is
|
||||
port (
|
||||
clk : in std_logic;
|
||||
addr : in std_logic_vector(12 downto 0);
|
||||
data : out std_logic_vector(7 downto 0)
|
||||
);
|
||||
end entity;
|
||||
|
||||
architecture prom of tile1 is
|
||||
type rom is array(0 to 8191) of std_logic_vector(7 downto 0);
|
||||
signal rom_data: rom := (
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00",
|
||||
X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"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"80",X"C0",X"E0",X"E0",X"E7",X"E7",X"E7",X"FF",X"00",X"00",X"80",X"80",X"E7",X"E7",X"E7",
|
||||
X"FF",X"01",X"03",X"87",X"87",X"E7",X"E7",X"E7",X"FF",X"00",X"00",X"80",X"80",X"FF",X"FF",X"FF",
|
||||
X"BF",X"A7",X"A7",X"A7",X"A7",X"A7",X"A7",X"A7",X"FF",X"A7",X"A6",X"A1",X"A1",X"BF",X"BF",X"FF",
|
||||
X"BF",X"27",X"3E",X"C1",X"C1",X"FF",X"FF",X"FF",X"BF",X"E7",X"67",X"87",X"87",X"FF",X"FF",X"FF",
|
||||
X"81",X"C3",X"A7",X"A7",X"A7",X"A7",X"A7",X"A7",X"BF",X"A7",X"A7",X"A7",X"A7",X"A7",X"BF",X"FF",
|
||||
X"FF",X"C0",X"C0",X"C0",X"C0",X"FF",X"FF",X"FF",X"FF",X"01",X"03",X"83",X"83",X"FF",X"FF",X"FF",
|
||||
X"BF",X"A6",X"A4",X"A2",X"A2",X"A7",X"A7",X"A7",X"BF",X"E7",X"27",X"87",X"87",X"E7",X"A7",X"A7",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"FF",X"FF",X"FF",X"F1",X"E1",X"E1",X"C1",X"C1",X"C1",X"C1",X"C1",X"FD",X"FD",X"C1",X"C1",X"C1",
|
||||
X"C1",X"C1",X"C1",X"C1",X"C1",X"C1",X"FF",X"FF",X"BF",X"EF",X"FB",X"9D",X"8D",X"8E",X"86",X"86",
|
||||
X"86",X"86",X"86",X"BE",X"BE",X"86",X"86",X"86",X"86",X"86",X"86",X"86",X"86",X"86",X"FE",X"FE",
|
||||
X"FF",X"F0",X"E6",X"E8",X"D0",X"D0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",
|
||||
X"A0",X"A0",X"A0",X"A0",X"A0",X"BE",X"80",X"FF",X"FF",X"0F",X"67",X"17",X"0B",X"0B",X"05",X"05",
|
||||
X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"7D",X"01",X"FF",
|
||||
X"EB",X"FE",X"5F",X"F9",X"B1",X"71",X"F1",X"A1",X"C1",X"C1",X"C1",X"C2",X"C6",X"C4",X"C2",X"C1",
|
||||
X"C1",X"C1",X"C1",X"C1",X"C1",X"C1",X"FF",X"FE",X"B4",X"DB",X"F6",X"3F",X"18",X"1F",X"1E",X"0A",
|
||||
X"06",X"06",X"06",X"86",X"C6",X"46",X"86",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"FE",X"F9",
|
||||
X"FF",X"F0",X"E0",X"E0",X"E0",X"C0",X"C0",X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
|
||||
X"80",X"C0",X"C0",X"E0",X"E0",X"E0",X"F0",X"FF",X"F7",X"37",X"2B",X"2B",X"25",X"25",X"22",X"22",
|
||||
X"21",X"21",X"31",X"31",X"31",X"21",X"21",X"21",X"22",X"22",X"25",X"25",X"2B",X"2B",X"37",X"E7",
|
||||
X"FF",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"83",X"84",X"84",X"84",X"80",X"84",X"83",X"80",
|
||||
X"80",X"80",X"80",X"80",X"80",X"80",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"20",X"20",X"20",X"20",X"C0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",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"74",X"44",X"64",X"44",X"47",X"10",X"00",X"00",X"4D",X"55",X"51",X"55",X"4D",X"A4",
|
||||
X"00",X"00",X"54",X"94",X"9C",X"C8",X"48",X"62",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"82",
|
||||
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
|
||||
X"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"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"FF",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"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"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"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"FF",X"18",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"1A",X"18",X"00",X"82",X"03",X"02",X"1A",X"42",X"5A",X"58",X"58",X"40",X"93",X"12",X"12",X"18",
|
||||
X"FF",X"7E",X"7E",X"00",X"00",X"00",X"00",X"00",X"7E",X"7E",X"00",X"00",X"00",X"00",X"7E",X"00",
|
||||
X"7E",X"7E",X"7E",X"40",X"56",X"34",X"56",X"7E",X"FF",X"01",X"FD",X"00",X"00",X"04",X"08",X"10",
|
||||
X"01",X"01",X"10",X"98",X"10",X"00",X"01",X"E4",X"05",X"05",X"05",X"04",X"09",X"91",X"11",X"01",
|
||||
X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",
|
||||
X"FF",X"FF",X"FF",X"C0",X"57",X"35",X"57",X"FF",X"FF",X"80",X"BF",X"20",X"00",X"00",X"18",X"27",
|
||||
X"A0",X"80",X"00",X"20",X"30",X"28",X"A7",X"20",X"A0",X"84",X"80",X"80",X"30",X"2C",X"20",X"80",
|
||||
X"FF",X"07",X"F7",X"00",X"00",X"10",X"20",X"44",X"07",X"07",X"46",X"66",X"46",X"06",X"07",X"96",
|
||||
X"17",X"17",X"17",X"14",X"23",X"45",X"47",X"07",X"FF",X"E0",X"EF",X"08",X"00",X"00",X"06",X"09",
|
||||
X"E8",X"E0",X"00",X"08",X"0C",X"0A",X"E9",X"28",X"E8",X"E1",X"E0",X"80",X"4C",X"2B",X"48",X"E0",
|
||||
X"FF",X"1F",X"DF",X"00",X"00",X"40",X"90",X"1C",X"1F",X"17",X"16",X"9E",X"16",X"16",X"17",X"5E",
|
||||
X"5F",X"5F",X"5F",X"5C",X"93",X"05",X"17",X"1F",X"FF",X"F8",X"FB",X"02",X"00",X"00",X"01",X"0A",
|
||||
X"FA",X"F8",X"18",X"1A",X"1B",X"1A",X"FA",X"3A",X"FA",X"F8",X"F8",X"98",X"43",X"32",X"4A",X"F8",
|
||||
X"FF",X"7F",X"7F",X"00",X"00",X"40",X"70",X"7C",X"5F",X"57",X"56",X"7E",X"56",X"56",X"57",X"7E",
|
||||
X"7F",X"7F",X"7F",X"7C",X"73",X"45",X"17",X"1F",X"FF",X"FE",X"FE",X"00",X"00",X"02",X"06",X"0E",
|
||||
X"FE",X"FA",X"1A",X"1E",X"1A",X"1A",X"FA",X"3E",X"FE",X"FE",X"FE",X"9E",X"46",X"30",X"48",X"F8",
|
||||
X"3F",X"40",X"5F",X"40",X"5F",X"50",X"50",X"50",X"50",X"50",X"50",X"5F",X"40",X"50",X"70",X"00",
|
||||
X"FC",X"02",X"FA",X"00",X"F8",X"08",X"08",X"08",X"08",X"08",X"08",X"F8",X"00",X"0A",X"02",X"00",
|
||||
X"3F",X"40",X"5F",X"40",X"5F",X"50",X"50",X"5C",X"5E",X"5E",X"5F",X"5F",X"40",X"50",X"70",X"00",
|
||||
X"3F",X"40",X"5F",X"40",X"5F",X"50",X"57",X"5F",X"5D",X"5F",X"5F",X"5F",X"40",X"50",X"70",X"00",
|
||||
X"FC",X"02",X"FA",X"00",X"F8",X"08",X"08",X"C8",X"C8",X"E8",X"E8",X"F8",X"00",X"0A",X"02",X"00",
|
||||
X"3F",X"40",X"5F",X"40",X"5F",X"50",X"53",X"57",X"55",X"57",X"5F",X"5F",X"40",X"50",X"70",X"00",
|
||||
X"FC",X"02",X"FA",X"00",X"F8",X"08",X"C8",X"E8",X"68",X"E8",X"F8",X"F8",X"00",X"0A",X"02",X"00",
|
||||
X"3F",X"40",X"5F",X"40",X"5F",X"50",X"53",X"57",X"5F",X"57",X"5F",X"5F",X"40",X"50",X"70",X"00",
|
||||
X"FC",X"02",X"FA",X"00",X"F8",X"08",X"C8",X"E8",X"E8",X"E8",X"F8",X"F8",X"00",X"0A",X"02",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00",
|
||||
X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",
|
||||
X"81",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"81",
|
||||
X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"01",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"76",X"39",X"19",X"06",X"0E",X"0D",X"0B",X"07",
|
||||
X"76",X"B9",X"D9",X"E6",X"6E",X"9D",X"9B",X"67",X"00",X"80",X"C0",X"C0",X"60",X"80",X"90",X"60",
|
||||
X"70",X"B0",X"D0",X"E0",X"60",X"90",X"90",X"60",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",
|
||||
X"07",X"1F",X"3F",X"03",X"F0",X"61",X"00",X"00",X"00",X"80",X"81",X"00",X"00",X"FF",X"FF",X"74",
|
||||
X"00",X"70",X"F0",X"78",X"30",X"00",X"00",X"00",X"00",X"00",X"07",X"78",X"84",X"02",X"02",X"01",
|
||||
X"50",X"88",X"00",X"00",X"20",X"24",X"58",X"80",X"03",X"01",X"01",X"01",X"03",X"01",X"01",X"00",
|
||||
X"80",X"80",X"9C",X"BC",X"BC",X"3C",X"3C",X"3F",X"74",X"74",X"74",X"7C",X"7C",X"7C",X"FC",X"FC",
|
||||
X"00",X"60",X"78",X"7E",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"80",X"87",X"3F",X"7F",
|
||||
X"00",X"00",X"00",X"00",X"F0",X"F0",X"F0",X"F0",X"05",X"0D",X"1B",X"00",X"00",X"00",X"00",X"00",
|
||||
X"B8",X"B8",X"70",X"01",X"00",X"00",X"00",X"00",X"00",X"06",X"38",X"C0",X"00",X"00",X"00",X"00",
|
||||
X"3E",X"1E",X"0C",X"04",X"00",X"00",X"00",X"00",X"7F",X"3F",X"3F",X"1F",X"04",X"00",X"08",X"00",
|
||||
X"F0",X"F0",X"C0",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"11",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"11",X"EE",X"EE",X"0E",X"EE",X"CE",X"9F",X"2B",
|
||||
X"11",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"11",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",
|
||||
X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"EE",X"EE",X"49",X"88",X"88",X"FF",X"FF",X"EE",X"EE",X"EE",
|
||||
X"EE",X"8E",X"EE",X"EE",X"E0",X"EE",X"EE",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"EE",X"EE",
|
||||
X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",
|
||||
X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",
|
||||
X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",
|
||||
X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",
|
||||
X"89",X"40",X"2F",X"1F",X"9F",X"3F",X"3F",X"BF",X"FD",X"7F",X"BF",X"FF",X"FF",X"FF",X"FD",X"F8",
|
||||
X"89",X"46",X"A6",X"99",X"D1",X"E2",X"E4",X"D8",X"89",X"46",X"26",X"19",X"91",X"62",X"64",X"98",
|
||||
X"BF",X"3F",X"3F",X"3F",X"BF",X"3F",X"3F",X"DF",X"F8",X"FD",X"FF",X"FF",X"FF",X"FF",X"FD",X"DD",
|
||||
X"E9",X"E6",X"E6",X"F8",X"F0",X"E2",X"E4",X"F8",X"89",X"02",X"00",X"01",X"90",X"62",X"64",X"90",
|
||||
X"9F",X"2F",X"2F",X"37",X"B8",X"3F",X"3F",X"BF",X"DF",X"DF",X"BD",X"7D",X"FE",X"FE",X"FE",X"FF",
|
||||
X"C8",X"E6",X"F6",X"E9",X"F1",X"F2",X"F4",X"78",X"81",X"46",X"26",X"11",X"91",X"62",X"64",X"90",
|
||||
X"BF",X"5F",X"1F",X"1F",X"8E",X"6F",X"6F",X"8F",X"FF",X"FF",X"FF",X"FF",X"0F",X"6F",X"6F",X"0F",
|
||||
X"79",X"3A",X"3E",X"1D",X"9F",X"6F",X"67",X"9B",X"89",X"46",X"3E",X"1D",X"B9",X"FA",X"F4",X"C8",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00",
|
||||
X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"7F",X"3F",X"3F",X"1F",X"1F",X"0F",X"0F",X"07",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"80",X"80",X"C0",X"C0",X"E0",X"E0",X"F0",
|
||||
X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"73",X"AD",X"DE",X"AD",X"73",X"AD",X"DE",X"AD",X"9B",X"67",X"EE",X"5E",X"BE",X"76",X"E6",X"C6",
|
||||
X"D9",X"E6",X"F7",X"FA",X"FD",X"EE",X"E7",X"E3",X"CE",X"B5",X"7B",X"B5",X"CE",X"B5",X"7B",X"B5",
|
||||
X"73",X"AF",X"DF",X"BD",X"78",X"F1",X"E2",X"FF",X"8E",X"16",X"86",X"C6",X"E6",X"76",X"3E",X"FE",
|
||||
X"F1",X"E8",X"E1",X"E3",X"E7",X"EE",X"FC",X"FF",X"CE",X"F5",X"FB",X"BD",X"1E",X"8F",X"47",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"DC",X"EB",X"F7",X"DB",X"FF",X"FF",X"FF",X"FF",X"EF",X"5D",X"BE",X"6D",
|
||||
X"FF",X"FF",X"FF",X"FF",X"57",X"7F",X"AF",X"D7",X"FF",X"FF",X"FF",X"FF",X"AB",X"FA",X"D5",X"AE",
|
||||
X"F7",X"8F",X"F7",X"DB",X"F7",X"EB",X"DC",X"FF",X"BC",X"C7",X"BE",X"6D",X"BE",X"5D",X"EF",X"FF",
|
||||
X"BB",X"7C",X"BB",X"D7",X"AF",X"7F",X"57",X"FF",X"74",X"FB",X"75",X"AE",X"D5",X"FA",X"AB",X"FF",
|
||||
X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",
|
||||
X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",
|
||||
X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",
|
||||
X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",
|
||||
X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF",X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF",
|
||||
X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF",X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF",
|
||||
X"E8",X"71",X"38",X"5C",X"3E",X"77",X"E3",X"C1",X"8F",X"17",X"0E",X"5C",X"38",X"79",X"FA",X"D8",
|
||||
X"C8",X"F1",X"70",X"7C",X"3C",X"3F",X"37",X"73",X"8E",X"1D",X"38",X"7C",X"EE",X"C7",X"A3",X"41",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00",
|
||||
X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"16",X"0D",X"0E",X"07",X"07",X"02",X"03",X"01",
|
||||
X"B7",X"7D",X"FE",X"E7",X"E7",X"FE",X"7D",X"B7",X"00",X"00",X"C0",X"C0",X"E0",X"E0",X"70",X"B0",
|
||||
X"B0",X"70",X"F0",X"E0",X"E0",X"F0",X"70",X"B0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"D0",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"04",X"00",X"00",X"02",X"07",X"01",X"02",X"00",X"80",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"06",X"07",X"07",X"03",X"01",X"38",X"34",X"1A",
|
||||
X"30",X"F0",X"F0",X"E0",X"CC",X"9A",X"B6",X"FC",X"D7",X"3F",X"1F",X"0E",X"0E",X"05",X"E5",X"F7",
|
||||
X"C2",X"80",X"00",X"00",X"E0",X"40",X"C0",X"00",X"00",X"00",X"20",X"90",X"F0",X"00",X"00",X"00",
|
||||
X"C0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"0F",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"64",X"34",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"C0",X"C0",X"E0",X"FF",X"FF",X"01",X"FC",X"7E",X"01",X"3F",X"3F",X"FF",X"FE",X"00",X"7E",X"FF",
|
||||
X"C0",X"FE",X"FE",X"FF",X"7F",X"00",X"7E",X"FF",X"01",X"01",X"03",X"FF",X"FF",X"80",X"3F",X"7E",
|
||||
X"33",X"11",X"11",X"33",X"7E",X"FC",X"01",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF",X"CC",X"88",X"88",X"CC",X"7E",X"3F",X"80",X"FF",
|
||||
X"55",X"AA",X"FF",X"FF",X"00",X"00",X"FF",X"7F",X"55",X"AA",X"FF",X"FF",X"00",X"00",X"FE",X"FF",
|
||||
X"55",X"AA",X"FF",X"FF",X"00",X"00",X"7E",X"FF",X"55",X"AA",X"FF",X"FF",X"00",X"00",X"3F",X"7E",
|
||||
X"33",X"11",X"11",X"33",X"7E",X"FC",X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF",X"CC",X"88",X"88",X"CC",X"7E",X"3F",X"00",X"FF",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00",X"00",X"0C",X"30",X"40",X"80",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"40",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"02",X"02",X"04",X"04",X"04",X"05",X"07",X"07",X"02",X"00",X"00",X"40",X"E0",X"F0",X"F8",X"FC",
|
||||
X"00",X"00",X"06",X"0F",X"0F",X"1F",X"1F",X"3F",X"00",X"00",X"00",X"00",X"80",X"C0",X"C0",X"C0",
|
||||
X"07",X"07",X"07",X"07",X"07",X"04",X"04",X"04",X"FE",X"FF",X"FF",X"FF",X"FE",X"01",X"01",X"03",
|
||||
X"3F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
|
||||
X"04",X"04",X"04",X"04",X"04",X"04",X"00",X"00",X"03",X"07",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"C0",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"EF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF");
|
||||
begin
|
||||
process(clk)
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
data <= rom_data(to_integer(unsigned(addr)));
|
||||
end if;
|
||||
end process;
|
||||
end architecture;
|
||||
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# 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 = 00:21:03 December 03, 2019
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
QUARTUS_VERSION = "13.1"
|
||||
DATE = "00:21:03 December 03, 2019"
|
||||
|
||||
# Revisions
|
||||
|
||||
PROJECT_REVISION = "Starjack_MiST"
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# 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 = 06:24:46 May 16, 2020
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# 1) The default values for assignments are stored in the file:
|
||||
# Flicky_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"
|
||||
|
||||
# Pin & Location Assignments
|
||||
# ==========================
|
||||
set_location_assignment PIN_7 -to LED
|
||||
set_location_assignment PIN_54 -to CLOCK_27
|
||||
set_location_assignment PIN_144 -to VGA_R[5]
|
||||
set_location_assignment PIN_143 -to VGA_R[4]
|
||||
set_location_assignment PIN_142 -to VGA_R[3]
|
||||
set_location_assignment PIN_141 -to VGA_R[2]
|
||||
set_location_assignment PIN_137 -to VGA_R[1]
|
||||
set_location_assignment PIN_135 -to VGA_R[0]
|
||||
set_location_assignment PIN_133 -to VGA_B[5]
|
||||
set_location_assignment PIN_132 -to VGA_B[4]
|
||||
set_location_assignment PIN_125 -to VGA_B[3]
|
||||
set_location_assignment PIN_121 -to VGA_B[2]
|
||||
set_location_assignment PIN_120 -to VGA_B[1]
|
||||
set_location_assignment PIN_115 -to VGA_B[0]
|
||||
set_location_assignment PIN_114 -to VGA_G[5]
|
||||
set_location_assignment PIN_113 -to VGA_G[4]
|
||||
set_location_assignment PIN_112 -to VGA_G[3]
|
||||
set_location_assignment PIN_111 -to VGA_G[2]
|
||||
set_location_assignment PIN_110 -to VGA_G[1]
|
||||
set_location_assignment PIN_106 -to VGA_G[0]
|
||||
set_location_assignment PIN_136 -to VGA_VS
|
||||
set_location_assignment PIN_119 -to VGA_HS
|
||||
set_location_assignment PIN_65 -to AUDIO_L
|
||||
set_location_assignment PIN_80 -to AUDIO_R
|
||||
set_location_assignment PIN_105 -to SPI_DO
|
||||
set_location_assignment PIN_88 -to SPI_DI
|
||||
set_location_assignment PIN_126 -to SPI_SCK
|
||||
set_location_assignment PIN_127 -to SPI_SS2
|
||||
set_location_assignment PIN_91 -to SPI_SS3
|
||||
set_location_assignment PIN_13 -to CONF_DATA0
|
||||
set_location_assignment PIN_49 -to SDRAM_A[0]
|
||||
set_location_assignment PIN_44 -to SDRAM_A[1]
|
||||
set_location_assignment PIN_42 -to SDRAM_A[2]
|
||||
set_location_assignment PIN_39 -to SDRAM_A[3]
|
||||
set_location_assignment PIN_4 -to SDRAM_A[4]
|
||||
set_location_assignment PIN_6 -to SDRAM_A[5]
|
||||
set_location_assignment PIN_8 -to SDRAM_A[6]
|
||||
set_location_assignment PIN_10 -to SDRAM_A[7]
|
||||
set_location_assignment PIN_11 -to SDRAM_A[8]
|
||||
set_location_assignment PIN_28 -to SDRAM_A[9]
|
||||
set_location_assignment PIN_50 -to SDRAM_A[10]
|
||||
set_location_assignment PIN_30 -to SDRAM_A[11]
|
||||
set_location_assignment PIN_32 -to SDRAM_A[12]
|
||||
set_location_assignment PIN_83 -to SDRAM_DQ[0]
|
||||
set_location_assignment PIN_79 -to SDRAM_DQ[1]
|
||||
set_location_assignment PIN_77 -to SDRAM_DQ[2]
|
||||
set_location_assignment PIN_76 -to SDRAM_DQ[3]
|
||||
set_location_assignment PIN_72 -to SDRAM_DQ[4]
|
||||
set_location_assignment PIN_71 -to SDRAM_DQ[5]
|
||||
set_location_assignment PIN_69 -to SDRAM_DQ[6]
|
||||
set_location_assignment PIN_68 -to SDRAM_DQ[7]
|
||||
set_location_assignment PIN_86 -to SDRAM_DQ[8]
|
||||
set_location_assignment PIN_87 -to SDRAM_DQ[9]
|
||||
set_location_assignment PIN_98 -to SDRAM_DQ[10]
|
||||
set_location_assignment PIN_99 -to SDRAM_DQ[11]
|
||||
set_location_assignment PIN_100 -to SDRAM_DQ[12]
|
||||
set_location_assignment PIN_101 -to SDRAM_DQ[13]
|
||||
set_location_assignment PIN_103 -to SDRAM_DQ[14]
|
||||
set_location_assignment PIN_104 -to SDRAM_DQ[15]
|
||||
set_location_assignment PIN_58 -to SDRAM_BA[0]
|
||||
set_location_assignment PIN_51 -to SDRAM_BA[1]
|
||||
set_location_assignment PIN_85 -to SDRAM_DQMH
|
||||
set_location_assignment PIN_67 -to SDRAM_DQML
|
||||
set_location_assignment PIN_60 -to SDRAM_nRAS
|
||||
set_location_assignment PIN_64 -to SDRAM_nCAS
|
||||
set_location_assignment PIN_66 -to SDRAM_nWE
|
||||
set_location_assignment PIN_59 -to SDRAM_nCS
|
||||
set_location_assignment PIN_33 -to SDRAM_CKE
|
||||
set_location_assignment PIN_43 -to SDRAM_CLK
|
||||
set_location_assignment PLL_1 -to "pll:pll|altpll:altpll_component"
|
||||
|
||||
# Classic Timing Assignments
|
||||
# ==========================
|
||||
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
||||
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
|
||||
|
||||
# Analysis & Synthesis Assignments
|
||||
# ================================
|
||||
set_global_assignment -name FAMILY "Cyclone III"
|
||||
set_global_assignment -name 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 TOP_LEVEL_ENTITY Flicky_MiST
|
||||
|
||||
# Fitter Assignments
|
||||
# ==================
|
||||
set_global_assignment -name DEVICE EP3C25E144C8
|
||||
set_global_assignment -name ENABLE_CONFIGURATION_PINS OFF
|
||||
set_global_assignment -name ENABLE_NCE_PIN OFF
|
||||
set_global_assignment -name ENABLE_BOOT_SEL_PIN OFF
|
||||
set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "PASSIVE SERIAL"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF
|
||||
set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON
|
||||
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
|
||||
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"
|
||||
set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"
|
||||
set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"
|
||||
set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"
|
||||
set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO"
|
||||
|
||||
# Assembler Assignments
|
||||
# =====================
|
||||
set_global_assignment -name GENERATE_RBF_FILE ON
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
|
||||
|
||||
# SignalTap II Assignments
|
||||
# ========================
|
||||
set_global_assignment -name ENABLE_SIGNALTAP OFF
|
||||
set_global_assignment -name USE_SIGNALTAP_FILE output_files/zaxx.stp
|
||||
|
||||
# Power Estimation Assignments
|
||||
# ============================
|
||||
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
|
||||
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
||||
|
||||
# Advanced I/O Timing Assignments
|
||||
# ===============================
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
|
||||
|
||||
# -------------------------
|
||||
# start ENTITY(Flicky_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(Flicky_MiST)
|
||||
# -----------------------
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE rtl/Flicky_MiST.sv
|
||||
set_global_assignment -name VERILOG_FILE rtl/FPGA_FLICKY.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickyMAIN.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickyVIDEO.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickySND.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/z80ip.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/FlickySPRITE.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/parts.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/hvgen.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/SN76496.v
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv
|
||||
set_global_assignment -name VERILOG_FILE rtl/pll_mist.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_1B.v
|
||||
set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_11B.v
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/snd_rom.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/clut.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/spr_rom.vhd
|
||||
set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip
|
||||
set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
||||
@@ -0,0 +1,134 @@
|
||||
## Generated SDC file "vectrex_MiST.out.sdc"
|
||||
|
||||
## Copyright (C) 1991-2013 Altera Corporation
|
||||
## Your use of Altera Corporation's design tools, logic functions
|
||||
## and other software and tools, and its AMPP partner logic
|
||||
## functions, and any output files from any of the foregoing
|
||||
## (including device programming or simulation files), and any
|
||||
## associated documentation or information are expressly subject
|
||||
## to the terms and conditions of the Altera Program License
|
||||
## Subscription Agreement, Altera MegaCore Function License
|
||||
## Agreement, or other applicable license agreement, including,
|
||||
## without limitation, that your use is for the sole purpose of
|
||||
## programming logic devices manufactured by Altera and sold by
|
||||
## Altera or its authorized distributors. Please refer to the
|
||||
## applicable agreement for further details.
|
||||
|
||||
|
||||
## VENDOR "Altera"
|
||||
## PROGRAM "Quartus II"
|
||||
## VERSION "Version 13.1.0 Build 162 10/23/2013 SJ Web Edition"
|
||||
|
||||
## DATE "Sun Jun 24 12:53:00 2018"
|
||||
|
||||
##
|
||||
## DEVICE "EP3C25E144C8"
|
||||
##
|
||||
|
||||
# Clock constraints
|
||||
|
||||
# Automatically constrain PLL and other generated clocks
|
||||
derive_pll_clocks -create_base_clocks
|
||||
|
||||
# Automatically calculate clock uncertainty to jitter and other effects.
|
||||
derive_clock_uncertainty
|
||||
|
||||
# tsu/th constraints
|
||||
|
||||
# tco constraints
|
||||
|
||||
# tpd constraints
|
||||
|
||||
#**************************************************************
|
||||
# Time Information
|
||||
#**************************************************************
|
||||
|
||||
set_time_format -unit ns -decimal_places 3
|
||||
|
||||
|
||||
|
||||
#**************************************************************
|
||||
# Create Clock
|
||||
#**************************************************************
|
||||
|
||||
create_clock -name {SPI_SCK} -period 41.666 -waveform { 20.8 41.666 } [get_ports {SPI_SCK}]
|
||||
|
||||
set sys_clk "pll|altpll_component|auto_generated|pll1|clk[0]"
|
||||
set sdram_clk "pll|altpll_component|auto_generated|pll1|clk[1]"
|
||||
#**************************************************************
|
||||
# Create Generated Clock
|
||||
#**************************************************************
|
||||
|
||||
|
||||
#**************************************************************
|
||||
# Set Clock Latency
|
||||
#**************************************************************
|
||||
|
||||
|
||||
|
||||
#**************************************************************
|
||||
# Set Clock Uncertainty
|
||||
#**************************************************************
|
||||
|
||||
#**************************************************************
|
||||
# Set Input Delay
|
||||
#**************************************************************
|
||||
|
||||
set_input_delay -add_delay -clock_fall -clock [get_clocks {CLOCK_27}] 1.000 [get_ports {CLOCK_27}]
|
||||
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {CONF_DATA0}]
|
||||
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DI}]
|
||||
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SCK}]
|
||||
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS2}]
|
||||
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS3}]
|
||||
|
||||
set_input_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -max 6.6 [get_ports SDRAM_DQ[*]]
|
||||
set_input_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -min 3.5 [get_ports SDRAM_DQ[*]]
|
||||
|
||||
#**************************************************************
|
||||
# Set Output Delay
|
||||
#**************************************************************
|
||||
|
||||
set_output_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DO}]
|
||||
set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {AUDIO_L}]
|
||||
set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {AUDIO_R}]
|
||||
set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {LED}]
|
||||
set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {VGA_*}]
|
||||
|
||||
set_output_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -max 1.5 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}]
|
||||
set_output_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -min -0.8 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}]
|
||||
|
||||
#**************************************************************
|
||||
# Set Clock Groups
|
||||
#**************************************************************
|
||||
|
||||
set_clock_groups -asynchronous -group [get_clocks {SPI_SCK}] -group [get_clocks {pll|altpll_component|auto_generated|pll1|clk[*]}]
|
||||
|
||||
#**************************************************************
|
||||
# Set False Path
|
||||
#**************************************************************
|
||||
|
||||
|
||||
|
||||
#**************************************************************
|
||||
# Set Multicycle Path
|
||||
#**************************************************************
|
||||
|
||||
set_multicycle_path -to {VGA_*[*]} -setup 2
|
||||
set_multicycle_path -to {VGA_*[*]} -hold 1
|
||||
|
||||
#**************************************************************
|
||||
# Set Maximum Delay
|
||||
#**************************************************************
|
||||
|
||||
|
||||
|
||||
#**************************************************************
|
||||
# Set Minimum Delay
|
||||
#**************************************************************
|
||||
|
||||
|
||||
|
||||
#**************************************************************
|
||||
# Set Input Transition
|
||||
#**************************************************************
|
||||
|
||||
37
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/clean.bat
Normal file
37
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/clean.bat
Normal file
@@ -0,0 +1,37 @@
|
||||
@echo off
|
||||
del /s *.bak
|
||||
del /s *.orig
|
||||
del /s *.rej
|
||||
del /s *~
|
||||
rmdir /s /q db
|
||||
rmdir /s /q incremental_db
|
||||
rmdir /s /q output_files
|
||||
rmdir /s /q simulation
|
||||
rmdir /s /q greybox_tmp
|
||||
rmdir /s /q hc_output
|
||||
rmdir /s /q .qsys_edit
|
||||
rmdir /s /q hps_isw_handoff
|
||||
rmdir /s /q sys\.qsys_edit
|
||||
rmdir /s /q sys\vip
|
||||
cd sys
|
||||
for /d %%i in (*_sim) do rmdir /s /q "%%~nxi"
|
||||
cd ..
|
||||
for /d %%i in (*_sim) do rmdir /s /q "%%~nxi"
|
||||
del build_id.v
|
||||
del c5_pin_model_dump.txt
|
||||
del PLLJ_PLLSPE_INFO.txt
|
||||
del /s *.qws
|
||||
del /s *.ppf
|
||||
del /s *.ddb
|
||||
del /s *.csv
|
||||
del /s *.cmp
|
||||
del /s *.sip
|
||||
del /s *.spd
|
||||
del /s *.bsf
|
||||
del /s *.f
|
||||
del /s *.sopcinfo
|
||||
del /s *.xml
|
||||
del /s new_rtl_netlist
|
||||
del /s old_rtl_netlist
|
||||
|
||||
pause
|
||||
@@ -0,0 +1,128 @@
|
||||
// megafunction wizard: %RAM: 2-PORT%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: altsyncram
|
||||
|
||||
// ============================================================
|
||||
// File Name: DPRAM1024_11B.v
|
||||
// Megafunction Name(s):
|
||||
// altsyncram
|
||||
//
|
||||
// Simulation Library Files(s):
|
||||
// altera_mf
|
||||
// ============================================================
|
||||
// ************************************************************
|
||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
//
|
||||
// 17.1.0 Build 590 10/25/2017 SJ Lite Edition
|
||||
// ************************************************************
|
||||
|
||||
|
||||
//Copyright (C) 2017 Intel Corporation. All rights reserved.
|
||||
//Your use of Intel Corporation's design tools, logic functions
|
||||
//and other software and tools, and its AMPP partner logic
|
||||
//functions, and any output files from any of the foregoing
|
||||
//(including device programming or simulation files), and any
|
||||
//associated documentation or information are expressly subject
|
||||
//to the terms and conditions of the Intel Program License
|
||||
//Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
//the Intel FPGA IP License Agreement, or other applicable license
|
||||
//agreement, including, without limitation, that your use is for
|
||||
//the sole purpose of programming logic devices manufactured by
|
||||
//Intel and sold by Intel or its authorized distributors. Please
|
||||
//refer to the applicable agreement for further details.
|
||||
|
||||
|
||||
// synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
// synopsys translate_on
|
||||
module DPRAM1024_11B (
|
||||
address_a,
|
||||
address_b,
|
||||
clock_a,
|
||||
clock_b,
|
||||
data_a,
|
||||
data_b,
|
||||
wren_a,
|
||||
wren_b,
|
||||
q_a,
|
||||
q_b);
|
||||
|
||||
input [9:0] address_a;
|
||||
input [9:0] address_b;
|
||||
input clock_a;
|
||||
input clock_b;
|
||||
input [15:0] data_a;
|
||||
input [15:0] data_b;
|
||||
input wren_a;
|
||||
input wren_b;
|
||||
output [15:0] q_a;
|
||||
output [15:0] q_b;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
tri1 clock_a;
|
||||
tri0 wren_a;
|
||||
tri0 wren_b;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
|
||||
wire [15:0] sub_wire0;
|
||||
wire [15:0] sub_wire1;
|
||||
wire [15:0] q_a = sub_wire0[15:0];
|
||||
wire [15:0] q_b = sub_wire1[15:0];
|
||||
|
||||
altsyncram altsyncram_component (
|
||||
.address_a (address_a),
|
||||
.address_b (address_b),
|
||||
.clock0 (clock_a),
|
||||
.clock1 (clock_b),
|
||||
.data_a (data_a),
|
||||
.data_b (data_b),
|
||||
.wren_a (wren_a),
|
||||
.wren_b (wren_b),
|
||||
.q_a (sub_wire0),
|
||||
.q_b (sub_wire1),
|
||||
.aclr0 (1'b0),
|
||||
.aclr1 (1'b0),
|
||||
.addressstall_a (1'b0),
|
||||
.addressstall_b (1'b0),
|
||||
.byteena_a (1'b1),
|
||||
.byteena_b (1'b1),
|
||||
.clocken0 (1'b1),
|
||||
.clocken1 (1'b1),
|
||||
.clocken2 (1'b1),
|
||||
.clocken3 (1'b1),
|
||||
.eccstatus (),
|
||||
.rden_a (1'b1),
|
||||
.rden_b (1'b1));
|
||||
defparam
|
||||
altsyncram_component.address_reg_b = "CLOCK1",
|
||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
||||
altsyncram_component.clock_enable_output_a = "BYPASS",
|
||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
||||
altsyncram_component.indata_reg_b = "CLOCK1",
|
||||
altsyncram_component.intended_device_family = "Cyclone III",
|
||||
altsyncram_component.lpm_type = "altsyncram",
|
||||
altsyncram_component.numwords_a = 1024,
|
||||
altsyncram_component.numwords_b = 1024,
|
||||
altsyncram_component.operation_mode = "BIDIR_DUAL_PORT",
|
||||
altsyncram_component.outdata_aclr_a = "NONE",
|
||||
altsyncram_component.outdata_aclr_b = "NONE",
|
||||
altsyncram_component.outdata_reg_a = "CLOCK0",
|
||||
altsyncram_component.outdata_reg_b = "CLOCK1",
|
||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
||||
altsyncram_component.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ",
|
||||
altsyncram_component.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ",
|
||||
altsyncram_component.widthad_a = 10,
|
||||
altsyncram_component.widthad_b = 10,
|
||||
altsyncram_component.width_a = 16,
|
||||
altsyncram_component.width_b = 16,
|
||||
altsyncram_component.width_byteena_a = 1,
|
||||
altsyncram_component.width_byteena_b = 1,
|
||||
altsyncram_component.wrcontrol_wraddress_reg_b = "CLOCK1";
|
||||
|
||||
|
||||
endmodule
|
||||
@@ -0,0 +1,128 @@
|
||||
// megafunction wizard: %RAM: 2-PORT%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: altsyncram
|
||||
|
||||
// ============================================================
|
||||
// File Name: DPRAM1024_1B.v
|
||||
// Megafunction Name(s):
|
||||
// altsyncram
|
||||
//
|
||||
// Simulation Library Files(s):
|
||||
// altera_mf
|
||||
// ============================================================
|
||||
// ************************************************************
|
||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
//
|
||||
// 17.1.0 Build 590 10/25/2017 SJ Lite Edition
|
||||
// ************************************************************
|
||||
|
||||
|
||||
//Copyright (C) 2017 Intel Corporation. All rights reserved.
|
||||
//Your use of Intel Corporation's design tools, logic functions
|
||||
//and other software and tools, and its AMPP partner logic
|
||||
//functions, and any output files from any of the foregoing
|
||||
//(including device programming or simulation files), and any
|
||||
//associated documentation or information are expressly subject
|
||||
//to the terms and conditions of the Intel Program License
|
||||
//Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
//the Intel FPGA IP License Agreement, or other applicable license
|
||||
//agreement, including, without limitation, that your use is for
|
||||
//the sole purpose of programming logic devices manufactured by
|
||||
//Intel and sold by Intel or its authorized distributors. Please
|
||||
//refer to the applicable agreement for further details.
|
||||
|
||||
|
||||
// synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
// synopsys translate_on
|
||||
module DPRAM1024_1B (
|
||||
address_a,
|
||||
address_b,
|
||||
clock_a,
|
||||
clock_b,
|
||||
data_a,
|
||||
data_b,
|
||||
wren_a,
|
||||
wren_b,
|
||||
q_a,
|
||||
q_b);
|
||||
|
||||
input [9:0] address_a;
|
||||
input [9:0] address_b;
|
||||
input clock_a;
|
||||
input clock_b;
|
||||
input [0:0] data_a;
|
||||
input [0:0] data_b;
|
||||
input wren_a;
|
||||
input wren_b;
|
||||
output [0:0] q_a;
|
||||
output [0:0] q_b;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
tri1 clock_a;
|
||||
tri0 wren_a;
|
||||
tri0 wren_b;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
|
||||
wire [0:0] sub_wire0;
|
||||
wire [0:0] sub_wire1;
|
||||
wire [0:0] q_a = sub_wire0[0:0];
|
||||
wire [0:0] q_b = sub_wire1[0:0];
|
||||
|
||||
altsyncram altsyncram_component (
|
||||
.address_a (address_a),
|
||||
.address_b (address_b),
|
||||
.clock0 (clock_a),
|
||||
.clock1 (clock_b),
|
||||
.data_a (data_a),
|
||||
.data_b (data_b),
|
||||
.wren_a (wren_a),
|
||||
.wren_b (wren_b),
|
||||
.q_a (sub_wire0),
|
||||
.q_b (sub_wire1),
|
||||
.aclr0 (1'b0),
|
||||
.aclr1 (1'b0),
|
||||
.addressstall_a (1'b0),
|
||||
.addressstall_b (1'b0),
|
||||
.byteena_a (1'b1),
|
||||
.byteena_b (1'b1),
|
||||
.clocken0 (1'b1),
|
||||
.clocken1 (1'b1),
|
||||
.clocken2 (1'b1),
|
||||
.clocken3 (1'b1),
|
||||
.eccstatus (),
|
||||
.rden_a (1'b1),
|
||||
.rden_b (1'b1));
|
||||
defparam
|
||||
altsyncram_component.address_reg_b = "CLOCK1",
|
||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
||||
altsyncram_component.clock_enable_output_a = "BYPASS",
|
||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
||||
altsyncram_component.indata_reg_b = "CLOCK1",
|
||||
altsyncram_component.intended_device_family = "Cyclone III",
|
||||
altsyncram_component.lpm_type = "altsyncram",
|
||||
altsyncram_component.numwords_a = 1024,
|
||||
altsyncram_component.numwords_b = 1024,
|
||||
altsyncram_component.operation_mode = "BIDIR_DUAL_PORT",
|
||||
altsyncram_component.outdata_aclr_a = "NONE",
|
||||
altsyncram_component.outdata_aclr_b = "NONE",
|
||||
altsyncram_component.outdata_reg_a = "CLOCK0",
|
||||
altsyncram_component.outdata_reg_b = "CLOCK1",
|
||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
||||
altsyncram_component.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ",
|
||||
altsyncram_component.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ",
|
||||
altsyncram_component.widthad_a = 10,
|
||||
altsyncram_component.widthad_b = 10,
|
||||
altsyncram_component.width_a = 1,
|
||||
altsyncram_component.width_b = 1,
|
||||
altsyncram_component.width_byteena_a = 1,
|
||||
altsyncram_component.width_byteena_b = 1,
|
||||
altsyncram_component.wrcontrol_wraddress_reg_b = "CLOCK1";
|
||||
|
||||
|
||||
endmodule
|
||||
@@ -0,0 +1,156 @@
|
||||
/********************************************************************
|
||||
FPGA Implimentation of "FLICKY" (Top Module)
|
||||
|
||||
Copyright (c) 2017,19 MiSTer-X
|
||||
*********************************************************************/
|
||||
module FPGA_FLICKY
|
||||
(
|
||||
input clk48M,
|
||||
input reset,
|
||||
|
||||
input [7:0] INP0,
|
||||
input [7:0] INP1,
|
||||
input [7:0] INP2,
|
||||
|
||||
input [7:0] DSW0,
|
||||
input [7:0] DSW1,
|
||||
output [2:0] video_r,
|
||||
output [2:0] video_g,
|
||||
output [1:0] video_b,
|
||||
output video_hs,
|
||||
output video_vs,
|
||||
output video_hb,
|
||||
output video_vb,
|
||||
|
||||
output [15:0] SOUT, // Sound Out (PCM)
|
||||
output [15:0] cpu_rom_addr,
|
||||
input [7:0] cpu_rom_do,
|
||||
output [14:0] spr_rom_addr,
|
||||
input [7:0] spr_rom_do,
|
||||
output [12:0] snd_rom_addr,
|
||||
input [7:0] snd_rom_do,
|
||||
output [13:0] tile_rom_addr,
|
||||
input [23:0] tile_rom_do
|
||||
);
|
||||
|
||||
// Clocks
|
||||
wire clk24M, clk12M, clk6M, clk3M, clk8M ;
|
||||
CLKGEN clks( clk48M, clk24M, clk12M, clk6M, clk3M, clk8M );
|
||||
|
||||
// CPU
|
||||
wire CPUCLn;
|
||||
wire [15:0] CPUAD;
|
||||
wire [7:0] CPUDO,VIDDO;
|
||||
wire CPUWR,VIDCS,VBLK;
|
||||
wire SNDRQ;
|
||||
|
||||
FlickyMAIN Main (
|
||||
.RESET(reset),
|
||||
.INP0(INP0),
|
||||
.INP1(INP1),
|
||||
.INP2(INP2),
|
||||
.DSW0(DSW0),
|
||||
.DSW1(DSW1),
|
||||
.CLK48M(clk48M),
|
||||
.CLK3M(clk3M),
|
||||
.CPUCLn(CPUCLn),
|
||||
.CPUAD(CPUAD),
|
||||
.CPUDO(CPUDO),
|
||||
.CPUWR(CPUWR),
|
||||
.VBLK(VBLK),
|
||||
.VIDCS(VIDCS),
|
||||
.VIDDO(VIDDO),
|
||||
.SNDRQ(SNDRQ),
|
||||
.cpu_rom_addr(cpu_rom_addr),
|
||||
.cpu_rom_do(cpu_rom_do)
|
||||
);
|
||||
|
||||
// Video
|
||||
FlickyVIDEO Video (
|
||||
.VCLKx8(clk48M),
|
||||
.VCLKx4(clk24M),
|
||||
.VCLKx2(clk12M),
|
||||
.VCLK(clk6M),
|
||||
.PH(HPOS),
|
||||
.PV(VPOS),
|
||||
.VBLK(VBLK),
|
||||
.RGB8(POUT),
|
||||
.PALDSW(1'b0),
|
||||
.cpu_cl(CPUCLn),
|
||||
.cpu_ad(CPUAD),
|
||||
.cpu_wr(CPUWR),
|
||||
.cpu_dw(CPUDO),
|
||||
.cpu_rd(VIDCS),
|
||||
.cpu_dr(VIDDO),
|
||||
.spr_rom_addr(spr_rom_addr),
|
||||
.spr_rom_do(spr_rom_do),
|
||||
.tile_rom_addr(tile_rom_addr),
|
||||
.tile_rom_do(tile_rom_do)
|
||||
);
|
||||
assign PCLK = clk6M;
|
||||
|
||||
// Sound
|
||||
FlickySND Sound(
|
||||
.clk8M(clk8M),
|
||||
.reset(reset),
|
||||
.sndno(CPUDO),
|
||||
.sndstart(SNDRQ),
|
||||
.sndout(SOUT),
|
||||
.snd_rom_addr(snd_rom_addr),
|
||||
.snd_rom_do(snd_rom_do)
|
||||
);
|
||||
|
||||
wire [8:0] HPOS;
|
||||
wire [8:0] VPOS;
|
||||
wire PCLK;
|
||||
wire [7:0] POUT;
|
||||
|
||||
hvgen hvgen(
|
||||
.HPOS(HPOS),
|
||||
.VPOS(VPOS),
|
||||
.PCLK(PCLK),
|
||||
.iRGB(POUT),
|
||||
.oRGB({video_b,video_g,video_r}),
|
||||
.HBLK(video_hb),
|
||||
.VBLK(video_vb),
|
||||
.HSYN(video_hs),
|
||||
.VSYN(video_vs)
|
||||
);
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Clock Generator
|
||||
//----------------------------------
|
||||
module CLKGEN
|
||||
(
|
||||
input clk48M,
|
||||
|
||||
output clk24M,
|
||||
output clk12M,
|
||||
output clk6M,
|
||||
output clk3M,
|
||||
|
||||
output reg clk8M
|
||||
);
|
||||
|
||||
reg [4:0] clkdiv;
|
||||
always @( posedge clk48M ) clkdiv <= clkdiv+1;
|
||||
assign clk24M = clkdiv[0];
|
||||
assign clk12M = clkdiv[1];
|
||||
assign clk6M = clkdiv[2];
|
||||
assign clk3M = clkdiv[3];
|
||||
|
||||
reg [1:0] count;
|
||||
always @( posedge clk48M ) begin
|
||||
if (count > 2'd2) begin
|
||||
count <= count - 2'd2;
|
||||
clk8M <= ~clk8M;
|
||||
end
|
||||
else count <= count + 2'd1;
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
// Copyright (c) 2017,19 MiSTer-X
|
||||
|
||||
module FlickyMAIN
|
||||
(
|
||||
input CLK48M,
|
||||
input CLK3M,
|
||||
|
||||
input RESET,
|
||||
|
||||
input [7:0] INP0,
|
||||
input [7:0] INP1,
|
||||
input [7:0] INP2,
|
||||
|
||||
input [7:0] DSW0,
|
||||
input [7:0] DSW1,
|
||||
|
||||
input VBLK,
|
||||
input VIDCS,
|
||||
input [7:0] VIDDO,
|
||||
|
||||
output CPUCLn,
|
||||
output [15:0] CPUAD,
|
||||
output [7:0] CPUDO,
|
||||
output CPUWR,
|
||||
|
||||
output SNDRQ,
|
||||
|
||||
// input ROMCL, // Downloaded ROM image
|
||||
// input [24:0] ROMAD,
|
||||
// input [7:0] ROMDT,
|
||||
// input ROMEN
|
||||
output [15:0] cpu_rom_addr,
|
||||
input [7:0] cpu_rom_do
|
||||
);
|
||||
|
||||
wire AXSCL = CLK48M;
|
||||
wire CPUCL = CLK3M;
|
||||
assign CPUCLn = ~CPUCL;
|
||||
|
||||
wire [7:0] CPUDI;
|
||||
wire CPURD;
|
||||
|
||||
wire cpu_cs_video;
|
||||
wire [7:0] cpu_rd_video;
|
||||
|
||||
wire cpu_m1;
|
||||
wire cpu_mreq, cpu_iorq;
|
||||
wire _cpu_rd, _cpu_wr;
|
||||
|
||||
Z80IP maincpu(
|
||||
.reset(RESET),
|
||||
.clk(CPUCL),
|
||||
.adr(CPUAD),
|
||||
.data_in(CPUDI),
|
||||
.data_out(CPUDO),
|
||||
.m1(cpu_m1),
|
||||
.mx(cpu_mreq),
|
||||
.ix(cpu_iorq),
|
||||
.rd(_cpu_rd),
|
||||
.wr(_cpu_wr),
|
||||
.intreq(VBLK),
|
||||
.nmireq(1'b0)
|
||||
);
|
||||
|
||||
assign CPUWR = _cpu_wr & cpu_mreq;
|
||||
assign CPURD = _cpu_rd & cpu_mreq;
|
||||
|
||||
assign SNDRQ = (CPUAD[4:0] == 5'b1_1000) & cpu_iorq & _cpu_wr;
|
||||
|
||||
wire cpu_cs_port1 = (CPUAD[4:2] == 3'b0_00) & cpu_iorq;
|
||||
wire cpu_cs_port2 = (CPUAD[4:2] == 3'b0_01) & cpu_iorq;
|
||||
wire cpu_cs_portS = (CPUAD[4:2] == 3'b0_10) & cpu_iorq;
|
||||
wire cpu_cs_portA = (CPUAD[4:2] == 3'b0_11) & ~CPUAD[0] & cpu_iorq;
|
||||
wire cpu_cs_portB =(((CPUAD[4:2] == 3'b0_11) & CPUAD[0]) | (CPUAD[4:0] == 5'b1_0000)) & cpu_iorq;
|
||||
wire cpu_cs_portI = (CPUAD[4:2] == 3'b1_10) & cpu_iorq;
|
||||
|
||||
wire [7:0] cpu_rd_port1 = INP0;
|
||||
wire [7:0] cpu_rd_port2 = INP1;
|
||||
wire [7:0] cpu_rd_portS = INP2;
|
||||
|
||||
wire [7:0] cpu_rd_portA = DSW0;
|
||||
wire [7:0] cpu_rd_portB = DSW1;
|
||||
|
||||
wire [7:0] cpu_rd_mrom;
|
||||
wire cpu_cs_mrom = 1'b1;
|
||||
|
||||
assign cpu_rom_addr = CPUAD[15:0];
|
||||
|
||||
wire [7:0] cpu_rd_mram;
|
||||
wire cpu_cs_mram = (CPUAD[15:12] == 4'b1100);
|
||||
SRAM_4096 mainram(CPUCLn, CPUAD[11:0], cpu_rd_mram, cpu_cs_mram & CPUWR, CPUDO );
|
||||
|
||||
reg [7:0] vidmode;
|
||||
always @(posedge CPUCLn) begin
|
||||
if ((CPUAD[4:0] == 5'b1_1001) & cpu_iorq & _cpu_wr) begin
|
||||
vidmode <= CPUDO;
|
||||
end
|
||||
end
|
||||
|
||||
dataselector8 mcpudisel(
|
||||
CPUDI,
|
||||
VIDCS, VIDDO,
|
||||
cpu_cs_port1, cpu_rd_port1,
|
||||
cpu_cs_port2, cpu_rd_port2,
|
||||
cpu_cs_portS, cpu_rd_portS,
|
||||
cpu_cs_portA, cpu_rd_portA,
|
||||
cpu_cs_portB, cpu_rd_portB,
|
||||
cpu_cs_mram, cpu_rd_mram,
|
||||
cpu_cs_mrom, cpu_rom_do,
|
||||
8'hFF
|
||||
);
|
||||
|
||||
|
||||
endmodule
|
||||
214
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/FlickySND.v
Normal file
214
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/FlickySND.v
Normal file
@@ -0,0 +1,214 @@
|
||||
// Copyright (c) 2017,19 MiSTer-X
|
||||
|
||||
module FlickySND
|
||||
(
|
||||
input clk8M,
|
||||
input reset,
|
||||
|
||||
input [7:0] sndno,
|
||||
input sndstart,
|
||||
|
||||
output [15:0] sndout,
|
||||
output [12:0] snd_rom_addr,
|
||||
input [7:0] snd_rom_do
|
||||
);
|
||||
|
||||
//----------------------------------
|
||||
// ClockGen
|
||||
//----------------------------------
|
||||
wire clk4M,clk2M;
|
||||
SndClkGen clkgen(clk8M,clk4M,clk2M);
|
||||
|
||||
wire cpuclkx2 = clk8M;
|
||||
wire cpu_clk = clk4M;
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Z80 (1.5625MHz)
|
||||
//----------------------------------
|
||||
wire [15:0] cpu_ad;
|
||||
wire [7:0] cpu_di, cpu_do;
|
||||
wire cpu_mreq, cpu_iorq, cpu_rd, cpu_wr;
|
||||
wire cpu_irq, cpu_nmi;
|
||||
wire cpu_irqa, cpu_nmia;
|
||||
|
||||
wire cpu_mw, cpu_cs_rom, cpu_cs_ram, cpu_wr_ram, cpu_cs_psg0, cpu_cs_psg1, cpu_cs_com;
|
||||
SndADec adec(
|
||||
cpu_mreq, cpu_wr, cpu_mw,
|
||||
cpu_ad, cpu_cs_rom, cpu_cs_ram, cpu_wr_ram, cpu_cs_psg0, cpu_cs_psg1, cpu_cs_com
|
||||
);
|
||||
|
||||
Z80IP cpu(
|
||||
.clk(cpu_clk),
|
||||
.reset(reset),
|
||||
.adr(cpu_ad),
|
||||
.data_in(cpu_di),
|
||||
.data_out(cpu_do),
|
||||
.intreq(cpu_irq),
|
||||
.intack(cpu_irqa),
|
||||
.nmireq(cpu_nmi),
|
||||
.nmiack(cpu_nmia),
|
||||
.mx(cpu_mreq),
|
||||
.ix(cpu_iorq),
|
||||
.rd(cpu_rd),
|
||||
.wr(cpu_wr)
|
||||
);
|
||||
|
||||
wire [7:0] rom_dt; // ROM
|
||||
wire [7:0] ram_do; // RAM
|
||||
wire [7:0] comlatch; // Sound Command Latch
|
||||
|
||||
//DLROM #(13,8) subir( cpuclkx2, cpu_ad[12:0], rom_dt, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_110)); // $1C000-$1DFFF
|
||||
//snd_rom snd_rom(
|
||||
// .clk(cpuclkx2),
|
||||
// .addr(cpu_ad[12:0]),
|
||||
// .data(rom_dt)
|
||||
//);
|
||||
assign snd_rom_addr = cpu_ad[12:0];
|
||||
assign rom_dt = snd_rom_do;
|
||||
|
||||
SRAM_2048 wram( cpuclkx2, cpu_ad[10:0], ram_do, cpu_wr_ram, cpu_do );
|
||||
|
||||
dataselector3 scpudisel(
|
||||
cpu_di,
|
||||
cpu_cs_rom, rom_dt,
|
||||
cpu_cs_ram, ram_do,
|
||||
cpu_cs_com, comlatch,
|
||||
8'hFF
|
||||
);
|
||||
|
||||
SndPlayReq sndreq (
|
||||
clk4M, reset,
|
||||
sndno, sndstart,
|
||||
cpu_irq, cpu_irqa,
|
||||
cpu_nmi, cpu_nmia,
|
||||
comlatch
|
||||
);
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// PSGs
|
||||
//----------------------------------
|
||||
wire [7:0] psg0out, psg1out;
|
||||
|
||||
SN76496 psg0(
|
||||
clk2M,
|
||||
cpu_clk,
|
||||
reset,
|
||||
cpu_cs_psg0,
|
||||
cpu_mw,
|
||||
cpu_do,
|
||||
4'b1111,
|
||||
psg0out
|
||||
);
|
||||
|
||||
SN76496 psg1(
|
||||
clk4M,
|
||||
cpu_clk,
|
||||
reset,
|
||||
cpu_cs_psg1,
|
||||
cpu_mw,
|
||||
cpu_do,
|
||||
4'b1111,
|
||||
psg1out
|
||||
);
|
||||
|
||||
wire [8:0] psgout = psg0out + psg1out;
|
||||
assign sndout = { psgout, 6'h0 };
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
module SndClkGen
|
||||
(
|
||||
input clk8M,
|
||||
output clk4M,
|
||||
output clk2M
|
||||
);
|
||||
reg [1:0] clkdiv;
|
||||
always @ ( posedge clk8M ) clkdiv <= clkdiv+1;
|
||||
|
||||
assign clk4M = clkdiv[0];
|
||||
assign clk2M = clkdiv[1];
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
module SndADec
|
||||
(
|
||||
input cpu_mx,
|
||||
input cpu_wr,
|
||||
|
||||
output cpu_mw,
|
||||
|
||||
input [15:0] cpu_ad,
|
||||
output cpu_cs_rom,
|
||||
output cpu_cs_ram,
|
||||
output cpu_wr_ram,
|
||||
output cpu_cs_psg0,
|
||||
output cpu_cs_psg1,
|
||||
output cpu_cs_com
|
||||
);
|
||||
|
||||
assign cpu_mw = cpu_mx & cpu_wr;
|
||||
|
||||
assign cpu_cs_rom = ( cpu_ad[15] == 1'b0 );
|
||||
assign cpu_cs_psg0 = ( cpu_ad[15:12] == 4'HA );
|
||||
assign cpu_cs_psg1 = ( cpu_ad[15:12] == 4'HC );
|
||||
assign cpu_cs_com = ( cpu_ad[15:12] == 4'HE );
|
||||
|
||||
assign cpu_cs_ram = ( cpu_ad[15:12] == 4'h8 );
|
||||
assign cpu_wr_ram = cpu_cs_ram & cpu_mw;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Play Request & IRQ Generator
|
||||
//----------------------------------
|
||||
module SndPlayReq
|
||||
(
|
||||
input clk4M,
|
||||
input reset,
|
||||
|
||||
input [7:0] sndno,
|
||||
input sndstart,
|
||||
|
||||
output reg cpu_irq,
|
||||
input cpu_irqa,
|
||||
|
||||
output reg cpu_nmi,
|
||||
input cpu_nmia,
|
||||
|
||||
output reg [7:0] comlatch
|
||||
);
|
||||
|
||||
reg [15:0] timercnt;
|
||||
reg psndstart;
|
||||
|
||||
always @( posedge clk4M or posedge reset ) begin
|
||||
if ( reset ) begin
|
||||
cpu_nmi <= 0;
|
||||
cpu_irq <= 0;
|
||||
comlatch <= 0;
|
||||
timercnt <= 0;
|
||||
psndstart <= 0;
|
||||
end
|
||||
else begin
|
||||
if ( cpu_irqa ) cpu_irq <= 1'b0;
|
||||
if ( cpu_nmia ) cpu_nmi <= 1'b0;
|
||||
|
||||
if ( ( psndstart ^ sndstart ) & sndstart ) begin
|
||||
comlatch <= sndno;
|
||||
cpu_nmi <= 1'b1;
|
||||
end
|
||||
psndstart <= sndstart;
|
||||
|
||||
if ( timercnt == 16666 ) cpu_irq <= 1'b1;
|
||||
if ( timercnt == 33333 ) cpu_irq <= 1'b1;
|
||||
|
||||
timercnt <= ( timercnt == 33333 ) ? 0 : (timercnt+1); // 1/60sec
|
||||
end
|
||||
end
|
||||
|
||||
endmodule
|
||||
@@ -0,0 +1,247 @@
|
||||
// Copyright (c) 2017,19 MiSTer-X
|
||||
|
||||
module FlickySPRITE
|
||||
(
|
||||
input VCLKx4,
|
||||
input VCLK,
|
||||
|
||||
input [8:0] PH,
|
||||
input [8:0] PV,
|
||||
|
||||
output [9:0] sprad,
|
||||
input [15:0] sprdt,
|
||||
|
||||
output [17:0] sprchad,
|
||||
input [7:0] sprchdt,
|
||||
|
||||
output reg sprcoll,
|
||||
output reg [9:0] sprcoll_ad,
|
||||
|
||||
output reg [10:0] sprpx
|
||||
);
|
||||
|
||||
wire [8:0] HPOS = PH+15;
|
||||
wire [8:0] VPOS = PV;
|
||||
|
||||
wire HB = HPOS[8];
|
||||
|
||||
reg [5:0] spr_num;
|
||||
reg [2:0] spr_ofs;
|
||||
|
||||
reg [1:0] phaseHB;
|
||||
reg [7:0] svpos;
|
||||
reg [5:0] hitsprnum [0:31];
|
||||
reg [7:0] hitsprvps [0:31];
|
||||
reg [4:0] hits;
|
||||
|
||||
reg [3:0] phaseHD;
|
||||
reg [4:0] hitr;
|
||||
reg [7:0] yofs;
|
||||
reg [8:0] xpos;
|
||||
reg [2:0] bank;
|
||||
reg [15:0] stride;
|
||||
reg [15:0] srcadrs;
|
||||
reg [1:0] waitcnt;
|
||||
reg [7:0] rdat;
|
||||
reg [10:0] wdat;
|
||||
reg hflip;
|
||||
reg nowflip;
|
||||
reg we;
|
||||
|
||||
wire [15:0] srca = sprdt[15:0] + (stride * yofs);
|
||||
|
||||
wire [10:0] col0 = { 2'b00, spr_num[4:0], nowflip ? rdat[3:0] : rdat[7:4] };
|
||||
wire [10:0] col1 = { 2'b00, spr_num[4:0], nowflip ? rdat[7:4] : rdat[3:0] };
|
||||
|
||||
wire [10:0] _prevpix;
|
||||
reg [10:0] prevpix;
|
||||
wire side = VPOS[0];
|
||||
|
||||
wire [10:0] opix;
|
||||
reg [9:0] rad0,rad1=1;
|
||||
LineBuf lbuf(
|
||||
VCLKx4, rad0, (rad0==rad1), opix,
|
||||
VCLKx4, {~side,xpos}, wdat, we & (wdat[3:0] != 4'h0), _prevpix
|
||||
);
|
||||
always @(posedge VCLK) rad0 <= {side,HPOS};
|
||||
always @(negedge VCLK) begin
|
||||
sprpx <= opix;
|
||||
rad1 <= rad0;
|
||||
end
|
||||
|
||||
assign sprad = { spr_num, spr_ofs };
|
||||
assign sprchad = { bank, srcadrs[14:0] };
|
||||
|
||||
wire [9:0] sprcoll_adr = { spr_num[4:0], prevpix[8:4] };
|
||||
|
||||
|
||||
`define SPSTART 0
|
||||
`define SPEND 31
|
||||
|
||||
always @ ( negedge VCLKx4 ) begin
|
||||
|
||||
// in H-Blank
|
||||
if ( HB ) begin
|
||||
|
||||
phaseHD <= 0;
|
||||
we <= 1'b0;
|
||||
sprcoll <= 1'b0;
|
||||
|
||||
case ( phaseHB )
|
||||
|
||||
// initialize
|
||||
2'h0: begin
|
||||
svpos <= VPOS+1;
|
||||
spr_num <= `SPSTART;
|
||||
spr_ofs <= 0;
|
||||
hits <= 0;
|
||||
phaseHB <= 2'h1;
|
||||
end
|
||||
|
||||
// check v-hit
|
||||
2'h1: begin
|
||||
if ( sprdt[7:0] != 8'hFF ) begin
|
||||
if ( ( svpos >= sprdt[7:0] ) & ( svpos < sprdt[15:8] ) ) begin
|
||||
hitsprnum[hits] <= spr_num;
|
||||
hitsprvps[hits] <= (svpos-sprdt[7:0])+1;
|
||||
hits <= hits+1;
|
||||
end
|
||||
end
|
||||
phaseHB <= ( spr_num == `SPEND ) ? 2'h2 : 2'h1;
|
||||
spr_num <= spr_num+1;
|
||||
end
|
||||
|
||||
default:;
|
||||
|
||||
endcase
|
||||
|
||||
end
|
||||
|
||||
// in H-Disp
|
||||
else begin
|
||||
|
||||
phaseHB <= 0;
|
||||
|
||||
case ( phaseHD )
|
||||
|
||||
// initialize
|
||||
0: begin
|
||||
hitr <= 0;
|
||||
we <= 1'b0;
|
||||
sprcoll <= 0;
|
||||
phaseHD <= ( hits > 0 ) ? 1 : 15;
|
||||
end
|
||||
|
||||
// get hit sprite number
|
||||
1: begin
|
||||
spr_num <= hitsprnum[hitr];
|
||||
spr_ofs <= 1;
|
||||
phaseHD <= 2;
|
||||
end
|
||||
|
||||
// get yofs/xpos/bank
|
||||
2: begin
|
||||
yofs <= hitsprvps[hitr];
|
||||
xpos <= sprdt[8:1]+14;
|
||||
bank <= { sprdt[13], sprdt[14], sprdt[15] };
|
||||
spr_ofs <= 2;
|
||||
phaseHD <= 3;
|
||||
end
|
||||
|
||||
// get stride
|
||||
3: begin
|
||||
stride <= sprdt;
|
||||
spr_ofs <= 3;
|
||||
phaseHD <= 4;
|
||||
end
|
||||
|
||||
// get srcadrs & calc chiprom address
|
||||
4: begin
|
||||
srcadrs <= srca;
|
||||
hflip <= srca[15];
|
||||
waitcnt <= 3;
|
||||
phaseHD <= 5;
|
||||
end
|
||||
|
||||
// wait chiprom setup
|
||||
5: begin
|
||||
waitcnt <= waitcnt-1;
|
||||
phaseHD <= ( waitcnt == 0 ) ? 6 : 5;
|
||||
end
|
||||
|
||||
// rendering to linebuf
|
||||
6: begin
|
||||
sprcoll <= 1'b0;
|
||||
we <= 1'b0;
|
||||
rdat <= sprchdt;
|
||||
nowflip <= srcadrs[15];
|
||||
srcadrs <= hflip ? (srcadrs-1) : (srcadrs+1);
|
||||
phaseHD <= 7;
|
||||
end
|
||||
7: begin
|
||||
prevpix <= _prevpix;
|
||||
if ( col0[3:0] != 4'hF ) begin
|
||||
wdat <= col0;
|
||||
we <= 1'b1;
|
||||
phaseHD <= 8;
|
||||
end
|
||||
else begin
|
||||
we <= 1'b0;
|
||||
phaseHD <= 14;
|
||||
end
|
||||
end
|
||||
8: begin
|
||||
// sprite collide process
|
||||
we <= 1'b0;
|
||||
if ( col0[3:0] != 4'h0 ) begin
|
||||
if ( prevpix[3:0] != 4'h0 ) begin
|
||||
sprcoll <= 1'b1;
|
||||
sprcoll_ad <= sprcoll_adr;
|
||||
end
|
||||
end
|
||||
xpos <= xpos+1;
|
||||
phaseHD <= 9;
|
||||
end
|
||||
9: begin
|
||||
prevpix <= _prevpix;
|
||||
sprcoll <= 1'b0;
|
||||
if ( col1[3:0] != 4'hF ) begin
|
||||
wdat <= col1;
|
||||
we <= 1'b1;
|
||||
phaseHD <= 10;
|
||||
end
|
||||
else begin
|
||||
we <= 1'b0;
|
||||
phaseHD <= 14;
|
||||
end
|
||||
end
|
||||
10: begin
|
||||
// sprite collide process
|
||||
we <= 1'b0;
|
||||
if ( col1[3:0] != 4'h0 ) begin
|
||||
if ( prevpix[3:0] != 4'h0 ) begin
|
||||
sprcoll <= 1'b1;
|
||||
sprcoll_ad <= sprcoll_adr;
|
||||
end
|
||||
end
|
||||
xpos <= xpos+1;
|
||||
phaseHD <= 6;
|
||||
end
|
||||
|
||||
// process next hit sprite
|
||||
14: begin
|
||||
phaseHD <= ( hitr == (hits-1) ) ? 15 : 1;
|
||||
hitr <= hitr+1;
|
||||
end
|
||||
|
||||
default: begin
|
||||
we <= 1'b0;
|
||||
sprcoll <= 1'b0;
|
||||
end
|
||||
|
||||
endcase
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
endmodule
|
||||
@@ -0,0 +1,605 @@
|
||||
// Copyright (c) 2017,19 MiSTer-X
|
||||
|
||||
module FlickyVIDEO
|
||||
(
|
||||
input VCLKx8,
|
||||
input VCLKx4,
|
||||
input VCLKx2,
|
||||
input VCLK,
|
||||
|
||||
input [8:0] PH,
|
||||
input [8:0] PV,
|
||||
|
||||
output VBLK,
|
||||
output [7:0] RGB8,
|
||||
|
||||
input PALDSW,
|
||||
|
||||
input cpu_cl,
|
||||
input [15:0] cpu_ad,
|
||||
input cpu_wr,
|
||||
input [7:0] cpu_dw,
|
||||
output cpu_rd,
|
||||
output [7:0] cpu_dr,
|
||||
output [14:0] spr_rom_addr,
|
||||
input [7:0] spr_rom_do,
|
||||
output [13:0] tile_rom_addr,
|
||||
input [23:0] tile_rom_do
|
||||
);
|
||||
|
||||
// CPU Interface
|
||||
wire [10:0] palno;
|
||||
wire [7:0] palout;
|
||||
|
||||
wire [9:0] sprad;
|
||||
wire [15:0] sprdt;
|
||||
|
||||
wire [9:0] vram0ad;
|
||||
wire [15:0] vram0dt;
|
||||
wire [9:0] vram1ad;
|
||||
wire [15:0] vram1dt;
|
||||
|
||||
wire [5:0] mixcoll_ad;
|
||||
wire mixcoll;
|
||||
wire [9:0] sprcoll_ad;
|
||||
wire sprcoll;
|
||||
|
||||
wire [15:0] scrx;
|
||||
wire [7:0] scry;
|
||||
|
||||
VIDCPUINTF intf(
|
||||
cpu_cl,
|
||||
cpu_ad, cpu_wr, cpu_dw,
|
||||
cpu_rd, cpu_dr,
|
||||
|
||||
VCLKx4, VCLK,
|
||||
palno, palout,
|
||||
sprad, sprdt,
|
||||
vram0ad, vram0dt,
|
||||
vram1ad, vram1dt,
|
||||
mixcoll_ad, mixcoll,
|
||||
sprcoll_ad, sprcoll,
|
||||
scrx, scry
|
||||
);
|
||||
|
||||
|
||||
// HV Coordinate Generator
|
||||
wire [8:0] HPOS, VPOS;
|
||||
wire [8:0] BG0HP, BG0VP;
|
||||
wire [8:0] BG1HP, BG1VP;
|
||||
VIDHVGEN hv(
|
||||
PH, PV,
|
||||
scrx, scry,
|
||||
HPOS, VPOS,
|
||||
BG0HP, BG0VP,
|
||||
BG1HP, BG1VP,
|
||||
VBLK
|
||||
);
|
||||
|
||||
|
||||
// Sprite Engine
|
||||
wire [10:0] SPRPX;
|
||||
wire [14:0] sprchad;
|
||||
wire [7:0] sprchdt;
|
||||
//DLROM #(15,8) sprchr(VCLKx8,sprchad,sprchdt, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:15]==2'b0_1)); // $08000-$0FFFF
|
||||
spr_rom spr_rom(
|
||||
.clk(VCLKx8),
|
||||
.addr(sprchad),
|
||||
.data(sprchdt)
|
||||
);
|
||||
//assign spr_rom_addr = sprchad;
|
||||
//assign sprchdt = spr_rom_do;
|
||||
|
||||
|
||||
FlickySPRITE sprite(
|
||||
.VCLKx4(VCLKx4),.VCLK(VCLK),
|
||||
.PH(HPOS),.PV(VPOS),
|
||||
.sprad(sprad),.sprdt(sprdt),
|
||||
.sprchad(sprchad),.sprchdt(sprchdt),
|
||||
.sprcoll(sprcoll),.sprcoll_ad(sprcoll_ad),
|
||||
.sprpx(SPRPX)
|
||||
);
|
||||
|
||||
|
||||
// BG Scanline Generator
|
||||
wire [10:0] BG0PX, BG1PX;
|
||||
wire [13:0] tile0ad, tile1ad, tilead;
|
||||
wire [23:0] tile0dt, tile1dt, tiledt;
|
||||
TileChrMUX tilemux(VCLKx8, tile0ad, tile0dt, tile1ad, tile1dt, tilead, tiledt);
|
||||
//TILES
|
||||
//FlickyTileChr tilechr(VCLKx8, tilead, tiledt, ROMCL,ROMAD,ROMDT,ROMEN );
|
||||
assign tile_rom_addr = tilead;
|
||||
assign tiledt = tile_rom_do;
|
||||
BGGEN bg0(VCLK,BG0HP,BG0VP,vram0ad,vram0dt,tile0ad,tile0dt,BG0PX);
|
||||
BGGEN bg1(VCLK,BG1HP,BG1VP,vram1ad,vram1dt,tile1ad,tile1dt,BG1PX);
|
||||
|
||||
|
||||
// Color Mixer & RGB Output
|
||||
wire [7:0] cltidx,cltval;
|
||||
//DLROM #(8,8) clut(VCLKx2, cltidx, cltval, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:8]==9'b1_1110_0000) ); // $1E000-$1E0FF
|
||||
clut clut(
|
||||
.clk(VCLKx2),
|
||||
.addr(cltidx),
|
||||
.data(cltval)
|
||||
);
|
||||
|
||||
COLMIX cmix(
|
||||
VCLK,
|
||||
BG0PX, BG1PX, SPRPX,
|
||||
PALDSW, HPOS, VPOS,
|
||||
cltidx, cltval,
|
||||
mixcoll, mixcoll_ad,
|
||||
palno, palout,
|
||||
RGB8
|
||||
);
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// CPU Interface
|
||||
//----------------------------------
|
||||
module VIDCPUINTF
|
||||
(
|
||||
input cpu_cl,
|
||||
input [15:0] cpu_ad,
|
||||
input cpu_wr,
|
||||
input [7:0] cpu_dw,
|
||||
output cpu_rd,
|
||||
output [7:0] cpu_dr,
|
||||
|
||||
input VCLKx4,
|
||||
input VCLK,
|
||||
|
||||
input [10:0] palno,
|
||||
output [7:0] palout,
|
||||
|
||||
input [9:0] sprad,
|
||||
output [15:0] sprdt,
|
||||
|
||||
input [9:0] vram0ad,
|
||||
output [15:0] vram0dt,
|
||||
|
||||
input [9:0] vram1ad,
|
||||
output [15:0] vram1dt,
|
||||
|
||||
input [5:0] mixcoll_ad,
|
||||
input mixcoll,
|
||||
|
||||
input [9:0] sprcoll_ad,
|
||||
input sprcoll,
|
||||
|
||||
output reg [15:0] scrx,
|
||||
output reg [7:0] scry
|
||||
);
|
||||
|
||||
// CPU Address Decoders
|
||||
wire cpu_cs_palram;
|
||||
wire cpu_cs_spram;
|
||||
wire cpu_cs_mixcoll;
|
||||
wire cpu_cs_sprcoll;
|
||||
wire cpu_cs_vram0;
|
||||
wire cpu_cs_vram1;
|
||||
|
||||
wire cpu_wr_palram;
|
||||
wire cpu_wr_spram;
|
||||
wire cpu_wr_mixcoll;
|
||||
wire cpu_wr_mixcollclr;
|
||||
wire cpu_wr_sprcoll;
|
||||
wire cpu_wr_sprcollclr;
|
||||
wire cpu_wr_vram0;
|
||||
wire cpu_wr_vram1;
|
||||
wire cpu_wr_scrreg;
|
||||
|
||||
VIDADEC adecs(
|
||||
cpu_ad,
|
||||
cpu_wr,
|
||||
|
||||
cpu_cs_palram,
|
||||
cpu_cs_spram,
|
||||
cpu_cs_mixcoll,
|
||||
cpu_cs_sprcoll,
|
||||
cpu_cs_vram0,
|
||||
cpu_cs_vram1,
|
||||
|
||||
cpu_wr_palram,
|
||||
cpu_wr_spram,
|
||||
cpu_wr_mixcoll,
|
||||
cpu_wr_mixcollclr,
|
||||
cpu_wr_sprcoll,
|
||||
cpu_wr_sprcollclr,
|
||||
cpu_wr_vram0,
|
||||
cpu_wr_vram1,
|
||||
cpu_wr_scrreg,
|
||||
|
||||
cpu_rd
|
||||
);
|
||||
|
||||
// Scroll Register
|
||||
always @ ( posedge cpu_cl ) begin
|
||||
if (cpu_wr_scrreg) begin
|
||||
case({cpu_ad[6],cpu_ad[0]})
|
||||
2'b11: scrx[15:8] <= cpu_dw;
|
||||
2'b10: scrx[ 7:0] <= cpu_dw;
|
||||
2'b01: scry <= cpu_dw;
|
||||
2'b00: ;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
// Palette RAM
|
||||
wire [7:0] cpu_rd_palram;
|
||||
DPRAM2048 palram(
|
||||
cpu_cl, cpu_ad[10:0], cpu_dw, cpu_wr_palram,
|
||||
VCLK, palno, palout, cpu_rd_palram
|
||||
);
|
||||
|
||||
|
||||
// Sprite Attribute RAM
|
||||
wire [7:0] cpu_rd_spram;
|
||||
DPRAM2048_8_16 sprram(
|
||||
cpu_cl, cpu_ad[10:0], cpu_dw, cpu_wr_spram,
|
||||
VCLKx4, sprad, sprdt, cpu_rd_spram
|
||||
);
|
||||
|
||||
|
||||
// Collision RAM (Mixer & Sprite)
|
||||
wire noclip = 1'b1;
|
||||
wire [7:0] cpu_rd_mixcoll;
|
||||
wire [7:0] cpu_rd_sprcoll;
|
||||
COLLRAM_M mixc(
|
||||
cpu_cl,cpu_ad[5:0],cpu_wr_mixcoll,cpu_wr_mixcollclr,cpu_rd_mixcoll,
|
||||
VCLKx4,mixcoll_ad,mixcoll & noclip
|
||||
);
|
||||
COLLRAM_S sprc(
|
||||
cpu_cl,cpu_ad[9:0],cpu_wr_sprcoll,cpu_wr_sprcollclr,cpu_rd_sprcoll,
|
||||
VCLKx4,sprcoll_ad,sprcoll & noclip
|
||||
);
|
||||
|
||||
|
||||
// VRAM
|
||||
wire [7:0] cpu_rd_vram0, cpu_rd_vram1;
|
||||
VRAM vram0(
|
||||
cpu_cl, cpu_ad[10:0], cpu_rd_vram0, cpu_dw, cpu_wr_vram0,
|
||||
VCLKx4, vram0ad, vram0dt
|
||||
);
|
||||
VRAM vram1(
|
||||
cpu_cl, cpu_ad[10:0], cpu_rd_vram1, cpu_dw, cpu_wr_vram1,
|
||||
VCLKx4, vram1ad, vram1dt
|
||||
);
|
||||
|
||||
|
||||
// CPU Read Data Selector
|
||||
dataselector6 videodsel(
|
||||
cpu_dr,
|
||||
cpu_cs_palram, cpu_rd_palram,
|
||||
cpu_cs_vram0, cpu_rd_vram0,
|
||||
cpu_cs_vram1, cpu_rd_vram1,
|
||||
cpu_cs_spram, cpu_rd_spram,
|
||||
cpu_cs_sprcoll, cpu_rd_sprcoll,
|
||||
cpu_cs_mixcoll, cpu_rd_mixcoll,
|
||||
8'hFF
|
||||
);
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Tile ROM
|
||||
//----------------------------------
|
||||
module TileChrMUX
|
||||
(
|
||||
input VCLKx8,
|
||||
|
||||
input [13:0] tile0ad,
|
||||
output reg [23:0] tile0dt,
|
||||
|
||||
input [13:0] tile1ad,
|
||||
output reg [23:0] tile1dt,
|
||||
|
||||
output [13:0] tilead,
|
||||
input [23:0] tiledt
|
||||
);
|
||||
|
||||
reg tphase;
|
||||
always @(negedge VCLKx8) begin
|
||||
if (tphase) tile1dt <= tiledt;
|
||||
else tile0dt <= tiledt;
|
||||
tphase <= ~tphase;
|
||||
end
|
||||
assign tilead = tphase ? tile1ad : tile0ad;
|
||||
|
||||
endmodule
|
||||
/*
|
||||
module FlickyTileChr
|
||||
(
|
||||
input clk,
|
||||
input [13:0] adr,
|
||||
output [23:0] dat,
|
||||
|
||||
input ROMCL, // Downloaded ROM image
|
||||
input [24:0] ROMAD,
|
||||
input [7:0] ROMDT,
|
||||
input ROMEN
|
||||
);
|
||||
|
||||
wire [23:0] t0dt,t1dt;
|
||||
assign dat = adr[13] ? t1dt : t0dt;
|
||||
|
||||
//DLROM #(13,8) t00( clk, adr[12:0], t0dt[7:0] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_000)); // $10000-$11FFF
|
||||
//tile1 tile1(
|
||||
// .clk(clk),
|
||||
// .addr(adr[12:0]),
|
||||
// .data(t0dt[7:0])
|
||||
//);
|
||||
|
||||
|
||||
//DLROM #(13,8) t01( clk, adr[12:0], t0dt[15:8] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_001)); // $12000-$13FFF
|
||||
//DLROM #(13,8) t02( clk, adr[12:0], t0dt[23:16],ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_010)); // $14000-$15FFF
|
||||
|
||||
//DLROM #(13,8) t10( clk, adr[12:0], t1dt[7:0] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_011)); // $16000-$17FFF
|
||||
//DLROM #(13,8) t11( clk, adr[12:0], t1dt[15:8] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_100)); // $18000-$19FFF
|
||||
//DLROM #(13,8) t12( clk, adr[12:0], t1dt[23:16],ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_101)); // $1A000-$1BFFF
|
||||
|
||||
endmodule*/
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// HV Coordinate Generator
|
||||
//----------------------------------
|
||||
module VIDHVGEN
|
||||
(
|
||||
input [8:0] PH,
|
||||
input [8:0] PV,
|
||||
|
||||
input [15:0] scrx,
|
||||
input [7:0] scry,
|
||||
|
||||
output [8:0] HPOS,
|
||||
output [8:0] VPOS,
|
||||
|
||||
output [8:0] BG0HP,
|
||||
output [8:0] BG0VP,
|
||||
|
||||
output [8:0] BG1HP,
|
||||
output [8:0] BG1VP,
|
||||
|
||||
output VBLK
|
||||
);
|
||||
|
||||
assign VBLK = (PV == 8'd224) & (PH <= 8'd64);
|
||||
|
||||
assign HPOS = PH+1;
|
||||
assign VPOS = PV;
|
||||
|
||||
wire [8:0] BGHSCR = (511-scrx[9:1])-10;
|
||||
wire [8:0] BGVSCR = { 1'b0, scry };
|
||||
|
||||
assign BG0HP = BGHSCR+HPOS;
|
||||
assign BG0VP = BGVSCR+VPOS;
|
||||
|
||||
assign BG1HP = HPOS+3;
|
||||
assign BG1VP = VPOS;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// CPU Address Decoders
|
||||
//----------------------------------
|
||||
module VIDADEC
|
||||
(
|
||||
input [15:0] cpu_ad,
|
||||
input cpu_wr,
|
||||
|
||||
output cpu_cs_palram,
|
||||
output cpu_cs_spram,
|
||||
output cpu_cs_mixcoll,
|
||||
output cpu_cs_sprcoll,
|
||||
output cpu_cs_vram0,
|
||||
output cpu_cs_vram1,
|
||||
|
||||
output cpu_wr_palram,
|
||||
output cpu_wr_spram,
|
||||
output cpu_wr_mixcoll,
|
||||
output cpu_wr_mixcollclr,
|
||||
output cpu_wr_sprcoll,
|
||||
output cpu_wr_sprcollclr,
|
||||
output cpu_wr_vram0,
|
||||
output cpu_wr_vram1,
|
||||
output cpu_wr_scrreg,
|
||||
|
||||
output cpu_rd
|
||||
);
|
||||
|
||||
assign cpu_cs_palram = ( cpu_ad[15:11] == 5'b1101_1 );
|
||||
assign cpu_cs_spram = ( cpu_ad[15:11] == 5'b11010 );
|
||||
assign cpu_cs_mixcoll = ( cpu_ad[15:10] == 6'b1111_00 );
|
||||
wire cpu_cs_mixcollclr = ( cpu_ad[15:10] == 6'b1111_01 );
|
||||
assign cpu_cs_sprcoll = ( cpu_ad[15:10] == 6'b1111_10 );
|
||||
wire cpu_cs_sprcollclr = ( cpu_ad[15:10] == 6'b1111_11 );
|
||||
assign cpu_cs_vram0 = ( cpu_ad[15:11] == 5'b11100 );
|
||||
assign cpu_cs_vram1 = ( cpu_ad[15:11] == 5'b11101 );
|
||||
wire cpu_cs_scrreg = ((cpu_ad[15: 0] & 16'b1111_1111_1011_1110) == 16'b1110_1111_1011_1100);
|
||||
|
||||
|
||||
assign cpu_wr_palram = cpu_cs_palram & cpu_wr;
|
||||
assign cpu_wr_spram = cpu_cs_spram & cpu_wr;
|
||||
assign cpu_wr_mixcoll = cpu_cs_mixcoll & cpu_wr;
|
||||
assign cpu_wr_mixcollclr = cpu_cs_mixcollclr & cpu_wr;
|
||||
assign cpu_wr_sprcoll = cpu_cs_sprcoll & cpu_wr;
|
||||
assign cpu_wr_sprcollclr = cpu_cs_sprcollclr & cpu_wr;
|
||||
assign cpu_wr_vram0 = cpu_cs_vram0 & cpu_wr;
|
||||
assign cpu_wr_vram1 = cpu_cs_vram1 & cpu_wr;
|
||||
assign cpu_wr_scrreg = cpu_cs_scrreg & cpu_wr;
|
||||
|
||||
|
||||
assign cpu_rd = cpu_cs_palram |
|
||||
cpu_cs_vram0 |
|
||||
cpu_cs_vram1 |
|
||||
cpu_cs_spram |
|
||||
cpu_cs_sprcoll |
|
||||
cpu_cs_mixcoll ;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// BG Scanline Generator
|
||||
//----------------------------------
|
||||
module BGGEN
|
||||
(
|
||||
input VCLK,
|
||||
|
||||
input [8:0] HP,
|
||||
input [8:0] VP,
|
||||
|
||||
output [9:0] VRAMAD,
|
||||
input [15:0] VRAMDT,
|
||||
|
||||
output [13:0] TILEAD,
|
||||
input [23:0] TILEDT,
|
||||
|
||||
output [10:0] OPIX
|
||||
);
|
||||
|
||||
assign VRAMAD = { VP[7:3], HP[7:3] };
|
||||
assign TILEAD = { VRAMDT[15], VRAMDT[10:0], VP[2:0] };
|
||||
|
||||
reg [31:0] BGREG;
|
||||
wire [23:0] BGCD = BGREG[23:0];
|
||||
wire [7:0] BGPN = BGREG[31:24];
|
||||
|
||||
wire [31:0] BGPIX;
|
||||
always @( posedge VCLK ) BGREG <= BGPIX;
|
||||
|
||||
dataselector1_32 pixsft(
|
||||
BGPIX,
|
||||
( HP[2:0] != 2 ),{ BGPN, BGCD[22:0], 1'b0 },
|
||||
{ VRAMDT[12:5], TILEDT }
|
||||
);
|
||||
|
||||
assign OPIX = { BGPN, BGCD[7], BGCD[15], BGCD[23] };
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Color Mixer & RGB Output
|
||||
//----------------------------------
|
||||
module COLMIX
|
||||
(
|
||||
input VCLK,
|
||||
|
||||
input [10:0] BG0PX,
|
||||
input [10:0] BG1PX,
|
||||
input [10:0] SPRPX,
|
||||
|
||||
input PALDSW,
|
||||
input [8:0] HPOS,
|
||||
input [8:0] VPOS,
|
||||
|
||||
output [7:0] cltidx,
|
||||
input [7:0] cltval,
|
||||
|
||||
output mixcoll,
|
||||
output [5:0] mixcoll_ad,
|
||||
|
||||
output [10:0] palno,
|
||||
input [7:0] palout,
|
||||
|
||||
output reg [7:0] RGB8
|
||||
);
|
||||
|
||||
assign cltidx = { 1'b0,
|
||||
BG0PX[10:9],(BG0PX[2:0]==0),
|
||||
BG1PX[10:9],(BG1PX[2:0]==0),
|
||||
(SPRPX[3:0]==0)
|
||||
};
|
||||
|
||||
assign mixcoll = ~(cltval[2]);
|
||||
assign mixcoll_ad = { cltval[3], SPRPX[8:4] };
|
||||
|
||||
wire [10:0] palno_i;
|
||||
dataselector2_11 colsel(
|
||||
palno_i,
|
||||
cltval[1], ( 11'h400 | BG0PX[8:0] ),
|
||||
cltval[0], ( 11'h200 | BG1PX[8:0] ),
|
||||
( 11'h000 | SPRPX[8:0] )
|
||||
);
|
||||
|
||||
wire [10:0] palno_d = {HPOS[7],VPOS[7:2],HPOS[6:3]};
|
||||
|
||||
assign palno = PALDSW ? palno_d : palno_i;
|
||||
|
||||
always @( negedge VCLK ) RGB8 <= palout;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Collision RAM
|
||||
//----------------------------------
|
||||
module COLLRAM_M
|
||||
(
|
||||
input cpu_cl,
|
||||
input [5:0] cpu_ad,
|
||||
input cpu_wr_coll,
|
||||
input cpu_wr_collclr,
|
||||
output [7:0] cpu_rd_coll,
|
||||
|
||||
input VCLKx4,
|
||||
input [5:0] coll_ad,
|
||||
input coll
|
||||
);
|
||||
|
||||
reg [63:0] core;
|
||||
reg coll_rd, coll_sm;
|
||||
|
||||
always @(posedge cpu_cl) coll_rd <= core[cpu_ad];
|
||||
|
||||
always @(posedge VCLKx4) begin
|
||||
if (cpu_cl) begin
|
||||
if (cpu_wr_coll) core[cpu_ad] <= 1'b0;
|
||||
if (cpu_wr_collclr) coll_sm <= 1'b0;
|
||||
end
|
||||
else coll_sm <= coll;
|
||||
if (coll) core[coll_ad] <= 1'b1;
|
||||
end
|
||||
|
||||
assign cpu_rd_coll = { coll_sm, 6'b111111, coll_rd };
|
||||
|
||||
endmodule
|
||||
|
||||
module COLLRAM_S
|
||||
(
|
||||
input cpu_cl,
|
||||
input [9:0] cpu_ad,
|
||||
input cpu_wr_coll,
|
||||
input cpu_wr_collclr,
|
||||
output [7:0] cpu_rd_coll,
|
||||
|
||||
input VCLKx4,
|
||||
input [9:0] coll_ad,
|
||||
input coll
|
||||
);
|
||||
|
||||
reg [1023:0] core;
|
||||
reg coll_rd, coll_sm;
|
||||
|
||||
always @(posedge cpu_cl) coll_rd <= core[cpu_ad];
|
||||
|
||||
always @(posedge VCLKx4) begin
|
||||
if (cpu_cl) begin
|
||||
if (cpu_wr_coll) core[cpu_ad] <= 1'b0;
|
||||
if (cpu_wr_collclr) coll_sm <= 1'b0;
|
||||
end
|
||||
else coll_sm <= coll;
|
||||
if (coll) core[coll_ad] <= 1'b1;
|
||||
end
|
||||
|
||||
assign cpu_rd_coll = { coll_sm, 6'b111111, coll_rd };
|
||||
|
||||
endmodule
|
||||
|
||||
@@ -0,0 +1,282 @@
|
||||
|
||||
module Flicky_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 = {
|
||||
"STARJACK;ROM;",
|
||||
"O34,Scanlines,Off,25%,50%,75%;",
|
||||
"O5,Blend,Off,On;",
|
||||
|
||||
"O89,Lives,3,4,5,Infinite;",
|
||||
"OAB,Extend,30k/80k/160k,30k/100k/200k,40k/120k/240k,40k/140k/280k;",
|
||||
"OC,Difficulty,Easy,Hard;",
|
||||
|
||||
"T0,Reset;",
|
||||
"V,v1.0.",`BUILD_DATE
|
||||
};
|
||||
|
||||
|
||||
wire [1:0] scanlines = status[4:3];
|
||||
wire blend = status[5];
|
||||
wire [1:0] dsLives = ~status[9:8];
|
||||
wire [1:0] dsExtend = ~status[11:10];
|
||||
wire dsDifclt = ~status[12];
|
||||
|
||||
|
||||
assign LED = ~ioctl_downl;
|
||||
assign SDRAM_CLK = sdram_clk;
|
||||
assign SDRAM_CKE = 1;
|
||||
assign AUDIO_R = AUDIO_L;
|
||||
|
||||
wire clk_sys, sdram_clk;
|
||||
wire pll_locked;
|
||||
pll_mist pll(
|
||||
.inclk0(CLOCK_27),
|
||||
.c0(clk_sys),//48
|
||||
.c1(sdram_clk),//96
|
||||
.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 key_pressed;
|
||||
wire key_strobe;
|
||||
wire [7:0] key_code;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
wire no_csync;
|
||||
|
||||
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] audio;
|
||||
wire hs, vs, cs, hb, vb;
|
||||
wire blankn = ~(hb | vb);
|
||||
wire [2:0] g, r;
|
||||
wire [1:0] b;
|
||||
wire [15:0] rom_addr;
|
||||
wire [15:0] rom_do;
|
||||
wire [14:0] spr_rom_addr;
|
||||
wire [15:0] spr_rom_do;
|
||||
wire [12:0] snd_rom_addr;
|
||||
wire [15:0] snd_rom_do;
|
||||
wire [13:0] tile_rom_addr;
|
||||
wire [23:0] tile_rom_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_sys ),
|
||||
.SPI_SCK ( SPI_SCK ),
|
||||
.SPI_SS2 ( SPI_SS2 ),
|
||||
.SPI_DI ( SPI_DI ),
|
||||
.ioctl_download( ioctl_downl ),
|
||||
.ioctl_index ( ioctl_index ),
|
||||
.ioctl_wr ( ioctl_wr ),
|
||||
.ioctl_addr ( ioctl_addr ),
|
||||
.ioctl_dout ( ioctl_dout )
|
||||
);
|
||||
|
||||
|
||||
reg port1_req, port2_req;
|
||||
wire [24:0] tl_ioctl_addr = ioctl_addr - 17'h1A000;
|
||||
sdram sdram(
|
||||
.*,
|
||||
.init_n ( pll_locked ),
|
||||
.clk ( sdram_clk ),
|
||||
|
||||
// port1 used for main + sound CPUs
|
||||
.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, rom_addr[15:1]}),
|
||||
.cpu1_q ( rom_do ),
|
||||
.cpu2_addr ( ioctl_downl ? 16'hffff : (17'h10000 + spr_rom_addr[14:1]) ),
|
||||
.cpu2_q ( spr_rom_do ),
|
||||
.cpu3_addr ( ioctl_downl ? 16'hffff : (16'h8000 + snd_rom_addr[12:1]) ),
|
||||
.cpu3_q ( snd_rom_do ),
|
||||
|
||||
// port2 for sprite graphics
|
||||
.port2_req ( port2_req ),
|
||||
.port2_ack ( ),
|
||||
.port2_a ( {tl_ioctl_addr[17:16], tl_ioctl_addr[13:0], tl_ioctl_addr[15]} ), // merge tile roms to 32-bit wide words
|
||||
.port2_ds ( {tl_ioctl_addr[14], ~tl_ioctl_addr[14]} ),
|
||||
.port2_we ( ioctl_downl ),
|
||||
.port2_d ( {ioctl_dout, ioctl_dout} ),
|
||||
.port2_q ( ),
|
||||
|
||||
.sp_addr ( ioctl_downl ? 15'h7fff : tile_rom_addr ),
|
||||
.sp_q ( tile_rom_do )
|
||||
);
|
||||
|
||||
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
|
||||
end
|
||||
|
||||
reg reset = 1;
|
||||
reg rom_loaded = 0;
|
||||
always @(posedge sdram_clk) begin
|
||||
reg ioctl_downlD;
|
||||
ioctl_downlD <= ioctl_downl;
|
||||
|
||||
if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1;
|
||||
reset <= status[0] | buttons[1] | ~rom_loaded;
|
||||
end
|
||||
|
||||
wire [7:0] INP0 = ~{m_left, m_right,3'd0,m_fireA,2'd0};
|
||||
wire [7:0] INP1 = ~{m_left2,m_right2,3'd0,m_fire2A,2'd0};
|
||||
wire [7:0] INP2 = ~{2'd0,m_two_players, m_one_player,3'd0, m_coin1};
|
||||
|
||||
wire [7:0] DSW0 = 8'hFF;
|
||||
wire [7:0] DSW1 = {dsDifclt,dsExtend,dsLives,2'b00};
|
||||
|
||||
FPGA_FLICKY FPGA_FLICKY(
|
||||
.clk48M(clk_sys),
|
||||
.reset(reset),
|
||||
|
||||
.INP0(INP0),
|
||||
.INP1(INP1),
|
||||
.INP2(INP2),
|
||||
|
||||
.DSW0(DSW0),
|
||||
.DSW1(DSW1),
|
||||
.video_r(r),
|
||||
.video_g(g),
|
||||
.video_b(b),
|
||||
.video_hs(hs),
|
||||
.video_vs(vs),
|
||||
.video_hb(hb),
|
||||
.video_vb(vb),
|
||||
.cpu_rom_addr(rom_addr),
|
||||
.cpu_rom_do( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ),
|
||||
.snd_rom_addr(snd_rom_addr),
|
||||
.snd_rom_do(snd_rom_addr[0] ? snd_rom_do[15:8] : snd_rom_do[7:0] ),
|
||||
.spr_rom_addr(spr_rom_addr),//Internal for now
|
||||
.spr_rom_do(spr_rom_addr[0] ? spr_rom_do[15:8] : spr_rom_do[7:0] ),
|
||||
.tile_rom_addr(tile_rom_addr),
|
||||
.tile_rom_do(tile_rom_do),
|
||||
.SOUT(audio)
|
||||
);
|
||||
|
||||
|
||||
mist_video #(.COLOR_DEPTH(3), .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,b[1]} : 0 ),
|
||||
.HSync ( hs ),
|
||||
.VSync ( vs ),
|
||||
.VGA_R ( VGA_R ),
|
||||
.VGA_G ( VGA_G ),
|
||||
.VGA_B ( VGA_B ),
|
||||
.VGA_VS ( VGA_VS ),
|
||||
.VGA_HS ( VGA_HS ),
|
||||
.ce_divider ( 1'b0 ),
|
||||
.blend ( blend ),
|
||||
.rotate ( 2'b0 ),
|
||||
.scandoubler_disable(scandoublerD ),
|
||||
.scanlines ( scanlines ),
|
||||
.ypbpr ( ypbpr ),
|
||||
.no_csync ( no_csync )
|
||||
);
|
||||
|
||||
dac #(
|
||||
.C_bits(16))
|
||||
dac(
|
||||
.clk_i(clk_sys),
|
||||
.res_n_i(1),
|
||||
.dac_i(audio),
|
||||
.dac_o(AUDIO_L)
|
||||
);
|
||||
|
||||
wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF;
|
||||
wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F;
|
||||
wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players;
|
||||
|
||||
arcade_inputs inputs (
|
||||
.clk ( clk_sys ),
|
||||
.key_strobe ( key_strobe ),
|
||||
.key_pressed ( key_pressed ),
|
||||
.key_code ( key_code ),
|
||||
.joystick_0 ( joystick_0 ),
|
||||
.joystick_1 ( joystick_1 ),
|
||||
.rotate ( 1'b0 ),
|
||||
.orientation ( 2'b00 ),
|
||||
.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
|
||||
@@ -0,0 +1,41 @@
|
||||
module HVGEN
|
||||
(
|
||||
output [8:0] HPOS,
|
||||
output [8:0] VPOS,
|
||||
input PCLK,
|
||||
input [14:0] iRGB,
|
||||
|
||||
output reg [14:0] oRGB,
|
||||
output reg HBLK = 1,
|
||||
output reg VBLK = 1,
|
||||
output reg HSYN = 1,
|
||||
output reg VSYN = 1
|
||||
);
|
||||
|
||||
reg [8:0] hcnt = 0;
|
||||
reg [8:0] vcnt = 0;
|
||||
|
||||
assign HPOS = hcnt-16;
|
||||
assign VPOS = vcnt;
|
||||
|
||||
always @(posedge PCLK) begin
|
||||
case (hcnt)
|
||||
15: begin HBLK <= 0; hcnt <= hcnt+1; end
|
||||
272: begin HBLK <= 1; hcnt <= hcnt+1; end
|
||||
311: begin HSYN <= 0; hcnt <= hcnt+1; end
|
||||
342: begin HSYN <= 1; hcnt <= 471; end
|
||||
511: begin hcnt <= 0;
|
||||
case (vcnt)
|
||||
223: begin VBLK <= 1; vcnt <= vcnt+1; end
|
||||
226: begin VSYN <= 0; vcnt <= vcnt+1; end
|
||||
233: begin VSYN <= 1; vcnt <= 483; end
|
||||
511: begin VBLK <= 0; vcnt <= 0; end
|
||||
default: vcnt <= vcnt+1;
|
||||
endcase
|
||||
end
|
||||
default: hcnt <= hcnt+1;
|
||||
endcase
|
||||
oRGB <= (HBLK|VBLK) ? 15'h0 : iRGB;
|
||||
end
|
||||
|
||||
endmodule
|
||||
174
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/SN76496.v
Normal file
174
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/SN76496.v
Normal file
@@ -0,0 +1,174 @@
|
||||
// Copyright (c) 2017,19 MiSTer-X
|
||||
|
||||
module SN76496
|
||||
(
|
||||
input clk,
|
||||
input cpuclk,
|
||||
input reset,
|
||||
input ce,
|
||||
input we,
|
||||
input [7:0] data,
|
||||
input [3:0] chmsk,
|
||||
output reg [7:0] sndout,
|
||||
output reg [3:0] chactv,
|
||||
output reg [2:0] lreg
|
||||
);
|
||||
|
||||
`define RNGINI 16'h0F35
|
||||
`define RNGFB0 16'h4000
|
||||
`define RNGFB1 16'h8100
|
||||
|
||||
function [5:0] voltbl;
|
||||
input [3:0] idx;
|
||||
case (idx)
|
||||
4'h0: voltbl = 63;
|
||||
4'h1: voltbl = 50;
|
||||
4'h2: voltbl = 40;
|
||||
4'h3: voltbl = 32;
|
||||
4'h4: voltbl = 25;
|
||||
4'h5: voltbl = 20;
|
||||
4'h6: voltbl = 16;
|
||||
4'h7: voltbl = 13;
|
||||
4'h8: voltbl = 10;
|
||||
4'h9: voltbl = 8;
|
||||
4'hA: voltbl = 6;
|
||||
4'hB: voltbl = 5;
|
||||
4'hC: voltbl = 4;
|
||||
4'hD: voltbl = 3;
|
||||
4'hE: voltbl = 2;
|
||||
4'hF: voltbl = 0;
|
||||
endcase
|
||||
endfunction
|
||||
|
||||
reg [3:0] clks;
|
||||
|
||||
reg [2:0] nzc;
|
||||
reg [9:0] fq0, fq1, fq2;
|
||||
reg [9:0] fc0, fc1, fc2;
|
||||
reg [5:0] fv0, fv1, fv2, fv3;
|
||||
reg [5:0] _fv0,_fv1,_fv2,_fv3;
|
||||
reg fo0, fo1, fo2;
|
||||
|
||||
reg [15:0] rng = `RNGINI;
|
||||
wire [15:0] rfb = rng[0] ? ( nzc[2] ? `RNGFB1 : `RNGFB0 ) : 16'h0;
|
||||
|
||||
wire [1:0] nfq = nzc[1:0];
|
||||
wire [10:0] fq3 = ( nfq == 2'b00 ) ? 64 :
|
||||
( nfq == 2'b01 ) ? 128 :
|
||||
( nfq == 2'b10 ) ? 256 : fq2;
|
||||
reg [10:0] fc3;
|
||||
wire fo3 = rng[0];
|
||||
|
||||
wire [7:0] o0 = ( fo0 & chmsk[0] ) ? { 1'b0, fv0, 1'b0 } : 8'h0;
|
||||
wire [7:0] o1 = ( fo1 & chmsk[1] ) ? { 1'b0, fv1, 1'b0 } : 8'h0;
|
||||
wire [7:0] o2 = ( fo2 & chmsk[2] ) ? { 1'b0, fv2, 1'b0 } : 8'h0;
|
||||
wire [7:0] o3 = ( fo3 & chmsk[3] ) ? { 1'b0, fv3, 1'b0 } : 8'h0;
|
||||
|
||||
wire [8:0] sndmix = o0 + o1 + o2 + o3;
|
||||
|
||||
always @( posedge cpuclk or posedge reset ) begin
|
||||
if ( reset ) begin
|
||||
lreg <= 0;
|
||||
_fv0 <= 0;
|
||||
_fv1 <= 0;
|
||||
_fv2 <= 0;
|
||||
_fv3 <= 0;
|
||||
fq0 <= 0;
|
||||
fq1 <= 0;
|
||||
fq2 <= 0;
|
||||
nzc <= 0;
|
||||
chactv <= 0;
|
||||
end
|
||||
else begin
|
||||
// Register write
|
||||
if ( ce & we ) begin
|
||||
if ( data[7] ) begin
|
||||
lreg <= data[6:4];
|
||||
case ( data[6:4] )
|
||||
3'h0: fq0[3:0] <= data[3:0];
|
||||
3'h2: fq1[3:0] <= data[3:0];
|
||||
3'h4: fq2[3:0] <= data[3:0];
|
||||
3'h1: begin _fv0 <= voltbl(data[3:0]); chactv[0] <= (~data[3]); end
|
||||
3'h3: begin _fv1 <= voltbl(data[3:0]); chactv[1] <= (~data[3]); end
|
||||
3'h5: begin _fv2 <= voltbl(data[3:0]); chactv[2] <= (~data[3]); end
|
||||
3'h7: begin _fv3 <= voltbl(data[3:0]); chactv[3] <= (~data[3]); end
|
||||
3'h6: begin nzc <= data[2:0]; end
|
||||
endcase
|
||||
end
|
||||
else begin
|
||||
case ( lreg )
|
||||
3'h0: fq0[9:4] <= data[5:0];
|
||||
3'h2: fq1[9:4] <= data[5:0];
|
||||
3'h4: fq2[9:4] <= data[5:0];
|
||||
default: begin end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
always @( posedge clk or posedge reset ) begin
|
||||
// Reset
|
||||
if ( reset ) begin
|
||||
sndout <= 0;
|
||||
fv0 <= 0;
|
||||
fv1 <= 0;
|
||||
fv2 <= 0;
|
||||
fv3 <= 0;
|
||||
fc0 <= 0;
|
||||
fc1 <= 0;
|
||||
fc2 <= 0;
|
||||
fc3 <= 0;
|
||||
fo0 <= 0;
|
||||
fo1 <= 0;
|
||||
fo2 <= 0;
|
||||
clks <= 0;
|
||||
rng <= `RNGINI;
|
||||
end
|
||||
else begin
|
||||
|
||||
// OSCs update
|
||||
clks <= clks+1;
|
||||
if ( clks == 0 ) begin
|
||||
|
||||
fv0 <= _fv0;
|
||||
fv1 <= _fv1;
|
||||
fv2 <= _fv2;
|
||||
fv3 <= _fv3;
|
||||
|
||||
if ( fc0 == 0 ) begin
|
||||
fc0 <= fq0;
|
||||
fo0 <= ~fo0;
|
||||
end
|
||||
else fc0 <= fc0-1;
|
||||
|
||||
if ( fc1 == 0 ) begin
|
||||
fc1 <= fq1;
|
||||
fo1 <= ~fo1;
|
||||
end
|
||||
else fc1 <= fc1-1;
|
||||
|
||||
if ( fc2 == 0 ) begin
|
||||
fc2 <= fq2;
|
||||
fo2 <= ~fo2;
|
||||
end
|
||||
else fc2 <= fc2-1;
|
||||
|
||||
// NoiseGen update
|
||||
if ( fc3 == 0 ) begin
|
||||
fc3 <= fq3;
|
||||
rng <= { 1'b0, rng[15:1] } ^ rfb;
|
||||
end
|
||||
else fc3 <= fc3-1;
|
||||
|
||||
// Sound update
|
||||
sndout <= {8{sndmix[8]}}|(sndmix[7:0]);
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
endmodule
|
||||
@@ -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
|
||||
41
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/hvgen.v
Normal file
41
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/hvgen.v
Normal file
@@ -0,0 +1,41 @@
|
||||
module hvgen
|
||||
(
|
||||
output [8:0] HPOS,
|
||||
output [8:0] VPOS,
|
||||
input PCLK,
|
||||
input [14:0] iRGB,
|
||||
|
||||
output reg [14:0] oRGB,
|
||||
output reg HBLK = 1,
|
||||
output reg VBLK = 1,
|
||||
output reg HSYN = 1,
|
||||
output reg VSYN = 1
|
||||
);
|
||||
|
||||
reg [8:0] hcnt = 0;
|
||||
reg [8:0] vcnt = 0;
|
||||
|
||||
assign HPOS = hcnt-16;
|
||||
assign VPOS = vcnt;
|
||||
|
||||
always @(posedge PCLK) begin
|
||||
case (hcnt)
|
||||
15: begin HBLK <= 0; hcnt <= hcnt+1; end
|
||||
272: begin HBLK <= 1; hcnt <= hcnt+1; end
|
||||
311: begin HSYN <= 0; hcnt <= hcnt+1; end
|
||||
342: begin HSYN <= 1; hcnt <= 471; end
|
||||
511: begin hcnt <= 0;
|
||||
case (vcnt)
|
||||
223: begin VBLK <= 1; vcnt <= vcnt+1; end
|
||||
226: begin VSYN <= 0; vcnt <= vcnt+1; end
|
||||
233: begin VSYN <= 1; vcnt <= 483; end
|
||||
511: begin VBLK <= 0; vcnt <= 0; end
|
||||
default: vcnt <= vcnt+1;
|
||||
endcase
|
||||
end
|
||||
default: hcnt <= hcnt+1;
|
||||
endcase
|
||||
oRGB <= (HBLK|VBLK) ? 15'h0 : iRGB;
|
||||
end
|
||||
|
||||
endmodule
|
||||
389
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/parts.v
Normal file
389
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/parts.v
Normal file
@@ -0,0 +1,389 @@
|
||||
// Copyright (c) 2017,19 MiSTer-X
|
||||
/*
|
||||
module DLROM #(parameter AW,parameter DW)
|
||||
(
|
||||
input CL0,
|
||||
input [(AW-1):0] AD0,
|
||||
output reg [(DW-1):0] DO0,
|
||||
|
||||
input CL1,
|
||||
input [(AW-1):0] AD1,
|
||||
input [(DW-1):0] DI1,
|
||||
input WE1
|
||||
);
|
||||
|
||||
reg [(DW-1):0] core[0:((2**AW)-1)];
|
||||
|
||||
always @(posedge CL0) DO0 <= core[AD0];
|
||||
always @(posedge CL1) if (WE1) core[AD1] <= DI1;
|
||||
|
||||
endmodule*/
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// 2K SRAM
|
||||
//----------------------------------
|
||||
module SRAM_2048( CL, ADRS, OUT, WR, IN );
|
||||
|
||||
input CL;
|
||||
input [10:0] ADRS;
|
||||
output [7:0] OUT;
|
||||
input WR;
|
||||
input [7:0] IN;
|
||||
|
||||
|
||||
reg [7:0] ramcore [0:2047];
|
||||
reg [7:0] OUT;
|
||||
|
||||
always @( posedge CL ) begin
|
||||
if (WR) ramcore[ADRS] <= IN;
|
||||
else OUT <= ramcore[ADRS];
|
||||
end
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// 4K SRAM
|
||||
//----------------------------------
|
||||
module SRAM_4096(
|
||||
input clk,
|
||||
input [11:0] adrs,
|
||||
output reg [7:0] out,
|
||||
input wr,
|
||||
input [7:0] in
|
||||
);
|
||||
|
||||
reg [7:0] ramcore [0:4095];
|
||||
|
||||
always @( posedge clk ) begin
|
||||
if (wr) ramcore[adrs] <= in;
|
||||
else out <= ramcore[adrs];
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// DualPort RAM
|
||||
//----------------------------------
|
||||
module DPRAM2048
|
||||
(
|
||||
input clk0,
|
||||
input [10:0] adr0,
|
||||
input [7:0] dat0,
|
||||
input wen0,
|
||||
|
||||
input clk1,
|
||||
input [10:0] adr1,
|
||||
output reg [7:0] dat1,
|
||||
|
||||
output reg [7:0] dtr0
|
||||
);
|
||||
|
||||
reg [7:0] core [0:2047];
|
||||
|
||||
always @( posedge clk0 ) begin
|
||||
if (wen0) core[adr0] <= dat0;
|
||||
else dtr0 <= core[adr0];
|
||||
end
|
||||
|
||||
always @( posedge clk1 ) begin
|
||||
dat1 <= core[adr1];
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
module DPRAM1024
|
||||
(
|
||||
input clk0,
|
||||
input [9:0] adr0,
|
||||
input [7:0] dat0,
|
||||
input wen0,
|
||||
|
||||
input clk1,
|
||||
input [9:0] adr1,
|
||||
output reg [7:0] dat1,
|
||||
|
||||
output reg [7:0] dtr0
|
||||
);
|
||||
|
||||
reg [7:0] core [0:1023];
|
||||
|
||||
always @( posedge clk0 ) begin
|
||||
if (wen0) core[adr0] <= dat0;
|
||||
else dtr0 <= core[adr0];
|
||||
end
|
||||
|
||||
always @( posedge clk1 ) begin
|
||||
dat1 <= core[adr1];
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
module DPRAM2048_8_16
|
||||
(
|
||||
input clk0,
|
||||
input [10:0] adr0,
|
||||
input [7:0] dat0,
|
||||
input wen0,
|
||||
|
||||
input clk1,
|
||||
input [9:0] adr1,
|
||||
output [15:0] dat1,
|
||||
|
||||
output [7:0] dtr0
|
||||
);
|
||||
|
||||
wire [7:0] do0, do1;
|
||||
wire [7:0] doH, doL;
|
||||
|
||||
DPRAM1024 core0( clk0, adr0[10:1], dat0, wen0 & (~adr0[0]), clk1, adr1, doL, do0 );
|
||||
DPRAM1024 core1( clk0, adr0[10:1], dat0, wen0 & adr0[0], clk1, adr1, doH, do1 );
|
||||
|
||||
assign dtr0 = adr0[0] ? do1 : do0;
|
||||
assign dat1 = { doH, doL };
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// VRAM
|
||||
//----------------------------------
|
||||
module VRAMs
|
||||
(
|
||||
input clk0,
|
||||
input [9:0] adr0,
|
||||
output reg [7:0] dat0,
|
||||
input [7:0] dtw0,
|
||||
input wen0,
|
||||
|
||||
input clk1,
|
||||
input [9:0] adr1,
|
||||
output reg [7:0] dat1
|
||||
);
|
||||
|
||||
reg [7:0] core [0:1023];
|
||||
|
||||
always @( posedge clk0 ) begin
|
||||
if (wen0) core[adr0] <= dtw0;
|
||||
else dat0 <= core[adr0];
|
||||
end
|
||||
|
||||
always @( posedge clk1 ) begin
|
||||
dat1 <= core[adr1];
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
module VRAM
|
||||
(
|
||||
input clk0,
|
||||
input [10:0] adr0,
|
||||
output [7:0] dat0,
|
||||
input [7:0] dtw0,
|
||||
input wen0,
|
||||
|
||||
input clk1,
|
||||
input [9:0] adr1,
|
||||
output [15:0] dat1
|
||||
);
|
||||
|
||||
wire even = ~adr0[0];
|
||||
wire odd = adr0[0];
|
||||
|
||||
wire [7:0] do00, do01, do10, do11;
|
||||
VRAMs ram0( clk0, adr0[10:1], do00, dtw0, wen0 & even, clk1, adr1, do10 );
|
||||
VRAMs ram1( clk0, adr0[10:1], do01, dtw0, wen0 & odd, clk1, adr1, do11 );
|
||||
|
||||
assign dat0 = adr0[0] ? do01 : do00;
|
||||
assign dat1 = { do11, do10 };
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// ScanLine Buffer
|
||||
//----------------------------------
|
||||
module LineBuf
|
||||
(
|
||||
input clkr,
|
||||
input [9:0] radr,
|
||||
input clre,
|
||||
output [10:0] rdat,
|
||||
|
||||
input clkw,
|
||||
input [9:0] wadr,
|
||||
input [10:0] wdat,
|
||||
input we,
|
||||
output [10:0] rdat1
|
||||
);
|
||||
|
||||
DPRAM1024_11B core (
|
||||
radr,wadr,
|
||||
clkr,clkw,
|
||||
16'h0,{5'h0,wdat},
|
||||
clre,we,
|
||||
rdat,rdat1
|
||||
);
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Data Selector (32bits)
|
||||
//----------------------------------
|
||||
module dataselector1_32(
|
||||
|
||||
output [31:0] oDATA,
|
||||
|
||||
input iSEL0,
|
||||
input [31:0] iDATA0,
|
||||
|
||||
input [31:0] dData
|
||||
);
|
||||
|
||||
assign oDATA = iSEL0 ? iDATA0 :
|
||||
dData;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Data Selector 3 to 1
|
||||
//----------------------------------
|
||||
module dataselector3(
|
||||
|
||||
output [7:0] oDATA,
|
||||
|
||||
input iSEL0,
|
||||
input [7:0] iDATA0,
|
||||
|
||||
input iSEL1,
|
||||
input [7:0] iDATA1,
|
||||
|
||||
input iSEL2,
|
||||
input [7:0] iDATA2,
|
||||
|
||||
input [7:0] dData
|
||||
);
|
||||
|
||||
assign oDATA = iSEL0 ? iDATA0 :
|
||||
iSEL1 ? iDATA1 :
|
||||
iSEL2 ? iDATA2 :
|
||||
dData;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Data Selector 2 to 1 (11bits)
|
||||
//----------------------------------
|
||||
module dataselector2_11(
|
||||
|
||||
output [10:0] oDATA,
|
||||
|
||||
input iSEL0,
|
||||
input [10:0] iDATA0,
|
||||
|
||||
input iSEL1,
|
||||
input [10:0] iDATA1,
|
||||
|
||||
input [10:0] dData
|
||||
);
|
||||
|
||||
assign oDATA = iSEL0 ? iDATA0 :
|
||||
iSEL1 ? iDATA1 :
|
||||
dData;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
//----------------------------------
|
||||
// Data Selector 8 to 1
|
||||
//----------------------------------
|
||||
module dataselector8(
|
||||
|
||||
output [7:0] oDATA,
|
||||
|
||||
input iSEL0,
|
||||
input [7:0] iDATA0,
|
||||
|
||||
input iSEL1,
|
||||
input [7:0] iDATA1,
|
||||
|
||||
input iSEL2,
|
||||
input [7:0] iDATA2,
|
||||
|
||||
input iSEL3,
|
||||
input [7:0] iDATA3,
|
||||
|
||||
input iSEL4,
|
||||
input [7:0] iDATA4,
|
||||
|
||||
input iSEL5,
|
||||
input [7:0] iDATA5,
|
||||
|
||||
input iSEL6,
|
||||
input [7:0] iDATA6,
|
||||
|
||||
input iSEL7,
|
||||
input [7:0] iDATA7,
|
||||
|
||||
input [7:0] dData
|
||||
);
|
||||
|
||||
assign oDATA = iSEL0 ? iDATA0 :
|
||||
iSEL1 ? iDATA1 :
|
||||
iSEL2 ? iDATA2 :
|
||||
iSEL3 ? iDATA3 :
|
||||
iSEL4 ? iDATA4 :
|
||||
iSEL5 ? iDATA5 :
|
||||
iSEL6 ? iDATA6 :
|
||||
iSEL7 ? iDATA7 :
|
||||
dData;
|
||||
|
||||
endmodule
|
||||
|
||||
//----------------------------------
|
||||
// Data Selector 6 to 1
|
||||
//----------------------------------
|
||||
module dataselector6(
|
||||
|
||||
output [7:0] oDATA,
|
||||
|
||||
input iSEL0,
|
||||
input [7:0] iDATA0,
|
||||
|
||||
input iSEL1,
|
||||
input [7:0] iDATA1,
|
||||
|
||||
input iSEL2,
|
||||
input [7:0] iDATA2,
|
||||
|
||||
input iSEL3,
|
||||
input [7:0] iDATA3,
|
||||
|
||||
input iSEL4,
|
||||
input [7:0] iDATA4,
|
||||
|
||||
input iSEL5,
|
||||
input [7:0] iDATA5,
|
||||
|
||||
input [7:0] dData
|
||||
);
|
||||
|
||||
assign oDATA = iSEL0 ? iDATA0 :
|
||||
iSEL1 ? iDATA1 :
|
||||
iSEL2 ? iDATA2 :
|
||||
iSEL3 ? iDATA3 :
|
||||
iSEL4 ? iDATA4 :
|
||||
iSEL5 ? iDATA5 :
|
||||
dData;
|
||||
|
||||
endmodule
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
set_global_assignment -name IP_TOOL_NAME "ALTPLL"
|
||||
set_global_assignment -name IP_TOOL_VERSION "13.1"
|
||||
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "pll_mist.v"]
|
||||
set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "pll_mist.ppf"]
|
||||
337
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/pll_mist.v
Normal file
337
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/pll_mist.v
Normal file
@@ -0,0 +1,337 @@
|
||||
// megafunction wizard: %ALTPLL%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: altpll
|
||||
|
||||
// ============================================================
|
||||
// File Name: pll_mist.v
|
||||
// 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.
|
||||
|
||||
|
||||
// synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
// synopsys translate_on
|
||||
module pll_mist (
|
||||
inclk0,
|
||||
c0,
|
||||
c1,
|
||||
locked);
|
||||
|
||||
input inclk0;
|
||||
output c0;
|
||||
output c1;
|
||||
output locked;
|
||||
|
||||
wire [4:0] sub_wire0;
|
||||
wire sub_wire2;
|
||||
wire [0:0] sub_wire6 = 1'h0;
|
||||
wire [0:0] sub_wire3 = sub_wire0[0:0];
|
||||
wire [1:1] sub_wire1 = sub_wire0[1:1];
|
||||
wire c1 = sub_wire1;
|
||||
wire locked = sub_wire2;
|
||||
wire c0 = sub_wire3;
|
||||
wire sub_wire4 = inclk0;
|
||||
wire [1:0] sub_wire5 = {sub_wire6, sub_wire4};
|
||||
|
||||
altpll altpll_component (
|
||||
.inclk (sub_wire5),
|
||||
.clk (sub_wire0),
|
||||
.locked (sub_wire2),
|
||||
.activeclock (),
|
||||
.areset (1'b0),
|
||||
.clkbad (),
|
||||
.clkena ({6{1'b1}}),
|
||||
.clkloss (),
|
||||
.clkswitch (1'b0),
|
||||
.configupdate (1'b0),
|
||||
.enable0 (),
|
||||
.enable1 (),
|
||||
.extclk (),
|
||||
.extclkena ({4{1'b1}}),
|
||||
.fbin (1'b1),
|
||||
.fbmimicbidir (),
|
||||
.fbout (),
|
||||
.fref (),
|
||||
.icdrclk (),
|
||||
.pfdena (1'b1),
|
||||
.phasecounterselect ({4{1'b1}}),
|
||||
.phasedone (),
|
||||
.phasestep (1'b1),
|
||||
.phaseupdown (1'b1),
|
||||
.pllena (1'b1),
|
||||
.scanaclr (1'b0),
|
||||
.scanclk (1'b0),
|
||||
.scanclkena (1'b1),
|
||||
.scandata (1'b0),
|
||||
.scandataout (),
|
||||
.scandone (),
|
||||
.scanread (1'b0),
|
||||
.scanwrite (1'b0),
|
||||
.sclkout0 (),
|
||||
.sclkout1 (),
|
||||
.vcooverrange (),
|
||||
.vcounderrange ());
|
||||
defparam
|
||||
altpll_component.bandwidth_type = "AUTO",
|
||||
altpll_component.clk0_divide_by = 9,
|
||||
altpll_component.clk0_duty_cycle = 50,
|
||||
altpll_component.clk0_multiply_by = 16,
|
||||
altpll_component.clk0_phase_shift = "0",
|
||||
altpll_component.clk1_divide_by = 9,
|
||||
altpll_component.clk1_duty_cycle = 50,
|
||||
altpll_component.clk1_multiply_by = 32,
|
||||
altpll_component.clk1_phase_shift = "0",
|
||||
altpll_component.compensate_clock = "CLK0",
|
||||
altpll_component.inclk0_input_frequency = 37037,
|
||||
altpll_component.intended_device_family = "Cyclone III",
|
||||
altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll_mist",
|
||||
altpll_component.lpm_type = "altpll",
|
||||
altpll_component.operation_mode = "NORMAL",
|
||||
altpll_component.pll_type = "AUTO",
|
||||
altpll_component.port_activeclock = "PORT_UNUSED",
|
||||
altpll_component.port_areset = "PORT_UNUSED",
|
||||
altpll_component.port_clkbad0 = "PORT_UNUSED",
|
||||
altpll_component.port_clkbad1 = "PORT_UNUSED",
|
||||
altpll_component.port_clkloss = "PORT_UNUSED",
|
||||
altpll_component.port_clkswitch = "PORT_UNUSED",
|
||||
altpll_component.port_configupdate = "PORT_UNUSED",
|
||||
altpll_component.port_fbin = "PORT_UNUSED",
|
||||
altpll_component.port_inclk0 = "PORT_USED",
|
||||
altpll_component.port_inclk1 = "PORT_UNUSED",
|
||||
altpll_component.port_locked = "PORT_USED",
|
||||
altpll_component.port_pfdena = "PORT_UNUSED",
|
||||
altpll_component.port_phasecounterselect = "PORT_UNUSED",
|
||||
altpll_component.port_phasedone = "PORT_UNUSED",
|
||||
altpll_component.port_phasestep = "PORT_UNUSED",
|
||||
altpll_component.port_phaseupdown = "PORT_UNUSED",
|
||||
altpll_component.port_pllena = "PORT_UNUSED",
|
||||
altpll_component.port_scanaclr = "PORT_UNUSED",
|
||||
altpll_component.port_scanclk = "PORT_UNUSED",
|
||||
altpll_component.port_scanclkena = "PORT_UNUSED",
|
||||
altpll_component.port_scandata = "PORT_UNUSED",
|
||||
altpll_component.port_scandataout = "PORT_UNUSED",
|
||||
altpll_component.port_scandone = "PORT_UNUSED",
|
||||
altpll_component.port_scanread = "PORT_UNUSED",
|
||||
altpll_component.port_scanwrite = "PORT_UNUSED",
|
||||
altpll_component.port_clk0 = "PORT_USED",
|
||||
altpll_component.port_clk1 = "PORT_USED",
|
||||
altpll_component.port_clk2 = "PORT_UNUSED",
|
||||
altpll_component.port_clk3 = "PORT_UNUSED",
|
||||
altpll_component.port_clk4 = "PORT_UNUSED",
|
||||
altpll_component.port_clk5 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena0 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena1 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena2 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena3 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena4 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena5 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk0 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk1 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk2 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk3 = "PORT_UNUSED",
|
||||
altpll_component.self_reset_on_loss_lock = "OFF",
|
||||
altpll_component.width_clock = 5;
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
// ============================================================
|
||||
// CNX file retrieval info
|
||||
// ============================================================
|
||||
// Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH STRING "1.000"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "1"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0"
|
||||
// Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0"
|
||||
// Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0"
|
||||
// Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8"
|
||||
// Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "9"
|
||||
// Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "9"
|
||||
// Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000"
|
||||
// Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000"
|
||||
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "48.000000"
|
||||
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "96.000000"
|
||||
// Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
|
||||
// Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1"
|
||||
// Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575"
|
||||
// Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1"
|
||||
// Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "27.000"
|
||||
// Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz"
|
||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III"
|
||||
// Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1"
|
||||
// Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1"
|
||||
// Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1"
|
||||
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available"
|
||||
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg"
|
||||
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "deg"
|
||||
// Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any"
|
||||
// Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0"
|
||||
// Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0"
|
||||
// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "16"
|
||||
// Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "32"
|
||||
// Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "48.00000000"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "96.00000000"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz"
|
||||
// Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1"
|
||||
// Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "0.00000000"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "deg"
|
||||
// Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0"
|
||||
// Retrieval info: PRIVATE: RECONFIG_FILE STRING "pll_mist.mif"
|
||||
// Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "1"
|
||||
// Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0"
|
||||
// Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000"
|
||||
// Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz"
|
||||
// Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500"
|
||||
// Retrieval info: PRIVATE: SPREAD_USE STRING "0"
|
||||
// Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: STICKY_CLK0 STRING "1"
|
||||
// Retrieval info: PRIVATE: STICKY_CLK1 STRING "1"
|
||||
// Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1"
|
||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
||||
// Retrieval info: PRIVATE: USE_CLK0 STRING "1"
|
||||
// Retrieval info: PRIVATE: USE_CLK1 STRING "1"
|
||||
// Retrieval info: PRIVATE: USE_CLKENA0 STRING "0"
|
||||
// Retrieval info: PRIVATE: USE_CLKENA1 STRING "0"
|
||||
// Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0"
|
||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
// Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO"
|
||||
// Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "9"
|
||||
// Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
|
||||
// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "16"
|
||||
// Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
|
||||
// Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "9"
|
||||
// Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50"
|
||||
// Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "32"
|
||||
// Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0"
|
||||
// Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0"
|
||||
// Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037"
|
||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III"
|
||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altpll"
|
||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL"
|
||||
// Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO"
|
||||
// Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena2 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: SELF_RESET_ON_LOSS_LOCK STRING "OFF"
|
||||
// Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5"
|
||||
// Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]"
|
||||
// Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0"
|
||||
// Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1"
|
||||
// Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0"
|
||||
// Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked"
|
||||
// Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0
|
||||
// Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0
|
||||
// Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0
|
||||
// Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1
|
||||
// Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.v 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.v FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist_bb.v FALSE
|
||||
// Retrieval info: LIB_FILE: altera_mf
|
||||
// Retrieval info: CBX_MODULE_PREFIX: ON
|
||||
@@ -0,0 +1,38 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all,ieee.numeric_std.all;
|
||||
|
||||
entity clut is
|
||||
port (
|
||||
clk : in std_logic;
|
||||
addr : in std_logic_vector(7 downto 0);
|
||||
data : out std_logic_vector(7 downto 0)
|
||||
);
|
||||
end entity;
|
||||
|
||||
architecture prom of clut is
|
||||
type rom is array(0 to 255) of std_logic_vector(7 downto 0);
|
||||
signal rom_data: rom := (
|
||||
X"0C",X"0E",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0E",X"0C",X"0E",X"01",X"0D",X"0C",X"0E",
|
||||
X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E",
|
||||
X"0E",X"0E",X"0E",X"0E",X"0D",X"0D",X"0E",X"0E",X"02",X"0E",X"0E",X"0E",X"01",X"0D",X"0E",X"0E",
|
||||
X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E",
|
||||
X"08",X"0E",X"08",X"0E",X"09",X"0D",X"08",X"0E",X"08",X"0E",X"08",X"0E",X"09",X"0D",X"08",X"0E",
|
||||
X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E",
|
||||
X"0A",X"0E",X"0A",X"0E",X"09",X"0D",X"0A",X"0E",X"0A",X"0E",X"0A",X"0E",X"09",X"0D",X"0A",X"0E",
|
||||
X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00");
|
||||
begin
|
||||
process(clk)
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
data <= rom_data(to_integer(unsigned(addr)));
|
||||
end if;
|
||||
end process;
|
||||
end architecture;
|
||||
@@ -0,0 +1,16 @@
|
||||
copy /b epr-5320b.129 + epr-5321a.130 + epr-5322a.131 + epr-5323.132 + epr-5324.133 + epr-5325.134 + epr-5324.133 + epr-5325.134 prg.bin
|
||||
make_vhdl_prom prg.bin prg_rom.vhd
|
||||
|
||||
copy /b epr-5318.86 + epr-5319.93 spr.bin
|
||||
make_vhdl_prom spr.bin spr_rom.vhd
|
||||
|
||||
make_vhdl_prom epr-5332.3 snd_rom.vhd
|
||||
|
||||
make_vhdl_prom pr-5317.106 clut.vhd
|
||||
|
||||
copy /b epr-5331.82 + epr-5330.65 + epr-5329.81 + epr-5328.64 + epr-5327.80 + epr-5326.63 tile.bin
|
||||
|
||||
copy /b prg.bin + epr-5332.3 + spr.bin + tile.bin STARJACK.ROM
|
||||
pause
|
||||
|
||||
|
||||
@@ -0,0 +1,534 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all,ieee.numeric_std.all;
|
||||
|
||||
entity snd_rom is
|
||||
port (
|
||||
clk : in std_logic;
|
||||
addr : in std_logic_vector(12 downto 0);
|
||||
data : out std_logic_vector(7 downto 0)
|
||||
);
|
||||
end entity;
|
||||
|
||||
architecture prom of snd_rom is
|
||||
type rom is array(0 to 8191) of std_logic_vector(7 downto 0);
|
||||
signal rom_data: rom := (
|
||||
X"F3",X"ED",X"56",X"31",X"00",X"88",X"C3",X"7E",X"00",X"9D",X"1B",X"AA",X"1B",X"B7",X"1B",X"C4",
|
||||
X"1B",X"D1",X"1B",X"DE",X"1B",X"EB",X"1B",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"F8",X"1B",
|
||||
X"00",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"F0",X"1C",X"00",X"20",X"00",
|
||||
X"00",X"00",X"22",X"00",X"00",X"00",X"01",X"00",X"F5",X"E5",X"21",X"00",X"80",X"35",X"E1",X"F1",
|
||||
X"FB",X"C9",X"00",X"01",X"00",X"42",X"1E",X"00",X"20",X"00",X"00",X"00",X"10",X"00",X"00",X"00",
|
||||
X"01",X"00",X"E8",X"1D",X"00",X"20",X"00",X"00",X"80",X"11",X"00",X"00",X"00",X"01",X"00",X"17",
|
||||
X"1E",X"00",X"20",X"00",X"00",X"80",X"F3",X"F5",X"3A",X"00",X"E0",X"FE",X"90",X"C2",X"77",X"00",
|
||||
X"08",X"3E",X"01",X"32",X"02",X"81",X"08",X"32",X"00",X"81",X"F1",X"FB",X"ED",X"45",X"CD",X"66",
|
||||
X"04",X"21",X"00",X"80",X"11",X"01",X"80",X"01",X"FF",X"07",X"36",X"00",X"ED",X"B0",X"FB",X"CD",
|
||||
X"8B",X"04",X"21",X"00",X"80",X"7E",X"B7",X"28",X"F6",X"36",X"00",X"DD",X"21",X"00",X"82",X"06",
|
||||
X"14",X"C5",X"DD",X"CB",X"00",X"7E",X"C4",X"B4",X"00",X"11",X"20",X"00",X"DD",X"19",X"C1",X"10",
|
||||
X"F0",X"C3",X"8F",X"00",X"DD",X"CB",X"00",X"66",X"C2",X"E0",X"03",X"DD",X"5E",X"03",X"DD",X"56",
|
||||
X"04",X"13",X"DD",X"73",X"03",X"DD",X"72",X"04",X"DD",X"6E",X"05",X"DD",X"66",X"06",X"B7",X"ED",
|
||||
X"52",X"CC",X"41",X"02",X"DD",X"CB",X"03",X"46",X"C0",X"DD",X"5E",X"11",X"DD",X"56",X"12",X"7B",
|
||||
X"B2",X"20",X"07",X"DD",X"36",X"17",X"0F",X"C3",X"B6",X"01",X"DD",X"CB",X"00",X"6E",X"20",X"33",
|
||||
X"DD",X"7E",X"0B",X"B7",X"20",X"08",X"DD",X"73",X"13",X"DD",X"72",X"14",X"18",X"59",X"3D",X"21",
|
||||
X"DD",X"06",X"23",X"DD",X"4E",X"0E",X"06",X"00",X"09",X"09",X"4E",X"23",X"66",X"69",X"0E",X"04",
|
||||
X"09",X"4E",X"23",X"66",X"69",X"4F",X"06",X"00",X"09",X"09",X"7E",X"23",X"66",X"6F",X"CD",X"0E",
|
||||
X"02",X"18",X"34",X"D5",X"DD",X"6E",X"15",X"DD",X"66",X"16",X"B7",X"ED",X"52",X"F5",X"7D",X"F2",
|
||||
X"34",X"01",X"ED",X"44",X"67",X"DD",X"5E",X"03",X"CD",X"96",X"06",X"DD",X"5E",X"05",X"CD",X"A2",
|
||||
X"06",X"5F",X"16",X"00",X"F1",X"7B",X"F2",X"4F",X"01",X"ED",X"44",X"28",X"02",X"15",X"5F",X"E1",
|
||||
X"19",X"DD",X"75",X"13",X"DD",X"74",X"14",X"DD",X"7E",X"0C",X"B7",X"20",X"0B",X"DD",X"7E",X"0D",
|
||||
X"2F",X"E6",X"0F",X"DD",X"77",X"17",X"18",X"23",X"3D",X"21",X"DD",X"06",X"23",X"DD",X"4E",X"0E",
|
||||
X"06",X"00",X"09",X"09",X"4E",X"23",X"66",X"69",X"0E",X"02",X"09",X"4E",X"23",X"66",X"69",X"4F",
|
||||
X"06",X"00",X"09",X"09",X"7E",X"23",X"66",X"6F",X"CD",X"D4",X"01",X"DD",X"CB",X"00",X"76",X"20",
|
||||
X"25",X"DD",X"7E",X"01",X"E6",X"0F",X"4F",X"06",X"00",X"21",X"C9",X"01",X"09",X"4E",X"DD",X"7E",
|
||||
X"13",X"E6",X"0F",X"B1",X"CD",X"00",X"04",X"DD",X"7E",X"13",X"E6",X"F0",X"DD",X"B6",X"14",X"0F",
|
||||
X"0F",X"0F",X"0F",X"CD",X"00",X"04",X"DD",X"7E",X"01",X"E6",X"0F",X"4F",X"06",X"00",X"21",X"CD",
|
||||
X"01",X"09",X"7E",X"DD",X"B6",X"17",X"C3",X"00",X"04",X"80",X"A0",X"C0",X"C0",X"90",X"B0",X"D0",
|
||||
X"F0",X"DD",X"77",X"0F",X"E5",X"DD",X"7E",X"0F",X"CB",X"3F",X"F5",X"4F",X"06",X"00",X"09",X"F1",
|
||||
X"7E",X"E1",X"38",X"14",X"0F",X"0F",X"0F",X"0F",X"B7",X"28",X"E6",X"FE",X"10",X"20",X"05",X"DD",
|
||||
X"35",X"0F",X"18",X"E0",X"FE",X"20",X"28",X"0B",X"DD",X"34",X"0F",X"F6",X"F0",X"DD",X"86",X"0D",
|
||||
X"3C",X"38",X"01",X"AF",X"2F",X"E6",X"0F",X"DD",X"77",X"17",X"C9",X"DD",X"77",X"10",X"E5",X"DD",
|
||||
X"7E",X"10",X"CB",X"3F",X"F5",X"4F",X"06",X"00",X"09",X"F1",X"7E",X"E1",X"38",X"11",X"0F",X"0F",
|
||||
X"0F",X"0F",X"B7",X"CA",X"0B",X"02",X"FE",X"10",X"20",X"05",X"DD",X"35",X"10",X"18",X"DF",X"DD",
|
||||
X"34",X"10",X"2F",X"E6",X"0F",X"6F",X"26",X"00",X"EB",X"19",X"DD",X"75",X"13",X"DD",X"74",X"14",
|
||||
X"C9",X"DD",X"5E",X"07",X"DD",X"56",X"08",X"1A",X"13",X"B7",X"FA",X"C6",X"02",X"DD",X"CB",X"00",
|
||||
X"5E",X"20",X"59",X"B7",X"28",X"03",X"DD",X"86",X"09",X"21",X"1C",X"06",X"4F",X"06",X"00",X"09",
|
||||
X"09",X"7E",X"DD",X"77",X"11",X"23",X"7E",X"DD",X"77",X"12",X"DD",X"CB",X"00",X"6E",X"28",X"16",
|
||||
X"1A",X"13",X"DD",X"86",X"09",X"21",X"1C",X"06",X"4F",X"06",X"00",X"09",X"09",X"7E",X"DD",X"77",
|
||||
X"15",X"23",X"7E",X"DD",X"77",X"16",X"D5",X"1A",X"67",X"DD",X"5E",X"02",X"CD",X"96",X"06",X"D1",
|
||||
X"DD",X"75",X"05",X"DD",X"74",X"06",X"AF",X"DD",X"77",X"0F",X"DD",X"77",X"10",X"13",X"DD",X"73",
|
||||
X"07",X"DD",X"72",X"08",X"AF",X"DD",X"77",X"03",X"DD",X"77",X"04",X"C9",X"DD",X"77",X"12",X"1A",
|
||||
X"13",X"DD",X"77",X"11",X"DD",X"CB",X"00",X"6E",X"28",X"CC",X"1A",X"13",X"DD",X"77",X"16",X"1A",
|
||||
X"13",X"DD",X"77",X"15",X"18",X"C0",X"21",X"D9",X"02",X"E5",X"E6",X"3F",X"21",X"DD",X"02",X"4F",
|
||||
X"06",X"00",X"09",X"09",X"7E",X"23",X"66",X"6F",X"E9",X"13",X"C3",X"47",X"02",X"AA",X"03",X"03",
|
||||
X"03",X"08",X"03",X"1D",X"03",X"CF",X"03",X"31",X"03",X"48",X"03",X"4D",X"03",X"58",X"03",X"73",
|
||||
X"03",X"52",X"03",X"86",X"03",X"8E",X"03",X"A6",X"03",X"AC",X"03",X"B2",X"03",X"B8",X"03",X"BE",
|
||||
X"03",X"C6",X"03",X"1A",X"DD",X"77",X"02",X"C9",X"1A",X"DD",X"77",X"0D",X"C9",X"0F",X"0E",X"0D",
|
||||
X"0C",X"0B",X"0A",X"09",X"07",X"08",X"06",X"05",X"04",X"03",X"02",X"01",X"00",X"1A",X"D5",X"5F",
|
||||
X"DD",X"66",X"02",X"CD",X"96",X"06",X"DD",X"75",X"03",X"DD",X"74",X"04",X"D1",X"E1",X"C3",X"9D",
|
||||
X"02",X"1A",X"F6",X"E0",X"F5",X"CD",X"00",X"04",X"F1",X"F6",X"FC",X"3C",X"20",X"05",X"DD",X"CB",
|
||||
X"00",X"B6",X"C9",X"DD",X"CB",X"00",X"F6",X"C9",X"1A",X"DD",X"77",X"0C",X"C9",X"1A",X"DD",X"77",
|
||||
X"0B",X"C9",X"EB",X"5E",X"23",X"56",X"1B",X"C9",X"1A",X"4F",X"13",X"1A",X"47",X"C5",X"DD",X"E5",
|
||||
X"E1",X"DD",X"35",X"0A",X"DD",X"4E",X"0A",X"DD",X"35",X"0A",X"06",X"00",X"09",X"72",X"2B",X"73",
|
||||
X"D1",X"1B",X"C9",X"DD",X"E5",X"E1",X"DD",X"4E",X"0A",X"06",X"00",X"09",X"5E",X"23",X"56",X"DD",
|
||||
X"34",X"0A",X"DD",X"34",X"0A",X"C9",X"1A",X"DD",X"86",X"09",X"DD",X"77",X"09",X"C9",X"1A",X"13",
|
||||
X"C6",X"18",X"4F",X"06",X"00",X"DD",X"E5",X"E1",X"09",X"7E",X"B7",X"20",X"02",X"1A",X"77",X"13",
|
||||
X"35",X"C2",X"52",X"03",X"13",X"C9",X"DD",X"CB",X"00",X"EE",X"1B",X"C9",X"DD",X"CB",X"00",X"AE",
|
||||
X"1B",X"C9",X"DD",X"CB",X"00",X"DE",X"1B",X"C9",X"DD",X"CB",X"00",X"9E",X"1B",X"C9",X"1A",X"DD",
|
||||
X"B6",X"00",X"DD",X"77",X"00",X"C9",X"1A",X"2F",X"DD",X"A6",X"00",X"DD",X"77",X"00",X"C9",X"CD",
|
||||
X"F1",X"03",X"DD",X"36",X"00",X"00",X"E1",X"E1",X"CD",X"C9",X"06",X"AF",X"32",X"02",X"81",X"C9",
|
||||
X"DD",X"35",X"04",X"C0",X"DD",X"7E",X"03",X"DD",X"77",X"04",X"DD",X"6E",X"05",X"DD",X"66",X"06",
|
||||
X"E9",X"DD",X"7E",X"01",X"E6",X"0F",X"4F",X"06",X"00",X"21",X"CD",X"01",X"09",X"7E",X"F6",X"0F",
|
||||
X"DD",X"CB",X"00",X"56",X"C0",X"ED",X"47",X"DD",X"7E",X"01",X"E6",X"F0",X"FE",X"30",X"28",X"10",
|
||||
X"FE",X"10",X"28",X"06",X"ED",X"57",X"32",X"00",X"A0",X"C9",X"ED",X"57",X"32",X"00",X"C0",X"C9",
|
||||
X"ED",X"57",X"C9",X"C5",X"E5",X"ED",X"47",X"E6",X"03",X"06",X"00",X"4F",X"21",X"87",X"04",X"09",
|
||||
X"4E",X"ED",X"57",X"E6",X"30",X"FE",X"30",X"28",X"0F",X"CB",X"67",X"79",X"20",X"05",X"32",X"00",
|
||||
X"C0",X"18",X"06",X"32",X"00",X"A0",X"18",X"01",X"79",X"E1",X"C1",X"C9",X"21",X"00",X"82",X"11",
|
||||
X"01",X"82",X"01",X"7F",X"02",X"36",X"00",X"ED",X"B0",X"21",X"00",X"82",X"11",X"01",X"82",X"01",
|
||||
X"A0",X"01",X"36",X"00",X"ED",X"B0",X"21",X"87",X"04",X"11",X"00",X"A0",X"01",X"04",X"00",X"ED",
|
||||
X"B0",X"21",X"87",X"04",X"11",X"00",X"C0",X"01",X"04",X"00",X"ED",X"B0",X"C9",X"21",X"00",X"80",
|
||||
X"7E",X"B7",X"28",X"FC",X"36",X"00",X"C9",X"9F",X"BF",X"DF",X"FF",X"3A",X"00",X"81",X"CB",X"7F",
|
||||
X"CA",X"4C",X"04",X"FE",X"00",X"CA",X"4C",X"04",X"FE",X"FF",X"CA",X"4C",X"04",X"21",X"BF",X"04",
|
||||
X"01",X"10",X"00",X"ED",X"B9",X"C0",X"21",X"BF",X"04",X"09",X"09",X"7E",X"23",X"66",X"6F",X"E9",
|
||||
X"82",X"84",X"85",X"86",X"88",X"89",X"8A",X"8B",X"8C",X"8D",X"8E",X"90",X"93",X"94",X"95",X"DD",
|
||||
X"04",X"EB",X"04",X"FA",X"04",X"09",X"05",X"2D",X"05",X"3C",X"05",X"4B",X"05",X"5A",X"05",X"76",
|
||||
X"05",X"8A",X"05",X"9E",X"05",X"AD",X"05",X"BC",X"05",X"CB",X"05",X"DA",X"05",X"CD",X"4C",X"04",
|
||||
X"21",X"00",X"10",X"11",X"00",X"82",X"AF",X"08",X"C3",X"E9",X"05",X"CD",X"4C",X"04",X"21",X"7C",
|
||||
X"10",X"11",X"00",X"82",X"3E",X"01",X"08",X"C3",X"E9",X"05",X"CD",X"4C",X"04",X"21",X"A4",X"11",
|
||||
X"11",X"00",X"82",X"3E",X"02",X"08",X"C3",X"E9",X"05",X"3A",X"02",X"81",X"CB",X"47",X"C2",X"0E",
|
||||
X"06",X"21",X"01",X"81",X"36",X"FF",X"CD",X"B5",X"06",X"CD",X"66",X"04",X"21",X"02",X"81",X"CB",
|
||||
X"CE",X"21",X"CC",X"12",X"11",X"00",X"83",X"3E",X"03",X"08",X"C3",X"E9",X"05",X"CD",X"4C",X"04",
|
||||
X"21",X"3F",X"13",X"11",X"00",X"82",X"3E",X"04",X"08",X"C3",X"E9",X"05",X"CD",X"59",X"04",X"21",
|
||||
X"4D",X"14",X"11",X"00",X"82",X"3E",X"05",X"08",X"C3",X"E9",X"05",X"CD",X"59",X"04",X"21",X"CF",
|
||||
X"15",X"11",X"00",X"82",X"3E",X"06",X"08",X"C3",X"E9",X"05",X"3A",X"02",X"81",X"CB",X"47",X"C2",
|
||||
X"0E",X"06",X"3A",X"02",X"81",X"CB",X"4F",X"C2",X"0E",X"06",X"21",X"81",X"17",X"11",X"E0",X"82",
|
||||
X"3E",X"07",X"08",X"C3",X"E9",X"05",X"3A",X"02",X"81",X"CB",X"47",X"C2",X"0E",X"06",X"21",X"CE",
|
||||
X"17",X"11",X"80",X"82",X"3E",X"08",X"08",X"C3",X"E9",X"05",X"3A",X"02",X"81",X"CB",X"47",X"C2",
|
||||
X"0E",X"06",X"21",X"10",X"18",X"11",X"60",X"82",X"3E",X"09",X"08",X"C3",X"E9",X"05",X"CD",X"4C",
|
||||
X"04",X"21",X"8A",X"18",X"11",X"00",X"82",X"3E",X"0A",X"08",X"C3",X"E9",X"05",X"CD",X"4C",X"04",
|
||||
X"21",X"1D",X"19",X"11",X"E0",X"82",X"3E",X"0B",X"08",X"C3",X"E9",X"05",X"CD",X"4C",X"04",X"21",
|
||||
X"3F",X"1A",X"11",X"00",X"82",X"3E",X"0C",X"08",X"C3",X"E9",X"05",X"CD",X"4C",X"04",X"21",X"E5",
|
||||
X"1A",X"11",X"00",X"82",X"3E",X"0D",X"08",X"C3",X"E9",X"05",X"CD",X"4C",X"04",X"21",X"79",X"1B",
|
||||
X"11",X"00",X"82",X"3E",X"0E",X"08",X"C3",X"E9",X"05",X"7E",X"23",X"66",X"6F",X"46",X"23",X"C5",
|
||||
X"7E",X"23",X"E5",X"FE",X"FF",X"28",X"1D",X"66",X"6F",X"01",X"0E",X"00",X"ED",X"B0",X"08",X"12",
|
||||
X"08",X"13",X"AF",X"06",X"11",X"12",X"13",X"10",X"FC",X"E1",X"23",X"C1",X"10",X"E1",X"3E",X"80",
|
||||
X"32",X"00",X"81",X"C9",X"EB",X"01",X"20",X"00",X"09",X"EB",X"18",X"ED",X"00",X"00",X"FF",X"03",
|
||||
X"C7",X"03",X"90",X"03",X"5D",X"03",X"2D",X"03",X"FF",X"02",X"D4",X"02",X"AB",X"02",X"85",X"02",
|
||||
X"61",X"02",X"3F",X"02",X"1E",X"02",X"00",X"02",X"E3",X"01",X"C8",X"01",X"AF",X"01",X"96",X"01",
|
||||
X"80",X"01",X"6A",X"01",X"56",X"01",X"43",X"01",X"30",X"01",X"1F",X"01",X"0F",X"01",X"00",X"01",
|
||||
X"F2",X"00",X"E4",X"00",X"D7",X"00",X"CB",X"00",X"C0",X"00",X"B5",X"00",X"AB",X"00",X"A1",X"00",
|
||||
X"98",X"00",X"90",X"00",X"88",X"00",X"80",X"00",X"79",X"00",X"72",X"00",X"6C",X"00",X"66",X"00",
|
||||
X"60",X"00",X"5B",X"00",X"55",X"00",X"51",X"00",X"4C",X"00",X"48",X"00",X"44",X"00",X"40",X"00",
|
||||
X"3C",X"00",X"39",X"00",X"36",X"00",X"33",X"00",X"30",X"00",X"2D",X"00",X"2B",X"00",X"28",X"00",
|
||||
X"26",X"00",X"24",X"00",X"22",X"00",X"16",X"00",X"6A",X"06",X"08",X"29",X"30",X"01",X"19",X"10",
|
||||
X"FA",X"C9",X"06",X"08",X"ED",X"6A",X"7C",X"38",X"03",X"BB",X"38",X"03",X"93",X"67",X"B7",X"10",
|
||||
X"F3",X"7D",X"17",X"2F",X"C9",X"06",X"24",X"11",X"20",X"00",X"21",X"00",X"82",X"3A",X"01",X"81",
|
||||
X"0F",X"30",X"02",X"CB",X"D6",X"19",X"10",X"F8",X"C9",X"3A",X"01",X"81",X"06",X"08",X"21",X"00",
|
||||
X"82",X"11",X"20",X"00",X"0F",X"30",X"02",X"CB",X"96",X"19",X"10",X"F8",X"C9",X"0F",X"00",X"10",
|
||||
X"7C",X"10",X"A4",X"11",X"CC",X"12",X"3F",X"13",X"4D",X"14",X"CF",X"15",X"81",X"17",X"CE",X"17",
|
||||
X"10",X"18",X"8A",X"18",X"1D",X"19",X"3F",X"1A",X"E5",X"1A",X"79",X"1B",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"06",X"10",X"59",X"10",X"75",X"10",X"01",X"09",X"10",X"80",X"20",X"00",X"00",X"00",X"01",X"00",
|
||||
X"16",X"10",X"02",X"20",X"00",X"00",X"81",X"06",X"86",X"02",X"87",X"00",X"82",X"0E",X"1B",X"06",
|
||||
X"1B",X"03",X"22",X"03",X"27",X"03",X"2A",X"06",X"23",X"06",X"22",X"06",X"1E",X"06",X"1E",X"03",
|
||||
X"22",X"03",X"25",X"03",X"2A",X"03",X"25",X"03",X"22",X"03",X"20",X"06",X"20",X"03",X"24",X"03",
|
||||
X"27",X"03",X"2C",X"06",X"27",X"06",X"24",X"06",X"23",X"06",X"22",X"03",X"22",X"03",X"24",X"06",
|
||||
X"24",X"03",X"24",X"03",X"26",X"06",X"8A",X"1E",X"10",X"5D",X"10",X"6E",X"10",X"AB",X"BC",X"CD",
|
||||
X"DE",X"EF",X"FF",X"FE",X"ED",X"DC",X"CB",X"BA",X"A9",X"98",X"87",X"76",X"65",X"01",X"CD",X"EF",
|
||||
X"FE",X"DC",X"BA",X"98",X"01",X"77",X"10",X"AB",X"CD",X"DC",X"BA",X"00",X"82",X"10",X"91",X"11",
|
||||
X"9F",X"11",X"08",X"93",X"10",X"A0",X"10",X"AD",X"10",X"BA",X"10",X"C7",X"10",X"D4",X"10",X"E1",
|
||||
X"10",X"EE",X"10",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"FB",X"10",X"02",X"20",X"00",X"00",
|
||||
X"80",X"21",X"00",X"00",X"00",X"20",X"00",X"46",X"11",X"02",X"20",X"00",X"00",X"00",X"22",X"00",
|
||||
X"00",X"00",X"20",X"00",X"46",X"11",X"02",X"20",X"00",X"00",X"00",X"23",X"00",X"00",X"00",X"20",
|
||||
X"00",X"46",X"11",X"02",X"20",X"00",X"00",X"00",X"10",X"00",X"00",X"00",X"20",X"00",X"46",X"11",
|
||||
X"02",X"20",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"20",X"00",X"46",X"11",X"02",X"20",X"00",
|
||||
X"00",X"00",X"12",X"00",X"00",X"00",X"20",X"00",X"46",X"11",X"02",X"20",X"00",X"00",X"00",X"13",
|
||||
X"00",X"00",X"00",X"20",X"00",X"46",X"11",X"02",X"20",X"00",X"00",X"81",X"0B",X"86",X"01",X"82",
|
||||
X"0A",X"87",X"01",X"86",X"02",X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",X"22",X"02",X"86",
|
||||
X"02",X"27",X"02",X"86",X"02",X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",X"20",X"02",X"86",
|
||||
X"02",X"25",X"02",X"86",X"02",X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",X"1E",X"02",X"86",
|
||||
X"02",X"24",X"02",X"86",X"02",X"1D",X"02",X"86",X"02",X"22",X"02",X"86",X"02",X"1D",X"02",X"86",
|
||||
X"02",X"22",X"02",X"8A",X"03",X"11",X"81",X"0B",X"86",X"01",X"82",X"0A",X"87",X"01",X"86",X"02",
|
||||
X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",
|
||||
X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",
|
||||
X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",
|
||||
X"1D",X"02",X"86",X"02",X"22",X"02",X"86",X"02",X"1D",X"02",X"86",X"02",X"22",X"02",X"8A",X"4E",
|
||||
X"11",X"95",X"11",X"9A",X"11",X"EF",X"FE",X"DC",X"BA",X"02",X"EF",X"FE",X"DC",X"BA",X"01",X"A1",
|
||||
X"11",X"CD",X"ED",X"00",X"AA",X"11",X"B9",X"12",X"C7",X"12",X"08",X"BB",X"11",X"C8",X"11",X"D5",
|
||||
X"11",X"E2",X"11",X"EF",X"11",X"FC",X"11",X"09",X"12",X"16",X"12",X"80",X"20",X"00",X"00",X"00",
|
||||
X"01",X"00",X"23",X"12",X"02",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"20",X"00",X"6E",
|
||||
X"12",X"02",X"20",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"20",X"00",X"6E",X"12",X"02",X"20",
|
||||
X"00",X"00",X"00",X"23",X"00",X"00",X"00",X"20",X"00",X"6E",X"12",X"02",X"20",X"00",X"00",X"00",
|
||||
X"10",X"00",X"00",X"00",X"20",X"00",X"6E",X"12",X"02",X"20",X"00",X"00",X"00",X"11",X"00",X"00",
|
||||
X"00",X"20",X"00",X"6E",X"12",X"02",X"20",X"00",X"00",X"00",X"12",X"00",X"00",X"00",X"20",X"00",
|
||||
X"6E",X"12",X"02",X"20",X"00",X"00",X"00",X"13",X"00",X"00",X"00",X"20",X"00",X"6E",X"12",X"02",
|
||||
X"20",X"00",X"00",X"81",X"0B",X"86",X"01",X"82",X"0D",X"87",X"01",X"86",X"02",X"22",X"02",X"86",
|
||||
X"02",X"27",X"02",X"86",X"02",X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",X"20",X"02",X"86",
|
||||
X"02",X"25",X"02",X"86",X"02",X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",X"1E",X"02",X"86",
|
||||
X"02",X"24",X"02",X"86",X"02",X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",X"1D",X"02",X"86",
|
||||
X"02",X"22",X"02",X"86",X"02",X"1D",X"02",X"86",X"02",X"22",X"02",X"8A",X"2B",X"12",X"81",X"0B",
|
||||
X"86",X"01",X"82",X"0D",X"87",X"01",X"86",X"02",X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",
|
||||
X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",
|
||||
X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",
|
||||
X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",X"1D",X"02",X"86",X"02",X"22",X"02",X"86",X"02",
|
||||
X"1D",X"02",X"86",X"02",X"22",X"02",X"8A",X"76",X"12",X"BD",X"12",X"C2",X"12",X"EF",X"FE",X"DC",
|
||||
X"BA",X"02",X"EF",X"FE",X"DC",X"BA",X"01",X"C9",X"12",X"CD",X"ED",X"00",X"D2",X"12",X"FF",X"12",
|
||||
X"0F",X"13",X"01",X"D5",X"12",X"80",X"11",X"00",X"00",X"00",X"01",X"00",X"E2",X"12",X"00",X"20",
|
||||
X"00",X"00",X"82",X"0F",X"81",X"03",X"87",X"00",X"86",X"01",X"30",X"05",X"34",X"05",X"32",X"05",
|
||||
X"37",X"05",X"32",X"05",X"34",X"05",X"30",X"05",X"34",X"05",X"32",X"05",X"37",X"05",X"84",X"03",
|
||||
X"13",X"0B",X"13",X"DE",X"FF",X"FE",X"DC",X"BA",X"98",X"76",X"01",X"EF",X"FE",X"DC",X"02",X"13",
|
||||
X"13",X"29",X"13",X"FF",X"FF",X"FF",X"FF",X"EE",X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",
|
||||
X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",X"02",X"FF",X"FF",X"FF",X"FF",X"EE",X"EE",X"DD",
|
||||
X"DD",X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"DD",X"02",X"45",
|
||||
X"13",X"24",X"14",X"3F",X"14",X"08",X"56",X"13",X"63",X"13",X"70",X"13",X"7D",X"13",X"8A",X"13",
|
||||
X"97",X"13",X"A4",X"13",X"B1",X"13",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"BE",X"13",X"02",
|
||||
X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"D9",X"13",X"02",X"20",X"00",X"00",
|
||||
X"00",X"22",X"00",X"00",X"00",X"01",X"00",X"D9",X"13",X"02",X"20",X"00",X"00",X"00",X"23",X"00",
|
||||
X"00",X"00",X"01",X"00",X"D9",X"13",X"02",X"20",X"00",X"00",X"00",X"10",X"00",X"00",X"00",X"01",
|
||||
X"00",X"D9",X"13",X"02",X"20",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"01",X"00",X"D9",X"13",
|
||||
X"02",X"20",X"00",X"00",X"00",X"12",X"00",X"00",X"00",X"01",X"00",X"D9",X"13",X"02",X"20",X"00",
|
||||
X"00",X"00",X"13",X"00",X"00",X"00",X"01",X"00",X"D9",X"13",X"02",X"20",X"00",X"00",X"81",X"0B",
|
||||
X"86",X"01",X"82",X"0D",X"87",X"00",X"1D",X"02",X"1F",X"02",X"20",X"02",X"22",X"02",X"20",X"02",
|
||||
X"1F",X"02",X"1D",X"02",X"1D",X"02",X"8A",X"C6",X"13",X"81",X"0B",X"86",X"01",X"82",X"0D",X"87",
|
||||
X"00",X"1D",X"02",X"20",X"02",X"1D",X"02",X"20",X"02",X"1D",X"02",X"20",X"02",X"1D",X"02",X"20",
|
||||
X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",
|
||||
X"02",X"19",X"02",X"1D",X"02",X"19",X"02",X"1D",X"02",X"19",X"02",X"1D",X"02",X"19",X"02",X"1D",
|
||||
X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",
|
||||
X"02",X"8A",X"E1",X"13",X"2A",X"14",X"31",X"14",X"38",X"14",X"EF",X"FE",X"DC",X"BA",X"A9",X"87",
|
||||
X"01",X"9A",X"AB",X"BC",X"CD",X"DE",X"EE",X"01",X"EF",X"FF",X"FF",X"FD",X"A8",X"65",X"01",X"43",
|
||||
X"14",X"47",X"14",X"DE",X"FF",X"ED",X"00",X"CD",X"ED",X"DC",X"BA",X"BC",X"00",X"53",X"14",X"4C",
|
||||
X"15",X"93",X"15",X"08",X"64",X"14",X"71",X"14",X"7E",X"14",X"8B",X"14",X"98",X"14",X"A5",X"14",
|
||||
X"B2",X"14",X"BF",X"14",X"80",X"20",X"00",X"00",X"00",X"05",X"00",X"CC",X"14",X"02",X"20",X"00",
|
||||
X"00",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"F4",X"14",X"02",X"20",X"00",X"00",X"00",X"22",
|
||||
X"00",X"00",X"00",X"01",X"00",X"F4",X"14",X"02",X"20",X"00",X"00",X"00",X"23",X"00",X"00",X"00",
|
||||
X"01",X"00",X"F4",X"14",X"02",X"20",X"00",X"00",X"00",X"10",X"00",X"00",X"00",X"01",X"00",X"F4",
|
||||
X"14",X"02",X"20",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"01",X"00",X"F4",X"14",X"02",X"20",
|
||||
X"00",X"00",X"00",X"12",X"00",X"00",X"00",X"01",X"00",X"F4",X"14",X"02",X"20",X"00",X"00",X"00",
|
||||
X"13",X"00",X"00",X"00",X"01",X"00",X"F4",X"14",X"02",X"20",X"00",X"00",X"81",X"11",X"86",X"01",
|
||||
X"87",X"00",X"82",X"0F",X"8D",X"2A",X"0D",X"0D",X"8E",X"81",X"0B",X"86",X"02",X"82",X"0E",X"87",
|
||||
X"00",X"1D",X"02",X"1F",X"02",X"20",X"02",X"22",X"02",X"20",X"02",X"1F",X"02",X"1D",X"02",X"1D",
|
||||
X"02",X"8A",X"E1",X"14",X"81",X"11",X"86",X"01",X"87",X"00",X"82",X"0F",X"8D",X"2C",X"0D",X"0D",
|
||||
X"8E",X"81",X"0B",X"86",X"02",X"82",X"0E",X"87",X"00",X"1D",X"02",X"20",X"02",X"1D",X"02",X"20",
|
||||
X"02",X"1D",X"02",X"20",X"02",X"1D",X"02",X"20",X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",
|
||||
X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",X"02",X"19",X"02",X"1D",X"02",X"19",X"02",X"1D",
|
||||
X"02",X"19",X"02",X"1D",X"02",X"19",X"02",X"1D",X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",
|
||||
X"02",X"1B",X"02",X"1F",X"02",X"1B",X"02",X"1F",X"02",X"8A",X"09",X"15",X"54",X"15",X"80",X"15",
|
||||
X"85",X"15",X"8C",X"15",X"11",X"12",X"23",X"34",X"45",X"56",X"67",X"78",X"89",X"9A",X"AB",X"BC",
|
||||
X"CD",X"DE",X"EF",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",
|
||||
X"FE",X"FE",X"FE",X"FE",X"ED",X"DC",X"CB",X"BA",X"A9",X"98",X"87",X"76",X"65",X"43",X"21",X"01",
|
||||
X"EF",X"FE",X"DC",X"BA",X"01",X"9A",X"AB",X"BC",X"CD",X"DE",X"EE",X"01",X"EF",X"FF",X"FF",X"FD",
|
||||
X"A8",X"65",X"01",X"9B",X"15",X"B0",X"15",X"C5",X"15",X"C9",X"15",X"DD",X"DD",X"EF",X"FE",X"DC",
|
||||
X"BB",X"CD",X"DE",X"EF",X"FE",X"DC",X"BB",X"CD",X"EF",X"FE",X"DC",X"BB",X"CD",X"EF",X"FE",X"00",
|
||||
X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",
|
||||
X"EE",X"EE",X"DD",X"DD",X"00",X"DE",X"FF",X"ED",X"00",X"CD",X"ED",X"DC",X"BA",X"BC",X"00",X"D5",
|
||||
X"15",X"00",X"17",X"47",X"17",X"08",X"E6",X"15",X"F3",X"15",X"00",X"16",X"0D",X"16",X"1A",X"16",
|
||||
X"27",X"16",X"34",X"16",X"41",X"16",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"4E",X"16",X"02",
|
||||
X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"05",X"00",X"A6",X"16",X"02",X"20",X"00",X"00",
|
||||
X"00",X"22",X"00",X"00",X"00",X"05",X"00",X"A6",X"16",X"02",X"20",X"00",X"00",X"00",X"23",X"00",
|
||||
X"00",X"00",X"05",X"00",X"A6",X"16",X"02",X"20",X"00",X"00",X"00",X"10",X"00",X"00",X"00",X"05",
|
||||
X"00",X"A6",X"16",X"02",X"20",X"00",X"00",X"00",X"11",X"00",X"00",X"00",X"05",X"00",X"A6",X"16",
|
||||
X"02",X"20",X"00",X"00",X"00",X"12",X"00",X"00",X"00",X"05",X"00",X"A6",X"16",X"02",X"20",X"00",
|
||||
X"00",X"00",X"13",X"00",X"00",X"00",X"05",X"00",X"A6",X"16",X"02",X"20",X"00",X"00",X"81",X"11",
|
||||
X"86",X"01",X"87",X"00",X"82",X"0F",X"8D",X"2C",X"0D",X"0D",X"8E",X"81",X"0B",X"86",X"03",X"82",
|
||||
X"0D",X"87",X"04",X"86",X"02",X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",X"22",X"02",X"86",
|
||||
X"02",X"27",X"02",X"86",X"02",X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",X"20",X"02",X"86",
|
||||
X"02",X"25",X"02",X"86",X"02",X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",X"1E",X"02",X"86",
|
||||
X"02",X"24",X"02",X"86",X"02",X"1D",X"02",X"86",X"02",X"22",X"02",X"86",X"02",X"1D",X"02",X"86",
|
||||
X"02",X"22",X"02",X"8A",X"63",X"16",X"81",X"11",X"86",X"01",X"87",X"00",X"82",X"0F",X"00",X"03",
|
||||
X"8D",X"2C",X"0D",X"0A",X"8E",X"81",X"0B",X"86",X"04",X"82",X"0D",X"87",X"04",X"86",X"02",X"22",
|
||||
X"02",X"86",X"02",X"27",X"02",X"86",X"02",X"22",X"02",X"86",X"02",X"27",X"02",X"86",X"02",X"20",
|
||||
X"02",X"86",X"02",X"25",X"02",X"86",X"02",X"20",X"02",X"86",X"02",X"25",X"02",X"86",X"02",X"1E",
|
||||
X"02",X"86",X"02",X"24",X"02",X"86",X"02",X"1E",X"02",X"86",X"02",X"24",X"02",X"86",X"02",X"1D",
|
||||
X"02",X"86",X"02",X"22",X"02",X"86",X"02",X"1D",X"02",X"86",X"02",X"22",X"02",X"8A",X"BD",X"16",
|
||||
X"08",X"17",X"34",X"17",X"39",X"17",X"40",X"17",X"11",X"12",X"23",X"34",X"45",X"56",X"67",X"78",
|
||||
X"89",X"9A",X"AB",X"BC",X"CD",X"DE",X"EF",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",
|
||||
X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"ED",X"DC",X"CB",X"BA",X"A9",X"98",X"87",X"76",
|
||||
X"65",X"43",X"21",X"01",X"EF",X"FE",X"DC",X"BA",X"01",X"9A",X"AB",X"BC",X"CD",X"DE",X"EE",X"01",
|
||||
X"EF",X"FF",X"FF",X"FD",X"A8",X"65",X"01",X"4F",X"17",X"64",X"17",X"79",X"17",X"7D",X"17",X"DD",
|
||||
X"DD",X"EF",X"FE",X"DC",X"BB",X"CD",X"DE",X"EF",X"FE",X"DC",X"BB",X"CD",X"EF",X"FE",X"DC",X"BB",
|
||||
X"CD",X"EF",X"FE",X"00",X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",
|
||||
X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"00",X"DE",X"FF",X"ED",X"00",X"CD",X"ED",X"DC",
|
||||
X"00",X"87",X"17",X"AB",X"17",X"C7",X"17",X"01",X"8A",X"17",X"80",X"13",X"00",X"00",X"00",X"01",
|
||||
X"00",X"97",X"17",X"00",X"20",X"00",X"00",X"82",X"0D",X"81",X"04",X"86",X"00",X"85",X"03",X"87",
|
||||
X"00",X"8F",X"8D",X"00",X"09",X"00",X"03",X"08",X"8E",X"90",X"84",X"AF",X"17",X"BF",X"17",X"FE",
|
||||
X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"ED",X"DC",X"CB",X"BA",X"A9",X"98",X"86",X"01",X"FF",
|
||||
X"FF",X"DD",X"BB",X"AA",X"88",X"66",X"02",X"C9",X"17",X"CD",X"EF",X"FE",X"DC",X"00",X"D2",X"17",
|
||||
X"0B",X"18",X"01",X"D5",X"17",X"80",X"10",X"00",X"00",X"00",X"01",X"00",X"E2",X"17",X"08",X"20",
|
||||
X"00",X"00",X"82",X"0A",X"86",X"00",X"81",X"04",X"87",X"01",X"8D",X"2A",X"27",X"03",X"8E",X"8D",
|
||||
X"27",X"24",X"04",X"8E",X"8D",X"24",X"1F",X"04",X"8E",X"8D",X"21",X"1E",X"05",X"8E",X"8D",X"1E",
|
||||
X"1B",X"06",X"8E",X"8D",X"1B",X"24",X"07",X"8E",X"84",X"0B",X"18",X"CD",X"EF",X"FE",X"DC",X"00",
|
||||
X"14",X"18",X"6E",X"18",X"01",X"17",X"18",X"80",X"23",X"00",X"00",X"00",X"01",X"00",X"24",X"18",
|
||||
X"00",X"20",X"00",X"00",X"82",X"0F",X"81",X"04",X"86",X"00",X"85",X"03",X"8F",X"00",X"07",X"02",
|
||||
X"90",X"8F",X"00",X"05",X"02",X"90",X"8F",X"00",X"03",X"01",X"90",X"8F",X"00",X"01",X"02",X"90",
|
||||
X"8F",X"00",X"08",X"01",X"90",X"8F",X"00",X"06",X"01",X"90",X"8F",X"00",X"04",X"01",X"90",X"8F",
|
||||
X"00",X"02",X"01",X"90",X"8F",X"00",X"01",X"02",X"90",X"8F",X"00",X"08",X"01",X"90",X"8F",X"00",
|
||||
X"02",X"02",X"90",X"8F",X"00",X"06",X"01",X"90",X"8F",X"00",X"08",X"01",X"90",X"84",X"72",X"18",
|
||||
X"82",X"18",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"ED",X"DC",X"CB",X"BA",X"A9",X"98",
|
||||
X"86",X"01",X"FF",X"FF",X"DD",X"BB",X"AA",X"88",X"66",X"02",X"90",X"18",X"DD",X"18",X"ED",X"18",
|
||||
X"02",X"95",X"18",X"A2",X"18",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"AF",X"18",X"0E",X"20",
|
||||
X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"14",X"00",X"C6",X"18",X"0E",X"20",X"00",X"00",X"82",
|
||||
X"0F",X"81",X"04",X"87",X"00",X"86",X"01",X"19",X"05",X"1C",X"05",X"1E",X"05",X"86",X"02",X"21",
|
||||
X"05",X"00",X"05",X"8A",X"B5",X"18",X"82",X"0F",X"81",X"04",X"87",X"00",X"86",X"01",X"19",X"05",
|
||||
X"1C",X"05",X"1E",X"05",X"86",X"02",X"21",X"05",X"00",X"05",X"8A",X"CC",X"18",X"E1",X"18",X"E7",
|
||||
X"18",X"DE",X"FF",X"FF",X"FF",X"ED",X"01",X"DC",X"BA",X"98",X"76",X"54",X"01",X"F1",X"18",X"07",
|
||||
X"19",X"FF",X"FF",X"FF",X"FF",X"EE",X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",
|
||||
X"DD",X"EE",X"DD",X"EE",X"DD",X"EE",X"00",X"FF",X"FF",X"FF",X"FF",X"EE",X"EE",X"DD",X"DD",X"EE",
|
||||
X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"EE",X"EE",X"DD",X"DD",X"DD",X"00",X"23",X"19",X"90",
|
||||
X"19",X"9F",X"19",X"01",X"26",X"19",X"80",X"13",X"00",X"00",X"00",X"01",X"00",X"33",X"19",X"00",
|
||||
X"20",X"00",X"00",X"81",X"06",X"86",X"00",X"85",X"03",X"85",X"07",X"82",X"0F",X"8F",X"00",X"20",
|
||||
X"05",X"90",X"82",X"0E",X"8F",X"00",X"21",X"05",X"90",X"82",X"0D",X"8F",X"00",X"1F",X"05",X"90",
|
||||
X"82",X"0C",X"8F",X"00",X"21",X"05",X"90",X"82",X"0B",X"8F",X"00",X"1F",X"05",X"90",X"82",X"0A",
|
||||
X"8F",X"00",X"21",X"04",X"90",X"82",X"09",X"8F",X"00",X"1F",X"04",X"90",X"82",X"08",X"8F",X"00",
|
||||
X"21",X"04",X"90",X"82",X"07",X"8F",X"00",X"1F",X"04",X"90",X"82",X"06",X"8F",X"00",X"21",X"04",
|
||||
X"90",X"82",X"05",X"8F",X"00",X"1F",X"03",X"90",X"82",X"04",X"8F",X"00",X"21",X"03",X"90",X"84",
|
||||
X"92",X"19",X"FE",X"FE",X"DE",X"DE",X"CD",X"CD",X"BC",X"BC",X"AB",X"AB",X"89",X"89",X"02",X"A1",
|
||||
X"19",X"FF",X"DD",X"FF",X"DD",X"00",X"AA",X"19",X"2C",X"1A",X"01",X"AD",X"19",X"80",X"11",X"00",
|
||||
X"00",X"00",X"01",X"00",X"BA",X"19",X"00",X"20",X"00",X"00",X"82",X"0F",X"81",X"04",X"86",X"00",
|
||||
X"87",X"00",X"82",X"0F",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"0E",X"8D",X"33",X"3B",X"06",X"8E",
|
||||
X"82",X"0D",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"0C",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"0B",
|
||||
X"8D",X"33",X"3B",X"06",X"8E",X"82",X"0A",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"09",X"8D",X"33",
|
||||
X"3B",X"06",X"8E",X"82",X"08",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"07",X"8D",X"33",X"3B",X"06",
|
||||
X"8E",X"82",X"06",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"05",X"8D",X"33",X"3B",X"06",X"8E",X"82",
|
||||
X"04",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"03",X"8D",X"33",X"3B",X"06",X"8E",X"82",X"02",X"8D",
|
||||
X"33",X"3B",X"06",X"8E",X"82",X"01",X"8D",X"33",X"3B",X"06",X"8E",X"84",X"30",X"1A",X"37",X"1A",
|
||||
X"FE",X"DC",X"BA",X"98",X"87",X"65",X"01",X"FF",X"FF",X"DD",X"BB",X"AA",X"88",X"66",X"02",X"45",
|
||||
X"1A",X"CC",X"1A",X"DE",X"1A",X"02",X"4A",X"1A",X"57",X"1A",X"80",X"20",X"00",X"00",X"00",X"01",
|
||||
X"00",X"64",X"1A",X"03",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"98",X"1A",
|
||||
X"03",X"20",X"00",X"00",X"81",X"0B",X"86",X"02",X"87",X"00",X"82",X"0F",X"19",X"04",X"00",X"02",
|
||||
X"86",X"02",X"18",X"02",X"18",X"02",X"18",X"02",X"86",X"01",X"19",X"04",X"00",X"02",X"1B",X"02",
|
||||
X"1B",X"02",X"1B",X"02",X"8C",X"00",X"02",X"6C",X"1A",X"86",X"02",X"19",X"02",X"00",X"02",X"1B",
|
||||
X"02",X"00",X"02",X"86",X"01",X"1D",X"0C",X"84",X"81",X"0B",X"86",X"02",X"87",X"00",X"82",X"0F",
|
||||
X"20",X"04",X"00",X"02",X"86",X"02",X"1F",X"02",X"1F",X"02",X"1F",X"02",X"86",X"01",X"20",X"04",
|
||||
X"00",X"02",X"22",X"02",X"22",X"02",X"22",X"02",X"8C",X"01",X"02",X"A0",X"1A",X"86",X"02",X"20",
|
||||
X"02",X"00",X"02",X"22",X"02",X"00",X"02",X"86",X"01",X"24",X"0C",X"84",X"D0",X"1A",X"D9",X"1A",
|
||||
X"EF",X"FF",X"FE",X"ED",X"DC",X"CB",X"BA",X"98",X"01",X"EF",X"FE",X"DC",X"BA",X"01",X"E0",X"1A",
|
||||
X"AB",X"CD",X"DC",X"BA",X"00",X"EB",X"1A",X"5E",X"1B",X"70",X"1B",X"02",X"F0",X"1A",X"FD",X"1A",
|
||||
X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"0A",X"1B",X"FC",X"20",X"00",X"00",X"80",X"21",X"00",
|
||||
X"00",X"00",X"05",X"00",X"34",X"1B",X"08",X"20",X"00",X"00",X"81",X"04",X"86",X"02",X"87",X"00",
|
||||
X"82",X"0F",X"1E",X"06",X"22",X"06",X"24",X"06",X"2A",X"06",X"29",X"06",X"27",X"06",X"25",X"06",
|
||||
X"24",X"06",X"22",X"06",X"21",X"06",X"20",X"06",X"1E",X"06",X"1F",X"06",X"27",X"06",X"8C",X"00",
|
||||
X"02",X"18",X"1B",X"84",X"81",X"04",X"86",X"02",X"87",X"00",X"82",X"0F",X"1E",X"06",X"22",X"06",
|
||||
X"24",X"06",X"2A",X"06",X"29",X"06",X"27",X"06",X"25",X"06",X"24",X"06",X"22",X"06",X"21",X"06",
|
||||
X"20",X"06",X"1E",X"06",X"1F",X"06",X"27",X"06",X"8C",X"01",X"02",X"42",X"1B",X"84",X"62",X"1B",
|
||||
X"69",X"1B",X"CD",X"EF",X"FE",X"ED",X"DC",X"CB",X"01",X"CD",X"EF",X"FE",X"DC",X"BA",X"98",X"01",
|
||||
X"72",X"1B",X"AB",X"CD",X"EF",X"FE",X"DC",X"BA",X"00",X"7F",X"1B",X"6F",X"1E",X"A1",X"1E",X"08",
|
||||
X"90",X"1B",X"9D",X"1B",X"AA",X"1B",X"B7",X"1B",X"C4",X"1B",X"D1",X"1B",X"DE",X"1B",X"EB",X"1B",
|
||||
X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"F8",X"1B",X"00",X"20",X"00",X"00",X"80",X"21",X"00",
|
||||
X"00",X"00",X"01",X"00",X"F0",X"1C",X"00",X"20",X"00",X"00",X"00",X"22",X"00",X"00",X"00",X"01",
|
||||
X"00",X"E8",X"1D",X"00",X"20",X"00",X"00",X"00",X"23",X"00",X"00",X"00",X"01",X"00",X"42",X"1E",
|
||||
X"00",X"20",X"00",X"00",X"00",X"10",X"00",X"00",X"00",X"01",X"00",X"E8",X"1D",X"00",X"20",X"00",
|
||||
X"00",X"80",X"11",X"00",X"00",X"00",X"01",X"00",X"17",X"1E",X"00",X"20",X"00",X"00",X"80",X"12",
|
||||
X"00",X"00",X"00",X"01",X"00",X"42",X"1E",X"00",X"20",X"00",X"00",X"00",X"13",X"00",X"00",X"00",
|
||||
X"01",X"00",X"42",X"1E",X"00",X"20",X"00",X"00",X"86",X"01",X"87",X"00",X"82",X"0F",X"81",X"0A",
|
||||
X"00",X"0A",X"8D",X"12",X"19",X"07",X"19",X"25",X"0B",X"25",X"31",X"11",X"31",X"3C",X"14",X"8E",
|
||||
X"81",X"0C",X"86",X"00",X"87",X"00",X"82",X"0F",X"8D",X"30",X"38",X"06",X"8E",X"82",X"0F",X"8D",
|
||||
X"2C",X"34",X"06",X"8E",X"82",X"0F",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0E",X"8D",X"30",X"38",
|
||||
X"06",X"8E",X"82",X"0E",X"8D",X"30",X"38",X"06",X"8E",X"82",X"0D",X"8D",X"30",X"38",X"06",X"8E",
|
||||
X"82",X"0D",X"8D",X"30",X"38",X"06",X"8E",X"82",X"0C",X"8D",X"30",X"38",X"06",X"8E",X"82",X"0C",
|
||||
X"8D",X"30",X"38",X"06",X"8E",X"82",X"0B",X"8D",X"30",X"38",X"06",X"8E",X"82",X"0B",X"8D",X"30",
|
||||
X"38",X"06",X"8E",X"82",X"0A",X"8D",X"30",X"38",X"06",X"8E",X"82",X"0A",X"8D",X"30",X"38",X"06",
|
||||
X"8E",X"82",X"09",X"8D",X"30",X"38",X"06",X"8E",X"82",X"09",X"8D",X"30",X"38",X"06",X"8E",X"82",
|
||||
X"08",X"8D",X"30",X"38",X"06",X"8E",X"82",X"08",X"8D",X"30",X"38",X"06",X"8E",X"82",X"07",X"8D",
|
||||
X"30",X"38",X"06",X"8E",X"82",X"07",X"8D",X"30",X"38",X"06",X"8E",X"82",X"06",X"8D",X"30",X"38",
|
||||
X"06",X"8E",X"82",X"06",X"8D",X"30",X"38",X"06",X"8E",X"82",X"05",X"8D",X"30",X"38",X"06",X"8E",
|
||||
X"82",X"05",X"8D",X"30",X"38",X"06",X"8E",X"82",X"04",X"8D",X"30",X"38",X"06",X"8E",X"82",X"04",
|
||||
X"8D",X"30",X"38",X"06",X"8E",X"82",X"03",X"8D",X"30",X"38",X"06",X"8E",X"82",X"03",X"8D",X"30",
|
||||
X"38",X"06",X"8E",X"82",X"02",X"8D",X"30",X"38",X"06",X"8E",X"82",X"02",X"8D",X"30",X"38",X"06",
|
||||
X"8E",X"82",X"01",X"8D",X"30",X"38",X"06",X"8E",X"82",X"01",X"8D",X"30",X"38",X"06",X"8E",X"84",
|
||||
X"86",X"01",X"87",X"00",X"82",X"0F",X"81",X"0A",X"00",X"0F",X"8D",X"12",X"1B",X"05",X"1B",X"27",
|
||||
X"0A",X"27",X"33",X"0F",X"31",X"3C",X"14",X"8E",X"81",X"0C",X"86",X"00",X"87",X"00",X"82",X"0F",
|
||||
X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0F",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0F",X"8D",X"2C",
|
||||
X"34",X"06",X"8E",X"82",X"0E",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0E",X"8D",X"2C",X"34",X"06",
|
||||
X"8E",X"82",X"0D",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0D",X"8D",X"2C",X"34",X"06",X"8E",X"82",
|
||||
X"0C",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0C",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0B",X"8D",
|
||||
X"2C",X"34",X"06",X"8E",X"82",X"0B",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"0A",X"8D",X"2C",X"34",
|
||||
X"06",X"8E",X"82",X"0A",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"09",X"8D",X"2C",X"34",X"06",X"8E",
|
||||
X"82",X"09",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"08",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"08",
|
||||
X"8D",X"2C",X"34",X"06",X"8E",X"82",X"07",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"07",X"8D",X"2C",
|
||||
X"34",X"06",X"8E",X"82",X"06",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"06",X"8D",X"2C",X"34",X"06",
|
||||
X"8E",X"82",X"05",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"05",X"8D",X"2C",X"34",X"06",X"8E",X"82",
|
||||
X"04",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"04",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"03",X"8D",
|
||||
X"2C",X"34",X"06",X"8E",X"82",X"03",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"02",X"8D",X"2C",X"34",
|
||||
X"06",X"8E",X"82",X"02",X"8D",X"2C",X"34",X"06",X"8E",X"82",X"01",X"8D",X"2C",X"34",X"06",X"8E",
|
||||
X"82",X"01",X"8D",X"2C",X"34",X"06",X"8E",X"84",X"81",X"05",X"86",X"00",X"87",X"00",X"82",X"0F",
|
||||
X"81",X"05",X"82",X"0F",X"8F",X"00",X"14",X"02",X"00",X"10",X"02",X"00",X"0C",X"02",X"00",X"10",
|
||||
X"02",X"90",X"81",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",
|
||||
X"00",X"0C",X"00",X"0C",X"00",X"06",X"84",X"86",X"01",X"87",X"00",X"82",X"0F",X"81",X"0A",X"8D",
|
||||
X"12",X"19",X"0A",X"19",X"25",X"0F",X"25",X"31",X"14",X"31",X"3C",X"14",X"8E",X"81",X"0C",X"00",
|
||||
X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",
|
||||
X"06",X"84",X"86",X"01",X"87",X"00",X"82",X"0F",X"81",X"0A",X"00",X"05",X"8D",X"0D",X"1E",X"0A",
|
||||
X"1E",X"25",X"0F",X"25",X"31",X"0F",X"31",X"3C",X"14",X"8E",X"81",X"0C",X"00",X"0C",X"00",X"0C",
|
||||
X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"0C",X"00",X"06",X"84",X"73",
|
||||
X"1E",X"75",X"1E",X"F9",X"00",X"11",X"12",X"23",X"34",X"45",X"56",X"67",X"78",X"89",X"9A",X"AB",
|
||||
X"BC",X"CD",X"DE",X"EF",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",
|
||||
X"FE",X"FE",X"FE",X"FE",X"FE",X"ED",X"DC",X"CB",X"BA",X"A9",X"98",X"87",X"76",X"65",X"43",X"21",
|
||||
X"01",X"A3",X"1E",X"DE",X"FE",X"DC",X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF");
|
||||
begin
|
||||
process(clk)
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
data <= rom_data(to_integer(unsigned(addr)));
|
||||
end if;
|
||||
end process;
|
||||
end architecture;
|
||||
2070
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/rom/spr_rom.vhd
Normal file
2070
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/rom/spr_rom.vhd
Normal file
File diff suppressed because it is too large
Load Diff
355
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/sdram.sv
Normal file
355
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/sdram.sv
Normal file
@@ -0,0 +1,355 @@
|
||||
//
|
||||
// sdram.v
|
||||
//
|
||||
// sdram controller implementation for the MiST board
|
||||
// https://github.com/mist-devel/mist-board
|
||||
//
|
||||
// Copyright (c) 2013 Till Harbaum <till@harbaum.org>
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
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 [16:1] cpu3_addr,
|
||||
output reg [15:0] cpu3_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[3];
|
||||
reg [24:1] addr_latch_next[2];
|
||||
reg [16:1] addr_last[4];
|
||||
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 = 3'd0;
|
||||
localparam PORT_CPU1 = 3'd1;
|
||||
localparam PORT_CPU2 = 3'd2;
|
||||
localparam PORT_CPU3 = 3'd3;
|
||||
localparam PORT_SP = 3'd1;
|
||||
localparam PORT_REQ = 3'd4;
|
||||
|
||||
reg [2:0] next_port[2];
|
||||
reg [2:0] port[2];
|
||||
|
||||
reg refresh;
|
||||
reg [10:0] refresh_cnt;
|
||||
wire need_refresh = (refresh_cnt >= RFRSH_CYCLES);
|
||||
|
||||
// PORT1: bank 0,1
|
||||
always @(*) begin
|
||||
if (refresh) begin
|
||||
next_port[0] = PORT_NONE;
|
||||
addr_latch_next[0] = addr_latch[0];
|
||||
end else if (port1_req ^ port1_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 if (cpu3_addr != addr_last[PORT_CPU3]) begin
|
||||
next_port[0] = PORT_CPU3;
|
||||
addr_latch_next[0] = { 8'd0, cpu3_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
|
||||
PORT_CPU3: begin cpu3_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
|
||||
59
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/z80ip.v
Normal file
59
Arcade_MiST/Sega System 1 Hardware/Starjack_MiST/rtl/z80ip.v
Normal file
@@ -0,0 +1,59 @@
|
||||
// Copyright (c) 2017,19 MiSTer-X
|
||||
|
||||
module Z80IP
|
||||
(
|
||||
input reset,
|
||||
input clk,
|
||||
output [15:0] adr,
|
||||
input [7:0] data_in,
|
||||
output [7:0] data_out,
|
||||
output m1,
|
||||
output mx,
|
||||
output ix,
|
||||
output rd,
|
||||
output wr,
|
||||
input intreq,
|
||||
output intack,
|
||||
input nmireq,
|
||||
output nmiack
|
||||
);
|
||||
|
||||
wire i_mreq, i_iorq, i_rd, i_wr, i_rfsh, i_m1;
|
||||
|
||||
T80s cpu
|
||||
(
|
||||
.CLK(~clk),
|
||||
.RESET_n(~reset),
|
||||
.INT_n(~intreq),
|
||||
.NMI_n(~nmireq),
|
||||
.MREQ_n(i_mreq),
|
||||
.IORQ_n(i_iorq),
|
||||
.RFSH_n(i_rfsh),
|
||||
.RD_n(i_rd),
|
||||
.WR_n(i_wr),
|
||||
.A(adr),
|
||||
.DI(data_in),
|
||||
.DO(data_out),
|
||||
.WAIT_n(1'b1),
|
||||
.BUSRQ_n(1'b1),
|
||||
.BUSAK_n(),
|
||||
.HALT_n(),
|
||||
.M1_n(i_m1)
|
||||
);
|
||||
|
||||
wire mreq = (~i_mreq) & (i_rfsh);
|
||||
wire iorq = ~i_iorq;
|
||||
wire rdr = ~i_rd;
|
||||
wire wrr = ~i_wr;
|
||||
|
||||
assign intack = (adr==16'h38) & mx & rdr;
|
||||
assign nmiack = (adr==16'h66) & mx & rdr;
|
||||
|
||||
assign m1 = ~i_m1;
|
||||
assign mx = mreq;
|
||||
assign ix = iorq;
|
||||
assign rd = rdr;
|
||||
assign wr = wrr;
|
||||
|
||||
endmodule
|
||||
|
||||
Reference in New Issue
Block a user