la diferencia radica en la priorización
sucede que cuando tenemos una variable llamada por ejemplo "codigo"
y a la vez tenemos abierta una tabla en el área de trabajo actual,
tabla que a la vez tiene un campo llamado "codigo"
nos encontramos así en una coincidencia entre el nombre de la variable y el nombre del campo de la tabla
entonces si haces lo siguiente en la ventana de comandos:
wait codigo window nowait
lo que te va a mostrar es el contenido del campo "codigo" y no el contenido de la variable "codigo"
es decir, el nombre de un campo tiene prioridad sobre una variable de memoria, por lo tanto se va a mostrar primero, obviando a la variable
pero si de pronto cierras la tabla y vuelves a escribir el mismo comando:
wait codigo window nowait
dado que ya no existe ningún campo de una tabla para mostrar
lo que te mostrará entonces es el contenido de la variable
pero muchas veces tenemos variables que coinciden con el nombre de algún campo o campos de alguna tabla o tablas
siendo así lo que se hace es anteponer la m. a la variable, para indicarle a fox que lo necesitas es el valor de la variable precisamente
vale decir:
wait m.nombre window nowait
como verás, anteponer m. a una variable nos servirá siempre para priorizar a la variable sobre cualquier campo con el mismo nombre...