- You can chain handlers by simply rewriting the interrupt vector. Something like this (for a sequence of two handlers):
To my intuition it seems it would be quicker, though slightly larger.handler1 ; ... lda #<handler2 sta $fffe lda #>handler2 sta $ffff lda #line2 sta $d012 rti handler2 ; ... lda #<handler1 sta $fffe lda #>handler1 sta $ffff lda #line1 sta $d012 rtiI've only skimmed through the article so maybe there's a reason the author considered this and opted not to. Running out of memory maybe?
- If you put both handlers in the same 256 byte page you can get away with only updating the low byte of the address.
- Nitpick: I think he still has the Kernal banked in, so he'll need to use the soft vector at $0314. But that is exactly how I've done chained raster splits otherwise. It's really the most straightforward approach.
- I'm ignorant of most C64 stuff being an Atari kid, but I did find this pretty impressive (it's a cheat) with seemingly 9 sprites at once. https://www.youtube.com/watch?v=Ws4twUyt-MY
- The demo has brilliant pacing. When it starts with the sprites moving in a big circle, initially I'm not impressed at all, because C64 has 8 sprites per line, and changing the sprites to be drawn when the screen is halfway drawn is pretty much the first trick you learn. Then the sprites move to the top of the screen, where they are all on the same line together, and my jaw drops.
- Plus, Linus did it in the border, where only sprites can be, so it can't be a trick with bitmap graphics or custom characters.
- That music too! Dang the SID sounds good.
- I have been waiting forty years to learn how to do this.