Laurens Holst wrote:
> > Instead of switching hooks, I fixed the bug with a simple lookup
> > in the vdp status register, to check if the interrupt was indeed a VIRQ:
> >
> > IN A,(99h)
> > AND A
> > RET P
> 
> Does that work??? 

        Of course it works! Try by yourself!

> I think the VDP statusregister is being reset upon readout
> in the MSX interrupt routine itself...

        Not really. The bios handler read the vdp status register
AFTER calling 0FD9Ah. If you read the status register before the bios 
does it, the handler is aborted (which means 0FD9Fh never gets called
and the other processing is not done also, such as keyboard polling).
I believe this is the fastest possible way to grab the irq handler
inside the basic environment.

> Anyways, relocating the hook to #FD9F is a much, much nicer solution I
> think.

        The only real advantage of this method would be the stop-drive,
but that doesn't matter because I call 0FD9Fh 120 times at the
startup of my program :)

----------------------------------------------------------------
Ricardo Bittencourt               http://www.lsi.usp.br/~ricardo
[EMAIL PROTECTED]         "Vitrum edere possum, mihi non nocet"
------ Uniao contra o forward - crie suas proprias piadas ------

****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED]
and put "unsubscribe msx [EMAIL PROTECTED]" (without the quotes) in
the body (not the subject) of the message.
Problems? contact [EMAIL PROTECTED]
More information on MSX can be found in the following places:
 The MSX faq: http://www.faq.msxnet.org/
 The MSX newsgroup: comp.sys.msx
 The MSX IRC channel: #MSX on Undernet
****

Reply via email to