##################### ### Systém MB-02 ### ##################### Diskový systém MB-02 sa skladá z dvoch častí: zo samotného DOSu (BS-dos) a z opravenej a upravenej romky (BS-rom). Tento popis sa konkrétne týka verzií BS dos 306 a BS rom 118. Samotná romka sa dá použiť aj samostatne - napáliť do EPROM (alebo nahrať do RAM od nuly) a dať si ju namiesto pôvodnej. ################## ### BS dos 306 ### ################## Každý disk (v základnom režime) obsahuje 256 adresárov. Tieto adresáre sa dajú logicky usporiadať do ľubovolnej štruktúry (teda nie len do stromu!). Jediným obmedzením je, že každý adresár môže patriť naraz iba do jedného nadadresára, ale zato jeho nadadresárom môže byť aj on sám, prípadne s niekoľkými ďalšími adresármi môže tvoriť cyklickú štruktúru ! V každom adresári môže byť ľubovoľne veľký počet súborov, ale z technických dôvodov je tento počet obmädzený na 65279 súbov pre jeden adresár. Čiže na jednom disku môže byť teoreticky celkovo až 256*65279 súborov... (256*65279 = 16711424) Operačný systém okrem štandartných diskových služieb ešte umožňuje pomocou disku emulovať bežnú magnetofónovú pásku či kazetu. Lenže páska ma na rozdiel od diskety vždy definovanú polohu - miesto v ktorom je práve pretočená a keď napíšete load bez mena, nahrá sa prvý program na ktorý počítač narazí. Preto bol vytvorený špeciálny ukazovateľ nazývaný "load-kurzor" ktorý ukazuje miesto, na ktoré je "pretočená" disketou emulovaná páska. Disketa teda predstavuje 256-stopovú (stopa=adresár) magnetickú pásku ktorá je pretočená tak, že program, na ktorý ukazuje "load-kurzor" sa bude ako prvý nahrávať pri zadaní príkazu LOAD bez mena. Základné páskové (alebo kazetové) príkazy LOAD, SAVE, VERIFY, MERGE normálne volajú romkové load-save rutiny #4c2 a #556. Simulácia pásky pomocou disku v týchto príkazoch nastáva až v spomenutých load-save rutinách. Preto všetky programy, ktoré korektne volajú romku (#4c2 až #4c6 pre save a #556 až #562 pre load) budú automaticky bez akýchkoľvek úprav fungovať aj s diskom. Nové príkazy basicu ------------------- Všade tam kde sa očakáva číslo, je možné písať akýkoľvek výraz, ktorý má číselný výsledok. Tiež všade tam, kde sa vyžaduje dáky reťazec alebo meno, možno písať akýkoľvek výraz reťazcového charakteru. Ak je nejaký parameter príkazu napísaný v znamená to že je nepovinný a môžete ho vynechať. 1. Príkazy pre nastavovanie cesty USR 15522 - presmerovanie príkazov LOAD,SAVE,VERIFY,MERGE na magnetofón (magnetofón bude aktuálnym zariadním). USR 15524 - presmerovanie príkazov LOAD,SAVE,VERIFY,MERGE na disk (disk bude aktuálnym zariadením). @ číslo @ reťazec Nastavenie aktuálneho disku. Reťazec je meno diskety, ale hľadanie disku podľa mena nie je implementované. Ak číslo=0 tak sa load-save rutinky presmerujú na kazetu (presne ako USR 15522) Ak sa má vykonať @ s nenulovým parametrom, tak okrem nastavenia danej mechaniky sa ešte vykoná USR 15524 - load-save rutinky sa presmerujú na disk. $ číslo $ reťazec Nastavenie aktuálneho adresára na aktuálnom disku. Reťazec je meno adresára, porovnáva sa iba prvých 10 znakov. ` číslo ` reťazec Nastavenie load-kurzora na daný súbor. [znak ` je libra] Ĺubovoľná kombinácia týchto troch príkazov tvorí parameter "cesta" v ďalších príkazoch. Vyhodnocuje sa zľava do prava. Napr: @ 3 $ 5 @ 8 $22 $"bubu" ` "ahoj" znamená, že na disku zasunutého do mechniky 3 sa nastaví aktuálny adresár 5, na disku 8 sa nastaví adresár 22, potom sa nájde prvý adresár po 22 ktorý má meno "bubu" a load-kurzor sa v tomto adresári nastaví na súbor "ahoj". Postupnosť týchto príkazov môže byť ukončená bodkočiarkou (ak to syntax dákeho príkazu potrebuje). 2. Príkazy pre manipuláciu s disketou: .FORMAT Zmazanie úplne všetkých súborov a adresárov z diskety. Disketu je ešte možné obnoviť, pokiaľ sa nespraví SAVE. Pred samotným zmazaním sa ešte vypíše dotaz, či naozaj chcete tento príkaz použiť. Zmazané dáta sa ešte dajú obnoviť príkazom UNERASE. .ERASE data Logické zmazanie súborov. Súbory je ešte možné obnoviť. Fyzicky sa zmažú až vtedy, keď sa na disketu niečo sejvne. Zmazanie súboru s číslom 0 znamená zmazanie celého, aj neprázdneho adresára. Pred zmazaním neprázdneho adresára sa ešte vypíše dotaz, či naozaj chcete tento adresár zmazať - podobne ako v príkaze .FORMAT .UNERASE data Obnovenie zmazaných súborov alebo adresárov. Číslo 0 znamená obnovenie aktuálneho adresára. Pozor, obnovuje sa len samotný adresár, súbory v ňom je treba obnoviť ručne. Týmto príkazom je možné obnovovať súbory a adresáre aj po zmazaní celej diskety príkazom FORMAT - a to tak, že najprv treba obnoviť adresár ako taký (.UNERASE 0) a potom všetky potrebné súbory v ňom. Pozor, súbory sú zdanlivo obnovené už pri obnovení adresára, avšak samotne dátové sektory nie sú ešte obnovené, preto je potrebné na ne aplikovať príkaz UNERASE. Súbory, o ktoré nemáte záujem, možete zmazať príkazom ERASE, aby v adresári nezavadzali. .RENAME číslo,reťazec Premenovanie súboru "číslo" na nové meno "reťazec". Ak číslo=0 tak sa bude meniť meno adresára. Pozor ! Meno adresára môže byť až 26-znakové. .RENAME číslo,číslo Zmena začiatočnej adresy daného súboru. Zmena adresy nultého súboru (to je akože celý adresár) znamená definíciu, kam má tento adresár v stromovej štruktúre patriť (je to číslo jemu nadradeného adresára). .MOVE číslo1,číslo2 Presunutie súboru "číslo1" do adresára "číslo2". Ak číslo1=0 tak sa bude presúvať celý adresár. .MOVE číslo;data Presunutie viacerých súborov špecifikovaných v položke "data" do adresára "číslo". Poznámka: Presunutie súboru do toho istého adresára znamená iba jeho presun na koniec tohto adresára. .PRESS Utrasenie aktuálneho adresára. .KILL Zrušenie vnútorných CACHE pamätí. Tento príkaz prakticky nie je potrebný, pretože operačný systém si vykonáva správu vnútorných CACHE pamätí plne automaticky. .SEARCH Hľadanie daného reťazca na diskete. Prehľadávajú sa všetky mená adresárov (iba prvých 10 znakov) a mená všetkých existujúcich súborov. Výkričník znamená, že sa budú prehľadávať aj mená zmazaných súborov a voľných adresárových položiek. Prehľadávanie začína aktuálnym adresárom, pokračuje až po adresár 255, a potom zase od nultého až po aktuálny. CAT <.> <číslo> COPY <.> <číslo> Katalóg aktuálneho adresára alebo adresára daného číslom. Výkričník znamená výpis aj zmazaných súborov a voľných adresárových položiek. Bodka znamemá výpis nie od začiatku adresára, ale od aktuálnej pozície load-kurzora. Poznámka: Špecifikácia súborov údajom "data" má takýto tvar: položka <,položka> <,položka> <,položka> ... kde položka má takýto tvar: číslo1 > alebo: TO <číslo2> kde číslo1 znamená začiatok intervalu (nezadané znamená všetky súbory od začiatku adresára a číslo2 znamená koniec intervalu (nezadané znamená súbory až po koniec adresára). Samotné číslo1 bez spojky TO predstavuje iba jeden špecifikovaný súbor (akože interval "číslo1 TO číslo1"). Napr (v adresári je 32 súborov): TO 3 , 10, 20 , 13 TO 15 , 28 TO znamená tieto súbory: 1,2,3,10,20,13,14,15,28,29,30,31 Položka znamená lokálne nastavenie inej mechaniky v danom príkaze a začína identifikačným znakom '#' za ktorým nasleduje číselný výraz ktorého výsledná hodnota identifikuje danú mechaniku. Za týmto výrazom môže na oddelenie nasledujúceho kontextu nasledovať čiarka (ak je to potrebné a vhodné). Napríklad nech 4 je aktuálna mechanika. Potom príkaz CAT #2,66 vypíše katalóg 66-teho adresára na disku v mechanike 2. 3. Príkazy pre manipuláciu s dátami: SAVE <*> <číslo> meno SAVE <*> <číslo> meno SCREEN$ SAVE <*> <číslo> meno DATA var() SAVE <*> <číslo> meno CODE adresa,dĺžka LOAD <*> <číslo> LOAD <*> <číslo> SCREEN$ LOAD <*> <číslo> DATA var() LOAD <*> <číslo> CODE > MERGE <*> <číslo> VERIFY <*> <číslo> VERIFY <*> <číslo> SCREEN$ VERIFY <*> <číslo> DATA var() VERIFY <*> <číslo> CODE > Bežné kazetové príkazy. Číslo znamená nastavenie load-kurzora - je úplne rovnocenné položke "`" v parametri "cesta". Všetky tieto príkazy pracujú v aktuálnom adresári, alebo v adresári špecifikovanom v ceste (ktorý sa tým stáva aktuálny). SAVE vždy nahráva súbory na koniec adresára. Výkričník a hviezdička na začiatku príkazu sa ignorujú - kôli syntaxi príkazov "LOAD !" v basicu 128 a "LOAD *" v D80. Všetky príkazy VERIFY skutočne porovnávajú obsah pamäti a v prípade nezhody o tom vypíšu riadne chybové hlásenie. NEW parameter Nahratie a spustenie súboru špecifikovaného parametrom. Ak je parameter číslo tak sa nahrá daný spustiteľný súbor z aktuálneho adresára. Ak je parameter reťazec tak sa hľadá súbor s takýmto menom v aktuálnom adresári. Ak sa nenájde v aktuálnom adresári, bude sa hľadať v nultom adresári. Ak sa nenájde ani tam, tak chyba. Spustiteľné súbory sú alebo "bytes" alebo "Program". Ak je daný súbor basic tak sa normálne nahrá a spustí (ak má nejaké LINE) ako príkazom LOAD. Ak je daný súbor typu "Bytes" tak sa vykoná nasledovná činnosť: Nech je AAA začiatočná adresa súboru. Potom sa spraví: IF AAA >= #5d00 THEN CLEAR AAA-1 LOAD parameter CODE AAA CONTINUE AAA Ak parameter nie je, tak sa vykoná klasický basicový NEW. 4. Nové basicové funkcie Cieľom týchto funkcií je poskytnúť programom v basicu informácie, ktoré by boli pre basic inak neprístupné (bez pomoci strojáku). Jedná sa o informácie o diskete, o jednotlivých adresároch, o súboroch v týchto adresároch,... FN ? Vráti číslo verzie systému. FN @ Vráti číslo aktuálneho drajvu. FN $ Vráti číslo aktuáleho adresára. FN ` Vráti polohu load-kurzora. [libra = SS+X] FN # Vráti počet súborov v aktuálnom adresári. FN % Vráti počet voľných sektorov na aktuálnom disku. FN * Vráti 32 znakový reťazec v ktorom je adresárová položka obsahujúca informácie o súbore na ktorý ukazuje load-kurzor. Napríklad FN *(7 TO 16) predstavuje meno súboru a FN *(6 TO 22) vráti klasickú magnetofónovú hlavičku tohto súboru. Ak load-kurzor ukazuje mimo adresára, tak funkcia vráti prázdny reťazec. Ak je HI(load-kurzor)=255 (vyšší bajt 255) tak táto funkcia vtedy vráti 32 bajtovú položku obsahujúcu meno diskety. FN (c) Toto je špeciálna funkcia, ktorej výsledok je reťazec obsahujúci celú pamäť od adresy 1 až po 65535. Popis "cdd" copy-disk-disk -------------------------- Tento kopírovací program bol robený špeciálne pre viacdiskové systémy, ale dá sa použiť aj na jednodiskových systémoch. Po zadaní parametrov kopirák načíta do pamäti toľko súborov, koľko sa mu zmestí. Pritom využíva aj priestor obrazovky a priestor nad ramtopom. Po naloadovaní súborov si testuje, či cieľová mechanika je totožná so zdrojovou. Ak nie, hneď začne sejvovať a celú daľšiu činnosť vykonáva samostatne, takže vôbec netreba zasahovať. V prípade, že cieľový disk sa nachádza v tej istej mechanike ako zdrojový, tak kopirák hlásením "Insert dest. disk" vyzve obsluhu, aby vložila cieľový disk. Podobne hlásenie "Insert source disk" znamená, že kopirák chce čítať data zo zdrojovej diskety. Ak treba niečo skopírovať na tej istej diskete, tak disk samozrejme meniť netreba - stačí iba stačiť ENTER. Kopirák si zapamätá, že kopíruje vrámci jednej diskety a potom už o výmenu nežiada. Ak sa kopíruje na dvoch rôznych mechanikách, kopirák počas operácie s jednou mechanikou nechá bežať motor druhej mechaniky, aby sa potom nezdržiaval roztáčaním tohto motora. Špecifikácia súborov v parametroch sa robí presne tak isto ako v príkazoch MOVE a ERASE - iba namiesto spojky TO treba písať apostrof. V prípade, že v zadaných parametroch bude syntaktická chyba, program nezačne kopírovať, ale vypíše HELP-stránku, ktorej súčasťou je aj presný popis syntaxe parametrov. ****************************** ________________________________________________________________ Index 960331163202 Writen by Busy soft