Tuto situaci třeba měnit není, ať si každý zůstane u svého. Jediný problém, který je třeba vždy vyřešit, je přenos dat.
Samozřejmě je možné pro každý systém napsat konverzní program. Ale .. Jsou
prostě důvody proč to prakticky
možné není. Na mě známých systémech
existuje většinou konverzní program do jediného jiného systému. Jelikož tím
systémem byl většinou MSDOS, byla vlastně šance přenosu mezi systémy navzájem,
ale náročná. Nejprve export, poté import.
V současné době - nástupu harddisku - je potřeba vymyslet nový systém souborů
(FS - File System), který bude koncipován na větší diskové kapacity, než bylo
třeba u disketových mechanik. S novým FS tedy opět vznikne nový systém.
Jelikož ale HDD sám o sobě není tak uplně soběstačný a stejně většina lidí
nějakou tu disketovku má, budou chtít aby jim systém podporoval oboje.
Příkladem takového systému bude BS-DOS 400, na kterém se už (prý, možná, snad
trochu, jestli vůbec .. no spíš ne .. ??? ) pracuje. Bude to samozřejmě pokrok,
neboť to bude jeden systém a bude podporovat dva FS. Tohoto pokroku už dosáhly
dokonce i PeCoidní všemi oblíbené Wokna (také podporují až dva, nebo
snad dokonce až tři (!) FS.
Bude-li chtít někdo HDD s jiným systémem, nebo spíš bez něj, může klidně
použít nový BS-DOS bez MB-02 a pracovat jen s hadrem. Nebo si napíše svůj OS
pro HDD a svůj systém. A budou všichni zase tam, kde doposud. (jest-li ale
vůbec aspoň tam). Snad s tím rozdílem, že bude-li na HDD existovat jen jeden
FS, půjde připojit bez problémů k jinému systému (ale HDD neni primárně
určen k přenášení a dokonce mu to škodí. Kdo nevěří může zkusit, ale znám
jeden co cestu na DOXyCon'98 nevydržel)
Znáte někdo Unix? Jedna taková jedo odrůda, stará pár let (Linux) podporuje
současně klidně 32 různých systémů souborů (někde psali).
Co z toho čistou spectráckou úvahou vyplývá?
Je to vlastně objekt, zapouzdřená skupina rutinek, které mají jeden vstupní
bod pro poskytované služby, které se budou povětšinou týkat práce se soubory,
přičemž odstíní aplikaci od takových maličkostí, jako se kterým hw a fs se
právě pracuje. O stejné možnosti se ale snažil už OPAT. Problém s OPATem
ale byl, že byl příliš vázán na D40. Matrix by měl být více univerzálnější a
hlavně by měl sám o sobě podporovat současně více druhů hw a fs.
Při realizaci a návrhu služeb Matrixu bereme nejvíce ohled na HDD, pak
diskety a až pak hodně daleko kazetu. Toto pojetí se liší od přístupu BUSYho,
NORa a jiných zastánců kazeťáku, kteří zastávají názor, že kazeta je z
historických důvodů na speccy základ a vše ostatní ji více méně přizpůsobují
(viz např. BSDOS). Je nepopiratelné, že je výhodné, aby staré programy,
nahrávající z kazety přes ROM, fungovaly bez jakéhokoli zásahu. To je hezká
vlastnost BSDOSu a špatná D40 (proto jsem také pro D40 napsal TAPE Emulator).
Přesto se Matrix bude orientovat diskově, neboť považuji za snažší ohýbat
diskové služby na kazetové, než obráceně! A krom toho, kazetové služby bude v
podstatě potřebovat jediná aplikace - TAPE EMULATOR, pro ostatní bude jistě
výhodnější zvolit diskové, takže to bude i ekonomičtější.
Zároveň hodlám programovat jen jednou, ale použitelné to chci mít pro více
věcí. Základní představa je taková, že by šel Matrix použít jako součást jiného
programu (jako měl sloužit OPAT, ale vzhledem k tomu, že Matrix bude kvůli svým
možnostem daleko větší než OPAT, tak to vidím praktické jen u takových vyjímek
jako File Comander apd.). Druhou možností je, že by Matrix ležel někde dole v
ROM a aplikace by si ho volaly odtamtud přes
A jelikož potřebujete spustit o onu aplikaci samotnou, bude asi chtít, aby i
Basic ROM byla upravena pro práci s Matrixem. Takže buď to bude obdoba D40 a
podobných, které přidávají pár svých příkazů, nebo lépe to bude zmíněný TAPE
Emulator, dokonce to může být něco tak rozsáhlého jako BSROM apd. To už je věcí
názoru.
Vrsta služeb (SL) bude vyřizovat takové ty formalitky. Vrstvy FS a LL mají
každá jeden vstupní bod, ve které se však provede rozskok do rutiny podporující
právě aktivní hw či fs.
Příklad (čísla vymyšlená):
V praxi si to představuji asi takto (ukáži na příkladu):
Podpora FS je samozřejmě náročnější, ale je-li jednou udělaná, funguje na
všech typech podporovaných zařízení.
Výhoda je vysoká přenositelnost, např. napíšu ovladaní D40 a IDE-IF, dále
pak podporu pro MDOS, SFS a ať nejsem měkej tak ještě MS-DOS. V tu chvíli
budu schopen číst z harddisku partition typu MS-DOS i SFS, budu moc mít
MDOS, MSDOS a SFS -ovské diskety (kvuli D40 jen DDčka). Pak to ve zdrojáku
předám někomu s MB02 a ten v mžiku napíše rutinu pro obsluhu MB02. V tu
chvíli je schopen do svého MB02 vrazit a číst disketu pro SFS, MSDOS a MDOS
(ale ne pro BS-DOS). A zrovna tak s HDD. Jestliže bude produktivní napiše
práci s BSDOSem a bude číst i ten. (teď si vlastně uvědomuji že BS-DOS
přejde na SFS, takže BS-DOSem myslím starší verze - pro příklad)
A k tomu stačí jediný jednoduchý File Manager, který používá řádně služby a
budu schopen vše alespoň kopírovat.
Samozřejmostí a ztělesněnou jednoduchostí je upravení ZX ROM, aby místo z
kazeťáku nahrávala přes služby a mám TAPE Emulátor.
Úvod - proč Matrix
Jak známo, klasickým softwareovým základem ZX Spectra je jeho romka. Ač stará nějakých 17 let, stále dostačující. Splňuje základní věc, kterou by splňovat měla, a to spouštění programů. Dále je v ní interpret BASICa, takže poskytuje daleko víc, než je vlastně bezpodmíněčně nutné. Co se nahrávání programů týče,podporuje pouze kazetový magnetofon - záznamové medium z dob jejího vzniku.Časem samozřejmě vznikala jiná záznamová zařízení, z nichž nejpraktičtější je jistě disketová mechanika. Způsobů připojení je několik, ale každé nějakým způsobem nahradilo nahrávání programů. Nepotřebujete vyměňovat ROM, většinou jen připojíte a jedete (no prostě Plug and Play, ne? to je takový ten ideál, který se marně snaží alespoň z části napodobit výrobci PeCí - bezúspešně)
Vezmeme-li ale v úvahu jednotlivé diskové systémy, každý je světem jen sám pro sebe. Dnes je situace taková, že každý se drží svého systému, protože si na něj zvykl, nebo oceňuje některé jeho přednosti.
Že to jde!
(Ono tedy mezi náma, konec klasické spectrácké úvahy má pokaždé
stejné řešení)
Co je to Matrix
Možná bude lpší začít tím, co Matrix není. Takže za prvé určitě není
samostatnou aplikací. Zrovna tak ale není jen BIOSem (basic input/output
system). Je tedy něco mezi. Nám se nejvíce líbí jádro (kernel).
RST
. Jelikož většina
programů potřebuje i klasickou ROM (Basic), tak ji předpokládáme jako základ, v
ní bude definovaný vstupní bod, který zajistí přestránkování do stínové ROM s
Matrixem, kde bude fungovat ono RST a zároveň bude fungovat i bod pro
přestránkování do Basic ROM.
Mě osobně se zdá, že už je čas na něco uplně nového. Osobně stejně BASIC
používám posledních X let pouze k nahrání jiného programu a musím říct, že k
tomu fakt není určen (chybí historie příkazů a tak). Takže bych to viděl
k napsání něčeho speciálního lépe vybaveného ke spouštění programů a práci se
soubory - to už ale není záležitost Matrixu, přesto se tu o tom zmíním. MASH
(MAtrix SHel) by měl nabídnout příkazový interface k službám Matrixu (i kdyby
na nic jiného, nějak se Matrix otestovat musí), bude se nacházet ve stejné ROM
s Matrixem a k dispozici zůstane ale i Basic ROM, neboť tu bodou pravděpodobně
potřebovat spuštěné programy. Samotný MASH i MATRIX budou na Basic ROM
nezávislý. Pokud bude takto nezávislý i váš program, nemusíte se stránkováním
ROM zabývat. Jelikož MASH bude realizovat mnoho zajímavých funkcí, bude některé
z nich poskytovat jako služby na dalších RST. Již dnes je jasné, že budou
existovat programy, které budou vyžadovat jak Matrix tak MASH. Říkám to zde
proto, že takovýto program bude muset být s největší pravděpodobností spuštěn
MASHem a nebude tedy stačit pouhá přítomnost MASHe v ROM. Takovýchto programů
by ale podle mě mělo být málo, aby měl uživatel možnost volby a mohl pracovat
třeba jen v lehce upravené Basic ROM. Tritol ale nedávno oznámil, že jeho
fdisk
bude MASH&MATRIX only, takže si radši začněte
zvykat.
Vnitřní uspořádání Matrixu
Aby mohl MATRIX obsloužit více druhů hw i různé fs, je nezbytné jeho rozdělení
do vrstev.
Software
Aplikační programy
Rozhraní služeb (SL)
Ovladače systému souborů (FS)
Ovladače fyzických zařízení (LL)
Hardware
Technické prostředky
Každý druh LL nebo FS bude mít své číslo, kterým se identifikuje mezi svými
kolegy v dané vrstvě (tzv. MAJOR číslo). Důležité je dále zmínit ještě MINOR
číslo, které identifikuje zařízení nebo fs v rámci jednoho MAJOR čísla.
Zařízení MAJOR MINOR D40 Mechanika A 1 0 D40 Mechanika B 1 1 MB02 Mechanika A 2 0 MB02 Mechanika B 2 1 MB02 Mechanika C 2 2 MB02 Mechanika D 2 3
Obdobně to bude i u FS; v případě že mám hadr s pěti partition (3 ext2, 2 FAT16)
Partition MAJOR MINOR hda1 (ext2) 1 0 hda2 (FAT16) 2 0 hda3 (FAT16) 2 1 hda4 (ext2) 1 1 hda5 (ext2) 1 2
Je-li vše v pořádku, nastaví MAJOR/MINOR čísla pro FS i LL.
celý příklad byl trochu zjednodušen, praxe bude o malinko komplikovanější.
Výhody Matrixu a jeho vrstvené architektury
Napsat čtení sectoru a podobné lowlevel rutiny je strašně jednoduché. Takže
není problém toto udělat za odpoledne pro kopu systémů.
Pak mi to vše vrátí a já budu schopen číst z D40 i BS-DOSovský formát.
Přineseli někdo ke mně MB02 a (to sice nejde, ale jako) připojíme ho
současně s mou D40, bude mi fungovat vše naprosto na všem, jediný rozdíl
bude že si budu moc dovolit HD disketu.
Nevýhodou je, že si nedokážu představit, jak upravit sekvenční přístup k
souboru pro milovanou TAPE. Ta by dejme tomu podporovala jen čtení celých
souborů. No spíše to dopadne tak, že Matrix s kazetou pracovat nebude umět ;-)
SpeccyFication
Některá konkrétní čísla ještě nejsou známá či definitivní.
Matrix
Matrix ROM SpeccyFication
RST 48
)
MASH&MATRIX SpeccyFication
software 4 MATRIX
Matrix
Samotný Matrix.
hlavní vývoj: pvl, tnt
Budou existovat asi jen jedny zdrojáky, neboť nejčastější bude jeho umístění v
ROM (viz Matrix ROM SpeccyFication)
MASH - MAtrix SHel
Shel který bude sloužit primárně k práci se soubory a spouštění programů.
Řádkové rozhraní ke službám Matrixu.
hlavní vývoj: pvl
MAFIE - MAtrix FIle Exploder
File manager, tak jak je znáte ... zatím pouze v plánu, teoreticky by to mohlo
být schopné mít zkompilován matrix v sobě a běhat na libovolném HW (i bez
možnosti zápisu dolu do ROM).
hlavní vývoj: tnt(?)