ну вот например http://zxaaa.untergrund.net/get.php?f=DEMO4/mdademo.zip
с contended memory разобрался. А вот c contended ports непонятно, судя по таймингам, почему-то порт регистра AY contended, а порт данных AY не contended, кто-то знает почему?
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Это не оно?Contended Input/Output
It takes four T states for the Z80 to read a value from an I/O port, or write a value to a port. As is the case with memory access, this can be lengthened by the ULA. There are two effects which occur here:
If the port address being accessed has its low bit reset, the ULA is required to supply the result, which leads to a delay if it is currently busy handling the screen.
The address of the port being accessed is placed on the data bus. If this is in the range 0x4000 to 0x7fff, the ULA treats this as an attempted access to contended memory and therefore introduces a delay. If the port being accessed is between 0xc000 and 0xffff, this effect does not apply, even on a 128K machine if a contended memory bank is paged into the range 0xc000 to 0xffff.
вот столкнулся с необъяснимым феноменом
запускаем спектакулятор, выбираем модель Spectrum 128, открываем отладчик и доводим счетчик тактов до 14362, после этого устанавливаем:
AF=#0700,
IR=#8048,
PC=#5BCC
и заносим по адресу #5BCC, такую последовательность байт: #D3, #FE, #D3, #FE
Это две инструкции OUT (#FE),A которая требует 11T на машине без WAIT'ов
Теперь самое интересное - выполняем по шагам эти инструкции и смотрим на счетчик тактов, видим:
Первый OUT: 14362 -> 14387 (25T)
Второй OUT: 14387 -> 14396 (9T!)
Учитывая что инструкция OUT #FE,A без задержек занимает 11T, совершенно не понятно как время ее выполнение с задержками сократилось до 9T???
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Спектакулятор лажовый эмулятор, ты бы в каком-нибудь более заслуживающем доверия проверял. Спин, например.
Свирепый агрессивно-депрессивный мордовец!
Не уверен - не напрягай!
Не сдавайся. Дыши?
Virtual TR-DOS
Spin неверно эмулит некоторые моменты - VELESOFT проверял вроде...
хотя может там новая версия есть какая...
Pentagon1024sl2.2/TSFM/Z-Controller/GS128Kb/HDD/CDROM/Palcoder
и Spin и Spectaculator сбрасываются на UlaTest v3. Но по крайней мере в них нет смещений мультиколора в MQM5, хотел посмотреть тайминги, но столкнулся с тем что время выполнения OUT в спектакуляторе бывает меньше чем проц затрачивает на выполнение без задержек...
В Spin отладчик очень кривой, при пошаговой отладке сбивает текущий Tstate
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)