Develop a device driver model which handles both IO and Interrupts.
For the adventurous try your hand at getting PCI working