Though your solution of loading >8000 at >83D6 at every interrupt certainly does the trick, slightly faster than loading with something likeMOV @H8000 @>83D6 (?)
would be to set >83D6 to >FFFF withSETO @>83D6
Even though faster, I suppose it is doubtful it would really make a difference in game-play, but you never know.
Yes, nice suggestion!
After more than 30 years I didn't recall
that the counter is incremented BY TWO, not
by one. (To be honest, I didn't even recall
if the counter was incremented or decremented
and so, I felt safe with >8000)
As a matter of fact, I've checked the system
ISR in ROM and (once decided that the current
interrupt is from VDP) it will land at:
0A8A LWPI >83C0 ; Interrupt workspace 0A8E INCT 11 ; Increment BY TWO counter 0A90 JNE >0AA8 ; jump if counter is not 0 0A92 .... ; blank the screen if ==0 .... 0AA8 LWPI >83E0 ; GPL workspace .... ; increment tick at @>8379 ; call user ISR, if any
so it's definitely more efficient (and without
potential side-effects) performing a:
than a clumsy:
The forced >FFFF will always be >0001 at the next
vertical screen blank interrupt, thus disabling
the system screen saver. (Moreover, the game has
ITS own screen saver for user inactivity)
Thanks a lot Lee...
- Lee Stewart likes this