BaconWraith wrote:
However, now when I press a key, the interrupt does not fire. However, IRQ0 still fires and works correctly, so my last guess is it's how I'm initializing the PS/2 controller, but it worked perfectly before paging was enabled.
You used versioning, right? So go back in versions to find the last one that works correctly and then you can easily compare the last that worked to the _first_ that didn't, that should (hopefully) just be a couple of lines of code.
BaconWraith wrote:
I do actually get one key event (for which no key has been pressed/released), but I send EOIs correctly so this isn't stopping further interrupts being sent.
What exactly is a key event? Is that one IRQ1? What do you mean "no key has been pressed"?
You have checked that IRQ1 is unmasked? You have checked that there's nothing in the buffer on the PS/2 controller? Did you check the suggested PS/2 controller init sequence:
http://wiki.osdev.org/%228042%22_PS/2_Controller#Initialising_the_PS.2F2_Controller