+void setCursorType(int type)
+{
+ bb.intno = 0x10;
+ bb.eax.r.h = 0x01;
+ bb.ecx.rr = type;
+ bios(&bb);
+}
+
+void getCursorPositionAndType(int * x, int * y, int * type)
+{
+ bb.intno = 0x10;
+ bb.eax.r.h = 0x03;
+ bios(&bb);
+ *x = bb.edx.r.l;
+ *y = bb.edx.r.h;
+ *type = bb.ecx.rr;
+}
+
+void scollPage(int x1, int y1, int x2, int y2, int attr, int rows, int dir)
+{
+ bb.intno = 0x10;
+ bb.eax.r.h = (dir > 0) ? 0x06 : 0x07;
+ bb.eax.r.l = rows;
+ bb.ebx.r.h = attr;
+ bb.ecx.r.h = y1;
+ bb.ecx.r.l = x1;
+ bb.edx.r.h = y2;
+ bb.edx.r.l = x2;
+ bios(&bb);
+}
+
+void clearScreenRows( int y1, int y2 )
+{
+ scollPage( 0, y1, 80 - 1, y2, 0x07, y2 - y1 + 1, 1 );
+}
+
+void setActiveDisplayPage( int page )
+{
+ bb.intno = 0x10;
+ bb.eax.r.h = 5;
+ bb.eax.r.l = page;
+ bios(&bb);
+}
+