Tom,
There is a good tutorial, but it's hiding on my desk. I taught an Intro course in FreeMASTER at our Technology Forum last month (June, so 6 weeks ago now). I need to get it posted. I'll do that RSN. I'll contact you directly to get it to you ASAP. It was build on Kinetis. There are examples in the FreeMASTER installation. IN a standard install, look here for S12
C:\Program Files\Freescale\FreeMASTER Serial Communication V1.5\examples\HC12
Alternatives... depends on what you want to do, but if you want to see data real time, not for free, not from Freescale, not that I know of.
You do not need to run FreeMASTER and CodeWarrior in parallel. In fact, you can't. You build your code using CodeWarrior (or another tool). You then run it, and connect over a communication channel using FM. Typically you only have one wire down to your board. You can EITHER debug using your development tool OR talk to it with FM. Not both at the same time.
Do you need to include FM commands in your C code? Depends. For the most basic things that FM can do, no. But for anything other than the basic things, yes. For example, FM on th etarget can store data in a buffer and flush that data out to the desktop on demand. You can't do that without modifying your app on the target, and having a communication driver on the target. In which case you need to have a target-side driver that is built into your code.
BUT... FM also has a mode that communicates via OSBDM - no target driver required, and simply reads global/static variables real time. This is an almost zero-interference real time debug monitor, and no modification is required to your code. It finds the variables by reading the dwarf data created by the development tool debugger. You point to this data in the FM setup, by pointing to the appropriate file. This will vary depending on the target. I actually haven't done this on an S12, so off the top of my head, I don't know where this is. But... shouldn't be hard to figure out.