Иконка MAX EasyEDA EasyEDA EasyEDA EasyEDA

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

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

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

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

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

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

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

Для памяти стека переключение банков по 64 кб. осуществляется четырьмя младшеми битами, записываемами в порт конфигурации памяти. Остальные 4 бита управляют начальным адресом видеопамяти, аналогично Ориону-128. Здесь, есть небольшая фишка, 2 бита переключают 4 области экрана и атрибутов в пределах 64 кб, а ещё 2 атрибуты - в памяти выше 64 кб. Т.е. возможно создать видеоэффект моментального переключения цветов на экране (предварительно записав нужные атрибуты в разные области памяти атрибутов!

Итого, получаем отдельную память 64 кб для кода и данных, до 1 мб памяти стека, цветовых атрибутов, кеша, RAM-диска и т.д. и 256 портов не пересекающихся друг с другом! Платы расширения. Для установки дополнительного оборудования будет разъём SL62, частично совместимый по сигналом с шиной ISA-8.
Это позволит использовать некоторые платы от IBM PC.

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

Обсуждение в Telegram Обсуждение в МАХ


Распределение портов
E0h-E3hНакопитель CH376
E4h-E7hЗвук SAA1099
E8h-EBhAM9511
ECh-EFhVT82C42/HT6542B
F0h-F3hКР580ВВ51
F4h-F7hКР580ВИ53
F8h-FBhКР580ВВ55 матричная клавиатура, принтер.
FCh-FFhКонфигурация памяти
Платы расширения
20hЗвук AY-3-8910
80hPOST карта
88h-89hЗвук OPL3 YMF262-M
70h-71hЧасы КР512ВИ1
xxh-xxhКР580ВВ55 программатор, расширения.
xxh-xxhFDD/IDE/CF Card

Дубль два. "Специалист плюс плюс".

Существует в природе интересный процессор родом из СССР именуемый КР580ВМ1. Это доработанный КР580ВМ80, имеющиё одно питание 5в, и отдельный вывод для адресации дополнительных 64 КБ памяти данных, частота до 5 МГц. В паре с генератором 16 МГц на КР1810ГФ84 при стандартном пиксельклоке видео 8 МГц, получаем 5,333 МГц клок процика. В доппамять переносим экран и получаем всё ОЗУ, все 64 КБ для софта! А что останется от экрана в доппамяти - для разных данных!
Всё это хорошо и радостно, только процессоров этих было выпущено очень ограниченное количество киевским заводом "Квазаp". Еще были слухи о выпуске ВМ1 в Омске. Встречаются они в продаже очень редко. Так что пока будем творить на ВМ80, в турборежиме 32/9 = 3,555 МГц с пиксельклоком 32/4 = 8 МГц.


Дополнительно:
О "Специалисте"
Online эмулятор "Специалист" от Анатолия Вдовичева.
Online эмулятор "Специалист" от Алексея Морозова.
Техническая информация по ПК «Специалист»
Mirror Orion site
Eugene's site
Old Lazy Cats Group
Mirror efu site

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