SpartaDOS X - instrukcja (9-11)


      Witam wszystkich czytelników w kolejnej edycji instrukcji użytkowania systemu SpartaDOS X. Zanim jak zwykle przejdę do dalszego ciągu opisu systemu SpartaDOS X niejako z "urzędu" wypowiem kilka słów na temat stuffu zamieszczonego w poprzednim wydaniu SERIOUS'a przez Geparda.
 SHELLGX  TXT    322  9-01-88 12:00p
 SHELL    DES     62  9-01-88 12:00p
 SHELL    SFX   7090  9-01-88 12:00p
 SHELLGX  SFX   7438  9-01-88 12:00p

Nie działają ze SpartaDOS X. Są przeznaczone dla SpartaDOS 3.2 i z tego względu nas nie interesują.
 CA2001   COM   2386  9-01-88 12:00p
 CA2001   PL     575  9-01-88 12:00p
 CA2001   SYS   2386  9-01-88 12:00p

Zadaniem tej procedury jest zaprogramowanie stacji CA 2001 do pracy w trybie turbo ze SpartaDOS X. Niestety nie dysponuję tego typu stacją, więc nie mogę obejrzeć efektów działania. SpartaDOS X ma procedury szybkiej transmisji, jednak nie obsługiwały one stacji CA 2001, pomimo, że obsługiwały LDW 2000!
 TTD      PL    1318  9-01-88 12:00p
 TTD      SYS    682  9-01-88 12:00p

Jest to procedura szybkiej transmisji dla stacji TOMS. Właśnie tej procedury używam do obsługi stacji TOMS 710.

VIEW - służy do przeglądania plików zawierających dane graficzne.
TRACE - służy nam do ustalenia długości poszczególnych segmentów pliku oraz adresów wczytywania i ewentualnie inicjalizacji i uruchomienia.
XDIR - jest inicjalizerem dyskowym przeznaczony dla dysków w formacie SpartaDOS. Umożliwia dostęp do podkatalogów. Niestety wiele programów się nieuruchamia...

Wszystkie wyżej wyszczególnione programy mają swoją dokumentację w języku polskim.

  SDV40    COM  12978  9-01-88 12:00p
  WHATIS   COM   9193  9-01-88 12:00p
  SDV40    DOC  10795  9-01-88 12:00p
  WHATIS   DOC   3241  9-01-88 12:00p

Pozostał nam programik SDV40, dzięki któremu możemy dokonywać konwersji plików tekstowych na wiele różnych formatów. Program na pewno zasługuje na uwagę i ostatni WATHIS, jak sam jego nazwa nam sugeruje, służy do rozpoznawania jakiego rodzaju jest badany plik. Obydwa mają dokumentację niestety w języku angielskim.

A teraz już zapraszam do lektury opisu systemu SpartaDOS X...

PEEK

Zadanie: Sprawdzenie zawartości komórki pamięci, lub zamiana DECHEX
Składnia: EEK[$]adres
Typ: ewnętrzny
Związane: POKE

Opis: PEEK pozwala na sprawdzenie zawartości komórek pamięci z poziomu DOS. Jest ponadto użyteczne do szybkiej zamiany liczb dziesiętnych (dec) na szesnastkowe (hex) i odwrotnie. PEEK zwraca wartości dziesiętnie i szesnastkowo podanego adresu, zawratość tej komórki dziesiętnie i szesnastkowo, wartości dwubajtowe (słowa) zapisane w komórkach adres i adres+1 dziesiętnie i szesnastkowo oraz znak ATASCII reprezentujący zawartość wskazanej komórki.

Dobrą praktyką jest sprawdzenie zawartości komórki (PEEK) przed wpisaniem do niej nowej wartości (POKE), szczególnie jeśli nie jesteś pewien tego co robisz. W takim przypadku możesz zwykle odtworzyć poprzednią zawartość komórki, chyba, że komputer się zawiesi.

POKE

Zadanie: zmienia zawartość komórki pamięci
Składnia: POKE [$]adres [$]wartość
Typ: wewnętrzny
Związane: PEEK

Opis: POKE pozwala na zmianę zawartości komórki pamięci z poziomu DOS, co może być użyteczne w plikach poleceń i innych zastosowaniach. Jeżeli nie wiesz dokładnie, co robisz, to bardzo łatwo możesz spowodować zawieszenie systemu. Poniżej znajduje się kilka przykładów użycia POKE:

  • POKE 65 (iosnden) 0=wyłączony, 1=włączony dźwięk podczas transmisji
  • POKE 77 (atract) 0=wyłączenie trybu attract na kilka minut
  • POKE 82 (lmargin) n=lewy margines (0-39)
  • POKE 83 (rmargin) n=prawy margines (0-39)
  • POKE 559 (dmactls) 0=wyłączenie, 34=włączenie obrazu
  • POKE 702 (shflok) 0=małe litery, 64=duże litery
  • POKE 710 (colpf2s) 0=czarny, 53=czerwony, 148=niebieski
  • POKE 730 (keyrep) 1=bardzo szybko, 3=szybko, 5=normalnie
  • POKE 731 (noclik) 0=włączenie, 1=wyłączenie dźwięku klawiszy
  • POKE 752 (crsinh) 0=włączenie, 1=wyłączenie kursora
PROMPT (wskazanie)

Zadanie: Zmienia wskazanie systemowe
Składnia: PROMPT [wskazanie]
Typ: wewnętrzny
Związane: PATH

Opis: Podany tekst jest przyjmowany przez SpartaDOS jako nowe wskazanie systemu. Specjalne symbole mogą być wprowadzane do tekstu w formie "$c", gdzie "c" jest jednym z następujących znaków:

  • L - wyświetla literę bieżącej stacji (A-I)
  • N - wyświetla numer bieżącej stacji(1-9)
  • P - wyświetla szlak w bieżącej stacji
  • D - wyświetla aktualną datę
  • T - wyświetla aktualny czas
  • R - wyświetla znak końca wiersza (EOL)
UWAGA: "P" powoduje odczyt z bieżącej stacji po każdym naciśnięciu RETURN, aby wykryć zmianę dyskietki. Powinno to być wyłączone przed parkowaniem twardego dysku, ponieważ "P" odczytuje dysk i odparkowuje go. W tym celu najlepiej użyć pliku poleceń, który zmienia wskazanie i parkuje twardy dysk. Jeżeli nie został podany parametr, to wyświetlane jest aktualne wskazanie. Na przykład polecenie:
    PROMPT $L:$P>


powoduje wyświetlenie wskazania w formie:
    B:/DOS/


zakładając, że bieżącą stacją jest D2: i bieżącym szlakiem jest "DOS". Znak "_" będzie wyświetlony jako spacja, a nie jako podkreślenie, gdyż wskazanie kończy się spacją. Polecenie PROMPT jest w rzeczywistości odmianą polecenia SET, na przykład pokazane wyżej polecenie może być także wykonane jako
    SET PROMPT=$L:$P>


Standardową wartością zmiennej "PROMPT" jest "D$N:", co wyświetla takie samo wskazanie jak stare wersje SpartaDOS. Jeżeli zmienna "PROMPT" nie jest określona, SpartaDOS X wyświetla tylko znak ">" - jedynym sposobem, aby to uzyskać, jest polecenie:
    SET PROMPT


Nie można użyć małych liter we wskazaniu ponieważ DOS automatycznie zmienia je na duże litery. Można natomiast użyć liter w negatywie (także małych) oraz znaków sterujących kursorem poprzedzonych znakiem "ESC".

Gdy użyjesz we wskazaniu ciągu "$P", to ustalona stacja będzie odczytywana przy każdym wyświetleniu wskazania. Powoduje to błąd, gdy w stacji nie ma dyskietki lub jest uszkodzona, albo gdy dyskietka ma format nie rozpoznawany przez SpartaDOS X (użycie dyskietek w formacie Atari DOS wymaga zainstalowania programu ATARIDOS.SYS).

Użycie "$P" powoduje również kłopoty, gdy chcesz zaparkować twardy dysk, ponieważ dysk jest odparkowywany w celu odczytania szlaku. Zapobiega się temu przez ustalenie wartości zmiennej "PROMPT", która nie zawiera "$P". Ponieważ twardy dysk jest zwykle parkowany przez komputer, można po prostu wpisać

    SET PROMPT


przed parkowaniem dysku. Dla uproszczenia tej operacji można także napisać prosty plik poleceń.

RENAME (zmiana nazwy pliku)

Zadanie: zmienia nazwę jednego lub kilku plików
Składnia: RENAME [d:][path]fname[.ext] (po jednej spacji) fname[.ext]
Odmiany: REN
Typ: wewnętrzny
Związane: MENU

Opis: Jokery mogą być użyte w obu specyfikacjach plików. Urządzenie i szlak mogą być podane tylko w pierwszej nazwie (starej nazwie pliku). Nazwy plików muszą być podane zrówno dla starej jak i dla nowej nazwy, gdyż inaczej wystąpi błąd. Zasady użycia jokerów są takie same jak w polececeniu COPY. Oto kilka przykładów:

    RENAME *.BAK *.DOC


Powyższe polecenie zmienia rozszerzenie na "DOC" we wszystkich plikach z rozszerzeniem "BAK".
    RENAME AC*.* *.XX


To polecenie zmienia rozszerzenie wszystkich plików rozpoczynających się od "AC" na "XX".

UWAGA: Zachowaj ostrożność przy zmienianiu nazw plików. Nie są przy tym sprawdzane istniejące nazwy plików. Nieostrożna zmiana nazw może spowodować nadanie kilku plikom jednakowych nazw. Jedynym sposobem na wyodrębnienie takich plików jest użycie monitora dyskowego jak DISKRX (z zestawu SpartaDOS ToolKit) lub przez nudne powtarzanie poleceń ERASE, UNERASE. W celu wykorzystania drugiego sposobu skasuj wszystkie pliki wielokrotne, a następnie odtwórz je. Odpowiedz "Y" tylko dla jednego z nich i "N" dla pozostałych. Zmień nazwę tego pliku na nieco inną. Powtarzaj cykl UNERASE i RENAME, aż do odtworzenia wszystkich plików.

RMDIR (usunięcie katalogu)

Zadanie: Kasuje pusty podkatalog ze wskazanej stacji dysków
Składnia: RMDIR [d:]path
Odmiany: RD i DELDIR
Typ: wewnętrzny
Związane: CHDIR, MKDIR PATH

Opis: Katalog musi być opróżniony, zanim będzie możliwe jego skasowanie poleceniem RMDIR (ReMove DIRectory). Kasowanym katalogiem jest ostatni katalog wymieniony w ciągu path. Funkcja ta nie jest realizowana przez procedurę ATARIDOS.SYS pomimo, iż podkatalogi (np.w MYDOS) są przez nią odczytywane.

    RD TEST
    DELDIR 3:>MODEM>TEST

Pierwszy przykład kasuje katalog "TEST" w ustalonej stacji. Drugi usuwa podkatalog o nazwie "TEST" ze stacji "D3:" i podkatalogu "MODEM", który znajduje się w głównym katalogu.

UWAGA: Jeżeli plik został otwarty do zapisu, lub wymiany danych, lecz nie został poprawnie zamknięty (zwykle zdarza się to po naciśnięciu [RESET] lub wyłączeniu zasilania, gdy jest on otwarty, choć nie jest widoczny. Podkatalog zawierający taki "widmowy" wpis nie może być skasowany. W celu zaznaczenia takiego pliku jako skasowanego, co pozwoli na usunięcie podkatalogu, można użyć CLEANUP, lub DISKRX z zestawu SpartaDOS ToolKit. Bajt statusu takiego pliku powinien mieć ustawione bity 7 i 3. Należy je skasować i ustawić bit 4. Możliwe jest, że pewne sektory dyskietki zostały już przypisane innemu plikowi. W takim przypadku konieczne jest poprawienie także bitowej mapy dyskietki.

RPM (sprawdzenie szybkości stacji)

Zadanie: Sprawdza szybkość obrotową stacji
Składnia: RPM [d:]
Typ: zewnętrzny na urządzeniu CAR:

Opis: Polecenie RPM (Revolutions Per Minute) sprawdza w sposób ciągły i wyświetla szybkość obrotową stacji dysków elastycznych (w obrotach na minutę ), aż do naciśnięcia dowolnego klawisza. Jest to zwykle używane do kontroli działania stacji dysków (powinno być 288 obr/min dla większości stacji Atari w tym 810 i 1050 oraz 300 obr/min dla XF551). Polecenie to daje także dokładną informację dla twardego dysku. Użycie RPM dla Ramdysku w Multi I/O określa względną szybkość dostępu do ramdysku. Nie działa to jednak dla wewnętrznego ramdysku. Nieprawidłowy wynik uzyskuje się także dla stacji z rozszerzeniem Happy, gdy włączone jest buforowanie ścieżek. Dla stacji TOMS 710 przy włączonym buforowaniu ścieżek wartość ta wynosi 800 i 297 przy wyłączonym buforowaniu.

RS232 (odczyt procedury RS232)

Zadanie: Odczytuje procedurę obsługi RS 232 z interfejsu Atari 850 lub p:R:Connection
Składnia: RS232
Typ: zewnętrzny na urządzeniu CAR:

Opis: Konieczne jest użycie tego polecenia przed pracą z interfejsem Atari 850 lub P:R:Connection, chyba,że wykorzystywany program realizuje to automatycznie. Spróbuj najpierw uruchomić program bez RS 232. Powinieneś słyszeć z głośnika odczyt procedury. Jeśli nic nie słychać i wystąpi błąd, wpisz to polecenie i uruchom program powtórnie.

Nie należy odczytywać wielokrotnie procedury RS232. Jeżeli to zrobisz, system może się zawiesić, gdyż za każdym razem podnoszona jest granica memlo.

SAVE (zapis pliku binarnego)

Zadanie: Zapisuje na dyskietce plik binarny z pamięci
Składnia: SAVE [d:][path]fname[.ext][$] adres [$]adres
Typ: wewnętrzny
Związane: LOAD

Opis: Adresy są przyjmowane jako dziesiętne, chyba, że zostaną poprzedzone znakiem "$", który wskazuje wartości szesnastkowe. Polecenie to jest użyteczne w połączeniu z LOAD do łączenia plików MAC/65 lub zapisu zawartości pamięci w celu przetestowania.

SET (parametry systemu)

Zadanie: wyświetla wartości zmiennych systemowych, lub ustala wartości wybranej zmiennej
Składnia: SET [zmienna[=wartość]]
Typ: wewnętrzny

Opis: Zmienne systemowe są wartościami określającymi pewne parametry systemu. Na przykład, zmienna "CAR" wskazuje poleceniu CAR, gdzie znajduje się plik zawierający zapisany obszar pamięci. Istnieją trzy formy polecenia SET. Na przykład, polecenie:

    SET


wyświetla wartości wszystkich zmiennych systemowych, a:
    SET CAR=A:CAR.SAV


ustawia wartość zmiennej "CAR" na "A: CAR.SAV". Polecenie:
    SET CAR


usuwa zmienną CAR z systemu. To powoduje, że polecenie CAR nie używa pliku przechowującego zawartość pamięci.

SWAP (zmiana numerów stacji)

Zadanie: Pozwala na zmianę konfiguracji stacji dysków
Składnia: SWAP [d,d]
Typ: wewnętrzny

Opis: Swap bez parametrów wyświetla mapę konfiguracji stacji dysków od 1 do 9. Standartowo jest 1=1, 2=2, itd. Na przykład, dla zamiany stacji 1 i 9 wpisz następujące polecenie:

    SWAP 1,9

lub
    SWAP A,I


Kolejność podawania wartości nie jest istotna, więc 1, 9 jest odpowiednikiem 9, 1. Stacje pozostają w takiej konfiguracji, aż do jej zmiany lub wykonania zimnego startu (COLD). Zwróć uwagę, że można użyć litery lub numeru stacji, a po nich nie wpisuje się dwukropka (":"). SWAP działa dodatkowo do konfiguracji stacji poprzez Multi I/O, więc razem z tym interfejsem należy go używać ostrożnie.

TD (wyświetlenie czasu/daty)

Zadanie: pozwala na włączenie i wyłączenie wyświetlania czasu i daty w górnym wierszu ekranu
Składnia: TD ON;OFF
Typ: zewnętrzny na urządzeniu CAR:
Związane: CHTD, DATE, TIME

Opis: Pod względem sposobu działania polecenie TD (Time/Date display) jest podobne do polecenia KEY. Przed użyciem tego polecenia konieczne jest zainstalowanie w systemie procedury JIFFY.SYS lub CLOCK.SYS. Wywołuje ono jedną z tych procedur bezpośrednio (poprzez symbol I_GETTD) i nie może być bez nich użyte. Procedury te są odczytywane samoczynnie, chyba, że użyjesz własnego pliku CONFIG.SYS.

UWAGA: TD ON może być niezgodne z niektórymi programami. Jeżeli napotkasz jakieś problemy, spróbuj użyć TD OFF lub wogóle nie instaluj wyświetlania.

TIME (ustawienie czasu)

Zadanie: wyświetla aktualny czas i pozwala na jego ustawienie
Składnia: TIME
Typ: zewnętrzny
Związane: CHTD, DATE, TD

Opis: Polecenie to powoduje wyświetlenie następującego komunikatu:

    Current time is 15:26:39
    Enter new time:

Możesz teraz wpisać nową godzinę, lub nacisnąć [RETURN], gdy nie chcesz ustawiać czasu. Czas wpisuje się w formacie "hh:mm:ss", gdzie "hh" są to godziny (w systemie 24-godzinnym), "mm" są to minuty, a "ss" to sekundy (SpartaDOS 3.2 stosuje zegar 12-godzinny, zaś SpartaDOS X 24 godzinny). Jeżeli w systemie nie został zainstalowany zegar, to polecenie TIME daje przypadkową wartość. Dwoma stosowanymi zegarami są "CLOCK.SYS" i "JIFFY.SYS" - pierwszy z nich wykorzystuje R-time-8, a drugi korzysta z systemowego zegara do przechowywania czasu. Standardowo jeden z nich zawsze jest instalowany podczas uruchamiania systemu, lecz można to zmienić przez utworzenie własnego pliku "CONFIG.SYS" nie zawierającego programów tych zegarów.

TYPE (wyświetlenie pliku)

Zadanie: wyświetla zawartość wskazanego pliku
Składnia:TYPE [+A:H:P:S] [-A:H:P:S] [D:] [path]fname[.ext] [/P]
Typ: wewnętrzny
Związane: COPY, DUMP, MENU, PAUSE

Opis: Możesz wyświetlić zawartość dowolnego pliku i nie jesteś ograniczony maksymalną długością wiersza (jak było w SparatDOS 3.2). Naciśnięcie [CTRL-1] zatrzymuje i wznawia wyświetlanie. Możesz określić atrybuty jak w poleceniu DIR - standardowymi atrybutami są "-HS" (opis atrybutów znajdziesz w opisie polecenia DIR). Jeżeli dodasz parametr "/P", polecenie TYPE czeka na naciśnięcie klawisza po każdych 23 wierszach tekstu.

UNERASE (odtworzenie pliku)

Zadanie: Odtwarza plik uprzednio skasowany (jeśli to możliwe)
Składnia: UNERASE [d:][path]fname[.ext]
Typ: zewnętrzny na urządzeniu CAR:
Związane: ERASE

Opis: Jokery są dozwolone. Dla każdego pliku, który można odtworzyć, będziesz pytany, czy chcesz go odtworzyć. Jeżeli wiesz, że skasowany plik jest w katalogu, a nie został wymieniony przez polecenie UNERASE, to znaczy, że jego odtworzenie jest niemożliwe z jednej z dwóch przyczyn:

  1. Wpis pliku w katalogu został zajęty przez inny plik, który był zapisany po jego skasowaniu.
  2. Sektor pliku został przypisany innemu plikowi, gdy zajmujący go poprzednio plik został skasowany.
VER (numer wersji)

Zadanie: wyświetla aktualny numer wersji i datę modułu
Składnia: VER
Typ: wewnętrzny

Opis: Polecenie VER (VERsion) pokazuje numer wersji, datę rewizji i zastrzeżenie praw autorskich tak, jak jest wyświetlane przy uruchamianiu systemu.

VERIFY (weryfikacja zapisu)

Zadanie: włącza i wyłącza weryfikację zapisu
Składnia: VERIFY ON;OFF
Typ: wewnętrzny

Opis: Gdy włączone (ON), SpartaDOS wykonuje operację weryfikacji po każdym zapisie na dyskietce w celu sprawdzenia, czy dane zostały poprawnie zapisane i mogą być bez błędu odczytane. Dotyczy to tylko stacji dysków elastycznych. Ponieważ weryfikacja wymaga dodatkowego czasu, to system pracuje nieco wolniej podczas zapisu danych na dyskietkę. VERIFY jest standardowo wyłączone (OFF) - polecenie to jest zwykle stosowane, gdy występują kłopoty ze stacją dysków.

X (odłączenie modułu)

Zadanie: wykonuje program wymagający, aby żaden moduł nie był zainstalowany (jak DISKRX, EXPPRES i większość plików BIN)
Składnia: X [d:][path]fname[.ext][parametry]
Typ: zewnętrzny na urządzeniu CAR:

Opis: Istnieją cztery możliwości uruchomienia programów. Są to:

  1. z włączonym zewnętrznym modułem (poprzez polecenie CAR)
  2. z włączonym wewnętrznym basicem (przez BASIC)
  3. z włączoną biblioteką SpartaDOS X (poprzez wpisanie polecenia lub nazwy programu)
  4. z wyłączonymi wszystkimi modułami (przez polecenie X)
Pierwsze trzy sposoby wykorzystują bibliotekę SparatDOS X do wykonywania różnych funkcji DOS, w tym odczytu i uruchomienia polecenia. Jednakże czwarty sposób nie może użyć biblioteki bez wyłączenia lub przemieszczenia obrazu! Dlatego też następujące możliwości są niedostępne, gdy program jest uruchomiony z poleceniem X:
  • nie jest używany szlak poszukiwań - musisz określić dokładne położenie pliku, jeśli nie znajduje się on w bieżącym katalogu w ustalonej stacji
  • nie są używane mini bufory - operacje zapisu i odczytu pojedyńczych bajtów są bardzo wolne (jest to bardzo rzadki przypadek, gdyż większość programów, które stosują zapis i odczyt pojedyńczych bajtów jest napisana w Basicu lub używa modułu)
  • ponieważ wyłączona jest biblioteka, więc można wczytać i uruchomić tylko zwykłe pliki binarne - zewnętrzne polecenia SpartaDOS (jak FIND lub MENU) są niedostępne
  • kierowanie I/O jest znacznie skrępowane, ponieważ musi korzystać z biblioteki. Przy jego realizacji obraz szybko migocze
Ogólną zasadą jest: "Jeżeli program nie działa z zainstalowanym modułem, poprzedź jego nazwę poleceniem X, w innym przypadku wpisuj poprostu nazwę".

X.COM pozostaje w pamięci podczas pracy wywołanego programu, więc MEMLO jest nieco wyżej niż normalnie, aż do powrotu do DOSu.

Wykonanie zimnego startu (przez skok do $E477), gdy używany jest X.COM, wyłącza całkowicie moduł SparatDOS X i zewnętrzny moduł, jeśli jest zainstalowany.

COMMAND PROCESSOR
SZERSZE MOŻLIWOŚCI

      Command Processor SpartaDOS X może być znacznie rozszerzony poprzez użycie plików poleceń, kierowania I/O w poleceniach, wskazań definiowanych przez użytkownika, szlaków poszukiwania poleceń i innych możliwości.

      Ten rozdział opisuje te możliwości oraz podaje wiele przykładów ich zastosowania. Większość z nich jest nowością w SpartaDOS lub zostało znacznie rozszerzone w porównaniu do poprzednich wersji SpartaDOS.

Pliki poleceń

      Pliki poleceń (batch files) są listami poleceń SpartaDOS, które mogą być przekazane do DOS jako pliki tekstowe. Parametry mogą być do nich dołączone przez wpisanie ich w wierszu polecenia po nazwie pliku poleceń. Składnia jest następująca:

    -fname [param1 param2...param9]


Jeżeli po nazwie pliku (fname) nie zostało podane rozszerzenie, to przyjmowane jest rozszerzenie ".BAT". Parametry (param) są dowolne i mogą być pominięte. Poniżej znajduje się przykład pliku poleceń, który z dwóch plików tworzy trzeci plik zawierający oba pliki źródłowe - nazwijmy go "TEST.BAT".
    COPY %1 %3
    COPY %2 %3/A

Teraz polecenie:
    -TEST PLIK1 PLIK2 WYNIK


połączy pliki "PLIK1" i "PLIK2" dając w rezultacie plik "WYNIK".

Do pliku poleceń można przekazać do 9 parametrów (ponumerowanych od "%1" do "%9"). Parametrem "%0" jest nazwa pliku poleceń (w powyższym przykładzie "TEST"). Parametry "%" mogą być umieszczane w dowolnych miejscach pliku poleceń, w tym również wewnątrz tekstu (tzn. bez spacji przed i za znakiem "%").

Parametry pliku poleceń są automatycznie zapisywane jako zmienne systemowe "_x1", gdzie "x" jest numerem parametru. Ponieważ Command Processor nie jest stale w pamięci, to konieczna jest możliwość zapisywania tych zmiennych w dowolnym miejscu. Oznacza to, że całkowita wielkość parametrów nie może przekraczać 256 znaków, włącznie z nazwami zmiennych ("_x1=") oraz spacjami, które je rozdzielają.

Standardowy plik poleceń

      Przy pierwszym uruchomieniu Command Processor próbuje uruchomić plik poleceń o nazwie "AUTOEXEX.BAT". Jeżeli potrzebne są polecenia ustalające wymaganą konfigurację systemu, należy je umieścić w takim pliku.

Zmienna "BATCH" jest odczytywana przez Command Processor przed wyświetleniem wskazania. Jeżeli zmienna ta istnieje i zawiera nazwę pliku, to plik ten jest wykonywany jako plik poleceń. Gdy zmienna zostanie odczytana to jest kasowana. Wyjaśnia to dlaczego plik "AUTOEXEC" jest odczytywany tylko przy pierwszym uruchomieniu SpartaDOS X. Zmienna "BATCH" może być także użyta do odczytania pliku poleceń o innej nazwie przez użycie wiersza:

    SET BATCH=d:fname.BAT


W pliku CONFIG.SYS

Kierowanie I/O

      Możesz zmienić standardowe wejście i wyjście poleceń SpartaDOS X w wierszu polecenia. W SpartaDOS 3.2 kierowanie jest realizowane poprzez pliki poleceń (dla kierowania wejścia) i polecenie PRINT dla kierowania wyjścia. SpartaDOS X ma wbudowane kierowanie I/O w całkowicie odmienny sposób. Pliki poleceń nie są już wykorzystywane do kierowania wejścia - są one tylko odczytywane przez Command processor. Polecenie PRINT zostało usunięte.

W SpartaDOS X możesz zmienić wyjście pojedyńczego polecenia poprzez dopisanie ">>d:fname" w wierszu polecenia. Podobnie kierowanie wejścia jest realizowane przez włączenie "<<d:fname" w wierszu polecenia. Na przykład, polecenie:

    DIR >>PRN:


kieruje wyjście polecenia DIR na drukarkę (wykaz plików nie pojawia się na ekranie). Odmiennym sposobem kopiowania pliku może być:
    TYPE fname >>docel


jest to wolniejsze od COPY i nie kopiuje do nowego pliku daty.
    BASIC <<AUTOGO


uruchamia program w Basicu o nazwie "START.BAS", jeżeli plik tekstowy "AUTOGO" zawiera wiersz:
    RUN "D:START.BAS"


Jako przykład kierowania wyjścia, poniższy plik poleceń pozwala na obejrzenie dowolnego programu strona po stronie przez skierowanie go do tymczasowego pliku, a następnie wyświetlenie zawartości tego pliku z przerwami:
    %1 %2 %3 %4 %5 %6 %7 %8 %9 >>TEMP
    TYPE TEMP /P
    PAUSE
    DEL TEMP

Na przykład, jeżeli nazwiesz plik poleceń MORE.BAT i chcesz przeczytać wskazówki wyświetlane przez program ARC, użyj:
    -MORE ARC


Szlak poszukiwań

      Za każdym razem gdy podawane jest polecenia bez określenia stacji i/lub szlaku, wykonywane jest sprawdzenie, czy jest to polecenie wewnętrzne (jak ERASE). jeśli nie, to przeszukiwane są zainstalowane polecenia zewnętrzne (jak TD lub KEY, gdy już raz były użyte). Gdy nadal polecenie nie zostało znalezione, to system sprawdza, czy istnieje zmienna systemowa "PATH". Jeżeli tak, to przeszukiwane są wszystkie urządzenia i/lub szlaki wymienione w tej zmiennej (w podanej kolejności). Zmienna "PATH" zapewnia więc znaczną elastyczność systemu, gdyż pozwala na umieszczenie najczęściej stosowanych poleceń, lub programów użytkowych w różnych podkatalogach i łatwe ich odszukanie. Szczególnie wygodne jest to przy korzystaniu z twardego dysku.

Wartość zmiennej "PATH" możesz sprawdzić przez wpisanie:

    PATH


bez parametrów. Standardową wartością tej zmiennej jest:
    CAR:


Szlak poszukiwań (search path) może być zmieniony poprzez wpisanie:
    PATH path1;path2;...;pathn


Każde wpisane urządzenie i/lub szlak musi być oddzielone od innego średnikiem (;). Dobrą praktyką jest przy tym pozostawienie CAR: jako pierwszego wpisu, ponieważ najczęściej używane polecenia znajdują się w tym urządzeniu. Kolejność wpisów jest ważna, gdyż ustala kolejność poszukiwania polecenia. Na przykład:
    PATH CAR:;A:\DOS\;A:\TOOLKIT\;D9:>;A:>;:>


powoduje przeszukiwanie urządzenia CAR:, katalogu DOS w D1:, katalogu TOOLKIT w D1:, ramdysku D9:, głównego katalogu w D1:, głównego katalogu w bieżącej stacji, a następnie bieżącego katalogu w bieżącej stacji.

Jeżeli szlak jest podany w wierszu polecenia, to szlak przeszukiwań nie jest używany. Poczynając od wersji SpartaDOS X 4.19 szlak poszukiwań jest także wykorzystywany przez pliki poleceń, oraz polecenia X, BASIC i CAR. Jest to duża zmiana i bardzo ważna. Jest więc teraz możliwe użycie szlaku przy otwieraniu pliku tylko do odczytu z Basica, lub innego języka przez dodanie 32 do wartości AUX1 w instrukcji OPEN. Na przykład:

    OPEN #1,4,32,0,"D:CONFIG.DAT"


powoduje poszukiwanie wskazanego pliku we wszystkich miejscach wymienionych w zmiennej systemowej "PATH". Nie działa to przy otwieraniu pliku do zapisu, lub wymiany danych, gdyż takie użycie łatwo mogłoby spowodować błędy i uszkodzenia ważnych programów.

Ze względu na tą zmianę, dobrą praktyką jest umieszczanie bieżącego katalogu jako drugiego wpisu w szlaku. Odpowiednia zmiana pokazanego powyżej przykładu daje więc:

    PATH CAR:;;A:\DOS\;A:\TOOLKIT\;D9:>;A:>;:>


gdzie dwa średniki po "CAR:" oznaczają, że powinien być przeszukiwany bieżący katalog.

PROGRAMOWANIE ZE SPARTADOS X

Funkcje SpartaDOS X z Basica

      Wiele możliwości SpartaDOS może być wykorzystywanych w Basicu, Action!, języku maszynowym i innych językach programowania. Poniżej zamieszczony jest wykaz instrukcji Basica, które pozwalają programiście uzyskać dostęp do SpartaDOS X. Zastosowanie ich w innych językach nie powinno sprawić trudności.

W tym wykazie IOCB oznacza Blok Kontroli Wejścia/Wyjścia (Input Output Control Block) zwany także kanałem i numerowany od 0 do 7. IOCB 0 jest używany przez system operacyjny Atari dla edytora ekranowego, więc normalnie nie powinien być wykorzystywany. Dyskietka AtariDOS jest to dyskietka sformatowana w standardzie Atari DOS 2, zarówno pojedyńczej, roszerzonej, jak i podwójnej gęstości. Taki format tworzony przez Atari DOS 2.0s i 2.5, MYDOS, BiboDOS i inne klony DOS 2 oraz przez SpartaDOS X, gdy zostanie użyty tryb Atari DOS. d:, path i fname.ext odpowiadają dozwolonym w SpartaDOS X nazwom urządzenia, szlaku i pliku (z rozszerzeniem) jak zostało to określone w rozdziale 4.

Uwagi o ustalonej stacji

      Należy pamiętać, że D: w Basicu lub innym języku odpowiada stacji standardowej (ustalonej), lecz niekoniecznie stacji numer 1. W Command Processor D: odpowiada stacji numer 4. W większości innych dosów, włącznie z wcześniejszymi wersjami SpartaDOS, D: reprezentuje D1:.

    OPEN #1,4,0,"D:TEST.TXT"


otwiera plik TEST.TXT w ustalonej stacji, lecz niekoniecznie stacji nr.1, do odczytu pod SpartaDOS X.

Dostęp do systemu przez CIO

      Urządzenie D: dostępne przez CIO w SpartaDOS X nie jest procedurą obsługi stacji dysków, lecz systemową procedurą SpartaDOS. Dowolne urządzenie systemu może być dostępne przez CIO z dowolnego programu przez poprzedzenie jej nazwy literką D. Na przykład:

    OPEN #3,8,0,"DPRN:"


otwiera wyjście na drukarkę. Oznacza to również, że D4:, DD:, DD4:, DDD:, DDSK4: i DDSKD: odpowiadają stacji dysków nr.4. Gdy wywołuje się urządzenie inne niż stacja dysków lub moduł SpartaDOS X (CAR:), to część zawierająca fname.ext jest ignorowana. Oczywiście możliwe jest także użycie zwykłych nazw urządzeń: D1:-D9:, E:, P:, R: itd. tak, jak w innych DOS'ach.

Otwarcie pliku

Zadanie: otwiera dostęp do pliku dyskowego poprzez SpartaDOS X
Składnia: OPEN #IOCB,aux1,aux2,"Dd:[path]fname.ext"

Uwagi: Ta instrukcja otwiera plik dyskowy poprzez SpartaDOS X. Aux1 określa tryb (zapis, odczyt, wymiana, katalog itd.), w którym plik jest otwierany. Poniżej podana jest lista dozwolonych wartości aux1. Jeśli nic nie zostało podane, to aux2 powinno być równe 0.

  • 4 - otwiera plik tylko do odczytu
  • 6 - otwiera katalog dyskietki
Umożliwia odczyt katalogu jak przy pomocy poleceń DIR i DIRS. Aux2 służy do wybrania rodzaju katalogu. jeżeli aux2 jest równe 0, to jest użyty format polecenia DIRS. Jeżeli aux2 ma wartość 128, to użyty jest długi format DIR, włącznie z rozmiarem w bajtach, datą i czasem.
  • 8 - otwiera plik tylko do zapisu
  • 9 - otwiera plik w trybie dopisania danych. Dane będą zapisywane na końcu istniejącego pliku. Jeżeli wskazany plik nie istnieje, zostanie utworzony
  • 12 - otwiera plik w trybie wymiany danych. Ten tryb pozwala zarówno na zapisywanie, jak i odczytywanie danych.
    Uwaga: na dyskietkach SpartaDOS możliwe jest ustawienie głowicy i/lub zapis poza końcem pliku otwartego do wymiany
      Przykład:

Oto krótki program napisany w Basic, który odczytuje katalog z dyskietki w stacji nr.1 w długim formacie i wyświetla go na ekranie.

    10 DIM ENTRY$(40)
    20 OPEN #1,6,128,"D1:*.*"
    30 REM TRAP powoduje skok programu
    40 REM do wiersza 80 gdy zostanie
    45 REM koniec katalogu
    50 TRAP 80
    60 INPUT #1, ENTRY$:? ENTRY$
    70 GOTO 60
    80 CLOSE #1

Bezpośredni dostęp do katalogu

      Ustawienie bitu 4 w aux1 (zwiększenie o 16) umożliwia bezpośredni dostęp do katalogu. Pozwala to na odczytywanie i/lub zapisywanie katalogu SpartaDOS tak, jakby był to normalny plik danych. Jest to znacznie szybsze niż zwykły odczyt katalogu, jednak jest to najprostrzy sposób zniszczenia katalogu i uczynienia dyskietki nieużytecznej, gdy popełnisz błąd w jej katalogu. Unikaj bezpośredniego dostępu do katalogu, chyba, że wiesz dokładnie, co robisz i nie obawiasz się utracić informacji zapisanych na dyskietce. Tryb ten jest dozwolony także dla dyskietek Atari DOS, jeśli zainstalowana jest procedura ATARIDOS.SYS. Tłumaczy ona katalog Atari na format SpartaDOS i odwrotnie.

Wykorzystanie szlaku (path)

      Dodanie 32 do wartości aux1 określającej tryb otwarcia tylko do odczytu powoduje, że korzystanie ze szlaku ustalonego przez zmieną "PATH" przy poszukiwaniu pliku, na przykład:

    OPEN #1,4,32,0,"D:CONFIG.DAT"


Nie działa to przy otwieraniu pliku w innym trybie. Więcej informacji na ten temat znajdziesz w rozdziale 5.

Tryb śledzenia

      Dodanie 64 do aux1 ustawia OPEN w trybie śledzenia atrybutów. Teraz aux2 służy do określenia żądanych atrybutów. Jeżeli konieczny jest długi format katalogu, to 128 należy dodać do aux1 zamiast do aux2. W celu określenia śledzonych atrybutów plików następujące wartości powinny być dodane do aux2, zakładając, że początkową wartością jest 0:

            zabezpieczony  +1
            niezabezpieczony  +16
            ukryty  +2
            nieukryty  +32
            archiwalny  +4
            niearchiwalny  +64
            podkatalog  +8
            nie podkatalog  +128

Odczytywane będą tylko te pliki, których atrybuty spełniają wskazane warunki. Wartość aux2 równa 0 powoduje ignorowanie wszystkich atrybutów, w tym nawet "ukrycia" pliku.

Na przykład, aby uzyskać dostęp do katalogu w długim formacie zawierający tylko ukryte pliki, należy wiersz 20 we wcześniejszym przykładzie zmienić następująco:

    20 OPEN #1,6+64+128,2,"D1:*.*"


Dla krótkiego spisu katalogu bez podkatalogów trzeba użyć:
    20 OPEN #1,6+64,128,"D1:*.*"


Zaś długi katalog nieukrytych, zbezpieczonych plików, które mają rozszerzenie ".COM" da nam:
    20 OPEN #1,6+64+128,1+32,"D1:*.COM"


Możliwe jest wybranie przeciwstawnych warunków (na przykład 1+16, zabezpieczone i niezabezpieczone dla każdego z atrybutów. Nie powoduje to błędu, lecz nie zostanie wybrany żaden plik, gdyż żaden wpis katalogu nie spełnia równocześnie obu takich warunków).

Zmiana nazwy pliku (RENAME)

Zadanie: Zmiana nazwy pliku lub grupy plików
Składnia: XIO 32,#IOCB,0,0,"Dd:[path] fname1.ext fname2.ext

Uwagi: Nazwa pliku lub nazwy plików określone przez fname1.ext są zmieniane na fname2.ext, dokładnie tak samo jak przy pomocy polecenia RENAME. Wybrany IOCB powinien być dla tej operacji zamknięty. W specyfikacjach obu nazw mogą być użyte jokery. SpartaDOS X ma funkcję RENAME o rozbudowanym działaniu. Możliwe jest nadanie dwom lub więcej plikom tej samej nazwy, gdy zmienia się równocześnie nazwy kilku plików. Sposób odtworzenia takich plików jest podany w opisie polecenia RENAME w rozdziale 4.

Skasowanie pliku (ERASE)

Zadanie: usuwa zbędny plik z dyskietki
Składnia: XIO 33,#IOCB,0,0,"Dd:[path] fname.ext"

Uwagi: Określony plik lub pliki są usuwane z dyskietki. Wybrany IOCB powinien być dla tej operacji zamknięty. W specyfikacji pliku mogą być użyte jokery. Pomimo iż w niektórych przypadkach możliwe jest odtworzenie skasowanego pliku (patrz polecenie UNERASE w rozdziale 4), to polecenia tego należy używać ostrożnie.

Zabezpieczenie pliku (ATR +P)

Zadanie: zabezpiecza plik lub pliki przed skasowaniem lub zmianą
Składnia: XIO 35,#IOCB,0,0,"Dd:[path] fname.ext"

Uwagi: wskazane pliki będą mogły być otwierane tylko do odczytu. Wybrany IOCB powinien być dla tej operacji zamknięty. W specyfikacji pliku mogą być użyte jokery. Zabezpieczonych plików nie można skasować, zmienić i zapisać oraz nie można zmienić ich nazw.

Odbezpieczenie pliku (ATR-P)

Zadanie: Odbezpiecza pliki uprzednio zabezpieczone
Składnia: XIO 36,#IOCB,0,0,"Dd:[path] fname.ext"

Uwagi: Usuwa to status zabezpieczenia wskazanych plików. Pliki te mogą być teraz skasowane, zmienione lub przemianowane. Wybrany IOCB powinien być dla tej operacji zamknięty. W specyfikacji pliku mogą być użyte jokery.

Ustawienie pozycji w pliku - POINT

Zadanie: pozwala na bezpośredni dostęp do określonego punktu wewnątrz pliku dyskowego (lub poza końcem pliku, jeśli to konieczne)
Składnia: X=POS
              Y=0 (patrz opis)
              POINT #IOCB,X,Y
                       LUB
              A=INT(POS/65536)
              B=INT((POS-A*65536)/256)
              C=POS-A*65536-B*256
              POKE 844+IOCB*16,C
              POKE 845+IOCB*16,B
              POKE 846+IOCB*16,A
              XIO 37,#IOCB,aux1,aux2,"Dd:"

Uwagi: Inaczej niż Atari DOS, który stosuje pozycję na dyskietce (sektor i bajt w sektorze) dla funkcji NOTE i POINT, SpartaDOS X używa względnej pozycji w pliku. POS jest tu kolejnym bajtem aktualnie otwartego pliku. Na przykład, jeśli POS jest 612, to następna instrukcja GET odczyta z pliku 613 bajt. Wartość ta odpowiada tej samej pozycji w pliku, nawet gdy plik zostanie fizycznie przeniesiony na inną dyskietkę. Przed tą operacją plik musi być otwarty.

Z powodu ograniczeń Atari BASIC, Basic XL i XE pierwszy pokazany sposób, wykorzystujący instrukcję POINT, działa tylko dla pozycji nie przekraczających 32767. Jeżeli podana zostanie wartość większa niż 32767, to wystąpi błąd. Dla ustalenia dalszych pozycji w tych językach (a także w niektórych innych) konieczne jest użycie drugiego sposobu. Instrukcja POINT jest omijana poprzez zapisanie trzech bajtów pozycji bezpośrednio w rejestrach IOCB i wykonanie XIO. Aux1 i aux2 muszą mieć wartości takie, jak przy otwieraniu pliku. Inne języki, jak Action! i Turbo Basic XL, nie mają ograniczeń w instrukcji POINT, pozwalając użyć jej zamiast dłuższego sposobu, z XIO. W takim przypadku trzeba zastosować następujący format:

    Y=INT(POS/65536)
    X=POS-Y*65536
    POINT #IOCB,X,Y

Jeżeli byłeś użytkownikiem wcześniejszych wersji SpartaDOS, to powinieneś zauważyć, że NOTE i POINT działają teraz w ten sam sposób na dyskietkach Atari DOS i SpartaDOS. POINT nie używa numeru sektora i bajtu, niezależnie od formatu dyskietki.

Użycie NOTE i POINT w SpartaDOS X z dyskietką Atari DOS może być bardziej czasochłonne, ponieważ dla określenia względnej pozycji w pliku konieczne jest każdorazowo odczytanie pliku od początku. Powoduje to także wolniejszy odczyt segmentowych plików binarnych z dyskietek Atari DOS niż z dyskietek SpartaDOS. Tabele NOTE i POINT tworzone przez inne DOS'y (w tym wcześniejsze wersje SpartaDOS dla dyskietek Atari DOS) nie są już poprawne.

Na dyskietkach SpartaDOS możliwe jest ustalenie pozycji poza końcem pliku otwartego w trybie dopisywania. Gdy dane umieszczane są w pliku poza końcem to plik otrzymuje nową długość, lecz żaden fizyczny sektor nie zostaje wykorzystany na odstęp między starymi a nowymi danymi. W mapie sektorów pliku taki sektor otrzymuje numer 0. Dopiero po zapisaniu czegoś w tym odstępie sektor jest ustalany. Taki odstęp nie może być odczytywany, a plik, który go zawiera, nie może być kopiowany. Próba wykonania takiej czynności spowoduje błąd.

Odczyt pozycji w pliku - NOTE

Zadanie: określa bieżącą pozycję w pliku
Składnia: NOTE #IOCB,X,Y
              POS=X+65536*Y

Uwagi: Operacja ta zwraca bieżącą, względną pozycję w aktualnie otwartym pliku. Nie jest to numer sektora i bajtu w sektorze, niezależnie od formatu dyskietki. Plik musi być otwarty przed operacją. Użytkowników SpartaDOS 2.x i 3.x może zainteresować sposób działania w tej wersji. Instrukcja XIO 38 opisana w podręczniku SpartaDOS X Construction Set działa nadal, lecz nie jest konieczna.