--- a/Streams.def.m2cc
+++ b/Streams.def.m2cc
@@ -54,6 +54,12 @@
           (* unvollstaednigen Block. PufPos ist der Zeiger auf die aktuelle *)
           (* Posistion im Puffer, PufSize die physikalische Gesamtgroesse   *)
           (* des Puffers                                                    *)
+          (*                                                                *)
+          (* PufLen defines the numnber of character in the buffer. This    *)
+          (* number can be smaller than PufSize, e.g. if the last           *)
+          (* uncomplete block is read. PufPos is a pointer to the actual    *)
+          (* position in the buffer, PufSize the physiacal total size of    *)
+          (* the read/write buffer                                          *)
           (*----------------------------------------------------------------*)
 #endif
 
@@ -61,58 +67,84 @@
                          DatName : ARRAY OF CHAR; (* Dateiname *)
                          creat   : BOOLEAN);
 
-          (*----------------------------------------------------------*)
-          (* Verbindet den Stream Str mit einer Datei DatName.        *)
-          (* Existiert diese Datei nicht, so wird diese, wenn creat   *)
-          (* TRUE gesetzt ist, erzeugt. Ist ein Verbinden des Streams *)
-          (* mit der entsprechenden Datei nicht m"oglich, so wird     *)
-          (* Str.res = notdone gesetzt.                               *)
-          (* Vor dem Lesen oder Schreiben auf Str MUSS dann noch eine *)
-          (* der Routinen SetRead,SetWrite oder ReWrite gerufen       *)
-          (* werden, um die entsprechenden Operatioen vorzubereiten.  *)
-          (*----------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Verbindet den Stream Str mit einer Datei DatName.              *)
+          (* Existiert diese Datei nicht, so wird diese, wenn creat auf     *)
+          (* TRUE gesetzt ist, erzeugt. Ist ein Verbinden des Streams mit   *)
+          (* der entsprechenden Datei nicht m"oglich, so wird               *)
+          (* Str.res = notdone gesetzt.                                     *)
+          (* Vor dem Lesen oder Schreiben auf Str MUSS dann noch eine der   *)
+          (* der Routinen SetRead, SetWrite oder ReWrite gerufen werden,    *)
+          (* um die entsprechenden Operatioen vorzubereiten.                *)
+          (*                                                                *)
+          (* Connects the Stream Str with the file named Datname.           *)
+          (* If this file does not exist the file will be created in case   *)
+          (* creat is set to true. If is is not possible to open or crate   *)
+          (* the file then Str.res (non ISO mode) is set to notdone.        *)
+          (* Before the actual use of the stream on of the routines         *)
+          (* SetRead, SetWrite or ReWrite has to be called to prepare the   *)
+          (* requested operation.                                           *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE CloseStream(VAR Str : Stream);
 
-          (*----------------------------------------------------------*)
-          (* Unterbricht den Kontakt von Stream Str mit der zugrunde- *)
-          (* liegenden Datei und schlie\3t diese.		      *)
-          (*----------------------------------------------------------*)	
-
+          (*----------------------------------------------------------------*)
+          (* Unterbricht den Kontakt von Stream Str mit der zugrundeliegen- *)
+          (* den Datei und schlie\3t diese. Ist Str zum schreiben geoffnet  *)
+          (* wird zuvor der Puffer weggeschrieben.                          *)
+          (*                                                                *)
+          (* Interrups the connectin between stram Str and the underlaying  *)
+          (* file and closes it. Existing buffers are written before that   *)
+          (* if the Str was open for writing.                               *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE ConnectStream(VAR Str : Stream;
                             f   : File);
 
-          (*---------------------------------------------------------*)	
-          (* Verbindet die mit FileSystem.Lookup ge"offnete Datei f  *)
-          (* (Kanalnummer) mit dem Stream Str. Str darf dabei keinem *)
-          (* ge�ffneten Stream zugeordnet sein.                      *)
-          (*---------------------------------------------------------*)	
+          (*----------------------------------------------------------------*)
+          (* Verbindet die mit FileSystem.Lookup ge"offnete Datei f         *)
+          (* (Kanalnummer) mit dem Stream Str. Str darf dabei keinem        *)
+          (* ge�ffneten Stream zugeordnet sein.                             *)
+          (*                                                                *)
+          (* Connects a file f (cannel number) opened by FileSystem.Lookup  *)
+          (* with a stream Str. Str does not be assigned to a open Stream   *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE CloseAll();
 
-          (* Schlie\3t alle ge"offneten Streams ! *)
+          (*----------------------------------------------------------------*)
+          (* Schlie\3t alle ge"offneten Streams !                           *)
+          (*                                                                *)
+          (* Closes all open streams at once !                              *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE SetWrite(VAR Str : Stream);
 
-          (*--------------------------------------------------------------*)
-          (* L"oscht den Inhalt des Streams Str und stellt diesen auf die *)
-          (* Position Null. Bereitet Str dann auf Schreiboperationen vor. *) 
-          (*--------------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* L"oscht den Inhalt des Streams Str und stellt diesen auf die   *)
+          (* Position Null. Bereitet Str dann auf Schreiboperationen vor.   *)
+          (*                                                                *)
+          (* Returns the stream to Pos null and erases all content. Then    *)
+          (* it prepares Str for writing                                    *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE SetRead(VAR Str : Stream);
 
-          (*-----------------------------------------------------------*)
-          (* Stellt den Streams Str auf die Position Null und bereitet *)
-          (* diesen auf Leseoperationen vor.                           *) 
-          (*-----------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Stellt den Streams Str auf die Position Null und bereitet      *)
+          (* diesen auf Leseoperationen vor.                                *)
+          (*                                                                *)
+          (* Returns the stream to Pos null and prepares it for reading     *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE ReWrite(VAR Str : Stream);
 
-          (*-----------------------------------------------------------*)
-          (* Stellt den Streams Str auf die Position Null und bereitet *)
-          (* diesen auf Schreiboperationen vor.                        *) 
-          (*-----------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Stellt den Streams Str auf die Position Null und bereitet      *)
+          (* diesen auf Schreiboperationen vor.                             *)
+          (*                                                                *)
+          (* Returns the stream to Pos null and erases all content          *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE WriteBuffer(VAR Str : Stream);
 
@@ -120,54 +152,73 @@
           (* Erzwingt das ausscheiben des aktuellen Puffers unabhaengig     *)
           (* vom Fuellgrad. Der Stream Str mu� im Modues "write" geoeffnet  *)
           (* worden sein ansonsten gibt es eine nicht terminierende         *)
-          (* Fehlermeldung.                                                 *) 
+          (* Fehlermeldung.                                                 *)
+          (*                                                                *)
           (* Flushes the actual write buffer of Stream "Str". Stream must   *)
-          (* be opened in write mode otherwise a (non terminatin) error     *)
+          (* be opened in write mode otherwise a (non terminating) error    *)
           (* messages is raised.                                            *)
           (*----------------------------------------------------------------*)
 
 PROCEDURE ReSet(VAR Str : Stream);
 
-          (*-------------------------------------------------------------*)
-          (* Stellt den Stream Str auf die Anfangsposition Null zur"uck. *)
-          (*-------------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Stellt den Stream Str auf die Anfangsposition Null zur"uck.    *)
+          (*                                                                *)
+          (* Returns a writable stream to Pos null and erases all content   *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE GetPos(VAR Str : Stream;
                  VAR Pos : LONGCARD);
 
-          (*---------------------------------------------------------------*)
-          (* Ermittelt die aktuelle Positon in Str vom Dateibeginn (0) an. *)
-          (*---------------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Ermittelt die aktuelle Positon in Str vom Dateibeginn (0) an.  *)
+          (*                                                                *)
+          (* Returns the actual position of Str, counting form file         *)
+          (* position 0                                                     *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE SetPos(VAR Str : Stream;
                      Pos : LONGCARD);
 
-          (*------------------------------------------------------------------*)
-          (* Setzt den Stream Str auf die Position Pos vom Dateianfang (=0)   *)
-          (* aus gez"ahlt. Wenn Pos nicht im aktuellen Puffer liegt, wird ein *)
-          (* neuer gelesen, so da\3 der alte Puffer nicht mehr vorhanden ist. *)
-          (*------------------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Setzt den Stream Str auf die Position Pos vom Dateianfang (=0) *)
+          (* aus gez"ahlt. Wenn Pos nicht im aktuellen Puffer liegt, wird   *)
+          (* ein neuer gelesen, so da\3 der alte Puffer nicht mehr .        *)
+          (* vorhanden ist.                                                 *)
+          (*                                                                *)
+          (* Sets the stream Str on the position Pos from the start of the  *)
+          (* file (pos = 0). Wenn Pos is not located in the actuall buffer  *)
+          (* used by the stream a new one is read and the old one is gone   *)
+          (*------------------------------------- --------------------------*)
 
 PROCEDURE IsEOL(str : Stream) : BOOLEAN;
 
-          (*------------------------------------------------------------------*)
-          (* Wahr wenn str an einem Zeilenende steht                          *)
-          (*------------------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Wahr wenn str an einem Zeilenende steht                        *)
+          (*                                                                *)
+          (* True if str is posionated on a line end                        *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE IsEOF(str : Stream) : BOOLEAN;
 
-          (*------------------------------------------------------------------*)
-          (* Wahr wenn str an Dateiende steht                                 *)
-          (*------------------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Wahr wenn str an Dateiende steht                               *)
+          (*                                                                *)
+          (* True if str is posionated at the end of the file               *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE GetChar(VAR Datei : Stream;
                   VAR Char  : CHAR);
 
-          (* Nicht zum direkten Gebrauch ! *)
+          (*----------------------------------------------------------------*)
+          (* Nicht zum direkten Gebrauch / not for direct use !             *)
+          (*----------------------------------------------------------------*)
 
 PROCEDURE PutChar(VAR Datei : Stream;
                       Char  : CHAR);
 
-          (* Nicht zum direkten Gebrauch ! *)
+          (*----------------------------------------------------------------*)
+          (* Nicht zum direkten Gebrauch / not for direct use !             *)
+          (*----------------------------------------------------------------*)
 
 END Streams.