250
9. Wykorzystanie procedur systemowych w programach użytkowych
numer kanału. Jeżeli CF = 0, to operacja poprawna i rejestry DX:AX wskazują przesunięcie wskaźnika względem początku pliku (ang. move file pointer )
43H - pobranie lub zmiana atrybutów pliku. Rejestry DS:DX definiują adres ciągu znaków określających ścieżkę dostępu do pliku. Jeśli przy wywołaniu procedury AL = 0, to po wykonaniu operacji, rejestr CX określa atrybuty wywołanego pliku. Jeśli AL = 1, to plikowi zostaną przypisane atrybuty zgodnie z zawartością rejestru CX. Jeżeli po wykonaniu operacji CF = 1, wystąpił błąd: AX = 1 - zły numer funkcji w AL, AX = 3 - nie znaleziono ścieżki dostępu, AX = 5 - dostęp niedozwolony. Jeżeli CF = 0, to operacja wykonana prawidłowo (ang. change attributes ),
44H - sterowanie urządzeń znakowych, blokowych (dyski) oraz plików. Przed wywołaniem operacji rejestr AL powinien zawierać kod operacji, zaś BX odpowiednio numer kanału logicznego lub numer stacji dysków (AL = 4,5) (ang. HO control for devices). Następujące operacje są dostępne
AL = 0 - pobranie informacji (w DX) o urzÄ…dzeniu lub pliku,
AL= 1 - zmiana trybu pracy urzÄ…dzenia znakowego (przez DX),
AL = 2 - odczytanie znaków sterujących z urządzenia wejścia-wyjścia,
AL = 3 - przesłanie znaków sterujących do urządzenia wejścia-wyjścia,
AL = 4 - odczyt znaków sterujących ze stacji dysków,
AL = 5 - przesłanie znaków sterujących do stacji dysków,
AL = 6 - sprawdzenie gotowości urządzenia wejściowego lub pliku,
AL = 7 - sprawdzenie gotowości urządzenia wyjściowego,
AL = 8 - sprawdzenie, czy dysk jest wymienialny (AX = 0 - dysk elastyczny,
AX = 1 - dysk stały), ^
AL = B - określenie sposobu dostępu do pliku, który jest wspólny dla kilku programów, ale niedostępny dla danego programu,
45H - utworzenie drugiego kanału logicznego dostępu do pliku już utworzonego. W rejestrze BX powinien znajdować się numer kanału logicznego. Po wykonaniu operacji CF= 1 świadczy o błędzie: AX = 4 - za dużo otwartych plików, AX = 6 - zły numer kanału. Jeżeli CF = 0, to operacja wykonana została prawidłowo i AX zawiera nowy kanał dostępu do pliku (ang. duplicate a file handle ). "-yj
46H - przełączenie kanału logicznego z pliku 1 na plik 2 (na tę samą pozycję). Przed wywołaniem funkcji rejestr BX powinien zawierać dotychczasowy numer kanału, zaś CX nowy numer kanału. Po wykonaniu operacji CF = 0: o błędzie świadczy AX = 6 -kanał określony rejestrem nie jest kanałem otwartym, AX = 4 - za dużo otwartych plików. Jeżeli CF = 0, to operacja jest wykonana poprawnie (ang.force a duplicate of a handle),
47H - ustalenie, który katalog został wybrany dla danej stacji dysków. Przed wywołaniem funkcji rejestr DL musi wskazywać numer stacji, natomiast DS:DI adres 64-baj-towego obszaru pamięci. Po wykonaniu operacji CF=1 i AX= 15 określa, że został podany zły numer stacji. Jeżeli CF = 0, to operacja została wykonana poprawnie (ang. return text of current directory ), m
48H - rezerwowanie pamięci systemowej. Rejestr BX powinien zawierać wielkość rezerwowanej pamięci. Po wykonaniu operacji CF = 1 świadczy o błędzie: AX = 8 - brak
9.2. Procedury systemowe MS DOS
powered by
Mi siol
ST
pamięci, AX = 7 - zniszczona wewnętrzna struktura pamięci systemowej. Jeżeli CF = 0, to pamięć została zarezerwowana i rozpoczyna się od adresu AX:0000 (ang. allocate memory),
49H - zwolnienie pamięci systemowej. Rejestr ES powinien zawierać adres segmentu zwalnianej pamięci. Po wykonaniu operacji CF = 1 informuje o błędzie: AX = 7 zniszczona wewnętrzna struktura pamięci systemowej, AX = 9 - rejestr ES zawiera zły adres segmentu. Jeżeli CF = 0, to operacja wykonana została prawidłowo (ang.free allocated memory),
4AH - zmiana wielkości zarezerwowanego bloku pamięci. Rejestr ES powinien zawierać adres segmentu pamięci, zaś BX żądaną wielkość pamięci. Jeżeli po wykonaniu operacji CF = 1, to wystąpił jeden z błędów: AX = 7 - zniszczona struktura pamięci systemowej, AX = 8 - brak pamięci, AX = 9 - zły adres segmentu (ang. modify allocated memory blocks),
4BH - załadowanie i ewentualnie wykonanie programu. Przed wywołaniem operacji, rejestry powinny zawierać: DS:DX adres ciągu znaków określających ścieżkę dostępu do pliku, ES:BX - adres bloku z parametrami, AL = 0 - załadowanie i wykonanie programu, AL = 3 - tylko załadowanie programu. Po wykonaniu operacji CF=1 świadczy o błędzie: AX = 1 - zła zawartość AL, AX = 2 - nie znaleziono pliku, AX = 8 -brak pamięci, AX = 10 - otoczenie było większe niż 32 KB, AX = 11 - zły format pliku (nie EXE). Jeżeli CF = 0, to operacja została wykonana prawidłowo (ang. load and ex-ecute a program ),
4CH - zakończenie programu i przekazanie sterowania do programu, który go wywołał. Wszystkie otwarte pliki zostają zamknięte. Jest możliwe przesłanie informacji zwrotnej przez rejestr AL (ang. terminate a process),
4DH - pobranie informacji przekazanej z programu wywoływanego do wywołującego. Po wykonaniu operacji, AL zawiera informację przekazaną za pośrednictwem funkcji 4CH. Rejestr AH informuje: AH=0 - zakończenie i usunięcie programu, AH = 1 -naciśnięcie Ctrl-C, AH = 2 - błąd, AH = 3 - zakończenie programu, który pozostaje jako rezydentny (ang. retrieve the return codę of a child),
4EH - poszukiwanie pierwszego pliku, o nazwie zgodnej z wzorcem, którego adres wskazują rejestry DS:DX. Rejestr CX powinien zawierać atrybuty, według których nastąpi poszukiwanie. Po wykonaniu operacji, CF=1 informuje o błędzie: AX = 2 -pliku nie znaleziono, AX = 18 - nie ma pliku o podanej specyfikacji. Jeżeli CF = 0, to operacja wykonana była prawidłowo (ang.find match file ),
4FH - poszukiwanie kolejnego pliku, którego nazwa pasuje do wzorca, poszukiwanie rozpoczyna się od ostatnio znalezionego pliku. Znaczenie rejestrów jak dla funkcji 4EH (ang. step through a directory matchingfiles ),
50H-53H - funkcje zarezerwowane,
54H pobranie do rejestru AL, stanu znacznika weryfikacji zapisu na dyskach (zob. funkcjÄ™ 2EH) (ang.get verify State ),
55H - funkcja zerczerwowana,
56H - zmiana nazwy pliku. Rejestry powinny zawierać: DS:DX - adres ciągu znaków określających ścieżkę dostępu do pliku, ES:DI - adres ciągu znaków określających