Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
#pragma once
//-----------------------------------------------------------------------------
#define OP_QUAD ((op >> 6) & 3)
#define OP_ROW ((op >> 3) & 7)
#define OP_COL ((op >> 0) & 7)
#define NOP (op == 0x00)
#define STOP (op == 0x10)
#define STM_A8_A (op == 0xE0)
#define STM_C_A (op == 0xE2)
#define STM_A16_SP (op == 0x08)
#define STM_A16_A (op == 0xEA)
#define ADD_SP_R8 (op == 0xE8)
#define LD_HL_SP_R8 (op == 0xF8)
#define LDM_A_A16 (op == 0xFA)
#define LDM_A_C (op == 0xF2)
#define LDM_A_A8 (op == 0xF0)
#define JP_A16 (op == 0xC3)
#define JR_R8 (op == 0x18)
#define JP_HL (op == 0xE9)
#define CALL_A16 (op == 0xCD)
#define RET (op == 0xC9)
#define RETI (op == 0xD9)
#define DI (op == 0xF3)
#define EI (op == 0xFB)
#define HALT (op == 0x76)
#define LD_SP_HL (op == 0xF9)
#define LD_BC_D16 (op == 0b00000001)
#define LD_DE_D16 (op == 0b00010001)
#define LD_HL_D16 (op == 0b00100001)
#define LD_SP_D16 (op == 0b00110001)
#define LD_RR_D16 ((op & 0b11001111) == 0b00000001)
#define ADD_HL_BC (op == 0b00001001)
#define ADD_HL_DE (op == 0b00011001)
#define ADD_HL_HL (op == 0b00101001)
#define ADD_HL_SP (op == 0b00111001)
#define ADD_HL_RR ((op & 0b11001111) == 0b00001001)
#define STM_BC_A (op == 0x02)
#define STM_DE_A (op == 0x12)
#define STM_HLP_A (op == 0x22)
#define STM_HLM_A (op == 0x32)
#define LDM_A_BC (op == 0x0A)
#define LDM_A_DE (op == 0x1A)
#define LDM_A_HLP (op == 0x2A)
#define LDM_A_HLM (op == 0x3A)
#define INC_BC (op == 0b00000011)
#define INC_DE (op == 0b00010011)
#define INC_HL (op == 0b00100011)
#define INC_SP (op == 0b00110011)
#define DEC_BC (op == 0x0B)
#define DEC_DE (op == 0x1B)
#define DEC_HL (op == 0x2B)
#define DEC_SP (op == 0x3B)
#define INC_AT_HL (op == 0x34)
#define DEC_AT_HL (op == 0x35)
#define INC_R ((op & 0b11000111) == 0b00000100 && !INC_AT_HL)
#define DEC_R ((op & 0b11000111) == 0b00000101 && !DEC_AT_HL)
#define STM_HL_A (op == 0x77)
#define STM_HL_D8 (op == 0x36)
#define LD_R_D8 ((op & 0b11000111) == 0b00000110 && !STM_HL_D8)
#define RLU_A ((op & 0b11000111) == 0b00000111)
#define RLC_A (op == 0x07)
#define RRC_A (op == 0x0F)
#define RL_A (op == 0x17)
#define RR_A (op == 0x1F)
#define DAA (op == 0x27)
#define CPL (op == 0x2F)
#define SCF (op == 0x37)
#define CCF (op == 0x3F)
#define LDM_B_HL (op == 0x46)
#define LDM_C_HL (op == 0x4E)
#define LDM_D_HL (op == 0x56)
#define LDM_E_HL (op == 0x5E)
#define LDM_H_HL (op == 0x66)
#define LDM_L_HL (op == 0x6E)
#define LDM_A_HL (op == 0x7E)
#define LDM_R_HL ((op & 0b11000111) == 0b01000110 && !HALT)
#define STM_HL_R ((op & 0b11111000) == 0b01110000 && !HALT)
#define MV_R_R ((op & 0b11000000) == 0b01000000 && (op & 0b00000111) != 0b00000110 && (op & 0b00111000) != 0b00110000)
#define JR_CC_R8 ((op & 0b11100111) == 0b00100000)
#define RET_CC ((op & 0b11100111) == 0b11000000)
#define JP_CC_A16 ((op & 0b11100111) == 0b11000010)
#define CALL_CC_A16 ((op & 0b11100111) == 0b11000100)
#define PUSH_BC (op == 0b11000101)
#define PUSH_DE (op == 0b11010101)
#define PUSH_HL (op == 0b11100101)
#define PUSH_AF (op == 0b11110101)
#define PUSH_RR ((op & 0b11001111) == 0b11000101)
#define POP_BC (op == 0b11000001)
#define POP_DE (op == 0b11010001)
#define POP_HL (op == 0b11100001)
#define POP_AF (op == 0b11110001)
#define POP_RR ((op & 0b11001111) == 0b11000001)
#define PREFIX_CB (op == 0xCB)
#define ALU_A_R ((OP_QUAD == 2) && (OP_COL != 6))
#define ALU_A_HL ((OP_QUAD == 2) && (OP_COL == 6))
#define ALU_A_D8 ((OP_QUAD == 3) && (OP_COL == 6))
#define RST_NN ((OP_QUAD == 3) && (OP_COL == 7))
// fake opcode to indicate interrupt handling
#define INT (op == 0xF4)
a2f4a33c8This file is pinned to the selected release. Download the original to open it in your design tool.