diff --git a/exec/load/ansiterm_lib.js b/exec/load/ansiterm_lib.js
index bf15f07c70c7ca226d53eee972f711b332d0045e..cf9037716b2072d61c3fd4082f4f0ff494b8c6eb 100644
--- a/exec/load/ansiterm_lib.js
+++ b/exec/load/ansiterm_lib.js
@@ -50,6 +50,11 @@ const defs = {
 		up:						'S',
 		down:					'T',
 	},
+	portion: {
+		to_end:					0,
+		to_start:				1,
+		entire:					2,
+	},
 };
 
 function attr(atr, curatr, color)
@@ -170,7 +175,13 @@ var cursor_position = {
 
 var screen = {
 	scroll: function(dir,n)	{ return format("\x1b[%s%s", n ? n : "", defs.scroll_dir[dir]); },
-	clear: function()		{ return "\x1b[2J"; }
+	clear: function(p)		{ return format("\x1b[%uJ", p ? defs.portion[p] : defs.portion.entire); }
+}
+
+var line = {
+	clear: function(p)		{ return format("\x1b[%uK", p ? defs.portion[p] : defs.portion.entire); },
+	insert: function(n)		{ return format("\x1b[%sL", n ? n : ""); },
+	remove: function(n)		{ return format("\x1b[%sM", n ? n : ""); }
 }
 
 var attributes = {