16-цветный режим v1.1
by Alone Coder
30.10.2005
В v1.0 была ошибка в схеме исправления
дефектов (см.в конце).
Режим основан на "аппаратном мультико─
лоре" (из него используются все 3 стандар─
тные цепи и необязательная для мультиколо─
ра цепь "раздельный bright"). После ниже─
указанных доработок показывает 16 цветов
на каждую точку (если считать ярко-чёрный
:)). Очень юзабельно, в отличие от мульти─
колора. Включается 0-м битом порта #eff7
(как собрать этот порт, думаю,объяснять не
надо).
Если у вас не собран мультиколор,не на─
до искать его схему! Все цепи и так распи─
саны здесь.
Сигналы указаны для пентагона, аналоги─
чные сигналы должны присутствовать на мно─
гих других моделях ZX.
ЦЕПЬ1 "/BUSRQ"
Формируется монтажным "ИЛИ" (D10/8 ИЛИ
/eff7b0) и подаётся на /BUSRQ процессора.
ЦЕПЬ2 "A13V" (D17/11)
13-й адрес на мультиплексорах видеокон─
троллера. Формируется монтажным "И" из си─
гнала eff7b0 и частоты 7/8M (почти как в
старой схеме "атрибут на байт":
┌─ кусок старой схемы "атрибут на байт" ─┐
eff7bit0 ───┤<──┐
c29 in (9/D15)─┤<─┼───> a13v (11/D17)
│
▒
│
v +5V
└─ кусок старой схемы "атрибут на байт" ─┘
только вместо C29 надо частоту D3/2).
При наличии 384x304 эта цепь цепляется
ДО схемы 384x304, т.к. в схеме 384x304 уже
предусмотрено примешивание старого A13V.
ЦЕПЬ3 "A14V" aka "P0V" (D17/14)
14-й адрес на мультиплексорах видеокон─
троллера (выбор нечётной странички).Форми─
руется монтажным "ИЛИ" из сигнала /eff7b0
и частоты 7/4M (D3/3).
Цепляется ДО схемы 384x304 (если тако─
вая присутствует).
ЦЕПЬ4 "зафлешенная маска" (D6/11)
Туда коммутируется (с помощью КП11; вы─
бор сигналом eff7b0) 3.5 MHz (D1/8).
ЦЕПЬ5 "2-й bright" (D47/11)
Туда коммутируется 7-й бит атрибутов
(D7/12).
ЦЕПЬ6 "строб чтения атрибутов"
Для первичного буфера (D37/11) - туда
коммутируется 3.5 MHz (а точнее, D45/2).
Для вторичного буфера (D40/11) - туда
коммутируется 3.5 MHz, отстающее на 90° от
предыдущего, то есть D1/9.
ЦЕПЬ7 "выбор адресации: ATTR либо MASK"
Оставить так же, как было на схеме
"атрибут на байт":
┌─ кусок старой схемы "атрибут на байт" ─┐
________
eff7bit0 ───┤<──┐
c29 in (9/D15)─┤<─┼──> c29 out (3/D8 only)
│
▒
│
v +5V
eff7bit0 ───>├──┐
c30 in (8/D15)─>├─┼─> c30 out (1/D14 only)
│
┴ GND
└─ кусок старой схемы "атрибут на байт" ─┘
ВСЁ!
Как видим, ничего из схемы "атрибут на
байт" не выкидывается, душа не болит.
Требуется всего одна микросхема - 1533
КП11 (коммутирует цепи 4, 5, 6 ).
Адресация аналогична АТМовской (#c000+,
#4000+,#e000+,#6000+ и т.д.),но со станда─
ртной разлиновкой,как в обычном спектрумо─
вском режиме. Внутри байта раскладка битов
такая же,как в АТМ ( %IiGRBgrb, где IGRB -
правый пиксель)
Например, 0-й экран имеет следующую ад─
ресацию (обведено одно "знакоместо" 8x8).
#c000 #4000 #e000 #6000│#c001 ... #601f
#c100 #4100 #e100 #6100│#c101 ... #611f
.......................│...............
#c700 #4700 #e700 #6700│#c701 ... #671f
───────────────────────┘
#c020 #4020 #e020 #6020 #c021 ... #603f
.......................................
.......................................
#d7e0 #57e0 #f7e0 #77e0 #d7e1 ... #77ff
При собирании устройства на пентагоне
в новом режиме наблюдаются следующие дефе─
кты:
1. Правые 8 пикселов берутся с начала
строки + 8 байт.
2. Hа левые 4 пиксела влияет процессор.
Если вам очень хочется их исправить,со─
берите следующее (я собрал):
D10
┌─────┐
бордюр │ TM2 │
адресный 12│ │
──────┬────┤D │ бордюр
│ │ _│8 графический
│ │ Qo──────────┬─ x ────┬────
│ └─────┘ │ ┌──┐ │
│ ┌──┐ ┌──┐└───┤1 │ │
└──┤1 o──┬────────┤& ├────┤ ├─┘
└──┘ │ eff7b0─┤ │ └──┘
│ └──┘
│
└─> на ЦЕПЬ1 (вместо D10/8)
Тогда в новом режиме 3 пиксела слева и
5 справа будут не видны. Весь оставшийся
экран (248*192) будет без дефектов.
Благодаря похожести экранов возможно
написание программ одновременно под Пента─
гон и АТМ2 (с ключами в исходнике либо с
автоопределением в программе). Например,
прилагаемая игра Pang 16C в обеих версиях
компилируется из одного исходника (можно
было бы добавить в тот же исходник поддер─
жку АТМ1 и обычного экрана, но не хватало
времени).
Для обкатки данного режима написан так─
же небольшой просмотрщик 102-цветных кар─
тинок. В приложении вы найдёте этот прос─
мотрщик и картинку. Просмотрщик грузит bmp
с тем же именем, что имеет сам. Чтобы пос─
мотреть другой bmp, сделайте следующее:
1. Загрузите прилагаемый здесь bmp в
Photoshop.
2. Выгрузите из него палитру (палитру
рассчитал Diver, за что ему большое спаси─
бо).
3. Загрузите в Photoshop картинку, кото─
рую хотите сконвертировать.
4. Переведите её в 256x192,indexed color
(256 цветов!) с той самой палитрой.
5. Выгрузите как bmp без упаковки и ско─
пируйте этот bmp внутрь какого-нибудь trd.
6. Скопируйте в тот же trd копию просмо─
трщика и переименуйте его в соответствии с
именем вашего bmp.
На одном trd можно иметь много картинок
с вьюверами.Отсутствие файлового селектора
не страшно - ведь вьювер крошечный, и его
дублирование не так уж уменьшает свободное
место на диске. Впрочем, прилагаю исходник
- вдруг кто заинтересуется и захочет сде─
лать полнофункциональный просмотрщик (с
прокруткой, многоформатный, с конверсией в
нужную палитру)?
Alone Coder
Поделитесь вашим мнением о статье