FC
Z PMD 85 Infoserver
| Upozornenie Program File Commander na spravovanie súborov pre operačný systém CP/M 2.2 bol vytvorený ako hobby projekt a je ho možné používať tak ako je. Autor nijako nezodpovedá za prípadné nepríjemnosti alebo škody spôsobené používaním tohto programu! |
| FC | |
spustený File Commander na PMD 85 | |
| Autor: | Roman Bórik |
|---|---|
| Vývojár: | RomBorSoft |
| Verzia: | FC, v1.0 (2025) |
| Operačný systém: | CP/M 2.2 |
| Lokalizácia: | angličtina |
| Download: | fc10.zip - archív obsahujúci zdrojové texty, preloženú binárku a obrazy diskov P32, DZ8 a NCB |
File Commander - FC.COM - je program pre spravovanie súborov na disketách pre operačný systém CP/M 2.2. Poskytuje všetky základné operácie so súbormi - kopírovanie, presúvanie, mazanie, prezeranie atď. Je riešený celoobrazovkovo a je ho možné prispôsobiť pre konkrétny terminál v konfiguračnom súbore.
Spustenie
File Commander možno spustiť obvyklým spôsobom zadaním jeho mena. Za menom programu môže nasledovať hviezdička * alebo názov terminálu.
A>FC A>FC * A>FC názov_terminálu
Ak sa File Commander spustí bez parametrov, použije sa konfigurácia prvého terminálu zadefinovaného v konfiguračnom súbore.
Ak sa File Commander spustí s parametrom hviezdička, zobrazí sa zoznam zadefinovaných terminálov v konfiguračnom súbore a je možné vybrať terminál, ktorého definícia sa má pre beh File Commandera použiť.
Ak sa File Commander spustí s názvom terminálu, File Commander sa pokúsi v konfiguračnom súbore nájsť definíciu pre požadovaný terminál a použije ju.
Popis obrazovky a panelov
V najvrchnejšom riadku obrazovky je zobrazený názov programu a jeho verzia.
Najspodnejší riadok obrazovky je určený pre zobrazenie rôznych informácií a zadávanie vstupných údajov. Obvykle je v ňom zobrazený text 9:Help 0:Quit, ktorý hovorí sám za seba.
Zbytku obrazovky dominujú dva panely - ľavý a pravý, v ktorých sa zobrazujú zoznamy súborov na dvoch zvolených diskoch. To, o ktoré disky sa jedná, je vypísané na hornom okraji každého panelu, napr. A0: (disk A, užívateľská oblasť 0). Pod zoznamom súborov je ešte malý (dolný) panel, ktorý obsahuje dodatočné údaje o súbore, na ktorom stojí kurzor a práve nastavený filter (maska) zobrazených súborov.
File Commander je prispôsobený pre použitie s terminálmi o rôznej šírke - počtu znakov na riadok - 40, 48, 64 a 80. Podľa toho sa zobrazujú aj panely a líši sa počet stĺpcov, v ktorých sa zobrazuje zoznam súborov a aktuálne zobrazené údaje na dolnom paneli pod zoznamom súborom.
- 40 - Ľavý aj pravý panel majú po jednom stĺpci pre zoznam súborov. Dolný panel zobrazuje údaje pre súbor, na ktorom stojí kurzor a aktuálny filter zobrazených súborov na aktívnom paneli.
- 48 - Ľavý panel zobrazuje zoznam súborov v dvoch stĺpcoch, pravý panel v jednom stĺpci. Dolný panel zobrazuje údaje pre súbor, na ktorom stojí kurzor pre ľavý i pravý panel osobitne (na ľavom a pravom kraji dolného panelu). V strede dolného panelu je zobrazený filter zobrazených súborov na aktívnom paneli.
- 64 - Ľavý aj pravý panel zobrazujú zoznam súborov v dvoch stĺpcoch. Každý panel zobrazuje v dolnom paneli údaje o súbore, na ktorom stojí kurzor a aj filter zobrazených súborov osobitne.
- 80 - Ľavý aj pravý panel zobrazujú zoznam súborov v troch stĺpcoch. Každý panel zobrazuje v dolnom paneli údaje o súbore, na ktorom stojí kurzor a aj filter zobrazených súborov osobitne.
Údaje o súbore
V zozname súborov je uvedené iba meno súboru a jeho prípona. Dodatočné údaje o súbore, na ktorom stojí kurzor, sa zobrazujú v dolnom paneli pod zoznamom súborov. To zahŕňa veľkosť súboru a jeho atribúty.
Veľkosť súboru sa zobrazuje vo forme X/Y, kde X je veľkosť súboru v logických sektoroch (Records) a Y je veľkosť súboru v kB zaokrúhlená hore na veľkosť alokačného bloku. Napríklad, ak je veľkosť alokačného bloku 2 kB, tak údaj 7/2 znamená, že súbor má veľkosť 7 logických sektorov, ale na disku obsadzuje 2 kB (celý 1 alokačný blok).
Keďže získanie veľkostí súborov môže byť časovo náročnejšie, pri načítavaní adresára sa veľkosti nezískavajú a údaj o veľkosti je zobrazený ako -/-. Funkciou L je potom možné dodatočne získať veľkosť aktuálneho súboru alebo všetkých súborov v adresári.
File Commander zobrazuje 2 štandardné atribúty R (Read only) a S (System / Skrytý súbor). Ak daný atribút nie je nastavený, zobrazí sa pomlčka. Sú teda 4 rôzne možnosti zobrazenia atribútov -- alebo R- alebo -S alebo RS.
Súborový kurzor
Súborový kurzor označuje aktuálny súbor a zobrazuje sa vždy iba na paneli, ktorý je aktívny. Aktívny panel má zvýraznené meno disku, napr. A0:, na hornom okraji panelu. Prepínanie panelov, teda voľba aktívneho panelu, sa robí navoleným kontrolným klávesom (konfiguračný parameter switch), ktorý je zadefinovaný v konfiguračnom súbore (viď ďalej).
To, ako bude vyzerať súborový kurzor, záleží opäť na konfigurácii File Commandera:
- Ak terminál podporuje inverzné zobrazenie (konfiguračný parameter
print-inverse), je súborový kurzor zobrazený ako vypísanie mena súboru inverzne. - V opačnom prípade sa kurzor zobrazí ako dva znaky, jeden pred a druhý za menom súboru. Tieto dva znaky sú zadefinované konfiguračným parametrom
file-cursor-characters. Predvolene sú to znaky > a <.
Rovnaký spôsob sa použije aj na zvýraznenie aktívneho panelu.
Ovládanie
Vzhľadom na to, že každý terminál môže pre určité riadiace klávesy vysielať rôzne kódy, sú tieto kódy uvedené pre všetky ovládacie funkcie opäť v konfiguračnom súbore.
V nasledujúcej tabuľke sú uvedené všetky riadiace funkcie, ktoré File Commander využíva pre pohyb kurzora po zozname súborov v aktuálnom paneli, alebo pri zadávaní textu.
Štandardné priradenie riadiaceho klávesu pre počítač PMD 85 je uvedené v treťom stĺpci. Slovo HOME označuje šikmú šípku na klávesnici PMD 85.
| Ovládacie funkcie programu File Commander | ||
| Konfiguračný parameter | Popis funkcie | Kláves na PMD 85 |
|---|---|---|
| cursor-left | Prechod na predošlú stránku súborov v zozname.
Ak je zoznam súborov vo viacerých stĺpcoch a kurzor nie je v prvom stĺpci, kurzor sa presunie do predchádzajúceho stĺpca. Ak je kurzor v prvom stĺpci, ale nie na prvom súbore zoznamu, kurzor sa presunie na prvý súbor v zozname. Ak je už kurzor na začiatku zoznamu, nič sa nestane. Pri editácii v riadku zmazanie znaku pred kurzorom. | <-- |
| cursor-right | Prechod na nasledujúcu stránku súborov v zozname.
Ak je zoznam súborov vo viacerých stĺpcoch a kurzor nie je na poslednom stĺpci, kurzor sa presunie do ďalšieho stĺpca. Ak je kurzor v poslednom stĺpci, ale nie na poslednom súbore zoznamu, kurzor sa presunie na posledný súbor v zozname. Ak je už kurzor na konci zoznamu, nič sa nestane. | --> |
| cursor-up | Prechod na predošlý súbor v zozname.
Ak je už kurzor na začiatku zoznamu, nič sa nestane. | |<-- |
| cursor-down | Prechod na ďalší súbor v zozname.
Ak je už kurzor na konci zoznamu, nič sa nestane. | -->| |
| cursor-home | Prechod na prvý súbor v zozname | HOME |
| cursor-end | Prechod na posledný súbor v zozname. | END |
| enter | Potvrdenie vstupu pri zadávaní textu. | EOL |
| delete-char | Zmazanie znaku pred kurzorom pri zadávaní textu. | DEL |
| clear-line | Zmazanie obsahu riadku pri zadávaní textu. | CLR |
| escape | Ukončenie vstupu pri zadávaní textu.
Ukončenie operácie, ak sa čaká na reakciu užívateľa. | RCL |
| switch | Prepínanie sa medzi ľavým a pravým panelom.
Všetky operácie nad súbormi sa vzťahujú na panel, ktorý je práve aktívny. | C-D |
Zadávanie vstupných údajov
Ako už bolo spomenuté vyššie, posledný riadok obrazovky zároveň slúži pre zadávanie rôznych vstupných údajov. Znaky, ktoré možno zadať, závisia od toho, aké zadanie sa od užívateľa očakáva. Okrem bežných znakov možno pre editáciu použiť nasledujúce riadiace klávesy:
-
cursor-left- zmazanie znaku pred kurzorom -
delete-char- zmazanie znaku pred kurzorom -
clear-line- zmazanie editačného riadku -
escape- prerušenie vstupu a ukončenie operácie -
enter- potvrdenie vstupu
- Meno/Maska súboru
- Meno alebo maska súboru sa zadáva v tvare filename.ext. Pre zadanie mena súboru sú povolené čísla, písmená a tieto znaky ! " # $ % & ' ( ) + - . @ _ { }. Malé písmená sú automaticky menené na veľké. Bodka sa môže vyskytnúť iba ako oddeľovač mena a prípony súboru.
- Číselné vstupy
- Pri zadávaní čísel (užívateľská oblasť, číslo záznamu ...) sú samozrejme povolené iba čísla.
Prakticky vždy, keď File Commander pri vykonávaní nejakej operácie očakáva od užívateľa určitú reakciu, je možné klávesom escape ukončiť danú operáciu a vrátiť sa do hlavnej programovej čakacej slučky.
Operácie
Ako bolo spomenuté, jednotlivé operácie sa vždy vzťahujú k práve aktívnemu panelu. Niektoré operácie sú všeobecné a platia pre aktuálny panel ako celok. Ostatné operácie už pracujú buď s aktuálnym súborom (na ktorom stojí súborový kurzor) alebo so skupinou označených súborov (viď ďalej).
Zoznam všetkých riadiacich klávesov a operácii je možné zobraziť stlačením klávesu 9 - Help. Samotné operácie sa vyvolajú stlačením príslušného písmenového klávesu.
File Commander možno ukončiť stlačením klávesu 0 - Quit. Než sa skočí na teplý štart systému, nastavia sa aktuálny disk a užívateľská oblasť na rovnaké, aké boli pri štarte File Commandera a zmaže sa obrazovka.
D - Choose drive (Výber diskovej jednotky)
Po spustení File Commandera sa v ľavom paneli nastaví disk A a užívateľská oblasť 0. V pravom paneli sa nastaví disk a užívateľská oblasť, ktoré boli aktuálne pri štarte File Commandera. Táto operácia teda umožňuje zmeniť aktuálny disk v aktívnom paneli na iný.
Do informačného riadku sa vypíše Choose drive: a očakáva sa zadanie písmena disku. File Commander si po spustení zisťuje, ktoré diskové jednotky sú dostupné a povolí iba tie, ktoré existujú. Po zvolení disku sa automaticky zvolí užívateľská oblasť 0 a načíta sa adresár. Spôsob zoradenia súborov a ani filter sa nezmenia.
U - Choose user (Výber užívateľskej oblasti)
Aj keď sa to veľmi často nepoužíva, v operačnom systéme CP/M 2.2 je možné mať disk rozdelený na tzv. užívateľské oblasti, ktoré sú navzájom nezávislé. Týchto oblastí môže byť až 32. Táto operácia umožňuje zvoliť aktuálnu užívateľskú oblasť pre daný disk.
Do informačného riadku sa vypíše Choose user: a očakáva sa zadanie čísla od 0 do 31. Po potvrdení sa prečíta z disku adresár pre zvolenú užívateľskú oblasť. Spôsob zoradenia súborov a ani filter sa nezmenia.
N - New disk (Nový disk)
Pri výmene diskety v mechanike je potrebné povedať File Commanderu, že ku tomu došlo. Po vyvolaní tejto operácie sa urobí inicializácia diskového systému, čo zabráni systému nový disk označiť ako R/O. Zvolí sa užívateľská oblasť 0 a načíta sa adresár. Spôsob zoradenia súborov a ani filter sa nezmenia.
I - Show disk info (Zobrazenie informácií o disku)
Táto funkcia umožňuje zobraziť rôzne informácie o disku a súboroch na aktuálnom paneli, plus ďalšie pomocné informácie.
- Drive - písmeno aktuálnej diskovej jednotky
- kB Capacity - celková kapacita disku
- kB Block size - veľkosť alokačného bloku v kB
- kB Free space - veľkosť voľného miesta na disku v kB
- Dir entries - celkový počet adresárových položiek na disku
- kB per Dir entry - maximálny počet kB, ktoré môže reprezentovať jedna položka adresára
- Free Dir entries - počet voľných adresárových položiek na disku
- User - číslo aktuálnej užívateľskej oblasti
- Total files - celkový počet súborov na disku
- Files in list - celkový počet zobrazených súborov
- Marked files - celkový počet označených súborov
- Used user areas - zoznam čísel využitých užívateľských oblastí na disku
- kB File buffer - veľkosť súborového buffra v kB, ktorý sa používa pri kopírovaní súborov
- Records per buffer - počet logických sektorov, ktoré sa vojdú do súborového buffra
L - Get file(s) size (Získanie veľkostí súborov)
Operačný systém CP/M poskytuje službu pre získanie veľkosti súboru v logických sektoroch. Táto operácia je časovo náročná, pretože je nutné prehľadávať celý adresár a hľadať adresárové položky, ktoré patria danému súboru. Adresárová položka súboru obsahuje počet obsadených logických sektorov v danom tzv. rozšírení (Extent). Ak súbor presiahne veľkosť, ktorá sa dá zaznamenať v jednej adresárovej položke (záleží od logického formátu disku a veľkosti alokačného bloku), je súboru pridelená ďalšia adresárová položka, kde sa zaznamenávajú ďalšie obsadené alokačné bloky a teda je tam aj počet obsadených logických sektorov v tomto rozšírení.
Keďže získanie veľkostí všetkých súborov môže trvať aj niekoľko (desiatok) sekúnd, File Commander pri počiatočnom načítavaní adresára, kde informácia o veľkostí súborov priamo nie je, dodatočné získavanie veľkostí súborov nerobí a poskytuje na to osobitne túto funkciu.
Po stlačení klávesu L sa vypíše do informačného riadku Size> 1:Current 2:All a užívateľ môže zvoliť získanie veľkosti súboru pre aktuálny súbor alebo pre všetky súbory. Po skončení operácie sa už vo výpise zoznamu súborov bude k súboru vypisovať jeho veľkosť, ako bolo uvedené vyššie. Novým načítaním adresára sa informácie o veľkosti súborov "zabudnú".
F - Filter files (Vyfiltrovanie zoznamu súborov)
Ak je na disku veľa súborov, je často užitočné mať zobrazené iba určité súbory. Táto operácia umožňuje vyfiltrovať zoznam súborov podľa zadanej masky.
Do informačného riadku sa vypíše Filter: *.*, kde namiesto *.* môže byť naposledy zadaná maska pre daný panel. Maska zodpovedá menu súboru v tvare 8.3 a môže obsahovať aj zástupné znaky (wildcards) * a ?.
Po potvrdení sa zoznam súborov vyfiltruje podľa zadanej masky a kurzor sa nastaví na prvý súbor v zozname, samozrejme, pokiaľ zvolená maska nespôsobila, že je teraz zoznam prázdny.
Zadaná maska súborov je zobrazená v dolnom paneli.
␣ / K - Un/Mark file(s) (Odznačenie/označenie súborov)
Pre skupinové operácie, teda operácie nad viacerými súbormi, je potrebné označiť súbory, s ktorými sa bude daná operácia vykonávať. Označený súbor má v zozname súborov vo svojom mene namiesto bodky, ktorá oddeľuje príponu súboru, znak, ktorý je zadefinovaný konfiguračným parametrom file-mark-character. Predvolene je to znak ! (výkričník).
Klávesom Medzera (␣) možno označovať súbory jednotlivo. Kláves Medzera funguje ako prepínač, takže ak sa stlačí na neoznačenom súbore, tak sa tento súbor označí. Ak sa stlačí na už označenom súbore, tak sa tento súbor odznačí. Zároveň sa po stlačení klávesu Medzera presunie kurzor na ďalší súbor v zozname, takže je možné označovať viac súborov za sebou.
Stlačením klávesu K sa vypíše do informačného riadku Mark> 0:None 1:All 2:Invert 3:Mask a File Commander očakáva voľbu spôsobu označenia súborov.
- 0 - všetkým súborom sa zruší označenie
- 1 - označia sa všetky súbory
- 2 - zmení sa označenie súborov na opačné - pôvodne neoznačené súbory budú označené, pôvodne označené súbory budú neoznačené
- 3 - označenie súborov podľa masky: Do informačného riadku sa vypíše Mask: *.*, kde namiesto *.* môže byť naposledy zadaná maska pre daný panel. Pre zadanie masky platí to isté, ako pri zadávaní filtra súborov.
S - Sort files (Zoradenie zoznamu súborov)
Zoznam súborov možno podľa potreby zoradiť.
Do informačného riadku sa vypíše Sort> 0:None 1:Name 2:Ext 3:Size a očakáva sa voľba spôsobu zoradenia zoznamu súborov. Ak sa zvolí rovnaký spôsob zoradenia ako naposledy, zmení sa smer zoradenia zoznamu súborov na opačný.
- 0 - súbory nebudú nijako zoradené a zobrazia sa v takom poradí ako sú v adresári na disku
- 1 - súbory sa zoradia podľa mena a prípony súboru
- 2 - súbory sa zoradia podľa prípony a mena súboru
- 3 - súbory sa zoradia podľa veľkosti súboru. Zoradenie podľa veľkosti má zmysel až potom, ako sú získané veľkosti súborov pomocou funkcie/operácie L.
R - Rename file (Premenovanie súboru)
Premenovanie súboru je síce vstavaným príkazom CCP, ale File Commander umožňuje aj premenovanie súboru s nastavenými atribútmi, prípadne aj zvoliť meno už existujúceho súboru.
Pri premenovávaní sa vypíše do informačného riadku Rename "A0:FILENAME.EXT" to, kde disk a meno, samozrejme, zodpovedajú aktuálnemu súboru. File Commander teraz očakáva zadanie nového mena súboru (iba meno a príponu). Po potvrdení File Commander overí, či je meno odlišné od pôvodného. Ak nie je odlišné, ku zmene, pochopiteľne, nedôjde.
Následne sa overí, či na disku existuje súbor so zadaným menom. Ak existuje, File Commander si vyžiada potvrdenie jeho prepísania (viď ďalej). Ak užívateľ nepotvrdí prepísanie, k premenovaniu nedôjde.
Po premenovaní má súbor nastavené rovnaké atribúty ako predtým.
A - Change file attributes (Zmena atribútov súboru)
File Commander umožňuje zmeniť aktuálnemu súboru dva štandardné atribúty R (Read only) a S (System / Skrytý súbor).
Po zvolení tejto operácie sa vypíše do informačného riadku Change Attrs "A0:FILENAME.EXT" | -- to --, kde disk a meno, samozrejme, zodpovedajú aktuálnemu súboru. Prvé dve pomlčky predstavujú aktuálny stav atribútov súboru, druhé dve pomlčky zodpovedajú zmene, ktorú užívateľ zvolí.
Klávesmi R a S možno meniť jednotlivé príznaky. Po potvrdení voľby dôjde ku zmene atribútov.
P - Duplicate file (Duplikovanie súboru)
Aktuálny súbor možno zduplikovať (vytvoriť kópiu) na aktuálnom disku v aktuálnej užívateľskej oblasti pod novým menom.
Do informačného riadku sa vypíše Duplicate "A0:FILENAME.EXT" to, kde disk a meno, samozrejme, zodpovedajú aktuálnemu súboru. File Commander teraz očakáva zadanie mena nového súboru (iba meno a príponu). Po potvrdení sa overí, či je meno odlišné od pôvodného. Ak nie je odlišné, k vytvoreniu kópie súboru, pochopiteľne, nedôjde.
Následne sa overí, či na disku existuje súbor so zadaným menom. Ak existuje, File Commander si vyžiada potvrdenie jeho prepísania (viď ďalej). Ak užívateľ nepotvrdí prepísanie, k vytvoreniu kópie súboru nedôjde.
Vytvorený súbor má nastavené atribúty rovnako, ako má zdrojový súbor.
C - Copy file(s) (Kopírovanie súboru(ov))
File Commander umožňuje kopírovať súbory z jedného disku na druhý a aj z jednej užívateľskej oblasti na inú užívateľskú oblasť na jednom disku. Zvolený disk/užívateľská oblasť teda musia byť na paneloch navzájom rozdielne.
Ak sú označené nejaké súbory, bude sa kopírovať táto skupina súborov, inak sa skopíruje iba aktuálny súbor. Kopíruje sa z disku a užívateľskej oblasti aktívneho panelu na disk a užívateľskú oblasť na druhom paneli.
Do informačného riadku sa vypíše Copy "A00:12345678.123" to "B00:" ? Y/N (pri kopírovaní iba aktuálneho súboru), resp. Copy X file(s) ? Y/N (pri kopírovaní skupiny označených súborov) a očakáva sa potvrdenie klávesom Y.
Po potvrdení sa začne kopírovanie a pre každý kopírovaný súbor sa vypisuje do informačného riadku Copying "A00:12345678.123" to "B00:".
Priebeh čítania a zápisu sa vypisuje v percentách do informačného riadku: Reading "A00:12345678.123" nn%, resp. Writing "B00:12345678.123" nn%.
Ak nastane situácia, že kopírovaný súbor už na cieľovom disku existuje, užívateľ je požiadaný o potvrdenie jeho prepísania, prípadne vynechanie tohto súboru (viď ďalej).
Skopírovaný súbor má nastavené atribúty rovnako, ako má zdrojový súbor.
M - Move file(s) (Presunutie súboru(ov))
Presunutie súborov z jedného disku/užívateľskej oblasti na druhý disk/užívateľskú oblasť je priebehom takmer identické s kopírovaním súborov. Rozdielom je, že po skopírovaní súboru na cieľový disk sa súbor zo zdrojového disku zmaže. Pochopiteľne, líši sa ešte vypisovanými textami Move/Moving.
Ak má zdrojový súbor nastavený niektorý z atribútov, pred zmazaním je užívateľ požiadaný o potvrdenie zmazania (viď ďalej).
E - Erase file(s) (Zmazanie súboru(ov))
Ak sú označené nejaké súbory, bude sa mazať táto skupina súborov, inak sa zmaže iba aktuálny súbor.
Do informačného riadku sa vypíše Erase "A00:12345678.123" ? Y/N (pri mazaní iba aktuálneho súboru), resp. Erase X file(s) ? Y/N (pri mazaní skupiny označených súborov) a očakáva sa potvrdenie klávesom Y.
Po potvrdení sa začne mazanie a pre každý mazaný súbor sa vypisuje do informačného riadku Erasing "A00:12345678.123".
Ak má mazaný súbor nastavený niektorý z atribútov, pred zmazaním je užívateľ požiadaný o potvrdenie zmazania alebo vynechanie tohto súboru (viď ďalej).
V - View file (Zobrazenie obsahu súboru)
TODO
O - Compare two files (Porovnanie dvoch súborov)
TODO
Potvrdzovanie prepísania/zmazania súboru
Pri kopírovaní alebo presúvaní súboru môže nastať situácia, že cieľový súbor už existuje. V tom prípade sa nad informačný riadok vypíše výzva Exists > 1:Repl 2:ReplAll 3:Skip 4:SkipAll a užívateľ môže potvrdiť prepísanie súboru (Repl) alebo tento súbor vynechať (Skip). Ak užívateľ použije voľbu s *All, bude sa jeho rozhodnutie týkať všetkých ďalších súborov, ktoré sa kopírujú/presúvajú a na cieľovom disku existujú.
Naviac môže nastať situácia, že cieľový súbor, ktorý sa má prepísať, má nastavený niektorý z atribútov. V tomto prípade sa nad informačný riadok vypíše výzva Attrs RS > 1:Repl 2:ReplAll 3:Skip 4:SkipAll, kde RS zodpovedá atribútom cieľového súboru, ktorý sa má prepísať. Opäť môže užívateľ potvrdiť prepísanie súboru alebo jeho vynechanie, prípadne toto svoje rozhodnutie nechať aplikovať na všetky ďalšie súbory s rovnako nastavenými atribútmi.
Pri premenovaní alebo duplikovaní aktuálneho súboru môže nastať rovnaká situácia, ako bolo popísané v predošlom odstavci. Nad informačný riadok sa ale vypíše Replace existing file Y/N? a užívateľ musí potvrdiť prepísanie.
Ak má naviac existujúci cieľový súbor nastavený niektorý z atribútov, užívateľ musí dodatočne potvrdiť prepísanie takéhoto súboru, ako už bolo uvedené vyššie.
Pri mazaní súboru, ktorý má nastavený niektorý z atribútov, sa nad informačný riadok vypíše výzva Attrs RS > 1:Era 2:EraAll 3:Skip 4:SkipAll, kde RS zodpovedá atribútom mazaného súboru, ktorý sa má zmazať. Užívateľ môže potvrdiť zmazanie súboru (Era) alebo tento súbor vynechať (Skip). Ak užívateľ použije voľbu s *All, bude sa jeho rozhodnutie týkať všetkých ďalších súborov, ktoré sa majú zmazať.
Chybové hlásenia
CPM 2.2 poskytuje len obmedzený spôsob reagovania na systémové, či diskové chyby. Ak nastane chyba, obvykle na najnižšej úrovni, BDOS danú chybu priamo vypíše do konzoly a pre zamedzenie prípadného poškodenia disku sa odporúča systém reštartovať stlačením Ctrl+C.
Vypísaná chyba má tvar Bdos Err On d: error, kde d je písmeno disku, na ktorom sa problém vyskytol, a error môže byť:
- Select - pokus o výber disku, ktorý neexistuje
- File R/O - zápis do súboru iba na čítanie (read only)
- R/O - zápis na disk, ktorý bol systémom označený ako R/O
- Bad Sector - chyba pri prístupe na disk
Za bežných okolností by pri používaní File Commandera prvé 3 nemali nastať. Posledná nastane obvykle pri fyzickom poškodení disku.
Ak sa vyskytne chyba pri volaní služby BDOSu, teda daná služba vráti chybový kód, File Commander sa pokúsi identifikovať túto chybu a vypíše ju nad informačný riadok v tvare !!! error on drive d: !!!, kde error môže byť:
- Disk full - na disku už nie je voľné miesto
- Directory full - v adresári už nie je voľné miesto
- Fatal error - všeobecná chyba
Ak ku chybe došlo v priebehu zápisu, daný súbor pravdepodobne nebude na cieľovom disku kompletný. Vo všetkých prípadoch File Commander čaká na stlačenie nejakého klávesu, zavolá službu pre inicializáciu diskového systému a "reštartuje sa".
Konfiguračný súbor
Vzhľadom na to, že operačný systém CP/M nedefinuje jednoznačne vlastnosti vstupu z konzoly a výstupu na konzolu, súčasťou programu FC.COM je aj konfiguračný súbor FC.CFG, v ktorom je možné zadefinovať ovládacie klávesy a spôsob "ovládania" výstupu na konzolu. Konfiguračný súbor môže obsahovať definície pre rôzne terminály.
Po spustení programu sa konfiguračný súbor hľadá najprv na aktuálnom disku, a ak sa nenájde, hľadá sa na disku A:. To znamená, že ak máme program FC na disku A: a aktuálnym diskom je napr. disk C:, môžeme program spustiť nasledovne C>A:FC a program si konfiguračný súbor nájde na disku A:.
Konfiguračný súbor je bežný textový súbor rozdelený do sekcií a každá sekcia popisuje definície pre jeden terminál. Začiatok sekcie predstavuje riadok obsahujúci názov terminálu uzavretý v hranatých zátvorkách. Koniec sekcie predstavuje začiatok novej sekcie alebo skutočný koniec súboru.
Obsahom sekcie je zoznam parametrov a ich hodnôt v tvare parameter = hodnota. Každý parameter s jeho hodnotou musia byť na samostatnom riadku. Všetky hodnoty parametrov sú čísla v šestnástkovej sústave, teda páry šestnástkových číslic bez prefixu i postfixu.
Konfiguračný súbor môže kdekoľvek obsahovať prázdny alebo komentárový riadok. Riadok s komentárom začína bodkočiarkou a je, rovnako ako prázdny riadok, ignorovaný.
V nasledujúcej tabuľke sú uvedené všetky parametre, ktoré sa očakávajú pre každý terminál. Ak terminál nepodporuje niektorý z nepovinných parametrov, dané parametre musia mať hodnotu 00.
| Parameter | Význam |
|---|---|
| Definície a escape sekvencie pre výstup na konzolu | |
| upper-case-cout | Hodnota 01 určuje, že terminál dokáže zobrazovať iba veľké písmená. Hodnota 00 určuje, že terminál dokáže zobrazovať malé aj veľké písmená. |
| characters-per-row | Počet znakov na riadok (povinné). |
| rows-per-screen | Počet riadkov na obrazovke (povinné). |
| set-cursor-position | Escape sekvencia pre nastavenie pozície kurzora (povinné, max. 8 bytov).
Musí obsahovať aliasy `row` a `col`, ktoré určujú, kde sa v escape sekvencii nachádzajú parametre riadka a stĺpca. |
| erase-screen | Escape sekvencia pre zmazanie obrazovky (povinné, max. 8 bytov). |
| hide-cursor | Escape sekvencia pre skrytie kurzora (max. 8 bytov). |
| show-cursor | Escape sekvencia pre zobrazenie kurzora (max. 8 bytov). |
| bell | Escape sekvencia pre pípnutie (max. 3 byty). |
| print-normal | Escape sekvencia pre výpis normálnym písmom (neinverzne) (max. 8 bytov). |
| print-inverse | Escape sekvencia pre výpis inverzným písmom (max. 8 bytov). |
| Vstup z konzoly - kódy funkčných klávesov (vždy 1 byte) | |
| enter | Potvrdenie vstupu pri zadávaní textu. |
| cursor-left | Prechod na predošlý stĺpec v zozname súborov.
Pri editácii v riadku zmazanie znaku pred kurzorom. |
| cursor-right | Prechod na ďalší stĺpec v zozname súborov. |
| cursor-up | Prechod na predošlý súbor v zozname. |
| cursor-down | Prechod na ďalší súbor v zozname. |
| cursor-home | Prechod na prvý súbor v zozname. |
| cursor-end | Prechod na posledný súbor v zozname. |
| escape | Ukončenie vstupu pri zadávaní textu.
Ukončenie operácie, ak sa čaká na reakciu užívateľa. |
| delete-char | Pri editácii v riadku zmazanie znaku pred kurzorom. |
| clear-line | Zmazanie editovaného riadku. |
| switch | Prepínanie sa medzi ľavým a pravým panelom. |
| Kódy znakov pre vykreslenie panelov | |
| top-horizontal-line-character | znak pre hornú horizontálnu čiaru |
| middle-horizontal-line-character | znak pre strednú horizontálnu čiarku |
| bottom-horizontal-line-character | znak pre dolnú horizontálnu čiarku |
| left-vertical-line-character | znak pre ľavú vertikálnu čiaru |
| middle-vertical-line-character | znak pre strednú vertikálnu čiaru |
| right-vertical-line-character | znak pre pravú vertikálnu čiaru |
| top-left-corner-character | znak pre ľavý horný roh |
| top-right-corner-character | znak pre pravý horný roh |
| bottom-left-corner-character | znak pre ľavý dolný roh |
| bottom-right-corner-character | znak pre pravý dolný roh |
| left-edge-cross-character | znak pre ľavú vertikálnu hranu s dvojitou odbočkou vpravo |
| right-edge-cross-character | znak pre pravú vertikálnu hranu s dvojitou odbočkou vľavo |
| top-edge-cross-character | znak pre hornú horizontálnu hranu s dvojitou odbočkou dolu |
| top-middle-edge-cross-character | znak pre hornú horizontálnu hranu s jednoduchou odbočkou dolu |
| bottom-edge-cross-character | znak pre dolnú horizontálnu hranu s dvojitou odbočkou hore |
| bottom-middle-edge-cross-character | znak pre dolnú horizontálnu hranu s jednoduchou odbočkou hore |
| file-mark-character | znak predstavujúci označenie súboru |
| file-cursor-characters | 2 znaky predstavujúce súborový kurzor |
Príklad definície pre PMD 85:
[PMD85] ; output console definitions and escape sequences upper-case-cout = 00 characters-per-row = 30 rows-per-screen = 1C set-cursor-position = 1B row+20 col+20 erase-screen = 1F hide-cursor = 00 show-cursor = 00 bell = 07 print-normal = 1A print-inverse = 1A 1D ; input console function key codes (always 1 byte!) cursor-left = 08 cursor-right = 18 cursor-up = 1A cursor-down = 19 cursor-home = 0C cursor-end = 03 enter = 0D delete-char = 7F clear-line = 1B escape = 17 switch = 1E ; characters to draw panels top-horizontal-line-character = 2D middle-horizontal-line-character = 2D bottom-horizontal-line-character = 2D left-vertical-line-character = 7C middle-vertical-line-character = 7C right-vertical-line-character = 7C top-left-corner-character = 2B top-right-corner-character = 2B bottom-left-corner-character = 2B bottom-right-corner-character = 2B left-edge-cross-character = 2B right-edge-cross-character = 2B top-edge-cross-character = 2B top-middle-edge-cross-character = 2B bottom-edge-cross-character = 2B bottom-middle-edge-cross-character = 2B file-mark-character = 21 file-cursor-characters = 3E 3C
Na stiahnutie
- fc10.zip - archív obsahujúci zdrojové texty, preloženú binárku a obrazy diskov P32, DZ8 a NCB
X-Category:Softvér X-Category:Download X-Category:Systémové programy
