Na CIO jsem se těšil. Dodnes si pamatuju na ten šok, když jsem přišel na MS-DOS a dostal jsem odpověď na svou otázku: "Kde je tady centrální správa zařízení?" :D
Jen přidám pár bodů: jak Pavel rád píše všechny příklady kompletní, tak tady trošku zaniklo, že ty první tři příklady v BASICu jsou úplně stejné a liší se jen tím názvem zařízení, což je jednoduše řetězec, který může být i v proměnné a klidně tentýž kód můžeme zavolat několikrát pro různé řetězce a kopii dat tak poslat na obrazovku, tiskárnu i kazetu...
A dokonce, jak vidíme, v asembleru je to vlastně totéž, jen chybějící syntax pro zápis více proměnných nahradíme vyplněným IOCB blokem. Ony totiž ty příkazy v BASICu jsou jen velmi primitivní wrapper nad CIO systémem - a stačí to, protože je ten CIO systém už tak high-level.
(Malá poznámka: podobně mě fascinovalo na ZX Spectru, když jsem objevil v operačním systému tak high-level kalkulačku s plovoucí čárkou.)
Těším se, že v příštím díle zavedeme vlastní zařízení do tabulky HATABS !
Já bych ten MS-DOS tolik nepodceňoval. První verze byla sotva něco víc než port CP/M na 8086.
Ale už od verze 2.0 měl MS-DOS standardizovanou a celkem robustní podporu znakových zařízení (CON, PRN, AUX, cokoliv dalšího) a dalo se k nim přistupovat pomocí služeb souborového systému. Existoval centrální spojový seznam ovladačů těchto zařízení (něco jako HATABS). Stejně tak měl MS-DOS od verze 2.0 standardizovanou podporu blokových zařízení.
Je možné, že si to po letech už nepamatuju, ale nemám pocit, že bych viděl někoho, jak udělá ovladač třeba na svou nestandardní tiskárnu, původní PRN přejmenuje standardním a definovaným způsobem na něco jiného, svůj ovladač zaregistruje jako PRN, také standardním způsobem, a odteď mohl nahrát jakýkoli program a poslat v něm výstup na svou tiskárnu aniž by ten program zpozoroval změnu.
Myslím, že tam byl nějaký neustálý souboj residentů (občas na ostří nože, nekradli si IRQ?) a do toho nekompatibilní způsoby správy paměti definované v SYS, takže měnitelné pouze bootem. A různé programy potřebovaly buď ten nebo onen.
A pak už si pamatuju jenom, že u vedlejšího stolu byli nějací starší kluci, kteří měli zařízení seřazená v /dev ...a tak jsem tady :)