четвер, 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 на смак. Вийшло як завжди -- чотири об'ємних поста...