пʼятниця, 23 серпня 2013 р.

"Extending DOS" by Ray Duncan et. al

Про свою боротьбу із DOS-ом я вже писав: "DOS FCB". Ключова тема -- доступної інформації було мало, критично мало. Ну, тобто, в когось може і були всі потрібні книжки, але в мене -- ні...  Одним із важливих питань було, (вживаючи правильний термін, якого тоді не знав) -- розширення DOSу. Сам DOS -- більш ніж скромна система, навіть на свій час. З чого все почалося теж писав: "MS/PC DOS 1.0". Наступник, DOS 2.0 стала значно просунутішою системою, але все рівно, до середини 80-х років 640Кб було явно мало навіть для персоналок. Однак, вимоги зворотної сумісності не давали просто "почати все з початку", доводилося викручуватися. Розширена (extended) і доповнена (expandex) пам'ять, HMA, захищений режим, VCPI, розширювачі DOS, DPMI, DOS/4GW і т.д. і т.п. -- купа всіляких загадкових слів та абревіатур. З захищеним режимом я сяк-так розібрався. Дорвавшись до каталогу переривань Ральфа Брауна, пробував розібратися і з int 15h/VCPI/DPMI. Але, з одного боку, довідник --- не підручник, з іншого, з приходом Windows-9x, Windows NT та Linux, вся тематика зробилася неактуальною. Активно колупатися -- воно б не вартувало затрачених зусиль. Проте, певна ностальгія, (про неї я вже згадував, пишучи про FCB), залишалася.

середа, 21 серпня 2013 р.

Аналіз CHKDSK.COM з PC-DOS 1.00

CHKDSK. Скільки в цьому слові! ;-) (Для тих, хто ще застав відповідну епоху). Скільки надій на неї покладали, скільки розчарувань, чи навпаки -- несподіваних порятунків. Програма перевірки та виправлення помилок на дисках.

субота, 27 липня 2013 р.

Аналіз SYS.COM з попередника, 86-DOS

Для повноти повернемося ще на крок назад. "Дистрибутив" 86-DOS 1.0 від 28 квітня 1981 року теж доступний в Інтернет. Він містить джерельні тексти власне операційної системи,  SYS.COM присутній лише в двійковому коді. Тому довелося знову взятися за дизасемблер. :-)

четвер, 13 червня 2013 р.

Аналіз SYS.COM версії 1.81 з Compaq-DOS 2.12

Як вже згадувалося раніше, знайти SYS.COM з оригінальної MS-DOS 2.11 не вдалося. Однак, у файлі "Microsoft DOS 2.12 [Compaq OEM] (5.25).7z" трапився SYS.COM, з стрічкою "Vers 1.81" --- попередньою до тієї, що у оригінальному SYS.COM з PC-DOS 2.10 (стрічка "Vers 1.82"). Подумав, що вона може бути цікавою, як для аналізу розвитку конкретної програм так і способів програмування від Microsoft взагалі. Сподівання виправдалися. :-)

Детально її розбирати не буду --- вона дуже схожа на версію 1.82. Взагалі, природно було б починати саме з цієї, 1.81, потім переходити до новішої. Однак, з одного боку, побачив я її значно пізніше, з іншого, вона явно містить модифікації від Compaq, тобто є менш "автентичною", чи що. Тому зупинюся лише на важливих відмінностях.

середа, 12 червня 2013 р.

Спроба аналізу SYS.COM з DOS 2.11

Версія 2.11 була гібридом IBM-івської 2.10 (2.1) та Мікрософтівської 2.01, з її підтримкою інтернаціоналізації та всілякими багфіксами. Випущена вона Microsoft і призначалася для OEM, відмінних від IBM. Тому присутня в дуже багатьох варіантах. 

Скачав я "Microsoft DOS 2.11 (5.25).7z", дістав SYS.COM, почав колупатися. І дуже здивувався --- код навіть не схожий на попередні варіанти. Нічим. Ні стилем, ні підходом, ні будовою.  Перевірка показала, що цей архів, насправді, лише копія іншого, "Microsoft DOS 2.11 [AT&T OEM] (5.25).7z". Точніше, бінарно і архіви і образи в них --- різні. Але файли у них -- однакові. Тобто, якщо я чогось жорстоко не плутаю, "vanilla" MS-DOS 2.11 мені знайти не вдалося.Якщо хтось має -- діліться!

вівторок, 11 червня 2013 р.

Аналіз SYS.COM з PC-DOS 2.10




В листопаді того ж, 1983 року, IBM випустила DOS 2.10. Нічого особливо нового в ній не було --- поточний апдейт, але подивимося детальніше до нутрощів (хоч і на тривіальному прикладі). 

понеділок, 10 червня 2013 р.

Аналіз SYS.COM з PC-DOS 2.00

Після 1.10, в березні 1983, "наступила" версія 2.00. Фактично, нова операційна система. З'явилася підтримка директорій, засоби роботи з файлами у стилі UNIX (завдяки чому зразу застаріли FCB), підтримка жорстких дисків та нових форматів дискет. З'явилася можливість завантажувати драйвери пристроїв, резидентні програми, купа нових внутрішніх і декілька --- зовнішніх, команд. Крім набору засобів роботи з файлами та резидентами, з'явилися системні виклики для керування динамічною пам'яттю.

Подивимося як це все вплинуло на нашу жертву.