fixed vbe
[vidsys] / main.c
diff --git a/main.c b/main.c
index ed2377e..476baa7 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <math.h>
+#include <limits.h>
 #include <conio.h>
 #include "vidsys.h"
 
@@ -17,8 +18,8 @@ int main(int argc, char **argv)
 {
        int i;
        int mode;
-       int xres = 320;
-       int yres = 200;
+       int xres = 640;
+       int yres = 480;
        int bpp = 8;
 
        for(i=1; i<argc; i++) {
@@ -106,8 +107,9 @@ static float fmin(float a, float b)
 void test8bpp(void)
 {
        int i, j;
-       unsigned char *fb = vmem;
+       unsigned char *fb;
        struct vid_color cmap[256];
+       int winsz, winleft, winpos;
 
        for(i=0; i<256; i++) {
                float x = (float)i / (256.0f / TWO_PI);
@@ -117,12 +119,27 @@ void test8bpp(void)
        }
        vid_setpal(0, 256, cmap);
 
+       if(vid_islinear()) {
+               winsz = INT_MAX;
+       } else {
+               winsz = 65536;
+               winpos = 0;
+               vid_setwin(0, 0);
+       }
+       winleft = winsz;
+       fb = vmem;
+
        vid_vsync();
 
        for(i=0; i<vm->height; i++) {
                for(j=0; j<vm->width; j++) {
-                       int xor = i^j;
-                       *fb++ = xor;
+                       if(winleft-- <= 0) {
+                               winpos += vm->win_step;
+                               vid_setwin(0, winpos);
+                               winleft = winsz;
+                               fb = vmem;
+                       }
+                       *fb++ = i ^ j;
                }
        }
 }