\begin{document}
-\begin{psmatrix}[mnode=oval, colsep=2cm, rowsep=2cm]
-[mnode=R,name=vars]{int bc := 0;} &
+\begin{psmatrix}[mnode=oval, colsep=2.5cm, rowsep=2.5cm]
+[mnode=R,name=res]{sys\_res\_n} &
[name=idle]{\shortstack{\textbf{idle}\\bc:=0;}} &
-[name=rsp]{\shortstack{\textbf{read}\\\textbf{stopbit}}} \\
+[mnode=R,name=vars]{int bc := 0;} \\
%%
-[mnode=R,name=res]{sys\_res\_n} &
[name=rs]{\shortstack{\textbf{read}\\\textbf{startbit}}} &
-[name=rb]{\textbf{read}} \\
+[name=rb]{\shortstack{\textbf{read}\\wait BT;}} &
+[name=rsp]{\shortstack{\textbf{read}\\\textbf{stopbit}\\rxd\_new:=1;}} \\
\end{psmatrix}
\psset{arrows=->, shortput=nab}
\ncline[linestyle=dotted]{res}{idle}
-
-\ncarc[arcangle=35]{idle}{rs}\ncput*[npos=.38]{\shortstack{rxd$\downarrow$}}
-\ncarc[arcangle=35]{rs}{idle}\ncput*[npos=.38]{rxd=1}
-
+%% receive
+\ncarc[arcangle=15]{idle}{rs}\ncput*[npos=.38]{\shortstack{rxd$\downarrow$}}
+\ncarc[arcangle=15]{rs}{idle}\ncput*[npos=.38]{rxd=1}
\ncline{rs}{rb}\ncput*{rxd=0}
-
-\ncline{rb}{rsp}\ncput*{$bc=8$}
-\nccircle[angle=180]{rb}{.5cm}\ncput*{$bc<8$}
-
+\ncline{rb}{rsp}\ncput*{$bc \ge 8$}
+\nccircle[angle=0]{rb}{.7cm}\ncput*{$bc<8$}
\ncline{rsp}{idle}
\end{document}