Просмотр полной версии : Эмулятор терминала типа VT52
на D:\ NTFS
Надо смотреть параметры безопасности, что-то запрещено.
Надо смотреть параметры безопасности, что-то запрещено.
Нет. С образами работает нормально.
Ошибка вылезает даже если сам эмулятор находится и запущен с диска D:\....\ а подключен HD1 к D:\
Ошибка вылезает даже если сам эмулятор находится и запущен с диска D:\.
А если с любого подкаталога на диске D:, то ошибок нет?
А если с любого подкаталога на диске D:, то ошибок нет?
Если в одной папке или выше то нет.
Если в одной папке или выше то нет.
Всё-таки стоит посмотреть действующие разрешения для текущего пользователя. А ОС кстати какая, может Windows 7?
Всё-таки стоит посмотреть действующие разрешения для текущего пользователя.
Где смотреть? Да и как объяснить что с папки работает а с корня нет.
А ОС кстати какая, может Windows 7?
Хрюша. :)
Где смотреть? Да как объяснить что с папки работает а с корня нет.
В проводнике правой кнопкой по диску D:, выбираем [Свойства], вкладка [Безопасность], кнопка [Дополнительно], вкладка [Действующие разрешения], выбираем текущего пользователя и смотрим.
Еще можно запустить программу от имени администратора, и посмотреть, будет ли воспроизводится ошибка.
- - - Добавлено - - -
Хрюша.
А по скриншотам похоже на Висту и Севен.
При подключении диска С:\ программа запускается нормально, но если эту программу запустить с диска D:\ то вылезает ошибка.У меня на D: тоже NTFS и конечно же я тоже подключал D:\ и запускал с D:\ ту же самую программу.
- - - Добавлено - - -
Проблема может быть как-то связана с именами файлов и папок в корне D:, поэтому можно создать на D: подкаталог и временно переместить туда все файлы и папки.
переместить туда все файлы и папки.
Типа проблема с длинными именами? Попробую.
...
Попробовал командой DIR посмотреть каталог. Файлы показались которые не более 6 символов. Далее запустил программу которая отобразилась командой DIR, на что RT11 ответила ?КМОN-F-File not found HD1:PSW1.SAV (файл для примера) После этого если закрыть эмулятор то эмулятор закрывается и вылезает ошибка.
А если сделать DIR/BAD/FILE HD1:
А если сделать DIR/BAD/FILE HD1:
?DUP-I-No bad blocks detected HD1:
При таком ответе вылетать не должно - можно скопировать на этот диск файл и запустить.
поэтому можно создать на D: подкаталог и временно переместить туда все файлы и папки.
Вроде помогло. На диске остались одни папки и тестовый файл.
Буду отлавливать дальше постепенно извлекая обратно.
- - - Добавлено - - -
Обратное извлечение не помогло отловить. После упаковки файлов,папок и обратного извлечения, ошибка не повторилась.
Можно попросить одну фичу, может быть она уже реализована но я как всегда не в курсе как ее включить: при включенной опции логгирования дописывать в файл лог, а не перезатирать его, а дописывать в конец файла, и запоминать, было ли включено логгирование... Спасибо!
Можно попросить одну фичу, может быть она уже реализована но я как всегда не в курсе как ее включить: при включенной опции логгирования дописывать в файл лог, а не перезатирать егоВ следующем релизе добавлю такую настройку.
запоминать, было ли включено логгирование...Чтобы состояние лога ( как и любой переменной типа "состояние" ) запоминалось между запусками - надо в разделе терминала в файле конфигурации установить в 1 настройку SaveChangesFor для этой переменной:
[VT52.ini]
InitialStateOf[Log] = 0
SaveChangesFor[Log] = 1
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_03.03.16_19-14 (http://emulator.pdp-11.org.ru/VT52/distr/VT52_03.03.16_19-14.rar)
Изменения:
1. Объектам Terminal и Console добавлена настройка: Old_Logs_Mode, позволяющая определять судьбу старых логов ( минимальное значение: 0, максимальное: 3 , по умолчанию: 0 ). При: Old_Logs_Mode = 0 - лог предыдущего запуска удаляется. При: Old_Logs_Mode = 1 - лог нового запуска дописывается в конец лога предыдущего запуска. При: Old_Logs_Mode = 2 - лог каждого предыдущего запуска из девяти переименовывается в предыдущий, а лог десятого предыдущего запуска удаляется. При: Old_Logs_Mode = 3 - девять предыдущих логов переименовываются друг в друга ( как и при Old_Logs_Mode = 2 ), а десятый - дописывается в конец общего архивного лога.
1. Объектам Terminal и Console добавлена настройка: Old_Logs_Mode, позволяющая определять судьбу старых логов ( минимальное значение: 0, максимальное: 3 , по умолчанию: 0 ). При: Old_Logs_Mode = 0 - лог предыдущего запуска удаляется. При: Old_Logs_Mode = 1 - лог нового запуска дописывается в конец лога предыдущего запуска. При: Old_Logs_Mode = 2 - лог каждого предыдущего запуска из девяти переименовывается в предыдущий, а лог десятого предыдущего запуска удаляется. При: Old_Logs_Mode = 3 - девять предыдущих логов переименовываются друг в друга ( как и при Old_Logs_Mode = 2 ), а десятый - дописывается в конец общего архивного лога.
Супер, то, что доктор прописал! Спасибо!!!
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_16.03.16_12-37 (http://emulator.pdp-11.org.ru/VT52/distr/VT52_16.03.16_12-37.rar)
Изменения:
1. Объекту Terminal добавлен ANSI-парсер и параметр ControlCodesType, настраивающий распознавание управляющих кодов.
Возможные значения:
Default - распознаются все коды и поддерживаются все режимы.
15IE - распознаются только коды 15ИЭ-00-013, символ '$' отображается как '¤'.
VT52 - распознаются только коды VT52, режим UseNumLockAs_PF1 активируется принудительно.
KCGD - не распознаются специфические коды VT52 ( HOLD и GRAPH ) и 15ИЭ-00-013, режим UseNumLockAs_PF1 активируется принудительно.
Значение по-умолчанию: Default
2. Режим ANSI реализован в ограниченном объёме, достаточном для использования KED и SLX.SYS. При переходе в режим ANSI - режим UseNumLockAs_PF1 активируется принудительно.
достаточном для использования KED и SLX.SYS
прос SLX не совсем ясно ибо есть DECовские SL, умеющий VT100 (только VT100+ с определенной версии) и SLX от Cторожевых (да-да - он есть), умеющий вроде только VT52 :)
SLX от Cторожевых, умеющий вроде только VT52Значит, достаточный для него объём реализации режима ANSI был во всех версиях терминала. Теперь объём реализации режима ANSI расширился настолько, что допускает использование всех имеющихся драйверов SLX.
всех имеющихся драйверов SLX
Ну так что SL что SLX - один хрен - функционально они одинаковы (кроме систем до 5.4G где SL по факту был SLMIN).
- - - Добавлено - - -
Режим ANSI реализован в ограниченном объёме
Судя по всему в очень ограниченном объеме. Очистить экран не удалось :)
Очистить экран не удалосьА перейти сначала в режим VT100 удалось ?
А перейти сначала в режим VT100 удалось ?
>TYP TEST.MAC
.TITLE TEST
.MCALL QIOW$,DIR$,EXIT$S
QIOW: QIOW$ IO.WAL,5,1,,,,<TEXT,TEXTL>
START:: DIR$ #QIOW
EXIT$S
TEXT: .ASCII <33>/[?2l/<33>/[H/<33>/[J/
TEXTL = .-TEXT
.END START
>MAC TEST=TEST
>TKB TEST=TEST
>RUN ?2lHJTEST
.ASCII <33>/[?2l/Это переводит из режима VT100 в режим VT52.
Для обратного надо:
.ASCII <33>/</
Это переводит из режима VT100 в режим VT52.
Да, уже сообразил - сейчас проверим.
- - - Добавлено - - -
Работает, и SET /INQUIRE=TI: определяет VT100, только само определение занимает очень много времени - или задержки большие - на грани допустимого, или очень много всего отправляется в ответ, сейчас своим TTINQ посмотрю подробности...
- - - Добавлено - - -
Занятно. Передается совсем немного. Но задержка большая - пришлось интервал увеличить. RSXовский TT драйвер однако согласен считать это ESC последовательностью, а не нажатиями на ESC и прочие клавиши...
.RU TTINQ
?TTINQ-I-Terminal type is VT100/VT101/VT105
?TTINQ-I-Answer: <033>[?1;2c
.
Но задержка большаяЗадержка зависит от настройки InitialStateOf[SlowMultiByte]. Если там 0 - должно передавать быстро.
Patron, А как настроить Звездные войны по телнету, или об этом ещё рано говорить? Экран по прежнему двоится и уходит в HOLD.
Экран по прежнему двоится и уходит в HOLD.Можно вместо ControlCodesType = Default попробовать варианты: ControlCodesType = 15IE и ControlCodesType = KCGD.
Помогло только по HOLD. Экран также двоится на обоих режимах.
активируется принудительно
началось! а как же ноуты, Patron? а как же ноуты?
- - - Добавлено - - -
Ок! Просто спрошу конкретно, как мне настроить как было?
А было так. Ins_Num активен не был, но на стрелочках были стрелочки, а не циферки? )
Иначе беда !
как мне настроить как было?Всё осталось как было - что-то настраивать надо только для активации новых возможностей.
В поведении по-умолчанию изменилось только то, что при переходе программы в режим VT100 - терминал переходит в режим VT100.
А как настроить Звездные войны по телнету, или об этом ещё рано говорить? Экран по прежнему двоится и уходит в HOLD.
Видимо никак поскольку нужно сначала посылать последовательность перехода в VT100 режим, а звездные войны сразу шлют ANSI последовательности (причем никаких кроме <ESC>[H и <ESC>[J там насколько я помню не используется - тупая перерисовка всего экрана на каждый кадр).
Надо кнопочку добавить VT52/VT100. Может даже VT100-style setup :)
На стакане можно запустить US:[1,127]TEST, потом SET INQ и WAR - все показывается :)
- - - Добавлено - - -
Если там 0 - должно передавать быстро.
Там именно 0 :)
- - - Добавлено - - -
Эмулятор не глотает последовательности которые ему неизвестны. По идее должен просто их игнорировать, но съедать.
http://pdp-11.org.ru/~form/files/pdp-11/dvk/vt52.png
- - - Добавлено - - -
Ну и еще KP+ в режиме Alt Keypad для VT100 - инстинктивно по соответствию родной клаве ожидается, что это будет <ESC>Ol (удалить символ спереди в KED/EDT) или <ESC>Om (удалить слово спереди), но не <LF> (удалить слово назад) :)
- - - Добавлено - - -
Кстати эмуляции недостаточно для редактирования в EDT. Подозреваю, что и в KED далеко не все работает...
Эмулятор не глотает последовательности которые ему неизвестны. По идее должен просто их игнорировать, но съедать.Внимательно рассмотрев картинку можно понять, что эмулятор сначала съедает все возможные CSI-последовательности, а потом отрабатывает те из них, которые знает.
- - - Добавлено - - -
Кстати эмуляции недостаточно для редактирования в EDT. Подозреваю, что и в KED далеко не все работает...Не реализованы только регионы скрола и только потому, что нет программ, чтобы это тестировать.
- - - Добавлено - - -
KP+ в режиме Alt Keypad для VT100 - инстинктивно по соответствию родной клаве ожидаетсяСделать правильный выбор поможет изменение настройки: ANSI_STR_FOR_KEY[Pad_Plus] = "\012"
Внимательно рассмотрев картинку можно понять, что эмулятор сначала съедает все возможные CSI-последовательности, а потом отрабатывает те из них, которые знает.
Да, ошибся - все нормально.
нет программ, чтобы это тестировать
Я так думаю, EDT и есть программа. Есть и на стакане и на вороне :)
ANSI_STR_FOR_KEY[Pad_Plus] = "\012"
А можно настроить чтобы было LF в обычном режиме и DELCHAR/DELWORD в Alt?
А можно настроить чтобы было LF в обычном режиме и DELCHAR/DELWORD в Alt?Пока нет. Можно будет добавить дополнительную настройку ANSI_STR_FOR_KEY[Pad_Plus_A], которая будет отдельно задавать последовательность для KP+ в режиме ANSI.
В систему BOPOHA (telnet://vms.pdp-11.org.ru) добавлен VTTEST. Запускается командой VT[TEST].
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_21.03.16_18-18 (http://emulator.pdp-11.org.ru/VT52/distr/VT52_21.03.16_18-18.rar)
Изменения:
1. В драйвер HX.SYS добавлен параметр DMA=NO.
2. Теперь в объекте Terminal состояние ESC-парсера: VT52 / ANSI - отображается и переключается кнопкой.
3. Улучшена совместимость терминала с редактором EDT.
Спасибо! Наконец то мультик нормально показывает.
А версия сборки почему не изменилась?
А версия сборки почему не изменилась?Версия относится к API, поэтому когда изменений в API нет - версия не изменятся. Но в этот раз изменения в API имели место, поэтому версия не изменилась из-за моей оплошности.
Ещё есть непонятки.
Не соединятся конфиги- СТАКАН,MIM,OpenVMS.
По СОМам.
Можно объединить в один конфиг - СОМ,СОМ_4,НХ_СОМ. Или сделать несколько НХ_СОМ_1,НХ_СОМ_2,НХ_СОМ_3,НХ_С М_4 где присутствуют кнопки от СОМ_4 и НХ от НХ_СОМ.
По IPам.
Можно объединить в один конфиг - НХ_IP,IP. А в образ ТМОС-2 добавить тесты относящиеся к Эм. PDP11.
Спасибо.
Не соединятся конфиги- СТАКАН,MIM,OpenVMS.
Там адреса скорее всего старые прописаны. В идеале нужно сделать чтобы имена можно было писать.
Сейчас адреса такие: CTAKAH - 85.118.227.58 (rsx.pdp-11.org.ru), BOPOHA - 5.128.31.182 (vms.pdp-11.org.ru), MIM - 130.238.19.212 (mim.update.uu.se). Везде порт 23.
Там адреса скорее всего старые прописаны. В идеале нужно сделать чтобы имена можно было писать.
И пароли в заголовке конфига.
- - - Добавлено - - -
Сейчас адреса такие:
OpenVMS это BOPOHA?
Да.
Без пароля там никак. :)
Без пароля там никак.
Нету там пароля на GUEST.
Нету там пароля на GUEST.
Вот это я и хотел увидеть в начале конфига как справку.
form, Сервер твой для скачки эмулятора? Не получается скачать эм.PDP11, медленная скорость да и архив всё время битый получается.
Не получается скачать эм.PDP11, медленная скорость да и архив всё время битый получается.
Ищи нормальный софт :) Ни у кого больше проблем нет.
Вот это я и хотел увидеть в начале конфига как справку.Исправил файлы конфигурации MIM.cfg, OpenVMS.cfg и CTAKAH.cfg ( дополнительно - разрешил сглаживание шрифтов настройкой: bFontAntialiasDisable = 0 ) и перезалил архив.
- - - Добавлено - - -
Ни у кого больше проблем нет.Вчера вечером скорость скачивания любого контента с pdp-11.org.ru была примерно нулевой. Сегодня, при обновлении архива через WinSCP - скорость закачки была неограниченной, а скорость скачивания - около 10 Кб/сек. Сейчас скорость скачивания из раздела PDP-11.ORG.RU / ФАЙЛЫ - около 15 Кб/сек.
Вчера вечером скорость скачивания любого контента с pdp-11.org.ru была примерно нулевой.
Да, прочитал сегодня в новостях - работы были у провайдера. И видимо последствий еще хватит надолго :)
Феатуре реяуест для режима VT100:
съедать ESC последовательности вида <ESC>]n;...<BEL>
поддерживать вышеописанную последовательность для n=0 и n=2, устанавливать window (tab) title в текст между ";" и <BEL>
Это стандартные ESC последовательности для X-Term. Многие терминалки тоже взяли на вооружение (CRT, SecureCRT, PuTTY вроде)...
Nick Pastushok
22.06.2016, 17:15
Здравствуйте.
Извините пожалуйста за чайниковские вопросы , просто роюсь роюсь и понимаю что если и найду на них ответы то не скоро это будет а чайник мой уже малу по малу подкипает.
Плата без корзины МС1201.03.
на ВП1-065 сделал перемычки (SA1) - все рулится , скорости и базовый адрес можно менять.
Подключена к ПЦ через USB to COM PL2303 Свисток. (на плату на пустышку ДИП-14 для этого добавлена ЛН-ка инвертирующая ТХ и RX).
Все работает, грузится с НХ но 9600 сами понимаете очень МЕДДДДДДЛЕНННННО.
Вопрос1 :
Выбор скорости в эмуляторе VT52 (v097d) не подсвечен и где то читал (вроде как на МАХАОЛЕ находил) что это там как то автоматически ставиться, но я пробовал перемычки на МС1201.03 переставлять например на 19200 и в свойствах свистка пробовал переставлять и в обычной виндовой терминалке на этой скорости с МС1201.03 есть и все ок а вот в эмуляторе VT52 те же 9600 и кракозяблы. Порыскал по файлам конфигов, нигде нет цифры 9600. Короче трабл. На видио у других вижу даже и 57к.
Вопрос 2:
Нашел игрухи (Ксоникс, Спейс инвйдерс и др. в формате SAV) но не знаю как их прикрутить к эмулятору VT52 чтоб загрузить в мою МС1201.03 .
В эмулятор есть папка At11sj.5m, так же там есть интересное , но в нем нет НХ, а запускаеш в нем HX_COM.cfg , то сразу пропадают DY DХ DW, ну ли запускаеш еще какой cfg, так сразу он превращается не в консоль а в эмулятор.
Подскажите пожалуйста как и чем эти SAV собирать в DSK чтобы их можно было скармливать через НХ по СОМ порту ДВК-шке.
(Читал что там какая то технология сервер клиент и файлы упакованы в блоки которые передаются по 512 байт.... только мне это мало понятно и пока не очень интересны технические особенности, от них только пока что мозги спухают)
Еще есть вагон вопросов по МС1201.03 но вот конкретно касательно эмулятора VT52 пока эти.
С уважением Николай
Порыскал по файлам конфигов, нигде нет цифры 9600. Короче трабл. На видио у других вижу даже и 57к.
В папке VT52 есть файл Terminal_ComPort_Adapter.ini, его надо открыть в редакторе как текст и в строке BaudRate = CBR_9600 установить желаемую скорость. Только надо учитывать что оптрон АОТ110А на 57600 в МС1201.03 не тянет. Можно поставить АОТ128А но я не пробовал. Замкнул на 110м 1 и 2 контакты.
- - - Добавлено - - -
Подскажите пожалуйста как и чем эти SAV собирать в DSK чтобы их можно было скармливать через НХ по СОМ порту ДВК-шке.
Собирать не обязательно. Достаточно при выборе привода (например НХ1) сделать Alt+click и добавить желаемую директорию.
Nick Pastushok
22.06.2016, 18:13
В папке VT52 есть файл Terminal_ComPort_Adapter.ini, его надо открыть в редакторе как текст и в строке BaudRate = CBR_9600 установить желаемую скорость. Только надо учитывать что оптрон АОТ110А на 57600 в МС1201.03 не тянет. Можно поставить АОТ128А но я не пробовал. Замкнул на 110м 1 и 2 контакты.
Спасибо.
Вот я рыскал рыскал безпорядочно по файлам а этот у меня тотал командер подсвечивает язвенно-желтым и в него я не заглянул , и зря. Провтыкал...
Теперь летает на 57600 Оптроны я обошел, прицепился к ногам 1801ВП1-065 через инверторы 74LS04 (к555ЛН1) "Свистком" - Виртуальный COM порт на USB , там у него ТТЛ уровни.
Сначала цеплялся, на коленке, через оптроны, и в принципе ТХ на комп удалось подать без всяких деталек, но это поклацать тумблерами АИП и АСП и увидеть "@" сгодилось.
Потом мне показалось муторным возится с этими токовыми петлями и оптронами, и получить в результате тормоза, тем более что на хозяйстве с десяток таких свистков имеется.
- - - Добавлено - - -
Собирать не обязательно. Достаточно при выборе привода (например НХ1) сделать Alt+click и добавить желаемую директорию.
Ура !!! Работает :-)
Спасибо.
Ну и летает этот ХОNIX бешено просто, я только рот успел открыть как уже игра окончилась :-)
Надо как то его тормозить :-)
Может на 1200 бод перейти :-)
Patron, Не особа надеясь на ответ, но тем не менее.
Сделал шрифт от Фрязинского терминала и установил его в папку Font. Далее, добавил его в эм. VT52 но шрифт не поменялся.
Как известно что в этом шрифте маленькая буква i завернута внизу вправо. Это было индикатором для проверки.
Проверил Гипертерминалом- там отображается.
http://s61.radikal.ru/i174/1607/c0/a1aa53a7fb34.png (http://radikal.ru/big/49c39897d2ef4dc3b3acf5a0ee89eb56)
Сделал шрифт от Фрязинского терминала и установил его в папку Font. Далее, добавил его в эм. VT52 но шрифт не поменялся.Почему-то вместо всех шрифтов *.fon используется Fixedsys. Для шрифтов *.ttf такой проблемы (похоже) нет.
Почему-то вместо всех шрифтов *.fon используется Fixedsys.
У меня в списке Фрязинский шрифт именно с расширением fon. А что за формат Fixedsys?
Для шрифтов *.ttf такой проблемы (похоже) нет.
А вот ttf в эмуляторе вообще не одного.
А что за формат Fixedsys?Это системный шрифт - он всегда есть в меню шрифтов :
http://pic.pdp-11.ru/images/vt52fonts.png
А вот ttf в эмуляторе вообще не одного.Вот пример работающего самодельного TTF-шрифта для эмулятора терминала: Glass TTY VT220 (TrueType) (http://sensi.org/~svo/glasstty/Glass_TTY_VT220.ttf)
Это системный шрифт - он всегда есть в меню шрифтов
Иначе говоря это моноширный шрифт. Он же обозначен как Terminal и он же VGA866 в папке Font. Так?
Вот пример работающего самодельного TTF-шрифта для эмулятора терминала: Glass TTY VT220 (TrueType)
С этим то проблем нет. Других невидно.
Да и если другие присутствуют в списке, всё равно при выборе не всё меняют шрифт как и IE15. Остаётся тот же "Терминал".
Иначе говоря это моноширный шрифт.В меню выбора шрифта терминала видны только моноширинные шрифты, но вместо некоторых выводятся не сами эти шрифты, а системный шрифт по умолчанию.
У меня сложилось впечатление, что все шрифты *.FON при выводе заменяются шрифтом Fixedsys, тогда как моноширинные шрифты *.TTF выводятся нормально.
В меню выбора шрифта терминала видны только моноширинные шрифты, но вместо некоторых выводятся не сами эти шрифты, а системный шрифт по умолчанию.
И я про то.
Вообще матрица знака используется 7х7 при матрице 8х8. Это сделано для того чтобы по вертикали (слева) буквы не сливались, и по горизонтали не сливались с буквой нижней строки. Так-же это неиспользуемое матричное место используется под вертикальный или горизонтальный курсор (в виде полоски). Чтобы курсор не сливался с буквой, и чтобы его можно быстро найти- сделали мигающий курсор. Ну и/или используется знакоместо которое сдвигается при вводе символа. При матрице 8х8 полностью занятая символом, курсор мигает инверсией символа, но это в случае если используется аппаратное разделение знакоместа по вертикали и горизонтали.
К чему я это.
А к тому что может только Fixedsys (и некоторые другие) устраивают по параметрам эмулятор.
У меня сложилось впечатление, что все шрифты *.FON при выводе заменяются шрифтом Fixedsys, тогда как моноширинные шрифты *.TTF выводятся нормально.TTF это векторный шрифт. Разве он может быть моноширинным?
В прочем, хотелось бы свежий релиз с поддержкой шрифтов. :)
Black Cat / Era CG
01.08.2016, 23:46
TTF это векторный шрифт. Разве он может быть моноширинным?
Courier
Кстати, для CTAKAH поменялся адрес - 80.89.204.47. В конфиге можно поправить...
Вопрос к знающим.
Можно ли средствами эмулятора терминала отправить файл на устройство к которому он подключен (одноплатный компьютер)?.
Если можно то как?
Можно ли средствами эмулятора терминала отправить файл на устройство к которому он подключен (одноплатный компьютер)?Если эмулятор терминала является сервером протокола HX ( зависит от используемого конфига ), то тогда, если в загруженной системе установлен драйвер HX.SYS - файлы можно копировать с приводов HX на любые устройства RT-11.
Patron, В загруженной системе стоит микропроцессор i8051. Ему нужно передать Intel hex файл.
Можно его передать средствами эмулятора терминала?
Текстовый файл ASCII можно поместить в буфер обмена Windows ( <Ctrl/A> <Ctrl/Ins> ) и вставить в окне терминала ( <Shift/Ins> ) - тогда весь текст пойдёт как ввод с клавиатуры. Если на принимающей стороне запустить текстовый редактор - он примет этот текст, который можно затем сохранить в файл
Понятно. Кнопочки передать файл нет.
Принимающая сторона ждет, а передающая не может.:v2_dizzy_coder:
Надоело прыгать между окнами.
Кстати, для CTAKAH поменялся адрес - 80.89.204.47. В конфиге можно поправить...
Поправили )))
RSX-11M-PLUS V4.6 BL87 [1,54] System CTAKAH
27-NOV-16 17:29 Logged on Terminal TT60: as GST25
Good Afternoon
,;,
O(o o)O
+---ooO-----------Ooo------------------------------------------------+
| # # # W E L C O M E T O |
| # ## ## |
| #### #### #### # # ### # ### #### # # ### # # |
| # # # # # # ### # # # # # # # # # # # # |
| # # # # # # # # # # # # # # # # |
| #### #### #### ### ### # ### # ##### # # ### |
| # # # |
| # # RSX-11M-PLUS V4.6 #### |
+--------------------------------------------------------------------+
Last interactive login on Monday, November 21, 2016 04:09:09 (TT61:)
Last batch login on Thursday, March 17, 2016 15:38:36
See http://pdp-11.org.ru/~form/ctakah.html for more information.
$
Сорри что вклиниваюсь.
Понятно. Кнопочки передать файл нет.
В файле конфигурации можно настроить любую кнопку, любой команды.
Принимающая сторона ждет, а передающая не может.
А сигналы DTR,DSR выставлены?
Надоело прыгать между окнами.
А причем тут вообще эм.VT52? Если на то пошло, то на настоящем VT52 вообще ничего не передать кроме как ввода с клавиатуры.
Используйте программу terminal v1.9b (http://digitalchip.ru/terminal-1-9b-rabotaem-s-com-portom) для связи с контроллером.
Patron, на скрине увидел 15IE_FONT - что за зверь? Поделитесь шрифтиком - это ведь под Windows?
Я в эмуляторе ДВК пользуюсь Дежавю Моно, там правильный привычный нолик, а не "бублик".
15IE_FONT - что за зверь? Поделитесь шрифтиком - это ведь под Windows?
Я в эмуляторе ДВК пользуюсь Дежавю Моно, там правильный привычный нолик, а не "бублик".Это FON-шрифт, а я их пока использовать не умею - только TTF. Поэтому увидеть его на экране терминала всё равно не получится.
Это FON-шрифт, а я их пока использовать не умею - только TTF.
https://onlinefontconverter.com/ пробовали? Наверняка ещё есть варез какой-то, так что если скинете
мне шрифтик может я всё таки найду способ его в нужный формат преобразовать?
- - - Добавлено - - -
http://stackoverflow.com/questions/3750124/how-to-convert-a-bitmap-font-fon-into-a-truetype-font-ttf
может я всё таки найду способ его в нужный формат преобразовать?См. ЗДЕСЬ (http://zx-pk.ru/threads/20092-emulyator-terminala-tipa-vt52.html?p=880449&viewfull=1#post880449).
Patron, Как работать с ESC последовательностями?
Что то у меня не отрабатывает.
Как работать с ESC последовательностями? Что то у меня не отрабатывает.Терминал отрабатывает три разных набора управляющих кодов - для терминалов 15ИЭ, VT52 и VT100. Поэтому ( например ) коды ANSI для VT100 будут работать только в режиме ANSI. Терминал стартует в режиме VT52, для ручного переключения в режим ANSI надо кликнуть мышью по кнопке с надписью [VT52], после чего надпись изменится на [ANSI] и терминал начнёт отрабатывать коды ANSI.
В VT52, как он и стартует по умолчанию. Пробовал в ANSI, тоже не получилось.
Описание последовательности в режиме VT52 есть?
А то я может последовательность выдаю не правильную,
Использую последовательность из описания дисплея CM7209 который польский MERA.
А то я может последовательность выдаю не правильную.Пример выдачи правильной последовательности.
Запускаем BASIC и вводим:
READY
A$=CHR$(27)+"Y"+CHR$(40)+CHR$(40)
READY
PRINT A$+"####"
%%%%
READY
PRINT A$+"%%%%"
Последовательность прямого позиционирования курсора каждый раз выводит в одно и то же место экрана.
То есть вот этот список отрабатывается так как в нем написано.
;
;Управляющие последовательности
;
Mode: .DB 1BH.'%','!','[0-3]';установка режима работы терминала:
;Из четвертого символа используются два младших бита
;Esc %!0 - графический режим;
;Esc %!1 \
;Esc %!2 ! - текстовый режим (система команд VT-52).
;Esc %13 /
AltKey: .DB 1BH,'=' ;режим альтернативной клавиатуры
NoAltKey: .DB 1BH,'>' ;отмена режима альтернативной клавиатуры
Up: .DB 1BH,'A' ;курсор перемещаетсяна строку вверх
Down: .DB 1BH,'B' ;курсор перемещается на строку вниз
Rigt: .DB 1BH,'C' ;курсор перемещается на знакоместо вправо
Left: .DB 1BH,'D' ;курсор перемещается на знакоместо влево
Clear: .DB 1BH,'E' ;очистка экрана MERA, установка системы команд 15ИЭ-00-013
Graf: .DB 1BH,'F' ;устанавливается режим графики
NoGraf: .DB 1BH,'G' ;Отменяет режим графики
Home: .DB 1BH,'H' ;Перемещает курсор в левый верхний угол
ScUp: .DB 1BH,'I' ;Перемещает курсор вверх со сдвигом экрана
DoClr: .DB 1BH,'J' ;Очищает экран от курсора вниз
RiClr: .DB 1BH,'K' ;Очищает строку от курсора до конца
Func: .DB 1BH,'P' ;программирование функциональных клавиш и шрифтов см. *1*
DirXY: .DB 1BH,'Y',W,K ;Режим прямой адресации курсора.MERA
;Курсор устанавливается в позицию:
;строка W=[20H-37H] {0-23 строка}
;знакоместо в строке K=[20H-6FH] {0-79 место}
;при указании переменной вне этого диапазона
;курсор устанавливается в текущей строке на 79 место
Id: .DB 1BH,'Z' ;идетенфикация дисплея MERA.
;др. в регистры клавиатуры посылается последовательность
;Esc /Z (033 134 132). Терминал VT-100 в режиме VT-52.
Hold: .DB 1BH,'[' ;устанавливается режим Hold Screen MERA.
;последовательности VT-100:
;Esc [r - аналогично Ctrl+L (CLS);
;Esc [2h - отключение клавиш с одиночными кодами. Действуют
;клавиши, на которые назначены строки символов;
;Esc [2l - включение клавиш с одиночными кодами.
NoHold: .DB 1BH,'\' ;Отменяет режим Hold Screen
Print: .DB 1BH,']' ;устанавливается режим Copy Screen MERA.
Auto: .DB 1bH,'^' ;устанавливается режим Auto Copy
NoAuto: .DB 1BH,'_' ;Отменяется режим Auto copy
RusLat: .DB 1BH,'(' ;Двуалфавитный режим работы КОИ7 Н0 Lat
;КОИ7 Н1 Rus переключение таблиц SO SI
Mixed: .DB 1BH,')' ;Смешанный режим с использование таблицы КОИ7 Н2
; большие латинские и русские буквы
Ситуация такая: ESC "проглатывается" а остальное выводится на экран.
ESC "проглатывается" а остальное выводится на экран.Значит, сразу после ESC выводится что-то лишнее. Что именно - можно увидеть, подключив параллельно терминалу консоль в режиме дампа. Для этого в секциях [objects] и [links] файла конфигурации надо внести добавления и ещё - добавить в конце файла конфигурации секцию [Dump.ini] :
[objects]
Dump = Ядро:Console
[links]
TerminalPort > Dump
[Dump.ini]
DumpMode = 3
Patron, возможно снова проблемы с регулятором скорости?
- - - Добавлено - - -
И нужно то просто "чуть помедленнее" )
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_17.01.17_21-08 (http://emulator.pdp-11.org.ru/VT52/distr/VT52_17.01.17_21-08.rar)
Изменения:
1. Теперь управляющая последовательность <Esc>Z отрабатывается и в режиме VT52, и в режиме ANSI.
..
Сегодня посмотрел плату МПУ от терминала 15ИЭ-00-013, оказывается что там прошивки тоже есть. Возможно что пригодится для эмуляции.
Полное обозначение платы - ЩЦМ7.819.183ред3д МПУ ЩЦМ3.662.752
Прошивка К155РЕ3 D35 - здесь. (http://doc.pdp-11.org.ru/Terminals/15IE-00-13/ROM/15IE_MPU_D35_40.bin)
Прошивка К155РЕ3 D45 - здесь. (http://doc.pdp-11.org.ru/Terminals/15IE-00-13/ROM/15IE_MPU_D45_51.bin)
Теперь на 15ИЭ-00-013 все прошивки есть.
Сегодня посмотрел плату МПУ от терминала 15ИЭ-00-013, оказывается что там прошивки тоже есть. Возможно что пригодится для эмуляции.
Замечательно)
Только желательно бы перенести это в тему эмуляции именно 15ИЭ.
Замечательно)
Только желательно бы перенести это в тему эмуляции именно 15ИЭ.
Возможно что на данный момент приоритеты Patron'a изменились, но ранее были вопросы по 15ИЭ.
В частности по плате ПЗУ с 6ю прошивками. И дампы этой платы тоже есть (http://portal.kinderland.ru/published/DD/2.0/folder_link.php?sl=1cf1c16d47ff20fcf523004fb0692c2 f&DB_KEY=S0lOREVSTEFQT1JUQUw%3D).
Возможно что на данный момент приоритеты Patron'a изменились, но ранее были вопросы по 15ИЭ.
Но на сколько я понимаю, эмулятор VT52 ничего общего не имеет с эмуляцией железа 15ИЭ. Тогда как есть темы и эмуляторы, где именно железо 15ИЭ потактово эмулируется.
Тогда как есть темы и эмуляторы, где именно железо 15ИЭ потактово эмулируется.
ссылка?
ссылка?
Пользуйтесь поиском)
http://zx-pk.ru/threads/20744-emulyatsiya-fryazinskogo-displeya-15ie-00-013.html
http://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html
Titus, не, ну это я все видел, тем более что в EmuStudio это не отдельный эмулятор 15ИЭ.
Titus, не, ну это я все видел, тем более что в EmuStudio это не отдельный эмулятор 15ИЭ.
Но это эмулятор именно железа 15ИЭ, причем потактовый.
Это я помню, AlexK еще восхищался, но его нельзя подключить к эмулятору ДВК например, что снижает интерес.
Это я помню, AlexK еще восхищался, но его нельзя подключить к эмулятору ДВК например, что снижает интерес.
Я бы может и сделал вход для подключения, если бы мне дали интерфейс, и если этот интерфейс простой (не охота заморачиваться с тем, чем я в принципе не пользуюсь).
Я бы может и сделал вход для подключения, если бы мне дали интерфейс, и если этот интерфейс простой (не охота заморачиваться с тем, чем я в принципе не пользуюсь).
Интерфейс если не ошибаюсь обыкновенный СОМ порт
Интерфейс если не ошибаюсь обыкновенный СОМ порт
Это очень общая фраза)
Это очень общая фраза)
Какой вопрос такой и ответ )) А какая конкретика нужна? Есть стандартный виндовый набор функций для работы с СОМ, вот то место через которое в вашем эиуляторе происходит обмен данными с ИЕ15 выводите на функцию СОМ порта
У меня даже нет железного ДВК, чтобы подключить к компу и это проверить.
У меня даже нет железного ДВК, чтобы подключить к компу и это проверить.
А зачем железный ДВК? Достаточно обычного компа (причем того же самого если у него два порта) :)
Да и с одним портом (или без портов вовсе) есть легкий вариант...
А зачем железный ДВК? Достаточно обычного компа (причем того же самого если у него два порта) :)
Да и с одним портом (или без портов вовсе) есть легкий вариант...
Разжуйте на пальцах, плиз. Особенно без портов. Чтобы ничего не паять и не тыкать в комп.
Разжуйте на пальцах, плиз. Особенно без портов. Чтобы ничего не паять и не тыкать в комп.
Все просто. Если два порта (или другой комп есть) - замыкается один на другой, запускается любой эмулятор, умеющий работать с COM портом и тестируется.
Без портов - ставится vmware или virtualbox, в нем конфигурится машина с двумя com портами, направленными в named pipe, замыкуаются друг на друга, а далее вариант для двух портов...
Все просто. Если два порта (или другой комп есть) - замыкается один на другой, запускается любой эмулятор, умеющий работать с COM портом и тестируется.
Без портов - ставится vmware или virtualbox, в нем конфигурится машина с двумя com портами, направленными в named pipe, замыкуаются друг на друга, а далее вариант для двух портов...
Т.е., чтобы, например, подключить эмулятор ДВК Patron'а к эмулятору терминала, нужен такой огород с виртуалбоксами? Никак проще?
Т.е., чтобы, например, подключить эмулятор ДВК Patron'а к эмулятору терминала, нужен такой огород с виртуалбоксами? Никак проще?
Проще - два физических COM порта - тогда не нужно виртуалок :)
Насколько я понял цель - именно работа с COM портами, значит от них (физических или виртуальных) не уйти.
- - - Добавлено - - -
Впрочем вариант подключения через TCP/IP тоже интересен и не требует дополнительных ресурсов.
Впрочем вариант подключения через TCP/IP тоже интересен и не требует дополнительных ресурсов.
А этот вариант зачем?
А этот вариант зачем?
Затем, что он более распространен среди эмуляторов (некоторые эмуляторы другого и не умеют). Да и к собственно TCP/IP системам подключать терминал было бы интересно.
Затем, что он более распространен среди эмуляторов (некоторые эмуляторы другого и не умеют). Да и к собственно TCP/IP системам подключать терминал было бы интересно.
При подключении по TCP/IP и тем более к эмуляторам ДВК теряется аутентичность системы. Уже нет, наверное, смысла в потактово точном эмуляторе 15ИЭ, т.к. он работает не с реальной машиной, а с нетактовоточным эмулятором.
Titus, самое простое http://com0com.sourceforge.net/ patron его нашел и через него эмулятор тестировал
При подключении по TCP/IP и тем более к эмуляторам ДВК теряется аутентичность системы.
Ну если делать эмулятор который работает только "вот с этим", не умея при том подключаться _к реальным_ машинам стандартным для них способом - может проще тогда и вообще не заморачиваться - оставить просто терминал который умеет только печатать то, что нажали? ;)
Заморачиваться надо, но аутентично )) есть проги которые умеют СОМ <-> TCP/IP
есть проги которые умеют СОМ <-> TCP/IP
Я скажу больше: есть системы которые умеют TCP/IP. В том числе простой RT-11 позволяет подключаться через telnet :)
Есть программки виртуальных ком-портов. В системе появляется два порта, в программке настраивается какие линии как подключены, и всё, ЭмуСтудио цепляем к одному порту, эмулятор Патрона - к другому. И имеем то что хотели :)
Кстати, эмулятор ДВК с RSXом и DECnetом в нем который уже месяц с чем-то там крутится в HECnet как раз подключен петлей COM портов (правда в виртуальной машине ESXi) :)
На другом конце петли в той же машинке E11 опять таки с RSX, а уже он роутит через ethernet+ip до стакана...
Есть программки виртуальных ком-портов. В системе появляется два порта, в программке настраивается какие линии как подключены, и всё, ЭмуСтудио цепляем к одному порту, эмулятор Патрона - к другому. И имеем то что хотели :)
Есть. Платные. А взломанные под восьмеркой уже не идут. Значит надо пробовать бесплатную com0com.
А вообще, пока что мой эмуль не вполне заточен под синхронизацию по таймеру или аудиобуферу. Он синхронизируется по VBlank, что для эмулятора терминала в реальном времени не вполне подходит.
Значит надо пробовать бесплатную com0com.
во,она самая) мы её на лабораторных использовали много) название призабылось просто уже...
Patron, а в эмуляторе VT52 псевдографика есть?
Patron, а в эмуляторе VT52 псевдографика есть?Есть частичная имитация некоторых символов псевдографики VT52 и VT100 символами шрифта Windows.
if( !St_ANSI )
{
if( bGraphicsMode )
{
if( ch == 'f' ) { ch = '°'; }
else
if( ch == 'j' ) { ch = '‰'; }
else
if( ch == 'g' ) { ch = '±'; }
else
if( ch == 'i' ) { ch = '…'; }
else
if( ch == 0176 ) { ch = '§'; }
}
else
if( nP_ControlCodesType == IE15 )
{
if( ch == '$' ) { ch = '¤'; }
}
}
else
{
bool bGraphics = false;
if( St_RusLat && G1_byte == '0' ){ bGraphics = true; }
else
if( !St_RusLat && G0_byte == '0' ){ bGraphics = true; }
if( bGraphics )
{
switch( ch )
{
case 0137: { ch = ' '; break; }
case 0140: { ch = '®'; break; }
case 'a': { ch = 0xA0; break; }
case 'b': { ch = 'Њ'; break; }
case 'd': { ch = 'Ђ'; break; }
case 'e': { ch = 'Љ'; break; }
case 'f': { ch = '°'; break; }
case 'g': { ch = '±'; break; }
case 'j': { ch = '+'; break; }
case 'k': { ch = '+'; break; }
case 'l': { ch = '+'; break; }
case 'm': { ch = '+'; break; }
case 'n': { ch = '|'; break; }
case 'o': { ch = '~'; break; }
case 'p': { ch = '~'; break; }
case 'q': { ch = '—'; break; }
case 'r': { ch = '—'; break; }
case 's': { ch = '_'; break; }
case 't': { ch = '|'; break; }
case 'u': { ch = '|'; break; }
case 'v': { ch = '+'; break; }
case 'w': { ch = '+'; break; }
case 'x': { ch = '|'; break; }
case 'y': { ch = '«'; break; }
case 'z': { ch = '»'; break; }
case '{': { ch = 'п'; break; }
case '|': { ch = '#'; break; }
case '}': { ch = 'f'; break; }
case '~': { ch = '•'; break; }
}
}
Ндя, немного...
Может, запользовать диапазон 200-237? :)
Может, запользовать диапазон 200-237?Можно использовать все символы, присутствующие в каждом моноширинном шрифте Windows ( образец - шрифт System ).
Просто я пробовал использовать диапазон 200-237 (Strip_8Bit_HighLimit = 0177, шрифт Courier New) но мне ничего не показывалось.. что то делаю не так?
Просто я пробовал использовать диапазон 200-237 (Strip_8Bit_HighLimit = 0177, шрифт Courier New) но мне ничего не показывалось.. что то делаю не так?Некоторые старые программы для VT52 посылают управляющие коды с установленным 8 битом - так этот бит можно обрезать до попадания принятого терминалом кода в обработчик управляющих кодов.
Можно запустить с устройства DK игру: Space_Invaders (http://emulator.pdp-11.org.ru/misc/Space_Invaders.zip) и посмотреть, как работает эмуляция псевдографики VT52.
этот бит можно обрезать до попадания принятого терминалом кода в обработчик управляющих кодов
Я не про то. Я как раз не хочу обрезать, я хочу, что бы байт из диапазона 200-237 был выведен на экран. Он не выводится - эмулятор принципиально такие байты игнорирует?
я хочу, что бы байт из диапазона 200-237 был выведен на экран.Диапазон 200-237 не содержит отображаемых символов ASCII. Если обрезать 8-й бит - эти символы можно интерпретировать как управляющие, а если не обрезать - это просто неотображаемые символы.
обрезать 8-й бит - эти символы можно интерпретировать как управляющие
Более того, на ANSI терминалах они и есть управляющие :)
Например <233> - аналог <ESC>[ в 8-битном режиме терминала.
Диапазон 200-237 не содержит отображаемых символов ASCII
Можно использовать все символы, присутствующие в каждом моноширинном шрифте Windows ( образец - шрифт System ).
Не знаю, отобразятся или нет, примеры взяты из System
0x80 (0200) - Ђ
0x81 (0201) - Ѓ
0x86 (0206) - †
Более того, на ANSI терминалах они и есть управляющие
VT52 он как бы не совсем ANSI. И что такое CSI - я хорошо знаю.
- - - Добавлено - - -
Собственно, к чему все вопросы - есть ли какие то стандартные возможности рисования символов псевдографики для оформления таблиц или нет. Но я так понимаю - нет.
Не знаю, отобразятся или нет, примеры взяты из System
0x80 (0200) - Ђ
0x81 (0201) - Ѓ
0x86 (0206) - †Всё, что видно здесь - будет точно так же видно и в эмуляторе.
Но для представления каких кодов псевдографики VT52 ( или VT100 ) предлагается использовать эти символы?
- - - Добавлено - - -
есть ли какие то стандартные возможности рисования символов псевдографики для оформления таблиц или нет.В режиме ANSI ( как уже было показано ранее ) доступны коды псевдографики VT100, которых вполне хватает для нормального отображения таблиц :
if( bGraphics )
{
switch( ch )
{
case 0137: { ch = ' '; break; }
case 0140: { ch = '®'; break; }
case 'a': { ch = 0xA0; break; }
case 'b': { ch = 'Њ'; break; }
case 'd': { ch = 'Ђ'; break; }
case 'e': { ch = 'Љ'; break; }
case 'f': { ch = '°'; break; }
case 'g': { ch = '±'; break; }
case 'j': { ch = '+'; break; }
case 'k': { ch = '+'; break; }
case 'l': { ch = '+'; break; }
case 'm': { ch = '+'; break; }
case 'n': { ch = '|'; break; }
case 'o': { ch = '~'; break; }
case 'p': { ch = '~'; break; }
case 'q': { ch = '—'; break; }
case 'r': { ch = '—'; break; }
case 's': { ch = '_'; break; }
case 't': { ch = '|'; break; }
case 'u': { ch = '|'; break; }
case 'v': { ch = '+'; break; }
case 'w': { ch = '+'; break; }
case 'x': { ch = '|'; break; }
case 'y': { ch = '«'; break; }
case 'z': { ch = '»'; break; }
case '{': { ch = 'п'; break; }
case '|': { ch = '#'; break; }
case '}': { ch = 'f'; break; }
case '~': { ch = '•'; break; }
}
}
VT52 он как бы не совсем ANSI.
Так и эмулятор терминала не только VT52 эмулирует, но и некий минимум от VT100 :)
У меня есть файл, в котором занесены построчно байты в диапазонах (соотвественно - 16 и 8-ричные дипазоны)
первая строка - 0x20-0x3f (0040-0077)
вторая строка - 0x40-0x77 (0100-0177)
третья строка - 0x80-0xBF (0200-0277)
четврт строка - 0xC0-0xFF (0300-0377)
Шрифт - Courier New
Результат - http://www.kpxx.ru/KBAHT4C/Snapshots/vt52.jpg
Кстати, в списке доступных шрифтов System просто не отображается.
Но для представления каких кодов псевдографики VT52 ( или VT100 ) предлагается использовать эти символы?
Не показанные для примера из System, а те, которые, скажем в шрифте Terminal имеют коды - 0xB0-0xDF (сюда не могу вставить) - те, которые используются для рисования таблиц, например в текстах под MS-DOS.
Пояснение - я сейчас продумываю аналог NC - было бы удобно использовать такие псевдографические символы для рисования правого левого окна в стиле NC, Far. Тут правда встаёт проблема работы на реальных устройствах (ДВК, УКНЦ и т.п.) и эмуляторах - хотя в принципе она решаема - если знать - есть ли эти псевдографические символы - и какие у них коды.
- - - Добавлено - - -
некий минимум от VT100
ключевых слов два - некий и минимум. Это значит, если программа выходит за этот некий минимум, предполагая возможности VT100 - она будет слегка или не слегка неработоспособна (в плане отображение картинки).
- - - Добавлено - - -
Я когда искал терминальную программу, эмулирующую VT52 - перепробовал некоторое количество - могу только сказать (по памяти) - что кроме эмулятора VT52 Патрона меня не устроила ни одна (из бесплатных, платные уже не помню), опять же, насколько я помню - все они пытались строить из себя в какой то степени VT100. Но это было давно. Как сейчас обстоят дела - не знаю :)
те, которые используются для рисования таблиц, например в текстах под MS-DOS.Имеется в виду, какие символы псевдографики родного VT52 предлагается выводить дополнительно к уже эмулируемым. У родного VT52 нет символов псевдографики для рисования таблиц, поэтому и у его эмулятора - тоже.
Пояснение - я сейчас продумываю аналог NC - было бы удобно использовать такие псевдографические символы для рисования правого левого окна в стиле NC, Far. Тут правда встаёт проблема работы на реальных устройствах (ДВК, УКНЦ и т.п.) и эмуляторах - хотя в принципе она решаема - если знать - есть ли эти псевдографические символы - и какие у них коды.У всех разные, а чаще никакие - на это и есть смысл ориентироваться, используя для таблиц обычные символы "|", "-","+",":","#". Такая программа будет одинаково работать на всех терминалах и их эмуляторах.
Я когда искал терминальную программу, эмулирующую VT52 - перепробовал некоторое количество - могу только сказать (по памяти) - что кроме эмулятора VT52 Патрона меня не устроила ни одна (из бесплатных, платные уже не помню),
Аналогично!
Добавлю только, что и среди платных та же история - никто в принципе не умеет эмулировать VT52. То по <ESC>J стирается весь экран, то он вообще не работает то еще что. Перепробовал множество разных.
В памяти ворочается, что вроде ZoC какой-то работал нормально, но... у него функциональные клавиши были F1-F3, а бегать через всю клаву за ними в редакторе как-то не очень :)
Мне доводилось видеть на ДВК примерно такое оформление экранных таблиц:
+-\_DEVICE_/-+
| |
| DK |
| |
+------------+
Имеется в виду, какие символы псевдографики родного VT52 предлагается выводить дополнительно к уже эмулируемым
Это предмет обсуждения :)
У всех разные, а чаще никакие
Библиотека NDT, на которую я буду ориентироваться, позволяет сделать описание терминала. Всё это можно загнать в него (в описание) (и даже хранить отдельно в виде текстового файла для простоты настройки). Но в Вашем эмуляторе VT-52 можно сделать красивый вариант :)
Перепробовал множество разных
Матерился я долго и изощрённо, пока не напал на эмулятор Патрона. Жалко, тогда не было эмуляции ВМ3 :) - восстановление бы Кванта начал раньше :)
Мне доводилось видеть на ДВК
Пристрелка :)
http://www.kpxx.ru/KBAHT4C/Snapshots/mdc.jpg
можно сделать красивый вариант
Можно попробовать совместимо с УКНЦ сделать.
- - - Добавлено - - -
Жалко, тогда не было эмуляции ВМ3
Я тоже долго этого ждал :)
К тому времени уже был опробован RSX на живом ДВК-4 (грузился с MY). В какой-то момент не вытерпел и сделал 11M без MMU, грузящийся с HD :)
Можно попробовать совместимо с УКНЦ сделать
Библиотека NDT
позволяет сделать описание терминала
И никто не мешает для эмулятора сделать свой вариант
Пристрелка
А субдиры будут? ;)
В P/OS они есть в зачаточном состоянии, да и для M+ есть ACP (правда результат его добавки непредсказуем - скорее до первого VFY /LO) :)
- - - Добавлено - - -
сделать свой вариант
Свой тоже можно, но совместимо с УКНЦ будет меньше возни, а заодно те же УКНЦшные проги которые текстом работают с псевдографикой будут переносимы.
- - - Добавлено - - -
Матерился я долго и изощрённо
Забыл упомянуть еще один способ борьбы - создание ACD (CM$7209 на CTAKAHе) для преобразования :)
>DEV TI:
TT43: [FORM] [1,127] 3-AUG-17 18:15 1 O. SAFIULLIN
CLI = MCR BUF = 80. HFILL = 0
LINES = 24. TERM = VT2xx OWNER = TT43: NOPARITY
CHAR_LENGTH = 8 PRINTER_PORT NOPASTHRU NOSERIAL
NOLOWER PRIV NOHOLD NOSLAVE NOESC CRT NOFORM REMOTE
ECHO NOVFILL HHT NOFDX NOWRAP NORPA NOEBC TYPEAHEAD
NOCTRLC AVO ANSI DEC EDIT NOREGIS SOFT NOBLKMOD
HSYNC NOBRO NOABAUD TTSYNC
>SET TRA=CM$7209
>SET INQ
>DEV TI:
TT43: [FORM] [1,127] 3-AUG-17 18:15 1 O. SAFIULLIN
CLI = MCR BUF = 80. HFILL = 0
LINES = 24. TERM = VT52 OWNER = TT43: NOPARITY
CHAR_LENGTH = 8 PRINTER_PORT NOPASTHRU NOSERIAL
NOLOWER PRIV NOHOLD NOSLAVE NOESC CRT NOFORM REMOTE
ECHO NOVFILL HHT NOFDX NOWRAP NORPA NOEBC TYPEAHEAD
NOCTRLC NOAVO NOANSI NODEC NOEDIT NOREGIS NOSOFT NOBLKMOD
HSYNC NOBRO NOABAUD TTSYNC
>A
MCR -- IЛЛЕГАЛ ФУНЦТИОН
>
А субдиры будут
Пока нет. Тем более, там до хрена менять придётся. К тому же свой вариант поддержки директорий есть в MIM-е - пусть и не настолько хороший, как скажем в UNIX или PC, но как и с MIM-ов как файловым менеджером - процентов 90 потребностей он решает - и пока хватает.
да и для M+ есть ACP
Не помню, что бы попадался,
совместимо с УКНЦ будет меньше возни
одинаково от слова почти
создание ACD
Это не сильно универсальный способ. Хотя я его использовал для как бэ нативной поддержки русских букв. С возможностью выбора кодировки.
- - - Добавлено - - -
>A
MCR -- IЛЛЕГАЛ ФУНЦТИОН
Крайне не красиво ;)
Не помню, что бы попадался
Вроде в декусе видел и на ftp.update.uu.se лежит.
Крайне не красиво
Это была цель - получить СМ7209-совместимость - много софта-текстов было именно в таком виде, а не в ^N/^O (который кстати мешает просмотру на ANSI терминалах) :)
В DECUS не помню, что бы попадался (но во времена активной работы на СМ мало что было доступно, а теперь, когда вроде почти полностью есть - не сильно по нему лазил)
И на ftp.update.uu.se что то не видно - у меня он полностью выкачан. Если только недавно выложили.. Запустил обновляться
- - - Добавлено - - -
И вдогонку - такого рода текст я обычно перекодировал перед первым использованием (и в варианте ^N ^O), да и в программах можно было поправить.
в программах можно было поправить
Можно было, но это еще и вопрос ностальгии - тогда делалось и с этой целью, а позже оно вроде как и ненужным стало - появился эмулятор терминала :)
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_23.09.17_15-41 (http://emulator.pdp-11.org.ru/VT52/distr/VT52_23.09.17_15-41.rar)
Изменения:
1. Объекту Terminal добавлены состояния Power и Reset со входными линиями, позволяющими подключать эти состояния к линиям состояния шины. Также ( как и для любых состояний объектов ) их можно подключать к кнопкам. При изменении этих состояний - терминал очищает экран и сбрасывает флаги и фильтры управляющих протоколов в исходное состояние.
[links]
bus [Power] > VT52 [Power]
bus [Reset] > VT52 [Reset]
2. Теперь в логи объектов HX и Terminal_IP_Adapter выводятся метки времени.
3. Теперь сигнал BREAK, проходящий через фильтр HX в любом направлении - всегда сбрасывает фильтр протокола HX в начальное состояние. Если сигнал BREAK приходит от компьютера, когда фильтр реализует команду протокола HX - сигнал BREAK вырезается фильтром, иначе - транслируется в терминал. BREAK от терминала всегда транслируется в подключенный компьютер.
4. В протокол HX добавлена спецкоманда: "Сообщить версию протокола". В ответ на посылку байтов: [ 0001 ; 0373 ; 0126 ; 0145 ; 0122 ] - сервер вернёт два байта версии и ревизии протокола ( сейчас это: [ 002 ; 004 ] ).
Так, если выполнить в Бейсике команду: PRINT CHR$(1);CHR$(251);"V";CHR$(101);"R"; - дамп отправки в порт покажет: [ «001»«373»VeR ], а дамп приёма из порта: [ «002»«004» ]
..
А теперь практические вопросы :
1. Никак нельзя сделать не пространные эмуляторы импортного хлама типа VT52, а обыкновенный эмуль КСМ ( пожалуйска, без гашения видеовывода при операциях в проце КСМ ),
со строгим соотвествии 102 кнопочной клавы PS/2 и МС7004, а желательно - и полной эмуляции последней.
Запустил эмуль VT-52 - где там кнопка ПС ( код 12 ( 8 ) ) ??? Где кнопка латинское "Ч" ???
где там кнопка ПС
По привычке от VT100 иногда в нее попадаю - кнопка KP+ :)
Где кнопка латинское "Ч"
Что такое латинское Ч? Если то, что получается переходом из кои, то там где она и есть на клавиатуре: ^. И это замечательно, что не как в эмуляторе УКНЦ - хрен найдешь что где если привычки давно нет к родной клаве :)
где там кнопка ПС ( код 12 ( 8 ) )Можно нажимать клавишу <+> на расширенной клавиатуре, а можно клавишу <Apps> ( которая перед правой кнопкой <Ctrl> ).
Где кнопка латинское "Ч"Код 0136 генерит клавиша <~>, а код 0176 генерит клавиша <^>.
- - - Добавлено - - -
со строгим соотвествии 102 кнопочной клавы PS/2 и МС7004, а желательно - и полной эмуляции последней.Для полной эмуляции МС7004 можно использовать Эмулятор клавиатуры МС 7004 (http://zx-pk.ru/threads/23119-emulyator-klaviatury-ms-7004.html?p=697539&viewfull=1#post697539).
Для строгого соответствия клавиш PS/2 и МС7004 в файле Terminal.ini надо изменить настройку:
KeyboardLayout = RUS
- - - Добавлено - - -
При желании - можно подключить реальную клавиатуру МС7004 к PC через COM-порт и использовать её вместо клавиатуры PC.
Для подключения МС7004 надо использовать следующие настройки:
[objects]
MS7004_Converter = Terminal_module:MS7004_Converter
MS7004_ComPort = Ядро:Terminal_ComPort_Adapter
[links]
MS7004_Converter [ASCII] <=> ComPort
MS7004_Converter [MS7004] <=> MS7004_ComPort
[MS7004_ComPort.ini]
PortName = COM1
BaudRate = CBR_4800
Parity = NOPARITY
StopBits = ONESTOPBIT
ByteSize = 8
fDtrControl = DTR_CONTROL_ENABLE
fRtsControl = RTS_CONTROL_HANDSHAKE
fOutxCtsFlow = FALSE
fOutxDsrFlow = FALSE
InitialStateOf[ShowPortUse]=0
SaveChangesFor[ShowPortUse]=0
MinimalBreakTime_MKS=3000
Код 0136 генерит клавиша <~>, а код 0176 генерит клавиша <^>.
Спасибо за подсказку.
Вообще неплохо бы всё это нарисовать художественно в разрешении порядка 1280 х ~ 600 - в виде фото клавы и подписанными восьмеричными котами кнопок.
Лучше - несколько картинок для разных режимов.
*
Вообще ОЧЕНЬ нехватает остро заточенного эмуля КСМ - что бы небыло разницы с реальной ДВК-3. И без мигания картинки :speccy:
*
Выискалась проблема ФИФО в ИБМ ЭВМ - заметно пропадание котов в посылке. Источник- 065 с полноценным кобелем ( 4 шт. сигнальных проволоки + шахматный общий, 2 метра ) ). Это можно как-то настроить, или забить на это ?
( Скорость 9600, адрес в ДВК - 177560 ).
http://storage2.static.itmages.ru/i/17/1011/s_1507742646_2803673_8a54e05063.jpg (https://itmages.ru/image/view/6164639/8a54e050)http://storage3.static.itmages.ru/i/17/1005/s_1507237394_2225134_605d90db2d.jpg (https://itmages.ru/image/view/6149750/605d90db)http://storage5.static.itmages.ru/i/17/1005/s_1507237459_1194465_6b56720a70.jpg (https://itmages.ru/image/view/6149752/6b56720a)
https://www.kinopoisk.ru/film/terminal-2004-6877/
Небольшое предложение: добавить возможность из командной строки подставить конфиг который бы подставлялся вместо параметра ConfigFile из VT52.ini - это позволит использовать эмулятор в качестве терминальной программы для CHARON, а так же упростит жизнь несколько.
добавить возможность из командной строки подставить конфиг который бы подставлялся вместо параметра ConfigFile из VT52.iniПо идее - всё так и должно работать, но есть нюансы.
Сейчас есть только одна возможность загрузить конфиг из командной строки - указать полный путь в двойных кавычках:
VT52.exe "G:\FTP\VT52\HX_COM.cfg"
К следующему релизу не помешает добавить больше гибкости в алгоритм различения: 1) конфигов для загрузки; 2) ассоциированных файлов для запуска и 3) командных строк RT-11 для выполнения.
К следующему релизу не помешает добавить больше гибкости в алгоритм различения
И служебную строку. В терминале 24х80 где 25 строка будет отображать текущую скорость соединения, режим работы, набор кодировки.
Получится 25х80.
В конфиге можно сделать опцию - Service line ON [OFF]
Спасибо.
Или лучше так:
Service line - 0 [служебная строка отключена]
Service line - 1 [служебная строка 15ИЭ]
Service line - 2 [служебная строка КСМ]
Service line - 3 [служебная строка СМ7209]*
Service line - 4 [служебная строка (зарезервировано)]
* В этом случае служебная строка находится внизу.
Баг принимаете?
При подключении к приводу НХ дисков DX/DY RT11 не видит каталога. Это так и должно быть?
RT11 загружена с НХ.
При подключении к приводу НХ дисков DX/DY RT11 не видит каталога. Это так и должно быть?Так и должно быть. При подключении образов DX/DY/DZ к приводу HD - увидеть каталог тоже не удастся.
При подключении образов DX/DY/DZ к приводу HD - увидеть каталог тоже не удастся.
Ну как вариант, HD на каталог с образами, а в LD они правильно будут показываться (кроме DZ).
в LD они правильно будут показываться (кроме DZ).У DX и DY такой же алгоритм интерлива, как у DZ, только для секторов по 128 и 256 байтов. В образах DZ хотя бы только блоки перемешаны, а в образах DX и DY - перемешаны уже четвертушки ( DX ) или половинки ( DY ) блоков.
- - - Добавлено - - -
Ну и конечно - у всей троицы в образе сначала записаны блоки последней дорожки и только потом - блоки остальных дорожек, начиная с нулевой.
У DX и DY такой же алгоритм интерлива
Тогда не будет.
Какие-то перестановки LD делает для флоповых образов, но не такие чтобы DZ читать.
- - - Добавлено - - -
Посмотрел на образ DY в эмуляторе - он не соответствует стандартным DECовским образам (с которыми работают все) - тогда все понятно.
Выглядит шрифт забавно.
С одной стороны вроде как глючный, а с другой стороны прослеживается какая-то в этом закономерность.
Хотя, больше склоняюсь к тому, что все же глючный)
Да, вроде глючный, держи новый файл.
СМ7209_FONT (http://doc.pdp-11.org.ru/Terminals/CM7209/CM7209_FONT.BIN)
Этот прочитан с другой платы.
Patron, Можно ли добавить опцию подключения карты знакогенератора (bitmap). Тогда в настройках Terminal.ini кроме оригинальных цветов терминалов, будут оригинальные символы.
Спасибо.
Можно ли добавить опцию подключения карты знакогенератора (bitmap).Похоже, что с терминалом такое никогда не будет возможно. Когда дойдёт дело до графической подсистемы - появится объект "Монитор", выводящий поток графических кадров (битмапов размером с эмулируемый экран). Эмуляторы КСМ и КЦГД будут создавать эти кадры и отправлять через поток кадров в монитор для отрисовки. Такой подход позволит отдельно эмулировать графические адаптеры и отдельно - мониторы.
Похоже, что с терминалом такое никогда не будет возможно.
Как это не возможно когда любой терминал генерирует символы.
Когда дойдёт дело до графической подсистемы - появится объект "Монитор", выводящий поток графических кадров (битмапов размером с эмулируемый экран).
Речь идет о символьном терминале.
Эмуляторы КСМ и КЦГД будут создавать эти кадры и отправлять через поток кадров в монитор для отрисовки.
Зачем такие сложности? Лучше разделить графический режим и символьный, где в символьном режиме идет код символа, а терминал (и те же КСМ, КЦГД) печатает символ с соответствии с картой знакогенератора (выбранного терминала).
В графическом режиме (касается только КГД, КЦГД) идет поток битов где отображается в отдельной консоли с автоматическим переключением туда и обратно.
По сути эмуляция КСМ+КГД пускай будут в отдельных консолях, это облегчит эмуляцию. В КЦГД, там сложнее. Лучше КЦГД использовать только графический режим с эмуляцией символьного.
Но просьба была по терминалам, где терминал не использует шрифт, а создает символы из прошивки знакогенератора.
Можно ли добавить опцию подключения карты знакогенератора (bitmap).Как выяснилось - эта опция есть уже сейчас. Карта знакогенератора должна быть оформлена в виде растрового FON-шрифта Windows, поддерживающего набор символов RUSSIAN_CHARSET.
Сейчас разобрался с шрифтом 15IE_FONT.fon - у него две ( или три ) проблемы, не позволяющие этому шрифту нормально работать в эмуляторе терминала:
1. Отсутствует RUSSIAN_CHARSET
2. Порядок русских букв не совпадает со шрифтом Fixedsys
3. Размер символов не позволяет нормально выводить в окно.
Поэтому, если (в тестовой сборке) отключить в эмуляторе терминала задание набора символов RUSSIAN_CHARSET, то при выборе шрифта: Fixedsys - загрузка выглядит так:
http://emulator.pdp-11.org.ru/pics/fixedsys.png
а при выборе шрифта: 15IE_FONT - тот же самый экран выглядит так:
http://emulator.pdp-11.org.ru/pics/15IE_FONT.png
Если раздвинуть окно в ширину - можно увидеть весь экран:
http://emulator.pdp-11.org.ru/pics/15IE_FONT(2).png
Как выяснилось - эта опция есть уже сейчас. Карта знакогенератора должна быть оформлена в виде растрового FON-шрифта Windows, поддерживающего набор символов RUSSIAN_CHARSET.
Сейчас разобрался с шрифтом 15IE_FONT.fon - у него две ( или три ) проблемы, не позволяющие этому шрифту нормально работать в эмуляторе терминала:
Я создавал файл в формате fon из карты знакогенератора программой 8х8 rom pixelfont editor. (https://www.min.at/prinz/o/software/pixelfont/)
- - - Добавлено - - -
Вот например как будет выглядеть шрифт от СМ7209
http://i12.pixs.ru/storage/0/4/4/SM7209jpg_3840464_28519044.jpg
- - - Добавлено - - -
а при выборе шрифта: 15IE_FONT - тот же самый экран выглядит так:
Ясно что не годится. Вот и была просьба чтоб сам эмулятор напрямую с прошивкой работал.
Ясно что не годится. Вот и была просьба чтоб сам эмулятор напрямую с прошивкой работал.Терминал всегда будет выводить шрифты прошивок только из FON-шрифтов Windows. Надо просто научиться правильно их готовить. Возможно - написать правильную утилиту создания FON-шрифтов для эмулятора из шрифтов в прошивках. Кому интересно выводить на терминал шрифты из битовых карт прошивок - могут этим заняться.
Терминал всегда будет выводить шрифты прошивок только из FON-шрифтов Windows.
Это годится только для стандартной таблицы. Как будет задействована псевдографика расположенная в 0-31 и 128-159?
Это годится только для стандартной таблицы. Как будет задействована псевдографика расположенная в 0-31 и 128-159?Терминал никогда не сможет показать символы с кодами из диапазона 0-31, потому что они всегда распознаются как управляющие. Символы из диапазона 128-159, при перекодировании из набора символов КОИ-8 в набор символов Windows - в текущей версии преобразуются в пробелы. В принципе - их можно пропускать без перекодирования, тогда при наличии нормального FON-шрифта - эти символы будут выведены соответствующими значками ( только надо ещё изменить порог очистки старшего бита символа: Strip_8Bit_HighLimit = 0177 ).
Терминал никогда не сможет показать символы с кодами из диапазона 0-31, потому что они всегда распознаются как управляющие.
Это в стандартном режиме. В расширенном режиме терминал обращается в область ПЗУ где эти символы находятся, а команды отрабатываются другим ПЗУ, где собственно и программа работы самого терминала.
Это в стандартном режиме. В расширенном режиме терминал обращается в область ПЗУ где эти символы находятся, а команды отрабатываются другим ПЗУ, где собственно и программа работы самого терминала.Для начала пусть кто-нибудь сделает нормальный конвертор шрифтов прошивок в FON-шрифты эмулятора. В следующем релизе - терминал сможет при помощи FON-шрифтов выводить псевдографику в диапазоне кодов символов 0200..0237 ( кроме символа с кодом 0230 ). Пока не появится первый нормальный FON-шрифт для тестов - символ с кодом 0230 будет выводиться пробелом.
- - - Добавлено - - -
С обычными шрифтами Windows выводится обычная "псевдографика" Windows:
.BASIC
BASIC-11/RT-11 V02-03Y
OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)?
READY
10 FOR I=128 TO 159
20 PRINT CHR$(I);
30 NEXT I
RUN
NONAME 03-DEC-17 00:03:14
ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’ ”•–— ™љ›њќћџ
READY
- - - Добавлено - - -
Это после переделки терминала на прямой вывод кодов 0200..0237 и изменения настройки очистки старшего бита выводимого байта на: Strip_8Bit_HighLimit = 0177
Предложение по доработке HX драйвера - добавить/расширить вызовы .SPFUN:
SF.R32 (367), SF.W32(366) - чтение/запись с использованием 32-битного блока, аргумент blk - адрес дескриптора: первые два слова - номер блока, третье слово возвращает реально переданное количество слов, четвертое не используется (совместимость с DU)
SF.SIZ (373) - получить размер - аргумент blk - тип запроса: SF.S16 (0) - 16 бит, SF.S32 (1) - 32 бит (в этом случае буфер должен быть 4-словным, два слова - размер, два слова не используются
Функционал будет полезен для подъема с нуля систем с большими дисками.
Предложение по доработке HX драйвера - добавить/расширить вызовы .SPFUN:
SF.R32 (367), SF.W32(366) - чтение/запись с использованием 32-битного блока, аргумент blk - адрес дескриптора: первые два слова - номер блока, третье слово возвращает реально переданное количество слов, четвертое не используется (совместимость с DU)
SF.SIZ (373) - получить размер - аргумент blk - тип запроса: SF.S16 (0) - 16 бит, SF.S32 (1) - 32 бит (в этом случае буфер должен быть 4-словным, два слова - размер, два слова не используются
Модифицировать драйвер удобнее тому из разработчиков, кому есть на чём тестировать результат.
От себя могу предложить исчерпывающую информацию по реализации.
1. Запрос размера диска. Существующий код драйвера HX по обработке запроса SPFUN для получения 32-разрядного размера диска требует минимальной модификации - там всё очевидно.
2. Чтение/запись. Для реализации обработки запроса SPFUN по чтению/записи с использованием 32-битного блока - нужно найти в драйвере код обработки с использованием 16-битного блока, скопировать в подпрограмму обработки запроса SPFUN "верхнюю половину" кода ( до передачи старшего слова номера блока ), добавить код передачи старшего слова номера блока, после чего выполнить переход на "нижнюю половину" кода.
Разберём на примере запроса чтения.
HX.Read:
Mov #1, R0 ; Send SOH
Call ChOu
Mov #9.*400+375, R0 ; Short packet ; Packet size = 9
Call WOu
Mov #"Cr, R0 ; Packet type = COMMAND ; Command = Cmd_READ_PACKED_STREAM
Call WOs
Mov R3, R0 ; Unit
Call ChOs
Mov R2, R0 ; Block
Call WOs
Clr R0
Call WOs ; 16bit Block -> 32bit Block
ASL R1 ; R1 == Byte Count
Mov R1, R0 ; Byte Count
Call WOs
Mov ChSum, R0
Call WOu ; CheckSumm
Зелёное и красное - надо перенести. Красное - надо изменить для передачи старшего слова номера блока. Синее - общее продолжение, которое надо оставить на месте и выполнять туда переход из перенесённого и изменённого кода.
Patron, Здравствуйте.
Я использовал загрузчик НХ в качестве ввода программы на Бейсике. Есть вопросы.
Как отключить детектор промпта, пустые кавычки в настройке PromptChar="" не дают ввода текста по нажатию кнопки Boot HX0. Как вариант использую пробел.
Как в тексте программы сделать "перевод сроки+возврат каретки" т.к после ввода первой строки следующая ждет повторное нажатие пробела.
На данный момент тест вводится с пробелами (перед 10 и RUN). После RUN надо нажать Enter.
БЭЙСИК ДВК НЦ
@0
ЖДУ
10PRINT "HELLO"
RUN
HELLO
ОСТ СТРОКЕ 10
ЖДУ
И, просьба сделать выпадающее меню рядом с кнопкой Boot HX0 для выбора файла с текстом.
Спасибо.
[b]Как отключить детектор промпта, пустые кавычки в настройке PromptChar="" не дают ввода текста по нажатию кнопки Boot HX0.Можно попробовать создавать два объекта типа ODT_Loader с разными именами - один будет как обычно подключен к кнопке Boot HX0, а другой (без задания промпта) - к какой-то другой кнопке.
В принципе, можно вообще не заморачиваться с загрузкой текста через ODT_Loader, а вставлять текст через буфер обмена ( для вставки текста в терминале - нажать <Shift><Insert> ). Открываем текст программы в блокноте Windows, выделяем нужный фрагмент, копируем в буфер обмена ( например, нажав <Ctrl><Insert> ), переходим в окно терминала и нажимаем <Shift><Insert>.
Как в тексте программы сделать "перевод сроки+возврат каретки"При загрузке текста из файла скрипта - ODT_Loader превращает последовательности 015 012 в 015 ( т.е. CR LF в CR ), а 0254 015 012 в 012 ( ¬ CR LF в LF ). Значит, если в файле программы после каждой строки кода вставлять пустую строку с одиночным символом '¬', то после CR, переданного в конце предыдущей строки, будет передан LF. Однако, нужно отметить, что при вводе с клавиатуры - ввод каждой строки заканчивается именно одиночным нажатием клавиши <CR>, а не нажатиями последовательности клавиш <CR><LF>.
А я правильно понимаю, что обсуждаемый эмулятор VT52 обязан нормально работать через свистульки USB-COM на всяких FT232, PL2303 и пр. CH340G, а не только через "железные" компорты?
А я правильно понимаю, что обсуждаемый эмулятор VT52 обязан нормально работать через свистульки USB-COM на всяких FT232, PL2303 и пр. CH340G, а не только через "железные" компорты?
Проблем на PCI/USB портах у него нет. Думаю с ттлными преобразователями тоже нет.
Это у всяких TU58 эмуляторов проблемы из-за особой реакции на BREAK у таких железяк :)
Я использовал его для подключения к PDP на Циклоне - через FT232 как раз
Угу. Только если покупать эту свистульку с FT232 у китайцев, высока вероятность нарваться на подделку - левый китайский клон этого чипа. А его родные дровишки, ущучив левак, стирают в нем что-то, вроде VID/PID, и до свидания. Вылечить, конечно, можно, но это нужны старые дровишки и куча поясок с бубном. Что-то похожее есть и с PL2303, а вот CH340G в таком пока не замечены.
А его родные дровишки
Ну, те которые использую - не матерятся. А обновлять дрова пока не вижу смысла :)
Есть ли возможность ознакомиться с текстом ( используемыми символами ) загрузчика МС1201.02, подаваемого с ИБМ ЭВМ по кнопке "Загрузить" ?
Предполагаю, там используются символы :
/ - откр. адрес
(ПС) - сл. ячейка
0...7 - циферки
G - запустить
....
CodeMaster
04.12.2018, 08:49
А его родные дровишки, ущучив левак, стирают в нем что-то, вроде VID/PID, и до свидания.
И что же эти "левые китайцы" создали клон не полностью соответствующий оригиналу, что видит даже софт (т.е. перепроектировали) и при этом не предусмотрели защиту от этого?
Есть ли возможность ознакомиться с текстом ( используемыми символами ) загрузчика МС1201.02, подаваемого с ИБМ ЭВМ по кнопке "Загрузить" ?По кнопке "Загрузить" передаётся содержимое текстового файла, называемого "файл скрипта" и указанного в файле конфигурации в параметре
[ODT_Loader.ini]
ScriptFile = TU58_WarmBoot_(177560).odt
Файл скрипта ( в нашем примере это TU58_WarmBoot_(177560).odt ) лежит в каталоге эмулятора и содержит обычный текст, который можно просмотреть и отредактировать.
Файл скрипта
https://pic.maxiol.com/thumbs/1544053000.531452799.177560.jpg (https://pic.maxiol.com/?v=1544053000.531452799.177560.jpg)
Он достоверен ?
( Какие-то коТы типа 115 завелись ... )
Он достоверен ? ( Какие-то коТы типа 115 завелись ... )В оригинале это специальные последовательности [115 015 012] ( т.е. одиночный символ Windows кодировки: ¬ - в конце строки ), которые при передаче в ДВК преобразуются в одиночный код 012.
В блокноте Windows невозможно оставить в конце строки одиночный LF, поэтому для передачи в конце строки одиночного LF используется такой трюк.
И что же эти "левые китайцы" создали клон не полностью соответствующий оригиналу, что видит даже софт (т.е. перепроектировали) и при этом не предусмотрели защиту от этого?По слухам, они ущучивают повторение серийников. База серийных номеров-то у оригинального изготовителя...
CodeMaster
15.12.2018, 22:49
По слухам, они ущучивают повторение серийников. База серийных номеров-то у оригинального изготовителя...
Да, я не про то. Почему они не сделали защиту этого VID/PID или возможность его восстановления?
Почему они не сделали защиту этого VID/PIDПотому, что это будет уже не совсем точная копия. Да и не вникали они особо в детали, содрали, да и все...
или возможность его восстановления? Так она есть, просто много плясок с бубном. То есть, конечно, китайцы могли бы сочинить утилиту, которая делает это легко, без плясок с бубном, но они же китайцы. Да и проблема вылезла гораздо позже, когда до оригинального изготовителя, наконец, дошло, что китайцы склепали левак и демпингуют.
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_20.01.19_09-54 (https://emulator.pdp-11.org.ru/VT52/distr/VT52_20.01.19_09-54.rar)
Изменения:
1. Теперь ODT_Loader при анализе принимаемых символов игнорирует байт 017 в начале строки - это нужно для нормальной загрузки по HX на ДВК с прошивками, посылающими в пульте байт LAT перед символом '@'.
Добрый вечер, Patron.
А эмулятор VT52 сигнал Break в ком-порт посылает? В частности, если его использовать как терминалку для Э85 при подключении через консольный порт - вылет в ODT будет (ну при условии, что всё остальное сделано правильно - подключены TXD, RXS, замкнуты 5-6 и 8-9 )?
Спасибо.
А эмулятор VT52 сигнал Break в ком-порт посылает?
Посылает по Ctrl-Break или Alt-Break - точно не помно уже.
Я на 11/83 в пульт так выходил (на моей клавиатуре набор клавиш немного другой, нужно нажать три клавиши, но суть та же).
form, спасибо. Alt-Break. Я пробовал жать кнопку Break - нулевая реакция. Но я пока не уверен, что правильно кабель спаял - опять вылезло то, что наша нумерация - зеркальная к буржуйской...
А эмулятор VT52 сигнал Break в ком-порт посылает?В комплекте поставки есть файл конфигурации COM_4.cfg - там есть лампочки для всех входных сигналов и кнопки с лампочками для всех выходных сигналов. Сейчас проверил этот конфиг в паре с эмулятором ДВК, подключенным к парному виртуальному COM-порту (у меня это COM5). При нажатии на клавиатуре кнопки <Pause/Break> - в линию уходит сигнал BREAK с продолжительностью, указанной в параметре MinimalBreakTime_MKS:
[ComPort.ini]
PortName="COM4"
MinimalBreakTime_MKS=3000
Т.е. по умолчанию продолжительность сигнала 3 мс.
При нажатии мышью на кнопку [BRK] в эмуляторе терминала - похоже, что в линию уходит непрерывный BREAK вплоть до повторного клика на кнопке. Но это не факт, вполне возможно, что я просто забыл убрать у кнопки фиксацию, а продолжительность сигнала BREAK зависит только от параметра MinimalBreakTime_MKS.
При нажатии на клавиатуре кнопки <Pause/Break> - в линию уходит сигнал BREAK
Аха, спасибо.
Если задействовать порты на плате под PCI-E шину (Espada FG-EMT03A-1-BU01), то загрузить ту же RT-11 нельзя. В процессе, вместо @10000G появляется @10000G80a. Кто виноват ?
Если задействовать порты на плате под PCI-E шину (Espada FG-EMT03A-1-BU01), то загрузить ту же RT-11 нельзя. В процессе, вместо @10000G появляется @10000G80a. Кто виноват ?
Если речь идёт о загрузке RT-11 по протоколу HX через порт терминала, то обсуждать это лучше в специальной теме: Загрузка RT-11 через порт системного терминала (https://zx-pk.ru/threads/20095-zagruzka-rt-11-cherez-port-sistemnogo-terminala.html).
Как должна идти загрузка - можно легко проверить, подключив эмулятор терминала к эмулятору ДВК через виртуальную пару COM-портов (подробнее см. по ссылке выше). Если в реальности работает по-другому - виновато железо.
Уважаемые пользователи Эмулятора VT52, подскажите, pls., можно ли к Эмулятору VT52 подключить диски HD (из Эмулятора ДВК) или расшарить РСюшный каталог как в HD WorkDir?
Уважаемые пользователи Эмулятора VT52, подскажите, pls., можно ли к Эмулятору VT52 подключить диски HD (из Эмулятора ДВК) или расшарить РСюшный каталог как в HD WorkDir?
из описания
https://zx-pk.ru/threads/20095-zagruzka-rt-11-cherez-port-sistemnogo-terminala.html?p=543602#post543602
К свободным приводам HX ( т.е. тем, загрузка с которых не планируется ) можно подключать любые образы формата DSK произвольного размера.
из описания
https://zx-pk.ru/threads/20095-zagruzka-rt-11-cherez-port-sistemnogo-terminala.html?p=543602#post543602
Спасибо, я это уже читал и использую... Вопрос несколько о другом - как через драйвер HX (или иным способом) получить доступ к каталогу на РС, как это реализовано в драйвере HD для Эмулятора ДВК.
rrp, Выбрать диск НХ и по кнопке образа нажать Alt + Left Click.
rrp, Выбрать диск НХ и по кнопке образа нажать Alt + Left Click.
Спасибо! Работает!
Или в конфиге вставить ссылку.
Странно, но до этого, когда правил конфиг не работало...
Багрепорт - в реальной связке МС1201.03 - RS232 ( наплатный ) ИБМ ЭВМ не достаточно достоверено отрабатывется ЕМТ341 со стороны МС1201.03 - копит в буфер под ~70 символов, и потом до 80% пропускает на передачу ( не передает в ИБМ ЭВМ ). Использую аппаратное управление потоком - все 4 сигнальных проволоки от ВП1-065 задействованы.
ЕМТ351 вроде как отрабатывается удовлетворительно.
Баг устранен.
ЕМТ341
Что под этим подразумевается?
Если непрерывная выдача EMT341 (EMT, EMT, EMT ...) в RT-11 для печати символов, то это просто неверное использование функционала RT-11.
Если проще, EMT 351 - печать строки.
EMT 341 - НЕ печать символа.
EMT 341 - НЕ печать символа.
Иправлено
Прекращаем бред.
В чем бред?
Еще раз, EMT 341 - это НЕ функция печати символа.
Читаем внимательно мануал по макробиблиотеке, в частности, курим чем отличаются .TTOUTR от .TTYOUT.
EMT 341 записывает символ в исходящий буфер терминала. Если места в буфере нет - происходит возврат с ошибкой.
На этом все в плане функционала данного EMT.
Если нужно последовательно печатать символы - следует проверять бит C (что и делается в макрокоманде .TTYOUT).
мануал по макробиблиотеке
https://pic.maxiol.com/thumbs2/1589568334.531438894.2608.jpg (https://pic.maxiol.com/?v=1589568334.531438894.2608.jpg&dp=2)
Совершенно верно.
Следует использовать такой текст для вывода символа :
104341 103776
Следует использовать такой текст для вывода символа :
104341 103776
Все верно - это и есть развертка .TTYOUT - если нет места в буфере, прога циклится пока оно не появится.
В этом случае должно выводиться все.
Раньше с М-ЭВМ использовался графический встроенный терминал, и вместо числа 103776 было 240 - вот при использовании RS-232 символы и выпадали, согласно толщине канала тарминала.
Просто проверил обновлённый .exe-шник (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1076776&viewfull=1#post1076776) )
Welcome to CTAKAH, an RSX-11M-PLUS system!
>HELLO
Account or name: GUEST
Password:
RSX-11M-PLUS V4.6 BL87 [1,54] System CTAKAH
14-SEP-20 01:05 Logged on Terminal TT41: as GST14
Good Morning
,;,
O(o o)O
+---ooO-----------Ooo----------------------------------------------+
| # # # ## # |
| # ## ## # |
| #### #### #### # # ### # ### # ### # ### ### |
| # # # # # # ### # # # # # # # # # # # # |
| # # # # # # # # # # # # # # # # ##### |
| #### #### #### ### ### # ### # # ### ### # # # |
| # # ### |
| # # CTAKAH:: RSX-11M-PLUS V4.6 |
+------------------------------------------------------------------+
Last interactive login on Saturday, September 12, 2020 02:55:40 (TT42:)
Last batch login on Tuesday, March 12, 2019 22:10:00
See http://pdp-11.org.ru/~form/ctakah.html for more information.
$ BYE
$ @LB:[1,2]SYSLOGOUT.CMD
$ @ <EOF>
$
Connect time: 0 hrs 0 mins 30 secs
CPU time used: 0 hrs 0 mins 3 secs
Task total: 22
Have a nice day
14-SEP-20 01:06 TT41: logged off CTAKAH
$
Welcome to CTAKAH, an RSX-11M-PLUS system!
>
falanger
22.05.2021, 02:03
Добрый день. Мне надо ввести через эмулятор VT52 код для запуска встроенного ПО SCSI контроллера Emulex UC07.
@ 17772150/ 000000 1 < LF>
@ 17772152/ 5400 30003 < CR >
@/000400 42000 < CR >
@ 17772152/ 2000 < CR >
@200G
Какие клавиши в эмуляторе на РС-клавиатуре эмулируют LF - CR? А то я после рабочей смены мало чего соображаю сейчас.
LF - CR
CR - просто Enter.
Насчет LF не знаю эмулируется ли он чем-то отдельно (если склероз не врет, вроде какую-то клавишу назначали).
В разных эмуляторах терминала какие попадались Shift-Enter или Ctrl/Enter давали LF, но когда все-равно используется две клавиши - проще использовать безотказный вариант Ctrl/J который и есть LF по своей сути.
Какие клавиши в эмуляторе на РС-клавиатуре эмулируют LF - CR?
CR посылают обе клавиши <Enter>, а LF посылает клавиша <Apps> (слева от правой клавиши <Ctrl>) и клавиша <+> на дополнительной клавиатуре (выше второй клавиши <Enter>).
А насколько сложно добавить ещё скорости для COM порта?
У меня поддерживаются ещё 230400, 460800 и 921600, но выставить их, по понятным причинам, не получается... :)
Patron, здравствуйте а можно ли добавить в эмулятор терминала дополнительный модуль передачи файлов бинарно?
У меня получилось запускать программы без ос. Подаю команду 177560L на процессоре мы и отправляю фаил lsi absloader следом за ним lda фаил программы и все работает.
Помогите пожалуйста интегрировать эту функцию в ваш эмулятор.
P.s. на МС1201.02 и в эмуляторе можно опустить останов. И нажать L потом поменять в 157776/177560 следом нажать P и начать бинарную отправку (задержка для реальной машины нужна только если программа подгружает ещё один свой загрузчик (у меня имеется такая) обычно задержка до 5 мс)
P.p.s. для передачи данный использовал realterm и teraterm и ещё com data emulator
Woxem, Тогда надо абсолютный загрузчик в скрипт переделать, и запуск без команды 177560L а прямо с пульта.
Файл скрипта должен быть прописан в конфигурации.
MiX, для начала хотя бы добавить простую бинарную передачу чтобы ее отладить а потом прикручивать улучшения
P.s. если под словом скрипт вы подразумеваете odt loader то нет он ждёт символ @ пробовал уже не работает
нет он ждёт символ @
Не обязательно - это настраивается. Файл конфигурации, раздел [ODT_Loader.ini], параметр PromptChar. Только не совсем понятно (из за названия) - можно описать только односимвольный prompt или можно и многосимвольный. Надо будет поэкспериментировать
- - - Добавлено - - -
Проверил - отработал и многосимвольный prompt
Нужно чтобы он вообще ничего не ждал. как это сделать?
У меня такое чувство что он подаёт некоторое количество и останавливаться.
Удаляю строку он ее восстанавливает
Нужно чтобы он вообще ничего не ждал. как это сделать?
У меня не получилось
MiX, для начала хотя бы добавить простую бинарную передачу чтобы ее отладить а потом прикручивать улучшения
Пультом воспринимаются цифры (кроме девятки), несколько букв, и это в ASCII.
P.s. если под словом скрипт вы подразумеваете odt loader то нет он ждёт символ @ пробовал уже не работает
Нужно прописать в конфигурации промпт именно тот который появляется на экране.
MiX, на экране ничего не появляется в том то и прикол когда запускаешь 177560L запускается цикл программы и электроника не отвечает ничего она тупо ждёт байты и когда их получает выходит из цикла
MiX, на экране ничего не появляется в том то и прикол когда запускаешь 177560L запускается цикл программы и электроника не отвечает ничего она тупо ждёт байты и когда их получает выходит из цикла
А когда выходит что пишет?
Ну запускается программа там в конце lda обычно прописанно стартовый адрес"G"
Помогите пожалуйста интегрировать эту функцию в ваш эмулятор.А в эмуляторе можно просто воспользоваться эмуляцией перфолент. Даже без переключения на консольный адрес. Прописываем в инишник выбранной конфигурации вот эту секцию (позаимствовано из патроновского default.ini) и вперед!
[PC.ini]
PC_BaseIO_Address=0177550
PC_BaseVectorsAddress=070
PC_ComponentDisabled=0
PP_BaseIO_Address=0177554
PP_BaseVectorsAddress=074
PP_ComponentDisabled=0
MinimumPanchedBytesToStore=12
InitialStateOf[AutoCut]=1
SaveChangesFor[AutoCut]=0
PC0 = Paper Tapes\LSI-11-AbsLoader.binДалее надо разобраться, как прицепить несколько файлов к эмулятору перфоленты - может где-то оно описано, а нет - так попробовать. Может быть, добавить строчку PC1 = <имя файла .LDA>, может еще как. В крайнем случае, вместо отдельного абс. загрузчика подложить файл, который содержит абс. загрузчик, потом несколько байтов нулей (имитация синхродорожки), чтобы общая длина этой части файла оказалась чётной, а затем нужный LDA-шник.
А далее все просто: давим L, и оно полетело.
Попытался разобраться с эмулятором. Увы, прописать в конфиге несколько файлов нельзя, нужно или на ходу менять подключенный файл с образом перфоленты (.LDA-файл), стандартным средством манипуляции файлами хост-системы в эмуляторе, или сшить абс. загрузчик с LDA-файлом в один файл типа bin или lda и подключить в качестве образа ПЛ его.
Мне нужно не в эмулятор мне нужно отправлять в машину. Сейчас пользуюсь realterm.
А протокол HX, вроде-бы, открыт? Тогда никто не мешает сделать на его базе что-то мелкое своё, типа загрузки с HX0, вместо ОС, адаптированного абс. загрузчика с последующей загрузкой LDA-файла, смонтированного, допустим, как HX1.Тем более, исходник драйвера HX выложен...
Так оно не работает нужно добавлять в корень эмулятора ещё один модуль на подобии стандартного serial.dll но я не понимаю как к нему обращаться из эмулятора. Вообще я много чего не понимаю я только учусьпрограмировать.
Так оно не работает нужно добавлять в корень эмулятора ещё один модуль на подобии стандартного serial.dll но я не понимаю как к нему обращаться из эмулятора
К устройства HX можно цепануть что угодно - даже перфоленты. Но работа с ними всё равно выглядит (вроде) как работа с диском. Так что нужен аналог абсолютного загрузчика, но ориентированный на работу HX.
Пример кода работы с HX - каталог HX Sources в поставке VT52.
Просить меня написать код или помочь разобраться в коде не надо - у меня сейчас свободного времени только на свои "игрушки".
- - - Добавлено - - -
Теоретически, поскольку VT52 - этот тот же эмулятор ДВК, только настроенный специфическим образом - в его конфиг можно добавить и модули типа перфолент, только что то мне подсказывает, что работы с ним через терминальный (ака последовательный) канал как с HX не получится, так есть мультиплексор (в эмуляторе) для терминального канала под HX, но нет (ну или по крайне мере я не знаю про него) аналогичного мультиплексора под перфоленты.
Так что только через HX и свой (аналог абсолютного) загрузчик под это дело.
ИМХО, никто не мешает подсунуть вместо HX.DSK свой файл, который в нулевом блоке будет содержать копию стандартного HX-ного с поправкой адреса, куда надо читать блок 1 и счетчика слов для этого чтения, а в блоках 1-n расположить SAV-файл со своей программой. Если SAV-файл обычный (собранный с 1000), то и начальный адрес трогать не надо. Ну, и, при нужде, подправить адрес запуска. Все! И с ЛДА возиться не надо!
ИМХО, никто не мешает подсунуть вместо HX.DSK свой файл, который в нулевом блоке будет содержать копию стандартного HX-ного с поправкой адреса, куда надо читать блок 1 и счетчика слов для этого чтения, а в блоках 1-n расположить SAV-файл со своей программой.
Только нужно прописать в конфиге "холодный" загрузчик TU58_Boot_(177560).odt - он не мудрит с установкой текущей даты для RT-11, а просто считывает в память нулевой блок образа и передаёт управление на адрес 000000.
Например, в файле HX_COM4.cfg секция загрузчика выглядит так:
[ODT_Loader.ini]
;;ScriptFile = TU58_WarmBoot_(177560).odt
;;ScriptFile= "HX Boot.odt"
ScriptFile= "UKNC-style Loader.odt"
InitialStateOf[Load]=0
SaveChangesFor[Load]=0
Wait_at_Prompt_sec=1
PromptChar="@"
SendDelay_MS=0
А надо сделать так:
[ODT_Loader.ini]
ScriptFile= "TU58_Boot_(177560).odt"
InitialStateOf[Load]=0
SaveChangesFor[Load]=0
Wait_at_Prompt_sec=1
PromptChar="@"
SendDelay_MS=0
Если изменить InitialStateOf[Load]=0 на InitialStateOf[Load]=1 - загрузка будет начинаться сразу после запуска эмулятора.
Patron, так вить хочется без odt loadera грузится чтобы просто набиралось 177560L и поехало все
Просто на 9600 скорости не особо хочется каждый раз запускать сначало рт-11 а следом софт
AFZ, а что делать если программа обитает в адресах 144000 и выше? Вот и остаётся только lda
Варианта всего 3:
1. Пересобрать программу с адреса 1000
2. Записать в блоки 1-ххх файла HXSYS.DSK содержимое блоков 100-yyy (0144-zzz) твоего SAV-файла, а начальный адрес загрузки указать 144000
3. Записать в блок 1 абс. загрузчик и маленькую программулю, которая перешлет его на место и отдаст ему управление.
Вариант 3, конечно, сложнее. придется еще изобретать процедуру передачи данных через порт терминала, но, наверное тоже можно. А вариант 2 делается в одно-два движения...
Все 3 варианта я пытался реализовать, но пока только голый абс лоадер + лда отправленные в порт через тера терм после 177560л, мозгов на большее не хватает по этому прошу патрона
так вить хочется без odt loadera грузится чтобы просто набиралось 177560L и поехало все
Т.е. чтобы терминал анализировал, что вводится с клавиатуры, и если введено 177560L - начинал вместо ввода с клавиатуры отправлять в приёмный порт терминала байты с подключенной перфоленты. Это было бы круто, но вряд ли мы когда-то такое увидим.
Можно вместо odt loadera сделать собственный ODT файл, который будет вводить коды нужной программы напрямую в память, после чего останется только вручную ввести 144000G - и всё поехало.
Чтобы такое провернуть - нужно выполнить 4 шага:
1. Создать начальный ODT-файл с "заголовком" ввода кода:
100/102¬
2
144000/
2. Откомпилировать свою программу с такими опциями листинга, чтобы в листинг выводился только восьмеричный код программы.
3. Отредактировать полученный файл так, чтобы было по одному восьмеричному коду на строку. Добавить в конце каждой строки, кроме последней - символ '¬'.
4. Добавить получившийся текст в ODT-файл после заголовка:
100/102¬
2
144000/12701¬
177560¬
12702¬
177564¬
10100¬
5003
Patron, слушай а можно отключить в odt loadere ожидание @ чтоб он просто отправлял фаил
а можно отключить в odt loadere ожидание @ чтоб он просто отправлял файл
Как отправлял файл?
Кто будет принимать файл со стороны ДВК, если всё, что там есть - пультовая программа с интерфейсом Micro-ODT.
ODT-лоадер работает с Micro-ODT, выдавая команды Micro-ODT в ответ на промпт ( по умолчанию - @).
Всё, что делает ODT-лоадер - можно сделать руками с клавиатуры. Как руками с клавиатуры "отправить файл" в пульте ДВК?
Patron, а есть ли возможность на основе программы открыть второй виртуальный порт к которому можно было бы подключать другую программу? (Про программы сплитеров знаю просто интересно вдруг такой функционал есть и уже встроен к примеру превращение физического сиреал в tcp ip при этом оставляя функции терминала)
Добрый день :)
Patron, а можно добавить в конфиг VT52 второй COM порт (с указанием скорости), что бы через него с HX сервером работать? Посмотрел HX_COM_(176560).cfg, сделал по аналогии, но как то не заработало и скорость не понятно как указать.
Пока обошёл проблему запуском второго экземпляра VT52 с нужными настройками.
а можно добавить в конфиг VT52 второй COM порт (с указанием скорости), что бы через него с HX сервером работать? Посмотрел HX_COM_(176560).cfg, сделал по аналогии, но как то не заработало и скорость не понятно как указать.
Портов можно добавлять сколько угодно с полной индивидуальной настройкой каждого порта. В файле HX_COM_(176560).cfg - вполне рабочий пример (только без индивидуальной настройки портов).
Порты в конфиге открываются так:
[modules]
Ядро = Main_module.em
[objects]
ComPort = Ядро:Terminal_ComPort_Adapter
ComPort2 = Ядро:Terminal_ComPort_Adapter
[links]
ComPort <==> VT52
ComPort2 <==> HX
[ComPort.ini]
PortName = COM1
InitialStateOf[ShowPortUse]=0
SaveChangesFor[ShowPortUse]=0
MinimalBreakTime_MKS=3000
[ComPort2.ini]
PortName = COM2
InitialStateOf[ShowPortUse]=0
SaveChangesFor[ShowPortUse]=0
MinimalBreakTime_MKS=3000
Если оба порта работают на одинаковой скорости с одинаковыми характеристиками - то нужно только чтобы аргумент параметра PortName совпадал у каждого из портов с системным именем свободного порта в Windows.
Настройки портов по-умолчанию находятся в отдельном файле Terminal_ComPort_Adapter.ini - любой из параметров можно индивидуально переназначить в секции настроек порта в конфиге.
BaudRate = CBR_9600
Parity = NOPARITY
StopBits = ONESTOPBIT
ByteSize = 8
fParity = FALSE
Для выбора скорости - изменяем параметр BaudRate.
Например:
[ComPort.ini]
PortName = COM1
BaudRate = CBR_9600
InitialStateOf[ShowPortUse]=0
SaveChangesFor[ShowPortUse]=0
MinimalBreakTime_MKS=3000
[ComPort2.ini]
PortName = COM2
BaudRate = CBR_57600
InitialStateOf[ShowPortUse]=0
SaveChangesFor[ShowPortUse]=0
MinimalBreakTime_MKS=3000
Patron, спасибо! С первой частью я сообразил - тут как раз помог HX_COM_(176560).cfg, а вот вторую часть - не догадался :)
А как насчёт скоростей - 230400, 460800, 921600?
А как насчёт скоростей - 230400, 460800, 921600?
Поддерживаются настройки скорости порта в Wndows, которые описаны в DCB structure (winbase.h)
Terminal_ComPort_Adapter::aValidBaudRates[] =
{ {110,"CBR_110"}, {300,"CBR_300"}, {600,"CBR_600"}, {1200,"CBR_1200"},
{2400,"CBR_2400"}, {4800,"CBR_4800"}, {9600,"CBR_9600"}, {14400,"CBR_14400"},
{19200,"CBR_19200"}, {38400,"CBR_38400"}, {57600,"CBR_57600"}, {115200,"CBR_115200"},
{128000,"CBR_128000"}, {256000,"CBR_256000"} };
Скорость в настройках можно указывать и просто числом, и строкой с префиксом CBR_.
Скорость в настройках можно указывать и просто числом
Если просто числом - то будет просто попытка это число передать Windows как скорость порта?
- - - Добавлено - - -
Попробовал - выставляет 256000...
- - - Добавлено - - -
В смысле попробовал выставить 921600 - эмулятор VT52 показал 256000
У меня usb com порт - он показывает в настройках 230400, 460800, 921600
Может, в случае указания числа просто его и передавать в Windows? Всё равно определяются те же самые значения?
Может, в случае указания числа просто его и передавать в Windows? Всё равно определяются те же самые значения?
Если бы это делала какая-то подпрограмма, работающая только в этом месте - можно было бы её подправить. Но это делает объект, который используется для параметров вроде TRUE/FALSE, чтобы в конфиге можно было словом написать "TRUE" или числом задать 1. И если кто-то вместо 1 напишет 2 - объект сам исправит на 1, потому что у поименованных параметров есть только фиксированные значения.
А чтобы можно было на выбор использовать в параметре и поименованные значения, и "безымянные" (что само по себе идея весьма здравая) - нужен специальный объект, которого пока нет.
Ясно. Ну, пока получается, что максимум, что можно использовать - 115200. Так как варианты 128000 и 256000 - пока не встречал.. Хотя, как эксперимент, попробую (позже) поставить 128000 и 256000 и посмотреть, что получится... :)
Patron, а есть ли полноэкранный режим ?
а есть ли полноэкранный режим ?
Нет, только оконный.
Добрый вечер!
Вопрос не совсем в тему (да простит меня модератор) - в эмуляторе ДВК можно сделать отдельное окно для графического дисплея?
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_04.09.22_00-03 (https://emulator.pdp-11.org.ru/VT52/distr/VT52_04.09.22_00-03.rar)
Изменения:
1. В модуль Main_module.em добавлен объект BinSender, позволяющий отправить двоичное содержимое любого файла размером до 128 Кб в байтовый канал (в терминальный порт эмулятора, в IP-порт или COM-порт). Если установить для состояния Load этого объекта начальное значение 1 - отправка файла будет начинаться сразу после выбора образа файла в меню кнопки подключения образов.
[BinSender.ini]
InitialStateOf[Load] = 1
Это позволяет не использовать отдельную интерфейсную кнопку для отправки подключенного файла, хотя создать и использовать такую дополнительную кнопку при желании можно.
2. В файлы конфигурации HX_COM.cfg и HX_IP.cfg добавлен объект BinSender, подключать к которому образы файлов можно той же кнопкой выбора образов, которая используется для объекта HX (нужно нажать слева на маленькую кнопку [>] и в появившемся меню выбрать для подключения образов устройство BIN).
3. Добавлен каталог Paper Tapes\ с образами перфолент для передачи с помощью BinSender.
Здравствуйте, а как добавить задержкау Бин сендеру просто не все версии эл.60 имели разрешение приема передачи и по этому приходится ставить задержку на примерное время обработки
Здравствуйте, а как добавить задержкау Бин сендеру просто не все версии эл.60 имели разрешение приема передачи и поэтому приходится ставить задержку на примерное время обработки
Пока образ файла не выбран - передача не начнётся. Программная задержка при передаче между отдельными байтами не поддерживается.
Загрузка на реальных эл.60 двк-1,2 прошла успешно спасибо большое за обновления (размер софта прошедшего загрузку через binsender 1000-157600)
Опробовал Ваш эмулятор Vt52 в связке с эмулятором ДВК по ip и com порту, всё работает. Хочется подключить эмулятор Vt52 к реальной машине с М6 и И12, П9 для тестов и загрузки ТМОС - кабель на ком порт распаял, соединение в конфиге COM_4.cfg происходит (когда я меняю на нужный у меня ком порт и нажимаю кнопку DTR в режиме, происходит отображение 173000 @).
Но в конфиге HX_COM.cfg, где присутствует режим загрузки через ком порт нет панели с отображением кнопок RTS, DTR, BRK - а чтобы отобразилось то, что идет с И12 нужно нажать DTR. Помогите пожалуйста в конфиг HX_COM.cfg добавить эту панель - читая тему, я понял что определенные параметры отвечают за отображение панелей, я открывал единичками доп полосы, но добавить туда рабочие кнопки не смог.
Единственный неочевидный момент, с которым я сам столкнулся, когда сейчас попробовал объединить эти два конфига, чтобы добавить кнопки сигналов COM-порта из конфига COM_4.cfg в конфиг HX_COM.cfg - нужно в настройках объекта VT52 в секции [VT52.ini] - включить отображение собственной полосы статуса окна вкладки терминала, на которую по умолчанию и прикрепляются кнопки, для чего найти в конфиге HX_COM.cfg в секции [VT52.ini] параметр InitialStateOf[StatusBar] и установить его в 1:
[VT52.ini]
InitialStateOf[StatusBar] = 1
SaveChangesFor[StatusBar] = 0
Помимо этого, чтобы добавить кнопки сигналов COM-порта из конфига COM_4.cfg в конфиг HX_COM.cfg нужно (в конфиге HX_COM.cfg) сделать следующее:
1. Добавить создание кнопок в раздел [objects]:
[objects]
In_CTS = Ядро:SB_StateFlashButton
In_DSR = Ядро:SB_StateFlashButton
In_BRK = Ядро:SB_StateFlashButton
In_DCD = Ядро:SB_StateFlashButton
In_RNG = Ядро:SB_StateFlashButton
Out_RTS = Ядро:SB_StateFlashButton
Out_DTR = Ядро:SB_StateFlashButton
Out_BRK = Ядро:SB_StateFlashButton
2. Подключить кнопки к COM-порту и окну вкладки терминала в разделе [links]
[links]
VT52 + ( In_CTS + ComPort ) | ( In_DSR + ComPort ) | ( In_BRK + ComPort )
VT52 + ( In_DCD + ComPort ) | ( In_RNG + ComPort )
VT52 + ( Out_RTS + ComPort ) | ( Out_DTR + ComPort ) | ( Out_BRK + ComPort )
3. Добавить в конец файла конфига разделы с настройками для каждой кнопки:
; === INI SECTIONS ===
[In_CTS.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=0
IsInverted=0
ButtonON_Text=CTS
ButtonOFF_Text=CTS
StateName=In_CTS
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=400
PushedButton_Text_X_Offset_Px=0
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=0
PoppedButton_Text_Y_Offset_Px=2
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=160,205,160
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=0
Is_PushedButton_Border_ButtonLike=0
DoCenterAlignButtonText=1
[In_DSR.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=0
IsInverted=0
ButtonON_Text=DSR
ButtonOFF_Text=DSR
StateName=In_DSR
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=400
PushedButton_Text_X_Offset_Px=0
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=0
PoppedButton_Text_Y_Offset_Px=2
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=160,205,160
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=0
Is_PushedButton_Border_ButtonLike=0
DoCenterAlignButtonText=1
[In_BRK.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=0
IsInverted=0
ButtonON_Text=BRK
ButtonOFF_Text=BRK
StateName=In_BRK
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=400
PushedButton_Text_X_Offset_Px=0
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=0
PoppedButton_Text_Y_Offset_Px=2
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=230,140,140
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=0
Is_PushedButton_Border_ButtonLike=0
DoCenterAlignButtonText=1
[In_DCD.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=0
IsInverted=0
ButtonON_Text=DCD
ButtonOFF_Text=DCD
StateName=In_DCD
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=400
PushedButton_Text_X_Offset_Px=0
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=0
PoppedButton_Text_Y_Offset_Px=2
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=160,205,160
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=0
Is_PushedButton_Border_ButtonLike=0
DoCenterAlignButtonText=1
[In_RNG.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=0
IsInverted=0
ButtonON_Text=RNG
ButtonOFF_Text=RNG
StateName=In_RNG
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=400
PushedButton_Text_X_Offset_Px=0
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=0
PoppedButton_Text_Y_Offset_Px=2
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=160,205,160
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=0
Is_PushedButton_Border_ButtonLike=0
DoCenterAlignButtonText=1
[Out_RTS.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=2
IsInverted=0
ButtonON_Text=RTS
ButtonOFF_Text=RTS
StateName=Out_RTS
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=600
PushedButton_Text_X_Offset_Px=4
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=3
PoppedButton_Text_Y_Offset_Px=1
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=160,205,160
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=1
Is_PushedButton_Border_ButtonLike=1
DoCenterAlignButtonText=0
[Out_DTR.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=2
IsInverted=0
ButtonON_Text=DTR
ButtonOFF_Text=DTR
StateName=Out_DTR
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=600
PushedButton_Text_X_Offset_Px=4
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=3
PoppedButton_Text_Y_Offset_Px=1
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=160,205,160
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=1
Is_PushedButton_Border_ButtonLike=1
DoCenterAlignButtonText=0
[Out_BRK.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=2
IsInverted=0
ButtonON_Text=BRK
ButtonOFF_Text=BRK
StateName=Out_BRK
LightsOFF_StateName=
ButtonWidth=34
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=600
PushedButton_Text_X_Offset_Px=4
PushedButton_Text_Y_Offset_Px=2
PoppedButton_Text_X_Offset_Px=3
PoppedButton_Text_Y_Offset_Px=1
ButtonON_TextColor=0,0,0
ButtonOFF_TextColor=0,0,0
ButtonON_Background=230,140,140
ButtonOFF_Background=1,0,0
Is_PoppedButton_Border_ButtonLike=1
Is_PushedButton_Border_ButtonLike=1
DoCenterAlignButtonText=0
Patron, огромное спасибо, будем пробовать!
https://pic.maxiol.com/thumbs2/1720103162.1504645828.vt52bmrksfilkn.png (https://pic.maxiol.com/?v=1720103162.1504645828.vt52bmrksfilkn.png&dp=2)
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_14.10.24_16-45 (https://emulator.pdp-11.org.ru/VT52/distr/VT52_14.10.24_16-45.rar)
Изменения:
1. Теперь объект Terminal_ComPort_Adapter следит за отключением/подключением соединения USB-serial, закрывая и снова открывая виртуальный COM-порт. Благодаря этому эмулятор терминала больше не надо перезапускать при перетыкании кабеля USB или при перезагрузке контроллера USB-serial.
2. Объекту Terminal_ComPort_Adapter добавлена настройка PortOpen_ANSI_STR, позволяющая адаптеру COM-порта отправлять в порт один или несколько байтов при каждом открытии (и переоткрытии) порта.
Например так:
[ComPort.ini]
PortName="COM3"
BaudRate = CBR_256000
PortOpen_ANSI_STR="\005"
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_14.10.24_16-45 (https://emulator.pdp-11.org.ru/VT52/distr/VT52_14.10.24_16-45.rar)
Изменения:
1. Теперь объект Terminal_ComPort_Adapter следит за отключением/подключением соединения USB-serial, закрывая и снова открывая виртуальный COM-порт. Благодаря этому эмулятор терминала больше не надо перезапускать при перетыкании кабеля USB или при перезагрузке контроллера USB-serial.
2. Объекту Terminal_ComPort_Adapter добавлена настройка PortOpen_ANSI_STR, позволяющая адаптеру COM-порта отправлять в порт один или несколько байтов при каждом открытии (и переоткрытии) порта.
Например так:
[ComPort.ini]
PortName="COM3"
BaudRate = CBR_256000
PortOpen_ANSI_STR="\005"
Крутое нововведение долго мучился с этим даже самопальный макрос сделал переоткрытия приложения
Спасибо большое вам!
Может всё-таки подумаете насчёт задержки на отправку байт через binsender?
.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_08.11.24_12-48 (https://emulator.pdp-11.org.ru/VT52/distr/VT52_08.11.24_12-48.rar)
При подключении адаптера COM-порта к виртуальным COM-портам Windows обнаружилось, что если USB-устройство передаёт VID_0483, PID_5740 и поэтому обслуживается стандартным драйвером Windows USB-serial - объект адаптера COM-порта вместо загрузки процессора 0% создаёт загрузку 100%.
Изменения:
1. Теперь при подключении адаптера COM-порта к виртуальным COM-портам USB-serial, созданным стандартным драйвером Windows - загрузка процессора составляет 0%, а не 100%, как во всех предыдущих версиях эмулятора.
У терминала есть состояние Power, которое при обнулении очищает экран, поэтому в любой конфиг с терминалом можно добавить кнопку очистки экрана.
Для этого нужно следующее:
1. Создать объект кнопки (для кнопки без подсветки - SB_StatePushButton, а для кнопки с подсветкой - SB_StateFlashButton):
[objects]
CLS_Button = Ядро:SB_StatePushButton
2. Задать параметры кнопки в секции конфига с именем объекта кнопки:
[CLS_Button.ini]
SB_Part_Data=nPosition[-1] | nPriority[7] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=1
IsInverted=1
ButtonON_Text= CLS
ButtonOFF_Text=CLS
StateName=Power
ButtonWidth=40
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=600
Главное здесь:
StateName=Power - кнопка управляет состоянием Power,
IsInverted=1 - при не нажатой кнопке состояние "включено".
ButtonPushMode=1 - кнопка без фиксации,
nPosition[-1] | nPriority[7] - позиция: крайняя справа, сдвигать из этой позиции кнопки с приоритетом ниже 7.
3. Подключить кнопку к состоянию Power объекта VT52 и посадить кнопку на интересующую полосу виджетов.
[links]
Config + CLS_Button + VT52
Для моего конфига результат получился такой:
https://emulator.pdp-11.org.ru/pics/COM_12_1.png
Кнопка села на полосу [StatusBar] объекта Config. Если при размещении кнопки не указывается конкретная полоса виджетов - кнопка садится на полосу [StatusBar] заданного объекта.
Поэтому, если написать в конфиге так:
[links]
VT52 + CLS_Button + VT52
[VT52.ini]
InitialStateOf[StatusBar] = 1
Кнопка сядет на полосу [StatusBar] объекта VT52.
https://emulator.pdp-11.org.ru/pics/COM_12_2.png
Другие варианты:
Полоса [ControlBar] объекта Config:
[links]
Config[ControlBar] + CLS_Button + VT52
[Config.ini]
InitialStateOf[ControlBar] = 1
https://emulator.pdp-11.org.ru/pics/COM_12_3.png
Полоса [ControlBar] объекта VT52:
[links]
VT52[ControlBar] + CLS_Button + VT52
[VT52.ini]
InitialStateOf[ControlBar] = 1
https://emulator.pdp-11.org.ru/pics/COM_12_4.png
Полоса [TerminalStatusBar] объекта VT52:
[links]
VT52[TerminalStatusBar] + CLS_Button + VT52
https://emulator.pdp-11.org.ru/pics/COM_12_5.png
Можно отметить, что кнопке CLS не удалось вытеснить кнопку RUS/LAT из крайней правой позиции. Причина этого в том, что в файле Terminal.ini для кнопки RUS/LAT задан приоритет 8:
TerminalStatusBar_Part[RUS/LAT] = nPosition[-1] | nPriority[8] | bHidden[0]
Архив со всеми вариантами использованных конфигов: COM_12_x.cfg.zip (https://emulator.pdp-11.org.ru/misc/COM_12_x.cfg.zip)
Patron, Добрый день.
Интересно было бы добавление служебной строки как в 15ИЭ-00-013, правда туда придется приделать таймер. Или как в КСМ.
Спасибо.
shattered
30.09.2025, 19:55
Точно определить, какая программа и в каких случаях испытывает проблемы при разрушающих табуляциях - полезно и с познавательной, и с практической точек зрения. Не исключено, что VT52.exe - единственная терминалка, позволяющая настраивать способ вывода табуляции.
Любопытный факт про табуляции (из DECscope User's Manual, стр. 20)
Если курсор находится в колонках 73-79 (из 1-80), он передвигается на 1 колонку вправо. 15ИЭ и КСМ так и делают. VT240, СМ7238 (в режиме VT52) -- нет.
Из колонки 80 курсор не двигается (нет automatic wrap), а в клонах -- есть:
15ИЭ: разряд 2 группы IV -- это "фиксация маркера в крайних положениях строки (только для системы команд N2) (0 - нет, 1 - есть)", но похоже, что это не работает (autowrap всегда включен).
КСМ -- настраивается разрядом 5 (по умолчанию 1 == выключен) и работает.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot