DOS-extender для компилятора Borland C++ 3.1

Министерство образования Республики Беларусь Белорусский Государственный
                 Университет Информатики и Радиоэлектроники

                                 Кафедра ЭВМ

                            Пояснительная записка
                        к курсовому проекту по курсу
                                 "СПO ЭВМ",
                                  на тему:
       "DOS-extender для компилятора Borland C++ 3.1, защищенный режим
       процессора 80286, организация многозадачной работы процессора”



                                              Выполнил:
                                              студент группы 500501
                                              Балахонов Е.В.

                                 Минск 2000


                                 Оглавление.

1. Введение.     2
  1.1 Уровни программной поддержки защищенного режима.  2
    1.1.1 Интерфейс BIOS.   2
    1.1.2 интерфейс драйвера HIMEM.SYS.      2
    1.1.3 интерфейс EMS/VCPI.     3
    1.1.4 интерфейс DPMI.   3
    1.1.5 расширители DOS (DOS-экстендеры).  3
  1.2 Текущее положение дел в мире DOS-extender-ов.     4
2. Обоснование выбора средств.    4
3. Реализация работы программы в защищенном режиме процессора 80286.    5
  3.1 Адресация защищенного режима процессора 80286.    5
  3.2 Переход в защищенный режим процессора 80286 8
  3.3 Возврат в реальный режим процессора.   10
  3.4 Обработка прерываний в защищенном режиме.   11
  3.5 Реализация мультизадачности.     13
    3.5.1 Контекст задачи.  14
    3.5.2 Переключение задач.     15
    3.5.3 Разделение ресурсов.    16
    3.5.4 Задачи.      16
4. Полные исходные тексты программы.   17
  4.1 Файл TOS.INC. Определение констант и структур для модулей,
  составленных на языке ассемблера.    17
  4.2 Файл TOS.H. Определение констант и структур для модулей, составленных
  на языке Си.   18
  4.3 Файл TOS.H. Основной файл программы.   19
  4.4 Файл TASKS.C. Содержит функции задач.  24
  4.5 Файл SEMAPHOR.C. Содержит процедуры для работы с семафорами. 26
  4.6 Файл TIMER.C. Процедуры для работы с таймером и диспетчер задач.   27
  4.7 Файл EXCEPT.C. Обработка исключений.   28
  4.8 Файл INTPROC.C. Заглушки для аппаратных прерываний.    29
  4.9 Файл KEYB.C. Ввод символа с клавиатуры.     30
  4.10 Файл KEYBOARD.ASM. Процедуры для работы с клавиатурой.      30
  4.11 Файлы SCREEN.H и SCREEN.C – модуль для работы с видеоадаптером.   34
    4.11.1 SCREEN.H    34
    4.11.2 SCREEN.C    34
  4.12 Файл TOSSYST.ASM. Процедуры для инициализации, перехода в защищённый
  режим и возврата в реальный режим, для загрузки регистра TR и переключения
  задач.    36
5. Выводы.  41
6. Литература.   41



                                1. Введение.


      Операционная система MS DOS, не смотря на свое моральное  устаревание,
все еще довольно часто находит применение на парке старых ПК, а значит,  все
еще существует необходимость создания программ для нее.
      К  сожалению,  написание  программ  в  реальном   режиме   процессоров
архитектуры Intel  x86  осложнено  отсутствием  возможности  использовать  в
программе оперативную память  объемом  свыше  пресловутых  640  килобайт,  а
реально свыше 500-620 килобайт. Это ограничение к  сожалению  преследует  MS
DOS и аналогичные ей ОС других производителей, начиная с того  момента,  как
горячо любимый  в  околокомпьютерных  кругах  Билл  Гейтс  заявил,  что  640