I am way late to the game on this one. George Philips has written and released a Windows executable file call TRLD which will convert between cas, hex, bas, and cmd.
According to his website:
trld reads one or more TRS-80 programs in .cmd, .cas, .hex or .bas format and saves them as a single .rom, .cmd, .cas or .hex file. As input it supports 250, 500 and 1500 baud .cas cassette image files as well as tokenized and ASCII .bas BASIC program files. Output can be in .cmd, .cas, .hex or .wav (audio file) format.
A precompiled binary for Windows is included along with the source code which can easily be compiled on Mac and Linux systesm. These program loading routines are the same ones used in my TRS-80 Model I/III/4 emulator.
trld is a command-line tool. It takes a list of files. The last one is the output file, the rest are loaded in sequence and combined together to form the output. The format of the input files is determined automatically. The output format is chosen depending on the file suffix. For example, to convert a cassette file to a .cmd (disk executable format) you would type:
trld original.cas original.cmd
With multiple input files the program start address is taken from the last file. For “.cas” output the name of the SYSTEM file is based on the first 6 letters of the output file name. With
trld file.cmd ..\converted\out.cas
The “..\converted\out.cas” file will be called “OUT” and that’s the name you must pass to the SYSTEM command. If you’re using Play CAS, it tells you the tape file’s name.