Абзац
:: Поиск
:: Поддержка проекта
Webmoney:
  • Z610389805629
  • R427996570517
  • E023541002978
  • :: №22 (23.01.2005) Просмотров: 8484

    Автор: Денис Гартфельдер.

    Рубрика: Читатель читателю.

    Номер: №22 (23.01.2005).



    Современные накопители информации

    В этом небольшом обзоре я попытался собрать информацию об относительно новых контроллерах для работы с внешними накопителями информации, которые можно подключить к ZX Spectrum. Описываемые устройства имеют ряд отличительных особенностей, благодаря которым они и попали в этот обзор:

    1. Они разработаны западными производителями и мало известны среди «восточноевропейских» (бывших советских) спектрумистов;

    2. Они не являются продуктами промышленного производства, их устройство обычно не очень сложное и они могут быть собраны самостоятельно;

    3. Они используют современные распространенные накопители информации и построены на доступных микроконтроллерах, что облегчает их сборку;

    4. Они являются открытыми, постоянно совершенствующимися проектами, и вся информация о них доступна для всех желающих.

    Большая часть материала для обзора была взята мной из английского Spectrum-журнала «ZX FORMAT» (тезки отечественного электронного издания) и была дополнена информацией с сайтов самих разработчиков. Пользуясь возможностью, хочу порекомендовать пользователям, владеющим английским языком и имеющим возможность пользоваться Интернетом, ознакомиться с этим замечательным журналом по адресу http://www.cwoodcock.co.uk/zxf

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


    Flash Disk for ZX

    Использование CompactFlashCard объемом 128 Mb вместо жесткого диска.

    Разработчик: Roelof Koning (Roelof.Koning@12move.nl)

    Карта памяти находится внутри корпуса компьютера, подключаясь проводами к адресной шине (A7, A8, A14, A15), шине данных, сигналам /RD, /WR, /IORQ. Конструкция CFC не требует никакого дополнительного интерфейса (1 резистор, 2 диода), провода одним концом соединяются с шиной, а другим просто втыкаются в female-сокет карты.

    Работа с устройством осуществляется посредством IN/OUT через следующие порты:

    Размер сектора - 512 байт; операции чтения/записи происходят при помощи секторбуфера.

    Поскольку карта с 16-битным доступом, информация делится на условно «четные» и «нечетные» байты. После того, как из порта 127 было произведено чтение «четного» байта, в него копируется значение из «нечетного» порта 383. Регистры, отвечающие за номера головки/цилиндра/сектора, также поддерживают логическую адресацию (режим LBA).


    Специального программного обеспечения для работы с картой не существует; использование регистров предполагает, что написание подпрограмм чтения/записи из карты не представляет труда. Ниже приведен пример программы на BASIC’е, которая считывает из секторбуфера карты помещенную туда по команде идентификационную информацию:

    10 CLEAR 39999: LET T=40000
    20 IF IN 49535<>80 THEN STOP: REM Проверка готовности карты
    30 OUT 49535,236: REM Посылаем команду идентификации #EC 
    40 POKE T+1, IN 127: POKE T, IN 127: REM Чтение «четного» и «нечетного» байта из секторбуфера
    50 IF IN 49535<>80 THEN LET T=T+2: GOTO 40: REM Цикл будет продолжаться до тех пор, пока карта не выдаст сигнал готовности (после чтения всех 512 байт)
    60 REM Вывод считанной информации
    70 FOR F=40000 TO 400512
    80 PRINT F;« »; PEEK F, CHR$ PEEK F AND PEEK F>31
    90 NEXT F

    В данном примере в строке 50 нет проверки на наличие возникающих ошибок, просто ожидается состояние «готов». В действительности же могут возникать различные ошибки, и необходимо их отслеживать.


    ZXCF

    Использование CompactFlashCard как универсального накопителя.

    Разработчик: Sami Vehmaa (user.tninet.se/~vjz762w/)

    В отличие от предыдущего варианта, в котором карта играла роль своеобразного «железоподкрепленного электронного диска», данная разработка представляет собой полноценный контроллер для работы с CFC. Соответственно, усложнилась и схемотехническая часть, так что к категории «сделай сам» эту разработку можно отнести с большим натягом.

    Данная система позволяет работать в операционной системе ResiDOS или в специально адаптированной +3e для Amstard ZX Spectrum 3+ (разработчик обеих ОС - Garry Lancaster). Тем не менее, контроллер будет работать на любой Sinclair-совместимой машине. ResiDOS не позволяет работать с каталогами, зато может создавать разделы (partitions). Контроллер также позволяет использовать многостраничный (по 16 Kb) доступ к встроенной RAM объемом 512 или 1024 Kb.

    Контроллер подключается к системному разъему. При нажатии на кнопку NMI загружается собственный Task Manager, одной из примечательных функций которого является возможность делать моментальные снимки памяти (до 16 снимков в 48 режиме при объеме встроенной памяти в 1 Mb), переключаться между ними и сохранять их, причем как на CompactFlash-карте, так и в памяти самого устройства. Поскольку питание ZXCF автономное, то можно хранить информацию во встроенной памяти столько, сколько это позволит сделать батарейка (которой хватит на 3 года работы, после чего придется применить некоторые навыки обращения с паяльником, чтобы заменить ее). Можно загрузить игру, пройти несколько уровней, сделать снимок, сохранить его в память устройства, выключить компьютер и позабыть про него на пару месяцев, а затем включить и продолжить игру с того самого места, на котором она была в последний раз сохранена. Использование в качестве устройства сохранения карты CFC позволяет увековечить свои игровые рекорды.

    Разработчик отмечает, что тестировал устройство с несколькими типами CFC-накопителей различной емкости от различных производителей, и не все из них заработали.

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


    YABUS.ZX

    Универсальный интерфейс для подключения внешних устройств.

    Разработчик: Jarek Adamski (zx@yarek.com)

    Подключающийся к системному разъему миниатюрный контроллер с двумя разъемами, позволяющими подключать и работать в параллельном режиме с различными специализированными модульными устройствами (YAMOD). Отличительной чертой модулей является их железонезависимость; YABUS можно подключать к ZX 81, ZX Spectrum, Timex, SAM Coupe, MSX, Amstard CPC. Кроме версии YABUS.ZX, разработчиком предлагаются интерфейсы для Amstard ZX Spectrum +3 и Timex, возможно будет версия и для Commodore Amiga. Начата разработка интерфейса, позволяющего «паразитировать» на PC-железе.

    Работа с некоторыми устройствами возможна и в стандартном режиме, но для полноценной работы рекомендуется использовать специальные операционные системы: СPM22QED (расширенная версия CP/M 2.2), ZXVGS (операционная система, разработанная автором этого интерфейса).

    Автор разработал следующие модули:

    К сожалению, этот проект коммерческий, и разработчик не предоставляет в открытый доступ принципиальных схем устройства и его модулей. Их можно купить у него по довольно умеренным ценам.

    Дополнительная информация: http://zx.yarek.com/dYABUS-en.html

    Информация по операционной системе ZXVGS: http://zxvgs.yarek.com


    zxUSB

    Контроллер для работы с USB-устройствами на ZX Spectrum.

    Разработчик: Dave «The Lurker» Mills

    Попытка создать работающий USB-контроллер для подключения к Спектрум-совместимым машинам различных устройств, оборудованных интерфейсом USB, в первую очередь портативных накопителей памяти (USB FlashDrive). Контроллер на основе микросхемы National Semiconductor USBN9603 позволяет подключать одно устройство через стандартный разъем USB к системной шине компьютера. Возможно, что будет разработана версия для подключения через YABUS.ZX.

    Базовый адрес контроллера - #91. Путем дополнительного перепрограммирования контроллера и написания программы-обработчика немаскируемых прерываний можно использовать NMI для контроля и управления передачей данных. Потребляемая подключенным устройством мощность ограниченна возможностями блока питания Спектрума (сила тока не более 100мА).

    Программного обеспечения для работы с устройством на данный момент не существует. Вся необходимая информация, включая файлы разводки печатной платы, принципиальную схему устройства, документацию по USBN9603, на сайте http://8bitorbust.info/sinclair/spectru … re/zxUSB/.


    ZXATASP

    16-битный интерфейс для работы с внешними накопителями.

    Разработчик: Sami Vehmaa (user.tninet.se/~vjz762w/)

    ZXATASP это 16-битный IDE-контроллер на основе программируемого модуля NEC D8255AC-5, позволяющий подключать к компьютеру жесткий диск и CompactFlash Card. Он подключается к системному разъему и работает на всех Spectrum-машинах начиная с ZX Spectrum 16 без аппаратной доработки компьютера. Имеет на борту 128/512 Kb памяти, позволяет загружать в нее любые прошивки ПЗУ, выбирать и работать с одной из них.

    Модуль 8255 имеет три 8-битных регистра (A, B, C) и регистр состояния (CWR), позволяющий контролировать состояние портов, связанных с этими тремя регистрами:

    Регистр CWR позволяет переключать режимы чтения/записи для регистров A и В (регистр C всегда находится в режиме записи):

    OUT 927,146 - переключает регистры в режим чтения

    OUT 927,128 - переключает регистры в режим записи

    Значения флагов регистра C:

    Примеры подпрограмм, осуществляющих запись/чтение данных через IDE:

    10 REM Запись данных в IDE 
    20 REM Задаем значение младшего регистра шины IDE (D00-D07)
    30 LET DATALOW=139
    40 REM Задаем значение старшего регистра шины IDE (D00-D07)
    50 LET DATAHIGH=217
    60 REM Переключение в режим записи в порт
    70 OUT 927,128
    80 REM Отправляем значения младшего и старшего регистров шины в соответствующие порты
    90 OUT 159, DATALOW
    100 OUT 415, DATAHIGH
    110 REM Получаем доступ к регистру состояния IDE
    120 OUT 671,55 
    130 REM Сбрасываем все контролирующие флаги
    140 OUT 671,0
    * * *
    10 REM Чтение данных из IDE 
    20 REM Переключение в режим чтения из порта
    30 OUT 927,146
    40 REM Получаем доступ к регистру состояния IDE
    50 OUT 671,55
    60 REM Считываем значения младшего и старшего регистров шины из соответствующих поров
    70 LET DATALOW = IN 159
    80 LET DATAHIGH = IN 415
    90 REM Сбрасываем все контролирующие флаги
    100 OUT 671,0

    Устройство комплектуется маломощной памятью объемом 128 или 512 Kb. Нулевая страница памяти содержит загрузчик и утилиты для работы с IDE, первая - несколько модифицированную прошивку ПЗУ. Принцип работы состоит в том, чтобы загружаться с IDE, а затем подставлять вместо загрузочной нулевой страницы «родной» или любой другой ROM (причем достаточный объем памяти позволяет хранить их несколько десятков). Для этого используется 6-ой бит регистра C во включенном состоянии, а номер страницы памяти задается битами 0…4 этого же регистра:


    OUT 617, (64+номер страницы)


    Для отключения этой возможности используется седьмой бит регистра C. Причем должны быть включены и шестой, и седьмой бит, а биты с нулевого по четвертый должны быть обязательно выключены (а сам контроллер должным образом проинициализирован командой OUT 927,128 или OUT 927,146). Если этого сделано не будет, то тогда «со вторым каналом IDE может произойти что-нибудь нехорошее» (цитата из техдокументации к устройству).

    Загрузка в память устройства прошивок ПЗУ осуществляется следующим образом: в определенное положение устанавливаются перемычки на самом устройстве, затем устройство инициализируется и конфигурируется при помощи регистра C, после чего образ ПЗУ можно загрузить в область памяти 0-…16383 при помощи POKE или LDIR.


    Глоссарий

    n    I2C - Inter-IC, интерфейс связи между интегральными схемами.

    n    IDE - Integrated Device Electronics, тип интерфейса дисковых накопителей, в котором управляющая электроника размещается в самом накопителе, не требуя специальной адаптерной платы.

    n    СFC - Compact Flash Card, карты памяти емкостью …512 Mb. Интерфейс достаточно универсален, в формате CF существует множество устройств - модемы, фотокамеры, сетевые адаптеры, GSM модули и жесткие диски. Используются в некоторых карманных компьютерах.

    n    EEPROM - Electrically Erasable Programmable ROM, электрически-стираемое программируемое ПЗУ.

    n    FIFO - First-In-First-Out, буфер, из которого данные выпускаются в том же порядке, как они поступили (т.н. буфер обратного магазинного типа).

    n    RS-232 - Recommended Standard 232, промышленный стандарт для последовательных соединений, определяет конкретные линии и характеристики сигнала, используемые контроллерами последовательных соединений.

    n    USB - Universal Serial Bus, универсальная последовательная шина.

    © 2004-2013 Perspective group