XXDP+ V2.5 для ДВК без MMU
Добрался поковырять утилиту UPDAT. В процессе ковыряния выяснилось следующее:- UPDAT в XXDP+ V2.5 не содержит ошибки, он в явном виде предназначен для запуска в XM мониторе (об этом говорит первая запись файла, записывающая 10000 по адресу 52)
- UPDAT в ТМОС-2 не столько пропатчен, сколько просто урезан в функционале. Не знаю критично ли это где-либо при работе в расширенном мониторе.
Сделал утилиту UPDAT которая сама себя патчит если нет MMU и работает как обычно если есть, в связи с чем обновился образ MY XXDP+ V2.5 (попутно драйвер MY обрезан до используемого размера).
Код:
.BO MY:/FO
MEMORY MANAGEMENT UNIT NOT FOUND
BOOTING UP XXDP-SM SMALL MONITOR
XXDP-SM SMALL MONITOR - XXDP V2.6
REVISION: E0
BOOTED FROM MY0
28KW OF MEMORY
NON-UNIBUS SYSTEM
RESTART ADDRESS: 152010
TYPE "H" FOR HELP
.R UPDAT
UPDAT .BIC
UPDAT - XXDP V2 UPDATE UTILITY REVISION G
RESTART: 004140
*ZERO MY1:
USER DATA ON MY1 WILL BE DESTROYED!
PROCEED?(Y/N/CR=N)Y
*CREATE MY1:
*PIP MY1:=MY0:
XXDPXM.SYS
XXDPSM.SYS
DRSXM .SYS
DRSSM .SYS
DIR .SYS
DB .SYS
DD .SYS
DL .SYS
DM .SYS
DR .SYS
DU .SYS
DY .SYS
LP .SYS
MM .SYS
MS .SYS
MU .SYS
MY .SYS
DATE .SYS
DUSZ .SYS
HELP .TXT
UPDAT .BIC
*BOOT MY1:
MEMORY MANAGEMENT UNIT NOT FOUND
BOOTING UP XXDP-SM SMALL MONITOR
XXDP-SM SMALL MONITOR - XXDP V2.6
REVISION: E0
BOOTED FROM MY1
28KW OF MEMORY
NON-UNIBUS SYSTEM
RESTART ADDRESS: 152010
TYPE "H" FOR HELP
.
---------- Post added at 21:48 ---------- Previous post was at 20:39 ----------
Обновление драйвера MY для XXDP+ V2.4/2.5. Версия A3. Функционально не отличается, код слегка укорочен, чтобы можно было впихнуть драйвер в 1 блок. Обычным LINK'ом не получится, позже выложу програмку которая позволяет сделать. Собранный вариант в 1 блок прилагается.
Вложений: 3
TTSET V7.2 - настройка при загрузке/входе в систему
Программа предназначена для запуска из стартового файла RT-11 или TSX-Plus.
Программа позволяет определить тип терминала, установить параметры изображения и настроить параметры, зависящие от типа терминала (SET EDIT, SET SL), а также включить окна в TSX-Plus.
При запуске в TSX-Plus и RTEM-11 программа определяет тип терминала по системным настройкам и использует его (если явно не задан опрос терминала параметром /INQUIRE или конкретный тип терминала).
В RT-11 V5 и TSX-Plus программу можно запускать командой TTSET [параметры] (подразумевается, что программа лежит на системном устройстве).
В ранних версиях RT-11 программа запускается командой R TTSET. При этом в RT-11 V5.1/TSX-Plus V6.01 и более старых системах при отсутствии параметров, указанных в командной строке, программа попросит ввести параметры.
В более новых системах при отсутствии параметров командной строки подразумевается /EDIT.
Поддерживаемые параметры:
- /DARK - Включить темный фон/светлый текст (обычный режим).
Параметр доступен только для терминалов, совместимых с VT100. - /EDIT - Установить редактор в соответствии с типом терминала.
Параметр всегда включен (он нужен только для старых систем чтобы было что написать в качестве параметра при запуске). - /INQUIRE - Автоматически определить тип терминала.
- /LIGHT - Включить светлый фон/темный текст (инверсный режим).
Параметр доступен только для терминалов, совместимых с VT100. - /NARROW - Включить режим 80 колонок.
Параметр доступен только для терминалов, совместимых с VT100. - /SANE - Привести терминал в порядок (выключить графический режим, включить английский язык, выключить альтернативный режим, разрешить скроллинг всего экрана итд).
- /SL - Включить редактирование ввода (SL).
В RT-11 опция работает только если драйвер SL установлен в системе. - /TEST - Тестовый режим.
Программа печатает тип терминала и список команд которые должны быть выполнены для заданных параметров. - /VT100 - Установить тип терминала VT100.
- /VT200 - Установить тип терминала VT200.
В RT-11 ничем не отличается от /VT100. - /VT52 - Установить тип терминала VT52.
- /WIDE - Включить режим 132 колонок.
Параметр доступен только для терминалов, совместимых с VT100. - /WINDOW - Включить окна в TSX-Plus.
Параметры /INQUIRE, /VT100, /VT200 и /VT52 взаимоисключающие.
Параметры /DARK и /LIGHT взаимоисключающие.
Также взаимоисключающими являются параметры /NARROW и /WIDE.
Если тип терминала совместим с VT52, VT100 или VT200, в TSX-Plus выдается команда SET TT для установки соответствующего типа терминала.
Для установки редактора по умолчанию выдается команда SET EDIT в соответствии с типом терминала: KEX (RT-11XM/XB/ZM/ZB) или KED для VT100-совместимых терминалов, K52 для VT52-совместимых терминалов, EDIT для остальных типов терминала, а также в случае отсутствия KEX/KED/K52 на системном диске.
Для включения SL выдается команда SET SL ON если тип терминала совместим с VT52, VT100 или VT200. При этом в RT-11 предварительно выдается команда SET SL VT52 или SET SL VT100.
Для включения окон в TSX-Plus в прошлых версиях программы использовалась команда SET WINDOW ON. Начиная с TTSET версии 6.0, вместо этого используются системные вызовы. Это позволяет разрешить пользователю самостоятельно манипулировать окнами без необходимости давать ему привилегию SYSGBL (программа TTSET в этом случае должна быть установлена в системе командой INS ADD SY:TTSET/PRIV=(NODEBUG,SYSGBL).
В RTEM-11 и TSX-Plus программа включает ввод букв нижнего регистра.
В RTEM-11 программа не меняет тип терминала, установленный в RSX-11.
Программа молча игнорирует параметры которые не поддерживаются в данной системе или недоступны для данного типа терминала.
В прошлых версиях TTSET в RT-11 (если это не RTEM-11) автоматически включалось автоопределение терминала. Начиная с TTSET версии 6.0 нужно явно задать параметр /INQUIRE. Если тип терминала не задан явно и не определяется из настроек TSX-Plus и RSX-11 (в RTEM-11), включается автоопределение типа терминала.
В TTSET версии 6.1 если автоопределение типа терминала с помощью <ESC>Z не сработало, делается попытка определить терминал с помощью ANSI последовательности <ESC>[c. Этот вариант работает в tmux.
Возможные проблемы:- В RT-11XM V4 и старее если на системном диске будет обнаружен файл KEX.SAV - будет выдана команда SET EDIT KEX которая не поддерживается в этих системах.
- В ФОДОС В3.0 (возможно и в других версиях) нет команды SET EDIT K52.
- В TSX-Plus не проверяется наличие поддержки SL в системе.
Не проверял как реагирует система без поддержки на команду SET SL ON. - В RT-11 программа надеется что драйвер SL поддерживает команды SET SL VT52 и SET SL VT100. В дистрибутивном драйвере от RT-11 V5.6 и новее, а так же в советском варианте эти команды не поддерживаются. Годится полноценный SL из RT-11 V5.4G или собранный вручную с нужными опциями (в RT-11 V5.7 source kit есть исходники).
В tmux программа не может определить тип терминала. Возможно tmux реагирует только на ANSI вариант запроса <ESC>[c и не реагирует на классический <ESC>Z. Проверю на досуге.- Программа TTSET использует запросы .MRKT и .CMKT. Если используется SJ/SB монитор без поддержки таймера, автоопределение терминала может подвиснуть если терминал не ответил ни на один из вариантов опроса.
Код:
.TTSET /INQ/SL/WIN/TEST
?TTSET-I-Terminal type is VT200 series
?TTSET-I-The following commands would be executed:
SET EDIT KED
SET TT VT200
SET SL ON
SET WINDOW ON NARROW DARK
.
UPD: V6.1 - исправлены мелкие ошибки, добавлена возможность определения терминала с помощью ANSI ESC-последовательности. Возвращено старое поведение: если тип терминала не определился из системных настроек и не указан явно, включается режим автоопределения.
UPD: V6.2 - добавлена проверка типа терминала при установке ANSI атрибутов
UPD: V7.0 - возвращена команда SET WINDOW в TSX-Plus (тип терминала должен быть установлен до включения окон)
UPD: V7.1 - поддержка типа терминала PC3XX
UPD: V7.2 - опция приведения терминала в нормальный режим