User Tag List

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

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

Комбинированный просмотр

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

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

    По умолчанию

    Набросал логическую схему триггеров прерываний.

    Как видно из схемы, команды RETI и RETN абсолютно идентичны. Хотя в документации указано, что только RETN приводит к копированию IFF2 в IFF1.

    И еще замечание. В описании сказано, что при выполнении команды EI поступивший в это время запрос на прерывание будет блокирован, пока не выполнится следующая за EI команда.
    Но судя по схеме, EI (равно как и DI) просто блокирует разрешение записанное в IFF1. А следовательно, если будет выполнятся цепочка из команд EI, то прерывание не сработает, пока все EI не выполнятся.

    И еще, IFF2 нигде не используется, кроме как для команды LD A,I/R, либо же для копирования в IFF1 по команде RETN/RETI. Что, впрочем, совпадает с описанием.

    Добавка:
    NET00188 - это INT_ACK (подтверждение INT)
    NET00135 - это NMI_ACK (подтверждение NMI)
    NET00114 - это INT_REQ (запрос INT)

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


    [свернуть]
    Последний раз редактировалось Titus; 16.05.2022 в 02:21.

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

    Alex Rider(17.05.2022), Reobne(16.05.2022)

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

  3. #2

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    И еще замечание. В описании сказано, что при выполнении команды EI поступивший в это время запрос на прерывание будет блокирован, пока не выполнится следующая за EI команда.
    Но судя по схеме, EI (равно как и DI) просто блокирует разрешение записанное в IFF1. А следовательно, если будет выполнятся цепочка из команд EI, то прерывание не сработает, пока все EI не выполнятся.
    а retn/reti как блокируют только после первой в цепочке?
    https://spectrumcomputing.co.uk/foru...pic.php?t=7086
    Прихожу без разрешения, сею смерть и разрушение...

  4. #3

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а retn/reti как блокируют только после первой в цепочке?
    https://spectrumcomputing.co.uk/foru...pic.php?t=7086
    Не совсем понял вопрос.

    Если отвечать на вопрос по твоей ссылке, то я не увидел на схеме ничего особенного. По команде RETN IFF2 копируется в IFF1. Просто реакция на это новое значение IFF1 скорее всего задерживается на одну команду, т.к. есть конвейер. Но я до него еще не дошел.

  5. #4

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Не совсем понял вопрос.

    Если отвечать на вопрос по твоей ссылке,
    там вопроса нету, там утверждение, что первая retn/reti в цепочке ведёт себя как ei...
    "as in EI, all forms of the RETI and RETN instructions defer the acceptance of the maskable interrupt for one instruction,"
    ...а вторая и последующие почему-то нет
    "unlike EI, a sequence of RETI/RETN instructions will not prevent an INT request from being accepted"

    или это из-за префикса происходит? интересно, как тогда сработает цепочка ei-reti-ei-reti-
    Прихожу без разрешения, сею смерть и разрушение...

  6. #5

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    как тогда сработает цепочка ei-reti-ei-reti-
    Там есть ответ на этот вопрос. После ei-reti/retn прерывание будет принято. Чтобы оно не было принято после reti/retn, надо ei-...-nmi-...-reti/retn

  7. #6

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Там есть ответ на этот вопрос. После ei-reti/retn прерывание будет принято. Чтобы оно не было принято после reti/retn, надо ei-...-nmi-...-reti/retn
    а кто сказал, что NMI не может долбить морзянкой?
    Прихожу без разрешения, сею смерть и разрушение...

  8. #7

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а кто сказал, что NMI не может долбить морзянкой?
    на поведение
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    ei-reti-ei-reti-
    это не повлияет

  9. #8

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    В описании сказано, что при выполнении команды EI поступивший в это время запрос на прерывание будет блокирован, пока не выполнится следующая за EI команда.
    Но судя по схеме, EI (равно как и DI) просто блокирует разрешение записанное в IFF1. А следовательно, если будет выполнятся цепочка из команд EI, то прерывание не сработает, пока все EI не выполнятся.
    Не вижу противоречия, просто каждый следующий EI в свою очередь откладывает реакцию на прерывание, 8080 работает аналогично.

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

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

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

Ваши права

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