Hi,
> But, unfortunately, I guess I'm doomed now...
Well, you could also change your set up of your ISRs (Interrupt
Service Routine) with your line interrupts (r#19). First of all, disable
the V_BLANK interrupt, so you are left with only the line interrupts
from r#19. Secondly, make s#2 (status register) standard (set r#15 to
2), so you can check very fast if the VDP commands are finished. Make
sure, though, that you still read out s#0 to clear the IRQ signal.
Preferably, at the *end* of each interrupt, so you have a quick response
time to the IRQ. Especially if you also set the address to jump to for
the ISR at the next line interrupt. So you ISR starts with
ld hl,(ISR_vector)
jp (hl)
and ends with
setreg 15,0
inreg
setreg 15,2
setreg 19,line_x
ld hl,ISR_x
ld (ISR_vector),hl
reti
So, how does this help you? You can simulate the V_BLANK interrupt by
setting r#19 to 212 after the line interrupt at line 160. The nice thing
is that you can also change r#19 also to 230 or even to 240 and the
interrupt is still granted! This gives you more time to complete your
VDP commands.
Or you can forget about the second line interrupt alltogether. Execute
the large copies from line 160 onwards and change r#18 when you are sure
(some of) the large copies are finished *and* that you are somewhere in
the black border (the VDP is displaying lines 212 and beyond). This
might requiring some timing, but it should also work.
Bye, /\/\ark
****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****