Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
выш.мат. методичка.DOC
Скачиваний:
32
Добавлен:
13.02.2015
Размер:
1.71 Mб
Скачать

14.1 Модуль System

Модуль System является фактически основной библиотекой среды Тurbo Раscаl. Так, в него входят все предопределенные процедуры и функции стандарта языка Паскаль, а также дополнительные подпрограммы, позволяющие выпол­нять разнообразные действия общего назначения (управление вводом-выводом, работа со строками, статической и динамической памятью и т. д.).

Модуль System автоматически подключается к любой программе, и его не сле­дует упоминать в разделе объявления используемых модулей uses.

В модуле описан ряд переменных, перечень которых приведен в табл. 9. Таблица 9. Переменные модуля Systeт

Имя Тип Назначение

Input

Техt

Стандартная файловая переменная ввода

Оutput

»

Стандартная файловая переменная вывода

SaveInt00

Роinter

Переменная для сохранения вектора прерывания $00

SaveInt02

То же $02

SaveInt1В

То же $1В

SaveInt21

SaveInt23

То же $21

То же $23

SaveInt24

То же $24

SaveInt34

То же $34

SaveInt35

То же $35

SaveInt36

То же $36

SaveInt37

То же $37

SaveInt38

SaveInt39

SaveInt3А

То же$38

То же $39

То же $3А

SaveInt3В SaveInt3С

То же $3В

То же $3С

SaveIntЗD

То же $3D

SaveInt3Е SaveInt3F

То же $ЗЕ

То же$3F

SaveInt75

Тоже $75

Более подробно о файловых переменных Input и Оutput см. в п. Ввод-вывод.

Помимо переменных в модуле System определен ряд типизированных констант (инициализированных переменных), приведенных в табл. 10.

Таблица 10. Инициализированные переменные модуля System

Имя '

Тип

'

Значение

Назначение

ЕrrorАddr

Рointer

nil

Адрес ошибки выполнения

ExitCode

Integer

0

Код завершения программы

ЕxitProc

Роinter

nil

Адрес процедуры завершения программы

FileMode

Byte

2

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

FreeList

Pointer

nil

Указатель списка свободных блоков динамической области

FreeZero

Pointer

nil

Резервная переменная .

НеарЕnd

Pointer

nil

Конец-динамической области

.

НеарЕrrоr

Pointer

nil

Функция обработки ошибок при работе с динамической областью

НеарОrg

Pointer

nil

Начало динамической области

НеарРtr

Pointer

nil

Указатель динамической области

InpOutRez

Integer

0

Код результата ввода-вывода

ОvrСоdeList

Word

1

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

ОvrDebugPtr

Pointer

nil

Указатель оверлейной отладки

ОvrDosHandle

Word

0

Параметр связи оверлейной программы с DOS

ОvrЕmsHandle

Word

$FFFF

Параметр связи оверлейной программы с расширенной памятью

ОvrHeapEnd

Word

0

Конец оверлейного буфера

ОvrНеарОrg

Word

0

Начало оверлейного буфера

ОvrНеарРtr

LongInt

0

Указатель оверлейного буфера

ОvrНеарSize

Word

0

Минимальный размер оверлейного буфера

ОvrLoadList

Word

0

Список загруженных оверлейных блоков

РrefixSeg

Word

0

Адрес префиксного сегмента программы

RandSeed

Pointer

0

Параметр генератора случайных чисел

Seg0040

Word

$0040

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

SegA000

Word

$А000

То же $А000

SegB000

Word

$В000

То же $В000

SegB800

Word

$В800

То же $В800

SelectorInc

Word

$1000

Приращение селектора сегмента

StackLimit

Word

0

Граница стека

Теst808б

Вуte

0

Тип процессора 80х86

Теst8087

Вуtе

0

Тип сопроцессора 80х87

Переменная ErrorAddr содержит значение nil, если программа завершена успе­шно, и адрес сообщения об ошибке, если произошла ошибка выполнения. Пере­менная ЕхitCode содержит код завершения программы (0 - при нормальном за­вершении). Переменная ЕхitProc содержит адрес подпрограммы завершения. Пе­ременная FileMode содержит код режима работы с файлом (0 - только чтение, 1 - только запись, 2 - чтение и запись и т. д.). Параметры FreeList, НеарЕnd, НеарЕrror, НеарОrg, НеарРtr можно использовать при работе с динамической областью памяти. Переменная InOutRes содержит код выполнения последней операции ввода-вывода, который затем можно получить с помощью функции IOResult. Параметры ОvrCodeList, ОvrDebugPtr, ОvrDosHandle, ОvrEmsHandle, ОvrHeapEnd, ОvrНеарОrg, ОvrНеарРtr, ОvrНеарSize, ОverLoadList используются при работе с оверлейными структурами. Параметр РrefixSeg содержит адрес 256-байтового префиксного сегмента программы. В переменной RandSeed помещает­ся исходное значение датчика случайных чисел.

Переменные для сохранения векторов прерывания можно использовать для сохранения в них текущих значений векторов прерывания.

Параметр StackLimit содержит минимально допустимое смещение указатели стека. В параметр Теst8086 помещается код, определяющий тип процессора (0 -Процессор 8086, 1 - процессор 80286, 2 - процессор 90386 или следующие моди­фикации). В параметр Теst8087 - результат тестирования сопроцессора, если он используется программой (0 - нет сопроцессора, 1 - сопроцессор 8087, 2 - со­процессор 80287, 3 - сопроцессор 80387 или следующие модификации).

Таблица 11. Процедуры и функции модуля System

Имя Назначение