Выкладывай, не зря же трудился? Сюда или вот в эту тему например http://zx.pk.ru/showthread.php?t=18420
Выкладывай, не зря же трудился? Сюда или вот в эту тему например http://zx.pk.ru/showthread.php?t=18420
Вобщем вот - кому надо, автоконфигуратор железа. Может чего интересного найдется :)
В последней версии "Эмулятора ДВК" адаптер COM-порта якобы стал способен максимально качественно транслировать и байты, и сигналы BREAK в обоих направлениях между двумя COM-портами.
Для проверки этого на реальных портах нужно иметь PDP-11 и две PC, подключив PDP-11 к одному из портов первой PC ( например - COM1 ), запустив эмулятор с конфигом из приложения к этому сообщению ( COM1-COM2.cfg ), соединив COM2 со второй PC и запустив там эмулятор TU58.
Мне такое на реальном оборудовании провернуть слабо.
...
Фокус в том, что даже когда один порт из "соединённой пары" только принимает BREAK ( от PDP-11 ), а другой только передаёт ( на PC с эмулятором TU58 ) - тестирование кода реализации адаптера порта происходит в двух направлениях.
---------- Post added at 13:10 ---------- Previous post was at 13:06 ----------
Главная сложность транслирования BREAK под Windows в том, что Windows сообщает о начале BREAK, но ничего не "говорит" о его завершении. Приходится держать BREAK от истечения заранее заданной минимальной продолжительности BREAK до приёма байта в том порту, где до этого был BREAK ( смотря что случится позже ).
OK, сейчас сооружу что-нибудь с двумя портами.
Проверил.
PDP-11/83 -> (COM2 <> COM1) -> TU58
TU58 не видит BREAK вообще. Если пропустить ожидание BREAK, загрузка начинается, но виснет еще на этапе отправки загрузчика из TU58.
COM порты полноценные, COM2 проверен терминалом, COM1 проверен попыткой E11 прочитать DD - читает.
---------- Post added at 22:03 ---------- Previous post was at 21:53 ----------
Поменял TU58 на VT220 - работает (BREAK не использовал).
---------- Post added at 22:09 ---------- Previous post was at 22:03 ----------
Завернул дальний конец обратно на PDP-11...
Тесты:Скрытый текст
Код:TEST1:: .WORD T1
MOV #BUFSZ,R1
CLR R0
10$: TSTB @#TCS
BPL 10$
MOVB R0,@#TDA
INC R0
SOB R1,10$
BR .
TEST2:: .WORD T2
TSTB @#TCS
BPL .-4
BIS #BRK,@#TCS
BR .
TEST3:: .WORD T3
TSTB @#TCS
BPL .-4
MOVB #123,@#TDA
BIS #BRK,@#TCS
BR .
TEST4:: .WORD T4
MOV #BUFSZ,R1
CLR R0
TSTB @#TCS
BPL .-4
BIS #BRK,@#TCS
10$: TSTB @#TCS
BPL 10$
MOVB R0,@#TDA
INC R0
MOV R1,FLAG
SOB R1,10$
BR .
TEST5: .WORD T5
MOV (PC)+,R1
DELAY: .WORD 50.
MOV R1,FLAG
ADD #50.,DELAY
CMP DELAY,#1050.
BEQ 10$
SUB #2,TESTP
10$: TSTB @#TCS
BPL .-4
MOVB #252,@#TDA
SOB R1,.
BIS #BRK,@#TCS
BR .
TEST6: .WORD T6
MOV #350.,R0
MOV #200.,R1
10$: TSTB @#TCS
BPL .-4
MOVB #-1,@#TDA
SOB R0,.
BIS #BRK,@#TCS
SOB R1,.
CLR @#TCS
BR .
TEST7:: .WORD T7
TSTB @#TCS
BPL .-4
MOVB #252,@#TDA
10$: BIT #4000,@#RCS
BEQ 10$
INC FLAG
BR .
TEST8:: .WORD T8
MOV #6,R1
TSTB @#TCS
BPL .-4
10$: CLR @#TDA
BIS #BRK,@#TCS
TSTB @#TCS
BPL .-4
MOV R1,FLAG
SOB R1,10$
CLR @#TCS
BR .
TEST9:: .WORD T9
MOV #BUFSZ,R1
10$: MOVB R1,@#TDA
SOB R1,10$
BR .
[свернуть]
Результат:Скрытый текст
Код:TEST #1
000000 000001 000002 000003 000004 000005 000006 000007
FLAG: 000000
TEST #2
120000 000000
FLAG: 000000
TEST #3
120000 000000
FLAG: 000000
TEST #4
120000 000000
FLAG: 000001
TEST #5
120000 000000
FLAG: 000062
TEST #5
120000 000000
FLAG: 000144
TEST #5
120000 000000
FLAG: 000226
TEST #5
120000 000000
FLAG: 000310
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 000372
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 000454
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 000536
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 000620
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 000702
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 000764
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 001046
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 001130
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 001212
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 001274
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 001356
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 001440
TEST #5
120000 120000 120000 120000 120000 120000 120000 120000
FLAG: 001522
TEST #5
120000
FLAG: 001604
TEST #5
120000 120000
FLAG: 001666
TEST #5
120000 120000
FLAG: 001750
TEST #6
120000 000347
FLAG: 000000
TEST #7
000252
FLAG: 000000
TEST #8
120000 000000
FLAG: 000001
TEST #9
000007 000001
FLAG: 000000
[свернуть]
То есть BREAK все-таки как-то передается. Может для 386 PC этого мало :)
А если в этой же конфигурации загрузить на PC RT-11 под E-11, то тогда TU58 BREAK увидит.
В приложении конфиг для эмулятора ДВК DVK+COM1.cfg в котором второй порт эмулируемой ДВК повешен на COM1.
Можно сравнить с работой E-11 с TU58 через этот же порт.
На com0com всё идеально работает.
...