This is a standalone mono wrapper for the assembler within ADI SigmaStudio. Only tested with SigmaStudio 4.5 and the ADAU1401/1701 core. Package dependencies (on Ubuntu 18.04): - gcc - make - pkg-config - libmono-2.0-dev - libmono-corlib4.5-cli - python3 To run the assembler, you need to first get a copy of SigmaStudio and copy the files SigmaCompiler.dll and Sigma100Compiler.dll into this repository's folder. Since mono doesn't seem to run obfuscated code very well, you will likely need to deobfuscate them to get it to run without crashing. To do that, install de4dot (https://github.com/0xd4d/de4dot) on a Windows machine and run the following in a terminal: > de4dot.exe --dont-rename SigmaCompiler.dll Sigma100Compiler.dll Then copy and rename the resulting *-cleaned.dll files into *.dll files in this repository's folder. To run the assembler, supply a file containing assembly and optionally a netlist. The netlist is required if you are assembling code generated by SigmaStudio. The files can be found in these locations in an existing project: - <project dir>\IC <n>_<project name>\as_code.enc (assembly) - <project dir>\IC <n>_<project name>\net_list.cir2 (netlist) However, the assembly file is encoded and needs to be decoded back into plain text before it can be used. This is the purpose of decode.py: > ./decode.py as_code.enc > as_code.s The resulting assembly file can then be opened and inspected, or assembled: > make > ./asm as_code.s net_list.cir2 This generates all of the assembler outputs into the output/ folder. Of course, having an assembler is not that useful if you don't know how to write the target assembly. Using decode.py, you can cross-reference a design in SigmaStudio with its corresponding assembly to figure out the basics. See the SYNTAX file.