Indrekis
Indrekis

Categories

  • retrocomputing

Вітаю у розділі, присвячена ретрокомп’ютингу. Тут розповідатиму про свої блукання комп’ютерною історією.

Огляд

Маю певну колекцію старих комп’ютерів. В якийсь момент задумався – а навіщо вони мені, що я із ними робитиму? Під час дискусій із подругою з реконструкторської спільноти, зрозумів – найцікавіше мені займатися історичною реконструкцією – працювати за тими машинами так, ніби зараз відповідна епоха1. Все рівно, вміння їх ремонтувати у мене обмежені2, а робити, щоб вони гарно виглядали я зовсім не вмію. Розпочалося все із не спробуваних чи не зрозумілих в підлітковому віці речей (приклад), потім розрослося вглиб та вшир. Тому багато уваги буде якимось дивним ідеям з минулого, трюками із старих книжок та просто “Hello, world”-ам застарілих технологій3.

Тимчасова ремарка: в мене назбиралося багато сирих матеріалів, які потроху тут викладатиму. Список розділів нижче – приблизно відповідає матеріалам, що вже існують, але може змінюватися. Розділи дещо умовні – між ними є тісний перетин. Важко розділити, скажімо, історію IBM PC, x86 та DOS.

Ретрокомп’ютерні книги

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

Тимчасова ремарка: поки лише пости із старого хостингу блогу, але очікую кілька десятків нових – деякі зразу анонсую.

Порядок в межах теми – хронологічний, за першим виданням, що розглядається.

DOS та IBM-PC сумісні комп’ютери

Ремарка: подивився на свої книжки і вирішив, що розділяти книги про DOS і про IBM PC буде важко, враховуючи історичний контекст та їх наповнення. Сюди ж потрапляють книги по асемблеру, але не про високорівневі мови.

  • [“The Peter Norton Programmer’s Guide to the IBM PC”, by Peter Norton, 1985], російською перекладено в 1991 із назвою “Персональный компьютер фирмы IBM и операционная система MS-DOS”.
    • На свій час, дуже хороша. На жаль, потрапила мені до рук зовсім пізно, на початку 2000-х.
    • З неї знаю про PCjr, тому зараз маю спокусу завести собі Tandy 1000 – успішний клон цієї машини.
  • [“Programmer’s Problem Solver for the IBM PC, XT, & AT” by Robert Jourdain, 1986, 1st ed.], перекладена російською в 1992: “Справочник программиста персональных компьютеров типа IBM PC, XT и AT”.
    • Кумедно, що в 2022 вийшов Kindle edition, на базі другого видання, 1992 року.
  • [“IBM PC Assembly Language and Programming” by Peter Abel], перше видання 1987 (в СРСР переклали так, що вийшло в 1992) та п’яте, 2001 (перекладено на рос. в Україні в 2007).
    • В 1995+ вчив асемблер з її допомогою. Зараз схиляюся, що вона непогана на свій час, але не більше. Крім того, через мою недосвідченість, я аж суттєво пізніше зрозумів неактуальність всіляких FCB в кінці 90-х, яким у ній присвячено доволі багато тексту. На жаль, постаріла книга погано – видання 2001 вже було абсолютно неадекватним часу.
    • Приклади з неї можна надибати на GitHub.
  • [“MS-DOS (Versions 1.0-3.2): Technical Reference Encyclopedia”, 1986]
    • Напевне, найважча – трохи більше за 4 кг, та найбільша моя книга.
    • Абсолютно жахлива за наповненням – боюся, версія Ларрі Остермана (“Does anyone remember the ORIGINAL MS-DOS encyclopedia?”), що MS намагалася знищити всі екземпляри через опубліковані внутрішні подробиці, скажімо так, неповна.
    • Цінна як історичний артефакт та документ епохи, коли MS ще була самовпевненим стартапом.
  • [“Advanced M. S.-DOS Programming: The Microsoft Guide for Assembly Language and C. Programmers The Microsoft Guide for Assembly Language and C. Programmers” by Ray Duncan, 1986],
    • Ймовірно, завдяки цій книзі MS звернулася до Рея Дункана для другої спроби створення енциклопедії.
    • Дуже сподобалася, хоча ще трішки наївна – шкода було, що не мав її в часи ЛФМЛ, в 90-х.
  • [“MS-DOS Encyclopedia: Versions 1.0 Through 3.2”, by Ray Duncan (Editor), First Edition, 1988]
    • Друга, значно більш вдала, спроба Microsoft випустити книгу про свій тодішній флагман – MS DOS.
    • Детальна, гарно написана, здоровенна, 3.5 кг – навіть читаючи її зараз, було сумно, що я не мав її в 90-х.
  • [“Amstrad Personal Computer PC1640: User Instructions”, 1988]
    • Офіційний підручник до комп’ютера.
  • [“Mastering Turbo Assembler”, by Tom Swan, September 1989], російською перекладено в 1996 (“Освоение Turbo Assembler”).
    • Купив її в 1997, і після Пітера Абеля це був великий ривок вперед! Шкода, що тоді я ще не усвідомлював, що більшість матеріалу вже втратила актуальність.
    • Автор книги на GitHub, там викладено приклади до його книг.
  • “Extending DOS: A Programmer’s Guide to Protected-Mode DOS” by Charles Petzold, M. Steven Baker, Andrew Schulman, Stephen R. Davis, Ross P. Nelson, Robert Moote, Ray Duncan (Editor) ; 1st edition; Jan. 1990
    • Цитата: “Щойно вийшов Windows 3.0, щойно прийнято DPMI, але до практичного використання ще не дійшло. OS/2 все ще подавала надії, але щодо неї вже закрадалися сумніви.”
  • “Undocumented DOS: Programmer’s Guide to Reserved MS-DOS Functions and Data Structures” by Andrew Schulman, Raymond J. Michels, Jim Kyle, Tim Paterson, David Maxey, Ralph Brown; 1st edition, Oct. 1990
    • Цитата: “Пам’ятаю здивування від того, що MSCDEX – мережевий драйвер.”
    • В ті часи в багатьох було враження, що знання недокументованих можливостей – такий собі філософський камінь програмування. З іншого боку, з’явився жарт: “Чомусь найбільше недокументованими засобами цікавляться ті, що поки не засвоїли документовані”.
  • [“Understanding Desqview” by Rick Altman, 1991]
    • Посібник користувача, тому було менш цікаво читати, ніж главу про Desqview з “Extending DOS”, зате допомогла навчитися користуватися.
  • [“Writing MS-DOS Device Drivers” by Robert S. Lai, 1992, 2nd ed.]
    • Ще одна “дитяча мрія”, прочитана аж в 2023.
  • [“DOS: Beyond 640K” by James S. Forney, 1992, 2nd ed.; 1993, 3rd]
    • Книга для просунутих користувачів DOS-машин.
    • Як на мене, в свій час – дуже корисна, але жахливо написана. Окрему рецензію на неї не писатиму, оскільки вона наштовхнула на написання статті “Дивні плати оновлення із 1980-х”.
  • [“Dos and Windows Protected Mode: Programming with DOS Extenders in C” by Al Williams, December, 1992]
    • Сподобалася менше, ніж “Extending DOS”, але теж було цікаво, навіть зараз.
  • [“Personal Computer from the Inside Out: The Programmer’s Guide to Low-Level PC Hardware and Software” by Murray Sargent and Richard L. Shoemaker, 3rd Edition, December, 1994.]
    • Так могла б виглядати книга, яку написав би я – структура дуже схожа на закладену в мої курси для студентів УКУ.
  • “Assembler для DOS, Windows и Unix”, Зубков Сергей Владимирович, издание второе, 2000.
    • Писати окремий огляд поки не планую – обмежуся коментарями тут. В свій час не зміг її добути. Якби читав тоді, певне б позитивно відносився – оскільки у ній багато інформації, яку тоді знайти було важко. А зараз враження неоднозначні. Дев’ять сторінок про DPMI, два десятки про захищений режим DOS? Краще я “Extending DOS” почитаю. :-) Щодо вмісту – розпочинає з огляду ISA x86, в реальному та захищеному режимі, FPU, MMX та SSE (SEE1). Типовий набір тем DOS-програмування, включаючи UMB-HMA-EMS-XMS та VCPI, DPMI і розширювачі – але все дуже лаконічно і в формі довідника. Менше 50 сторінко про Windows 95/NT. Трішки про взаємодію з Pascal i C. Щодо UNIX – взагалі два десятки сторінок, претендуючи, що описує ціле сімейство – Linux, FreeBSD, Solarix/x86, разом із AT&T синтаксисом. Глави трохи перемішані між собою. Хоча значну частину сторінок складають лістингу програм, в той час для мене це було б плюсом.

MS Windows 1.xx та 2.xx

Ремарка: вирішив спробувати зібрати всі книги про програмування цих версій Windows.

Наявні

  • [“Programmer’s Guide to Windows” by David Durant, Geta Carlson, Paul Yao]
    • Присвячена Windows 1.xx.
    • Ймовірно, перша книга про програмування Windows.
    • Нудніша за наступну, від Charles Petzold, але враження хороші.
  • [“Programming Windows: The Microsoft Guide to Programming for the MS-DOS Presentation Manager, Windows 2.0 and Windows/386” by Charles Petzold, February 1988].
    • Читав і думав – не так вже й багато з того часу змінилося… Насправді, це жарт – доволі багато, але тяглість відчувається.

Поки відсутні

  • [“The Viewport Technician: A Guide to Portable Software Design” by Michael Brian Bentley, August, 1987 (в книзі – 1988)].
    • На Амазоні, на Internet Archive.
    • Порівнює Windows, Gem, Macintosh, Amiga, Apple IIGS тих часів.
    • Згадує книгу Дюранта, виглядає, що знає лише про Win 1.xx.
  • [“Programming with Windows” by Tim Farrell, 1987]
    • На Амазоні, на Google books.
    • Не маю доступу до неї в жодній формі.
    • Для уникнення плутанини, існує її наступне видання, “Programming in Windows 3.1”, 1992.
    • Пошук по Google books вказує – вона знає про Windows 1.03 i Windows 2.0
  • [“Microsoft Windows program development” by Michael I. Hyman, 1988]

Окремі користувацькі книги

Тут не прагнув до повноти списку.

  • “Windows: The Official Guide to Microsoft’s Operating Environment” by Nancy Andrews, May 1986.
    • На Амазоні. Не маю доступу до цього видання.
    • Існує друге видання, з назвою “Running Windows” by Nancy Andrews and Craig Stinson, 1990.
    • Ще одне видання: “Running Windows: The Microsoft Guide to Windows 2.0, Windows/286, and Windows/386” by Nancy Andrews and Craig Stinson, September 1, 1988.
  • “Using Microsoft Windows” by Ron Person, Karen Rose, 1988.
    • Виглядає, що книга для користувачів.
    • Амазон про неї не знає, хіба про “Using Microsoft Windows 3”, 1990 від тих же авторів.
  • “Understanding Microsoft Windows”, by Katherine Stuart Ewing, October 1988.
    • Виглядає, що книга для користувачів.
  • “Power Windows: Maximizing the Speed and Performance of Windows 2.0 & Windows/386” by Jim Heid, 1988.

Статті та інше

MS Windows 3.xx, 9x та NT

  • [“Programming Windows 3.1”, Charles Petzold, 1992, 3rd ed.]
    • Класична фундаментальна праця.
  • [“Undocumented Windows: A Programmers Guide to Reserved Microsoft Windows Api Functions” by Andrew Schulman, David Maxey, Matt Pietrek, 1992, 1st ed].
    • Маю сумніви, чи мені сподобається, але в дорозі – коли приїде, спробую почитати.
  • [“Windows Internals: The Implementation of the Windows Operating Environment” by Matt Pietrek, 1993, 1st ed.] та російський переклад, виконаний в Україні, “Внутренний мир Windows”, Мэтт Питрек, 1995.
    • Ймовірно, у свій час була корисною, але зараз видалася мені зовсім нудною. В 90-х думав – мені знань бракує, щоб зрозуміти. А ні – нудно і зараз.
    • Запам’яталася фраза з передмови до російськомовного видання: “З моєї точки зору, зовсім невірним є, наприклад, такий підхід до функціональних можливостей Windows: ‘Оскільки Windows не може забезпечити одночасну стабільну роботу поштової станції, Borland C++ 4.02 і сеансу DOS, де в фоні відбувається розпакування мегабайтових архівів, значить Windows – це дурня, несерйозно’. Побійтеся Бога, панове! Windows первісно не створювався для цього.” – виділення авторські.
  • [“Programming Windows 95”, Charles Petzold, 1995, 4th ed.]

  • “Неофициальная Windows 95” – про російський переклад “Unauthorized Windows 95: Developer’s Resource Kit/Book” by Andrew Schulman, Jan. 1994.
    • “Автору 95-ка подобалася. Місцями – надміру. Кумедно так читати щось типу: “на відміну від невиразної Windows NT”, “Microsoft теж помиляється, поміж її невдач OS/2 та Windows NT”, (не точні цитати, мій вільний переказ, хоч і близький до тексту), розповідь, що нічого особливо хорошого в чистій 32-бітній системі немає, а під 16-бітні (Windows 3.x та DOS) є купа коду, тому в найближчому майбутньому нікому чисті (нудні :-) ) NT не знадобляться і т.д.”
  • [“Writing Windows VxDs and Device Drivers” by Karen Hazzah, 1996, 2nd ed].
    • Дуже сподобалася, коли читав в 2023 – написана гарно, розповідає про дуже багато, але залишається детальною.
    • Попередня спроба розібратися, кінця 90-х, як ті драйвери створювати, залишила відчуття чогось складного та містичного, яке тепер зникло. Але ще планую спробувати.

OS/2

  • [“Inside OS/2” by Gordon Letwin, 1988]
    • Розповідає більше про ідеї та філософію, не про API абощо.
  • [“OS/2: принципы построения и установка”, М. Гранже, Ф. Менсьё, перекладено в 1991], з французької, “OS/2: Concepts et mise en oeurvre” , видання 1989 року.
    • Видалася не дуже захопливою, але коли писав літом 2020 лабораторну моїх студентів із паралельного підрахунку слів на OS/2 1.xx, трішки допомогла.

OpenVMS

  • [“Writing OpenVMS Alpha Device Drivers in C: Developer’s Guide and Reference Manual”, by Margie Sherlock andLeonard Szubowicz, August 1996]
    • Поки не читав, і не знаю, чи зможу подужати – але планую.
  • [“The OpenVMS User’s Guide” by Patrick Holmay, 1998, 2nd ed.]
    • Шляхи в OpenVMS незрівнянні: DKA0:[000000.DIR1.DIR2]FILE.NAME;5!

Книги про різні ОС

  • [“An introduction to operating systems” by Harvey M Deitel, 1984, 1st ed. revised; “An introduction to operating systems” того ж автора, 1990, 2nd ed. та “Operating Systems” by Harvey M. Deitel, Paul J. Deitel, David R. Choffnes, 2003, 3rd ed.]
    • Від і до (поки?) не читав, але цікаво було дивитися case study-приклади та порівнювати прогнози авторів із реальністю.
  • “Розповіді про операційні системи від Таненбаума” – про “Modern Operating Systems” by Andrew S. Tanenbaum et al.
    • Книга, звичайно, не ретро, але я паралельно читав друге (2001), третє (2008) і четверте видання (2014) – перші два вже можна вважати ретро. Зараз маю також перше видання, Feb. 1992 року, але в цій рецензії про нього не пише.
  • [“The Operating Systems Handbook: Unix, OpenVMS, OS/400, VM, and MVS” by Bob DuCharme, 1994]
    • Короткий підручник ОС із назви книги.
    • Після неї я задумався, наскільки, все ж, UI персональних комп’ютерів навіть в 80-х був зручнішим, чи, мінімум – людино-орієнтованим. в порівнянні із мейнфреймами.
    • Після неї якось особливу антипатію почав викликати VI – безперечно, це дуже продуктивний редактор! Однак, усвідомлення, що він (в подробицях) є таким не тому, що це краще, а тому що такі обмеження були в тих систем (до речі, термінал Осборна включаючи), остаточно відвернуло мене від VI5
  • [“Software Implementation Techniques: Writing Software in OpenVMS, OS/2, UNIX ans Windows NT” by Donald Merusi, 1995, 2nd ed.]
    • Порівняльний аналіз API згаданих ОС. Ще одна книга, схожа на можливі мої книги – у своїх курсах люблю робити такі порівняння.

CPU та інше обладнання

  • [“TTL Cookbook” by Donald Lancaster, March 1974, 1st ed.]
    • Автор помер зовсім недавно, 7 липня 2023, а всі його книги викладено на сайті: https://www.tinaja.com/.
  • [“Inside the 80286”, by Edmund Strauss, 1986]
    • Книга від розробника цього процесора, і хоча особливих одкровень не було, читати було цікаво.
    • Містить єдину відому мені відпрацьовану демонстраційну схему комп’ютера на базі 286.
  • [“80386 Technical Reference” by Edmund Strauss, 1987]
    • Поки не дочитав, але видається менш цікавою, ніж попередня книга цього автора, про 80286 – довідник та й довідник.
  • [“Процессоры intel от 8086 до Pentium II”, Михаил Гук, 1997-98].
    • Детальний довідник, від часових діаграм до SIMD-команд.
    • Певне, перша книга, куплена за власні гроші.
  • [“Современный микропроцессоры”, В.В. Корнеев, А.В. Кисилев, 1998]
    • А ця була, певне, другою купленою самостійно.
    • Читав у ній про Alpha ISA, Power PC, SPARC, трансп’ютери тощо, із сумною думкою – навряд чи колись мені вдасться з ними побавитися. А зараз маю і Alpha, і Sparc, і з іншими несподіваними ISA стикався – скоро писатиму.
  • [“Аппаратные средства IBM PC”, 2001, друге видання та 2006 – третє]
    • Хоча, більшість книг про IBM PC – в розділі DOS, ця – глибоко апаратна, тому – тут.
    • З неї запам’ятав фразу: “Іноді USB ще називають UnuSed Bus, через малу кількість пристроїв для неї”.

CP/M

Завдяки '’Українській спільноті комп’ютерної історії’’ з’явився у мене Osborne Executive, а разом із ним – натхнення поекспериментувати з CP/M6.

В процесі з’явилася ця серія статей. Написані вони, тримаючи в голові ідею історичної реконструкції. Викладатиму їх потроху.

  1. Розпочнемо із самої машини: портативні комп’ютери Osborne.
  2. Щоб працювати із Osborne, потрібні дискети. Створення їх – нетривіальна задача. Як я її, (чесно кажучи – блукаючи манівцями), вирішував.
  3. На реальному залізі, безперечно, цікавіше – але довго, та й машинка старенька – шкода багато навантажувати. Тому потрібні емулятори – [на щастя, вони є]:
    • RunCPM – емулятор узагальненої CP/M-системи. Дуже зручна для ретро-розробки.
    • MAME – емулятор взагалі всього, включаючи Осборни.
    • Інші – myz80 (узагальнений емулятор) та Altair32 (емулятор Altair 8800 та IMSAI 8080)
  4. Базові утиліти CP/M.
  5. Текстовий редактор te.
  6. Історична реконструкція – як програмували в ті часи:
  7. Інші тогочасні утиліти.
  8. Сучасні CP/M машини.
  9. Посилання.

MS/PC-DOS

Ранні версії DOS

  • “MS/PC DOS 1.0” – коротко про історію DOS 1.xx та 2.00. Зараз я б писав дещо по іншому, але не настільки, щоб переписувати.
  • “MS/PC DOS 1.XX в емуляторах” – аналогічно, моя думка про емулятори з того часу сильно змінилася. За нагоди напишу нову версію цього посту.
    • Так, PCem не найгарніший – але дуже точний.
    • Та й до MAME зараз по іншому відношуся – інтерфейс у нього жахливий, але безліч підтримуваних платформ та гарний код вирішують.
  • “MS/PC DOS 1.XX “Ось ти який, північний олень!””
  • “DOS FCB” – насліддя CP/M в MS-DOS/PC-DOS.
  • “86-DOS 0.11 та 0.34” – експерименти з цими доісторичними версіями.

Серія статей про дизасемблювання SYS.COM та інших утиліт DOS

OS/2

TBD

16-бітні Windows

TBD

Інші OS

TBD

IBM PC-сумісні комп’ютери

x86

Інше

Засоби розробки для ретро:

  1. Хай і без фанатизму в досягненні відсутності анахронізмів та чистоті. 

  2. Завдяки простоті більшості тих комп’ютерів, все ж не нульові. 

  3. Хотів, скажімо, значну частину життя написати VxD драйвер, але на щось складне чи справді коричне ресурсів забракне. То обмежуся “навчальним” прикладом. 

  4. Іноді виходять дуже захопливі інтриги, особливо, коли знаєш, як все обернулося насправді. 

  5. Це швидше мій недолік, звичайно. 

  6. Це дуже важлива історична операційна система, але чомусь, до появи живої машини, мені ніяк не вдавалося “зануритися” у неї.