Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
hddxt [2022/07/04 12:27] – [BIOS XT и HDD] adminhddxt [2024/02/29 14:50] (current) – [Диски MFM] admin
Line 3: Line 3:
 Здесь собраны различные заметки по подключению жестких дисков MFM/RLL к компьютеру IBM PC XT и совместимых. К сожалению, полную информации по этому вопросу найти уже сложно, кроме того, потихоньку все уже забывается. Здесь собраны различные заметки по подключению жестких дисков MFM/RLL к компьютеру IBM PC XT и совместимых. К сожалению, полную информации по этому вопросу найти уже сложно, кроме того, потихоньку все уже забывается.
  
-Основное внимание в этом документе обращено на вопросы "Как сделано?" и "Почему так сделано?". Текст написан технарем и для технарей, поэтому тут много жаргона и предполагаются базовые знания организации, схемотехники и функций BIOS XT. Что касается внешней стороны "Как это включить?" то можно почитать раздел "Дополнительные материалы".+Основное внимание в этом документе обращено на вопросы "Как сделано?" и "Почему так сделано?". Текст написан технарем и для технарей, поэтому тут много жаргона и предполагаются базовые знания организации, схемотехники IBM PC и функций BIOS PC XT. Что касается внешней стороны "Как это включить?" то можно почитать раздел "Дополнительные материалы".
  
 ====== BIOS XT и HDD ====== ====== BIOS XT и HDD ======
  
-Как известно, компьютер [[wp>IBM_Personal_Computer_XT|IBM PC XT 5160]] был вторым персональным компьютером после [[wp>IBM_Personal_Computer#Original_PC|IBM PC 5150]]. Как и предшественник, IBM PC XT имел на материнской плате BIOS объемом 8K, который поддерживал основные устройства XT. Давайте рассмотрим поддержку устройств в BIOS IBM PC XT 5160.+Как известно, компьютер [[wp>IBM_Personal_Computer_XT|IBM PC XT 5160]] (это официальное название XT-шки) был вторым персональным компьютером после [[wp>IBM_Personal_Computer#Original_PC|IBM PC 5150]]. Как и предшественник, IBM PC XT имел на материнской плате BIOS объемом 8K, который поддерживал основные устройства XT. Давайте рассмотрим поддержку устройств в BIOS IBM PC XT 5160.
  
 BIOS XT содержит драйвера очень ограниченного числа устройств: BIOS XT содержит драйвера очень ограниченного числа устройств:
  
-  * Драйвер контроллеров дисплея CGA или MDA, включая графические режиимы CGA и шрифты для них. Выбор типа контроллера осуществляется с переключателей на материнской плате. +  * Драйвер контроллеров дисплея CGA или MDA, включая графические режимы CGA и шрифты для них. Выбор типа контроллера видео осуществляется с переключателей на материнской плате. 
-  * Драйвер клавиатуры (сканкоды типа XT)+  * Драйвер клавиатуры ([[https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%B0%D0%BD-%D0%BA%D0%BE%D0%B4|сканкоды]] типа XT)
   * Драйвер COM-порта на [[wp>8250_UART]]   * Драйвер COM-порта на [[wp>8250_UART]]
-  * Драйвер принтера CENTRONIX и поддержка кнопки Print Screen+  * Драйвер принтера [[https://ru.wikipedia.org/wiki/IEEE_1284|CENTRONIX]] и поддержка кнопки Print Screen
   * Драйвер флопи-контроллера на микросхеме i8272А.   * Драйвер флопи-контроллера на микросхеме i8272А.
  
 {{ ibm_pc_xt_1.jpg?nolink&200|IBM PC XT 5160 общий вид}} {{ ibm_pc_xt_1.jpg?nolink&200|IBM PC XT 5160 общий вид}}
-На IBM PC XT драйвером в BIOS поддерживаются дисководы двойной плотности (96tpi) 40 дорожек, 2 стороны, 9 секторов. Таким образом, в BIOS XT имеется поддержка дискет 360К **и только**. Количество флопиков выбирается с переключателей на материнской плате, от 1 до 4. **Все** флопики с точки зрения BIOS одинаковые, по 360К.+На IBM PC XT драйвером в BIOS поддерживаются дисководы двойной плотности DD (96tpi) 40 дорожек, 2 стороны, 9 секторов. Таким образом, в BIOS XT имеется поддержка дискет 360К **и только**. Количество флопиков выбирается с переключателей на материнской плате, от 1 до 4. **Все** флопики с точки зрения BIOS одинаковые, по 360К.
  
 На PC поддержка дисковых устройств осуществляется через прерывание BIOS INT 13, самые важные вызовы конечно же "Прочитать сектор"(INT 13/AH=02h) и "Записать сектор"(INT 13/AH=03h). BIOS поддерживает до 4-х флопии-приводов 360К с номерами устройств от 0 до 3. На PC поддержка дисковых устройств осуществляется через прерывание BIOS INT 13, самые важные вызовы конечно же "Прочитать сектор"(INT 13/AH=02h) и "Записать сектор"(INT 13/AH=03h). BIOS поддерживает до 4-х флопии-приводов 360К с номерами устройств от 0 до 3.
Line 24: Line 24:
 Стандартный BIOS XT обрабатывает также вызов INT 19 (Boot) и поддерживает загрузку с нулевого устройства, которое, как несложно догадаться, является флопиком 360К. Фактически, обработчик INT 19 состоит из вызова INT 13 "Прочитать сектор" c первого сектора дискеты (Boot Sector) в память по адресу 0000:7С00H (на 1Кб меньше 32К). Если в конце сектора есть сигнатура AAH/55H, то это скорее всего нормальный Boot Sector и BIOS передает туда управление. Стандартный BIOS XT обрабатывает также вызов INT 19 (Boot) и поддерживает загрузку с нулевого устройства, которое, как несложно догадаться, является флопиком 360К. Фактически, обработчик INT 19 состоит из вызова INT 13 "Прочитать сектор" c первого сектора дискеты (Boot Sector) в память по адресу 0000:7С00H (на 1Кб меньше 32К). Если в конце сектора есть сигнатура AAH/55H, то это скорее всего нормальный Boot Sector и BIOS передает туда управление.
  
-Таким образом, "стандартный" BIOS XT **не содержит** никаких драйверов жестких дисков, вся поддержка содержится в Optional ROM BIOS платы контроллера.+Таким образом, "стандартный" BIOS XT **не содержит** никаких драйверов жестких дисков, вся поддержка содержится в Optional ROM BIOS (ПЗУ) платы контроллера.
  
 Материалы для дополнительного чтения: Материалы для дополнительного чтения:
   * Роберт Журден. Справочник программиста на персональном компьютере фирмы IBM. Глава 5: Дисковые накопители   * Роберт Журден. Справочник программиста на персональном компьютере фирмы IBM. Глава 5: Дисковые накопители
   * Питер Нортон. Программно-аппаратная организация IBM-PC   * Питер Нортон. Программно-аппаратная организация IBM-PC
-  * Ralf Brown Interrupt List http://www.ctyme.com/rbrown.htm+  * Ralf Brown Interrupt List http://www.ctyme.com/rbrown.htm раздел INT 13H
   * Исходники BIOS из [[http://wiki.sensi.org/download/doc/IBM_5155_5160_Technical_Reference_6280089_MAR86.pdf|IBM PC XT Technical Reference]] Section 5   * Исходники BIOS из [[http://wiki.sensi.org/download/doc/IBM_5155_5160_Technical_Reference_6280089_MAR86.pdf|IBM PC XT Technical Reference]] Section 5
   * https://en.wikipedia.org/wiki/Booting#Boot_sequence_of_IBM_PC_compatibles   * https://en.wikipedia.org/wiki/Booting#Boot_sequence_of_IBM_PC_compatibles
  
-Важное отличие XT от AT286/386/+ : В BIOS IBM PC AT и старших машин дополнительно содержится драйвер "стандартного" 16-битного MFM контроллера жестких дисков Western Digital на чипсете WD1010. Машина IBM 5170 (это полное название AT-шки) продавалась сразу с контроллером WD1003-WA. Поэтому "стандартный" 16-битный MFM контроллер не имеет BIOS-а на борту, он ему просто не нужен, т.к. драйвер содержится в основном BIOS-е материнской платы AT. Далее, оказывается, что контроллер "внутре" любого IDE диска полностью совпадает по системе команд и регистрам с MFM WD1003-WA (плюс расширения). Это нисколько не удивительно, поскольку стандарты IDE разрабатывала та же фирма Western Digital. Этот набор регистров называется Task File, он стандартный и одинаковый у 16-битного MFM и обычных IDE и работает одинаково. Поэтому машине AT с IDE диском и контроллером тоже не нужны никакие дополнительные BIOS-ы.+Важное отличие XT от AT286/386/+ : В BIOS IBM PC AT и старших машин дополнительно содержится драйвер "стандартного" 16-битного MFM контроллера жестких дисков Western Digital на чипсете WD1010. Машина IBM 5170 (это полное название AT-шки) продавалась сразу с жестким диском и контроллером типа WD1003-WA. Поэтому "стандартный" 16-битный MFM контроллер не имеет BIOS-а на борту, он ему просто не нужен, т.к. драйвер содержится в основном BIOS-е материнской платы AT. Далее, оказывается, что контроллер "внутре" любого IDE диска полностью совпадает по системе команд и регистрам с MFM WD1003-WA (плюс расширения). Это нисколько не удивительно, поскольку стандарты IDE разрабатывала та же фирма Western Digital. Этот набор регистров и команд называется Task File, он стандартный и одинаковый у 16-битного MFM и у обычных IDE и работает одинаково. Поэтому машине AT с IDE диском и контроллером тоже не нужны никакие дополнительные BIOS-ы.
  
 Второе важное отличие AT286/386/+ - это наличие CMOS Clock. Это такие специальные часы с маленькой памятью на батарейке. В памяти хранятся настройки CMOS Setup, так что CMOS заменяет кучу переключателей. В одной из ячеек CMOS-памяти хранится так называемый "тип жесткого диска". На самом деле это просто индекс (номер) в большой таблице BIOS, где хранятся параметры C/H/S дисков. Количество таких фиксированных типов постоянно росло, доросло до 46 и в конце концов это всем надоело. Сделали User Type = 47, в котором количество дорожек, головок и секторов можно задавать вручную. Второе важное отличие AT286/386/+ - это наличие CMOS Clock. Это такие специальные часы с маленькой памятью на батарейке. В памяти хранятся настройки CMOS Setup, так что CMOS заменяет кучу переключателей. В одной из ячеек CMOS-памяти хранится так называемый "тип жесткого диска". На самом деле это просто индекс (номер) в большой таблице BIOS, где хранятся параметры C/H/S дисков. Количество таких фиксированных типов постоянно росло, доросло до 46 и в конце концов это всем надоело. Сделали User Type = 47, в котором количество дорожек, головок и секторов можно задавать вручную.
Line 45: Line 45:
 Подробнее в википедии: [[https://en.wikipedia.org/wiki/ST-506]] Подробнее в википедии: [[https://en.wikipedia.org/wiki/ST-506]]
  
-Способ записи (кодировка битов) на такой жесткий диск был MFM (Modified Frequency Modulation). Таким образом, по названию способа записи и сами жесткие диски стали называться MFM. А интерфейс для подключения у них был уже знакомый нам ST-506/412+Способ записи (кодировка битов) на такой жесткий диск был MFM (Modified Frequency Modulation) на скорости 5 Mbit/s. Таким образом, по названию способа записи и сами жесткие диски стали называться MFM. А интерфейс для подключения у них был уже знакомый нам ST-506/412.
- +
-Надо отметить, что, по сути, диск с интерфейсом ST-506/412 представляет из себя такой "цифровой магнитофон". То есть, выбрав дорожку 0 сторону 1 мы получаем по кругу одни и те же данные 3600 раз в минуту (60 раз в секунду) и плюс сигнал индекса на каждый оборот. Поэтому, в теории, записать на дорожку ST-506/412 можно **что угодно**, не только MFM, а любой поток битов <10MHz. Формированием и распознаванием "заголовков секторов" и выделением данных занимается контроллер. Поэтому, перед использованием нового жесткого диска, его надо отформатировать на вашем контроллере. Такая схема разбиения на сектора называется "Soft Sectors". Совместимость форматов дорожки между разными контроллерами - довольно посредственная. Например, если контроллеры сделаны на одинаковом чипсете (например WD), то совместимость скорее всего будет. А если на разных (WD и, например, OMTI) - то скорее всего нет.+
  
 +Надо отметить, что, по сути, диск с интерфейсом ST-506/412 представляет из себя такой "цифровой магнитофон". То есть, выбрав дорожку 0 сторону 1 мы получаем по кругу одни и те же данные (биты) 3600 раз в минуту (60 раз в секунду) и плюс сигнал INDEX на каждый оборот. Поэтому, в теории, записать на дорожку ST-506/412 можно **что угодно**, не только MFM, а любой поток битов <10MHz. Формированием и распознаванием "заголовков секторов" и выделением данных занимается контроллер. Поэтому, перед использованием нового жесткого диска, его надо отформатировать на вашем контроллере. Такая схема разбиения на сектора называется "Soft Sectors". Совместимость форматов дорожки между разными контроллерами - довольно посредственная. Например, если контроллеры сделаны на одинаковом чипсете (например WD), то совместимость скорее всего будет. А если на разных (WD и, например, OMTI) - то скорее всего нет.
 +{{ :mfm_track.jpg?direct&500 |Формат дорожки MFM контроллера на чипах WD10101}}
 Материалы для дополнительного чтения: Материалы для дополнительного чтения:
   * [[http://wiki.sensi.org/download/doc/st412_oemmanual_apr82.pdf|ST 506/412 OEM Manual]] Фирменное руководство от Seagate на диски ST-506 и ST-412   * [[http://wiki.sensi.org/download/doc/st412_oemmanual_apr82.pdf|ST 506/412 OEM Manual]] Фирменное руководство от Seagate на диски ST-506 и ST-412
Line 54: Line 54:
   * [[http://wiki.sensi.org/download/Seagate_ST-225_OEM_Manual_pages.pdf|Seagate ST-225 OEM Manual]]   * [[http://wiki.sensi.org/download/Seagate_ST-225_OEM_Manual_pages.pdf|Seagate ST-225 OEM Manual]]
   * [[http://www.minuszerodegrees.net/manuals.htm#Seagate|Другие модели Seagate]]   * [[http://www.minuszerodegrees.net/manuals.htm#Seagate|Другие модели Seagate]]
-  * Пример для изучения возможностей разгона ST-506/412: контроллер повышенной плотности [[http://wiki.sensi.org/download/doc/Perstor%20PS180-16F%20-%20Advertisement.pdf|Perstor PS180-16F]]+  * Пример для изучения возможностей разгона ST-506/412: контроллер повышенной плотности [[http://wiki.sensi.org/download/doc/Perstor%20PS180-16F%20-%20Advertisement.pdf|Perstor PS180-16F]] не MFM. 
 +  * [[https://www.pdp8online.com/mfm/mfm.shtml|MFM Hard Disk Reader/Emulator]] Эмулятор и считыватель дисков MFM. Знает множество форматов.
  
 ====== Шлейфы MFM ====== ====== Шлейфы MFM ======
Line 86: Line 87:
 http://www.minuszerodegrees.net/ibm_xebec/ibm_xebec.htm http://www.minuszerodegrees.net/ibm_xebec/ibm_xebec.htm
  
-Это было довольно интеллектуальное устройство на борту целый процессор Z80, ПЗУ с микрокодом, собственный контроллер DMA i8237 и т.д. Такая схемотехника не является строгим каноном, например, контроллеры WD1002-WX и Seagate ST-11M для XT в качестве процессора используют однокристальную ЭВМ i8051 и т.д.+Контроллер Xebec 1210 - довольно интеллектуальное устройствона борту целый процессор Z80, ПЗУ с микрокодом, собственный контроллер DMA i8237 и т.д. Такая схемотехника не является строгим каноном, например, контроллеры WD1002-WX и Seagate ST-11M для XT полностью совместимы, но в качестве процессора используют однокристальную ЭВМ i8051 и т.д.
  
-Контроллер Xebec 1210 поддерживал два жестких диска Seagate ST-412 и имел на борту ПЗУ (Optional ROM), то есть расширение BIOS. Интерфейс между BIOS и Optional ROM, как известно, является стандартом на IBM PC: во время POST процедуры BIOS материнской платы XT сканирует область дополнительных ROM и, если находит сигнатуру, пытается эти ROM запустить. Получив управление BIOS контроллера, в свою очередь, тестирует жесткий диск (читает 1-й сектор) и переписывает на себя вектора прерываний INT 13 и INT 19 (включается первым в цепочку). Если же диск неисправен - выводится ошибка 1701.+Контроллер Xebec 1210 поддерживал два жестких диска Seagate ST-412 и имел на борту ПЗУ (Optional ROM), то есть расширение BIOS. Интерфейс между BIOS и Optional ROM, как известно, является стандартом на IBM PC: во время POST процедуры BIOS материнской платы XT сканирует область дополнительных ROM и, если находит сигнатуру, пытается эти ROM запустить. Получив управление BIOS контроллера, в свою очередь, тестирует жесткий диск (читает 1-й сектор) и переписывает на себя вектора прерываний INT 13H и INT 19H (включается первым в цепочку). Если же диск неисправен - выводится ошибка 1701.
  
-Новый обработчик INT 13H добавляет поддержку устройства с номером 80H (и 81H для второго диска). Обработка старых устройств (как мы помним - флопиков с номерами 00H и 01H) передается предыдущему обработчику INT 13 (стрый адрес сохраняется на INT 40). Новый обработчик INT 19 меняет логику загрузки: сначала пытается загрузиться с флопика, а в случае неудачи - с первого жесткого диска (устройство 80H).+Новый обработчик INT 13H добавляет поддержку физических дисковых устройства с номером 80H (и 81H для второго диска). Обработка старых устройств (как мы помним - флопиков с номерами 00H и 01H) передается предыдущему обработчику INT 13H (стрый адрес сохраняется на INT 40H). Новый обработчик INT 19H меняет логику загрузки: сначала пытается загрузиться с флопика, а в случае неудачи - с первого жесткого диска (устройство 80H).
  
-BIOS контроллера XT использует некотрые ячейки [[http://stanislavs.org/helppc/bios_data_area.html|BDA]] (BIOS data area), а кроме того, он заполняет область FDPT (Fixed Disk Parameter Table), на которую указывает INT 41 (INT 46 для второго диска). Обратите внимание, этот вектор используется не для вызова, а именно как FAR-указатель на данные параметров жесткого диска. Указывать он может как прямо на таблицу в области ROM контроллера диска, так и в память. Для таблички FDPT часто используется или область старших прерываний (INT C0-C3 и INT C4-C7) которые не использует никто кроме ROM Basic, или область стека BIOS 0000:0500h, что конечно чревато ее затиранием. Иногда используют последний килобайт памяти 9000:FС00 (там же размещается EBDA (Extended BIOS Data Area)) и остается 639К вместо 640К. Для устройств от 82H и выше таблицы FDPT не ведется, их параметры можно узнать только через INT 13H функцию 8H.+BIOS контроллера XT использует некотрые ячейки [[http://stanislavs.org/helppc/bios_data_area.html|BDA]] (BIOS data area), а кроме того, он заполняет область FDPT (Fixed Disk Parameter Table), на которую указывает INT 41H (INT 46H для второго диска). Обратите внимание, этот вектор используется не для вызова, а именно как x86 FAR-указатель на данные параметров жесткого диска. Указывать он может как прямо на таблицу в области ROM контроллера диска, так и в память. Для таблички FDPT часто используется или область старших прерываний (INT C0-C3 и INT C4-C7) которые не использует никто кроме ROM Basic, или область стека BIOS 0000:0500h, что конечно чревато ее затиранием. Иногда используют последний килобайт памяти 9000:FС00 (там же размещается EBDA (Extended BIOS Data Area)) и остается 639К вместо 640К. Для устройств с нормерами от 82H и выше таблицы FDPT не ведется, их параметры можно узнать только через INT 13H функцию AH=8H.
  
-При старте MS-DOS опрашивает BIOS и FDPT на наличие жестких дисков в системе. Поддержка MS-DOS для жесткого диска устроена также несколько сложнее, чем для дискеты. Появилась поддержка Таблиц Разделов (Partition Table) и специальная программа FDISK в составе DOS (начиная с 2.0) для работы с разделами. Загрузчик в Boot Sector-е жесткого диска тоже несколько сложнее - он проверяет таблицу разделов и грузится с первого "активного" раздела. Когда загружается MS-DOS, он присваивает устройству 80H (а точнее, первому активному разделу) символическое имя C:, так как на уровне BIOS никаких имен нету, только номера.+При старте MS-DOS опрашивает BIOS и FDPT на наличие жестких дисков в системе. Поддержка MS-DOS для жесткого диска устроена также несколько сложнее, чем для дискеты. Появилась поддержка Таблиц Разделов (Partition Table) и специальная программа FDISK в составе DOS (начиная с 2.0) для работы с разделами. Загрузчик в Boot Sector-е жесткого диска тоже несколько сложнее - он проверяет таблицу разделов и грузится с первого "активного" раздела. Когда загружается MS-DOS, он присваивает устройству 80H (а точнее, первому активному разделу) символическое имя C:, так как на уровне BIOS никаких имен нету, только номера устройств.
  
 {{ wd1002.jpg?nolink&200}} {{ wd1002.jpg?nolink&200}}
-Следом за Xebec, другие производители также выпустили на рынок массу контроллеров для XT. Самой, пожалуй, популярной была серия Western Digital WD1002-WX. Благодаря тому, что IBM опубликовала полные спецификации, контроллеры WD были практически совместимы с Xebec на уровне регистров, хотя и сделаны на других чипах. Кроме WD часто встречались контроллеры фирм Longshine, DTC и SMC OMTI. Даже фирма Seagate поспешила на рынок со своими ST-11M и ST-11Rстранно что они сразу не выпустили контроллер ISA-8 для своего сверх-популярного диска ST-412. В СССР также выпускались машины с жестким диском MFM. ПЭВМ "Искра-1030" имела контроллер жесткого диска, повторяющим ранний WD1002-WX на микросхемах - клонах набора WD. ПЭВМ "ЕС-1841" имела контроллер - близкий аналог Xebec.+Следом за Xebec, другие производители также выпустили на рынок массу контроллеров для XT. Самой, пожалуй, популярной была серия Western Digital WD1002-WX. Благодаря тому, что IBM опубликовала полные спецификации, контроллеры WD были практически совместимы с Xebec на уровне регистров, хотя и сделаны на других чипах. Кроме WD часто встречались контроллеры фирм Longshine, DTC и SMC OMTI. Даже фирма Seagate поспешила на рынок со своими контроллерами ST-11M и ST-11R (странно что они сразу не выпустили контроллер XT ISA-8 для своего сверх-популярного диска ST-412). В СССР также выпускались машины с жестким диском MFM. ПЭВМ "Искра-1030" имела контроллер жесткого диска, повторяющим ранний WD1002-WX на микросхемах - клонах набора WD. ПЭВМ "ЕС-1841" имела контроллер - близкий аналог Xebec.
  
 Дополнительные материалы для чтения: Дополнительные материалы для чтения:
Line 116: Line 117:
 Встроенный форматтер на разных контроллерах имеет разный интеллект. В простейшем случае он просто начинает форматировать все дорожки/головки не задавая лишних вопросов, в других случаях ведет длинный диалог с пользователем. Вызов в BIOS тоже никуда не делся и появилось множество красивых диалоговых программ форматирования (они имеют проблемы с трансляцией, но об этом ниже). Встроенный форматтер на разных контроллерах имеет разный интеллект. В простейшем случае он просто начинает форматировать все дорожки/головки не задавая лишних вопросов, в других случаях ведет длинный диалог с пользователем. Вызов в BIOS тоже никуда не делся и появилось множество красивых диалоговых программ форматирования (они имеют проблемы с трансляцией, но об этом ниже).
  
-После низкоуровневого форматирования получается жесткий диск, у которого все сектора читаются-пишутся (если они не сбойные), но пока забиты нулями (или каким-то другим мусором). Чтобы диск увидела система (например DOS), необходимо создать на диске таблицу разделов (утилитой fdisk) и создать структуру файловой системы (утилитой format).+После низкоуровневого форматирования получается жесткий диск, у которого все сектора читаются-пишутся (если они не сбойные), но пока забиты нулями (или каким-то другим мусором). Чтобы диск увидела система (например DOS), необходимо создать на диске таблицу разделов (утилитой fdisk) и создать структуру и оглавление файловой системы (утилитой format).
  
 Дополнительные материалы для чтения: Дополнительные материалы для чтения:
Line 125: Line 126:
 ===== Геометрия ===== ===== Геометрия =====
 {{ ibm_hdd_1.jpg?nolink&200}} {{ ibm_hdd_1.jpg?nolink&200}}
-Как уже написано выше, диск MFM с физической точки зрения состоит из XXX дорожек (Cylinders) и YY головок (Heads) и "свободного" пространства на дорожке. Возникает два вопроса:+Как уже написано выше, диск MFM с физической точки зрения состоит из NNN дорожек (Cylinders) и YY головок (Heads) и "свободного" пространства на дорожке. Возникает два вопроса:
  
   * Каким образом дорожка форматируется на сектора ?   * Каким образом дорожка форматируется на сектора ?
Line 166: Line 167:
 Очень большое количество легенд связано с RLL дисками и контроллерами. Давайте разберемся. Очень большое количество легенд связано с RLL дисками и контроллерами. Давайте разберемся.
  
-Начнем с того, что [[wp>Run-length_limited|RLL]] - это на самом деле такой метод кодирования битового потока. Он хорош тем, что уменьшает количество перепадов (фронтов) в потоке. Для наиболее широко распространенного в контроллерах XT метода RLL(2,7) скорость уменьшается практически на 50%. Это позволяет поднять битовую скорость при сохранении той же полосы. В большинстве RLL контроллеров битовая скорость составляет 7.5Mbit/s, причем "скорость перепадов" и соответственно спектр сигнала получается не намного больше, чем у MFM на 5Mbit/s. Это позволяет записать больше информации на жесткий диск, но предъявляет повышенные требования к самому жесткому диску (минимальный джиттер - неравномерное вращение "блина", качественный маршевый двигатель, подшипники и головки, минимальные искажения в тракте чтения/записи) и к контроллеру (схема ФАПЧ).+Начнем с того, что [[wp>Run-length_limited|RLL]] - это на самом деле такой метод кодирования битового потока. Он хорош тем, что уменьшает количество перепадов (фронтов) в потоке. Для наиболее широко распространенного в контроллерах XT метода RLL(2,7) скорость уменьшается практически на 50%. Это позволяет поднять битовую скорость при сохранении той же полосы. В большинстве RLL контроллеров битовая скорость составляет 7.5Mbit/s, причем "скорость перепадов" и соответственно спектр сигнала получается не намного больше, чем у MFM на 5Mbit/s. Это позволяет записать больше информации на жесткий диск, но предъявляет повышенные требования к самому жесткому диску (нужен минимальный джиттер - неравномерное вращение "блина", качественный маршевый двигатель, подшипники и головки, минимальные искажения в тракте чтения/записи) и к контроллеру (схема ФАПЧ).
  
 Емкость нетрудно прикинуть. При скорости вращения 3600 RPM емкость дорожки составляет 1/60 * 7500000 = 125000 бит = 15625 байт то есть примерно 30.5 секторов по 512 байт. Из за требований организации промежутков и заголовков стабильно удается записать 26 секторов. Емкость нетрудно прикинуть. При скорости вращения 3600 RPM емкость дорожки составляет 1/60 * 7500000 = 125000 бит = 15625 байт то есть примерно 30.5 секторов по 512 байт. Из за требований организации промежутков и заголовков стабильно удается записать 26 секторов.
Line 183: Line 184:
  
 ===== Интерлив ===== ===== Интерлив =====
 +{{ :interleave-factor.jpg?nolink&300|}}
  
-Для чего придумали интерлив (чередование) ? Дело в том, что машины тогда были довольно медленные. XT вместе с контроллером просто не успевала обрабатывать поступающую информацию, и сектор на вращающемся диске успевал "убежать" из под считывающей головки. Чтобы прочитать следующий сектор N+1, надо было ждать целый оборот диска. Идея пришла очень простая. Поскольку все сектора имеют внутри номер, то сектора можно записывать не подряд. Например, у нас на дорожке секторов, и нам надо прочитать сектора 2 и 3. Записываем сектора в таком порядке:+Для чего придумали интерлив (чередование) ? Дело в том, что машины тогда были довольно медленные. XT вместе с контроллером просто не успевала обрабатывать поступающую информацию, и сектор на вращающемся диске успевал "убежать" из под считывающей головки. Чтобы прочитать следующий сектор N+1, надо было ждать целый оборот диска. Идея пришла очень простая. Поскольку все сектора имеют внутри номер, то сектора можно записывать не подряд. Например, у нас на дорожке 17 секторов, и нам надо прочитать сектора 2 и 3. Записываем сектора в таком порядке:
  
- 7 2 8 3 9+ 1 7 13 2 8 14 3 9 15 4 10 15 5 11 17 6 12
  
-Пока мы разбираемся с сектором 2 под головкой "проскакивают" сектора 5 и 8, а сектор 3 оказывается в нужное время в нужном месте. Тут получается интерлив 3:1, то есть один читаем, два пропускаем, читаем. Для чтения всех 9-ти секторов подряд нам нужно три оборота шпинделя. Соответственно, суммарная скорость "с блина" тоже падает, но зато нам не нужно ждать целый оборот для поиска следующего сектора. При интерливе 1:1 получилась бы самая высокая скорость, но далеко не все контроллеры и машины успевали обработать такой поток.+Пока мы разбираемся с сектором 2 под головкой "проскакивают" сектора 8 и 14, а сектор 3 оказывается в нужное время в нужном месте. Тут получается интерлив 3:1, то есть один читаем, два пропускаем, читаем. Для чтения всех 17-ти секторов подряд нам нужно три оборота шпинделя. Соответственно, суммарная скорость "с блина" тоже падает, но зато нам не нужно ждать целый оборот для поиска следующего сектора. При интерливе 1:1 получилась бы самая высокая скорость, но далеко не все контроллеры и машины успевали обработать такой поток.
  
-Программа форматирования большинства XT контроллеров позволяет задавать интерлив вручную. Как правило, оптимальное значение зависит от скорости материнской платы в TURBO моделях и модели контроллера. Обычно скорость плавно возрастает от примерно 80Кб/с на интерливе 6:1, а потом резко падает (сектора успевают "убежать"). На TURBO материках 12MHz и хорошем контроллере иногда достижим интерлив 2:1 и скорость передачи до 400Кб/с.+Программа форматирования большинства XT контроллеров позволяет задавать интерлив вручную. Как правило, оптимальное значение зависит от скорости материнской платы в TURBO XT моделях и модели контроллера. Обычно скорость плавно возрастает от примерно 80Кб/с на интерливе 6:1, а потом резко падает (сектора успевают "убежать"). На TURBO материках 12MHz и хорошем контроллере иногда достижим интерлив 2:1 и скорость передачи до 400Кб/с.
  
 Существуют несколько программ, которые могут подобрать оптимальный интерлив для данной комбинации материнской платы плюс контроллер, например OPTUNE или CALIBRATE. Существуют несколько программ, которые могут подобрать оптимальный интерлив для данной комбинации материнской платы плюс контроллер, например OPTUNE или CALIBRATE.
Line 204: Line 206:
 Краткий ответ такой: это во многом вопрос везения и добросовестности программистов Optional ROM. Краткий ответ такой: это во многом вопрос везения и добросовестности программистов Optional ROM.
  
-Кроме MFM и RLL контроллеров для XT существовали 8-битные SCSI адаптеры (например Seagate ST-01, Trantor T-130B или Future Domain TMC950). Недавно был разработан XTIDE контроллер для ISA-8 по мотивам платы Silicon Valley Computer ADP50L и контроллер Compact Flash. Все они имеют набортный BIOS (Optional ROM), обслуживают дисковый INT 13 и поддерживают загрузку через INT 19.+Тут надо учитывать, что существовал целый "зоопарк" различных дисковых решений. Кроме MFM и RLL контроллеров для XT существовали 8-битные SCSI адаптеры (например Seagate ST-01, Trantor T-130B или Future Domain TMC950 и т.д.). На закате XT существовали даже адаптеры для подключения 16-битного IDE: например Silicon Valley Computer ADP50L. Недавно был разработаны подобный XTIDE контроллер для ISA-8 и контроллер Compact Flash (XT CF Lite). Все они имеют набортный BIOS (Optional ROM), обслуживают дисковый INT 13 и поддерживают загрузку через INT 19.
  
 Самое первое требование к устройствам на шине ISA-8 - это отсутствие конфликтов по портам ввода-вывода I/O, прерываниям IRQ, каналам DMA и адресам размещения Optional ROM. Поскольку в XT нету никакой поддержки Plug-n-Play, отсутствие конфликтов целиком ложится на пользователя. Самое первое требование к устройствам на шине ISA-8 - это отсутствие конфликтов по портам ввода-вывода I/O, прерываниям IRQ, каналам DMA и адресам размещения Optional ROM. Поскольку в XT нету никакой поддержки Plug-n-Play, отсутствие конфликтов целиком ложится на пользователя.
Line 216: Line 218:
 ===== XT контроллер на AT ===== ===== XT контроллер на AT =====
  
-Что будет, если поставить 8-битный контроллер XT MFM/RLL в ISA-слот машины AT или выше ?+Что будет, если поставить 8-битный контроллер XT MFM/RLL в ISA-слот машины AT 286 или выше ?
  
-Как мы помним, в BIOS AT имеется драйвер "стандартного" 16-битного MFM контроллера WD1003-WA. Геометрия диска считывается из CMOS (точнее - считывается Тип Диска - индекс, а далее в таблице BIOS ищется геометрия).+Как мы помним, в BIOS-е AT-совместимых машин имеется драйвер "стандартного" 16-битного MFM контроллера WD1003-WA. Геометрия диска считывается из CMOS (точнее - считывается Тип Диска - индекс, а далее в таблице BIOS ищется геометрия).
  
-BIOS контроллера XT не использует ни CMOS ни таблицу типов и не перекрывается по портамм I/O (XT=320H и AT=1F0H), поэтому обычно он вполне совместим и с контроллером WD1003-WA и с IDE Task File (что как мы помним, практически то же самое). При этом BIOS AT работает со своими дисками, а BIOS контроллера XT - со своими. Если AT дисков нет (например, в BIOS AT стоит Drive Type = 0), то контроллер XT становится единственным, его диск получает номер 80H при старте его Optional ROM, а активный раздел на нем - букву C: после загрузки DOS.+BIOS контроллера XT не использует ни CMOS ни таблицу типов оттуда и не перекрывается по портам I/O (XT=320H против AT=1F0H), истользует одно младшее прерывание (обычно IRQ=5) и один канал DMA. Поэтому, теоретически, он аппаратно вполне совместим с AT контроллером WD1003-WA и с IDE Task File (что как мы помним, практически то же самое). При этом BIOS AT будет работать со своими дисками, а BIOS контроллера XT - со своими.  В действительности же, если к AT-машине подключить одновременно и XT-контроллер и использовать MFM/IDE диск, то тут всё зависит от аккуратности программистов обеих BIOS. Например, BIOS-ы могут "подраться" за FDPT, номер диска и т.д. Чаще всего такая конфигурация работает, но надо тестировать. Если AT-дисков в машине нет (например, в BIOS AT стоит Drive Type = 0), то контроллер XT становится единственным, его диск получает номер 80H при старте его Optional ROM, а активный раздел на нем - букву C: после загрузки DOS.
  
-Справедливости ради следует отметить, что существуют и "продвинутые" 16-bit ISA MFM/RLL контроллеры, которые не соответствуют WD1003-WA (например, Seagate ST-21/ST-22 или многие DTC) и которые имеют собственный BIOS на борту и "отзываются" на собственных I/O адресах. Как правило, они не используют данные из CMOS и прекрасно уживаются в качестве второго контроллера с WD1003-WA или единственными в системе. Такие "продвинутые" MFM/RLL карты очень напоминают SCSI ISA-16 контроллеры, также имеющие собственный BIOS.+Справедливости ради следует отметить, что существуют и "продвинутые" AT 16-bit ISA MFM/RLL контроллеры, которые не соответствуют WD1003-WA (например, Seagate ST-21/ST-22 или многие DTC) и которые имеют собственный BIOS на борту и "отзываются" на собственных I/O адресах. Как правило, они не используют данные из CMOS и прекрасно уживаются в качестве второго контроллера с WD1003-WA или единственными в системе. Такие "продвинутые" MFM/RLL карты очень напоминают SCSI ISA-16 контроллеры, также имеющие собственный BIOS. Для них надо проверить отутствие конфликтов за ресурсы шины ISA, но как правило, они тоже работают совместо с XT контроллерамии.
  
 ===== XT-BUS ===== ===== XT-BUS =====
 {{ tandon_hdd_mfm.jpg?nolink&300|WD HDD + Controller}} {{ tandon_hdd_mfm.jpg?nolink&300|WD HDD + Controller}}
-Большое количество вопросов связано с дисками XT-BUS. На самом деле, предком XT-BUS можно считать устройство типа [[wp>Hardcard]] (или WD FileCard). После изобретения малогабаритных 3-дюймовых жестких дисков некоторые фирмы выпустили ISA-8 карточки, содержащие контроллер и диск на одной раме (или длинной плате). Причем иногда электроника накопителя и контроллера настолько сливалась, что кабелей ST-506/412 просто не было. Поэтому, вполне логично было выпустить диски, имеющие **шлейф**, в котором фактически передается минимальный вариант шины ISA-8, а контроллер расположен прямо на плате электроники диска (XT Attachment).+Большое количество вопросов связано с дисками XT-BUS. На самом деле, предком XT-BUS можно считать устройство типа [[wp>Hardcard]] (или WD FileCard). После изобретения малогабаритных 3-дюймовых жестких дисков некоторые фирмы выпустили ISA-8 карточки, содержащие контроллер и диск на одной раме (или длинной плате). Причем иногда электроника накопителя и контроллера настолько сливалась, что кабелей ST-506/412 просто не было. Поэтому, вполне логично было выпустить диски, имеющие **шлейф**, в котором фактически передается минимальный вариант шины ISA-8, а контроллер расположен прямо на плате электроники диска (так называемый XT Attachment).
  
-Таким образом, XT-BUS шинаэто просто "удлинитель" урезанной шины ISA-8. На XT-BUS шлейф выведены "младшие" 2 линии адреса, 8 бит данных, сигналы дешифрации, Reset, а также заведены сигналы одного канала DMA и один IRQ. По набору команд контроллер "внутри" жесткого диска XT-BUS практически полностью соответствует ISA-8 контроллеру WD1002-WX и даже располагается на тех же адресах (320h или 324h). BIOS контроллера располагается "снаружи", на плате (а не внутри диска), в отдельной ПЗУ или входит в состав BIOS-а материнской платы (на EuroXT).+Таким образом, XT-BUS шина это просто "удлинитель" урезанной шины ISA-8. На XT-BUS-шлейф выведены "младшие" 2 линии адреса, 8 бит данных, сигналы дешифрации, Reset, а также заведены сигналы одного канала DMA и один IRQ. По набору командконтроллер "внутри" жесткого диска XT-BUS практически полностью соответствует ISA-8 контроллеру WD1002-WX и даже располагается на тех же адресах (320h или 324h). BIOS контроллера располагается "снаружи", на плате (а не внутри диска), в отдельной ПЗУ или входит в состав BIOS-а материнской платы (на EuroXT).
  
 XT-BUS **полностью НЕсовместим** с AT-BUS IDE, хотя использует такой же 40-жильный шлейф и IDC-коннекторы. Это становится понятно хотя бы по той причине, что "внутри" XT-BUS диска контроллер имитирует 8-битный WD1002-WX, а внутри AT-BUS IDE диска - 16-битный WD1003-WA с TaskFile. XT-BUS **полностью НЕсовместим** с AT-BUS IDE, хотя использует такой же 40-жильный шлейф и IDC-коннекторы. Это становится понятно хотя бы по той причине, что "внутри" XT-BUS диска контроллер имитирует 8-битный WD1002-WX, а внутри AT-BUS IDE диска - 16-битный WD1003-WA с TaskFile.
Line 289: Line 291:
  
 Фирма Conner выпускала "близнецы" - жесткие диски CP-2024XT и CP-2024AT c XT-BUS и AT-BUS (IDE) интерфейсом соответственно (и еще чуть позже пару CP-4044XT/CP-4044AT). Фирма Conner выпускала "близнецы" - жесткие диски CP-2024XT и CP-2024AT c XT-BUS и AT-BUS (IDE) интерфейсом соответственно (и еще чуть позже пару CP-4044XT/CP-4044AT).
 +
 +Дополнительное чтение: [[https://dosdays.co.uk/topics/xt_ide_vs_ide.php|What was 8-bit XT-IDE or XTA?]]
  
 ===== XT-BUS и терминология ===== ===== XT-BUS и терминология =====
Line 306: Line 310:
 Также следует упомянуть разработку "[[http://www.vcfed.org/forum/showthread.php?29202-XTIDE-Rev2|XT IDE]]" c Vintage Computer Forum. Это контроллер для шины ISA-8 для подключения обычных 16-битных IDE/ATA дисков. Название авторское и применяется именно для этой разработки. Также следует упомянуть разработку "[[http://www.vcfed.org/forum/showthread.php?29202-XTIDE-Rev2|XT IDE]]" c Vintage Computer Forum. Это контроллер для шины ISA-8 для подключения обычных 16-битных IDE/ATA дисков. Название авторское и применяется именно для этой разработки.
  
-Еще один интересный (но редко используемый) режим имеется у карточек Compact Flash. Как известно, электрический интерфейс Compact Flash может представляться или 16-bit шиной PCMCIA или шиной IDE. В режиме PCMCIA карточка Compact Flash работает как PCMCIA/ISA-16 контроллер IDE на "альтернативных" адресах 0x1e0 и т.д., а в режиме IDE - как обычный IDE "диск" (TrueIDE mode). Оказывается, в стандарте ATA-2 и Compact Flash определен дополнительный 8-битный режим работы для подключения Compact Flash к "простым" 8-битным системам (в ATA-3 этот режим пропал). Примерно 2/3 карт Compact Flash точно следуют спецификации и поддерживают 8-bit mode, а еще в этом режиме могут работать IBM Microdrive диски. Такой режим чрезвычайно упрощает схемотехнику ISA-8 контроллера, фактически он состоит из дешифратора адресов порта и BIOS. Компания LoTech выпускает адаптер для ISA-8 для Compact Flash ATA-2 карт: [[http://www.lo-tech.co.uk/wiki/Lo-tech_ISA_CompactFlash_Adapter_revision_2|ISA CompactFlash Adapter]]+К сожалению, сейчас нередко путают **XT-BUS** и **XT-IDE**. 
 + 
 +Еще один интересный (но редко используемый) режим имеется у карточек Compact Flash. Как известно, электрический интерфейс Compact Flash может представляться или 16-bit шиной PCMCIA или шиной IDE. В режиме PCMCIA карточка Compact Flash работает как PCMCIA/ISA-16 контроллер IDE на "альтернативных" адресах 0x1e0 и т.д., а в режиме IDE - как обычный IDE "диск" (TrueIDE mode). Оказывается, в стандарте ATA-2 и Compact Flash определен дополнительный 8-битный режим работы для подключения Compact Flash к "простым" 8-битным системам (в ATA-3 этот режим пропал). Примерно 2/3 карт Compact Flash точно следуют спецификации и поддерживают 8-bit mode, а еще в этом режиме могут работать IBM Microdrive диски. Такой режим чрезвычайно упрощает схемотехнику ISA-8 контроллера, фактически он состоит из дешифратора адресов порта и BIOS и панельки под ПЗУПример такого адаптера: [[http://www.malinov.com/Home/sergeys-projects/xt-cf-lite|XT CF Lite]]. Также компания LoTech выпускает адаптер для ISA-8 для Compact Flash ATA-2 карт: [[http://www.lo-tech.co.uk/wiki/Lo-tech_ISA_CompactFlash_Adapter_revision_2|ISA CompactFlash Adapter]].
  
 Дополнительные материалы для чтения: Дополнительные материалы для чтения:
Navigation