home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 09 / ami927.txt < prev    next >
Text File  |  1997-04-07  |  15KB  |  437 lines

  1. ^-
  2. System na talerzu (cz. 21.)
  3. ---------------------------
  4.  
  5. AMIGA DOS
  6.  
  7. <a>Marek Pampuch
  8.  
  9. <sr>IF (jeûeli)
  10.  
  11. <l>skîadnia dla systemu 1.2: IF [NOT] [WARN] [ERROR] [FAIL] [<tekst1> 
  12. EQ <tekst2>] [EXISTS <n1>]
  13.  
  14. skîadnia dla systemów 1.3, 2.0, 2.1, 3.0 i 3.1: IF [NOT] [WARN] [ERROR] [FAIL] 
  15. [<tekst1> EQ|GT|GE <tekst2>] [VAL] [EXISTS <n1>]
  16.  
  17. <txt>gdzie: tekst1, tekst2 -- îaïcuchy do porównywania, n1 -- nazwa zbioru.
  18.  
  19. <l>wzorzec dla systemu 1.2: STRING, NOT/S, WARN/S, ERROR/S, FAIL/S,
  20. EQ/K, EXISTS/K
  21.  
  22. wzorzec dla systemów 1.3, 2.0, 2.1, 3.0 i 3.1: STRING, NOT/S, WARN/S, 
  23. ERROR/S, FAIL/S,EQ/K, GT/K, GE/K, VAL/S, EXISTS/K
  24.  
  25. <txt>Umoûliwia rozgaîëzienie instrukcji w zaleûnoôci od warunków podczas 
  26. wykonywania sekwencji rozkazów.
  27.  
  28. UWAGA: rozkazu IF nie moûna wprowadzaê "z rëki" (w trybie z
  29. natychmiastowym wykonaniem). Sekwencja IF musi byê najpierw
  30. zapisana na dysku w postaci skryptu AmigaDOS, a potem wykonana.
  31. Jednak, nawet jeôli umieôcimy go w skrypcie, sam rozkaz IF nie
  32. bëdzie miaî ûadnego znaczenia. Musi byê "obudowany" innymi
  33. rozkazami, które bëdâ wykonane w zaleûnoôci od tego, czy warunek
  34. podany w instrukcji IF jest speîniony, czy teû nie. Potocznie
  35. mówi sië, ûe IF jest rozkazem rozpoczynajâcym tak zwanâ pëtlë:
  36.  
  37. <l>IF >warunek< ... ELSE...ENDIF
  38.  
  39. <txt>Rozkaz IF moûna zagnieûdûaê (to znaczy, ûe wewnâtrz jednej
  40. pëtli moûe wystëpowaê inna). Jeôli jednak po IF nastëpuje nie
  41. jeden rozkaz, ale caîa ich sekwencja, wówczas trzeba uûyê rozkazu
  42. ENDIF. Przykîad ("pëtla wewnëtrzna" jest wyróûniona przez
  43. wciëcie):
  44.  
  45. <l>if 2 GT 3 VAL skip end ; jeôli 2 > 3 (ha,ha) to koïcz
  46.  
  47. else 
  48.  
  49.      if FAIL type "Coô nie tak"; jeôli kod bîëdu >= 20 to wypisz 
  50.      komentarz
  51.  
  52.       endif
  53.  
  54. end
  55.  
  56. <txt> Parametrami rozkazu sâ: 
  57.  
  58. * EQ -- porównuje îaïcuchy logicznie (czy sâ takie same). Przykîad:
  59.  
  60. <l>IF <rozkaz> EQ ""
  61.  
  62. ECHO " Miaîeô podaê rozkaz"
  63.  
  64. <txt>
  65. * ERROR -- jeôli wygenerowany kod bîëdu jest równy 10, warunek 
  66. jest speîniony.
  67.  
  68. * EXISTS -- pozwala sprawdziê, czy katalog lub zbiór dyskowy
  69. istniejâ. Jeôli tak, wówczas warunek jest speîniony. Jeôli nie
  70. istnieje zbiór lub katalog, warunek nie jest speîniony. Rozkaz
  71. bada takûe zamontowanie urzâdzeï fizycznych. Jeôli takie
  72. urzâdzenie nie istnieje, wówczas w wyniku badania pojawi sië na
  73. ekranie odpowiedni komunikat systemowy. Przykîady:
  74.  
  75. IF EXISTS DF0: -- bada, czy do stacji df0: wîoûony jest dysk.
  76.  
  77. IF NOT EXIST RAM:test: -- warunek jest speîniony, gdy w katalogu 
  78. gîównym RAM dysku nie ma zbioru test.
  79.  
  80. Nie powinno sië jednak badaê bezpoôrednio poprzez IF wystëpowania
  81. urzâdzeï logicznych. W takim wypadku naleûy to zrobiê nastëpujâco
  82. (przykîadowo):
  83.  
  84. <l>ASSIGN >NIL: DEVS: EXISTS
  85.  
  86. IF WARN
  87.  
  88. <txt>
  89. * FAIL -- jeôli wygenerowany kod bîëdu jest równy 20, warunek 
  90. jest speîniony. 
  91.  
  92. * GT -- porównuje îaïcuchy logicznie (czy wartoôê parametru
  93. tekst1 jest wiëksza niû wartoôê parametru tekst2).
  94.  
  95. * GE -- porównuje îaïcuchy logicznie (czy wartoôê parametru
  96. tekst1 jest wiëksza lub równa wartoôci parametru tekst2).
  97.  
  98. UWAGA: Rozkaz nie ma parametrów typu LT (mniejszy niû) czy LE 
  99. (mniejszy lub równy). Jeôli jest nam potrzebne takie badanie, naleûy 
  100. zanegowaê odpowiednio jeden z powyûszych parametrów, jak poniûej:
  101.  
  102. <l>IF 2 NOT GE 3; oznacza: jeôli 2 jest mniejsze od 3
  103.  
  104. IF 2 NOT GT 3; oznacza jeôli 2 jest mniejsze lub równe 3
  105.  
  106. <txt>
  107. * NOT -- operator logiczny (negacja) brany pod uwagë przy porównywaniu 
  108. îaïcuchów. 
  109.  
  110. * STRING -- jest to argument w postaci îaïcucha tekstowego. Moûemy 
  111. tutaj podaê jako îaïcuch zarówno warunek, na przykîad:
  112.  
  113. <l> IF n=1 skip end
  114.  
  115. <txt>jak i nazwë urzâdzenia fizycznego lub logicznego. UWAGA:
  116. Jeôli të nazwë podamy jako zmiennâ doczytywanâ z dysku, a nie
  117. wpisywanâ z klawiatury, wówczas musi byê ona w cudzysîowie.
  118. Porównaj poniûsze przykîady:
  119.  
  120.  
  121. ************ DO SKÎADU -- PROSZË UWAÛAÊ NA TAGI !!!!!
  122.  
  123. <l>
  124. ;przykîad pierwszy
  125.  
  126. .key nazwa
  127.  
  128. IF <nazwa> EQ "Magazyn Amiga"
  129.  
  130. echo "Masz racjë. Magazyn AMIGA jest wspaniaîy"
  131.  
  132. else
  133.  
  134. echo "Dlaczego uwaûasz, ûe najlepszy jest <nazwa>"
  135.  
  136. endif
  137.  
  138. <txt> A teraz dla porównania:
  139.  
  140. <l>
  141. ;przykîad drugi
  142.  
  143. .key úródîo, cel
  144.  
  145. if "<úródîo>" exists
  146.  
  147. echo "zastâpiê zbiór <úródîo> zbiorem <cel>"
  148.  
  149. ask "Tak (Y)/Nie (N)
  150.  
  151. if warn
  152.  
  153. copy from <úródîo> to <cel>
  154.  
  155. endif
  156.  
  157. else
  158.  
  159. end
  160.  
  161.  
  162. <txt>
  163. * VAL -- z tego parametru korzystamy, gdy w naszym skrypcie majâ
  164. byê badane zmienne ôrodowiskowe. W takim wypadku parametr VAL
  165. wraz z nazwâ zmiennej ôrodowiskowej wystëpuje w miejscu tekstu 1.,
  166. jak na przykîad:
  167.  
  168. <l> IF VAL $liczba GT 10
  169.  
  170. * WARN -- jeôli wygenerowany kod bîëdu jest równy 5, warunek jest
  171. speîniony.
  172.  
  173.  
  174. UWAGA: Jeôli za pomocâ rozkazu FAILAT ustawimy wczeôniej limit
  175. dla dopuszczalnego kodu bîëdów wyûszy niû 5, 10 lub 20, to
  176. parametry (odpowiednio) WARN, ERROR i FAIL nie zadziaîajâ
  177. wîaôciwie.
  178.  
  179. <sr>IHELP (I[ntuition] HELP -- "ôciâga" dla Intuition)
  180.  
  181. <l>skîadnia dla systemu 2.0: IHELP [PRIORITY=>n1<] [CYCLEWINDOW=>n2<] 
  182. [MAKEBIG=>n3<] [MAKESMALL=>n4<] [CYCLESCREEN=>n5<] [ZIPWINDOW=>n6<] 
  183.  
  184. <txt>gdzie: n1 oznacza priorytet. Moûna w ten sposób zmieniê
  185. domyôlny priorytet, ustawiony rozkazem Exchange, n2 do n6 zaô to
  186. odpowiednie kombinacje klawiszy (hotkeys), powodujâce dziaîania
  187. okreôlone opcjâ. Domyôlnie odpowiadajâ im kolejne klawisze
  188. funkcyjne od [F1] (CYCLE WINDOW) do [F5] (ZIPWINDOW).
  189.  
  190. W pozostaîych systemach rozkaz ten nie wystëpuje.
  191.  
  192. Jest to rozkaz z gatunku Commodity i dlatego nie znajduje sië w
  193. katalogu rozkazowym C. Zasady uruchamiania i dziaîania rozkazów
  194. typu Commodity byîy juû w kilku miejscach opisywane (poczâwszy od
  195. rozkazu Blanker). IHelp powoduje pojawienie sië okna, za pomocâ
  196. którego moûna zmieniê ustawione wczeôniej priorytety i niektóre
  197. ustawienia dotyczâce okien. Szczególnie sâ to:
  198.  
  199. Cycle window -- kolejne uaktywnianie wszystkich okien.
  200.  
  201. Makebig -- powiëksza aktywne okno do rozmiarów caîego ekranu.
  202.  
  203. MakeSmall -- zmniejsza aktywne okno do minimalnej moûliwej wielkoôci.
  204.  
  205. Cycle screen -- kolejne uaktywnianie ekranów.
  206.  
  207. Zip window -- pozwala na powiëkszanie aktywnego okna na takiej samej 
  208. zasadzie jak w funkcji ZOOM z programów rysunkowych.
  209.  
  210. <sr>INFO (informacja)
  211.  
  212. <l>
  213. skîadnia dla systemu 1.2: INFO
  214.  
  215. skîadnia dla systemu 1.3: INFO [<n1>] 
  216.  
  217. skîadnia dla systemu 2.0, 2.1, 3.0 i 3.1: INFO [[DEVICE]=<n1>] 
  218.  
  219. <txt>gdzie: n1 -- nazwa stacji dysków (np. df0:) lub nazwa zbioru,
  220. o którym chcemy uzyskaê informacjë.
  221.  
  222. Pozwala na uzyskanie informacji (z poziomu WB) o dyskietce
  223. wîoûonej do stacji df0: lub o programie o podanej nazwie.
  224.  
  225. W wypadku zastosowania rozkazu bez parametrów uzyskamy pewne
  226. informacje (w zaleûnoôci od konfiguracji Twojego systemu).
  227. Przykîadowo dla A1200 z twardym dyskiem o 4 partycjach i
  228. zamontowanymi stacjami PC0: i DS0: po wîoûeniu dyskietki nagranej
  229. w systemie OFS uzyskamy:
  230.  
  231. ************** tu rysunek dos_1.pcx ***********
  232.  
  233. wkîadajâc zaô të samâ dyskietkë do stacji nie rozbudowanej Amigi
  234. 500 otrzymamy:
  235.  
  236. ************* tu rysunek dos_2.pcx *************
  237.  
  238. gdzie: UNIT -- oznacza nazwë dysku, SIZE -- wielkoôê
  239. sformatowanego dysku lub partycji w kilobajtach lub megabajtach,
  240. USED -- wielkoôê zajëtego miejsca, mierzonâ w blokach (1 blok to
  241. 512 bajtów), FREE -- pozostaîa iloôê wolnego miejsca, takûe w
  242. blokach, FULL -- procent zapeînienia dysku lub partycji, ERRS --
  243. liczba bîëdów na dysku, STATUS -- aktualny stan dysku (moûe tu
  244. byê Read/Write, czyli zapis i odczyt, lub read only -- tylko
  245. odczyt, NAME -- nazwa dysku, VOLUMES AVAILABLE -- dostëpne
  246. urzâdzenia. Jeôli po nazwie wystëpuje sîowo [Mounted], oznacza
  247. to, ûe dane urzâdzenie jest zamontowane.
  248.  
  249. UWAGA: Urzâdzenie nie zamontowane zjawia sië na takiej liôcie
  250. zazwyczaj wtedy, gdy uruchomimy jakiô program, który uûywa
  251. rozkazu Assign.
  252.  
  253. Jeôli zaô skorzystamy z parametru, to jeûeli dany dysk jest
  254. zamontowany (lub dostëpny), otrzymamy tylko informacje, odnoszâce
  255. sië do tego dysku, 
  256.  
  257. ****************** tu rys dos_3.pcx **************
  258.  
  259. jeôli natomiast dysk nie jest zamontowany, na przykîad po wpisaniu 
  260.  
  261. <l>INFO DF1:
  262.  
  263. <txt>a nasza Amiga ma tylko jednâ, wbudowanâ, stacjë dyskietek,
  264. wówczas nie otrzymamy ûadnych informacji.
  265.  
  266. Przy zastosowaniu jako parametru nazwy dysku zamontowanego, ale 
  267. aktualnie "nieobecnego" przez, powiedzmy,
  268.  
  269. <l>INFO PC0:
  270.  
  271. <txt>uzyskamy informacjë, ûe dysk chwilowo jest "nieczytelny",
  272. czyli nie jest wîoûony.
  273.  
  274. ***** tu rysunek dos_4.pcx *******
  275.  
  276. Opcjami rozkazu sâ:
  277.  
  278. DEVICE -- czyli waûna z punktu widzenia AmigaDOS definicja
  279. urzâdzenia (zostaîo to opisane dokîadnie przy rozkazie ASSIGN).
  280.  
  281. <sr>INITPRINTER (zainicjalizuj drukarkë)
  282.  
  283. <l>Skîadnia dla wszystkich systemów: INITPRINTER
  284.  
  285. <txt>Rozkaz ten nie ma parametrów i znajduje sië w katalogu
  286. systemowym (SYS:Utilities). Moûna go uruchamiaê zatem takûe przez
  287. klikniëcie na jego ikonie spod Workbencha.
  288.  
  289. Wîaôciwie nie jest on uûywany, bo powoduje inicjalizacjë drukarki
  290. ustawionej w preferencjach (przez reset drukarki i wyczyszczenie
  291. jej bufora). Dotyczy to przewaûnie najstarszych typów drukarek.
  292. Star LC-10 i wszystkie popularne drukarki wyprodukowane póúniej
  293. inicjalizujâ sië automatycznie, jeôli wersja systemu operacyjnego
  294. Amigi jest wyûsza niû 1.2. Przewaûnie operacjë të moûna
  295. przeprowadziê takûe z panelu drukarki.
  296.  
  297. Ponadto znacznie prostsza jest inicjalizacja drukarki za pomocâ
  298. rozkazu:
  299.  
  300. <l>COPY coôtam TO PRT:
  301.  
  302. <txt>Uruchomienie rozkazu nie spowoduje ûadnej akcji na ekranie.
  303. Jeôli drukarka nie jest podîâczona do Amigi lub jest wyîâczona z
  304. sieci, pojawi sië komunikat o bîëdzie, jeôli jest "on-line", po
  305. chwili piônie i bëdzie juû moûna na niej drukowaê.
  306.  
  307. <sr>INPUT (wprowadú)
  308.  
  309. <l>skîadnia dla systemów 2.0, 2.1 i 3.0:INPUT [FROM >n1<] 
  310. [EDIT|USE|SAVE] 
  311.  
  312. skîadnia dla systemu 3.1:INPUT [FROM >n1<] [EDIT|USE|SAVE] [PUBSCREEN 
  313. >n2<]
  314.  
  315. <txt>gdzie: n1 -- to nazwa zbioru, w którym zapisane sâ
  316. ustawienia wstëpne, (presets), n2 -- nazwa, jakâ chcemy nadaê
  317. ekranowi publicznemu.
  318.  
  319. W systemach 1.2 i 1.3 rozkaz ten nie wystëpuje.
  320.  
  321. <l>Wzorzec dla systemów 2.0, 2.1 i 3.0: FROM, EDIT/S, USE/S, SAVE/S
  322.  
  323. Wzorzec dla systemu 3.1: FROM, EDIT/S, USE/S, SAVE/S, PUBSCREEN/K
  324.  
  325. <txt>Jest to kolejny rozkaz, znajdujâcy sië w katalogu
  326. preferencji. Pozwala na zdefiniowanie dziaîania urzâdzeï
  327. wprowadzania danych, takich jak klawiatura czy mysz. Po
  328. uruchomieniu rozkazu pojawia sië na ekranie okno jak poniûej:
  329.  
  330. ****** tu rysunek dos_5 **** 
  331.  
  332. Zbiór z danymi zostanie stworzony, jeôli klikniesz na gadûet
  333. SAVE, i domyôlnie bëdzie zapisany w katalogu ENV/Sys pod nazwâ
  334. INPUT.PREFS. Drugi ze zwiâzanych z tym rozkazem zbiorów, podobnie
  335. jak w wypadku wszystkich rozkazów "preferencyjnych", znajduje sië
  336. w katalogu SYS:Prefs/presets i musi tam zostaê zapisany rozkazem
  337. SAVE AS z rozwijanego menu okna INPUT. Menu to ma jeszcze kilka
  338. innych rozkazów, opisanych dokîadnie w ksiâûce "Amiga", wydanej
  339. przez Wydawnictwo LUPUS. Wyûej wymieniony zbiór zawiera
  340. nastëpujâce informacje: prëdkoôê dziaîania myszy, odstëp pomiëdzy
  341. klikniëciami, opóúnienie powtarzania klawiszy, czëstotliwoôê
  342. powtarzania i flagë przyspieszenia myszki.
  343.  
  344. Parametrami rozkazu sâ:
  345.  
  346. FROM -- nazwa zbioru (wraz ze ôcieûkâ dostëpu), w którym zapisane
  347. sâ preferencje dla funkcji INPUT.
  348.  
  349. EDIT -- jeôli zastosujesz ten parametr w skrypcie, wówczas rozkaz 
  350. otworzy okno podczas wykonywania takiego skryptu.
  351.  
  352. USE -- ustawione preferencje bëdâ obowiâzywaîy od momentu uûycia w 
  353. skrypcie tego parametru lub (jeôli otworzyîeô okno) od momentu 
  354. klikniëcia na gadûet USE.
  355.  
  356. SAVE -- preferencje ustawione lub wczytane ze zbioru, znajdujâcego sië 
  357. w katalogu SYS:Prefs/presets, zostanâ zapisane w zbiorze do katalogu 
  358. ENV/Sys. Przykîad:
  359.  
  360. <l>INPUT FROM SYS/PREFS/PRESETS/INPUT.PREF SAVE
  361.  
  362. <sr>INSTALL (zainstaluj)
  363.  
  364. <l>skîadnia dla  systemu 1.2:  INSTALL [DRIVE] <n1> 
  365.  
  366. skîadnia dla  systemu 1.3:  INSTALL [DRIVE] <n1> [NOBOOT] [CHECK]
  367.  
  368. skîadnia dla  systemów 2.0, 2.1, 3.0 i 3.1:  INSTALL [DRIVE] <n1> 
  369. [NOBOOT] [CHECK] [FFS]
  370.  
  371. <txt>gdzie: n1 -- nazwa stacji dysków, do której wkîadasz
  372. dyskietkë (df0: do df3:) w systemach 3.0 i 3.1 dla Amig
  373. wyposaûonych w gniazdo PCMCIA moûe wystëpowaê tu takûe nazwa
  374. urzâdzenia CC0:
  375.  
  376. <l>wzorzec dla  systemu 1.2:  DRIVE/A 
  377.  
  378. wzorzec dla  systemu 1.3:  DRIVE/A, NOBOOT/S, CHECK/S
  379.  
  380. wzorzec dla  systemów 2.0, 2.1, 3.0 i 3.1: DRIVE/A, NOBOOT/S, 
  381. CHECK/S, FFS/S
  382.  
  383. <txt>Zapisuje w tzw. bootblocku (blok uruchamiajâcy komputer) dane
  384. systemowe, umoûliwiajâce samodzielny start programów po wîoûeniu
  385. dyskietki do dostëpnej stacji dysków (lub z zainstalowanej karty
  386. PCMCIA). Nie moûna zainstalowaê dyskietki nie sformatowanej, nie
  387. powinno sië takûe instalowaê dyskietki zapisanej w standardzie
  388. innym niû AmigaDOS (na przykîad pecetowa czy "nieDOSowska").
  389.  
  390. Parametrami rozkazu sâ: 
  391.  
  392. DRIVE -- nazwa dysku do instalacji.
  393.  
  394. NOBOOT -- jeôli uûyjesz tego parametru, a na dyskietce znajduje sië 
  395. bootblock, zostanie on usuniëty. UWAGA: Jeôli spróbujesz w ten 
  396. sposób zainstalowaê dysk nieDOSowski, wówczas na takim dysku bëdzie 
  397. zapisany czysty bootblock, co skutecznie unieszkodliwi znajdujâcy sië 
  398. tam program.
  399.  
  400. CHECK -- sprawdza zgodnoôê danych, zapisanych w bootblocku, ze
  401. standardowym bootblockiem AmigaDOS. Poniewaû bootblock jest
  402. ulubionym miejscem na umieszczanie w nim wirusów przez lamerów
  403. nie potrafiâcych napisaê groúniejszego wirusa, moûna wykorzystaê
  404. të opcjë do wykrycia takiego typu wirusa. Naleûy jednak wykonywaê
  405. to ZAWSZE na kopii podejrzanego dysku. Wiele programów (a
  406. zwîaszcza ich spiracone wersje) ma tak zwany niestandardowy
  407. bootblock. Oznacza to, ûe oprócz potrzebnych danych znajdujâ sië
  408. tam inne informacje, wykorzystywane przez program. Rozkaz INSTALL
  409. z parametrem CHECK potraktuje taki dysk jako niestandardowy. Od
  410. systemu 2.0 w górë rozkaz generuje komunikaty systemowe w oknie
  411. Shella. W omawianym wypadku rozkaz wypisze komunikat:
  412.  
  413. <l>May not be a standard bootblock
  414.  
  415. <txt>Nie naleûy jednak od razu byê pewnym, ûe na dysku usadowiî
  416. sië nie zidentyfikowany wirus, i usuwaê go. Przy takiej operacji
  417. mogâ bowiem zostaê wyrzucone z bootblocku wspomniane informacje,
  418. które niejednokrotnie sterujâ pracâ programu, i nasza wspaniaîa
  419. gra bëdzie do zmazania. Przykîad:
  420.  
  421. <l>install df0: CHECK
  422.  
  423. <txt>instaluje sformatowany i zainstalowany wczeôniej (rozkazem
  424. INSTALL bez parametrów) dysk, znajdujâcy sië w stacji df0:, i
  425. sprawdza poprawnoôê bootblocku.
  426.  
  427. Rozkaz INSTALL moûna takûe zastosowaê w skryptach. W takim
  428. wypadku przy napotkaniu niestandardowego bootblocku dla systemów
  429. od 2.1 w gorë zostanie wygenerowany kod WARN. W systemach
  430. starszych naleûy bezwzglëdnie zastosowaê w skryptach
  431. zawierajâcych INSTALL rozkaz FAILAT z parametrem co najmniej 11.
  432.  
  433. FFS -- parametr ten dziaîa TYLKO w systemach od 2.0 do 2.04 i
  434. powoduje zainstalowanie bootblocku dla Fast File System. W
  435. starszych wersjach systemu nie wystëpuje, w nowszych zostaî
  436. zachowany, ale nie dziaîa.
  437.