Do you need the M3 and M5? Most machines start, stop, reverse and stop the spindle within the G84 logic.
I'm not sure about the G94 and G95 either. If needed, you might try putting the G95 on a line by itself after the G80. I've never used those codes except on a lathe for changing from synchronous feed to asynchronous.
Is M29 for gear shift override?
First you get good, then you get fast. Then grouchiness sets in.
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)