<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mera400.pl/index.php?action=history&amp;feed=atom&amp;title=CROOK-5_-_Podsystem_wej%C5%9Bcia-wyj%C5%9Bcia</id>
	<title>CROOK-5 - Podsystem wejścia-wyjścia - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mera400.pl/index.php?action=history&amp;feed=atom&amp;title=CROOK-5_-_Podsystem_wej%C5%9Bcia-wyj%C5%9Bcia"/>
	<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CROOK-5_-_Podsystem_wej%C5%9Bcia-wyj%C5%9Bcia&amp;action=history"/>
	<updated>2026-05-01T14:46:59Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://mera400.pl/index.php?title=CROOK-5_-_Podsystem_wej%C5%9Bcia-wyj%C5%9Bcia&amp;diff=1021&amp;oldid=prev</id>
		<title>Amo: Utworzono nową stronę &quot;Podsystem wejścia - wyjścia zawiera ekstrakody umożliwiające przesyłanie informacji między programami a urządzeniami zewnętrznymi bądż też zbiorami dyskowymi....&quot;</title>
		<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CROOK-5_-_Podsystem_wej%C5%9Bcia-wyj%C5%9Bcia&amp;diff=1021&amp;oldid=prev"/>
		<updated>2013-08-18T07:44:45Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Podsystem wejścia - wyjścia zawiera ekstrakody umożliwiające przesyłanie informacji między programami a urządzeniami zewnętrznymi bądż też zbiorami dyskowymi....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Podsystem wejścia - wyjścia zawiera ekstrakody umożliwiające&lt;br /&gt;
przesyłanie informacji między programami a urządzeniami&lt;br /&gt;
zewnętrznymi bądż też zbiorami dyskowymi.&lt;br /&gt;
Obiekt do/z którego będzie wykonywane przesyłanie informacji&lt;br /&gt;
(urządzenie znakowe, zbiór dyskowy, komunikat) identyfikowane jest&lt;br /&gt;
przez strumień.&lt;br /&gt;
Może to być strumień utworzony przez proces&lt;br /&gt;
wykonujący operacje&lt;br /&gt;
WE/WY, lub też strumień utworzony przez jednego z jego przodków.&lt;br /&gt;
Przy współpracy z urządzeniami znakowymi lub przy sekwencyjnym&lt;br /&gt;
dostępie do zbiorów dyskowych, używane są ekstrakody&lt;br /&gt;
transmisji znakowych. Umożliwiają one przesyłanie zarówno&lt;br /&gt;
pojedyńczych znaków jak i bloków o zadanej długości&lt;br /&gt;
lub o zadanym znaku kończącym.&lt;br /&gt;
Do współpracy z pamięciami zewnętrznymi lub&lt;br /&gt;
przy dostępie swobodnym do zbiorów dyskowych&lt;br /&gt;
używane są ekstrakody transmisji blokowych.&lt;br /&gt;
Przesyłają one bloki słów bezpośrednio między pamięcią&lt;br /&gt;
zewnętrzną a pamięcią operacyjną.&lt;br /&gt;
&lt;br /&gt;
= Pole parametrów transmisji znakowych REC =&lt;br /&gt;
&lt;br /&gt;
* 0 - na młodszym bajcie wskażnik znaku w buforze określający przy wywołaniu ekstrakodu numer  znaku w buforze od którego rozpocznie się transmisja, po zakończeniu ekstrakodu wskażnik ostatniego znaku zwracany jest na całym słowie.&lt;br /&gt;
* 1 - identyfikator strumienia (przywiązanego uprzednio odpowiednim ekstrakodem do urządzenia lub zbioru dyskowego).&lt;br /&gt;
* 2 - adres bufora w pamięci operacyjnej do/z którego transmitowane są znaki upakowane po dwa w słowo.&lt;br /&gt;
* 3 - słowo którego starszy byte zawiera kod znaku kończącego transmisję, a młodszy maksymalną liczbę znaków, która może być transmitowana; zerowa wartość młodszego byte&amp;#039;u oznacza transmisję bez ograniczenia długości.&lt;br /&gt;
* 4 - słowo występujące tylko w ekstrakodzie PINP i uwzględniane tylko przy czytaniu z urządzenia dwukierunkowego (monitor ekranowy, drukarka z klawiaturą); słowo to  zawiera kody dwóch znaków które  będą wyprowadzane na urządzenie przed czytaniem, a ponadto pierwszy z tych znaków zostanie umieszczony w buforze (tak, jakby został pobrany ekstrakodem jako pierwszy znak). Przy czytaniu ze zbioru dyskowego lub z urządzenia jednokierunkowego (czytnik) słowo to jest ignorowane.&lt;br /&gt;
&lt;br /&gt;
Bity starszego bajtu zerowego słowa mają następujące znaczenie:&lt;br /&gt;
&lt;br /&gt;
* 0 - bit ustawiony dla ekstrakodów PRIR i PRIN oznacza transmisję dwukierunkową - czytanie po pisaniu, wówczas słowo 4 zawiera adres bufora, a słowo 5 kod znaku kończącego i ogranicznik bufora czytania;&lt;br /&gt;
* 1 - bit ustawiony oznacza czytanie bez generacji echa (tylko dla MULTIX-a);&lt;br /&gt;
* 2-7 - liczba większa od zera określa dopuszczalny czas trwania transmisji w sekundach (tylko dla MULTIX-a).&lt;br /&gt;
&lt;br /&gt;
= Ekstrakody transmisji znakowych =&lt;br /&gt;
&lt;br /&gt;
Argumentem ekstrakodów tej grupy jest podawany w rejestrze R4&lt;br /&gt;
adres pola parametrów REC.&lt;br /&gt;
&lt;br /&gt;
Z każdym strumieniem (przywiązanym do zbioru dyskowego)&lt;br /&gt;
związany jest wskażnik znaku zbioru przywiązanego do strumienia.&lt;br /&gt;
Jest to liczba (32-bitowa), określająca numer kolejny znaku w zbiorze&lt;br /&gt;
który będzie pobrany (lub przesłany) przy wykonaniu operacji&lt;br /&gt;
wejścia (wyjścia).&lt;br /&gt;
Liczba ta jest zwiększana po przesłaniu każdego znaku.&lt;br /&gt;
Po zdefiniowaniu strumienia wskażnik znaku jest ustawiony&lt;br /&gt;
na początek zbioru.&lt;br /&gt;
&lt;br /&gt;
* INPR - czytaj blok.&lt;br /&gt;
* PINP - wyprowadż znaki zgłoszenia i czytaj blok.&lt;br /&gt;
* PRIR - pisz blok wraz ze znakiem kończącym.&lt;br /&gt;
* PRIN - pisz blok bez znaku kończącego.&lt;br /&gt;
* EOF - zamknij zbiór wyjściowy.&lt;br /&gt;
* FBOF - ustaw wskażnik znaku na początek zbioru.&lt;br /&gt;
* FEOF - ustaw wskażnik znaku na koniec zbioru.&lt;br /&gt;
&lt;br /&gt;
Wykrycie przez ekstrakod czytania końca zbioru sygnalizowane jest&lt;br /&gt;
ustawieniem bitu C w R0.&lt;br /&gt;
Wczytanie lub wyprowadzenie końca zbioru (ekstakody:INPR,&lt;br /&gt;
PINP,EOF) powoduje automatyczne usunięcie strumienia.&lt;br /&gt;
Wywołanie ekstrakodów ustalających położenie wskażnika znaku&lt;br /&gt;
dla strumieni dołączonych do obiektów innych niż zbiory dyskowe&lt;br /&gt;
nie powoduje żadnych skutków.&lt;br /&gt;
&lt;br /&gt;
= Ekstrakody przetwarzania nazw i liczb =&lt;br /&gt;
&lt;br /&gt;
Ekstrakody te używają pola parametrów takiego jak&lt;br /&gt;
dla ekstrakodów transmisji znakowych.&lt;br /&gt;
Po przeanalizowaniu każdego elementu bloku&lt;br /&gt;
wskażnik znaku w buforze wskazuje pozycje następną za znakiem kończącym&lt;br /&gt;
ten element. Po osiągnięciu końca bloku wskażnik wskazuje&lt;br /&gt;
pozycję ostatniego znaku w buforze.&lt;br /&gt;
&lt;br /&gt;
* INAM - pobierz z bufora nazwę lub liczbę. Liczba rozpoczynająca się cyfrą 0 traktowana jest jako ósemkowa. Ekstrakod analizuje kolejne znaki zgodnie z wartością wskaznika znaku. Możliwe są wyjścia z ekstrakodu według:&lt;br /&gt;
** IC, w R3 umieszczony został pobrany znak, który nie jest znakiem, który mógłby rozpoczynać liczbę lub nazwę (nieudana próba pobrania nazwy lub liczby);&lt;br /&gt;
** IC+1, pobrana z bufora liczba umieszczona została w R2 (bit C=0) lub w R1 i R2 (bit C=1), R3 zawiera znak kończący liczbę, przy nadmiarze ustawiany jest bit V;&lt;br /&gt;
** IC+2, pobrana z bufora nazwa umieszczona została w R1 i R2 po trzy znaki  w słowie, nazwa dłuższa od sześciu znaków jest obcinana, a R3 zawiera znak kończący nazwę (pierwszy znak za nazwą różny od litery lub cyfry).&lt;br /&gt;
* INUM - pobierz z bufora liczbę dziesiętną. Ekstrakod działa podobnie jak INAM lecz analizuje tylko liczby (nie ma wyjścia według IC+2), jak również ignoruje nieznaczące zera na początku.&lt;br /&gt;
&lt;br /&gt;
= Pole parametrów transmisji blokowych BLOCK =&lt;br /&gt;
&lt;br /&gt;
* 0 - licznik ustawiany po powrocie z ekstrakodu, podający liczbę przesłanych słów.&lt;br /&gt;
* 1 - dla READ i WRIT: identyfikator strumienia przywiązanego do zbioru, dla REAP i WRIP: identyfikator procesu, dla OVL: ignorowany.&lt;br /&gt;
* 2 - adres początku przesyłanego obszaru w pamięci operacyjnej.&lt;br /&gt;
* 3 - liczba słów transmisji.&lt;br /&gt;
* 4 - adres dyskowy w zbiorze (numer sektora dyskowego względem początku zbioru) od którego rozpocznie się transmisja.&lt;br /&gt;
&lt;br /&gt;
= Ekstrakody transmisji blokowych =&lt;br /&gt;
&lt;br /&gt;
* READ - czytaj ze zbioru dyskowego lub wczytaj komunikat.&lt;br /&gt;
* WRIT - pisz do zbioru.&lt;br /&gt;
* REAP - czytaj ze zbioru systemowego (zawierającego obraz pamięci operacyjnej procesu).&lt;br /&gt;
* WRIP - pisz do zbioru systemowego.&lt;br /&gt;
* OVL - wczytaj nakładkę ze zbioru, z którego był utworzony własny proces.&lt;br /&gt;
* WADR - pisz do zbioru pola adresowe - adresuj dysk(tylko dla procesów posiadających odpowiednie uprawnienie).&lt;br /&gt;
&lt;br /&gt;
Wczytywanie komunikatu (ekstrakod READ) odbywa się według&lt;br /&gt;
identyfikatora strumienia zdefiniowanego przez nadawcę komunikatu.&lt;br /&gt;
Po wczytaniu komunikatu strumień ten jest usuwany.&lt;br /&gt;
&lt;br /&gt;
Dla ekstrakodu OVL wywoływanego przez program&lt;br /&gt;
o atrybucie 4 ( program w postaci relokowalnych modułów&lt;br /&gt;
utworzonych przez kompilator PASCAL i assembler GASS )&lt;br /&gt;
pole parametrów ma inne znaczenie:&lt;br /&gt;
&lt;br /&gt;
* 0-3 - czteroznakowa nazwa modułu (w kodzie ISO );&lt;br /&gt;
* 4 - adres wejściowy do nakładki, lub 0. Podanie 0 w tym słowie oznacza że po wykonaniu ekstrakodu sterowanie zostanie przekazane pod adres transferowy zapisany w opisie nakładki, lub za ekstrakodem.&lt;br /&gt;
&lt;br /&gt;
= Ekstrakody współpracy z kanałem automatyki PI =&lt;br /&gt;
&lt;br /&gt;
Argumentem ekstakodów jest przekazywany w R4 adres pola parametrów.&lt;br /&gt;
Pole składa się z dwóch słów. Ze słowa pierwszego pobierana jest&lt;br /&gt;
informacja wysyłana do PI lub wpisywana jest doń informacja wczytana z PI.&lt;br /&gt;
Poszczególne bity drugiego słowa zawierają:&lt;br /&gt;
&lt;br /&gt;
* 0-1 - kod odpowiedzi (O):&lt;br /&gt;
** 0 - rozkaz wykonany (OK)&lt;br /&gt;
** 1 - zajętość (EN)&lt;br /&gt;
** 2 - błąd (PE)&lt;br /&gt;
** 3 - brak odpowiedzi&lt;br /&gt;
* 2-4 - kod funkcji (F):&lt;br /&gt;
** 1 - czytaj z pakietu pierwsze słowo&lt;br /&gt;
** 2 - czytaj zgłoszenie przerwania&lt;br /&gt;
** 3 - czytaj z pakietu drugie słowo&lt;br /&gt;
** 4 - funkcja dodatkowa&lt;br /&gt;
** 5 - pisz do pakietu pierwsze słowo&lt;br /&gt;
** 6 - funkcja dodatkowa&lt;br /&gt;
** 7 - pisz do pakietu drugie słowo&lt;br /&gt;
* 5-7 - numer logiczny kanału PI (0-gdy tylko jeden kanał)&lt;br /&gt;
* 8-11 - adres kasety&lt;br /&gt;
* 12-15 - adres pakietu.&lt;br /&gt;
&lt;br /&gt;
Gdy F=0 wykonywany jest rozkaz do kanału, bity 11:-13 określają treść rozkazu:&lt;br /&gt;
&lt;br /&gt;
* 0 - zeruj kanał&lt;br /&gt;
* 1 - blokuj przerwania do procesora&lt;br /&gt;
* 3 - ustaw rejestr masek&lt;br /&gt;
* 4 - sprawdż istnienie bloku sprzężenia&lt;br /&gt;
* 5 - podaj stan zgłoszeń z kaset&lt;br /&gt;
* 6 - podaj specyfikację przerwania o najwyższym piorytecie&lt;br /&gt;
* 7 - ustaw numer procesora (alokuj).&lt;br /&gt;
&lt;br /&gt;
Ekstrakod &amp;quot;wykonaj operację&amp;quot; OPPI.&lt;br /&gt;
&lt;br /&gt;
Ekstrakod wykonuje operacje określoną drugim słowem pola parametrów.&lt;br /&gt;
Po wykonaniu ustawia bity odpowiedzi w drugim słowie i, jeśli operacja&lt;br /&gt;
dotyczy pobrania słowa, wpisuje jego wartość&lt;br /&gt;
do pierwszego słowa pola parametrów.&lt;br /&gt;
&lt;br /&gt;
Ekstrakod WFPI.&lt;br /&gt;
&lt;br /&gt;
Ekstrakod pobiera z PI adres zgłoszenia o najwyższym priorytecie,&lt;br /&gt;
a jeśli nie ma zgłoszeń - zawiesza proces do chwili pojawienia się&lt;br /&gt;
zgłoszenia.&lt;br /&gt;
Z pola parametrów używa tylko numeru kanału PI i ustawia bity odpowiedzi.&lt;br /&gt;
Pobrany adres zgłoszenia&lt;br /&gt;
umieszczany jest w pierwszym słowie w tej samej kolejności jak przy&lt;br /&gt;
wykonywaniu operacji:&lt;br /&gt;
&lt;br /&gt;
* bity 8-11 adres kasety,&lt;br /&gt;
* bity 12-15 adres pakietu.&lt;br /&gt;
&lt;br /&gt;
= Ekstrakod współpracy z systemem CAMAC =&lt;br /&gt;
&lt;br /&gt;
Argumentem ekstrakodu CAMAC jest przekazywany w R4 adres pola parametrów.&lt;br /&gt;
Pole składa się z dwóch, trzech lub czterech słów w zależności od&lt;br /&gt;
funkcji i rodzaju operacji.&lt;br /&gt;
&lt;br /&gt;
* 0 - słowo zawierające na bitach 4-7 rodzaj operacji (zadawany przy wejśćiu do ekstrakodu) a na bitach 0-2 odpowiedż ustawianą przez ekstrakod:&lt;br /&gt;
** bit 0=1 brak odpowiedzi z kanału,&lt;br /&gt;
** bit 1=1 brak akceptacji rozkazu (X=0),&lt;br /&gt;
** bit 2=1 odpowiedż negatywna (Q=0)&lt;br /&gt;
** bit 4=1 operacja lub transmisja 24-bitowa,&lt;br /&gt;
** bit 5=1 transmisja ADDRESS SCAN,&lt;br /&gt;
** bit 6=1 transmisja STOP,&lt;br /&gt;
** bit 7=1 zawieś proces i czekaj na zgłoszenie LAM.&lt;br /&gt;
*: Jeśli ekstrakod dotyczy transmisji, to po jej zakończeniu na bitach 3:-15 umieszczana jest liczba przesłanych słów.&lt;br /&gt;
* 1 - adres i funkcja CAMAC:&lt;br /&gt;
** bity 0-1 numer logiczny kasety (C),&lt;br /&gt;
** bity 2-6 kod funkcji (F),&lt;br /&gt;
** bity 7-10 adres wewnętrzny (A),&lt;br /&gt;
** bity 11-15 numer stanowiska (N),&lt;br /&gt;
* 2 - adres danych w pamięci operacyjnej (używany jest tylko przy operacjach przesłania i transmisjach),&lt;br /&gt;
* 3 - liczba słów transmisji (tylko przy transmisji).&lt;br /&gt;
&lt;br /&gt;
Ekstrakod umożliwia wykonywanie wszelkich operacji w systemie&lt;br /&gt;
zawierającym do czterech kaset CAMAC. Fizyczne adresy kaset (numery kanałów)&lt;br /&gt;
umieszczone są w tablicy konfiguracji systemu operacyjnego (słowa 044:-047).&lt;br /&gt;
Przy starcie systemu przeprowadzana jest inicjacja wszystkich zadeklarowanych&lt;br /&gt;
kaset poprzez wysłanie do każdego bloku sprzężenia rozkazów &amp;quot;generuj Z&amp;quot;&lt;br /&gt;
i &amp;quot;odblokuj zgłoszenia&amp;quot;.&lt;br /&gt;
Każdy blok sprzężenia z założenia pracuje z odblokowanymi zgłoszeniami.&lt;br /&gt;
Umożliwia to jednoczesną współpracę z jedną kasetą kilku procesów&lt;br /&gt;
z których każdy może czekać na zgłoszenia z innego stanowiska.&lt;br /&gt;
System po odebraniu przerwania wysyła do stanowiska które się zgłosiło&lt;br /&gt;
rozkaz &amp;quot;blokuj podawanie L na magistralę&amp;quot; i ponownie odblokowuje zgłoszenia&lt;br /&gt;
w bloku sprzężenia.&lt;br /&gt;
Dozwolone jest wysyłanie wszelkich rozkazów do bloku sprzężenia,&lt;br /&gt;
a więc również rozkazów dotyczących samego sterownika kasety.&lt;br /&gt;
Należy więc zwrócić uwagę na to,&lt;br /&gt;
że wysłanie do bloku sprzężenia rozkazu &amp;quot;generuj Z&amp;quot; lub &amp;quot;zablokuj&lt;br /&gt;
zgłoszenia&amp;quot; spowoduje zablokowanie procesów czekających na zgłoszenia&lt;br /&gt;
z danej kasety.&lt;br /&gt;
&lt;br /&gt;
= Ekstrakody współpracy z pamięciami taśmowymi =&lt;br /&gt;
&lt;br /&gt;
Argumentem ekstrakodów jest przekazywany w R4 adres pola parametrów.&lt;br /&gt;
Pole składa się z czterech słów, przy czym ekstrakody nietransmisyjne&lt;br /&gt;
używają tylko dwóch pierwszych.&lt;br /&gt;
&lt;br /&gt;
* 0 - słowo zawierające parametr zwracany przez ekstrakod:&lt;br /&gt;
** bit 0=1 koniec taśmy,&lt;br /&gt;
** bit 1=1 początek taśmy przy ruchu wstecz,&lt;br /&gt;
** bit 2=1 znacznik końca zbioru (FILE MARK),&lt;br /&gt;
** bity 3-15 długość przesłanego bloku w słowach.&lt;br /&gt;
* 1 - numer logiczny jednostki (pozycja w tablicy konfiguracji względem adresu 040).&lt;br /&gt;
* 2 - adres początku przesyłanego obszaru w pamieci operacyjnej.&lt;br /&gt;
* 3 - liczba słów transmisji.&lt;br /&gt;
&lt;br /&gt;
Nazwy ekstakodów:&lt;br /&gt;
&lt;br /&gt;
* RWMT - przewiń taśmę do początku;&lt;br /&gt;
* FBMT - przesuń taśmę do znacznika zbioru do tyłu;&lt;br /&gt;
* FFMT - przesuń taśmę do znacznika zbioru do przodu;&lt;br /&gt;
* BBMT - przesuń taśmę o blok do tyłu;&lt;br /&gt;
* BFMT - przesuń taśmę o blok do przodu;&lt;br /&gt;
* FMMT - zapisz znacznik zbioru;&lt;br /&gt;
* REMT - czytaj blok z taśmy;&lt;br /&gt;
* WRMT - pisz blok na taśmę.&lt;br /&gt;
&lt;br /&gt;
Ekstrakody umożliwiają wykonywanie operacji w systemie zawierającym&lt;br /&gt;
do czterech jednostek pamięci taśmowych. Fizyczne adresy jednostek&lt;br /&gt;
umieszczone są w tablicy konfiguracji (słowa 040:-043).&lt;br /&gt;
Każda jednostka jest zajmowana przez proces z nią współpracujący&lt;br /&gt;
na czas działania procesu.&lt;br /&gt;
W przypadku wykrycia błędu przy czytaniu taśma jest cofana&lt;br /&gt;
i czytanie powtarza się. Dopiero po dziesiątym wystąpieniu&lt;br /&gt;
tego samego błędu proces jest przerywany alarmem.&lt;br /&gt;
W przypadku wystąpienia błedu przy pisaniu, powtarza się również zapis.&lt;br /&gt;
Po dziesiątym nieudanym zapisie dany odcinek taśmy zostaje wykasowany i&lt;br /&gt;
operacja zapisu wykonywana jest ponownie w innym, dalszym miejscu taśmy.&lt;br /&gt;
&lt;br /&gt;
{{source|title=SYSTEM OPERACYJNY CROOK-5 dla minikomputera MERA-400 (wersja 7)|author=Zbigniew Czerniak, Marek Nikodemski|date=Gdańsk 1988}}&lt;/div&gt;</summary>
		<author><name>Amo</name></author>
	</entry>
</feed>