FSED
Z PMD 85 Infoserver
(Úprava textu) |
(Zrevidovaný a doplnený článok) |
||
Riadok 1: | Riadok 1: | ||
{{VelkyNadpis|FSED}} | {{VelkyNadpis|FSED}} | ||
+ | {{Infobox Software | ||
+ | | name = FSED | ||
+ | | screenshot = [[Obrázok:Fsed20.png|center|288px]] | ||
+ | | developer = '''RomBorSoft''' | ||
+ | | author = Roman Bórik | ||
+ | | version = {{Príkaz|FSED}}, v2.0 (2020) | ||
+ | | operating_system = CP/M | ||
+ | | language = angličtina | ||
+ | | download = '''[[download:xx|FSED.P32]]''' - obraz disku s programom | ||
+ | }} | ||
__TOC__ | __TOC__ | ||
- | '''FSED''' je jednoduchý celoobrazovkový editor | + | '''FSED''' je jednoduchý celoobrazovkový ''plain-text'' editor pre operačný systém [[MIKROS|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átovacie 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 == | == Spustenie editora == | ||
- | Editor | + | 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 |
+ | A>FSED [d:]filename.ext | ||
+ | A>FSED [d:]filename.ext linenumber | ||
+ | A>FSED [d:]filename.ext @string | ||
- | Ak je uvedené aj meno súboru, daný súbor sa po spustení nahraje do | + | 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 == | == Informačný riadok == | ||
Riadok 27: | Riadok 37: | ||
* číslo stĺpca, na ktorom stojí kurzor | * číslo stĺpca, na ktorom stojí kurzor | ||
* v okrúhlych zátvorkách celkový počet riadkov textu | * v okrúhlych zátvorkách celkový počet riadkov textu | ||
- | * v hranatých zátvorkách zostávajúca veľkosť voľnej | + | * v hranatých zátvorkách zostávajúca veľkosť voľnej pamäte pre text |
- | * režim | + | * režim písania znakov v riadku |
** '''INS'''ert - vkladací | ** '''INS'''ert - vkladací | ||
** '''OV'''e'''R'''write - prepisovací | ** '''OV'''e'''R'''write - prepisovací | ||
Riadok 36: | Riadok 46: | ||
== Formát textu == | == Formát textu == | ||
- | Riadky sú ukončené štandardne znakmi CR | + | 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 == | == 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ý. | + | 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 == | == 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 od kurzora ďalej sa posunie o jednu pozíciu doprava. 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 | + | 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. |
=== 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. | |
+ | |||
+ | Štandardné priradenie kontrolného klávesu pre počítač [[PMD 85]] je uvedené v treťom stĺpci. Znakom ''' ˆ ''' bude označený kláves ''Shift''. 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. | ||
- | Štandardné priradenie kontrolnej klávesy pre počítač PMD 85 je uvedené pri názve funkcie v zátvorkách. Znakom ^ bude označená klávesa Shift. Klávesa |<-- bude nazývaná ako šípka | ||
- | hore, klávesa -->| zasa ako šípka dolu a slovo HOME označuje šikmú šípku. | ||
Toto nastavenie je samozrejme možné v konfiguračnom programe zmeniť. | Toto nastavenie je samozrejme možné v konfiguračnom programe zmeniť. | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
- | |- | ||
| colspan="3" align="center" | ''Editačné funkcie programu FSED'' | | colspan="3" align="center" | ''Editačné funkcie programu FSED'' | ||
|- | |- | ||
! width="20%" | Funkcia | ! width="20%" | Funkcia | ||
! Význam | ! Význam | ||
- | ! width="20%" | | + | ! width="20%" | Kláves na PMD 85 |
|- | |- | ||
| cursor left by char | | cursor left by char | ||
| Posun o znak doľava. | | Posun o znak doľava. | ||
- | Ak je kurzor | + | Ak je už kurzor na začiatku riadku, nič sa nestane. |
| <-- | | <-- | ||
|- | |- | ||
| cursor right by char | | cursor right by char | ||
| Posun o znak doprava. | | Posun o znak doprava. | ||
- | Ak je kurzor | + | Ak je už kurzor na konci riadku, nič sa nestane. |
| --> | | --> | ||
|- | |- | ||
| 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ý | + | Kurzor sa nastaví na prvý znak v riadku. |
| HOME | | HOME | ||
|- | |- | ||
Riadok 91: | Riadok 100: | ||
| insert tabulátor - TAB | | insert tabulátor - TAB | ||
| Vloženie tabulátora v mieste kurzora. | | Vloženie tabulátora v mieste kurzora. | ||
- | Pri zobrazovaní to znamená, že sa od polohy tabulátora až po nasledujúcu tabelačnú pozíciu | + | 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 | | C-D | ||
|- | |- | ||
Riadok 108: | Riadok 117: | ||
| 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 | + | 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 | | DEL | ||
|- | |- | ||
Riadok 121: | Riadok 130: | ||
|- | |- | ||
| next ASCII character | | next ASCII character | ||
- | | Znak, na ktorom je kurzor, sa zmení na znak, ktorý za ním nasleduje v ASCII tabuľke. | + | | 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 | | Shift + WRK | ||
|- | |- | ||
Riadok 132: | Riadok 141: | ||
Ak stojí kurzor vo vnútri riadku, tak sa tento riadok rozdelí na dva v mieste kurzora. | Ak stojí kurzor vo vnútri riadku, tak sa tento riadok rozdelí na dva v mieste kurzora. | ||
- | Ak ale nie je dosť voľnej | + | Ak ale nie je dosť voľnej pamäte pre vloženie nového riadku, do info riadku sa vypíše "No room for line(s)". |
| EOL | | EOL | ||
|- | |- | ||
| cursor to previous line | | cursor to previous line | ||
- | | Posun | + | | Posun kurzora na predchádzajúci riadok. |
- | Ak sa kurzor nachádza na prvom riadku obrazovky, zobrazí sa predchádzajúca stránka textu. | + | 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. |
| |<-- | | |<-- | ||
|- | |- | ||
Riadok 162: | Riadok 171: | ||
|- | |- | ||
| delete current line | | delete current line | ||
- | | Odstránenie riadku | + | | Odstránenie riadku, na ktorom stojí kurzor. |
| Shift + DEL | | Shift + DEL | ||
|- | |- | ||
Riadok 170: | Riadok 179: | ||
|- | |- | ||
| exchange lines | | exchange lines | ||
- | | Zamení aktuálny riadok s predchádzajúcim. Ak kurzor stojí na prvom riadku, nič sa nestane. | + | | Zamení aktuálny riadok s predchádzajúcim. Ak kurzor stojí na prvom riadku testu, nič sa nestane. |
| Shift + RCL | | Shift + RCL | ||
|- | |- | ||
| set block boundary | | set block boundary | ||
- | | Nastavenie okraja bloku. | + | | Nastavenie okraja bloku. Operácie, ktoré je možné vykonať nad blokom textu, sú uvedené v popise príkazov. |
| Shift + C-D | | Shift + C-D | ||
|- | |- | ||
Riadok 183: | Riadok 192: | ||
=== Príkazový režim === | === 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 | + | 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á žiadny povel, nič sa nevykoná. Zoznam povelov: |
- | ; Q (Quit) - ukončenie programu : Ak bol text zmenený a nebol uložený, do info riadku sa vypíše "Text changed. Save?". 'Y' znamená kladnú odpoveď a text je uložený pod aktuálnym menom. | + | ; Q (Quit) - ukončenie programu : Ak bol text v pamäti zmenený a nebol uložený, do info 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 info riadku "Are you sure?". 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. | + | ; X (clear teXt) - zmazanie celého textu : Editor najprv vypíše do info 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 | + | ; 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 info riadku sa vypíše "Too long. Truncated!" a v pamäti je iba časť textu.<br>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. |
- | ; 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ží. | + | ; 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ží.<br>Pri ukladaní sú jednotlivé riadky textu ukončené znakmi CR a LF, ako je to na CP/M obvyklé. Ako posledný znak je zapísaný znak EOF (znakom EOF je vyplnený zbytok posledného sektoru súboru). | ||
; A (save As) - uloženie súboru pod iným menom : Editor si vyžiada zadanie mena súboru a text uloží. Zároveň sa zadané meno súboru stáva aktuálnym. | ; A (save As) - uloženie súboru pod iným menom : Editor si vyžiada zadanie mena súboru a text uloží. 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ží. | ; 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ží. | ||
- | ; D (Delete block) - zmazanie označeného bloku : Editor najprv vypíše do info riadku "Are you sure?". Po stlačení 'Y' sa nastavený blok zmaže. | + | ; D (Delete block) - zmazanie označeného bloku : Editor najprv vypíše do info 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 | + | ; 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 info 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) - skopírovanie 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 info 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 info 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. | ; G (Go to line) - skok na zvolený riadok : Do info 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 | + | ; 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 do info 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 info 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 | * \C - rozlišovať veľkosti písmen | ||
* \\ - opačné lomítko | * \\ - opačné lomítko | ||
Riadok 200: | Riadok 211: | ||
* \? - ľubovoľný znak | * \? - ľubovoľný znak | ||
* \S - ľubovoľný počet medzier a tabulátorov, minimálne však jeden | * \S - ľubovoľný počet medzier a tabulátorov, minimálne však jeden | ||
- | ; N (find Next) - vyhľadanie ďalšieho výskytu : Od | + | ; 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. |
- | ; Z (show directory) - zoznam | + | ; 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 info 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 lock of text) - vytlačenie nastaveného bloku textu na tlačiarni : Do info 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 info 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 súborov bez informácie o ich dĺžke. | ||
+ | ; Y (show full directory) - zoznam súborov na disku s dĺžami súborov : Do info riadku sa zobrazí "Drive?" a editor čaká na stlačenie písmena disku, ktorého zoznam súborov sa má vypísať. Zobrazí zoznam súborov vrátane ich dĺžok a voľného miesta na danom disku. Získavanie dĺžok súborov môže zabrať trošku viac času. | ||
== Hlásenia editora == | == Hlásenia editora == | ||
- | ; No room for line(s) : pri vkladaní nového riadku alebo pri kopírovaní bloku, ak nie je dosť voľnej pamäti | + | ; No room for line(s) : pri vkladaní nového riadku alebo pri kopírovaní/presúvaní bloku, ak nie je dosť voľnej pamäti |
; File not found : požadovaný súbor sa na disku nenašiel | ; File not found : požadovaný súbor sa na disku nenašiel | ||
; Loading file... : pri nahrávaní súboru do pamäti | ; Loading file... : pri nahrávaní súboru do pamäti | ||
; Command: : editor očakáva zadanie povelu | ; Command: : editor očakáva zadanie povelu | ||
- | ; Are you sure? : pri mazaní celého textu alebo pri mazaní nastaveného bloku textu | + | ; Are you sure? (Y/N) : pri mazaní celého textu alebo pri mazaní nastaveného bloku textu |
- | ; Text changed! Save? : text bol zmenený a užívateľ chce nahrať zo súboru nový text alebo chce zmazať celý text | + | ; 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 | ; Saving file... : text sa ukladá do súboru | ||
; Name: : editor očakáva zadanie mena súboru | ; Name: : editor očakáva zadanie mena súboru | ||
Riadok 218: | Riadok 236: | ||
; Line: : editor očakáva zadanie čísla riadku | ; Line: : editor očakáva zadanie čísla riadku | ||
; Drive? : editor očakáva písmeno disku | ; Drive? : editor očakáva písmeno disku | ||
- | ; Wait please... : pri hľadaní reťazcov | + | ; Find: : editor očakáva zadanie reťazca, ktorý sa má vyhľadať |
- | ; String not found : ak sa pri hľadaní dosiahol koniec textu | + | ; 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 | ||
+ | |||
+ | == 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 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 "zaseknúť") | ||
+ | ; SELDSK - výber diskovej jednotky : volaná pre zistenie dostupných diskových jednotiek, čo sa využíva pri poveloch Z a Y |
Verzia zo dňa a času 19:33, 5. 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átovacie 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.
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. Znakom ˆ bude označený kláves Shift. 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.
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 na 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 info 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á žiadny povel, nič sa nevykoná. Zoznam povelov:
- Q (Quit) - ukončenie programu
- Ak bol text v pamäti zmenený a nebol uložený, do info 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 info 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 info 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é. Ako posledný znak je zapísaný znak EOF (znakom EOF je vyplnený zbytok posledného sektoru súboru). - A (save As) - uloženie súboru pod iným menom
- Editor si vyžiada zadanie mena súboru a text uloží. 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ží.
- D (Delete block) - zmazanie označeného bloku
- Editor najprv vypíše do info 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 info 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) - skopírovanie 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 info 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 info 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 do info 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 info 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 info 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 lock of text) - vytlačenie nastaveného bloku textu na tlačiarni
- Do info 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 info 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 súborov bez informácie o ich dĺžke.
- Y (show full directory) - zoznam súborov na disku s dĺžami súborov
- Do info riadku sa zobrazí "Drive?" a editor čaká na stlačenie písmena disku, ktorého zoznam súborov sa má vypísať. Zobrazí zoznam súborov vrátane ich dĺžok a voľného miesta na danom disku. Získavanie dĺžok súborov môže zabrať trošku viac času.
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äti
- File not found
- požadovaný súbor sa na disku nenašiel
- Loading file...
- pri nahrávaní súboru do pamäti
- 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
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 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 "zaseknúť")
- SELDSK - výber diskovej jednotky
- volaná pre zistenie dostupných diskových jednotiek, čo sa využíva pri poveloch Z a Y