Avatar uživatele
Michal47

Jak fungovalo rozšíření pro CD-R0M (MSCDEX) v MS-DOSu?

To mohla ta samá přerušení, která např. čtou klávesnici (INT 16h: Klávesnicové funkce), některými novými funkcemi náhle začít přehrávat hudbu? (Tenkrát měly CD-ROM mechaniky 3.5 mm jack pro sluchátka a v MS-DOSu s nimi šlo dělat totéž, co s CD přehrávačem.) Děkuji.

Zajímavá 0 před 1434 dny Sledovat Nahlásit



Odpovědi
Avatar uživatele
cochee

Je sice hezké, že máš nějaké ponětí o nějakých interrupt vektorech v x86 PC systémech, ale zbytek máš celkem pomotaný. MSCDEX je v podstatě spustitelný zavaděč něčeho, čemu v současnosti v dobách Windows říkáme ovladač a sloužil zaprvé k tomu, aby si DOS přítomnosti CD-ROM mechaniky vůbec povšimnul a zadruhé zavedl podporu pro souborový systém na CD-ROM; asi víš, že jediný podporovaný souborový systém přímo v DOSu byl FAT a k němu pak MSCDEX dodával podporu pro souborové systémy High Sierra a v pozdější verzi už i lépe standardizovaný ISO 9660.
Já neříkám, že MSCDEX nevyužíval některý z interrupt vektorů, to bych kecal – natolik do hloubky jej neznám, ale určitě jej nepoužíval k přehrávání hudby. Hudba (obecně audio) je na CD zaznamenána podle jiného standardu, a sice Red Book (červená kniha) (zatímco CD-ROM odpovídá pozdějšímu standardu Yellow Book – žlutá kniha) a v podstatě ani nejde o souborový systém. DOS neuměl bez pomoci nějakého programu/aplikace hudbu z CD-DA disku přehrát, určitě ne pomocí příkazů DOSu. Přítomnost zdířky pro sluchátka (plus dvou tlačítek namísto dnešního obvyklého jednoho a plus otočného knoflíku na hlasitost) značila jen to, že tuto mechaniku bylo lze použít jako jednoduchý přehrávač audiodisků (tedy, tehdejšími slovy, CD player) a dokonce by ji tak šlo použít i mimo PC, stačilo ji napájet správnými napětími ze správného zdroje a mohla přitom ležet na stole, připojení datového kabelu nebylo v tomto případě nutné. Ještě se mi tu několik těchto mechanik válí.

0 Nominace Nahlásit


Avatar uživatele
Dochy

Cochee: Tu mechaniku bylo možné ovládat i programově a CD-audio mohlo jít přes zvukovku (audio kablík z mechaniky do zvukovky), nebo přímo do sluchátek. Předpokládám, že i k tomuto bylo potřeba použít nějaký ten ovladač plus příslušný program. Matně pamatuji že bylo možné použít přehrávač se znakovou grafikou na pozadí, člověk jej vyvolal nějakou klávesovou zkratkou, přesunul se po disku kam chtěl, nechal jej přehrávat a vrátil se ke své práci.

Nicméně Michal podle mně nepoložil otázku zrovna moc dobře, míchá několik různých problémů dohromady. Řetězení přerušení není nic neobvyklého. V době DOSu se to tedy zezačátku nepodporovalo, každá funkce měla své vlastní přerušení, ale později s potřebou řídit čím dál víc věcí přes přerušení se to stalo poměrně normálním. Ovladač při inicializaci osahal tabulku přerušení, pokud zjistil že přerušení už je obsazeno, uschoval si původní vektor přerušení a nastavil přerušení na sebe. Pokud k přerušení došlo, ovladač (resp. jeho rutina obsluhující dané přerušení) zkontroloval zda je určené opravdu pro něj, pokud ano, zpracoval jej, pokud ne, předal podle uloženého vektoru řízení původnímu ovladači.¨

Matně pamatuji že jsem na něco používal přerušení od hodin. V originále tuším 18.2 Hz pro obsluhu klávesnice nebo hodin nebo něco podobného, já si nastavil časovač na několik kHz, vždy jsem udělal co jsem potřeboval a přitom počítal ubíhající čas. Pokud jsem se dostal na čas odpovídající původnímu přerušení, vyvolal jsem jej sám.

0 Nominace Nahlásit


Diskuze k otázce
Avatar uživatele
Rilika25

Příspěvek smazán administrátorem.

před 1155 dny Odpovědět Nahlásit
Nový příspěvek