Having done some work with interrupts now, I’ve realised just how powerful they can be for demo coding and how time sensitive some effects / routines are. I’ve looked at a few different ways to set them up and thought I’d recap.
Interrupts occur every 60th of a second. On the C64, memory locations $0314 and $0315 (788 & 789 in decimal) contain a vector to the execution address of the normal interrupt service routine. The default values here are $31 (49) and $ea (234), which form $ea31.