4.3 Использование команд контроллера НГМД.
Выполнив сброс контроллера, вам надо его проинициализировать, указав все рабочие параметры. Затем можно выдавать контроллеру команды, каждый раз проверяя регистр основного состояния ST и анализируя байты результата ST0...ST3. Можно предложить следующую последовательность действий:
• сброс контроллера выдачей в порт 3F2h байта с битом 2, установленным в 0;
• разрешение работы контроллера выдачей в этот же порт байта с битом 2, установленным в 1;
• выдача контроллеру команды "Инициализация";
• выдача контроллеру команды "Определить параметры";
• включение двигателя и ожидание в течение примерно 0,5 с (время разгона двигателя);
• установка головки в нужное положение командой "Поиск";
• проверка результатов установки командой "Чтение состояния прерывания";
• для IBM PC/AT установка нужной скорости передачи данных выдачей в порт 3F7h байт с соответствующим значением: 0 для дискет с высокой плотностью записи (HD), 1 для двойной плотности (DD) и 2 для одинарной (SD);
• если установка головок выполнена правильно, можно выдавать команды чтения или записи данных (перед этим надо правильно запрограммировать контроллер прямого доступа к памяти, если вы собираетесь использовать режим ПДП).
4.4 Немного о контроллере прямого доступа к памяти.
Приведем основные сведения, необходимые для того чтобы разобраться в программе, демонстрирующей использование команд контроллера НГМД.
Контроллер прямого доступа к памяти (ПДП) имеет несколько каналов и для IBM PC/AT состоит из двух микросхем Intel 8237A (или аналогичных). Контроллер НГМД использует канал с номером 2.
Перед началом инициализации контроллера ПДП программа должна послать в порты 0Bh и 0Ch код операции, которая будет выполняться - 46h для операции чтения и 4Ah для операции записи.
В процессе инициализации программа должна сообщить контроллеру ПДП адрес буфера, куда ему следует поместить данные или откуда надо взять данные, и длину передаваемых данных в байтах.
Адрес необходимо представить в виде номера страницы и смещения. Для контроллера ПДП компьютера IBM PC/AT используется 8-битовый номер страницы и 16-битовое смещение. Например, для адреса 23456h номер страницы будет равен 2h, а смещение - 3456h.
Для программирования канала 2 контроллера ПДП программа должна сначала вывести младший байт смещения в порт с адресом 04h, затем вывести в этот же порт старший байт смещения и, наконец, вывести байт номера страницы в порт с адресом 81h.
Длина передаваемых данных выводится аналогичным образом в порт с адресом 05h - сначала младший байт длины, затем старший.
После определения режима работы канала, адреса буфера и длины передаваемых данных, программа должна разрешить работу контроллера ПДП, выдав в порт с адресом 0Ch байт 2. Теперь канал прямого доступа готов к работе и будет ждать данные от контроллера НГМД.
Глава 5. Функции BIOS для работы с дисками.
Наилучший и самый безопасный способ работы с дисками на физическом уровне в среде MS-DOS - использование функций базовой системы ввода/вывода BIOS. Эти функции учитывают все особенности аппаратуры и предоставляют достаточно широкий набор средств доступа к дискам на физическом уровне.
Вся дисковая подсистема обслуживается прерыванием INT 13h . Это прерывание выполняет множество функций. Для вызова определенной функции программа должна занести ее код в регистр AH. При этом в другие регистры следует записать параметры - номер НМД или НГМД, номер цилиндра, головки, адрес таблиц параметров НМД или НГМД и т. д.
Приведем краткую таблицу функций прерывания INT 13h , после чего займемся детальным описанием этих функций. В примечании к описанию функций мы будем указывать типы компьютеров, на которых данная функция работоспособна.
Номер функции | Описание |
00h | Сброс дисковой системы |
01h | Определение состояния дисковой системы |
02h | Чтение сектора |
03h | Запись сектора |
04h | Проверка сектора |
05h | Форматирование дорожки |
06h | Форматирование дорожки НМД |
07h | Форматирование НМД |
08h | Получить текущие параметры НГМД или НМД |
09h | Инициализация таблиц параметров НМД |
0Ah | Чтение длинное (только для НМД) |
0Bh | Запись длинная (только для НМД) |
0Ch | Поиск цилиндра (только для НМД) |
0Dh | Альтернативный сброс НМД |
0Eh | Чтение буфера сектора (только для НМД) |
0Fh | Запись буфера сектора (только для НМД) |
10h | Проверка готовности НМД |
11h | Рекалибровка НМД |
12h | Проверка памяти контроллера НМД |
13h | Проверка НМД |
14h | Проверка контроллера НМД |
15h | Получить тип НМД или НГМД |
16h | Проверка замены диска |
17h | Установка типа дискеты |
18h | Установка среды носителя данных для форматирования |
19h | Парковка головок (только для НМД) |
1Ah | Форматирование НМД с интерфейсом ESDI |
... CD, CD-Text, CD-WO (Write-Once). Полное описание их займет слишком много места, и это не является целью написания данной работы. В зависимости же от количества возможных операций записи компакт-диски разделяются на: CD-ROM (read only memory), CD-R (recordable), они же CD-WORM (write once read many), CD-RW (rewritable). Соответственно, СD-ROM изготавливается на заводе, и дальнейшая запись на ...
... форматирования жестких дисков, поэтому диски работают на любых контроллерах, по крайней мере в минимальной низкоуровневой конфигурации. Но чтобы обеспечить наилучшую производительность, следует использовать жесткий диск, рассчитанный на имеющийся контроллер. Основным недостатком EIDE является то, что к одному шлейфу (кабель, подключающийся с другой стороны к материнской плате или контроллеру ...
... информационные сектора и служебную серво-информацию и может быть выполнено контроллером винчестера под управлением соответствующей программы. Для современных винчестеров, которые содержат записанную при изготовлении сервоинформацию, полное форматирование означает и разметку информационных секторов, и перезапись сервоинформации. 1.3 Низкоуровневое форматирование Низкоуровневое форматирование ...
... их из архива; . • указанием каталога для размещения временных файлов архиватора при помещении файлов в архив; • запрещением копирования в архив определенных файлов (например, .ВАК-файлов). ОБСЛУЖИВАНИЕ ДИСКОВ Каждый водитель автомобиля помимо использования своего автомобиля для поездок должен заправлять его бензином, мыть, проводить техническое обслуживание и т.д. Если он не ...
0 комментариев