Software Interrupts

Any program can trigger software interrupts synchronously simply by executing an INT instruction. MS-DOS uses Interrupts 20H through 3FH to communicate with its modules and with application programs. (For instance, the MS-DOS function dispatcher is reached by executing an Int 21H.) The IBM PC ROM BIOS and application software use other interrupts, with either higher or lower numbers, for various purposes (Figure 13-2). These assignments are simply conventions and are not wired into the hardware in any way.

Interrupt Usage Machine

00H Divide-by-zero PC, AT, PS/2

01H Single step PC, AT, PS/2

02H NMI PC, AT, PS/2

03H Breakpoint PC, AT, PS/2

04H Overflow PC, AT, PS/2

05H ROM BIOS PrintScreen PC, AT, PS/2

BOUND exceeded AT, PS/2

06H Reserved PC

Invalid opcode AT, PS/2

07H Reserved PC

80287/80387 not present AT, PS/2

08H IRQ0 timer tick PC, AT, PS/2

Double fault AT, PS/2

09H IRQ1 keyboard PC, AT, PS/2

80287/80387 segment overrun AT, PS/2

0AH IRQ2 reserved PC

IRQ2 cascade from slave 8259A PIC AT, PS/2

Invalid task-state segment (TSS) AT, PS/2

0BH IRQ3 serial communications (COM2) PC, AT, PS/2

Segment not present AT, PS/2

0CH IRQ4 serial communications (COM1) PC, AT, PS/2

Stack segment overflow AT, PS/2

0DH IRQ5 fixed disk PC

IRQ5 parallel printer (LPT2) AT

Reserved PS/2

General protection fault AT, PS/2

0EH IRQ6 floppy disk PC, AT, PS/2

Page fault AT, PS/2

0FH IRQ7 parallel printer (LPT1) PC, AT, PS/2

10H ROM BIOS video driver PC, AT, PS/2

Numeric coprocessor fault AT, PS/2

11H ROM BIOS equipment check PC, AT, PS/2

12H ROM BIOS conventional-memory size PC, AT, PS/2

13H ROM BIOS disk driver PC, AT, PS/2

14H ROM BIOS communications driver PC, AT, PS/2

15H ROM BIOS cassette driver PC

ROM BIOS I/O system extensions AT, PS/2

16H ROM BIOS keyboard driver PC, AT, PS/2

17H ROM BIOS printer driver PC, AT, PS/2

18H ROM BASIC PC, AT, PS/2

19H ROM BIOS bootstrap PC, AT, PS/2

1AH ROM BIOS time of day AT, PS/2

1BH ROM BIOS Ctrl-Break PC, AT, PS/2

1CH ROM BIOS timer tick PC, AT, PS/2

1DH ROM BIOS video parameter table PC, AT, PS/2

1EH ROM BIOS floppy-disk parameters PC, AT, PS/2

1FH ROM BIOS font (characters 80H—FFH) PC, AT, PS/2

20H MS-DOS terminate process

21H MS-DOS function dispatcher

22H MS-DOS terminate address

23H MS-DOS Ctrl-C handler address

24H MS-DOS critical-error handler

address

25H MS-DOS absolute disk read

26H MS-DOS absolute disk write

27H MS-DOS terminate and stay resident

28H MS-DOS idle interrupt

29H MS-DOS reserved

2AH MS-DOS network redirector

2BH—2EH MS-DOS reserved

2FH MS-DOS multiplex interrupt

30H—3FH MS-DOS reserved

40H ROM BIOS floppy-disk driver (if PC, AT, PS/2

fixed disk installed)

41H ROM BIOS fixed-disk parameters PC

ROM BIOS fixed-disk parameters AT, PS/2

(drive 0)

42H ROM BIOS default video driver (if PC, AT, PS/2

EGA installed)

43H EGA, MCGA, VGA character table PC, AT, PS/2

44H ROM BIOS font (characters 00H—7FH) PCjr

46H ROM BIOS fixed-disk parameters AT, PS/2

(drive 1)

4AH ROM BIOS alarm handler AT, PS/2

5AH Cluster adapter PC, AT

5BH Used by cluster program PC, AT

60H—66H User interrupts PC, AT, PS/2

67H LIM EMS driver PC, AT, PS/2

68H—6FH Unassigned

70H IRQ8 CMOS real-time clock AT, PS/2

71H IRQ9 software diverted to IRQ2 AT, PS/2

72H IRQ10 reserved AT, PS/2

73H IRQ11 reserved AT, PS/2

74H IRQ12 reserved AT

IRQ12 mouse PS/2

75H IRQ13 numeric coprocessor AT, PS/2

76H IRQ14 fixed-disk controller AT, PS/2

77H IRQ15 reserved AT, PS/2

78H—7FH Unassigned

80H—F0H BASIC PC, AT, PS/2

F1H—FFH Not used PC, AT, PS/2

Figure 13-2. Interrupts with special significance on the IBM PC, PC/AT, and PS/2 and compatible computers. Note that the IBM ROM BIOS uses several interrupts in the range 00H—1FH, even though they were reserved by Intel for CPU faults. IRQ numbers refer to Intel 8259A PIC priority levels.