[1/22/92] Errata and Notes for PC Interrupts: A Programmer's Reference to BIOS, DOS, and Third-Party Calls by Ralf Brown and Jim Kyle ---------------------------------------------------------------------- Page xii The list of contributors was omitted during the publishing process. It is reproduced here in its entirety. Many people have contributed information to the Interrupt List over the years, resulting in a much larger listing than would otherwise have been the case. We gratefully acknowledge the contributions of the following: Dave Andrews , Mike Baszczak, Stephen Bean <70575.406@compuserve.com>, David H. Bennett <74635.1671@compuserve.com>, Jan-Pascal van Best , James Birdsall , Roger Bowler , Chris Blum <76625.1041@compuserve.com>, John Brennen , Vincent Broman , Barry Burke , Jan Ceuleers <2:295/27>, Robert Chafer (Salford, England), Geoff Chappell , John Cooper, Wes Cowley <71441.3154@compuserve.com>, Dan Crocker , Maxime Dallaire <1:167/163>, Brad Davis , Mark Davis , Dan Davison , John DesRosiers, Michael Dickson , Clarence A Dold , David Dyck , Leonard Erickson <70465.203@CompuServe.COM>, John Fa'atuai , Pete Fales , Dan Fandrich , Bob Fehrenbach, Herwig Feichtinger (Petershausen, Germany), David Fink <73700.3076@compuserve.com>, Edwin Floyd <76067.747@CompuServe.COM>, Sergio Fogel , Christian Franke , Bill Frolik , Ge van Geldorp , Skip Gilbrech, Kevin Gillett <1:153/160>, Frank Gladu, Rich Goldschmidt , Robert Goldsmith , Bob Green , Ross M. Greenberg , Darryl Gregorash <1:140/86>, Dennis Grinberg , Dave Guggisberg , Richard Hargrove , Klaus Hartnegg , Ralph Heredia , David Herron , Michael Ho , Peter Holzmann , Thomas Hundt , Ari Huttunen , Ying-Kuen K. Hwang , Bob Jack, Janet Jack, Skule Johansen , Howard Johnson , Tamura Jones <2:512/36.7>, Norbert Juffa (Karlsruhe, FRG), Madis Kaal <2:490/30>, Everett Kaser , Cornel Kaufmann , Paul van Keep <75170.1045@compuserve.COM>, Stuart R. Kemp , James P. Kiely , Naota Kimura , Dave Kirsch , Glen Kriekenbeck , Shalom Krischer , Dan Lanciani , Risto Lankinen, Michael D. Lawler , Brian Leeming (Surrey, England), John Lefor , Marty Leisner , Erik Liljencrantz , Sean Lin (Midland, MI), Mark Livingstone , Marco Lumachi , Rob Luursema , Bent Lynggaard , Otto J. Makela , Richard Marks , Michel Mathieu , David Maxey , Claude Marche , Ken Medellin, Gary E. Miller , Michael A. Moran , Mike Morearty <...!ucbvax!cory!morearty>, Joe Morris , Richard D. Morris , Les Moskowitz <1:261/1008>, Duncan Murdoch , Ben Myers <0003571400@mcimail.com>, Ed Nather , Russ Nelson , Andrea Omodeo (Cilavegna, Italy), Lewis Paper (Minnesota), William L. Peavy <70042.2310@compuserve.com>, A. Padgett Peterson , Greg Pasquariello , Simon Phipps , Jeroen Pluimers <2:281/521>, George W. Pogue , Victor Poon , Dan Prather <72765.1330@CompuServe.COM>, Nelluri Reddy , John Ruschmeyer , Peter Sawatzki , Mark Scase , Carl Schelin , Bernd Schemmer (Dortmund, Germany), Marc Scholtis <2:281/701.2>, W.F. Schroeder , Andrew Schulman <76320.302@CompuServe.COM>, Robert Seals , Mark Seiffert , Michael A. Shiels , Michael D. Shride <74010.3214@compuserve.com>, Fridrik Skulason , George Smith , Norbert Sommer , Joseph G. Souza <1:322/327>, Diomidis Spinellis , G. Adam Stanislav <1:129/39>, Dmitry Stefankov (Moscow, USSR), Jonathan Story , Michael S. Stratoti , Brad Templeton , John B. Thiel , Finn Thoegerson, David G. Thomas, Andrew Torda , RS Tse <3:700/1>, John P. Vias <72260.1601@CompuServe.COM>, Helmut Waelder , Rick Wagner , Robin Walker , Norman Walsh , J. Weaver Jr., Mike Weaver <1:264/610>, John Werner , James West <1:140/26>, Bill White , Paul Williamson , Manfred Young , , Urs Zurbuchen . Page 1-15 Table 1-3 used proportional spacing, which throws off the alignment of much of the table. Page 2-2, Interrupt 02h "Memory parity error: all except Jr, CONV, ..." should read "... PCjr, Convertible, ..." Page 2-4, Interrupt 09h, IRQ1 after "place system in a tight wait loop", add "until next INT 09h" Page 2-7, Interrupt 0Dh, CPU-generated "INT 06 through INT 0C" should read "INT 06h through INT 0Ch" Page 2-11, Interrupt 50h, DESQview IRQ0 The list of ranges for v2.31 also applies to v2.40. Page 2-17, Interrupt 77h, IRQ15 - Reserved delete "(AT,PS)" from heading Page 2-17, Interrupt 77h, IRQ15 - Power Conservation delete "(Compaq SLT/286)" from heading Page 3-3, Interrupt 15h Function 04h under "Registers at call", "results buffer length 20h" should read "results buffer of length 20h" Page 3-4, Interrupt 15h Function 05h under "Registers at call", "results buffer length" should read "results buffer of length" Page 3-5, Interrupt 15h Function 21h under "Registers at call", the lines for BH and BL should be indented one stop beyond the "01h" line, as these registers only apply for subfunction 01h. Page 3-7, Interrupt 15h Function 80h extraneous blank lines under "Return Registers" Page 3-8, Interrupt 15h Function 84h under "Return Registers", "subfunction 0000" and "subfunction 0001" should read "subfunction 0000h" and "subfunction 0001h", respectively. Page 3-17, Interrupt 15h Function C5h under "Registers at call", "INT 1A" should read "INT 1Ah" Page 3-19, Interrupt 16h Function 05h under "Details", "38FCh" should read "38FCh or FC00h"; similarly, "38FEh or FE00h" and "38FFh or FF00h". Page 3-22, Table 3-19 "56h GB" should read "56h Golden Bow VFeature" also add 50h Disk Manager, read-only partition Page 3-25, Interrupt 1Ah Function 09h extraneous blank lines between "Restrictions" and "Return Registers" Page 3-27 Part of the heading for INT 6Ch was lost. Insert "INTERRUPT 6Ch" between "See Also: INT 1Ah ..." and "System Resume Vector" "MSee Also" should read "See Also" Page 4-7, Interrupt 16h Function F0h Return Registers should read "n/a" rather than "unknown" Page 4-8, Interrupt 16h Function F3h Return Registers should read "n/a" rather than "unknown" Page 4-9, Interrupt 15h Function D8h Subfunction 00h extraneous blank line under "Return Registers" Page 5-14, Interrupt 10h Function 05h Subfunctions 80h to 83h Under "Details", "ofphysical" should of course read "of physical", and "pagedetermines" should be "page determines". Page 5-18, Table 5-3 "starting column" and "ending column" should be italicized and without the trailing question marks. Page 5-20, Interrupt 10h Function 10h Subfunction 08h delete the "\v" from the heading Page 5-30, Table 5-6 at offset 05h, "4 Bytes" should be "4 BYTEs" Page 5-38, Interrupt 10h Function 49h under "Details", "specify first point" should read "specifies first point" Page 5-44, Interrupt 10h Function 4Fh Subfunction 06h under "Registers at call", the line for CX should be indented Page 5-44, Interrupt 10h Function 4Fh Subfunction 07h under "Details", the blank in "are multiplied" is missing Page 5-48, Interrupt 10h Function 6Fh Subfunction 06h under "Registers at call", both occurrences of "MGA" should read "MDA" Page 5-51, Interrupt 10h Function 70h under "Purpose", "part of all" should read "part or all" Page 5-52, Interrupt 10h Function 82h extraneous blank line under "Return Registers" Page 5-64, Interrupt 14h Function 81h Subfunction 01h under "Purpose", there is extra space between "to the" and "functions"; under "Details", the blank in "minimal changes" is missing. Page 5-69 for all three "Details" lines, "end ofthe" should read "end of the" Page 5-70 for the first three "Details" lines, "end ofthe" should read "end of the" Page 6-1, Interrupt 13h Function 01h "Purpose:" should be in boldface. Page 6-3, Interrupt 13h Function 08h extraneous blank line between "Purpose" and "Available on" Page 6-7, Interrupt 63h extraneous blank line between "Purpose" and "Available on" Page 6-7, Interrupt 13h Function 05h in the header, "Fixed Disk:" should be removed Page 6-7, Interrupt 13h Function 06h in the header, "Fixed Disk:" should be removed Page 6-8, Interrupt 13h Function 07h in the header, "Fixed Disk:" should be removed Page 6-15, Table 6-5 at offset 00h, "don't have capacity yet" should be italicized and without the trailing question marks Page 6-23, Interrupt 78h Function 00h at the end of the Details section, there is extraneous space between "interrupt" and "handler" Page 6-27, Interrupt 13h Function 1Dh the "Registers at call" section is not correctly indented. It should be indented as AH = 1Dh AL = subfunction 01h get status record DL = drive 02h set cache status ES:BX -> status record DL = drive Page 6-28, Interrupt 13h Function 22h Return Registers should read "n/a" instead of "unknown" Page 6-38, Interrupt 21h Function 44h Subfunction 10h Return Registers should read "n/a" instead of "unknown" Page 6-38, Interrupt 21h Function 44h Subfunction 11h Return Registers should read "n/a" instead of "unknown" Page 6-39, Interrupt 21h Function DCh Return Registers should read "n/a" instead of "unknown" Page 7-1, Interrupt 14h Function 00h "AH = line status (Table 7-2)" should be under "Return Registers" Page 7-1, Interrupt 14h Function 01h "AH bit 7 clear if successful" should be under "Return Registers" Page 7-10, Interrupt 14h Function 00h Conflicts should be "Standard BIOS - Initialize" rather than "none known" Page 7-17, Interrupt 14h Function 1Eh the line break between "01h if no break" and "BH = parity" was accidentally omitted Page 7-21, Interrupt 14h Function A4h the "Registers at call" section should read AH = A4h other registers unknown Page 8-19, Interrupt 21h Function 33h Subfunctions 00h and 01h Under "Return Registers", "AL = 01h" and following should actually be under "Registers at call", and should be indented as AL = 00h ... AL = 01h ... and Control- Break checking DL = 00h ... 01h ... Page 8-39, Interrupt 21h Function 49h "Details" ends with a comma instead of a period. Page 8-50, Table 8-42 extraneous blank line in the description at offset -0Ch Page 8-53, Table 8-49 at offset 00h, "\MACH" should read "\\MACH" The DR-DOS current directory structure differs from the MSDOS CDS. Table 8-49a. Format of current directory structure for DR-DOS 5.0-6.0 Offset Size Description 00h 67 BYTEs ASCIZ pathname of actual root directory for this logical drive 43h WORD drive attributes 1000h SUBSTed drive 3000h??? JOINed drive 4000h physical drive 5000h ASSIGNed drive 7000h JOINed drive 45h BYTE physical drive number (0=A:) if this logical drive is valid 46h BYTE ??? apparently flags for JOIN and ASSIGN 47h WORD cluster number of start of parent directory (0000h = root) 49h WORD entry number of current directory in parent directory 4Bh WORD cluster number of start of current directory 4Dh 2 BYTEs ??? apparently always 0001h 4Fh WORD cluster number of SUBST/JOIN "root" directory 0000h if physical root directory Page 8-55, Tables 8-52 and 8-53 at offset 00h, "if last least-recently" should read "if last; least- recently" Page 8-79, Interrupt 21h Function 5Eh Subfunction 04h under Purpose, "operation" should be "operate" Page 8-83, Interrupt 21h Function 60h Backslashes really messed things up here. The end of "Return Registers" should read buffer filled with qualified name of form D:\PATH\NAME.EXT or \\MACHINE\PATH\NAME.EXT At the end of the first paragraph of the Details section, the single backslash in quotes should be two backslashes. Page 8-108, Interrupt 2Fh Function 12h Subfunction 11h There is an extraneous vertical bar after "Return Registers:" Page 8-134, Interrupt 2Fh Function 10h Subfunction 80h under "Details", delete "they may also be turned off with the undocumented /NC commandline switch". Page 8-135, Interrupt 2Fh Function 19h Subfunction 04h The last two lines of this entry should be under Return Registers, indented as ES:DI -> ... WORD ... N BYTEs ... Page 10-1, Interrupt 2Fh Function 43h Subfunction 10h A number of items are incorrectly indented in the description of the calls to the driver entry point. For function 01h, the calling registers should be indented as 01h Request High Memory ... DX = memory in bytes ... FFFFh if application program For functions 0Ah, 0Bh, 0Dh (page 10-2), 0Fh, and 11h (page 10-3), the return value BL should be indented on tab stop beyond "0000h failure", as it is for function 06h. Page 10-7, Interrupt 67h Function 4Ch There is an extraneous blank line under "Return Registers". Page 10-17, Virtual Control Program Interface "to have multiplex" should read "to have multiple" Page 10-20, Interrupt 67h Function DEh Subfunction 09h Details: should read "Values for DR4 and DR5 are ignored." Page 10-20, Interrupt 67h Function DEh Subfunction 0Ah In the Purpose section, "interrupt" is misspelled as "interrutp". Page 11-1, Interrupt 2Fh Function FBh Subfunction 42h under Return Registers, there should be no indenting. All lines should start in the same column as "Return Registers". On the Conflicts: line, "None known" was erroneously boldfaced. Page 11-2, Interrupt 2Fh Function 16h Subfunction 87h The lines "Call Mode Switch entry point with:" and "Mode Switch routine returns with:" should have been boldfaced. Page 11-4, Interrupt 31h Function 00h Subfunction 02h on the Purpose: line, "descritor" should be "descriptor" Page 11-18, Table 11-11 "12 Bytes" should be "12 BYTEs" Page 11-23, Interrupt 31h Function 06h Subfunction 02h and Subfunction 03h The Purpose: sections of these two entries were accidentally exchanged. Subfunction 02h permits the memory to be paged out while Subfunction 03h prevents memory from being paged out. Page 11-30, Interrupt 31h Function 0Dh Subfunction 02h The "Registers at call" section should be indented as DX = flags bit 0: return immediately rather than suspending if serialization unavailable 1: ... Page 12-1, Interrupt 4Bh Function 81h Subfunction 02h The heading was not boldfaced. The end of the Return Registers section should be indented as follows: CF set on error AL = error code (see Table 12-1) Page 13-1, Microsoft Mouse "Microsoft Mouse The Microsoft mouse driver" should read just "The Microsoft mouse driver" Page 13-11, Interrupt 33h Function 0024h under Return Registers, "on errorotherwise" should read "on error; otherwise" Page 13-16, Interrupt 33h Function 0042h The Return Registers section should be indented as AX = FFFFh ... BX = buffer size.... = 0000h ... = 0042h ... Page 14-1, Interrupt 16h Function 6Fh Subfunction 00h The lines under "Registers at call" and "Return Registers" were erroneously boldfaced. After the book appeared, I was informed that this call is actually an HP Vectra installation check, and thus should be in chapter 4 rather than chapter 14. Page 14-1, Interrupt 2Fh Function 16h Subfunction 00h The Available on: and Restrictions: sections were erroneously boldfaced. Page 14-4, Interrupt 2Fh Function 16h Subfunction 81h the last two sentences of the Details section should be a single sentence; replace "2.x. Get" with "2.x; get" Page 14-9, Interrupt 2Fh Function 17h Subfunction 0Ah tables 14-6 and 14-7 were omitted during the publication process. Under "Registers at call" it should read "(see Table 14-6)", while the "Return Registers" section should read "(see Table 14-7)". The two tables are reproduced here in their entirety. Table 14-6. GDI Information Index Codes: Code Meaning 00h device driver version 02h device classification 04h width in mm 06h height in mm 08h width in pixels 0Ah height in pixels 0Ch bits per pixel 0Eh number of bit planes 10h number of brushes supported by device 12h number of pens supported by device 14h number of markers supported by device 16h number of fonts supported by device 18h number of colors 1Ah size required for device descriptor 1Ch curve capabilities 1Eh line capabilities 20h polygon capabilities 22h text capabilities 24h clipping capabilities 26h bitblt capabilities 28h X aspect 2Ah Y aspect 2Ch length of hypotenuse of aspect 58h logical pixels per inch of width 5Ah logical pixels per inch of height Table 14-7. GDI Information Return Codes: device classification 00h vector plotter 01h raster display 02h raster printer 03h raster camera 04h character-stream, PLP 05h Metafile, VDM 06h display-file curve capabilities bit 0 circles bit 1 pie wedges bit 2 chord arcs bit 3 ellipses bit 4 wide lines bit 5 styled lines bit 6 wide styled lines bit 7 interiors line capabilities bit 1 polylines bit 2 markers bit 3 polymarkers bit 4 wide lines bit 5 styled lines bit 6 wide styled lines bit 7 interiors polygon capabilities bit 0 polygons bit 1 rectangles bit 2 trapezoids bit 3 scanlines bit 4 wide borders bit 5 styled borders bit 6 wide styled borders bit 7 interiors text capabilities bit 0 output precision character bit 1 output precision stroke bit 2 clippping precision stroke bit 3 90-degree character rotation bit 4 arbitrary character rotation bit 5 independent X and Y scaling bit 6 double-size bit 7 integer scaling bit 8 continuous scaling bit 9 bold bit 10 italic bit 11 underline bit 12 strikeout bit 13 raster fonts bit 14 vector fonts bit 15 reserved clipping capabilities 00h none 01h clipping to rectangles raster capabilities bit 0 simple bitBLT bit 1 device requires banding support bit 2 device requires scaling support bit 3 supports >64K bitmap Page 15-1, Interrupt 10h Function FFh There is an extraneous blank line in the heading. Under Registers at call, "ES:DI - first" should read "ES:DI -> first" Page 15-6, Interrupt 15h Function 10h Subfunction 1Fh under "Registers at call", substitute "ES:DI" for "DS:DI" Page 15-10, Interrupt 15h Function 12h Subfunction 00h there are extraneous blank lines under both "Registers at call" and "Restrictions". Page 15-12, Interrupt 15h Function 12h Subfunction 02h on the Purpose line, read "object" for "objects", as only a single object is freed Page 15-14, Interrupt 15h Function 12h Subfunction 04h There is an extraneous blank line under both "Registers at call" and "Return Registers" Page 15-35, Interrupt 15h Function 12h Subfunction 0Ch The Purpose line should read "Prepare for I/O" rather than "Prepare of I/O". There is also an extraneous blank line under "Registers at call" Page 15-37, Interrupt 15h Function 12h Subfunction 0Eh there should have been a line break between "keyboard: discard input" and "timer: cancel current interval" Page 15-40, Interrupt 15h Function 12h Subfunction 11h The "STACK: DWORD ..." line should not have been indented Page 15-40, Interrupt 15h Function 12h Subfunction 12h The "STACK: DWORD ..." line should not have been indented Page 15-44, Interrupt 15h Function DEh Subfunction 00h New information has become available indicating that the return value is the offset of the program most recently selected from the "Switch Windows" menu, rather than the calling program. Page 15-44, Table 15-7 at offset 00h, add "(FFh if end of file)" change the last two lines to read BYTE program type WORD apperently always 0000h Page 15-54, Interrupt 21h Function 2Bh The last two lines of the "Registers at call" section should not have been indented. Page 15-55, Interrupt 2Fh Function DEh Subfunction 01h There is an extraneous blank line prior to the Details section. Page 16-3, Interrupt 14h Function 23h under "Return Registers", the line describing bit 6 of AH was indented much more than it should have been. Page 17-1, Interrupt 11h Function FFh Subfunction FEh under "Return Registers", the return values for calls 01h and 02h ("DX:AX -> unknown" and "n/a") should not be indented Page 17-8, Interrupt 15h Function 54h Subfunction 00h and Subfunction 01h under Return Registers, "unknown" should be "n/a" Page 17-9, Interrupt 15h Function 54h Subfunction 02h through Subfunction 06h under Return Registers, "unknown" should be "n/a" Page 17-10, Interrupt 15h Function 54h Subfunction 07h under Return Registers, "unknown" should be "n/a" Page 17-10, Interrupt 21h Function E1h under Conflicts, change "OS/286, OS/386 (chapter 1)" to "OS/286, OS/386 (chapter 9)" Page 17-11, Interrupt 21h Function E2h under Conflicts, change "OS/286, OS/386 (chapter 1)" to "OS/286, OS/386 (chapter 9)" Page 18-15, Interrupt 7Fh Function 02h under Return Registers, "AH = semaphore owner" should be indented one tab stop beyond the line above. Page 18-18, Interrupt 7Fh Function 08h Subfunctions 00h and 01h there is an extraneous blank line in the "Return Registers" section Page 18-21, Interrupt 7Fh Function 10h Subfunction 04h under Purpose, read "datagram" for "datagrams" Page 18-22, Interrupt 7Fh Function 10h Subfunction 06h On the Details line, "functio" should be "function" Page 18-23, Interrupt 7Fh Function 10h Subfunction 09h On the Details line, "functio" should be "function" Page 18-31, Interrupt 7Fh Function 37h "adderss" should be "address" on the Purpose line Page 19-6, Interrupt 2Fh Function 11h Subfunction 0Fh there is an extraneous blank line in the "Registers at call" section Page 19-9, Interrupt 2Fh Function 11h Subfunction 17h Part of a line has been misplaced. The "Registers at call" section should read in part SDA CDS pointer -> current directory structure for drive with file STACK at call: WORD file creation mode low byte.... Page 19-9, Interrupt 2Fh Function 11h Subfunction 18h The Details section is misplaced. It should be after the "STACK at call" portion and immediately prior to "Conflicts:" Page 19-15, Interrupt 2Fh Function 11h Subfunction 2Eh there is an extraneous blank line under "Registers at call" Page 19-21, Table 19-3 the table's heading is misplaced Page 20-5, Interrupt 21h Function C1h Under "Purpose", read "specified" for "specied" Page 20-16, Table 20-5 at offset N, "propertyis" should of course be two words Page 20-31, Table 20-15 at offset 1Fh, "data stream type" is missing both blanks Page 20-32, Interrupt 7Ah Function 0014h Return Registers should be "n/a" rather than "unknown" Page 21-1, Interrupt 21h Function 5Fh Subfunction 80h Under "Return Registers", the quoted backslash should be doubled Page 21-2, Interrupt 21h Function 5Fh Subfunction 81h under Details, "\machine" should read "\\machine\username" Page 21-2, Interrupt 21h Function 5Fh Subfunction 82h, Subf 84h, Subf 85h in all three entries, the backslashes should be doubled Page 21-3, Interrupt 21h Function 5Fh Subfunction 86h and Subfunc 97h the backslash under "Registers at call" should be doubled (i.e "\\") Page 21-5, Interrupt 21h Function 5Fh Subfunction A0h the backslash under "Registers at call" should be doubled (i.e "\\") Page 21-7, Interrupt 21h Function 5Fh Subfunction A3h the backslash under "Registers at call" should be doubled (i.e "\\") Page 21-8, Interrupt 21h Function 5Fh Subf A4h, Subf A5h, Subf A7h, Subf B0h in all four entries, the backslash under "Registers at call" should be doubled (i.e "\\") Page 21-9, Interrupt 21h Function 5Fh Subfunction B1 the backslash under "Registers at call" should be doubled (i.e "\\") there are extraneous blank lines under "Return Registers" Page 21-10, Interrupt 21h Function 5Fh Subfunction B2h the backslash under "Registers at call" should be doubled (i.e "\\") Page 22-11, Table 22-34 at offset 03h, "sessoin" should of course be "session" Page 23-8, Table 23-11 at offset 0Dh for operation codes 00h/06h, "explicity" should be "explicit" Page 24-6, Interrupt 6Ah Function D3h Subfunction 00h "rConflicts:" should of course be "Conflicts:" Page 26-2, Interrupt 21h Function A0h under "Return Registers", the description for AL bits 2-0 has been indented one tab stop too far Page 26-15, Table 26-8 for value 1Fh, "position of" is missing the blank Page 27-8, Table 27-8 at offset 08h, "pointer" was misspelled Page 27-10, Table 27-13 at offset 40h, bit 15, "during" was misspelled Page 28-7, Interrupt 21h Function 2Bh Subfunction 44h I have been informed that the Return Registers should read AX = 4F4Bh ('OK') if large host loaded = 6F6Bh ('ok') if small host loaded CX:DX -> API entry point Page 29-7, Interupt 2Fh Function CBh Subfunction 0Fh under "Registers at call", the last line ("DH =") should be indented one tab stop further than the line above Page 29-8, Table 29-4 at offset 0Bh, "already" was misspelled Page 29-12, Table 29-7 and Table 29-8 Several index entries (the lines starting with ".i.") wound up as printable text.... Page 33-7, Interrupt 16h Function FFh Subfunction B5h the boldfacing on the second line of the heading was lost Page 34-1, Interrupt 21h Function 33h Subfunction E0h for Return Registers, read "AL = E0h if resident" Page 36-3, Interrupt 2Fh Function D4h Subfunction 4Eh the last word on the Purpose: line should be "level" Page 36-13, Table 36-8 in the description for value 16h, "length overrun" is missing the blank Page 36-41, Interrupt 2Fh Function D1h Subfunction 03h and Subfunc 04h in both entries, under Return Registers, for AH = 04h, "redefinded" should of course be "redefined". This error was in the original interrupt list.... Page 36-50, Table 36-17 the second line of the description for value 08h was not sufficiently indented. Page 36-59, Table 36-19 The first word of the description for value 0Ch should be "fetch" not "etch". The table also has several misaligned entries on the following page. In addition to the above, throughout the book there are numerous items which should line up vertically but do not.