Важная информация

User Tag List

Показано с 1 по 10 из 1824

Тема: Эмулятор ДВК

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Эмулятор терминала. 2. Настройки клавиатуры.

    Эмулятор терминала.

    2. Настройки клавиатуры.
    ------------------------------


    Базовые параметры объектов типа Terminal находятся в ini-файле класса - Terminal.ini.

    Любой из этих параметров может быть переопределён для конкретного экземпляра объекта типа Terminal в ini-секции такого объекта в файле конфигурации.

    Например.

    В файле Terminal.ini из комплекта поставки эмулятора для клавиши <F12> задана такая подставляемая строка:
    Код:
    ANSI_STR_FOR_KEY[F12] = "F12 "
    А в секции [VT52.ini] файла default.cfg такая:
    Код:
    ANSI_STR_FOR_KEY[F12] = "f12 "
    Запустив эмулятор в конфигурации по-умолчанию и нажав клавишу <F12> можно проверить, какая из подстановок будет выполнена.

    Всего можно определить в файле Terminal.ini и переопределить в ini-секциях объектов типа Terminal в файлах конфигурации подставляемые строки для следующих клавиш:
    Код:
    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[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"
    Легко заметить, что в конфигурации по-умолчанию - клавиши <Ctrl>, <Win> и <Alt>, расположенные слева от пробела - генерят код перехода на русский регистр ( 016 ), а расположенные справа - код перехода на латинский регистр ( 017 ).

    Клавиша <Apps> генерит по-умолчанию код LF ( 012 ).

    Код, назначенный для клавиши PF1 :
    Код:
    ANSI_STR_FOR_KEY[PF1]       = "\033P"
    генерится при нажатии на клавишу <Num Lock>, но только в том случае, если параметр Use_NumLock_as_PF1 имеет действующее значение 1.

    По умолчанию параметры управления клавиатурой таковы:
    Код:
    KeyboardControlling = 1
    NumLockControlling  = 1
    NumpadSwapping      = 1
    Use_NumLock_as_PF1  = 0
    Параметр KeyboardControlling разрешает или запрещает терминалу имитировать нажатия на клавиши <Num Lock>, <Caps Lock> и <Scroll Lock>.

    Параметр NumLockControlling позволяет выборочно запретить терминалу имитировать нажатия на клавишу <Num Lock>.

    Параметр NumpadSwapping отвечает за имитацию эмулятором терминала - цифрового и дополнительного клавиатурных блоков терминала 15ИЭ-00-013. При имитации терминала VT52 этот параметр лучше установить в 0, а при имитации 15ИЭ-00-013 - в 1.

    Если NumpadSwapping = 1, то при включенном <Num Lock> - KEYPAD PC-шной клавиатуры имитирует NUMPAD терминалов VT52 и 15ИЭ-00-013, а стрелки PC-шной клавиатуры - имитируют стрелки терминалов VT52 и 15ИЭ-00-013 ( режим по-умолчанию ), тогда как при выключенном <Num Lock> - KEYPAD PC-шной клавиатуры имитирует KEYPAD клавиатуры 15ИЭ-00-013 ( отсутствующий у VT52 ), а стрелки PC-шной клавиатуры - имитируют клавиши 4, 5, 6 и 8 NUMPAD.

    Поскольку большинство динамичных игр для PDP-11 управляются клавишами 4, 5, 6 и 8 NUMPAD - выключив <Num Lock> в режиме NumpadSwapping = 1 - можно передать эти функции стрелкам.

    Но главное в том, что большинство программ для ДВК управляются кодами клавиш KEYPAD клавиатуры 15ИЭ-00-013. Поэтому, при выключенном <Num Lock> в режиме NumpadSwapping = 1 такие программы можно использовать более привычным и естественным образом.

    ...

    В окне терминала клавиши <Alt>, <F10>, <Win> и <Apps> не выполняют своих системных функций, а генерят коды наравне с другими клавишами.

    Клавиши <Ctrl> генерят назначенные им коды только при одиночном нажатии, тогда как при нажатии совместно с другими клавишами - обеспечивают генерацию управляющих кодов.

    В режиме KeyboardControlling = 1:

    1. При каждом получении фокуса ввода окном объекта типа Terminal - объект запоминает текущее состояние параметров <Num Lock>, <Caps Lock> и <Scroll Lock> клавиатуры и восстанавливает свой контекст, а при потере фокуса - осуществляет обратную операцию.

    Каждый экземпляр терминала имеет свой собственный контекст состояний клавиатуры.

    2. Одиночное нажатие на левую клавишу <Shift> всегда устанавливает <Caps Lock>, а одиночное нажатие на правую клавишу <Shift> - всегда сбрасывает <Caps Lock>.

    3. Последовательные нажатия на клавишу <Scroll Lock> посылают в выходной поток коды <Ctrl/S> и <Ctrl/Q>.
    Последний раз редактировалось Patron; 16.03.2012 в 21:47.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмулятор
    от vladimir53 в разделе Орион
    Ответов: 19
    Последнее: 24.06.2022, 08:02
  2. Эмулятор ПЗУ.
    от ALKO в разделе Память
    Ответов: 8
    Последнее: 17.05.2011, 13:41
  3. Эмулятор AY на AVR
    от serkiri в разделе Звук
    Ответов: 52
    Последнее: 10.06.2010, 09:01
  4. Эмулятор для Mac
    от AlexBel в разделе Эмуляторы
    Ответов: 11
    Последнее: 02.05.2010, 18:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •