Тема: The Best Tool Kit и все, все, все...
Привет!
На сегодня у нас на рассмотрении весьма занимательная операционка - Best Tool Kit.
И всё, что с ней связано.
Это не совсем обычная операционка. Она возникла как каркас или небольшая прослойка для компилятора ассемблера, но затем долго и хитро развивалась разными авторами. Не подковыривалась и подпиливалсь, а, порой, существенно переписывалась. У неё было довольно необычное назначение: переделка эпловских программ под Агат. В общем, этакий развитый отладчик. Но затем она развилась до вполне себе самостоятельной ОС (по агатовским меркам).
Во времена реального Агата мне почему-то так и не довелось встретится с ней. Так же как и с ИКП. Я не знал об их существовании, а те, с кем я обменивался программами, видимо, считали эти пакеты абсолютно доступными всем и как-то не упоминали даже на сессиях обмена дискетами. Поэтому сейчас я, хоть немного, хотел поковыряться в ней. Результаты изложу в виде истории развития этой системы.
-=-=
Началось всё, как это было нередко на Агате, с группы Виталия Цикозы. Он включил в ОС Школьница Диалоговый Отладочный Комплекс, который состоял из:
1) компилятора ассемблера,
2) текстового редактора,
3) небольшой дисковой ос (я бы сказал - это был, практически, чистый драйвер файловой системы, без излишеств),
4) драйвер дисковода 140-ки,
5) немного расширенного сисмона.
ДОК работал на семёрке, развивался примерно с 86 по 88 год.
Что там дополнялось/исправлялось - никто не знает.
Я видел примерно такие версии Школьница (и ДОК - у них был общий указатель версий):
"Версия 2, 1985 год",
"20.08.86" - отсюда начинаются Версии 3, похоже, эта версия под какую-то нестандартную семёрку,
"24.08.86" - возможно, то же самое,
"17.10.86" - весьма популярная версия,
"08.03.88" - похоже, последняя для 140ок.
"ИHЖEHEPHЫЙ BAPИAHT BEPCИЯ 1.3.2" - подозреваю, что это чья-то частная переделка.
В чём разница между версиями системы - неизвестно.
Однако документированный программный интерфейс, насколько мне доводилось им пользоваться, совпадает между 86 и 88 годами.
Дальше РАПИРА и ДОК развивались отдельно. А может РАПИРА и совсем не развивалась - не знаю.
ДОК в составе Школьницы попал из Новосибирска в Москву и там А. Голов, по просьбам программистов Агата, взялся вытащить из него Отладочной комплекс в виде отдельной программы (без Школьницы). Это было необходимо по двум причинам: убрать паузу меню загрузки и освободить значительную часть диска - Школьница занимает на 140ке чуть меньше половины объёма. Отдельно взятый ДОК - меньше 20%.
А. Голов выпустил свою работу под названием "Агат-Ассемблер". Существует две его версии:
87 и 88 года.
Дополнений у Агат-Ассемблера, по сравнению с ДОК, не много, но они существенны:
1) макросы клавиатуры,
2) поддержка принтера в отладчике,
3) доработанный компилятор ассемблера, позволяющий компилировать бинарники гораздо большего объёма, чем ДОК.
Существенной проблемой ДОК была не совсем удачная организация памяти (она диктовалась РАПИРой) и довольно слабый драйвер файловой системы (ДОС), который поддерживал только К- файлы (по командам отладчика [RUN / [LOAD / [SAVE ) и ... Ну он ещё мог работать с произвольными файлами (загрузить / сохранить), но команд отладчика для вызова этих функций не было.
Тогда А. Голов взялся за разработку собственной системы. Он практически отказался от кода ДОК и переписал всё с нуля. В то же время сохранив синтаксис командной строки и логику работы отладчика. Новая система называлась (пока что) "Агат-Отладчик". Дело происходило на семёрке, примерно в конце 1987 года.
Агат-Отладчик поддерживал чтение/запись B-файлов, практически весь свой код хранил в эмуляторе ПЗУ, таким образом оставляя свободным регион почти от начала базового ОЗУ ($1800) до $BFFF - тем самым делая достаточно лёгким чтение, модификацию/адаптацию и запись здоровых эпловских игр.
Также в Агат-Отладчик были встроены ряд новых средств: посекторный копировщик дисков, быстрый просмотрщик ОЗУ и посекторный редактор диска.
Где-то в районе 1989 года у А. Голова появился свежий 840кб дисковод и контроллер к нему. Это было здорово и возникла идея, а может даже потребность, поддержать его в Агат-Отладчике. Но к тому моменту в этой программе накопилось уже много проблем архитектурного порядка и поэтому было решено писать всё почти с нуля.
Так возникла Best Tool Kit. Она существовала примерно в 3-4 версиях, все они датировались 89 годом (Я видел 89.0, 89.2, 89.3. Наверное, где-то есть ещё 89.1).
Кроме прочего в BTK появилась такое понятие как "резидент" - это программа, записанная в специальном формате, которая загружается в ОЗУ и может быть в любой момент вызвана. Можно многократно переходить между отладчиком BTK и резидентом. Но одновременно можно было держать в ОЗУ только один резидент.
Немаловажно, что А.Голов снабжал BTK очень хорошей документацией, описывающей не только работу в комстроке отладчика, но и архитектуру системы: программный API, структуру загрузочного диска, карту ОЗУ и даже объяснял, как можно скопировать BTK.
BTK была мощной и весьма распространённой системой: практически невозможно встретить коллекцию дисков (кроме моей, ага), не включающую в себя ту или иную версию Best Tool Kit.
Однако у А.Голова были дальнейшие планы по её развитию. Следующая версия системы - The Revolution. Мне не удалсь найти точных данных о причинах её появления и отличиях, документации к ней не существует. Известно только, что она не была закончена, а основными (или одной из значимых) целями её разработки была динамическая поддержка больших объёмов ОЗУ (включая нестандартные модули ДопОЗУ семёрки - такие были у ключевых разработчиков Агата) и поддержка подкаталогов. Наши раскопки показали, что существовало минимум две "режиссёрских" версии этой системы: "01.0" и "90.0".
Мне точно неизвестно, почему А.Голов ушёл от дальнейшего развития этого направления. Предполагаю, что он увлёкся разработкой полноценных ОС и/или счёл, что необходимые возможности достигнуты или - вообще - необходимость в них уже исчезла (хватить адаптировать эпловские проги, пора писать свои !).
Так или иначе, но дальнейшее развитие BTK перешло к другим людям.
Первое, существеннейшее, что нужно было сделать - перенести BTK на девятку.
Здесь начинается странная суета. Судя по всему, переделку выполнили некто "Master&Forward". Дисков с их подписью встречается довольно немало. Но так же встрачались диски с подписью "Petruhin". Сложнее то, что эти версии имели номера, что были у А.Голова, причем иногда можно было встретить диск, по содержимому соответствующий одной версии, но маркированный другим номером версии.
Судя по шедшей на дисках документации, этими именами себя обозначили
А.Кобозев и Н.Николаичев. Хотя, вероятно, в работе участвовало большее число людей.
BTK для девятки попадалась мне в следующих вариантах: 89.2, 89.3, 92.9, 92.10, 92.11 и 93.5 (посекторно почти совпадает с 89.2).
Насколько я понимаю, 89.x - это только адаптация под девятку, в то время как 92.x - это несколько доработанные версии. Доработки мигрировали также и обратно на семёрку в виде версии, подписанной "Мастер &", причем в заставке указаны одновременно "1992" и версия "90.08".
В документации встречается странный "баг": в заголовке указано: "ВЕРСИЯ 89.2", в то время как в первом же абзаце: "В данном документе описывается версия системы 92.9". При загрузке с этого диска выводится номер версии "92.10". Та же комбинаторика встречается и на диске с версией "92.9": тут в первом абзаце упоминается версия "92.8".
Судя по шедшей на дисках документации, версии 9x.xx отличались следующим : поддержкой подкаталогов и виртуального диска. Т.е. направление развития было то же, что и The Revolution. Однако если Revolution адаптировалась под различные объёмы дополнительного ОЗУ (как по количеству модулей так и по их объёму), то BTK-9 работала только с ДопОЗУ девятки, причем только с одним экземпляром.
Затем, как это обычно бывает, система очередной раз переросла саму себя. Авторы доработок сочли, что будет проще все переписать, чем продолжать пилить существующую версию. Переписанную версию назвали "The BEST".
Сложно сказать, сколько было переписано с нуля, а сколько взято от BTK, но если взглянуть, например, на какой нибудь регион в ЭмПЗУ, то видно, что код 89.0/7, 89.2/9 и 92.9/9 почти не отличается один от другого (может чуть-чуть сдвинут между /7 и /9, в то время как в The BEST 5.4/9 он совсем другой.
"The BEST" встречалась только для девятки, в следующих версиях: 93.0, 5.x "Мастер & Кo", 5.0, 5.3, 5.4. В версии 5.x номер версии изображён в виде ascii-art, поэтому я не вполне уверен, что именно там написано, хотя это похоже на 5.0. Но есть и версия 5.0, где цифры написаны обычным текстом, ... так что я опять не знаю - чей это мод и какая версия всё таки скрывается под 5.x. Посекторно она больше похожа на 93.0, чем на 5.0.
Но было ещё одно изменение в The BEST, да и в переделках на девятку, о котором как-то особо не писали в документации: существенно увеличилось количество документированных входных точек. Т.е. расширялся API. Я даже себе табличку небольшую слепил:
23b 26b s16 AO xx.x - Агат-Отладчик
23b 26b s16 AO 88.0
23b 27d s22 AO 89.1
271 2e9 s40
7: BTK 89.0, 89.3, 89.2, 90.8 - BTK
9: BTK 89.2, 89.3, 92.9, 92.10, 92.11
27a 30d s49 Rev 01.0 - The Revolution
27a 30d s49 Rev 90.0
265 301 s52 The BEST 5.?, 93.0
25f 301 s54 The BEST 5.0, 5.3, 5.4
268 304 s52 BTK.FIL - The BEST в виде файла, версия неизвестна.
Первые две колонки можно не смотреть, самая интересная 3 и 4: после буквы s число векторов т.н. "второй таблицы".
Т.е. если в Агат-Отладчике было около 20 функций (в основном, обмен с терминалом, посекторный доступ к диску и ещё кой что), BTK - около 40 (причем документированы были только около 20), то в BTK-9 были сперва документированы оставшиейся 20 (включая, например, доступ к драйверу ФС), а затем, в The BEST дописано ещё около 10.
Но мы забыли об исходном ДОК. А между тем он продолжал развиваться, хотя и без авторства и документации. К сожалению, в его развитии не было принято указывать ни отличий, ни авторства, ни версий. Между тем явно видно, что в ИКП-90 у него было изменено меню, а в ИКП-Локальная Сеть и ИКП-Кермит - изменено ещё раз. Изменился набор: теперь без РЕГ печатаются маленькие буквы, добавлена команда REV - это аналог DCI, но заполняющий память в обратном порядке...... Возможно, изменилось что-то ещё. Стал ли он, по совокупности изменений, лучше - не знаю. Наверное, иначе бы авторы вряд ли стали его выпускать :)
Ещё одна ветка: это ассемблер Громова - развитие ассемблера ДОК, переделанного для работы в среде BTK. Но про него я уже писал тут, на форуме:
http://forum.agatcomp.ru//viewtopic.php?pid=796#p796