flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > [SOLVED] IRQ1 not firing? |
Author |
|
Aulendil 16 Nov 2014, 14:39
Hi,
I am trying to incorporate the IRQ1 handler used in this thread http://board.flatassembler.net/topic.php?t=6206&postdays=0&postorder=asc&start=0 but for some reason the keyboard interrupt never gets fired, and I have proved this by trying to halt the cpu under the keyboard label. IRQ0 is working fine and this updates the screen. I am running it in bochs, do I need to change some additional bochs config for the keyboard? Any help would be much appreciated. See post below for solution.. Last edited by Aulendil on 17 Nov 2014, 07:07; edited 1 time in total |
|||
16 Nov 2014, 14:39 |
|
revolution 16 Nov 2014, 14:43
Show your code.
|
|||
16 Nov 2014, 14:43 |
|
cod3b453 16 Nov 2014, 23:11
There are a few possibilities here. Is there definitely an IDT entry for IRQ 1? Has it been remapped, if so where? Have you explicitly enabled IRQ 1? Which other IRQs are enabled and are they being serviced? (failure to correctly acknowledge can prevent other IRQs being triggered)
|
|||
16 Nov 2014, 23:11 |
|
Aulendil 17 Nov 2014, 07:06
Mystery solved! Originallly I had written a keyboard handler which constantly polled the keyboard input port, but before I started to poll I cleared the keyboard buffer using the below since a user had to enter a command to reach the PM/LM section after booting to RM:
Code: clear_buffer: in al, 64h test al, 1 jz main_loop in al, 60h jmp clear_buffer I have added this just before my main LM loop after initializing my PIC / custom interrupts and now IRQ1 is fired and can read from the keyboard buffer. It turns out after some research that if you don't clear the keyboard buffer the keyboard won't raise another IRQ. |
|||
17 Nov 2014, 07:06 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.