Write (Sees:10) ;
Write (#13#10' головка ');
for j :== 1 to d do with Disk[j].Pt do
Write(BegHd:10) ;
Write(#13#10' дорожка ');
for j := 1 to d do with Disk[j].Pt do
Write((BegSC and 192) shi 2+ BegSC shr 8:10);
Write (#13#10' сектор ');
for j := 1 to d do with Disk[j].Pt do
Write(BegSC and 63:10);
WriteLn(#13#10'Описатель:') ;
Write (' головка ');
for j := 1 to d do with Disk[j] do
Write(Hd:10) ;
Write (#13#10' дорожка ');
for j := 1 to d do with Disk[j] do
Write (Tr:10) ;
Write (#13#10' сектор ');
for j := 1 to d do with Disk[j] do
Write(Se:lO) ;
WriteLn end.
В этой программе для доступа к физическим секторам используется прерывание BIOS $13, которое подробно описывается в п.3.2.
Поле Sys описателя раздела может иметь одно из значений, указанных в табл.3.2.
Таблица 3.2
Значения поля SYS
Значение |
Смысл |
о |
Неизвестная операционная система |
1 |
Операционная система MS-DOS, 12-битная FAT |
4 |
Операционная система MS—DOS, 16-битная FAT |
5 |
Описатель логического раздела |
Таблица распределения файлов
За загрузочным сектором располагается так называемая таблица распределения файлов [File Allocation Table — FAT). Эта таблица начинается в секторе BPB.ResSecs и содержит информацию о принадлежности каждого кластера тому или иному файлу. Обычно на диске создается несколько копий FAT (чаще всего две копии), содержимое которых строго идентично. Дублирование информации в нескольких копиях FAT повышает надежность ее хранения. Количество копий FAT и размер каждой копии (в секторах) задаются полями FATCnt и FATSize блока ВРВ.