Hi! 23-Авг-2006 07:57 [EMAIL PROTECTED] (Joris van Rantwijk) wrote to freedos-devel@lists.sourceforge.net:
JvR> MEM.EXE 1.9a2 seems to crash on a 8086. Where you get this version? CVS contains 1.6 (or is it 1.7? MEM_MINOR contains 7). JvR> I believe the crash is caused by a bug in the 386-detection code JvR> inside MEM.EXE. The detection always gives false positive results JvR> on 8086 systems, leading MEM.EXE to execute a subroutine which JvR> contains 386-specific instructions. JvR> The 386-detection code basically tests whether it can set flag bits 12-14. JvR> On a 8086 however, bits 12-15 are always set. It may be possible to fix Yes, looks like you right: I check MEM 1.6 (1.7?) and found, that its 386 detection code is buggy, because tries to set 0x7000 in flags and expects, that both bits will be set only in 386+ (whereas bits 12-15 always set in 8086/80186; in 80286 bits 12-14 are IOPL and NT and always cleared in real mode). Right code should be (excerpt from my MEMA): /* try to change bits 12-15 (0xF000) in the FLAGS register... */ I pushf; I pushf; I pop ax; _AH ^= 0xF0; I push ax; I popf; I pushf; I pop bx; I popf; /* ...then check whether any bit was changed */ count type = 3; if (_AH ^ _BH) return type; type = 2; if (_BH & 0xF0) type = 0; return type; ------------------------------------------------------------------------- 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