i think that's what we found when we did VESA-based work for Inferno. i'm happy to parcel that up yet again if anyone's seriously interested in adapting it for Plan 9, or even current Inferno, or anything else for that matter, but it takes time to find all the bits, so be reasonably sure you're going to have the stamina. other `buts': it relied on software cursors in Inferno; it relied on non-trivial changes to the bootstrap code to do real-mode (unreal mode more like) BIOS calls to gather data before loading the kernel, because cards didn't implement the 32-bit variants; and it's all a bit involved.