Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать

Інші процедури і функції

В модулі System визначене також велике число процедур і функцій, які не можна віднести не до однієї з груп, описаних мною раніше.

Назва

призначення

Exclude

Видаляє елемент з множини

FillChar

заповнює задану кількість послідовних байтів змінною вказаного значення (виразом будь-якого порядкового типу)

Hi

повертає старший байт аргументу

Include

включає елемент в множину

Lo

повертає молодший байт аргументу

Move

копіює задану кількість послідовних байтів з вихідної області пам'яті в назначену область

ParamCount

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

ParamStr

повертає вказаний параметр командного рядка

Random

повертає псевдо-випадкове число

Randomize

прив’язує стартове значення функції random до поточного системного часу

SizeOf

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

Swap

Міняє місцями старший і молодший байти двохбайтного аргументу

TypeOf

повертає вказівник на таблицю віртуальних методів аргументу типу object

UpCase

перетворює рядкову букву в прописну

Змінні та константи модуля

Крім процедур і функцій в модулі System описаний ряд раніше оголошених змінних:

Змінна

Тип

Опис

Input

TEXT

стандартна файлова змінна, яка визначає прилад вводу. По замовчуванню таким приладом являється клавіатура

Output

TEXT

стандартна файлова змінна, яка визначає прилад виводу. По замовчуванню таким приладом являється екран

SaveInt00

POINTER

змінна для збереження вектора переривання $00

SaveInt02

POINTER

Те ж, що $02

SaveInt1B

POINTER

Те ж, що $1B

SaveInt21

POINTER

Те ж, що $21

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

В момент завантаження середовища Turbo Pascal змінює значення 18 векторів переривання. В змінних SaveIntXX зберігається старі значення цих векторів.

Крім змінних, в модулі System також міститься ряд типізованих констант.

Константа

Тип

початкове значення

Опис

ErrorAddr

POINTER

NIL

адреса помилки виконання

ExitCode

INTEGER

0

код завершення

ExitProc

POINTER

NIL

адреса процедури завершення

FileMode

BYTE

2

Режим доступу до файлу

FileList

POINTER

NIL

вказівник списку вільних блоків кучі

FreeZero

POINTER

NIL

зарезервована

HeapEnd

POINTER

NIL

вказівник на кінець кучі

HeapError

POINTER

NIL

вказівник на функцію обробки помилок кучі

HeapOrg

POINTER

NIL

вказівник на початок кучі

HeapPtr

POINTER

NIL

вказівник кучі

InOutRes

INTEGER

0

буфер результату операції вводу-виводу

OvrCodeList

WORD

1

список оверлейних сегментів

OvrDebugPtr

POINTER

NIL

вказівник відладчика оверлеєв

OvrDosHandle

WORD

0

параметр зв’язку оверлеєв з DOS

OvrEmsHandle

WORD

$FFFF

параметр зв’язку оверлеєв з EMS

OvrHeapEnd

WORD

0

кінець оверлейного буфера

OvrHeapOrg

WORD

0

початок оверлейного буферу

OvrHeapPtr

WORD

0

вказівник оверлейного буферу

OvrHeapSize

WORD

0

початковий розмір оверлейного буферу

OvrLoadList

WORD

0

список завантажених оверлеєв

PrefixSeg

WORD

0

префікс програмного сегменту

RandSeed

LONGINT

0

параметр ініціалізації генератора випадкових чисел

Seg0040

WORD

$0040

селектор сегменту $0040

SegA000

WORD

$A000

селектор сегменту $A000

SegB000

WORD

$B000

селектор сегменту $B000

SegB800

WORD

$B800

селектор сегменту $B800

SelectorInc

WORD

$1000

перетворення селектора

StackLimit

WORD

0

границя стеку

Test8086

BYTE

0

результат тестування процесора 80х86

Test8087

BYTE

0

результат тестування процесора 80х87

Змінні OvrCodeList, OvrDebugPtr, OvrDosHandle, OvrEmsHandle, OvrHeapEnd, OvrHeapOrg, OvrHeapPtr, OvrHeapSize і OvrLoadList використовуються модулем Overlay для роботи адміністратора оверлеєв.

Змінні FreeList, HeapEnd, HeapError, HeapOrg, HeapPtr використовується адміністратором кучі для реалізації розподілу динамічної пам'яті.

Змінні ErrorAddr, ExitCode і ExitProc використовується процедурами виходу.

Змінна PrefixSeg являє собою змінну довжиною в слово, яка містить адресу префікса програмного сегменту (PSP), яка створюється при виконанні програми системою DOS.

Змінна InOutRes використовується вбудованими програмами вводу-виводу для збереження значення, яке повертається при наступному виклику функції IOResult.

В RandSeed зберігається початкове значення для вбудованого генератора випадкових чисел. Якщо присвоювати цій змінній певне значення, то функція Random буде генерувати задану послідовність випадкових чисел.

Змінна FileMode дозволяє змінити режим доступу до відкритих типізованих чи нетипізованих файлів (0 – тільки читання, 1 – тільки запис, 2 – читання і запис).

Змінна StackLimit містить мінімальне допустиме зміщення вказівника стеку.

В змінній Test8086 вноситься значення, яке визначає тип процесора (0 – процесор 8086, 1 – 80286, 2 – 80386 і вище).

В змінну Test8087 записується результат тестування співпроцесора, якщо він використовується в програмі (0 – немає співпроцесора, 1 – співпроцесор 8087, 2 – співпроцесор 80287, 3 – співпроцесор 80387 і вище).

ТЕМА: МОДУЛЬ CRT

Модуль Crt містить ряд програм, які представляють можливість програмам, які працюють під DOS, ефективно управляти такими характеристиками персонального комп’ютера, як режим екрану, розширені коди клавіатури, кольору, вікна і звукові сигнали. Модуль Crt може використовуватися тільки в програмах, які працюють на персональних комп’ютерах IBM PC чи повністю сумісних з ними.

Одним з основних переваг використання модуля Crt являється підвищення швидкості і гнучкості при виконані операцій роботи з екраном. Програми, які не працюють з модулем Crt, виводять на екран інформацію за допомогою засобів операційної системи DOS, що зв’язано з додатковими операціями, які сповільнюють вивід. При використанні модуля Crt інформація, що виводиться, посилається базовій системі вводу-виводу (BIOS) чи, для іще більшого прискорення операцій, безпосередньо у відеопам’ять.

Щоб використовувати модуль Crt, його ім'я потрібно вказати в операторі USES вашої програми:

Uses CRT;

При ініціалізації модуля Crt, для того щоб можна було звертатися до процедур і функцій модуля, замість стандартних файлів вводу і виводу DOS призначаються стандартні вхідні і вихідні текстові файли. Таке призначення здійснюється виконанням на початку програми наступних операторів:

AssignCRT (Input);

Reset (Input);

AssignCRT (Output);

Rewrite (Output);

Ці оператори виконуються автоматично при підключенні модуля Crt і вказують, що призначення вхідних і вихідних файлів далі не допускається до тих пір, поки для них не буде виконано протилежного перепризначення і не відбудеться перехід до стандартного вводу і виводу за допомогою операторів:

Assign (Input, ‘‘);

Reset (Input);

Assign (Output, ‘‘ );

Rewrite (Output);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]