Have you explored the multiple row reset trick? I expect it would work rather well for this use case. Essentially all you would need to do is change a single value in a single row when a new program starts.