Tesla Ondra SPO-186: Píšeme texty

Textový editor TEdit.
Příště se pak podíváme na editor zdrojových textů PEdit a programátorský nástroj TOOL.

.Textovým editorem TEdit lze na Ondrovi pořizovat texty a formátovat je, čímž rozumíme stanovení počtu znaků na řádek, počtu řádek na stránce, stanovení levého okraje, číslování stránek, nastavení tabulátorů a další hrátky, které je možné provozovat ve standardním textovém editoru s neproporcionálním fontem bez použití grafiky.
Fakt je, že Ondra nebyl na psaní textů stvořen.
Zvlášť v MIKOSu a programech pod ním běžícím je to znát, přeřaďovací klávesy nefungují tak, jak jsme zvyklí dnes (ba ani tak, jak fungují při použití ViLi ROM). Fungují jako přepínače, jejichž nastavení si musíte neustále hlídat (k tomu slouží obě diody na klávesnici počítače, které jsou v MIKOSu rovněž využity pro signalizaci při komunikaci s magnetofonem – ve ViLi RM slouží téměř výhradně k signalizaci komunikace s magnetofonem nebo sítí). Pokud přepnete na znaky, abyste mohli zadat do názvu souboru v MIKOSu hvězdičku, neyapomeňte před potvrzením jména přepnout zpět na písmena! Při potvrzení názvu souboru se vám totiž místo Y dostane do počítače znak &, což je důvod toho, že se soubor prostě nenahraje!
Dále v psaní textu brání poměrně malý počet kláves na klávesnici – písmena jsou jen ve třech řadách, přičemž čísla se zadávají s číselným přeřadovačem (shiftem), a neustálé přehazování přeřaďovačů při psaní hodně zdržuje.
Pro pořizování textů by se mi jako nejlepší jevilo napsat zcela nový program běžící pod ViLi ROM, využívající její podprogramy pro řádkový a celoobrazovkový editor, její zpracování češtiny a zabudované rutiny pro komunikaci s tiskárnou. Takový nový program by byl určitě mnohem interaktivnější než zastaralý TEdit, který se zdaleka neblíží svým komfortem ani stařičkému Taswordu.
Takový program ale zatím neexistuje.
Ale pokud se chcete podívat, jak se v kancelářích 70. a 80. let pořizovaly a zpracovávaly texty, bude pro vás TEdit nejpoučnější ukázkou.

Pro větší nepřehlednost (přesněji proto, že bylo obtížné to naprogramovat jinak – TEdit vznikl rozšířením spartánského PEDITu) pracuje program ve dvou módech. Jeden se jmenuje MAIN, označený promptem *, druhý režim se jmenuje HELP, označen je promptem >.
Je to dáno tím, že obohacení editoru o formátovací funkce si vyžádalo přidání tolika nových příkazů, že jedna sada abecedy už dobře nestačila a hodilo se poto formátovací funkce pro přehlednost proto oddělit od editovacích..
Ano, textový editor se ovládá písmennými povely (některé jsou i s parametry), a pokud vám to dnes připadá neobvyklé, tehdy to neobvyklé nebylo, odkazuji vás v tomto směru na historii například oblíbeného editoru “vi” (“vim”), který příkazy (byť omezeně, protože jde o do pozadí neustále ustupující dědictví minulosti) používá dodnes.

$$OBR404085$$

Konce řádků v textu jsou označeny lomenou šipkou, konec textu je označen inverzním zpětným lomítkem “”.

V horní části obrazovky se zobrazuje nápověda s některými z použitelných příkazů, pod ní vlastní text s pomocnými značkaami konců řádek a konce textu, a pod ním pak prompt pro příkazy.

Při komunikaci s tiskárnou si dávejte pozor, protože není-li připojena, Ondra se zasekne (čeká na připravenost neexistující tiskárny).
Tomu se lze vyhnout tak, že tiskárenský ovladač v systému nahradíte instrukcí RET. Pomocí CTRL + W vyskočte do monitoru, příkazem S (SUBSTITUTE) změňte na adrese 10F instrukci C3 na C9 (S_10F_C9).

Povely v Teditu se zadávají tak, že se uvede nejprve parametr (místo čísla od -65535 do +65535 lze zadat znak #, který představuje nejvyšší přípustné číslo, tedy +65535, a znamená vlastně “vše”), pak vlastní povel, povely se oddělují znakem $ a sekvence povelů (i jednoho povelu) se ukončuje znaky $$, které ale zapisujeme stiskem šipky dolů! ddělovat se nemusí jednopísmenné povely bez parametrů (jako třeba V).
Pro některé povely (pouze pokud jsou umístěny na začátku programového řádku!) není ukončování potřeba a provedou se hned.
Povel pro opakování se zapisuje jako < a >.
Pár příkladů zápisu:
#W$$
5C$2D$$
B5<10L$#P>$$

Co tyto povely dělají?
Ještě si je zrekapitulujeme zvlášť, ale: W uloží na kazetu zadaný počet řádek od kurzoru – v tomto případě vše od kurzoru až do konce textu.
Další příklad posune kurzor o 5 znaků vpravo a smaže dva znaky vpravo od kurzoru. Poslední vytiskne pět kopií textu s vynecháním prvních deseti a v každé další kopii dalších deseti řádků: B skočí na načátek textu, pak se pětkrát zopakuje sekvence posunutí kurzoru o deset řádek dolů a tisk do konce textu.

Funkce v módu MAIN:

šipka dolů – o řádek níže
šipka nahoru – o řádek výše
šipka vlevo – o znak vlevo
šipka vpravo – oznak vpravo
A – čtení textu z kazety, zadaný počet řádků uloží za dosavadní text
B – kurzor na začátek textu
C – posun kurzoru o daný počet znaků (nezobrazuje hned změnu)
D – smazání daného počtu znaků
E – ukončení editace, zápis textu na kazetu
F – vyhledání řetězce, text se uvádí za příkazem
G – označení a výpis textu ke kopírování na jiné místo
H – mód HELP
I – vkládání textu, to se ukončí dvěma stisky šipky dolů, při vkládání je možné stiskem šipky doleva mazat znaky, šipka vpravo je tabelátor
J – zadání nebo vyhledání aktuální polohy kurzoru (0J uloží aktuální pozici, J na tuto pozici kurzor vrátí)
K – vymazání daného počtu řádků, záporná hodnota maže řádky před kurzorem
L – posun o zadaný počet řádků (nezobrazuje hned změnu)
M – výpis velikosti volné paměti
O – zápis textu na kazetu
P – tisk textu na tiskárnu od kurzoru (bere i záporný parametr)
Q – návrat do monitoru
R – otevření vstupního souboru na kazetě, umožní spojení více souborů spolu s příkazem A
S – náhrada textového řetězce jiným, parametry se uvádí za příkazem oddělené pomocí $
T – výpis textu od kurzoru na obrazovku (bere i záporný parametr)
U – přesunutí textu označeného povelem G na pozici kurzoru
V – zobrazí text v okolí kurozru
W – zápis textu na kazetu, řádky se počítají od začátkutextu, ne od kurzoru, nutno uzavřít soubor povelem E, text se smaže
X – zobrazení následujícího textu a posun kurzoru
Y – zobrazení předcházejícího textu a posun kurzoru
Z – nastaví kurzor na konec textu
. – posun kurzoru o slovo vpravo
, – posun kurzoru o slovo vlevo
CTRL + B – v povelu I vložení obsahu schránky do textu, jinak se txt ze schránky vykoná jako příkaz
CTRL + C – přerušení činnosti
CTRL + D – vymazání znaku v místě kurzoru
CTRL + I – vložení znaku namísto označené kurzorem, dvojí stisk vloží tabelátor
CTRL + K – vymazání řádku od kurzoru do konce
CTRL + S – nahrazení znaku v místě kurzoru jiným znakem
% – zadání nebo vyvolání textu pro obsluhu (0% uloží nápovědný text, % ho vyvolá, po zobrazení čeá na klávesu)
[ – vložení části textu (až 80 znaků) do schránky, ukončení dvojím stiskem šipky dolů
@ – smaže veškerý text

Funkce v módu HELP:

(Některé příkazy jsou společné s módem MAIN)
A – vkládání textu z kazety do textu vypisovaného na tiskárně nebo displeji, kopíruje text z kazety na výstup, při parametru 1 jde výpis na tiskárnu, při parametru 0 na displej, dále lze za příkazem použít jako parametr znak, na které se má kopírování zastavit, používá se po povelu R
B – na začátek textu
C – zadání záhlaví stránky. Pokud začíná znakem %, zobrazí před tiskem záhlaví nanové stránce hlášení “Zaloz dalsi list HOTOVO?”
D – zobrazení mapy textové paměti a parametrů formátování. Mapa zobrazuje obsazenou paměť (#), volnou paměť (.), jeden znak odpovídá 1 kB. Dále vypisuje:

W – šířka stránky

L – délka stránky

S – levý okraj

G – tabelátor

N – počáteční číslo stránky

U – typ písma a výstupu znaků

Pak vypíše záhlaví, a zobrazí pravítko, kde se zobrazuje levýokraj, tabulátor znakem “!” a šířka stránky znakem “-“.
E – uzavření souboru, narozdíl od módu MAIN neukládá text uložený v bufferu
F – zadání počtu formátovaných řádků, text od kurzoru zarovná do bloku. Odstavce rozeznává podle mezery, tabelátoru nebo prázdného řádku na začátku odstavce.
G – nastavení tabelátoru, možné hodnoty jsou jen 4 nebo 8 znaků
I – zadání řídících znaků pro změnu tisku (barvy, tučný tisk) a nastavení nové stránky – kódy se zadávají dekadicky: 1 – tučné (trvá po další znak 1 nebo do konce řádku), 12 – konec stránky, 18 a 17 mění barvu u tiskárny Consul 2111
J – vyhledání nebo zadání okamžité polohy kurzoru jako v módu MAIN
K – vkládání textu z klávesnice přímo do textu vypisovaného na tiskárně nebo na displeji, parametr 1 znaačí tiskárnu, 0 klávesnici, bez uvedení se bere tiskárna. Vkládání s eukončuje šipkou dolů, šipkou doleva lze mazat.
L – nastavení délky stránky
M – mód MAIN
N – číslování stránek, zadává se počáteční číslo stránky 1-99. Při zadání 0 se stránky nečíslují.
O – výpis formátovaného textu na kazetu, nejde o soubor z editoru, ale o čistý ASCII formátovaný pro tiskový výstup (export textu)
P – výpis zadaného počtu řádků na tiskárnu
Q – mód MAIN
R – otevření vstupního souboru z kazety, při zadání znaku jako parametru za příkazem vynechá text až do tohoto znaku, používá se před povelem A
S – nastavení levého okraje, počet mezer na levém kraji textu
T – výpis zadaného počtu řádků formátovaného textu na displej (preview tak, jak bude vypadat na tiskárně)
U – přepínaní malých a velkých písmen ve vstupu a výstupu, parametr 0 znamená velká i malá, 1 pouze velká a 2 při čtení z kazety odfiltruje znaky 0-20 kromě CR, LF a HT.
V – zobrazení textu v okolí kurzoru
W – nastavení šířky stránky, do 255 znaků, 0 je zruší zarovnání pravého okraje (do bloku) a číslo stránek vypsuje na pozici 40
X – zobrazení následujícího textu
Y – zobrazení předcházejícího textu
Z – na konec textu
. – o slovo vpravo
, – o slovo vlevo
% – zadání nebo vyvolání textu pro obsluhu
[ – vložení textu do schránky pro CTRL+B
CTRL + C – přerušení činnosti

Je vidět, že přes možnosti, které editor nabízí (formátování, změny druhů písma, zarovnávání do bloku, záhlaví, číslování), nepřibližuje se intuitivnosti dnešních editorů, umožňuje ale dělat kousky, které v dnešních běžných editorech dosáhnete jen těžko (jen s pomocí wordovských maker nebo applescriptu).
Například tisk dvaceti kopií s tím, že před každou novou kopií s počítač ptá “HOTOVO?” a čeká na stisk klávesy po založení formuláře:
20 < % # P $ > $ $
Nebo zamění instrukce MOV v textu za instrukce LD:
* 99 < S MOV $ LD $ > $ $
Nebo nastaví parametry a zobrazí změnu:
> 60 W $ 80 L $ 4 G $ 1 N $ D $ $

Ještě jednou:
Ondra není ideální počítač na pořizování a tisk textů, takhle ale opravdu vypadaly a fungovaly textové editory ještě v době nedávné.