Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


Smartdrive Revisited: Sata drives in MSdos compatibility mode

Recommended Posts

try use himem with /machine:at key, or xmgr instead himem (with adding string for xmgr into ios.ini).

by default original himem often use very slow internal procedures w/o /machine:at key

  • Like 1

Share this post

Link to post
Share on other sites

You're right about the /machine:at key. Speed of Himem is now the same as HimemX on my machine. Thanks a lot.

I tried XMGR again. If loaded after Umbpci and with the /W-switch, speed is the same as the to others. I will explore further. :cool:

Share this post

Link to post
Share on other sites

In my Post of Oktober 6, 2018 I stated:

'Highest copy-speeds in WINDOWS (with static 128 MB VCACHE and NO MaxPhysPage!) were:
    -  4 MB/sec. with BUFFERS=20 
    - 17 MB/sec. with SMARTDRV 4096 /B:57344 and BUFFERS=4,0
    -  5 MB/sec. with XHDD.SYS /R25 /S50 /H /O /P and BUFFERS=4,0
    - 22 MB/sec. with XHDD in combination with Smartdrive (4 Buffers)

    In Windows Buffers and XHDD were really slow, Smartdrive performed the same as in MS-DOS.'

In my latest experiments I met following problem: I cannot reproce anymore the slow speeds of BUFFERS only and standalone XHDD inside WINDOWS. 

I did many new tests, with following results.

    Highest copy-speeds in WINDOWS (with static 128 MB VCACHE and no MaxPhysPage):
    -   6 MB/sec. with BUFFERS=20 (DOS=UMB,HIGH,NOAUTO in CONFIG.SYS)
    -   2 MB/sec. with BUFFERSHIGH=20 
    -  14 MB/sec. with standalone XHDD.SYS /R25 /S50 /H /O /P and BUFFERS=4,0

I am using UMBPCI, so shadow-ram on my chipset seems to be slow (BUFFERSHIGH).

The good news I found: copy-speeds with standalone XHDD are ALWAYS 14 MB/sec. (±10%) between ssd's, and 9 MB/sec. with standalone XHDD.SYS /B.
Still slower than standalone Smartdrive, but not so bad.

Maybe worth a try on your 2TB FAT32 SATA-partitions. :lol:

I explored in depth the possibilities of XHHD with XMGR in WINDOWS, first without the use of Smartdrive.
I concentrated on stability regarding the size of the XHDD-cache in combination with Vcache. 

Relevant setup
Asrock 960GM-GS3
AMD FX-6300
4GB DDR3-1600
Geforce 6700XL 128MB PCIe
Windows 98SE with basic updates (SP203dut, USBSP3.5 and NV82.69, DirectX 9.0c and a 16-bits NDIS2-driver (onboard ethernet).

DEVICE=UMBPCI /I=CF00-CFFF /I=D000-DFFF (chipset specific!)
DEVICE=XHDD /R1024 /Sxxx /H /O /P /G



xhdd.sys        ;
uhdd.sys        ;
xmgr.sys        ;
rdisk.com    ;
lowdma.sys    ;

hsflop.pdr disabled.
DOS-Boxes must be (partly) working or Windows can't 'readout' the ssd's!

Opening 12 DOS-BOXES, playing MP4 with GOM player, DxDiag, multitasking during copying 500 MB between ssd´s, using all physical memory with Opera TAB's and opening 12 DOS-BOXES afterwards.
Lowest value of MaxFileCache is based on R. Loew's formula: ´1/24 of Windows-RAM at minimum´

Results standalone XHDD
Maximum stable combinations with Static Vcache:
/S469 and MinFileCache=MaxFileCache=43692
/S256 and MinFileCache=MaxFileCache=196608

Maximum stable combinations with Dynamic Vcache:
/S469, MaxFileCache=43692 without MinFileCache entry
/S256, MaxFileCache=196608 without MinFileCache entry

My experiments are suggesting that XHDD´s cache is counting too. There is some sort of trade-off, but non-lineair.

It turned out to be possible to set MaxFileCache=43072 as absolute minimum, without a MinFileCache entry.  At this value Vcache is static.

The MinFileCache value set by Windows seems to depend MAINLY on RAM, only a few KB's vary with the value of MaxFileCache.

I did a few quick tests: lowering RAM with the XHDD R-switch.
If Windows ´sees´ 510,0 MB RAM MinFileCache is set to 21192 (21700608 Bytes).
If Windows ´sees´ 255,0 MB RAM MinFileCache is set to 10348 (10596352 Bytes).

With a MaxFileCache=41944 (1/25 of RAM) or lower and no MinFileCache, System Monitor shows a MaxFileCache of 800MB (838860800 byte = 819200KB) and MinFileCache of 42MB (44105728 byte = 43072KB).
This is a corroboration of R. Loews formula: no MinFileCache is set (see picture below). 


As soon I set MinFileCache=256, shown MaxFileCache is the same value as in set in [vcache]. Holds for other values too. 



When there is a MinFileCache in SYSTEM.INI, the value ´set´ is shown by System Monitor.The lowest stable value I found is MinFileCache=256. Now MaxFileCache can be freely chosen, but must be equal or higher than the set MinFileCache value.

Smartdrive Revisited
AT THE CHOSEN VALUE OF RAM (1024MB), in combination with INSTALLHIGH=SMARTDRV 2048 /L /U /V /B:57344 (or LOADHIGH in AUTOEXEC.BAT) results with much more stability are possible, but the sum of XHDD´s cache and Vcache must not exceed 512MB. This time the trade-off seems lineair. 

See Q181862: prescribes lowest value of 512MB or 70% of RAM as maximum Vcache. The text of Q181862 I found in this link: https://www.computerforum.com/threads/autoexec-bat-files.50624/

Maximum stable combinations with Static Vcache:
/S469 and MinFileCache=MaxFileCache=43692
/S50 and MinFileCache=MaxFileCache=473088

Maximum stable combinations with Dynamic Vcache:
/S469, MaxFileCache=43692 without MinFileCache entry
/S256, MaxFileCache=262144 without MinFileCache entry

Lowest value of MaxFileCache can actually set to 43072 (System Monitor's MinFileCache readout).

Copy-speed is highest with /S50 and MinFileCache=MaxFileCache=473088, 26MB/sec.

Ultimate stability
As my system depends heavily on 16-bit drivers, stability is an issue. Especially the 16-bits HDA-driver I am using, can induce lots of instability. 
With my most stable configuration I can listen to music during copying a 500MB file, almost without any disturbances - just like with the Windows protected mode driver (only as long as DOS-Boxes are unused - but depends on video-card).
For 'ultimate stability' Vcache must be set static and really low, MinFileCache=MaxFileCache=1024, and XHDD's cache as high as possible (/S511). Smartdrive cache between 2048 - 4096, a cache of 1024 gives unstable results.


BTW: lowest value of XHDD-cache I have used is 50MB, minimum is lower, but my version of XHDD Read-Ahead Buffer starts at 50MB - counts in speed!

Newer versions should start at 20 MB. Not tested yet.

Although a much bigger Read-Ahead Buffer would be nice, preferable with variable Buffersize. :whistle:

Edited by deomsh
correcting typing failures & corrections

Share this post

Link to post
Share on other sites


At last I found time to test SATA in AHCI-mode. I did only about hundred tests, but there are already some result to report.

1) XHDD didn't cache the drives, as was to be expected from the readme.

2) In pure MS-DOS or Windows 98SE I had no stability problems as long as DBLBUFF.SYS was loaded. Once I tried without  DBLBUFF.SYS, the Master Boot Record of one of my SSd's was damaged, I had to repartition the drive!

3) In MS-DOS I found the surprising result that use of secondary buffers (without smartdrive!) actually speeded up copying. :dubbio:

4) In Windows Buffers are doing not much in compatibility mode, but Smartdrive does. Although it makes coping in MS-DOS much slower, Windows gained speed. Even a little bit faster than in MS-DOS.

5) Maximum copy-speed of 500MB between SSD's (Vcache=131072, static):

  • MS-DOS; BUFFERS=40,8: 38 MB/sec.
  • MS-DOS; BUFFERS=10,8; INSTALLHIGH=SMARTDRV 2048 /L /U /V /B:57344: 15 MB/sec.
  • WINDOWS; BUFFERS=40,8: 1 MB/sec.
  • WINDOWS; BUFFERS=10,8; INSTALLHIGH=SMARTDRV 2048 /L /U /V /B:57344: 16 MB/sec.

6) Regarding DBLBUFF.SYS: forced use was not needed for stability, and slowed things down.
In MSDOS.SYS Doublebuffer=1 must be set to load  DBLBUFF.SYS (Doublebuffer=2 was not needed). IO.SYS loads DBLBUFF.SYS in case of DOS=AUTO (or omitted).
In case of DOS=NOAUTO in CONFIG.SYS, DEVICE=DBLBUFF.SYS /D is equivalent. Or: DEVICE=SMARTDRV.EXE /Double_Buffer (loads DBLBUFF.SYS too, '.EXE' is needed in Device-statements).

'Forced' double buffering can be set with DEVICE=DBLBUFF.SYS /D+ ; or: DEVICE=SMARTDRV.EXE /Double_Buffer+.


Share this post

Link to post
Share on other sites
On 12/8/2018 at 12:35 AM, deomsh said:

Newer versions should start at 20 MB. Not tested yet.

I tested XXHD.SYS with read-ahead buffer starting with 20MB cache, standalone (version 2018-16-12). Copying is about 0,5 MB/sec. faster than older version where read-ahead buffer starts with 50MB cache.

In the meantime there are already five newer versions. I could download the last one only: 2019-04-21. Read-ahead buffer should start with 10MB cache. Good News!

Bad News: this version gives big problems with Windows 98se on my system. Booting Windows is not possible, or takes 15 minutes or longer and Drive operations are a problem. The newer versions have different "LBA48/LBA28 I/O opcodes" (according to the Readme). After completely disabling my Big IDE-HDD (500MB), normal booting/ copying is possible again (disabling ESDI_506.PDR made no difference). 

Copying is about 1 MB/sec. faster than older version where read-ahead buffer starts with 50MB cache.

Luckily the 2019-16-12 version is latest of the seven versions on archive.org:


Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...