Руководство по языку B.Pascal 7

       

Предопределенные селекторы


В модуле System для обычно используемых адресов реального режима предусмотрено несколько предопределенных селекторов. Они именуются по физическому сегменту, которому данные селекторы присвоены, и используются для совместимости между реальным и за- щищенным режимом DOS.

Предопределенные селекторы Таблица 17.1 -------------------T-------------------------------------------- ¦ Селектор ¦ Описание ¦ +------------------+--------------------------------------------+ ¦ Seg0040 ¦ Используется для доступа к области данных¦ ¦ ¦ BIOS $40 в младших адресах. ¦ +------------------+--------------------------------------------+ ¦ SegA000 ¦ Используется для доступа к графической па-¦ ¦ ¦ мяти EGA и VGA по адресу сегмента $A000. ¦ +------------------+--------------------------------------------+ ¦ SegB000 ¦ Используется для доступа к видеопамяти мо-¦ ¦ ¦ нохромного адаптера по адресу сегмента¦ ¦ ¦ $A000. ¦ +------------------+--------------------------------------------+ ¦ SegB800 ¦ Используется для доступа к видеопамяти¦ ¦ ¦ цветного графического адаптера по адресу¦ ¦ ¦ сегмента $A000. ¦ L------------------+---------------------------------------------

В реальном режиме переменные SegXXXX всегда содержат значе- ния $0040, $A000, $B000 и $B800 соответственно. В защищенном ре- жиме код запуска библиотеки исполняющей системы создает четыре селектора, ссылающихся на конкретные области памяти реального ре- жима. При ссылке на эти области памяти вам следует использовать переменные SegXXXX. Например, если у вас был код следующего вида:

CtrMode := Mem[$40: $49];

то вместо него следует записать:

CtrMode := Mem[Seg0040: $49];

Используя переменные SegXXXX, вы можете гарантировать, что ваша программа без изменений будет работать в реальном и защищен- ном режимах.



Содержание раздела