Building an OS - 10 - Hardware interrupts, PIC
Channel: nanobyte
Date: 2022-07-13

How to implementing a driver for the 8259 PIC, and handle hardware interrupts.

Links:
- Patreon: https://www.patreon.com/nanobyte
- Discord channel: https://discord.gg/RgHc5XrCEw
- Source code: https://github.com/nanobyte-dev/nanobyte_os/tree/videos/part10

Documentation:
- Intel manuals: https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
- Interrupts: https://wiki.osdev.org/Interrupts
- PIC: https://wiki.osdev.org/8259_PIC
- PIC datasheet: http://pdos.csail.mit.edu/6.828/2005/readings/hardware/8259A.pdf

Chapters:
0:00 Intro
0:18 What is the PIC
3:29 Deciphering the datasheet
6:41 Initializing the PIC
8:28 Edge and level triggered modes
14:33 ICW1 implementation
16:23 ICW2
17:35 ICW3
18:57 ICW4
19:46 Interrupt prioritization
20:59 ICW4 implementation
21:44 Masking and unmasking
24:28 End of interrupt command
26:33 Reading PIC registers
28:20 Putting it all together
34:15 Conclusion