| LITERATURA | |
|
INSTRUKCJA WPROWADZAJĄCA - STACJA DYSKÓW 1541 II |
STACJA DYSKÓW ELASTYCZNYCH 5.25
Commodore 1541-II
Instrukcja wprowadzająca
PRZYŁĄCZANIE STACJI DYSKÓW DO
KOMPUTERA
Przyłączanie przewodów
Przyłącz przewód zasilający zasilacza do
gniazda znajdującego się z tyłu stacji. Jest to możliwe przy
jedynym prawidłowym ustawieniu wtyczki względem gniazda.
Następnie podłącz przewód zasilający zasilacz do sieci
elektrycznej. Jeśli stacja wyda jakikolwiek dźwięk, wyłącz
ją za pomocą wyłącznika znajdującego sie z tyłu stacji. Nie
przyłączaj żadnych innych przewodów przed upewnieniem się,
że stacja jest wyłączona (wyłącznik w położeniu
"off").
Następnie przyłącz odpowiedni przewód do
portu szeregowego z tyłu stacji. Wyłącz komputer! Przyłącz
drugi koniec przewodu do komputera. Stacja jest gotowa do
działania. Port szeregowy, który ma dwa wejścia, służy
również do przyłączania innych urządzeń peryferyjnych, np.
drukarki lub drugiej stacji dysków.
Włączanie zasilania
Kiedy wszystkie urządzenia są podłączone,
można włączyć zasilanie zwracając uwage na odpowiednią
kolejność tzn. komputer włączamy na końcu. Przed
włączeniem stacji upewnij się, że nie ma w niej dyskietki.
Wkładanie dyskietki
Dyskietkę wkładamy przy poziomym położeniu
dźwigni w ten sposób, by etykieta dyskietki była zwrócona ku
górze i w twoją stronę. Małe wycięcie na dyskietce, które
może być zaklejone, ppowinno znajdować się po lewej stronie.
Dyskietkę wkładamy delikatnie do oporu i ouszczamy dźwignię w
dół. Wkładanie lub wyjmowanie dyskietki przy zapalonej lampce
w stacji jest zabronione! Należy także pamiętać o wyjęciu
dyskietki przed włączeniem lub wyłączeniem zasilania stacji.
KORZYSTANIE ZE STACJI DO
ZAPISYWANIA I ODCZYTYWANIA PROGRAMÓW
Korzystanie z uprzednio zapisanych programów
W celu uruchomienia programu zapisanego na
dyskietce należy włożyć dyskietkę do włączonej stacji,
opuścić dźwignię i podać komputerowi polecenie: LOAD
"nazwa programu",8 <RETURN>
Na ekranie monitora pojawi się informacja:
SEARCHING FOR nazwa programu
LOADING
READY
Następnie należy podać polecenie: RUN <RETURN>
Polecenie LOAD
Działanie: przepisuje program z dyskietki do pamięci komputera.
Format: LOAD "nazwa programu", nr urządzenia, nr polecenia
Przykłady: LOAD "TEST" ,8
LOAD "ML",8,1
LOAD A$,J,K
W poleceniu LOAD po nazwie programu podaje się jeden lub dwa parametry. Pierwszy oznacza numer urządzenia (napędu) stacji, w
którym znajduje się dyskietka. W tej instrukcji obsługi
zakłada się, że jest to numer 8. Jeśli stacja ma dwa napędy,
każdy jest oznaczony inną liczbą. Drugi parametr podaje
dodatkowe informacje na temat sposobu wykonania polecenia. Jego
wartość wynosi 1, jeśli ładuje się program w języku
wewnętrznym lub inny zbiór binarny albo program z autostartem
tzn. taki, którego nie trzeba już uruchamiać poleceniem RUN.
Jeśli drugi parametr ma być równy O (ładowanie programu w
Basicu), to można go nie podawać (patrz dwa pierwsze
przykłady). Z przykładu czwartego wynika, że do określenia
nazwy programu, numeru urządzenia i polecenia można użyć
zmiennych lub wyrażeń arytmetycznych albo tekstowych. Polecenie
LOAD kasuje poprzedni program znajdujący się w pamięci
komputera.
Katalog dyskietki
Katalog dyskietki jest to lista wszystkich
programów lub innych zbiorów zapisanych na dyskietce. W celu
przepisania katalogu z dyskietki do pamięci komputera należy podać polecenie:
LOAD "$",8 <RETURN>.
Na ekranie pojawi się napis:
SEARCHING FOR $
FOUND $
LOADING
READY
W tym momencie katalog dyskietki znajduje się już w pamięci
komputera. Zawartość katalogu można wyświetlić na ekranie
monitora podając polecenie: LIST <RETURN>
Nazwy niejednoznaczne
Używając polecenia LOAD i innych poleceń
dyskowego systemu operacyjnego można korzystać z pewnych
ułatwień przy zapisywaniu nazwy zbioru:
- gwiazdka (*) może zastąpić dowolną
liczbę znaków nazwy zbioru,
- znak zapytania (?) zastępuje dowolny ale dokładnie jeden
znak.
Przykłady:
LOAD "*",8 spowoduje przepisanie pierwszego zbioru z
dyskietki do pamięci komputera
LOAD "TE*",8 spowoduje przepisanie pierwszego zbioru o
nazwie zaczynającej się od liter TE.
LOAD "TE??",8 spowoduje przepisanie pierwszego zbioru w
nazwie czteroliterowej zaczynającej się od liter TE.
LOAD "T?NT",8 spowoduje przepisanie pierwszego zbioru o
nazwie czteroliterowej, której pierwszą, trzecią i czwartą
literą są odpowiedno T,N,T.
Powyższe możliwości można zastosować
także przy przepisywaniu katalogu dyskietki.
Przykład:
LOAD "$:T?ST",8 spowoduje przepisanie tych nazw
zbiorów z katalogu dyskietki, których pierwszą, drugą i
czwartą literą są odpowiednio T, S, T.
Polecenie SAVE
Działanie: przepisuje program z pamięci
komputera na dyskietkę:
Format: SAVE "nazwa programu", nr urządzenia, nr polecenia
Przykład: SAVE "HOMEWORK",8
Sposób podawania nazwy programu, numeru urządzenia
i polecenia jest podobny jak w LOAD z tym, że nie można używać
nazw niejednoznacznych (z *i ?). Jeśli na dyskietce znajduje się
już zbiór o takiej samej nazwie, to pojawi się sygnał błędu.
Polecenie SAVE & REPLACE
Działanie: przepisuje na dyskietkę nową
wersję programu z zachowaniem starej nazwy.
Format: SAVE "@0: nazwa programu", nr
urządzenia
Przykład: SAVE "@0: HOMEWORK",8
Polecenie to kasuje starą wersję programu. Jeśli
stara wersja jest jeszcze potrzebna, to nową wersję należy
przepisać pod inną nazwą.
Polecenie VERIFY
Działanie: porównuje program bieżący z
programem na dyskietce.
Format: VERIFY "nazwa programu", nr urządzenia, nr
polecenia
Przykład: VERIFY "OLD VERSION ", 8
Uwagi na temat nazw zbiorów
Nazwa programu lub zbioru musi zaczynać się
od litery. Nie może zaczynać się od liczby. Spacje są
dopuszczalne. Nie ma ograniczeń na długość nazwy zbioru, ale
żadne polecenie jako całość nie może mieć więcej niż 58
znaków.
POLECENIA DYSKOWEGO SYSTEMU OPERACYJNEGO
Przedstawione dotychczas polecenia umożliwiają
zapisywanie na dyskietce i przepisywanie z dyskietki do komputera
zbiorów, najczęściej programów. Poniżej bedą przedstawione
polecenia dyskowe, które umożliwiają innego rodzaju współpracę
komputera ze stacją dyskietek. Na przykład polecenia OPEN i
PRINT# umożliwiają zapisywanie na dyskietce danych w
odpowiednich zbiorach, a także przesyłanie poleceń do stacji
przy otwartym kanale rozkazów.
Polecenie OPEN
Działanie: tworzy zbiór na dyskietce poprzez
otworzenie kanału łączności między komputerem a stacją.
Format: OPEN nr zbioru, nr urządzenia, nr kanału,
łańcuch tekstowy
Numer zbioru powinien być liczbą naturalną z przedziału od 1
do 127. Można używać liczb od 128 do 255, pamiętając że
wtedy polecenie PRINT# (będzie opisane dalej) zapisze po znaku
powrotu karetki (CHRS$(13)) dodatkowo znak wysunięcia papieru (CHRS$(10)).
Jako numer urządzenia przyjmuje się zwykle 8. Numer kanału może
być liczbą pomiędzy 2 a 15. Kanały o numerach O i 1 są
zwykle używane przy poleceniach LOAD i SAVE. Kanały o numerach
od 2 do 14 używa się do przesyłania danych. Kanał o numerze
18 jest zarezerwowany jako kanał rozkazowy. Łańcuch tekstowy
zawiera nazwę zbioru lub polecenie. Utworzenie zbioru jest niemożliwe
bez podania łańcucha tekstowego. Próba otwarcia zbioru już
otwartego spowoduje nadanie sygnału błedu: FILE OPEN ERROR
Przykłady: OPEN 5,8,5,"TEST" tworzy
zbiór o nazwie TEST
OPEN 15,8,15,"I" przesyła polecenie
do stacji dyskietek kanałem rozkazowym
OPEN A,B,C,Z$ te zmienne muszą być
zdefiniowane.
Polecenie PRINT#
Działanie: zapisuje dane w zbiorze otwartym
poleceniem OPEN
Format: PRINT# nr zbioru, łańcuch tekstowy
Polecenie PRINT# działa podobnie jak polecenie
PRINT z tym, że zapisuje dane na dyskietce, a nie na ekranie
monitora lub drukarce. Jeśli używa się go przy otwartym kanale
łączności (2, 3, 4, ..., 14), to przesyła dane, poprzez bufor
stacji dyskietek, na dyskietkę. Jeśli używa się go przy
otwartym kanale rozkazowym, to przesyła polecenia do stacji.
Polecenie umieszcza się w cudzysłowiu w łańcuchu tekstowym.
Przykłady:
PRINT# 7,C$ zapisuje w zbiorze numer 7 łańcuch
tekstowy C$, jeśli zbiór otwarto poleceniem OPEN z numerem kanału
z zakresu od 2 do 14,
PRINT# 15,"I" przesyła polecenie do
stacji przez kanał rozkazowy, jeśli poleceniem OPEN otwarto
kanał 15.
Polecenie INITIALIZE
Działanie: przywraca stan wyjściowy stacji
dyskietek
Format: OPEN 15,8,15, "I ": CL05E 15
lub
OPEN 15,8,15: PRI NT#15, "I ": CLOSE 15
Jeśli popełniono błąd uniemożliwiający wykonywanie dalszych
operacji, to do przywrócenia naturalnego stanu stacji używa się
właśnie polecenia INITIALIZE.
Polecenie NEW
Działanie: formatuje dyskietkę.
Format: PRINT#15, "NEW O: nazwa dyskietki,
identyfikator"
Polecenie NEW formatuje nową dyskietkę. Jeśli
dyskietka była wcześniej zapisana, to kasuje wszystko co było
na niej zapisane. Identyfikator składa się z dwóch znaków
alfanumerycznych. Jeśli w czasie zapisywania danych zmieni się
dyskietkę, to stacja będzie poinformowana o tym ponieważ
sprawdza identyfikator.
Przykłady:
OPEN 15,8,15, "NEW 0:TEST DISK,A1": CLOSE 15
OPEN 15,8,15: PRINT#15, "N 0:MY DISK, MY":CLOSE15
Polecenie SCRATCH
Działanie: kasuje jeden lub więcej zbiorów
na dyskietce
Format: PRINT#15, "SCRATCH 0:nazwa zbioru"
Polecenie to usuwa zbiory z dyskietki. Jeśli
chcemy skasować więcej niż jeden zbiór, to możemy podać
wszystkie nazwy zbiorów w jednym poleceniu.
Przykłady:
PRINT#15, "SCRATCH 0: TEXT" kasuje zbiór TEXT.
PRINT#15, "S0: TEXT, 0: TEST, 0: MUSIC" kasuje trzy
zbiory.
Polecenie COPY
Działanie: kopiuje istniejący zbiór pod inną
nazwą
Format: PRINT#15, "COPY 0: nowa nazwa=0: stara nazwa"
Polecenie COPY pozwala również łączyć
kilka zbiorów (do czterech).
Przykłady:
PRINT#15, "COPY 0: BACKUP=: ORIGINAL" zapisuje zbiór
ORIGINAL pod nazwą BACKUP.
PRINT#15, "C0: NEWFILE=0: OLD1,. 0: OLD2" tworzy
zbiór z dwóch innych.
Polecenie RENAME
Działanie: zmienia nazwę istniejącego zbioru
Format: PRINT#15, "RENAME 0: nowa nazwa=0: stara nazwa"
Przykład: PRINT#15, "R0: GOODNAME=0: DUMBNAME"
Polecenie RENAME nie zadziała, jeśli zbiór
jest aktualnie otwarty.
Polecenie VALIDATE
Działanie: porządkuje zbiory na dysku, usuwa
zbiory o swobodnym dostępie
Format: OPEN 1,8,15, "V0: ": CLOSE 15
Odczytywanie kanału błędów
Następujący prosty program odczytuje kanał błędów
sygnalizowanych mruganiem czerwonej lampki:
10 OPEN 15,8,15
20 INPUT#15,A$,B$,C$,D$
30 PRINT A$,B$,C$,D$
40 CLOSE 15
gdzie INPUT#15 nadaje zmiennym następujące
znaczenia:
A$ - numer błędu (0 oznacza, że błąd nie wystapił),
B$ - opis błędu
C$ - nr ścieżki, na której wystąpił błąd (błędy na ścieżce
18 dotyczą kkatalogu i BAM),
D$ - nr sektora, w którym wystąpił błąd.
Polecenie CLOSE
Działanie: zapewnia prawidłowy
zapis ulokowania danych na dysku, zamyka dostęp do zbioru lub
kanał rozkazów.
Format: CLOSE nr zbioru
Jeśli wystąpi błąd w programie w Basicu, to
wszystkie zbiory są zamykane na poziomie interpretera, ale nie są
zamykane na poziomie dyskowego systemu operacyjnego. Jest to
wielce niebezpieczne. Natychmiast należy wydać polecenie:
CLOSE 15: OPEN 15,8,15: CLOSE 15
Dokona się reinicjalizacja stacji dysków, co
zapewni bezpieczeństwo zbiorom na dyskietce.
ZBIORY SEKWENCYJNE
Zbiory sekwencyjne magazynują dane i umożliwiają
do nich dostęp w sposób sekwencyjny od początku zbioru do końca.
Są trzy rodzaje zbiorów, które przechowują dane w sposób
sekwencyjny:
- zbiory z programami (oznaczane w katalogu
przez PRG)
- zbiory z danymi (SEQ i USR).
Trzeci typ zbiorów danych, to zbiory relatywne
(REL) - o dostępie bezpośrednim do każdego rekordu.
Polecenie OPEN
Działanie: otwarcie zbioru sekwencyjnego
Format: OPEN nr zbioru, nr urz. , nr kanału,
"0: nazwa, typ, polecenie"
Nr zbioru, nr urządzenia i nr kanału (z
zakresu od 2 do 14) mają takie znaczenie jak poprzednio. Nazwa
zbioru musi być jednoznaczna, jeśli otwiera się zbiór dla
zapisu. Typ może być jednym z podanych wyżej. Jego nazwę można
skrócić do pierwszej litery. Polecenie może być jedną z
liter:
R - jak READ, jeśli zbiór otwiera się do
odczytywania danych,
W - jak WRITE, jeśli zbiór otwiera się do zapisu.
A - jak APPEND, jeśli zbiór otwiera się do dopisywania danych.
Po otwarciu do transmisji danych używa się
komend PRINT#, INPUT# i GET#.
Polecenie PRINT#
Działanie: wyprowadzenie do uprzednio
otwartego zbioru
Format: PRINT# nr zbioru, lista danych
Przykład: str. 15 w instrukcji w języku
angielskim.
Polecenie GET#
Działanie: wprowadzanie danych z dysku bajt po
bajcie
Format: GET# nr zbioru, lista zmiennych
Polecenie INPUT#
Działanie: wprowadzanie danych z pól
oddzielonych separatorami
Format: INPUT# nr zbioru, lista zmiennych
Jako separatorów pól można używać znaku
przecinka (CHR$(44)), a jako separatora rekordu znaku powrotu
karetki (CHR$(13)). Jednej zmiennej można nadać wartość z
jednego pola. Jeden rekord można odczytać jedną instrukcją
INPUT#.
ZBIORY O DOSTĘPIE SWOBODNYM
Metoda dostępu swobodnego pozwala na wydobycie
danych ze zbioru bez konieczności odczytywania całego zbioru,
co jest konieczne w przypadku zbiorów sekwencyjnych. Istnieją
dwa typy zbiorów o dostępie bezpośrednim: zbiory o dostępie
swobodnym i zbiory relatywne. Różnica między nimi polega na
tym, że zbiorami relatywnymi zarządza dyskowy system
operacyjny, podczas gdy zbiory o dostępie swobodnym są oddane
całkowicie pod rządy programu użytkownika.
Polecenie OPEN
Działanie: otwiera kanał dla dostępu
swobodnego
Format: OPEN nr zbioru, nr urz. ,15
OPEN nr zbioru, nr urz. , nr kanału, "# nr bufora"
Nr kanału z zakresu od 2 do 14.
Polecenie BLOCK-READ (B-R)
Działanie: odczytanie wskazanego
bloku danych z dysku do bufora
Format: PRINT# nr zb., "B-R: ", nr kanału, nr napędu,
nr ścieżki, nr bloku
Nr zbioru taki jak w OPEN otwierającym kanał rozkazów, nr kanału
taki jak w OPEN otwierającym kanał danych. Numery ścieżek i
odpowiadające im zakresy numerów sektorów zawiera tabela na str.
17 instrukcji w języku angielskim. Nr napędu oznacza logiczny
nr napędu - najczęściej jest to 0. Do bufora zostaną
odczytane tylko bajty zawierające dane. Dane z bufora można
odczytać za pomocą GET# lub INPUT# z numerem zbioru takim jak w
OPEN otwierającym kanał dla danych.
Polecenie BLOCK-WRITE (B-W)
Działanie: zapisanie bloku danych z bufora we
wskazanym miejscu na dysku
Format: PRINT# nr zb. , "B-W: ", nr kanału, nr napędu,
nr ścieżki, nr bloku
Znaczenie parametrów takie jak w B-R. Dane w buforze można umieścić
za pomocą PRINT# z numerem zbioru takim jak w poleceniu OPEN
otwierającym kanał dla danych.
Polecenie BLOCK-ALLOCATE (B-A)
Działanie: sprawdza czy blok jest
wolny i zajmuje go, jeśli tak
Format: PRINT# nr zb. ,"B-A: ", nr kanału, nr napędu,
nr ścieżki, nr bloku
Znaczenie parametrów takie jak w B-R. Jeśli B-A wykryje, że
blok jest zajęty to sygnalizowany jest błąd nr 65. Stan stacji
po wykonaniu B-A można odczytać za pomocą INPUT# z numerem
zbioru takim jak w OPEN otwierającym kanał rozkazów.
Polecenie BLOCK-FREE (B-F)
Działanie: zwalnia wskazany blok
Format: PRINT# nr zb. ,"B-F: ", nr kanału, nr napędu,
nr ścieżki, nr bloku
Polecenie BUFFER-POINTER (B-P)
Działanie: pozwala na swobodny dostęp w
ramach bloku
Format: PRINT# nr zb.,"B-P:", nr kanału, nr bajtu
Polecenie USER 1 (U1 lub UA)
Działanie: odczytanie wszystkich bajtów
wskazanego bloku
Format: PRINT# nr zb. ,"U1: ", nr kanału, nr napędu,
nr ścieżki, nr bloku
Polecenie USER 2 (U2 lub UB)
Działanie: zapisanie bloku bez zmiany wskaźnika
bufora
Format: PRINT# nr zb. ,"U2: ", nr kanału, nr napędu,
nr ścieżki, nr bloku
ZBIORY RELATYWNE
Zbiory relatywne (oznaczane w katalogu
dyskietki przez REL) podobnie jak zbiory o dostępie swobodnym
również zapewniają bezpośredni dostęp do każdego rekordu
zbioru bez potrzeby wczytywania wszystkich danych do komputera.
Różnica polega na tym, że o tym co jest zajęte na dyskietce,
a co można jeszcze wypełnić, pamięta dyskowy system
operacyjny i nie musi o tym pamiętać program użytkownika.
Polecenie RECORD LENGTH
Działanie: deklaracja długości rekordu
Format: OPEN nr zb., nr urz., nr kanału, "0:nazwa,L,"+CHR$(dł.
rek.)
Ostatni parametr przesyłany za pomocą funkcji CHR$ oznacza długość
rekordów w zbiorze - zbiór będzie zawierał rekordy o tej stałej
długości.
Polecenie OPEN
Działanie: otwarcie istniejącego zbioru
relatywnego
Format: OPEN nr zb. , nr urz. , nr kanału, "0: nazwa"
OPEN nr zb. , nr urz. , 15
Nr kanału do przesyłania danych musi być z zakresu od 2 do 14.
Polecenie POSITION
Działanie: ustawienie wskaźnika zbioru na
wskazany rekord
Format: PRI NT# nr zb. , "P" CHR$(nr kan.) CHR$(RL) CHR$(RH)
CHR$(NB)
Numer rekordu wylicza się ze wzoru RL+256*RH,
NB oznacza nr bajtu w rekordzie
Nr zbioru musi być taki jak w OPEN otwierającym kanał
rozkazów. Nr kanału musi być taki jak w OPEN otwierającym
kanał danych. Dane z rekordu, na który wskazuje wskaźnik można
wpisywać za pomocą PRINT# i odczytywać za pomocą INPUT# lub
GET#.
Polecenie FILE LENGTH
Działanie: deklaracja liczby rekordów w
zbiorze
Format: PRI NT# nr zb. , "P" CHR$(nr kan.) CHR$(RL)
CHR$(RH) CHR$(1)
PRINT# nr zb. , CHR$(255)
Numer ostatniego rekordu wylicza się ze wzoru RL+256*RH. Nr
zbioru w instrukcji przesyłającej nr rekordu musi być taki jak
w OPEN otwierającym kanał rozkazów. Nr kanału w tej
instrukcji musi być taki jak w OPEN otwierającym kanał danych
i definiującym długość rekordu. Nr zbioru w drugim poleceniu
PRINT# też musi być taki jak w OPEN otwierającym kanał
danych.
PROGRAMOWANIE KONTROLERA STACJI
DYSKÓW
Polecenie MEMORY-WRITE (M-W)
Działanie: wpisanie do pamięci stacji dysków
ki1ku bajtów (do 34)
Format: PRINT#15, "M-W: "CHR$(AL) CHR$(AH) CHR$(N) CHR$(D1)
. . . CHR$(DN)
Adres pamięci kontrolera, pod którym zapisane zostaną dane
wylicza się ze wzoru AL+AH*256. N określa liczbę danych. D1 ,
. . . , DN oznaczają dane.
Polecenie MEMORY-READ (M-R)
Działanie: wybiera bajt z pamięci kontrolera
przeznaczony do odczytu
Format: PRINT#15, "M-R: "CHR$(AL) CHR$(AH)
Adres bajtu wylicza się ze wzoru AL+256*AH. Wskazany bajt można
odczytać poleceniem:
GET#15, A$
Polecenie MEMORY-EXECUTE
Działanie: powoduje wykonanie programu zapisanego
w pamięci kontrolera
Format: PRINT#15, "M-E : " CHR$(AL) CHR$(AH)
Polecenia USER
U1 lub UA - BLOCK-READ bez zmieniania wskaźnika
bufora
U2 1ub UB - BLOCK-WRITE bez zmieniania wskaźnika bufora
od U3 (lub UC) do U8 (lub UH) - skoki do tablicy skoków
umieszczonej w pamięci kontrolera w zakresie od $0500 do $0512
U9 lub UI - skok do $FFFA
U; lub UJ - skok do wektora RESET
UI+ - włączenie szybkości C-64
U- - włączenie szybkosci VI C-20
ZMIANA NUMERU URZĄDZENIA
Metoda programowa
Poniższy program zmienia nr stacji na 9.
10 OPEN 15,8,15
20 PRINT#15, "M-W: "CHR$(119) CHR$(0) CHR$(2) CHR$(9+32)
CHR$(9+64)
30 CLOSE 15
Aby nadać stacji inny numer należy zmienić 9
na ten numer w dwóch ostatni funkcjach CHR$ polecenia PRINT#.
Życzymy Państwu udanych sesji ze stacją Commodore
1541 -I I .
Fancy Electronics Ltd.
Wyłączny dystrybutor sprzętu Commodore w Polsce.
Przygotował:
Data realizacji:
Data publikacji:
Data modyfikacji:
Pierwsza publikacja:
|
|
Reiter (Apidya)
-
7.8.2000
-
Filety on-line
|
|
|