Там сказано, что бит RX DONE устанавливается через bit_time после очищения RCV ACT, в отношении которого совершенно однозначно утверждается, что бит RCV ACT очищается именно стоповым битом (ошибка!).
Вид для печати
Точно! В случае с BREAK - именно так и есть.
Значит ли это, что если скорость передающего порта меньше скорости принимающего и вместо стопового бита пришёл бит данных - готовность приёма наступит, а если скорость передающего порта больше скорости принимающего и вместо стопового бита пришло неопределённое состояние - готовность приёма не наступит.
Вобщем вот описание битов KDJ11-B SLU. Вполне можно прочитать неоднозначно по крайней мере при моем знании языка :)
В любом случае, понятно что имеется в виду и для реализации вполне достаточно.
Код:TKS
===
Bit(s) Name Status Function
------- --------------- --------------- ------------------------------------------------------------
<15:12> Not used RO Read as zeros.
11 RCV ACT RO The RCV ACT bit is set by the start bit of the serial input
data and is cleared by the stop bit at the end of the serial
input data. The RX DONE bit is set by the next bit time
after RCV ACT is cleared.
<10:8> Not used RO Read as zeros.
7 RX DONE RO The RX DONE bit is set when a character is received and
is ready to be read from the RBUF register. The bit is
cleared by reading the RBUF register and by power-up.
6 RX IE RW The RX IE bit is set when RXIRQ is enabled and a
program interrupt is requested while RX DONE is set
with this bit. The bit is cleared by BUS INIT and by
power-up.
<5:0> Not used RO Read as zeros.
TKB
===
Bit(s) Name Status Function
------- --------------- --------------- ------------------------------------------------------------
15 ERR RO The ERR bit is set when the OVR ERR bit or the FRM
ERR. bit is set. This bit does not generate a program
interrupt and is clear when both of these bits are clear.
14 OVR ERR RO The OVR ERR bit is set when a previous character was
received but was not read before it was overwritten by the
current character.
13 FRM ERR RO The FRM ERR bit is set when the current character has
no stop bit. This bit is used to detect breaks.
12 Not used RO Read as zero.
11 RCV BRK RO The RCV BRK bit is set when the end of the serial data
input remains in the space condition for all 11 bits. The
bit remains set until the serial data input returns to the
mark condition.
<10:8> Not used RO Read as zeros.
<7:0> Input data RO These eight bits are an ASCII character read as input
when RCSR bit 7 is set.
TPS
===
Bit(s) Name Status Function
------- --------------- --------------- ------------------------------------------------------------
<15:8> Not used RO Read as zeros.
7 TX RDY RO The TX RDY bit is set when the XBUF is cleared and
can receive another character. The bit is cleared when the
XBUF is full. It is also set by power-up and by BUS INIT.
6 TX IE RW The TX IE bit is set when TXIRQ is enabled and a
program interrupt is requested while TX RDY is set with
this bit. The bit is cleared by BUS INIT and by power-up.
<5:3> Not used RO Read as zeros.
2 MAINT RW The maintenance bit is set during a self-test that disconnects
the external serial input and connects it to the internal
serial output. This bit is cleared by BUS INIT and by
power-up.
1 Not used RO Read as zero.
0 XMIT BRK RW The XMIT BRK bit is set when the output serial data is
forced into the space condition. The bit is cleared by BUS
INIT and by power-up.
TPB
===
Bit(s) Name Status Function
------- --------------- --------------- ------------------------------------------------------------
<15:8> Not used NA Read as zeros.
<7:0> Output data WO These eight bits are an ASCII character transmitted as
output when XCSR bit 7 is set.
---------- Post added at 00:15 ---------- Previous post was at 00:12 ----------
А черт его знает. Но одно из применений функции BREAK - подстройка параметров линии под терминал. В описании UNIX можно найти эту процедуру. Правда работает это только на мультиплексорах - у DL(V)11 нет нужного функционала.
Сейчас распознаю qbus interfaces для удобства - это единственное описание (кроме внутренностей) по DLV11-J которое я нашел и там вроде расписаны биты которые он использует...
Отличается от битов DL11-W:
http://emulator.pdp-11.org.ru/misc/DL11W_bits.png
Я думаю индикатор break срабатывает только на все нули. Иначе как его собственно отличить от frame error каковым break сам по себе тоже является :)
---------- Post added at 00:35 ---------- Previous post was at 00:34 ----------
А байт, как мы видим, первый и он же последний обычно...
Правда у меня CM7209 есть который шлет BREAK пока не скажешь чтобы перестал...
---------- Post added at 00:37 ---------- Previous post was at 00:35 ----------
Кстати надо будет еще терминалы подключить и посмотреть что они передают.
VT220 к примеру передает длинный break, но сам его отключает.