(Translated by https://www.hiragana.jp/)
Undocumented DOS, 2nd Edtion Errata by Ralf Brown p. 8, middle "easier said than none" should of course read "...than done" p. 37, last two lines "terminate-and-stay (TSR)" is missing "resident" in between p. 41, end of first paragraph unmatched right parenthesis at very end p. 46, right after first quotation "were present at time of OS/2" should read "...at the time..." p. 52, second paragraph "high-colume" should read "high-volume" p. 56, first word of second paragraph "There" should read "These" p. 62, second paragraph under "DOS Calls from C" "have adapted them" should read "have adopted them" p. 86, last line before Listing 2-16 "undos_dos_okay" should read "undoc_dos_okay" p. 102, third paragraph "since and entirely separate book" should probably read "entire" for "entirely" p. 117, second paragraph "the DPMISH program call C" should read "... can call C" p. 123, third paragraph "that call INT 21h fom" should of course read "... from" p. 190, second line "IBMDOS.COM provide these calls" should read "provides" instead p. 197, fourth paragraph under "NetWare 4.0 and the Network Redirector" missing parenthesis at "for NetWare 4 (though of course" p. 213, next-to-last paragraph of quotation "introduced some hasty bugs" should of course read "nasty" instead p. 218, fifth line "and low and behold" should be "and lo and behold" p. 280, second paragraph ******* IBM's interrupt-sharing spec is in use on millions of machines! Every system running MS-DOS 3.3+ with nonzero STACKS=, in fact. When MS-DOS installs the STACKS= handlers for the hardware interrupts to switch stacks, the interrupt handlers use the IBM interrupt-sharing spec. p. 284, second set of comment lines "UBM Link" should naturally by "UMB Link" p. 285, last set of comment lines "but A20 has been off;" should read "but had A20 been off," p. 288, Figure 6-5 comment "switch to DOS's DS; hmm, not truly reentrant after all!" is quite simply false. Pointing at the DOS DS does not in itself make a function non-reentrant. Particularly since at most a single memory location gets modified (by subfunctions 01h and 02h). p. 301, last paragraph before "Tracing a DOS INT 2Fh Call" for "call use a new pointer", read "use a near call" p. 330, third paragraph "turns turns" p. 331, first line after Figure 6-22 "SFT ndx" should read "SFT index" p. 335, first paragraph after quotation "As far trade secret" should read "As far as trade secret" p. 346, Table 7-1 The table is somewhat messed up. The beginning should read Code Directive Meaning D DEVICE= device driver, if present E device driver appendage, if present I ... p. 362, second paragraph for "code and changed", read "code has changed" p. 364, third paragraph The discussion about the two-level upper memory chains is not correct for QEMM. QEMM maintains a UMB chain which is identical to the MS-DOS low memory chain. It only becomes two-level when MS-DOS allocates the upper memory as XMS UMBs and installs its own chain in the allocated UMBs. When using Quarterdeck's own utilities while DOS=NOUMB is in effect, the upper memory chain remains single-level (QEMM uses blocks marked as belonging to itself to lock out the non-UMB areas between UMB regions). p. 367, first paragraph under "The COM File Format" "stack pointer set to 00FE" should actually read "stack pointer set to FFFE (or the top of the memory block if it is less than 64K in size)" p. 413, fourth paragraph under "The File Allocation Table" Checking only the top four bits to determine whether to use a 12-bit or a 16-bit FAT is not completely correct, since the switch-over point is actually 0FF6h. p. 434, third line "These 32-byte blocks"--under DOS 4+, they are 33 bytes. p. 441, first paragraph As of version 4.0, SmartDrive no longer uses INT 13h, instead putting a 'wrapper' around the block device driver. p. 466, "FILE* vs. File Handles" The first word, "Before" has a wrong font for the first letter. p. 469, middle "FILES=254 is therefore the maximum". Since SFT index 0 is valid, the maximum is in fact FILES=255 even though index FFh is used as a free-JFT flag. p. 485, first paragraph under "More File Handles" "the pre-process" should of course read "the per-process" p. 492, third line missing comma in "lock and unlock regions of a file, for checking" p. 511, two-thirds down the comment "only support INT 2Fh AX=1100h through AX=1123h" should read "112Eh" instead of 1123h p. 513, Listing 8-29 "sft_ptr->dev_info_world" should read "sft_ptr->dev_info_word" p. 517, third line "For all it matter," should read "For all it matters," p. 518, last paragraph Once again, SmartDrive v4+ does not use INT 13h any more. p. 528, under "Subfunction 0Ah" "DOS 3.0.X" should read "DOS 3.X" p. 529, "Subfunction 0Fh" not properly indented p. 530, "Subfunction 19h" not properly indented p. 532, fourth line missing close quote after Another Detection Method p. 532, "Subfunction 21h" note that the conditions under which DOS calls this function are precisely those under which another process can change the length of the file; for all other sharing modes, the file size will never be changed without DOS's knowledge (unless of course there was an undetected sharing violation), so there is no need to call the redirector to get an updated file size. p. 538, last paragraph Functions 26h through 29h were almost certainly added to support NLSFUNC, since both they and NLSFUNC appeared in MS-DOS 3.30. NLSFUNC has no need to write a file, so there is no Write function.... p. 564, third-to-last line for "issues the period INT 28h" read "... periodic INT 28h" p. 587, two-thirds down "5D0Bh (for DOS 4 and higher)" is actually "5D0Bh (for DOS 4 only)" p. 602, Figure 9-23 ******** Unfortunately, the figure, and the following sample assembly language routine, are very much wrong on the jump instructions. Both are SHORT jumps, i.e. coded as EBh XXh, rather than FAR jumps. In addition, various software expects the jump at the beginning of the header (the interrupt handler's entry point), to jump to the byte immediately following the header, i.e. to find the bytes EBh 10h at the address pointed at by the interrupt vector. p. 606, Listing 9-26 "SRDERR" should be "STDERR" p. 611, under "Keyboard Interrupt" extraneous comma in "gives the user better, response time" p. 618, next-to-last line "DesqView" is actually "DESQview" p. 630, fourth paragraph DATE and TIME were external commands in PC-DOS 1.0, and migrated into COMMAND.COM with version 1.1. p. 632, end of "Dealing with BAT Files" section missing period p. 638, end of section preceding "TSHELL, a Simple Command Interpreter" missing period p. 644, end of the second paragraph COMMAND.COM puts a portion of its *resident* portion in the HMA when DOS is loaded in the HMA. p. 682, format of PSP update: 3Ch BYTE apparently unused by DOS versions <= 6.00 3Dh BYTE (APPEND) TrueName flag (see INT 2F/AX=B711h) p. 688 INT 21h Function 4302h under Returns:, "CX" should be indented a few spaces p. 745, INT 21h Functions 71h-72h, last paragraph MS-DOS has always supported multiple concurrent file finds--simply switch the DTA to a different location for each of the concurrent finds. p. 836, Stan Brown, dos.faq Missing greater-than sign in "What the heck is 'DGROUP > 64K'?" p. 844, Arne Sh„pers missing u-umlaut () in "Die endgltige Referenz" --- END OF FILE ---