User Tag List

Страница 68 из 81 ПерваяПервая ... 646566676869707172 ... ПоследняяПоследняя
Показано с 671 по 680 из 803

Тема: Реверс-инжиниринг Z80

  1. #671

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это биты 3 и 4 регистра опкода.
    проверил - да, действительно, опкоды ed46 (im0), ed4e (*im0), ed56 (im1) и ed5e (im2), сохраняют разное состояние режима.

    Т.е. внутри процессора есть разница между ed46 (im0) и ed4e (*im0).

    Цитата Сообщение от Titus Посмотреть сообщение
    REQ_DIS_BASE_SET - это запрос запрета декодера команд. О чем я писал уже выше.
    с нижней частью схемы понятно, а для чего в верхней NMI_ACK с IM1 объединяется - что это за сигнал уходит направо за границу схемы с выхода U44?

    Еще такой вопрос - есть ли в схеме физически регистр IFF2 или он как-то виртуально получается?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  2. #672

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Т.е. внутри процессора есть разница между ed46 (im0) и ed4e (*im0).
    Нет, разницы-то как раз нет) im0 и im0* воспринимаются процессором абсолютно одинаково.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    с нижней частью схемы понятно, а для чего в верхней NMI_ACK с IM1 объединяется - что это за сигнал уходит направо за границу схемы с выхода U44?
    Это выбор сигнала, который одинаков для NMI, RST, IM1, т.к. они обрабатываются схожим образом:



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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Еще такой вопрос - есть ли в схеме физически регистр IFF2 или он как-то виртуально получается?
    Разумеется есть:

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

    Reobne(22.12.2024)

  3. #673

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Нет, разницы-то как раз нет) im0 и im0* воспринимаются процессором абсолютно одинаково.
    однако режим хранится по разному

    Может и в обработке есть разница, судя по схеме один бит используется в блокировке декодера, второй нет. Получается можно как-то заметить эту разницу?

    Цитата Сообщение от Titus Посмотреть сообщение
    Разумеется есть:
    где примерно эта цепь IFF2 на кристалле находится? может ктото подскажет номер цепи в visual6502 z80 симуляторе?


    Как насчет регистра Q, который для недок флагов в SCF/CCF используется? Он есть физически?
    Последний раз редактировалось ZXMAK; 18.12.2024 в 23:30.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  4. #674

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    однако режим хранится по разному

    Может и в обработке есть разница, судя по схеме один бит используется в блокировке декодера, второй нет. Получается можно как-то заметить эту разницу?
    Никакой разницы нет.
    Схема была спроектирована для того, чтобы различать im0, im1, im2.
    im0* - это просто побочный недокументированный опкод.
    И у im0, и у im0* 4-й бит опкода равен нулю. Что блокирует U45 и U46.
    А следовательно обе эти команды выполняются абсолютно одинаково.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    где примерно эта цепь IFF2 на кристалле находится? может ктото подскажет номер цепи в visual6502 z80 симуляторе?
    Номера транзисторов могу подсказать:



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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Как насчет регистра Q, который для недок флагов в SCF/CCF используется? Он есть физически?
    Я не оперирую терминами в которых есть регистр Q. Это кто-то там придумал, и не знаю точно, что он под этим имел в виду.
    Особенности SCF/CCF в этой ветке у меня оооочень хорошо описаны, как и почему такое происходит. Просто надо все прочитать)

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

    ZXMAK(19.12.2024)

  5. #675

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

    По умолчанию

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

  6. #676

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    не нахожу, а можно такую-же схему с номерами транзисторов для IFF1?

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

    ZXMAK(19.12.2024)

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

  8. #677

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

    По умолчанию

    хм, не нахожу. Пробовал методом перебора путём выбора нодов которые соответствуют значению нода IFF1 на последовательности EI, NOP, DI, NOP, EI, NOP, DI, NOP. В результате осталась только одна нода IFF1. Толи в симуляторе нет этой цепи, толи IFF2 при выполнении EI/DI устанавливается и сбрасывается не одновременно с IFF1. Странно это.

    нашел только инверсную ноду IFF1:

    iff1 = 231
    _iff1 = 1166

    Однако при выполнении NMI/RETI флаг IFF1 восстанавливается. Значит где-то сохраняется, получается, что IFF1 и IFF2 устанавливаются на разных циклах.
    Последний раз редактировалось ZXMAK; 19.12.2024 в 04:28.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  9. #678

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

    По умолчанию

    в коде симулятора есть такой комент:
    Код:
    // * This file is automatically generated by Z80Simulator.   *
    // * Please do not manually edit! Instead, find a transistor *
    // * that uses the new signal and use FindTransistor(x,y) in *
    // * Z80Simulator to cause that signal to be added.          *
    // * This seems a pain, but it has two advantages:           *
    // * - all signals are then available in Z80Simulator        *
    // * - it avoids renumbering issues if/when the PNGs change  *
    Вопрос - что это за Z80Simulator? Где его взять?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #679

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    хм, не нахожу.
    Ты не написал, где ты и в каком проекте ищешь.
    На каком сайте.
    Что запускаешь.

    Я когда-то просто скачал Z80 Explorer, и в нем есть список всех транзисторов и координаты каждого транзистора на схеме.

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

    Но вообще, на моей схеме видно же, когда и чего устаналивается.

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

    Разберем схему:

    Триггер IFF1 сбрасывается по:
    1. Reset
    2. Прием NMI
    3. Прием INT

    Триггер IFF2 сбрасывается по:
    1. Reset
    2. Прием NMI

    Оба триггера устанавливаются/сбрасываются по EI/DI

    Триггер IFF2 копируется в IFF1 RETN/RETI, если не активен прием NMI

    Всё!

  11. #680

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Ты не написал, где ты и в каком проекте ищешь.
    На каком сайте.
    Что запускаешь.
    Проект visual6502: https://github.com/trebonian/visual6502

    Вот сама страница с симулятором: http://www.visual6502.org/JSSim/expert-z80.html

    там есть мелкие ошибки в дизассемблере, но они легко исправляются.

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

    Цитата Сообщение от Titus Посмотреть сообщение
    Оба триггера устанавливаются/сбрасываются по EI/DI
    проблема в том, что я пробовал перебором искать node, которая в каждом цикле соответствует IFF1 (node 231) для цепочки инструкций EI,NOP,DI,NOP, однако ничего не нашел, находится только инверсный сигнал _IFF1 (node 1166). Если оба триггера устанавливаются/сбрасываются по EI/DI одновременно, то такой подход должен был найти node для IFF2, ведь IFF1 и IFF2 на такой цепочке инструкций должны дублироваться в каждом цикле. Но ничего не находит. Как такое может быть?

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

Страница 68 из 81 ПерваяПервая ... 646566676869707172 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 1739
    Последнее: 09.01.2025, 10:55
  2. Ответов: 32
    Последнее: 18.12.2024, 18:19
  3. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  4. Реверс МК-92
    от Случайность в разделе Программируемые калькуляторы
    Ответов: 55
    Последнее: 24.04.2021, 23:47
  5. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46

Ваши права

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