do
{
file_no=0;
finfo.drive = 0x00; /* номер привода для а: */
finfo.head = head; /* главный номер диска */
finfo.track = track; /* номер следа */
finfo.sector= sector; /*номер участка */
finfo.nsectors=1; /* отсчет участка */
finfo.buffer = buf; /* буфер данных */
result = _bios_disk(_DISK_READ, &finfo); /* Read the
Sector */
if( (result & 0xff00) != 0) /* Если ошибк считывания, показывает сообщение ошибки и выходит*/
{
printf("Ошибк считывания");
getch();
exit(0); // Пойдите back to dos
}
/// Форма Экрана дисплея Информации \\\
clrscr();
gotoxy(9,1);
cprintf("ИНДИКАЦИЯ CYLN: %u, HEAD: %u, SECTOR: %u",
track, head, sector);
gotoxy(9,2);
cprintf("РАЗМЕР СТАРТА АТРИБУТА FNO НАЗВАННЫЙ EXT");
gotoxy(7,3);
cprintf("--------------------------------------------");
/* Один участок одновременно. Каждый вход File/DIR принимает байт 32 */
for(i=0;i<512;i+=32)
{
for(j=0;j<8;j++)
{
/// Найдите Имя File/Dir \\\
root[file_no].name[j]=buf[j+i];
}
for(j=8;j<11;j++)
{
/// Найдите выдвижение\\\
root[file_no].ext[j-8]=buf[i+j];
}
j=11;
root[file_no].attribute=buf[i+j]; /// Attribute
/// Начинать Группу \\\
root[file_no].start=(0xff & buf[27+i])*16*16 + (0xff & buf[26+i]);
|