http://files.omega.webnode.com/20000...a79702c/E2.tap
первая (несколько затянутая) часть мультиколор/бордюр,
вторая часть то что называют `звуковой мультиколор` sidAY
(с-трудом нашёл оригинал, даже на pouet.net лежит только фикс под пентагон от vnn)
http://files.omega.webnode.com/20000...a79702c/E2.tap
первая (несколько затянутая) часть мультиколор/бордюр,
вторая часть то что называют `звуковой мультиколор` sidAY
(с-трудом нашёл оригинал, даже на pouet.net лежит только фикс под пентагон от vnn)
Последний раз редактировалось goodboy; 11.02.2016 в 11:20.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
ZXMAK,
теория - это хорошо, если есть ей применение. Я не спорю, что нюансы и в Пентагоне имеются, но они имеют значение только тогда когда какая-то программа это использует. Если практического применения нет, то и эмуляции достаточно на макро-уровне. Смысл в том, что на пентагоне процессор не тормозится вообще. Видео отрисовывается тоже без тормозов, потому-что иначе быть не может.
Поэтому, с точки зрения программы на пентагоне, ничего особенного нет. Выводить какие-то динамические эффекты на самом экране с точностью до 1 такта невозможно поскольку выборка идет по 8 точек за раз, и изменить это в триггере уже невозможно. Ну а эффекты на бордюре без проблем выводятся просто "в лоб".
Покажи какую-нибудь хитрую демку или игру для Пентагона, которую сложно заставить работать правильно на эмуляторе. Ну а если нет таких, то и нет смысла вдаваться в точности.
Согласен, что тайминги пентагона мало кто описывал. Просто это мало кому было нужно. Но, как я уже говорил, если нужно, то можно взять схему и посмотреть. Она вся из простых триггеров и комбинаторной логики состоит. Был бы стимул, как говорится.
вот и я про это говорю. Смысл ловить черную кошку в темной комнате, если она не мешает?
с этим тестом проблем никаких нет.
Это почему же? Не вижу связи. Поясните.
[QUOTE=Saar;857099]Смысл в том, что на пентагоне процессор не тормозится вообще. Видео отрисовывается тоже без тормозов, потому-что иначе быть не может.
Поэтому, с точки зрения программы на пентагоне, ничего особенного нет. Выводить какие-то динамические эффекты на самом экране с точностью до 1 такта невозможно поскольку выборка идет по 8 точек за раз[QUOTE=Saar;857099]
вывести эффект который будет некорректно работать в эмуляторах и корректно на реальном пентагоне не проблема - тест наглядно демонстрирует разницу между эмуляторами и реальным пентагоном. Другое дело что довольно сложно расчитать чтобы в качестве эффекта отображалось чтото осмысленное, т.к. нет ни эмуляторов которые корректно эмулируют пентагон, ни описания как это в точности работает.
Задержки в пентагоне есть, но задерживается не процессор, а ULA (видеогенератор).
потому что любой прямой либо косвенный доступ к пзу даст другое значение. А доступ к пзу происходит очень часто и не только прямо, но и косвенно. Например при чтении вектора прерывания и т.п.
Множество тестов наглядно демонстрируют что достаточно поменять несколько байт в пзу и тесты начинают фейлится.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
goodboy,
отлично прошла вся демка.
музыка sidAY понравилась. Конечно нет в ней того рашпильного звука настоящего SIDа, но всё равно классно звучит. Надо полагать, там просто сэмплерная музыка.
- - - Добавлено - - -
проблема в том, что никто это не использовал в каких-то осмысленных задачах. Зачем эмулировать то, что никто не использует?
Задержка - это прерывание действия. Например, проц тормозится в ZX и команды выполняются дольше чем обычно. А видеоконтроллер не задерживается, а распределяет свои такты чтобы не мешать процессору, но не больше чем позволяют сдвиговые регистры для генерации пикселов. Если бы видеоконтроллер реально задерживался, то наблюдалось бы выпадение пикселей и даже целых групп пикселей. Такого нет. У меня был пентагон 128. Я сам его паял. Всё там работало ровно.
Я не смотрел схему Пентагона уже лет 20, наверное, но что-то мне подсказывает, что там банально цикл рефреша был совмещен с обращением видеоконтроллера - поэтому и прозрачно было, ибо проц после каждой команды сам выдает сигнал рефреша и шина 100% свободна в этот момент.
проблема в том что в пентагоне такты на которых происходит чтение памяти смещаются, если на каком-то такте был одновременный доступ к озу. Т.к. в эмуляторах это не эмулируется, чтение происходит на одних и тех-же тактах. А на реальном пентагоне на разных. Соответственно если запись происходит в область где сейчас проходит луч, то изображение в эмуляторе и на реальном пентагоне будет отличаться.
Смысл пентагоновской схемы в том что процессор никогда не обращается к памяти на каждом такте, где-то у него будет такт без обращения к памяти, соответственно видеоконтроллер откладывает чтение до тех пор пока не сможет прочитать. При таких задержках происходит смена последовательности чтения ink/paper. Как детально это работает нужно долго разбираться по схеме.
В схеме пентагона есть триггер, выход которого используется для выбора что читать ink или paper, вот на работу этого триггера и нужно смотреть. Не знаю возможно ли выпадание пикселов, это нужно разбираться по схеме. Вероятно для специфического кода такое возможно. Например если все такты, пока генератор держит текущий адрес для чтения, будут заняты обращением к памяти.
Последний раз редактировалось ZXMAK; 11.02.2016 в 13:15.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
"Используя ту же технику, но не отключая генерацию тона, возможно расширить возможности генерации различных тембров. В этом случае изменение выходного уровня ЦАП канала используется для модуляции основного тона другой частотой. Таким образом можно получить, например, три независимых амплитудных огибающих любой формы, или тембры, напоминающее звучание микросхемы SID. Для эффективной реализации этого способа требуется наличие в системе возможности прерывания работы процессора с достаточно высокой частотой — например, на компьютере Atari SТ, где эта техника использовалась наиболее активно, применялось прерывание по началу строки растра. На системах, где таких аппаратных возможностей нет, для реализации подобного эффекта потребуется почти всё время процессора. Существует демонстрационная программа Digisid, реализующая эффект на компьютере ZX Spectrum, который не имеет аппаратных возможностей, подобных Atari ST.
http://www.zxdemo.org/f/200310/digisid.zip
запускать после usr0 в 128ом режиме
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
я не знаю что такое usr0, но на ZXMAK2 не запустилось никак.
На моем эмуляторе работает без проблем.
ПрикольноЗаработало.
А не подскажете ли тогда еще одно?
Есть ли быстрый запуск прог находясь в TR-DOS? На диске одна единственная прога, и набирать в строке
LOAD "ОчЕнЬ_ЗаКоВыРиСтОе_ИмЯ"
довольно неудобно. LOAD "*" или LOAD "" не прокатывает.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)