User Tag List

Показано с 1 по 10 из 208

Тема: EmuZGL alpha preview

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    06.05.2006
    Адрес
    Санкт-Петербург
    Сообщений
    127
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Higgins
    Цитата Сообщение от Higgins
    Теперь для меня что-то новое открылось. Какие есть материалы по этому особенному значению P/V при активном ~INT? Я имею в виду, откуда ноги растут от этой информации и на чем можно проверить?
    Вот здесь об этом ясно сказано, стр. 98-99, в описании команд LD A,I и LA A,R.
    Как видно, с некоторых пор данное явление задокументировано официально (т.е. описано не как баг, а как особенности работы).

    Vladimir Kladov
    Цитата Сообщение от Vladimir Kladov
    Для меня здесь критерием правильности является демка, BBG, кстати. Она идёт именно так, как должна идти, причём конкретно обнаруживается инструкция PUSH BC: на такте 14425 она началась (задержка 4), и только при исправлении выше для push прошло ровно столько же тактов, сколько показал отладчик спектакулятора. В итоге вывод: выборка может и 5-тактная, но ULA ловит адрес тогда на втором такте второго цикла, а не на третьем. Результат-то: BBG идёт, а без исправления - нет. Здесь-то явно никаких IR задержек нет, иначе просто был бы снег на экране, все прочие вмешательства вроде погоды на Марсе исключены: одна инструкция PUSH BC, с точно известного такта, точно известна последовательность задержек с этого такта (43210065432100...), точно известно, что в итоге инструкция должна отработать за 16 тактов. Официальное решение, не признанное Джоном, гласит 5+3+4(задержка)+3=15, остаётся только решение 4+3+5(задержка)+4=16.
    Имхо, такое решение, вкупе с несуществующим 3х-тактовым циклом ввода/вывода, не совсем корректно. Это обыкновенный workaround. Тов. Джон, видимо, долго анализировал большой объем кода различных программ/демок и нашел где можно сделать изменения так, чтобы ничего не испортить, и даже улучшить.
    Тем не менее, workaround - он и в Африке... Но самое главное здесь то, что Higgins однозначно утверждает
    Цитата Сообщение от Higgins
    У меня выборка PUSH в пять тактов и трехтактовых циклов вывода в порт нет. При этом Black Lamp, EEL demo и BBG работают как положено. (Спасибо за ссылки на первые две, я их раньше не пробовал. Black Lamp смотрится очень красиво.)
    что у него проблем в вышеуказанных демках и тестах нет, и при этом безо всяких решений-затычек. Почему-то Вы, то ли сознательно, то ли нет, вообще пропустили это замечание. Но кое-где Вы сами же сказали мудрую фразу:
    Всё получится, если всё сделать аккуратно
    Это Вам не в упрек. Это просьба не закрывать глаза на факты, тогда не придется переиначивать другие факты (например, 4х-тактовые циклы ввода/вывода и "лишний" такт в M1 у PUSH). EmuZGL уже гораздо лучше своего предшественника, многим нравится и мне в том числе. Так не идите же на поводу у любителей понаставить затычки "абы все известные проги работали правильно", а просто делайте красиво и хорошо. Увидев EmuZGL я понял, что Вы можете, когда хотите .

    P.S. При желании попробуйте внести коррективы в как минимум одну команду (речь об EX (SP),HL и, возможно еще об OTIR/OTDR) в соответствии с этим и этим (правда я не понял, что там насчет задержек в M1?).

    P.P.S.
    Higgins
    Цитата Сообщение от Higgins
    Так вот выборка -- не исключение, и на каждый дополнительный такт выборки мы получаем задержку со значением IR на адресной шине. PUSH, к слову, -- отличный пример на этот счет.
    А можно с этого места поподробнее? Т.е. Вы хотите сказать, что из-за цикла регенерации более одного такта процессор также задерживается? Хотелось бы прояснить эти тонкости. По WOS видно, что при циклах доступа к памяти Z80 более 3-х тактов - ULA 48k его задерживает и далее, считая каждый лишний такт доступом к той же памяти, вплоть до следующего цикла доступа к памяти; при этом циклы M1 неприкосновенны - присутствует лишь задержка непосредственно перед выборкой инструкции. Получается, и для M1 у ULA 48k есть некий лимит?
    Последний раз редактировалось ARTi; 13.05.2008 в 03:13.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. MEMos alpha demo
    от jim в разделе Софт
    Ответов: 11
    Последнее: 16.09.2007, 14:18
  2. Quick Commander v4.00 (preview)
    от Знахарь в разделе Софт
    Ответов: 12
    Последнее: 11.11.2005, 13:40

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •