Код:
Описание гибридного дистрибутива ОС RT11 версии МФТИ/КПМ 205
Last correction : Date 24/12/89 Time 01:29:29
Составлено Яковлевым С.С.
В компоновке дистрибутива принимали активное участие:
Яковлев С.С., Трушин Энди, Пудгородский Юрий, Цургаев Леша, Ведутин Саша,
Загороднюк Виталий, Мосийчук Андрей.
При внесении изменений учитывались:
Опыт эксплуатации разных версий ОС, в особенности RT11CD.SYS[70], созданной
неизвестными людьми, но получившей невероятное распространение благодаря
отсутствию в ней глюков, надежности, и усилиям Белица А.В. и Яковлева С.С.
Пожелания окрестных программистов по добавлениям в команды ОС.
Размер дискет одинарной плотности (443 Free blocks).
Основные цели создания этого дистрибутива:
1. Устранение всех замеченных ошибок.
2. Облегчение процесса корректировки за счет более мелкого разбиения файлов.
3. Изменение системного промпта по образцу RT11CD.SYS[70].
4. Добавление ключей к некоторым командам для более полного использования
возможностей системных утилит (LIBR,RESORC).
5. Оптимизация монитора по размеру на диске. Для этого сильно
перераспределены оверлейные сегменты KMONа.
6. Перенос некоторых ЕМТ в RMON из USR. В особенности .QSET,.CDFN.
7. Коррекция USR для более приличной реакции на фатальные ошибки - пусть
выдается сообщение, но задается вопрос и ждет ответа. А то заколебал вылет из
программы по No device и тому подобным сообщениям.
**** На будущее (занимается Пудгородский):
8. Переделка RMON,USR и команды ASSIGN. Каждое логическое устройство помимо
имени физического устройства имеет слово начала и длины относительно соотв.
физического имени. Команда ASSIGN получает расширение:
ASIIGN файл логимя
где файл может быть:
имяустройства(от 1 до 3 симв):[имяфайла[.тип]][/STA:нач.блок][/END:конеч.блок]
[/ALL:длина лог уства]
Поскольку это значит, что AS MY1 DK будет теперь назначением файла
DK:MY1.DSK на лог устройство DK, то это, конечно, приведет к разночтениям.
Поэтому принято решение последовательности от 1 до 3 символов без
двоеточия сначала искать как устройство в таблицах RMON, и лишь потом как
файл на устройстве DK:. Такая переделка позволяет не пользоваться драйвером
LD и иметь значительно больше лог дисков и любой уровень их вложенности (в
пределах размера таблиц RMON). Кроме того, изменения USRа и RMONа
относительно малы и полностью сохраняется совместимость с прежними версиями.
Для решения этих задач уже сделано (почти все изменения в текстах
отмечены комментарием ;####):
1. Файл KMOVLY.MAC разбит на мелкие файлы и перекомпонован. При этом
командный файл сохранил исходный вид, а части KMOVLY включаются директивой
.INCLUDE.
2. В USR.MAC устранена ошибка обработки PANIC DUMP, привфодившая к
зацикливанию: вставлено сохранение и восстановление регистра R1. Ошибка
обнаружена Пудгородским. В мониторе RT11CD исправлена.
В SYSGEN.COM вставлен 99 вопрос (после 33) об обработке PANIC DUMP.
3. В KMONе и в USRе изменены выводимые строки.
4. В KMONе поставлена условная трансляция на включение текстового
представления команд только при включении самих команд.
5. В EDTGBL изменено имя монитора на RT11QQ просто для его идентификации и
отличаемости от других. Можно это найти (NAME$5) и исправить по вкусу.
6. В KMONе исправлена ошибка загрузки адресов 500-1000 по командам R и RUN
(ошибка обнаружена Энди Трушиным на мониторе RT11SJ.SYS[79] V05.02 генерации
Пудгородского Юрия, идентифицирована совместными усилиями Трушина, Яковлева,
Цургаева, Ведутина и устранена Яковлевым и Цургаевым). Она приводила к тому,
что программы без бита CHAIN$ в JSW грузились так, словно они загружены по
запросу .CHAIN, область 500-1000 не грузилась в ОЗУ, что приводило к вылетам
по TRAP TO ... и т.п. В мониторе RT11CD глюк исправлен.
7. Файл KMOVLY в основном из версии V05.04 по вине Яковлева, потерявшего
неиспорченный вариант V05.02. Оверлей команды UNLOAD из версии V05.02.
BSTRAP смешанный V05.02/01/04.
Чистокровные версии V05.04 показали такую глючность и неспособность
нормально работать (XM вообще не удалось довести до приличного состояния),
что мы сочли более продуктивным генерить гибрида. Опыт показал правильность
выбранной линии.
8. В процессе генерации промежуточных версий было обнаружено, что директива
.INCLUDE выполняется макроассемблером правильно для всех файлов, кроме
последнего (в последнем порождаются глюки необычайной силы и красоты). По
предложению Мосийчука после нормальных .INCLUDE делается .INCLUDE файла, не
содержащего приличного текста, а только комментарии.
9. Директива .WEAK в файле EDTGBL приводит к интересным сообщениям при
компоновке, если пользоваться маленьким (29,28) блоков LINK.SAV. Версия
LINK.SAV длиной 49 блоков воспринимает все правильно.
10. Очередная версия сгенерена с огромным(31.) количеством доп. слотов для
устройств. Хотя это и сделано в основном для меня лично и моих логических
дисков, многим это понравилось. Для генерации совсем маленького не только на
диске, но и в памяти монитора (что важно при работе на MX, где все равно не
бывает много устройств) можно задать и меньшее количество слотов. Если вам
будет облом запускать SYSGEN (что весьма занудно), воспользуйтесь файлом .CND
и измените в нем переменную SLOT$.