Input Format
The emulator itself takes in a raw ternary file format, but an assembler is also prodivided that makes writing programs of a non-trivial complexity doable.
Raw Ternary
As having a ternary file isn't easily accomplished, I decided it would be both simplest to develop and easier to work with a raw text file as the basis of the program / memory input. The format is pretty simple, each line should be 12 trits (T, 0, 1), and is from MSB to LSB. Empty lines and comments (beginning with ';') are ignored, as are spaces. Each instruction lines functions as a seperate address, beginning at 0. The program counter initially starts at 0, so this is where your program begins. Due to this memory should be placed at the back of the program, potentially with unused instructions adding a buffer space so the memory addresses don't change as instructions are added or removed. Alternatively, you could provide an initial JMP routine and place the real program start later in the memory space.
Some examples are provided in the samples folder, with the 'tr' file extension.
Assembly
The assembler is pretty typical, and uses the instruction codes listed in the architecture page. Comments are indicated with the ';' character. Support is only provided for decimal numbers, and programs must be explicitely ended with a HLT instruction.
This is of course not intended to be a productive way of building programs, but a method to test the system.
Because the PC is initially set to 0, you want your "main" function at the very beginning of the code. Labels with data should be placed after this is they do take a memory location.