Yup, not a 1. It's all inline. My stuff seems to have evolved into watching for a condition, then acting on it, setting a flag if I want something done, then going back to watching. Looking at it a new, setting the flag and then checking it & acting on it is basically a function call.
My big program, 7 tabs compiled to 13 Kbytes, was basically:
Is time running and did a 1/4 second pass (1:00, 3:00, 10:00 countdown)? update digits, set a flag to update the display.
Did a serial message come in? Flash the corresponding lights, stop time if it was running, sound the buzzer.
Did an RF command come in? if time is running, ignore it unless it's the Stop command.
If time is not running, do the command.
Set a flag to update the display if needed. (reset time, reset scores)
is the update display flag set? if yes, write out the new data to the MAX7221.
Since most of the time nothing is going on and the conditions are all No, the code is really responsive when something does happen.