mirror of
https://github.com/jborza/emu6502.git
synced 2025-02-19 07:30:57 +00:00
complete set of opcodes in header and disassembler
This commit is contained in:
parent
babb1fc507
commit
6cd265c578
176
disassembler.c
176
disassembler.c
@ -7,31 +7,169 @@ void disassemble_6502(byte* buffer, word pc) {
|
||||
printf("%04d ", pc);
|
||||
byte* code = &buffer[pc];
|
||||
int bytes = 1;
|
||||
char op[128];
|
||||
char op[128] = "";
|
||||
switch (*code) {
|
||||
case 0x00: sprintf(op,"BRK"); break;
|
||||
case ORA_IMM: sprintf(op, "ORA #$%02x", code[1]); break;
|
||||
case ORA_ZP: sprintf(op, "ORA $%02x", code[1]); break;
|
||||
case ORA_ZPX: sprintf(op, "ORA $%02x,X", code[1]); break;
|
||||
case ORA_ABS: sprintf(op, "ORA $%02x%02x", code[2], code[1]); break;
|
||||
case ORA_ABSX: sprintf(op, "ORA $%02x%02x,X", code[2], code[1]); break;
|
||||
case ORA_ABSY: sprintf(op, "ORA $%02x%02x,Y", code[2], code[1]); break;
|
||||
case ORA_INDX: sprintf(op, "ORA ($%02x,X)", code[1]); break;
|
||||
case ORA_INDY: sprintf(op, "ORA ($%02x),Y", code[1]); break;
|
||||
case LDA_IMM: sprintf(op, "LDA #$%02x", code[1]); break;
|
||||
case LDA_ZP: sprintf(op, "LDA $%02x", code[1]); break;
|
||||
case LDA_ZPX: sprintf(op, "LDA $%02x,X", code[1]); break;
|
||||
case LDA_ABS: sprintf(op, "LDA $%02x%02x", code[2], code[1]); break;
|
||||
case LDA_ABSX: sprintf(op, "LDA $%02x%02x,X", code[2], code[1]); break;
|
||||
case LDA_ABSY: sprintf(op, "LDA $%02x%02x,Y", code[2], code[1]); break;
|
||||
case LDA_INDX: sprintf(op, "LDA ($%02x,X)", code[1]); break;
|
||||
case LDA_INDY: sprintf(op, "LDA ($%02x),Y", code[1]); break;
|
||||
|
||||
case 0xEA: printf("NOP"); break;
|
||||
case ADC_IMM: sprintf(op, "ADC #$%02X", code[1]); bytes = 2; break;
|
||||
case ADC_ZP: sprintf(op, "ADC $%02X", code[1]); bytes = 2; break;
|
||||
case ADC_ZPX: sprintf(op, "ADC $%02X,X", code[1]); bytes = 2; break;
|
||||
case ADC_ABS: sprintf(op, "ADC $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case ADC_ABSX: sprintf(op, "ADC $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case ADC_ABSY: sprintf(op, "ADC $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case ADC_INDX: sprintf(op, "ADC ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case ADC_INDY: sprintf(op, "ADC ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case AND_IMM: sprintf(op, "AND #$%02X", code[1]); bytes = 2; break;
|
||||
case AND_ZP: sprintf(op, "AND $%02X", code[1]); bytes = 2; break;
|
||||
case AND_ZPX: sprintf(op, "AND $%02X,X", code[1]); bytes = 2; break;
|
||||
case AND_ABS: sprintf(op, "AND $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case AND_ABSX: sprintf(op, "AND $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case AND_ABSY: sprintf(op, "AND $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case AND_INDX: sprintf(op, "AND ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case AND_INDY: sprintf(op, "AND ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case ASL_ACC: sprintf(op, "ASL A"); break;
|
||||
case ASL_ZP: sprintf(op, "ASL $%02X", code[1]); bytes = 2; break;
|
||||
case ASL_ZPX: sprintf(op, "ASL $%02X,X", code[1]); bytes = 2; break;
|
||||
case ASL_ABS: sprintf(op, "ASL $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case ASL_ABSX: sprintf(op, "ASL $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case BCC_REL: sprintf(op, "BCC $%02X", code[1]); bytes = 2; break;
|
||||
case BCS_REL: sprintf(op, "BCS $%02X", code[1]); bytes = 2; break;
|
||||
case BEQ_REL: sprintf(op, "BEQ $%02X", code[1]); bytes = 2; break;
|
||||
case BMI_REL: sprintf(op, "BMI $%02X", code[1]); bytes = 2; break;
|
||||
case BNE_REL: sprintf(op, "BNE $%02X", code[1]); bytes = 2; break;
|
||||
case BPL_REL: sprintf(op, "BPL $%02X", code[1]); bytes = 2; break;
|
||||
case BVC_REL: sprintf(op, "BVC $%02X", code[1]); bytes = 2; break;
|
||||
case BVS_REL: sprintf(op, "BVS $%02X", code[1]); bytes = 2; break;
|
||||
case BIT_ZP: sprintf(op, "BIT $%02X", code[1]); bytes = 2; break;
|
||||
case BIT_ABS: sprintf(op, "BIT $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case BRK: sprintf(op, "BRK"); break;
|
||||
case CLC: sprintf(op, "CLC"); break;
|
||||
case CLD: sprintf(op, "CLD"); break;
|
||||
case CLI: sprintf(op, "CLI"); break;
|
||||
case CLV: sprintf(op, "CLV"); break;
|
||||
case NOP: sprintf(op, "NOP"); break;
|
||||
case PHA: sprintf(op, "PHA"); break;
|
||||
case PLA: sprintf(op, "PLA"); break;
|
||||
case PHP: sprintf(op, "PHP"); break;
|
||||
case PLP: sprintf(op, "PLP"); break;
|
||||
case RTI: sprintf(op, "RTI"); break;
|
||||
case RTS: sprintf(op, "RTS"); break;
|
||||
case SEC: sprintf(op, "SEC"); break;
|
||||
case SED: sprintf(op, "SED"); break;
|
||||
case SEI: sprintf(op, "SEI"); break;
|
||||
case TAX: sprintf(op, "TAX"); break;
|
||||
case TXA: sprintf(op, "TXA"); break;
|
||||
case TAY: sprintf(op, "TAY"); break;
|
||||
case TYA: sprintf(op, "TYA"); break;
|
||||
case TSX: sprintf(op, "TSX"); break;
|
||||
case TXS: sprintf(op, "TXS"); break;
|
||||
case CMP_IMM: sprintf(op, "CMP #$%02X", code[1]); bytes = 2; break;
|
||||
case CMP_ZP: sprintf(op, "CMP $%02X", code[1]); bytes = 2; break;
|
||||
case CMP_ZPX: sprintf(op, "CMP $%02X,X", code[1]); bytes = 2; break;
|
||||
case CMP_ABS: sprintf(op, "CMP $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case CMP_ABSX: sprintf(op, "CMP $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case CMP_ABSY: sprintf(op, "CMP $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case CMP_INDX: sprintf(op, "CMP ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case CMP_INDY: sprintf(op, "CMP ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case CPX_IMM: sprintf(op, "CPX #$%02X", code[1]); bytes = 2; break;
|
||||
case CPX_ZP: sprintf(op, "CPX $%02X", code[1]); bytes = 2; break;
|
||||
case CPX_ABS: sprintf(op, "CPX $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case CPY_IMM: sprintf(op, "CPY #$%02X", code[1]); bytes = 2; break;
|
||||
case CPY_ZP: sprintf(op, "CPY $%02X", code[1]); bytes = 2; break;
|
||||
case CPY_ABS: sprintf(op, "CPY $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case DEC_ZP: sprintf(op, "DEC $%02X", code[1]); bytes = 2; break;
|
||||
case DEC_ZPX: sprintf(op, "DEC $%02X,X", code[1]); bytes = 2; break;
|
||||
case DEC_ABS: sprintf(op, "DEC $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case DEC_ABSX: sprintf(op, "DEC $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case DEX: sprintf(op, "DEX"); break;
|
||||
case DEY: sprintf(op, "DEY"); break;
|
||||
case INX: sprintf(op, "INX"); break;
|
||||
case INY: sprintf(op, "INY"); break;
|
||||
case EOR_IMM: sprintf(op, "EOR #$%02X", code[1]); bytes = 2; break;
|
||||
case EOR_ZP: sprintf(op, "EOR $%02X", code[1]); bytes = 2; break;
|
||||
case EOR_ZPX: sprintf(op, "EOR $%02X,X", code[1]); bytes = 2; break;
|
||||
case EOR_ABS: sprintf(op, "EOR $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case EOR_ABSX: sprintf(op, "EOR $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case EOR_ABSY: sprintf(op, "EOR $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case EOR_INDX: sprintf(op, "EOR ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case EOR_INDY: sprintf(op, "EOR ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case INC_ZP: sprintf(op, "INC $%02X", code[1]); bytes = 2; break;
|
||||
case INC_ZPX: sprintf(op, "INC $%02X,X", code[1]); bytes = 2; break;
|
||||
case INC_ABS: sprintf(op, "INC $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case INC_ABSX: sprintf(op, "INC $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case JMP_ABS: sprintf(op, "JMP $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case JMP_IND: sprintf(op, "JMP ($%02X%02X)", code[2], code[1]); bytes = 3; break;
|
||||
case JSR_ABS: sprintf(op, "JSR $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case LDA_IMM: sprintf(op, "LDA #$%02X", code[1]); bytes = 2; break;
|
||||
case LDA_ZP: sprintf(op, "LDA $%02X", code[1]); bytes = 2; break;
|
||||
case LDA_ZPX: sprintf(op, "LDA $%02X,X", code[1]); bytes = 2; break;
|
||||
case LDA_ABS: sprintf(op, "LDA $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case LDA_ABSX: sprintf(op, "LDA $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case LDA_ABSY: sprintf(op, "LDA $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case LDA_INDX: sprintf(op, "LDA ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case LDA_INDY: sprintf(op, "LDA ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case LDX_IMM: sprintf(op, "LDX #$%02X", code[1]); bytes = 2; break;
|
||||
case LDX_ZP: sprintf(op, "LDX $%02X", code[1]); bytes = 2; break;
|
||||
case LDX_ZPY: sprintf(op, "LDX $%02X,Y", code[1]); bytes = 2; break;
|
||||
case LDX_ABS: sprintf(op, "LDX $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case LDX_ABSY: sprintf(op, "LDX $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case LDY_IMM: sprintf(op, "LDY #$%02X", code[1]); bytes = 2; break;
|
||||
case LDY_ZP: sprintf(op, "LDY $%02X", code[1]); bytes = 2; break;
|
||||
case LDY_ZPX: sprintf(op, "LDY $%02X,X", code[1]); bytes = 2; break;
|
||||
case LDY_ABS: sprintf(op, "LDY $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case LDY_ABSX: sprintf(op, "LDY $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case LSR_ACC: sprintf(op, "LSR A"); break;
|
||||
case LSR_ZP: sprintf(op, "LSR $%02X", code[1]); bytes = 2; break;
|
||||
case LSR_ZPX: sprintf(op, "LSR $%02X,X", code[1]); bytes = 2; break;
|
||||
case LSR_ABS: sprintf(op, "LSR $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case LSR_ABSX: sprintf(op, "LSR $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case ORA_IMM: sprintf(op, "ORA #$%02X", code[1]); bytes = 2; break;
|
||||
case ORA_ZP: sprintf(op, "ORA $%02X", code[1]); bytes = 2; break;
|
||||
case ORA_ZPX: sprintf(op, "ORA $%02X,X", code[1]); bytes = 2; break;
|
||||
case ORA_ABS: sprintf(op, "ORA $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case ORA_ABSX: sprintf(op, "ORA $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case ORA_ABSY: sprintf(op, "ORA $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case ORA_INDX: sprintf(op, "ORA ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case ORA_INDY: sprintf(op, "ORA ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case ROL_ACC: sprintf(op, "ROL A"); break;
|
||||
case ROL_ZP: sprintf(op, "ROL $%02X", code[1]); bytes = 2; break;
|
||||
case ROL_ZPX: sprintf(op, "ROL $%02X,X", code[1]); bytes = 2; break;
|
||||
case ROL_ABS: sprintf(op, "ROL $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case ROL_ABSX: sprintf(op, "ROL $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case ROR_ACC: sprintf(op, "ROR A"); break;
|
||||
case ROR_ZP: sprintf(op, "ROR $%02X", code[1]); bytes = 2; break;
|
||||
case ROR_ZPX: sprintf(op, "ROR $%02X,X", code[1]); bytes = 2; break;
|
||||
case ROR_ABS: sprintf(op, "ROR $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case ROR_ABSX: sprintf(op, "ROR $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case SBC_IMM: sprintf(op, "SBC #$%02X", code[1]); bytes = 2; break;
|
||||
case SBC_ZP: sprintf(op, "SBC $%02X", code[1]); bytes = 2; break;
|
||||
case SBC_ZPX: sprintf(op, "SBC $%02X,X", code[1]); bytes = 2; break;
|
||||
case SBC_ABS: sprintf(op, "SBC $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case SBC_ABSX: sprintf(op, "SBC $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case SBC_ABSY: sprintf(op, "SBC $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case SBC_INDX: sprintf(op, "SBC ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case SBC_INDY: sprintf(op, "SBC ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case STA_ZP: sprintf(op, "STA $%02X", code[1]); bytes = 2; break;
|
||||
case STA_ZPX: sprintf(op, "STA $%02X,X", code[1]); bytes = 2; break;
|
||||
case STA_ABS: sprintf(op, "STA $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case STA_ABSX: sprintf(op, "STA $%02X%02X,X", code[2], code[1]); bytes = 3; break;
|
||||
case STA_ABSY: sprintf(op, "STA $%02X%02X,Y", code[2], code[1]); bytes = 3; break;
|
||||
case STA_INDX: sprintf(op, "STA ($%02X,X)", code[1]); bytes = 2; break;
|
||||
case STA_INDY: sprintf(op, "STA ($%02X),Y", code[1]); bytes = 2; break;
|
||||
case STX_ZP: sprintf(op, "STX $%02X", code[1]); bytes = 2; break;
|
||||
case STX_ZPY: sprintf(op, "STX $%02X,Y", code[1]); bytes = 2; break;
|
||||
case STX_ABS: sprintf(op, "STX $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
case STY_ZP: sprintf(op, "STY $%02X", code[1]); bytes = 2; break;
|
||||
case STY_ZPX: sprintf(op, "STY $%02X,X", code[1]); bytes = 2; break;
|
||||
case STY_ABS: sprintf(op, "STY $%02X%02X", code[2], code[1]); bytes = 3; break;
|
||||
|
||||
|
||||
default:
|
||||
printf("UNKNOWN %02x", *code);
|
||||
}
|
||||
|
||||
//print opcode
|
||||
printf("%02X ", *code);
|
||||
|
||||
if (bytes > 1) {
|
||||
printf("%02x ", code[1]);
|
||||
}
|
||||
|
155
opcodes.h
155
opcodes.h
@ -1,20 +1,153 @@
|
||||
#pragma once
|
||||
|
||||
#define ADC_IMM 0x69
|
||||
#define ADC_ZP 0x65
|
||||
#define ADC_ZPX 0x75
|
||||
#define ADC_ABS 0x6d
|
||||
#define ADC_ABSX 0x7d
|
||||
#define ADC_ABSY 0x79
|
||||
#define ADC_INDX 0x61
|
||||
#define ADC_INDY 0x71
|
||||
#define AND_IMM 0x29
|
||||
#define AND_ZP 0x25
|
||||
#define AND_ZPX 0x35
|
||||
#define AND_ABS 0x2d
|
||||
#define AND_ABSX 0x3d
|
||||
#define AND_ABSY 0x39
|
||||
#define AND_INDX 0x21
|
||||
#define AND_INDY 0x31
|
||||
#define ASL_ACC 0x0a
|
||||
#define ASL_ZP 0x06
|
||||
#define ASL_ZPX 0x16
|
||||
#define ASL_ABS 0x0e
|
||||
#define ASL_ABSX 0x1e
|
||||
#define BCC_REL 0x90
|
||||
#define BCS_REL 0xB0
|
||||
#define BEQ_REL 0xF0
|
||||
#define BMI_REL 0x30
|
||||
#define BNE_REL 0xD0
|
||||
#define BPL_REL 0x10
|
||||
#define BVC_REL 0x50
|
||||
#define BVS_REL 0x70
|
||||
#define BIT_ZP 0x24
|
||||
#define BIT_ABS 0x2c
|
||||
#define BRK 0x00
|
||||
#define CLC 0x18
|
||||
#define CLD 0xd8
|
||||
#define CLI 0x58
|
||||
#define CLV 0xb8
|
||||
#define NOP 0xea
|
||||
#define PHA 0x48
|
||||
#define PLA 0x68
|
||||
#define PHP 0x08
|
||||
#define PLP 0x28
|
||||
#define RTI 0x40
|
||||
#define RTS 0x60
|
||||
#define SEC 0x38
|
||||
#define SED 0xf8
|
||||
#define SEI 0x78
|
||||
#define TAX 0xaa
|
||||
#define TXA 0x8a
|
||||
#define TAY 0xa8
|
||||
#define TYA 0x98
|
||||
#define TSX 0xba
|
||||
#define TXS 0x9a
|
||||
#define CMP_IMM 0xc9
|
||||
#define CMP_ZP 0xc5
|
||||
#define CMP_ZPX 0xd5
|
||||
#define CMP_ABS 0xcd
|
||||
#define CMP_ABSX 0xdd
|
||||
#define CMP_ABSY 0xd9
|
||||
#define CMP_INDX 0xc1
|
||||
#define CMP_INDY 0xd1
|
||||
#define CPX_IMM 0xe0
|
||||
#define CPX_ZP 0xe4
|
||||
#define CPX_ABS 0xec
|
||||
#define CPY_IMM 0xc0
|
||||
#define CPY_ZP 0xc4
|
||||
#define CPY_ABS 0xcc
|
||||
#define DEC_ZP 0xc6
|
||||
#define DEC_ZPX 0xd6
|
||||
#define DEC_ABS 0xce
|
||||
#define DEC_ABSX 0xde
|
||||
#define DEX 0xca
|
||||
#define DEY 0x88
|
||||
#define INX 0xe8
|
||||
#define INY 0xc8
|
||||
#define EOR_IMM 0x49
|
||||
#define EOR_ZP 0x45
|
||||
#define EOR_ZPX 0x55
|
||||
#define EOR_ABS 0x4d
|
||||
#define EOR_ABSX 0x5d
|
||||
#define EOR_ABSY 0x59
|
||||
#define EOR_INDX 0x41
|
||||
#define EOR_INDY 0x51
|
||||
#define INC_ZP 0xe6
|
||||
#define INC_ZPX 0xf6
|
||||
#define INC_ABS 0xee
|
||||
#define INC_ABSX 0xfe
|
||||
#define JMP_ABS 0x4c
|
||||
#define JMP_IND 0x6c
|
||||
#define JSR_ABS 0x20
|
||||
#define LDA_IMM 0xa9
|
||||
#define LDA_ZP 0xa5
|
||||
#define LDA_ZPX 0xb5
|
||||
#define LDA_ABS 0xad
|
||||
#define LDA_ABSX 0xbd
|
||||
#define LDA_ABSY 0xb9
|
||||
#define LDA_INDX 0xa1
|
||||
#define LDA_INDY 0xb1
|
||||
#define LDX_IMM 0xa2
|
||||
#define LDX_ZP 0xa6
|
||||
#define LDX_ZPY 0xb6
|
||||
#define LDX_ABS 0xae
|
||||
#define LDX_ABSY 0xbe
|
||||
#define LDY_IMM 0xa0
|
||||
#define LDY_ZP 0xa4
|
||||
#define LDY_ZPX 0xb4
|
||||
#define LDY_ABS 0xac
|
||||
#define LDY_ABSX 0xbc
|
||||
#define LSR_ACC 0x4a
|
||||
#define LSR_ZP 0x46
|
||||
#define LSR_ZPX 0x56
|
||||
#define LSR_ABS 0x4e
|
||||
#define LSR_ABSX 0x5e
|
||||
#define ORA_IMM 0x09
|
||||
#define ORA_ZP 0x05
|
||||
#define ORA_ZPX 0x15
|
||||
#define ORA_ABS 0x0D
|
||||
#define ORA_ABSX 0x1D
|
||||
#define ORA_ABS 0x0d
|
||||
#define ORA_ABSX 0x1d
|
||||
#define ORA_ABSY 0x19
|
||||
#define ORA_INDX 0x01
|
||||
#define ORA_INDY 0x11
|
||||
#define NOP 0xEA
|
||||
#define LDA_IMM 0xA9
|
||||
#define LDA_ZP 0xA5
|
||||
#define LDA_ZPX 0xB5
|
||||
#define LDA_ABS 0xAD
|
||||
#define LDA_ABSX 0xBD
|
||||
#define LDA_ABSY 0xB9
|
||||
#define LDA_INDX 0xA1
|
||||
#define LDA_INDY 0xB1
|
||||
#define ROL_ACC 0x2a
|
||||
#define ROL_ZP 0x26
|
||||
#define ROL_ZPX 0x36
|
||||
#define ROL_ABS 0x2e
|
||||
#define ROL_ABSX 0x3e
|
||||
#define ROR_ACC 0x6a
|
||||
#define ROR_ZP 0x66
|
||||
#define ROR_ZPX 0x76
|
||||
#define ROR_ABS 0x7e
|
||||
#define ROR_ABSX 0x6e
|
||||
#define SBC_IMM 0xe9
|
||||
#define SBC_ZP 0xe5
|
||||
#define SBC_ZPX 0xf5
|
||||
#define SBC_ABS 0xed
|
||||
#define SBC_ABSX 0xfd
|
||||
#define SBC_ABSY 0xf9
|
||||
#define SBC_INDX 0xe1
|
||||
#define SBC_INDY 0xf1
|
||||
#define STA_ZP 0x85
|
||||
#define STA_ZPX 0x95
|
||||
#define STA_ABS 0x8d
|
||||
#define STA_ABSX 0x9d
|
||||
#define STA_ABSY 0x99
|
||||
#define STA_INDX 0x81
|
||||
#define STA_INDY 0x91
|
||||
#define STX_ZP 0x86
|
||||
#define STX_ZPY 0x96
|
||||
#define STX_ABS 0x8e
|
||||
#define STY_ZP 0x84
|
||||
#define STY_ZPX 0x94
|
||||
#define STY_ABS 0x8c
|
||||
|
Loading…
x
Reference in New Issue
Block a user