В общем имеем:
Модуль паказыватель с фильтром картинки типо NoFlic в Unreal, ток аппаратно.
Принцип действия:
1. Имеем 256к памяти разбитой следующим обрахзом
00000-0FFFF - Фрейм буфер 0 (FB0)
10000-1FFFF - Фрейм буфер 1 (FB1)
20000-2FFFF - Фрейм буфер 1 (FB1)
30000-3FFFF - теневые копии страниц Sp128 (4,5,6,7)
2. Модуль слушает ZBUS и если нада втихую пишет в копии страниц (4-7) себе в память.
3. Есть кусок зовется Spectrum Scanner, который со скоростью соответствующего модуля в усредненном клоне читает данные из теневых копий и пишет их в FBx. Причем первый кадр пишется FB0, второй FB1, третий FB2,а потом опять по кругу. В общем мы имеем что то в духе скриншота текущего кадра спектрума и 2 предыдущих.
Фрейм буффера имеют размер в пикселях 320х240 точек, то есть туда пихается помимо активной области еще и бордюр. То есть там копия того что попало бы на телевизор если картинка шла напрямую.
В буффере (а он 16 битный) в одном слове храниться 4 точки в формате 16 color. Память организована по мотивам Специалист, Орион. То есть последовательно в памяти храняться столбцы, правда из 256 слов использованно только 240. В общем структура хранения фактически хранит виртуальный экран 512х256х4бит = 64кб.
Есть модуль который генерит картинку для VGA. В общем если упустить ненужные детали то перед выводом каждых последующих 4 пикселей он имееь в наличии 3 16 битные слова. То есть по 4 пикселя из каждого FBx, потом он их мешает и получает усредненную картинку, с сохранением бордюрных эффектов, мультиколора, немигающий гигаскрин и другие побочные эффекты NoFlic.
Теперь поле для флейма. На данный момент модуль рисует картинку для стандартного режима и 16color. Но как всегда захотелось большего.
К примеру легким движением руки можно сделать не усредненную картинку, а скажем 3х слойной. То есть скажем светло черный будет прозрачным и через него будет видно нижний слой и т.д. Или к примеру в каждом FBx будет храниться не копия экрана а одна из компонет цвета.
Естественно процессору будет предоставлен доступ к FBx, и будет возможность останавливать заполнение FBx спектурмовскими скриншотами.
В общем интересно у кого какие соображения есть по поводу альтернативного использования памяти это конструкции. Радикальные модификации не стоит оглашать, все равно лень будет все перепахивать . Хотелось бы чего нить простенького красивого и полезного.
---------- Post added at 14:55 ---------- Previous post was at 14:36 ----------
Еще нюанс, при включении расширения, частота процессора будет жестко переключаться в 21МГц и будет включаться дополнительный INT 60Hz. Любой может маскироваться и соответсвенно можно будет определить какой пришол. 50Нz INT нужен в принципе только для музыки.