On my bar-fed lathe, if I program an M30 at the end of program, I have to press cycle start every time, so instead, I program an M99 before the M30. If I get really daring, I'll point it to the line I want to restart at, like M99P1 to restart at N1. M99 is not always an end of sub/return to main code. Sometimes it's a branch (GOTO) code. Come to think of it, I could even use a GOTO command, but I'm used to M99