--- /dev/null
+\documentclass{minimal}
+\pagestyle{empty}
+
+\usepackage{pstricks}
+\usepackage{pst-node}
+
+\begin{document}
+
+\begin{psmatrix}[mnode=circle, colsep=3cm, rowsep=2cm]
+[mnode=R,name=res]{sys\_res} &
+[name=idle]{\shortstack{\textbf{idle}\\bs = 0\\take=0\\do\_it=0}} &
+[name=take]{\shortstack{\textbf{\"ubernehmen}\\take = 1\\char = $b_0$}} \\
+%%
+[name=doit]{\shortstack{\textbf{enter}\\do\_it = 1}} &
+[name=read]{\shortstack{\textbf{read}\\$b_0$ = data}} &
+[name=bs]{\shortstack{\textbf{l\"oschen}\\backspace = 1}} \\
+\end{psmatrix}
+
+\psset{arrows=->, shortput=nab}
+
+\ncline[linestyle=dotted]{res}{idle}
+
+\ncarc[arcangle=35]{idle}{read}\ncput*[npos=.33]{new\_data$\uparrow$}
+\ncarc[arcangle=35]{read}{idle}\ncput*[npos=.33]{ung\"ultiges byte}
+
+\ncarc[arcangle=-25]{read}{bs}\ncput*[npos=.50]{$b_0 == 0x0e$}
+\ncarc[arcangle=25]{read}{doit}\ncput*[npos=.50]{$b_0 == 0x1c$}
+\ncarc[arcangle=-20]{read}{take}\ncput*[npos=.40]{g\"ultiges zeichen}
+
+\ncarc[arcangle=-15]{bs}{idle}
+\ncarc[arcangle=25]{doit}{idle}\ncput*[npos=.50]{finnnnnished\_result$\uparrow$}
+\ncarc[arcangle=-25]{take}{idle}
+\end{document}
DIGIT = '0' \textbar '1' \textbar '2' \textbar '3' \textbar '4' \textbar '5' \textbar '6' \textbar '7' \textbar '8' \textbar '9' ;
-UNSIGNED = DIGIT { DIGIT } ;
+UNSIGNED = DIGIT \{ DIGIT \} ;
OPERAND = ['-'] UNSIGNED ;
an modul history: 8 bit char (out), 1 bit take (out), 1 bit backspace (out)
-an modul parser: 1 bit do\_it (out)
+an modul parser: 1 bit do\_it (out), 1 bit finnnnnished\_result
\paragraph{History}
zu modul alu: 32 bit operator1 (out), 32 bit operator2 (out), 32 bit result (in), 1 bit do\_calc (out), 1 bit calc\_done (in)
+zu modul scanner: 1 bit finnnnnished\_result (out) (selbe signal wie an history modul. kann man das
+doppelt nehmen?)
+
\paragraph{Bin/Dez-Converter}
TODO
\label{fig:rs232-rs}
\end{figure}
+\subsection{Scanner}
+\begin{figure}[!ht]
+\includegraphics[width=0.9\textwidth]{sm/scanner.pdf}
+\centering
+\caption{Statemachine zum Scannen des Inputs der PS/2 Schnittstelle}
+\label{fig:rs232-rs}
+\end{figure}
+
+\begin{itemize}
+\item \textbf{idle}: Setz alle Steuersignale \emph{backspace}, \emph{take} und \emph{do\_it} low.
+\item \textbf{read}: Bei steigender Flanke auf \emph{new\_data} wird das anliegende Byte des
+PS/2-Modules \"ubernommen. Je nach Wert wird in den n\"achsten Zustand gewechselt.
+\item \textbf{enter}: Wurde die Entertaste gedr\"uckt wird der Parser getriggert (\emph{do\_it} ist
+einen Takt lang high). Der Scanner befindet sich so lange in diesem Zustand bis der Parser das
+Ergebnis berechnet hat.
+\item \textbf{l\"oschen}: Teilt dem History Modul mit das letzte Zeichen im Buffer zu l\"oschen
+(\emph{backspace} ist einen Takt lang high).
+\item \textbf{\"ubernehmen}: Wenn ein g\"ultiges Zeichen laut Requirements eingegeben wurde, wird
+jenes Zeichen an \emph{char} angelegt und \emph{take} wird einen Takt lang high gesetzt. Das History
+Modul wird dadurch getriggert das anliegende Zeichen in den Buffer zu \"ubernehmen.
+\end{itemize}
+
+
\subsection{History}
\subsection{Parser}
-\subsection{Control}
+\subsection{Bin/Dez-Converter}
+
+\subsection{ALU}
+
+\subsection{Display}
+\subsection{PC-Kommunikation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%LISTINGS