Interrups | Categories | Contents |
AX = 4A10h BX = 0003h BP = drive number (0=A, 1=B, etc.) FFFFh = all drives (NWCACHE only) DL = subfunction 00h only get information 01h turn on read cache 02h turn off read cache 03h turn on write cache 04h turn off write cache ---NWCACHE--- 05h reduce cache size CX = number of KB to reduce (can't shrink below min size) 06h increase cache size CX = number of KB to increase (can't grow above max size)
Return:
AX = BABEh if OK DL = status (see #02801) DL = FFh if drive does not exist
Notes: If the read cache is off, reads will not be cached, but writes will continue to be cached if the write-cache is enabled.. This function is also supported by PC-Cache v8.0.. SMARTDRV flushes the cache if sub-functions 02h or 04h have been called to disable read or write caching.. On calling this function, NWCACHE flushes any delayed writes, but you should not rely on this, since this behavior may vanish in future versions.
BUG: The MS-DOS 6.20+ SCANDISK disables a SMARTDRV 4+ compatible cache for the drive it is about to process. However, at least when the cache loaded is NWCACHE, the cache will still remain disabled for this drive after SCANDISK has finished. The reason for this behavior is not yet known. The workaround is to re-enable with the
NWCACHE d:+ syntax afterwards, where d:
Is the corresponding drive letter.
See Also: AX=4A10h/BX=0000h
Bitfields for SMARTDRV status: Bit(s) Description (Table 02801) 7 not cached (no read-caching) 6 write-through (not write-cached) 0-5 real drive number (0=A, 1=B...)
Notes: The "real" drive number is always set to 00h for RAM disks and to 3Fh for CD-ROMs; unfortunately, the latter means that an uncached CD-ROM has status FFh, just as a nonexistent drive does. Also supported by Novell DOS 7 - Caldera/Lineo DR-DOS 7.03 NWCACHE
Category: Caches/Spoolers - Int 2Fh - S
Interrups | Categories | Contents |