PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Судя по поведению TU58em.exe, который весьма точно эмулирует реальный TU58 - он совершенно обалдевает, получая единицы вместо нулей и не после установки BREAK, а перед ней ( большинство эмуляторов последовательных портов ведь сначала отправляют передаваемый байт и только потом делают задержку выставления своей готовности - а надо наоборот ).
Про это я уже говорил - он совершенно не работает на PCI и USB COM портах (по крайней мере на тех что попадались), но прекрасно себя чувствует на стандартных PCшных портах как вживую так и под VMWare. Правда мне никогда в голову не приходила мысль подключить его к эмулятору
---------- Post added at 03:02 ---------- Previous post was at 02:57 ----------
Кстати насчет точности, по описанию автора, этот эмулятор вроде не работает с RSX. Видимо точность ограничена.
Все не доходят руки попробовать свой эмулятор сделать, чтобы не досовский был. Полное описание протокола есть...
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Я про досовский. Вроде TU58.EXE...
А TU58EM у меня вообще ни разу не завелся (если я правильно понял что это)
Правда я его мог пробовать завести на кривых портах как раз.
---------- Post added at 03:23 ---------- Previous post was at 03:07 ----------
Попробовал TU58EM с тем портом что есть - разумеется не работает нифига. Сам TU58EM повис намертво и убить нельзя![]()
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Кстати, в коде драйвера DD.SYS есть одна небольшая неточность:
Выставляя BREAK до готовности порта - единственное, чего можно добиться - это испортить текущий передаваемый байт.Код:MOV #177777,@TOBFRA ;;;SEND ONES FOR TIMING BIS #<CS$INT!CS$BRK>,@TOCSRA ;;;SET BREAK AND INTERRUPT ENABLE CALL OUTRTN ;;;OUTPUT WAIT MOV #177777,R5 ;SEND RUBOUT FOR TIMING CALL OUTCHR ; AND WAIT ON IT BIC #CS$BRK,@TOCSRA ;SHUT OFF BREAK
Чтобы установить BREAK на линии в тот момент, когда передаётся стартовый бит только что отправленного в порт байта - нужно дождаться готовности порта, потому что в реальных последовательных портах признак готовности передатчика устанавливается не позже середины стартового бита текущей посылки.
Поэтому, более корректный код должен выглядеть так:
Кроме того, если авторы драйвера думали, что отправив второй раз единицы в порт и сняв BREAK после прерывания готовности они опять "превратили единицы в нули" - это было их ошибкой.Код:MOV #177777,@TOBFRA ;;;SEND ONES FOR TIMING BIS #CS$INT,@TOCSRA ;;;SET INTERRUPT ENABLE CALL OUTRTN ;;;WAIT FOR START BIT BIS #CS$BRK,@TOCSRA ;;;SET BREAK MOV #177777,R5 ;SEND RUBOUT FOR TIMING CALL OUTCHR ; AND WAIT ON IT BIC #CS$BRK,@TOCSRA ;SHUT OFF BREAK
Последний раз редактировалось Patron; 05.02.2013 в 02:11.
Независимо от того, что они думали, они получили абсолютно правильный результат. А уж из каких соображений это сделано...
Во всяком случае драйвер брошен давно, в последних версиях он даже не поддерживается и просто лежит довеском, а работает как часы как на живом TU58 так и на TU58.EXE.
А вообще в доке по TU58 было написано, что нужно включить BREAK и "послать" 6-7 нулей, после чего снять BREAK и послать ноль (или несколько) - что-то в этом роде, на память не помню.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Восстановил 386 и опробовал в качестве TU58.
Можно будет потестить что-нибудь с точки зрения PC...
Код:Commands are Help, Boot, List, Setup, Map and Test. Type a command then press the RETURN key: B DD/A CSR address = 176520 Trying DD0 Starting system from DD0 RT-11FB (S) V05.07 .SET USR NOSWAP .SH DEV Device Status CSR Vector(s) ------ ------ --- --------- DD Resident 176520 320 324 DU Installed 172150 154 XL Installed 176500 300 304 VM Installed 177572 250 .
---------- Post added at 07:56 ---------- Previous post was at 07:32 ----------
Посмотрел тех доку на TU58. Похоже я не его рекомендации вспомнил
В доке рекомендуется такой порядок инициализации:
- включить BREAK
- послать два нуля
- когда появится готовность выключить BREAK
- послать два INITа (4)
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Спаял шнур COM-Стык С2. Подключил, запускаю HX Server и ничего не происходит. В программе написано: Ожидание приглашения. Конфиг запущен.
Со стороны УКНЦ вообще ничего. Загрузка со Стыка включена.
Сначала надо проверить, принимают ли приёмники обеих сторон то, что передаёт другая сторона.
Можно запустить на PC любую терминалку, настроенную на работу с используемым COM-портом, а на УКНЦ - смотреть в пульте содержимое регистров С2: 176570 - 176576
Если нажать клавишу в окне терминалки на PC - в регистре состояния приёмника С2 ( 176570 ) должен установиться признак готовности, а в регистре данных ( 176572 ) - появиться код нажатой клавиши.
Если же записать ASCII-код в регистр данных передатчика С2 ( 176576 ) - этот же символ должен появиться в окне терминалки на PC.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)