The Color Disk EDTASM assembler has the option of writing a symbol table to the end of binaries it produces. You enable the feature by including the /WS switch during assembly to disk. The symbol table can be used by the stand alone ZBUG debugger.
Invoking the switch will add extra data after the LOADM post-amble. Here is how that data is formatted. First is the header. This is always 5 bytes in length.
|1 Byte||01||Seems to be constant|
|2 Bytes||0019||The total length of the symbols and values, plus one|
|2 Bytes||0000||Seems to be constant|
Next you will find a table entry for each symbol and value pair.
|1 Byte||84||Length of the symbol text, with the high bit set|
|n Bytes||DONE||Symbol name, ASCII encoded|
|2 Bytes||0004||Symbol value|
And finally is the footer. a single constant byte:
|1 Byte||0||Seems to be constant|
It should be noted the Assembler and ZBUG pair can only handle symbols with a maximum of six characters.