Hi Paul,
while it is great to hear that you are doing a lot of reading about EGA/VGA programming, I would suggest that you use DEBUG to try a few things until you find the first type of palette manipulation which works in another virtual window but not in VirtualBox. Then the next step could be trying to find setup changes which solve the issue in VirtualBox. If none can be found, the final option would be to patch VirtualBox. > In > https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Devices/Graphics/DevVGA.cpp > > For write: line 616-640: no 0x3c6 between 0x3c5 and 0x3c7. > > For read: line 503-507, no 0x3c6 between 0x3c5 and 0x3c7. > > Might compare with what dosemu2, or qemu does, to see if they do something > about 0x3c6. Either that, or use DEBUG to try it out. Of course reading and comparing source codes is a good starting point, but EGA/VGA/CGA, as well as VESA/VBE could have some nasty interactions which are hard to get compatible properly, which may not be obvious from the source code. So you can for example say "If I do those I (in) and O (out) commands in DEBUG, or call this int 10 function, I expect the palette to change this way and it indeed does in QEMU or DOSEMU2, but not in VirtualBox" to get a confirmation of where you suspect the problem to be. It could also happen that the I/O or INT sequence you had in mind works in none of the three, because there are some additional preparatory I/O that you need. So you can improve your I/O sequence and try again etc. Note that DEBUG only offers byte-sized input and output. For word-sized, you would have to write a test app in any programming language you like to use for that :-) Regards, Eric _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel