АВТОРСКАЯ РАЗРАБОТКА
КОНТРОЛЛЕР ВИНЧЕСТЕРА (IDE) ДЛЯ ZX SPECTRUM. © Л. Ермаков, К. Свиридов, Фирма "СЛОТ", 1996 г.
Большинству пользователей ZX хорошо знакома проблема поиска и хранения бесчисленного количества игровых и прикладных программ на дискетах. Особенно остро эта проблема встала после появления и широкого распространения операционной системы ISDOS. Первой, достаточно мощной и, пожалуй, единственной в своем роде. Ёмкости стандартной дискеты (800K) оказалось явно недостаточно для сколько-нибудь серьёзной работы. Использование RAM-диска хотя и облегчает жизнь, но не решает проблемы в целом.
ВИНЧЕСТЕР! Эта мысль не даёт покоя всем: пишущим и не пишущим, начинающим хакерам и серьёзным пользователям. Первая удачная попытка использования "винта" на ZX была предпринята ещё в 1992 г. Специалистами фирмы ISKRASOFT был разработан контроллер MFM-винчестера, но из-за сложности в настройке и наличии в составе контроллера некоторых, весьма дефицитных компонентов (в частности БИС КР1809ВГ7), контроллер так и не получил широкого распространения. С появлением на отечественном рынке куда более совершенных IDE-винчестеров, многие разработчики поспешили объявить о наличии или возможности использования IDE интерфейса в составе своих ПК. Но в силу разных причин и обстоятельств дальше дело не продвинулось.
Ещё один сдерживающий фактор широкого внедрения IDE - относительно высокая стоимость самого винчестера (а что сейчас дешево?). Однако, как показывает сравнительный анализ цен, за последние год-полтора стоимость винчестера небольшого объёма (по IBM-овским стандартам) на 20-40 мегабайт, неуклонно падает и сравнима со стоимостью двух "приличных" дисководов, что на наш взгляд вполне приемлемо.
Предлагаемый контроллер HARD (IDE) разработан, в первую очередь, для ZX NEXT, но может быть использован в составе других ПК. Он не содержит дефицитных или дорогостоящих компонентов (общее число микросхем - 17 шт.) и представляет собой законченное изделие стандартных (для ZX NEXT) габаритов - 150х80.
Функционально контроллер можно разделить на три основных блока:
1. Контроллер XT-клавиатуры.
2. Контроллер IDE-интерфейса.
3. Контроллер ОЗУ 512K.
Объединение трёх устройств на одной плате не случайно, и продиктовано не только экономическими соображениями, т. к. наличие в составе ПК хотя бы одного из них, рано или поздно, повлечёт за собой потребность в остальных. (Проверено на личном опыте).
Контроллер XT-клавиатуры подключается вместо или параллельно обычной Спектрумовской, и никаких других служебных сигналов для своей работы не требует. Он не тормозит работу компьютера. Данные в порт #FE подаются сразу после получения кода нажатой клавиши. Раскладка клавиатуры, при желании, может быть легко изменена простой заменой "прошивки" (2716). Несмотря на очевидную простоту, контроллер обеспечивает нормальное функционирование клавиатуры и практически полностью эмулирует клавиатуру ZX (для работы в TRDOS никакой драйвер не требуется).
Контроллер IDE-интерфейса обеспечивает доступ к управляющим регистрам винчестера и 16-ти разрядным данным. Связь с шиной данных осуществляется через двунаправленный буфер. Чтобы обеспечить использование контроллера в составе других ПК, применена расширенная 16-ти битная адресация всех портов. Это уменьшает вероятность случайной выборки устройств контроллера. Кроме того, предусмотрена полная блокировка всех портов контроллера.
Контроллер расширения ОЗУ имеет непосредственное отношение только к ZX NEXT и представляет собой схему управления дополнительной памятью. По сравнению с аналогичными,
обладает новыми возможностями. Разработчики решили отказаться от двух дополнительных битов в #7FFD, как это было объявлено ранее. Вместо этого введён отдельный порт конфигурации ОЗУ. Если стандартное адресное пространство Z80 условно разбить на четыре области: от #0000 до #3FFF, #4000-#7FFF, #8000-#BFFF, #C000-#FFFF, а 8-ми разрядный порт конфигурации представить как четыре двух битовых, (по количеству областей), как раз получаем возможность чрезвычайно гибкого управления памятью. А именно: каждая из перечисленных областей, независимо от остальных, заменяется на любую из трёх альтернативных! Практически мы имеем четыре независимых 128K машины, только с общим центральным процессором.
Разумеется, классический способ сегментации ОЗУ с адреса #C000 сохраняется. Более подробно вопросы адресации и применения раскрыты в технической документации на ZX NEXT.
В настоящее время (февраль 1996) наиболее полно контроллер поддержан для работы в IS DOS: имеются все необходимые утилиты и драйверы. Проработан вопрос начальной загрузки с " винта" (без вмешательства в ПЗУ это невозможно).
По вопросам приобретения готовых и чистых печатных плат контроллера и компьютера обращайтесь в фирму "Слот":
г. Москва 117330 а/я 707, тел. (095)143-11-91.