The segment selector that you put in the interrupt table is a byte offset, and *not* an index into the table. Now interrupts work! But only one. And I think I know how to fix this...