User Tag List

Страница 4 из 14 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 131

Тема: Баг формата SZX

  1. #31

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

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    А как отрабатывают цепочку префиксов железные отладчики, например, в Скорпе?
    Железный отладчик (процессор) не может остановиться в середине цепочки префиксов, т.к. пока не закончится команда, прерывание сработать не может. А даже 100500 префиксов подряд - это для процессора одна команда.

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

    Bedazzle(12.11.2024)

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

  3. #32

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Железный отладчик (процессор) не может остановиться в середине цепочки префиксов, т.к. пока не закончится команда, прерывание сработать не может. А даже 100500 префиксов подряд - это для процессора одна команда.
    он и до конца цепочки ei остановиться не сможет, но это не повод считать всю цепочку одной командой
    Прихожу без разрешения, сею смерть и разрушение...

  4. #33

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    он и до конца цепочки ei остановиться не сможет, но это не повод считать всю цепочку одной командой
    Это все равно в процессоре по разному реализовано.
    Длинный префикс для процессора это все же одна команда.

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

    Кстати, технически для Z80 EI и DI - это одна и та же команда. Просто одна взводит флаг, другая сбрасывает.
    И та, и другая блокируют сигнал от триггера IFF1.

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


  5. #34

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это все равно в процессоре по разному реализовано.
    Длинный префикс для процессора это все же одна команда.
    с чего бы? префикс тоже всего-навсего "что-то сбрасывает и взводит" - без оглядки на следующий опкод
    Прихожу без разрешения, сею смерть и разрушение...

  6. #35

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    с чего бы? префикс тоже всего-навсего "что-то сбрасывает и взводит" - без оглядки на следующий опкод
    Да, но технически это реализовано по-разному, и в разных частях процессора.

  7. #36

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

    По умолчанию

    Цитата Сообщение от Spectramine Посмотреть сообщение
    Это полумеры, для полноты картины ещё можно добавить флаги для информации о текущем машинном цикле, чтобы можно было разрывать команду даже внутри чтения кода операции. Ну и, само собой, после префиксов #CB, #ED, перед чтением операнда и в процессе его чтения.
    может и так, но такая детализация обычному эмулятору ни к чему, т.к. в отладчике всеравно какой там такт инструкции, т.к. пользователь в отладчике видит только инструкции и на второй такт инструкции точку останова всеравно не поставит. А вот в средину префиксной инструкции может поставить.

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

    Цитата Сообщение от Titus Посмотреть сообщение
    Это все равно в процессоре по разному реализовано.
    Длинный префикс для процессора это все же одна команда.
    Почему-же одна. Это много инструкций.

    Например: #DD,#FD, #23 - это три инструкции:
    1) переключение в режим подмены HL на IX
    2) переключение в режим подмены HL на IY
    3) INC HL
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  8. #37

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Например: #DD,#FD, #23 - это три инструкции:
    Это одна команда. Префиксы процессором считаются частью неделимой команды.

  9. #38

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это одна команда. Префиксы процессором считаются частью неделимой команды.
    я так не считаю. И вот почему.
    Инструкции у Z80 отделяются по M1 циклу.
    Для #DD,#FD, #23 будет отдельный M1 цикл для #DD, отдельный M1 цикл для #FD и отдельный M1 цикл для #23.
    Соответственно это три отдельных инструкции.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #39

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я так понимаю, #ED и #CB в вашей картине мира это тоже отдельные инструкции.

  11. #40

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    я так не считаю. И вот почему.
    Инструкции у Z80 отделяются по M1 циклу.
    Для #DD,#FD, #23 будет отдельный M1 цикл для #DD, отдельный M1 цикл для #FD и отдельный M1 цикл для #23.
    Соответственно это три отдельных инструкции.
    M1 цикл - это машинный цикл в котором выбирается опкод инструкции. Префикс считается частным случаем опкода.
    А конец инструкции (или начало следующий) в процессоре совершенно четко обозначен. В моем реверсе это сигнал RES_MCLK (последний машинный цикл инструкции).
    M1-циклов может быть много, но RES_MCLK всегда один. По нему процессором и определяется, что инструкция закончилась, можно обработать запрос на прерывание или еще что-то в этом роде.

Страница 4 из 14 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Баг в W1793 (1818ВГ93).
    от xolod в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 18
    Последнее: 19.03.2019, 14:18
  2. Баг в depacker от hrust1.3?
    от moroz1999 в разделе Программирование
    Ответов: 65
    Последнее: 17.04.2014, 10:39
  3. [Atari]баг игры NINJA?
    от denpopov в разделе Atari
    Ответов: 13
    Последнее: 16.03.2014, 07:20
  4. BUG in SZX snapshots ???
    от VELESOFT в разделе Эмуляторы
    Ответов: 1
    Последнее: 12.09.2009, 13:28

Ваши права

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