Код изменил, хотя толку от этого мало. Прикрути лучше UDMA SC.
Код:
	process(CLK, ENA)
	begin
		if (ENA = '0') then
			outa <= (others => '0');
			outb <= (others => '0');
			outc <= (others => '0');
			outd <= (others => '0');
		elsif (CLK'event and CLK = '1') then
			if ((A = X"0F" or A = X"79") and nIORQ = '0' and nWR = '0' and DOS = '0') then
				outa <= DI;
			elsif ((A = X"1F" or A = X"7B") and nIORQ = '0' and nWR = '0' and DOS = '0') then
				outb <= DI;
			elsif ((A = X"4F" or A = X"F9") and nIORQ = '0' and nWR = '0' and DOS = '0') then
				outc <= DI;
			elsif ((A = X"5F" or A = X"FB") and nIORQ = '0' and nWR = '0' and DOS = '0') then
				outd <= DI;
			end if;
		end if;
	end process;


---------- Post added at 21:46 ---------- Previous post was at 21:41 ----------

Можно переделать с маской, для одиночной записи сразу в 1/2/3/4 регистра.