Глава 5. Дисковые накопители.

Раздел 1. Управление распределением диска.

5.1.2 Определение доступного дискового пространства.

Хотя в следующем подразделе объянено как восстановить ситуацицию при ошибке из-за нехватки места на диске, но нет лучшего лекарства, чем предусмотрительность. Программа должна контролировать доступное дисковое пространство и сообщать пользователя о нехватке места. Если места не хватает, то пользователь может выйти из программы и устранить проблему без потери информации.

Средний уровень.

Функция 36H прерывания 21H сообщает сколько имеется свободного пространства на диске. Единственный входной регистр DL, который должен содержать номер накопителя. Hакопитель по умолчанию обозначается 0, накопитель A - 1 и т.д. При возврате BX содержит число доступных кластеров, AX - число секторов в кластере, а CX количество байт в секторе. Hебольшое упражнение в умножении дает желаемый результат. В следующем примере проверяется, что на двухсторонней дискете осталось по меньшей мере 2K дискового пространства:
MOV AH,36H ;номер функции
MOV DL,1 ;накопитель A
INT 21H ;получаем информацию
CMP BX,2 ;имеется ли 2 свободных кластера?
JL RUNNING_OUT ;если нет, то сообщаем об этом


<~-Глава 5. Дисковые накопители.
Содержание
5.1.3 Получение/установка размера файла.-~>

Сайт управляется системой uCoz