On Mon, 2020-05-25 at 14:13 -0700, Fred Cisin via cctalk wrote:
I hadn't
thought about IBMCACHE.SYS in *years*. I wrote it in
its entirety (there's even a patent that covers some of its
operation).
I was in an AdTech (Advanced Technology) group at
the time and
was looking at how to make disk operations faster in DOS at the
time
when I came up with the idea. There was a *huge*
battle within IBM
on if
it should be released and in order to do so, it
was fairly well
hidden.
I think that I recall a mention of REFERENCE disk of PS/2?
(NOT model 25 or 30, which didn't have extended memory)
Can IBMCACHE co-exist with HIMEM.SYS?
Or require it?
Or the A20 support needed by Windows 3.10?
When SMARTDRV was activated, did it disable IBMCACHE? or conflict
with it?
No, IBMCACHE was standalone. As I recall (I wish I'd kept a copy of
the source), you could tell it how much (and starting address) of where
it would use memory > 1MB (I think there was also a mode that allowed
you to use it < 1MB as well). That was done to allow for co-existence
with HIMEM.SYS.
When the write back cache was enabled (it would always allow write-
thru), in addition to intercepting INT 13 (and timer) it would also
intercept INT 21 so that if you did a "close" it would immediately
flush out the dirty buffers.
One of the differences between between IBMCACHE and SMARTDRV as I
recall (I really didn't spend too much time thinking about SMARTDRV)
was that IBMCACHE was block based versus SMARTDRV being track based.
It allowed for much better caching (from my own analysis when I was
developing it). It also allowed for caching blocks that had bad
sectors (which was one of the patents for IBMCACHE).
When IBMCACHE did a write out of dirty blocks they were always in
sorted order (the list of dirty blocks was kept in sorted order). I
recall playing around with dual elevator algorithms (it knew where the
last read/write was) so it could do the writes that required the
fewest/shortest seeks. It turned out now to be a huge win (for DOS)
versus the complexity, so I never released that.
I even had a version that cached floppies (but would *never* enable the
write-back cache for devices that it thought were removable). If it
detected a disk change it would flush the cache for that drive.
TTFN - Guy