Funkcje i procedury zawarte w tym module umo¿liwiaj±
u¿ytkownikowi ingerowanie w system operacyjny komputera. Pozwalaj±
wykonaæ wiêkszo¶æ poleceñ systemu operacyjnego, zwi±zanych z operacjami
dyskowymi, operacjami na funkcjach przerwañ BIOS-u i DOS-u itp.
Poni¿ej zamieszczono wykaz wszystkich funkcji i procedur, wchodz±cych
w sk³ad niniejszego modu³u, oraz wykaz niezbêdnych do ich u¿ycia
sta³ych, zmiennych i typów predefiniowanych.
Sta³e
Do identyfikacji atrybutów plików dyskowych
ReadOnIy = $01; plik tylko do odczytania
Hidden = $02; plik ukryty
SysFile = $04; plik systemowy
VolumelD = $08; etykieta dysku
Directory = $10; katalog dyskowy
Archive = $20; plik archiwalny
AnyFile == $3F; suma powy¿szych 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 stosowany do generowania informacji o pliku dyskowym
SearchRec = record
Fill:array(1..21] of Byte;
Attr: Byte; {atrybuty pliku}
Time: Longint; {czas za³o¿enia pliku}
Size: Longint; {wielko¶æ pliku (bajty)}
Name: string[12] {nazwa i rozszerzenie}
end;
rekord stosowany przy przekszta³caniu zakodowanej wersji czasu
aktualizacji pliku - rekord daty i czasu
DateTime = record
Year, Month, Day, Hour, Min, Sec: Word
end;
typy napisowe
ComStr = string [ 127]; parametr wywo³ania programu
PathStr = string [79]; pe³na nazwa pliku
DirStr = string [67]; ¶cie¿ka dostêpu do pliku
NameStr = string [8]; nazwa pliku bez rozszerzenia
ExtStr = string [4]; rozszerzenie nazwy pliku
DosVersion: Word-funkcja
wynik: Podanie numeru wersji systemu operacyjnego. Otrzymuje
siê warto¶æ, której mniej znacz±cy bajt okre¶la g³ówny numer stosowanej
wersji systemu operacyjnego DOS, a bardziej znacz±cy - poboczny.
Intr (num: Byte: var rej: registers)-procedura
num - numer przerwania
rej - przekazywane warto¶ci pól rekordu
wynik: Wykonanie przerwania o podanym numerze z przes³aniem warto¶ci
pól rekordu rej do rejestrów procesora.
MsDos (var rej: registers)-procedura
rej - przekazywane warto¶ci pól rekordu
wynik: Wykonanie przerwania systemu operacyjnego DOS.
GetDate (var rok, mc, dn, dntyg: Word)-procedura
rok -1980.. 2099
mc-1-12
dn-1..31
dntyg-0..6
wynik: Podanie daty z zegara systemowego (dntyg = O oznacza niedzielê).
SetDate (rok, mc, dn: Word)-procedura
rok -1980.. 2099
mc-1..12
dn-1..31 wynik: Ustawienie kalendarza.
GetTime (var godz, min, sêk, sêk 100: Word)-procedura
godz-0..23
min -O.. 59
sêk - O..59
sek100-0..99
wynik: Podanie bie¿±cego czasu z zegara systemowego.
SetTime (godz, min, sek, sek100: Word)-procedura
godz-0.. 23
min - 0..59
sek - 0..59
sek100-0..99 wynik: Ustawienie zegara systemowego na zadan± godzinê.
GetCBreak (var break: Boolean)-procedura
break - zmienna typu Boolean
wynik: Sprawdzenie, czy naci¶niêto klawisze CtrI-Break. Warto¶æ
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)-procedura
break - jak w GetCBreak
wynik: Ustawienie prze³±cznika kontroli stanu klawiszy CtrI-Break.
GetVerify (var verify: Boolean)-procedura
verify - zmienna typu Boolean
wynik: Stan prze³±cznika weryfikacji zapisu na dysku. Warto¶æ
True oznacza przeprowadzanie weryfikacji zapisu na dysku, False
- ¿e weryfikacja zapisu na dysku nie jest przeprowadzana.
SetVerify (verify: Boolean)-procedura
verify = True oznacza przeprowadzanie weryfikacji zapisu na dysku
verify = False oznacza, ¿e weryfikacja zapisu na dysku nie bêdzie
przeprowadzana
wynik: Ustawienie prze³±cznika kontroli zapisu na dysku.
DiskFree (dysk: Byte): Longint-funkcja
dysk - numer stacji (O - bie¿±ca, 1 - A:, 2 - B: itd.)
wynik: Liczba wolnych bajtów na wskazanym dysku.
DiskSize (dysk: Byte): Longint-funkcja
dysk - numer stacji (O - bie¿±ca, 1 - A:, 2 - B: itd.)
wynik: Pojemno¶æ wskazanego dysku (w bajtach).
GetFAttr (var plik; var atr: Word)-procedura
plik - plik dyskowy zwi±zany ze zmienn± plik
atr - atrybuty pliku dyskowego
wynik: Przypisanie parametrowi atr atrybutów pliku wskazanego
przez plik (patrz: Sta³e).
SetFAttr (var plik; atr: Word)-procedura
plik - plik dyskowy zwi±zany ze zmienn± plik
atr - atrybuty pliku dyskowego
wynik: Zmiana warto¶ci poszczególnych atrybutów pliku wskazanego
przez plik na nowe (atr).
GetFTime (var plik; var czas: Longint)-procedura
plik - plik dyskowy zwi±zany ze zmienn± plik
czas - zakodowany czas ostatniej aktualizacji pliku dyskowego
wynik: Czas ostatniej aktualizacji wskazanego pliku dyskowego,
mo¿liwy do odczytania po u¿yciu procedury UnpackTime.
SetFTime (var plik; czas: Longint)-procedura
plik - plik dyskowy zwi±zany ze zmienn± plik
czas - zakodowany czas utworzenia pliku dyskowego
wynik: Zmiana czasu aktualizacji wskazanego pliku dyskowego.
UnpackTime (pak: Longint; var rek: DateTime)-procedura czas -
zakodowany czas ostatniej aktualizacji pliku dyskowego
rek - rekord daty i czasu
wynik: Konwersja kodu czasu aktualizacji pliku, odczytanego w
GetFTime, na rekord daty i czasu (patrz: Typy).
PackTime (var rek: DateTime; czas: Longint)-procedura
czas - zakodowany czas ostatniej aktualizacji pliku dyskowego
rek - rekord daty i czasu
wynik: Konwersja rekordu daty i czasu na kod czasu aktualizacji
pliku dyskowego.
FindFirst (maska: PathStr; atr: Word; var info: SearchRec)-procedura
maska - wzorzec nazwy i rozszerzenia z ewentualn± ¶cie¿k± dostêpu
do szukanego pliku
atr - atrybut szukanego pliku
info - rekord zawieraj±cy informacje o znalezionym pliku (patrz:
Typy)
wynik: Szukanie pierwszego pliku wed³ug zadanego wzorca i atrybutów.
Uzyskane informacje znajduj± siê w zmiennej info. Brak pliku jest
sygnalizowany w zmiennej DosError (patrz: Komunikaty b³êdów).
FindNext (var info: SearchRec)-procedura
info - rekord zawieraj±cy informacje o znalezionym pliku (patrz:
Typy)
wynik: 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 (patrz: Komunikaty b³êdów).
GetlntVec [num: Byte; var wek: Pointer)-procedura
num - numer przerwania
wek - wska¼nik procedury obs³ugi przerwania
wynik: Przypisanie wek warto¶ci równej wska¼nikowi procedury
obs³ugi przerwania o danym numerze num.
SetIntVec (num: Byte; wek: Pointer)-procedura
num - numer przerwania
wek - wska¼nik procedury obs³ugi przerwania
wynik: Nowa interpretacja przerwania o danym numerze num, polegaj±ca
na wywo³aniu procedury obs³ugi wskazanej przez wska¼nik wek.
SwapVectors-procedura
wynik: Powrót do poprzedniej interpretacji przerwañ wed³ug wska¼ników
procedur ich obs³ugi.
Keep (kod: Word)-procedura
kod - kod wyj¶cia
wynik: Zakoñczenie wykonywania programu z pozostawieniem go w
pamiêci wraz ze stosem i stert±.
Exec (dostêp: PathStr; par: ComStr)-procedura
dostêp - nazwa pliku lub pe³na nazwa pliku
par - parametr wywo³ania programu
wynik: Wywo³anie programu z poziomu programu wykonywanego w danej
chwili (z zadanymi parametrami).
DosExitCode: Word-funkcja
wynik: Przyczyna zakoñczenia programu wykonywanego za pomoc±
Exec:
0 - normalne zakoñczenie;
1 - w wyniku u¿ycia klawiszy CtrI-C lub CtrI-Break;
2 - z powodu b³êdu urz±dzenia;
3 - w wyniku u¿ycia procedury Keep.
FSearch (dostêp: PathStr; lista: string): PathStr-funkcja
dostêp - pe³na nazwa szukanego plik
lista - lista katalogów (elementy oddzielane ¶rednikami)
wynik: Szukanie pliku o pe³nej nazwie dostêp z wykorzystaniem
¶cie¿ki okre¶lonej przez parametr lista. Otrzymana warto¶æ to
pe³na nazwa 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ê napis pusty.
FExpand (dostêp: PathStr): PathStr-funkcja
dostêp - pe³na nazwa pliku
wynik: Pe³na nazwa pliku.
FSplit (dostêp: PathStr; var kat: DirStr; var naz: NameStr; var
roz; ExtStr)-procedura
dostêp - ¶cie¿ka dostêpu do pliku dyskowego z jego nazw± i rozszerzeniem
kat - numer stacji i ¶cie¿ka dostêpu
naz - nazwa pliku
roz - rozszerzenie nazwy pliku
wynik: Rozdzielenie podanej pe³nej ¶cie¿ki dostêpu na trzy cz³ony:
numer stacji ze ¶cie¿k± dostêpu, nazwê pliku oraz rozszerzenie.
EnvCount: Integer-funkcja
wynik: Liczba parametrów typu napisowego, okre¶laj±cych parametry
bie¿±cego ¶rodowiska systemu operacyjnego.
EnvStr (num: Integer): string-funkcja
num - numer parametru okre¶laj±cego ¶rodowisko systemu operacyjnego
wynik: Warto¶æ parametru num okre¶laj±cego ¶rodowisko systemu
operacyjnego (patrz: EnvCount).
GetEnv (par: string): string-funkcja
par - nazwa parametru (typu napisowego) okre¶laj±cego ¶rodowisko
systemu operacyjnego
wynik: Warto¶æ podanego parametru (patrz: EnvCount i EnvStr).