16.5. Модуль Dos
Модуль Dos позволяет использовать возможности операционной системы MS DOS, не предусмотренные в стандарте языка Паскаль, и содержит типы, константы, переменные и подпрограммы для реализации этих дополнительных возможностей.
Стандартные типы модуля приведены в табл. 33.
Таблица 33. Типы модуля Dos
Имя Определение Назначение
Регистровый тип (для процедур Intr и MsDos)
Registers record
case Integer of
0: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: Word);
1: (AL,AH,BL,BH,CL,CH,DL,DH: Byte)
end;
Файловые типы
FileRec record Файл с заданным типом или без типа
Handle : Word;
Mode : Word;
RecSize : Word;
Private : array[1..26]
of Byte;
UserData: array!1..16]
of Byte;
Name : array[0..79]
of Char
end;
TextBuf array[0..127] of Char; Буфер текстового файла
TextRec record Текстовый файл
Handle : Word;
Mode : Word;
BufSize : Word;
Private : Word;
BufPos : Word;
BufEnd : Word;
BufPtr : "TextBuf;
OpenFunc : Pointer;
InOutFunc: Pointer;
FlushFunc: Pointer;
CloseFunc: Pointer;
UserData : array[1..16]
of Byte;
Name : array[0..79]
of Char;
Buffer : TextBuf
end.
Типы характеристик файлов
ComStr string!127]; Командная строка
PathStr string[79]; Полное имя файла
DirStr string[67]; Полное имя каталога
NameStr string[8]; Имя файла
ExtStr string! 4]; Расширение имени файла
Тип характеристик файла для процедур FindFirst и FindNext
SearchRec record
Fill: array!1..21]
of Byte;
Attr: Byte;
Time: Longint;
Size: Longint;
Name: string[12]
end;
Типы текущего времени
DateTime record
Year,Month,Day,
Hour,Min,Sec: Word;
end;
Для типа Registers задана вариантная запись, чтобы регистры АХ, ВХ, СХ и DX можно было рассматривать и как 16-битовые, и как совокупность двух 8-битовых.
В файловых типах FileRec и TextRec поля содержат следующую информацию: Handle - описатель файла (уникальное число, присваиваемое файлу операционной системой), Mode - состояние файла (закрыт, открыт для записи, открыт для чтения, открыт для чтения и записи - см. табл. 34), RecSize - длина записи в байтах, Private - зарезервированная область, UserData - область, куда можно записать свою информацию, Name - полное имя файла, завершающаяся символом #0, BufSize - размер буфера текстового файла в байтах, BufPos - позиция текущего символа в буфере текстового файла, BufEnd - общее число символов, записанных в буфер, BufPtr - указатель на буфер текстового файла, OpenFunc, InOutFunc, FlushFunc, CloseFunc - указатели на подпрограммы управления текстовым файлом, Buffer - буфер текстового файла.
Тип SearchRec содержит следующие поля: Fill - поле, зарезервированное для операционной системы, Attr - атрибуты файла, Time - время создания или последней модификации файла, Size - размер файла, Name - имя файла.
Переменная типа DateTime может использоваться для размещения распакованной информации о дате и времени.
Таблица 34. Константы модуля Dos
Имя |
Значение |
Назначение |
FCarry
FParity
FAuxiliary
FZero
FSign
FOverflow
fmClosed
fmlnput
fmOutput
fmlnOut
ReadOnly
Hidden
SysFile
VolumelD
Directory
Archive
AnyFile |
$0001
$0004
$0010
$0040
$0080
$0800
$D7B0
$D7B1
$D7B2
$D7B3
$01
$02
$04
$08
$10
$20
$3F |
Маски для выделения битов
в регистре флагов процессора
Коды состояния файлов
Коды атрибутов файлов
|
Таблица 35. Переменные модуля Dos
Имя Тип Назначение
DosError Integer Код ошибки
Переменная DosError может принимать следующие значения:
2 - файл не найден;
3 - нет заданного каталога;
5 - файл недоступен;
6 - неправильная работа с файлом;
8 - нет необходимой памяти;
10 - ошибка в оборудовании;
11 - ошибка в формате;
18 - нет других файлов.
Таблица 36. Процедуры и функции модуля Dos
Имя |
Назначение |
Процедуры управления вычислительным процессом |
Exec
GetlntVec
Intr
MsDos
Keep
SetlntVec
SwapVectors |
Выполнение программы с параметрами из заданной командной строки
Получение адреса программы обработки прерывания
Выполнение программного прерывания
Выполнение функции DOS
Прекращение выполнения программы и сохранение ее в памяти
Установка адреса программы обработки прерывания
Переопределение векторов прерываний |
Функции управления вычислительным процессом |
UosExitCode
EnvCount
EnvStr
GetEnv |
Получение кода выхода из выполняемого процесса
Получение количества строк среды DOS
Получение указанной строки среды DOS
Получение значения указанной переменной среды DOS |
Процедуры работы с файлами |
FindFirst
FindNext
FSplit
GetFAttr
SetFAttr |
Поиск первого файла с заданными атрибутами в текущем или заданном каталоге
Поиск следующего файла с заданными атрибутами в текущем или заданном каталоге
Разбиение полного йШни файла на три части
Получение атрибутов файла
Задание атрибутов файла |
Функции работы с файлами и диском |
DiskFree
DiskSize
FExpand
FSearch |
Получение числа свободных байтов на диске
Получение общего объема памяти диска
Расширение имени файла до полного имени
Поиск файла в списке каталогов |
Процедуры работы с датой и временем |
GetDate
GetFTime
GetTime
PackTime
SetDate
SetFTime
SetTime
UnpackTime |
Получение текущей даты, установленной в DOS
Получение даты и времени последнего обновления файла
Получение текущего времени, установленного в DOS
Упаковка переменной типа DateTime в число типа Longint
Установка текущей даты в DOS
Установка даты и времени создания файла
Установка текущего времени в DOS
Преобразование упакованных даты и времени в распакованную величину типа DateTime |
Процедуры разнообразного назначения |
GetCBreak
Get Verify
SetCBreak
SetVerify |
Проверка способа работы с комбинацией Ctrl+Break
Анализ состояния флага проверки операций записи в DOS
Установка способа работы с комбинацией Ctrl+Break в DOS
Установка состояния флага проверки операций записи в DOS |
Функции разнообразного назначения |
Dos Version |
Получение номера версии DOS |
Далее в алфавитном порядке описаны процедуры и функции модуля Dos.
|