в emuzwin contentended memory некорректно работает.
Для 128К и 48K early модели поддерживают хорошо ZXMAK2, Spectaculator, Fuse, SpecEmu.
А вот для 48К late модели сами тайминги в этих эмуляторах работают вроде везде корректно, но вот c эмуляцией таймингов INT есть разница - у каждого эмулятора по своему. Как правильно неизвестно - никто так и не смог проверить на реальном железе
Не исключено что во всех эмуляторах тайминги INT или сама эмуляция INT для 48K late неправильные
Чтобы код работал быстрее на contended памяти, нужно чтобы как минимум:
- код исполнялся в быстрой памяти;
- стек находился в быстрой памяти;
- не было обращений к медленной памяти
- не было обращений к медленным портам
- значение IR, SP или HL не попадало на медленную область памяти - это актуально при использовании некоторых инструкций, которые хотя явно и не обращаются к медленной памяти, но могут выставлять значение этих регистров на шину в сочетании сигналов управления, которые ULA детектит как обращение к медленной памяти
- все обращения к медленной памяти/портам производить пока луч находится за пределами экрана







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