Стандартні модулі В Turbo Pascal є вісім стандартних модулів (System, Dos, Crt, Printer, Overlay, Graph, Turbo3, Graph3). Модуль System підключається автоматично, і його не потрібно згадувати у розділі uses. Всі останні модулі необхідно оголошувати в програмі для забезпечення доступу до їх ресурсів. В модулі System зберігаються типи, константи, змінні і підпрограми авторської версії мови, стандартної мови, а також ряд додаткових підпрограм. Відсутність цього модуля призводить до неможливості компіляції програми. Модуль Crt використовується при роботі з екраном у текстовому режимі, під час читання з клавіатури, а також забезпечує деякі інші функції. Модуль Dos забезпечує звернення до засобів операційної системи MS DOS. Модуль Printer дозволяє здійснювати вивід на принтер за допомогою процедур Write і WriteLn. Для цього оголошена файлова змінна Lst типу Text, яка зв’язана з логічним пристроєм prn. Модуль Graph забезпечує роботу з екраном у графічному режимі. Модуль Overlay використовують для ефективної роботи великих програм. Модулі Turbo3 і Graph3 застосовують дуже рідко, їх використовують для забезпечення сумісності пізніших версій мови з програмами, які написані на мові Turbo Pascal 3.0. Перші п’ять згадані модулі часто включають в файл turbo. tp1. Є також цілий ряд інших модулів, які стали практично стандартні. Це модулі, які входять в бібліотеку Turbo Vision (Objects, Views, Dialogs, App і ін) і призначені для побудови інтерфейс них частин розроблювальних програм. Для роботи з довгими (більше 255 символів) строками розроблений модуль Strings.

МОДУЛЬ CRT Одним з найбільш часто використовуваних стандартних модулів є модуль Crt. В ньому є багато процедур і функцій для роботи з текстом. Серед них: засоби вводу, виведення і форматування тексту, створення і робота з вікнами та багато іншого. Основним засобом відображення інформації, яка вводиться і виводиться під час роботи прикладних і системних програм є екран. В Turbo Pascal є можливість працювати з екраном у текстовому і графічному режимах. Текстовий режим призначений для відображення символів кодової таблиці і характеризується максимальним числом символів в рядку і кількістю рядків на екрані. Крім того, монохромні дисплеї характеризуються кількістю степенем яскравості, а кольорові - можливою кількістю використовуваних кольорів. Мінімальною одиницею керування в текстових режимах є символ. Він складається з декількох пікселів, перетворення яких відбувається на апаратному рівні. Для зберігання символу, який виводиться на екран в текстовому режимі необхідно 2 байта. Перший байт містить безпосередньо символ кодової таблиці, а другий визначає, як символ має бути виведений на екран (його колір, колір фону, мерехтіння). Засоби, які працюють з екраном в текстовому режимі зібрані в модулі Crt, який підключається звичайним способом: uses Crt; Встановлення текстового режиму відбувається за допомогою процедури TextMode, виконання якої призводить до очищення екрану і активації вказаного режиму. В таблиці запропоновані константи, які визначені в модулі Crt для встановлення текстових режимів. Для встановлення того чи іншого текстового режиму необхідно звернутися до процедури TextMode:

TextMode (режим); Константи, визначені для текстових режимів екрана Константа Текстовий режим BW40 Розмір 40 стовпців на 25 рядків (40х25) для кольорового монітора (BW40=0) BW80 Чорно-біле зображення з розміром екрана 80х25 (BW80=2) CO40 Кольоровий текстовий режим 40х25 (СО40=1) CO80 Кольоровий текстовий режим з розміром екрану 80х25 (СО80=3) Mono Монохромний режим 80х25 C40 і C80 Константи СО40 і СО80 відповідно. Введені для сумісності з Turbo Pascal 3.0 Тут в якості параметра задається одна з перерахованих в таблиці констант. Наприклад, для встановлення кольорового режиму з розміром екрану 40х25 можна використати один з наступних варіантів: TextMode(СО40); TextMode(С40); TextMode(3); Процедура TextMode може бути використана без параметрів. В такому випадку активується режим, який зустрічався останнім до поточного режиму. За замовчуванням прийняті режими BW80 і С80. В модулі Crt є константа Font8x8 зі значенням 256. Якщо додати її до основної константи, то кількість рядків буде збільшено до 43 для адаптерів EGA і 50 для адаптерів VGA. Наприклад: TextMode(СО80+Font8x8); МОДУЛЬ DOS Існує цілий клас задач, рішення яких потребує застосування засобів операційної системи. Без цього не можливе написання практично майже ні однієї професійної програми. В модулі Dos зосереджені функції і процедури, які забезпечують доступ до засобів MS DOS.

Модуль graph Підключення модуля Перші дисплеї були монохромними. Їх представниками є монітори MDA (Mono Digitals Adapter) та Hercules, які зустрічаються зараз досить рідко. Із кольорових моніторів були розповсюджені монітори CGA (Color Graphics Adapter) та EGA (Enhanced Graphics Adapter), зараз - VGA (Video Graphics Adapter) та SVGA (Super-VGA). Кольорове зображення отримуємо за рахунок підсвічення люмінофорних крапок трьох кольорів (червоний, зелений, синій). При цьому кожна точка зображення (піксель) утворюється трьома поряд розташованими люмінофорними цятками.

Монітори EGA i VGA фактично стали стандартом для тих додатків, які забезпечуються графічними можливостями мови Turbo Pascal. Особливість моніторів VGA в тому, що в них велика роздільна здатність, і відстань між сусідніми пікселями по вертикалі і горизонталі співпадають.

Роботу модуля забезпечує драйвер для графіки. Зазвичай, це файл з розширенням BGI, який зберігається в папці BGI, яка, у свою чергу, знаходиться у папці із середовищем (наприклад — C:\\TurboPascal\BGI\).

Для роботи з модулем graph необхідно підключити цей модуль та ініціювати його. Для ініціації потрібно викликати процедуру InitGraph, яка приймає три параметри.

Першим параметром є змінна, яка задає тип графічного драйвера.

Для задання типу графічного драйверу існують такі константи: const Detect=0; {Режим автовизначення типу драйвера} CGA=1; MCGA=2; EGA=3; EGA64=4; EGAMono=5; IBM8514=6; HercMono=7; ATT400=8; VGA=9; PC3270=10;

Другим параметром є змінна, яка задає режим роботи драйвера. Для задання режиму роботи драйвера існують такі константи:

const { Для драйверу CGA: } CGACO = 0; {Мале розширення, палітра0} CGAC1 = 1; {Мале розширення, палітра1} CGAC2 = 2; {Мале розширення, палітра2} CGAC3 = 3; {Мале розширення, палітра3} CGAHi = 4; {Високе розширення} { Для драйверу MCGA: } MCGACO = 0; {Аналогічно режиму CGACO} MCGAC1 = 1; {Аналогічно режиму CGAC1} MCGAC2 = 2; {Аналогічно режиму CGAC2} MCGAC3 = 3; {Аналогічно режиму CGAC3} MCGAMed = 4; {Аналогічно режиму CGAHi} MCGAHi = 5; {Розширення 640x480} { Для драйверу EGA:} EGALo = 0; {640x200, 16 кольорів} EGAHi = 1; {640x350, 16 кольорів} EGAMonoHi = 3; {640x350, 2 кольорів} { Для драйверів HGC та HGC+: } HercMonoHi = 0; {720x348} { Для драйверу АТТ400:} ATT400CO = 0; {Аналогічно режиму CGACO} ATT400C1 = 1; {Аналогічно режиму CGAC1} ATT400C2 = 2; {Аналогічно режиму CGAC2} ATT400C3 = 3; {Аналогічно режиму CGAC3} ATT400Med = 4; {Аналогічно режиму CGAHi} ATT400H1 = 5; {640x400, 2 кольори} { Для драйверу VGA: } VGALo = 0; {640x200} VGAMed = 1; {640x350} VGAHi = 2; {640x480} PC3270H1 = 0; {Аналогічно режиму HercMonoHi} { Для драйверу 1ВМ8514: } IBM8514LO = 0; {640x480, 256 кольорів} IBM8514H1 = 1; {1024x768, 256 кольорів}

Третя змінна вказує шлях до папки, в якій міститься драйвер (наприклад, — C:\\TP\BGI), проте якщо цей файл знаходиться в стандартній папці для BGI-файлів (.../BGI), то можна замість шляху вказати пустий рядок.

Для більшості випадків код для роботи з модулем graph буде такий: Uses Graph; var Driver, Mode : Integer; begin Driver := detect; {Драйвер} Mode := 0; {Режим роботи} InitGraph(Driver, Mode, ''); end.

Загальні відомості щодо роботи із графікою Координати пікселів задаються двома цілими числами: координата x — номер пікселю в рядкові. Нумерація рахуються з ліва на право починаючи з нуля. координати y — номер рядка пікселя. Нумерація рахується з верху вниз починаючи з нуля. Таким чином верхній лівих піксель задається координатами (0;0).