PDA

Просмотр полной версии : Эмулятор терминала типа VT52



Страницы : 1 2 3 [4] 5

Alex_K
27.02.2016, 22:40
на D:\ NTFS
Надо смотреть параметры безопасности, что-то запрещено.

MiX
27.02.2016, 22:57
Надо смотреть параметры безопасности, что-то запрещено.
Нет. С образами работает нормально.

Ошибка вылезает даже если сам эмулятор находится и запущен с диска D:\....\ а подключен HD1 к D:\

Alex_K
27.02.2016, 22:59
Ошибка вылезает даже если сам эмулятор находится и запущен с диска D:\.
А если с любого подкаталога на диске D:, то ошибок нет?

MiX
27.02.2016, 23:03
А если с любого подкаталога на диске D:, то ошибок нет?
Если в одной папке или выше то нет.

Alex_K
27.02.2016, 23:09
Если в одной папке или выше то нет.
Всё-таки стоит посмотреть действующие разрешения для текущего пользователя. А ОС кстати какая, может Windows 7?

MiX
27.02.2016, 23:14
Всё-таки стоит посмотреть действующие разрешения для текущего пользователя.
Где смотреть? Да и как объяснить что с папки работает а с корня нет.

А ОС кстати какая, может Windows 7?
Хрюша. :)

Alex_K
27.02.2016, 23:19
Где смотреть? Да как объяснить что с папки работает а с корня нет.
В проводнике правой кнопкой по диску D:, выбираем [Свойства], вкладка [Безопасность], кнопка [Дополнительно], вкладка [Действующие разрешения], выбираем текущего пользователя и смотрим.
Еще можно запустить программу от имени администратора, и посмотреть, будет ли воспроизводится ошибка.

- - - Добавлено - - -


Хрюша.
А по скриншотам похоже на Висту и Севен.

Patron
27.02.2016, 23:32
При подключении диска С:\ программа запускается нормально, но если эту программу запустить с диска D:\ то вылезает ошибка.У меня на D: тоже NTFS и конечно же я тоже подключал D:\ и запускал с D:\ ту же самую программу.

- - - Добавлено - - -

Проблема может быть как-то связана с именами файлов и папок в корне D:, поэтому можно создать на D: подкаталог и временно переместить туда все файлы и папки.

MiX
27.02.2016, 23:54
переместить туда все файлы и папки.
Типа проблема с длинными именами? Попробую.
...
Попробовал командой DIR посмотреть каталог. Файлы показались которые не более 6 символов. Далее запустил программу которая отобразилась командой DIR, на что RT11 ответила ?КМОN-F-File not found HD1:PSW1.SAV (файл для примера) После этого если закрыть эмулятор то эмулятор закрывается и вылезает ошибка.

Patron
27.02.2016, 23:56
А если сделать DIR/BAD/FILE HD1:

MiX
28.02.2016, 00:00
А если сделать DIR/BAD/FILE HD1:
?DUP-I-No bad blocks detected HD1:

Patron
28.02.2016, 00:08
При таком ответе вылетать не должно - можно скопировать на этот диск файл и запустить.

MiX
28.02.2016, 00:44
поэтому можно создать на D: подкаталог и временно переместить туда все файлы и папки.
Вроде помогло. На диске остались одни папки и тестовый файл.
Буду отлавливать дальше постепенно извлекая обратно.

- - - Добавлено - - -

Обратное извлечение не помогло отловить. После упаковки файлов,папок и обратного извлечения, ошибка не повторилась.

BYTEMAN
01.03.2016, 21:22
Можно попросить одну фичу, может быть она уже реализована но я как всегда не в курсе как ее включить: при включенной опции логгирования дописывать в файл лог, а не перезатирать его, а дописывать в конец файла, и запоминать, было ли включено логгирование... Спасибо!

Patron
02.03.2016, 23:14
Можно попросить одну фичу, может быть она уже реализована но я как всегда не в курсе как ее включить: при включенной опции логгирования дописывать в файл лог, а не перезатирать егоВ следующем релизе добавлю такую настройку.



запоминать, было ли включено логгирование...Чтобы состояние лога ( как и любой переменной типа "состояние" ) запоминалось между запусками - надо в разделе терминала в файле конфигурации установить в 1 настройку SaveChangesFor для этой переменной:



[VT52.ini]
InitialStateOf[Log] = 0
SaveChangesFor[Log] = 1

Patron
03.03.2016, 19:43
.

Обновилась текущая сборка эмулятора терминала типа 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 ), а десятый - дописывается в конец общего архивного лога.

BYTEMAN
04.03.2016, 13:04
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 ), а десятый - дописывается в конец общего архивного лога.

Супер, то, что доктор прописал! Спасибо!!!

Patron
16.03.2016, 13:04
.

Обновилась текущая сборка эмулятора терминала типа 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 активируется принудительно.

form
16.03.2016, 13:13
достаточном для использования KED и SLX.SYS
прос SLX не совсем ясно ибо есть DECовские SL, умеющий VT100 (только VT100+ с определенной версии) и SLX от Cторожевых (да-да - он есть), умеющий вроде только VT52 :)

Patron
16.03.2016, 13:21
SLX от Cторожевых, умеющий вроде только VT52Значит, достаточный для него объём реализации режима ANSI был во всех версиях терминала. Теперь объём реализации режима ANSI расширился настолько, что допускает использование всех имеющихся драйверов SLX.

form
16.03.2016, 16:52
всех имеющихся драйверов SLX
Ну так что SL что SLX - один хрен - функционально они одинаковы (кроме систем до 5.4G где SL по факту был SLMIN).

- - - Добавлено - - -


Режим ANSI реализован в ограниченном объёме
Судя по всему в очень ограниченном объеме. Очистить экран не удалось :)

Patron
16.03.2016, 16:55
Очистить экран не удалосьА перейти сначала в режим VT100 удалось ?

form
16.03.2016, 17:02
А перейти сначала в режим 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

Patron
16.03.2016, 17:10
.ASCII <33>/[?2l/Это переводит из режима VT100 в режим VT52.


Для обратного надо:


.ASCII <33>/</

form
16.03.2016, 17:31
Это переводит из режима 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

.

Patron
16.03.2016, 17:46
Но задержка большаяЗадержка зависит от настройки InitialStateOf[SlowMultiByte]. Если там 0 - должно передавать быстро.

MiX
16.03.2016, 20:05
Patron, А как настроить Звездные войны по телнету, или об этом ещё рано говорить? Экран по прежнему двоится и уходит в HOLD.

Patron
16.03.2016, 20:33
Экран по прежнему двоится и уходит в HOLD.Можно вместо ControlCodesType = Default попробовать варианты: ControlCodesType = 15IE и ControlCodesType = KCGD.

MiX
16.03.2016, 20:48
Помогло только по HOLD. Экран также двоится на обоих режимах.

hobot
16.03.2016, 22:52
активируется принудительно
началось! а как же ноуты, Patron? а как же ноуты?

- - - Добавлено - - -

Ок! Просто спрошу конкретно, как мне настроить как было?
А было так. Ins_Num активен не был, но на стрелочках были стрелочки, а не циферки? )
Иначе беда !

Patron
16.03.2016, 22:59
как мне настроить как было?Всё осталось как было - что-то настраивать надо только для активации новых возможностей.

В поведении по-умолчанию изменилось только то, что при переходе программы в режим VT100 - терминал переходит в режим VT100.

form
17.03.2016, 07:01
А как настроить Звездные войны по телнету, или об этом ещё рано говорить? Экран по прежнему двоится и уходит в 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 далеко не все работает...

Patron
17.03.2016, 11:01
Эмулятор не глотает последовательности которые ему неизвестны. По идее должен просто их игнорировать, но съедать.Внимательно рассмотрев картинку можно понять, что эмулятор сначала съедает все возможные CSI-последовательности, а потом отрабатывает те из них, которые знает.

- - - Добавлено - - -


Кстати эмуляции недостаточно для редактирования в EDT. Подозреваю, что и в KED далеко не все работает...Не реализованы только регионы скрола и только потому, что нет программ, чтобы это тестировать.

- - - Добавлено - - -


KP+ в режиме Alt Keypad для VT100 - инстинктивно по соответствию родной клаве ожидаетсяСделать правильный выбор поможет изменение настройки: ANSI_STR_FOR_KEY[Pad_Plus] = "\012"

form
17.03.2016, 11:16
Внимательно рассмотрев картинку можно понять, что эмулятор сначала съедает все возможные CSI-последовательности, а потом отрабатывает те из них, которые знает.
Да, ошибся - все нормально.

нет программ, чтобы это тестировать
Я так думаю, EDT и есть программа. Есть и на стакане и на вороне :)


ANSI_STR_FOR_KEY[Pad_Plus] = "\012"
А можно настроить чтобы было LF в обычном режиме и DELCHAR/DELWORD в Alt?

Patron
17.03.2016, 11:25
А можно настроить чтобы было LF в обычном режиме и DELCHAR/DELWORD в Alt?Пока нет. Можно будет добавить дополнительную настройку ANSI_STR_FOR_KEY[Pad_Plus_A], которая будет отдельно задавать последовательность для KP+ в режиме ANSI.

form
21.03.2016, 18:22
В систему BOPOHA (telnet://vms.pdp-11.org.ru) добавлен VTTEST. Запускается командой VT[TEST].

Patron
21.03.2016, 18:40
.

Обновилась текущая сборка эмулятора терминала типа 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.

MiX
21.03.2016, 20:25
Спасибо! Наконец то мультик нормально показывает.
А версия сборки почему не изменилась?

Patron
21.03.2016, 20:36
А версия сборки почему не изменилась?Версия относится к API, поэтому когда изменений в API нет - версия не изменятся. Но в этот раз изменения в API имели место, поэтому версия не изменилась из-за моей оплошности.

MiX
21.03.2016, 21:51
Ещё есть непонятки.
Не соединятся конфиги- СТАКАН,MIM,OpenVMS.

По СОМам.
Можно объединить в один конфиг - СОМ,СОМ_4,НХ_СОМ. Или сделать несколько НХ_СОМ_1,НХ_СОМ_2,НХ_СОМ_3,НХ_С М_4 где присутствуют кнопки от СОМ_4 и НХ от НХ_СОМ.

По IPам.
Можно объединить в один конфиг - НХ_IP,IP. А в образ ТМОС-2 добавить тесты относящиеся к Эм. PDP11.

Спасибо.

form
21.03.2016, 22:01
Не соединятся конфиги- СТАКАН,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.

MiX
21.03.2016, 22:08
Там адреса скорее всего старые прописаны. В идеале нужно сделать чтобы имена можно было писать.
И пароли в заголовке конфига.

- - - Добавлено - - -


Сейчас адреса такие:
OpenVMS это BOPOHA?

form
21.03.2016, 22:10
OpenVMS это BOPOHA?
Да.

MiX
21.03.2016, 22:15
Да.
Без пароля там никак. :)

form
21.03.2016, 22:21
Без пароля там никак.
Нету там пароля на GUEST.

MiX
21.03.2016, 22:43
Нету там пароля на GUEST.
Вот это я и хотел увидеть в начале конфига как справку.

form, Сервер твой для скачки эмулятора? Не получается скачать эм.PDP11, медленная скорость да и архив всё время битый получается.

form
21.03.2016, 23:07
Не получается скачать эм.PDP11, медленная скорость да и архив всё время битый получается.
Ищи нормальный софт :) Ни у кого больше проблем нет.

Patron
22.03.2016, 11:08
Вот это я и хотел увидеть в начале конфига как справку.Исправил файлы конфигурации MIM.cfg, OpenVMS.cfg и CTAKAH.cfg ( дополнительно - разрешил сглаживание шрифтов настройкой: bFontAntialiasDisable = 0 ) и перезалил архив.

- - - Добавлено - - -


Ни у кого больше проблем нет.Вчера вечером скорость скачивания любого контента с pdp-11.org.ru была примерно нулевой. Сегодня, при обновлении архива через WinSCP - скорость закачки была неограниченной, а скорость скачивания - около 10 Кб/сек. Сейчас скорость скачивания из раздела PDP-11.ORG.RU / ФАЙЛЫ - около 15 Кб/сек.

form
22.03.2016, 11:36
Вчера вечером скорость скачивания любого контента с pdp-11.org.ru была примерно нулевой.
Да, прочитал сегодня в новостях - работы были у провайдера. И видимо последствий еще хватит надолго :)

form
31.03.2016, 16:53
Феатуре реяуест для режима 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 пока эти.

С уважением Николай

MiX
22.06.2016, 17:51
Порыскал по файлам конфигов, нигде нет цифры 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 бод перейти :-)

MiX
31.07.2016, 01:28
Patron, Не особа надеясь на ответ, но тем не менее.
Сделал шрифт от Фрязинского терминала и установил его в папку Font. Далее, добавил его в эм. VT52 но шрифт не поменялся.
Как известно что в этом шрифте маленькая буква i завернута внизу вправо. Это было индикатором для проверки.
Проверил Гипертерминалом- там отображается.
http://s61.radikal.ru/i174/1607/c0/a1aa53a7fb34.png (http://radikal.ru/big/49c39897d2ef4dc3b3acf5a0ee89eb56)

Patron
31.07.2016, 17:25
Сделал шрифт от Фрязинского терминала и установил его в папку Font. Далее, добавил его в эм. VT52 но шрифт не поменялся.Почему-то вместо всех шрифтов *.fon используется Fixedsys. Для шрифтов *.ttf такой проблемы (похоже) нет.

MiX
31.07.2016, 18:06
Почему-то вместо всех шрифтов *.fon используется Fixedsys.
У меня в списке Фрязинский шрифт именно с расширением fon. А что за формат Fixedsys?


Для шрифтов *.ttf такой проблемы (похоже) нет.
А вот ttf в эмуляторе вообще не одного.

Patron
31.07.2016, 18:46
А что за формат Fixedsys?Это системный шрифт - он всегда есть в меню шрифтов :

http://pic.pdp-11.ru/images/vt52fonts.png




А вот ttf в эмуляторе вообще не одного.Вот пример работающего самодельного TTF-шрифта для эмулятора терминала: Glass TTY VT220 (TrueType) (http://sensi.org/~svo/glasstty/Glass_TTY_VT220.ttf)

MiX
31.07.2016, 19:04
Это системный шрифт - он всегда есть в меню шрифтов
Иначе говоря это моноширный шрифт. Он же обозначен как Terminal и он же VGA866 в папке Font. Так?

Вот пример работающего самодельного TTF-шрифта для эмулятора терминала: Glass TTY VT220 (TrueType)
С этим то проблем нет. Других невидно.
Да и если другие присутствуют в списке, всё равно при выборе не всё меняют шрифт как и IE15. Остаётся тот же "Терминал".

Patron
31.07.2016, 19:40
Иначе говоря это моноширный шрифт.В меню выбора шрифта терминала видны только моноширинные шрифты, но вместо некоторых выводятся не сами эти шрифты, а системный шрифт по умолчанию.

У меня сложилось впечатление, что все шрифты *.FON при выводе заменяются шрифтом Fixedsys, тогда как моноширинные шрифты *.TTF выводятся нормально.

MiX
01.08.2016, 22:54
В меню выбора шрифта терминала видны только моноширинные шрифты, но вместо некоторых выводятся не сами эти шрифты, а системный шрифт по умолчанию.
И я про то.
Вообще матрица знака используется 7х7 при матрице 8х8. Это сделано для того чтобы по вертикали (слева) буквы не сливались, и по горизонтали не сливались с буквой нижней строки. Так-же это неиспользуемое матричное место используется под вертикальный или горизонтальный курсор (в виде полоски). Чтобы курсор не сливался с буквой, и чтобы его можно быстро найти- сделали мигающий курсор. Ну и/или используется знакоместо которое сдвигается при вводе символа. При матрице 8х8 полностью занятая символом, курсор мигает инверсией символа, но это в случае если используется аппаратное разделение знакоместа по вертикали и горизонтали.
К чему я это.
А к тому что может только Fixedsys (и некоторые другие) устраивают по параметрам эмулятор.


У меня сложилось впечатление, что все шрифты *.FON при выводе заменяются шрифтом Fixedsys, тогда как моноширинные шрифты *.TTF выводятся нормально.TTF это векторный шрифт. Разве он может быть моноширинным?

В прочем, хотелось бы свежий релиз с поддержкой шрифтов. :)

Black Cat / Era CG
01.08.2016, 23:46
TTF это векторный шрифт. Разве он может быть моноширинным?
Courier

form
18.11.2016, 08:04
Кстати, для CTAKAH поменялся адрес - 80.89.204.47. В конфиге можно поправить...

L Juriy
25.11.2016, 17:51
Вопрос к знающим.
Можно ли средствами эмулятора терминала отправить файл на устройство к которому он подключен (одноплатный компьютер)?.
Если можно то как?

Patron
26.11.2016, 19:56
Можно ли средствами эмулятора терминала отправить файл на устройство к которому он подключен (одноплатный компьютер)?Если эмулятор терминала является сервером протокола HX ( зависит от используемого конфига ), то тогда, если в загруженной системе установлен драйвер HX.SYS - файлы можно копировать с приводов HX на любые устройства RT-11.

L Juriy
26.11.2016, 21:39
Patron, В загруженной системе стоит микропроцессор i8051. Ему нужно передать Intel hex файл.
Можно его передать средствами эмулятора терминала?

Patron
26.11.2016, 22:22
Текстовый файл ASCII можно поместить в буфер обмена Windows ( <Ctrl/A> <Ctrl/Ins> ) и вставить в окне терминала ( <Shift/Ins> ) - тогда весь текст пойдёт как ввод с клавиатуры. Если на принимающей стороне запустить текстовый редактор - он примет этот текст, который можно затем сохранить в файл

L Juriy
27.11.2016, 12:20
Понятно. Кнопочки передать файл нет.
Принимающая сторона ждет, а передающая не может.:v2_dizzy_coder:
Надоело прыгать между окнами.

hobot
27.11.2016, 13:30
Кстати, для 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.

$

MiX
27.11.2016, 13:34
Сорри что вклиниваюсь.


Понятно. Кнопочки передать файл нет.
В файле конфигурации можно настроить любую кнопку, любой команды.

Принимающая сторона ждет, а передающая не может.
А сигналы DTR,DSR выставлены?


Надоело прыгать между окнами.
А причем тут вообще эм.VT52? Если на то пошло, то на настоящем VT52 вообще ничего не передать кроме как ввода с клавиатуры.

Используйте программу terminal v1.9b (http://digitalchip.ru/terminal-1-9b-rabotaem-s-com-portom) для связи с контроллером.

hobot
27.11.2016, 15:16
Patron, на скрине увидел 15IE_FONT - что за зверь? Поделитесь шрифтиком - это ведь под Windows?
Я в эмуляторе ДВК пользуюсь Дежавю Моно, там правильный привычный нолик, а не "бублик".

Patron
28.11.2016, 03:23
15IE_FONT - что за зверь? Поделитесь шрифтиком - это ведь под Windows?
Я в эмуляторе ДВК пользуюсь Дежавю Моно, там правильный привычный нолик, а не "бублик".Это FON-шрифт, а я их пока использовать не умею - только TTF. Поэтому увидеть его на экране терминала всё равно не получится.

hobot
28.11.2016, 21:06
Это FON-шрифт, а я их пока использовать не умею - только TTF.

https://onlinefontconverter.com/ пробовали? Наверняка ещё есть варез какой-то, так что если скинете
мне шрифтик может я всё таки найду способ его в нужный формат преобразовать?

- - - Добавлено - - -

http://stackoverflow.com/questions/3750124/how-to-convert-a-bitmap-font-fon-into-a-truetype-font-ttf

Patron
29.11.2016, 00:50
может я всё таки найду способ его в нужный формат преобразовать?См. ЗДЕСЬ (http://zx-pk.ru/threads/20092-emulyator-terminala-tipa-vt52.html?p=880449&viewfull=1#post880449).

L Juriy
24.12.2016, 10:31
Patron, Как работать с ESC последовательностями?
Что то у меня не отрабатывает.

Patron
24.12.2016, 20:17
Как работать с ESC последовательностями? Что то у меня не отрабатывает.Терминал отрабатывает три разных набора управляющих кодов - для терминалов 15ИЭ, VT52 и VT100. Поэтому ( например ) коды ANSI для VT100 будут работать только в режиме ANSI. Терминал стартует в режиме VT52, для ручного переключения в режим ANSI надо кликнуть мышью по кнопке с надписью [VT52], после чего надпись изменится на [ANSI] и терминал начнёт отрабатывать коды ANSI.

L Juriy
24.12.2016, 21:07
В VT52, как он и стартует по умолчанию. Пробовал в ANSI, тоже не получилось.
Описание последовательности в режиме VT52 есть?
А то я может последовательность выдаю не правильную,
Использую последовательность из описания дисплея CM7209 который польский MERA.

Patron
24.12.2016, 22:03
А то я может последовательность выдаю не правильную.Пример выдачи правильной последовательности.

Запускаем BASIC и вводим:



READY
A$=CHR$(27)+"Y"+CHR$(40)+CHR$(40)

READY
PRINT A$+"####"

%%%%

READY
PRINT A$+"%%%%"


Последовательность прямого позиционирования курсора каждый раз выводит в одно и то же место экрана.

L Juriy
25.12.2016, 16:15
То есть вот этот список отрабатывается так как в нем написано.


;
;Управляющие последовательности
;
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 "проглатывается" а остальное выводится на экран.

Patron
25.12.2016, 18:15
ESC "проглатывается" а остальное выводится на экран.Значит, сразу после ESC выводится что-то лишнее. Что именно - можно увидеть, подключив параллельно терминалу консоль в режиме дампа. Для этого в секциях [objects] и [links] файла конфигурации надо внести добавления и ещё - добавить в конце файла конфигурации секцию [Dump.ini] :



[objects]
Dump = Ядро:Console

[links]
TerminalPort > Dump

[Dump.ini]
DumpMode = 3

hobot
25.12.2016, 18:50
Patron, возможно снова проблемы с регулятором скорости?

- - - Добавлено - - -

И нужно то просто "чуть помедленнее" )

Patron
18.01.2017, 15:18
.

Обновилась текущая сборка эмулятора терминала типа 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.


..

MiX
24.01.2017, 21:23
Сегодня посмотрел плату МПУ от терминала 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 все прошивки есть.

Titus
24.01.2017, 22:03
Сегодня посмотрел плату МПУ от терминала 15ИЭ-00-013, оказывается что там прошивки тоже есть. Возможно что пригодится для эмуляции.
Замечательно)
Только желательно бы перенести это в тему эмуляции именно 15ИЭ.

MiX
24.01.2017, 22:28
Замечательно)
Только желательно бы перенести это в тему эмуляции именно 15ИЭ.
Возможно что на данный момент приоритеты Patron'a изменились, но ранее были вопросы по 15ИЭ.
В частности по плате ПЗУ с 6ю прошивками. И дампы этой платы тоже есть (http://portal.kinderland.ru/published/DD/2.0/folder_link.php?sl=1cf1c16d47ff20fcf523004fb0692c2 f&DB_KEY=S0lOREVSTEFQT1JUQUw%3D).

Titus
24.01.2017, 22:43
Возможно что на данный момент приоритеты Patron'a изменились, но ранее были вопросы по 15ИЭ.
Но на сколько я понимаю, эмулятор VT52 ничего общего не имеет с эмуляцией железа 15ИЭ. Тогда как есть темы и эмуляторы, где именно железо 15ИЭ потактово эмулируется.

Vamos
24.01.2017, 23:25
Тогда как есть темы и эмуляторы, где именно железо 15ИЭ потактово эмулируется.
ссылка?

Titus
24.01.2017, 23:32
ссылка?
Пользуйтесь поиском)
http://zx-pk.ru/threads/20744-emulyatsiya-fryazinskogo-displeya-15ie-00-013.html
http://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html

Vamos
24.01.2017, 23:52
Titus, не, ну это я все видел, тем более что в EmuStudio это не отдельный эмулятор 15ИЭ.

Titus
25.01.2017, 00:10
Titus, не, ну это я все видел, тем более что в EmuStudio это не отдельный эмулятор 15ИЭ.
Но это эмулятор именно железа 15ИЭ, причем потактовый.

Vamos
25.01.2017, 00:16
Это я помню, AlexK еще восхищался, но его нельзя подключить к эмулятору ДВК например, что снижает интерес.

Titus
25.01.2017, 05:08
Это я помню, AlexK еще восхищался, но его нельзя подключить к эмулятору ДВК например, что снижает интерес.
Я бы может и сделал вход для подключения, если бы мне дали интерфейс, и если этот интерфейс простой (не охота заморачиваться с тем, чем я в принципе не пользуюсь).

Vamos
25.01.2017, 05:21
Я бы может и сделал вход для подключения, если бы мне дали интерфейс, и если этот интерфейс простой (не охота заморачиваться с тем, чем я в принципе не пользуюсь).
Интерфейс если не ошибаюсь обыкновенный СОМ порт

Titus
25.01.2017, 05:27
Интерфейс если не ошибаюсь обыкновенный СОМ порт
Это очень общая фраза)

Vamos
25.01.2017, 05:44
Это очень общая фраза)
Какой вопрос такой и ответ )) А какая конкретика нужна? Есть стандартный виндовый набор функций для работы с СОМ, вот то место через которое в вашем эиуляторе происходит обмен данными с ИЕ15 выводите на функцию СОМ порта

Titus
25.01.2017, 07:44
У меня даже нет железного ДВК, чтобы подключить к компу и это проверить.

form
25.01.2017, 07:53
У меня даже нет железного ДВК, чтобы подключить к компу и это проверить.
А зачем железный ДВК? Достаточно обычного компа (причем того же самого если у него два порта) :)
Да и с одним портом (или без портов вовсе) есть легкий вариант...

Titus
25.01.2017, 08:06
А зачем железный ДВК? Достаточно обычного компа (причем того же самого если у него два порта) :)
Да и с одним портом (или без портов вовсе) есть легкий вариант...
Разжуйте на пальцах, плиз. Особенно без портов. Чтобы ничего не паять и не тыкать в комп.

form
25.01.2017, 08:12
Разжуйте на пальцах, плиз. Особенно без портов. Чтобы ничего не паять и не тыкать в комп.
Все просто. Если два порта (или другой комп есть) - замыкается один на другой, запускается любой эмулятор, умеющий работать с COM портом и тестируется.
Без портов - ставится vmware или virtualbox, в нем конфигурится машина с двумя com портами, направленными в named pipe, замыкуаются друг на друга, а далее вариант для двух портов...

Titus
25.01.2017, 08:18
Все просто. Если два порта (или другой комп есть) - замыкается один на другой, запускается любой эмулятор, умеющий работать с COM портом и тестируется.
Без портов - ставится vmware или virtualbox, в нем конфигурится машина с двумя com портами, направленными в named pipe, замыкуаются друг на друга, а далее вариант для двух портов...

Т.е., чтобы, например, подключить эмулятор ДВК Patron'а к эмулятору терминала, нужен такой огород с виртуалбоксами? Никак проще?

form
25.01.2017, 08:23
Т.е., чтобы, например, подключить эмулятор ДВК Patron'а к эмулятору терминала, нужен такой огород с виртуалбоксами? Никак проще?
Проще - два физических COM порта - тогда не нужно виртуалок :)
Насколько я понял цель - именно работа с COM портами, значит от них (физических или виртуальных) не уйти.

- - - Добавлено - - -

Впрочем вариант подключения через TCP/IP тоже интересен и не требует дополнительных ресурсов.

Titus
25.01.2017, 08:24
Впрочем вариант подключения через TCP/IP тоже интересен и не требует дополнительных ресурсов.
А этот вариант зачем?

form
25.01.2017, 08:31
А этот вариант зачем?
Затем, что он более распространен среди эмуляторов (некоторые эмуляторы другого и не умеют). Да и к собственно TCP/IP системам подключать терминал было бы интересно.

Titus
25.01.2017, 10:38
Затем, что он более распространен среди эмуляторов (некоторые эмуляторы другого и не умеют). Да и к собственно TCP/IP системам подключать терминал было бы интересно.
При подключении по TCP/IP и тем более к эмуляторам ДВК теряется аутентичность системы. Уже нет, наверное, смысла в потактово точном эмуляторе 15ИЭ, т.к. он работает не с реальной машиной, а с нетактовоточным эмулятором.

Vamos
25.01.2017, 11:00
Titus, самое простое http://com0com.sourceforge.net/ patron его нашел и через него эмулятор тестировал

form
25.01.2017, 11:53
При подключении по TCP/IP и тем более к эмуляторам ДВК теряется аутентичность системы.
Ну если делать эмулятор который работает только "вот с этим", не умея при том подключаться _к реальным_ машинам стандартным для них способом - может проще тогда и вообще не заморачиваться - оставить просто терминал который умеет только печатать то, что нажали? ;)

Vamos
25.01.2017, 12:08
Заморачиваться надо, но аутентично )) есть проги которые умеют СОМ <-> TCP/IP

form
25.01.2017, 12:12
есть проги которые умеют СОМ <-> TCP/IP
Я скажу больше: есть системы которые умеют TCP/IP. В том числе простой RT-11 позволяет подключаться через telnet :)

BYTEMAN
25.01.2017, 13:25
Есть программки виртуальных ком-портов. В системе появляется два порта, в программке настраивается какие линии как подключены, и всё, ЭмуСтудио цепляем к одному порту, эмулятор Патрона - к другому. И имеем то что хотели :)

form
25.01.2017, 13:41
Кстати, эмулятор ДВК с RSXом и DECnetом в нем который уже месяц с чем-то там крутится в HECnet как раз подключен петлей COM портов (правда в виртуальной машине ESXi) :)
На другом конце петли в той же машинке E11 опять таки с RSX, а уже он роутит через ethernet+ip до стакана...

Titus
25.01.2017, 17:07
Есть программки виртуальных ком-портов. В системе появляется два порта, в программке настраивается какие линии как подключены, и всё, ЭмуСтудио цепляем к одному порту, эмулятор Патрона - к другому. И имеем то что хотели :)
Есть. Платные. А взломанные под восьмеркой уже не идут. Значит надо пробовать бесплатную com0com.
А вообще, пока что мой эмуль не вполне заточен под синхронизацию по таймеру или аудиобуферу. Он синхронизируется по VBlank, что для эмулятора терминала в реальном времени не вполне подходит.

BYTEMAN
25.01.2017, 17:20
Значит надо пробовать бесплатную com0com.
во,она самая) мы её на лабораторных использовали много) название призабылось просто уже...

Hunta
04.08.2017, 10:38
Patron, а в эмуляторе VT52 псевдографика есть?

Patron
04.08.2017, 13:09
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; }
}
}

Hunta
04.08.2017, 14:30
Ндя, немного...
Может, запользовать диапазон 200-237? :)

Patron
04.08.2017, 14:48
Может, запользовать диапазон 200-237?Можно использовать все символы, присутствующие в каждом моноширинном шрифте Windows ( образец - шрифт System ).

Hunta
04.08.2017, 15:24
Просто я пробовал использовать диапазон 200-237 (Strip_8Bit_HighLimit = 0177, шрифт Courier New) но мне ничего не показывалось.. что то делаю не так?

Patron
04.08.2017, 15:44
Просто я пробовал использовать диапазон 200-237 (Strip_8Bit_HighLimit = 0177, шрифт Courier New) но мне ничего не показывалось.. что то делаю не так?Некоторые старые программы для VT52 посылают управляющие коды с установленным 8 битом - так этот бит можно обрезать до попадания принятого терминалом кода в обработчик управляющих кодов.

Можно запустить с устройства DK игру: Space_Invaders (http://emulator.pdp-11.org.ru/misc/Space_Invaders.zip) и посмотреть, как работает эмуляция псевдографики VT52.

Hunta
04.08.2017, 15:58
этот бит можно обрезать до попадания принятого терминалом кода в обработчик управляющих кодов
Я не про то. Я как раз не хочу обрезать, я хочу, что бы байт из диапазона 200-237 был выведен на экран. Он не выводится - эмулятор принципиально такие байты игнорирует?

Patron
04.08.2017, 16:29
я хочу, что бы байт из диапазона 200-237 был выведен на экран.Диапазон 200-237 не содержит отображаемых символов ASCII. Если обрезать 8-й бит - эти символы можно интерпретировать как управляющие, а если не обрезать - это просто неотображаемые символы.

form
04.08.2017, 16:31
обрезать 8-й бит - эти символы можно интерпретировать как управляющие
Более того, на ANSI терминалах они и есть управляющие :)
Например <233> - аналог <ESC>[ в 8-битном режиме терминала.

Hunta
04.08.2017, 16:58
Диапазон 200-237 не содержит отображаемых символов ASCII

Можно использовать все символы, присутствующие в каждом моноширинном шрифте Windows ( образец - шрифт System ).
Не знаю, отобразятся или нет, примеры взяты из System
0x80 (0200) - Ђ
0x81 (0201) - Ѓ
0x86 (0206) - †


Более того, на ANSI терминалах они и есть управляющие
VT52 он как бы не совсем ANSI. И что такое CSI - я хорошо знаю.

- - - Добавлено - - -

Собственно, к чему все вопросы - есть ли какие то стандартные возможности рисования символов псевдографики для оформления таблиц или нет. Но я так понимаю - нет.

Patron
04.08.2017, 17:06
Не знаю, отобразятся или нет, примеры взяты из 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; }
}
}

form
04.08.2017, 17:25
VT52 он как бы не совсем ANSI.
Так и эмулятор терминала не только VT52 эмулирует, но и некий минимум от VT100 :)

Hunta
04.08.2017, 17:33
У меня есть файл, в котором занесены построчно байты в диапазонах (соотвественно - 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. Но это было давно. Как сейчас обстоят дела - не знаю :)

Patron
04.08.2017, 17:51
те, которые используются для рисования таблиц, например в текстах под MS-DOS.Имеется в виду, какие символы псевдографики родного VT52 предлагается выводить дополнительно к уже эмулируемым. У родного VT52 нет символов псевдографики для рисования таблиц, поэтому и у его эмулятора - тоже.


Пояснение - я сейчас продумываю аналог NC - было бы удобно использовать такие псевдографические символы для рисования правого левого окна в стиле NC, Far. Тут правда встаёт проблема работы на реальных устройствах (ДВК, УКНЦ и т.п.) и эмуляторах - хотя в принципе она решаема - если знать - есть ли эти псевдографические символы - и какие у них коды.У всех разные, а чаще никакие - на это и есть смысл ориентироваться, используя для таблиц обычные символы "|", "-","+",":","#". Такая программа будет одинаково работать на всех терминалах и их эмуляторах.

form
04.08.2017, 17:53
Я когда искал терминальную программу, эмулирующую VT52 - перепробовал некоторое количество - могу только сказать (по памяти) - что кроме эмулятора VT52 Патрона меня не устроила ни одна (из бесплатных, платные уже не помню),
Аналогично!
Добавлю только, что и среди платных та же история - никто в принципе не умеет эмулировать VT52. То по <ESC>J стирается весь экран, то он вообще не работает то еще что. Перепробовал множество разных.
В памяти ворочается, что вроде ZoC какой-то работал нормально, но... у него функциональные клавиши были F1-F3, а бегать через всю клаву за ними в редакторе как-то не очень :)

Patron
04.08.2017, 17:56
Мне доводилось видеть на ДВК примерно такое оформление экранных таблиц:


+-\_DEVICE_/-+
| |
| DK |
| |
+------------+

Hunta
04.08.2017, 18:06
Имеется в виду, какие символы псевдографики родного VT52 предлагается выводить дополнительно к уже эмулируемым
Это предмет обсуждения :)

У всех разные, а чаще никакие
Библиотека NDT, на которую я буду ориентироваться, позволяет сделать описание терминала. Всё это можно загнать в него (в описание) (и даже хранить отдельно в виде текстового файла для простоты настройки). Но в Вашем эмуляторе VT-52 можно сделать красивый вариант :)


Перепробовал множество разных
Матерился я долго и изощрённо, пока не напал на эмулятор Патрона. Жалко, тогда не было эмуляции ВМ3 :) - восстановление бы Кванта начал раньше :)


Мне доводилось видеть на ДВК
Пристрелка :)
http://www.kpxx.ru/KBAHT4C/Snapshots/mdc.jpg

form
04.08.2017, 18:14
можно сделать красивый вариант
Можно попробовать совместимо с УКНЦ сделать.

- - - Добавлено - - -


Жалко, тогда не было эмуляции ВМ3
Я тоже долго этого ждал :)
К тому времени уже был опробован RSX на живом ДВК-4 (грузился с MY). В какой-то момент не вытерпел и сделал 11M без MMU, грузящийся с HD :)

Hunta
04.08.2017, 18:14
Можно попробовать совместимо с УКНЦ сделать


Библиотека NDT
позволяет сделать описание терминала
И никто не мешает для эмулятора сделать свой вариант

form
04.08.2017, 18:24
Пристрелка
А субдиры будут? ;)
В 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ЛЛЕГАЛ ФУНЦТИОН
>

Hunta
04.08.2017, 18:32
А субдиры будут
Пока нет. Тем более, там до хрена менять придётся. К тому же свой вариант поддержки директорий есть в MIM-е - пусть и не настолько хороший, как скажем в UNIX или PC, но как и с MIM-ов как файловым менеджером - процентов 90 потребностей он решает - и пока хватает.


да и для M+ есть ACP
Не помню, что бы попадался,


совместимо с УКНЦ будет меньше возни
одинаково от слова почти


создание ACD
Это не сильно универсальный способ. Хотя я его использовал для как бэ нативной поддержки русских букв. С возможностью выбора кодировки.

- - - Добавлено - - -


>A
MCR -- IЛЛЕГАЛ ФУНЦТИОН

Крайне не красиво ;)

form
04.08.2017, 18:44
Не помню, что бы попадался
Вроде в декусе видел и на ftp.update.uu.se лежит.


Крайне не красиво
Это была цель - получить СМ7209-совместимость - много софта-текстов было именно в таком виде, а не в ^N/^O (который кстати мешает просмотру на ANSI терминалах) :)

Hunta
04.08.2017, 18:53
В DECUS не помню, что бы попадался (но во времена активной работы на СМ мало что было доступно, а теперь, когда вроде почти полностью есть - не сильно по нему лазил)
И на ftp.update.uu.se что то не видно - у меня он полностью выкачан. Если только недавно выложили.. Запустил обновляться

- - - Добавлено - - -

И вдогонку - такого рода текст я обычно перекодировал перед первым использованием (и в варианте ^N ^O), да и в программах можно было поправить.

form
04.08.2017, 19:01
в программах можно было поправить
Можно было, но это еще и вопрос ностальгии - тогда делалось и с этой целью, а позже оно вроде как и ненужным стало - появился эмулятор терминала :)

Patron
23.09.2017, 16:47
.

Обновилась текущая сборка эмулятора терминала типа 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» ]

..

MM
21.10.2017, 21:13
А теперь практические вопросы :
1. Никак нельзя сделать не пространные эмуляторы импортного хлама типа VT52, а обыкновенный эмуль КСМ ( пожалуйска, без гашения видеовывода при операциях в проце КСМ ),
со строгим соотвествии 102 кнопочной клавы PS/2 и МС7004, а желательно - и полной эмуляции последней.

Запустил эмуль VT-52 - где там кнопка ПС ( код 12 ( 8 ) ) ??? Где кнопка латинское "Ч" ???

form
21.10.2017, 21:26
где там кнопка ПС
По привычке от VT100 иногда в нее попадаю - кнопка KP+ :)


Где кнопка латинское "Ч"
Что такое латинское Ч? Если то, что получается переходом из кои, то там где она и есть на клавиатуре: ^. И это замечательно, что не как в эмуляторе УКНЦ - хрен найдешь что где если привычки давно нет к родной клаве :)

Patron
21.10.2017, 22:40
где там кнопка ПС ( код 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

MM
21.10.2017, 23:53
Код 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/

form
22.10.2017, 18:29
Небольшое предложение: добавить возможность из командной строки подставить конфиг который бы подставлялся вместо параметра ConfigFile из VT52.ini - это позволит использовать эмулятор в качестве терминальной программы для CHARON, а так же упростит жизнь несколько.

Patron
23.10.2017, 02:11
добавить возможность из командной строки подставить конфиг который бы подставлялся вместо параметра ConfigFile из VT52.iniПо идее - всё так и должно работать, но есть нюансы.

Сейчас есть только одна возможность загрузить конфиг из командной строки - указать полный путь в двойных кавычках:


VT52.exe "G:\FTP\VT52\HX_COM.cfg"

К следующему релизу не помешает добавить больше гибкости в алгоритм различения: 1) конфигов для загрузки; 2) ассоциированных файлов для запуска и 3) командных строк RT-11 для выполнения.

MiX
23.10.2017, 13:38
К следующему релизу не помешает добавить больше гибкости в алгоритм различения
И служебную строку. В терминале 24х80 где 25 строка будет отображать текущую скорость соединения, режим работы, набор кодировки.
Получится 25х80.
В конфиге можно сделать опцию - Service line ON [OFF]

Спасибо.

MiX
23.10.2017, 16:52
Или лучше так:
Service line - 0 [служебная строка отключена]
Service line - 1 [служебная строка 15ИЭ]
Service line - 2 [служебная строка КСМ]
Service line - 3 [служебная строка СМ7209]*
Service line - 4 [служебная строка (зарезервировано)]

* В этом случае служебная строка находится внизу.

MiX
31.10.2017, 12:44
Баг принимаете?
При подключении к приводу НХ дисков DX/DY RT11 не видит каталога. Это так и должно быть?
RT11 загружена с НХ.

Patron
31.10.2017, 15:45
При подключении к приводу НХ дисков DX/DY RT11 не видит каталога. Это так и должно быть?Так и должно быть. При подключении образов DX/DY/DZ к приводу HD - увидеть каталог тоже не удастся.

form
31.10.2017, 15:51
При подключении образов DX/DY/DZ к приводу HD - увидеть каталог тоже не удастся.
Ну как вариант, HD на каталог с образами, а в LD они правильно будут показываться (кроме DZ).

Patron
31.10.2017, 16:06
в LD они правильно будут показываться (кроме DZ).У DX и DY такой же алгоритм интерлива, как у DZ, только для секторов по 128 и 256 байтов. В образах DZ хотя бы только блоки перемешаны, а в образах DX и DY - перемешаны уже четвертушки ( DX ) или половинки ( DY ) блоков.

- - - Добавлено - - -

Ну и конечно - у всей троицы в образе сначала записаны блоки последней дорожки и только потом - блоки остальных дорожек, начиная с нулевой.

form
31.10.2017, 17:00
У DX и DY такой же алгоритм интерлива
Тогда не будет.
Какие-то перестановки LD делает для флоповых образов, но не такие чтобы DZ читать.

- - - Добавлено - - -

Посмотрел на образ DY в эмуляторе - он не соответствует стандартным DECовским образам (с которыми работают все) - тогда все понятно.

MiX
12.11.2017, 18:40
Выглядит шрифт забавно.
С одной стороны вроде как глючный, а с другой стороны прослеживается какая-то в этом закономерность.


Хотя, больше склоняюсь к тому, что все же глючный)

Да, вроде глючный, держи новый файл.

СМ7209_FONT (http://doc.pdp-11.org.ru/Terminals/CM7209/CM7209_FONT.BIN)

Этот прочитан с другой платы.

MiX
30.11.2017, 23:20
Patron, Можно ли добавить опцию подключения карты знакогенератора (bitmap). Тогда в настройках Terminal.ini кроме оригинальных цветов терминалов, будут оригинальные символы.

Спасибо.

Patron
01.12.2017, 02:01
Можно ли добавить опцию подключения карты знакогенератора (bitmap).Похоже, что с терминалом такое никогда не будет возможно. Когда дойдёт дело до графической подсистемы - появится объект "Монитор", выводящий поток графических кадров (битмапов размером с эмулируемый экран). Эмуляторы КСМ и КЦГД будут создавать эти кадры и отправлять через поток кадров в монитор для отрисовки. Такой подход позволит отдельно эмулировать графические адаптеры и отдельно - мониторы.

MiX
02.12.2017, 01:53
Похоже, что с терминалом такое никогда не будет возможно.
Как это не возможно когда любой терминал генерирует символы.


Когда дойдёт дело до графической подсистемы - появится объект "Монитор", выводящий поток графических кадров (битмапов размером с эмулируемый экран).
Речь идет о символьном терминале.


Эмуляторы КСМ и КЦГД будут создавать эти кадры и отправлять через поток кадров в монитор для отрисовки.
Зачем такие сложности? Лучше разделить графический режим и символьный, где в символьном режиме идет код символа, а терминал (и те же КСМ, КЦГД) печатает символ с соответствии с картой знакогенератора (выбранного терминала).
В графическом режиме (касается только КГД, КЦГД) идет поток битов где отображается в отдельной консоли с автоматическим переключением туда и обратно.
По сути эмуляция КСМ+КГД пускай будут в отдельных консолях, это облегчит эмуляцию. В КЦГД, там сложнее. Лучше КЦГД использовать только графический режим с эмуляцией символьного.

Но просьба была по терминалам, где терминал не использует шрифт, а создает символы из прошивки знакогенератора.

Patron
02.12.2017, 16:55
Можно ли добавить опцию подключения карты знакогенератора (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

MiX
02.12.2017, 17:46
Как выяснилось - эта опция есть уже сейчас. Карта знакогенератора должна быть оформлена в виде растрового 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 - тот же самый экран выглядит так:
Ясно что не годится. Вот и была просьба чтоб сам эмулятор напрямую с прошивкой работал.

Patron
02.12.2017, 18:11
Ясно что не годится. Вот и была просьба чтоб сам эмулятор напрямую с прошивкой работал.Терминал всегда будет выводить шрифты прошивок только из FON-шрифтов Windows. Надо просто научиться правильно их готовить. Возможно - написать правильную утилиту создания FON-шрифтов для эмулятора из шрифтов в прошивках. Кому интересно выводить на терминал шрифты из битовых карт прошивок - могут этим заняться.

MiX
02.12.2017, 19:35
Терминал всегда будет выводить шрифты прошивок только из FON-шрифтов Windows.
Это годится только для стандартной таблицы. Как будет задействована псевдографика расположенная в 0-31 и 128-159?

Patron
02.12.2017, 22:17
Это годится только для стандартной таблицы. Как будет задействована псевдографика расположенная в 0-31 и 128-159?Терминал никогда не сможет показать символы с кодами из диапазона 0-31, потому что они всегда распознаются как управляющие. Символы из диапазона 128-159, при перекодировании из набора символов КОИ-8 в набор символов Windows - в текущей версии преобразуются в пробелы. В принципе - их можно пропускать без перекодирования, тогда при наличии нормального FON-шрифта - эти символы будут выведены соответствующими значками ( только надо ещё изменить порог очистки старшего бита символа: Strip_8Bit_HighLimit = 0177 ).

MiX
02.12.2017, 22:36
Терминал никогда не сможет показать символы с кодами из диапазона 0-31, потому что они всегда распознаются как управляющие.
Это в стандартном режиме. В расширенном режиме терминал обращается в область ПЗУ где эти символы находятся, а команды отрабатываются другим ПЗУ, где собственно и программа работы самого терминала.

Patron
02.12.2017, 23:57
Это в стандартном режиме. В расширенном режиме терминал обращается в область ПЗУ где эти символы находятся, а команды отрабатываются другим ПЗУ, где собственно и программа работы самого терминала.Для начала пусть кто-нибудь сделает нормальный конвертор шрифтов прошивок в 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

form
09.04.2018, 06:28
Предложение по доработке HX драйвера - добавить/расширить вызовы .SPFUN:
SF.R32 (367), SF.W32(366) - чтение/запись с использованием 32-битного блока, аргумент blk - адрес дескриптора: первые два слова - номер блока, третье слово возвращает реально переданное количество слов, четвертое не используется (совместимость с DU)
SF.SIZ (373) - получить размер - аргумент blk - тип запроса: SF.S16 (0) - 16 бит, SF.S32 (1) - 32 бит (в этом случае буфер должен быть 4-словным, два слова - размер, два слова не используются


Функционал будет полезен для подъема с нуля систем с большими дисками.

Patron
10.04.2018, 14:04
Предложение по доработке 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

Зелёное и красное - надо перенести. Красное - надо изменить для передачи старшего слова номера блока. Синее - общее продолжение, которое надо оставить на месте и выполнять туда переход из перенесённого и изменённого кода.

MiX
02.09.2018, 12:02
Patron, Здравствуйте.
Я использовал загрузчик НХ в качестве ввода программы на Бейсике. Есть вопросы.
Как отключить детектор промпта, пустые кавычки в настройке PromptChar="" не дают ввода текста по нажатию кнопки Boot HX0. Как вариант использую пробел.

Как в тексте программы сделать "перевод сроки+возврат каретки" т.к после ввода первой строки следующая ждет повторное нажатие пробела.

На данный момент тест вводится с пробелами (перед 10 и RUN). После RUN надо нажать Enter.

БЭЙСИК ДВК НЦ
@0
ЖДУ
10PRINT "HELLO"
RUN
HELLO

ОСТ СТРОКЕ 10
ЖДУ

И, просьба сделать выпадающее меню рядом с кнопкой Boot HX0 для выбора файла с текстом.

Спасибо.

Patron
04.09.2018, 23:36
[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>.

AFZ
02.10.2018, 04:24
А я правильно понимаю, что обсуждаемый эмулятор VT52 обязан нормально работать через свистульки USB-COM на всяких FT232, PL2303 и пр. CH340G, а не только через "железные" компорты?

form
02.10.2018, 04:30
А я правильно понимаю, что обсуждаемый эмулятор VT52 обязан нормально работать через свистульки USB-COM на всяких FT232, PL2303 и пр. CH340G, а не только через "железные" компорты?
Проблем на PCI/USB портах у него нет. Думаю с ттлными преобразователями тоже нет.
Это у всяких TU58 эмуляторов проблемы из-за особой реакции на BREAK у таких железяк :)

Hunta
04.10.2018, 23:58
Я использовал его для подключения к PDP на Циклоне - через FT232 как раз

AFZ
12.10.2018, 05:47
Угу. Только если покупать эту свистульку с FT232 у китайцев, высока вероятность нарваться на подделку - левый китайский клон этого чипа. А его родные дровишки, ущучив левак, стирают в нем что-то, вроде VID/PID, и до свидания. Вылечить, конечно, можно, но это нужны старые дровишки и куча поясок с бубном. Что-то похожее есть и с PL2303, а вот CH340G в таком пока не замечены.

Hunta
12.10.2018, 06:51
А его родные дровишки
Ну, те которые использую - не матерятся. А обновлять дрова пока не вижу смысла :)

MM
04.12.2018, 01:14
Есть ли возможность ознакомиться с текстом ( используемыми символами ) загрузчика МС1201.02, подаваемого с ИБМ ЭВМ по кнопке "Загрузить" ?

Предполагаю, там используются символы :
/ - откр. адрес
(ПС) - сл. ячейка
0...7 - циферки
G - запустить
....

CodeMaster
04.12.2018, 08:49
А его родные дровишки, ущучив левак, стирают в нем что-то, вроде VID/PID, и до свидания.
И что же эти "левые китайцы" создали клон не полностью соответствующий оригиналу, что видит даже софт (т.е. перепроектировали) и при этом не предусмотрели защиту от этого?

Patron
06.12.2018, 01:28
Есть ли возможность ознакомиться с текстом ( используемыми символами ) загрузчика МС1201.02, подаваемого с ИБМ ЭВМ по кнопке "Загрузить" ?По кнопке "Загрузить" передаётся содержимое текстового файла, называемого "файл скрипта" и указанного в файле конфигурации в параметре


[ODT_Loader.ini]
ScriptFile = TU58_WarmBoot_(177560).odt

Файл скрипта ( в нашем примере это TU58_WarmBoot_(177560).odt ) лежит в каталоге эмулятора и содержит обычный текст, который можно просмотреть и отредактировать.

MM
06.12.2018, 02:38
Файл скрипта
https://pic.maxiol.com/thumbs/1544053000.531452799.177560.jpg (https://pic.maxiol.com/?v=1544053000.531452799.177560.jpg)
Он достоверен ?
( Какие-то коТы типа 115 завелись ... )

Patron
07.12.2018, 18:31
Он достоверен ? ( Какие-то коТы типа 115 завелись ... )В оригинале это специальные последовательности [115 015 012] ( т.е. одиночный символ Windows кодировки: ¬ - в конце строки ), которые при передаче в ДВК преобразуются в одиночный код 012.

В блокноте Windows невозможно оставить в конце строки одиночный LF, поэтому для передачи в конце строки одиночного LF используется такой трюк.

AFZ
15.12.2018, 22:37
И что же эти "левые китайцы" создали клон не полностью соответствующий оригиналу, что видит даже софт (т.е. перепроектировали) и при этом не предусмотрели защиту от этого?По слухам, они ущучивают повторение серийников. База серийных номеров-то у оригинального изготовителя...

CodeMaster
15.12.2018, 22:49
По слухам, они ущучивают повторение серийников. База серийных номеров-то у оригинального изготовителя...
Да, я не про то. Почему они не сделали защиту этого VID/PID или возможность его восстановления?

AFZ
25.12.2018, 05:46
Почему они не сделали защиту этого VID/PIDПотому, что это будет уже не совсем точная копия. Да и не вникали они особо в детали, содрали, да и все...


или возможность его восстановления? Так она есть, просто много плясок с бубном. То есть, конечно, китайцы могли бы сочинить утилиту, которая делает это легко, без плясок с бубном, но они же китайцы. Да и проблема вылезла гораздо позже, когда до оригинального изготовителя, наконец, дошло, что китайцы склепали левак и демпингуют.

Patron
20.01.2019, 10:17
.

Обновилась текущая сборка эмулятора терминала типа 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 перед символом '@'.

Hunta
09.06.2019, 18:22
Добрый вечер, Patron.

А эмулятор VT52 сигнал Break в ком-порт посылает? В частности, если его использовать как терминалку для Э85 при подключении через консольный порт - вылет в ODT будет (ну при условии, что всё остальное сделано правильно - подключены TXD, RXS, замкнуты 5-6 и 8-9 )?

Спасибо.

form
09.06.2019, 18:41
А эмулятор VT52 сигнал Break в ком-порт посылает?
Посылает по Ctrl-Break или Alt-Break - точно не помно уже.
Я на 11/83 в пульт так выходил (на моей клавиатуре набор клавиш немного другой, нужно нажать три клавиши, но суть та же).

Hunta
09.06.2019, 19:03
form, спасибо. Alt-Break. Я пробовал жать кнопку Break - нулевая реакция. Но я пока не уверен, что правильно кабель спаял - опять вылезло то, что наша нумерация - зеркальная к буржуйской...

Patron
11.06.2019, 19:36
А эмулятор 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.

Hunta
11.06.2019, 19:52
При нажатии на клавиатуре кнопки <Pause/Break> - в линию уходит сигнал BREAK
Аха, спасибо.

1Ж24Б
15.09.2019, 21:44
Если задействовать порты на плате под PCI-E шину (Espada FG-EMT03A-1-BU01), то загрузить ту же RT-11 нельзя. В процессе, вместо @10000G появляется @10000G80a. Кто виноват ?

Patron
22.09.2019, 12:12
Если задействовать порты на плате под 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-портов (подробнее см. по ссылке выше). Если в реальности работает по-другому - виновато железо.

rrp
10.04.2020, 22:32
Уважаемые пользователи Эмулятора VT52, подскажите, pls., можно ли к Эмулятору VT52 подключить диски HD (из Эмулятора ДВК) или расшарить РСюшный каталог как в HD WorkDir?

hobot
11.04.2020, 00:24
Уважаемые пользователи Эмулятора 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 произвольного размера.

rrp
11.04.2020, 09:45
из описания
https://zx-pk.ru/threads/20095-zagruzka-rt-11-cherez-port-sistemnogo-terminala.html?p=543602#post543602
Спасибо, я это уже читал и использую... Вопрос несколько о другом - как через драйвер HX (или иным способом) получить доступ к каталогу на РС, как это реализовано в драйвере HD для Эмулятора ДВК.

MiX
11.04.2020, 18:44
rrp, Выбрать диск НХ и по кнопке образа нажать Alt + Left Click.

rrp
11.04.2020, 19:07
rrp, Выбрать диск НХ и по кнопке образа нажать Alt + Left Click.
Спасибо! Работает!
Или в конфиге вставить ссылку.
Странно, но до этого, когда правил конфиг не работало...

MM
15.05.2020, 20:50
Багрепорт - в реальной связке МС1201.03 - RS232 ( наплатный ) ИБМ ЭВМ не достаточно достоверено отрабатывется ЕМТ341 со стороны МС1201.03 - копит в буфер под ~70 символов, и потом до 80% пропускает на передачу ( не передает в ИБМ ЭВМ ). Использую аппаратное управление потоком - все 4 сигнальных проволоки от ВП1-065 задействованы.
ЕМТ351 вроде как отрабатывается удовлетворительно.

Баг устранен.

form
15.05.2020, 20:52
ЕМТ341
Что под этим подразумевается?
Если непрерывная выдача EMT341 (EMT, EMT, EMT ...) в RT-11 для печати символов, то это просто неверное использование функционала RT-11.
Если проще, EMT 351 - печать строки.
EMT 341 - НЕ печать символа.

MM
15.05.2020, 21:19
EMT 341 - НЕ печать символа.
Иправлено

form
15.05.2020, 21:22
Прекращаем бред.
В чем бред?
Еще раз, EMT 341 - это НЕ функция печати символа.
Читаем внимательно мануал по макробиблиотеке, в частности, курим чем отличаются .TTOUTR от .TTYOUT.
EMT 341 записывает символ в исходящий буфер терминала. Если места в буфере нет - происходит возврат с ошибкой.
На этом все в плане функционала данного EMT.
Если нужно последовательно печатать символы - следует проверять бит C (что и делается в макрокоманде .TTYOUT).

MM
15.05.2020, 21:47
мануал по макробиблиотеке
https://pic.maxiol.com/thumbs2/1589568334.531438894.2608.jpg (https://pic.maxiol.com/?v=1589568334.531438894.2608.jpg&dp=2)
Совершенно верно.
Следует использовать такой текст для вывода символа :
104341 103776

form
15.05.2020, 21:53
Следует использовать такой текст для вывода символа :
104341 103776
Все верно - это и есть развертка .TTYOUT - если нет места в буфере, прога циклится пока оно не появится.
В этом случае должно выводиться все.

MM
15.05.2020, 22:00
Раньше с М-ЭВМ использовался графический встроенный терминал, и вместо числа 103776 было 240 - вот при использовании RS-232 символы и выпадали, согласно толщине канала тарминала.

hobot
13.09.2020, 21:09
Просто проверил обновлённый .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? А то я после рабочей смены мало чего соображаю сейчас.

form
23.05.2021, 09:19
LF - CR
CR - просто Enter.
Насчет LF не знаю эмулируется ли он чем-то отдельно (если склероз не врет, вроде какую-то клавишу назначали).
В разных эмуляторах терминала какие попадались Shift-Enter или Ctrl/Enter давали LF, но когда все-равно используется две клавиши - проще использовать безотказный вариант Ctrl/J который и есть LF по своей сути.

Patron
26.05.2021, 10:01
Какие клавиши в эмуляторе на РС-клавиатуре эмулируют LF - CR?

CR посылают обе клавиши <Enter>, а LF посылает клавиша <Apps> (слева от правой клавиши <Ctrl>) и клавиша <+> на дополнительной клавиатуре (выше второй клавиши <Enter>).

Hunta
28.07.2021, 10:27
А насколько сложно добавить ещё скорости для COM порта?
У меня поддерживаются ещё 230400, 460800 и 921600, но выставить их, по понятным причинам, не получается... :)

Woxem
29.07.2021, 10:12
Patron, здравствуйте а можно ли добавить в эмулятор терминала дополнительный модуль передачи файлов бинарно?
У меня получилось запускать программы без ос. Подаю команду 177560L на процессоре мы и отправляю фаил lsi absloader следом за ним lda фаил программы и все работает.
Помогите пожалуйста интегрировать эту функцию в ваш эмулятор.

P.s. на МС1201.02 и в эмуляторе можно опустить останов. И нажать L потом поменять в 157776/177560 следом нажать P и начать бинарную отправку (задержка для реальной машины нужна только если программа подгружает ещё один свой загрузчик (у меня имеется такая) обычно задержка до 5 мс)

P.p.s. для передачи данный использовал realterm и teraterm и ещё com data emulator

MiX
29.07.2021, 22:13
Woxem, Тогда надо абсолютный загрузчик в скрипт переделать, и запуск без команды 177560L а прямо с пульта.
Файл скрипта должен быть прописан в конфигурации.

Woxem
30.07.2021, 06:16
MiX, для начала хотя бы добавить простую бинарную передачу чтобы ее отладить а потом прикручивать улучшения
P.s. если под словом скрипт вы подразумеваете odt loader то нет он ждёт символ @ пробовал уже не работает

Hunta
30.07.2021, 09:24
нет он ждёт символ @
Не обязательно - это настраивается. Файл конфигурации, раздел [ODT_Loader.ini], параметр PromptChar. Только не совсем понятно (из за названия) - можно описать только односимвольный prompt или можно и многосимвольный. Надо будет поэкспериментировать

- - - Добавлено - - -

Проверил - отработал и многосимвольный prompt

Woxem
30.07.2021, 11:28
Нужно чтобы он вообще ничего не ждал. как это сделать?
У меня такое чувство что он подаёт некоторое количество и останавливаться.
Удаляю строку он ее восстанавливает

Hunta
30.07.2021, 11:45
Нужно чтобы он вообще ничего не ждал. как это сделать?
У меня не получилось

MiX
30.07.2021, 21:26
MiX, для начала хотя бы добавить простую бинарную передачу чтобы ее отладить а потом прикручивать улучшения
Пультом воспринимаются цифры (кроме девятки), несколько букв, и это в ASCII.


P.s. если под словом скрипт вы подразумеваете odt loader то нет он ждёт символ @ пробовал уже не работает
Нужно прописать в конфигурации промпт именно тот который появляется на экране.

Woxem
31.07.2021, 07:34
MiX, на экране ничего не появляется в том то и прикол когда запускаешь 177560L запускается цикл программы и электроника не отвечает ничего она тупо ждёт байты и когда их получает выходит из цикла

MiX
31.07.2021, 10:26
MiX, на экране ничего не появляется в том то и прикол когда запускаешь 177560L запускается цикл программы и электроника не отвечает ничего она тупо ждёт байты и когда их получает выходит из цикла

А когда выходит что пишет?

Woxem
31.07.2021, 22:32
Ну запускается программа там в конце lda обычно прописанно стартовый адрес"G"

AFZ
10.08.2021, 06:26
Помогите пожалуйста интегрировать эту функцию в ваш эмулятор.А в эмуляторе можно просто воспользоваться эмуляцией перфолент. Даже без переключения на консольный адрес. Прописываем в инишник выбранной конфигурации вот эту секцию (позаимствовано из патроновского 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, и оно полетело.

AFZ
10.08.2021, 19:15
Попытался разобраться с эмулятором. Увы, прописать в конфиге несколько файлов нельзя, нужно или на ходу менять подключенный файл с образом перфоленты (.LDA-файл), стандартным средством манипуляции файлами хост-системы в эмуляторе, или сшить абс. загрузчик с LDA-файлом в один файл типа bin или lda и подключить в качестве образа ПЛ его.

Woxem
10.08.2021, 20:34
Мне нужно не в эмулятор мне нужно отправлять в машину. Сейчас пользуюсь realterm.

AFZ
12.08.2021, 10:24
А протокол HX, вроде-бы, открыт? Тогда никто не мешает сделать на его базе что-то мелкое своё, типа загрузки с HX0, вместо ОС, адаптированного абс. загрузчика с последующей загрузкой LDA-файла, смонтированного, допустим, как HX1.Тем более, исходник драйвера HX выложен...

Woxem
13.08.2021, 11:10
Так оно не работает нужно добавлять в корень эмулятора ещё один модуль на подобии стандартного serial.dll но я не понимаю как к нему обращаться из эмулятора. Вообще я много чего не понимаю я только учусьпрограмировать.

Hunta
13.08.2021, 11:45
Так оно не работает нужно добавлять в корень эмулятора ещё один модуль на подобии стандартного serial.dll но я не понимаю как к нему обращаться из эмулятора
К устройства HX можно цепануть что угодно - даже перфоленты. Но работа с ними всё равно выглядит (вроде) как работа с диском. Так что нужен аналог абсолютного загрузчика, но ориентированный на работу HX.

Пример кода работы с HX - каталог HX Sources в поставке VT52.

Просить меня написать код или помочь разобраться в коде не надо - у меня сейчас свободного времени только на свои "игрушки".

- - - Добавлено - - -

Теоретически, поскольку VT52 - этот тот же эмулятор ДВК, только настроенный специфическим образом - в его конфиг можно добавить и модули типа перфолент, только что то мне подсказывает, что работы с ним через терминальный (ака последовательный) канал как с HX не получится, так есть мультиплексор (в эмуляторе) для терминального канала под HX, но нет (ну или по крайне мере я не знаю про него) аналогичного мультиплексора под перфоленты.

Так что только через HX и свой (аналог абсолютного) загрузчик под это дело.

AFZ
13.08.2021, 21:35
ИМХО, никто не мешает подсунуть вместо HX.DSK свой файл, который в нулевом блоке будет содержать копию стандартного HX-ного с поправкой адреса, куда надо читать блок 1 и счетчика слов для этого чтения, а в блоках 1-n расположить SAV-файл со своей программой. Если SAV-файл обычный (собранный с 1000), то и начальный адрес трогать не надо. Ну, и, при нужде, подправить адрес запуска. Все! И с ЛДА возиться не надо!

Patron
16.08.2021, 11:27
ИМХО, никто не мешает подсунуть вместо 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 - загрузка будет начинаться сразу после запуска эмулятора.

Woxem
18.08.2021, 16:08
Patron, так вить хочется без odt loadera грузится чтобы просто набиралось 177560L и поехало все
Просто на 9600 скорости не особо хочется каждый раз запускать сначало рт-11 а следом софт

Woxem
19.08.2021, 10:50
AFZ, а что делать если программа обитает в адресах 144000 и выше? Вот и остаётся только lda

AFZ
19.08.2021, 12:41
Варианта всего 3:
1. Пересобрать программу с адреса 1000
2. Записать в блоки 1-ххх файла HXSYS.DSK содержимое блоков 100-yyy (0144-zzz) твоего SAV-файла, а начальный адрес загрузки указать 144000
3. Записать в блок 1 абс. загрузчик и маленькую программулю, которая перешлет его на место и отдаст ему управление.

Вариант 3, конечно, сложнее. придется еще изобретать процедуру передачи данных через порт терминала, но, наверное тоже можно. А вариант 2 делается в одно-два движения...

Woxem
19.08.2021, 20:45
Все 3 варианта я пытался реализовать, но пока только голый абс лоадер + лда отправленные в порт через тера терм после 177560л, мозгов на большее не хватает по этому прошу патрона

Patron
20.08.2021, 18:24
так вить хочется без 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

Woxem
20.08.2021, 19:47
Patron, слушай а можно отключить в odt loadere ожидание @ чтоб он просто отправлял фаил

Patron
20.08.2021, 22:10
а можно отключить в odt loadere ожидание @ чтоб он просто отправлял файл
Как отправлял файл?

Кто будет принимать файл со стороны ДВК, если всё, что там есть - пультовая программа с интерфейсом Micro-ODT.

ODT-лоадер работает с Micro-ODT, выдавая команды Micro-ODT в ответ на промпт ( по умолчанию - @).

Всё, что делает ODT-лоадер - можно сделать руками с клавиатуры. Как руками с клавиатуры "отправить файл" в пульте ДВК?

Woxem
26.08.2021, 12:42
Patron, а есть ли возможность на основе программы открыть второй виртуальный порт к которому можно было бы подключать другую программу? (Про программы сплитеров знаю просто интересно вдруг такой функционал есть и уже встроен к примеру превращение физического сиреал в tcp ip при этом оставляя функции терминала)

Hunta
29.08.2021, 12:40
Добрый день :)
Patron, а можно добавить в конфиг VT52 второй COM порт (с указанием скорости), что бы через него с HX сервером работать? Посмотрел HX_COM_(176560).cfg, сделал по аналогии, но как то не заработало и скорость не понятно как указать.
Пока обошёл проблему запуском второго экземпляра VT52 с нужными настройками.

Patron
03.09.2021, 22:04
а можно добавить в конфиг 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

Hunta
03.09.2021, 22:49
Patron, спасибо! С первой частью я сообразил - тут как раз помог HX_COM_(176560).cfg, а вот вторую часть - не догадался :)

А как насчёт скоростей - 230400, 460800, 921600?

Patron
04.09.2021, 14:55
А как насчёт скоростей - 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_.

Hunta
04.09.2021, 15:18
Скорость в настройках можно указывать и просто числом
Если просто числом - то будет просто попытка это число передать Windows как скорость порта?

- - - Добавлено - - -

Попробовал - выставляет 256000...

- - - Добавлено - - -

В смысле попробовал выставить 921600 - эмулятор VT52 показал 256000
У меня usb com порт - он показывает в настройках 230400, 460800, 921600
Может, в случае указания числа просто его и передавать в Windows? Всё равно определяются те же самые значения?

Patron
04.09.2021, 19:58
Может, в случае указания числа просто его и передавать в Windows? Всё равно определяются те же самые значения?
Если бы это делала какая-то подпрограмма, работающая только в этом месте - можно было бы её подправить. Но это делает объект, который используется для параметров вроде TRUE/FALSE, чтобы в конфиге можно было словом написать "TRUE" или числом задать 1. И если кто-то вместо 1 напишет 2 - объект сам исправит на 1, потому что у поименованных параметров есть только фиксированные значения.

А чтобы можно было на выбор использовать в параметре и поименованные значения, и "безымянные" (что само по себе идея весьма здравая) - нужен специальный объект, которого пока нет.

Hunta
04.09.2021, 20:06
Ясно. Ну, пока получается, что максимум, что можно использовать - 115200. Так как варианты 128000 и 256000 - пока не встречал.. Хотя, как эксперимент, попробую (позже) поставить 128000 и 256000 и посмотреть, что получится... :)

Woxem
07.09.2021, 09:23
Patron, а есть ли полноэкранный режим ?

Patron
17.09.2021, 13:17
а есть ли полноэкранный режим ?
Нет, только оконный.

rrp
17.09.2021, 20:30
Добрый вечер!
Вопрос не совсем в тему (да простит меня модератор) - в эмуляторе ДВК можно сделать отдельное окно для графического дисплея?

Patron
04.09.2022, 18:02
.

Обновилась текущая сборка эмулятора терминала типа 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.

Woxem
06.09.2022, 09:19
Здравствуйте, а как добавить задержкау Бин сендеру просто не все версии эл.60 имели разрешение приема передачи и по этому приходится ставить задержку на примерное время обработки

Patron
07.09.2022, 20:55
Здравствуйте, а как добавить задержкау Бин сендеру просто не все версии эл.60 имели разрешение приема передачи и поэтому приходится ставить задержку на примерное время обработки
Пока образ файла не выбран - передача не начнётся. Программная задержка при передаче между отдельными байтами не поддерживается.

Woxem
08.09.2022, 07:06
Загрузка на реальных эл.60 двк-1,2 прошла успешно спасибо большое за обновления (размер софта прошедшего загрузку через binsender 1000-157600)

Patron
04.07.2024, 16:53
Опробовал Ваш эмулятор 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

mig_25
04.07.2024, 17:26
Patron, огромное спасибо, будем пробовать!

https://pic.maxiol.com/thumbs2/1720103162.1504645828.vt52bmrksfilkn.png (https://pic.maxiol.com/?v=1720103162.1504645828.vt52bmrksfilkn.png&dp=2)

Patron
14.10.2024, 17:30
.

Обновилась текущая сборка эмулятора терминала типа 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"

Woxem
22.10.2024, 09:31
.

Обновилась текущая сборка эмулятора терминала типа 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?

Patron
08.11.2024, 13:24
.

Обновилась текущая сборка эмулятора терминала типа 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%, как во всех предыдущих версиях эмулятора.

Patron
24.11.2024, 17:30
У терминала есть состояние 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)

MiX
03.12.2024, 15:53
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 == выключен) и работает.