Hardware Firmware Interface Design by Gary Stringham