+
+ ; Test DI/EI delay
+ di
+ ld hl, .difail
+ ld c, $0F ; First, wait until an interrupt happens...
+.wait: ld a, [c]
+ cp 0
+ jr z, .wait
+ ei ; Now make sure that an IRQ didn't happen on EI/DI
+ di
+ ld a, [c]
+ cp 0
+ jr z, .fail
+ ei ; Make sure that an IRQ does happen on EI/NOP/DI
+ nop
+ di
+ ld a, [c]
+ cp 0
+ jr nz, .fail
+ ei