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 абощо.
  • “Advanced Os/2 Programming” by Ray Duncan, 1989
    • Підручник з програмування під 16-бітові OS/2. Від консольного вводу-виводу до написання моніторів пристроїв та драйвері. Хіба що GUI не зачіпає.
  • [“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. Це дуже важлива історична операційна система, але чомусь, до появи живої машини, мені ніяк не вдавалося “зануритися” у неї. ↩