всем счастливо
всем счастливо
Последний раз редактировалось introspec; 14.07.2014 в 22:53.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Нашёл неплохой вариант ответа на первый вопрос в старом обсуждении на форуме: http://zx.pk.ru/showthread.php?p=5482 (см. особенно последние два комментария GriV).
Вопрос о прерывании всё ещё открыт.
Раз вопросы оказались сложными, может быть, кто-то знает названия программ или демок с бордюрными и/или мультиколорными эффектами специально для скорпиона?
Последний раз редактировалось introspec; 01.04.2013 в 14:10. Причина: Уточнение ссылки
Satisfaction - фикс мультиколорной части StarWars под зеленый скорпион. Все остальное, что я видел из фиксенного под скорпион это было для желтой платы. Может, конечно, я что-то и упустил, но вроде как больше я не видел для зеленой платы фиксов.
Когда на твой вопрос отвечает философ, перестаешь понимать вопрос
О, это здорово, что разговор зашёл про жёлтые/зелёные платы. Дело в том, что тайминги Скорпиона по версии Unreal или Spectacular отличаются от таймингов Скорпиона по версии EmuZWin. Либо кто-то из них не прав, либо они имели в виду разные скорпионы! Вы случайно не в курсе, какие из вариантов Скорпиона подразумевают эти эмуляторы?
Я посмотрел мультиколор в Satisfaction - он работает, но с заметной помехой в двух первых эмуляторах, знающих о Скорпионе. Загрузить демку в EmuZWin я не смог. Кто-нибудь видел это дело на реале? насколько хорошо она работает? Следует ли это понимать так, что Unreal и Spectacular эмулируют "жёлтую" плату, а EmuZWin, если бы заработал, работал бы как "зелёная" плата?
---------- Post added at 12:33 ---------- Previous post was at 11:56 ----------
Я сохранил нужный эффект из 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 в 15:00. Причина: Уточнение
В ZXMAK2 еще надо глянуть, там ведь можно плагинами расширять функциональность. Не было ли там двух версий платы.
Для начала обозначу, что было 3 версии Scorpion'a:
1. Scorpion ZS 256 (желтая плата)
2. Scorpion ZS 256 Turbo (желтая плата, добавлен турбо режим)
3. Scorpion ZS 256 Turbo+ (зеленая плата, несколько увеличен период кадровой развертки, и как следствие , те, в основном музыкально-демонстрационные программы, которые не “помещались “ в промежуток между двумя INT-ами, и поэтому работавшие в 2 раза медленнее, теперь работают как положено, сигнал INT формируется цифровым способом , его длительность жестко задана и равна 9mks, причем сделано так, что в программах, чувствительных к длительности сигнала INT и ранее работавших неправильно в режиме Turbo из-за повторного захвата прерывания, теперь этого не происходит. Во всех других моделях ”компьютеров, которые мы выбираем”, этот дефект, по нашим сведениям, присутствует (Источник).
Везде эмулируется Scorpion ZS 256 (Желтый), что за тайминги в EmuZWin я не знаю. По дефолту считаю, что правильные тайминги в Unreal.
Все правильно, ибо там эмулируется желтый скорпион. Что бы посмотреть мою версию Satisfaction в UNREAL добавь в конфиг эмулятора вот этот пресет: PRESET.SCORPION_TURBO+=70784,14344,224,50,32,0,1,0 ,0,1.Сообщение от introspec
По умолчанию для 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
Например я видел, ибо фиксил демо на реальном зеленом скорпионе. Все работает ок!Сообщение от introspec
Нет, зеленую плату, по дефолту, не эмулирует ни один из видимых мною эмулей, в том числе и ZXMAK2.Сообщение от introspec
Насчет таймингов я уже отписался выше.Сообщение от introspec
Когда на твой вопрос отвечает философ, перестаешь понимать вопрос
Большое спасибо за очень ценную информацию. Не хочу показаться совсем навязчивым, но у вас прозвучала небольшая неуверенность относительно кол-ва тактов в кадре (= числа строк на экране). Было бы совсем здорово, если бы вы у вас нашлась возможность как-нибудь запустить приложенную программу на реале - она должна точно измерять кол-во тактов в кадре и на вейтовых и на безвейтовых машинах. Интерфейса там пока нет никакого, но нужную информацию она выдаст.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)