Hello everyone,
From what I understand from the BIOS, the ISR process @38h is the following :
- push all registers - call H.KEYI - read S#0 - if S#0 is positive (bit 7=0) then exit ISR (there's a JP P,xxxx condition branch) - call H.TIMI - do the rest of ISR stuff - ...
Which means that :
- H.KEYI is called before any action is taken
- H.TIMI is called when the VBLANK has been confirmed (S#0 bit 7=1)
BUT ... There's a test of S#0 bit 5 just after H.TIMI to check for a sprite collision. Which would mean that the sprite collision is only tested on VBLANK ? It does not make sense because I thought you could do a screensplit on MSX1 using the interruption generated by a sprite collision.
Questions:
- Is the S#0 bit 7 ("F") only set by VBLANK ?
- Could it be set by another interrupt generated by the VDP (on V9938) ?
I'm trying to make a screensplit work on HBLANK, so I need to know which hook is best suited to read S#1. I read on some books that H.TIMI was the hook to use, but it does not make sense, since it is logically only called at VBLANK ...