Yes, this is what a carriage return does. Try the example script.
To move to the next line requires a newline Chr(10) as well.
Most console drivers unfortunately automatically convert Chr(10) -> Chr(10)+Chr(13). Happily, a carriage return on it's own is left unaltered and can be used to return you to the start of the line.
Here is a slightly more amusing example, an input field with a countdown timer. Note, AT() isn't used at all.
Code:
Break ON
$=SetOption("ASCII","ON")
$sTyped=""
$sCommand="halt"
$dCounter=10.0
$dInterval=0.1
$sColour="rrrryyyyggggggg"
$sText=Chr(13)+'Type "'+$sCommand+'" before the countdown expires! : '
While $sCommand AND $dCounter > 0
If KBHit()
Get $k
If $k=Left($sCommand,1)
$sTyped=$sTyped+$k
$sCommand=SubStr($sCommand,2)
EndIf
EndIf
Color w/n $sText
Color n/g+ $sTyped
Color r+/n $sCommand
Color w/n " [ Time left: "
$sNextColor=SubStr($sColour,1+CInt($dCounter),1)+"+/n"
Color $sNextColor CInt($dCounter)
Color w/n "] "
Sleep $dInterval
$dCounter=$dCounter-$dInterval
Loop
If $sCommand
Color r+/n
Chr(13)+" KABOOM! You were too late! " ?
Else
Chr(13)+" Phew, you made it with "+Cint($dCounter)+" seconds left! " ?
EndIf