Revision 321
Added by markw over 10 years ago
| 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" =>
 
   | 
||
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