| 
 |  
  |  
| 
  
 |  
| 
  
 
Глава 13. Стандартные процедуры и функции
             В данной главе кратко описываются  стандартные  (встроенные)
        процедуры и  функции  Borland  Pascal и предописанные переменные,
        определенные в модуле System.  Более подробную информацию о конк-
        ретной процедуре,  функции или предописанной переменной вы можете
        найти в Главе 1 ("Справочник по библиотеке") в "Руководстве прог-
        раммиста".
             Стандартные процедуры и функции являются предописанными. Так
        как  записи с их предварительными описаниями действуют точно так-
        же,  как если бы они были описаны в окружающем программу  модуле,
        при описании,  переопределяющем тот же идентификатор внутри прог-
        раммы конфликта не возникает.
                   Примечание: О  других  процедурах и функциях вы можете
              прочесть в Главе 14 "Ввод и вывод".
             В данной главе освещаются следующие темы:
             - Процедуры управления программой.
             - Функции преобразования.
             - Арифметические функции.
             - Порядковые процедуры и функции.
             - Строковые процедуры и функции.
             - Процедуры и функции динамического распределения памяти.
             - Прочие процедуры и функции.
             - Предописанные переменные модуля System.
Процедуры управления работой программы
             Процедуры управления работой программы - это процедуры,  уп-
        равляющие логикой выполнения программы.
        --------------------T-------------------------------------------
        ¦  Процедура        ¦     Описание                              ¦
        +-------------------+-------------------------------------------+
        ¦   Break           ¦ Завершает оператор for, while или repeat. ¦
        +-------------------+-------------------------------------------+
        ¦   Continue        ¦ Продолжает итерацию оператора for,  while,¦
        ¦                   ¦ или repeat.                               ¦
        +-------------------+-------------------------------------------+
        ¦   Eхit            ¦ Позволяет немедленно выйти из текущего мо-¦
        ¦                   ¦ дуля.                                     ¦
        +-------------------+-------------------------------------------+
        ¦   Наlt            ¦ Останавливает выполнение программы и возв-¦
        ¦                   ¦ ращает управление операционной системе.   ¦
        +-------------------+-------------------------------------------+
        ¦   RunError        ¦ Останавливает выполнение программы и гене-¦
        ¦                   ¦ рирует ошибку этапа выполнения.           ¦
        L-------------------+--------------------------------------------
Функции преобразования
             Ниже перечислены функции преобразования.
        -------------------T--------------------------------------------
        ¦    Функция       ¦       Описание                             ¦
        +------------------+--------------------------------------------+
        ¦   Chr            ¦ Возвращает символ, заданный целым числом.  ¦
        +------------------+--------------------------------------------+
        ¦   High           ¦ Возвращает старшее значение в диапазоне ар-¦
        ¦                  ¦ гумента.                                   ¦
        +------------------+--------------------------------------------+
        ¦   Low            ¦ Возвращает младшее значение в диапазоне ар-¦
        ¦                  ¦ гумента.                                   ¦
        +------------------+--------------------------------------------+
        ¦   Оrd            ¦ Возвращает порядковое число по значению пе-¦
        ¦                  ¦ речислимого типа.                          ¦
        +------------------+--------------------------------------------+
        ¦   Rоund          ¦ Округляет значение  вещественного  типа  до¦
        ¦                  ¦ значения, имеющего длинный целый тип.      ¦
        +------------------+--------------------------------------------+
        ¦   Тrunс          ¦ Усекает значение вещественного типа до зна-¦
        ¦                  ¦ чения, имеющего длинный целый тип.         ¦
        L------------------+---------------------------------------------
Арифметические функции
             Эти функции полезно использовать для выполнения арифметичес-
        ких операций.
                    Примечание: Значения, возвращаемые процедурами опера-
               ций с  плавающей  запятой модуля System,  при компиляции в
               режиме числовой обработки (директива {$N+}),  имеют не ве-
               щественный тип (real), а расширенный (extended).
        -------------------T--------------------------------------------
        ¦    Функция       ¦       Описание                             ¦
        +------------------+--------------------------------------------+
        ¦   Abs            ¦ Возвращает абсолютное значение аргумента.  ¦
        +------------------+--------------------------------------------+
        ¦   Аrctan         ¦ Возвращает арктангенс аргумента.           ¦
        +------------------+--------------------------------------------+
        ¦   Cоs            ¦ Возвращает косинус аргумента.              ¦
        +------------------+--------------------------------------------+
        ¦   Eхp            ¦ Возвращает экспоненту аргумента.           ¦
        +------------------+--------------------------------------------+
        ¦   Frас           ¦ Возвращает дробную часть аргумента.        ¦
        +------------------+--------------------------------------------+
        ¦   Int            ¦ Возвращает целую часть аргумента.          ¦
        +------------------+--------------------------------------------+
        ¦   Ln             ¦ Возвращает натуральный логарифм аргумента. ¦
        +------------------+--------------------------------------------+
        ¦   Pi             ¦ Возвращает значение числа Pi               ¦
        ¦                  ¦ (3.141592653897932385).                    ¦
        +------------------+--------------------------------------------+
        ¦   Sin            ¦ Возвращает синус аргумента.                ¦
        +------------------+--------------------------------------------+
        ¦   Sqr            ¦ Возвращает аргумент в квадрате.            ¦
        +------------------+--------------------------------------------+
        ¦   Sqrt           ¦ Возвращает квадратный корень аргумента.    ¦
        L------------------+---------------------------------------------
Порядковые процедуры и функции
        -------------------T--------------------------------------------
        ¦ Процедура/функция¦            Описание                        ¦
        +------------------+--------------------------------------------+
        ¦     Dес          ¦ Уменьшает значение переменной.             ¦
        +------------------+--------------------------------------------+
        ¦     Inс          ¦ Увеличивает значение переменной.           ¦
        +------------------+--------------------------------------------+
        ¦     Оdd          ¦ Проверяет, является  ли  аргумент  нечетным¦
        ¦                  ¦ числом.                                    ¦
        +------------------+--------------------------------------------+
        ¦     Рred         ¦ Возвращает предшествующее значение аргумен-¦
        ¦                  ¦ та.                                        ¦
        +------------------+--------------------------------------------+
        ¦     Suсс         ¦ Возвращает его последующее значение.       ¦
        L------------------+---------------------------------------------
Строковые процедуры и функции
             Следующие процедуры  и  функции  используются  для работы со
        строками Паскаля.
        -------------------T--------------------------------------------
        ¦   Процедура      ¦      Описание                              ¦
        +------------------+--------------------------------------------+
        ¦    Cоncat        ¦ Выполняет конкатенацию   последовательности¦
        ¦                  ¦ строк.                                     ¦
        +------------------+--------------------------------------------+
        ¦    Cору          ¦ Возвращает подстроку строки.               ¦
        +------------------+--------------------------------------------+
        ¦    Delete        ¦ Удаляет из строки подстроку.               ¦
        +------------------+--------------------------------------------+
        ¦    Insert        ¦ Добавляет в строку подстроку.              ¦
        +------------------+--------------------------------------------+
        ¦    Length        ¦ Возвращает динамическую длину строки.      ¦
        +------------------+--------------------------------------------+
        ¦    Pоs           ¦ Производит поиск подстроки в строке.       ¦
        +------------------+--------------------------------------------+
        ¦    Str           ¦ Преобразует численное  значение в его стро-¦
        ¦                  ¦ ковое представление.                       ¦
        +------------------+--------------------------------------------+
        ¦    Val           ¦ Преобразует строковое значение в  его  чис-¦
        ¦                  ¦ ленное представление.                      ¦
        L------------------+---------------------------------------------
Процедуры и функции динамического распределения памяти
             Эти процедуры  и функции используются для управления динами-
        чески распределяемой областью - областью памяти, которая занимает
        всю  свободную  память  или  ее часть,  остающуюся при выполнении
        программы.  Полное описание методов,  используемых для управления
        динамически  распределяемой  областью памяти приводится в разделе
        "Программа динамического распределения памяти" в Главе 21  ("Воп-
        росы управления памятью").
                  Процедуры динамического распределения памяти
        -------------------T--------------------------------------------
        ¦ Процедура/функция¦            Описание                        ¦
        +------------------+--------------------------------------------+
        ¦   Dispose        ¦ Уничтожает динамическую переменную.        ¦
        +------------------+--------------------------------------------+
        ¦   FrееМем        ¦ Уничтожает динамическую  переменную данного¦
        ¦                  ¦ размера.                                   ¦
        +------------------+--------------------------------------------+
        ¦   GetМем         ¦ Создает новую динамическую  переменную  за-¦
        ¦                  ¦ данного  размера и устанавливает на нее пе-¦
        ¦                  ¦ ременную-указатель.                        ¦
        +------------------+--------------------------------------------+
        ¦   МахАvail       ¦ Возвращает размер  наибольшего непрерывного¦
        ¦                  ¦ свободного модуля в динамически распределя-¦
        ¦                  ¦ емой области памяти, соответствующий разме-¦
        ¦                  ¦ ру наибольшей динамической переменной,  ко-¦
        ¦                  ¦ торая может быть выделена при  обращении  в¦
        ¦                  ¦ МахAvail.                                  ¦
        +------------------+--------------------------------------------+
        ¦   МемАvail       ¦ Возвращает количество  имеющихся  в динами-¦
        ¦                  ¦ чески  распределяемой   области   свободных¦
        ¦                  ¦ байт.                                      ¦
        +------------------+--------------------------------------------+
        ¦   New            ¦ Создает новую динамическую переменную и ус-¦
        ¦                  ¦ танавливает на нее переменную-указатель.   ¦
        L------------------+---------------------------------------------
Функции для работы с указателями и адресами
             Ниже перечислены  функции для работы с указателями и адреса-
        ми.
        -------------------T--------------------------------------------
        ¦    Функции       ¦              Описание                      ¦
        +------------------+--------------------------------------------+
        ¦    Аddr          ¦ Возвращает адрес заданного объекта.        ¦
        +------------------+--------------------------------------------+
        ¦    CSeg          ¦ Возвращает текущее значение регистра CS.   ¦
        +------------------+--------------------------------------------+
        ¦    DSeg          ¦ Возвращает текущее значение регистра DS.   ¦
        +------------------+--------------------------------------------+
        ¦    Оfs           ¦ Возвращает смещение для заданного объекта. ¦
        +------------------+--------------------------------------------+
        ¦    Ptr           ¦ Преобразует адрес базового сегмента и  сме-¦
        ¦                  ¦ щение в значение типа указатель.           ¦
        +------------------+--------------------------------------------+
        ¦    Seg           ¦ Возвращает сегмент для заданного объекта.  ¦
        +------------------+--------------------------------------------+
        ¦    SPtr          ¦ Возвращает текущее значение регистра SР.   ¦
        +------------------+--------------------------------------------+
        ¦    SSeg          ¦ Возвращает текущее значение регистра SS.   ¦
        L------------------+---------------------------------------------
Прочие процедуры и функции
        -------------------T--------------------------------------------
        ¦ Процедура/функция¦            Описание                        ¦
        +------------------+--------------------------------------------+
        ¦   Exclude        ¦ Исключает элемент из множества.            ¦
        +------------------+--------------------------------------------+
        ¦   FillChar       ¦ Заполняет заданное число следующих  друг за¦
        ¦                  ¦ другом бит указанным значением.            ¦
        +------------------+--------------------------------------------+
        ¦   Hi             ¦ Возвращает старший байт аргумента.         ¦
        +------------------+--------------------------------------------+
        ¦   Include        ¦ Включает элемент в множество.              ¦
        +------------------+--------------------------------------------+
        ¦   Lo             ¦ Возвращает младший байт аргумента.         ¦
        +------------------+--------------------------------------------+
        ¦   Моvе           ¦ Копирует заданное  число непрерывных байт в¦
        ¦                  ¦ указанных границах из одного места  в  дру-¦
        ¦                  ¦ гое, границы которого также указываются.   ¦
        +------------------+--------------------------------------------+
        ¦   ParamCount     ¦ Возвращает   число  параметров,  переданных¦
        ¦                  ¦ программе в командной строке.              ¦
        +------------------+--------------------------------------------+
        ¦   ParamStr       ¦ Возвращает параметр, заданный  в  командной¦
        ¦                  ¦ строке.                                    ¦
        +------------------+--------------------------------------------+
        ¦   Random         ¦ Возвращает случайное число.                ¦
        +------------------+--------------------------------------------+
        ¦   Rаndомizе      ¦ Инициализирует встроенный генератор случай-¦
        ¦                  ¦ ных чисел случайным значением.             ¦
        +------------------+--------------------------------------------+
        ¦   SizeOf         ¦ Возвращает число байт, занимаемых  аргумен-¦
        ¦                  ¦ том.                                       ¦
        +------------------+--------------------------------------------+
        ¦   Swap           ¦ Меняет местами  старший и младший байты ар-¦
        ¦                  ¦ гумента.                                   ¦
        +------------------+--------------------------------------------+
        ¦   TypeOf         ¦ Указывает на  таблицу  виртуальных  методов¦
        ¦                  ¦ объекта.                                   ¦
        +------------------+--------------------------------------------+
        ¦   UpCase         ¦ Преобразует символ в верхний регистр.      ¦
        L------------------+---------------------------------------------
Предописанные переменные
             Кроме процедур и функций в модуле  System  предусмотрен  ряд
        предописанных переменных.  Их  перечень зависит от библиотеки ис-
        полняющей системы, к которой относится модуль System.
             Следующие переменные описываются в модуле System  библиотеки
        TURBO.TPL -  библиотеке исполняющей системы для приложений реаль-
        ного режима DOS.
        ----------------T----------------T------------------------------
        ¦ Переменная    ¦   Тип          ¦     Описание                 ¦
        +---------------+----------------+------------------------------+
        ¦ ErrorAddr     ¦ Pointer        ¦ адрес ошибки этапа  выполне- ¦
        ¦               ¦                ¦ ния                          ¦
        +---------------+----------------+------------------------------+
        ¦ ExitProc      ¦ Pointer        ¦ процедура выхода             ¦
        +---------------+----------------+------------------------------+
        ¦ ExitCode      ¦ Integer        ¦ код выхода                   ¦
        +---------------+----------------+------------------------------+
        ¦ FileMode      ¦ Byte           ¦ режим открытия файла         ¦
        +---------------+----------------+------------------------------+
        ¦ FreeList      ¦ Pointer        ¦ список свободных блоков  ди- ¦
        ¦               ¦                ¦ намически распределяемой об- ¦
        ¦               ¦                ¦ ласти памяти                 ¦
        +---------------+----------------+------------------------------+
        ¦ FreeZero      ¦ Pointer        ¦ должен быть равен 0          ¦
        +---------------+----------------+------------------------------+
        ¦ HeapOrg       ¦ Pointer        ¦ начало динамически распреде- ¦
        ¦               ¦                ¦ ляемой области               ¦
        +---------------+----------------+------------------------------+
        ¦ HeapPtr       ¦ Pointer        ¦ указатель  динамически  рас- ¦
        ¦               ¦                ¦ пределяемой области          ¦
        +---------------+----------------+------------------------------+
        ¦ HeapError     ¦ Pointer        ¦ функция  ошибки  динамически ¦
        ¦               ¦                ¦ распределяемой области памя- ¦
        ¦               ¦                ¦ ти                           ¦
        +---------------+----------------+------------------------------+
        ¦ Input         ¦ Text           ¦ стандартный файл ввода       ¦
        +---------------+----------------+------------------------------+
        ¦ InOutRes      ¦ Integer        ¦ буфер   результата  операции ¦
        ¦               ¦                ¦ ввода-вывода                 ¦
        +---------------+----------------+------------------------------+
        ¦ Output        ¦ Text           ¦ стандартный файл вывода      ¦
        +---------------+----------------+------------------------------+
        ¦ OvrCodeList   ¦ Word           ¦ список сегментов оверлейного ¦
        ¦               ¦                ¦ кода                         ¦
        +---------------+----------------+------------------------------+
        ¦ OvrDebugPtr   ¦ Pointer        ¦ используется   при   отладке ¦
        ¦               ¦                ¦ оверлеев                     ¦
        +---------------+----------------+------------------------------+
        ¦ OvrDosHandle  ¦ Word           ¦ описатель оверлея DOS        ¦
        +---------------+----------------+------------------------------+
        ¦ OvrEmsHandle  ¦ Word           ¦ описатель оверлея EMS        ¦
        +---------------+----------------+------------------------------+
        ¦ OvrHeapEnd    ¦ Word           ¦ конец оверлейного буфера     ¦
        +---------------+----------------+------------------------------+
        ¦ OvrHeapOrg    ¦ Word           ¦ начало оверлейного буфера    ¦
        +---------------+----------------+------------------------------+
        ¦ OvrHeapPtr    ¦ Word           ¦ указатель оверлейного буфера ¦
        +---------------+----------------+------------------------------+
        ¦ OvrHeapSize   ¦ Word           ¦ начальный размер оверлейного ¦
        ¦               ¦                ¦ буфера                       ¦
        +---------------+----------------+------------------------------+
        ¦ OvrLoadList   ¦ Word           ¦ список загруженных оверлеев  ¦
        +---------------+----------------+------------------------------+
        ¦ PrefixSeg     ¦ Word           ¦ префикс программного сегмен- ¦
        ¦               ¦                ¦ та                           ¦
        +---------------+----------------+------------------------------+
        ¦ RandSeed      ¦ Longint        ¦ случайное  число  (генериру- ¦
        ¦               ¦                ¦ ется датчиком  случайных чи- ¦
        ¦               ¦                ¦ сел)                         ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt00     ¦ Pointer        ¦ сохраненное прерывание $00   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt02     ¦ Pointer        ¦ сохраненное прерывание $02   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt1B     ¦ Pointer        ¦ сохраненное прерывание $1B   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt23     ¦ Pointer        ¦ сохраненное прерывание $23   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt24     ¦ Pointer        ¦ сохраненное прерывание $24   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt34     ¦ Pointer        ¦ сохраненное прерывание $34   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt35     ¦ Pointer        ¦ сохраненное прерывание $35   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt36     ¦ Pointer        ¦ сохраненное прерывание $36   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt37     ¦ Pointer        ¦ сохраненное прерывание $37   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt38     ¦ Pointer        ¦ сохраненное прерывание $38   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt39     ¦ Pointer        ¦ сохраненное прерывание $39   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3A     ¦ Pointer        ¦ сохраненное прерывание $3A   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3B     ¦ Pointer        ¦ сохраненное прерывание $3B   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3C     ¦ Pointer        ¦ сохраненное прерывание $3C   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3D     ¦ Pointer        ¦ сохраненное прерывание $3D   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3E     ¦ Pointer        ¦ сохраненное прерывание $3E   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3F     ¦ Pointer        ¦ сохраненное прерывание $3F   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt75     ¦ Pointer        ¦ сохраненное прерывание $75   ¦
        +---------------+----------------+------------------------------+
        ¦ Seg0040       ¦ Word           ¦ селектор сегмента $0040      ¦
        +---------------+----------------+------------------------------+
        ¦ SegA000       ¦ Word           ¦ селектор сегмента $A000      ¦
        +---------------+----------------+------------------------------+
        ¦ SegB000       ¦ Word           ¦ селектор сегмента $B000      ¦
        +---------------+----------------+------------------------------+
        ¦ SegC000       ¦ Word           ¦ селектор сегмента $C000      ¦
        +---------------+----------------+------------------------------+
        ¦ SelectorInc   ¦ Word           ¦ шаг увеличения селектора     ¦
        +---------------+----------------+------------------------------+
        ¦ StackLimit    ¦ Word           ¦ указатель на нижнюю границу  ¦
        ¦               ¦                ¦ стека                        ¦
        +---------------+----------------+------------------------------+
        ¦ Test8086      ¦ Byte           ¦ результат  проверки  процес- ¦
        ¦               ¦                ¦ сора 8086                    ¦
        +---------------+----------------+------------------------------+
        ¦ Test8087      ¦ Byte           ¦ результат проверки сопроцес- ¦
        ¦               ¦                ¦ сора 8087                    ¦
        L---------------+----------------+-------------------------------
             PrefixSeg представляет собой переменную длиной в слово,  со-
        держащую адрес префикса программного сегмента (PSP), создаваемого
        при выполнении программы операционной системой DOS. Полное описа-
        ние PSP приведено в руководстве по операционной системе DOS.
             Переменная StackLimit содержит смещение начала стека относи-
        тельно сегмента стека, что соответствует минимальному допустимому
        значению регистра SP, после которого уже возникает ситуация пере-
        полнения стека. По умолчанию значение этой переменной равно 0, но
        если программа компилируется с директивами {$N+,$E+}, то эмулятор
        сопроцессора 8087 при отсутствии в системе сопроцессора  8087 для
        резервирования места в младших адресах сегмента стека будет уста-
        навливать ее в значение 224.
             Переменная InOutRes  используется  встроенными   программами
        ввода-вывода для сохранения значения, возвращаемого при следующем
        обращении к функции IOResult.
             В RandSeed сохраняется начальное  значение  для  встроенного
        генератора случайных чисел.  Если присваивать этой переменной оп-
        ределенное значение,  то функция Random будет генерировать задан-
        ную  последовательность случайных чисел.
             Переменная FileMode  позволяет изменять режим доступа к отк-
        рытым типизированным и нетипизированным  файлам.
             В переменной  Test8087 сохраняется результат работы алгорит-
        мов автоматического распознавания сопроцессора 8087,  которые на-
        чинают работать при запуске программы,  скомпилированной с дирек-
        тивой  {$N+}.
             Input и Оutput - это стандартные файлы ввода-вывода, необхо-
        димые в каждой реализации Паскаля.  По умолчанию они  связываются
        со стандартными входными и выходными файлами в Dos.
             Следующие переменные описываются в модуле System  библиотеки
        TPW.TPL - библиотеке исполняющей системы для приложений Windows.
        ----------------T----------------T------------------------------
        ¦ Переменная    ¦   Тип          ¦     Описание                 ¦
        +---------------+----------------+------------------------------+
        ¦ CmdLine       ¦ PChar          ¦ указатель командной строки   ¦
        +---------------+----------------+------------------------------+
        ¦ CmdShow       ¦ Integer        ¦ параметр CmdShow для Create- ¦
        ¦               ¦                ¦ Window                       ¦
        +---------------+----------------+------------------------------+
        ¦ ErrorAddr     ¦ Pointer        ¦ адрес ошибки этапа  выполне- ¦
        ¦               ¦                ¦ ния                          ¦
        +---------------+----------------+------------------------------+
        ¦ ExitProc      ¦ Pointer        ¦ процедура выхода             ¦
        +---------------+----------------+------------------------------+
        ¦ ExitCode      ¦ Integer        ¦ код выхода                   ¦
        +---------------+----------------+------------------------------+
        ¦ FileMode      ¦ Byte           ¦ режим открытия файла         ¦
        +---------------+----------------+------------------------------+
        ¦ Input         ¦ Text           ¦ стандартный файл ввода       ¦
        +---------------+----------------+------------------------------+
        ¦ HeapAllocFlag ¦ Word           ¦ флаги   распределения  блока ¦
        ¦               ¦                ¦ динамически   распределяемой ¦
        ¦               ¦                ¦ области памяти               ¦
        +---------------+----------------+------------------------------+
        ¦ HeapBlock     ¦ Word           ¦ размер   блока   динамически ¦
        ¦               ¦                ¦ распределяемой области памя- ¦
        ¦               ¦                ¦ ти                           ¦
        +---------------+----------------+------------------------------+
        ¦ HearError     ¦ Pointer        ¦ функция  ошибки  динамически ¦
        ¦               ¦                ¦ распределяемой области памя- ¦
        ¦               ¦                ¦ ти                           ¦
        +---------------+----------------+------------------------------+
        ¦ HeapLimit     ¦ Word           ¦ размер наименьшего блока ди- ¦
        ¦               ¦                ¦ намически распределяемой об- ¦
        ¦               ¦                ¦ ласти памяти                 ¦
        +---------------+----------------+------------------------------+
        ¦ HeapList      ¦ Word           ¦ список сегментов динамически ¦
        ¦               ¦                ¦ распределяемой области памя- ¦
        ¦               ¦                ¦ ти                           ¦
        +---------------+----------------+------------------------------+
        ¦ HInstance     ¦ Word           ¦ описатель данного экземпляра ¦
        +---------------+----------------+------------------------------+
        ¦ HPrevInst     ¦ Word           ¦ описатель предыдущего экзем- ¦
        ¦               ¦                ¦ пляра                        ¦
        +---------------+----------------+------------------------------+
        ¦ InOutRes      ¦ Integer        ¦ буфер   результата  операции ¦
        ¦               ¦                ¦ ввода-вывода                 ¦
        +---------------+----------------+------------------------------+
        ¦ Output        ¦ Text           ¦ стандартный файл вывода      ¦
        +---------------+----------------+------------------------------+
        ¦ PrefixSeg     ¦ Word           ¦ префикс программного сегмен- ¦
        ¦               ¦                ¦ та                           ¦
        +---------------+----------------+------------------------------+
        ¦ RandSeed      ¦ Longint        ¦ случайное  число  (генериру- ¦
        ¦               ¦                ¦ ется датчиком  случайных чи- ¦
        ¦               ¦                ¦ сел)                         ¦
        +---------------+----------------+------------------------------+
        ¦ SelectorInc   ¦ Word           ¦ шаг увеличения селектора     ¦
        +---------------+----------------+------------------------------+
        ¦ StackLimit    ¦ Word           ¦ указатель на нижнюю границу  ¦
        ¦               ¦                ¦ стека                        ¦
        +---------------+----------------+------------------------------+
        ¦ Test8086      ¦ Byte           ¦ результат  проверки  процес- ¦
        ¦               ¦                ¦ сора 8086                    ¦
        L---------------+----------------+-------------------------------
             HInstance содержит описатель экземпляра прикладной программы
        или библиотеки,  как это  предусматривается  операционной  средой
        Windows. В  программе  HPrevInst  содержит  предыдущий  экземпляр
        прикладной программы,  или 0,  если предыдущего экземпляра нет. В
        библиотеке HPrevInst всегда равно 0.
             В программе  CmdLine содержит указатель на завершающуюся ну-
        лем строку, которая содержит аргументы командной строки, заданные
        при запуске прикладной программы.  В библиотеке эта переменная не
        определена.
             В программе CmdShow содержит  значение  параметра,  передачу
        которого в ShowWindow ожидает Windows, когда прикладная программа
        создает основное окно.  В библиотеке эта переменная всегда  равна
        0.
             Подсистемой управления  динамически  распределяемой областью
        памяти для реализации программ динамического распределения памяти
        Borland Pascal   используются   переменные  HeapList,  HeapLimit,
        HeapBlock и HeapError.
             Для реализации  процедур  выхода   используются   переменные
        ExitProc, ErrorCode и ErrorAdr.
             Переменная PrefixSeg  представляет собой переменную длиной в
        слово,  содержащую адрес префикса  программного  сегмента  (PSP),
        создаваемого  при выполнении программы операционной системой DOS.
        Полное описание PSP приведено в руководстве по операционной  сис-
        теме DOS.
             Переменная InOutRes   используется  встроенными  программами
        ввода-вывода для сохранения значения, возвращаемого при следующем
        обращении к функции IOResult.
             Переменная FileMode позволяет изменять режим доступа к  отк-
        рытым типизованным и нетипизированным файлам.  Более подробно это
        описано в Главе 14 "Ввод и вывод".
             Следующие переменные описываются в модуле System  библиотеки
        TPP.TPL - библиотеке исполняющей системы для приложений  защищен-
        ного режима DOS.
        ----------------T----------------T------------------------------
        ¦ Переменная    ¦   Тип          ¦     Описание                 ¦
        +---------------+----------------+------------------------------+
        ¦ ErrorAddr     ¦ Pointer        ¦ адрес ошибки этапа  выполне- ¦
        ¦               ¦                ¦ ния                          ¦
        +---------------+----------------+------------------------------+
        ¦ ExitProc      ¦ Pointer        ¦ процедура выхода             ¦
        +---------------+----------------+------------------------------+
        ¦ ExitCode      ¦ Integer        ¦ код выхода                   ¦
        +---------------+----------------+------------------------------+
        ¦ FileMode      ¦ Byte           ¦ режим открытия файла         ¦
        +---------------+----------------+------------------------------+
        ¦ HeapAllocFlags¦ Word           ¦ флаги   распределения  блока ¦
        ¦               ¦                ¦ динамически   распределяемой ¦
        ¦               ¦                ¦ области памяти               ¦
        +---------------+----------------+------------------------------+
        ¦ HeapBlock     ¦ Word           ¦ размер   блока   динамически ¦
        ¦               ¦                ¦ распределяемой области памя- ¦
        ¦               ¦                ¦ ти                           ¦
        +---------------+----------------+------------------------------+
        ¦ HearError     ¦ Pointer        ¦ функция  ошибки  динамически ¦
        ¦               ¦                ¦ распределяемой области памя- ¦
        ¦               ¦                ¦ ти                           ¦
        +---------------+----------------+------------------------------+
        ¦ HeapLimit     ¦ Word           ¦ размер наименьшего блока ди- ¦
        ¦               ¦                ¦ намически распределяемой об- ¦
        ¦               ¦                ¦ ласти памяти                 ¦
        +---------------+----------------+------------------------------+
        ¦ HeapList      ¦ Word           ¦ список сегментов динамически ¦
        ¦               ¦                ¦ распределяемой области памя- ¦
        ¦               ¦                ¦ ти                           ¦
        +---------------+----------------+------------------------------+
        ¦ HInstance     ¦ Word           ¦ описатель данного экземпляра ¦
        +---------------+----------------+------------------------------+
        ¦ HPrevInst     ¦ Word           ¦ описатель предыдущего экзем- ¦
        ¦               ¦                ¦ пляра                        ¦
        +---------------+----------------+------------------------------+
        ¦ InOutRes      ¦ Integer        ¦ буфер   результата  операции ¦
        ¦               ¦                ¦ ввода-вывода                 ¦
        +---------------+----------------+------------------------------+
        ¦ Output        ¦ Text           ¦ стандартный файл вывода      ¦
        +---------------+----------------+------------------------------+
        ¦ PrefixSeg     ¦ Word           ¦ префикс программного сегмен- ¦
        ¦               ¦                ¦ та                           ¦
        +---------------+----------------+------------------------------+
        ¦ RandSeed      ¦ Longint        ¦ случайное  число  (генериру- ¦
        ¦               ¦                ¦ ется датчиком  случайных чи- ¦
        ¦               ¦                ¦ сел)                         ¦
        +---------------+----------------+------------------------------+
        ¦ RealModeRegs  ¦ array[0..49] of¦ регистры реального режима    ¦
        ¦               ¦  byte          ¦                              ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt00     ¦ Pointer        ¦ сохраненная   исключительная ¦
        ¦               ¦                ¦ ситуация $00                 ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt02     ¦ Pointer        ¦ сохраненное прерывание $02   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt0C     ¦ Pointer        ¦ сохраненное   исключительная ¦
        ¦               ¦                ¦ ситуация $0С                 ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt0D     ¦ Pointer        ¦ сохраненное прерывание $0D   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt1B     ¦ Pointer        ¦ сохраненное прерывание $1B   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt21     ¦ Pointer        ¦ сохраненное прерывание $21   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt23     ¦ Pointer        ¦ сохраненное       прерывание ¦
        ¦               ¦                ¦ реального режима $23         ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt24     ¦ Pointer        ¦ сохраненное       прерывание ¦
        ¦               ¦                ¦ реального режима $24         ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt34     ¦ Pointer        ¦ сохраненное прерывание $34   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt35     ¦ Pointer        ¦ сохраненное прерывание $35   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt36     ¦ Pointer        ¦ сохраненное прерывание $36   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt37     ¦ Pointer        ¦ сохраненное прерывание $37   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3B     ¦ Pointer        ¦ сохраненное прерывание $38   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt39     ¦ Pointer        ¦ сохраненное прерывание $39   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3A     ¦ Pointer        ¦ сохраненное прерывание $3A   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3B     ¦ Pointer        ¦ сохраненное прерывание $3B   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3C     ¦ Pointer        ¦ сохраненное прерывание $3C   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3D     ¦ Pointer        ¦ сохраненное прерывание $3D   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3E     ¦ Pointer        ¦ сохраненное прерывание $3E   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt3F     ¦ Pointer        ¦ сохраненное прерывание $3F   ¦
        +---------------+----------------+------------------------------+
        ¦ SaveInt75     ¦ Pointer        ¦ сохраненное прерывание $75   ¦
        +---------------+----------------+------------------------------+
        ¦ Seg0040       ¦ Word           ¦ селектор сегмента $0040      ¦
        +---------------+----------------+------------------------------+
        ¦ SegA000       ¦ Word           ¦ селектор сегмента $A000      ¦
        +---------------+----------------+------------------------------+
        ¦ SegB000       ¦ Word           ¦ селектор сегмента $B000      ¦
        +---------------+----------------+------------------------------+
        ¦ SegB800       ¦ Word           ¦ селектор сегмента $B800      ¦
        +---------------+----------------+------------------------------+
        ¦ Test8086      ¦ Byte           ¦ результат  проверки  процес- ¦
        ¦               ¦                ¦ сора 8086                    ¦
        +---------------+----------------+------------------------------+
        ¦ Test8087      ¦ Byte           ¦ результат проверки сопроцес- ¦
        ¦               ¦                ¦ сора 8087                    ¦
        L---------------+----------------+-------------------------------
             Более подробную информацию об этих переменных вы можете най-
        ти в Главе 1 ("Справочник по библиотеке") в "Справочном руководс-
        тве программиста. 
                       Назад | Содержание | Вперед
 
 
  
 | 
 | 
 
 
 
 | 
  
 
 
 
  |  
  |  
| 
 |  
 
 
| Внимание! Любой из материалов, опубликованных на этом сервере, не может быть  воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее... |   
 |