The in memory version is maintained as 16 bits to allow some overflow in calculations, such as horizontal counts. The original 6845 core was extended in the design of the vga to allow the generation of wider displays. The original width register was too small, so bits in other registers were borrowed to extend the basic register. By using a 16 bit in-memory register, the standard calculation could be done, and then the overflow bits copied to the right place. This explains what you are seeing. If you have not done this before, I strongly recommend getting a working system you can play with. This is not known as vga Hell for nothing. You should also read a good book on the history of the vga to understand the full horror. Which chip is it that is not supported? I would have thought all the Cirrus CL-GD chips were supported.