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?