Знакогенератор подчистил. Теперь работает нормально. Не нравятся некоторые символы из новой таблицы (например $), так что в todo записал пройтись по всем основным символам и заменить их со старой таблицы если выглядят хуже.

Бьюсь с квазидиском. Видимо что-то недопонимаю в принципе его работы. Нужна помощь зала

Вот такой код у меня за память и квазидиск отвечает:

Код:
process (clk20, sync_cpu)			--	эмуляция контроллера памяти КР580ВК38
	begin
		if (clk20'event and clk20 = '0' and sync_cpu = '1') then
			db_status <= d_bus_O;
		end if;	
end process;

mem_rd <= '1' when (sync_cpu = '0' and db_status(7) = '1' and rd_en = '1' and wr_n = '1') else '0'; -- разрешение чтение из памяти
io_rd <= '1' when (sync_cpu = '0' and db_status(6) = '1' and rd_en = '1' and wr_n = '1') else '0';	-- разрешение чтение из порта
mem_wr <= '1' when (sync_cpu = '0' and db_status(1) = '0' and wr_n = '0' and rd_en = '0') else '0';	-- разрешение записи в память
io_wr <= '1' when (sync_cpu = '0' and db_status(4) = '1' and wr_n = '0' and rd_en = '0') else '0';	-- разрешение записи в порт
io_stack <= '1' when (sync_cpu = '0' and db_status(2) = '1') else '0';	-- разрешение обращения к стэку

..............................
здесь вырезан неинтересный блок распределения адресов
..............................

SRAM_DQ(7 downto 0) <= d_bus_O when (ram_wr = '0' or (io_stack = '1' and wr_n = '0')) else "ZZZZZZZZ";			
SRAM_WE_N <= ram_wr;			
SRAM_CE_N <= '0';
SRAM_LB_N <= kvazi_block(2);
SRAM_UB_N <= not kvazi_block(2);
SRAM_OE_N <= '0';
SRAM_ADDR <= kvazi_block(1 downto 0) & a_bus;

process (clk20)
	begin
		if (clk20'event and clk20 = '0') then
			if (io_wr = '1' and a_bus (15 downto 12) = "0100" and sync_cpu = '0') then
				case d_bus_O(3 downto 0) is
					when "1110" => kvazi_block <= "100";  -- если старший бит 1, то квазидиск включен
					when "1101" => kvazi_block <= "101";
					when "1011" => kvazi_block <= "110";
					when "0111" => kvazi_block <= "111";
					when OTHERS => kvazi_block <= "000";
				end case;
			end if;
		end if;
end process;
a_bus[15..0] - адресная шина, d_bus_O[7..0] и d_bus_I[7..0] - выходная и входная шины данных. sync_cpu - сигнал SYNC процессора.

Что я недопонял?