Системное программное обеспечение персональных ЭВМ


Пример 5



Пример 5

/*== ПРИМЕР 10.3 ==*/ /*==== Корневой (загрузочный) сектор логического диска ===*/ #include <dos.h> #define byte unsigned char #define word unsigned int #define dword unsigned long /* Структура корневой записи DOS 4.x */ struct RootRec { byte jmp[3]; /* Переход на загрузку */ char ident[8]; /* Идентификатор системы */ /* Расширенный Блок Параметров BIOS */ /* стандартная часть */ word SectSize; /* Размер сектора (байт) */ byte ClustSize; /* Размер кластера (сект) */ word ResSect; /* Резервных секторов */ byte FatCnt; /* Число копий FAT */ word RootSize; /* Размер корневого оглавления (число элементов оглавления по 32 байта) */ word TotSecs; /* Общее число секторов */ byte Media; /* Тип диска (то же, что 1-й байт FAT */ word FatSize; /* Размер FAT (секторов) */ /* расширение; следующие 3 поля не входят в BPB для DOS 3.x, но входят в загрузочную запись */ word TrkSecs; /* Секторов на дорожке */ word HeadCnt; /* Число поверхностей */ word HidnSecL; /* Число спрятанных секторов (младшая часть) */ /* эта часть имеется только для DOS 4.x и больше */ word HidnSecH; /* (старшая часть) */ /* для диска >32 Мбайт используется вместо TotSecs */ dword LongTotSecs; /* Число секторов */ /* конец расширенного BPB */ byte Drive; /* Физический номер дисковода */ byte reserved1; byte DOS4_flag; /* Код 41 в этом поле - признак расширенного формата загр.записи */ dword VolNum; /* Серийный номер тома */ char VolLabel[11]; /* Метка тома */ char FatForm[8]; /* FAT12 или FAT16 */ /* Далее следуют программа и данные загрузки */ } *rt; byte buffer[512]; /* Структура параметров для INT 25 при работе с большим диском (>32 Мбайт) */ struct{ dword first_sect; /* # логического сектора */ word count; /* число секторов */ byte *ptr; /* адрес в памяти */ } parm; union REGS rr; struct SREGS sr;

main() { char drive; /* идентификатор дисковода */ byte sys; /* признак объем > 32 Мбайт */ ASK1: printf("\nУкажите имя диска >"); drive=getche(); if (drive>'b') { ASK2:printf("\nОбьем лог.


- Начало -  - Назад -  - Вперед -