| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| hddxt [2024/02/29 11:08] – [Геометрия] admin | hddxt [2025/09/12 06:03] (current) – [Шлейфы MFM] admin |
|---|
| ====== BIOS XT и HDD ====== | ====== BIOS XT и HDD ====== |
| |
| Как известно, компьютер [[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. | Как известно, компьютер [[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 и шрифты для них. Выбор типа контроллера видео осуществляется с переключателей на материнской плате. |
| |
| На 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. |
| |
| Стандартный 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 (ПЗУ) платы контроллера. |
| | |
| | Стандартный BIOS XT обрабатывает также вызов INT 19 (Boot) и поддерживает загрузку с нулевого устройства, которое, как несложно догадаться, является флопиком 360К. Фактически, обработчик INT 19 состоит из вызова INT 13 "Прочитать сектор" c первого сектора дискеты (Boot Sector) в память по адресу 0000:7С00H (на 1Кб меньше 32К). Если в конце сектора есть сигнатура AAH/55H, то это скорее всего нормальный Boot Sector и 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-ы. | Важное отличие 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, в котором количество дорожек, головок и секторов можно задавать вручную. |
| |
| **UPD** Для совсем нердов - последние редакции BIOS для IBM PС XT 5160 умеют работать с флопиками 1.2Mb. Но для этого нужно заменить штатный контроллер флопиков на контроллер с поддержкой высокой плотности. | **UPD** Для совсем нердов - последние редакции BIOS для IBM PС XT 5160 умеют работать с флопиками 1.2Mb. Но для этого нужно заменить штатный контроллер флопиков на контроллер с поддержкой высокой плотности. |
| |
| {{ st412_s.jpg?nolink&160|Seagate ST-412}} | {{ st412_s.jpg?nolink&160|Seagate ST-412}} |
| Компьютер IBM PC XT 5160 в отличии от просто IBM PC 5150 продавался уже с жестким диском аж на 10 магабайт. В качестве поставщика IBM выбрала популярного тогда производителя винтов Seagate с моделью диска ST-412. Компания Seagate к тому времени уже была известна как производитель жестких дисков для мини-компьютеров, например она выпускала жесткий диск ST-506 на 5 мегабайт, который применялся в мини-компьютерах DEC (RD50) с точно такими же шлейфами. Вскоре и другие производители выпустили множество совместимых моделей: Western Digital, Kalok, Tandon, Micropolis e.t.c. Таким образом, интерфейс модели винтов ST-506/412 фирмы Seagate стал де-факто "стандартом" в отрасли персоналок и названием интерфейса для подключения древних жестких дисков. | Компьютер IBM PC XT 5160 в отличии от просто IBM PC 5150 продавался уже с жестким диском аж на 10 магабайт. В качестве поставщика IBM выбрала популярного тогда производителя винтов Seagate с моделью диска ST-412. Компания Seagate к тому времени уже была известна как производитель жестких дисков для мини-компьютеров, например она выпускала жесткий диск ST-506 на 5 мегабайт, который применялся в мини-компьютерах DEC (под имененм RD50) с точно такими же шлейфами. Вскоре и другие производители выпустили множество совместимых моделей: Western Digital, Kalok, Tandon, Micropolis e.t.c. Таким образом, интерфейс модели винтов ST-506/412 фирмы Seagate стал де-факто "стандартом" в отрасли персоналок и названием интерфейса для подключения древних жестких дисков. |
| |
| Подробнее в википедии: [[https://en.wikipedia.org/wiki/ST-506]] | Подробнее в википедии: [[https://en.wikipedia.org/wiki/ST-506]] |
| Способ записи (кодировка битов) на такой жесткий диск был MFM (Modified Frequency Modulation) на скорости 5 Mbit/s. Таким образом, по названию способа записи и сами жесткие диски стали называться MFM. А интерфейс для подключения у них был уже знакомый нам ST-506/412. | Способ записи (кодировка битов) на такой жесткий диск был MFM (Modified Frequency Modulation) на скорости 5 Mbit/s. Таким образом, по названию способа записи и сами жесткие диски стали называться MFM. А интерфейс для подключения у них был уже знакомый нам ST-506/412. |
| |
| Надо отметить, что, по сути, диск с интерфейсом ST-506/412 представляет из себя такой "цифровой магнитофон". То есть, выбрав дорожку 0 сторону 1 мы получаем по кругу одни и те же данные 3600 раз в минуту (60 раз в секунду) и плюс сигнал INDEX на каждый оборот. Поэтому, в теории, записать на дорожку 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) - то скорее всего нет. Вот пример разметки дорожки контроллером WD из документации: |
| | {{ :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 |
| * [[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]] не MFM. | * Пример для изучения возможностей разгона 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 ====== |
| |
| * Шлейф (собственно сам кабель) - [[wp>Ribbon cable]] (ленточный кабель) - толщина [[wp>American_wire_gauge|AWG24]] на 34 и 20 проводников соответственно. | * Шлейф (собственно сам кабель) - [[wp>Ribbon cable]] (ленточный кабель) - толщина [[wp>American_wire_gauge|AWG24]] на 34 и 20 проводников соответственно. |
| * Коннектор краевого разъема 34 пин - EC34, AMP P/N 88373-3, Molex 15-35-1351 или совместимый. | * Коннектор краевого разъема 34 пин - EC34, AMP P/N 88373-3, Molex 15-35-1351 или совместимый. (Такой же, как для 5" флопов). |
| * Коннектор краевого разъема 20 пин - EC20, AMP P/N 88373-6, Molex 15-35-1201 или совместимый. | * Коннектор краевого разъема 20 пин - EC20, AMP P/N 88373-6, Molex 15-35-1201 или совместимый. |
| * Коннекторы для присоединения к контроллеру - IDC, [[wp>Insulation-displacement connector]] на 34 и 20 пинов. | * Коннекторы для присоединения шлейфа к контроллеру - IDC, [[wp>Insulation-displacement connector]] на 34 и 20 пинов. |
| * Номинал резисторов для терминирования - сборка 220/330 ом. | * Номинал резисторов для терминирования - сборка 220/330 Ом SIP или DIP. |
| |
| Для упрощения подключения жестких дисков часто применяют управляющий кабель "с перекруткой". Аналогичная схема часто применяется для кабеля флоппи-дисков. В этом случае, все флоппи-диски переключаются на адрес B: (DS1), а "перекруткой" жил кабеля подменяют сигналы DS0 и DS1. C кабелем MFM можно проделать то же самое, только перекручиваются [[http://minuszerodegrees.net/misc/floppy_vs_hard.jpg|другие жилы]]. | Для упрощения подключения жестких дисков часто применяют управляющий кабель "с перекруткой". Аналогичная схема часто применяется для кабеля флоппи-дисков. В этом случае, все флоппи-диски переключаются на адрес B: (DS1), а "перекруткой" жил кабеля подменяют сигналы DS0 и DS1. C кабелем MFM можно проделать то же самое, только перекручиваются [[http://minuszerodegrees.net/misc/floppy_vs_hard.jpg|другие жилы]]. |
| |
| Дополнительные материалы для чтения: | Дополнительные материалы для чтения: |
| * [[http://www.minuszerodegrees.net/ibm_xebec/ibm_xebec_llf_debug.htm|Low-Level Format Via DEBUG]] Как отформатировать диск через DEBUG и вызовы BIOS | |
| * [[https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0|Форматирование диска]] | * [[https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0|Форматирование диска]] |
| | * [[https://www.minuszerodegrees.net/hdd/MFM%20hard%20drive%20-%20Low-level%20format.htm|IBM PC Family - Low-Level Format on MFM and RLL Hard Drives]] |
| | * [[http://www.minuszerodegrees.net/ibm_xebec/ibm_xebec_llf_debug.htm|Low-Level Format Via DEBUG]] Как отформатировать диск через DEBUG и вызовы BIOS |
| | |
| ====== Разное ====== | ====== Разное ====== |
| |
| Пока мы разбираемся с сектором 2 под головкой "проскакивают" сектора 8 и 14, а сектор 3 оказывается в нужное время в нужном месте. Тут получается интерлив 3:1, то есть один читаем, два пропускаем, читаем. Для чтения всех 17-ти секторов подряд нам нужно три оборота шпинделя. Соответственно, суммарная скорость "с блина" тоже падает, но зато нам не нужно ждать целый оборот для поиска следующего сектора. При интерливе 1:1 получилась бы самая высокая скорость, но далеко не все контроллеры и машины успевали обработать такой поток. | Пока мы разбираемся с сектором 2 под головкой "проскакивают" сектора 8 и 14, а сектор 3 оказывается в нужное время в нужном месте. Тут получается интерлив 3:1, то есть один читаем, два пропускаем, читаем. Для чтения всех 17-ти секторов подряд нам нужно три оборота шпинделя. Соответственно, суммарная скорость "с блина" тоже падает, но зато нам не нужно ждать целый оборот для поиска следующего сектора. При интерливе 1:1 получилась бы самая высокая скорость, но далеко не все контроллеры и машины успевали обработать такой поток. |
| |
| Программа форматирования большинства XT контроллеров позволяет задавать интерлив вручную. Как правило, оптимальное значение зависит от скорости материнской платы в TURBO XT моделях и модели контроллера. Обычно скорость плавно возрастает от примерно 80Кб/с на интерливе 6:1, а потом резко падает (сектора успевают "убежать"). На TURBO материках 12MHz и хорошем контроллере иногда достижим интерлив 2:1 и скорость передачи до 400Кб/с. | Программа форматирования большинства XT контроллеров позволяет задавать интерлив вручную. Как правило, оптимальное значение зависит от скорости материнской платы (в TURBO XT моделях) и модели контроллера. Обычно, на стандартной XT с контроллером Xebec скорость плавно возрастает до примерно 80Кб/с на интерливе 6:1, а при уменьшении интерлива резко падает (сектора успевают "убежать"). На быстрых TURBO XT материках 12MHz и хорошем контроллере иногда достижим интерлив 2:1 и скорость передачи до 400Кб/с. |
| |
| Существуют несколько программ, которые могут подобрать оптимальный интерлив для данной комбинации материнской платы плюс контроллер, например OPTUNE или CALIBRATE. | Существуют несколько программ, которые могут подобрать оптимальный интерлив для данной комбинации материнской платы плюс контроллер, например OPTUNE или CALIBRATE. |
| Большое количество вопросов связано с дисками 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 контроллеру Xebec или 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. |