Работа с дисками
Рефераты >> Кибернетика >> Работа с дисками

Порт 3F7h работает на запись и чтение, он используется только в IBM PC/AT.

При записи в этот порт биты 0-1 определяют скорость передачи данных:

Биты

Скорость передачи данных, Кбайт/с

00

500 (высокая плотность HD)

01

300 (двойная плотность DD)

10

250 (одинарная плотность SD)

11

Зарезервировано

Приведем назначение отдельных бит порта 3F7h при чтении из него:

Биты

Назначение

0

1 - выбран НГМД 0

1

1 - выбран НГМД 1

2-5

Выбраны головки : бит 2 соответствует головке 0, бит 3 - головке 1 и т. д.

6

Переключатель записи

7

1 - признак замены дискеты

4.2 Команды для контроллера НГМД.

Контроллер НГМД может выполнять 15 операций, или команд. Команда разделяется на три фазы - командная фаза, фаза выполнения, фаза результата. В командной фазе программа должна передать контроллеру всю информацию, необходимую для команды. В фазе выполнения команда выполняется, и в фазе результата программа получает от контроллера информацию о состоянии контроллера.

Информация, необходимая для команды, передается контроллеру через порт данных 3F5h. В соответствии с форматом команды программа должна последовательно вывести в этот порт код команды и все параметры.

Прежде чем программа начнет командную фазу, она должна убедиться в том, что контроллер завершил выполнение предыдущей операции и готов к приему команды. Для этого программа должна прочитать байт основного состояния контроллера из порта с адресом 3F4h и проверить биты 6 и 7. Бит 6 должен быть установлен в 0. Это означает, что данные будут передаваться от процессора к контроллеру. Бит 7 должен быть установлен в 1 - это готовность контроллера к приему команды.

Фаза выполнения начинается после установки битов 6 и 7 байта основного состояния в 1. После завершения команды контроллер формирует сигнал запроса прерывания.

В фазе результата процессор считывает состояние контроллера. Это состояние хранится в нескольких внутренних регистрах контроллера:

• RS - регистр основного состояния;

• ST0, ST1, ST2, ST3 - регистры дополнительного состояния.

Регистр основного состояния доступен через порт 3F4h, содержимое остальных регистров процессор считывает после выполнения контроллером команды через порт данных 3F5h.

В форматах команд и таблицах, приведенных ниже, используются следующие обозначения:

Обозначение

Описание

MT

Двухсторонняя операция

MFM

Двойная/одинарная плотность записи

SK

Пропуск удаленных данных

HDS

Номер головки для двухстороннего НГМД

DS1, DS0

Номер выбираемого НГМД

C

Номер цилиндра

H

Номер головки для двухстороннего НГМД

R

Номер сектора

N

Число байт в секторе

EOT

Номер последнего сектора на дорожке

GPL

Размер промежутка

DTL

Количество считываемых или записываемых байт

SC

Количество секторов в цилиндре

D

Данные

PCN

Номер цилиндра после выполнения команды чтения состояния прерывания

SRT

Время шага, мс

HUT

Время разгрузки головки

HLT

Время загрузки головки

ND

Режим прерывания

NCN

Номер цилиндра после поиска

Приведем форматы всех команд контроллера НГМД.

  • Чтение данных

MT

MFM

SK

0

0

1

1

0

0

0

0

0

0

HDS

DS1

DS0

  • Чтение удаленных данных

MT

MFM

SK

0

1

1

0

0

0

0

0

0

0

HDS

DS1

DS0


Страница: