| 16.6.    Модуль WinDosМодуль WinDos позволяет использовать возможности операционной системы DOS, не предусмотренные в стандарте языка Паскаль, и дополнительно предусматривает использование ASCIIZ-строк (см. п. 6.3). Этот модуль следует использовать вместо модуля Dos, когда в программе используются строки, завершающиеся нулями или когда предполагается в дальнейшем использовать разрабатываемую программу в среде Windows. Таблица 37. Стандартные типы модуля WinDos Имя                                 Определение                                 Назначение
 
 Регистровый тип (для процедур Intr и MsDos)
 TRegisters	     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;
 
 Файловые типы
 TFileRec        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;
 
 PTextBuf          ^TTextBuf;
 TTextBuf        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[l..16]
 of Byte;
 Name     : array[0..79]
 of Char;
 Buffer   : TTextBuf
 end;
 
 Тип характеристик файла для процедур FindFirst и FindNext
 TSearchRec      record
 Fill: array[l..21]
 of Byte;
 Attr: Byte;
 Time: Longint;
 Size: Longint;
 Name: array[0..12]
 of Char
 end;
 
 Типы текущего времени
 TDateTime	  record
 Year,Month,Day,
 Hour,Min,Sec:   Word
 end;
 
 Поля записей указанных типов имеют тот же смысл, что и аналогичные поля соответствующих типов модуля Dos (см. табл. 38)  Таблица 38. Константы модуля WinDos 
| Имя | Значение | Назначение |  
| FCarry FParity
 FAuxiliary
 FZero
 FSign
 FOverflow
 fmClosed
 fmlnput
 fmOutput
 fmlnOut
 faReadOnly
 faHidden
 faSysFile
 faVolumelD
 faDirectory
 faArchive
 faAnyFUe
 fsPathName
 fsDirectory
 fsFileName
 fsExtension
 fcExtension
 fcFileName
 fcDirectory
 fcWildcards
 | $0001 $0004
 $0010
 $0040
 $0080
 $0800
 $D7B0
 $D7B1
 $D7B2
 $D7B3
 $01
 $02
 $04
 $08
 $10
 $20
 $3F
 79
 67
 8
 4
 $0001
 $0002
 $0004
 $0008
 | Маски для выделения битов в регистре флагов процессора
 
 
 
 
 Коды состояния файлов
 
 
 
 Коды атрибутов файлов
 
 
 
 
 
 
 Длина компонент имени файла
 
 
 
 Флаги компонент имени файла
 
 
 
 
 |  Таблица 39. Переменные модуля WinDos Имя                                 Тип                                 Назначение
 
 DosError                     Integer                        Код ошибки
 Значения переменной DosError указаны в п. 16.5. Таблица 40. Процедуры и функции модуля WinDos 
| Имя | Назначение |  
| Процедуры управления вычислительным процессом |  
| GetlntVec Intr
 MsDos
 SetlntVec
 | Получение адреса программы обработки прерывания Выполнение программного прерывания
 Выполнение функции DOS
 Установка адреса программы обработки прерывания
 |  
| Функции управления вычислительным процессом |  
| GetArgCount GetArgStr
 GetEnvVar
 | Получение числа параметров командной строки Получение параметра командной строки
 Получение значения указанной переменной среды DOS
 |  
| Процедуры работы с каталогами |  
| CreateDir RemoveDir
 SetCurDir
 | Создание нового каталога Удаление пустого каталога
 Изменение текущего каталога
 |  
| Функции работы с каталогами |  
| GetCurDir | Получение текущего каталога |  
| Процедуры работы с файлами |  
| FindFirst FindNext
 GetFAttr
 SetFAttr
 | Поиск первого файла с заданными атрибутами в текущем или заданном каталоге Поиск следующего файла с заданными атрибутами в текущем или заданном каталоге
 Получение атрибутов файла
 Задание атрибутов файла
 |  
| Функции работы с файлами и диском |  
| DiskFree DiskSize
 FileExpand
 FileSearch
 FileSplit
 | Получение числа свободных байтов на диске Получение общего объема памяти диска
 Расширение имени файла до полного
 Поиск файла в списке каталогов
 Разбиение имени файла на три части
 |  
| Процедуры работы с датой и временем |  
| GetDate GetFTime
 GetTime
 PackTime
 SetDate
 SetFTime
 SetTime
 UnpackTime
 | Получение текущей даты, установленной в DOS Получение даты и времени последнего обновления файла
 Получение текущего времени, установленного в DOS
 Упаковка переменной типа DateTime в число типа Longint
 Установка текущей даты в DOS
 Установка даты и времени создания файла
 Установка текущего времени в DOS
 Преобразование упакованных даты и времени в распакованную величину типа DateTime
 |  
| Процедуры разнообразного назначения |  
| GetCBreak GetVerify
 SetCBreak
 SetVerify
 | Проверка способа работы с комбинацией Ctrl+Break Анализ состояния флага проверки операций записи на диск в DOS
 Установка способа работы с комбинацией Ctrl+Break в DOS
 Установка состояния флага проверки операций записи на диск в DOS
 |  
| Функции разнообразного назначения |  
| Dos Version | Получение номера версии DOS |  Далее приведены в алфавитном порядке процедуры, а затем функции модуля, причем, если какая-либо подпрограмма модуля эквивалентна соответствующей подпрограмме модуля Dos, дается соответствующая ссылка на эту подпрограмму. 
 
 |