As you probably know, is possible to create user defined G codes with custom macro B. That is, you can cause the machine to execute a particular custom macro whenever a G code of your choosing is executed. As with all parameters, the specific parameter numbers will vary from one machine to another. Look in the custom macro section of your Fanuc manual to find the related parameters.
Programs O9010 through O9019 are involved. If the first available parameter is set to a value of 80, for example, the machine will execute program O9010 whenever G80 is read.
The simple trick to making a user defined G code modal is specifying a negative value as the parameter value that specifies the G code number. If you set the second available user defined G code to a value of -12, the machine will execute program O9011 whenever G12 is read. It will continue to execute program O9011 in each CNC command until it reads a G67 to cancel the modal calling command.