TOSPo przepisaniu dołączonego wydruku należy doczytać Zgrywusa z TA 1/92 (instrukcją ENTER), a po uruchomieniu wybrać opcję "format plikowy", a jako nazwę - C:. Można też użyć Mini-Zgrywusa, przedstawionego w TA 3/92. Po zgraniu programu na taśmę jesteśmy posiadaczami systemu turbo. Do szczęścia potrzebna jest jeszcze drobna przeróbka magnetofonu. Posiadaczy systemu TURBO 2000 ucieszy fakt że TOS jest z nim zgodny sprzętowo. Natomiast dla tych, którzy nie mają przerobionego magnetofonu, polecam układ opisany w czwartym numerze miesięcznika "MOJE ATARI". TOS wczytujemy poprzez włączenie komputera (lub wykonanie zimnego startu) z wciśniętymi klawiszami START i OPTION lub z wciśniętym klawiszem START. W pierwszym przypadku po odczytaniu wszystkich rekordów komputer przez chwilę "pomruczy" i na ekranie pojawi się tekst zachęty T:. Natomiast w drugim pojawi się znajomy napis - READY. Aby wtedy uruchomić TOS, piszemy polecenie DOS i naciskamy RETURN. Wówczas pojawi się napis T:. TOS jest gotowy do przyjmowania poleceń. Piszemy na przykład HLP i naciskamy RETURN. Na ekranie zostanie wyświetlona pełna nazwa programu i spis aktualnie dostępnych instrukcji. Do systemu można dołączyć jeszcze dwa polecenia, ale o tym w dalszej części opisu. Składnia każdej instrukcji jest następująca: [u:]xxx [yyyy] gdzie u - jednoliterowa nazwa urządzenia z obowiązującym po niej dwukropkiem, xxx - trzyliterowa nazwa polecenia, natomiast oddzielone spacją yyyy - ewentualną opcją. Fragmenty ujęte w nawiasy klamrowe można pominąć. Na przykład napiszmy C:CAR ON. Najpierw zostanie zmieniona bieżąca nazwa handlera na C: czyli na magnetofon w systemie NORMAL, a następnie zostanie wykonane podane polecenie. Możemy również napisać CAR ON - wykonane zostanie polecenie, ale bez zmiany handlera, lub CAR - przebieg polecenia będzie inny. RUN Napisana bez podania adresu (czyli bez dodatkowej opcji) uruchamia ostatnio wczytany program. Jeżeli jest to niewykonalne, to następuje powrót do systemu. Napisana z adresem, który jest w notacji szesnastkowej powoduje, jak się nietrudno domyślić, start programu od podanego adresu. Na przykład: RUN E477 - zostanie wykonany zimny start komputera. Jeżeli naciśniemy RETURN wraz z klawiszem SHIFT - wykona się skok pośredni. Np. piszemy RUN 2E0 i naciskamy SHIFT+RETURN. Zostanie wykonany program, którego adres znajduje się w słowie $2E0. Jest to na ogół adres uruchomienia ostatnio wczytanego programu (niszczony po naciśnięciu klawisza RESET). MOT Powoduje włączenie lub wyłączenie silnika magnetofonu. MEM Wyświetla dolną i górną granicę wolnej pamięci RAM. Pojawia się napis np. Low = 15A4 High = BC1F - zależnie od tego czy są wczytane nakładki. HLP Poznana już wcześniej instrukcja, wyświetla nazwę programu oraz spis aktualnie dostępnych instrukcji. CLS Tą instrukcją możemy wyczyścić ekran. Polecenia MOT, MEM, HLP, CLS nie mają dodatkowych opcji. Jeżeli po tych instrukcjach coś napiszemy (byle oddzielić spacją) to zostanie to odrzucone, a komenda wykona się normalnie. DIR Podobnie jak w DOS-ie, powoduje wyświetlenie nazwy programu. Z zainstalowanych handlerów jedynie sterownik T:, czyli turbo, ma możliwość zapisywania nazw. Jeżeli aktualne jest urządzenie T:, to po napisaniu DIR zostanie podany trzykrotny sygnał trąbki, wkładamy taśmę i naciskamy klawisz PLAY w magnetofonie (posiadacze przystawki TURBO 2000 powinni przełączyć magnetofon na system turbo), a następnie dowolny klawisz w komputerze. Po na trafieniu na początek pliku TOS wyświetli nazwę i znowu usłyszymy znajomy dźwięk. Polecenie się powtarza. Aby to przerwać, należy nacisnąć BREAK. Jeśli zainstalowany zostanie sterownik, który podaje nazwę zgodnie z DOS-em, to polecenie DIR będzie działać bez zarzutu. Jako parametr można podać podobnie jak w DOS-ie maskę np. *.COM, z tym że handler T: nie zwraca na to żadnej uwagi. CAR Uruchamia cartridge pod warunkiem, że jest zainstalowany. Jeżeli go nie ma, to program sprawdza, czy zainstalowany jest BASIC, jeżeli jest - następuje uruchomienie interpretera bez skasowania programu BASIC-a. Jeśli interpreter jest odłączony to wyświetla się napis: No cartridge. Dla przykładu: w BASIC-u piszemy DOS, a następnie w TOS-ie CAR, znowu ukaże się znajomy napis - READY. Polecenie CAR ON powoduje włączenie interpretera, bez względu na to, czy włączyliśmy komputer z wciśniętym klawiszem OPTION, czy bez niego. Program BASIC-a zostanie wówczas skasowany. Natomiast instrukcja CAR OFF wyłącza interpreter, dzięki czemu uzyskujemy dodatkowe 8K wolnej pamięci. COP Uruchamia podręczny kopier. Składnia polecenia jest następująca: COP name gdzie name to nazwa pliku przeznaczonego do kopiowania. Na przykład: po COP QA, następuje odczyt pliku o nazwie QA (jest to prawdopodobnie Quick Assembler). Jeżeli wystąpi błąd to wykonanie polecenia jest przerywane i następuje powrót do interpretera poleceń. Po odczytaniu całego pliku pojawia się pytanie: File name. Kopler pyta się o nazwę urządzenia do zapisu oraz o nazwę pliku. Na przykład: C: lub T:NAME. Po dokonaniu zapisu ponawiana jest prośba o podanie nazwy. Wyjść można z tego naciskając klawisz BREAK. Najważniejszą czynnością każdego systemu jest odczyt i uruchomienie programów. Jako polecenie wypisujemy nazwę programu przeznaczonego do odczytania i uruchomienia. Na przykład T:DEMO lub DEMO albo znak gwiazdki, która zastępuje każdą nazwę. Dla handlerów, które nie zapisują nazw, wystarczy samo naciśnięcie RETURN. Jeśli podczas odczytu stwierdzony zostanie błąd, to przerywany jest odczyt i wyświetlany jest komunikat: Error - nr, gdzie nr jest numerem błędu. Naciśnięcie klawisza BREAK jest traktowane jako rezygnację i następuje bezpośredni powrót bez wyświetlania komunikatu. W systemie małego ATARI jest przyjęte, że programy odczytywane przez DOS mają dwa pierwsze bajty równe 255 ($FF). Jeśli TOS podczas odczytu nie znajdzie tych dwóch bajtów, wówczas przerwie odczyt i wyświetli komunikat: Not binary file. Ma to na celu zabezpieczenie systemu przed zawieszeniem w wyniku odczytu pliku z danymi. Jeżeli podczas wykonywania programu procesor natrafi na rozkaz BRK (prawdopodobnie błędnie napisany program lub zły adres po RUN), to nastąpi wejście do systemu poprzedzone wyświetleniem komunikatu: BRK at adr, gdzie adr jest adresem rozkazu BRK, w wyniku którego nastąpiło przerwanie. Jeśli chcemy tylko zmienić nazwę urządzenia, wstarczy napisać nazwę wraz z dwukropkiem. Na przykład C:, T:, M:. Nazwa, która nie figuruje w tablicy HATABS, będzie odrzucona. Ważną częścią TOS-u jest handler T:. Plik zapisywany na taśmie składa się z nagłówka zawierającego dwubajtowy kod oraz jedenastu bajtów nazwy pliku. Sam plik jest zapisywany w 1024-bajtowych blokach. W celu oznaczenia końca pliku zapisywany jest rekord składający się z samych zer. Otwarcie pliku w języku BASIC wygląda tak: OPEN #nr,op,tr,nazwa gdzie nr, to numer kanału IOCB, op - sposób dostępu. Dozwolone są następujące wartości 4, 5 - odczyt danych; 6, 7 - odczyt nazwy (DIR); 8, 9 - zapis danych. Parametr tr - określa reakcję handlera na błędy transmisji. Wartość 128 powoduje, w wyniku wystąpienia błędu, podanie numeru w rejestrze Y. Jeśli tr ma wartość 0 i przekaz będzie zawierał usterki, wówczas sterownik zażąda ponownego odczytu błędnego rekordu. Błąd sygnalizowany jest brzęczykiem i zatrzymaniem silnika magnetofonu. Należy wtedy cofnąć taśmę co najmniej o jeden rekord i nacisnąć spację. Jeżeli cofniemy więcej, nie musimy się tym przejmować, bo komputer znajdzie błędny rekord (rekordy są numerowane). Próba odczytu będzie ponawiana aż do skutku. Odczyt możemy przerwać naciskając BREAK, Tekst nazwa określa nazwę pliku wraz ze specyfikacją urządzenia. Na przykład T:NAZWA, T1:NAZW, T2:NAME. Przy numerze 2 TOS wydłuża sygnał pilotujący. poprzedzający każdy rekord. Jeżeli nie podamy numeru po T, zostanie domyślnie przyjęty numer 1. Dla odczytania nazwy pliku dokonujemy otwarcia jednego z bloków IOCB: OPEN #1,6,0,"T:" W przeciwieństwie do odczytu danych nie będzie sygnału dźwiękowego. Nazwę (nazwy) odczytujemy instrukcją INPUT #1,A$ Oczywiście na końcu nie możemy zapomnieć o zamknięciu bloku IOCB. W podobny sposób odczytuje się nazwę w DOS-ie. Do TOS-u można dołączyć jeszcze dwie komendy. Nazwa komendy składa się z trzech liter oraz znaku EOL. Pod adresem $B44 znajduje się tablica nazw. Pierwsze wolne pole znajduje się jak łatwo policzyć pod $B64. Rozmiar tego pola wynosi osiem bajtów (dwie nazwy). Natomiast wolne miejsce dla wpisania adresu startu znajduje się pod $BED i ma cztery bajty długości. Po wpisaniu nazwy i adresu pozostaje jeszcze zmienić zawartość dwóch komórek. Pod adresem $B02 jest przechowywana długość tabeli instrukcji, które) wartość zwiększamy o cztery, natomiast pod $B03 jest podana długość danych wyświetlanych po instrukcji HLP, którą również zwiększamy o cztery. Wszystkie te czynności najlepiej ilustruje podany niżej program. Pod adresem $F0 i F1 umieszczamy adres uruchomienia, a pod $F2 i $F3 adres nazwy. Po wykonaniu czynności związanych z komendą, sterowanie powinno zostać przekazane pod adres wskazywany przez wektor DOSRUN ($A). opt %10000 runadr equ $f0 napadr equ $f2 wolne equ $b63 adres equ $bee dlu equ $b02 po_HLP equ $116b pocz equ $6000 org pocz * sprawdza czy pola sa wolne spra ldy #7 sp lda wolne,y bne scon dey bpl sp ldx #0 beq zapis * nie wszystkie wolne scon cpy #4 bcs nie ldx #4 bne zapis * oba pola zapelnione nie cpx #5 bcs ret * wpisanie zapis txa lsr @ pha ldy #0 zap lda (napadr),y sta wolne,x inx iny cpy #4 bne zap pla tax lda runadr sta adres,x inx lda runadr sta adres,x clc ret rtsTOS udostępnia dodatkowo handler urządzenia M:. Jest to typowy RAMFILE, w którym wielkość zapisanego pliku jest taka, jak wielkość pamięci pod ROM-em OS. Plik zapisany do tego urządzenia jest odporny na zimny start (o ile wcześniej nie wyłączyliśmy zasilania). Oczywiście plik przechowywany pod systemem gryzie się z XLF-em i każdym innym programem, który wykorzystuje ten obszar pamięci. Najprostsza na to rada, to nie używać sterownika M: w obecności takich programów. Uwaga: Przy niektórych odmianach sprzętu "turbo" do poprawnego zapisywania może się okazać konieczne wprowadzenie do TOS-u następującej "łaty": 1000 DATA 447,141,205Łatę wykonuje się przy pomocy programu Patcher z TA 7/91. 1000 REM *------------------,-------* 1002 REM : autor: Witold Sciuk : 1004 REM : Turbo Operating System : 1006 REM : (c) 1992 Tajemnice ATARI : 1008 REM *--------------------------* 1010 DATA 0016ee0ae81018a94c850aa911 1020 DATA 850b4cd6fd0007205300000000 1030 DATA 000000000000000000207f08d4 1040 DATA d5d2c2cfa0cfd0c5d2c1d4c9ce 1050 DATA c7a0d3d9d3d4c5cd889b207f20 1060 DATA 286329206279205769746f6c64 1070 DATA 20536369756b9b9b52554e9b4d 1080 DATA 4f549b4d454d9b4341529b434f 1090 DATA 509b4449529b484c509b434c53 1100 DATA 9b000000000000000054ba0000 1110 DATA 00000000000000000000000000 1120 DATA 000000004c6f77203d20202020 1130 DATA 20202048696768203d20202020 1140 DATA 209b42524b2061742020202020 1150 DATA 9b4e6f742062696e6172792066 1160 DATA 696c659b4e6f20636172747269 1170 DATA 6467659b46696c65206e616d65 1180 DATA 3a209b4572726f72202d202020 1190 DATA 209b1513080677135512991006 1200 DATA 126f1476125c11d21000000000 1210 DATA c612160fc90f9d0e8f0e0f0ffd 1220 DATA 0ca9ff8dfc0220c90ca90320fc 1230 DATA fd303a20a80ca954204c0c3030 1240 DATA a00220c30d302950f09118c8c0 1250 DATA 0bd0f248a93c8d02d38d0306ad 1260 DATA 01d309018d01d3a9408d0ed4a5 1270 DATA 1009808d0ed26858604c1f0e85 1280 DATA 00a9ff853020ba0d30f2c500d0 1290 DATA f3a980853020c30d30e550e8c9 1300 DATA 3ad0e4608aa2dbd0088aa25dd0 1310 DATA 038aa224cad0fdaa608540a200 1320 DATA a9838d0fd2a9008d1ad0206b0c 1330 DATA a9038d0fd2a90a8d1ad0206b0c 1340 DATA 2c0ed21007cad0dec64010da60 1350 DATA a9348d02d38d03d3a51009808d 1360 DATA 0ed2a9008d0ed48d00d478ad01 1370 DATA d329fe8d01d360ae000b8618ae 1380 DATA 010b8619a90385366048e618d0 1390 DATA 02e619ee040bd003ee050bae04 1400 DATA 0bec060bad050bed070b689009 1410 DATA a2008e040b8e050b60a20160a2 1420 DATA 08851c461ca9838d0fd2a9008d 1430 DATA 1ad0900520700cb00320750ca9 1440 DATA 038d0fd2a90a8d1ad090052070 1450 DATA 0cb00320750ccad0d3601820c9 1460 DATA 0ca900aaa871189001e8c8d0f8 1470 DATA e619c63610f0c6196048ee0f0b 1480 DATA ad1fd02902d002853e20a80c20 1490 DATA 340d851a861ba908243e100ba2 1500 DATA 02a5212901d002a2048aa28086 1510 DATA 3e207d0c103920c90ca9582002 1520 DATA 0da93a20020dad0f0b20020d68 1530 DATA 20020da51a20020da51b20020d 1540 DATA a000b11820020d2c0ed2100dc8 1550 DATA d0f3e619c63610ed4c7e0f6810 1560 DATA 65a928853420c90ca000a9088d 1570 DATA 040ba200ad0fd22910f0108540 1580 DATA 4a8d1ad02c0ed21043e8d0ebf0 1590 DATA 0f8d1ad0a540f0efa9008540e0 1600 DATA 339006243070c6501fe009b004 1610 DATA c634d0cce434a919b002a91185 1620 DATA 34661cce040bd0b9a51c2cfe0c 1630 DATA 6050632056f520f8f210092029 1640 DATA 0ca08060ee0f0b20a80ca95820 1650 DATA 4c0c30ed20c30d504ecd0f0bd0 1660 DATA ef20c30d5044c9fe8500d0034c 1670 DATA 810f20c30d5036851a20c30d50 1680 DATA 2f851b20c30d30c250269118c8 1690 DATA d0f4e619c63610ee20290c2034 1700 DATA 0dc51ad009e41bd005a500a001 1710 DATA 602c100b1095a08f6020290c2c 1720 DATA 100b108aa0c860a200811820d8 1730 DATA 0cd0e1a9fc4c4d0dad050b0d04 1740 DATA 0bd0632c080b10428d070b2c08 1750 DATA 0b706120c90ca007a920911888 1760 DATA 10f920000c3020a000a99bd118 1770 DATA f00ec8c010d0f7a9209118c8c0 1780 DATA 10d0f9a99b9118c88c060bd022 1790 DATA a9c08d080ba000f0e420250e08 1800 DATA c9fef01e28301ac9fcf00a8d07 1810 DATA 0ba0ffb1188d060b20c90ca200 1820 DATA a11820d80ca0016068a08860a5 1830 DATA 2aa0048c070ba0008c060b8c08 1840 DATA 0b8c89028c040b8c050b8c0f0b 1850 DATA a42b8c100b290e852ac904f010 1860 DATA c908f047c906d007a9808d080b 1870 DATA a0016020000c30fa200810a002 1880 DATA a201bd0004c99bf01cc920f018 1890 DATA c92af014d118d019c8e8c00df0 1900 DATA 0ac99bf006bd00044c660f20c9 1910 DATA 0c20290ca00160a0d06020c90c 1920 DATA a9ff8dfc02a90420fcfd30f020 1930 DATA 0810a9808d8902853e20a80ca9 1940 DATA 0d207d0c101aa93a8d0004a954 1950 DATA 20020da000b9000420020dc8c0 1960 DATA 0dd0f54c7e0f4c1f0e2c890210 1970 DATA f5ad050b0d040bf01520c90c18 1980 DATA 65198519a0ffad040b9118ad05 1990 DATA 0b204d0d20c90ca00098a2038e 2000 DATA 050b9118c8d0fbe619ce050b10 2010 DATA f4a9fe4c4d0da001a200a93ad1 2020 DATA 24f001c8b1249d0004e8c8c00d 2030 DATA d0f560a212a9038d0fd2a9ff8d 2040 DATA fc02a9009d6d0bcad0fa866b86 2050 DATA 36204af2c0003021a636c99bf0 2060 DATA 16297fc9619006c97bb002e91f 2070 DATA 9d6e0be8e011d0dda99b9d6e0b 2080 DATA a001608636a557c91090032094 2090 DATA efa636bd000b300720b0f2e636 2100 DATA d0f2c99bf002297f4cb0f24829 2110 DATA 0f208f108500684a4a4a4ac90a 2120 DATA b003693060693660a003b9e502 2130 DATA 208210beda0b9d810ba5009d82 2140 DATA 0b8810ec20ba10a2812060104c 2150 DATA 7411a99b20b0f2a99b4cb0f2a2 2160 DATA 00bd6e0b9d6c0be8e012d0f560 2170 DATA 2020f44c7411a900a20186ca9d 2180 DATA 090b9de002ca10f760a09fcce7 2190 DATA 02a915ede8029008a9158ce702 2200 DATA 8de802a2258e0602a2118e0702 2210 DATA 20de14a9038dda02ad1fd0f005 2220 DATA 2902f004604c77e4a24c860aa2 2230 DATA 11860bd027686838d868e90208 2240 DATA 2082108da20ba6008ea30b2868 2250 DATA e9002082108da00ba6008ea10b 2260 DATA a29920601020de14a2038609a2 2270 DATA ffd8589a8608301820ba10a200 2280 DATA 8600a600ec030bf00abd110b20 2290 DATA b0f2e600d0ef20ba1020eb13a9 2300 DATA ba8d6d0ba26c206010a5528d0b 2310 DATA 0b1869028552201f1008ad0b0b 2320 DATA 85522830daa23a8e6d0bec6f0b 2330 DATA d01da221ad6e0bdd1a03f007ca 2340 DATA caca10f630bf20c410ad6e0bc9 2350 DATA 9bf0b5d0d9a000a200bd6e0bd9 2360 DATA 440bf008c8cc020bd0f2f022e8 2370 DATA e003f012bd6e0bc8cc020bf014 2380 DATA d9440bf0eda200f0e1ad710bc9 2390 DATA 20f006c99bf002a028984a291e 2400 DATA 1869de8d04126cde0bad13d0d0 2410 DATA 26ac720bc04fd01aac730bc046 2420 DATA f008c04ed00fa900f002a9018d 2430 DATA f80320d8104c74e4adf803d003 2440 DATA 6cfabfa2b52060104c7411a201 2450 DATA bde0029d090bca10f7ad090b0d 2460 DATA 0a0bf0ea20d6fd6c090bad02d3 2470 DATA 49088d02d34c74116ce202a250 2480 DATA a9008d98038d99032056e41003 2490 DATA 4c38136020eb1320f513a250a9 2500 DATA 039d4203a96c9d4403a90b9d45 2510 DATA 03a9069d4a032056e430dba907 2520 DATA 8d920320ba10a2008e0b0b2063 2530 DATA 12ae0b0b9d6e0bc99bf008e8e0 2540 DATA 128e0b0bd0eba99b9d6e0ba26e 2550 DATA 2060104c9f122029142056e430 2560 DATA a4a9ff851da9008de2028de302 2570 DATA 8d98038d9903a9408d0b0ba907 2580 DATA 8d92032063128d94032063128d 2590 DATA 95032d9403c9ffd00d241d1003 2600 DATA 20d810a900851df0c8241d1008 2610 DATA a2a52060104c7411206312851e 2620 DATA 206312851fa207204e143011ad 2630 DATA e2020de302f0a32060124cd212 2640 DATA 4c3c1220290cc080f035c088d0 2650 DATA 0a2c0b0b70ed102a4ca514a900 2660 DATA aaf81869019001e888d0f7d820 2670 DATA 82108dd70ba5008dd80b8a2082 2680 DATA 10a5008dd60ba2ce2060104c4c 2690 DATA 11ad720bf004c99bd0034c4712 2700 DATA a003a90099040b8810fac8b972 2710 DATA 0bc99bf02b48a202bd040b9d05 2720 DATA 0bca10f768c93090cec93a900c 2730 DATA c94190c6c947b0c2e9361002e9 2740 DATA 2f8d040bc8c00490cead050b0a 2750 DATA 0a0a0a0d040b8de913ad070b0a 2760 DATA 0a0a0a0d060b8dea13a24cad0f 2770 DATA d22908d002a26c8ee8136c040b 2780 DATA a250a90c9d42034c56e4a200bd 2790 DATA 720b9d6e0be8e00dd0f56020eb 2800 DATA 13a2c2206010201f10303dac6e 2810 DATA 0ba908d01720eb13ad710bc99b 2820 DATA d0058d6e0bf00320f513ac6c0b 2830 DATA a9048d9a03a903a2508d9203a9 2840 DATA 00c043d002a9808d9b03a96c8d 2850 DATA 9403a90b8d95036038a51eed94 2860 DATA 03a8a51fed9503c8088c9803a8 2870 DATA 28d001c88c99038e9203a2504c 2880 DATA 56e4a9808d0b0b2017142056e4 2890 DATA 10034c381320d810a207ace702 2900 DATA 8c9403ace8028c9503ace50284 2910 DATA 1eace602841f204e1430dd2056 2920 DATA f54c7411ad9803851ead990385 2930 DATA 1f20031430eea51e8d9803a51f 2940 DATA 8d9903a96e8d94032056e430b4 2950 DATA a20bade7028d9403ade8028d95 2960 DATA 0320671430c74caf14a254a90b 2970 DATA a0f420bceea24da915a0934cbc 2980 DATA eea52a290cc904f009c908f001 2990 DATA 60a9803002a9008d0e0ba9028d 3000 DATA 0c0ba9c08d0d0ba00160ae0c0b 3010 DATA 8604ae0d0b860560ee0c0bd012 3020 DATA ee0d0b100cae0d0be0d0d006a2 3030 DATA d88e0d0b602c1e15602c0e0b10 3040 DATA 1620b70cae0c0bac0d0be8d001 3050 DATA c88e00c08c01c020290ca00160 3060 DATA 4820b70c20131568a000910420 3070 DATA 290c201e1530e9a0c06020b70c 3080 DATA 201315a504cd00c0a505ed01c0 3090 DATA b00da000b10420290c201e15a0 3100 DATA 016020290ca08860ef1438156d 3110 DATA 1556150f0ffd0c0080 Witold Ściuk
|