Definitions for each key-value pair in an assembler definition plist file.  Tab indentation denotes child-parent associations in this definition.  Order of children at same depth is alphabetical.

Key: 	CanDisassemble
Type: 	Boolean
Desc:	Flag indicating bit patterns are unique across assembler mnemonics, allowing disasembly

Key: 	CanSkipBitRegister
Type: 	Boolean
Desc:	Flag indicating bit names can provide the register number for instructions that require both bit and register operands

Key: 	Case Sensitive
Type: 	Boolean
Desc:	Flag indicating instruction mnemonics are case sensitive

Key: 	Data Size
Type: 	Integer
Desc:	Number of bits in a data word [not size of instruction word]

Key: 	Instruction Size
Type: 	Integer
Desc:	Number of bits in an instruction word [instructions can take multiple words]

Key: 	Instructions
Type: 	Array
Desc:	Array of instruction definitions

	Key: 	<N/A>
	Type: 	Dictionary
	Desc:	The dictionary for a single instruction definition

		Key: 	Bit Use
		Type: 	String
		Desc:	The source of each bit in the opcode.  The size of this string must be divisible by 8 (even bytes).  The bits are represented by a single character in the string.  The MSB is the leftmost character.  A 'u' character for a bit means the bit is unused.  An 'i' character means that the bit is part of the instruction base code.  An integer between 0 and 9 means that the bit comes from a parameter, with 0 indicating the first parameter, 1 the second, and so on.  Parameter index numbers are derived by counting the parameters in the "Operand List" key-value string from left to right.

		Key: 	Code Generator
		Type: 	String
		Desc:	The equation to use to generate the opcode from the instruction and parameters.  This equation should be kept simple, and all operation ordering should be made explicit with parenthesis.  Parameters can be referenced by name, but must exactly match the string used in the "Operand List" key-value string, including the leading dollar-sign.  If the instruction takes more than 1 instruction word, separate each word equation with a comma.

		Key: 	Mnemonic
		Type: 	String
		Desc:	The text mnemonic for the instruction.  May be case-sensitive, from above flag.

		Key: 	Number of Words
		Type: 	Integer
		Desc:	The number of instruction words this instruction occupies.

		Key: 	Operand List
		Type: 	String
		Desc:	The order and format for each operand.  Each parameter listed in this string must have a leading dollar sign and a mnemonic that matches an operand definition from this file (see below).  Operands must be separated by a single space or special character.  The separation character in this string will be required to separate parameters in the assembler.

Key: 	Max Operands
Type: 	Integer
Desc:	The maximum number of operands required by any of the instructions defined in this file (used for array sizing).

Key: 	Operands
Type: 	Array
Desc:	Array of operand definitions

	Key: 	<N/A>
	Type: 	Dictionary
	Desc:	The dictionary for a single operand definition

		Key: 	Can Default
		Type: 	Boolean
		Desc:	Flag indicating if this parameter can be left off the instruction line, to be defaulted to a value specified here.  Once a parameter that can default has been defined for an instruction, no following parameters should be specified that can not default.

		Key: 	Default Value
		Type: 	Integer
		Desc:	Value parameter will be set to if the operand is left off the instruction line

		Key: 	Long Name
		Type: 	String
		Desc:	Text string to be used in error messages regarding this parameter.

		Key: 	Maximum Value
		Type: 	Integer
		Desc:	Largest valid value this operand can take

		Key: 	Minimum Value
		Type: 	Integer
		Desc:	Smallest valid value this operand can take

		Key: 	Tag
		Type: 	String
		Desc:	Text mnemonic used in the instruction "Operand List" and "Code Generator" values to reference this operand, without the dollar sign.  There are two special cases;  if the tag starts with the string "REG" then the operand can be specified using the register names defined for the current chip.  If the tag starts with the string "BIT", then the operand can be specified using the bit names defined for the current chip.  Multiple register or bit operand types can be defined by differentiating them with additional characters following the special string - this can be usefull for different operands that are for registers, but take different ranges of registers (as specified with the "Minimum Value" and "Maximum Value" keys).

		Key: 	Valid Symbols
		Type: 	Dictionary
		Desc:	Set of special symbols that can be used for this operand

			Key: 	"Symbol Mnemonic" - the special symbol being defined.  These mnemonics may be case sensitive.
			Type: 	Integer
			Desc:	Value that operand takes when special symbol is used

Key: 	Symbols
Type: 	Array
Desc:	Symbol definitions that will be usable in the assembler.  As a minimum, the assembler name preceded by an "_Assembler_" string should be defined, with a value of 1

	Key: 	<N/A>
	Type: 	Dictionary
	Desc:	The definition for a single symbol definition

		Key: 	Substitute Text
		Type: 	String
		Desc:	The text that will be replaced in the assembler

		Key: 	Symbol
		Type: 	String
		Desc:	The symbol name.  Case sensitivity is specified by project flags.