Изменение эмулируемой конфигурации.
Формат файлов конфигурации.
--------------------------------------------
Так как имеющихся в комплекте поставки эмулятора .cfg-файлов не достаточно "на все случаи жизни", то прежде чем копировать их под другими именами и затем изменять, или "с чистого листа" создавать новые - полезно в общих чертах уяснить, что именно и зачем там написано.
Все файлы конфигурации имеют ( в основном ) следующий формат:
основанный на формате MS PrivateProfile для .ini-файлов.Код:[section] key = value ; comment
Символ ';' имеет особый смысл и исключает строку из рассмотрения ( превращая её в комментарий ) только в том случае, когда является первым непробельным символом в строке.
Три секции в каждом .cfg-файле ( обычно располагающиеся в начале файла ) имеют специальное назначение.
...
Секция [modules] содержит объявления используемых модулей в формате:
Модули эмулятора - это обычные файлы .dll, переименованные в .emКод:имя_модуля = путь_к_файлу_модуля
Поиск файла модуля ( если путь к файлу модуля не исключает такой возможности ) вначале осуществляется в каталоге встроенных модулей. В комплекте поставки "эмулятора ДВК" все поставляемые модули встроены в файл pdp11.exe.
В версии модульного API, существующей на момент создания данного описания - средства просмотра пользователем каталога встроенных модулей отсутствуют.
Чтобы экспортируемые модулем объекты могли быть использованы в эмулируемой конфигурации - модуль должен быть объявлен в секции [modules].
...
Секция [objects] содержит объявления используемых объектов в формате:
В версии модульного API, существующей на момент создания данного описания - средства просмотра пользователем списка экспортируемых модулем объектов отсутствуют.Код:имя_объекта = имя_модуля:тип_экспортируемого_модулем_объекта
В процессе загрузки файла конфигурации - объекты создаются в том порядке, в котором они объявлены в секции [objects], и если объект создаёт окно средствами модульного API - такие окна располагаются на панеле закладок объекта Config в порядке создания "владеющих" ими объектов ( слева направо ).
Все имена объектов, объявленных в секции [objects], должны быть уникальны (иначе эмулятор будет ругаться).
...
Секция [links] содержит строки ( несовместимые с форматом MS PrivateProfile для .ini-файлов ), описывающие способы динамического связывания созданных объектов на специальном языке описания связей ( который будет рассмотрен позже ).
В секции [links] "поведение" символа ';' отличается от других секций. В любых других секциях символ ';' "работает" ( превращая строку в комментарий ) только в самом начале строки, а в секции [links] - символ ';' означает начало комментария в любой позиции.
Это позволяет "отключать" несколько последних элементов в строке описания группового присоединения, без необходимости их полного удаления из строки.
...
Все остальные секции .cfg-файлов имеют формат:
и автоматически размещаются там объектами при их первом создании ( в том случае, если объект имеет хотя бы одно хранимое состояние или хотя бы один хранимый параметр ).Код:[имя_объекта.ini] параметр = значение ; комментарий
Если изменить имя какого-либо из объектов, создаваемых в ранее загружавшемся файле конфигурации - в этом файле конфигурации появится новая секция, тогда как "старая и бесхозная" - никуда не денется. Это сделано для того, чтобы при временном "выкомментировании" объектов из конфигурации - секции с их настройками не пропадали.
Начальные значения всех параметров в "свежей" секции объекта - соответствуют их значениям по-умолчанию. Только что автоматически созданная "свежая" секция объекта не может содержать значений базовых параметров ( из глобального ini-файла класса ), однако при любом изменении базовых параметров экземпляра объекта в процессе эмуляции - их изменённые значения будут сохранены в секции этого объекта в файле конфигурации.




Ответить с цитированием