"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автораНа всех машинах кроме AT (который будет обсуждаться ниже) регистры микросхемы 8255 интерфейса с периферией содержат инфор- мацию о том, сколько НГМД имеет машина. В примерах [1.1.1] пока- зано как получить эту информацию. Информация определяющая тип диска содержится в таблице размещения файлов (FAT) диска, которая следит за использованием дискового пространства. Первый байт FAT содержит один из следующих кодов: Код Тип диска FF двухсторонний, 8 секторов FE односторонний, 8 секторов FD двухсторонний, 9 секторов FC односторонний, 9 секторов F9 двухсторонний, 15 секторов F8 фиксированный диск Сама таблица размещение файлов не является файлом. Она может быть считана при помощи функций DOS или BIOS непосредственно чи- тающих определенные сектора диска. В пункте [5.1.1] содержится вся информация необходимая для нахождения и чтения FAT. К счастью, операционная система обеспечивает функцию, которая возвращает идентификационный байт диска. Данные BIOS не показывают число жестких дисков в системе, так Вы можете использовать указанную функцию операционной системы для поиска накопителей. Она возвращает значение 0CDH, вместо одного из упомянутых кодов, когда накопители отсутствуют. Надо просто проверять все большие и большие номера накопителей, до тех пор пока не будет обнаружено указанное значение. AT уникален в том смысле, что его информация о конфигурации говорит какой тип накопителя используется. Эту информацию можно получить из порта с адресом 71H, предварительно послав номер регистра в порт 70H. Для НГМД номер регистра равен 10H. Информа- ция о первом накопителе содержится в битах 7-4, а о втором - в битах 3-0. В обоих случаях цепочка битов 0000 говорит об отсутст- вии накопителя, 0001 - о двухстороннем накопителе с плотностью 48 дорожек на дюйм, а 0010 - о накопителе большой емкости (96 доро- жек на дюйм). Информация о фиксированном диске содержится в ре- гистре 12H. И снова биты 7-4 и 3-0 соответствуют первому и второ- му накопителям. 0000 указывает на отсутствие накопителя. Другие 15 возможных значений описывают емкость и конструкцию накопителя. Эти коды сложные; если Вам по какой-то причине потребуется эта информация, обратитесь к техническому руководству по AT. Средний уровень. Функция 1CH прерывания 21H возвращает информацию об указанном накопителе. Поместите номер накопителя в DL, причем 0 = накопи- |
|
|