Многопроцессорность

ZXNet эхоконференция «zx.spectrum»

От Igor Maznitsa Кому All 03.08.1997


St.Petersburg codepage 866
Воскpесенье Aвгуст 03 1997
11:56

Здpавствуй товаpищь All!

Давно лежит, решил выкинуть на обсуждение

=== Cut ===
▓▓▓▓▓▓
▓▓ ▓
▓▓ ▓ ▓
▓▓▓▓▓▓ ▓▓▓▓▓ ▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓ ▓ ▓ ▓ ▓
▓▓ ▓▓ ▓▓▓ ▓ ▓ ▓ ▓▓▓ ▓ ▓▓▓ ▓ ▓▓▓▓▓
▓▓ ▓▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓
▓▓ ▓▓ ▓▓▓▓ ▓ ▓▓▓▓ ▓▓▓▓ ▓ ▓▓▓▓ ▓ ▓▓▓▓▓▓


▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

┌────────── ┌────────── ┌──────────── ┌────────────
┌─── ┌─── ┌─── ┌─── ┌─── ┌───
┌─── ┌─── ┌─── ┌─── ┌───
┌────────── ┌─── ┌─── ┌─────── ┌───
┌─── ┌─── ┌─── ┌─── ┌───
┌─── ┌─── ┌─── ┌─── ┌───
┌─── ┌─── ┌─── ┌─── ┌─── ┌───
┌────────── ┌────────── ┌─── ┌───


(c) Copyright by Igor A. Maznitsa (2:5030/153.31)

------------------------------------------------------------------------------

Цветорасширитель для ZX-Spectrum'a

------------------------------------------------------------------------------

Hа протяжении многих лет Спектрум был самым распространенным в России
компьютером бытового класса, но в последнее время его возможности перестали
удовлетворять рядового пользователя (и пользователь начал поглядывать в
сторону других платформ).Чего только не делали фирмы производящие Спектрум
совместимые компьтеры , что-бы удержать пользователя: подключили винчестер,
модем,писишную клавиатуру, музыкальную плату,но самый главный недостаток ,так
толком исправить и не смогли.Этот недостаток псевдоцветная графика
(т.е. 16 цветов для квадрата 8х8 точек).Существует много разработок и схем
улучшающих графику Спекки, но все они по тем,или иным причинам не прижились.

Если взять фирменный компьютер (напр. всем известный Скорпион) и
подключить к нему еще три таких-же Скорпиона каждый из которых работает со
своим цветом (R,G,B) и основной работает с яркостью (Y)(Я чувствую, как вы
уже крутите пальцем у виска в моем отношении , но не спешите.Эта идея пришла
мне в самом начале), то получаем 16 цветный Спекки с 16 цветовой графикой
и без малейшего замедления скорости вывода графики на экран, несмотря на
возросший суммарный обьем видеоОЗУ.

После упрощения, и оптимизации получилась данная блок-схема

┌────────────────────┐
│ │ ┌────────┐ R
│ Фирменная плата │─────────│Плата │───>ї
│ │ шина │ │ ║
│ компьютера │─┐ ┌─────│©1 │ ║
│ │ │ │ │ │ ║
│ типа "Spectrum" │ │ │ └────────┘ ║ ┌──────────────┐
│ │ │ │ ┌────────┐ ║ │┌─────────┐ │
│ │ │ │ │Плата │ G ║ R,G,B,Y ││Display │ │
│ │ │ └─────│ │───>║ ╔═══>││ │ │
│ │ │ │©2 │ ║ ║ ││ │ │
│ │ │ ┌─────│ │ ║ ║ │└─────────┘ │
│ │ │ │ └────────┘ ║ ║ └──────────────┘
│ │ │ │ ┌────────┐ ║ ║
│ │ │ │ │Плата │ B ║ ║
│ │ │ └─────│ │───>║ ║
│ │ │ │©3 │ ║ ║
│ │ └───────│ │ ║ ║
└─Ї──────────────────┘ └────────┘ ║ ║
║ /^\ ║ ║
║ ║ ║ ║
║ ╚═════════════════════════════════════ў ║
║ ║
╚═════════════════════════════════════════════════ў

Фирменная плата остается практически без переделок, разве что кое где
кое что надо буферизировать , надо поставить мультиплексор АТТРИБУТЫ/RGBY и
организовать еще один порт.Все платы ©1,2,3 представляют из себя: процессор,
ОЗУ (должно быть столько же и такое же как на фирменной модели),формирователь
видео сигнала (должен быть так же реализован, как и на фирменном варианте) и
несколько м/c мультиплексоров и шинных формирователей.

Принцип работы

После включения, с фирменного компьютера (далее основная плата) на
все дополнительные платы подается сигнал RESET(сброс).Сигнал должен поступать
на все процессоры строго синхронно.Все процессоры на дополнительных
платах подключаются параллельно к входным системным шинам процессора
на основной плате(CLK,INT,NMI и т.д.).Их адресные и системные выходные шины
( RFSH,M1 и т.д.) ни к чему не подключаются .Смысл в том,что бы процессоры
на основной и дополнительных платах работали СТРОГО параллельно , что и
достигается общей синхронизацией и RESET'ом.Шина данных дополнительных
процессоров подключена к собственному ОЗУ ,находящемуся на одной с данным
процессором плате и ,через шинный буфер с направлением ОСHОВHАЯ ПЛАТА ->
ДОПОЛИТЕЛЬHАЯ ПЛАТА, подключена к шине данных основного процессора.
Во время чтения основным процессором информации из ПЗУ или портов, дополнитель-
ные процессоры подключаются к основной шине данных и считывают одинаковые
данные (Т.к. все они работают с одними и теми же командами то
адресные шины дополнительных процессоров не нужны, всю адресную информацию
формирует основной процессор).
Адресные и сигнальные шины ОЗУ на дополнительных платах подключаются
к аналогичным сигнальным и адресным шинам на основной плате (за исключением
сигнала разрешения записи,который формируется отдельно) а шины записи
и чтения данных подключаются только к шине данных дополнительного процессора
установленного на этой плате.
Hа каждой из дополнительных плат установлен видеогенератор абсолютно
идентичный видеогенератору на основной плате.Сигналы загрузки и сдвига байта
приходят с аналогичных входов видеогенератора на основной плате.
Выходы всех видогенераторов заводятся на мультиплексор ,на который заводятся
и сигналы аттрибутов на основной плате.В режиме расширенных цветов мультиплек-
сор вместо аттрибутов начинает выдавать на видеоусилители основной платы
сигналы RGBY для каждой точки.
К сожалению вся эта кухня требует еще один порт конфигурации который после
включения переводил машину в стандартный режим, и переключал в режим
расширенной графики.
Hазначение битов порта конфигурации:
0 - Графический режим (0 - стандартный)
1 -\ Биты управляющие разрешением записи в память на доп.платах
2 -| и основной плате
3 -|
4 -/
5 - зарезервирован
6 - зарезервирован
7 - зарезервирован

Все платы работают строго параллельно и выполняют одни и те же
команды.В этом режиме разница между обычным Спекки и этим "монстром"
незаметна ,но вот мы загрузили программу адаптированную под компьютер с
данной конфигурацией.Сперва в основную память и на доп.платы одновременно
загружается основной кодовый блок программы.Затем отключаем запись на
доп. платы и загружаем в основное ОЗУ спрайты (причем сюда грузится только
яркостная составляющая картинок).Затем отключаем запись в основное ОЗУ
и включаем запись в ОЗУ дополнительной платы ©1.Сюда мы грузим уже
Красную составляющую спрайтов.Те же операции мы повторяем для Зеленой и
Синей составляющей в соотв. память плат ©2 и ©3.После загрузки мы разрешаем
запись в ОЗУ на всех платах,переключаемся в режим расширенной графики,
осуществляем сброс флагов,устанавливаем стек и делаем переход на первую
команду кодового блока, который мы загрузили в самом начале во все ОЗУ.
В результате на экране мы видим полноценную 16 цветную игру .Тут надо
сразу оговориться, что программа работающая в расширенном графическом режиме
HЕ ДОЛЖHА проверять то,что она выводит на экран иначе результаты будут
непредсказуемы.
Использование вышеописанного принципа позволяет сделать цветной
любую двухцветную игру использующую некомпрессованные спрайты и не проверяю-
щую результаты вывода на экран.Предполагаю, что старый пакет Laser Basic
будет свободно идти на данном устройстве.Игры разработанные для данного устрой-
ства будут свободно идти на недоработанных Спектрумах в ч/б варианте.

Strelna 09.06.97г. И.А.Мазница (Igor A. Maznitsa)

Все вопросы по данному материалу посылать по адресу 2:5030/153.31
=== Cut ===


Искpенне ваш Igor

>> Вместе Мы покончим со всякой буpжуазной нечистью!!!!!
E-Mail : ray...@itm.spb.su