PDA

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



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

Patron
15.02.2014, 13:56
А ларчик то просто открывался.Следующий уровень сложности - перенести кнопку выбора образа HX и кнопки "Включить сжатие HX" и "Boot HX0" с нижней полосы на полосу статуса терминала.

MiX
16.02.2014, 11:25
:)Сделано! Конфиг назвал PDP11+COM+VT52.

PDP11 использует COM2
VT52 использует COM3

Оба должны быть соединены нуль модемным кабелем либо виртуальным com0com драйвером.

MiX
12.03.2014, 13:18
Вчера попробовал настройки 15ИЭ. Цвета конечно изменились но где строка состояния терминала? А именно 9600 0000 0000 0000 0000 итд. И в СМ7209 внизу посередине должно быть "MIX" (не путать с ником) обозначающий смикшированый канал связи.

Если у вас нет прошивок то я могу скинуть от СМ7209. От 15ИЭ возможно где-то в сети есть. Обе прошивки под КР580ВМ80.

Patron
12.03.2014, 16:24
где строка состояния терминала?В этом универсальном эмуляторе терминала её нет и не будет.

Позже будут сделаны отдельные эмуляторы терминалов КСМ и 15ИЭ-00-013 и там всё это будет.


я могу скинуть от СМ7209Можно прицепить архив с прошивкой прямо к сообщению.

MiX
12.03.2014, 17:26
Я так понимаю от 15ИЭ-00-013 прошивки у вас есть.

В СМ7209 там одна ПЗУ впаяна, вторая в панельке. Которая впаяна там основная программа+ASCII во второй КОИ7 я так думаю. Но сначала прошивку попробую поискать в сети, если не найду придется ПЗУ выпаивать.

hobot
12.03.2014, 17:39
Там же имеется в виду просто настройки цвета под 15ИЭ, а не эмуляция 15ИЭ )


VT52 - или очень похожий
И наверняка у него с ком-портом-шнуром ничего переделывать-выдумывать не надо)

http://upload.wikimedia.org/wikipedia/commons/c/c6/ORION-KFKI_ADP-2052.jpg

MiX
12.03.2014, 17:51
Красивый терминальчик.

MiX
12.03.2014, 18:07
Прошивка СМ7209 микросхемы М27128AFI

На наклейке написано: 900 М7 V.00

Позже считаю 2ю когда выпаяю.

И по поводу 15ИЭ
У shattered в эмуляторе строка состояния имеется возможно что у него и прошивки есть.

hobot
12.03.2014, 20:36
У shattered в эмуляторе
Я знаю у кого ещё строка состояния есть в эмуляторе!
Но я никому не скажу ! )

MiX
12.03.2014, 21:07
Прошивка СМ7209 микросхемы К573РФ5

На наклейке написано 900 М3(8?) GZ1(I?)

Фото платы: http://s011.radikal.ru/i317/1403/6b/e42bafd82459.jpg (http://www.radikal.ru)

MiX
13.03.2014, 22:04
ANSI кодировка в помощь.

hobot
13.03.2014, 23:09
ANSI кодировка в помощь.
Там какая-то мешанина из буковок - ты где такой чудо файл выудил?

---------- Post added at 23:09 ---------- Previous post was at 23:08 ----------

У меня по терминалу VT52 и аналогам
вопрос такой
<ESC>F Переход в графический режим
- что это в принципе означает? ) Что они под граф.режимом подразумевают)

Patron
13.03.2014, 23:13
Что они под граф.режимом подразумевают)Вот что:

if( bGraphicsMode )
{
if( ch == 'a' ) { ch = 0177; }
else
if( ch == 'f' ) { ch = '°'; }
else
if( ch == 'j' ) { ch = '‰'; }
else
if( ch == 'g' ) { ch = '±'; }
else
if( ch == 'i' ) { ch = '…'; }
else
if( ch == 0176 ) { ch = '§'; }
}

MiX
13.03.2014, 23:21
hobot, Разве VT52 поддерживает графику? Там для VT100 и выше.

hobot
14.03.2014, 00:39
Там для VT100 и выше.
Я не про содержание, а про нечитабельность ) Или может
я не так открыл его, но у меня там просто каша из буковок.

---------- Post added at 00:38 ---------- Previous post was at 00:37 ----------

MiX, пожалуста сделайте для полноты эмуляции звукозапись систем охлаждения двк )

---------- Post added at 00:39 ---------- Previous post was at 00:38 ----------

а то Patron уже все почти сэмулировал MX,MY,DW )

MiX
14.03.2014, 01:30
Я не про содержание, а про нечитабельность ) Или может
я не так открыл его, но у меня там просто каша из буковок.

У меня прекрасно открылся Вордпадом.


пожалуста сделайте для полноты эмуляции звукозапись систем охлаждения двк )

Я сменил вентиляторы на тихие 12 вольтовые от PC.

SKcorp.
14.03.2014, 02:09
[/COLOR]MiX, пожалуста сделайте для полноты эмуляции звукозапись систем охлаждения двк )[COLOR="Silver"]


Я же делал уже.

http://zx.pk.ru/showpost.php?p=361283&postcount=1056

Titus
14.03.2014, 02:36
Я знаю у кого ещё строка состояния есть в эмуляторе!
Но я никому не скажу ! )

Называй уж смело, что это Emustudio)

Titus
14.03.2014, 05:28
Прошивка СМ7209 микросхемы К573РФ5

На наклейке написано 900 М3(8?) GZ1(I?)

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

http://i058.radikal.ru/1403/02/5abcbfebcefb.png

---------- Post added at 05:28 ---------- Previous post was at 05:26 ----------

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

form
14.03.2014, 10:41
В СМ7209 там одна ПЗУ впаяна, вторая в панельке. Которая впаяна там основная программа+ASCII во второй КОИ7 я так думаю. Но сначала прошивку попробую поискать в сети, если не найду придется ПЗУ выпаивать.

У меня обе на колодках. Возможно я же когда-то и пересадил на колодку - когда шрифт расковыривал. Только программатора пока не нашел :)

hobot
14.03.2014, 13:30
У меня обе на колодках. Возможно я же когда-то и пересадил на колодку - когда шрифт расковыривал. Только программатора пока не нашел
Даешь эмулятор железячек которые у form'a стоят с родными шрифтами мониторами, только КЦГД(181) и КГД к ним прикрутим и будет супер ДВК !!! )
А потом весь этот эмуль в отдельном корпусе размером с флешку и сразу туда
RSX с RTEM пропатченные загнать и всю библиотеку софта которая готова будет запускаться !!! )


Я же делал уже.
Ага! Я видимо пропусти, забрал WAV файл, погляжу как и что он.
В принципе ИМХО: для эмуляции нужно три семпла подготовить
(СТАРТОВЫЙ - "микро ЭВМ стартанула") -> (подогнать без щелчка зацикленный гул который можно крутить или не крутить (настройка звука) по кругу - loop) -> (ВЫКЛЮЧЕНИЕ подогнать к лупу без щелчка). Надо имеющийся WAV изучить\прослушать.

---------- Post added at 12:52 ---------- Previous post was at 12:49 ----------


Называй уж смело, что это Emustudio)
Нет я тебя в тему обратно заманил - каварно так )

---------- Post added at 13:30 ---------- Previous post was at 12:52 ----------


Я же делал уже.
Слишком короткий !!! По сути это стартовый момент, и качество очень плохое.
Продолжительность работы (записи) хотя бы 30 секунд а лучше минуту-две и
спад оборотов нужен - момент выключения.

MiX
18.03.2014, 20:04
Есть возможность просканировать клавиатуру МК-035 от терминала СМ7238. Только вот нет схемы. Поделитесь у кого есть, или хотя бы распиновкой.http://www.музейкомпьютеров.рф/museum/33/cm7238-3.jpg

Patron
21.03.2014, 17:47
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_21.03.14_21-44

Изменения:

1. Исправлена вставка из буфера обмена в окно терминала - теперь конец строки всегда вставляется как одиночный код <CR>. Также при вставке символы '¬' теперь преобразуются в коды <LF>, что позволяет при работе в пульте вставлять через буфер обмена скрипты из файлов *.odt.

2. Теперь при выводе на системную консоль предупреждений и сообщений об ошибках - системная консоль активируется. Режим активации системной консоли определяется значением параметра ActivationMode в файле Config.ini ( возможные значения: None, First, Error, Warning, Any ).

...

MiX
22.03.2014, 12:40
Подключил клавиатуру МК-035 параметры 8N1 4800. Дамп при включении 1000 000 клавиатура насколько раз пикает, потом при нажатии любой кнопки транслирует код 377 постоянно.

Походу с клавиатурой что-то не так.(?)

P.S. Извиняюсь что не в тему.

MiX
22.03.2014, 19:59
Позже будут сделаны отдельные эмуляторы терминалов КСМ и 15ИЭ-00-013 и там всё это будет.

Можно прицепить архив с прошивкой прямо к сообщению.

Не знаю надо или нет: прошивки КСМ.

Titus
22.03.2014, 20:24
Не знаю надо или нет: прошивки КСМ.

Все есть.
Хотя бы в комплекте к единственному эмулятору КСМ - EmuStudio.

Ваш дамп отличается одним байтом, как будто системное ОЗУ не по адресу 0x2000..0x20FF, а на 0x100 байт ниже. Но там ПЗУ. Скорее всего ошибка чтения.

Patron
26.03.2014, 17:11
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_26.03.14_15-57

Изменения:

1. Исправлены ошибки в объектах UKNC_NET_Loader и UKNCcomSender.

2. Загрузчик Boot_RT-11_from_HX0_(177560).bin улучшен до версии v1.3 ( исходник в файле HX Sources\BotHX0.MAC ).

3. Добавлены файлы HX_COM_(176560).cfg, HXsys54_(176560).DSK и Boot_RT-11_from_HX0_(176560).bin, позволяющие производить загрузку через порт с адресом 176560, при подключении его к дополнительному COM-порту PC.

...

MiX
27.03.2014, 00:01
Интересно было бы на порт 176560 попробовать TU-58 добавить.

form
12.05.2014, 12:27
Предложение небольшое - реализовать опциональную поддержку RFC2217 для улучшения возможностей удаленной загрузки :)

Patron
13.05.2014, 02:22
реализовать опциональную поддержку RFC2217Сначала ( не знаю когда ) появится поддержка Telnet.

form
01.06.2014, 19:11
Интересная вещь обнаружилась в win8.1 - если окно терминала активно, блокируется кнопка Start. Возможно тычок мышью в кнопку с точки зрения программы является нажатием на соответствующую клавишу... Интересно было бы отдавать системе эти клавиши - в терминале они все-равно не нужны :)

---------- Post added at 22:11 ---------- Previous post was at 22:00 ----------

И еще есть интересная идейка - пока в стадии обдумывания: возможность добавить кнопки "HALT" и "RESTART", индикаторы "DC On", "Run" и цифровой 00-77. И все это через параллельный порт подключить к PDP-11 :D

MiX
01.06.2014, 22:04
form, Почему через параллельный?

form
01.06.2014, 22:05
form, Почему через параллельный?

Да не важно через какой. Параллельный удобен тем, что никаких вообще внешних устройств не нужно кроме кабеля :)

MiX
01.06.2014, 22:12
form,

Пример доступа к параллельному порту посредством функций WINAPI показан далее:



#include <windows.h>

#include <stdio.h>

. . .

HANDLE hLPT;

char *buf = "Any string"; DWORD bytes;

. . .

hLPT = CreateFile("LPT1",

GENERIC_READ | GENERIC_WRITE,

0, NULL, OPEN_EXISTING,

0, NULL);

if (hLPT == INVALID_HANDLE_VALUE)

{

printf("Could not open file (error %d)\n", GetLastError());

return 0;

}

bool fSuccess = WriteFile(hLPT, buf, strlen(buf),

&bytes,

NULL);

form
01.06.2014, 22:14
form,

Пример доступа к параллельному порту посредством функций WINAPI показан далее

Ну мне это мало интересно - я-то програмить в виндовсе ничего не планирую. Ну разве некоторые программки которые захочу сделать доступными не только в UNIX/VMS :)

Vamos
02.06.2014, 00:20
И еще есть интересная идейка - пока в стадии обдумывания: возможность добавить кнопки "HALT" и "RESTART", индикаторы "DC On", "Run" и цифровой 00-77. И все это через параллельный порт подключить к PDP-11
Хм.. и что делать тем у кого параллельного порта нет?

form
02.06.2014, 00:24
Хм.. и что делать тем у кого параллельного порта нет?

Наверное не подключать эти фичи? ;)
Если внимательно прочитать сообщение, то видно, что идея была - сделать возможность добавления, а не безусловное добавление...
И кроме параллельного порта, еще как минимум требуется то к чему все это подключить...

Vamos
02.06.2014, 00:32
Любая идея должна учитывать современные реалии оборудования а не простоту реализации ;)

form
02.06.2014, 00:34
Любая идея должна учитывать современные реалии оборудования а не простоту реализации ;)

Я дал саму идею - добавить функционал, а про порт (если склероз не изменяет) написал "например" ;)
Реализаций может быть сколько угодно. Важна сама идея - полное управление и контроль в одном месте :D

MiX
02.06.2014, 10:54
В эмуляторе VT52 актуальна будет печать через LPT, так как любой терминал имеет возможность подключить принтер. А управление через LPT можно как временный вариант применить программку Parallel Port Viewer. Для тех у кого нет LPT можно приобрести мультикарту.

form
02.06.2014, 11:11
В эмуляторе VT52 актуальна будет печать через LPT, так как любой терминал имеет возможность подключить принтер. А управление через LPT можно как временный вариант применить программку Parallel Port Viewer. Для тех у кого нет LPT можно приобрести мультикарту.

Ну, положим, не ко всем терминалам можно подключить принтер, ну да ладно, не суть важна... Думаю именно принтер актуальнее будет достать через windows и не ограничиваться привязкой к LPT. Да и принтер обычно куда актуальнее как принтер PDP-11, а не как принтер терминала... В этом плане (еще идейка) можно было бы сделать эмулятор принтера по образу и подобию, вешать его на COM порт и использовать драйвер LS в RT-11 (я собственно так и делаю когда нужно что-то напечатать - подключаю окно SecureCRT с логом сессии - обычный LP пока никуда не подключен) :)

А вот кстати тут говорилось про программинг параллельного... Кто силен в виндовсе, если бы написал программку, эмулирующую параллельный принтер (с помощью двухстороннего обмена) - цены б тому не было :D

Vamos
02.06.2014, 11:27
А вот кстати тут говорилось про программинг параллельного... Кто силен в виндовсе, если бы написал программку, эмулирующую параллельный принтер (с помощью двухстороннего обмена) - цены б тому не было
Что-то уже было написано: http://zx-pk.ru/showthread.php?t=16148


Для тех у кого нет LPT можно приобрести мультикарту.
Ну и какие варианты можете предложить на USB? :)

MiX
02.06.2014, 11:52
Ну и какие варианты можете предложить на USB? :)

Например вот: http://sidex.ru/view.php?id=250896#%D0%BEbzor

Единственное, узнай будет ли LPT по адресу 378.

MiX
02.06.2014, 14:11
Да и принтер обычно куда актуальнее как принтер PDP-11,

Уже просил: http://zx.pk.ru/showpost.php?p=661936&postcount=319

Никак тесты не проходят Т5,Т6. Правда еще заглушку на LPT надо.

form
02.06.2014, 14:19
Уже просил: http://zx.pk.ru/showpost.php?p=661936&postcount=319

Никак тесты не проходят Т5,Т6. Правда еще заглушку на LPT надо.

Ну, как уже писал, в RT-11 принтер - это не обязательно LP. А LS подключить элементарно :)

---------- Post added at 17:19 ---------- Previous post was at 17:13 ----------

принтер (http://pdp-11.org.ru/~form/files/pics/1183/lp.png) ;)

MiX
02.06.2014, 14:24
Ну а как в реале подключать к примеру D100. Эмулятор для меня как инструмент чтоб можно было сравнить если что-то не идет.

form
02.06.2014, 14:26
Ну а как в реале подключать к примеру D100. Эмулятор для меня как инструмент чтоб можно было сравнить если что то не идет.

Если нужно живое железо проверить эмулятором - E11 и CHARON отлично помогут - прекрасно подключают живое железо, в том числе диски-ленты... Про терминалы-принтеры-cетевухи и говорить нечего :)

MiX
02.06.2014, 14:32
form, Ну это уже не тема VT52 :)

P.S Если что, спрошу в личке ок? ;)

form
02.06.2014, 14:32
form, Ну это уже не тема VT52 :)

P.S Если что, спрошу в личке ок? ;)

Да без проблем :D

form
04.06.2014, 02:33
Заглянул между делом в код загрузчика HX...


Mov #340, -(SP)
Mov #START, -(SP)
RtI


Конструкция логически не особо верная так как RTI не всегда позволяет таким способом установить приоритет процессора. В пульте этот метод сработает в силу его особенностей, но... если есть пульт "@", то можно смело подразумевать наличие MTPS. А еще проще просто добавить в начало скрипта загрузчика явную установку RS и R6 через пульт :)

Patron
04.06.2014, 12:42
проще просто добавить в начало скрипта загрузчика явную установку RS и R6 через пультГениально! Возможно, так и сделаю.

form
04.06.2014, 12:52
Гениально! Возможно, так и сделаю.

Причем именно в таком порядке: RS на 340, а потом R6 чтобы быть уверенным, что именно тот R6 установлен.

MiX
08.06.2014, 00:56
Интересно, а как с контрольной суммой дела обстоят в НХ. В одних случаях сжатие проходит, а в других нет (HX bad pakcet).

Patron
08.06.2014, 13:54
Интересно, а как с контрольной суммой дела обстоят в НХ.Для таких вопросов (возможно) больше подходит тема: Протокол HX - имитация блочного устройства с последовательным интерфейсом (http://zx.pk.ru/showthread.php?t=20683).

Обычно причиной несовпадения контрольной суммы является потеря байта в порту. Такое происходит, когда PC не успевает остановить передачу очередного байта после снятия портом ДВК сигнала RTS. Или когда линия RTS ( от ноги 31 у ВП1-065 ) не разведена.

form
10.06.2014, 19:55
Копаясь в DECserver, выяснил, что telnet listener'ы которые он мапит в свои порты или в консоль умеют работать как по телнету так и просто по чистому IP - настраивается командами

Local> SET TEL LIS 2007 TY RAW
Local> SET TEL LIS 2007 TY TELтак что если что - могу по просьбам трудящихся давать доступ для VT52 эмулятора к консоли 11/83, консоли AlphaServer DS10 или к другим портам 11/83 (на DZQ11, DLV11 или DHV11) :)
Или к консоли DECserver откуда по умолчанию видно некоторые HECnet'овские сервисы
Local> sh servi

Service Name Status Identification

B4GATE Available Linux 2.6.32-21-generic
BEEFY Available Linux 3.8.0-26-generic
BIGSYS_CONS Available PDP-11/83, Novosibirsk, RU
BOPOHA Available OpenVMS Alpha V8.4, Novosibirsk, RU
CHIMPY Available @SYS$MANAGER:ANNOUNCE.TXT
CTAKAH Available RSX-11M+ V4.6, Novosibirsk, RU
CTAKAH_CONS Available Ubuntu 12.04, Novosibirsk, RU
CTEPBA_CONS Available AlphaServer DS10, Novosibirsk, RU
GORILLA Available Linux 3.5.0-17-generic
HPIVAX Available @SYS$MANAGER:ANNOUNCE.TXT
KUHAVX Available @SYS$MANAGER:ANNOUNCE.TXT
LABVAX Available @SYS$MANAGER:ANNOUNCE.TXT
MIM Available RSX system at Update, Sweden
PSILOCYBE Available Linux system at Update, Sweden
PYFFLE Available Linux 3.2.0-40-generic-pae
SHAMS Available @SYS$MANAGER:ANNOUNCE.TXT
TRICHOLOMA Available Linux system at Update, Sweden
Проверка показала, что загрузка по HX через raw telnet listener не проходит - видимо из-за того, что скорость передачи по сети не дозируется и, возможно, отправляется не посимвольно, а сразу бльшой пачкой...

---------- Post added at 22:55 ---------- Previous post was at 22:51 ----------

Хотя в идеале конечно лучше реалзовать хотя бы минимальную поддержку telnet, чобы иметь возможнсть посылать BREAK.

MiX
10.06.2014, 20:45
Проверка показала, что загрузка по HX через raw telnet listener не проходит - видимо из-за того, что скорость передачи по сети не дозируется и, возможно, отправляется не посимвольно, а сразу бльшой пачкой...

ЛОГ в студию.


Хотя в идеале конечно лучше реалзовать хотя бы минимальную поддержку telnet, чобы иметь возможнсть посылать BREAK.

В конфигурации СОМ_4 есть кнопка BREAK но она для СОМ-порта. Можно попробовать перебросить порт с помощью программы TCP COM Bridge.

form
10.06.2014, 20:52
В конфигурации СОМ_4 есть кнопка BREAK но она для СОМ-порта. Можно попробовать перебросить порт с помощью программы TCP COM Bridge.

С COM портом проблем нет - сам когда-то и выпросил поддержку BREAK для него :)
А вот по сети сложнее. RAW TCP коим сейчас пользуется эмулятор не предусматривает такой возможности... В TELNET есть функция передачи BREAK (равно как и прочие функции касающиеся сериал порта), и DECserver умеет транслировать TN break в обычный...

---------- Post added at 23:52 ---------- Previous post was at 23:47 ----------

Я думаю для начала неплохо бы реализовать простейшую поддержку телнета - тупо отвергать все фичи кроме попыток установки посимвольного режима (возможно это и не нужно - не силен в телнете и не знаю может ли сервер предложить режим), трансляции <IAC><IAC> <> 377 и собственно BREAK :)

MiX
10.06.2014, 20:59
form, Если речь идет о эм. VT52 то подразумевается РС с Виндоуз. Ни кто не мешает запустить выше названую программу. Ссылка http://www.aggsoft.com/tcp-com/

form
10.06.2014, 21:02
form, Если речь идет о эм. VT52 то подразумевается РС с Виндоуз. Ни кто не мешает запустить выше названую программу. Ссылка http://www.aggsoft.com/tcp-com/

Не стал смотреть что за программа, скажу только, что с точки зрения windows давно забыл про такие слова как XP и 32bit, а значит и про unsigned (for vista+ x64) драйвера (варианты с нажиманием клавиш и автонажимателями, загружаемыми загрузчиком не рассматриваем), со всеми вытекающими :)
Если известен протокол, мне проще написать реализацию под OpenBSD и сделать на роутере - он у меня воткнут в 4 порт DECserver :)

MiX
10.06.2014, 21:15
давно забыл про такие слова как XP и 32bit, а значит
Тогда в чем эмулятор работает?


Если известен протокол, мне проще написать реализацию под OpenBSD и сделать на роутере - он у меня воткнут в 4 порт DECserver

Для никсов есть свои терминалы в т.ч. и с телнет.

form
10.06.2014, 21:19
Тогда в чем эмулятор работает?

В W8.1 x64 ;)


Для никсов есть свои терминалы в т.ч. и с телнет.

Для никсов (да и для виндовсов) лично для меня вопросов нет - по определению ;)
Вопросы есть конкретно к реализации связки VT52 эмулятора (представленного в этой теме) через сеть :)
Начал я с малого - с просьбы реализовать BREAK для COM, а дальше по ситуации - нареканий множество (не к терминалу как к таковому, а к HX), с другой стороны - пока что HX в принципе непригоден для работы - только как начальный шаг для установки системы - а значит и вопросов особо нет :)

Patron
11.06.2014, 01:32
HX в принципе непригоден для работыЯ сделал вариант драйвера HX, работающий по прерываниям, но он в десятки ( если не в сотни ) раз медленнее, потому что входит в системный обработчик драйверных прерываний при приёме каждого байта.

form
11.06.2014, 03:32
Я сделал вариант драйвера HX, работающий по прерываниям, но он в десятки ( если не в сотни ) раз медленнее, потому что входит в системный обработчик драйверных прерываний при приёме каждого байта.

Ну тут выбор между работоспособностью системы и скоростью которую можно применить только в ограниченном объеме :)
Кстати DD тоже входит в обработчик, но скорость его отнюдь не ниже чем у HX.

Patron
11.06.2014, 11:41
Кстати DD тоже входит в обработчик, но скорость его отнюдь не ниже чем у HX.Во-первых ( в смысле числа тактов процессора на один байт ), скорость у DD раза в 3 ниже ( что не играет роли при скорости процессора 1 MIPS, потому что максимальная скорость порта при этом в ~10 раз ниже максимальной пропускной способности драйвера ), а во-вторых там используют хитрый способ, не вызывая INTEN при приёме байтов пакета.

Сейчас альтернативный драйвер HX выглядит так: HY.zip (http://emulator.pdp-11.org.ru/misc/HY.zip)

form
11.06.2014, 11:46
хитрый способ, не вызывая INTEN при приёме байтов пакета.

Чего ж тут хитрого - все элементарно - если не требуется долгих действий, никто не заставляет. Вручную пишешь xxINT: и сам обрабатываешь все прерывание :)

form
12.06.2014, 08:51
Посмотрел HY немного.
Проверял как чистый диск - без совмещения (если он вообще предусматривает такое).
Насчет скорости - проигрыша не заметил.
В XM/ZM работает.

Беглый взгляд на исходники:


.IIF NDF MMG$T, MMG$T =: 0
.IIF NDF ERL$G, ERL$G =: 0
.IIF NDF TIM$IT, TIM$IT =: 0


бесполезные строчки, они уже есть в .DRDEF, если же хочется переопределять, то лучше сделать файл префикса в котором определять настройки и подключать его прилагаемым COM файлом... в этом случае драйвер будет совместим с SYSGEN (против драйвера в котором эти параметры задаются вручную без отдельного файла).


.DrSet ERLG, 1, O.GEN, NO
.DrSet TIMIT, 4, O.GEN, NO

смело в мусорку как нерабочий код - нельзя перестроить драйвер с поддержкой/без поддержки device timeout и error logging в драйвер с поддержкой и наоборот всего лишь изменением H.GEN. Такое возможно только если драйвер не использует прерываний (или использует свою реализацию) или содержит полный вектор для системных подпрограмм драйвера и при перенастройке меняет ссылки на него (что опять таки требует отказаться от макрокоманд .DRAST, .FORK), что в любом случае требует дополнительных шагов которые не выполнены (попутно, добавка .BLKW в конце не поможет)


.ASCIZ /R HY.SYS/

тут нужно или учесть, что драйвер может называться не HY.SYS (XM, ZM к примеру), в идеале лучше вообще отказаться от использования команды "R", а просто подгружать драйвер прямо из SET и запускать (или даже не выходить за рамки пространства SET вовсе - как это сделать можно посмотреть например в LD)


.Word CHAIN$ ! OVLY$

...и соответственно OVLY$ станет не нужен ибо будет по определению...

Patron
12.06.2014, 12:23
Проверял как чистый диск - без совмещения (если он вообще предусматривает такое)Это чистый диск. Совмещение (по идее) невозможно.

form
12.06.2014, 12:24
Это чистый диск. Совмещение (по идее) невозможно.

Ну я так и понял из сообщения которое он выводит.
В целом вполне работает.
Чуть позже сделаю патч чтобы драйвер и под TSX собирался - пусть будет :)

Patron
12.06.2014, 12:26
просто подгружать драйвер прямо из SETЗдесь меня ограничило непонимание, как из обработчика SET узнать спецификацию файла "сетуемого" драйвера или получить открытый канал чтения/записи к этому файлу.

form
12.06.2014, 12:31
Здесь меня ограничило непонимание, как из обработчика SET узнать спецификацию файла "сетуемого" драйвера или получить открытый канал чтения/записи к этому файлу.

Знать не надо, он открыт на канале 17 (15.).

---------- Post added at 15:31 ---------- Previous post was at 15:27 ----------

И еще на тему запускаемых драйверов полезно посмотреть исходники SL - там для ON делается проверка, что это последняя опция в строке и дается предупреждение, что остальное игнорится если не так.

Patron
12.06.2014, 13:46
Насчет скорости - проигрыша не заметил.Когда нет управления потоком - байты не могут приходить медленнее скорости порта. Разница между различными драйверами только в том, успеет драйвер обработать предыдущий байт до прихода следующего или нет. Если (например) HX тратит 4 цикла шины на каждый принимаемый байт, а HY - 20 циклов шины, то при скорости процессора 1 MIPS и скорости порта 9600 - оба дайвера успеют обработать байты, а на ДВК-1 при скорости порта 57600 - HX успеет, а HY - нет.

Можно провести тест, запустив HY при максимальной скорости порта и при выключенном кеше процессора. Если HY справится в таких условиях - справится и на УКНЦ.

form
12.06.2014, 13:52
Когда нет управления потоком

А это всегда для DL(V)-11. Ибо в оригинале там даже сигналов таких не предусмотрено. Есть специальные DL(V)11-E/-F для сетевых функций (и полностью специализированные сетевые сериал контроллеры вроде DU(V)11. Но и там есть только управление сигналами, а взять это управление на себя должен софт. Так что управление потоком - это отдельный конкретный случай...


57600

Даже при скорости 19200 уже терминальный драйвер не будет успевать за клавиатурой на родных DL(V)11. На всех без исключения. Достаточно попробовать включить такую скорость и попытаться в SL поредактировать командную строку. Опять таки речь об обычных DL(V)11...

Patron
12.06.2014, 14:00
Даже при скорости 19200 уже терминальный драйвер не будет успевать за клавиатурой на родных DL(V)11Ну, в HY всё же гораздо меньше накладных расходов на байт, чем в терминальном драйвере. Просто в HY в разы больше накладных расходов, чем в HX.

form
12.06.2014, 14:02
Ну, в HY всё же гораздо меньше накладных расходов на байт, чем в терминальном драйвере. Просто в HY в разы больше накладных расходов, чем в HX.

Их легко уменьшить если убрать .DRAST - он там по сути не нужен - не так много там действий выполняется на уровне прерывания, чтобы считаться с остальными устройствами.

Patron
12.06.2014, 14:09
Их легко уменьшитьЕсли будет работать на всех скоростях порта при выключенном кеше - на первое время сойдёт и так.

form
12.06.2014, 14:13
Если будет работать на всех скоростях порта при выключенном кеше - на первое время сойдёт и так.

На всех наверное не будет ни при включенном ни при выключенном ибо, как уже говорил, у обычных DL(V)11 никакого управления потоком нету. Но не уверен, что и без прерываний будет :)
Могу проверить до 38400 - это максимум для DL(V)11...

---------- Post added at 17:13 ---------- Previous post was at 17:11 ----------

Но 38400 я могу выставить только для консольного порта. Для DLV11-J надо разматывающиеся перемычки переставлять - не-е-е :)

Patron
12.06.2014, 14:21
На всех наверное не будет ни при включенном ни при выключенном ибо, как уже говорил, у обычных DL(V)11 никакого управления потоком нету.Простая математика. На скорости 9600 передаётся около 1000 байтов в секунду. Процессор успевает провернуть за секунду около 1000'000 циклов шины, т.е. примерно 1000 циклов на байт. Если HY тратит 20 циклов на байт - при скорости процессора 1 MIPS он сможет синхронно работать с портом на скорости до 9600 x 50 = 480'000 bps.

form
12.06.2014, 14:24
Сейчас докопируется файлик с ленты, могу попробвать перекльчиться в 38400 и потестить... Какие предложения на предмет того какое действие выполнить для теста?

Patron
12.06.2014, 14:28
Любой длительный приём байтов, вроде: DIR/BAD DP:
Худший случай - когда между прерываниями байтов влезают прерывания более высокого уровня ( таймер, например ), поэтому если можно повысить частоту таймера - это дополнительный уровень сложности.

form
12.06.2014, 15:15
Любой длительный приём байтов, вроде: DIR/BAD DP:
Худший случай - когда между прерываниями байтов влезают прерывания более высокого уровня ( таймер, например ), поэтому если можно повысить частоту таймера - это дполнительный уровень слжности.

OK, сделаю DIR/BAD HY:, переключив скорость LTC на 800Hz :)

---------- Post added at 17:36 ---------- Previous post was at 17:29 ----------

Только сначала вспомнить что там надо поменять в системе чтобы консоль перевесить...

---------- Post added at 17:41 ---------- Previous post was at 17:36 ----------

Хотя в сущности чего вспоминать - сгенерить многотерминалку и не включать 177560/60 в конфигурацию :)

---------- Post added at 18:14 ---------- Previous post was at 17:41 ----------

Пока вопрос - где скорость порта настраивается в конфиге? - навскидку не вижу

---------- Post added at 18:14 ---------- Previous post was at 18:14 ----------

или берется из секции [TerminalPort.ini]?

---------- Post added at 18:15 ---------- Previous post was at 18:14 ----------

впрочем таковой не обнаружилось в VT52

Patron
12.06.2014, 15:31
где скорость порта настраивается в конфиге?Если порт один - скорость порта можно задавать прямо в файле Terminal_ComPort_Adapter.ini ( там находятся настройки порта по-умолчанию ).

form
12.06.2014, 18:33
BaudRate =CBR_9600

Отлично, DECserver подхватил как 38400.
Сейчас система дособирается, переткну порты чтобы в DECserver торчал первый, а консоль в нотебяку, переключу скорость и посмотрю...

---------- Post added at 20:23 ---------- Previous post was at 18:34 ----------

Начнем, пожалуй...

Конфигурация:
YLA, 17777560/60, 38400 => HX Server
YLB, 17776500/300, 9600 => RT-11 Console
YLC, 17776510/310, 9600 => TT1
Многотерминальный RT-11, полная поддержка таймера, правильного переключения даты и обслуживания терминалов по таймеру. Тест #1 - минимальные усложнения...

YLA:
Testing in progress - Please wait
Memory Size is 4088 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9


Message 04 Entering Dialog mode

Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key: B DU2


Trying DU2

Starting system from DU2YLB:
RT-11ZM (S) V05.07

.SET TT QUIET
?ETM-I-Date & time - 12-JUN-2014 19:44:26
?ETM-I-Time server - 70-71-BC-50-EB-D0, OpenBSD 5.5 amd64

.R DATE

.Мы не ищем легких путей:
.@D23:TCPIP.RUN

.AS TCP DK

.SR/TE:1/NA:FTP SY:VBGEXE.SAV

.YLC:
Argv: -bh form

FTP-11 V02.40 [15-Jun-2008]

Querying the Domain Name Server
Domain lookup successful
Trying to open TCP connection
220 pdp-11.org.ru FTP server ready.
Username: ftp
331 Guest login ok, send your email address as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> cd hidden/tmp
250 CWD command successful.
ftp> bi
200 Type set to I.
ftp> prom
Interactive mode off.
ftp> ha
Hash printing on (1024 bytes/hash mark).
ftp> lcd sy:
Local directory is sy: --> sy:
ftp> mp *YLB:
.DIR/BAD HY:

Пока все тестилось, весь SY: успел залиться по FTP на роутер и полная заливка была запущена повторно... и еще раз... и еще раз...
?DUP-I-No bad blocks detected HY0:

Итого, таймер 50 Hz, параллельно проверке HY идет I/O на DU, NQ и терминальной линии (FTP печатает hash'и и статистику)...

Сейчас запустим усложненный тест...

---------- Post added at 20:26 ---------- Previous post was at 20:23 ----------

Тест #2: таймер 800Hz:
.VDT

VDT V05.07
*177520/003007 7007
*^C

.DIR/BAD HY:
Но вот что интересно, CPS показывает 545-550 - примерно такой же как и на 9600... Скорость порта 38400... Там какого-нибудь порога в терминале нету? :)
Запустил просто вывод символов туда - 4096 CPS...

---------- Post added at 20:39 ---------- Previous post was at 20:26 ----------

На блоке 520 HY завис, FTP продолжает себе качать...
Видимо потерял прерывание и подвис на ожидании следующего.

---------- Post added at 21:33 ---------- Previous post was at 20:39 ----------

Ну а насчет TSX-Plus все просто - ничего такого фатального кроме инсталяционной прцедуры драйвер не делает, так, что достаточно заключить ее внутри
.IIF NDF, TSX$P TSX$P=0
.IF EQ, TSX$P
.ENDCи все заработает как при загрузке в нижнюю так и в верхнюю память...


.SH DEV
Active Handler Handler Handler
Device I/O Status V. base P. base size CSR Vector
------ ------ ------ ------- ------- ------- ------ ------
TT 0 000004
LD 0 102446
CL 0 016057 053342 000000 254
DU 0 102450 104170 000000 340 172150 154
MU 0 017060 104714 000000 3240 174500 260 254
VM 0 102447 113164 000000 426
HY 0 102763 120000 005134 1110 176500 300 304
DD 0 100034 114036 000000 1242 176510 310 314
LP 0 030003 120000 005125 406 177514 200
LS 0 030041 120000 005112 686 176520 320 324
NL 0 000025 120000 005111 60
EQ 0 007061 120000 005021 3528 174440 120

.DIR HY:
12-Jun-2014
RT11SJ.SYS 78 16-Dec-2012 SWAP .SYS 30 25-Mar-2003
HX .SYS 6 08-Feb-2014 TT .SYS 2 23-Jan-1980
SL .SYS 10 28-Dec-1987 EM .SYS 4 04-Mar-2012
LD .SYS 8 18-Jan-1988 DIR .SAV 19 04-Jul-2002
PIP .SAV 30 31-Oct-1998 DUMP .SAV 9 27-Dec-1983
DUP .SAV 45 27-Dec-1983 UCL .SAV 16 18-Jan-1988
UCL .DAT 9 04-Dec-2011 HAND .SAV 8 08-Nov-2011
HANDLE.SAV 17 06-Sep-1991 EDIK .SAV 22 19-Mar-2003
DAY .SAV 4 13-Apr-2013 DESS .SAV 20 04-Nov-1993
SPEED .SAV 3 28-Nov-1992 MEMORY.SAV 2 03-Sep-1982
KLOP .SAV 13 21-Nov-1988 IND .SAV 58 18-Jan-1988
BINCOM.SAV 24 18-Jan-1988 RESORC.SAV 25 01-Mar-2012
STARTS.COM 1 22-Dec-2012
25 Files, 463 Blocks
1123 Free blocks

.

form
14.06.2014, 12:38
Небольшие косметические вставки в HX:
; .DrPtr LOAD=HXLOAD

. = 0
.RAD50 /HAN/
. = 6
.WORD HXLOAD
.IF DF ...V9
...V9 = ...V9!4
.IFF
.=12
.WORD 244
.ENDC
...
HXLOAD: CMP #12,R3 ;SYSTEM BOOTSTRAP LOAD?
BNE 10$ ;NOPE
MOV @#54,R0 ;RTDATA
BIS #1000,300(R0) ;SET USR NOSWAP
BIS #40,370(R0) ;SET EXIT NOSWAP
10$: RETURN ;RETURN


При загрузке с HX автоматом будет устанавливаться USR и EXIT в NOSWAP.

---------- Post added at 15:38 ---------- Previous post was at 15:30 ----------

В сравнении #12,R3 порядок аргументов важен :)

Patron
14.06.2014, 13:35
Небольшие косметические вставки в HXПо теме HX лучше постить сюда: Протокол HX - имитация блочного устройства с последовательным интерфейсом (http://zx.pk.ru/showthread.php?t=20683).

MiX
08.07.2014, 21:42
Patron, Попробовал загрузится на адрес 176560 но загрузчик по прежнему ждет "собачку",соответственно загрузка не происходит. Что можно сделать?

Patron
09.07.2014, 00:05
Попробовал загрузится на адрес 176560 но загрузчик по прежнему ждет "собачку",соответственно загрузка не происходит. Что можно сделать?Если эмулятор VT52 подключен к порту 177560, а сервер HX к порту 176560 - надо использовать файл конфигурации HX_COM_(176560).cfg из комплекта эмулятора терминала VT52.

Если к порту 177560 подключен не эмулятор терминала, а КЦГД - надо использовать файл конфигурации MS7004+HX_COM.cfg из комплекта эмулятора клавиатуры МС 7004.

MiX
09.07.2014, 01:04
Если эмулятор VT52 подключен к порту 177560, а сервер HX к порту 176560 - надо использовать файл конфигурации HX_COM_(176560).cfg из комплекта эмулятора терминала VT52.

Если к порту 177560 подключен не эмулятор терминала, а КЦГД - надо использовать файл конфигурации MS7004+HX_COM.cfg из комплекта эмулятора клавиатуры МС 7004.

КЦГД используется, эмулятор подключен к плате МС, но я так понимаю что надо и клавиатуру съэмулировать ?

Patron
09.07.2014, 02:25
я так понимаю что надо и клавиатуру съэмулировать ?Эмулятор клавиатуры умеет сам вводить в пульте коды загрузчика, имитируя нажатия кнопок. Если не подключать у PC второй COM-порт с эмулятором клавиатуры - надо вручную вводить загрузчик с реальной клавиатуры КЦГД ( или модифицировать реальную клавиатуру так, чтобы она сама вводила загрузчик ).

MiX
09.07.2014, 10:25
Понял.Тут скорей всего компромиссный вариант напрашивается - подключится между D9 и D10 КЦГД где РС на время ввода кода блокирует ввод с клавиатуры тем самым имитируя клавиатурный ввод. Но в идеале нужен загрузчик в ПЗУ МС -


$ HX0

или

@B
$ HX1

Где НХ0 это загрузка с 177560 а НХ1 с 176560

Можно на эмуляторе это обкатать я потом прошивку в МС зашить. Вот это было бы здорово.:v2_thumb:

form
09.07.2014, 10:27
Понял.Тут скорей всего компромиссный вариант напрашивается - подключится между D9 и D10 КЦГД где РС на время ввода блокирует ввод с клавиатуры тем самым имитируя клавиатурный ввод. Но в идеале нужен загрузчик в ПЗУ МС -

@В или @B
$ HX0 $ HX1

Где НХ0 это загрузка с 177560 а НХ1 с 176560

Можно на эмуляторе это обкатать я потом прошивку в МС зашить. Вот это было бы здорово.:v2_thumb:

Реализовать для ДВК загрузчик с возможностью добавления своих как у меня на 11/83 :)

MiX
09.07.2014, 10:32
Реализовать для ДВК загрузчик с возможностью добавления своих как у меня на 11/83 :)

Это как?

form
09.07.2014, 10:36
Это как?

Проще сослаться на описание KDJ11-B чем расписать :)
В общем случае, есть набор встроенных загрузчиков и есть место в епромине для самописных, есть ROM ODT.
Я как-то для HX даже делал на пробу чтобы командой BOOT грузить прямо из диалога KDJ11-B.

---------- Post added at 13:36 ---------- Previous post was at 13:34 ----------

Во, нашел (http://zx-pk.ru/showpost.php?p=585993&postcount=390)...

MiX
09.07.2014, 10:43
form, Где ж такую епромину найти чтоб на шину МПИ сажалась...Давно бы уже сделал.

form
09.07.2014, 10:45
form, Где ж такую епромину найти чтоб на шину МПИ сажалась...Давно бы уже сделал.

Разработать :)
Хотя бы просто перепрошиваемую из под системы...

MiX
09.07.2014, 10:52
Разработать :)
Хотя бы просто перепрошиваемую из под системы... Эмулятор ПЗУ уже разработан но он не повторяем из за Альтеры (лично мне). Можно конечно и на 588ВГ + РФ2(5) к примеру но габариты... Хочется конечно настоящую епром. А какая у вас стоит?

form
09.07.2014, 11:00
Эмулятор ПЗУ уже разработан но он не повторяем из за Альтеры (лично мне). Можно конечно и на 588ВГ + РФ2(5) к примеру но габариты... Хочется конечно настоящую епром. А какая у вас стоит?

тут (http://pdp-11.org.ru/~form/pdp11-83/) если ткнуть в плату проца видно на фотке что там стоит

---------- Post added at 13:54 ---------- Previous post was at 13:53 ----------

Если плохо читается, могу переснять - есть второй проц никуда не воткнутый - у него только FPA не вставлен, в остальном такой же

---------- Post added at 13:57 ---------- Previous post was at 13:54 ----------


у него только FPA не вставлен, в остальном такой же

Хотя на фотке он и есть - без FPA :)

---------- Post added at 14:00 ---------- Previous post was at 13:57 ----------

вот (http://pdp-11.org.ru/~form/files/pics/84/PICT3916.JPG) еще фотка есть - тот что сейчас воткнут в 11/83...

MiX
09.07.2014, 11:02
Если плохо читается, могу переснять Спасибо не надо. Там АМ27128, вам проще...

form
09.07.2014, 11:03
Спасибо не надо. Там АМ27128, вам проще...

Ну так кто мешает внешнюю плату разработать с чем угодно? :)

MiX
09.07.2014, 11:13
form, Ну нет у меня станка для изготовления печатных плат. Те кто предлагают изготовить выпускают партиями за немалые деньги.

form
09.07.2014, 11:53
form, Ну нет у меня станка для изготовления печатных плат. Те кто предлагают изготовить выпускают партиями за немалые деньги.

У меня есть 5 макетных плат Q-Bus, но они под буржуйскую метрику :(

---------- Post added at 14:53 ---------- Previous post was at 14:51 ----------

Так что если что-то проверить - могу у себя собрать. Правда паяльщик из меня для деталей мельче ГП-5 еще тот :D

MiX
09.07.2014, 12:00
form, Что-то мы съехали с темы. Давай лучше сюда- http://zx-pk.ru/showthread.php?t=22601

MiX
07.08.2014, 19:15
Любой из этих параметров можно изменить в данном файле (тогда изменения коснутся всех создаваемых экземпляров типа Terminal_ComPort_Adapter

Patron, При изменении параметра " StopBits = ONESTOPBITS" постоянно слетает настройка на TWOSTOPBITS. В чём может быть причина?

Patron
08.08.2014, 00:02
При изменении параметра "StopBits = ONESTOPBITS" постоянно слетает настройка на TWOSTOPBITS. В чём может быть причина?Причина в неправильном написании.

Чтобы был один стоповый бит - надо так:



StopBits = ONESTOPBIT

Чтобы было полтора стоповых бита - надо так:



StopBits = ONE5STOPBITS

Все настройки точно копируют значения из DCB structure (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363214(v=vs.85).aspx). Можно использовать текстовое значение (с учётом регистра) или числовой эквивалент из таблицы.

MiX
08.08.2014, 01:47
Спасибо. Предлагаю внести настройки в следующий релиз уже в самой программе. То есть менять на "лету".

---------- Post added at 01:47 ---------- Previous post was at 01:09 ----------

Patron, Подключил плату с клавиатурой от терминала Mera СМ7902 к эмулятору VT52. Далее напечатал с терминала цифры и первый ряд букв в двух режимах эмулятора.
Вот что получил на экране эмулятора.
http://s018.radikal.ru/i524/1408/3d/32d087716839.jpg (http://www.radikal.ru)

От первой единицы до h в режиме ЛАТ. От второй единицы до Х в режиме РУС.

Это так и должно быть?

form
08.08.2014, 12:39
Это так и должно быть?

7 bit + parity, на примере jcu:
Char Binary Parity
------- --------------- ------
j 1.101.010 1
c 1.100.011 1
u 1.110.101 0

Patron
30.09.2014, 16:04
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_30.09.14_15-40

Изменения:

1. Программа обновлена до текущей версии.

2. Исправлен файл конфигурации HX_IP.cfg.

...

Patron
22.10.2014, 15:48
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_08.10.14_16-54

Изменения:

1. В объект Terminal_IP_Adapter добавлена первичная поддержка протокола Telnet, настраиваемая константой NetMode в ini-секции объекта в файле конфигурации:



[IP_Adapter.ini]
Listen_on_IP =""
Listen_on_Port = 0
Connect_to_IP = 127.0.0.1
Connect_to_Port= 8023
Extended_Log = 0
ReConnect = 1
InitialStateOf[Connect] = 1
SaveChangesFor[Connect] = 0
NetMode = Auto


Возможные значения: Raw, Telnet и Auto ( по умолчанию Auto ).

В режиме Raw обработка команд протокола Telnet и перекодирование байтов 0377 не производится.

В режиме Telnet все команды Telnet удаляются, байты 0377 перекодируются, при получении из интернета команды Telnet BREAK - в поток байтов посылается набор команд: ClearFIFO, BadFrame = 0, BreakOn, BreakOff = 250 мс, а при получении из потока байтов команды BreakOn - в интернет посылается команда Telnet BREAK.

В режиме Auto - в первую секунду соединения обмен данными не производится и ожидается согласование Telnet. При начале согласования устанавливается режим Telnet, иначе - режим Raw.

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

Когда клиент находится в режиме Auto, он воспринимает получение двух первых нулевых байтов от сервера, как приглашение к согласованию Telnet.

Все принятые и переданные команды Telnet протоколируются в порту [Log] ( обычно этот порт объекта Terminal_IP_Adapter подключен к консоли с именем IP_Log ).

...

MiX
22.10.2014, 18:28
Patron, Звездные войны так и не показывает. Правда там упомянут протокол IPv6 может это как то связано?

Patron
22.10.2014, 19:03
Звездные войны так и не показывает.Скорее всего там управляющие коды VT100, а не VT52.

MiX
22.10.2014, 19:53
Скорее всего там управляющие коды VT100, а не VT52.
В Гипертерминале в режиме VT52 не уходит в HOLD. С опцией "Дополнять символы возврата каретки (CR) переводами строк (LF)" показывает но правда иногда "срывается синхронизация".

form
22.10.2014, 21:06
В Гипертерминале в режиме VT52 не уходит в HOLD. С опцией "Дополнять символы возврата каретки (CR) переводами строк (LF)" показывает но правда иногда "срывается синхронизация".

Там действительно коды VT100 (ANSI). В режиме VT52 (если терминал не поддерживает HOLD SCREEN) действительно будет показывать потому что там тупо выводится полный экран для каждого кадра, а "срывается" потому что на экране остается мусор от неотработанных ANSI ESC последовательностей :)

MiX
22.10.2014, 21:21
Patron, Будете смеяться, но в Гипертерминале вообще идеально пошёл в режиме телетайпа 33 (весь фильм не смотрел). Почему то всегда думал что VT52 и телетайп совместимы по командам но вроде отличия есть. А сначала тоже грешил на VT100. :)

---------- Post added at 21:21 ---------- Previous post was at 21:09 ----------

form, В Гипертерминале в режиме VT100 тоже срывается картинка.

form
22.10.2014, 22:26
В Гипертерминале в режиме VT100 тоже срывается картинка.

Ну гипертерминал в принципе нельзя равнять с нормальными эмуляторами терминала :)

Во всех же (более-менее) нормальных реализациях: всевозможные консоли BSD/Linux, xterm, SecureCRT, PuTTY все всегда было идеально :)

MiX
23.10.2014, 02:44
form, В режиме VT100 я не снял галочки с опций CR+LF а так нормально работает. Вот почему тогда в режиме телетайпа нормально идет, непонятно. В прочем ладно, будем считать что фильм транслируется в ANSI.

Patron, Что то приглашение консоли Телнета Windows не показывает (соединение есть). На старой версии VT52 показывало. Гипертеминал даёт приглашение.

form
23.10.2014, 05:07
Вот почему тогда в режиме телетайпа нормально идет, непонятно.

Я уже объяснил почему - он тупо перерисоввывает всю страницу, а не меняет отдельные ее элементы.


В прочем ладно, будем считать что фильм транслируется в ANSI.

А чего там считать - WAR на CTAKAH'е сделан дампом телнетной передачи, и уж поди помню что там внутри :) -- всего одна ESC последовательность <ESC>[H (всмысле один тип последовательности) :)


Что то приглашение консоли Телнета Windows не показывает (соединение есть). На старой версии VT52 показывало. Гипертеминал даёт приглашение.

Возможно телнетный клиент включается в построчный, а не посимвольный режим (особенно если соединение не на 23 порт).

Patron
23.10.2014, 14:03
Что то приглашение консоли Телнета Windows не показываетЛучше проверить, работает ли теперь загрузка через IP-адаптер терминального порта.

form
23.10.2014, 14:57
Лучше проверить, работает ли теперь загрузка через IP-адаптер терминального порта.

Попробовал натравить на telnet listener в DS90M, соответствующий консоли 11/83. После передачи кода просто тишина, прога загрузчика не вылетает. Впрочем тут наверное надо как-то включать telnet binary mode чтобы заработало.

Попробовал на роутере по телнету запускать cu который подсоединяется к DS90M. Тут код вылетает в одном и том же месте. Более детально пока не разбирался...
Network Access SW V3.2 BL01 for DS90M
DECserver 90M, Novosibirsk, RU

(c) Copyright 2005, Digital Networks, DNPG, LLC - All Rights Reserved
Visit us at www.digitalnetworks.net

Please type HELP if you need assistance

Local> SE PO TY SO
Local> C BIGSYS_CONS
Password>
Local -010- Session 1 to BIGSYS_CONS on node PDP11.ORG.RU established

Local> SE SES PAS
Local> RE
Local -012- BIGSYS_CONS session 1 resumed


Testing in progress - Please wait
Memory Size is 4088 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9


Message 04 Entering Dialog mode

Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key:
165216
@10000/000000 12706
00010002/000000 10000
00010004/000000 12746
00010006/000000 340
00010010/000000 12746
00010012/000000 10016
00010014/000000 2
00010016/000000 4567
00010020/000000 14
00010022/000000 105737
00010024/000000 177560
00010026/000000 100375
00010030/000000 113703
00010032/000000 177562
00010034/000000 207
00010036/000000 105737
00010040/000000 177562
00010042/000000 105737
00010044/000000 177564
00010046/000000 100375
00010050/000000 112737
00010052/000000 26
00010054/000000 177566
00010056/000000 12700
00010060/000000 1000
00010062/000000 5004
00010064/000000 4715
00010066/000000 110324
00010070/000000 5300
00010072/000000 1374
00010074/000000 5007
@10000G
000576
@
@
@10000/012706 12706
00010002/010000 10000
00010004/012746 12746
00010006/000340 340
00010010/012746 12746
00010012/010016 10016
00010014/000002 2
00010016/004567 4567
00010020/000014 14
00010022/105737 105737
00010024/177560 177560
00010026/100375 100375
00010030/113703 113703
00010032/177562 177562
00010034/000207 207
00010036/105737 105737
00010040/177562 177562
00010042/105737 105737
00010044/177564 177564
00010046/100375 100375
00010050/112737 112737
00010052/000026 26
00010054/177566 177566
00010056/012700 12700
00010060/001000 1000
00010062/005004 5004
00010064/004715 4715
00010066/110324 110324
00010070/005300 5300
00010072/001374 1374
00010074/005007 5007
@10000G
000576
@
@
@550/110567
00000552/177334
00000554/066767
00000556/177330
00000560/177324
00000562/105737
00000564/177564
00000566/176777
00000570/000114
00000572/000204
00000574/000000
00000576/000114

MiX
23.10.2014, 15:44
Возможно телнетный клиент
Это сервер, со стороны клиента эм.VT52.

включается в построчный, а не посимвольный режим (особенно если соединение не на 23 порт). Не знаю какой там режим но работает с командной строки, а порт для Телнета стандартно 23.


Лучше проверить, работает ли теперь загрузка через IP-адаптер терминального порта.
Нормально загрузился.
Конфигурация такая.
VT52(PC)<>Switch<>конвертер MOXA NPort-COM<>COM-КЦГД-MC

И всё таки, как выйти на Телнет Windows?
Спасибо.

Patron
23.10.2014, 16:19
как выйти на Телнет Windows?А это сервер или клиент ?

MiX
23.10.2014, 16:36
Patron, Давайте всё по порядку.
Запускаем службу Телнет.
Правой кнопкой мышки нажимаем на "Мой компьютер" выбираем "Управление" далее "Службы и приложения" - "Службы". В службах выбираем Телнет -свойства - пуск.
В эмуляторе меняем порт с 8023 на 23.
И должно выйти приглашение

Welcome to Microsoft Telnet Service

login:


А это сервер или клиент ?

Со стороны службы сервер, со стороны VT52 клиент.

form
23.10.2014, 16:39
Со стороны службы сервер, со стороны VT52 клиент.

Клиент должен согласовать с сервером посимвольный режим, иначе будет построчный со всеми вытекающими (вывод после того как пришел ввод [логически последовавший после этого вывода], невозможность использовать посимвольные программы, эхо там где его не должно быть итд)...

Patron
23.10.2014, 18:20
Розбрался, в чём проблема Telnet-сервера Windows - на некоторых этапах согласования опций он ждёт ответа до упора и при отсутствии ответа обмен висит.

В следующем релизе соответствующие отказы будут отправляться клиентом, а пока решение следующее - установить NetMode = Raw, а в файле Terminal.ini назначить на какую-нибудь клавишу ( вроде <F4> ) нужный Telnet-серверу Windows набор отказов:



ANSI_STR_FOR_KEY[F4] = "\377\374\045\377\374\047"


Тогда, после установления соединения - обмен будет висеть только до нажатия клавиши <F4>.

MiX
23.10.2014, 19:04
Также можно в следующем релизе сделать кнопку Break для вызова пульта в Эл.85 (какой код я уже писал).
Спасибо.

Patron
23.10.2014, 19:28
сделать кнопку Break для вызова пультаТерминал посылает BREAK при нажатии на клавиатуре кнопки <Pause/Break>. Раньше этот сигнал не передавался через Telnet, а теперь передаётся.

MiX
23.10.2014, 19:30
Patron, Опять засада. При изменении на RAW эмулятор всё равно ставит на AUTO. Кнопка F4 с соответствующими изменениями не чего не даёт.

Patron
23.10.2014, 19:40
При изменении на RAW эмулятор всё равно ставит на AUTO.Регистр пока имеет значение ( надо бы это исправить ), поэтому там надо писать именно Raw ( или эквивалентное числовое значение 0 ).

MiX
23.10.2014, 20:07
Patron, Да, наверно привычка от RT11. :)
Интересно ещё вот что.
Пишет Welcom to...... Login: нормально а после ввода пароля непонятные символы. Это что, сервер меняет кодировку?
Если можно то пускай VT52 запретит ему менять кодировку.

Patron
23.10.2014, 20:24
Это что, сервер меняет кодировку?Скорее - просто пишет что-то по-русски.

VT52 не понимает ни одну из русских кодировок Windows, поэтому надо как-то отучить Telnet-сервер Windows от использования русских сообщений.

MiX
23.10.2014, 21:55
Скорее - просто пишет что-то по-русски.
Нет, после ввода пароля появляется чёрный прямоугольник и буква Щ. Это явно телнетовская команда.


VT52 не понимает ни одну из русских кодировок Windows, поэтому надо как-то отучить Telnet-сервер Windows от использования русских сообщений. Важно чтоб VT52 корректно отвечал на телнет команды а с кодировкой разобраться не вопрос.

Patron
24.10.2014, 16:38
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_24.10.14_16-10

Изменения:

1. Теперь словесные эквиваленты значений параметров и констант не чувствительны к регистру символов.

2. Теперь при работе по протоколу Telnet на каждое предложение WILL и DO с номером опции больше 03 - выдаётся индивидуальный отказ.

...

MiX
01.11.2014, 14:22
Patron, Есть небольшое пожелание.
Добавьте пожалуйста опций дампа, где опции имеют такие функции:
1)опция
Запись дампа только Телнет команд где из общего потока фильтруется 3 октета а определение по команде IAC (377).
1 октет (IAC), 2 октет (команда) 3 октет (опция команды)

2)опция
Всё тоже самое только в десятеричной системе.

3) опция
Всё тоже самое только кроме числового значения верхней строчкой, нижней строчкой идет название самой команды. (типа перевод)

Так легче будет отлавливать те команды сервера, на которые не реагирует VT52. Так же если сделать идентификатор терминала где терминал сообщает серверу что он VT52, то тогда сервер будет работать только в ASCII и не будет передавать "чужие" команды/запросы типа VT100, ANSI и т.п.

Спасибо.

Patron
01.11.2014, 16:47
Запись дампа только Телнет командВ окне IP_Log дампятся все принятые и отправленные команды Telnet.


Так легче будет отлавливать те команды сервера, на которые не реагирует VT52.Terminal_IP_Adapter реагирует на все команды Telnet, передавая отказы от их выполнения ( если на команду требуется ответ ).


сделать идентификатор терминала, где терминал сообщает серверу, что он VT52Терминал ничего не знает про Telnet, а Terminal_IP_Adapter - ничего не знает про терминал, поэтому такое дополнение сделать сложно.

MiX
01.11.2014, 17:59
В окне IP_Log дампятся все принятые и отправленные команды Telnet. Там команды в шестнадцатеричном виде.


Terminal_IP_Adapter реагирует на все команды Telnet, передавая отказы от их выполнения ( если на команду требуется ответ ). Получается что даёт отказ на запрос о типе терминала.


Терминал ничего не знает про Telnet, а Terminal_IP_Adapter - ничего не знает про терминал, поэтому такое дополнение сделать сложно. На команду сервера IAC SB 24 1 IAC SE терминал должен ответить IAC SB 24 0 VT52 IAC SE.

Patron
01.11.2014, 18:45
На команду сервера IAC SB 24 1 IAC SE терминал должен ответить IAC SB 24 0 VT52 IAC SE.Терминал не получает команды Telnet - это делает адаптер, который ничего не знает ( и не имеет возможности узнать ) о подключенных к нему устройствах.

---------- Post added at 18:45 ---------- Previous post was at 18:32 ----------

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

form
01.11.2014, 18:48
IAC SB 24 0 VT52 IAC SE.

Попутно замечу, что VT52 - неправильный тип терминала. Правильный DEC-VT52, а просто VT52 - это случай когда прогнулись под криворуких программеров и решили, что проще смириться :)
Но при входе например на OpenVMS по телнету разница будет заметна - там понимаются только правильно написанные (согласно rfc884) типы...

MiX
01.11.2014, 18:56
Терминалу не чего и не требуется что то узнавать, поэтому речь идет об адаптере. В настоящем VT52 вообще кроме токовой петли нечего нет. Согласование протокола приёма/передачи нужно для того чтобы сервер не присылал "чужие" команды а работал в только режиме приёма/передачи VT52.

---------- Post added at 18:56 ---------- Previous post was at 18:53 ----------


Попутно замечу, что VT52 - неправильный тип терминала. Правильный DEC-VT52, а просто VT52 - это случай когда прогнулись под криворуких программеров и решили, что проще смириться :)
Но при входе например на OpenVMS по телнету разница будет заметна - там понимаются только правильно написанные (согласно rfc884) типы...
Возможно что в Майкрософт упростили так как там пишется просто VT52.

form
01.11.2014, 18:57
Возможно что в Майкрософт упростили так как там пишется просто VT52.

Многие упрощают - от того и стали делать софт который и так и так да еще парой способов понимает :)

MiX
01.11.2014, 19:13
Можно добавить в опции адаптера что-то вроде текстовой константы ReportTerminalType с пустым значением по умолчанию. Тогда, если туда что-то написать - эта строка будет выдаваться в ответ на запрос типа терминала по Telnet.

Отлично! А клонировать строку можно будет под другие запросы?

Patron
01.11.2014, 19:44
А клонировать строку можно будет под другие запросы?Когда возникнет настоятельная потребность рапортовать текстовой строкой что-то кроме типа терминала - можно будет добавить поддерку такого запроса.

MiX
02.11.2014, 15:58
Но при входе например на OpenVMS по телнету разница будет заметнаform, тут надо бы уточнить несколько моментов. OpenVMS который в составе эмулятора не спрашивает о типе терминала. Скорей всего он и так работает в режиме VT52.
Какая ещё операционка может менять протокол в соответствии типа терминала.

- там понимаются только правильно написанные (согласно rfc884) типы... Посмотрел RFC1091, там довольно таки много вариантов согласования но везде пишется "TERMINAL-TYPE". Это как, срока пишется в команде или подменяется названием терминала?

form
02.11.2014, 16:06
OpenVMS который в составе эмулятора

В составе эмулятора нет и не может юыть OpenVMS ;)
Там есть логин в систему OpenVMS и система при этом, разумеется, не настроит правильно тип терминала - по той причине, что клиент его просто не передает. Не настроит она его и если клиет передаст VT52 - это как уже было сказано выше неправильный тип согласно RFC, а OpenVMS с этим строг.



так работает в режиме VT52.

Разумеется, нет. Только сразу расставим точки над i. Сервер понятия не имеет ни о каких терминалах - у него просто нет такого функционала который бы требовал его знать. Тип терминала важен для запускаемых в сессии программ. И вот тут в зависимости от реализации или устанавливается переменная TERM (unix системы) -- тут как правило подойдет тип терминала "vt52" поскольку в termcap/terminfo базе есть такой алиас для dec-vt52, либо выставит тип терминала в локальных его настройках (OpenVMS) и вот тут важно, чтобы сервер при выставлении типа умел распознать переданный тип. "VT52", "VT100", "VT220" не будут опознаны как известный тип и тип терминала будет установлен как "unknown", что вызовет неработоспособность экранных программ...

MiX
02.11.2014, 16:29
В составе эмулятора нет и не может юыть OpenVMS ;) Я про конфиг. :)


Там есть логин в систему OpenVMS и система при этом, разумеется, не настроит правильно тип терминала - по той причине, что клиент его просто не передает. Не настроит она его и если клиет передаст VT52 - это как уже было сказано выше неправильный тип согласно RFC, а OpenVMS с этим строг. Так клиент передаёт до или после логина.


Разумеется, нет. Только сразу расставим точки над i. Сервер понятия не имеет ни о каких терминалах - у него просто нет такого функционала который бы требовал его знать. То есть это нужно операционке.


Тип терминала важен для запускаемых в сессии программ. И вот тут в зависимости от реализации или устанавливается переменная TERM (unix системы) -- тут как правило подойдет тип терминала "vt52" поскольку в termcap/terminfo базе есть такой алиас для dec-vt52, либо выставит тип терминала в локальных его настройках (OpenVMS) и вот тут важно, чтобы сервер при выставлении типа умел распознать переданный тип. "VT52", "VT100", "VT220" не будут опознаны как известный тип и тип терминала будет установлен как "unknown", что вызовет неработоспособность экранных программ... Это идет согласование автоматически Телнетом?

form
02.11.2014, 16:34
То есть это нужно операционке.

Операционке самой - нет, а вот программам - да. В частности, DCL в OpenVMS согласно типу терминала решит - может ли он редактировать командную строку. Про экранные редакторы и так понятно...


Это идет согласование автоматически Телнетом?

Боюсь тут мы быстро выйдем за область моих знаний - я не знаток телнетного протокола, просто в памяти отложились некоторые ответы на вопросы которые в свое время задавал DEC/HP ну и чего сам накопал в поисках... Детально никогда не ковырялся...

MiX
02.11.2014, 16:43
Хорошо, не буду мучить. :)
Протокол согласования Здесь (http://www.ietf.org/rfc/rfc1091) если что.

form
02.11.2014, 16:52
Хорошо, не буду мучить. :)
Протокол согласования Здесь (http://www.ietf.org/rfc/rfc1091) если что.

Кстати так и не понял чего там не получилось с консолью через живой порт DS :)

Вроде все просто:
nrg:/tmp% telnet pdp-11.org.ru
Trying 85.118.227.58...
Connected to pdp-11.org.ru.
Escape character is '^]'.

Network Access SW V3.2 BL01 for DS90M
DECserver 90M, Novosibirsk, RU

(c) Copyright 2005, Digital Networks, DNPG, LLC - All Rights Reserved
Visit us at www.digitalnetworks.net

Please type HELP if you need assistance

Local> C BIGSYS_CONS
Local -010- Session 1 to BIGSYS_CONS on node PDP11.ORG.RU established
Нажимаем CTRL, Shift и "-" - получаем подсказку и далее по тексту...
Local> SE SES PAS
Local> RE
Local -012- BIGSYS_CONS session 1 resumed

Вот после этого уже нельзя подсказку снова получить - командой SE SES PAS мы запретили распознавать любые комбинации и позволили передавать все что угодно... В оригинале подсказка вызывается по BREAK, но он нам нужен для другого - потому и перенастроил :)

MiX
02.11.2014, 17:22
form, Это лучше обсуждать в другой теме. А здесь надо выяснить однозначный ответ серверу на запрос о типе терминала. Скорей всего это IAC SB TERMINAL-TYPE IS DEC-VT52 IAC SE но что то очень длинная команда поэтому не уверен.

form
02.11.2014, 17:25
form, Это лучше обсуждать в другой теме. А здесь надо выяснить однозначный ответ серверу на запрос о типе терминала. Скорей всего это IAC SB TERMINAL-TYPE IS DEC-VT52 IAC SE но что то очень длинная команда поэтому не уверен.

В общем случае серверу вообще пофигу какой тип терминала, а в системах либо это предопределено заранее (RT-11 [ну можно использовать мой TTSET чтобы проверить тип на лету -- требует проверки в условиях далекого интернета]) либо можно явно опознать терминал (SET /INQUIRE=TI: -- RSX-11M/M+, MCR; SET INQ -- RSX-11M+; SET TERM/INQ -- VMS)... Из всех систем в любом случае только OpenVMS имеет функционал настройки типа терминала согласно переданного телнетом... Про UNIX-подобное не говорю :)

Patron
05.11.2014, 17:11
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_04.11.14_01-42

Изменения:

1. Теперь при прекращении записи лога - терминал пишет в файл лога также и последнюю незавершённую строку.

2. В объект Terminal_IP_Adapter добавлена текстовая константа TelnetTerminalTypeReport :



[IP_Adapter.ini]
Listen_on_IP = ""
Listen_on_Port = 0
Connect_to_IP = 127.0.0.1
Connect_to_Port= 8023
Extended_Log=0
ReConnect=1
InitialStateOf[Connect]=1
SaveChangesFor[Connect]=0
NetMode = Auto
TelnetTerminalTypeReport = ""


Когда указанное значение не пустое - эта строка выдаётся в ответ на запрос типа терминала при согласовании опций протокола Telnet.

...

shattered
05.11.2014, 17:42
Из всех систем в любом случае только OpenVMS имеет функционал настройки типа терминала согласно переданного телнетом... Про UNIX-подобное не говорю :)

unix-подобное делает так же, если telnet-клиент передал переменную TERM.

form
05.11.2014, 17:47
unix-подобное делает так же, если telnet-клиент передал переменную TERM.

UNIX-подобное не делает также в силу отсутствия такого функционала ;)
В OpenVMS (а также [к слову] в RSX, RSTS, TSX) тип терминала - это одна из настроек терминального устройства. Когда она выставлена правильно, сам терминальный драйвер умеет выполнять многие экранные функции. В UNIX же системах можно только передать TERM (о чем говорилось выше), а управление экраном должна взять на себя сама программа (ну или библиотека - slang, curses, ncurses итд), глядя на эту переменную :)

MiX
05.11.2014, 18:06
form, Потренировался на "кошках". Подключился к телнету Windows где он таки спросил про терминал. На ответ DEC-VT52 экран не изменил и дальше дал приглашение, а на ответ VT52 после пароля очистил экран и дал приглашение. Получается на разных операционных системах идентификатор DEC-VT52 и VT52 воспринимаются по разному.

form
05.11.2014, 18:09
Получается на разных операционных системах идентификатор DEC-VT52 и VT52 воспринимают по разному.

О том и речь, что каждый делает по-своему, а на RFC в котором четко прописано "DEC-VTxxx" и не иначе все клали - как обычно :)

---------- Post added at 21:09 ---------- Previous post was at 21:07 ----------

Впрочем на иные RFC как раз следует забить (и забивают) - FTP к примеру :)
Но это уже другая история...

ram_scan
07.11.2014, 18:34
Друзья, я могу показаться тормозом и занудой, но заметил тему только только сейчас на 66 странице.

Unix системы с рождения умели эмулировать VT-52. Потому-что они из VT52 выросли.

Терминальные клиенты соответственно тоже.

Попробуйте PuTTY. Оно бесплатно, кроссплатформенно, в исходниках и умеет практически всю линейку терминалов VT серии. Нестандартным кодировкам учится через конфиг. И вообще юниксвэйная утилита.

Последовательный порт ессно тоже поддерживает.

Patron
07.11.2014, 20:39
Unix системы с рождения умели эмулировать VT-52. Потому-что они из VT52 выросли.При запуске эмулятора терминала в конфигурации по-умолчанию он использует файл конфигурации IP.cfg, пытающийся установить терминальное подключение на IP-адрес 127.0.0.1 ( порт 8023 ).

Если одновременно запустить "эмулятор ДВК" в конфигурации Server.cfg, то результат будет таким:

http://s3.hostingkartinok.com/uploads/images/2012/09/5ec5f99e4e858aee2fd3cc360ab36341.png


Можно погонять разные игрушки с системного диска эмулируемой ДВК, использующие управляющие коды VT52, потом отключить от сервера обсуждаемый эмулятор терминала, подключить любой другой и сравнить ощущения.

Тогда всё станет понятно само собой, без долгих объяснений.

Patron
12.11.2014, 18:11
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_12.11.14_17-12

Изменения:

1. Теперь при нажатии клавиши <Pause/Break> состояние BREAK всегда устанавливается на 250 мс.

...

hobot
12.11.2014, 22:13
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_12.11.14_17-12 (http://zx.pk.ru/attachment.php?attachmentid=49873)

Изменения:

1. Теперь при нажатии клавиши <Pause/Break> состояние BREAK всегда устанавливается на 250 мс.

...

Patron, у меня ещё одно унылое предложение, может быть имеет смысл в самой папке эмулятора некий порядок навести, сложить отдельно dat и dsk, изменив к ним пути соответственно ? :rolleyes_std:

Patron
13.11.2014, 01:49
сложить отдельно dat и dskПока не вижу в этом смысла.

MiX
13.11.2014, 11:19
hobot, Можно отдельно хранить свои образы в папке, тогда при обновлении эмулятора ничего не теряется.

MiX
14.11.2014, 00:21
Теперь при нажатии клавиши <Pause/Break> состояние BREAK всегда устанавливается на 250 мс.
По СOM порту BREAK не проходит после загрузки RT.
Подсоединял так.
Эм.PDP11-COM <> COM-Эм.VT52

Patron
14.11.2014, 15:05
По СOM порту BREAK не проходитПервым делом надо повысить минимальную продолжительность сигнала BREAK у выходного порта с 3 мс до 250 мс :



[ComPort.ini]
MinimalBreakTime_MKS = 250000


Если не поможет - можно повесить кнопку сигнала BREAK на входной порт и лампочку на выходной. Тогда можно будет посылать BREAK не только с терминала, но и прямо со входного порта, а также регистрировать приход BREAK на выходной порт.

MiX
14.11.2014, 17:34
Делал так.
Соединил эмуляторы DPD11 и VT52 по СОМ порту.(конфигурация DVK_COM5 и НХ_СОМ)
После приглашения @ нажал Pause/Break появилось ещё приглашение - BREAK работает. Далее загрузил по НХ и нажал Pause/Break - ничего не изменилось. Открыл конфиг VT52 СОМ_4 нажал Ентер появилось приглашение RT (точка) нажал Pause/Break
ничего не изменилось кроме как виртуальная кнопка BREAK мигнула красным цветом.
Изменение продолжительности сигнала ничего не дало. Я думаю что дело в Эм.DPD11.

---------- Post added at 17:34 ---------- Previous post was at 17:22 ----------

Ещё заметил такую вещь.
При установке 250000 эмулятор сбрасывает на 20000.

Patron
14.11.2014, 19:34
BREAK работает.Чтобы порт терминала останавливал процессор при получении сигнала BREAK - в секции [links] файла конфигурации должна присутствовать соответствующая настройка:



[links]

TerminalPort [HALT] + bus

...


При установке 250000 эмулятор сбрасывает на 20000.Да, точно - там есть ограничение на продолжительность BREAK в 20 мс, но этого должно хватать, потому что в Windows продолжительность кванта 15 мс, а значит за 20 мс эмулятор гарантировано "поймает" сигнал.

MiX
14.11.2014, 19:47
Patron, Да, действительно в конфигурациях СОМ_4 и НХ_СОМ такой строчки нет (другие не проверял).
СПАСИБО!

Patron
14.11.2014, 19:51
в конфигурациях СОМ_4 и НХ_СОМ такой строчки нетЕё там нет ( по умолчанию ) потому, что у ДВК порт терминала не останавливает процессор при получении BREAK.

---------- Post added at 19:51 ---------- Previous post was at 19:49 ----------

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

MiX
14.11.2014, 19:59
Patron, Ну ведь не понятно что эмулируем. В названии эмулятор ДВК а екзешник PDP. Плата DL11-W явно не ДВКашная, притом и UNIBUS.

Patron
12.12.2014, 14:38
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_11.12.14_19-42

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx-pk.ru/showthread.php?p=760895#post760895).

...

Patron
31.12.2014, 22:12
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_31.12.14_21-20

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx-pk.ru/showthread.php?p=763235#post763235).

2. Исправлено избыточное выделение памяти при подключении каталогов Windows.

...

MiX
09.01.2015, 23:34
Её там нет ( по умолчанию ) потому, что у ДВК порт терминала не останавливает процессор при получении BREAK. Попробовал с платой М6 - BREAK работает. Остановил процессор с помощью К1801ВП1 -065.


Начиная с текущего релиза эмулируемый порт терминала отмеряет продолжительность входного сигнала BREAK не в реальном времени, а в эмулируемом времени процессора, поэтому входной сигнал BREAK будет "пойман" эмулятором при любой продолжительности. Не совсем понятно, в эмулируемом времени процессора это для эмулятора PDP11. Для настоящего процессора время осталось так-же 3 мск. В прочем ВП1-065 и на 3 мск. отработала.

Patron
10.01.2015, 14:27
Для настоящего процессора время осталось так-же 3 мск. В прочем ВП1-065 и на 3 мск. отработала.С передачей BREAK средствами Windows главная проблема в том, что Windows позволяет передавать начало и конец BREAK, но принимать может только начало BREAK.

Что же до портов PDP-11, то некоторые порты распознают BREAK, если в принимаемой посылке на текущей скорости порта не пришёл стоповый бит ( и их приём BREAK мало отличается от приёма FRAME_ERROR ), а другие ( более правильные ) порты при отсутствии стопового бита распознают только FRAME_ERROR, а BREAK распознают лишь тогда, когда стоповый бит не был принят за время передачи максимальной посылки на минимальной разрешённой скорости. На минимальной скорости 75 bps стоповый бит приходит только через (1000/75)*11 = 147 мс, поэтому если последовательный порт на любой скорости принимает BREAK раньше - он не полностью удовлетворяет стандарту RS-232.

...

Titus
10.01.2015, 14:33
С передачей BREAK средствами Windows главная проблема в том, что Windows позволяет передавать начало и конец BREAK, но принимать может только начало BREAK.

Кстати да, когда я перешел с DirectInput на хуки от клавиатуры, я тоже лишился возможности нормально обрабатывать нажатие клавиши Break (совершенно не понятно почему).

Patron
10.01.2015, 15:11
Кстати да, когда я перешел с DirectInput на хуки от клавиатуры, я тоже лишился возможности нормально обрабатывать нажатие клавиши Break (совершенно не понятно почему).Изначально речь шла о передаче состояния BREAK протоколом RS-232, но если говорить о хуках - с клавишей [Pause/Break] действительно не всё просто, но всё решаемо.

Убедиться легко.

1. Открываем архив GlobalKeyboardHook_Test.zip (http://zx.pk.ru/attachment.php?attachmentid=39062), копируем файл GlobalHook_Con.exe в файл GHC.exe в корне диска С:

2. Запускаем командную строку, переходим в корень диска C:, запускаем GHC.exe, нажимаем по очереди пробел и клавишу <Pause/Break> и наблюдаем глюки.

3. Открываем блокнот, запускаем командную строку, переходим в корень диска C:, запускаем GHC.exe, переходим в окно блокнота, нажимаем там по очереди пробел и клавишу <Pause/Break> и видим в окне командной строки, что клавиша <Pause/Break> обрабатывается без глюков.


Вывод - клавиша <Pause/Break> плохо обрабатывается хуком, только когда принимающее нажатия активное окно как-то особенно на неё реагирует. Сам механизм хука не виноват и если при приёме кода <Pause/Break> не производить дальнейшую обработку нажатия средствами Windows - проблем не будет.

Titus
10.01.2015, 17:53
Сам механизм хука не виноват и если при приёме кода <Pause/Break> не производить дальнейшую обработку нажатия средствами Windows - проблем не будет.

Т.е. не передавать нажатую клавишу по цепочке ниже?

Patron
10.01.2015, 18:41
Т.е. не передавать нажатую клавишу по цепочке ниже?Да.

Зачем её передавать при работе в своём окне, если никакой пользы от этого нет..

Если в программе не обрабатываются клавишные сообщения Windows ( WM_SYSKEYUP, WM_SYSKEYDOWN, WM_KEYUP, WM_KEYDOWN, WM_CHAR ) - дальше можно вообще ничего не передавать.

MiX
04.02.2015, 01:26
Patron, Подключил плату QED993, но там промпт оказался "ODT@". Включите пожалуйста поддержку или как я уже предлагал, дать возможность самому менять в конфиге определение промпта.

Спасибо.

Patron
04.02.2015, 14:26
дать возможность самому менять в конфиге определение промпта.Начиная с версии от 19.12.14_17-10 промпт может быть любой длины.

Реальная работа с длинным промптом не проверялась, т.к. ODT-мониторов с длинным промптом у меня нет.

form
04.02.2015, 15:09
ODT-мониторов с длинным промптом у меня нет.

На досуге помучаю диагром от Э100-25 и может еще что найду где uODT отсутствует как класс.

MiX
04.02.2015, 20:18
Начиная с версии от 19.12.14_17-10 промпт может быть любой длины. Эта версия для ДВК.


Реальная работа с длинным промптом не проверялась, т.к. ODT-мониторов с длинным промптом у меня нет.
Дело не в этом, ODT_Loader.ini отсутствует в VT52.

Patron
04.02.2015, 22:47
ODT_Loader.ini отсутствует в VT52.Отдельный файл ODT_Loader.ini используется только при обработке файлов и командных строк, чем VT52.exe не занимается.

Надо просто указать нужный промпт в разделе ODT_Loader.ini в используемом файле конфигурации:



[ODT_Loader.ini]
PromptChar = "ODT@"

hobot
04.02.2015, 23:52
Эта версия для ДВК
Извиняюсь, что встреваю, но, если ничего не изменилось, - переименовав pdp-11.exe
в VT52.EXE - обновляем оба эмулятора параллельно.

MiX
04.02.2015, 23:57
Надо просто указать нужный промпт в разделе ODT_Loader.ini в используемом файле конфигурации: Раньше такое делал не помогало (ранние релизы) а теперь работает. :) Просто не знал.

Ну и собственно загрузка.

QED993 Rev. B MC68360 Menu Code Version 3.03
Xilinx Configuration Completed
Microcode Loading Completed
Wednesday, 4-Feb-2015 23:36:37 28.5 C 83 F
Please hit <Return> to Autobaud >>>

Boot Device [EE] ?
Autobooting. Type ^C to cancel.

Error during boot attempt: No controller at that CSR address
Please try again.


Boot Device [EE] ? QH
PC=173642
ODT@10000/000000 12706
00010002/000400 10000
00010004/000000 12746
00010006/020000 340
00010010/050000 12746
00010012/000402 10016
00010014/000000 2
00010016/000000 4567
00010020/177777 14
00010022/177777 105737
00010024/177777 177560
00010026/177777 100375
00010030/137777 113703
00010032/177777 177562
00010034/177777 207
00010036/167737 105737
00010040/001002 177562
00010042/000000 105737
00010044/000000 177564
00010046/140000 100375
00010050/010000 112737
00010052/100000 26
00010054/000000 177566
00010056/020100 12700
00010060/177777 1000
00010062/177777 5004
00010064/177777 4715
00010066/177777 110324
00010070/177777 5300
00010072/176757 1374
00010074/077765 5007
ODT@10000G
HX 2.0 - Warm boot v1.3 177560

HX DSK/TTY multiplexer v3.1 2014
SL V08.00 [SW] Сторожевых С.В. 1988

RT-11SJ (Y) V05.04 G

.SE USR NOSWAP

.SE EXIT NOSWAP

.SE TT SCOPE

.LO SL

.SE SL ON

.DAY
Время Дата
23:51:30 04-Фев-2015, Среда

.SH ALL

RT-11SJ (Y) V05.04 G
Booted from HX0:RT11SJ

USR is set NOSWAP
EXIT is set NOSWAP
KMON is set NOIND
TT is set NOQUIET
ERROR is set ERROR
SL is set ON
EDIT is set KED
KMON nesting depth is 3

Unknown Processor
4088KB of memory
Floating Point Microcode
Extended Instruction Set (EIS)
Memory Management Unit
Parity Memory
Cache Memory
50 Cycle System Clock

No SYSGEN options enabled

Device Status CSR Vector(s)
------ ------ --- ---------
HX Resident 177560 000
TT Installed 000000 000
SL 141104 000000 000
EM Installed 000000 010
LD Installed 000000 000

TT
HX (Resident)
HX0 = DK , SY
SL (Loaded)
EM
LD
17 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 141032 N/A

No multi-terminal support

Address Module Words
------- ------ -----
160000 IOPAGE 4096.
156242 HX 431.
145414 RMON 2251.
141076 SL 1127.
131032 USR 2066.
001000 ..BG.. 22541.

No LD units mounted


.

MiX
12.02.2015, 22:12
Patron, Подскажите пожалуйста, есть-ли возможность подсоединить папку WorkDir.
Так-же будет полезна эмуляция принтера.
Спасибо.

Patron
12.02.2015, 22:53
есть-ли возможность подсоединить папку WorkDirЕсли к приводу HX - то для выбора подключаемой папки надо выполнить Alt-Click по пустой кнопке выбора образов.

MiX
13.02.2015, 00:42
Если к приводу HXДа.
- то для выбора подключаемой папки надо выполнить Alt-Click по пустой кнопке выбора образов. Не работает (последняя сборка 0.94).

---------- Post added at 23:12 ---------- Previous post was at 23:06 ----------

Отбой, Надо было сделать Alt на клавиатуре а Click мышкой.

---------- Post added 13.02.2015 at 00:07 ---------- Previous post was 12.02.2015 at 23:12 ----------

Ещё проблема.
Попробовал загрузить эм.PDP11 в конф. Server через эм. VT52 c папки AT11SJ.5M - загрузка не прошла, пишет HX-W-Bad Packet.

---------- Post added at 00:42 ---------- Previous post was at 00:07 ----------

Баг получается вот такой.
Заметил, при загрузке частота процессора подскакивает примерно до 600Мгц хотя стоит в True. Ну и процессор там ещё ВМ1.

Patron
13.02.2015, 00:52
загрузка не прошла, пишет HX-W-Bad PacketУ меня так же - буду разбираться.

form
13.02.2015, 01:03
Опробовал загрузку HX на Э100/25 (эмулятор). Загрузиться правда не загрузилось (ибо телнет только под рукой), но загрузчик загоняет и запускает.

Для работы нужно символ подсказки установить на "$". А скрипт оформить в виде команд диагрома:
L 10000
D 12706
D 10000
D 12746
D 340
D 12746
D 10016
D 2
D 4567
D 14
D 105737
D 177560
D 100375
D 113703
D 177562
D 207
D 105737
D 177562
D 105737
D 177564
D 100375
D 112737
D 26
D 177566
D 12700
D 1000
D 5004
D 4715
D 110324
D 5300
D 1374
D 5007
L 10000
S

Это дословный скрипт - в нем нет никаких спецсимволов (вроде эмулятора LF). По сути команды эмулируют пульт старых UNIBUSных машин (каковой в сущности Э100/25 и является).

Ну, разумеется на живой Э100-25 без пульта (настоящего) не обойтись - как минимум придется повернуть ключик и нажать пару рычажков :)

Patron
13.02.2015, 12:28
Заметил, при загрузке частота процессора подскакивает примерно до 600Мгц хотя стоит в True.Проблема в том, что монитор AT11SJ на время загрузки устанавливает максимальную скорость эмуляции, из-за чего в загрузчике HX пролетает таймаут.

Решение проблемы - не загружать AT11SJ через HX.

Patron
22.02.2015, 13:22
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_20.02.15_14-38

Изменения:

1. Произведён апгрейд до текущей версии модульного API.

2. Повышена совместимость терминала с игрой Space Invaders - теперь таблица результатов задерживается на экране на 4 секунды.

...

MiX
23.02.2015, 15:09
Есть ошибка в этой сборке.
При конфигурации НХ_СОМ происходит постоянная трансляция символа "0" после появления промпта.

Запускал 3 раза.

==================== Протокол начат: 23/02/2015 14:54:15 =====================

000002
@000002
@
000004/000000 @
000000/000000 0000000/000000 0000000/000000 00000/000000 0000/000000 000/000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000

000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 00000000000000000000000000000
================== Протокол остановлен: 23/02/2015 14:54:42 ==================

================== Протокол продолжен: 23/02/2015 14:54:48 ==================

00000000000000000000000000000000000000000000000000 00000000000000000000000000000Щ
000002
@000002
@
000004/000000 @
000000/000000 000000/000000 000000/000000 000000/000000 000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000

00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
0000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
0000000000000000000000000000000000000000000000000
================== Протокол остановлен: 23/02/2015 14:55:00 ==================

================== Протокол продолжен: 23/02/2015 14:55:07 ==================

0000000000000000000000000000000000000000000000000 000002
@000002
@
000004/000000 @
000000/000000 0
@0000/000000 00
@
000002/000002 0@
000000/000000
000002/000000
@
@002000000
@
000004/000000
@@
000000/000000
@
000002/000000 000000/000000 000000/000000 000000/000000 000000/000000 00000/0000
00 0000/000000 000/000000 000/000000 0000/000000 0000/000000 0000/000000 000/000
000 000/000000 000/000000 000/000000 0000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 000000000000000000000000000000
00000000000000000000000000000000000000000000000000 0000Э
================== Протокол остановлен: 23/02/2015 14:55:26 ==================



На предыдущей сборке всё нормально. Конфигурация HX_COM.cfg и Terminal_ComPort_Adapter.ini на обоих сборках одинаковая.

Ещё вот такой вариант проскакивает.

==================== Протокол начат: 23/02/2015 15:14:49 =====================

000002
@000002
@
000004/000000 004/000000 004/000000 0004/000000 0004/000000 0004/000000 0004/000
000 0004/000000 004/000000 004/000000 0004/000000 0004/000000 00004/000000 00000
4/000000 00004/000000 00040000000040000000040000000040000000040000000040 00000004
00000000400000000400000000400000000400000000400000 000400000000400000000400000000
40000000040000000040000000040000000040000000040000 000040000000040000000040000000
04000000004000000004000000004000000004000000004000 000004000000004000000004000000
00400000000400000000400000000400000000400000000400 000000400000000400000000400000
00040000000040000000040000000040000000040000000040 000000040000000040000000040000
00004000000004000000004000000004000000004000000004 000000004000000004000000004000
00000400000000400000000400000000400000000400000000 400000000400000000400000000400

Patron
23.02.2015, 19:23
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_23.02.15_18-57

Изменения:

1. Исправлена ошибка модульного API, приводившая в некоторых случаях к неправильному соединению сокетов.

2. В образы дисков добавлен тест быстродействия DHRY.SAV

...

form
02.03.2015, 20:00
Что-то попытка загрузиться с HX с HX_COM приводит к тому, что команды пульта шлются без всякого ожидания и естественно ничего не поспевает... Что-то поменялось?

---------- Post added at 23:00 ---------- Previous post was at 22:58 ----------

И еще хрен про которую все забываю сказать... В Win 8.1 если окно эмулятора текущее, блокируется кнопка Start - видимо она через тот же хандлер проходит что и клава.

MiX
03.03.2015, 00:05
form, Надо изменить в выбранной конфигурации c 0 на 1 в строке -

InitialStateOf[SlowMultiByte] = 1Находится она в секции [VT52.ini]

Patron
03.03.2015, 01:00
Что-то поменялось?Да, в код была внесена глупая ошибка, из-за которой отключилось ожидание эха и ожидание пробела после передачи LF. Ожидание промпта ошибка не нарушила, поэтому заметить её при тестировании не удалось.

Надо отметить, что ожидание эха и ожидание ответа пульта после LF по идее должны включаться только если промпт состоит из одиночного символа "@", поэтому для всех остальных промптов ничего не изменится даже после исправления обсуждаемой ошибки ( исправление выложу завтра ).

Patron
03.03.2015, 13:34
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_03.03.15_13-20

Изменения:

1. Исправлена ошибка в коде объекта ODT_Loader, отключавшая ожидание эха после передачи цифр и ожидание ответа пульта после передачи LF или /.

2. Добавлен файл ODT-скрипта TU58_Boot_(177560).odt, иллюстрирующий поддержку сервером HX загрузочного протокола TU58.

...

form
03.03.2015, 14:10
1. Исправлена ошибка в коде объекта ODT_Loader, отключавшая ожидание эха после передачи цифр и ожидание ответа пульта после передачи LF или /.

Не помогло:
Network Access SW V3.2 BL01 for DS90M
DECserver 90M, Novosibirsk, RU

(c) Copyright 2005, Digital Networks, DNPG, LLC - All Rights Reserved
Visit us at www.digitalnetworks.net

Please type HELP if you need assistance

Local> SE PO TY SO
Local> C BIGSYS_CONS
Password>
Local -010- Session 1 to BIGSYS_CONS on node PDP11.ORG.RU established
*



Testing in progress - Please wait
Memory Size is 4088 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9


Message 04 Entering Dialog mode

Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key:
165224
@?
@
Local> SE SES PAS
Local> RE
Local -012- BIGSYS_CONS session 1 resumed

?
@10000/000000 12706
00010002/000000 00
00010004/000000 746
00010006/000000 340
00010010/000000 12746
00010012/000000 10016
00010014/000000 4567
00010016/000000 14
00010020/000000 5737
00010022/000000 177560
00010024/000000 0375
00010026/000000 113703
00010030/000000 77562
00010032/000000 207
00010034/000000 105737
00010036/000000 7562
00010040/000000 105737
00010042/000000 7564
00010044/000000 100375
00010046/000000 2737
00010050/000000 26
00010052/000000 77566
00010054/000000 12700
00010056/000000 000
00010060/000000 004
00010062/000000 715
00010064/000000 110324
00010066/000000 5300
00010070/000000 74
00010072/000000 7
@10000G
007724
@


---------- Post added at 17:01 ---------- Previous post was at 16:44 ----------


Не помогло
Отбой! Это мой косяк - из-за неудобного именования файлов выбрал не тот архив.
Network Access SW V3.2 BL01 for DS90M
DECserver 90M, Novosibirsk, RU

(c) Copyright 2005, Digital Networks, DNPG, LLC - All Rights Reserved
Visit us at www.digitalnetworks.net

Please type HELP if you need assistance

Local> SE PO TY SO
Local> C BIGSYS_CONS
Password>
Local -010- Session 1 to BIGSYS_CONS on node PDP11.ORG.RU established

Local> SE SES PAS
Local> RE
Local -012- BIGSYS_CONS session 1 resumed

*



Testing in progress - Please wait
Memory Size is 4088 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9


Message 04 Entering Dialog mode

Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key:
165232
@10000/000000 12706
00010002/000000 10000
00010004/000000 12746
00010006/000000 340
00010010/000000 12746
00010012/000000 10016
00010014/000000 2
00010016/000000 4567
00010020/000000 14
00010022/000000 105737
00010024/000000 177560
00010026/000000 100375
00010030/000000 113703
00010032/000000 177562
00010034/000000 207
00010036/000000 105737
00010040/000000 177562
00010042/000000 105737
00010044/000000 177564
00010046/000000 100375
00010050/000000 112737
00010052/000000 26
00010054/000000 177566
00010056/000000 12700
00010060/000000 1000
00010062/000000 5004
00010064/000000 4715
00010066/000000 110324
00010070/000000 5300
00010072/000000 1374
00010074/000000 5007
@10000G
HX 2.0 - Warm boot v1.3 177560

HX DSK/TTY multiplexer v3.1 2014
SL V08.00 [SW] Сторожевых С.В. 1988

RT-11SJ (Y) V05.04 G

.SE USR NOSWAP

.SE EXIT NOSWAP

.SE TT SCOPE

.LO SL

.SE SL ON

.DAY
Время Дата
17:00:12 03-Мар-2015, Вторник

.

---------- Post added at 17:03 ---------- Previous post was at 17:01 ----------

Кстати - вроде предлагал уже - есть смысл в случае загрузки с HX автоматом прямо из драйвера включать NOSWAP хотя бы для USR. Для EXIT опционально - мало ли :)

---------- Post added at 17:10 ---------- Previous post was at 17:03 ----------

Пользуясь случаем...
.R DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 849 dhrystones/second.

.R DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 849 dhrystones/second.

.D 1000=52737,14,177746,104350

.ST 1000

.R DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 351 dhrystones/second.

.R DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 352 dhrystones/second.

.

Patron
03.03.2015, 14:12
Не помоглоТогда можно запустить тестовый вариант эмулятора VT-52 (http://emulator.pdp-11.org.ru/VT52/distr/VT52.TEST_03.03.15_14-15.rar), который протоколирует в файле HX_COM.log все байты, получаемые и передаваемые объектом ODT_Loader ( в квадратных и фигурных скобках соответственно ).

У меня всё работает как надо, вот пример обработки нескольких строк скрипта:

[015][0][1][0][0][1][4][/][1][7][7][7][7][7][ ] <<< ANSWER O.K. >>> {2}[2] (ECHO O.K.) {012}
[012]
[015][0][1][0][0][1][6][/][0][0][0][0][0][0][ ] <<< ANSWER O.K. >>> {4}[4] (ECHO O.K.) {5}[5] (ECHO O.K.) {6}[6] (ECHO O.K.) {7}[7] (ECHO O.K.) {012}
[012]
[015][0][1][0][0][2][0][/][1][7][7][7][7][7][ ] <<< ANSWER O.K. >>> {1}[1] (ECHO O.K.) {4}[4] (ECHO O.K.) {012}

...

form
03.03.2015, 14:12
Тогда можно запустить

Уже написал выше - все нормально :)

Patron
03.03.2015, 14:22
Пользуясь случаем...
.R DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 849 dhrystones/second.
Кстати, по любопытному совпадению тестовый цикл DHRY содержит почти точно 1000 команд, поэтому результат тестирования весьма точно совпадает с быстродействием в KIPS ( MIPS * 1000 ).

form
03.03.2015, 14:34
Кстати, по любопытному совпадению тестовый цикл DHRY содержит почти точно 1000 команд, поэтому результат тестирования весьма точно совпадает с быстродействием в KIPS ( MIPS * 1000 ).

Точность здесь - весьма относительное понятие :)

.RU DHRY ! 50 Hz clock

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 849 dhrystones/second.

.D 1000=52737,6000,177520,104350

.ST 1000

.RU DHRY ! 800 Hz clock

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 53 dhrystones/second.

.D 1000=42737,2000,177520,104350

.ST 1000

.RU DHRY ! 60 Hz clock

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 707 dhrystones/second.

.

Patron
03.03.2015, 14:39
Точность здесь - весьма относительное понятиеПрограмма DHRY.SAV в начале каждого цикла получает системное время в секундах вызовом time() и начинает/завершает тестирование после изменения этой величины.

form
03.03.2015, 14:46
Программа DHRY.SAV в начале каждого цикла получает системное время в секундах вызовом time() и начинает/завершает тестирование после изменения этой величины.

Это не мешает ей выдавать совершенно разные результаты в зависимости от монитора даже при неизменной частоте таймера (совпадающей с мониторной установкой):
.BO SY:

RT-11ZM (S) V05.07

.SET TT QUIET
?ETM-I-Date & time - 3-MAR-2015 17:42:10
?ETM-I-Time server - 70-71-BC-50-EB-D0, OpenBSD 5.5 amd64

.R DATE

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 534 dhrystones/second.

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 534 dhrystones/second.

.BO RT11SB

RT-11SB (S) V05.07

.SET TT QUIET
?ETM-I-Date & time - 3-MAR-2015 17:42:41
?ETM-I-Time server - 70-71-BC-50-EB-D0, OpenBSD 5.5 amd64

.R DATE

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 733 dhrystones/second.

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 733 dhrystones/second.

.BO RT11FB

RT-11FB (S) V05.07

.SET TT QUIET
?ETM-I-Date & time - 3-MAR-2015 17:43:09
?ETM-I-Time server - 70-71-BC-50-EB-D0, OpenBSD 5.5 amd64

.R DATE

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 729 dhrystones/second.

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 729 dhrystones/second.

.BO RT11XM

RT-11XM (S) V05.07

.SET TT QUIET
?ETM-I-Date & time - 3-MAR-2015 17:43:43
?ETM-I-Time server - 70-71-BC-50-EB-D0, OpenBSD 5.5 amd64

.R DATE

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 609 dhrystones/second.

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 609 dhrystones/second.

.

Итого - имеем 5 разных результатов для разных мониторов :)

Patron
03.03.2015, 14:55
Итого - имеем 5 разных результатов для разных мониторовВполне показательно - тест демонстрирует реальное быстродействие программы пользователя под управлением различных мониторов.

Если активировать драйвер замедления компьютера (http://zx-pk.ru/showthread.php?postid=698586) - результат тестирования можно уменьшить почти до любой желаемой величины.

...

form
03.03.2015, 15:04
Вполне показательно - тест демонстрирует реальное быстродействие программы пользователя под управлением различных мониторов.

Ну да - про то и говорю - зависит от монитора, частоты таймера и навешенного на таймер софта.
.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 534 dhrystones/second.

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 534 dhrystones/second.

.VDT

VDT V05.07
*177520/003007 5007
*^C

.SET CLOCK 60

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 445 dhrystones/second.

.RU D10:DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 445 dhrystones/second.

.

---------- Post added at 18:04 ---------- Previous post was at 17:58 ----------

Ну и на закуску RTEM-11 под RSX-11M-PLUS. TSX-Plus и RSTS/E под рукой сейчас нету.
>VCP CON RT11PR.SYS/DRV:DU/MOU:FOR
VCP - Device VF0: (DU4:) has been assigned.
>MOU DU3:/FOR
>FLX /RS/IM=DU3:DHRY.SAV/RT:5
>FLX DU4:/RT/IM=DHRY.SAV
>VCP DIS /USE
DMO -- TT0: dismounted from DU4: *** Final dismount initiated ***
18:01:41 *** DU4: -- Dismount complete
>RTE /VS
RTEM-11 (RSX-11M) V01.00

RT-11FB V05.07

.SET TT QUIET

.RU DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 193 dhrystones/second.

.

По хорошему надо бы в тему быстродействия вынести или еще куда...

form
14.04.2015, 20:29
FЕАТУРЕ РЕЯУЕСТ :)

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

Patron
14.04.2015, 21:02
когда в неактивном табе меняется инфа, подсвечивать его заголовок другим цветомТакое вряд ли скоро появится - более реально сделать для всех окон режимы автоматической активации, как у окна системной консоли.

Для системной консоли можно задавать условие, при котором активируется закладка: None, First, Error, Warning, Any.

Для примера можно в файле Config.ini изменить параметр:



ActivationMode = Any


Тогда при каждом выводе информации на системную консоль - её закладка выйдет на передний план.

Ничто особо не мешает добавить такую же настройку для обычных консолей и терминалов. У закладок терминала есть настройка



nFocusOnFirstOutput = 1


Которая в принципе соответствует настройке ActivationMode = First.

form
14.04.2015, 21:07
Такое вряд ли скоро появится - более реально сделать для всех окон режимы автоматической активации, как у окна системной консоли.

Это пожалуй не очень удобно (хотя также, опционально может и пригодится).


Для системной консоли можно задавать условие, при котором активируется закладка: None, First, Error, Warning, Any.

Это да, полезное дело.

Patron
14.04.2015, 21:31
Это пожалуй не очень удобноДа, когда окна при выводе в них сами переключаются - это не всегда удобно. Но чтобы во всех темах всех версий Windows аккуратно подсвечивать закладку - надо ( по моим ощущениям ) основательно потрудиться. Если где-то есть работающий образец такого использования Win32 Tab Control с исходником на С++ - это может помочь.

form
14.04.2015, 21:46
Но чтобы во всех темах всех версий Windows аккуратно подсвечивать закладку - надо ( по моим ощущениям ) основательно потрудиться.

Тем не менее в SecureCRT достаточно старых это сделано успешно и работает именно на всех версиях виндовса. Равно как и всякие kb хуки никаких проблем не вносят в новые системы при запуске самых старых версий...

Patron
14.04.2015, 21:55
Тем не менее в SecureCRT достаточно старых это сделано успешно и работает именно на всех версиях виндовса.Готов встроить любой исходник, какой будет найден или написан.


Равно как и всякие kb хуки никаких проблем не вносятКак мы уже выяснили - kb хуки нигде никаких проблем не вносят.

form
14.04.2015, 21:57
Готов встроить любой исходник, какой будет найден или написан.

Увы, продукт коммерческий и исходников нет...
Сам же в виндовс пока лезть не хочу - куда интереснее есть темы на PDP-11 :)

Patron
21.04.2015, 16:11
По ходу тестирования эмулятора в Windows 8.1 - обнаружилась серьёзная несовместимость оконной системы Windows 8 со всеми предыдущими версиями Windows ( и со спецификацией Windows ).

В спецификации Windows чётко указано, что невозможно запретить оконной системе Windows отработку сообщения WM_NCACTIVATE при активации окна. А в Windows 8 это возможно !!!

Эта ошибка Windows 8 обнаружилась благодаря ошибке в оконной системе модульного API. Понятно, что мало кто внимательно читает спецификации Windiws, пока всё работает, поэтому оконная система эмулятора в одном из случаев пыталась выбросить сообщение об активации окна. Во всех версиях Windows, совместимых со спецификацией Windows, это не удавалось, поэтому всё работало как надо и ошибка не мешала, а в Windows 8 "ошибки нашли друг друга", сообщение об активации окна стало успешно выбрасываться и стандартная работа программы оказалась нарушена.

MiX
01.05.2015, 12:19
куда интереснее есть темы на PDP-11 :)form, Если интересно можно зайти на DBit,овский RSX. Для этого нужно ввести адрес в конфиге:

Connect_to_IP = 108.61.242.73
Connect_to_Port= 23

form
01.05.2015, 15:57
form, Если интересно можно зайти на DBit,овский RSX. Для этого нужно ввести адрес в конфиге:

Connect_to_IP = 108.61.242.73Connect_to_Port= 23

Я главный (если не единственный) поставщик фиксов для D.Bit ;)
Поди знаю что где :)

Patron
02.05.2015, 18:38
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_02.05.15_20-12

Изменения:

1. Улучшена совместимость с оконной системой Windows.

2. В каталог HX Sources\XXDP\ добавлен исходник драйвера HX.SYS для XXDP2 и ТМОС-2.

3. Добавлен образ диска TMOS-2_HX.DSK и файл конфигурации TMOS-2_HX_COM.cfg для загрузки ТМОС-2 через HX.

MiX
04.05.2015, 11:53
3. Добавлен образ диска TMOS-2_HX.DSK и файл конфигурации TMOS-2_HX_COM.cfg для загрузки ТМОС-2 через HX. Попробовал через IP - не проходит. Показывает 001002.

Patron
04.05.2015, 14:52
Попробовал через IP - не проходит. Показывает 001002.Типа, вместо вторичного загрузчика RT-11 по адресу 1000 оказался ноль.

Проблема вызвана тем, что в файле конфигурации HX_IP.cfg используется RT-11 Warm Boot, позволяющий устанавливать при загрузке время и дату, но работающий только с RT-11.

Чтобы грузить по HX любую операционку - нужно использовать Cold Boot, для чего выкинуть из файла конфигурации все упоминания про UKNCcomSender, а в разделе [ODT_Loader.ini] - заменить начальный загрузчик на TU58_Boot_(177560).odt или HX Boot.odt :



[ODT_Loader.ini]
ScriptFile = TU58_Boot_(177560).odt
InitialStateOf[Load]=0
SaveChangesFor[Load]=0
Wait_at_Prompt_sec=1
PromptChar="@"


---------- Post added at 14:52 ---------- Previous post was at 13:54 ----------

Чтобы уменьшить путаницу с загрузчиками - начиная со следующего релиза у RT-11 Warm boot изменится начальное сообщение.

Сейчас начальное сообщение такое:


@10000G
HX 2.0 - Warm boot v1.3 177560



Будет такое:


@10000G
HX 2.0 - RT-11 Warm boot v1.3 177560

form
04.05.2015, 15:06
при загрузке время и дату, но работающий только с RT-11

А в чем проблема передавать дату в RT-11, но не мешать загрузке других систем? Простая проверка (B/RT) показывает, что E11 успешно справляется с этим.

Patron
04.05.2015, 16:12
А в чем проблема передавать дату в RT-11, но не мешать загрузке других систем?Проблема в том, что модифицированный первичный загрузчик RT-11 умеет грузить только RT-11, поэтому если указать именно его в файле конфигурации в качестве начального загрузчика, то ничего кроме RT-11 загрузить не получится.

Чтобы стандартный первичный загрузчик ( находящийся не в отдельном файле, передаваемом с впечатыванием даты, а в нулевом блоке диска ) мог устанавливать дату при загрузке - эту дату надо записать в память на этапе записи в память загрузочного ODT-скрипта, для чего требуется существенно доработать ODT_Loader.

Плюс такого решения в том, что один первичный загрузчик сможет осуществлять и Cold boot, и Warm boot, а минус в том, что увеличение объёма кода может заставить выкинуть из первичного загрузчика какую-то из уже реализованных функций ( например - использование сжатия в первичном драйвере ).

Дело в том, что содержимое памяти в момент загрузки произвольно, поэтому для различения режимов Cold boot и Warm boot - загрузчику надо передавать не только дату и время, но и контрольный код, позволяющий точно определить режим загрузки. Кроме того, загрузочное сообщение должно точно идентифицировать режим загрузки, для чего необходимо хранить заметно больше кодов ASCII.

---------- Post added at 16:12 ---------- Previous post was at 15:42 ----------

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

Но тогда этот ODT-скрипт должен научиться различать первичные загрузчики HX из разных операционных систем, чтобы патчить только первичный загрузчик RT-11, из-за чего скрипт ( скорее всего ) раздуется настолько, что весьма неторопливый процесс записи скрипта в пульте через ODT_Loader имеет все шансы продолжаться около минуты.

form
04.05.2015, 18:23
По-моему куда проще просто передавать время в RT-11 на этапе загрузки и при том не иметь абсолютно никаких конфликтов с другими системами (а про HX, а равно и любое другое устройство с этой точки зрения и вовсе понятия не иметь).

Patron
04.05.2015, 19:56
По-моему куда проще просто передавать время в RT-11 на этапе загрузкиПонятно, как делать такое в эмуляторе, но что надо делать при холодной загрузке стандартной RT-11 на реальном компе PDP-11. В какой момент, кем, как и куда именно должна быть передана дата в ходе загрузки ?

form
04.05.2015, 20:26
В какой момент, кем, как и куда именно должна быть передана дата в ходе загрузки ?
По идее достаточно записать в адреса 5000-5004 время-дату в формате RT-11, прочитать аппаратный загрузчик с диска, обнулить адрес 0 и передать управление на адрес 2. На всякий случай R0 должен содержать номер устройства, R1 - CSR устройства.

Patron
04.05.2015, 21:05
По идее достаточно записать в адреса 5000-5004 время-дату в формате RT-11, прочитать аппаратный загрузчик с диска, обнулить адрес 0 и передать управление на адрес 2.А ещё изменить начальное сообщение первичного загрузчика с "Cold boot" на "Warm boot".

Про то и речь, что всё это должен сделать введённый с пульта скрипт. А так как сам скрипт текущей даты не знает - надо добавить в протокол HX команду запроса даты и времени у сервера, которую скрипт сможет вызвать. Но скрипт должен нормально работать и с предыдущими версиями сервера, где такой команды нет, поэтому в итоге размер скрипта существенно возрастёт, что сильно увеличит время ввода скрипта с пульта.

Это в эмуляторе всё рядом и быстро, а при дистанционном вводе с пульта - для заполнения каждого слова памяти загружаемого компа нужно переслать через COM-порт 28 байтов, поэтому даже ввод с пульта микроскопического загрузчика TU58_Boot_(177560).odt размером всего 31 слово - занимает ~ 12 секунд. Значит, если загрузчик раздуется до 310 слов, то его автоматический ввод с пульта займёт 2 минуты.

form
05.05.2015, 03:19
А ещё изменить начальное сообщение первичного загрузчика с "Cold boot" на "Warm boot".

Запись 0 по адресу 0 уже меняет это самое состояние. Зачем еще что-то менять? Ради красивой надписи не несущей нагрузки?

---------- Post added at 06:12 ---------- Previous post was at 06:11 ----------


Про то и речь, что всё это должен сделать введённый с пульта скрипт

И в чем трудность - передать время в рамках скрипта, а скриптом прочитать загрузчик с HX и очистить одну ячейку памяти? Это увеличение всего на 4-6 слов (если вообще не сокращение - не смотрел внимательно код скипта еще).

---------- Post added at 06:13 ---------- Previous post was at 06:12 ----------


в эмуляторе всё рядом и быстро

А вживую нисколько не сложнее.

---------- Post added at 06:19 ---------- Previous post was at 06:13 ----------

Ну а кроме того есть совсем простое решение: добавить в HX функционал передачи времени-даты с host системы и вставить его использование в аппаратный загрузчик (или в драйвер NL где подобные действия уже выполняются для TOY).

form
05.05.2015, 10:08
В сущности достаточно немного расширить функционал odt скриптов - ввести некоторые переменные которые можно было бы писать в скриптах вместо циферок - к примеру дата/время в формате RT-11, в формате RSTS/E. Других систем вроде нет которым можно передать дату-время до загрузки.

Patron
05.05.2015, 14:22
Запись 0 по адресу 0 уже меняет это самое состояние. Зачем еще что-то менять? Ради красивой надписи не несущей нагрузки?Загрузка по HX не всегда идёт гладко, поэтому чем больше точной информации удаётся получить до аварийного завершения - тем лучше.


Это увеличение всего на 4-6 словВчера вроде бы удалось ускорить ввод скрипта через COM-порт без потери совместимости. Осталось ускорить ввод скрипта через TCP/IP. Похоже, что проблема там в ограничении Windows на число IP-пакетов в секунду.


ввести некоторые переменные которые можно было бы писать в скриптах вместо циферок - к примеру дата/время в формате RT-11, в формате RSTS/EТипа, ввести в скрипты макросы в виде последовательности без пробелов, начинающейся с символа '¤'. Если макроса нет в таблицах ODT_Loader - он заменяется нулём, если же макрос опознан - он заменяется целевым значением.

Для начала можно задать такие макросы:



¤RT11_DATE
¤RT11_TIME_50
¤RT11_TIME_60

form
05.05.2015, 14:47
Осталось ускорить ввод скрипта через TCP/IP

Насколько я понял по IP пока есть только один успешный случай через конкретную железку :) Ну згрузку в эмуляторе не считаем :)

---------- Post added at 17:47 ---------- Previous post was at 17:46 ----------


Для начала можно задать такие макросы

Да, так было бы удобно.

Patron
06.05.2015, 20:31
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_06.05.15_17-05 (http://emulator.pdp-11.org.ru/VT52/distr/VT52_06.05.15_17-05.rar)

Изменения:

1. Теперь объект ODT_Loader сообщает продолжительность загрузки скрипта.

2. При загрузке скриптов добавлена поддержка макросов ¤RT11_DATE, ¤RT11_TIME_50_HI, ¤RT11_TIME_50_LO, ¤RT11_TIME_60_HI, ¤RT11_TIME_60_LO. Пример использования макросов - в скрипте TU58_WarmBoot_(177560).odt

3. Добавлен скрипт TU58_WarmBoot_(177560).odt для загрузки любой операционной системы с серверов HX и TU58 с установкой даты и времени при загрузке RT-11. Файлы конфигурации HX_IP.cfg и HX_COM.cfg изменены для использования данного скрипта.

4. Изменены стартовые сообщения загрузчиков HX, исходники драйверов и загрузчиков обновлены.

MiX
07.05.2015, 23:09
Patron, Спасибо за релиз.
Еще вопрос. А как загрузить ДВК из под RT11 другого ДВК. Типа один ДВК-хост через 176560 передаёт НХ загрузку на 176560 ДВК-клиент.
Спасибо.

Patron
08.05.2015, 03:17
А как загрузить ДВК из под RT11 другого ДВК. Типа один ДВК-хост через 176560 передаёт НХ загрузку на 176560 ДВК-клиент.С HX такое не получится, потому что сервер HX реализован только для Windows. Сервер TU58 тоже есть только для PC, но есть аппаратные эмуляторы TU58, с которых можно загрузиться без PC, например такой (http://www.torok.info/computing/pdp11/tu58/):

http://www.torok.info/computing/pdp11/tu58/tu58-arduino.png (http://www.torok.info/computing/pdp11/tu58/)

form
08.05.2015, 04:40
Еще вопрос. А как загрузить ДВК из под RT11 другого ДВК. Типа один ДВК-хост через 176560 передаёт НХ загрузку на 176560 ДВК-клиент.

Ну с HX как бы очевидно - надо писать софт. А так - в DECUSовских образах можно поискать - там были варианты такого.

MiX
08.05.2015, 07:37
Patron, Не обязательно использовать НХ протокол, а воспроизвести (в эмуляторе) саму возможность загрузки однотипных компьютеров. Например это умели делать КУВТы.

Patron
08.05.2015, 14:06
Не обязательно использовать НХ протокол, а воспроизвести (в эмуляторе) саму возможность загрузки однотипных компьютеров. Например это умели делать КУВТы.Проблем с эмуляцией сети ДВК на RS-232 быть не должно - надо только найти такую систему с толковым описанием.

Patron
17.02.2016, 19:34
.

Обновилась текущая сборка эмулятора терминала типа VT52: VT52_17.02.16_19-18 (http://emulator.pdp-11.org.ru/VT52/distr/VT52_17.02.16_19-18.rar)

Изменения:

1. Объекту ODT_Loader добавлена настройка: SendDelay_MS, позволяющая при необходимости замедлять вывод. Значение задержки после вывода каждого символа указывается в миллисекундах, минимальное значение: 0, максимальное: 200 , по умолчанию: 0.

2. Теперь при копировании посекторного образа DX на привод HX, подключенный к каталогу Windows - размер файла образа DX обрезается с 256512 до 256256.

MiX
26.02.2016, 12:57
Обнаружилась ошибка.
Если на НХ привод подключить корневой диск и запускать с него программу то появляется окно.
http://2.firepic.org/2/images/2016-02/26/gpv647cbuqmp.jpg
При повторном запуске эмулятора при нажатии на клавишу Ентер не показывает ничего. Приходится перезагружать ДВК.
Если работать с образом DSK то всё нормально.

И ещё просьба, желательно в эм. pdp11 чтоб загрузка начиналась с того привода, который показан на панели (запомнен при предыдущем запуске). Типа динамическая смена диска "BootDeviceAlias = *"

Спасибо.

hobot
26.02.2016, 17:02
И ещё просьба, желательно в эм. pdp11 чтоб загрузка начиналась с того привода, который показан на панели (запомнен при предыдущем запуске). Типа динамическая смена диска "BootDeviceAlias = *"
Стоп стоп стоп! Это зачем? Есть загрузочный диск прописанный в конфиге, что ещё надо, все загрузки которые делались руками
при прочих равных в 90% случаев при повторных запусках эмулятора физически не возможны, поскольку образы монтируются
только на период 1-й сессии работы, а фраза про панель (запомнен при предыдущем запуске) совсем не понятно очём? Я как будто
другим эмулятором пользуюсь.

BYTEMAN
26.02.2016, 17:44
И ещё просьба, желательно в эм. pdp11 чтоб загрузка начиналась с того привода, который показан на панели (запомнен при предыдущем запуске). Типа динамическая смена диска "BootDeviceAlias = *"

Я бы попросил похожее: чтобы диск, с которого бутается HX, можно было выбрать без правки конфига... И.е. хочу с HX5 бутоваться - прямо в VT52.exe где-то ткнул и с него загрузка пошла.

hobot
26.02.2016, 22:39
бутоваться - прямо в VT52.exe
шикарно )

Только вы определитесь, о каком эмуляторе речь для начала )


где-то ткнул и с него загрузка пошла.
Где пошла? Куда?

BYTEMAN
27.02.2016, 01:05
hobot, писал с телефона, сбивчиво немного получилось) Хочется простого - сейчас для загрузки реальной машины в эмуляторе vt52 есть кнопка Boot HX0, которая засылает начальный загрузчик через одт и бутает машинку. Идея чтобы бут шел не только с hx0, а с текущего выбранного диска (там, где образ можно переприцепить, снизу, в строке статуса, нувыпоняли надеюсь). Не критично, но было бы приятно) Может быть такое уже Patron давно реализовал, да я просто не в курсе как этим воспользоваться...

Vamos
27.02.2016, 06:37
сейчас для загрузки реальной машины в эмуляторе vt52 есть кнопка Boot HX0
в vt52 нет кнопки, кнопка есть в HX_Server а рядом кнопка для выбора образа, нажимаем на "Boot HX0" появляется список HX0= HX1= и т.д. выбираем нужный и кнопкой что правее выбираем образ для этого номера.

form
27.02.2016, 08:16
в vt52 нет кнопки
Не только есть, но и есть в конфигах по умолчанию для HX.

Vamos
27.02.2016, 10:52
Взято отсюда http://zx-pk.ru/showthread.php?t=20092&p=858047&viewfull=1#post858047, покажите пожалуйста где тут кнопка
56175

form
27.02.2016, 11:03
где тут кнопка
Конфиг какой используется?
Вот пожалуйста - кнопка на картинке.

Vamos
27.02.2016, 11:25
Вот пожалуйста - кнопка на картинке.
при таком подходе просить сделать загрузку с выбранного привода это моветон :)

form
27.02.2016, 11:55
при таком подходе просить сделать загрузку с выбранного привода это моветон
Это не я просил - меня все устраивает с точки зрения начальной настройки голой машины, а с точки зрения работы HX все-равно непригоден :)

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

Строго говоря, загрузка с любого HX делается без какой-либо модификации программы минут за 5 :)

hobot
27.02.2016, 16:38
Vamos, да вот я о том же, конфиг HX_COM там можно самому этих "батонов" напечь.



[ODT_Loader_Button.ini]
SB_Part_Data=nPosition[-1] | nPriority[7] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode=2
IsInverted=0
ButtonON_Text= Boot HX0
ButtonOFF_Text=Boot HX0
StateName=Load
ButtonWidth=120
ButtonHeight=18
ButtonFontSize=12
ButtonFontWeight=600




По умолчанию в конфиге никаких кнопок нет )

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

И снова хочу обратить внимание.
Как правило в HX0 вставлен загрузочный образ, на все другие HX устройства скорее всего в процессе работы
сливаются данные с внешних устройств. Т.о. загрузка именно с нулевого - это как отправная точка, поскольку
можно прервать сессию, кто то может отвлечь, вдруг живое железо на месяцы из строя выйдет, запустив эмулятор
заного (после любого промежутка времени) мы железно грузимся как и полгода назад (как и последняя сессия).
Всё же продумано не просто так )))
Руками нужный загрузочный образ монтируем в HX0 - два клика ?

Patron
27.02.2016, 21:02
Обнаружилась ошибка. Если на НХ привод подключить корневой диск и запускать с него программу то появляется окно.Мне при подключении корневого каталога диска в привод HX вылететь не удалось - ни в Vista, ни в XP.

MiX
27.02.2016, 21:29
http://s017.radikal.ru/i418/1602/b4/6bbc8a9e7c2d.jpg (http://radikal.ru/big/3951018a9b184497b39d4b2b3f0097a6)
Подключение эм.pdp11 конфигурация Server, на VT52 конфигурация HX_IP. После загрузки делаю сброс и загружаю через HX_IP (эм.VT52 и pdp11, образ на диске С:\......\VT52). Далее с корневого диска (в моём случае это диск D:\) делаю запуск и вылезает окно ошибки.

Patron
27.02.2016, 22:00
Не вылетает.

Думаю, что проблема не в том, что каталог корневой, а в чём-то другом. Можно создать в корневом каталоге D:\ подкаталог, подключить его - и запустить оттуда. Если тоже вылетит - проблема в том, что после запроса памяти для виртуального диска программа не проверяет, была ли память выделена на самом деле. В конфигурациях с небольшим количеством доступной памяти это может создавать проблему.

MiX
27.02.2016, 22:21
Думаю, что проблема не в том, что каталог корневой, а в чём-то другом.
Когда подключена папка то ошибки нет, но RT11 программа трапится.

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

Можно поступить проще. Подключить в эм.pdp11 к диску HD корневой диск и запустить программу,ошибка появится.

Patron
27.02.2016, 22:28
Когда подключена папка то ошибки нет, но RT11 программа трапится.Программа не трапится, если сделать SET EM ON или заменить в конфиге процессор на ВМ2 и плату на МС1201.02

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


Можно поступить проще. Подключить в эм.pdp11 к диску HD корневой диск и запустить программу,ошибка появится.Не хочет вылетать.

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

MiX
27.02.2016, 22:36
Patron, Вроде отловил баг. При подключении диска С:\ программа запускается нормально, но если эту программу запустить с диска D:\ то вылезает ошибка.
Разумеется программа есть на обоих дисках.
Файловая система на диске С:\ FAT32, на D:\ NTFS.