My personal reading on that at face value is the processor still acknowledges the interrupt ASAP, and reads the vector number or autovectors, but that it stores this information internally, and checks the interrupt mask before each instruction to determine whether it should start processing the exception. I'd be surprised if the M68000 left the external chipset hanging until it got around to actually executing the interrupt, but it could be done this way. I can't find anything in the docs which convinces me one way or the other.
If you read further:
if the priority of the pending interrupt is greater than the current processor priority, the exception processing sequence is started: A copy of the status register is saved; the privilege mode is set to supervisor mode; tracing is suppressed; and the processor priority level is set to the level of interrupt being acknowledged. The processor fetches the vector number from the interrupting device by executing an interrupt acknowledge cycle which displays the level number of the interrupt being acknowledged on the address bus. If external logic requests an automatic vector, the processor internally generates a vector number corresponding to the interrupt level number...
It is clearly stated that acknowledge cycle only occur when the interrupt is not masked, and this seems logical to me, it is how most processors are working...
The 68000 simply checks IPL1-IPL2 lines (IPL0 is not connected in the genesis) after each completed instruction and if the level is !=0 and greater than his interrupt mask level, it processes the interrupt.
VDP requests automatic vectoring, that means that the VDP set /VPA and wait for acknowledge trough /VMA from the 68000. Depending on the type of interrupt (HINT or VINT), the VDP seems to act differently. What is sure is that HINT (Level 4) remains pending as long as it is not acknowledged and enabled through VDP register, some games (Lemmings, and maybe Wiz 'n Liz for example) won't work properly without this being emulated...
I've got an Oscilloscope at home, so I can take those measurements for you. It'll help me to solve my query as well. I'll do some tests this evening. Still, I'm going to need to study those tech notes and the users manual more carefully, because something funny is clearly going on for a level 4 interrupt to cause a level 6 interrupt to be discarded.
thank you
Well, my initial idea was that interrupt processing takes some time. So, if the VINT occurence period is limited in time, it can be missed.
Another thing is described in the 2nd picture I linked above: as you can see, if the VINT occurs at the same time than the cpu starts previous HINT processing, the acknowledge generated by 68000 for HINT will be mistaken by the VDP as VINT acknowledge. Logically, the VDP reset the interrupt level on IPL1-IPL2 (those lines seem to be inverted in the docs) and INT6 will never be detected by the cpu, which will even process HINT a second time (because INT4 was still pending)