Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Администратор оверлеев

Администратор оверлеев (или подсистема управления оверлеями)

Borland Pascal реализуется с помощью стандартного модуля Overlay.

В модуле Overlay используются усовершенствованные методы управле-

ния буферами, что обеспечивает оптимальное выполнение программы в

имеющейся области памяти. Например, подсистема управления оверле-

ями сохраняет в оверлейном буфере столько оверлеев, сколько воз-

можно. Это позволяет уменьшить частоту считывания оверлеев с дис-

ка. После загрузки оверлея вызов одной из его подпрограмм выпол-

няется также быстро, как обращение к неоверлейной программе. Кро-

ме того, когда у администратора оверлеев возникает необходимость

вывести один оверлей, чтобы освободить место для другого, он сна-

чала пытается вывести те оверлеи, которые не являются активными

(то есть те, которые в данный момент времени не содержат активных

программ).

Для реализации улучшенных методов управления оверлеями

Borland Pascal требует от вас при написании программы, в которой

используются оверлеи, соблюдать два важных правила:

1. Все оверлейные модули должны содержать директиву {$O+},

приводящую к тому, что компилятор обеспечивает генериро-

вание оверлейного кода.

2. При каждом обращении к оверлейной процедуре или функции

вы должны обеспечить использование всеми активными про-

цедурами и функциями вызовов типа FAR (дальний тип вызо-

ва).

Оба правила будут поясняться далее в разделе под заголовком

"Разработка оверлейных программ". Сейчас мы просто отметим, что

вы можете легко удовлетворить эти правила, поместив в начале

оверлейных модулей директиву компилятора {$O+,F+}, а в начале

всех других модулей и основной программы - директиву {$F+}.

Примечание: Несоблюдение требования обеспечения даль-

него типа вызова в оверлейной программе вызовет непредска-

зуемые и возможно катастрофические результаты при выполне-

нии программы.

Директива компилятора {$O имя_модуля} используется в прог-

рамме для указания того, какой из модулей будет оверлейным. Эта

директива должна размещаться за оператором uses программы, в кото-

ром перед именами всех других оверлейных модулей должно указы-

ваться имя стандартного модуля Overlay. Приведем следующий при-

мер:

program Editor;

{$F+} { Все процедуры и функции будут использовать

дальний тип вызова }

uses

Overlay, Crt, Dos, EdInOut, EdFormat, EdPrint, EdFind,

EdMain;

{$O EdInOut }

{$O EdFormat }

{$O EdPrint }

{$O EdFind }

{$O EdMain }

Если вы пытаетесь использовать в качестве оверлейного мо-

дуль, при компиляции которого не была указана директива {$O+}, то

компилятор выведет сообщение об ошибке. Что касается стандартных

модулей, то оверлейным может быть только модуль Dos. Другие стан-

дартные модули не могут использоваться в качестве оверлейных. К

тому же программы, содержащие оверлейные модули, при использова-

нии IDE реального режима должны компилироваться на диск. Если вы

пытаетесь выполнить компиляцию таких программ в память, то компи-

лятор выводит сообщение об ошибке.

Соседние файлы в предмете Программирование на Pascal