... hier werden ja die 16 zeichen gedruckt/ausgegeben. Von wo fange ich an zu zählen? Was genau bedeutet diese \r\n?
Dein Problem sind ernsthafte Defizite in der Programmiersprache C.
Du sendest mit SerWrite(...) einen sogenannten String, das ist eine Folge von char, die in einem Array angeordnet sind. Details siehe: http://www.henkessoft.de/C++/C/arrays_pointer.htm
Schaue Dir den ASCII-Zeichencode an: http://de.wikipedia.org/wiki/ASCII
... und die Steuerzeichen: http://de.wikipedia.org/wiki/Steuerzeichen

Die Steuerzeichen sind genau ein Zeichen:
\r 13 0x0D ^M \r CR Carriage Return Wagenrücklauf/Druckkopfrücklauf
\n 10 0x0A ^J \n LF Line Feed Zeilenvorschub

Das r kommt von return und das n von newline.

d.h. diese Steuerzeichen werden als jeweils ein Zeichen mitgezählt.

Wenn ich das oben richtig zähle, sind das 17 Zeichen. PrintInt(...) fängt direkt dahinter an. Willst Du eine Zeile tiefer beginnen, sendest Du vorher ein \r\n, manchmal reicht auch schon ein \n (MS Windows) alleine.