Tajemnice ATARI

TOS

    Prezentowany system turbo, w przeciwieństwie do innych tego typu programów dokładnie naśladuje pracę DOS-u tak, że prawie wszystkie programy pracują bez zarzutu. System jest głównie przeznaczony dla tych, którzy troszeczkę poważniej traktują małe ATARI.

   Po 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 rts
   TOS 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



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2001