keyboard irq only firing once (sending EOI)

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
erwinm
Posts: 3
Joined: Sun Mar 06, 2016 1:08 pm

keyboard irq only firing once (sending EOI)

Post by erwinm »

Hey guys,

I am a beginner, setting up a hobby OS. I am running into a weird problem to which I can't seem to find the solution. My keyboard interrupt only fires once.

This is what does work:
- timer interrupts are firing, before and after the single kbd irq
- system calls are working as well

To me that is saying I got my IDT setup correctly. I am sending 'end of interrupt' after the keyboard handler returns..

What am I missing here?

Thanks a lot,
Erwin
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: keyboard irq only firing once (sending EOI)

Post by gerryg400 »

Are you reading the key from within the handler ?
If a trainstation is where trains stop, what is a workstation ?
erwinm
Posts: 3
Joined: Sun Mar 06, 2016 1:08 pm

Re: keyboard irq only firing once (sending EOI)

Post by erwinm »

Nope,

I am only printing a string to see if the handler is firing. And it is doing so only once.
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: keyboard irq only firing once (sending EOI)

Post by gerryg400 »

That's most likely your problem. Until you read the key the controller doesn't know that you've serviced the interrupt. Just do an inportb(0x60) from within your ISR and see what happens.
If a trainstation is where trains stop, what is a workstation ?
erwinm
Posts: 3
Joined: Sun Mar 06, 2016 1:08 pm

Re: keyboard irq only firing once (sending EOI)

Post by erwinm »

That was it! Thx a lot!
Post Reply