Interrupt Procedure
-------------------
  The IME (interrupt master enable) flag is reset by DI and
 prohibits all interrupts. It is set by EI and acknowledges
 the interrupt setting by the IE register.
 1. When an interrupt is generated, the IF flag will be set.
 2. If the IME flag is set & the corresponding IE flag is
    set, the following 3 steps are performed.
 3. Reset the IME flag and prevent all interrupts.
 4. The PC (program counter) is pushed onto the stack.
 5. Jump to the starting address of the interrupt.
  Resetting of the IF register, which was the cause of the
 interrupt, is done by hardware.
  During the interrupt, pushing of registers to be used
 should be performed by the interrupt routine.
  Once the interrupt service is in progress, all the
 interrupts will be prohibited. However, if the IME flag
 and the IE flag are controlled, a number of interrupt
 services can be made possible by nesting.
  Return from an interrupt routine can be performed by
 either RETI or RET instruction.
  The RETI instruction enables interrupts after doing a
 return operation.
  If a RET is used as the final instruction in an interrupt
 routine, interrupts will remain disabled unless a EI was
 used in the interrupt routine or is used at a later time.
  The interrupt will be acknowledged during opcode fetch
 period of each instruction.