Talk:8259 PIC: Difference between revisions
No edit summary |
m (Question about the Disabling section) |
||
Line 33: | Line 33: | ||
I'm missing a table of what the general usage for each interrupt number is. E.g. 12 is PS2 Mouse. This could link to |
I'm missing a table of what the general usage for each interrupt number is. E.g. 12 is PS2 Mouse. This could link to |
||
http://wiki.osdev.org/index.php?title=Interrupts#Standard_ISA_IRQs |
http://wiki.osdev.org/index.php?title=Interrupts#Standard_ISA_IRQs |
||
== Disabling == |
|||
Is there a reason this is written in assembly and hard coded, rather than using the functions consistent with the rest of the article? |
|||
<source lang="asm"> |
|||
mov al, 0xff |
|||
out 0xa1, al // outb(PIC1_DATA, 0xFF); |
|||
out 0x21, al // outb(PIC2_DATA, 0xFF); |
|||
</source> |
Revision as of 01:49, 13 December 2020
Discussion Topics:
Masking
Shouldn't the masking function be in one function? Also, shouldn't we have a topic about all the registers of the PIC? Primis 19:53, 27 February 2011 (UTC)
No, having the masking done in two functions shows clearly what needs to be done. Also, Primis, please make sure any edits you make are actually correct. I have reverted your "fix" to the IRQ number checks. Thepowersgang 23:49, 27 February 2011 (UTC)
Well there are 8 IRC lines per PIC, but they start at zero, so the first PIC is 0 ... 7 and the second is 8 ... 15. However the function is not Greater than or Equal to (>=) but is just greater than (>) so the function is gonna be out of sync no? Primis 01:55, 1 March 2011 (UTC)
The operation is < in this case, 0 - 7 are less than 8, so they should they use the first controller. The current code is correct. Thepowersgang 04:16, 1 March 2011 (UTC)
History
I'm not sure, but, I remember that Norton says about 16 hardware irq's in PC. 418imateapot
- {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15} is a set of 16 numbers; yes. There are 16 hardware IRQs.
io_wait
The PIC_remap function makes use of an io_wait function -- any suggestions as to how to implement this function? read a port?Clearer 10:18, 16 December 2011 (UTC) Nevermind: http://wiki.osdev.org/Inline_Assembly/Examples
Don't - the IO delays are unnecessary in general (on 80486 and later) and especially unnecessary in that example code (as you're interleaving IO port accesses to different chips) --Brendan 21:16, 16 December 2011 (UTC)
Suggestion
Shouldn't the abstract theory surrounding a "Programmable IRQ/Interrupt Controller" and then the concrete example of the i8259 chips be separated? Would like to suggest not redirecting "Programmmable Interrupt Controller" to this page, and creating a separate article for it. Gravaera 07:50, 13 June 2012 (CDT)
Does any other hardware have a PIC that's generally called just PIC?
general usage of IRQ numbers
I'm missing a table of what the general usage for each interrupt number is. E.g. 12 is PS2 Mouse. This could link to http://wiki.osdev.org/index.php?title=Interrupts#Standard_ISA_IRQs
Disabling
Is there a reason this is written in assembly and hard coded, rather than using the functions consistent with the rest of the article?
mov al, 0xff
out 0xa1, al // outb(PIC1_DATA, 0xFF);
out 0x21, al // outb(PIC2_DATA, 0xFF);