|
Необходимо указать область памяти, в которую
должна считываться информация, и еще три параметра: дисковод
(в виде порядкового номера, где 0 - это дисковод A, а 1, 2 и
3, соответственно B, C и D), число секторов, которые
необходимо прочитать, и номер, указывающий первый сектор,
который требуется прочитать.
Для этой и следующей процедур сектора идентифициуются
последовательными номерами. Нумерация начинается с нуля, что
соответствует первому сектору на дискете, который, при
обычном способе адресации секторов, был бы первым сектором
дорожки 0 на стороне 0. |
avast pro |
|
{img2} |
перевод с русского на английский |
|
(Сведения о дорожках, адресах и
сторонах дискеты приведены в главе 5.) Сектора пронумерованы
последовательно на первой (сторона 0) стороне дискеты. Номера
имеют диапазон от 0 до 319 (шестнадцатиричное значение 13F),
а затем, для двухсторонних дискет, продолжаются с первого
сектора второй стороны, в диапазоне от 320 (шестнадцатиричное
значение 140) до 639 (шестнадцатиричное значение 27F).
Этот способ нумерации можно представить в виде формулы.
Если пронумеровать стороны дискеты как 0 и 1, дорожки от 0 до
39 и сектора от 1 до 8, то искомый номер сектора для этой
служебной процедуры будет вычисляться по формуле:
ИНДЕКС = (СЕКТОР - 1) + (ДОРОЖКА * 8) + (СТОРОНА * 320)
Эта служебная процедура возвращает однобайтный код
ошибки, в котором каждый бит указывает отдельное возможное
условие ошибки. |
системы резервного копирования |
|
|
Номера битов, их числовые эквиваленты и смысл
ошибки приведены в следующей таблице:
БИТ ЧИСЛОВОЙ ЗНАЧЕНИЕ
ЭКВИВАЛЕНТ
___ __________ ________________________________
1-ый 128 Нет ответа от дисковода
2-ой 64 Ошибка поиска (головка
чтения/записи не перемещается
к нужной дорожке)
3-ий 32 Ошибка управления (см. описание
контроллера фирмы "НЭК" в главе
2)
4-ый 16 Ошибка циклического избыточного
проверочного кода (CRC), озна-
чает ошибку в данных
5-ый 8 Ошибка ПДП (ошибка при прямом
доступе к памяти)
6-ой 4 Сектор не найден (либо непра-
вильный номер сектора, либо
ошибка форматирования)
7-ой 2 Дискета защищена от записи (при
операции записи)
8-ой 1 Не используется
Эта служебная процедура может оказаться очень полезной
для чтения секторов той области дискеты, которая отведена для
системных целей, например, для чтения загрузочной записи или
справочника файлов (см. |
архиватор winzip |
|
|
сетевой экран, архиватор winzip, доктор веб, програмное обеспечение, Навигационные системы, .
norton antivirus
|
Учтите, что ДОС не всегда реагирует на нажатие
клавиши Ctrl-Break. Это происходит только в тех случаях,
когда опрашивается клавиатура и когда пересылаются данные на
экран дисплея. Более подробно об этом будет сказано ниже, при
рассмотрении функций ДОС, в частности, функции 8.
Прерывание 36, шестнадцатиричное значение 24, возникает
в случае ошибки в работе ДОС. В системе предусмотрена
проверка условия отклонения от нормального функционирования
ДОС, так называемая "критическая ошибка" и прерывание 36
позволяет нашим программам перехватывать управление, когда
такое происходит. В настоящее времмя рассматриваются два типа
критических ошибок, хотя в дальнейшем могут появиться и
другие. Первая, наиболее частая ошибка, - это "аппаратная
ошибка диска".
Такая ошибка возникает, когда дисковод не может
правильно работать, даже после трех попыток ДОС выполнить
операцию. Вторая критическая ошибка вызывается нарушением
копии таблицы размещения файлов в памяти компьютера (эту
таблицу мы рассмотрим в следующей главе). Такая ситуация
может возникнуть, если программа случайно будет изменять
ячейки в нижних адресах памяти.
Следующие за этими тремя прерывания используются более
традиционным образом. Прерывание 37, шестнадцатиричное
значение 25, используется для чтения секторов дискеты. Тогда
как данные из файлов могут считываться с помощью вызовов
функций ДОС, это прерывание позволяет читать сектора в любом
месте на дискете, независимо от того, являются они частью
файла или нет.
|
|
|