Emulating The Core, Part 3: Interrupt Processing (A Real-World Example)


In this post we will resume our study of the interrupt system.  Recall from our post Emulating The Core, Part 2: Interrupts and Timing that we studied the foundations of interrupt systems and showed how RealBoy manages to implement the interrupt system specific to the Game Boy.  However, we didn’t have a chance to actually process an interrupt because at such an early stage of emulation we didn’t have any interrupt request from any device.  Therefore we limited our study to showing how RealBoy checks for interrupt requests from all the possible sources of interruption.  We will now show a particular, real-world example of an interrupt being requested and subsequently processed.  (Be sure to take a look at our post Emulating The Core, Part 2: Interrupts and Timing in order to fully understand this one. For this activity we will also make use of GDDB, RealBoy’s internal debugger, so make sure you also take a look at A Small Exercise: Presenting GDDB).

Continue reading

Advertisements