I just found out some days ago that when the VESA standard documents it as taking a "byte offset" in display memory, it actually means a planar byte offset.
Okay, so if that's how 16-color planar and 8-bit 256-color modes are handled, what other surprises lie in wait when using this interface?
If it was defined this way to make setting the display offset fast and optimized, does the definition change again for 16bpp, 24bpp, and 32bpp modes? Is it still byte offset (N / 4) or do you divide by 2 because of 16bpp?
A test program in DOSLIB to play with this on real hardware is badly needed!