 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
 N..... SET_XY_ROTATION(0.0000)
 N..... SET_FEED_REFERENCE(CANON_XYZ)
 N..... COMMENT("Endless program")
 N..... COMMENT("In a standalone interpreter, this should probably exit")
 N..... COMMENT("at the main program M99. In task, the main program M99")
 N..... COMMENT("should cause an endless loop, terminated by a counter.")
 N..... COMMENT("*****************************************************")
 N..... COMMENT("Don't *actually* run this program infinitely!")
 N..... COMMENT("loops in case of failure")
 N..... COMMENT("Counter; assume it starts at 0")
 N..... COMMENT("*****************************************************")
 Loop number 1.000000
 N..... COMMENT("Junk move...")
 N..... SET_FEED_RATE(40.0000)
 N..... STRAIGHT_FEED(1.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
 N..... COMMENT("Subprogram junk move...")
 N..... STRAIGHT_FEED(1.0000, -4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
 N..... COMMENT("Another junk move...")
 N..... STRAIGHT_FEED(5.0000, -4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
 N..... COMMENT("Main program endless loop")
 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
 N..... SET_XY_ROTATION(0.0000)
 N..... SET_FEED_MODE(0, 0)
 N..... SET_FEED_RATE(0.0000)
 N..... STOP_SPINDLE_TURNING(0)
 N..... SET_SPINDLE_MODE(0 0.0000)
 N..... PROGRAM_END()
