Retrocomputing Комп'ютерна інженерія

Звідна таблиця версій DOS – work in progress

Поки писав про DOS 4.00, Tandy 1400LT тощо, регулярно мусив уточнювати всілякі подробиці щодо можливостей різних версій DOS. При чому, в різних джерелах є різнобій. То вирішив зібрати все в одному місці і потроху уточнювати.

Продовження...

До релізу джерельних текстів DOS 4.0x та матеріалів European DOS 4

Два місяці тому1 Microsoft відкрила (майже) повні джерельні тексти MS DOS 4.00 та частину славнозвісно загадкового Multitasking чи European MS DOS 4.02, приблизно еквівалентну OEM Adaptation Kit (OAK)3. Звичайно, я зразу захотів спробувати скомпілювати та подивитися, що там із SYS.COM. Але, хоча, з підказками спільноти, це вдалося швидко, через звичну безліч справ з студентами і взагалі в УКУ, описати свої знахідки тоді не вдавалося і пишу, вкотре, безнадійно відставши від першовідкривачів.

Отож, експериментуємо.

  1. 26 квітня 2024 року. 

  2. Базується на DOS 2.0, працює в реальному режимі, не має відношення до “справжнього” MS DOS 4.0. Див. також Wiki: MS-DOS 4.0 (multitasking) та ‘‘The History of Multitasking MS-DOS’’. 

  3. Джерельні тексти та об’єктні файли, які Microsoft надавала OEM-виробникам для адаптації під їх комп’ютери. Див, наприклад: Microsoft MS-DOS OEM Adaption Kit 3.x, [MS-DOS 2.0 OEM Adaptation Kit (February 8, 1983)] (https://archive.org/details/msdos-2.0-oak). Зазвичай, IO.SYS, FORMAT.COM чи SYS.COM постачалися як джерельні тексти, а MSDOS.SYS, як умовно-платформонезалежний, постачався як набір об’єктних файлів. 

Продовження...

SYS.COM з 86-DOS 0.11 та 0.34

Насправді, ця стаття – трішки обман. Все почалося з того, що до 86-DOS я поліз, щоб глянути на їх SYS.COM, який багато раз дизасемблював для різних версій MS/PC-DOS.

Продовження...

86-DOS 0.11 та 0.34

Знайдені нові старі версії 86-DOS – 0.11 та 0.34, спричинили цілу хвилю публікацій. Десь на десятку побачених, вирішив і я спробувати їх.

Продовження...

Compaq Portable III (з 286) та Portable 386

Знову ж, завдяки учаснику спільноти ретрокомп’ютерщиків – засновнику Віртуального музею комп’ютерного андеграунду маємо два варіанти Compaq Portable III, з 286 та Compaq Portable 386.

Перший мій, другий – Львівського Музею Комп’ютерних Технологій.

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

Обережно – далі 20 Мб фотографій, більшість з яких, на жаль, неякісні або й жахливі.

Compaq Portable III, 286, фото з журналу “Australian Personal Computer”, Volume 8, Number 6, June 1987. Мій зараз помітно жовтіший. Зверніть увагу на розкладку клавіатури.
Продовження...

Лептоп Tandy 1400 LT

Завдяки одному учаснику спільноти ретрокомп’ютерщиків у мене з’явився цей ноутбук, а завдяки іншому – він ще й запрацював! Оскільки машинка дуже мила, коротко розкажу про неї та покажу свої експерименти1. Забігаючи наперед, вдалося отримати 630 Кб вільної основної пам’яті – не так погано для системи без XMS чи EMS2, і це з завантаженим DOSKEY та драйвером мишки3.

Tandy 1400 LT, фото з вікі.
  1. На жаль, традиційно, якість фото більш ніж сумнівна, але вибір – або такі, або взагалі ніякі, то я вирішив – хай будуть. 

  2. Думаю, наступна ітерація буде про 8086 з EMS – видатний ж костиль, а потім – 286 з ним же. 

  3. Чітерство, зізнаюся, як в рекламі солі без ГМО – якщо є UMB, все що у ній, не займатиме основної пам’яті. 

Продовження...

Пошук-1

Моїм першим комп’ютером був “Пошук-1”1. В середині 90-х, навіть у нас, це була глибоко застаріла машина. Тому, про Pentium MMX-200, який з’явився в 1999-му2, часто кажу “мій перший справжній комп’ютер”. Але і з “Пошуком-1” пов’язано багато спогадів – перші спроби бути користувачем, перші спроби програмувати, колупатися в файлових системах, писати віруси тощо.

Написано про цю машину немало: wiki і посилання там, зокрема: “ПК Поиск” та всілякий софт – поки до того навряд чи зможу щось додати, тому пост – більше ностальгічний.

  1. Купили в 1994, ввімкнути його вдалося в 1995 і до 1999 він залишався єдиним. 

  2. Він глючив – за використання відеорежимів за межами стандартних VGA, регулярно в Blue screen вилітав. Тому, коли з’явився потужніший, продав його. Жив тоді у Жидачеві, продав у Львові. Було дуже кумедно, коли, через кілька тижнів, сусідських хлопчина попросив мого брата подивитися до його нового комп’ютера і це виявився щойно проданий мій – на материнській платі був характерний надлам. 

Продовження...

Підходи до керування буферами в API різних операційних систем

Розповідаю студентам про низькорівневі API POSIX-сумісних систем – системні виклики та функції libc. Для порівняння зачіпаю підходи MS Windows та FreeRTOS. Та й місцями сам дивуюся зоопарку різноманітних непослідовностей у цих засобах. Більшість зумовлені історичними причинами разом із потребою підтримувати зворотну сумісність, частина – технічними, які я не розумію через недостатній досвід у відповідних сферах1, щось ще, певне, аналогом дрейфу генів із теорії еволюції… 

Один із найпрямолінійніших прикладів такої заплутаності – менеджмент пам’яті під буфер, де операційна система (ОС) має покласти якусь інформацію. Розповідаючи про функції нижче, наголошую студентам – завчати нюанси конкретних функцій не потрібно. Якщо будете щодня з тим стикатися – саме осяде в голові. Пам’ятайте спектр ідей – щоб розуміти прочитане правильно (а не додумувати згідно своїх фантазій – поширена цитата: “я думав/ла воно ж само якось виділить/звільнить/знайде?”) та обов’язково звіряйтеся із документацією. Але після підготовки до відповідних пар вирішив, свіжими слідами, записати типові приклади. 

  1. Книга Brian KernighanUNIX: A History and a Memoir”, 2019 трохи прояснила деякі нюанси. Все ж, в цікаві часи живемо – творці технологій, письменники та науковці, чиї твори та відкриття формували той світ із яким я, та багато хто із мого оточення, взаємодіють, часто ще живі. Керніган книгу спогадів випустив, Том Рей (так, я нахабно хвалюся) відгук на роботу моєму дипломнику написав – про цю роботу ще писатиму, студентка враженнями від спілкування із Tim Berners-Lee ділиться тощо Однак, повчальнішими є технічні книжки тих часів. Charles Petzold, “Programming Windows” 1988-го року – ще про Windows 2.0, разом із “Extending DOS” by Ray Duncan et. al” та “Эндрю Шульман – Неофициальная Windows 95”, “The Old New Thing” від Raymond Chen і парою книг про OS/2, сильно прояснюють, чому MS Windows є таким, як є. Старі видання Таненбаума та “Operating systems” by Harvey Deitel and Paul Deitel, прояснили те ж стосовно інших ОС (зрозуміло – менш глибоко). Читається, як художні (історично-детективні) романи – коли вже твердо знаєш, що було далі. Іноді хочеться посміятися над наївністю, але частіше дивуєшся прозорливістю – коли пишуть щось, що через десяток років назвали новим проривом. Або коли бачиш (поза-)попередній виток спіралі технологій – типу обіцянки штучного інтелекту, голосових інтерфейсів та розпізнання мови, автоматичних перекладачів у книжках 60-х. Головне, написано дуже схоже на тексти в сучасних. Приклад: “Дитяча енциклопедія, том 03, числа і фігури, речовина і енергія”, 1959 російською/1963 українською, розділ про ЕОМ. Хоча, аж зараз, здається, ці обіцянки стають реальністю. 

Продовження...

Огляд floating point – комп’ютерних чисел з рухомою крапкою

Floating point numbers – числа із рухомою крапкою1. Давайте розглянемо, як їх представляють в комп’ютерах і які це має наслідки для обчислень.

Ілюстрації проблеми

Рекурентна послідовність Мюллера

Перш ніж перейти до подробиць, спробуйте обчислити таку рекурентну послідовність, де всі змінні – floating point2, з допомогою будь-якої мови програмування – Python, C, C++, Rust, Lua тощо:

fn(x, y) :=  108 - (815 - 1500/y)/x
v_0 = 4 
v_1 = 4.25 
v_i = fn(v_{i-1}, v_{i-2}) 

  1. В українській мові – з рухомою комою. Але про локалі ми будемо говорити окремо, тут користуємося формою, природнішою для більшості мов програмування. 

  2. Будь-якого, із поширених, виду – float, double, long double, можна спробувати навіть “довгі”, із GMP, MPFR чи й MPC

Продовження...