Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
hddxt [2022/09/05 13:45] – [BIOS XT и HDD] admin | hddxt [2022/09/05 14:04] – [Контроллеры для XT и их BIOS] admin |
---|
* Драйвер клавиатуры ([[https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%B0%D0%BD-%D0%BA%D0%BE%D0%B4|сканкоды]] типа 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А. |
| |
Контроллер 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 13 и INT 19 (включается первым в цепочку). Если же диск неисправен - выводится ошибка 1701. |
| |
Новый обработчик INT 13H добавляет поддержку устройства с номером 80H (и 81H для второго диска). Обработка старых устройств (как мы помним - флопиков с номерами 00H и 01H) передается предыдущему обработчику INT 13 (стрый адрес сохраняется на INT 40). Новый обработчик INT 19 меняет логику загрузки: сначала пытается загрузиться с флопика, а в случае неудачи - с первого жесткого диска (устройство 80H). | Новый обработчик INT 13H добавляет поддержку физических дисковых устройства с номером 80H (и 81H для второго диска). Обработка старых устройств (как мы помним - флопиков с номерами 00H и 01H) передается предыдущему обработчику INT 13 (стрый адрес сохраняется на INT 40). Новый обработчик INT 19 меняет логику загрузки: сначала пытается загрузиться с флопика, а в случае неудачи - с первого жесткого диска (устройство 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 41 (INT 46 для второго диска). Обратите внимание, этот вектор используется не для вызова, а именно как 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 функцию 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. |
| |
Дополнительные материалы для чтения: | Дополнительные материалы для чтения: |