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ř. , nebo ). 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 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 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 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í [ 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í [ ]. Tento příkaz odmaže všechny mezery vlevo od kursoru až po první nemezerový znak. Příkazem [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í [ ] a [ ], přeskok na začátek a konec pracovního bloku pomocí [ ] a [ ]. 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 [B] ( Begin of block ) a [E] ( End of block ). Blok lze zrušit a zpětně obnovit pomocí [H] ( Hide block ). Po provedení [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 [H]. Blok lze smazat, přesunout a okopírovat na pozici kursoru příkazy [D] ( Delete block ), [M] ( Move block ) a [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í [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 [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í [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 [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í [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 [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 [F] ( Find string ). Po vy- psání Find: zadáme požadovaný řetězec znaků ukončený [CR]. ( Po- zor, prefix 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í [L] ( Learn macroinstruction ), po němž násle- duje posloupnost příkazů editoru ( max. 128 znaků ), která se u- končuje [X]. Pomocí [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 [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í [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 [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 [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í [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í [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í [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 [ ] skok na záčátek textu [ ] skok na konec textu [ ] skok na konec bloku [ ] skok na začátek bloku [lbr./ ] smazání znaku pod kursorem [ ] smazání znaku před kursorem [ ] smazání mezer před kursorem [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 [DEL] přepínání 40/80 znaků na řádek [CR] zobrazení/nezobrazení konců řádků [INST] přepínání módu Ins a Ovr [ESC] opakování předchozího vyhledání [TAB] explicitní zarovnání řádku [DEL] help Přehled příkazů editoru: ------------------------ Vsechny příkazy editoru začínají prefixem 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ý . 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 [l] a [x]. l Learn - začátek makroinstrukce Po tomto příkazu následuje posloupnost povelů a příkazů ukončená [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 . 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í [lb/ ] s kursorem na konci řádku. Explicitní zarovnání je možno vyvolat pomocí [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: 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