Project

General

Profile

« Previous | Next » 

Revision 321

Added by markw over 10 years ago

Space reduction to fit onto a Spartan 6 LX9. Allow disabling stereo and covox. Also replace pokey non-linear table with a piecewise linear function rather than a LUT

View differences:

common/a8core/address_decoder.vhdl
GENERIC
(
low_memory : integer := 0; -- if 0, we assume 8MB SDRAM, if 1, we assume 1MB 'SDRAM'.
stereo : integer := 1;
system : integer := 0 -- 0=Atari XL, 10=Atari5200 (space left for more systems)
);
PORT
......
-- POKEY
when X"D2" =>
if (addr_next(4) = '0') then
if (stereo=0 or addr_next(4) = '0') then
POKEY_WR_ENABLE <= write_enable_next;
MEMORY_DATA(7 downto 0) <= POKEY_DATA;
MEMORY_DATA(15 downto 8) <= CACHE_POKEY_DATA;
common/a8core/atari800core.vhd
cycle_length : integer := 16; -- or 32...
video_bits : integer := 8;
palette : integer :=0; -- 0:gtia colour on VIDEO_B, 1:on
low_memory : integer := 0 -- 0:8MB memory map, 1:1MB memory map
low_memory : integer := 0; -- 0:8MB memory map, 1:1MB memory map
stereo : integer := 1;
covox : integer := 1
);
PORT
(
......
VOLUME_OUT_L => AUDIO_L,
VOLUME_OUT_R => AUDIO_R);
gen_stereo : if stereo=1 generate
pokey2 : entity work.pokey
PORT MAP(CLK => CLK,
ENABLE_179 => ENABLE_179_MEMWAIT,
......
SIO_IN3 => '1',
keyboard_response => "00",
pot_in=>"00000000");
end generate;
gen_mono : if stereo=0 generate
POKEY2_CHANNEL0 <= POKEY1_CHANNEL0;
POKEY2_CHANNEL1 <= POKEY1_CHANNEL1;
POKEY2_CHANNEL2 <= POKEY1_CHANNEL2;
POKEY2_CHANNEL3 <= POKEY1_CHANNEL3;
end generate;
pia1 : entity work.pia
PORT MAP(CLK => CLK,
EN => PIA_READ_ENABLE,
......
PORTB_OUT => PORTB_OUT_INT);
mmu1 : entity work.address_decoder
GENERIC MAP(low_memory => low_memory)
GENERIC MAP(low_memory => low_memory, stereo => stereo)
PORT MAP(CLK => CLK,
CPU_FETCH => CPU_FETCH,
CPU_WRITE_N => R_W_N,
......
DATA_OUT => CACHE_ANTIC_DO
);
gen_covox_off : if covox=0 generate
COVOX_CHANNEL0 <= (others=>'0');
COVOX_CHANNEL1 <= (others=>'0');
COVOX_CHANNEL2 <= (others=>'0');
COVOX_CHANNEL3 <= (others=>'0');
end generate;
gen_covox_on : if covox=1 generate
covox1 : entity work.covox
PORT map
(
......
covox_channel2 => covox_channel2,
covox_channel3 => covox_channel3
);
end generate;
-- outputs
PBI_ADDR <= PBI_ADDR_INT;
common/a8core/atari800core_simple_sdram.vhd
internal_ram : integer := 16384; -- at start of memory map
-- Use 1MB memory map if low memory set (for Aeon lite)
low_memory : integer := 0
low_memory : integer := 0;
-- one or two pokey chips
stereo : integer := 1;
-- resistor ladder style 8-bit sample thing
covox : integer := 1
);
PORT
(
......
cycle_length => cycle_length,
video_bits => video_bits,
palette => palette,
low_memory => low_memory
low_memory => low_memory,
stereo => stereo,
covox => covox
)
PORT MAP
(
common/a8core/internalromram.vhd
signal ROM2_DATA : std_logic_vector(7 downto 0);
signal BASIC_DATA : std_logic_vector(7 downto 0);
signal ramwe_temp : std_logic;
begin
process(clock,reset_n)
begin
......
end generate;
gen_internal_ram: if internal_ram>0 generate
ramwe_temp <= RAM_WR_ENABLE and ram_request;
ramint1 : entity work.generic_ram_infer
generic map
(
......
PORT MAP(clock => clock,
address => ram_addr,
data => ram_data_in(7 downto 0),
we => RAM_WR_ENABLE and ram_request,
we => ramwe_temp,
q => ram_data
);
ram_request_complete <= ram_request_reg;
common/a8core/pokey_mixer.vhdl
ENTITY pokey_mixer IS
PORT
(
CLK : IN STD_LOGIC;
CHANNEL_0 : IN STD_LOGIC_VECTOR(3 downto 0);
CHANNEL_1 : IN STD_LOGIC_VECTOR(3 downto 0);
CHANNEL_2 : IN STD_LOGIC_VECTOR(3 downto 0);
......
END pokey_mixer;
ARCHITECTURE vhdl OF pokey_mixer IS
signal volume_sum : std_logic_vector(9 downto 0);
signal volume_sum_next : std_logic_vector(9 downto 0);
signal volume_sum_reg : std_logic_vector(9 downto 0);
signal volume_next : std_logic_vector(15 downto 0);
signal y1 : signed(15 downto 0);
signal y1_reg : signed(15 downto 0);
signal y2 : signed(15 downto 0);
signal ych : signed(15 downto 0);
signal yadj_next : signed(31 downto 0);
signal yadj_reg : signed(31 downto 0);
signal b_in : signed(15 downto 0);
BEGIN
process(clk)
begin
if (clk'event and clk='1') then
VOLUME_SUM_REG <= VOLUME_SUM_NEXT;
YADJ_REG <= YADJ_NEXT;
Y1_REG <= Y1;
END IF;
END PROCESS;
-- next state
process (channel_0,channel_1,channel_2,channel_3,covox_CHANNEL_0,covox_channel_1,gtia_sound)
variable channel0_en_long : unsigned(10 downto 0);
......
volume_int_sum := ((channel0_en_long + channel1_en_long) + (channel2_en_long + channel3_en_long)) + (gtia_sound_long + (covox_0_long + covox_1_long));
volume_sum(9 downto 0) <= std_logic_vector(volume_int_sum(9 downto 0)) or volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10);
volume_sum_next(9 downto 0) <= std_logic_vector(volume_int_sum(9 downto 0)) or volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10)&volume_int_sum(10);
end process;
process (volume_sum, volume_next)
process (volume_sum_reg, y1, y2, y1_reg, yadj_reg)
type LOOKUP_TYPE is array (0 to 32) of signed(15 downto 0);
variable lookup : LOOKUP_TYPE;
begin
case volume_sum(9 downto 0) is
when "0000000000" =>
volume_next <= X"8001";
when "0000000001" =>
volume_next <= X"80ce";
when "0000000010" =>
volume_next <= X"819a";
when "0000000011" =>
volume_next <= X"8266";
when "0000000100" =>
volume_next <= X"8331";
when "0000000101" =>
volume_next <= X"83fc";
when "0000000110" =>
volume_next <= X"84c6";
when "0000000111" =>
volume_next <= X"8590";
when "0000001000" =>
volume_next <= X"8659";
when "0000001001" =>
volume_next <= X"8722";
when "0000001010" =>
volume_next <= X"87ea";
when "0000001011" =>
volume_next <= X"88b2";
when "0000001100" =>
volume_next <= X"8979";
when "0000001101" =>
volume_next <= X"8a40";
when "0000001110" =>
volume_next <= X"8b07";
when "0000001111" =>
volume_next <= X"8bcd";
when "0000010000" =>
volume_next <= X"8c93";
when "0000010001" =>
volume_next <= X"8d58";
when "0000010010" =>
volume_next <= X"8e1c";
when "0000010011" =>
volume_next <= X"8ee1";
when "0000010100" =>
volume_next <= X"8fa4";
when "0000010101" =>
volume_next <= X"9068";
when "0000010110" =>
volume_next <= X"912a";
when "0000010111" =>
volume_next <= X"91ed";
when "0000011000" =>
volume_next <= X"92af";
when "0000011001" =>
volume_next <= X"9370";
when "0000011010" =>
volume_next <= X"9431";
when "0000011011" =>
volume_next <= X"94f2";
when "0000011100" =>
volume_next <= X"95b2";
when "0000011101" =>
volume_next <= X"9672";
when "0000011110" =>
volume_next <= X"9731";
when "0000011111" =>
volume_next <= X"97ef";
when "0000100000" =>
volume_next <= X"98ae";
when "0000100001" =>
volume_next <= X"996c";
when "0000100010" =>
volume_next <= X"9a29";
when "0000100011" =>
volume_next <= X"9ae6";
when "0000100100" =>
volume_next <= X"9ba2";
when "0000100101" =>
volume_next <= X"9c5e";
when "0000100110" =>
volume_next <= X"9d1a";
when "0000100111" =>
volume_next <= X"9dd5";
when "0000101000" =>
volume_next <= X"9e90";
when "0000101001" =>
volume_next <= X"9f4a";
when "0000101010" =>
volume_next <= X"a004";
when "0000101011" =>
volume_next <= X"a0bd";
when "0000101100" =>
volume_next <= X"a176";
when "0000101101" =>
volume_next <= X"a22f";
when "0000101110" =>
volume_next <= X"a2e7";
when "0000101111" =>
volume_next <= X"a39e";
when "0000110000" =>
volume_next <= X"a456";
when "0000110001" =>
volume_next <= X"a50c";
when "0000110010" =>
volume_next <= X"a5c3";
when "0000110011" =>
volume_next <= X"a678";
when "0000110100" =>
volume_next <= X"a72e";
when "0000110101" =>
volume_next <= X"a7e3";
when "0000110110" =>
volume_next <= X"a897";
when "0000110111" =>
volume_next <= X"a94b";
when "0000111000" =>
volume_next <= X"a9ff";
when "0000111001" =>
volume_next <= X"aab2";
when "0000111010" =>
volume_next <= X"ab65";
when "0000111011" =>
volume_next <= X"ac17";
when "0000111100" =>
volume_next <= X"acc9";
when "0000111101" =>
volume_next <= X"ad7b";
when "0000111110" =>
volume_next <= X"ae2c";
when "0000111111" =>
volume_next <= X"aedc";
when "0001000000" =>
volume_next <= X"af8c";
when "0001000001" =>
volume_next <= X"b03c";
when "0001000010" =>
volume_next <= X"b0eb";
when "0001000011" =>
volume_next <= X"b19a";
when "0001000100" =>
volume_next <= X"b249";
when "0001000101" =>
volume_next <= X"b2f7";
when "0001000110" =>
volume_next <= X"b3a4";
when "0001000111" =>
volume_next <= X"b451";
when "0001001000" =>
volume_next <= X"b4fe";
when "0001001001" =>
volume_next <= X"b5aa";
when "0001001010" =>
volume_next <= X"b656";
when "0001001011" =>
volume_next <= X"b702";
when "0001001100" =>
volume_next <= X"b7ad";
when "0001001101" =>
volume_next <= X"b857";
when "0001001110" =>
volume_next <= X"b901";
when "0001001111" =>
volume_next <= X"b9ab";
when "0001010000" =>
volume_next <= X"ba54";
when "0001010001" =>
volume_next <= X"bafd";
when "0001010010" =>
volume_next <= X"bba6";
when "0001010011" =>
volume_next <= X"bc4e";
when "0001010100" =>
volume_next <= X"bcf5";
when "0001010101" =>
volume_next <= X"bd9d";
when "0001010110" =>
volume_next <= X"be43";
when "0001010111" =>
volume_next <= X"beea";
when "0001011000" =>
volume_next <= X"bf90";
when "0001011001" =>
volume_next <= X"c035";
when "0001011010" =>
volume_next <= X"c0da";
when "0001011011" =>
volume_next <= X"c17f";
when "0001011100" =>
volume_next <= X"c223";
when "0001011101" =>
volume_next <= X"c2c7";
when "0001011110" =>
volume_next <= X"c36b";
when "0001011111" =>
volume_next <= X"c40e";
when "0001100000" =>
volume_next <= X"c4b0";
when "0001100001" =>
volume_next <= X"c552";
when "0001100010" =>
volume_next <= X"c5f4";
when "0001100011" =>
volume_next <= X"c696";
when "0001100100" =>
volume_next <= X"c737";
when "0001100101" =>
volume_next <= X"c7d7";
when "0001100110" =>
volume_next <= X"c877";
when "0001100111" =>
volume_next <= X"c917";
when "0001101000" =>
volume_next <= X"c9b6";
when "0001101001" =>
volume_next <= X"ca55";
when "0001101010" =>
volume_next <= X"caf4";
when "0001101011" =>
volume_next <= X"cb92";
when "0001101100" =>
volume_next <= X"cc2f";
when "0001101101" =>
volume_next <= X"cccd";
when "0001101110" =>
volume_next <= X"cd6a";
when "0001101111" =>
volume_next <= X"ce06";
when "0001110000" =>
volume_next <= X"cea2";
when "0001110001" =>
volume_next <= X"cf3e";
when "0001110010" =>
volume_next <= X"cfd9";
when "0001110011" =>
volume_next <= X"d074";
when "0001110100" =>
volume_next <= X"d10e";
when "0001110101" =>
volume_next <= X"d1a8";
when "0001110110" =>
volume_next <= X"d242";
when "0001110111" =>
volume_next <= X"d2db";
when "0001111000" =>
volume_next <= X"d374";
when "0001111001" =>
volume_next <= X"d40c";
when "0001111010" =>
volume_next <= X"d4a5";
when "0001111011" =>
volume_next <= X"d53c";
when "0001111100" =>
volume_next <= X"d5d3";
when "0001111101" =>
volume_next <= X"d66a";
when "0001111110" =>
volume_next <= X"d701";
when "0001111111" =>
volume_next <= X"d797";
when "0010000000" =>
volume_next <= X"d82c";
when "0010000001" =>
volume_next <= X"d8c2";
when "0010000010" =>
volume_next <= X"d956";
when "0010000011" =>
volume_next <= X"d9eb";
when "0010000100" =>
volume_next <= X"da7f";
when "0010000101" =>
volume_next <= X"db13";
when "0010000110" =>
volume_next <= X"dba6";
when "0010000111" =>
volume_next <= X"dc39";
when "0010001000" =>
volume_next <= X"dccb";
when "0010001001" =>
volume_next <= X"dd5e";
when "0010001010" =>
volume_next <= X"ddef";
when "0010001011" =>
volume_next <= X"de81";
when "0010001100" =>
volume_next <= X"df12";
when "0010001101" =>
volume_next <= X"dfa2";
when "0010001110" =>
volume_next <= X"e032";
when "0010001111" =>
volume_next <= X"e0c2";
when "0010010000" =>
volume_next <= X"e151";
when "0010010001" =>
volume_next <= X"e1e0";
when "0010010010" =>
volume_next <= X"e26f";
when "0010010011" =>
volume_next <= X"e2fd";
when "0010010100" =>
volume_next <= X"e38b";
when "0010010101" =>
volume_next <= X"e419";
when "0010010110" =>
volume_next <= X"e4a6";
when "0010010111" =>
volume_next <= X"e532";
when "0010011000" =>
volume_next <= X"e5bf";
when "0010011001" =>
volume_next <= X"e64b";
when "0010011010" =>
volume_next <= X"e6d6";
when "0010011011" =>
volume_next <= X"e761";
when "0010011100" =>
volume_next <= X"e7ec";
when "0010011101" =>
volume_next <= X"e877";
when "0010011110" =>
volume_next <= X"e901";
when "0010011111" =>
volume_next <= X"e98a";
when "0010100000" =>
volume_next <= X"ea14";
when "0010100001" =>
volume_next <= X"ea9d";
when "0010100010" =>
volume_next <= X"eb25";
when "0010100011" =>
volume_next <= X"ebad";
when "0010100100" =>
volume_next <= X"ec35";
when "0010100101" =>
volume_next <= X"ecbc";
when "0010100110" =>
volume_next <= X"ed43";
when "0010100111" =>
volume_next <= X"edca";
when "0010101000" =>
volume_next <= X"ee50";
when "0010101001" =>
volume_next <= X"eed6";
when "0010101010" =>
volume_next <= X"ef5c";
when "0010101011" =>
volume_next <= X"efe1";
when "0010101100" =>
volume_next <= X"f066";
when "0010101101" =>
volume_next <= X"f0ea";
when "0010101110" =>
volume_next <= X"f16e";
when "0010101111" =>
volume_next <= X"f1f2";
when "0010110000" =>
volume_next <= X"f275";
when "0010110001" =>
volume_next <= X"f2f8";
when "0010110010" =>
volume_next <= X"f37b";
when "0010110011" =>
volume_next <= X"f3fd";
when "0010110100" =>
volume_next <= X"f47f";
when "0010110101" =>
volume_next <= X"f500";
when "0010110110" =>
volume_next <= X"f582";
when "0010110111" =>
volume_next <= X"f602";
when "0010111000" =>
volume_next <= X"f683";
when "0010111001" =>
volume_next <= X"f703";
when "0010111010" =>
volume_next <= X"f782";
when "0010111011" =>
volume_next <= X"f802";
when "0010111100" =>
volume_next <= X"f881";
when "0010111101" =>
volume_next <= X"f8ff";
when "0010111110" =>
volume_next <= X"f97e";
when "0010111111" =>
volume_next <= X"f9fb";
when "0011000000" =>
volume_next <= X"fa79";
when "0011000001" =>
volume_next <= X"faf6";
when "0011000010" =>
volume_next <= X"fb73";
when "0011000011" =>
volume_next <= X"fbef";
when "0011000100" =>
volume_next <= X"fc6b";
when "0011000101" =>
volume_next <= X"fce7";
when "0011000110" =>
volume_next <= X"fd63";
when "0011000111" =>
volume_next <= X"fdde";
when "0011001000" =>
volume_next <= X"fe58";
when "0011001001" =>
volume_next <= X"fed3";
when "0011001010" =>
volume_next <= X"ff4c";
when "0011001011" =>
volume_next <= X"ffc6";
when "0011001100" =>
volume_next <= X"003e";
when "0011001101" =>
volume_next <= X"00b7";
when "0011001110" =>
volume_next <= X"0130";
when "0011001111" =>
volume_next <= X"01a8";
when "0011010000" =>
volume_next <= X"0220";
when "0011010001" =>
volume_next <= X"0297";
when "0011010010" =>
volume_next <= X"030e";
when "0011010011" =>
volume_next <= X"0385";
when "0011010100" =>
volume_next <= X"03fc";
when "0011010101" =>
volume_next <= X"0472";
when "0011010110" =>
volume_next <= X"04e8";
when "0011010111" =>
volume_next <= X"055d";
when "0011011000" =>
volume_next <= X"05d2";
when "0011011001" =>
volume_next <= X"0647";
when "0011011010" =>
volume_next <= X"06bb";
when "0011011011" =>
volume_next <= X"072f";
when "0011011100" =>
volume_next <= X"07a3";
when "0011011101" =>
volume_next <= X"0816";
when "0011011110" =>
volume_next <= X"0889";
when "0011011111" =>
volume_next <= X"08fc";
when "0011100000" =>
volume_next <= X"096e";
when "0011100001" =>
volume_next <= X"09e0";
when "0011100010" =>
volume_next <= X"0a52";
when "0011100011" =>
volume_next <= X"0ac3";
when "0011100100" =>
volume_next <= X"0b34";
when "0011100101" =>
volume_next <= X"0ba5";
when "0011100110" =>
volume_next <= X"0c15";
when "0011100111" =>
volume_next <= X"0c85";
when "0011101000" =>
volume_next <= X"0cf5";
when "0011101001" =>
volume_next <= X"0d64";
when "0011101010" =>
volume_next <= X"0dd3";
when "0011101011" =>
volume_next <= X"0e42";
when "0011101100" =>
volume_next <= X"0eb0";
when "0011101101" =>
volume_next <= X"0f1e";
when "0011101110" =>
volume_next <= X"0f8c";
when "0011101111" =>
volume_next <= X"0ff9";
when "0011110000" =>
volume_next <= X"1066";
when "0011110001" =>
volume_next <= X"10d2";
when "0011110010" =>
volume_next <= X"113f";
when "0011110011" =>
volume_next <= X"11ab";
when "0011110100" =>
volume_next <= X"1216";
when "0011110101" =>
volume_next <= X"1282";
when "0011110110" =>
volume_next <= X"12ed";
when "0011110111" =>
volume_next <= X"1357";
when "0011111000" =>
volume_next <= X"13c2";
when "0011111001" =>
volume_next <= X"142c";
when "0011111010" =>
volume_next <= X"1495";
when "0011111011" =>
volume_next <= X"14ff";
when "0011111100" =>
volume_next <= X"1568";
when "0011111101" =>
volume_next <= X"15d0";
when "0011111110" =>
volume_next <= X"1639";
when "0011111111" =>
volume_next <= X"16a1";
when "0100000000" =>
volume_next <= X"1709";
when "0100000001" =>
volume_next <= X"1770";
when "0100000010" =>
volume_next <= X"17d7";
when "0100000011" =>
volume_next <= X"183e";
when "0100000100" =>
volume_next <= X"18a4";
when "0100000101" =>
volume_next <= X"190a";
when "0100000110" =>
volume_next <= X"1970";
when "0100000111" =>
volume_next <= X"19d6";
when "0100001000" =>
volume_next <= X"1a3b";
when "0100001001" =>
volume_next <= X"1aa0";
when "0100001010" =>
volume_next <= X"1b04";
when "0100001011" =>
volume_next <= X"1b69";
when "0100001100" =>
volume_next <= X"1bcd";
when "0100001101" =>
volume_next <= X"1c30";
when "0100001110" =>
volume_next <= X"1c93";
when "0100001111" =>
volume_next <= X"1cf6";
when "0100010000" =>
volume_next <= X"1d59";
when "0100010001" =>
volume_next <= X"1dbb";
when "0100010010" =>
volume_next <= X"1e1e";
when "0100010011" =>
volume_next <= X"1e7f";
when "0100010100" =>
volume_next <= X"1ee1";
when "0100010101" =>
volume_next <= X"1f42";
when "0100010110" =>
volume_next <= X"1fa3";
when "0100010111" =>
volume_next <= X"2003";
when "0100011000" =>
volume_next <= X"2063";
when "0100011001" =>
volume_next <= X"20c3";
when "0100011010" =>
volume_next <= X"2123";
when "0100011011" =>
volume_next <= X"2182";
when "0100011100" =>
volume_next <= X"21e1";
when "0100011101" =>
volume_next <= X"2240";
when "0100011110" =>
volume_next <= X"229e";
when "0100011111" =>
volume_next <= X"22fc";
when "0100100000" =>
volume_next <= X"235a";
when "0100100001" =>
volume_next <= X"23b7";
when "0100100010" =>
volume_next <= X"2414";
when "0100100011" =>
volume_next <= X"2471";
when "0100100100" =>
volume_next <= X"24ce";
when "0100100101" =>
volume_next <= X"252a";
when "0100100110" =>
volume_next <= X"2586";
when "0100100111" =>
volume_next <= X"25e1";
when "0100101000" =>
volume_next <= X"263d";
when "0100101001" =>
volume_next <= X"2698";
when "0100101010" =>
volume_next <= X"26f3";
when "0100101011" =>
volume_next <= X"274d";
when "0100101100" =>
volume_next <= X"27a7";
when "0100101101" =>
volume_next <= X"2801";
when "0100101110" =>
volume_next <= X"285b";
when "0100101111" =>
volume_next <= X"28b4";
when "0100110000" =>
volume_next <= X"290d";
when "0100110001" =>
volume_next <= X"2965";
when "0100110010" =>
volume_next <= X"29be";
when "0100110011" =>
volume_next <= X"2a16";
when "0100110100" =>
volume_next <= X"2a6e";
when "0100110101" =>
volume_next <= X"2ac5";
when "0100110110" =>
volume_next <= X"2b1c";
when "0100110111" =>
volume_next <= X"2b73";
when "0100111000" =>
volume_next <= X"2bca";
when "0100111001" =>
volume_next <= X"2c20";
when "0100111010" =>
volume_next <= X"2c76";
when "0100111011" =>
volume_next <= X"2ccc";
when "0100111100" =>
volume_next <= X"2d22";
when "0100111101" =>
volume_next <= X"2d77";
when "0100111110" =>
volume_next <= X"2dcc";
when "0100111111" =>
volume_next <= X"2e20";
when "0101000000" =>
volume_next <= X"2e75";
when "0101000001" =>
volume_next <= X"2ec9";
when "0101000010" =>
volume_next <= X"2f1d";
when "0101000011" =>
volume_next <= X"2f70";
when "0101000100" =>
volume_next <= X"2fc3";
when "0101000101" =>
volume_next <= X"3016";
when "0101000110" =>
volume_next <= X"3069";
when "0101000111" =>
volume_next <= X"30bb";
when "0101001000" =>
volume_next <= X"310d";
when "0101001001" =>
volume_next <= X"315f";
when "0101001010" =>
volume_next <= X"31b1";
when "0101001011" =>
volume_next <= X"3202";
when "0101001100" =>
volume_next <= X"3253";
when "0101001101" =>
volume_next <= X"32a3";
when "0101001110" =>
volume_next <= X"32f4";
when "0101001111" =>
volume_next <= X"3344";
when "0101010000" =>
volume_next <= X"3394";
when "0101010001" =>
volume_next <= X"33e3";
when "0101010010" =>
volume_next <= X"3433";
when "0101010011" =>
volume_next <= X"3482";
when "0101010100" =>
volume_next <= X"34d0";
when "0101010101" =>
volume_next <= X"351f";
when "0101010110" =>
volume_next <= X"356d";
when "0101010111" =>
volume_next <= X"35bb";
when "0101011000" =>
volume_next <= X"3609";
when "0101011001" =>
volume_next <= X"3656";
when "0101011010" =>
volume_next <= X"36a3";
when "0101011011" =>
volume_next <= X"36f0";
when "0101011100" =>
volume_next <= X"373d";
when "0101011101" =>
volume_next <= X"3789";
when "0101011110" =>
volume_next <= X"37d5";
when "0101011111" =>
volume_next <= X"3821";
when "0101100000" =>
volume_next <= X"386c";
when "0101100001" =>
volume_next <= X"38b8";
when "0101100010" =>
volume_next <= X"3903";
when "0101100011" =>
volume_next <= X"394d";
when "0101100100" =>
volume_next <= X"3998";
when "0101100101" =>
volume_next <= X"39e2";
when "0101100110" =>
volume_next <= X"3a2c";
when "0101100111" =>
volume_next <= X"3a76";
when "0101101000" =>
volume_next <= X"3abf";
when "0101101001" =>
volume_next <= X"3b08";
when "0101101010" =>
volume_next <= X"3b51";
when "0101101011" =>
volume_next <= X"3b9a";
when "0101101100" =>
volume_next <= X"3be2";
when "0101101101" =>
volume_next <= X"3c2a";
when "0101101110" =>
volume_next <= X"3c72";
when "0101101111" =>
volume_next <= X"3cba";
when "0101110000" =>
volume_next <= X"3d01";
when "0101110001" =>
volume_next <= X"3d48";
when "0101110010" =>
volume_next <= X"3d8f";
when "0101110011" =>
volume_next <= X"3dd5";
when "0101110100" =>
volume_next <= X"3e1c";
when "0101110101" =>
volume_next <= X"3e62";
when "0101110110" =>
volume_next <= X"3ea8";
when "0101110111" =>
volume_next <= X"3eed";
when "0101111000" =>
volume_next <= X"3f32";
when "0101111001" =>
volume_next <= X"3f77";
when "0101111010" =>
volume_next <= X"3fbc";
when "0101111011" =>
volume_next <= X"4001";
when "0101111100" =>
volume_next <= X"4045";
when "0101111101" =>
volume_next <= X"4089";
when "0101111110" =>
volume_next <= X"40cd";
when "0101111111" =>
volume_next <= X"4110";
when "0110000000" =>
volume_next <= X"4154";
when "0110000001" =>
volume_next <= X"4197";
when "0110000010" =>
volume_next <= X"41da";
when "0110000011" =>
volume_next <= X"421c";
when "0110000100" =>
volume_next <= X"425e";
when "0110000101" =>
volume_next <= X"42a1";
when "0110000110" =>
volume_next <= X"42e2";
when "0110000111" =>
volume_next <= X"4324";
when "0110001000" =>
volume_next <= X"4365";
when "0110001001" =>
volume_next <= X"43a6";
when "0110001010" =>
volume_next <= X"43e7";
when "0110001011" =>
volume_next <= X"4428";
when "0110001100" =>
volume_next <= X"4468";
when "0110001101" =>
volume_next <= X"44a8";
when "0110001110" =>
volume_next <= X"44e8";
when "0110001111" =>
volume_next <= X"4528";
when "0110010000" =>
volume_next <= X"4567";
when "0110010001" =>
volume_next <= X"45a6";
when "0110010010" =>
volume_next <= X"45e5";
when "0110010011" =>
volume_next <= X"4624";
when "0110010100" =>
volume_next <= X"4663";
when "0110010101" =>
volume_next <= X"46a1";
when "0110010110" =>
volume_next <= X"46df";
when "0110010111" =>
volume_next <= X"471c";
when "0110011000" =>
volume_next <= X"475a";
when "0110011001" =>
volume_next <= X"4797";
when "0110011010" =>
volume_next <= X"47d4";
when "0110011011" =>
volume_next <= X"4811";
when "0110011100" =>
volume_next <= X"484e";
when "0110011101" =>
volume_next <= X"488a";
when "0110011110" =>
volume_next <= X"48c6";
when "0110011111" =>
volume_next <= X"4902";
when "0110100000" =>
volume_next <= X"493e";
when "0110100001" =>
volume_next <= X"4979";
when "0110100010" =>
volume_next <= X"49b4";
when "0110100011" =>
volume_next <= X"49ef";
when "0110100100" =>
volume_next <= X"4a2a";
when "0110100101" =>
volume_next <= X"4a65";
when "0110100110" =>
volume_next <= X"4a9f";
when "0110100111" =>
volume_next <= X"4ad9";
when "0110101000" =>
volume_next <= X"4b13";
when "0110101001" =>
volume_next <= X"4b4c";
when "0110101010" =>
volume_next <= X"4b86";
when "0110101011" =>
volume_next <= X"4bbf";
when "0110101100" =>
volume_next <= X"4bf8";
when "0110101101" =>
volume_next <= X"4c31";
when "0110101110" =>
volume_next <= X"4c69";
when "0110101111" =>
volume_next <= X"4ca2";
when "0110110000" =>
volume_next <= X"4cda";
when "0110110001" =>
volume_next <= X"4d11";
when "0110110010" =>
volume_next <= X"4d49";
when "0110110011" =>
volume_next <= X"4d81";
when "0110110100" =>
volume_next <= X"4db8";
when "0110110101" =>
volume_next <= X"4def";
when "0110110110" =>
volume_next <= X"4e25";
when "0110110111" =>
volume_next <= X"4e5c";
when "0110111000" =>
volume_next <= X"4e92";
when "0110111001" =>
volume_next <= X"4ec8";
when "0110111010" =>
volume_next <= X"4efe";
when "0110111011" =>
volume_next <= X"4f34";
when "0110111100" =>
volume_next <= X"4f69";
when "0110111101" =>
volume_next <= X"4f9f";
when "0110111110" =>
volume_next <= X"4fd4";
when "0110111111" =>
volume_next <= X"5009";
when "0111000000" =>
volume_next <= X"503d";
when "0111000001" =>
volume_next <= X"5072";
when "0111000010" =>
volume_next <= X"50a6";
when "0111000011" =>
volume_next <= X"50da";
when "0111000100" =>
volume_next <= X"510e";
when "0111000101" =>
volume_next <= X"5141";
when "0111000110" =>
volume_next <= X"5175";
when "0111000111" =>
volume_next <= X"51a8";
when "0111001000" =>
volume_next <= X"51db";
when "0111001001" =>
volume_next <= X"520d";
when "0111001010" =>
volume_next <= X"5240";
when "0111001011" =>
volume_next <= X"5272";
when "0111001100" =>
volume_next <= X"52a4";
when "0111001101" =>
volume_next <= X"52d6";
when "0111001110" =>
volume_next <= X"5308";
when "0111001111" =>
volume_next <= X"533a";
when "0111010000" =>
volume_next <= X"536b";
when "0111010001" =>
volume_next <= X"539c";
when "0111010010" =>
volume_next <= X"53cd";
when "0111010011" =>
volume_next <= X"53fe";
when "0111010100" =>
volume_next <= X"542e";
when "0111010101" =>
volume_next <= X"545f";
when "0111010110" =>
volume_next <= X"548f";
when "0111010111" =>
volume_next <= X"54bf";
when "0111011000" =>
volume_next <= X"54ee";
when "0111011001" =>
volume_next <= X"551e";
when "0111011010" =>
volume_next <= X"554d";
when "0111011011" =>
volume_next <= X"557c";
when "0111011100" =>
volume_next <= X"55ab";
when "0111011101" =>
volume_next <= X"55da";
when "0111011110" =>
volume_next <= X"5609";
when "0111011111" =>
volume_next <= X"5637";
when "0111100000" =>
volume_next <= X"5665";
when "0111100001" =>
volume_next <= X"5693";
when "0111100010" =>
volume_next <= X"56c1";
when "0111100011" =>
volume_next <= X"56ef";
when "0111100100" =>
volume_next <= X"571c";
when "0111100101" =>
volume_next <= X"5749";
when "0111100110" =>
volume_next <= X"5776";
when "0111100111" =>
volume_next <= X"57a3";
when "0111101000" =>
volume_next <= X"57d0";
when "0111101001" =>
volume_next <= X"57fc";
when "0111101010" =>
volume_next <= X"5829";
when "0111101011" =>
volume_next <= X"5855";
when "0111101100" =>
volume_next <= X"5881";
when "0111101101" =>
volume_next <= X"58ac";
when "0111101110" =>
volume_next <= X"58d8";
when "0111101111" =>
volume_next <= X"5903";
when "0111110000" =>
volume_next <= X"592e";
when "0111110001" =>
volume_next <= X"5959";
when "0111110010" =>
volume_next <= X"5984";
when "0111110011" =>
volume_next <= X"59af";
when "0111110100" =>
volume_next <= X"59d9";
when "0111110101" =>
volume_next <= X"5a03";
when "0111110110" =>
volume_next <= X"5a2e";
when "0111110111" =>
volume_next <= X"5a57";
when "0111111000" =>
volume_next <= X"5a81";
when "0111111001" =>
volume_next <= X"5aab";
when "0111111010" =>
volume_next <= X"5ad4";
when "0111111011" =>
volume_next <= X"5afd";
when "0111111100" =>
volume_next <= X"5b26";
when "0111111101" =>
volume_next <= X"5b4f";
when "0111111110" =>
volume_next <= X"5b78";
when "0111111111" =>
volume_next <= X"5ba0";
when "1000000000" =>
volume_next <= X"5bc9";
when "1000000001" =>
volume_next <= X"5bf1";
when "1000000010" =>
volume_next <= X"5c19";
when "1000000011" =>
volume_next <= X"5c41";
when "1000000100" =>
volume_next <= X"5c68";
when "1000000101" =>
volume_next <= X"5c90";
when "1000000110" =>
volume_next <= X"5cb7";
when "1000000111" =>
volume_next <= X"5cde";
when "1000001000" =>
volume_next <= X"5d05";
when "1000001001" =>
volume_next <= X"5d2c";
when "1000001010" =>
volume_next <= X"5d52";
when "1000001011" =>
volume_next <= X"5d79";
when "1000001100" =>
volume_next <= X"5d9f";
when "1000001101" =>
volume_next <= X"5dc5";
when "1000001110" =>
volume_next <= X"5deb";
when "1000001111" =>
volume_next <= X"5e11";
when "1000010000" =>
volume_next <= X"5e36";
when "1000010001" =>
volume_next <= X"5e5c";
when "1000010010" =>
volume_next <= X"5e81";
when "1000010011" =>
volume_next <= X"5ea6";
when "1000010100" =>
volume_next <= X"5ecb";
when "1000010101" =>
volume_next <= X"5ef0";
when "1000010110" =>
volume_next <= X"5f15";
when "1000010111" =>
volume_next <= X"5f39";
when "1000011000" =>
volume_next <= X"5f5d";
when "1000011001" =>
volume_next <= X"5f82";
when "1000011010" =>
volume_next <= X"5fa6";
when "1000011011" =>
volume_next <= X"5fc9";
when "1000011100" =>
volume_next <= X"5fed";
when "1000011101" =>
volume_next <= X"6011";
when "1000011110" =>
volume_next <= X"6034";
when "1000011111" =>
volume_next <= X"6057";
when "1000100000" =>
volume_next <= X"607a";
when "1000100001" =>
volume_next <= X"609d";
when "1000100010" =>
volume_next <= X"60c0";
when "1000100011" =>
volume_next <= X"60e3";
when "1000100100" =>
volume_next <= X"6105";
when "1000100101" =>
volume_next <= X"6127";
when "1000100110" =>
volume_next <= X"6149";
when "1000100111" =>
volume_next <= X"616b";
when "1000101000" =>
volume_next <= X"618d";
when "1000101001" =>
volume_next <= X"61af";
when "1000101010" =>
volume_next <= X"61d0";
when "1000101011" =>
volume_next <= X"61f2";
when "1000101100" =>
volume_next <= X"6213";
when "1000101101" =>
volume_next <= X"6234";
when "1000101110" =>
volume_next <= X"6255";
when "1000101111" =>
volume_next <= X"6276";
when "1000110000" =>
volume_next <= X"6296";
when "1000110001" =>
volume_next <= X"62b7";
when "1000110010" =>
volume_next <= X"62d7";
when "1000110011" =>
volume_next <= X"62f7";
when "1000110100" =>
volume_next <= X"6318";
when "1000110101" =>
volume_next <= X"6337";
when "1000110110" =>
volume_next <= X"6357";
when "1000110111" =>
volume_next <= X"6377";
when "1000111000" =>
volume_next <= X"6396";
when "1000111001" =>
volume_next <= X"63b6";
when "1000111010" =>
volume_next <= X"63d5";
when "1000111011" =>
volume_next <= X"63f4";
when "1000111100" =>
volume_next <= X"6413";
when "1000111101" =>
volume_next <= X"6432";
when "1000111110" =>
volume_next <= X"6450";
when "1000111111" =>
volume_next <= X"646f";
when "1001000000" =>
volume_next <= X"648d";
when "1001000001" =>
volume_next <= X"64ab";
when "1001000010" =>
volume_next <= X"64ca";
when "1001000011" =>
volume_next <= X"64e8";
when "1001000100" =>
volume_next <= X"6505";
when "1001000101" =>
volume_next <= X"6523";
when "1001000110" =>
volume_next <= X"6541";
when "1001000111" =>
volume_next <= X"655e";
when "1001001000" =>
volume_next <= X"657b";
when "1001001001" =>
volume_next <= X"6599";
when "1001001010" =>
volume_next <= X"65b6";
when "1001001011" =>
volume_next <= X"65d3";
when "1001001100" =>
volume_next <= X"65ef";
when "1001001101" =>
volume_next <= X"660c";
when "1001001110" =>
volume_next <= X"6628";
when "1001001111" =>
volume_next <= X"6645";
when "1001010000" =>
volume_next <= X"6661";
when "1001010001" =>
volume_next <= X"667d";
when "1001010010" =>
volume_next <= X"6699";
when "1001010011" =>
volume_next <= X"66b5";
when "1001010100" =>
volume_next <= X"66d1";
when "1001010101" =>
volume_next <= X"66ed";
when "1001010110" =>
volume_next <= X"6708";
when "1001010111" =>
volume_next <= X"6723";
when "1001011000" =>
volume_next <= X"673f";
when "1001011001" =>
volume_next <= X"675a";
when "1001011010" =>
volume_next <= X"6775";
when "1001011011" =>
volume_next <= X"6790";
when "1001011100" =>
volume_next <= X"67ab";
when "1001011101" =>
volume_next <= X"67c5";
when "1001011110" =>
volume_next <= X"67e0";
when "1001011111" =>
volume_next <= X"67fa";
when "1001100000" =>
volume_next <= X"6814";
when "1001100001" =>
volume_next <= X"682f";
when "1001100010" =>
volume_next <= X"6849";
when "1001100011" =>
volume_next <= X"6863";
when "1001100100" =>
volume_next <= X"687c";
when "1001100101" =>
volume_next <= X"6896";
when "1001100110" =>
volume_next <= X"68b0";
when "1001100111" =>
volume_next <= X"68c9";
when "1001101000" =>
volume_next <= X"68e3";
when "1001101001" =>
volume_next <= X"68fc";
when "1001101010" =>
volume_next <= X"6915";
when "1001101011" =>
volume_next <= X"692e";
when "1001101100" =>
volume_next <= X"6947";
when "1001101101" =>
volume_next <= X"6960";
when "1001101110" =>
volume_next <= X"6978";
when "1001101111" =>
volume_next <= X"6991";
when "1001110000" =>
volume_next <= X"69a9";
when "1001110001" =>
volume_next <= X"69c2";
when "1001110010" =>
volume_next <= X"69da";
when "1001110011" =>
volume_next <= X"69f2";
when "1001110100" =>
volume_next <= X"6a0a";
when "1001110101" =>
volume_next <= X"6a22";
when "1001110110" =>
volume_next <= X"6a3a";
when "1001110111" =>
volume_next <= X"6a52";
when "1001111000" =>
volume_next <= X"6a69";
when "1001111001" =>
volume_next <= X"6a81";
when "1001111010" =>
volume_next <= X"6a98";
when "1001111011" =>
volume_next <= X"6ab0";
when "1001111100" =>
volume_next <= X"6ac7";
when "1001111101" =>
volume_next <= X"6ade";
when "1001111110" =>
volume_next <= X"6af5";
when "1001111111" =>
volume_next <= X"6b0c";
when "1010000000" =>
volume_next <= X"6b23";
when "1010000001" =>
volume_next <= X"6b39";
when "1010000010" =>
volume_next <= X"6b50";
when "1010000011" =>
volume_next <= X"6b67";
when "1010000100" =>
volume_next <= X"6b7d";
when "1010000101" =>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff