history is hard (was: Microsoft open sources GWBASIC)

Guy Sotomayor ggs at shiresoft.com
Mon May 25 13:47:00 CDT 2020

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

More information about the cctech mailing list