PIC ICW3 explanation
Posted: Wed Jul 09, 2025 1:36 pm
I'm having trouble understanding this line on the wiki for the 8259 pic initialisation:
It say's that to tell the master pic that the slave is at irq2, you for some reason have to send 4 to it instead. The manual vaguely mentions a "PIC number" to send as icw3 which I assumed meant the irq number, i.e. 2 not 4. I've looked in the technical reference for the IBM AT and it doesn't mention anything that it's doing that could cause this and at this point I just have no idea what it could beoutb(PIC1_DATA, 4); // ICW3: tell Master PIC that there is a slave PIC at IRQ2 (0000 0100)