Похоже разобрался в чем проблема.
Когда Z80 читает команды из ROM, то VAGEN = 1, и следовательно в ПЛИС-ку не приходит адрес с шины адреса. Из-за этого в коде
if M1 = '0' and MREQ = '0' and RD = '0' and VideoRead = '1' and (A15 = '0' and A14 = '0' and VA(13 downto 8) = "111101") then
TRDOS_ENTRY <= '1';
else
TRDOS_ENTRY <= '0';
end if;
TRDOS_ENTRY мог установиться в любой момент, когда исполняется код из ПЗУ.
Придется поменять
VAGEN <= '0' when VideoRead1 = '1' and ( VRAM_ACC = '0' or IOREQ = '0' ) else '1';
на
VAGEN <= '0' when VideoRead1 = '1' else '1';
Самое интересное, что ниже есть эта же строка, но закомментирована.
Уважаемы Syd, в связи с чем была сделана новая конструкция и закомментирована старая, есть ли подводные камни в старом варианте?




Ответить с цитированием