We already have some code that suppresses ansi output when running on a none ansi device.
We need to review the terminal library to see if we can do further suppression so that the code 'mostly' works when on non-ansi devices.
With methods like write we could try to track row movements and if the row has moved since the last write then we add a newline before doing the next output.
The problem with this idea is that we would possible need to 'intercept' calls to print so we know when it has changed the row.
things to ponder.