EasyEDA EasyEDA EasyEDA EasyEDA

"Специалист плюс" - очередное воплощение.

В компьютере Специалист постоянно идут споры о реализации цвета. Сколько цветов и как их читать.

Выскажу и я свою безумную идею.
Сделаем групповое кодирование, как в "Орионе" 16-цветный режим. Т.е. атрибуты цвета находятся в параллельной памяти по тем-же адресам, что и основной экран. Атрибут размером в 1 байт содержит информацию о цвете точки на основном экране в пределах одного байта для 8 точек. 4 бита для нулевого значения и 4 бита для единицы. По 16 комбинаций цвета. Получится, что 8 точек рядом могут иметь только 2 разных цвета из 16-и. Ничего страшного не вижу в этом, в "ZX Spectrum" с этим ещё хуже - 2 цвета на квадрат 8х8. Такое решение позволит старым программам без поддержки цвета прекрасно работать, установив атрибуты однотипные для всего экрана.

А как-же получать доступ к дополнительной памяти? Можно, как в "Орионе" заменять основной участок памяти памятью из дополнительной плоскости, управляя через определённый порт.
Но есть более изящное решение, основанное на особенности процессора i8080. Заключается оно в том, что используя слово состояния при обращению к стеку, можно подменить основную память на дополнительную, объёмом до 65536 байт! Т.е. выделить туда стек и атрибуты экрана и переключаться они будут намного быстрее, чем управление через порт. Да и команды чтения/записи стека быстрее работают. Эту-же память можно использовать и как кеш для игрушек и накопителей. Такой подход был использован в компьютере "ЮТ-88" для организации квазидиска. В принципе, можно и здесь так сделать, установив, например, микросхему памяти DS1250Y ёмкостью 512 кб с встроенной батарейкой.

Схемотически позаимствуем видеоузел у Ориона или у Сябра. Видеоданные и атрибуты, как и в стандартной схеме, параллельно читаются в регистры ИР33 с частотой 1/4 пиксельклока и переписываются с частотой 1/8 пиксельклока данные в регистр сдвига, атрибуты в параллельный регистр, откуда через мультиплексор передаются на видеомонитор/телевизор.

В общем, загорелся я идеей собрать это чудо! Что изменится относительно стандартного "Специалиста"?:

Необходима будет правка ПЗУ:

Для начала создам проект в Протеусе, потом на макетной плате. Если всё пойдёт как задумано - закажу опытную партию плат.
Что-бы уменьшить размеры платы и упростить монтаж и наладку, всю мелкую логику засуну в ПЛИС. Старенькая Altera MAX7000 в корпусе PLCC вполне подойдёт.
Обсуждение в Telegram


Дополнительно:
Mirror Orion site
Eugene's site
Old Lazy Cats Group
Mirror efu site

reliablecounter.com
reliablecounter blog
Посещений - счетчик посещений