Dim TextLine$(100) ; массив строк
Global LineIndex=0 ;индекс текущей строки в массиве
Global TextHeight=10 ;высота строки
Global Enter ;переменная равна 1 если был нажат Enter
FlushKeys()
Function UpdateInput(X, Y)
Local Key=GetKey()
Enter=False
If Key ; Key>0
If Key=13 ; enter
LineIndex=LineIndex+1
Enter=True
Else If Key=8 ; backspace
TextLine(LineIndex)=Left(TextLine(LineIndex), Len(TextLine(LineIndex))-1)
Else If Key>=32 And Code=<126
TextLine(LineIndex)=TextLine(LineIndex)+Chr(Key)
EndIf
EndIf
For Index=0 To LineIndex
Text X, Y+Index*TextHeight, TextLine(Index)
Next
End Function
Graphics 1024, 768, 32, 1
SetBuffer BackBuffer()
While Not KeyHit(1)
UpdateInput(100, 100)
Flip
Cls
Wend
Вот так примерно лучше сделать.
P.S. Ещё рекомендую ставить отступы в коде. Лишний раз Tab нажать не сложно, зато потом ошибки искать в разы легче.