Вопрос на засыпку - есть возможность послать BREAK в COM порт?
Фича весьма нужная если использовать для реальной машины.
Вопрос на засыпку - есть возможность послать BREAK в COM порт?
Фича весьма нужная если использовать для реальной машины.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Хорошая новость, что протокол ByteStream в модульном API поддерживает команды BreakOn и BreakOff, а объект Terminal выдаёт их в выходной поток байтов при нажатии и отпускании клавиши [Pause/Break] соответственно.
Плохая новсть, что объект Terminal_ComPort_Adapter никак на эти команды не реагирует.
В принципе, получив из потока байтов команду BreakOn - адаптер COM-порта может вызывать функцию Win32API SetCommBreak для "своего" порта, а получив BreakOff - вызывать ClearCommBreak, но это будет работать только в одну сторону - на передачу.
Чтобы два объекта Terminal_ComPort_Adapter, подключенные к разным COM-портам и соединённые потоком байтов, могли ретранслировать сигнал BREAK из одного COM-порта в другой - нужна более серьёзная доработка.
Отсюда вопрос - как мы это протестируем?
У меня нет возможности проверить работу объекта Terminal_ComPort_Adapter с реальными портами, поэтому я пока даже не знаю, работает ли он вообще.
Так на передачу и надо - нужно уметь посылать BREAK машине, сидящей на COM порту. А принимать BREAK оттуда незачем - разьве что эмулировать полоску выключения питания как на CM7209
---------- Post added at 02:52 ---------- Previous post was at 02:51 ----------
Кстати на прием BREAK должен определяться тупо как frame error
---------- Post added at 03:00 ---------- Previous post was at 02:52 ----------
А проверить легко по назначению - подключу как TT0: к 11/83 и пошлю туда бряк
SecureCRT отлично умеет это делать.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_14.11.12_16-04.
Изменения:
1. Теперь при нажатии клавиши <Print Screen> в окне терминала - в буфер обмена помещается не только текстовый, но и графический скриншот.
2. Теперь объект Terminal_ComPort_Adapter передаёт команды BreakOn и BreakOff из потока байтов в "свой" COM-порт.
3. В файл Terminal.ini добавлены цветовые схемы для симуляции мониторов 15ИЭ-00-013, МС 6105 и VT220.
Для изменения цветовой схемы - нужно закомментировать настройки текущей цветовой схемы ( добавив символы ';' в начале строк ) и раскомментировать ( убрав символы ';' в начале строк ) настройки интересующей цветовой схемы.Код:; ; Default Screen Colors ; TerminalTextColor_RGB = 0,0,0 FrameBackgroundColor_RGB = 178,178,178 TerminalBackgroundColor_RGB = 170,204,221 ; ; Green Screen Colors ( 15IE-00-013 ) ; ; TerminalTextColor_RGB = 3,255,21 ; FrameBackgroundColor_RGB = 178,178,178 ; TerminalBackgroundColor_RGB = 64,81,57 ; ; ; Blue Screen Colors ( MS 6105 ) ; ; TerminalTextColor_RGB = 150,200,240 ; FrameBackgroundColor_RGB = 172,170,160 ; TerminalBackgroundColor_RGB = 50,60,55 ; ; ; Gold Screen Colors ( VT220 ) ; ; TerminalTextColor_RGB = 230,210,120 ; FrameBackgroundColor_RGB = 145,140,135 ; TerminalBackgroundColor_RGB = 48,44,58 ;
Последний раз редактировалось Patron; 23.09.2014 в 13:15.
Попутно мысль слегка добавить функциональности VT52 (может правда оно есть - слишком долго копаться) - реализовать VT52шный HOLD SCREEN с возможностью отключения.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
При последовательных нажатиях на клавишу <Scroll Lock> - терминал отправляет в выходной поток символы Xon и Xoff, синхронизируясь с отправкой этих же символов с клавиатуры.
Если после включения режима Xoff на терминал поступят байты из входного потока - режим Xoff автоматически сбросится ( RT11 v5.4 отменяет режим Xoff при двойном нажатии <Ctrl><C> ).
Можно дополнительно сделать так, чтобы при нажатии <Shift><Scroll Lock> в режиме Xoff - терминал посылал Xon, ожидал одного из событий: 1) приём N строк; 2) истечение NN секунд - и снова посылал Xoff.
---------- Post added at 16:36 ---------- Previous post was at 16:32 ----------
Хотя, если за отведённое время нужное количество строк не пришло - какой смысл опять посылать Xoff - ведь это значит, что "обильный" вывод данных уже завершён.
Это не совсем то. Тут так или иначе подразумевается ручное вмешательство для задействования режима тогда как обычный HOLD включается програмно (например командой системы или прграммой которая режим использует), после чего пользователь по желанию может листать построчно или поэкранно.
---------- Post added at 20:48 ---------- Previous post was at 20:38 ----------
Пример работы HOLD SCREEN. Качество съемки хреновое, но суть понятна
Скрытый текст
---------- Post added at 20:55 ---------- Previous post was at 20:48 ----------
Вобщем должно быть так: при поступлении <ESC>[ на экран включается режим HOLD. Как только курсор пытается сделать LF в последней строке экрана, посылается XOFF и экран застывает на этой строке (<LF> не отрабатывается).
При нажатии на клавишу <ROLL> (ScrollLock к примеру) печатается тот самый <LF> и одна строка, также все замирает после следующего <LF>. При нажатии на Shift+<ROLL> печатается один экран, после чего останавливается.
При выводе на экран <ESC>\ режим отключается.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Уловил.
Я сейчас адаптирую движок объекта Terminal для эмуляции некого подобия КСМ, а КСМ поддерживает Esc-коды <Esc><[> и <Esc><\>, поэтому их поддержка появится и в терминале.
После получения <Esc><[> терминал установит специальное состояние Hold и будет принимать данные до тех пор, пока не потребуется скроллинг - в этот момент терминал симулирует нажатие пользователем клавиши <Scroll Lock> и перейдёт в режим Xoff.
В режиме Hold + Xoff реакция терминала на одиночное нажатие <Scroll Lock> будет другой - режим Xon будет устанавливаться только для одной следующей строки.
Реакция на <Shift><Scroll Lock> в режиме Hold + Xoff будет отличаться отсутствием таймаута на приём страницы текста.
Баловство с VT52 заставило вчера подключить CM7209 к 11/83, сегодня решил поностальгировать... Все-таки никакие VT220 не заменят старого доброго...
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)