Message-ID: <001d01c0f06b$963693e0$1308e289@mpaul> From: "Matthias Paul" To: Subject: Strange XMS issue using MS HIMEM.SYS Date: Sat, 9 Jun 2001 00:36:29 +0200 Organization: University of Technology, RWTH Aachen, Germany MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id SAA04002 Reply-To: opendos AT delorie DOT com Hi, I have just encountered a strange phenomenon using the MS-DOS HIMEM.SYS when switching between DR-DOS 7.03 and MS-DOS 7.10. It appears that the MS-DOS HIMEM.SYS reports 4 Kb less available extended memory when loaded under MS-DOS 7.10 compared to the available extended memory when loaded under DR-DOS 7.03 or MS-DOS 6.22. At the same time, the start address of the memory is 4 Kb higher (1024 Kb+64 Kb+4Kb) than under DR-DOS 7.03 or MS-DOS 6.22 (1024 Kb+64 Kb). This occurs with both, the HIMEM.SYS from MS-DOS 6.22 as well as with the driver from MS-DOS 7.10. (Of course, the 6.22 HIMEM.SYS only supports up to 64 MB of memory. [1 Mb= 1024Kb=1024*1024 bytes]) In all cases, I am using the DR-DOS EMM386 /VERBOSE=DEBUG option to display the amount of XMS memory provided by the HIMEM.SYS driver. I am loading the drivers at the start of DCONFIG.SYS/ CONFIG.SYS/CONFIG.DOS files: DEVICE?=c:\dos\msdos\msdos.622\himem.sys /testmem:on /verbose DEVICE?=c:\windows\himem.sys /testmem:on /verbose DEVICE=c:\dos\drdos\drdos.703\emm386.exe /video /multi /dpmi ... ... /exclude=c000-c7ff,c800-c8ff /use=c900-efff /frame=auto ... ... /rom=c000-c7ff,c800-c8ff,f000-ffff /handles=128 ... ... /verbose=debug Note: The /frame=e800 option is not, and the /use=f000-f7ff option seems not to be compatible with the Windows 9x GUI. MS EMM386.EXE does not provide this feature, anyway. Here are my results (on an ASUS P55T2P4 Rev.3.10 430HX mainboard with Award 4.51PG Flash BIOS 2.07-2, equipped with 256 Mb of physical memory): DR-DOS 7.03: No HIMEM.SYS, but DR 7.03 EMM386.EXE: 03FE0000 @ 00110000 -> 64Mb-128Kb @ 1024Kb+64Kb=1088Kb MS 6.22 HIMEM.SYS + DR 7.03 EMM386.EXE: 03FE0000 @ 00110000 -> 64Mb-128Kb @ 1024Kb+64Kb=1088Kb MS 7.10 HIMEM.SYS + DR 7.03 EMM386.EXE: 0FEF0000 @ 00110000 -> 256Mb-1088Kb @ 1024Kb+64Kb=1088Kb MS-DOS 6.22: No HIMEM.SYS + DR 7.03 EMM386.EXE: 03FE0000 @ 00110000 -> 64Mb-128Kb @ 1024Kb+64Kb=1088Kb MS 6.22 HIMEM.SYS + DR 7.03 EMM386.EXE: 03FE0000 @ 00110000 -> 64Mb-128Kb @ 1024Kb+64Kb=1088Kb MS 7.10 HIMEM.SYS + DR 7.03 EMM386.EXE: 0FEF0000 @ 00110000 -> 256Mb-1088Kb @ 1024Kb+64Kb=1088Kb MS-DOS 7.10 (98SE): No HIMEM.SYS, but DR 7.03 EMM386.EXE: 03FE0000 @ 00110000 -> 64Mb-128Kb @ 1024Kb+64Kb=1088Kb MS 6.22 HIMEM.SYS + DR 7.03 EMM386.EXE: 03FDF000 @ 00111000 -> 64Mb-128Kb-4Kb @ 1024Kb+64Kb+4Kb=1088Kb+4Kb=1092Kb MS 7.10 HIMEM.SYS + DR 7.03 EMM386.EXE: 0FEEF000 @ 00111000 -> 256Mb-1088Kb-4Kb=256Mb-1092Kb @ 1024Kb+64Kb+4Kb=1088Kb+4Kb=1092Kb This shows that the MS HIMEM.SYS drivers appear to allocate a fixed area of 4 Kb just after the HMA when run on MS-DOS 7.10 (maybe 7.0 as well???), but not when run under MS-DOS 6.22 (or DR-DOS 7.03 which reports itself as DOS 6.0). I would be very interested to known if others can reproduce this behaviour on their systems, in particular in comparision with PC DOS, MS-DOS before 6.22, MS HIMEM.SYS drivers before 6.22 (3.10 as of 1993-09-30). What happens with MS-DOS 7.0? Does anybody have an idea if this might be just a strange artefact in MS HIMEM.SYS or if it serves some currently unknown purpose... Greetings, Matthias -- Matthias Paul, Ubierstrasse 28, D-50321 Bruehl, Germany ; http://www.uni-bonn.de/~uzs180/mpdokeng.html; http://mpaul.drdos.org