DOS-extender для компилятора Borland C++
Категория реферата: Рефераты по информатике, программированию
Теги реферата: бесплатные тесты бесплатно, реферат принципы
Добавил(а) на сайт: Шаломенцев.
Предыдущая страница реферата | 13 14 15 16 17 18 19 20 21 22 23 | Следующая страница реферата
// Инициализируем таблицу GDT, элементы с 1 по 5
init_gdt_descriptor(&gdt[1], MK_LIN_ADDR(_CS, 0),
0xffffL, TYPE_CODE_DESCR | SEG_PRESENT_BIT | SEG_READABLE);
init_gdt_descriptor(&gdt[2], MK_LIN_ADDR(_DS, 0),
0xffffL, TYPE_DATA_DESCR | SEG_PRESENT_BIT | SEG_WRITABLE);
init_gdt_descriptor(&gdt[3],
MK_LIN_ADDR(_DS, &task_1_tss),
(unsigned long)TSS_SIZE-1, TYPE_TSS_DESCR | SEG_PRESENT_BIT);
init_gdt_descriptor(&gdt[4],
MK_LIN_ADDR(_DS, &task_2_tss),
(unsigned long)TSS_SIZE-1, TYPE_TSS_DESCR | SEG_PRESENT_BIT);
init_gdt_descriptor(&gdt[5],
MK_LIN_ADDR(_DS, &main_tss),
(unsigned long)TSS_SIZE-1, TYPE_TSS_DESCR | SEG_PRESENT_BIT);
// Инициализируем TSS для задач TASK_1, TASK_2
init_tss(&task_1_tss, CODE_SELECTOR, DATA_SELECTOR, task_1_stack+
sizeof(task_1_stack), task1);
init_tss(&task_2_tss, CODE_SELECTOR, DATA_SELECTOR, task_2_stack+
sizeof(task_2_stack), task2);
// Инициализируем элемент 6 таблицы GDT -
// дескриптор для сегмента видеопамяти
// Определяем видеорежим
r.h.ah = 15;
int86(0x10, &r, &r);
// Инициализация для монохромного режима
if (r.h.al == MONO_MODE)
init_gdt_descriptor(&gdt[6], MONO_VID_MEM,
3999, TYPE_DATA_DESCR | SEG_PRESENT_BIT | SEG_WRITABLE);
// Инициализация для цветного режима
else if (r.h.al == BW_80_MODE || r.h.al == COLOR_80_MODE)
init_gdt_descriptor(&gdt[6], COLOR_VID_MEM,
3999, TYPE_DATA_DESCR | SEG_PRESENT_BIT | SEG_WRITABLE);
else
{
printf("nИзвините, этот видеорежим недопустим.");
exit(-1);
}
Рекомендуем скачать другие рефераты по теме: реферат основные, диплом купить.
Предыдущая страница реферата | 13 14 15 16 17 18 19 20 21 22 23 | Следующая страница реферата