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