I'd build the program using subroutines for each of the pieces of program that you'd like to run separately. The top of the program would be a list of subroutine calls in the order you want them executed. Each subroutine should contain all the usual prep stuff, like canceling tool offsets, canceling modal drill routines, starting the spindle etc. If you then use run from here at the appropriate subroutine it'll skip all earlier ones. This makes building a complex program easier too, build it in pieces and then load them all into one file.