The 80x8x architecture depends heavily on interrupts. Since there are far more than 256 uses for interrupts, Software Interrupts are subdivided by the settings of machine registers at the time of the interrupt -- INT21 AH=5 will invoke a different function than INT21 AH=6. INTs may be further subdivided by the settings of other registers. Some interrupts are multiplexed as well, being shared by hardware and software by having the software check to see if the hardware is in an interrupt state. This sometimes leads to wildly inaccurate error messages if the mechanism breaks down -- for example "Divide Errors" caused by software accidentally generating INT 0.
There are literally thousands of INTs defined. The definitive list is known as Ralf Brown's INT list and is available on many Bulletin Boards and Web sites. Search on INTER. Subsets are available in books such as "Undocumented DOS" Addison-Wesley, ISBN 0-201-57064-5 and "The Programmers Guide to the IBM PC", Microsoft Press, ISBN 0-914845-46-2
A few INT vectors have been stolen in order to pass addresses of data structures. For example INT 1D's vector address points to the Diskette Parameter Table.
Some major INT families: (by convention, INTs are expressed in Hexadecimal)
|INT No||INT Type|
|0 - 11||CPU Errors, Exceptions, Special functions|
|8 - F||Hardware IRQs 0-7|
|15||Originally Cassette -- System Specific on many PCs|
|20 - 27||MSDOS Communication (Primarily INT 21)|
|28 - 2F||MSDOS-Windows Internal (Primarily INT 2F)|
|4F||SCSI Common Access|
|5B - 5C||Networking (NETBIOS)|
|60 - 61||Networking (FTP, Banyan Vines)|
|67||LIM Memory management|
|70 - 77||Hardware IRQs 8-15|
Return To Index Copyright 1994-2008 by Donald Kenney.