IRQ2 wird fehlen, weil das ab dem AT diie "Kaskade" ist und offensichtlich mindestens die Interrupt-Behandlung des Milan-ISA-Busses IBM-AT kompatibel gestaltet wurde. Das ursprüngliche 8-Bit ISA Design im PC/XT hatte einen IRQ2, der frei für Erweiterungskarten verfügbar war. Beim AT wurde ein weiterer Interruptcontroller für die hohen IRQs 8-15 hinzugefügt, weil eben 8 IRQs auf Dauer zu wenig waren. Diese Interrupt-Controller im PC funktionieren wie ein IRQ-Sammler, das heißt ein Interrupt wird als Nummer im Controller gespeichert, und es wird ein entsprechnedes Interrupt-Signal an den Prozessor ausgegeben, Dafür hat der X86-Prozessor aber nur einen Eingang, ein zweiter Interruptcontroller geht also eigentlich nicht. Also hat man einfach den zweiten Interrupt-Controller auf IRQ2 des ersten Interruptcontrollers kaskadiert, und das Signal vom IRQ2 auf dem ISA-Slot hat man auf den 2. Interrupt-Eingang des zweiten Controllers umgeleitet. Also gillt bei 8-Bit-ISA-Karten, dass ein dort eingestellter IRQ2 bei einem AT (16 Bit ISA) auf IRQ 9 landet. Wenn also der Midiman in einem AT einen IRQ2 meldet, landet das auf IRQ2 des zweiten Interruptcontrollers. Der merkt sich die 2 und schickt seinerseits einen Interrupt raus, der auf IRQ2 des ersten Controllers landet. Der erste Controller merkt sich auch die 2 und schickt einen Interrupt an die CPU. Die liest nun per Interrupt-Routine den ersten Interrupt-Controller aus, findet die 2, was bedeutet, dass der zweite Interruptcontroller ausgelesen werden muss. Dort findet sie auch die 2 und addiert 7 dazu, wodurch dann feststeht, dass eine Erweiterung mit IRQ9 den Unterrupt ausgelöst hat... Dann erfolgt über eine Sprungtabelle an Index 9 der Einsprung in den Treiber oder was auch immer dieser Karte. Eigentlich ganz primitiv.