1-257,256,256,263,263,263
2-300,305,313 на 4 уходит в автоповтор
1-257,256,256,263,263,263
2-300,305,313 на 4 уходит в автоповтор
При нажатии F12 терминал шлёт те коды, которые назначены на эту клавишу ( как и любую другую клавишу с изменяемыми кодами ).
Если открыть файл Terminal.ini - можно узнать, какие коды назначены на изменяемые клавиши:
Понятно, что если не изменить назначенные коды для клавиши F12 - она так и будет слать строку: "F12 " ( 106 061 062 040 ) при каждом нажатии.Код:ANSI_STR_FOR_KEY[F1] = "Help me !!! " ANSI_STR_FOR_KEY[F2] = "Dir\015" ANSI_STR_FOR_KEY[F3] = "F3 " ANSI_STR_FOR_KEY[F4] = "F4 " ANSI_STR_FOR_KEY[F5] = "\033g" ANSI_STR_FOR_KEY[F6] = "\033h" ANSI_STR_FOR_KEY[F7] = "\033S" ANSI_STR_FOR_KEY[F8] = "\033c" ANSI_STR_FOR_KEY[F9] = "\033\024" ANSI_STR_FOR_KEY[F10] = "\033\010" ANSI_STR_FOR_KEY[F11] = "\033\023" ANSI_STR_FOR_KEY[F12] = "F12 " ANSI_STR_FOR_KEY[Insert] = "\033P" ANSI_STR_FOR_KEY[Delete] = "\033e" ANSI_STR_FOR_KEY[Home] = "\033Q" ANSI_STR_FOR_KEY[End] = "\033f" ANSI_STR_FOR_KEY[PageUp] = "\033R" ANSI_STR_FOR_KEY[PageDown] = "\033d" ANSI_STR_FOR_KEY[PF1] = "\033P" ANSI_STR_FOR_KEY[Pad_Slash] = "\033Q" ANSI_STR_FOR_KEY[Pad_Star] = "\033R" ANSI_STR_FOR_KEY[Pad_Minus] = "\033S" ANSI_STR_FOR_KEY[Pad_Plus] = "\012" ANSI_STR_FOR_KEY[Pad_Dot] = "." ANSI_STR_FOR_KEY[Pad_Enter] = "\015" ANSI_STR_FOR_KEY[Backspace] = "\177" ANSI_STR_FOR_KEY[Enter] = "\015" ANSI_STR_FOR_KEY[LCtrl] = "\016" ANSI_STR_FOR_KEY[RCtrl] = "\017" ANSI_STR_FOR_KEY[LWin] = "\016" ANSI_STR_FOR_KEY[RWin] = "\017" ANSI_STR_FOR_KEY[LAlt] = "\016" ANSI_STR_FOR_KEY[RAlt] = "\017" ANSI_STR_FOR_KEY[Apps] = "\012"
Чтобы вместо строки "F12 " отправить при нажатии на клавишу F12 код сброса - нужно изменить назначение кодов для клавиши F12.
Можно сделать это прямо в файле Terminal.ini, а можно - в разделе [VT52.ini] используемого файла конфигурации:
Код:ANSI_STR_FOR_KEY[F12] = "\375"
Последний раз редактировалось Patron; 10.01.2014 в 21:40.
Учитывая, что при сбросе любого терминала устанавливается режим LAT, переход клавиатуры по сбросу в режим RUS - тоже не самый ловкий ход. Значит, при запуске конвертера MS7004-ASCII - он должен посылать код сброса, а потом сразу включать светодиод LAT.
Можно назначить на какие-нибудь F-клавиши коды включения/выключения светодиода LAT и проверить, как это работает:
Код:ANSI_STR_FOR_KEY[F3] = "\021\220" ; Включить LAT ANSI_STR_FOR_KEY[F4] = "\023\220" ; Выключить LAT
Модульный эмулятор везде одинаковый, название exe-файла влияет только на то, какой ini-файл читается при его запуске - pdp11.exe читает pdp11.ini, VT52.exe читает VT52.ini ( и т.д. ).
Если ( например ) есть реальная ДВК, реальный терминал 15ИЭ-00-013 без клавиатуры и реальная клавиатура МС 7004, то на PC с тремя реальными COM-портами можно сделать даже так, чтобы к одному реальному терминальному порту реальной ДВК подключить одновременно - реальный терминал 15ИЭ-00-013 на вывод и реальную клавиатуру МС 7004 ( через конвертер ) на ввод.
Ничто не мешает создать в отдельном каталоге "зоопарк" и поэкспериментировать.
Модульный API позволяет иметь в одном каталоге любое количество эмуляторов одновременно. Держать разные эмуляторы в разных каталогах хорошо тогда, когда ( например ) используются одноимённые файлы DSK-образов с разным содержимым.
Одновременно запущенным эмуляторам тоже лучше работать с разными файлами образов, если при работе в образах планируется что-то изменять.
Если запрошенный ini-файл отсутствует - он создаётся со значениями по умолчанию. Слитие всех ini-файлов в один будет полностью эквивалентно простому удалению всех остальных ini-файлов и на работу эмулятора существенно повлиять не должно.
Эмулятор ( в смысле exe-файл загрузчика модульного API ) только читает свой ini-файл, узнаёт там, какой "корневой" cfg-файл надо загрузить, ищет модуль Main_module.em, заказывает там создание объекта Config и передаёт созданному объекту путь к корневому файлу конфигурации, который он прочитал в ini-файле. Окна выводит уже объект Config, программа для которого ( на специальном языке описания конфигураций ) написна в загружаемом файле конфигурации *.cfg
По сути, "эмулятор" - это текстовый cfg-файл, а exe-загрузчик - это просто интерпретатор загружаемой cfg-программы.
Можно написать конфиг, который будет загружать несколько других конфигов - тогда в закладках главного окна будет то, что было бы в главном окне эмулятора при загрузке каждого из этих конфигов как основного.
Ну, и не забудем, что любую закладку ( кроме системной консоли корневого конфига ) можно освободить в отдельное окно - тогда каждый загруженный конфиг будет в отдельном окне, но все они будут в одном общем процессе.
Последний раз редактировалось Patron; 11.01.2014 в 02:58.
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)