System testowy AMETES: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
(Utworzono nową stronę "= Wstęp = AMETES jest to system operacyjny, jednodostępny, wyspecjalizowany w kierunku wykonywania testów. Niniejsze opracowanie zawiera opis współpracy użytkowni...")
 
Nie podano opisu zmian
 
Linia 547: Linia 547:
|      0510    ||  WSKBUF  ||  Wskaźnik znaku do wczytania z bufora dyrektywy
|      0510    ||  WSKBUF  ||  Wskaźnik znaku do wczytania z bufora dyrektywy
|}
|}
{{source|title=System testowy AMETES współpracujący z systemem operacyjnym CROOK-5/CROONIX|author=mgr inż. Bożena Padzik|date=Warszawa, marzec 1987}}

Aktualna wersja na dzień 19:08, 9 cze 2015

Wstęp

AMETES jest to system operacyjny, jednodostępny, wyspecjalizowany w kierunku wykonywania testów. Niniejsze opracowanie zawiera opis współpracy użytkownika z systemem testowym. Opisany został:

  • sposób załadowania do pamięci i wystartowanie systemu AMETES,
  • przystosowanie go do posiadanej konfiguracji sprzętu,
  • ustalenie potrzebnych parametrów,
  • opis dyrektyw,
  • opis reakcji systemu na przerwanie i sytuacje awaryjne.

W drugiej części opracowania znajdują się uwagi dotyczące testu i jego działania w systemie:

  • budowa testu,
  • możliwości ingerowania testu w pracę systemu,
  • opis ekstrakodów.

Opis ogólny systemu testowego

System Testowy AMETES pozwala uruchamiać i wykonywać testy minikomputera MERA-400. Jest przystosowany do działania w środowisku zorganizowanym przez system operacyjny CROOK-5, tzn. korzysta z organizacji zbiorów tego systemu. Przed przystąpieniem do pracy, każdy użytkownik powinien uaktualnić informacje dotyczące konfiguracji sprzętu, zapisanie w odpowiednich miejscach systemu, (patrz: p.9). Informacje te dotyczą urządzeń wejścia/wyjścia i talerzy dyskowych.

Tablice DEVOU0 i DEVIN0 opisują 4 konsole operatorskie. W danej chwili System Testowy współpracuje z tą konsolą, której numer logiczny wskazywały klucze informacyjne KB pulpitu technicznego w momencie ostatniego naciśnięcia klucza OPRQ.

W każdej komórce opisana jest jedna konsola, w DEVOU0 jako wyjście, w DEVIN0 – wejście:

  • na bitach 8-10 nr jednostki sterującej,
  • na bitach 11-14 nr kanału.

Odpowiednią pozycję każdej z tych tablic, czyli numer logiczny konsoli, ustala operator za pomocą kluczy. Na przykład ustawienie na kluczach 14-15 wartości 3 powoduje ustalenie konsoli czwartej zarówno jako wyjście jak i jako wejście. Numery kanału. i jednostki sterującej pobierane są z pozycji DEVINO+3 dla rozkazu IN i z pozycji DEVOUO+3 dla rozkazu OU.

W tablicy TABDIN znajdują się zakodowane numery talerzy dyskowych. Bit 15 oznacza: 1 - talerz stały, 0 - talerz wymienny, na bitach 11-14 zapisany jest nr kanału, a na bitach 2-10 nr jednostki sterującej. Numery brakujących talerzy należy zastąpić liczbą -1.

AMETES ładowany jest do bloku zerowego pamięci operacyjnej przy pomocy dyrektywy CS systemu operacyjnego. Początkowo zgłasza się na konsoli o numerze 0. Jeżeli opis konsoli zerowej umieszczony w komórkach DEVIN0 i DEVOV0 nie odpowiada konfiguracji użytkownika, wtedy można bezpośrednio przed wywołaniem systemu dyrektywą CS, ustawić na kluczach informacyjnych KB aktualny opis konsoli zerowej. Wartość ta będzie zapisana w komórkach zerowych tablic DEVIN0 i DEVOU0. Jeżeli przy wywoływaniu systemu wszystkie klucze KB są w pozycji "0", wtedy opis konsoli pozostaje niezmieniony (patrz p. 9). Po zgłoszeniu się Systemu Testowego należy ustalić nazwę talerza dyskowego, do którego kierowane będą wszelkie transmisje. Wykonuje się to przy pomocy dyrektywy DN.

AMETES ładuje do pamięci testy przechowywane na talerzach dyskowych w postaci zbiorów typu ABS (patrz p.6). W celu umożliwienia znalezienia potrzebnych zbiorów należy dyrektywą US ustalić nazwę skorowidza, w którym są one zakatalogowane.

Tak przygotowany system gotowy jest do dalszej pracy.

Dyrektywy

Dyrektywy Systemu Testowego AMETES umożliwiają komunikację operator-system testowy i operator-test. Dyrektywy pozwalają na:

  • załadowanie testu do pamięci,
  • wystartowanie lub zrestartowanie testu,
  • wydrukowanie zawartości pamięci operacyjnej,
  • zmodyfikowanie zawartości komórek pamięci i rejestrów,
  • ustawienie w teście punktów kontrolnych,
  • powrót do systemu operacyjnego.

Opis dyrektyw

Ustalenie nazwy talerza dyskowego

DN,<nazwa talerza>.

Wykonanie dyrektywy spowoduje, że wszystkie rozkazy transmisji dyskowych kierowane będą do talerza o wskazanej nazwie. Działanie dyrektywy polega na szukaniu w konfiguracji talerza o wskazanej nazwie. W celu bezpośredniego ustalenia zadanego talerza należy wykonać dyrektywę:

DN;<nr talerza>.

<nr talerza> =

  • b2 - b10 - nr jednostki sterującej
  • b11- b14 - nr kanału.
  • b15 = 1 - talerz stały
  • b15 = 0 - talerz wymienny

Nr talerza zostanie wpisany na zerowe miejsce w tablicy TABDIN (patrz p. 9).

Ustalenie nazwy skorowidza

US,<nazwa skorowidza>.

Załadowanie testu do pamięci

LO,<nazwa testu>.

Dyrektywa powoduje załadowanie testu do pamięci operacyjnej, wyzerowanie Tablicy Stanu Testu, dołączenie dyrektyw własnych testu oraz ustalenie adresu startowego testu. Test jest szukany na dysku, którego nazwa podana została przez dyrektywę DN i ładowany do pamięci wg informacji zawartych w skorowidzu zbiorów ustalonym dyrektywa US.

Wystartowanie testu

EX, <liczba powtórzeń>.

Dyrektywa powoduje załadowanie i zanegowanie licznika powtórzeń testu i uruchomienie testu od adresu startowego.

Wznowienie pracy testu

RS.

Wykonanie dyrektywy wznawia pracę testu od miejsca ostatniego zatrzymania z zachowaniem stanu rejestrów wg Tablicy Stanu Testu.

Ustawienie stanu początkowego testu

CL.

Dyrektywa ustawia test w stan początkowy tzn. zeruje rejestry, usuwa punkty kontrolne, ustala wartość licznika rozkazów na adres startowy.

Wydrukowanie zawartości rejestru

DR [,<nr rejestru>].

Dyrektywa powoduje wydrukowanie zawartości wskazanego rejestru

DR.

Ta postać dyrektywy powoduje wydrukowanie zawartości licznika rozkazów i wszystkich rejestrów R0-R7.

Załadowanie rejestrów

LR,<nr rejestru>,<parametr>[..,<parametr>].

Efektem działania dyrektywy jest umieszczenie wartości kolejnych parametrów w rejestrach począwszy od podanego.

Załadowanie licznika rozkazów

IC,<adres>[,<parametr>..,<parametr>].

Wykonanie dyrektywy spowoduje umieszczenie wartości adresu w liczniku rozkazów IC. Zakończenie jej przecinkiem powoduje przejście do umieszczania wartości podawanych parametrów w rejestrach poczynając od zerowego.

Zapisywanie informacji do komórek pamięci

ST, <adres>,<parametr>[..,<parametr>].

Przy pomocy tej dyrektywy można umieścić kolejne parametry w pamięci poczynając od podanego adresu. W przypadku wykrycia błędnego parametru, wydrukowany zostaje adres, pod którym zapamiętano ostatni poprawny parametr.

Wydrukowanie zawartości pamięci

PO,<adres 1>[,<adres 2>].
PH,<adres 1>[,<adres 2>].

Dyrektywę stosuje się w celu wydrukowania zawartości pamięci od komórki <adres 1> do komórki <adres 2> w postaci liczb oktalnych (PO) lub liczb heksadecymalnych (PH). Jeżeli <adres 2> jest mniejszy od <adres 1> to traktowany jest jako ilość słów wydruku.

Ustawienie punktów kontrolnych

TR[,<adres 1>][,<adres 2>].

Dyrektywa powoduje wstawienie jednego lub dwóch punktów kontrolnych. Gdy test osiągnie w czasie wykonywania któryś ze wskazanych adresów zostaje zatrzymany z wydrukiem komunikatu:

IC: licznik rozkazów

Punkt kontrolny zostaje wówczas osunięty.

Znaczenie poszczególnych wariantów dyrektywy jest następujące:

  • TR,adres,adres - ustawienie obu punktów kontrolnych
  • TR,0,0. - usuniecie obu punktów kontrolnych
  • TR,adres. - ustawienie pierwszego punktu kontrolnego
  • TR,adres. - ustawienie drugiego punktu kontrolnego
  • TR,0. - usuniecie pierwszego punktu kontrolnego
  • TR,,0. - usuniecie drugiego punktu kontrolnego
  • TR. - zadanie pokazania obu punktów kontrolnych

Regeneracja Systemu Testowego

RE.

Wykonanie dyrektywy powoduje ustawienie maszyny w stan początkowy (rozkaz MCL), odtworzenie tablicy przerwań i wskaźnika stosu.

Konwersja liczby

CH,<liczba>.

Dyrektywa dokonuje konwersji podanej liczby na kod oktalny, heksadecymalny i znakowy. Podana liczba może być w kodzie dziesiętnym, oktalnym lub heksadecymalnym.

Przejście do systemu operacyjnego

OS[,<nr sektora>].

Dyrektywa ładuje do pamięci system operacyjny zapisany na talerzu dyskowym wskazanym ostatnio wykonaną dyrektywą DN począwszy od podanego sektora. Pominiecie nr sektora jest równoznaczne z nr sektora równym 0.

Obsługa przerwań i stopy systemowe

W trakcie działania system może zatrzymać się na skutek wykonania rozkazu HLT z jednym z numerów oznaczających:

  • 0 - system czeka na przerwanie z urzadz. znakowego
  • 1 - zanik zasilania
  • 2 - błąd parzystości
  • 010
  • 011 - brak odpowiedzi lub odp. PE po wydaniu rozkazu OU lub IN do urządzenia znakowego
  • 012
  • 013
  • 014 - zanika zasilanie w interfejsie
  • 017 - brak odp. OK na rozkaz rezerwacji pamięci przez system. (System wstępnie rezerwuje sobie 12k pamięci).

Pojawienie się przerwania POWER ALARM powoduje zachowanie stanu maszyny i zatrzymanie jej na stopie HLT,1.

AUTORESTART po wznowieniu zasilania odtwarza stan jednostki centralnej i wznawia przerwaną pracę.

Przerwanie PARZYSTOŚĆ PAMIĘCI powoduje zachowanie stanu maszyny i zatrzymanie jej na stopie HLT,2.

Po obsłużeniu przerwania POWER ALARM I/F system powraca do nasłuchu dyrektyw. Przerwaną pracę należy wznowić od początku.

Przerwania awaryjne takie jak brak pamięci, nieprawidłowy rozkaz, przerwanie z arytmometru oraz zgłoszenie operatora (OPRQ) są sygnalizowane odpowiednimi komunikatami zawierającymi adres miejsca, w którym nastąpiło zgłoszenie przerwania, po takim komunikacie system przechodzi na nasłuch dyrektyw.

Nieprawidłowe przerwania z kanału pamięciowego w czasie transmisji dyskowej oraz inne nieprzewidziane przerwania powodują wydrukowanie komunikatów zawierających potrzebne informacje: numer przerwania, aktualny licznik rozkazów oraz specyfikację. System przechodzi na nasłuch dyrektyw.

Przerwany test może być wznowiony dyrektywą RS.

Przerwania oczekiwane lub nieistotne są obsługiwane w odpowiedni sposób lub ignorowane.

Klucze pulpitu technicznego

System Testowy wykorzystuje klucze informacyjne KB pulpitu technicznego. Funkcje kluczy:

  • klucz nr 2 włączony - powtarzanie wykonywania testu aż do chwili wyłączenia klucza, wyłączony - n-krotne powtarzanie wykonywania testu (n - argument dyrektywy EX);
  • klucz nr 3 włączony - zakaz wykonywania wydruków na konsolę operatorską za pomocą ekstrakodu MES;
  • klucz nr 4 włączony - zakaz wykonywania wydruków na konsolę operatorską umieszczonych przy ekstrakodzie ERROR;
  • klucze nr 14, 15 - nr logiczny konsoli wczytywany w momencie naciśnięcia klucza OPRQ (patrz 6).
  • pozostałe klucze - nieobserwowane
  • OPRQ - wywołanie Systemu Testowego.

Budowa testu

Test musi spełniać następujące warunki:

  • musi być zbiorem typu ABS o adresie bazowym nie mniejszym niż 4k (010000), dla testów niewykorzystujących ekstrakodów JOBS i WAIT (patrz p.8.1) oraz nie mniejszym niż 6k (014000) dla pozostałych;
  • musi być regenerowalny, tzn. niezależnie od miejsca i sposobu zatrzymania testu, ponowny jego start od adresu startowego przy wszystkich rejestrach wyzerowanych powinien spowodować poprawny przebieg pracy testu;
  • musi rozpoczynać się tablicą dyrektyw własnych zakończoną słowem zawierającym zero (patrz p. 7).

System Testowy działa w obszarze 12k pamięci operacyjnej, w bloku zerowym. Testy ładowane są do tego bloku w obszar o adresie początkowym nie mniejszym niż 4k lub 6k (patrz wyżej). Test może ustawić programowo własne adresy obsługi przerwań oraz w inny sposób ingerować w pracę systemu poprzez dostęp do stałych miejsc systemu (patrz p. 9).

Dyrektywy własne testu

Test może posiadać dyrektywy własne jako uzupełnienie dyrektyw dostarczonych przez System Testowy. Nazwy dyrektyw muszą być dwuliterowe.

W przypadku jednakowych nazw, dyrektywy własne przysłaniają dyrektywy systemowe. Dla zaznaczenia, że chodzi wyłącznie o dyrektywę systemowa należy jej nazwę poprzedzić znakiem ":". Test, który zawiera dyrektywy własne, musi je opisać w tablicy umieszczonej na początku testu. Każdy test musi zaczynać się od takiej tablicy, ewentualnie pustej, zakończonej słowem zawierającym zero.

Każda dyrektywa opisana jest w tablicy dwoma słowami, z których pierwsze zawiera kod ISO-7 dwuznakowej nazwy dyrektywy, drugie - adres procedury obsługi.

Ekstrakody

Ekstrakody WE/WY

Ekstrakody współpracy z urządzeniami znakowymi umożliwiają operacje WE/WY na konsoli operatora. Dwa ekstrakody: LIST i RCH realizują wczytywanie z konsoli.

Pozostałe ekstrakody czytania wczytują znaki z bufora dyrektywy, zgodnie z aktualną zawartością wskaźnika znaku w tym buforze. Wskaźnik znaku w buforze dyrektywy jest numerem pierwszego nie wczytanego znaku. Znaki w buforze numerowane są od zera.

Wskaźnik znaku w buforze dyrektywy pamiętany jest w zmiennej WSKBUF (patrz p. 9). Końcem linii jest kropka, a separatorem dowolny znak rożny od znaku cyfry i litery.

Wczytanie do R4 znaku z konsoli

EXL+RCH.

Wczytany z konsoli operatora znak zostanie umieszczony na prawym bajcie R4. Lewy bajt zostanie wyzerowany.

Wczytanie z konsoli wiersza do bufora dyrektywy

EXL+LIST.

Kolejne znaki czytane z konsoli wprowadzane są do bufora dyrektywy, aż do napotkania znaku ":", lecz nie więcej niż 120 znaków. Wskaźnik znaku w buforze dyrektywy zostaje wyzerowany.

Wczytanie do R4 znaku z bufora dyrektywy

EXL+RCHB.

Wczytany zgodnie z zawartością wskaźnika znaku w buforze znak zostaje wprowadzony na prawy bajt R4. Lewy bajt jest wyzerowany.

Wyprowadzenie znaku na konsole z R4

EXL+WCH.
  • R4 - znak do wyprowadzania w prawym bajcie.

Lewy bajt jest ignorowany.

Wczytanie dwóch znaków. do R4 z bufora dyrektywy

EXL+RTC.

Dwa kolejne znaki zostaną wczytane i umieszczone w R4; pierwszy na lewym, drugi na prawym bajcie. Wskaźnik znaku w buforze po ekstrakodzie ustawiony jest na pierwszy nie wczytany znak.

Wyprowadzenie dwóch znaków. z R4 na konsole

EXL+WTC.
  • R4 - dwa znaki do wyprowadzenia.

Wyprowadzenie tekstu na konsolę

EXL+MES.
  • R4 - adres początku wyprowadzanego tekstu, umieszczonego w pamięci po dwa znaki w słowie.

Koniec tekstu sygnalizowany musi być bajtem, zawierającym liczbę 128. R4 po powrocie zawiera adres końca tekstu zwiększony o 1.

Wczytanie tekstu z bufora dyrektywy

EXL+RTX.<znak>.
  • R4 - adres, od którego zostanie umieszczony wczytany tekst, po dwa znaki w słowie.
  • <znak> - słowo za ekstrakodem zawierające znak kończący tekst. Znak ten nie jest umieszczony w pamięci.

W pamięci wczytany tekst zostanie zakończony jednym lub dwoma bajtami zawierającymi liczbę 128. Zależnie od tego, czy liczba wczytanych znaków. była parzysta lub nieparzysta. R4 po powrocie zawiera adres końca tekstu zwiększony o 1.

Wczytanie liczby do rejestru z bufora dyrektywy

EXL+RNN+<rej>.
  • <rej> - liczba określająca numer rejestru, w którym zostanie umieszczona wczytana liczba.

Znak # umieszczony przed liczba oznacza liczbę heksadecymalna. Jeżeli pierwsza wczytana cyfra będzie 0 - liczba zostanie potraktowana jako oktalna, jeżeli nie - jako dziesiętna. Liczba dziesiętna. może być poprzedzona znakiem '+' lub '-'. Liczba czytana jest do napotkania separatora.

Wyprowadzenie liczby oktalnie na konsolę

EXL+WON.

Liczba zawarta w R4 wyprowadzona jest w postaci spacji i siedmiu cyfr, z których pierwsza jest zawsze zerem.

Wyprowadzenie liczby heksadecymentalnej na konsolę

EXL, WLH.
  • R4 - liczba do wyprowadzenia.

Liczba wyprowadzana jest w postaci spacji znaku "#" i czterech znaków liczby.

Wczytanie nazwy z bufora dyrektywy

EXL, NAME

Do rejestrów R1 - R3 zostanie wczytana nazwa ewentualnie uzupełniona spacjami do sześciu znaków. Po wczytaniu pierwszego znaku nazwy (musi to być litera) wczytane są kolejne znaki aż do napotkania separatora, tzn. znaku rożnego od litery bądź cyfry. Jeżeli nazwa ma więcej niż 6 znaków. to nadmiarowe znaki są ignorowane.

Pisanie liczby do buforu oktalnie

EXL, WBON.
  • R1 - liczba
  • R2 - adres bufora

Liczba zapisywana jest w postaci znaku spacji i siedmiu cyfr, z których pierwsza jest zerem. R2 po powrocie zawiera adres ostatniego zapisanego słowa zwiększony o jeden.

Wczytanie zbioru dyskowego

EXL, REF.
  • R1 - R3 - nazwa zbioru dyskowego
  • R4 - adres umieszczania w pamięci.

Wczytanie zbioru dyskowego o podanej nazwie z biblioteki użytkownika ustalonego dyrektywa US. R4 po powrocie zawiera adres ostatniego słowa zbioru w pamięci zwiększony o jeden.

Zainicjowanie wczytania zbioru dyskowego

EXL+RRF.
  • R1-R3 - nazwa zbioru dyskowego
  • R4 - adres umieszczania w pamięci operacyjnej
  • R5 - nr bloku pamięci operacyjnej

Zainicjowanie operacji czytania zbioru o podanej nazwie i szybki powrót do programu według IC, bez oczekiwania na zakończenie transmisji.

Badanie końca transmisji

EXL+SPR.

Sprawdzenie czy transmisja zainicjowana ostatnim ekstrakodem RRF została zakończona. Jeśli tak, powrót według IC, jeżeli nie - według IC+1.

Pozostałe ekstrakody

Zatrzymanie testu

EXL+STOP.

Zatrzymanie pracy testu, zapamiętanie stanu w Tablicy Stanu Testu i wydrukowanie na konsoli wartości licznika rozkazów. Test można wznowić dyrektywa RS.

Zakończenie pracy testu

EXL+ESYS.

Działanie ekstrakodu zależy od położenia klucza nr 2. Jeżeli klucz ten jest włączony, to niezależnie od aktualnego stanu licznika powtórzeń następuje restart testu, czyli:

  • ustawienie stanu początkowego testu,
  • wystartowanie testu wg adresu startowego.

Gdy klucz 2 jest włączony, to sprawdzany jest licznik powtórzeń testu. W przypadku wyzerowania licznika powtórzeń, drukowana jest wartość licznika rozkazów., wykonywana jest regeneracja Systemu Testowego i przejście na nasłuch dyrektyw, po ewentualnym wydrukowaniu komunikatu o błędach. W przypadku przeciwnym następuje restart testu.

Współbieżne zadania testowe

System Testowy AMETES posiada mechanizmy pozwalające uruchamiać testy, w których na wzór procesów współbieżnych działają współbieżne zadania testowe.

Zadania testowe można więc zdefiniować jako aktywne wykonanie konkretnej procedury (analogicznie do definicji procesu).

Procedura zadania testowego składa się z dwóch części: pola danych lokalnych i kodu procedury. Pole danych umieszczone jest na początku procedury i jego pierwsze słowo zawiera sumę długości wszystkich danych lokalnych. Można tworzyć zadania testowe jednorodne, czyli korzystające z tej samej procedury. Zadania testowe oprócz zmiennych lokalnych mogą korzystać również ze zmiennych globalnych, dostępnych dla wszystkich procedur. Przy pomocy tych zmiennych zadania mogą się synchronizować lub wymieniać informacje.

Podział zasobów odbywa się za pomocą ekstrakodu WAIT.

EXL+WAIT. <wyrażenie>.
  • <wyrażenie> = etykieta | 0 | -1

Wykonanie ekstrakodu WAIT przez zadanie testowe powoduje jego zatrzymanie i aktywowanie następnego zadania. Wyrażenie występujące bezpośrednio za ekstrakodem ma znaczenie przy ponownej reaktywacji zadania i oznacza:

  • etykieta - reaktywuj zadanie od miejsca oznaczonego etykieta,
  • 0 - reaktywuj zadanie od miejsca następnego za ekstrakodem,
  • -1 - zakończ działanie zadania testowego.

Do zorganizowania i rozpoczęcia działania zadań testowych służy ekstrakod JOBS.

EXL+JOBS. <lista parametrów> 0.
<element listy> = <adres procedury>. <ilość zadań testowych jednorodnych>.

Ekstrakod ten tworzy wszystkie potrzebne do działania zadań współbieżnych struktury danych, takie jak deskryptory zadań, listy zadań gotowych, zawieszonych itp. oraz aktywuje pierwsze zadanie.

Oto schemat przykładowego testu ze współbieżnymi zadaniami testowymi i schemat czasowy jego działania.

   [TEST 1]
    PROG *
    BA * 014000.
    0.
    START:
         .
         .
         .     [Kod testu]
         .
         EXL+JOBS.
         E1 . 2.
         E2 . 1.
         E3 . 0.
         0.
         .
         .
         EXL+ESYS.
    A:   [zmiana globalna]
--------------------------------------------------
    E1 : 2.
    X:.               [Pole danych zadania E1]
    Y:.
---------------------------------------------------
    BEGIN1:
      .
      .               [Kod procedury zadania E1]
      .
----------------------------------------------------
    E2 : 0.           [Pole danych zadania E2]
----------------------------------------------------
    BEGIN2:
      .
      .               [Kod procedury zadania E2]
      .
------------------------------------------------------
    E3 : 1.           [Pole danych zadania E3]
    Z:.
------------------------------------------------------
    BEGIN3:
      .
      .                [Kod procedury zadania E3]
      .
-------------------------------------------------------
    FINPROG *


   I----------------- START
   I                    .
   I                    .
   I                    .
   I                    .
   I                    .    TEST 1
   I                    .
   I_________________ EXL+JOBS.
   I______________________________________________________________
   I        .           .                               .
   I        .           .                               .
   I        .           .                               .
   I    E1  .       E1  .                            E2 .
   I        .           .                               .
   I        .           .                               .
   I__EXL+WAIT.-1.__EXL+WAIT.-1                         .
   I                                                    .
   I                                                    .
   I                                                    .
   I-----------------------------------------------EXL+WAIT.-1
   I                    .
   I                    .
   I                    .
   I                    .    TEST 1
   I                    .
   I                    .
   I                    .
   I________________EXL+ESYS.
   I
t  I
   V

Ekstrakody w programie

Wszystkie ekstrakody muszą być w teście zadeklarowane jako stałe, co wynika z zasad działania assemblera ASSK. W systemie AMETES numery ekstrakodow są następujące:

Nazwa Numer Opis
ESYS 015 zakończenie pracy testu
MES 0204 wyprowadzenie tekstu na konsole
NAME 0202 wczytanie nazwy z bufora dyrektywy
ERROR 0205 zakończ negatywnie prace testu
LIST 0203 wczytanie z konsoli wiersza do bufora dyrektywy
RCHB 0201 wczytanie znaku z bufora dyrektywy
RCH 0100 wczytanie znaku z konsoli
WCH 0101 wyprowadzenie znaku na konsole
RTC 0104 wczytanie dwóch znaków. z bufora dyrektywy
WTC 0105 wyprowadzenie dwóch znaków. na konsole
WON 0106 wyprowadzenie liczby oktalnie na konsole
WLH 0107 wyprowadzenie liczby heksadecymalnie
RTX 0110 czytanie tekstu z bufora dyrektywy
STOP 0126 zatrzymanie testu
WBON 016 pisanie liczby do bufora oktalnie
RNN 020 wczytanie liczby do rejestru bufora dyrektywy
REF 0206 wczytanie zbioru do pamięci
JOBS 0112 organizacja współbieżnych zadań testowych
WAIT 0113 zawieszenie zadania testowego.
RRF 064 zainicjowanie czytania zbioru do pamięci
SPR 065 sprawdzenie czy transmisja dyskowa została zakończona.

Stałe miejsca systemu testowego

Tablice i ważne zmienne Systemu Testowego mają na stałe przydzielone miejsca w pamięci operacyjnej. Z zapamiętanej tam informacji mogą korzystać testy oraz operator systemu.

Tablica miejsc stałych systemu

Adres Zawarta informacja
5
0100-0140 Tablica przerwań
0141 Wskaźnik stosu przerwań
0142-0177 Stos przerwań

Tablica stanu testu

Adres Nazwa Zawarta informacja
0200 TSTREP Licznik powtórzeń testu
0201 TSTBAZ Adres bazowy
0202 TSTSTA Adres startowy
0203 TSTIC Stan rejestru IC
0204 TSTR0 Stan rejestru R0
0205 TSTSR Stan rejestru SR
0206 TSTSPE Specyfikacja przerwania
0207-0215 TSTR1 Stan rejestrów R1-R7
0231-0243 TEXIC Stan rejestrów wejściowych dla ekstrakodow I

Numery urządzeń WE/WY

Adres Nazwa Zawarta informacja
0245-0250 DEVOU0 Konsola operatora - wyjście
0251-0254 DEVIN0 Konsola operatora - wejście
0255-0260 TABDIN Talerze dyskowe
0261-0267 POSTE Pole sterujące jednostki dyskowej

Inne

Adres Nazwa Zawarta informacja
0223 TSTBL Licznik błędów
0224-0230 TSTBL1 Licznik 5 typów błędów
0270-0507 BUFDYR Bufor dyrektywy
0510 WSKBUF Wskaźnik znaku do wczytania z bufora dyrektywy

Źródło: System testowy AMETES współpracujący z systemem operacyjnym CROOK-5/CROONIX, mgr inż. Bożena Padzik, Warszawa, marzec 1987