\end{itemize}
-\subsection{Physikalische Interfaces}
-
-%TODO die pins sind wahrscheilich gefragt
-%wie ist das mit dem clock? externe ungenaue clock + interne pll oder wie?
-
-Interface zum key pad
-
-Interfaces zu VGA, PS/2, RS232
-
-Reset und Clock!
-
-Active Low oder Active High
-
-das ist mir noch nicht ganz klar was die da wollen. was meinen die z.b. mit ``interfaces
-to VGA'' unter ``physical interfaces'' (seite 10 in der exercise.pdf)
-
-``physikalisch'' im sinne der VHDL entity? oder doch den physischen stecker?
-Ersteres wuerde ich unter Logisches Interface verstehen.
-
\begin{landscape}
-\subsection{Logische Interfaces der Module}
+\subsection{Logische und physikalische Interfaces der Module}
\subsubsection{VGA}
\THEAD
\subsection{Verhalten der Interfaces}
+\paragraph{Erlaubte Keyboard-Eingaben}
+
+Als erlaubte Eingabetasten werden die Ziffern \emph{`0'} bis \emph{`9'} am Numpad, die Zeichen
+\emph{`/'}, \emph{`*'}, \emph{`-'} und \emph{`+'} am Numpad, die beiden Enter-Tasten und die Backspace-Taste akzeptiert. Dabei wird auf jede gedrückte Taste nur einmal reagiert. Alle anderen Tasten auf der Tastatur werden ignoriert.
+%warum nur numpad? weil / und * dann über eine shift-kombination erreicht werden müssen und die scancode-behandlung würd ich mir nicht antun wollen
+%ob numlock gedrückt ist oder nicht sollt egal sein - ändert die scancodes nicht AFAIK
+%wird auf eine taste wirklich nur einmal reagiert wenn man z.B. die 0 hält und CTRL drückt und wieder los lässt?
+
+Während eine Berechnung durchgeführt wird, sind die Tastatureingaben wirkungslos.
+
+%wie wärs mit einem easter egg...
+
+\paragraph{Overflows}
+Tritt ein Overflow während der Berechnung auf -- entweder in einem Zwischenergebnis, oder im
+Endergebnis -- dann wird der Fehlerstring ``ERROR'' in der Ergebniszeile ausgegeben.
+%TODO aufwendigere fehlermeldung? zb "ERROR: OVERFLOW"
+
+\paragraph{Fehlerhafte Eingaben}
+Entspricht eine zu berechnende Eingabezeile nicht dem Format der Regular Expression aus Requirement
+Req.2, so wird der Fehlerstring ``ERROR'' in der Ergebniszeile ausgegeben.
+%TODO aufwendigere fehlermeldung? zb "ERROR: FEHLERHAFTE EINGABE"
+
+Liegt der Wert eines Zahlen-Literals außerhalb dem Wertebereich eines Signed Long, dann wird der
+Fehlerstring ``ERROR'' am Bildschirm ausgegeben.
+%TODO aufwendigere fehlermeldung? zb "ERROR: ZAHL ZU GROSS"
+
+\paragraph{Bildschirm-Layout}
+Die erste Berechnung nach dem Reset f\"angt links oben an. Die Eingabezeile wandert nach der Eingabe
+von Berechnungen ``runter'', d.h. \"uber der aktuellen Eingabezeile befinden sich die Ein- bzw.
+Ausgaben der vergangenen Berechnungen.
+Wird das Ende des Bildschirms erreicht, so wird automatisch weitergescrollt (entsprechend
+verschwinden dann vergangene Berechnungen inkl. Ergebnisse vom Bildschirm).
+%TODO vielleicht in entsprechend ähnlichem requirement etwas abstrakter werden wie in der angabe
-welche tasten als input erlauben (haben numblock und normale ziffern unterschiedliche scancodes?)?
+Die Eingabezeile wird ebenso dargestellt wie die Eingabe erfolgt ist (Leerzeichen werden dargestellt), von der ersten Textspalte bis zur 70.
+%TODO vielleicht vor jede zeile präfix "IN3: " / "OUT3: "?
-wie werden ueberlaeufe behandelt?
+Alle Textausgaben sind in weißer Schrift dargestellt.
-fehlerhafte eingaben?
+\paragraph{Fehlermeldungen}
+Fehlermeldungen werden als Strings wie ein korrektes Ergebnis in die entsprechende Ausgabezeile geschrieben.
-wie schaut die ausgabe aus?
+Fehlerhafte Eingaben und Fehlermeldungen werden ebenso am Bildschirm dargestellt wie korrekte. Bei Abfrage der History über RS232 werden daher auch fehlerhafte Ein- und Ausgaben dazugezählt.
-was ausgaben bei fehler?
+\paragraph{Taster}
+Bei Drücken des Buttons \emph{A} wird eine einmalige Übertragung des History-Inhalts über
+die RS232-Schnittstelle veranlasst.
+Der Taster wird sowohl beim Drücken, als auch beim Loslassen entprellt mit einer Entprellzeit von 100ms.
-wie kann download oder upload einer history gestartet werden?
+\paragraph{RS232}
+Die Kommunikation über RS232 erfolgt über 8N1-Codierung ohne Handshake.
-wie kann auf die history zugegriffen werden?
+Bei Senden des Zeichens \emph{` \textbackslash n'} vom PC an den FPGA über die RS232 Schnittstelle wird
+eine einmalige Übertragung des History-Inhalts über die RS232-Schnittstelle veranlasst, ebenso wie
+beim Drücken des Buttons \emph{A}.
+%oder doch ein anderes zeichen?
-soll in der eingabe auch mit pfeiltasten (links,rechts) gescrolled werden koennen?
+Der History Inhalt wird im ASCII Format über die RS232 Schnittstelle an den PC gesendet. Dabei wird
+mit der 1. Eingabe begonnen, dann die 1. Ausgabe, die 2. Eingabe usw. Die aktuelle Eingabezeile
+wird NICHT mit übertragen. Die Ein- und Ausgabezeilen werden nur bis zum letzten erlaubten
+Eingabe- bzw. Ausgabezeichen gesendet. Nach jeder Zeile folgt ein \emph{` \textbackslash n'} Zeichen.
+%TODO das format hat irgendwie anders geheißen bild ich mir ein
+%oder doch immer die volle zeilenlänge von 70 zeichen senden weil einfacher?
\subsection{Testfälle}