Функция main запрашивает имя файла, потом обрабатывает его и, если все нормально, то запускает вспомогательные функции необходимые для просмотра FAT заданного файла.
Функция Read_Mbr выполняет выборку элемента таблицы разделов для заданного диска.
Функция Read_Boot считывает boot-сектор логического диска, причем для гибкого диска адрес этого сектора назначается — 0, 0, 1, а для жесткого — выбирается из part.
Функция Get_First определяет абсолютный номер начального сектора логического диска и сохраняет его переменной First_Sect. Это значение вычисляется из физического адреса начала, который берется из полей Begin_Hd, Begin_SecTrk элемента таблицы разделов.
Функция Read_Fat считывает в память FAT целиком, адрес начала FAT на диске и ее размер определяются из ранее прочитанного boot-сектора.
Функция Read_13читает один сектор с помощью прерывания BIOS.
Функция Sect_to_Daddrпреобразует номер логического сектора в физический адрес.
Функция Clust_to_Sect преобразует номер кластера в номер сектора.
Функция Next_Clust определяет номер следующего кластера, анализируя FAT. Для последнего кластера (и для корневого каталога) эта функция возвращает нулевое значение.
Функция Get_Name предназначена для лексического разбора задания, она выделяет из задания очередное слово и переназначает jobptr. Пустое (NULL) значение jobptr — свидетельство об исчерпании задания.
Функция Find_Nameвыполняет поиск имени в каталоге. Здесь cname — требуемое имя, функция возвращает индекс найденного элемента в массиве dir или (-1).
Функция End_of_Job выполняет выдачу на экран различных сообщений при ошибках или при завершении программы.