The following are some nice tools for writing Z80 and Z180 assembler, C and Pascal. This list is just the tools that I happen to use, and may not be fit for your particular purpose.
Cross Development
Cross development means hosting your development tools on a different system than the target. For example, using a PC to write and compile/assemble your program, and then transferring the executable to the target (which in this case is the Z80/Z180 system). I use the cross development tools on linux, but all of them should be good to go on Windows and MacOS too.
Thanks to the authors of the software – and for making the tools available at no cost!
sdcc – Small Device C Compiler
This is a very complete C programming toolkit for embedded systems. Highly configurable, and also includes an assembler which can produce object code for both Z80 and Z180 (and others).
This is also a complete set of development tools for writing C programs for the Z80 and Z180. It includes a nice assembler too, the z80asm. Note that the download contains a Dockerfile, so you can easily build and run your own docker image with this tool chain.
zmac – Z80 Macro Cross Assembler
This is a great assembler too, very portable and easy to build from the source in linux (I am using Ubuntu 20.04). It has support for the extra instructions of the Z180, and the undocumented instructions of Z80. If you want something easy and lightweight to get started, zmac might be a good choice.
I love the website – it is really retro, so a good match for the Z80. But don’t be fooled, the tools are very much up to date, and I believe the assembler in sdcc may actually be the ASxxxx assembler, as far as I can tell.
Native development in CP/M
You may want to try the real retro-experience, and write, assemble and debug your programs on the target system. Luckily, you can find many of the old development tools for CP/M on the Internet, if you google search a little.
This Pascal development system is really a true gem. Invented by Anders Hejlsberg, it was one of the must succesful development tools (maybe even the first IDE), not only for CP/M but also for years to come for MS-DOS and Windows. Later, the tools became known as Delphi which is still in use today.
Turbo Pascal is my personal favorite development tool.
If you prefer C programming, this is a very nice compiler for CP/M. And what is even better, the compiler is now actively maintained by Tony Nicholson. This is a great effort! Take a look at his repository on https://github.com/agn453/HI-TECH-Z80-C where you can find and download the latest releases.
This is an excellent, current and actively maintained assembler. This is my personal favorite.
From README: “ZSM 4.6 is a macro-assembler for the Z80, Z180 and Z280 microprocessors. It uses standard Zilog/Mostek mnemonics, supports conditional assembly and produces a REL file suitable for linking with Microsoft’s L80 or Digital Research’s LINK.”
Microsoft Macro Assembler and Linker
The Microsoft assembler and tools handles both Z80 and 8080 assembler code.
I have written a short guide on getting the famous “Hello World” program running using Microsoft assembler.