Aj ked mnohi ludia to povazuju za zbytocnost (a hlavne na PeCi), predsa len, virtualny ramdisk je velmi dobra a uzitocna vec. Hlavne pre tych, ktori maju len jednu disketovu mechaniku. Ramdisk pre diskovu jednotku MB-02 s verziami BS-DOS 199 az 308 je tvoreny tymito tromi utilitkami:
ramdrive | ... | rezidentny drajver pre ramdisk |
ramdinit | ... | inteligentna inicializacia po prvej instalacii |
ramdroff | ... | deinstalator ramdisku |
Tieto tri programy umoznuju uzivatelovi pohodlne vytvorit, ziniciazizovat (ak treba), alebo odinstalovat virtualny ramdisk.
Ramdrive je malicky 621 bajtovy drajverik, ktory emulujte virtualny ramdisk,
konfigurovatelny pre rozne rom-banky do maximalnej kapacity 480 kB.
Instalaciou tohto drajvera ziska uzivatel pod cislom drajvu 9
plnohodnotnu virtualnu mechaniku s vlozenou virtualnou disketou s ktorou
mozete robit vsetko to, co aj s realnou disketou. Az na to, ze tuto
virtualnu disketu nemozete vybrat z virtualnej mechaniky. Teda, leda ze
by uzivatel vybral RAMku z obimky, ale to sa nejak zrovna moc neodporuca :-)
Vsetky data sejvnute do ramdisku su pre istotu chranene kontrolnymi sumami,
takze nejake poruchy v udajoch ulozenych v ramdisku su detekovane chybou CRC.
Ako je to mozne, ze 621 bajtov dokaze emulovat disketovu jednotku s uplne
vsetkymi featuresami a moznostami ovladania (basicovymi prikazmi aj
strojakovymi sluzbami po RST #18 a RST #20) ako keby to bola obycajna
realna disketa ? To je velmi jednoduche. System MB-02 je otvorena
architektura s presne definovanymi rozhraniami medzi jednotlivymi
vrstvami systemu a bez problemov taketo cosi umoznuje. Vsetky rutinky na
ovladanie diskety uz v systeme existuju a 621 bajtovy drajver ich
jednoducho povedane pri svojej praci dokaze 'zneuzit'...a tym padom
poskytnut uzivatelovi taky isty komfort ako keby sa jednalo o klasicku
mechaniku. Dokonca aj vsetky oficialne vydane systemove utilitky (napr.
FF17, di, cdd, fi, lendir,...) plne spolupracuju s virtualnym ramdiskom
ako keby to bola proste dalsia realna mechanika. Hadam najzaujimavejsie
je prave FF17 - ramdisk je plne formatovatelny ako klasicka normalna disketa.
Pre instalaciu ramdisku by ste mali mat nabootovany system, BS-DOS
verziu 199 az 308. S inymi verziami nie je funkcia ramdisku zarucena.
Na zaciatku drajvera je mala oblast, kde je ulozena adresa portu a cisla baniek,
ktore urcuju kde bude ramdisk instalovany a ktore banky bude vyuzivat.
Vyzera to nejak takto:
org | #8000 | zaciatok suboru ramdrive | |
jr | install | skok na instalacnu rutinku | |
port | db | #17 | adresa portu na prepinanie baniek |
dos_bnk | db | #61 | banka v ktorej sa nachadza bios & dos |
dat_bnk | db | #64,#65,#66,#67 | banky pre ukladanie datovych sektorov |
db | 0,0,0,0... | nepouzite | |
Cisla baniek musia byt take, ze ked sa dane cislo posle na prepinaci port,
banka sa musi naadresovat s povolenym zapisom. Cislo banky 0 znamena koniec
sekvencie cisel baniek. Baniek moze byt najviac specifikovanych 32. Toto
prinasa so sebou jednu nevyhodu - totiz ze utilitka ramdrive je potom
hardwerovo zavisla - lebo obsahuje konkretne cisla portov a pre kazdy
hardware [pre ine druhy MB-02 diskov] ju treba prekonfigurovat.
Vyssie uvedeny priklad konfiguracie drivera je urceny pre MB-02 vyrobenu u 8BC
s upravenou romkou umiestnenou v banke 0 a samotnym dosom v banke 1, a pre datove sektory su vyuzite
banky 4,5,6 a 7.
Ked mame system nabootovany, drajver nakonfigurovany, staci uz len
spustit drajver prikazom NEW "ramdrive" - drajver sa sam nainstaluje a
zmodifikuje DOS tak, aby poznal novu virtualnu mechaniku.
Prikaz NEW "ramdrive" je vhodne vlozit do suboru autoexe
cim sa zabezpeci ze sa drajver automaticky nainstaluje po nabootovani systemu.
Velmi dolezite: Instalacia drajvera je v podstate len 'napokovanie'
vsetkych obsluznych rutiniek a prislusne modifikacie na systeme. Data v
datovych bankach a ani kontrolne sumy dat sa nainstalovanim drajvera
neinicializuju. Preto je nutne po prvej instalacii drajvera cely ramdisk
najprv pred pouzitim sformatovat. Je to mozne urobit viacerymi sposobmi.
Najefektnejsi sposob je klasicke formatovanie klasickym formatovacom
diskiek FF17, do ktoreho treba vlozit taketo parametre:
Meno | = | RAMDRIVE |
drv | = | 9 |
hdd | = | 0 |
trk | = | 16 |
sec | = | 15 |
Ramdisk v skutocnosti emuluje obojstrannu disketu, ktora ma 16 stop a 15 sektorov na kazdej stope. Nutnost rucneho naformatovania ramdisku je zvolena umyselne, pretoze umoznuje to totiz jednu dolezitu vec - ak uzivatel ma verziu MB-02 s bateriovym zalohovanim obsahu ramky, nieco si sejvne do ramdisku, vypne pocitac, niekedy nabuduce zase zapne, nabootuje system a nainstaluje ramdisk s takou istou konfiguraciou akou mal minule, vsetky data minule sejvnute do ramdisku ostatnu zachovane a uzivatel moze pokracovat v praci s nimi tam, kde minule prestal. Data su chranene kontrolnymi sumami, takze keby sa nejak medzicasom porusili, system pri citani porusenych dat zahlasi CRC error.
Aby ste nemuseli manipulovat formatovacom FF17, mozete na sformatovanie
ramdisku pouzit utilitku ramdinit. Spustite ju prikazom NEW "ramdinit".
Tato utilitka je v podstate to iste ako formatovaci program FF17 avsak je optimalizovana
pre formatovanie ramdisku. Okrem toho je vybavena vlastnostami, ktore formatovanie ramdisku
zjednodusuju a automatizuju, takze uzivatel sa s tym vobec nemusi zaoberat.
Po spusteni si tato utilitka prejde vsetky existujuce mechaniky, a ked zisti,
ze niektora z nich je ramdisk, skontroluje datovu konzistenciu na tomto
ramdisku. V pripade, ze ramdisk uz bol naformatovany a data neboli
poskodene, utilitka neurobi nic (aby nezmazala data v ramdisku).
V pripade datovej nekonzistencie sa ramdisk naformatuje.
Test datovej konzistencie sa robi nacitanim boot sektora ramdisku. V pripade,
ze tento sektor sa nacita v poriadku a vsetky datove struktury v nom su neporusene,
ramdisk sa povazuje za naformatovany. V pripade ak sa vam nejakym nedopatrenim
stane, ze systemove struktury su narusene tak ze s ramdiskom nie je mozne seriozne
pracovat a pritom boot sektor je v poriadku (a ramdinit nepomaha), staci ak ramdisk
klasicky sformatujete pomocou FF17 a vsetku bude zase v poriadku.
Podobne ako pri samotnom ramdrive, aj prikaz NEW "ramdinit" je vhodne umiestnit
do suboru autoexe hned za instalaciu hlavneho drajvera
prikazom NEW "ramdrive". Tym sa zabezpeci, ze ak sa drajver instaluje prvy raz a este nie
su vytvorene systemove struktury na ramdisku, automaticky sa vytvoria.
Ramdinit nechava po sebe znacku o vysledku svojej cinnosti na adrese 23681.
Ak je PEEK 23681 nulovy, znamena to ze datova konzistencia v ramdisku pred
spustenim utility ramdinit uz bola v poriadku a preto tato utilitka v podstate
nic nespravila. Ak je hodnota PEEK 23681 nenulova, potom ramdisk bol nanovo
sformatovany a je uplne cisty a pripraveny na pouzitie. Vtedy hodnota PEEK 23681
zaroven indikuje cislo disku pod ktorym je ramdisk viditelny.
Ramdroff je velmi jednoducha utilitka (vsimnite si jej dlzku 12 bajtov!),
robi len jednu jedinu malicku drobnu vecicku - odinstaluje drajver 'ramdrive'.
Tym padom virtualna mechanika alebo ramdisk celkom prestava existovat
a BS-DOS je v stave, v akom bol pred instalaciou drajvera ramdrive.
A co to vlastne robi ? Kym instalacia drajvera NEW "ramdrive" je len
'napokovanie' vsetkych obsluznych rutiniek a prislusne modifikacie
na systeme, spustenie utilitky NEW "ramdroff" je len 'odpokovanie'
tychto obsluznych rutiniek a modifikacii zo systemu.
V pripade ze zase chcete ramdisk mat k dispozicii (a ramky v ktorych boli
ulozene data sa medzicasom nepremazali), tak staci znovu spustit samotny
drajver: NEW "ramdrive" a ramdisk je zase pripraveny na pracu aj so svojim
povodnym obsahom, ktory mal pred pouzitim utilitky ramdroff.