Prawo Murphy'ego: Człowiek postępuje rozsądnie wtedy i tylko wtedy, gdy wszelkie inne możliwości zostały już wyczerpane.
Turbo Pascal 7.0 - Moduł Dos
Stałe  |   Typy  |   Funkcje i procedury

Funkcje i procedury zawarte w tym module umożliwiają użytkownikowi ingerowanie w system operacyjny DOS. Pozwalają wykonać większość poleceń systemu operacyjnego związanych z operacjami dyskowymi, operacjami na funkcjach przerwań BIOS i DOS. Poniżej zamieszczono wykaz wszystkich funkcji i procedur, wchodzących w skład modułu oraz listę stałych, zmiennych i typów predefiniowanych.

Stałe

Identyfikacja atrybutów plików dyskowych:

Nazwa stałej Wartość liczbowa Opis
ReadOnly$01plik tylko do odczytu
Hidden$02plik ukryty
SysFile$04plik systemowy
VolumelD$08etykieta dysku
Directory$10katalog
Archive$20plik archiwalny
AnyFile$3Fsuma wszystkich atrybutów

Typy

Rekord rejestrów procesora, używany przy obsłudze przerwań:

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;

Rekord używany do generowania informacji o pliku dyskowym:

SearchRec = record
   Fill: array(1..21] of Byte;
   Attr: Byte;        { atrybuty pliku }
   Time: Longint;     {
   Size: Longint;     {
   Name: string[12]   { nazwa i rozszerzenie }
end;

Rekord używany przy przekształcaniu czasu aktualizacji pliku - rekord daty i czasu:

DateTime = record
   Year, Month, Day, Hour, Min, Sec: Word
end;

Typy napisowe:

ComStr  = string [ 127]; {
PathStr = string [79];   {
DirStr  = string [67];   {
NameStr = string [8];    { nazwa pliku bez rozszerzenia }
ExtStr  = string [4];    { rozszerzenie nazwy pliku }

Funkcje i procedury

DosVersion: Word
Podanie numeru wersji systemu operacyjnego. Otrzymuje się wartość, której mniej znaczący bajt określa główny numer stosowanej wersji systemu operacyjnego, a bardziej znaczący - poboczny.

Intr (num: Byte: var rej: registers)
num - numer przerwania
rej - przekazywane wartości pól rekordu
Wykonanie przerwania o podanym numerze z przesłaniem wartości pól rekordu rej do rejestrów procesora.

MsDos (var rej: registers)
rej - przekazywane wartości pól rekordu
Wykonanie przerwania systemu operacyjnego DOS z przesłaniem wartości pól rekordu rej do rejestrów procesora.

GetDate (var rok, mc, dn, dntyg: Word)
rok   - 1980.. 2099
mc    - 1-12
dn    - 1..31
dntyg - 0..6 (O oznacza niedzielę)
Pobranie daty z zegara systemowego.

SetDate (rok, mc, dn: Word)
rok - 1980.. 2099
mc  - 1..12
dn  - 1..31
Ustawienie daty systemowej.

GetTime (var godz, min, sek, sek100: Word)
godz   - 0..23
min    - O.. 59
sęk    - O..59
sek100 - 0..99
Podanie bieżącego czasu z zegara systemowego.

SetTime (godz, min, sek, sek100: Word)
godz   - 0..23
min    - O.. 59
sęk    - O..59
sek100 - 0..99
Ustawienie zegara systemowego na zadaną godzinę.

GetCBreak (var break: Boolean)
break - zmienna typu Boolean
Sprawdzenie sutawienia klawiszy Ctrl-Break. True oznacza, że program może być przerwany w dowolnej chwili, a False - że tylko w czasie operacji wejścia-wyjścia.

SetCBreak (break: Boolean)
break - zmienna typu Boolean
Ustawienie przełącznika kontroli stanu klawiszy Ctrl-Break.

GetVerify (var verify: Boolean)
verify - zmienna typu Boolean
Sprawdzenie stanu przełącznika weryfikacji zapisu na dysku. True oznacza przeprowadzanie weryfikacji zapisu na dysku, False - że weryfikacja zapisu na dysku nie jest przeprowadzana.

SetVerify (verify: Boolean)
verify - zmienna typu Boolean
Ustawienie przełącznika weryfikacji zapisu na dysku. True oznacza przeprowadzanie weryfikacji zapisu na dysku, False - że weryfikacja zapisu na dysku nie jest przeprowadzana.

DiskFree (dysk: Byte): Longint
dysk - numer stacji (O - bieżąca, 1 - A:, 2 - B: itd.)
Zreaca ilość wolnych bajtów na wskazanym dysku.

DiskSize (dysk: Byte): Longint
dysk - numer stacji (O - bieżąca, 1 - A:, 2 - B: itd.)
Zwraca pojemność wskazanego dysku w bajtach.

GetFAttr (var plik; var atr: Word)
plik - plik dyskowy związany ze zmienną plik
atr  - atrybuty pliku dyskowego
Przypisanie parametrowi atr atrybutów pliku wskazanego przez plik.

SetFAttr (var plik; atr: Word)
plik - plik dyskowy związany ze zmienną plik
atr  - atrybuty pliku dyskowego
Zmiana wartości atrybutów pliku wskazanego przez plik na nowe (atr).

GetFTime (var plik; var czas: Longint)
plik - plik dyskowy związany ze zmienną plik
czas - czas ostatniej aktualizacji pliku dyskowego
Zreaca czas ostatniej aktualizacji pliku dyskowego, możliwy do odczytania po użyciu procedury UnpackTime.

SetFTime (var plik; czas: Longint)
plik - plik dyskowy związany ze zmienną plik
czas - zakodowany czas utworzenia pliku dyskowego
Ustawia czas ostatniej aktualizacji wskazanego pliku dyskowego.

UnpackTime (czas: Longint; var rek: DateTime)
czas - czas w postaci spakowanej
rek - rekord daty i czasu
Konwersja czasu odczytanego w GetFTime na rekord daty i czasu.

PackTime (var rek: DateTime; czas: Longint)
czas - czas w postaci skakowanej
rek - rekord daty i czasu
Konwersja rekordu daty i czasu na czasu w postaci LongInt.

FindFirst (maska: PathStr; atr: Word; var info: SearchRec)
maska - wzorzec nazwy szukanego pliku z ewentualną ścieżką dostępu
atr   - atrybuty szukanego pliku
info  - rekord zawierający informacje o znalezionym pliku
Szukanie pierwszego pliku według zadanego wzorca i atrybutów. Uzyskane informacje znajdują się w zmiennej info. Brak pliku jest sygnalizowany w zmiennej DosError.

FindNext (var info: SearchRec)
info - rekord zawierający informacje o znalezionym pliku
Szukanie następnego pliku według specyfikacji zamieszczonej w procedurze FindFirst. Wartość parametru aktualnego musi być taka sama, jak wartość trzeciego parametru w FindFirst. Brak pliku jest sygnalizowany w zmiennej DosError.

GetlntVec (num: Byte; var wek: Pointer)
num - numer przerwania
wek - wskaźnik procedury obsługi przerwania
Przypisanie wek wskaźnika do procedury obsługi przerwania o numerze num.

SetIntVec (num: Byte; wek: Pointer)
num - numer przerwania
wek - wskaźnik procedury obsługi przerwania
Zainicjowanie obsługi przerwania o danym numerze num przez procedurę wskazaną przez wskaźnik wek.

SwapVectors
Przywraca poprzedniś procedurę obsługi przerwania według wskaźników procedur obsługi.

Keep (kod: Word)
kod - kod wyjścia
Zakończenie wykonywania programu z pozostawieniem go w pamięci wraz ze stosem i stertą.

 
dostęp - nazwa pliku lub pełna nazwa pliku
par - parametr wywołania programu
Wywołanie innego programu z poziomu programu aktualnie wykonywanego z opcjonalnie przekazanymi parametrami.

DosExitCode: Word
Sposób zakończenia programu wykonywanego za pomocą Exec:
0 - normalne zakończenie;
1 - w wyniku użycia klawiszy Ctrl-C lub Ctrl-Break;
2 - z powodu błędu urządzenia;
3 - w wyniku użycia procedury Keep.


 
dostęp - pełna nazwa szukanego plik
lista - lista katalogów (elementy oddzielane średnikami)
Szukanie pliku o podanej nazwie z wykorzystaniem ścieżek określonych przez parametr lista. Otrzymana wartość to pełna nazwa pierwszego znalezionego pliku. Jeśli stacja i katalog są bieżące, to wynikiem jest tylko nazwa pliku. Jeśli plik nie został odnaleziony, to w wyniku otrzymuje się pusty łańcuch znaków.

 
dostęp - pełna nazwa pliku
wynik: Pełna nazwa pliku
Zwraca nazwę podanego plku wraz z pełną ścieżką dostępu.

 
dostęp - ścieżka dostępu do pliku dyskowego z jego nazwą i rozszerzeniem
kat    - stacja dysków i ścieżka dostępu
naz    - nazwa pliku
roz    - rozszerzenie pliku
Rozdzielenie pełnej ścieżki dostępu na trzy człony: stacji ze ścieżką dostępu, nazwę pliku oraz rozszerzenie.

EnvCount: Integer
Zwraca liczbę parametrów bieżącego środowiska systemu operacyjnego DOS.

EnvStr (num: Integer): string
num - numer parametru określającego środowisko systemu operacyjnego
Zwraca wartość parametru num środowiska systemu operacyjnego DOS.

GetEnv (par: string): string
par - nazwa parametru środowiska systemu DOS
Zwraca wartość parametru par środowiska systemu operacyjnego DOS.
« wstecz