Perpetual calendar

Today I wrote a Perpetual Calendar program for my BBC Master 128.

The calendar calculates the dates of Easter, as well as indicating the date of Christmas and Halloween.  Obviously, calculating the date of Easter was much harder(!)  I have managed to get somewhere with calculating the full moon phase as well, but I didn't quite finish this bit.

Perpetual calendar running in the BeebEm emulator, showing the date of Easter for 2017.  By the way, the date of Easter 2018 is 1st of April - NO JOKE!
I am grateful for the following contributions.  The basic calendar function was first published in BBC Acorn User magazine in July 1987, written by Paul Skirrow, and was published in their 'Hints and Tips' section.  I have modified it so that the calendar displays interesting days in colour. It also picks up the current date from the CMOS RAM, so this program will only run on a BBC Master 128, or otherwise a BBC computer fitted with an internal clock and battery.  You can emulate this in BeebEm, but it might struggle to pick up the correct date without some configuration.

The awesome teletext font first appeared in BBC Acorn User magazine in November 1990 and was written by Martin Osborne.

The current functionality allows you to skip forwards or backwards in time in steps of months or years using the cursor keys, or you can go to a specific month by pressing f0 (f10 in the emulator).

In future versions I would like to be able to enter 'red letter' days - ie let the user enter appointments, either recurring appointments like birthdays, or one-shot reminders for the dentist etc.  As it stands the program is only a rebuild of the existing perpetual calendar which I wrote about here.

You can download the SSD single-sided disc image here.  This will run in the BeebEm emulator, but you will get much better experience running it on vintage hardware using the DataCentre add on.

A sample of the help file supplied on the disc.