Hi!

     I make some comparision between mshimem+msemm, fdhimem+fdemm15,
mshimem+fdemm20 and fdhimem+fdemm20 through MEMA and MFT under MS-DOS 7.1.
Below present differences with my comments. Commands for emm386:

device? = emm386.exe ram i=b000-b7ff
device? = emm38615.exe ram i=b000-b800
device? = emm38620.exe ram i=b000-b800

1. fdhimem+fdemm20 versus fdhimem+fdemm15 (previous version):

______________O\_/_________________________________\_/O______________
 Segment    Size   Owner       Type / source
 -------   -----   ---------   -----------------
[...]
  0070     6.51k   <system>
- 0211     9.65k   <system>    data area
-  -02AF   2.45k     XMSXXXX0  DEVICE=HIMEM15
-  -037D   3.21k     EMMXXXX0  DEVICE=EMM38615
+ 0211     9.73k   <system>    data area
+  -02B1   2.48k     XMSXXXX0  DEVICE=HIMEM20
+  -0382   3.26k     EMMXXXX0  DEVICE=EMM38620
[...]
     XMS version: 3.00          Line A20: enabled
[...]
          Handle    Size   Locks ( offset )
          ------   -----   ----------------
-          1771    4.00k       1 (00110000)
-          1781    32.5M       1 (00111000)
-          1791    8.00M
+          1802    4.00k       1 (00110000)
+          1812     530k       1 (00111000)
+          1822    8.00M

      EMS version: 4.0     Total handles: 255
-      Page frame: E000     Used handles: 3
+      Page frame: E000     Used handles: 1
   Mappable pages: 4

          Handle   EMS pages ( size )   Name
          ------   ------------------   --------
-             0         0    (    0 )
-             1         1    ( 16.0k)
-             2         9    (  144k)
+             0         9    (  144k)   SYSTEM
[...]
      Memory type    Total  -   Used   =  Free (largest)
 ----------------   -------   --------   ---------------
-    Conventional     640k      31.0k      608k (  608k)
+    Conventional     640k      31.1k      608k (  608k)
      Upper (DOS)     127k      65.4k     62.5k ( 48.8k)
 Extended (INT15)     191M                   0
 Extended (XMS16)                         62.9M ( 62.9M)
-Extended (XMS32)                          150M (  150M)
-  Expanded (EMS)    32.1M       160k     32.0M
+Extended (XMS32)                          182M (  182M)
+  Expanded (EMS)    32.0M       144k     31.8M
 ----------------   -------   --------   ---------------
 MS-DOS 7.10 is resident in the high memory area (HMA).
_____________________________________________________________________
              O/~\                                 /~\O

Comments for differences:

- 2.0 slightly larger (0.1k), than 1.5.
- XMS/handles allocation in fdemm20 slitghly different. (Big news? :)
- more memory now available through XMS... (Big news? :)
- ...but less - through EMS.

I think, EMM386 should allocate not 32M for EMS+UMB, but 32M for EMS and
different memory for UMB (as previously).

2. fdhimem+fdemm20 versus mshimem+msemm:

______________O\_/_________________________________\_/O______________
  0070     6.51k   <system>
- 0211     9.23k   <system>    data area
-  -0258   1.09k     XMSXXXX0  DEVICE=HIMEM
-  -0362   4.15k     EMMXXXX0  DEVICE=EMM386
+ 0211     9.73k   <system>    data area
+  -02B1   2.48k     XMSXXXX0  DEVICE=HIMEM20
+  -0382   3.26k     EMMXXXX0  DEVICE=EMM38620
[...]
 -------
- 9FFF     69.5k   <system>
- B160     8.42k   COMMAND
- B37B     2.03k   COMMAND     environment
+ 9FFF     64.0k   <system>
+ B000     5.59k   COMMAND
+ B166     2.03k   COMMAND     environment
[...]
- B6A9     5.32k               --free--
- B7FE     64.0k   <system>
- C801     7.95k   <system>    data area
+ B494     13.6k               --free--
+ B7FF     64.0k   <system>
+ C800     7.95k   <system>    data area
[...]
   Address    Attr  Driver    Program
 -----------  ----  --------  -----------------
[...]
- 0213:0000   A000  XMSXXXX0  DEVICE=HIMEM
+ 0213:0000   8000  XMSXXXX0  DEVICE=HIMEM20
[...]
      XMS version: 3.00         Line A20: enabled
- Driver revision: 3.5F              HMA: allocated
-    Free handles: 45
+ Driver revision: 3.0A              HMA: allocated
+    Free handles: 68

          Handle    Size   Locks ( offset )
          ------   -----   ----------------
-         54670    4.00k       1 (00110000)
-         54680     748k
-         54710    8.00M
+          1802    4.00k       1 (00110000)
+          1812     530k       1 (00111000)
+          1822    8.00M

-     EMS version: 4.0     Total handles: 64
+     EMS version: 4.0     Total handles: 255
       Page frame: E000     Used handles: 1
-  Mappable pages: 28
+  Mappable pages: 4

          Handle   EMS pages ( size )   Name
          ------   ------------------   --------
-             0        24    (  384k)
+             0         9    (  144k)   SYSTEM

                   EMS page# ( size )    Segment
                   ------------------   ---------
-                     4-27   (  384k)   4000-A000
-                     0-3    ( 64.0k)   E000-F000
+                     0-3    ( 64.0k)   E000-F000

      Memory type    Total  -   Used   =  Free (largest)
 ----------------   -------   --------   ---------------
-    Conventional     640k      30.6k      609k (  609k)
-     Upper (DOS)     122k      68.2k     54.1k ( 48.8k)
+    Conventional     640k      31.1k      608k (  608k)
+     Upper (DOS)     127k      65.4k     62.5k ( 48.8k)
 Extended (INT15)     191M                   0
-Extended (XMS16)                         63.9M ( 63.9M)
+Extended (XMS16)                         62.9M ( 62.9M)
 Extended (XMS32)                          182M (  182M)
-  Expanded (EMS)    32.3M       384k     32.0M
+  Expanded (EMS)    32.0M       144k     31.8M
----------------   -------   --------   ---------------
MS-DOS 7.10 is resident in the high memory area (HMA).
_____________________________________________________________________
              O/~\                                 /~\O

- fdhimem _under MS-DOS_ eats more memory (under FreeDOS this is contrary),
  fdemm20 - less, but in summary fdhimem+fdemm20 eats ~0.6k more.
- msemm eats (for itself?) some memory from under UMB area.
- with mshimem, ms-command.com eats more memory in UMB.
- UMB chain slightly different - msemm hides B7FF and C800 paragraphs, fdemm
  doesn't. Probably, this is somewhat relates to bug in msemm, when it
  doesn't allows to specify B000-B800 range (B000-B7FF should be used).
- fdhimem doesn't supports "out_till_busy", though I don't know, what is
  this.
- allocated XMS is similar (depends from ems manager), but fdhimem gives
  more free handles, and its handles table is lies at different offsets.
- fdemm20 give more free handles, but less mappable handles (as I
  understand, they determine, where may be placed page frames and where code
  may jump).
- difference between preallocated EMS pages I can't comment.
- fdhimem+fdemm20 (under MS-DOS!) gives 0.6k less free conventional memory,
  but 8.4k more free UMBs.
- through fd-XMS2 and fd-EMS seen less memory.

3. fdhimem+fdemm20 versus mshimem+fdemm20:

______________O\_/_________________________________\_/O______________
  0070     6.51k   <system>
- 0211     8.34k   <system>    data area
-  -0258   1.09k     XMSXXXX0  DEVICE=HIMEM
+ 0211     9.73k   <system>    data area
+  -02B1   2.48k     XMSXXXX0  DEVICE=HIMEM20
[...]
- B000     8.42k   COMMAND
+ B000     5.59k   COMMAND
[...]
- 0213:0000   A000  XMSXXXX0  DEVICE=HIMEM
+ 0213:0000   8000  XMSXXXX0  DEVICE=HIMEM20
[...]
      XMS version: 3.00         Line A20: enabled
- Driver revision: 3.5F              HMA: allocated
-    Free handles: 45
+ Driver revision: 3.0A              HMA: allocated
+    Free handles: 68

          Handle    Size   Locks ( offset )
          ------   -----   ----------------
-         54670    4.00k       1 (00110000)
-         54680     530k       1 (00111000)
-         54690    8.00M
+          1802    4.00k       1 (00110000)
+          1812     530k       1 (00111000)
+          1822    8.00M
[...]
      Memory type    Total  -   Used   =  Free (largest)
 ----------------   -------   --------   ---------------
-    Conventional     640k      29.7k      610k (  610k)
-     Upper (DOS)     127k      68.2k     59.7k ( 48.8k)
+    Conventional     640k      31.1k      608k (  608k)
+     Upper (DOS)     127k      65.4k     62.5k ( 48.8k)
 Extended (INT15)     191M                   0
-Extended (XMS16)                         63.9M ( 63.9M)
+Extended (XMS16)                         62.9M ( 62.9M)
 Extended (XMS32)                          182M (  182M)
   Expanded (EMS)    32.0M       144k     31.8M
 ----------------   -------   --------   ---------------
 MS-DOS 7.10 is resident in the high memory area (HMA).
_____________________________________________________________________
              O/~\                                 /~\O

Repeat:

- fdhimem _under MS-DOS_ eats more memory.
- with mshimem, ms-command.com eats more memory in UMB.
- fdhimem doesn't supports "out_till_busy".
- allocated XMS is similar (depends from ems manager), but fdhimem gives
  more free handles, and its handles table is lies at different offsets.
- through fd-XMS2 seen less memory.

No other differences.

     Now tests under MFT.

1. fdhimem+fdemm20 versus fdhimem+fdemm15 (previous version):

______________O\_/_________________________________\_/O______________
 Expanded / Overview
                               Total     Available
-        Expanded Memory      32944K      32784K
-        EMS Handles             255         252
+        Expanded Memory      32768K      32624K
+        EMS Handles             255         254

 Expanded / Handles
                   Handle  Size   Name
-                     0      0K
-                     1     16K
-                     2    144K
+                     0    144K

 Expanded / Benchmark
                               (times in microseconds)
          EMS Function        Minimum  Maximum  Average
-    Timer Interrupt Latency
+    Timer Interrupt Latency       5        5        5

-    Save All -  4 pages           0        2        1
-    Restore All -  4 pages        6        7        7
+    Save All -  4 pages           0        1        1
+    Restore All -  4 pages        7        9        8

-    Save Page Frame               0        2        1
-    Restore Page Frame            6        8        7
+    Save Page Frame               0        1        1
+    Restore Page Frame            7        8        8

-    Open Handle - 4 pages         0        2        1
-    Close Handle - 4 pages        8       15        9
+    Open Handle - 4 pages        69       80       70
+    Close Handle - 4 pages       12       18       13
-    Open Handle - 31 pages        1        3        2
-    Close Handle - 31 pages      10       11       10
+    Open Handle - 31 pages       59       62       60
+    Close Handle - 31 pages      21       22       21

 Extended / Overview
           XMS Version              3.00
           VCPI Version             1.00
-          VCPI Available Memory    32784K
+          VCPI Available Memory    186768K
           DPMI Driver              Unavailable

 Extended / XMS
-          Handles Available       68
+          Handles Available       62
           Shares Memory with EMS  No
                                 Total     Largest
         Memory Block Type     Available  Available
-        Extended (above 1024K) 22893K     22893K
+        Extended (above 1024K) 55658K      6504K
_____________________________________________________________________
              O/~\                                 /~\O

- memory allocation difference was already seen through MEMA.
- with fdemm20 MFT now may test timer interrupt latency.
- saving pages slightly faster, restoring - slower, but difference inside
  measurement errors.
- open/close pages (especially open) now noticeably slower.
- for VCPI, fdemm20 gives more.
- MFT doesn't see memory sharing in both cases.
- in XMS section MFT shows strange results for Total/Largest Available.

2. fdhimem+fdemm20 versus mshimem+msemm:

______________O\_/_________________________________\_/O______________
 First Meg / Interrupts
-  0258: EMM386      67
-  B000: Unused      4B
-  B4CD: COMMAND     22 23 24 2E
+  02B1: EMM38620    06 40 67
+  B000: COMMAND     2E
+  B2B8: COMMAND     22 23 24
+  F000: System ROM  02 05 07 0A 0B 0D 0E 11 12 14 18 1A
+                    1C 1D 41 42 44 45 46 47 48 49 4A 4B

 First Meg / BIOS Data
-     67: Reset Vector           1C8C:0776
-     72: Reset Word             0000
-     78: Printer Timeouts       14 14 14 34
+     67: Reset Vector           8544:17A4
+     72: Reset Word             00AA
+     78: Printer Timeouts       14 14 14 14

 Expanded / Overview
-                     Microsoft EMM386
         EMS Version         4.0
         Page Frame          E000
-        Mappable Pages      28
+        Mappable Pages      4
                               Total     Available
-        Expanded Memory      33152K      32768K
-        EMS Handles              64          63
-        Real Alternate Maps       7           7
+        Expanded Memory      32768K      32624K
+        EMS Handles             255         254
+        Real Alternate Maps       0           0

 Expanded / Handles
                   Handle  Size   Name
-                     0    384K
+                     0    144K

 Expanded / Benchmark
                               (times in microseconds)
          EMS Function        Minimum  Maximum  Average
-    Timer Interrupt Latency
+    Timer Interrupt Latency       5        5        5

-    Map Single Page               4        5        4
-    Real Alternate Map Set        5        7        6
+    Map Single Page               2        4        3
+    Real Alternate Map Set

-    Save All - 28 pages           3       10        4
-    Map Multiple - 28 pages      10       11       10
-    Restore All - 28 pages        6        7        7
+    Save All -  4 pages           0        1        1
+    Map Multiple -  4 pages       0        1        0
+    Restore All -  4 pages        7        9        8

-    Save Page Frame               2        3        2
-    Restore Page Frame            4        5        4
+    Save Page Frame               0        1        1
+    Restore Page Frame            7        8        8

-    Open Handle - 4 pages         2        4        3
-    Close Handle - 4 pages        1        2        2
+    Open Handle - 4 pages        69       80       70
+    Close Handle - 4 pages       12       18       13
-    Open Handle - 31 pages       62       78       64
-    Close Handle - 31 pages      39       41       40
+    Open Handle - 31 pages       59       62       60
+    Close Handle - 31 pages      21       22       21

 Extended / Overview
-          VCPI Available Memory    32768K
+          VCPI Available Memory    186768K
           DPMI Driver              Unavailable

 Extended / XMS
-          Driver Revision         3.5F
-          Handles Available       45
+          Driver Revision         3.0A
+          Handles Available       62
           Shares Memory with EMS  No
                                 Total     Largest
         Memory Block Type     Available  Available
         Upper (640K - 1024K)       0K         0K
-        Extended (above 1024K) 55440K     55440K
+        Extended (above 1024K) 55658K      6504K
_____________________________________________________________________
              O/~\                                 /~\O

- fdemm doesn't traps INT4B (no VDS option; 0:47B bit 5 also cleared)...
- ...but explicitly (?!) traps INT6 (Invalid Opcode) and INT40 (FDD
  handler). Hm.
- Reset Vector and Reset Word in BIOS Data Area are different and in both
  cases are sensless.
- fdemm gives less EMS (not 32M, but 32M-144k), but more handles.
- fdemm remains faster, except Restore All, Restore Page Frame and
  Open/Close 4 pages. Last, probably, indicates difference between memory
  allocation algortihms - in fdemm it more block-oriented and less depends
  from amount of pages.
- fd-VCPI gives access to (almost) all memory (not only 32M).
- unlike mshimem, for fdhimem MFT shows strange value as Largest Available.

BTW, with VDS option only seen difference (with none VDS options) is
trapping INT4B and bit 5 set in 0:47B.

3. fdhimem+fdemm20 versus mshimem+fdemm20:

______________O\_/_________________________________\_/O______________
 Expanded / Benchmark
-    Open Handle - 4 pages        69       76       70
-    Close Handle - 4 pages       13       15       13
+    Open Handle - 4 pages        69       80       70
+    Close Handle - 4 pages       12       18       13
-    Open Handle - 31 pages       67       68       67
-    Close Handle - 31 pages      20       21       20
+    Open Handle - 31 pages       59       62       60
+    Close Handle - 31 pages      21       22       21

 Extended / Overview
-          VCPI Available Memory    111312K
+          VCPI Available Memory    186768K

 Extended / XMS
-          Driver Revision         3.5F
-          Handles Available       45
+          Driver Revision         3.0A
+          Handles Available       62
           Shares Memory with EMS  No
                                 Total     Largest
         Memory Block Type     Available  Available
-        Extended (above 1024K) 45764K     55658K
+        Extended (above 1024K) 55658K      6504K
_____________________________________________________________________
              O/~\                                 /~\O

- looks like fdhimem comparable with mshimem in speed (except Open 31
  pages).
- with mshimem, fdemm gives less VCPI memory.
- Total/Largest Available looks weird. Hm. Probably, this is result of
  arithmetic overflow?




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to