First post, by clb
I am developing a text editor in real mode to my 8088 and 486 DOS PCs to use.
I want to add a flexible text resolution mode support, so that it works across multiple character modes.
So far I am able to support six different text modes:
- 40x25 on a CGA card,
- 40x28, 40x50, 80x25, 80x28 and 80x50 on a VGA card.
The 40x28 and 40x50 modes are basically the same video mode as 40x25, but with the VGA adapter programmed to more scanlines and smaller font. (same goes with 80x28 and 80x50, they are the same mode as 80x25)
1. Are there any other compatible modes that would be possible on all CGA, EGA or VGA adapters? I read references to a 90x60 mode, but not sure if that would be compatible.
However now I got interested after seeing this video mode list:
There are quite a lot of adapter specific text modes there.
2. Is it possible to write code that would be able to enumerate the support for different adapter-specific text modes? I know that VESA added functionality to query available video modes, but is there anything like that for pre-VESA graphics modes. I understand that the above videomodes.txt lists specifically non-VESA modes that were just vendor-specific extensions?
3. Even if there is no general way (which I presume there might not be... that was what VESA was all about) to enumerate/discover supported modes, does anyone know of vendor-specific ways of discovering available text modes?
I.e. maybe on all Tseng or Oak family of cards one might have a functionality that allows one to query "give me all the available text modes?", or "is mode xyz supported?"
4. If the above is not possible, then, I suppose the only way will be to write some code to identify the display adapter vendor identifier string (which is located somewhere in graphics ROM area?), and then statically codify the set of adapter specific formats that are supported by that adapter? If so, does anyone know of links that would make this kind of identification more robust? E.g. any vendor published "best practices for detecting a Tseng card" type of thing that could be helpful here?
5. Finally, is it possible to program VESA from real mode? When I did VESA back in the day, that was well in the protected mode era, and all references I could find deal with protected mode since that is what it was already all about then. Though I wonder if VESA modes would be available from real mode as well? (or do they all require virtual memory/XMS addressing?)