OpenCores
URL https://opencores.org/ocsvn/ag_6502/ag_6502/trunk

Subversion Repositories ag_6502

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /ag_6502/trunk
    from Rev 2 to Rev 3
    Reverse comparison

Rev 2 → Rev 3

/fighter/clkdiv.v
0,0 → 1,37
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 23:20:37 02/23/2012
// Design Name:
// Module Name: clkdiv
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
 
module clk_div(input clk, output clk1);
parameter divide = 16;
wire clk0;
 
DCM_SP #(
.CLKDV_DIVIDE(divide) // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
// 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
) DCM_SP_inst (
.CLKDV(clk1), // Divided DCM CLK out (CLKDV_DIVIDE)
.CLKIN(clk), // Clock input (from IBUFG, BUFG or DCM)
.CLK0(clk0),
.CLKFB(clk0),
.RST(0)
);
 
endmodule
/fighter/chip1.ucf
0,0 → 1,59
 
 
NET "b1" LOC = "H13" | IOSTANDARD = LVTTL | PULLDOWN ;
NET "b2" LOC = "V4" | IOSTANDARD = LVTTL | PULLDOWN ;
NET "b3" LOC = "K17" | IOSTANDARD = LVTTL | PULLDOWN ;
NET "b4" LOC = "D18" | IOSTANDARD = LVTTL | PULLDOWN ;
 
NET "rot_a" CLOCK_DEDICATED_ROUTE = FALSE;
NET "rot_b" CLOCK_DEDICATED_ROUTE = FALSE;
NET "rot_center" CLOCK_DEDICATED_ROUTE = FALSE;
 
NET "clk" LOC = C9 | IOSTANDARD = "LVCMOS33";
NET "clk" CLOCK_DEDICATED_ROUTE = FALSE;
//PIN "cpu1/cd5/DCM_SP_inst.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE;
NET "ROT_A" LOC = K18 | IOSTANDARD = "LVTTL" | PULLUP;
NET "ROT_B" LOC = G18 | IOSTANDARD = "LVTTL" | PULLUP;
NET "ROT_CENTER" LOC = V16 | IOSTANDARD = "LVTTL" | PULLDOWN;
 
NET "LED<7>" LOC = F9 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
NET "LED<6>" LOC = E9 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
NET "LED<5>" LOC = D11 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
NET "LED<4>" LOC = C11 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
NET "LED<3>" LOC = F11 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
NET "LED<2>" LOC = E11 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
NET "LED<1>" LOC = E12 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
NET "LED<0>" LOC = F12 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 8;
 
NET "VGA_RED" LOC = H14 | IOSTANDARD = "LVTTL" | DRIVE = 8 | SLEW = FAST;
NET "VGA_GREEN" LOC = H15 | IOSTANDARD = "LVTTL" | DRIVE = 8 | SLEW = FAST;
NET "VGA_BLUE" LOC = G15 | IOSTANDARD = "LVTTL" | DRIVE = 8 | SLEW = FAST;
NET "VGA_HSYNC" LOC = F15 | IOSTANDARD = "LVTTL" | DRIVE = 8 | SLEW = FAST;
NET "VGA_VSYNC" LOC = F14 | IOSTANDARD = "LVTTL" | DRIVE = 8 | SLEW = FAST;
 
NET "J4<0>" LOC = D7 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 6;
NET "J4<1>" LOC = C7 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 6;
NET "J4<2>" LOC = F8 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 6;
NET "J4<3>" LOC = E8 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 6;
#Created by Constraints Editor (xc3s500e-fg320-4) - 2012/01/19
NET "clk" TNM_NET = clk;
TIMESPEC TS_clk = PERIOD "clk" 50 MHz HIGH 50%;
 
#NET "SPI_MISO" LOC = "N10" | IOSTANDARD = LVCMOS33 ;
NET "SPI_MOSI" LOC = T4 | IOSTANDARD = "LVCMOS33" | SLEW = SLOW | DRIVE = 8;
NET "SPI_MISO" LOC = N10 | IOSTANDARD = "LVCMOS33";
NET "SPI_SCK" LOC = U16 | IOSTANDARD = "LVCMOS33" | SLEW = SLOW | DRIVE = 8;
NET "DAC_CS" LOC = N8 | IOSTANDARD = "LVCMOS33" | SLEW = SLOW | DRIVE = 8;
NET "DAC_CLR" LOC = P8 | IOSTANDARD = "LVCMOS33" | SLEW = SLOW | DRIVE = 8;
 
NET "spi_amp_cs" LOC = N7 | IOSTANDARD = "LVCMOS33" | SLEW = SLOW | DRIVE = 8;
NET "spi_rom_cs" LOC = U3 | IOSTANDARD = "LVCMOS33" | SLEW = SLOW | DRIVE = 8;
NET "platformflash_oe" LOC = T3 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 2;
NET "strataflash_oe" LOC = C18 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 2;
NET "strataflash_ce" LOC = D16 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 2;
NET "strataflash_we" LOC = D17 | IOSTANDARD = "LVTTL" | SLEW = SLOW | DRIVE = 2;
NET "spi_adc_conv" LOC = P11 | IOSTANDARD = "LVCMOS33" | SLEW = SLOW | DRIVE = 8;
 
NET "PS2_CLK" LOC = G14 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = SLOW | PULLUP;
NET "PS2_DATA" LOC = G13 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = SLOW | PULLUP;
NET "PS2_CLK" CLOCK_DEDICATED_ROUTE = FALSE;
/fighter/ag_video.v
0,0 → 1,173
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: BMSTU
// Engineer: Oleg Odintsov
//
// Create Date: 11:44:32 02/24/2012
// Design Name:
// Module Name: ag_video
// Project Name: Agat Hardware Project
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
 
module FONT_ROM(input[10:0] adr, input cs, output[7:0] DO);
reg[7:0] mem[0:2047];
assign DO = cs?mem[adr]:8'bZ;
initial begin
`include "agathe7.v"
end
endmodule
 
 
module ag_video(input clk50,
input[7:0] vmode,
output clk_vram,
output[13:0] AB2, input[15:0] DI2,
output[4:0] vga_bus);
parameter
HGR_WHITE = 4'b1111, // RGBX
HGR_BLACK = 4'b0000,
TEXT_COLOR= 4'b1111,
TEXT_BACK = 4'b0000;
wire clk25;
assign clk_vram = ~clk25;
wire[0:15] rDI2 = DI2;
// assign AB2 = 14'b0;
clk_div#2 cd2(clk50, clk25);
wire [9:0] hpos;
wire [8:0] vpos;
wire video_on;
reg[8:0] hpos1;
reg[7:0] vpos1;
wire[1:0] VTYPE = vmode[1:0];
// for 64K+ - variant
// wire[2:0] PAGE_ADDR = {vmode[6], vmode[6]? 1'b0: vmode[5], vmode[4]};
// for 32K-variant
wire[2:0] PAGE_ADDR = {0, vmode[5], vmode[4]};
wire[1:0] SUBPAGE_ADDR = vmode[3:2];
wire VTYPE_HGR = (VTYPE == 2'b11);
wire VTYPE_MGR = (VTYPE == 2'b01);
wire VTYPE_LGR = (VTYPE == 2'b00);
wire VTYPE_TXT = (VTYPE == 2'b10);
wire VTYPE_T32 = VTYPE_TXT && !vmode[7];
wire VTYPE_T64 = VTYPE_TXT && vmode[7];
wire VTYPE_T64_INV = VTYPE_T64 && !SUBPAGE_ADDR[0];
wire[13:0] HGR_ADDR = {PAGE_ADDR[1:0], vpos1, hpos1[8:5]};
wire[3:0] HGR_BITNO = hpos1[4:1];
wire HGR_BIT = rDI2[HGR_BITNO];
wire[3:0] HGR_COLOR = HGR_BIT? HGR_WHITE: HGR_BLACK;
 
wire[13:0] MGR_ADDR = {PAGE_ADDR[1:0], vpos1[7:1], hpos1[8:4]};
wire[1:0] MGR_BLOCKNO = hpos1[3:2];
 
wire[13:0] LGR_ADDR = {PAGE_ADDR[1:0], SUBPAGE_ADDR, vpos1[7:2], hpos1[8:5]};
wire[1:0] LGR_BLOCKNO = hpos1[4:3];
wire[1:0] GR_BLOCKNO = VTYPE_MGR?MGR_BLOCKNO:
LGR_BLOCKNO;
wire[3:0] GR_COLOR = (GR_BLOCKNO == 2'b00)? {DI2[12], DI2[13], DI2[14], DI2[15]}:
(GR_BLOCKNO == 2'b01)? {DI2[8], DI2[9], DI2[10], DI2[11]}:
(GR_BLOCKNO == 2'b10)? {DI2[4], DI2[5], DI2[6], DI2[7]}:
{DI2[0], DI2[1], DI2[2], DI2[3]};
 
wire[13:0] TEXT_ADDR = {PAGE_ADDR[1:0], SUBPAGE_ADDR, vpos1[7:3], hpos1[8:4]};
wire h_phase = hpos1[1:0]?0:1;
reg[0:0] h_cnt = 0;
wire[0:0] h_delay = h_phase?1'd1:1'd0;
wire v_phase = vpos1[2:0]?1:0;
reg[0:0] v_cnt = 0;
wire[0:0] v_delay = v_phase?1'd1:1'd0;
wire[7:0] font_char;
wire[2:0] font_y, font_x;
wire[10:0] font_ab = {font_char, font_y};
wire[0:7] font_db;// = 8'b0;
wire font_pix = font_db[font_x];
FONT_ROM font(font_ab, 1, font_db);
 
 
integer flash_cnt = 0;
reg flash_reg = 0;
wire inverse = VTYPE_T64?VTYPE_T64_INV:!{DI2[5],DI2[3]},
flash = VTYPE_T64?font_db[7]:!{DI2[5],~DI2[3]};
wire inv_mode = inverse || (flash && flash_reg);
 
assign font_x = VTYPE_T64?hpos1[2:0]:hpos1[3:1];
assign font_y = vpos1[2:0];
assign font_char = (VTYPE_T64 && hpos1[3])? DI2[7:0]: DI2[15:8];
wire[3:0] T_COLOR = VTYPE_T64? TEXT_COLOR: {DI2[0], DI2[1], DI2[2], DI2[4]};
 
assign AB2 = VTYPE_HGR? HGR_ADDR:
VTYPE_MGR? MGR_ADDR:
VTYPE_LGR? LGR_ADDR:
TEXT_ADDR;
wire[2:0] color = VTYPE_HGR? HGR_COLOR[3:1]:
(VTYPE_MGR | VTYPE_LGR)? GR_COLOR[3:1]:
((font_pix^inv_mode)?T_COLOR[3:1]: TEXT_BACK);
reg[2:0] color_reg;
always @(posedge clk25) begin
if (!vga_bus[1]) begin
hpos1 <= 0;
h_cnt <= 1;
end else if (video_on) begin
if (!h_cnt) begin
h_cnt <= h_delay;
hpos1 <= hpos1 + 1;
end else h_cnt <= h_cnt - 1;
end
end
always @(posedge clk25) color_reg <= color;
always @(posedge video_on) begin
if (!vpos) begin
vpos1 <= 0;
v_cnt <= 1;
end else begin
if (!v_cnt) begin
v_cnt <= v_delay;
vpos1 <= vpos1 + 1;
end else v_cnt <= v_cnt - 1;
end
end
always @(posedge vga_bus[0]) begin
if (flash_cnt) flash_cnt <= flash_cnt - 1;
else begin
flash_cnt <= 11;
flash_reg <= ~flash_reg;
end
end
assign {vga_bus[4], vga_bus[3], vga_bus[2]} = video_on?color_reg:3'b000;
video_counters cnt(clk25, vga_bus[0], vga_bus[1], video_on, hpos, vpos);
endmodule
/fighter/monitor7.v
0,0 → 1,2048
mem['h000] = 'h48;
mem['h001] = 'h4A;
mem['h002] = 'h4A;
mem['h003] = 'h4A;
mem['h004] = 'h4A;
mem['h005] = 'hA8;
mem['h006] = 'h68;
mem['h007] = 'h59;
mem['h008] = 'h19;
mem['h009] = 'hF8;
mem['h00A] = 'hC9;
mem['h00B] = 'hA0;
mem['h00C] = 'hB0;
mem['h00D] = 'h08;
mem['h00E] = 'hC9;
mem['h00F] = 'h90;
mem['h010] = 'h90;
mem['h011] = 'h04;
mem['h012] = 'hA8;
mem['h013] = 'hB9;
mem['h014] = 'h91;
mem['h015] = 'hF7;
mem['h016] = 'hA4;
mem['h017] = 'h24;
mem['h018] = 'h60;
mem['h019] = 'h80;
mem['h01A] = 'hB0;
mem['h01B] = 'hD0;
mem['h01C] = 'hD0;
mem['h01D] = 'hD0;
mem['h01E] = 'hE0;
mem['h01F] = 'hB0;
mem['h020] = 'hB0;
mem['h021] = 'h88;
mem['h022] = 'hA0;
mem['h023] = 'h8D;
mem['h024] = 'h93;
mem['h025] = 'h94;
mem['h026] = 'h98;
mem['h027] = 'h96;
mem['h028] = 'h97;
mem['h029] = 'h95;
mem['h02A] = 'h99;
mem['h02B] = 'h9A;
mem['h02C] = 'h9B;
mem['h02D] = 'h9C;
mem['h02E] = 'h9D;
mem['h02F] = 'h9E;
mem['h030] = 'h9B;
mem['h031] = 'h86;
mem['h032] = 'h2C;
mem['h033] = 'hBC;
mem['h034] = 'h5A;
mem['h035] = 'hF8;
mem['h036] = 'h0A;
mem['h037] = 'h0A;
mem['h038] = 'h48;
mem['h039] = 'h0A;
mem['h03A] = 'hC9;
mem['h03B] = 'hC0;
mem['h03C] = 'h90;
mem['h03D] = 'h02;
mem['h03E] = 'hE9;
mem['h03F] = 'h3F;
mem['h040] = 'h99;
mem['h041] = 'h00;
mem['h042] = 'h00;
mem['h043] = 'h7D;
mem['h044] = 'h56;
mem['h045] = 'hF8;
mem['h046] = 'h45;
mem['h047] = 'h1E;
mem['h048] = 'h29;
mem['h049] = 'hF8;
mem['h04A] = 'h45;
mem['h04B] = 'h1E;
mem['h04C] = 'h85;
mem['h04D] = 'h1E;
mem['h04E] = 'h68;
mem['h04F] = 'h65;
mem['h050] = 'h2C;
mem['h051] = 'hAA;
mem['h052] = 'h9D;
mem['h053] = 'h00;
mem['h054] = 'hC7;
mem['h055] = 'h60;
mem['h056] = 'h08;
mem['h057] = 'h20;
mem['h058] = 'h08;
mem['h059] = 'h20;
mem['h05A] = 'hD0;
mem['h05B] = 'hD0;
mem['h05C] = 'h19;
mem['h05D] = 'hD0;
mem['h05E] = 'h29;
mem['h05F] = 'h07;
mem['h060] = 'hA8;
mem['h061] = 'hB9;
mem['h062] = 'h69;
mem['h063] = 'hF8;
mem['h064] = 'hA8;
mem['h065] = 'h99;
mem['h066] = 'hF0;
mem['h067] = 'hC0;
mem['h068] = 'h60;
mem['h069] = 'h00;
mem['h06A] = 'h01;
mem['h06B] = 'h0A;
mem['h06C] = 'h0B;
mem['h06D] = 'h06;
mem['h06E] = 'h07;
mem['h06F] = 'h02;
mem['h070] = 'h03;
mem['h071] = 'hA6;
mem['h072] = 'h3A;
mem['h073] = 'hA4;
mem['h074] = 'h3B;
mem['h075] = 'h20;
mem['h076] = 'h7D;
mem['h077] = 'hFD;
mem['h078] = 'h20;
mem['h079] = 'h5A;
mem['h07A] = 'hFF;
mem['h07B] = 'hA1;
mem['h07C] = 'h3A;
mem['h07D] = 'hA8;
mem['h07E] = 'h4A;
mem['h07F] = 'h90;
mem['h080] = 'h09;
mem['h081] = 'h6A;
mem['h082] = 'hB0;
mem['h083] = 'h15;
mem['h084] = 'hC9;
mem['h085] = 'hA2;
mem['h086] = 'hF0;
mem['h087] = 'h11;
mem['h088] = 'h29;
mem['h089] = 'h87;
mem['h08A] = 'h4A;
mem['h08B] = 'hAA;
mem['h08C] = 'hBD;
mem['h08D] = 'h48;
mem['h08E] = 'hF9;
mem['h08F] = 'hB0;
mem['h090] = 'h04;
mem['h091] = 'h4A;
mem['h092] = 'h4A;
mem['h093] = 'h4A;
mem['h094] = 'h4A;
mem['h095] = 'h29;
mem['h096] = 'h0F;
mem['h097] = 'hD0;
mem['h098] = 'h04;
mem['h099] = 'hA0;
mem['h09A] = 'h80;
mem['h09B] = 'hA9;
mem['h09C] = 'h00;
mem['h09D] = 'hAA;
mem['h09E] = 'hBD;
mem['h09F] = 'h8C;
mem['h0A0] = 'hF9;
mem['h0A1] = 'h85;
mem['h0A2] = 'h2E;
mem['h0A3] = 'h29;
mem['h0A4] = 'h03;
mem['h0A5] = 'h85;
mem['h0A6] = 'h2F;
mem['h0A7] = 'h98;
mem['h0A8] = 'h29;
mem['h0A9] = 'h8F;
mem['h0AA] = 'hAA;
mem['h0AB] = 'h98;
mem['h0AC] = 'hA0;
mem['h0AD] = 'h03;
mem['h0AE] = 'hE0;
mem['h0AF] = 'h8A;
mem['h0B0] = 'hF0;
mem['h0B1] = 'h0B;
mem['h0B2] = 'h4A;
mem['h0B3] = 'h90;
mem['h0B4] = 'h08;
mem['h0B5] = 'h4A;
mem['h0B6] = 'h4A;
mem['h0B7] = 'h09;
mem['h0B8] = 'h20;
mem['h0B9] = 'h88;
mem['h0BA] = 'hD0;
mem['h0BB] = 'hFA;
mem['h0BC] = 'hC8;
mem['h0BD] = 'h88;
mem['h0BE] = 'hD0;
mem['h0BF] = 'hF2;
mem['h0C0] = 'h60;
mem['h0C1] = 'h20;
mem['h0C2] = 'h71;
mem['h0C3] = 'hF8;
mem['h0C4] = 'h48;
mem['h0C5] = 'hB1;
mem['h0C6] = 'h3A;
mem['h0C7] = 'h20;
mem['h0C8] = 'hC1;
mem['h0C9] = 'hFD;
mem['h0CA] = 'hA2;
mem['h0CB] = 'h01;
mem['h0CC] = 'h20;
mem['h0CD] = 'h5C;
mem['h0CE] = 'hFF;
mem['h0CF] = 'hC4;
mem['h0D0] = 'h2F;
mem['h0D1] = 'hC8;
mem['h0D2] = 'h90;
mem['h0D3] = 'hF1;
mem['h0D4] = 'hA2;
mem['h0D5] = 'h03;
mem['h0D6] = 'hC0;
mem['h0D7] = 'h04;
mem['h0D8] = 'h90;
mem['h0D9] = 'hF2;
mem['h0DA] = 'h68;
mem['h0DB] = 'hA8;
mem['h0DC] = 'hB9;
mem['h0DD] = 'hA6;
mem['h0DE] = 'hF9;
mem['h0DF] = 'h85;
mem['h0E0] = 'h2C;
mem['h0E1] = 'hB9;
mem['h0E2] = 'hE6;
mem['h0E3] = 'hF9;
mem['h0E4] = 'h85;
mem['h0E5] = 'h2D;
mem['h0E6] = 'hA9;
mem['h0E7] = 'h00;
mem['h0E8] = 'hA0;
mem['h0E9] = 'h05;
mem['h0EA] = 'h06;
mem['h0EB] = 'h2D;
mem['h0EC] = 'h26;
mem['h0ED] = 'h2C;
mem['h0EE] = 'h2A;
mem['h0EF] = 'h88;
mem['h0F0] = 'hD0;
mem['h0F1] = 'hF8;
mem['h0F2] = 'h69;
mem['h0F3] = 'hBF;
mem['h0F4] = 'h20;
mem['h0F5] = 'hD4;
mem['h0F6] = 'hFD;
mem['h0F7] = 'hCA;
mem['h0F8] = 'hD0;
mem['h0F9] = 'hEC;
mem['h0FA] = 'h20;
mem['h0FB] = 'h5A;
mem['h0FC] = 'hFF;
mem['h0FD] = 'hA4;
mem['h0FE] = 'h2F;
mem['h0FF] = 'hA2;
mem['h100] = 'h06;
mem['h101] = 'hE0;
mem['h102] = 'h03;
mem['h103] = 'hF0;
mem['h104] = 'h1C;
mem['h105] = 'h06;
mem['h106] = 'h2E;
mem['h107] = 'h90;
mem['h108] = 'h0E;
mem['h109] = 'hBD;
mem['h10A] = 'h99;
mem['h10B] = 'hF9;
mem['h10C] = 'h20;
mem['h10D] = 'hD4;
mem['h10E] = 'hFD;
mem['h10F] = 'hBD;
mem['h110] = 'h9F;
mem['h111] = 'hF9;
mem['h112] = 'hF0;
mem['h113] = 'h03;
mem['h114] = 'h20;
mem['h115] = 'hD4;
mem['h116] = 'hFD;
mem['h117] = 'hCA;
mem['h118] = 'hD0;
mem['h119] = 'hE7;
mem['h11A] = 'h60;
mem['h11B] = 'h88;
mem['h11C] = 'h30;
mem['h11D] = 'hE7;
mem['h11E] = 'h20;
mem['h11F] = 'hC1;
mem['h120] = 'hFD;
mem['h121] = 'hA5;
mem['h122] = 'h2E;
mem['h123] = 'hC9;
mem['h124] = 'hE8;
mem['h125] = 'hB1;
mem['h126] = 'h3A;
mem['h127] = 'h90;
mem['h128] = 'hF2;
mem['h129] = 'h20;
mem['h12A] = 'h3C;
mem['h12B] = 'hF9;
mem['h12C] = 'hAA;
mem['h12D] = 'hE8;
mem['h12E] = 'hD0;
mem['h12F] = 'h01;
mem['h130] = 'hC8;
mem['h131] = 'h98;
mem['h132] = 'h20;
mem['h133] = 'hC1;
mem['h134] = 'hFD;
mem['h135] = 'h8A;
mem['h136] = 'h4C;
mem['h137] = 'hC1;
mem['h138] = 'hFD;
mem['h139] = 'h38;
mem['h13A] = 'hA5;
mem['h13B] = 'h2F;
mem['h13C] = 'hA4;
mem['h13D] = 'h3B;
mem['h13E] = 'hAA;
mem['h13F] = 'h10;
mem['h140] = 'h01;
mem['h141] = 'h88;
mem['h142] = 'h65;
mem['h143] = 'h3A;
mem['h144] = 'h90;
mem['h145] = 'h01;
mem['h146] = 'hC8;
mem['h147] = 'h60;
mem['h148] = 'h40;
mem['h149] = 'h02;
mem['h14A] = 'h45;
mem['h14B] = 'h03;
mem['h14C] = 'hD0;
mem['h14D] = 'h08;
mem['h14E] = 'h40;
mem['h14F] = 'h09;
mem['h150] = 'h30;
mem['h151] = 'h22;
mem['h152] = 'h45;
mem['h153] = 'h33;
mem['h154] = 'hD0;
mem['h155] = 'h08;
mem['h156] = 'h40;
mem['h157] = 'h09;
mem['h158] = 'h40;
mem['h159] = 'h02;
mem['h15A] = 'h45;
mem['h15B] = 'h33;
mem['h15C] = 'hD0;
mem['h15D] = 'h08;
mem['h15E] = 'h40;
mem['h15F] = 'h09;
mem['h160] = 'h40;
mem['h161] = 'h02;
mem['h162] = 'h45;
mem['h163] = 'hB3;
mem['h164] = 'hD0;
mem['h165] = 'h08;
mem['h166] = 'h40;
mem['h167] = 'h09;
mem['h168] = 'h00;
mem['h169] = 'h22;
mem['h16A] = 'h44;
mem['h16B] = 'h33;
mem['h16C] = 'hD0;
mem['h16D] = 'h8C;
mem['h16E] = 'h44;
mem['h16F] = 'h00;
mem['h170] = 'h11;
mem['h171] = 'h22;
mem['h172] = 'h44;
mem['h173] = 'h33;
mem['h174] = 'hD0;
mem['h175] = 'h8C;
mem['h176] = 'h44;
mem['h177] = 'h9A;
mem['h178] = 'h10;
mem['h179] = 'h22;
mem['h17A] = 'h44;
mem['h17B] = 'h33;
mem['h17C] = 'hD0;
mem['h17D] = 'h08;
mem['h17E] = 'h40;
mem['h17F] = 'h09;
mem['h180] = 'h10;
mem['h181] = 'h22;
mem['h182] = 'h44;
mem['h183] = 'h33;
mem['h184] = 'hD0;
mem['h185] = 'h08;
mem['h186] = 'h40;
mem['h187] = 'h09;
mem['h188] = 'h62;
mem['h189] = 'h13;
mem['h18A] = 'h78;
mem['h18B] = 'hA9;
mem['h18C] = 'h00;
mem['h18D] = 'h21;
mem['h18E] = 'h81;
mem['h18F] = 'h82;
mem['h190] = 'h00;
mem['h191] = 'h00;
mem['h192] = 'h59;
mem['h193] = 'h4D;
mem['h194] = 'h91;
mem['h195] = 'h92;
mem['h196] = 'h86;
mem['h197] = 'h4A;
mem['h198] = 'h85;
mem['h199] = 'h9D;
mem['h19A] = 'hAC;
mem['h19B] = 'hA9;
mem['h19C] = 'hAC;
mem['h19D] = 'hA3;
mem['h19E] = 'hA8;
mem['h19F] = 'hA4;
mem['h1A0] = 'hD9;
mem['h1A1] = 'h00;
mem['h1A2] = 'hD8;
mem['h1A3] = 'hA4;
mem['h1A4] = 'hA4;
mem['h1A5] = 'h00;
mem['h1A6] = 'h1C;
mem['h1A7] = 'h8A;
mem['h1A8] = 'h1C;
mem['h1A9] = 'h23;
mem['h1AA] = 'h5D;
mem['h1AB] = 'h8B;
mem['h1AC] = 'h1B;
mem['h1AD] = 'hA1;
mem['h1AE] = 'h9D;
mem['h1AF] = 'h8A;
mem['h1B0] = 'h1D;
mem['h1B1] = 'h23;
mem['h1B2] = 'h9D;
mem['h1B3] = 'h8B;
mem['h1B4] = 'h1D;
mem['h1B5] = 'hA1;
mem['h1B6] = 'h00;
mem['h1B7] = 'h29;
mem['h1B8] = 'h19;
mem['h1B9] = 'hAE;
mem['h1BA] = 'h69;
mem['h1BB] = 'hA8;
mem['h1BC] = 'h19;
mem['h1BD] = 'h23;
mem['h1BE] = 'h24;
mem['h1BF] = 'h53;
mem['h1C0] = 'h1B;
mem['h1C1] = 'h23;
mem['h1C2] = 'h24;
mem['h1C3] = 'h53;
mem['h1C4] = 'h19;
mem['h1C5] = 'hA1;
mem['h1C6] = 'h00;
mem['h1C7] = 'h1A;
mem['h1C8] = 'h5B;
mem['h1C9] = 'h5B;
mem['h1CA] = 'hA5;
mem['h1CB] = 'h69;
mem['h1CC] = 'h24;
mem['h1CD] = 'h24;
mem['h1CE] = 'hAE;
mem['h1CF] = 'hAE;
mem['h1D0] = 'hA8;
mem['h1D1] = 'hAD;
mem['h1D2] = 'h29;
mem['h1D3] = 'h00;
mem['h1D4] = 'h7C;
mem['h1D5] = 'h00;
mem['h1D6] = 'h15;
mem['h1D7] = 'h9C;
mem['h1D8] = 'h6D;
mem['h1D9] = 'h9C;
mem['h1DA] = 'hA5;
mem['h1DB] = 'h69;
mem['h1DC] = 'h29;
mem['h1DD] = 'h53;
mem['h1DE] = 'h84;
mem['h1DF] = 'h13;
mem['h1E0] = 'h34;
mem['h1E1] = 'h11;
mem['h1E2] = 'hA5;
mem['h1E3] = 'h69;
mem['h1E4] = 'h23;
mem['h1E5] = 'hA0;
mem['h1E6] = 'hD8;
mem['h1E7] = 'h62;
mem['h1E8] = 'h5A;
mem['h1E9] = 'h48;
mem['h1EA] = 'h26;
mem['h1EB] = 'h62;
mem['h1EC] = 'h94;
mem['h1ED] = 'h88;
mem['h1EE] = 'h54;
mem['h1EF] = 'h44;
mem['h1F0] = 'hC8;
mem['h1F1] = 'h54;
mem['h1F2] = 'h68;
mem['h1F3] = 'h44;
mem['h1F4] = 'hE8;
mem['h1F5] = 'h94;
mem['h1F6] = 'h00;
mem['h1F7] = 'hB4;
mem['h1F8] = 'h08;
mem['h1F9] = 'h84;
mem['h1FA] = 'h74;
mem['h1FB] = 'hB4;
mem['h1FC] = 'h28;
mem['h1FD] = 'h6E;
mem['h1FE] = 'h74;
mem['h1FF] = 'hF4;
mem['h200] = 'hCC;
mem['h201] = 'h4A;
mem['h202] = 'h72;
mem['h203] = 'hF2;
mem['h204] = 'hA4;
mem['h205] = 'h8A;
mem['h206] = 'h00;
mem['h207] = 'hAA;
mem['h208] = 'hA2;
mem['h209] = 'hA2;
mem['h20A] = 'h74;
mem['h20B] = 'h74;
mem['h20C] = 'h74;
mem['h20D] = 'h72;
mem['h20E] = 'h44;
mem['h20F] = 'h68;
mem['h210] = 'hB2;
mem['h211] = 'h32;
mem['h212] = 'hB2;
mem['h213] = 'h00;
mem['h214] = 'h22;
mem['h215] = 'h00;
mem['h216] = 'h1A;
mem['h217] = 'h1A;
mem['h218] = 'h26;
mem['h219] = 'h26;
mem['h21A] = 'h72;
mem['h21B] = 'h72;
mem['h21C] = 'h88;
mem['h21D] = 'hC8;
mem['h21E] = 'hC4;
mem['h21F] = 'hCA;
mem['h220] = 'h26;
mem['h221] = 'h48;
mem['h222] = 'h44;
mem['h223] = 'h44;
mem['h224] = 'hA2;
mem['h225] = 'hC8;
mem['h226] = 'h85;
mem['h227] = 'h45;
mem['h228] = 'h68;
mem['h229] = 'h48;
mem['h22A] = 'h0A;
mem['h22B] = 'h0A;
mem['h22C] = 'h0A;
mem['h22D] = 'h30;
mem['h22E] = 'h03;
mem['h22F] = 'h6C;
mem['h230] = 'hFE;
mem['h231] = 'h03;
mem['h232] = 'h28;
mem['h233] = 'h20;
mem['h234] = 'h4D;
mem['h235] = 'hFF;
mem['h236] = 'h68;
mem['h237] = 'h85;
mem['h238] = 'h3A;
mem['h239] = 'h68;
mem['h23A] = 'h85;
mem['h23B] = 'h3B;
mem['h23C] = 'h6C;
mem['h23D] = 'hF0;
mem['h23E] = 'h03;
mem['h23F] = 'h20;
mem['h240] = 'h71;
mem['h241] = 'hF8;
mem['h242] = 'h20;
mem['h243] = 'hD0;
mem['h244] = 'hFA;
mem['h245] = 'h4C;
mem['h246] = 'h65;
mem['h247] = 'hFF;
mem['h248] = 'hD8;
mem['h249] = 'h20;
mem['h24A] = 'h7B;
mem['h24B] = 'hFE;
mem['h24C] = 'h20;
mem['h24D] = 'h3C;
mem['h24E] = 'hFB;
mem['h24F] = 'h20;
mem['h250] = 'h8A;
mem['h251] = 'hFE;
mem['h252] = 'h20;
mem['h253] = 'h80;
mem['h254] = 'hFE;
mem['h255] = 'h2C;
mem['h256] = 'h10;
mem['h257] = 'hC0;
mem['h258] = 'hD8;
mem['h259] = 'h20;
mem['h25A] = 'h3B;
mem['h25B] = 'hFF;
mem['h25C] = 'hAD;
mem['h25D] = 'hF3;
mem['h25E] = 'h03;
mem['h25F] = 'h49;
mem['h260] = 'hA5;
mem['h261] = 'hCD;
mem['h262] = 'hF4;
mem['h263] = 'h03;
mem['h264] = 'hD0;
mem['h265] = 'h1C;
mem['h266] = 'h20;
mem['h267] = 'h2E;
mem['h268] = 'hFB;
mem['h269] = 'hAD;
mem['h26A] = 'hF2;
mem['h26B] = 'h03;
mem['h26C] = 'hC9;
mem['h26D] = 'h69;
mem['h26E] = 'hD0;
mem['h26F] = 'h0F;
mem['h270] = 'hA9;
mem['h271] = 'hFF;
mem['h272] = 'hCD;
mem['h273] = 'hF3;
mem['h274] = 'h03;
mem['h275] = 'hD0;
mem['h276] = 'h08;
mem['h277] = 'hA0;
mem['h278] = 'h69;
mem['h279] = 'h8C;
mem['h27A] = 'hF2;
mem['h27B] = 'h03;
mem['h27C] = 'h4C;
mem['h27D] = 'h69;
mem['h27E] = 'hFF;
mem['h27F] = 'h6C;
mem['h280] = 'hF2;
mem['h281] = 'h03;
mem['h282] = 'h2C;
mem['h283] = 'hF1;
mem['h284] = 'hC0;
mem['h285] = 'hA0;
mem['h286] = 'h00;
mem['h287] = 'h84;
mem['h288] = 'h1E;
mem['h289] = 'hA9;
mem['h28A] = 'h0F;
mem['h28B] = 'hA2;
mem['h28C] = 'h02;
mem['h28D] = 'h20;
mem['h28E] = 'h31;
mem['h28F] = 'hF8;
mem['h290] = 'h20;
mem['h291] = 'h3B;
mem['h292] = 'hFC;
mem['h293] = 'hA0;
mem['h294] = 'h14;
mem['h295] = 'hB9;
mem['h296] = 'hFE;
mem['h297] = 'hFA;
mem['h298] = 'h99;
mem['h299] = 'h0F;
mem['h29A] = 'h78;
mem['h29B] = 'h88;
mem['h29C] = 'hD0;
mem['h29D] = 'hF7;
mem['h29E] = 'h2C;
mem['h29F] = 'hF0;
mem['h2A0] = 'hC0;
mem['h2A1] = 'hA2;
mem['h2A2] = 'h05;
mem['h2A3] = 'hBD;
mem['h2A4] = 'hF2;
mem['h2A5] = 'hFA;
mem['h2A6] = 'h9D;
mem['h2A7] = 'hEF;
mem['h2A8] = 'h03;
mem['h2A9] = 'hCA;
mem['h2AA] = 'hD0;
mem['h2AB] = 'hF7;
mem['h2AC] = 'hA9;
mem['h2AD] = 'hC7;
mem['h2AE] = 'h86;
mem['h2AF] = 'h00;
mem['h2B0] = 'h85;
mem['h2B1] = 'h01;
mem['h2B2] = 'hA0;
mem['h2B3] = 'h07;
mem['h2B4] = 'hC6;
mem['h2B5] = 'h01;
mem['h2B6] = 'hA5;
mem['h2B7] = 'h01;
mem['h2B8] = 'hC9;
mem['h2B9] = 'hC0;
mem['h2BA] = 'hF0;
mem['h2BB] = 'hBB;
mem['h2BC] = 'h8D;
mem['h2BD] = 'hF8;
mem['h2BE] = 'h07;
mem['h2BF] = 'hB1;
mem['h2C0] = 'h00;
mem['h2C1] = 'hD9;
mem['h2C2] = 'hF7;
mem['h2C3] = 'hFA;
mem['h2C4] = 'hD0;
mem['h2C5] = 'hEC;
mem['h2C6] = 'h88;
mem['h2C7] = 'h88;
mem['h2C8] = 'h10;
mem['h2C9] = 'hF5;
mem['h2CA] = 'h6C;
mem['h2CB] = 'h00;
mem['h2CC] = 'h00;
mem['h2CD] = 'h20;
mem['h2CE] = 'h75;
mem['h2CF] = 'hFD;
mem['h2D0] = 'hA9;
mem['h2D1] = 'h45;
mem['h2D2] = 'h85;
mem['h2D3] = 'h40;
mem['h2D4] = 'hA9;
mem['h2D5] = 'h00;
mem['h2D6] = 'h85;
mem['h2D7] = 'h41;
mem['h2D8] = 'hA2;
mem['h2D9] = 'hFB;
mem['h2DA] = 'hA9;
mem['h2DB] = 'hA0;
mem['h2DC] = 'h20;
mem['h2DD] = 'hD4;
mem['h2DE] = 'hFD;
mem['h2DF] = 'hBD;
mem['h2E0] = 'h18;
mem['h2E1] = 'hFA;
mem['h2E2] = 'h20;
mem['h2E3] = 'hD4;
mem['h2E4] = 'hFD;
mem['h2E5] = 'hA9;
mem['h2E6] = 'hBD;
mem['h2E7] = 'h20;
mem['h2E8] = 'hD4;
mem['h2E9] = 'hFD;
mem['h2EA] = 'hB5;
mem['h2EB] = 'h4A;
mem['h2EC] = 'h20;
mem['h2ED] = 'hC1;
mem['h2EE] = 'hFD;
mem['h2EF] = 'hE8;
mem['h2F0] = 'h30;
mem['h2F1] = 'hE8;
mem['h2F2] = 'h60;
mem['h2F3] = 'h3F;
mem['h2F4] = 'hFA;
mem['h2F5] = 'h69;
mem['h2F6] = 'hFF;
mem['h2F7] = 'h5A;
mem['h2F8] = 'h20;
mem['h2F9] = 'hFF;
mem['h2FA] = 'h00;
mem['h2FB] = 'hFF;
mem['h2FC] = 'h03;
mem['h2FD] = 'hFF;
mem['h2FE] = 'h3C;
mem['h2FF] = 'hAA;
mem['h300] = 'h2A;
mem['h301] = 'hAA;
mem['h302] = 'h2A;
mem['h303] = 'hA0;
mem['h304] = 'h2F;
mem['h305] = 'hE1;
mem['h306] = 'h29;
mem['h307] = 'hE7;
mem['h308] = 'h29;
mem['h309] = 'hE1;
mem['h30A] = 'h29;
mem['h30B] = 'hF4;
mem['h30C] = 'h29;
mem['h30D] = 'hA0;
mem['h30E] = 'h2F;
mem['h30F] = 'hAA;
mem['h310] = 'h2A;
mem['h311] = 'hAA;
mem['h312] = 'h2A;
mem['h313] = 'hC1;
mem['h314] = 'hD8;
mem['h315] = 'hD9;
mem['h316] = 'hD0;
mem['h317] = 'hD3;
mem['h318] = 'hAD;
mem['h319] = 'h70;
mem['h31A] = 'hC0;
mem['h31B] = 'hA0;
mem['h31C] = 'h00;
mem['h31D] = 'hEA;
mem['h31E] = 'hEA;
mem['h31F] = 'hBD;
mem['h320] = 'h64;
mem['h321] = 'hC0;
mem['h322] = 'h10;
mem['h323] = 'h07;
mem['h324] = 'hEA;
mem['h325] = 'hEA;
mem['h326] = 'hEA;
mem['h327] = 'hC8;
mem['h328] = 'hD0;
mem['h329] = 'hF5;
mem['h32A] = 'h88;
mem['h32B] = 'h60;
mem['h32C] = 'h10;
mem['h32D] = 'h08;
mem['h32E] = 'hA5;
mem['h32F] = 'h19;
mem['h330] = 'h4A;
mem['h331] = 'h90;
mem['h332] = 'h02;
mem['h333] = 'h69;
mem['h334] = 'h1F;
mem['h335] = 'h69;
mem['h336] = 'h02;
mem['h337] = 'hA8;
mem['h338] = 'h99;
mem['h339] = 'h00;
mem['h33A] = 'hC7;
mem['h33B] = 'h60;
mem['h33C] = 'hA9;
mem['h33D] = 'h00;
mem['h33E] = 'h85;
mem['h33F] = 'h48;
mem['h340] = 'h85;
mem['h341] = 'h22;
mem['h342] = 'hA9;
mem['h343] = 'h00;
mem['h344] = 'h85;
mem['h345] = 'h20;
mem['h346] = 'hA9;
mem['h347] = 'h40;
mem['h348] = 'h85;
mem['h349] = 'h21;
mem['h34A] = 'hA9;
mem['h34B] = 'h20;
mem['h34C] = 'h85;
mem['h34D] = 'h23;
mem['h34E] = 'hA9;
mem['h34F] = 'h1F;
mem['h350] = 'h85;
mem['h351] = 'h25;
mem['h352] = 'h4C;
mem['h353] = 'h2F;
mem['h354] = 'hFC;
mem['h355] = 'h20;
mem['h356] = 'h76;
mem['h357] = 'hFB;
mem['h358] = 'h20;
mem['h359] = 'h04;
mem['h35A] = 'hFD;
mem['h35B] = 'hC9;
mem['h35C] = 'h95;
mem['h35D] = 'hF0;
mem['h35E] = 'hF6;
mem['h35F] = 'hC9;
mem['h360] = 'h88;
mem['h361] = 'hF0;
mem['h362] = 'hF2;
mem['h363] = 'h20;
mem['h364] = 'h76;
mem['h365] = 'hFB;
mem['h366] = 'h20;
mem['h367] = 'h04;
mem['h368] = 'hFD;
mem['h369] = 'hC9;
mem['h36A] = 'h9B;
mem['h36B] = 'hF0;
mem['h36C] = 'hEB;
mem['h36D] = 'hC9;
mem['h36E] = 'h99;
mem['h36F] = 'hF0;
mem['h370] = 'hF2;
mem['h371] = 'hC9;
mem['h372] = 'h9A;
mem['h373] = 'hF0;
mem['h374] = 'hEE;
mem['h375] = 'h60;
mem['h376] = 'hC9;
mem['h377] = 'hA0;
mem['h378] = 'hB0;
mem['h379] = 'hFB;
mem['h37A] = 'h4C;
mem['h37B] = 'hD4;
mem['h37C] = 'hFD;
mem['h37D] = 'h85;
mem['h37E] = 'h29;
mem['h37F] = 'hA9;
mem['h380] = 'h00;
mem['h381] = 'h85;
mem['h382] = 'h28;
mem['h383] = 'h46;
mem['h384] = 'h29;
mem['h385] = 'h66;
mem['h386] = 'h28;
mem['h387] = 'h46;
mem['h388] = 'h29;
mem['h389] = 'h66;
mem['h38A] = 'h28;
mem['h38B] = 'hA5;
mem['h38C] = 'h19;
mem['h38D] = 'h29;
mem['h38E] = 'hF8;
mem['h38F] = 'h65;
mem['h390] = 'h29;
mem['h391] = 'h85;
mem['h392] = 'h29;
mem['h393] = 'h60;
mem['h394] = 'h38;
mem['h395] = 'h48;
mem['h396] = 'hE9;
mem['h397] = 'h01;
mem['h398] = 'hD0;
mem['h399] = 'hFC;
mem['h39A] = 'h68;
mem['h39B] = 'hE9;
mem['h39C] = 'h01;
mem['h39D] = 'hD0;
mem['h39E] = 'hF6;
mem['h39F] = 'h60;
mem['h3A0] = 'hE6;
mem['h3A1] = 'h42;
mem['h3A2] = 'hD0;
mem['h3A3] = 'h02;
mem['h3A4] = 'hE6;
mem['h3A5] = 'h43;
mem['h3A6] = 'hA5;
mem['h3A7] = 'h3C;
mem['h3A8] = 'hC5;
mem['h3A9] = 'h3E;
mem['h3AA] = 'hA5;
mem['h3AB] = 'h3D;
mem['h3AC] = 'hE5;
mem['h3AD] = 'h3F;
mem['h3AE] = 'hE6;
mem['h3AF] = 'h3C;
mem['h3B0] = 'hD0;
mem['h3B1] = 'h02;
mem['h3B2] = 'hE6;
mem['h3B3] = 'h3D;
mem['h3B4] = 'h60;
mem['h3B5] = 'h8D;
mem['h3B6] = 'h8A;
mem['h3B7] = 'h88;
mem['h3B8] = 'h95;
mem['h3B9] = 'h99;
mem['h3BA] = 'h9A;
mem['h3BB] = 'h8C;
mem['h3BC] = 'h9D;
mem['h3BD] = 'h9E;
mem['h3BE] = 'h87;
mem['h3BF] = 'h9C;
mem['h3C0] = 'h5B;
mem['h3C1] = 'h5B;
mem['h3C2] = 'h19;
mem['h3C3] = 'h0E;
mem['h3C4] = 'h27;
mem['h3C5] = 'h5F;
mem['h3C6] = 'h3B;
mem['h3C7] = 'h96;
mem['h3C8] = 'h45;
mem['h3C9] = 'hAE;
mem['h3CA] = 'hA7;
mem['h3CB] = 'hC9;
mem['h3CC] = 'h8D;
mem['h3CD] = 'hD0;
mem['h3CE] = 'h18;
mem['h3CF] = 'hAC;
mem['h3D0] = 'h00;
mem['h3D1] = 'hC0;
mem['h3D2] = 'h10;
mem['h3D3] = 'h13;
mem['h3D4] = 'h2C;
mem['h3D5] = 'h10;
mem['h3D6] = 'hC0;
mem['h3D7] = 'hC0;
mem['h3D8] = 'hA0;
mem['h3D9] = 'hD0;
mem['h3DA] = 'h0C;
mem['h3DB] = 'hAC;
mem['h3DC] = 'h00;
mem['h3DD] = 'hC0;
mem['h3DE] = 'h10;
mem['h3DF] = 'hFB;
mem['h3E0] = 'hC0;
mem['h3E1] = 'h83;
mem['h3E2] = 'hF0;
mem['h3E3] = 'h03;
mem['h3E4] = 'h2C;
mem['h3E5] = 'h10;
mem['h3E6] = 'hC0;
mem['h3E7] = 'hC9;
mem['h3E8] = 'hA0;
mem['h3E9] = 'hB0;
mem['h3EA] = 'h1A;
mem['h3EB] = 'hA8;
mem['h3EC] = 'h10;
mem['h3ED] = 'h17;
mem['h3EE] = 'hA0;
mem['h3EF] = 'h0A;
mem['h3F0] = 'hD9;
mem['h3F1] = 'hB5;
mem['h3F2] = 'hFB;
mem['h3F3] = 'hF0;
mem['h3F4] = 'h04;
mem['h3F5] = 'h88;
mem['h3F6] = 'h10;
mem['h3F7] = 'hF8;
mem['h3F8] = 'h60;
mem['h3F9] = 'hB9;
mem['h3FA] = 'hC0;
mem['h3FB] = 'hFB;
mem['h3FC] = 'h85;
mem['h3FD] = 'h2A;
mem['h3FE] = 'hA9;
mem['h3FF] = 'hFC;
mem['h400] = 'h85;
mem['h401] = 'h2B;
mem['h402] = 'h6C;
mem['h403] = 'h2A;
mem['h404] = 'h00;
mem['h405] = 'hA4;
mem['h406] = 'h24;
mem['h407] = 'h91;
mem['h408] = 'h28;
mem['h409] = 'hC8;
mem['h40A] = 'hA5;
mem['h40B] = 'h32;
mem['h40C] = 'h91;
mem['h40D] = 'h28;
mem['h40E] = 'hE6;
mem['h40F] = 'h24;
mem['h410] = 'hE6;
mem['h411] = 'h24;
mem['h412] = 'hA5;
mem['h413] = 'h24;
mem['h414] = 'hC5;
mem['h415] = 'h21;
mem['h416] = 'hB0;
mem['h417] = 'h43;
mem['h418] = 'h60;
mem['h419] = 'hC6;
mem['h41A] = 'h24;
mem['h41B] = 'hC6;
mem['h41C] = 'h24;
mem['h41D] = 'h10;
mem['h41E] = 'hF9;
mem['h41F] = 'hA5;
mem['h420] = 'h21;
mem['h421] = 'h85;
mem['h422] = 'h24;
mem['h423] = 'hC6;
mem['h424] = 'h24;
mem['h425] = 'hC6;
mem['h426] = 'h24;
mem['h427] = 'hA5;
mem['h428] = 'h22;
mem['h429] = 'hC5;
mem['h42A] = 'h25;
mem['h42B] = 'hB0;
mem['h42C] = 'h0D;
mem['h42D] = 'hC6;
mem['h42E] = 'h25;
mem['h42F] = 'hA5;
mem['h430] = 'h25;
mem['h431] = 'h20;
mem['h432] = 'h7D;
mem['h433] = 'hFB;
mem['h434] = 'hA5;
mem['h435] = 'h28;
mem['h436] = 'h65;
mem['h437] = 'h20;
mem['h438] = 'h85;
mem['h439] = 'h28;
mem['h43A] = 'h60;
mem['h43B] = 'hA5;
mem['h43C] = 'h22;
mem['h43D] = 'h85;
mem['h43E] = 'h25;
mem['h43F] = 'hA0;
mem['h440] = 'h00;
mem['h441] = 'h84;
mem['h442] = 'h24;
mem['h443] = 'hF0;
mem['h444] = 'h04;
mem['h445] = 'hA4;
mem['h446] = 'h24;
mem['h447] = 'hA5;
mem['h448] = 'h25;
mem['h449] = 'h48;
mem['h44A] = 'h20;
mem['h44B] = 'h31;
mem['h44C] = 'hFC;
mem['h44D] = 'h20;
mem['h44E] = 'h98;
mem['h44F] = 'hFC;
mem['h450] = 'hA0;
mem['h451] = 'h00;
mem['h452] = 'h68;
mem['h453] = 'h69;
mem['h454] = 'h00;
mem['h455] = 'hC5;
mem['h456] = 'h23;
mem['h457] = 'h90;
mem['h458] = 'hF0;
mem['h459] = 'hB0;
mem['h45A] = 'hD4;
mem['h45B] = 'hA9;
mem['h45C] = 'h00;
mem['h45D] = 'h85;
mem['h45E] = 'h24;
mem['h45F] = 'hE6;
mem['h460] = 'h25;
mem['h461] = 'hA5;
mem['h462] = 'h25;
mem['h463] = 'hC5;
mem['h464] = 'h23;
mem['h465] = 'h90;
mem['h466] = 'hCA;
mem['h467] = 'hC6;
mem['h468] = 'h25;
mem['h469] = 'hA5;
mem['h46A] = 'h22;
mem['h46B] = 'h48;
mem['h46C] = 'h20;
mem['h46D] = 'h31;
mem['h46E] = 'hFC;
mem['h46F] = 'hA5;
mem['h470] = 'h28;
mem['h471] = 'h85;
mem['h472] = 'h2A;
mem['h473] = 'hA5;
mem['h474] = 'h29;
mem['h475] = 'h85;
mem['h476] = 'h2B;
mem['h477] = 'hA4;
mem['h478] = 'h21;
mem['h479] = 'h88;
mem['h47A] = 'h68;
mem['h47B] = 'h69;
mem['h47C] = 'h01;
mem['h47D] = 'hC5;
mem['h47E] = 'h23;
mem['h47F] = 'hB0;
mem['h480] = 'h0D;
mem['h481] = 'h48;
mem['h482] = 'h20;
mem['h483] = 'h31;
mem['h484] = 'hFC;
mem['h485] = 'hB1;
mem['h486] = 'h28;
mem['h487] = 'h91;
mem['h488] = 'h2A;
mem['h489] = 'h88;
mem['h48A] = 'h10;
mem['h48B] = 'hF9;
mem['h48C] = 'h30;
mem['h48D] = 'hE1;
mem['h48E] = 'hA0;
mem['h48F] = 'h00;
mem['h490] = 'h20;
mem['h491] = 'h98;
mem['h492] = 'hFC;
mem['h493] = 'h4C;
mem['h494] = 'h2F;
mem['h495] = 'hFC;
mem['h496] = 'hA4;
mem['h497] = 'h24;
mem['h498] = 'hA9;
mem['h499] = 'hA0;
mem['h49A] = 'h91;
mem['h49B] = 'h28;
mem['h49C] = 'hC8;
mem['h49D] = 'hA5;
mem['h49E] = 'h32;
mem['h49F] = 'h91;
mem['h4A0] = 'h28;
mem['h4A1] = 'hC8;
mem['h4A2] = 'hC4;
mem['h4A3] = 'h21;
mem['h4A4] = 'h90;
mem['h4A5] = 'hF2;
mem['h4A6] = 'h60;
mem['h4A7] = 'hA5;
mem['h4A8] = 'h32;
mem['h4A9] = 'h49;
mem['h4AA] = 'h80;
mem['h4AB] = 'h85;
mem['h4AC] = 'h32;
mem['h4AD] = 'h60;
mem['h4AE] = 'hA9;
mem['h4AF] = 'h40;
mem['h4B0] = 'h20;
mem['h4B1] = 'h94;
mem['h4B2] = 'hFB;
mem['h4B3] = 'hA0;
mem['h4B4] = 'hC0;
mem['h4B5] = 'hA9;
mem['h4B6] = 'h0C;
mem['h4B7] = 'h20;
mem['h4B8] = 'h94;
mem['h4B9] = 'hFB;
mem['h4BA] = 'hAD;
mem['h4BB] = 'h30;
mem['h4BC] = 'hC0;
mem['h4BD] = 'h88;
mem['h4BE] = 'hD0;
mem['h4BF] = 'hF5;
mem['h4C0] = 'h60;
mem['h4C1] = 'hA0;
mem['h4C2] = 'h4B;
mem['h4C3] = 'h20;
mem['h4C4] = 'hD3;
mem['h4C5] = 'hFC;
mem['h4C6] = 'hD0;
mem['h4C7] = 'hF9;
mem['h4C8] = 'h69;
mem['h4C9] = 'hFE;
mem['h4CA] = 'hB0;
mem['h4CB] = 'hF5;
mem['h4CC] = 'hA0;
mem['h4CD] = 'h21;
mem['h4CE] = 'h20;
mem['h4CF] = 'hD3;
mem['h4D0] = 'hFC;
mem['h4D1] = 'hC8;
mem['h4D2] = 'hC8;
mem['h4D3] = 'h88;
mem['h4D4] = 'hD0;
mem['h4D5] = 'hFD;
mem['h4D6] = 'h90;
mem['h4D7] = 'h05;
mem['h4D8] = 'hA0;
mem['h4D9] = 'h32;
mem['h4DA] = 'h88;
mem['h4DB] = 'hD0;
mem['h4DC] = 'hFD;
mem['h4DD] = 'hAC;
mem['h4DE] = 'h20;
mem['h4DF] = 'hC0;
mem['h4E0] = 'hA0;
mem['h4E1] = 'h2C;
mem['h4E2] = 'hCA;
mem['h4E3] = 'h60;
mem['h4E4] = 'hA2;
mem['h4E5] = 'h08;
mem['h4E6] = 'h48;
mem['h4E7] = 'h20;
mem['h4E8] = 'hF2;
mem['h4E9] = 'hFC;
mem['h4EA] = 'h68;
mem['h4EB] = 'h2A;
mem['h4EC] = 'hA0;
mem['h4ED] = 'h3A;
mem['h4EE] = 'hCA;
mem['h4EF] = 'hD0;
mem['h4F0] = 'hF5;
mem['h4F1] = 'h60;
mem['h4F2] = 'h20;
mem['h4F3] = 'hF5;
mem['h4F4] = 'hFC;
mem['h4F5] = 'h88;
mem['h4F6] = 'hAD;
mem['h4F7] = 'h60;
mem['h4F8] = 'hC0;
mem['h4F9] = 'h45;
mem['h4FA] = 'h2F;
mem['h4FB] = 'h10;
mem['h4FC] = 'hF8;
mem['h4FD] = 'h45;
mem['h4FE] = 'h2F;
mem['h4FF] = 'h85;
mem['h500] = 'h2F;
mem['h501] = 'hC0;
mem['h502] = 'h80;
mem['h503] = 'h60;
mem['h504] = 'h6C;
mem['h505] = 'h38;
mem['h506] = 'h00;
mem['h507] = 'hA5;
mem['h508] = 'h19;
mem['h509] = 'h20;
mem['h50A] = 'h5E;
mem['h50B] = 'hF8;
mem['h50C] = 'hA4;
mem['h50D] = 'h24;
mem['h50E] = 'hB1;
mem['h50F] = 'h28;
mem['h510] = 'h85;
mem['h511] = 'h35;
mem['h512] = 'hC8;
mem['h513] = 'hB1;
mem['h514] = 'h28;
mem['h515] = 'h48;
mem['h516] = 'hA9;
mem['h517] = 'h0F;
mem['h518] = 'h91;
mem['h519] = 'h28;
mem['h51A] = 'h68;
mem['h51B] = 'hE6;
mem['h51C] = 'h4E;
mem['h51D] = 'hD0;
mem['h51E] = 'h02;
mem['h51F] = 'hE6;
mem['h520] = 'h4F;
mem['h521] = 'h2C;
mem['h522] = 'h00;
mem['h523] = 'hC0;
mem['h524] = 'h10;
mem['h525] = 'hF5;
mem['h526] = 'h91;
mem['h527] = 'h28;
mem['h528] = 'hA5;
mem['h529] = 'h1E;
mem['h52A] = 'h20;
mem['h52B] = 'h5E;
mem['h52C] = 'hF8;
mem['h52D] = 'hAD;
mem['h52E] = 'h00;
mem['h52F] = 'hC0;
mem['h530] = 'h09;
mem['h531] = 'h80;
mem['h532] = 'h2C;
mem['h533] = 'h10;
mem['h534] = 'hC0;
mem['h535] = 'hA4;
mem['h536] = 'h24;
mem['h537] = 'h60;
mem['h538] = 'h20;
mem['h539] = 'hD4;
mem['h53A] = 'hFD;
mem['h53B] = 'hC9;
mem['h53C] = 'h88;
mem['h53D] = 'hF0;
mem['h53E] = 'h1D;
mem['h53F] = 'hC9;
mem['h540] = 'h98;
mem['h541] = 'hF0;
mem['h542] = 'h0A;
mem['h543] = 'hE0;
mem['h544] = 'hF8;
mem['h545] = 'h90;
mem['h546] = 'h03;
mem['h547] = 'h20;
mem['h548] = 'h3B;
mem['h549] = 'hFF;
mem['h54A] = 'hE8;
mem['h54B] = 'hD0;
mem['h54C] = 'h13;
mem['h54D] = 'hA9;
mem['h54E] = 'hDC;
mem['h54F] = 'h20;
mem['h550] = 'hD4;
mem['h551] = 'hFD;
mem['h552] = 'h20;
mem['h553] = 'h75;
mem['h554] = 'hFD;
mem['h555] = 'hA5;
mem['h556] = 'h33;
mem['h557] = 'h20;
mem['h558] = 'hD4;
mem['h559] = 'hFD;
mem['h55A] = 'hA2;
mem['h55B] = 'h01;
mem['h55C] = 'h8A;
mem['h55D] = 'hF0;
mem['h55E] = 'hF3;
mem['h55F] = 'hCA;
mem['h560] = 'h20;
mem['h561] = 'h66;
mem['h562] = 'hFB;
mem['h563] = 'hC9;
mem['h564] = 'h95;
mem['h565] = 'hD0;
mem['h566] = 'h02;
mem['h567] = 'hA5;
mem['h568] = 'h35;
mem['h569] = 'h9D;
mem['h56A] = 'h00;
mem['h56B] = 'h02;
mem['h56C] = 'hC9;
mem['h56D] = 'h8D;
mem['h56E] = 'hD0;
mem['h56F] = 'hC8;
mem['h570] = 'hA9;
mem['h571] = 'h9D;
mem['h572] = 'h20;
mem['h573] = 'hD4;
mem['h574] = 'hFD;
mem['h575] = 'hA9;
mem['h576] = 'h8D;
mem['h577] = 'hD0;
mem['h578] = 'h5B;
mem['h579] = 'hA4;
mem['h57A] = 'h3D;
mem['h57B] = 'hA6;
mem['h57C] = 'h3C;
mem['h57D] = 'h20;
mem['h57E] = 'h75;
mem['h57F] = 'hFD;
mem['h580] = 'h20;
mem['h581] = 'h31;
mem['h582] = 'hF9;
mem['h583] = 'hA0;
mem['h584] = 'h00;
mem['h585] = 'hA9;
mem['h586] = 'hAD;
mem['h587] = 'h4C;
mem['h588] = 'hD4;
mem['h589] = 'hFD;
mem['h58A] = 'hA5;
mem['h58B] = 'h3C;
mem['h58C] = 'h09;
mem['h58D] = 'h07;
mem['h58E] = 'h85;
mem['h58F] = 'h3E;
mem['h590] = 'hA5;
mem['h591] = 'h3D;
mem['h592] = 'h85;
mem['h593] = 'h3F;
mem['h594] = 'hA5;
mem['h595] = 'h3C;
mem['h596] = 'h29;
mem['h597] = 'h07;
mem['h598] = 'hD0;
mem['h599] = 'h03;
mem['h59A] = 'h20;
mem['h59B] = 'h79;
mem['h59C] = 'hFD;
mem['h59D] = 'hA9;
mem['h59E] = 'hA0;
mem['h59F] = 'h20;
mem['h5A0] = 'hD4;
mem['h5A1] = 'hFD;
mem['h5A2] = 'hB1;
mem['h5A3] = 'h3C;
mem['h5A4] = 'h20;
mem['h5A5] = 'hC1;
mem['h5A6] = 'hFD;
mem['h5A7] = 'h20;
mem['h5A8] = 'hA6;
mem['h5A9] = 'hFB;
mem['h5AA] = 'h90;
mem['h5AB] = 'hE8;
mem['h5AC] = 'h60;
mem['h5AD] = 'h4A;
mem['h5AE] = 'h90;
mem['h5AF] = 'hEA;
mem['h5B0] = 'h4A;
mem['h5B1] = 'h4A;
mem['h5B2] = 'hA5;
mem['h5B3] = 'h3E;
mem['h5B4] = 'h90;
mem['h5B5] = 'h02;
mem['h5B6] = 'h49;
mem['h5B7] = 'hFF;
mem['h5B8] = 'h65;
mem['h5B9] = 'h3C;
mem['h5BA] = 'h48;
mem['h5BB] = 'hA9;
mem['h5BC] = 'hBD;
mem['h5BD] = 'h20;
mem['h5BE] = 'hD4;
mem['h5BF] = 'hFD;
mem['h5C0] = 'h68;
mem['h5C1] = 'h48;
mem['h5C2] = 'h4A;
mem['h5C3] = 'h4A;
mem['h5C4] = 'h4A;
mem['h5C5] = 'h4A;
mem['h5C6] = 'h20;
mem['h5C7] = 'hCC;
mem['h5C8] = 'hFD;
mem['h5C9] = 'h68;
mem['h5CA] = 'h29;
mem['h5CB] = 'h0F;
mem['h5CC] = 'h09;
mem['h5CD] = 'hB0;
mem['h5CE] = 'hC9;
mem['h5CF] = 'hBA;
mem['h5D0] = 'h90;
mem['h5D1] = 'h02;
mem['h5D2] = 'h69;
mem['h5D3] = 'h06;
mem['h5D4] = 'h6C;
mem['h5D5] = 'h36;
mem['h5D6] = 'h00;
mem['h5D7] = 'h84;
mem['h5D8] = 'h35;
mem['h5D9] = 'h48;
mem['h5DA] = 'hA5;
mem['h5DB] = 'h19;
mem['h5DC] = 'h20;
mem['h5DD] = 'h5E;
mem['h5DE] = 'hF8;
mem['h5DF] = 'h68;
mem['h5E0] = 'h48;
mem['h5E1] = 'hC9;
mem['h5E2] = 'hA0;
mem['h5E3] = 'h90;
mem['h5E4] = 'h06;
mem['h5E5] = 'h24;
mem['h5E6] = 'h32;
mem['h5E7] = 'h30;
mem['h5E8] = 'h02;
mem['h5E9] = 'h29;
mem['h5EA] = 'h7F;
mem['h5EB] = 'h20;
mem['h5EC] = 'hCB;
mem['h5ED] = 'hFB;
mem['h5EE] = 'hA5;
mem['h5EF] = 'h1E;
mem['h5F0] = 'h20;
mem['h5F1] = 'h5E;
mem['h5F2] = 'hF8;
mem['h5F3] = 'h68;
mem['h5F4] = 'hA4;
mem['h5F5] = 'h35;
mem['h5F6] = 'h60;
mem['h5F7] = 'h8A;
mem['h5F8] = 'hF0;
mem['h5F9] = 'h07;
mem['h5FA] = 'hB5;
mem['h5FB] = 'h3C;
mem['h5FC] = 'h95;
mem['h5FD] = 'h3A;
mem['h5FE] = 'hCA;
mem['h5FF] = 'h10;
mem['h600] = 'hF9;
mem['h601] = 'h60;
mem['h602] = 'hC6;
mem['h603] = 'h34;
mem['h604] = 'hF0;
mem['h605] = 'h84;
mem['h606] = 'hCA;
mem['h607] = 'hD0;
mem['h608] = 'h16;
mem['h609] = 'hC9;
mem['h60A] = 'hBA;
mem['h60B] = 'hD0;
mem['h60C] = 'hA0;
mem['h60D] = 'h85;
mem['h60E] = 'h31;
mem['h60F] = 'hA5;
mem['h610] = 'h3E;
mem['h611] = 'h91;
mem['h612] = 'h40;
mem['h613] = 'hE6;
mem['h614] = 'h40;
mem['h615] = 'hD0;
mem['h616] = 'h02;
mem['h617] = 'hE6;
mem['h618] = 'h41;
mem['h619] = 'h60;
mem['h61A] = 'hA4;
mem['h61B] = 'h34;
mem['h61C] = 'hB9;
mem['h61D] = 'hFF;
mem['h61E] = 'h01;
mem['h61F] = 'h85;
mem['h620] = 'h31;
mem['h621] = 'h60;
mem['h622] = 'hA2;
mem['h623] = 'h01;
mem['h624] = 'hB5;
mem['h625] = 'h3E;
mem['h626] = 'h95;
mem['h627] = 'h42;
mem['h628] = 'h95;
mem['h629] = 'h44;
mem['h62A] = 'hCA;
mem['h62B] = 'h10;
mem['h62C] = 'hF7;
mem['h62D] = 'h60;
mem['h62E] = 'hB1;
mem['h62F] = 'h3C;
mem['h630] = 'h91;
mem['h631] = 'h42;
mem['h632] = 'h20;
mem['h633] = 'hA0;
mem['h634] = 'hFB;
mem['h635] = 'h90;
mem['h636] = 'hF7;
mem['h637] = 'h60;
mem['h638] = 'hB1;
mem['h639] = 'h3C;
mem['h63A] = 'hD1;
mem['h63B] = 'h42;
mem['h63C] = 'hF0;
mem['h63D] = 'h1C;
mem['h63E] = 'h20;
mem['h63F] = 'h79;
mem['h640] = 'hFD;
mem['h641] = 'hB1;
mem['h642] = 'h3C;
mem['h643] = 'h20;
mem['h644] = 'hC1;
mem['h645] = 'hFD;
mem['h646] = 'hA9;
mem['h647] = 'hA0;
mem['h648] = 'h20;
mem['h649] = 'hD4;
mem['h64A] = 'hFD;
mem['h64B] = 'hA9;
mem['h64C] = 'hA8;
mem['h64D] = 'h20;
mem['h64E] = 'hD4;
mem['h64F] = 'hFD;
mem['h650] = 'hB1;
mem['h651] = 'h42;
mem['h652] = 'h20;
mem['h653] = 'hC1;
mem['h654] = 'hFD;
mem['h655] = 'hA9;
mem['h656] = 'hA9;
mem['h657] = 'h20;
mem['h658] = 'hD4;
mem['h659] = 'hFD;
mem['h65A] = 'h20;
mem['h65B] = 'hA0;
mem['h65C] = 'hFB;
mem['h65D] = 'h90;
mem['h65E] = 'hD9;
mem['h65F] = 'h60;
mem['h660] = 'h20;
mem['h661] = 'hF7;
mem['h662] = 'hFD;
mem['h663] = 'hA9;
mem['h664] = 'h1C;
mem['h665] = 'h48;
mem['h666] = 'h20;
mem['h667] = 'hC1;
mem['h668] = 'hF8;
mem['h669] = 'h20;
mem['h66A] = 'h39;
mem['h66B] = 'hF9;
mem['h66C] = 'h85;
mem['h66D] = 'h3A;
mem['h66E] = 'h84;
mem['h66F] = 'h3B;
mem['h670] = 'h68;
mem['h671] = 'h38;
mem['h672] = 'hE9;
mem['h673] = 'h01;
mem['h674] = 'hD0;
mem['h675] = 'hEF;
mem['h676] = 'h60;
mem['h677] = 'hA0;
mem['h678] = 'h87;
mem['h679] = 'hD0;
mem['h67A] = 'h02;
mem['h67B] = 'hA0;
mem['h67C] = 'hAF;
mem['h67D] = 'h84;
mem['h67E] = 'h32;
mem['h67F] = 'h60;
mem['h680] = 'hA9;
mem['h681] = 'h00;
mem['h682] = 'h85;
mem['h683] = 'h3E;
mem['h684] = 'hA2;
mem['h685] = 'h38;
mem['h686] = 'hA0;
mem['h687] = 'h07;
mem['h688] = 'hD0;
mem['h689] = 'h08;
mem['h68A] = 'hA9;
mem['h68B] = 'h00;
mem['h68C] = 'h85;
mem['h68D] = 'h3E;
mem['h68E] = 'hA2;
mem['h68F] = 'h36;
mem['h690] = 'hA0;
mem['h691] = 'hD7;
mem['h692] = 'hA5;
mem['h693] = 'h3E;
mem['h694] = 'h29;
mem['h695] = 'h0F;
mem['h696] = 'hF0;
mem['h697] = 'h06;
mem['h698] = 'h09;
mem['h699] = 'hC0;
mem['h69A] = 'hA0;
mem['h69B] = 'h00;
mem['h69C] = 'hF0;
mem['h69D] = 'h02;
mem['h69E] = 'hA9;
mem['h69F] = 'hFD;
mem['h6A0] = 'h94;
mem['h6A1] = 'h00;
mem['h6A2] = 'h95;
mem['h6A3] = 'h01;
mem['h6A4] = 'h60;
mem['h6A5] = 'h4C;
mem['h6A6] = 'h00;
mem['h6A7] = 'hE0;
mem['h6A8] = 'h4C;
mem['h6A9] = 'h03;
mem['h6AA] = 'hE0;
mem['h6AB] = 'h20;
mem['h6AC] = 'hF7;
mem['h6AD] = 'hFD;
mem['h6AE] = 'h20;
mem['h6AF] = 'h40;
mem['h6B0] = 'hFF;
mem['h6B1] = 'h6C;
mem['h6B2] = 'h3A;
mem['h6B3] = 'h00;
mem['h6B4] = 'h4C;
mem['h6B5] = 'hCD;
mem['h6B6] = 'hFA;
mem['h6B7] = 'h4C;
mem['h6B8] = 'hF8;
mem['h6B9] = 'h03;
mem['h6BA] = 'hA5;
mem['h6BB] = 'h3E;
mem['h6BC] = 'h29;
mem['h6BD] = 'h1F;
mem['h6BE] = 'hA2;
mem['h6BF] = 'h02;
mem['h6C0] = 'h4C;
mem['h6C1] = 'h31;
mem['h6C2] = 'hF8;
mem['h6C3] = 'hA5;
mem['h6C4] = 'h3E;
mem['h6C5] = 'h45;
mem['h6C6] = 'h32;
mem['h6C7] = 'h29;
mem['h6C8] = 'h07;
mem['h6C9] = 'h45;
mem['h6CA] = 'h32;
mem['h6CB] = 'h85;
mem['h6CC] = 'h32;
mem['h6CD] = 'h60;
mem['h6CE] = 'hA9;
mem['h6CF] = 'h40;
mem['h6D0] = 'h20;
mem['h6D1] = 'hC1;
mem['h6D2] = 'hFC;
mem['h6D3] = 'hA0;
mem['h6D4] = 'h27;
mem['h6D5] = 'hA2;
mem['h6D6] = 'h00;
mem['h6D7] = 'h41;
mem['h6D8] = 'h3C;
mem['h6D9] = 'h48;
mem['h6DA] = 'hA1;
mem['h6DB] = 'h3C;
mem['h6DC] = 'h20;
mem['h6DD] = 'hEE;
mem['h6DE] = 'hFE;
mem['h6DF] = 'h20;
mem['h6E0] = 'hA6;
mem['h6E1] = 'hFB;
mem['h6E2] = 'hA0;
mem['h6E3] = 'h1D;
mem['h6E4] = 'h68;
mem['h6E5] = 'h90;
mem['h6E6] = 'hEE;
mem['h6E7] = 'hA0;
mem['h6E8] = 'h22;
mem['h6E9] = 'h20;
mem['h6EA] = 'hEE;
mem['h6EB] = 'hFE;
mem['h6EC] = 'hF0;
mem['h6ED] = 'h4D;
mem['h6EE] = 'hA2;
mem['h6EF] = 'h10;
mem['h6F0] = 'h0A;
mem['h6F1] = 'h20;
mem['h6F2] = 'hCE;
mem['h6F3] = 'hFC;
mem['h6F4] = 'hD0;
mem['h6F5] = 'hFA;
mem['h6F6] = 'h60;
mem['h6F7] = 'h20;
mem['h6F8] = 'h02;
mem['h6F9] = 'hFE;
mem['h6FA] = 'h68;
mem['h6FB] = 'h68;
mem['h6FC] = 'hD0;
mem['h6FD] = 'h6B;
mem['h6FE] = 'h20;
mem['h6FF] = 'hF2;
mem['h700] = 'hFC;
mem['h701] = 'hA9;
mem['h702] = 'h16;
mem['h703] = 'h20;
mem['h704] = 'hC1;
mem['h705] = 'hFC;
mem['h706] = 'h85;
mem['h707] = 'h2E;
mem['h708] = 'h20;
mem['h709] = 'hF2;
mem['h70A] = 'hFC;
mem['h70B] = 'hA0;
mem['h70C] = 'h24;
mem['h70D] = 'h20;
mem['h70E] = 'hF5;
mem['h70F] = 'hFC;
mem['h710] = 'hB0;
mem['h711] = 'hF9;
mem['h712] = 'h20;
mem['h713] = 'hF5;
mem['h714] = 'hFC;
mem['h715] = 'hA0;
mem['h716] = 'h3B;
mem['h717] = 'h20;
mem['h718] = 'hE4;
mem['h719] = 'hFC;
mem['h71A] = 'h81;
mem['h71B] = 'h3C;
mem['h71C] = 'h45;
mem['h71D] = 'h2E;
mem['h71E] = 'h85;
mem['h71F] = 'h2E;
mem['h720] = 'h20;
mem['h721] = 'hA6;
mem['h722] = 'hFB;
mem['h723] = 'hA0;
mem['h724] = 'h35;
mem['h725] = 'h90;
mem['h726] = 'hF0;
mem['h727] = 'h20;
mem['h728] = 'hE4;
mem['h729] = 'hFC;
mem['h72A] = 'hC5;
mem['h72B] = 'h2E;
mem['h72C] = 'hF0;
mem['h72D] = 'h0D;
mem['h72E] = 'hA9;
mem['h72F] = 'hC5;
mem['h730] = 'h20;
mem['h731] = 'hD4;
mem['h732] = 'hFD;
mem['h733] = 'hA9;
mem['h734] = 'hD2;
mem['h735] = 'h20;
mem['h736] = 'hD4;
mem['h737] = 'hFD;
mem['h738] = 'h20;
mem['h739] = 'hD4;
mem['h73A] = 'hFD;
mem['h73B] = 'hA9;
mem['h73C] = 'h87;
mem['h73D] = 'h4C;
mem['h73E] = 'hD4;
mem['h73F] = 'hFD;
mem['h740] = 'hA5;
mem['h741] = 'h48;
mem['h742] = 'h48;
mem['h743] = 'hA5;
mem['h744] = 'h45;
mem['h745] = 'hA6;
mem['h746] = 'h46;
mem['h747] = 'hA4;
mem['h748] = 'h47;
mem['h749] = 'h28;
mem['h74A] = 'h60;
mem['h74B] = 'h85;
mem['h74C] = 'h45;
mem['h74D] = 'h86;
mem['h74E] = 'h46;
mem['h74F] = 'h84;
mem['h750] = 'h47;
mem['h751] = 'h08;
mem['h752] = 'h68;
mem['h753] = 'h85;
mem['h754] = 'h48;
mem['h755] = 'hBA;
mem['h756] = 'h86;
mem['h757] = 'h49;
mem['h758] = 'hD8;
mem['h759] = 'h60;
mem['h75A] = 'hA2;
mem['h75B] = 'h02;
mem['h75C] = 'hA9;
mem['h75D] = 'hA0;
mem['h75E] = 'h20;
mem['h75F] = 'hD4;
mem['h760] = 'hFD;
mem['h761] = 'hCA;
mem['h762] = 'hD0;
mem['h763] = 'hFA;
mem['h764] = 'h60;
mem['h765] = 'hD8;
mem['h766] = 'h20;
mem['h767] = 'h3B;
mem['h768] = 'hFF;
mem['h769] = 'hA9;
mem['h76A] = 'hAA;
mem['h76B] = 'h85;
mem['h76C] = 'h33;
mem['h76D] = 'h20;
mem['h76E] = 'h52;
mem['h76F] = 'hFD;
mem['h770] = 'h20;
mem['h771] = 'hC7;
mem['h772] = 'hFF;
mem['h773] = 'h20;
mem['h774] = 'hA7;
mem['h775] = 'hFF;
mem['h776] = 'h84;
mem['h777] = 'h34;
mem['h778] = 'hA0;
mem['h779] = 'h17;
mem['h77A] = 'h88;
mem['h77B] = 'h30;
mem['h77C] = 'hE8;
mem['h77D] = 'hD9;
mem['h77E] = 'hCC;
mem['h77F] = 'hFF;
mem['h780] = 'hD0;
mem['h781] = 'hF8;
mem['h782] = 'h20;
mem['h783] = 'hBE;
mem['h784] = 'hFF;
mem['h785] = 'hA4;
mem['h786] = 'h34;
mem['h787] = 'h4C;
mem['h788] = 'h73;
mem['h789] = 'hFF;
mem['h78A] = 'hA2;
mem['h78B] = 'h03;
mem['h78C] = 'h0A;
mem['h78D] = 'h0A;
mem['h78E] = 'h0A;
mem['h78F] = 'h0A;
mem['h790] = 'h0A;
mem['h791] = 'h26;
mem['h792] = 'h3E;
mem['h793] = 'h26;
mem['h794] = 'h3F;
mem['h795] = 'hCA;
mem['h796] = 'h10;
mem['h797] = 'hF8;
mem['h798] = 'hA5;
mem['h799] = 'h31;
mem['h79A] = 'hD0;
mem['h79B] = 'h06;
mem['h79C] = 'hB5;
mem['h79D] = 'h3F;
mem['h79E] = 'h95;
mem['h79F] = 'h3D;
mem['h7A0] = 'h95;
mem['h7A1] = 'h41;
mem['h7A2] = 'hE8;
mem['h7A3] = 'hF0;
mem['h7A4] = 'hF3;
mem['h7A5] = 'hD0;
mem['h7A6] = 'h06;
mem['h7A7] = 'hA2;
mem['h7A8] = 'h00;
mem['h7A9] = 'h86;
mem['h7AA] = 'h3E;
mem['h7AB] = 'h86;
mem['h7AC] = 'h3F;
mem['h7AD] = 'hB9;
mem['h7AE] = 'h00;
mem['h7AF] = 'h02;
mem['h7B0] = 'hC8;
mem['h7B1] = 'h49;
mem['h7B2] = 'hB0;
mem['h7B3] = 'hC9;
mem['h7B4] = 'h0A;
mem['h7B5] = 'h90;
mem['h7B6] = 'hD3;
mem['h7B7] = 'h69;
mem['h7B8] = 'h88;
mem['h7B9] = 'hC9;
mem['h7BA] = 'hFA;
mem['h7BB] = 'hB0;
mem['h7BC] = 'hCD;
mem['h7BD] = 'h60;
mem['h7BE] = 'hA9;
mem['h7BF] = 'hFE;
mem['h7C0] = 'h48;
mem['h7C1] = 'hB9;
mem['h7C2] = 'hE3;
mem['h7C3] = 'hFF;
mem['h7C4] = 'h48;
mem['h7C5] = 'hA5;
mem['h7C6] = 'h31;
mem['h7C7] = 'hA0;
mem['h7C8] = 'h00;
mem['h7C9] = 'h84;
mem['h7CA] = 'h31;
mem['h7CB] = 'h60;
mem['h7CC] = 'hBC;
mem['h7CD] = 'hB2;
mem['h7CE] = 'hBE;
mem['h7CF] = 'hEF;
mem['h7D0] = 'hE9;
mem['h7D1] = 'h08;
mem['h7D2] = 'hC2;
mem['h7D3] = 'hC8;
mem['h7D4] = 'hBB;
mem['h7D5] = 'hA6;
mem['h7D6] = 'hA4;
mem['h7D7] = 'h06;
mem['h7D8] = 'h95;
mem['h7D9] = 'h07;
mem['h7DA] = 'h02;
mem['h7DB] = 'h05;
mem['h7DC] = 'hF0;
mem['h7DD] = 'h00;
mem['h7DE] = 'hEB;
mem['h7DF] = 'h93;
mem['h7E0] = 'hA7;
mem['h7E1] = 'hC6;
mem['h7E2] = 'h99;
mem['h7E3] = 'hA7;
mem['h7E4] = 'hB6;
mem['h7E5] = 'hB3;
mem['h7E6] = 'h37;
mem['h7E7] = 'hB9;
mem['h7E8] = 'hC2;
mem['h7E9] = 'h83;
mem['h7EA] = 'h8D;
mem['h7EB] = 'hA4;
mem['h7EC] = 'h19;
mem['h7ED] = 'h19;
mem['h7EE] = 'h2D;
mem['h7EF] = 'h21;
mem['h7F0] = 'h7A;
mem['h7F1] = 'h76;
mem['h7F2] = 'h5F;
mem['h7F3] = 'hCD;
mem['h7F4] = 'hAA;
mem['h7F5] = 'hFD;
mem['h7F6] = 'h19;
mem['h7F7] = 'h19;
mem['h7F8] = 'hF6;
mem['h7F9] = 'h05;
mem['h7FA] = 'hFB;
mem['h7FB] = 'h03;
mem['h7FC] = 'h48;
mem['h7FD] = 'hFA;
mem['h7FE] = 'h26;
mem['h7FF] = 'hFA;
/fighter/AGATHE7.V
0,0 → 1,2048
mem['h000] = 'h00;
mem['h001] = 'h00;
mem['h002] = 'h00;
mem['h003] = 'h00;
mem['h004] = 'h00;
mem['h005] = 'h00;
mem['h006] = 'h00;
mem['h007] = 'h00;
mem['h008] = 'h00;
mem['h009] = 'h00;
mem['h00A] = 'h00;
mem['h00B] = 'h00;
mem['h00C] = 'h00;
mem['h00D] = 'h00;
mem['h00E] = 'h00;
mem['h00F] = 'h00;
mem['h010] = 'h00;
mem['h011] = 'h00;
mem['h012] = 'h00;
mem['h013] = 'h00;
mem['h014] = 'h00;
mem['h015] = 'h00;
mem['h016] = 'h00;
mem['h017] = 'h00;
mem['h018] = 'h00;
mem['h019] = 'h00;
mem['h01A] = 'h00;
mem['h01B] = 'h00;
mem['h01C] = 'h00;
mem['h01D] = 'h00;
mem['h01E] = 'h00;
mem['h01F] = 'h00;
mem['h020] = 'h00;
mem['h021] = 'h00;
mem['h022] = 'h00;
mem['h023] = 'h00;
mem['h024] = 'h00;
mem['h025] = 'h00;
mem['h026] = 'h00;
mem['h027] = 'h00;
mem['h028] = 'h00;
mem['h029] = 'h00;
mem['h02A] = 'h00;
mem['h02B] = 'h00;
mem['h02C] = 'h00;
mem['h02D] = 'h00;
mem['h02E] = 'h00;
mem['h02F] = 'h00;
mem['h030] = 'h00;
mem['h031] = 'h00;
mem['h032] = 'h00;
mem['h033] = 'h00;
mem['h034] = 'h00;
mem['h035] = 'h00;
mem['h036] = 'h00;
mem['h037] = 'h00;
mem['h038] = 'h00;
mem['h039] = 'h00;
mem['h03A] = 'h00;
mem['h03B] = 'h00;
mem['h03C] = 'h00;
mem['h03D] = 'h00;
mem['h03E] = 'h00;
mem['h03F] = 'h00;
mem['h040] = 'h00;
mem['h041] = 'h00;
mem['h042] = 'h00;
mem['h043] = 'h00;
mem['h044] = 'h00;
mem['h045] = 'h00;
mem['h046] = 'h00;
mem['h047] = 'h00;
mem['h048] = 'h00;
mem['h049] = 'h00;
mem['h04A] = 'h00;
mem['h04B] = 'h00;
mem['h04C] = 'h00;
mem['h04D] = 'h00;
mem['h04E] = 'h00;
mem['h04F] = 'h00;
mem['h050] = 'h00;
mem['h051] = 'h00;
mem['h052] = 'h00;
mem['h053] = 'h00;
mem['h054] = 'h00;
mem['h055] = 'h00;
mem['h056] = 'h00;
mem['h057] = 'h00;
mem['h058] = 'h00;
mem['h059] = 'h00;
mem['h05A] = 'h00;
mem['h05B] = 'h00;
mem['h05C] = 'h00;
mem['h05D] = 'h00;
mem['h05E] = 'h00;
mem['h05F] = 'h00;
mem['h060] = 'h00;
mem['h061] = 'h00;
mem['h062] = 'h00;
mem['h063] = 'h00;
mem['h064] = 'h00;
mem['h065] = 'h00;
mem['h066] = 'h00;
mem['h067] = 'h00;
mem['h068] = 'h00;
mem['h069] = 'h00;
mem['h06A] = 'h00;
mem['h06B] = 'h00;
mem['h06C] = 'h00;
mem['h06D] = 'h00;
mem['h06E] = 'h00;
mem['h06F] = 'h00;
mem['h070] = 'h00;
mem['h071] = 'h00;
mem['h072] = 'h00;
mem['h073] = 'h00;
mem['h074] = 'h00;
mem['h075] = 'h00;
mem['h076] = 'h00;
mem['h077] = 'h00;
mem['h078] = 'h00;
mem['h079] = 'h00;
mem['h07A] = 'h00;
mem['h07B] = 'h00;
mem['h07C] = 'h00;
mem['h07D] = 'h00;
mem['h07E] = 'h00;
mem['h07F] = 'h00;
mem['h080] = 'h00;
mem['h081] = 'h00;
mem['h082] = 'h00;
mem['h083] = 'h7C;
mem['h084] = 'h00;
mem['h085] = 'h00;
mem['h086] = 'h00;
mem['h087] = 'h00;
mem['h088] = 'h00;
mem['h089] = 'h00;
mem['h08A] = 'h00;
mem['h08B] = 'h7C;
mem['h08C] = 'h00;
mem['h08D] = 'h00;
mem['h08E] = 'h00;
mem['h08F] = 'h00;
mem['h090] = 'h00;
mem['h091] = 'h00;
mem['h092] = 'h00;
mem['h093] = 'hF0;
mem['h094] = 'h10;
mem['h095] = 'h10;
mem['h096] = 'h10;
mem['h097] = 'h10;
mem['h098] = 'h10;
mem['h099] = 'h10;
mem['h09A] = 'h10;
mem['h09B] = 'h10;
mem['h09C] = 'h10;
mem['h09D] = 'h10;
mem['h09E] = 'h10;
mem['h09F] = 'h10;
mem['h0A0] = 'h3C;
mem['h0A1] = 'h54;
mem['h0A2] = 'h54;
mem['h0A3] = 'h34;
mem['h0A4] = 'h14;
mem['h0A5] = 'h14;
mem['h0A6] = 'h14;
mem['h0A7] = 'h00;
mem['h0A8] = 'h00;
mem['h0A9] = 'h00;
mem['h0AA] = 'h08;
mem['h0AB] = 'hFC;
mem['h0AC] = 'h08;
mem['h0AD] = 'h00;
mem['h0AE] = 'h00;
mem['h0AF] = 'h00;
mem['h0B0] = 'h00;
mem['h0B1] = 'h00;
mem['h0B2] = 'h00;
mem['h0B3] = 'h00;
mem['h0B4] = 'h7C;
mem['h0B5] = 'h7C;
mem['h0B6] = 'h7C;
mem['h0B7] = 'h00;
mem['h0B8] = 'h10;
mem['h0B9] = 'h38;
mem['h0BA] = 'h10;
mem['h0BB] = 'h10;
mem['h0BC] = 'h38;
mem['h0BD] = 'h10;
mem['h0BE] = 'h7C;
mem['h0BF] = 'h00;
mem['h0C0] = 'h00;
mem['h0C1] = 'h10;
mem['h0C2] = 'h38;
mem['h0C3] = 'h10;
mem['h0C4] = 'h10;
mem['h0C5] = 'h10;
mem['h0C6] = 'h10;
mem['h0C7] = 'h10;
mem['h0C8] = 'h10;
mem['h0C9] = 'h10;
mem['h0CA] = 'h10;
mem['h0CB] = 'h10;
mem['h0CC] = 'h10;
mem['h0CD] = 'h38;
mem['h0CE] = 'h10;
mem['h0CF] = 'h00;
mem['h0D0] = 'h00;
mem['h0D1] = 'h00;
mem['h0D2] = 'h08;
mem['h0D3] = 'hFC;
mem['h0D4] = 'h08;
mem['h0D5] = 'h00;
mem['h0D6] = 'h00;
mem['h0D7] = 'h00;
mem['h0D8] = 'h00;
mem['h0D9] = 'h00;
mem['h0DA] = 'h00;
mem['h0DB] = 'h7C;
mem['h0DC] = 'h00;
mem['h0DD] = 'h00;
mem['h0DE] = 'h00;
mem['h0DF] = 'h00;
mem['h0E0] = 'h10;
mem['h0E1] = 'h10;
mem['h0E2] = 'h10;
mem['h0E3] = 'h10;
mem['h0E4] = 'h10;
mem['h0E5] = 'h10;
mem['h0E6] = 'h10;
mem['h0E7] = 'h10;
mem['h0E8] = 'h40;
mem['h0E9] = 'h40;
mem['h0EA] = 'h40;
mem['h0EB] = 'h40;
mem['h0EC] = 'h40;
mem['h0ED] = 'h40;
mem['h0EE] = 'h7C;
mem['h0EF] = 'h00;
mem['h0F0] = 'h00;
mem['h0F1] = 'h00;
mem['h0F2] = 'h00;
mem['h0F3] = 'h7C;
mem['h0F4] = 'h00;
mem['h0F5] = 'h00;
mem['h0F6] = 'h00;
mem['h0F7] = 'h00;
mem['h0F8] = 'h00;
mem['h0F9] = 'h00;
mem['h0FA] = 'h00;
mem['h0FB] = 'h7C;
mem['h0FC] = 'h00;
mem['h0FD] = 'h00;
mem['h0FE] = 'h00;
mem['h0FF] = 'h00;
mem['h100] = 'h00;
mem['h101] = 'h00;
mem['h102] = 'h00;
mem['h103] = 'h00;
mem['h104] = 'h00;
mem['h105] = 'h00;
mem['h106] = 'h00;
mem['h107] = 'h00;
mem['h108] = 'h10;
mem['h109] = 'h10;
mem['h10A] = 'h10;
mem['h10B] = 'h10;
mem['h10C] = 'h10;
mem['h10D] = 'h00;
mem['h10E] = 'h10;
mem['h10F] = 'h00;
mem['h110] = 'h28;
mem['h111] = 'h28;
mem['h112] = 'h28;
mem['h113] = 'h00;
mem['h114] = 'h00;
mem['h115] = 'h00;
mem['h116] = 'h00;
mem['h117] = 'h00;
mem['h118] = 'h28;
mem['h119] = 'h28;
mem['h11A] = 'h7C;
mem['h11B] = 'h28;
mem['h11C] = 'h7C;
mem['h11D] = 'h28;
mem['h11E] = 'h28;
mem['h11F] = 'h00;
mem['h120] = 'h44;
mem['h121] = 'h38;
mem['h122] = 'h44;
mem['h123] = 'h44;
mem['h124] = 'h44;
mem['h125] = 'h38;
mem['h126] = 'h44;
mem['h127] = 'h00;
mem['h128] = 'h60;
mem['h129] = 'h64;
mem['h12A] = 'h08;
mem['h12B] = 'h10;
mem['h12C] = 'h20;
mem['h12D] = 'h4C;
mem['h12E] = 'h0C;
mem['h12F] = 'h00;
mem['h130] = 'h20;
mem['h131] = 'h50;
mem['h132] = 'h50;
mem['h133] = 'h20;
mem['h134] = 'h54;
mem['h135] = 'h48;
mem['h136] = 'h34;
mem['h137] = 'h00;
mem['h138] = 'h10;
mem['h139] = 'h10;
mem['h13A] = 'h10;
mem['h13B] = 'h00;
mem['h13C] = 'h00;
mem['h13D] = 'h00;
mem['h13E] = 'h00;
mem['h13F] = 'h00;
mem['h140] = 'h08;
mem['h141] = 'h10;
mem['h142] = 'h20;
mem['h143] = 'h20;
mem['h144] = 'h20;
mem['h145] = 'h10;
mem['h146] = 'h08;
mem['h147] = 'h00;
mem['h148] = 'h20;
mem['h149] = 'h10;
mem['h14A] = 'h08;
mem['h14B] = 'h08;
mem['h14C] = 'h08;
mem['h14D] = 'h10;
mem['h14E] = 'h20;
mem['h14F] = 'h00;
mem['h150] = 'h10;
mem['h151] = 'h54;
mem['h152] = 'h38;
mem['h153] = 'h10;
mem['h154] = 'h38;
mem['h155] = 'h54;
mem['h156] = 'h10;
mem['h157] = 'h00;
mem['h158] = 'h00;
mem['h159] = 'h10;
mem['h15A] = 'h10;
mem['h15B] = 'h7C;
mem['h15C] = 'h10;
mem['h15D] = 'h10;
mem['h15E] = 'h00;
mem['h15F] = 'h00;
mem['h160] = 'h00;
mem['h161] = 'h00;
mem['h162] = 'h00;
mem['h163] = 'h30;
mem['h164] = 'h30;
mem['h165] = 'h10;
mem['h166] = 'h20;
mem['h167] = 'h00;
mem['h168] = 'h00;
mem['h169] = 'h00;
mem['h16A] = 'h00;
mem['h16B] = 'h7C;
mem['h16C] = 'h00;
mem['h16D] = 'h00;
mem['h16E] = 'h00;
mem['h16F] = 'h00;
mem['h170] = 'h00;
mem['h171] = 'h00;
mem['h172] = 'h00;
mem['h173] = 'h00;
mem['h174] = 'h00;
mem['h175] = 'h30;
mem['h176] = 'h30;
mem['h177] = 'h00;
mem['h178] = 'h00;
mem['h179] = 'h04;
mem['h17A] = 'h08;
mem['h17B] = 'h10;
mem['h17C] = 'h20;
mem['h17D] = 'h40;
mem['h17E] = 'h00;
mem['h17F] = 'h00;
mem['h180] = 'h38;
mem['h181] = 'h44;
mem['h182] = 'h4C;
mem['h183] = 'h54;
mem['h184] = 'h64;
mem['h185] = 'h44;
mem['h186] = 'h38;
mem['h187] = 'h00;
mem['h188] = 'h10;
mem['h189] = 'h30;
mem['h18A] = 'h10;
mem['h18B] = 'h10;
mem['h18C] = 'h10;
mem['h18D] = 'h10;
mem['h18E] = 'h38;
mem['h18F] = 'h00;
mem['h190] = 'h38;
mem['h191] = 'h44;
mem['h192] = 'h04;
mem['h193] = 'h08;
mem['h194] = 'h10;
mem['h195] = 'h20;
mem['h196] = 'h7C;
mem['h197] = 'h00;
mem['h198] = 'h7C;
mem['h199] = 'h04;
mem['h19A] = 'h08;
mem['h19B] = 'h18;
mem['h19C] = 'h04;
mem['h19D] = 'h44;
mem['h19E] = 'h38;
mem['h19F] = 'h00;
mem['h1A0] = 'h08;
mem['h1A1] = 'h18;
mem['h1A2] = 'h28;
mem['h1A3] = 'h48;
mem['h1A4] = 'h7C;
mem['h1A5] = 'h08;
mem['h1A6] = 'h08;
mem['h1A7] = 'h00;
mem['h1A8] = 'h7C;
mem['h1A9] = 'h40;
mem['h1AA] = 'h78;
mem['h1AB] = 'h04;
mem['h1AC] = 'h04;
mem['h1AD] = 'h44;
mem['h1AE] = 'h38;
mem['h1AF] = 'h00;
mem['h1B0] = 'h1C;
mem['h1B1] = 'h20;
mem['h1B2] = 'h40;
mem['h1B3] = 'h78;
mem['h1B4] = 'h44;
mem['h1B5] = 'h44;
mem['h1B6] = 'h38;
mem['h1B7] = 'h00;
mem['h1B8] = 'h7C;
mem['h1B9] = 'h04;
mem['h1BA] = 'h08;
mem['h1BB] = 'h10;
mem['h1BC] = 'h20;
mem['h1BD] = 'h20;
mem['h1BE] = 'h20;
mem['h1BF] = 'h00;
mem['h1C0] = 'h38;
mem['h1C1] = 'h44;
mem['h1C2] = 'h44;
mem['h1C3] = 'h38;
mem['h1C4] = 'h44;
mem['h1C5] = 'h44;
mem['h1C6] = 'h38;
mem['h1C7] = 'h00;
mem['h1C8] = 'h38;
mem['h1C9] = 'h44;
mem['h1CA] = 'h44;
mem['h1CB] = 'h3C;
mem['h1CC] = 'h04;
mem['h1CD] = 'h08;
mem['h1CE] = 'h70;
mem['h1CF] = 'h00;
mem['h1D0] = 'h00;
mem['h1D1] = 'h00;
mem['h1D2] = 'h18;
mem['h1D3] = 'h18;
mem['h1D4] = 'h00;
mem['h1D5] = 'h18;
mem['h1D6] = 'h18;
mem['h1D7] = 'h00;
mem['h1D8] = 'h18;
mem['h1D9] = 'h18;
mem['h1DA] = 'h00;
mem['h1DB] = 'h18;
mem['h1DC] = 'h18;
mem['h1DD] = 'h08;
mem['h1DE] = 'h10;
mem['h1DF] = 'h00;
mem['h1E0] = 'h04;
mem['h1E1] = 'h08;
mem['h1E2] = 'h10;
mem['h1E3] = 'h20;
mem['h1E4] = 'h10;
mem['h1E5] = 'h08;
mem['h1E6] = 'h04;
mem['h1E7] = 'h00;
mem['h1E8] = 'h00;
mem['h1E9] = 'h00;
mem['h1EA] = 'h7C;
mem['h1EB] = 'h00;
mem['h1EC] = 'h7C;
mem['h1ED] = 'h00;
mem['h1EE] = 'h00;
mem['h1EF] = 'h00;
mem['h1F0] = 'h20;
mem['h1F1] = 'h10;
mem['h1F2] = 'h08;
mem['h1F3] = 'h04;
mem['h1F4] = 'h08;
mem['h1F5] = 'h10;
mem['h1F6] = 'h20;
mem['h1F7] = 'h00;
mem['h1F8] = 'h38;
mem['h1F9] = 'h44;
mem['h1FA] = 'h08;
mem['h1FB] = 'h10;
mem['h1FC] = 'h10;
mem['h1FD] = 'h00;
mem['h1FE] = 'h10;
mem['h1FF] = 'h00;
mem['h200] = 'h38;
mem['h201] = 'h44;
mem['h202] = 'h5C;
mem['h203] = 'h54;
mem['h204] = 'h5C;
mem['h205] = 'h40;
mem['h206] = 'h3C;
mem['h207] = 'h00;
mem['h208] = 'h10;
mem['h209] = 'h28;
mem['h20A] = 'h44;
mem['h20B] = 'h44;
mem['h20C] = 'h7C;
mem['h20D] = 'h44;
mem['h20E] = 'h44;
mem['h20F] = 'h00;
mem['h210] = 'h78;
mem['h211] = 'h44;
mem['h212] = 'h44;
mem['h213] = 'h78;
mem['h214] = 'h44;
mem['h215] = 'h44;
mem['h216] = 'h78;
mem['h217] = 'h00;
mem['h218] = 'h38;
mem['h219] = 'h44;
mem['h21A] = 'h40;
mem['h21B] = 'h40;
mem['h21C] = 'h40;
mem['h21D] = 'h44;
mem['h21E] = 'h38;
mem['h21F] = 'h00;
mem['h220] = 'h78;
mem['h221] = 'h44;
mem['h222] = 'h44;
mem['h223] = 'h44;
mem['h224] = 'h44;
mem['h225] = 'h44;
mem['h226] = 'h78;
mem['h227] = 'h00;
mem['h228] = 'h7C;
mem['h229] = 'h40;
mem['h22A] = 'h40;
mem['h22B] = 'h78;
mem['h22C] = 'h40;
mem['h22D] = 'h40;
mem['h22E] = 'h7C;
mem['h22F] = 'h00;
mem['h230] = 'h7C;
mem['h231] = 'h40;
mem['h232] = 'h40;
mem['h233] = 'h78;
mem['h234] = 'h40;
mem['h235] = 'h40;
mem['h236] = 'h40;
mem['h237] = 'h00;
mem['h238] = 'h3C;
mem['h239] = 'h40;
mem['h23A] = 'h40;
mem['h23B] = 'h40;
mem['h23C] = 'h4C;
mem['h23D] = 'h44;
mem['h23E] = 'h3C;
mem['h23F] = 'h00;
mem['h240] = 'h44;
mem['h241] = 'h44;
mem['h242] = 'h44;
mem['h243] = 'h7C;
mem['h244] = 'h44;
mem['h245] = 'h44;
mem['h246] = 'h44;
mem['h247] = 'h00;
mem['h248] = 'h38;
mem['h249] = 'h10;
mem['h24A] = 'h10;
mem['h24B] = 'h10;
mem['h24C] = 'h10;
mem['h24D] = 'h10;
mem['h24E] = 'h38;
mem['h24F] = 'h00;
mem['h250] = 'h04;
mem['h251] = 'h04;
mem['h252] = 'h04;
mem['h253] = 'h04;
mem['h254] = 'h04;
mem['h255] = 'h44;
mem['h256] = 'h38;
mem['h257] = 'h00;
mem['h258] = 'h44;
mem['h259] = 'h48;
mem['h25A] = 'h50;
mem['h25B] = 'h60;
mem['h25C] = 'h50;
mem['h25D] = 'h48;
mem['h25E] = 'h44;
mem['h25F] = 'h00;
mem['h260] = 'h40;
mem['h261] = 'h40;
mem['h262] = 'h40;
mem['h263] = 'h40;
mem['h264] = 'h40;
mem['h265] = 'h40;
mem['h266] = 'h7C;
mem['h267] = 'h00;
mem['h268] = 'h44;
mem['h269] = 'h6C;
mem['h26A] = 'h54;
mem['h26B] = 'h54;
mem['h26C] = 'h44;
mem['h26D] = 'h44;
mem['h26E] = 'h44;
mem['h26F] = 'h00;
mem['h270] = 'h44;
mem['h271] = 'h44;
mem['h272] = 'h64;
mem['h273] = 'h54;
mem['h274] = 'h4C;
mem['h275] = 'h44;
mem['h276] = 'h44;
mem['h277] = 'h00;
mem['h278] = 'h38;
mem['h279] = 'h44;
mem['h27A] = 'h44;
mem['h27B] = 'h44;
mem['h27C] = 'h44;
mem['h27D] = 'h44;
mem['h27E] = 'h38;
mem['h27F] = 'h00;
mem['h280] = 'h78;
mem['h281] = 'h44;
mem['h282] = 'h44;
mem['h283] = 'h78;
mem['h284] = 'h40;
mem['h285] = 'h40;
mem['h286] = 'h40;
mem['h287] = 'h00;
mem['h288] = 'h38;
mem['h289] = 'h44;
mem['h28A] = 'h44;
mem['h28B] = 'h44;
mem['h28C] = 'h54;
mem['h28D] = 'h48;
mem['h28E] = 'h34;
mem['h28F] = 'h00;
mem['h290] = 'h78;
mem['h291] = 'h44;
mem['h292] = 'h44;
mem['h293] = 'h78;
mem['h294] = 'h50;
mem['h295] = 'h48;
mem['h296] = 'h44;
mem['h297] = 'h00;
mem['h298] = 'h38;
mem['h299] = 'h44;
mem['h29A] = 'h40;
mem['h29B] = 'h38;
mem['h29C] = 'h04;
mem['h29D] = 'h44;
mem['h29E] = 'h38;
mem['h29F] = 'h00;
mem['h2A0] = 'h7C;
mem['h2A1] = 'h10;
mem['h2A2] = 'h10;
mem['h2A3] = 'h10;
mem['h2A4] = 'h10;
mem['h2A5] = 'h10;
mem['h2A6] = 'h10;
mem['h2A7] = 'h00;
mem['h2A8] = 'h44;
mem['h2A9] = 'h44;
mem['h2AA] = 'h44;
mem['h2AB] = 'h44;
mem['h2AC] = 'h44;
mem['h2AD] = 'h44;
mem['h2AE] = 'h38;
mem['h2AF] = 'h00;
mem['h2B0] = 'h44;
mem['h2B1] = 'h44;
mem['h2B2] = 'h44;
mem['h2B3] = 'h44;
mem['h2B4] = 'h44;
mem['h2B5] = 'h28;
mem['h2B6] = 'h10;
mem['h2B7] = 'h00;
mem['h2B8] = 'h44;
mem['h2B9] = 'h44;
mem['h2BA] = 'h44;
mem['h2BB] = 'h54;
mem['h2BC] = 'h54;
mem['h2BD] = 'h6C;
mem['h2BE] = 'h44;
mem['h2BF] = 'h00;
mem['h2C0] = 'h44;
mem['h2C1] = 'h44;
mem['h2C2] = 'h28;
mem['h2C3] = 'h10;
mem['h2C4] = 'h28;
mem['h2C5] = 'h44;
mem['h2C6] = 'h44;
mem['h2C7] = 'h00;
mem['h2C8] = 'h44;
mem['h2C9] = 'h44;
mem['h2CA] = 'h28;
mem['h2CB] = 'h10;
mem['h2CC] = 'h10;
mem['h2CD] = 'h10;
mem['h2CE] = 'h10;
mem['h2CF] = 'h00;
mem['h2D0] = 'h7C;
mem['h2D1] = 'h04;
mem['h2D2] = 'h08;
mem['h2D3] = 'h10;
mem['h2D4] = 'h20;
mem['h2D5] = 'h40;
mem['h2D6] = 'h7C;
mem['h2D7] = 'h00;
mem['h2D8] = 'h7C;
mem['h2D9] = 'h60;
mem['h2DA] = 'h60;
mem['h2DB] = 'h60;
mem['h2DC] = 'h60;
mem['h2DD] = 'h60;
mem['h2DE] = 'h7C;
mem['h2DF] = 'h00;
mem['h2E0] = 'h00;
mem['h2E1] = 'h40;
mem['h2E2] = 'h20;
mem['h2E3] = 'h10;
mem['h2E4] = 'h08;
mem['h2E5] = 'h04;
mem['h2E6] = 'h00;
mem['h2E7] = 'h00;
mem['h2E8] = 'h7C;
mem['h2E9] = 'h0C;
mem['h2EA] = 'h0C;
mem['h2EB] = 'h0C;
mem['h2EC] = 'h0C;
mem['h2ED] = 'h0C;
mem['h2EE] = 'h7C;
mem['h2EF] = 'h00;
mem['h2F0] = 'h00;
mem['h2F1] = 'h10;
mem['h2F2] = 'h28;
mem['h2F3] = 'h44;
mem['h2F4] = 'h00;
mem['h2F5] = 'h00;
mem['h2F6] = 'h00;
mem['h2F7] = 'h00;
mem['h2F8] = 'h00;
mem['h2F9] = 'h00;
mem['h2FA] = 'h00;
mem['h2FB] = 'h00;
mem['h2FC] = 'h00;
mem['h2FD] = 'h00;
mem['h2FE] = 'h00;
mem['h2FF] = 'hFF;
mem['h300] = 'h5C;
mem['h301] = 'h54;
mem['h302] = 'h54;
mem['h303] = 'h74;
mem['h304] = 'h54;
mem['h305] = 'h54;
mem['h306] = 'h5C;
mem['h307] = 'h00;
mem['h308] = 'h38;
mem['h309] = 'h44;
mem['h30A] = 'h44;
mem['h30B] = 'h44;
mem['h30C] = 'h7C;
mem['h30D] = 'h44;
mem['h30E] = 'h44;
mem['h30F] = 'h00;
mem['h310] = 'h7C;
mem['h311] = 'h40;
mem['h312] = 'h40;
mem['h313] = 'h78;
mem['h314] = 'h44;
mem['h315] = 'h44;
mem['h316] = 'h78;
mem['h317] = 'h00;
mem['h318] = 'h48;
mem['h319] = 'h48;
mem['h31A] = 'h48;
mem['h31B] = 'h48;
mem['h31C] = 'h48;
mem['h31D] = 'h48;
mem['h31E] = 'h7C;
mem['h31F] = 'h04;
mem['h320] = 'h1C;
mem['h321] = 'h24;
mem['h322] = 'h24;
mem['h323] = 'h24;
mem['h324] = 'h24;
mem['h325] = 'h24;
mem['h326] = 'h7E;
mem['h327] = 'h42;
mem['h328] = 'h7C;
mem['h329] = 'h40;
mem['h32A] = 'h40;
mem['h32B] = 'h78;
mem['h32C] = 'h40;
mem['h32D] = 'h40;
mem['h32E] = 'h7C;
mem['h32F] = 'h00;
mem['h330] = 'h38;
mem['h331] = 'h54;
mem['h332] = 'h54;
mem['h333] = 'h54;
mem['h334] = 'h38;
mem['h335] = 'h10;
mem['h336] = 'h10;
mem['h337] = 'h00;
mem['h338] = 'h7C;
mem['h339] = 'h40;
mem['h33A] = 'h40;
mem['h33B] = 'h40;
mem['h33C] = 'h40;
mem['h33D] = 'h40;
mem['h33E] = 'h40;
mem['h33F] = 'h00;
mem['h340] = 'h44;
mem['h341] = 'h44;
mem['h342] = 'h28;
mem['h343] = 'h10;
mem['h344] = 'h28;
mem['h345] = 'h44;
mem['h346] = 'h44;
mem['h347] = 'h00;
mem['h348] = 'h44;
mem['h349] = 'h44;
mem['h34A] = 'h44;
mem['h34B] = 'h4C;
mem['h34C] = 'h54;
mem['h34D] = 'h64;
mem['h34E] = 'h44;
mem['h34F] = 'h00;
mem['h350] = 'h54;
mem['h351] = 'h54;
mem['h352] = 'h44;
mem['h353] = 'h4C;
mem['h354] = 'h54;
mem['h355] = 'h64;
mem['h356] = 'h44;
mem['h357] = 'h00;
mem['h358] = 'h44;
mem['h359] = 'h48;
mem['h35A] = 'h50;
mem['h35B] = 'h60;
mem['h35C] = 'h50;
mem['h35D] = 'h48;
mem['h35E] = 'h44;
mem['h35F] = 'h00;
mem['h360] = 'h0C;
mem['h361] = 'h14;
mem['h362] = 'h24;
mem['h363] = 'h24;
mem['h364] = 'h24;
mem['h365] = 'h24;
mem['h366] = 'h44;
mem['h367] = 'h00;
mem['h368] = 'h44;
mem['h369] = 'h6C;
mem['h36A] = 'h54;
mem['h36B] = 'h54;
mem['h36C] = 'h44;
mem['h36D] = 'h44;
mem['h36E] = 'h44;
mem['h36F] = 'h00;
mem['h370] = 'h44;
mem['h371] = 'h44;
mem['h372] = 'h44;
mem['h373] = 'h7C;
mem['h374] = 'h44;
mem['h375] = 'h44;
mem['h376] = 'h44;
mem['h377] = 'h00;
mem['h378] = 'h38;
mem['h379] = 'h44;
mem['h37A] = 'h44;
mem['h37B] = 'h44;
mem['h37C] = 'h44;
mem['h37D] = 'h44;
mem['h37E] = 'h38;
mem['h37F] = 'h00;
mem['h380] = 'h7C;
mem['h381] = 'h44;
mem['h382] = 'h44;
mem['h383] = 'h44;
mem['h384] = 'h44;
mem['h385] = 'h44;
mem['h386] = 'h44;
mem['h387] = 'h00;
mem['h388] = 'h3C;
mem['h389] = 'h44;
mem['h38A] = 'h44;
mem['h38B] = 'h3C;
mem['h38C] = 'h14;
mem['h38D] = 'h24;
mem['h38E] = 'h44;
mem['h38F] = 'h00;
mem['h390] = 'h78;
mem['h391] = 'h44;
mem['h392] = 'h44;
mem['h393] = 'h78;
mem['h394] = 'h40;
mem['h395] = 'h40;
mem['h396] = 'h40;
mem['h397] = 'h00;
mem['h398] = 'h38;
mem['h399] = 'h44;
mem['h39A] = 'h40;
mem['h39B] = 'h40;
mem['h39C] = 'h40;
mem['h39D] = 'h44;
mem['h39E] = 'h38;
mem['h39F] = 'h00;
mem['h3A0] = 'h7C;
mem['h3A1] = 'h10;
mem['h3A2] = 'h10;
mem['h3A3] = 'h10;
mem['h3A4] = 'h10;
mem['h3A5] = 'h10;
mem['h3A6] = 'h10;
mem['h3A7] = 'h00;
mem['h3A8] = 'h44;
mem['h3A9] = 'h44;
mem['h3AA] = 'h44;
mem['h3AB] = 'h3C;
mem['h3AC] = 'h04;
mem['h3AD] = 'h44;
mem['h3AE] = 'h38;
mem['h3AF] = 'h00;
mem['h3B0] = 'h54;
mem['h3B1] = 'h54;
mem['h3B2] = 'h54;
mem['h3B3] = 'h38;
mem['h3B4] = 'h54;
mem['h3B5] = 'h54;
mem['h3B6] = 'h54;
mem['h3B7] = 'h00;
mem['h3B8] = 'h78;
mem['h3B9] = 'h44;
mem['h3BA] = 'h44;
mem['h3BB] = 'h78;
mem['h3BC] = 'h44;
mem['h3BD] = 'h44;
mem['h3BE] = 'h78;
mem['h3BF] = 'h00;
mem['h3C0] = 'h40;
mem['h3C1] = 'h40;
mem['h3C2] = 'h40;
mem['h3C3] = 'h78;
mem['h3C4] = 'h44;
mem['h3C5] = 'h44;
mem['h3C6] = 'h78;
mem['h3C7] = 'h00;
mem['h3C8] = 'h44;
mem['h3C9] = 'h44;
mem['h3CA] = 'h44;
mem['h3CB] = 'h74;
mem['h3CC] = 'h54;
mem['h3CD] = 'h54;
mem['h3CE] = 'h74;
mem['h3CF] = 'h00;
mem['h3D0] = 'h38;
mem['h3D1] = 'h44;
mem['h3D2] = 'h04;
mem['h3D3] = 'h18;
mem['h3D4] = 'h04;
mem['h3D5] = 'h44;
mem['h3D6] = 'h38;
mem['h3D7] = 'h00;
mem['h3D8] = 'h54;
mem['h3D9] = 'h54;
mem['h3DA] = 'h54;
mem['h3DB] = 'h54;
mem['h3DC] = 'h54;
mem['h3DD] = 'h54;
mem['h3DE] = 'h7C;
mem['h3DF] = 'h00;
mem['h3E0] = 'h78;
mem['h3E1] = 'h04;
mem['h3E2] = 'h04;
mem['h3E3] = 'h3C;
mem['h3E4] = 'h04;
mem['h3E5] = 'h04;
mem['h3E6] = 'h78;
mem['h3E7] = 'h00;
mem['h3E8] = 'h54;
mem['h3E9] = 'h54;
mem['h3EA] = 'h54;
mem['h3EB] = 'h54;
mem['h3EC] = 'h54;
mem['h3ED] = 'h54;
mem['h3EE] = 'h7C;
mem['h3EF] = 'h04;
mem['h3F0] = 'h44;
mem['h3F1] = 'h44;
mem['h3F2] = 'h44;
mem['h3F3] = 'h3C;
mem['h3F4] = 'h04;
mem['h3F5] = 'h04;
mem['h3F6] = 'h04;
mem['h3F7] = 'h00;
mem['h3F8] = 'h60;
mem['h3F9] = 'h20;
mem['h3FA] = 'h20;
mem['h3FB] = 'h38;
mem['h3FC] = 'h24;
mem['h3FD] = 'h24;
mem['h3FE] = 'h38;
mem['h3FF] = 'h00;
mem['h400] = 'h00;
mem['h401] = 'h00;
mem['h402] = 'h00;
mem['h403] = 'h00;
mem['h404] = 'h00;
mem['h405] = 'h00;
mem['h406] = 'h00;
mem['h407] = 'h00;
mem['h408] = 'h00;
mem['h409] = 'h00;
mem['h40A] = 'h00;
mem['h40B] = 'h00;
mem['h40C] = 'h00;
mem['h40D] = 'h00;
mem['h40E] = 'h00;
mem['h40F] = 'h00;
mem['h410] = 'h00;
mem['h411] = 'h00;
mem['h412] = 'h00;
mem['h413] = 'h00;
mem['h414] = 'h00;
mem['h415] = 'h00;
mem['h416] = 'h00;
mem['h417] = 'h00;
mem['h418] = 'h00;
mem['h419] = 'h00;
mem['h41A] = 'h00;
mem['h41B] = 'h00;
mem['h41C] = 'h00;
mem['h41D] = 'h00;
mem['h41E] = 'h00;
mem['h41F] = 'h00;
mem['h420] = 'h00;
mem['h421] = 'h00;
mem['h422] = 'h00;
mem['h423] = 'h00;
mem['h424] = 'h00;
mem['h425] = 'h00;
mem['h426] = 'h00;
mem['h427] = 'h00;
mem['h428] = 'h00;
mem['h429] = 'h00;
mem['h42A] = 'h00;
mem['h42B] = 'h00;
mem['h42C] = 'h00;
mem['h42D] = 'h00;
mem['h42E] = 'h00;
mem['h42F] = 'h00;
mem['h430] = 'h00;
mem['h431] = 'h00;
mem['h432] = 'h00;
mem['h433] = 'h00;
mem['h434] = 'h00;
mem['h435] = 'h00;
mem['h436] = 'h00;
mem['h437] = 'h00;
mem['h438] = 'h00;
mem['h439] = 'h00;
mem['h43A] = 'h00;
mem['h43B] = 'h00;
mem['h43C] = 'h00;
mem['h43D] = 'h00;
mem['h43E] = 'h00;
mem['h43F] = 'h00;
mem['h440] = 'h00;
mem['h441] = 'h00;
mem['h442] = 'h00;
mem['h443] = 'h00;
mem['h444] = 'h00;
mem['h445] = 'h00;
mem['h446] = 'h00;
mem['h447] = 'h00;
mem['h448] = 'h00;
mem['h449] = 'h00;
mem['h44A] = 'h00;
mem['h44B] = 'h00;
mem['h44C] = 'h00;
mem['h44D] = 'h00;
mem['h44E] = 'h00;
mem['h44F] = 'h00;
mem['h450] = 'h00;
mem['h451] = 'h00;
mem['h452] = 'h00;
mem['h453] = 'h00;
mem['h454] = 'h00;
mem['h455] = 'h00;
mem['h456] = 'h00;
mem['h457] = 'h00;
mem['h458] = 'h00;
mem['h459] = 'h00;
mem['h45A] = 'h00;
mem['h45B] = 'h00;
mem['h45C] = 'h00;
mem['h45D] = 'h00;
mem['h45E] = 'h00;
mem['h45F] = 'h00;
mem['h460] = 'h00;
mem['h461] = 'h00;
mem['h462] = 'h00;
mem['h463] = 'h00;
mem['h464] = 'h00;
mem['h465] = 'h00;
mem['h466] = 'h00;
mem['h467] = 'h00;
mem['h468] = 'h00;
mem['h469] = 'h00;
mem['h46A] = 'h00;
mem['h46B] = 'h00;
mem['h46C] = 'h00;
mem['h46D] = 'h00;
mem['h46E] = 'h00;
mem['h46F] = 'h00;
mem['h470] = 'h00;
mem['h471] = 'h00;
mem['h472] = 'h00;
mem['h473] = 'h00;
mem['h474] = 'h00;
mem['h475] = 'h00;
mem['h476] = 'h00;
mem['h477] = 'h00;
mem['h478] = 'h00;
mem['h479] = 'h00;
mem['h47A] = 'h00;
mem['h47B] = 'h00;
mem['h47C] = 'h00;
mem['h47D] = 'h00;
mem['h47E] = 'h00;
mem['h47F] = 'h00;
mem['h480] = 'h00;
mem['h481] = 'h00;
mem['h482] = 'h00;
mem['h483] = 'h7C;
mem['h484] = 'h00;
mem['h485] = 'h00;
mem['h486] = 'h00;
mem['h487] = 'h00;
mem['h488] = 'h00;
mem['h489] = 'h00;
mem['h48A] = 'h00;
mem['h48B] = 'h7C;
mem['h48C] = 'h00;
mem['h48D] = 'h00;
mem['h48E] = 'h00;
mem['h48F] = 'h00;
mem['h490] = 'h00;
mem['h491] = 'h00;
mem['h492] = 'h00;
mem['h493] = 'hF0;
mem['h494] = 'h10;
mem['h495] = 'h10;
mem['h496] = 'h10;
mem['h497] = 'h10;
mem['h498] = 'h10;
mem['h499] = 'h10;
mem['h49A] = 'h10;
mem['h49B] = 'h10;
mem['h49C] = 'h10;
mem['h49D] = 'h10;
mem['h49E] = 'h10;
mem['h49F] = 'h10;
mem['h4A0] = 'h3C;
mem['h4A1] = 'h54;
mem['h4A2] = 'h54;
mem['h4A3] = 'h34;
mem['h4A4] = 'h14;
mem['h4A5] = 'h14;
mem['h4A6] = 'h14;
mem['h4A7] = 'h00;
mem['h4A8] = 'h00;
mem['h4A9] = 'h00;
mem['h4AA] = 'h08;
mem['h4AB] = 'hFC;
mem['h4AC] = 'h08;
mem['h4AD] = 'h00;
mem['h4AE] = 'h00;
mem['h4AF] = 'h00;
mem['h4B0] = 'h00;
mem['h4B1] = 'h00;
mem['h4B2] = 'h00;
mem['h4B3] = 'h00;
mem['h4B4] = 'h7C;
mem['h4B5] = 'h7C;
mem['h4B6] = 'h7C;
mem['h4B7] = 'h00;
mem['h4B8] = 'h10;
mem['h4B9] = 'h38;
mem['h4BA] = 'h10;
mem['h4BB] = 'h10;
mem['h4BC] = 'h38;
mem['h4BD] = 'h10;
mem['h4BE] = 'h7C;
mem['h4BF] = 'h00;
mem['h4C0] = 'h00;
mem['h4C1] = 'h10;
mem['h4C2] = 'h38;
mem['h4C3] = 'h10;
mem['h4C4] = 'h10;
mem['h4C5] = 'h10;
mem['h4C6] = 'h10;
mem['h4C7] = 'h10;
mem['h4C8] = 'h10;
mem['h4C9] = 'h10;
mem['h4CA] = 'h10;
mem['h4CB] = 'h10;
mem['h4CC] = 'h10;
mem['h4CD] = 'h38;
mem['h4CE] = 'h10;
mem['h4CF] = 'h00;
mem['h4D0] = 'h00;
mem['h4D1] = 'h00;
mem['h4D2] = 'h08;
mem['h4D3] = 'hFC;
mem['h4D4] = 'h08;
mem['h4D5] = 'h00;
mem['h4D6] = 'h00;
mem['h4D7] = 'h00;
mem['h4D8] = 'h00;
mem['h4D9] = 'h00;
mem['h4DA] = 'h00;
mem['h4DB] = 'h7C;
mem['h4DC] = 'h00;
mem['h4DD] = 'h00;
mem['h4DE] = 'h00;
mem['h4DF] = 'h00;
mem['h4E0] = 'h10;
mem['h4E1] = 'h10;
mem['h4E2] = 'h10;
mem['h4E3] = 'h10;
mem['h4E4] = 'h10;
mem['h4E5] = 'h10;
mem['h4E6] = 'h10;
mem['h4E7] = 'h10;
mem['h4E8] = 'h40;
mem['h4E9] = 'h40;
mem['h4EA] = 'h40;
mem['h4EB] = 'h40;
mem['h4EC] = 'h40;
mem['h4ED] = 'h40;
mem['h4EE] = 'h7C;
mem['h4EF] = 'h00;
mem['h4F0] = 'h00;
mem['h4F1] = 'h00;
mem['h4F2] = 'h00;
mem['h4F3] = 'h7C;
mem['h4F4] = 'h00;
mem['h4F5] = 'h00;
mem['h4F6] = 'h00;
mem['h4F7] = 'h00;
mem['h4F8] = 'h00;
mem['h4F9] = 'h00;
mem['h4FA] = 'h00;
mem['h4FB] = 'h7C;
mem['h4FC] = 'h00;
mem['h4FD] = 'h00;
mem['h4FE] = 'h00;
mem['h4FF] = 'h00;
mem['h500] = 'h00;
mem['h501] = 'h00;
mem['h502] = 'h00;
mem['h503] = 'h00;
mem['h504] = 'h00;
mem['h505] = 'h00;
mem['h506] = 'h00;
mem['h507] = 'h00;
mem['h508] = 'h10;
mem['h509] = 'h10;
mem['h50A] = 'h10;
mem['h50B] = 'h10;
mem['h50C] = 'h10;
mem['h50D] = 'h00;
mem['h50E] = 'h10;
mem['h50F] = 'h00;
mem['h510] = 'h28;
mem['h511] = 'h28;
mem['h512] = 'h28;
mem['h513] = 'h00;
mem['h514] = 'h00;
mem['h515] = 'h00;
mem['h516] = 'h00;
mem['h517] = 'h00;
mem['h518] = 'h28;
mem['h519] = 'h28;
mem['h51A] = 'h7C;
mem['h51B] = 'h28;
mem['h51C] = 'h7C;
mem['h51D] = 'h28;
mem['h51E] = 'h28;
mem['h51F] = 'h00;
mem['h520] = 'h44;
mem['h521] = 'h38;
mem['h522] = 'h44;
mem['h523] = 'h44;
mem['h524] = 'h44;
mem['h525] = 'h38;
mem['h526] = 'h44;
mem['h527] = 'h00;
mem['h528] = 'h60;
mem['h529] = 'h64;
mem['h52A] = 'h08;
mem['h52B] = 'h10;
mem['h52C] = 'h20;
mem['h52D] = 'h4C;
mem['h52E] = 'h0C;
mem['h52F] = 'h00;
mem['h530] = 'h20;
mem['h531] = 'h50;
mem['h532] = 'h50;
mem['h533] = 'h20;
mem['h534] = 'h54;
mem['h535] = 'h48;
mem['h536] = 'h34;
mem['h537] = 'h00;
mem['h538] = 'h10;
mem['h539] = 'h10;
mem['h53A] = 'h10;
mem['h53B] = 'h00;
mem['h53C] = 'h00;
mem['h53D] = 'h00;
mem['h53E] = 'h00;
mem['h53F] = 'h00;
mem['h540] = 'h08;
mem['h541] = 'h10;
mem['h542] = 'h20;
mem['h543] = 'h20;
mem['h544] = 'h20;
mem['h545] = 'h10;
mem['h546] = 'h08;
mem['h547] = 'h00;
mem['h548] = 'h20;
mem['h549] = 'h10;
mem['h54A] = 'h08;
mem['h54B] = 'h08;
mem['h54C] = 'h08;
mem['h54D] = 'h10;
mem['h54E] = 'h20;
mem['h54F] = 'h00;
mem['h550] = 'h10;
mem['h551] = 'h54;
mem['h552] = 'h38;
mem['h553] = 'h10;
mem['h554] = 'h38;
mem['h555] = 'h54;
mem['h556] = 'h10;
mem['h557] = 'h00;
mem['h558] = 'h00;
mem['h559] = 'h10;
mem['h55A] = 'h10;
mem['h55B] = 'h7C;
mem['h55C] = 'h10;
mem['h55D] = 'h10;
mem['h55E] = 'h00;
mem['h55F] = 'h00;
mem['h560] = 'h00;
mem['h561] = 'h00;
mem['h562] = 'h00;
mem['h563] = 'h30;
mem['h564] = 'h30;
mem['h565] = 'h10;
mem['h566] = 'h20;
mem['h567] = 'h00;
mem['h568] = 'h00;
mem['h569] = 'h00;
mem['h56A] = 'h00;
mem['h56B] = 'h7C;
mem['h56C] = 'h00;
mem['h56D] = 'h00;
mem['h56E] = 'h00;
mem['h56F] = 'h00;
mem['h570] = 'h00;
mem['h571] = 'h00;
mem['h572] = 'h00;
mem['h573] = 'h00;
mem['h574] = 'h00;
mem['h575] = 'h30;
mem['h576] = 'h30;
mem['h577] = 'h00;
mem['h578] = 'h00;
mem['h579] = 'h04;
mem['h57A] = 'h08;
mem['h57B] = 'h10;
mem['h57C] = 'h20;
mem['h57D] = 'h40;
mem['h57E] = 'h00;
mem['h57F] = 'h00;
mem['h580] = 'h38;
mem['h581] = 'h44;
mem['h582] = 'h4C;
mem['h583] = 'h54;
mem['h584] = 'h64;
mem['h585] = 'h44;
mem['h586] = 'h38;
mem['h587] = 'h00;
mem['h588] = 'h10;
mem['h589] = 'h30;
mem['h58A] = 'h10;
mem['h58B] = 'h10;
mem['h58C] = 'h10;
mem['h58D] = 'h10;
mem['h58E] = 'h38;
mem['h58F] = 'h00;
mem['h590] = 'h38;
mem['h591] = 'h44;
mem['h592] = 'h04;
mem['h593] = 'h08;
mem['h594] = 'h10;
mem['h595] = 'h20;
mem['h596] = 'h7C;
mem['h597] = 'h00;
mem['h598] = 'h7C;
mem['h599] = 'h04;
mem['h59A] = 'h08;
mem['h59B] = 'h18;
mem['h59C] = 'h04;
mem['h59D] = 'h44;
mem['h59E] = 'h38;
mem['h59F] = 'h00;
mem['h5A0] = 'h08;
mem['h5A1] = 'h18;
mem['h5A2] = 'h28;
mem['h5A3] = 'h48;
mem['h5A4] = 'h7C;
mem['h5A5] = 'h08;
mem['h5A6] = 'h08;
mem['h5A7] = 'h00;
mem['h5A8] = 'h7C;
mem['h5A9] = 'h40;
mem['h5AA] = 'h78;
mem['h5AB] = 'h04;
mem['h5AC] = 'h04;
mem['h5AD] = 'h44;
mem['h5AE] = 'h38;
mem['h5AF] = 'h00;
mem['h5B0] = 'h1C;
mem['h5B1] = 'h20;
mem['h5B2] = 'h40;
mem['h5B3] = 'h78;
mem['h5B4] = 'h44;
mem['h5B5] = 'h44;
mem['h5B6] = 'h38;
mem['h5B7] = 'h00;
mem['h5B8] = 'h7C;
mem['h5B9] = 'h04;
mem['h5BA] = 'h08;
mem['h5BB] = 'h10;
mem['h5BC] = 'h20;
mem['h5BD] = 'h20;
mem['h5BE] = 'h20;
mem['h5BF] = 'h00;
mem['h5C0] = 'h38;
mem['h5C1] = 'h44;
mem['h5C2] = 'h44;
mem['h5C3] = 'h38;
mem['h5C4] = 'h44;
mem['h5C5] = 'h44;
mem['h5C6] = 'h38;
mem['h5C7] = 'h00;
mem['h5C8] = 'h38;
mem['h5C9] = 'h44;
mem['h5CA] = 'h44;
mem['h5CB] = 'h3C;
mem['h5CC] = 'h04;
mem['h5CD] = 'h08;
mem['h5CE] = 'h70;
mem['h5CF] = 'h00;
mem['h5D0] = 'h00;
mem['h5D1] = 'h00;
mem['h5D2] = 'h18;
mem['h5D3] = 'h18;
mem['h5D4] = 'h00;
mem['h5D5] = 'h18;
mem['h5D6] = 'h18;
mem['h5D7] = 'h00;
mem['h5D8] = 'h18;
mem['h5D9] = 'h18;
mem['h5DA] = 'h00;
mem['h5DB] = 'h18;
mem['h5DC] = 'h18;
mem['h5DD] = 'h08;
mem['h5DE] = 'h10;
mem['h5DF] = 'h00;
mem['h5E0] = 'h04;
mem['h5E1] = 'h08;
mem['h5E2] = 'h10;
mem['h5E3] = 'h20;
mem['h5E4] = 'h10;
mem['h5E5] = 'h08;
mem['h5E6] = 'h04;
mem['h5E7] = 'h00;
mem['h5E8] = 'h00;
mem['h5E9] = 'h00;
mem['h5EA] = 'h7C;
mem['h5EB] = 'h00;
mem['h5EC] = 'h7C;
mem['h5ED] = 'h00;
mem['h5EE] = 'h00;
mem['h5EF] = 'h00;
mem['h5F0] = 'h20;
mem['h5F1] = 'h10;
mem['h5F2] = 'h08;
mem['h5F3] = 'h04;
mem['h5F4] = 'h08;
mem['h5F5] = 'h10;
mem['h5F6] = 'h20;
mem['h5F7] = 'h00;
mem['h5F8] = 'h38;
mem['h5F9] = 'h44;
mem['h5FA] = 'h08;
mem['h5FB] = 'h10;
mem['h5FC] = 'h10;
mem['h5FD] = 'h00;
mem['h5FE] = 'h10;
mem['h5FF] = 'h00;
mem['h600] = 'h38;
mem['h601] = 'h44;
mem['h602] = 'h5C;
mem['h603] = 'h54;
mem['h604] = 'h5C;
mem['h605] = 'h40;
mem['h606] = 'h3C;
mem['h607] = 'h00;
mem['h608] = 'h10;
mem['h609] = 'h28;
mem['h60A] = 'h44;
mem['h60B] = 'h44;
mem['h60C] = 'h7C;
mem['h60D] = 'h44;
mem['h60E] = 'h44;
mem['h60F] = 'h00;
mem['h610] = 'h78;
mem['h611] = 'h44;
mem['h612] = 'h44;
mem['h613] = 'h78;
mem['h614] = 'h44;
mem['h615] = 'h44;
mem['h616] = 'h78;
mem['h617] = 'h00;
mem['h618] = 'h38;
mem['h619] = 'h44;
mem['h61A] = 'h40;
mem['h61B] = 'h40;
mem['h61C] = 'h40;
mem['h61D] = 'h44;
mem['h61E] = 'h38;
mem['h61F] = 'h00;
mem['h620] = 'h78;
mem['h621] = 'h44;
mem['h622] = 'h44;
mem['h623] = 'h44;
mem['h624] = 'h44;
mem['h625] = 'h44;
mem['h626] = 'h78;
mem['h627] = 'h00;
mem['h628] = 'h7C;
mem['h629] = 'h40;
mem['h62A] = 'h40;
mem['h62B] = 'h78;
mem['h62C] = 'h40;
mem['h62D] = 'h40;
mem['h62E] = 'h7C;
mem['h62F] = 'h00;
mem['h630] = 'h7C;
mem['h631] = 'h40;
mem['h632] = 'h40;
mem['h633] = 'h78;
mem['h634] = 'h40;
mem['h635] = 'h40;
mem['h636] = 'h40;
mem['h637] = 'h00;
mem['h638] = 'h3C;
mem['h639] = 'h40;
mem['h63A] = 'h40;
mem['h63B] = 'h40;
mem['h63C] = 'h4C;
mem['h63D] = 'h44;
mem['h63E] = 'h3C;
mem['h63F] = 'h00;
mem['h640] = 'h44;
mem['h641] = 'h44;
mem['h642] = 'h44;
mem['h643] = 'h7C;
mem['h644] = 'h44;
mem['h645] = 'h44;
mem['h646] = 'h44;
mem['h647] = 'h00;
mem['h648] = 'h38;
mem['h649] = 'h10;
mem['h64A] = 'h10;
mem['h64B] = 'h10;
mem['h64C] = 'h10;
mem['h64D] = 'h10;
mem['h64E] = 'h38;
mem['h64F] = 'h00;
mem['h650] = 'h04;
mem['h651] = 'h04;
mem['h652] = 'h04;
mem['h653] = 'h04;
mem['h654] = 'h04;
mem['h655] = 'h44;
mem['h656] = 'h38;
mem['h657] = 'h00;
mem['h658] = 'h44;
mem['h659] = 'h48;
mem['h65A] = 'h50;
mem['h65B] = 'h60;
mem['h65C] = 'h50;
mem['h65D] = 'h48;
mem['h65E] = 'h44;
mem['h65F] = 'h00;
mem['h660] = 'h40;
mem['h661] = 'h40;
mem['h662] = 'h40;
mem['h663] = 'h40;
mem['h664] = 'h40;
mem['h665] = 'h40;
mem['h666] = 'h7C;
mem['h667] = 'h00;
mem['h668] = 'h44;
mem['h669] = 'h6C;
mem['h66A] = 'h54;
mem['h66B] = 'h54;
mem['h66C] = 'h44;
mem['h66D] = 'h44;
mem['h66E] = 'h44;
mem['h66F] = 'h00;
mem['h670] = 'h44;
mem['h671] = 'h44;
mem['h672] = 'h64;
mem['h673] = 'h54;
mem['h674] = 'h4C;
mem['h675] = 'h44;
mem['h676] = 'h44;
mem['h677] = 'h00;
mem['h678] = 'h38;
mem['h679] = 'h44;
mem['h67A] = 'h44;
mem['h67B] = 'h44;
mem['h67C] = 'h44;
mem['h67D] = 'h44;
mem['h67E] = 'h38;
mem['h67F] = 'h00;
mem['h680] = 'h78;
mem['h681] = 'h44;
mem['h682] = 'h44;
mem['h683] = 'h78;
mem['h684] = 'h40;
mem['h685] = 'h40;
mem['h686] = 'h40;
mem['h687] = 'h00;
mem['h688] = 'h38;
mem['h689] = 'h44;
mem['h68A] = 'h44;
mem['h68B] = 'h44;
mem['h68C] = 'h54;
mem['h68D] = 'h48;
mem['h68E] = 'h34;
mem['h68F] = 'h00;
mem['h690] = 'h78;
mem['h691] = 'h44;
mem['h692] = 'h44;
mem['h693] = 'h78;
mem['h694] = 'h50;
mem['h695] = 'h48;
mem['h696] = 'h44;
mem['h697] = 'h00;
mem['h698] = 'h38;
mem['h699] = 'h44;
mem['h69A] = 'h40;
mem['h69B] = 'h38;
mem['h69C] = 'h04;
mem['h69D] = 'h44;
mem['h69E] = 'h38;
mem['h69F] = 'h00;
mem['h6A0] = 'h7C;
mem['h6A1] = 'h10;
mem['h6A2] = 'h10;
mem['h6A3] = 'h10;
mem['h6A4] = 'h10;
mem['h6A5] = 'h10;
mem['h6A6] = 'h10;
mem['h6A7] = 'h00;
mem['h6A8] = 'h44;
mem['h6A9] = 'h44;
mem['h6AA] = 'h44;
mem['h6AB] = 'h44;
mem['h6AC] = 'h44;
mem['h6AD] = 'h44;
mem['h6AE] = 'h38;
mem['h6AF] = 'h00;
mem['h6B0] = 'h44;
mem['h6B1] = 'h44;
mem['h6B2] = 'h44;
mem['h6B3] = 'h44;
mem['h6B4] = 'h44;
mem['h6B5] = 'h28;
mem['h6B6] = 'h10;
mem['h6B7] = 'h00;
mem['h6B8] = 'h44;
mem['h6B9] = 'h44;
mem['h6BA] = 'h44;
mem['h6BB] = 'h54;
mem['h6BC] = 'h54;
mem['h6BD] = 'h6C;
mem['h6BE] = 'h44;
mem['h6BF] = 'h00;
mem['h6C0] = 'h44;
mem['h6C1] = 'h44;
mem['h6C2] = 'h28;
mem['h6C3] = 'h10;
mem['h6C4] = 'h28;
mem['h6C5] = 'h44;
mem['h6C6] = 'h44;
mem['h6C7] = 'h00;
mem['h6C8] = 'h44;
mem['h6C9] = 'h44;
mem['h6CA] = 'h28;
mem['h6CB] = 'h10;
mem['h6CC] = 'h10;
mem['h6CD] = 'h10;
mem['h6CE] = 'h10;
mem['h6CF] = 'h00;
mem['h6D0] = 'h7C;
mem['h6D1] = 'h04;
mem['h6D2] = 'h08;
mem['h6D3] = 'h10;
mem['h6D4] = 'h20;
mem['h6D5] = 'h40;
mem['h6D6] = 'h7C;
mem['h6D7] = 'h00;
mem['h6D8] = 'h7C;
mem['h6D9] = 'h60;
mem['h6DA] = 'h60;
mem['h6DB] = 'h60;
mem['h6DC] = 'h60;
mem['h6DD] = 'h60;
mem['h6DE] = 'h7C;
mem['h6DF] = 'h00;
mem['h6E0] = 'h00;
mem['h6E1] = 'h40;
mem['h6E2] = 'h20;
mem['h6E3] = 'h10;
mem['h6E4] = 'h08;
mem['h6E5] = 'h04;
mem['h6E6] = 'h00;
mem['h6E7] = 'h00;
mem['h6E8] = 'h7C;
mem['h6E9] = 'h0C;
mem['h6EA] = 'h0C;
mem['h6EB] = 'h0C;
mem['h6EC] = 'h0C;
mem['h6ED] = 'h0C;
mem['h6EE] = 'h7C;
mem['h6EF] = 'h00;
mem['h6F0] = 'h00;
mem['h6F1] = 'h10;
mem['h6F2] = 'h28;
mem['h6F3] = 'h44;
mem['h6F4] = 'h00;
mem['h6F5] = 'h00;
mem['h6F6] = 'h00;
mem['h6F7] = 'h00;
mem['h6F8] = 'h00;
mem['h6F9] = 'h00;
mem['h6FA] = 'h00;
mem['h6FB] = 'h00;
mem['h6FC] = 'h00;
mem['h6FD] = 'h00;
mem['h6FE] = 'h00;
mem['h6FF] = 'hFF;
mem['h700] = 'h5C;
mem['h701] = 'h54;
mem['h702] = 'h54;
mem['h703] = 'h74;
mem['h704] = 'h54;
mem['h705] = 'h54;
mem['h706] = 'h5C;
mem['h707] = 'h00;
mem['h708] = 'h38;
mem['h709] = 'h44;
mem['h70A] = 'h44;
mem['h70B] = 'h44;
mem['h70C] = 'h7C;
mem['h70D] = 'h44;
mem['h70E] = 'h44;
mem['h70F] = 'h00;
mem['h710] = 'h7C;
mem['h711] = 'h40;
mem['h712] = 'h40;
mem['h713] = 'h78;
mem['h714] = 'h44;
mem['h715] = 'h44;
mem['h716] = 'h78;
mem['h717] = 'h00;
mem['h718] = 'h48;
mem['h719] = 'h48;
mem['h71A] = 'h48;
mem['h71B] = 'h48;
mem['h71C] = 'h48;
mem['h71D] = 'h48;
mem['h71E] = 'h7C;
mem['h71F] = 'h04;
mem['h720] = 'h1C;
mem['h721] = 'h24;
mem['h722] = 'h24;
mem['h723] = 'h24;
mem['h724] = 'h24;
mem['h725] = 'h24;
mem['h726] = 'h7E;
mem['h727] = 'h42;
mem['h728] = 'h7C;
mem['h729] = 'h40;
mem['h72A] = 'h40;
mem['h72B] = 'h78;
mem['h72C] = 'h40;
mem['h72D] = 'h40;
mem['h72E] = 'h7C;
mem['h72F] = 'h00;
mem['h730] = 'h38;
mem['h731] = 'h54;
mem['h732] = 'h54;
mem['h733] = 'h54;
mem['h734] = 'h38;
mem['h735] = 'h10;
mem['h736] = 'h10;
mem['h737] = 'h00;
mem['h738] = 'h7C;
mem['h739] = 'h40;
mem['h73A] = 'h40;
mem['h73B] = 'h40;
mem['h73C] = 'h40;
mem['h73D] = 'h40;
mem['h73E] = 'h40;
mem['h73F] = 'h00;
mem['h740] = 'h44;
mem['h741] = 'h44;
mem['h742] = 'h28;
mem['h743] = 'h10;
mem['h744] = 'h28;
mem['h745] = 'h44;
mem['h746] = 'h44;
mem['h747] = 'h00;
mem['h748] = 'h44;
mem['h749] = 'h44;
mem['h74A] = 'h44;
mem['h74B] = 'h4C;
mem['h74C] = 'h54;
mem['h74D] = 'h64;
mem['h74E] = 'h44;
mem['h74F] = 'h00;
mem['h750] = 'h54;
mem['h751] = 'h54;
mem['h752] = 'h44;
mem['h753] = 'h4C;
mem['h754] = 'h54;
mem['h755] = 'h64;
mem['h756] = 'h44;
mem['h757] = 'h00;
mem['h758] = 'h44;
mem['h759] = 'h48;
mem['h75A] = 'h50;
mem['h75B] = 'h60;
mem['h75C] = 'h50;
mem['h75D] = 'h48;
mem['h75E] = 'h44;
mem['h75F] = 'h00;
mem['h760] = 'h0C;
mem['h761] = 'h14;
mem['h762] = 'h24;
mem['h763] = 'h24;
mem['h764] = 'h24;
mem['h765] = 'h24;
mem['h766] = 'h44;
mem['h767] = 'h00;
mem['h768] = 'h44;
mem['h769] = 'h6C;
mem['h76A] = 'h54;
mem['h76B] = 'h54;
mem['h76C] = 'h44;
mem['h76D] = 'h44;
mem['h76E] = 'h44;
mem['h76F] = 'h00;
mem['h770] = 'h44;
mem['h771] = 'h44;
mem['h772] = 'h44;
mem['h773] = 'h7C;
mem['h774] = 'h44;
mem['h775] = 'h44;
mem['h776] = 'h44;
mem['h777] = 'h00;
mem['h778] = 'h38;
mem['h779] = 'h44;
mem['h77A] = 'h44;
mem['h77B] = 'h44;
mem['h77C] = 'h44;
mem['h77D] = 'h44;
mem['h77E] = 'h38;
mem['h77F] = 'h00;
mem['h780] = 'h7C;
mem['h781] = 'h44;
mem['h782] = 'h44;
mem['h783] = 'h44;
mem['h784] = 'h44;
mem['h785] = 'h44;
mem['h786] = 'h44;
mem['h787] = 'h00;
mem['h788] = 'h3C;
mem['h789] = 'h44;
mem['h78A] = 'h44;
mem['h78B] = 'h3C;
mem['h78C] = 'h14;
mem['h78D] = 'h24;
mem['h78E] = 'h44;
mem['h78F] = 'h00;
mem['h790] = 'h78;
mem['h791] = 'h44;
mem['h792] = 'h44;
mem['h793] = 'h78;
mem['h794] = 'h40;
mem['h795] = 'h40;
mem['h796] = 'h40;
mem['h797] = 'h00;
mem['h798] = 'h38;
mem['h799] = 'h44;
mem['h79A] = 'h40;
mem['h79B] = 'h40;
mem['h79C] = 'h40;
mem['h79D] = 'h44;
mem['h79E] = 'h38;
mem['h79F] = 'h00;
mem['h7A0] = 'h7C;
mem['h7A1] = 'h10;
mem['h7A2] = 'h10;
mem['h7A3] = 'h10;
mem['h7A4] = 'h10;
mem['h7A5] = 'h10;
mem['h7A6] = 'h10;
mem['h7A7] = 'h00;
mem['h7A8] = 'h44;
mem['h7A9] = 'h44;
mem['h7AA] = 'h44;
mem['h7AB] = 'h3C;
mem['h7AC] = 'h04;
mem['h7AD] = 'h44;
mem['h7AE] = 'h38;
mem['h7AF] = 'h00;
mem['h7B0] = 'h54;
mem['h7B1] = 'h54;
mem['h7B2] = 'h54;
mem['h7B3] = 'h38;
mem['h7B4] = 'h54;
mem['h7B5] = 'h54;
mem['h7B6] = 'h54;
mem['h7B7] = 'h00;
mem['h7B8] = 'h78;
mem['h7B9] = 'h44;
mem['h7BA] = 'h44;
mem['h7BB] = 'h78;
mem['h7BC] = 'h44;
mem['h7BD] = 'h44;
mem['h7BE] = 'h78;
mem['h7BF] = 'h00;
mem['h7C0] = 'h40;
mem['h7C1] = 'h40;
mem['h7C2] = 'h40;
mem['h7C3] = 'h78;
mem['h7C4] = 'h44;
mem['h7C5] = 'h44;
mem['h7C6] = 'h78;
mem['h7C7] = 'h00;
mem['h7C8] = 'h44;
mem['h7C9] = 'h44;
mem['h7CA] = 'h44;
mem['h7CB] = 'h74;
mem['h7CC] = 'h54;
mem['h7CD] = 'h54;
mem['h7CE] = 'h74;
mem['h7CF] = 'h00;
mem['h7D0] = 'h38;
mem['h7D1] = 'h44;
mem['h7D2] = 'h04;
mem['h7D3] = 'h18;
mem['h7D4] = 'h04;
mem['h7D5] = 'h44;
mem['h7D6] = 'h38;
mem['h7D7] = 'h00;
mem['h7D8] = 'h54;
mem['h7D9] = 'h54;
mem['h7DA] = 'h54;
mem['h7DB] = 'h54;
mem['h7DC] = 'h54;
mem['h7DD] = 'h54;
mem['h7DE] = 'h7C;
mem['h7DF] = 'h00;
mem['h7E0] = 'h78;
mem['h7E1] = 'h04;
mem['h7E2] = 'h04;
mem['h7E3] = 'h3C;
mem['h7E4] = 'h04;
mem['h7E5] = 'h04;
mem['h7E6] = 'h78;
mem['h7E7] = 'h00;
mem['h7E8] = 'h54;
mem['h7E9] = 'h54;
mem['h7EA] = 'h54;
mem['h7EB] = 'h54;
mem['h7EC] = 'h54;
mem['h7ED] = 'h54;
mem['h7EE] = 'h7C;
mem['h7EF] = 'h04;
mem['h7F0] = 'h44;
mem['h7F1] = 'h44;
mem['h7F2] = 'h44;
mem['h7F3] = 'h3C;
mem['h7F4] = 'h04;
mem['h7F5] = 'h04;
mem['h7F6] = 'h04;
mem['h7F7] = 'h00;
mem['h7F8] = 'h60;
mem['h7F9] = 'h20;
mem['h7FA] = 'h20;
mem['h7FB] = 'h38;
mem['h7FC] = 'h24;
mem['h7FD] = 'h24;
mem['h7FE] = 'h38;
mem['h7FF] = 'h00;
/fighter/ag_ram.v
0,0 → 1,253
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: BMSTU
// Engineer: Odintsov Oleg
//
// Create Date: 11:15:41 02/24/2012
// Design Name:
// Module Name: ag_ram
// Project Name: Agat Hardware Project
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
 
// Enable the following define to use synchronous memory instead of
// asynchronous (which has been used in real Agats).
// The use of the synchronous memory will improve hardware design on FPGA
`define AG_RAM_SYNCHRONOUS
 
 
`ifdef AG_RAM_SYNCHRONOUS
 
module RAM16Kx1(input CLK1, input[13:0] AB1, input CS1, input READ,
output DO1, input DI1,
input CLK2, input[13:0] AB2, input CS2, output DO2);
parameter
D_00 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_01 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_02 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_03 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_04 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_05 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_06 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_07 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_08 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_09 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_0A = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_0B = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_0C = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_0D = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_0E = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_0F = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
// Address 4096 to 8191
D_10 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_11 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_12 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_13 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_14 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_15 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_16 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_17 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_18 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_19 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_1A = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_1B = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_1C = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_1D = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_1E = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_1F = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
// Address 8192 to 12287
D_20 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_21 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_22 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_23 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_24 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_25 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_26 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_27 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_28 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_29 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_2A = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_2B = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_2C = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_2D = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_2E = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_2F = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
// Address 12288 to 16383
D_30 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_31 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_32 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_33 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_34 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_35 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_36 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_37 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_38 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_39 = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_3A = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_3B = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_3C = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_3D = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_3E = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,
D_3F = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC;
wire DO1x, DO2x;
assign DO1 = CS1? DO1x: 1'bZ;
assign DO2 = CS2? DO2x: 1'bZ;
// RAMB16_S1_S1: 16k x 1 Dual-Port RAM
// Spartan-3E
// Xilinx HDL Language Template, version 13.3
 
RAMB16_S1_S1 #(
.INIT_A(1'b0), // Value of output RAM registers on Port A at startup
.INIT_B(1'b0), // Value of output RAM registers on Port B at startup
.SRVAL_A(1'b0), // Port A output value upon SSR assertion
.SRVAL_B(1'b0), // Port B output value upon SSR assertion
.WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.WRITE_MODE_B("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE
.SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL"
 
// The following INIT_xx declarations specify the initial contents of the RAM
// Address 0 to 4095
.INIT_00(D_00), .INIT_01(D_01), .INIT_02(D_02), .INIT_03(D_03),
.INIT_04(D_04), .INIT_05(D_05), .INIT_06(D_06), .INIT_07(D_07),
.INIT_08(D_08), .INIT_09(D_09), .INIT_0A(D_0A), .INIT_0B(D_0B),
.INIT_0C(D_0C), .INIT_0D(D_0D), .INIT_0E(D_0E), .INIT_0F(D_0F),
// Address 4096 to 8191
.INIT_10(D_10), .INIT_11(D_11), .INIT_12(D_12), .INIT_13(D_13),
.INIT_14(D_14), .INIT_15(D_15), .INIT_16(D_16), .INIT_17(D_17),
.INIT_18(D_18), .INIT_19(D_19), .INIT_1A(D_1A), .INIT_1B(D_1B),
.INIT_1C(D_1C), .INIT_1D(D_1D), .INIT_1E(D_1E), .INIT_1F(D_1F),
// Address 8192 to 12287
.INIT_20(D_20), .INIT_21(D_21), .INIT_22(D_22), .INIT_23(D_23),
.INIT_24(D_24), .INIT_25(D_25), .INIT_26(D_26), .INIT_27(D_27),
.INIT_28(D_28), .INIT_29(D_29), .INIT_2A(D_2A), .INIT_2B(D_2B),
.INIT_2C(D_2C), .INIT_2D(D_2D), .INIT_2E(D_2E), .INIT_2F(D_2F),
// Address 12288 to 16383
.INIT_30(D_30), .INIT_31(D_31), .INIT_32(D_32), .INIT_33(D_33),
.INIT_34(D_34), .INIT_35(D_35), .INIT_36(D_36), .INIT_37(D_37),
.INIT_38(D_38), .INIT_39(D_39), .INIT_3A(D_3A), .INIT_3B(D_3B),
.INIT_3C(D_3C), .INIT_3D(D_3D), .INIT_3E(D_3E), .INIT_3F(D_3F)
) RAMB16_S1_S1_inst (
.DOA(DO1x), // Port A 1-bit Data Output
.DOB(DO2x), // Port B 1-bit Data Output
.ADDRA(AB1), // Port A 14-bit Address Input
.ADDRB(AB2), // Port B 14-bit Address Input
.CLKA(CLK1), // Port A Clock
.CLKB(CLK2), // Port B Clock
.DIA(DI1), // Port A 1-bit Data Input
.DIB(1'bZ), // Port B 1-bit Data Input
.ENA(CS1), // Port A RAM Enable Input
.ENB(CS2), // Port B RAM Enable Input
.SSRA(1'b0), // Port A Synchronous Set/Reset Input
.SSRB(1'b0), // Port B Synchronous Set/Reset Input
.WEA(~READ), // Port A Write Enable Input
.WEB(1'b0) // Port B Write Enable Input
);
endmodule
 
 
`else
 
 
module RAM1Kx1(input CLK1, input[9:0] AB1, input CS1, input READ,
output DO1, input DI1,
input CLK2, input[9:0] AB2, input CS2, output DO2);
parameter FILL = 256'h33333333333333333333333333333333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC;
reg mem[0:'h3FF];
integer i;
 
initial
for (i = 0; i < 'h400; i = i + 1)
mem[i] = (FILL&(256'b01<<(i&'hFF)))?1'b1:1'b0;
 
assign DO1 = (CS1 && READ)? mem[AB1]: 1'bZ;
assign DO2 = CS2? mem[AB2]: 1'bZ;
always @(posedge CLK1) if (CS1 && !READ) mem[AB1] <= DI1;
endmodule
 
 
 
module RAM16Kx1(input CLK1, input[13:0] AB1, input CS1, input READ,
output DO1, input DI1,
input CLK2, input[13:0] AB2, input CS2, output DO2);
wire[3:0] SEL1 = AB1[13:10];
wire[3:0] SEL2 = AB2[13:10];
 
RAM1Kx1 ram0(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h0), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h0), DO2);
RAM1Kx1 ram1(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h1), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h1), DO2);
RAM1Kx1 ram2(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h2), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h2), DO2);
RAM1Kx1 ram3(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h3), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h3), DO2);
RAM1Kx1 ram4(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h4), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h4), DO2);
RAM1Kx1 ram5(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h5), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h5), DO2);
RAM1Kx1 ram6(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h6), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h6), DO2);
RAM1Kx1 ram7(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h7), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h7), DO2);
RAM1Kx1 ram8(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h8), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h8), DO2);
RAM1Kx1 ram9(CLK1, AB1[9:0], CS1 && (SEL1 == 4'h9), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'h9), DO2);
RAM1Kx1 ramA(CLK1, AB1[9:0], CS1 && (SEL1 == 4'hA), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'hA), DO2);
RAM1Kx1 ramB(CLK1, AB1[9:0], CS1 && (SEL1 == 4'hB), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'hB), DO2);
RAM1Kx1 ramC(CLK1, AB1[9:0], CS1 && (SEL1 == 4'hC), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'hC), DO2);
RAM1Kx1 ramD(CLK1, AB1[9:0], CS1 && (SEL1 == 4'hD), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'hD), DO2);
RAM1Kx1 ramE(CLK1, AB1[9:0], CS1 && (SEL1 == 4'hE), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'hE), DO2);
RAM1Kx1 ramF(CLK1, AB1[9:0], CS1 && (SEL1 == 4'hF), READ, DO1, DI1,
CLK2, AB2[9:0], CS2 && (SEL2 == 4'hF), DO2);
endmodule
 
`endif // synchronous
 
 
/*
Data bus for video controller:
A0=0, DO2: A0=1, DO2:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Data bus for processor:
A0=0, DO1/DI1: A0=1, DO1/DI1:
07 06 05 04 03 02 01 00 07 06 05 04 03 02 01 00
*/
module RAM32Kx8x16(input CLK1, input[14:0] AB1, input CS1,
input READ, output[7:0] DO1, input[7:0] DI1,
input CLK2, input[13:0] AB2, input CS2, output[15:0] DO2);
wire[1:0] CSM = {(~AB1[0]) & CS1, AB1[0] & CS1}; // CS for modules
wire[13:0] AB1x = AB1[14:1];
`include "fighter.v"
/* RAM16Kx1 ram0(CLK1, AB1x, CSM[0], READ, DO1[0], DI1[0], CLK2, AB2, CS2, DO2[0]);
RAM16Kx1 ram1(CLK1, AB1x, CSM[0], READ, DO1[1], DI1[1], CLK2, AB2, CS2, DO2[1]);
RAM16Kx1 ram2(CLK1, AB1x, CSM[0], READ, DO1[2], DI1[2], CLK2, AB2, CS2, DO2[2]);
RAM16Kx1 ram3(CLK1, AB1x, CSM[0], READ, DO1[3], DI1[3], CLK2, AB2, CS2, DO2[3]);
RAM16Kx1 ram4(CLK1, AB1x, CSM[0], READ, DO1[4], DI1[4], CLK2, AB2, CS2, DO2[4]);
RAM16Kx1 ram5(CLK1, AB1x, CSM[0], READ, DO1[5], DI1[5], CLK2, AB2, CS2, DO2[5]);
RAM16Kx1 ram6(CLK1, AB1x, CSM[0], READ, DO1[6], DI1[6], CLK2, AB2, CS2, DO2[6]);
RAM16Kx1 ram7(CLK1, AB1x, CSM[0], READ, DO1[7], DI1[7], CLK2, AB2, CS2, DO2[7]);
RAM16Kx1 ram8(CLK1, AB1x, CSM[1], READ, DO1[0], DI1[0], CLK2, AB2, CS2, DO2[8]);
RAM16Kx1 ram9(CLK1, AB1x, CSM[1], READ, DO1[1], DI1[1], CLK2, AB2, CS2, DO2[9]);
RAM16Kx1 ramA(CLK1, AB1x, CSM[1], READ, DO1[2], DI1[2], CLK2, AB2, CS2, DO2[10]);
RAM16Kx1 ramB(CLK1, AB1x, CSM[1], READ, DO1[3], DI1[3], CLK2, AB2, CS2, DO2[11]);
RAM16Kx1 ramC(CLK1, AB1x, CSM[1], READ, DO1[4], DI1[4], CLK2, AB2, CS2, DO2[12]);
RAM16Kx1 ramD(CLK1, AB1x, CSM[1], READ, DO1[5], DI1[5], CLK2, AB2, CS2, DO2[13]);
RAM16Kx1 ramE(CLK1, AB1x, CSM[1], READ, DO1[6], DI1[6], CLK2, AB2, CS2, DO2[14]);
RAM16Kx1 ramF(CLK1, AB1x, CSM[1], READ, DO1[7], DI1[7], CLK2, AB2, CS2, DO2[15]);*/
endmodule
/fighter/bintomem2/bintomem2.c
0,0 → 1,53
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <io.h>
 
 
int main(int argc, const char*argv[])
{
char*p;
int c, a = argc>1?strtoul(argv[1], &p, 0):0;
unsigned char mem[65536];
int size = 0;
_setmode(0, _O_BINARY);
memset(mem, 0, sizeof(mem));
while ((c = getchar()) != EOF) {
mem[a] = c;
++ a;
}
{
int mod, blk, bit, b, mask, m, ad, ad1;
printf("parameter\n");
for (mod = 0; mod < 0x10; ++mod) {
mask = 1 << (mod & 7);
ad = !(mod >> 3);
for (blk = 0; blk < 0x40; ++ blk) {
printf("\tD_%01X_%02X = 256'h", mod, blk);
b = 0;
m = 8;
ad1 = ad + 512 - 2;
for (bit = 0; bit < 256; ++bit, ad += 2, ad1 -= 2) {
// printf("\nmem[%04X] (%02X) & %02X = %02X\n", ad1, mem[ad1], mask, mem[ad1] & mask);
if (mem[ad1] & mask) b |= m;
m >>= 1;
if (!m) { printf("%X", b); m = 8; b = 0; }
}
printf("%c\n", (blk == 0x3F && mod == 0x0F)?';':',');
}
printf("\n");
}
}
{
int mod, blk;
for (mod = 0; mod < 0x10; ++mod) {
printf("\tRAM16Kx1#(");
for (blk = 0; blk < 0x40; ++ blk) {
printf("D_%01X_%02X%c", mod, blk, (blk == 0x3F)?')':',');
}
printf("\n\t\tram%X(CLK1, AB1x, CSM[%i], READ, DO1[%i], DI1[%i], CLK2, AB2, CS2, DO2[%i]);\n",
mod, (mod >> 3), mod & 7, mod & 7, mod);
}
}
return 0;
}
/fighter/fighter.v
0,0 → 1,1073
parameter
D_0_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_0_28 = 256'h760B3A57B2C4C000000012BEDDAEF3A1B02489193060C18346CD192260908C74,
D_0_29 = 256'h80DC4AF5806A7F2C29D4E48B785AD0F025DC91BB0E039C1D05C1F94B699C120F,
D_0_2A = 256'hF0F59353C1DE5A24CEA0DF88018024D2DA9E0E474A5C8E9789824AC777B42DA5,
D_0_2B = 256'hFE6B1F4BB6D11FD7F29B9BBBBBBBBBE75EC1D965A949DEBB3FF41871903D78E4,
D_0_2C = 256'h4290AC6B0BC6F7EBF99AC6B5AD6B5AD7CFBFFBFEABF7FFDCEAEE7FFFEDBFFD73,
D_0_2D = 256'h45AA221F6223AEBCEFFD477EFAA24D7DFEBDD5E5960550CA3EACE5C9DA8D222A,
D_0_2E = 256'h316131613560000000000002CDFFAAA2205775DADFFED75F796DEFFFDDF61C76,
D_0_2F = 256'h9041105112511451144514411541154115411541114131613161316131613161,
D_0_30 = 256'h012400CD00C9012D812900090008012000200020002000000000000001555554,
D_0_31 = 256'h012000020140002001090020000000400000000000000000000000000000012D,
D_0_32 = 256'h00090028012D00490008010000080008000000000000000000000169004B006F,
D_0_33 = 256'h00010101004A000800080000000000000004008400A400A100A0012C01090100,
D_0_34 = 256'h00A4002000200000000000000000002400010121012900200029016900620142,
D_0_35 = 256'h00200020000000000000004801002109012900080128012D008C008501000101,
D_0_36 = 256'h0000000000400042004A010A000A006901210001012000280169012400202001,
D_0_37 = 256'hE71C3C3C1F03F80FF007FE001FFF0000E71C3C3C1F03F80FF007FE001FFF0000,
D_0_38 = 256'h4100800000006522824100804000004420004100804020003232363626266666,
D_0_39 = 256'h00002C1608048200000000291409040000000000291683410000000000651683,
D_0_3A = 256'h876C401381DAD61BFFFFF4B88AA7CC7E2492492482412090002C924924824120,
D_0_3B = 256'hD2E1F517FBFBE632F7EFE91AAAA804CFAE15A61A9A8DD8411AD4BBA5B2F840AB,
D_0_3C = 256'h5016902C63223A3D4D980E460100D5264AB1BDD220181D5C93FF29AEB29EF4B3,
D_0_3D = 256'h89E7651C02061175148293DAE0E2A4956811194A11DF0AF39495DA97B3BF2EF6,
D_0_3E = 256'h7B183EFA06ED68C1F7D03833934D759D9D566010267D25B774409244749B51A4,
D_0_3F = 256'h458B0CA0821825D82A0815C4320125DF4780D5000AEED6B5AD6B5B7FCFC363FF,
 
D_1_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_1_28 = 256'h11280A2281239000000006104320002621660DB2244C91360C481060C40A2200,
D_1_29 = 256'h6C4DE0103C19101024AE0021062203445080041066980010920E040262430E03,
D_1_2A = 256'h1000082442000181F0189640140040243040009210012423044301344A122413,
D_1_2B = 256'hC11462B4493A80E03C48AAAAAAAAAAF8F38745054F6BF5D5C010600624800095,
D_1_2C = 256'h5AD29DEF66BB9416DFFDFFFFFFFFFFFFF9E7140071200007711300000001721C,
D_1_2D = 256'h5055791F8A5910197001806FA8FDB21200D3995A637ABD34A18B2DE413073A49,
D_1_2E = 256'h31603560356000000000000168000006DFB09902A0F0DD58B69212094B643F0A,
D_1_2F = 256'h1040125110511851145114401440154015601560156015601560116031603160,
D_1_30 = 256'hFD2DC4CFFCC08124FD206C00FC097D2001000100010000000000000001999998,
D_1_31 = 256'h0109010B01699D09000160007C608C00000000006C001C00FC00FC00FC008129,
D_1_32 = 256'h0009010101640060004801080100000000000000000000000000016B00026D6B,
D_1_33 = 256'h010801080043000100000008000864400000008400A400210124010901096129,
D_1_34 = 256'h008C0028002000010001000000006C2100000120000900000148006A010A0C6B,
D_1_35 = 256'h00000000002000000000004801401D0001290020002101250005002D01A17D81,
D_1_36 = 256'h0000000000400042004201080102000900690129000901680002010000210001,
D_1_37 = 256'hF81FC03FE003FFF00007FFFFE0000000F81FC03FE003FFF00007FFFFE0000000,
D_1_38 = 256'h4100000000006516834100800000006522824100804000003C3C383838387878,
D_1_39 = 256'h90002C92492482412000002C1608048200000000291409040000000000291683,
D_1_3A = 256'h5100394854463114000000211290128834924924824120000024924924824120,
D_1_3B = 256'h35911C8826061EF08C2D7E118B5F878253981A4064EA4852A11B04A06401C244,
D_1_3C = 256'h08A666321080A0C06044B198598B52088E3D0020030484A32C00D65178E0F02A,
D_1_3D = 256'h4018011D846002104B0334407800320D150D04021E0412108A7C13018C02C000,
D_1_3E = 256'h00B20035B822019001ADC818012064400407848C830104030312240112003024,
D_1_3F = 256'h3870AA10020402208A09902A04082800104B00EAA90F08C2308C220008880403,
 
D_2_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_2_28 = 256'h433A2845A7712810000018BAD53CB29020448993264C91226C8912744C922444,
D_2_29 = 256'h90885251447ED3062841B41B5E53B45CA33683761DB10814AA80A400289F0488,
D_2_2A = 256'h53618EE54FCF37AFCD344D0337000800A1B447B07FCF60EF3B41025A218000A2,
D_2_2B = 256'h91A6B0C66DAFEAFABC91111111111100108823FAB0940000001008009C0100A1,
D_2_2C = 256'hEF7FF7BDD8008F49200000000000000000211555FD2D55207C892AAABAD51254,
D_2_2D = 256'hFEAA850010EABFE9E556242FF65B6DA497107EA4988850002AC003572CF2F75D,
D_2_2E = 256'h13683368336800000000000017FFAAAD000D26FD57B85FE5124924DAF03852D2,
D_2_2F = 256'h104012401851105110D114501460146014601560156815681568156817681768,
D_2_30 = 256'h016901E608068049800994002520840900010001000100000000000001555554,
D_2_31 = 256'h00490000002A5441010890419000942200000000840014000000000004008129,
D_2_32 = 256'h0040004100290022014001080100FC0000000000000000000000016B01229763,
D_2_33 = 256'h0000000800420000000000000040940000000084002500250125000901289128,
D_2_34 = 256'h0005002100010000000000000020942100200109000901010161014B0103016A,
D_2_35 = 256'h0001010101000020000000420148194801490120002900290004010401289488,
D_2_36 = 256'h000000000002004200020048010000030129016001090161010B010900213800,
D_2_37 = 256'hFFE0003FFFFC00000007FFFFFFFFFFFFFFE0003FFFFC00000007FFFFFFFFFFFF,
D_2_38 = 256'h040000000000291683410000000000651683410080000000C0C0C0C0C0C08080,
D_2_39 = 256'h00002492492482412090002C92492482412000002C1608048200000000291409,
D_2_3A = 256'h0ECCF15B5D12949B577FE9B48C1F8C7C341A0804820000000034924924824120,
D_2_3B = 256'h0158871E91797EF2422EBD17F89FC706F9BDBA62B66B105B7184B73140A5CB23,
D_2_3C = 256'h0701CEA0003257E3C348B9DC5F8A581D036118012312211C52182920D7545621,
D_2_3D = 256'h1F6721CA625440C044CC83523EAE5E5DCA3D5F21517ED9B70427903FF6E714A1,
D_2_3E = 256'hE7A16CD1979CED0B668CB1A737FF9BBBBBC0073E0E2D9F0ECD739615EDB03D18,
D_2_3F = 256'h4E060D7E9B51AC6B7C5DF405AD4DBD966DCB83CCCB8F5A52B5A52B0002021FFC,
 
D_3_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_3_28 = 256'h724B3C47B456640810000CFB6B3259762024C912264C93364CC992744C1AA676,
D_3_29 = 256'hEC19D89C5C2EE265A939E818549BB3D53F3D036779F10814B348C5586880018D,
D_3_2A = 256'hBBA69FC6ECD37E5032C969F9D1C008C0209688D41251A83509C1125331DA09CC,
D_3_2B = 256'h00004001000060F831244444444444000796880000000000001E0A888F4994A1,
D_3_2C = 256'h4210842100003F492000000000000000000DC0018C080000FC0100001AC11250,
D_3_2D = 256'h010000E00141400610000C500080000000101F000293F924830A921020802208,
D_3_2E = 256'h156815681568000000000000000055500000001E00A8A00180000001547EC923,
D_3_2F = 256'h12401240185010D110D110701470146014601468146814681568156815681568,
D_3_30 = 256'h0049296611269169812991202020800900080008000800000000000001999998,
D_3_31 = 256'h02480168014B004880409100810381008100000080000000000000000800FD69,
D_3_32 = 256'h01400168010B0103006200280008050001000000000000000000016B0120926B,
D_3_33 = 256'h0168024800420000004000400000900200000024000500010129000801089149,
D_3_34 = 256'h002400210001000000000000002090210120010901000160004A000300481143,
D_3_35 = 256'h010000000001000000000042004A2108004901210121012901200101004D800C,
D_3_36 = 256'h00000000000202420002004801480040014301690060002B0000000801212100,
D_3_37 = 256'hFFFFFFC0000000000007FFFFFFFFFFFFFFFFFFC0000000000007FFFFFFFFFFFF,
D_3_38 = 256'h0482000000002914090400000000002916834100000000000000000000000000,
D_3_39 = 256'h00003492492482412000002492492482412090002C92492482412000002C1608,
D_3_3A = 256'hCD68F0A999DAF70DA8801CBE8CA8496E321809040000000000341A0804820000,
D_3_3B = 256'h0070E37119819FFE63EB3CE6EB2B4506C8948B20922598499ED50D304035F87D,
D_3_3C = 256'h56C598F084030DFEEE965FEE294597B3AFCEE5EB03379D1C121829E0951B4401,
D_3_3D = 256'h9F9813C762126EF98B1D35EC80468CA4E6740B7B1F3783DE318743DD6177C433,
D_3_3E = 256'hC601E837F9D8CC0F41BFC7863FFFDB3337D806F2EF581BBEFFB3E940CFBBFB59,
D_3_3F = 256'h7FF7AFBF3B57AFF3FEBDF66FCF427649AEF9D70F0BEF9CE718C6338057896C00,
 
D_4_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_4_28 = 256'h00500C008B2AC2040810150520A10C40202449A344881A246891A244082DCA98,
D_4_29 = 256'h01000522809B4051C4448A2C0686D8410D1145A2889084106022109426400120,
D_4_2A = 256'h898E3A522430D24000404014C461492482411208002410010428D84808A48082,
D_4_2B = 256'h00020000001560F83DB555555555550016A08004A000000000137D7786B46BE4,
D_4_2C = 256'h108421080000BC000665294A5294A528002F0001AC0800007C0100001AC176C0,
D_4_2D = 256'hAB0000001014000F800022800000000000101F40000002495400004102080082,
D_4_2E = 256'h07080708071800000000000001FF80000000001E57E5000100000000553EB6D2,
D_4_2F = 256'h02001A0010801090109100100010041004180408040804080608060806080608,
D_4_30 = 256'h044B006F21209002854090202109802000000040000000000000000000000000,
D_4_31 = 256'h0202012001012002FC4891028000A0018000FC00800000000000000010008569,
D_4_32 = 256'h0062014200010101004A00080008080000000000000000000000014B0169827B,
D_4_33 = 256'h0320030002420040000000000002900000000024000101210129002000299169,
D_4_34 = 256'h002000010020002000000000000190210121010801200048004B014A0048000B,
D_4_35 = 256'h010000080008000100400042004A390A000A0069012100010120002801698124,
D_4_36 = 256'h000000000000024202000002014801000109012B0028016B0108000800611940,
D_4_37 = 256'hFFFFFFFFFFFFFFFFFFF8000000000000FFFFFFFFFFFFFFFFFFF8000000000000,
D_4_38 = 256'h2482412000002C1608048200000000291409040000000000FFFFFFFFFFFFFFFF,
D_4_39 = 256'h0000341A080482000000003492492482412000002492492482412090002C9249,
D_4_3A = 256'h43A264321002302600000E2449902C38321B0582000000000032180904000000,
D_4_3B = 256'h02040430840474A810058D022A949290317A76526DDE4857251282290481D516,
D_4_3C = 256'hAD0491CF7B0BF8C45C2370B934E7D5A0A58BC26ED6B16CFFFFFFFFFF9EC00201,
D_4_3D = 256'h6900C8944EB1244800749225541345245D90019512928082A94142042921328E,
D_4_3E = 256'h52428000428A5A94000214D29A495555516005128A883144469CD4825894AA35,
D_4_3F = 256'h050A188942CDA451A82AF5A04A22A220841729100B0C84210842127F84188402,
 
D_5_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_28 = 256'h22811C441665810214081440CC7275E0B02449224409123540918344ACD22420,
D_5_29 = 256'h02B20AE5815831A343300C460ECE8C8D890189310C48C616A30443CCA4290104,
D_5_2A = 256'hA10C39768638CB600A0320BCD0C292492492A65CDB4C99B260D520E110251B0C,
D_5_2B = 256'h00000000001560F83C0000000000000017A6886480000000001DED86E050A3BD,
D_5_2C = 256'h000000000000BF492000000000000000002F0001AC0800007C0080000DC1C000,
D_5_2D = 256'hAB00001F0550000F90001E2AA100000000101F40000000000000000000000000,
D_5_2E = 256'h06080618061800000000000001FF80000000001E579C554000000000003D0002,
D_5_2F = 256'h02000A80108010A0109000100010001800180418041806180608060806080608,
D_5_30 = 256'h7C02116B4109910BFD6991092401840000600000000000000000000000000000,
D_5_31 = 256'h0032024B004A000281029048900884080008000084000000000000000800816B,
D_5_32 = 256'h010A006B01080108004300010000100800080040000000000000014B03498733,
D_5_33 = 256'h014B01120202004000020002000094000000002100000120000900000148906A,
D_5_34 = 256'h00210001000000000020000000019421012901280128004B014201400202E20A,
D_5_35 = 256'h0008000000000000004000420042010801020009006901290009016800029500,
D_5_36 = 256'h000000000000021202400242024A0102014A014B002300210140004000291D08,
D_5_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_5_38 = 256'h2482412090002C92492482412000002C1608048200000000FFFFFFFFFFFFFFFF,
D_5_39 = 256'h0000321809040000000000341A08048200000000349249248241200000249249,
D_5_3A = 256'h84012ABA908A5346A880186C08F0463AA61B05820100000000321B0582000000,
D_5_3B = 256'h0C2434398CACC00028D542F11A64A3301DDA9264366688522973CEB24913F41E,
D_5_3C = 256'h8408B60421C60BDDC4BF96CAC038102A10A03482EA7369008C04D21502CB4541,
D_5_3D = 256'hAC850CA45B1A93339894FECF4143561E2419219D2212B442109044A21015071B,
D_5_3E = 256'h318445A262CA58222D131692912494CCCD4D541FA99A50943610C44848856050,
D_5_3F = 256'h0D8188D8E28031B12828168846112C6DD30571AFF363BCEF3BCEF10074253156,
 
D_6_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_6_28 = 256'h001192220A3B20910A041CEF6A30494020048983468D182460D1A25488E76888,
D_6_29 = 256'h4709D50A1DB0118312511402C844070C90228010E4D1001030280340706FFBC3,
D_6_2A = 256'h209A68048020809BC196B24550028080A0010AD81015B030005D4C910C49C044,
D_6_2B = 256'h00000000000001C07000000000000000008000000000000000058288084A9481,
D_6_2C = 256'h0000000000000C00000000000000000000010000000000006000000000030000,
D_6_2D = 256'h0000000000000000000000000000000000100000000000000000000000000000,
D_6_2E = 256'h060A060A06080000000000000000000000000010008000000000000000200002,
D_6_2F = 256'h2A800A8000A01080108000100018001800180018021A021A061A061A061A061A,
D_6_30 = 256'h8122FF63FC49FC00802AFC41FD087C41000000220000000000000000001E1E1E,
D_6_31 = 256'h013003490148FD000102FC481C40CC40004000007C00FC00FC00FC000400016B,
D_6_32 = 256'h0103016A00000008004200000000200000400000000000000000034A024B4F33,
D_6_33 = 256'h00590018031201420040000000007C0000200021002001090009010101615D4B,
D_6_34 = 256'h00210000000101010100002000006D2100290008014900420042024A02020340,
D_6_35 = 256'h00080000000000000002004200022048010000030129016001090161010B5D09,
D_6_36 = 256'h000000000000021202500040024A0108010801490101000B026800600123210A,
D_6_37 = 256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,
D_6_38 = 256'h2482412000002492492482412090002C9249248241200000FFFFFFFFFFFFFFFF,
D_6_39 = 256'h0000321B05820000000000321809040000000000341A08048200000000349249,
D_6_3A = 256'h4BB327FA7806311200000B27449820B8A64304820100800000A61B0582010000,
D_6_3B = 256'h0214162040002A5A183573F11B0E9B0015D85AC32472205A2121867940901E62,
D_6_3C = 256'h56001E139C0DFCC64E55309994B3C7B1A4CD81EB5A61CA438C00C4040301C822,
D_6_3D = 256'h00E0889641D18008083DB66CFC08918406040C661E418200400003000000D08A,
D_6_3E = 256'h0860040008210F0020004008400018000132AE02AAD018301210ED410A83281A,
D_6_3F = 256'h38702810436780E01E1FF2648D703209B28F2C0FF12F39C6339C6300059CE401,
 
D_7_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_28 = 256'hE61FFAED7FCA7048850204AFF62FBEE02322C41060C081060C08102040932564,
D_7_29 = 256'hC5CC6F4F04D6F70E192E85BE3875FC38E3D0B7F799FAD61FF7A7BCC11992FA7E,
D_7_2A = 256'hF36594F3CD9667BBCF854D8F77A1E5967BFF5BF936F7F27C9BAF86667348ED4D,
D_7_2B = 256'hFFFFFFFFFFFFFF7FC000000000000000000000001F991918102BEACEF063C7BC,
D_7_2C = 256'h000000000000000000000000000000000000FFFFFFFFFFFFBFFFFFFFFFFEFFFF,
D_7_2D = 256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFE0000000000000,
D_7_2E = 256'h061206120650000000000003FFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFC00003,
D_7_2F = 256'h2B802A8042A00080108000000010001000100212021202120212021202120212,
D_7_30 = 256'h0120026B02480168814B00480040010001030100010000000000000001E01FE0,
D_7_31 = 256'h01010012020201000048010200000200000000000000000000000000FC00016B,
D_7_32 = 256'h0048014301680248004200000040004000000002000000000000034A025A0379,
D_7_33 = 256'h000A0008025000420040000000000000002000210120010901000160004A0003,
D_7_34 = 256'h012101000100000000010000000001210009010901490102014A034A03100210,
D_7_35 = 256'h0100010000000000000202420002004801480040014301690060002B00000008,
D_7_36 = 256'h00000000020002100252005200520348010A000A01010141034A012201013008,
D_7_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_7_38 = 256'h0482000000003492492482412000002492492482412090000000000000000000,
D_7_39 = 256'h0000A61B05820100000000321B05820000000000321809040000000000341A08,
D_7_3A = 256'hD6BFDFE9C3BFFE9DFFFFF9BDC9A7EEEE844000820100804000A6430482010080,
D_7_3B = 256'hF5E5989F3FFF9EFCEE423EF77BFB7DCFCCE5EEB9DAB978419EFD392CF66FE72D,
D_7_3C = 256'hF115E71FFFEBF3A9C979EE77F4BFD78FA5099F7879D7CFE3AC80C6137C3EEEBA,
D_7_3D = 256'h1B67DA6136C782FD80C501FFBEFFDF98E03857CD51FFDBF78003C87F786F3B7D,
D_7_3E = 256'hFFFA1AE227FFF3D0D71133FFFFFF87FFFFFFF938C7ECA3EEDCFD0DD7F5B7A864,
D_7_3F = 256'hC78F95D0E073F8DBE002FF082AB98FFFDD06FBEFF68EF7BDED6B5BFFF2DBDFFF,
 
D_8_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_28 = 256'h7FE8EBB281EF4824428119BA10560729260089A3260C983668D9B306086413D3,
D_8_29 = 256'h6E6C4AD1450A19EB6A2B35FB0B78D42AC966BF9901042070C50FB034ECCE817B,
D_8_2A = 256'h17BFC8DC5EFF068B85E77F202A62A4DB2EE245962D0B2C6B28E1FB3EFF5B2502,
D_8_2B = 256'hEB857FFFFFFBDED7FFBFDFFFFFFFFF66BF73FF6D48DE82E76FE27537141C3BC7,
D_8_2C = 256'h52D4A5A99EB5FCCF6EEF6BDEF7BDEF78607F22AB6BEAAA5A69B3D55576BD28B8,
D_8_2D = 256'h7633BA1E51F938D90B4AFA82F960045A097BB48776ECF47667909DB7EABD2AAB,
D_8_2E = 256'h021A021A021800000000000357FFCCC440D4BAF5BF9550A0FBFFA5A1B4EB34DD,
D_8_2F = 256'h2B802BA0628040804088400800080018021A021A021A021A021A021A021A021A,
D_8_30 = 256'h0169027B02020120010100020048010200000001000000000000000003FFC002,
D_8_31 = 256'h0049005A034A004800080002030200020002000000000000000000000000014B,
D_8_32 = 256'h0048000B03200300024200400000000000020000000000000000035A00120359,
D_8_33 = 256'h004200400218000A0002004000400200000100210121010801200048004B014A,
D_8_34 = 256'h0061014001000008000800010000010900010100004A0002024203520050035A,
D_8_35 = 256'h00000000010000000000024202005002014801000109012B0028016B01080008,
D_8_36 = 256'h000000000200021002120042001200480348014A004803400013000301090008,
D_8_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_8_38 = 256'h040000000000341A080482000000003492492482412000000000000000000000,
D_8_39 = 256'h4000A64304820100800000A61B05820100000000321B05820000000000321809,
D_8_3A = 256'hF3EA8A96EFD7F63A8285976E200A017180400002010080402084400082010080,
D_8_3B = 256'h173F7095D1C0FEF478793C19D88093534033804CFAA35808A7BB0FC65B457EAA,
D_8_3C = 256'hD2A0BC83195D01C8C00EA3D4D9AA00F0F4C3F07DB48825FFDF5451BB36D405C0,
D_8_3D = 256'h9245510074DA5BD8D0B94A123D5E9E421D96EE2210C5C95AF78CB241EC8A613D,
D_8_3E = 256'h186FB13BB8339B7D89DDCBDAD534B74746CFFA8214EEA8880336491B91742CA7,
D_8_3F = 256'h8288D98E22C58865DB5570A5D8056204BCEE5E2FF19339CE739CE40040581663,
 
D_9_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_28 = 256'hC400408A04A8A40221409001821965167024C93664C9B260C183020C4C2EC088,
D_9_29 = 256'h8021A6C71844444000020000A015128072000003E94000001479801109317A18,
D_9_2A = 256'h8840010020040810741A5B80A20066864008F09144E122A09003902433480101,
D_9_2B = 256'hC14E75CEDB7EF2BCE2422000000000E9010820924DDED6B9900B00C010102000,
D_9_2C = 256'h0800008450400B9491129421084210849E03DFFF9C1FFFAD5F5FFFFFF9E505B2,
D_9_2D = 256'hA12D0001CE9E9D24A1FE5113379FFF6CC71C8D56CE1D217B81FF2A4815561041,
D_9_2E = 256'h019A019A01980000000000017610AD234018BF4D50C2233B8DB6905E8518D926,
D_9_2F = 256'h28802BA063806388418841084108410A410A011A011A019A019A019A019A019A,
D_9_30 = 256'hFF498733FC32064BFC4AF802F902F84800080008000800000000000003C3C3C0,
D_9_31 = 256'h0248000001509A080042E208FC00191000000400C8001800FC00FC00FC00014B,
D_9_32 = 256'h0202020A014B0112020200400002400200000000000000000000035A0112FB1B,
D_9_33 = 256'h0000004002120002000200000200E80000010021012901280128004B0142E540,
D_9_34 = 256'h0029010800080000000000000100F90901000048004A0008030A025A00180F50,
D_9_35 = 256'h00080008000001000000021202406A42024A0102014A014B002300210140F840,
D_9_36 = 256'h0000000000100210001202420002001A014803000048030A005A004901086800,
D_9_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_9_38 = 256'h820000000000321809040000000000341A08048200000000FF00FF00FF00FF00,
D_9_39 = 256'h4020844000820100804000A64304820100800000A61B05820100000000321B05,
D_9_3A = 256'h1800E14013018292E4C9D098090F004688400082010080400080400002010080,
D_9_3B = 256'hE4A160293AFA8005A444000004E39A0C9C49E8380139803F784C8314860C8E42,
D_9_3C = 256'h86192A108406F6330B120C020421E720008C65015350900180A3AC440524A4DC,
D_9_3D = 256'h023300804310A0022E88DAA50005808084206209AC02084021028C2042318042,
D_9_3E = 256'hC040080000180A00400000C40480133000A0020A000492E2403080188E2C0001,
D_9_3F = 256'hF46207009C0054094004888220DB3B6E88015B8006CCC2308C2308AA65610780,
 
D_A_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_28 = 256'h5120CA22C43B420100A05CAB02795D736408892664C993644D9B264C992CD29E,
D_A_29 = 256'h44286C8A0424734641220DBE58D36C598201B6F105C00001441399144140FA5A,
D_A_2A = 256'h39B6C050E6DF02DBD5E53761AAC05A940B69FC2CFFF859CE705848940A801281,
D_A_2B = 256'h1020927324801184224AAAAAAAAAAABBD5443000B2212900003A051000142804,
D_A_2C = 256'hAD6B5A52B776A896D99AD6B5AD6B5AD493ABD55402A55527C0002AAA8023D24C,
D_A_2D = 256'h0BD5001F8315C2AC1151AAE1E849240138FF42A003C1D3908B400A489142D555,
D_A_2E = 256'h019A019A0198000000000002281007F5FFE0648251F5C79400004965230526DA,
D_A_2F = 256'h28A06AA06B88638863884108410A410A410A410A418A018A019A019A019A019A,
D_A_30 = 256'h064B4B33093007490548B500050284480040004000400000000000000003FC03,
D_A_31 = 256'h02420342025A26420200A000A01804000000040084002400040020000400034A,
D_A_32 = 256'h0202034000590018031201420040FC0000000000000000000000035A0100B75A,
D_A_33 = 256'h0342024202100000020002020002A4100000012100290008014900420042A64A,
D_A_34 = 256'h0123010A00080000000000000100B50801000048000203000252001A0242161A,
D_A_35 = 256'h00000000000800000000021202506040024A0108010801490101000B0268A460,
D_A_36 = 256'h00000000001002100010024202400202021A034A0302015A0000004001086000,
D_A_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_A_38 = 256'h820100000000321B05820000000000321809040000000000FFFF0000FFFF0000,
D_A_39 = 256'h4000804000020100804020844000820100804000A64304820100800000A61B05,
D_A_3A = 256'h52A80BD6C7442828A2D1DC6C2D9F0369CA450482010080000088400082010080,
D_A_3B = 256'hF2117CA080F15EF056243C3370779E56CCE2EC304B9BD81BACE205B01401C429,
D_A_3C = 256'h8404A2000019F73B8BD576383497C581A4A9E06AA522A03C101001015084A0F8,
D_A_3D = 256'h0C6EC0733F151775990D0100BE7C473E111C3C6751DF3479A42002539EA72025,
D_A_3E = 256'h394B2BF7FCE73A595FBFE6B9DB6D9EEEEC7FF81E0A6A780646EC090FF802C07D,
D_A_3F = 256'h8193A9A5F8940B5BB63383AC6B32136CE39A5DA0008ED694AD694ACC71ECD007,
 
D_B_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_28 = 256'h5DA8CB36C58EA10080402551043F55EF660C9332448993264C912244D9489313,
D_B_29 = 256'hA833A69A5828FBC761103C2F5BCA5F5BB80784BCF4E00010546311746141007B,
D_B_2A = 256'h3CD35948F3494A002C19A5A2886049840248B516496A2C83226C691D8E92DAC6,
D_B_2B = 256'h1430904224800781B9200000000000F6C180004000000000001C85181E152C82,
D_B_2C = 256'h00000000911A0D2004400000000000036D83000000000000C35A8000200FD245,
D_B_2D = 256'h00FFABFF99428003D407925EA049240007D0011B6D49FA4BD0C0080000000000,
D_B_2E = 256'h0198019801980000000000037FEF855FFFFD924107A4BD00000000495F00000C,
D_B_2F = 256'h28A068A86A886B88638843084108410841084188418841884188418801880188,
D_B_30 = 256'h065A037911010412060205000448050200000200000000000000000003FC0001,
D_B_31 = 256'h00120100000A641006420010200024088000040004002400040020000800FF4A,
D_B_32 = 256'h03100210000A00080250004200404C0000000000000000000000025A034807D8,
D_B_33 = 256'h01000002021002000000000000100400000001210009010901490102014A074A,
D_B_34 = 256'h010100080100010000000000000805080108004201020240025802520240045A,
D_B_35 = 256'h0000004000400008020002100252505200520348010A000A01010141034A2522,
D_B_36 = 256'h00000000000002100000001202400000004A0158014203580042004203085200,
D_B_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_B_38 = 256'h820100800000A61B05820100000000321B05820000000000FFFFFFFF00000000,
D_B_39 = 256'h0000884000820100804000804000020100804020844000820100804000A64304,
D_B_3A = 256'hF147E9446746F8A2B6CE9B7EC43F617DCA2D06820100000000CA450482010080,
D_B_3B = 256'h135F5620E3F360001C3F00FFB851B61244B3A41048C94866963386F8043626C2,
D_B_3C = 256'h82ACA3C420120BFDC50CD7EAE92C025B50E61096465E643C1010018112D60520,
D_B_3D = 256'h0C91CBB31C03EEBDC6ACDB2C0136D6F81D9E9BE63F8CB833E20DF6F73836A027,
D_B_3E = 256'h30420FEE6DC63A107F736F319B6DBEEEEFD806AC3ED4E0D657EEE046BEC1EEFF,
D_B_3F = 256'h75FDFFABE0965F9FF7731FAFF31F732DF9FD4FB00730E739C6318CF07598E806,
 
D_C_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_28 = 256'h401040071205408040201A0405A402A1420C983460D1030489122048C0B744E8,
D_C_29 = 256'h104421002010550A109046822C68152C8448D010024630692840095310000518,
D_C_2A = 256'h960006C25904360404012106720105904802220100440200800205814200A424,
D_C_2B = 256'h4080021100001785E0000000000000F6C104004000000000000F70F7037EFB40,
D_C_2C = 256'h00000000B55A0A0000000000000000036D83D55402A55525C35AAAAAA02F0008,
D_C_2D = 256'h00FFABFFB4002AA04557DC8009DB6D2497F5411B6FDB52497FD5280000048000,
D_C_2E = 256'h418A018A01880000000000037C0050001FFDB6C101B90054924924DBAA40000E,
D_C_2F = 256'h60A868A86A886A886B8A430A430A410A418A418A418A418A418A418A418A418A,
D_C_30 = 256'h041233592049045A074A04480408040203020002000200000000000000000002,
D_C_31 = 256'h0192025A02522412FC100240204004408040FC0004002400040020001000035A,
D_C_32 = 256'h0050035A004200400218000A0002484000400200000000000000025A0248059A,
D_C_33 = 256'h025A00920010020000100010000004000000010900010100004A000202420752,
D_C_34 = 256'h0109000800000000010000000008050801480142014002580212020000122450,
D_C_35 = 256'h00400000000000000200021002126042001200480348014A0048034000132403,
D_C_36 = 256'h000000000000009002000212025200100250025A0118010A0200020201486040,
D_C_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_C_38 = 256'h820100804000A64304820100800000A61B0582010000000055AA55AA55AA55AA,
D_C_39 = 256'h0000CA4504820100800000884000820100804000804000020100804020844000,
D_C_3A = 256'h801622A09310400AA90FD038AAA34048522D06820000000000CA2D0682010000,
D_C_3B = 256'h0080266023520108C1034211126E184DBAC959692757A019A848C220907C160A,
D_C_3C = 256'h625B9E7BDF500E17269B8441C278183A0AD03A80722569FFDFF7FDFF1E245442,
D_C_3D = 256'h3B8A742645070212899ACA0B0093AC348475492220A46914A0120DA9494A1872,
D_C_3E = 256'h9408142224529040A1112214B5B6C44445080648ADD4225B9C85345211A19325,
D_C_3F = 256'h028898902075C09512996BA4511330012289598FF4202108421085006D10A002,
 
D_D_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_D_28 = 256'h48A0C916D206A040200019D86AA0001302049AA44A8102568810344A820A8101,
D_D_29 = 256'h24CC4130C61DC89134C6951B016325028AD2A24C132840A2085211723200EA31,
D_D_2A = 256'hCC001A6B300053B8068413BAA62340A49138156264AAC4D917342C0A86362406,
D_D_2B = 256'h0000000024801785E000000000000000C100000000000000000080D82DF6ED0A,
D_D_2C = 256'h000000000002080000000000000000000183D55402A55525C0002AAA802F0000,
D_D_2D = 256'h000055E1800AAAA04557A1800800009257F541000000000007CA400000000000,
D_D_2E = 256'h61826182618000000000000280002AAABFFA000100C30010492492000080000E,
D_D_2F = 256'h20A028A828886A8A6A8A4B024302638263826182618261826182618261826182,
D_D_30 = 256'hF912231B42480400F95006080442860800000110000000000000000003FFFFFE,
D_D_31 = 256'h018002480240240004120240A200460002000400840024000400200008000B5A,
D_D_32 = 256'h00180350000000400212000200025000020000000000000000000252025A859E,
D_D_33 = 256'h02C800C000900210020000000000A4000100010901000048004A0008030A865A,
D_D_34 = 256'h0108000000080008000001000000B5080148004202480212021202520012C602,
D_D_35 = 256'h00400002000200000010021000126A420002001A014803000048030A005AA449,
D_D_36 = 256'h000000000000009002800200025200400042024A000A005A0342030201186850,
D_D_37 = 256'hD5B3800F19B6D6AAAA95A5A49366CCCCD5B3800F19B6D6AAAA95A5A49366CCCC,
D_D_38 = 256'h020100804020844000820100804000A64304820100800000993366CC993366CC,
D_D_39 = 256'h0000CA2D06820100000000CA4504820100800000884000820100804000804000,
D_D_3A = 256'hB5450EC0A202599EA0301A3ACB0060DC522812080000000000522D0682000000,
D_D_3B = 256'hE106AF2067072AD3090FC5CCCC631C86CDD14A23019DA849DB59826924A1273E,
D_D_3C = 256'hCF8A91A1083252D95808B5D84C8A29425D5A805420FC59028583F008006787C5,
D_D_3D = 256'h4800572A87A9C98C60EDFE4A5693A6F50CD34922E086AA106A45D52085813081,
D_D_3E = 256'h8D916222A7529C8B11153B94B5B6822223CAABB91C4D14411582487210C5A5B3,
D_D_3F = 256'h040C10823626108D09D9A0B1B1CDE401106248200B1DE779DE779EFF295C9AA9,
 
D_E_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_E_28 = 256'hC89C019A3705402000001E5302F955024008823468C1A3040C12304893DB8464,
D_E_29 = 256'h0893B5823834C08181C232924301364232465244F768409338F00938013E5E00,
D_E_2A = 256'h48410329200019FA5EE24B2CC0020894081CE2004044008000162206408048F0,
D_E_2B = 256'h00000000000001802000000000000000030000000000000000128A082591248A,
D_E_2C = 256'h000000000000180000000000000000000007000000000000C000000000030000,
D_E_2D = 256'h0000000040000000000040000000000000100000000000000000000000000000,
D_E_2E = 256'h4002400240000000000000000010000000800000018000000000000000400004,
D_E_2F = 256'h20A020A028AA2C8A2A8A0A024A02420242024202420242024002400240024002,
D_E_30 = 256'h0100FF5AFE42FF42825AFE42FA00F80000180000000000000000000003FFFFFF,
D_E_31 = 256'h000C00920012FC000240FC129C02880200020400F800FC00FC00FC000400035A,
D_E_32 = 256'h0242021A03420242021000000200620200020010000000000000025202D2CBCC,
D_E_33 = 256'h0052004402800210020000000000F8000100010801000048000203000252DC1A,
D_E_34 = 256'h0108000000000000000800000000F908004A004A024A00120250025000800482,
D_E_35 = 256'h0002000000000000001002100010024202400202021A034A0302015A00009840,
D_E_36 = 256'h00000000000000840290029002920240005200520008020802500110000A5042,
D_E_37 = 256'hCC96AAAA52DB64CCCCE639C71C78F0F0CC96AAAA52DB64CCCCE639C71C78F0F0,
D_E_38 = 256'h820100804000804000020100804020844000820100804000E1C3870F1E3C78F0,
D_E_39 = 256'h0000522D06820000000000CA2D06820100000000CA4504820100800000884000,
D_E_3A = 256'h9005AEBA9121C04906CFD8B8CE3C624A582C1009040000000052281208000000,
D_E_3B = 256'h70C1A64001A100A0C50643C4417B08648F44E9B0011D804D1940013014008269,
D_E_3C = 256'hC22E0E9CE66006133299C460E59C0A1B03E4B0004A066D010B67283A0217F463,
D_E_3D = 256'h2C2F242641124808098E592603C3D1580400E2286E1030006218857003009023,
D_E_3E = 256'h4289000084084C48000428C2180071111000024F0600804204C046184E00CD03,
D_E_3F = 256'h7060083A0112491B40481F80E037332C8A211BA0000DCE319CE318FF35900550,
 
D_F_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000,
D_F_28 = 256'hF37DDFFBFF02A000000002AF83FD6571626C59060C181020C181060408CAB317,
D_F_29 = 256'h7D1A75C366D6FF2ECAC97F74BFC5E8BF836FEFFC1BE63048EE67310CC4FECFF7,
D_F_2A = 256'hA7B6D4DA9EDB66DF1D65B5E5DCE2F44F66C3AE8CDB5D19A668F4D9389D5A4972,
D_F_2B = 256'h00000000000000001FFFFFFFFFFFFFFFFEFFFFFFFFBA32322022CFDC0BF5EE06,
D_F_2C = 256'hFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFC0000000000000000000000000000,
D_F_2D = 256'h000000000000000000000000000000000000000000000000001FFFFFFFFFFFFF,
D_F_2E = 256'h60E260E260E000000000000000000000000000000000000000000000003FFFFC,
D_F_2F = 256'h20A020A22CA2288A288A2AA22AA22AA222A262A262A262A262A262A262A262E2,
D_F_30 = 256'h034803D800120100000A00100242001000000008000000000000000000000000,
D_F_31 = 256'h024C02D2025202400040001200100010001004000000000000000000FC00025A,
D_F_32 = 256'h0240005A0100000202100200000000000010000000000000000002D2009202CC,
D_F_33 = 256'h0216020600C40050001002000200000000080108010800420102024002580252,
D_F_34 = 256'h03080200000000400040000800000048000A00020252001002100292028002D0,
D_F_35 = 256'h0002000000000000000002100000001202400000004A01580142035800420042,
D_F_36 = 256'h000000000000008400940210009202420242025202400202009A001800487042,
D_F_37 = 256'h96DB33339CE3870F0F07C1F81F80FF0096DB33339CE3870F0F07C1F81F80FF00,
D_F_38 = 256'h820100800000884000820100804000804000020100804020ABA9ADA5B595D555,
D_F_39 = 256'h0000522812080000000000522D06820000000000CA2D06820100000000CA4504,
D_F_3A = 256'h7BE769766EFF3A62BEDFD6FEE3AF637B592492490482400000582C1009040000,
D_F_3B = 256'hE7321CDDC9F9FFF53961C7FFFD4D873B572FB7DCFCCE585EE7B7EFF6CF49F632,
D_F_3C = 256'hD6E39F5FFE5AFDCEFE9532989713EFD8F709307C5ED03C404580BC2C7DDCF59F,
D_F_3D = 256'hB20EEE9D8F52B7B1F9BB82A4BDFF3EA6BFBFBC6793FFC53D94BB43CBDFCF794F,
D_F_3E = 256'hFFA6B077F1FFFD3583BF8FFFE7FFEFFFFE9FFAF2184AFA4F8A2D2E2FF1601B6C,
D_F_3F = 256'h079DB9DC7DDF1054B7F3C7F8DBDB5B2CF39B05BFFF1FBDEF6B5AD6FF064C1FFF;
 
RAM16Kx1#(D_0_00,D_0_01,D_0_02,D_0_03,D_0_04,D_0_05,D_0_06,D_0_07,D_0_08,D_0_09,D_0_0A,D_0_0B,D_0_0C,D_0_0D,D_0_0E,D_0_0F,D_0_10,D_0_11,D_0_12,D_0_13,D_0_14,D_0_15,D_0_16,D_0_17,D_0_18,D_0_19,D_0_1A,D_0_1B,D_0_1C,D_0_1D,D_0_1E,D_0_1F,D_0_20,D_0_21,D_0_22,D_0_23,D_0_24,D_0_25,D_0_26,D_0_27,D_0_28,D_0_29,D_0_2A,D_0_2B,D_0_2C,D_0_2D,D_0_2E,D_0_2F,D_0_30,D_0_31,D_0_32,D_0_33,D_0_34,D_0_35,D_0_36,D_0_37,D_0_38,D_0_39,D_0_3A,D_0_3B,D_0_3C,D_0_3D,D_0_3E,D_0_3F)
ram0(CLK1, AB1x, CSM[0], READ, DO1[0], DI1[0], CLK2, AB2, CS2, DO2[0]);
RAM16Kx1#(D_1_00,D_1_01,D_1_02,D_1_03,D_1_04,D_1_05,D_1_06,D_1_07,D_1_08,D_1_09,D_1_0A,D_1_0B,D_1_0C,D_1_0D,D_1_0E,D_1_0F,D_1_10,D_1_11,D_1_12,D_1_13,D_1_14,D_1_15,D_1_16,D_1_17,D_1_18,D_1_19,D_1_1A,D_1_1B,D_1_1C,D_1_1D,D_1_1E,D_1_1F,D_1_20,D_1_21,D_1_22,D_1_23,D_1_24,D_1_25,D_1_26,D_1_27,D_1_28,D_1_29,D_1_2A,D_1_2B,D_1_2C,D_1_2D,D_1_2E,D_1_2F,D_1_30,D_1_31,D_1_32,D_1_33,D_1_34,D_1_35,D_1_36,D_1_37,D_1_38,D_1_39,D_1_3A,D_1_3B,D_1_3C,D_1_3D,D_1_3E,D_1_3F)
ram1(CLK1, AB1x, CSM[0], READ, DO1[1], DI1[1], CLK2, AB2, CS2, DO2[1]);
RAM16Kx1#(D_2_00,D_2_01,D_2_02,D_2_03,D_2_04,D_2_05,D_2_06,D_2_07,D_2_08,D_2_09,D_2_0A,D_2_0B,D_2_0C,D_2_0D,D_2_0E,D_2_0F,D_2_10,D_2_11,D_2_12,D_2_13,D_2_14,D_2_15,D_2_16,D_2_17,D_2_18,D_2_19,D_2_1A,D_2_1B,D_2_1C,D_2_1D,D_2_1E,D_2_1F,D_2_20,D_2_21,D_2_22,D_2_23,D_2_24,D_2_25,D_2_26,D_2_27,D_2_28,D_2_29,D_2_2A,D_2_2B,D_2_2C,D_2_2D,D_2_2E,D_2_2F,D_2_30,D_2_31,D_2_32,D_2_33,D_2_34,D_2_35,D_2_36,D_2_37,D_2_38,D_2_39,D_2_3A,D_2_3B,D_2_3C,D_2_3D,D_2_3E,D_2_3F)
ram2(CLK1, AB1x, CSM[0], READ, DO1[2], DI1[2], CLK2, AB2, CS2, DO2[2]);
RAM16Kx1#(D_3_00,D_3_01,D_3_02,D_3_03,D_3_04,D_3_05,D_3_06,D_3_07,D_3_08,D_3_09,D_3_0A,D_3_0B,D_3_0C,D_3_0D,D_3_0E,D_3_0F,D_3_10,D_3_11,D_3_12,D_3_13,D_3_14,D_3_15,D_3_16,D_3_17,D_3_18,D_3_19,D_3_1A,D_3_1B,D_3_1C,D_3_1D,D_3_1E,D_3_1F,D_3_20,D_3_21,D_3_22,D_3_23,D_3_24,D_3_25,D_3_26,D_3_27,D_3_28,D_3_29,D_3_2A,D_3_2B,D_3_2C,D_3_2D,D_3_2E,D_3_2F,D_3_30,D_3_31,D_3_32,D_3_33,D_3_34,D_3_35,D_3_36,D_3_37,D_3_38,D_3_39,D_3_3A,D_3_3B,D_3_3C,D_3_3D,D_3_3E,D_3_3F)
ram3(CLK1, AB1x, CSM[0], READ, DO1[3], DI1[3], CLK2, AB2, CS2, DO2[3]);
RAM16Kx1#(D_4_00,D_4_01,D_4_02,D_4_03,D_4_04,D_4_05,D_4_06,D_4_07,D_4_08,D_4_09,D_4_0A,D_4_0B,D_4_0C,D_4_0D,D_4_0E,D_4_0F,D_4_10,D_4_11,D_4_12,D_4_13,D_4_14,D_4_15,D_4_16,D_4_17,D_4_18,D_4_19,D_4_1A,D_4_1B,D_4_1C,D_4_1D,D_4_1E,D_4_1F,D_4_20,D_4_21,D_4_22,D_4_23,D_4_24,D_4_25,D_4_26,D_4_27,D_4_28,D_4_29,D_4_2A,D_4_2B,D_4_2C,D_4_2D,D_4_2E,D_4_2F,D_4_30,D_4_31,D_4_32,D_4_33,D_4_34,D_4_35,D_4_36,D_4_37,D_4_38,D_4_39,D_4_3A,D_4_3B,D_4_3C,D_4_3D,D_4_3E,D_4_3F)
ram4(CLK1, AB1x, CSM[0], READ, DO1[4], DI1[4], CLK2, AB2, CS2, DO2[4]);
RAM16Kx1#(D_5_00,D_5_01,D_5_02,D_5_03,D_5_04,D_5_05,D_5_06,D_5_07,D_5_08,D_5_09,D_5_0A,D_5_0B,D_5_0C,D_5_0D,D_5_0E,D_5_0F,D_5_10,D_5_11,D_5_12,D_5_13,D_5_14,D_5_15,D_5_16,D_5_17,D_5_18,D_5_19,D_5_1A,D_5_1B,D_5_1C,D_5_1D,D_5_1E,D_5_1F,D_5_20,D_5_21,D_5_22,D_5_23,D_5_24,D_5_25,D_5_26,D_5_27,D_5_28,D_5_29,D_5_2A,D_5_2B,D_5_2C,D_5_2D,D_5_2E,D_5_2F,D_5_30,D_5_31,D_5_32,D_5_33,D_5_34,D_5_35,D_5_36,D_5_37,D_5_38,D_5_39,D_5_3A,D_5_3B,D_5_3C,D_5_3D,D_5_3E,D_5_3F)
ram5(CLK1, AB1x, CSM[0], READ, DO1[5], DI1[5], CLK2, AB2, CS2, DO2[5]);
RAM16Kx1#(D_6_00,D_6_01,D_6_02,D_6_03,D_6_04,D_6_05,D_6_06,D_6_07,D_6_08,D_6_09,D_6_0A,D_6_0B,D_6_0C,D_6_0D,D_6_0E,D_6_0F,D_6_10,D_6_11,D_6_12,D_6_13,D_6_14,D_6_15,D_6_16,D_6_17,D_6_18,D_6_19,D_6_1A,D_6_1B,D_6_1C,D_6_1D,D_6_1E,D_6_1F,D_6_20,D_6_21,D_6_22,D_6_23,D_6_24,D_6_25,D_6_26,D_6_27,D_6_28,D_6_29,D_6_2A,D_6_2B,D_6_2C,D_6_2D,D_6_2E,D_6_2F,D_6_30,D_6_31,D_6_32,D_6_33,D_6_34,D_6_35,D_6_36,D_6_37,D_6_38,D_6_39,D_6_3A,D_6_3B,D_6_3C,D_6_3D,D_6_3E,D_6_3F)
ram6(CLK1, AB1x, CSM[0], READ, DO1[6], DI1[6], CLK2, AB2, CS2, DO2[6]);
RAM16Kx1#(D_7_00,D_7_01,D_7_02,D_7_03,D_7_04,D_7_05,D_7_06,D_7_07,D_7_08,D_7_09,D_7_0A,D_7_0B,D_7_0C,D_7_0D,D_7_0E,D_7_0F,D_7_10,D_7_11,D_7_12,D_7_13,D_7_14,D_7_15,D_7_16,D_7_17,D_7_18,D_7_19,D_7_1A,D_7_1B,D_7_1C,D_7_1D,D_7_1E,D_7_1F,D_7_20,D_7_21,D_7_22,D_7_23,D_7_24,D_7_25,D_7_26,D_7_27,D_7_28,D_7_29,D_7_2A,D_7_2B,D_7_2C,D_7_2D,D_7_2E,D_7_2F,D_7_30,D_7_31,D_7_32,D_7_33,D_7_34,D_7_35,D_7_36,D_7_37,D_7_38,D_7_39,D_7_3A,D_7_3B,D_7_3C,D_7_3D,D_7_3E,D_7_3F)
ram7(CLK1, AB1x, CSM[0], READ, DO1[7], DI1[7], CLK2, AB2, CS2, DO2[7]);
RAM16Kx1#(D_8_00,D_8_01,D_8_02,D_8_03,D_8_04,D_8_05,D_8_06,D_8_07,D_8_08,D_8_09,D_8_0A,D_8_0B,D_8_0C,D_8_0D,D_8_0E,D_8_0F,D_8_10,D_8_11,D_8_12,D_8_13,D_8_14,D_8_15,D_8_16,D_8_17,D_8_18,D_8_19,D_8_1A,D_8_1B,D_8_1C,D_8_1D,D_8_1E,D_8_1F,D_8_20,D_8_21,D_8_22,D_8_23,D_8_24,D_8_25,D_8_26,D_8_27,D_8_28,D_8_29,D_8_2A,D_8_2B,D_8_2C,D_8_2D,D_8_2E,D_8_2F,D_8_30,D_8_31,D_8_32,D_8_33,D_8_34,D_8_35,D_8_36,D_8_37,D_8_38,D_8_39,D_8_3A,D_8_3B,D_8_3C,D_8_3D,D_8_3E,D_8_3F)
ram8(CLK1, AB1x, CSM[1], READ, DO1[0], DI1[0], CLK2, AB2, CS2, DO2[8]);
RAM16Kx1#(D_9_00,D_9_01,D_9_02,D_9_03,D_9_04,D_9_05,D_9_06,D_9_07,D_9_08,D_9_09,D_9_0A,D_9_0B,D_9_0C,D_9_0D,D_9_0E,D_9_0F,D_9_10,D_9_11,D_9_12,D_9_13,D_9_14,D_9_15,D_9_16,D_9_17,D_9_18,D_9_19,D_9_1A,D_9_1B,D_9_1C,D_9_1D,D_9_1E,D_9_1F,D_9_20,D_9_21,D_9_22,D_9_23,D_9_24,D_9_25,D_9_26,D_9_27,D_9_28,D_9_29,D_9_2A,D_9_2B,D_9_2C,D_9_2D,D_9_2E,D_9_2F,D_9_30,D_9_31,D_9_32,D_9_33,D_9_34,D_9_35,D_9_36,D_9_37,D_9_38,D_9_39,D_9_3A,D_9_3B,D_9_3C,D_9_3D,D_9_3E,D_9_3F)
ram9(CLK1, AB1x, CSM[1], READ, DO1[1], DI1[1], CLK2, AB2, CS2, DO2[9]);
RAM16Kx1#(D_A_00,D_A_01,D_A_02,D_A_03,D_A_04,D_A_05,D_A_06,D_A_07,D_A_08,D_A_09,D_A_0A,D_A_0B,D_A_0C,D_A_0D,D_A_0E,D_A_0F,D_A_10,D_A_11,D_A_12,D_A_13,D_A_14,D_A_15,D_A_16,D_A_17,D_A_18,D_A_19,D_A_1A,D_A_1B,D_A_1C,D_A_1D,D_A_1E,D_A_1F,D_A_20,D_A_21,D_A_22,D_A_23,D_A_24,D_A_25,D_A_26,D_A_27,D_A_28,D_A_29,D_A_2A,D_A_2B,D_A_2C,D_A_2D,D_A_2E,D_A_2F,D_A_30,D_A_31,D_A_32,D_A_33,D_A_34,D_A_35,D_A_36,D_A_37,D_A_38,D_A_39,D_A_3A,D_A_3B,D_A_3C,D_A_3D,D_A_3E,D_A_3F)
ramA(CLK1, AB1x, CSM[1], READ, DO1[2], DI1[2], CLK2, AB2, CS2, DO2[10]);
RAM16Kx1#(D_B_00,D_B_01,D_B_02,D_B_03,D_B_04,D_B_05,D_B_06,D_B_07,D_B_08,D_B_09,D_B_0A,D_B_0B,D_B_0C,D_B_0D,D_B_0E,D_B_0F,D_B_10,D_B_11,D_B_12,D_B_13,D_B_14,D_B_15,D_B_16,D_B_17,D_B_18,D_B_19,D_B_1A,D_B_1B,D_B_1C,D_B_1D,D_B_1E,D_B_1F,D_B_20,D_B_21,D_B_22,D_B_23,D_B_24,D_B_25,D_B_26,D_B_27,D_B_28,D_B_29,D_B_2A,D_B_2B,D_B_2C,D_B_2D,D_B_2E,D_B_2F,D_B_30,D_B_31,D_B_32,D_B_33,D_B_34,D_B_35,D_B_36,D_B_37,D_B_38,D_B_39,D_B_3A,D_B_3B,D_B_3C,D_B_3D,D_B_3E,D_B_3F)
ramB(CLK1, AB1x, CSM[1], READ, DO1[3], DI1[3], CLK2, AB2, CS2, DO2[11]);
RAM16Kx1#(D_C_00,D_C_01,D_C_02,D_C_03,D_C_04,D_C_05,D_C_06,D_C_07,D_C_08,D_C_09,D_C_0A,D_C_0B,D_C_0C,D_C_0D,D_C_0E,D_C_0F,D_C_10,D_C_11,D_C_12,D_C_13,D_C_14,D_C_15,D_C_16,D_C_17,D_C_18,D_C_19,D_C_1A,D_C_1B,D_C_1C,D_C_1D,D_C_1E,D_C_1F,D_C_20,D_C_21,D_C_22,D_C_23,D_C_24,D_C_25,D_C_26,D_C_27,D_C_28,D_C_29,D_C_2A,D_C_2B,D_C_2C,D_C_2D,D_C_2E,D_C_2F,D_C_30,D_C_31,D_C_32,D_C_33,D_C_34,D_C_35,D_C_36,D_C_37,D_C_38,D_C_39,D_C_3A,D_C_3B,D_C_3C,D_C_3D,D_C_3E,D_C_3F)
ramC(CLK1, AB1x, CSM[1], READ, DO1[4], DI1[4], CLK2, AB2, CS2, DO2[12]);
RAM16Kx1#(D_D_00,D_D_01,D_D_02,D_D_03,D_D_04,D_D_05,D_D_06,D_D_07,D_D_08,D_D_09,D_D_0A,D_D_0B,D_D_0C,D_D_0D,D_D_0E,D_D_0F,D_D_10,D_D_11,D_D_12,D_D_13,D_D_14,D_D_15,D_D_16,D_D_17,D_D_18,D_D_19,D_D_1A,D_D_1B,D_D_1C,D_D_1D,D_D_1E,D_D_1F,D_D_20,D_D_21,D_D_22,D_D_23,D_D_24,D_D_25,D_D_26,D_D_27,D_D_28,D_D_29,D_D_2A,D_D_2B,D_D_2C,D_D_2D,D_D_2E,D_D_2F,D_D_30,D_D_31,D_D_32,D_D_33,D_D_34,D_D_35,D_D_36,D_D_37,D_D_38,D_D_39,D_D_3A,D_D_3B,D_D_3C,D_D_3D,D_D_3E,D_D_3F)
ramD(CLK1, AB1x, CSM[1], READ, DO1[5], DI1[5], CLK2, AB2, CS2, DO2[13]);
RAM16Kx1#(D_E_00,D_E_01,D_E_02,D_E_03,D_E_04,D_E_05,D_E_06,D_E_07,D_E_08,D_E_09,D_E_0A,D_E_0B,D_E_0C,D_E_0D,D_E_0E,D_E_0F,D_E_10,D_E_11,D_E_12,D_E_13,D_E_14,D_E_15,D_E_16,D_E_17,D_E_18,D_E_19,D_E_1A,D_E_1B,D_E_1C,D_E_1D,D_E_1E,D_E_1F,D_E_20,D_E_21,D_E_22,D_E_23,D_E_24,D_E_25,D_E_26,D_E_27,D_E_28,D_E_29,D_E_2A,D_E_2B,D_E_2C,D_E_2D,D_E_2E,D_E_2F,D_E_30,D_E_31,D_E_32,D_E_33,D_E_34,D_E_35,D_E_36,D_E_37,D_E_38,D_E_39,D_E_3A,D_E_3B,D_E_3C,D_E_3D,D_E_3E,D_E_3F)
ramE(CLK1, AB1x, CSM[1], READ, DO1[6], DI1[6], CLK2, AB2, CS2, DO2[14]);
RAM16Kx1#(D_F_00,D_F_01,D_F_02,D_F_03,D_F_04,D_F_05,D_F_06,D_F_07,D_F_08,D_F_09,D_F_0A,D_F_0B,D_F_0C,D_F_0D,D_F_0E,D_F_0F,D_F_10,D_F_11,D_F_12,D_F_13,D_F_14,D_F_15,D_F_16,D_F_17,D_F_18,D_F_19,D_F_1A,D_F_1B,D_F_1C,D_F_1D,D_F_1E,D_F_1F,D_F_20,D_F_21,D_F_22,D_F_23,D_F_24,D_F_25,D_F_26,D_F_27,D_F_28,D_F_29,D_F_2A,D_F_2B,D_F_2C,D_F_2D,D_F_2E,D_F_2F,D_F_30,D_F_31,D_F_32,D_F_33,D_F_34,D_F_35,D_F_36,D_F_37,D_F_38,D_F_39,D_F_3A,D_F_3B,D_F_3C,D_F_3D,D_F_3E,D_F_3F)
ramF(CLK1, AB1x, CSM[1], READ, DO1[7], DI1[7], CLK2, AB2, CS2, DO2[15]);
/fighter/fighter.xise
0,0 → 1,402
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
 
<header>
<!-- ISE source project file created by Project Navigator. -->
<!-- -->
<!-- This file contains project source information including a list of -->
<!-- project source files, project and process properties. This file, -->
<!-- along with the project source files, is sufficient to open and -->
<!-- implement in ISE Project Navigator. -->
<!-- -->
<!-- Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved. -->
</header>
 
<version xil_pn:ise_version="13.3" xil_pn:schema_version="2"/>
 
<files>
<file xil_pn:name="ag_6502.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
<association xil_pn:name="Implementation" xil_pn:seqID="6"/>
</file>
<file xil_pn:name="ag_keyb.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
<association xil_pn:name="Implementation" xil_pn:seqID="5"/>
</file>
<file xil_pn:name="ag_main.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="3"/>
<association xil_pn:name="Implementation" xil_pn:seqID="7"/>
</file>
<file xil_pn:name="ag_ram.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="4"/>
<association xil_pn:name="Implementation" xil_pn:seqID="4"/>
</file>
<file xil_pn:name="ag_video.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="5"/>
<association xil_pn:name="Implementation" xil_pn:seqID="3"/>
</file>
<file xil_pn:name="chip1.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="6"/>
<association xil_pn:name="Implementation" xil_pn:seqID="8"/>
</file>
<file xil_pn:name="clkdiv.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="7"/>
<association xil_pn:name="Implementation" xil_pn:seqID="2"/>
</file>
<file xil_pn:name="videoctl.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="8"/>
<association xil_pn:name="Implementation" xil_pn:seqID="1"/>
</file>
<file xil_pn:name="chip1.ucf" xil_pn:type="FILE_UCF">
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
</file>
</files>
 
<properties>
<property xil_pn:name="Add I/O Buffers" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Allow Logic Optimization Across Hierarchy" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Allow SelectMAP Pins to Persist" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Allow Unexpanded Blocks" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Allow Unmatched LOC Constraints" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Allow Unmatched Timing Group Constraints" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Asynchronous To Synchronous" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Auto Implementation Compile Order" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Auto Implementation Top" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Automatic BRAM Packing" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Automatically Insert glbl Module in the Netlist" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Automatically Run Generate Target PROM/ACE File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="BRAM Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/>
<property xil_pn:name="Bring Out Global Set/Reset Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Bring Out Global Tristate Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Bus Delimiter" xil_pn:value="&lt;>" xil_pn:valueState="default"/>
<property xil_pn:name="CLB Pack Factor Percentage" xil_pn:value="100" xil_pn:valueState="default"/>
<property xil_pn:name="Case" xil_pn:value="Maintain" xil_pn:valueState="default"/>
<property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/>
<property xil_pn:name="Change Device Speed To" xil_pn:value="-4" xil_pn:valueState="default"/>
<property xil_pn:name="Change Device Speed To Post Trace" xil_pn:value="-4" xil_pn:valueState="default"/>
<property xil_pn:name="Clock Enable" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Collapsing Input Limit (4-40)" xil_pn:value="32" xil_pn:valueState="default"/>
<property xil_pn:name="Collapsing Pterm Limit (3-56)" xil_pn:value="28" xil_pn:valueState="default"/>
<property xil_pn:name="Combinatorial Logic Optimization" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Compile CPLD Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile EDK Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile XilinxCoreLib (CORE Generator) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile for HDL Debugging" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Compile uni9000 (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Configuration Pin Done" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
<property xil_pn:name="Configuration Pin Program" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
<property xil_pn:name="Configuration Rate" xil_pn:value="Default (1)" xil_pn:valueState="default"/>
<property xil_pn:name="Correlate Output to Input Design" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create ASCII Configuration File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create Binary Configuration File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create Bit File" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Create I/O Pads from Ports" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create Logic Allocation File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create Mask File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Create ReadBack Data Files" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Cross Clock Analysis" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Decoder Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Default Powerup Value of Registers" xil_pn:value="Low" xil_pn:valueState="default"/>
<property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/>
<property xil_pn:name="Device" xil_pn:value="xc3s500e" xil_pn:valueState="non-default"/>
<property xil_pn:name="Device Family" xil_pn:value="Spartan3E" xil_pn:valueState="non-default"/>
<property xil_pn:name="Device Speed Grade/Select ABS Minimum" xil_pn:value="-4" xil_pn:valueState="default"/>
<property xil_pn:name="Do Not Escape Signal and Instance Names in Netlist" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Done (Output Events)" xil_pn:value="Default (4)" xil_pn:valueState="default"/>
<property xil_pn:name="Drive Done Pin High" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable BitStream Compression" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Cyclic Redundancy Checking (CRC)" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Outputs (Output Events)" xil_pn:value="Default (5)" xil_pn:valueState="default"/>
<property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Evaluation Development Board" xil_pn:value="Spartan-3E Starter Board" xil_pn:valueState="non-default"/>
<property xil_pn:name="Exclude Compilation of Deprecated EDK Cores" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Exclude Compilation of EDK Sub-Libraries" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Exhaustive Fit Mode" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Extra Effort" xil_pn:value="None" xil_pn:valueState="default"/>
<property xil_pn:name="Extra Effort (Highest PAR level only)" xil_pn:value="None" xil_pn:valueState="default"/>
<property xil_pn:name="FPGA Start-Up Clock" xil_pn:value="CCLK" xil_pn:valueState="default"/>
<property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="FSM Style" xil_pn:value="LUT" xil_pn:valueState="default"/>
<property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Flatten Output Netlist" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Function Block Input Limit (4-40)" xil_pn:value="38" xil_pn:valueState="default"/>
<property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="Functional Model Target Language Schematic" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Architecture Only (No Entity Declaration)" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Asynchronous Delay Report" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Clock Region Report" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Constraints Interaction Report" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Constraints Interaction Report Post Trace" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Datasheet Section" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Datasheet Section Post Trace" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Detailed MAP Report" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Multiple Hierarchical Netlist Files" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Post-Fit Power Data" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Post-Fit Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Post-Place &amp; Route Power Report" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Post-Place &amp; Route Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate RTL Schematic" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Generate SAIF File for Power Optimization/Estimation Par" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Testbench File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Timegroups Section" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generate Timegroups Section Post Trace" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Generics, Parameters" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Global Optimization Goal" xil_pn:value="AllClockNets" xil_pn:valueState="default"/>
<property xil_pn:name="Global Set/Reset Port Name" xil_pn:value="GSR_PORT" xil_pn:valueState="default"/>
<property xil_pn:name="Global Tristate Port Name" xil_pn:value="GTS_PORT" xil_pn:valueState="default"/>
<property xil_pn:name="HDL Equations Style" xil_pn:value="Source" xil_pn:valueState="default"/>
<property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/>
<property xil_pn:name="I/O Voltage Standard" xil_pn:value="LVCMOS18" xil_pn:valueState="default"/>
<property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/>
<property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Implementation Template" xil_pn:value="Optimize Density" xil_pn:valueState="default"/>
<property xil_pn:name="Implementation Top" xil_pn:value="Module|chip1" xil_pn:valueState="non-default"/>
<property xil_pn:name="Implementation Top File" xil_pn:value="chip1.v" xil_pn:valueState="non-default"/>
<property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/chip1" xil_pn:valueState="non-default"/>
<property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Include sdf_annotate task in Verilog File" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Incremental Compilation" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Input and tristate I/O Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/>
<property xil_pn:name="Insert Buffers to Prevent Pulse Swallowing" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Instantiation Template Target Language Xps" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="JTAG Pin TCK" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
<property xil_pn:name="JTAG Pin TDI" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
<property xil_pn:name="JTAG Pin TDO" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
<property xil_pn:name="JTAG Pin TMS" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
<property xil_pn:name="Keep Hierarchy" xil_pn:value="No" xil_pn:valueState="default"/>
<property xil_pn:name="Keep Hierarchy CPLD" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Language" xil_pn:value="VHDL" xil_pn:valueState="default"/>
<property xil_pn:name="Last Applied Goal" xil_pn:value="Balanced" xil_pn:valueState="default"/>
<property xil_pn:name="Last Applied Strategy" xil_pn:value="Xilinx Default (unlocked)" xil_pn:valueState="default"/>
<property xil_pn:name="Last Unlock Status" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Launch SDK after Export" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Library for Verilog Sources" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Load glbl" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Logic Optimization" xil_pn:value="Density" xil_pn:valueState="default"/>
<property xil_pn:name="Logical Shifter Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Macro Preserve" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Map Effort Level" xil_pn:value="High" xil_pn:valueState="default"/>
<property xil_pn:name="Map Slice Logic into Unused Block RAMs" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Max Fanout" xil_pn:value="500" xil_pn:valueState="default"/>
<property xil_pn:name="Maximum Number of Lines in Report" xil_pn:value="1000" xil_pn:valueState="default"/>
<property xil_pn:name="Maximum Signal Name Length" xil_pn:value="20" xil_pn:valueState="default"/>
<property xil_pn:name="Move First Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Move Last Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Multiplier Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Mux Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/>
<property xil_pn:name="Netlist Translation Type" xil_pn:value="Timestamp" xil_pn:valueState="default"/>
<property xil_pn:name="Number of Clock Buffers" xil_pn:value="24" xil_pn:valueState="default"/>
<property xil_pn:name="Number of Paths in Error/Verbose Report" xil_pn:value="3" xil_pn:valueState="default"/>
<property xil_pn:name="Number of Paths in Error/Verbose Report Post Trace" xil_pn:value="3" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/>
<property xil_pn:name="Optimization Strategy (Cover Mode)" xil_pn:value="Area" xil_pn:valueState="default"/>
<property xil_pn:name="Optimize Instantiated Primitives" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Other Bitgen Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other CPLD Fitter Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options Fit" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options Map" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options Par" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compiler Options Translate" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Compxlib Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Map Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other NETGEN Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Ngdbuild Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Place &amp; Route Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Programming Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Simulator Commands Behavioral" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Simulator Commands Fit" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Simulator Commands Post-Map" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Simulator Commands Post-Route" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Simulator Commands Post-Translate" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other Timing Report Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Output File Name" xil_pn:value="chip1" xil_pn:valueState="default"/>
<property xil_pn:name="Output Slew Rate" xil_pn:value="Fast" xil_pn:valueState="default"/>
<property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/>
<property xil_pn:name="Package" xil_pn:value="fg320" xil_pn:valueState="non-default"/>
<property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Perform Timing-Driven Packing and Placement" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Place &amp; Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/>
<property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/>
<property xil_pn:name="Placer Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/>
<property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/>
<property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="chip1_map.v" xil_pn:valueState="default"/>
<property xil_pn:name="Post Place &amp; Route Simulation Model Name" xil_pn:value="chip1_timesim.v" xil_pn:valueState="default"/>
<property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="chip1_synthesis.v" xil_pn:valueState="default"/>
<property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="chip1_translate.v" xil_pn:valueState="default"/>
<property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="Preserve Unused Inputs" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Priority Encoder Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Project Description" xil_pn:value="Implementation Fighter game with FPGA" xil_pn:valueState="non-default"/>
<property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/>
<property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="ROM Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="ROM Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="Read Cores" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Regenerate Core" xil_pn:value="Under Current Project Setting" xil_pn:valueState="default"/>
<property xil_pn:name="Register Balancing" xil_pn:value="No" xil_pn:valueState="default"/>
<property xil_pn:name="Register Duplication" xil_pn:value="Off" xil_pn:valueState="default"/>
<property xil_pn:name="Register Duplication Xst" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Release Write Enable (Output Events)" xil_pn:value="Default (6)" xil_pn:valueState="default"/>
<property xil_pn:name="Rename Design Instance in Testbench File to" xil_pn:value="UUT" xil_pn:valueState="default"/>
<property xil_pn:name="Rename Top Level Architecture To" xil_pn:value="Structure" xil_pn:valueState="default"/>
<property xil_pn:name="Rename Top Level Entity to" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Rename Top Level Module To" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Report Fastest Path(s) in Each Constraint" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Report Fastest Path(s) in Each Constraint Post Trace" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Report Paths by Endpoint" xil_pn:value="3" xil_pn:valueState="default"/>
<property xil_pn:name="Report Paths by Endpoint Post Trace" xil_pn:value="3" xil_pn:valueState="default"/>
<property xil_pn:name="Report Type" xil_pn:value="Verbose Report" xil_pn:valueState="default"/>
<property xil_pn:name="Report Type Post Trace" xil_pn:value="Verbose Report" xil_pn:valueState="default"/>
<property xil_pn:name="Report Unconstrained Paths" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Report Unconstrained Paths Post Trace" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Reset DCM if SHUTDOWN &amp; AGHIGH performed" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Reset On Configuration Pulse Width" xil_pn:value="100" xil_pn:valueState="default"/>
<property xil_pn:name="Resource Sharing" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Retain Hierarchy" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Router Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/>
<property xil_pn:name="Run Design Rules Checker (DRC)" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Run for Specified Time" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Run for Specified Time Map" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Run for Specified Time Par" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/>
<property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Source Node" xil_pn:value="UUT" xil_pn:valueState="default"/>
<property xil_pn:name="Shift Register Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Model Target" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
<property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/>
<property xil_pn:name="Slice Packing" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/>
<property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="Default" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Fit" xil_pn:value="Default" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/>
<property xil_pn:name="Speed Grade" xil_pn:value="-4" xil_pn:valueState="non-default"/>
<property xil_pn:name="Starting Placer Cost Table (1-100) Map" xil_pn:value="1" xil_pn:valueState="default"/>
<property xil_pn:name="Starting Placer Cost Table (1-100) Par" xil_pn:value="1" xil_pn:valueState="default"/>
<property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/>
<property xil_pn:name="Target Simulator" xil_pn:value="Please Specify" xil_pn:valueState="default"/>
<property xil_pn:name="Timing Mode Map" xil_pn:value="Non Timing Driven" xil_pn:valueState="default"/>
<property xil_pn:name="Timing Mode Par" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/>
<property xil_pn:name="Timing Report Format" xil_pn:value="Summary" xil_pn:valueState="default"/>
<property xil_pn:name="Top-Level Module Name in Output Netlist" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/>
<property xil_pn:name="Trim Unconnected Signals" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Tristate On Configuration Pulse Width" xil_pn:value="0" xil_pn:valueState="default"/>
<property xil_pn:name="Unused I/O Pad Termination Mode" xil_pn:value="Keeper" xil_pn:valueState="default"/>
<property xil_pn:name="Unused IOB Pins" xil_pn:value="Pull Down" xil_pn:valueState="default"/>
<property xil_pn:name="Use 64-bit PlanAhead on 64-bit Systems" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use Clock Enable" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Project File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Project File Fit" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Project File Post-Map" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Project File Post-Route" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Project File Post-Translate" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Simulation Command File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Simulation Command File Map" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Simulation Command File Par" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Simulation Command File Translate" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Waveform Configuration File Behav" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Waveform Configuration File Fit" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Waveform Configuration File Map" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Waveform Configuration File Par" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Custom Waveform Configuration File Translate" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Data Gate" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use Direct Input for Input Registers" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use Global Clocks" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use Global Output Enables" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use Global Set/Reset" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use LOC Constraints" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use Location Constraints" xil_pn:value="Always" xil_pn:valueState="default"/>
<property xil_pn:name="Use Multi-level Logic Optimization" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use RLOC Constraints" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Use Smart Guide" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Use Synchronous Reset" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Use Synchronous Set" xil_pn:value="Yes" xil_pn:valueState="default"/>
<property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Use Timing Constraints" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/>
<property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/>
<property xil_pn:name="Value Range Check" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Verilog 2001 Xst" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Verilog Macros" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="WYSIWYG" xil_pn:value="None" xil_pn:valueState="default"/>
<property xil_pn:name="Wait for DLL Lock (Output Events)" xil_pn:value="Default (NoWait)" xil_pn:valueState="default"/>
<property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="non-default"/>
<property xil_pn:name="Write Timing Constraints" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="XOR Collapsing" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="XOR Preserve" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="iMPACT Project File" xil_pn:value="auto_project.ipf" xil_pn:valueState="non-default"/>
<!-- -->
<!-- The following properties are for internal use only. These should not be modified.-->
<!-- -->
<property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_DesignName" xil_pn:value="fighter" xil_pn:valueState="non-default"/>
<property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan3e" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_PostFitSimTop" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_PostMapSimTop" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_PostParSimTop" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_PostSynthSimTop" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_PostXlateSimTop" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_PreSynthesis" xil_pn:value="PreSynthesis" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2012-03-24T12:37:48" xil_pn:valueState="non-default"/>
<property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="9E6BCA8549714D669EAB2F5DCF97A7CA" xil_pn:valueState="non-default"/>
<property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/>
<property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/>
</properties>
 
<bindings/>
 
<libraries/>
 
<autoManagedFiles>
<!-- The following files are identified by `include statements in verilog -->
<!-- source files and are automatically managed by Project Navigator. -->
<!-- -->
<!-- Do not hand-edit this section, as it will be overwritten when the -->
<!-- project is analyzed based on files automatically identified as -->
<!-- include files. -->
<file xil_pn:name="states.v" xil_pn:type="FILE_VERILOG"/>
<file xil_pn:name="monitor7.v" xil_pn:type="FILE_VERILOG"/>
<file xil_pn:name="agathe7.v" xil_pn:type="FILE_VERILOG"/>
<file xil_pn:name="fighter.v" xil_pn:type="FILE_VERILOG"/>
</autoManagedFiles>
 
</project>
/fighter/ag_main.v
0,0 → 1,168
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: BMSTU
// Engineer: Oleg Odintsov
//
// Create Date: 15:09:47 01/19/2012
// Design Name:
// Module Name: ag_main
// Project Name: Agat Hardware Project
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
 
module RAM2kx8(input CLK, input[10:0] AB, input CS, input READ, output[7:0] DO, input[7:0] DI);
reg[7:0] mem[0:2047];
reg[7:0] R;
assign DO = CS? R: 8'bZ;
initial begin
`include "monitor7.v"
mem['h7FC] = 8'h00;
mem['h7FD] = 8'h50;
end
always @(posedge CLK) if (CS) if (READ) R <= mem[AB]; else mem[AB] <= DI;
endmodule
 
module RAM4kx8(input CLK, input[11:0] AB, input CS, input READ, output[7:0] DO, input[7:0] DI);
reg[7:0] mem[0:4095];
reg[7:0] R;
assign DO = CS? R: 8'bZ;
always @(posedge CLK) if (CS) if (READ) R <= mem[AB]; else mem[AB] <= DI;
endmodule
 
module RAM8kx8(input CLK, input[12:0] AB, input CS, input READ, output[7:0] DO, input[7:0] DI);
reg[7:0] mem[0:8191];
reg[7:0] R;
assign DO = CS? R: 8'bZ;
always @(posedge CLK) if (CS) if (READ) R <= mem[AB]; else mem[AB] <= DI;
endmodule
 
module ag_main(
input clk50,
input[3:0] btns,
output[7:0] leds,
output[3:0] controls,
output[4:0] vga_bus,
input[1:0] ps2_bus_in,
output clk_cpu
);
 
// assign leds = 0;
// assign controls = 0;
// assign vga_bus = 0;
wire clk1, clk10;
clk_div#5 cd5(clk50, clk10);
clk_div#10 cd10(clk10, clk1);
 
wire clk_vram;
wire[13:0] AB2;
wire[15:0] DI2;
wire [15:0] AB; // address bus
wire [7:0] DI; // data in, read bus
wire [7:0] DO; // data out, write bus
wire read;
wire rom_cs, ram_cs, xram_cs;
wire phi_1, phi_2;
RAM32Kx8x16 base_ram(phi_2, AB[14:0], ram_cs, read, DI, DO,
clk_vram, AB2, 1, DI2);
RAM2kx8 rom1(phi_2, AB[10:0], rom_cs, read, DI, DO);
RAM8kx8 xram(phi_2, AB[12:0], xram_cs, read, DI, DO);
wire [3:0] AB_HH = AB[15:12];
wire [3:0] AB_HL = AB[11:8];
wire [3:0] AB_LH = AB[7:4];
wire [3:0] AB_LL = AB[3:0];
wire [7:0] AB_H = AB[15:8];
wire [7:0] AB_L = AB[7:0];
wire AB_CXXX = (AB_HH == 4'hC);
wire AB_FXXX = (AB_HH == 4'hF);
wire AB_C0XX = AB_CXXX && !AB_HL;
wire AB_C00X = AB_C0XX && (AB_LH == 4'h0);
wire AB_C01X = AB_C0XX && (AB_LH == 4'h1);
wire AB_C02X = AB_C0XX && (AB_LH == 4'h2);
wire AB_C03X = AB_C0XX && (AB_LH == 4'h3);
wire AB_C7XX = AB_CXXX && (AB_HL == 4'h7);
assign rom_cs = AB_FXXX && AB[11]; // F800-FFFF
assign ram_cs = !AB[15];
assign xram_cs = (AB_HH[3:1] == 3'b100);
 
reg reset_auto = 1;
wire reset;
wire WE = ~read; // write enable
supply0 IRQ; // interrupt request
supply0 NMI; // non-maskable interrupt request
supply1 RDY; // Ready signal. Pauses CPU when RDY=0
supply1 SO; // Set Overflow, not used.
wire SYNC;
reg[7:0] vmode = 0;
wire[7:0] key_reg;
reg[7:0] b_reg;
reg lb;
wire key_rus;
reg key_clear = 0;
wire key_rst, key_pause;
reg beep_reg = 0, tape_out_reg = 0;
 
assign reset = 0;//btns[0];
assign leds = AB[11:4];
assign controls = {1'b0, beep_reg ^ tape_out_reg, tape_out_reg, beep_reg};
 
ag_video video(clk50, vmode, clk_vram, AB2, DI2, vga_bus);
wire[1:0] ps2_bus;
signal_filter sf1(clk1, ps2_bus_in[0], ps2_bus[0]);
signal_filter sf2(clk1, ps2_bus_in[1], ps2_bus[1]);
 
 
ag_keyb keyb(phi_2, ps2_bus, key_reg, key_clear, key_rus, key_rst, key_pause);
assign DI = (AB_C00X && !WE)?b_reg?b_reg:key_reg:8'bZ;
always @(posedge phi_2) begin
key_clear <= AB_C01X;
if (AB_C01X) b_reg <= 0;
if (btns[2] & ~lb) b_reg <= 8'hDD;
else if (btns[0]) b_reg <= 8'h9C;
else if (btns[1]) b_reg <= 8'hA0;
else if (btns[3]) b_reg <= 8'h93;
lb <= btns[2];
if (AB_C02X) tape_out_reg <= ~tape_out_reg;
if (AB_C03X) beep_reg <= ~beep_reg;
if (AB_C7XX) vmode <= AB_L;
end
always @(posedge vga_bus[0]) begin
reset_auto <= 0;
end
ag6502_ext_clock clk(clk50, clk1, phi_1, phi_2);
ag6502 cpu(clk1, phi_1, phi_2, AB, read, DI, DO,
RDY & ~key_pause, ~(reset | reset_auto | key_rst), ~IRQ, ~NMI, SO, SYNC);
assign clk_cpu = clk1;
 
endmodule
/fighter/FIGHTER.bin Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
fighter/FIGHTER.bin Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: fighter/ag_keyb.v =================================================================== --- fighter/ag_keyb.v (nonexistent) +++ fighter/ag_keyb.v (revision 3) @@ -0,0 +1,279 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: BMSTU +// Engineer: Oleg Odintsov +// +// Create Date: 00:26:47 02/26/2012 +// Design Name: +// Module Name: ag_keyb +// Project Name: Agat Hardware Project +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module signal_filter(input clk, input in, output reg out); + always @(posedge clk) begin + out <= in; + end +endmodule + + +module ps2_keyb_driver(ps2_clk, ps2_data, ps2_code, ps2_up, ps2_ext, ps2_event); + input wire ps2_clk, ps2_data; + output reg[7:0] ps2_code = 0; + output reg ps2_up = 0, ps2_ext = 0, ps2_event = 0; + + reg[10:0] shreg = 11'b11111111111; + wire[10:0] shnew = {ps2_data, shreg[10:1]}; + wire start = shnew[0], stop = shnew[10], parity = shnew[9]; + wire[7:0] data = shnew[8:1]; + + always @(negedge ps2_clk) begin + if (!start && stop && (parity == ~^data)) begin + if (data == 8'hE0) begin + ps2_ext <= 1; + end else if (data == 8'hF0) begin + ps2_up <= 1; + end else begin + ps2_code <= data; + ps2_event <= 1; + end + shreg <= 11'b11111111111; + end else begin + if (ps2_event) begin + ps2_up <= 0; + ps2_ext <= 0; + ps2_event <= 0; + end + shreg <= shnew; + end + end +endmodule + +module ag_reg_decoder(keyb_in, shift, ctrl, keyb_out); + input wire[6:0] keyb_in; + input wire shift, ctrl; + output wire[6:0] keyb_out; + + wire is_alpha = keyb_in[6] && !keyb_in[5]; + wire is_digit = !keyb_in[6] && keyb_in[5] && keyb_in[3:0]; + + assign keyb_out = + is_alpha? + (shift?{1'b1,1'b1,keyb_in[4:0]}: + ctrl?{1'b0,1'b0,keyb_in[4:0]}: + keyb_in): + is_digit? + (shift?{1'b0,1'b1,~keyb_in[4],keyb_in[3:0]}: + keyb_in): + keyb_in; +endmodule + +module ag_keyb_decoder(ps2_code, ps2_ext, shift, ctrl, alt, rus, keyb_code); + input wire[7:0] ps2_code; + input wire ps2_ext, shift, ctrl, alt, rus; + output wire[6:0] keyb_code; + reg[6:0] keyb_table[0:511]; // eng + rus + integer i; + + wire[6:0] keyb_in; + + assign keyb_in = keyb_table[{rus,ps2_code}]; + ag_reg_decoder rd(keyb_in, shift, ctrl, keyb_code); + + initial begin + for (i = 0; i < 512; i = i + 1) keyb_table[i] = 0; + + // eng table + keyb_table['h15] = 'h51; // Q + keyb_table['h1D] = 'h57; // W + keyb_table['h24] = 'h45; // E + keyb_table['h2D] = 'h52; // R + keyb_table['h2C] = 'h54; // T + keyb_table['h35] = 'h59; // Y + keyb_table['h3C] = 'h55; // U + keyb_table['h43] = 'h49; // I + keyb_table['h44] = 'h4F; // O + keyb_table['h4D] = 'h50; // P + keyb_table['h54] = 'h5B; // { + keyb_table['h5B] = 'h5D; // } + + keyb_table['h1C] = 'h41; // A + keyb_table['h1B] = 'h53; // S + keyb_table['h23] = 'h44; // D + keyb_table['h2B] = 'h46; // F + keyb_table['h34] = 'h47; // G + keyb_table['h33] = 'h48; // H + keyb_table['h3B] = 'h4A; // J + keyb_table['h42] = 'h4B; // K + keyb_table['h4B] = 'h4C; // L + keyb_table['h4C] = 'h2A; // : + keyb_table['h52] = 'h22; // " + keyb_table['h5D] = 'h5C; // \ + keyb_table['h5A] = 'h0D; // enter + + keyb_table['h1A] = 'h5A; // Z + keyb_table['h22] = 'h58; // X + keyb_table['h21] = 'h43; // C + keyb_table['h2A] = 'h56; // V + keyb_table['h32] = 'h42; // B + keyb_table['h31] = 'h4E; // N + keyb_table['h3A] = 'h4D; // M + keyb_table['h41] = 'h2C; // < + keyb_table['h49] = 'h2E; // > + keyb_table['h4A] = 'h2F; // ? + + keyb_table['h05] = 'h04; // F1 + keyb_table['h06] = 'h05; // F2 + keyb_table['h04] = 'h06; // F3 + + keyb_table['h75] = 'h99; // UP + keyb_table['h74] = 'h95; // RIGHT + keyb_table['h6B] = 'h88; // LEFT + keyb_table['h66] = 'h88; // BS + keyb_table['h72] = 'h9A; // DOWN + keyb_table['h76] = 'h9B; // ESC + keyb_table['h29] = 'h20; // SPACE + + keyb_table['h0E] = 'h00; // ` + keyb_table['h16] = 'h31; // 1 + keyb_table['h1E] = 'h32; // 2 + keyb_table['h26] = 'h33; // 3 + keyb_table['h25] = 'h34; // 4 + keyb_table['h2E] = 'h35; // 5 + keyb_table['h36] = 'h36; // 6 + keyb_table['h3D] = 'h37; // 7 + keyb_table['h3E] = 'h38; // 8 + keyb_table['h46] = 'h39; // 9 + keyb_table['h45] = 'h30; // 0 + keyb_table['h4E] = 'h2D; // - + keyb_table['h55] = 'h3B; // = + + // rus table + 100h + keyb_table['h115] = 'h4A; // Q + keyb_table['h11D] = 'h43; // W + keyb_table['h124] = 'h55; // E + keyb_table['h12D] = 'h4B; // R + keyb_table['h12C] = 'h45; // T + keyb_table['h135] = 'h4E; // Y + keyb_table['h13C] = 'h47; // U + keyb_table['h143] = 'h5B; // I + keyb_table['h144] = 'h5D; // O + keyb_table['h14D] = 'h5A; // P + keyb_table['h154] = 'h48; // { + keyb_table['h15B] = 'h3A; // }, check + + keyb_table['h11C] = 'h46; // A + keyb_table['h11B] = 'h59; // S + keyb_table['h123] = 'h57; // D + keyb_table['h12B] = 'h41; // F + keyb_table['h134] = 'h50; // G + keyb_table['h133] = 'h52; // H + keyb_table['h13B] = 'h4F; // J + keyb_table['h142] = 'h4C; // K + keyb_table['h14B] = 'h44; // L + keyb_table['h14C] = 'h56; // : + keyb_table['h152] = 'h5C; // " + keyb_table['h15D] = 'h2B; // | -> . + keyb_table['h15A] = 'h0D; // enter + + keyb_table['h11A] = 'h51; // Z + keyb_table['h122] = 'h5E; // X + keyb_table['h121] = 'h53; // C + keyb_table['h12A] = 'h4D; // V + keyb_table['h132] = 'h49; // B + keyb_table['h131] = 'h54; // N + keyb_table['h13A] = 'h58; // M + keyb_table['h141] = 'h42; // < + keyb_table['h149] = 'h2C; // > + keyb_table['h14A] = 'h2F; // ? + + keyb_table['h105] = 'h04; // F1 + keyb_table['h106] = 'h05; // F2 + keyb_table['h104] = 'h06; // F3 + + keyb_table['h175] = 'h99; // UP + keyb_table['h174] = 'h95; // RIGHT + keyb_table['h16B] = 'h88; // LEFT + keyb_table['h166] = 'h88; // BS + keyb_table['h172] = 'h9A; // DOWN + keyb_table['h176] = 'h9B; // ESC + keyb_table['h129] = 'h20; // SPACE + + keyb_table['h10E] = 'h00; // ` + keyb_table['h116] = 'h31; // 1 + keyb_table['h11E] = 'h32; // 2 + keyb_table['h126] = 'h33; // 3 + keyb_table['h125] = 'h34; // 4 + keyb_table['h12E] = 'h35; // 5 + keyb_table['h136] = 'h36; // 6 + keyb_table['h13D] = 'h37; // 7 + keyb_table['h13E] = 'h38; // 8 + keyb_table['h146] = 'h39; // 9 + keyb_table['h145] = 'h30; // 0 + keyb_table['h14E] = 'h2D; // - + keyb_table['h155] = 'h3B; // = + end +endmodule + +module ag_keyb(clk, ps2_bus, keyb_reg, keyb_clear, keyb_rus, keyb_rst, keyb_pause); + input clk; + input wire[1:0] ps2_bus; + output wire[7:0] keyb_reg; + input wire keyb_clear; + output wire keyb_rus; + output wire keyb_rst; + output wire keyb_pause; + + + wire ps2_clk, ps2_data; + assign {ps2_clk, ps2_data} = ps2_bus; + + reg[7:0] keyb_code; + reg clr = 0, got = 0; + reg lshift = 0, rshift = 0, ctrl = 0, alt = 0, rus = 0, rst = 0, pause = 0; + wire[7:0] ps2_code; + wire ps2_up, ps2_ext, ps2_event; + + assign keyb_reg = clr?0:keyb_code; + assign keyb_rus = rus; + assign keyb_rst = rst; + assign keyb_pause = pause; + + wire[6:0] dec_code; + + ps2_keyb_driver kd(ps2_clk, ps2_data, ps2_code, ps2_up, ps2_ext, ps2_event); + ag_keyb_decoder dec(ps2_code, ps2_ext, lshift | rshift, ctrl, alt, rus, dec_code); + + always @(posedge clk) begin + if (keyb_clear) clr <= 1; + if (ps2_event && !got) begin + if (!ps2_up) begin + if (ps2_code == 8'h12 && ctrl) rus <= 0; + else if (ps2_code == 8'h14 && lshift) rus <= 0; + else if (ps2_code == 8'h59 && ctrl) rus <= 1; + else if (ps2_code == 8'h14 && rshift) rus <= 1; + clr <= 0; + keyb_code <= {|dec_code, dec_code}; + end + if (ps2_code == 8'h12) lshift <= ~ps2_up; + else if (ps2_code == 8'h59) rshift <= ~ps2_up; + else if (ps2_code == 8'h14 || ps2_code == 8'h0D) ctrl <= ~ps2_up; // ctrl or tab + else if (ps2_code == 8'h11) alt <= ~ps2_up; + else if (ps2_code == 8'h7E) pause <= ~ps2_up; + + if (ps2_code == 8'h76 && ctrl) rst <= ~ps2_up; + got <= 1; + end + if (!ps2_event) got <= 0; + end +endmodule Index: fighter/states.v =================================================================== --- fighter/states.v (nonexistent) +++ fighter/states.v (revision 3) @@ -0,0 +1,337 @@ +// This file has been generated automatically +// by the GenStates tool +// Copyright (c) Oleg Odintsov +// This tool is a part of Agat hardware project + +// Level of optimization: infinite +// Total number of actions: 82 + wire E_AB__PC; + wire E_AB__EA; + wire E_AB__S; + wire E_PC__PC_1; + wire E_T__0; + wire E_N_Z__SB; + wire E_N_Z__RES; + wire E_N_Z__SB_RES; + wire E_C__RES; + wire E_V__RES; + wire E_V__SB_6_; + wire A_ALU_CF_0; + wire A_ALU_DF_0; + wire A_ALU_OP_ADC; + wire A_SB_0; + wire A_ALU_B_SB; + wire A_ALU_CF_1; + wire A_ALU_CF_ALUC; + wire A_ALU_B_NOTSB; + wire A_ALU_OP_ORA; + wire A_ALU_A_DB; + wire A_SB_X; + wire A_ALU_A_EAL; + wire A_SB_PCL; + wire A_SB_Y; + wire A_ALU_A_ALU; + wire A_ALU_A_S; + wire E_CF__IR_5_; + wire E_IF__IR_5_; + wire E_DF__IR_5_; + wire E_VF__0; + wire E_T__0IFNF__IR_5_; + wire E_T__0IFVF__IR_5_; + wire E_T__0IFCF__IR_5_; + wire E_T__0IFZF__IR_5_; + wire E_EA__DB; + wire E_EAL__DB; + wire E_PCL__RES; + wire E_T__0IF_C7F; + wire A_ALU_A_SIGN; + wire A_SB_PCH; + wire E_PCH__RES; + wire E_EAH__DB; + wire E_EAL__ALU; + wire E_T__T_1IF_ALUCZ; + wire E_EAH__ALU; + wire E_PCL__ALU; + wire A_SB_DB; + wire E_AC__SB; + wire A_ALU_A_AC; + wire E_AC__RES; + wire A_ALU_OP_AND; + wire A_ALU_OP_EOR; + wire A_ALU_A_X; + wire A_ALU_A_Y; + wire A_ALU_DF_D; + wire A_ALU_CF_C; + wire A_ALU_OP_ASL; + wire A_RW_W; + wire A_SB_ALU; + wire E_DB__SB; + wire A_ALU_OP_LSR; + wire A_ALU_OP_ROL; + wire A_ALU_OP_ROR; + wire A_SB_AC; + wire E_X__SB; + wire E_Y__SB; + wire A_SB_S; + wire E_S__SB; + wire E_PC__EA; + wire E_S__ALU; + wire A_SB_P; + wire E_P__SB; + wire E_X__RES; + wire E_Y__RES; + wire E_DB__ALU; + wire E_DB__PCH; + wire E_PCL__EAL; + wire E_DB__PCL; + wire E_DB__P; + wire E_P__DB; + wire E_PCL__DB; + +// Actions assignments + +// action: AB <= PC: + assign E_AB__PC = (!L[10] && ((!L[0] && ((!L[1] && ((!L[2] && ((!L[9] && (!L[3] || (L[3] && ((!L[4] && (!L[7] || ({L[7],L[8]} == 2'b10))) || (L[4] && ((!L[5] && ((!L[6] && (!L[8] || ({L[7],L[8]} == 2'b01))) || L[6])) || L[5])))))) || ({L[3],L[4],L[9]} == 3'b011))) || (L[2] && (!L[9] || ({L[3],L[8],L[9]} == 3'b101))))) || (L[1] && ((!L[9] && ((!L[2] && ((!L[8] && (({L[3],L[4],L[7]} == 3'b001) || L[3])) || ({L[3],L[4],L[7],L[8]} == 4'b0011))) || L[2])) || ({L[2],L[3],L[8],L[9]} == 4'b1101))))) || (L[0] && ((!L[9] && (!L[1] || (L[1] && ((!L[2] && (!L[3] || (L[3] && ((!L[4] && ((!L[5] && ((!L[6] && (!L[8] || ({L[7],L[8]} == 2'b01))) || L[6])) || L[5])) || L[4])))) || L[2])))) || (({L[3],L[8],L[9]} == 3'b101) && (({L[2],L[4]} == 2'b01) || L[2])))))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[7],L[8],L[9],L[10]} == 10'b0000010101); + +// action: AB <= EA: + assign E_AB__EA = (({L[9],L[10]} == 2'b01) && ((!L[2] && (({L[0],L[1],L[3],L[4],L[5],L[6],L[7],L[8]} == 8'b00000001) || (L[0] && (!L[3] || ({L[3],L[4],L[8]} == 3'b110))))) || (({L[2],L[3],L[8]} == 3'b110) && (({L[0],L[1],L[4],L[5],L[6],L[7]} == 6'b000110) || L[4])))) || (L[9] && ((!L[10] && ((({L[0],L[2]} == 2'b01) && ((!L[3] && (({L[4],L[8]} == 2'b00) || L[4])) || ({L[3],L[8]} == 2'b11))) || (L[0] && ((!L[3] && ((!L[1] && (!L[2] || (L[2] && (({L[4],L[8]} == 2'b00) || L[4])))) || (L[1] && (!L[2] || (L[2] && (({L[4],L[8]} == 2'b00) || L[4])))))) || (({L[3],L[8]} == 2'b11) && (({L[2],L[4]} == 2'b01) || L[2])))))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[10]} == 10'b0000000001))); + +// action: AB <= S: + assign E_AB__S = (({L[0],L[1],L[2],L[3],L[4],L[7],L[9],L[10]} == 8'b00000001) && (!L[8] || ({L[5],L[6],L[8]} == 3'b011))) || (({L[0],L[1],L[2],L[4],L[7],L[9],L[10]} == 7'b0000010) && (!L[3] || (L[3] && (({L[5],L[8]} == 2'b00) || L[5])))); + +// action: PC <= PC + 1: + assign E_PC__PC_1 = (!L[10] && ((!L[9] && ((!L[0] && ((!L[1] && ((!L[2] && (!L[8] || (({L[3],L[8]} == 2'b01) && ((!L[4] && (({L[5],L[6],L[7]} == 3'b100) || L[7])) || L[4])))) || L[2])) || (L[1] && ((!L[2] && ((!L[8] && (({L[3],L[4],L[7]} == 3'b001) || L[3])) || ({L[3],L[4],L[7],L[8]} == 4'b0011))) || L[2])))) || (L[0] && (!L[1] || (L[1] && ((!L[2] && (!L[3] || (L[3] && ((!L[4] && ((!L[5] && ((!L[6] && (!L[8] || ({L[7],L[8]} == 2'b01))) || L[6])) || L[5])) || L[4])))) || L[2])))))) || (({L[3],L[8],L[9]} == 3'b101) && (({L[0],L[2],L[4]} == 3'b101) || (L[2] && ((!L[0] && ((!L[1] && ((!L[4] && (!L[5] || (L[5] && (({L[6],L[7]} == 2'b00) || L[7])))) || L[4])) || L[1])) || L[0])))))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000110101); + +// action: T <= 0: + assign E_T__0 = (!L[0] && ((!L[1] && ((!L[2] && ((!L[10] && ((({L[3],L[8],L[9]} == 3'b101) && (({L[4],L[5],L[7]} == 3'b000) || (L[4] && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])))) || (L[8] && ((({L[7],L[9]} == 2'b01) && (({L[3],L[4],L[5]} == 3'b101) || ({L[3],L[4]} == 2'b01))) || (L[7] && ((!L[9] && (!L[4] || ({L[3],L[4],L[5],L[6]} == 4'b1100))) || ({L[3],L[4],L[9]} == 3'b011))))))) || (({L[3],L[4],L[7],L[10]} == 4'b0001) && (({L[5],L[6],L[8],L[9]} == 4'b0001) || (({L[8],L[9]} == 2'b10) && (({L[5],L[6]} == 2'b01) || L[5])))))) || (L[2] && ((({L[3],L[8],L[9],L[10]} == 4'b1001) && (({L[4],L[5],L[6],L[7]} == 4'b0110) || L[4])) || (({L[9],L[10]} == 2'b10) && ((!L[4] && (({L[3],L[8]} == 2'b00) || (({L[3],L[8]} == 2'b11) && (!L[5] || (L[5] && (({L[6],L[7]} == 2'b00) || L[7])))))) || ({L[3],L[4],L[8]} == 3'b011))))))) || (L[1] && ((({L[2],L[8],L[9],L[10]} == 4'b0100) && (({L[3],L[4],L[7]} == 3'b001) || L[3])) || (L[2] && ((({L[6],L[7],L[9],L[10]} == 4'b0110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))) || (L[10] && ((!L[9] && ((!L[3] && ((({L[4],L[8]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[4],L[8]} == 2'b11) && (({L[6],L[7]} == 2'b00) || L[6])))) || (L[3] && (({L[4],L[6],L[7],L[8]} == 4'b1010) || (({L[4],L[8]} == 2'b01) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (({L[3],L[4],L[8],L[9]} == 4'b1101) && (({L[6],L[7]} == 2'b00) || L[6])))))))))) || (L[0] && ((!L[9] && ((!L[2] && (({L[3],L[4],L[8],L[10]} == 4'b1101) || (L[8] && ((!L[4] && (({L[3],L[10]} == 2'b01) || ({L[3],L[10]} == 2'b10))) || ({L[3],L[4],L[10]} == 3'b011))))) || ({L[2],L[3],L[4],L[8],L[10]} == 5'b11101))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b101))))); + +// action: N,Z <= SB: + assign E_N_Z__SB = (({L[6],L[7]} == 2'b01) && ((({L[0],L[2],L[3],L[5],L[8],L[9],L[10]} == 7'b0010100) && (({L[1],L[4]} == 2'b01) || ({L[1],L[4]} == 2'b10))) || (L[5] && ((!L[9] && ((!L[2] && (({L[0],L[1],L[3],L[4],L[8],L[10]} == 6'b101101) || (L[8] && ((!L[10] && ((!L[4] && (({L[0],L[3]} == 2'b00) || L[3])) || ({L[0],L[1],L[3],L[4]} == 4'b0111))) || ({L[0],L[3],L[10]} == 3'b101))))) || ({L[2],L[3],L[4],L[8],L[10]} == 5'b11101))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b101))))))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010110110); + +// action: N,Z <= RES: + assign E_N_Z__RES = (!L[9] && ((({L[2],L[4],L[8],L[10]} == 4'b0010) && (({L[0],L[1],L[3],L[6],L[7]} == 5'b00011) || (L[3] && ((!L[0] && ((({L[1],L[7]} == 2'b01) && (({L[5],L[6]} == 2'b00) || L[6])) || (L[1] && (!L[7] || ({L[5],L[6],L[7]} == 3'b011))))) || (L[0] && (({L[1],L[6],L[7]} == 3'b000) || (L[6] && (({L[1],L[5]} == 2'b00) || (L[5] && (({L[1],L[7]} == 2'b00) || L[7])))))))))) || (L[10] && ((({L[0],L[1],L[2]} == 3'b011) && ((({L[3],L[4],L[8]} == 3'b010) && (({L[6],L[7]} == 2'b00) || L[6])) || (L[3] && ((({L[4],L[8]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[4],L[8]} == 2'b11) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (({L[0],L[1]} == 2'b10) && ((({L[2],L[3],L[4],L[8]} == 4'b0001) && (({L[6],L[7]} == 2'b00) || L[6])) || (L[4] && ((({L[2],L[3],L[8]} == 3'b001) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[3],L[8]} == 2'b10) && (({L[6],L[7]} == 2'b00) || L[6])))))))))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[1] && ((({L[0],L[4],L[6],L[7]} == 4'b0011) && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || (L[0] && ((!L[4] && ((({L[3],L[8]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[3],L[8]} == 2'b11) && (({L[6],L[7]} == 2'b00) || L[6])))) || (({L[3],L[4],L[8]} == 3'b011) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (({L[0],L[1],L[3],L[4],L[8]} == 5'b01001) && (({L[6],L[7]} == 2'b00) || L[6])))); + +// action: N,Z <= SB,RES: + assign E_N_Z__SB_RES = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00100100010) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00110100110); + +// action: C <= RES: + assign E_C__RES = (({L[0],L[1],L[6],L[7]} == 4'b0100) && (({L[2],L[3],L[4],L[8],L[9],L[10]} == 6'b010100) || (L[2] && ((({L[9],L[10]} == 2'b01) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || ({L[3],L[4],L[8],L[9],L[10]} == 5'b00110))))) || (L[6] && ((!L[9] && ((({L[2],L[4],L[8],L[10]} == 4'b0010) && (({L[0],L[1],L[3],L[7]} == 4'b0001) || (L[3] && (({L[0],L[1],L[7]} == 3'b010) || (L[0] && (({L[1],L[5],L[7]} == 3'b001) || (L[5] && (({L[1],L[7]} == 2'b00) || L[7])))))))) || (L[10] && ((({L[0],L[1],L[2],L[7]} == 4'b0110) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || (({L[0],L[1]} == 2'b10) && ((({L[2],L[3],L[4],L[8]} == 4'b0001) && (({L[5],L[7]} == 2'b01) || L[5])) || (L[4] && ((({L[2],L[3],L[8]} == 3'b001) && (({L[5],L[7]} == 2'b01) || L[5])) || (({L[3],L[8]} == 2'b10) && (({L[5],L[7]} == 2'b01) || L[5])))))))))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[1] && ((!L[4] && ((({L[0],L[5],L[7]} == 3'b110) && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || (L[7] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))))) || (({L[0],L[3],L[4],L[8]} == 4'b1011) && (({L[5],L[7]} == 2'b01) || L[5])))) || ({L[0],L[1],L[3],L[4],L[7],L[8]} == 6'b010001))))); + +// action: V <= RES: + assign E_V__RES = (({L[0],L[5],L[6],L[9]} == 4'b1110) && ((!L[2] && (({L[1],L[3],L[4],L[8],L[10]} == 5'b01101) || (L[8] && ((!L[4] && (({L[1],L[3],L[10]} == 3'b001) || (({L[3],L[10]} == 2'b10) && (({L[1],L[7]} == 2'b00) || L[7])))) || ({L[1],L[3],L[4],L[10]} == 4'b0011))))) || ({L[1],L[2],L[3],L[4],L[8],L[10]} == 6'b011101))) || (({L[0],L[1],L[2],L[5],L[6],L[9],L[10]} == 7'b1011110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))); + +// action: V <= SB[6]: + assign E_V__SB_6_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00100100010) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00110100110); + +// action: ALU_CF = 0: + assign A_ALU_CF_0 = (!L[10] && ((({L[2],L[3],L[8],L[9]} == 4'b0001) && (({L[0],L[1],L[4],L[6],L[7]} == 5'b00000) || (L[4] && (({L[0],L[1]} == 2'b00) || L[0])))) || (L[8] && ((!L[9] && ((!L[2] && ((({L[0],L[4],L[5]} == 3'b000) && (({L[1],L[3],L[6],L[7]} == 4'b0000) || (L[3] && (({L[1],L[6]} == 2'b00) || (L[6] && (({L[1],L[7]} == 2'b00) || ({L[1],L[7]} == 2'b11))))))) || (L[0] && (({L[3],L[4]} == 2'b00) || ({L[3],L[4]} == 2'b11))))) || ({L[2],L[4]} == 2'b11))) || (({L[0],L[3],L[9]} == 3'b001) && ((({L[1],L[2]} == 2'b00) && (({L[4],L[6],L[7]} == 3'b000) || L[4])) || ({L[1],L[2],L[4],L[5],L[6],L[7]} == 6'b110011))))))) || (({L[0],L[1],L[2],L[5],L[6],L[7],L[9],L[10]} == 8'b01101101) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))); + +// action: ALU_DF = 0: + assign A_ALU_DF_0 = (!L[9] && ((({L[8],L[10]} == 2'b01) && (({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7]} == 8'b00000000) || (L[6] && (({L[0],L[1],L[2],L[3],L[4],L[5],L[7]} == 7'b0000000) || (L[7] && (({L[0],L[1],L[2],L[3],L[4],L[5]} == 6'b100110) || (L[2] && (({L[0],L[1],L[3],L[4],L[5]} == 5'b10110) || (({L[0],L[1]} == 2'b01) && (({L[3],L[4]} == 2'b01) || ({L[3],L[4]} == 2'b10))))))))))) || (L[8] && ((!L[10] && ((!L[2] && ((({L[0],L[4]} == 2'b00) && ((({L[1],L[3]} == 2'b00) && (({L[5],L[6],L[7]} == 3'b000) || L[6])) || (L[3] && ((!L[5] && (({L[1],L[6]} == 2'b00) || (L[6] && (({L[1],L[7]} == 2'b00) || L[7])))) || (({L[1],L[5]} == 2'b01) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (L[0] && ((!L[1] && (!L[3] || (L[3] && (({L[4],L[5],L[6],L[7]} == 4'b0011) || L[4])))) || (L[1] && (({L[3],L[4]} == 2'b00) || L[4])))))) || ({L[2],L[4]} == 2'b11))) || (({L[6],L[7],L[10]} == 3'b111) && (({L[0],L[1],L[2],L[3],L[4],L[5]} == 6'b100000) || (L[4] && (({L[0],L[1],L[2],L[3],L[5]} == 5'b10000) || ({L[0],L[1],L[2],L[3]} == 4'b0111))))))))) || (({L[9],L[10]} == 2'b10) && ((!L[0] && ((({L[1],L[2],L[3]} == 3'b000) && ((({L[4],L[7]} == 2'b00) && (!L[5] || (L[5] && (!L[8] || ({L[6],L[8]} == 2'b01))))) || L[4])) || (L[2] && ((({L[3],L[4],L[6],L[7]} == 4'b0011) && (({L[1],L[8]} == 2'b00) || ({L[1],L[8]} == 2'b11))) || (L[3] && ((!L[8] && (({L[1],L[4],L[5],L[6],L[7]} == 5'b00110) || L[4])) || ({L[1],L[4],L[6],L[7],L[8]} == 5'b00111))))))) || (L[0] && ((!L[1] && ((!L[2] && (({L[3],L[4],L[8]} == 3'b000) || (L[4] && (!L[8] || ({L[3],L[8]} == 2'b01))))) || (L[2] && ((({L[3],L[5],L[6],L[7]} == 4'b0011) && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || (L[3] && (({L[4],L[5],L[6],L[7],L[8]} == 5'b00111) || ({L[4],L[8]} == 2'b10))))))) || (L[1] && (({L[2],L[3],L[4],L[8]} == 4'b0000) || (L[4] && ((!L[8] && (({L[2],L[3]} == 2'b00) || L[3])) || ({L[2],L[3],L[8]} == 3'b001))))))))); + +// action: ALU_OP = ADC: + assign A_ALU_OP_ADC = (!L[9] && ((({L[8],L[10]} == 2'b01) && (({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7]} == 8'b00000000) || (L[6] && ((!L[1] && (({L[0],L[2],L[3],L[4],L[5],L[7]} == 6'b000000) || (({L[0],L[3],L[4]} == 3'b111) && (({L[5],L[7]} == 2'b01) || L[5])))) || (({L[0],L[1],L[2],L[7]} == 4'b0111) && (({L[3],L[4]} == 2'b01) || ({L[3],L[4]} == 2'b10))))))) || (L[8] && ((!L[2] && ((!L[10] && ((({L[0],L[4]} == 2'b00) && ((({L[1],L[3]} == 2'b00) && (({L[5],L[6],L[7]} == 3'b000) || L[6])) || (L[3] && ((!L[5] && (({L[1],L[6]} == 2'b00) || (L[6] && (({L[1],L[7]} == 2'b00) || L[7])))) || (({L[1],L[5]} == 2'b01) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (L[0] && ((!L[1] && (!L[3] || (L[3] && ((({L[4],L[6]} == 2'b01) && (({L[5],L[7]} == 2'b01) || L[5])) || L[4])))) || (L[1] && (!L[3] || (L[3] && (({L[4],L[5],L[6],L[7]} == 4'b0111) || L[4])))))))) || (({L[0],L[1],L[3],L[6],L[10]} == 5'b10011) && (({L[5],L[7]} == 2'b01) || L[5])))) || (({L[2],L[4]} == 2'b11) && (!L[10] || ({L[0],L[1],L[3],L[6],L[7],L[10]} == 6'b011111))))))) || (({L[9],L[10]} == 2'b10) && ((!L[0] && ((({L[1],L[2],L[3]} == 3'b000) && ((({L[4],L[7]} == 2'b00) && (!L[5] || (L[5] && (!L[8] || ({L[6],L[8]} == 2'b01))))) || L[4])) || (L[2] && ((({L[3],L[4],L[6],L[7]} == 4'b0011) && (({L[1],L[8]} == 2'b00) || ({L[1],L[8]} == 2'b11))) || (L[3] && ((!L[8] && (({L[1],L[4],L[5],L[6],L[7]} == 5'b00110) || L[4])) || ({L[1],L[4],L[6],L[7],L[8]} == 5'b00111))))))) || (L[0] && ((!L[1] && ((!L[2] && (({L[3],L[4],L[8]} == 3'b000) || (L[4] && (!L[8] || ({L[3],L[8]} == 2'b01))))) || (L[2] && (({L[3],L[4],L[6],L[8]} == 4'b1100) || (L[6] && ((!L[3] && ((({L[4],L[8]} == 2'b00) && (({L[5],L[7]} == 2'b01) || L[5])) || (({L[4],L[8]} == 2'b11) && (({L[5],L[7]} == 2'b01) || L[5])))) || (L[3] && ((({L[4],L[8]} == 2'b01) && (({L[5],L[7]} == 2'b01) || L[5])) || ({L[4],L[8]} == 2'b10))))))))) || (L[1] && (({L[2],L[3],L[4],L[8]} == 4'b0000) || (L[4] && ((!L[8] && (({L[2],L[3]} == 2'b00) || L[3])) || ({L[2],L[3],L[8]} == 3'b001))))))))); + +// action: SB = 0: + assign A_SB_0 = (!L[10] && ((({L[2],L[8],L[9]} == 3'b010) && ((!L[3] && ((({L[0],L[1],L[4],L[7]} == 4'b0000) && (({L[5],L[6]} == 2'b00) || L[6])) || ({L[0],L[4]} == 2'b11))) || (({L[0],L[3],L[4]} == 3'b010) && ((!L[5] && (({L[1],L[6]} == 2'b00) || (L[6] && (({L[1],L[7]} == 2'b00) || L[7])))) || (({L[1],L[5]} == 2'b01) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (L[9] && ((!L[0] && (({L[1],L[2],L[3],L[4],L[7]} == 5'b00000) || (L[2] && ((({L[1],L[3]} == 2'b01) && ((!L[8] && (({L[4],L[5],L[6],L[7]} == 4'b0110) || L[4])) || ({L[4],L[5],L[6],L[7],L[8]} == 5'b01101))) || (L[1] && ((!L[3] && ((({L[6],L[7]} == 2'b00) && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || (L[6] && (({L[4],L[8]} == 2'b00) || (L[8] && (({L[4],L[7]} == 2'b01) || L[4])))))) || (L[3] && ((({L[4],L[8]} == 2'b01) && (({L[6],L[7]} == 2'b00) || L[6])) || ({L[4],L[8]} == 2'b10))))))))) || (L[0] && ((!L[2] && ((!L[3] && (!L[4] || ({L[4],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b110))) || ({L[2],L[3],L[4],L[8]} == 4'b1110))))))) || (({L[0],L[10]} == 2'b01) && ((!L[9] && ((({L[1],L[2],L[3],L[4],L[7]} == 5'b00000) && (!L[5] || (L[5] && (({L[6],L[8]} == 2'b01) || ({L[6],L[8]} == 2'b10))))) || (L[2] && (({L[1],L[3],L[4],L[5],L[6],L[7],L[8]} == 7'b0101100) || (L[1] && (({L[3],L[4],L[6],L[7],L[8]} == 5'b01110) || (L[3] && (({L[4],L[6],L[7],L[8]} == 4'b0110) || (L[4] && (({L[6],L[7],L[8]} == 3'b000) || (L[6] && (({L[7],L[8]} == 2'b00) || L[7])))))))))))) || ({L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9]} == 9'b000000001))); + +// action: ALU_B = SB: + assign A_ALU_B_SB = (!L[0] && ((({L[1],L[2]} == 2'b00) && ((!L[4] && ((!L[7] && ((({L[3],L[5]} == 2'b00) && ((({L[6],L[10]} == 2'b01) && (!L[9] || ({L[8],L[9]} == 2'b01))) || (L[6] && ((!L[9] && (({L[8],L[10]} == 2'b01) || L[8])) || ({L[9],L[10]} == 2'b10))))) || (L[5] && ((!L[9] && (({L[3],L[6],L[8],L[10]} == 4'b0101) || (L[8] && ((!L[10] && (({L[3],L[6]} == 2'b01) || L[3])) || ({L[3],L[6],L[10]} == 3'b001))))) || ({L[3],L[6],L[9],L[10]} == 4'b0110))))) || ({L[3],L[6],L[7],L[8],L[9],L[10]} == 6'b111100))) || ({L[3],L[4],L[9],L[10]} == 4'b0110))) || (L[2] && ((!L[9] && ((({L[3],L[4],L[5],L[6],L[8],L[10]} == 6'b101101) && (({L[1],L[7]} == 2'b00) || ({L[1],L[7]} == 2'b11))) || (L[4] && (({L[1],L[8],L[10]} == 3'b010) || (L[1] && ((({L[8],L[10]} == 2'b01) && (({L[3],L[5],L[6],L[7]} == 4'b0111) || (L[3] && (({L[6],L[7]} == 2'b00) || L[6])))) || (L[8] && (!L[10] || ({L[3],L[5],L[6],L[7],L[10]} == 5'b11111))))))))) || (({L[9],L[10]} == 2'b10) && ((!L[1] && (({L[3],L[4],L[5],L[6],L[7],L[8]} == 6'b001000) || (L[3] && ((!L[8] && (({L[4],L[5],L[6],L[7]} == 4'b0110) || L[4])) || ({L[4],L[5],L[7],L[8]} == 4'b0101))))) || (L[1] && ((!L[3] && ((({L[6],L[7]} == 2'b00) && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || (L[6] && (({L[4],L[8]} == 2'b00) || (L[8] && (({L[4],L[5],L[7]} == 3'b011) || L[4])))))) || (L[3] && ((({L[4],L[8]} == 2'b01) && (({L[6],L[7]} == 2'b00) || L[6])) || ({L[4],L[8]} == 2'b10))))))))))) || (L[0] && ((!L[10] && ((({L[8],L[9]} == 2'b01) && ((!L[3] && (!L[2] || ({L[1],L[2],L[4],L[7]} == 4'b0100))) || ({L[3],L[4]} == 2'b11))) || (L[8] && ((!L[1] && ((!L[2] && ((!L[9] && (!L[3] || (L[3] && (({L[4],L[7]} == 2'b00) || L[4])))) || ({L[3],L[9]} == 2'b01))) || (L[2] && (({L[3],L[4],L[7],L[9]} == 4'b1001) || (L[4] && (!L[9] || ({L[3],L[7],L[9]} == 3'b001))))))) || (L[1] && ((!L[3] && (({L[2],L[4]} == 2'b00) || (L[4] && (!L[9] || ({L[2],L[9]} == 2'b01))))) || ({L[3],L[4],L[9]} == 3'b110))))))) || (({L[1],L[7],L[9],L[10]} == 4'b0001) && (({L[2],L[3],L[4],L[8]} == 4'b0001) || (L[4] && (({L[2],L[3],L[8]} == 3'b001) || ({L[3],L[8]} == 2'b10))))))); + +// action: ALU_CF = 1: + assign A_ALU_CF_1 = (!L[2] && ((!L[1] && ((!L[9] && ((!L[5] && ((!L[3] && (({L[0],L[4],L[7],L[8],L[10]} == 5'b00001) || (L[8] && (({L[0],L[4],L[6],L[10]} == 4'b0010) || (L[0] && (({L[4],L[6],L[7],L[10]} == 4'b0111) || (L[4] && (!L[10] || ({L[6],L[7],L[10]} == 3'b111))))))))) || (({L[3],L[6],L[7]} == 3'b111) && (({L[0],L[4],L[8],L[10]} == 4'b0010) || (L[0] && (({L[4],L[8],L[10]} == 3'b010) || ({L[4],L[8],L[10]} == 3'b101))))))) || (({L[5],L[8],L[10]} == 3'b110) && ((!L[3] && (({L[0],L[4],L[6]} == 3'b001) || ({L[0],L[4]} == 2'b11))) || (({L[0],L[3],L[4]} == 3'b010) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (({L[3],L[4],L[9],L[10]} == 4'b0010) && ((!L[8] && (({L[0],L[6],L[7]} == 3'b010) || L[0])) || ({L[0],L[5],L[6],L[7],L[8]} == 5'b00101))))) || (({L[0],L[1],L[3],L[10]} == 4'b1100) && (({L[4],L[8],L[9]} == 3'b001) || ({L[4],L[8],L[9]} == 3'b110))))) || (({L[2],L[6]} == 2'b11) && (({L[0],L[1],L[3],L[4],L[5],L[7],L[8],L[9],L[10]} == 9'b001010010) || (L[7] && ((!L[1] && (({L[0],L[3],L[4],L[5],L[8],L[9],L[10]} == 7'b1110001) || (({L[9],L[10]} == 2'b10) && ((!L[4] && ((({L[3],L[8]} == 2'b00) && (!L[5] || ({L[0],L[5]} == 2'b01))) || (({L[3],L[8]} == 2'b11) && (!L[5] || ({L[0],L[5]} == 2'b01))))) || ({L[0],L[3],L[4],L[5],L[8]} == 5'b10101))))) || (({L[0],L[1],L[5]} == 3'b011) && ((({L[9],L[10]} == 2'b01) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || ({L[3],L[4],L[8],L[9],L[10]} == 5'b00110))))))); + +// action: ALU_CF = ALUC: + assign A_ALU_CF_ALUC = ({L[0],L[2],L[3],L[4],L[8],L[9],L[10]} == 7'b0111010) || (({L[0],L[4],L[9],L[10]} == 4'b1110) && ((!L[2] && (({L[3],L[8]} == 2'b01) || ({L[3],L[8]} == 2'b10))) || ({L[2],L[3],L[8]} == 3'b110))); + +// action: ALU_B = NOT SB: + assign A_ALU_B_NOTSB = (({L[0],L[1],L[2],L[4],L[6],L[10]} == 6'b000000) && ((!L[7] && ((!L[5] && (({L[3],L[8],L[9]} == 3'b001) || (L[8] && (!L[9] || ({L[3],L[9]} == 2'b01))))) || ({L[3],L[5],L[9]} == 3'b011))) || ({L[3],L[5],L[7],L[8],L[9]} == 5'b10110))) || (L[6] && (({L[0],L[1],L[2],L[3],L[4],L[5],L[7],L[8],L[9],L[10]} == 10'b0001000100) || (L[7] && ((!L[9] && ((({L[2],L[4],L[8],L[10]} == 4'b0010) && (({L[0],L[1],L[3]} == 3'b000) || (L[3] && (({L[0],L[1],L[5]} == 3'b010) || (L[0] && (({L[1],L[5]} == 2'b00) || L[5])))))) || (L[10] && ((({L[0],L[1],L[2],L[5]} == 4'b0110) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || (({L[0],L[1]} == 2'b10) && (({L[2],L[3],L[4],L[8]} == 4'b0001) || (L[4] && (({L[2],L[3],L[8]} == 3'b001) || ({L[3],L[8]} == 2'b10))))))))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[1] && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[0],L[3],L[4],L[8]} == 4'b1011))) || ({L[0],L[1],L[3],L[4],L[5],L[8]} == 6'b010001))))))); + +// action: ALU_OP = ORA: + assign A_ALU_OP_ORA = (!L[0] && ((({L[1],L[2],L[3],L[4],L[7]} == 5'b00000) && (({L[5],L[6],L[8],L[9],L[10]} == 5'b11110) || (L[10] && ((!L[9] && (({L[5],L[6],L[8]} == 3'b110) || (L[8] && (!L[6] || ({L[5],L[6]} == 2'b01))))) || ({L[5],L[6],L[8],L[9]} == 4'b0001))))) || (L[2] && ((({L[1],L[3],L[4],L[5],L[6],L[7]} == 6'b010110) && (({L[8],L[9],L[10]} == 3'b001) || ({L[8],L[9],L[10]} == 3'b110))) || (L[1] && ((({L[3],L[4],L[8],L[9],L[10]} == 5'b11001) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[9],L[10]} == 2'b10) && ((!L[4] && ((({L[3],L[8]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[3],L[8]} == 2'b11) && (({L[6],L[7]} == 2'b00) || L[6])))) || (({L[3],L[4],L[8]} == 3'b011) && (({L[6],L[7]} == 2'b00) || L[6])))))))))) || (L[0] && ((!L[5] && ((!L[6] && ((!L[7] && ((!L[10] && ((!L[4] && (({L[1],L[2],L[3],L[8],L[9]} == 5'b01001) || (L[8] && ((!L[2] && (({L[1],L[3],L[9]} == 3'b010) || ({L[3],L[9]} == 2'b01))) || ({L[1],L[2],L[3],L[9]} == 4'b0111))))) || ({L[1],L[2],L[3],L[4],L[8],L[9]} == 6'b010111))) || (({L[1],L[9],L[10]} == 3'b001) && (({L[2],L[3],L[4],L[8]} == 4'b0001) || (L[4] && (({L[2],L[3],L[8]} == 3'b001) || ({L[3],L[8]} == 2'b10))))))) || ({L[2],L[3],L[4],L[7],L[8],L[9],L[10]} == 7'b0001110))) || ({L[2],L[3],L[4],L[6],L[8],L[9],L[10]} == 7'b0001110))) || ({L[2],L[3],L[4],L[5],L[8],L[9],L[10]} == 7'b0001110))); + +// action: ALU_A = DB: + assign A_ALU_A_DB = (!L[10] && ((({L[8],L[9]} == 2'b01) && ((({L[0],L[1],L[2],L[3],L[4]} == 5'b01100) && (({L[6],L[7]} == 2'b00) || L[6])) || (L[4] && (({L[0],L[2],L[3]} == 3'b011) || (L[0] && (!L[2] || ({L[2],L[3]} == 2'b11))))))) || (L[8] && ((!L[0] && (({L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[9]} == 8'b00001101) || (L[2] && ((({L[3],L[4],L[9]} == 3'b101) && (({L[1],L[5],L[6],L[7]} == 4'b0110) || (L[1] && (({L[6],L[7]} == 2'b00) || L[6])))) || (L[4] && (!L[9] || (({L[1],L[3],L[9]} == 3'b101) && (({L[6],L[7]} == 2'b00) || L[6])))))))) || (L[0] && ((!L[2] && (!L[3] || ({L[3],L[4],L[9]} == 3'b110))) || ({L[2],L[4],L[9]} == 3'b110))))))) || (({L[0],L[10]} == 2'b01) && ((!L[9] && ((!L[7] && ((({L[1],L[4]} == 2'b00) && ((({L[2],L[3]} == 2'b00) && (({L[5],L[6],L[8]} == 3'b110) || (L[8] && (!L[6] || ({L[5],L[6]} == 2'b01))))) || ({L[2],L[3],L[5],L[6],L[8]} == 5'b11110))) || ({L[1],L[2],L[3],L[4],L[8]} == 5'b11110))) || ({L[1],L[2],L[3],L[4],L[6],L[7],L[8]} == 7'b1111110))) || ({L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9]} == 9'b000000001))); + +// action: SB = X: + assign A_SB_X = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01100001010) || (({L[8],L[10]} == 2'b10) && ((!L[9] && ((!L[2] && ((!L[4] && (({L[0],L[1],L[3],L[5],L[6],L[7]} == 6'b011001) || ({L[0],L[3]} == 2'b10))) || ({L[0],L[1],L[3],L[4],L[5],L[6],L[7]} == 7'b0111001))) || (({L[2],L[4]} == 2'b11) && ((!L[0] && (!L[1] || (L[1] && (({L[6],L[7]} == 2'b00) || L[6])))) || (L[0] && (!L[1] || (L[1] && (({L[6],L[7]} == 2'b00) || L[6])))))))) || (({L[0],L[1],L[2],L[5],L[6],L[7],L[9]} == 7'b0110011) && (({L[3],L[4]} == 2'b01) || ({L[3],L[4]} == 2'b10))))); + +// action: ALU_A = EAL: + assign A_ALU_A_EAL = (({L[0],L[1],L[2],L[3],L[8]} == 5'b00000) && (({L[4],L[5],L[6],L[7],L[9],L[10]} == 6'b000001) || ({L[4],L[9],L[10]} == 3'b110))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00110110010); + +// action: SB = PCL: + assign A_SB_PCL = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000100001) || ({L[0],L[1],L[2],L[3],L[4],L[8],L[9],L[10]} == 8'b00001010); + +// action: SB = Y: + assign A_SB_Y = (({L[0],L[1],L[2],L[4],L[5],L[6],L[7],L[9],L[10]} == 9'b001000110) && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || (({L[4],L[10]} == 2'b10) && (({L[0],L[2],L[3],L[8],L[9]} == 5'b10001) || (L[8] && ((!L[9] && (({L[1],L[2],L[3],L[6],L[7]} == 5'b11001) || (L[3] && ((!L[2] && (({L[0],L[1],L[5],L[6],L[7]} == 5'b00001) || L[0])) || ({L[1],L[2],L[6],L[7]} == 4'b1101))))) || ({L[0],L[1],L[2],L[3],L[5],L[6],L[7],L[9]} == 8'b00100011))))); + +// action: ALU_A = ALU: + assign A_ALU_A_ALU = (!L[3] && ((!L[4] && (({L[0],L[1],L[2],L[5],L[6],L[7],L[8],L[9],L[10]} == 9'b000010001) || (({L[9],L[10]} == 2'b10) && ((!L[2] && ((!L[8] && ((({L[0],L[1],L[7]} == 3'b000) && (({L[5],L[6]} == 2'b00) || L[6])) || L[0])) || (({L[0],L[1],L[7],L[8]} == 4'b0001) && (!L[6] || ({L[5],L[6]} == 2'b01))))) || (({L[0],L[1],L[2],L[8]} == 4'b0111) && (({L[6],L[7]} == 2'b00) || L[6])))))) || (({L[0],L[1],L[2],L[4],L[8],L[9],L[10]} == 7'b0111001) && (({L[6],L[7]} == 2'b00) || L[6])))) || (({L[0],L[1],L[2],L[3],L[9],L[10]} == 6'b011101) && ((({L[4],L[8]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[4],L[8]} == 2'b11) && (({L[6],L[7]} == 2'b00) || L[6])))); + +// action: ALU_A = S: + assign A_ALU_A_S = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000100010) || (({L[0],L[1],L[2],L[4],L[7],L[8],L[9],L[10]} == 8'b00000100) && ((!L[3] && (({L[5],L[6]} == 2'b00) || L[6])) || L[3])); + +// action: CF <= IR[5]: + assign E_CF__IR_5_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00011000010) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00011100010); + +// action: IF <= IR[5]: + assign E_IF__IR_5_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00011010010) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00011110010); + +// action: DF <= IR[5]: + assign E_DF__IR_5_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00011011010) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00011111010); + +// action: VF <= 0: + assign E_VF__0 = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00011101010); + +// action: T <= 0 IF NF != IR[5]: + assign E_T__0IFNF__IR_5_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001000100) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001100100); + +// action: T <= 0 IF VF != IR[5]: + assign E_T__0IFVF__IR_5_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001010100) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001110100); + +// action: T <= 0 IF CF != IR[5]: + assign E_T__0IFCF__IR_5_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001001100) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001101100); + +// action: T <= 0 IF ZF == IR[5]: + assign E_T__0IFZF__IR_5_ = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001011100) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00001111100); + +// action: EA <= DB: + assign E_EA__DB = ({L[0],L[2],L[3],L[8],L[9],L[10]} == 6'b010100) || ({L[0],L[3],L[8],L[9],L[10]} == 5'b10100); + +// action: EAL <= DB: + assign E_EAL__DB = (({L[0],L[1],L[2],L[3],L[8],L[9],L[10]} == 7'b0000100) && (({L[4],L[5],L[6],L[7]} == 4'b0100) || L[4])) || (({L[3],L[8],L[9],L[10]} == 4'b1100) && (({L[0],L[2],L[4]} == 3'b101) || L[2])); + +// action: PCL <= RES: + assign E_PCL__RES = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000110110) || ({L[0],L[1],L[2],L[3],L[4],L[8],L[9],L[10]} == 8'b00001010); + +// action: T <= 0 IF_C7F: + assign E_T__0IF_C7F = ({L[0],L[1],L[2],L[3],L[4],L[5],L[8],L[9],L[10]} == 9'b000010010) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[8],L[9],L[10]} == 9'b000011010); + +// action: ALU_A = SIGN: + assign A_ALU_A_SIGN = ({L[0],L[1],L[2],L[3],L[4],L[5],L[8],L[9],L[10]} == 9'b000010110) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[8],L[9],L[10]} == 9'b000011110); + +// action: SB = PCH: + assign A_SB_PCH = ({L[0],L[1],L[2],L[3],L[4],L[5],L[8],L[9],L[10]} == 9'b000010110) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[8],L[9],L[10]} == 9'b000011110); + +// action: PCH <= RES: + assign E_PCH__RES = (({L[0],L[1],L[2],L[3]} == 4'b0000) && ((!L[7] && (({L[4],L[8],L[9],L[10]} == 4'b1110) || (({L[4],L[10]} == 2'b01) && ((!L[9] && (({L[5],L[6],L[8]} == 3'b011) || (L[5] && (({L[6],L[8]} == 2'b01) || ({L[6],L[8]} == 2'b10))))) || ({L[5],L[6],L[8],L[9]} == 4'b0001))))) || ({L[4],L[7],L[8],L[9],L[10]} == 5'b11110))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00110110001); + +// action: EAH <= DB: + assign E_EAH__DB = (!L[8] && (({L[0],L[2],L[3],L[4],L[9],L[10]} == 6'b100001) || (({L[3],L[9],L[10]} == 3'b110) && (({L[0],L[2],L[4]} == 3'b101) || L[2])))) || ({L[0],L[2],L[3],L[4],L[8],L[9],L[10]} == 7'b1001110); + +// action: EAL <= ALU: + assign E_EAL__ALU = (({L[2],L[3],L[4],L[9],L[10]} == 5'b00001) && (({L[0],L[1],L[5],L[6],L[7],L[8]} == 6'b000001) || ({L[0],L[8]} == 2'b10))) || (({L[9],L[10]} == 2'b10) && ((({L[0],L[2]} == 2'b01) && (({L[1],L[3],L[4],L[5],L[6],L[7],L[8]} == 7'b0101101) || ({L[4],L[8]} == 2'b10))) || (L[0] && ((!L[2] && (!L[3] || ({L[3],L[4],L[8]} == 3'b110))) || ({L[2],L[4],L[8]} == 3'b110))))); + +// action: T <= T + 1 IF_ALUCZ: + assign E_T__T_1IF_ALUCZ = (({L[0],L[2],L[3],L[4],L[8],L[9],L[10]} == 7'b0111010) && ((({L[1],L[5]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (L[5] && ((!L[6] && (({L[1],L[7]} == 2'b00) || L[7])) || ({L[1],L[6]} == 2'b01))))) || (({L[0],L[4],L[9],L[10]} == 4'b1110) && ((!L[2] && ((({L[3],L[8]} == 2'b01) && (({L[1],L[7]} == 2'b00) || (L[7] && (({L[5],L[6]} == 2'b01) || L[5])))) || (({L[3],L[8]} == 2'b10) && (({L[1],L[7]} == 2'b00) || (L[7] && (({L[5],L[6]} == 2'b01) || L[5])))))) || (({L[2],L[3],L[8]} == 3'b110) && ((({L[1],L[5]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (L[5] && (({L[1],L[7]} == 2'b00) || L[7])))))); + +// action: EAH <= ALU: + assign E_EAH__ALU = ({L[0],L[2],L[3],L[4],L[8],L[9],L[10]} == 7'b0111110) || (({L[0],L[4]} == 2'b11) && ((!L[2] && (({L[3],L[8],L[9],L[10]} == 4'b0001) || ({L[3],L[8],L[9],L[10]} == 4'b1110))) || ({L[2],L[3],L[8],L[9],L[10]} == 5'b11110))); + +// action: PCL <= ALU: + assign E_PCL__ALU = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000000011) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00110110001); + +// action: SB = DB: + assign A_SB_DB = (!L[1] && ((!L[9] && ((!L[2] && ((({L[0],L[3],L[4],L[7],L[8],L[10]} == 6'b000110) && (({L[5],L[6]} == 2'b01) || L[5])) || (L[0] && ((({L[3],L[4],L[8],L[10]} == 4'b1101) && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])) || (L[8] && ((!L[4] && ((({L[3],L[10]} == 2'b01) && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])) || (({L[3],L[10]} == 2'b10) && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])))) || (({L[3],L[4],L[10]} == 3'b011) && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])))))))) || (({L[2],L[3],L[4],L[8],L[10]} == 5'b11101) && (({L[0],L[5],L[6],L[7]} == 4'b0101) || (L[0] && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])))))) || (({L[9],L[10]} == 2'b10) && (({L[0],L[2],L[3],L[4],L[5],L[7],L[8]} == 7'b0010101) || (L[2] && ((!L[3] && ((({L[4],L[8]} == 2'b00) && ((!L[0] && (({L[5],L[6],L[7]} == 3'b011) || (L[5] && (({L[6],L[7]} == 2'b00) || L[7])))) || (L[0] && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])))) || (({L[4],L[8]} == 2'b11) && (({L[0],L[5],L[6],L[7]} == 4'b0101) || (L[0] && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])))))) || (({L[3],L[4],L[8]} == 3'b101) && ((!L[0] && (({L[5],L[6],L[7]} == 3'b011) || (L[5] && (({L[6],L[7]} == 2'b00) || L[7])))) || (L[0] && ((!L[5] && (({L[6],L[7]} == 2'b00) || L[6])) || L[5])))))))))) || (({L[1],L[5],L[7]} == 3'b111) && ((!L[6] && ((({L[2],L[8],L[9]} == 3'b010) && (({L[0],L[3],L[4],L[10]} == 4'b0000) || (L[0] && ((!L[4] && (({L[3],L[10]} == 2'b01) || ({L[3],L[10]} == 2'b10))) || ({L[3],L[4],L[10]} == 3'b011))))) || (L[2] && (({L[3],L[4],L[8],L[9],L[10]} == 5'b11001) || (({L[9],L[10]} == 2'b10) && ((!L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b101))))))) || ({L[0],L[2],L[3],L[4],L[6],L[8],L[9],L[10]} == 8'b10101100))); + +// action: AC <= SB: + assign E_AC__SB = (({L[6],L[7]} == 2'b01) && ((({L[0],L[2],L[3],L[5],L[8],L[9],L[10]} == 7'b0010100) && (({L[1],L[4]} == 2'b01) || ({L[1],L[4]} == 2'b10))) || (({L[0],L[5]} == 2'b11) && ((!L[9] && ((!L[2] && (({L[1],L[3],L[4],L[8],L[10]} == 5'b01101) || (L[8] && ((!L[4] && (({L[3],L[10]} == 2'b01) || ({L[3],L[10]} == 2'b10))) || ({L[3],L[4],L[10]} == 3'b011))))) || ({L[2],L[3],L[4],L[8],L[10]} == 5'b11101))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b101))))))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010110110); + +// action: ALU_A = AC: + assign A_ALU_A_AC = (!L[1] && ((({L[0],L[2],L[4],L[5],L[6],L[7],L[9],L[10]} == 8'b01010010) && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || (L[0] && ((!L[9] && ((({L[2],L[3],L[4],L[8],L[10]} == 5'b01010) && (({L[6],L[7]} == 2'b00) || L[6])) || (L[10] && ((({L[2],L[3],L[4],L[8]} == 4'b0001) && (({L[6],L[7]} == 2'b00) || L[6])) || (L[4] && ((({L[2],L[3],L[8]} == 3'b001) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[3],L[8]} == 2'b10) && (({L[6],L[7]} == 2'b00) || L[6])))))))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[4] && ((({L[3],L[8]} == 2'b00) && (({L[6],L[7]} == 2'b00) || L[6])) || (({L[3],L[8]} == 2'b11) && (({L[6],L[7]} == 2'b00) || L[6])))) || (({L[3],L[4],L[8]} == 3'b011) && (({L[6],L[7]} == 2'b00) || L[6])))))))) || (({L[1],L[2],L[3],L[4],L[8],L[9],L[10]} == 7'b1010100) && (({L[0],L[7]} == 2'b00) || ({L[0],L[5],L[6],L[7]} == 4'b1111))); + +// action: AC <= RES: + assign E_AC__RES = ({L[0],L[1],L[2],L[3],L[4],L[7],L[8],L[9],L[10]} == 9'b010100100) || (L[0] && ((!L[9] && ((!L[2] && ((({L[1],L[3],L[4],L[8],L[10]} == 5'b01101) && (!L[7] || ({L[5],L[6],L[7]} == 3'b111))) || (L[8] && ((!L[4] && ((({L[1],L[3],L[10]} == 3'b001) && (!L[7] || ({L[5],L[6],L[7]} == 3'b111))) || (({L[3],L[10]} == 2'b10) && (({L[1],L[5],L[7]} == 3'b000) || (L[5] && (({L[1],L[6],L[7]} == 3'b000) || (L[6] && (({L[1],L[7]} == 2'b00) || L[7])))))))) || (({L[1],L[3],L[4],L[10]} == 4'b0011) && (!L[7] || ({L[5],L[6],L[7]} == 3'b111))))))) || (({L[1],L[2],L[3],L[4],L[8],L[10]} == 6'b011101) && (!L[7] || ({L[5],L[6],L[7]} == 3'b111))))) || (({L[1],L[2],L[9],L[10]} == 4'b0110) && ((!L[4] && ((!L[7] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || (({L[5],L[6],L[7]} == 3'b111) && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))))) || (({L[3],L[4],L[8]} == 3'b011) && (!L[7] || ({L[5],L[6],L[7]} == 3'b111))))))); + +// action: ALU_OP = AND: + assign A_ALU_OP_AND = (({L[0],L[1],L[2],L[4],L[5],L[6],L[7],L[9],L[10]} == 9'b001010010) && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || (({L[0],L[1],L[5],L[6],L[7]} == 5'b10100) && ((!L[9] && (({L[2],L[3],L[4],L[8],L[10]} == 5'b01010) || (L[10] && (({L[2],L[3],L[4],L[8]} == 4'b0001) || (L[4] && (({L[2],L[3],L[8]} == 3'b001) || ({L[3],L[8]} == 2'b10))))))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))))); + +// action: ALU_OP = EOR: + assign A_ALU_OP_EOR = (({L[0],L[1],L[5],L[6],L[7],L[9]} == 6'b100100) && (({L[2],L[3],L[4],L[8],L[10]} == 5'b01010) || (L[10] && (({L[2],L[3],L[4],L[8]} == 4'b0001) || (L[4] && (({L[2],L[3],L[8]} == 3'b001) || ({L[3],L[8]} == 2'b10))))))) || (({L[0],L[1],L[2],L[5],L[6],L[7],L[9],L[10]} == 8'b10101010) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))); + +// action: ALU_A = X: + assign A_ALU_A_X = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01010011100) || (({L[0],L[1],L[4],L[5],L[6],L[7],L[10]} == 7'b0001110) && (({L[2],L[3],L[8],L[9]} == 4'b1001) || (L[8] && (({L[2],L[3],L[9]} == 3'b000) || (L[3] && (({L[2],L[9]} == 2'b00) || ({L[2],L[9]} == 2'b11))))))); + +// action: ALU_A = Y: + assign A_ALU_A_Y = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010001100) || (({L[0],L[1],L[4],L[5],L[6],L[7],L[10]} == 7'b0000110) && (({L[2],L[3],L[8],L[9]} == 4'b1001) || (L[8] && (({L[2],L[3],L[9]} == 3'b000) || (L[3] && (({L[2],L[9]} == 2'b00) || ({L[2],L[9]} == 2'b11))))))); + +// action: ALU_DF = D: + assign A_ALU_DF_D = (({L[0],L[5],L[6],L[9]} == 4'b1110) && ((!L[2] && (({L[1],L[3],L[4],L[8],L[10]} == 5'b01101) || (L[8] && ((!L[4] && (({L[1],L[3],L[10]} == 3'b001) || (({L[3],L[10]} == 2'b10) && (({L[1],L[7]} == 2'b00) || L[7])))) || ({L[1],L[3],L[4],L[10]} == 4'b0011))))) || ({L[1],L[2],L[3],L[4],L[8],L[10]} == 6'b011101))) || (({L[0],L[1],L[2],L[5],L[6],L[9],L[10]} == 7'b1011110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))); + +// action: ALU_CF = C: + assign A_ALU_CF_C = (({L[0],L[1],L[5],L[6]} == 4'b1011) && ((!L[9] && (({L[2],L[3],L[4],L[8],L[10]} == 5'b01010) || (L[10] && (({L[2],L[3],L[4],L[8]} == 4'b0001) || (L[4] && (({L[2],L[3],L[8]} == 3'b001) || ({L[3],L[8]} == 2'b10))))))) || (({L[2],L[9],L[10]} == 3'b110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))))) || (L[1] && ((({L[0],L[7]} == 2'b00) && (({L[2],L[3],L[4],L[8],L[9],L[10]} == 6'b010100) || (L[2] && ((({L[9],L[10]} == 2'b01) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || ({L[3],L[4],L[8],L[9],L[10]} == 5'b00110))))) || ({L[0],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 10'b1010111100))); + +// action: ALU_OP = ASL: + assign A_ALU_OP_ASL = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01010000100) || (({L[0],L[1],L[2],L[5],L[6],L[7]} == 6'b011000) && ((({L[9],L[10]} == 2'b01) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || ({L[3],L[4],L[8],L[9],L[10]} == 5'b00110))); + +// action: RW = W: + assign A_RW_W = (!L[1] && ((!L[6] && ((!L[5] && ((({L[0],L[2],L[4],L[7]} == 4'b0000) && ((!L[8] && (({L[3],L[9],L[10]} == 3'b001) || ({L[9],L[10]} == 2'b10))) || ({L[3],L[8],L[9],L[10]} == 4'b0110))) || (L[7] && ((({L[0],L[2],L[9],L[10]} == 4'b0110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))) || (L[0] && ((({L[2],L[9],L[10]} == 3'b001) && (({L[3],L[4],L[8]} == 3'b001) || (L[4] && (({L[3],L[8]} == 2'b01) || ({L[3],L[8]} == 2'b10))))) || (L[2] && (({L[3],L[4],L[8],L[9],L[10]} == 5'b11001) || (({L[9],L[10]} == 2'b10) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))))))))))) || (({L[0],L[2],L[3],L[4],L[5],L[7]} == 6'b000010) && (({L[8],L[9],L[10]} == 3'b001) || ({L[8],L[9],L[10]} == 3'b110))))) || ({L[0],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 10'b0010010010))) || (({L[0],L[1],L[2]} == 3'b011) && ((({L[9],L[10]} == 2'b01) && ((({L[6],L[7]} == 2'b00) && ((!L[3] && (({L[4],L[8]} == 2'b00) || L[4])) || (L[3] && (({L[4],L[8]} == 2'b00) || L[8])))) || (L[6] && ((!L[3] && (({L[4],L[8]} == 2'b00) || L[4])) || (L[3] && (({L[4],L[8]} == 2'b00) || L[8])))))) || (L[9] && ((!L[10] && ((!L[4] && (({L[3],L[5],L[6],L[7],L[8]} == 5'b00010) || (L[8] && ((!L[5] && ((!L[6] && (({L[3],L[7]} == 2'b00) || ({L[3],L[7]} == 2'b11))) || ({L[3],L[6]} == 2'b01))) || (({L[3],L[5]} == 2'b01) && (({L[6],L[7]} == 2'b00) || L[6])))))) || ({L[3],L[4],L[5],L[6],L[7],L[8]} == 6'b010011))) || (({L[3],L[4],L[8],L[10]} == 4'b1101) && (({L[6],L[7]} == 2'b00) || L[6])))))); + +// action: SB = ALU: + assign A_SB_ALU = ({L[0],L[1],L[2],L[3],L[4],L[7],L[8],L[9],L[10]} == 9'b011000110) || (({L[0],L[1],L[2],L[7],L[10]} == 5'b01101) && ((!L[9] && ((!L[3] && (({L[4],L[8]} == 2'b00) || L[4])) || (L[3] && (({L[4],L[8]} == 2'b00) || L[8])))) || ({L[3],L[4],L[8],L[9]} == 4'b1101))); + +// action: DB <= SB: + assign E_DB__SB = (!L[1] && ((!L[5] && ((!L[6] && (({L[0],L[2],L[3],L[4],L[7],L[8],L[9],L[10]} == 8'b00100010) || (L[7] && ((({L[0],L[2],L[9],L[10]} == 4'b0110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))) || (L[0] && ((({L[2],L[9],L[10]} == 3'b001) && (({L[3],L[4],L[8]} == 3'b001) || (L[4] && (({L[3],L[8]} == 2'b01) || ({L[3],L[8]} == 2'b10))))) || (L[2] && (({L[3],L[4],L[8],L[9],L[10]} == 5'b11001) || (({L[9],L[10]} == 2'b10) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))))))))))) || ({L[0],L[2],L[3],L[4],L[6],L[7],L[8],L[9],L[10]} == 9'b001010010))) || ({L[0],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 10'b0000100001))) || (({L[0],L[1],L[2]} == 3'b011) && ((!L[7] && (({L[3],L[4],L[8],L[9],L[10]} == 5'b00110) || (L[10] && ((!L[9] && ((!L[3] && (({L[4],L[8]} == 2'b00) || L[4])) || (L[3] && (({L[4],L[8]} == 2'b00) || L[8])))) || ({L[3],L[4],L[8],L[9]} == 4'b1101))))) || (({L[5],L[6],L[7],L[9],L[10]} == 5'b00110) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))))); + +// action: ALU_OP = LSR: + assign A_ALU_OP_LSR = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01010010100) || (({L[0],L[1],L[2],L[5],L[6],L[7]} == 6'b011010) && ((({L[9],L[10]} == 2'b01) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || ({L[3],L[4],L[8],L[9],L[10]} == 5'b00110))); + +// action: ALU_OP = ROL: + assign A_ALU_OP_ROL = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01010100100) || (({L[0],L[1],L[2],L[5],L[6],L[7]} == 6'b011100) && ((({L[9],L[10]} == 2'b01) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || ({L[3],L[4],L[8],L[9],L[10]} == 5'b00110))); + +// action: ALU_OP = ROR: + assign A_ALU_OP_ROR = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01010110100) || (({L[0],L[1],L[2],L[5],L[6],L[7]} == 6'b011110) && ((({L[9],L[10]} == 2'b01) && (({L[3],L[4],L[8]} == 3'b010) || (L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))))) || ({L[3],L[4],L[8],L[9],L[10]} == 5'b00110))); + +// action: SB = AC: + assign A_SB_AC = (!L[1] && ((!L[5] && (({L[0],L[2],L[3],L[4],L[6],L[7],L[8],L[9],L[10]} == 9'b001010010) || (({L[0],L[6],L[7]} == 3'b101) && ((({L[2],L[9],L[10]} == 3'b001) && (({L[3],L[4],L[8]} == 3'b001) || (L[4] && (({L[3],L[8]} == 2'b01) || ({L[3],L[8]} == 2'b10))))) || (L[2] && (({L[3],L[4],L[8],L[9],L[10]} == 5'b11001) || (({L[9],L[10]} == 2'b10) && ((!L[4] && (({L[3],L[8]} == 2'b00) || ({L[3],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b011))))))))) || ({L[0],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 10'b0010101100))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01010101100); + +// action: X <= SB: + assign E_X__SB = (({L[1],L[2],L[5],L[6],L[7],L[8],L[9]} == 7'b1010110) && ((!L[10] && (({L[0],L[3],L[4]} == 3'b000) || (L[3] && (!L[4] || ({L[0],L[4]} == 2'b01))))) || ({L[0],L[3],L[10]} == 3'b101))) || (({L[1],L[2],L[5],L[6],L[7]} == 5'b11101) && (({L[3],L[4],L[8],L[9],L[10]} == 5'b11001) || (({L[9],L[10]} == 2'b10) && ((!L[3] && (({L[4],L[8]} == 2'b00) || ({L[4],L[8]} == 2'b11))) || ({L[3],L[4],L[8]} == 3'b101))))); + +// action: Y <= SB: + assign E_Y__SB = (({L[0],L[1],L[5],L[6],L[7],L[10]} == 6'b001010) && ((!L[4] && (({L[2],L[3],L[8],L[9]} == 4'b1001) || (L[8] && (({L[2],L[3],L[9]} == 3'b000) || (L[3] && (({L[2],L[9]} == 2'b00) || ({L[2],L[9]} == 2'b11))))))) || ({L[2],L[3],L[4],L[8],L[9]} == 5'b10111))) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00111101001); + +// action: SB = S: + assign A_SB_S = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01011101100); + +// action: S <= SB: + assign E_S__SB = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01011001100); + +// action: PC <= EA: + assign E_PC__EA = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00110010110); + +// action: S <= ALU: + assign E_S__ALU = (({L[0],L[1],L[2],L[4],L[7],L[8]} == 6'b000000) && ((({L[3],L[9],L[10]} == 3'b001) && (!L[6] || ({L[5],L[6]} == 2'b01))) || (({L[9],L[10]} == 2'b10) && ((!L[3] && (({L[5],L[6]} == 2'b00) || L[6])) || L[3])))) || ({L[0],L[1],L[2],L[3],L[4],L[7],L[8],L[9],L[10]} == 9'b000000110); + +// action: SB = P: + assign A_SB_P = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010000010); + +// action: P <= SB: + assign E_P__SB = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010100110); + +// action: X <= RES: + assign E_X__RES = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010111100) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b01010011100); + +// action: Y <= RES: + assign E_Y__RES = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010001100) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00010011100); + +// action: DB <= ALU: + assign E_DB__ALU = ({L[0],L[1],L[2],L[3],L[4],L[6],L[7],L[8],L[9],L[10]} == 10'b0110011110) || (({L[0],L[1],L[2],L[6],L[7],L[10]} == 6'b011111) && ((!L[9] && ((!L[3] && (({L[4],L[8]} == 2'b00) || L[4])) || (L[3] && (({L[4],L[8]} == 2'b00) || L[8])))) || ({L[3],L[4],L[8],L[9]} == 4'b1101))); + +// action: DB <= PCH: + assign E_DB__PCH = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000000010) || ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000100110); + +// action: PCL <= EAL: + assign E_PCL__EAL = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000100101); + +// action: DB <= PCL: + assign E_DB__PCL = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000000110); + +// action: DB <= P: + assign E_DB__P = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000000001); + +// action: P <= DB: + assign E_P__DB = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000010110); + +// action: PCL <= DB: + assign E_PCL__DB = ({L[0],L[1],L[2],L[3],L[4],L[5],L[6],L[7],L[8],L[9],L[10]} == 11'b00000010001); Index: fighter/ag_6502.v =================================================================== --- fighter/ag_6502.v (nonexistent) +++ fighter/ag_6502.v (revision 3) @@ -0,0 +1,344 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: BMSTU +// Engineer: Oleg Odintsov +// +// Create Date: 10:50:36 02/15/2012 +// Design Name: +// Module Name: my6502 +// Project Name: Agat Hardware Project +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +// Specify following define to allow external +// clocking for phi1 and phi2 +// In such case you may use ag6502_ext_clock module +// with baseclk frequency ~ 10 x phi_0 +`define AG6502_EXTERNAL_CLOCK + + +`ifndef AG6502_EXTERNAL_CLOCK +module ag6502_clock(input phi_0, output phi_1, output phi_2); + wire phi_01; + not#3(phi_1,phi_0); + or(phi_01,~phi_0, phi_1); + not#1(phi_2, phi_01); +endmodule + + +`else + +module ag6502_phase_shift(input baseclk, input phi_0, output reg phi_1); + parameter DELAY = 1; // delay in semi-waves of baseclk + initial phi_1 = 0; + integer cnt = 0; + + always @(posedge baseclk) begin + if (phi_0 != phi_1) begin + if (!cnt) begin phi_1 <= ~phi_1; cnt <= DELAY; end + else cnt <= cnt - 1; + end + end +endmodule + +// baseclk is used to simulate delays on a real hardware +module ag6502_ext_clock(input baseclk, input phi_0, output phi_1, output phi_2); + parameter DELAY1 = 3, DELAY2 = 1; // delays in semi-waves of baseclk + + wire phi_1_neg, phi_01; + + ag6502_phase_shift#DELAY1 d1(baseclk, phi_0, phi_1_neg); + assign phi_1 = ~phi_1_neg; + + and(phi_01, phi_0, phi_1_neg); + ag6502_phase_shift#DELAY2 d2(baseclk, phi_01, phi_2); +endmodule + +`endif + + +`define ALU_ORA 3'd0 +`define ALU_AND 3'd1 +`define ALU_EOR 3'd2 +`define ALU_ADC 3'd3 +`define ALU_ASL 3'd4 +`define ALU_LSR 3'd5 +`define ALU_ROL 3'd6 +`define ALU_ROR 3'd7 + + +module ag6502_decimal(ADD, D_IN, NEG, CORR); + input wire[4:0] ADD; + input wire D_IN, NEG; + output wire[4:0] CORR; + wire C9 = {ADD[4]^NEG, ADD[3:0]} > 5'd9; + + assign CORR = D_IN?{C9^NEG, C9?ADD[3:0] + (NEG?4'd10:4'd6): ADD[3:0]}: ADD; +endmodule + + +module ag6502_alu(A, B, OP, NEG, C_IN, D_IN, R, C_OUT, V_OUT); + input wire[7:0] A, B; + input wire[2:0] OP; + input wire C_IN, D_IN, NEG; + output wire[7:0] R; + output wire C_OUT, V_OUT; + + wire[4:0] ADD_L; + ag6502_decimal DL({1'b0, A[3:0]} + {1'b0, B[3:0]} + C_IN, D_IN, NEG, ADD_L); + wire CF_H = ADD_L[4]; + + wire[4:0] ADD_H; + ag6502_decimal DH({1'b0, A[7:4]} + {1'b0, B[7:4]} + CF_H, D_IN, NEG, ADD_H); + + assign + {C_OUT,R} = (OP==`ALU_ORA)? A | B: + (OP==`ALU_AND)? A & B: + (OP==`ALU_EOR)? A ^ B: + (OP==`ALU_ADC)? {ADD_H, ADD_L[3:0]}: + (OP==`ALU_ASL)? {A[7], A[6:0], 1'b0}: + (OP==`ALU_LSR)? {A[0], 1'b0, A[7:1]}: + (OP==`ALU_ROL)? {A[7], A[6:0], C_IN}: + (OP==`ALU_ROR)? {A[0], C_IN, A[7:1]}: + 8'bX; + assign V_OUT = (A[7] == B[7]) && (A[7] != R[7]); +endmodule + +/* + System AB/DB discipline: + 1. For CPU + Phi1 up => CPU set ab/db_out buses + Phi2 down => CPU reads data from db_in + 2. For Memory / other devices + Phi2 up => perform read/write operation +*/ + + +module ag6502(input phi_0, +`ifdef AG6502_EXTERNAL_CLOCK + input phi_1, input phi_2, +`else + output phi_1, output phi_2, +`endif + output reg[15:0] ab, + output wire read, + input[7:0] db_in, output reg[7:0] db_out, + input rdy, + input rst, input irq, input nmi, + input so, + output sync); + +`ifndef AG6502_EXTERNAL_CLOCK + ag6502_clock cgen(phi_0, phi_1, phi_2); +`endif + + reg rdyg = 1; + + reg[2:0] T = 7; + reg[7:0] IR ='h18; + + reg[15:0] PC = 0; + wire[7:0] PCH = PC[15:8], PCL = PC[7:0]; + reg[7:0] EAL, EAH; + wire[15:0] EA = {EAH, EAL}; + + reg FLAG_C, FLAG_Z, FLAG_I, FLAG_D, FLAG_B, FLAG_V, FLAG_N; + + reg[7:0] AC, X, Y, S = 0; + wire[7:0] P = {FLAG_N, FLAG_V, 1'b1, FLAG_B, FLAG_D, FLAG_I, FLAG_Z, FLAG_C}; + wire[7:0] SB; + + + wire[7:0] ALU_A, ALU_B; + wire[7:0] RES; + wire[2:0] ALU_OP; + reg[8:0] eALU; // with carry + wire[7:0] ALU = eALU; + wire ALU_CF = eALU[8]; + + wire CF_IN, DF_IN; + wire CF_OUT, VF_OUT; + + reg so_prev = 0; + reg nmi_prev = 0; + wire irq_active = ~irq & ~FLAG_I; + wire nmi_active = ~nmi & nmi_prev; + wire int_active = irq_active | nmi_active; + wire rst_active = ~rst; + wire so_active = so & ~so_prev; + + wire[1:0] vec_bits= + nmi_active?2'b01: + rst_active?2'b10: + 2'b11; + + wire[15:0] vec_addr = {{13{1'b1}}, vec_bits, 1'b0}; + + wire[7:0] IR_eff = int_active?8'b0:IR; + + wire[10:0] L = {T, IR_eff}; + + `include "states.v" + + assign read = ~A_RW_W; + assign sync = !T; + + assign SB = A_SB_DB? db_in: + A_SB_AC? AC: + A_SB_X? X: + A_SB_Y? Y: + A_SB_S? S: + A_SB_P? P: + A_SB_ALU? ALU: + A_SB_0? 8'b0: + A_SB_PCH? PCH: + A_SB_PCL? PCL: + 8'bX; + + assign CF_IN = A_ALU_CF_0? 1'b0: + A_ALU_CF_1? 1'b1: + A_ALU_CF_ALUC? ALU_CF: + FLAG_C; + + assign DF_IN = A_ALU_DF_D? FLAG_D: 1'b0; + + assign ALU_A = + A_ALU_A_AC? AC: + A_ALU_A_X? X: + A_ALU_A_Y? Y: + A_ALU_A_DB? db_in: + A_ALU_A_EAL? EAL: + A_ALU_A_ALU? ALU: + A_ALU_A_S? S: + A_ALU_A_SIGN? (EAL[7]?8'b11111111:8'b00000001): + 8'bX; + + assign ALU_B = A_ALU_B_SB? SB: + A_ALU_B_NOTSB? ~SB: + 8'bX; + + assign ALU_OP = A_ALU_OP_ADC? `ALU_ADC: + A_ALU_OP_ORA? `ALU_ORA: + A_ALU_OP_EOR? `ALU_EOR: + A_ALU_OP_AND? `ALU_AND: + A_ALU_OP_ASL? `ALU_ASL: + A_ALU_OP_LSR? `ALU_LSR: + A_ALU_OP_ROL? `ALU_ROL: + A_ALU_OP_ROR? `ALU_ROR: + 8'bX; + + ag6502_alu alu(ALU_A, ALU_B, ALU_OP, A_ALU_B_NOTSB, CF_IN, DF_IN, RES, CF_OUT, VF_OUT); + + always @(posedge phi_1) begin + if (E_AB__PC) ab <= PC; + else if (E_AB__EA) ab <= EA; + else if (E_AB__S) ab <= {8'b1, S}; + + if (E_DB__SB) db_out <= SB; + else if (E_DB__PCH) db_out <= PCH; + else if (E_DB__PCL) db_out <= PCL; + else if (E_DB__P) db_out <= P; + else if (E_DB__ALU) db_out <= ALU; + + if (read) rdyg <= rdy; + end + + + wire cond; + + assign cond = + E_T__0IFNF__IR_5_?(FLAG_N != IR[5]): + E_T__0IFVF__IR_5_?(FLAG_V != IR[5]): + E_T__0IFCF__IR_5_?(FLAG_C != IR[5]): + E_T__0IFZF__IR_5_?(FLAG_Z != IR[5]): + E_T__0IFZF__IR_5_?(FLAG_Z != IR[5]): + E_T__0IF_C7F? CF_OUT == EAL[7]: + E_T__0; + + always @(negedge phi_2) if (rdyg) begin + if (E_PC__PC_1) PC <= PC + 1; + else if (E_PC__EA) PC <= EA; + else begin + if (E_PCH__RES) PC[15:8] <= RES; + if (E_PCL__ALU) PC[7:0] <= ALU; + else if (E_PCL__RES) PC[7:0] <= RES; + else if (E_PCL__EAL) PC[7:0] <= EAL; + else if (E_PCL__DB) PC[7:0] <= db_in; + end + + if (!T) begin + IR <= db_in; + if (!db_in) begin // BRK instruction + {EAH, EAL} <= vec_addr; + end + nmi_prev <= nmi; + end + + if (E_N_Z__SB) begin FLAG_Z <= !SB; FLAG_N <= SB[7]; end + else if (E_N_Z__RES) begin FLAG_Z <= !RES; FLAG_N <= RES[7]; end + else if (E_N_Z__SB_RES) begin FLAG_Z <= !RES; FLAG_N <= SB[7]; end + + if (E_C__RES) FLAG_C <= CF_OUT; + if (E_V__RES) FLAG_V <= VF_OUT; + else if (E_V__SB_6_) FLAG_V <= SB[6]; + + if (E_EAL__DB) EAL <= db_in; + else if (E_EAL__ALU) EAL <= ALU; + + + if (E_EA__DB) {EAH, EAL} <= { 8'b0, db_in }; + else if (E_EAH__DB) EAH <= db_in; + else if (E_EAH__ALU) EAH <= ALU; + + if (E_AC__SB) AC <= SB; + else if (E_AC__RES) AC <= RES; + + if (E_S__ALU) S <= ALU; + + if (E_X__SB) X <= SB; + else if (E_X__RES) X <= RES; + + if (E_Y__SB) Y <= SB; + else if (E_Y__RES) Y <= RES; + + if (E_S__SB) S <= SB; + if (E_P__SB) {FLAG_N, FLAG_V, FLAG_B, FLAG_D, FLAG_I, FLAG_Z, FLAG_C} <= {SB[7], SB[6], SB[4], SB[3], SB[2], SB[1], SB[0]}; + else if (E_P__DB) {FLAG_N, FLAG_V, FLAG_B, FLAG_D, FLAG_I, FLAG_Z, FLAG_C} <= {db_in[7], db_in[6], db_in[4], db_in[3], db_in[2], db_in[1], db_in[0]}; + + if (E_CF__IR_5_) FLAG_C <= IR[5]; + if (E_IF__IR_5_) FLAG_I <= IR[5]; + if (E_DF__IR_5_) FLAG_D <= IR[5]; + if (E_VF__0) FLAG_V <= 0; + else if (so_active) FLAG_V <= 1; + so_prev <= so; + + eALU <= {CF_OUT, RES}; + + if (cond) begin + T <= 0; + if (!IR_eff) begin + FLAG_B <= !IR; + FLAG_I <= 1; + end + end else T <= T + ((E_T__T_1IF_ALUCZ && !ALU_CF)?2: 1); + + if (rst_active) begin + T <= 1; + IR <= 0; + {EAH, EAL} <= vec_addr; + end + end + + +endmodule + Index: fighter/chip1.v =================================================================== --- fighter/chip1.v (nonexistent) +++ fighter/chip1.v (revision 3) @@ -0,0 +1,116 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: BMSTU +// Engineer: Oleg Odintsov +// +// Create Date: 18:21:00 01/17/2012 +// Design Name: +// Project Name: Agat Hardware Project +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + + +module rot_driver(input clk, + input rot_a, input rot_b, + output wire rot_dir, output wire rot_event_out); + + reg rot_a_latch = 0, rot_b_latch = 0; + assign rot_dir = rot_b_latch, rot_event_out = rot_a_latch; + always @(posedge clk) begin + case ({rot_a, rot_b}) + 2'b00: rot_a_latch <= 1; + 2'b11: rot_a_latch <= 0; + 2'b10: rot_b_latch <= 1; + 2'b01: rot_b_latch <= 0; + endcase + end +endmodule + +module btn_driver(input clk, input btn, output reg sig = 0); + parameter nskip = 'hfff; + integer counter = 0; + wire lock = counter?1:0; + + always @(posedge clk) begin + if (counter) counter <= counter - 1; + if (!lock && sig != btn) begin + sig <= btn; + counter <= nskip; + end + end +endmodule + + +module chip1( + input clk, + input b1, + input b2, + input b3, + input b4, + input rot_a, rot_b, rot_center, + output[7:0] led, + output vga_red, + output vga_green, + output vga_blue, + output vga_hsync, + output vga_vsync, + output [3:0]j4, + input spi_miso, output spi_mosi, output spi_sck, output dac_cs, output dac_clr, + output spi_rom_cs, + output spi_amp_cs, + output spi_adc_conv, + output strataflash_oe, + output strataflash_ce, + output strataflash_we, + output platformflash_oe, + input ps2_clk, + input ps2_data + ); + + + + // access to DAC + assign spi_mosi = 0, spi_sck = 0, dac_cs = 0, dac_clr = 0; + // block other devices to access to DAC + assign spi_rom_cs = 1, spi_amp_cs = 1, spi_adc_conv = 0; + assign strataflash_oe = 1, strataflash_ce = 1, strataflash_we = 1; + assign platformflash_oe = 0; + + wire[4:0] vga_bus; + assign {vga_red, vga_green, vga_blue, vga_hsync, vga_vsync} = vga_bus; + wire[1:0] ps2_bus = {ps2_clk, ps2_data}; + + wire rot_dir, rot_event; + + wire clk_cpu; + wire b1v, b2v, b3v, b4v, brc; + rot_driver rot(clk_cpu, rot_a, rot_b, rot_dir, rot_event); + btn_driver b1d(clk_cpu, b1, b1v); + btn_driver b2d(clk_cpu, b2, b2v); + btn_driver b3d(clk_cpu, b3, b3v); + btn_driver b4d(clk_cpu, b4, b4v); + btn_driver rrd(clk_cpu, rot_center, brc); + reg rot_v = 0; + + always @(posedge rot_event) begin + rot_v <= rot_dir; + end + + +// assign j4 = 0, vga_bus = 0; + + wire[3:0] btns = {b4v | (rot_event & ~rot_v), b3v | brc, b2v, b1v | (rot_event & rot_v)}; + ag_main agate(clk, btns, led, j4, vga_bus, ps2_bus, clk_cpu); + +endmodule Index: fighter/videoctl.v =================================================================== --- fighter/videoctl.v (nonexistent) +++ fighter/videoctl.v (revision 3) @@ -0,0 +1,68 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: BMSTU +// Engineer: Oleg Odintsov +// +// Create Date: 20:41:53 01/18/2012 +// Design Name: +// Module Name: videoctl +// Project Name: Agat Hardware Project +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + +module video_counters( + input clk, + output reg video_vsync = 1, + output reg video_hsync = 1, + output video_on, + output reg [10:1] hpos = 0, + output reg [9:1] vpos = 0); + + integer hcnt = 0, vcnt = 0; + + reg video_von = 0, video_hon = 0; + assign video_on = video_von & video_hon; + + always @(posedge video_hsync) begin + vcnt <= vcnt + 1; + vpos <= video_von?vpos + 1: 0; + case (vcnt) + 2: video_vsync = 1; + 31: video_von = 1; + 511: video_von = 0; + 521: begin vcnt <=0; video_vsync = 0; end + endcase + end + + always @(posedge clk) begin + if (!video_hon) hcnt <= hcnt - 1; + else hpos <= hpos + 1; + + if (hpos == 639) video_hon <= 0; + + if (hpos == 640) begin + if (!hcnt) begin + hcnt <= 96; + video_hsync <= 0; + hpos <= 0; + end + end else if (!hcnt) begin + if (!video_hsync) begin + video_hsync <= 1; + hcnt <= 48; + end else if (!video_hon) begin + video_hon <= 1; + hcnt <= 16; + end + end + end +endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.