OS/2 Museum's history of DOS mentions the FASTOPEN.EXE
TSR was introduced in DOS 3.3. Its entry on DOS 4.0 adds some implementation details.
It reminded me of the DR DOS FASTOPEN=nnnnn
directive in CONFIG.SYS
, which Wikipedia says works "considerably different" than the DOS TSR.
I assume both variants increase the speed of opening files by caching FAT information as it is read.
This page further states DOS FASTOPEN.EXE
needs 48 bytes for each cached file. I'm guessing it caches directory entries. If so, and since FAT16 allocates 32 bytes per directory entry, what are the other 16 bytes used for?
Meanwhile, this DR DOS guide indicates the nnnnn
parameter specifies in bytes
the size of the table FASTOPEN creates in memory. The default is 512, creating a table 1,024 bytes. … Each entry in the table takes two bytes of memory.
This documentation also (confusingly) says to create a table one kilobyte in size, nnnnn
should be 1024
, so there's a mistake somewhere in there. Still, if each entry is two bytes in size, that doesn't sound like a directory entry cache. Or does it mean FASTOPEN
manages a table of nnnnn
filenames and each entry is associated with a 2-byte value?
(As a side note, a different DR DOS user guide adds:
FASTOPEN.EXE is supplied with DR DOS, but does not perform any function. It is supplied explicitly for applications which require it to exist.
I assume the primary motivation for this was so users who migrated from DOS to DR DOS wouldn't see errors when their existing AUTOEXEC.BAT
failed to run FASTOPEN.EXE
.)
How do the MS-DOS and DR DOS FASTOPEN
variants work?