Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
biosdisk--------------------------------------------------------------- Назначение Ввод/вывод с жесткого или гибкого диска. Синтаксис int biosdisk(int cmd, int drive, int head, int track, int sector, int nsects, void *buffer); Прототип в bios.h Замечания Эта функция использует прерывание 0х13 для вы- зова дисковых операций непосредственно из BIOS. drive - номер используемого дисковода : 0 для первого дисковода гибких дискет, 1 для второго, 2 для третьего и т.д. Для жесткого дисковода величина 0х80 для drive определяет первый дис- ковод, 0х81 - второй, 0х82 - третий и т.д. Для жесткого диска определяется физический дис- ковод, а не логическое разделение диска. При необходимости прикладная программа должна сама интерпретировать информацию из таблицы разбиения диска. cmd опредедяет действия, которые должны быть выполнены. В зависимости от значения cmd могут понадобить- ся и другие параметры. Ниже приведены значения cmd для IBM PC, XT, АТ или PS/2 и совместимых с ними моделей: 0 - сброс дисковой системы. Контроллер дисково- да выполняет принудительный сброс. Все осталь- ные параметры игнорируются. 1 - возврат статуса выполнения последней диско- вой операции. Все другие параметры игнорируют- ся. 2 - читает один или более дисковых секторов в память. Начальный сектор для чтения задается параметрами head, track и sector. Число секто- ров задается параметром nsect. Данные читаются по 512 байт в секторе в buffer. 3 - записывает один или более секторов диска из памяти. Начальный сектор для записи задается head, track и sector. Число секторов задается параметром nsect. Данные записываются по 512 байт в сектор из buffer. 4 - проверяет один или более секторов. Началь- ный сектор задается head, track и sector. Число секторов задается в nsect. 5 - форматирует дорожку. Дорожка задается пара- метрами head и track. buffer указывает на таб- лицу заголовков секторов, которые будут записы- ваться в заданную track. Смотри техническую документацию для IBM PC для описания этой таб- лицы и операции форматирования Следующие значения cmd допускаются только для моделей ХТ, АТ, PS/2 и совместимых с ними: 6 - форматирует дорожку и устанавливает флаги дефектных секторов. 7 - форматирует дисковод, начиная с заданной дорожки. 8 - возвращает параметры активного дисковода. Эта информация помещается в первые четыре байта buffer. 9 - инициализация характеристик парного диско- вода. 10 - производит длинное чтение, 512+4 байта на сектор. 11 - производит длинную запись, 512+4 байта в сектор. 12 - производит позиционирование дисковода. 13 - производит альтернативный сброс дисковода. 14 - читает буфер сектора. 15 - записывает буфер сектора. 16 - проверяет готовность заданного дисковода. 17 - проводит перекалибровку дисковода. 18 - диагностика контроллера RAM. 19 - диагностика дисковода. 20 - внутренняя диагностика контроллера. Замечание: biosdisk работает с секторами диска на более низком уровне, чем файловая система MS -DOS, поэтому некорректное использование этой функции может привести к порче файлов или ог- лавления жесткого диска. Возвращаемое Эти операции возвращают статусный байт, значение составленный из следующих бит: 0х00 - операция прошла успешно 0х01 - неверная команда 0х02 - маркер адреса не найден 0x03 - запись на диск запрещена 0х04 - запись не найдена 0х05 - ошибка сброса 0x06 - изменилось содержание диска после пос- ледней операции 0х07 - ошибка чтения параметров дисковода 0x08 - переполнение DMA 0х09 - попытка для DMA перейти границу 64 Кб 0x0A - обнаружен дефектный сектор 0х0В - обнаружен флаг дефектной дорожки 0x0C - трек недоступен 0х10 - ошибка кода коррекции при чтении диска 0х11 - коррекция данных с помощью кода коррек- ции 0х20 - контроллер неисправен 0х40 - ошибка позиционирования 0х80 - некорректный ответ дисковода 0хВВ - неизвестная ошибка 0xCC - ошибка записи 0xE0 - неверный статус 0хFF - ошибка доступа Заметим, что 0х11 не является ошибкой, т.к. данные корректны. Значение возвращается с той целью, чтобы дать возможность прикладной прог- рамме самой сделать выбор. Переносимость Эта функция работает только на IBM PC и ей подобных. Смотри также absread, abswrite ---------------------------------------------------------------- |