- •1. Передача память-память (Memory-to-memory dma).
- •5. Сжатие времени передачи (Compressed transfer timing).
- •Interrupt Controller, pic) реализует векторную систему
- •Inta (подтверждение прерывания), после чего сбрасывается в 0
- •0 Происходят прерывания от таймера). Так как вектора аппаратных
- •In al,61h ;порт рв
- •In al,61h ;порт рв
- •In al,61h ;порт рв
- •Xor ax,ax ; вычисляем смещение до страницы
- •256, 512 Или 1024 байта), мультисекторные и мультидорожечные
- •50H при форматировании);
- •8 Или 9 секторов на дорожке
- •82072 Поддерживает еще 4 команды:
- •Xor al,1 ;сбросить бит 0
- •8250, Оснащенный 25- или 9- штырьковым разъемом на задней стенке
50H при форматировании);
DTL - число считываемых/записываемых байт (действительно
при N = 0);
ST0 - ST3 - байты состояния ST0-ST3;
STP - межсекторное смещение;
SRT - время скорости шага в милисекундах (обычно 0Dh);
HUT - время разгрузки головки в единицах по 16 милисекунд
(обычно = 0Fh);
HLT - время загрузки головки в единицах по 2 милисекунды
(обычно = 1);
ND=0 - режим работы с использованием ПДП, =1 - режим работы
без использования ПДП;
NCN - номер цилиндра после поиска;
PCN - номер текущего цилиндра;
SC - количество секторов на цилиндре;
D - символ-заполнитель для разметки (обычно 0F6h).
- 81 -
E8.3.2. Структура байтов состоянияF
Байт состояния ST0:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │ Биты:
└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ─────
│ │ │ │ │ │ └───┴─> 0-1: номер накопителя (0 - 3)
│ │ │ │ │ └─────────> 2: номер головки
│ │ │ │ └─────────────> 3: НГМД не готов при обмене
│ │ │ └─────────────────> 4: Сигнал "ошибка" НГМД или
│ │ │ дорожка 0 не найдена после 77
│ │ │ шагов рекалибровки
│ │ └─────────────────────> 5: команда поиска завершена
└───┴─────────────────────────> 6: код прерывания:
00-нормальное завершение команды
01-ненормальное завершение
10-недействительная команда
11-в фазе выполнения измени-
лась готовность дисковода
Бит 2 (номер головки) после выполнения команды поиска
всегда равен 0, независимо от того, на какой головке
осуществлялся поиск.
Бит 3 будет всегда равен 1, если на дисководе с одной
головкой вы попробуете обратиться к стороне 1 (допустима только
сторона 0).
Байт состояния ST1:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ 0 │ │ │ 0 │ │ │ │ Бит:
└─┬─┴───┴─┬─┴─┬─┴───┴─┬─┴─┬─┴─┬─┘ ────
│ │ │ │ │ └─> 0: 1=не найден маркер иденти-
│ │ │ │ │ фикатора сектора
│ │ │ │ └─────> 1: 1=дискета защищена от
│ │ │ │ записи
│ │ │ └─────────> 2: 1=искомый сектор не найден
│ │ └─────────────────> 4: 1=таймаут запросов на
│ │ передачу данных
│ └─────────────────────> 5: 1=ошибка CRC в поле иденти-
│ фикации или в поле данных
└─────────────────────────────> 7: 1=конец цилиндра (попытка
обращения к сектору после
обращения к последнему сектору
последнего цилиндра)
- 82 -
Байт состояния ST2:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ 0 │ │ │ │ │ │ │ │ Бит:
└───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ───
│ │ │ │ │ │ └─> 0: 1=не найден маркер данных
│ │ │ │ │ │ или удаленных данных
│ │ │ │ │ └─────> 1: 1=сбойный цилиндр
│ │ │ │ └─────────> 2: 1=сканирование выполнено
│ │ │ │ неудовлетворительно
│ │ │ └─────────────> 3: 1=при сканировании выполне-
│ │ │ но условие "равно"
│ │ └─────────────────> 4: 1=неверный номер цилиндра в
│ │ идентификаторе сектора
│ └─────────────────────> 5: 1=ошибка CRC в поле данных
└─────────────────────────> 6: 1=в идентификаторе сектора
обнаружен адресный маркер
удаленных данных
Байт ST3:
7 6 5 4 3 2 1 0
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │ Бит:
└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ────
│ │ │ │ │ │ └───┴─> 0-1: номер накопителя
│ │ │ │ │ └─────────> 2: номер головки
│ │ │ │ └─────────────> 3: 1=сигнал "двусторонний"
│ │ │ │ от НГМД
│ │ │ └─────────────────> 4: 1=сигнал "Дорожка 0" от
│ │ │ НГМД
│ │ └─────────────────────> 5: 1=сигнал "Готовность" от
│ │ НГМД
│ └─────────────────────────> 6:1=сигнал "Защита от записи"
│ от НГМД
└─────────────────────────────> 7: 1=сигнал "Ошибка" от НГМД
- 83 -
E8.4. Формат дорожкиF
Индикатором начала дорожки служит индексное отверстие.
Запись на дорожку осуществляется в несколько приемов. При
форматировании дорожка перезаписывается полностью. При операциях
записи перезаписываются отдельные сектора, что влечет за собой
сбой намагниченности диска в месте обрыва записи, причем
физическая длина сектора при его перезаписи не всегда точно
совпадает с длиной ранее имевшегося на этом месте сектора,
разница в длине может составлять до 4 - 5 бит даже при
перезаписи на одном дисководе в одно время. Для синхронизации
после сбоев на дорожке имеются зазоры и синхрозоны. В общем виде
формат дорожки можно изобразить следующим образом:
┌────────────────────────────┐
│ │ Определяется индексным
│ Индекс │ отверстием
│ │
├────────────────────────────┤
│ │
│ Зазор индекса │ 80 байт 4Eh
│ │
├────────────────────────────┤
│ │ 12 байтов 00h, 3 байта 0C2h,
│ Заголовок дорожки │ 1 байт 0FCh, 50 байтов 4Eh
│ │
├────────────────────────────┤
│ │
│ 1-й сектор │ 574 байта
│ │
├────────────────────────────┤
│ │
│ Межсекторный промежуток │ 80 байт 4Eh
│ │
├────────────────────────────┤