FSED
Z PMD 85 Infoserver
Obsah |
FSED je jednoduchý celoobrazovkový editor textových súborov pre operačný systém CP/M 2.2. Oproti riadkovému editoru ED, ktorý je štandardne dodávaný s operačným
systémom CP/M, poskytuje podstatne užívateľsky príjemnejšie ovládanie. 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 vôjde do voľnej pamäti. Veľkosť voľnej pamäti 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 sa spúšťa obvyklým spôsobom:
A>FSED [[d:]filename.ext [linenumber]]
Ak je uvedené aj meno súboru, daný súbor sa po spustení nahraje do pamäti. Meno nahrávaného súboru môže začínať písmenom zdrojového disku. Za menom súboru môže byť naviac uvedené aj desiatkové číslo, ktoré určuje číslo riadku, na ktoré sa po nahratí zadaného súboru nastaví kurzor.
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äti pre text
- režim editora
- 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äti 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 126 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 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 <9>. Tabelačné pozície sú každých 8 znakov.
Editačné funkcie
V nasledujúcom je 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, v ktorom sa jednotlivým funkciám priraďujú požadované kontrolné klávesy.
Š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ť.
Editačné funkcie programu FSED | ||
Funkcia | Význam | Klávesa na PMD 85 |
---|---|---|
cursor left by char | Posun o znak doľava.
Ak je kurzor v prvom stĺpci, nič sa nestane. | <-- |
cursor right by char | Posun o znak doprava.
Ak je kurzor v poslednom 126. stĺpci, nič sa nestane. | --> |
cursor to begin of line | Prechod na začiatok riadku.
Kurzor sa nastaví na prvý stĺpec 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 vytlačia 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 126 znakov. | DEL |
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. | 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äti pre vloženie nového riadku, do info riadku sa vypíše "No room for line(s)". | EOL |
cursor to previous line | Posun o riadok hore.
Ak sa kurzor nachádza na prvom riadku obrazovky, zobrazí sa predchádzajúca stránka textu. | |<-- |
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 s kurzorom. | 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, nič sa nestane. | Shift+RCL |
set block boundary | Nastavenie okraja bloku. | 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šnej písmenovej klávesy. Po stlačení klávesy 'enter command mode' (WRK), sa do informačného riadku vypíše: "COMMAND:" a čaká sa na zadanie povelu. Ak sa stlači klávesa, 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. Klávesa '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.
- L (Load) - nahratie textu zo súboru do pamäti
- Najprv sa testuje, či bol aktuálny text zmenený. Ak áno, dôjde k uloženiu textu, rovnako ako pri povele Q. Následne si editor vyžiada zadanie mena súboru a dôjde k nahratiu súboru do pamäti. Ak je súbor príliš dlhý a nevôjde sa do pamäti, do info riadku sa vypíše "Too long. Truncated!". V pamäti je iba časť textu.
- 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ží.
- 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?". Po stlačení 'Y' sa nastavený blok zmaže.
- 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äti 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.
- 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 nasledujúceho riadku, pričom sa do info riadku zobrazí "Wait please...". Ak sa daný reťazec v texte nájde, kurzor sa nastaví na riadok, 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 (iba 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 nasledujúceho riadku sa hľadá ďalší výskyt reťazca zadaného v povely F.
- Z (show directory) - zoznam suborov 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ť.
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
- 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?
- 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
- 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
- Wait please...
- pri hľadaní reťazcov
- String not found
- ak sa pri hľadaní dosiahol koniec textu