+////corner markers\r
+#define GVPO gvar.video.page[0]\r
+#define GVPI gvar.video.page[1]\r
+#define OW GVPO.width-16\r
+#define OH GVPO.height-16\r
+#define OE GVPO.sw\r
+#define OJ GVPO.sh\r
+#define IW GVPI.width-16\r
+#define IH GVPI.height-16\r
+#define IE GVPI.sw\r
+#define IJ GVPI.sh\r
+#define DCBO modexClearRegion(&GVPO\r
+#define DCBI modexClearRegion(&GVPI\r
+\r
+#define DRAWOTHERCORNERBOX_TOPLEFT \\r
+DCBO, 0, 0, 16, 16, 0); \\r
+DCBO, 16, 16, 16, 16, 1); \\r
+DCBI, 0, 0, 16, 16, 8); \\r
+DCBI, 16, 16, 16, 16, 9);\r
+\r
+#define DRAWOTHERCORNERBOX_TOPRIGHT \\r
+DCBO, OW, 0, 16, 16, 2); \\r
+DCBO, OE, 16, 16, 16, 3); \\r
+DCBI, IW, 0, 16, 16, 10); \\r
+DCBI, IE, 16, 16, 16, 11);\r
+\r
+#define DRAWOTHERCORNERBOX_BOTTOMLEFT \\r
+DCBO, 0, OH, 16, 16, 4); \\r
+DCBO, 16, OJ, 16, 16, 5); \\r
+DCBI, 0, IH, 16, 16, 12); \\r
+DCBI, 16, IJ, 16, 16, 13);\r
+\r
+#define DRAWOTHERCORNERBOX_BOTTOMRIGHT \\r
+DCBO, OE, OJ, 16, 16, 6); \\r
+DCBO, OW, OH, 16, 16, 7); \\r
+DCBI, IE, IJ, 16, 16, 14);\\r
+DCBI, IW, IH, 16, 16, 15);\r
+\r
+#define DRAWCORNERBOXES \\r
+DRAWOTHERCORNERBOX_TOPLEFT; \\r
+DRAWOTHERCORNERBOX_TOPRIGHT; \\r
+DRAWOTHERCORNERBOX_BOTTOMLEFT; \\r
+DRAWOTHERCORNERBOX_BOTTOMRIGHT; \\r
+\r
+#define TESTBG \\r
+ modexClearRegion(&gvar.video.page[1], 0, 0, gvar.video.page[1].width, gvar.video.page[1].height, 15); \\r
+ modexClearRegion(&gvar.video.page[1], 16, 16, gvar.video.page[1].sw, gvar.video.page[1].sh, 128); \\r
+ modexClearRegion(&gvar.video.page[1], 32, 32, gvar.video.page[1].sw-32, gvar.video.page[1].sh-32, 42); \\r
+ modexClearRegion(&gvar.video.page[1], 48, 48, gvar.video.page[1].sw-64, gvar.video.page[1].sh-64, 128); \\r
+ modexClearRegion(&gvar.video.page[2], 0, 0, gvar.video.page[2].sw, gvar.video.page[2].sh, 47); \\r
+ modexClearRegion(&gvar.video.page[3], 0, 0, gvar.video.page[3].sw, gvar.video.page[3].sh, 45);\r
+\r
+#define TESTBGFULL \\r
+ modexClearRegion(&gvar.video.page[0], 0, 0, gvar.video.page[0].width, gvar.video.page[0].height, 15); \\r
+ modexClearRegion(&gvar.video.page[0], 16, 16, gvar.video.page[0].sw, gvar.video.page[0].sh, 128); \\r
+ modexClearRegion(&gvar.video.page[0], 32, 32, gvar.video.page[0].sw-32, gvar.video.page[0].sh-32, 42); \\r
+ modexClearRegion(&gvar.video.page[0], 48, 48, gvar.video.page[0].sw-64, gvar.video.page[0].sh-64, 128); \\r
+ modexCopyPageRegion(&gvar.video.page[1], &gvar.video.page[0], 0, 0, 0, 0, gvar.video.page[0].width, gvar.video.page[0].height); \\r
+ modexClearRegion(&gvar.video.page[2], 0, 0, gvar.video.page[2].sw, gvar.video.page[2].sh, 47); \\r
+ modexClearRegion(&gvar.video.page[3], 0, 0, gvar.video.page[3].sw, gvar.video.page[3].sh, 45);\r
+\r