Хочу реализовать ULA для оригинального спектрума с contended memory и snow effect, бордюрный мультиколор работает, а вот аттрибутный никак не хочет
Сделал ревизию всему коду Z80 на предмет таймингов, все вроде верно, но аттрибутный мультиколор плывет. Кто-то знает как работает contended memory?
Пробовал анализировать спектакулятор, получается какая-то ерунда, например инструкция ADD A,(IX+0):
- код DD8600,
- время выполнения инструкции 19T (4, 4, 3, 5, 3)
Выполняю ее на такте 14362 (начало contended области судя по поведению), вычисления по шагам:
4T: 14362 + 4 + 6 -> 14372 (задержка 6T на чтении опкода DD)
4T: 14372 + 4 + 4 -> 14380 (задержка 4T на чтении опкода 86)
3T: 14380 + 3 + 4 -> 14387 (задержка 4T на чтении опкода 00)
5T: 14387 + 5 -> 14392 (задержки нет, т.к. IX смотрит на C000, которая не contended)
3T: 14392 + 3 -> 14395 (задержки нет, т.к. к памяти не обращаемся)
в спектакуляторе-же получается 14412! Для такого значения нужны задержки в 7T! Откуда???
Это ошибка тайминга спектакулятора или я не понял идею contended memory?
С опкодом DD00 на такте 14362 вообще бред - в спктакуляторе DD съедает 0 тактов, а 00 целых 18 тактов! Откуда???
2) И еще вопросик - SjAsm позволяет компилить короткие фрагменты, без директив и т.п.? Думаю вставить, чтобы было удобно отлаживать![]()





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

