hex0 is written in binary
takes two hex characters and outputs and byte
understands:
+ line breaks + comments which are and #
can represent the program then as a series of bytes (eg if fixed length command then fixed number of hexes per line?)
can then write hex0 assembler in hex0
hex1 compiler written in hex0
adds to hex0
can then rewrite hex1 assembler in hex1
hex2 compiler written in hex1
m0 compiler written in hex2