Reply 20 of 54, by analog_programmer
- Rank
- Oldbie
I'm an assembly n00b. And this is for educational purposes only. The assembly code part is from shareware (freeware) version. All the addresses hex-values are hidden intentionally as this is not a patching/hacking guide. Also this part of the code do not alter any shareware version limitations in any way. I don't comment any bytecode hex-values. I only want to understand why this emulator refuses to work with 186 CPU as it claims is capable of.
Here is what I managed to read from Emu386 disassembled machine code. Comments starting with "<-" and ending with "!!!" are added by me:
The DOS version check is simple and clear, and out of the scope. I'm not sure if there's any 186 CPU check along with 286 CPU check condition - rather there's none. I tried to skip 286 check failing by changing "je loc_393" to "jmp loc_393", but then all the CPUs (8088, 8086, 186 etc.) excluding 286 are recognized as "386 or newer" CPU and there's no way to load the emulator on a 186 (or V20/30) CPU after this kind of patching. I don't have an idea if these checks can be easely patched to allow Emu386 execution on 186, V20 and V30 CPUs.
This emulator might be "a killer DOS app", if only had been implemented properly in order to work on V20/30 CPUs (80186 is not a real PC CPU thing even though there are some 80186 based personal computer rarities). Unfortunately there's no further development, support and sales from at least decade ago 🙁 At least it's still pretty usable on 80286 systems.
The word Idiot refers to a person with many ideas, especially stupid and harmful ideas.
This world goes south since everything's run by financiers and economists.
This isn't voice chat, yet some people overusing online communications talk and hear voices.