I found several flaws in the brute force solver I had posted a few days ago. That code had been converted from a source by another author from nasm syntax to masm syntax. First impressions were that it worked satisfactorily. But further examination showed that not only did it not return a failure value for a completely empty puzzle ( which could have been acceptable in certain instances) it did not detect key violations of sudoku rules in that two of the same digit in a row, column or box. It solves puzzles that in itself tries not to violate the rules, but errant puzzles entered that do violate this rule and goes undetected. Therefore will no longer use that as a viable solver candidate. I have removed the attachment from that post. I could rewrite the algo there, but since the original code is not mine, I don't feel the need or desire to do that.
Anyway, I have been distracted the last few days looking at the solver showed to me by FORTRANS. That solver does much better at detecting violations of sudoku rules. However I did find several cases where it could not solve extremely difficult puzzles. It is a COM file and so far, my attempts at disassembly of the code have been futile at best. I used a couple different disassemblers which show differing results. Either way, not an easy conversion to code that can be reassembled.
So, I'll put these distractions aside and continue with the GUI...
Will add switchable (on/off) candidates window for each empty cell; highlighting for a selectable number (if 1 is selected as the number, all cells with "1" and candidates with "1" will be highlighted as a candidate elimination aid); plus a few other changes or additions.
I plan* on posting a preview image of the GUI in the coming days if everything goes as well as could be expected.
* left field tangents aside
The code to implement the planned changes will not be easy, but I'll try my best. May take a while to get a tested and debugged version ready to post here.