My code is not so far from Hippy's example. I am displaying a character series and numbers on a single 7 segment display. The idea is to have minimal hardware with maximum software functionality. The characters are flashed in turn to give the message string. I'm using an AXE049 and monitoring temperature. It mostly displays current temperature, but also shows trends and stores high, low, and 'mode' temperatures. To protect it from the environment it needs to be sealed in a transparent container e.g. a high tech jam jar. However, then you can't press the buttons, which I had used to give access to displaying the stored max and min values, without opening it up. I recently had the idea of using the LDR already present on the board, to remotely control it with a torch beam flash. So, it could be prompted to display stored limits without opening it up. The flash triggered jumping out of its current display mode into a mode displaying stored data before returning to current display mode. So, it was not surprising or unreasonable to have reached a GoSub limiting figure like 8. I had already ensured it could not be endlessly re-triggered in a recursive manner as I knew that would cause problems!
I had not heard dire warnings of what would happen if you hit the limit and thought it worth sharing with the forum.
The loops were to reuse code, it is filling the program space as it is. The final straw was in a GoSub to make it easy to comment out for testing, when the logic was removed from that non-important GoSub it works fine.
Hippy talked of a sixth gear and that is a good analogy, but it is easy to know which gear you are in before you slip one up or down. Not so easy in code or on a bike with Dérailleur gears and a click up and down shift. HertzHog