No, una cosa es ENCONTRARLO para frenar y otra muy diferente escribir el 0, eso hace tu codigo y ninguna funcion para escribir una cadena en pantalla lo hace

¿Para que le sacaste el 13 a msg?

¿Para que no pasara esto?

¿Crees que si llamo a printf con "Hola\r" como parametro pasa eso acaso? Necesitaria llamar a putc con el 0 para que lo escribiera y pasara lo mismo que con tu macro print.
PD. Si se puede.
char nnts[] = { 'N', 'E', 'W', 'B', 'I', 'E', 0xCC, 0xCC };