русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Предопределенные переменные для работы с оверлеями


Дата добавления: 2015-06-12; просмотров: 614; Нарушение авторских прав


Мы рассматривали переменную модуля Overlay OvrResult с набором констант-значений (см. разд. 18.3.2) и переменные OvrTrapCount и OvrLoadCount (разд. 18.5.2). Кроме них, определены еще тип и две переменные:

TYPE

OvrReadFunc = Function( OvrSeg : Word ) : Integer;

VAR

OvrReadBuf : OvrReadFunc;

OvrFileMode : Byte;

Переменная OvrReadBuf предназначена для перехвата операции загрузки оверлея и позволяет устанавливать собственную функцию чтения и проверки оверлейных файлов. Это может понадобиться, например, в случае необходимости проверки наличия сменного диска. Когда администратору оверлеев нужно прочитать очередной сегмент, он вызывает функцию, адрес которой хранится в переменной OvrReadFunc. Если эта функция возвращает нуль, то считается, что операция чтения прошла успешно. Если не нуль,то системой генерируется код фатальной ошибки номер 209 Overlay file read error («Ошибка чтения файла оверлея»). Параметр OvrSeg указывает, какой сегмент должен быть загружен. Однако, в силу того что имя сегмента неявно передается в эту функцию процедурой OvrInit, его можно считать предопределенным.

Для установки собственной процедуры проверки загрузки оверлея необходимо проделать следующее:

1) описать в основной программе собственную функцию обработки чтения оверлея из OVR-файла с заголовком, соответствующим типу OvrReadFunc, и убедиться, что она будет компилироваться в режиме {$F+}. Внутри этой функции после всех предварительных проверок должен стоять вызов основной (сохраненной) функции чтения оверлея. После этого можно производить обработку ошибок;

2) запомнить (сохранить) в программе стартовое значение переменной OvrReadBuf;

3) присвоить переменной OvrReadBuf адрес собственной функции обработки чтения файла. {402}

Внимание! Из собственной функции чтения оверлея никогда не должен производиться вызов какой-либо оверлейной подпрограммы. Если же это требование будет нарушено, то придется затратить несколько лишних минут на перезагрузку MS-DOS и восстановение состояния среды программирования.



Сама подстановка функции чтения оверлея должна находиться сразу за вызовом процедуры OvrInit.

Переменная OvrFileMode определяет код доступа при открытии оверлейного файла. По умолчанию код доступа соответствует режиму «только чтение». Для того чтобы изменить код доступа, необходимо перед инициализацией оверлеев присвоить новое значение этой переменной, о котором можно справиться в технических руководствах по MS-DOS. Реальная необходимость в этом может возникнуть, пожалуй, только при работе в локальных сетях ПЭВМ.

Для работы с оверлеями предназначены и некоторые специальные переменные модуля System, объявленные как переменные со стартовым значением:

CONST

OvrCodeList : Word =0; { список сегментов кодов }

OvrHeapSize : Word =0; { стартовый размер буфера }

OvrDebugPtr : Pointer=nil; { зарезервировано для отладчика }

OvrHeapOrg : Word =0; { сегмент начала буфера }

OvrHeapPtr : Word =0; { указатель заполнения буфера }

OvrHeapEnd : Word =0; { сегмент конца буфера }

OvrLoadList : Word =0; { используется администратором }

OvrDosHandle : Word =0; { используется администратором }

OvrEMSHandle : Word =0; { используется администратором }

Они предназначены в основном для обслуживания системных запросов администратора оверлеев, и не стоит экспериментировать с их значениями. Реально можно использовать лишь переменные, описывающие буфер (см. разд. 18.4.3).



<== предыдущая лекция | следующая лекция ==>
Оптимизация работы оверлеев | Файлы BGI и содержимое модуля Graph


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.409 сек.