Реферат: Making Utilities For MSDOS Essay Research Paper
was introduced to support local area networks and JOIN/SUBST commands. The third
change occured in MS-DOS version 4.00, when 32-bit sector addressing was
introduced and an oversight with storing the number of sectors in a File
Allocation Table (FAT) was fixed. The reader can see that each new major MS-DOS
version up to 4.00 introduced a change in the DPB format. And this is typical
with all MS-DOS undocumented internal structures.
Although one can probably ignore DOS versions earlier than 3.10, he still would
have to deal with two different DPB formats. And prior to DOS version 5.00,
where DPBs were finally documented, no one could be sure that a new DOS version
wouldn’t change the DPB format once again. In the first version of SteelBox, my
utility that needs to know about DPBs in order to do its work, I simply compared
the DOS version number obtained via INT 21h/AH=30h with 4.00. If the DOS version
was earlier than 4.00, I assumed that it has the same DPB format as IBM PC-DOS
versions 3.10-3.30. If the DOS version was 4.00 or later, I assumed that it has
the same DPB format as IBM PC-DOS version 4.xx. However, there are problems with
such assumptions. First, there are some versions of MS-DOS other than IBM PC-DOS,
and some of them have their internal structures different from those of standard
MS-DOS and PC-DOS. For example, European MS-DOS 4.00 returns the same version
number as IBM PC-DOS version 4.00, but its internal structuresmuch more closely
resemble that of PC-DOS version 3.xx. Second, prior to Microsoft’s documenting
of DPBs in MS-DOS version 5.00, there was no guarantee that the DPB format
wouldn’t change with a new DOS version.
When I was developing a new version of SteelBox, I started to think about how to
use DPBs properly and in a version-independent manner. I justified the use of
DOS internals in the first place because I know that a lot of Microsoft’s own
utilities use them extensively. The examples are MS-DOS external commands like
SHARE, JOIN, and SUBST, Microsoft Network, Microsoft Windows, Microsoft CD-ROM
Extensions (MSCDEX), etc. Before we go any further, it should be noted that we
mustn’t be dumping unfairly on Microsoft. Originally I thought that DOS