Вернуться на ГЛАВНУЮ страницу
Вернуться к СПИСКУ СТАТЕЙ


Автор: Максим Тимонин aka Максагор
Дата:
7.05.2003 г.


Компьютер моей мечты

Много говорится последнее время в среде спектрумистов о том, что ZX-SPECTRUM необходимо улучшить, стандартизировать уже имеющиеся навороты, внести новые. Многое уже делается сейчас. Яркий пример тому - компьютер SPRINTER, суперспектрум, в котором реализовались многие из задумок многих спектрумистов. Однако у меня есть собственное видение идеального современного Спекки. Я представляю себе его как дальнейшее развитие ветви клона ATM-turbo. Не потому, что другие клоны хуже, а потому, что я являюсь пользователем этой замечательной машины и уже давно задумал ее усовершенствование. Ну а раз задумал, так надо уж делать все по полной программе! Сразу хочу сказать, что это не только фантазии. Этот проект уже начал осуществляться.

Итак, какой он, Спектрум будущего? Многие идеи, конечно взяты из SPRINTERа. И это естественно. Но есть и различия.

Характеристики:

Полная программная совместимость по портам с базовой ATM-turbo 2+(плата 7.10), плюс новые навороты.

Из стандартных наворотов ATM-turbo 2+, кто не знает -

это дополнительная графика 640x200 (атрибут на байт),

320х200 (16 цветов в каждом пикселе),

80х25 - аппаратная консоль,

и палитра 16 цветов из 64 возможных.

Кроме этого - менеждер памяти

- любая страница ОЗУ (1Мб) или ПЗУ (1Мб) может быть впечатана в любое из 4-х окон адресного пространства Z80.

IDE-интерфейс,

XT/AT-клавиатура,

ЦАП/АЦП, турборежим, ну и все возможности ZX-128.

Более подробно обо всем этот читайте у меня на сайте http://atmturbo.narod.ru

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

Далее возвращаемся к проекту:

Новый чипсет на современных элементах (основная часть схемы в ALTERA-х и им подобных). Желательно спланировать плату под современные ATX-корпуса, предусмотрев возможность вырубать питание программно.

Также на плате необходимо разместить открытую архитектуру, а именно штук 4-5 слотов по стандарту NEMO-bus, для подключения спектрумовских внешних наворотов и своих собственных разработок.

---------

Процессор:

- CPU Z84C15 или любой другой мощный вариант Z80. В наличии стандартный режим на скорости 3.5МГц, а также турборежим на скорости 21МГц(как в Sprinter'е) или выше, а вообще - сколько сможем выжать. Управление переключением normal/turbo такое же как и в АТМ-2+ через порт. Желательно исключить из схемы медленные микросхемы, которые в турботежиме будут тормозить комп, выдавая на процессор сигнал WAIT.

---------

Графика:

- такая же как в АТМ-2+: ZX-экран 256х192 аппаратный мультиколор - 640х200 (атрибут на байт) EGA-экран - 320х200х16 (каждая точка своим цветом) аппаратная консоль - 80х25 (аппаратный вывод букв из спец.ПЗУ)

Плюс можно ввести новую возможность - поставить параллельно с ПЗУ со шрифтом флэшку, куда можно загрузить свой вариант шрифта, и ввести возможность программно переключать эти варианты. Палитра - такая же 16 цветов одновременно из 64 в сумме.

Видеовыводов можно сделать несколько вариантов (то есть на выходе будет несколько разъемов).

1) Стандартный RGB-выход для старых RGB-мониторов и телеков со SCARTом.

2) Разъем под EGA-мониторы.

3) Развести антенный выход с цветным PAL(или SECAM)-декодером, чтобы

а) без проблем получать цветной сигнал на любом телеке

б) иметь возможность подключить к Спекки внешний TV-тюнер, а к тюнеру уже современный SVGA-монитор.

--------

Память:

ОЗУ:

расширить до 8192Кб на двух 4Мб-SIMMах (можно рассмотреть и другие варианты модулей памяти). Тогда при страничной организации памяти (страница=16Кб) получаем 512 страниц, адресуемых 9-ю битами (D0-D8).

D0-D5 (один мегабайт) будут адресоваться стандартным диспетчером памяти ATM-2+ по порту #FFF7 (любая из 64 страниц в любое окно адресного пространства) + одновременно те же D0-D2 будут аналогично ATM-2+ и ZX-128 адресоваться портом #7FFD.

А вот биты D6-D8 (выбор одной из восьми мегабайтных областей) будут повешены на биты D0-D2 порта #DFFD, по стандарту Профи. Но работать этот порт будет только в окне #C000-#FFFF.

Почему порт Профи? Потому что вводить свой новый стандарт невыгодно - под него не будет софта. А стандарт Профи является одним из самых распространенных, гораздо распространеннее АТМовского #FFF7. И тогда многие программы, использующие память сверх 128Кб, но не ведающие об АТМ-2+, обязательно увидят порт Профи, и смогут работать с расширенной памятью. А в собственном софте мы можем использовать эти два порта одновременно, адресуя сразу все 8 мегабайт.

Кроме того, я предлагаю реализовать и некоторые другие биты профийного порта #DFFD.

Вообще его раскладка такова:

D0-D2 - адресация мегабайта Профи (у нас будет реализована как выбор между 8-ю мегабайтами).

D3 - выбор окна проецирования сегмента памяти. 0 - #C000-#FFFF, 1 - #4000-#7FFF (это можно не делать)

D4 - при значении 1 - блокировка ПЗУ и включение на его место страницы 0 ОЗУ (надо реализовать обязательно!

Почему? Если будут запросы, объясню отдельно. Есть кое-какой важный софт, который без такого наворота без переделки на АТМ не идет, а очень надо. Пусть, если этот бит включен, то любое обращение к ПЗУ в диспетчере памяти АТМ(не важно, в каком окне это ПЗУ проецируется) будет блокировано, а вместо этого по тем адресам будет жестко подставляться страница 0 ОЗУ).

D5 - включение портов ВГ93 на доступ из обычного ОЗУ (то есть открытие всех "спрятанных" в области TR-DOS портов. Тоже надо реализовать. По сути, этот бит лишь инвертированное дублирование адреса A9 порта #xx77 в АТМ-2+ (пусть сочетаться эти два варианта будут по логической схеме "или"), но нам этот бит порта Профи нужен для тех же целей, что и бит D4).

D6 - включение по адресу #8000-#BFFF вместо страницы 2 страницу 6 (это нам не нужно).

D7 - 0 - ZX-экран, 1 - расширенный экран Профи (это нам тоже не нужно. Графику Профи реализовывать не будем. Нам АТМовской графики с лихвой хватит).

Кроме того, надо ввести возможность прочитать значение из портов in #7FFD - то, что было записано по OUT #7FFD in #DFFD - аналогично для этого порта in #xxF7(спрятано в области TR-DOS) in #xx77(тоже спрятано)

Теперь про ПЗУ:

Так как диспетчер памяти АТМ-2+ позволяет адресовать 1024Кб как ОЗУ, так и ПЗУ, то нужно сразу развести панельку под микросхему ПЗУ максимального размера - то есть под 1024Кб. Это будет микросхема 27080. Так как ПЗУ серии 27ххх совместимы по распиновке друг с другом за исключением некоторых нюансов, только увеличивается количество ножек. Но эти мелкие нюансы можно отрегулировать с помощью 2-3 перемычек с джамперами. Тогда мы сможем при необходимости поставить любую микросхему ПЗУ от 27512 (базовые 64Кб) до 27080 - максимальные 1024Кб. Замечу, что у меня уже имеется прошивка для 27020 (256Кб), где, помимо базовых 64Кб с системой расположен большой ROM-диск с ПО для CP/M. А драйвер в BIOS CP/M построен так, что при расширении ПЗУ до 1024Кб, ROM-диск при автоопределении автоматически увеличивается до максимума.

Рядом с ПЗУ необходимо поставить КЭШ на статической памяти 62ххх. Эти микросхемы по распиновке, кроме нескольких новых сигналов, почти полностью совпадают с 27ххх. КЭШ будет полностью эмулировать ПЗУ. То есть будет введен порт, при записи в который нужного значения, вместо ПЗУ, будет выбираться статическое ОЗУ. Плюс по этому порту можно будет разрешать/блокировать запись в него.

КЭШ нужен для полноценной эмуляции ПЗУ, чтобы ничто не мешало разрабатывать новые прошивки. Тогда будет открытая дорого всяким экспериментам. КЭШ также можно повесить на батарейку, чтобы прошивка не пропадала после выключения питания. Естественно, панелька будет тоже рассчитана под максимальный объем, адресуемый диспетчером памяти. Ну вот, с памятью разобрались.

Теперь близкая от нее тема:

-----------

CMOS-часы.

Строятся на основе микросхемы DALLAS 286-х компов или на советских аналогах. На Спектрумах уже довольно распространена, есть схемы (схема GLUKа фактически стандарт), разработан стандарт портов.

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

ЗВУКОВАЯ СИСТЕМА.

Очень важный раздел. Если все будет реализована, то у нас будет самый продвинутый Спек в области звука.

Раздел состоит из нескольких подразделов.

1) BEEP'ер - он же динамик.

Без изменений. Вывод по порту OUT #FE. Так же без изменений вывод по этому же порту сигнала на магнитофони чтение с него.

2) AY-3-8910(12) -

предлагаю поставить два AY по схеме под названием "TURBO-SOUND"Работать они будут одновременно, но по портам доступен будет только какой-то один. Выбор активного AY будет осузествляться по OUT #1F(не спрятанный в TR-DOS). В результате получаем 6-канальный AY-звук. Сейчас под эту схему дописывается музыкальный редактор.. Во всем остальном - старая схема AY.

3) GENERAL SOUND.

Предлагаю также развести эту карточку на материнской плате вместе со своим Z80 на 12МГц и 2048Кб статической памяти и 32Кб ПЗУ.

4) MP3-декодер.

Просто взять на радиорынке одну из микросхем-декодеров (которая подешевле), и разработать под нее интерфейс программного сопряжения со Спекки (то есть порты, по которым можно будет с ней общаться). Ну и вывод звука подключить куда надо и как надо.

5) ЦАП(COVOX) -

аналогичен тому, что сейчас в ATM-2+, подвешен одновременно с принтером на порт #FB. Только можно сделать его не на 572ПА1, а на более современной элементной базе.

6) АЦП(8-ми канальный) -

также аналогичный имеющемуся по порту #7DFD, но на новых нетормозных элементах, которые не WAIT'ят процессор. Один из каналов(например - седьмой)) можно закоротить с выходом COVOX), другой (восьмой), закоротить со входом с магнитофона. Остальные каналы (1-6) вывести на отдельный разъем.

Ну вот, вроде со звуком все. Отмечу только, что все эти звуковые навороты на выходе надо собрать в два стандартных разъема под современные "пальчиковые" штырьки-разъемы. Один - на вход звука извне, а другой - на выход звука наружу. Плюс еще отдельный разъем для шести (из восьми) свободных каналов АЦП (для подключения осциллографов, датчиков и прочей байды).

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

ВНЕШНИЕ УСТРОЙСТВА:

1) FDD-контроллер.

Точно такой же как и в ZX на основе 1818ВГ93. Только с добавлением турбирования, чтобы работал с 1.2Мб и 1.44Мб форматами дисков.

2) IDE-интерфейс.

Аналогичный существующему на ATM.

3) Порт внешних устройств #FA(IN/OUT) -

для подключения программатора и своих собственных внешних разработок. Сделать аналогично имеющемуся в ATM. Только разъем взять не тот, что был (голубой двухрядный), а тот, который для LPT нп PC используется.

4) LPT-порт, он же вывод на принтер по стандарту CENTRONIX.

Адресуемый по #FB. В отличие от имеющегося в АТМ, предлагаю вывести все стандартные CENTRONIX игналы, а не только сигнал занятости принтера. Свободные биты для этого есть. Также саму адресацию #FB предлагаю сделать более жесткой (опрелеление выбора по всем адресным линиям A0-A7), чтобы не пересекалось с портами GS (а то иногда при работе GS, COVOX издает потрескивание, будучи запараллеленным с принтером). Естественно, разъем LPT рапаять по всем пЦ-шным стандартам.

5) COM-порт (RS-232) -

об этом чуть ниже отдельно.

6) Кемпстон-джойстик (IN #1F).

Как ни печально, но в АТМ он отсутствует. Тем не менее он необходим. Ну и стандартный 9-пин разъем под него.

7) Кемпстон-мышка -

Еще один важный и давно ставший стандартом девайс. Недавно под него разработана схема под микроконтроллер, которая позволяет сэмулировать порты кемпстон-мышки при работе с современной PS/2-MOUSE. Схема и прошивка микроконтроллера имеется.

Автор обещает поддержать очень скоро в этой схеме и COM-порт, сигналы с которого попадают также на микроконтроллер, который затем эмулирует кондратьевскую схему, по которой подключают к спеку пЦ-шные модемы, и под которую уже написана куча фидошного и ZXNet-овского софта.

Предлагаю чуть подождать и реализовать эту схему PS-mouse/COM-порт. То есть будут два разъема - 9-пиновый для COM и PS/2 для мыши.

8) пЦ-шная AT-клавиатура - предлагаю вообще отказаться от механической ZX_клавиатуры. Правда сам контроллер AT-клавы можно также построить не на основе 1816ВЕ31(i8031), а на более современных контроллерах, лишь сэмулировав интерфейс общения контроллера со спеком и стандартные команды управления пЦ-клавиатурой в ATM-turbo 2+(какие - смотрите у меня на сайте http://atmturbo.narod.ru в разделе "ОПИСАНИЕ").

Кстати, в оригинальном контроллере был также реализован и RS-232 интерфейс. Но передача/прием данных в нем был побитным, да и он не был поддержан программно. Так что вариант RS-232, описанный в пункте 7, кажется мне более привлекательным. Зато необходимо в этом интерфейсе реализовать реакцию на специальные сочетания клавиш, управляющие некоторыми аппаратными характеристиками компьютера. Дело в том, что раз плата будет рассчитана под современные корпуса, то произвольно дырок для специфических для ZX кнопочек не проделаешь. Вот пусть эмуляцией этих кнопок и занимается клавиатуры.

Частично это сделано уже в 1816ВЕ31 на АТМ-2+. Там Ctrl+Alt+Del вызывает сигнал RESET. Естественно, эмулируя 1816ВЕ31, мы повторим и это сочетание. Кроме того, я предлагаю придумать сочетание клавиш еще для нескольких кнопочек:

а) смена местами FDD-драйвов A и B

б) апаратное включение/выключение TURBO-режима (в дополнение к программному)

в) кнопка MAGIC

г) просто сигнал NMI

д) остановка процессора - подача на CPU сигнала WAIT, если надо срочно отлучиться. Можно прямо задействовать для этих целей кнопку PAUSE.

е) ну может еще какая мелочь...

Например -

В раскладку "горячих" комбинаций клавиш, наряду с вызовом NMI, Magic и др. надо включить еще одну - выключение питания! Ведь такой комп планироуется бы под современные ATX-корпуса, где кнопка POWER работает только на включение. А выключение происходит более другим путем, который и будет реализовываться искомой комбинацией клавиш. Также следует обзавестись для выключения компа отдельным портом, чтобы можно было проводить сию процедуру средствами программного обеспечения. Для клавы можно развести PS/2-разъем, хотя можно и старый круглый с пятью штырьками.

9) Левый и правый синклер-джойстики, запараллеленные с клавишами "12345" и "67890" соответственно. Единственный остаток механической клавиатуры, но необходимый. Соответственно под них - два 9-пин разъема.

==============================================

Ну вот, такие у меня идеи, и такой в моих мечтах ИДЕАЛЬНЫЙ СПЕКТРУМ. Это будет комп, в который никогда не захочется лезть паяльником, чтобы добавить еще какой-нибудь "наворотик". Потмоу что даже если что и найдется, чего тут нет(например, я не включил в список парочку наворотов с графикой), то оно не будет стоить паяльного вмешательства. А что вы, читатели, могли бы добавить к этому проекту?