MOUNT
Z PMD 85 Infoserver
(Nový článok) |
(infobox) |
||
Riadok 1: | Riadok 1: | ||
{{VelkyNadpis|MOUNT}} | {{VelkyNadpis|MOUNT}} | ||
- | [[Obrázok:MOUNT_1.png| | + | {{Infobox Software |
- | [[ | + | | name = MOUNT |
+ | | screenshot = [[Obrázok:MOUNT_1.png|center|288px]] | ||
+ | | caption = spustený program MOUNT | ||
+ | | developer = '''RomBorSoft''' | ||
+ | | author = Roman Bórik | ||
+ | | version = {{Príkaz|MOUNT}}, v1.0 (2024) | ||
+ | | operating_system = CP/M | ||
+ | | language = angličtina | ||
+ | | download = '''[[download:166|mount10.zip]]''' - archív obsahujúci zdrojové texty, preloženú binárku a obrazy diskov P32, DZ8 a NCB | ||
+ | }} | ||
__TOC__ | __TOC__ | ||
Riadok 9: | Riadok 18: | ||
== Spustenie == | == Spustenie == | ||
+ | |||
+ | [[Obrázok:MOUNT_2.png|thumb|Výber terminálu po spustení programu MOUNT]] | ||
+ | |||
Program možno spustiť obvyklým spôsobom zadaním jeho mena. Za názvom programu môže nasledovať hviezdička {{Kbd|*}} alebo názov terminálu. | Program možno spustiť obvyklým spôsobom zadaním jeho mena. Za názvom programu môže nasledovať hviezdička {{Kbd|*}} alebo názov terminálu. | ||
Aktuálna verzia
MOUNT | |
spustený program MOUNT | |
Autor: | Roman Bórik |
---|---|
Vývojár: | RomBorSoft |
Verzia: | MOUNT, v1.0 (2024) |
Operačný systém: | CP/M |
Lokalizácia: | angličtina |
Download: | mount10.zip - archív obsahujúci zdrojové texty, preloženú binárku a obrazy diskov P32, DZ8 a NCB |
Obsah |
CP/M program MOUNT.COM je ekvivalentom k utilite CD.COM. Umožňuje teda priradiť do jednotlivých virtuálnych mechaník PMD 32-SD obrazy diskov, avšak, na rozdiel od utility CD.COM, poskytuje jednoduché užívateľské rozhranie. Je možné pohodlne prechádzať po adresárovej štruktúre na SD karte a tak nájsť a zvoliť požadovaný obraz disku.
Spustenie
Program možno spustiť obvyklým spôsobom zadaním jeho mena. Za názvom programu môže nasledovať hviezdička * alebo názov terminálu.
A>MOUNT A>MOUNT * A>MOUNT názov_terminalu
Ak sa program spustí bez parametrov použije sa konfigurácia prvého terminálu zadefinovaného v konfiguračnom súbore.
Ak sa program 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 programu použiť.
Ak sa program spustí s názvom terminálu, program sa pokúsi v konfiguračnom súbore nájsť definíciu pre požadovaný terminál a použije ju.
Užívateľské rozhranie
Užívateľské rozhranie je veľmi jednoduché a je rozdelené do piatich sekcií:
- titulok programu a jeho verzia
- aktuálna cesta na SD karte a maska prípony zobrazovaných súborov
- aktuálne priradenie obrazov diskov vo virtuálnych mechanikách
- zoznam súborov
- menu / editačný/informačný riadok
Aktuálna cesta na SD karte
Aktuálna cesta na SD karte je zobrazená v druhej sekcii obrazovky tak, že je uvedená textom SD:/. Zmena cesty sa robí tak, ako je to obvyklé v súborových manažéroch. V zozname súborov sa kurzorom postavíme na názov adresára (ten je uzavretý v hranatých zátvorkách) a vyberieme ho klávesom enter. Meno nadradeného adresára je reprezentované dvoma bodkami, teda je zobrazený ako [..]. Ak by dĺžka celkovej cesty presahovala 63 znakov, program zmenu adresára nedovolí a vypíše chybové hlásenie.
Po zmene adresára sa aktualizuje zobrazená cesta a načíta sa nový zoznam súborov v danom adresári. Ak by sa cesta k aktuálnemu adresáru nevošla na šírku obrazovky, cesta bude zo začiatku skrátená a na začiatku cesty budú zobrazené tri bodky (tzv. ellipsis).
Maska prípony zobrazovaných súborov
U každého systému je obvyklá a zadefinovaná nejaká predvolená prípona súboru obrazu disku. Táto prípona po spustení programu predstavuje masku, na základe ktorej sa v zozname súborov zobrazia iba súbory s danou príponou. Aktuálna prípona je zobrazená v druhej sekcii obrazovky tak, že je uvedená textom Ext:.
Priradenie obrazov diskov do virtuálnych mechaník
V tretej sekcii sa zobrazujú aktuálne priradené obrazy diskov v jednotlivých mechanikách. Prvé písmeno disku a počet diskových jednotiek závisí od konkrétneho systému a jeho definičnej tabuľky pre PMD 32-SD. Obvykle sú 4 a to A:, B:, C: a D:.
Priradenie obrazu disku do konkrétnej mechaniky sa robí výberom súboru v zozname súborov klávesom enter. V informačnom riadku sa následne zobrazí výzva Choose drive: a program očakáva zadanie písmena disku, do ktorého sa má obraz vložiť. Klávesom 0 možno voľbu opustiť. Ak by dĺžka celkovej cesty vrátane mena súboru presahovala 63 znakov, program zmenu priradenia nedovolí a vypíše chybové hlásenie.
Po úspešnom priradení obrazu disku do mechaniky sa zobrazí nové meno súboru vrátane cesty. Ak by sa celá cesta k danému súboru nevošla na šírku obrazovky, cesta bude zo začiatku skrátená a na začiatku cesty budú zobrazené tri bodky (tzv. ellipsis).
Zoznam súborov
Štvrtá sekcia obrazovky zobrazuje zoznam adresárov a súborov v aktuálnom adresári. Zobrazujú sa iba súbory, ktorých prípona zodpovedá maske prípony. Zoznam je zoradený abecedne (ASCII) a adresáre sú vždy na začiatku zoznamu.
Podľa konfigurácie terminálu môže byť adresár/súbor, na ktorom stojí kurzor, označený inverzným zobrazením alebo znakom > pred menom adresára/súboru. Pohyb po zozname je možný šiestimi definovateľnými klávesmi (viď konfiguračný súbor):
- hore / dole - predošlý / nasledujúci súbor
- vľavo / vpravo - predošlá / nasledujúca stránka súborov
- home / end - prvý / posledný súbor v zozname
Ako už bolo spomenuté, výber adresára/súboru sa robí klávesom enter.
Menu / informačný/editačný riadok
V poslednej sekcii obrazovky je riadok Menu. Tento riadok sa zmení na editačný, ak sa od užívateľa vyžaduje nejaký vstup. Zároveň sa do tohto riadku zobrazujú chybové hlásenia.
Menu obsahuje nasledujúce položky. Príslušná akcia sa vyvolá stlčením daného číselného klávesu.
- 1:Eject - Vysunutie obrazu disku z mechaniky.
V informačnom riadku sa zobrazí výzva Choose drive: a program očakáva zadanie písmena disku, z ktorého sa má obraz vysunúť. Klávesom 0 možno voľbu opustiť. Ak v mechanike nie je vložený žiadny obraz disku, je v sekcii so zoznamom aktuálne priradených obrazov diskov za písmenom disku zobrazený text <Empty>. - 2:WP - Zmena príznaku Write protect (zakázaný zápis) pre zvolený disk.
V informačnom riadku sa zobrazí výzva Choose drive: a program očakáva zadanie písmena disku, u ktorého sa má zmeniť príznak WP. Klávesom 0 možno voľbu opustiť. Ak je na disk zakázaný zápis, je za písmenom disku znak !. Ak je zápis povolený, je za písmenom disku obvyklá :. - 3:Create - Vytvorenie nového obrazu disku.
Program si vyžiada zadanie mena obrazu disku. Ak nie je zadaná prípona súboru, pridá sa predvolená prípona. Ak je zadaná aj prípona, tá musí byť zadefinovaná v súbore images.cfg v koreňovom adresári SD karty. Dĺžka mena súboru aj s príponou je síce 31 znakov, ale celá cesta k súboru od koreňa môže mať maximálne 63 znakov! Preto to netreba preháňať. Vytvorenie napr. P32 obrazu disku môže trvať asi 20 sekúnd, takže je často účelnejšie si obrazy diskov pripraviť dopredu na PC. - 4:Ext - Zmena masky prípony pre zobrazovaný zoznam súborov.
Na väčšine systémov sa používa iba jeden typ obrazu disku. Ak však systém podporuje rôzne formáty diskov, je možné klávesom 4 zmeniť masku prípony pre zobrazované súbory. Maska prípony môže mať maximálne 3 znaky. Pri zadávaní je možné zadať aj zástupné znaky * a ?. - 0:Quit - Ukončenie programu
Naviazanie na ovládač PMD 32-SD
Rovnako, ako v prípade utility CD.COM, program MOUNT musí poznať adresy rutín ovládača PMD 32-SD. Tie sa získavajú dvojakým spôsobom. Buď ich program nájde v Definičnej tabuľke PMD 32-SD za BIOSom, alebo sa pokúsi zistiť, o aký typ počítača ide a použije pevne definované adresy.
Definičná tabuľka PMD 32-SD
Definičná tabuľka PMD 32-SD pre priame volanie rutín ovládača PMD 32 musí byť umiestnená za skokovými vektormi na služby BIOSu. Tabuľka môže byť v dvoch variantoch (parameter T), podľa umiestnenia samotných adries služieb PMD 32-SD.
Parameter D určuje číslo prvej jednotky, ktorá v systéme prislúcha PMD 32-SD (0=A, 1=B, ...). Parameter N určuje počet využitých diskov z PMD 32-SD (1 až 4). Súčet prvých 4 bytov musí byť 0 modulo 256.
Byte parametrov tak má hodnotu T*128+N*16+D.
- T=0 - Dĺžka tabuľky 27 bytov. Tabuľka 9 vektorov služieb ovládača PMD 32-SD je umiestnená za adresou stránkovania.
; Definičná tabuľka PMD 32-SD DB "32" ; značka pre vyhľadanie tabuľky DB N*16+D ; byte parametrov DB CRC ; CRC = 256 - ("3" + "2" + (N * 16 + D)) DB "EXT" ; predvolená prípona súboru - 3 znaky presne! DW PAGING ; adresa stránkovacej rutiny; 0, ak stránkovanie nie je potrebné ; Pre T=0 nasleduje 9 vektorov služieb ovládača PMD 32-SD DW ReadByte ; čítanie bytu z PMD 32-SD DW SendCommand ; odoslanie povelu DW SendByte ; odoslanie bytu DW SndCrcRdAckErr ; odoslanie CRC a prijatie ACK a ERR DW ReadAckErr ; prijatie ACK a ERR DW WaitErrT15 ; čakanie na chybový kód 15s DW WaitErrT ; čakanie na chybový kód zvolený čas DW SndCrcRdAck ; odoslanie CRC a prijatie ACK DW ReadCheckCrc ; prijatie a kontrola CRC
- T=1 - Dĺžka tabuľky 11 + 18 bytov. Tabuľka 9 vektorov služieb ovládača PMD 32-SD je umiestnená na inom mieste. Za adresou stránkovania je umiestnená adresa, kde sa nachádza tabuľka 9 vektorov služieb ovládača PMD 32-SD.
; Definičná tabuľka PMD 32-SD DB "32" ; značka pre vyhľadanie tabuľky DB 128+N*16+D ; byte parametrov DB CRC ; CRC = 256 - (("3" + "2" + (128 + N * 16 + D)) and 255) DB "EXT" ; predvolená prípona súboru - 3 znaky presne! DW PAGING ; adresa stránkovacej rutiny; 0, ak stránkovanie nie je potrebné ; Pre T=1 nasleduje iba adresa tabuľky vektorov DW SD32 ; adresa vektorov - tabuľka SD32 je na inom mieste
; Niekde na inom mieste je tabuľka vektorov. SD32: DW ReadByte ; čítanie bytu z PMD 32-SD DW SendCommand ; odoslanie povelu DW SendByte ; odoslanie bytu DW SndCrcRdAckErr ; odoslanie CRC a prijatie ACK a ERR DW ReadAckErr ; prijatie ACK a ERR DW WaitErrT15 ; čakanie na chybový kód 15s DW WaitErrT ; čakanie na chybový kód zvolený čas DW SndCrcRdAck ; odoslanie CRC a prijatie ACK DW ReadCheckCrc ; prijatie a kontrola CRC
Aktualizovaná verzia systému Mikros pre PMD 85 má už upravený BIOS a obsahuje aj túto definičnú tabuľku.
Zistenie typu počítača
Ak sa za BIOSom nenájde definičná tabuľka PMD 32-SD, na základe testov stránkovania pamäte RAM vs ROM sa program pokúsi zistiť, na akom počítači bol spustený - PMD 85-2A / PMD 85-3 / Consul 2717 / NCB85. Podľa toho sa potom používajú správne adresy rutín ovládača PMD 32-SD. Zároveň sa pripraví predvolená prípona:
- P32 - pre PMD 85
- DZ8 - pre Consul 2717
- NCB - pre NCB85
Na iných počítačoch nebude, pochopiteľne, program fungovať.
Konfiguračný súbor
Vzhľadom na to, že systém CP/M nedefinuje jednoznačne vlastnosti vstupu z konzoly a výstupu na konzolu, súčasťou programu MOUNT.COM je aj konfiguračný súbor MOUNT.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 MOUNT na disku A: a aktuálnym diskom je napr. disk C:, môžeme program spustiť následovne C>A:MOUNT 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 | Výber položky v zozname. |
cursor-left | Prechod na predošlú stránku zoznamu súborov. |
cursor-right | Prechod na nasledujúcu stránku zoznamu súborov. |
cursor-up | Prechod na predošlý súbor v zozname. |
cursor-down | Prechod na nasledujúci súbor v zozname. |
cursor-home | Prechod na začiatok zoznamu súborov. |
cursor-end | Prechod na koniec zoznamu súborov. |
escape | Opustenie zadávania mena súboru alebo prípony. |
delete
backspace | Zmazanie znaku pred kurzorom. |
clear-line | Zmazanie editovaného riadku. |
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!) enter = 0D cursor-left = 08 cursor-right = 18 cursor-up = 1A cursor-down = 19 cursor-home = 0C cursor-end = 03 escape = 17 delete = 7F backspace = 02 clear-line = 1B
Na stiahnutie
- mount10.zip - archív obsahujúci zdrojové texty, preloženú binárku a obrazy diskov P32, DZ8 a NCB