FSED
Z PMD 85 Infoserver
D (preklep) |
(preklep, prechod na Kbd template a strieska sa v texte nikde nevyskytuje) |
||
Riadok 54: | Riadok 54: | ||
Editor môže pracovať v prepisovacom alebo vkladacom režime, čo je signalizované v informačnom riadku, ako bolo uvedené vyššie. V prepisovacom režime sa znak, na ktorom stojí kurzor, nahradí (prepíše) znakom zadaným z klávesnice. Vo vkladacom režime sa znak zadaný z klávesnice vloží pred znak, na ktorom stojí kurzor a text v riadku od kurzora ďalej sa posunie o jednu pozíciu doprava. Ak už riadok obsahuje 127 znakov, k vloženiu znaku nedôjde. Vloženie tabulátora znamená prechod na ďalšiu tabelačnú pozíciu vložením príslušného počtu medzier, pri zobrazovaní na obrazovke. V pamäti je samozrejme znak TAB <9>. Tabelačné pozície sú každých 8 znakov. | Editor môže pracovať v prepisovacom alebo vkladacom režime, čo je signalizované v informačnom riadku, ako bolo uvedené vyššie. V prepisovacom režime sa znak, na ktorom stojí kurzor, nahradí (prepíše) znakom zadaným z klávesnice. Vo vkladacom režime sa znak zadaný z klávesnice vloží pred znak, na ktorom stojí kurzor a text v riadku od kurzora ďalej sa posunie o jednu pozíciu doprava. Ak už riadok obsahuje 127 znakov, k vloženiu znaku nedôjde. Vloženie tabulátora znamená prechod na ďalšiu tabelačnú pozíciu vložením príslušného počtu medzier, pri zobrazovaní na obrazovke. V pamäti je samozrejme znak TAB <9>. Tabelačné pozície sú každých 8 znakov. | ||
- | Editácia v riadku prebieha v oddelenom buffri a riadok sa zaraďuje do textu pri jeho | + | Editácia v riadku prebieha v oddelenom buffri a riadok sa zaraďuje do textu pri jeho opúšťaní. Ak by pre vloženie editovaného riadku do textu nebolo v pamäti miesto, vypíše sa správa "No room for line(s)". |
=== Editačné funkcie === | === Editačné funkcie === | ||
Ďalej bude uvedený zoznam všetkých editačných funkcií editora s príslušným popisom. Názvy editačných funkcií sú uvedené v anglickom jazyku, rovnako, ako je to v konfiguračnom programe FSEDCONF, v ktorom sa jednotlivým funkciám priraďujú požadované kontrolné klávesy. | Ďalej bude uvedený zoznam všetkých editačných funkcií editora s príslušným popisom. Názvy editačných funkcií sú uvedené v anglickom jazyku, rovnako, ako je to v konfiguračnom programe FSEDCONF, v ktorom sa jednotlivým funkciám priraďujú požadované kontrolné klávesy. | ||
- | Štandardné priradenie kontrolného klávesu pre počítač [[PMD 85]] je uvedené v treťom stĺpci. | + | Štandardné priradenie kontrolného klávesu pre počítač [[PMD 85]] je uvedené v treťom stĺpci. Kláves {{Kbd||<--}} bude nazývaný ako ''šípka hore'', kláves {{Kbd|-->|}} zasa ako ''šípka dolu'' a slovo {{Kbd|HOME}} označuje šikmú šípku na klávesnici PMD 85. |
Toto nastavenie je samozrejme možné v konfiguračnom programe zmeniť. | Toto nastavenie je samozrejme možné v konfiguračnom programe zmeniť. | ||
Riadok 73: | Riadok 73: | ||
| Posun o znak doľava. | | Posun o znak doľava. | ||
Ak je už kurzor na začiatku riadku, nič sa nestane. | Ak je už kurzor na začiatku riadku, nič sa nestane. | ||
- | | <-- | + | | {{Kbd|<--}} |
|- | |- | ||
| cursor right by char | | cursor right by char | ||
| Posun o znak doprava. | | Posun o znak doprava. | ||
Ak je už kurzor na konci riadku, nič sa nestane. | Ak je už kurzor na konci riadku, nič sa nestane. | ||
- | | --> | + | | {{Kbd|-->}} |
|- | |- | ||
| cursor to begin of line | | cursor to begin of line | ||
| Prechod na začiatok riadku. | | Prechod na začiatok riadku. | ||
Kurzor sa nastaví na prvý znak v riadku. | Kurzor sa nastaví na prvý znak v riadku. | ||
- | | HOME | + | | {{Kbd|HOME}} |
|- | |- | ||
| cursor to end of line | | cursor to end of line | ||
| Prechod na koniec riadku. | | Prechod na koniec riadku. | ||
Kurzor sa nastaví za posledný vložený znak v riadku. | Kurzor sa nastaví za posledný vložený znak v riadku. | ||
- | | END | + | | {{Kbd|END}} |
|- | |- | ||
| cursor left by word | | cursor left by word | ||
| Posun o slovo doľava. | | Posun o slovo doľava. | ||
Kurzor sa nastaví na prvý znak predchádzajúceho slova. Za slová sa považujú skupiny znakov oddelené medzerou. | Kurzor sa nastaví na prvý znak predchádzajúceho slova. Za slová sa považujú skupiny znakov oddelené medzerou. | ||
- | | Shift + <-- | + | | {{Kbd|Shift}} + {{Kbd|<--}} |
|- | |- | ||
| cursor right by word | | cursor right by word | ||
| Posun o slovo doprava. | | Posun o slovo doprava. | ||
Kurzor sa nastaví na prvý znak nasledujúceho slova. | Kurzor sa nastaví na prvý znak nasledujúceho slova. | ||
- | | Shift + --> | + | | {{Kbd|Shift}} + {{Kbd|-->}} |
|- | |- | ||
| insert tabulátor - TAB | | insert tabulátor - TAB | ||
| Vloženie tabulátora v mieste kurzora. | | Vloženie tabulátora v mieste kurzora. | ||
To textu sa vloží priamo znak TAB <9>. Pri zobrazovaní to znamená, že sa od polohy tabulátora až po nasledujúcu tabelačnú pozíciu vypíšu medzery. Tabelačné pozície sú každých 8 znakov, teda 9. stĺpec, 17., 25., ... atď. | To textu sa vloží priamo znak TAB <9>. Pri zobrazovaní to znamená, že sa od polohy tabulátora až po nasledujúcu tabelačnú pozíciu vypíšu medzery. Tabelačné pozície sú každých 8 znakov, teda 9. stĺpec, 17., 25., ... atď. | ||
- | | C-D | + | | {{Kbd|C-D}} |
|- | |- | ||
| delete text from line | | delete text from line | ||
| Zmazanie obsahu riadku. | | Zmazanie obsahu riadku. | ||
- | | CLR | + | | {{Kbd|CLR}} |
|- | |- | ||
| delete text right of cursor | | delete text right of cursor | ||
| Zmazanie časti riadku vpravo od kurzora. | | Zmazanie časti riadku vpravo od kurzora. | ||
- | | Shift + CLR | + | | {{Kbd|Shift}} + {{Kbd|CLR}} |
|- | |- | ||
| toggle mode INS/OVR | | toggle mode INS/OVR | ||
| Zmena editačného režimu. Viď. viššie. | | Zmena editačného režimu. Viď. viššie. | ||
- | | INS | + | | {{Kbd|INS}} |
|- | |- | ||
| delete char at cursor | | delete char at cursor | ||
| Zmaže znak na pozícii kurzora. | | Zmaže znak na pozícii kurzora. | ||
Ak sa kurzor nachádza na konci riadku, alebo je riadok prázdny, dôjde k spojeniu tohto riadku s nasledujúcim, ak ich celková dĺžka nepresiahne 127 znakov. | Ak sa kurzor nachádza na konci riadku, alebo je riadok prázdny, dôjde k spojeniu tohto riadku s nasledujúcim, ak ich celková dĺžka nepresiahne 127 znakov. | ||
- | | DEL | + | | {{Kbd|DEL}} |
|- | |- | ||
| backspace | | backspace | ||
| Zmaže znak pred kurzorom. | | Zmaže znak pred kurzorom. | ||
Ak sa kurzor nachádza na začiatku riadku, nič sa nestane. | Ak sa kurzor nachádza na začiatku riadku, nič sa nestane. | ||
- | | K1 | + | | {{Kbd|K1}} |
|- | |- | ||
| restore original line text | | restore original line text | ||
| Vráti obsah riadku do stavu, v akom bol pred jeho zmenou. | | Vráti obsah riadku do stavu, v akom bol pred jeho zmenou. | ||
- | | RCL | + | | {{Kbd|RCL}} |
|- | |- | ||
| next ASCII character | | next ASCII character | ||
| Znak, na ktorom je kurzor, sa zmení na znak, ktorý za ním nasleduje v ASCII tabuľke. Umožňuje to vkladať aj znaky, ktoré na klávesnici daného terminálu chýbajú. | | Znak, na ktorom je kurzor, sa zmení na znak, ktorý za ním nasleduje v ASCII tabuľke. Umožňuje to vkladať aj znaky, ktoré na klávesnici daného terminálu chýbajú. | ||
- | | Shift + WRK | + | | {{Kbd|Shift}} + {{Kbd|WRK}} |
|- | |- | ||
| key ENTER/RETURN | | key ENTER/RETURN | ||
Riadok 144: | Riadok 144: | ||
Ak ale nie je dosť voľnej pamäte pre vloženie nového riadku, do informačného riadku sa vypíše "No room for line(s)". | Ak ale nie je dosť voľnej pamäte pre vloženie nového riadku, do informačného riadku sa vypíše "No room for line(s)". | ||
- | | EOL | + | | {{Kbd|EOL}} |
|- | |- | ||
| cursor to previous line | | cursor to previous line | ||
| Posun kurzora na predchádzajúci riadok. | | Posun kurzora na predchádzajúci riadok. | ||
Ak sa kurzor nachádza na prvom riadku obrazovky, zobrazí sa predchádzajúca stránka textu. Počet riadkov, o ktoré sa kurzor posunie, závisí od počtu riadkov na obrazovke terminálu a "stránkuje" sa o 3/4 z celkového počtu riadkov obrazovky terminálu. | Ak sa kurzor nachádza na prvom riadku obrazovky, zobrazí sa predchádzajúca stránka textu. Počet riadkov, o ktoré sa kurzor posunie, závisí od počtu riadkov na obrazovke terminálu a "stránkuje" sa o 3/4 z celkového počtu riadkov obrazovky terminálu. | ||
- | | |<-- | + | | {{Kbd||<--}} |
|- | |- | ||
| cursor to next line | | cursor to next line | ||
| Posun o riadok dolu. | | Posun o riadok dolu. | ||
Ak sa kurzor nachádza na poslednom riadku obrazovky, zobrazí sa nasledujúca stránka textu. | Ak sa kurzor nachádza na poslednom riadku obrazovky, zobrazí sa nasledujúca stránka textu. | ||
- | | -->| | + | | {{Kbd|-->|}} |
|- | |- | ||
| previous page | | previous page | ||
| Prechod na predchádzajúcu stránku textu. | | Prechod na predchádzajúcu stránku textu. | ||
- | | Shift + |<-- | + | | {{Kbd|Shift}} + {{Kbd||<--}} |
|- | |- | ||
| next page | | next page | ||
| Prechod na nasledujúcu stránku textu. | | Prechod na nasledujúcu stránku textu. | ||
- | | Shift + -->| | + | | {{Kbd|Shift}} + {{Kbd|-->|}} |
|- | |- | ||
| first text line | | first text line | ||
| Prechod na prvý riadok textu. | | Prechod na prvý riadok textu. | ||
- | | Shift + HOME | + | | {{Kbd|Shift}} + {{Kbd|HOME}} |
|- | |- | ||
| last text line | | last text line | ||
| Prechod na posledný riadok textu. | | Prechod na posledný riadok textu. | ||
- | | Shift + END | + | | {{Kbd|Shift}} + {{Kbd|END}} |
|- | |- | ||
| delete current line | | delete current line | ||
| Odstránenie riadku, na ktorom stojí kurzor. | | Odstránenie riadku, na ktorom stojí kurzor. | ||
- | | Shift + DEL | + | | {{Kbd|Shift}} + {{Kbd|DEL}} |
|- | |- | ||
| duplicate line | | duplicate line | ||
| Zduplikuje aktuálny riadok tak, že pred tento riadok vloži jeho kópiu. | | Zduplikuje aktuálny riadok tak, že pred tento riadok vloži jeho kópiu. | ||
- | | Shift + INS | + | | {{Kbd|Shift}} + {{Kbd|INS}} |
|- | |- | ||
| exchange lines | | exchange lines | ||
| Zamení aktuálny riadok s predchádzajúcim. Ak kurzor stojí na prvom riadku testu, nič sa nestane. | | Zamení aktuálny riadok s predchádzajúcim. Ak kurzor stojí na prvom riadku testu, nič sa nestane. | ||
- | | Shift + RCL | + | | {{Kbd|Shift}} + {{Kbd|RCL}} |
|- | |- | ||
| set block boundary | | set block boundary | ||
| Nastavenie okraja bloku. Operácie, ktoré je možné vykonať nad blokom textu, sú uvedené v popise príkazov. | | Nastavenie okraja bloku. Operácie, ktoré je možné vykonať nad blokom textu, sú uvedené v popise príkazov. | ||
- | | Shift + C-D | + | | {{Kbd|Shift}} + {{Kbd|C-D}} |
|- | |- | ||
| enter command mode | | enter command mode | ||
| Prechod do príkazového režimu. | | Prechod do príkazového režimu. | ||
- | | WRK | + | | {{Kbd|WRK}} |
|} | |} | ||
Verzia zo dňa a času 10:56, 7. september 2020
FSED | |
Autor: | Roman Bórik |
---|---|
Vývojár: | RomBorSoft |
Verzia: | FSED, v2.0 (2020) |
Operačný systém: | CP/M |
Lokalizácia: | angličtina |
Download: | FSED.P32 - obraz disku s programom |
Obsah |
FSED je jednoduchý celoobrazovkový plain-text editor pre operačný systém CP/M 2.2. Editor je, vzhľadom na svoj charakter, určený na úpravu obyčajných textových súborov (napr. zdrojové súbory pri programovaní v assembleri alebo vyšších jazykoch) a tak neposkytuje žiadne funkcie pre formátovanie textu. Napriek tomu poskytuje množstvo editačných funkcií pre prácu s riadkom, celým textom i blokom textu. Editor pracuje iba s textom, ktorý sa vojde do voľnej pamäte. Veľkosť voľnej pamäte závisí od konkrétnej implementácie CP/M.
FSED je možné pomocou konfiguračného programu FSEDCONF prispôsobiť pre konkrétne vlastnosti použitého terminálu. FSEDCONF komunikuje s užívateľom iba v anglickom jazyku.
Spustenie editora
Editor možno spustiť obvyklým spôsobom zadaním mena programu. Za názvom programu môže nasledovať meno súboru, ktorý chceme hneď otvoriť, prípadne ešte jeden parameter.
A>FSED A>FSED [d:]filename.ext A>FSED [d:]filename.ext linenumber A>FSED [d:]filename.ext @string
Ak je uvedené aj meno súboru filename.ext, daný súbor sa po spustení nahraje do pamäte. Meno nahrávaného súboru môže začínať písmenom zdrojového disku d:, na ktorom sa súbor nachádza. Za menom súboru môže nasledovať jeden parameter, ktorým môže byť buď desiatkové číslo (linenumber) alebo ľubovoľný reťazec (string) začínajúci znakom @ (zavináč). V prvom prípade sa po nahraní súboru kurzor nastaví na dané číslo riadku, v druhom prípade sa v texte vyhľadá prvý výskyt zadaného reťazca a kurzor sa nastaví na prvé písmeno nájdeného reťazca (vyhľadávací reťazec môže obsahovať rôzne escape znaky, viď. vyhľadávanie v texte popísané ďalej). Posledné dva prípady sú veľmi užitočné, keďže umožňujú dostať sa na dané miesto v texte ihneď po spustení editora so súčasným nahraním daného súboru do pamäte.
Informačný riadok
˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ 36:5 (272) [30547] INS A:FILENAME.EXT
Posledný riadok obrazovky je určený pre zobrazenie základných informácií o editovanom texte a pre zadávanie vstupných údajov. Informačný riadok je od editovaného textu oddelený jedným riadkom s vlnovkami. Informačný riadok obsahuje zľava:
- číslo riadku, na ktorom stojí kurzor
- číslo stĺpca, na ktorom stojí kurzor
- v okrúhlych zátvorkách celkový počet riadkov textu
- v hranatých zátvorkách zostávajúca veľkosť voľnej pamäte pre text
- režim písania znakov v riadku
- INSert - vkladací
- OVeRwrite - prepisovací
- názov aktuálne editovaného súboru
Ak je šírka obrazovky menšia ako 48 znakov, meno aktuálne editovaného súboru sa zobrazuje v oddeľovacom riadku vpravo. Ak sa od užívateľa vyžaduje vstup, stane sa informačný riadok dialógovým pre zadávanie vstupných údajov.
Formát textu
Riadky sú ukončené štandardne znakmi CR <13> a LF <10>. Môžu obsahovať znak tabulátor TAB <9>. Ostatné riadiace znaky s kódmi menšími ako 32 sú pri nahrávaní súboru do pamäte zahadzované. Akceptované sú aj všetky znaky z hornej polovice ASCII tabuľky, teda s kódmi väčšími ako 127, kde sú zvyčajne znaky s diakritikou. Jeden riadok textu, vrátane rozvinutých tabulátorov na medzery, môže obsahovať maximálne 127 znakov. Pri opustení riadku, kedy sa riadok zaraďuje do textu, sú medzery a tabulátory na konci riadku odstraňované.
Bloky
Editor umožňuje definovať blok textu, s ktorým je možné vykonávať osobitné operácie. Príslušnosť riadkov k bloku je signalizovaná zvislou čiarou (znak |) v prvom stĺpci obrazovky. Nerozlišuje sa začiatok a koniec bloku, ale editor si pamätá dva okraje a pri zadávaní nového odstraní ten, ktorý bol zadaný skôr a pridá nový.
Editácia textu
Editor môže pracovať v prepisovacom alebo vkladacom režime, čo je signalizované v informačnom riadku, ako bolo uvedené vyššie. V prepisovacom režime sa znak, na ktorom stojí kurzor, nahradí (prepíše) znakom zadaným z klávesnice. Vo vkladacom režime sa znak zadaný z klávesnice vloží pred znak, na ktorom stojí kurzor a text v riadku od kurzora ďalej sa posunie o jednu pozíciu doprava. Ak už riadok obsahuje 127 znakov, k vloženiu znaku nedôjde. Vloženie tabulátora znamená prechod na ďalšiu tabelačnú pozíciu vložením príslušného počtu medzier, pri zobrazovaní na obrazovke. V pamäti je samozrejme znak TAB <9>. Tabelačné pozície sú každých 8 znakov.
Editácia v riadku prebieha v oddelenom buffri a riadok sa zaraďuje do textu pri jeho opúšťaní. Ak by pre vloženie editovaného riadku do textu nebolo v pamäti miesto, vypíše sa správa "No room for line(s)".
Editačné funkcie
Ďalej bude uvedený zoznam všetkých editačných funkcií editora s príslušným popisom. Názvy editačných funkcií sú uvedené v anglickom jazyku, rovnako, ako je to v konfiguračnom programe FSEDCONF, v ktorom sa jednotlivým funkciám priraďujú požadované kontrolné klávesy.
Štandardné priradenie kontrolného klávesu pre počítač PMD 85 je uvedené v treťom stĺpci. Kláves |<-- bude nazývaný ako šípka hore, kláves -->| zasa ako šípka dolu a slovo HOME označuje šikmú šípku na klávesnici PMD 85.
Toto nastavenie je samozrejme možné v konfiguračnom programe zmeniť.
Editačné funkcie programu FSED | ||
Funkcia | Význam | Kláves na PMD 85 |
---|---|---|
cursor left by char | Posun o znak doľava.
Ak je už kurzor na začiatku riadku, nič sa nestane. | <-- |
cursor right by char | Posun o znak doprava.
Ak je už kurzor na konci riadku, nič sa nestane. | --> |
cursor to begin of line | Prechod na začiatok riadku.
Kurzor sa nastaví na prvý znak v riadku. | HOME |
cursor to end of line | Prechod na koniec riadku.
Kurzor sa nastaví za posledný vložený znak v riadku. | END |
cursor left by word | Posun o slovo doľava.
Kurzor sa nastaví na prvý znak predchádzajúceho slova. Za slová sa považujú skupiny znakov oddelené medzerou. | Shift + <-- |
cursor right by word | Posun o slovo doprava.
Kurzor sa nastaví na prvý znak nasledujúceho slova. | Shift + --> |
insert tabulátor - TAB | Vloženie tabulátora v mieste kurzora.
To textu sa vloží priamo znak TAB <9>. Pri zobrazovaní to znamená, že sa od polohy tabulátora až po nasledujúcu tabelačnú pozíciu vypíšu medzery. Tabelačné pozície sú každých 8 znakov, teda 9. stĺpec, 17., 25., ... atď. | C-D |
delete text from line | Zmazanie obsahu riadku. | CLR |
delete text right of cursor | Zmazanie časti riadku vpravo od kurzora. | Shift + CLR |
toggle mode INS/OVR | Zmena editačného režimu. Viď. viššie. | INS |
delete char at cursor | Zmaže znak na pozícii kurzora.
Ak sa kurzor nachádza na konci riadku, alebo je riadok prázdny, dôjde k spojeniu tohto riadku s nasledujúcim, ak ich celková dĺžka nepresiahne 127 znakov. | DEL |
backspace | Zmaže znak pred kurzorom.
Ak sa kurzor nachádza na začiatku riadku, nič sa nestane. | K1 |
restore original line text | Vráti obsah riadku do stavu, v akom bol pred jeho zmenou. | RCL |
next ASCII character | Znak, na ktorom je kurzor, sa zmení na znak, ktorý za ním nasleduje v ASCII tabuľke. Umožňuje to vkladať aj znaky, ktoré na klávesnici daného terminálu chýbajú. | Shift + WRK |
key ENTER/RETURN | Nový riadok.
Ak stojí kurzor na začiatku riadku, tak sa PRED tento riadok vloží nový riadok. Ak stojí kurzor na konci riadku, tak sa ZA tento riadok vloží nový riadok. Ak stojí kurzor vo vnútri riadku, tak sa tento riadok rozdelí na dva v mieste kurzora. Ak ale nie je dosť voľnej pamäte pre vloženie nového riadku, do informačného riadku sa vypíše "No room for line(s)". | EOL |
cursor to previous line | Posun kurzora na predchádzajúci riadok.
Ak sa kurzor nachádza na prvom riadku obrazovky, zobrazí sa predchádzajúca stránka textu. Počet riadkov, o ktoré sa kurzor posunie, závisí od počtu riadkov na obrazovke terminálu a "stránkuje" sa o 3/4 z celkového počtu riadkov obrazovky terminálu. | |<-- |
cursor to next line | Posun o riadok dolu.
Ak sa kurzor nachádza na poslednom riadku obrazovky, zobrazí sa nasledujúca stránka textu. | -->| |
previous page | Prechod na predchádzajúcu stránku textu. | Shift + |<-- |
next page | Prechod na nasledujúcu stránku textu. | Shift + -->| |
first text line | Prechod na prvý riadok textu. | Shift + HOME |
last text line | Prechod na posledný riadok textu. | Shift + END |
delete current line | Odstránenie riadku, na ktorom stojí kurzor. | Shift + DEL |
duplicate line | Zduplikuje aktuálny riadok tak, že pred tento riadok vloži jeho kópiu. | Shift + INS |
exchange lines | Zamení aktuálny riadok s predchádzajúcim. Ak kurzor stojí na prvom riadku testu, nič sa nestane. | Shift + RCL |
set block boundary | Nastavenie okraja bloku. Operácie, ktoré je možné vykonať nad blokom textu, sú uvedené v popise príkazov. | Shift + C-D |
enter command mode | Prechod do príkazového režimu. | WRK |
Príkazový režim
Okrem často používaných operácií, ktoré je možné dosiahnuť funkčnými klávesami, obsahuje editor ešte príkazový režim. Povely v príkazovom režime sa zadávajú stlačením príslušného písmenového klávesu. Po stlačení klávesu 'enter command mode' (WRK), sa do informačného riadku vypíše: "COMMAND:" a čaká sa na zadanie povelu. Ak sa stlači kláves, ktorý nemá priradený žiadny povel, nič sa nevykoná. Zoznam povelov:
- Q (Quit) - ukončenie programu
- Ak bol text v pamäti zmenený a nebol uložený, do informačného riadku sa vypíše "Text changed. Save? (Y/N)". 'Y' znamená kladnú odpoveď a text je uložený pod aktuálnym menom. Kláves 'N' znamená zápornú odpoveď a ukončenie editora bez uloženia textu. Ak text ešte nebol uložený (nebolo zadané meno súboru) editor si vyžiada zadanie nového mena súboru.
- X (clear teXt) - zmazanie celého textu
- Editor najprv vypíše do informačného riadku "Are you sure? (Y/N)". Po stlačení 'Y' sa ešte testuje, či bol aktuálny text zmenený. Ak áno, dôjde k uloženiu textu, rovnako ako pri povele Q. Následne sa vymaže celý text.
- L (Load) - nahratie textu zo súboru do pamäte
- Najprv sa testuje, či bol aktuálny text zmenený. Ak áno, dôjde k uloženiu aktuálneho textu v pamäti, rovnako ako pri povele Q. Následne si editor vyžiada zadanie mena súboru a dôjde k nahratiu súboru do pamäte. Ak je súbor príliš dlhý a nevojde sa do pamäte, do informačného riadku sa vypíše "Too long. Truncated!" a v pamäti je iba časť textu.
Pri načítavaní textu zo súboru sa akceptujú iba riadiace znaky CR, LF a TAB. Všetky ostatné riadiace kódy sa ignorujú. Akceptujú sa aj znaky z hornej polovice ASCII tabuľky, teda znaky s kódmi väčšími ako 127, kde sú obvykle znaky s diakritikou. Riadky načítavaného textu môžu byť ukončené s CR, LF, CRLF alebo EOF. Maximálna dĺžka riadku je 127 znakov pri rozvinutí tabulátorov na medzery. Ak je riadok zo súboru dlhší, bude rozdelený na dva. Prípadné medzery a tabulátory na konci riadku sú odstránené. Za koniec textu sa považuje znak EOF alebo fyzický koniec súboru. - I (Insert) - vloženie textu zo súboru
- Editor si vyžiada zadanie mena súboru a text z daného súboru sa nahraje pred riadok, na ktorom stojí kurzor. Keďže načítavanie textu zo súboru prebieha po riadkoch, ktoré sa postupne vkladajú do existujúceho textu, môže načítanie dlhého textu trvať dlhšie. Ak je vkladaný text príliš dlhý a presiahne veľkosť voľnej pamäte, vypíše sa správa "Too long. Truncated!". Po načítaní textu zo súboru sa kurzor nastaví na prvý riadok, ktorý bol zo súboru načítaný.
- S (Save) - uloženie textu do súboru
- Ak už bolo meno súboru zadané, text sa ihneď uloží. Inak si editor vyžiada zadanie mena súboru a text uloží.
Pri ukladaní sú jednotlivé riadky textu ukončené znakmi CR a LF, ako je to na CP/M obvyklé. Na koniec textu sa ako posledný znak súboru zapíše znak EOF (znakom EOF je vyplnený zbytok posledného sektoru súboru).
Uloženie prebieha v troch krokoch. Najprv sa zmaže prípadne existujúci súbor filename.BAK. Potom, ak existuje súbor s požadovaným menom filename.ext, tak sa zmení jeho prípona na BAK. Nakoniec sa uloží text do súboru pod menom filename.ext. - A (save As) - uloženie súboru pod iným menom
- Editor si vyžiada zadanie mena súboru a text uloží do súboru pod daným menom. Zároveň sa zadané meno súboru stáva aktuálnym.
- B (save Block) - uloženie označeného bloku do súboru
- Editor si vyžiada zadanie mena súboru a nastavený blok textu uloží do súboru pod daným menom.
- D (Delete block) - zmazanie označeného bloku
- Editor najprv vypíše do informačného riadku "Are you sure? (Y/N)". Po stlačení 'Y' sa nastavený blok zmaže. Po stlačení 'N' sa zmazanie neprevedie.
- C (Copy block) - skopírovanie nastaveného bloku
- Nastavený blok textu sa skopíruje pred riadok s kurzorom. Ak ale nie je dosť voľnej pamäte pre skopírovanie bloku, do informačného riadku sa vypíše "No room for line(s)" a ku kopírovaniu nedôjde. Nemožno kopírovať do vnútra bloku.
- M (Move block) - presunutie nastaveného bloku
- Nastavený blok textu sa presunie pred riadok s kurzorom. Ak ale nie je dosť voľnej pamäte pre presunie bloku, do informačného riadku sa vypíše "No room for line(s)" a k presunu nedôjde. Blok nemožno presunúť do vnútra bloku.
- G (Go to line) - skok na zvolený riadok
- Do informačného riadku sa zobrazí "Line:" a editor čaká na zadanie čísla riadku, na ktorý sa má skočiť. Ak zadané číslo nie je v rozsahu 1 až počet riadkov textu, nič sa nestane.
- F (Find string) - vyhľadanie reťazca
- Vyžiada si zadanie reťazca, ktorý sa má vyhľadať a začne hľadanie od aktuálnej pozície kurzora, pričom sa v informačnom riadku zobrazí "Wait please...". Ak sa daný reťazec v texte nájde, kurzor sa nastaví na prvý znak nájdeného reťazca v riadku, v ktorom sa hľadaný reťazec našiel. Ak sa pri hľadaní dosiahne koniec textu, čo znamená, že sa hľadaný reťazec nenašiel, do informačného riadku sa vypíše "String not found". Pri hľadaní sa nerozlišuje veľkosť písmen (písmená v dolnej polovici ASCII tabuľky). Hľadaný reťazec môže obsahovať rôzne Escape znaky. Escape znak začína opačným lomítkom '\'.
- \C - rozlišovať veľkosti písmen
- \\ - opačné lomítko
- \T - znak tabulátor
- \? - ľubovoľný znak
- \S - ľubovoľný počet medzier a tabulátorov, minimálne však jeden
- N (find Next) - vyhľadanie ďalšieho výskytu
- Od pozície kurzora sa hľadá ďalší výskyt reťazca zadaného v povele F. Ak kurzor stojí na posledne nájdenom výskyte, hľadať sa začne od ďalšieho znaku textu.
- R (Replace) - nahradenie reťazca
- Nahradenie reťazca naposledy nájdeného povelom F, resp. N zadaným reťazcom. Kurzor musí stáť práve na naposledy nájdenom výskyte. Editor si vyžiada zadanie nahradzovacieho reťazca, ktorý môže obsahovať ďalej uvedené Escape znaky. Pri nahradzovaní sa testuje, či po nahradení nepresiahne dĺžka riadku 127 znakov alebo či je pre zmenený riadok dostatok miesta v pamäti. Ak nahradenie nie je možné, vypíše sa hlásenie "No room for line(s)". Ak je nahradenie úspešné, prevedie sa automaticky povel N, teda vyhľadanie ďalšieho výskytu. Takto je možné postupne striedaním povelov N a R nahradzovať určité výskyty reťazcov v texte. Povolené Escape znaky sú tieto:
- \\ - opačné lomítko
- \T - znak tabulátor
- T (replace all) - nahradenie všetkých výskytov reťazca
- Editor si vyžiada zadanie nahradzovacieho reťazca a nahradí v texte všetky výskyty reťazca naposledy nájdeného pomocou povelu F. Podobne, ako v povele R, ak by nebolo nahradenie úspešné, vypíše sa hlásenie "No room for line(s)" a povel sa ukončí.
- P (Print text) - vytlačenie textu na tlačiarni
- Do informačného riadku sa zobrazí "Printing... (Ctrl+C to abort)" a text sa začne posielať na tlačiareň. Tlač možno prerušiť stlačením Ctrl+C (END na PMD 85).
- O (print blOck of text) - vytlačenie nastaveného bloku textu na tlačiarni
- Do informačného riadku sa zobrazí "Printing... (Ctrl+C to abort)" a nastavený blok textu sa začne posielať na tlačiareň. Tlač možno prerušiť stlačením Ctrl+C (END na PMD 85).
- Z (show directory) - zoznam súborov na disku
- Do informačného riadku sa zobrazí "Drive?" a editor čaká na stlačenie písmena disku, ktorého zoznam súborov sa má vypísať. Zobrazí sa iba prostý zoznam všetkých súborov bez informácie o ich dĺžke. Ak je na disku súborov viac ako sa vojde na stránku, vypíše sa text "SPACE - next page" a po stlačení medzery sa zobrazia ďalšie mená súborov. Iný kláves povel ukončí. Ak na disku nie sú žiadne súbory, zobrazí sa text "No files".
- Y (show full directorY) - zoznam súborov na disku s dĺžkami súborov
- Do informačného riadku sa zobrazí "Drive?" a editor čaká na stlačenie písmena disku, ktorého zoznam súborov sa má vypísať. Zobrazí sa zoznam súborov vrátane ich dĺžok a voľného miesta na danom disku - "nnn kB free". Získavanie dĺžok súborov môže trvať trochu dlhšie. Inak platí to isté, ako pri povele Z.
Hlásenia editora
- No room for line(s)
- pri vkladaní nového riadku alebo pri kopírovaní/presúvaní bloku, ak nie je dosť voľnej pamäte
- File not found
- požadovaný súbor sa na disku nenašiel
- Loading file...
- pri nahrávaní súboru do pamäte
- Command:
- editor očakáva zadanie povelu
- Are you sure? (Y/N)
- pri mazaní celého textu alebo pri mazaní nastaveného bloku textu
- Text changed! Save? (Y/N)
- text bol zmenený a užívateľ chce nahrať zo súboru nový text alebo chce zmazať celý text
- Saving file...
- text sa ukladá do súboru
- Name:
- editor očakáva zadanie mena súboru
- Too long. Truncated!
- nahrávaný súbor je dlhší ako voľná pamäť
- Bad file name
- zadané meno súboru je nesprávne
- Directory full
- pri vytváraní/ukladaní súboru už nie je miesto v adresári
- Disk full
- pri vytváraní/ukladaní súboru už nie je miesto na disku
- Line:
- editor očakáva zadanie čísla riadku
- Drive?
- editor očakáva písmeno disku
- Find:
- editor očakáva zadanie reťazca, ktorý sa má vyhľadať
- Wait please...
- pri hľadaní/nahradzovaní reťazcov, pri presúvaní/kopírovaní bloku
- String not found
- ak sa pri hľadaní dosiahol koniec textu alebo pri nahradzovaní nestojí kurzor na naposledy nájdenom výskyte
- Printing... (Ctrl+C to abort)
- pri tlači textu na tlačiareň
- Replace:
- editor očakáva zadanie reťazca, ktorým sa má nahradiť nájdený reťazec
- SPACE - next page
- pri výpise zoznamu súborov na disku
- No files
- na zvolenom disku nie sú žiadne súbory
- nnn kB free
- pri výpise voľného miesta na disku
Technické detaily
Editor používa niekoľko priamych volaní služieb BIOSu CP/M.
- CONST - stav konzoly
- volaná pri tlači na tlačiareň pre priebežný test Ctrl+C
- CONIN - čítanie znaku z konzoly
- volaná pri samotnej editácii textu, aby sa "obišlo" volanie služby BDOSu, ktorá robí nežiadúce "echo" stlačeného znaku na výstup konzoly
- CONOUT - výstup znaku na konzolu
- volaná pri výpise textu, aby bol výpis rýchlejší a obišiel sa nežiadúci test konzoly na pozastavenie výpisu
- LIST - výstup znaku na tlačiareň
- volaná pri tlači textu
- LISTST - test pripravenosti tlačiarne
- volaná pri tlači textu (je dôležité, aby bola táto služba v BIOSe korektne implementovaná, inak sa môže program po vyvolaní povelu P alebo O "zaseknúť")
- SELDSK - výber diskovej jednotky
- volaná pre zistenie dostupných diskových jednotiek, čo sa využíva pri poveloch Z a Y