Когда я это придумывал, мыслил так.
Два экрана по 200*256 двойных пикселей. Отдельные 256-цветные палитры на левые и правые полупиксели каждого экрана, таким образом на экране до 1024 позиционнозависимых цветов из 8388608 возможных. Путём смены палитры можно запрограммировать обычные видеорежимы 200*256*256 (512) и 400*256*16 (32). При чересстрочной развёртке разрешение, соответственно, 400*512. В режиме "турбо" при наличии >256 кб мультимедийной памяти возможно увеличение горизонтального разрешения вдвое или работа на 100 Гц.
Способы соединения экранов:
1. Вывод первого экрана.
2. Выбор пикселя, имеющего бОльший номер. При равенстве цветов выводится первый экран.
3. Второй экран используется как интерполятор. При этом цвет пикселя на первом экране смешивается со следующим цветом в палитре. Коэффициентом смешения выступает пиксель второго экрана.
4. Второй экран содержит Z-буфер.
Адресация. Первые 2 кб адресного пространства делятся на четыре шлюза по 256 слов: ПР1, ИСТ1, ПР2 и ИСТ2. Каждый из них может адресовать любой из столбцов (переключается одним байтом) любого из экранов (тоже переключается одним байтом), кроме видимых на экране. ПР1 и ИСТ1 оперируют регистрами-защёлками, ПР2 и ИСТ2 -- таблицей пересчёта (см. Спрайты).
Концепция смены страницы: видимый экран изменить нельзя. Такой подход удваивает расход памяти, но исключает циклы ожидания при работе с видеопамятью. Если нужно экономить память, можно работать с полустраницами, аккуратно переключая экран в середине кадра.
Построчный скроллинг каждого из экранов по горизонтали и вертикали. Константы для скроллинга лежат в 6 и 7 столбцах страницы, после палитр. Скроллинг зациклен как по горизонтали, так и по вертикали. Константы относительны, при скроллинге n-й строки сдвинутся и те, что ниже. По умолчанию нулевая строка сдвинута на (0, 0), остальные -- на (0, 1).
Режим повторения цвета. Нулевой цвет="то, же, что и у предыдущего пикселя". Позволяет плавно снижать разрешение по горизонтали в произвольных местах экрана, упрощает распаковку RLE.
Спрайты. Аппаратных спрайтов нет, блиттера на ранних моделях тоже, но программная графика организована очень эффективно и гибко.
Режим 1 -- защёлочный. Чтение из ИСТ1 даёт 16 байт из столбцов n..n+15 в регистрах-защёлках и 16-битное слово процессору. Биты показывают, совпадают ли байты в защёлках с заданной маской. После этого слово записывается в ПР1. Специальный регистр следит за тем, чтО записывается в случае нуля/единицы:
00 -- цвет фона (0)/ничего (1),
01 -- цвет тона (1)/ничего (0),
10 -- данные из защёлок,
11 -- данные из растеризатора.
Растеризатор не успевает за ЦП, поэтому при выводе более 8 пикселей за один присест нужно организовать паузу.
Если писать в ПР1 и читать из ИСТ1, изображение будет отражено справа налево.
Режим 2 -- байтовый. Прямой доступ к столбцу первого экрана и одноименному столбцу второго. Переключением регистра можно добиться того, что пиксели выводятся косвенно по любому столбцу. Кроме того, возможен примитивный аналог Z-буфера: выводить только пиксели с номерами меньшими или большими, чем установлены. Байтовый режим хорош для масштабирования в отсутствие растеризатора, а также для огненно-водяных эффектов.
Видеокарта получила кодовое название "Чебурашка". Некоторое время на этапе разработки так назывался и сам компьютер.
Про сетку не думал. Модемы были. Локалки, вероятнее всего, были.
Вот пресса была, наверно, мощная.
---------- Post added at 21:22 ---------- Previous post was at 20:38 ----------
Рекламку из ТМ можно было бы... но на моем писюке ничего нету кроме пэйнта и блокнота.