MEM.EXE 1.9a2 seems to crash on a 8086. I believe the crash is caused by a bug in the 386-detection code inside MEM.EXE. The detection always gives false positive results on 8086 systems, leading MEM.EXE to execute a subroutine which contains 386-specific instructions.
The 386-detection code basically tests whether it can set flag bits 12-14. On a 8086 however, bits 12-15 are always set. It may be possible to fix this issue by simultaneously testing whether flag bit 15 remains cleared: * In is_386_ : after "or ax,0x7000", add "and ax,0x07fff" * In is_386 : replace the test "((is_386_() & 0x7000) == 0x7000)" by "(is_386_() & 0xf000) == 0x7000)" It may be safer even to move to a commonly published detection algorithm which explicitly first tests which flag bits can be cleared, then tests which flag bits can be raised. This issue may be related to bug #1907 in the FreeDOS bugzilla, but bugzilla seems to be in an un-usable state (it does not send confirmation emails for new accounts). Joris. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel