From the blog "SpiceWare's Blog"

Next I started to work out how to update AUDV0, for the 3 voice music, once per scanline while the ARM code was running. batari suggested just running short routines in ARM that would take less than a scanline each. I thought that would be overly complicated, so thought I might be able to pre-fetch the AUDV0 values, stash them in ZP (Zero Page) RAM, then have the 6507 run the following routine in RAM while the ARM code ran: MAC ZP_ROUTINE SUBROUTINE ; X holds how many