+//\r
+// pattern filler from joncampbell123's code\r
+//\r
+void VL_PatternDraw(video_t *video, word pn, boolean sw, boolean allsw)\r
+{\r
+ unsigned int i,j,o, d,h,s;\r
+ word w;\r
+\r
+ switch(sw)\r
+ {\r
+ case 0:\r
+ w=vga_state.vga_width;\r
+ d=0;\r
+ s=vga_state.vga_stride;\r
+ switch(allsw)\r
+ {\r
+ case 0:\r
+ h=vga_state.vga_height;\r
+ break;\r
+ case 1:\r
+ h=video->vh;\r
+ break;\r
+ }\r
+ break;\r
+ default:\r
+ w=video->page[pn].width;\r
+ d=(0x10000UL - (uint16_t)video->page[pn].data);\r
+ s=video->page[pn].stridew;\r
+ switch(allsw)\r
+ {\r
+ case 0:\r
+ h=video->page[pn].height;\r
+ break;\r
+ case 1:\r
+ if(!pn) h=video->vh;\r
+ else h=video->page[pn].height;\r
+ break;\r
+ }\r
+ break;\r
+ }\r
+\r
+ /* fill screen/pattern with a distinctive pattern */\r
+ for (i=0;i < w;i++) {\r
+ o = (i >> 2) + d;\r
+ vga_write_sequencer(0x02/*map mask*/,1 << (i&3));\r
+ for (j=0;j < h;j++,o += s)\r
+ vga_state.vga_graphics_ram[o] = (i^j)&15; // VRL samples put all colors in first 15!\r
+ }\r
+}\r
+\r