Про платы XT-IDE и XT-CF
XT-IDE rev 02
Плата XT-IDE даёт возможность подключать (относительно) современные жёсткие диски IDE или CF-карты памяти к старым компьютерам IBM PC XT и совместимым. Она устанавливается в 8-битный ISA-сокет и не требует установки каких-либо драйверов для работы, т.к. имеет на борту свой собственный BIOS, который можно настроить под конкретное железо (от режима максимальной совместимости с XT-системами до максимальной скорости работы на более современном железе). Также на плате есть последовательный порт (опциональный), предназначенный для загрузки системы с файла-образа диска, расположенном на другом компьютере. Последнее крайне полезно, когда надо установить систему, а под рукой нет ни дисковода с системной дискетой, ни системного HDD.
В качестве BIOS-а рекомендуется использовать EEPROM 28C256 (также можно использовать менее ёмкую 28C64), тогда для записи и обновления прошивки не потребуется программатор - это можно сделать через DOS-утилиту.
Девайс поддерживает диски и карты памяти любых размеров (но не забываем про ограничение, накладываемое операционной системой. Например MS DOS 6.22 поддерживает диски не более 8.4 Гб). Всего к плате можно подключить два диска.
Сборка
Гербер-файлы можно скачать по ссылке внизу статьи. Платки с синей паяльной маской и покрытием иммерсионным золотам получились вот такие:
Сборка платы не должна вызывть сложностей, все элементы подписаны шелкографией. Если не нужен опциональный UART, то микросхемы U11 - U13, их обвязку (конденсаторы и резистивную сборку) и кварцевый генератор можно не устанавливать. Кстати, о резистивных сборках - плата спроектирована под 10-пиновые сборки из 9 резисторов, но, т.к. последний резистор не используется, то сгодятся 9-выводные сборки (которые, как оказалось, гораздо проще достать).
Ещё один момент - резистор R6, который можно/нужно заменить перемычкой. Если жёсткий диск будет подключен как Master или Slave, то резистор можно оставить. Если же планируется использовать режим Cable select, то вместо резистора лучше запаять перемычку. Либо внести соответствующее изменение в плату. Хотя, лично у меня винчестер успешно определялся и работал в режиме Cable select с запаяным резистором.
Вот что получилось у меня в итоге:
Установка джамперов
Для успешного запуска адаптера надо установить множество джамперов. Вот их расположение на плате:
Для начала надо сконфигурировать ПЗУ BIOS-а выбрав её тип (рекомендуется использовать 32-килобайтовую Atmel 28C256, но 8-килобайтовая 28C64 тоже сгодится) и задав адрес.
Джампер JP1 должен быть установлен, чтобы BIOS платы запускалась при старте системы. Джампер JP2, разрешающий программирование EEPROM-а, рекомендуется устанавливать только в случаях, когда реально планируется записывать/перезаписывать BIOS. В противном случае, есть риск повреждения содержимого ПЗУ, если какая-нибудь программа решить обратится к этим адресам.
Джамперами P10 задаётся базовый адрес интерфейса (по умолчанию 300h)
А джамперами P4 выставляется номер IRQ:
Джамперы K4 / K5 задают режим работы. Если выставить оба в верхнее положение - скоростной режим, если в нижнее - режим совместимости. Для начала лучше настроить режим совместимости, затем, в случае успеха попробовать Hi-speed mode.
Для UART-интерфейса (если он присутствует) также надо настроить базовый адрес и номер IRQ:
Джампер P9 включает подачу питания +5В на 20й вывод IDE-разёма. Его имеет смысл установить в случае использования карты памяти CF вместо жёсткого диска.
Прошивка и конфигурирование
Сначала надо скачать прошивку (ссылки ниже в конце статьи). Последняя версия - R580. В архиве есть восемь вариантов бинарника:
- ide_xt.bin
- Сборка использует только процессорные инструкции, поддерживаемые 8086/8088. Этот билд должен работать везде, включая оригинальный IBM PC model 5150.
- ide_xtp.bin
- Сборка XT+. Аналогична сборке XT но использует инструкции 80186/80188 (INS и OUTS), повышающие скорости переноса данных. Эти инструкции поддерживаются всеми более поздними x86 включая NEC V20/V30.
- ide_xtl.bin
- Сборка XT large. Сборка XT с дополнительными модулями (см. далее). Требует 32кб ПЗУ.
- ide_xtpl.bin
- Сборка XT+ large. Сборка XT+ с дополнительными модулями (см. далее). Требует 32кб ПЗУ.
- ide_tiny.bin
- Сборка XT tiny. Аналогична XT-сборке, но более компактная (умещается в 4кб) за счёт того, что использует сжатые строки и отключает некоторые функции проверки. Для XT-IDE / XT-CF не иммет смысла.
- ide_at.bin
- Сборка для AT-машин (с 16- и 32- разрядной шиной). Использует 286 инструкции. Самая полная версия, содержит все фичи BIOS-а. Включает перехваты системных вызовов, позволяющие операционной системе выполнять некотрую работу в то время, когда HDD занят позиционированием головок на нужный сектор.
- ide_atl.bin
- Сборка AT large. Сборка AT с дополнительными модулями (см. далее). Требует 32кб ПЗУ.
- ide_386.bin
- Сборка для 386 и выше. Аналогично сборке AT включает весь возможный функционал, но использует некоторые 386-е инструкции.
Large-сборки
Large-сборки включают дополнительно следующие модули: MODULE_BOOT_MENU, MODULE_8BIT_IDE_ADVANCED и MODULE_COMPATIBLE_TABLES.
- MODULE_BOOT_MENU
- Загрузочное меню, позвоялет выбрать диск для загрузки.
- MODULE_8BIT_IDE_ADVANCED
- Поддержка DMA и memory mapping. Повзоляет в несколько раз увеличить скорость обмена за счёт использования DMA. Используется контроллерами Lo-tech XT-CF и JR-IDE
- MODULE_COMPATIBLE_TABLES
- Включение поддержки таблиц DPT (Drive Parameter Tables). Это таблицы в памяти, содержащие данные о дисках - начиная от геометрии диска (количество байт в секторе и кластере) и заканчивая именем текущей директории. Некоторый софт использует их в своей работе напрямую (что вообще говоря, совсем не есть правильно).
Но после выбора файла BIOS-а нельзя просто так взять и записать его, сначала это дело надо сконфигурировать. Делается это утилитой xtidecfg.com, входящей в состав архива. Запускаем конфигуратор:
Открываем нужную сборку, после чего в меню появятся пункты конфигурации и запись в EEPROM:
В меню присутсвует команда Auto configure, которая попытается сама определить параметры устройства.
В первую очередь надо выставить базовый адрес так, чтобы он совпадал с адресом, выстаавленным джамперами:
Ещё тут есть с десяток разных опций, которыми можно поиграться:
В нижней части меню показываются подсказки к каждому элементу. Кроме того, клавшией F1 можно открыть окно с более подробным описанием параметра:
- Base (cmd block) address
- Базовый адрес - адрес, по которому располагаются порты команд. По умолчанию первичный контроллер IDE использует порт 1F0h, а вторичный контроллер - порт 170h. XTIDE по умолчанию использует порт 300h.
- Control block address
- Блок портов управления. Для контроллеров IDE обычно используется базовый адрес + 200h. Для XTIDE блок регистров управления располагается сразу после блока регистров команд, т.е., по адресу базовый + 8h.
- Enable interrupt
- IDE контроллер может использовать прерывания чтобы сообщать о том, что данные готовы и могут быть прочитаны. Это позволяет системе выполнять полезныю работу пока контроллер занят. Эта возможность не сильно полезна в однозадачной MS-DOS, но использование прерываний освобождают шину для других операций DMA. Если прерывания запрещены, то используется режим опроса (Polling mode), когда система циклически опрашивает контроллер пока не получит признак готовности данных. В MS-DOS режим опроса может немного повысить скорость работы, т.к. позволяет избежать накладных расходов на прерывания. Однако, если прерывания выключены и включен Block mode transfers, то возможны проблемы с некоторыми старыми HDD.
- IRQ
- Номер канала IRQ. В MS-DOS все контроллеры, работающие под управлением XTIDE Universal BIOS могут использовать один и тот же канал IRQ. Другие операционные системы могут потребовать выделения каждому контроллеру свой собственный IRQ.
- Block mode transfers
- Режим блочной передачи может увеличить скорость работы за счёт того, что сразу несколько секторов будут переданы во время ожидания запроса на следующую порцию данных. Эту опцию имеет смысл всегда оставлять включенной. Выключать её надо только если используются HDD, в которых криво реализован режим блочной передачи.
- User specified CHS
- Вообще, контроллер может автоматически определять геометрию диска. Но если операционная система не может работать с дисками большого объёма, то можно вручную ограничить для неё количество секторов - Cylinders. При этом лучше не трогать параметры heads и sectors per track - тут не все значения допустимы.
Обновить BIOS контроллера можно прямо из утилиты конфигуратора. Экран программатора выглядит так:
Тут выбирается тип микросхемы EEPROM (2816, 2864, 28256 или 28512). Размер страницы можно оставить 1 байт - все микросхемы EEPROM поддерживают побайтовый режим. При большем размере скорость записи будет выше, но возможны проблемы. Режим SDP (Software Data Protection) имеет смысл включать только если EEPROM его поддерживает (смотреть по даташиту).
XT-CF-Lite V4
XT-CF-Lite - упрощённая версия контроллера XT-IDE для подключения CF-карты вместо HDD. Её описание, схему, герберы и прошивку можно скачать с сайта автора.
Тут используется ПЗУ на 8 КБ (рекомендуется EPROM 28C64 чтобы можно было обновлять прошивку). Резистор R5 на плату впаивать не надо. Девайс этот достаточно прост и запускается обычно без проблем, если нет ошибок в монтаже. Так выглядит мой вариант собраной платы и рабочая, проверенная на нескольких компьютерах, конфигурация микропереключателей:
В завершение небольшое предостережение - платы восьмибитные, и, при остуствии задней планки, вставить их в ISA слот можно как правильно, так и
вверх ногами. В последнем случае обоим девайсам может быстро и необратимо поплохеть - печальная практика показала, что при перевёрнутом включении
у них моментально выходят из строя ПЗУ. Дело усугубляет то, что у IDE-контроллера разъём HDD расположен как бы спереди, а у CF-контроллера разъём
карты расположен как бы сзади. И, когда привыкаешь вставлять одну карту (CF или IDE), то и другую плату можно по инерции воткнуть так же, ориентируясь
по разъёму. Сам убил так пару флешек у IDE-карты, и слышал о аналогичной беде с CF-адаптером.
Вообщем, это, будьте осторожны! :)
Файлы
Gerber-файлы платы ISA XT-IDE V2Набор прошивок и конфигуратор версии R580 (последняя на момент написания статьи)
Готовая настроенная прошивка ide_xtl для ISA XT-IDE
Ссылки
Страница проекта ISA XT IDE
Скомпилированные прошивки
Документация по прошивкам
Репозиторий на github
XT-CF-Lite V4.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии