Важная информация

User Tag List

Страница 1 из 10 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 97

Тема: Точное описание задержек Скорпиона

  1. #1
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Благодарностей: 645
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Точное описание задержек Скорпиона

    всем счастливо
    Последний раз редактировалось introspec; 14.07.2014 в 20:53.

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

  3. #2
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Благодарностей: 645
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашёл неплохой вариант ответа на первый вопрос в старом обсуждении на форуме: http://zx.pk.ru/showthread.php?p=5482 (см. особенно последние два комментария GriV).

    Вопрос о прерывании всё ещё открыт.

    Раз вопросы оказались сложными, может быть, кто-то знает названия программ или демок с бордюрными и/или мультиколорными эффектами специально для скорпиона?
    Последний раз редактировалось introspec; 01.04.2013 в 13:10. Причина: Уточнение ссылки

  4. #3
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Благодарностей: 645
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Большое спасибо, уже скачал. Там вообще полезное обсуждение было.

  5. #4
    Banned Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    1,054
    Благодарностей: 789
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Там вообще полезный автор. Был Он то и сей час есть, но уже в другом качестве , дай Бог ему здоровья))
    вот еще пост
    http://zx.pk.ru/showpost.php?p=562044&postcount=316
    А чего это Владимир в 2009 ушел с форума? Вот kolmck.net он регулярно обновляет в отличие от своего эмулятора. А ведь какие планы были...

  6. #5
    Member Аватар для Faster
    Регистрация
    21.06.2005
    Адрес
    Ульяновск
    Сообщений
    160
    Благодарностей: 47
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от introspec Посмотреть сообщение
    Раз вопросы оказались сложными, может быть, кто-то знает названия программ или демок с бордюрными и/или мультиколорными эффектами специально для скорпиона?
    Satisfaction - фикс мультиколорной части StarWars под зеленый скорпион. Все остальное, что я видел из фиксенного под скорпион это было для желтой платы. Может, конечно, я что-то и упустил, но вроде как больше я не видел для зеленой платы фиксов.
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  7. #6
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Благодарностей: 645
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Faster Посмотреть сообщение
    Все остальное, что я видел из фиксенного под скорпион это было для желтой платы.
    О, это здорово, что разговор зашёл про жёлтые/зелёные платы. Дело в том, что тайминги Скорпиона по версии Unreal или Spectacular отличаются от таймингов Скорпиона по версии EmuZWin. Либо кто-то из них не прав, либо они имели в виду разные скорпионы! Вы случайно не в курсе, какие из вариантов Скорпиона подразумевают эти эмуляторы?

    Я посмотрел мультиколор в Satisfaction - он работает, но с заметной помехой в двух первых эмуляторах, знающих о Скорпионе. Загрузить демку в EmuZWin я не смог. Кто-нибудь видел это дело на реале? насколько хорошо она работает? Следует ли это понимать так, что Unreal и Spectacular эмулируют "жёлтую" плату, а EmuZWin, если бы заработал, работал бы как "зелёная" плата?

    ---------- Post added at 12:33 ---------- Previous post was at 11:56 ----------

    Цитата Сообщение от Faster Посмотреть сообщение
    Satisfaction - фикс мультиколорной части StarWars под зеленый скорпион.
    Я сохранил нужный эффект из Spectacular в *.z80 и загрузил в EmuZWin. Времянки по умолчанию ведут к помехам, но если поменять число тактов в строке с 224 на 228, получается почти идеальный эффект. Вы сказали, что этот эффект подгоняли под зеленый скорпион. Тогда у меня получается такая картина:

    Есть "жёлтый" скорпион, с времянкой подобранной для совместимости с 48К: 69888 тактов в кадре, 224 такта в строке. "Жёлтого" скорпиона неплохо эмулируют Unreal и Spectacular.

    Есть "зелёный" скорпион, с времянкой подобранной для совместимости со 128К: 70908 тактов в кадре, 228 тактов в строке. "Зелёного" скорпиона эмулирует EmuZWin.

    У обоих видов скорпионов, если верить эмуляторам, одинаковая структура задержек (т.н. "Even M1"). Суть этих задержек (спасибо GriV) заключается в том, что для выполнения команд, попавших на нечётный номер такта процессора, требуется один дополнительный такт. Допустим, мы находимся на чётном такте. Тогда команды

    XOR A; 4
    RET NZ; 5
    INC A; 5 - лишний такт, добавленный из-за того, что команда началась с нечётного такта

    займут 14 тактов. Т.о., задержки могут, теоретически, затронуть любую команду и, в специально подобранном худшем случае могут замедлить программу на 25%. Но исполнение любой команды с чётным числом тактов всегда выравнивает счётчик тактов на чётное число.

    Я поэкспериментировал с этими эмуляторами и по вопросу продолжительности выполнения прерываний. Насколько я могу понять, прерывание ведёт себя как самая обычная команда продолжительностью 19 тактов. Т.к. HALT фактически выполняет в цикле NOPы, прерывание в режиме IM 2 после HALT займёт те же 19 тактов что и обычно, вот только на Скорпионе после HALT+прерывания мы оказываемся на нечётном номере такта, т.е. всегда добавляем один такт задержки к последующей команде.
    Последний раз редактировалось introspec; 02.04.2013 в 14:00. Причина: Уточнение

  8. #7
    Banned Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    1,054
    Благодарностей: 789
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В ZXMAK2 еще надо глянуть, там ведь можно плагинами расширять функциональность. Не было ли там двух версий платы.

  9. #8
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Благодарностей: 645
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    В ZXMAK2 еще надо глянуть, там ведь можно плагинами расширять функциональность. Не было ли там двух версий платы.
    Я посмотрел исходники; там только одна времянка, та, которую я назвал "жёлтой", т.е. 224 такта в строке и т.д. Но большое спасибо за идею залезть в эти исходники, т.к. более подробной базы данных по времянкам я нигде не видел!

  10. #9
    Member Аватар для Faster
    Регистрация
    21.06.2005
    Адрес
    Ульяновск
    Сообщений
    160
    Благодарностей: 47
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для начала обозначу, что было 3 версии Scorpion'a:

    1. Scorpion ZS 256 (желтая плата)
    2. Scorpion ZS 256 Turbo (желтая плата, добавлен турбо режим)
    3. Scorpion ZS 256 Turbo+ (зеленая плата, несколько увеличен период кадровой развертки, и как следствие , те, в основном музыкально-демонстрационные программы, которые не “помещались “ в промежуток между двумя INT-ами, и поэтому работавшие в 2 раза медленнее, теперь работают как положено, сигнал INT формируется цифровым способом , его длительность жестко задана и равна 9mks, причем сделано так, что в программах, чувствительных к длительности сигнала INT и ранее работавших неправильно в режиме Turbo из-за повторного захвата прерывания, теперь этого не происходит. Во всех других моделях ”компьютеров, которые мы выбираем”, этот дефект, по нашим сведениям, присутствует (Источник).

    Цитата Сообщение от introspec Посмотреть сообщение
    О, это здорово, что разговор зашёл про жёлтые/зелёные платы. Дело в том, что тайминги Скорпиона по версии Unreal или Spectacular отличаются от таймингов Скорпиона по версии EmuZWin. Либо кто-то из них не прав, либо они имели в виду разные скорпионы! Вы случайно не в курсе, какие из вариантов Скорпиона подразумевают эти эмуляторы?
    Везде эмулируется Scorpion ZS 256 (Желтый), что за тайминги в EmuZWin я не знаю. По дефолту считаю, что правильные тайминги в Unreal.

    Цитата Сообщение от introspec
    Я посмотрел мультиколор в Satisfaction - он работает, но с заметной помехой в двух первых эмуляторах, знающих о Скорпионе.
    Все правильно, ибо там эмулируется желтый скорпион. Что бы посмотреть мою версию Satisfaction в UNREAL добавь в конфиг эмулятора вот этот пресет: PRESET.SCORPION_TURBO+=70784,14344,224,50,32,0,1,0 ,0,1.

    По умолчанию для Scorpion ZS 256 имеем следующую картину: 224 такта х 312 строк = 69888 тактов, плюс активный Even M1.
    Для Scorpion ZS 256 Turbo+ получаем, соответственно: 224 такта х 316 строк = 70784 такта, плюс не активный Even M1.

    В принципе, можно в дефолтном пресете на Scorpion ZS 256 просто убрать галочку с Even M1 - мультиколорная часть также будет работать. Но на данный момент, я пока придерживаюсь мнения, что количество строк в зеленом скорпионе все же 316, т.к. при таком раскладе все тесты на INT, типа Jemmini Commander, в демке Action и тп. показывают те же результаты, что и на реальном зеленом скорпионе. А при 312 строках они показывают уже отличные значения от реального зеленого скорпиона.

    Цитата Сообщение от introspec
    Загрузить демку в EmuZWin я не смог.
    Я загрузил, мультиколорная часть там не правильно работает.

    Цитата Сообщение от introspec
    Кто-нибудь видел это дело на реале? насколько хорошо она работает?
    Например я видел, ибо фиксил демо на реальном зеленом скорпионе. Все работает ок!

    Цитата Сообщение от introspec
    Следует ли это понимать так, что Unreal и Spectacular эмулируют "жёлтую" плату, а EmuZWin, если бы заработал, работал бы как "зелёная" плата?
    Нет, зеленую плату, по дефолту, не эмулирует ни один из видимых мною эмулей, в том числе и ZXMAK2.

    Цитата Сообщение от introspec
    Я сохранил нужный эффект из Spectacular в *.z80 и загрузил в EmuZWin. Времянки по умолчанию ведут к помехам, но если поменять число тактов в строке с 224 на 228, получается почти идеальный эффект. Вы сказали, что этот эффект подгоняли под зеленый скорпион. Тогда у меня получается такая картина:

    Есть "жёлтый" скорпион, с времянкой подобранной для совместимости с 48К: 69888 тактов в кадре, 224 такта в строке. "Жёлтого" скорпиона неплохо эмулируют Unreal и Spectacular.

    Есть "зелёный" скорпион, с времянкой подобранной для совместимости со 128К: 70908 тактов в кадре, 228 тактов в строке. "Зелёного" скорпиона эмулирует EmuZWin.

    У обоих видов скорпионов, если верить эмуляторам, одинаковая структура задержек (т.н. "Even M1"). Суть этих задержек (спасибо GriV) заключается в том, что для выполнения команд, попавших на нечётный номер такта процессора, требуется один дополнительный такт. Допустим, мы находимся на чётном такте. Тогда команды

    XOR A; 4
    RET NZ; 5
    INC A; 5 - лишний такт, добавленный из-за того, что команда началась с нечётного такта

    займут 14 тактов. Т.о., задержки могут, теоретически, затронуть любую команду и, в специально подобранном худшем случае могут замедлить программу на 25%. Но исполнение любой команды с чётным числом тактов всегда выравнивает счётчик тактов на чётное число.

    Я поэкспериментировал с этими эмуляторами и по вопросу продолжительности выполнения прерываний. Насколько я могу понять, прерывание ведёт себя как самая обычная команда продолжительностью 19 тактов. Т.к. HALT фактически выполняет в цикле NOPы, прерывание в режиме IM 2 после HALT займёт те же 19 тактов что и обычно, вот только на Скорпионе после HALT+прерывания мы оказываемся на нечётном номере такта, т.е. всегда добавляем один такт задержки к последующей команде.
    Насчет таймингов я уже отписался выше.
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  11. Этот пользователь поблагодарил Faster за это полезное сообщение:
    introspec (02.04.2013)

  12. #10
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Благодарностей: 645
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Faster Посмотреть сообщение
    В принципе, можно в дефолтном пресете на Scorpion ZS 256 просто убрать галочку с Even M1 - мультиколорная часть также будет работать. Но на данный момент, я пока придерживаюсь мнения, что количество строк в зеленом скорпионе все же 316, т.к. при таком раскладе все тесты на INT, типа Jemmini Commander, в демке Action и тп. показывают те же результаты, что и на реальном зеленом скорпионе. А при 312 строках они показывают уже отличные значения от реального зеленого скорпиона.
    Большое спасибо за очень ценную информацию. Не хочу показаться совсем навязчивым, но у вас прозвучала небольшая неуверенность относительно кол-ва тактов в кадре (= числа строк на экране). Было бы совсем здорово, если бы вы у вас нашлась возможность как-нибудь запустить приложенную программу на реале - она должна точно измерять кол-во тактов в кадре и на вейтовых и на безвейтовых машинах. Интерфейса там пока нет никакого, но нужную информацию она выдаст.
    Вложения Вложения

  13. Этот пользователь поблагодарил introspec за это полезное сообщение:
    ZXMAK (08.04.2013)

Страница 1 из 10 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 30
    Последнее: 16.08.2011, 19:13

Ваши права

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