User Tag List

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

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

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

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

    Регистрация
    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

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

  3. #2

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

    По умолчанию

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

  4. #3

    Регистрация
    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

  5. #4

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,402
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    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 всегда один. По нему процессором и определяется, что инструкция закончилась, можно обработать запрос на прерывание или еще что-то в этом роде.

  6. #5

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    M1 цикл - это машинный цикл в котором выбирается опкод инструкции.
    СЛЕДУЮЩЕЙ НОВОЙ инструкции

    Цитата Сообщение от Titus Посмотреть сообщение
    Префикс считается частным случаем опкода.
    бинго! стало быть, и инструкции

    Цитата Сообщение от Titus Посмотреть сообщение
    А конец инструкции (или начало следующий) в процессоре совершенно четко обозначен. В моем реверсе это сигнал RES_MCLK (последний машинный цикл инструкции).
    КЕМ обозначен, тобой? а с чего ты взял, что авторы именно это в виду имели?

    Цитата Сообщение от Titus Посмотреть сообщение
    M1-циклов может быть много, но RES_MCLK всегда один. По нему процессором и определяется, что инструкция закончилась, можно обработать запрос на прерывание или еще что-то в этом роде.
    я пока что вижу только, что "По нему процессором и определяется, что" + "можно обработать запрос на прерывание или еще что-то в этом роде." - не более

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

    в смысле запрещения прерываний поведение законченной команды ei ну ничем от префиксов не отличается, пусть там даже флаги разные внутри, ну и что?
    могли сделать так, могли по-другому (а в каких-нибудь наследниках и клонах, может, и сделали)
    Прихожу без разрешения, сею смерть и разрушение...

  7. #6

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

    По умолчанию

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

  8. #7

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    авторами предусмотрен
    ты приписываешь авторам свои мысли

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

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

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

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

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

Ваши права

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