Авторы драйвера DD.SYS создали любопытную засаду для тех, кто эмулирует последовательные порты:
Перед установкой сигнала BREAK драйвер DD.SYS отправляет биты 11111111 в передающий порт и только затем устанавливает 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
Но если бы после отправки единиц в порт - драйвер DD.SYS ещё и дождался прерывания готовности и только потом установил BREAK - засада из-за этого могла бы стать ещё глубже, потому что в реальном порту при этом успевает передаться ТОЛЬКО СТАРТОВЫЙ БИТ.




Ответить с цитированием