That assumes that you want to encode the program as a single disc encoding the repeating cycle. But surely you could use a series of program discs to perform successive lookups and offsets and reduce it down to several more manageable discs? e.g. you have one disc that encodes the cycle of offsets of the spring equinox by year, then use that to offset the rotation of the wheel that encodes the lunar cycle...