поддерживает размеры сектора дискет 128, 256, 512 и 1024 байта,
однако используется сектор размером 512 байт и, по-видимому, это
в ближайшее время не изменится ( если и измениться, то только в
сторону увеличения ).
Структура формата дорожки зависит от типа контроллера, но, как
правило, включает в себя байты синхронизации, указывающие на на-
чало каждого сектора, идентификационные заголовки, cостоящие из
номера цилиндра, головки, сектора и размера сектора, и поля, хра-
нящего байты циклического контроля, предназначеные для обнаруже-
ния ошибок при считывании данных и служебной информации. На сле-
дующем рисунке представлен формат дорожки для стандарта IMB 34.
индекс
───┐ ┌───────────────────────────────────────────────────────────
│ │
└─┘
──┬────────┬───────┬──────┬──────────┬──∙∙──┬──────────┬─────────
│ gap4a │ index │ gap1 │ sector 1 │ │ sector n │ gap4b
──┴────────┼───────┼──────┼──────────┼──∙∙──┴──────────┴─────────
┌────┘ └───┐ │ │
├───────┬────────┤ │ │
│ sync │ IAM │ │ │
└───────┴────────┘ │ │
┌──────┘ └───┐
├────────┬────────────┤
│ header │ data field │
├────────┴────────────┤
┌────────────────┘ └──────────────────────┐
├─────┬─────┬─┬─┬─┬─┬────┬──────┬─────┬─────┬──────┬────┬─────┤
│ sync│ SAM │c│h│r│n│ crc│ gap2 │ sync│ DAM │ data │ crc│ gap3│
└─────┴─────┴─┴─┴─┴─┴────┴──────┴─────┴─────┴──────┴────┴─────┘
На приведенной выше схеме :
┌────────┬──────────────────────────────────┬───────────┬──────┐
│ Обозн. │ Назначение поля │ Содержимое│ Длина│
├────────┼──────────────────────────────────┼───────────┼──────┤
│ GAP4A │ Предындексный зазор дорожки │ 4E │ 50 │
│ SYNC │ Поле синхронизации │ 00 │ 0C │
│ IAM │ Адресный маркер начала дорожки─┬─┼── C2* │ 3 │
│ │ └─┼── FC │ 1 │
│ SAM │ Маркер начала сектора──────────┬─┼── A1 │ 3 │
│ │ └─┼── FE │ 1 │
│ C │ Номер цилиндра │ -- │ 1 │
│ Н │ Номер головки │ -- │ 1 │
│ R │ Номер сектора │ -- │ 1 │
│ N │ Код размера сектора │ -- │ 1 │
│ CRC │ Контрольный код │ -- │ 2 │
│ GAP2 │ Зазор заголовка сектора │ 4E │ 16 │
│ DAM │ Маркер начала данных───────────┬─┼── A1 │ 3 │
│ │ └─┼── FB │ 1 │
│ GAP3 │ Зазоp области данных │ 4E │ 50 │
│ data │ Данные │ -- │ ** │
│ GAP4B │ Зазор дорожки │ 4E │ *** │
└────────┴──────────────────────────────────┴───────────┴──────┘
* - _^^&Данные поля записываются со специально нарушенными битами
_^^&синхронизации.
** - _^^&Длина данных определяется по формуле 128*2^N, где N - код
_^^&длины из заголовка сектора: от 0 (128б) до 7 (16384б).
*** - _^^&Длина определяется оставшимся расстоянием до индексного от-
_^^&верстия и зависит только от скорости вращения дисковода в
_^^&момент форматирования.
Поля GAP1..GAP4 служат прежде всего для организации задержки
при выдачи порций данных с дискеты, а также для компенсации раз-
бросов физической длины различных полей, возникающих из-за несо-
вершенства механизма дисковода ( конкретнее, из-за нестабильнос-
ти вращения ). Маркеры служат для выделения определенных облас-
тей на диске: идентификатора дорожки, заголовка сектора или об-
ласти данных. Для того что бы маркеры можно было отличить от дан-
нных, их записывают со специально нарушенным кодом синхронизации.
Четвертый байт маркера обозначает тип выделяемой им области. Кон-
кретно в маркере области данных значение fb соответствует обыч-
ным данным, а f8 - удаленным.
Целостность информации в областях данных контролируется с по-
мощью циклического контрольного кода, контрольные числа которого
записываются после определенных областей. При считывании с диске-
ты контроллер самостоятельно высчитывает контрольную сумму, а за-
тем сравнивает ее со считанной с диска. Эта контрольная сумма,
называемая _ кодом циклического контороля __( CRC - Cyrcle Redundency
Contol ), подсчитывается с помощью полинома следующего вида :
X__16__ + X__12__ + X__5__ + X + 1
В случае несовпадении этих двух чисел выставляется флаг ошибки.
_@ Интерфейс адаптера НГМД
Функции сигналов адаптера НГМД следующие:
┌─────────────┬─────────────────────────────────────────────────┐
│Наименование │ Выполняемая функция │
├─────────────┼─────────────────────────────────────────────────┤
│High/Normal │ Используется для переключения схем записи/чтения│
│ │ для работы с нормальной и высокой плотностью │
│Index │ Перепад напряжения с высокого уровня на низкий │
│ │ при обнаружение индексного отверстия │
│Select │ Выбор накопителя ( присутствует постоянно ) │
│Mot │ Включение мотора дисковода │
│Direction │ Направление перемешения головок при сигнале Step│
│ │ низкий уровень - к центру дискеты; │
│ │ высокий уровень - к краю дискеты; │
│Step │ Перемещеие головок на одну дорожку │
│Write data │ Запись информации, каждый импульс вызывает │
│ │ изменение магнитного потока на обратный │
│Write gate │ Разрешение записи информации │
│Track 0 │ Перемещене головок к началу дискеты │
│Write │ Запрет записи на дискеты ( сигнал появляется при│
│ protected │ присутствии дискеты с защитной наклейкой ) │
│Read data │ Перепад напряжения с высокого уровня на низкий │
│ │ соответствуют обнаружению на дискете перехода │
│ │ намагниченности. │
│Select head │ Выбор головки для чтения/записи │
│ │ низкий уровень - головка 1; │
│ │ высокий уровень - головка 0; │
│Ready │ Дискета готова к работе │
│Disk change │ Вставлена новая дискета │
└─────────────┴─────────────────────────────────────────────────┘
Полярность всех сигналов интерфейса (кроме тех, где указано иное)
отрицательная. Сигналы Disk change и High/Normal в IBM PC/XT не
используются.
_@ Логическая организация диска
Первая операция, которую необходимо выполнить перед тем, как
дискета будет готова к использованию - это форматирование. Этот
процесс позволяет придать диску его окончательную структуру. В
ходе форматирования определяется количество дорожек и число сек-
торов на дорожке.
MS-DOS предусматривает четыре логических области дискеты:
- _ загрузочный сектор ( boot record )
- _ таблица размещения файлов ( file allocation table )
- _ корневой каталог
- _ область данных
_"Загрузочный сектор
Содержит короткую ( менее 512 байт ) программу начальной загруз-
ки ОС в память компьютера. Независимо от типа ОС и способа форма-
тирования дискеты, эта программа _ всегда__ занимает самый первый
сектор на самом первой дорожке диска. Следуетразличать _ Boot
_ record __и _ Master__ _ Boot record. __Первый находится на дискеты в слу-
чае если эта дискета не системная. Второй же находится исключи-
тельно на системных дисках. Также этот сектор содержит всю важ-
ную информацию о характеристиках диска. Структура этой информации
следующая :
┌────────┬─────────────────┬────┬─────────────────────────────────┐