Higgins
Вот здесь об этом ясно сказано, стр. 98-99, в описании команд LD A,I и LA A,R.Сообщение от Higgins
Как видно, с некоторых пор данное явление задокументировано официально (т.е. описано не как баг, а как особенности работы).
Vladimir Kladov
Имхо, такое решение, вкупе с несуществующим 3х-тактовым циклом ввода/вывода, не совсем корректно. Это обыкновенный workaround. Тов. Джон, видимо, долго анализировал большой объем кода различных программ/демок и нашел где можно сделать изменения так, чтобы ничего не испортить, и даже улучшить.Сообщение от Vladimir Kladov
Тем не менее, workaround - он и в Африке... Но самое главное здесь то, что Higgins однозначно утверждает
что у него проблем в вышеуказанных демках и тестах нет, и при этом безо всяких решений-затычек. Почему-то Вы, то ли сознательно, то ли нет, вообще пропустили это замечание. Но кое-где Вы сами же сказали мудрую фразу:Сообщение от Higgins
Это Вам не в упрек. Это просьба не закрывать глаза на факты, тогда не придется переиначивать другие факты (например, 4х-тактовые циклы ввода/вывода и "лишний" такт в M1 у PUSH). EmuZGL уже гораздо лучше своего предшественника, многим нравится и мне в том числе. Так не идите же на поводу у любителей понаставить затычки "абы все известные проги работали правильно", а просто делайте красиво и хорошо. Увидев EmuZGL я понял, что Вы можете, когда хотитеВсё получится, если всё сделать аккуратно.
P.S. При желании попробуйте внести коррективы в как минимум одну команду (речь об EX (SP),HL и, возможно еще об OTIR/OTDR) в соответствии с этим и этим (правда я не понял, что там насчет задержек в M1?).
P.P.S.
Higgins
А можно с этого места поподробнее? Т.е. Вы хотите сказать, что из-за цикла регенерации более одного такта процессор также задерживается? Хотелось бы прояснить эти тонкости. По WOS видно, что при циклах доступа к памяти Z80 более 3-х тактов - ULA 48k его задерживает и далее, считая каждый лишний такт доступом к той же памяти, вплоть до следующего цикла доступа к памяти; при этом циклы M1 неприкосновенны - присутствует лишь задержка непосредственно перед выборкой инструкции. Получается, и для M1 у ULA 48k есть некий лимит?Сообщение от Higgins




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