
Сообщение от
syd
VBUS_MODE = '0'
В код не глядел, но если младшие адреса Z80 не используются (VA которые), VBUS_MODE не должен участвовать в дешифрации.
Иначе выборку надо защелкивать по CLK'у, а отпускать по переходу IORQ в единицу.
Или более простой вариант - по CLK'у, при VBUS_MODE = '0' защелкивать VA0, VA1... (какие там еще нужны), и использовать их в дешифрации (VBUS_MODE в дешифрации не участвует).
Короче, эти строки должны выглядеть так:
Код:
AY_BC1 <= '1' when VAR(1 downto 0) = "01" and M1 = '1' and IOREQ = '0' and A14 = '1' and A15 = '1' else '0';
AY_BDIR <= '1' when VAR(1 downto 0) = "01" and M1 = '1' and IOREQ = '0' and A15 = '1' and WR = '0' else '0';
VAR - защелкнутое состояние VA на время VBUS_MODE = '0'
Хотя не, это как-то неприлично... IORQ надо фильтровать, иначе ложные срабатывания будут...
Естественно AY не читается, к моменту когда Z80 защелкивает данные, AY уже шину данных освобождает.