Раньше мы уже обсуждали "реверсивный глюк" SJ-монитора RT-11, при котором последовательно поступающие на терминальный вход байты попадают в буфер ввода в обратном порядке, если между прерываниями процессор успевает выполнить меньше некоторого "магического" числа команд ( ~ 120 ).
Даже процессор ВМ1, имеющий среднее быстродействие 180 команд/байт казалось бы "вписывается" в это ограничение. И действительно, при эмуляции с достоверной скоростью выполнения команд - ВМ1 не имеет проблем в большинстве программ.
Но нашлась программа, которая внесла свою ложку дёгтя - это DESS.
При нажатии на любую стрелку, DESS выводит на экран кучу информации:
И вот что происходит. Когда нажаты две стрелки подряд - двойной код второго нажатия (например: '\033' 'B') приходит в тот момент, когда буфер вывода RMON заполнен и регулярно обрабатываются прерывания вывода на экран.Код:«033»HBlock=000000/00000. Adres=000006 Type=Word Edit Memory «033»Y cSize=00112. «033»Y4*«033»KSWAB -(R0) «033»Y5*
Поэтому, обычное быстродействие ВМ1 в 180 команд на байт уменьшается на длину обработчика вывода и ..результат плачевен.
С вероятностью ~ 5% - двойной код нажатой клавиши попадёт во входной буфер в обратном порядке.
...
Неспроста, наверное, строка автоответа идентификации терминалов VT передаётся ими не со скоростью порта, а со скоростью кадровой развёртки 60 Гц.
А что насчёт скорости передачи многобайтовых кодов клавиш у терминалов VT..
А как обстоит с этим дело у 15ИЭ-0013 ?
Мне нетрудно перевести терминал на передачу многобайтовых кодов клавиш со скорости порта на скорость 60 CPS, но насколько это будет адекватно реальному оборудованию..


Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 


