VGA: Simplify scrolling implementation.

Check for nblines==0 in calling function.
Eliminate full screen clearing optimization.
diff --git a/vgasrc/vga.c b/vgasrc/vga.c
index 180fc99..c28d891 100644
--- a/vgasrc/vga.c
+++ b/vgasrc/vga.c
@@ -492,18 +492,21 @@
     struct cursorpos ul = {regs->cl, regs->ch, page};
     struct cursorpos lr = {regs->dl, regs->dh, page};
 
-    if (ul.x > lr.x || ul.y > lr.y)
-        return;
-
     u16 nbrows = GET_BDA(video_rows) + 1;
-    u16 nbcols = GET_BDA(video_cols);
-
     if (lr.y >= nbrows)
         lr.y = nbrows - 1;
+    u16 nbcols = GET_BDA(video_cols);
     if (lr.x >= nbcols)
         lr.x = nbcols - 1;
 
-    vgafb_scroll(dir * regs->al, regs->bh, ul, lr);
+    if (ul.x > lr.x || ul.y > lr.y)
+        return;
+
+    u16 nblines = regs->al;
+    if (!nblines || nblines > lr.y - ul.y + 1)
+        nblines = lr.y - ul.y + 1;
+
+    vgafb_scroll(dir * nblines, regs->bh, ul, lr);
 }
 
 static void