fano1 wrote:I wanted a Clear(Color) command and I've done it but it is really inefficient as for now our fill method is simply using a for() of words so it is doing 4'000'000 of times! I fear I'll have to resort to X# (that is assembler)
What kind of code is in that for loop? There are some potential optimizations that don't involve writing it in assembly.
fano1 wrote:it seems for now the only solutions would to have a real VBE driver (but is difficult to do this / impossible in protected mode)
There are different levels of difficulty...
The easiest is to write an x86 instruction interpreter and put together a small emulator. You can simulate INT 0x10 in your emulator to control the video card. As long as you are aware of the limitations (it only works with legacy BIOS, not UEFI; it needs to read/write the IVT and BDA) you'll be fine.
fano1 wrote:or to have an hybrid solution and set registers that in this driver should not exist.
It's not unusual for video cards to have standard VGA registers and extended non-VGA registers. The only difference is that Bochs puts the extended registers at a different I/O address. With SVGA cards like the Cirrus (which Bochs also supports), the extended registers are accessed the same way as the standard VGA registers.
fano1 wrote:Probably the better way will be to fix the Bochs VBE extensions and add a way to return to text mode
They already do have a way to return to text mode: disable the extensions and set up text mode using the standard VGA registers.
fano1 wrote:The idea to do the "text mode" all in graphic mode is securely a possibility I suspect that Linux does this or how Tux could be in the right corner of the screen?
That's exactly how Linux does it.