Home Journal Contact Me Tools Comments

Processor Info

Contents

Opcodes

An opcode is an instruction of one or more bytes that a CPU executes. Many opcodes are fixed values like the two byte Z80 instruction “DDF9” that copies the contents of the IX register to the SP register. Most opcodes, however, are combinations of fixed values and fill-in values. The four byte Z80 instruction “DDCBii3E” adds the value ii to the IX register and does a shift-left on the memory at the resulting address.

Some opcodes have multiple fill-in values. The Z80 opcode “FD36bbii” adds ii to the IY register and stores the byte value bb at the resulting address. Some fill-in values are multi-byte. The three byte Z80 opcode “01wlwm” loads the BC register pair with the word value wlwm. The “l” and “m” indicates the “least significant byte” and the “most significant byte” of the two-byte value. Some processors e.g. Z80 and 6502 store the least-significant byte first. Others like the 6809 store the most-significant byte first. The notation makes the order clear.

Most fill-in values are complete bytes or words, but sometimes an opcode uses a smaller bit field within a fixed value. The Z80 has an instruction that subtracts another register from the A register. This instruction has the binary form “10010rrr” where the value of r indicates the other register: 0=B, 1=C, and so forth. For these opcodes the various combinations of the bit field are listed as separate opcodes.

I will use the term “opcode parameter” to refer to fill-in values in an opcode. Most processors are similar enough to identify similar types of parameters across all processors.

For instance the 6809, 6502, and Z80 processors all have a “jump to code address” instruction that changes the program-counter to a new spot in the program. I will use the letter “m” for this fill in value. Adding the “least” and “most” info to the parameter results in the two byte value “mlmm” on the 6502 and Z80 and “mmml” on the 6809 where the most-significant comes first.

Most processors include an instruction for loading a register from a memory address given in the opcode. For these the letter “t” will indicate a two byte memory address used to load data from memory as in “tltm” and “tmtl”.

Most processors include the ability to load a register with a two byte immediate constant given as an opcode parameter. For these the letter “w” will indicate a two byte constant as in “wlwm” and “wmwl”.

In all of these cases the opcode parameter is two-bytes, and in each case the processor knows exactly what to do with the two bytes. The lettering is purely for our benefit helping us decode what the opcodes do.

Some opcode parameters are very processor specific. The 6809 has a complex push/pull opcode where the bits of a fill-in parameter byte define which registers are pushed or pulled. These 512 combinations (256 for push and 256 for pull … in reverse order) could be listed out as separate opcodes. But it is easier to write 6809-specific code in an assembler/disassemble to handle these opcodes.

Opcode Parameter Fields

The following table from the Java enum defines the various types of opcode parameters.

	                           //bytes  sub   signed address  pc-offset  io    code
	INDEX_BYTE                 (   1,   'i',  false, false,   false,   false, false),  // Unsigned byte used as an address offset
	SIGNED_INDEX_BYTE          (   1,   'j',  true,  false,   false,   false, false),  // Signed byte used as an address offset
	SIGNED_INDEX_WORD          (   2,   'k',  true,  false,   false,   false, false),  // Signed word used an an address offset
	IMMEDIATE_BYTE             (   1,   'b',  false, false,   false,   false, false),  // Byte constant
	IMMEDIATE_WORD             (   2,   'w',  false, false,   false,   false, false),  // Word constant
	ADDRESS_WORD_DATA          (   2,   't',  false, true,    false,   false, false),  // Word address for data
	BASE_ADDRESS_BYTE_DATA     (   1,   'p',  false, true,    false,   false, false),  // Byte address for data
	PORT_ADDRESS_BYTE          (   1,   'o',  false, false,   false,   true,  false),  // Byte port address for I/O
	ADDRESS_WORD_TEXT          (   2,   'm',  false, true,    false,   false, true),   // Word address for code
	REL_BYTE_ADDRESS_TEXT      (   1,   'r',  true,  true,    true,    false, true),   // PC relative address offset byte for code
	REL_WORD_ADDRESS_TEXT      (   2,   's',  true,  true,    true,    false, true),   // PC relative address offset word for code
	// 6809 Specific
	PUSH_6809_U                (   1,   'u',  false, false,   false,   false, false),  // 6809 register set for pushes to U stack
	PUSH_6809_S                (   1,   'x',  false, false,   false,   false, false),  // 6809 register set for pushes to S stack
	PULL_6809_U                (   1,   'v',  false, false,   false,   false, false),  // 6809 register set for pulls from S stack
	PULL_6809_S                (   1,   'q',  false, false,   false,   false, false),  // 6809 register set for pulls from S stack
	REG_6809_TFR               (   1,   'z',  false, false,   false,   false, false),  // Byte field used in 6809 for register-pairs
	POST_6809                  (   1,   'y',  false, false,   false,   false, false);  // Byte used in 6809 to identify indexed form

Mnemonics

Programming would be much too tedious if you had to work with opcodes in numeric form like “3E 45”. Though some hardcore embedded programmers patch code by remembering opcodes. Programming would be too verbose if you had to type out what the instruction does instead: “Load 45 into the A register”. Though sometimes we write assembly comments like this if we can’t think of anything better.

Instead we use shortcut mnemonics to stand in for opcodes. Instead of “3E 45” we write “LD A,45h” in Z80 assembly. The exact same opcode “3E 45” appears in 8080 code as “MVI A,45h”. In 6502 the similar instruction “A9 45” would be written as “LDA #$45”.

The 8080 is the predecessor of Z80. The Z80 opcodes are backwards compatible with 8080 opcodes, and the Z80 adds many new registers, addressing modes, and instructions. Notice how the mnemonics evolved from the 8080 to the Z80. The “MVI”, which means “Move Immediate” changed to a generic “LD” (load), which is used in all data-copies from register to register, from memory to register, and even from register to memory.

With the 6502 and 6809 mnemonics your programs are register-centered and you either “load” (LDA) data from memory or “store” (STA) data back. The mnemonics may look very different from CPU to CPU, but at the opcode level CPUs do basically the same things. If you understand opcodes on one CPU you can easily move to another.

Base Indicators

You probably noted some other syntactic differences in the mnemonics. On the 8080 and Z80, hex numbers are written with a postfix “h” to indicate hexadecimal. Since case doesn’t matter, the trailing “H” makes for some human-word-like constants like “BAH” and “0H”. These could be confused with symbols in an assembly language program. The 6502 and 6809 use a prefix “$” to indicate hex. This prefix can’t be used in another context and stands out readily from the number itself. Most modern languages use a prefix notation of some sort.

Immediacy

Mnemonics must differentiate a numeric constant from a memory access. On the 6502 “LDA #$45” means “load the value $45 into A”. But the mnemonic “LDA $45”, without the “#”, means “load the value at address $45 into A”. The number-sign means “number” as in immediate numeric constant. With a number-sign a value is a number. Without a number-sign a value is a memory address.

The 8080 and Z80 mnemonics take a different approach to immediacy. They assume that a plain, unmarked value is a constant number. For a memory address you have to surround the value with parenthesis. Thus “LD A,$45” means “load A with the value $45” and “LD A,($45)” means “load A with the value at address $45”. Both techniques are equally correct. I prefer the number-sign since I grew up with the 6809. But I recognize this is just taste.

The 8080 evolved into the 8086 assembly, which still tags memory addresses though now with brackets “[ ]” to avoid confusion with mathematical parenthesis. Enter “debug” at the command prompt on your PC and enter “u” several times and you’ll see the brackets.

Remember that all this mnemonic syntax discussion has no place at the opcode level. The fact that a value is a memory address or constant is hardcoded into the opcode. What the opcode does is hardcoded whether a human sees it as “LDA or “MVI”. In fact, you are free to come up with your own mnemonics and write your own tool chain to support them. As a Java programmer I’d like to see all the processors use mnemonics like “A = #$45”. That might make a good future tool, though my BLEND tool already does some of that.

Alternate Mnemonics

We’ve seen how the same operation has different opcodes in different mnemonic families. There are even some variances within a single family. The 6809 opcode “24rr” jumps to new address if the carry flag is clear. One obvious mnemonic for this opcode is “BCC rr”, which is the branch-if-carry-clear.

Conditional flow instructions are almost always preceded by a comparison statement. The program compares two numbers and then jumps away if they are equal or if they are not equal or one is greater-than-or-equal to the other. Comparison means subtraction. Comparing A to B means subtracting B from A. If B is larger than A then a borrow (carry) happens. If A is greater than or equal to B then there is no borrow (carry).

There are lots of reasons the carry flag may be clear, but if it is cleared by comparing A to B then it means A is higher or the same as B. And a programmer can think in these terms by using an alternate mnemonic for 24rr: “BHS rr”. The branch-higher-or-same does the same thing (branch if carry is clear), but the alternate mnemonic is easier to understand in the context of comparing two numbers.

This saves the programmer from having to remember: the carry flag is clear when there is no borrow and that means the second number was larger or equal to the first. That may seem trivial, but on the 6502 the borrow flag is backwards. It is CLEARED if there is a borrow. And there is no alternate form of the mnemonic. The programmer has to write this knowledge into every comparison. Again, my BLEND tool hides these details behind standard high-level language flow constructs.

Undocumented Opcodes

If you list out all the opcodes for a processor in numerical order (like I have done below) you will see gaps in the table. In the 6502, for instance, there is no opcode with value “02”, “03”, or “04”. What happens if the processor tries to execute one of these invalid opcodes?

Most of these invalid opcodes do nothing. Some opcodes behave differently from chip to chip with tiny variations in the fabrication process. Some invalid opcodes are so unstable they behave differently each time they are executed on the same chip. But a few of the invalid opcodes actually perform useful functions. These invalid opcodes are called “undocumented” because the original chip manufacturers do not list them in the official documentation. But over the years they have become explored and highly documented on the web.

On the Z80 the “DD” opcode is normally used to prefix other opcodes that involve the HL register. If the “DD” prefix is used the opcode generally uses the IX register instead of the HL register. For instance, the opcode “210000” is “LD HL,0”. But with a “DD” prefix “DD210000” becomes “LD IX,0”. This is a familiar, officially documented opcode.

The opcode “67” is “LD H,A” which copies A into H. H and L are the High and Low part of the combined HL register. If you prefix this opcode with DD you get “DD67” which is “LD IXh,A”. This opcode copies A into the high byte of the IX register. But the IX register is not documented as having upper and lower addressable parts. This undocumented opcode is very useful nonetheless and is quite common in Z80 programs. The arcade game Galaga uses this undocumented opcode a lot including at address 1EBB in CPU1 in the MoveBeeFire function (see the Galaga No-Fire Cheat).

Processor Tables

The tables below contain detailed information about the opcodes and mnemonics of various processors. The information has been compiled from various sites around the web and many ancient books in my collection. The information is in a single XML file for each processor family you can download here:

Family_Z80_8080.xml

Family_650X.xml

Family_6801_6803.xml

Family_6809.xml

This information is not intended as a reference or teaching tool. You can find wonderfully rich tutorial sites on each processor using a web search.

This XML form is great for computer consumption. It is the core of the assembler/disassemble/emulator tools used on this site. The XML is formatted in a table for human consumption. Snippets of the table-XML appear below.

Each processor in the XML has a “cpu” name for identification. Within each “processor” tag there is a long list of opcodes.

The “code” attribute of an opcode is the static and parameter bytes that make up the opcode.

The “clocks” attribute is the number of clock cycles the opcode takes to complete. Many opcodes have several numbers separated by “/”. For instance the Z80 conditional CALL instructions like “CALL Z,m” have clocks as “17/10”. If the branch is taken, the opcode burns 17 clocks. If the branch is not taken, the opcode burns only 10 clocks.

The “flags” attribute explains which flags are affected by the opcode and how.

Each opcode has one or more mnemonics given as “mn” attributes like “mnZ80”, “mn8080”, “mnCish” and so on. These different mnemonic families are explained in the processor sections below.

If a specific mnemonic has alternate forms then the forms are separated by “;” within the mnemonic. For instance, the 6809 “BCC” alternates discussed above appear like this “BHS r;BCC r”.

6801/6803

<?xml version="1.0" encoding="UTF-8"?>

<ProcessorFamily name="6801/6803" endian="big">

        <printSpacing>
            <set name="6801" dataFieldSize="10" mnemonicFieldSize="20"/>
            <set name="6803" dataFieldSize="10" mnemonicFieldSize="20"/>
            <set name="Cish" dataFieldSize="10" mnemonicFieldSize="20"/> 
        </printSpacing> 
        
		<processors>
			<processor name="6801" />
			<processor name="6803" />
		</processors>

		<registers>
			<register name="CC" size="1">
				<flag name="C" bit="0" description="carry/borrow" />
				<flag name="V" bit="1" description="overflow" />
				<flag name="Z" bit="2" description="zero" />
				<flag name="N" bit="3" description="negative" />
				<flag name="I" bit="4" description="interrupt" />
				<flag name="H" bit="5" description="half carry" />
			</register>
			<register name="A" size="1" />
			<register name="B" size="1" />
			<register name="D" size="2" pair="A:B" />
			<register name="X" size="2" />
			<register name="SP" size="2" />
			<register name="PC" size="2" />
		</registers>

		<opcodes>			                                                                 <!-- ...HINZVC -->
  <op code="01"      m6801="NOP"                  m6803="NOP"                  clocks="2"   flags="----****" />
  <op code="04"      m6801="LSRD"                 m6803="LSRD"                 clocks="3"   flags="----0***" />
  <op code="06"      m6801="TAP"                  m6803="TAP"                  clocks="2"   flags="--******" />
  <op code="07"      m6801="TPA"                  m6803="TPA"                  clocks="2"   flags="--------" />
  <op code="08"      m6801="INX"                  m6803="INX"                  clocks="3"   flags="------*-" />
  <op code="09"      m6801="DEX"                  m6803="DEX"                  clocks="3"   flags="------*-" />
  <op code="0A"      m6801="CLV"                  m6803="CLV"                  clocks="2"   flags="------0-" />
  <op code="0B"      m6801="SEV"                  m6803="SEV"                  clocks="2"   flags="------1-" />
  <op code="0C"      m6801="CLC"                  m6803="CLC"                  clocks="2"   flags="-------0" />
  <op code="0D"      m6801="SEC"                  m6803="SEC"                  clocks="2"   flags="-------1" />
  <op code="0E"      m6801="CLI"                  m6803="CLI"                  clocks="2"   flags="---0----" />
  <op code="0F"      m6801="SEI"                  m6803="SEI"                  clocks="2"   flags="---1----" />
  <op code="10"      m6801="SBA"                  m6803="SBA"                  clocks="2"   flags="----****" />
  <op code="11"      m6801="CBA"                  m6803="CBA"                  clocks="2"   flags="----****" />
  <op code="16"      m6801="TAB"                  m6803="TAB"                  clocks="2"   flags="----**0-" />
  <op code="17"      m6801="TBA"                  m6803="TBA"                  clocks="2"   flags="----**0-" />
  <op code="19"      m6801="DAA"                  m6803="DAA"                  clocks="2"   flags="----****" />
  <op code="1B"      m6801="ABA"                  m6803="ABA"                  clocks="2"   flags="--*-****" />
  <op code="20rr"    m6801="BRA  r"               m6803="BRA  r"               clocks="3"   flags="--------" />
  <op code="21rr"    m6801="BRN  r"               m6803="BRN  r"               clocks="3"   flags="--------" />
  <op code="22rr"    m6801="BHI  r"               m6803="BHI  r"               clocks="3"   flags="--------" />
  <op code="23rr"    m6801="BLS  r"               m6803="BLS  r"               clocks="3"   flags="--------" />
  <op code="24rr"    m6801="BCC  r;BHS  r"        m6803="BCC  r;BHS  r"        clocks="3"   flags="--------" />
  <op code="25rr"    m6801="BCS  r;BLO  r"        m6803="BCS  r;BLO  r"        clocks="3"   flags="--------" />
  <op code="26rr"    m6801="BNE  r"               m6803="BNE  r"               clocks="3"   flags="--------" />
  <op code="27rr"    m6801="BEQ  r"               m6803="BEQ  r"               clocks="3"   flags="--------" />
  <op code="28rr"    m6801="BVC  r"               m6803="BVC  r"               clocks="3"   flags="--------" />
  <op code="29rr"    m6801="BVS  r"               m6803="BVS  r"               clocks="3"   flags="--------" />
  <op code="2Arr"    m6801="BPL  r"               m6803="BPL  r"               clocks="3"   flags="--------" />
  <op code="2Brr"    m6801="BMI  r"               m6803="BMI  r"               clocks="3"   flags="--------" />
  <op code="2Crr"    m6801="BGE  r"               m6803="BGE  r"               clocks="3"   flags="--------" />
  <op code="2Drr"    m6801="BLT  r"               m6803="BLT  r"               clocks="3"   flags="--------" />
  <op code="2Err"    m6801="BGT  r"               m6803="BGT  r"               clocks="3"   flags="--------" />
  <op code="2Frr"    m6801="BLE  r"               m6803="BLE  r"               clocks="3"   flags="--------" />
  <op code="30"      m6801="TSX"                  m6803="TSX"                  clocks="3"   flags="--------" />
  <op code="31"      m6801="INS"                  m6803="INS"                  clocks="3"   flags="--------" />
  <op code="32"      m6801="PULA"                 m6803="PULA"                 clocks="4"   flags="--------" />
  <op code="33"      m6801="PULB"                 m6803="PULB"                 clocks="4"   flags="--------" />
  <op code="34"      m6801="DES"                  m6803="DES"                  clocks="3"   flags="--------" />
  <op code="35"      m6801="TXS"                  m6803="TXS"                  clocks="3"   flags="--------" />
  <op code="36"      m6801="PSHA"                 m6803="PSHA"                 clocks="3"   flags="--------" />
  <op code="37"      m6801="PSHB"                 m6803="PSHB"                 clocks="3"   flags="--------" />
  <op code="38"      m6801="PULX"                 m6803="PULX"                 clocks="5"   flags="--------" />
  <op code="39"      m6801="RTS"                  m6803="RTS"                  clocks="5"   flags="--------" />
  <op code="3A"      m6801="ABX"                  m6803="ABX"                  clocks="3"   flags="--------" />
  <op code="3B"      m6801="RTI"                  m6803="RTI"                  clocks="10"  flags="--******" />
  <op code="3C"      m6801="PSHX"                 m6803="PSHX"                 clocks="4"   flags="--------" />
  <op code="3D"      m6801="MUL"                  m6803="MUL"                  clocks="10"  flags="----****" />
  <op code="3E"      m6801="WAI"                  m6803="WAI"                  clocks="9"   flags="--------" />
  <op code="3F"      m6801="SWI"                  m6803="SWI"                  clocks="12"  flags="---1----" />
  <op code="40"      m6801="NEGA"                 m6803="NEGA"                 clocks="2"   flags="----****" />
  <op code="43"      m6801="COMA"                 m6803="COMA"                 clocks="2"   flags="----**01" />
  <op code="44"      m6801="LSRA"                 m6803="LSRA"                 clocks="2"   flags="----0***" />
  <op code="46"      m6801="RORA"                 m6803="RORA"                 clocks="2"   flags="----****" />
  <op code="47"      m6801="ASRA"                 m6803="ASRA"                 clocks="2"   flags="----****" />
  <op code="48"      m6801="ASLA;LSLA"            m6803="ASLA;LSLA"            clocks="2"   flags="----****" />
  <op code="49"      m6801="ROLA"                 m6803="ROLA"                 clocks="2"   flags="----****" />
  <op code="4A"      m6801="DECA"                 m6803="DECA"                 clocks="2"   flags="----***-" />
  <op code="4C"      m6801="INCA"                 m6803="INCA"                 clocks="2"   flags="----***-" />
  <op code="4D"      m6801="TSTA"                 m6803="TSTA"                 clocks="2"   flags="----**00" />
  <op code="4F"      m6801="CLRA"                 m6803="CLRA"                 clocks="2"   flags="----0100" />
  <op code="50"      m6801="NEGB"                 m6803="NEGB"                 clocks="2"   flags="----****" />
  <op code="53"      m6801="COMB"                 m6803="COMB"                 clocks="2"   flags="----**01" />
  <op code="54"      m6801="LSRB"                 m6803="LSRB"                 clocks="2"   flags="----0***" />
  <op code="56"      m6801="RORB"                 m6803="RORB"                 clocks="2"   flags="----****" />
  <op code="57"      m6801="ASRB"                 m6803="ASRB"                 clocks="2"   flags="----****" />
  <op code="58"      m6801="ASLB;LSLB"            m6803="ASLB;LSLB"            clocks="2"   flags="----****" />
  <op code="59"      m6801="ROLB"                 m6803="ROLB"                 clocks="2"   flags="----****" />
  <op code="5A"      m6801="DECB"                 m6803="DECB"                 clocks="2"   flags="----***-" />
  <op code="5C"      m6801="INCB"                 m6803="INCB"                 clocks="2"   flags="----***-" />
  <op code="5D"      m6801="TSTB"                 m6803="TSTB"                 clocks="2"   flags="----**00" />
  <op code="5F"      m6801="CLRB"                 m6803="CLRB"                 clocks="2"   flags="----0100" />
  <op code="60ii"    m6801="NEG  i,X"             m6803="NEG  i,X"             clocks="6"   flags="----****" />
  <op code="63ii"    m6801="COM  i,X"             m6803="COM  i,X"             clocks="6"   flags="----**01" />
  <op code="64ii"    m6801="LSR  i,X"             m6803="LSR  i,X"             clocks="6"   flags="----0***" />
  <op code="66ii"    m6801="ROR  i,X"             m6803="ROR  i,X"             clocks="6"   flags="----****" />
  <op code="67ii"    m6801="ASR  i,X"             m6803="ASR  i,X"             clocks="6"   flags="----****" />
  <op code="68ii"    m6801="ASL  i,X;LSL  i,X"    m6803="ASL  i,X;LSL  i,X"    clocks="2"   flags="----****" />
  <op code="69ii"    m6801="ROL  i,X"             m6803="ROL  i,X"             clocks="6"   flags="----****" />
  <op code="6Aii"    m6801="DEC  i,X"             m6803="DEC  i,X"             clocks="6"   flags="----***-" />
  <op code="6Cii"    m6801="INC  i,X"             m6803="INC  i,X"             clocks="6"   flags="----***-" />
  <op code="6Dii"    m6801="TST  i,X"             m6803="TST  i,X"             clocks="6"   flags="----**00" />
  <op code="6Eii"    m6801="JMP  i,X"             m6803="JMP  i,X"             clocks="3"   flags="--------" />
  <op code="6Fii"    m6801="CLR  i,X"             m6803="CLR  i,X"             clocks="6"   flags="----0100" />
  <op code="70mmml"  m6801="NEG  m"               m6803="NEG  m"               clocks="6"   flags="----****" />
  <op code="73mmml"  m6801="COM  m"               m6803="COM  m"               clocks="6"   flags="----**01" />
  <op code="74mmml"  m6801="LSR  m"               m6803="LSR  m"               clocks="6"   flags="----0***" />
  <op code="76mmml"  m6801="ROR  m"               m6803="ROR  m"               clocks="6"   flags="----****" />
  <op code="77mmml"  m6801="ASR  m"               m6803="ASR  m"               clocks="6"   flags="----****" />
  <op code="78mmml"  m6801="ASL  m;LSL  m"        m6803="ASL  m;LSL  m"        clocks="6"   flags="----****" />
  <op code="79mmml"  m6801="ROL  m"               m6803="ROL  m"               clocks="6"   flags="----****" />
  <op code="7Ammml"  m6801="DEC  m"               m6803="DEC  m"               clocks="6"   flags="----***-" />
  <op code="7Cmmml"  m6801="INC  m"               m6803="INC  m"               clocks="6"   flags="----***-" />
  <op code="7Dmmml"  m6801="TST  m"               m6803="TST  m"               clocks="6"   flags="----**00" />
  <op code="7Emmml"  m6801="JMP  m"               m6803="JMP  m"               clocks="3"   flags="--------" />
  <op code="7Fmmml"  m6801="CLR  m"               m6803="CLR  m"               clocks="6"   flags="----0100" />
  <op code="80bb"    m6801="SUBA #b"              m6803="SUBA #b"              clocks="2"   flags="----****" />
  <op code="81bb"    m6801="CMPA #b"              m6803="CMPA #b"              clocks="2"   flags="----****" />
  <op code="82bb"    m6801="SBCA #b"              m6803="SBCA #b"              clocks="2"   flags="----****" />
  <op code="83wmwl"  m6801="SUBD #w"              m6803="SUBD #w"              clocks="4"   flags="----****" />
  <op code="84bb"    m6801="ANDA #b"              m6803="ANDA #b"              clocks="2"   flags="----**0*" />
  <op code="85bb"    m6801="BITA #b"              m6803="BITA #b"              clocks="2"   flags="----**0-" />
  <op code="86bb"    m6801="LDA  #b"              m6803="LDA  #b"              clocks="2"   flags="----**0-" />
  <op code="88bb"    m6801="EORA #b"              m6803="EORA #b"              clocks="2"   flags="----**0-" />
  <op code="89bb"    m6801="ADCA #b"              m6803="ADCA #b"              clocks="2"   flags="--*-****" />
  <op code="8Abb"    m6801="ORA  #b"              m6803="ORA  #b"              clocks="2"   flags="----**0-" />
  <op code="8Bbb"    m6801="ADDA #b"              m6803="ADDA #b"              clocks="2"   flags="--*-****" />
  <op code="8Cwmwl"  m6801="CPX  #w"              m6803="CPX  #w"              clocks="4"   flags="----****" />
  <op code="8Drr"    m6801="BSR  r"               m6803="BSR  r"               clocks="6"   flags="--------" />
  <op code="8Ewmwl"  m6801="LDS  #w"              m6803="LDS  #w"              clocks="3"   flags="----**0-" />
  <op code="90pp"    m6801="SUBA >p"              m6803="SUBA >p"              clocks="3"   flags="----****" />
  <op code="91pp"    m6801="CMPA >p"              m6803="CMPA >p"              clocks="3"   flags="----****" />
  <op code="92pp"    m6801="SBCA >p"              m6803="SBCA >p"              clocks="3"   flags="----****" />
  <op code="93pp"    m6801="SUBD >p"              m6803="SUBD >p"              clocks="5"   flags="----****" />
  <op code="94pp"    m6801="ANDA >p"              m6803="ANDA >p"              clocks="3"   flags="----**0*" />
  <op code="95pp"    m6801="BITA >p"              m6803="BITA >p"              clocks="3"   flags="----**0-" />
  <op code="96pp"    m6801="LDA  >p"              m6803="LDA  >p"              clocks="3"   flags="----**0-" />
  <op code="97pp"    m6801="STA  >p"              m6803="STA  >p"              clocks="3"   flags="----**0-" />
  <op code="98pp"    m6801="EORA >p"              m6803="EORA >p"              clocks="3"   flags="----**0-" />
  <op code="99pp"    m6801="ADCA >p"              m6803="ADCA >p"              clocks="3"   flags="--*-****" />
  <op code="9App"    m6801="ORA  >p"              m6803="ORA  >p"              clocks="3"   flags="----**0-" />
  <op code="9Bpp"    m6801="ADDA >p"              m6803="ADDA >p"              clocks="3"   flags="--*-****" />
  <op code="9Cpp"    m6801="CPX  >p"              m6803="CPX  >p"              clocks="5"   flags="----****" />
  <op code="9Dpp"    m6801="JSR  >p"              m6803="JSR  >p"              clocks="5"   flags="--------" />
  <op code="9Epp"    m6801="LDS  >p"              m6803="LDS  >p"              clocks="4"   flags="----**0-" />
  <op code="9Fpp"    m6801="STS  >p"              m6803="STS  >p"              clocks="4"   flags="----**0-" />
  <op code="A0ii"    m6801="SUBA i,X"             m6803="SUBA i,X"             clocks="4"   flags="----****" />
  <op code="A1ii"    m6801="CMPA i,X"             m6803="CMPA i,X"             clocks="4"   flags="----****" />
  <op code="A2ii"    m6801="SBCA i,X"             m6803="SBCA i,X"             clocks="4"   flags="----****" />
  <op code="A3ii"    m6801="SUBD i,X"             m6803="SUBD i,X"             clocks="6"   flags="----****" />
  <op code="A4ii"    m6801="ANDA i,X"             m6803="ANDA i,X"             clocks="4"   flags="----**0*" />
  <op code="A5ii"    m6801="BITA i,X"             m6803="BITA i,X"             clocks="4"   flags="----**0-" />
  <op code="A6ii"    m6801="LDA  i,X"             m6803="LDA  i,X"             clocks="4"   flags="----**0-" />
  <op code="A7ii"    m6801="STA  i,X"             m6803="STA  i,X"             clocks="4"   flags="----**0-" />
  <op code="A8ii"    m6801="EORA i,X"             m6803="EORA i,X"             clocks="4"   flags="----**0-" />
  <op code="A9ii"    m6801="ADCA i,X"             m6803="ADCA i,X"             clocks="4"   flags="--*-****" />
  <op code="AAii"    m6801="ORA  i,X"             m6803="ORA  i,X"             clocks="4"   flags="----**0-" />
  <op code="ABii"    m6801="ADDA i,X"             m6803="ADDA i,X"             clocks="4"   flags="--*-****" />
  <op code="ACii"    m6801="CPX  i,X"             m6803="CPX  i,X"             clocks="6"   flags="----****" />
  <op code="ADii"    m6801="JSR  i,X"             m6803="JSR  i,X"             clocks="6"   flags="--------" />
  <op code="AEii"    m6801="LDS  i,X"             m6803="LDS  i,X"             clocks="5"   flags="----**0-" />
  <op code="AFii"    m6801="STS  i,X"             m6803="STS  i,X"             clocks="5"   flags="----**0-" />
  <op code="B0mmml"  m6801="SUBA m"               m6803="SUBA m"               clocks="4"   flags="----****" />
  <op code="B1mmml"  m6801="CMPA m"               m6803="CMPA m"               clocks="4"   flags="----****" />
  <op code="B2mmml"  m6801="SBCA m"               m6803="SBCA m"               clocks="4"   flags="----****" />
  <op code="B3mmml"  m6801="SUBD m"               m6803="SUBD m"               clocks="6"   flags="----****" />
  <op code="B4mmml"  m6801="ANDA m"               m6803="ANDA m"               clocks="4"   flags="----**0*" />
  <op code="B5mmml"  m6801="BITA m"               m6803="BITA m"               clocks="4"   flags="----**0-" />
  <op code="B6mmml"  m6801="LDA  m"               m6803="LDA  m"               clocks="4"   flags="----**0-" />
  <op code="B7mmml"  m6801="STA  m"               m6803="STA  m"               clocks="4"   flags="----**0-" />
  <op code="B8mmml"  m6801="EORA m"               m6803="EORA m"               clocks="4"   flags="----**0-" />
  <op code="B9mmml"  m6801="ADCA m"               m6803="ADCA m"               clocks="4"   flags="--*-****" />
  <op code="BAmmml"  m6801="ORA  m"               m6803="ORA  m"               clocks="4"   flags="----**0-" />
  <op code="BBmmml"  m6801="ADDA m"               m6803="ADDA m"               clocks="4"   flags="--*-****" />
  <op code="BCmmml"  m6801="CPX  m"               m6803="CPX  m"               clocks="6"   flags="----****" />
  <op code="BDmmml"  m6801="JSR  m"               m6803="JSR  m"               clocks="6"   flags="--------" />
  <op code="BEmmml"  m6801="LDS  m"               m6803="LDS  m"               clocks="5"   flags="----**0-" />
  <op code="BFmmml"  m6801="STS  m"               m6803="STS  m"               clocks="5"   flags="----**0-" />
  <op code="C0bb"    m6801="SUBB #b"              m6803="SUBB #b"              clocks="2"   flags="----****" />
  <op code="C1bb"    m6801="CMPB #b"              m6803="CMPB #b"              clocks="2"   flags="----****" />
  <op code="C2bb"    m6801="SBCB #b"              m6803="SBCB #b"              clocks="2"   flags="----****" />
  <op code="C3wmwl"  m6801="ADDD #w"              m6803="ADDD #w"              clocks="4"   flags="--*-****" />
  <op code="C4bb"    m6801="ANDB #b"              m6803="ANDB #b"              clocks="2"   flags="----**0*" />
  <op code="C5bb"    m6801="BITB #b"              m6803="BITB #b"              clocks="2"   flags="----**0-" />
  <op code="C6bb"    m6801="LDB  #b"              m6803="LDB  #b"              clocks="2"   flags="----**0-" />
  <op code="C8bb"    m6801="EORB #b"              m6803="EORB #b"              clocks="2"   flags="----**0-" />
  <op code="C9bb"    m6801="ADCB #b"              m6803="ADCB #b"              clocks="2"   flags="--*-****" />
  <op code="CAbb"    m6801="ORB  #b"              m6803="ORB  #b"              clocks="2"   flags="----**0-" />
  <op code="CBbb"    m6801="ADDB #b"              m6803="ADDB #b"              clocks="2"   flags="--*-****" />
  <op code="CCwmwl"  m6801="LDD  w"               m6803="LDD  w"               clocks="3"   flags="----**0-" />
  <op code="CEwmwl"  m6801="LDX  #w"              m6803="LDX  #w"              clocks="3"   flags="----**0-" />
  <op code="D0pp"    m6801="SUBB >p"              m6803="SUBB >p"              clocks="3"   flags="----****" />
  <op code="D1pp"    m6801="CMPB >p"              m6803="CMPB >p"              clocks="3"   flags="----****" />
  <op code="D2pp"    m6801="SBCB >p"              m6803="SBCB >p"              clocks="3"   flags="----****" />
  <op code="D3pp"    m6801="ADDD >p"              m6803="ADDD >p"              clocks="5"   flags="--*-****" />
  <op code="D4pp"    m6801="ANDB >p"              m6803="ANDB >p"              clocks="3"   flags="----**0*" />
  <op code="D5pp"    m6801="BITB >p"              m6803="BITB >p"              clocks="3"   flags="----**0-" />
  <op code="D6pp"    m6801="LDB  >p"              m6803="LDB  >p"              clocks="3"   flags="----**0-" />
  <op code="D7pp"    m6801="STB  >p"              m6803="STB  >p"              clocks="3"   flags="----**0-" />
  <op code="D8pp"    m6801="EORB >p"              m6803="EORB >p"              clocks="3"   flags="----**0-" />
  <op code="D9pp"    m6801="ADCB >p"              m6803="ADCB >p"              clocks="3"   flags="--*-****" />
  <op code="DApp"    m6801="ORB  >p"              m6803="ORB  >p"              clocks="3"   flags="----**0-" />
  <op code="DBpp"    m6801="ADDB >p"              m6803="ADDB >p"              clocks="3"   flags="--*-****" />
  <op code="DCpp"    m6801="LDD  >p"              m6803="LDD  >p"              clocks="4"   flags="----**0-" />
  <op code="DDpp"    m6801="STD  >p"              m6803="STD  >p"              clocks="4"   flags="----**0-" />
  <op code="DEpp"    m6801="LDX  >p"              m6803="LDX  >p"              clocks="4"   flags="----**0-" />
  <op code="DFpp"    m6801="STX  >p"              m6803="STX  >p"              clocks="4"   flags="----**0-" />
  <op code="E0ii"    m6801="SUBB i,X"             m6803="SUBB i,X"             clocks="4"   flags="----****" />
  <op code="E1ii"    m6801="CMPB i,X"             m6803="CMPB i,X"             clocks="4"   flags="----****" />
  <op code="E2ii"    m6801="SBCB i,X"             m6803="SBCB i,X"             clocks="4"   flags="----****" />
  <op code="E3ii"    m6801="ADDD i,x"             m6803="ADDD i,x"             clocks="6"   flags="--*-****" />
  <op code="E4ii"    m6801="ANDB i,X"             m6803="ANDB i,X"             clocks="4"   flags="----**0*" />
  <op code="E5ii"    m6801="BITB i,X"             m6803="BITB i,X"             clocks="4"   flags="----**0-" />
  <op code="E6ii"    m6801="LDB  i,X"             m6803="LDB  i,X"             clocks="4"   flags="----**0-" />
  <op code="E7ii"    m6801="STB  i,X"             m6803="STB  i,X"             clocks="4"   flags="----**0-" />
  <op code="E8ii"    m6801="EORB i,X"             m6803="EORB i,X"             clocks="4"   flags="----**0-" />
  <op code="E9ii"    m6801="ADCB i,X"             m6803="ADCB i,X"             clocks="4"   flags="--*-****" />
  <op code="EAii"    m6801="ORB  i,X"             m6803="ORB  i,X"             clocks="4"   flags="----**0-" />
  <op code="EBii"    m6801="ADDB i,X"             m6803="ADDB i,X"             clocks="4"   flags="--*-****" />
  <op code="ECii"    m6801="LDD  i,X"             m6803="LDD  i,X"             clocks="5"   flags="----**0-" />
  <op code="EDpp"    m6801="STD  i,X"             m6803="STD  i,X"             clocks="5"   flags="----**0-" />
  <op code="EEii"    m6801="LDX  i,X"             m6803="LDX  i,X"             clocks="5"   flags="----**0-" />
  <op code="EFii"    m6801="STX  i,X"             m6803="STX  i,X"             clocks="5"   flags="----**0-" />
  <op code="F0mmml"  m6801="SUBB m"               m6803="SUBB m"               clocks="4"   flags="----****" />
  <op code="F1mmml"  m6801="CMPB m"               m6803="CMPB m"               clocks="4"   flags="----****" />
  <op code="F2mmml"  m6801="SBCB m"               m6803="SBCB m"               clocks="4"   flags="----****" />
  <op code="F3mmml"  m6801="ADDD m"               m6803="ADDD m"               clocks="6"   flags="--*-****" />
  <op code="F4mmml"  m6801="ANDB m"               m6803="ANDB m"               clocks="4"   flags="----**0*" />
  <op code="F5mmml"  m6801="BITB m"               m6803="BITB m"               clocks="4"   flags="----**0-" />
  <op code="F6mmml"  m6801="LDB  m"               m6803="LDB  m"               clocks="4"   flags="----**0-" />
  <op code="F7mmml"  m6801="STB  m"               m6803="STB  m"               clocks="4"   flags="----**0-" />
  <op code="F8mmml"  m6801="EORB m"               m6803="EORB m"               clocks="4"   flags="----**0-" />
  <op code="F9mmml"  m6801="ADCB m"               m6803="ADCB m"               clocks="4"   flags="--*-****" />
  <op code="FAmmml"  m6801="ORB  m"               m6803="ORB  m"               clocks="4"   flags="----**0-" />
  <op code="FBmmml"  m6801="ADDB m"               m6803="ADDB m"               clocks="4"   flags="--*-****" />
  <op code="FCmmml"  m6801="LDD  m"               m6803="LDD  m"               clocks="5"   flags="----**0-" />
  <op code="FDpp"    m6801="STD  m"               m6803="STD  m"               clocks="5"   flags="----**0-" />
  <op code="FEmmml"  m6801="LDX  m"               m6803="LDX  m"               clocks="5"   flags="----**0-" />
  <op code="FFmmml"  m6801="STX  m"               m6803="STX  m"               clocks="5"   flags="----**0-" />
		</opcodes>

</ProcessorFamily>

Z80/8080

<?xml version="1.0" encoding="UTF-8"?>

<ProcessorFamily name="Z80/8080" endian="little">

        <printSpacing>
            <set name="Z80"  dataFieldSize="10" mnemonicFieldSize="20"/>
            <set name="8080" dataFieldSize="10" mnemonicFieldSize="20"/>
            <set name="Cish" dataFieldSize="10" mnemonicFieldSize="20"/> 
        </printSpacing>

		<processors>
			<processor name="Z80">
				<registers>
					<register name="F" size="1" />
					<register name="A" size="1" />
					<register name="B" size="1" />
					<register name="C" size="1" />
					<register name="D" size="1" />
					<register name="E" size="1" />
					<register name="H" size="1" />
					<register name="IXL" size="1" />
					<register name="IXH" size="1" />
					<register name="IYL" size="1" />
					<register name="IYH" size="1" />
					<register name="SP" size="2" />
					<register name="PC" size="2" />
					<registerPair name="BC" msb="B" lsb="C" />
					<registerPair name="DE" msb="D" lsb="C" />
					<registerPair name="HL" msb="H" lsb="C" />
					<registerPair name="IX" msb="IXH" lsb="IXL" />
					<registerPair name="IY" msb="IYH" lsb="IYL" />
					<flag name="C" register="F" bpos="0" description="carry/borrow" />
					<flag name="N" register="F" bpos="1" description="subtract" />
					<flag name="P" register="F" bpos="2" description="parity/overflow" />
					<flag name="H" register="F" bpos="4" description="half cary" />
					<flag name="Z" register="F" bpos="6" description="zero" />
					<flag name="S" register="F" bpos="7" description="sign" />
				</registers>
			</processor>
			
			<processor name="8080">
				<registers>
					<register name="F" size="1" />
					<register name="A" size="1" />
					<register name="B" size="1" />
					<register name="C" size="1" />
					<register name="D" size="1" />
					<register name="E" size="1" />
					<register name="H" size="1" />
					<register name="L" size="1" />					
					<register name="SP" size="2" />
					<register name="PC" size="2" />
					<registerPair name="BC" msb="B" lsb="C" />
					<registerPair name="DE" msb="D" lsb="C" />
					<registerPair name="HL" msb="H" lsb="C" />					
					<flag name="C" register="F" bpos="0" description="carry/borrow" />
					<flag name="N" register="F" bpos="1" description="subtract" />
					<flag name="P" register="F" bpos="2" description="parity/overflow" />
					<flag name="H" register="F" bpos="4" description="half cary" />
					<flag name="Z" register="F" bpos="6" description="zero" />
					<flag name="S" register="F" bpos="7" description="sign" />
				</registers>
			</processor>
			
		</processors>
		

  <blends jump="JP $DEST$">  
       
    <!-- Simple one-flag tests. These have equally-short alternate forms -->
    <blend left="A" op="=="    right="*"     branchPass="CP $RIGHT$;JP Z,$PASS$"  branchFail="CP $RIGHT$;JP NZ,$FAIL$"/>
    <blend left="A" op="!="    right="*"     branchPass="CP $RIGHT$;JP NZ,$PASS$" branchFail="CP $RIGHT$;JP Z,$FAIL$"/>  
    <blend left="A" op="<"  right="*"     branchPass="CP $RIGHT$;JP C,$PASS$"  branchFail="CP $RIGHT$;JP NC,$FAIL$"/> 
    <blend left="A" op=">=" right="*"     branchPass="CP $RIGHT$;JP NC,$PASS$" branchFail="CP $RIGHT$;JP C,$FAIL$" /> 
  
    <!-- These can't be tested with one flag ... the alternate form is needlessly complicated -->
    <blend left="A" op=">"  right="*"     branchFail="CP $RIGHT$;JP Z,$FAIL$;JP C,$FAIL$" />  
    <blend left="A" op="<=" right="*"     branchPass="CP $RIGHT$;JP Z,$PASS$;JP C,$PASS$" /> 
  
    <!-- No operation ... just use the existing flags -->
    <blend left="ZERO"       op="" right=""  branchPass="JP Z,$PASS$"  branchFail="JP NZ,$FAIL$"/>
    <blend left="NOT_ZERO"   op="" right=""  branchPass="JP NZ,$PASS$" branchFail="JP Z,$FAIL$"/>  
    <blend left="CARRY"      op="" right=""  branchPass="JP C,$PASS$"  branchFail="JP NC,$FAIL$"/>
    <blend left="NOT_CARRY"  op="" right=""  branchPass="JP NC,$PASS$" branchFail="JP C,$FAIL$"/>
    
    <!--  TRUE and FALSE -->
    <blend left="true"       op="" right=""  branchPass="JP $PASS$"    branchFail=""/>
    <blend left="false"      op="" right=""  branchPass=""             branchFail="JP $FAIL$"/>
   
  </blends>
  
  <!-- 
    mCish
      BYTE[ address ]    Byte from memory location "address"
      CARRY              Carry flag (1 or 0)
  
   -->

		<opcodes>                       <!-- SZ-H-PNC -->
  <op code="8F"        clocks="4"     flags="sz-h-v0c"              mZ80="ADC   A,A"        m8080="ADC   A"           mCish="A=A+A+CARRY" />
  <op code="88"        clocks="4"     flags="sz-h-v0c"              mZ80="ADC   A,B"        m8080="ADC   B"           mCish="A=A+B+CARRYy" />
  <op code="89"        clocks="4"     flags="sz-h-v0c"              mZ80="ADC   A,C"        m8080="ADC   C"           mCish="A=A+C+CARRY" />
  <op code="8A"        clocks="4"     flags="sz-h-v0c"              mZ80="ADC   A,D"        m8080="ADC   D"           mCish="A=A+D+CARRY" />
  <op code="8B"        clocks="4"     flags="sz-h-v0c"              mZ80="ADC   A,E"        m8080="ADC   E"           mCish="A=A+E+CARRY" />
  <op code="8C"        clocks="4"     flags="sz-h-v0c"              mZ80="ADC   A,H"        m8080="ADC   H"           mCish="A=A+H+CARRY" />
  <op code="8D"        clocks="4"     flags="sz-h-v0c"              mZ80="ADC   A,L"        m8080="ADC   L"           mCish="A=A+L+CARRY" />
  <op code="8E"        clocks="7"     flags="sz-h-v0c"   bus="r"    mZ80="ADC   A,(HL)"     m8080="ADC   M"           mCish="A=A+BYTE[HL]+CARRY" />
  <op code="DD8Eii"    clocks="19"    flags="sz-h-v0c"   bus="r"    mZ80="ADC   A,(IX+i)"                             mCish="A=A+BYTE[IX+i]+CARRY" />
  <op code="FD8Eii"    clocks="19"    flags="sz-h-v0c"   bus="r"    mZ80="ADC   A,(IY+i)"                             mCish="A=A+BYTE[IY+i]+CARRY" />
  <op code="CEbb"      clocks="7"     flags="sz-h-v0c"              mZ80="ADC   A,b"        m8080="ACI   b"           mCish="A=A+b+CARRY" />
  <op code="ED4A"      clocks="15"    flags="sz-h-v0c"              mZ80="ADC   HL,BC"                                mCish="HL=HL+BC+CARRY" />
  <op code="ED5A"      clocks="15"    flags="sz-h-v0c"              mZ80="ADC   HL,DE"                                mCish="HL=HL+DE+CARRY" />
  <op code="ED6A"      clocks="15"    flags="sz-h-v0c"              mZ80="ADC   HL,HL"                                mCish="HL=HL+HL+CARRY" />
  <op code="ED7A"      clocks="15"    flags="sz-h-v0c"              mZ80="ADC   HL,SP"                                mCish="HL=HL+SP+CARRY" />
  
  <op code="87"        clocks="4"     flags="sz-h-v0c"              mZ80="ADD   A,A"        m8080="ADD   A"           mCish="A=A+A" />
  <op code="80"        clocks="4"     flags="sz-h-v0c"              mZ80="ADD   A,B"        m8080="ADD   B"           mCish="A=A+B" />
  <op code="81"        clocks="4"     flags="sz-h-v0c"              mZ80="ADD   A,C"        m8080="ADD   C"           mCish="A=A+C" />
  <op code="82"        clocks="4"     flags="sz-h-v0c"              mZ80="ADD   A,D"        m8080="ADD   D"           mCish="A=A+D" />
  <op code="83"        clocks="4"     flags="sz-h-v0c"              mZ80="ADD   A,E"        m8080="ADD   E"           mCish="A=A+E" />
  <op code="84"        clocks="4"     flags="sz-h-v0c"              mZ80="ADD   A,H"        m8080="ADD   H"           mCish="A=A+H" />
  <op code="85"        clocks="4"     flags="sz-h-v0c"              mZ80="ADD   A,L"        m8080="ADD   L"           mCish="A=A+L" />
  <op code="DD85"      clocks=""      flags="sz-h-v0c"              mZ80="ADD   A,IXL"                                mCish="A=A+IXL" />
  <op code="86"        clocks="7"     flags="sz-h-v0c"   bus="r"    mZ80="ADD   A,(HL)"     m8080="ADD   M"           mCish="A=A+BYTE[HL]" />
  <op code="DD86ii"    clocks="19"    flags="sz-h-v0c"   bus="r"    mZ80="ADD   A,(IX+i)"                             mCish="A=A+BYTE[IX+i]" />
  <op code="FD86ii"    clocks="19"    flags="sz-h-v0c"   bus="r"    mZ80="ADD   A,(IY+i)"                             mCish="A=A+BYTE[IY+i]" />
  <op code="C6bb"      clocks="7"     flags="sz-h-v0c"              mZ80="ADD   A,b"        m8080="ADI   b"           mCish="A=A+b" />
  <op code="09"        clocks="11"    flags="---H--0C"              mZ80="ADD   HL,BC"      m8080="DAD   B"           mCish="HL=HL+BC" />
  <op code="19"        clocks="11"    flags="---H--0C"              mZ80="ADD   HL,DE"      m8080="DAD   D"           mCish="HL=HL+DE" />
  <op code="29"        clocks="11"    flags="---H--0C"              mZ80="ADD   HL,HL"      m8080="DAD   H"           mCish="HL=HL+HL" />
  <op code="39"        clocks="11"    flags="---H--0C"              mZ80="ADD   HL,SP"      m8080="DAD   SP"          mCish="HL=HL+SP" />
  <op code="DD09"      clocks="15"    flags="---H--0C"              mZ80="ADD   IX,BC"                                mCish="IX=IX+BC" />
  <op code="DD19"      clocks="15"    flags="---H--0C"              mZ80="ADD   IX,DE"                                mCish="IX=IX+DE"  />
  <op code="DD29"      clocks="15"    flags="---H--0C"              mZ80="ADD   IX,IX"                                mCish="IX=IX+IX" />
  <op code="DD39"      clocks="15"    flags="---H--0C"              mZ80="ADD   IX,SP"                                mCish="IX=IX+SP" />
  <op code="FD09"      clocks="15"    flags="---H--0C"              mZ80="ADD   IY,BC"                                mCish="IY=IY+BC" />
  <op code="FD19"      clocks="15"    flags="---H--0C"              mZ80="ADD   IY,DE"                                mCish="IY=IY+DE" />
  <op code="FD29"      clocks="15"    flags="---H--0C"              mZ80="ADD   IY,IY"                                mCish="IY=IY+IY" />  
  <op code="FD39"      clocks="15"    flags="---H--0C"              mZ80="ADD   IY,SP"                                mCish="IY=IY+SP" />
    
  <op code="A7"        clocks="4"     flags="sz-1-p00"              mZ80="AND   A"          m8080="ANA   A"           mCish="A=A&A" />  
  <op code="A0"        clocks="4"     flags="sz-1-p00"              mZ80="AND   B"          m8080="ANA   B"           mCish="A=A&B" />  
  <op code="A1"        clocks="4"     flags="sz-1-p00"              mZ80="AND   C"          m8080="ANA   C"           mCish="A=A&C" />  
  <op code="A2"        clocks="4"     flags="sz-1-p00"              mZ80="AND   D"          m8080="ANA   D"           mCish="A=A&D" />  
  <op code="A3"        clocks="4"     flags="sz-1-p00"              mZ80="AND   E"          m8080="ANA   E"           mCish="A=A&E" />  
  <op code="A4"        clocks="4"     flags="sz-1-p00"              mZ80="AND   H"          m8080="ANA   H"           mCish="A=A&H" />  
  <op code="A5"        clocks="4"     flags="sz-1-p00"              mZ80="AND   L"          m8080="ANA   L"           mCish="A=A&L" />  
  <op code="A6"        clocks="7"     flags="sz-1-p00"   bus="r"    mZ80="AND   (HL)"       m8080="ANA   M"           mCish="A=A&BYTE[HL]" />  
  <op code="DDA6ii"    clocks="19"    flags="sz-1-p00"   bus="r"    mZ80="AND   (IX+i)"                               mCish="A=A&BYTE[IX+i]" />  
  <op code="FDA6ii"    clocks="19"    flags="sz-1-p00"   bus="r"    mZ80="AND   (IY+i)"                               mCish="A=A&BYTE[IY+i]" />  
  <op code="E6bb"      clocks="7"     flags="sz-1-p00"              mZ80="AND   b"          m8080="ANI   b"           mCish="A=A&b" />
    
  <op code="B7"        clocks="4"     flags="sz-0-p00"              mZ80="OR    A"          m8080="ORA   A"           />  
  <op code="B0"        clocks="4"     flags="sz-0-p00"              mZ80="OR    B"          m8080="ORA   B"           />  
  <op code="B1"        clocks="4"     flags="sz-0-p00"              mZ80="OR    C"          m8080="ORA   C"           />  
  <op code="B2"        clocks="4"     flags="sz-0-p00"              mZ80="OR    D"          m8080="ORA   D"           />  
  <op code="B3"        clocks="4"     flags="sz-0-p00"              mZ80="OR    E"          m8080="ORA   E"           />  
  <op code="B4"        clocks="4"     flags="sz-0-p00"              mZ80="OR    H"          m8080="ORA   H"           />  
  <op code="B5"        clocks="4"     flags="sz-0-p00"              mZ80="OR    L"          m8080="ORA   L"           />  
  <op code="B6"        clocks="7"     flags="sz-0-p00"   bus="r"    mZ80="OR    (HL)"       m8080="ORA   M"           />  
  <op code="DDB6ii"    clocks="19"    flags="sz-0-p00"   bus="r"    mZ80="OR    (IX+i)"                             />  
  <op code="FDB6ii"    clocks="19"    flags="sz-0-p00"   bus="r"    mZ80="OR    (IY+i)"                             />  
  <op code="F6bb"      clocks="7"     flags="sz-0-p00"              mZ80="OR    b"          m8080="ORI   b"           />
    
  <op code="AF"        clocks="4"     flags="sz-0-p00"              mZ80="XOR   A"          m8080="XRA   A"           />  
  <op code="A8"        clocks="4"     flags="sz-0-p00"              mZ80="XOR   B"          m8080="XRA   B"           />  
  <op code="A9"        clocks="4"     flags="sz-0-p00"              mZ80="XOR   C"          m8080="XRA   C"           />  
  <op code="AA"        clocks="4"     flags="sz-0-p00"              mZ80="XOR   D"          m8080="XRA   D"           />  
  <op code="AB"        clocks="4"     flags="sz-0-p00"              mZ80="XOR   E"          m8080="XRA   E"           />  
  <op code="AC"        clocks="4"     flags="sz-0-p00"              mZ80="XOR   H"          m8080="XRA   H"           />  
  <op code="AD"        clocks="4"     flags="sz-0-p00"              mZ80="XOR   L"          m8080="XRA   L"           />  
  <op code="AE"        clocks="7"     flags="sz-0-p00"   bus="r"    mZ80="XOR   (HL)"       m8080="XRA   M"           />  
  <op code="DDAEii"    clocks="19"    flags="sz-0-p00"   bus="r"    mZ80="XOR   (IX+i)"                            />  
  <op code="FDAEii"    clocks="19"    flags="sz-0-p00"   bus="r"    mZ80="XOR   (IY+i)"                            />  
  <op code="EEbb"      clocks="7"     flags="sz-0-p00"              mZ80="XOR   b"          m8080="XRI   b"           />
    
  <op code="CB47"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   0,A"                               />  
  <op code="CB40"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   0,B"                               />  
  <op code="CB41"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   0,C"                               />  
  <op code="CB42"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   0,D"                               />  
  <op code="CB43"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   0,E"                               />  
  <op code="CB44"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   0,H"                               />  
  <op code="CB45"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   0,L"                               />  
  <op code="CB4F"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   1,A"                               />  
  <op code="CB48"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   1,B"                               />  
  <op code="CB49"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   1,C"                               />  
  <op code="CB4A"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   1,D"                               /> 
  <op code="CB4B"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   1,E"                               />  
  <op code="CB4C"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   1,H"                               />  
  <op code="CB4D"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   1,L"                               />  
  <op code="CB57"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   2,A"                               />  
  <op code="CB50"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   2,B"                               />  
  <op code="CB51"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   2,C"                               />  
  <op code="CB52"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   2,D"                               />  
  <op code="CB53"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   2,E"                               />  
  <op code="CB54"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   2,H"                               />  
  <op code="CB55"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   2,L"                               />  
  <op code="CB5F"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   3,A"                               />  
  <op code="CB58"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   3,B"                               />  
  <op code="CB59"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   3,C"                               />  
  <op code="CB5A"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   3,D"                               />  
  <op code="CB5B"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   3,E"                               />  
  <op code="CB5C"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   3,H"                               />  
  <op code="CB5D"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   3,L"                               />  
  <op code="CB67"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   4,A"                               />  
  <op code="CB60"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   4,B"                               />  
  <op code="CB61"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   4,C"                               />  
  <op code="CB62"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   4,D"                               />  
  <op code="CB63"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   4,E"                               />  
  <op code="CB64"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   4,H"                               />  
  <op code="CB65"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   4,L"                               />  
  <op code="CB6F"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   5,A"                               />  
  <op code="CB68"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   5,B"                               />  
  <op code="CB69"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   5,C"                               />  
  <op code="CB6A"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   5,D"                               />  
  <op code="CB6B"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   5,E"                               />  
  <op code="CB6C"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   5,H"                               />  
  <op code="CB6D"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   5,L"                               />  
  <op code="CB77"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   6,A"                               />  
  <op code="CB70"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   6,B"                               />  
  <op code="CB71"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   6,C"                               />  
  <op code="CB72"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   6,D"                               />  
  <op code="CB73"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   6,E"                               />  
  <op code="CB74"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   6,H"                               />  
  <op code="CB75"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   6,L"                               />  
  <op code="CB7F"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   7,A"                               />  
  <op code="CB78"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   7,B"                               />  
  <op code="CB79"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   7,C"                               />  
  <op code="CB7A"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   7,D"                               />  
  <op code="CB7B"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   7,E"                               />  
  <op code="CB7C"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   7,H"                               />  
  <op code="CB7D"      clocks="8"     flags="?z-1-?0-"              mZ80="BIT   7,L"                               />  
  <op code="CB46"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   0,(HL)"                            />  
  <op code="CB4E"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   1,(HL)"                            />  
  <op code="CB56"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   2,(HL)"                            />  
  <op code="CB5E"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   3,(HL)"                            />  
  <op code="CB66"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   4,(HL)"                            />  
  <op code="CB6E"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   5,(HL)"                            />  
  <op code="CB76"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   6,(HL)"                            />  
  <op code="CB7E"      clocks="12"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   7,(HL)"                            />  
  <op code="DDCBii46"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   0,(IX+i)"                          />  
  <op code="FDCBii46"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   0,(IY+i)"                          />  
  <op code="DDCBii4E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   1,(IX+i)"                          />  
  <op code="FDCBii4E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   1,(IY+i)"                          />  
  <op code="DDCBii56"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   2,(IX+i)"                          />  
  <op code="FDCBii56"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   2,(IY+i)"                          />  
  <op code="DDCBii5E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   3,(IX+i)"                          />  
  <op code="FDCBii5E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   3,(IY+i)"                          />  
  <op code="DDCBii66"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   4,(IX+i)"                          />  
  <op code="FDCBii66"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   4,(IY+i)"                          />  
  <op code="DDCBii6E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   5,(IX+i)"                          />  
  <op code="FDCBii6E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   5,(IY+i)"                          />  
  <op code="DDCBii76"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   6,(IX+i)"                          />  
  <op code="FDCBii76"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   6,(IY+i)"                          />  
  <op code="DDCBii7E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   7,(IX+i)"                          />  
  <op code="FDCBii7E"  clocks="20"    flags="?z-1-?0-"   bus="r"    mZ80="BIT   7,(IY+i)"                          />
    
  <op code="CDmlmm"    clocks="17"    flags="--------"              mZ80="CALL  m"          m8080="CALL  m"          mCish="m()"/>  
  <op code="C4mlmm"    clocks="17/10" flags="--------"              mZ80="CALL  NZ,m"       m8080="CNZ   m"           />  
  <op code="CCmlmm"    clocks="17/10" flags="--------"              mZ80="CALL  Z,m"        m8080="CZ    m"            />  
  <op code="D4mlmm"    clocks="17/10" flags="--------"              mZ80="CALL  NC,m"       m8080="CNC   m"           />  
  <op code="DCmlmm"    clocks="17/10" flags="--------"              mZ80="CALL  C,m"        m8080="CC    m"            />  
  <op code="FDDCmlmm"  clocks="?"     flags="--------"              mZ80="CALL  C,m"        m8080="CC    m"            />  
  <op code="E4mlmm"    clocks="17/10" flags="--------"              mZ80="CALL  PO,m"       m8080="CPO   m"           />  
  <op code="ECmlmm"    clocks="17/10" flags="--------"              mZ80="CALL  PE,m"       m8080="CPE   m"           />  
  <op code="F4mlmm"    clocks="17/10" flags="--------"              mZ80="CALL  P,m"        m8080="CP    m"            />  
  <op code="FCmlmm"    clocks="17/10" flags="--------"              mZ80="CALL  M,m"        m8080="CM    m"            />
    
  <op code="3F"        clocks="4"     flags="---x--0x"              mZ80="CCF"              m8080="CMC"             />
    
  <op code="BF"        clocks="4"     flags="sz-u-v1b"              mZ80="CP    A"          m8080="CMP   A"           />  
  <op code="B8"        clocks="4"     flags="sz-u-v1b"              mZ80="CP    B"          m8080="CMP   B"           />  
  <op code="B9"        clocks="4"     flags="sz-u-v1b"              mZ80="CP    C"          m8080="CMP   C"           />  
  <op code="BA"        clocks="4"     flags="sz-u-v1b"              mZ80="CP    D"          m8080="CMP   D"           />  
  <op code="BB"        clocks="4"     flags="sz-u-v1b"              mZ80="CP    E"          m8080="CMP   E"           />  
  <op code="BC"        clocks="4"     flags="sz-u-v1b"              mZ80="CP    H"          m8080="CMP   H"           />  
  <op code="BD"        clocks="4"     flags="sz-u-v1b"              mZ80="CP    L"          m8080="CMP   L"           />  
  <op code="BE"        clocks="7"     flags="sz-u-v1b"   bus="r"    mZ80="CP    (HL)"       m8080="CMP   M"           />  
  <op code="DDBEii"    clocks="19"    flags="sz-u-v1b"   bus="r"    mZ80="CP    (IX+i)"                             />  
  <op code="FDBEii"    clocks="19"    flags="sz-u-v1b"   bus="r"    mZ80="CP    (IY+i)"                             />  
  <op code="FEbb"      clocks="7"     flags="sz-u-v1b"              mZ80="CP    b"          m8080="CPI   b"           />
    
  <op code="EDA9"      clocks="16"    flags="sz-u-y1-"              mZ80="CPD"                                   />  
  <op code="EDA1"      clocks="16"    flags="sz-u-y1-"              mZ80="CPI"                                   />  
  <op code="EDB9"      clocks="21/16" flags="xxxxxxxx"   bus="r"    mZ80="CPDR"                                  />  
  <op code="EDB1"      clocks="21/16" flags="xxxxxxxx"   bus="r"    mZ80="CPIR"                                  />  
  <op code="27"        clocks="4"     flags="xxxxxxxx"              mZ80="DAA"              m8080="DAA"             />  
  <op code="F3"        clocks="4"     flags="xxxxxxxx"              mZ80="DI"               m8080="DI"              />  
  <op code="FB"        clocks="4"     flags="xxxxxxxx"              mZ80="EI"               m8080="EI"              />  
  <op code="10rr"      clocks="13/8"  flags="xxxxxxxx"              mZ80="DJNZ  r"                                />  
  <op code="08"        clocks="4"     flags="xxxxxxxx"              mZ80="EX    AF,AF'"                             />  
  <op code="D9"        clocks="4"     flags="xxxxxxxx"              mZ80="EXX"                                   />  
  <op code="76"        clocks="4"     flags="xxxxxxxx"              mZ80="HALT"             m8080="HLT"             />  
  <op code="ED46"      clocks="8"     flags="xxxxxxxx"              mZ80="IM    0"                                  />  
  <op code="ED56"      clocks="8"     flags="xxxxxxxx"              mZ80="IM    1"                                  />  
  <op code="ED5E"      clocks="8"     flags="xxxxxxxx"              mZ80="IM    2"                                  />  
  <op code="EDAA"      clocks="16"    flags="xxxxxxxx"   bus="i"    mZ80="IND"                                   />  
  <op code="EDBA"      clocks="21/16" flags="xxxxxxxx"   bus="i"    mZ80="INDR"                                  />  
  <op code="EDA2"      clocks="16"    flags="xxxxxxxx"   bus="i"    mZ80="INI"                                   />  
  <op code="EDB2"      clocks="21/16" flags="xxxxxxxx"   bus="i"    mZ80="INIR"                                  />  
  <op code="EDB8"      clocks="21/16" flags="xxxxxxxx"   bus="r"    mZ80="LDDR"                                  />  
  <op code="EDB0"      clocks="21/16" flags="xxxxxxxx"   bus="r"    mZ80="LDIR"                                  />  
  <op code="EDBB"      clocks="21/16" flags="xxxxxxxx"   bus="o"    mZ80="OTDR"                                  />  
  <op code="EDB3"      clocks="21/16" flags="xxxxxxxx"   bus="o"    mZ80="OTIR"                                  />  
  <op code="EDAB"      clocks="16"    flags="xxxxxxxx"   bus="o"    mZ80="OUTD"                                  />  
  <op code="EDA3"      clocks="16"    flags="xxxxxxxx"   bus="o"    mZ80="OUTI"                                  />  
  <op code="ED4D"      clocks="14"    flags="xxxxxxxx"              mZ80="RETI"                                  />  
  <op code="ED45"      clocks="14"    flags="xxxxxxxx"              mZ80="RETN"                                  />  
  <op code="ED6F"      clocks="18"    flags="xxxxxxxx"   bus="rw"   mZ80="RLD"                                   />  
  <op code="ED67"      clocks="18"    flags="xxxxxxxx"   bus="rw"   mZ80="RRD"                                   />  
  <op code="2F"        clocks="4"     flags="---1--1-"              mZ80="CPL"              m8080="CMA"             />  
  <op code="3D"        clocks="4"     flags="sz-u-v1-"              mZ80="DEC   A"          m8080="DCR   A"           />  
  <op code="05"        clocks="4"     flags="sz-u-v1-"              mZ80="DEC   B"          m8080="DCR   B"           />  
  <op code="0D"        clocks="4"     flags="sz-u-v1-"              mZ80="DEC   C"          m8080="DCR   C"           />  
  <op code="15"        clocks="4"     flags="sz-u-v1-"              mZ80="DEC   D"          m8080="DCR   D"           />  
  <op code="1D"        clocks="4"     flags="sz-u-v1-"              mZ80="DEC   E"          m8080="DCR   E"           />  
  <op code="25"        clocks="4"     flags="sz-u-v1-"              mZ80="DEC   H"          m8080="DCR   H"           />  
  <op code="2D"        clocks="4"     flags="sz-u-v1-"              mZ80="DEC   L"          m8080="DCR   L"           />  
  <op code="35"        clocks="11"    flags="sz-u-v1-"              mZ80="DEC   (HL)"       m8080="DCR   M"           />  
  <op code="DD35ii"    clocks="23"    flags="sz-u-v1-"   bus="rw"   mZ80="DEC   (IX+i)"                            />  
  <op code="FD35ii"    clocks="23"    flags="sz-u-v1-"   bus="rw"   mZ80="DEC   (IY+i)"                            />  
  <op code="0B"        clocks="6"     flags="--------"              mZ80="DEC   BC"         m8080="DCX   B"           />  
  <op code="1B"        clocks="6"     flags="--------"              mZ80="DEC   DE"         m8080="DCX   D"           />  
  <op code="2B"        clocks="6"     flags="--------"              mZ80="DEC   HL"         m8080="DCX   H"           />  
  <op code="3B"        clocks="6"     flags="--------"              mZ80="DEC   SP"         m8080="DCX   SP"          />  
  <op code="DD2B"      clocks="10"    flags="--------"              mZ80="DEC   IX"                                />  
  <op code="FD2B"      clocks="10"    flags="--------"              mZ80="DEC   IY"                                />  
  <op code="EB"        clocks="4"     flags="--------"              mZ80="EX    DE,HL"      m8080="XCHG"            />  
  <op code="E3"        clocks="19"    flags="--------"   bus="rw"   mZ80="EX    (SP),HL"    m8080="XTHL"            />  
  <op code="DDE3"      clocks="23"    flags="--------"   bus="rw"   mZ80="EX    (SP),IX"                            />  
  <op code="FDE3"      clocks="23"    flags="--------"   bus="rw"   mZ80="EX    (SP),IY"                            />  
  <op code="DBoo"      clocks="11"    flags="--------"              mZ80="IN    A,(o)"      m8080="IN    o"            />  
  <op code="ED78"      clocks="12"    flags="sz-0-p0-"              mZ80="IN    A,(C)"                              />  
  <op code="ED40"      clocks="12"    flags="sz-0-p0-"              mZ80="IN    B,(C)"                              />  
  <op code="ED48"      clocks="12"    flags="sz-0-p0-"              mZ80="IN    C,(C)"                              />  
  <op code="ED50"      clocks="12"    flags="sz-0-p0-"              mZ80="IN    D,(C)"                              />  
  <op code="ED58"      clocks="12"    flags="sz-0-p0-"              mZ80="IN    E,(C)"                              />  
  <op code="ED60"      clocks="12"    flags="sz-0-p0-"              mZ80="IN    H,(C)"                              />  
  <op code="ED68"      clocks="12"    flags="sz-0-p0-"              mZ80="IN    L,(C)"                              />  
  <op code="3C"        clocks="4"     flags="sz-h-v0-"              mZ80="INC   A"          m8080="INR   A"           />  
  <op code="04"        clocks="4"     flags="sz-h-v0-"              mZ80="INC   B"          m8080="INR   B"           />  
  <op code="0C"        clocks="4"     flags="sz-h-v0-"              mZ80="INC   C"          m8080="INR   C"           />  
  <op code="14"        clocks="4"     flags="sz-h-v0-"              mZ80="INC   D"          m8080="INR   D"           />  
  <op code="1C"        clocks="4"     flags="sz-h-v0-"              mZ80="INC   E"          m8080="INR   E"           />  
  <op code="24"        clocks="4"     flags="sz-h-v0-"              mZ80="INC   H"          m8080="INR   H"           />  
  <op code="2C"        clocks="4"     flags="sz-h-v0-"              mZ80="INC   L"          m8080="INR   L"           />  
  <op code="34"        clocks="11"    flags="sz-h-v0-"   bus="rw"   mZ80="INC   (HL)"       m8080="INR   M"           />  
  <op code="DD34ii"    clocks="23"    flags="sz-h-v0-"   bus="rw"   mZ80="INC   (IX+i)"                            />  
  <op code="FD34ii"    clocks="23"    flags="sz-h-v0-"   bus="rw"   mZ80="INC   (IY+i)"                            />  
  <op code="03"        clocks="6"     flags="--------"              mZ80="INC   BC"         m8080="INX   B"           />  
  <op code="13"        clocks="6"     flags="--------"              mZ80="INC   DE"         m8080="INX   D"           />  
  <op code="23"        clocks="6"     flags="--------"              mZ80="INC   HL"         m8080="INX   H"           />  
  <op code="33"        clocks="6"     flags="--------"              mZ80="INC   SP"         m8080="INX   SP"          />  
  <op code="DD23"      clocks="10"    flags="--------"              mZ80="INC   IX"                                />  
  <op code="FD23"      clocks="10"    flags="--------"              mZ80="INC   IY"                                />  
  <op code="C3mlmm"    clocks="10"    flags="--------"              mZ80="JP    m"          m8080="JMP   m"           mCish="GOTO m"/>  
  <op code="C2mlmm"    clocks="10/10" flags="--------"              mZ80="JP    NZ,m"       m8080="JNZ   m"           />  
  <op code="CAmlmm"    clocks="10/10" flags="--------"              mZ80="JP    Z,m"        m8080="JZ    m"            />  
  <op code="D2mlmm"    clocks="10/10" flags="--------"              mZ80="JP    NC,m"       m8080="JNC   m"           />  
  <op code="DAmlmm"    clocks="10/10" flags="--------"              mZ80="JP    C,m"        m8080="JC    m"            />  
  <op code="E2mlmm"    clocks="10/10" flags="--------"              mZ80="JP    PO,m"       m8080="JPO   m"           />  
  <op code="EAmlmm"    clocks="10/10" flags="--------"              mZ80="JP    PE,m"       m8080="JPE   m"           />  
  <op code="F2mlmm"    clocks="10/10" flags="--------"              mZ80="JP    P,m"        m8080="JP    m"            />  
  <op code="FAmlmm"    clocks="10/10" flags="--------"              mZ80="JP    M,m"        m8080="JM    m"            />  
  <op code="E9"        clocks="4"     flags="--------"   bus="r"    mZ80="JP    (HL)"       m8080="PCHL"            />  
  <op code="DDE9"      clocks="8"     flags="--------"   bus="r"    mZ80="JP    (IX)"                               />  
  <op code="FDE9"      clocks="8"     flags="--------"   bus="r"    mZ80="JP    (IY)"                               />  
  <op code="18rr"      clocks="12"    flags="--------"              mZ80="JR    r"                                  />  
  <op code="20rr"      clocks="12/7"  flags="--------"              mZ80="JR    NZ,r"                               />  
  <op code="28rr"      clocks="12/7"  flags="--------"              mZ80="JR    Z,r"                                />  
  <op code="30rr"      clocks="12/7"  flags="--------"              mZ80="JR    NC,r"                               />  
  <op code="38rr"      clocks="12/7"  flags="--------"              mZ80="JR    C,r"                                />  
  <op code="7F"        clocks="4"     flags="--------"              mZ80="LD    A,A"        m8080="MOV   A,A"         />  
  <op code="78"        clocks="4"     flags="--------"              mZ80="LD    A,B"        m8080="MOV   A,B"         />  
  <op code="79"        clocks="4"     flags="--------"              mZ80="LD    A,C"        m8080="MOV   A,C"         mCish="A=C"/>  
  <op code="7A"        clocks="4"     flags="--------"              mZ80="LD    A,D"        m8080="MOV   A,D"         />  
  <op code="7B"        clocks="4"     flags="--------"              mZ80="LD    A,E"        m8080="MOV   A,E"         />  
  <op code="7C"        clocks="4"     flags="--------"              mZ80="LD    A,H"        m8080="MOV   A,H"         />  
  <op code="7D"        clocks="4"     flags="--------"              mZ80="LD    A,L"        m8080="MOV   A,L"         />  
  <op code="DD7D"      clocks="?"     flags="--------"              mZ80="LD    A,IXL"                              />  
  <op code="FD6F"      clocks="?"     flags="--------"              mZ80="LD    IXH,A"                              />  
  <op code="7E"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    A,(HL)"     m8080="MOV   A,M"         />  
  <op code="0A"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    A,(BC)"     m8080="LDAX  B"          />  
  <op code="1A"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    A,(DE)"     m8080="LDAX  D"          />  
  <op code="3Atltm"    clocks="13"    flags="--------"   bus="r"    mZ80="LD    A,(t)"      m8080="LDA   t"           />  
  <op code="DD7Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    A,(IX+i)"                           />  
  <op code="FD7Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    A,(IY+i)"                           />  
  <op code="47"        clocks="4"     flags="--------"              mZ80="LD    B,A"        m8080="MOV   B,A"         />  
  <op code="40"        clocks="4"     flags="--------"              mZ80="LD    B,B"        m8080="MOV   B,B"         />  
  <op code="41"        clocks="4"     flags="--------"              mZ80="LD    B,C"        m8080="MOV   B,C"         />  
  <op code="42"        clocks="4"     flags="--------"              mZ80="LD    B,D"        m8080="MOV   B,D"         />  
  <op code="43"        clocks="4"     flags="--------"              mZ80="LD    B,E"        m8080="MOV   B,E"         />  
  <op code="44"        clocks="4"     flags="--------"              mZ80="LD    B,H"        m8080="MOV   B,H"         />  
  <op code="45"        clocks="4"     flags="--------"              mZ80="LD    B,L"        m8080="MOV   B,L"         />  
  <op code="46"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    B,(HL)"     m8080="MOV   B,M"         />  
  <op code="DD46ii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    B,(IX+i)"                           />  
  <op code="FD46ii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    B,(IY+i)"                           />  
  <op code="4F"        clocks="4"     flags="--------"              mZ80="LD    C,A"        m8080="MOV   C,A"         />  
  <op code="48"        clocks="4"     flags="--------"              mZ80="LD    C,B"        m8080="MOV   C,B"         />  
  <op code="49"        clocks="4"     flags="--------"              mZ80="LD    C,C"        m8080="MOV   C,C"         />  
  <op code="4A"        clocks="4"     flags="--------"              mZ80="LD    C,D"        m8080="MOV   C,D"         />  
  <op code="4B"        clocks="4"     flags="--------"              mZ80="LD    C,E"        m8080="MOV   C,E"         />  
  <op code="4C"        clocks="4"     flags="--------"              mZ80="LD    C,H"        m8080="MOV   C,H"         />  
  <op code="4D"        clocks="4"     flags="--------"              mZ80="LD    C,L"        m8080="MOV   C,L"         />  
  <op code="4E"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    C,(HL)"     m8080="MOV   C,M"         />  
  <op code="DD4Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    C,(IX+i)"                           />  
  <op code="FD4Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    C,(IY+i)"                           />  
  <op code="57"        clocks="4"     flags="--------"              mZ80="LD    D,A"        m8080="MOV   D,A"         />  
  <op code="50"        clocks="4"     flags="--------"              mZ80="LD    D,B"        m8080="MOV   D,B"         />  
  <op code="51"        clocks="4"     flags="--------"              mZ80="LD    D,C"        m8080="MOV   D,C"         />  
  <op code="52"        clocks="4"     flags="--------"              mZ80="LD    D,D"        m8080="MOV   D,D"         />  
  <op code="53"        clocks="4"     flags="--------"              mZ80="LD    D,E"        m8080="MOV   D,E"         />  
  <op code="54"        clocks="4"     flags="--------"              mZ80="LD    D,H"        m8080="MOV   D,H"         />  
  <op code="55"        clocks="4"     flags="--------"              mZ80="LD    D,L"        m8080="MOV   D,L"         />  
  <op code="56"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    D,(HL)"     m8080="MOV   D,M"         />  
  <op code="DD56ii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    D,(IX+i)"                           />  
  <op code="FD56ii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    D,(IY+i)"                           />  
  <op code="5F"        clocks="4"     flags="--------"              mZ80="LD    E,A"        m8080="MOV   E,A"         />  
  <op code="58"        clocks="4"     flags="--------"              mZ80="LD    E,B"        m8080="MOV   E,B"         />  
  <op code="59"        clocks="4"     flags="--------"              mZ80="LD    E,C"        m8080="MOV   E,C"         />  
  <op code="5A"        clocks="4"     flags="--------"              mZ80="LD    E,D"        m8080="MOV   E,D"         />  
  <op code="5B"        clocks="4"     flags="--------"              mZ80="LD    E,E"        m8080="MOV   E,E"         />  
  <op code="5C"        clocks="4"     flags="--------"              mZ80="LD    E,H"        m8080="MOV   E,H"         />  
  <op code="5D"        clocks="4"     flags="--------"              mZ80="LD    E,L"        m8080="MOV   E,L"         />  
  <op code="5E"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    E,(HL)"     m8080="MOV   E,M"         />  
  <op code="DD5Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    E,(IX+i)"                           />  
  <op code="FD5Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    E,(IY+i)"                           />  
  <op code="67"        clocks="4"     flags="--------"              mZ80="LD    H,A"        m8080="MOV   H,A"         />  
  <op code="60"        clocks="4"     flags="--------"              mZ80="LD    H,B"        m8080="MOV   H,B"         />  
  <op code="61"        clocks="4"     flags="--------"              mZ80="LD    H,C"        m8080="MOV   H,C"         />  
  <op code="62"        clocks="4"     flags="--------"              mZ80="LD    H,D"        m8080="MOV   H,D"         />  
  <op code="FD62"      clocks="?"     flags="--------"              mZ80="LD    IYH,D"                              />  
  <op code="63"        clocks="4"     flags="--------"              mZ80="LD    H,E"        m8080="MOV   H,E"         />  
  <op code="64"        clocks="4"     flags="--------"              mZ80="LD    H,H"        m8080="MOV   H,H"         />  
  <op code="65"        clocks="4"     flags="--------"              mZ80="LD    H,L"        m8080="MOV   H,L"         />  
  <op code="66"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    H,(HL)"     m8080="MOV   H,M"         />  
  <op code="DD66ii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    H,(IX+i)"                           />  
  <op code="FD66ii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    H,(IY+i)"                           />  
  <op code="6F"        clocks="4"     flags="--------"              mZ80="LD    L,A"        m8080="MOV   L,A"         />  
  <op code="DD6F"      clocks="?"     flags="--------"              mZ80="LD    IXL,A"                              />  
  <op code="68"        clocks="4"     flags="--------"              mZ80="LD    L,B"        m8080="MOV   L,B"         />  
  <op code="69"        clocks="4"     flags="--------"              mZ80="LD    L,C"        m8080="MOV   L,C"         />  
  <op code="6A"        clocks="4"     flags="--------"              mZ80="LD    L,D"        m8080="MOV   L,D"         />  
  <op code="6B"        clocks="4"     flags="--------"              mZ80="LD    L,E"        m8080="MOV   L,E"         />  
  <op code="6C"        clocks="4"     flags="--------"              mZ80="LD    L,H"        m8080="MOV   L,H"         />  
  <op code="6D"        clocks="4"     flags="--------"              mZ80="LD    L,L"        m8080="MOV   L,L"         />  
  <op code="6E"        clocks="7"     flags="--------"   bus="r"    mZ80="LD    L,(HL)"     m8080="MOV   L,M"         />  
  <op code="DD6Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    L,(IX+i)"                           />  
  <op code="FD6Eii"    clocks="19"    flags="--------"   bus="r"    mZ80="LD    L,(IY+i)"                           />  
  <op code="77"        clocks="7"     flags="--------"              mZ80="LD    (HL),A"     m8080="MOV   M,A"         />  
  <op code="70"        clocks="7"     flags="--------"              mZ80="LD    (HL),B"     m8080="MOV   M,B"         />  
  <op code="71"        clocks="7"     flags="--------"              mZ80="LD    (HL),C"     m8080="MOV   M,C"         />  
  <op code="72"        clocks="7"     flags="--------"              mZ80="LD    (HL),D"     m8080="MOV   M,D"         />  
  <op code="73"        clocks="7"     flags="--------"              mZ80="LD    (HL),E"     m8080="MOV   M,E"         />  
  <op code="74"        clocks="7"     flags="--------"              mZ80="LD    (HL),H"     m8080="MOV   M,H"         />  
  <op code="75"        clocks="7"     flags="--------"              mZ80="LD    (HL),L"     m8080="MOV   M,L"         />  
  <op code="DD77ii"    clocks="19"    flags="--------"              mZ80="LD    (IX+i),A"                           />  
  <op code="DD70ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IX+i),B"                           />  
  <op code="DD71ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IX+i),C"                           />  
  <op code="DD72ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IX+i),D"                           />  
  <op code="DD73ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IX+i),E"                           />  
  <op code="DD74ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IX+i),H"                           />  
  <op code="DD75ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IX+i),L"                           />  
  <op code="DD36iibb"  clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IX+i),b"                           />  
  <op code="FD77ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),A"                           />  
  <op code="FD70ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),B"                           />  
  <op code="FD71ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),C"                           />  
  <op code="FD72ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),D"                           />  
  <op code="FD73ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),E"                           />  
  <op code="FD74ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),H"                           />  
  <op code="FD75ii"    clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),L"                           />  
  <op code="FD36iibb"  clocks="19"    flags="--------"   bus="w"    mZ80="LD    (IY+i),b"                           />  
  <op code="3Ebb"      clocks="7"     flags="--------"              mZ80="LD    A,b"        m8080="MVI   A,b"         mCish="A=b"/>  
  <op code="06bb"      clocks="7"     flags="--------"              mZ80="LD    B,b"        m8080="MVI   B,b"         />  
  <op code="0Ebb"      clocks="7"     flags="--------"              mZ80="LD    C,b"        m8080="MVI   C,b"         />  
  <op code="16bb"      clocks="7"     flags="--------"              mZ80="LD    D,b"        m8080="MVI   D,b"         />  
  <op code="1Ebb"      clocks="7"     flags="--------"              mZ80="LD    E,b"        m8080="MVI   E,b"         />  
  <op code="26bb"      clocks="7"     flags="--------"              mZ80="LD    H,b"        m8080="MVI   H,b"         mCish="H=b"/>  
  <op code="2Ebb"      clocks="7"     flags="--------"              mZ80="LD    L,b"        m8080="MVI   L,b"         />  
  <op code="36bb"      clocks="10"    flags="--------"   bus="w"    mZ80="LD    (HL),b"     m8080="MVI   M,b"         />  
  <op code="02"        clocks="7"     flags="--------"   bus="w"    mZ80="LD    (BC),A"     m8080="STAX  B"          />  
  <op code="12"        clocks="7"     flags="--------"   bus="w"    mZ80="LD    (DE),A"     m8080="STAX  D"          />  
  <op code="32tltm"    clocks="13"    flags="--------"   bus="w"    mZ80="LD    (t),A"      m8080="STA   t"           mCish="BYTE[t]=A"/>  
  <op code="01wlwm"    clocks="10"    flags="--------"              mZ80="LD    BC,w"       m8080="LXI   B,w"         />  
  <op code="11wlwm"    clocks="10"    flags="--------"              mZ80="LD    DE,w"       m8080="LXI   D,w"         />  
  <op code="21wlwm"    clocks="10"    flags="--------"              mZ80="LD    HL,w"       m8080="LXI   H,w"         />  
  <op code="31wlwm"    clocks="10"    flags="--------"              mZ80="LD    SP,w"       m8080="LXI   SP,w"        mCish="SP=w"/>  
  <op code="DD21wlwm"  clocks="14"    flags="--------"              mZ80="LD    IX,w"                               />  
  <op code="FD21wlwm"  clocks="14"    flags="--------"              mZ80="LD    IY,w"                               />  
  <op code="2Atltm"    clocks="16"    flags="--------"   bus="r"    mZ80="LD    HL,(t)"     m8080="LHLD  t"          />  
  <op code="ED4Btltm"  clocks="20"    flags="--------"   bus="r"    mZ80="LD    BC,(t)"                             />  
  <op code="ED5Btltm"  clocks="20"    flags="--------"   bus="r"    mZ80="LD    DE,(t)"                             />  
  <op code="ED6Btltm"  clocks="20"    flags="--------"   bus="r"    mZ80="LD    HL,(t)"                             />  
  <op code="ED7Btltm"  clocks="20"    flags="--------"   bus="r"    mZ80="LD    SP,(t)"                             />  
  <op code="DD2Atltm"  clocks="20"    flags="--------"   bus="r"    mZ80="LD    IX,(t)"                             />  
  <op code="FD2Atltm"  clocks="20"    flags="--------"   bus="r"    mZ80="LD    IY,(t)"                             />  
  <op code="22tltm"    clocks="16"    flags="--------"   bus="w"    mZ80="LD    (t),HL"     m8080="SHLD  t"          />  
  <op code="ED43tltm"  clocks="20"    flags="--------"   bus="w"    mZ80="LD    (t),BC"                             />  
  <op code="ED53tltm"  clocks="20"    flags="--------"   bus="w"    mZ80="LD    (t),DE"                             />  
  <op code="DD22tltm"  clocks="20"    flags="--------"   bus="w"    mZ80="LD    (t),IX"                             />  
  <op code="FD22tltm"  clocks="20"    flags="--------"   bus="w"    mZ80="LD    (t),IY"                             />  
  <op code="ED73tltm"  clocks="20"    flags="--------"   bus="w"    mZ80="LD    (t),SP"                             />  
  <op code="F9"        clocks="6"     flags="--------"              mZ80="LD    SP,HL"      m8080="SPHL"            />  
  <op code="DDF9"      clocks="10"    flags="--------"              mZ80="LD    SP,IX"                              />  
  <op code="FDF9"      clocks="10"    flags="--------"              mZ80="LD    SP,IY"                              />  
  <op code="ED47"      clocks="9"     flags="--------"              mZ80="LD    I,A"                                />  
  <op code="ED57"      clocks="9"     flags="sz-0-i0-"              mZ80="LD    A,I"                                />  
  <op code="ED4F"      clocks="9"     flags="--------"              mZ80="LD    R,A"                                />  
  <op code="ED5F"      clocks="9"     flags="sz-0-i0-"              mZ80="LD    A,R"                                />  
  <op code="EDA8"      clocks="16"    flags="---0-y0-"   bus="rw"   mZ80="LDD"                                   />  
  <op code="EDA0"      clocks="16"    flags="---0-y0-"   bus="rw"   mZ80="LDI"                                   />  
  <op code="ED44"      clocks="8"     flags="sz-u-v1c"              mZ80="NEG"                                   />  
  <op code="00"        clocks="4"     flags="--------"              mZ80="NOP"              m8080="NOP"             />  
  <op code="D3oo"      clocks="11"    flags="--------"   bus="o"    mZ80="OUT   (o),A"      m8080="OUT   o"           mCish="PORT[o]=A"/>  
  <op code="ED79"      clocks="12"    flags="--------"   bus="o"    mZ80="OUT   (C),A"                             />  
  <op code="ED41"      clocks="12"    flags="--------"   bus="o"    mZ80="OUT   (C),B"                             />  
  <op code="ED49"      clocks="12"    flags="--------"   bus="o"    mZ80="OUT   (C),C"                             />  
  <op code="ED51"      clocks="12"    flags="--------"   bus="o"    mZ80="OUT   (C),D"                             />  
  <op code="ED59"      clocks="12"    flags="--------"   bus="o"    mZ80="OUT   (C),E"                             />  
  <op code="ED61"      clocks="12"    flags="--------"   bus="o"    mZ80="OUT   (C),H"                             />  
  <op code="ED69"      clocks="12"    flags="--------"   bus="o"    mZ80="OUT   (C),L"                             />  
  <op code="CB87"      clocks="8"     flags="--------"              mZ80="RES   0,A"                               />  
  <op code="CB80"      clocks="8"     flags="--------"              mZ80="RES   0,B"                               />  
  <op code="CB81"      clocks="8"     flags="--------"              mZ80="RES   0,C"                               />  
  <op code="CB82"      clocks="8"     flags="--------"              mZ80="RES   0,D"                               />  
  <op code="CB83"      clocks="8"     flags="--------"              mZ80="RES   0,E"                               />  
  <op code="CB84"      clocks="8"     flags="--------"              mZ80="RES   0,H"                               />  
  <op code="CB85"      clocks="8"     flags="--------"              mZ80="RES   0,L"                               />  
  <op code="CB8F"      clocks="8"     flags="--------"              mZ80="RES   1,A"                               />  
  <op code="CB88"      clocks="8"     flags="--------"              mZ80="RES   1,B"                               />  
  <op code="CB89"      clocks="8"     flags="--------"              mZ80="RES   1,C"                               />  
  <op code="CB8A"      clocks="8"     flags="--------"              mZ80="RES   1,D"                               />  
  <op code="CB8B"      clocks="8"     flags="--------"              mZ80="RES   1,E"                               />  
  <op code="CB8C"      clocks="8"     flags="--------"              mZ80="RES   1,H"                               />  
  <op code="CB8D"      clocks="8"     flags="--------"              mZ80="RES   1,L"                               />  
  <op code="CB97"      clocks="8"     flags="--------"              mZ80="RES   2,A"                               />  
  <op code="CB90"      clocks="8"     flags="--------"              mZ80="RES   2,B"                               />  
  <op code="CB91"      clocks="8"     flags="--------"              mZ80="RES   2,C"                               />  
  <op code="CB92"      clocks="8"     flags="--------"              mZ80="RES   2,D"                               />  
  <op code="CB93"      clocks="8"     flags="--------"              mZ80="RES   2,E"                               />  
  <op code="CB94"      clocks="8"     flags="--------"              mZ80="RES   2,H"                               />  
  <op code="CB95"      clocks="8"     flags="--------"              mZ80="RES   2,L"                               />  
  <op code="CB9F"      clocks="8"     flags="--------"              mZ80="RES   3,A"                               />  
  <op code="CB98"      clocks="8"     flags="--------"              mZ80="RES   3,B"                               />  
  <op code="CB99"      clocks="8"     flags="--------"              mZ80="RES   3,C"                               />  
  <op code="CB9A"      clocks="8"     flags="--------"              mZ80="RES   3,D"                               />  
  <op code="CB9B"      clocks="8"     flags="--------"              mZ80="RES   3,E"                               />  
  <op code="CB9C"      clocks="8"     flags="--------"              mZ80="RES   3,H"                               />  
  <op code="CB9D"      clocks="8"     flags="--------"              mZ80="RES   3,L"                               />  
  <op code="CBA7"      clocks="8"     flags="--------"              mZ80="RES   4,A"                               />  
  <op code="CBA0"      clocks="8"     flags="--------"              mZ80="RES   4,B"                               />  
  <op code="CBA1"      clocks="8"     flags="--------"              mZ80="RES   4,C"                               />  
  <op code="CBA2"      clocks="8"     flags="--------"              mZ80="RES   4,D"                               />  
  <op code="CBA3"      clocks="8"     flags="--------"              mZ80="RES   4,E"                               />  
  <op code="CBA4"      clocks="8"     flags="--------"              mZ80="RES   4,H"                               />  
  <op code="CBA5"      clocks="8"     flags="--------"              mZ80="RES   4,L"                               />  
  <op code="CBAF"      clocks="8"     flags="--------"              mZ80="RES   5,A"                               />  
  <op code="CBA8"      clocks="8"     flags="--------"              mZ80="RES   5,B"                               />  
  <op code="CBA9"      clocks="8"     flags="--------"              mZ80="RES   5,C"                               />  
  <op code="CBAA"      clocks="8"     flags="--------"              mZ80="RES   5,D"                               />  
  <op code="CBAB"      clocks="8"     flags="--------"              mZ80="RES   5,E"                               />  
  <op code="CBAC"      clocks="8"     flags="--------"              mZ80="RES   5,H"                               />  
  <op code="CBAD"      clocks="8"     flags="--------"              mZ80="RES   5,L"                               />  
  <op code="CBB7"      clocks="8"     flags="--------"              mZ80="RES   6,A"                               />  
  <op code="CBB0"      clocks="8"     flags="--------"              mZ80="RES   6,B"                               />  
  <op code="CBB1"      clocks="8"     flags="--------"              mZ80="RES   6,C"                               />  
  <op code="CBB2"      clocks="8"     flags="--------"              mZ80="RES   6,D"                               />  
  <op code="CBB3"      clocks="8"     flags="--------"              mZ80="RES   6,E"                               />  
  <op code="CBB4"      clocks="8"     flags="--------"              mZ80="RES   6,H"                               />  
  <op code="CBB5"      clocks="8"     flags="--------"              mZ80="RES   6,L"                               />  
  <op code="CBBF"      clocks="8"     flags="--------"              mZ80="RES   7,A"                               />  
  <op code="CBB8"      clocks="8"     flags="--------"              mZ80="RES   7,B"                               />  
  <op code="CBB9"      clocks="8"     flags="--------"              mZ80="RES   7,C"                               />  
  <op code="CBBA"      clocks="8"     flags="--------"              mZ80="RES   7,D"                               />  
  <op code="CBBB"      clocks="8"     flags="--------"              mZ80="RES   7,E"                               />  
  <op code="CBBC"      clocks="8"     flags="--------"              mZ80="RES   7,H"                               />  
  <op code="CBBD"      clocks="8"     flags="--------"              mZ80="RES   7,L"                               />  
  <op code="CB86"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   0,(HL)"                            />  
  <op code="CB8E"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   1,(HL)"                            />  
  <op code="CB96"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   2,(HL)"                            />  
  <op code="CB9E"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   3,(HL)"                            />  
  <op code="CBA6"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   4,(HL)"                            />  
  <op code="CBAE"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   5,(HL)"                            />  
  <op code="CBB6"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   6,(HL)"                            />  
  <op code="CBBE"      clocks="15"    flags="--------"   bus="r"    mZ80="RES   7,(HL)"                            />  
  <op code="DDCBii86"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   0,(IX+i)"                          />  
  <op code="FDCBii86"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   0,(IY+i)"                          />  
  <op code="DDCBii8E"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   1,(IX+i)"                          />  
  <op code="FDCBii8E"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   1,(IY+i)"                          />  
  <op code="DDCBii96"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   2,(IX+i)"                          />  
  <op code="FDCBii96"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   2,(IY+i)"                          />  
  <op code="DDCBii9E"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   3,(IX+i)"                          />  
  <op code="FDCBii9E"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   3,(IY+i)"                          />  
  <op code="DDCBiiA6"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   4,(IX+i)"                          />  
  <op code="FDCBiiA6"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   4,(IY+i)"                          />  
  <op code="DDCBiiAE"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   5,(IX+i)"                          />  
  <op code="FDCBiiAE"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   5,(IY+i)"                          />  
  <op code="DDCBiiB6"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   6,(IX+i)"                          />  
  <op code="FDCBiiB6"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   6,(IY+i)"                          />  
  <op code="DDCBiiBE"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   7,(IX+i)"                          />  
  <op code="FDCBiiBE"  clocks="15"    flags="--------"   bus="r"    mZ80="RES   7,(IY+i)"                          />  
  <op code="CBC7"      clocks="8"     flags="--------"              mZ80="SET   0,A"                               />  
  <op code="CBC0"      clocks="8"     flags="--------"              mZ80="SET   0,B"                               />  
  <op code="CBC1"      clocks="8"     flags="--------"              mZ80="SET   0,C"                               />  
  <op code="CBC2"      clocks="8"     flags="--------"              mZ80="SET   0,D"                               />  
  <op code="CBC3"      clocks="8"     flags="--------"              mZ80="SET   0,E"                               />  
  <op code="CBC4"      clocks="8"     flags="--------"              mZ80="SET   0,H"                               />  
  <op code="CBC5"      clocks="8"     flags="--------"              mZ80="SET   0,L"                               />  
  <op code="CBCF"      clocks="8"     flags="--------"              mZ80="SET   1,A"                               />  
  <op code="CBC8"      clocks="8"     flags="--------"              mZ80="SET   1,B"                               />  
  <op code="CBC9"      clocks="8"     flags="--------"              mZ80="SET   1,C"                               />  
  <op code="CBCA"      clocks="8"     flags="--------"              mZ80="SET   1,D"                               />  
  <op code="CBCB"      clocks="8"     flags="--------"              mZ80="SET   1,E"                               />  
  <op code="CBCC"      clocks="8"     flags="--------"              mZ80="SET   1,H"                               />  
  <op code="CBCD"      clocks="8"     flags="--------"              mZ80="SET   1,L"                               />  
  <op code="CBD7"      clocks="8"     flags="--------"              mZ80="SET   2,A"                               />  
  <op code="CBD0"      clocks="8"     flags="--------"              mZ80="SET   2,B"                               />  
  <op code="CBD1"      clocks="8"     flags="--------"              mZ80="SET   2,C"                               />  
  <op code="CBD2"      clocks="8"     flags="--------"              mZ80="SET   2,D"                               />  
  <op code="CBD3"      clocks="8"     flags="--------"              mZ80="SET   2,E"                               />  
  <op code="CBD4"      clocks="8"     flags="--------"              mZ80="SET   2,H"                               />  
  <op code="CBD5"      clocks="8"     flags="--------"              mZ80="SET   2,L"                               />  
  <op code="CBDF"      clocks="8"     flags="--------"              mZ80="SET   3,A"                               />  
  <op code="CBD8"      clocks="8"     flags="--------"              mZ80="SET   3,B"                               />  
  <op code="CBD9"      clocks="8"     flags="--------"              mZ80="SET   3,C"                               />  
  <op code="CBDA"      clocks="8"     flags="--------"              mZ80="SET   3,D"                               />  
  <op code="CBDB"      clocks="8"     flags="--------"              mZ80="SET   3,E"                               />  
  <op code="CBDC"      clocks="8"     flags="--------"              mZ80="SET   3,H"                               />  
  <op code="CBDD"      clocks="8"     flags="--------"              mZ80="SET   3,L"                               />  
  <op code="CBE7"      clocks="8"     flags="--------"              mZ80="SET   4,A"                               />  
  <op code="CBE0"      clocks="8"     flags="--------"              mZ80="SET   4,B"                               />  
  <op code="CBE1"      clocks="8"     flags="--------"              mZ80="SET   4,C"                               />  
  <op code="CBE2"      clocks="8"     flags="--------"              mZ80="SET   4,D"                               />  
  <op code="CBE3"      clocks="8"     flags="--------"              mZ80="SET   4,E"                               />  
  <op code="CBE4"      clocks="8"     flags="--------"              mZ80="SET   4,H"                               />  
  <op code="CBE5"      clocks="8"     flags="--------"              mZ80="SET   4,L"                               />  
  <op code="CBEF"      clocks="8"     flags="--------"              mZ80="SET   5,A"                               />  
  <op code="CBE8"      clocks="8"     flags="--------"              mZ80="SET   5,B"                               />  
  <op code="CBE9"      clocks="8"     flags="--------"              mZ80="SET   5,C"                               />  
  <op code="CBEA"      clocks="8"     flags="--------"              mZ80="SET   5,D"                               />  
  <op code="CBEB"      clocks="8"     flags="--------"              mZ80="SET   5,E"                               />  
  <op code="CBEC"      clocks="8"     flags="--------"              mZ80="SET   5,H"                               />  
  <op code="CBED"      clocks="8"     flags="--------"              mZ80="SET   5,L"                               />  
  <op code="CBF7"      clocks="8"     flags="--------"              mZ80="SET   6,A"                               />  
  <op code="CBF0"      clocks="8"     flags="--------"              mZ80="SET   6,B"                               />  
  <op code="CBF1"      clocks="8"     flags="--------"              mZ80="SET   6,C"                               />  
  <op code="CBF2"      clocks="8"     flags="--------"              mZ80="SET   6,D"                               />  
  <op code="CBF3"      clocks="8"     flags="--------"              mZ80="SET   6,E"                               />  
  <op code="CBF4"      clocks="8"     flags="--------"              mZ80="SET   6,H"                               />  
  <op code="CBF5"      clocks="8"     flags="--------"              mZ80="SET   6,L"                               />  
  <op code="CBFF"      clocks="8"     flags="--------"              mZ80="SET   7,A"                               />  
  <op code="CBF8"      clocks="8"     flags="--------"              mZ80="SET   7,B"                               />  
  <op code="CBF9"      clocks="8"     flags="--------"              mZ80="SET   7,C"                               />  
  <op code="CBFA"      clocks="8"     flags="--------"              mZ80="SET   7,D"                               />  
  <op code="CBFB"      clocks="8"     flags="--------"              mZ80="SET   7,E"                               />  
  <op code="CBFC"      clocks="8"     flags="--------"              mZ80="SET   7,H"                               />  
  <op code="CBFD"      clocks="8"     flags="--------"              mZ80="SET   7,L"                               />  
  <op code="CBC6"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   0,(HL)"                            />  
  <op code="CBCE"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   1,(HL)"                            />  
  <op code="CBD6"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   2,(HL)"                            />  
  <op code="CBDE"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   3,(HL)"                            />  
  <op code="CBE6"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   4,(HL)"                            />  
  <op code="CBEE"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   5,(HL)"                            />  
  <op code="CBF6"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   6,(HL)"                            />  
  <op code="CBFE"      clocks="15"    flags="--------"   bus="r"    mZ80="SET   7,(HL)"                            />  
  <op code="DDCBiiC6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   0,(IX+i)"                          />  
  <op code="FDCBiiC6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   0,(IY+i)"                          />  
  <op code="DDCBiiCE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   1,(IX+i)"                          />  
  <op code="FDCBiiCE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   1,(IY+i)"                          />  
  <op code="DDCBiiD6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   2,(IX+i)"                          />  
  <op code="FDCBiiD6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   2,(IY+i)"                          />  
  <op code="DDCBiiDE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   3,(IX+i)"                          />  
  <op code="FDCBiiDE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   3,(IY+i)"                          />  
  <op code="DDCBiiE6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   4,(IX+i)"                          />  
  <op code="FDCBiiE6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   4,(IY+i)"                          />  
  <op code="DDCBiiEE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   5,(IX+i)"                          />  
  <op code="FDCBiiEE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   5,(IY+i)"                          />  
  <op code="DDCBiiF6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   6,(IX+i)"                          />  
  <op code="FDCBiiF6"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   6,(IY+i)"                          />  
  <op code="DDCBiiFE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   7,(IX+i)"                          />  
  <op code="FDCBiiFE"  clocks="23"    flags="--------"   bus="r"    mZ80="SET   7,(IY+i)"                          />  
  <op code="C9"        clocks="10"    flags="--------"              mZ80="RET"              m8080="RET"             mCish="RETURN"/>  
  <op code="C1"        clocks="10"    flags="--------"   bus="r"    mZ80="POP   BC"         m8080="POP   B"           />  
  <op code="D1"        clocks="10"    flags="--------"   bus="r"    mZ80="POP   DE"         m8080="POP   D"           />  
  <op code="E1"        clocks="10"    flags="--------"   bus="r"    mZ80="POP   HL"         m8080="POP   H"           />  
  <op code="F1"        clocks="10"    flags="xxxxxxxx"   bus="r"    mZ80="POP   AF"         m8080="POP   PSW"         />  
  <op code="DDE1"      clocks="14"    flags="--------"   bus="r"    mZ80="POP   IX"                                />  
  <op code="FDE1"      clocks="14"    flags="--------"   bus="r"    mZ80="POP   IY"                                />  
  <op code="C5"        clocks="11"    flags="--------"   bus="w"    mZ80="PUSH  BC"         m8080="PUSH  B"          />  
  <op code="D5"        clocks="11"    flags="--------"   bus="w"    mZ80="PUSH  DE"         m8080="PUSH  D"          />  
  <op code="E5"        clocks="11"    flags="--------"   bus="w"    mZ80="PUSH  HL"         m8080="PUSH  H"          />  
  <op code="F5"        clocks="11"    flags="--------"   bus="w"    mZ80="PUSH  AF"         m8080="PUSH  PSW"        />  
  <op code="DDE5"      clocks="15"    flags="--------"   bus="w"    mZ80="PUSH  IX"                               />  
  <op code="FDE5"      clocks="15"    flags="--------"   bus="w"    mZ80="PUSH  IY"                               />  
  <op code="C0"        clocks="11/5"  flags="--------"              mZ80="RET   NZ"         m8080="RNZ"             />  
  <op code="C8"        clocks="11/5"  flags="--------"              mZ80="RET   Z"          m8080="RZ"              />  
  <op code="D0"        clocks="11/5"  flags="--------"              mZ80="RET   NC"         m8080="RNC"             />  
  <op code="D8"        clocks="11/5"  flags="--------"              mZ80="RET   C"          m8080="RC"              />  
  <op code="E0"        clocks="11/5"  flags="--------"              mZ80="RET   PO"         m8080="RPO"             />  
  <op code="E8"        clocks="11/5"  flags="--------"              mZ80="RET   PE"         m8080="RPE"             />  
  <op code="F0"        clocks="11/5"  flags="--------"              mZ80="RET   P"          m8080="RP"              />  
  <op code="F8"        clocks="11/5"  flags="--------"              mZ80="RET   M"          m8080="RM"              />  
  <op code="CB17"      clocks="8"     flags="sz-0-p0x"              mZ80="RL    A"                                  />  
  <op code="CB10"      clocks="8"     flags="sz-0-p0x"              mZ80="RL    B"                                  />  
  <op code="CB11"      clocks="8"     flags="sz-0-p0x"              mZ80="RL    C"                                  />  
  <op code="CB12"      clocks="8"     flags="sz-0-p0x"              mZ80="RL    D"                                  />  
  <op code="CB13"      clocks="8"     flags="sz-0-p0x"              mZ80="RL    E"                                  />  
  <op code="CB14"      clocks="8"     flags="sz-0-p0x"              mZ80="RL    H"                                  />  
  <op code="CB15"      clocks="8"     flags="sz-0-p0x"              mZ80="RL    L"                                  />  
  <op code="CB16"      clocks="15"    flags="sz-0-p0x"   bus="rw"   mZ80="RL    (HL)"                               />  
  <op code="DDCBii16"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="RL    (IX+i)"                             />  
  <op code="FDCBii16"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="RL    (IY+i)"                             />  
  <op code="17"        clocks="4"     flags="---0--0x"              mZ80="RLA"              m8080="RAL"             />  
  <op code="CB07"      clocks="8"     flags="sz-0-p0x"              mZ80="RLC   A"                                 />  
  <op code="CB00"      clocks="8"     flags="sz-0-p0x"              mZ80="RLC   B"                                 />  
  <op code="CB01"      clocks="8"     flags="sz-0-p0x"              mZ80="RLC   C"                                 />  
  <op code="CB02"      clocks="8"     flags="sz-0-p0x"              mZ80="RLC   D"                                 />  
  <op code="CB03"      clocks="8"     flags="sz-0-p0x"              mZ80="RLC   E"                                 />  
  <op code="CB04"      clocks="8"     flags="sz-0-p0x"              mZ80="RLC   H"                                 />  
  <op code="CB05"      clocks="8"     flags="sz-0-p0x"              mZ80="RLC   L"                                 />  
  <op code="CB06"      clocks="15"    flags="sz-0-p0x"   bus="rw"   mZ80="RLC   (HL)"                              />  
  <op code="DDCBii06"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="RLC   (IX+i)"                            />  
  <op code="FDCBii06"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="RLC   (IY+i)"                            />  
  <op code="07"        clocks="4"     flags="---0--0x"              mZ80="RLCA"             m8080="RLC"             />  
  <op code="CB1F"      clocks="8"     flags="sz-0-p0x"              mZ80="RR    A"                                  />  
  <op code="CB18"      clocks="8"     flags="sz-0-p0x"              mZ80="RR    B"                                  />  
  <op code="CB19"      clocks="8"     flags="sz-0-p0x"              mZ80="RR    C"                                  />  
  <op code="CB1A"      clocks="8"     flags="sz-0-p0x"              mZ80="RR    D"                                  />  
  <op code="CB1B"      clocks="8"     flags="sz-0-p0x"              mZ80="RR    E"                                  />  
  <op code="CB1C"      clocks="8"     flags="sz-0-p0x"              mZ80="RR    H"                                  />  
  <op code="CB1D"      clocks="8"     flags="sz-0-p0x"              mZ80="RR    L"                                  />  
  <op code="CB1E"      clocks="15"    flags="sz-0-p0x"              mZ80="RR    (HL)"                               />  
  <op code="DDCBii1E"  clocks="23"    flags="sz-0-p0x"              mZ80="RR    (IX+i)"                             />  
  <op code="FDCBii1E"  clocks="23"    flags="sz-0-p0x"              mZ80="RR    (IY+i)"                             />  
  <op code="1F"        clocks="4"     flags="---0--0x"              mZ80="RRA"              m8080="RAR"             />  
  <op code="CB0F"      clocks="8"     flags="sz-0-p0x"              mZ80="RRC   A"                                 />  
  <op code="CB08"      clocks="8"     flags="sz-0-p0x"              mZ80="RRC   B"                                 />  
  <op code="CB09"      clocks="8"     flags="sz-0-p0x"              mZ80="RRC   C"                                 />  
  <op code="CB0A"      clocks="8"     flags="sz-0-p0x"              mZ80="RRC   D"                                 />  
  <op code="CB0B"      clocks="8"     flags="sz-0-p0x"              mZ80="RRC   E"                                 />  
  <op code="CB0C"      clocks="8"     flags="sz-0-p0x"              mZ80="RRC   H"                                 />  
  <op code="CB0D"      clocks="8"     flags="sz-0-p0x"              mZ80="RRC   L"                                 />  
  <op code="CB0E"      clocks="15"    flags="sz-0-p0x"   bus="rw"   mZ80="RRC   (HL)"                              />  
  <op code="DDCBii0E"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="RRC   (IX+i)"                            />  
  <op code="FDCBii0E"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="RRC   (IY+i)"                            />  
  <op code="0F"        clocks="4"     flags="---0--0x"              mZ80="RRCA"             m8080="RRC"             />  
  <op code="CB27"      clocks="8"     flags="sz-0-p0x"              mZ80="SLA   A"                                 />  
  <op code="CB20"      clocks="8"     flags="sz-0-p0x"              mZ80="SLA   B"                                 />  
  <op code="CB21"      clocks="8"     flags="sz-0-p0x"              mZ80="SLA   C"                                 />  
  <op code="CB22"      clocks="8"     flags="sz-0-p0x"              mZ80="SLA   D"                                 />  
  <op code="CB23"      clocks="8"     flags="sz-0-p0x"              mZ80="SLA   E"                                 />  
  <op code="CB24"      clocks="8"     flags="sz-0-p0x"              mZ80="SLA   H"                                 />  
  <op code="CB25"      clocks="8"     flags="sz-0-p0x"              mZ80="SLA   L"                                 />  
  <op code="CB26"      clocks="15"    flags="sz-0-p0x"   bus="rw"   mZ80="SLA   (HL)"                              />  
  <op code="DDCBii26"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="SLA   (IX+i)"                            />  
  <op code="FDCBii26"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="SLA   (IY+i)"                            />  
  <op code="CB2F"      clocks="8"     flags="sz-0-p0x"              mZ80="SRA   A"                                 />  
  <op code="CB28"      clocks="8"     flags="sz-0-p0x"              mZ80="SRA   B"                                 />  
  <op code="CB29"      clocks="8"     flags="sz-0-p0x"              mZ80="SRA   C"                                 />  
  <op code="CB2A"      clocks="8"     flags="sz-0-p0x"              mZ80="SRA   D"                                 />  
  <op code="CB2B"      clocks="8"     flags="sz-0-p0x"              mZ80="SRA   E"                                 />  
  <op code="CB2C"      clocks="8"     flags="sz-0-p0x"              mZ80="SRA   H"                                 />  
  <op code="CB2D"      clocks="8"     flags="sz-0-p0x"              mZ80="SRA   L"                                 />  
  <op code="CB2E"      clocks="15"    flags="sz-0-p0x"   bus="rw"   mZ80="SRA   (HL)"                              />  
  <op code="DDCBii2E"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="SRA   (IX+i)"                            />  
  <op code="FDCBii2E"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="SRA   (IY+i)"                            />  
  <op code="CB3F"      clocks="8"     flags="sz-0-p0x"              mZ80="SRL   A"                                 />  
  <op code="CB38"      clocks="8"     flags="sz-0-p0x"              mZ80="SRL   B"                                 />  
  <op code="CB39"      clocks="8"     flags="sz-0-p0x"              mZ80="SRL   C"                                 />  
  <op code="CB3A"      clocks="8"     flags="sz-0-p0x"              mZ80="SRL   D"                                 />  
  <op code="CB3B"      clocks="8"     flags="sz-0-p0x"              mZ80="SRL   E"                                 />  
  <op code="CB3C"      clocks="8"     flags="sz-0-p0x"              mZ80="SRL   H"                                 />  
  <op code="CB3D"      clocks="8"     flags="sz-0-p0x"              mZ80="SRL   L"                                 />  
  <op code="CB3E"      clocks="15"    flags="sz-0-p0x"   bus="rw"   mZ80="SRL   (HL)"                              />  
  <op code="DDCBii3E"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="SRL   (IX+i)"                            />  
  <op code="FDCBii3E"  clocks="23"    flags="sz-0-p0x"   bus="rw"   mZ80="SRL   (IY+i)"                            />  
  <op code="C7"        clocks="11"    flags="--------"              mZ80="RST   $00"        m8080="RST   0"           />  
  <op code="CF"        clocks="11"    flags="--------"              mZ80="RST   $08"        m8080="RST   1"           />  
  <op code="D7"        clocks="11"    flags="--------"              mZ80="RST   $10"        m8080="RST   2"           />  
  <op code="DF"        clocks="11"    flags="--------"              mZ80="RST   $18"        m8080="RST   3"           />  
  <op code="E7"        clocks="11"    flags="--------"              mZ80="RST   $20"        m8080="RST   4"           />  
  <op code="EF"        clocks="11"    flags="--------"              mZ80="RST   $28"        m8080="RST   5"           />  
  <op code="F7"        clocks="11"    flags="--------"              mZ80="RST   $30"        m8080="RST   6"           />  
  <op code="FF"        clocks="11"    flags="--------"              mZ80="RST   $38"        m8080="RST   7"           />  
  <op code="37"        clocks="4"     flags="---0--01"              mZ80="SCF"              m8080="STC"             />  
  <op code="9F"        clocks="4"     flags="sz-u-v1b"              mZ80="SBC   A"          m8080="SBB   A"           />  
  <op code="98"        clocks="4"     flags="sz-u-v1b"              mZ80="SBC   B"          m8080="SBB   B"           />  
  <op code="99"        clocks="4"     flags="sz-u-v1b"              mZ80="SBC   C"          m8080="SBB   C"           />  
  <op code="9A"        clocks="4"     flags="sz-u-v1b"              mZ80="SBC   D"          m8080="SBB   D"           />  
  <op code="9B"        clocks="4"     flags="sz-u-v1b"              mZ80="SBC   E"          m8080="SBB   E"           />  
  <op code="9C"        clocks="4"     flags="sz-u-v1b"              mZ80="SBC   H"          m8080="SBB   H"           />  
  <op code="9D"        clocks="4"     flags="sz-u-v1b"              mZ80="SBC   L"          m8080="SBB   L"           />  
  <op code="9E"        clocks="7"     flags="sz-u-v1b"   bus="r"    mZ80="SBC   (HL)"       m8080="SBB   M"           />  
  <op code="DD9Eii"    clocks="19"    flags="sz-u-v1b*"  bus="r"    mZ80="SBC   A,(IX+i)"                          />  
  <op code="FD9Eii"    clocks="19"    flags="sz-u-v1b"   bus="r"    mZ80="SBC   A,(IY+i)"                          />  
  <op code="DEbb"      clocks="7"     flags="sz-u-v1b"              mZ80="SBC   A,b"        m8080="SBI   b"           />  
  <op code="ED42"      clocks="15"    flags="sz-U-v1b"              mZ80="SBC   HL,BC"                             />  
  <op code="ED52"      clocks="15"    flags="sz-U-v1b"              mZ80="SBC   HL,DE"                             />  
  <op code="ED62"      clocks="15"    flags="sz-U-v1b"              mZ80="SBC   HL,HL"                             />  
  <op code="ED72"      clocks="15"    flags="sz-U-v1b"              mZ80="SBC   HL,SP"                             />  
  <op code="97"        clocks="4"     flags="sz-u-v1b"              mZ80="SUB   A"          m8080="SUB   A"           />  
  <op code="90"        clocks="4"     flags="sz-u-v1b"              mZ80="SUB   B"          m8080="SUB   B"           />  
  <op code="91"        clocks="4"     flags="sz-u-v1b"              mZ80="SUB   C"          m8080="SUB   C"           />  
  <op code="92"        clocks="4"     flags="sz-u-v1b"              mZ80="SUB   D"          m8080="SUB   D"           />  
  <op code="93"        clocks="4"     flags="sz-u-v1b"              mZ80="SUB   E"          m8080="SUB   E"           />  
  <op code="94"        clocks="4"     flags="sz-u-v1b"              mZ80="SUB   H"          m8080="SUB   H"           />  
  <op code="95"        clocks="4"     flags="sz-u-v1b"              mZ80="SUB   L"          m8080="SUB   L"           />  
  <op code="96"        clocks="7"     flags="sz-u-v1b"   bus="r"    mZ80="SUB   (HL)"       m8080="SUB   M"           />  
  <op code="DD96ii"    clocks="19"    flags="sz-u-v1b"   bus="r"    mZ80="SUB   (IX+i)"                            />  
  <op code="FD96ii"    clocks="19"    flags="sz-u-v1b"   bus="r"    mZ80="SUB   (IY+i)"                            />  
  <op code="D6bb"      clocks="7"     flags="sz-u-v1b"              mZ80="SUB   b"          m8080="SUI   b"           />  
  
  <!-- Undocumented opcodes ... added as I run into code that uses them -->
  
  <op code="DD0A"                                                   mZ80="LD    A,(BC)"                             />  
  <op code="DD1B"                                                   mZ80="DEC   DE"                                />  
  <op code="DD26bb"                                                 mZ80="LD    IXH,b"                              />  
  <op code="DD2C"                                                   mZ80="INC   IXL"                               />  
  <op code="DD2D"                                                   mZ80="DEC   IXL"                               />  
  <op code="DD2Ebb"                                                 mZ80="LD    IXL,b"                              />  
  <op code="DD4C"                                                   mZ80="LD    C,IXH"                              />  
  <op code="DD54"                                                   mZ80="LD    D,IXH"                              />  
  <op code="DD5D"                                                   mZ80="LD    E,IXL"                              />  
  <op code="DD60"                                                   mZ80="LD    IXH,B"                              />  
  <op code="DD61"                                                   mZ80="LD    IXH,C"                              />  
  <op code="DD62"                                                   mZ80="LD    IXH,D"                              />  
  <op code="DD63"                                                   mZ80="LD    IXH,E"                              />  
  <op code="DD67"                                                   mZ80="LD    IXH,A"                              />  
  <op code="DD7C"                                                   mZ80="LD    A,IXH"                              />  
  <op code="DD84"                                                   mZ80="ADD   A,IXH"                             />  
  <op code="DD94"                                                   mZ80="SUB   IXH"                               />  
  <op code="DD95"                                                   mZ80="SUB   IXL"                               />  
  <op code="DDAC"                                                   mZ80="XOR   IXH"                               />  
  <op code="FD0B"                                                   mZ80="DEC   BC"                                />  
  <op code="FD1B"                                                   mZ80="DEC   DE"                                />  
  <op code="FDFB"                                                   mZ80="EI"                                    />  
  <op code="FD6B"                                                   mZ80="LD    IYL,E"                              />  
  <op code="FD7C"                                                   mZ80="LD    A,IYH"                              />  
  <op code="FD7D"                                                   mZ80="LD    A,IYL"                              />  
  <op code="FD20rr"                                                 mZ80="JR    NZ,r"                               />  
  <op code="FD25"                                                   mZ80="DEC   IYH"                               />  
  <op code="FD48"                                                   mZ80="LD    C,B"                                />  
  <op code="FD63"                                                   mZ80="LD    IYH,E"                              />  
  <op code="FDAC"                                                   mZ80="XOR   IYH"                               />  
  <op code="FDCCmlmm"                                               mZ80="CALL  Z,m"                              />  
  <op code="FDD8"                                                   mZ80="RET   C"                                 />			
		</opcodes>
		
</ProcessorFamily>

6502

<?xml version="1.0" encoding="UTF-8"?>

<ProcessorFamily name="650x" endian="little">

       <printSpacing>
            <set name="6502"   dataFieldSize="10" mnemonicFieldSize="20"/>
            <set name="65C02"  dataFieldSize="10" mnemonicFieldSize="20"/>
            <set name="65C816" dataFieldSize="10" mnemonicFieldSize="20"/>
            <set name="Cish"   dataFieldSize="10" mnemonicFieldSize="20"/> 
        </printSpacing>

		<processors>
			<processor name="6502" />
			<processor name="65C02" />
			<processor name="65C816" />
		</processors>
		
		<blends jump="JMP $DEST$">
		
		    <!-- CARRY and BORROW are the same flag, but in this family C=0 means borrow -->
		
		    <!-- Simple one-flag tests. These have equally-short alternate forms -->
            <blend left="A" op="=="    right="*"     branchPass="CMP $RIGHT$;BEQ $PASS$"   branchFail="CMP $RIGHT$;BNE $FAIL$"/>
            <blend left="A" op="!="    right="*"     branchPass="CMP $RIGHT$;BNE $PASS$"   branchFail="CMP $RIGHT$;BEQ $FAIL$"/>  
            <blend left="A" op="<"  right="*"     branchPass="CMP $RIGHT$;BCC $PASS$"   branchFail="CMP $RIGHT$;BCS $FAIL$"/> 
            <blend left="A" op=">=" right="*"     branchPass="CMP $RIGHT$;BCS $PASS$"   branchFail="CMP $RIGHT$;BCC $FAIL$" /> 
            
            <blend left="X" op="=="    right="*"     branchPass="CPX $RIGHT$;BEQ $PASS$"   branchFail="CPX $RIGHT$;BNE $FAIL$"/>
            <blend left="X" op="!="    right="*"     branchPass="CPX $RIGHT$;BNE $PASS$"   branchFail="CPX $RIGHT$;BEQ $FAIL$"/>  
            <blend left="X" op="<"  right="*"     branchPass="CPX $RIGHT$;BCC $PASS$"   branchFail="CPX $RIGHT$;BCS $FAIL$"/> 
            <blend left="X" op=">=" right="*"     branchPass="CPX $RIGHT$;BCS $PASS$"   branchFail="CPX $RIGHT$;BCC $FAIL$" />
            
            <blend left="Y" op="=="    right="*"     branchPass="CPY $RIGHT$;BEQ $PASS$"   branchFail="CPY $RIGHT$;BNE $FAIL$"/>
            <blend left="Y" op="!="    right="*"     branchPass="CPY $RIGHT$;BNE $PASS$"   branchFail="CPY $RIGHT$;BEQ $FAIL$"/>  
            <blend left="Y" op="<"  right="*"     branchPass="CPY $RIGHT$;BCC $PASS$"   branchFail="CPY $RIGHT$;BCS $FAIL$"/> 
            <blend left="Y" op=">=" right="*"     branchPass="CPY $RIGHT$;BCS $PASS$"   branchFail="CPY $RIGHT$;BCC $FAIL$" />
  
            <!-- These can't be tested with one flag ... the alternate form is needlessly complicated -->
            <blend left="A" op=">"  right="*"     branchFail="CMP $RIGHT$;BEQ $FAIL$;BCC $FAIL$" />  
            <blend left="A" op="<=" right="*"     branchPass="CMP $RIGHT$;BEQ $PASS$;BCC $PASS$" />
            
            <blend left="X" op=">"  right="*"     branchFail="CPX $RIGHT$;BEQ $FAIL$;BCC $FAIL$" />  
            <blend left="X" op="<=" right="*"     branchPass="CPX $RIGHT$;BEQ $PASS$;BCC $PASS$" /> 
            
            <blend left="Y" op=">"  right="*"     branchFail="CPY $RIGHT$;BEQ $FAIL$;BCC $FAIL$" />  
            <blend left="Y" op="<=" right="*"     branchPass="CPY $RIGHT$;BEQ $PASS$;BCC $PASS$" />  
  
            <!-- No operation ... just use the existing flags -->
            <blend left="ZERO"       op="" right=""  branchPass="BEQ $PASS$"  branchFail="BNE $FAIL$"/>
            <blend left="NOT_ZERO"   op="" right=""  branchPass="BNE $PASS$"  branchFail="BEQ $FAIL$"/>  
            <blend left="CARRY"      op="" right=""  branchPass="BCS $PASS$"  branchFail="BCC $FAIL$"/>
            <blend left="NOT_BORROW" op="" right=""  branchPass="BCS $PASS$"  branchFail="BCC $FAIL$"/>
            <blend left="NOT_CARRY"  op="" right=""  branchPass="BCC $PASS$"  branchFail="BCS $FAIL$"/>
            <blend left="BORROW"     op="" right=""  branchPass="BCC $PASS$"  branchFail="BCS $FAIL$"/>
		
		    <!--  TRUE and FALSE -->
            <blend left="true"       op="" right=""  branchPass="JMP $PASS$"   branchFail=""/>
            <blend left="false"      op="" right=""  branchPass=""             branchFail="JMP $FAIL$"/>
		 
		</blends>
		
		<opcodes>
  <op m6502="BRK"        m65C02="BRK"       m65C816="BRK"          code="00"      clocks="7"     flags="-------"           />
  <op m6502="ORA (p,X)"  m65C02="ORA (p,X)" m65C816="ORA (p,X)"    code="01pp"    clocks="6"     flags="-------"  bus="r"  mCish="A = A | BYTE[WORD[>p+X]]"/>
  <op                                       m65C816="COP b"        code="02"      clocks=""      flags="-------"           />
  <op                                       m65C816="ORA d,S"      code="03"      clocks=""      flags="-------"           />
  <op                    m65C02="TSB d"     m65C816="TSB d"        code="04"      clocks=""      flags="-------"           />
  <op m6502="ORA >p"     m65C02="ORA >p"    m65C816="ORA >p"       code="05pp"    clocks="3"     flags="-------"  bus="r"  mCish="A = A | BYTE[>p]"/>
  <op m6502="ASL >p"     m65C02="ASL >p"    m65C816="ASL >p"       code="06pp"    clocks="5"     flags="-------"  bus="r"  />
  <op                                       m65C816="ORA [d]"      code="07"      clocks=""      flags="-------"           />
  <op m6502="PHP"        m65C02="PHP"       m65C816="PHP"          code="08"      clocks="3"     flags="-------"  bus="w"  />
  <op m6502="ORA #b"     m65C02="ORA #b"    m65C816="ORA #b"       code="09bb"    clocks="2"     flags="-------"           mCish="A = A | b"/>
  <op m6502="ASL A"      m65C02="ASL A"     m65C816="ASL A"        code="0A"      clocks="2"     flags="-------"           />
  <op                                       m65C816="PHD"          code="0B"      clocks=""      flags="-------"           />
  <op                    m65C02="TSB a"     m65C816="TSB a"        code="0C"      clocks=""      flags="-------"           />
  <op m6502="ORA t"      m65C02="ORA t"     m65C816="ORA t"        code="0Dtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A | BYTE[t]"/>
  <op m6502="ASL t"      m65C02="ASL t"     m65C816="ASL t"        code="0Etltm"  clocks="6"     flags="-------"  bus="r"  />
  <op                                       m65C816="ORA al"       code="0F"      clocks=""      flags="-------"           />
  <op m6502="BPL r"      m65C02="BPL r"     m65C816="BPL r"        code="10rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="ORA (p),Y"  m65C02="ORA (p),Y" m65C816="ORA (p),Y"    code="11pp"    clocks="5"     flags="-------"  bus="r"  mCish="A = A | BYTE[WORD[>p]+Y]"/>
  <op                    m65C02="ORA (d)"   m65C816="ORA (d)"      code="12"      clocks=""      flags="-------"           />
  <op                                       m65C816="ORA (d,S),Y"  code="13"      clocks=""      flags="-------"           />
  <op                    m65C02="TRB d"     m65C816="TRB d"        code="14"      clocks=""      flags="-------"           />
  <op m6502="ORA p,X"    m65C02="ORA p,X"   m65C816="ORA p,X"      code="15pp"    clocks="4"     flags="-------"  bus="r"  mCish="A = A | BYTE[>p+X]"/>
  <op m6502="ASL p,X"    m65C02="ASL p,X"   m65C816="ASL p,X"      code="16pp"    clocks="6"     flags="-------"  bus="r"  />
  <op                                       m65C816="ORA [d],Y"    code="17"      clocks=""      flags="-------"           />
  <op m6502="CLC"        m65C02="CLC"       m65C816="CLC"          code="18"      clocks="2"     flags="-------"           mCish="CARRY = 0"/>
  <op m6502="ORA t,Y"    m65C02="ORA t,Y"   m65C816="ORA t,Y"      code="19tltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A | BYTE[t+Y]"/>
  <op                    m65C02="INC A"     m65C816="INC A"        code="1A"      clocks=""      flags="-------"           />
  <op                                       m65C816="TCS"          code="1B"      clocks=""      flags="-------"           />
  <op                    m65C02="TRB a"     m65C816="TRB a"        code="1C"      clocks=""      flags="-------"           />
  <op m6502="ORA t,X"    m65C02="ORA t,X"   m65C816="ORA t,X"      code="1Dtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A | BYTE[t+X]"/>
  <op m6502="ASL t,X"    m65C02="ASL t,X"   m65C816="ASL t,X"      code="1Etltm"  clocks="7"     flags="-------"  bus="r"  />
  <op                                       m65C816="ORA al,X"     code="1F"      clocks=""      flags="-------"           />
  <op m6502="JSR t"      m65C02="JSR t"     m65C816="JSR t"        code="20tltm"  clocks="6"     flags="-------"           mCish="t()"/>
  <op m6502="AND (p,X)"  m65C02="AND (p,X)" m65C816="AND (p,X)"    code="21pp"    clocks="6"     flags="-------"  bus="r"  mCish="A = A & BYTE[WORD[>p+X]]"/>
  <op                                       m65C816="JSL al"       code="22"      clocks=""      flags="-------"           />
  <op                                       m65C816="AND d,S"      code="23"      clocks=""      flags="-------"           />
  <op m6502="BIT >p"     m65C02="BIT >p"    m65C816="BIT >p"       code="24pp"    clocks="3"     flags="-------"  bus="r"  mCish="A & BYTE[>p]"/>
  <op m6502="AND >p"     m65C02="AND >p"    m65C816="AND >p"       code="25pp"    clocks="3"     flags="-------"  bus="r"  mCish="A = A & BYTE[>p]"/>
  <op m6502="ROL >p"     m65C02="ROL >p"    m65C816="ROL >p"       code="26pp"    clocks="5"     flags="-------"  bus="rw" />
  <op                                       m65C816="AND [d]"      code="27"      clocks=""      flags="-------"           />
  <op m6502="PLP"        m65C02="PLP"       m65C816="PLP"          code="28"      clocks="4"     flags="-------"  bus="r"  />
  <op m6502="AND #b"     m65C02="AND #b"    m65C816="AND #b"       code="29bb"    clocks="2"     flags="-------"           mCish="A = A & b"/>
  <op m6502="ROL A"      m65C02="ROL A"     m65C816="ROL A"        code="2A"      clocks="2"     flags="-------"           />
  <op                                       m65C816="PLD"          code="2B"      clocks=""      flags="-------"           />
  <op m6502="BIT t"      m65C02="BIT t"     m65C816="BIT t"        code="2Ctltm"  clocks="4"     flags="-------"  bus="r"  mCish="A & BYTE[t]"/>
  <op m6502="AND t"      m65C02="AND t"     m65C816="AND t"        code="2Dtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A & BYTE[t]"/>
  <op m6502="ROL t"      m65C02="ROL t"     m65C816="ROL t"        code="2Etltm"  clocks="6"     flags="-------"  bus="r"  />
  <op                                       m65C816="AND al"       code="2F"      clocks=""      flags="-------"           />
  <op m6502="BMI r"      m65C02="BMI r"     m65C816="BMI r"        code="30rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="AND (p),Y"  m65C02="AND (p),Y" m65C816="AND (p),Y"    code="31pp"    clocks="5"     flags="-------"  bus="r"  mCish="A = A & BYTE[WORD[>p]+Y]"/>
  <op                    m65C02="AND (d)"   m65C816="AND (d)"      code="32"      clocks=""      flags="-------"           />
  <op                                       m65C816="AND (d,S),Y"  code="33"      clocks=""      flags="-------"           />
  <op                    m65C02="BIT d,X"   m65C816="BIT d,X"      code="34"      clocks=""      flags="-------"           />
  <op m6502="AND p,X"    m65C02="AND p,X"   m65C816="AND p,X"      code="35pp"    clocks="4"     flags="-------"  bus="r"  mCish="A = A & BYTE[>p+X]"/>
  <op m6502="ROL p,X"    m65C02="ROL p,X"   m65C816="ROL p,X"      code="36pp"    clocks="6"     flags="-------"  bus="r"  />
  <op                                       m65C816="AND [d],Y"    code="37"      clocks=""      flags="-------"           />
  <op m6502="SEC"        m65C02="SEC"       m65C816="SEC"          code="38"      clocks="2"     flags="-------"           mCish="CARRY = 1"/>
  <op m6502="AND t,Y"    m65C02="AND t,Y"   m65C816="AND t,Y"      code="39tltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A & BYTE[t+Y]" />
  <op                    m65C02="DEC A"     m65C816="DEC A"        code="3A"      clocks=""      flags="-------"           />
  <op                                       m65C816="TSC"          code="3B"      clocks=""      flags="-------"           />
  <op                    m65C02="BIT a,X"   m65C816="BIT a,X"      code="3C"      clocks=""      flags="-------"           />
  <op m6502="AND t,X"    m65C02="AND t,X"   m65C816="AND t,X"      code="3Dtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A & BYTE[t+X]"/>
  <op m6502="ROL t,X"    m65C02="ROL t,X"   m65C816="ROL t,X"      code="3Etltm"  clocks="7"     flags="-------"  bus="rw" />
  <op                                       m65C816="AND al,X"     code="3F"      clocks=""      flags="-------"           />
  <op m6502="RTI"        m65C02="RTI"       m65C816="RTI"          code="40"      clocks="6"     flags="-------"           />
  <op m6502="EOR (p,X)"  m65C02="EOR (p,X)" m65C816="EOR (p,X)"    code="41pp"    clocks="6"     flags="-------"  bus="r"  mCish="A = A ^ BYTE[WORD[>p+X]]"/>
  <op                                       m65C816="WDM"          code="42"      clocks=""      flags="-------"           />
  <op                                       m65C816="EOR d,S"      code="43"      clocks=""      flags="-------"           />
  <op                                       m65C816="MVP s,d"      code="44"      clocks=""      flags="-------"           />
  <op m6502="EOR >p"     m65C02="EOR >p"    m65C816="EOR >p"       code="45pp"    clocks="3"     flags="-------"  bus="r"  mCish="A = A ^  BYTE[>p]"/>
  <op m6502="LSR >p"     m65C02="LSR >p"    m65C816="LSR >p"       code="46pp"    clocks="5"     flags="-------"  bus="rw" />
  <op                                       m65C816="EOR [d]"      code="47"      clocks=""      flags="-------"           />
  <op m6502="PHA"        m65C02="PHA"       m65C816="PHA"          code="48"      clocks="3"     flags="-------"  bus="w"  />
  <op m6502="EOR #b"     m65C02="EOR #b"    m65C816="EOR #b"       code="49bb"    clocks="2"     flags="-------"           mCish="A = A ^ b"/>
  <op m6502="LSR A"      m65C02="LSR A"     m65C816="LSR A"        code="4A"      clocks="2"     flags="-------"           />
  <op                                       m65C816="PHK"          code="4B"      clocks=""      flags="-------"           />
  <op m6502="JMP t"      m65C02="JMP t"     m65C816="JMP t"        code="4Ctltm"  clocks="3"     flags="-------"           mCish="GOTO t"  />
  <op m6502="EOR t"      m65C02="EOR t"     m65C816="EOR t"        code="4Dtltm"  clocks="4"     flags="-------"           mCish="A = A ^ BYTE[t]"/>
  <op m6502="LSR t"      m65C02="LSR t"     m65C816="LSR t"        code="4Etltm"  clocks="6"     flags="-------"           />
  <op                                       m65C816="EOR al"       code="4F"      clocks=""      flags="-------"           />
  <op m6502="BVC r"      m65C02="BVC r"     m65C816="BVC r"        code="50rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="EOR (p),Y"  m65C02="EOR (p),Y" m65C816="EOR (p),Y"    code="51pp"    clocks="5"     flags="-------"  bus="r"  mCish="A = A ^ BYTE[WORD[>p]+Y]"/>
  <op                    m65C02="EOR (d)"   m65C816="EOR (d)"      code="52"      clocks=""      flags="-------"           />
  <op                                       m65C816="EOR (d,S),Y"  code="53"      clocks=""      flags="-------"           />
  <op                                       m65C816="MVN s,d"      code="54"      clocks=""      flags="-------"           />   
  <op m6502="EOR p,X"    m65C02="EOR p,X"   m65C816="EOR p,X"      code="55pp"    clocks="4"     flags="-------"  bus="r"  mChish="A = A ^ BYTE[>p+X]"/>
  <op m6502="LSR p,X"    m65C02="LSR p,X"   m65C816="LSR p,X"      code="56pp"    clocks="6"     flags="-------"  bus="rw" />
  <op                                       m65C816="EOR [d],Y"    code="57"      clocks=""      flags="-------"           />
  <op m6502="CLI"        m65C02="CLI"       m65C816="CLI"          code="58"      clocks="2"     flags="-------"           />
  <op m6502="EOR t,Y"    m65C02="EOR t,Y"   m65C816="EOR t,Y"      code="59tltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A ^ BYTE[t+Y]"/>
  <op                    m65C02="PHY"       m65C816="PHY"          code="5A"      clocks=""      flags="-------"           />
  <op                                       m65C816="TCD"          code="5B"      clocks=""      flags="-------"           />
  <op                                       m65C816="JMP al"       code="5C"      clocks=""      flags="-------"           />
  <op m6502="EOR t,X"    m65C02="EOR t,X"   m65C816="EOR t,X"      code="5Dtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A ^ BYTE[t+X]"/>
  <op m6502="LSR t,X"    m65C02="LSR t,X"   m65C816="LSR t,X"      code="5Etltm"  clocks="7"     flags="-------"  bus="rw" />
  <op                                       m65C816="EOR al,X"     code="5F"      clocks=""      flags="-------"           />
  <op m6502="RTS"        m65C02="RTS"       m65C816="RTS"          code="60"      clocks="6"     flags="-------"           />
  <op m6502="ADC (p,X)"  m65C02="ADC (p,X)" m65C816="ADC (p,X)"    code="61pp"    clocks="6"     flags="-------"  bus="r"  mCish="A = A + CARRY + BYTE[WORD[>p+X]]"/>
  
  <op                                       m65C816="PER rl"       code="62"      clocks=""      flags="-------"           />
  <op                                       m65C816="ADC d,S"      code="63"      clocks=""      flags="-------"           />
  <op                    m65C02="STZ d"     m65C816="STZ d"        code="64"      clocks=""      flags="-------"           />
  <op m6502="ADC >p"     m65C02="ADC >p"    m65C816="ADC >p"       code="65pp"    clocks="3"     flags="-------"  bus="r"  mCish="A = A + CARRY + BYTE[>p]"/>
  <op m6502="ROR >p"     m65C02="ROR >p"    m65C816="ROR >p"       code="66pp"    clocks="5"     flags="-------"  bus="rw" />
  <op                                       m65C816="ADC [d]"      code="67"      clocks=""      flags="-------"           />
  <op m6502="PLA"        m65C02="PLA"       m65C816="PLA"          code="68"      clocks="4"     flags="-------"  bus="r"  />
  <op m6502="ADC #b"     m65C02="ADC #b"    m65C816="ADC #b"       code="69bb"    clocks="2"     flags="-------"           mCish="A = A + CARRY + b"/>
  <op m6502="ROR A"      m65C02="ROR A"     m65C816="ROR A"        code="6A"      clocks="2"     flags="-------"           />
  <op                                       m65C816="RTL"          code="6B"      clocks=""      flags="-------"           />
  <op m6502="JMP (m)"    m65C02="JMP (m)"   m65C816="JMP (m)"      code="6Cmlmm"  clocks="5"     flags="-------"           mCish="GOTO WORD[m]"/>
  <op m6502="ADC t"      m65C02="ADC t"     m65C816="ADC t"        code="6Dtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A + CARRY + BYTE[t]"/>
  <op m6502="ROR t"      m65C02="ROR t"     m65C816="ROR t"        code="6Etltm"  clocks="6"     flags="-------"  bus="r"  />
  <op                                       m65C816="ADC al"       code="6F"      clocks=""      flags="-------"           />
  <op m6502="BVS r"      m65C02="BVS r"     m65C816="BVS r"        code="70rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="ADC (p),Y"  m65C02="ADC (p),Y" m65C816="ADC (p),Y"    code="71pp"    clocks="5"     flags="-------"  bus="r"  mCish="A = A + CARRY + BYTE[WORD[>p]+Y]"/>
  <op                    m65C02="ADC (d)"   m65C816="ADC (d)"      code="72"      clocks=""      flags="-------"           />
  <op                                       m65C816="ADC (d,S),Y"  code="73"      clocks=""      flags="-------"           />
  <op                    m65C02="STZ d,X"   m65C816="STZ d,X"      code="74"      clocks=""      flags="-------"           />
  <op m6502="ADC >p,X"   m65C02="ADC >p,X"  m65C816="ADC >p,X"     code="75pp"    clocks="4"     flags="-------"  bus="r"  mCish="A = A + CARRY + BYTE[>p]"/>
  <op m6502="ROR >p,X"   m65C02="ROR >p,X"  m65C816="ROR >p,X"     code="76pp"    clocks="6"     flags="-------"  bus="r"  />
  <op                                       m65C816="ADC [d],Y"    code="77"      clocks=""      flags="-------"           />
  <op m6502="SEI"        m65C02="SEI"       m65C816="SEI"          code="78"      clocks="2"     flags="-------"           />
  <op m6502="ADC t,Y"    m65C02="ADC t,Y"   m65C816="ADC t,Y"      code="79tltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A + CARRY + BYTE[t+Y]"/>
  <op                    m65C02="PLY"       m65C816="PLY"          code="7A"      clocks=""      flags="-------"           />
  <op                                       m65C816="TDC"          code="7B"      clocks=""      flags="-------"           />
  <op                    m65C02="JMP (a,X)" m65C816="JMP (a,X)"    code="7C"      clocks=""      flags="-------"           />
  <op m6502="ADC t,X"    m65C02="ADC t,X"   m65C816="ADC t,X"      code="7Dtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = A + CARRY + BYTE[t+X]"/>
  <op m6502="ROR t,X"    m65C02="ROR t,X"   m65C816="ROR t,X"      code="7Etltm"  clocks="7"     flags="-------"  bus="r"  />
  <op                                       m65C816="ADC al,X"     code="7F"      clocks=""      flags="-------"           />
  <op                    m65C02="BRA r"     m65C816="BRA r"        code="80"      clocks=""      flags="-------"           />
  <op m6502="STA (p,X)"  m65C02="STA (p,X)" m65C816="STA (p,X)"    code="81pp"    clocks="6"     flags="-------"  bus="w"  mCish="BYTE[WORD[>p+X]] = A"/>
  <op                                       m65C816="BRL rl"       code="82"      clocks=""      flags="-------"           />
  <op                                       m65C816="STA d,S"      code="83"      clocks=""      flags="-------"           />
  <op m6502="STY >p"     m65C02="STY >p"    m65C816="STY >p"       code="84pp"    clocks="3"     flags="-------"  bus="w"  mCish="BYTE[>p] = Y"/>
  <op m6502="STA >p"     m65C02="STA >p"    m65C816="STA >p"       code="85pp"    clocks="3"     flags="-------"  bus="w"  mCish="BYTE[>p] = A"/>
  <op m6502="STX >p"     m65C02="STX >p"    m65C816="STX >p"       code="86pp"    clocks="3"     flags="-------"  bus="w"  mCish="BYTE[>p] = X"/>
  <op                                       m65C816="STA [d]"      code="87"      clocks=""      flags="-------"           />
  <op m6502="DEY"        m65C02="DEY"       m65C816="DEY"          code="88"      clocks="2"     flags="-------"           mCish="--Y"/>
  <op                    m65C02="BIT #"     m65C816="BIT #"        code="89"      clocks=""      flags="-------"           />
  <op m6502="TXA"        m65C02="TXA"       m65C816="TXA"          code="8A"      clocks="2"     flags="-------"           mCish="A = X"/>
  <op                                       m65C816="PHB"          code="8B"      clocks=""      flags="-------"           />
  <op m6502="STY t"      m65C02="STY t"     m65C816="STY t"        code="8Ctltm"  clocks="4"     flags="-------"  bus="w"  mCish="BYTE[t] = Y"/>
  <op m6502="STA t"      m65C02="STA t"     m65C816="STA t"        code="8Dtltm"  clocks="4"     flags="-------"  bus="w"  mCish="BYTE[t] = A"/>
  <op m6502="STX t"      m65C02="STX t"     m65C816="STX t"        code="8Etltm"  clocks="4"     flags="-------"  bus="w"  mCish="BYTE[t] = X"/>
  <op                                       m65C816="STA al"       code="8F"      clocks=""      flags="-------"           />
  <op m6502="BCC r"      m65C02="BCC r"     m65C816="BCC r"        code="90rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="STA (p),Y"  m65C02="STA (p),Y" m65C816="STA (p),Y"    code="91pp"    clocks="6"     flags="-------"  bus="w"  mCish="BYTE[WORD[>p]+Y] = A"/>
  <op                    m65C02="STA (d)"   m65C816="STA (d)"      code="92"      clocks=""      flags="-------"           />
  <op                                       m65C816="STA (d,S),Y"  code="93"      clocks=""      flags="-------"           />
  <op m6502="STY p,X"    m65C02="STY p,X"   m65C816="STY p,X"      code="94pp"    clocks="4"     flags="-------"  bus="w"  mCish="BYTE[>p+X] = Y"/>
  <op m6502="STA p,X"    m65C02="STA p,X"   m65C816="STA p,X"      code="95pp"    clocks="4"     flags="-------"  bus="w"  mCish="BYTE[>p+X] = A"/>
  <op m6502="STX p,Y"    m65C02="STX p,Y"   m65C816="STX p,Y"      code="96pp"    clocks="4"     flags="-------"  bus="w"  mCish="BYTE[>p+Y] = X"/>
  <op                                       m65C816="STA [d],Y"    code="97"      clocks=""      flags="-------"           />
  <op m6502="TYA"        m65C02="TYA"       m65C816="TYA"          code="98"      clocks="2"     flags="-------"           mCish="A = Y"/>
  <op m6502="STA t,Y"    m65C02="STA t,Y"   m65C816="STA t,Y"      code="99tltm"  clocks="5"     flags="-------"  bus="w"  mCish="BYTE[t+Y] = A"/>
  <op m6502="TXS"        m65C02="TXS"       m65C816="TXS"          code="9A"      clocks="2"     flags="-------"           mCish="S = X"/>
  <op                                       m65C816="TXY"          code="9B"      clocks=""      flags="-------"           />
  <op                    m65C02="STZ a"     m65C816="STZ a"        code="9C"      clocks=""      flags="-------"           />
  <op m6502="STA t,X"    m65C02="STA t,X"   m65C816="STA t,X"      code="9Dtltm"  clocks="5"     flags="-------"  bus="w"  mCish="BYTE[t+X] = A"/>
  <op                    m65C02="STZ a,X"   m65C816="STZ a,X"      code="9E"      clocks=""      flags="-------"           />
  <op                                       m65C816="STA al,X"     code="9F"      clocks=""      flags="-------"           />
  <op m6502="LDY #b"     m65C02="LDY #b"    m65C816="LDY #b"       code="A0bb"    clocks="2"     flags="-------"           mCish="Y = b"/>
  <op m6502="LDA (p,X)"  m65C02="LDA (p,X)" m65C816="LDA (p,X)"    code="A1pp"    clocks="6"     flags="-------"  bus="r"  mCish="A = BYTE[WORD[>p+X]]"/>
  <op m6502="LDX #b"     m65C02="LDX #b"    m65C816="LDX #b"       code="A2bb"    clocks="2"     flags="-------"           mCish="X = b"/>
  <op                                       m65C816="LDA d,S"      code="A3"      clocks=""      flags="-------"           />
  <op m6502="LDY >p"     m65C02="LDY >p"    m65C816="LDY >p"       code="A4pp"    clocks="3"     flags="-------"  bus="r"  mCish="Y = BYTE[>p]"/>
  <op m6502="LDA >p"     m65C02="LDA >p"    m65C816="LDA >p"       code="A5pp"    clocks="3"     flags="-------"  bus="r"  mCish="A = BYTE[>p]"/>
  <op m6502="LDX >p"     m65C02="LDX >p"    m65C816="LDX >p"       code="A6pp"    clocks="3"     flags="-------"  bus="r"  mCish="X = BYTE[>p]"/>
  <op                                       m65C816="LDA [d]"      code="A7"      clocks=""      flags="-------"           />
  <op m6502="TAY"        m65C02="TAY"       m65C816="TAY"          code="A8"      clocks="2"     flags="-------"           mCish="Y = A"/>
  <op m6502="LDA #b"     m65C02="LDA #b"    m65C816="LDA #b"       code="A9bb"    clocks="2"     flags="-------"           mCish="A = b"/>
  <op m6502="TAX"        m65C02="TAX"       m65C816="TAX"          code="AA"      clocks="2"     flags="-------"           mCish="X = A"/>
  <op                                       m65C816="PLB"          code="AB"      clocks=""      flags="-------"           />
  <op m6502="LDY t"      m65C02="LDY t"     m65C816="LDY t"        code="ACtltm"  clocks="4"     flags="-------"  bus="r"  mCish="Y = BYTE[t]"/>
  <op m6502="LDA t"      m65C02="LDA t"     m65C816="LDA t"        code="ADtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = BYTE[t]"/>
  <op m6502="LDX t"      m65C02="LDX t"     m65C816="LDX t"        code="AEtltm"  clocks="4"     flags="-------"  bus="r"  mCish="X = BYTE[t]"/>
  <op                                       m65C816="LDA al"       code="AF"      clocks=""      flags="-------"           />
  <op m6502="BCS r"      m65C02="BCS r"     m65C816="BCS r"        code="B0rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="LDA (p),Y"  m65C02="LDA (p),Y" m65C816="LDA (p),Y"    code="B1pp"    clocks="5"     flags="-------"  bus="r"  mCish="A = BYTE[WORD[>p]+Y]"/>
  <op                    m65C02="LDA (d)"   m65C816="LDA (d)"      code="B2"      clocks=""      flags="-------"           />
  <op                                       m65C816="LDA (d,S),Y"  code="B3"      clocks=""      flags="-------"           />
  <op m6502="LDY p,X"    m65C02="LDY p,X"   m65C816="LDY p,X"      code="B4pp"    clocks="4"     flags="-------"  bus="r"  mCish="Y = BYTE[>p+X]"/>
  <op m6502="LDA p,X"    m65C02="LDA p,X"   m65C816="LDA p,X"      code="B5pp"    clocks="4"     flags="-------"  bus="r"  mCish="A = BYTE[>p+X]"/>
  <op m6502="LDX p,Y"    m65C02="LDX p,Y"   m65C816="LDX p,Y"      code="B6pp"    clocks="4"     flags="-------"  bus="r"  mCish="X = BYTE[>p+Y]"/>
  <op                                       m65C816="LDA [d],Y"    code="B7"      clocks=""      flags="-------"           />
  <op m6502="CLV"        m65C02="CLV"       m65C816="CLV"          code="B8"      clocks="2"     flags="-------"           />
  <op m6502="LDA t,Y"    m65C02="LDA t,Y"   m65C816="LDA t,Y"      code="B9tltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = BYTE[t+Y]"/>
  <op m6502="TSX"        m65C02="TSX"       m65C816="TSX"          code="BA"      clocks="2"     flags="-------"           mCish="X = S"/>
  <op                                       m65C816="TYX"          code="BB"      clocks=""      flags="-------"           />
  <op m6502="LDY t,X"    m65C02="LDY t,X"   m65C816="LDY t,X"      code="BCtltm"  clocks="4"     flags="-------"  bus="r"  mCish="Y = BYTE[t+X]"/>
  <op m6502="LDA t,X"    m65C02="LDA t,X"   m65C816="LDA t,X"      code="BDtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A = BYTE[t+X]"/>
  <op m6502="LDX t,Y"    m65C02="LDX t,Y"   m65C816="LDX t,Y"      code="BEtltm"  clocks="4"     flags="-------"  bus="r"  mCish="X = BYTE[t+Y]"/>
  <op                                       m65C816="LDA al,X"     code="BF"      clocks=""      flags="-------"           />
  <op m6502="CPY #b"     m65C02="CPY #b"    m65C816="CPY #b"       code="C0bb"    clocks="2"     flags="-------"           />
  <op m6502="CMP (p,X)"  m65C02="CMP (p,X)" m65C816="CMP (p,X)"    code="C1pp"    clocks="6"     flags="-------"  bus="r"  mCish="A - BYTE[WORD[>p+X]]"/>
  <op                                       m65C816="REP #"        code="C2"      clocks=""      flags="-------"           />
  <op                                       m65C816="CMP d,S"      code="C3"      clocks=""      flags="-------"           />
  <op m6502="CPY >p"     m65C02="CPY >p"    m65C816="CPY >p"       code="C4pp"    clocks="3"     flags="-------"  bus="r"  mCish="Y - BYTE[>p]"/>
  <op m6502="CMP >p"     m65C02="CMP >p"    m65C816="CMP >p"       code="C5pp"    clocks="3"     flags="-------"  bus="r"  mCish="A - BYTE[>p]"/>
  <op m6502="DEC >p"     m65C02="DEC >p"    m65C816="DEC >p"       code="C6pp"    clocks="5"     flags="-------"  bus="rw" mCish="--BYTE[>p]"/>
  <op                                       m65C816="CMP [d]"      code="C7"      clocks=""      flags="-------"           />
  <op m6502="INY"        m65C02="INY"       m65C816="INY"          code="C8"      clocks="2"     flags="-------"           mCish="++Y"/>
  <op m6502="CMP #b"     m65C02="CMP #b"    m65C816="CMP #b"       code="C9bb"    clocks="2"     flags="-------"           mCish="A - b"/>
  <op m6502="DEX"        m65C02="DEX"       m65C816="DEX"          code="CA"      clocks="2"     flags="-------"           mCish="--X"/>
  <op                                       m65C816="WAI"          code="CB"      clocks=""      flags="-------"           />
  <op m6502="CPY t"      m65C02="CPY t"     m65C816="CPY t"        code="CCtltm"  clocks="4"     flags="-------"  bus="r"  mCish="Y - BYTE[t]"/>
  <op m6502="CMP t"      m65C02="CMP t"     m65C816="CMP t"        code="CDtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A - BYTE[t]"/>
  <op m6502="DEC t"      m65C02="DEC t"     m65C816="DEC t"        code="CEtltm"  clocks="6"     flags="-------"  bus="rw" mCish="--BYTE[t]"/>
  <op                                       m65C816="CMP al"       code="CF"      clocks=""      flags="-------"           />
  <op m6502="BNE r"      m65C02="BNE r"     m65C816="BNE r"        code="D0rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="CMP (p),Y"  m65C02="CMP (p),Y" m65C816="CMP (p),Y"    code="D1pp"    clocks="5"     flags="-------"  bus="r"  mCish="A - BYTE[WORD[>p]+Y]"/>
  <op                    m65C02="CMP (d)"   m65C816="CMP (d)"      code="D2"      clocks=""      flags="-------"           />
  <op                                       m65C816="CMP (d,S),Y"  code="D3"      clocks=""      flags="-------"           />
  <op                                       m65C816="PEI d"        code="D4"      clocks=""      flags="-------"           />
  <op m6502="CMP p,X"    m65C02="CMP p,X"   m65C816="CMP p,X"      code="D5pp"    clocks="4"     flags="-------"  bus="r"  mCish="A - BYTE[>p+X]"/>
  <op m6502="DEC p,X"    m65C02="DEC p,X"   m65C816="DEC p,X"      code="D6pp"    clocks="6"     flags="-------"  bus="rw" mCish="--BYTE[>p+X]"/>
  <op                                       m65C816="CMP [d],Y"    code="D7"      clocks=""      flags="-------"           />
  <op m6502="CLD"        m65C02="CLD"       m65C816="CLD"          code="D8"      clocks="2"     flags="-------"           />
  <op m6502="CMP t,Y"    m65C02="CMP t,Y"   m65C816="CMP t,Y"      code="D9tltm"  clocks="4"     flags="-------"  bus="r"  mCish="A - BYTE[t+Y]"/>
  <op                    m65C02="PHX"       m65C816="PHX"          code="DA"      clocks=""      flags="-------"           />
  <op                                       m65C816="STP"          code="DB"      clocks=""      flags="-------"           />
  <op                                       m65C816="JML (a)"      code="DC"      clocks=""      flags="-------"           />
  <op m6502="CMP t,X"    m65C02="CMP t,X"   m65C816="CMP t,X"      code="DDtltm"  clocks="4"     flags="-------"  bus="r"  mCish="A - BYTE[t+X]"/>
  <op m6502="DEC t,X"    m65C02="DEC t,X"   m65C816="DEC t,X"      code="DEtltm"  clocks="7"     flags="-------"  bus="rw" mCish="--BYTE[t+X]"/>
  <op                                       m65C816="CMP al,X"     code="DF"      clocks=""      flags="-------"           />
  <op m6502="CPX #b"     m65C02="CPX #b"    m65C816="CPX #b"       code="E0bb"    clocks="2"     flags="-------"           mCish="X - b"/>
  <op m6502="SBC (p,X)"  m65C02="SBC (p,X)" m65C816="SBC (p,X)"    code="E1pp"    clocks=""      flags="-------"  bus="r"  mCish="A = A - BORROW - BYTE[WORD[>p+X]]"/>
  <op                                       m65C816="SEP #"        code="E2"      clocks=""      flags="-------"           />
  <op                                       m65C816="SBC d,S"      code="E3"      clocks=""      flags="-------"           />
  <op m6502="CPX >p"     m65C02="CPX >p"    m65C816="CPX >p"       code="E4pp"    clocks="3"     flags="-------"  bus="r"  mCish="X - BYTE[>p]"/>
  <op m6502="SBC >p"     m65C02="SBC >p"    m65C816="SBC >p"       code="E5pp"    clocks=""      flags="-------"  bus="r"  mCish="A = A - BORROW - BYTE[>p]"/>
  <op m6502="INC >p"     m65C02="INC >p"    m65C816="INC >p"       code="E6pp"    clocks="5"     flags="-------"  bus="rw" mCish="++BYTE[>p]"/>
  <op                                       m65C816="SBC [d]"      code="E7"      clocks=""      flags="-------"           />
  <op m6502="INX"        m65C02="INX"       m65C816="INX"          code="E8"      clocks="2"     flags="-------"           mCish="++X"/>
  <op m6502="SBC #b"     m65C02="SBC #b"    m65C816="SBC #b"       code="E9bb"    clocks=""      flags="-------"           mCish="A = A - BORROW - b"/>
  <op m6502="NOP"        m65C02="NOP"       m65C816="NOP"          code="EA"      clocks="2"     flags="-------"           />
  <op                                       m65C816="XBA"          code="EB"      clocks=""      flags="-------"           />
  <op m6502="CPX t"      m65C02="CPX t"     m65C816="CPX t"        code="ECtltm"  clocks="4"     flags="-------"  bus="r"  mCish="X - BYTE[t]"/>
  <op m6502="SBC t"      m65C02="SBC t"     m65C816="SBC t"        code="EDtltm"  clocks=""      flags="-------"  bus="r"  mCish="A = A - BORROW - BYTE[t]"/>
  <op m6502="INC t"      m65C02="INC t"     m65C816="INC t"        code="EEtltm"  clocks="6"     flags="-------"  bus="rw" mCish="++BYTE[t]"/>
  <op                                       m65C816="SBC al"       code="EF"      clocks=""      flags="-------"           />
  <op m6502="BEQ r"      m65C02="BEQ r"     m65C816="BEQ r"        code="F0rr"    clocks="2/3/4" flags="-------"           />
  <op m6502="SBC (p),Y"  m65C02="SBC (p),Y" m65C816="SBC (p),Y"    code="F1pp"    clocks=""      flags="-------"  bus="r"  mCish="A = A - BORROW - BYTE[WORD[>p]+Y]"/>
  <op                    m65C02="SBC (d)"   m65C816="SBC (d)"      code="F2"      clocks=""      flags="-------"           />
  <op                                       m65C816="SBC (d,S),Y"  code="F3"      clocks=""      flags="-------"           />
  <op                                       m65C816="PEA a"        code="F4"      clocks=""      flags="-------"           />
  <op m6502="SBC p,X"    m65C02="SBC p,X"   m65C816="SBC p,X"      code="F5pp"    clocks=""      flags="-------"  bus="r"  mCish="A = A - BORROW - BYTE[>p+X]"/>
  <op m6502="INC p,X"    m65C02="INC p,X"   m65C816="INC p,X"      code="F6pp"    clocks="6"     flags="-------"  bus="rw" mCish="++BYTE[>p+X]"/>
  <op                                       m65C816="SBC [d],Y"    code="F7"      clocks=""      flags="-------"           />
  <op m6502="SED"        m65C02="SED"       m65C816="SED"          code="F8"      clocks="2"     flags="-------"           />
  <op m6502="SBC t,Y"    m65C02="SBC t,Y"   m65C816="SBC t,Y"      code="F9tltm"  clocks=""      flags="-------"  bus="r"  mCish="A = A - BORROW - BYTE[t+Y]"/>
  <op                    m65C02="PLX"       m65C816="PLX"          code="FA"      clocks=""      flags="-------"           />
  <op                                       m65C816="XCE"          code="FB"      clocks=""      flags="-------"           />
  <op                                       m65C816="JSR (a,X)"    code="FC"      clocks=""      flags="-------"           />
  <op m6502="SBC t,X"    m65C02="SBC t,X"   m65C816="SBC t,X"      code="FDtltm"  clocks=""      flags="-------"  bus="r"  mCish="A = A - BORROW - BYTE[t+X]"/>
  <op m6502="INC t,X"    m65C02="INC t,X"   m65C816="INC t,X"      code="FEtltm"  clocks="7"     flags="-------"  bus="rw" mCish="++BYTE[t+X]"/>
  <op                                       m65C816="SBC al,X"     code="FF"      clocks=""      flags="-------"           />
		</opcodes>
		
</ProcessorFamily>

6809

The 6809 has a rich indexed-addressing mode. For indexed forms the opcode is followed by a post byte that describes the operation. Many of the post bytes use additional bytes of opcode parameters and additional clock cycles. A separate table below the opcodes describes the indexed forms.

For instance the 6809 opcode “10AEyy” is “LDY y”. The “y” means this instruction is a complex indexed form.

If the “y” parameter byte is filled in with “D9” then the post-byte table tells us the opcode is “10AED9kmkl”, which is “LDY [k,U]”. This instruction adds the 2-byte signed value “k” to the U register. The resulting value is used as an address and the 2-byte value from this resulting location is loaded into the Y register.

That is a lot of processing by a single instruction! The 6809 is a great example of a CISC processor where each instruction packs a lot of function. (People joke about the 6809 including a “branch and make coffee” instruction).

But the functionality comes at a cost. The base “10AEyy” opcode takes 6 clocks. The “D9” post-byte form adds an additional 7 clocks to the processing. The resulting opcode is 5 bytes long and burns 13 clocks! That’s like two or three shorter instructions combined, which is exactly what RISC is all about.

<?xml version="1.0" encoding="UTF-8"?>

<ProcessorFamily name="6809" endian="big">

       <printSpacing>
            <set name="6809"  dataFieldSize="10" mnemonicFieldSize="20"/>            
            <set name="Cish" dataFieldSize="10" mnemonicFieldSize="20"/> 
        </printSpacing>

		<processors>
			<processor name="6809" class="Processor_6809"/>
		</processors>

		<opcodes>
  <op code="00pp"      m6809="NEG   >p"             clocks="6"     flags="uaaaa"    />
  <op code="03pp"      m6809="COM   >p"             clocks="6"     flags="-aa01"    />
  <op code="04pp"      m6809="LSR   >p"             clocks="6"     flags="-0a-s"    />
  <op code="06pp"      m6809="ROR   >p"             clocks="6"     flags="-aa-s"    />
  <op code="07pp"      m6809="ASR   >p"             clocks="6"     flags="uaa-s"    />
  <op code="08pp"      m6809="LSL   >p;ASL   >p"    clocks="6"     flags="naaas"    />
  <op code="09pp"      m6809="ROL   >p"             clocks="6"     flags="-aaas"    />
  <op code="0App"      m6809="DEC   >p"             clocks="6"     flags="-aaa-"    />
  <op code="0Cpp"      m6809="INC   >p"             clocks="6"     flags="-aaa-"    />
  <op code="0Dpp"      m6809="TST   >p"             clocks="6"     flags="-aa0-"    />
  <op code="0Epp"      m6809="JMP   >p"             clocks="3"     flags="-----"    />
  <op code="0Fpp"      m6809="CLR   >p"             clocks="6"     flags="-0100"    />
  <op code="1021smsl"  m6809="LBRN  s"              clocks="5(6)"  flags="-----"    />
  <op code="1022smsl"  m6809="LBHI  s"              clocks="5(6)"  flags="-----"    />
  <op code="1023smsl"  m6809="LBLS  s"              clocks="5(6)"  flags="-----"    />
  <op code="1024smsl"  m6809="LBCC  s;LBHS  s"      clocks="5(6)"  flags="-----"    />
  <op code="1025smsl"  m6809="LBCS  s;LBLO  s"      clocks="5(6)"  flags="-----"    />
  <op code="1026smsl"  m6809="LBNE  s"              clocks="5(6)"  flags="-----"    />
  <op code="1027smsl"  m6809="LBEQ  s"              clocks="5(6)"  flags="-----"    />
  <op code="1028smsl"  m6809="LBVC  s"              clocks="5(6)"  flags="-----"    />
  <op code="1029smsl"  m6809="LBVS  s"              clocks="5(6)"  flags="-----"    />
  <op code="102Asmsl"  m6809="LBPL  s"              clocks="5(6)"  flags="-----"    />
  <op code="102Bsmsl"  m6809="LBMI  s"              clocks="5(6)"  flags="-----"    />
  <op code="102Csmsl"  m6809="LBGE  s"              clocks="5(6)"  flags="-----"    />
  <op code="102Dsmsl"  m6809="LBLT  s"              clocks="5(6)"  flags="-----"    />
  <op code="102Esmsl"  m6809="LBGT  s"              clocks="5(6)"  flags="-----"    />
  <op code="102Fsmsl"  m6809="LBLE  s"              clocks="5(6)"  flags="-----"    />
  <op code="103F"      m6809="SWI2"                 clocks="20"    flags="-----"    />
  <op code="1083wmwl"  m6809="CMPD  #w"             clocks="5"     flags="-aaaa"    />
  <op code="108Cwmwl"  m6809="CMPY  #w"             clocks="5"     flags="-aaaa"    />
  <op code="108Ewmwl"  m6809="LDY   #w"             clocks="4"     flags="-aa0-"    />
  <op code="1093pp"    m6809="CMPD  >p"             clocks="7"     flags="-aaaa"    />
  <op code="109Cpp"    m6809="CMPY  >p"             clocks="7"     flags="-aaaa"    />
  <op code="109Epp"    m6809="LDY   >p"             clocks="6"     flags="-aa0-"    />
  <op code="109Fpp"    m6809="STY   >p"             clocks="6"     flags="-aa0-"    />
  <op code="10A3yy"    m6809="CMPD  y"              clocks="7"     flags="-aaaa"    />
  <op code="10ACyy"    m6809="CMPY  y"              clocks="7"     flags="-aaaa"    />
  <op code="10AEyy"    m6809="LDY   y"              clocks="6"     flags="-aa0-"    />
  <op code="10AFyy"    m6809="STY   y"              clocks="6"     flags="-aa0-"    />
  <op code="10B3tmtl"  m6809="CMPD  t"              clocks="8"     flags="-aaaa"    />
  <op code="10BCtmtl"  m6809="CMPY  t"              clocks="8"     flags="-aaaa"    />
  <op code="10BEtmtl"  m6809="LDY   t"              clocks="7"     flags="-aa0-"    />
  <op code="10BFtmtl"  m6809="STY   t"              clocks="7"     flags="-aa0-"    />
  <op code="10CEwmwl"  m6809="LDS   #w"             clocks="4"     flags="-aa0-"    />
  <op code="10DEpp"    m6809="LDS   >p"             clocks="6"     flags="-aa0-"    />
  <op code="10DFpp"    m6809="STS   >p"             clocks="6"     flags="-aa0-"    />
  <op code="10EEyy"    m6809="LDS   y"              clocks="6"     flags="-aa0-"    />
  <op code="10EFyy"    m6809="STS   y"              clocks="6"     flags="-aa0-"    />
  <op code="10FEtmtl"  m6809="LDS   t"              clocks="7"     flags="-aa0-"    />
  <op code="10FFtmtl"  m6809="STS   t"              clocks="7"     flags="-aa0-"    />
  <op code="113F"      m6809="SWI3"                 clocks="20"    flags="-----"    />
  <op code="1183wmwl"  m6809="CMPU  #w"             clocks="5"     flags="-aaaa"    />
  <op code="118Cwmwl"  m6809="CMPS  #w"             clocks="5"     flags="-aaaa"    />
  <op code="1193pp"    m6809="CMPU  >p"             clocks="7"     flags="-aaaa"    />
  <op code="119Cpp"    m6809="CMPS  >p"             clocks="7"     flags="-aaaa"    />
  <op code="11A3yy"    m6809="CMPU  y"              clocks="7"     flags="-aaaa"    />
  <op code="11ACyy"    m6809="CMPS  y"              clocks="7"     flags="-aaaa"    />
  <op code="11B3tmtl"  m6809="CMPU  t"              clocks="8"     flags="-aaaa"    />
  <op code="11BCtmtl"  m6809="CMPS  t"              clocks="8"     flags="-aaaa"    />
  <op code="12"        m6809="NOP"                  clocks="2"     flags="-----"    />
  <op code="13"        m6809="SYNC"                 clocks="2"     flags="-----"    />
  <op code="16smsl"    m6809="LBRA  s"              clocks="5"     flags="-----"    />
  <op code="17smsl"    m6809="LBSR  s"              clocks="9"     flags="-----"    />
  <op code="19"        m6809="DAA"                  clocks="2"     flags="-aa0a"    />
  <op code="1Abb"      m6809="ORCC  #b"             clocks="3"     flags="ddddd"    />
  <op code="1Cbb"      m6809="ANDCC #b"             clocks="3"     flags="ddddd"    />
  <op code="1D"        m6809="SEX"                  clocks="2"     flags="-aa0-"    />
  <op code="1Ezz"      m6809="EXG   z"              clocks="8"     flags="ccccc"    />
  <op code="1Fzz"      m6809="TFR   z"              clocks="7"     flags="ccccc"    />
  <op code="20rr"      m6809="BRA   r"              clocks="3"     flags="-----"    />
  <op code="21rr"      m6809="BRN   r"              clocks="3"     flags="-----"    />
  <op code="22rr"      m6809="BHI   r"              clocks="3"     flags="-----"    />
  <op code="23rr"      m6809="BLS   r"              clocks="3"     flags="-----"    />
  <op code="24rr"      m6809="BCC   r;BHS   r"      clocks="3"     flags="-----"    />
  <op code="25rr"      m6809="BCS   r;BLO   r"      clocks="3"     flags="-----"    />
  <op code="26rr"      m6809="BNE   r"              clocks="3"     flags="-----"    />
  <op code="27rr"      m6809="BEQ   r"              clocks="3"     flags="-----"    />
  <op code="28rr"      m6809="BVC   r"              clocks="3"     flags="-----"    />
  <op code="29rr"      m6809="BVS   r"              clocks="3"     flags="-----"    />
  <op code="2Arr"      m6809="BPL   r"              clocks="3"     flags="-----"    />
  <op code="2Brr"      m6809="BMI   r"              clocks="3"     flags="-----"    />
  <op code="2Crr"      m6809="BGE   r"              clocks="3"     flags="-----"    />
  <op code="2Drr"      m6809="BLT   r"              clocks="3"     flags="-----"    />
  <op code="2Err"      m6809="BGT   r"              clocks="3"     flags="-----"    />
  <op code="2Frr"      m6809="BLE   r"              clocks="3"     flags="-----"    />
  <op code="30yy"      m6809="LEAX  y"              clocks="4"     flags="--a--"    />
  <op code="31yy"      m6809="LEAY  y"              clocks="4"     flags="--a--"    />
  <op code="32yy"      m6809="LEAS  y"              clocks="4"     flags="-----"    />
  <op code="33yy"      m6809="LEAU  y"              clocks="4"     flags="-----"    />
  <op code="34xx"      m6809="PSHS  x"              clocks="5"     flags="-----"    />
  <op code="35qq"      m6809="PULS  q"              clocks="5"     flags="ccccc"    />
  <op code="36uu"      m6809="PSHU  u"              clocks="5"     flags="-----"    />
  <op code="37vv"      m6809="PULU  v"              clocks="5"     flags="ccccc"    />
  <op code="39"        m6809="RTS"                  clocks="5"     flags="-----"    />
  <op code="3A"        m6809="ABX"                  clocks="3"     flags="-----"    />
  <op code="3B"        m6809="RTI"                  clocks="6/15"  flags="-----"    />
  <op code="3Cbb"      m6809="CWAI  b"              clocks="21"    flags="ddddd"    />
  <op code="3D"        m6809="MUL"                  clocks="11"    flags="--a-a"    />
  <op code="3E"        m6809="RESET"                clocks="*"     flags="*****"    />
  <op code="3F"        m6809="SWI"                  clocks="19"    flags="-----"    />
  <op code="40"        m6809="NEGA"                 clocks="2"     flags="uaaaa"    />
  <op code="43"        m6809="COMA"                 clocks="2"     flags="-aa01"    />
  <op code="44"        m6809="LSRA"                 clocks="2"     flags="-0a-s"    />
  <op code="46"        m6809="RORA"                 clocks="2"     flags="-aa-s"    />
  <op code="47"        m6809="ASRA"                 clocks="2"     flags="uaa-s"    />
  <op code="48"        m6809="ASLA;LSLA"            clocks="2"     flags="naaas"    />
  <op code="49"        m6809="ROLA"                 clocks="2"     flags="-aaas"    />
  <op code="4A"        m6809="DECA"                 clocks="2"     flags="-aaa-"    />
  <op code="4C"        m6809="INCA"                 clocks="2"     flags="-aaa-"    />
  <op code="4D"        m6809="TSTA"                 clocks="2"     flags="-aa0-"    />
  <op code="4F"        m6809="CLRA"                 clocks="2"     flags="-0100"    />
  <op code="50"        m6809="NEGB"                 clocks="2"     flags="uaaaa"    />
  <op code="53"        m6809="COMB"                 clocks="2"     flags="-aa01"    />
  <op code="54"        m6809="LSRB"                 clocks="2"     flags="-0a-s"    />
  <op code="56"        m6809="RORB"                 clocks="2"     flags="-aa-s"    />
  <op code="57"        m6809="ASRB"                 clocks="2"     flags="uaa-s"    />
  <op code="58"        m6809="ASLB;LSLB"            clocks="2"     flags="naaas"    />
  <op code="59"        m6809="ROLB"                 clocks="2"     flags="-aaas"    />
  <op code="5A"        m6809="DECB"                 clocks="2"     flags="-aaa-"    />
  <op code="5C"        m6809="INCB"                 clocks="2"     flags="-aaa-"    />
  <op code="5D"        m6809="TSTB"                 clocks="2"     flags="-aa0-"    />
  <op code="5F"        m6809="CLRB"                 clocks="2"     flags="-0100"    />
  <op code="60yy"      m6809="NEG   y"              clocks="6"     flags="uaaaa"    />
  <op code="63yy"      m6809="COM   y"              clocks="6"     flags="-aa01"    />
  <op code="64yy"      m6809="LSR   y"              clocks="6"     flags="-0a-s"    />
  <op code="66yy"      m6809="ROR   y"              clocks="6"     flags="-aa-s"    />
  <op code="67yy"      m6809="ASR   y"              clocks="6"     flags="uaa-s"    />
  <op code="68yy"      m6809="ASL   y;LSL   y"      clocks="6"     flags="naaas"    />
  <op code="69yy"      m6809="ROL   y"              clocks="6"     flags="-aaas"    />
  <op code="6Ayy"      m6809="DEC   y"              clocks="6"     flags="-aaa-"    />
  <op code="6Cyy"      m6809="INC   y"              clocks="6"     flags="-aaa-"    />
  <op code="6Dyy"      m6809="TST   y"              clocks="6"     flags="-aa0-"    />
  <op code="6Eyy"      m6809="JMP   y"              clocks="3"     flags="-----"    />
  <op code="6Fyy"      m6809="CLR   y"              clocks="6"     flags="-0100"    />
  <op code="70tmtl"    m6809="NEG   t"              clocks="7"     flags="uaaaa"    />
  <op code="73tmtl"    m6809="COM   t"              clocks="7"     flags="-aa01"    />
  <op code="74tmtl"    m6809="LSR   t"              clocks="7"     flags="-0a-s"    />
  <op code="76tmtl"    m6809="ROR   t"              clocks="7"     flags="-aa-s"    />
  <op code="77tmtl"    m6809="ASR   t"              clocks="7"     flags="uaa-s"    />
  <op code="78tmtl"    m6809="ASL   t;LSL   t"      clocks="7"     flags="naaas"    />
  <op code="79tmtl"    m6809="ROL   t"              clocks="7"     flags="-aaas"    />
  <op code="7Atmtl"    m6809="DEC   t"              clocks="7"     flags="-aaa-"    />
  <op code="7Ctmtl"    m6809="INC   t"              clocks="7"     flags="-aaa-"    />
  <op code="7Dtmtl"    m6809="TST   t"              clocks="7"     flags="-aa0-"    />
  <op code="7Etmtl"    m6809="JMP   t"              clocks="3"     flags="-----"    />
  <op code="7Ftmtl"    m6809="CLR   t"              clocks="7"     flags="-0100"    />
  <op code="80bb"      m6809="SUBA  #b"             clocks="2"     flags="uaaaa"    />
  <op code="81bb"      m6809="CMPA  #b"             clocks="2"     flags="uaaaa"    />
  <op code="82bb"      m6809="SBCA  #b"             clocks="2"     flags="uaaaa"    />
  <op code="83wmwl"    m6809="SUBD  #w"             clocks="4"     flags="-aaaa"    />
  <op code="84bb"      m6809="ANDA  #b"             clocks="2"     flags="-aa0-"    />
  <op code="85bb"      m6809="BITA  #b"             clocks="2"     flags="-aa0-"    />
  <op code="86bb"      m6809="LDA   #b"             clocks="2"     flags="-aa0-"    />
  <op code="88bb"      m6809="EORA  #b"             clocks="2"     flags="-aa0-"    />
  <op code="89bb"      m6809="ADCA  #b"             clocks="2"     flags="aaaaa"    />
  <op code="8Abb"      m6809="ORA   #b"             clocks="2"     flags="-aa0-"    />
  <op code="8Bbb"      m6809="ADDA  #b"             clocks="2"     flags="aaaaa"    />
  <op code="8Cwmwl"    m6809="CMPX  #w"             clocks="4"     flags="-aaaa"    />
  <op code="8Drr"      m6809="BSR   r"              clocks="7"     flags="-----"    />
  <op code="8Ewmwl"    m6809="LDX   #w"             clocks="3"     flags="-aa0-"    />
  <op code="90pp"      m6809="SUBA  >p"             clocks="4"     flags="uaaaa"    />
  <op code="91pp"      m6809="CMPA  >p"             clocks="4"     flags="uaaaa"    />
  <op code="92pp"      m6809="SBCA  >p"             clocks="4"     flags="uaaaa"    />
  <op code="93pp"      m6809="SUBD  >p"             clocks="6"     flags="-aaaa"    />
  <op code="94pp"      m6809="ANDA  >p"             clocks="4"     flags="-aa0-"    />
  <op code="95pp"      m6809="BITA  >p"             clocks="4"     flags="-aa0-"    />
  <op code="96pp"      m6809="LDA   >p"             clocks="4"     flags="-aa0-"    />
  <op code="97pp"      m6809="STA   >p"             clocks="4"     flags="-aa0-"    />
  <op code="98pp"      m6809="EORA  >p"             clocks="4"     flags="-aa0-"    />
  <op code="99pp"      m6809="ADCA  >p"             clocks="4"     flags="aaaaa"    />
  <op code="9App"      m6809="ORA   >p"             clocks="4"     flags="-aa0-"    />
  <op code="9Bpp"      m6809="ADDA  >p"             clocks="4"     flags="aaaaa"    />
  <op code="9Cpp"      m6809="CMPX  >p"             clocks="6"     flags="-aaaa"    />
  <op code="9Dpp"      m6809="JSR   >p"             clocks="7"     flags="-----"    />
  <op code="9Epp"      m6809="LDX   >p"             clocks="5"     flags="-aa0-"    />
  <op code="9Fpp"      m6809="STX   >p"             clocks="5"     flags="-aa0-"    />
  <op code="A0yy"      m6809="SUBA  y"              clocks="4"     flags="uaaaa"    />
  <op code="A1yy"      m6809="CMPA  y"              clocks="4"     flags="uaaaa"    />
  <op code="A2yy"      m6809="SBCA  y"              clocks="4"     flags="uaaaa"    />
  <op code="A3yy"      m6809="SUBD  y"              clocks="6"     flags="-aaaa"    />
  <op code="A4yy"      m6809="ANDA  y"              clocks="4"     flags="-aa0-"    />
  <op code="A5yy"      m6809="BITA  y"              clocks="4"     flags="-aa0-"    />
  <op code="A6yy"      m6809="LDA   y"              clocks="4"     flags="-aa0-"    />
  <op code="A7yy"      m6809="STA   y"              clocks="4"     flags="-aa0-"    />
  <op code="A8yy"      m6809="EORA  y"              clocks="4"     flags="-aa0-"    />
  <op code="A9yy"      m6809="ADCA  y"              clocks="4"     flags="aaaaa"    />
  <op code="AAyy"      m6809="ORA   y"              clocks="4"     flags="-aa0-"    />
  <op code="AByy"      m6809="ADDA  y"              clocks="4"     flags="aaaaa"    />
  <op code="ACyy"      m6809="CMPX  y"              clocks="6"     flags="-aaaa"    />
  <op code="ADyy"      m6809="JSR   y"              clocks="7"     flags="-----"    />
  <op code="AEyy"      m6809="LDX   y"              clocks="5"     flags="-aa0-"    />
  <op code="AFyy"      m6809="STX   y"              clocks="5"     flags="-aa0-"    />
  <op code="B0tmtl"    m6809="SUBA  t"              clocks="5"     flags="uaaaa"    />
  <op code="B1tmtl"    m6809="CMPA  t"              clocks="5"     flags="uaaaa"    />
  <op code="B2tmtl"    m6809="SBCA  t"              clocks="5"     flags="uaaaa"    />
  <op code="B3tmtl"    m6809="SUBD  t"              clocks="7"     flags="-aaaa"    />
  <op code="B4tmtl"    m6809="ANDA  t"              clocks="5"     flags="-aa0-"    />
  <op code="B5tmtl"    m6809="BITA  t"              clocks="5"     flags="-aa0-"    />
  <op code="B6tmtl"    m6809="LDA   t"              clocks="5"     flags="-aa0-"    />
  <op code="B7tmtl"    m6809="STA   t"              clocks="5"     flags="-aa0-"    />
  <op code="B8tmtl"    m6809="EORA  t"              clocks="5"     flags="-aa0-"    />
  <op code="B9tmtl"    m6809="ADCA  t"              clocks="5"     flags="aaaaa"    />
  <op code="BAtmtl"    m6809="ORA   t"              clocks="5"     flags="-aa0-"    />
  <op code="BBtmtl"    m6809="ADDA  t"              clocks="5"     flags="aaaaa"    />
  <op code="BCtmtl"    m6809="CMPX  t"              clocks="7"     flags="-aaaa"    />
  <op code="BDtmtl"    m6809="JSR   t"              clocks="8"     flags="-----"    />
  <op code="BEtmtl"    m6809="LDX   t"              clocks="6"     flags="-aa0-"    />
  <op code="BFtmtl"    m6809="STX   t"              clocks="6"     flags="-aa0-"    />
  <op code="C0bb"      m6809="SUBB  #b"             clocks="2"     flags="uaaaa"    />
  <op code="C1bb"      m6809="CMPB  #b"             clocks="2"     flags="uaaaa"    />
  <op code="C2bb"      m6809="SBCB  #b"             clocks="2"     flags="uaaaa"    />
  <op code="C3wmwl"    m6809="ADDD  #w"             clocks="4"     flags="-aaaa"    />
  <op code="C4bb"      m6809="ANDB  #b"             clocks="2"     flags="-aa0-"    />
  <op code="C5bb"      m6809="BITB  #b"             clocks="2"     flags="-aa0-"    />
  <op code="C6bb"      m6809="LDB   #b"             clocks="2"     flags="-aa0-"    />
  <op code="C8bb"      m6809="EORB  #b"             clocks="2"     flags="-aa0-"    />
  <op code="C9bb"      m6809="ADCB  #b"             clocks="2"     flags="aaaaa"    />
  <op code="CAbb"      m6809="ORB   #b"             clocks="2"     flags="-aa0-"    />
  <op code="CBbb"      m6809="ADDB  #b"             clocks="2"     flags="aaaaa"    />
  <op code="CCwmwl"    m6809="LDD   #w"             clocks="3"     flags="-aa0-"    />
  <op code="CEwmwl"    m6809="LDU   #w"             clocks="3"     flags="-aa0-"    />
  <op code="D0pp"      m6809="SUBB  >p"             clocks="4"     flags="uaaaa"    />
  <op code="D1pp"      m6809="CMPB  >p"             clocks="4"     flags="uaaaa"    />
  <op code="D2pp"      m6809="SBCB  >p"             clocks="4"     flags="uaaaa"    />
  <op code="D3pp"      m6809="ADDD  >p"             clocks="6"     flags="-aaaa"    />
  <op code="D4pp"      m6809="ANDB  >p"             clocks="4"     flags="-aa0-"    />
  <op code="D5pp"      m6809="BITB  >p"             clocks="4"     flags="-aa0-"    />
  <op code="D6pp"      m6809="LDB   >p"             clocks="4"     flags="-aa0-"    />
  <op code="D7pp"      m6809="STB   >p"             clocks="4"     flags="-aa0-"    />
  <op code="D8pp"      m6809="EORB  >p"             clocks="4"     flags="-aa0-"    />
  <op code="D9pp"      m6809="ADCB  >p"             clocks="4"     flags="aaaaa"    />
  <op code="DApp"      m6809="ORB   >p"             clocks="4"     flags="-aa0-"    />
  <op code="DBpp"      m6809="ADDB  >p"             clocks="4"     flags="aaaaa"    />
  <op code="DCpp"      m6809="LDD   >p"             clocks="5"     flags="-aa0-"    />
  <op code="DDpp"      m6809="STD   >p"             clocks="5"     flags="-aa0-"    />
  <op code="DEpp"      m6809="LDU   >p"             clocks="5"     flags="-aa0-"    />
  <op code="DFpp"      m6809="STU   >p"             clocks="5"     flags="-aa0-"    />
  <op code="E0yy"      m6809="SUBB  y"              clocks="4"     flags="uaaaa"    />
  <op code="E1yy"      m6809="CMPB  y"              clocks="4"     flags="uaaaa"    />
  <op code="E2yy"      m6809="SBCB  y"              clocks="4"     flags="uaaaa"    />
  <op code="E3yy"      m6809="ADDD  y"              clocks="6"     flags="-aaaa"    />
  <op code="E4yy"      m6809="ANDB  y"              clocks="4"     flags="-aa0-"    />
  <op code="E5yy"      m6809="BITB  y"              clocks="4"     flags="-aa0-"    />
  <op code="E6yy"      m6809="LDB   y"              clocks="4"     flags="-aa0-"    />
  <op code="E7yy"      m6809="STB   y"              clocks="4"     flags="-aa0-"    />
  <op code="E8yy"      m6809="EORB  y"              clocks="4"     flags="-aa0-"    />
  <op code="E9yy"      m6809="ADCB  y"              clocks="4"     flags="aaaaa"    />
  <op code="EAyy"      m6809="ORB   y"              clocks="4"     flags="-aa0-"    />
  <op code="EByy"      m6809="ADDB  y"              clocks="4"     flags="aaaaa"    />
  <op code="ECyy"      m6809="LDD   y"              clocks="5"     flags="-aa0-"    />
  <op code="EDyy"      m6809="STD   y"              clocks="5"     flags="-aa0-"    />
  <op code="EEyy"      m6809="LDU   y"              clocks="5"     flags="-aa0-"    />
  <op code="EFyy"      m6809="STU   y"              clocks="5"     flags="-aa0-"    />
  <op code="F0tmtl"    m6809="SUBB  t"              clocks="5"     flags="uaaaa"    />
  <op code="F1tmtl"    m6809="CMPB  t"              clocks="5"     flags="uaaaa"    />
  <op code="F2tmtl"    m6809="SBCB  t"              clocks="5"     flags="uaaaa"    />
  <op code="F3tmtl"    m6809="ADDD  t"              clocks="7"     flags="-aaaa"    />
  <op code="F4tmtl"    m6809="ANDB  t"              clocks="5"     flags="-aa0-"    />
  <op code="F5tmtl"    m6809="BITB  t"              clocks="5"     flags="-aa0-"    />
  <op code="F6tmtl"    m6809="LDB   t"              clocks="5"     flags="-aa0-"    />
  <op code="F7tmtl"    m6809="STB   t"              clocks="5"     flags="-aa0-"    />
  <op code="F8tmtl"    m6809="EORB  t"              clocks="5"     flags="-aa0-"    />
  <op code="F9tmtl"    m6809="ADCB  t"              clocks="5"     flags="aaaaa"    />
  <op code="FAtmtl"    m6809="ORB   t"              clocks="5"     flags="-aa0-"    />
  <op code="FBtmtl"    m6809="ADDB  t"              clocks="5"     flags="aaaaa"    />
  <op code="FCtmtl"    m6809="LDD   t"              clocks="6"     flags="-aa0-"    />
  <op code="FDtmtl"    m6809="STD   t"              clocks="6"     flags="-aa0-"    />
  <op code="FEtmtl"    m6809="LDU   t"              clocks="6"     flags="-aa0-"    />
  <op code="FFtmtl"    m6809="STU   t"              clocks="6"     flags="-aa0-"    />
		</opcodes>
		
		<indexed>
  <post code="00"       m6809="0,X"      clocks="1" />
  <post code="01"       m6809="1,X"      clocks="1" />
  <post code="02"       m6809="2,X"      clocks="1" />
  <post code="03"       m6809="3,X"      clocks="1" />
  <post code="04"       m6809="4,X"      clocks="1" />
  <post code="05"       m6809="5,X"      clocks="1" />
  <post code="06"       m6809="6,X"      clocks="1" />
  <post code="07"       m6809="7,X"      clocks="1" />
  <post code="08"       m6809="8,X"      clocks="1" />
  <post code="09"       m6809="9,X"      clocks="1" />
  <post code="0A"       m6809="10,X"     clocks="1" />
  <post code="0B"       m6809="11,X"     clocks="1" />
  <post code="0C"       m6809="12,X"     clocks="1" />
  <post code="0D"       m6809="13,X"     clocks="1" />
  <post code="0E"       m6809="14,X"     clocks="1" />
  <post code="0F"       m6809="15,X"     clocks="1" />
  <post code="10"       m6809="-16,X"    clocks="1" />
  <post code="11"       m6809="-15,X"    clocks="1" />
  <post code="12"       m6809="-14,X"    clocks="1" />
  <post code="13"       m6809="-13,X"    clocks="1" />
  <post code="14"       m6809="-12,X"    clocks="1" />
  <post code="15"       m6809="-11,X"    clocks="1" />
  <post code="16"       m6809="-10,X"    clocks="1" />
  <post code="17"       m6809="-9,X"     clocks="1" />
  <post code="18"       m6809="-8,X"     clocks="1" />
  <post code="19"       m6809="-7,X"     clocks="1" />
  <post code="1A"       m6809="-6,X"     clocks="1" />
  <post code="1B"       m6809="-5,X"     clocks="1" />
  <post code="1C"       m6809="-4,X"     clocks="1" />
  <post code="1D"       m6809="-3,X"     clocks="1" />
  <post code="1E"       m6809="-2,X"     clocks="1" />
  <post code="1F"       m6809="-1,X"     clocks="1" />
  <post code="20"       m6809="0,Y"      clocks="1" />
  <post code="21"       m6809="1,Y"      clocks="1" />
  <post code="22"       m6809="2,Y"      clocks="1" />
  <post code="23"       m6809="3,Y"      clocks="1" />
  <post code="24"       m6809="4,Y"      clocks="1" />
  <post code="25"       m6809="5,Y"      clocks="1" />
  <post code="26"       m6809="6,Y"      clocks="1" />
  <post code="27"       m6809="7,Y"      clocks="1" />
  <post code="28"       m6809="8,Y"      clocks="1" />
  <post code="29"       m6809="9,Y"      clocks="1" />
  <post code="2A"       m6809="10,Y"     clocks="1" />
  <post code="2B"       m6809="11,Y"     clocks="1" />
  <post code="2C"       m6809="12,Y"     clocks="1" />
  <post code="2D"       m6809="13,Y"     clocks="1" />
  <post code="2E"       m6809="14,Y"     clocks="1" />
  <post code="2F"       m6809="15,Y"     clocks="1" />
  <post code="30"       m6809="-16,Y"    clocks="1" />
  <post code="31"       m6809="-15,Y"    clocks="1" />
  <post code="32"       m6809="-14,Y"    clocks="1" />
  <post code="33"       m6809="-13,Y"    clocks="1" />
  <post code="34"       m6809="-12,Y"    clocks="1" />
  <post code="35"       m6809="-11,Y"    clocks="1" />
  <post code="36"       m6809="-10,Y"    clocks="1" />
  <post code="37"       m6809="-9,Y"     clocks="1" />
  <post code="38"       m6809="-8,Y"     clocks="1" />
  <post code="39"       m6809="-7,Y"     clocks="1" />
  <post code="3A"       m6809="-6,Y"     clocks="1" />
  <post code="3B"       m6809="-5,Y"     clocks="1" />
  <post code="3C"       m6809="-4,Y"     clocks="1" />
  <post code="3D"       m6809="-3,Y"     clocks="1" />
  <post code="3E"       m6809="-2,Y"     clocks="1" />
  <post code="3F"       m6809="-1,Y"     clocks="1" />
  <post code="40"       m6809="0,U"      clocks="1" />
  <post code="41"       m6809="1,U"      clocks="1" />
  <post code="42"       m6809="2,U"      clocks="1" />
  <post code="43"       m6809="3,U"      clocks="1" />
  <post code="44"       m6809="4,U"      clocks="1" />
  <post code="45"       m6809="5,U"      clocks="1" />
  <post code="46"       m6809="6,U"      clocks="1" />
  <post code="47"       m6809="7,U"      clocks="1" />
  <post code="48"       m6809="8,U"      clocks="1" />
  <post code="49"       m6809="9,U"      clocks="1" />
  <post code="4A"       m6809="10,U"     clocks="1" />
  <post code="4B"       m6809="11,U"     clocks="1" />
  <post code="4C"       m6809="12,U"     clocks="1" />
  <post code="4D"       m6809="13,U"     clocks="1" />
  <post code="4E"       m6809="14,U"     clocks="1" />
  <post code="4F"       m6809="15,U"     clocks="1" />
  <post code="50"       m6809="-16,U"    clocks="1" />
  <post code="51"       m6809="-15,U"    clocks="1" />
  <post code="52"       m6809="-14,U"    clocks="1" />
  <post code="53"       m6809="-13,U"    clocks="1" />
  <post code="54"       m6809="-12,U"    clocks="1" />
  <post code="55"       m6809="-11,U"    clocks="1" />
  <post code="56"       m6809="-10,U"    clocks="1" />
  <post code="57"       m6809="-9,U"     clocks="1" />
  <post code="58"       m6809="-8,U"     clocks="1" />
  <post code="59"       m6809="-7,U"     clocks="1" />
  <post code="5A"       m6809="-6,U"     clocks="1" />
  <post code="5B"       m6809="-5,U"     clocks="1" />
  <post code="5C"       m6809="-4,U"     clocks="1" />
  <post code="5D"       m6809="-3,U"     clocks="1" />
  <post code="5E"       m6809="-2,U"     clocks="1" />
  <post code="5F"       m6809="-1,U"     clocks="1" />
  <post code="60"       m6809="0,S"      clocks="1" />
  <post code="61"       m6809="1,S"      clocks="1" />
  <post code="62"       m6809="2,S"      clocks="1" />
  <post code="63"       m6809="3,S"      clocks="1" />
  <post code="64"       m6809="4,S"      clocks="1" />
  <post code="65"       m6809="5,S"      clocks="1" />
  <post code="66"       m6809="6,S"      clocks="1" />
  <post code="67"       m6809="7,S"      clocks="1" />
  <post code="68"       m6809="8,S"      clocks="1" />
  <post code="69"       m6809="9,S"      clocks="1" />
  <post code="6A"       m6809="10,S"     clocks="1" />
  <post code="6B"       m6809="11,S"     clocks="1" />
  <post code="6C"       m6809="12,S"     clocks="1" />
  <post code="6D"       m6809="13,S"     clocks="1" />
  <post code="6E"       m6809="14,S"     clocks="1" />
  <post code="6F"       m6809="15,S"     clocks="1" />
  <post code="70"       m6809="-16,S"    clocks="1" />
  <post code="71"       m6809="-15,S"    clocks="1" />
  <post code="72"       m6809="-14,S"    clocks="1" />
  <post code="73"       m6809="-13,S"    clocks="1" />
  <post code="74"       m6809="-12,S"    clocks="1" />
  <post code="75"       m6809="-11,S"    clocks="1" />
  <post code="76"       m6809="-10,S"    clocks="1" />
  <post code="77"       m6809="-9,S"     clocks="1" />
  <post code="78"       m6809="-8,S"     clocks="1" />
  <post code="79"       m6809="-7,S"     clocks="1" />
  <post code="7A"       m6809="-6,S"     clocks="1" />
  <post code="7B"       m6809="-5,S"     clocks="1" />
  <post code="7C"       m6809="-4,S"     clocks="1" />
  <post code="7D"       m6809="-3,S"     clocks="1" />
  <post code="7E"       m6809="-2,S"     clocks="1" />
  <post code="7F"       m6809="-1,S"     clocks="1" />
  <post code="80"       m6809=",X+"      clocks="2" />
  <post code="81"       m6809=",X++"     clocks="3" />
  <post code="82"       m6809=",-X"      clocks="2" />
  <post code="83"       m6809=",--X"     clocks="3" />
  <post code="84"       m6809=",X"       clocks="0" />
  <post code="85"       m6809="B,X"      clocks="1" />
  <post code="86"       m6809="A,X"      clocks="1" />
  <post code="88jj"     m6809="j,X"      clocks="1" />
  <post code="89kmkl"   m6809="k,X"      clocks="4" />
  <post code="8B"       m6809="D,X"      clocks="4" />
  <post code="8Cjj"     m6809="j,PC"     clocks="1" />
  <post code="8Dkmkl"   m6809="k,PC"     clocks="4" />
  <post code="91"       m6809="[,X++]"   clocks="6" />
  <post code="93"       m6809="[,--X]"   clocks="6" />
  <post code="94"       m6809="[,X]"     clocks="3" />
  <post code="95"       m6809="[B,X]"    clocks="4" />
  <post code="96"       m6809="[A,X]"    clocks="4" />
  <post code="98jj"     m6809="[j,X]"    clocks="4" />
  <post code="99kmkl"   m6809="[k,X]"    clocks="7" />
  <post code="9B"       m6809="[D,X]"    clocks="7" />
  <post code="9Cjj"     m6809="[j,PC]"   clocks="4" />
  <post code="9Dkmkl"   m6809="[k,PC]"   clocks="7" />
  <post code="9Ftmtl"   m6809="[t]"      clocks="5" />
  <post code="A0"       m6809=",Y+"      clocks="2" />
  <post code="A1"       m6809=",Y++"     clocks="3" />
  <post code="A2"       m6809=",-Y"      clocks="2" />
  <post code="A3"       m6809=",--Y"     clocks="3" />
  <post code="A4"       m6809=",Y"       clocks="0" />
  <post code="A5"       m6809="B,Y"      clocks="1" />
  <post code="A6"       m6809="A,Y"      clocks="1" />
  <post code="A8jj"     m6809="j,Y"      clocks="1" />
  <post code="A9kmkl"   m6809="k,Y"      clocks="4" />
  <post code="AB"       m6809="D,Y"      clocks="4" />
  <post code="ACjj"     m6809="j,PC"     clocks="1" />
  <post code="ADkmkl"   m6809="k,PC"     clocks="4" />
  <post code="B1"       m6809="[,Y++]"   clocks="6" />
  <post code="B3"       m6809="[,--Y]"   clocks="6" />
  <post code="B4"       m6809="[,Y]"     clocks="3" />
  <post code="B5"       m6809="[B,Y]"    clocks="4" />
  <post code="B6"       m6809="[A,Y]"    clocks="4" />
  <post code="B8jj"     m6809="[j,Y]"    clocks="4" />
  <post code="B9kmkl"   m6809="[k,Y]"    clocks="7" />
  <post code="BB"       m6809="[D,Y]"    clocks="7" />
  <post code="BCjj"     m6809="[j,PC]"   clocks="4" />
  <post code="BDkmkl"   m6809="[k,PC]"   clocks="7" />
  <post code="BFtmtl"   m6809="[m]"      clocks="5" />
  <post code="C0"       m6809=",U+"      clocks="2" />
  <post code="C1"       m6809=",U++"     clocks="3" />
  <post code="C2"       m6809=",-U"      clocks="2" />
  <post code="C3"       m6809=",--U"     clocks="3" />
  <post code="C4"       m6809=",U"       clocks="0" />
  <post code="C5"       m6809="B,U"      clocks="1" />
  <post code="C6"       m6809="A,U"      clocks="1" />
  <post code="C8jj"     m6809="j,U"      clocks="1" />
  <post code="C9kmkl"   m6809="k,U"      clocks="4" />
  <post code="CB"       m6809="D,U"      clocks="4" />
  <post code="CCjj"     m6809="j,PC"     clocks="1" />
  <post code="CDkmkl"   m6809="k,PC"     clocks="4" />
  <post code="D1"       m6809="[,U++]"   clocks="6" />
  <post code="D3"       m6809="[,--U]"   clocks="6" />
  <post code="D4"       m6809="[,U]"     clocks="3" />
  <post code="D5"       m6809="[B,U]"    clocks="4" />
  <post code="D6"       m6809="[A,U]"    clocks="4" />
  <post code="D8jj"     m6809="[j,U]"    clocks="4" />
  <post code="D9kmkl"   m6809="[k,U]"    clocks="7" />
  <post code="DB"       m6809="[D,U]"    clocks="7" />
  <post code="DCjj"     m6809="[j,PC]"   clocks="4" />
  <post code="DDkmkl"   m6809="[k,PC]"   clocks="7" />
  <post code="DFtmtl"   m6809="[m]"      clocks="5" />
  <post code="E0"       m6809=",S+"      clocks="2" />
  <post code="E1"       m6809=",S++"     clocks="3" />
  <post code="E2"       m6809=",-S"      clocks="2" />
  <post code="E3"       m6809=",--S"     clocks="3" />
  <post code="E4"       m6809=",S"       clocks="0" />
  <post code="E5"       m6809="B,S"      clocks="1" />
  <post code="E6"       m6809="A,S"      clocks="1" />
  <post code="E8jj"     m6809="j,S"      clocks="1" />
  <post code="E9kmkl"   m6809="k,S"      clocks="4" />
  <post code="EB"       m6809="D,S"      clocks="4" />
  <post code="ECjj"     m6809="j,PC"     clocks="1" />
  <post code="EDkmkl"   m6809="k,PC"     clocks="4" />
  <post code="F1"       m6809="[,S++]"   clocks="6" />
  <post code="F3"       m6809="[,--S]"   clocks="6" />
  <post code="F4"       m6809="[,S]"     clocks="3" />
  <post code="F5"       m6809="[B,S]"    clocks="4" />
  <post code="F6"       m6809="[A,S]"    clocks="4" />
  <post code="F8jj"     m6809="[j,S]"    clocks="4" />
  <post code="F9kmkl"   m6809="[k,S]"    clocks="7" />
  <post code="FB"       m6809="[D,S]"    clocks="7" />
  <post code="FCjj"     m6809="[j,PC]"   clocks="4" />
  <post code="FDkmkl"   m6809="[k,PC]"   clocks="7" />
  <post code="FFtmtl"   m6809="[t]"      clocks="5" />
		</indexed>

</ProcessorFamily>