- fbsize = xsz * ysz * mode_info->num_img_pages * (bpp / CHAR_BIT);
- return (void*)dpmi_mmap(mode_info->fb_addr, fbsize);
+ printf("avail video pages: %d\n", mode_info->num_img_pages);
+ printf("bytes per scanline: %d (%d pixels)\n", vbe_get_scanlen(VBE_SCANLEN_BYTES),
+ vbe_get_scanlen(VBE_SCANLEN_PIXELS));
+
+ pgsize = xsz * ysz * (bpp / CHAR_BIT);
+ fbsize = mode_info->num_img_pages * pgsize;
+ vpgaddr[0] = (void*)dpmi_mmap(mode_info->fb_addr, fbsize);
+
+ if(mode_info->num_img_pages > 1) {
+ vpgaddr[1] = (char*)vpgaddr[0] + pgsize;
+ } else {
+ vpgaddr[1] = 0;
+ }
+ return vpgaddr[0];