Files
dockipelago/worlds/tloz_ooa/patching/z80asm/MnemonicsTree.py
Jonathan Tinney 7971961166
Some checks failed
Analyze modified files / flake8 (push) Failing after 2m28s
Build / build-win (push) Has been cancelled
Build / build-ubuntu2204 (push) Has been cancelled
ctest / Test C++ ubuntu-latest (push) Has been cancelled
ctest / Test C++ windows-latest (push) Has been cancelled
Analyze modified files / mypy (push) Has been cancelled
Build and Publish Docker Images / Push Docker image to Docker Hub (push) Successful in 5m4s
Native Code Static Analysis / scan-build (push) Failing after 5m2s
type check / pyright (push) Successful in 1m7s
unittests / Test Python 3.11.2 ubuntu-latest (push) Failing after 16m23s
unittests / Test Python 3.12 ubuntu-latest (push) Failing after 28m19s
unittests / Test Python 3.13 ubuntu-latest (push) Failing after 14m49s
unittests / Test hosting with 3.13 on ubuntu-latest (push) Successful in 5m0s
unittests / Test Python 3.13 macos-latest (push) Has been cancelled
unittests / Test Python 3.11 windows-latest (push) Has been cancelled
unittests / Test Python 3.13 windows-latest (push) Has been cancelled
add schedule I, sonic 1/frontiers/heroes, spirit island
2026-04-02 23:46:36 -07:00

1227 lines
25 KiB
Python

MNEMONICS = {
"nop": {
"": 0x00
},
"ld": {
"a": {
"a": 0x7f,
"b": 0x78,
"c": 0x79,
"d": 0x7a,
"e": 0x7b,
"h": 0x7c,
"l": 0x7d,
"(bc)": 0x0a,
"(de)": 0x1a,
"(hl)": 0x7e,
"$8": 0x3e,
"($16)": 0xfa,
"(ff00+c)": 0xf2,
},
"b": {
"a": 0x47,
"b": 0x40,
"c": 0x41,
"d": 0x42,
"e": 0x43,
"h": 0x44,
"l": 0x45,
"(hl)": 0x46,
"$8": 0x06,
},
"c": {
"a": 0x4f,
"b": 0x48,
"c": 0x49,
"d": 0x4a,
"e": 0x4b,
"h": 0x4c,
"l": 0x4d,
"(hl)": 0x4e,
"$8": 0x0e,
},
"d": {
"a": 0x57,
"b": 0x50,
"c": 0x51,
"d": 0x52,
"e": 0x53,
"h": 0x54,
"l": 0x55,
"(hl)": 0x56,
"$8": 0x16,
},
"e": {
"a": 0x5f,
"b": 0x58,
"c": 0x59,
"d": 0x5a,
"e": 0x5b,
"h": 0x5c,
"l": 0x5d,
"(hl)": 0x5e,
"$8": 0x1e,
},
"h": {
"a": 0x67,
"b": 0x60,
"c": 0x61,
"d": 0x62,
"e": 0x63,
"h": 0x64,
"l": 0x65,
"(hl)": 0x66,
"$8": 0x26,
},
"l": {
"a": 0x6f,
"b": 0x68,
"c": 0x69,
"d": 0x6a,
"e": 0x6b,
"h": 0x6c,
"l": 0x6d,
"(hl)": 0x6e,
"$8": 0x2e,
},
"bc": {
"$16": 0x01,
},
"de": {
"$16": 0x11
},
"hl": {
"$16": 0x21,
"sp+$8": 0xf8
},
"(bc)": {
"a": 0x02,
},
"(de)": {
"a": 0x12
},
"(hl)": {
"a": 0x77,
"b": 0x70,
"c": 0x71,
"d": 0x72,
"e": 0x73,
"h": 0x74,
"l": 0x75,
"$8": 0x36
},
"($16)": {
"a": 0xea,
"sp": 0x08,
},
"sp": {
"$16": 0x31,
"hl": 0xf9,
},
"(ff00+c)": {"a": 0xe2},
},
"ldi": {
"(hl)": {"a": 0x22},
"a": {"(hl)": 0x2a},
},
"ldd": {
"(hl)": {
"a": 0x32
},
"a": {
"(hl)": 0x3a
}
},
"ldh": {
"($8)": {"a": 0xe0},
"a": {"($8)": 0xf0},
},
"inc": {
"a": 0x3c,
"b": 0x04,
"c": 0x0c,
"d": 0x14,
"e": 0x1c,
"h": 0x24,
"l": 0x2c,
"bc": 0x03,
"de": 0x13,
"hl": 0x23,
"(hl)": 0x34,
"sp": 0x33,
},
"dec": {
"a": 0x3d,
"b": 0x05,
"c": 0x0d,
"d": 0x15,
"e": 0x1d,
"h": 0x25,
"l": 0x2d,
"bc": 0x0b,
"de": 0x1b,
"hl": 0x2b,
"(hl)": 0x35,
"sp": 0x3b
},
"add": {
"a": {
"a": 0x87,
"b": 0x80,
"c": 0x81,
"d": 0x82,
"e": 0x83,
"h": 0x84,
"l": 0x85,
"(hl)": 0x86,
"$8": 0xc6,
},
"hl": {
"bc": 0x09,
"de": 0x19,
"hl": 0x29,
"sp": 0x39
},
"sp": {"$8": 0xe8}
},
"adc": {
"a": {
"a": 0x8f,
"b": 0x88,
"c": 0x89,
"d": 0x8a,
"e": 0x8b,
"h": 0x8c,
"l": 0x8d,
"(hl)": 0x8e,
"$8": 0xce,
}
},
"sub": {
"a": 0x97,
"b": 0x90,
"c": 0x91,
"d": 0x92,
"e": 0x93,
"h": 0x94,
"l": 0x95,
"(hl)": 0x96,
"$8": 0xd6,
},
"sbc": {
"a": {
"a": 0x9f,
"b": 0x98,
"c": 0x99,
"d": 0x9a,
"e": 0x9b,
"h": 0x9c,
"l": 0x9d,
"(hl)": 0x9e,
"$8": 0xde,
}
},
"and": {
"a": 0xa7,
"b": 0xa0,
"c": 0xa1,
"d": 0xa2,
"e": 0xa3,
"h": 0xa4,
"l": 0xa5,
"(hl)": 0xa6,
"$8": 0xe6,
},
"xor": {
"a": 0xaf,
"b": 0xa8,
"c": 0xa9,
"d": 0xaa,
"e": 0xab,
"h": 0xac,
"l": 0xad,
"(hl)": 0xae,
"$8": 0xee
},
"or": {
"a": 0xb7,
"b": 0xb0,
"c": 0xb1,
"d": 0xb2,
"e": 0xb3,
"h": 0xb4,
"l": 0xb5,
"(hl)": 0xb6,
"$8": 0xf6,
},
"cp": {
"a": 0xbf,
"b": 0xb8,
"c": 0xb9,
"d": 0xba,
"e": 0xbb,
"h": 0xbc,
"l": 0xbd,
"(hl)": 0xbe,
"$8": 0xfe,
},
"jr": {
"$8": 0x18,
"nz": {"$8": 0x20},
"z": {"$8": 0x28},
"nc": {"$8": 0x30},
"c": {"$8": 0x38},
},
"jp": {
"$16": 0xc3,
"nz": {"$16": 0xc2},
"z": {"$16": 0xca},
"nc": {"$16": 0xd2},
"c": {"$16": 0xda},
"(hl)": 0xe9,
},
"call": {
"$16": 0xcd,
"nz": {"$16": 0xc4},
"z": {"$16": 0xcc},
"nc": {"$16": 0xd4},
"c": {"$16": 0xdc}
},
"ret": {
"": 0xc9,
"z": 0xc8,
"nz": 0xc0,
"c": 0xd8,
"nc": 0xd0,
},
"push": {
"af": 0xf5,
"bc": 0xc5,
"de": 0xd5,
"hl": 0xe5,
},
"pop": {
"af": 0xf1,
"bc": 0xc1,
"de": 0xd1,
"hl": 0xe1,
},
"rst": {
"00": 0xc7,
"08": 0xcf,
"10": 0xd7,
"18": 0xdf,
"20": 0xe7,
"28": 0xef,
"30": 0xf7,
"38": 0xff,
},
"rlca": {
"": 0x07
},
"rrca": {
"": 0x0f
},
"rla": {
"": 0x17
},
"rra": {
"": 0x1f
},
"daa": {
"": 0x27
},
"cpl": {
"": 0x2f
},
"scf": {
"": 0x37
},
"ccf": {
"": 0x3f
},
"reti": {
"": 0xd9
},
"di": {
"": 0xf3
},
"ei": {
"": 0xfb
},
"stop": {"0": 0x10},
"halt": {
"": 0x76
},
# CB-prefixed mnemonics
"rlc": {
"a": [0xcb, 0x07],
"b": [0xcb, 0x00],
"c": [0xcb, 0x01],
"d": [0xcb, 0x02],
"e": [0xcb, 0x03],
"h": [0xcb, 0x04],
"l": [0xcb, 0x05],
"(hl)": [0xcb, 0x06],
},
"rrc": {
"a": [0xcb, 0x0f],
"b": [0xcb, 0x08],
"c": [0xcb, 0x09],
"d": [0xcb, 0x0a],
"e": [0xcb, 0x0b],
"h": [0xcb, 0x0c],
"l": [0xcb, 0x0d],
"(hl)": [0xcb, 0x0e],
},
"rl": {
"a": [0xcb, 0x17],
"b": [0xcb, 0x10],
"c": [0xcb, 0x11],
"d": [0xcb, 0x12],
"e": [0xcb, 0x13],
"h": [0xcb, 0x14],
"l": [0xcb, 0x15],
"(hl)": [0xcb, 0x16],
},
"rr": {
"a": [0xcb, 0x1f],
"b": [0xcb, 0x18],
"c": [0xcb, 0x19],
"d": [0xcb, 0x1a],
"e": [0xcb, 0x1b],
"h": [0xcb, 0x1c],
"l": [0xcb, 0x1d],
"(hl)": [0xcb, 0x1e],
},
"sla": {
"a": [0xcb, 0x27],
"b": [0xcb, 0x20],
"c": [0xcb, 0x21],
"d": [0xcb, 0x22],
"e": [0xcb, 0x23],
"h": [0xcb, 0x24],
"l": [0xcb, 0x25],
"(hl)": [0xcb, 0x26],
},
"sra": {
"a": [0xcb, 0x2f],
"b": [0xcb, 0x28],
"c": [0xcb, 0x29],
"d": [0xcb, 0x2a],
"e": [0xcb, 0x2b],
"h": [0xcb, 0x2c],
"l": [0xcb, 0x2d],
"(hl)": [0xcb, 0x2e],
},
"swap": {
"a": [0xcb, 0x37],
"b": [0xcb, 0x30],
"c": [0xcb, 0x31],
"d": [0xcb, 0x32],
"e": [0xcb, 0x33],
"h": [0xcb, 0x34],
"l": [0xcb, 0x35],
"(hl)": [0xcb, 0x36],
},
"srl": {
"a": [0xcb, 0x3f],
"b": [0xcb, 0x38],
"c": [0xcb, 0x39],
"d": [0xcb, 0x3a],
"e": [0xcb, 0x3b],
"h": [0xcb, 0x3c],
"l": [0xcb, 0x3d],
"(hl)": [0xcb, 0x3e],
},
"bit": {
"0": {
"a": [0xcb, 0x47],
"b": [0xcb, 0x40],
"c": [0xcb, 0x41],
"d": [0xcb, 0x42],
"e": [0xcb, 0x43],
"h": [0xcb, 0x44],
"l": [0xcb, 0x45],
"(hl)": [0xcb, 0x46],
},
"1": {
"a": [0xcb, 0x4f],
"b": [0xcb, 0x48],
"c": [0xcb, 0x49],
"d": [0xcb, 0x4a],
"e": [0xcb, 0x4b],
"h": [0xcb, 0x4c],
"l": [0xcb, 0x4d],
"(hl)": [0xcb, 0x4e],
},
"2": {
"a": [0xcb, 0x57],
"b": [0xcb, 0x50],
"c": [0xcb, 0x51],
"d": [0xcb, 0x52],
"e": [0xcb, 0x53],
"h": [0xcb, 0x54],
"l": [0xcb, 0x55],
"(hl)": [0xcb, 0x56],
},
"3": {
"a": [0xcb, 0x5f],
"b": [0xcb, 0x58],
"c": [0xcb, 0x59],
"d": [0xcb, 0x5a],
"e": [0xcb, 0x5b],
"h": [0xcb, 0x5c],
"l": [0xcb, 0x5d],
"(hl)": [0xcb, 0x5e],
},
"4": {
"a": [0xcb, 0x67],
"b": [0xcb, 0x60],
"c": [0xcb, 0x61],
"d": [0xcb, 0x62],
"e": [0xcb, 0x63],
"h": [0xcb, 0x64],
"l": [0xcb, 0x65],
"(hl)": [0xcb, 0x66],
},
"5": {
"a": [0xcb, 0x6f],
"b": [0xcb, 0x68],
"c": [0xcb, 0x69],
"d": [0xcb, 0x6a],
"e": [0xcb, 0x6b],
"h": [0xcb, 0x6c],
"l": [0xcb, 0x6d],
"(hl)": [0xcb, 0x6e],
},
"6": {
"a": [0xcb, 0x77],
"b": [0xcb, 0x70],
"c": [0xcb, 0x71],
"d": [0xcb, 0x72],
"e": [0xcb, 0x73],
"h": [0xcb, 0x74],
"l": [0xcb, 0x75],
"(hl)": [0xcb, 0x76],
},
"7": {
"a": [0xcb, 0x7f],
"b": [0xcb, 0x78],
"c": [0xcb, 0x79],
"d": [0xcb, 0x7a],
"e": [0xcb, 0x7b],
"h": [0xcb, 0x7c],
"l": [0xcb, 0x7d],
"(hl)": [0xcb, 0x7e],
},
},
"res": {
"0": {
"a": [0xcb, 0x87],
"b": [0xcb, 0x80],
"c": [0xcb, 0x81],
"d": [0xcb, 0x82],
"e": [0xcb, 0x83],
"h": [0xcb, 0x84],
"l": [0xcb, 0x85],
"(hl)": [0xcb, 0x86],
},
"1": {
"a": [0xcb, 0x8f],
"b": [0xcb, 0x88],
"c": [0xcb, 0x89],
"d": [0xcb, 0x8a],
"e": [0xcb, 0x8b],
"h": [0xcb, 0x8c],
"l": [0xcb, 0x8d],
"(hl)": [0xcb, 0x8e],
},
"2": {
"a": [0xcb, 0x97],
"b": [0xcb, 0x90],
"c": [0xcb, 0x91],
"d": [0xcb, 0x92],
"e": [0xcb, 0x93],
"h": [0xcb, 0x94],
"l": [0xcb, 0x95],
"(hl)": [0xcb, 0x96],
},
"3": {
"a": [0xcb, 0x9f],
"b": [0xcb, 0x98],
"c": [0xcb, 0x99],
"d": [0xcb, 0x9a],
"e": [0xcb, 0x9b],
"h": [0xcb, 0x9c],
"l": [0xcb, 0x9d],
"(hl)": [0xcb, 0x9e],
},
"4": {
"a": [0xcb, 0xa7],
"b": [0xcb, 0xa0],
"c": [0xcb, 0xa1],
"d": [0xcb, 0xa2],
"e": [0xcb, 0xa3],
"h": [0xcb, 0xa4],
"l": [0xcb, 0xa5],
"(hl)": [0xcb, 0xa6],
},
"5": {
"a": [0xcb, 0xaf],
"b": [0xcb, 0xa8],
"c": [0xcb, 0xa9],
"d": [0xcb, 0xaa],
"e": [0xcb, 0xab],
"h": [0xcb, 0xac],
"l": [0xcb, 0xad],
"(hl)": [0xcb, 0xae],
},
"6": {
"a": [0xcb, 0xb7],
"b": [0xcb, 0xb0],
"c": [0xcb, 0xb1],
"d": [0xcb, 0xb2],
"e": [0xcb, 0xb3],
"h": [0xcb, 0xb4],
"l": [0xcb, 0xb5],
"(hl)": [0xcb, 0xb6],
},
"7": {
"a": [0xcb, 0xbf],
"b": [0xcb, 0xb8],
"c": [0xcb, 0xb9],
"d": [0xcb, 0xba],
"e": [0xcb, 0xbb],
"h": [0xcb, 0xbc],
"l": [0xcb, 0xbd],
"(hl)": [0xcb, 0xbe],
},
},
"set": {
"0": {
"a": [0xcb, 0xc7],
"b": [0xcb, 0xc0],
"c": [0xcb, 0xc1],
"d": [0xcb, 0xc2],
"e": [0xcb, 0xc3],
"h": [0xcb, 0xc4],
"l": [0xcb, 0xc5],
"(hl)": [0xcb, 0xc6],
},
"1": {
"a": [0xcb, 0xcf],
"b": [0xcb, 0xc8],
"c": [0xcb, 0xc9],
"d": [0xcb, 0xca],
"e": [0xcb, 0xcb],
"h": [0xcb, 0xcc],
"l": [0xcb, 0xcd],
"(hl)": [0xcb, 0xce],
},
"2": {
"a": [0xcb, 0xd7],
"b": [0xcb, 0xd0],
"c": [0xcb, 0xd1],
"d": [0xcb, 0xd2],
"e": [0xcb, 0xd3],
"h": [0xcb, 0xd4],
"l": [0xcb, 0xd5],
"(hl)": [0xcb, 0xd6],
},
"3": {
"a": [0xcb, 0xdf],
"b": [0xcb, 0xd8],
"c": [0xcb, 0xd9],
"d": [0xcb, 0xda],
"e": [0xcb, 0xdb],
"h": [0xcb, 0xdc],
"l": [0xcb, 0xdd],
"(hl)": [0xcb, 0xde],
},
"4": {
"a": [0xcb, 0xe7],
"b": [0xcb, 0xe0],
"c": [0xcb, 0xe1],
"d": [0xcb, 0xe2],
"e": [0xcb, 0xe3],
"h": [0xcb, 0xe4],
"l": [0xcb, 0xe5],
"(hl)": [0xcb, 0xe6],
},
"5": {
"a": [0xcb, 0xef],
"b": [0xcb, 0xe8],
"c": [0xcb, 0xe9],
"d": [0xcb, 0xea],
"e": [0xcb, 0xeb],
"h": [0xcb, 0xec],
"l": [0xcb, 0xed],
"(hl)": [0xcb, 0xee],
},
"6": {
"a": [0xcb, 0xf7],
"b": [0xcb, 0xf0],
"c": [0xcb, 0xf1],
"d": [0xcb, 0xf2],
"e": [0xcb, 0xf3],
"h": [0xcb, 0xf4],
"l": [0xcb, 0xf5],
"(hl)": [0xcb, 0xf6],
},
"7": {
"a": [0xcb, 0xff],
"b": [0xcb, 0xf8],
"c": [0xcb, 0xf9],
"d": [0xcb, 0xfa],
"e": [0xcb, 0xfb],
"h": [0xcb, 0xfc],
"l": [0xcb, 0xfd],
"(hl)": [0xcb, 0xfe],
},
},
}
OLD_MNEMONICS = {
"nop": 0x00,
"ld bc,d16": 0x01,
"ld (bc),a": 0x02,
"inc bc": 0x03,
"inc b": 0x04,
"dec b": 0x05,
"ld b,d8": 0x06,
"rlca": 0x07,
"ld (a16),sp": 0x08,
"add hl,bc": 0x09,
"ld a,(bc)": 0x0a,
"dec bc": 0x0b,
"inc c": 0x0c,
"dec c": 0x0d,
"ld c,d8": 0x0e,
"rrca": 0x0f,
"stop 0": 0x10,
"ld de,d16": 0x11,
"ld (de),a": 0x12,
"inc de": 0x13,
"inc d": 0x14,
"dec d": 0x15,
"ld d,d8": 0x16,
"rla": 0x17,
"jr r8": 0x18,
"add hl,de": 0x19,
"ld a,(de)": 0x1a,
"dec de": 0x1b,
"inc e": 0x1c,
"dec e": 0x1d,
"ld e,d8": 0x1e,
"rra": 0x1f,
"jr nz,r8": 0x20,
"ld hl,d16": 0x21,
"ldi (hl),a": 0x22,
"inc hl": 0x23,
"inc h": 0x24,
"dec h": 0x25,
"ld h,d8": 0x26,
"daa": 0x27,
"jr z,r8": 0x28,
"add hl,hl": 0x29,
"ldi a,(hl)": 0x2a,
"dec hl": 0x2b,
"inc l": 0x2c,
"dec l": 0x2d,
"ld l,d8": 0x2e,
"cpl": 0x2f,
"jr nc,r8": 0x30,
"ld sp,d16": 0x31,
"ldd (hl),a": 0x32,
"inc sp": 0x33,
"inc (hl)": 0x34,
"dec (hl)": 0x35,
"ld (hl),d8": 0x36,
"scf": 0x37,
"jr c,r8": 0x38,
"add hl,sp": 0x39,
"ldd a,(hl)": 0x3a,
"dec sp": 0x3b,
"inc a": 0x3c,
"dec a": 0x3d,
"ld a,d8": 0x3e,
"ccf": 0x3f,
"ld b,b": 0x40,
"ld b,c": 0x41,
"ld b,d": 0x42,
"ld b,e": 0x43,
"ld b,h": 0x44,
"ld b,l": 0x45,
"ld b,(hl)": 0x46,
"ld b,a": 0x47,
"ld c,b": 0x48,
"ld c,c": 0x49,
"ld c,d": 0x4a,
"ld c,e": 0x4b,
"ld c,h": 0x4c,
"ld c,l": 0x4d,
"ld c,(hl)": 0x4e,
"ld c,a": 0x4f,
"ld d,b": 0x50,
"ld d,c": 0x51,
"ld d,d": 0x52,
"ld d,e": 0x53,
"ld d,h": 0x54,
"ld d,l": 0x55,
"ld d,(hl)": 0x56,
"ld d,a": 0x57,
"ld e,b": 0x58,
"ld e,c": 0x59,
"ld e,d": 0x5a,
"ld e,e": 0x5b,
"ld e,h": 0x5c,
"ld e,l": 0x5d,
"ld e,(hl)": 0x5e,
"ld e,a": 0x5f,
"ld h,b": 0x60,
"ld h,c": 0x61,
"ld h,d": 0x62,
"ld h,e": 0x63,
"ld h,h": 0x64,
"ld h,l": 0x65,
"ld h,(hl)": 0x66,
"ld h,a": 0x67,
"ld l,b": 0x68,
"ld l,c": 0x69,
"ld l,d": 0x6a,
"ld l,e": 0x6b,
"ld l,h": 0x6c,
"ld l,l": 0x6d,
"ld l,(hl)": 0x6e,
"ld l,a": 0x6f,
"ld (hl),b": 0x70,
"ld (hl),c": 0x71,
"ld (hl),d": 0x72,
"ld (hl),e": 0x73,
"ld (hl),h": 0x74,
"ld (hl),l": 0x75,
"halt": 0x76,
"ld (hl),a": 0x77,
"ld a,b": 0x78,
"ld a,c": 0x79,
"ld a,d": 0x7a,
"ld a,e": 0x7b,
"ld a,h": 0x7c,
"ld a,l": 0x7d,
"ld a,(hl)": 0x7e,
"ld a,a": 0x7f,
"add a,b": 0x80,
"add a,c": 0x81,
"add a,d": 0x82,
"add a,e": 0x83,
"add a,h": 0x84,
"add a,l": 0x85,
"add a,(hl)": 0x86,
"add a,a": 0x87,
"adc a,b": 0x88,
"adc a,c": 0x89,
"adc a,d": 0x8a,
"adc a,e": 0x8b,
"adc a,h": 0x8c,
"adc a,l": 0x8d,
"adc a,(hl)": 0x8e,
"adc a,a": 0x8f,
"sub b": 0x90,
"sub c": 0x91,
"sub d": 0x92,
"sub e": 0x93,
"sub h": 0x94,
"sub l": 0x95,
"sub (hl)": 0x96,
"sub a": 0x97,
"sbc a,b": 0x98,
"sbc a,c": 0x99,
"sbc a,d": 0x9a,
"sbc a,e": 0x9b,
"sbc a,h": 0x9c,
"sbc a,l": 0x9d,
"sbc a,(hl)": 0x9e,
"sbc a,a": 0x9f,
"and b": 0xa0,
"and c": 0xa1,
"and d": 0xa2,
"and e": 0xa3,
"and h": 0xa4,
"and l": 0xa5,
"and (hl)": 0xa6,
"and a": 0xa7,
"xor b": 0xa8,
"xor c": 0xa9,
"xor d": 0xaa,
"xor e": 0xab,
"xor h": 0xac,
"xor l": 0xad,
"xor (hl)": 0xae,
"xor a": 0xaf,
"or b": 0xb0,
"or c": 0xb1,
"or d": 0xb2,
"or e": 0xb3,
"or h": 0xb4,
"or l": 0xb5,
"or (hl)": 0xb6,
"or a": 0xb7,
"cp b": 0xb8,
"cp c": 0xb9,
"cp d": 0xba,
"cp e": 0xbb,
"cp h": 0xbc,
"cp l": 0xbd,
"cp (hl)": 0xbe,
"cp a": 0xbf,
"ret nz": 0xc0,
"pop bc": 0xc1,
"jp nz,a16": 0xc2,
"jp a16": 0xc3,
"call nz,a16": 0xc4,
"push bc": 0xc5,
"add a,d8": 0xc6,
"rst 00": 0xc7,
"ret z": 0xc8,
"ret": 0xc9,
"jp z,a16": 0xca,
"prefix cb": 0xcb,
"call z,a16": 0xcc,
"call a16": 0xcd,
"adc a,d8": 0xce,
"rst 08": 0xcf,
"ret nc": 0xd0,
"pop de": 0xd1,
"jp nc,a16": 0xd2,
"call nc,a16": 0xd4,
"push de": 0xd5,
"sub a,d8": 0xd6,
"rst 10": 0xd7,
"ret c": 0xd8,
"reti": 0xd9,
"jp c,a16": 0xda,
"call c,a16": 0xdc,
"sbc a,d8": 0xde,
"rst 18": 0xdf,
"ld (ff00+a8),a": 0xe0,
"pop hl": 0xe1,
"ld (ff00+c),a": 0xe2,
"push hl": 0xe5,
"and a,d8": 0xe6,
"rst 20": 0xe7,
"add sp,r8": 0xe8,
"jp (hl)": 0xe9,
"ld (a16),a": 0xea,
"xor a,d8": 0xee,
"rst 28": 0xef,
"ld a,(ff00+a8)": 0xf0,
"pop af": 0xf1,
"ld a,(ff00+c)": 0xf2,
"di": 0xf3,
"push af": 0xf5,
"or a,d8": 0xf6,
"rst 30": 0xf7,
"ld hl,sp+r8": 0xf8,
"ld sp,hl": 0xf9,
"ld a,(a16)": 0xfa,
"ei": 0xfb,
"cp a,d8": 0xfe,
"rst 38": 0xff,
}
CB_MNEMONICS = {
'rlc b': 0x00,
'rlc c': 0x01,
'rlc d': 0x02,
'rlc e': 0x03,
'rlc h': 0x04,
'rlc l': 0x05,
'rlc (hl)': 0x06,
'rlc a': 0x07,
'rrc b': 0x08,
'rrc c': 0x09,
'rrc d': 0x0a,
'rrc e': 0x0b,
'rrc h': 0x0c,
'rrc l': 0x0d,
'rrc (hl)': 0x0e,
'rrc a': 0x0f,
'rl b': 0x10,
'rl c': 0x11,
'rl d': 0x12,
'rl e': 0x13,
'rl h': 0x14,
'rl l': 0x15,
'rl (hl)': 0x16,
'rl a': 0x17,
'rr b': 0x18,
'rr c': 0x19,
'rr d': 0x1a,
'rr e': 0x1b,
'rr h': 0x1c,
'rr l': 0x1d,
'rr (hl)': 0x1e,
'rr a': 0x1f,
'sla b': 0x20,
'sla c': 0x21,
'sla d': 0x22,
'sla e': 0x23,
'sla h': 0x24,
'sla l': 0x25,
'sla (hl)': 0x26,
'sla a': 0x27,
'sra b': 0x28,
'sra c': 0x29,
'sra d': 0x2a,
'sra e': 0x2b,
'sra h': 0x2c,
'sra l': 0x2d,
'sra (hl)': 0x2e,
'sra a': 0x2f,
'swap b': 0x30,
'swap c': 0x31,
'swap d': 0x32,
'swap e': 0x33,
'swap h': 0x34,
'swap l': 0x35,
'swap (hl)': 0x36,
'swap a': 0x37,
'srl b': 0x38,
'srl c': 0x39,
'srl d': 0x3a,
'srl e': 0x3b,
'srl h': 0x3c,
'srl l': 0x3d,
'srl (hl)': 0x3e,
'srl a': 0x3f,
'bit 0,b': 0x40,
'bit 0,c': 0x41,
'bit 0,d': 0x42,
'bit 0,e': 0x43,
'bit 0,h': 0x44,
'bit 0,l': 0x45,
'bit 0,(hl)': 0x46,
'bit 0,a': 0x47,
'bit 1,b': 0x48,
'bit 1,c': 0x49,
'bit 1,d': 0x4a,
'bit 1,e': 0x4b,
'bit 1,h': 0x4c,
'bit 1,l': 0x4d,
'bit 1,(hl)': 0x4e,
'bit 1,a': 0x4f,
'bit 2,b': 0x50,
'bit 2,c': 0x51,
'bit 2,d': 0x52,
'bit 2,e': 0x53,
'bit 2,h': 0x54,
'bit 2,l': 0x55,
'bit 2,(hl)': 0x56,
'bit 2,a': 0x57,
'bit 3,b': 0x58,
'bit 3,c': 0x59,
'bit 3,d': 0x5a,
'bit 3,e': 0x5b,
'bit 3,h': 0x5c,
'bit 3,l': 0x5d,
'bit 3,(hl)': 0x5e,
'bit 3,a': 0x5f,
'bit 4,b': 0x60,
'bit 4,c': 0x61,
'bit 4,d': 0x62,
'bit 4,e': 0x63,
'bit 4,h': 0x64,
'bit 4,l': 0x65,
'bit 4,(hl)': 0x66,
'bit 4,a': 0x67,
'bit 5,b': 0x68,
'bit 5,c': 0x69,
'bit 5,d': 0x6a,
'bit 5,e': 0x6b,
'bit 5,h': 0x6c,
'bit 5,l': 0x6d,
'bit 5,(hl)': 0x6e,
'bit 5,a': 0x6f,
'bit 6,b': 0x70,
'bit 6,c': 0x71,
'bit 6,d': 0x72,
'bit 6,e': 0x73,
'bit 6,h': 0x74,
'bit 6,l': 0x75,
'bit 6,(hl)': 0x76,
'bit 6,a': 0x77,
'bit 7,b': 0x78,
'bit 7,c': 0x79,
'bit 7,d': 0x7a,
'bit 7,e': 0x7b,
'bit 7,h': 0x7c,
'bit 7,l': 0x7d,
'bit 7,(hl)': 0x7e,
'bit 7,a': 0x7f,
'res 0,b': 0x80,
'res 0,c': 0x81,
'res 0,d': 0x82,
'res 0,e': 0x83,
'res 0,h': 0x84,
'res 0,l': 0x85,
'res 0,(hl)': 0x86,
'res 0,a': 0x87,
'res 1,b': 0x88,
'res 1,c': 0x89,
'res 1,d': 0x8a,
'res 1,e': 0x8b,
'res 1,h': 0x8c,
'res 1,l': 0x8d,
'res 1,(hl)': 0x8e,
'res 1,a': 0x8f,
'res 2,b': 0x90,
'res 2,c': 0x91,
'res 2,d': 0x92,
'res 2,e': 0x93,
'res 2,h': 0x94,
'res 2,l': 0x95,
'res 2,(hl)': 0x96,
'res 2,a': 0x97,
'res 3,b': 0x98,
'res 3,c': 0x99,
'res 3,d': 0x9a,
'res 3,e': 0x9b,
'res 3,h': 0x9c,
'res 3,l': 0x9d,
'res 3,(hl)': 0x9e,
'res 3,a': 0x9f,
'res 4,b': 0xa0,
'res 4,c': 0xa1,
'res 4,d': 0xa2,
'res 4,e': 0xa3,
'res 4,h': 0xa4,
'res 4,l': 0xa5,
'res 4,(hl)': 0xa6,
'res 4,a': 0xa7,
'res 5,b': 0xa8,
'res 5,c': 0xa9,
'res 5,d': 0xaa,
'res 5,e': 0xab,
'res 5,h': 0xac,
'res 5,l': 0xad,
'res 5,(hl)': 0xae,
'res 5,a': 0xaf,
'res 6,b': 0xb0,
'res 6,c': 0xb1,
'res 6,d': 0xb2,
'res 6,e': 0xb3,
'res 6,h': 0xb4,
'res 6,l': 0xb5,
'res 6,(hl)': 0xb6,
'res 6,a': 0xb7,
'res 7,b': 0xb8,
'res 7,c': 0xb9,
'res 7,d': 0xba,
'res 7,e': 0xbb,
'res 7,h': 0xbc,
'res 7,l': 0xbd,
'res 7,(hl)': 0xbe,
'res 7,a': 0xbf,
'set 0,b': 0xc0,
'set 0,c': 0xc1,
'set 0,d': 0xc2,
'set 0,e': 0xc3,
'set 0,h': 0xc4,
'set 0,l': 0xc5,
'set 0,(hl)': 0xc6,
'set 0,a': 0xc7,
'set 1,b': 0xc8,
'set 1,c': 0xc9,
'set 1,d': 0xca,
'set 1,e': 0xcb,
'set 1,h': 0xcc,
'set 1,l': 0xcd,
'set 1,(hl)': 0xce,
'set 1,a': 0xcf,
'set 2,b': 0xd0,
'set 2,c': 0xd1,
'set 2,d': 0xd2,
'set 2,e': 0xd3,
'set 2,h': 0xd4,
'set 2,l': 0xd5,
'set 2,(hl)': 0xd6,
'set 2,a': 0xd7,
'set 3,b': 0xd8,
'set 3,c': 0xd9,
'set 3,d': 0xda,
'set 3,e': 0xdb,
'set 3,h': 0xdc,
'set 3,l': 0xdd,
'set 3,(hl)': 0xde,
'set 3,a': 0xdf,
'set 4,b': 0xe0,
'set 4,c': 0xe1,
'set 4,d': 0xe2,
'set 4,e': 0xe3,
'set 4,h': 0xe4,
'set 4,l': 0xe5,
'set 4,(hl)': 0xe6,
'set 4,a': 0xe7,
'set 5,b': 0xe8,
'set 5,c': 0xe9,
'set 5,d': 0xea,
'set 5,e': 0xeb,
'set 5,h': 0xec,
'set 5,l': 0xed,
'set 5,(hl)': 0xee,
'set 5,a': 0xef,
'set 6,b': 0xf0,
'set 6,c': 0xf1,
'set 6,d': 0xf2,
'set 6,e': 0xf3,
'set 6,h': 0xf4,
'set 6,l': 0xf5,
'set 6,(hl)': 0xf6,
'set 6,a': 0xf7,
'set 7,b': 0xf8,
'set 7,c': 0xf9,
'set 7,d': 0xfa,
'set 7,e': 0xfb,
'set 7,h': 0xfc,
'set 7,l': 0xfd,
'set 7,(hl)': 0xfe,
'set 7,a': 0xff,
}