From 224f0dcb893d7e8f78c4109d07f8b3142bf750e8 Mon Sep 17 00:00:00 2001 From: Leslie Chisholm Date: Wed, 2 Oct 2019 12:43:48 +1300 Subject: [PATCH] Begin work on the gpu window --- ROMs/Hangman (PD).gb | Bin 262144 -> 0 bytes gpu.c | 100 +- gpu.h | 30 +- mem.c | 50 +- opcodes.json | 7851 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 7935 insertions(+), 96 deletions(-) delete mode 100644 ROMs/Hangman (PD).gb create mode 100644 opcodes.json diff --git a/ROMs/Hangman (PD).gb b/ROMs/Hangman (PD).gb deleted file mode 100644 index dd680ed23ccc839febc843e046e3722a89ddd6ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262144 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 diff --git a/gpu.c b/gpu.c index 0521872..96f59a0 100644 --- a/gpu.c +++ b/gpu.c @@ -1,3 +1,4 @@ +#include #include "gpu.h" #include "defs.h" #include "types.h" @@ -23,7 +24,6 @@ void gpu_init(){ gpu->tile_data_select = 0x8800; gpu->background_tile_map_display = 0x9800; gpu->background_display = 0; - gpu->window_display_enable = 0; gpu->sprite_display_enable = 0; for(y=0;yline & 0xFF; } +/* Writing to the gpu line register will reset it */ +void gpu_set_line(){ + gpu->line = 0; +} +u8 gpu_get_line_compare(){ + return gpu->line_compare & 0xFF; +} +void gpu_set_line_compare(const u8 value){ + gpu->line_compare = value; +} u8 gpu_get_palette(const PaletteType palette_type){ switch(palette_type){ @@ -88,23 +98,38 @@ void gpu_set_palette(const u8 value, const PaletteType palette_type){ } } -void set_scroll_x(const u8 value){ +void gpu_set_scroll_x(const u8 value){ gpu->scroll_x = value; } -u8 get_scroll_x(){ +u8 gpu_get_scroll_x(){ return gpu->scroll_x; } -void set_scroll_y(const u8 value){ +void gpu_set_scroll_y(const u8 value){ gpu->scroll_y = value; } -u8 get_scroll_y(){ +u8 gpu_get_scroll_y(){ return gpu->scroll_y; } -void set_lcd_control_register(const u8 value){ +void gpu_set_window_x(const u8 value){ + printf("This game is using the window\n"); + gpu->window_x = value; +} +u8 gpu_get_window_x(){ + return gpu->window_x; +} +void gpu_set_window_y(const u8 value){ + printf("This game is using the window\n"); + gpu->window_y = value; +} +u8 gpu_get_window_y(){ + return gpu->window_y; +} + +void gpu_set_lcd_control_register(const u8 value){ gpu->lcd_control_register = value; gpu->lcd_display_enable = gpu->lcd_control_register & 0x80 ? 1:0; gpu->window_tile_map_display_select = gpu->lcd_control_register & 0x40 ? @@ -118,11 +143,11 @@ void set_lcd_control_register(const u8 value){ gpu->background_display = gpu->lcd_control_register & 0x01 ? 1 : 0; } -u8 get_lcd_control_register(){ +u8 gpu_get_lcd_control_register(){ return gpu->lcd_control_register; } -void update_tile(const u16 address, const u8 value){ +void gpu_update_tile(const u16 address, const u8 value){ // Takes 2 bytes at a time // first byte is LSB of a row // second byte is MSB of a row @@ -142,7 +167,7 @@ void update_tile(const u16 address, const u8 value){ } -void update_sprite(const u16 address, const u8 value){ +void gpu_update_sprite(const u16 address, const u8 value){ unsigned int sprite_num = (address - 0xFE00) >> 2; Sprite *sprite; /* printf("Updating sprite %d with value %d at address %X \n", */ @@ -259,14 +284,14 @@ static void swap_buffers(){ display_redraw(); /* Sleep until the frame time is finished */ struct timespec frame_end_time; - clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &frame_end_time); + clock_gettime(CLOCK_MONOTONIC, &frame_end_time); long timedelta = FULL_FRAME_TIME_US - ((frame_end_time.tv_nsec - gpu->frame_start_time.tv_nsec) / 1000); if(timedelta > 0 && timedelta < FULL_FRAME_TIME_US) usleep(timedelta); /* Set new frame start time */ - clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &gpu->frame_start_time); + clock_gettime(CLOCK_MONOTONIC, &gpu->frame_start_time); } @@ -313,55 +338,10 @@ void gpu_step(int op_time){ break; } } - -u8 gpu_get_status_register(){ - return gpu->mode; +void gpu_set_status_register(const u8 value){ + printf("gpu_set_status_register %X\n", value); } -static void print_screen(){ - unsigned int x,y; - for(y=0;yscreen[y][x]==0?" ":"a"); - } - printf("\n"); - } -} - -static void print_tiles(){ - unsigned int i,j,k; - for(i=0;i<27;i++){ - printf("Tile : %d\n",i); - for(j=0;j<8;j++){ - printf("row %d:",j); - for(k=0;k<8;k++){ - printf("%s",gpu->tiles[i][j][k]==1? "a" :" "); - } - printf("\n"); - } - } -} - -static void print_tile_ram(){ - unsigned int i,j; - for(i=0;i<26;i++){ - printf("Tile %X:\n",i); - for(j=0;j<16;j++){ - printf("memory %d : %X\n",j,get_mem(0x8000 + i*16 + j)); - } - } -} - -static void print_background_data_ram(){ - unsigned int i; - for(i=0;i<=0x2f;i++){ - printf("memory %X : %d\n",0x9900+i,get_mem(0x9900 + i)); - } -} - -void gpu_test(){ - print_screen(); - print_tiles(); - print_tile_ram(); - print_background_data_ram(); +u8 gpu_get_status_register(){ + return gpu->mode | (gpu->line == gpu->line_compare ? 0x04 : 0); } diff --git a/gpu.h b/gpu.h index 5c381fb..1bb4f39 100644 --- a/gpu.h +++ b/gpu.h @@ -49,8 +49,11 @@ typedef struct{ //scroll registers u8 scroll_x; u8 scroll_y; + u8 window_x; + u8 window_y; int line; + int line_compare; int mode; int curscan; @@ -83,18 +86,25 @@ typedef struct{ extern GPU *gpu; //extern int gpu_clock; extern void gpu_init(); +extern u8 gpu_get_line(); +extern void gpu_set_line(); +extern u8 gpu_get_line_compare(); +extern void gpu_set_line_compare(u8 value); extern void gpu_step(const int op_time); extern u8 gpu_get_status_register(); +extern void gpu_set_status_register(const u8 value); extern u8 gpu_get_palette(const PaletteType palette_type); extern void gpu_set_palette(const u8 value, const PaletteType palette_type); -extern void set_scroll_y(const u8 value); -extern u8 get_scroll_y(); -extern void set_scroll_x(const u8 value); -extern u8 get_scroll_x(); -extern void set_lcd_control_register(const u8 value); -extern u8 get_lcd_control_register(); -extern void update_tile(const u16 address, const u8 value); -extern void update_sprite(const u16 address, const u8 value); -extern void gpu_test(); -extern u8 gpu_get_line(); +extern void gpu_set_scroll_y(const u8 value); +extern u8 gpu_get_scroll_y(); +extern void gpu_set_scroll_x(const u8 value); +extern u8 gpu_get_scroll_x(); +extern void gpu_set_window_y(const u8 value); +extern u8 gpu_get_window_y(); +extern void gpu_set_window_x(const u8 value); +extern u8 gpu_get_window_x(); +extern void gpu_set_lcd_control_register(const u8 value); +extern u8 gpu_get_lcd_control_register(); +extern void gpu_update_tile(const u16 address, const u8 value); +extern void gpu_update_sprite(const u16 address, const u8 value); #endif diff --git a/mem.c b/mem.c index 51bda75..3577c14 100644 --- a/mem.c +++ b/mem.c @@ -208,18 +208,17 @@ u8 get_mem(u16 address){ return 0; //TODO case LCD_CONTROL_REGISTER: // FF40 - return get_lcd_control_register(); + return gpu_get_lcd_control_register(); case LCD_STATUS_REGISTER: return gpu_get_status_register(); case LCD_SCROLL_Y_REGISTER: - return get_scroll_y(); + return gpu_get_scroll_y(); case LCD_SCROLL_X_REGISTER://lcd scroll X register - return get_scroll_x(); + return gpu_get_scroll_x(); case CURRENT_FRAME_LINE://get the current frame line return gpu_get_line(); case FRAME_LINE_COMPARE: - printf("Need to implement FLC\n"); - return 0; + return gpu_get_line_compare(); case DMA_TRANSFER: printf("Shouldn't be reading DMA_TRANSFER\n"); return 0; @@ -229,12 +228,10 @@ u8 get_mem(u16 address){ return gpu_get_palette(OBJECT_PALETTE0); case OBJECT_PALETTE1_MEMORY: return gpu_get_palette(OBJECT_PALETTE1); - case WINDOW_X_POS: - printf("Implement read window x %d\n"); - return 0; case WINDOW_Y_POS: - printf("Implement read window y %d\n"); - return 0; + return gpu_get_window_y(); + case WINDOW_X_POS: + return gpu_get_window_x(); case DISABLE_BOOT_ROM://disable boot rom fprintf(stderr,"Why would you read disabling the boot rom?\n"); return 0; @@ -325,7 +322,7 @@ void set_mem(u16 address, u8 value){ case 0x8000: case 0x9000: memory->vram[address & 0x1FFF] = value; if(address <= TILE_DATA_END) - update_tile(address, value); + gpu_update_tile(address, value); return; //Swtichable RAM 2KB case 0xA000: case 0xB000: @@ -349,7 +346,7 @@ void set_mem(u16 address, u8 value){ case 0xE00: if(address < 0xFEA0){ memory->oam[address & 0xFF] = value; - update_sprite(address, value); + gpu_update_sprite(address, value); return; } case 0xF00: @@ -392,22 +389,23 @@ void set_mem(u16 address, u8 value){ case SOUND_OUTPUT_SELECTION_TERMINAL: case SOUND_ON_OFF: return; //TODO - case LCD_CONTROL_REGISTER://lcd control register - set_lcd_control_register(value); - return; - case LCD_STATUS_REGISTER://lcd status register + case LCD_CONTROL_REGISTER: + gpu_set_lcd_control_register(value); return; - case LCD_SCROLL_Y_REGISTER://lcd scroll Y register - set_scroll_y(value); + case LCD_STATUS_REGISTER: + gpu_set_status_register(value); + return; + case LCD_SCROLL_Y_REGISTER: + gpu_set_scroll_y(value); return; - case LCD_SCROLL_X_REGISTER://lcd scroll X register - set_scroll_x(value); + case LCD_SCROLL_X_REGISTER: + gpu_set_scroll_x(value); return; case CURRENT_FRAME_LINE: - printf("Shouldn't change frame line\n"); + gpu_set_line(); return; case FRAME_LINE_COMPARE: - printf("Shouldn't compare frame line??\n"); + gpu_set_line_compare(value); return; case DMA_TRANSFER: { @@ -425,11 +423,11 @@ void set_mem(u16 address, u8 value){ case OBJECT_PALETTE1_MEMORY: gpu_set_palette(value, OBJECT_PALETTE1); return; - case WINDOW_X_POS: - printf("Implement window x %d\n", value); - return; case WINDOW_Y_POS: - printf("Implement window y %d\n", value); + gpu_set_window_y(value); + return; + case WINDOW_X_POS: + gpu_set_window_x(value); return; case DISABLE_BOOT_ROM://disable boot rom if(value == 1) diff --git a/opcodes.json b/opcodes.json new file mode 100644 index 0000000..6153b3b --- /dev/null +++ b/opcodes.json @@ -0,0 +1,7851 @@ +{ + "unprefixed": { + "0x0": { + "mnemonic": "NOP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x0" + }, + "0x1": { + "mnemonic": "LD", + "length": 3, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x1", + "operand1": "BC", + "operand2": "d16" + }, + "0x2": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x2", + "operand1": "(BC)", + "operand2": "A" + }, + "0x3": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x3", + "operand1": "BC" + }, + "0x4": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0x4", + "operand1": "B" + }, + "0x5": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0x5", + "operand1": "B" + }, + "0x6": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x6", + "operand1": "B", + "operand2": "d8" + }, + "0x7": { + "mnemonic": "RLCA", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "0", + "0", + "0", + "C" + ], + "addr": "0x7" + }, + "0x8": { + "mnemonic": "LD", + "length": 3, + "cycles": [ + 20 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x8", + "operand1": "(a16)", + "operand2": "SP" + }, + "0x9": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "0", + "H", + "C" + ], + "addr": "0x9", + "operand1": "HL", + "operand2": "BC" + }, + "0xa": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa", + "operand1": "A", + "operand2": "(BC)" + }, + "0xb": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb", + "operand1": "BC" + }, + "0xc": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0xc", + "operand1": "C" + }, + "0xd": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0xd", + "operand1": "C" + }, + "0xe": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe", + "operand1": "C", + "operand2": "d8" + }, + "0xf": { + "mnemonic": "RRCA", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "0", + "0", + "0", + "C" + ], + "addr": "0xf" + }, + "0x10": { + "mnemonic": "STOP", + "length": 2, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x10", + "operand1": "0" + }, + "0x11": { + "mnemonic": "LD", + "length": 3, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x11", + "operand1": "DE", + "operand2": "d16" + }, + "0x12": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x12", + "operand1": "(DE)", + "operand2": "A" + }, + "0x13": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x13", + "operand1": "DE" + }, + "0x14": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0x14", + "operand1": "D" + }, + "0x15": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0x15", + "operand1": "D" + }, + "0x16": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x16", + "operand1": "D", + "operand2": "d8" + }, + "0x17": { + "mnemonic": "RLA", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "0", + "0", + "0", + "C" + ], + "addr": "0x17" + }, + "0x18": { + "mnemonic": "JR", + "length": 2, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x18", + "operand1": "r8" + }, + "0x19": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "0", + "H", + "C" + ], + "addr": "0x19", + "operand1": "HL", + "operand2": "DE" + }, + "0x1a": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x1a", + "operand1": "A", + "operand2": "(DE)" + }, + "0x1b": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x1b", + "operand1": "DE" + }, + "0x1c": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0x1c", + "operand1": "E" + }, + "0x1d": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0x1d", + "operand1": "E" + }, + "0x1e": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x1e", + "operand1": "E", + "operand2": "d8" + }, + "0x1f": { + "mnemonic": "RRA", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "0", + "0", + "0", + "C" + ], + "addr": "0x1f" + }, + "0x20": { + "mnemonic": "JR", + "length": 2, + "cycles": [ + 12, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x20", + "operand1": "NZ", + "operand2": "r8" + }, + "0x21": { + "mnemonic": "LD", + "length": 3, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x21", + "operand1": "HL", + "operand2": "d16" + }, + "0x22": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x22", + "operand1": "(HL+)", + "operand2": "A" + }, + "0x23": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x23", + "operand1": "HL" + }, + "0x24": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0x24", + "operand1": "H" + }, + "0x25": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0x25", + "operand1": "H" + }, + "0x26": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x26", + "operand1": "H", + "operand2": "d8" + }, + "0x27": { + "mnemonic": "DAA", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "-", + "0", + "C" + ], + "addr": "0x27" + }, + "0x28": { + "mnemonic": "JR", + "length": 2, + "cycles": [ + 12, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x28", + "operand1": "Z", + "operand2": "r8" + }, + "0x29": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "0", + "H", + "C" + ], + "addr": "0x29", + "operand1": "HL", + "operand2": "HL" + }, + "0x2a": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x2a", + "operand1": "A", + "operand2": "(HL+)" + }, + "0x2b": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x2b", + "operand1": "HL" + }, + "0x2c": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0x2c", + "operand1": "L" + }, + "0x2d": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0x2d", + "operand1": "L" + }, + "0x2e": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x2e", + "operand1": "L", + "operand2": "d8" + }, + "0x2f": { + "mnemonic": "CPL", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "1", + "1", + "-" + ], + "addr": "0x2f" + }, + "0x30": { + "mnemonic": "JR", + "length": 2, + "cycles": [ + 12, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x30", + "operand1": "NC", + "operand2": "r8" + }, + "0x31": { + "mnemonic": "LD", + "length": 3, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x31", + "operand1": "SP", + "operand2": "d16" + }, + "0x32": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x32", + "operand1": "(HL-)", + "operand2": "A" + }, + "0x33": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x33", + "operand1": "SP" + }, + "0x34": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 12 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0x34", + "operand1": "(HL)" + }, + "0x35": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 12 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0x35", + "operand1": "(HL)" + }, + "0x36": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x36", + "operand1": "(HL)", + "operand2": "d8" + }, + "0x37": { + "mnemonic": "SCF", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "0", + "0", + "1" + ], + "addr": "0x37" + }, + "0x38": { + "mnemonic": "JR", + "length": 2, + "cycles": [ + 12, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x38", + "operand1": "C", + "operand2": "r8" + }, + "0x39": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "0", + "H", + "C" + ], + "addr": "0x39", + "operand1": "HL", + "operand2": "SP" + }, + "0x3a": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x3a", + "operand1": "A", + "operand2": "(HL-)" + }, + "0x3b": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x3b", + "operand1": "SP" + }, + "0x3c": { + "mnemonic": "INC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "-" + ], + "addr": "0x3c", + "operand1": "A" + }, + "0x3d": { + "mnemonic": "DEC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "-" + ], + "addr": "0x3d", + "operand1": "A" + }, + "0x3e": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x3e", + "operand1": "A", + "operand2": "d8" + }, + "0x3f": { + "mnemonic": "CCF", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "0", + "0", + "C" + ], + "addr": "0x3f" + }, + "0x40": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x40", + "operand1": "B", + "operand2": "B" + }, + "0x41": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x41", + "operand1": "B", + "operand2": "C" + }, + "0x42": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x42", + "operand1": "B", + "operand2": "D" + }, + "0x43": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x43", + "operand1": "B", + "operand2": "E" + }, + "0x44": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x44", + "operand1": "B", + "operand2": "H" + }, + "0x45": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x45", + "operand1": "B", + "operand2": "L" + }, + "0x46": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x46", + "operand1": "B", + "operand2": "(HL)" + }, + "0x47": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x47", + "operand1": "B", + "operand2": "A" + }, + "0x48": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x48", + "operand1": "C", + "operand2": "B" + }, + "0x49": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x49", + "operand1": "C", + "operand2": "C" + }, + "0x4a": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x4a", + "operand1": "C", + "operand2": "D" + }, + "0x4b": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x4b", + "operand1": "C", + "operand2": "E" + }, + "0x4c": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x4c", + "operand1": "C", + "operand2": "H" + }, + "0x4d": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x4d", + "operand1": "C", + "operand2": "L" + }, + "0x4e": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x4e", + "operand1": "C", + "operand2": "(HL)" + }, + "0x4f": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x4f", + "operand1": "C", + "operand2": "A" + }, + "0x50": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x50", + "operand1": "D", + "operand2": "B" + }, + "0x51": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x51", + "operand1": "D", + "operand2": "C" + }, + "0x52": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x52", + "operand1": "D", + "operand2": "D" + }, + "0x53": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x53", + "operand1": "D", + "operand2": "E" + }, + "0x54": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x54", + "operand1": "D", + "operand2": "H" + }, + "0x55": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x55", + "operand1": "D", + "operand2": "L" + }, + "0x56": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x56", + "operand1": "D", + "operand2": "(HL)" + }, + "0x57": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x57", + "operand1": "D", + "operand2": "A" + }, + "0x58": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x58", + "operand1": "E", + "operand2": "B" + }, + "0x59": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x59", + "operand1": "E", + "operand2": "C" + }, + "0x5a": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x5a", + "operand1": "E", + "operand2": "D" + }, + "0x5b": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x5b", + "operand1": "E", + "operand2": "E" + }, + "0x5c": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x5c", + "operand1": "E", + "operand2": "H" + }, + "0x5d": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x5d", + "operand1": "E", + "operand2": "L" + }, + "0x5e": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x5e", + "operand1": "E", + "operand2": "(HL)" + }, + "0x5f": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x5f", + "operand1": "E", + "operand2": "A" + }, + "0x60": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x60", + "operand1": "H", + "operand2": "B" + }, + "0x61": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x61", + "operand1": "H", + "operand2": "C" + }, + "0x62": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x62", + "operand1": "H", + "operand2": "D" + }, + "0x63": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x63", + "operand1": "H", + "operand2": "E" + }, + "0x64": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x64", + "operand1": "H", + "operand2": "H" + }, + "0x65": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x65", + "operand1": "H", + "operand2": "L" + }, + "0x66": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x66", + "operand1": "H", + "operand2": "(HL)" + }, + "0x67": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x67", + "operand1": "H", + "operand2": "A" + }, + "0x68": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x68", + "operand1": "L", + "operand2": "B" + }, + "0x69": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x69", + "operand1": "L", + "operand2": "C" + }, + "0x6a": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x6a", + "operand1": "L", + "operand2": "D" + }, + "0x6b": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x6b", + "operand1": "L", + "operand2": "E" + }, + "0x6c": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x6c", + "operand1": "L", + "operand2": "H" + }, + "0x6d": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x6d", + "operand1": "L", + "operand2": "L" + }, + "0x6e": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x6e", + "operand1": "L", + "operand2": "(HL)" + }, + "0x6f": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x6f", + "operand1": "L", + "operand2": "A" + }, + "0x70": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x70", + "operand1": "(HL)", + "operand2": "B" + }, + "0x71": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x71", + "operand1": "(HL)", + "operand2": "C" + }, + "0x72": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x72", + "operand1": "(HL)", + "operand2": "D" + }, + "0x73": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x73", + "operand1": "(HL)", + "operand2": "E" + }, + "0x74": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x74", + "operand1": "(HL)", + "operand2": "H" + }, + "0x75": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x75", + "operand1": "(HL)", + "operand2": "L" + }, + "0x76": { + "mnemonic": "HALT", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x76" + }, + "0x77": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x77", + "operand1": "(HL)", + "operand2": "A" + }, + "0x78": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x78", + "operand1": "A", + "operand2": "B" + }, + "0x79": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x79", + "operand1": "A", + "operand2": "C" + }, + "0x7a": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x7a", + "operand1": "A", + "operand2": "D" + }, + "0x7b": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x7b", + "operand1": "A", + "operand2": "E" + }, + "0x7c": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x7c", + "operand1": "A", + "operand2": "H" + }, + "0x7d": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x7d", + "operand1": "A", + "operand2": "L" + }, + "0x7e": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x7e", + "operand1": "A", + "operand2": "(HL)" + }, + "0x7f": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x7f", + "operand1": "A", + "operand2": "A" + }, + "0x80": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x80", + "operand1": "A", + "operand2": "B" + }, + "0x81": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x81", + "operand1": "A", + "operand2": "C" + }, + "0x82": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x82", + "operand1": "A", + "operand2": "D" + }, + "0x83": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x83", + "operand1": "A", + "operand2": "E" + }, + "0x84": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x84", + "operand1": "A", + "operand2": "H" + }, + "0x85": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x85", + "operand1": "A", + "operand2": "L" + }, + "0x86": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x86", + "operand1": "A", + "operand2": "(HL)" + }, + "0x87": { + "mnemonic": "ADD", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x87", + "operand1": "A", + "operand2": "A" + }, + "0x88": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x88", + "operand1": "A", + "operand2": "B" + }, + "0x89": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x89", + "operand1": "A", + "operand2": "C" + }, + "0x8a": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x8a", + "operand1": "A", + "operand2": "D" + }, + "0x8b": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x8b", + "operand1": "A", + "operand2": "E" + }, + "0x8c": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x8c", + "operand1": "A", + "operand2": "H" + }, + "0x8d": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x8d", + "operand1": "A", + "operand2": "L" + }, + "0x8e": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x8e", + "operand1": "A", + "operand2": "(HL)" + }, + "0x8f": { + "mnemonic": "ADC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0x8f", + "operand1": "A", + "operand2": "A" + }, + "0x90": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x90", + "operand1": "B" + }, + "0x91": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x91", + "operand1": "C" + }, + "0x92": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x92", + "operand1": "D" + }, + "0x93": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x93", + "operand1": "E" + }, + "0x94": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x94", + "operand1": "H" + }, + "0x95": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x95", + "operand1": "L" + }, + "0x96": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x96", + "operand1": "(HL)" + }, + "0x97": { + "mnemonic": "SUB", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x97", + "operand1": "A" + }, + "0x98": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x98", + "operand1": "A", + "operand2": "B" + }, + "0x99": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x99", + "operand1": "A", + "operand2": "C" + }, + "0x9a": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x9a", + "operand1": "A", + "operand2": "D" + }, + "0x9b": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x9b", + "operand1": "A", + "operand2": "E" + }, + "0x9c": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x9c", + "operand1": "A", + "operand2": "H" + }, + "0x9d": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x9d", + "operand1": "A", + "operand2": "L" + }, + "0x9e": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x9e", + "operand1": "A", + "operand2": "(HL)" + }, + "0x9f": { + "mnemonic": "SBC", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0x9f", + "operand1": "A", + "operand2": "A" + }, + "0xa0": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa0", + "operand1": "B" + }, + "0xa1": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa1", + "operand1": "C" + }, + "0xa2": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa2", + "operand1": "D" + }, + "0xa3": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa3", + "operand1": "E" + }, + "0xa4": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa4", + "operand1": "H" + }, + "0xa5": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa5", + "operand1": "L" + }, + "0xa6": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa6", + "operand1": "(HL)" + }, + "0xa7": { + "mnemonic": "AND", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xa7", + "operand1": "A" + }, + "0xa8": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xa8", + "operand1": "B" + }, + "0xa9": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xa9", + "operand1": "C" + }, + "0xaa": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xaa", + "operand1": "D" + }, + "0xab": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xab", + "operand1": "E" + }, + "0xac": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xac", + "operand1": "H" + }, + "0xad": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xad", + "operand1": "L" + }, + "0xae": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xae", + "operand1": "(HL)" + }, + "0xaf": { + "mnemonic": "XOR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xaf", + "operand1": "A" + }, + "0xb0": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb0", + "operand1": "B" + }, + "0xb1": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb1", + "operand1": "C" + }, + "0xb2": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb2", + "operand1": "D" + }, + "0xb3": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb3", + "operand1": "E" + }, + "0xb4": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb4", + "operand1": "H" + }, + "0xb5": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb5", + "operand1": "L" + }, + "0xb6": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb6", + "operand1": "(HL)" + }, + "0xb7": { + "mnemonic": "OR", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xb7", + "operand1": "A" + }, + "0xb8": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xb8", + "operand1": "B" + }, + "0xb9": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xb9", + "operand1": "C" + }, + "0xba": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xba", + "operand1": "D" + }, + "0xbb": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xbb", + "operand1": "E" + }, + "0xbc": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xbc", + "operand1": "H" + }, + "0xbd": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xbd", + "operand1": "L" + }, + "0xbe": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xbe", + "operand1": "(HL)" + }, + "0xbf": { + "mnemonic": "CP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xbf", + "operand1": "A" + }, + "0xc0": { + "mnemonic": "RET", + "length": 1, + "cycles": [ + 20, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc0", + "operand1": "NZ" + }, + "0xc1": { + "mnemonic": "POP", + "length": 1, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc1", + "operand1": "BC" + }, + "0xc2": { + "mnemonic": "JP", + "length": 3, + "cycles": [ + 16, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc2", + "operand1": "NZ", + "operand2": "a16" + }, + "0xc3": { + "mnemonic": "JP", + "length": 3, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc3", + "operand1": "a16" + }, + "0xc4": { + "mnemonic": "CALL", + "length": 3, + "cycles": [ + 24, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc4", + "operand1": "NZ", + "operand2": "a16" + }, + "0xc5": { + "mnemonic": "PUSH", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc5", + "operand1": "BC" + }, + "0xc6": { + "mnemonic": "ADD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0xc6", + "operand1": "A", + "operand2": "d8" + }, + "0xc7": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc7", + "operand1": "00H" + }, + "0xc8": { + "mnemonic": "RET", + "length": 1, + "cycles": [ + 20, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc8", + "operand1": "Z" + }, + "0xc9": { + "mnemonic": "RET", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc9" + }, + "0xca": { + "mnemonic": "JP", + "length": 3, + "cycles": [ + 16, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xca", + "operand1": "Z", + "operand2": "a16" + }, + "0xcb": { + "mnemonic": "PREFIX", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcb", + "operand1": "CB" + }, + "0xcc": { + "mnemonic": "CALL", + "length": 3, + "cycles": [ + 24, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcc", + "operand1": "Z", + "operand2": "a16" + }, + "0xcd": { + "mnemonic": "CALL", + "length": 3, + "cycles": [ + 24 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcd", + "operand1": "a16" + }, + "0xce": { + "mnemonic": "ADC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "H", + "C" + ], + "addr": "0xce", + "operand1": "A", + "operand2": "d8" + }, + "0xcf": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcf", + "operand1": "08H" + }, + "0xd0": { + "mnemonic": "RET", + "length": 1, + "cycles": [ + 20, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd0", + "operand1": "NC" + }, + "0xd1": { + "mnemonic": "POP", + "length": 1, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd1", + "operand1": "DE" + }, + "0xd2": { + "mnemonic": "JP", + "length": 3, + "cycles": [ + 16, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd2", + "operand1": "NC", + "operand2": "a16" + }, + "0xd4": { + "mnemonic": "CALL", + "length": 3, + "cycles": [ + 24, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd4", + "operand1": "NC", + "operand2": "a16" + }, + "0xd5": { + "mnemonic": "PUSH", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd5", + "operand1": "DE" + }, + "0xd6": { + "mnemonic": "SUB", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xd6", + "operand1": "d8" + }, + "0xd7": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd7", + "operand1": "10H" + }, + "0xd8": { + "mnemonic": "RET", + "length": 1, + "cycles": [ + 20, + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd8", + "operand1": "C" + }, + "0xd9": { + "mnemonic": "RETI", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd9" + }, + "0xda": { + "mnemonic": "JP", + "length": 3, + "cycles": [ + 16, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xda", + "operand1": "C", + "operand2": "a16" + }, + "0xdc": { + "mnemonic": "CALL", + "length": 3, + "cycles": [ + 24, + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xdc", + "operand1": "C", + "operand2": "a16" + }, + "0xde": { + "mnemonic": "SBC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xde", + "operand1": "A", + "operand2": "d8" + }, + "0xdf": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xdf", + "operand1": "18H" + }, + "0xe0": { + "mnemonic": "LDH", + "length": 2, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe0", + "operand1": "(a8)", + "operand2": "A" + }, + "0xe1": { + "mnemonic": "POP", + "length": 1, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe1", + "operand1": "HL" + }, + "0xe2": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe2", + "operand1": "(C)", + "operand2": "A" + }, + "0xe5": { + "mnemonic": "PUSH", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe5", + "operand1": "HL" + }, + "0xe6": { + "mnemonic": "AND", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "0" + ], + "addr": "0xe6", + "operand1": "d8" + }, + "0xe7": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe7", + "operand1": "20H" + }, + "0xe8": { + "mnemonic": "ADD", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "0", + "0", + "H", + "C" + ], + "addr": "0xe8", + "operand1": "SP", + "operand2": "r8" + }, + "0xe9": { + "mnemonic": "JP", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe9", + "operand1": "(HL)" + }, + "0xea": { + "mnemonic": "LD", + "length": 3, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xea", + "operand1": "(a16)", + "operand2": "A" + }, + "0xee": { + "mnemonic": "XOR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xee", + "operand1": "d8" + }, + "0xef": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xef", + "operand1": "28H" + }, + "0xf0": { + "mnemonic": "LDH", + "length": 2, + "cycles": [ + 12 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf0", + "operand1": "A", + "operand2": "(a8)" + }, + "0xf1": { + "mnemonic": "POP", + "length": 1, + "cycles": [ + 12 + ], + "flags": [ + "Z", + "N", + "H", + "C" + ], + "addr": "0xf1", + "operand1": "AF" + }, + "0xf2": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf2", + "operand1": "A", + "operand2": "(C)" + }, + "0xf3": { + "mnemonic": "DI", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf3" + }, + "0xf5": { + "mnemonic": "PUSH", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf5", + "operand1": "AF" + }, + "0xf6": { + "mnemonic": "OR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0xf6", + "operand1": "d8" + }, + "0xf7": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf7", + "operand1": "30H" + }, + "0xf8": { + "mnemonic": "LD", + "length": 2, + "cycles": [ + 12 + ], + "flags": [ + "0", + "0", + "H", + "C" + ], + "addr": "0xf8", + "operand1": "HL", + "operand2": "SP+r8" + }, + "0xf9": { + "mnemonic": "LD", + "length": 1, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf9", + "operand1": "SP", + "operand2": "HL" + }, + "0xfa": { + "mnemonic": "LD", + "length": 3, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xfa", + "operand1": "A", + "operand2": "(a16)" + }, + "0xfb": { + "mnemonic": "EI", + "length": 1, + "cycles": [ + 4 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xfb" + }, + "0xfe": { + "mnemonic": "CP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "1", + "H", + "C" + ], + "addr": "0xfe", + "operand1": "d8" + }, + "0xff": { + "mnemonic": "RST", + "length": 1, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xff", + "operand1": "38H" + } + }, + "cbprefixed": { + "0x0": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x0", + "operand1": "B" + }, + "0x1": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x1", + "operand1": "C" + }, + "0x2": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x2", + "operand1": "D" + }, + "0x3": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x3", + "operand1": "E" + }, + "0x4": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x4", + "operand1": "H" + }, + "0x5": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x5", + "operand1": "L" + }, + "0x6": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x6", + "operand1": "(HL)" + }, + "0x7": { + "mnemonic": "RLC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x7", + "operand1": "A" + }, + "0x8": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x8", + "operand1": "B" + }, + "0x9": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x9", + "operand1": "C" + }, + "0xa": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0xa", + "operand1": "D" + }, + "0xb": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0xb", + "operand1": "E" + }, + "0xc": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0xc", + "operand1": "H" + }, + "0xd": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0xd", + "operand1": "L" + }, + "0xe": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0xe", + "operand1": "(HL)" + }, + "0xf": { + "mnemonic": "RRC", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0xf", + "operand1": "A" + }, + "0x10": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x10", + "operand1": "B" + }, + "0x11": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x11", + "operand1": "C" + }, + "0x12": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x12", + "operand1": "D" + }, + "0x13": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x13", + "operand1": "E" + }, + "0x14": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x14", + "operand1": "H" + }, + "0x15": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x15", + "operand1": "L" + }, + "0x16": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x16", + "operand1": "(HL)" + }, + "0x17": { + "mnemonic": "RL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x17", + "operand1": "A" + }, + "0x18": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x18", + "operand1": "B" + }, + "0x19": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x19", + "operand1": "C" + }, + "0x1a": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x1a", + "operand1": "D" + }, + "0x1b": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x1b", + "operand1": "E" + }, + "0x1c": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x1c", + "operand1": "H" + }, + "0x1d": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x1d", + "operand1": "L" + }, + "0x1e": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x1e", + "operand1": "(HL)" + }, + "0x1f": { + "mnemonic": "RR", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x1f", + "operand1": "A" + }, + "0x20": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x20", + "operand1": "B" + }, + "0x21": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x21", + "operand1": "C" + }, + "0x22": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x22", + "operand1": "D" + }, + "0x23": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x23", + "operand1": "E" + }, + "0x24": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x24", + "operand1": "H" + }, + "0x25": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x25", + "operand1": "L" + }, + "0x26": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x26", + "operand1": "(HL)" + }, + "0x27": { + "mnemonic": "SLA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x27", + "operand1": "A" + }, + "0x28": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x28", + "operand1": "B" + }, + "0x29": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x29", + "operand1": "C" + }, + "0x2a": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x2a", + "operand1": "D" + }, + "0x2b": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x2b", + "operand1": "E" + }, + "0x2c": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x2c", + "operand1": "H" + }, + "0x2d": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x2d", + "operand1": "L" + }, + "0x2e": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x2e", + "operand1": "(HL)" + }, + "0x2f": { + "mnemonic": "SRA", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x2f", + "operand1": "A" + }, + "0x30": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x30", + "operand1": "B" + }, + "0x31": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x31", + "operand1": "C" + }, + "0x32": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x32", + "operand1": "D" + }, + "0x33": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x33", + "operand1": "E" + }, + "0x34": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x34", + "operand1": "H" + }, + "0x35": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x35", + "operand1": "L" + }, + "0x36": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x36", + "operand1": "(HL)" + }, + "0x37": { + "mnemonic": "SWAP", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "0" + ], + "addr": "0x37", + "operand1": "A" + }, + "0x38": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x38", + "operand1": "B" + }, + "0x39": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x39", + "operand1": "C" + }, + "0x3a": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x3a", + "operand1": "D" + }, + "0x3b": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x3b", + "operand1": "E" + }, + "0x3c": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x3c", + "operand1": "H" + }, + "0x3d": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x3d", + "operand1": "L" + }, + "0x3e": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x3e", + "operand1": "(HL)" + }, + "0x3f": { + "mnemonic": "SRL", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "0", + "C" + ], + "addr": "0x3f", + "operand1": "A" + }, + "0x40": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x40", + "operand1": "0", + "operand2": "B" + }, + "0x41": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x41", + "operand1": "0", + "operand2": "C" + }, + "0x42": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x42", + "operand1": "0", + "operand2": "D" + }, + "0x43": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x43", + "operand1": "0", + "operand2": "E" + }, + "0x44": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x44", + "operand1": "0", + "operand2": "H" + }, + "0x45": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x45", + "operand1": "0", + "operand2": "L" + }, + "0x46": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x46", + "operand1": "0", + "operand2": "(HL)" + }, + "0x47": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x47", + "operand1": "0", + "operand2": "A" + }, + "0x48": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x48", + "operand1": "1", + "operand2": "B" + }, + "0x49": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x49", + "operand1": "1", + "operand2": "C" + }, + "0x4a": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x4a", + "operand1": "1", + "operand2": "D" + }, + "0x4b": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x4b", + "operand1": "1", + "operand2": "E" + }, + "0x4c": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x4c", + "operand1": "1", + "operand2": "H" + }, + "0x4d": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x4d", + "operand1": "1", + "operand2": "L" + }, + "0x4e": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x4e", + "operand1": "1", + "operand2": "(HL)" + }, + "0x4f": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x4f", + "operand1": "1", + "operand2": "A" + }, + "0x50": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x50", + "operand1": "2", + "operand2": "B" + }, + "0x51": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x51", + "operand1": "2", + "operand2": "C" + }, + "0x52": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x52", + "operand1": "2", + "operand2": "D" + }, + "0x53": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x53", + "operand1": "2", + "operand2": "E" + }, + "0x54": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x54", + "operand1": "2", + "operand2": "H" + }, + "0x55": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x55", + "operand1": "2", + "operand2": "L" + }, + "0x56": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x56", + "operand1": "2", + "operand2": "(HL)" + }, + "0x57": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x57", + "operand1": "2", + "operand2": "A" + }, + "0x58": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x58", + "operand1": "3", + "operand2": "B" + }, + "0x59": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x59", + "operand1": "3", + "operand2": "C" + }, + "0x5a": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x5a", + "operand1": "3", + "operand2": "D" + }, + "0x5b": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x5b", + "operand1": "3", + "operand2": "E" + }, + "0x5c": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x5c", + "operand1": "3", + "operand2": "H" + }, + "0x5d": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x5d", + "operand1": "3", + "operand2": "L" + }, + "0x5e": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x5e", + "operand1": "3", + "operand2": "(HL)" + }, + "0x5f": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x5f", + "operand1": "3", + "operand2": "A" + }, + "0x60": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x60", + "operand1": "4", + "operand2": "B" + }, + "0x61": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x61", + "operand1": "4", + "operand2": "C" + }, + "0x62": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x62", + "operand1": "4", + "operand2": "D" + }, + "0x63": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x63", + "operand1": "4", + "operand2": "E" + }, + "0x64": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x64", + "operand1": "4", + "operand2": "H" + }, + "0x65": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x65", + "operand1": "4", + "operand2": "L" + }, + "0x66": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x66", + "operand1": "4", + "operand2": "(HL)" + }, + "0x67": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x67", + "operand1": "4", + "operand2": "A" + }, + "0x68": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x68", + "operand1": "5", + "operand2": "B" + }, + "0x69": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x69", + "operand1": "5", + "operand2": "C" + }, + "0x6a": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x6a", + "operand1": "5", + "operand2": "D" + }, + "0x6b": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x6b", + "operand1": "5", + "operand2": "E" + }, + "0x6c": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x6c", + "operand1": "5", + "operand2": "H" + }, + "0x6d": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x6d", + "operand1": "5", + "operand2": "L" + }, + "0x6e": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x6e", + "operand1": "5", + "operand2": "(HL)" + }, + "0x6f": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x6f", + "operand1": "5", + "operand2": "A" + }, + "0x70": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x70", + "operand1": "6", + "operand2": "B" + }, + "0x71": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x71", + "operand1": "6", + "operand2": "C" + }, + "0x72": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x72", + "operand1": "6", + "operand2": "D" + }, + "0x73": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x73", + "operand1": "6", + "operand2": "E" + }, + "0x74": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x74", + "operand1": "6", + "operand2": "H" + }, + "0x75": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x75", + "operand1": "6", + "operand2": "L" + }, + "0x76": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x76", + "operand1": "6", + "operand2": "(HL)" + }, + "0x77": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x77", + "operand1": "6", + "operand2": "A" + }, + "0x78": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x78", + "operand1": "7", + "operand2": "B" + }, + "0x79": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x79", + "operand1": "7", + "operand2": "C" + }, + "0x7a": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x7a", + "operand1": "7", + "operand2": "D" + }, + "0x7b": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x7b", + "operand1": "7", + "operand2": "E" + }, + "0x7c": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x7c", + "operand1": "7", + "operand2": "H" + }, + "0x7d": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x7d", + "operand1": "7", + "operand2": "L" + }, + "0x7e": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x7e", + "operand1": "7", + "operand2": "(HL)" + }, + "0x7f": { + "mnemonic": "BIT", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "Z", + "0", + "1", + "-" + ], + "addr": "0x7f", + "operand1": "7", + "operand2": "A" + }, + "0x80": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x80", + "operand1": "0", + "operand2": "B" + }, + "0x81": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x81", + "operand1": "0", + "operand2": "C" + }, + "0x82": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x82", + "operand1": "0", + "operand2": "D" + }, + "0x83": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x83", + "operand1": "0", + "operand2": "E" + }, + "0x84": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x84", + "operand1": "0", + "operand2": "H" + }, + "0x85": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x85", + "operand1": "0", + "operand2": "L" + }, + "0x86": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x86", + "operand1": "0", + "operand2": "(HL)" + }, + "0x87": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x87", + "operand1": "0", + "operand2": "A" + }, + "0x88": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x88", + "operand1": "1", + "operand2": "B" + }, + "0x89": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x89", + "operand1": "1", + "operand2": "C" + }, + "0x8a": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x8a", + "operand1": "1", + "operand2": "D" + }, + "0x8b": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x8b", + "operand1": "1", + "operand2": "E" + }, + "0x8c": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x8c", + "operand1": "1", + "operand2": "H" + }, + "0x8d": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x8d", + "operand1": "1", + "operand2": "L" + }, + "0x8e": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x8e", + "operand1": "1", + "operand2": "(HL)" + }, + "0x8f": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x8f", + "operand1": "1", + "operand2": "A" + }, + "0x90": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x90", + "operand1": "2", + "operand2": "B" + }, + "0x91": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x91", + "operand1": "2", + "operand2": "C" + }, + "0x92": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x92", + "operand1": "2", + "operand2": "D" + }, + "0x93": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x93", + "operand1": "2", + "operand2": "E" + }, + "0x94": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x94", + "operand1": "2", + "operand2": "H" + }, + "0x95": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x95", + "operand1": "2", + "operand2": "L" + }, + "0x96": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x96", + "operand1": "2", + "operand2": "(HL)" + }, + "0x97": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x97", + "operand1": "2", + "operand2": "A" + }, + "0x98": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x98", + "operand1": "3", + "operand2": "B" + }, + "0x99": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x99", + "operand1": "3", + "operand2": "C" + }, + "0x9a": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x9a", + "operand1": "3", + "operand2": "D" + }, + "0x9b": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x9b", + "operand1": "3", + "operand2": "E" + }, + "0x9c": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x9c", + "operand1": "3", + "operand2": "H" + }, + "0x9d": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x9d", + "operand1": "3", + "operand2": "L" + }, + "0x9e": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x9e", + "operand1": "3", + "operand2": "(HL)" + }, + "0x9f": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0x9f", + "operand1": "3", + "operand2": "A" + }, + "0xa0": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa0", + "operand1": "4", + "operand2": "B" + }, + "0xa1": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa1", + "operand1": "4", + "operand2": "C" + }, + "0xa2": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa2", + "operand1": "4", + "operand2": "D" + }, + "0xa3": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa3", + "operand1": "4", + "operand2": "E" + }, + "0xa4": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa4", + "operand1": "4", + "operand2": "H" + }, + "0xa5": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa5", + "operand1": "4", + "operand2": "L" + }, + "0xa6": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa6", + "operand1": "4", + "operand2": "(HL)" + }, + "0xa7": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa7", + "operand1": "4", + "operand2": "A" + }, + "0xa8": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa8", + "operand1": "5", + "operand2": "B" + }, + "0xa9": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xa9", + "operand1": "5", + "operand2": "C" + }, + "0xaa": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xaa", + "operand1": "5", + "operand2": "D" + }, + "0xab": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xab", + "operand1": "5", + "operand2": "E" + }, + "0xac": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xac", + "operand1": "5", + "operand2": "H" + }, + "0xad": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xad", + "operand1": "5", + "operand2": "L" + }, + "0xae": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xae", + "operand1": "5", + "operand2": "(HL)" + }, + "0xaf": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xaf", + "operand1": "5", + "operand2": "A" + }, + "0xb0": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb0", + "operand1": "6", + "operand2": "B" + }, + "0xb1": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb1", + "operand1": "6", + "operand2": "C" + }, + "0xb2": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb2", + "operand1": "6", + "operand2": "D" + }, + "0xb3": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb3", + "operand1": "6", + "operand2": "E" + }, + "0xb4": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb4", + "operand1": "6", + "operand2": "H" + }, + "0xb5": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb5", + "operand1": "6", + "operand2": "L" + }, + "0xb6": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb6", + "operand1": "6", + "operand2": "(HL)" + }, + "0xb7": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb7", + "operand1": "6", + "operand2": "A" + }, + "0xb8": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb8", + "operand1": "7", + "operand2": "B" + }, + "0xb9": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xb9", + "operand1": "7", + "operand2": "C" + }, + "0xba": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xba", + "operand1": "7", + "operand2": "D" + }, + "0xbb": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xbb", + "operand1": "7", + "operand2": "E" + }, + "0xbc": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xbc", + "operand1": "7", + "operand2": "H" + }, + "0xbd": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xbd", + "operand1": "7", + "operand2": "L" + }, + "0xbe": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xbe", + "operand1": "7", + "operand2": "(HL)" + }, + "0xbf": { + "mnemonic": "RES", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xbf", + "operand1": "7", + "operand2": "A" + }, + "0xc0": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc0", + "operand1": "0", + "operand2": "B" + }, + "0xc1": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc1", + "operand1": "0", + "operand2": "C" + }, + "0xc2": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc2", + "operand1": "0", + "operand2": "D" + }, + "0xc3": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc3", + "operand1": "0", + "operand2": "E" + }, + "0xc4": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc4", + "operand1": "0", + "operand2": "H" + }, + "0xc5": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc5", + "operand1": "0", + "operand2": "L" + }, + "0xc6": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc6", + "operand1": "0", + "operand2": "(HL)" + }, + "0xc7": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc7", + "operand1": "0", + "operand2": "A" + }, + "0xc8": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc8", + "operand1": "1", + "operand2": "B" + }, + "0xc9": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xc9", + "operand1": "1", + "operand2": "C" + }, + "0xca": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xca", + "operand1": "1", + "operand2": "D" + }, + "0xcb": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcb", + "operand1": "1", + "operand2": "E" + }, + "0xcc": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcc", + "operand1": "1", + "operand2": "H" + }, + "0xcd": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcd", + "operand1": "1", + "operand2": "L" + }, + "0xce": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xce", + "operand1": "1", + "operand2": "(HL)" + }, + "0xcf": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xcf", + "operand1": "1", + "operand2": "A" + }, + "0xd0": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd0", + "operand1": "2", + "operand2": "B" + }, + "0xd1": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd1", + "operand1": "2", + "operand2": "C" + }, + "0xd2": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd2", + "operand1": "2", + "operand2": "D" + }, + "0xd3": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd3", + "operand1": "2", + "operand2": "E" + }, + "0xd4": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd4", + "operand1": "2", + "operand2": "H" + }, + "0xd5": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd5", + "operand1": "2", + "operand2": "L" + }, + "0xd6": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd6", + "operand1": "2", + "operand2": "(HL)" + }, + "0xd7": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd7", + "operand1": "2", + "operand2": "A" + }, + "0xd8": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd8", + "operand1": "3", + "operand2": "B" + }, + "0xd9": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xd9", + "operand1": "3", + "operand2": "C" + }, + "0xda": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xda", + "operand1": "3", + "operand2": "D" + }, + "0xdb": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xdb", + "operand1": "3", + "operand2": "E" + }, + "0xdc": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xdc", + "operand1": "3", + "operand2": "H" + }, + "0xdd": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xdd", + "operand1": "3", + "operand2": "L" + }, + "0xde": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xde", + "operand1": "3", + "operand2": "(HL)" + }, + "0xdf": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xdf", + "operand1": "3", + "operand2": "A" + }, + "0xe0": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe0", + "operand1": "4", + "operand2": "B" + }, + "0xe1": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe1", + "operand1": "4", + "operand2": "C" + }, + "0xe2": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe2", + "operand1": "4", + "operand2": "D" + }, + "0xe3": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe3", + "operand1": "4", + "operand2": "E" + }, + "0xe4": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe4", + "operand1": "4", + "operand2": "H" + }, + "0xe5": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe5", + "operand1": "4", + "operand2": "L" + }, + "0xe6": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe6", + "operand1": "4", + "operand2": "(HL)" + }, + "0xe7": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe7", + "operand1": "4", + "operand2": "A" + }, + "0xe8": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe8", + "operand1": "5", + "operand2": "B" + }, + "0xe9": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xe9", + "operand1": "5", + "operand2": "C" + }, + "0xea": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xea", + "operand1": "5", + "operand2": "D" + }, + "0xeb": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xeb", + "operand1": "5", + "operand2": "E" + }, + "0xec": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xec", + "operand1": "5", + "operand2": "H" + }, + "0xed": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xed", + "operand1": "5", + "operand2": "L" + }, + "0xee": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xee", + "operand1": "5", + "operand2": "(HL)" + }, + "0xef": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xef", + "operand1": "5", + "operand2": "A" + }, + "0xf0": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf0", + "operand1": "6", + "operand2": "B" + }, + "0xf1": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf1", + "operand1": "6", + "operand2": "C" + }, + "0xf2": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf2", + "operand1": "6", + "operand2": "D" + }, + "0xf3": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf3", + "operand1": "6", + "operand2": "E" + }, + "0xf4": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf4", + "operand1": "6", + "operand2": "H" + }, + "0xf5": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf5", + "operand1": "6", + "operand2": "L" + }, + "0xf6": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf6", + "operand1": "6", + "operand2": "(HL)" + }, + "0xf7": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf7", + "operand1": "6", + "operand2": "A" + }, + "0xf8": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf8", + "operand1": "7", + "operand2": "B" + }, + "0xf9": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xf9", + "operand1": "7", + "operand2": "C" + }, + "0xfa": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xfa", + "operand1": "7", + "operand2": "D" + }, + "0xfb": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xfb", + "operand1": "7", + "operand2": "E" + }, + "0xfc": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xfc", + "operand1": "7", + "operand2": "H" + }, + "0xfd": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xfd", + "operand1": "7", + "operand2": "L" + }, + "0xfe": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 16 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xfe", + "operand1": "7", + "operand2": "(HL)" + }, + "0xff": { + "mnemonic": "SET", + "length": 2, + "cycles": [ + 8 + ], + "flags": [ + "-", + "-", + "-", + "-" + ], + "addr": "0xff", + "operand1": "7", + "operand2": "A" + } + } +} \ No newline at end of file