shiny wrote:может, отделить тему разработки демо от начальной?
Тоже об этом думал.
Но получится некрасиво: Нужно тему с чистого листа создавать с исходным файлом годной анимации, а она сейчас - жёстко хрипит.
Пока всё лишь на уровне экспериментов.
Даже делал эскиз текста открытия новой темы, чтобы новички в самом начале имели и описание, и код рабочий.
(Эх, кто бы научил программировать! А то всё приходится методом тыка делать, на что всё время уходит!)
Shaos wrote:Под другую высоту символов надо заново всё пересчитать т.к. теперь кучность точек другая - надо допилить свою программку, чтобы она вплоть до 8 могла считать (а может даже ещё и четвертинками как вариант - для 6 и 8 пиксельных символов, чтобы делить не на левый и правый пикселы, а на левый-верхний, левый-нижний, правый-верхний, правый-нижний, правда разнообразия в этом случае будет поменьше).
Мне лично вариант 9.75 FPS понравился
Надо только со звуком разобраться...
При жёсткой оптимизации крайне важно замкнуть всё в один развёрнутый цикл, а там требование одно - чтобы последняя строка экрана завершилась на адресе 7FFFh в ППА D14.
Делаем простой расчёт: 8000h - 64x50@10 = 8000h - 32000 = 768 = 0300h.
То есть, на каждой странице ROM-Диска первые 768 байтов таки придётся под код плеера отводить, а размещение кадров выровнять именно с 0300h.
Получаем на все 256 страниц до 2560 кадров.
768 байтов под код плеера на каждой странице - это очень хорошо и довольно много!
Можно использовать различные трюки. Например, чересстрочное заполнение буфера кадра, что визуально удвоит их частоту.
Соответственно, на опрос клавиатуры с перемоткой на ±10 кадров хватит.
Ещё ячейки 02C0h-02FFh можно использовать под служебную 51 строку, которая обновляется раз в 10 кадров - при переключении страниц.
Соответственно, выводить там позицию или заголовок, бегущую строку с рекламой и т.п.
То есть, если даже строка не будет видна из-за особенностей отображающего устройства - не важно.
Естественно, звук в ней должен также присутствовать.
(Выше вариант +1 я и выложил, но он - кривой и сейчас всё начну переделывать.)
На одну строко в 64 символа получаем 2570 тактов.
На все 50 строк - ровно 128500 тактов.
Соответственно, на 10 кадров - ровно 1285000 тактов при частоте в 1,777 мГц!
Короче, за 1 секунду программа таки успеет отобразить даже все 13 кадров!
(Естественно, в идеальных условиях.)
Думаю, следует заточить код проигрывателя ровно под 10 FPS!
Что предстоит сделать: Расчитать скорость для равномерного заполнения одной строки, чтобы обеспечить стабильность звуку.
P.S.: Сейчас установлю режим под 64x52, где 0380-03BFh и 03C0h-03FFh будут считываться раз в 10 кадров в самую верхнюю и самую нижнюю строки соответственно.
(Там и ползунок перемотки можно разместить, и субтитры, и приветы Якубовичу!)