неділя, 25 вересня 2022 р.

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

Наступна версія DOS, 3.10, вийшла 2 квітня 1985. Однак, згідно інформації музею OS/2, анонсована вона була разом із 3.00, і, фактично, являла собою обіцянку доробити те, що до випуску 3.0, який мав співпасти із виходом IBM PC/AT, не встигли.  Зокрема, нарешті довели до ладу мережевий редіркетор. По великому рахунку, DOS API з часів 3.1 змінювалося мало. Із важливих для SYS.COM аспектів --- з'явилася підтримка 720Кб 3.5'' дисків. 
 
Ех, я починав теж із 720Кб, правда нестандартних -- 5-дюймових, дисковід Пошука-1 принципово не вмів 1.2Мб читати-писати, а на 800 Кб заїкався, хоча по сектору за раз, руками з DEBUG.COM  --- читав. Штатним форматом був 360Кб, але в 1995 то було зовсім мало, а 720Кб, при всій нестандартності для 5-дюймовок, особливих проблем не створював. На крайній випадок, 800.COM вже був популярним.
 
Ремарка: цей текст був написаний майже 10 років тому, довести до кінця тоді не вистачило натхнення, а зараз вже шкода часу. Тому публікую як є, із мінімальними правками, менш завершеним, ніж інші пости цієї серії.

субота, 24 вересня 2022 р.

Порівняння дизасемльованого SYS.COM з PC-DOS 2.10 та опублікованих Microsoft текстів для цієї утиліти


Колись, для відпочинку та розваги, дизасемблював SYS.COM різних версій DOS (посилання в кінці). Суттєво пізніше Microsoft опублікувала джерельні тексти MS-DOS, офіційно, версій MS-DOS 1.25 (еквівалентна PC-DOS 1.10) і 2.00. Від того часу мені захотілося порівняти справжній код із своїм дизасемблом. Цього літа з'явилася нагода. 

пʼятниця, 12 серпня 2022 р.

Анонс -- 64-бітний плагін Total Commander для роботи із образами FAT

Займаючись "ретрокомп'ютингом", постійно доводиться мати справу з образами дисків різних епох. Для мене найзручнішим способом є відповідні плагіни для Total Commander (TCmd). Однак, їх так і не було перенесено на 64-бітний TCmd. 

Коли, посередині літа, втома стала закритичною, для відпочинку вирішив створити такий плагін -- з одного боку, задача проста, з іншого -- мозок таки зайнятий, і не відволікається на дурні думки. Здається, це перше програмне забезпечення, написане мною, призначене для (відносно) широкого кола користувачів. 

Код знаходиться на Github: FATImage_TCMD_plugin. Бінарники -- в релізах репозиторію.

Багато подробиць є в ReadMe.md репозиторію. Дуже коротко:

  • Поки read-only.
    • Працюю над версією, що вмітиме писати в образи та створювати їх.
  • Підтримує FAT12, FAT16, FAT32.
  • Підтримує VFAT -- довгі імена файлів, не залежно від розрядності FAT.
  • Вміє працювати із образами, розбитими на диски, якщо вони користуються MBR.
  • exFAT i GPT поки не підтримуються.

Буду вдячний за відгуки, знайдені баги, pull-request-и. 

 

Подробиці, не висвітлені на GitHub

субота, 15 серпня 2020 р.

Онлайн інструменти для С++

Compiler explorer logo
Попередній пост задумувався як приклад використання онлайн-засобів для роботи із С++, однак, осмислено показати більшість із них не вдавалося. Тому пишу ще один.

Ремарка: пам'ятайте, що більшість із цих проектів -- приватні, на особистих (чи арендованих своїм коштом) серверах авторів, хай і з залученням пожертв. Будьте акуратні -- не зловживайте, не заваліть DDoS-ом.
Щоб нормально роздивитися зображення -- клікніть по них. На жаль, не вдається мені за розумний час дійти толку із ресайзером Blogpost, вони виходили або заширокі, або нечитабельні.

Compiler explorer -- https://godbolt.org

Напевне, перший і найпопулярніший із них. 

середа, 12 серпня 2020 р.

Навіщо розуміти комп'ютер, якщо сучасні мови та їх бібліотеки такі потужні?

Працюю із дуже розумними та працьовитими студентами. Тому основне обмеження -- рівень їх мотивації. Важливо показати їм -- навіщо все це. Звісно, власний похід по граблях дає глибший і стабільніший результат, але це довга дорога, хотілося б її спростити. Тому -- очевидні для них приклади плюс практика. 

Байка - 1


Типовий "мотиваційний" приклад -- історії про вирішення задачі підрахунку слів у текстових файлах. Фабула наступна, пропонуєш цю задачу новій аудиторії, наступного разу: 

вівторок, 30 квітня 2019 р.

0xB800

BD.COM із запущеним вірусом die385.
Випадково зіткнувся із авторами симпатичного дебаггера епохи 90-х, BD.COM. Є навіть надія, що його джерельні тексти на github потраплять. Та й згадав в процесі тих розмов про магічне число, B800/B8000. Виявляється, про нього зараз пам'ятає менше людей, ніж я очікував. :-)

Колись давно (1976) вирішила Intel на колінці зробити мікропроцесор,  щоб «закрити» ринок, поки розроблять щось більш достойне. Вийшов він в 1978 і називався 8086. Процесор був 16-бітний, однак міг адресувати цілий мегабайт пам’яті (на що, як ми знаємо, потрібно 20 біт), за допомогою хитрого трюка – адресу ділили на дві частини, по 16 біт. Для отримання «справжньої», фізичної адреси, яку процесор може використати для звертатиметься до пам’яті, першу частину зсували на 4 біти вліво (це те саме, що множити на 16) та додавали другу.

Першу частину, наслідуючи «дорослі» машини, які підтримували сегментацію – можливість ділити пам’ять на ізольовані блоки, сегменти, назвали сегментом. Ніякого розділення, звичайно, не було – воно «приросло» в 80286 (1982), але слово гарне, все таке. Другу – зміщення (відносно початку сегменту). Тобто, адреса складалася із пари segment:offset. Для адреси сегменту було виділено спеціальні сегментні регістри, не змінюючи яких, можна було звертатися до 64Кб, маніпулюючи 16-бітним зміщенням.

четвер, 26 липня 2018 р.

"Undocumented DOS", 1st edition

Ще одна "ретрорецензія". Про "романтичні" комп'ютерні 90-ті я вже не раз писав. Поміж популярних тогочасних хобі було написання вірусів. DOS -- ідеальне середовище для них, ніякого захисту, вся система як на долоні -- розважайся, скільки зможеш. Але сяка-така протидія, все ж, була -- ранні антивіруси, пошук підозрілих процесів і дивних блоків пам'яті тощо. За відсутності розмежування доступу, змагання вірус-антивірус було цікавою грою. А вміння працювати із внутрішніми, недокументованими, структурами DOS було корисним для ефективної участі в ній. Приклад: багато антивірусів не відслідковували роботу із файлами через і FCB.  Та й цікаво -- раптом недокументоване включає якісь містичні можливості. Ходить справедливий жарт: "Чогось недокументованими можливостями найбільше цікавляться ті, що документовані поки толком не освоїли". З іншого боку -- нам було від сили півтора десятиліття. :-) 
Важлива ремарка -- DOS і суміжні сфери в той час на Заході вже стрімко втрачали актуальність. Навіть OS/2  своє доживала, як виявилося пізніше. Але ми працювали із старою технікою (наприклад, Пошук-1/Пошук-2 -- слабенький клон PC XT середини 80-х) та із старою літературою. Зараз дивлюся на книжки -- добуті чудом, по яких тоді вчився, і жахаюся їх рівневі. І дуже різко реагую на заяви студентів "Ми не змогли розібратися - літератури немає", за наявності доступу до яких хочеш книг, пошукових систем взагалі і StackOverflow зокрема та ще й можливості запитатися у місцях, де буває тисячі людей, які вміють та хочуть пояснити новачкам.