Przed przystąpieniem do omawiania poszczególnych rozkazów Amiga DOS należy jeszcze ustalić wzorzec, według którego będzie opisywana składnia. Przyjmiemy go następująco:
NAZWA ROZKAZU (w nawiasie polskie znaczenie tej nazwy), SKŁADNIA ROZKAZU według następującego szablonu:
NAZWA ROZKAZU parametry - W opisie parametrów mogą występować następujące typy:
- Parametry, które musisz wpisać przy każdym użyciu rozkazu, podane są w "odwróconych" nawiasach trójkątnych.
- Parametry opcjonalne (możesz je podać, ale nie musisz) umieszczone są w nawiasach kwadratowych. Jeśli jednak je podasz, należy je wpisać dokładnie tak, jak tutaj.
- Parametry użytkownika będą umieszczone w nawiasach zwykłych. Parametr użytkownika to taki parametr, którego sposób wpisania zależy od Ciebie, na przykład: w rozkazie RENAME (stara nazwa) (nowa nazwa) w miejsce parametru "stara nazwa" wpisujesz nazwę zbioru, którą chcesz zmienić, choćby "df0:stary", a w miejsce parametru "nowa nazwa" nazwę zbioru, na jaką chcesz zmienić (może być na przykład "df0:nowy).
- Przełączniki to takie parametry, których używa się zamiennie. Będą one oddzielone kreską pionową, na przykład TO|AS. Jeśli chcesz zastosować taki parametr, musisz wybrać jeden z nich i wpisać go tak, jak jest podany w opisie
Na koniec jeszcze dwie uwagi techniczne:
- Z lenistwa, a i dla zaoszczędzenia miejsca, wszędzie gdzie powinna być użyta nazwa Amiga DOS, użyłem skróconej nazwy ADOS. Podobnym skrótem Jest WB, czyli Workbench.
- Ze względów technicznych (skład), czasem może się zdarzyć, że jakiś wiersz zostanie w druku podzielony w sposób mogący zmylić początkujących użytkowników. W związku z tym na "rzeczywistym" końcu każdego wiersza w przykładzie umieściłem znaczek potęgi w nawiasie (^). Przy przepisywaniu nie należy go bezmyślnie wklepywać do komputera. Można sobie skojarzyć, że jest to naciśnięcie klawisza [Return]. Jeśli na końcu wiersza w szpalcie nie ma takiego symbolu, oznacza to, że należy wpisywać dalej to, co jest w następnym wierszu wydruku, aż do napotkania na znaczek (^).
I jeszcze uwaga dla początkujących. Przed rozpoczęciem jakichkolwiek eksperymentów z ADOS należy:
- Wykonać kopię dyskietki z Workbenchem.
- Wczytać taką dyskietkę, a następnie kliknąć kolejno na ikony Workbench, system i CLI lub Shell, po czym otworzy się okno ze znaczkiem zachęty (prompt). W oknie tym będziemy mogli wpisywać przykładowe rozkazy, a także eksperymentować tymi rozkazami. o ile tylko pracujemy na kopii - nie ma się czego obawiać. Nie ma bowiem możliwości "uszkodzenia" Amigi za pomocą najgłupszej nawet kombinacji parametrów
Teraz możemy już przejść do właściwego opisu. Rozkazy będziemy poznawać w kolejności takiej, jak w tabelce z pierwszego odcinka.
; (średnik - komentarz)
Sładnia dla wszystkich systemów operacyjnych jest taka sama:
[( rozkaz ADOS )] ; ( komentarz )
gdzie: rozkaz ADOS - to dowolny prawidłowy rozkaz Amiga DOS; komentarz - to dowolny tekst ASCII.
Średnik "mówi" Amidze, że wszystkie znaki, jakie będą znajdować się za nim (aż do końca wiersza), są komentarzem. Może to być na przykład tekst objaśniający działanie rozkazu. W tekście, jaki znajduje się po średniku, możemy użyć dowolnych znaków. Cały komentarz zostanie przez Amigę zignorowany i będzie tylko wyświetlony na ekranie - choćby po to, abyś po roku od napisania zbioru typu "batch" wiedział co miałeś na myśli pisząc ten zbiór. Można powiedzieć, że "średnik" ma w ADOS działanie takie samo jak rozkaz REM w BASIC-u.
Rozkaz "średnik" zadziała zarówno wówczas, gdy będzie umieszczony w zbiorze, jak i przy wpisywaniu rozkazu "z ręki". Oczywiście w tym drugim przypadku nie ma sensu opatrywanie rozkazu komentarzem - niemniej taka możliwość także istnieje. Jeśli chcesz zamieścić komentarze w zbiorze, radziłbym zachować umiar. Objaśnienia wprawdzie ułatwiają życie, ale zabierają miejsce na dysku. Czasem może Ci tego miejsca na dyskietce zabraknąć. Komentarz ponadto (niewiele, ale zawsze) wpływa na zwolnienie szybkości wykonywania zbioru, w którym jest umieszczony.
Przykład :
SetMap d-pl; tutaj ustawimy rozkład polskich znaków dla klawiatury niemieckiej, autorstwa ks. Pikula (^) LoadWb delay; a tu ładujemy Workbench z trzysekundowym opóźnieniem (^) ; w następnym wierszu wyświetlimy katalog (^)
* (GWIAZDKA - Oznaczenie aktualnego okna konsoli lub kody "ESCAPE")
Gwiazdka nie jest "samodzielnym" rozkazem ADOS. Warto jednak wiedzieć, co oznacza, gdyż może się to przydać w pracy z systemem. Symbol ten w ADOS ma dwa całkiem różne znaczenia:
- Możemy za jego pomocą oznaczyć aktualne okno konsoli. Nie dotyczy to jednak wszystkich rozkazów ADOS, a jedynie tych, w których występują argumenty FROM i TO (na przykład COPY).
- Możemy też użyć go jako znaku poprzedzającego kody "escape".
Najłatwiej będzie to zrozumieć na podstawie przykładów:
COPY FROM * TO DF0:moj_zbior (^) lub w skrócie: COPY * DF0:moj_zbior (^)
Jeśli po wpisaniu tego rozkazu naciśniesz klawisz [Return], to na sformatowanej dyskietce znajdującej się w stacji DF0: zostanie otwarty zbiór o nazwie "moj_zbior". Od tego momentu wszystko to, co będziesz wystukiwał na klawiaturze, będzie się zapisywało do takiego zbioru. W momencie gdy uznasz, że wystarczy tej zabawy, należy ją przerwać, naciskając jednocześnie klawisze [CTRL] i [\]. Teraz zobaczmy, co zapisało się na dyskietce. Moglibyśmy w tym celu posłużyć się rozkazem TYPE, ale jeszcze go nie znamy. Zastosujmy zatem rozkaz "odwrotny" do użytego przed chwilą:
COPY FROM DF0:moj_zbior TO * (^) względnie: COPY DF0:moj_zbior * (^)
Po wydaniu takiego rozkazu zostanie po prostu wydrukowany na ekranie tekst znajdujący się na dyskietce w zapisanym właśnie zbiorze.
Drugim znaczeniem "gwiazdki" jest sygnalizowanie kodu "escape". Rozkaz taki jest używany podczas wydruków. No dobrze, ale na co to komu potrzebne? Wbrew pozorom jest potrzebne, i to bardzo. Zostanie to jednak opisane dokładniej przy rozkazie ECHO.
? (ZNAK ZAPYTANIA - podaje wzorzec stosowania parametrów)
Składnia dla wszystkich systemów jest taka sama. Przykład :
>rozkaz ADOS< ?
Gdzie - rozkaz ADOS - to dowolny prawidłowy rozkaz Amiga DOS. UWAGA: pomiędzy rozkazem a znakiem zapytania musi znajdować się spacja. Wzorzec stosowania parametrów składa się z:
- nazwy rozkazu;
- nazw parametrów, zakończonych znakiem "/" i literą:
- /A - oznacza, że ten argument musi być ZAWSZE zastosowany.
- /F - oznacza argument KOŃCOWY (to znaczy, że musi występować jako ostatni argument we wpisywanej linii).
- /K - ten argument wymaga odpowiedniego SŁOWA KLUCZOWEGO.
- /N - ten argument jest wartością NUMERYCZNĄ.
- /S - taki argument jest PRZEŁĄCZNIKIEM (DYREKTYWĄ).
Jeśli w składni pojawia się kilka przełączników, powinny być one stosowane oddzielnie. Przykład :
dir ? (^)
spowoduje, że na ekranie pojawi się tekst:
DIR,OPT/K,ALL/S,DIRS/S,FILES/S,INTER/S
Oznacza to, że po parametrze OPT (który notabene można opuścić) należy użyć słów kluczowych (jakich, o których przekonacie się z opisu rozkazu DIR, pozostałe zaś parametry są przełącznikami. Jeśli po zapoznaniu się z opisem naciśniemy klawisz [Return], rozkaz ADOS zostanie normalnie wykonany. Rozkaz "znak zapytania" jest bardzo wygodny, zwłaszcza przy poszukiwaniu składni rozkazów z dużą liczbą parametrów
> >> < (ZNAK "WIĘKSZY NIŻ", "PODWÓJNIE WIĘKSZY" I "MNIEJSZY NIŻ" - Sterowanie strumieniami Wejścia i Wyjścia)
Składnia :
(rozkaz ADOS) > (nazwa urządzenia)
Lub :
(rozkaz ADOS) < (nazwa urządzenia)
Gdzie :
- rozkaz ADOS - to dowolny prawidłowy rozkaz Amiga DOS. Uwaga: Pomiędzy rozkazem a znakiem musi znajdować się spacja
- nazwa urządzenia - to systemowa nazwa urządzenia logicznego lub fizycznego Amigi.
Są to... Dla Systemu 1.2 :
- CON: - konsola (okienko, w którym wpisujesz komendy).
- DF0: - odnosi się do wbudowanej stacji dysków.
- DF1: - odnosi się do (pierwszej) zewnętrznej stacji dysków. W Amigach 1500,2000,2500,3000/30 i 4000/40 jest zarezerwowana dla pierwszej zewnętrznej stacji.
- DF2: - odnosi się do kolejnej (drugiej) dołączonej zewnętrznej stacji dysków
- DF3: - odnosi się do kolejnej (trzeciej) dołączonej zewnętrznej stacji dysków. UWAGA: Zamiast nazw DF0: do DF3: możemy tu w rozkazie użyć "logicznej" nazwy urządzenia, którą w tym wypadku będzie nazwa dysku znajdującego się w odpowiedniej stacji (np. Empty:). Należy jednak pamiętać, że po nazwie stacji należy podać NAZWĘ ZBIORU, który się znajduje na dyskietce lub który chcemy stworzyć.
- DH0: - (lub ogólnie DHn:, gdzie n oznacza numer logicznego dysku lub partycji) - odnosi się do jednej z partycji na twardym dysku. (W Amigach wyposażonych w kontroler SCSI można podłączyć do 7 dysków/urządzeń, a co za tym idzie otrzymamy siedem lub więcej partycji, natomiast w tych, które mają wbudowany kontroler AT-BUS np. A1200 - tylko dwa dyski i minimalnie dwie partycje). Podobnie jak w przypadku DFn: , można używać nazwy partycji zamiast jej symbolu (np. System2.0: lub Work:). Po DHx: należy, podobnie jak w dyskietkach, podać NAZWĘ ZBIORU. UWAGA! Zamiast DH0: użytkownik może nadać partycji dowolną, niezbyt długą nazwę. Np. niektórzy producenci stosują nazwę HD0:.
- CD0: - odnosi się do (pierwszego) napędu dysków CD-ROM (np. w Amidze CDTV, A570 lub w specjalnych driverach do napędów SCSI dla dysków optycznych). Pozostałe uwagi jak w przypadku DH0:.
- NIL: - odnosi się do urządzenia-widma, które... nic nie robi. Wszystkie dane tam wpisywane nikną, a czytanie z tego urządzenia kończy się natychmiastowym otrzymaniem znaku świadczącego o końcu pliku (EOF). Typowe zastosowanie to np. komenda FF >NIL: - spowoduje to, że napisy, które normalnie ukazują się przy wywołaniu komendy FF, powędrują do NIL: i nie zostaną wyświetlone.
- RAM: - Jest to tak zwany RAM-Dysk, czyli emulacja "dodatkowego" dysku w pamięci komputera. Wielkość takiego udawanego dysku zależy tylko od ilości wolnej pamięci Twojej Amigi. W odróżnieniu od innych komputerów (na przykład peceta) w ADOS nie musisz mieć specjalnych programów pozwalających na założenie takiego RAM-Dysku. Nie musisz także określać jego wielkości. W momencie zakładania rezerwuje on sobie tylko niewielką ilość na dane sterujące. Pojemność RAM-Dysku rośnie w momencie przegrywania do niego programów. Należy jednak pamiętać o tym, że w momencie wykonania resetu, lub wyłączenia Amigi dane z RAM-Dysku, zostaną zmazane. Podobnie jak w przypadku DF0: po RAM: należy podać nazwę pliku.
- PAR: - odnosi się do "paralel.device".
- PRT: - odnosi się do "printer.device".
Oba urządzenia odwołują się do drukarki. Różnica polega na tym, że dane przechodzące przez PRT: zmieniane są odpowiednio przez driver drukarki, a używając PAR: możemy przesłać dane bez żadnych przekodowań.
- SER: - odnosi się do portu szeregowego poprzez urządzenie "serial.device".
Dla Systemu 1.3 stosuje się mnemoniki jak wyżej, a dodatkowo:
- AUX: - pozwala na obsługę urządzeń podłączonych do złącza szeregowego poprzez urządzenie "serial.device" bez buforowania.
- NEWCON: - jest to konsola podobna do opisanej wyżej CON:, jednak działająca z poziomu Shella (Shell jest to znacznie ulepszone CLI wprowadzone do systemu w wersji 1.3).
- PIPE: - kontroluje wejście/wyjście, zapewniając komunikację między programami. Jest to bufor podobny do CLIPBOARD:. Jego działanie objaśni przykład:
COPY DF0:nazwa_pliku PIPE:
COPY PIPE: PAR:
Obowiązuje zasada FIFO (first in first out - pierwszy wszedł pierwszy wychodzi). Takowoż jeżeli skopiujemy dwa zbiory plik1, a potem2, to potem czytając z PIPE: otrzymamy pliki w tej samej kolejności.
- RAD: - jest to odmiana opisanego wcześniej RAM-Dysku, RAD: różni się od RAM: tym, że jego zawartość nie znika w momencie wykonania resetu. Usunąć Go można jedynie wyłączając komputer lub korzystając z rozkazu RemRad. W odróżnieniu od RAM: - jeśli zakładamy RAD: musimy określić jego wielkość. Od Systemu 2.1 można zakładać więcej niż jeden RAD:
- RAW: - Jest to kolejna odmiana konsoli. Od opisywanych CON: NEWCON: różni się jednak tym, że dane na niej mogą być jedynie wyświetlane, i to w takim formacie, w jakim zostały dostarczone - bez możliwości edycji.
Dla Systemu 2.04 dodatkowo :
- ENV: - urządzenie, a raczej przypis, zakładany zwykle w RAM-Dysku, służące do przechowywania tymczasowych danych o systemie (m.in. preferencji). Wykorzystywane jest także przez niektóre programy (zwłaszcza graficzne, jak niektóre wersje Scali, Clarissa czy ImageFx) do przechowywania zmiennych "środowiskowych". To tu zgrywa się preferencje po wybraniu gadżetu "Use".
- ENVARC: - Przypis oznaczający katalog, w którym trzymane są dane o systemie (np. preferencje). Stąd są one kopiowane do ENV: Tutaj zgrywane są preferencje po wybraniu gadżetu "Save". Dzięki zastosowaniu tymczasowego katalogu na preferencje można je dowolnie zmieniać, bez obawy o to, że nie da się powrócić do poprzednich ustawień.
- T: - urządzenie (przypis) zakładane w RAM-Dysku do czasowego przechowywania niektórych danych podczas wykonywania programu.
(W wersji dla Amigi 600/1200 dodatkowo występuje urządzenie CC0: przeznaczone dla obsługi kart PCMCIA).
Dla Systemu 2.1 dodatkowo :
- PC0: - Urządzenie kontrolujące pracę wewnętrznej stacji dysków w trybie MS-DOS.
- PC1: - Urządzenie kontrolujące pracę wewnętrznej stacji dysków w trybie MS-DOS.
- TAPE: - Urządzenie do obsługi streamera. Wprawdzie streamer zainstalowano już wcześniej w A2500 - jednak tam jego obsługa odbywała się na nieco innych zasadach.
Dla Systemu 3.0 dodatkowo :
- QUEUE: - Urządzenie ustawiające "w kolejce" dane oczekujące na wyjście z komputera.
Dla Systemu 3.1 dodatkowo :
- FH0: (do FHn:) - urządzenie pozwalające na obsługę najstarszych wersji kontrolera A2090 (MFM). UWAGA: Nowsze wersje tego kontrolera były już standardu SCSI: i do nich stosuje się urządzenie DH0:
- MAP: - urządzenie pozwalające na obsługę twardych dysków, których kontroler ma mapowany ROM.
UWAGA: Aby móc użyć jakiejkolwiek z wymienionych wyżej nazw, należy wcześniej dane urządzenie zainstalować (o czym będzie mowa dalej, przy opisie tak zwanego "mountlist").
To jednak nie wszystko. Zamiast jednej z wymienionych nazw można tu wpisać jeszcze inne łańcuchy, o czym dowiecie się z dalszej lektury.
Operatory są jednak niekiedy traktowane jako rozkazy ADOS, a ponieważ są one bardzo często stosowane, zamieszczam tu ich opis.
> - powoduje przesłanie wszystkich informacji z konsoli na urządzenie wymienione "od strony szpica". Zamiast urządzenia może być tam wymieniona nazwa zbioru (ze ścieżką). W tym ostatnim wypadku zawartość strumienia znaków z konsoli zostanie przesłana do tego zbioru.
Uwaga. Można przyjąć, że każdy rozkaz wykonywany w Shell-u lub CLI ma niewidzialną dyrektywę >CON: kierującą wszystkie znaki przez niego wypisywane na konsolę. Przykład :
DIR DF0: >PRT:
spowoduje, że zostanie wydrukowany katalog dyskietki znajdującej się w stacji DF0: na drukarce ustawionej w preferencjach. Można także przekazać dane do zbioru, na przykład :
DIR DF0: >RAM:Katalog
spowoduje, że katalog dyskietki zostanie zapisany w zbiorze o nazwie "katalog", który będzie utworzony w RAM-Dysku.
< - Ten operator, jak łatwo się domyślić, działa w sposób odwrotny, to znaczy może przekazać dane z urządzenia lub ze zbioru do konsoli, a raczej do wywoływanego z niej rozkazu. Przykładowo, gdy rozkaz oczekuje od nas wpisania jakiegoś tekstu, można to zautomatyzować, biorąc tekst z pliku :
ROZKAZ_WPISZ <RAM:Plik
Ponadto często wykorzystuje się sekwencję <NIL: która powoduje że program nie będzie czekał na jakiekolwiek dane wejściowe.
RUN <NIL: >NIL: Uspij
Linia ta uruchomi "w tle" rozkaz Uspij i umożliwi zamknięcie okna CLI/Shell. (Wyjaśnienie dlaczego tak się dzieje zajęłoby kilka stron...).
Uwaga: Następujący rozkaz
RUN Uspij <NIL: >NIL: Uspij
spowoduje, że nie będzie można zamknąć CLI/SHella,Gdyż obie re dyrekcje odnoszą się do komendy Uspij, a nie do RUN!
RUN <NIL: >NIL: Uspij <RAM:Plik1 >RAM:Plik2
Ten rozkaz należy rozpatrywać w dwóch częściach - RUN <NIL: >NIL: oraz Uspij <RAMLplik1 >RAM:plik2.
>> - działanie tego operatora jest bardzo podobne do działania operatora ">". Jednak różni się on tym, że w przypadku, gdy zbiór podany po ">>" już istnieje, dane zostaną do niego dopisane zamiast kasowania poprzedniej zawartości zbioru. Przykład :
DIR DF0: >RAM:Katalog
DIR DF1: >>RAM:Katalog
Najpierw zostanie utworzony w RAM-Dysku zbiór o nazwie "katalog", do którego będzie zapisany katalog dyskietki ze stacji DF0: a następnie do tego zbioru zostanie dopisany katalog dyskietki ze stacji DF1: Gdybyśmy nie użyli ">>", katalog DF1: zamazałby katalog DF0:
Jeżeli użylibyśmy tylko drugiego rozkazu (z podwójnym kierunkiem), to zbiór "katalog", który jeszcze nie istnieje - zostanie utworzony. UWAGA: Operator ">>" działa wyłącznie z poziomu Shella. To tyle, kolejne rozkazy ADOS przedstawię za miesiąc.
Marek Pampuch, Amiga Magazyn, Luty 1994r.