Реферат: DOS-extender для компилятора Borland C++
#define SEG_READABLE 0x02
#define SEG_PRESENT_BIT 0x80
// Константы для обработки аппаратных
// прерываний
#define EOI 0x20
#define MASTER8259A 0x20
#define SLAVE8259A 0xa0
// Макро для формирования физического
// адреса из компонент сегменоного адреса
// и смещения
#define MK_LIN_ADDR(seg,off) (((unsigned long)(seg))<<4)+(word)(off)
// Тип указателя на функцию типа void без параметров
typedef void (func_ptr)(void);
4.3 Файл TOS.H. Основной файл программы.
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include "tos.h"
// --------------------------------
// Определения вызываемых функций
// --------------------------------
// Инициализация защищенного режима и вход в него
void Init_And_Protected_Mode_Entry(void);
void protected_mode(unsigned long gdt_ptr, unsigned int gdt_size,
word cseg, word dseg);
word load_task_register(word tss_selector);
void real_mode(void);
void jump_to_task(word tss_selector);