Revision 7
Added by markw over 11 years ago
common/a8core/synchronizer.vhdl | ||
---|---|---|
---------------------------------------------------------------------------
|
||
-- (c) 2013 mark watson
|
||
-- I am happy for anyone to use this for non-commercial use.
|
||
-- If my vhdl files are used commercially or otherwise sold,
|
||
-- please contact me for explicit permission at scrameta (gmail).
|
||
-- This applies for source and binary form and derived works.
|
||
---------------------------------------------------------------------------
|
||
LIBRARY ieee;
|
||
USE ieee.std_logic_1164.all;
|
||
use ieee.numeric_std.all;
|
||
|
||
ENTITY synchronizer IS
|
||
PORT
|
||
(
|
||
CLK : IN STD_LOGIC;
|
||
RAW : IN STD_LOGIC;
|
||
SYNC : OUT STD_LOGIC
|
||
);
|
||
END synchronizer;
|
||
|
||
ARCHITECTURE vhdl OF synchronizer IS
|
||
signal ff_next : std_logic_vector(2 downto 0);
|
||
signal ff_reg : std_logic_vector(2 downto 0);
|
||
begin
|
||
-- register
|
||
process(clk)
|
||
begin
|
||
if (clk'event and clk='1') then
|
||
ff_reg <= ff_next;
|
||
end if;
|
||
end process;
|
||
|
||
ff_next <= RAW&ff_reg(2 downto 1);
|
||
|
||
SYNC <= ff_reg(0);
|
||
|
||
end vhdl;
|
||
|
||
|
common/a8core/generic_ram_infer.vhdl | ||
---|---|---|
---------------------------------------------------------------------------
|
||
-- (c) 2013 mark watson
|
||
-- I am happy for anyone to use this for non-commercial use.
|
||
-- If my vhdl files are used commercially or otherwise sold,
|
||
-- please contact me for explicit permission at scrameta (gmail).
|
||
-- This applies for source and binary form and derived works.
|
||
---------------------------------------------------------------------------
|
||
LIBRARY ieee;
|
||
USE ieee.std_logic_1164.ALL;
|
||
use ieee.numeric_std.all;
|
||
|
||
ENTITY generic_ram_infer IS
|
||
generic
|
||
(
|
||
ADDRESS_WIDTH : natural := 9;
|
||
SPACE : natural := 512;
|
||
DATA_WIDTH : natural := 8
|
||
);
|
||
PORT
|
||
(
|
||
clock: IN std_logic;
|
||
data: IN std_logic_vector (data_width-1 DOWNTO 0);
|
||
address: IN std_logic_vector(address_width-1 downto 0);
|
||
we: IN std_logic;
|
||
q: OUT std_logic_vector (data_width-1 DOWNTO 0)
|
||
);
|
||
END generic_ram_infer;
|
||
|
||
ARCHITECTURE rtl OF generic_ram_infer IS
|
||
TYPE mem IS ARRAY(0 TO space-1) OF std_logic_vector(data_width-1 DOWNTO 0);
|
||
SIGNAL ram_block : mem;
|
||
BEGIN
|
||
PROCESS (clock)
|
||
BEGIN
|
||
IF (clock'event AND clock = '1') THEN
|
||
q<= (others=>'1');
|
||
IF (to_integer(to_01(unsigned(address))) < space) THEN
|
||
IF (we = '1') THEN
|
||
ram_block(to_integer(to_01(unsigned(address)))) <= data;
|
||
END IF;
|
||
q <= ram_block(to_integer(to_01(unsigned(address))));
|
||
END IF;
|
||
END IF;
|
||
END PROCESS;
|
||
END rtl;
|
common/a8core/complete_address_decoder.vhdl | ||
---|---|---|
---------------------------------------------------------------------------
|
||
-- (c) 2013 mark watson
|
||
-- I am happy for anyone to use this for non-commercial use.
|
||
-- If my vhdl files are used commercially or otherwise sold,
|
||
-- please contact me for explicit permission at scrameta (gmail).
|
||
-- This applies for source and binary form and derived works.
|
||
---------------------------------------------------------------------------
|
||
LIBRARY ieee;
|
||
USE ieee.std_logic_1164.all;
|
||
use ieee.numeric_std.all;
|
||
|
||
ENTITY complete_address_decoder IS
|
||
generic (width : natural := 1);
|
||
PORT
|
||
(
|
||
addr_in : in std_logic_vector(width-1 downto 0);
|
||
|
||
addr_decoded : out std_logic_vector((2**width)-1 downto 0)
|
||
);
|
||
END complete_address_decoder;
|
||
|
||
--ARCHITECTURE vhdl OF complete_address_decoder IS
|
||
--BEGIN
|
||
-- comp_gen:
|
||
-- for i in 0 to ((2**width)-1) generate
|
||
-- addr_decoded(i) <= '1' when i=to_integer(unsigned(addr_in)) else '0';
|
||
-- end generate;
|
||
--end vhdl;
|
||
|
||
architecture tree of complete_address_decoder is
|
||
constant STAGE : natural:=width;
|
||
type std_logic_2d is array (natural range <>,natural range <>) of std_logic;
|
||
signal p: std_logic_2d(stage downto 0,2**stage-1 downto 0);
|
||
signal a: std_logic_vector(width-1 downto 0) ;
|
||
begin
|
||
a<=addr_in;
|
||
process(a,p)
|
||
begin
|
||
p(stage,0) <= '1';
|
||
|
||
for s in stage downto 1 loop
|
||
for r in 0 to (2**(stage-s)-1) loop
|
||
p(s-1,2*r) <= (not a(s-1)) and p(s,r);
|
||
p(s-1,2*r+1) <= a(s-1) and p(s,r);
|
||
end loop;
|
||
end loop;
|
||
|
||
for i in 0 to (2**stage-1) loop
|
||
addr_decoded(i) <= p(0,i);
|
||
end loop;
|
||
end process;
|
||
end tree;
|
common/a8core/delay_line.vhdl | ||
---|---|---|
---------------------------------------------------------------------------
|
||
-- (c) 2013 mark watson
|
||
-- I am happy for anyone to use this for non-commercial use.
|
||
-- If my vhdl files are used commercially or otherwise sold,
|
||
-- please contact me for explicit permission at scrameta (gmail).
|
||
-- This applies for source and binary form and derived works.
|
||
---------------------------------------------------------------------------
|
||
LIBRARY ieee;
|
||
USE ieee.std_logic_1164.all;
|
||
use ieee.numeric_std.all;
|
||
|
||
ENTITY delay_line IS
|
||
generic(COUNT : natural := 1);
|
||
PORT
|
||
(
|
||
CLK : IN STD_LOGIC;
|
||
SYNC_RESET : IN STD_LOGIC;
|
||
DATA_IN : IN STD_LOGIC;
|
||
ENABLE : IN STD_LOGIC; -- i.e. shift on this clock
|
||
RESET_N : IN STD_LOGIC;
|
||
|
||
DATA_OUT : OUT STD_LOGIC
|
||
);
|
||
END delay_line;
|
||
|
||
ARCHITECTURE vhdl OF delay_line IS
|
||
signal shift_reg : std_logic_vector(COUNT-1 downto 0);
|
||
signal shift_next : std_logic_vector(COUNT-1 downto 0);
|
||
BEGIN
|
||
-- register
|
||
process(clk,reset_n)
|
||
begin
|
||
if (reset_N = '0') then
|
||
shift_reg <= (others=>'0');
|
||
elsif (clk'event and clk='1') then
|
||
shift_reg <= shift_next;
|
||
end if;
|
||
end process;
|
||
|
||
-- shift on enable
|
||
process(shift_reg,enable,data_in,sync_reset)
|
||
begin
|
||
shift_next <= shift_reg;
|
||
|
||
if (enable = '1') then
|
||
shift_next <= data_in&shift_reg(COUNT-1 downto 1);
|
||
end if;
|
||
|
||
if (sync_reset = '1') then
|
||
shift_next <= (others=>'0');
|
||
end if;
|
||
end process;
|
||
|
||
-- output
|
||
data_out <= shift_reg(0) and enable;
|
||
|
||
END vhdl;
|
common/a8core/syncreset_enable_divider.vhd | ||
---|---|---|
---------------------------------------------------------------------------
|
||
-- (c) 2013 mark watson
|
||
-- I am happy for anyone to use this for non-commercial use.
|
||
-- If my vhdl files are used commercially or otherwise sold,
|
||
-- please contact me for explicit permission at scrameta (gmail).
|
||
-- This applies for source and binary form and derived works.
|
||
---------------------------------------------------------------------------
|
||
LIBRARY ieee;
|
||
USE ieee.std_logic_1164.all;
|
||
use ieee.numeric_std.all;
|
||
|
||
ENTITY syncreset_enable_divider IS
|
||
generic(COUNT : natural := 1; RESETCOUNT : natural := 0);
|
||
PORT
|
||
(
|
||
CLK : IN STD_LOGIC;
|
||
SYNCRESET : in std_logic;
|
||
RESET_N : IN STD_LOGIC;
|
||
ENABLE_IN : IN STD_LOGIC;
|
||
|
||
ENABLE_OUT : OUT STD_LOGIC
|
||
);
|
||
END syncreset_enable_divider;
|
||
|
||
ARCHITECTURE vhdl OF syncreset_enable_divider IS
|
||
function log2c(n : integer) return integer is
|
||
variable m,p : integer;
|
||
begin
|
||
m := 0;
|
||
p := 1;
|
||
while p<n loop
|
||
m:=m+1;
|
||
p:=p*2;
|
||
end loop;
|
||
return m;
|
||
end log2c;
|
||
|
||
constant WIDTH : natural := log2c(COUNT);
|
||
signal count_reg : std_logic_vector(WIDTH-1 downto 0); -- width should depend on count
|
||
signal count_next : std_logic_vector(WIDTH-1 downto 0);
|
||
|
||
signal enabled_out_next : std_logic;
|
||
signal enabled_out_reg : std_logic;
|
||
BEGIN
|
||
-- register
|
||
process(clk,reset_n)
|
||
begin
|
||
if (reset_n = '0') then
|
||
count_reg <= (others=>'0');
|
||
enabled_out_reg <= '0';
|
||
elsif (clk'event and clk='1') then
|
||
count_reg <= count_next;
|
||
enabled_out_reg <= enabled_out_next;
|
||
end if;
|
||
end process;
|
||
|
||
-- Maintain a count in order to calculate a clock circa 1.79 (in this case 25/14) -> 64KHz -> /28
|
||
process(count_reg,enable_in,enabled_out_reg,syncreset)
|
||
begin
|
||
count_next <= count_reg;
|
||
enabled_out_next <= enabled_out_reg;
|
||
|
||
if (enable_in = '1') then
|
||
count_next <= std_logic_vector(unsigned(count_reg) + 1);
|
||
enabled_out_next <= '0';
|
||
|
||
if (unsigned(count_reg) = to_unsigned(COUNT-1,WIDTH)) then
|
||
count_next <= std_logic_vector(to_unsigned(0,WIDTH));
|
||
enabled_out_next <= '1';
|
||
end if;
|
||
end if;
|
||
|
||
if (syncreset='1') then
|
||
count_next <= std_logic_vector(to_unsigned(resetcount,width));
|
||
end if;
|
||
end process;
|
||
|
||
-- output
|
||
enable_out <= enabled_out_reg and enable_in;
|
||
|
||
END vhdl;
|
common/a8core/countdown_timer.vhdl | ||
---|---|---|
---------------------------------------------------------------------------
|
||
-- (c) 2013 mark watson
|
||
-- I am happy for anyone to use this for non-commercial use.
|
||
-- If my vhdl files are used commercially or otherwise sold,
|
||
-- please contact me for explicit permission at scrameta (gmail).
|
||
-- This applies for source and binary form and derived works.
|
||
---------------------------------------------------------------------------
|
||
LIBRARY ieee;
|
||
USE ieee.std_logic_1164.all;
|
||
use ieee.numeric_std.all;
|
||
|
||
ENTITY pokey_countdown_timer IS
|
||
generic(UNDERFLOW_DELAY : natural := 3);
|
||
PORT
|
||
(
|
||
CLK : IN STD_LOGIC;
|
||
ENABLE : IN STD_LOGIC;
|
||
ENABLE_UNDERFLOW : IN STD_LOGIC;
|
||
RESET_N : IN STD_LOGIC;
|
||
|
||
WR_EN : IN STD_LOGIC;
|
||
DATA_IN : IN STD_LOGIC_VECTOR(7 downto 0);
|
||
|
||
DATA_OUT : OUT STD_LOGIC
|
||
);
|
||
END pokey_countdown_timer;
|
||
|
||
ARCHITECTURE vhdl OF pokey_countdown_timer IS
|
||
component delay_line IS
|
||
generic(COUNT : natural := 1);
|
||
PORT
|
||
(
|
||
CLK : IN STD_LOGIC;
|
||
SYNC_RESET : IN STD_LOGIC;
|
||
DATA_IN : IN STD_LOGIC;
|
||
|
||
ENABLE : IN STD_LOGIC;
|
||
RESET_N : IN STD_LOGIC;
|
||
|
||
DATA_OUT : OUT STD_LOGIC
|
||
);
|
||
END component;
|
||
|
||
function To_Std_Logic(L: BOOLEAN) return std_ulogic is
|
||
begin
|
||
if L then
|
||
return('1');
|
||
else
|
||
return('0');
|
||
end if;
|
||
end function To_Std_Logic;
|
||
|
||
signal count_reg : std_logic_vector(7 downto 0);
|
||
signal count_next: std_logic_vector(7 downto 0);
|
||
|
||
signal underflow : std_logic;
|
||
|
||
signal count_command : std_logic_vector(1 downto 0);
|
||
signal underflow_command: std_logic_vector(1 downto 0);
|
||
BEGIN
|
||
-- Instantiate delay (provides output)
|
||
underflow0_delay : delay_line
|
||
generic map (COUNT=>UNDERFLOW_DELAY)
|
||
port map(clk=>clk,sync_reset=>wr_en,data_in=>underflow,enable=>ENABLE_UNDERFLOW,reset_n=>reset_n,data_out=>data_out);
|
||
|
||
-- register
|
||
process(clk,reset_n)
|
||
begin
|
||
if (reset_N = '0') then
|
||
count_reg <= (others=>'0');
|
||
elsif (clk'event and clk='1') then
|
||
count_reg <= count_next;
|
||
end if;
|
||
end process;
|
||
|
||
-- count down on enable
|
||
process(count_reg,enable,wr_en,count_command,data_in)
|
||
begin
|
||
count_command <= enable&wr_en;
|
||
case count_command is
|
||
when "10" =>
|
||
count_next <= std_logic_vector(unsigned(count_reg) -1);
|
||
when "01"|"11" =>
|
||
count_next <= data_in;
|
||
when others =>
|
||
count_next <= count_reg;
|
||
end case;
|
||
end process;
|
||
|
||
-- underflow
|
||
process(count_reg,enable,underflow_command)
|
||
begin
|
||
underflow_command <= enable & To_Std_Logic(count_reg = X"00");
|
||
case underflow_command is
|
||
when "11" =>
|
||
underflow <= '1';
|
||
when others =>
|
||
underflow <= '0';
|
||
end case;
|
||
end process;
|
||
|
||
END vhdl;
|
common/zpu/zpu_rom.vhdl | ||
---|---|---|
|
||
--
|
||
--ROMsUsingBlockRAMResources.
|
||
--VHDLcodeforaROMwithregisteredoutput(template2)
|
||
--
|
||
library ieee;
|
||
use ieee.std_logic_1164.all;
|
||
use ieee.std_logic_unsigned.all;
|
||
|
||
entity zpu_rom is
|
||
port(
|
||
clock:in std_logic;
|
||
address:in std_logic_vector(11 downto 0);
|
||
q:out std_logic_vector(31 downto 0)
|
||
);
|
||
end zpu_rom;
|
||
|
||
architecture syn of zpu_rom is
|
||
type rom_type is array(0 to 4095) of std_logic_vector(31 downto 0);
|
||
signal ROM:rom_type:=
|
||
(
|
||
X"0b0b0b89",
|
||
X"ab040b0b",
|
||
X"0b0b0b0b",
|
||
X"0b0b0b0b",
|
||
X"0b0b0b0b",
|
||
X"0b0b0b0b",
|
||
X"0b0b0b0b",
|
||
X"0b0b0b0b",
|
||
X"0b0b0b0b",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"71fd0608",
|
||
X"72830609",
|
||
X"81058205",
|
||
X"832b2a83",
|
||
X"ffff0652",
|
||
X"04000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"71fd0608",
|
||
X"83ffff73",
|
||
X"83060981",
|
||
X"05820583",
|
||
X"2b2b0906",
|
||
X"7383ffff",
|
||
X"0b0b0b0b",
|
||
X"83a70400",
|
||
X"72098105",
|
||
X"72057373",
|
||
X"09060906",
|
||
X"73097306",
|
||
X"070a8106",
|
||
X"53510400",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"72722473",
|
||
X"732e0753",
|
||
X"51040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"71737109",
|
||
X"71068106",
|
||
X"30720a10",
|
||
X"0a720a10",
|
||
X"0a31050a",
|
||
X"81065151",
|
||
X"53510400",
|
||
X"00000000",
|
||
X"72722673",
|
||
X"732e0753",
|
||
X"51040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"0b0b0b88",
|
||
X"bc040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"720a722b",
|
||
X"0a535104",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"72729f06",
|
||
X"0981050b",
|
||
X"0b0b889f",
|
||
X"05040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"72722aff",
|
||
X"739f062a",
|
||
X"0974090a",
|
||
X"8106ff05",
|
||
X"06075351",
|
||
X"04000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"71715351",
|
||
X"020d0406",
|
||
X"73830609",
|
||
X"81058205",
|
||
X"832b0b2b",
|
||
X"0772fc06",
|
||
X"0c515104",
|
||
X"00000000",
|
||
X"72098105",
|
||
X"72050970",
|
||
X"81050906",
|
||
X"0a810653",
|
||
X"51040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"72098105",
|
||
X"72050970",
|
||
X"81050906",
|
||
X"0a098106",
|
||
X"53510400",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"71098105",
|
||
X"52040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"72720981",
|
||
X"05055351",
|
||
X"04000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"72097206",
|
||
X"73730906",
|
||
X"07535104",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"71fc0608",
|
||
X"72830609",
|
||
X"81058305",
|
||
X"1010102a",
|
||
X"81ff0652",
|
||
X"04000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"71fc0608",
|
||
X"0b0b0b92",
|
||
X"b8738306",
|
||
X"10100508",
|
||
X"060b0b0b",
|
||
X"88a20400",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"0b0b0b88",
|
||
X"fe040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"0b0b0b88",
|
||
X"d8040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"72097081",
|
||
X"0509060a",
|
||
X"8106ff05",
|
||
X"70547106",
|
||
X"73097274",
|
||
X"05ff0506",
|
||
X"07515151",
|
||
X"04000000",
|
||
X"72097081",
|
||
X"0509060a",
|
||
X"098106ff",
|
||
X"05705471",
|
||
X"06730972",
|
||
X"7405ff05",
|
||
X"06075151",
|
||
X"51040000",
|
||
X"05ff0504",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"810b92c8",
|
||
X"0c510400",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00718105",
|
||
X"52040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00028405",
|
||
X"72101005",
|
||
X"52040000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00717105",
|
||
X"ff057153",
|
||
X"51020d04",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"10101010",
|
||
X"10101010",
|
||
X"10101010",
|
||
X"10101010",
|
||
X"10101010",
|
||
X"10101010",
|
||
X"10101010",
|
||
X"10101053",
|
||
X"51047381",
|
||
X"ff067383",
|
||
X"06098105",
|
||
X"83051010",
|
||
X"102b0772",
|
||
X"fc060c51",
|
||
X"51043c04",
|
||
X"72728072",
|
||
X"8106ff05",
|
||
X"09720605",
|
||
X"71105272",
|
||
X"0a100a53",
|
||
X"72ed3851",
|
||
X"51535104",
|
||
X"83e08008",
|
||
X"83e08408",
|
||
X"83e08808",
|
||
X"75758f82",
|
||
X"2d505083",
|
||
X"e0800856",
|
||
X"83e0880c",
|
||
X"83e0840c",
|
||
X"83e0800c",
|
||
X"510483e0",
|
||
X"800883e0",
|
||
X"840883e0",
|
||
X"88087575",
|
||
X"8d962d50",
|
||
X"5083e080",
|
||
X"085683e0",
|
||
X"880c83e0",
|
||
X"840c83e0",
|
||
X"800c5104",
|
||
X"00008004",
|
||
X"89a80489",
|
||
X"a80b8cd8",
|
||
X"0483e08c",
|
||
X"080283e0",
|
||
X"8c0cfe3d",
|
||
X"0d83e08c",
|
||
X"08880508",
|
||
X"7070832b",
|
||
X"70733170",
|
||
X"822b7083",
|
||
X"e08c08fc",
|
||
X"050c92d4",
|
||
X"0883e08c",
|
||
X"08fc0508",
|
||
X"710c5151",
|
||
X"51515252",
|
||
X"843d0d83",
|
||
X"e08c0c04",
|
||
X"83e08c08",
|
||
X"0283e08c",
|
||
X"0cff3d0d",
|
||
X"800b83e0",
|
||
X"8c08fc05",
|
||
X"0c92e408",
|
||
X"51ff87c3",
|
||
X"e1f0710c",
|
||
X"92e00851",
|
||
X"80710c88",
|
||
X"800a0b83",
|
||
X"e08c08fc",
|
||
X"050c83e0",
|
||
X"8c08fc05",
|
||
X"08818480",
|
||
X"802e9e38",
|
||
X"83e08c08",
|
||
X"fc050851",
|
||
X"80713483",
|
||
X"e08c08fc",
|
||
X"05088105",
|
||
X"83e08c08",
|
||
X"fc050cd6",
|
||
X"3992e408",
|
||
X"5185aad5",
|
||
X"aad5710c",
|
||
X"92e00851",
|
||
X"85aad5aa",
|
||
X"d5710c82",
|
||
X"800a0b83",
|
||
X"e08c08fc",
|
||
X"050c83e0",
|
||
X"8c08fc05",
|
||
X"08848480",
|
||
X"802e9e38",
|
||
X"83e08c08",
|
||
X"fc050851",
|
||
X"80710c83",
|
||
X"e08c08fc",
|
||
X"05088405",
|
||
X"83e08c08",
|
||
X"fc050cd6",
|
||
X"3992e408",
|
||
X"5180710c",
|
||
X"92e00851",
|
||
X"ff87c3e1",
|
||
X"f0710c83",
|
||
X"3d0d83e0",
|
||
X"8c0c0483",
|
||
X"e08c0802",
|
||
X"83e08c0c",
|
||
X"fe3d0d92",
|
||
X"d0087008",
|
||
X"83e08c08",
|
||
X"fc050c51",
|
||
X"83e08c08",
|
||
X"88050881",
|
||
X"2e098106",
|
||
X"953892d0",
|
||
X"0883e08c",
|
||
X"08fc0508",
|
||
X"feff0670",
|
||
X"720c5252",
|
||
X"933992d0",
|
||
X"0883e08c",
|
||
X"08fc0508",
|
||
X"81800770",
|
||
X"720c5252",
|
||
X"843d0d83",
|
||
X"e08c0c04",
|
||
X"83e08c08",
|
||
X"0283e08c",
|
||
X"0cfe3d0d",
|
||
X"92d00870",
|
||
X"0883e08c",
|
||
X"08fc050c",
|
||
X"5183e08c",
|
||
X"08880508",
|
||
X"953892d0",
|
||
X"0883e08c",
|
||
X"08fc0508",
|
||
X"ffbf0670",
|
||
X"720c5252",
|
||
X"933992d0",
|
||
X"0883e08c",
|
||
X"08fc0508",
|
||
X"80c00770",
|
||
X"720c5252",
|
||
X"843d0d83",
|
||
X"e08c0c04",
|
||
X"83e08c08",
|
||
X"0283e08c",
|
||
X"0cfd3d0d",
|
||
X"800b83e0",
|
||
X"8c08fc05",
|
||
X"0c800b83",
|
||
X"e08c08f8",
|
||
X"05348151",
|
||
X"ff8e3f80",
|
||
X"51feb43f",
|
||
X"93b40852",
|
||
X"807234fc",
|
||
X"e73f8151",
|
||
X"fea53f80",
|
||
X"51fef53f",
|
||
X"ff3983e0",
|
||
X"8c080283",
|
||
X"e08c0cf9",
|
||
X"3d0d800b",
|
||
X"83e08c08",
|
||
X"fc050c83",
|
||
X"e08c0888",
|
||
X"05088025",
|
||
X"b93883e0",
|
||
X"8c088805",
|
||
X"083083e0",
|
||
X"8c088805",
|
||
X"0c800b83",
|
||
X"e08c08f4",
|
||
X"050c83e0",
|
||
X"8c08fc05",
|
||
X"088a3881",
|
||
X"0b83e08c",
|
||
X"08f4050c",
|
||
X"83e08c08",
|
||
X"f4050883",
|
||
X"e08c08fc",
|
||
X"050c83e0",
|
||
X"8c088c05",
|
||
X"088025b9",
|
||
X"3883e08c",
|
||
X"088c0508",
|
||
X"3083e08c",
|
||
X"088c050c",
|
||
X"800b83e0",
|
||
X"8c08f005",
|
||
X"0c83e08c",
|
||
X"08fc0508",
|
||
X"8a38810b",
|
||
X"83e08c08",
|
||
X"f0050c83",
|
||
X"e08c08f0",
|
||
X"050883e0",
|
||
X"8c08fc05",
|
||
X"0c805383",
|
||
X"e08c088c",
|
||
X"05085283",
|
||
X"e08c0888",
|
||
X"05085181",
|
||
X"df3f83e0",
|
||
X"80087083",
|
||
X"e08c08f8",
|
||
X"050c5483",
|
||
X"e08c08fc",
|
||
X"0508802e",
|
||
X"903883e0",
|
||
X"8c08f805",
|
||
X"083083e0",
|
||
X"8c08f805",
|
||
X"0c83e08c",
|
||
X"08f80508",
|
||
X"7083e080",
|
||
X"0c54893d",
|
||
X"0d83e08c",
|
||
X"0c0483e0",
|
||
X"8c080283",
|
||
X"e08c0cfb",
|
||
X"3d0d800b",
|
||
X"83e08c08",
|
||
X"fc050c83",
|
||
X"e08c0888",
|
||
X"05088025",
|
||
X"993883e0",
|
||
X"8c088805",
|
||
X"083083e0",
|
||
X"8c088805",
|
||
X"0c810b83",
|
||
X"e08c08fc",
|
||
X"050c83e0",
|
||
X"8c088c05",
|
||
X"08802590",
|
||
X"3883e08c",
|
||
X"088c0508",
|
||
X"3083e08c",
|
||
X"088c050c",
|
||
X"815383e0",
|
||
X"8c088c05",
|
||
X"085283e0",
|
||
X"8c088805",
|
||
X"0851bd3f",
|
||
X"83e08008",
|
||
X"7083e08c",
|
||
X"08f8050c",
|
||
X"5483e08c",
|
||
X"08fc0508",
|
||
X"802e9038",
|
||
X"83e08c08",
|
||
X"f8050830",
|
||
X"83e08c08",
|
||
X"f8050c83",
|
||
X"e08c08f8",
|
||
X"05087083",
|
||
X"e0800c54",
|
||
X"873d0d83",
|
||
X"e08c0c04",
|
||
X"83e08c08",
|
||
X"0283e08c",
|
||
X"0cfd3d0d",
|
||
X"810b83e0",
|
||
X"8c08fc05",
|
||
X"0c800b83",
|
||
X"e08c08f8",
|
||
X"050c83e0",
|
||
X"8c088c05",
|
||
X"0883e08c",
|
||
X"08880508",
|
||
X"27b93883",
|
||
X"e08c08fc",
|
||
X"0508802e",
|
||
X"ae38800b",
|
||
X"83e08c08",
|
||
X"8c050824",
|
||
X"a23883e0",
|
||
X"8c088c05",
|
||
X"081083e0",
|
||
X"8c088c05",
|
||
X"0c83e08c",
|
||
X"08fc0508",
|
||
X"1083e08c",
|
||
X"08fc050c",
|
||
X"ffb83983",
|
||
X"e08c08fc",
|
||
X"0508802e",
|
||
X"80e13883",
|
||
X"e08c088c",
|
||
X"050883e0",
|
||
X"8c088805",
|
||
X"0826ad38",
|
||
X"83e08c08",
|
||
X"88050883",
|
||
X"e08c088c",
|
||
X"05083183",
|
||
X"e08c0888",
|
||
X"050c83e0",
|
||
X"8c08f805",
|
||
X"0883e08c",
|
||
X"08fc0508",
|
||
X"0783e08c",
|
||
X"08f8050c",
|
||
X"83e08c08",
|
||
X"fc050881",
|
||
X"2a83e08c",
|
||
X"08fc050c",
|
||
X"83e08c08",
|
||
X"8c050881",
|
||
X"2a83e08c",
|
||
X"088c050c",
|
||
X"ff953983",
|
||
X"e08c0890",
|
||
X"0508802e",
|
||
X"933883e0",
|
||
X"8c088805",
|
||
X"087083e0",
|
||
X"8c08f405",
|
||
X"0c519139",
|
||
X"83e08c08",
|
||
X"f8050870",
|
||
X"83e08c08",
|
||
X"f4050c51",
|
||
X"83e08c08",
|
||
X"f4050883",
|
||
X"e0800c85",
|
||
X"3d0d83e0",
|
||
X"8c0c0400",
|
||
X"00ffffff",
|
||
X"ff00ffff",
|
||
X"ffff00ff",
|
||
X"ffffff00",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00040000",
|
||
X"00040004",
|
||
X"00040008",
|
||
X"0004000c",
|
||
X"00040010",
|
||
X"00040014",
|
||
X"00040018",
|
||
X"0004001c",
|
||
X"00040020",
|
||
X"00040024",
|
||
X"00040028",
|
||
X"0004002c",
|
||
X"00040040",
|
||
X"00040044",
|
||
X"00040048",
|
||
X"0004004c",
|
||
X"00040050",
|
||
X"00040054",
|
||
X"00040058",
|
||
X"0004005c",
|
||
X"00040060",
|
||
X"00040068",
|
||
X"00040074",
|
||
X"00040078",
|
||
X"0004007c",
|
||
X"0001d40e",
|
||
X"0001d402",
|
||
X"0001d403",
|
||
X"0001d01a",
|
||
X"0001d017",
|
||
X"0001d018",
|
||
X"0001d01b",
|
||
X"0001d20a",
|
||
X"0001d300",
|
||
X"0001d301",
|
||
X"0001d010",
|
||
X"0001d409",
|
||
X"0001d401",
|
||
X"0001d400",
|
||
X"0001d20f",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
||
X"00000000",
|
Also available in: Unified diff
Cleaned up ZPU into slightly more generic form, though still clearly atari core targetted. Added inital tb, though needs rom to verify more. MIST sector side removed, but should be possible with external changes. Now ZPU instead has lots of GPIO.