That does sound cool! I wished for that myself a while back, but I’m way way far from it in my assembler skills. I’ll be running a MIDIMon for the MTC/Clock display most of the time and have wished I could switch it for use as a wall or desk clock too.
MIOS_Delay stalls the whole main process, this means especially that no MIDI data can be received so long this delay function is running.
The Timer() function is better for such tasks. It’s clocked with an hardware timer, which delivers very adequate results (nanosecond accurate) - regardless which processes are running in background