Hallo,
es existiert kein Unterschied zwischen der CD-Version und der aktuellen LIB.
Beide Versionen sind absolut identsch.
Da Mr.Roboto die SerRead()-Funktion ja im 'blocking'-Mode aufruft, muss sie auch lange warten, bis das eine geforderte Zeichen kommt.
Wenn aber tatsächlich einmal ein Zeichen (w,s,a,d) zum Starten der Motoren gekommen ist, gibt es auch keinen Code mehr, der die Motoren stoppt.
Die 'große' while-Schleife landet dann ja wieder im SerRead(), wartet dort auf ein nun nicht kommendes Zeichen, und die Motoren drehen weiter.
Somit geht es also so wie Mr.Roboto sagt. Bei mir tut's das jedenfalls auch genau so. Er läuft, und läuft, und läuft, .... und genau dafür braucht man die lange Leitung