x86 Emulation
- Bochs - An x86 platform
and CPU emulator.
- QEMU -
A new, much faster but less mature PC emulator.
Use in this class at your own risk.
x86 Assembly Language
PC Hardware Programming
- General PC architecture information
- BIOS and PC bootstrap
- VGA display cards - kern/console.c
- Keyboard and Mouse - kern/console.c
- 8253/8254 Programmable Interval Timer (PIT)
- inc/timerreg.h
- 8259/8259A Programmable Interrupt Controller (PIC)
- kern/picirq.*
- Real-Time Clock (RTC)
- kern/kclock.*
- 16550 UART Serial Port - kern/console.c
- IEEE 1284 Parallel Port - kern/console.c
- IDE hard drive controller - fs/ide.c
- Sound cards
(not supported in class kernel,
but you're welcome to do it as a challenge problem!)