              Textový editor FET ( File EdiTor )
              ----------------------------------
                ( popis verze FET 3.2 MZ-800 )


     Editor FET je obrazovkově orientovaný editor. K jeho vzniku
dala popud nedostupnost jiného vhodného editoru pro mikropočítač
SHARP MZ-800. Editor lze použít k vytváření a opravě textů v kó-
du KOI 8 čs 2 ( s českými znaky ), k záznamu textů na mgf. pásku,
jejich opětnému čtení a k tisku textů.

     Editor zobrazuje na prvním řádku obrazovky titulek s infor-
mací o momentálním stavu. Na zbývajících 24 řádcích obrazovky je
zobrazen výřez textu.

     Počet řádků textu a počet znaků na řádku je omezen jen veli-
kostí pracovní paměti editoru ( asi 45 KB ). Viditelný výřez tex-
tu je automaticky posouván tak, aby se kursor nedostal mimo vý-
řez. Kursor se zobrazuje jako blikajícjí obdélník, který má v mó-
du shift lock výšku celého řádku a v normálním módu výšku polovi-
ny řádku. ( Mód shift lock volíme pomocí [ALPHA], normální pomo-
cí [SHFT][ALPHA]. )

     V základním titulku je zobrazeno číslo řádku a sloupce, na
kterém se nachází kursor v textu, informaci o módu zápisu a mak-
roinstrukcích. Dále je v titulku hlášen výskyt prefixu ( např.
<ESC>, nebo <GRAPH> ). Je-li třeba stisknout více tlačítek sou-
časně pro vykonání nějaké činnosti, jsou označeny [ ], je-li
možno stisknout tlačítka postupně, jsou až na poslední z nich
označena < > ( prefixy ).

     Zápis znaku je prováděn ve dvou základních módech - insert
a overwrite. ( Je-li nastaven mód overwrite, vypíše se v základ-
ním titulku Ovr. ) V módu insert jsou napsané znaky do textu
vkládány a v módu overwrite je jimi již vložený text přepisován.
Mód insert o overwrite se přepíná pomocí [INST].

     Na klávesnici byl některým tlačítkům změněn význam pro je-
jich nevhodné umístění. Jedná se o tlačítko [ ] ( podtržítko ),
které bylo přemístěno nad '0' místo Ludolfova čísla ( a maže se
jím znak před kursorem - backspace ), dále o tlačítko [lbr./ ],
které dostalo řídící význam ( smazání znaku pod kursorem ). A na-
víc o téměř všechny řídící tlačítka ( viz. text ).

     Chceme-li do textu zapsat řídící znak ( s kódem menším než
32 ), můžeme použít prefix <GRAPH> následovaný příslušným řídí-
cím znakem ( např. [CTRL][X] ). Takový znak se potom v textu zob-
razuje jako odpovídající inverzní písmeno ( např. inverzní X ).
České znaky můžeme zapisovat opět pomocí prefixu <GRAPH> násle-
dovaného písmenem, nad nímž je třeba udělat čárku, háček, případ-
ně kroužek. Je-li potřeba nad znakem napsat čárku, stiskneme tla-
čítko [GRAPH] jednou, je-li potřeba háček dvakrát a je-li potřeba
kroužek tak třikrát. Neexistuje-li odpovídající český znak ( ja-
ko např. A s háčkem ), prefix <GRAPH> se ignoruje.

     Pohyb kursoru v textu se řídí pomocí šipek. Je-li při posu-
vu doprava nebo doleva dosažen konec řádku, je proveden přechod
na nový řádek. Je-li proveden posuv nahoru nebo dolů o řádek
a jestliže příslušný sloupec na novém řádku neexistuje ( řádek
je příliš krátký ), je proveden přechod na nejbližší sloupec do-
leva. Přitom je původní sloupec evidován a následuje-li bezpro-
středně další posuv o řádek nahoru nebo dolů, je proveden na e-
vidovanou pozici. Je-li nutné na kratším řádku pokračovat dále
v zápisu textu od původního sloupce, lze pomocí <ESC>[ space ]
doplnit takový počet mezer na konec řádku tak, aby se řádek
prodloužil na potřebnou délku. Přebytečné mezery lze z konce řád-
ku naopak odstranit pomocí <ESC>[ ]. Tento příkaz odmaže všechny
mezery vlevo od kursoru až po první nemezerový znak. Příkazem
<ESC>[lbr./ ] smažeme všechny znaky od pozice kursoru do konce
řádku.

     Posuv o slovo dopředu a dozadu se provádí pomocí příkazu
[SHFT][ /?] a [SHFT][ //]. Přeskočit na začátek a konec řádku lze
pomocí [CTRL][ ] a [CTRL][ ] a chceme-li přeskočit stránku nahoru
nebo dolů, můžeme použít [CTRL][ ] nebo [CTRL][ ].

     Posuv výřezu textu doprava a doleva provedeme pomocí
[SHFT][ ] a [SHFT][ ], posuv nahoru a dolů pomocí [SHFT][ ]
a [SHFT][ ]. Přeskok na začátek a na konec textu provádíme pomocí
<ESC>[ ] a <ESC>[ ], přeskok na začátek a konec pracovního bloku
pomocí <ESC>[ ] a <ESC>[ ].

     Pracovní blok je v textu vyznačen inverzním zobrazením
znaků. ( Řídící znaky se zobrazují dvakrát inverzně - to znamená
normálním způsobem. ) Začátek a konec pracovního bloku vyznačíme
v textu příkazy <ESC>[B] ( Begin of block ) a <ESC>[E] ( End of
block ). Blok lze zrušit a zpětně obnovit pomocí <ESC>[H] ( Hide
block ). Po provedení <ESC>[H] se sice zobrazení bloku zruší, ale
ukazatele začátku a konce bloku zůstanou zachovány, takže blok je
možno obnovit pomocí dalšího <ESC>[H]. Blok lze smazat, přesunout
a okopírovat na pozici kursoru příkazy <ESC>[D] ( Delete block ),
<ESC>[M] ( Move block ) a <ESC>[C] ( Copy block ).

     Do textu je možno vložit řádek a smazat řádek pomocí [SHFT]
[INST] a [SHFT][DEL]. ( Řádek je ovšem možné také vložit a smazat
vložením a vymazáním znaku konce řádku. )

     Je-li uživatel zvyklý na klávesnici typu QWERTZ, může si po-
mocí <ESC>[Y] ( qwertY/qwertz mode ) přepnout významy [Z] a [Y]
na klávesnici. ( Pozor, platí nadále pro všechny vstupy z kláves-
nice. ) Editor lze také přepnout do módu českých psacích strojů
příkazem <ESC>[Z] ( cZech mode ). V tomto módu se místo číslic 2-
-9 píší malá písmena s háčky a čárkami a místo číslice 1 se píše
vykříčník. Číslice lze na původních místech vyvolat přes [SHFT].
Dále místo znaku @ se píše ú, místo ; se píše ů, místo ~ se píše
#, místo { } se píše ( ) a místo ` ;.

     Pokud je zapotřebí znát kódy některých znaků číselně, nebo
znát velikost textu, velikost volného místa v paměti či relativ-
ní pozici znaku v textu, lze tyto informace zobrazit v druhém
možném titulku. Titulky lze přepínat pomocí <ESC>[INST]. Kódy
znaků se v titulku zobrazují desítkově a šestnáctkově, ostatní
informace jen desítkově.

     Nelze-li některý znak z kódu KOI 8 čs 2 zadat z klávesnice,
nebo zná-li uživatel kód znaku a ne jeho význam, může zadat znak
kódem příkazem <ESC>[I] ( code Input ). Místo titulku se zobrazí
Code: a uživatel zadá desítkový kód znaku, případně šestnáctkový
kód s prefixem # a zadávání ukončí pomocí [CR]. Znak se vkládá do
textu stejným způsobem, jako kdyby byl vložen z klávesnice.

     Konce řádků jsou v textu označovány inverzním znakem <. Ne-
ní-li toto označení vhodné, lze je zrušit ( a opět nastavit ) po-
mocí <ESC>[CR].

     Chce-li uživatel editoru vidět širší výřez textu, může si
průběžně měnit počet znaků na řádku ( 80 nebo 40 ) příkazem <ESC>
[DEL]. Umístění kursoru přitom zůstane zachováno, umístění výřezu
také, ovšem jen je-li to možné a z titulku se při šířce výřezu 40
znaků zobrazí pouze začátek ( prvních 40 znaků ).

     V textu je možno najít libovolný řetězec znaků ( s délkou
maximálně 128 znaků ) příkazem <ESC>[F] ( Find string ). Po vy-
psání Find: zadáme požadovaný řetězec znaků ukončený [CR]. ( Po-
zor, prefix <GRAPH> stále pracuje ! ). Vyhledávání řetězce probí-
há ve směru od začátku do konce textu a začíná na místě kursoru.
Pokud chceme otočit směr vyhledávání, můžeme zadat po dotazu
Option: parametr r ( reverse ). Je-li z nějakých důvodů nutné vy-
hledávat řetězec bez ohledu na velká a malá písmena zadáme para-
metr i ( ignorecase ). Vyhledávání v bloku a v celém souboru zajis-
tí parametry b, g ( block a global ). Řetězec můžeme po nalezení
nahradit jiným. K tomu zadáme parametr s ( substitute ) a po vy-
psání Replace: i příslušný řetězec. Pokud chceme vyhledávání o-
pakovat, zadáme po Option: i počet opakování ( viz. code Input ).
A konečně nemá-li se editor na každé nahrazování řetězce ptát,
zadáme parametr n ( noask ). Pokud pro vyhledávání řetězce nemá
některý jeho znak význam, je možno místo něj zadat [CTRL][@]
( kód 0 ).

     Editor je možno naučit provádět posloupnost příkazů ( makro-
příkaz pomocí <ESC>[L] ( Learn macroinstruction ), po němž násle-
duje posloupnost příkazů editoru ( max. 128 znaků ), která se u-
končuje <ESC>[X]. Pomocí <ESC>[X] ( eXecute macroinstruction ) se
dříve uložená posloupnost opět provede. Je-li před dotazem edito-
ru ( např. Code: ) zvolen mód opétného dotazu <ESC>[Q] ( Question
mode ), je příslušný dotaz při každém provádění makropříkazu zo-
pakován. Jinak se dotaz při provádění již neopakuje. Je-li z ně-
jakých důvodů při provádění makropříkazu sledovat změny v textu,
je možno kdekoliv uvnitř makropříkazu zobrazit text pomocí <ESC>
[A] ( Alternate text ). Při zobrazování textu je možné také pro-
vádění makropříkazu přerušit. Jinak se text při provádění makro-
příkazu nezobrazuje a makroinstrukci nelze přerušit. Makropříkazy
není možné vnořovat.

     Příkazy lze několikrát opakovat pomocí příkazu <ESC>[R] (
Repeat command ). Po výpisu Repeat: zadáme počet opakování pří-
kazu ( buď desítkově, nebo šestnáctkově po znaku # ) a stiskne-
me [CR]. Editor nyní očekává buď jediný příkaz ( i eXecute ),
nebo jednu makroinstrukci. ( Viz. předchozí odstavec. ) Opaková-
ní nelze zanořovat, ale prováděný příkaz eXecute může obsahovat
příkaz k opakování. Opakuje-li se makroinstrukce, není její defi-
nice změněna.

     Text je možno vytisknout na tiskárně příkazem <ESC>[T] ( Ty-
pe text ). Znaky přitom ovšem nemusí být ( a ve většině pří-
padů ani nebudou vytisknutelné zdaleka všechny. Tiskárna se při-
pojuje pomocí interface CENTRONICS. České znaky se píší dvojitým
přeiskem. Proto se výpis zrychlí, zadáme-li parametr c ( con-
vert ), který způsobí potlačení přetisku ( text tedy bude bez
háčků a čárek ). Parametr z ( czech mode printer ) vypisuje zna-
ky na tiskárnu ve vnitřním kódu editoru ( např. Á=#E1 ). Počet
výtisků opět zadáváme napsáním pořebného čísla. Chceme-li tisk-
nout je pracovní blok, zadáme parametr b ( block ).

     Na kazetový magnetofon ( CMT: ) lze text uložit pomocí <ESC>
[P] ( Put text ). Po výpisu Write: editor očekává zadání maximál-
ně 16-tiznakového názvu souboru. Text z magnetofonu opět přečteme
pomocí <ESC>[G] ( Get text ). Pokud na dotaz Read: zadáme prázdný
řetězec tj. samotné [CR], editor přečte první záznam z magnetofo-
nu, jinak vyhledává na magnetofonu text se zadaným jménem. Záznam
na pásce je možno zkontrolovat pomocí <ESC>[V] ( Verify text ),
platí stejná konvence jako pro čtení textu. Text je na magnetofo-
novou pásku zaznamenán ve formátu PWM ( normální ), ale jen jako
jeden blok s hlavičkou a se zkráceným zaváděcím tónem. Pro texty
byl stanoven typ FE. Pokud chceme ulozit na mgf. pásku jen pra-
covní blok, zadáme parametr b ( block ). Při vyhledávání textu
na pásce můžeme místo nevýznamných znaků opět zadat [CTRL][@].

     Chyby při práci s editorem jsou ohlašovány buď jako výpis
chybového hlášení se současným blikáním pozadí obrazovky, nebo
pokud jde o vážnější chybu výpisem chybového hlášení, po němž mu-
sí následovat potvrzení ( tlačítkem [DEL] ).

     Editor je možno při práci požádat o pomoc tlačítkem [DEL]
( help ), po kterém se vypíše stručný přehled příkazů editoru.
Do editovaného textu se potom můžeme vrátit pomocí dalšího stis-
knutí [DEL].


     Přehled povelů editoru:
     -----------------------

[ ]          přechod o řádek výše
[ ]          přechod o řádek níže
[ ]          přechod o znak doprava
[ ]          přechod o znak doleva
SHFT[ ]      posun výřezu nahoru
SHFT[ ]      posun výřezu dolů
SHFT[ ]      posun výřezu doprava
SHFT[ ]      posun výřezu doleva
SHFT[ /?]    posun o slovo doprava
SHFT[ //]    posun o slovo doleva
CTRL[ ]      posun o stránku nahoru
CTRL[ ]      posun o stránku dolu
CTRL[ ]      posun na konec řádku
CTRL[ ]      posun na začátek řádku
<ESC>[ ]     skok na záčátek textu
<ESC>[ ]     skok na konec textu
<ESC>[ ]     skok na konec bloku
<ESC>[ ]     skok na začátek bloku
[lbr./ ]     smazání znaku pod kursorem
[ ]          smazání znaku před kursorem
<ESC>[ ]     smazání mezer před kursorem
<ESC>[lb./ ] smazání do konce řádku a zrušení zbytečných mezer
[ALPHA]      nastavení velkých písmen
[SHF][ALPHA] přepnutí malá/velká písmena
<ESC>[DEL]   přepínání 40/80 znaků na řádek
<ESC>[CR]    zobrazení/nezobrazení konců řádků
[INST]       přepínání módu Ins a Ovr
<ESC>[ESC]   opakování předchozího vyhledání
<ESC>[TAB]   explicitní zarovnání řádku
[DEL]        help

     Přehled příkazů editoru:
     ------------------------

     Vsechny příkazy editoru začínají prefixem <ESC> následova-
ným znakem podle následující tabulky:

 r       Repeat - opakovani
   Po zadání příkazu se editor zeptá na požadovaný
počet opakování dané funkce. Tento počet se zadává číslem větším
než 0 následovaný <CR>. Potom následuje buď bezprostředně povel
nebo příkaz editoru, nebo posloupnost povelů a příkazů uzavřená
do příkazových závorek <ESC>[l] a <ESC>[x].

 l       Learn - začátek makroinstrukce
   Po tomto příkazu následuje posloupnost povelů a příkazů
ukončená <ESC>[x]. Tuto posloupnost si editor zapamatuje jako
makroinstrukci.

 x       eXecute - provedení makroinstrukce
   Na tento příkaz zopakuje editor předtím zapamatovanou
makroinstrukci.

 q       Question - zadávání parametru v makroinstrukci
   Uvede-li se tento příkaz v makroinstrukci před príkazem
s parametrem, bude dotaz na parametr provaděn pri každém
opakování makroinstrukce

 a       Alternate - změna obsahu obrazovky
   Uvede-li se tento příkaz v makroinstrukci, provede se při
každém výskytu obnovení aktuálního stavu obrazovky s možností
přerušení makroinstrukce libovolnou klávesou

 b       Begin of block - začátek bloku
   Na pozici kursoru se umístí začátek pracovního bloku, který
se použivá při blokových operacích ( přesun, mazání ap. )
a zobrazí jej.

 e       End of block - konec bloku
   Na pozici kursoru se umístí konec pracovního bloku. viz 'b'.

 h       Hide block - zobrazení bloku
   Potlačuje/obnovuje zobrazení pracovního bloku. Blok se zobra-
zuje pomocí tohoto příkazu nebo pomocí 'b' a 'e'. viz 'b'.

 m       Move block - přesun bloku
   Přesune blok na pozici kursoru. Není-li blok zobrazen, nebo
je-li pozice kursoru uvnitř bloku, příkaz se neprovede.

 c       Copy block - kopie bloku
   Okopíruje blok na pozici kursoru. viz 'm'.

 d       Delete block - mazání bloku
   Smaže blok. viz 'm'.

 t       Type text - vypis textu
   Pro tisk textu na tiskárně lze použít následující parametry:
     B - tisk jen zobrazeného bloku
     C - převod tisknutého textu do ASCII (bez háčků a čárek)
     N - řádkování 2 (po vytisknutí řádku se válec posune 2x)
     S - tisk na plotter/printeru SHARP MZ-1P16. Znaky s kódy
         32-127 se převedou do kódu plotter/printeru, znaky
         s háčky a čárkami se tisknou přetiskem a ostatní znaky
         s kódy nad 127 se tisknou jako mezera (po vytištění
         je třeba je doplnit).
         Pro možnost nastavení módu 80 znaků na řádek je znak
         s kódem 0 při tisku převáděn na znak s kódem 9. (To
         znamená, že pro tisk 80 zn/ř je třeba před text vložit
         3x znak s kódem 0. Viz též manuál k plotter/printeru.)
     R - Tisk na tiskárně ROBOTRON 6313 nebo 6314. Text je při
         tisku převeden do kódu uvedených tiskáren. Přitom se
         používají oba generátory znaků tiskáren.
     G - Tisk na tiskárně SEIKOSHA SP1200 a obdobných v NLQ.
         Při použití této možnosti se tiskne střídavě text
         v módu NLQ a diakritická znaménka v normálním módu.
         Tiskárna musí být nastavena na standartní generátor
         (ne IBM) a je vhodné zvolit generátor USA. Nesmí být
         zařazeno automatické řádkování a musí být zvolena
         možnost nastavení uživatelských znaků (download).
     Z - Tisk v kódu KOI 8-čs. Tento mód lze použít jen
         tiskáren, které mají možnost tisknout přímo v kódu
         KOI 8-čs.
     I - instalace tiskárny. Číselnou hodnotou na řádku se insta-
         luje driver tiskárny. (předtím je vhodné dát přepínače na
         zadní straně MZ-800 do těchto poloh: MZ-700 on a ostatní
         do off) Instalační konstanty je vhodné zadávat šestnáct-
         kově. Jednotlivé bity konstanty mají následující význam:

         15-8 - polarita datových signálů na tiskárně. Nula vy-
                jadřuje kladnou polaritu. (Obvykle 0)
            7 - Klidová úroveň signálu strobe. (Obvykle 0)
            6 - přepínač IRPR/CENTRONICS. Při nule je zvolen
                protokol IRPR. Některé tiskárny s CENTRONICS
                jsou schopny pracovat i v módu IRPR, proto je
                vhodné volit nejprve 0.
          5,4 - Polarita stavových signálů pro stav BUSY. Tyto
                bity jsou významné jen v módu CENTRONICS. Bit 5
                bývá obvykle hlášením o přítomnosti papíru
                (pokud je implementováno), bit 4 hlášením o stavu
                tiskárny. Je-li příslušný bit nulový, předpokládá
                se polarita signálů kladná. (obvykle 0,0).
          3,2 - Maska signálů z tiskárny. Je-li příslušný bit
                nulový, je signál z tiskárny významný. Bit 3
                maskuje bity 5 a 1, bit 2 bity 4 a 0. (Obvykle
                1,0)
          1,0 - Polarita stavových signálů pro stav READY. Význam
                bitů je stejný jako bitů 5,4. Významné jsou
                i v módu IRPR. (Obvykle 0,1)

         V páskové verzi editoru FET 3.2 je instalace nastavena na
         kód #0009, což je vyhovující pro plotter/printer a vět-
         šinu tiskáren s protokolem CENTRONICS. Vyzkoušeno na tis-
         kárnách SEIKOSHA a EPSON.
         Uvedou-li se na řádku s option I uvedou i jiné optiony,
         jsou při dalším tisku zařazeny automaticky.


 g       Get text - nahrání textu z mgf.
   Po tomto příkazu následuje název textu. Není-li název zadán,
nahraje se libovolný text, na který se na pásce narazí. Vyskytne-
-li se v názvu znak CTRL[@] ( kód 0 ), může být odpovídající znak
názvu textu na pásce libovolný. Nahrávání lze kdykoliv přerušit
stisknutím <BREAK>. Nahrávaný text se uloží na pozici kursoru.
Je-li nutno editovat zcela nový text, je potřebné starý text pře-
dem smazat. Nově nahraný text se označí jako pracovní blok a po-
tlačí se zobrazení bloku.

 v       Verify text - kontrola textu na mgf.
   Po tomto příkazu následuje název textu viz. 'p'. Kontroluje
se jen čitelnost textu, ne shoda s obsahem textu v paměti.

 p       Put text - uložení textu na mgf.
   Po zadání názvu textu se text uloží na mgf. pásku.
Je-li zadán option b, je uložen pracovní blok editoru.

 f       Find string - najdi řetězec
   Zadaný řetězec je nalezen v textu a zobrazen.
Je-li zadán option B ( block ), probíhá vyhledávání uvnitř pra-
covního bloku editoru. Je-li zadáno G ( global ), probíhá hledání
v celém textu ( jinak se vyhledává od pozice kursoru ). Je-li za-
dáno R, probíhá hledání ve směru od konce k začátku souboru. Po
zadání I ( ignorecase ), ignorují se při hledání rozdíly mezi
malými a velkými písmeny. Zadáme-li option S ( substitute ), je
řeťezec nahrazen řetězcem zadaným na dotaz editoru Substitute:.
Při zadání počtu opakování se substituce provádějí postupně s do-
tazem po každém nalezení řetězce. Není-li třeba provádět dotazy,
je možno je zrušit zadáním N ( noask ).

 z       Přepnutí módu klávesnice.
   Prvním vyvoláním se přepne klávesnice do českého módu, druhým
do slovenského módu. Dalším stisknutím se mód klávesnice vrátí do
módu ASCII.

 j       Justify mode.
   Po vyvolání funkce justify je třeba zadat požadovaný počet
znaků na řádek. Text je v tomto módu třeba psát bez konců řádků,
které si editor sám doplní. Justify mód se zruší zadáním 0 znaků
na řádek. Přebytečné mezery v řádku je možno vypustit pomocí
<ESC>[lb/ ] s kursorem na konci řádku. Explicitní zarovnání je
možno vyvolat pomocí <ESC>[TAB].

 k       Instalace obrazovky.
   Po zadání této funkce je třeba zadat barvu papíru, pozadí
a písma číselnými kódy (jako v BASICu) a dále je možno zadat
výšku tónu pro pípání a sílu cvaknutí po stisknutí tlačítka


     Rozmístění příkazových kláves:

<SHFT> F1=Learn  F2=Begin  F3=Hide   F4=Delete F5=Find
       F1=eXec   F2=End    F3=Move   F4=Copy   F5=Repeat

Pozn. připomínky prosím zasílejte i s přesným popisem chyby, nebo
přání na adresu:
                    Pavel Zemčík, Bieblova 24, 613 00, Brno
