В процессе работы программы на экран выводится информация такого вида:
Лабораторная работа N8
Главная загрузочная запись
Разделы жесткого диска:
Лог.диск -----> C Ext E Ext G
Признак ------> 80H 00H 00H 00H 00H
Код системы --> 1 5 4 5 0
Начало: гол.--> 1 0 1 0 1
дор.--> 0 121 121 724 724
сект.-> 1 1 1 1 1
Конец: гол.--> 4 4 4 4 4
дор. -> 120 975 723 975 975
сект.-> 17 17 17 17 17
Нач.сектор ---> 17 10285 17 51255 17
Размер -------> 10268 72675 51238 21420 21403
Нажмите любую клавишу...
Лабораторная работа №9.
Дисковые структуры данных DOS
Цель работы
Получение практических навыков в работе с Таблицей Размещения Файлов.
Постановка задачи
Определить номера всех кластеров диска, которые занимает заданный преподавателем файл в текущем каталоге.
Пример решения задачи
Разработка алгоритма решения
Программа состоит из главной функции main() и одиннадцати вспомогательных функций.
u void Read_Mbr(void) — функция чтения MBR и поиска требуемого раздела.
u void Read_Boot(void) — функция чтения boot-сектора.
u void Get_First(void) — функция определения абсолютного номера сектора начала логического диска.
u void Read_Fat(void) — функция чтения FAT.
u void Read_13(void *mem) —функция чтения сектора с помощью прерывания 13.
u void Sect_to_Daddr(dword sect) — функция формирования физического дискового адреса из номера сектора.
u dword Clust_to_Sect(word clust) — функция определения номера сектора по номеру кластера.
u word Next_Clust(word clust) — функция выборки следующего кластера из FAT.
u char *Get_Name(char *s, char *d) — функция выделения следующего элемента из строки-задания.
u int Find_Name() —функция поиска имени в каталоге.
u void End_of_Job(int n) — функция выдачи сообщений или аварийного завершения.