| 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. 
 
 |