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/VT100? Ну, разве что завести буфер в 2*1920 символов и сэмулировать в нем работу терминала перед тем, как отдать это на реальный терминал. Но это такой огород, что ой! Да и где все это держать - оно ведь должно работать во время работы системы и исполняемой ею программы, а там свободной памяти нет вообще!
То есть, конечно, если исполняемая программа ведет "простую" выдачу, без использования ESC-последовательностей управления VT52/VT100, то особых сложностей нет, кроме вопроса, где держать буфер. Только это ведь существенное ограничение на исполняемые программы...
Я тоже начинал. Но эта программуля - порядка 2000 строк ассемблерного текста, это же 30-35 страниц. В то время, когда я этим занимался, не нашлось желающих оплатить эту работу, а энтузиазм иссяк после разбора 15-20% от всего...
- - - Добавлено - - -
Так надо не точку, а название и номер диска, куда назначен DK:.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Так во время выполнения его (командера) нет! Он должен полностью выгрузиться, точнее, память, которую он занимал, отдается выполняемой задаче. Собственно, и всё обсуждение началось с вопроса, как безусловно запустить этот командер (или что-то еще, например, любимое меню Хобота) после окончания запущенной задачи.
- - - Добавлено - - -
И что? Командир Нортон ведь рисует, значит и нам надо...
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Это абсолютно не мешает ему выставить правильное назначение перед выполнением команды, что и планируется сделать
В планах нет копирования нортона (в частности, склоняюсь к тому, что окошек с прогрессом не будет - хватит и одной нижней строки - не за чем тратить память), зато обдумываются мелкие удобства в рамках RT-11...
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
Назначение чего? Я-то о сохранении экрана задачи. Error404 предположил, что экран задачи должен сохранять командер, а не система, а я объясняю, что его при исполнении нет.
Ну, это можно и "соверлеить". Впрочем, конечно, окошки с прогрессом - это приятно, но можно и пережить без них.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Было сказано про подсказку с названием диска DK, я ответил, что эта самая подсказка видна в заголовке панели. О сохранении экрана задачи я даже не задумываюсь - просто не вижу смысла: лучше перед перезапуском делать паузу (кстати какой-то командер вроде так и делал). Делать резидентный драйвер окон в стиле TSX как-то не хочется
Я по возможности и так оверлею то, что одновременно не может понадобиться. Исключение - XM вариант: там есть только корневой сегмент и резидентный оверлей "все остальное"![]()
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
У меня так сделано в AC.SYS, параметр HOLD/NOHOLD. При установленной паузе высвечивается запрос - при нажатии пробела возвращаемся в приглашение RT-11 на один шаг, нажали <Enter> - запустился коммандер.
Сохранение результатов работы возможно сделать на 15ИЭ-00-013 и КСМ, там буфер на 48 строк, а на экране - 24 строки. И есть управляющие последовательности для сдвига видимой части этого буфера, т.е. перед выводом панелей сдвинули экран на 24 строки, нарисовали свои панели, нажали Ctrl-O - сдвинули на 24 строки, ещё раз - снова на 24 строки, чтобы отобразить панели.
Только CTRL/O в RT-11 нельзя полноценно перехватить в однотерминальном RT-11, а к регистрам не лезу из принципа - не хочется терять совместимости со всеми прочими случаями
В плане просмотра экрана под панелями xterm хорош - там можно в явном виде сохранить экран и потом переключиться на него, но оно похоже только в xterm да tmux/screen действует (хотя некоторые программы имеют даже тип xterm в списке эмуляции).
Последний раз редактировалось form; 02.01.2017 в 16:45.
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
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)