For the past week I have been continuing my work on adding the 286 protected mode features to the original DSx86. Finally this morning I got Windows 3.00a to actually boot up in Standard Mode!
I have been doing this work by bundling all the files that Windows 3.00a needs into the DSx86.nds file itself, so that I can quickly test it using No$GBA and iDeaS emulators on my PC. So far I have had to include 885 kilobytes worth of files, and thus the amount of memory that DSx86 has available for the extended memory emulation is rather limited. Luckily Windows 3.00a is so compact that it is possible to bundle all the core files into DSx86 and still have just about enough memory free for the actual emulation. It also looks like I can make the Standard Mode available in DSx86 even when running on DS Lite, instead of requiring DSi mode. Of course it will run faster and have a lot more memory available when running in DSi mode.
Next I'll need to remove the bundled files and start testing it on real hardware with a proper Windows 3.00a installation. I have not yet implemented all the protected mode opcodes, and especially the code that handles task switching is still very limited, so I fear I still have a lot of work to do before the Standard Mode will be actually usable. There are also still problems with keyboard and mouse handling. But in any case, the core features have been implemented and seem to work, so things are looking quite good at the moment.