\begin{document}
-\begin{psmatrix}[mnode=oval, colsep=1.91cm, rowsep=1cm]
+\begin{psmatrix}[mnode=oval, colsep=1.95cm, rowsep=1cm]
[mnode=R,name=vars]{\shortstack[l]{int s, z, c,\\\, strich, punkt;\\opcode aktop,opp;}} &
-[name=calc]{\shortstack{\textbf{calc}\\z:=z*10\\+(c-'0');}} &
-[name=null]{\shortstack{\textbf{null}\\aktop:=DONE;}} \\
+[name=int]{\shortstack{\textbf{int}\\z:=z*10\\+(c-'0');}} &
+[name=blank]{\shortstack{\textbf{blank}}} \\
%%
[mnode=R,name=res]{sys\_res} &
[name=sign]{\shortstack{\textbf{sign}\\s:=-1;}} &
-[name=alu]{
- \shortstack{
- \textbf{ALU}\\
- siehe Codeschnipsel
- }
-} \\
+[name=null]{\shortstack{\textbf{null}\\aktop:=DONE;}} \\
%%
[name=idle]{\shortstack{\textbf{idle}\\strich:=0;\\punkt:=1;\\opp:=NOP;}} &
[name=read]{\shortstack{\textbf{read char}\\z:=0;\\s:=1;}} &
-[name=done]{\shortstack{\textbf{done}}} \\
+[name=calc]{
+ \shortstack{
+ \textbf{calc}\\
+ siehe Listing
+ }
+} \\
%%
[mnode=R,name=void]{} &
-[name=err]{\shortstack{\textbf{error}}} \\
+[name=err]{\shortstack{\textbf{error}}} &
+[name=done]{\shortstack{\textbf{done}}} \\
\end{psmatrix}
\psset{arrows=->, shortput=nab}
\ncline[linestyle=dotted]{res}{idle}
\ncline[linestyle=dotted]{void}{err}
-\ncarc[arcangle=24]{done}{idle}
+\ncarc[arcangle=0]{done}{idle}
\ncarc[arcangle=0]{err}{idle}
\ncarc[arcangle=0]{idle}{read}\ncput*[npos=.50]{do\_it$\uparrow$}
\nccurve[angleA=45,angleB=75,ncurvA=2,ncurvB=2]{read}{read}\ncput*{' '}
\ncarc[arcangle=0]{read}{sign}\ncput*[npos=.50]{'-'}
-\ncarc[arcangle=0]{sign}{calc}
-\ncarc[arcangle=50]{read}{calc}\ncput*[npos=.35]{c = '0'\dots{}'9'}
-\nccircle[angleA=-20]{calc}{.78cm}\ncput*[npos=0.39]{c = '0'\dots{}'9'}
-\nccircle[angleA=80,angleB=0,loopsize=0]{calc}{.66cm}\ncput*{' '}
+\ncarc[arcangle=0]{sign}{int}
+\ncarc[arcangle=50]{read}{int}\ncput*[npos=.35]{c = '0'\dots{}'9'}
+\nccircle[angleA=0]{int}{.78cm}\ncput*[npos=0.5]{c = '0'\dots{}'9'}
+
+\ncarc[arcangle=15]{int}{blank}\ncput*[npos=.50]{' '}
+\nccircle[angleA=0]{blank}{.70cm}\ncput*[npos=0.5]{' '}
+
+\ncarc[arcangle=67]{blank}{calc}\ncput*[npos=.80]{aktop = '+','-','*','/'}
+\ncarc[arcangle=0]{blank}{null}\ncput*[npos=.50]{aktop = '\textbackslash 0'}
-\ncarc[arcangle=0]{calc}{alu}\ncput*[npos=.50]{aktop = '+','-','*','/'}
-\ncarc[arcangle=0]{calc}{null}\ncput*[npos=.50]{aktop = '\textbackslash 0'}
-\ncarc[arcangle=0]{null}{alu}
+\ncarc[arcangle=0]{int}{calc}\ncput*[npos=.70]{aktop = '+','-','*','/'}
+\ncarc[arcangle=0]{int}{null}\ncput*[npos=.50]{aktop = '\textbackslash 0'}
+\ncarc[arcangle=0]{null}{calc}
-\ncarc[arcangle=0]{alu}{read}\ncput*[npos=.50]{calc\_done$\uparrow$}
-\ncarc[arcangle=0]{alu}{done}\ncput*[npos=.50]{aktop == DONE}
+\ncarc[arcangle=0]{calc}{read}\ncput*[npos=.45]{else}
+\ncarc[arcangle=0]{calc}{done}\ncput*[npos=.50]{aktop = DONE}
\end{document}