User Tag List

Страница 67 из 81 ПерваяПервая ... 636465666768697071 ... ПоследняяПоследняя
Показано с 661 по 670 из 803

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

  1. #661

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Про 6502 ничего не могу сказать.
    я про Z80: http://www.visual6502.org/JSSim/expert-z80.html

    Видимо кнопка сброса не совсем сброс делает, а просто инициализирует начальное состояние.
    Разобрался.

    А какие варианты сброса у Z80 есть? Помню читал есть короткий сброс и длинный. Сколько минимум тактов нужно держать активным _reset для первого и второго варианта?
    Последний раз редактировалось ZXMAK; 18.12.2024 в 14:49.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

  3. #662

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    А какие варианты сброса у Z80 есть? Помню читал есть короткий сброс и длинный. Сколько минимум тактов нужно держать активным _reset для первого и второго варианта?
    Специальный сброс тебе не нужно реализовывать.
    Без специального внешнего железа, который делает сброс синхронным с циклом M1, такой сброс не реализовать.

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

    Цитата Сообщение от Titus Посмотреть сообщение
    В общих чертах все более-менее правильно описано было в этой статье.

    Так как подробные схемы и диаграммы в этой теме не пользуются популярностью, расскажу лишь кратко.

    1. Вовсе не обязательно выдерживать длительность сигнала специального ресета такой, как описано в патенте. Импульс может быть длинной даже менее полутакта. Главное, чтобы во время фиксации ресета (в M1.T2.2) он был активен, а в M1.T2.4 уже не активен.
    2. Импульс специального ресета устанавливается по М1.Т2, далее по M1.T1 следующего цикла происходит сброс регистра PC, а по M1.T2 импульс специального ресета снимается.
    3. Импульс специального ресета задействует механизм запрета декодирования кода команды, который также используется в IM1,2, NMI, HALT. В этом режиме любая команда воспринимается декодером команд, как 00 (NOP).
    4. Если специальный ресет поступил во время выполнения любой команды с префиксом, то выполнение специального ресета откладывается до окончания выполнения этой команды.
    5. Также специальный ресет снимает режим HALT.
    6. Если обычный ресет пришел во время M1.T2, то он задерживается на 1 такт.
    Читай выше.

  4. #663

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    лавное, чтобы во время фиксации ресета (в M1.T2.2) он был активен, а в M1.T2.4 уже не активен.
    можно поподробнее, что значит M1.T2.2 и M1.T2.4?

    Речь идет о двух полуциклах M1-T2, когда процессор читает опкод с шины данных, но не включая следующего полуцикла M1-T3 (последний полуцикл чтения опкода)?

    Кстати еще вопрос - в какой именно момент происходит захват слова с шины данных при чтении из памяти? На примере выполнения выполнения NOP:
    Код:
    cycle	ab	db	_m1	_rd	_wr	_mreq	_iorq	State	pc	Fetch
    0	0000	ff	1	1	1	1	1	m1 t1	0000		
    0	0000	ff	0	1	1	1	1	m1 t1	0000		
    1	0000	00	0	0	1	0	1	m1 t2	0001	NOP	
    1	0000	00	0	0	1	0	1	m1 t2	0001	NOP	
    2	0000	00	0	0	1	0	1	m1 t3	0001	NOP	
    2	0000	ff	1	1	1	1	1	m1 t3	0001		
    3	0000	ff	1	1	1	0	1	m1 t4	0001		
    3	0000	ff	1	1	1	0	1	m1 t4	0001
    как видно, выборка #00 с шины данных db идет 3 полуцикла, но в какой момент происходит фиксация данных?
    Последний раз редактировалось ZXMAK; 18.12.2024 в 16:32.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  5. #664

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    можно поподробнее, что значит M1.T2.2 и M1.T2.4?

    Речь идет о двух полуциклах M1-T2, когда процессор читает опкод с шины данных, но не включая следующего полуцикла M1-T3 (последний полуцикл чтения опкода)?
    M1 - это цикл M1.
    T2 - это второй такт цикла M1
    .2 - это означает, что это второй полутакт такта T2

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Кстати еще вопрос - в какой именно момент происходит захват слова с шины данных при чтении из памяти? На примере выполнения выполнения NOP:

  6. #665

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

    По умолчанию

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

  7. #666

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    тогда что значит M1.T2.4? Четвертый полутакт? Их-же два, дальше идет T3, разве не так?
    Я выше в теме писал, что если какой-то процесс инициируется циклом, например, M2, то все последующие действия отсчитываются от него.
    На практике M1.T2.4 скорее всего совпадет с M1.T3.2, однако, если поступит сигнал WAIT, то между T2 и T3 будет пауза, и M1.T2.4 уже не совпадет с M1.T3.2.

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

    ZXMAK(18.12.2024)

  8. #667

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Импульс специального ресета задействует механизм запрета декодирования кода команды, который также используется в IM1,2, NMI, HALT. В этом режиме любая команда воспринимается декодером команд, как 00 (NOP).
    А можно вот про это поподробнее? Что за механизм запрета?

    И кстати насчет режима IM, вы разбирали как работает установка режима? Если я правильно нашел сигналы, то получается такая картина:
    IM0: 0 0
    IM1: 1 0
    IM2: 1 1

    Как-то странно, я ожидал увидеть для IM2 0 1, почему оба сигнала одинаковые? Как это работает?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  9. #668

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    А можно вот про это поподробнее? Что за механизм запрета?
    Механизм очень прост. Блок выбора кода команды выдает 0, вместо кода команды.
    Это сделано, чтобы, например, во время обработки прерываний, в регистре опкода была нейтральная команда типа NOP, которая не активирует никаких линий, и не помешает декодерам прерываний.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Как-то странно, я ожидал увидеть для IM2 0 1, почему оба сигнала одинаковые? Как это работает?
    Не совсем понял, в чем именно вопрос)

    Вот причесанная схема декодера IM:


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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    вы разбирали
    Ко мне можно и нужно на ты)

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

    ZXMAK(18.12.2024)

  10. #669

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

    По умолчанию

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

  11. #670

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Не вижу SEL_IM0.
    Его и нет.
    Так как IM0 фактически это просто выполнение команды с шины данных.

    Но вообще, сами блоки выполнения прерываний я пока не разбирал. Нарисовал, но не разбирал подробности работы.

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

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    IA3 и IA4 - это что за сигналы?
    Это биты 3 и 4 регистра опкода.

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

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

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

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

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

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

Ваши права

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