Hi
I would need a clarification in how int 38h works in msx.
On a regular msx we know the only source of interrupts in the vdp
We also know that the bios first check if the source of int is the vdp.
Let's imagine this scenario.:
There is a new device, say a AVDP connected to msx that can issue also a 38h int. The interrupts are issued most in different time slots.
But what happens if both arrive at the same time?
Ideally they could be handled both in any sequence but I suspect that there is a chance that the built in vdp could be lost because of the stupid autoreset feature of status reg 0
Do you know a sw way to overcome this problem using bios hooks.?
The scenario I m afraid of is described below:
1) an external device issue interrupt
2) z80 jump to 38h
3) z80 perform in on port 99 to see if vdp is the source
4) vdp was not the source but while z80 is doing step (3) the vdp signal int. Because of the stupid bug the vblank bit readed in by z80 is cleared even if vdp raised the interrupt
5) the original vdp interrupt is missed
6) the external device interrupt is handled by external device sw logic
As there are already examples (like mounsound) that issue ints how a similar scenario is handled?
And what about v9990 cards that can also issue interrupts? Is there a chance that when v9990 raise int the original vdp interrupt could be missed?


.