Важная информация

User Tag List

Страница 275 из 278 ПерваяПервая ... 271272273274275276277278 ПоследняяПоследняя
Показано с 2,741 по 2,750 из 2779

Тема: Xpeccy

  1. #2741

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от cafedead Посмотреть сообщение
    Насколько это соответствует работе реального процессора?
    Блочная инструкция это обычная инструкция, в конце которой счетчик PC делает два декремента, т.е. откатывается назад на 2 байта.
    Именно так ее и следует рассматривать, не рождая дополнительные сложные сущности.
    И я также подробно описывал, как работают блочные команды, именно глядя на отреверсенную схему, а не на ее симуляцию.

    Симуляцией не пользуюсь вообще.

    К тексту про MEMPTR не обращаюсь.

    Для всего мне хватает просто отреверсенной схемы)

  2. #2742

    Регистрация
    24.07.2018
    Адрес
    г. Москва
    Сообщений
    83
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    34 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    в конце которой счетчик PC делает два декремента,
    Цитата Сообщение от Titus Посмотреть сообщение
    Для всего мне хватает просто отреверсенной схемы)
    А вы вот уверены, что PC делает именно два декремента? Как это выглядит на схеме?

    Цитата Сообщение от Titus Посмотреть сообщение
    К тексту про MEMPTR не обращаюсь.
    Ну да, вы этот регистр просто не эмулируете. Очень убедительно.
    Последний раз редактировалось cafedead; 23.04.2025 в 17:34.

  3. #2743

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от cafedead Посмотреть сообщение
    По-моему, это какие-то взаимоисключающие моменты. Я конечно понимаю, что вы хотите этим сказать, и не хотел бы цепляться к словам. Но на самом деле ваше "симулирует просто работу транзисторов" - это "недостаточно хорошо симулирует работу транзисторов", раз уж там внезапно не получается сделать имитацию просадки напряжения от нагрузки.
    в симулятор загружается схема процессора - массив со списком транзисторов и к какой цепи подключена каждая из его ног. Дальше симулятор просто обновляет сигналы проверяя сигнал на входе транзистора открывая/закрывая транзистор. Плавающий не плавающий бит зависит от уровня симуляции - имитирует ли симулятор переходные процессы для сигналов и транзисторов или просто обрабатывает транзисторы как ключи. Симуляция влияния космических лучей и радиации - по желанию...

    Симуляция переходных процессов муторная и затратная, а толку от этого мало, поэтому в существующих симуляторах транзисторы обрабатываются просто как ключи. плавающие биты - это по сути глючные части схемы, которые вообще не планировалось чтобы были задействованы.

    Цитата Сообщение от cafedead Посмотреть сообщение
    А можете нам ответить, пожалуйста, именно что-то по нашей теме здесь, а именно, есть ли разница, или может ли быть разница между тем, разбили ли мы блочную инструкцию самой этой инструкцией, и приемом прерывания, прерывающим эту блочную инструкцию, в плане влияния на флаги после действия блочной инструкции и передачи управления на ее же начало в очередной раз?
    для процессора нет прерываний блочной инструкции, процессор ничего не прерывает - какой опкод зафетчился, тот и выполняется.

    Цитата Сообщение от cafedead Посмотреть сообщение
    Как вам вот такая реализация в эмуляторе, когда вычисления флагов блочных инструкций происходит при приеме прерывания? Насколько это соответствует работе реального процессора на ваш взгляд?
    это как-то странно, а если прерывания нет, то флаги не вычисляются? Думаю так будет сложно предусмотреть все возможные ситуации.
    Последний раз редактировалось ZXMAK; 23.04.2025 в 18:11.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  4. #2744

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от cafedead Посмотреть сообщение
    А вы вот уверены, что PC делает именно два декремента? Как это выглядит на схеме?
    Предлагаю поискать в специальной теме.

    - - - Добавлено - - -

    Цитата Сообщение от cafedead Посмотреть сообщение
    Ну да, вы этот регистр просто не эмулируете. Очень убедительно.
    При чем здесь эмуляция? Я ничего не эмулирую пока что.

    - - - Добавлено - - -

    А вот тут кратко расписаны особенности работы команд LDI(R)/LDD(R).

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    cafedead(23.04.2025)

  5. #2745

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от cafedead Посмотреть сообщение
    А вы вот уверены, что PC делает именно два декремента? Как это выглядит на схеме?
    на схеме это выглядит так, вот лог сигналов Z80 на каждом цикле(по переходу clk из 1 в 0) при выполении LDIR для BC=2.

    Исполняемый код (сам ldir начинается с адреса #0003):




    Наглядно видно, что PC действительно на 2 уменьшается, странно в этом сомневаться
    Последний раз редактировалось ZXMAK; 23.04.2025 в 18:41.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  6. #2746

    Регистрация
    24.07.2018
    Адрес
    г. Москва
    Сообщений
    83
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    34 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А вот тут кратко расписаны особенности работы команд LDI(R)/LDD(R).
    Ну настолько кратко, что плохо соответствует ранее открытой инфе.
    Цитата Сообщение от Titus Посмотреть сообщение
    Таким образом, 5 и 3 биты регистра флагов берутся из A + (HL).
    PV=1 если после декремента BC<>0
    F3=бит 3 операции переданный байт + A
    F5=бит 1 операции переданный байт + A
    И к тому же в вашем комментарии от 2024 года ничего нет про изменение флагов, если прервать инструкцию LDIR/LDDR, что есть в инфе на форуме от 2018 года. Я понимаю, что краткость - сестра таланта, но... В чем таится реальная польза от написанного вами про LDI(R)/LDD(R)? Я это все к тому, что ни черта вам на самом деле не видно по схемам, в чем вы пытаетесь всех убедить. Уж извините. Не нужно вводить в заблуждение ни себя, ни других, если вот так легко можно подловить вас на ваших выдумках.

    Ни в коем случае не хочу отбить у вас желание заниматься тем, чем вы занимаетесь. Наверное, полезная деятельность, и интересная. На здоровье. Просто факты вот таковы. Не информативно. Все у вас что-то, где-то, как-то, куда-то. А тут раздел про эмуляцию, где важна точность и конкретика. Ваша тема на очень много страниц, увы, не содержит ничего подходящего по таким критериям.

    - - - Добавлено - - -

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Наглядно видно, что PC действительно на 2 уменьшается, странно в этом сомневаться
    Не видно. PC=5 при вычитывании опкода #B0, потом становится равным PC=4, и указывает на код #ED. Т.е. уменьшился на единицу.... ... Потому что пять минус четыре равно один. Ваш кэп. Он хотя бы раз был равен шести на вашей картинке до того, как BC стал единицей, чтобы вы так уверенно не сомневались? Нет. Ну только у вас в голове, разве что. Потому что я отчетливо вижу это, а вы - что-то свое.

    Вы же знаете, что есть сценарии, когда PC не инкрементируется. Почему же у вас нет сомнений?
    Последний раз редактировалось cafedead; 23.04.2025 в 22:28.

  7. #2746
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #2747

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от cafedead Посмотреть сообщение
    Не видно. PC=5 при вычитывании опкода #B0, потом становится равным PC=4, и указывает на код #ED. Т.е. уменьшился на единицу.... ... Потому что пять минус четыре равно один. Ваш кэп. Он хотя бы раз был равен шести на вашей картинке до того, как BC стал единицей, чтобы вы так уверенно не сомневались? Нет.
    Когда процессор читает опкод, регистр pc уже увеличен на 1. Если посмотрите внимательнее, процессор читает из адреса 3, а pc в это время уже увеличен на 1. поэтому равен 4. А 5 - это адрес NOP следующего за LDIR. Сам LDIR расположен по адресу #0003.
    Вот содержимое памяти:
    #0003 = #ed
    #0004 = #b0
    #0005 = #00

    Смотрите на цикл 32, где pc из #0005 становится #0003.
    5 - 3 = 2.
    Затем на цикле 34 идет чтение опкода #ed из адреса #0003.

    Вот более детальный лог по полу-циклам:
    Последний раз редактировалось ZXMAK; 23.04.2025 в 19:34.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  9. #2748

    Регистрация
    24.07.2018
    Адрес
    г. Москва
    Сообщений
    83
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    34 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    смотрите на цикл 32, где pc из #0005 становится #0003, затем на цикле 34 идет чтение опкода #ed из адреса #0003.
    Т.е. мне должно было быть наглядно видно, что в PC у нас 0004, когда на адресной шине для выборки инструкции лежит #0003 из регистра PC все время, пока она вычитывается по адресу #0003? Ну как бы нет, мне не было это наглядно видно, и не должно было быть. Мне видно будет на шине реального процессора #0003, и из этого я исхожу. Тот факт, что у вас в табличке PC=0004 нарисовано при этом... Ну на заборе тоже много чего нарисовано. Ну т.е. тогда, когда я вам говорю, что надо все проверять, перепроверять за всеми все сказанное, вы мне заявляете, что я должен уверовать, как вы, что там #0004, потому что в вашей табличке симуляции так написано. И по каким критериям я должен оценивать достоверность этих данных? Чтобы убедиться, что это не какая-то фантазия автора на тему, который не факт что правильно все симулирует? Объясните, а то я тоже хочу смотреть в такую табличку, и получать такое же удовольствие.

    Ну и один раз быстрее вычесть, чем два раза это сделать. И в MEMPTR #0004 уже вроде как, и ведь не просто так. Объяснения будут, нахрена все это нужно? В чем прикол? И не мог ли автор симуляции неправильно все понять, например? Вы уверены, что во время вычитывания опкода по адресу #0004 в PC #0005? Откуда эта уверенность? Да и вообще, в чем польза от этого знания, если даже предположить, что эта странная херня и является истиной? Вот уж, по-моему, самая бесполезная херня, которую можно было только найти с помощью схем, из всех возможных загадок.
    Последний раз редактировалось cafedead; 23.04.2025 в 20:33.

  10. #2749

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от cafedead Посмотреть сообщение
    И к тому же в вашем комментарии от 2024 года ничего нет про изменение флагов, если прервать инструкцию LDIR/LDDR, что есть в инфе на форуме от 2018 года. Я понимаю, что краткость - сестра таланта, но... В чем таится реальная польза от написанного вами про LDI(R)/LDD(R)? Я это все к тому, что ни черта вам на самом деле не видно по схемам, в чем вы пытаетесь всех убедить. Уж извините. Не нужно вводить в заблуждение ни себя, ни других, если вот так легко можно подловить вас на ваших выдумках.
    Хм... похоже, я не сразу понял, что тут не дискуссия а тонкий(?) троллинг)
    Взял чипсы, понаблюдаю, как долго ZXMAK выдержит)

  11. #2750

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от cafedead Посмотреть сообщение
    Мне видно будет на шине реального процессора #0003, и из этого я исхожу.
    шина адреса процессора - это столбец db в таблице, а шина данных ab. Но они не соответствуют pc или hl - это просто значение защелке установленное на одном из полуциклов.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Страница 275 из 278 ПерваяПервая ... 271272273274275276277278 ПоследняяПоследняя

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

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

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

Ваши права

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