Время прогона теста воодушевило меня на реализацию warp режима. Теперь (r357) свитчи 8,9 работают так:
Код:
ON ON нормальный Вектор
ON OFF меедленный клок, можно любоваться огоньками
OFF OFF ручной клок на KEY1
OFF ON Warp: 6MHz/no waitstates
Warp работает так: CE процессора переключается с ce3 на ce12, но поскольку видео система остается где была, получает он только те ce, которые не перекрыты video_slice'ом. А таких получается, как это ни обидно, всего в два, а не в четыре раза больше. То есть, общая скорость проца в варп-моде выходит 6МГц вместо трех. Поскольку в таком режиме в оригинальном распределении циклов смысла уже нет, в нем не работают и традиционные векторовые вейтстейты, то скорость чуть больше чем 2х.
Интересный момент, что на самом деле можно вместо
Код:
cpu_ce <= ce12 & ~video_slice;
вбить
Код:
cpu_ce <= ~video_slice;
-- то есть запустить всю систему на 24МГц. В таком режиме все работает, но не получилось запустить дисковод. Зато на 6МГц (дисковод на самом деле тогда работает на все 12, ему-то video_slice пофигу) -- получилось после некоторого скрипа. Заодно пару глюков исправил ;)
В принципе и фиг с ним. На 24 (=12) МГц, конечно, есть тема -- весь прогон 8080-еьесиськера занимает смехотворные полчаса. Но он-то уже весь прогнан. Зато какой теперь угарный Put Up!