User Tag List

Страница 74 из 81 ПерваяПервая ... 707172737475767778 ... ПоследняяПоследняя
Показано с 731 по 740 из 803

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

  1. #731

    Регистрация
    12.04.2009
    Адрес
    Одесса
    Сообщений
    644
    Спасибо Благодарностей отдано 
    443
    Спасибо Благодарностей получено 
    109
    Поблагодарили
    75 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а нетлист отсюда ( https://github.com/1801BM1/vm80a/tree/master/sch ) выгрузить?
    или надо чистый 8080?

  2. #732

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

    По умолчанию

    Цитата Сообщение от anasana Посмотреть сообщение
    а нетлист отсюда ( https://github.com/1801BM1/vm80a/tree/master/sch ) выгрузить?
    или надо чистый 8080?
    там схема в бинарном pcad формате, мне нечем прочитать. Да и из схемы вытянуть связи между транзисторами задача не такая и простая, нужно свой парсер писать. Может чтото готовое есть?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  3. #733

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Да и из схемы вытянуть связи между транзисторами задача не такая и простая, нужно свой парсер писать. Может чтото готовое есть?
    Вряд ли) Скорее всего самому придется)

  4. #734

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

    По умолчанию

    Titus, пытаюсь разобраться в твоей схеме как процессор префиксные инструкции обрабатывает. Где он хранит информацию о префиксах?

    На схеме PLA нашел сигналы /CB_SET, /ED_SET, /IDX_SET, /BASE_SET. Но смысл их непонятен.

    Казалось бы первые два должны устанавливаться сразу после обработки соответствующего префикса CB/ED, но нет. /ED_SET устанавливается на последнем такте выборки опкода после префикса, где тогда хранится все это время информация о префиксе?

    С /CB_SET всё еще чудесатее - он устанавливается уже после выборки префикса и опкода... и более того - удерживается даже когда идет выборка следующего опкода...

    /IDX_SET устанавливается на последнем такте выборки опкода (как и /ED_SET), при этом непонятно как процессор отличает IX от IY.

    Что такое /BASE_SET вообще не понятно - он устанавливается на последнем такте выборки опкода и может вообще не сбрасываться на серии инструкций.

    Нашел еще сигналы DD/FD prefix, CB prefix, ED prefix и их объединение DD/FD/ED/CB prefix на схеме ECO, они ведут себя более адекватно - устанавливаются после префиксов, но странно - сбрасываются как-раз перед последним тактом выборки опкода, т.е. когда идет захват опкода они уже сброшены - странно.

    Почему-то для DD/FD,CB такого сигнала нет - после DD/FD устанавливается сигнал DD/FD, а после следующего за ним CB сигнал DD/FD сбрасывается и устанавливается CB, как при обычном префиксе CB. Странно.
    Последний раз редактировалось ZXMAK; 25.12.2024 в 20:34.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  5. #735

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    На схеме PLA нашел сигналы /CB_SET, /ED_SET, /IDX_SET, /BASE_SET. Но смысл их непонятен.
    Как раз все понятно. Если установлен соответствующий сигнал, то опкод декодируется в соответствии с префиксом.

    BASE_SET - это базовый набор инструкций

    Триггеры, хранящие состояние префиксов тактируются сигналом PREF_CLK, который в общем случае активен в M1.T3.1

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    /IDX_SET устанавливается на последнем такте выборки опкода (как и /ED_SET), при этом непонятно как процессор отличает IX от IY.
    Есть специальный триггер, он содержит информацию, какой сейчас набор IX или IY. Транзисторы T3603/T3611 и т.д.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Почему-то для DD/FD,CB такого сигнала нет - после DD/FD устанавливается сигнал DD/FD, а после следующего за ним CB сигнал DD/FD сбрасывается и устанавливается CB, как при обычном префиксе CB. Странно.
    Выборка опкода для DD/FD/CB отличается от всех остальных команд. Этот опкод выбирается отдельным способом не в цикле M1. Я об этом писал в этой теме, поищи. Видимо, это было сделано для ускорения таких команд или для еще какой-то оптимизации.

  6. #736

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    BASE_SET - это базовый набор инструкций
    почему он не сбрасывается на серии префиксных инструкций?

    Скрытый текст





    [свернуть]


    Цитата Сообщение от Titus Посмотреть сообщение
    Есть специальный триггер, он содержит информацию, какой сейчас набор IX или IY. Транзисторы T3603/T3611 и т.д.
    да, действительно именно тут хранится, спасибо за инфу По умолчанию он 1, для DD опкодов сбрасывается в 0. Получается IY у Z80 как-бы регистр по умолчанию?

    А почему сигнал никак не назван?

    Любопытно, что сигнал и SEL_IX и SEL_IY, в отличие от указанного, включается только на один полу-такт в момент пересылки.
    Последний раз редактировалось ZXMAK; 25.12.2024 в 22:03.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

  8. #737

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    А почему сигнал никак не назван?
    Есть сигналы, которые и так понятны из контекста. Не буду же я все десять тысяч соединений подписывать именами)

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    почему он не сбрасывается на серии префиксных инструкций?
    Ты имеешь в виду префиксных DD/FD?
    Но ведь набор команд остается тот же, просто меняется HL на IDX, и всякое такое.
    Тогда как в ED и CB меняется сам набор команд.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Любопытно, что сигнал и SEL_IX и SEL_IY, в отличие от указанного, включается только на один полу-такт в момент пересылки.
    Все правильно. Так как SEL_какой-то регистр непосредственно управляет чтением/записи из банка регистров, а активная фаза чтения или записи как раз и длится пол-такта.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    да, действительно именно тут хранится, спасибо за инфу По умолчанию он 1, для DD опкодов сбрасывается в 0. Получается IY у Z80 как-бы регистр по умолчанию?
    Нет регистра по умолчанию)

    По умолчанию - это то, что выбирается, когда нет явного указания, что выбрать.
    А тут явно 0 или 1, и иного не дано.

  9. #738

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Ты имеешь в виду префиксных DD/FD?
    Но ведь набор команд остается тот же, просто меняется HL на IDX, и всякое такое.
    Тогда как в ED и CB меняется сам набор команд.
    нет, после завершения выполнения инструкции он почему-то не сбрасывается.
    Он похоже меняется на последнем такте выборки следующего опкода (M1 T3), поэтому когда идет DD,21,00,00, DD,21,00,00, то он все время в нуле...

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

    Как-то очень сложно и непонятно префиксы в Z80 обрабатываются, я думал там все прозрачнее и проще. Пока не понимаю как это работает...

    Вот пример обработки DD,CB,00,46:

    Скрытый текст



    [свернуть]


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

  10. #739

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    DD,21,00,00, DD,21,00,00, то он все время в нуле...
    Похоже, ты смотришь на инверсный сигнал. Он наоборот все время в единице.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Вот пример обработки DD,CB,00,46:
    И чего тут непонятного?

  11. #740

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Похоже, ты смотришь на инверсный сигнал. Он наоборот все время в единице.
    я вот о чём:

    Скрытый текст



    [свернуть]


    Цитата Сообщение от Titus Посмотреть сообщение
    И чего тут непонятного?
    непонятно тут то, что на момент выборки опкода понять из состояния приведенных сигналов, что именно должен сделать процессор решительно невозможно. Флаги префиксов именно на такте захвата опкода сбрасываются (ещё до того как опкод будет захлопнут в защелке), для DD,CB вообще идут странные переключения из одного режима в другой.
    Последний раз редактировалось ZXMAK; 25.12.2024 в 23:39.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

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

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

Эту тему просматривают: 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

Ваши права

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