Информатика на пять О нас
 Добавить в избранное
5byte.ru
 Теория
 8 класс
 9 класс
 10 класс
 11 класс
Задания
 8 класс
 9 класс
 10 класс
 11 класс
Книги
Тесты
ЕГЭ
Turbo Pascal 7
 Описание
 Задачи
HTML
Рефераты

16.7. Модуль Overlay

Модуль Overlay предназначен для организации оверлейных программ, которые загружаются и перезагружаются в оперативную память отдельными частями - секциями. Отдельные оверлейные части программы должны быть оформлены как отдельные модули, причем в них необходимо использовать ключ компилятора {$0+}. Кроме этого необходимо предусмотреть, чтобы при вызове оверлейных процедур и функций все активные в этот момент подпрограммы имели "дальнюю" адресацию (для этого следует использовать ключ компилятора {$F+}. Подключение оверлейных модулей к основной программе помимо стандартного использования раздела uses должно содержать ключ компилятора {$0 unitname} с указанием имени оверлейного модуля.

В версии 7.0 введено понятие "испытательной" области, выделяемой в конце оверлейного буфера. Если оверлейная секция попадает в эту область, проверяется, были ли обращения к подпрограммам этой секции. Если таких обращений не было, при необходимости эта секция выбрасывается, а вместо нее записывается другая. Если же обращения были, то секция не выбрасывается, а ставится в конец очереди на удаление, а удаляется какая-либо другая секция. В предыдущих версиях этот механизм не действовал (предполагался размер "испытательной" области равный нулю).

В модуле Overlay имеется один стандартный процедурный тип

type OvrReadFunc=function (OvrSeg: Word): Integer;

Этот тип можно использовать для того, чтобы создавать функции анализа работы с оверлеями. Здесь OvrSeg - номер загружаемого оверлея.

Таблица 41. Константы модуля Overlay

Имя Значение Назначение
Коды ошибок
ovrOk
ovrError
ovrNotFound
ovrNoMemory
ovrlOError
ovrNoEMSDriver
ovrNoEMSMemory
0
-1
-2
-3
-4
-5
-6
Успешное выполнение
Ошибка в управлении оверлеями
Отсутствие оверлейного файла
Недостаточно памяти для оверлейного буфера
Ошибка при чтении оверлейного файла
Не найден драйвер расширенной памяти
Недостаточно расширенной памяти

Модуль Overlay использует также переменные модуля System (см. табл. 9).

Таблица 42. Переменные модуля Overlay

Имя Значение Назначение
OvrResult

OvrTrapCount

OvrLoadCount

OvrFileMode

OvrReadBuf
Integer

Word

Word

Byte

OvrReadFunc
Результат обращения к процедурам и функциям, работающим с оверлеями (см. табл. 41)
Счетчик числа обращений к диспетчеру оверлея (первоначально равен нулю)
Счетчик числа загрузок оверлеев (первоначально равен нулю)
Характеристика способа работы с оверлейным файлом (первоначально используется только для чтения)
Адрес функции проверки результата оверлейной операции

Таблица 43. Процедуры и функции модуля Overlay

Имя Назначение
Процедуры
OvrClearBuf
Ovrlnit
OvrlnitEMS
OvrSetBuf
OvrSetRetry
Очистка оверлейного буфера
Инициализация диспетчера оверлеев и оверлейного файла
Загрузка оверлейного файла в расширенную память
Задание размера оверлейного буфера
Задание "испытательной" области
Функции
OvrGetBuf
OvrGetRetry
Получение размера оверлейного буфера
Получение размера "испытательной" области

Далее в алфавитном порядке описаны процедуры и функции модуля Overlay.





 У Вас есть материал пишите нам
 
    Copyright © 2008    
  Top.Mail.Ru