четвер, 28 лютого 2013 р.

DOS FCB

Видалення файла
засобами FCB...
Колись давно-давно, коли я був у десятому класі (але згадати рік не видається можливим, 1995 або 1996, швидше все ж 95), активно цікавився комп'ютерами і дуже хотів розібратися, що ж то за мова така -- асемблер, вдалося мені купити тематичну книжку. Питер Абель, "Ассемблер и программирование для IBM PC", 1992 року російськомовного видання, вона ж, якщо я правильно вгадав, "I. B. M. Personal Computer Assembly Language and Programming" by Peter Abel, 1987.  Що схоже на правду, бо про 4.0 DOS там точно згадується, про новіші -- ні. (1)

Раніше я б назвав цю книжку дуже хорошою. Зараз, маючи можливість порівняти, але не маючи можливості позбутися впливу першого знайомства, стикаюся з певними труднощами у вираженні, що я про неї думаю. Книжка не дуже сильна. Багато що не пояснено або пояснено занадто вузько. Приклади містять багато помилок. Переклад, місцями, жахливий (2). З іншого боку -- вона була першою, дістати аналогічну літературу для мене було практично (3) неможливим, і таки змогла навчити початкам асемблеру, даючи можливість розвиватися далі. Так що я їй вдячний, як би там не було (4).

Здавалося б, до чого тут DOS 1.xx (пост раз, пост два, пост три)? Все просто. Читаючи її, натрапив на розповідь, про те, що ось є такий метод роботи з файлами, за допомогою FCB (File Control Blocks), який крутий, бо є в базовій версії DOS, а значить буде працювати всюди, а є інший, за допомогою "хендлів" (handles, номери файлів), який, відповідно, працюватиме не всюди, лише для DOS 2.0+. Проблема "раз" була в тому, що мені-тодішньому, не особливо досвідченому в асемблері, FCB-метод видався багато складнішим, ніж той другий, з використанням номерів файлів. Тому працював я виключно з останнім, але довго потім мене мучило, що я халявщик -- пішов легкою дорогою. Тут випливає проблема "два" -- не маючи в 15 років особливого досвіду, не маючи доступу до літератури, чи, тим більше, Інтернету (який в Україні вже потроху був, як не дивно, та ще й в моєму теперішньому інституті (5)), навіть не знаючи дати виходу оригінального видання -- 1987, я не зміг усвідомити, що в 1995-96 "базовий" DOS 1.00, як і всі його безпосередні обмеження дааавно неактуальні (6).

Недавно був у мене особливо поганий настрій, вирішив я спробувати ті FCB на смак. Вийшло як завжди -- чотири об'ємних поста...

понеділок, 25 лютого 2013 р.

MS/PC DOS 1.XX "Ось ти який, північний олень!"

Розібравшись, в попередніх постах ("MS/PC DOS 1.0", "MS/PC DOS 1.XX в емуляторах"), із історією народження PC/MS-DOS та навчившись запускати такі старі версії DOS, подивимося нарешті, що ж він собою являв.

Ми вже переконались раніше, що DOS 1.00, а тому, швидше за все, і всі DOS 1.XX для справді IBM PC-сумісних машин, нормально працюють на сучасних машинах (за винятком перевірки сигнатури бут-сектора). Тому, для автентичності, надалі працюватимемо, емулюючи IBM PC 5150, з оригінальним BIOS (включаючи ROM BASIC). Лише, щоб довго не чекати, іноді будемо збільшувати робочу частоту. Використовуватимемо, в основному, SPC/XT (деталі див. попередній пост).

IBM PC-DOS 1.0

неділю, 24 лютого 2013 р.

MS/PC DOS 1.XX в емуляторах

Теж емуляція ;-)
На завершення попереднього поста я згадував, що побачити DOS 1.xx в емуляторах не так просто. Щоб зрозуміти, чому, розглянемо як відбувається завантаження операційної системи (ОС) в IBM PC-сумісних комп'ютерах. 

суботу, 23 лютого 2013 р.

MS/PC DOS 1.0


IBM PC з PC-DOS 1.1.
Той самий, модель 5150.
(c) www.vintage-computer.com
Натрапив я недавно ще на одну штуку зі свого дитинства. Вирішив написати про неї, в процесі стало зрозуміло, що контекст буде незрозумілим.  Довелося почати з історичної довідки.

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

Історія


Отож. Йшов 1980 рік. Я ще тільки збирався народитися, а компанія IBM готувала свій черговий (на той момент - таємний!)  проект -- новий персональний комп'ютер. (Див. додаток 1!). В його ROM було прошито BASIC від Microsoft -- IBM, очевидно, вже мала певний досвід співпраці з цією фірмою. BASIC міг служити в ролі примітивної операційної системи, зокрема, вмів завантажувати програми з касет. Однак, цього було мало -- потрібна була справжня операційна система (ОС). Планувалося залучити CP/M-86, версію популярної тоді 8-бітної ОС, CP/M, для 16-бітного 8088/8086 процесора. Однак, розробник та власник CP/M, Gary Kildall, щось кумизився (1), а час підтискав, тому, після переговорів, Мікрософт взялася надати і ОС.