1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-03-08 03:29:26 +00:00

Remove DonkeyKongJunior (merged with Donkey Kong)

This commit is contained in:
Gyorgy Szombathelyi
2021-01-01 19:44:37 +01:00
parent c2807b3323
commit c64e336974
38 changed files with 0 additions and 7327 deletions

View File

@@ -1,31 +0,0 @@
# -------------------------------------------------------------------------- #
#
# Copyright (C) 2017 Intel Corporation. All rights reserved.
# Your use of Intel Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Intel Program License
# Subscription Agreement, the Intel Quartus Prime License Agreement,
# the Intel MegaCore Function License Agreement, or other
# applicable license agreement, including, without limitation,
# that your use is for the sole purpose of programming logic
# devices manufactured by Intel and sold by Intel or its
# authorized distributors. Please refer to the applicable
# agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus Prime
# Version 17.0.1 Build 598 06/07/2017 SJ Standard Edition
# Date created = 04:04:47 October 16, 2017
#
# -------------------------------------------------------------------------- #
QUARTUS_VERSION = "17.0"
DATE = "04:04:47 October 16, 2017"
# Revisions
PROJECT_REVISION = "DKongJr"

View File

@@ -1,188 +0,0 @@
# -------------------------------------------------------------------------- #
#
# Copyright (C) 1991-2013 Altera Corporation
# Your use of Altera Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Altera Program License
# Subscription Agreement, Altera MegaCore Function License
# Agreement, or other applicable license agreement, including,
# without limitation, that your use is for the sole purpose of
# programming logic devices manufactured by Altera and sold by
# Altera or its authorized distributors. Please refer to the
# applicable agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus II 64-Bit
# Version 13.1.0 Build 162 10/23/2013 SJ Web Edition
# Date created = 22:45:45 November 15, 2019
#
# -------------------------------------------------------------------------- #
#
# Notes:
#
# 1) The default values for assignments are stored in the file:
# DKongJr_assignment_defaults.qdf
# If this file doesn't exist, see file:
# assignment_defaults.qdf
#
# 2) Altera recommends that you do not modify this file. This
# file is updated automatically by the Quartus II software
# and any changes you make may be lost or overwritten.
#
# -------------------------------------------------------------------------- #
# Project-Wide Assignments
# ========================
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 16.1.2
set_global_assignment -name LAST_QUARTUS_VERSION 13.1
set_global_assignment -name PROJECT_CREATION_TIME_DATE "01:53:30 APRIL 20, 2017"
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL
set_global_assignment -name SMART_RECOMPILE ON
set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl"
# Pin & Location Assignments
# ==========================
set_location_assignment PIN_7 -to LED
set_location_assignment PIN_54 -to CLOCK_27
set_location_assignment PIN_144 -to VGA_R[5]
set_location_assignment PIN_143 -to VGA_R[4]
set_location_assignment PIN_142 -to VGA_R[3]
set_location_assignment PIN_141 -to VGA_R[2]
set_location_assignment PIN_137 -to VGA_R[1]
set_location_assignment PIN_135 -to VGA_R[0]
set_location_assignment PIN_133 -to VGA_B[5]
set_location_assignment PIN_132 -to VGA_B[4]
set_location_assignment PIN_125 -to VGA_B[3]
set_location_assignment PIN_121 -to VGA_B[2]
set_location_assignment PIN_120 -to VGA_B[1]
set_location_assignment PIN_115 -to VGA_B[0]
set_location_assignment PIN_114 -to VGA_G[5]
set_location_assignment PIN_113 -to VGA_G[4]
set_location_assignment PIN_112 -to VGA_G[3]
set_location_assignment PIN_111 -to VGA_G[2]
set_location_assignment PIN_110 -to VGA_G[1]
set_location_assignment PIN_106 -to VGA_G[0]
set_location_assignment PIN_136 -to VGA_VS
set_location_assignment PIN_119 -to VGA_HS
set_location_assignment PIN_65 -to AUDIO_L
set_location_assignment PIN_80 -to AUDIO_R
set_location_assignment PIN_105 -to SPI_DO
set_location_assignment PIN_88 -to SPI_DI
set_location_assignment PIN_126 -to SPI_SCK
set_location_assignment PIN_127 -to SPI_SS2
set_location_assignment PIN_91 -to SPI_SS3
set_location_assignment PIN_13 -to CONF_DATA0
set_location_assignment PLL_1 -to "pll:pll|altpll:altpll_component"
# Classic Timing Assignments
# ==========================
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS OFF
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
# Analysis & Synthesis Assignments
# ================================
set_global_assignment -name FAMILY "Cyclone III"
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144
set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8
set_global_assignment -name SAVE_DISK_SPACE OFF
set_global_assignment -name TOP_LEVEL_ENTITY dkongjr_MiST
set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP
set_global_assignment -name SEARCH_PATH rtl/ -tag from_archive
set_global_assignment -name SEARCH_PATH rtl/rom/ -tag from_archive
set_global_assignment -name SEARCH_PATH rtl/t48_ip/ -tag from_archive
set_global_assignment -name SEARCH_PATH rtl/t80asd_ip/ -tag from_archive
# Fitter Assignments
# ==================
set_global_assignment -name OPTIMIZE_POWER_DURING_FITTING OFF
set_global_assignment -name FINAL_PLACEMENT_OPTIMIZATION ALWAYS
set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
set_global_assignment -name DEVICE EP3C25E144C8
set_global_assignment -name ENABLE_CONFIGURATION_PINS OFF
set_global_assignment -name ENABLE_NCE_PIN OFF
set_global_assignment -name ENABLE_BOOT_SEL_PIN OFF
set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "PASSIVE SERIAL"
set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF
set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO"
# Assembler Assignments
# =====================
set_global_assignment -name GENERATE_RBF_FILE ON
set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
# Power Estimation Assignments
# ============================
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
# Advanced I/O Timing Assignments
# ===============================
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
# --------------------------
# start ENTITY(dkongjr_MiST)
# start DESIGN_PARTITION(Top)
# ---------------------------
# Incremental Compilation Assignments
# ===================================
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
# end DESIGN_PARTITION(Top)
# -------------------------
# end ENTITY(dkongjr_MiST)
# ------------------------
set_global_assignment -name SYSTEMVERILOG_FILE rtl/dkongjr_MiST.sv
set_global_assignment -name VERILOG_FILE rtl/dkongjr_top.v
set_global_assignment -name VERILOG_FILE rtl/i8035ip.v
set_global_assignment -name VHDL_FILE rtl/dpram.vhd
set_global_assignment -name VERILOG_FILE rtl/dkongjr_wav_sound.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_vram.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_sound.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_obj.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_logic.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_inport.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_iir_filter.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_hv_count.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_dma.v
set_global_assignment -name SYSTEMVERILOG_FILE rtl/dkongjr_dac.sv
set_global_assignment -name VERILOG_FILE rtl/dkongjr_col_pal.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_bram.v
set_global_assignment -name VERILOG_FILE rtl/dkongjr_adec.v
set_global_assignment -name VHDL_FILE rtl/rom/prog.vhd
set_global_assignment -name VHDL_FILE rtl/rom/vid2.vhd
set_global_assignment -name VHDL_FILE rtl/rom/vid1.vhd
set_global_assignment -name VHDL_FILE rtl/rom/snd1.vhd
set_global_assignment -name VHDL_FILE rtl/rom/obj4.vhd
set_global_assignment -name VHDL_FILE rtl/rom/obj3.vhd
set_global_assignment -name VHDL_FILE rtl/rom/obj2.vhd
set_global_assignment -name VHDL_FILE rtl/rom/obj1.vhd
set_global_assignment -name VHDL_FILE rtl/rom/col3.vhd
set_global_assignment -name VHDL_FILE rtl/rom/col2.vhd
set_global_assignment -name VHDL_FILE rtl/rom/col1.vhd
set_global_assignment -name VERILOG_FILE rtl/pll.v
set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip
set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip
set_global_assignment -name QIP_FILE ../../../common/CPU/t48/T48.qip
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

View File

@@ -1,126 +0,0 @@
## Generated SDC file "vectrex_MiST.out.sdc"
## Copyright (C) 1991-2013 Altera Corporation
## Your use of Altera Corporation's design tools, logic functions
## and other software and tools, and its AMPP partner logic
## functions, and any output files from any of the foregoing
## (including device programming or simulation files), and any
## associated documentation or information are expressly subject
## to the terms and conditions of the Altera Program License
## Subscription Agreement, Altera MegaCore Function License
## Agreement, or other applicable license agreement, including,
## without limitation, that your use is for the sole purpose of
## programming logic devices manufactured by Altera and sold by
## Altera or its authorized distributors. Please refer to the
## applicable agreement for further details.
## VENDOR "Altera"
## PROGRAM "Quartus II"
## VERSION "Version 13.1.0 Build 162 10/23/2013 SJ Web Edition"
## DATE "Sun Jun 24 12:53:00 2018"
##
## DEVICE "EP3C25E144C8"
##
# Clock constraints
# Automatically constrain PLL and other generated clocks
derive_pll_clocks -create_base_clocks
# Automatically calculate clock uncertainty to jitter and other effects.
derive_clock_uncertainty
# tsu/th constraints
# tco constraints
# tpd constraints
#**************************************************************
# Time Information
#**************************************************************
set_time_format -unit ns -decimal_places 3
#**************************************************************
# Create Clock
#**************************************************************
create_clock -name {SPI_SCK} -period 41.666 -waveform { 20.8 41.666 } [get_ports {SPI_SCK}]
#**************************************************************
# Create Generated Clock
#**************************************************************
#**************************************************************
# Set Clock Latency
#**************************************************************
#**************************************************************
# Set Clock Uncertainty
#**************************************************************
#**************************************************************
# Set Input Delay
#**************************************************************
set_input_delay -add_delay -clock_fall -clock [get_clocks {CLOCK_27}] 1.000 [get_ports {CLOCK_27}]
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {CONF_DATA0}]
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DI}]
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SCK}]
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS2}]
set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS3}]
#**************************************************************
# Set Output Delay
#**************************************************************
set_output_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DO}]
set_output_delay -add_delay -clock_fall -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {AUDIO_L}]
set_output_delay -add_delay -clock_fall -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {AUDIO_R}]
set_output_delay -add_delay -clock_fall -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {LED}]
set_output_delay -add_delay -clock_fall -clock [get_clocks {pll|altpll_component|auto_generated|pll1|clk[0]}] 1.000 [get_ports {VGA_*}]
#**************************************************************
# Set Clock Groups
#**************************************************************
set_clock_groups -asynchronous -group [get_clocks {SPI_SCK}] -group [get_clocks {pll|altpll_component|auto_generated|pll1|clk[*]}]
#**************************************************************
# Set False Path
#**************************************************************
#**************************************************************
# Set Multicycle Path
#**************************************************************
set_multicycle_path -to {VGA_*[*]} -setup 2
set_multicycle_path -to {VGA_*[*]} -hold 1
#**************************************************************
# Set Maximum Delay
#**************************************************************
#**************************************************************
# Set Minimum Delay
#**************************************************************
#**************************************************************
# Set Input Transition
#**************************************************************

View File

@@ -1,28 +0,0 @@
---------------------------------------------------------------------------------
--
-- Arcade: Donkey Kong Jr. port to MiST by Gehstock
-- 15 November 2019
--
missing Sounds
maybe Graphic Problems
---------------------------------------------------------------------------------
-- A simulation model of Pacman hardware
-- // Copyright(c) 2003 - 2005 Katsumi Degawa , All rights reserved
---------------------------------------------------------------------------------
--
-- Only Controls and OSD are rotated on Video output.
--
--
-- Keyboard inputs :
--
-- ESC : Coin
-- F2 : Start 2 players
-- F1 : Start 1 player
-- UP,DOWN,LEFT,RIGHT arrows : Movements
-- SPACE : Jump
-- Joystick support.
---------------------------------------------------------------------------------
ToDo: Sound, Rotated Controls

View File

@@ -1,37 +0,0 @@
@echo off
del /s *.bak
del /s *.orig
del /s *.rej
del /s *~
rmdir /s /q db
rmdir /s /q incremental_db
rmdir /s /q output_files
rmdir /s /q simulation
rmdir /s /q greybox_tmp
rmdir /s /q hc_output
rmdir /s /q .qsys_edit
rmdir /s /q hps_isw_handoff
rmdir /s /q sys\.qsys_edit
rmdir /s /q sys\vip
cd sys
for /d %%i in (*_sim) do rmdir /s /q "%%~nxi"
cd ..
for /d %%i in (*_sim) do rmdir /s /q "%%~nxi"
del build_id.v
del c5_pin_model_dump.txt
del PLLJ_PLLSPE_INFO.txt
del /s *.qws
del /s *.ppf
del /s *.ddb
del /s *.csv
del /s *.cmp
del /s *.sip
del /s *.spd
del /s *.bsf
del /s *.f
del /s *.sopcinfo
del /s *.xml
del /s new_rtl_netlist
del /s old_rtl_netlist
pause

View File

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

View File

@@ -1,173 +0,0 @@
module dkongjr_MiST(
output LED,
output [5:0] VGA_R,
output [5:0] VGA_G,
output [5:0] VGA_B,
output VGA_HS,
output VGA_VS,
output AUDIO_L,
output AUDIO_R,
input SPI_SCK,
output SPI_DO,
input SPI_DI,
input SPI_SS2,
input SPI_SS3,
input CONF_DATA0,
input CLOCK_27
);
`include "rtl\build_id.v"
localparam CONF_STR = {
"DKONGJR;;",
"O2,Rotate Controls,Off,On;",
"O34,Scanlines,Off,25%,50%,75%;",
"O5,Blending,Off,On;",
"O89,Lives,3,4,5,6;",
"OAB,Bonus,7000,10000,15000,20000;",
"T6,Reset;",
"V,v1.00.",`BUILD_DATE
};
assign LED = 1;
assign AUDIO_R = AUDIO_L;
wire clock_24, clock_6;
pll pll(
.inclk0(CLOCK_27),
.c0(clock_24)//W_CLK_24576M
);
wire [31:0] status;
wire [1:0] buttons;
wire [1:0] switches;
wire [11:0] kbjoy;
wire [7:0] joystick_0;
wire [7:0] joystick_1;
wire scandoublerD;
wire ypbpr;
wire [7:0] audio;
wire hs_n, vs_n;
wire hb, vb;
wire blankn = ~vb;//~(hb | vb);
wire [2:0] r, g;
wire [1:0] b;
dkongjr_top dkong(
.I_CLK_24576M(clock_24),
.I_RESETn(~(status[0] | status[6] | buttons[1])),
.I_U1(~m_up),
.I_D1(~m_down),
.I_L1(~m_left),
.I_R1(~m_right),
.I_J1(~m_fire),
.I_U2(~m_up),
.I_D2(~m_down),
.I_L2(~m_left),
.I_R2(~m_right),
.I_J2(~m_fire),
.I_S1(~btn_one_player),
.I_S2(~btn_two_players),
.I_C1(~btn_coin),
.I_DIP_SW({ ~status[12] , 1'b0,1'b0,1'b0 , status[11:10], status[9:8]}),
.O_SOUND_DAT(audio),
.O_VGA_R(r),
.O_VGA_G(g),
.O_VGA_B(b),
.O_H_BLANK(hb),
.O_V_BLANK(vb),
.O_VGA_H_SYNCn(hs_n),
.O_VGA_V_SYNCn(vs_n)
);
mist_video #(.COLOR_DEPTH(3),.SD_HCNT_WIDTH(10)) mist_video(
.clk_sys(clock_24),
.SPI_SCK(SPI_SCK),
.SPI_SS3(SPI_SS3),
.SPI_DI(SPI_DI),
.R(blankn ? r : 0),
.G(blankn ? g : 0),
.B(blankn ? {b[1], b} : 0),
.HSync(hs_n),
.VSync(vs_n),
.VGA_R(VGA_R),
.VGA_G(VGA_G),
.VGA_B(VGA_B),
.VGA_VS(VGA_VS),
.VGA_HS(VGA_HS),
.rotate({1'b1,status[2]}),
.ce_divider(1'b1),
.blend(status[5]),
.scandoubler_disable(scandoublerD),
.scanlines(status[4:3]),
.ypbpr(ypbpr)
);
user_io #(
.STRLEN(($size(CONF_STR)>>3)))
user_io(
.clk_sys (clock_24 ),
.conf_str (CONF_STR ),
.SPI_CLK (SPI_SCK ),
.SPI_SS_IO (CONF_DATA0 ),
.SPI_MISO (SPI_DO ),
.SPI_MOSI (SPI_DI ),
.buttons (buttons ),
.switches (switches ),
.scandoubler_disable (scandoublerD ),
.ypbpr (ypbpr ),
.key_strobe (key_strobe ),
.key_pressed (key_pressed ),
.key_code (key_code ),
.joystick_0 (joystick_0 ),
.joystick_1 (joystick_1 ),
.status (status )
);
dac #(
.C_bits(8))
dac(
.clk_i(clock_24),
.res_n_i(1'b1),
.dac_i(audio),
.dac_o(AUDIO_L)
);
// Rotated Normal
wire m_up = ~status[2] ? btn_left | joystick_0[1] | joystick_1[1] : btn_up | joystick_0[3] | joystick_1[3];
wire m_down = ~status[2] ? btn_right | joystick_0[0] | joystick_1[0] : btn_down | joystick_0[2] | joystick_1[2];
wire m_left = ~status[2] ? btn_down | joystick_0[2] | joystick_1[2] : btn_left | joystick_0[1] | joystick_1[1];
wire m_right = ~status[2] ? btn_up | joystick_0[3] | joystick_1[3] : btn_right | joystick_0[0] | joystick_1[0];
wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4];
reg btn_one_player = 0;
reg btn_two_players = 0;
reg btn_left = 0;
reg btn_right = 0;
reg btn_down = 0;
reg btn_up = 0;
reg btn_fire1 = 0;
reg btn_coin = 0;
wire key_pressed;
wire [7:0] key_code;
wire key_strobe;
always @(posedge clock_24) begin
reg old_state;
if(key_strobe) begin
case(key_code)
'h75: btn_up <= key_pressed; // up
'h72: btn_down <= key_pressed; // down
'h6B: btn_left <= key_pressed; // left
'h74: btn_right <= key_pressed; // right
'h76: btn_coin <= key_pressed; // ESC
'h05: btn_one_player <= key_pressed; // F1
'h06: btn_two_players <= key_pressed; // F2
'h29: btn_fire1 <= key_pressed; // Space
endcase
end
end
endmodule

View File

@@ -1,322 +0,0 @@
//===============================================================================
//
// Modified for Donkey Kong Junior by gaz68.
//
// FPGA DONKEY KONG ADDRESS DECODER
//
// Version : 4.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2004- 8-24 CPU_Wait was stopped. K.Degawa
// 2005- 2- 9 CPU_Wait was worked. because, Z80_ip was improved. K.Degawa
//================================================================================
module dkongjr_adec(
I_CLK12M,
I_CLK,
I_RESET_n,
I_AB,
I_DB,
I_MREQ_n,
I_RFSH_n,
I_RD_n,
I_WR_n,
I_VRAMBUSY_n,
I_VBLK_n,
O_WAIT_n,
O_NMI_n,
O_ROM_CS_n,
O_RAM1_CS_n,
O_RAM2_CS_n,
O_RAM3_CS_n,
O_DMA_CS_n,
O_6A_G_n,
O_OBJ_RQ_n,
O_OBJ_RD_n,
O_OBJ_WR_n,
O_VRAM_RD_n,
O_VRAM_WR_n,
O_SW1_OE_n,
O_SW2_OE_n,
O_SW3_OE_n,
O_DIP_OE_n,
O_4H_Q,
O_5H_Q,
O_6H_Q,
O_3D_Q
);
input I_CLK12M;
input I_CLK; // H_CNT[1] 3.072MHz
input I_RESET_n;
input [15:0]I_AB;
input [3:0]I_DB;
input I_MREQ_n;
input I_RFSH_n;
input I_RD_n;
input I_WR_n;
input I_VRAMBUSY_n;
input I_VBLK_n;
output O_ROM_CS_n; // 0000 H - 3FFF H (5E,5C,5B,5A)
output O_RAM1_CS_n; // 6000 H - 63FF H (3C,4C)
output O_RAM2_CS_n; // 6400 H - 67FF H (3B,4B)
output O_RAM3_CS_n; // 6800 H - 6BFF H (3A,4A)
output O_DMA_CS_n; // 7800 H - 783F H (DMA)
output O_6A_G_n; // 7000 H - 77FF H => Active
output O_OBJ_RQ_n; // 7000 H - 73FF H
output O_OBJ_RD_n; // 7000 H - 73FF H (R mode)
output O_OBJ_WR_n; // 7000 H - 73FF H (W mode)
output O_VRAM_RD_n; // 7400 H - 77FF H (R mode)
output O_VRAM_WR_n; // 7400 H - 77FF H (W mode)
output O_SW1_OE_n; // 7C00 H (R mode)
output O_SW2_OE_n; // 7C80 H (R mode)
output O_SW3_OE_n; // 7D00 H (R mode)
output O_DIP_OE_n; // 7D80 H (R mode)
output [1:0]O_4H_Q; // GFX (Characters) bank switch, sound
output [7:0]O_5H_Q; // FLIP,
output [7:0]O_6H_Q; // sound
output [4:0]O_3D_Q; // sound
output O_WAIT_n;
output O_NMI_n;
wire [3:0]W_2A1_Q,W_2A2_Q;
wire [7:0]W_4D_Q,W_2B_Q,W_2C_Q,W_2D_Q;
wire [7:0]W_1B_Q,W_1C_Q;
reg [7:0]W_5H_Q;
reg [1:0]W_4H_Q;
// CPU WAIT
reg W_7F1_Qn;
reg W_7F2_Q;
assign O_WAIT_n = W_7F1_Qn;
//assign O_WAIT_n = 1'b1;
always@(posedge I_CLK or negedge I_VBLK_n)
begin
if(I_VBLK_n == 1'b0)
W_7F1_Qn <= 1'b1;
else
W_7F1_Qn <= I_VRAMBUSY_n | W_2A2_Q[1];
end
always@(negedge I_CLK)
begin
W_7F2_Q <= W_7F1_Qn;
end
// CPU NMI
wire W_VBLK = ~I_VBLK_n;
reg O_NMI_n;
always@(posedge W_VBLK or negedge W_5H_Q[4])
begin
if(~W_5H_Q[4])
O_NMI_n <= 1'b1;
else
O_NMI_n <= 1'b0;
end
// ADDR DEC 0000H - 7FFFH
logic_74xx138 U_4D(
.I_G1(I_RFSH_n),
.I_G2a(I_AB[15]),
.I_G2b(I_AB[15]),
.I_Sel(I_AB[14:12]),
.O_Q(W_4D_Q)
);
assign O_ROM_CS_n = W_4D_Q[0]&W_4D_Q[1]&W_4D_Q[2]&W_4D_Q[3]&W_4D_Q[4]&W_4D_Q[5];
// ADDR DEC 7000H - 7FFFH
logic_74xx139 U_2A_1(
.I_G(W_4D_Q[7]),
.I_Sel({1'b0,I_AB[11]}),
.O_Q(W_2A1_Q)
);
assign O_DMA_CS_n = W_2A1_Q[1]|I_AB[10];
assign O_6A_G_n = W_2A1_Q[0];
logic_74xx139 U_2A_2(
.I_G(W_4D_Q[7] | I_MREQ_n),
.I_Sel(I_AB[11:10]),
.O_Q(W_2A2_Q)
);
assign O_OBJ_RQ_n = W_2A2_Q[0];
// ADDR DEC 7000H - 7FFFH (R)
logic_74xx138 U_2B(
.I_G1(1'b1),
.I_G2a(I_RD_n),
.I_G2b(I_MREQ_n),
.I_Sel({W_4D_Q[7],I_AB[11:10]}),
.O_Q(W_2B_Q)
);
assign O_OBJ_RD_n = W_2B_Q[0];
assign O_VRAM_RD_n = W_2B_Q[1];
// ADDR DEC 7000H - 7FFFH (W)
logic_74xx138 U_2C(
.I_G1(W_7F2_Q),
//.I_G1(1'b1), // No Wait
.I_G2a(I_WR_n),
.I_G2b(I_MREQ_n),
.I_Sel({W_4D_Q[7],I_AB[11:10]}),
.O_Q(W_2C_Q)
);
assign O_OBJ_WR_n = W_2C_Q[0];
assign O_VRAM_WR_n = W_2C_Q[1];
// ADDR DEC 6000H - 6FFFH (W)
logic_74xx138 U_2D(
.I_G1(1'b1),
.I_G2a(I_WR_n & I_RD_n),
.I_G2b(I_MREQ_n),
.I_Sel({W_4D_Q[6],I_AB[11:10]}),
.O_Q(W_2D_Q)
);
assign O_RAM1_CS_n = W_2D_Q[0];
assign O_RAM2_CS_n = W_2D_Q[1];
assign O_RAM3_CS_n = W_2D_Q[2];
// ADDR DEC 7C00H - 7FFFH (R)
logic_74xx138 U_1B(
.I_G1(1'b1),
.I_G2a(I_RD_n),
.I_G2b(W_2A2_Q[3]),
.I_Sel(I_AB[9:7]),
.O_Q(W_1B_Q)
);
assign O_SW1_OE_n = W_1B_Q[0];
assign O_SW2_OE_n = W_1B_Q[1];
assign O_SW3_OE_n = W_1B_Q[2];
assign O_DIP_OE_n = W_1B_Q[3];
// ADDR DEC 7C00H - 7FFFH (W)
logic_74xx138 U_1C(
.I_G1(1'b1),
.I_G2a(I_WR_n),
.I_G2b(W_2A2_Q[3]),
.I_Sel(I_AB[9:7]),
.O_Q(W_1C_Q)
);
//--- Parts 5H ---------
always@(posedge I_CLK12M or negedge I_RESET_n)
begin
if(I_RESET_n == 1'b0) begin
W_5H_Q <= 0;
end
else begin
if(W_1C_Q[3] == 1'b0) begin
case(I_AB[2:0])
3'h0 : W_5H_Q[0] <= I_DB[0];
3'h1 : W_5H_Q[1] <= I_DB[0];
3'h2 : W_5H_Q[2] <= I_DB[0];
3'h3 : W_5H_Q[3] <= I_DB[0];
3'h4 : W_5H_Q[4] <= I_DB[0];
3'h5 : W_5H_Q[5] <= I_DB[0];
3'h6 : W_5H_Q[6] <= I_DB[0];
3'h7 : W_5H_Q[7] <= I_DB[0];
endcase
end
end
end
//--- Parts 6H ---------
reg [7:0]W_6H_Q;
always@(posedge I_CLK12M or negedge I_RESET_n)
begin
if(I_RESET_n == 1'b0) begin
W_6H_Q <= 0;
end
else begin
if(W_1C_Q[2] == 1'b0) begin
case(I_AB[2:0])
3'h0 : W_6H_Q[0] <= I_DB[0];
3'h1 : W_6H_Q[1] <= I_DB[0];
3'h2 : W_6H_Q[2] <= I_DB[0];
3'h3 : W_6H_Q[3] <= I_DB[0];
3'h4 : W_6H_Q[4] <= I_DB[0];
3'h5 : W_6H_Q[5] <= I_DB[0];
3'h6 : W_6H_Q[6] <= I_DB[0];
3'h7 : W_6H_Q[7] <= I_DB[0];
endcase
end
end
end
//--- Parts 4H ---------
always@(posedge I_CLK12M or negedge I_RESET_n)
begin
if(I_RESET_n == 1'b0) begin
W_4H_Q <= 0;
end
else begin
if(W_1C_Q[1] == 1'b0) begin
case(I_AB[0])
3'h0 : W_4H_Q[0] <= I_DB[0]; // VROM signal
3'h1 : W_4H_Q[1] <= I_DB[0]; // SOUND 8035 PB6
endcase
end
end
end
// Parts 3D
reg [4:0]O_3D_Q;
always@(posedge W_1C_Q[0] or negedge I_RESET_n)
begin
if(I_RESET_n == 1'b0) begin
O_3D_Q <= 0;
end
else begin
O_3D_Q <= I_DB;
end
end
assign O_5H_Q = W_5H_Q;
assign O_6H_Q = W_6H_Q;
assign O_4H_Q = W_4H_Q;
endmodule

View File

@@ -1,271 +0,0 @@
module ram_1024_8_8
(
input I_CLKA,I_CLKB,
input [9:0]I_ADDRA,I_ADDRB,
input [7:0]I_DA,I_DB,
input I_CEA,I_CEB,
input I_WEA,I_WEB,
output [7:0]O_DA,O_DB
);
wire [7:0]W_DOA,W_DOB;
assign O_DA = I_CEA ? W_DOA : 8'h00;
assign O_DB = I_CEB ? W_DOB : 8'h00;
dpram #(10,8) ram_1024_8_8
(
.clock_a(I_CLKA),
.address_a(I_ADDRA),
.data_a(I_DA),
.enable_a(I_CEA),
.wren_a(I_WEA),
.q_a(W_DOA),
.clock_b(I_CLKB),
.address_b(I_ADDRB),
.data_b(I_DB),
.enable_b(I_CEB),
.wren_b(I_WEB),
.q_b(W_DOB)
);
endmodule
/////////////////////////////////////////////////////////////////////
module ram_1024_8
(
input I_CLK,
input [9:0]I_ADDR,
input [7:0]I_D,
input I_CE,
input I_WE,
output [7:0]O_D
);
wire [7:0]W_DO;
assign O_D = I_CE ? W_DO : 8'h00;
dpram #(10,8) ram_1024_8
(
.clock_a(I_CLK),
.address_a(I_ADDR),
.data_a(I_D),
.wren_a(I_WE),
.enable_a(I_CE),
.q_a(W_DO),
.clock_b(I_CLK)
);
endmodule
/////////////////////////////////////////////////////////////////////
module ram_2N
(
input I_CLK,
input [7:0]I_ADDR,
input [3:0]I_D,
input I_CE,
input I_WE,
output [3:0]O_D
);
dpram #(8,4) ram_256_4
(
.clock_a(I_CLK),
.address_a(I_ADDR),
.data_a(I_D),
.wren_a(I_WE),
.enable_a(I_CE),
.q_a(O_D),
.clock_b(I_CLK)
);
endmodule
/////////////////////////////////////////////////////////////////////
module ram_2EH7M
(
input I_CLKA,I_CLKB,
input [7:0]I_ADDRA,
input [5:0]I_ADDRB,
input [5:0]I_DA,
input [8:0]I_DB,
input I_CEA,I_CEB,
input I_WEA,I_WEB,
output [5:0]O_DA,
output [8:0]O_DB
);
dpram #(8,6) ram_256_6
(
.clock_a(I_CLKA),
.address_a(I_ADDRA),
.data_a(I_DA),
.enable_a(I_CEA),
.wren_a(I_WEA),
.q_a(O_DA),
.clock_b(I_CLKA)
);
dpram #(6,9) ram_64_9
(
.clock_a(I_CLKB),
.address_a(I_ADDRB),
.data_a(I_DB),
.enable_a(I_CEB),
.wren_a(I_WEB),
.q_a(O_DB),
.clock_b(I_CLKB)
);
endmodule
/////////////////////////////////////////////////////////////////////
module ram_2EF
(
input I_CLKA,I_CLKB,
input [7:0]I_ADDRA,I_ADDRB,
input [7:0]I_DA,I_DB,
input I_CEA,I_CEB,
input I_WEA,I_WEB,
output [7:0]O_DA,O_DB
);
dpram #(9,8) ram_512_8
(
.clock_a(I_CLKA),
.address_a({1'b0,I_ADDRA}),
.data_a(I_DA),
.enable_a(I_CEA),
.wren_a(I_WEA),
.q_a(O_DA),
.clock_b(I_CLKB),
.address_b({1'b1,I_ADDRB}),
.data_b(I_DB),
.enable_b(I_CEB),
.wren_b(I_WEB),
.q_b(O_DB)
);
endmodule
/////////////////////////////////////////////////////////////////////
module double_scan
(
input I_CLKA,I_CLKB,
input [8:0]I_ADDRA,I_ADDRB,
input [7:0]I_DA,I_DB,
input I_CEA,I_CEB,
input I_WEA,I_WEB,
output [7:0]O_DA,O_DB
);
dpram #(9,8) ram_512_8
(
.clock_a(I_CLKA),
.address_a(I_ADDRA),
.data_a(I_DA),
.enable_a(I_CEA),
.wren_a(I_WEA),
.q_a(O_DA),
.clock_b(I_CLKB),
.address_b(I_ADDRB),
.data_b(I_DB),
.enable_b(I_CEB),
.wren_b(I_WEB),
.q_b(O_DB)
);
endmodule
/////////////////////////////////////////////////////////////////////
module ram_64_8
(
input I_CLK,
input [5:0]I_ADDR,
input [7:0]I_D,
input I_CE,
input I_WE,
output [7:0]O_D
);
dpram #(6,8) ram_64_8
(
.clock_a(I_CLK),
.address_a(I_ADDR),
.data_a(I_D),
.wren_a(I_WE),
.enable_a(I_CE),
.q_a(O_D),
.clock_b(I_CLK)
);
endmodule
/////////////////////////////////////////////////////////////////////
module ram_2048_8
(
input I_CLK,
input [10:0]I_ADDR,
input [7:0]I_D,
input I_CE,
input I_WE,
output [7:0]O_D
);
dpram #(11,8) ram_2048_8
(
.clock_a(I_CLK),
.address_a(I_ADDR),
.data_a(I_D),
.wren_a(I_WE),
.enable_a(I_CE),
.q_a(O_D),
.clock_b(I_CLK)
);
endmodule
/////////////////////////////////////////////////////////////////////
module ram_4096_8
(
input I_CLK,
input [11:0]I_ADDR,
input [7:0]I_D,
input I_CE,
input I_WE,
output [7:0]O_D
);
dpram #(12,8) ram_4096_8
(
.clock_a(I_CLK),
.address_a(I_ADDR),
.data_a(I_D),
.wren_a(I_WE),
.enable_a(I_CE),
.q_a(O_D),
.clock_b(I_CLK)
);
endmodule

View File

@@ -1,69 +0,0 @@
//===============================================================================
// FPGA DONKEY KONG COLOR_PALETE(XILINX EDITION)
//
// Version : 3.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2005- 2- 9 The description of the ROM was changed.
// Data on the ROM are initialized at the time of the start.
//================================================================================
module dkongjr_col_pal
(
input CLK_6M,
input CLK_12M,
input [5:0]I_VRAM_D,
input [5:0]I_OBJ_D,
input I_CMPBLKn,
input I_5H_Q6,I_5H_Q7,
input [7:0]I_CNF_A,
input [7:0]I_CNF_D,
output [2:0]O_R,
output [2:0]O_G,
output [1:0]O_B
);
//------- PARTS 3ML ------------------------------------
wire [5:0]W_3ML_Y = (~(I_OBJ_D[0]|I_OBJ_D[1])) ? I_VRAM_D: I_OBJ_D;
//------- PARTS 1EF ------------------------------------
wire [9:0]W_1EF_D = {I_5H_Q7,I_5H_Q6,W_3ML_Y[5:0],W_3ML_Y[0]|W_3ML_Y[1],I_CMPBLKn};
reg [9:0]W_1EF_Q;
wire W_1EF_RST = I_CMPBLKn|W_1EF_Q[0];
always@(posedge CLK_6M or negedge W_1EF_RST)
begin
if(W_1EF_RST == 1'b0) W_1EF_Q <= 1'b0;
else W_1EF_Q <= W_1EF_D;
end
//------- PARTS 2EF ------------------------------------
wire [3:0]W_2E_DO,W_2F_DO;
col1 rom2j(
.clk(CLK_12M),
.addr(W_1EF_Q[9:2]),
.data(W_2E_DO)
);
col2 rom2k(
.clk(CLK_12M),
.addr(W_1EF_Q[9:2]),
.data(W_2F_DO)
);
assign {O_R, O_G, O_B} = {~W_2F_DO, ~W_2E_DO};
endmodule

View File

@@ -1,121 +0,0 @@
//============================================================================
// DAC Discharge Circuit
//
// Author: gaz68 (https://github.com/gaz68)
// October 2019
//
// Simulation of capacitor discharge circuit to pin 14 input of DAC-08.
// Components R20, C32 and Q4 on schematics.
// Adds decay to some sounds and background tunes.
//============================================================================
module dkongjr_dac
(
input I_CLK,
input I_DECAY_EN,
input I_RESET_n,
input signed [15:0]I_SND_DAT,
output signed [15:0]O_SND_DAT
);
// Exponential decay. Timing of decay steps calculated using:
// v = exp(-(t / (r * c)))
// Where:
// t = 1 / sample rate (48,000Hz)
// r = 10,000 (10KOhm)
// c = 0.00001 (10uf)
// for v scaled up to 8-bit values.
wire [14:0] exp_lut[0:255] =
{
15'h000A, 15'h001D, 15'h0030, 15'h0043, 15'h0056, 15'h0069, 15'h007C, 15'h0090,
15'h00A3, 15'h00B7, 15'h00CA, 15'h00DE, 15'h00F2, 15'h0106, 15'h011A, 15'h012E,
15'h0142, 15'h0156, 15'h016A, 15'h017E, 15'h0193, 15'h01A7, 15'h01BC, 15'h01D1,
15'h01E5, 15'h01FA, 15'h020F, 15'h0224, 15'h0239, 15'h024F, 15'h0264, 15'h0279,
15'h028F, 15'h02A5, 15'h02BA, 15'h02D0, 15'h02E6, 15'h02FC, 15'h0312, 15'h0328,
15'h033F, 15'h0355, 15'h036C, 15'h0382, 15'h0399, 15'h03B0, 15'h03C7, 15'h03DE,
15'h03F5, 15'h040C, 15'h0424, 15'h043B, 15'h0453, 15'h046B, 15'h0483, 15'h049B,
15'h04B3, 15'h04CB, 15'h04E3, 15'h04FC, 15'h0514, 15'h052D, 15'h0546, 15'h055F,
15'h0578, 15'h0591, 15'h05AB, 15'h05C4, 15'h05DE, 15'h05F8, 15'h0612, 15'h062C,
15'h0646, 15'h0661, 15'h067B, 15'h0696, 15'h06B1, 15'h06CC, 15'h06E7, 15'h0702,
15'h071D, 15'h0739, 15'h0755, 15'h0771, 15'h078D, 15'h07A9, 15'h07C5, 15'h07E2,
15'h07FF, 15'h081C, 15'h0839, 15'h0856, 15'h0873, 15'h0891, 15'h08AF, 15'h08CD,
15'h08EB, 15'h0909, 15'h0928, 15'h0947, 15'h0966, 15'h0985, 15'h09A4, 15'h09C4,
15'h09E4, 15'h0A04, 15'h0A24, 15'h0A44, 15'h0A65, 15'h0A86, 15'h0AA7, 15'h0AC8,
15'h0AEA, 15'h0B0C, 15'h0B2E, 15'h0B50, 15'h0B72, 15'h0B95, 15'h0BB8, 15'h0BDC,
15'h0BFF, 15'h0C23, 15'h0C47, 15'h0C6B, 15'h0C90, 15'h0CB5, 15'h0CDA, 15'h0D00,
15'h0D25, 15'h0D4B, 15'h0D72, 15'h0D99, 15'h0DC0, 15'h0DE7, 15'h0E0F, 15'h0E37,
15'h0E5F, 15'h0E88, 15'h0EB1, 15'h0EDA, 15'h0F04, 15'h0F2E, 15'h0F58, 15'h0F83,
15'h0FAE, 15'h0FDA, 15'h1006, 15'h1033, 15'h105F, 15'h108D, 15'h10BA, 15'h10E9,
15'h1117, 15'h1146, 15'h1176, 15'h11A6, 15'h11D6, 15'h1207, 15'h1239, 15'h126B,
15'h129D, 15'h12D0, 15'h1304, 15'h1338, 15'h136D, 15'h13A2, 15'h13D8, 15'h140F,
15'h1446, 15'h147E, 15'h14B6, 15'h14EF, 15'h1529, 15'h1564, 15'h159F, 15'h15DB,
15'h1618, 15'h1655, 15'h1694, 15'h16D3, 15'h1713, 15'h1754, 15'h1795, 15'h17D8,
15'h181C, 15'h1860, 15'h18A6, 15'h18EC, 15'h1934, 15'h197D, 15'h19C7, 15'h1A12,
15'h1A5E, 15'h1AAB, 15'h1AFA, 15'h1B4A, 15'h1B9B, 15'h1BEE, 15'h1C42, 15'h1C98,
15'h1CEF, 15'h1D48, 15'h1DA3, 15'h1DFF, 15'h1E5D, 15'h1EBD, 15'h1F1F, 15'h1F83,
15'h1FE9, 15'h2052, 15'h20BC, 15'h2129, 15'h2199, 15'h220B, 15'h2280, 15'h22F8,
15'h2373, 15'h23F2, 15'h2473, 15'h24F9, 15'h2582, 15'h260F, 15'h26A1, 15'h2737,
15'h27D1, 15'h2871, 15'h2917, 15'h29C2, 15'h2A74, 15'h2B2D, 15'h2BED, 15'h2CB5,
15'h2D86, 15'h2E60, 15'h2F45, 15'h3035, 15'h3131, 15'h323C, 15'h3356, 15'h3483,
15'h35C3, 15'h371A, 15'h388B, 15'h3A1B, 15'h3BD0, 15'h3DB0, 15'h3FC6, 15'h421F,
15'h44CE, 15'h47F0, 15'h4BB3, 15'h5069, 15'h56B8, 15'h604C, 15'h74E6, 15'h7FFF
};
parameter div = 512; // 24.576MHz/512 = 48KHz
reg [11:0]sample;
reg sample_pls;
always@(posedge I_CLK or negedge I_RESET_n)
begin
if(! I_RESET_n) begin
sample <= 0;
sample_pls <= 0;
end else begin
sample <= (sample == div-1) ? 1'b0 : sample + 1'b1;
sample_pls <= (sample == div-1)? 1'b1 : 1'b0 ;
end
end
reg signed [8:0]expval;
reg [7:0]index;
reg [14:0]count;
reg signed [23:0]snd_out;
always@(posedge I_CLK or negedge I_RESET_n)
begin
if(!I_RESET_n) begin
expval <= 9'sd255;
count <= 0;
index <= 0;
end
else begin
if (sample_pls) begin
if (I_DECAY_EN) begin
count <= (count == 15'h7FF0) ? 15'h7FF0 : count + 1'b1;
if (count == exp_lut[index]) begin
index <= (index == 8'd255) ? 8'd255 : index + 1'b1;
expval <= (expval == 0) ? 1'b0 : expval - 1'b1;
end
end
else begin
expval <= (expval == 9'sd255) ? 9'sd255 : expval + 1'b1;
count <= 0;
index <= 0;
end
snd_out <= I_SND_DAT * expval;
end
end
end
assign O_SND_DAT = snd_out[23:8];
endmodule

View File

@@ -1,74 +0,0 @@
//============================================================================
// Sprite DMA.
//
// Author: gaz68 (https://github.com/gaz68)
// October 2019
//
// Simplified sprite DMA. To Do: Implement full 8257 DMA controller.
//============================================================================
module dkongjr_dma
(
input I_CLK,
input I_RSTn,
input I_DMA_TRIG,
input [7:0]I_DMA_DS,
output [9:0]O_DMA_AS,
output [9:0]O_DMA_AD,
output [7:0]O_DMA_DD,
output O_DMA_CES,
output O_DMA_CED
);
parameter dma_cnt_end = 10'h17F;
reg W_DMA_EN = 1'b0;
reg [10:0]W_DMA_CNT;
reg [7:0]W_DMA_DATA;
reg [9:0]DMA_ASr;
reg [9:0]DMA_ADr;
reg [7:0]DMA_DDr;
reg DMA_CESr, DMA_CEDr;
always @(posedge I_CLK)
begin
reg old_trig;
old_trig <= I_DMA_TRIG;
if(~old_trig & I_DMA_TRIG)
begin
DMA_ASr <= 10'h100;
DMA_ADr <= 0;
W_DMA_CNT <= 0;
W_DMA_EN <= 1'b1;
DMA_CESr <= 1'b1;
DMA_CEDr <= 1'b1;
end
else if(W_DMA_EN == 1'b1)
begin
case(W_DMA_CNT[1:0])
1: DMA_DDr <= I_DMA_DS;
2: DMA_ASr <= DMA_ASr + 1'd1;
3: DMA_ADr <= DMA_ADr + 1'd1;
default:;
endcase
W_DMA_CNT <= W_DMA_CNT + 1'd1;
W_DMA_EN <= W_DMA_CNT==dma_cnt_end*4 ? 1'b0 : 1'b1;
end
else
begin
DMA_CESr <= 1'b0;
DMA_CEDr <= 1'b0;
end
end
assign O_DMA_AS = DMA_ASr;
assign O_DMA_AD = DMA_ADr;
assign O_DMA_DD = DMA_DDr;
assign O_DMA_CES = DMA_CESr;
assign O_DMA_CED = DMA_CEDr;
endmodule

View File

@@ -1,125 +0,0 @@
//===============================================================================
// FPGA DONKEY KONG H&V COUNTER
//
// Version : 2.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2005- 2- 9 some changed.
//================================================================================
//-----------------------------------------------------------------------------------------
// H_CNT[0],H_CNT[1],H_CNT[2],H_CNT[3],H_CNT[4],H_CNT[5],H_CNT[6],H_CNT[7],H_CNT[8],H_CNT[9]
// 1/2 H 1 H 2 H 4H 8H 16 H 32H 64 H 128 H 256 H
//-----------------------------------------------------------------------------------------
// V_CNT[0], V_CNT[1], V_CNT[2], V_CNT[3], V_CNT[4], V_CNT[5], V_CNT[6], V_CNT[7]
// 1 V 2 V 4 V 8 V 16 V 32 V 64 V 128 V
//-----------------------------------------------------------------------------------------
// VF_CNT[0],VF_CNT[1],VF_CNT[2],VF_CNT[3],VF_CNT[4],VF_CNT[5],VF_CNT[6],VF_CNT[7]
// 1 VF 2 VF 4 VF 8 VF 16 VF 32 VF 64 VF 128 VF
module dkongjr_hv_count(
// input
I_CLK,
RST_n,
V_FLIP,
// output
O_CLK,
H_CNT,
V_CNT,
VF_CNT,
H_BLANKn,
V_BLANKn,
C_BLANKn,
H_SYNCn,
V_SYNCn
);
input I_CLK;// 24.576MHz
input RST_n;
input V_FLIP;
output O_CLK;
output [9:0]H_CNT;
output [7:0]V_CNT;
output [7:0]VF_CNT;
output H_BLANKn;
output V_BLANKn;
output C_BLANKn;
output H_SYNCn;
output V_SYNCn;
parameter H_count = 1536;
parameter H_BL_P = 511;
parameter H_BL_W = 767;
parameter V_CL_P = 576;
parameter V_CL_W = 640;
parameter V_BL_P = 239;
parameter V_BL_W = 15;
reg [10:0]H_CNT_r = 0;
always@(posedge I_CLK)
begin
H_CNT_r <= (H_CNT_r == H_count-1)? 0 : H_CNT_r+1 ;
end
assign H_CNT[9:0] = H_CNT_r[10:1];
assign O_CLK = H_CNT_r[0] ;
reg V_CLK = 1'b0;
reg H_BLANK = 1'b0;
always@(posedge O_CLK)
begin
case(H_CNT[9:0])
H_BL_P: H_BLANK <= 1;
V_CL_P: V_CLK <= 1;
H_BL_W: H_BLANK <= 0;
V_CL_W: V_CLK <= 0;
default:;
endcase
end
assign H_SYNCn = ~V_CLK;
assign H_BLANKn = ~H_BLANK;
reg [8:0]V_CNT_r;
always@(posedge V_CLK or negedge RST_n)
begin
if(RST_n == 1'b0)
V_CNT_r <= 0 ;
else
V_CNT_r <= (V_CNT_r == 255)? 504 : V_CNT_r+1 ;
end
reg V_BLANK;
always@(posedge V_CLK or negedge RST_n)
begin
if(RST_n == 1'b0)begin
V_BLANK <= 0 ;
end
else begin
case(V_CNT_r[8:0])
V_BL_P: V_BLANK <= 1;
V_BL_W: V_BLANK <= 0;
default:;
endcase
end
end
assign V_CNT[7:0] = V_CNT_r[7:0];
assign V_SYNCn = ~V_CNT_r[8];
assign V_BLANKn = ~V_BLANK;
assign C_BLANKn = ~(H_BLANK | V_BLANK);
assign VF_CNT[7:0]= V_CNT ^ {8{V_FLIP}};
endmodule

View File

@@ -1,171 +0,0 @@
/*MIT License
Copyright (c) 2019 Gregory Hogan (Soltan_G42)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.*/
module iir_1st_order
#(
parameter COEFF_WIDTH = 18,
parameter COEFF_SCALE = 15,
parameter DATA_WIDTH = 8,
parameter COUNT_BITS = 11
)
(
input clk,
input reset,
input [COUNT_BITS - 1 : 0] div,
input signed [COEFF_WIDTH - 1 : 0] A2, B1, B2,
input signed [DATA_WIDTH - 1 :0] in,
output signed [DATA_WIDTH - 1:0] out
);
reg signed [DATA_WIDTH-1:0] x0,x1,y0;
reg signed [DATA_WIDTH + COEFF_WIDTH - 1 : 0] out32;
reg [COUNT_BITS - 1:0] count;
// Usage:
// Design your 1st order iir low/high-pass with a tool that will give you the
// filter coefficients for the difference equation. Filter coefficients can
// be generated in Octave/matlab/scipy using a command similar to
// [B, A] = butter( 1, 3500/(106528/2), 'low') for a 3500 hz 1st order low-pass
// assuming 106528Hz sample rate.
//
// The Matlab output is:
// B = [0.093863 0.093863]
// A = [1.00000 -0.81227]
//
// Then scale coefficients by multiplying by 2^COEFF_SCALE and round to nearest integer
//
// B = [3076 3076]
// A = [32768 -26616]
//
// Discard A(1) because it is assumed 1.0 before scaling
//
// This leaves you with A2 = -26616 , B1 = 3076 , B2 = 3076
// B1 + B2 - A2 should sum to 2^COEFF_SCALE = 32768
//
// Sample frequency is "clk rate/div": for Genesis this is 53.69mhz/504 = 106528hz
//
// COEFF_WIDTH must be at least COEFF_SCALE+1 and must be large enough to
// handle temporary overflow during this computation: out32 <= (B1*x0 + B2*x1) - A2*y0
assign out = y0;
always @ (*) begin
out32 <= (B1*x0 + B2*x1) - A2*y0; //Previous output is y0 not y1
end
always @ (posedge clk) begin
if(reset) begin
count <= 0;
x0 <= 0;
x1 <= 0;
y0 <= 0;
end
else begin
count <= count + 1'd1;
if (count == div - 1) begin
count <= 0;
y0 <= {out32[DATA_WIDTH + COEFF_WIDTH - 1] , out32[COEFF_SCALE + DATA_WIDTH - 2 : COEFF_SCALE]};
x1 <= x0;
x0 <= in;
end
end
end
endmodule //iir_1st_order
module iir_2nd_order
#(
parameter COEFF_WIDTH = 18,
parameter COEFF_SCALE = 14,
parameter DATA_WIDTH = 16,
parameter COUNT_BITS = 10
)
(
input clk,
input reset,
input [COUNT_BITS - 1 : 0] div,
input signed [COEFF_WIDTH - 1 : 0] A2, A3, B1, B2, B3,
input signed [DATA_WIDTH - 1 : 0] in,
output [DATA_WIDTH - 1 : 0] out
);
reg signed [DATA_WIDTH-1 : 0] x0,x1,x2;
reg signed [DATA_WIDTH-1 : 0] y0,y1;
reg signed [(DATA_WIDTH + COEFF_WIDTH - 1) : 0] out32;
reg [COUNT_BITS : 0] count;
// Usage:
// Design your 1st order iir low/high-pass with a tool that will give you the
// filter coefficients for the difference equation. Filter coefficients can
// be generated in Octave/matlab/scipy using a command similar to
// [B, A] = butter( 2, 5000/(48000/2), 'low') for a 5000 hz 2nd order low-pass
// assuming 48000Hz sample rate.
//
// Output is:
// B = [ 0.072231 0.144462 0.072231]
// A = [1.00000 -1.10923 0.39815]
//
// Then scale coefficients by multiplying by 2^COEFF_SCALE and round to nearest integer
// Make sure your coefficients can be stored as a signed number with COEFF_WIDTH bits.
//
// B = [1183 2367 1183]
// A = [16384 -18174 6523]
//
// Discard A(1) because it is assumed 1.0 before scaling
//
// This leaves you with A2 = -18174 , A3 = 6523, B1 = 1183 , B2 = 2367 , B3 = 1183
// B1 + B2 + B3 - A2 - A3 should sum to 2^COEFF_SCALE = 16384
//
// Sample frequency is "clk rate/div"
//
// COEFF_WIDTH must be at least COEFF_SCALE+1 and must be large enough to
// handle temporary overflow during this computation:
// out32 <= (B1*x0 + B2*x1 + B3*x2) - (A2*y0 + A3*y1);
assign out = y0;
always @ (*) begin
out32 <= (B1*x0 + B2*x1 + B3*x2) - (A2*y0 + A3*y1); //Previous output is y0 not y1
end
always @ (posedge clk) begin
if(reset) begin
count <= 0;
x0 <= 0;
x1 <= 0;
x2 <= 0;
y0 <= 0;
y1 <= 0;
end
else begin
count <= count + 1'd1;
if (count == div - 1) begin
count <= 0;
y1 <= y0;
y0 <= {out32[DATA_WIDTH + COEFF_WIDTH - 1] , out32[(DATA_WIDTH + COEFF_SCALE - 2) : COEFF_SCALE]};
x2 <= x1;
x1 <= x0;
x0 <= in;
end
end
end
endmodule //iir_2nd_order

View File

@@ -1,76 +0,0 @@
//===============================================================================
//
// Modified for Donkey Kong Junior by gaz68.
//
// FPGA DONKEY KONG INPORT
//
// Version : 1.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
//================================================================================
module dkongjr_inport(
// input
I_SW1,
I_SW2,
I_SW3,
I_DIP,
// enable
I_SW1_OE_n,
I_SW2_OE_n,
I_SW3_OE_n,
I_DIP_OE_n,
// output
O_D
);
// B0 B1 B2 B3 B4 B5 B6 B7
//-----------------------------------------------------------------------------------
//7C00(R) sw1(MAIN) RIGHT LEFT UP DOWN JUMP
//7C80(R) sw2(SUB) RIGHT LEFT UP DOWN JUMP
//7D00(R) sw3( ) 1P 2P COIN
//7D80(R) DIP
// JUMPMAN 3 0 0
// 4 1 0
// 5 0 1
// 6 1 1
// BONUS 10000 0 0
// 15000 1 0
// 20000 0 1
// 25000 1 1
// COIN 1/1 0 0 0
// 1/2 0 1 0
// 1/3 0 0 1
// 1/4 0 1 1
// 2/1 1 0 0
// 3/1 1 1 0
// 4/1 1 0 1
// 5/1 1 1 1
// Table 0
// Upright 1
//
input [7:0]I_SW1,I_SW2,I_SW3,I_DIP;
input I_SW1_OE_n,I_SW2_OE_n,I_SW3_OE_n,I_DIP_OE_n; // Active LOW
output [7:0]O_D;
wire [7:0]W_SW1 = I_SW1_OE_n ? 8'h00: ~I_SW1;
wire [7:0]W_SW2 = I_SW2_OE_n ? 8'h00: !I_DIP[7] ? ~I_SW2 : ~I_SW1;
wire [7:0]W_SW3 = I_SW3_OE_n ? 8'h00: ~I_SW3;
wire [7:0]W_DIP = I_DIP_OE_n ? 8'h00: I_DIP;
assign O_D = W_SW1 | W_SW2 | W_SW3 | W_DIP;
endmodule

View File

@@ -1,128 +0,0 @@
//===============================================================================
// FPGA DONKEY KONG used LOGIC IP
//
// Version : 1.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
//================================================================================
//================================================
// 74xx109
// JK FLIP-FLOPS with PRESET & RST
// PRESET NO USE
//================================================
module logic_74xx109(
CLK,
RST,
I_J,
I_K,
O_Q
);
input CLK,RST;
input I_J,I_K;
output O_Q;
reg Q;
assign O_Q = Q;
always@(posedge CLK or negedge RST)
begin
if(RST == 1'b0) Q <= 1'b0;
else begin
case({I_J,I_K})
2'b00: Q <= 1'b0;
2'b01: Q <= Q;
2'b10: Q <= ~Q;
2'b11: Q <= 1'b1;
endcase
end
end
endmodule
//================================================
// 74xx138
// 3-to-8 line decoder
//================================================
module logic_74xx138(
I_G1,
I_G2a,
I_G2b,
I_Sel,
O_Q
);
input I_G1,I_G2a,I_G2b;
input [2:0]I_Sel;
output [7:0]O_Q;
reg [7:0]O_Q;
wire [2:0]I_G = {I_G1,I_G2a,I_G2b};
always@(I_G or I_Sel or O_Q)
begin
if(I_G == 3'b100 )begin
case(I_Sel)
3'b000: O_Q = 8'b11111110;
3'b001: O_Q = 8'b11111101;
3'b010: O_Q = 8'b11111011;
3'b011: O_Q = 8'b11110111;
3'b100: O_Q = 8'b11101111;
3'b101: O_Q = 8'b11011111;
3'b110: O_Q = 8'b10111111;
3'b111: O_Q = 8'b01111111;
endcase
end
else begin
O_Q = 8'b11111111;
end
end
endmodule
//================================================
// 74xx139
// 2-to-4 line decoder
//================================================
module logic_74xx139(
I_G,
I_Sel,
O_Q
);
input I_G;
input [1:0]I_Sel;
output [3:0]O_Q;
reg [3:0]O_Q;
always@(I_G or I_Sel or O_Q)
begin
if(I_G == 1'b0 )begin
case(I_Sel)
2'b00: O_Q = 4'b1110;
2'b01: O_Q = 4'b1101;
2'b10: O_Q = 4'b1011;
2'b11: O_Q = 4'b0111;
endcase
end
else begin
O_Q = 4'b1111;
end
end
endmodule

View File

@@ -1,377 +0,0 @@
//===============================================================================
// FPGA DONKEY KONG OBJ
//
// Version : 4.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2004 -8-24 OBJ ROM REMOVED K.Degawa
// 2005- 2- 9 The description of the ROM was changed.
// Data on the ROM are initialized at the time of the start.
//================================================================================
//-----------------------------------------------------------------------------------------
// H_CNT[0],H_CNT[1],H_CNT[2],H_CNT[3],H_CNT[4],H_CNT[5],H_CNT[6],H_CNT[7],H_CNT[8],H_CNT[9]
// 1/2 H 1 H 2 H 4H 8H 16 H 32H 64 H 128 H 256 H
//-----------------------------------------------------------------------------------------
// V_CNT[0], V_CNT[1], V_CNT[2], V_CNT[3], V_CNT[4], V_CNT[5], V_CNT[6], V_CNT[7]
// 1 V 2 V 4 V 8 V 16 V 32 V 64 V 128 V
//-----------------------------------------------------------------------------------------
// VF_CNT[0],VF_CNT[1],VF_CNT[2],VF_CNT[3],VF_CNT[4],VF_CNT[5],VF_CNT[6],VF_CNT[7]
// 1 VF 2 VF 4 VF 8 VF 16 VF 32 VF 64 VF 128 VF
//-----------------------------------------------------------------------------------------
module dkongjr_obj(
CLK_24M,
CLK_12M,
I_AB,
I_DB,
I_OBJ_D,
I_OBJ_WRn,
I_OBJ_RDn,
I_OBJ_RQn,
I_2PSL,
I_FLIPn,
I_H_CNT,
I_VF_CNT,
I_CMPBLKn,
//I_OBJ_D1,
//I_OBJ_D2,
//I_OBJ_D3,
//I_OBJ_D4,
//O_OBJ_AB,
//---- Debug ---------
//--------------------
O_DB,
O_OBJ_DO,
O_FLIP_VRAM,
O_FLIP_HV,
O_L_CMPBLKn
);
input CLK_24M;
input CLK_12M;
input [9:0]I_AB;
input [7:0]I_DB;
input [7:0]I_OBJ_D;
input I_OBJ_WRn;
input I_OBJ_RDn;
input I_OBJ_RQn;
input I_2PSL;
input I_FLIPn;
input I_CMPBLKn;
input [9:0]I_H_CNT;
input [7:0]I_VF_CNT;
output [7:0]O_DB;
output [5:0]O_OBJ_DO;
output O_FLIP_VRAM;
output O_FLIP_HV;
output O_L_CMPBLKn;
//output [11:0]O_OBJ_AB;
//input [7:0]I_OBJ_D1,I_OBJ_D2,I_OBJ_D3,I_OBJ_D4;
//---- Debug ---------
//--------------------
wire W_5F1_G = ~(I_H_CNT[0]&I_H_CNT[1]&I_H_CNT[2]&I_H_CNT[3]);
reg W_5B;
always@(negedge CLK_24M) W_5B <= ~(I_H_CNT[0]&I_H_CNT[1]&I_H_CNT[2]&I_H_CNT[3]);
wire [3:0]W_5F1_Q;
wire [3:0]W_5F2_QB;
logic_74xx139 U_5F1(
.I_G(W_5F1_G),
.I_Sel({~I_H_CNT[9],I_H_CNT[3]}),
.O_Q(W_5F1_Q)
);
logic_74xx139 U_5F2(
.I_G(1'b0),
.I_Sel({I_H_CNT[3],I_H_CNT[2]}),
.O_Q(W_5F2_QB)
);
reg [3:0]W_5F2_Q;
always@(negedge CLK_24M) W_5F2_Q <= W_5F2_QB;
//---------- FLIP ----------------------------------------------------
wire W_FLIP_1 = ~I_FLIPn; // INV
wire W_FLIP_2 = W_FLIP_1 ^ 1'b1; // INV => XOR
wire W_FLIP_3 = ~W_FLIP_2; // INV => XOR => INV
wire W_FLIP_4 = W_FLIP_3 | W_5F2_Q[0];
wire W_FLIP_5 = ~W_FLIP_4;
assign O_FLIP_VRAM = W_FLIP_1;
assign O_FLIP_HV = W_FLIP_3;
//------- DB CONTROL ------------------------------------------------
wire [7:0]WI_DB = I_OBJ_WRn ? 8'h00: I_DB;
wire [7:0]WO_DB;
//assign O_DB = I_OBJ_RDn ? 8'h00: WO_DB;
//------- AB CONTROL ------------------------------------------------
wire W_AB_SEL = I_OBJ_WRn & I_OBJ_RDn & I_OBJ_RQn;
wire [9:0]W_obj_AB = W_AB_SEL ? {I_2PSL,I_H_CNT[8:0]} : I_AB ;
wire W_obj_CS = W_AB_SEL ? 1'b0 : I_OBJ_WRn & I_OBJ_RDn;
//------- VFC_CNT[7:0] ------------------------------------------------
reg [7:0]W_VFC_CNT;
always@(negedge I_H_CNT[9]) W_VFC_CNT <= I_VF_CNT;
//------ PARTS 6N
reg [7:0]W_6N_Q;
always@(negedge CLK_12M) W_6N_Q <= I_OBJ_D;
wire [7:0]W_78R_A = W_6N_Q;
wire [7:0]W_78R_B = {4'b1111,I_FLIPn,W_FLIP_1,W_FLIP_1,1'b1};
wire [8:0]W_78R_Q = W_78R_A + W_78R_B + 8'b00000001;
wire [7:0]W_78P_A = W_78R_Q[7:0];
wire [7:0]W_78P_B = I_VF_CNT[7:0];
wire [8:0]W_78P_Q = W_78P_A + W_78P_B;
reg W_7H;
always@(posedge CLK_12M) W_7H <= ~(W_78P_Q[7]&W_78P_Q[6]&W_78P_Q[5]&W_78P_Q[4]);
reg [7:0]W_5L_Q;
reg CLK_4L;
always@(negedge CLK_24M) CLK_4L = ~(I_H_CNT[0]&(~I_H_CNT[1]));
wire W_6L = ~(W_5L_Q[6]|W_5L_Q[7]);
wire W_3P = ~(I_H_CNT[2]&I_H_CNT[3]&I_H_CNT[4]&I_H_CNT[5]&I_H_CNT[6]&I_H_CNT[7]&I_H_CNT[8] & W_6L);
//-- U_4L ---------------
reg W_4L_Q;
wire RST_4L = ~I_H_CNT[9];
always@(posedge CLK_4L or negedge RST_4L)
begin
if(RST_4L == 0) W_4L_Q <= 1'b0;
else W_4L_Q <= ~(W_7H&W_3P);
end
wire CLK_5L = ~(CLK_12M&(~I_H_CNT[9])&W_4L_Q&W_6L);
wire W_5L_RST = ~I_H_CNT[9];
always@(posedge CLK_5L or negedge W_5L_RST)
begin
if(W_5L_RST == 1'b0) W_5L_Q <= 0;
else W_5L_Q <= W_5L_Q +1;
end
//------ PARTS 6M ----------------------------------------------
reg [7:0]W_6M_Q;
always@(negedge CLK_12M) W_6M_Q <= W_6N_Q;
//----------------------------------------------------------------
wire [5:0]W_RAM_7M_AB = ~I_H_CNT[9] ? W_5L_Q[5:0]:I_H_CNT[7:2];
wire [8:0]W_RAM_7M_DIB = {W_6M_Q[7:0],W_3P};
wire [8:0]W_RAM_7M_DOB;
wire [8:0]W_RAM_7M_DOBn = W_RAM_7M_DOB[8:0];
reg [7:0]W_HD;
always@(negedge CLK_24M) W_HD <= W_RAM_7M_DOBn[8:1];
wire [7:0]W_78K_A = W_RAM_7M_DOBn[8:1];
wire [7:0]W_78K_B = {4'b1111,W_FLIP_5,W_FLIP_4,W_FLIP_4,1'b1};
wire [8:0]W_78K_Q = W_78K_A + W_78K_B + 8'b00000001;
wire [7:0]W_78J_A = W_78K_Q[7:0];
wire [7:0]W_78J_B = W_VFC_CNT[7:0];
wire [8:0]W_78J_Q = W_78J_A + W_78J_B;
wire [7:0]W_8H_D = W_78J_Q[7:0];
reg [7:0]W_8H_Q;
always@(posedge W_5F2_Q[0]) W_8H_Q <= W_8H_D;
reg [7:0]W_6J_Q;
always@(posedge W_5F2_Q[2]) W_6J_Q <= W_HD[7:0];
wire [7:0]W_6K_D = {W_6J_Q[7],I_CMPBLKn,~I_H_CNT[9],
~(I_H_CNT[9]|W_FLIP_2),W_6J_Q[3:0]};
reg [7:0]W_6K_Q;
always@(posedge CLK_12M)
begin
if(W_5B == 1'b0) W_6K_Q <= W_6K_D;
else W_6K_Q <= W_6K_Q;
end
assign O_L_CMPBLKn = W_6K_Q[6];
wire W_8N_Q;
logic_74xx109 U_8N(
.CLK(W_5F2_Q[0]),
.RST(I_H_CNT[9]),
.I_J(~W_RAM_7M_DOBn[0]),
.I_K(1'b1),
.O_Q(W_8N_Q)
);
wire W_6F = ~(W_8H_Q[4]&W_8H_Q[5]&W_8H_Q[6]&W_8H_Q[7]);
wire W_5J = W_8N_Q|W_6F;
wire W_6L1 = ~(W_5J|W_5B);
//------ PARTS 6H ----------------------------------------------
wire W_6H_G = ~W_5F2_Q[1];
reg [7:0]W_6H_Q;
always@(W_6H_G or W_HD[7:0])
begin
if(W_6H_G) W_6H_Q <= W_HD[7:0];
//else
// W_6H_Q <= W_6H_Q;
end
//----------------------------------------------------------------
wire [3:0]W_8B_A,W_8B_B,W_8B_Y;
wire W_8C_Qa,W_8D_Qh;
wire W_8E_Qa,W_8F_Qh;
//------ PARTS 8CD ----------------------------------------------
wire [1:0]C_8CD = W_8B_Y[1:0];
wire [15:0]I_8CD = {W_OBJ_DO_7C,W_OBJ_DO_7D};
reg [15:0]reg_8CD;
assign W_8C_Qa = reg_8CD[15];
assign W_8D_Qh = reg_8CD[0];
always@(posedge CLK_12M)
begin
case(C_8CD)
2'b00: reg_8CD <= reg_8CD;
2'b10: reg_8CD <= {reg_8CD[14:0],1'b0};
2'b01: reg_8CD <= {1'b0,reg_8CD[15:1]};
2'b11: reg_8CD <= I_8CD;
endcase
end
//------ PARTS 8EF ----------------------------------------------
wire [1:0]C_8EF = W_8B_Y[1:0];
wire [15:0]I_8EF = {W_OBJ_DO_7E,W_OBJ_DO_7F};
reg [15:0]reg_8EF;
assign W_8E_Qa = reg_8EF[15];
assign W_8F_Qh = reg_8EF[0];
always@(posedge CLK_12M)
begin
case(C_8EF)
2'b00: reg_8EF <= reg_8EF;
2'b10: reg_8EF <= {reg_8EF[14:0],1'b0};
2'b01: reg_8EF <= {1'b0,reg_8EF[15:1]};
2'b11: reg_8EF <= I_8EF;
endcase
end
//------ PARTS 8B ----------------------------------------------
assign W_8B_A = {W_8C_Qa,W_8E_Qa,1'b1,W_6L1};
assign W_8B_B = {W_8D_Qh,W_8F_Qh,W_6L1,1'b1};
assign W_8B_Y = W_6K_Q[7] ? W_8B_B:W_8B_A;
//------ PRATS 3E & 4E -----------------------------------------
reg CLK_3E;
always@(negedge CLK_24M)
CLK_3E <= ~(~(I_H_CNT[0]&W_6K_Q[5])& CLK_12M);
wire [7:0]W_3E_LD_DI = W_78K_Q[7:0];
wire W_3E_RST = W_5F1_Q[3]|W_6K_Q[5];
wire W_3E_LD = W_5F1_Q[1];
reg [7:0]W_3E_Q;
always@(posedge CLK_3E)
begin
if(W_3E_LD == 1'b0)
W_3E_Q <= W_3E_LD_DI;
else begin
if(W_3E_RST == 1'b0)
W_3E_Q <= 0 ;
else
W_3E_Q <= W_3E_Q +1;
end
end
wire [5:0]W_RAM_2EH_DO;
wire [5:0]W_3J_B = {W_6K_Q[3:0],W_8B_Y[2],W_8B_Y[3]};
wire [5:0]W_RAM_2EH_DI = W_6K_Q[5] ? 8'h00 :(W_8B_Y[2]|W_8B_Y[3])? W_3J_B: W_RAM_2EH_DO;
wire [7:0]W_RAM_2EH_AB = W_3E_Q[7:0]^{8{W_6K_Q[4]}};
ram_2EH7M U_2EH_7M(
// 256_6
.I_CLKA(CLK_24M),
.I_ADDRA(W_RAM_2EH_AB),
.I_DA(W_RAM_2EH_DI),
.I_CEA(1'b1),
.I_WEA(~CLK_3E),
.O_DA(W_RAM_2EH_DO),
// 64_9
.I_CLKB(~CLK_24M),
.I_ADDRB(W_RAM_7M_AB),
.I_DB(W_RAM_7M_DIB),
.I_CEB(1'b1),
.I_WEB(~CLK_5L),
.O_DB(W_RAM_7M_DOB)
);
//------ PARTS 3K ----------------------------------------------
reg [5:0]O_OBJ_DO;
always@(posedge CLK_24M)
begin
if(~CLK_12M)
O_OBJ_DO <= W_RAM_2EH_DO;
else
O_OBJ_DO <= O_OBJ_DO ;
end
wire [10:0]W_ROM_OBJ_AB = {W_6H_Q[6:0],W_8H_Q[3:0]^{W_6H_Q[7],W_6H_Q[7],W_6H_Q[7],W_6H_Q[7]}};
wire [7:0]W_OBJ_DO_7C,W_OBJ_DO_7D,W_OBJ_DO_7E,W_OBJ_DO_7F;
obj1 obj1 (
.clk(CLK_12M),
.addr(W_ROM_OBJ_AB),
.data(W_OBJ_DO_7C)
);
obj2 obj2 (
.clk(CLK_12M),
.addr(W_ROM_OBJ_AB),
.data(W_OBJ_DO_7D)
);
obj3 obj3 (
.clk(CLK_12M),
.addr(W_ROM_OBJ_AB),
.data(W_OBJ_DO_7E)
);
obj4 obj4 (
.clk(CLK_12M),
.addr(W_ROM_OBJ_AB),
.data(W_OBJ_DO_7F)
);
endmodule

View File

@@ -1,123 +0,0 @@
//============================================================================
// ROMS + Sound samples for analogur sounds.
//
// Author: gaz68 (https://github.com/gaz68)
// October 2019
//
//============================================================================
//
// Contents of A.DKONGJR.ROM file:
//
// 0x00000 - 0x01FFF 5B PROGRAM ROM (8KB)
// 0x02000 - 0x03FFF 5C PROGRAM ROM (8KB)
// 0x04000 - 0x05FFF 5E PROGRAM ROM (8KB)
// 0x06000 - 0x06FFF 3P GFX ROM (4KB)
// 0x07000 - 0x07FFF 3N GFX ROM (4KB)
// 0x08000 - 0x09FFF 5B PROGRAM ROM REPEAT (8KB)
// 0x0A000 - 0x0A7FF 7C GFX ROM (2KB)
// 0x0A800 - 0x0AFFF 7C GFX ROM REPEAT (2KB)
// 0x0B000 - 0x0B7FF 7D GFX ROM (2KB)
// 0x0B800 - 0x0BFFF 7D GFX ROM REPEAT (2KB)
// 0x0C000 - 0x0C7FF 7E GFX ROM (2KB)
// 0x0C800 - 0x0CFFF 7E GFX ROM REPEAT (2KB)
// 0x0D000 - 0x0D7FF 7F GFX ROM (2KB)
// 0x0D800 - 0x0DFFF 7F GFX ROM REPEAT (2KB)
// 0x0E000 - 0x0EFFF 3H SOUND ROM (4KB)
// 0x0F000 - 0x0F0FF 2E PROM (256B)
// 0x0F100 - 0x0F1FF 2F PROM (256B)
// 0x0F200 - 0x0F2FF 2N PROM (256B)
// 0x0F300 - 0x0FFFF EMPTY
//--------------------------------------------
// 0x10000 - 0x10FFF WALK SOUND SAMPLE 0 (4KB)
// 0x11000 - 0x11FFF WALK SOUND SAMPLE 1 (4KB)
// 0x12000 - 0x12FFF WALK SOUND SAMPLE 2 (4KB)
// 0x13000 - 0x13FFF CLIMB SOUND SAMPLE 0 (4KB)
// 0x14000 - 0x14FFF CLIMB SOUND SAMPLE 1 (4KB)
// 0x15000 - 0x15FFF CLIMB SOUND SAMPLE 2 (4KB)
// 0x16000 - 0x19FFF JUMP SOUND SAMPLE (16KB)
// 0x1A000 - 0x1DFFF LAND SOUND SAMPLE (16KB)
// 0x1E000 - 0x27FFF FALL SOUND SAMPLE (40KB)
module dkongjr_rom
(
input I_CLKA,I_CLKB,
input [17:0]I_ADDRA,
input [16:0]I_ADDRB,
input [15:0]I_ADDRC,
input [7:0]I_DA,
input I_WEA,
output [7:0]O_DB,
output [15:0]O_DC
);
reg [16:0] W_ADDRB;
// Program ROM address translation (0x0000 - 0x5FFF).
// Program ROMs are addressed as follows:
// 0x0000 - 0x0FFF ROM 5B [0x0000 - 0x0FFF] (4KB)
// 0x1000 - 0x17FF ROM 5C [0x1000 - 0x17FF] (2KB)
// 0x1800 - 0x1FFF ROM 5E [0x1800 - 0x1FFF] (2KB)
// 0x2000 - 0x27FF ROM 5C [0x0000 - 0x07FF] (2KB)
// 0x2800 - 0x2FFF ROM 5E [0x0800 - 0x0FFF] (2KB)
// 0x3000 - 0x3FFF ROM 5B [0x1000 - 0x1FFF] (4KB)
// 0x4000 - 0x47FF ROM 5E [0x0000 - 0x07FF] (2KB)
// 0x4800 - 0x4FFF ROM 5C [0x0800 - 0x0FFF] (2KB)
// 0x5000 - 0x57FF ROM 5E [0x1000 - 0x17FF] (2KB)
// 0x5800 - 0x5FFF ROM 5C [0x1800 - 0x1FFF] (2KB)
always @(*) begin
case(I_ADDRB[16:11])
6'h02: W_ADDRB = {6'h06,I_ADDRB[10:0]}; // 0x1000-0x17FF -> 0x3000-0x37FF in ROM file
6'h03: W_ADDRB = {6'h0B,I_ADDRB[10:0]}; // 0x1800-0x1FFF -> 0x5800-0x5FFF in ROM file
6'h05: W_ADDRB = {6'h09,I_ADDRB[10:0]}; // 0x2800-0x2FFF -> 0x4800-0x4FFF in ROM file
6'h06: W_ADDRB = {6'h02,I_ADDRB[10:0]}; // 0x3000-0x37FF -> 0x1000-0x17FF in ROM file
6'h07: W_ADDRB = {6'h03,I_ADDRB[10:0]}; // 0x3800-0x3FFF -> 0x1800-0x1FFF in ROM file
6'h09: W_ADDRB = {6'h05,I_ADDRB[10:0]}; // 0x4800-0x4FFF -> 0x2800-0x2FFF in ROM file
6'h0B: W_ADDRB = {6'h07,I_ADDRB[10:0]}; // 0x5800-0x5FFF -> 0x3800-0x3FFF in ROM file
default: W_ADDRB = I_ADDRB;
endcase
end
dpram #(16) roms
(
.clock_a(I_CLKA),
.wren_a(I_WEA && (I_ADDRA[17:16] == 2'b0)),
.address_a(I_ADDRA[15:0]),
.data_a(I_DA),
.clock_b(I_CLKB),
.address_b(W_ADDRB),
.q_b(O_DB)
);
// Write 8-bit download stream to wave ROM as 16-bit words.
reg [15:0]WAV_ADDR = 0;
reg [7:0]DA_L = 0;
reg [15:0]DA16 = 0;
always @(posedge I_CLKA) begin
if (I_ADDRA[17:16] > 0) begin
if (I_ADDRA[0] == 1'b0) begin
DA_L <= I_DA;
end else begin
DA16 <= {I_DA, DA_L};
WAV_ADDR <= I_ADDRA[17:1] - 17'h08000;
end
end
end
// 16-bit sound samples for analogue sounds.
dpram #(16, 16) wav_rom
(
.clock_a(I_CLKA),
.wren_a(I_WEA),
.address_a(WAV_ADDR),
.data_a(DA16),
.clock_b(I_CLKB),
.address_b(I_ADDRC),
.q_b(O_DC)
);
endmodule

View File

@@ -1,115 +0,0 @@
//===============================================================================
//
// Modified for Donkey Kong Junior by gaz68.
//
// FPGA DONKEY KONG SOUND_I/F
//
// Version : 4.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2004- 9- 2 T48-IP(beta3) was include. K.Degawa
// 2004- 9-14 T48-IP was changed to beta4. K.Degawa
// 2005- 2- 9 The description of the ROM was changed.
// Data on the ROM are initialized at the time of the start.
//================================================================================
module dkongjr_sound(
I_CLK1,
I_CLK2,
I_RST,
I8035_DBI,
I8035_DBO,
I8035_PAI,
I8035_PBI,
I8035_PBO,
I8035_ALE,
I8035_RDn,
I8035_PSENn,
I8035_RSTn,
I8035_INTn,
I8035_T0,
I8035_T1,
I_SOUND_DAT,
I_SOUND_CNT,
O_SOUND_DAT
);
input I_CLK1,I_CLK2;
input I_RST;
input [7:0]I8035_DBI;
output [7:0]I8035_DBO;
input [7:0]I8035_PAI;
input [7:0]I8035_PBI;
output [7:0]I8035_PBO;
input I8035_ALE;
input I8035_RDn;
input I8035_PSENn;
input [4:0]I_SOUND_DAT;
input [5:0]I_SOUND_CNT;
output I8035_INTn;
output I8035_T0;
output I8035_T1;
output I8035_RSTn;
output [7:0]O_SOUND_DAT;
assign I8035_PBO[6] = ~I_SOUND_CNT[5];
assign I8035_PBO[4] = ~I_SOUND_CNT[4];
assign I8035_T0 = ~I_SOUND_CNT[3];
assign I8035_T1 = ~I_SOUND_CNT[2];
assign I8035_PBO[5] = ~I_SOUND_CNT[1];
assign I8035_INTn = ~I_SOUND_CNT[0];
assign I8035_RSTn = I_RST;
assign I8035_PBO[3:0] = 4'b0000;
assign I8035_PBO[7] = 1'b0;
//---- Parts 4FH -----------------------------
wire [11:0]S_ROM_A;
reg [7:0]L_ROM_A;
always@(negedge I8035_ALE) L_ROM_A <= I8035_DBI ;
assign S_ROM_A = {I8035_PBI[3:0],L_ROM_A[7:0]};
//---- Parts 4C ------------------------------
reg S_D1_CS;
always@(posedge I_CLK1) S_D1_CS <= ~I8035_RDn;
wire [7:0]S_D1 = S_D1_CS ? {3'h0,I_SOUND_DAT[4:0]}: 8'h00 ;
//---- PROG ROM 3H ---------------------------
wire [7:0]S_PROG_DB;
wire [7:0]S_PROG_D = I8035_PSENn ? 8'h00 : S_PROG_DB ;
snd1 snd1 (
.clk(I_CLK2),
.addr(S_ROM_A),
.data(S_PROG_DB)
);
//---- I8035_DB IO I/F -----------------------
wire [7:0]I8035_DO = S_PROG_D | S_D1;
reg [7:0]DO;
always@(posedge I_CLK1) DO <= I8035_DO;
assign I8035_DBO = DO;
//---- DAC I/F ------------------------
assign O_SOUND_DAT = I8035_PAI;
endmodule

View File

@@ -1,509 +0,0 @@
//===============================================================================
// Arcade: Donkey Kong Junior by gaz68 (Oct 2019)
// https://github.com/gaz68
//
// Original Donkey Kong core by Katsumi Degawa.
//===============================================================================
//===============================================================================
// FPGA DONKEY KONG TOP
//
// Version : 4.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2004- 3- 3 first release.
// 2004- 6- 8 Quartus2 v4.0sp1 used (bug fix) K.Degawa
// 2004- 8-24 T80-IP was include. K.Degawa
// 2004- 9- 2 T48-IP(beta3) was include. K.Degawa
// 2004- 9-14 T48-IP was changed to beta4. K.Degawa
// 2005- 2- 9 Data on the ROM are initialized at the time of the start.
// added device.
// changed module I/O.
//================================================================================
//--------------------------------------------------------------------------------
module dkongjr_top
(
// FPGA_USE
input I_CLK_24576M,
input I_RESETn,
output O_PIX,
// INPORT SW IF
input I_U1,I_D1,I_L1,I_R1,I_J1,
input I_U2,I_D2,I_L2,I_R2,I_J2,
input I_S1,I_S2,I_C1,I_SF,
//input I_DEBUG,
input [7:0]I_DIP_SW,
// VGA (VIDEO) IF
output [2:0]O_VGA_R,
output [2:0]O_VGA_G,
output [1:0]O_VGA_B,
output O_H_BLANK,
output O_V_BLANK,
output O_VGA_H_SYNCn,
output O_VGA_V_SYNCn,
// SOUND IF
output signed [15:0] O_SOUND_DAT
);
assign O_H_BLANK = ~W_H_BLANKn;
assign O_V_BLANK = ~W_V_BLANKn;
wire W_CLK_24576M = I_CLK_24576M;
wire W_CLK_12288M,WB_CLK_12288M;
wire WB_CLK_06144M;
wire W_RESETn = I_RESETn;
//============ CPU MODULE ( Donkey Kong ) ====================================
//======== Assign Wire =========================================================
// INPUT DATA BUS
wire [7:0]ZDO,ZDI;
wire [7:0]WI_D = ZDI;
// INPORT DATA OUT
wire [7:0]W_SW_DO;
// ADDRESS DECODER
wire W_ROM_CSn;
wire W_RAM1_CSn;
wire W_RAM2_CSn;
wire W_RAM3_CSn;
wire W_RAM_CSn = W_RAM1_CSn & W_RAM2_CSn & W_RAM3_CSn;
//wire W_6A_Gn;
wire W_OBJ_RQn;
wire W_OBJ_RDn;
wire W_OBJ_WRn;
wire W_VRAM_RDn;
wire W_VRAM_WRn;
wire W_SW1_OEn ;
wire W_SW2_OEn ;
wire W_SW3_OEn ;
wire W_DIP_OEn ;
wire W_SW_OEn = W_SW1_OEn & W_SW2_OEn & W_SW3_OEn & W_DIP_OEn;
wire [1:0]W_4H_Q;
wire [7:0]W_5H_Q;
wire [7:0]W_6H_Q;
wire [4:0]W_3D_Q;
// INT RAM DATA
wire [7:0]W_RAM1_DO;
wire [7:0]W_RAM2_DO;
wire [7:0]W_RAM3_DO;
// EXT ROM DATA
wire [7:0]W_ROM_DO;
// H&V COUNTER
wire [9:0]W_H_CNT;
//wire [7:0]W_V_CNT;
wire W_H_BLANKn;
wire W_V_BLANKn;
wire W_C_BLANKn;
wire W_H_SYNCn;
wire W_V_SYNCn;
wire [7:0]W_OBJ_DB;
wire [7:0]W_VRAM_DB;
wire [7:0]W_OBJ_DI;
wire W_CPU_CLK;
wire W_CPU_RESETn = W_RESETn;
wire W_CPU_WAITn;
wire W_CPU_RFSHn;
wire W_CPU_M1n;
wire W_CPU_NMIn;
wire W_CPU_MREQn;
wire W_CPU_RDn;
wire W_CPU_WRn;
wire [15:0]W_CPU_A;
assign WB_CLK_06144M = W_H_CNT[0]; // 6.144MHz
assign WB_CLK_12288M = W_CLK_12288M; // 12.288MHz
assign W_CPU_CLK = W_H_CNT[1]; // 3.072MHz
T80as z80core(
.RESET_n(W_RESETn),
.CLK_n(W_CPU_CLK),
.WAIT_n(W_CPU_WAITn),
.INT_n(1'b1),
.NMI_n(W_CPU_NMIn),
.BUSRQ_n(1'b1),
.M1_n(W_CPU_M1n),
.MREQ_n(W_CPU_MREQn),
.RD_n(W_CPU_RDn),
.WR_n(W_CPU_WRn),
.RFSH_n(W_CPU_RFSHn),
.A(W_CPU_A),
.DI(ZDO),
.DO(ZDI)
);
//========= CPU DATA BUS[7:0] ==============================================
wire [7:0]WO_D = W_SW_DO | W_RAM1_DO |W_RAM2_DO |W_RAM3_DO | W_ROM_DO | W_VRAM_DB ;
assign ZDO = WO_D;
wire [11:0]OBJ_ROM_A;
reg [7:0]OBJ_ROM1_DO,OBJ_ROM2_DO,OBJ_ROM3_DO,OBJ_ROM4_DO;
reg [7:0]WB_ROM_DO;
assign W_ROM_DO = (~W_ROM_CSn & ~W_CPU_RDn)? WB_ROM_DO :8'h00;
//---------------------------------------------------------
prog ROM(
.clk(W_CLK_12288M),
.addr(W_CPU_A[14:0]),
.data(WB_ROM_DO)
);
//======== INT RAM Interface ==================================================
ram_1024_8 U_3C4C
(
.I_CLK(~W_CLK_12288M),
.I_ADDR(W_CPU_A[9:0]),
.I_D(WI_D),
.I_CE(~W_RAM1_CSn),
.I_WE(~W_CPU_WRn),
.O_D(W_RAM1_DO)
);
ram_1024_8 U_3B4B
(
.I_CLK(~W_CLK_12288M),
.I_ADDR(W_CPU_A[9:0]),
.I_D(WI_D),
.I_CE(~W_RAM2_CSn),
.I_WE(~W_CPU_WRn),
.O_D(W_RAM2_DO)
);
//---- Sprite DMA ------------------------------------------
wire [9:0]W_OBJ_AB = {W_2PSL, W_H_CNT[8:0]};
wire [9:0]W_DMA_A;
wire [7:0]W_DMA_D;
wire W_DMA_CE;
wire [9:0]W_DMA_AB;
wire [7:0]W_DMA_DB;
wire W_DMA_CEB;
ram_1024_8_8 U_3A4A
(
// A Port
.I_CLKA(~W_CLK_12288M),
.I_ADDRA(W_CPU_A[9:0]),
.I_DA(WI_D),
.I_CEA(~W_RAM3_CSn),
.I_WEA(~W_CPU_WRn),
.O_DA(W_RAM3_DO),
// B Port
.I_CLKB(W_CLK_12288M),
.I_ADDRB(W_DMA_A),
.I_DB(8'h00),
.I_CEB(W_DMA_CE),
.I_WEB(1'b0),
.O_DB(W_DMA_D)
);
dkongjr_dma sprite_dma
(
.I_CLK(W_H_CNT[0]), // 3.072 Mhz
.I_DMA_TRIG(W_DREQ),
.I_DMA_DS(W_DMA_D),
.O_DMA_AS(W_DMA_A),
.O_DMA_AD(W_DMA_AB),
.O_DMA_DD(W_DMA_DB),
.O_DMA_CES(W_DMA_CE),
.O_DMA_CED(W_DMA_CEB)
);
ram_1024_8_8 U_6PR
(
// A Port
.I_CLKA(~W_CLK_12288M),
.I_ADDRA(W_DMA_AB),
.I_DA(W_DMA_DB),
.I_CEA(W_DMA_CEB),
.I_WEA(1'b1),
.O_DA(),
// B Port
.I_CLKB(W_CLK_12288M),
.I_ADDRB(W_OBJ_AB[9:0]),
.I_DB(8'h00),
.I_CEB(1'b1),
.I_WEB(1'b0),
.O_DB(W_OBJ_DI)
);
//---- SW Interface ---------------------------------
wire [7:0]W_SW1={1'b1,1'b1,1'b1,I_J1,I_D1,I_U1,I_L1,I_R1};
wire [7:0]W_SW2={1'b1,1'b1,1'b1,I_J2,I_D2,I_U2,I_L2,I_R2};
wire [7:0]W_SW3={I_C1,1'b1,1'b1,1'b1,I_S2,I_S1,1'b1,1'b1};
dkongjr_inport inport
(
// input
.I_SW1(W_SW1),
.I_SW2(W_SW2),
.I_SW3(W_SW3),
.I_DIP(I_DIP_SW),
// enable
.I_SW1_OE_n(W_SW1_OEn),
.I_SW2_OE_n(W_SW2_OEn),
.I_SW3_OE_n(W_SW3_OEn),
.I_DIP_OE_n(W_DIP_OEn),
// output
.O_D(W_SW_DO)
);
//======== Address Decoder =====================================================
wire W_VRAMBUSYn;
dkongjr_adec adec
(
.I_CLK12M(W_CLK_12288M),
.I_CLK(W_CPU_CLK),
.I_RESET_n(W_RESETn),
.I_AB(W_CPU_A),
.I_DB(WI_D),
.I_MREQ_n(W_CPU_MREQn),
.I_RFSH_n(W_CPU_RFSHn),
.I_RD_n(W_CPU_RDn),
.I_WR_n(W_CPU_WRn),
.I_VRAMBUSY_n(W_VRAMBUSYn),
.I_VBLK_n(W_V_BLANKn),
.O_WAIT_n(W_CPU_WAITn),
.O_NMI_n(W_CPU_NMIn),
.O_ROM_CS_n(W_ROM_CSn),
.O_RAM1_CS_n(W_RAM1_CSn),
.O_RAM2_CS_n(W_RAM2_CSn),
.O_RAM3_CS_n(W_RAM3_CSn),
.O_DMA_CS_n(/*O_DMA_CSn*/),
.O_6A_G_n(/*W_6A_Gn*/),
.O_OBJ_RQ_n(W_OBJ_RQn),
.O_OBJ_RD_n(W_OBJ_RDn),
.O_OBJ_WR_n(W_OBJ_WRn),
.O_VRAM_RD_n(W_VRAM_RDn),
.O_VRAM_WR_n(W_VRAM_WRn),
.O_SW1_OE_n(W_SW1_OEn),
.O_SW2_OE_n(W_SW2_OEn),
.O_SW3_OE_n(W_SW3_OEn),
.O_DIP_OE_n(W_DIP_OEn),
.O_4H_Q(W_4H_Q),
.O_5H_Q(W_5H_Q),
.O_6H_Q(W_6H_Q),
.O_3D_Q(W_3D_Q)
);
wire W_FLIPn = W_5H_Q[2];
wire W_2PSL = W_5H_Q[3];
wire W_DREQ = W_5H_Q[5]; // DMA Trigger
//=========== VIDEO MODULE ===================================
//======== Assign Wire =======================================
wire [7:0]W_VF_CNT;
wire [5:0]W_OBJ_DAT;
wire W_FLIP_VRAM;
wire W_FLIP_HV;
wire W_L_CMPBLKn;
wire [3:0]W_VRAM_COL;
wire [1:0]W_VRAM_VID;
wire [5:0]W_VRAM_DAT = {W_VRAM_COL[3:0],W_VRAM_VID[1:0]};
//======== H & V Counter =====================================================
dkongjr_hv_count hv
(
// input
.I_CLK(W_CLK_24576M),
.RST_n(W_RESETn),
.V_FLIP(W_FLIP_HV),
// output
.O_CLK(W_CLK_12288M),
.H_CNT(W_H_CNT),
.V_CNT(/*W_V_CNT*/),
.VF_CNT(W_VF_CNT),
.H_BLANKn(W_H_BLANKn),
.V_BLANKn(W_V_BLANKn),
.C_BLANKn(W_C_BLANKn),
.H_SYNCn(W_H_SYNCn),
.V_SYNCn(W_V_SYNCn)
);
//======== OBJ (VIDEO) =====================================================
dkongjr_obj obj
(
// input
.CLK_24M(W_CLK_24576M),
.CLK_12M(WB_CLK_12288M),
.I_AB(),
.I_DB(/*W_2N_DO*/),
.I_OBJ_D(W_OBJ_DI),
.I_OBJ_WRn(1'b1),
.I_OBJ_RDn(1'b1),
.I_OBJ_RQn(1'b1),
.I_2PSL(W_2PSL),
.I_FLIPn(W_FLIPn),
.I_H_CNT(W_H_CNT),
.I_VF_CNT(W_VF_CNT),
.I_CMPBLKn(W_C_BLANKn),
// Debug
// output
.O_DB(W_OBJ_DB),
.O_OBJ_DO(W_OBJ_DAT),
.O_FLIP_VRAM(W_FLIP_VRAM),
.O_FLIP_HV(W_FLIP_HV),
.O_L_CMPBLKn(W_L_CMPBLKn)
);
//======== V-RAM (VIDEO) =====================================================
dkongjr_vram vram
(
// input
.CLK_12M(~W_CLK_12288M),
.I_AB(W_CPU_A[9:0]),
.I_DB(WI_D),
.I_VRAM_WRn(W_VRAM_WRn),
.I_VRAM_RDn(W_VRAM_RDn),
.I_FLIP(W_FLIP_VRAM),
.I_H_CNT(W_H_CNT),
.I_VF_CNT(W_VF_CNT),
.I_CMPBLK(W_C_BLANKn),
.I_4H_Q0(W_4H_Q[0]),
// Debug
// output
.O_DB(W_VRAM_DB),
.O_COL(W_VRAM_COL),
.O_VID(W_VRAM_VID),
.O_VRAMBUSYn(W_VRAMBUSYn),
.O_ESBLKn()
);
//======== COLOR PALETE =====================================================
wire [2:0]W_R;
wire [2:0]W_G;
wire [1:0]W_B;
assign O_PIX = W_H_CNT[0];
dkongjr_col_pal cpal
(
// input
.CLK_6M(W_H_CNT[0]),
.CLK_12M(W_CLK_12288M),
.I_VRAM_D(W_VRAM_DAT),
.I_OBJ_D(W_OBJ_DAT),
.I_CMPBLKn(W_L_CMPBLKn),
.I_5H_Q6(W_5H_Q[6]),
.I_5H_Q7(W_5H_Q[7]),
// output
.O_R(W_R),
.O_G(W_G),
.O_B(W_B)
);
//======== VIDEO Interface =====================================================
assign O_VGA_R = W_R;
assign O_VGA_G = W_G;
assign O_VGA_B = W_B;
assign O_VGA_H_SYNCn = W_H_SYNCn;
assign O_VGA_V_SYNCn = W_V_SYNCn;
//======== DIGTAL SOUND =====================================================
// Background music and some of the sound effects
wire [7:0]W_D_S_DAT;
wire [15:0]W_D_S_DATB;
wire [15:0]W_D_S_DATC;
wire [7:0]I8035_DBI;
wire [7:0]I8035_DBO;
wire [7:0]I8035_PAI;
wire [7:0]I8035_PBI;
wire [7:0]I8035_PBO;
wire I8035_ALE;
wire I8035_RDn;
wire I8035_PSENn;
wire I8035_CLK = WB_CLK_06144M;
wire I8035_INTn;
wire I8035_T0;
wire I8035_T1;
wire I8035_RSTn;
I8035IP SOUND_CPU
(
.I_CLK(I8035_CLK),
.I_RSTn(I8035_RSTn),
.I_INTn(I8035_INTn),
.I_EA(1'b1),
.O_PSENn(I8035_PSENn),
.O_RDn(I8035_RDn),
.O_WRn(),
.O_ALE(I8035_ALE),
.O_PROGn(),
.I_T0(I8035_T0),
.O_T0(),
.I_T1(I8035_T1),
.I_DB(I8035_DBO),
.O_DB(I8035_DBI),
.I_P1(8'h00),
.O_P1(I8035_PAI),
.I_P2(I8035_PBO),
.O_P2(I8035_PBI)
);
dkongjr_sound Digtal_sound
(
.I_CLK1(W_CLK_12288M),
.I_CLK2(W_CLK_24576M),
.I_RST(W_RESETn),
.I8035_DBI(I8035_DBI),
.I8035_DBO(I8035_DBO),
.I8035_PAI(I8035_PAI),
.I8035_PBI(I8035_PBI),
.I8035_PBO(I8035_PBO),
.I8035_ALE(I8035_ALE),
.I8035_RDn(I8035_RDn),
.I8035_PSENn(I8035_PSENn),
.I8035_RSTn(I8035_RSTn),
.I8035_INTn(I8035_INTn),
.I8035_T0(I8035_T0),
.I8035_T1(I8035_T1),
.I_SOUND_DAT(W_3D_Q),
.I_SOUND_CNT({W_4H_Q[1],W_6H_Q[6:3],W_5H_Q[0]}),
.O_SOUND_DAT(W_D_S_DAT)
);
assign O_SOUND_DAT = W_D_S_DAT;
endmodule

View File

@@ -1,196 +0,0 @@
//===============================================================================
//
// Modified for Donkey Kong Junior by gaz68.
//
// FPGA DONKEY KONG V RAM
//
// Version : 4.00
//
// Copyright(c) 2003 - 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2004- 8-24 V-RAM module changed . K.Degawa
// 2005- 2- 9 The description of the ROM was changed.
// Data on the ROM are initialized at the time of the start.
//================================================================================
//-----------------------------------------------------------------------------------------
// H_CNT[0],H_CNT[1],H_CNT[2],H_CNT[3],H_CNT[4],H_CNT[5],H_CNT[6],H_CNT[7],H_CNT[8],H_CNT[9]
// 1/2 H 1 H 2 H 4H 8H 16 H 32H 64 H 128 H 256 H
//-----------------------------------------------------------------------------------------
// V_CNT[0], V_CNT[1], V_CNT[2], V_CNT[3], V_CNT[4], V_CNT[5], V_CNT[6], V_CNT[7]
// 1 V 2 V 4 V 8 V 16 V 32 V 64 V 128 V
//-----------------------------------------------------------------------------------------
// VF_CNT[0],VF_CNT[1],VF_CNT[2],VF_CNT[3],VF_CNT[4],VF_CNT[5],VF_CNT[6],VF_CNT[7]
// 1 VF 2 VF 4 VF 8 VF 16 VF 32 VF 64 VF 128 VF
//-----------------------------------------------------------------------------------------
module dkongjr_vram(
CLK_12M,
I_AB,
I_DB,
I_VRAM_WRn,
I_VRAM_RDn,
I_FLIP,
I_H_CNT,
I_VF_CNT,
I_CMPBLK,
I_4H_Q0,
//---- Debug ----
//---------------
O_DB,
O_COL,
O_VID,
O_VRAMBUSYn,
O_ESBLKn
);
input CLK_12M;
input [9:0]I_AB;
input [7:0]I_DB;
input I_VRAM_WRn;
input I_VRAM_RDn;
input I_FLIP;
input [9:0]I_H_CNT;
input [7:0]I_VF_CNT;
input I_CMPBLK;
input I_4H_Q0;
output [7:0]O_DB;
output [3:0]O_COL;
output [1:0]O_VID;
output O_VRAMBUSYn;
output O_ESBLKn;
//---- Debug ----
//---------------
wire [7:0]WI_DB = I_VRAM_WRn ? 8'h00: I_DB;
wire [7:0]WO_DB;
assign O_DB = I_VRAM_RDn ? 8'h00: WO_DB;
wire [4:0]W_HF_CNT = I_H_CNT[8:4]^{I_FLIP,I_FLIP,I_FLIP,I_FLIP,I_FLIP};
wire [9:0]W_cnt_AB = {I_VF_CNT[7:3],W_HF_CNT[4:0]};
wire [9:0]W_vram_AB = I_CMPBLK ? W_cnt_AB : I_AB ;
wire W_vram_CS = I_CMPBLK ? 1'b0 : I_VRAM_WRn & I_VRAM_RDn;
wire W_2S4 = I_CMPBLK ? 1'b0 : 1'b1 ;
reg CLK_2M;
always@(negedge CLK_12M) CLK_2M <= ~(I_H_CNT[1]&I_H_CNT[2]&I_H_CNT[3]);
ram_1024_8 U_2PR(
.I_CLK(~CLK_12M),
.I_ADDR(W_vram_AB),
.I_D(WI_DB),
.I_CE(~W_vram_CS),
.I_WE(~I_VRAM_WRn),
.O_D(WO_DB)
);
wire [3:0]W_2N_DO;
col3 col3 (
.clk(CLK_12M),
.addr({W_vram_AB[9:7],W_vram_AB[4:0]}),
.data(W_2N_DO)
);
// Parts 2M
reg [3:0]O_COL;
always@(negedge CLK_2M) O_COL[3:0] <= W_2N_DO[3:0];
wire ROM_3PN_CE = ~I_H_CNT[9];
wire [3:0]W_4M_a,W_4M_b;
wire [3:0]W_4M_Y;
wire W_4P_Qa,W_4P_Qh,W_4N_Qa,W_4N_Qh;
wire CLK_4PN = I_H_CNT[0];
//------ PARTS 4P ----------------------------------------------
wire [1:0]C_4P = W_4M_Y[1:0];
wire [7:0]I_4P = W_3P_DO;
reg [7:0]reg_4P;
assign W_4P_Qa = reg_4P[7];
assign W_4P_Qh = reg_4P[0];
always@(posedge CLK_4PN)
begin
case(C_4P)
2'b00: reg_4P <= reg_4P;
2'b10: reg_4P <= {reg_4P[6:0],1'b0};
2'b01: reg_4P <= {1'b0,reg_4P[7:1]};
2'b11: reg_4P <= I_4P;
endcase
end
//------ PARTS 4N ----------------------------------------------
wire [1:0]C_4N = W_4M_Y[1:0];
wire [7:0]I_4N = W_3N_DO;
reg [7:0]reg_4N;
assign W_4N_Qa = reg_4N[7];
assign W_4N_Qh = reg_4N[0];
always@(posedge CLK_4PN)
begin
case(C_4N)
2'b00: reg_4N <= reg_4N;
2'b10: reg_4N <= {reg_4N[6:0],1'b0};
2'b01: reg_4N <= {1'b0,reg_4N[7:1]};
2'b11: reg_4N <= I_4N;
endcase
end
assign W_4M_a = {W_4P_Qa,W_4N_Qa,1'b1,~(CLK_2M|W_2S4)};
assign W_4M_b = {W_4P_Qh,W_4N_Qh,~(CLK_2M|W_2S4),1'b1};
assign W_4M_Y = I_FLIP ? W_4M_b:W_4M_a;
assign O_VID[0] = W_4M_Y[2];
assign O_VID[1] = W_4M_Y[3];
//------ PARTS 2K1 ----------------------------------------------
reg W_VRAMBUSY;
assign O_VRAMBUSYn = ~W_VRAMBUSY;
always@(posedge I_H_CNT[2] or negedge I_H_CNT[9])
begin
if(I_H_CNT[9] == 1'b0)
W_VRAMBUSY <= 1'b1;
else
W_VRAMBUSY <= I_H_CNT[4]&I_H_CNT[5]&I_H_CNT[6]&I_H_CNT[7];
end
//------ PARTS 2K2 ----------------------------------------------
reg W_ESBLK;
assign O_ESBLKn = ~W_ESBLK;
always@(posedge I_H_CNT[6] or negedge I_H_CNT[9])
begin
if(I_H_CNT[9] == 1'b0)
W_ESBLK <= 1'b0;
else
W_ESBLK <= ~I_H_CNT[7];
end
wire [7:0] W_3P_DO, W_3N_DO;
vid1 vid1 (
.clk(CLK_12M & ROM_3PN_CE),
.addr({I_4H_Q0,WO_DB[7:0],I_VF_CNT[2:0]}),
.data(W_3P_DO)
);
vid2 vid2 (
.clk(CLK_12M & ROM_3PN_CE),
.addr({I_4H_Q0,WO_DB[7:0],I_VF_CNT[2:0]}),
.data(W_3N_DO)
);
endmodule

View File

@@ -1,110 +0,0 @@
//============================================================================
// Sound sample player.
//
// Author: gaz68 (https://github.com/gaz68)
// October 2019
//
// Up to 8 channels. 16-bit signed samples.
// For DKJ analogue sounds.
//============================================================================
module dkongjr_wav_sound
(
input I_CLK,
input I_RSTn,
input [3:0]I_H_CNT,
input [11:0]I_DIV,
input [3:0]I_VOL,
input I_DMA_TRIG,
input I_DMA_STOP,
input [2:0]I_DMA_CHAN, // 8 channels
input [15:0]I_DMA_ADDR,
input [15:0]I_DMA_LEN,
input signed [15:0]I_DMA_DATA, // Data coming back from wave ROM
output [15:0]O_DMA_ADDR, // output address to wave ROM
output signed [15:0]O_SND
);
reg [15:0]W_DMA_ADDR;
reg signed [23:0]W_DMA_DATA;
reg [15:0]W_DMA_CNT;
reg W_DMA_EN = 1'b0;
reg [11:0]sample;
reg W_DMA_TRIG;
reg signed [15:0]W_SAMPL;
reg signed[8:0]W_VOL;
always@(posedge I_CLK or negedge I_RSTn)
begin
if(! I_RSTn)begin
W_DMA_EN <= 1'b0;
W_DMA_CNT <= 0;
W_DMA_DATA <= 0;
W_DMA_ADDR <= 0;
W_DMA_TRIG <= 0;
W_VOL <= 0;
sample <= 0;
end else begin
// Check for DMA trigger and enable DMA.
W_DMA_TRIG <= I_DMA_TRIG;
if(~W_DMA_TRIG & I_DMA_TRIG) begin
W_DMA_ADDR <= I_DMA_ADDR;
W_DMA_CNT <= 0;
W_DMA_EN <= 1'b1;
W_DMA_DATA <= 0;
sample <= 0;
end else if (W_DMA_EN == 1'b1) begin
case(I_VOL)
4: W_VOL <= 9'sd0; // OFF
5: W_VOL <= 9'sd26; // 10%
6: W_VOL <= 9'sd52; // 20%
7: W_VOL <= 9'sd79; // 30%
8: W_VOL <= 9'sd104; // 40%
9: W_VOL <= 9'sd130; // 50%
10: W_VOL <= 9'sd156; // 60%
0: W_VOL <= 9'sd182; // 70%
1: W_VOL <= 9'sd208; // 80%
2: W_VOL <= 9'sd234; // 90%
3: W_VOL <= 9'sd255; // 100%
default: W_VOL <= 9'sd255;
endcase
// Prefetch sample.
if (I_H_CNT == {I_DMA_CHAN,1'b1}) begin
W_DMA_DATA <= I_DMA_DATA * W_VOL;
end
sample <= (sample == I_DIV-1) ? 1'b0 : sample + 1'b1;
if (sample == I_DIV-1) begin
W_SAMPL <= W_DMA_DATA[23:8];
W_DMA_ADDR <= W_DMA_ADDR + 1'd1;
W_DMA_CNT <= W_DMA_CNT + 1'd1;
W_DMA_EN <= (W_DMA_CNT==I_DMA_LEN) || I_DMA_STOP ? 1'b0 : 1'b1;
end
end else begin
W_DMA_ADDR <= 0;
W_SAMPL <= 0;
end
end
end
assign O_DMA_ADDR = W_DMA_ADDR;
assign O_SND = W_SAMPL;
endmodule

View File

@@ -1,75 +0,0 @@
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY altera_mf;
USE altera_mf.altera_mf_components.all;
entity dpram is
generic (
addr_width_g : integer := 8;
data_width_g : integer := 8
);
PORT
(
address_a : IN STD_LOGIC_VECTOR (addr_width_g-1 DOWNTO 0);
address_b : IN STD_LOGIC_VECTOR (addr_width_g-1 DOWNTO 0);
clock_a : IN STD_LOGIC := '1';
clock_b : IN STD_LOGIC ;
data_a : IN STD_LOGIC_VECTOR (data_width_g-1 DOWNTO 0);
data_b : IN STD_LOGIC_VECTOR (data_width_g-1 DOWNTO 0) := (others => '0');
enable_a : IN STD_LOGIC := '1';
enable_b : IN STD_LOGIC := '1';
wren_a : IN STD_LOGIC := '0';
wren_b : IN STD_LOGIC := '0';
q_a : OUT STD_LOGIC_VECTOR (data_width_g-1 DOWNTO 0);
q_b : OUT STD_LOGIC_VECTOR (data_width_g-1 DOWNTO 0)
);
END dpram;
ARCHITECTURE SYN OF dpram IS
BEGIN
altsyncram_component : altsyncram
GENERIC MAP (
address_reg_b => "CLOCK1",
clock_enable_input_a => "NORMAL",
clock_enable_input_b => "NORMAL",
clock_enable_output_a => "BYPASS",
clock_enable_output_b => "BYPASS",
indata_reg_b => "CLOCK1",
intended_device_family => "Cyclone V",
lpm_type => "altsyncram",
numwords_a => 2**addr_width_g,
numwords_b => 2**addr_width_g,
operation_mode => "BIDIR_DUAL_PORT",
outdata_aclr_a => "NONE",
outdata_aclr_b => "NONE",
outdata_reg_a => "UNREGISTERED",
outdata_reg_b => "UNREGISTERED",
power_up_uninitialized => "FALSE",
read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ",
read_during_write_mode_port_b => "NEW_DATA_NO_NBE_READ",
widthad_a => addr_width_g,
widthad_b => addr_width_g,
width_a => data_width_g,
width_b => data_width_g,
width_byteena_a => 1,
width_byteena_b => 1,
wrcontrol_wraddress_reg_b => "CLOCK1"
)
PORT MAP (
address_a => address_a,
address_b => address_b,
clock0 => clock_a,
clock1 => clock_b,
clocken0 => enable_a,
clocken1 => enable_b,
data_a => data_a,
data_b => data_b,
wren_a => wren_a,
wren_b => wren_b,
q_a => q_a,
q_b => q_b
);
END SYN;

View File

@@ -1,132 +0,0 @@
//===============================================================================
// FPGA DONKEY KONG T8035 I/F
//
// Version : 1.01
//
// Copyright(c) 2004 Katsumi Degawa , All rights reserved
//
// Important !
//
// This program is freeware for non-commercial use.
// An author does no guarantee about this program.
// You can use this under your own risk.
//
// 2004- 9- 2 T48-IP(beta3) was include. K.Degawa
// 2004- 9- 2 T48 Bug Fix K.Degawa
// 2004- 9-14 T48-IP was changed to beta4. K.Degawa
// 2005- 2- 9 It cleaned.
//================================================================================
module I8035IP(
I_CLK,
I_RSTn,
I_INTn,
I_EA,
O_PSENn,
O_RDn,
O_WRn,
O_ALE,
O_PROGn,
I_T0,
O_T0,
I_T1,
I_DB,
O_DB,
I_P1,
O_P1,
I_P2,
O_P2
);
input I_CLK;
input I_RSTn;
input I_INTn;
input I_EA;
output O_PSENn;
output O_RDn;
output O_WRn;
output O_ALE;
output O_PROGn;
input I_T0;
output O_T0;
input I_T1;
input [7:0]I_DB;
output [7:0]O_DB;
input [7:0]I_P1;
output [7:0]O_P1;
input [7:0]I_P2;
output [7:0]O_P2;
wire W_PSENn;
assign O_PSENn = W_PSENn ;
// 64 Byte RAM ------------------------------------------
wire [7:0]t48_ram_a;
wire t48_ram_we;
wire [7:0]t48_ram_do;
wire [7:0]t48_ram_di;
ram_64_8 t48_ram(
.I_CLK(I_CLK),
.I_ADDR(t48_ram_a[5:0]),
.I_D(t48_ram_di),
.I_CE(1'b1),
.I_WE(t48_ram_we),
.O_D(t48_ram_do)
);
//----------------------------------------------------------
wire xtal3_s;
t48_core t48_core(
.xtal_i(I_CLK),
.reset_i(I_RSTn),
.t0_i(I_T0),
.t0_o(O_T0),
.t0_dir_o(),
.int_n_i(I_INTn),
.ea_i(I_EA),
.rd_n_o(O_RDn),
.psen_n_o(W_PSENn),
.wr_n_o(O_WRn),
.ale_o(O_ALE),
.db_i(I_DB),
.db_o(O_DB),
.db_dir_o(),
.t1_i(I_T1),
.p2_i(I_P2),
.p2_o(O_P2),
.p2_low_imp_o(),
.p1_i(I_P1),
.p1_o(O_P1),
.p1_low_imp_o(),
.prog_n_o(O_PROGn),
.clk_i(I_CLK),
.en_clk_i(xtal3_s),
.xtal3_o(xtal3_s),
.dmem_addr_o(t48_ram_a),
.dmem_we_o(t48_ram_we),
.dmem_data_i(t48_ram_do),
.dmem_data_o(t48_ram_di),
.pmem_addr_o(),
.pmem_data_i(8'h00)
);
endmodule

View File

@@ -1,309 +0,0 @@
// megafunction wizard: %ALTPLL%
// GENERATION: STANDARD
// VERSION: WM1.0
// MODULE: altpll
// ============================================================
// File Name: pll.v
// Megafunction Name(s):
// altpll
//
// Simulation Library Files(s):
// altera_mf
// ============================================================
// ************************************************************
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
//
// 13.1.4 Build 182 03/12/2014 Patches 4.26 SJ Web Edition
// ************************************************************
//Copyright (C) 1991-2014 Altera Corporation
//Your use of Altera Corporation's design tools, logic functions
//and other software and tools, and its AMPP partner logic
//functions, and any output files from any of the foregoing
//(including device programming or simulation files), and any
//associated documentation or information are expressly subject
//to the terms and conditions of the Altera Program License
//Subscription Agreement, Altera MegaCore Function License
//Agreement, or other applicable license agreement, including,
//without limitation, that your use is for the sole purpose of
//programming logic devices manufactured by Altera and sold by
//Altera or its authorized distributors. Please refer to the
//applicable agreement for further details.
// synopsys translate_off
`timescale 1 ps / 1 ps
// synopsys translate_on
module pll (
inclk0,
c0,
locked);
input inclk0;
output c0;
output locked;
wire [4:0] sub_wire0;
wire sub_wire2;
wire [0:0] sub_wire5 = 1'h0;
wire [0:0] sub_wire1 = sub_wire0[0:0];
wire c0 = sub_wire1;
wire locked = sub_wire2;
wire sub_wire3 = inclk0;
wire [1:0] sub_wire4 = {sub_wire5, sub_wire3};
altpll altpll_component (
.inclk (sub_wire4),
.clk (sub_wire0),
.locked (sub_wire2),
.activeclock (),
.areset (1'b0),
.clkbad (),
.clkena ({6{1'b1}}),
.clkloss (),
.clkswitch (1'b0),
.configupdate (1'b0),
.enable0 (),
.enable1 (),
.extclk (),
.extclkena ({4{1'b1}}),
.fbin (1'b1),
.fbmimicbidir (),
.fbout (),
.fref (),
.icdrclk (),
.pfdena (1'b1),
.phasecounterselect ({4{1'b1}}),
.phasedone (),
.phasestep (1'b1),
.phaseupdown (1'b1),
.pllena (1'b1),
.scanaclr (1'b0),
.scanclk (1'b0),
.scanclkena (1'b1),
.scandata (1'b0),
.scandataout (),
.scandone (),
.scanread (1'b0),
.scanwrite (1'b0),
.sclkout0 (),
.sclkout1 (),
.vcooverrange (),
.vcounderrange ());
defparam
altpll_component.bandwidth_type = "AUTO",
altpll_component.clk0_divide_by = 78,
altpll_component.clk0_duty_cycle = 50,
altpll_component.clk0_multiply_by = 71,
altpll_component.clk0_phase_shift = "0",
altpll_component.compensate_clock = "CLK0",
altpll_component.inclk0_input_frequency = 37037,
altpll_component.intended_device_family = "Cyclone III",
altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll",
altpll_component.lpm_type = "altpll",
altpll_component.operation_mode = "NORMAL",
altpll_component.pll_type = "AUTO",
altpll_component.port_activeclock = "PORT_UNUSED",
altpll_component.port_areset = "PORT_UNUSED",
altpll_component.port_clkbad0 = "PORT_UNUSED",
altpll_component.port_clkbad1 = "PORT_UNUSED",
altpll_component.port_clkloss = "PORT_UNUSED",
altpll_component.port_clkswitch = "PORT_UNUSED",
altpll_component.port_configupdate = "PORT_UNUSED",
altpll_component.port_fbin = "PORT_UNUSED",
altpll_component.port_inclk0 = "PORT_USED",
altpll_component.port_inclk1 = "PORT_UNUSED",
altpll_component.port_locked = "PORT_USED",
altpll_component.port_pfdena = "PORT_UNUSED",
altpll_component.port_phasecounterselect = "PORT_UNUSED",
altpll_component.port_phasedone = "PORT_UNUSED",
altpll_component.port_phasestep = "PORT_UNUSED",
altpll_component.port_phaseupdown = "PORT_UNUSED",
altpll_component.port_pllena = "PORT_UNUSED",
altpll_component.port_scanaclr = "PORT_UNUSED",
altpll_component.port_scanclk = "PORT_UNUSED",
altpll_component.port_scanclkena = "PORT_UNUSED",
altpll_component.port_scandata = "PORT_UNUSED",
altpll_component.port_scandataout = "PORT_UNUSED",
altpll_component.port_scandone = "PORT_UNUSED",
altpll_component.port_scanread = "PORT_UNUSED",
altpll_component.port_scanwrite = "PORT_UNUSED",
altpll_component.port_clk0 = "PORT_USED",
altpll_component.port_clk1 = "PORT_UNUSED",
altpll_component.port_clk2 = "PORT_UNUSED",
altpll_component.port_clk3 = "PORT_UNUSED",
altpll_component.port_clk4 = "PORT_UNUSED",
altpll_component.port_clk5 = "PORT_UNUSED",
altpll_component.port_clkena0 = "PORT_UNUSED",
altpll_component.port_clkena1 = "PORT_UNUSED",
altpll_component.port_clkena2 = "PORT_UNUSED",
altpll_component.port_clkena3 = "PORT_UNUSED",
altpll_component.port_clkena4 = "PORT_UNUSED",
altpll_component.port_clkena5 = "PORT_UNUSED",
altpll_component.port_extclk0 = "PORT_UNUSED",
altpll_component.port_extclk1 = "PORT_UNUSED",
altpll_component.port_extclk2 = "PORT_UNUSED",
altpll_component.port_extclk3 = "PORT_UNUSED",
altpll_component.self_reset_on_loss_lock = "OFF",
altpll_component.width_clock = 5;
endmodule
// ============================================================
// CNX file retrieval info
// ============================================================
// Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0"
// Retrieval info: PRIVATE: BANDWIDTH STRING "1.000"
// Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz"
// Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low"
// Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1"
// Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0"
// Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0"
// Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0"
// Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0"
// Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0"
// Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0"
// Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0"
// Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0"
// Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0"
// Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8"
// Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "78"
// Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000"
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "24.576923"
// Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
// Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0"
// Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0"
// Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0"
// Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575"
// Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1"
// Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "27.000"
// Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz"
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000"
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1"
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz"
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III"
// Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1"
// Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available"
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0"
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg"
// Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any"
// Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0"
// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "71"
// Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "24.57600000"
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0"
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz"
// Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0"
// Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000"
// Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0"
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg"
// Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1"
// Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0"
// Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0"
// Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0"
// Retrieval info: PRIVATE: RECONFIG_FILE STRING "pll.mif"
// Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0"
// Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0"
// Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0"
// Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0"
// Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000"
// Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz"
// Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500"
// Retrieval info: PRIVATE: SPREAD_USE STRING "0"
// Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0"
// Retrieval info: PRIVATE: STICKY_CLK0 STRING "1"
// Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1"
// Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1"
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
// Retrieval info: PRIVATE: USE_CLK0 STRING "1"
// Retrieval info: PRIVATE: USE_CLKENA0 STRING "0"
// Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0"
// Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0"
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
// Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO"
// Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "78"
// Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "71"
// Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
// Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0"
// Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037"
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III"
// Retrieval info: CONSTANT: LPM_TYPE STRING "altpll"
// Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL"
// Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO"
// Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED"
// Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED"
// Retrieval info: CONSTANT: SELF_RESET_ON_LOSS_LOCK STRING "OFF"
// Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5"
// Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]"
// Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0"
// Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0"
// Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked"
// Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0
// Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0
// Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0
// Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.ppf TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.inc FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.cmp FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.bsf FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_inst.v FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_bb.v FALSE
// Retrieval info: LIB_FILE: altera_mf
// Retrieval info: CBX_MODULE_PREFIX: ON

View File

@@ -1,150 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity snd1 is
port (
clk : in std_logic;
addr : in std_logic_vector(10 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of snd1 is
type rom is array(0 to 2047) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"55",X"04",X"52",X"C5",X"A5",X"8A",X"40",X"8A",X"80",X"B9",X"02",X"BA",X"40",X"BB",X"40",X"FA",
X"77",X"77",X"53",X"3F",X"6A",X"AA",X"AB",X"34",X"00",X"FB",X"97",X"67",X"6B",X"AB",X"34",X"00",
X"E9",X"0F",X"FA",X"47",X"00",X"53",X"0F",X"37",X"17",X"6A",X"07",X"AA",X"AB",X"03",X"D8",X"E6",
X"3C",X"34",X"00",X"FB",X"97",X"67",X"6B",X"AB",X"34",X"00",X"04",X"22",X"D5",X"23",X"2B",X"34",
X"81",X"14",X"45",X"04",X"52",X"80",X"37",X"B4",X"33",X"C6",X"51",X"53",X"F0",X"96",X"51",X"04",
X"45",X"83",X"05",X"85",X"A5",X"B8",X"20",X"B0",X"00",X"D5",X"27",X"AE",X"AF",X"C5",X"8A",X"80",
X"14",X"73",X"26",X"74",X"A5",X"0A",X"37",X"B2",X"A8",X"27",X"AE",X"AF",X"A9",X"B4",X"35",X"14",
X"73",X"04",X"62",X"93",X"B8",X"20",X"F0",X"03",X"05",X"C6",X"69",X"F0",X"03",X"09",X"C6",X"69",
X"B8",X"08",X"A5",X"B5",X"D4",X"1A",X"D4",X"38",X"8A",X"80",X"C6",X"62",X"B9",X"03",X"34",X"3F",
X"B4",X"35",X"E9",X"8E",X"B9",X"04",X"B4",X"35",X"E9",X"96",X"FA",X"03",X"F9",X"A9",X"C6",X"86",
X"9A",X"7F",X"B4",X"35",X"E9",X"A2",X"04",X"86",X"BB",X"20",X"34",X"15",X"FB",X"77",X"77",X"53",
X"3F",X"6B",X"AB",X"26",X"74",X"E6",X"AA",X"34",X"15",X"FB",X"77",X"77",X"53",X"3F",X"6B",X"AB",
X"26",X"74",X"E6",X"B7",X"04",X"62",X"BA",X"08",X"B9",X"FF",X"8A",X"80",X"A5",X"B5",X"FA",X"AB",
X"34",X"31",X"34",X"31",X"FA",X"97",X"67",X"6A",X"F6",X"62",X"AB",X"34",X"31",X"34",X"31",X"34",
X"31",X"FA",X"AB",X"34",X"31",X"34",X"31",X"FA",X"97",X"67",X"97",X"67",X"6A",X"AA",X"04",X"CE",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"B8",X"03",X"34",X"23",X"E8",X"02",X"B8",X"03",X"34",X"0D",X"E8",X"08",X"83",X"27",X"AE",X"AF",
X"D5",X"AE",X"AF",X"C4",X"7B",X"FB",X"47",X"E7",X"53",X"1F",X"AF",X"FB",X"47",X"E7",X"53",X"E0",
X"AE",X"A4",X"35",X"FB",X"77",X"77",X"AE",X"53",X"3F",X"AF",X"FE",X"53",X"C0",X"AE",X"D5",X"C4",
X"7B",X"FB",X"77",X"77",X"AE",X"53",X"3F",X"AF",X"FE",X"53",X"C0",X"AE",X"D5",X"A4",X"35",X"FE",
X"6F",X"E6",X"44",X"1F",X"6F",X"E6",X"48",X"1F",X"AE",X"83",X"AB",X"D5",X"FB",X"1B",X"C5",X"B4",
X"33",X"C6",X"9E",X"F2",X"9F",X"A8",X"D4",X"1A",X"D4",X"38",X"D4",X"4B",X"C6",X"4B",X"B9",X"03",
X"8A",X"80",X"34",X"3F",X"D5",X"34",X"3F",X"D4",X"7B",X"E9",X"62",X"B9",X"04",X"D5",X"D4",X"7B",
X"E9",X"6D",X"FA",X"03",X"F9",X"A9",X"C6",X"58",X"9A",X"7F",X"D5",X"D4",X"7B",X"E9",X"7A",X"24",
X"58",X"AB",X"D5",X"FB",X"1B",X"C5",X"B4",X"33",X"C6",X"9E",X"F2",X"9F",X"A8",X"D4",X"1A",X"D4",
X"38",X"D4",X"4B",X"C6",X"82",X"FA",X"A9",X"D5",X"D4",X"7B",X"E9",X"97",X"24",X"8F",X"83",X"BE",
X"80",X"A4",X"A2",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"03",X"06",X"09",X"0C",X"0F",X"12",X"15",X"18",X"1B",X"1E",X"21",X"24",X"27",X"2A",X"2D",
X"30",X"33",X"36",X"39",X"3C",X"3F",X"42",X"45",X"48",X"4B",X"4E",X"51",X"54",X"57",X"5A",X"5D",
X"60",X"5D",X"5A",X"57",X"54",X"51",X"4E",X"4B",X"48",X"45",X"42",X"3F",X"3C",X"39",X"36",X"33",
X"30",X"2D",X"2A",X"27",X"24",X"21",X"1E",X"1B",X"18",X"15",X"12",X"0F",X"0C",X"09",X"06",X"03",
X"FC",X"6E",X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"53",X"3F",X"A3",X"A8",X"C5",X"FC",X"6E",X"AC",
X"FD",X"7F",X"AD",X"77",X"77",X"43",X"C0",X"A3",X"D5",X"68",X"39",X"16",X"5F",X"44",X"40",X"C5",
X"83",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"05",X"0A",X"0F",X"14",X"19",X"1E",X"23",X"28",X"2D",X"32",X"37",X"3C",X"41",X"46",X"4B",
X"50",X"55",X"5A",X"5F",X"64",X"69",X"6E",X"73",X"78",X"7D",X"82",X"87",X"8C",X"91",X"96",X"9B",
X"9F",X"9B",X"96",X"91",X"8C",X"87",X"82",X"7D",X"78",X"73",X"6E",X"69",X"64",X"5F",X"5A",X"55",
X"50",X"4B",X"46",X"41",X"3C",X"37",X"32",X"2D",X"28",X"23",X"1E",X"19",X"14",X"0F",X"0A",X"05",
X"00",X"2A",X"80",X"1C",X"84",X"0E",X"88",X"8A",X"88",X"00",X"16",X"84",X"0B",X"84",X"84",X"00",
X"00",X"18",X"84",X"0C",X"80",X"80",X"00",X"10",X"B8",X"B4",X"B0",X"00",X"12",X"90",X"09",X"90",
X"90",X"12",X"90",X"90",X"94",X"90",X"94",X"90",X"94",X"09",X"94",X"94",X"12",X"94",X"94",X"98",
X"94",X"98",X"94",X"00",X"00",X"09",X"B0",X"B2",X"B4",X"12",X"BA",X"B6",X"00",X"0E",X"A4",X"1C",
X"E8",X"90",X"D8",X"88",X"38",X"E0",X"80",X"00",X"60",X"CA",X"82",X"20",X"CC",X"84",X"40",X"D0",
X"86",X"CA",X"82",X"08",X"DA",X"89",X"D9",X"89",X"DA",X"89",X"D9",X"89",X"DA",X"89",X"D9",X"89",
X"DA",X"89",X"D9",X"89",X"08",X"DA",X"89",X"D9",X"89",X"DA",X"89",X"D9",X"89",X"DA",X"89",X"D9",
X"89",X"DA",X"89",X"D9",X"89",X"7F",X"DA",X"8A",X"00",X"00",X"24",X"88",X"82",X"88",X"82",X"12",
X"D8",X"88",X"D6",X"88",X"D8",X"82",X"D6",X"82",X"D6",X"88",X"88",X"D6",X"82",X"82",X"24",X"DA",
X"87",X"D9",X"83",X"DA",X"87",X"D7",X"83",X"09",X"D8",X"88",X"D7",X"88",X"D8",X"88",X"D7",X"88",
X"D8",X"82",X"D7",X"82",X"D8",X"82",X"D7",X"82",X"48",X"D8",X"88",X"00",X"00",X"00",X"20",X"E8",
X"88",X"82",X"E2",X"88",X"10",X"82",X"A4",X"20",X"DC",X"88",X"82",X"84",X"18",X"E0",X"87",X"08",
X"A2",X"20",X"E4",X"88",X"E7",X"82",X"E8",X"88",X"EA",X"82",X"20",X"EA",X"88",X"EC",X"82",X"88",
X"82",X"EC",X"88",X"82",X"F0",X"90",X"88",X"EC",X"88",X"82",X"10",X"84",X"AA",X"E8",X"8C",X"AA",
X"20",X"E7",X"92",X"8A",X"10",X"84",X"A4",X"E2",X"8C",X"A4",X"00",X"1B",X"E2",X"88",X"09",X"A4",
X"12",X"82",X"A8",X"12",X"88",X"A4",X"E2",X"82",X"A4",X"12",X"E0",X"80",X"09",X"82",X"83",X"86",
X"88",X"8A",X"8C",X"24",X"D0",X"88",X"00",X"20",X"80",X"DC",X"98",X"E0",X"9A",X"E2",X"9C",X"20",
X"90",X"E4",X"88",X"10",X"E3",X"90",X"A4",X"20",X"88",X"DA",X"8A",X"EA",X"84",X"10",X"E8",X"8A",
X"A4",X"20",X"84",X"E2",X"82",X"E2",X"87",X"16",X"E8",X"88",X"0A",X"A3",X"10",X"E4",X"82",X"A0",
X"15",X"C8",X"80",X"2B",X"CA",X"83",X"40",X"CB",X"80",X"00",X"10",X"E8",X"A4",X"E8",X"A4",X"E6",
X"A2",X"E6",X"A2",X"E4",X"A0",X"E4",X"A0",X"E2",X"9C",X"E2",X"9C",X"10",X"E0",X"90",X"A0",X"E4",
X"88",X"A0",X"E4",X"80",X"A0",X"E4",X"88",X"A8",X"20",X"EA",X"96",X"E8",X"90",X"40",X"F0",X"80",
X"00",X"10",X"E8",X"A4",X"E8",X"A4",X"E6",X"A2",X"E6",X"A2",X"E4",X"A0",X"E4",X"A0",X"E2",X"9C",
X"E2",X"9C",X"20",X"E0",X"90",X"10",X"88",X"08",X"A0",X"A2",X"20",X"E4",X"90",X"E0",X"88",X"20",
X"E2",X"92",X"10",X"8A",X"08",X"A2",X"A4",X"20",X"E6",X"92",X"E2",X"8A",X"20",X"E8",X"88",X"10",
X"82",X"A8",X"EA",X"88",X"A8",X"E6",X"82",X"A4",X"E8",X"80",X"2B",X"83",X"40",X"80",X"00",X"0A",
X"E8",X"A4",X"EA",X"A6",X"14",X"EC",X"A8",X"28",X"E8",X"A4",X"0A",X"E8",X"A4",X"EA",X"A6",X"14",
X"EC",X"A8",X"28",X"E8",X"A4",X"00",X"0A",X"E0",X"98",X"E0",X"98",X"3C",X"E0",X"98",X"12",X"88",
X"84",X"88",X"84",X"88",X"84",X"88",X"84",X"88",X"84",X"88",X"84",X"00",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"A3",X"83",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"20",X"10",X"05",X"06",X"12",X"40",X"16",X"01",X"02",X"00",X"04",X"14",X"FA",X"1E",X"2D",
X"10",X"00",X"13",X"00",X"11",X"00",X"14",X"83",X"FE",X"85",X"FE",X"85",X"FE",X"00",X"15",X"00",
X"0A",X"00",X"95",X"FE",X"85",X"FE",X"85",X"FE",X"00",X"00",X"00",X"09",X"00",X"FE",X"84",X"FE",
X"83",X"FE",X"00",X"A3",X"83",X"D5",X"B8",X"20",X"80",X"37",X"53",X"0F",X"20",X"37",X"17",X"60",
X"96",X"64",X"B6",X"BD",X"46",X"BA",X"F0",X"A3",X"C6",X"5D",X"F2",X"5F",X"34",X"3F",X"E9",X"5D",
X"FF",X"96",X"56",X"FE",X"C6",X"75",X"FA",X"03",X"F8",X"A9",X"27",X"AE",X"AF",X"C4",X"7B",X"27",
X"AE",X"AF",X"C4",X"7B",X"F0",X"A3",X"C6",X"5F",X"F2",X"8C",X"92",X"7D",X"B2",X"81",X"D2",X"E5",
X"8A",X"80",X"A8",X"D4",X"1A",X"D4",X"38",X"C6",X"64",X"B9",X"08",X"C4",X"7B",X"34",X"4A",X"04",
X"52",X"34",X"81",X"04",X"52",X"C5",X"BE",X"80",X"F4",X"06",X"04",X"52",X"76",X"91",X"C5",X"04",
X"74",X"B0",X"08",X"A4",X"46",X"D5",X"FB",X"1B",X"C5",X"A3",X"C6",X"9E",X"96",X"A2",X"14",X"45",
X"04",X"52",X"D2",X"B6",X"97",X"F7",X"97",X"F7",X"A9",X"23",X"80",X"62",X"16",X"AE",X"16",X"B2",
X"A4",X"AE",X"E9",X"A9",X"A4",X"95",X"F4",X"06",X"A4",X"95",X"95",X"BB",X"F0",X"FB",X"E7",X"E7",
X"47",X"53",X"03",X"96",X"C6",X"17",X"37",X"17",X"6B",X"AB",X"03",X"E0",X"F6",X"D7",X"85",X"27",
X"AE",X"AF",X"B8",X"20",X"A0",X"C4",X"7B",X"FB",X"47",X"E7",X"53",X"1F",X"AF",X"FB",X"47",X"E7",
X"53",X"E0",X"AE",X"C4",X"7B",X"B0",X"04",X"C5",X"F9",X"F2",X"ED",X"04",X"C6",X"D5",X"A4",X"46",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"28",X"00",X"2A",X"61",X"2C",X"E6",X"2F",X"91",X"32",X"66",X"FF",X"FF",X"35",X"65",X"38",X"92",
X"3B",X"EF",X"3F",X"75",X"43",X"46",X"47",X"46",X"4B",X"83",X"BB",X"00",X"B9",X"30",X"B1",X"FF",
X"D4",X"27",X"96",X"20",X"E8",X"20",X"83",X"B9",X"30",X"FB",X"96",X"2D",X"11",X"F1",X"96",X"34",
X"FB",X"1B",X"E3",X"83",X"FB",X"1B",X"84",X"F8",X"D4",X"27",X"C6",X"5C",X"F2",X"46",X"AA",X"D4",
X"27",X"F2",X"46",X"A9",X"D4",X"27",X"A8",X"D4",X"5D",X"F8",X"83",X"D2",X"54",X"D5",X"BE",X"00",
X"BF",X"00",X"C5",X"83",X"D4",X"27",X"D5",X"A8",X"D4",X"5D",X"C5",X"F8",X"83",X"F8",X"53",X"0F",
X"E7",X"AC",X"A3",X"AF",X"FC",X"17",X"A3",X"AE",X"F8",X"53",X"30",X"47",X"AC",X"FF",X"97",X"67",
X"AF",X"FE",X"67",X"AE",X"1C",X"FC",X"03",X"FC",X"96",X"6D",X"83",X"42",X"03",X"80",X"62",X"76",
X"A2",X"FC",X"6E",X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"43",X"C0",X"A3",X"A8",X"C5",X"FC",X"6E",
X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"43",X"C0",X"A3",X"D5",X"68",X"39",X"16",X"A0",X"C4",X"81",
X"C5",X"83",X"44",X"40",X"A3",X"83",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"03",X"06",X"09",X"0C",X"0F",X"12",X"15",X"18",X"1B",X"1E",X"21",X"24",X"27",X"2A",X"2D",
X"30",X"33",X"36",X"39",X"3C",X"3F",X"42",X"45",X"48",X"4B",X"4E",X"51",X"54",X"57",X"5A",X"5D",
X"60",X"5D",X"5A",X"57",X"54",X"51",X"4E",X"4B",X"48",X"45",X"42",X"3F",X"3C",X"39",X"36",X"33",
X"30",X"2D",X"2A",X"27",X"24",X"21",X"1E",X"1B",X"18",X"15",X"12",X"0F",X"0C",X"09",X"06",X"03",
X"02",X"04",X"06",X"0C",X"14",X"FF",X"A8",X"A3",X"28",X"17",X"A3",X"A9",X"12",X"24",X"C9",X"F4",
X"24",X"9A",X"7F",X"B8",X"00",X"B9",X"FF",X"F4",X"24",X"9A",X"7F",X"B8",X"00",X"B9",X"FF",X"F4",
X"24",X"8A",X"80",X"83",X"BF",X"00",X"9A",X"BF",X"A5",X"23",X"B0",X"48",X"3A",X"BA",X"08",X"81",
X"E9",X"3B",X"AB",X"C8",X"F8",X"F2",X"BA",X"43",X"B0",X"3A",X"FB",X"77",X"AB",X"F2",X"78",X"76",
X"5B",X"1F",X"FF",X"A3",X"F2",X"4A",X"37",X"17",X"E4",X"4E",X"CF",X"00",X"23",X"EC",X"6E",X"AE",
X"F6",X"59",X"27",X"AE",X"39",X"EA",X"AC",X"E4",X"2D",X"E4",X"54",X"A5",X"CF",X"FF",X"F2",X"62",
X"E4",X"64",X"27",X"AF",X"A3",X"37",X"17",X"6E",X"F6",X"71",X"27",X"AE",X"39",X"EA",X"AC",X"E4",
X"2D",X"00",X"AE",X"39",X"EA",X"AC",X"E4",X"2D",X"76",X"93",X"B5",X"CF",X"FF",X"F2",X"81",X"E4",
X"83",X"27",X"AF",X"A3",X"6E",X"AE",X"E6",X"90",X"23",X"FF",X"AE",X"39",X"EA",X"AC",X"E4",X"2D",
X"00",X"E4",X"8B",X"1F",X"FF",X"A3",X"F2",X"9C",X"00",X"00",X"E4",X"9F",X"CF",X"FF",X"A3",X"6E",
X"E6",X"AA",X"23",X"FF",X"AE",X"39",X"EA",X"AC",X"E4",X"2D",X"E4",X"A4",X"FB",X"C6",X"B4",X"00",
X"00",X"00",X"E4",X"3B",X"81",X"C6",X"BA",X"FB",X"E4",X"3B",X"8A",X"40",X"A5",X"83",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"07",X"FF",X"05",X"FF",X"02",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,150 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity snd2 is
port (
clk : in std_logic;
addr : in std_logic_vector(10 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of snd2 is
type rom is array(0 to 2047) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"C0",X"F0",X"F0",X"F8",X"38",X"7C",X"3C",X"7A",X"38",X"D1",X"E1",X"E1",X"E1",X"E0",X"E2",X"F0",
X"F1",X"D1",X"DC",X"4E",X"9E",X"0F",X"0F",X"1E",X"1E",X"0E",X"1E",X"1E",X"1A",X"58",X"E1",X"E1",
X"C0",X"F0",X"F0",X"F8",X"38",X"7C",X"3C",X"7A",X"38",X"D1",X"E1",X"E1",X"E1",X"E0",X"E2",X"F0",
X"F1",X"D1",X"DC",X"4E",X"9E",X"0F",X"0F",X"1E",X"1E",X"0E",X"1E",X"1E",X"1A",X"58",X"E1",X"E1",
X"C0",X"F0",X"F0",X"F8",X"38",X"7C",X"3C",X"7A",X"38",X"D1",X"E1",X"E1",X"E1",X"E0",X"E2",X"F0",
X"F1",X"D1",X"DC",X"4E",X"9E",X"0F",X"0F",X"1E",X"1E",X"0E",X"1E",X"1E",X"1A",X"58",X"E1",X"E1",
X"C0",X"F0",X"F0",X"F8",X"38",X"7C",X"3C",X"7A",X"38",X"D1",X"E1",X"E1",X"E1",X"E0",X"E2",X"F0",
X"F1",X"D1",X"DC",X"4E",X"9E",X"0F",X"0F",X"1E",X"1E",X"0E",X"1E",X"1E",X"1A",X"58",X"E1",X"E1",
X"1E",X"0E",X"3E",X"8F",X"27",X"0C",X"DC",X"38",X"7C",X"78",X"38",X"EC",X"6C",X"7C",X"78",X"70",
X"CC",X"78",X"78",X"70",X"F8",X"78",X"78",X"78",X"78",X"66",X"B8",X"E4",X"E1",X"E0",X"E6",X"63",
X"1E",X"0E",X"3E",X"8F",X"27",X"0C",X"DC",X"38",X"7C",X"78",X"38",X"EC",X"6C",X"7C",X"78",X"70",
X"CC",X"78",X"78",X"70",X"F8",X"78",X"78",X"78",X"78",X"66",X"B8",X"E4",X"E1",X"E0",X"E6",X"63",
X"1E",X"0E",X"3E",X"8F",X"27",X"0C",X"DC",X"38",X"7C",X"78",X"38",X"EC",X"6C",X"7C",X"78",X"70",
X"CC",X"78",X"78",X"70",X"F8",X"78",X"78",X"78",X"78",X"66",X"B8",X"E4",X"E1",X"E0",X"E6",X"63",
X"1E",X"0E",X"3E",X"8F",X"27",X"0C",X"DC",X"38",X"7C",X"78",X"38",X"EC",X"6C",X"7C",X"78",X"70",
X"CC",X"78",X"78",X"70",X"F8",X"78",X"78",X"78",X"78",X"66",X"B8",X"E4",X"E1",X"E0",X"E6",X"63",
X"1E",X"47",X"13",X"93",X"C6",X"E5",X"70",X"73",X"3C",X"1C",X"67",X"1F",X"19",X"E0",X"E2",X"78",
X"CC",X"3E",X"39",X"1E",X"0E",X"63",X"8B",X"91",X"F0",X"E3",X"38",X"EC",X"73",X"1C",X"4E",X"33",
X"1E",X"47",X"13",X"93",X"C6",X"E5",X"70",X"73",X"3C",X"1C",X"67",X"1F",X"19",X"E0",X"E2",X"78",
X"CC",X"3E",X"39",X"1E",X"0E",X"63",X"8B",X"91",X"F0",X"E3",X"38",X"EC",X"73",X"1C",X"4E",X"33",
X"1E",X"47",X"13",X"93",X"C6",X"E5",X"70",X"73",X"3C",X"1C",X"67",X"1F",X"19",X"E0",X"E2",X"78",
X"CC",X"3E",X"39",X"1E",X"0E",X"63",X"8B",X"91",X"F0",X"E3",X"38",X"EC",X"73",X"1C",X"4E",X"33",
X"1E",X"47",X"13",X"93",X"C6",X"E5",X"70",X"73",X"3C",X"1C",X"67",X"1F",X"19",X"E0",X"E2",X"78",
X"CC",X"3E",X"39",X"1E",X"0E",X"63",X"8B",X"91",X"F0",X"E3",X"38",X"EC",X"73",X"1C",X"4E",X"33",
X"E4",X"E2",X"E4",X"E4",X"D3",X"53",X"55",X"8D",X"53",X"33",X"33",X"34",X"D5",X"4D",X"55",X"35",
X"8D",X"4D",X"55",X"4D",X"33",X"35",X"4D",X"33",X"34",X"D5",X"55",X"4D",X"94",X"CD",X"33",X"33",
X"E4",X"E2",X"E4",X"E4",X"D3",X"53",X"55",X"8D",X"53",X"33",X"33",X"34",X"D5",X"4D",X"55",X"35",
X"8D",X"4D",X"55",X"4D",X"33",X"35",X"4D",X"33",X"34",X"D5",X"55",X"4D",X"94",X"CD",X"33",X"33",
X"E4",X"E2",X"E4",X"E4",X"D3",X"53",X"55",X"8D",X"53",X"33",X"33",X"34",X"D5",X"4D",X"55",X"35",
X"8D",X"4D",X"55",X"4D",X"33",X"35",X"4D",X"33",X"34",X"D5",X"55",X"4D",X"94",X"CD",X"33",X"33",
X"E4",X"E2",X"E4",X"E4",X"D3",X"53",X"55",X"8D",X"53",X"33",X"33",X"34",X"D5",X"4D",X"55",X"35",
X"8D",X"4D",X"55",X"4D",X"33",X"35",X"4D",X"33",X"34",X"D5",X"55",X"4D",X"94",X"CD",X"33",X"33",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"55",X"55",X"55",X"56",X"66",X"66",X"66",X"66",X"66",
X"66",X"55",X"65",X"55",X"56",X"66",X"66",X"66",X"59",X"99",X"99",X"99",X"95",X"55",X"55",X"66",
X"65",X"66",X"66",X"66",X"66",X"59",X"59",X"59",X"59",X"59",X"59",X"59",X"96",X"56",X"59",X"59",
X"66",X"56",X"66",X"66",X"66",X"66",X"55",X"55",X"95",X"56",X"59",X"99",X"99",X"99",X"95",X"99",
X"99",X"99",X"99",X"99",X"99",X"59",X"59",X"99",X"96",X"66",X"56",X"55",X"99",X"99",X"A6",X"96",
X"56",X"59",X"56",X"66",X"66",X"66",X"99",X"96",X"66",X"59",X"96",X"95",X"95",X"4D",X"93",X"66",
X"65",X"99",X"66",X"59",X"59",X"39",X"39",X"56",X"59",X"5A",X"56",X"5A",X"5A",X"69",X"5A",X"59",
X"64",X"E4",X"CD",X"4C",X"E4",X"E6",X"66",X"69",X"6A",X"66",X"A6",X"63",X"4D",X"4B",X"4D",X"59",
X"59",X"9A",X"56",X"36",X"36",X"36",X"97",X"27",X"25",X"8E",X"8D",X"8A",X"CD",X"4D",X"4C",X"D6",
X"65",X"A6",X"A6",X"66",X"64",X"D5",X"35",X"36",X"56",X"CE",X"4D",X"4A",X"6A",X"9B",X"26",X"26",
X"36",X"DD",X"CC",X"88",X"89",X"22",X"CB",X"DD",X"DD",X"CA",X"92",X"46",X"65",X"95",X"65",X"96",
X"65",X"95",X"95",X"4C",X"D3",X"4D",X"59",X"56",X"66",X"66",X"66",X"66",X"56",X"35",X"55",X"59",
X"99",X"99",X"99",X"66",X"59",X"99",X"99",X"96",X"59",X"96",X"66",X"66",X"66",X"56",X"56",X"66",
X"59",X"99",X"96",X"66",X"53",X"55",X"9A",X"65",X"99",X"94",X"D9",X"99",X"55",X"99",X"99",X"59",
X"99",X"55",X"99",X"99",X"55",X"66",X"65",X"95",X"99",X"99",X"59",X"99",X"8D",X"99",X"99",X"56",
X"65",X"96",X"59",X"59",X"95",X"66",X"66",X"59",X"66",X"65",X"55",X"9A",X"4D",X"56",X"64",X"D3",
X"00",X"66",X"4E",X"56",X"99",X"53",X"9A",X"4E",X"4D",X"A9",X"54",X"DD",X"33",X"1D",X"C9",X"93",
X"3D",X"49",X"25",X"E4",X"92",X"5E",X"48",X"95",X"E4",X"89",X"DD",X"44",X"BB",X"31",X"25",X"E4",
X"46",X"5E",X"44",X"65",X"E4",X"45",X"5D",X"84",X"55",X"D8",X"45",X"67",X"61",X"16",X"76",X"12",
X"6A",X"E1",X"4C",X"CF",X"21",X"A9",X"7A",X"1B",X"27",X"61",X"6C",X"9E",X"8D",X"98",X"E8",X"DC",
X"C1",X"47",X"EC",X"09",X"FD",X"81",X"1F",X"E2",X"01",X"FF",X"02",X"1F",X"E0",X"C1",X"FE",X"0C",
X"1F",X"C0",X"A0",X"FF",X"07",X"07",X"F0",X"70",X"7F",X"07",X"07",X"F0",X"70",X"7F",X"23",X"83",
X"F0",X"38",X"3F",X"83",X"C3",X"F2",X"1C",X"3F",X"21",X"E0",X"FC",X"8E",X"0F",X"C0",X"F0",X"7F",
X"07",X"83",X"F0",X"3C",X"3F",X"03",X"C3",X"F8",X"1E",X"1F",X"80",X"F0",X"FE",X"07",X"87",X"E0",
X"78",X"3F",X"03",X"E1",X"F8",X"1E",X"0F",X"C0",X"F0",X"FC",X"07",X"8F",X"E0",X"3C",X"3F",X"03",
X"C3",X"F8",X"1E",X"0F",X"C0",X"F8",X"7C",X"27",X"C3",X"E0",X"1E",X"3F",X"80",X"F0",X"FC",X"07",
X"87",X"F0",X"3C",X"3F",X"01",X"E1",X"FC",X"0F",X"0F",X"C0",X"7C",X"3E",X"0B",X"E1",X"F0",X"0F",
X"1F",X"80",X"F8",X"7C",X"13",X"C3",X"F0",X"1F",X"1F",X"80",X"78",X"FC",X"13",X"C3",X"F0",X"1E",
X"0F",X"C0",X"F8",X"FC",X"07",X"C3",X"F0",X"1E",X"1F",X"84",X"F0",X"7C",X"27",X"C3",X"E0",X"1E",
X"3F",X"01",X"F0",X"FC",X"0F",X"87",X"E0",X"3C",X"3F",X"01",X"E1",X"F8",X"1F",X"0F",X"C0",X"F8",
X"7C",X"13",X"C3",X"F0",X"1E",X"1F",X"81",X"F0",X"FC",X"07",X"87",X"F0",X"1E",X"1F",X"09",X"F0",
X"F8",X"07",X"8F",X"E0",X"78",X"3F",X"03",X"E1",X"F0",X"1E",X"1F",X"88",X"F0",X"FC",X"07",X"87",
X"00",X"E2",X"38",X"3F",X"03",X"E1",X"F8",X"1E",X"1F",X"80",X"F0",X"FE",X"07",X"87",X"E1",X"38",
X"1F",X"83",X"E1",X"F8",X"1E",X"0F",X"C0",X"F0",X"FC",X"0D",X"87",X"F0",X"78",X"3F",X"07",X"83",
X"F0",X"3C",X"3F",X"03",X"C1",X"F8",X"9C",X"1F",X"81",X"E0",X"FC",X"1E",X"0F",X"C4",X"F0",X"FC",
X"0F",X"07",X"C0",X"F8",X"7E",X"07",X"07",X"E2",X"78",X"7E",X"07",X"87",X"E0",X"3C",X"3F",X"03",
X"C3",X"F0",X"3C",X"3F",X"03",X"C3",X"F0",X"3C",X"3F",X"03",X"C3",X"F0",X"2C",X"3F",X"22",X"C3",
X"E2",X"2C",X"3F",X"06",X"C3",X"E2",X"3C",X"3F",X"21",X"C3",X"E4",X"78",X"3E",X"05",X"C7",X"E0",
X"78",X"7E",X"05",X"87",X"E4",X"38",X"7E",X"0B",X"0F",X"C8",X"70",X"FC",X"87",X"1F",X"81",X"61",
X"F9",X"0E",X"1F",X"83",X"C1",X"F2",X"3C",X"3E",X"23",X"87",X"E4",X"38",X"7C",X"87",X"0F",X"98",
X"71",X"F9",X"0E",X"1F",X"81",X"C3",X"F0",X"5C",X"3E",X"21",X"87",X"E6",X"38",X"7C",X"47",X"0F",
X"88",X"71",X"F9",X"0E",X"1F",X"11",X"C3",X"E6",X"1C",X"7C",X"87",X"0F",X"98",X"E1",X"F1",X"0E",
X"3E",X"23",X"87",X"C8",X"38",X"FC",X"47",X"8F",X"80",X"E3",X"E2",X"1E",X"3E",X"23",X"87",X"8C",
X"71",X"F0",X"C7",X"1E",X"31",X"C3",X"C7",X"1C",X"78",X"E1",X"8F",X"1C",X"71",X"E3",X"C6",X"1C",
X"71",X"C7",X"87",X"18",X"F1",X"C7",X"1E",X"1C",X"63",X"C7",X"9C",X"70",X"79",X"8E",X"1E",X"75",
X"C1",X"C7",X"3C",X"38",X"C7",X"87",X"1A",X"F0",X"E3",X"1E",X"1E",X"27",X"83",X"8D",X"78",X"38",
X"AF",X"0E",X"33",X"E0",X"E2",X"7C",X"38",X"7F",X"07",X"07",X"E0",X"E0",X"FC",X"3C",X"1F",X"87",
X"07",X"E0",X"71",X"FC",X"1C",X"1F",X"81",X"8B",X"F0",X"70",X"FE",X"0E",X"0F",X"C1",X"C3",X"F8",
X"0F",X"38",X"3F",X"07",X"0F",X"C1",X"C1",X"FC",X"1C",X"3F",X"07",X"0F",X"E0",X"71",X"BC",X"1C",
X"1F",X"83",X"87",X"E2",X"61",X"FC",X"0E",X"3F",X"03",X"87",X"E0",X"61",X"FC",X"5C",X"3B",X"13",
X"86",X"E2",X"71",X"9C",X"4E",X"1F",X"19",X"8E",X"70",X"38",X"FC",X"27",X"39",X"C0",X"E3",X"71",
X"B8",X"EE",X"07",X"1B",X"8D",X"C6",X"71",X"38",X"CC",X"66",X"3B",X"8C",X"C7",X"71",X"B8",X"CC",
X"27",X"39",X"C0",X"E7",X"71",X"B8",X"CC",X"63",X"39",X"88",X"E7",X"71",X"19",X"CC",X"67",X"3B",
X"88",X"C6",X"72",X"39",X"9C",X"C6",X"73",X"19",X"CC",X"62",X"73",X"B8",X"9C",X"6E",X"27",X"1D",
X"88",X"CE",X"63",X"39",X"9C",X"8E",X"76",X"31",X"1B",X"C4",X"4E",X"73",X"13",X"9D",X"88",X"E7",
X"62",X"3B",X"99",X"8E",X"C4",X"83",X"FB",X"01",X"FC",X"88",X"EE",X"62",X"3B",X"D8",X"1D",X"E6",
X"07",X"79",X"83",X"BC",X"C0",X"EF",X"B0",X"37",X"9C",X"0D",X"E7",X"03",X"7B",X"80",X"DF",X"60",
X"37",X"DC",X"04",X"FE",X"03",X"7B",X"C0",X"6F",X"78",X"0D",X"EE",X"07",X"77",X"81",X"CE",X"C6",
X"3B",X"3C",X"13",X"BB",X"03",X"5D",X"86",X"37",X"26",X"65",X"D8",X"CB",X"24",X"E6",X"38",X"CE",
X"67",X"64",X"D3",X"32",X"64",X"FB",X"26",X"61",X"BB",X"24",X"ED",X"99",X"99",X"39",X"16",X"72",
X"4E",X"33",X"32",X"73",X"96",X"66",X"66",X"33",X"66",X"36",X"66",X"39",X"A6",X"71",X"98",X"9C",
X"DD",X"91",X"99",X"99",X"B1",X"4C",X"E3",X"33",X"33",X"38",X"CC",X"CB",X"31",X"CC",X"E6",X"64",
X"59",X"93",X"33",X"99",X"8B",X"33",X"8C",X"CB",X"1C",X"CC",X"C9",X"9C",X"CC",X"C9",X"9D",X"8C",
X"66",X"CD",X"33",X"8C",X"E9",X"99",X"93",X"99",X"99",X"99",X"33",X"98",X"E6",X"66",X"2C",X"E0",
X"00",X"00",X"00",X"AB",X"35",X"4C",X"65",X"9A",X"D9",X"8C",X"A6",X"B6",X"69",X"24",X"CD",X"B6",
X"65",X"29",X"AD",X"B2",X"62",X"4C",X"DD",X"98",X"C9",X"9B",X"5B",X"32",X"8C",X"6D",X"B9",X"A4",
X"99",X"B7",X"64",X"44",X"57",X"76",X"C9",X"25",X"77",X"6A",X"28",X"99",X"EE",X"D4",X"44",X"B5",
X"D9",X"88",X"46",X"EB",X"99",X"89",X"99",X"EE",X"53",X"19",X"9C",X"F6",X"22",X"26",X"D9",X"98",
X"C4",X"6E",X"F6",X"93",X"33",X"39",X"C8",X"85",X"76",X"79",X"26",X"31",X"76",X"C4",X"C6",X"76",
X"7A",X"22",X"25",X"B3",X"91",X"85",X"CD",X"E9",X"14",X"CC",X"E6",X"64",X"67",X"37",X"A6",X"32",
X"73",X"B3",X"42",X"9D",X"9B",X"33",X"19",X"99",X"C9",X"86",X"EE",X"B3",X"31",X"93",X"99",X"98",
X"CE",X"CC",X"C6",X"66",X"67",X"32",X"33",X"BB",X"94",X"CC",X"99",X"CC",X"C4",X"F6",X"EA",X"66",
X"62",X"76",X"31",X"4F",X"B4",X"4B",X"13",X"33",X"B0",X"9D",X"B9",X"13",X"66",X"33",X"63",X"3B",
X"39",X"0D",X"60",X"B6",X"66",X"27",X"E9",X"33",X"31",X"B3",X"91",X"9C",X"E1",X"33",X"A4",X"F9",
X"4C",X"6E",X"33",X"91",X"9D",X"98",X"EC",X"E5",X"36",X"27",X"33",X"19",X"B8",X"33",X"49",X"D8",
X"C6",X"EE",X"98",X"9C",X"4E",X"62",X"67",X"8C",X"C8",X"D9",X"C4",X"EE",X"33",X"13",X"93",X"89",
X"9E",X"61",X"9E",X"CD",X"66",X"71",X"46",X"76",X"63",X"33",X"C8",X"4F",X"26",X"53",X"3C",X"C1",
X"E4",X"EC",X"67",X"D0",X"7C",X"1B",X"99",X"E1",X"1E",X"0D",X"C6",X"7C",X"0F",X"86",X"C3",X"F8",
X"0F",X"07",X"C2",X"FC",X"0F",X"0D",X"C3",X"F0",X"1E",X"1B",X"8F",X"C0",X"E4",X"2E",X"37",X"83",
X"B1",X"B8",X"DC",X"0B",X"85",X"C2",X"F0",X"3C",X"3E",X"17",X"81",X"E1",X"71",X"F8",X"1E",X"1B",
X"0F",X"8D",X"C1",X"E1",X"B8",X"DC",X"1E",X"1B",X"8D",X"C1",X"E1",X"B8",X"D8",X"2E",X"33",X"1F",
X"83",X"63",X"E3",X"30",X"D8",X"EE",X"37",X"07",X"8D",X"C6",X"E0",X"71",X"38",X"F8",X"4C",X"2F",
X"33",X"83",X"8D",X"8E",X"E2",X"72",X"71",X"BC",X"1C",X"9C",X"6E",X"0E",X"67",X"1B",X"83",X"39",
X"CD",X"C1",X"CC",X"E2",X"70",X"F2",X"63",X"B8",X"73",X"38",X"D8",X"39",X"9C",X"CE",X"1E",X"CC",
X"67",X"1C",X"67",X"1B",X"86",X"37",X"19",X"C7",X"19",X"CC",X"C3",X"8C",X"E3",X"70",X"E6",X"71",
X"B8",X"71",X"39",X"CC",X"1C",X"CE",X"67",X"0E",X"27",X"1B",X"87",X"19",X"8E",X"E1",X"C4",X"E3",
X"78",X"78",X"3C",X"DC",X"1E",X"66",X"3B",X"83",X"9D",X"8C",X"E0",X"F0",X"F1",X"B8",X"38",X"DE",
X"36",X"0F",X"0B",X"86",X"E1",X"F0",X"78",X"DC",X"1E",X"17",X"19",X"C1",X"E2",X"71",X"BC",X"1E",
X"27",X"9B",X"C0",X"F0",X"78",X"FC",X"0F",X"07",X"89",X"E2",X"70",X"9C",X"7E",X"07",X"89",X"C6",
X"F0",X"3C",X"4E",X"37",X"C0",X"E3",X"71",X"9E",X"43",X"89",X"E3",X"70",X"5C",X"27",X"0B",X"E1",
X"98",X"9E",X"37",X"82",X"71",X"38",X"DF",X"04",X"E6",X"61",X"3E",X"33",X"0D",X"C3",X"78",X"53",
X"13",X"8E",X"F1",X"1C",X"93",X"1D",X"E0",X"B1",X"46",X"7B",X"89",X"32",X"8D",X"3B",X"84",X"94",
X"C5",X"9C",X"E2",X"4C",X"67",X"AE",X"72",X"22",X"4E",X"6F",X"9A",X"14",X"62",X"CF",X"7B",X"21",
X"42",X"36",X"EF",X"64",X"98",X"C6",X"6E",X"F6",X"98",X"C2",X"2C",X"EF",X"34",X"91",X"11",X"5B",
X"7A",X"D1",X"24",X"49",X"B6",X"E7",X"24",X"92",X"46",X"DD",X"DA",X"49",X"32",X"4A",X"CF",X"59",
X"25",X"2A",X"56",X"77",X"35",X"14",X"AA",X"99",X"B7",X"35",X"25",X"2A",X"65",X"AD",X"B5",X"30");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,38 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity col1 is
port (
clk : in std_logic;
addr : in std_logic_vector(7 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of col1 is
type rom is array(0 to 255) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"0F",X"0C",X"0A",X"0F",X"0F",X"00",X"0B",X"00",X"0F",X"0C",X"00",X"00",X"0F",X"0C",X"00",X"07",
X"0F",X"0C",X"00",X"03",X"0F",X"0C",X"04",X"00",X"0F",X"0C",X"04",X"03",X"0F",X"07",X"00",X"0A",
X"0F",X"0F",X"0C",X"09",X"0F",X"07",X"03",X"0A",X"0F",X"0E",X"0B",X"00",X"0F",X"03",X"0B",X"07",
X"0F",X"0F",X"0B",X"00",X"0F",X"0C",X"07",X"00",X"0F",X"0F",X"07",X"00",X"0F",X"0C",X"07",X"00",
X"0F",X"0C",X"0A",X"0F",X"0F",X"00",X"0B",X"00",X"0F",X"0F",X"03",X"05",X"0F",X"0F",X"03",X"05",
X"0F",X"0F",X"03",X"05",X"0F",X"0F",X"03",X"05",X"0F",X"0F",X"00",X"05",X"0F",X"07",X"00",X"0A",
X"0F",X"0F",X"0C",X"09",X"0F",X"07",X"03",X"0A",X"0F",X"0E",X"0B",X"00",X"0F",X"03",X"0B",X"07",
X"0F",X"0F",X"0B",X"00",X"0F",X"0C",X"07",X"00",X"0F",X"0F",X"07",X"00",X"0F",X"0C",X"07",X"00",
X"0F",X"0C",X"0A",X"0F",X"0F",X"0C",X"0B",X"00",X"0F",X"0C",X"04",X"0B",X"0F",X"0C",X"04",X"0B",
X"0F",X"0C",X"04",X"0B",X"0F",X"0C",X"04",X"0B",X"0F",X"0C",X"04",X"0B",X"0F",X"07",X"00",X"0A",
X"0F",X"0F",X"0C",X"09",X"0F",X"07",X"03",X"0A",X"0F",X"0E",X"0B",X"00",X"0F",X"03",X"0B",X"07",
X"0F",X"0F",X"0B",X"00",X"0F",X"0C",X"07",X"00",X"0F",X"0F",X"07",X"00",X"0F",X"04",X"07",X"00",
X"0F",X"0C",X"0A",X"0F",X"0F",X"00",X"0B",X"00",X"0F",X"04",X"00",X"00",X"0F",X"04",X"00",X"00",
X"0F",X"04",X"00",X"00",X"0F",X"04",X"00",X"00",X"0F",X"04",X"00",X"00",X"0F",X"07",X"00",X"0A",
X"0F",X"0F",X"0C",X"09",X"0F",X"07",X"03",X"0A",X"0F",X"0E",X"0B",X"00",X"0F",X"03",X"0B",X"07",
X"0F",X"0F",X"0B",X"00",X"0F",X"0C",X"00",X"00",X"0F",X"0F",X"07",X"00",X"0F",X"0C",X"07",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,38 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity col2 is
port (
clk : in std_logic;
addr : in std_logic_vector(7 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of col2 is
type rom is array(0 to 255) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"0F",X"0F",X"00",X"01",X"0F",X"09",X"00",X"00",X"0F",X"0F",X"00",X"09",X"0F",X"0F",X"00",X"01",
X"0F",X"0F",X"00",X"00",X"0F",X"0F",X"0C",X"00",X"0F",X"0F",X"0C",X"0E",X"0F",X"05",X"00",X"00",
X"0F",X"01",X"09",X"00",X"0F",X"05",X"01",X"00",X"0F",X"0F",X"00",X"00",X"0F",X"01",X"0E",X"00",
X"0F",X"01",X"0E",X"00",X"0F",X"0F",X"00",X"00",X"0F",X"01",X"00",X"00",X"0F",X"01",X"00",X"00",
X"0F",X"0F",X"00",X"01",X"0F",X"09",X"00",X"00",X"0F",X"00",X"0E",X"00",X"0F",X"00",X"0E",X"00",
X"0F",X"00",X"0E",X"00",X"0F",X"00",X"0E",X"00",X"0F",X"00",X"0E",X"00",X"0F",X"05",X"00",X"00",
X"0F",X"01",X"09",X"00",X"0F",X"05",X"01",X"00",X"0F",X"0F",X"00",X"00",X"0F",X"01",X"0E",X"00",
X"0F",X"01",X"0E",X"00",X"0F",X"0F",X"00",X"00",X"0F",X"01",X"00",X"00",X"0F",X"01",X"00",X"00",
X"0F",X"0F",X"00",X"01",X"0F",X"0F",X"00",X"00",X"0F",X"0F",X"0C",X"00",X"0F",X"0F",X"0C",X"00",
X"0F",X"0F",X"0C",X"00",X"0F",X"0F",X"0C",X"00",X"0F",X"0F",X"0C",X"00",X"0F",X"05",X"00",X"00",
X"0F",X"01",X"09",X"00",X"0F",X"05",X"01",X"00",X"0F",X"0F",X"00",X"00",X"0F",X"01",X"0E",X"00",
X"0F",X"01",X"0E",X"00",X"0F",X"0F",X"00",X"00",X"0F",X"01",X"00",X"00",X"0F",X"07",X"00",X"00",
X"0F",X"0F",X"00",X"01",X"0F",X"09",X"00",X"00",X"0F",X"01",X"00",X"09",X"0F",X"01",X"00",X"09",
X"0F",X"01",X"00",X"09",X"0F",X"01",X"00",X"09",X"0F",X"01",X"00",X"09",X"0F",X"05",X"00",X"00",
X"0F",X"01",X"09",X"00",X"0F",X"05",X"01",X"00",X"0F",X"0F",X"00",X"00",X"0F",X"01",X"0E",X"00",
X"0F",X"01",X"0E",X"00",X"0F",X"0F",X"0E",X"00",X"0F",X"01",X"00",X"00",X"0F",X"01",X"00",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,38 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity col3 is
port (
clk : in std_logic;
addr : in std_logic_vector(7 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of col3 is
type rom is array(0 to 255) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"01",X"07",X"01",X"01",X"01",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06",
X"00",X"01",X"07",X"01",X"01",X"01",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06",
X"00",X"01",X"07",X"01",X"01",X"01",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06",
X"00",X"01",X"07",X"02",X"02",X"02",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06",
X"00",X"01",X"07",X"02",X"02",X"02",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06",
X"00",X"01",X"07",X"02",X"02",X"02",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06",
X"00",X"01",X"07",X"02",X"02",X"02",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06",
X"00",X"01",X"07",X"02",X"02",X"02",X"03",X"02",X"04",X"05",X"04",X"05",X"02",X"05",X"02",X"05",
X"03",X"03",X"02",X"03",X"03",X"04",X"03",X"04",X"04",X"05",X"04",X"05",X"05",X"05",X"05",X"06");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,150 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity obj1 is
port (
clk : in std_logic;
addr : in std_logic_vector(10 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of obj1 is
type rom is array(0 to 2047) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"0F",X"1F",X"3F",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"1F",X"1F",X"3F",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"03",X"07",X"07",
X"00",X"1C",X"1E",X"14",X"00",X"0F",X"07",X"03",X"07",X"07",X"79",X"FE",X"FF",X"CF",X"CF",X"1F",
X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"03",X"01",X"00",X"01",X"01",X"07",X"0F",X"1F",X"27",
X"00",X"00",X"00",X"00",X"00",X"01",X"03",X"07",X"0F",X"00",X"3F",X"3E",X"7F",X"EF",X"CF",X"CF",
X"00",X"00",X"00",X"00",X"00",X"01",X"03",X"07",X"0F",X"00",X"3F",X"3F",X"7F",X"EF",X"CF",X"CF",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"03",X"07",X"3F",X"7F",X"EF",X"CF",X"CF",X"CF",X"EF",X"7F",X"3F",X"3F",X"F9",X"F7",
X"00",X"00",X"03",X"07",X"3F",X"7F",X"EF",X"CF",X"CF",X"CF",X"EF",X"7F",X"3F",X"1F",X"3C",X"3D",
X"00",X"00",X"04",X"1C",X"65",X"E7",X"1F",X"1F",X"1F",X"55",X"4C",X"44",X"04",X"00",X"00",X"00",
X"00",X"00",X"04",X"1C",X"64",X"E1",X"F9",X"E9",X"C1",X"55",X"4C",X"44",X"04",X"00",X"00",X"00",
X"00",X"00",X"00",X"02",X"0E",X"32",X"71",X"1F",X"1F",X"1F",X"2A",X"26",X"22",X"02",X"00",X"00",
X"00",X"00",X"00",X"02",X"0E",X"32",X"70",X"7C",X"74",X"60",X"2A",X"26",X"22",X"02",X"00",X"00",
X"00",X"03",X"07",X"07",X"0F",X"0F",X"1F",X"1F",X"1F",X"0F",X"0F",X"1C",X"3F",X"3F",X"7F",X"7F",
X"00",X"00",X"00",X"78",X"FC",X"FC",X"F8",X"FC",X"7E",X"7F",X"3F",X"3F",X"3F",X"7F",X"7F",X"FF",
X"00",X"00",X"00",X"0C",X"BF",X"FF",X"FF",X"FF",X"7F",X"E7",X"C3",X"C3",X"47",X"1F",X"3F",X"7F",
X"1F",X"0F",X"07",X"03",X"07",X"37",X"3F",X"3F",X"3F",X"37",X"07",X"03",X"07",X"0F",X"1F",X"00",
X"00",X"00",X"00",X"00",X"05",X"06",X"07",X"09",X"0F",X"1F",X"3F",X"7F",X"7F",X"7E",X"78",X"21",
X"00",X"00",X"00",X"00",X"0A",X"0C",X"0F",X"13",X"1F",X"0F",X"07",X"07",X"03",X"03",X"01",X"03",
X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00",X"03",X"03",X"07",X"0D",X"03",X"07",X"03",
X"04",X"1C",X"65",X"E1",X"F9",X"E8",X"C0",X"55",X"4C",X"44",X"04",X"00",X"00",X"00",X"00",X"00",
X"00",X"04",X"1C",X"65",X"E1",X"F9",X"E9",X"C1",X"55",X"4C",X"44",X"04",X"00",X"00",X"00",X"00",
X"00",X"04",X"1C",X"65",X"E1",X"F9",X"E9",X"C1",X"54",X"4C",X"45",X"05",X"01",X"00",X"00",X"00",
X"00",X"02",X"0E",X"32",X"70",X"7C",X"74",X"60",X"2A",X"26",X"22",X"02",X"00",X"00",X"00",X"00",
X"00",X"00",X"02",X"0E",X"32",X"70",X"7C",X"74",X"60",X"2A",X"26",X"22",X"02",X"00",X"00",X"00",
X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"01",X"01",X"03",X"03",X"03",X"01",X"01",X"00",X"00",
X"00",X"02",X"0D",X"06",X"07",X"03",X"03",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"01",X"03",X"07",X"07",X"3F",X"07",X"07",X"07",X"03",X"01",X"00",X"00",X"00",
X"00",X"00",X"01",X"03",X"07",X"0B",X"2A",X"2B",X"2B",X"16",X"0B",X"07",X"03",X"01",X"00",X"00",
X"03",X"07",X"05",X"08",X"1B",X"19",X"05",X"3F",X"3F",X"0F",X"05",X"37",X"3F",X"3F",X"3E",X"1C",
X"00",X"01",X"0D",X"1C",X"61",X"C9",X"ED",X"C7",X"C7",X"ED",X"C9",X"61",X"9C",X"0D",X"01",X"00",
X"03",X"07",X"0F",X"1F",X"3F",X"7F",X"79",X"79",X"7F",X"79",X"79",X"7F",X"3F",X"1F",X"0F",X"07",
X"03",X"07",X"0F",X"1F",X"3F",X"7F",X"79",X"79",X"7F",X"79",X"79",X"7F",X"3F",X"1F",X"0F",X"07",
X"00",X"80",X"00",X"80",X"00",X"85",X"44",X"88",X"70",X"88",X"44",X"85",X"00",X"80",X"00",X"80",
X"54",X"86",X"45",X"89",X"4B",X"B7",X"FF",X"FF",X"FF",X"FF",X"FF",X"BF",X"1F",X"0F",X"00",X"00",
X"00",X"00",X"00",X"01",X"07",X"8F",X"DF",X"FF",X"FF",X"FF",X"B7",X"4B",X"89",X"45",X"86",X"54",
X"00",X"18",X"3F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"B7",X"4B",X"89",X"45",X"86",X"54",
X"00",X"00",X"09",X"00",X"00",X"08",X"08",X"08",X"08",X"04",X"04",X"03",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"07",X"3F",X"3F",X"7F",X"5F",X"EF",X"F6",X"AC",X"CD",X"68",X"23",X"07",
X"07",X"03",X"08",X"1A",X"33",X"2B",X"3D",X"3B",X"17",X"1F",X"0F",X"07",X"01",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"01",X"01",X"03",X"03",X"07",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"03",X"06",X"04",X"04",X"01",X"06",X"0E",
X"00",X"00",X"00",X"00",X"C0",X"78",X"00",X"00",X"00",X"00",X"00",X"17",X"E7",X"87",X"06",X"06",
X"7F",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"41",X"42",X"44",X"48",X"10",X"00",X"0F",X"00",
X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",
X"00",X"0F",X"00",X"13",X"4B",X"53",X"53",X"4B",X"47",X"43",X"43",X"43",X"43",X"40",X"40",X"7F",
X"FF",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"FF",X"00",
X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",
X"00",X"00",X"01",X"01",X"02",X"02",X"02",X"04",X"04",X"04",X"08",X"08",X"08",X"08",X"08",X"08",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"20",X"10",X"08",X"00",X"00",X"00",X"00",X"04",X"18",X"00",X"00",X"00",X"00",X"02",X"00",X"00",
X"17",X"2F",X"1F",X"2F",X"3F",X"7F",X"7F",X"7F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"7F",X"FF",X"FF",X"FF",X"FF",X"7F",X"3F",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"0C",X"0C",X"06",X"06",X"06",X"04",X"08",X"10",X"20",X"00",X"80",X"60",X"18",X"0C",X"00",X"00",
X"00",X"18",X"20",X"40",X"80",X"00",X"00",X"21",X"11",X"09",X"04",X"04",X"06",X"06",X"06",X"06",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"3C",X"1F",X"0F",X"07",X"07",X"07",X"00",X"00",X"00",X"07",X"07",X"07",X"0F",X"1F",X"3C",X"00",
X"01",X"03",X"05",X"06",X"00",X"00",X"00",X"0F",X"1F",X"3F",X"3F",X"3F",X"3E",X"38",X"10",X"00",
X"01",X"03",X"05",X"06",X"00",X"00",X"00",X"03",X"07",X"07",X"07",X"03",X"01",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"03",X"01",X"00",X"01",X"03",X"01",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"03",X"01",X"00",X"00",X"00",X"00",X"00",
X"00",X"04",X"00",X"11",X"02",X"05",X"0D",X"0F",X"0D",X"05",X"42",X"01",X"00",X"04",X"00",X"00",
X"00",X"00",X"00",X"00",X"09",X"02",X"05",X"05",X"05",X"02",X"01",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"01",X"02",X"05",X"0B",X"0B",X"0B",X"0B",X"05",X"02",X"01",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"02",X"05",X"04",X"04",X"05",X"02",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"02",X"05",X"08",X"00",X"00",X"00",X"03",X"01",X"00",X"00",X"05",X"02",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"40",X"E0",X"BF",X"BF",X"E0",X"40",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"03",X"01",X"00",X"00",X"00",
X"80",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"80",X"7F",X"80",
X"00",X"00",X"00",X"00",X"07",X"03",X"0B",X"0C",X"0C",X"0F",X"06",X"06",X"00",X"00",X"00",X"00",
X"00",X"01",X"03",X"01",X"06",X"0D",X"05",X"07",X"02",X"07",X"02",X"02",X"01",X"01",X"00",X"00",
X"00",X"00",X"00",X"00",X"0E",X"1F",X"3B",X"33",X"33",X"39",X"18",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"10",X"29",X"2B",X"2B",X"27",X"27",X"03",X"03",X"02",X"02",X"02",X"03",
X"00",X"00",X"00",X"00",X"00",X"11",X"2B",X"4B",X"47",X"87",X"03",X"01",X"01",X"01",X"01",X"00",
X"07",X"0F",X"1E",X"3F",X"3F",X"7F",X"7E",X"7E",X"7F",X"7E",X"7F",X"3F",X"3F",X"1E",X"0F",X"07",
X"C0",X"C0",X"C1",X"C2",X"CE",X"DC",X"F0",X"F9",X"F9",X"F0",X"DC",X"CE",X"C2",X"C1",X"C0",X"C0",
X"0C",X"0C",X"0C",X"0C",X"0D",X"0D",X"0F",X"0F",X"0F",X"0F",X"0D",X"0D",X"0C",X"0C",X"0C",X"0C",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"80",X"80",X"80",X"C0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E1",X"E3",X"61",X"65",X"60",X"60",X"60",
X"60",X"60",X"60",X"60",X"68",X"88",X"68",X"68",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",
X"60",X"E0",X"E0",X"E1",X"E3",X"E5",X"E6",X"E1",X"C0",X"80",X"80",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"C8",X"C8",X"C8",X"C8",X"C8",X"C8",X"C8",X"C8",X"C8",X"C8",X"C8",X"C8",
X"C8",X"C8",X"C8",X"90",X"30",X"60",X"C0",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"80",X"80",X"80",X"C0",X"E0",X"E0",X"E0",X"E0",X"E1",X"63",X"61",X"65",X"20",X"00",X"00",
X"40",X"60",X"60",X"60",X"68",X"68",X"88",X"68",X"60",X"60",X"60",X"40",X"00",X"00",X"20",X"60",
X"60",X"60",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"9F",X"9F",X"8D",X"06",X"02",X"06",X"00",X"00",
X"40",X"80",X"89",X"01",X"18",X"18",X"4E",X"01",X"00",X"07",X"3C",X"38",X"31",X"00",X"88",X"80",
X"01",X"00",X"00",X"00",X"00",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"32",X"18",X"00",X"00",
X"00",X"7F",X"C0",X"BF",X"BF",X"BF",X"BF",X"BF",X"BF",X"BF",X"BF",X"BF",X"BF",X"C0",X"7F",X"00",
X"00",X"03",X"04",X"08",X"10",X"20",X"20",X"20",X"20",X"20",X"20",X"10",X"08",X"04",X"03",X"00",
X"00",X"00",X"00",X"01",X"02",X"04",X"08",X"08",X"08",X"08",X"04",X"02",X"01",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"04",X"04",X"02",X"01",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"08",X"04",X"00",X"00",X"00",X"18",X"00",X"00",X"00",X"04",X"08",X"00",X"00",
X"7F",X"7F",X"FF",X"FF",X"FF",X"FF",X"CF",X"BF",X"1E",X"1E",X"0C",X"00",X"00",X"00",X"00",X"00",
X"7F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"CF",X"BF",X"1F",X"1E",X"0C",X"00",X"00",X"00",X"00",
X"1F",X"3F",X"3F",X"7F",X"7F",X"7F",X"7F",X"67",X"DF",X"0F",X"0F",X"06",X"00",X"00",X"00",X"00",
X"3F",X"3F",X"3F",X"3F",X"18",X"0C",X"1F",X"1F",X"3E",X"7C",X"F8",X"00",X"A0",X"F0",X"E0",X"00",
X"63",X"77",X"7F",X"7F",X"3F",X"1F",X"07",X"0F",X"1F",X"3F",X"7E",X"00",X"A0",X"F0",X"00",X"00",
X"CF",X"EF",X"7F",X"3E",X"3F",X"00",X"0F",X"07",X"03",X"01",X"00",X"00",X"00",X"00",X"00",X"00",
X"CF",X"EF",X"7F",X"3F",X"3F",X"00",X"0F",X"07",X"03",X"01",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"78",X"F0",X"F0",X"D0",X"80",X"00",X"00",X"00",X"00",X"20",X"70",X"78",X"7E",X"3E",X"1C",
X"F7",X"E7",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"39",X"39",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"30",X"38",X"38",X"7C",X"7C",X"1E",X"1F",X"0F",X"0F",X"0F",X"07",X"07",X"27",X"8B",
X"FB",X"8B",X"2F",X"0F",X"0F",X"1F",X"3F",X"3E",X"FC",X"F8",X"70",X"F0",X"60",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"06",X"06",X"0C",X"0E",X"0F",X"0F",X"07",X"03",X"00",
X"7F",X"67",X"7F",X"3F",X"0F",X"7F",X"FF",X"FF",X"7E",X"F0",X"20",X"00",X"00",X"00",X"00",X"00",
X"FF",X"FF",X"EF",X"C7",X"CF",X"47",X"2F",X"7E",X"7C",X"7C",X"2E",X"3C",X"0C",X"00",X"00",X"00",
X"CF",X"CF",X"EF",X"CF",X"CF",X"7F",X"3F",X"5F",X"C7",X"E7",X"7F",X"FF",X"FF",X"FF",X"BF",X"0E",
X"00",X"00",X"00",X"01",X"03",X"07",X"07",X"0F",X"0F",X"0F",X"0C",X"07",X"00",X"00",X"00",X"00",
X"01",X"03",X"03",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"0F",X"0F",X"2F",X"8B",X"FB",
X"FB",X"03",X"27",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"07",X"0F",X"0F",X"07",X"0F",X"06",
X"00",X"00",X"30",X"38",X"38",X"7C",X"7C",X"1E",X"1F",X"0F",X"0F",X"0F",X"07",X"07",X"27",X"8B",
X"07",X"08",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"08",X"07",X"00",X"00",X"0F",X"04",X"00",
X"07",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"07",X"00",X"06",X"09",X"08",X"08",X"04",X"00",
X"07",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"07",X"00",X"08",X"0D",X"0B",X"09",X"08",X"00",
X"07",X"08",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"08",X"07",X"00",X"0F",X"04",X"02",X"01",
X"07",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"07",X"00",X"06",X"09",X"09",X"09",X"06",X"00",
X"07",X"08",X"07",X"00",X"07",X"08",X"07",X"00",X"06",X"09",X"08",X"04",X"00",X"0F",X"04",X"00",
X"07",X"08",X"07",X"00",X"07",X"08",X"07",X"00",X"04",X"09",X"09",X"07",X"00",X"0F",X"04",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,150 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity obj2 is
port (
clk : in std_logic;
addr : in std_logic_vector(10 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of obj2 is
type rom is array(0 to 2047) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"18",X"3B",X"3F",X"3F",X"3F",X"9F",X"FD",
X"00",X"00",X"00",X"06",X"0F",X"1F",X"1F",X"3D",X"3C",X"3D",X"3F",X"1F",X"1A",X"80",X"C0",X"E3",
X"00",X"00",X"00",X"00",X"00",X"18",X"0C",X"1C",X"1C",X"3C",X"7E",X"FF",X"FF",X"FD",X"FC",X"DE",
X"00",X"00",X"00",X"00",X"1C",X"9C",X"CC",X"CE",X"DE",X"DE",X"DC",X"EC",X"4C",X"84",X"80",X"C0",
X"00",X"00",X"00",X"00",X"00",X"80",X"CC",X"CE",X"EE",X"E7",X"EF",X"9F",X"1E",X"DE",X"DF",X"EF",
X"00",X"00",X"00",X"0C",X"7E",X"FF",X"FF",X"E4",X"C1",X"E5",X"47",X"87",X"83",X"D0",X"D8",X"D4",
X"00",X"00",X"00",X"0C",X"7E",X"FF",X"FF",X"E4",X"C1",X"E5",X"47",X"87",X"83",X"D0",X"D8",X"D4",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"80",X"C0",X"E0",X"E0",X"E0",X"F0",X"F0",X"F0",X"FC",X"FE",X"FE",X"FC",X"FF",X"FF",
X"00",X"00",X"80",X"C0",X"E0",X"E0",X"E0",X"F0",X"F0",X"F0",X"FC",X"FE",X"FE",X"7E",X"FE",X"FC",
X"00",X"06",X"0F",X"1F",X"FD",X"FC",X"F8",X"F8",X"B8",X"FC",X"7C",X"1C",X"1C",X"3C",X"00",X"00",
X"00",X"06",X"0F",X"1F",X"FD",X"FC",X"F8",X"F8",X"F8",X"FC",X"FC",X"DC",X"1C",X"1C",X"00",X"00",
X"1E",X"1C",X"1C",X"1C",X"FC",X"FC",X"F8",X"FB",X"FF",X"DF",X"FD",X"38",X"00",X"00",X"00",X"00",
X"1E",X"1C",X"1C",X"1C",X"FC",X"FC",X"F8",X"FB",X"FF",X"FF",X"FD",X"78",X"00",X"00",X"00",X"00",
X"06",X"0E",X"9E",X"9C",X"0E",X"1E",X"8E",X"CE",X"C6",X"C4",X"80",X"00",X"00",X"E0",X"F4",X"E4",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"E0",X"E0",X"F0",X"EC",X"0B",
X"00",X"00",X"00",X"00",X"03",X"87",X"8F",X"DF",X"EF",X"F6",X"F2",X"F0",X"E0",X"C0",X"80",X"C0",
X"80",X"C0",X"C0",X"E0",X"E0",X"E0",X"10",X"C0",X"10",X"E0",X"E0",X"E0",X"C0",X"C0",X"80",X"00",
X"00",X"00",X"00",X"00",X"08",X"18",X"F8",X"FC",X"FC",X"FC",X"FC",X"FC",X"E8",X"E0",X"E0",X"E0",
X"00",X"00",X"00",X"00",X"10",X"38",X"F8",X"F8",X"F8",X"F8",X"F8",X"FC",X"FC",X"FC",X"EC",X"C4",
X"03",X"07",X"0D",X"08",X"00",X"00",X"03",X"9F",X"1D",X"F8",X"F8",X"F8",X"F8",X"F0",X"F0",X"A0",
X"00",X"F0",X"F8",X"FF",X"FF",X"FF",X"DD",X"F8",X"FE",X"FE",X"DE",X"02",X"00",X"00",X"00",X"00",
X"1C",X"1E",X"FC",X"FC",X"FC",X"F8",X"F0",X"D1",X"F3",X"F9",X"F9",X"00",X"00",X"00",X"00",X"00",
X"00",X"38",X"FF",X"FF",X"FF",X"FF",X"FD",X"EC",X"FC",X"FC",X"FE",X"DE",X"CC",X"98",X"00",X"00",
X"0E",X"1E",X"3C",X"FC",X"FC",X"FF",X"FF",X"EF",X"FF",X"7D",X"30",X"10",X"00",X"00",X"00",X"00",
X"1C",X"1A",X"3C",X"FC",X"FC",X"FC",X"FE",X"FF",X"FF",X"DF",X"FD",X"CC",X"C0",X"40",X"00",X"00",
X"00",X"78",X"FC",X"FC",X"FC",X"F8",X"F8",X"F0",X"C0",X"E0",X"F0",X"F0",X"F0",X"F0",X"E0",X"00",
X"30",X"58",X"E8",X"EC",X"74",X"B4",X"B4",X"B4",X"B4",X"AC",X"AC",X"A8",X"D0",X"60",X"00",X"00",
X"00",X"00",X"00",X"E0",X"F0",X"F8",X"FC",X"FC",X"FC",X"FC",X"F8",X"F0",X"E0",X"00",X"00",X"00",
X"00",X"F0",X"F8",X"FC",X"FE",X"FE",X"3E",X"DE",X"DE",X"3E",X"FE",X"FE",X"FC",X"F8",X"F0",X"00",
X"E0",X"F0",X"50",X"08",X"6C",X"CC",X"A0",X"FE",X"FE",X"F8",X"D0",X"FB",X"FF",X"FF",X"3E",X"0C",
X"38",X"BC",X"9C",X"DC",X"FC",X"BC",X"F8",X"F8",X"F8",X"FC",X"BE",X"FE",X"DE",X"8C",X"8C",X"00",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"DF",X"87",X"97",X"FF",X"D3",X"C3",X"D3",X"FB",X"D3",X"C3",X"D3",X"FF",X"97",X"87",X"DD",
X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"40",X"00",X"40",X"00",X"00",X"00",X"00",
X"C0",X"80",X"80",X"80",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"B8",X"18",X"08",
X"02",X"06",X"0E",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"F8",X"E0",X"C0",X"C0",X"C0",
X"10",X"30",X"70",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"80",X"80",X"80",X"C0",
X"00",X"00",X"00",X"00",X"00",X"04",X"04",X"04",X"04",X"08",X"0C",X"0C",X"14",X"1C",X"1C",X"0C",
X"00",X"00",X"00",X"E0",X"F0",X"F8",X"FC",X"FC",X"FE",X"BE",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FE",X"FF",X"FF",X"3F",X"7F",X"3F",X"9F",X"EE",X"EE",X"FE",X"FE",X"FC",X"FC",X"FC",X"38",X"00",
X"00",X"00",X"00",X"30",X"78",X"FC",X"FC",X"DE",X"9E",X"DF",X"DF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"00",X"00",X"00",X"03",X"3C",X"60",X"C0",X"80",X"00",X"00",X"00",X"00",X"01",X"03",X"E0",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"E0",X"70",X"B0",X"F8",X"18",X"00",
X"FF",X"00",X"00",X"00",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"FF",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"FF",X"00",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"00",X"00",X"FF",
X"FE",X"C2",X"C2",X"C2",X"C2",X"C2",X"C2",X"C2",X"C2",X"C2",X"E2",X"12",X"0A",X"04",X"F8",X"00",
X"00",X"F8",X"04",X"0A",X"12",X"0A",X"7A",X"72",X"72",X"72",X"72",X"72",X"72",X"72",X"72",X"FE",
X"40",X"80",X"00",X"00",X"00",X"42",X"33",X"07",X"07",X"07",X"07",X"07",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"70",X"F8",X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",
X"3F",X"7F",X"3E",X"19",X"07",X"03",X"00",X"00",X"00",X"00",X"40",X"80",X"00",X"00",X"00",X"00",
X"FC",X"F8",X"F8",X"F4",X"F0",X"F0",X"F0",X"E8",X"E0",X"E0",X"E0",X"C0",X"C0",X"C0",X"C0",X"80",
X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"0C",X"0E",X"0F",X"0F",X"0F",X"07",X"07",X"03",X"03",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"10",X"70",X"70",X"F0",X"F0",X"F0",X"F0",X"E0",X"C0",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"80",X"80",X"00",X"18",X"14",X"0E",X"14",X"18",X"00",X"80",X"80",X"00",X"00",X"00",
X"C0",X"80",X"00",X"00",X"00",X"08",X"08",X"1C",X"80",X"80",X"80",X"00",X"00",X"00",X"00",X"00",
X"C0",X"80",X"00",X"00",X"00",X"10",X"10",X"38",X"80",X"E0",X"FC",X"F8",X"F0",X"00",X"00",X"00",
X"00",X"08",X"06",X"01",X"06",X"18",X"FE",X"7F",X"F3",X"E3",X"E7",X"C3",X"C7",X"83",X"87",X"02",
X"04",X"02",X"01",X"02",X"04",X"1A",X"3F",X"FF",X"7B",X"F7",X"FB",X"77",X"7B",X"77",X"7B",X"32",
X"00",X"08",X"20",X"C0",X"A8",X"D0",X"D8",X"F8",X"D8",X"D4",X"A0",X"D0",X"00",X"08",X"40",X"00",
X"00",X"00",X"00",X"20",X"80",X"40",X"A0",X"A0",X"A8",X"40",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"80",X"40",X"A0",X"D0",X"D0",X"D0",X"D0",X"A0",X"40",X"80",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"80",X"40",X"A0",X"20",X"20",X"A0",X"40",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"C0",X"00",X"C0",X"C0",X"40",X"00",X"00",X"C0",X"C0",X"C0",X"00",X"C0",X"C0",X"40",X"00",X"40",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"06",X"0F",X"FF",X"FF",X"0B",X"06",X"00",X"00",X"00",X"00",X"00",
X"01",X"07",X"0F",X"0F",X"1F",X"1D",X"1D",X"1F",X"0F",X"0F",X"0F",X"0D",X"0C",X"0C",X"0E",X"0E",
X"01",X"07",X"0F",X"0F",X"1F",X"1D",X"1D",X"3F",X"7F",X"EF",X"C7",X"81",X"80",X"00",X"00",X"00",
X"01",X"FF",X"F7",X"FF",X"F7",X"F7",X"FF",X"F7",X"F7",X"FF",X"F7",X"F7",X"FF",X"01",X"FE",X"01",
X"00",X"01",X"07",X"0D",X"B8",X"E4",X"84",X"CA",X"CA",X"C4",X"E4",X"B8",X"0D",X"07",X"01",X"00",
X"E0",X"F0",X"F0",X"F0",X"F0",X"70",X"F0",X"F0",X"F0",X"70",X"F0",X"F0",X"70",X"F0",X"F0",X"60",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"20",X"60",X"00",X"00",X"00",
X"00",X"00",X"1C",X"3E",X"F0",X"E0",X"80",X"00",X"80",X"80",X"E0",X"F0",X"FE",X"FE",X"DC",X"88",
X"00",X"00",X"00",X"00",X"00",X"FC",X"FE",X"A8",X"54",X"FE",X"FE",X"FC",X"60",X"60",X"60",X"C0",
X"80",X"00",X"00",X"00",X"80",X"00",X"04",X"02",X"FC",X"00",X"00",X"80",X"00",X"00",X"00",X"80",
X"03",X"03",X"83",X"43",X"73",X"3B",X"0F",X"8F",X"8F",X"0F",X"3B",X"73",X"43",X"83",X"03",X"03",
X"03",X"63",X"93",X"93",X"9B",X"0B",X"0F",X"6F",X"6F",X"0F",X"0B",X"9B",X"93",X"93",X"63",X"03",
X"C3",X"C3",X"DB",X"DB",X"FF",X"E7",X"E7",X"FF",X"FF",X"E7",X"E7",X"FF",X"DB",X"DB",X"C3",X"C3",
X"1B",X"1B",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1F",X"1B",X"1B",
X"00",X"00",X"00",X"00",X"01",X"07",X"1F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",
X"7F",X"3F",X"3F",X"1F",X"0F",X"46",X"52",X"50",X"54",X"54",X"14",X"44",X"54",X"40",X"50",X"40",
X"50",X"01",X"D0",X"C2",X"C0",X"C4",X"C0",X"C8",X"00",X"50",X"E0",X"D8",X"E8",X"F0",X"E0",X"C0",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"07",X"1F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",
X"7F",X"3F",X"3F",X"1F",X"0F",X"46",X"52",X"50",X"54",X"54",X"14",X"44",X"54",X"40",X"50",X"40",
X"50",X"01",X"10",X"02",X"18",X"10",X"18",X"2C",X"BE",X"3E",X"00",X"00",X"00",X"00",X"00",X"00",
X"0C",X"1E",X"03",X"93",X"CB",X"6F",X"3F",X"DF",X"1F",X"3F",X"7F",X"EF",X"CB",X"A3",X"1E",X"0C",
X"00",X"08",X"00",X"64",X"CE",X"06",X"06",X"06",X"06",X"26",X"46",X"06",X"0E",X"04",X"30",X"00",
X"00",X"E0",X"10",X"E8",X"F4",X"F4",X"FB",X"FB",X"FB",X"FB",X"F4",X"F4",X"E8",X"10",X"E0",X"00",
X"00",X"C0",X"20",X"10",X"08",X"04",X"04",X"04",X"04",X"04",X"04",X"08",X"10",X"20",X"C0",X"00",
X"00",X"00",X"00",X"80",X"40",X"20",X"10",X"10",X"10",X"10",X"20",X"40",X"80",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"80",X"40",X"20",X"20",X"40",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"80",X"88",X"10",X"00",X"00",X"00",X"0C",X"00",X"00",X"00",X"10",X"88",X"80",X"00",
X"F0",X"F9",X"FF",X"3F",X"8F",X"DF",X"2D",X"F0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"E7",X"F7",X"F7",X"7F",X"7D",X"B9",X"BC",X"1D",X"1F",X"0E",X"00",X"00",X"00",X"00",X"00",X"00",
X"DE",X"9F",X"9F",X"9F",X"CF",X"E1",X"E1",X"80",X"F0",X"F8",X"FD",X"7F",X"1F",X"0E",X"00",X"00",
X"D0",X"D8",X"A0",X"04",X"0C",X"3E",X"BF",X"1F",X"1F",X"0E",X"00",X"00",X"00",X"00",X"00",X"00",
X"E6",X"E0",X"C0",X"C0",X"B8",X"78",X"F0",X"F0",X"E0",X"80",X"00",X"00",X"00",X"00",X"00",X"00",
X"D4",X"C1",X"83",X"87",X"47",X"E5",X"C1",X"E4",X"FF",X"FF",X"7E",X"0C",X"00",X"00",X"00",X"00",
X"D4",X"C1",X"83",X"87",X"47",X"E5",X"C1",X"E4",X"FF",X"FF",X"7E",X"0C",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"BF",X"1B",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"DE",X"CF",X"C7",X"0F",X"0E",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"1C",X"3E",X"BE",X"FE",X"FC",X"E4",X"C2",X"D0",X"D8",
X"D4",X"D4",X"C2",X"E6",X"FC",X"DC",X"3C",X"3E",X"1E",X"0C",X"18",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"5E",X"3F",X"07",X"05",X"09",X"7B",X"01",X"3D",X"7F",X"7F",X"BF",X"FF",X"FF",X"F0",X"F8",X"70",
X"EE",X"CE",X"DE",X"DE",X"DC",X"8C",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"97",X"9F",X"DF",X"DF",X"CD",X"C0",X"88",X"1E",X"3E",X"3E",X"1E",X"02",X"00",X"00",X"00",X"00",
X"F0",X"F2",X"F3",X"E3",X"E3",X"C7",X"8F",X"AD",X"E1",X"C0",X"C0",X"C0",X"80",X"80",X"00",X"00",
X"00",X"00",X"00",X"C0",X"E0",X"D0",X"D0",X"D0",X"90",X"20",X"40",X"80",X"00",X"00",X"00",X"00",
X"80",X"00",X"00",X"80",X"00",X"00",X"00",X"00",X"85",X"CF",X"CF",X"FF",X"C6",X"C2",X"D0",X"D8",
X"D4",X"D4",X"C2",X"C6",X"FF",X"EF",X"CF",X"85",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"1C",X"3E",X"BE",X"FE",X"FC",X"E4",X"C2",X"D0",X"D8",
X"C0",X"20",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"C0",X"00",X"20",X"E0",X"20",X"00",
X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"20",X"20",X"A0",X"60",X"20",X"00",
X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"20",X"00",
X"C0",X"20",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"C0",X"00",X"E0",X"40",X"40",X"C0",
X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"C0",X"00",
X"C0",X"20",X"C0",X"00",X"C0",X"20",X"C0",X"00",X"20",X"20",X"A0",X"60",X"00",X"E0",X"00",X"00",
X"C0",X"20",X"C0",X"00",X"C0",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"E0",X"00",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,150 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity obj3 is
port (
clk : in std_logic;
addr : in std_logic_vector(10 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of obj3 is
type rom is array(0 to 2047) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"07",X"00",X"00",X"18",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"07",X"08",X"00",X"00",X"18",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"1C",X"1E",X"14",X"00",X"0C",X"00",X"00",X"00",X"08",X"1E",X"2F",X"7F",X"7F",X"DD",X"B8",
X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"02",X"01",X"00",X"00",X"00",X"07",X"05",X"0C",X"0C",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"1F",X"07",X"35",X"1B",X"3B",X"67",X"77",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"1F",X"07",X"35",X"1A",X"3E",X"66",X"70",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"07",X"35",X"1B",X"3B",X"67",X"77",X"67",X"3B",X"1B",X"35",X"07",X"F0",X"D6",
X"00",X"00",X"00",X"07",X"35",X"1B",X"3B",X"67",X"77",X"67",X"3B",X"1B",X"35",X"07",X"30",X"39",
X"00",X"00",X"04",X"1C",X"3D",X"3F",X"FF",X"FF",X"FF",X"3E",X"1E",X"1E",X"1C",X"08",X"00",X"00",
X"00",X"00",X"04",X"1C",X"3C",X"3F",X"3F",X"3E",X"3E",X"3F",X"1E",X"1E",X"1C",X"08",X"00",X"00",
X"00",X"00",X"00",X"02",X"0E",X"1E",X"1F",X"FF",X"FF",X"FF",X"1F",X"0F",X"0F",X"0E",X"04",X"00",
X"00",X"00",X"00",X"02",X"0E",X"1E",X"1F",X"1F",X"1F",X"1F",X"1F",X"0F",X"0F",X"0E",X"04",X"00",
X"00",X"03",X"07",X"06",X"07",X"02",X"00",X"02",X"00",X"00",X"0C",X"0F",X"07",X"03",X"17",X"3F",
X"00",X"00",X"00",X"38",X"7C",X"7C",X"38",X"10",X"00",X"00",X"00",X"00",X"00",X"30",X"3E",X"07",
X"00",X"00",X"00",X"00",X"80",X"80",X"C0",X"C0",X"60",X"E0",X"C0",X"C0",X"47",X"1F",X"09",X"3C",
X"00",X"0C",X"00",X"03",X"10",X"09",X"01",X"00",X"01",X"09",X"10",X"03",X"00",X"0C",X"00",X"00",
X"04",X"07",X"07",X"07",X"02",X"01",X"06",X"09",X"0F",X"06",X"00",X"00",X"12",X"12",X"10",X"00",
X"00",X"01",X"03",X"07",X"05",X"03",X"0C",X"12",X"1E",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"01",X"05",X"0B",X"1B",X"1F",X"3F",X"5F",X"3C",X"1D",X"09",X"02",X"04",X"00",X"00",
X"00",X"00",X"5B",X"DF",X"C7",X"D7",X"FF",X"6B",X"52",X"58",X"18",X"08",X"C1",X"22",X"14",X"08",
X"00",X"00",X"00",X"5A",X"DE",X"C7",X"D6",X"FE",X"6A",X"52",X"58",X"18",X"08",X"00",X"00",X"00",
X"00",X"00",X"00",X"5A",X"DE",X"C6",X"D7",X"FF",X"6A",X"52",X"58",X"18",X"08",X"01",X"03",X"07",
X"00",X"00",X"00",X"2C",X"6F",X"63",X"6B",X"7F",X"35",X"29",X"2C",X"0C",X"04",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"2D",X"6F",X"63",X"6B",X"7F",X"35",X"29",X"2C",X"0C",X"04",X"01",X"03",
X"00",X"00",X"00",X"18",X"0C",X"0C",X"05",X"03",X"06",X"0F",X"1F",X"1B",X"01",X"01",X"00",X"00",
X"00",X"0C",X"0E",X"07",X"07",X"03",X"03",X"01",X"01",X"01",X"00",X"00",X"00",X"01",X"03",X"00",
X"00",X"00",X"00",X"10",X"30",X"30",X"18",X"00",X"0B",X"13",X"31",X"30",X"10",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"15",X"15",X"55",X"55",X"3D",X"15",X"01",X"00",X"00",X"00",X"00",
X"03",X"07",X"02",X"07",X"04",X"46",X"E3",X"D2",X"42",X"07",X"07",X"07",X"07",X"03",X"02",X"00",
X"03",X"06",X"02",X"20",X"5C",X"F7",X"D2",X"FA",X"FA",X"D2",X"F7",X"5C",X"A0",X"02",X"06",X"03",
X"03",X"07",X"00",X"04",X"0F",X"1F",X"1F",X"0D",X"07",X"0D",X"1F",X"1F",X"0F",X"04",X"00",X"07",
X"03",X"07",X"00",X"04",X"0F",X"1F",X"1F",X"0D",X"07",X"0D",X"1F",X"1F",X"0F",X"05",X"00",X"07",
X"80",X"00",X"80",X"00",X"80",X"7A",X"BB",X"77",X"8F",X"77",X"BB",X"7A",X"80",X"00",X"80",X"00",
X"AB",X"79",X"BA",X"76",X"B4",X"48",X"00",X"00",X"00",X"00",X"00",X"40",X"20",X"10",X"0F",X"00",
X"00",X"00",X"01",X"06",X"08",X"10",X"20",X"00",X"00",X"00",X"48",X"B4",X"76",X"BA",X"79",X"AB",
X"18",X"24",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"48",X"B4",X"76",X"BA",X"79",X"AB",
X"00",X"01",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"07",X"07",X"03",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"38",X"3C",X"7C",X"7C",X"FC",X"FD",X"FF",X"FC",X"78",X"20",X"00",
X"06",X"00",X"08",X"1E",X"3F",X"3F",X"3F",X"3F",X"1F",X"1F",X"0F",X"06",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"03",X"07",X"07",X"07",X"03",X"01",X"01",
X"00",X"00",X"00",X"00",X"C0",X"F8",X"FE",X"FF",X"FF",X"FF",X"FF",X"EE",X"FF",X"FC",X"F0",X"00",
X"FF",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C1",X"C2",X"C4",X"C8",X"F0",X"70",X"3F",X"1F",
X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",
X"1F",X"3F",X"70",X"F0",X"C9",X"D0",X"D1",X"C8",X"C4",X"C1",X"C0",X"C1",X"C0",X"C0",X"C0",X"FF",
X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",
X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",
X"00",X"00",X"01",X"01",X"03",X"03",X"03",X"07",X"07",X"07",X"0F",X"0F",X"0F",X"0F",X"0C",X"08",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"20",X"10",X"08",X"00",X"00",X"00",X"00",X"04",X"18",X"00",X"00",X"00",X"00",X"02",X"00",X"00",
X"68",X"50",X"60",X"50",X"C0",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"80",X"60",X"C8",X"F4",
X"FE",X"FF",X"FF",X"F1",X"E0",X"C0",X"60",X"31",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"FC",X"FC",X"FE",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",X"1F",X"0E",X"00",X"00",
X"00",X"1C",X"3E",X"7F",X"FF",X"FF",X"FF",X"FE",X"FE",X"FE",X"FF",X"FF",X"FE",X"FE",X"FE",X"FE",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"10",X"08",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"00",
X"00",X"04",X"00",X"02",X"00",X"48",X"7F",X"7F",X"7F",X"48",X"00",X"02",X"00",X"04",X"00",X"00",
X"00",X"00",X"0C",X"0F",X"0F",X"07",X"03",X"00",X"00",X"05",X"14",X"10",X"11",X"01",X"03",X"01",
X"00",X"00",X"0C",X"0F",X"0F",X"07",X"03",X"00",X"00",X"02",X"00",X"00",X"02",X"03",X"06",X"02",
X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"01",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"04",X"00",X"10",X"01",X"03",X"02",X"1F",X"02",X"03",X"41",X"00",X"00",X"04",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"03",X"02",X"09",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"03",X"44",X"08",X"11",X"23",X"26",X"27",X"27",X"26",X"23",X"11",X"08",X"04",X"03",X"08",
X"00",X"10",X"00",X"00",X"01",X"03",X"06",X"07",X"07",X"06",X"03",X"01",X"00",X"10",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"07",X"0F",X"0F",X"0E",X"0F",X"0F",X"0F",X"0F",X"0E",X"0F",X"0F",X"0F",X"0E",X"0F",X"0F",X"07",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"5F",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"03",X"01",X"00",X"00",X"00",
X"80",X"F7",X"F7",X"F4",X"F4",X"F7",X"F4",X"F4",X"F7",X"F4",X"F5",X"F4",X"F7",X"FF",X"F7",X"80",
X"00",X"00",X"00",X"07",X"0F",X"0F",X"1C",X"1B",X"1B",X"1C",X"0F",X"0F",X"07",X"00",X"00",X"00",
X"00",X"00",X"00",X"02",X"01",X"02",X"0A",X"08",X"05",X"00",X"05",X"05",X"02",X"00",X"01",X"00",
X"00",X"00",X"00",X"00",X"0E",X"1F",X"3B",X"33",X"33",X"39",X"18",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"01",X"06",X"00",X"03",X"02",X"02",X"02",X"03",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"01",X"06",X"00",X"01",X"01",X"01",X"01",X"00",
X"07",X"0F",X"18",X"30",X"20",X"47",X"1E",X"FE",X"FE",X"1E",X"47",X"20",X"30",X"18",X"0F",X"07",
X"00",X"00",X"01",X"03",X"0F",X"1C",X"30",X"26",X"26",X"30",X"1C",X"0F",X"03",X"01",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"01",X"03",X"02",X"02",X"03",X"01",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"40",X"42",X"02",X"06",X"07",X"4F",X"4F",
X"4F",X"4F",X"4F",X"4F",X"4F",X"FF",X"DF",X"4F",X"43",X"41",X"40",X"40",X"40",X"40",X"00",X"00",
X"00",X"C0",X"C0",X"C1",X"83",X"83",X"81",X"80",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"30",X"30",X"30",X"30",X"34",X"34",X"36",X"36",X"37",X"37",X"36",X"37",X"37",
X"37",X"37",X"37",X"6F",X"CF",X"9E",X"3F",X"7F",X"FC",X"F8",X"F0",X"E0",X"C0",X"80",X"80",X"80",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"80",X"80",X"80",X"80",X"80",X"C0",X"40",X"40",X"00",X"02",X"02",X"06",X"07",X"0F",X"0F",
X"0F",X"0F",X"0F",X"0F",X"0F",X"9F",X"FF",X"0F",X"03",X"01",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"40",X"40",X"40",X"00",X"00",X"1F",X"1E",X"0E",X"04",X"04",X"00",X"00",X"00",
X"40",X"80",X"89",X"01",X"10",X"18",X"4E",X"01",X"00",X"07",X"1C",X"38",X"31",X"00",X"88",X"80",
X"01",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"22",X"10",X"00",X"00",
X"00",X"00",X"3F",X"40",X"40",X"40",X"4C",X"53",X"53",X"4C",X"40",X"40",X"40",X"3F",X"00",X"00",
X"00",X"00",X"03",X"04",X"08",X"10",X"10",X"10",X"10",X"10",X"10",X"08",X"04",X"03",X"00",X"00",
X"00",X"00",X"00",X"00",X"01",X"02",X"04",X"04",X"04",X"04",X"02",X"01",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"02",X"02",X"01",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"10",X"00",X"00",X"00",X"00",X"00",X"60",X"00",X"00",X"00",X"00",X"00",X"10",X"00",
X"18",X"0C",X"27",X"6F",X"7F",X"7D",X"5D",X"3D",X"0E",X"0E",X"0C",X"00",X"00",X"00",X"00",X"00",
X"18",X"0E",X"27",X"6F",X"7E",X"7D",X"7D",X"5D",X"3D",X"0D",X"0E",X"0C",X"00",X"00",X"00",X"00",
X"0C",X"0C",X"07",X"13",X"37",X"3F",X"3C",X"2C",X"1E",X"06",X"07",X"06",X"00",X"00",X"00",X"00",
X"58",X"19",X"3B",X"36",X"1F",X"03",X"00",X"00",X"00",X"00",X"C0",X"00",X"A0",X"F0",X"E0",X"00",
X"34",X"3C",X"3E",X"1B",X"01",X"07",X"06",X"00",X"00",X"00",X"60",X"00",X"A0",X"F0",X"00",X"00",
X"67",X"3B",X"1B",X"35",X"07",X"1F",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"66",X"3E",X"1A",X"35",X"07",X"1F",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"78",X"F0",X"F0",X"D0",X"80",X"00",X"00",X"00",X"00",X"20",X"70",X"78",X"7E",X"3E",X"1C",
X"B5",X"E7",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"29",X"39",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"30",X"38",X"28",X"58",X"70",X"00",X"00",X"00",X"07",X"7C",X"F8",X"F8",X"D8",X"74",
X"04",X"7C",X"58",X"78",X"0C",X"07",X"00",X"00",X"E0",X"B0",X"50",X"F0",X"60",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"03",X"03",X"07",X"03",X"00",
X"3E",X"2C",X"3C",X"1D",X"0F",X"67",X"B0",X"D8",X"58",X"F0",X"20",X"00",X"00",X"00",X"00",X"00",
X"2F",X"7C",X"7C",X"6C",X"75",X"6F",X"17",X"01",X"00",X"04",X"0E",X"0C",X"0C",X"00",X"00",X"00",
X"5E",X"76",X"36",X"56",X"7E",X"3C",X"09",X"5F",X"C7",X"E0",X"40",X"80",X"80",X"80",X"80",X"00",
X"00",X"00",X"00",X"01",X"03",X"07",X"07",X"0F",X"0F",X"0F",X"0F",X"07",X"00",X"00",X"00",X"00",
X"01",X"03",X"03",X"07",X"01",X"00",X"00",X"00",X"00",X"00",X"07",X"0C",X"78",X"59",X"75",X"05",
X"05",X"FD",X"D9",X"F8",X"FC",X"77",X"00",X"00",X"00",X"00",X"00",X"0E",X"0B",X"05",X"0F",X"06",
X"00",X"00",X"30",X"38",X"28",X"58",X"70",X"00",X"00",X"00",X"07",X"7C",X"F8",X"F8",X"D8",X"74",
X"07",X"08",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"08",X"07",X"00",X"00",X"0F",X"04",X"00",
X"07",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"07",X"00",X"06",X"09",X"08",X"08",X"04",X"00",
X"07",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"07",X"00",X"08",X"0D",X"0B",X"09",X"08",X"00",
X"07",X"08",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"08",X"07",X"00",X"0F",X"04",X"02",X"01",
X"07",X"08",X"08",X"07",X"00",X"07",X"08",X"08",X"07",X"00",X"06",X"09",X"09",X"09",X"06",X"00",
X"07",X"08",X"07",X"00",X"07",X"08",X"07",X"00",X"06",X"09",X"08",X"04",X"00",X"0F",X"04",X"00",
X"07",X"08",X"07",X"00",X"07",X"08",X"07",X"00",X"04",X"09",X"09",X"07",X"00",X"0F",X"04",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,150 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity obj4 is
port (
clk : in std_logic;
addr : in std_logic_vector(10 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of obj4 is
type rom is array(0 to 2047) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"20",X"C1",X"C0",X"C0",X"C1",X"61",X"01",
X"00",X"00",X"00",X"06",X"0B",X"01",X"01",X"01",X"00",X"C1",X"C3",X"E0",X"E4",X"7C",X"3C",X"1D",
X"00",X"00",X"00",X"00",X"00",X"18",X"0C",X"1C",X"1C",X"10",X"06",X"01",X"01",X"09",X"04",X"20",
X"00",X"00",X"00",X"00",X"0C",X"0C",X"04",X"06",X"02",X"00",X"20",X"10",X"B0",X"F8",X"FC",X"BC",
X"00",X"00",X"00",X"00",X"00",X"80",X"44",X"C6",X"02",X"03",X"01",X"60",X"E0",X"A0",X"A0",X"50",
X"00",X"00",X"00",X"0C",X"06",X"0F",X"0F",X"04",X"00",X"10",X"B8",X"F8",X"FC",X"AE",X"A6",X"AA",
X"00",X"00",X"00",X"0C",X"06",X"0F",X"0F",X"04",X"00",X"10",X"B8",X"F8",X"FC",X"AE",X"A6",X"AA",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"30",X"98",X"9C",X"9E",X"8E",X"8F",X"8F",X"83",X"80",X"90",X"00",X"20",X"40",
X"00",X"00",X"00",X"30",X"98",X"9C",X"9E",X"8E",X"8F",X"8F",X"83",X"80",X"88",X"08",X"10",X"80",
X"00",X"06",X"07",X"03",X"C1",X"C0",X"C0",X"00",X"40",X"00",X"00",X"00",X"1C",X"3C",X"00",X"00",
X"00",X"06",X"07",X"03",X"C1",X"E0",X"E0",X"C0",X"C0",X"C0",X"C0",X"C0",X"FC",X"FC",X"E0",X"C0",
X"1E",X"1C",X"00",X"00",X"C0",X"C0",X"E0",X"E3",X"C3",X"A3",X"81",X"00",X"00",X"00",X"00",X"00",
X"1E",X"1C",X"00",X"00",X"C0",X"C0",X"E0",X"E3",X"E3",X"63",X"E1",X"60",X"60",X"E0",X"E0",X"C0",
X"06",X"0A",X"92",X"80",X"70",X"E0",X"70",X"30",X"38",X"38",X"7C",X"FC",X"FC",X"9C",X"C8",X"D8",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"08",X"10",X"F1",
X"00",X"00",X"00",X"00",X"03",X"07",X"03",X"01",X"11",X"08",X"0C",X"0E",X"1E",X"BE",X"FE",X"FE",
X"00",X"00",X"00",X"00",X"10",X"D8",X"2C",X"FE",X"2C",X"D8",X"10",X"00",X"00",X"00",X"00",X"00",
X"08",X"18",X"B8",X"F8",X"F0",X"E0",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"18",X"10",
X"80",X"A0",X"A0",X"B0",X"E0",X"C0",X"00",X"20",X"10",X"08",X"A0",X"A0",X"28",X"08",X"18",X"10",
X"03",X"E7",X"FD",X"F8",X"F8",X"F0",X"F3",X"E7",X"FD",X"FC",X"E0",X"80",X"0C",X"1C",X"1C",X"00",
X"00",X"30",X"18",X"1C",X"1C",X"3C",X"3C",X"38",X"3C",X"3C",X"1C",X"C0",X"E0",X"C0",X"00",X"00",
X"00",X"18",X"3C",X"1C",X"0C",X"00",X"CC",X"6E",X"3E",X"BE",X"7A",X"61",X"61",X"01",X"1A",X"04",
X"00",X"38",X"3C",X"1C",X"1C",X"1E",X"1C",X"1C",X"1C",X"1C",X"3C",X"18",X"00",X"00",X"80",X"80",
X"00",X"1C",X"3C",X"FC",X"FC",X"3E",X"1E",X"1E",X"0E",X"04",X"08",X"0C",X"0C",X"0C",X"00",X"00",
X"00",X"18",X"3C",X"FC",X"3C",X"1C",X"1C",X"1C",X"3E",X"3E",X"3C",X"0C",X"00",X"80",X"C0",X"C0",
X"00",X"00",X"00",X"78",X"FC",X"F8",X"F8",X"F0",X"00",X"00",X"C0",X"E0",X"E0",X"E0",X"E0",X"00",
X"00",X"60",X"70",X"30",X"B8",X"F8",X"F8",X"F8",X"F8",X"F0",X"F0",X"F0",X"E0",X"80",X"80",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"80",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"F0",X"98",X"E8",X"F4",X"FC",X"FC",X"FC",X"F8",X"F8",X"F0",X"00",X"00",X"00",
X"E0",X"F0",X"A0",X"F0",X"90",X"32",X"93",X"21",X"20",X"70",X"F0",X"F8",X"F8",X"F0",X"30",X"00",
X"00",X"00",X"00",X"10",X"7C",X"FC",X"F8",X"78",X"78",X"FC",X"F8",X"78",X"10",X"00",X"00",X"00",
X"70",X"F0",X"EC",X"DC",X"DE",X"DE",X"DE",X"5E",X"5E",X"5E",X"DE",X"DE",X"DE",X"DC",X"EC",X"F0",
X"70",X"E8",X"FC",X"EC",X"C6",X"EE",X"FE",X"6E",X"46",X"6E",X"FE",X"EE",X"C6",X"EC",X"FC",X"E8",
X"00",X"00",X"00",X"00",X"00",X"80",X"C0",X"80",X"C0",X"80",X"C0",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"18",X"08",X"38",X"38",X"18",X"18",X"30",X"18",X"30",X"38",X"10",X"08",
X"02",X"04",X"EE",X"0C",X"06",X"0C",X"06",X"06",X"0E",X"0A",X"06",X"00",X"00",X"00",X"00",X"00",
X"10",X"30",X"70",X"70",X"30",X"70",X"50",X"30",X"30",X"70",X"50",X"30",X"00",X"00",X"00",X"00",
X"E0",X"E0",X"E0",X"E0",X"F0",X"F8",X"F8",X"F8",X"F8",X"F4",X"F0",X"F0",X"28",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"80",X"00",X"00",X"00",X"00",X"00",
X"E1",X"00",X"00",X"00",X"00",X"C0",X"60",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"20",X"60",X"20",X"20",X"31",X"38",X"35",X"1F",X"1E",
X"00",X"00",X"00",X"00",X"03",X"3F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"1F",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"C0",X"60",X"B0",X"40",X"00",X"00",X"00",
X"FF",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"40",X"00",X"40",X"00",X"FF",X"FF",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",
X"FF",X"03",X"83",X"03",X"83",X"03",X"03",X"83",X"03",X"83",X"23",X"13",X"0B",X"07",X"FE",X"FC",
X"FC",X"FE",X"07",X"0B",X"13",X"0B",X"0B",X"23",X"03",X"23",X"03",X"03",X"23",X"03",X"23",X"FF",
X"60",X"F0",X"F8",X"FC",X"FC",X"FE",X"FC",X"EC",X"CE",X"CE",X"C0",X"C0",X"E0",X"E0",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"01",X"00",X"01",X"72",X"F9",X"FE",X"FF",X"6F",X"9F",X"DF",X"5F",
X"5F",X"5F",X"6F",X"27",X"0F",X"07",X"00",X"00",X"00",X"00",X"40",X"80",X"00",X"00",X"00",X"00",
X"03",X"07",X"06",X"0A",X"0C",X"0C",X"08",X"10",X"18",X"14",X"10",X"38",X"30",X"20",X"20",X"60",
X"50",X"40",X"C0",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"18",X"30",X"F6",X"F7",X"F7",X"F3",X"FB",X"F9",X"FC",X"E4",X"C2",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"90",X"30",X"70",X"F0",X"F0",X"E0",X"40",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"80",X"49",X"2A",X"08",X"7E",X"08",X"2A",X"49",X"80",X"00",X"02",X"09",X"80",X"08",X"00",X"00",
X"00",X"00",X"00",X"00",X"30",X"78",X"70",X"F0",X"70",X"78",X"30",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"80",X"80",X"80",X"80",X"00",X"C0",X"70",X"60",X"60",X"C0",X"C0",X"80",X"00",X"00",
X"00",X"00",X"80",X"80",X"80",X"80",X"00",X"80",X"60",X"00",X"80",X"20",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"14",X"D0",X"4C",X"C4",X"14",X"10",X"24",X"28",X"44",X"48",X"04",
X"00",X"00",X"00",X"00",X"00",X"14",X"10",X"CC",X"44",X"C8",X"04",X"08",X"04",X"08",X"04",X"0C",
X"00",X"08",X"A0",X"80",X"C8",X"E0",X"60",X"FC",X"60",X"E4",X"C0",X"90",X"80",X"08",X"40",X"00",
X"00",X"00",X"80",X"00",X"00",X"80",X"40",X"C0",X"40",X"80",X"00",X"00",X"20",X"00",X"00",X"00",
X"00",X"C8",X"20",X"10",X"88",X"C4",X"64",X"E4",X"E4",X"64",X"C4",X"88",X"10",X"24",X"C0",X"00",
X"00",X"00",X"00",X"00",X"82",X"C0",X"60",X"E0",X"E0",X"60",X"C0",X"80",X"00",X"00",X"00",X"10",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"F0",X"00",X"00",X"80",X"E0",X"C0",X"00",X"00",X"00",X"E0",X"00",X"00",X"80",X"F0",X"80",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"02",X"01",X"00",X"F0",X"04",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"06",X"0E",X"0E",X"1C",X"1A",X"1A",X"1C",X"0E",X"0E",X"06",X"00",X"00",X"00",X"0E",X"0E",
X"00",X"06",X"0E",X"0E",X"1C",X"1A",X"1A",X"1C",X"0E",X"0E",X"86",X"80",X"80",X"00",X"00",X"00",
X"01",X"DF",X"5F",X"5F",X"5F",X"DF",X"5F",X"5F",X"DF",X"5F",X"5F",X"5F",X"DF",X"FF",X"DF",X"01",
X"00",X"01",X"01",X"81",X"C0",X"00",X"60",X"64",X"64",X"60",X"00",X"C0",X"81",X"01",X"01",X"00",
X"60",X"70",X"70",X"70",X"70",X"F0",X"70",X"70",X"70",X"F0",X"70",X"70",X"F0",X"70",X"70",X"E0",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"20",X"60",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"0C",X"10",X"60",X"80",X"00",X"60",X"10",X"8C",X"80",X"80",X"80",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"56",X"AA",X"00",X"00",X"C0",X"40",X"40",X"40",X"80",
X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"02",X"1C",X"00",X"00",X"00",X"00",X"00",X"00",X"80",
X"00",X"00",X"80",X"C0",X"F0",X"38",X"0C",X"74",X"74",X"0C",X"38",X"F0",X"C0",X"80",X"00",X"00",
X"00",X"60",X"F0",X"F0",X"98",X"08",X"0C",X"94",X"94",X"0C",X"08",X"98",X"F0",X"F0",X"60",X"00",
X"18",X"18",X"18",X"18",X"3C",X"24",X"24",X"24",X"24",X"24",X"24",X"3C",X"18",X"18",X"18",X"18",
X"04",X"04",X"04",X"04",X"04",X"04",X"04",X"00",X"00",X"04",X"04",X"04",X"04",X"04",X"04",X"04",
X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"1B",X"38",X"20",X"40",X"80",X"00",X"00",X"00",X"80",
X"80",X"C0",X"C0",X"E0",X"F0",X"F9",X"BD",X"AF",X"AF",X"AB",X"EB",X"FB",X"EB",X"FF",X"EF",X"FF",
X"EF",X"FF",X"EE",X"FE",X"FC",X"FC",X"F8",X"78",X"F0",X"F0",X"80",X"E0",X"F0",X"F0",X"E0",X"C0",
X"00",X"00",X"80",X"40",X"20",X"22",X"35",X"38",X"35",X"22",X"20",X"E0",X"E0",X"20",X"20",X"20",
X"20",X"20",X"20",X"20",X"20",X"20",X"E0",X"E0",X"20",X"22",X"35",X"38",X"35",X"22",X"20",X"20",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"1B",X"38",X"20",X"40",X"80",X"00",X"00",X"00",X"80",
X"80",X"C0",X"C0",X"E0",X"F0",X"F9",X"BD",X"AF",X"AF",X"AB",X"EB",X"FB",X"EB",X"FF",X"EF",X"FF",
X"EF",X"FF",X"EE",X"FE",X"E4",X"E8",X"E8",X"DC",X"DE",X"FE",X"00",X"00",X"00",X"00",X"00",X"00",
X"0C",X"12",X"01",X"81",X"C9",X"25",X"05",X"C5",X"05",X"05",X"35",X"E5",X"C9",X"81",X"12",X"0C",
X"00",X"08",X"00",X"44",X"CA",X"02",X"02",X"02",X"00",X"02",X"40",X"02",X"0A",X"04",X"20",X"00",
X"00",X"00",X"E0",X"10",X"08",X"08",X"54",X"F4",X"F4",X"04",X"08",X"08",X"10",X"E0",X"00",X"00",
X"00",X"00",X"C0",X"20",X"10",X"08",X"08",X"08",X"08",X"08",X"08",X"10",X"20",X"C0",X"00",X"00",
X"00",X"00",X"00",X"00",X"80",X"40",X"20",X"20",X"20",X"20",X"40",X"80",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"40",X"40",X"80",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"80",X"04",X"00",X"00",X"00",X"00",X"00",X"03",X"00",X"00",X"00",X"00",X"00",X"04",X"80",
X"0C",X"01",X"03",X"C1",X"76",X"20",X"C0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"19",X"08",X"08",X"81",X"81",X"41",X"04",X"05",X"03",X"06",X"00",X"00",X"00",X"00",X"00",X"00",
X"20",X"61",X"60",X"E0",X"B1",X"B9",X"B1",X"E0",X"80",X"80",X"05",X"07",X"03",X"06",X"00",X"00",
X"AC",X"A4",X"5C",X"F8",X"F0",X"C0",X"01",X"01",X"13",X"0E",X"00",X"00",X"00",X"00",X"00",X"00",
X"59",X"5F",X"7F",X"FF",X"C6",X"86",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"AA",X"BE",X"FC",X"F8",X"B8",X"10",X"00",X"04",X"0F",X"0F",X"06",X"0C",X"00",X"00",X"00",X"00",
X"AA",X"BE",X"FC",X"F8",X"B8",X"10",X"00",X"04",X"0F",X"0F",X"06",X"0C",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"01",X"01",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"40",X"C0",X"C0",X"01",X"0E",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"04",X"06",X"02",X"86",X"40",X"58",X"BC",X"AE",X"A6",
X"AA",X"AA",X"BC",X"58",X"40",X"80",X"00",X"02",X"06",X"0C",X"18",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"5E",X"3F",X"18",X"7A",X"F6",X"04",X"3E",X"12",X"21",X"70",X"F8",X"F8",X"F8",X"FF",X"FF",X"73",
X"50",X"72",X"46",X"8E",X"9C",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"E0",X"E0",X"A1",X"A1",X"B1",X"BC",X"70",X"E2",X"00",X"00",X"02",X"02",X"00",X"00",X"00",X"00",
X"CE",X"CC",X"CD",X"DC",X"DD",X"F8",X"F1",X"C1",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"C0",X"E0",X"F0",X"F0",X"F0",X"F0",X"E0",X"C0",X"80",X"00",X"00",X"00",X"00",
X"80",X"00",X"00",X"80",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"81",X"B8",X"BC",X"AE",X"A6",
X"AA",X"AA",X"BC",X"BA",X"83",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"04",X"06",X"02",X"86",X"40",X"58",X"BC",X"AE",X"A6",
X"C0",X"20",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"C0",X"00",X"20",X"E0",X"20",X"00",
X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"20",X"20",X"A0",X"60",X"20",X"00",
X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"20",X"00",
X"C0",X"20",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"C0",X"00",X"E0",X"40",X"40",X"C0",
X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"C0",X"20",X"20",X"20",X"C0",X"00",
X"C0",X"20",X"C0",X"00",X"C0",X"20",X"C0",X"00",X"20",X"20",X"A0",X"60",X"00",X"E0",X"00",X"00",
X"C0",X"20",X"C0",X"00",X"C0",X"20",X"C0",X"00",X"C0",X"20",X"20",X"C0",X"00",X"E0",X"00",X"00");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,278 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity snd1 is
port (
clk : in std_logic;
addr : in std_logic_vector(11 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of snd1 is
type rom is array(0 to 4095) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"55",X"04",X"37",X"C5",X"E5",X"86",X"03",X"14",X"6A",X"A5",X"B5",X"85",X"8A",X"80",X"B9",X"10",
X"BB",X"40",X"BA",X"06",X"54",X"62",X"FB",X"47",X"E7",X"53",X"1F",X"6B",X"AB",X"EA",X"14",X"BA",
X"06",X"54",X"62",X"FB",X"47",X"E7",X"53",X"1F",X"37",X"17",X"6B",X"AB",X"EA",X"21",X"F9",X"03",
X"FB",X"F6",X"35",X"9A",X"7F",X"E9",X"12",X"05",X"85",X"A5",X"B8",X"20",X"B0",X"00",X"D5",X"27",
X"AE",X"AF",X"C5",X"8A",X"80",X"A5",X"26",X"A3",X"46",X"C9",X"0A",X"37",X"92",X"79",X"B2",X"77",
X"D2",X"7B",X"80",X"53",X"0F",X"03",X"FD",X"96",X"5B",X"24",X"64",X"03",X"FD",X"96",X"61",X"24",
X"8F",X"27",X"AE",X"AF",X"B4",X"24",X"14",X"6A",X"04",X"43",X"93",X"83",X"26",X"A3",X"46",X"C9",
X"0A",X"37",X"D2",X"7B",X"92",X"79",X"83",X"24",X"00",X"44",X"00",X"B8",X"07",X"A5",X"B5",X"D4",
X"1A",X"D4",X"3A",X"8A",X"80",X"96",X"89",X"04",X"43",X"B9",X"04",X"B4",X"24",X"26",X"A3",X"E9",
X"8B",X"FA",X"03",X"FC",X"A9",X"C6",X"81",X"9A",X"7F",X"B4",X"24",X"26",X"A1",X"E9",X"99",X"04",
X"81",X"8A",X"80",X"BA",X"E0",X"FA",X"AB",X"54",X"48",X"FA",X"77",X"77",X"53",X"3F",X"37",X"17",
X"6A",X"AB",X"54",X"48",X"FA",X"AB",X"54",X"48",X"46",X"C9",X"FA",X"47",X"E7",X"53",X"1F",X"37",
X"17",X"6A",X"AA",X"03",X"C0",X"F6",X"A5",X"04",X"43",X"BA",X"06",X"FA",X"AB",X"54",X"55",X"54",
X"55",X"FA",X"97",X"67",X"6A",X"AB",X"54",X"55",X"54",X"55",X"FA",X"AB",X"54",X"55",X"54",X"55",
X"FA",X"77",X"77",X"53",X"3F",X"6A",X"AA",X"03",X"C0",X"E6",X"CB",X"04",X"43",X"AB",X"54",X"3C",
X"54",X"3C",X"FA",X"77",X"77",X"53",X"3F",X"6A",X"AA",X"03",X"C0",X"E6",X"DD",X"04",X"59",X"FF",
X"BB",X"02",X"B9",X"88",X"BA",X"88",X"27",X"A8",X"AC",X"AD",X"D5",X"AC",X"AD",X"C5",X"97",X"A5",
X"B5",X"34",X"DA",X"F9",X"53",X"3F",X"AF",X"FA",X"AE",X"D5",X"53",X"1F",X"AF",X"C5",X"F9",X"D5",
X"AE",X"23",X"FF",X"62",X"D4",X"B7",X"34",X"5B",X"E8",X"11",X"9A",X"7F",X"EB",X"11",X"BB",X"08",
X"8A",X"80",X"FC",X"D5",X"AC",X"C5",X"FD",X"D5",X"AD",X"C5",X"34",X"DA",X"F9",X"53",X"7F",X"AF",
X"D5",X"AF",X"C5",X"FA",X"AE",X"D5",X"AE",X"23",X"FF",X"62",X"D4",X"B7",X"34",X"5B",X"E8",X"3A",
X"9A",X"7F",X"EB",X"3A",X"D5",X"27",X"AE",X"AF",X"C5",X"04",X"43",X"0A",X"B2",X"62",X"76",X"63",
X"24",X"00",X"A5",X"83",X"F9",X"96",X"6C",X"FC",X"AA",X"96",X"6C",X"19",X"34",X"DA",X"37",X"AB",
X"FA",X"37",X"5B",X"AB",X"54",X"19",X"54",X"22",X"FA",X"AB",X"54",X"19",X"54",X"22",X"34",X"DA",
X"F9",X"AB",X"54",X"19",X"54",X"22",X"80",X"53",X"0F",X"03",X"FD",X"C6",X"6C",X"04",X"43",X"BB",
X"90",X"D5",X"B9",X"01",X"BA",X"04",X"BB",X"30",X"C5",X"54",X"7C",X"F2",X"AC",X"96",X"A1",X"04",
X"37",X"AA",X"54",X"7C",X"37",X"96",X"AB",X"FA",X"A9",X"24",X"C0",X"37",X"D4",X"65",X"B9",X"03",
X"D4",X"83",X"34",X"C9",X"E9",X"B0",X"FA",X"03",X"FA",X"A9",X"34",X"C9",X"E9",X"BA",X"B9",X"03",
X"27",X"AE",X"AF",X"34",X"C9",X"E9",X"C3",X"24",X"99",X"D5",X"E9",X"D2",X"B9",X"08",X"FA",X"37",
X"17",X"AA",X"FB",X"6A",X"AB",X"54",X"70",X"F5",X"C4",X"40",X"F9",X"F7",X"A9",X"FA",X"F7",X"AA",
X"F9",X"F6",X"EA",X"32",X"EC",X"F9",X"53",X"FE",X"A9",X"83",X"32",X"E5",X"F9",X"43",X"01",X"A9",
X"83",X"32",X"EC",X"F9",X"43",X"01",X"A9",X"83",X"54",X"41",X"14",X"6B",X"54",X"41",X"14",X"6B",
X"B9",X"20",X"BA",X"40",X"FA",X"AB",X"54",X"62",X"FA",X"97",X"67",X"AB",X"54",X"62",X"FA",X"47",
X"E7",X"53",X"1F",X"6A",X"AA",X"E6",X"04",X"04",X"43",X"54",X"48",X"14",X"6C",X"54",X"48",X"14",
X"6C",X"83",X"54",X"33",X"14",X"6C",X"54",X"33",X"14",X"6C",X"54",X"33",X"14",X"6C",X"54",X"33",
X"14",X"6C",X"83",X"27",X"AE",X"AF",X"D5",X"AE",X"AF",X"A4",X"24",X"FB",X"47",X"E7",X"AE",X"53",
X"1F",X"AF",X"FE",X"53",X"E0",X"AE",X"A4",X"24",X"FB",X"77",X"77",X"AE",X"53",X"3F",X"AF",X"FE",
X"53",X"C0",X"AE",X"A4",X"24",X"FB",X"77",X"AE",X"53",X"7F",X"AF",X"FE",X"53",X"80",X"AE",X"D5",
X"A4",X"24",X"FB",X"77",X"77",X"AE",X"53",X"3F",X"AF",X"FE",X"53",X"C0",X"AE",X"D5",X"A4",X"6E",
X"FB",X"77",X"77",X"AE",X"53",X"3F",X"AF",X"FE",X"53",X"C0",X"AE",X"83",X"FB",X"1B",X"A3",X"A8",
X"83",X"98",X"30",X"A0",X"0C",X"A2",X"A6",X"A4",X"A2",X"18",X"A8",X"A8",X"0C",X"A8",X"AA",X"A4",
X"18",X"A0",X"30",X"A6",X"0C",X"A8",X"AB",X"AA",X"A8",X"18",X"B0",X"B0",X"0C",X"B0",X"B2",X"AA",
X"AB",X"18",X"A8",X"A8",X"0C",X"A8",X"AB",X"AA",X"A8",X"A6",X"B6",X"B4",X"B2",X"B0",X"AB",X"AA",
X"A8",X"30",X"A6",X"0C",X"A8",X"AB",X"AA",X"A8",X"18",X"B0",X"B0",X"0C",X"B0",X"B2",X"AA",X"AB",
X"18",X"A8",X"A8",X"0C",X"A8",X"AB",X"AA",X"A8",X"A6",X"B0",X"A8",X"AA",X"18",X"A6",X"18",X"FF",
X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"18",X"86",X"82",X"80",X"0C",X"82",X"18",X"86",X"86",X"0C",X"82",X"18",X"80",X"82",X"18",X"88",
X"84",X"82",X"0C",X"84",X"18",X"88",X"88",X"0C",X"84",X"18",X"82",X"84",X"00",X"10",X"86",X"20",
X"86",X"10",X"80",X"86",X"20",X"86",X"10",X"80",X"86",X"20",X"86",X"10",X"80",X"86",X"84",X"86",
X"87",X"88",X"20",X"88",X"10",X"82",X"88",X"20",X"88",X"10",X"82",X"88",X"20",X"88",X"10",X"82",
X"88",X"87",X"88",X"89",X"00",X"00",X"00",X"00",X"0C",X"90",X"90",X"90",X"90",X"92",X"94",X"96",
X"96",X"96",X"96",X"94",X"92",X"00",X"04",X"A4",X"10",X"A6",X"04",X"AC",X"10",X"B0",X"04",X"B4",
X"10",X"B6",X"00",X"09",X"EA",X"8A",X"E8",X"88",X"6C",X"EA",X"8A",X"09",X"E8",X"88",X"E6",X"86",
X"E4",X"84",X"E2",X"82",X"24",X"E1",X"81",X"48",X"E2",X"82",X"24",X"FF",X"09",X"DA",X"8A",X"D8",
X"88",X"6C",X"DA",X"8A",X"0C",X"D4",X"84",X"D6",X"86",X"D1",X"81",X"6C",X"D2",X"82",X"24",X"FF",
X"12",X"82",X"C6",X"82",X"C9",X"86",X"CC",X"89",X"D2",X"8C",X"D6",X"92",X"D9",X"96",X"DC",X"99",
X"09",X"E2",X"9C",X"E1",X"9C",X"E2",X"9C",X"E1",X"9C",X"09",X"E2",X"9C",X"E1",X"9C",X"E2",X"9C",
X"E1",X"9C",X"24",X"E2",X"9C",X"00",X"0F",X"E8",X"90",X"B0",X"94",X"A8",X"1E",X"F0",X"98",X"E8",
X"94",X"0F",X"E7",X"90",X"B0",X"93",X"A7",X"1E",X"F0",X"97",X"E7",X"93",X"0F",X"E6",X"92",X"B0",
X"96",X"A6",X"1E",X"F0",X"9A",X"F4",X"A0",X"B8",X"06",X"97",X"18",X"98",X"3C",X"88",X"00",X"1E",
X"E0",X"98",X"0F",X"E2",X"9A",X"E4",X"9C",X"1E",X"E6",X"A0",X"E4",X"A0",X"1E",X"E2",X"A0",X"0F",
X"E0",X"9A",X"1E",X"DC",X"98",X"0F",X"DA",X"96",X"1E",X"D8",X"94",X"1E",X"E0",X"98",X"0F",X"E2",
X"9A",X"E4",X"9C",X"1E",X"E6",X"A0",X"E4",X"A0",X"1E",X"E2",X"A0",X"0F",X"E0",X"9A",X"38",X"DC",
X"98",X"00",X"12",X"E4",X"94",X"A9",X"EC",X"8C",X"B2",X"E7",X"87",X"AA",X"F0",X"83",X"B3",X"09",
X"F6",X"92",X"B2",X"B4",X"B0",X"F2",X"8C",X"AC",X"B0",X"AA",X"EC",X"88",X"A8",X"AA",X"A6",X"E8",
X"84",X"A4",X"A6",X"A2",X"12",X"E0",X"80",X"82",X"84",X"24",X"88",X"12",X"8A",X"90",X"92",X"48",
X"90",X"00",X"1E",X"E0",X"90",X"E8",X"88",X"0F",X"E4",X"80",X"A0",X"1E",X"88",X"DC",X"94",X"E8",
X"8C",X"0F",X"E4",X"94",X"9C",X"1E",X"8C",X"DA",X"86",X"E0",X"80",X"0F",X"E6",X"86",X"A8",X"80",
X"A6",X"1E",X"E4",X"90",X"88",X"E2",X"98",X"92",X"E0",X"90",X"E8",X"88",X"0F",X"E4",X"80",X"A0",
X"1E",X"88",X"DC",X"94",X"E8",X"8C",X"0F",X"E4",X"94",X"9C",X"1E",X"8C",X"DA",X"86",X"E0",X"80",
X"0F",X"E4",X"94",X"A8",X"8C",X"A4",X"1E",X"E2",X"88",X"82",X"3C",X"E0",X"90",X"00",X"20",X"80",
X"10",X"E4",X"A0",X"E4",X"A0",X"E6",X"A2",X"E6",X"A2",X"E8",X"A4",X"E8",X"A4",X"10",X"EA",X"86",
X"80",X"EA",X"86",X"80",X"E8",X"86",X"E6",X"80",X"E6",X"82",X"84",X"90",X"E8",X"88",X"E8",X"90",
X"E8",X"88",X"E6",X"90",X"E8",X"98",X"96",X"94",X"E6",X"92",X"8A",X"E6",X"92",X"E6",X"8A",X"E6",
X"92",X"E4",X"8A",X"92",X"E2",X"8A",X"E0",X"86",X"8A",X"8B",X"90",X"E6",X"86",X"8B",X"EA",X"90",
X"92",X"E8",X"98",X"96",X"94",X"92",X"90",X"8B",X"8A",X"E4",X"88",X"E6",X"86",X"20",X"86",X"10",
X"86",X"90",X"8B",X"8A",X"88",X"40",X"86",X"00",X"86",X"90",X"8B",X"8A",X"88",X"40",X"86",X"00",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"A3",X"83",
X"00",X"01",X"80",X"00",X"02",X"06",X"00",X"40",X"20",X"12",X"14",X"16",X"18",X"1A",X"1C",X"00",
X"08",X"00",X"09",X"00",X"0A",X"00",X"0B",X"00",X"0C",X"00",X"0D",X"00",X"FF",X"00",X"0E",X"00",
X"08",X"00",X"A3",X"83",X"D5",X"B6",X"90",X"B8",X"20",X"80",X"53",X"0F",X"20",X"37",X"17",X"60",
X"96",X"4D",X"F0",X"A3",X"C6",X"4B",X"F2",X"73",X"D4",X"83",X"E9",X"4B",X"FF",X"96",X"42",X"FE",
X"C6",X"5E",X"FA",X"03",X"F8",X"C6",X"5E",X"A9",X"27",X"AE",X"AF",X"C4",X"90",X"F0",X"A3",X"C6",
X"6E",X"92",X"66",X"B2",X"6A",X"D2",X"89",X"F2",X"75",X"8A",X"80",X"A8",X"D4",X"1A",X"D4",X"3A",
X"C6",X"4D",X"B9",X"08",X"C4",X"90",X"F4",X"04",X"04",X"37",X"F4",X"3B",X"04",X"37",X"27",X"AE",
X"AF",X"C4",X"90",X"E9",X"79",X"B9",X"10",X"BB",X"73",X"FB",X"47",X"E7",X"53",X"1F",X"6B",X"AB",
X"77",X"77",X"AE",X"53",X"3F",X"AF",X"F5",X"C4",X"40",X"B9",X"48",X"95",X"BA",X"06",X"BB",X"C0",
X"E9",X"9B",X"B8",X"20",X"27",X"A0",X"AE",X"AF",X"85",X"A4",X"24",X"EA",X"AC",X"BA",X"06",X"FB",
X"47",X"E7",X"53",X"1F",X"A8",X"97",X"67",X"68",X"37",X"17",X"6B",X"AB",X"FB",X"77",X"77",X"53",
X"3F",X"AF",X"80",X"53",X"0F",X"03",X"F6",X"C6",X"98",X"F5",X"C4",X"40",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"28",X"00",X"2A",X"61",X"2C",X"E6",X"2F",X"91",X"32",X"66",X"FF",X"FF",X"35",X"65",X"38",X"92",
X"3B",X"EF",X"3F",X"75",X"43",X"46",X"47",X"46",X"4B",X"83",X"BB",X"00",X"B9",X"30",X"B1",X"FF",
X"C4",X"26",X"D4",X"29",X"96",X"22",X"E8",X"22",X"83",X"B9",X"30",X"FB",X"96",X"2F",X"11",X"F1",
X"96",X"36",X"FB",X"1B",X"E3",X"83",X"FB",X"1B",X"84",X"FE",X"D4",X"29",X"C6",X"64",X"F2",X"43",
X"AA",X"D4",X"29",X"A8",X"37",X"96",X"4F",X"AE",X"AF",X"D5",X"AE",X"AF",X"C5",X"17",X"83",X"D4",
X"65",X"F8",X"83",X"D2",X"5C",X"D5",X"BE",X"00",X"BF",X"00",X"C5",X"83",X"D4",X"29",X"D5",X"A8",
X"D4",X"65",X"C5",X"F8",X"83",X"F8",X"53",X"0F",X"E7",X"AC",X"A3",X"AF",X"FC",X"17",X"A3",X"AE",
X"F8",X"53",X"30",X"47",X"AC",X"FF",X"97",X"67",X"AF",X"FE",X"67",X"AE",X"1C",X"FC",X"03",X"FC",
X"96",X"75",X"83",X"FE",X"6F",X"E6",X"88",X"1F",X"6F",X"E6",X"8C",X"1F",X"AE",X"83",X"FF",X"FF",
X"42",X"03",X"78",X"62",X"76",X"B7",X"FC",X"6E",X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"43",X"C0",
X"A3",X"A8",X"C5",X"FC",X"6E",X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"43",X"C0",X"A3",X"D5",X"68",
X"39",X"16",X"B5",X"C4",X"96",X"C5",X"83",X"F5",X"E4",X"40",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"03",X"06",X"09",X"0C",X"0F",X"12",X"15",X"18",X"1B",X"1E",X"21",X"24",X"27",X"2A",X"2D",
X"30",X"33",X"36",X"39",X"3C",X"3F",X"42",X"45",X"48",X"4B",X"4E",X"51",X"54",X"57",X"5A",X"5D",
X"60",X"5D",X"5A",X"57",X"54",X"51",X"4E",X"4B",X"48",X"45",X"42",X"3F",X"3C",X"39",X"36",X"33",
X"30",X"2D",X"2A",X"27",X"24",X"21",X"1E",X"1B",X"18",X"15",X"12",X"0F",X"0C",X"09",X"06",X"03",
X"E2",X"FC",X"04",X"1E",X"AB",X"D5",X"FB",X"1B",X"C5",X"B4",X"22",X"C6",X"5E",X"A8",X"92",X"5A",
X"D4",X"1A",X"D4",X"3A",X"D4",X"53",X"C6",X"05",X"B9",X"03",X"8A",X"80",X"D4",X"83",X"D5",X"D4",
X"83",X"D4",X"90",X"E9",X"1C",X"B9",X"03",X"D5",X"D4",X"90",X"E9",X"27",X"FA",X"03",X"FA",X"A9",
X"C6",X"12",X"9A",X"7F",X"D5",X"D4",X"90",X"E9",X"34",X"E4",X"12",X"AB",X"D5",X"FB",X"1B",X"C5",
X"B4",X"22",X"C6",X"5E",X"A8",X"D4",X"1A",X"D4",X"3A",X"D4",X"53",X"C6",X"3C",X"FA",X"A9",X"D4",
X"83",X"D4",X"83",X"D5",X"D4",X"90",X"E9",X"53",X"E4",X"47",X"F4",X"5F",X"E4",X"05",X"83",X"BF",
X"80",X"B9",X"F0",X"B8",X"02",X"F4",X"76",X"E5",X"00",X"F4",X"82",X"18",X"F8",X"96",X"65",X"19",
X"F9",X"03",X"0D",X"96",X"63",X"83",X"F9",X"B3",X"BE",X"08",X"EE",X"7A",X"FB",X"77",X"77",X"AB",
X"E4",X"85",X"BA",X"04",X"AB",X"53",X"03",X"A3",X"F2",X"94",X"6F",X"E6",X"8F",X"23",X"FF",X"AF",
X"39",X"EA",X"78",X"83",X"6F",X"F6",X"8F",X"27",X"E4",X"8F",X"9E",X"BA",X"04",X"AB",X"53",X"03",
X"A3",X"F2",X"AD",X"6F",X"E6",X"A8",X"23",X"FF",X"AF",X"39",X"EA",X"91",X"83",X"6F",X"F6",X"A8",
X"27",X"E4",X"A8",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"F8",X"F5",X"04",X"00",X"F8",X"F5",X"24",X"00",X"F8",X"F5",X"44",X"00",X"F8",X"F5",X"64",X"00",
X"F8",X"F5",X"84",X"00",X"F8",X"F5",X"A4",X"00",X"F8",X"F5",X"C4",X"00",X"F8",X"F5",X"E4",X"00",
X"D0",X"D4",X"D8",X"DC",X"E0",X"E4",X"E8",X"EC",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"A3",X"83",X"70",X"7C",X"0F",X"E0",X"E3",X"80",X"5F",X"0F",X"FC",X"F0",X"C0",X"8F",X"02",X"7F",
X"04",X"FF",X"03",X"FC",X"3C",X"C0",X"4B",X"0F",X"BD",X"08",X"F8",X"C3",X"0B",X"3F",X"90",X"FE",
X"41",X"4B",X"0F",X"F8",X"11",X"F8",X"0B",X"0E",X"EF",X"81",X"3F",X"B0",X"F0",X"0B",X"F0",X"1B",
X"48",X"7F",X"90",X"FE",X"40",X"8F",X"0F",X"FC",X"E0",X"C0",X"4F",X"C1",X"2F",X"7C",X"F0",X"0F",
X"F0",X"83",X"07",X"3F",X"09",X"FF",X"D0",X"D0",X"1F",X"C0",X"8B",X"09",X"3F",X"0F",X"FC",X"C1",
X"F0",X"57",X"C0",X"2F",X"24",X"FF",X"40",X"F7",X"02",X"3F",X"3C",X"F0",X"07",X"A9",X"6E",X"D0",
X"67",X"C0",X"1F",X"29",X"9F",X"03",X"7E",X"1C",X"BC",X"0B",X"F8",X"3C",X"F0",X"83",X"C0",X"7F",
X"D0",X"2F",X"80",X"BF",X"01",X"FE",X"00",X"FF",X"02",X"FC",X"07",X"FC",X"0B",X"B8",X"1E",X"F0",
X"1F",X"D0",X"3B",X"D0",X"1F",X"C0",X"BF",X"80",X"FF",X"00",X"FE",X"00",X"FF",X"01",X"BE",X"03",
X"FC",X"07",X"F8",X"06",X"F4",X"0B",X"F0",X"1F",X"F0",X"2F",X"C0",X"3F",X"00",X"FF",X"C0",X"CF",
X"00",X"FF",X"00",X"FF",X"03",X"FC",X"00",X"FD",X"06",X"F4",X"0F",X"F0",X"2B",X"B0",X"0F",X"BC",
X"3D",X"F0",X"2D",X"C0",X"3F",X"C0",X"7F",X"E0",X"F1",X"80",X"7F",X"40",X"FF",X"00",X"FF",X"02",
X"FC",X"00",X"FE",X"03",X"D3",X"07",X"FC",X"03",X"F4",X"07",X"8E",X"1F",X"E8",X"07",X"DE",X"07",
X"3C",X"0F",X"E4",X"0F",X"F8",X"0F",X"A0",X"3F",X"20",X"2F",X"B8",X"35",X"F8",X"34",X"F4",X"0E",
X"F8",X"52",X"F0",X"47",X"F0",X"2F",X"F0",X"53",X"C0",X"3F",X"D0",X"BF",X"C0",X"7B",X"C0",X"0F",
X"41",X"BF",X"C0",X"AF",X"C0",X"3E",X"80",X"BF",X"80",X"FF",X"40",X"FF",X"00",X"BF",X"40",X"BF",
X"A3",X"83",X"00",X"7F",X"01",X"FF",X"03",X"AF",X"01",X"EF",X"03",X"FC",X"02",X"FC",X"03",X"FC",
X"0F",X"74",X"0E",X"E8",X"03",X"5F",X"0F",X"7C",X"06",X"7D",X"0A",X"6E",X"0F",X"7C",X"1C",X"BC",
X"08",X"FD",X"09",X"FC",X"64",X"F8",X"50",X"5F",X"74",X"F8",X"80",X"FF",X"00",X"FF",X"00",X"BF",
X"01",X"FE",X"01",X"AF",X"03",X"FC",X"01",X"FF",X"00",X"FF",X"01",X"CF",X"0F",X"FC",X"01",X"FC",
X"03",X"FC",X"81",X"EB",X"81",X"D7",X"03",X"FD",X"00",X"FC",X"82",X"FF",X"03",X"FC",X"00",X"AE",
X"0B",X"5F",X"E1",X"D2",X"91",X"1F",X"84",X"FF",X"00",X"FF",X"40",X"2F",X"05",X"FE",X"01",X"FE",
X"01",X"FF",X"40",X"7F",X"00",X"FF",X"40",X"FF",X"40",X"3F",X"C0",X"F7",X"40",X"5F",X"E1",X"D2",
X"46",X"1F",X"F8",X"81",X"0F",X"9E",X"07",X"BF",X"50",X"7D",X"D0",X"3E",X"30",X"FC",X"01",X"BE",
X"78",X"F0",X"C1",X"C7",X"83",X"F4",X"03",X"FE",X"41",X"F1",X"43",X"5E",X"3F",X"F0",X"92",X"C0",
X"1F",X"F0",X"1F",X"F0",X"1F",X"F0",X"0F",X"F0",X"0F",X"F0",X"0B",X"F0",X"0F",X"F4",X"0F",X"F0",
X"03",X"F4",X"0F",X"F0",X"0F",X"F8",X"0B",X"28",X"FD",X"80",X"3F",X"F0",X"2F",X"C0",X"3F",X"40",
X"FF",X"00",X"3F",X"00",X"FE",X"42",X"FF",X"00",X"FD",X"01",X"BF",X"E0",X"C3",X"0B",X"F9",X"D1",
X"74",X"E5",X"06",X"8F",X"03",X"3F",X"3D",X"F0",X"0F",X"D0",X"0F",X"F0",X"1F",X"E0",X"3F",X"D0",
X"0F",X"C0",X"1F",X"F4",X"7D",X"C0",X"0F",X"0D",X"2F",X"F0",X"07",X"E6",X"1F",X"E0",X"1F",X"C0",
X"6F",X"80",X"3F",X"F0",X"2F",X"C0",X"7F",X"80",X"AF",X"C0",X"BF",X"00",X"FF",X"00",X"3F",X"40",
X"FF",X"C0",X"FA",X"80",X"77",X"B4",X"F0",X"E1",X"C1",X"E3",X"82",X"CF",X"06",X"BC",X"0F",X"F4",
X"A3",X"83",X"03",X"BC",X"0F",X"F0",X"3A",X"E0",X"0F",X"F0",X"0F",X"F0",X"1F",X"C0",X"BF",X"80",
X"3F",X"40",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FD",X"03",X"FB",X"02",X"FC",X"03",
X"E9",X"0B",X"FC",X"03",X"B9",X"43",X"A7",X"A4",X"0B",X"BC",X"0F",X"F0",X"0F",X"F0",X"0B",X"F0",
X"0F",X"F0",X"0F",X"F0",X"0B",X"F8",X"4B",X"D0",X"0F",X"6A",X"CB",X"42",X"0F",X"7F",X"70",X"6E",
X"70",X"2F",X"B0",X"EE",X"80",X"7F",X"00",X"BF",X"00",X"FF",X"00",X"FF",X"01",X"BF",X"90",X"5D",
X"E1",X"0A",X"E5",X"0B",X"FD",X"03",X"FC",X"0B",X"F0",X"0B",X"E0",X"2F",X"C0",X"7F",X"40",X"7F",
X"04",X"FC",X"03",X"FD",X"07",X"F4",X"07",X"CB",X"0F",X"1D",X"3D",X"3C",X"E4",X"B7",X"40",X"7F",
X"00",X"7F",X"40",X"7F",X"3D",X"F0",X"C3",X"81",X"FF",X"00",X"FD",X"03",X"F8",X"0B",X"F0",X"0F",
X"D0",X"2F",X"08",X"FF",X"06",X"F8",X"3E",X"C0",X"1F",X"C0",X"3F",X"38",X"F8",X"F0",X"D0",X"D7",
X"03",X"FC",X"42",X"F8",X"43",X"0B",X"FD",X"30",X"E8",X"0F",X"B0",X"6F",X"40",X"FF",X"10",X"FC",
X"BA",X"C0",X"2F",X"00",X"FF",X"02",X"FC",X"52",X"A9",X"92",X"2F",X"E0",X"5F",X"E0",X"9E",X"01",
X"FD",X"C2",X"61",X"FD",X"01",X"FC",X"16",X"F0",X"1F",X"D0",X"1F",X"B5",X"15",X"F5",X"03",X"FC",
X"07",X"E8",X"6B",X"90",X"6B",X"85",X"4F",X"B2",X"A5",X"96",X"55",X"3E",X"90",X"BE",X"0A",X"F8",
X"17",X"D0",X"8F",X"03",X"FD",X"62",X"94",X"6F",X"41",X"7E",X"09",X"7E",X"55",X"A5",X"6A",X"F4",
X"C1",X"57",X"81",X"AF",X"91",X"E9",X"03",X"FD",X"01",X"FF",X"00",X"FE",X"81",X"3A",X"89",X"1F",
X"B4",X"3D",X"A0",X"7E",X"D0",X"07",X"F9",X"15",X"F8",X"B6",X"90",X"1B",X"AA",X"D1",X"D3",X"42",
X"A3",X"83",X"7E",X"15",X"8E",X"0B",X"FD",X"02",X"E9",X"2F",X"90",X"2F",X"A4",X"7D",X"E0",X"6A",
X"D0",X"7E",X"81",X"4B",X"57",X"E5",X"51",X"9B",X"0A",X"7E",X"28",X"F9",X"41",X"2F",X"94",X"7F",
X"80",X"6F",X"A0",X"5F",X"A1",X"59",X"6E",X"54",X"FE",X"01",X"E7",X"03",X"F9",X"0A",X"F8",X"46",
X"B9",X"95",X"16",X"7D",X"A4",X"B5",X"82",X"BA",X"38",X"B8",X"29",X"B9",X"55",X"69",X"95",X"47",
X"1E",X"2E",X"A5",X"2B",X"B8",X"2A",X"B4",X"17",X"6D",X"1A",X"B9",X"55",X"96",X"A6",X"95",X"69",
X"59",X"E6",X"82",X"9B",X"16",X"2E",X"6D",X"F4",X"81",X"9B",X"25",X"BD",X"51",X"A9",X"57",X"E4",
X"A9",X"A0",X"5F",X"91",X"7A",X"C1",X"6B",X"51",X"7E",X"A0",X"FA",X"80",X"AF",X"10",X"FD",X"03",
X"F9",X"07",X"B8",X"2A",X"A4",X"5F",X"51",X"6E",X"55",X"6D",X"59",X"1A",X"AA",X"5A",X"A5",X"1E",
X"B8",X"65",X"B5",X"52",X"B9",X"46",X"A5",X"0F",X"E5",X"59",X"65",X"5E",X"E1",X"46",X"9E",X"92",
X"6A",X"5A",X"4A",X"7E",X"64",X"A5",X"4E",X"56",X"2E",X"96",X"66",X"A5",X"76",X"54",X"AE",X"45",
X"EA",X"25",X"F8",X"D1",X"E1",X"07",X"B9",X"55",X"9A",X"A5",X"E5",X"91",X"4B",X"A9",X"57",X"D4",
X"0B",X"6D",X"69",X"A5",X"53",X"B9",X"05",X"BE",X"05",X"FD",X"54",X"EA",X"42",X"BA",X"55",X"69",
X"1A",X"AA",X"56",X"5A",X"AA",X"A1",X"5B",X"E1",X"A5",X"55",X"5E",X"69",X"55",X"AA",X"56",X"A5",
X"5A",X"95",X"1B",X"A9",X"6A",X"A4",X"5B",X"F4",X"91",X"96",X"47",X"96",X"5B",X"55",X"1E",X"B5",
X"95",X"96",X"56",X"6A",X"2A",X"A9",X"2A",X"A9",X"AA",X"D0",X"6B",X"E0",X"6A",X"45",X"2F",X"A5",
X"69",X"E5",X"52",X"A9",X"0B",X"AA",X"5A",X"95",X"1E",X"A9",X"79",X"D4",X"B2",X"D4",X"96",X"91",
X"A3",X"83",X"70",X"7C",X"0F",X"E0",X"E3",X"80",X"5F",X"0F",X"FC",X"F0",X"C0",X"8F",X"02",X"7F",
X"04",X"FF",X"03",X"FC",X"3C",X"C0",X"4B",X"0F",X"BD",X"08",X"F8",X"C3",X"0B",X"3F",X"90",X"FE",
X"41",X"4B",X"0F",X"F8",X"11",X"F8",X"0B",X"0E",X"EF",X"81",X"3F",X"B0",X"F0",X"0B",X"F0",X"1B",
X"48",X"7F",X"90",X"FE",X"40",X"8F",X"0F",X"FC",X"E0",X"C0",X"4F",X"C1",X"2F",X"7C",X"F0",X"0F",
X"F0",X"83",X"07",X"3F",X"09",X"FF",X"D0",X"D0",X"1F",X"C0",X"8B",X"09",X"3F",X"0F",X"FC",X"C1",
X"F0",X"57",X"C0",X"2F",X"24",X"FF",X"40",X"F7",X"02",X"3F",X"3C",X"F0",X"07",X"A9",X"6E",X"D0",
X"67",X"C0",X"1F",X"29",X"9F",X"03",X"7E",X"1C",X"BC",X"0B",X"F8",X"3C",X"F0",X"83",X"C0",X"7F",
X"D0",X"2F",X"80",X"BF",X"01",X"FE",X"00",X"FF",X"02",X"FC",X"07",X"FC",X"0B",X"B8",X"1E",X"F0",
X"1F",X"D0",X"3B",X"D0",X"1F",X"C0",X"BF",X"80",X"FF",X"00",X"FE",X"00",X"FF",X"01",X"BE",X"03",
X"FC",X"07",X"F8",X"06",X"F4",X"0B",X"F0",X"1F",X"F0",X"2F",X"C0",X"3F",X"00",X"FF",X"C0",X"CF",
X"00",X"FF",X"00",X"FF",X"03",X"FC",X"00",X"FD",X"06",X"F4",X"0F",X"F0",X"2B",X"B0",X"0F",X"BC",
X"3D",X"F0",X"2D",X"C0",X"3F",X"C0",X"7F",X"E0",X"F1",X"80",X"7F",X"40",X"FF",X"00",X"FF",X"02",
X"FC",X"00",X"FE",X"03",X"D3",X"07",X"FC",X"03",X"F4",X"07",X"8E",X"1F",X"E8",X"07",X"DE",X"07",
X"3C",X"0F",X"E4",X"0F",X"F8",X"0F",X"A0",X"3F",X"20",X"2F",X"B8",X"35",X"F8",X"34",X"F4",X"0E",
X"F8",X"52",X"F0",X"47",X"F0",X"2F",X"F0",X"53",X"C0",X"3F",X"D0",X"BF",X"C0",X"7B",X"C0",X"0F",
X"41",X"BF",X"C0",X"AF",X"C0",X"3E",X"80",X"BF",X"80",X"FF",X"40",X"FF",X"00",X"BF",X"40",X"BF",
X"A3",X"83",X"00",X"7F",X"01",X"FF",X"03",X"AF",X"01",X"EF",X"03",X"FC",X"02",X"FC",X"03",X"FC",
X"0F",X"74",X"0E",X"E8",X"03",X"5F",X"0F",X"7C",X"06",X"7D",X"0A",X"6E",X"0F",X"7C",X"1C",X"BC",
X"08",X"FD",X"09",X"FC",X"64",X"F8",X"50",X"5F",X"74",X"F8",X"80",X"FF",X"00",X"FF",X"00",X"BF",
X"01",X"FE",X"01",X"AF",X"03",X"FC",X"01",X"FF",X"00",X"FF",X"01",X"CF",X"0F",X"FC",X"01",X"FC",
X"03",X"FC",X"81",X"EB",X"81",X"D7",X"03",X"FD",X"00",X"FC",X"82",X"FF",X"03",X"FC",X"00",X"AE",
X"0B",X"5F",X"E1",X"D2",X"91",X"1F",X"84",X"FF",X"00",X"FF",X"40",X"2F",X"05",X"FE",X"01",X"FE",
X"01",X"FF",X"40",X"7F",X"00",X"FF",X"40",X"FF",X"40",X"3F",X"C0",X"F7",X"40",X"5F",X"E1",X"D2",
X"46",X"1F",X"F8",X"81",X"0F",X"9E",X"07",X"BF",X"50",X"7D",X"D0",X"3E",X"30",X"FC",X"01",X"BE",
X"78",X"F0",X"C1",X"C7",X"83",X"F4",X"03",X"FE",X"41",X"F1",X"43",X"5E",X"3F",X"F0",X"92",X"C0",
X"1F",X"F0",X"1F",X"F0",X"1F",X"F0",X"0F",X"F0",X"0F",X"F0",X"0B",X"F0",X"0F",X"F4",X"0F",X"F0",
X"03",X"F4",X"0F",X"F0",X"0F",X"F8",X"0B",X"28",X"FD",X"80",X"3F",X"F0",X"2F",X"C0",X"3F",X"40",
X"FF",X"00",X"3F",X"00",X"FE",X"42",X"FF",X"00",X"FD",X"01",X"BF",X"E0",X"C3",X"0B",X"F9",X"D1",
X"74",X"E5",X"06",X"8F",X"03",X"3F",X"3D",X"F0",X"0F",X"D0",X"0F",X"F0",X"1F",X"E0",X"3F",X"D0",
X"0F",X"C0",X"1F",X"F4",X"7D",X"C0",X"0F",X"0D",X"2F",X"F0",X"07",X"E6",X"1F",X"E0",X"1F",X"C0",
X"6F",X"80",X"3F",X"F0",X"2F",X"C0",X"7F",X"80",X"AF",X"C0",X"BF",X"00",X"FF",X"00",X"3F",X"40",
X"FF",X"C0",X"FA",X"80",X"77",X"B4",X"F0",X"E1",X"C1",X"E3",X"82",X"CF",X"06",X"BC",X"0F",X"F4",
X"00",X"03",X"06",X"09",X"0C",X"0F",X"12",X"15",X"18",X"1B",X"1E",X"21",X"24",X"27",X"2A",X"2D",
X"30",X"33",X"36",X"39",X"3C",X"3F",X"42",X"45",X"48",X"4B",X"4E",X"51",X"54",X"57",X"5A",X"5D",
X"60",X"5D",X"5A",X"57",X"54",X"51",X"4E",X"4B",X"48",X"45",X"42",X"3F",X"3C",X"39",X"36",X"33",
X"30",X"2D",X"2A",X"27",X"24",X"21",X"1E",X"1B",X"18",X"15",X"12",X"0F",X"0C",X"09",X"06",X"03",
X"42",X"03",X"78",X"62",X"FC",X"6E",X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"43",X"C0",X"A3",X"A8",
X"C5",X"FC",X"6E",X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"53",X"3F",X"A3",X"D5",X"68",X"39",X"16",
X"63",X"C4",X"44",X"C5",X"E5",X"83",X"07",X"CB",X"0F",X"1D",X"3D",X"3C",X"E4",X"B7",X"40",X"7F",
X"00",X"7F",X"40",X"7F",X"3D",X"F0",X"C3",X"81",X"FF",X"00",X"FD",X"03",X"F8",X"0B",X"F0",X"0F",
X"D0",X"2F",X"08",X"FF",X"06",X"F8",X"3E",X"C0",X"1F",X"C0",X"3F",X"38",X"F8",X"F0",X"D0",X"D7",
X"03",X"FC",X"42",X"F8",X"43",X"0B",X"FD",X"30",X"E8",X"0F",X"B0",X"6F",X"40",X"FF",X"10",X"FC",
X"BA",X"C0",X"2F",X"00",X"FF",X"02",X"FC",X"52",X"A9",X"92",X"2F",X"E0",X"5F",X"E0",X"9E",X"01",
X"FD",X"C2",X"61",X"FD",X"01",X"FC",X"16",X"F0",X"1F",X"D0",X"1F",X"B5",X"15",X"F5",X"03",X"FC",
X"00",X"02",X"04",X"06",X"08",X"0A",X"0C",X"0E",X"10",X"12",X"14",X"16",X"18",X"1A",X"1C",X"1E",
X"20",X"22",X"24",X"26",X"28",X"2A",X"2C",X"2E",X"30",X"32",X"34",X"36",X"38",X"3A",X"3C",X"3E",
X"40",X"3E",X"3C",X"3A",X"38",X"36",X"34",X"32",X"30",X"2E",X"2C",X"2A",X"28",X"26",X"24",X"22",
X"20",X"1E",X"1C",X"1A",X"18",X"16",X"14",X"12",X"10",X"0E",X"0C",X"0A",X"08",X"06",X"04",X"02",
X"00",X"03",X"06",X"09",X"0C",X"0F",X"12",X"15",X"18",X"1B",X"1E",X"21",X"24",X"27",X"2A",X"2D",
X"30",X"33",X"36",X"39",X"3C",X"3F",X"42",X"45",X"48",X"4B",X"4E",X"51",X"54",X"57",X"5A",X"5D",
X"60",X"5D",X"5A",X"57",X"54",X"51",X"4E",X"4B",X"48",X"45",X"42",X"3F",X"3C",X"39",X"36",X"33",
X"30",X"2D",X"2A",X"27",X"24",X"21",X"1E",X"1B",X"18",X"15",X"12",X"0F",X"0C",X"09",X"06",X"03",
X"FC",X"6E",X"AC",X"FD",X"7F",X"AD",X"77",X"77",X"53",X"3F",X"A3",X"A8",X"C5",X"FC",X"6E",X"AC",
X"FD",X"7F",X"AD",X"77",X"77",X"43",X"C0",X"A3",X"D5",X"68",X"39",X"16",X"5F",X"E4",X"40",X"C5",
X"E5",X"83",X"5F",X"91",X"7A",X"C1",X"6B",X"51",X"7E",X"A0",X"FA",X"80",X"AF",X"10",X"FD",X"03",
X"F9",X"07",X"B8",X"2A",X"A4",X"5F",X"51",X"6E",X"55",X"6D",X"59",X"1A",X"AA",X"5A",X"A5",X"1E",
X"B8",X"65",X"B5",X"52",X"B9",X"46",X"A5",X"0F",X"E5",X"59",X"65",X"5E",X"E1",X"46",X"9E",X"92",
X"6A",X"5A",X"4A",X"7E",X"64",X"A5",X"4E",X"56",X"2E",X"96",X"66",X"A5",X"76",X"54",X"AE",X"45",
X"EA",X"25",X"F8",X"D1",X"E1",X"07",X"B9",X"55",X"9A",X"A5",X"E5",X"91",X"4B",X"A9",X"57",X"D4",
X"0B",X"6D",X"69",X"A5",X"53",X"B9",X"05",X"BE",X"05",X"FD",X"54",X"EA",X"42",X"BA",X"55",X"69",
X"00",X"05",X"0A",X"0F",X"14",X"19",X"1E",X"23",X"28",X"2D",X"32",X"37",X"3C",X"41",X"46",X"4B",
X"50",X"55",X"5A",X"5F",X"64",X"69",X"6E",X"73",X"78",X"7D",X"82",X"87",X"8C",X"91",X"96",X"9B",
X"9F",X"9B",X"96",X"91",X"8C",X"87",X"82",X"7D",X"78",X"73",X"6E",X"69",X"64",X"5F",X"5A",X"55",
X"50",X"4B",X"46",X"41",X"3C",X"37",X"32",X"2D",X"28",X"23",X"1E",X"19",X"14",X"0F",X"0A",X"05");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,278 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity vid1 is
port (
clk : in std_logic;
addr : in std_logic_vector(11 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of vid1 is
type rom is array(0 to 4095) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"38",X"7C",X"C2",X"82",X"86",X"7C",X"38",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"62",X"F2",X"BA",X"9A",X"9E",X"CE",X"46",X"00",X"8C",X"DE",X"F2",X"B2",X"92",X"86",X"04",X"00",
X"08",X"FE",X"FE",X"C8",X"68",X"38",X"18",X"00",X"1C",X"BE",X"A2",X"A2",X"A2",X"E6",X"E4",X"00",
X"0C",X"9E",X"92",X"92",X"D2",X"7E",X"3C",X"00",X"C0",X"E0",X"B0",X"9E",X"8E",X"C0",X"C0",X"00",
X"0C",X"6E",X"9A",X"9A",X"B2",X"F2",X"6C",X"00",X"78",X"FC",X"96",X"92",X"92",X"F2",X"60",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"3E",X"7E",X"C8",X"88",X"C8",X"7E",X"3E",X"00",
X"6C",X"FE",X"92",X"92",X"92",X"FE",X"FE",X"00",X"44",X"C6",X"82",X"82",X"C6",X"7C",X"38",X"00",
X"38",X"7C",X"C6",X"82",X"82",X"FE",X"FE",X"00",X"82",X"92",X"92",X"92",X"FE",X"FE",X"00",X"00",
X"80",X"90",X"90",X"90",X"90",X"FE",X"FE",X"00",X"9E",X"9E",X"92",X"82",X"C6",X"7C",X"38",X"00",
X"FE",X"FE",X"10",X"10",X"10",X"FE",X"FE",X"00",X"82",X"82",X"FE",X"FE",X"82",X"82",X"00",X"00",
X"FC",X"FE",X"02",X"02",X"02",X"06",X"04",X"00",X"82",X"C6",X"6E",X"3C",X"18",X"FE",X"FE",X"00",
X"02",X"02",X"02",X"02",X"FE",X"FE",X"00",X"00",X"FE",X"FE",X"70",X"38",X"70",X"FE",X"FE",X"00",
X"FE",X"FE",X"1C",X"38",X"70",X"FE",X"FE",X"00",X"7C",X"FE",X"82",X"82",X"82",X"FE",X"7C",X"00",
X"70",X"F8",X"88",X"88",X"88",X"FE",X"FE",X"00",X"7A",X"FC",X"8E",X"8A",X"82",X"FE",X"7C",X"00",
X"72",X"F6",X"9E",X"8C",X"88",X"FE",X"FE",X"00",X"0C",X"5E",X"D2",X"92",X"92",X"F6",X"64",X"00",
X"80",X"80",X"FE",X"FE",X"80",X"80",X"00",X"00",X"FC",X"FE",X"02",X"02",X"02",X"FE",X"FC",X"00",
X"F0",X"F8",X"1C",X"0E",X"1C",X"F8",X"F0",X"00",X"F8",X"FE",X"1C",X"38",X"1C",X"FE",X"F8",X"00",
X"C6",X"EE",X"7C",X"38",X"7C",X"EE",X"C6",X"00",X"C0",X"F0",X"1E",X"1E",X"F0",X"C0",X"00",X"00",
X"C2",X"E2",X"F2",X"BA",X"9E",X"8E",X"86",X"00",X"00",X"00",X"00",X"00",X"06",X"06",X"00",X"00",
X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"00",
X"00",X"00",X"00",X"00",X"28",X"00",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",
X"00",X"00",X"82",X"C6",X"6C",X"38",X"00",X"00",X"00",X"00",X"38",X"6C",X"C6",X"82",X"00",X"00",
X"00",X"00",X"82",X"FE",X"FE",X"82",X"00",X"00",X"82",X"FE",X"FE",X"82",X"82",X"FE",X"FE",X"82",
X"00",X"28",X"28",X"28",X"28",X"28",X"28",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",
X"F6",X"F6",X"00",X"00",X"F6",X"F6",X"00",X"00",X"FA",X"FA",X"00",X"00",X"FA",X"FA",X"00",X"00",
X"00",X"00",X"00",X"F6",X"F6",X"00",X"00",X"00",X"00",X"00",X"00",X"FA",X"FA",X"00",X"00",X"00",
X"00",X"00",X"00",X"E0",X"C0",X"00",X"00",X"00",X"00",X"E0",X"C0",X"00",X"E0",X"C0",X"00",X"00",
X"00",X"60",X"E0",X"00",X"60",X"E0",X"00",X"00",X"00",X"00",X"C0",X"00",X"C0",X"00",X"00",X"00",
X"FF",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"FF",
X"00",X"00",X"00",X"00",X"06",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"06",X"00",X"00",
X"38",X"28",X"3E",X"00",X"00",X"00",X"00",X"00",X"3E",X"00",X"3C",X"02",X"02",X"3C",X"00",X"0E",
X"22",X"2A",X"3E",X"00",X"00",X"0E",X"3A",X"2A",X"22",X"3E",X"00",X"3E",X"08",X"10",X"3E",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"1C",X"22",X"A5",X"BD",X"81",X"42",X"3C",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"3C",X"42",X"81",X"A5",X"7C",X"40",X"00",X"38",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"28",X"38",X"00",X"40",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"00",X"00",X"00",X"00",X"80",X"C0",X"A2",X"00",X"F0",X"FC",X"FE",X"FF",X"FF",X"FF",X"FF",
X"00",X"01",X"0F",X"3F",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"03",X"07",X"0F",
X"54",X"A6",X"02",X"02",X"62",X"73",X"77",X"FF",X"FF",X"8F",X"76",X"7C",X"4E",X"A6",X"D7",X"A3",
X"FF",X"FF",X"FE",X"FD",X"7F",X"87",X"03",X"80",X"1F",X"3F",X"78",X"F0",X"F1",X"F6",X"F8",X"6F",
X"BF",X"5F",X"AF",X"4F",X"2A",X"90",X"40",X"A8",X"C1",X"61",X"51",X"25",X"35",X"A1",X"B2",X"AE",
X"CE",X"9A",X"31",X"3B",X"BF",X"3F",X"1D",X"08",X"1F",X"33",X"61",X"C0",X"C0",X"C7",X"C7",X"65",
X"40",X"A8",X"50",X"AA",X"4F",X"AF",X"5F",X"BF",X"AE",X"AE",X"B2",X"A1",X"25",X"55",X"41",X"61",
X"05",X"07",X"03",X"02",X"80",X"00",X"81",X"C1",X"61",X"C5",X"C7",X"C7",X"C0",X"61",X"33",X"1F",
X"FF",X"77",X"73",X"62",X"02",X"02",X"A6",X"54",X"51",X"E3",X"92",X"66",X"CC",X"76",X"0F",X"FF",
X"81",X"00",X"81",X"41",X"E0",X"FE",X"FF",X"FF",X"6F",X"F8",X"F6",X"F1",X"F0",X"78",X"3F",X"1F",
X"A2",X"C0",X"80",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"FF",X"FF",X"FE",X"FC",X"F0",X"00",
X"FF",X"FF",X"FF",X"7F",X"1F",X"07",X"01",X"00",X"0F",X"07",X"01",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"9F",X"9F",X"8E",X"80",X"8A",X"95",X"95",X"9F",X"84",X"8F",X"9F",X"9F",X"80",X"8E",X"91",X"91",
X"81",X"81",X"9F",X"9F",X"9E",X"80",X"9F",X"82",X"96",X"97",X"97",X"9D",X"9D",X"8D",X"80",X"9E",
X"38",X"7C",X"C2",X"82",X"86",X"7C",X"38",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"62",X"F2",X"BA",X"9A",X"9E",X"4E",X"46",X"00",X"8C",X"DE",X"F2",X"B2",X"92",X"86",X"04",X"00",
X"08",X"FE",X"FE",X"C8",X"68",X"38",X"18",X"00",X"1C",X"BE",X"B2",X"B2",X"B2",X"E6",X"E4",X"00",
X"0C",X"9E",X"92",X"92",X"D2",X"7E",X"3C",X"00",X"C0",X"E0",X"B0",X"9E",X"8E",X"C0",X"C0",X"00",
X"0C",X"6E",X"9A",X"9A",X"B2",X"F2",X"6C",X"00",X"78",X"FC",X"96",X"92",X"92",X"F2",X"60",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"0A",X"0A",X"0A",X"0A",X"0A",X"0A",X"0A",X"0A",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"7C",X"10",X"00",X"FF",X"00",X"FF",X"00",
X"00",X"3C",X"7E",X"52",X"4A",X"7E",X"3C",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"00",X"22",X"72",X"5A",X"4E",X"66",X"22",X"00",X"00",X"44",X"6E",X"7A",X"52",X"46",X"44",X"00",
X"00",X"04",X"7E",X"7E",X"34",X"1C",X"0C",X"00",X"00",X"4C",X"5E",X"52",X"52",X"76",X"74",X"00",
X"00",X"0C",X"5E",X"52",X"52",X"7E",X"3C",X"00",X"00",X"60",X"70",X"58",X"4E",X"46",X"40",X"00",
X"00",X"2C",X"7E",X"52",X"52",X"7E",X"2C",X"00",X"00",X"38",X"7C",X"56",X"52",X"72",X"20",X"00",
X"7E",X"7E",X"30",X"18",X"30",X"7E",X"7E",X"00",X"1E",X"20",X"20",X"1E",X"20",X"20",X"3E",X"00",
X"81",X"81",X"01",X"FE",X"01",X"81",X"81",X"80",X"0A",X"0B",X"08",X"07",X"08",X"0B",X"0A",X"0A",
X"9F",X"9F",X"80",X"81",X"81",X"01",X"FE",X"00",X"0A",X"0A",X"0A",X"0A",X"0B",X"08",X"07",X"00",
X"00",X"00",X"00",X"07",X"08",X"0B",X"0A",X"0A",X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",
X"00",X"00",X"00",X"FE",X"01",X"81",X"81",X"80",X"81",X"81",X"81",X"81",X"9F",X"9F",X"9F",X"80",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"E0",X"F0",X"F8",X"FC",X"FE",
X"00",X"80",X"C0",X"E0",X"F0",X"F8",X"FC",X"FE",X"FE",X"FC",X"F8",X"F0",X"E0",X"C0",X"80",X"00",
X"FE",X"FC",X"F8",X"F0",X"E0",X"C0",X"00",X"00",X"00",X"80",X"C0",X"00",X"00",X"F8",X"FC",X"FE",
X"FF",X"FF",X"FF",X"00",X"00",X"FF",X"FF",X"FF",X"FF",X"FC",X"FD",X"03",X"03",X"FD",X"FE",X"FF",
X"FF",X"F7",X"FB",X"FD",X"FD",X"FB",X"FF",X"FF",X"30",X"30",X"30",X"30",X"30",X"30",X"30",X"30",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"57",X"57",X"FF",X"FF",X"1F",X"FF",X"57",X"57",
X"68",X"E8",X"FF",X"FF",X"E0",X"FF",X"A8",X"68",X"80",X"80",X"40",X"40",X"20",X"20",X"10",X"10",
X"08",X"08",X"04",X"04",X"02",X"02",X"01",X"01",X"00",X"10",X"00",X"00",X"08",X"08",X"10",X"00",
X"01",X"01",X"02",X"02",X"04",X"04",X"08",X"08",X"10",X"00",X"00",X"04",X"00",X"00",X"10",X"00",
X"00",X"00",X"00",X"3F",X"40",X"9F",X"A0",X"A0",X"A0",X"A0",X"A0",X"9F",X"40",X"3F",X"00",X"00",
X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"10",X"10",X"20",X"20",X"40",X"40",X"80",X"80",
X"01",X"01",X"02",X"02",X"04",X"04",X"08",X"08",X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",
X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"C7",X"00",X"C7",X"00",X"00",
X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",X"00",X"00",X"28",X"FF",X"38",X"FF",X"28",X"00",
X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",
X"00",X"00",X"00",X"66",X"99",X"66",X"00",X"00",X"00",X"00",X"02",X"67",X"9F",X"67",X"02",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"C3",X"24",X"3C",X"24",X"24",X"3C",X"24",X"C3",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"38",X"40",X"99",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"80",X"88",X"88",
X"88",X"88",X"80",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"99",X"40",X"38",
X"00",X"00",X"F8",X"00",X"F0",X"00",X"00",X"00",X"40",X"80",X"40",X"20",X"10",X"08",X"10",X"20",
X"40",X"80",X"40",X"20",X"10",X"08",X"10",X"20",X"00",X"00",X"00",X"F0",X"00",X"F8",X"00",X"00",
X"3F",X"7F",X"C0",X"00",X"00",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"00",X"00",X"C0",X"C0",X"C0",
X"C0",X"C0",X"C0",X"00",X"00",X"C0",X"7F",X"3F",X"FC",X"FE",X"03",X"00",X"00",X"03",X"03",X"03",
X"03",X"03",X"03",X"00",X"00",X"03",X"03",X"03",X"03",X"03",X"03",X"00",X"00",X"03",X"FE",X"FC",
X"00",X"08",X"0C",X"FC",X"FC",X"00",X"A4",X"A6",X"00",X"C0",X"E8",X"00",X"40",X"A0",X"F8",X"F8",
X"50",X"50",X"4F",X"40",X"40",X"40",X"50",X"50",X"00",X"00",X"01",X"21",X"43",X"41",X"00",X"00",
X"01",X"20",X"10",X"11",X"03",X"21",X"00",X"00",X"00",X"01",X"41",X"23",X"11",X"01",X"00",X"00",
X"1F",X"20",X"40",X"8F",X"9F",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",
X"98",X"98",X"98",X"9F",X"8F",X"40",X"20",X"1F",X"01",X"09",X"F1",X"01",X"01",X"01",X"01",X"01",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F0",X"00",X"F0",X"40",X"40",X"E0",X"E0",
X"00",X"04",X"04",X"FC",X"F8",X"00",X"A8",X"A8",X"E0",X"F8",X"7D",X"01",X"70",X"88",X"FE",X"FE",
X"60",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"FF",X"F5",X"FB",X"FB",X"FB",X"FB",X"FB",X"FF",
X"F8",X"04",X"02",X"F1",X"F9",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",
X"19",X"19",X"19",X"F9",X"F1",X"02",X"04",X"F8",X"3C",X"42",X"A5",X"A5",X"A5",X"A5",X"A5",X"A5",
X"A5",X"A5",X"A5",X"A5",X"A5",X"BD",X"42",X"3C",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"06",
X"04",X"08",X"10",X"08",X"04",X"02",X"01",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"90",X"90",X"8A",X"80",X"40",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"42",X"24",X"00",X"00",X"24",X"42",X"00",X"01",X"0F",X"1F",X"3F",X"3F",X"37",X"4F",X"0E",
X"38",X"7C",X"C2",X"82",X"86",X"7C",X"38",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"62",X"F2",X"BA",X"9A",X"9E",X"CE",X"46",X"00",X"8C",X"DE",X"F2",X"B2",X"92",X"86",X"04",X"00",
X"08",X"FE",X"FE",X"C8",X"68",X"38",X"18",X"00",X"1C",X"BE",X"A2",X"A2",X"A2",X"E6",X"E4",X"00",
X"0C",X"9E",X"92",X"92",X"D2",X"7E",X"3C",X"00",X"C0",X"E0",X"B0",X"9E",X"8E",X"C0",X"C0",X"00",
X"0C",X"6E",X"9A",X"9A",X"B2",X"F2",X"6C",X"00",X"78",X"FC",X"96",X"92",X"92",X"F2",X"60",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"3E",X"7E",X"C8",X"88",X"C8",X"7E",X"3E",X"00",
X"6C",X"FE",X"92",X"92",X"92",X"FE",X"FE",X"00",X"44",X"C6",X"82",X"82",X"C6",X"7C",X"38",X"00",
X"38",X"7C",X"C6",X"82",X"82",X"FE",X"FE",X"00",X"82",X"92",X"92",X"92",X"FE",X"FE",X"00",X"00",
X"80",X"90",X"90",X"90",X"90",X"FE",X"FE",X"00",X"9E",X"9E",X"92",X"82",X"C6",X"7C",X"38",X"00",
X"FE",X"FE",X"10",X"10",X"10",X"FE",X"FE",X"00",X"82",X"82",X"FE",X"FE",X"82",X"82",X"00",X"00",
X"FC",X"FE",X"02",X"02",X"02",X"06",X"04",X"00",X"82",X"C6",X"6E",X"3C",X"18",X"FE",X"FE",X"00",
X"02",X"02",X"02",X"02",X"FE",X"FE",X"00",X"00",X"FE",X"FE",X"70",X"38",X"70",X"FE",X"FE",X"00",
X"FE",X"FE",X"1C",X"38",X"70",X"FE",X"FE",X"00",X"7C",X"FE",X"82",X"82",X"82",X"FE",X"7C",X"00",
X"70",X"F8",X"88",X"88",X"88",X"FE",X"FE",X"00",X"7A",X"FC",X"8E",X"8A",X"82",X"FE",X"7C",X"00",
X"72",X"F6",X"9E",X"8C",X"88",X"FE",X"FE",X"00",X"0C",X"5E",X"D2",X"92",X"92",X"F6",X"64",X"00",
X"F8",X"F8",X"78",X"78",X"78",X"78",X"F8",X"F8",X"FC",X"FE",X"02",X"02",X"02",X"FE",X"FC",X"00",
X"F0",X"F8",X"1C",X"0E",X"1C",X"F8",X"F0",X"00",X"F8",X"FE",X"1C",X"38",X"1C",X"FE",X"F8",X"00",
X"C6",X"EE",X"7C",X"38",X"7C",X"EE",X"C6",X"00",X"C0",X"F0",X"1E",X"1E",X"F0",X"C0",X"00",X"00",
X"C2",X"E2",X"F2",X"BA",X"9E",X"8E",X"86",X"00",X"00",X"00",X"00",X"00",X"06",X"06",X"00",X"00",
X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"00",
X"00",X"00",X"00",X"00",X"28",X"00",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",
X"00",X"01",X"07",X"0F",X"1F",X"1F",X"3F",X"3F",X"00",X"80",X"E0",X"F0",X"F8",X"F8",X"FC",X"FC",
X"00",X"00",X"01",X"07",X"0F",X"1F",X"3F",X"3F",X"00",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"80",X"E0",X"F8",X"FC",X"FE",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"3F",X"1F",X"1F",X"0F",X"0F",X"01",X"3C",X"FF",X"FC",X"FC",X"F8",X"F0",X"E4",X"8C",X"3C",X"FC",
X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"FF",X"FF",X"C7",X"C3",X"C1",X"C0",X"C0",X"C0",
X"FF",X"FF",X"FF",X"FF",X"FF",X"81",X"01",X"01",X"83",X"8F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"F8",X"E0",
X"7F",X"7F",X"7C",X"78",X"78",X"78",X"7C",X"7F",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"03",X"03",X"07",X"0F",X"0F",X"0F",X"07",X"03",X"FF",X"FF",X"FF",X"FF",X"FF",X"FE",X"F8",X"E0",
X"FF",X"FE",X"F8",X"E0",X"80",X"00",X"00",X"00",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"80",X"C0",X"C0",X"C0",X"C1",X"C3",X"C7",X"FF",X"03",X"01",X"01",X"81",X"FF",X"FF",X"FF",X"FF",
X"E0",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"F8",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"7F",X"00",X"3F",X"7F",X"7F",X"7F",X"7F",X"7F",
X"FF",X"1F",X"CF",X"EF",X"EF",X"E0",X"E0",X"E0",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",
X"FC",X"FC",X"FC",X"FC",X"F8",X"00",X"00",X"00",X"00",X"F0",X"FE",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"00",X"00",X"80",X"C0",X"E0",X"F0",X"F0",X"FF",X"FF",X"FF",X"FF",X"FF",X"E0",X"E0",X"E0",
X"FF",X"FF",X"FF",X"FF",X"FF",X"3F",X"1F",X"1F",X"F8",X"F8",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",
X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"00",X"00",X"1F",X"3F",X"3F",X"3F",X"3F",X"3F",
X"1F",X"3F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FC",X"FC",X"FC",X"FC",X"FC",X"F8",X"F8",X"F0",
X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3F",X"00",X"E0",X"E0",X"E0",X"E0",X"E0",X"E0",X"C0",X"00",
X"3F",X"3F",X"3F",X"3F",X"3F",X"1F",X"00",X"00",X"FF",X"FF",X"FF",X"FF",X"FE",X"F0",X"00",X"00",
X"F0",X"E0",X"C0",X"80",X"00",X"00",X"00",X"00",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"FF",
X"40",X"40",X"C1",X"81",X"83",X"82",X"82",X"83",X"10",X"19",X"0F",X"0C",X"18",X"30",X"20",X"60",
X"41",X"43",X"41",X"40",X"40",X"60",X"20",X"30",X"8C",X"F8",X"10",X"30",X"20",X"60",X"40",X"40",
X"E0",X"80",X"80",X"80",X"80",X"80",X"83",X"86",X"80",X"80",X"80",X"FF",X"00",X"03",X"0E",X"38",
X"40",X"40",X"40",X"FF",X"80",X"80",X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",
X"00",X"FC",X"86",X"02",X"03",X"01",X"01",X"FF",X"00",X"FE",X"03",X"00",X"00",X"00",X"00",X"00",
X"83",X"02",X"83",X"C1",X"5E",X"73",X"60",X"40",X"00",X"00",X"00",X"40",X"60",X"73",X"5E",X"C1",
X"04",X"07",X"00",X"00",X"00",X"FF",X"81",X"00",X"00",X"00",X"00",X"80",X"80",X"80",X"01",X"07",
X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"04",X"04",X"04",X"04",X"04",X"04",X"04",X"FC",
X"08",X"08",X"0C",X"04",X"04",X"04",X"04",X"04",X"08",X"18",X"B0",X"E0",X"60",X"30",X"10",X"18",
X"02",X"02",X"02",X"82",X"82",X"86",X"04",X"0C",X"34",X"1C",X"08",X"0C",X"04",X"86",X"82",X"82",
X"00",X"FC",X"04",X"04",X"04",X"04",X"C4",X"64",X"04",X"04",X"04",X"04",X"1C",X"70",X"C0",X"00",
X"02",X"02",X"02",X"FE",X"06",X"04",X"04",X"04",X"1E",X"07",X"01",X"00",X"7F",X"40",X"40",X"40",
X"C3",X"C0",X"C0",X"40",X"40",X"40",X"40",X"78",X"82",X"82",X"83",X"80",X"80",X"80",X"F8",X"CE",
X"83",X"83",X"82",X"82",X"82",X"82",X"82",X"82",X"06",X"18",X"70",X"40",X"40",X"40",X"40",X"FD",
X"40",X"40",X"70",X"1C",X"07",X"01",X"00",X"01",X"00",X"7C",X"46",X"43",X"41",X"40",X"40",X"40",
X"00",X"00",X"C3",X"42",X"C3",X"00",X"00",X"00",X"81",X"E3",X"3E",X"0C",X"00",X"00",X"00",X"00",
X"85",X"85",X"87",X"00",X"00",X"00",X"00",X"00",X"81",X"FD",X"85",X"85",X"85",X"85",X"85",X"85",
X"00",X"00",X"07",X"0C",X"18",X"30",X"60",X"C1",X"18",X"0C",X"07",X"00",X"00",X"80",X"80",X"80",
X"00",X"3C",X"7E",X"52",X"4A",X"7E",X"3C",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"00",X"22",X"72",X"5A",X"4E",X"66",X"22",X"00",X"00",X"44",X"6E",X"7A",X"52",X"46",X"44",X"00",
X"00",X"04",X"7E",X"7E",X"34",X"1C",X"0C",X"00",X"00",X"4C",X"5E",X"52",X"52",X"76",X"74",X"00",
X"00",X"0C",X"5E",X"52",X"52",X"7E",X"3C",X"00",X"00",X"60",X"70",X"58",X"4E",X"46",X"40",X"00",
X"00",X"2C",X"7E",X"52",X"52",X"7E",X"2C",X"00",X"00",X"38",X"7C",X"56",X"52",X"72",X"20",X"00",
X"00",X"00",X"00",X"00",X"80",X"C0",X"60",X"30",X"38",X"E0",X"80",X"00",X"FE",X"02",X"02",X"02",
X"82",X"02",X"02",X"02",X"02",X"02",X"02",X"0E",X"04",X"04",X"04",X"04",X"04",X"3E",X"62",X"C2",
X"04",X"04",X"04",X"04",X"04",X"04",X"04",X"04",X"02",X"02",X"FE",X"00",X"00",X"00",X"00",X"FC",
X"00",X"00",X"FE",X"02",X"02",X"02",X"02",X"02",X"80",X"80",X"E0",X"38",X"0E",X"03",X"00",X"FF",
X"30",X"F0",X"9C",X"87",X"81",X"80",X"80",X"80",X"40",X"41",X"43",X"41",X"40",X"40",X"60",X"20",
X"86",X"8C",X"F8",X"10",X"30",X"20",X"60",X"40",X"38",X"E0",X"80",X"80",X"80",X"80",X"80",X"83",
X"80",X"80",X"80",X"80",X"FF",X"00",X"03",X"0E",X"60",X"20",X"30",X"10",X"FF",X"80",X"80",X"80",
X"00",X"00",X"00",X"00",X"01",X"87",X"84",X"87",X"40",X"00",X"01",X"03",X"C6",X"7C",X"18",X"00",
X"C1",X"83",X"02",X"83",X"C1",X"5E",X"53",X"60",X"00",X"00",X"00",X"00",X"40",X"60",X"73",X"5E",
X"07",X"04",X"07",X"00",X"00",X"00",X"FF",X"81",X"00",X"00",X"00",X"00",X"80",X"80",X"80",X"01",
X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"04",X"04",X"1C",X"70",X"C0",X"00",X"00",X"FC",
X"7C",X"C4",X"84",X"04",X"04",X"04",X"04",X"04",X"82",X"02",X"02",X"02",X"82",X"82",X"86",X"04",
X"64",X"34",X"1C",X"08",X"0C",X"04",X"86",X"82",X"00",X"00",X"FC",X"04",X"04",X"04",X"04",X"C4",
X"04",X"04",X"04",X"04",X"04",X"1C",X"70",X"C0",X"06",X"04",X"0C",X"08",X"FC",X"04",X"04",X"04",
X"40",X"40",X"41",X"41",X"41",X"41",X"40",X"40",X"01",X"07",X"0C",X"18",X"10",X"30",X"20",X"60",
X"55",X"DD",X"80",X"00",X"00",X"81",X"C3",X"7E",X"DF",X"50",X"50",X"50",X"50",X"50",X"50",X"57",
X"06",X"82",X"82",X"82",X"82",X"82",X"02",X"02",X"FE",X"02",X"02",X"02",X"02",X"0E",X"08",X"0C",
X"F8",X"FC",X"FE",X"FE",X"FE",X"FF",X"FF",X"FF",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"F8",X"F0",
X"F8",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"F8",
X"FC",X"FC",X"F8",X"F8",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",
X"F8",X"F8",X"F0",X"F0",X"E0",X"F8",X"FC",X"FC",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FC",X"FC",
X"F0",X"F8",X"F8",X"FC",X"FC",X"FE",X"FE",X"FE",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"F8",
X"F0",X"F8",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"F8",X"F0",
X"00",X"00",X"00",X"00",X"00",X"60",X"F8",X"FC",X"FC",X"FC",X"FC",X"F8",X"F0",X"F0",X"F8",X"F8",
X"FC",X"FC",X"FC",X"F8",X"F0",X"F0",X"F8",X"FC",X"00",X"00",X"60",X"F8",X"FC",X"FC",X"FC",X"FC",
X"01",X"01",X"02",X"02",X"04",X"04",X"08",X"08",X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",
X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"C7",X"00",X"C7",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"01",X"01",X"02",X"02",X"04",X"04",X"08",X"08",X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",
X"00",X"00",X"00",X"FF",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"C7",X"00",X"C7",X"00",X"00",
X"50",X"50",X"4F",X"40",X"40",X"40",X"50",X"50",X"00",X"00",X"01",X"21",X"43",X"41",X"00",X"00",
X"01",X"20",X"10",X"11",X"03",X"21",X"00",X"00",X"00",X"01",X"41",X"23",X"11",X"01",X"00",X"00",
X"1F",X"20",X"40",X"8F",X"9F",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",X"98",
X"98",X"98",X"98",X"9F",X"8F",X"40",X"20",X"1F",X"01",X"09",X"F1",X"01",X"01",X"01",X"01",X"01",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F0",X"00",X"F0",X"40",X"40",X"E0",X"E0",
X"00",X"04",X"04",X"FC",X"F8",X"00",X"A8",X"A8",X"E0",X"F8",X"7D",X"01",X"70",X"88",X"FE",X"FE",
X"60",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"FF",X"F5",X"FB",X"FB",X"FB",X"FB",X"FB",X"FF",
X"F8",X"04",X"02",X"F1",X"F9",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",X"19",
X"19",X"19",X"19",X"F9",X"F1",X"02",X"04",X"F8",X"3C",X"42",X"A5",X"A5",X"A5",X"A5",X"A5",X"A5",
X"A5",X"A5",X"A5",X"A5",X"A5",X"BD",X"42",X"3C",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"06",
X"04",X"08",X"10",X"08",X"04",X"02",X"01",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"90",X"90",X"8A",X"80",X"40",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"42",X"24",X"00",X"00",X"24",X"42",X"00",X"01",X"0F",X"1F",X"3F",X"3F",X"37",X"4F",X"0E");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;

View File

@@ -1,278 +0,0 @@
library ieee;
use ieee.std_logic_1164.all,ieee.numeric_std.all;
entity vid2 is
port (
clk : in std_logic;
addr : in std_logic_vector(11 downto 0);
data : out std_logic_vector(7 downto 0)
);
end entity;
architecture prom of vid2 is
type rom is array(0 to 4095) of std_logic_vector(7 downto 0);
signal rom_data: rom := (
X"38",X"7C",X"C2",X"82",X"86",X"7C",X"38",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"62",X"F2",X"BA",X"9A",X"9E",X"CE",X"46",X"00",X"8C",X"DE",X"F2",X"B2",X"92",X"86",X"04",X"00",
X"08",X"FE",X"FE",X"C8",X"68",X"38",X"18",X"00",X"1C",X"BE",X"A2",X"A2",X"A2",X"E6",X"E4",X"00",
X"0C",X"9E",X"92",X"92",X"D2",X"7E",X"3C",X"00",X"C0",X"E0",X"B0",X"9E",X"8E",X"C0",X"C0",X"00",
X"0C",X"6E",X"9A",X"9A",X"B2",X"F2",X"6C",X"00",X"78",X"FC",X"96",X"92",X"92",X"F2",X"60",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"3E",X"7E",X"C8",X"88",X"C8",X"7E",X"3E",X"00",
X"6C",X"FE",X"92",X"92",X"92",X"FE",X"FE",X"00",X"44",X"C6",X"82",X"82",X"C6",X"7C",X"38",X"00",
X"38",X"7C",X"C6",X"82",X"82",X"FE",X"FE",X"00",X"82",X"92",X"92",X"92",X"FE",X"FE",X"00",X"00",
X"80",X"90",X"90",X"90",X"90",X"FE",X"FE",X"00",X"9E",X"9E",X"92",X"82",X"C6",X"7C",X"38",X"00",
X"FE",X"FE",X"10",X"10",X"10",X"FE",X"FE",X"00",X"82",X"82",X"FE",X"FE",X"82",X"82",X"00",X"00",
X"FC",X"FE",X"02",X"02",X"02",X"06",X"04",X"00",X"82",X"C6",X"6E",X"3C",X"18",X"FE",X"FE",X"00",
X"02",X"02",X"02",X"02",X"FE",X"FE",X"00",X"00",X"FE",X"FE",X"70",X"38",X"70",X"FE",X"FE",X"00",
X"FE",X"FE",X"1C",X"38",X"70",X"FE",X"FE",X"00",X"7C",X"FE",X"82",X"82",X"82",X"FE",X"7C",X"00",
X"70",X"F8",X"88",X"88",X"88",X"FE",X"FE",X"00",X"7A",X"FC",X"8E",X"8A",X"82",X"FE",X"7C",X"00",
X"72",X"F6",X"9E",X"8C",X"88",X"FE",X"FE",X"00",X"0C",X"5E",X"D2",X"92",X"92",X"F6",X"64",X"00",
X"80",X"80",X"FE",X"FE",X"80",X"80",X"00",X"00",X"FC",X"FE",X"02",X"02",X"02",X"FE",X"FC",X"00",
X"F0",X"F8",X"1C",X"0E",X"1C",X"F8",X"F0",X"00",X"F8",X"FE",X"1C",X"38",X"1C",X"FE",X"F8",X"00",
X"C6",X"EE",X"7C",X"38",X"7C",X"EE",X"C6",X"00",X"C0",X"F0",X"1E",X"1E",X"F0",X"C0",X"00",X"00",
X"C2",X"E2",X"F2",X"BA",X"9E",X"8E",X"86",X"00",X"00",X"00",X"00",X"00",X"06",X"06",X"00",X"00",
X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"00",
X"00",X"00",X"00",X"00",X"28",X"00",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",
X"00",X"00",X"82",X"C6",X"6C",X"38",X"00",X"00",X"00",X"00",X"38",X"6C",X"C6",X"82",X"00",X"00",
X"00",X"00",X"82",X"FE",X"FE",X"82",X"00",X"00",X"82",X"FE",X"FE",X"82",X"82",X"FE",X"FE",X"82",
X"00",X"28",X"28",X"28",X"28",X"28",X"28",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",
X"F6",X"F6",X"00",X"00",X"F6",X"F6",X"00",X"00",X"FA",X"FA",X"00",X"00",X"FA",X"FA",X"00",X"00",
X"00",X"00",X"00",X"F6",X"F6",X"00",X"00",X"00",X"00",X"00",X"00",X"FA",X"FA",X"00",X"00",X"00",
X"00",X"00",X"00",X"E0",X"C0",X"00",X"00",X"00",X"00",X"E0",X"C0",X"00",X"E0",X"C0",X"00",X"00",
X"00",X"60",X"E0",X"00",X"60",X"E0",X"00",X"00",X"00",X"00",X"C0",X"00",X"C0",X"00",X"00",X"00",
X"FF",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"80",
X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"FF",
X"00",X"00",X"00",X"00",X"06",X"06",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"06",X"00",X"00",
X"38",X"28",X"3E",X"00",X"00",X"00",X"00",X"00",X"3E",X"00",X"3C",X"02",X"02",X"3C",X"00",X"0E",
X"22",X"2A",X"3E",X"00",X"00",X"0E",X"3A",X"2A",X"22",X"3E",X"00",X"3E",X"08",X"10",X"3E",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"1C",X"22",X"A5",X"BD",X"81",X"42",X"3C",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"3C",X"42",X"81",X"A5",X"FE",X"C2",X"82",X"BA",X"44",X"44",X"28",X"10",
X"10",X"28",X"44",X"44",X"AA",X"BA",X"82",X"C2",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"03",X"07",X"45",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"A3",X"59",X"FD",X"FD",X"9D",X"8C",X"88",X"00",X"00",X"00",X"01",X"03",X"31",X"59",X"28",X"5C",
X"00",X"00",X"00",X"00",X"80",X"78",X"FC",X"7F",X"00",X"00",X"07",X"0F",X"0E",X"09",X"07",X"00",
X"40",X"A0",X"50",X"B0",X"D0",X"68",X"B8",X"50",X"3E",X"9E",X"AE",X"DA",X"CA",X"DE",X"CD",X"D1",
X"3F",X"7B",X"F1",X"FB",X"7F",X"FF",X"FD",X"78",X"00",X"0C",X"1E",X"3F",X"3F",X"3E",X"3E",X"1C",
X"B8",X"50",X"A8",X"50",X"B0",X"50",X"A0",X"40",X"D1",X"D1",X"CD",X"DE",X"DA",X"AA",X"BE",X"9E",
X"7D",X"7F",X"FF",X"FE",X"7C",X"FE",X"7F",X"3F",X"1E",X"3C",X"3E",X"3E",X"3F",X"1E",X"0C",X"00",
X"00",X"88",X"8C",X"9D",X"FD",X"FD",X"59",X"A3",X"AE",X"1C",X"6D",X"19",X"33",X"01",X"00",X"00",
X"7F",X"FF",X"7E",X"BE",X"1C",X"00",X"00",X"00",X"00",X"07",X"09",X"0E",X"0F",X"07",X"00",X"00",
X"45",X"07",X"03",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",
X"00",X"3C",X"7E",X"52",X"4A",X"7E",X"3C",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"00",X"22",X"72",X"5A",X"4E",X"66",X"22",X"00",X"00",X"44",X"6E",X"7A",X"52",X"46",X"44",X"00",
X"00",X"04",X"7E",X"7E",X"34",X"1C",X"0C",X"00",X"00",X"4C",X"5E",X"52",X"52",X"76",X"74",X"00",
X"00",X"0C",X"5E",X"52",X"52",X"7E",X"3C",X"00",X"00",X"60",X"70",X"58",X"4E",X"46",X"40",X"00",
X"00",X"2C",X"7E",X"52",X"52",X"7E",X"2C",X"00",X"00",X"38",X"7C",X"56",X"52",X"72",X"20",X"00",
X"7E",X"7E",X"30",X"18",X"30",X"7E",X"7E",X"00",X"1E",X"20",X"20",X"1E",X"20",X"20",X"3E",X"00",
X"01",X"01",X"01",X"FE",X"01",X"01",X"01",X"00",X"08",X"08",X"08",X"07",X"08",X"08",X"08",X"08",
X"00",X"00",X"00",X"01",X"01",X"01",X"FE",X"00",X"08",X"08",X"08",X"08",X"08",X"08",X"07",X"00",
X"00",X"00",X"00",X"07",X"08",X"08",X"08",X"08",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"FE",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"FF",X"FF",X"3F",X"03",X"03",X"3F",X"FF",X"FF",X"A7",X"A7",X"1F",X"1F",X"FF",X"1F",X"A7",X"A7",
X"00",X"00",X"00",X"00",X"1F",X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"7F",X"7F",X"3B",X"3B",X"3F",X"3D",X"7B",X"FF",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"00",X"00",X"04",X"00",X"00",X"10",X"00",
X"00",X"00",X"00",X"00",X"3F",X"60",X"40",X"40",X"40",X"40",X"40",X"60",X"3F",X"00",X"00",X"00",
X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"28",X"38",X"FF",X"38",X"28",X"00",
X"00",X"00",X"00",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"C7",X"C7",X"C7",X"00",X"00",
X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"02",X"04",X"00",X"FF",X"06",X"03",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"00",X"00",
X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"03",X"02",X"FC",X"FC",X"02",X"01",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"24",X"00",X"00",X"24",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"03",X"3B",X"61",X"41",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"70",X"7C",X"7E",
X"7E",X"7C",X"70",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"41",X"61",X"3B",X"03",
X"FC",X"FC",X"F8",X"F8",X"F0",X"F0",X"60",X"60",X"50",X"88",X"50",X"20",X"50",X"88",X"50",X"20",
X"50",X"88",X"50",X"20",X"50",X"88",X"50",X"20",X"60",X"60",X"F0",X"F0",X"F8",X"F8",X"FC",X"FC",
X"00",X"3F",X"40",X"C0",X"C0",X"40",X"40",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"40",X"40",X"40",X"C0",X"C0",X"40",X"3F",X"00",X"00",X"FC",X"02",X"03",X"03",X"02",X"02",X"02",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"02",X"02",X"03",X"03",X"02",X"FC",X"00",
X"00",X"08",X"0C",X"FC",X"FC",X"00",X"A4",X"A6",X"00",X"C0",X"E8",X"00",X"40",X"A0",X"F8",X"F8",
X"A0",X"A0",X"B0",X"BF",X"BF",X"B0",X"A0",X"A0",X"1C",X"3E",X"7E",X"7C",X"F8",X"FC",X"FE",X"FE",
X"FC",X"FE",X"FE",X"FC",X"F8",X"FC",X"FE",X"FE",X"FE",X"FC",X"FC",X"F8",X"7C",X"7E",X"3E",X"1C",
X"00",X"1F",X"3F",X"70",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",
X"60",X"60",X"60",X"60",X"70",X"3F",X"1F",X"00",X"06",X"06",X"0E",X"FE",X"FE",X"0E",X"06",X"06",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F0",X"00",X"F0",X"40",X"40",X"E0",X"E0",
X"00",X"04",X"04",X"FC",X"F8",X"00",X"A8",X"A8",X"E0",X"F8",X"7D",X"01",X"70",X"88",X"FE",X"FE",
X"00",X"F0",X"F0",X"60",X"60",X"F0",X"F0",X"00",X"81",X"80",X"90",X"80",X"A0",X"A1",X"81",X"81",
X"00",X"F8",X"FC",X"0E",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",
X"06",X"06",X"06",X"06",X"0E",X"FC",X"F8",X"00",X"00",X"3C",X"42",X"42",X"42",X"42",X"42",X"42",
X"42",X"42",X"42",X"42",X"42",X"42",X"3C",X"00",X"00",X"0F",X"0F",X"06",X"06",X"0F",X"0F",X"00",
X"04",X"08",X"10",X"08",X"04",X"02",X"01",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"90",X"90",X"8A",X"80",X"40",X"00",
X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",
X"81",X"00",X"00",X"18",X"18",X"00",X"00",X"81",X"00",X"00",X"04",X"0A",X"1F",X"17",X"0D",X"06",
X"38",X"7C",X"C2",X"82",X"86",X"7C",X"38",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"62",X"F2",X"BA",X"9A",X"9E",X"CE",X"46",X"00",X"8C",X"DE",X"F2",X"B2",X"92",X"86",X"04",X"00",
X"08",X"FE",X"FE",X"C8",X"68",X"38",X"18",X"00",X"1C",X"BE",X"A2",X"A2",X"A2",X"E6",X"E4",X"00",
X"0C",X"9E",X"92",X"92",X"D2",X"7E",X"3C",X"00",X"C0",X"E0",X"B0",X"9E",X"8E",X"C0",X"C0",X"00",
X"0C",X"6E",X"9A",X"9A",X"B2",X"F2",X"6C",X"00",X"78",X"FC",X"96",X"92",X"92",X"F2",X"60",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"3E",X"7E",X"C8",X"88",X"C8",X"7E",X"3E",X"00",
X"6C",X"FE",X"92",X"92",X"92",X"FE",X"FE",X"00",X"44",X"C6",X"82",X"82",X"C6",X"7C",X"38",X"00",
X"38",X"7C",X"C6",X"82",X"82",X"FE",X"FE",X"00",X"82",X"92",X"92",X"92",X"FE",X"FE",X"00",X"00",
X"80",X"90",X"90",X"90",X"90",X"FE",X"FE",X"00",X"9E",X"9E",X"92",X"82",X"C6",X"7C",X"38",X"00",
X"FE",X"FE",X"10",X"10",X"10",X"FE",X"FE",X"00",X"82",X"82",X"FE",X"FE",X"82",X"82",X"00",X"00",
X"FC",X"FE",X"02",X"02",X"02",X"06",X"04",X"00",X"82",X"C6",X"6E",X"3C",X"18",X"FE",X"FE",X"00",
X"02",X"02",X"02",X"02",X"FE",X"FE",X"00",X"00",X"FE",X"FE",X"70",X"38",X"70",X"FE",X"FE",X"00",
X"FE",X"FE",X"1C",X"38",X"70",X"FE",X"FE",X"00",X"7C",X"FE",X"82",X"82",X"82",X"FE",X"7C",X"00",
X"70",X"F8",X"88",X"88",X"88",X"FE",X"FE",X"00",X"7A",X"FC",X"8E",X"8A",X"82",X"FE",X"7C",X"00",
X"72",X"F6",X"9E",X"8C",X"88",X"FE",X"FE",X"00",X"0C",X"5E",X"D2",X"92",X"92",X"F6",X"64",X"00",
X"04",X"04",X"04",X"04",X"04",X"04",X"04",X"00",X"FC",X"FE",X"02",X"02",X"02",X"FE",X"FC",X"00",
X"F0",X"F8",X"1C",X"0E",X"1C",X"F8",X"F0",X"00",X"F8",X"FE",X"1C",X"38",X"1C",X"FE",X"F8",X"00",
X"C6",X"EE",X"7C",X"38",X"7C",X"EE",X"C6",X"00",X"C0",X"F0",X"1E",X"1E",X"F0",X"C0",X"00",X"00",
X"C2",X"E2",X"F2",X"BA",X"9E",X"8E",X"86",X"00",X"00",X"00",X"00",X"00",X"06",X"06",X"00",X"00",
X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"00",
X"00",X"00",X"00",X"00",X"28",X"00",X"00",X"00",X"40",X"40",X"40",X"40",X"40",X"40",X"40",X"40",
X"03",X"0F",X"1F",X"3F",X"3F",X"7F",X"7F",X"7F",X"C0",X"F0",X"F8",X"FC",X"FC",X"FE",X"FE",X"FE",
X"00",X"03",X"0F",X"1F",X"3F",X"7F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"C0",X"F0",X"FC",X"FE",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"80",X"81",X"C7",
X"7F",X"7F",X"3F",X"3F",X"1F",X"7F",X"FF",X"FF",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"EF",X"E7",X"E3",X"E1",X"E0",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"C3",X"07",X"DF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FC",
X"FF",X"FF",X"FF",X"FE",X"FC",X"FE",X"FF",X"FF",X"E0",X"C0",X"80",X"00",X"00",X"00",X"80",X"C0",
X"07",X"0F",X"1F",X"1F",X"3F",X"1F",X"1F",X"0F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FC",
X"FF",X"FF",X"FF",X"FC",X"F0",X"C0",X"00",X"00",X"F0",X"C0",X"00",X"00",X"00",X"00",X"00",X"00",
X"E0",X"E0",X"E1",X"E3",X"E7",X"EF",X"FF",X"FF",X"07",X"07",X"C3",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FC",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"F0",X"F0",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"00",
X"FE",X"FE",X"FE",X"FE",X"FE",X"FC",X"00",X"00",X"F8",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"00",X"C0",X"E0",X"F0",X"F8",X"F8",X"FC",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"F0",X"F0",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",X"3F",X"FC",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",
X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"00",X"3F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",
X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FE",X"FE",X"FE",X"FE",X"FE",X"FE",X"FC",X"FC",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7F",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"E0",
X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"3F",X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"F8",X"00",
X"F8",X"F8",X"F0",X"E0",X"C0",X"00",X"00",X"00",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7F",X"00",
X"3F",X"3F",X"3E",X"7E",X"7C",X"7C",X"7C",X"7C",X"0F",X"06",X"00",X"03",X"07",X"0F",X"1F",X"1F",
X"3E",X"3C",X"3E",X"3F",X"3F",X"1F",X"1F",X"0F",X"73",X"07",X"0F",X"0F",X"1F",X"1F",X"3F",X"3F",
X"1F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7C",X"79",X"7F",X"7F",X"7F",X"00",X"00",X"00",X"01",X"07",
X"3F",X"3F",X"3F",X"00",X"7F",X"7F",X"7F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",
X"FF",X"03",X"01",X"01",X"00",X"00",X"00",X"00",X"FF",X"01",X"FC",X"FF",X"FF",X"FF",X"FF",X"FF",
X"00",X"01",X"00",X"00",X"80",X"8C",X"9F",X"BF",X"FF",X"FF",X"FF",X"BF",X"9F",X"8C",X"80",X"00",
X"F8",X"F8",X"FF",X"FF",X"FF",X"00",X"7E",X"FF",X"FF",X"FF",X"FF",X"7F",X"7F",X"7F",X"FE",X"F8",
X"FF",X"FF",X"FF",X"00",X"FF",X"FF",X"FF",X"FF",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"00",
X"F0",X"F0",X"F0",X"F8",X"F8",X"F8",X"F8",X"F8",X"F0",X"E0",X"40",X"00",X"80",X"C0",X"E0",X"E0",
X"FC",X"FC",X"FC",X"7C",X"7C",X"78",X"F8",X"F0",X"C8",X"E0",X"F0",X"F0",X"F8",X"78",X"7C",X"7C",
X"00",X"00",X"F8",X"F8",X"F8",X"F8",X"38",X"98",X"F8",X"F8",X"F8",X"F8",X"E0",X"80",X"00",X"00",
X"FC",X"FC",X"FC",X"00",X"F8",X"F8",X"F8",X"F8",X"01",X"00",X"00",X"00",X"00",X"3F",X"3F",X"3F",
X"3C",X"3F",X"3F",X"3F",X"3F",X"3F",X"3F",X"07",X"7C",X"7C",X"7C",X"7F",X"7F",X"7F",X"07",X"31",
X"7C",X"7C",X"7C",X"7C",X"7C",X"7C",X"7C",X"7C",X"01",X"07",X"0F",X"3F",X"3F",X"3F",X"3F",X"02",
X"3F",X"3F",X"0F",X"03",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"3C",X"3E",X"3F",X"3F",X"3F",
X"FF",X"FF",X"3C",X"3C",X"3C",X"FF",X"FF",X"FF",X"7E",X"1C",X"C1",X"F3",X"FF",X"FF",X"FF",X"FF",
X"78",X"78",X"78",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"78",X"78",X"78",X"78",X"78",X"78",
X"FF",X"FF",X"F8",X"F0",X"E0",X"C0",X"80",X"00",X"E0",X"F0",X"F8",X"FF",X"FF",X"7F",X"7F",X"7F",
X"00",X"3C",X"7E",X"52",X"4A",X"7E",X"3C",X"00",X"02",X"02",X"FE",X"FE",X"42",X"02",X"00",X"00",
X"00",X"22",X"72",X"5A",X"4E",X"66",X"22",X"00",X"00",X"44",X"6E",X"7A",X"52",X"46",X"44",X"00",
X"00",X"04",X"7E",X"7E",X"34",X"1C",X"0C",X"00",X"00",X"4C",X"5E",X"52",X"52",X"76",X"74",X"00",
X"00",X"0C",X"5E",X"52",X"52",X"7E",X"3C",X"00",X"00",X"60",X"70",X"58",X"4E",X"46",X"40",X"00",
X"00",X"2C",X"7E",X"52",X"52",X"7E",X"2C",X"00",X"00",X"38",X"7C",X"56",X"52",X"72",X"20",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"C0",X"C0",X"00",X"00",X"00",X"00",X"FC",X"FC",X"FC",
X"7C",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"F0",X"F8",X"F8",X"F8",X"F8",X"F8",X"C0",X"9C",X"3C",
X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"F8",X"FC",X"FC",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"FC",X"FC",X"FC",X"FC",X"FC",X"7F",X"7F",X"1F",X"07",X"01",X"00",X"00",X"00",
X"0F",X"0F",X"63",X"78",X"7E",X"7F",X"7F",X"7F",X"3F",X"3E",X"3C",X"3E",X"3F",X"3F",X"1F",X"1F",
X"79",X"73",X"07",X"0F",X"0F",X"1F",X"1F",X"3F",X"07",X"1F",X"7F",X"7F",X"7F",X"7F",X"7F",X"7C",
X"7F",X"7F",X"7F",X"7F",X"00",X"00",X"00",X"01",X"1F",X"1F",X"0F",X"0F",X"00",X"7F",X"7F",X"7F",
X"FF",X"FF",X"FF",X"FF",X"FE",X"78",X"78",X"78",X"BF",X"FF",X"FE",X"FC",X"39",X"83",X"E7",X"FF",
X"00",X"00",X"01",X"00",X"00",X"80",X"8C",X"9F",X"FF",X"FF",X"FF",X"FF",X"BF",X"9F",X"8C",X"80",
X"F8",X"F8",X"F8",X"FF",X"FF",X"FF",X"00",X"7E",X"FF",X"FF",X"FF",X"FF",X"7F",X"7F",X"7F",X"FE",
X"FF",X"FF",X"FF",X"FF",X"00",X"FF",X"FF",X"FF",X"F8",X"F8",X"E0",X"80",X"00",X"00",X"00",X"00",
X"80",X"38",X"78",X"F8",X"F8",X"F8",X"F8",X"F8",X"7C",X"FC",X"FC",X"FC",X"7C",X"7C",X"78",X"F8",
X"98",X"C8",X"E0",X"F0",X"F0",X"F8",X"78",X"7C",X"00",X"00",X"00",X"F8",X"F8",X"F8",X"F8",X"38",
X"F8",X"F8",X"F8",X"F8",X"F8",X"E0",X"80",X"00",X"F8",X"F8",X"F0",X"F0",X"00",X"F8",X"F8",X"F8",
X"3F",X"3F",X"3E",X"3E",X"3E",X"3E",X"3F",X"3F",X"00",X"00",X"03",X"07",X"0F",X"0F",X"1F",X"1F",
X"88",X"00",X"00",X"00",X"00",X"00",X"00",X"81",X"00",X"8F",X"8F",X"8F",X"8F",X"8F",X"8F",X"88",
X"F8",X"7C",X"7C",X"7C",X"7C",X"7C",X"FC",X"FC",X"00",X"FC",X"FC",X"FC",X"FC",X"F0",X"F0",X"F0",
X"C0",X"E0",X"F0",X"F0",X"F8",X"F8",X"FC",X"FC",X"F0",X"F0",X"F0",X"F0",X"60",X"00",X"00",X"80",
X"00",X"00",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"E0",X"80",
X"F0",X"E0",X"00",X"00",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",
X"E0",X"C0",X"C0",X"80",X"00",X"00",X"00",X"E0",X"F8",X"F8",X"F8",X"F8",X"F8",X"F0",X"F0",X"E0",
X"C0",X"C0",X"E0",X"E0",X"F0",X"F0",X"F8",X"F8",X"F0",X"F0",X"F0",X"F0",X"70",X"20",X"00",X"80",
X"00",X"00",X"E0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"C0",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"F0",X"60",X"00",X"00",X"80",X"C0",X"C0",X"E0",
X"F0",X"F0",X"C0",X"00",X"00",X"00",X"00",X"E0",X"00",X"00",X"00",X"00",X"60",X"F0",X"F0",X"F0",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"28",X"38",X"FF",X"38",X"28",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"28",X"38",X"FF",X"38",X"28",X"00",
X"A0",X"A0",X"B0",X"BF",X"BF",X"B0",X"A0",X"A0",X"1C",X"3E",X"7E",X"7C",X"F8",X"FC",X"FE",X"FE",
X"FC",X"FE",X"FE",X"FC",X"F8",X"FC",X"FE",X"FE",X"FE",X"FC",X"FC",X"F8",X"7C",X"7E",X"3E",X"1C",
X"00",X"1F",X"3F",X"70",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",X"60",
X"60",X"60",X"60",X"60",X"70",X"3F",X"1F",X"00",X"06",X"06",X"0E",X"FE",X"FE",X"0E",X"06",X"06",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F0",X"00",X"F0",X"40",X"40",X"E0",X"E0",
X"00",X"04",X"04",X"FC",X"F8",X"00",X"A8",X"A8",X"E0",X"F8",X"7D",X"01",X"70",X"88",X"FE",X"FE",
X"00",X"F0",X"F0",X"60",X"60",X"F0",X"F0",X"00",X"81",X"80",X"90",X"80",X"A0",X"A1",X"81",X"81",
X"00",X"F8",X"FC",X"0E",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"06",
X"06",X"06",X"06",X"06",X"0E",X"FC",X"F8",X"00",X"00",X"3C",X"42",X"42",X"42",X"42",X"42",X"42",
X"42",X"42",X"42",X"42",X"42",X"42",X"3C",X"00",X"00",X"0F",X"0F",X"06",X"06",X"0F",X"0F",X"00",
X"04",X"08",X"10",X"08",X"04",X"02",X"01",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"90",X"90",X"8A",X"80",X"40",X"00",
X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",
X"81",X"00",X"00",X"18",X"18",X"00",X"00",X"81",X"00",X"00",X"04",X"0A",X"1F",X"17",X"0D",X"06");
begin
process(clk)
begin
if rising_edge(clk) then
data <= rom_data(to_integer(unsigned(addr)));
end if;
end process;
end architecture;