CROOK-5 - Program organizacji zbiorów na taśmach magnetycznych MTO
Program MTO służy do zapisywania, wyszukiwania i odczytywania informacji na taśmach magnetycznych (PT-305), uporządkowanej w postaci zbiorów. Zbiór na taśmie składa się z etykiety zbioru (blok 16-słów), bloków informacyjnych i znacznika końca zbioru. Zbiór na taśmie jest odpowiednikiem zbioru dyskowego i działanie programu polega głównie na przepisywaniu zbiorów między pamięciami dyskową i taśmową. Na początku taśmy znajduje się etykieta taśmy zawierająca numer i nazwę taśmy. Za ostatnim zbiorem na taśmie zapisywany jest dodatkowo znacznik końca zbioru (FILE MARK). Końcem zapisu na taśmie są więc dwa występujące po sobie znaczniki FM. Podczas operacji zapisu program szuka ostatniego zbioru na taśmie i za nim dopisuje nowy. Taśmy zapisanej można użyć powtórnie wpisując nową etykietę taśmy (niszcząc stary zapis). Program standardowo zapisuje i wyszukuje na taśmie zbiory z nazwą skorowidza bieżącego. Istnieje możliwość zmiany tej nazwy na dowolną inną zleceniem UN. Ponowne wywołanie programu ustawia z powrotem nazwę skorowidza bieżącego.
Zlecenia programu MTO
Zlecenia muszą mieścić się w jednym wierszu. Separatorem jest przecinek lub odstęp. Nadmiarowe odstępy są ignorowane. Zlecenie kończy znak powrotu karetki "CR".
SN[,<numer jednostki MT>]
- Zlecenie wybrania jednostki pamięci taśmowej. Po wykonaniu tego zlecenia, wszystkie operacje dotyczące jednej taśmy będą realizowane w jednostce pamięci, której numer określony jest parametrem zlecenia. Zlecenie wykonane bez parametru powoduje wydruk na końcówce numeru aktualnie wybranej jednostki pamięci taśmowej.
ST[,<nr MT1>[,<nr MT2>]]
- Zlecenie ustawienia numerów jednostek pamięci taśmowej dla operacji dotyczących dwóch taśm (przepisywania zbiorów z taśmy na taśmę). Numer MT1 określa jednostkę, z której zbiory będą czytane, numer MT2 jednostkę, na której zbiory będą zapisywane. Zlecenie wykonane bez parametrów powoduje wydruk na końcówce numerów aktualnie ustawionych jednostek pamięci.
OT,<numer katalogowy taśmy>[,<komentarz>]
- Zlecenie inicjalizacji taśmy dla zapisu z niższą gęstością (32 rz/mm NRZI). Powoduje zapisanie etykiety nagłówkowej taśmy. Komentarzem może być tekst informujący o zawartości taśmy. Program umieszcza w etykiecie taśmy co najwyżej 18 znaków tego tekstu.
OTH,<numer taśmy>[,<komentarz>]
- Zlecenie inicjalizacji taśmy dla zapisu z wyższą gęstością (64 rz/mm PE). Parametry jak dla zlecenia OT.
WF,<TZ>[,?ALL][,?ACC]
- Zlecenie przepisania zbioru z pamięci dyskowej na taśmę. Tytuł zbioru określa położenie zbioru na dysku. Użycie parametru ALL powoduje przepisanie na taśmę wszystkich zbiorów określonego skorowidza na wskazanym obszarze. Nazwa zbioru podana w tytule zbioru stanowi wówczas początek nazw przepisywanych zbiorów. Użycie parametru ACC ma takie samo działanie jak użycie parametru ALL, tyle, że zbiory przepisywane są na taśmę po akceptacji użytkownika. Program podaje kolejno nazwy zbiorów, użytkownik zaś może je zaakceptować pisząc na końcówce znak "*" zakończony "CR". Każda inna odpowiedż powoduje zaniechanie przepisywania zbioru. Podanie jako odpowiedzi znaku DC4 (CTRL T) kończy działanie zlecenia.
RF,<TZ>[,?ALL][,?ACC][,?TAP]
- Zlecenie odszukania zbioru na taśmie i przepisanie go na dysk. Pierwsze dwa elementy tytułu zbioru określają położenie zbioru na dysku. Trzeci element określa nazwę zbioru poszukiwanego na taśmie. Zbiór po zapisaniu na dysku otrzyma taką nazwę jaką miał na taśmie. Użycie parametru ALL powoduje odszukanie i przepisanie na dysk wszystkich zbiorów aktualnego użytkownika (skorowidza), których nazwy rozpoczynają się tekstem podanym w polu nazwy zbioru. Niepodanie nazwy zbioru spowoduje przepisanie wszystkich zbiorów opatrzonych na taśmie nazwą skorowidza bieżącego lub nazwą ustaloną zleceniem UN. Użycie parametru ACC ma takie samo działanie jak ALL, tyle, że zbiory przepisywane są tylko po akceptacji użytkownika (identycznie jak w zleceniu WF). Dla opcji ALL i ACC program standardowo przeszukuje taśmę do końca pierwszej napotkanej grupy zbiorów danego skorowidza. Użycie opcji TAP spowoduje, iż przeglądana będzie cała taśma. Zlecenie RF dotyczące konkretnego zbioru (bez opcji ALL lub ACC) przeszukuje całą taśmę do napotkania zbioru lub osiągnięcia końca zapisu.
CF,<nazwa zbioru>[,?ALL][,?ACC]
- Zlecenie kopiowania zbioru z taśmy na taśmę. Numery jednostek pamięci taśmowej ustawiane są zleceniem ST. Zlecenie powoduje odszukanie zbioru o podanej nazwie na taśmie MT1, odszukanie końca zapisu na taśmie MT2 i przepisanie zbioru z taśmy MT1 na taśmę MT2. Użycie parametrów ALL i ACC ma działanie podobne jak w zleceniu RF, tyle, że zbiory nie są przepisywane na dysk a na drugą taśmę.
CU[,<nazwa użytkownika>][,<nazwa użytkownika>]...
- Zlecenie kopiowania z taśmy na taśmę wszystkich zbiorów podanych użytkowników. Nie podanie parametrów spowoduje kopiowanie wszystkich zbiorów opatrzonych na taśmie nazwą skorowidza bieżącego. Zbiory zostaną przepisane w kolejności odszukania na taśmie MT1 na końcu zawartości taśmy MT2.
CT[,<numer taśmy>]
- Zlecenie kopiowania taśmy. Jeśli podano numer taśmy skopiowana zostanie cała taśma, a taśma wynikowa otrzyma podany numer. Jeśli nie podano numeru taśmy kopiowanie odbędzie się:
- z taśmy MT1 od miejsca, w którym stoi,
- na taśmie MT2 odszukany zostanie koniec zapisu i zawartość taśmy MT1 zostanie dopisana na końcu. Umożliwia to łączenie zawartości dwu taśm.
- Zlecenie kopiowania taśmy. Jeśli podano numer taśmy skopiowana zostanie cała taśma, a taśma wynikowa otrzyma podany numer. Jeśli nie podano numeru taśmy kopiowanie odbędzie się:
RW
- Zlecenie przewinięcia taśmy do początku.
LI[,<TZ>]
- Zlecenie sporządzenia spisu zawartości taśmy, od miejsca w którym stoi. Jeśli podano tytuł zbioru, spis zostanie umieszczony w tym zbiorze, jeśli nie - zostanie wyprowadzony na końcówkę. Dla każdego zbioru napotkanego na taśmie wyprowadzany jest jeden wiersz, w którym znajdują się kolejno:
- numer kolejny (pozycja) zbioru na taśmie,
- dzień i miesiąc zapisu zbioru,
- nazwa użytkownika (skorowidza) do którego zbiór należy,
- nazwa zbioru,
- liczba sektorów zajętych przez zbiór na dysku,
- pierwszych N znaków ze zbioru (tylko dla zbiorów znakowych). Wstępne spacje oraz wszystkie znaki sterujące (nie mające reprezentacji graficznej) są pomijane. Liczba N umieszczona jest w komórce 2 programu. Można ją zmienić programem DEBU.
- tekst "ER*" po którym podana jest liczba błędnie odczytanych bloków zbioru. Tekst ten nie jest drukowany jeśli cały zbiór został odczytany poprawnie.
- Zlecenie sporządzenia spisu zawartości taśmy, od miejsca w którym stoi. Jeśli podano tytuł zbioru, spis zostanie umieszczony w tym zbiorze, jeśli nie - zostanie wyprowadzony na końcówkę. Dla każdego zbioru napotkanego na taśmie wyprowadzany jest jeden wiersz, w którym znajdują się kolejno:
LF[,<liczba zbiorów>]
- Zlecenie przewinięcia taśmy o wskazaną parametrem liczbę zbiorów do przodu i drukowania etykiety następnego zbioru. Brak parametru powoduje wykonanie zlecenia z parametrem równym jedności.Podanie parametru równego zeru spowoduje ewentualne cofnięcie taśmy do początku zbioru (gdy taśma stoi między blokami lub przed znacznikiem końca zbioru) i wydruk na końcówce etykiety.
LB[,<liczba zbiorów>]
- Zlecenie działa jak LF, lecz przewija taśmę o podaną liczbę zbiorów do tyłu.
LN[,<numer zbioru>]
- Zlecenie odszukania na taśmie zbioru o podanym numerze i wydruku na końcówce jego etykiety. Brak parametru spowoduje działanie takie jak zlecenia LF i LB z parametrem równym zeru.Podanie parametru równego zeru spowoduje przewinięcie taśmy do początku i wydruk etykiety taśmy.
DT[,<dzień>[,<miesiąc>]]
- Zlecenie powoduje przewinięcie taśmy w przód do pierwszego zbioru, którego etykieta zawiera podaną datę.
BL[,<liczba>]
- Zlecenie ustalenia długości bloku na taśmie dla operacji zapisu. Parametr <liczba> określa długość bloku w sektorach (po 256 słów).Program standardowo zapisuje bloki o długości 16 sektorów dyskowych (po 4K słów). Zlecenie użyte bez parametru powoduje wydruk na końcówce aktualnie ustalonej długości bloku w słowach (oktalnie).
UN[,<nazwa użytkownika>]
- Zlecenie zmiany nazwy użytkownika (skorowidza) dla operacji szukania, odczytu i zapisu zbiorów na taśmie. Każde uruchomienie programu powoduje ustawienie nazwy skorowidza bieżącego. Użycie zlecenia bez parametru powoduje wydruk na końcówce nazwy aktualnie ustawionego skorowidza.
EOF
- Zlecenie odszukania końca zapisu na taśmie.
FE
- Zlecenie zapisu znacznika końca zbiorów na taśmie. Ponieważ program wpisuje znacznik końca po każdej operacji zapisu, zlecenie to może być użyte jedynie do usunięcia części końcowej zbiorów (od miejsca zapisania znacznika) na taśmie.
RB
- Zlecenie odczytu bloku z taśmy do bufora w pamięci operacyjnej. Bufor rozpoczyna się od adresu 07000.Zawartość przeczytanego bloku można obejrzeć za pomocą zleceń programów XOSL lub DEBU.
BF[,<liczba bloków>]
- Zlecenie przewinięcia taśmy o podaną liczbę bloków do przodu.
BB[,<liczba bloków>]
- Zlecenie przewinięcia taśmy o podaną liczbę bloków do tyłu.
FF[,<liczba zbiorów>]
- Zlecenie przewinięcia taśmy o podaną liczbę zbiorów do przodu.
FB[,<liczba zbiorów>]
- Zlecenie przewinięcia taśmy o podaną liczbę zbiorów do tyłu.
EXI
- Zakończenie pracy programu.
OS
- Jak EXI.
Znaczenie parametrów i opcji
- <numer jednostki MT> - liczba z przedziału 0-3 określająca numer jednostki taśmy magnetycznej, zgodnie z kolejnymi pozycjami tablicy konfiguracji systemu (komórki 040-043).
- <TZ> - <obszar>/<skorowidz>/<nazwa>.<typ> - tytuł zbioru, którego poszczególne elementy mogą być pominięte. Obowiązkowa jest tylko nazwa zbioru, która może być pominięta w zleceniach z opcjami ALL i ACC. Zlecenia operują wówczas na wszystkich zbiorach aktualnego skorowidza. Niepodanie nazwy obszaru powoduje, że poszukiwanie zbioru(ów) odbędzie się na pierwszym obszarze, na którym znany jest użytkownik. Niepodanie nazwy skorowidza spowoduje że skorowidzem przeszukiwanym będzie skorowidz aktualny.
Źródło: SYSTEM OPERACYJNY CROOK-5 dla minikomputera MERA-400 (wersja 7), Zbigniew Czerniak, Marek Nikodemski, Gdańsk 1988