User Tag List

Страница 51 из 81 ПерваяПервая ... 474849505152535455 ... ПоследняяПоследняя
Показано с 501 по 510 из 803

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

  1. #501

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

    По умолчанию

    Цитата Сообщение от org Посмотреть сообщение
    Не очень понял как можно сломать схему, если перепутать название (полярность) сигнала, ну да ладно
    В смысле как? Если я вместо, допустим, 2ИЛИ-НЕ впилю 2ИЛИ, то схема сломается.

  2. #502

    Регистрация
    20.06.2014
    Адрес
    г. Чехов
    Сообщений
    56
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    30 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    В смысле как? Если я вместо, допустим, 2ИЛИ-НЕ впилю 2ИЛИ, то схема сломается.
    А почему должен впиливаться какой-то другой вентиль? Если переименовать провод он по другому работать не будет. Тут судя по всему не в полярности проводов дело, а в том что трансы перегоняются в вентили неправильно. Полярность сигнала тут причём?

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

    UncleDim(10.10.2024)

  3. #503

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

    По умолчанию Великая загадка команды BIT n,(HL) раскрыта!

    И наконец, особенности установки 5 и 3 бит регистра флагов после выполнения команды BIT r,(HL).

    В команде BIT n,(HL) в отличие от команд типа ALU (HL) цикл чтения аргумента из памяти (M4) длится 4, а не 3 такта!
    Почему такое происходит, при том что команды абсолютно однотипные?
    Дело в том, что все команды с префиксом CB активизируют сигнал GRP_OFFSET, как и команды работающие только с индексной адресацией. Очевидно, это сделано для универсализации работы набора CB с индексной адресацией. А быть может просто вследствие ошибки. Если бы не эта совершенно ненужная особенность, команда BIT n,(HL) выполнялась бы не 12, а 11 тактов.
    Сигнал GRP_OFFSET в основном влияет на циклы M2 и M3, отвечающие за индексную адресацию. Но при этом он еще и влияет на длительность цикла M4, продлевая его с 3 до 4 тактов. И этот 4-й такт совершенно для нашей команды бесполезен!
    Но самое главное, что в такте M4.T4.2 всегда активно чтение старшего байта выбранного регистра на шину HBUS. А какой же регистр у нас выбран? А выбран WZ, т.к. когда не выбран никакой регистр, всегда выбирается WZ. В результате на обьединенной шине HBUS/LBUS оказывается не содержимое рабочего регистра r, как в команде BIT n,r, а старший байт регистра WZ, который используется другими командами для вычисления исполнительного адреса при индексной адресации.
    Возникает вопрос, ведь в последнем такте любой команды должен выбираться регистр PC, и это должно блокировать выбор WZ?
    Нет, не блокирует, т.к. выбор регистра PC для чтения кода операции управляется отдельной линией, и не блокирует выбор WZ. Иными словами, в первом такте следующей за BIT n,(HL) команды одновременно читается регистр PC из дополнительного регистрового блока (регистры PC и IR) для выборки кода команды, и читается регистр WZ.H из основного регистрового блока на шину HBUS/LBUS, откуда через несколько тактов и попадает в 5 и 3 биты флагового регистра.

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

    Цитата Сообщение от org Посмотреть сообщение
    А почему должен впиливаться какой-то другой вентиль? Если переименовать провод он по другому работать не будет. Тут судя по всему не в полярности проводов дело, а в том что трансы перегоняются в вентили неправильно. Полярность сигнала тут причём?
    При чем тут название провода. От имени ничего не меняется. Когда я перегоняю трансы в вентили, либо же когда оптимизирую схему, соединяя несколько вентилей в триггер, или меняя полярность какой-то линии, т.к. в оригинале она инверсная, а для лучшего понимания схемы следует линию сделать прямой. Вот тут и может закрасться ошибка. Повторюсь еще раз, я не делаю схему для клонирования ее в ФПГА. Прежде всего я делаю схему, чтобы она была наглядной и понятной, поэтому вследствие этих оптимизаций и может закрасться ошибка перепутанной полярности.

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

    SoftLight(09.10.2024)

  4. #504

    Регистрация
    20.06.2014
    Адрес
    г. Чехов
    Сообщений
    56
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    30 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    При чем тут название провода. От имени ничего не меняется. Когда я перегоняю трансы в вентили, либо же когда оптимизирую схему, соединяя несколько вентилей в триггер, или меняя полярность какой-то линии, т.к. в оригинале она инверсная, а для лучшего понимания схемы следует линию сделать прямой. Вот тут и может закрасться ошибка. Повторюсь еще раз, я не делаю схему для клонирования ее в ФПГА. Прежде всего я делаю схему, чтобы она была наглядной и понятной, поэтому вследствие этих оптимизаций и может закрасться ошибка перепутанной полярности.
    Понял. Мы этот процесс называем "деморганизация". За годы убедились что оно подвержено ОЧЕНЬ большому количеству ошибок и поэтому лично я де-Моргана не проворачиваю. Оставляю как есть.

  5. #505

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

    По умолчанию

    Цитата Сообщение от org Посмотреть сообщение
    За годы убедились что оно подвержено ОЧЕНЬ большому количеству ошибок и поэтому лично я де-Моргана не проворачиваю. Оставляю как есть.
    Ну ведь они же выявятся, когда схема не заработает? И исправятся)

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

    Да, через 'деморганизацию' у меня прошла вся схема вдоль и поперек.

  6. #506

    Регистрация
    20.06.2014
    Адрес
    г. Чехов
    Сообщений
    56
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    30 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Ну ведь они же выявятся, когда схема не заработает? И исправятся)

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

    Да, через 'деморганизацию' у меня прошла вся схема вдоль и поперек.
    Нет деморгана - нет дополнительных ошибок. Исправятся, да, но зачем вносить лишние ошибки

  7. #507

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

    По умолчанию

    Цитата Сообщение от org Посмотреть сообщение
    Нет деморгана - нет дополнительных ошибок. Исправятся, да, но зачем вносить лишние ошибки
    У меня нет другого варианта преобразовать схему в самый дружественный и понятный вид, кроме как таким образом.

  8. #508

    Регистрация
    20.06.2014
    Адрес
    г. Чехов
    Сообщений
    56
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    30 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    У меня нет другого варианта преобразовать схему в самый дружественный и понятный вид, кроме как таким образом.
    Ну опять же возвращаясь к теме "понимания". Комбинаторно-последовательностная логика, в которой ты копаешься - понимается путём изучения временных диаграмм.
    Это brainchild разработчиков чипа.
    Даже если ты красиво восстановишь схему - тот кто будет искать практическое применение не будет изучать вентили - "ммм а тут у нас AND, тот OR агась потом это идёт на этот FF". Ему интересней будет понимать какие диаграммы порождает данный кусок логики. Схему никто "читать" не будет, только в крайнем случае, если возникнут вопросы, на которые нельзя ответить просматривая вейвы.
    Это тоже самое что восстанавливать дизассемблированный код умножения двух матриц написанный на SSE. Не нужно понимать почему одна SSE следует за другой. Нужно понимать просто как работает каждая инструкция ("вентили") и что в итоге делает весь кусок кода ("логики").

    И к другим новостям. Я начал восстанавливать топо верхнего левого угла тошибовского з80. Там находится клоковый гена, буферы для DB интерфейса и АЛУ.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	topleft.jpg 
Просмотров:	91 
Размер:	23.7 Кб 
ID:	81382  

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

    tushkan(11.10.2024)

  9. #509

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

    По умолчанию

    Цитата Сообщение от org Посмотреть сообщение
    Ну опять же возвращаясь к теме "понимания". Комбинаторно-последовательностная логика, в которой ты копаешься - понимается путём изучения временных диаграмм.
    Изучение диаграмм - это смотреть только на последствия, но не на причину.
    Для простого повторения чипа в ФПГА и контроля идентичности - вполне подходяще. Экономит время и деньги.
    Однако, для моих целей - детального изучения особенностей работы Z80 смотреть только на последствия - не информативно.
    Попробуй найти, почему шумит команда SCF/CCF по диаграммам? Диаграммы даже не покажут этот шум.
    Почему OUT (c),0 выдает ноль? Почему BIT n,(HL) выставляет так флаги, и как?
    Видя схему, это понимается достаточно легко и быстро.
    Диаграммы модели в проекте Z80 Explorer существуют уже 10 лет. Но как-то это не особо продвинуло в понимании некоторых загадок Z80, которые без видения причин, а не последствий отгадать можно только умозрительно и предположительно.
    Твой подход хорош для твоих целей. А мой для моих. Каждому своё)

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

    Цитата Сообщение от org Посмотреть сообщение
    И к другим новостям. Я начал восстанавливать топо верхнего левого угла тошибовского з80. Там находится клоковый гена, буферы для DB интерфейса и АЛУ.
    Лучше картинки не прикреплять средствами форума, они несмотрибельные.
    Лучше на сторонний хостинг. Мы использовали pic.maxiol.com, хотя по стечению обстоятельств, он сегодня первый день, как не работает)

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

    AlexG(10.10.2024)

  10. #510

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

    По умолчанию Особенности работы команд LDI(R)/LDD(R)

    Упрощенное описание команд LDI(R)/LDD(R):


    В такте M1.T4 сбрасываются флаги N и H.

    В такте M2.T1 содержимое HL записывается в PCR и на шину адреса для чтения содержимого памяти по адресу (HL).
    В такте M2.T3 инкрементированное (для LDI(R)) или декрементированное (для LDD(R)) содержимое PCR обратно записывается в регистр HL.

    В такте М3.T1 содержимое DE записывается в PCR и на шину адреса для записи байта в память по адресу (DE).
    В такте M3.T3 инкрементированное (для LDI(R)) или декрементированное (для LDD(R)) содержимое PCR обратно записывается в регистр DE.
    В такте M3.T4 содержимое BC записывается в PCR. Если BC = 1, то флаг P=0, иначе флаг P=1. Если BC = 1 или команда LDI/D, то этот цикл является последним циклом команды.
    В такте M3.T5 декрементированное содержимое PCR записывается обратно в регистр BC. Также в этом такте + 1 на шину HBUS выдается результат работы АЛУ. В нашем случае (точно пока не изучал) АЛУ должно было сложить содержимое регистра A и байта, который копировался из (HL) в (DE). Таким образом, 5 и 3 биты регистра флагов берутся из A + (HL).

    В такте M4.T1 содержимое PC записывается в PCR.
    В такте M4.T3 декрементированное содержимое PCR записывается обратно в PC и снова читается в PCR
    В такте M4.T5 декрементированное содержимое PCR записывается обратно в PC.

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

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

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

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

Ваши права

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