IM1 mode (org at address 0)
zcc +x1 -lm adv_a.c
80 columns mode (still IM1)
zcc +x1 -pragma-define:ansicolumns=80 vtstone.c
IM2 mode (org address = 32768 or more)
zcc +x1 -subtype=im2 -zorg=<address> -lm adv_a.c
The compiler will produce a binary file. All you need to do is put that .bin on a disk image. Set the 'boot' flag on the file and the “load” and “start” address if necessary.
In example, with XBrowser88, you'd create a new blank disk image (Tools → New), add in your bin file (Home → Add), and mark it as bootable by right-clicking the filename, clicking Properties, and checking the Boot box. You only need to do that the first time it is added to the disk image - if you update the file, that Boot flag will be preserved.