While attending the Syntax demo scene party recently, I decided to look at an effect I had not yet tried but was keen to better understand. I decided it would be FLD – Flexible Line Distance. This effect allows you to move blocks of data vertically on the screen with little processing required. Because minimal processing is needed to move huge lumps of data, it’s great for sliding bitmaps images / logos up and down the screen without having to copy any of the data each frame.
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.