Of course such a thing is possible to "implement". There are however issues with it... for one, you need to start knowing how many lines are in your "page".
Here's an interesting problem. I take this from an ANSI-VT100 terminal control page:
Quote:
Cursor Home
<ESC>[{ROW};{COLUMN}H
Sets the cursor position where subsequent text will begin. If no row/column parameters are provided (ie. <ESC>[H), the cursor will move to the home position, at the upper left of the screen.
Therefore a MUD can, in theory, send arbitrary positioning commands. How would it know how big your "screen" is? Would this be an in-game config option? And what if you made a mistake setting the size of your screen?
Here's another interesting question. What if your MUD displays at the top a "status box" sort of thing, and the text below it? And when the text "scrolls", the status box is redrawn at the top. Let's take an example:
------PAGE LIMIT------
|--------------------|
|This is a status box|
|--------------------|
This is my text now!
This is another line.
Welcome to my MUD.
This is a cool MUD.
Yup. It sure is.
------PAGE LIMIT------
OK, so the MUD sends just one more line now...
|--------------------|
------PAGE LIMIT------
|--------------------|
|This is a status box|
|--------------------|
This is another line.
This is my text now!
This is another line.
Welcome to my MUD.
This is a cool MUD.
Yup. It sure is.
Welcome to my mud again!
------PAGE LIMIT------
The MUD prints the status box on lines 1, 2, and 3, and prints an empty line on line 4. Therefore, the new line arrives ("Welcome to my mud again!") and shifts the text up one... which moves the first line of the BOX, not the text, outside the page buffer.
So under your scheme, that line now becomes permanent. The text lines will NEVER leave the "page" because they are never the ones on the top of the page. How do you handle this problem in a scroll-back client?