Иллюстрированный самоучитель по Tirbo Pascal

       

Константы


OvrCodeList, OvrHeapSize, OvrDebugPtr, OvrHeapOrg, OvrHeapPtr, OvrHeapEnd, OvrHeapList, OvrDosHandle и OvrEmsHandle используются модулем Overlay для реализации администратора оверлеев. Буфер оверлеев размещается между сегментом стека и кучей и OvrHeapOrg и OvrHeapEnd содержат адреса начала и конца сегмента. Размер буфера оверлеев по умолчанию соответствует размеру максимального оверлея в программе; если в программе нет оверлеев, то размер оверлейного буфера равен нулю.

HeapOrg, HeapPtr, HeapEnd, FreeList, HeapError используются администратором кучи для реализации распределения динамической памяти.

Переменные ExitProc, ExitCode и ErrorAddr реализуют процедуры выхода.

PrefixSeg содержит сегментную часть адреса префикса программного сегмента (PSP).

StackLimit содержит смещение от нижней границы сегмента стека, соответствующее наименьшему допустимому значению регистра SP. Обычно StackLimit равен нулю; если программа откомпилирована с опциями {$N+.E+}, компилятор будет устанавливать его равным 224 для резервирования рабочего пространства на нижней границе сегмента стека, используемого для эмуляции сопроцессора.

InOutRes используется встроенными программами ввода/вывода для запоминания значения, возвращаемого при последующем вызове стандартной функции IOResult.

RandSeed содержит опорное число генератора случайных чисел. При присваивании конкретного значения этой переменной функция Random будет генерировать строго определенную последовательность псевдослучайных чисел. Процедура Randomize заносит в переменную RandSeed текущее системное время и тем самым обеспечивает новую псевдослучайную последовательность при очередном прогоне программы.

FileMode позволяет изменить режим доступа, с которым открываются типизированные и нетипизированные файлы стандартной процедурой RESET. Текстовые файлы этой процедурой открываются только для чтения.

Seg0040 хранит сегмент участка памяти, который MS-DOS использует для размещения своих переменных.

SegA000 содержит сегмент начала видеопамяти для графического режима работы, a SegB000 и SegB800 -сегменты видеопамяти для текстового режима.

Selectorlnc используется как шаг наращивания т.н. селекторов - указателей, обеспечивающих линейную модель памяти.

Test8086 хранит результат теста автообнаружения процессора Intel 80x86, a Test8087 - сопроцессора.




Константы регистра флагов

Следующие константы используются для проверки отдельных битов флага в регистре Flags после вызова Intr или MSDOS:

const

FCarry= $0001;   FAuxiliary = $0010; FSign = $0080; 

FParity= $0004;  FZero = $0040;      FOverFlow = $0800;

Константы режима доступа к файлу

const

fmClosed =$D7BO; {Маска режима файл закрыт}

fmInput =$D7B1; {Маска режима открыт для чтения} 

fmOutput =$D7B2; {Маска режима открыт для записи}

fmInOut =$D7B3; {Маска режима открыт для чтения и записи}

Константы атрибутов файла

const

Readonly = $01;{Маска только для чтения}

Hidden = $02;{Маска скрытого файла}

SysFile = $04;{Маска системного файла} 

VolumelD = $08;{Маска заголовка тома} 

Directory= $10;{Маска каталога}

Archive = $20;{Маска архивного, файла} 

AnyFile = $3F;{Маска любого файла}




Константы регистра флагов

Следующие константы используются для проверки отдельных битов флага в регистре Flags после вызова Intr или MSDOS:

const

FCarry= $0001;   FAuxiliary = $0010; FSign = $0080; 

FParity= $0004;  FZero = $0040;      FOverFlow = $0800;

Константы режима доступа к файлу

const

fmClosed =$D7BO; {Маска режима файл закрыт}

fmInput =$D7B1; {Маска режима открыт для чтения} 

fmOutput =$D7B2; {Маска режима открыт для записи}

fmInOut =$D7B3; {Маска режима открыт для чтения и записи}

Константы атрибутов файла

const

Readonly = $01;{Маска только для чтения}

Hidden = $02;{Маска скрытого файла}

SysFile = $04;{Маска системного файла} 

VolumelD = $08;{Маска заголовка тома} 

Directory= $10;{Маска каталога}

Archive = $20;{Маска архивного, файла} 

AnyFile = $3F;{Маска любого файла}




Константы режима работы

Константы цветов

const

Black = 0;{Черный}

Blue = 1;{Синий}

Green = 2;{Зеленый}

Cyan = 3;{Голубой}

Red = 4;{Красный}

Magenta = 5;{Фиолетовый}

Brown = 6;{Коричневый}

LightGray = 7;{Светло-серый}

DarkGray = 8;{Темно-серый}

LightBlue = 9;{Ярко-синий}

LightGreen = 10;{Ярко-зеленый}

LightCyan = 11;{Ярко-голубой}

LightRed = 12;{Розовый}

LightMagenta= 13;{Малиновый}

Yellow = 14;{Желтый}

White = 15;{Белый}

Blink = 128;{Мерцание символа}




Значения ошибок, возвращаемые GraphResult

const

grOk = 0;{Нет ошибок} 

grNoInitGraph = -1;{Графика не инициализирована} 

grNotDetected = -2;{Графическое устройство не обнаружено} 

grFileNotFound = -3;{Файл драйвера устройства не найден} 

grInvalidDriver= -4;{Неправильный файл драйвера устройства} 

grNoLoadMem = - 5;{Нет памяти для загрузки драйвера} 

grNoScanMem = - 6;{Нет памяти для просмотра областей}

grNoFloodMem = -7;{Нет памяти для закраски областей}

grFontNotFound = -8;{Файл шрифта не найден}

grNoFontMem = - 9;{Нет памяти для загрузки шрифта} 

grInvalidMode =-10;{Недопустимый графический режим} 

grError =-11;{Общая ошибка}

grIOerror =-12;{Ошибка графического ввода/вывода}

grInvalidFont =-13;{Неверный файл шрифта} 

grInvalidFontNum=-14;{Неверный номер шрифта}

Константы цвета

LightMagenta= 13;{Малиновый} 

Yellow      = 14;{Желтый}

White       = 15;{Белый}

Следующие константы цветов могут быть использованы с SetRGBPalette для выбора цветов на графическом адаптере IBM 8514:

const

EGABlack = 0;{Темные цвета}

EGABlue = 1;

EGAGreen = 2;

EGACyan = 3;

EGARed = 4;

EGAMagenta = 5;

EGALightGray = 7;

EGABrown = 20;

EGADarkGray = 56;{Светлые цвета}

EGALightBlue = 57;

EGALightGreen = 58;

EGALightCyan = 59;

EGALightRed = 60;

EGALightMagenta = 61;

EGAYellow = 62;

EGAWhite =63;

Константы типов и толщины линий

const

SolidLn=0;{Сплошная}

DottedLn=1;{Точечная}

CenterLn=2;{Штрихпунктирная}

DashedLn=3;{Пунктирная}

UserBitLn=4;{Тип определяется пользователем}

NormWidth=1;{Нормальная толщина}

ThickWidth= 3;{Тройная толщина}

Константы управления шрифтом

const

DefaultFont = 0;{Матричный шрифт 8x8}

TriplexFont = 1;{Шрифт триплекс; файл TRIP.CHR}

SmallFont = 2;{Мелкий шрифт; файл LITT.CHR}

SansSerifFont= 3;{Прямой шрифт; файл SANS.CHR}

GothicFont = 4;{Готический шрифт; файл GOTH.CHR}

HorizDir = 0;{Горизонтальное направление}



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