Часть II.
Глава 12. Библиотеки исполняющей системы

             Borland Pascal включает в себя библиотеки исполняющей систе-

        мы для  защищенного  режима DOS,  реального режима DOS и Windows.

        Наиболее часто используемые библиотеки исполняющей системы  нахо-

        дятся в файлах TURBO.TPL (реальный режим DOS),  TPP.TPL (защищен-

        ный режим DOS) и TPW.TPL (Windows). Дополнительные модули постав-

        ляются в отдельных файлах .TPU, .TPP и .TPW.

 

             * Для реального режима DOS библиотека TURBO.TPL содержит мо-

               дули System,  Overlay,  Crt,  Dos и Printer. Кроме того, в

               отдельных файлах .TPU поставляются модули Graph,  Strings,

               WinDos, Turbo3 и Graph3.

 

             * Для защищенного режима DOS библиотека TPP.TPL содержит мо-

               дули System,  Crt, Dos, Printer, Strings, WinDos и WinAPI.

               Кроме того,  в виде отдельного файла .TPP поставляется мо-

               дуль Graph.

 

             * Для  Windows  библиотека  TPW.TPL  содержит модули System,

               Strings, WinTypes, WinProcs, Win31, WinAPI, WinDos, WinCrt

               и WinPrn. В виде исходного кода поставляются некоторые до-

               полнительные модули Windows.

 

             Кроме библиотек исполняющей системы, Borland Pascal включает

        в себя  прикладную среду Turbo Vision для реального и защищенного

        режима DOS и прикладную среду ObjectWindows для Windows. Эти биб-

        лиотеки описаны   в  "Руководстве  по  программированию  с  Turbo

        Vision" и в "Руководстве  по  программированию  с  использованием

        ObjectWindows".

 

             В данной  главе  кратко описывается каждый модуль библиотеки

        исполняющей системы.

Модули Borland Pascal

             Borland Pascal  обеспечивает  вам  доступ  к  большому числу

        встроенных констант,  типов данных,  переменных, процедур и функ-

        ций.  Некоторые из них специфичны для Borland Pascal, другие спе-

        цифичны для программирования прикладных  задач  для  Windows  или

        Dos. Их количество велико, однако, в своей программе вы редко ис-

        пользуете их все сразу.  Поэтому они разделены на связанные груп-

        пы,  называемые модулями. В этом случае можно использовать только

        те модули, которые необходимы в программе.

 

             Программный модуль (unit) представляет собой набор констант,

        типов данных,  переменных, процедур и функций. Каждый модуль ана-

        логичен отдельной программе на Паскале:  он может иметь  основное

        тело,  которое  вызывается  перед запуском вашей программы и осу-

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

        тавляет собой библиотеку описаний, которую можно вставить в прог-

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

        мые отдельно.

 

             Модуль обеспечивает  набор средств благодаря входящим в него

        процедурам и функциям при поддержке констант,  типов данных и пе-

        ременных,  однако действительная реализация этих средств скрыта в

        силу того, что модуль разделен на две части: интерфейс и реализа-

        цию.  Если  программа  использует модуль,  то все описания модуля

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

        делены в ней самой.

 

             Структура модуля аналогична структуре программы.  Все описа-

        ния внутри модуля связаны друг с другом. Например, модуль Strings

        содержит  все  описания,  необходимые  для  подпрограмм обработки

        строк, заканчивающихся нулевым символом.

Модуль System

             Модуль System  реализует поддерживающие подпрограммы нижнего

        уровня для всех встроенных средств,  таких как ввод-вывод, работа

        со строками, операции с плавающей точкой и динамическое распреде-

        ление памяти.

 

             Модуль System содержит все стандартные и встроенные процеду-

        ры  и функции Borland Pascal.  Любая подпрограмма Borland Pascal,

        не являющаяся частью стандартного Паскаля и не находящаяся  ни  в

        каком другом модуле,  содержится в модуле System. Этот модуль ав-

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

        указывать в операторе uses.

Модуль Dos и WinDos

             Модули Dos и WinDos  реализуют  многочисленные  процедуры  и

        функции Паскаля, которые эквивалентны наиболее часто используемым

        вызовам DOS,  как например,  GetТime, SetТime, DiskSize и так да-

        лее. Кроме  того,  WinDos определяет две программы низкого уровня

        МsDos и Intr, которые позволяют активизировать любой вызов MS-DOS

        или  системное  прерывание.  Тип Registers представляет собой тип

        данных для параметра в МsDos и Intr. Кроме того, определяются не-

        которые другие константы и типы данных.  Ни одна из этих подпрог-

        рамм не определена в стандартном Паскале,  поэтому они помещены в

        свои собственные модули. Подробнее модули WinDos и Dos описывают-

        ся в Главе 16 "Интерфейс с DOS".

Модуль Crt

             Модуль Crt  реализует  ряд мощных программ,  предоставляющих

        вам полную возможность управления средствами компьютера РС, таки-

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

        цвета,  окна, и звуковые сигналы. Модуль Crt может использоваться

        только  в программах,  работающих на персональных компьютерах IBM

        РС, РС AT, РS/2 фирмы IBM и полностью совместимых с ними.

 

             Одним из основных преимуществ использования модуля Crt явля-

        ется большая скорость и гибкость при выполнении операций работы с

        экраном. Программы, не работающие с модулем Crt, выводят на экран

        информацию с помощью средств операционной системы DOS, что связа-

        но с дополнительными непроизводительными затратами. При использо-

        вании  модуля Crt выводимая информация посылается непосредственно

        в базовую систему ввода-вывода (ВIОS), или, для еще более быстрых

        операций, непосредственно в видеопамять.

 

             О модуле Crt рассказывает в Главе 14 "Ввод и вывод".

Модуль WinCrt

             Модуль WinCrt - это дpайвеp устpойства текстовых файлов, ко-

        тоpый  пеpеопpеделяет  вывод в пpокpучиваемое окно.  Хотя большая

        часть ваших пpогpамм для Windows,  как пpавило,  будет  создавать

        свои  собственные  окна,  модуль  WinCrt  можно  использовать для

        быстрых и простых программ,  базирующихся на текстах,  когда  вам

        нужно быстро  получить  результаты.  Модуль  WinCrt описывается в

        главе 14 "Ввод и вывод".

Модуль Printer

             Модуль Printer позволяет вам посылать стандартный вывод Пас-

        каля на принтер,  используя процедуры Write и WriteLn.  Подробнее

        он описывается в главе 14 "Ввод и вывод".

Модуль WinPrn

             Модуль WinPrn позволяет вам посылать своей  вашей  программы

        Windows  на принтер по вашему выбору.  Подробнее он описывается в

        главе 14 "Ввод и вывод".

Модуль Overlay

             Модуль Overlay  позволяет  вам уменьшить требования к памяти

        программы DOS реального  режима.  Фактически,  вы  можете  писать

        программы, превышающие общий объем доступной памяти,  поскольку в

        каждый момент в памяти будет находиться только часть вашей  прог-

        раммы.  Подробно  данный  модуль описан в Главе 20 "Использование

        оверлеев".

Модуль Strings

             Модуль Strings обеспечивает обработку новых строк,  заканчи-

        вающихся  пустым  символом.  Строки,  стандартные  для   Паскаля,

        обрабатываются модулем System.  Подробнее модуль Strings описыва-

        ется в Главе 18 "Использование строк с завершающим нулем".

Модуль Graph

             Модуль Graph  обеспечивает  ряд быстрых и мощных графических

        подпрограмм. Он реализует независимый  от  устройств  графический

        драйвер Borland,  поддерживающий графику CGA, EGA, VGA, Hercules,

        AT&T 400,  MCGA,  3270PC  и  8514.  Модуль  Graph  не  встроен  в

        TURBO.TPL, он находится на том же диске, что и файлы .BGI (графи-

        ческий интерфейс Borland) и .CHR (шрифты).

 

             Подробнее о модуле Graph рассказывается в Главе 19  "Исполь-

        зование графического интерфейса Borland".

Модули Turbo3 и Graph3

             Модули Turbo3 и Graph3  предусмотрены  только  для  обратной

        совместимости. Turbo3  содержит две переменные и несколько проце-

        дур, которые больше не поддерживаются Borland Pascal.  Graph3 со-

        держит полный  набор  графических подпрограмм версии 3.0 - основ-

        ных,  продвинутых,  и использующих графику в относительных коман-

        дах. Информацию   об   этих   файлах  вы  можете  найти  в  файле

        TURBO3.INT.

Модули WinTypes и WinProcs

             Модуль WinTypes  содержит все константы,  структуры данных и

        стили,  используемые в прикладном программном интерфейсе Windows.

        Модуль WinTypes подробно описывается в справочной системе Borland

        Pascal.

 

             Модуль WinProcs содержит все функции и процедуры, составляю-

        щие  прикладной  программный  интерфейс Windows.  Модуль WinProcs

        также подробно описывается в справочной системе.

 

             Совместно эти модули образуют прикладной программный  интер-

        фейс Windows (API).

Модуль Win31

             Модуль Win31 обеспечивает интерфейс с дополнительными  подп-

        рограммами API,  которые  можно  найти в Windows 3.1.  Прикладные

        программы, использующие Win31, не работают под Windows 3.0.

Модуль WinAPI

             Модуль WinAPI   определяет   подмножество   подпрограмм  API

        Windows, поддерживаемых и в Windows,  и в защищенном режиме  DOS.

        Подробнее об  этом модуле рассказывается в Главе 17 "Программиро-

        вание в защищенном режиме DOS".

Модули, поддерживающие Windows 3.1

             Borland Pascal  поддерживает API Windows 3.1 в следующих мо-

        дулях:

 

             ColorDlg              LZExpand              ShellAPI

             CommDlg               MMSystem              Stress

             Cpl                   OLE                   ToolHelp

             DDEML                 PenWin                Ver

             Dlgs                  Print                 WinMem32