Program redagujący RED

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Program RED wraz z programem pomocniczym REP służą do drukowania alfabetem polskim tekstów przygotowanych na urządzeniach posiadających tylko znaki alfabetu łacinskiego. Oba programy działają pod systemami operacyjnymi DOS-3 oraz CROOK-5. Program RED umożliwia ponadto wyprowadzanie w trybie znakowym tekstów przygotowanych przez edytory WORDSTAR oraz CHIWRITE.

Program RED dokonuje następujących operacji na tekście żródłowym:

  • łączenie zbiorów zawierających opisy,
  • przygotowanie do drukowania alfabetem polskim,
  • wyrównanie tekstu zgodnie z zadanym marginesem (przenoszenie wyrazów między wierszami, powielanie odstępów),
  • wykonanie innych czynności opisanych operatorami,

Program umożliwia wyświetlanie przetworzonego tekstu na monitorze ekranowym oraz wyprowadzanie tekstu wynikowego do zbioru znakowego, skąd może być drukowany programem REP.

Łączenie zbiorów otrzymuje się poprzez podawanie na żądanie programu kolejnych nazw zbiorów. Podanie znaku '*' oznacza koniec listy łączonych zbiorów.

Litery nie posiadające odpowiednika w kodzie ISO (ą, ć, ę, ł, ń, ó, ś, ż) przedstawiane są przy pomocy odpowiedniej litery poprzedzonej znakiem _ (kod 95).

Pomocniczy program REP służy do wyprowadzania zbiorów przetworzonych programem RED. Umożliwia on:

  • drukowanie zbiorów na drukarce mozaikowej lub wierszowej (umożliwiającej wydruk graficzny lub nie) małymi i dużymi literami z uwzględnieniem liter alfabetu polskiego,
  • wyprowadzanie opisów na monitor.

Działanie programu RED

Program RED wczytuje tekst z zadanego zbioru, przetwarza go i zapisuje do zbioru wyjściowego. Przetwarzanie polega na łączeniu i dzieleniu wierszy tak, aby uzyskać postać zwartą, nadającą się do drukowania. Program rozpoznaje i reaguje na znak wyróżniony.

Znak wyróżniony

Znakiem wyróżnionym jest znak _ (kod 95) oznacza on, że:

  • na występującą za nim literę nałożony będzie znak tworząc odpowiednie litery alfabetu polskiego: ą,ę,ó, itd. (przy czym ź tworzone jest z _x), - łącznie z występującym po nim znakiem (o kodzie mniejszym od 64) stanowią operator uproszczony,
  • występujący za nim znak (różny od litery i nie będący zdefiniowany jako operator) oznacza siebie, np: _^ oznacza ^ , __ oznacza _, itp.

Operatory

Definicja operatora:

_!<wyróżnik><litera>[<argument>];

gdzie:

  • _! - określenie definicji operatora,
  • <wyróżnik> - identyfikator operatora - znak o kodzie z przedziału 33:-63,
  • <litera> - określenie operacji,
  • <argument> - liczba lub znak; jego pominięcie oznacza argument=0.

Definicja operatora musi być zakończona znakiem ";".

Wyróżnik operatora:

  • gdy jest nim znak o kodzie z przedziału 34^:-63, wówczas operator definiuje operator uproszczony. Operator uproszczony może być zdefiniowany i przedefiniowywany w dowolnym miejscu tekstu.
  • gdy jest nim znak o kodzie 33 (!), wówczas operator nakazuje bezpośrednie wykonanie odpowiedniej operacji na tekście żródłowym. Może on być zastąpiony uprzednio zdefiniowanym operatorem uproszczonym.

Operator uproszczony: _<wyróżnik>

gdzie:

  • _ - znak wyróżniony zapowiadający operator,
  • <wyróżnik> - identyfikator operatora - znak zdefiniowany w definicji operatora (znak o kodzie z przedziału 34-63).

Zasady łączenia wierszy

Program RED dokonuje łączenia wierszy i wyrównywania lewego i prawego marginesu. Lewy margines można ustawić operatorem wcięcia (W) a prawy operatorem ustawiania marginesu (M). Łączenie wierszy może być zabronione operatorem S lub L. Wystąpienie operatora zakończenia strony (P) powoduje nie dołączanie następnego wiersza. Zasady łączenia wierszy zależne są od wartości lewego marginesu. Jeśli w przetwarzanym fragmencie wartość lewego marginesu wynosi 0, łączone są wiersze zaczynające się dowolnym znakiem różnym od znaku odstępu, lub operatorem różnym od L, P, W, A lub H, S, N. Tryb ten kończony jest operatorem _!!W<arg>; ustalającym lewy margines większy od zera. Po napotkaniu operatora wcięcia (W) i ustaleniu lewego marginesu większego od zera, łączone są wiersze zaczynające się znakiem odstępu.

Konwersja dużych liter na małe

Ze względów historycznych program może pracować w trybie w którym dokonywane są zamiany wszystkich dużych liter na małe. Wyjątek stanowią litery występujące bezpośrednio po kropce oraz litery poprzedzone znakiem ^ (kod 94) oraz litery poprzedzone operatorem _!A<arg>;. Tryb ten ustawiany jest operatorem __!!G0; a kasowany operatorem __!!G3;. W trybie tym specjalnego znaczenia nabiera znak ^ (kod 94). Oznacza on, że:

  • występująca za nim litera nie podlega konwersji na małą;
  • występujące za nim znaki: [, \, ], ^ oraz _ (kody 91-95) zostaną zamienione odpowiednio na: {, |, }, ~ oraz DEL (kody 123-127).

Duże litery polskie (Ą,Ć itp.) uzyskuje się przez użycie w tekście żródłowym napisów: ^_A, ^C itp. Znak ^ otrzymuje się przez umieszczenie w tekście źródłowym napisu _^.

Operatory

Program RED rozpoznaje 21 operatorów podzielonych na cztery grupy. W grupie pierwszej znajdują się operatory pozwalające na sterowaniem sposobem drukowania znaków, w drugiej pozwalające na ustalanie tabulacji poziomej, w trzeciej - tabulacji pionowej, w czwartej zaś operatory dodatkowe: pozwalające na formatowanie wydruków (w postaci tabelarycznej), wykonywanie spisów treści itp.

Grupa I - operatory podstawowe

|B - Druk rozstrzelony (o podwójnej szerokości)

Znaczenie argumentu:

  • 0 - odwołanie; zaniechanie druku rozstrzelonego w tekście,
  • 1 - drukiem rozstrzelonym pisane będzie jedno słowo,
  • 2 - rozstrzelonym drukiem zostanie napisany jeden wiersz,
  • 3 - tekst będzie pisany drukiem rozstrzelonym aż do odwołania.

|D - Druk wytłuszczony

Znaczenie argumentu:

  • 0 - odwołanie; zaniechanie druku wytłuszczonego w tekście,
  • 1 - użycie druku wytłuszczonego w odniesieniu do jednego słowa,
  • 2 - drukiem wytłuszczonym napisany będzie jeden wiersz,
  • 3 - tekst będzie pisany drukiem wytłuszczonym aż do odwołania,
  • =32 - znak za operatorem nałożony zostanie na następny znak tekstu,
  • >32 - argument operatora zostanie nałożony na występujący po nim znak.

|U - Druk podkreślony

Znaczenie argumentu:

  • 0 - odwołanie; zakończenie podkreślania tekstu,
  • 1 - podkreślone będzie jedno słowo,
  • 2 - podkreślony będzie cały wiersz,
  • 3 - tekst będzie podkreślany do odwołania.

|G - Konwersja dużych liter

Znaczenie argumentu:

  • 0 ustalenie zamiany dużych liter na małe,
  • 1 duże litery nie będą zamieniane na małe w obrębie jednego słowa,
  • 2 j.w. z tym, że w odniesieniu do jednego wiersza,
  • 3 zawieszenie konwersji do odwołania.

Używanie operatorów __!!G1; oraz __!!G2; jest sensowne tylko po uprzednim zadeklarowaniu trybu pracy z zamianą dużych liter na małe (operatorem __!!G0;).

|C - Powielenie znaku

Argumentem jest krotność powielanego znaku - liczba większa od zera. Powielony zostanie znak występujący bezpośrednio za operatorem.

Grupa II - tabulacja pozioma

|H – Tabulacja
|A - Akapit

Znaczenie argumentu:

  • =0 - wiersz zostanie ustawiony na stronie centralnie,
  • <0 - tabulacja liczona od prawego marginesu,
  • >0 - tabulacja liczona od lewego marginesu.

Operator akapitu zawiesza konwersję następnej litery na małą. Jego używanie jest celowe tylko przy trybie pracy z zamianą dużych liter na małe (po operatorze __!!S0;).

|E - Tabulacja z wypełnieniem

Operator działa jak operator H, przy czym w wyprowadzonym wierszu powielony zostanie znak występujący za operatorem. Argument równy zero oznacza wypełnienie wiersza do prawego marginesu.

|W - Wcięcie

Znaczenie argumentu:

  • =0 - odwołanie; koniec wcięcia w tekście,
  • <0 - wcięcie liczone od prawego marginesu,
  • >0 - wcięcie liczone od lewego marginesu.

Znak o kodzie mniejszym od 64 występujący za operatorem będzie wysunięty przed tekst. Wcięcie zostaje zakończone napotkaniem wiersza zaczynającego się znakiem różnym od spacji. UWAGA: Operator wcięcia występujący w pustym wierszu jest ignorowany.

|M - Ustawienie marginesu

Znaczenie argumentu:

  • =0 - margines będzie ustawiony na maksymalny rozmiar strony,
  • >0 - prawy margines zostanie ustawiony względem lewego brzegu strony,
  • <0 - margines zostanie ustawiony względem prawego brzegu strony.

Grupa III - tabulacja pionowa

|L - Puste wiersze

Znaczenie argumentu:

  • =0 - wskazanie zakończenia wiersza; następny wiersz nie zostanie do niego dołączony,
  • >0 - wskazanie ilości pustych wierszy do wyprowadzenia.

|S - Łączenie wierszy

Znaczenie argumentu:

  • 0 - odwołanie; wiersze w tekście łączone są ze sobą (tekst zwarty),
  • 1 - wiersz nie zostanie połączony z wierszami sąsiednimi,
  • 2 - wiersze nie będą łączone ze sobą aż do odwołania,

|P - Zakończenie strony

Znaczenie argumentu:

  • =0 - bezwarunkowe zakończenie strony,
  • >0 - warunkowe zakończenie strony,
  • <0 - przeskok numeracji stron.

Warunkowe zakończenie strony następuje wówczas, gdy na stronie pozostaje mniej wierszy niż wskazuje argument. Przy warunkowym zakończeniu strony nie będzie przetwarzany tekst za operatorem.

|Q - Sterowanie wydrukiem strony

Znaczenie argumentu:

  • 0 - następna strona bez nagłówka;
  • 1 - następna strona nieparzysta;
  • 2 - następna strona parzysta;
  • 3 - deklaracja spisu treści od strony 3.

Grupa IV - operatory dodatkowe

|Z - Miejsce podziału wyrazu na sylaby

Znaczenie argumentu:

  • 0 - określenie miejsc podziału wyrazu na sylaby,
  • 1 - określenie początku fragmentu niepodzielnego,
  • 2 - określenie końca fragmentu niepodzielnego.

Operator jest przydatny w sytuacjach nietypowych przy przenoszeniu wyrazu do następnego wiersza. Wystąpienie operatora Z0; na początku lub na końcu wyrazu spowoduje, że nie będzie on dzielony na sylaby i przenoszony do kolejnego wiersza. Fragment tekstu zawarty między operatorami Z1; i Z2; zostanie umieszczony w jednym wierszu.

|T - Nagłówek strony

Znaczenie argumentu:

  • 0 - odwołanie; będzie wyprowadzany tekst nagłówkowy,
  • 1 - nie wyprowadzaj tekstu nagłowkowego,
  • 2 - numer strony zostanie wydrukowany centralnie,
  • 3 - numer strony zostanie wydrukowany w narożniku,
  • >32 - argument określa znak kończący tekst; zostanie wydrukowany tekst nagłówkowy. pierwszy zadeklarowany tekst drukowany będzie po lewej stronie numeru strony, drugi zaś po prawej.

|X - Spis treści

Znaczenie argumentu:

  • 0 wiersz będzie wstawiony tylko do spisu treści, np: podkreślenie puste wiersze, itp.,
  • 1 - j.w. z tym, że w odniesieniu do pierwszego zapisu, np. spis treści (tytuł zostanie wyprowadzony tylko jeden raz),
  • >31 - do spisu treści zostanie dołączony tytuł rozdziału.

Operatory oraz muszą wystąpić na początku wiersza, zaś operator z argumentem >31 - na końcu wiersza dołączanego do spisu treści.

|V - Drukowanie formatowane
|R - element do drukowania

Operatory V i R umożliwiają drukowanie według zadanego formatu.

Deklaracja formatu

Deklaracja formatu składa się z operatora V z argumentem będącym kolejnym numerem (ze znakiem -) formatu. W wierszu opisującym format obok operatorów R występować mogą dowolne teksty. Przy drukowaniu teksty będą wyprowadzane bez zmian na wyjście, a operatory R zostaną zastąpione kolejnymi elementami z wiersza drukowania formatowanego. Argument operatora R określa długość pola przeznaczonego do wyprowadzania odpowiedniego elementu. Elementy zbyt krótkie zostaną uzupełnione odstępami, zbyt długie skrócone do długości odpowiadającego mu pola.

Wiersz drukowania formatowanego

Wiersz drukowania formatowanego zaczyna się operatorem V z argumentem równym numerowi formatu. Występują w nim elementy do drukowania oddzielone operatorami R z argumentem 0. Dozwolone jest podawanie pustych elementów do drukowania.

|O - Usuń operator

Znaczenie argumentu:

  • 0 - wszystkie operatory zostaną usunięte,
  • >32 - usunięty zostanie operator wskazany argumentem.

|N - Analiza tekstu

Znaczenie argumentu:

  • 0 - odwołanie; wznowienie ingerencji programu w tekst,
  • 1 - ingerencja programu w tekst będzie zawieszona; tekst zostanie wydrukowany w postaci żródłowej.

Uwagi

  1. Przez słowo rozumiany jest ciąg znaków składający się z liter, cyfr i znaku "-" (kod 45).
  2. W tekście zródłowym niedopuszczalne jest przenoszenie wyrazów między wierszami.
  3. Znaki _ oraz ^ uzyskuje się odpowiednio przez napisanie: __ oraz _^.
  4. Po skompletowaniu wiersza wynikowego zostaje on uzupełniony odstępami celem wyrównania prawego marginesu.
  5. Odstępy, które nie mają być powielone w tekście żródłowym muszą być poprzedzone znakiem _.
  6. Program wykonuje automatycznie podział na strony. Podział ten można zmieniać operatorem zakończenia strony.
  7. W tekście żródłowym niedozwolone jest umieszczanie pojedyńczego znaku _ na końcu wiersza.
  8. W wierszu deklaracji formatu i drukowania formatowanego mogą być używane wszystkie operatory grupy I.

Obsługa programu RED

Program po uruchomieniu pyta o listę nazw zbiorów wejściowych. Listę nazw zbiorów wejściowych należy określić wg formatu:

<zb. wejściowy>[<sep.><zb. wejściowy>]...[<sep>*]
  • separatorem może być znak odstępu " " , "," lub ";" . Użycie znaku odstępu spowoduje wyprowadzenie przetworzonego tekstu na monitor, znaku "," - do zbioru wyjściowego, zaś znaku ";" - do zbioru wyjściowego i na monitor.
  • nazwa zbioru wyjściowego tworzona jest na podstawie nazwy pierwszego przetwarzanego zbioru (o ile nie jest zadeklarowana w zbiorze definicji).
  • znak "*" oznacza koniec listy zbiorów do przetwarzania.

Po zakończeniu przetwarzania zbiorów z podanej listy (w przypadku, gdy końcem odpowiedzi nie był znak "*") program pyta o dalszy ciąg listy. Znak "*" kończy listę zbiorów do przetworzenia.

Parametry dla programu RED

Program RED ma wpisany format zbioru wynikowego, oraz parametry współpracującego monitora. Wszystkie te parametry mogą być dowolnie ustawiane poprzez opisanie ich w zbiorze definicyjnym RED._DF (lub RED.DEF). poszczególne wiersze tego zbioru zawierają nazwę ustawianego parametru oraz nadawaną mu wartość:

  • * - wiersz zawierający komentarz,
  • CHAR - deklaracja liczby znaków w wierszu wynikowym,
  • LINE - deklaracja liczby wierszy na stronie,
  • MONITOR - deklaracja monitora jako urządzenia wyjściowego,
  • UPPER - deklaracja monitora nie posiadającgo małych liter,
  • BAOBAB - deklaracja monitora AN-2000 lub mikrokomputera BAOBAB (BOSMAN-8) umożliwiającego wyświetlanie polskich liter,
  • INTERLINE 1 - polecenie wyprowadzania pustego wiersza po każdym wyprowadzonym wierszu, parametr >1 określa wielkość przesuwu papieru przy zmianie wiersza (dla drukarek graficznych). Parametr równy 12 jest równoznaczny z pominięciem opcji.
  • OUTPUT - deklaracja nazwy zbioru wyjściowego,
  • DEFINE - deklaracja definicji operatorów.

Załącznik

Grupa I - operatory podstawowe

Oper. Znaczenie Arg. Działanie
B druk rozstrzelony 0 odwołanie
1 rozstrzel jedno słowo
2 rozstrzel jeden wiersz
3 rozstrzelaj do odwołania
D druk wytłuszczony 0 odwołanie
1 wytłuść jedno słowo
2 wytłuść jeden wiersz
3 wytłuszczaj do odwołania
=32 nadrukuj znak za operatorem
>32 nadrukuj argument operatora
U podkreślenie 0 odwołanie
1 podkreśl jedno słowo
2 podkreśl jeden wiersz
3 podkreślaj do odwołania
G zamiana dużych liter 0 wykonuj konwersję
1 zawieś zamianę w jednym słowie
2 zawieś zamianę w jednym wierszu
3 zawieś zamianę do odwołania
C powielenie znaku >0 licznik znaków

Grupa II - tabulacja pozioma

Oper. Znaczenie Arg. Działanie
H tabulacja >0 od lewego marginesu
<0 od prawego marginesu
=0 ustaw wiersz centralnie
A akapit >0 od lewego marginesu
<0 od prawego marginesu
=0 ustaw wiersz centralnie
E tabulacja z wypełnieniem >0 od lewego marginesu
<0 od prawego marginesu
=0 wypełnienie do końca wiersza
W wcięcie >0 od lewego marginesu
<0 od prawego marginesu
=0 koniec wcięcia
M margines <0 od prawego brzegu
>0 od lewego brzegu strony
=0 na maksymalny rozmiar strony

Grupa III - tabulacja pionowa

Oper. Znaczenie Arg. Działanie
L puste wiersze 0 zakończenie wiersza
>0 puste wiersze (arg. okr. liczbę)
S łączenie wierszy 0 odwołanie
1 nie łącz wiersza z sąsiednimi
2 nie łącz wierszy do odwołania
P zakończenie strony 0 zakończenie strony
>0 warunkowe zakończenie strony
<0 przeskok numeracji stron
Q sterowanie stronicowaniem 0 następna strona bez nagłówka
1 następna strona nieparzysta
2 następna strona parzysta
3 spis treści od strony 3

Grupa IV - operatory dodatkowe

Oper. Znaczenie Arg. Działanie
Z podział wyrazu na sylaby =0 miejsce podziału wyrazu
=1 początek fragmentu niepodzielnego
=2 koniec fragmentu niepodzielnego
T tekst nagłówkowy =0 wyprowadzaj tekst nagłówkowy
=1 nie wyprowadzaj tekstu nagłówkoweg
=2 centralny wydruk numeru strony
=3 numer strony w narożniku
>32 argument określa koniec tekstu
X spis treści =0 wstaw tylko do spisu treści
=1 j.w. przy pierwszym zapisie
>31 tytuł rozdziału (dodaj do spisu)
V drukowanie formatowame <0 deklaracja formatu
>0 wiersz do drukowania
R element do drukowania >0 oznaczenie pola w formacie
=0 separator drukowanych elementów
O usuń operator =0 usuń wszystkie operatory
>32 usuń operator wskazany argumentem
N analiza tekstu 0 wznowienie ingerencji w tekst
1 zawieszenie ingerencji w tekst

Źródło: Program redagujący RED, Marek Nikodemski