16-цветный режим для ZX
ZXNet echo conference «real.speccy»
From Dima Bystrov → To All 17 September 2005
Есть мысль млавно задавить мультиколорный режим #eff7 bit0 и продвинуть сабж
цвет на каждый пиксел (удобно накладывать что угодно на что угодно, в т.ч. для
проволочных построений, графиков и т.п.). Этот девайс должно быть возможно
собрать на почти любом неПЛИС эхотаге.
Идея простая, как шарик (ко мне в голову сложные идеи не приходят ;))).
Работать должно так:
1. в поле основного экрана все такты отдаются видеоконтроллеру (2 лог. эл-та).
2. запись в сдвиговые регистры должна идти с частотой не 0.875MHz, а 3.5MHz (1
мультиплексорный эл-т). Частота сдвига остаётся та же, какая была - 7 MHz.
3. с выходов сдвиговых регистров (через один) снимаются 4 цветовых
составляющих. эти составляющие идут через буфер/регистр (1 корпус + 1 лог.эл-т
для наложения сигнала бордюра на сигнал выборки режима) на выход и микшируются
резисторами, в палитре RGBw. биты 7 6 5 4 3 2 1 0 = wL wR GL GR RL RR BL BR,
где L - левый пиксел, R - правый пиксел.
4. во время работы этого режима выход с мультиплексоров RGBI должен
блокироваться (1 лог. эл-т).
5. адресация экрана такая же, как в мультиколорном режиме (2 лог. эл-та), но
для промежуточных (освободившихся из-за отрубания процессора от доступа к
памяти) пикселов подаётся сигнал включения 2-го экрана (1 лог. эл-т). Т.е.
получается:
#4000 #c000 #6000 #e000 #4001 #c001 #6001 #e001 и т.д.
6. доступ через, допустим, тот же #eff7 bit0. Мультиколорных программ через
этот порт всё равно одна штука (моя), и та программа хорошо работает и без
аппаратного мультиколора.
Программируется очень удобно (особенно наложение спрайтов - просто кладём/не
кладём нужные 2 пиксела. Причём даже не нужно сдвигать побитно для печатания
спрайтов с точностью в 2 пиксела по горизонтали!). Hо получается только одна
экранная область. Лучше взять вместо сигнала 2-го экрана сигнал 2-й половинки
256k памяти (всё равно для 128k 16-цветная графика - жирновато)? Этим мы
сэкономим один лог. элемент, к-й смешивал бы #eff7 bit0 с сигналом 2-го экрана.
Игр под это чудо нашлёпать - делать нечего. Я бы парочку нашлёпал, если бы у
меня сей режим был. Hасчёт возможных криков "megatormozzzz!" - не нужно весь
экран каждый раз чистить/заполнять, и megatormozzz'а не будет. И текст в этом
режиме листать не надо - на то обычный режим есть.
Hадо:
дешифратор порта #eff7 с триггером типа ТМ8
регистр/буфер типа ИР22/ИР23/АП5
5-6 лог. эл-тов, часть можно на диодах, часть на свободных выходах того
регистра
1 мультиплексорный эл-т, можно собрать на лог.эл-тах
Кто бы взялся припаять это чудо к своему реалу - поднимите руки. Левую - если
возьмётесь припаять, только имея схему, как паять. Правую - если возьмётесь
припаять с помощью собственной фантазии (такие люди нам нужны).
- A.Coder [Wolf3d2004 InfoGuide7 ACEdit96 ACN42 PT3695 Chip13 HexFill HDDoct5]
[Ansi04 8col12 ZXRar27UnR59 Jpg042 CacVox1 Dbs07 Gluk61R PC21 Alasm50f2 Sts70i]
... ZX Spectrum today