On Mon, 2020-05-25 at 20:28 +0200, Liam Proven via cctalk wrote:
On Mon, 25 May 2020 at 20:22, Guy Sotomayor <ggs at
shiresoft.com>
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.
Oh my word! Well I thank you for it. It helped a very great deal and
made dozens of users of rather expensive IBM PS/2s in the Isle of Man
very happy for a while in the late 1980s and early 1990s. :-)
You're very welcome! I know that there were some bids that IBM
marketing needed IBMCACHE.SYS to win (millions of dollars) and it was
*still* a battle to get it released!
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 can believe that! I think I read of it in a magazine and thought
"never! I'd know!" -- so I looked and there it was.
There was a switch on config.sys statement for
IBMCACHE.SYS to turn
off
the write-back cache (e.g. writes would always go straight to
disk).
As I recall, there was a 30 second timer for the writeback cache so
that if a disk block was "dirty" for more than 30 seconds it would
get
flushed to disk.
Yes, both true. I think I may have used the write-through switch for
some people, but ISTR it reduced performance a little bit. Just
teaching people to be a bit more patient was sometimes hard -- after
all, this was a tool that appealed to the impatient!
I think for them it was easier to teach them to press C-A-D and then
wait for the RAM check before turning off.
Or hit C-A-D, let it boot all the way, then turn it off!
Great bit of work, if I may say so!
Yea, not only did I have to write it, but I had to write a series of
tests to run through billions of disk operations (and go validate the
internal state of the cache) before it could even be considered for
release. ;-)
BTW, as a bit of copyright paranoia, if you do an ASCII dump of
IBMCACHE.SYS, you'll see my 3 initials (GGS) (or it may have been
IBM...it's been so long I can't remember). They are actually
instructions! It was required at the time to have code embed a text
string as actual instructions that get executed. It took me a bit of
time to figure out (in x86 assembler) how to generate an appropriate
string. The idea was that if someone "cloned" the program and just did
a replacement of the string, it would stop working because the string
was actually instructions.
TTFN - Guy