home *** CD-ROM | disk | FTP | other *** search
- DOS PROGRAMMERS, NOTE: The purpose of this program is to demonstrate a
- bug I have noticed in the way MS-DOS Version 5.00 loads a program into
- an Upper Memory Block (UMB). You may want to write a few extra lines of
- code to compensate for it. Here is what happens: When a user enters a
- DOS command followed immediately by filenames or drive letters in the
- format "δ:filename" (i.e. drive letter followed by a colon), DOS is
- supposed to encode each drive letter in the bytes at offsets 5Ch and
- 6Ch, respectively, in the program segment prefix (PSP) as the first byte
- of an unopened FCB. An entry of "A:" is supposed to give you 01h, "B:"
- yields 02h, and so forth. However, when MS-DOS Version 5.00 is running
- and your program has been loaded into a UMB using the LOADHIGH or LH
- command, DOS falls down. The byte at 5Ch always remains a zero no
- matter what, and the byte at 6Ch is coded for the *first* drive
- specified! (If you specify a second drive, it ends up who-knows-where.)
- If you enter "BUGTEST a: b:" under DOS Version 5.00, it will correctly
- return the specified drives. But if you enter "LOADHIGH BUGTEST a: b:"
- instead, you'll notice that DOS reports no first drive and the wrong
- second drive. Probably nobody uses FCBs anymore, but those drive bytes
- come in very handy sometimes. Grrrrr!
-
- -- Jerry Monroe, CIS # 72321,1257
- June 23, 1991
-