Поправил в VHD код сигналов AY на вот такой
Код:
AY_PORT <= '1' when M1 = '1' and IOREQ = '0' and A15 = '1' and mA(13) = '1' and mA(1 downto 0) = "01" else '0';
AY_BC1 <= '1' when AY_PORT = '1' and A14 = '1' else '0' when VBUS_MODE = '0';
AY_BDIR <= '1' when AY_PORT = '1' and WR = '0' else '0' when VBUS_MODE = '0'
в оригинале было так
Код:
AY_PORT <= '0' when WR = '1' and RD = '1' else
'1' when VBUS_MODE = '0' and mA(1 downto 0) = "01" else
'0' when VBUS_MODE = '0' else
AY_PORT;
AY_BC1 <= '1' when AY_PORT = '1' and M1 = '1' and IOREQ = '0' and A14 = '1' and A15 = '1' else '0';
AY_BDIR <= '1' when AY_PORT = '1' and M1 = '1' and IOREQ = '0' and A15 = '1' and WR = '0' else '0';
Вроде нормально играет
Даже индикаторы по ощущениям в Dizzy 3.5 от дримтим стали более четко моргать
Еще переделал сигнал AVR_PORT из процесса на комбинаторику
Код:
AVR_PORT <= '1' when IOREQ = '0' and VBUS_MODE = '0' and
(
-- port #FE
(RD = '0' and mA(7) = '1' and mA(4 downto 3) = "11" and mA(1 downto 0) = "10" and AVR_NOINT = '1')
or
-- port #1F
(( RD = '0' or WR = '0' ) and mA(7 downto 0) = "00011111")
)
else '0' when IOREQ = '1';
Вот это вообще круто получилось
Пока что этими изменениями выжал 3 ячейки
Еще сделал вот такую штуку
Код:
-- port #FD
if WR = '0' and mA(1) = '0' and A15 = '0' and (mA(13) xor mA(9)) = '0' and P_7ffd(5) = '0' then
P_7ffd <= mD(5 downto 0);
end if;
Походу что-то конфликтовало с портом #FD, теперь от хватает только #FD и #7FFD , а так видимо еще и с AY были конфликты